Chức năng - Thực hiện một hay một nhóm các lệnh nào đó cho đến khi thoả mãn một điều kiện định trước.. * Chú ý: Chính vì việc không dự đoán được trước vòng lặp sẽ chạy đến thứ bao nhiêu
Trang 1Néi dung:
I CÊu tróc lÖnh While do
1 Chøc n¨ng
2 Có ph¸p lÖnh
3 VD ¸p dông
Tho¸t
Trang 2VD: In ra mµn h×nh 5 lÇn dßng ch÷ “Lop 8A”.
Gi¶i:
Program IN;
uses CRT;
Begin Writeln(‘Lop 8A’);
Writeln(‘Lop 8A’);
Writeln(‘Lop 8A’);
Writeln(‘Lop 8A’);
Writeln(‘Lop 8A’);
End
RÊt mÊt thêi gian, nÕu lµ
100 lÇn th× sao nhØ? Trêi ¬i!
Trang 3I Cấu trúc lệnh
1 Chức năng
- Thực hiện một hay một nhóm các lệnh nào đó cho đến
khi thoả mãn một điều kiện định trước
*) Chú ý: Chính vì việc không dự đoán được trước vòng
lặp sẽ chạy đến thứ bao nhiêu thì dừng người ta xếp vòng lặp này thuộc loại lặp không xác định
Ví dụ giải thích
Trang 42 Cú pháp lệnh
WHILE <BTLG> DO <lệnh>
a) Giải thích câu lệnh
khi, còn làm
- BTLG là biểu thức logíc nó có giá trị đúng hoặc sai
là câu lệnh đơn hoặc câu lệnh ghép
*) Chú ý: Nếu là câu lệnh ghép thì đặt giữa
BEGIN END
Trang 5VD) Ta có 1 đoạn chương trình:
While i<= n do
Begin
tong:= tong + 1/i;
i:= i + 1;
End;
Câu hỏi: Các em hãy xác định từ khoá, BTLG, lệnh trong đoạn chương trình này
Trang 6b) Lưu đồ cú pháp
BTLG
Lệnh
Đúng
Sai
Kết thúc lệnh
Trang 7- Các bước thực hiện:
B1 : Kiểm tra <BTLG> biểu thức logíc
+) Nếu <BTLG> đúng chuyển sang bước 2
+) Nếu <BTLG> sai thì kết thúc lệnh
B2 : Thực hiện một hoặc một nhóm lệnh mà pascal cho phép và quay trở lại B1
*) Chú ý: Nếu <BTLG> mà sai thì lệnh WHILE DO sẽ không thực hiện vòng lặp nào
Trang 8- Hoạt động :
Câu lệnh WHILE DO điều khiển máy tính lặp đi lặp lại chu kì sau: chừng nào < BTLG> có giá trụ đúng thì máy còn thực
hiện một hay một khối lệnh được chỉ ra sau DO.
- VD: Lấy lại ví dụ đầu
Giải:
Program IN;
uses CRT;
var i: Byte;
BEGIN Clrscr;
i:=1;
While i<=10 do
Begin Writeln(‘Lop 8A’); i:=i+1; End;
Readln;
END.
Câu hỏi: Hãy giải thích chư
ơng trình này trên lưu đồ
Trang 93 VD áp dụng
Bài toán:
Viết chương trình tìm ước chung lớn nhất của 2 số a,b(a,b là số nguyên dương).
Giải:
• Đầu vào: a,b (kiểu Word)
• Đầu ra: UCLN (kiểu Word)
• Thuật giải:
- Nếu a = b thì UCLN(a,b) = a
- Nếu a>b thì UCLN(a,b) = UCLN(a-b,a)
- Nếu a<b thì UCLN(a,b) = UCLN(b-a,b)
Trang 10• Chương trình:
Program UCLN;
uses CRT;
var a,b, UCLN: Word;
BEGIN clrscr;
Writeln(‘nhap vao so nguyen duong a:’); Readln(a);
Writeln(‘nhap vao so nguyen duong b:’); Readln(b);
While a<>b do
Begin IF a>b then a:= a-b
else b:= b-a;
UCLN:=a ; End;
writeln( ‘UCLN cua chung la:’,UCLN)
Readln ;
Trang 11- VD:
Chợ Tru
Tôi đang đi chợ Tôi muốn mua bộ quần áo rẻ và đẹp Tôi vào mấy cửa hàng rồi mới mua
được
- Việc tôi đang đi chợ là thực hiện một lệnh hay một khối lệnh
- Việc tôi muốn mua bộ quần áo đẹp và rẻ là điều kiện định trước.
- Tôi vào mấy cửa hàng rồi mới mua được tôi không thể biết trước được Vậy việc tôi đi chợ cũng có chức năng giống như câu lệnh While do
Trang 12Bài tập về nhà
Bài 1,2 (SGK – 56)
• Bài tập: Viết chương trình tính tổng của dãy số
nguyên được nhập vào từ bàn phím
• Gợi ý:
• - Đầu vào: 1 dãy số n (kiểu Interger)
• - Đầu ra: Tổng của dãy (T có kiểu Interger)
• * Chú ý: phảI nhập số phần tử của dãy