b) 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ử.. Kiến thức- Viết chương trình Pascal sử dụ[r]
Trang 1Ngày soạn: 10/04/2012 Ngày dạy: 18/04/2012
- Ô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
Khoanh tròn chữ cái đứng trước phương án trả lời đúng các câu sau:
Câu 1: Cho S và i là biến nguyên Khi chạy đoạn chương trình :
s:=1;for i:=1 to 4 do s := s+i writeln(s); Kết quả in lên màn hình là của s là:
Câu 2: Với ngôn ngữ lập trình Passcal câu lệnh lặp for i:=1 to 10 do x:=x+1; thì biến đếm i phải được khai báo là kiểu dữ liệu
A Integer; B Tất cả các kiểu trên đều được C String D Real;
Câu 3: Trong câu lệnh lặp for i:=1 to 12 do Write(‘A’); thì lệnh Write(‘A’) được thực hiện bao nhiêu lần?
Câu 4: Để tính tổng S=1 + 2 +3 +4 … + n; em chọn đoạn lệnh:
A for i:=1 to n doif ( i mod 2)<>0 then S:=S + i;
B for i:=1 to n do if ( i mod 2)=0 then S:=S + i;
C for i:=1 to n do S:= S + i ;
D for i:=1 to n do if ( i mod 2)=1 then S:=S + i;
Câu 5: Điền Đ (đúng) hoặc S (sai) vào đầu các câu lệnh sau:
Trang 21.for i:=10 to 1 do writeln('b');
2 var x: integer; begin for x := 1 to 10 do writeln('b'); end
3 for i:=1 to 100 do ;
4 for i:=1 to 100 do writeln('b');
5.for i:=0.5 to 5.5 do writeln('b');
6.for i=1 to 100 do writeln('b');
7 while…do là câu lệnh lặp với số lần lặp biết trước trong pascal
8 S:=0; n:=0;
while S <= 100 do begin n:=n+1; S:=S+n end;
Câu 5: mỗi ý đúng được 0,5 điểm
Điền Đ (đúng) hoặc S (sai) với các câu sau:
S - 1.for i:=10 to 1 do writeln('b');
Đ- 2 var x: integer; begin for x := 1 to 10 do writeln('b'); end
Đ- 3 for i:=1 to 100 do ;
Đ- 4 for i:=1 to 100 do writeln('b');
S- 5.for i:=0.5 to 5.5 do writeln('b');
S- 6.for i=1 to 100 do writeln('b');
S- 7 while…do là câu lệnh lặp với số lần lặp biết trước trong pascal
S- 8 S:=0; n:=0;
while S <= 100 do begin n:=n+1; S:=S+n end;
Trang 35 Write(‘Hãy nhập vào số học sinh cần nhập chiều cao’); readln(n); 0,5 đ
6 For i:=1 to n do readln(Chieucao[i]); 1 đ
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)
a) 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
b) Liệt kê các biến dự định sẽ sử dụng trong chươngtrình Tìm hiểu phần khai báo dưới đây và tìm hiểutác dụng của từng biến:
Trang 4c) 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 dưới đây:
Beginclrscr;
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’);
readlnEnd
d) Gõ tiếp phần chương trình này vào máy tính sauphần khai báo Dịch, chạy chương trình
Trang 5Ngày soạn: 15/04/2012 Ngày dạy: 23/04/2012
- Ô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
2 Kiểm tra bài cũ:
Xen kẽ trong giờ
3 Bài mới
Trang 6HĐ CỦA GV VÀ HS NỘI DUNG
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
a) Tìm hiểu ý nghĩa của các câu lệnh sau đây: 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:
beginwriteln('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 dobegin
TbToan:=TbToan+DiemToan[i];
TbVan:=TbVan+DiemVan[i] end;TbToan:=TbToan/n; TbVan:=TbVan/n;writeln('Diem trung binh mon Toan: ',TbToan:3:2);
Trang 7writeln('Diem trung binh mon Van: ',TbVan:3:2); end
b) 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ử
4 - CỦNG CỐ (3’)
- Cách sử dụng biến mảng
- Cách kết hợp với lệnh lặp for…do
5 - HƯỚNG DẪN VỀ NHÀ (2’)
- Về nhà làm lại bài thực hành
- Xem lại các bài học của kỳ 2 chuẩn bị tiết sau làm bài tập
RÚT KINH NGHIỆM
………
………
………
………
Trang 8Ngày soạn: 15/04/2012 Ngày dạy: 25/04/2012
TIẾT 66 - BÀI TẬP
I - MỤC TIÊU
1 Kiến thức- Viết chương trình Pascal sử dụng câu lệnh về biến mảng.
2 Kỹ năng - Rèn luyện khả năng đọc chương trình, tìm hiểu tác dụng và kết
2 Kiểm tra bài cũ:
Xen kẽ trong giờ
3 B i m i à ớ
I GIẢI BÀI TẬP SGK BÀI 9 /T79
GV: Đưa ra các bài tập ở SGK trang 79 và
gọi học sinh lên bảng trả lời
1) 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 Ngoài ra chúng ta còn có thể lưu 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ả
2) Đáp án a) Sai Phải thay dấu phẩy bằng
1) Hãy nêu các lợi ích của việc sử dụngbiến mảng trong chương trình
2) Các khai báo biến mảng sau đây
Trang 9hai 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.
3) Đú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) Học sinh thực hành trên máy
Chương trình có thể như sau:
II MỘT SỐ BÀI TẬP THƯỜNG GẶP
trong Pascal đúng hay sai?
a) var X: Array[10,13] Of Integer;
b) var X: Array[5 10.5] Of Real; c) var X: Array[3.4 4.8] Of Integer;
d) var X: Array[10 1] Of Integer;
e) var X: Array[4 10] Of Real;
3) "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,nhưng chỉ dưới một tên duy nhất" Phátbiểu đó đúng hay sai?
4) Câu lệnh khai báo biến mảng sau đâymáy tính có thực hiện được không?var N: integer;
A: array[1 N] of real;
5) Viết chương trình Pascal sử dụng biến 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
Trang 10GV: Cho bài tập yêu cầu học sinh viết
chương trình giải quyết bài toán
if a[i]>max then max:=a[i];
if a[i]<max then min:=a[i];
s:=s+a[i];
end;
writeln('gia tri nho nhat la', min:4);writeln('gia tri lon nhat la', max:4);writeln('gia tri tb la',s/n:5:1);
readln;
end.
Bài tập 2
Trang 11số vừa nhập và in giá trị trung bình cộng
của mảng đó.
GV: Cho bài tập yêu cầu học sinh viết
chương trình giải quyết bài toán
Bài tập 3
Chương trình Pascal có thể như sau:
Trang 12theo thứ tự giảm dần.
GV: Cho bài tập yêu cầu học sinh viết
chương trình giải quyết bài toán
write('day so chua sap xep: ');
for i:=1 to n do write(a[i],' ');
write('day so sap xep giam dan:');
for vt:=1 to n-1 do for sau:=vt+1 to n do
Trang 13Ngày soạn: /04/2012 Ngày dạy: /05/2012
Tiết 67 - BÀI KIỂM TRA 1 TIẾT THỰC HÀNH
A MỤC TIÊU
1 Kiến thức
- Đánh giá kiến thức của HS qua bài kiểm tra
- Vận dụng những kiến thức đã học để làm bài kiểm tra
2 Kỹ năng: Bổ sung những kiến thức cơ bản về lập trình pascal
3 Thái độ: Nghiêm túc làm bài
Trang 14Bài 1: Viết chương trình nhập vào một mảng các số nguyên In ra màn hình dãy số
vừa nhập và in giá trị trung bình cộng của mảng đó
Bài 2: Viết chương trình nhập vào một dãy số và in ra giá trị lớn nhất và nhỏ nhất của
dãy số đó
3 Nhận xét rút kinh nghiệm giờ kiểm tra
4 Hướng dẫn về nhà
- Làm lại bài kiểm tra
- Xem lại các bài học để tiết sau ôn tập cuối năm
ĐÁP ÁN VÀ THANG ĐIỂM Bài 1: (6 điểm)
Program TinhTBC;
Uses crt;
Var
A: array[1 100] of integer
N,I:integer;
TB: real;
Begin
Clrscr;
Write(‘Nhap so phan tu cua mang N ’);
Write(‘Nhap gia tri cho cac phan tu cua mang ’);
For i:=1 to n do
Begin
Write(‘A[’,i,‘]=’);
End
Write(‘Mang vua nhap la: ’);
Write(‘Tinh TB cong cua mang: ’);
readln
End.
Trang 15if a[i]>max then max:=a[i]; 0.5 đ
if a[i]<min then min:=a[i]; 0.5 đ
end;
Trang 16Ngày soạn: / /2012 Ngày dạy: /05/2012
Tiết 68 - ÔN TẬP
I.MỤC ĐÍCH, YÊU CẦU
1.Kiến thức
Biết được câu lệnh lặp
Lặp với số lần chưa biết trước
Làm việc với dãy số
- Ôn bài cũ theo sơ đồ hình cây
IV TIẾN TRÌNH LÊN LỚP
1 Tổ chức
Vắng
2 Kiểm tra bài cũ:
Xen kẽ trong giờ
3 Bài mới
Trang 17HOẠT ĐÔNG CỦA GIÁO VIÊN HOẠT ĐÔNG CỦA HỌC SINH
Hoạt đông 1: Ôn Tập GV: Y/c học sinh vẽ sơ đồ hình cây
của câu lệnh lặp, lặp với số lần
chưa biết trước, làm việc với dãy
Lặp với lần chưa biết trước
Câu lệnh lặp – một lệnh thay cho nhiều lệnh
Tính tổng và tích bằng câu lệnh lặp
Ví dụ về lệnh lặp với số lần chưa biết trước
Các hoạt động lặp với số lần chưa biết trước
Lặp vô hạn lần – lỗi lập trình cần tránh
Tìm giá trị lớn nhất và nhỏ nhất của dãy số
Ví dụ về biến mảng
Làm việc với dãy số
Dãy số và biến mảng
Trang 184 Củng cố
Viết được chương trình dùng câu lệnh lặp For do
Viết được chương trình sử dụng câu lệnh lặp với số lần chưa biết trước While do
Viết chương trình làm việc với dãy số Array[1 100] of interger
5 Hướng dẫn về nhà
Học bài chuẩn bị cho tiết“kiểm tra học kỳ II”
RÚT KINH NGHIỆM
………
………
………
………
Trang 19Ngày soạn: /05/2012 Ngày dạy: /05/2012
Tiết 69 - ÔN TẬP I.MỤC ĐÍCH, YÊU CẦU
1.Kiến thức
Biết được câu lệnh lặp
Lặp với số lần chưa biết trước
Làm việc với dãy số
- Ôn bài cũ theo sơ đồ hình cây
IV TIẾN TRÌNH LÊN LỚP
1 Tổ chức
Vắng
2 Kiểm tra bài cũ:
Xen kẽ trong giờ
3 B i m i à ớ
Trang 20HOẠT ĐÔNG CỦA GIÁO VIÊN HOẠT ĐÔNG CỦA HỌC SINH
Hoạt đông 1: Bài tập
Bài 1: Viết chương trình Pascal
sử dụng biến 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 Tính tổng của
dãy số được nhập vào.
Gv: Chiếu đề bài lên bảng.
GV: Yêu cầu xác định bài toán
GV: Yêu cầu học sinh mô tả thuật toán
để tính tổng của dãy số
GV: Yêu cầu học sinh viết chương trình
GV: Khai báo như thế nào?
Hs: Mô tả thuật toán
B1: Nhập độ dài nB2: Nhập dãy sốB3: Sß0;
B4: SßS+a[i];
B5: In ra màn hình tổng của dãy số
Hs: Viết chương trình Program tinhtong;
Trang 21Hoạt đông 2: Bài 2
Bài 2 Viết chương trình nhập
một dãy số tối đa 100 số , sau đó
sắp xếp lại theo thứ tự tăng dần
Gv: Chiếu đề bài lên bảng.
GV: Yêu cầu học sinh viết chương
Clrscr ; Write(' Do dai cua day so N = ') ; Readln (N) ;
Writeln (' Nhap day so : ') ; For i := 1 To N Do
Begin Write('A[', i ,'] = ') ; Readln ( A[i] ) ; End ;
i := 1 ; While (i <= n-1) Do Begin
j := i+1;
While j<=n do Begin
If A[j] < A[i] then Begin
T := A[j];
A[j ] := A[i];
A[i] := T ; End ;
j := j + 1;
End ;
i := i + 1;
End ; Writeln(' Day sau khi sap xep : ') ; For i := 1 To N Do Write(A[i] : 4,’;’) ; Readln ;
END
Trang 22Hoạt đông 3: Bài 3
Sử dụng biến mảng 1 chiều để viết các
Gv: Chiếu đề bài lên bảng.
GV: Yêu cầu học sinh viết chương
if a[vt]<a[sau] then
begin
tg:=a[vt];a[vt]:=a[sau];a[sau]:=tg;end;
for i:=1 to n do
write(a[i],' ');
readln;
end
Hoạt đông 4: Bài 4
Bài 4 Viết chương trình nhập n
số nguyên Đếm các số vừa chia
hết cho 2 vừa chia hết 3 Xuất
kết quả ra màn hình
Trang 23Gv: Chiếu đề bài lên bảng.
GV: Yêu cầu học sinh viết chương
Write(‘nhap so thu tu’,i);readln(x);
If (x mod 2=0) and(x mod 3=0) then
Hoạt đông 5: Bài 5
Bài 5: Viết chương trình nhập
dãy số, in các số lẻ ra màn hình,
tính tổng của các số lẻ có trong
danh sách
Gv: Chiếu đề bài lên bảng.
GV: Yêu cầu học sinh viết chương
Trang 24Hoạt đông 6: Bài 6
Bài 6: Viết chương trình nhập
dãy số, in các số chẵn ra màn
hình, tính tổng của các số chẵn
có trong danh sách.
Gv: Chiếu đề bài lên bảng.
GV: Yêu cầu học sinh viết chương
Viết được chương trình dùng câu lệnh lặp For do
Viết được chương trình sử dụng câu lệnh lặp với số lần chưa biết trước While do
Viết chương trình làm việc với dãy số Array[1 100] of interger
Trang 25Ngày soạn: / /2012 Ngày dạy: /05/2012
Tiết 70 - BÀI KIỂM TRA 1 TIẾT THỰC HÀNH
A MỤC TIÊU
1 Kiến thức
- Đánh giá kiến thức của HS qua bài kiểm tra
- Vận dụng những kiến thức đã học để làm bài kiểm tra
2 Kỹ năng: Bổ sung những kiến thức cơ bản về lập trình pascal
3 Thái độ: Nghiêm túc làm bài
Trang 26- Khoanh tròn chữ cái đứng trước kết quả đúng
Câu 1 Các câu lệnh Pascal sau đây lệnh nào được viết đúng?
S:=0; n:=0;
while S<=10 dobegin n:=n+1; S:=S+n end;
Trang 27Câu 4: Các khai báo mảng sau đây khai báo nào đúng?
a var X: Array[10,13] Of Integer;
b var X: Array[3.4 4.8] Of Integer;
c var X: Array[10 1] Of Integer;
d var X: Array[4 10] Of Real;
Câu 5 Khai báo mảng a có 11 phần tử từ 5 đến 15 là các số nguyên thì ta khai báo như sau:
a a:Array [1 11] of integer; b a:Array [5 15] of integer;
c a:Array [5 15] of integer; d a:Array [11] of integer;
PHẦN II: TỰ LUẬN
Câu 6: Sau mỗi câu lệnh sau đây
a if (15 mod 3)=0 then X:=X+2;
b if X>8 then X:=X+2;
giá trị của biến X sẽ là bao nhiêu, nếu trước đó giá trị của X bằng 7?
Câu 7: Viết cú pháp của câu lệnh lặp với số lần biết trước.
Câu 8 : Viết cú pháp của câu lệnh lặp với số lần chưa biết trước.
Câu 9 : Sử dụng biến mảng viết chương trình nhập vào N số nguyên từ bàn phím Sau
đó in ra màn hình giá trị lớn nhất và nhỏ nhất của dãy số đó
3 Nhận xét rút kinh nghiệm giờ kiểm tra
4 Hướng dẫn về nhà
- Làm lại bài kiểm tra
- Xem lại các bài học
Trang 28Câu 7: For (Biến đếm):=(giá trị đầu) to (giá trị cuối) do (câu lệnh); 0,5 đ
write('Hay nhap do dai cua day so, N = '); readln(n); 0.5 đ
writeln('Nhap cac phan tu cua day so:');
Trang 29For i:=2 to n do
Begin
if Min>a[i] then Min:=a[i]; 0.5 đ
End;