Tải bản đầy đủ (.doc) (5 trang)

Bài 11 Tin 11

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (126.9 KB, 5 trang )

Tr ờng THPT Nguyễn Công Trứ ============ Giáo án: Tin học 11
Ngày soạn: 09/11/2009
Chơng IV: Kiểu dữ liệu có cấu trúc
Bài 11: Kiểu mảng
I- Mục tiêu:
1. Kiến thức;
- Biết đợc một kiểu dữ liệu mới là mảng một chiều. Biết đợc một số loại biến có chỉ số.
- Biết cấu trúc tạo kiểu mảng một chiều và cách khai báo biến kiểu mảng một chiều.
2. Kĩ năng:
- Tạo đợc kiểu mảng một chiều và sử dụng biến mảng một chiều trong ngôn ngữ lập trình Pascal
để giải quyết một số bài toán cụ thể.
II- Đồ dùng dạy học:
1. Chuẩn bị của giáo viên:
- Máy chiếu projector, máy vi tính để giới thiệu ví dụ và minh hoạ
- Nghiên cứu bài và soạn bài chu đáo.
2. Chuẩn bị của học sinh:
- Sách giáo khoa.
III- Hoạt động dạy học:
1. Hoạt động 1: Tìm hiểu ý nghĩa của mảng một chiều.
a) Mục tiêu: Biết đợc ý nghĩa và sự cần thiết của kiểu mảng một chiều trong việc giải quyết một
số bài toán. Biết đợc khái niệm kiểu mảng một chiều.
b) Nội dung:
- Ví dụ: Nhập vào nhiệt độ (trung bình) của mỗi ngày trong tuần. Tính và in ra màn hình nhiệt độ
trung bình của tuần và số lợng ngày trong tuần có nhiệt độ cao hơn nhiệt độ trung bình tính đợc.
- Chơng trình minh họa:
Program Nhiệt_độ_tuần;
Uses crt;
Var t1, t2, t3, t4, t5, t6, t7, tb: real;
đếm: integer;
Begin
Write( nhập vào nhiệt độ của 7 ngày;);


Readln( t1, t2, t3, t4, t5, t6, t7);
Tb:= (t1 + t2 +t3 + t4 + t5 + t6 + t7)/ 7;
đếm:= 0;
if t1 > tb then đếm := đếm + 1;
if t2 > tb then đếm := đếm + 1;
if t3 > tb then đếm := đếm + 1;
if t4 > tb then đếm := đếm + 1;
if t5 > tb then đếm := đếm + 1;
if t6 > tb then đếm := đếm + 1;
if t7 > tb then đếm := đếm + 1;
Writeln( nhiệt độ trung bình tuần:, tb);
Giáo Viên: Trần Thị Kim Dung Trang
1
Tiết 18:
Tr ờng THPT Nguyễn Công Trứ ============ Giáo án: Tin học 11
Writeln( số ngày trong tuần có nhiệt độ cao hơn nhiệt độ trung bình là:, đếm);
Readln
End.
- Mảng một chiều là dãy hữu hạn các phần tử có cùng kiểu dữ liệu. Các phần tử trong mảng có
cùng chung một tên và phân biệt nhau bởi chỉ số. Để mô tả mảng một chiều cần xác định đợc kiểu
của các phần tử và cách đánh số các phần tử của nó.
- Hầu hết các ngôn ngữ lập trình đều có quy tắc cho phép xác định: Tên kiểu mảng, số lợng phần
tử, kiểu dữ liệu của từng phần tử của mảng.
c) Các bớc tiến hành:
Hoạt động của giáo viên Hoạt động của học sinh
1. Chiếu đề bài và chơng trình ví dụ lên
bảng.
? Khi N lớn thì chơng trình trên có những hạn
chế nh thế nào?
Dẫn dắt: Để khắc phục những hạn chế trên,

