Khoanh trũn vào chữ cỏi đứng trước phương ỏn đỳng 5 điểm Cõu 1: Trong ngụn ngữ lập trỡnh Pascal cõu lệnh nào sau đõy là đỳng: A.. Nếu sau then muốn thực hiện nhiều cõu lệnh thỡ cỏc lệnh
Trang 1Tuần 29
Ngày dạy:
Tiết 54 Bài tập (Tiếp)
A/ Mục tiêu:
- Viết đợc chơng trình Pascal có sử dụng vòng lặp While do
- Biết sử dụng câu lệnh ghép.
- Rèn kỹ năng đọc hiểu chơng trình có sử dụng vòng lặp while do
b/ Chuẩn bị:
GV: Phũng mỏy, mỏy tớnh, mỏy chiếu, một số thuật toán và chơng trình HS: SGK, vở Ghi
C/ Tiến trình dạy học:
II/ Kiểm tra:
Viết cú pháp của câu lệnh lặp while do và For do?
III/ Bài mới:
Bài 1: Viết chương trỡnh tỡm
ƯCLN(a,b) Biết a, b được nhập từ
bàn phớm a,bZ
- GV yêu cầu HS sử dụng lệnh lặp
While do để viết CT.
- Tìm hiểu hoạt động của câu lệnh
While do có trong CT.
- Dịch, chạy chơng trình và sửa lỗi lập
trình (Nếu có).
- GV nhận xét, bổ sung CT.
- Lu CT với tên “USCLN”
Bài 2: Viết chương trỡnh tỡm
BCNN(a,b) Biết a, b được nhập từ
bàn phớm a,bZ
- GV yêu cầu HS sử dụng lệnh lặp
While do để viết CT.
- Tìm hiểu hoạt động của câu lệnh
While do có trong CT.
- Dịch, chạy chơng trình và sửa lỗi lập
trình (Nếu có).
- GV nhận xét, bổ sung CT.
- Lu CT với tên “BCNN”
- HS:
Program timUCLN;
Uses Crt;
Var a,b,r,a1,b1: integer;
BEGIN ClrScr;
Write(‘Nhap so thu nhat, a= ‘); Readln(a); a1:= a;
Write(‘Nhap so thu hai, = ‘); Readln(b); b1:= b;
While a mod b <> 0 do Begin
r:= a mod b;
a: = b; b: = r;
End;
Write (‘ Vay UCLN(‘, a1,
‘;’,b1,’)=’,b:2);
Readln END
- HS:
Program timBCNN;
Uses Crt;
Var a,b,n,min,max,max1: integer;
BEGIN ClrScr;
Write(‘Nhap so thu nhat, a= ‘); Readln(a); a1:= a;
Write(‘Nhap so thu hai, = ‘); Readln(b); b1:= b;
If a>b then Begin max: = a; min:=b; End Else Begin max:=b; min:= a; End;
n:= 2; max1:=max;
While max mod min <> 0 Do Begin
max:= max1*n;
Trang 2inc(n); {n:=n+1}
End;
Write (‘ Vay BCNN(‘, a, ‘;’,b,’)=’,max:2); Readln
END.
IV Củng cố:
- GV hệ thống toàn bộ kiến thức chính đã học trong giờ.
- Nhận xét đánh giá giờ học.
V Hướng dẫn về nhà:
- Chuẩn bị bài tập.
- Ôn tập chuẩn bị tiết sau kiẻm tra 45 phút
Ngày dạy:
Tiết 55 Kiểm tra 45 phút
A/ Mục tiêu:
- Hệ thống và củng cố, kiểm tra lại những kiến thức về CT bảng tính của HS.
- Khảo sát lại cách học tập, tiếp thu và vận dụng những KT đã học của HS.
- Rèn t duy khái quát hoá, tổng hợp và thực hành của học sinh.
b/ Chuẩn bị:
- Giáo viên: Đề bài
- Học sinh: Ôn lại những kiến thức đã học.
C/ Tiến trình dạy học:
II/ Kiểm tra
III/ Bài mới:
Đ
Ề lẻ
I Khoanh trũn vào chữ cỏi đứng trước phương ỏn đỳng (5 điểm)
Cõu 1: Trong ngụn ngữ lập trỡnh Pascal cõu lệnh nào sau đõy là đỳng:
A If <điều kiện> then <cõu lệnh 1> else <cõu lệnh 2>
B If <điều kiện> then <cõu lệnh 1>; else <cõu lệnh 2>;
C If <điều kiện> then <cõu lệnh 1> else <cõu lệnh 2>;
D If <điều kiện> ; then <cõu lệnh 1> else <cõu lệnh 2>;
Cõu 2: Trong ngụn ngữ lập trỡnh Pascal, phỏt biểu nào sau đõy là đỳng với cõu lệnh rẽ
nhỏnh If…then…?
A Nếu sau then muốn thực hiện nhiều cõu lệnh thỡ cỏc lệnh phải đặt giữa hai dấu
ngoặc đơn
B Nếu sau then muốn thực hiện nhiều cõu lệnh thỡ cỏc lệnh phải đặt giữa Begin và
End
C Nếu sau then muốn thực hiện nhiều cõu lệnh thỡ cỏc lệnh phải đặt giữa Begin và
End;
D Nếu sau then muốn thực hiện nhiều cõu lệnh thỡ cỏc lệnh phải đặt giữa Begin và
End.
Cõu 3: Trong ngụn ngữ lập trỡnh Pascal cõu lệnh nào sau đõy là đỳng:
A If a=5 then a:=d+1; else a:=d+2; B If a=5 then a:=d+1else a:=d+2;
C If a=5 then a=d+1; else a=d+2; D If a=5 then a:=d+1else a:=d+2
Cõu 4: Trong ngụn ngữ lập trỡnh Pascal cõu lệnh nào sau đõy là đỳng:
A If a=5 then a:=d+1; b:=2 else a:=d+2;
B If a=5 then
begin a:=d+1; b:=2; end;
Trang 3else a:=d+2;
Câu 5: Trong ngôn ngữ Pascal, muốn kiểm tra đồng thời cả ba giá trị của A, B, C có cùng
lớn hơn 0 hay không ta viết câu lệnh If thế nào cho đúng nhất?
a/ If A, B, C > 0 then… b/ IF (A>0) and (B>0) and (C>0) then… c/ IF A>0 and B>0 and c>0 then… d/ IF (A>0) or (B>0) or (c>0) then…
Câu 6: Trong ngôn ngữ Pascal, về mặt cú pháp câu lệnh nào sau đây đúng với cấu trúc lặp
For có một lệnh con?
A For i:=1 to 100 do a:=a-1; B For i:=1 to 100 do; a:=a-1;
C For i:=1 to 100 do a:=a-1 D For i:=1; to 100 do a:=a-1;
Câu 7: Trong lệnh lặp For…to…do của Pascal, trong mỗi vòng lặp biến đếm thay đổi như
thế nào?
A/ +1; B/ -1; C/ Một giá trị bất kì; D/ Một giá trị khác 0;
Câu 8: Sau khi thực hiện đoạn chương trình sau, giá trị của biến a bằng bao nhiêu?
a:=2 ;
for a:= 1 to 3 do a:= a+1;
A 3 B 4 C 5 D 2
Câu 9: Trong câu lệnh lặp for i:=1 to 10 do begin…end; câu lệnh ghép được
thực hiện bao nhiêu lần (nói cách khác, bao nhiêu vòng lặp được thực hiện?)
A Không lần nào B 1 lần C 10 lần D 2 lần
Câu 10: Trong ngôn ngữ Pascal, đoạn chương trình sau đưa ra màn hình kết quả gì?
For i:=10 to 1 do write (i,’ ‘);
II Các câu lệnh Pascal sau đây có hợp lệ không? Vì sao? (2 điểm)
a) if a>b then max:=a; else max:=b;
………
b) if a>b then max:=a else max:=b; ………
………
c) for i:=1 to 10 for j:=1 to 10 do x:=x+1;
………
d) for i:=1 to 10 do for i:=1 to 10 do x:=x+1;
………
III Hãy viết chương trình để giải quyết các bài toán sau : (3 điểm)
Nhập vào 2 số nguyên a, b So sánh hai số đó
Đ
Ề ch½n
I/ TRẮC NGHIỆM (3Đ) (Khoanh tròn vào đáp án đúng)
Câu 1: Phát biểu nào sau đây là đúng ?
a Cấu trúc lặp được sử dụng để chỉ thị cho máy tính thực hiện lặp lại một vài hoạt động nào đó cho đến khi một điều kiện nào đó được thoả mãn
b Chỉ ngôn ngữ lập trình Pascal mới có các câu lệnh lặp để thể hiện cấu trúc lặp
c Ngôn ngữ Pascal thể hiện cấu trúc lặp với số lần lặp cho trước bằng câu lệnh while…do
Câu 2: Cú pháp của câu lệnh For … do là:
a for<biến đếm>:=<Giá trị đầu> to<giá trị cuối> do<câu lệnh>;
b for<biến đếm>:=<Giá trị cuối> to<giá trị đầu> do<câu lệnh>;
c for<biến đếm>=<Giá trị đầu> to<giá trị cuối> do<câu lệnh>;
d for<biến đếm>=<Giá trị đầu> to;<giá trị cuối> do<câu lệnh>;
Trang 4Câu 3: Cho đoạn chương trình:
S:=2;
For i:=1 to 5 do S:=S+i;
Sau khi thực hiện đoạn chương trình trên S có kết quả là :
Câu 4: Câu lệnh viết đúng cú pháp trong ngôn ngữ lập trình Pascal là:
a While <điều kiện> to <câu lệnh>;
b While <điều kiện> do <câu lệnh>;
c While <điều kiện> to <câu lệnh1> do <câu lệnh 2>;
d While <điều kiện>; do <câu lệnh>;
Câu 5: Trong các câu lệnh sau, câu nào đúng:
a For i: = 100 to 1 do writeln(‘A’);
b For i: = 1 to 10 do writeln(‘A’);
c For i= 1 to 10 do writeln(‘A’);
d For i: = 1.5 to 9.5 do writeln(‘A’);
Câu 6: Cú pháp đúng của câu lệnh điều kiện trong ngôn ngữ lập trình Pascal là:
a If <điều kiện>; then <câu lệnh>;
b If <điều kiện> for <câu lệnh>;
c If<điều kiện> then<câu lệnh1>else<câu lệnh2>;
d If<điều kiện> then<câu lệnh1>;else<câu lệnh2>;
Câu 7: Cú pháp đúng của câu lệnh lặp trong ngôn ngữ lập trình Pascal là:
a For <biến đếm> = <giá trị đầu> ; to <giá trị cuối> do <câu lệnh>;
b For <biến đếm> := <giá trị đầu> to <giá trị cuối> do <câu lệnh>;
c For <biến đếm> := <giá trị đầu> : <giá trị cuối> do <câu lệnh>;
d For <biến đếm> := <giá trị đầu> to <giá trị cuối>; do <câu lệnh>;
Câu 8: Vòng lặp while do là vòng lặp:
A Biết trước số lần lặp B Chưa biết trước số lần lặp
C Biết trước số lần lặp nhưng giới hạn là <=100 D.Biết trước số lần lặp nhưng giới hạn là >=100
Câu 9: Chương trình pascal sau sẽ in ra màn hình nội dung gì?
Var i: integer;
BEGIN
For i:=1 to 10 do writeln(‘Day la lan lap thu ‘,i);
Readln;
END
A 1 câu “Day la lan lap thu i”; B 1 câu “Day la lan lap thu ‘, i”;
C 10 câu “Day la lan lap thu ‘, i”; D 10 câu "Day la lan lap thu i” với i theo thứ tự
từ 1->10;
Câu 10: Cho S và i biến kiểu nguyên Khi chạy đoạn chương trình :
S:= 0; i:= 1;
while i<= 6 do
begin
S:= S + i; i:= i + 2;
end;
Giá trị sau cùng của S là :
II Hãy viết lại chương tr×nh đúng từ chương trình có lỗi sau: (2 điểm)
Program bang cuu chuong;
var N,i:integer;
begin
write('Nhap so N='); readln(N);
Trang 5writeln('Bang nhan ',N);
writeln;
for i:=10 to 1 do;
begin
GotoXY(5,WhereY);
writeln(N,' x ',i:2,' = ',N*i:3);
end;
readln
end.
III Hóy viết chương trỡnh để giải quyết cỏc bài toỏn sau : (3 điểm)
Tính tổng của n số tự nhiên với n đợc nhập từ bàn phím.
Đáp án + biểu điểm đề chẵn
I Khoanh trũn vào chữ cỏi đứng trước phương ỏn đỳng (5 điểm)
điểm
điểm
II Viết lại chương trình đỳng từ chương trỡnh cú lỗi sau: (2 điểm)
Program bang_cuu_chuong;
var N,i:integer;
begin
write('Nhap so N='); readln(N);
writeln;
writeln('Bang nhan ',N);
writeln;
for i:=1 to 10 do
begin
GotoXY(5,WhereY);
writeln(N,' x ',i:2,' = ',N*i:3);
end;
readln
end.
III Chương trỡnh tính tổng của n số tự nhiên với n đợc nhập từ bàn phím. (3 điểm)
Program Tinh_Tong;
Begin Writeln (‘Nhap gia tri n’); Readln (n);
S:= 0;
Writeln (‘Tong cua’,N,’ số tự nhiên= ‘, S:5:3); Readln End.
Đáp án + biểu điểm đề lẻ
I Khoanh trũn vào chữ cỏi đứng trước phương ỏn đỳng (5 điểm)
điểm
điểm
II Cỏc cõu lệnh Pascal sau đõy cú hợp lệ khụng? Vỡ sao? (2 điểm)
a) if a>b then max:=a; else max:=b; Không hợp lệ vì thừa dấu chấm phẩy trớc else b) if a>b then max:=a else max:=b; Hợp lệ.
c) for i:=1 to 10 for j:=1 to 10 do x:=x+1; Không hợp lệ vì thừa for j:=1 to 10 d) for i:=1 to 10 do for i:=1 to 10 do x:=x+1; Không hợp lệ vì thừa do for i:=1 to 10
III Chương trỡnh nhập vào 2 số nguyờn a, b so sỏnh hai số đú: (3 điểm)
Program So_sanh;
Trang 6Var a, b, t: Integer;
Begin
Writeln (‘Nhap so nguyen a:’); Readln (a);
Writeln (‘Nhap so nguyen b:’); Readln (b);
If a<=b then write (a,’ ‘,b);
If b<a then write (b,’ ‘,a);
Readln
End