BÀI 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚCTIẾT 1 Tiếp tục nghiên cứu về cấu trúc lặp.. Cú pháp của câu lệnh lặp với số lần chưa biết trước... • Như vậy việc thực hiện phép tính tổng ở
Trang 1Người soạn: Nguyễn Minh Hải
Trang 2Kiểm tra bài cũ:
Câu 1: Các câu lệnh Pascal sau có hợp lệ không? Vì sao? a) For i := 100 to 1 do writeln(‘A’);
b) For i := 1.5 to 10.5 do writeln(‘A’);
c) For i = 1 to 10 do writeln(‘A’);
d) For i := 1 to 10 do; writeln(‘A’);
Câu 2: Trong Pascal câu lệnh For 2: Trong Pascal câu lệnh For được sử dụng với số lần
lặp biết trước hay chưa?
a) Chưa biết trước.
b) Đã biết trước
Trang 3BÀI 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
(TIẾT 1)
Tiếp tục nghiên cứu về cấu trúc lặp.
Cú pháp của câu lệnh lặp với số lần
chưa biết trước.
Trang 4Có giống bài toán Lặp với số lần biết trước không ?
1 / CÁC HOẠT ĐỘNG LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Tìm thuật giải cho
bài toán
Ví dụ 2: Tính và đưa kết quả ra màn hình:
S =1+2+3+ …;
Cho đến khi S 20
Ví dụ 1: SGK
Trang 5Cụ thể về thuật toán theo ngôn ngữ tự nhiên:
B1: S 0 ; i 1
B2: Trong khi S<20 thì
B2a: S S+i
B2b: i i+1; B2
B3: Đưa S ra màn hình;
B4: Kết thúc
Trang 6• Như vậy việc thực hiện phép tính tổng ở thuật toán trên được lặp lại với số lần chưa biết trước, phụ thuộc vào
Việc lặp trên có thể được mô tả qua
sơ đồ khối sau:
Trang 7Điều kiện
Câu lệnh
Đúng
Sai
Điều kiện Sai
Sơ đồ khối:
Để viết chương trình chỉ dẫn máy tính thực hiện các hoạt động lặp như trong thuật toán, ta có thể sử dụng câu lệnh có dạng: “Lặp với số lần chưa biết trước”
Trang 8WHILE <Điều kiện> DO <Câu Lệnh>
2 / VÍ DỤ VỀ LỆNH LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Trong pascal câu lệnh lặp với số lần chưa biết trước có dạng:
Từ khoá
Thường là một phép so sánh Lệnh đơn hay câu lệnh ghép
Câu lệnh lặp này được thực hiện như sau:
1./ Kiểm tra: Điều kiện
2./ Nếu điều kiện sai, câu lệnh sẽ bị bỏ qua
và kết thúc vòng lặp
Nếu điều kiện đúng, thì thực hiện câu lệnh
và quay về bước kiểm tra điều kiện
Trang 9Câu lệnh
Đúng
Sai
Điều kiện
Mô tả đường đi của chương trình trên sơ
đồ khối?
Sơ đồ khối của câu lệnh While Do
Trang 10B1: S 0 ; i 1
Var S,i:Integer;
Begin
S:=0; i:=1;
Begin
S := S+i ; i := i+1 ;
End;
Readln;
End
Dùng lệnh này để thể hiện thuật toán trong ví dụ 2
Trang 11 Một số chú ý
Trong vòng lặp WHILE DO:
- Nếu ngay lần kiểm tra đầu tiên, mà kết quả là SAI thì các câu lệnh trong vòng lặp sẽ không được thực hiện lần nào.
- Số lần kiểm tra chính là số lần lặp
- Tùy theo điều kiện mà viết các câu lệnh
trong vòng lặp cho phù hợp.