ngời ta thờng ghép chung 7 biến trên thành một
dãy và đặt cho nó chung một tên và đánh cho
một phần tử chỉ số.
2. Yêu cầu học sinh tham khảo sách giáo
khoa và hỏi: Em hiểu nh thế nào về mảng
một chiều?
? Để mô tả mảng một chiều, ta cần xác định
những yếu tố nào?
1. Quan sát trên màn hình, suy nghĩ và trả
lời:
- Phải khai báo quá nhiều biến, chơng trình viết
phải rất dài.
2. Nghiên cứu sách giáo khoa để trả lời:
Mảng một chiều là dãy hữu hạn các phần tử
có cùng kiểu dữ liệu. Các phần tử trong mảng
có cùng chung một tên và phân biệt nhau bởi
chỉ số.
Để mô tả mảng một chiều cần xác định đợc
kiểu của các phần tử và cách đánh số các phần
tử của nó.
2. Hoạt động 2: Tạo kiểu mảng một chiều và khai báo biến mảng:
a) Mục tiêu:
- Học sinh biết đợc cách tạo kiểu dữ liệu mảng một chiều trong ngôn ngữ lập trình Pascal, biết
cách khai báo biến và tham chiếu đến từng phần tử của mảng.
b) Nội dung:
- Tạo kiểu dữ liệu mảng một chiều một cách gián tiếp.
TYPE tên_kiểu_mảng = Array [[kiểu_chi_số] OF Kiểu_phần_tử;
VAR Tên_biến_mảng: tên_kiểu_mảng;
+ Kiểu chỉ số: thờng là một đoạn số nguyên (hoặc đoạn kí tự) liên tục, có dạng n1 n2 với n1, n2 là
các biến kiểu nguyên (hoặc kí tự) xác định chỉ số đầu và chỉ số cuối của mảng.

+ Kiểu thành phần: là kiểu dữ liệu chung của mọi phần tử trong mảng.
- Khai báo biến mảng một chiều một cách trực tiếp:
VAR tên_biến_mảng: Array [[kiểu_chi_số] OF Kiểu_phần_tử;
- Tham chiếu đến từng phần tử: Tên_biến[ chỉ số]
c) Các bớc tiến hành:
Hoạt động của giáo viên Hoạt động của học sinh
Giáo Viên: Trần Thị Kim Dung Trang
2
Tr ờng THPT Nguyễn Công Trứ ============ Giáo án: Tin học 11
1. Yêu cầu học sinh nghiên cứu sách giáo
khoa và cho biết cách tạo kiểu dữ liệu mảng
một chiều trong ngôn ngữ lập trình Pascal.
Tìm một số ví dụ để minh hoạ
? ý nghĩa các câu lệnh vừa viết trên?
- Chiếu lên bảng một số khai báo kiểu mảng
một chiều.
TYPE
Mang1= Array[1 200] of real;
Mảng 2 = Array[byte] of real;
Mảng 3= Array[ -100 0] of boolean;
? Những khai báo nào đúng?
2. Yêu cầu học sinh cho biết cách khai báo
biến và một số ví dụ khai báo một biến mảng
ứng với kiểu dữ liệu vừa tạo
? ý nghĩa của câu lệnh vừa viết?
? Dung lợng của bộ nhớ của biến a đã chiếm
bao nhiêu?
Chú ý cho học sinh về cách đặt tên kiểu dữ
liệu và tên biến, tránh nhầm lẫn.
Tóm lại để khai báo mảng một chiều ta có

mấy cách?
3. Giới thiệu cách tham chiếu đến từng phần
tử của mảng một chiều. Yêu cầu học sinh lấy
ví dụ
1. Tham khảo sách giáo khoa và trả lời:
- TYPE tên_kiểu_mảng= Array[Kiểu_chỉ_ số]
OF Kiểu_phần_tử;
Ví dụ: TYPE Mang= array[1 n]]of Integer;
TYPE thực = Array[ 1 n] of real;
Tạo ra một kiểu dữ liệu mới có tên là mang,
thực. Gồm 1 đến N phần tử, có kiểu nguyên,
kiểu thực.
- Quan sát bảng và chọn khai báo đúng
TYPE
Mang1= Array[1 200] of real;
Mảng 3= Array[ -100 0] of boolean;
2. Tham khảo sách giáo khoa và trả lời.
VAR tên_biến_mảng: tên_kiểu_mảng;
- Ví dụ: A: mảng 1;
B: mảng 2;
Khai báo một biến mảng một chiều
A đã chiếm 200 byte trong bộ nhớ.
có hai cách đó là:
Trực tiếp: VAR tên_biến_mảng: Array
[kiểu_chi_số] OF Kiểu_phần_tử;
Gián tiếp: TYPE tên_kiểu_mảng = Array
[kiểu_chi_số] OF Kiểu_phần_tử;
VAR Tên_biến_mảng: tên_kiểu_mảng;
3. Theo dõi hớng dẫn của giáo viên và độc
lập suy nghĩ để trả lời.

