Hai c©u lÖnh cuèi cïng cÇn ® îc gép thµnh c©u lÖnh. ghÐp.[r]
Trang 1Bµi tËp
Trang 2While <điều kiện> Do <câu lệnh>
• Điều kiện: th ờng là 1 phép so sánh
• Câu lệnh: có thể là một câu lệnh đơn giản hay câu lệnh ghép
Lưuưý:ưđốiưvớiưcácưcâuưlệnhưghépưphảiưđểưtrongưc uưtrúc:ưBegin end; ấ
Ví dụ: Câu lệnh ghép
Var … ;
Begin
…;
While <điều kiện> do Begin
<Câu lệnh 1>; <Câu lệnh 2>; <Câu lệnh 3>; ;
end;
…;
End.
Ví dụ: Câu lệnh đơn giản
Var … ; Begin
…;
While <điều kiện> do <Câu lệnh>;
…;
End.
Trang 32 Luyện tập:
Bài 1: Trong các câu lệnh sau, câu lệnh nào sai và sai ở đâu?
A While i:= 1 Do t:= 10;
B While a<= b; Do write(‘b khong nho hon a’);
C While 1= 1 Do write(‘Toi lap trinh rat gioi’);
D i:= 1; While i <10 Do t:= t + i ; i:= i+1;
Đáp án
A: Sai, thừa dấu hai chấm ở sau biến i
B: Sai, thừa dấu chấm phẩy tr ớc từ khoá Do
C: Sai, vòng lặp vô hạn do điều kiện luôn đúng (lỗi ngữ nghĩa, về mặt cú pháp
vẫn hợp lệ)
D: Sai, vòng lặp vô hạn do không có câu lệnh làm thay đổi biến i (lỗi ngữ nghĩa, về mặt cú pháp vẫn hợp lệ)
Trang 4Bài 2: Đoạn lệnh sau đây sẽ cho kết quả gì?
So:= 1;
While So < 10 Do writeln (So);
So:= So +1;
A In ra các số từ 1 đến 9
B In ra các số từ 1 đến 10
C In ra vô hạn các số 1, mỗi số nằm trên 1 dòng
D Không ph ơng án nào đúng
Trong câu lệnh lặp, điều kiện luôn luôn đúng Trong đoạn ch ơng trình có câu lệnh tăng giá trị của i lên 1 đơn vị, nh ng câu lệnh này không đ ợc thực hiện vì nằm ngoài vòng lặp, vì thế vòng lặp đ ợc thực hiện vô tận Hai câu lệnh cuối cùng cần đ ợc gộp thành câu lệnh
ghép
Trang 52 LuyÖn tËp:
Bµi 3: H·y t×m hiÓu ®o¹n ch ¬ng tr×nh sau ®©y:
x := 0; tong:= 0;
While tong <= 20 Do Begin
Writeln(tong);
tong:=tong +1;
End;
x:= tong;
Sau khi ®o¹n ch ¬ng tr×nh trªn ® îc thùc hiÖn, gi¸
trÞ cña x b»ng bao nhiªu?
21
Trang 6Bài 4: Hãy viết ch ơng trình, nhập 1 số thực a nằm trong khoảng từ 1 đến 10 và yêu cầu nhập lại nếu số không thoả mãn
Var a: real;
Begin
Write(‘Hay nhap gia tri cua a =’); Readln (a);
While (a<1) or (a>10) Do
Begin Write(‘Hay nhap lai gia tri cua a =’); Readln (a); End;
Readln;
End.
Trang 72 LuyÖn tËp:
Bµi 5: H·y viÕt ch ¬ng tr×nh, nhËp 1 sè nguyªn n biÓu diÔn sÜ sè cña 1 líp (145) khi ng êi sö dông nhËp 1 sè nguyªn ngoµi kho¶ng nµy, ch
¬ng tr×nh c¶nh b¸o vµ yªu cÇu nhËp l¹i vµ chØ kÕt thóc khi mét sè hîp lÖ ® îc nhËp.
Var n: integer;
Begin
Write(‘Hay nhap si so cua lop n =’); Readln (n);
While (n<0) or (n>45) Do
Begin Write(‘Hay nhap lai si so cua lop n =’); Readln (n);
End;
Readln;
End.