Ngày soạn :22/3/2009
Ngày dạy : 8A : 8B :
8C : 8D : 8E :
Tuần 29 Tiết 57:
Bài 9: Làm việc với dãy số
A. Mục tiêu :
- Học sinh biết được khỏi niệm mảng một chiều;
- Biết cỏch khai bỏo mảng, nhập, in, truy cập cỏc phần tử của mảng; - Hiểu thuật toỏn tỡm số lớn nhất, nhỏ nhất của một dĩy số.
- Thái độ học tập nghiêm túc, tích cực làm các bài tập thực hành.
B. Chuẩn bị :
1. Giáo viên :
- Tài liệu, Giáo án...
- Đồ dùng dạy học nh máy tính kết nối projector,...
2. Học sinh :
- Đọc trớc bài
C. Phương phỏp:
Vấn đỏp, thuyết trỡnh, hoạt động nhĩm.
D. Tiến trình tiết dạy : I. ổn định tổ chức lớp : I. ổn định tổ chức lớp :
Kiểm tra sĩ số : 8A: ...8B:... 8C...8D...8E ...
II. Kiểm tra bài cũ :
khơng kiểm tra .
III. Dạy bài mới :
- GV hướng dẫn HS tỡm hiểu lại thuật toỏn tỡm giỏ trị lớn nhất, nhỏ nhất của dĩy số nguyờn ( đĩ học ở Bài 5 ).
+ GV giải thớch về thuật toỏn tỡm giỏ trị lớn nhất của dĩy số nguyờn … Sau đú cho HS nhắc lại.
3. Tỡm giỏ trị lớn nhất và nhỏ nhất của dĩy số:
Tỡm giỏ trị lớn nhất ( Max ) của dĩy số nguyờn nhập từ bàn phớm
Thuật toỏn
Bước 1: Nhập N và dĩy A1, … , An;
Bước 2: Max ← A1;
+ Cho HS thảo luận, chỉnh sửa thuật toỏn trờn để tỡm ra số nhỏ nhất.
- GV cho HS đọc vớ dụ 3:
+ Để nhập cỏc số nguyờn sẽ được nhập vào, trước hết ta phải làm gỡ ?
+ Sau khi khai bỏo N, biến lưu cỏc số được nhập vào như là cỏc phần tử của một biến mảng A. Ngồi ra, cần khai bỏo thờm cỏc biến nào nữa ?
- GV: Trỡnh bày phần khai bỏo chương trỡnh …
- HS đọc vớ dụ 3.
+ HS: …trước hết ta khai bỏo biến N.
+ Cần khai bỏo thờm biến i làm biến đếm cho cỏc lệnh lặp, biến
Max và Min để lưu số lớn nhất, nhỏ nhất.
- HS theo dừi
- GV cho HS đọc phần ghi nhớ.
Bước 3: Với i từ 2 đến N thực hiện: Nếu Max < A1 thỡ Max ← Ai;
Bước 4: Đưa ra màn hỡnh giỏ trị Max rồi kết thỳc
Vớ dụ 3: (SGK)/ Tr 78. chương trỡnh
Program MaxMin;
Uses crt;
Var i, n, Max, Min : integer; A : array [1..100] of integer;
{Phần thõn chương trỡnh sẽ tương tự dưới đõy:}
Begin
Clrscr;
Write ( ‘ Hay nhap do dai cua day so, N = ‘); readln (n);
Writeln ( Nhap cac phan tu cua day so: m’);
For i:= 1 to n do
Begin
Write ( ‘ a[ , i , ] = ‘); readln (a[ i ] ); End;
Max:= a[1]; Min:= a[1];
For i:= 2 to n do
Begin if Max < a[ i ] then Max:= a[ i ]; if Min < a[ i ] then Min:= a[ i ]; End;
Write ( ‘ So lon nhat la Max = ‘ Max); Write ( ‘ So nho nhat la Min = ‘ Min); readln (n);
End.
GHI NHỚ: (SGK)/ Tr 79.
Củng cố - Nhận xét rút kinh nghiệm giờ học
Về nhà - Học sinh về nhà ụn bài
- Làm cỏc Cõu hỏi và BTcũn lại: sgk/ Tr 79; - Chuẩn bị tiết sau: Bài tập.
Ngày soạn :22/3/2009 Ngày dạy : 8A : 8B : 8C : 8D : 8E : Tuần 29 Tiết 58: bài tập A. Mục tiêu :
- Học sinh củng cố khỏi niệm mảng một chiều:
khai bỏo mảng, nhập, in, truy cập cỏc phần tử của mảng;
- Rèn kỹ năngxây dựng thuật toỏn tỡm số lớn nhất, nhỏ nhất của một dĩy số.
- Thái độ học tập nghiêm túc, tích cực làm các bài tập thực hành.
B. Chuẩn bị :
1. Giáo viên :
- Tài liệu, GA điện tử.
- Đồ dùng dạy học nh máy tính kết nối projector,...
2. Học sinh :
- Đọc trớc bài
C. Phương phỏp:
Vấn đỏp, thuyết trỡnh, hoạt động nhĩm.
D. Tiến trình tiết dạy : I. ổn định tổ chức lớp : I. ổn định tổ chức lớp :
Kiểm tra sĩ số : 8A: ...8B:... 8C...8D...8E ...
II. Kiểm tra bài cũ :
Khơng KT III. Dạy bài mới :
“Cĩ thể xem biến mảng là một biến đợc tạo từ nhiều biến cĩ cùng kiểu, nhng chỉ dới một tên duy nhất.” Phát biểu đĩ đúng hay sai?
Hãy nêu các lợi ích của việc sử dụng biến mảng trong chơng trình?
Các khai báo biến mảng sau đây trong Pascal đúng hay sai:
varX:Array[10,13] Of Integer; var X: Array[5..10.5] Of Real; varX:Array[3.4..4.8]OfInteger; var X: Array[10..1] Of Integer; var X: Array[4..10] Of Real; Câu lệnh khai báo mảng sau đây cĩ đợc máy tính thực hiện khơng?
var N: integer;
1. Đúng.
2. Lợi ích chính của việc sử dụng biến mảng là
rút gọn việc viết chơng trình, cĩ thể sử dụng câu lệnh lặp để thay nhiều câu lệnh. Ngồi ra chúng ta cịn cĩ thể lu trữ và xử lí nhiều dữ liệu cĩ nội dung liên quan đến nhau một cách hiệu quả.
3. Đáp án a) Sai. Phải thay dấu phảy bằng hai
dấu chấm;
b) và c) Sai, vì giá trị nhỏ nhất và lớn nhất của
chỉ số mảng phải là số nguyên;
d) Sai, vì giá trị đâu của chỉ số mảng phải nhỏ
hơn hoặc bằng chỉ số cuối;
e) Đúng.
4. Khơng. Giá trị nhỏ nhất và lớn nhất của chỉ
số mảng phải đợc xác định trong phần khai báo chơng trình. 5. Chơng trình cĩ thể nh sau: uses crt; var N, i: integer; A: array[1..100] of real; begin
A: array[1..N] of real; Viết chơng trình Pascal sử dụng mảng để nhập từ bàn phím các phần tử của một dãy số. Độ dài của dãy cũng đợc nhập từ bàn phím.
Đoạn chơng trình sau dùng để sắp xếp lại dãy số đợc ghi trong mảng A[i], i = 1,2,..., N, theo thứ tự tăng dần:
For i:=1 to N do For j:=i to N do If A[i] > A[j] then
Begin Tg:=A[i]; A[i]:=A[j]; A[j]:=Tg; End;
Hãy kiểm tra tính đúng đắn của đoạn chơng trình trên.
Hãy viết chơng trình nhập 5 số ngyên từ bàn phím và ghi ra màn hình số lớn nhất trong 5 số đĩ theo hai cách: khơng sử dụng biến mảng và sử dụng biến mảng.
Viết chơng trình sử dụng biến mảng để tính giá trị trung bình
của tổng N số nguyên đợc nhập
vào từ bàn phím.
clrscr;
write(’Nhap so phan tu cua mang, n= ’); readln(n);
for i:=1 to n do begin
write(’Nhap gia tri ’,i,’cua mang, a[’,i,’]= ’); read(a[i])
end; end.
6. Đúng.
7. a) Nếu khơng sử dụng biến mảng, chơng
trình cĩ thể dài nh sau: uses crt;
var So_1, So_2, So_3, So_4, So_5, Max: integer; begin
clrscr;
write('Nhap so thu nhat: '); readln(So_1); write('Nhap so thu hai: '); readln(So_2); write('Nhap so thu ba: '); readln(So_3); write('Nhap so thu tu: '); readln(So_4); write('Nhap so thu nam: '); readln(So_5); Max:=So_1;
If Max<So_2 then Max:=So_2; If Max<So_3 then Max:=So_3; If Max<So_4 then Max:=So_4; If Max<So_5 then Max:=So_5; writeln('So lon nhat: ',Max); end.
b) Nếu sửdụng biến mảng, chơng trình chỉ
ngắn gọn nh sau: uses crt;
var i, Max: integer;
A: array[1..5] of integer; begin
clrscr;
for i:=1 to 5 do
begin write('Nhap so thu ',i,':'); readln(A[i]) end;
Max:=a[1];
for i:=2 to 5 do If Max<a[i] then Max:=a[i]; writeln('So lon nhat: ',Max);
end. 8/ uses crt; var N, i: integer; TB: real; A: array[1..100] of real; begin clrscr;
write(’Nhap so phan tu cua mang, n= ’); read(n); for i:=1 to n do
begin
Viết chơng trình sử dụng biến mảng để tính giá trị trung bình của tổng N số nguyên đợc nhập vào từ bàn phím. Chơng trình nhập n số nguyên từ bàn phím và tính tổng các số d- ơng: readln(a[i]) end; TB:=0;
for i:=1 to n do TB:=TB+a[i]; TB:=TB/n;
write(’Trung binh bang ’,TB); end. 9/ uses crt; var n,k,S: integer; X: array[1..1000] of integer; begin clrscr;
write('Nhap so tu nhien n: '); readln(n); for k:=1 to n do
begin write('Nhap X[',k,']='); readln(X[k]) end; S:=0;
for k:=1 to n do
if X[k]>0 then S:=S+X[k]; writeln('Tong cac duong S=',S); readln;
end.
Củng cố - Nhận xét rút kinh nghiệm giờ bài tập.
Về nhà - Học sinh về nhà ụn bài Ngày soạn :23/3/2009 Ngày dạy : 8A : 8B : 8C : 8D : 8E : Tuần 30 Tiết 59: bài thực hành 7
xử lý dãy số trong chơng trình (T1)
A. Mục tiêu :
• Thực hành khai bỏo và sử dụng cỏc biến mảng ; • ễn luyện cỏch sử dụng cõu lệnh lặp if...then, for...do; • Củng cố kĩ năng đọc, hiểu và chỉnh sửa chương trỡnh.
• Hiểu và viết được chương trỡnh với thuật toỏn tỡm giỏ trị lớn nhất, nhỏ nhất của một dĩy số, tớnh tổng dĩy số.
B. Chuẩn bị :
1. Giáo viên :
- Tài liệu, GA điện tử.
- Đồ dùng dạy học nh máy tính kết nối projector,...
2. Học sinh :
- Đọc trớc bài
C. Phương phỏp:
Vấn đỏp, thuyết trỡnh, hoạt động nhĩm.