A[1] là phần tử ở vị trí thứ 1 của mảng A
A[i] là phần tử ở vị trí thứ i của mảng A
3. Hoạt động 3: Rèn luyện kĩ năng sử dụng kiểu mảng một chiều.
a) Mục tiêu:
- Học sinh sử dụng đợc biến kiểu mảng một chiều để giải quyết một bài toán đơn giản.
b) Nội dung:
Giáo Viên: Trần Thị Kim Dung Trang
3
Tr ờng THPT Nguyễn Công Trứ ============ Giáo án: Tin học 11
Bài toán: Nhập vào nhiệt độ (trung bình) của mỗi ngày trong tuần. Tính và in ra màn hình nhiệt
độ trung bình của tuần và số lợng ngày trong tuần có nhiệt độ cao hơn nhiệt độ trung bình tính đ-
ợc.
c) Các bớc tiến hành:
Hoạt động của giáo viên Hoạt động của học sinh
1. Giới thiệu đề bài:
Chiếu đề bài lên bảng.
- Yêu cầu học sinh xác định dữ liệu vào, dữ liệu
ra.
? Nếu không sử dụng biến mảng một chiều, ta
có thể giải quyết đợc bài toán không? Khó khăn
gì không?
2. Định hớng: Sử dụng kiểu mảng một chiều
để giải quyết bài toán.
? Yêu cầu học sinh khai báo biến mảng?
? Yêu cầu học sinh tìm nhiệm vụ chính cần giải
quyết?
3. Chia lớp làm 4 nhóm yêu cầu viết chơng
trình. Lên bảng trình bày.
4. Chuẩn hoá chơng trình cho học sinh.
Program BTVD;

Uses CRT;
Var
A : Array[1 7] of Real;
I,d: Integer;
S, TB : Real;
Begin
Clrscr;
For i:=1 TO 7 DO
Begin
Writeln(Nhap phan tu thu ,i);
Readln(A[i]);
End;
S:=0;
For i:= 1 TO 7 Do S := S + A[i];
TB:= S/7;
D := 0;
For i := 1 TO 7 DO
If A[i] > TB Then d := d+1;
Writeln(So ngay la,d);
Readln;
End.
1. Quan sát đề bài, theo dõi những yêu cầu
cần giải quyết của đề bài.
- INPUT: nhiệt độ của các ngày trong tuần.
- OUTPUT: nhiệt độ trung bình trong tuần và số
ngày trong tuần có nhiệt độ cao hơn nhiệt độ
trung bình.
Đợc, nhng chơng trình dài dòng, khó sửa đổi.
2. Theo dõi sự hớng dẫn của giáo viên
TYPE tuần = Array[ 1 7] of real;

VAR T: tuần;
- Nhập giá trị cho mảng T;
- Tính trung bình cộng, giá trị lớn hơn trung
bình cộng tính đợc.
3. Thảo luận theo nhóm để viết chơng trình.
- Báo cáo kết quả viết đợc
- Nhận xét, đánh giá và bổ sung những thiếu sót
nếu có.
4. Quan sát và ghi nhớ
Lu ý: Cách nhập các phần tử cho mảng một
chiều:
For i:=1 TO n DO
Begin
Writeln(Nhap phan tu thu ,i);
Readln(A[i]);
End;
Hiển thị các phần tử của mảng:
For i:=1 TO 7 DO
Begin
Write(a[i]:4);
Writeln;
End;
IV- Đánh giá cuối bài;
Giáo Viên: Trần Thị Kim Dung Trang
4
Tr ờng THPT Nguyễn Công Trứ ============ Giáo án: Tin học 11
1. Những nội dung đã học:
- Cách tạo kiểu mảng một chiều và cách khai báo biến.
TYPE tên_kiểu_mảng = Array[ kiểu_chỉ_ số] of kiểu_phần_tử;
VAR tên_biên_mang: tên_kiểu_mảng;

Hoặc bằng cách trực tiếp: VAR tên_biến_ mảng: Array[ kiểu_chỉ_ số] of kiểu_phần_ tử;
Ví dụ: VAR A: array[1 n] of integer;
- Tham chiếu đến từng phần tử: Tên biến[ chỉ số].
2. Câu hỏi và bài tập về nhà:
- Viết chơng trình nhập vào một mảng gồm n số nguyên ( 1 <= n <=100). Mỗi số có giá trị tuyệt
đối không quá 300. Tính tổng giá trị các phần tử có giá trị chia hết cho k.
1. Viết chơng trình nhập mảng 10 số nguyên.
Tính tổng các số chẵn.
Tính tổng các số lẻ
In các phần tử trong mảng ra màn hình?
2. Viết Chơng trình nhập mảng N số thực.
Tính tổng các số thực dơng.
Tìm Phần tử lớn nhất và nhỏ nhất cử mảng.
In ra màn hình các số thực dơng của mảng.
3. Viết chơng trình nhập mảng N số nguyên
Đếm và in ra màn hình các số nguyên tố trong mảng.
- Làm các bài tập sau bài học
- Chuẩn bị bài mới chu đáo cho tiết ví dụ sau.
V- Rút kinh nghiệm:












Giáo Viên: Trần Thị Kim Dung Trang
5

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×