1. Kiến thức: Đạt chuẩn : Khai báo và sử dụng các biến mảng. Hiểu và viết được chương trình làm việc với dãy số. Trên chuẩn : Viết hoàn chỉnh chương trình Pascal sử dụng câu lệnh về biến mảng cho bài toán. 2. Kỹ năng: Sử dụng câu lệnh lặp for…do, if...then Kỹ năng đọc, hiểu và chỉnh sửa chương trình.
Trang 1BÀI THỰC HÀNH 7:
XỬ LÝ DÃY SỐ TRONG CHƯƠNG TRÌNH
A BẢNG MÔ TẢ CÁC NĂNG LỰC CẦN PHÁT TRIỂN
Nội dung chủ đề Nhận biết Thông hiểu Vận dụng thấp Vận dụng cao
Bài thực hành 7:
Xử lý dãy số
trong chương
trình
- HS gõ chương trình chính xác như yêu cầu SGK sử dụng biến mảng
- Biết lựa chọn câu lệnh lặp While…do hoặc For…do phù hợp với yêu cầu bài toán
- HS nhận biết trong chương trình có sử dụng các câu lệnh lồng nhau
- HS hiểu nên dùng biến mảng thay cho nhiều biến cùng kiểu dữ liệu trong chương trình
- Giải thích được kết quả
có được của chương trình khi sử dụng biến mảng
- Chạy chương trình với các giá trị khác nhau
Tính toán các kết quả nhận được
- Chỉnh sửa câu lệnh trong chương trình
- Dịch và chạy chương trình với các giá trị
gõ vào từ bàn phím
Viết các chương trình có sử dụng biến mảng
B HỆ THỐNG CÂU HỎI/BÀI TẬP THỰC HÀNH:
Biết :
1 Cách xếp loại kết quả học tập như thế nào ?
2 Cách tính điểm trung bình của 2 môn Toán và Văn ?
3 Cách nhận biết số lẻ trong dãy n số?
4 Bài toán nhập vào một dãy số nguyên, in ra màn hình dãy số đó Dãy số gồm bao
nhiêu phần tử?
5 Viết câu lệnh in ra màn hình dãy số theo hàng hoặc theo cột?
Hiểu :
1 Các câu lệnh được sử dụng trong phần thân chương trình trong bài toán xếp loại học sinh?
2 Liệt kê các biến dự định sẽ sử dụng trong chương trình tính điểm trung bình hai môn Toán và Văn?
3 Cần khai báo những biến gì cho bài toán: in ra màn hình các số lẻ trong dãy số đã nhập?
4 Cần khai báo những biến gì cho bài toán: nhập vào một dãy số nguyên, in ra màn hình dãy số đó?
5 Liệt kê các biến dự định sẽ sử dụng trong chương trình nhập dãy số, in dãy số đó ra màn hình, tính tổng của các phần tử trong danh sách
Vận dụng thấp :
1 Viết câu lệnh xếp loại mỗi bạn học sinh?
2 Viết câu lệnh tính điểm trung bình của cả lớp theo môn Toán và Văn?
3 Viết câu lệnh kiểm tra số đó có phải là số lẻ hay không?
4 Câu lệnh in ra màn hình dãy số đã nhập theo chiều ngang hoặc chiều dọc?
5 Câu lệnh tính tổng giá trị của các phần tử trong dãy?
Vận dụng cao :
Trang 21 Viết, dịch và chạy chương trình cho bài toán trên với số học sinh n = 10.
Viết chương trình nhập điểm của các bạn trong lớp Sau đó in ra màn hình số bạn đạt kết quả học tập loại giỏi, khá, trung bình và kém ( Nhập n = 10 để kiểm tra kết quả)
2 Nhập hai loại điểm Toán và Ngữ văn của các bạn, sau đó in ra màn hình điểm trung bình của mỗi bạn trong lớp, điểm trung bình của cả lớp theo từng môn Toán và Văn
3 Viết chương trình nhập một dãy số nguyên In ra màn hình các số lẻ trong dãy đó?
4 Viết chương trình nhập một dãy số nguyên In dãy số đó ra màn hình ?
5 Viết chương trình nhập dãy số, in dãy số đó ra màn hình, tính tổng của các phần tử trong danh sách
HƯỚNG DẪN TRẢ LỜI CÂU HỎI VÀ BÀI TẬP THỰC HÀNH:
Biết:
1 Cách xếp loại kết quả học tập :
a 8.0 xếp loại Giỏi
6.5 a 7.9 xếp loại Khá
5.0 a 6.4 xếp loại Trung bình
a 5.0 xếp loại Kém
2 Cách tính điểm trung bình của 2 môn Toán và Văn :
= (điểm Toán + điểm Ngữ văn)/2
3 Cách nhận biết số lẻ trong dãy n số là: Các số đó không chia hết cho 2
4 Bài toán nhập vào một dãy số nguyên, in ra màn hình dãy số đó Dãy số đó chưa cho biết số phần tử, vì vậy khi viết chương trình cần thêm câu lệnh nhập số phần tử của dãy
write('Nhap so phan tu cua day: '); readln(n);
5 Viết câu lệnh in ra màn hình dãy số theo hàng hoặc theo cột:
for i:=1 to n do write(a[i],' ');
hoặc: for i:=1 to n do writeln(a[i]);
Hiểu :
1 Các câu lệnh được sử dụng trong phần thân chương trình trong bài toán xếp loại học sinh: Câu lệnh lặp for…do, câu lệnh điều kiện If…then, …
2 Các biến dự định sẽ sử dụng trong chương trình tính điểm trung bình hai môn Toán
và Văn:
Var i, n: integer;
TbToan, TbVan: real;
DiemToan, DiemVan: array[1 100] of real;
3 Các biến cần khai báo cho bài toán: in ra màn hình các số lẻ trong dãy số đã nhập
var i,n:byte;
a:array[1 100] of integer;
4 Các biến cần khai báo cho bài toán: nhập vào một dãy số nguyên, in ra màn hình dãy số đó
var i,n:integer;
a:array[1 100] of integer;
5 Các biến dự định sẽ sử dụng trong chương trình nhập dãy số, in dãy số đó ra màn hình, tính tổng của các phần tử trong danh sách:
var a:array[1 100] of integer;
i,n,s:integer;
Vận dụng thấp :
Trang 31 Câu lệnh xếp loại mỗi học sinh:
Gioi:=0; Kha:=0; Trungbinh:=0; Kem:=0;
for i:=1 to n do
begin
if a[i]>=8.0 then Gioi:=Gioi+1;
if a[i]<5 then Kem:=Kem+1;
if (a[i]<8.0) and (a[i]>=6.5) then Kha:=Kha+1;
if (a[i]>=5) and (a[i]<6.5) then Trungbinh:=trungbinh+1
end;
2 Câu lệnh tính điểm trung bình của cả lớp theo môn Toán và Văn:
for i:=1 to n do
begin TbToan:=TbToan+DiemToan[i];
TbVan:=TbVan+DiemVan[i] end;
TbToan:=TbToan/n; TbVan:=TbVan/n;
3 Câu lệnh kiểm tra số đó có phải là số lẻ hay không:
for i:=1 to n do if a[i] mod 2 <>0 then write(a[i], ‘ ’);
4 Câu lệnh in ra màn hình dãy số đã nhập:
for i:=1 to n do write(a[i],' ');
5 Câu lệnh tính tổng giá trị của các phần tử trong dãy:
s:=0;
for i:=1 to n do s:=s+a[i];
Vận dụng cao :
1 Viết, dịch và chạy chương trình cho bài toán trên với số học sinh n = 10
Viết chương trình nhập điểm của các bạn trong lớp Sau đó in ra màn hình số bạn đạt kết quả học tập loại giỏi, khá, trung bình và kém ( Nhập n = 10 để kiểm tra kết quả) program Phanloai;
uses crt;
Var
i, n, Gioi, Kha, Trungbinh, Kem: integer;
A: array[1 100] of real;
Begin
clrscr;
write(‘Nhap so cac ban trong lop, n = ‘); readln(n);
writeln(‘Nhap diem:’);
For i:=1 to n do Begin write(i,’ ‘); readln(a[i]); End;
Gioi:=0; Kha:=0; Trungbinh:=0; Kem:=0;
for i:=1 to n do
begin
if a[i]>=8.0 then Gioi:=Gioi+1;
if a[i]<5 then Kem:=Kem+1;
if (a[i]<8.0) and (a[i]>=6.5) then Kha:=Kha+1;
if (a[i]>=5) and (a[i]<6.5) then Trungbinh:=trungbinh+1
end;
writeln(‘Ket qua hoc tap:’);
writeln(Gioi,’ ban hoc gioi’);
writeln(Kha,’ ban hoc kha’);
Trang 4writeln(Trungbinh,’ ban hoc trung binh’);
writeln(Kem,’ ban hoc kem’);
readln
End
2 Nhập hai loại điểm Toán và Ngữ văn của các bạn, sau đó in ra màn hình điểm trung bình của mỗi bạn trong lớp, điểm trung bình của cả lớp theo từng môn Toán và Văn? Var i, n: integer;
TbToan, TbVan: real;
DiemToan, DiemVan: array[1 100] of real;
begin
writeln('Diem trung binh:');
for i:=1 to n do
writeln(i,' ',(DiemToan[i]+DiemVan[i])/2:3:1);
TbToan:=0; TbVan:=0;
for i:=1 to n do
begin TbToan:=TbToan+DiemToan[i];
TbVan:=TbVan+DiemVan[i] end;
TbToan:=TbToan/n; TbVan:=TbVan/n;
writeln('Diem trung binh mon Toan: ',TbToan:3:2);
writeln('Diem trung binh mon Van: ',TbVan:3:2);
end
3 Viết chương trình nhập một dãy số nguyên In ra màn hình các số lẻ trong dãy đó? Program sole;
uses crt;
var i,n:byte;
a:array[1 100] of integer;
begin
write('Nhap so phan tu cua day: ');readln(n);
for i:=1 to n do
begin
write('a[',i,']='); readln(a[i]);
end;
write(‘Cac so le trong day la: ’);
for i:=1 to n do if a[i] mod 2 <>0 then
write(a[i], ‘ ’);
readln;
end
4 Viết chương trình nhập một dãy số nguyên In dãy số đó ra màn hình?
program nhap_inds;
var a:array[1 100] of integer;
i,n:integer;
begin
write('nhap n: ');readln(n);
for i:=1 to n do
begin
write('nhap so thu ',i,':');
Trang 5readln(a[i]);
end;
for i:=1 to n do write(a[i],' ');
readln;
end
5 Viết chương trình nhập dãy số, in dãy số đó ra màn hình, tính tổng của các phần tử trong danh sách?
program tong_ds;
var a:array[1 100] of integer;
i,n,s:integer;
begin
write('nhap n: ');readln(n);
for i:=1 to n do
begin
write('nhap so thu ',i,':');
readln(a[i]);
end;
for i:=1 to n do write(a[i],' ');
s:=0;
for i:=1 to n do s:=s+a[i];
write('tong',n:3,' so trong mang la',s:4);
readln;
end
Tuần: 30
Tiết: 57
Ngày soạn:………
Ngày dạy:………
BÀI TH7 : XỬ LÝ DÃY SỐ TRONG CHƯƠNG
TRÌNH (T1)
I MỤC TIÊU:
1 Kiến thức:
* Đạt chuẩn :
Khai báo và sử dụng các biến mảng
Hiểu và viết được chương trình làm việc với dãy số
* Trên chuẩn :
Viết hoàn chỉnh chương trình Pascal sử dụng câu lệnh về biến mảng cho bài toán
2 Kỹ năng:
Sử dụng câu lệnh lặp for…do, if then
Kỹ năng đọc, hiểu và chỉnh sửa chương trình
3 Thái độ:
Hs nghiêm túc trong học tập
II CHUẨN BỊ:
GV: Chuẩn bị tốt giáo án, phòng máy
HS:
Trang 6+ Sách vở, dụng cụ học tập.
+ Xem trước bài học
* RÈN NĂNG LỰC: NL tự học, NL giải quyết vấn đề, NL giao tiếp, NL sáng tạo,
NL hợp tác, NL sử dụng ngôn ngữ
III TIẾN TRÌNH LÊN LỚP:
1 Ổn định lớp: Kiểm tra sĩ số.
2 Kiểm tra bài cũ:
Hãy cho một số ví dụ về lặp với số lần chưa biết trước?
3 Bài mới:
PP giải quyết vấn đề
Tình huống : Viết chương trình nhập
điểm của các bạn trong lớp Sau đó in
ra màn hình số bạn đạt kết quả học
tập loại giỏi, khá, trung bình và kém
1 Cách xếp loại kết quả học tập như
thế nào ?
2 Liệt kê các biến dự định sẽ sử dụng
trong chương trình ?
3 Tìm hiểu các câu lệnh được sử
dụng trong phần thân chương trình ?
4 Viết, dịch và chạy chương trình
cho bài toán trên với số học sinh n =
10
* Xem lại các ví dụ 2 và ví dụ 3, bài
9 về cách sử dụng và khai báo biến
mảng trong Pascal
Học sinh nêu ý tưởng cho bài toán :
a 8.0 xếp loại Giỏi
6.5 a 7.9 xếp loại Khá
5.0 a 6.4 xếp loại Trung bình
a 5.0 xếp loại Kém
* Liệt kê các biến dự định sẽ sử dụng
trong chương trình :
Biến i : thứ tự của học sinh
Biến n : Số học sinh trong lớp
Biến Gioi, Kha, Trungbinh, Kem : là
số học sinh giỏi, khá, trung bình, kém
của lớp
Biến mảng a : để lưu điểm của các
học sinh
- Tìm hiểu phần khai báo dưới đây và
tìm hiểu tác dụng của từng biến:
program Phanloai;
uses crt;
Bài 1 : Viết chương trình nhập điểm của các bạn
trong lớp Sau đó in ra màn hình số bạn đạt kết quả học tập loại giỏi, khá, trung bình và kém (theo tiêu chuẩn từ 8.0 trở lên đạt loại giỏi, từ 6.5 đến 7.9 đạt loại khá, từ 5.0 đến 6.4 đạt trung bình và dưới 5.0 xếp loại kém)
program Phanloai;
uses crt;
Var
i, n, Gioi, Kha, Trungbinh, Kem: integer;
A: array[1 100] of real;
Begin
clrscr;
write(‘Nhap so cac ban trong lop, n = ‘); readln(n); writeln(‘Nhap diem:’);
For i:=1 to n do Begin write(i,’ ‘); readln(a[i]);
End;
Gioi:=0; Kha:=0; Trungbinh:=0; Kem:=0;
for i:=1 to n do begin
if a[i]>=8.0 then Gioi:=Gioi+1;
if a[i]<5 then Kem:=Kem+1;
if (a[i]<8.0) and (a[i]>=6.5) then
Kha:=Kha+1;
if (a[i]>=5) and (a[i]<6.5) then
Trungbinh:=trungbinh+1
end;
writeln(‘Ket qua hoc tap:’);
writeln(Gioi,’ ban hoc gioi’);
writeln(Kha,’ ban hoc kha’);
writeln(Trungbinh,’ ban hoc trung binh’);
writeln(Kem,’ ban hoc kem’);
readln
Trang 7i, n, Gioi, Kha, Trungbinh,
Kem: integer;
A: array[1 100] of real;
* Gõ phần khai báo trên vào máy tính
và lưu tệp với tên Phanloai Tìm hiểu
các câu lệnh trong phần thân chương
trình
Ngoài dùng vòng lặp For … do, ta
cần dùng câu lệnh điều kiện If…then
để so sánh tìm số học sinh giỏi, khá,
trung bình, kém
PP hoạt động nhóm
Gõ tiếp phần chương trình này vào
máy tính sau phần khai báo Dịch,
chạy chương trình
Yêu cầu: Dịch và chạy chương trình
với số học sinh là 10, kiểm tra số học
sinh giỏi, khá, trung bình, yếu
HS làm bài thực hành theo nhóm
Các nhóm báo cáo kết quả
Nhận xét kết quả bài toán
End.
4 Củng cố:
5 Dặn dò:
- Học bài theo sách giáo khoa và vở ghi
- Đọc trước bài học tiếp theo
* Rút kinh nghiệm:
Tuần: 30
Tiết: 58
Ngày soạn:………
Ngày dạy:………
BÀI TH7 : XỬ LÝ DÃY SỐ TRONG CHƯƠNG
TRÌNH (T2)
I MỤC TIÊU:
1 Kiến thức:
* Đạt chuẩn :
Khai báo và sử dụng các biến mảng
Hiểu và viết được chương trình làm việc với dãy số
* Trên chuẩn :
Viết hoàn chỉnh chương trình Pascal sử dụng câu lệnh về biến mảng cho bài toán
2 Kỹ năng:
Ôn luyện cách sử dụng câu lệnh lặp for…do
Trang 8 Củng cố các kĩ năng đọc, hiểu và chỉnh sửa chương trình.
3 Thái độ:
Hs nghiêm túc trong học tập
II CHUẨN BỊ:
GV: Chuẩn bị tốt giáo án, phòng máy
HS:
+ Sách vở, dụng cụ học tập
+ Xem trước bài học
* RÈN NĂNG LỰC: NL tự học, NL giải quyết vấn đề, NL giao tiếp, NL sáng tạo,
NL hợp tác, NL sử dụng ngôn ngữ
III TIẾN TRÌNH LÊN LỚP:
1 Ổn định lớp: Kiểm tra sĩ số.
2 Kiểm tra bài cũ:
3 Bài mới:
PP giải quyết vấn đề
Tình huống: Nhập hai loại điểm Toán và
Ngữ văn của các bạn, sau đó in ra màn
hình điểm trung bình của mỗi bạn trong
lớp
1 Cách tính điểm trung bình của 2 môn
Toán và Văn ?
2 Cần khai báo những biến gì cho bài
toán ?
3 Viết câu lệnh tính điểm trung bình của
mỗi bạn học sinh ?
4 Viết câu lệnh tính điểm trung bình của
cả lớp theo môn Toán và Văn?
* Học sinh nêu ý tưởng :
Tính điểm trung bình 2 môn Toán và
Văn như sau :
= (điểm Toán + điểm Ngữ văn)/2
Phần khai báo:
Var i, n: integer;
TbToan, TbVan: real;
DiemToan, DiemVan: array[1 100] of
real;
Phần thân chương trình:
begin
writeln('Diem trung binh:');
for i:=1 to n do
writeln(i,' ', (DiemToan[i]
+DiemVan[i])/2:3:1);
TbToan:=0; TbVan:=0;
for i:=1 to n do
Bài 2 : Bổ sung và chỉnh sửa chương trình trong
bài 1 để nhập hai loại điểm Toán và Ngữ văn của các bạn, sau đó in ra màn hình điểm trung bình của mỗi bạn trong lớp (theo công thức điểm trung bình
= (điểm Toán + điểm Ngữ văn)/2), điểm trung bình của cả lớp theo từng môn Toán và Ngữ văn
Var i, n: integer;
TbToan, TbVan: real;
DiemToan, DiemVan: array[1 100] of real;
begin
writeln('Diem trung binh:');
for i:=1 to n do
writeln(i,' ',(DiemToan[i]+DiemVan[i])/2:3:1); TbToan:=0; TbVan:=0;
for i:=1 to n do begin TbToan:=TbToan+DiemToan[i];
TbVan:=TbVan+DiemVan[i] end;
TbToan:=TbToan/n; TbVan:=TbVan/n;
writeln('Diem trung binh mon Toan: ',TbToan:3:2); writeln('Diem trung binh mon Van: ',TbVan:3:2);
end.
Trang 9begin TbToan:=TbToan+DiemToan[i];
TbVan:=TbVan+DiemVan[i] end;
TbToan:=TbToan/n; TbVan:=TbVan/n;
writeln('Diem trung binh mon Toan:',
TbToan:3:2);
writeln('Diem trung binh mon Van: ',
TbVan:3:2);
end.
PP hoạt động nhóm
Yêu cầu: Bổ sung các câu lệnh trên vào
vị trí thích hợp trong chương trình
Thêm các lệnh cần thiết, dịch và chạy
chương trình với các số liệu thử
HS làm bài thực hành theo nhóm
Các nhóm báo cáo kết quả
Nhận xét kết quả bài toán
4 Củng cố:
- Cách sử dụng biến mảng
- Cách kết hợp với lệnh lặp for…do
5 Dặn dò:
- Học bài và ôn lại các kiến thức trọng tâm
- Tìm hiểu thêm một số bài toán về biến mảng
* Rút kinh nghiệm:
Tuần: 31
Tiết: 59
Ngày soạn:………
Ngày dạy:………
BÀI TH7 : XỬ LÝ DÃY SỐ TRONG CHƯƠNG
TRÌNH (T3)
I MỤC TIÊU:
1 Kiến thức:
* Đạt chuẩn :
Khai báo và sử dụng các biến mảng
Hiểu và viết được chương trình làm việc với dãy số
* Trên chuẩn :
Viết hoàn chỉnh chương trình Pascal sử dụng câu lệnh về biến mảng cho bài toán
2 Kỹ năng:
Ôn luyện cách sử dụng câu lệnh lặp for…do
Củng cố các kĩ năng đọc, hiểu và chỉnh sửa chương trình
3 Thái độ:
Hs nghiêm túc trong học tập
II CHUẨN BỊ:
Trang 10 GV: Chuẩn bị tốt giáo án, phòng máy.
HS:
+ Sách vở, dụng cụ học tập
+ Xem trước bài học
* RÈN NĂNG LỰC: NL tự học, NL giải quyết vấn đề, NL giao tiếp, NL sáng tạo,
NL hợp tác, NL sử dụng ngôn ngữ
III TIẾN TRÌNH LÊN LỚP:
1 Ổn định lớp: Kiểm tra sĩ số.
2 Kiểm tra bài cũ: Trong quá trình thực hành
3 Bài mới:
PP giải quyết vấn đề :
Tình huống : Viết chương trình nhập
dãy n số và in ra màn hình các số lẻ
trong dãy số vừa nhập
1 Cách nhận biết số lẻ trong dãy n
số?
2 Cần khai báo những biến nào cho
bài toán trên ?
3 Viết câu lệnh kiểm tra số đó có
phải là số lẻ hay không ?
4 Viết chương trình hoàn chỉnh cho
bài toán ?
GV gợi ý và hướng dẫn
* Học sinh nêu ý tưởng :
Số lẻ là số không chia hết cho 2 (Có
thể áp dụng để kiểm tra số chẵn trong
dãy n số)
* Cần khai báo các biến :
- Biến i để chỉ thứ tự các phần tử
- Biến n cho biết số phần tử trong
dãy
- Biến mảng a để nhập và xử lý đối
với dãy số
* Thực hiện kiểm tra số lẻ bằng câu
lệnh:
if a[i] mod 2 <>0 then write(a[i]);
PP hoạt động nhóm
Yêu cầu : Viết chương trình, dịch và
chạy chương trình cho bài toán trên
HS làm bài thực hành theo nhóm
Các nhóm báo cáo kết quả
Nhận xét kết quả bài toán
Bài 3 : Viết chương trình nhập dãy n số và in ra
màn hình các số lẻ trong dãy số vừa nhập
a Hướng dẫn:
Thực hiện kiểm tra số lẻ bằng câu lệnh:
if a[i] mod 2 <>0 then write(a[i], ‘ ’);
b Chương trình:
Program sole;
uses crt;
var i,n:byte;
a:array[1 100] of integer;
begin
write('Nhap so phan tu cua day: ');readln(n);
for i:=1 to n do begin
write('a[',i,']='); readln(a[i]);
end;
write(‘Cac so le trong day la: ’);
for i:=1 to n do if a[i] mod 2 <>0 then
write(a[i], ‘ ’);
readln;
end.
4 Củng cố: