Lặp với số lần lặp biết trước và câu lệnh For-do Hoạt động của lệnh for – do: * Ở dạng lặp tiến: - Câu lệnh viết sau từ khóa do được thực hiện tuần tự, với biến đếm lần lượt nhận các g[r]
(1)• Để in màn hình dòng chữ “xin chao lop 11a2” sau, thì ta phải dùng câu lệnh nào? Bao nhiêu lần? xin chao lop 11a2 xin chao lop 11a2 xin chao lop 11a2 xin chao lop 11a2 xin chao lop 11a2 begin Writeln(‘xin chao lop 11a2’); Writeln(‘xin chao lop 11a2’); Writeln(‘xin chao lop 11a2’); Writeln(‘xin chao lop 11a2’); Writeln(‘xin chao lop 11a2’); Readln; End (2) CHƯƠNG CHƯƠNGIII: III:CẤU CẤUTRÚC TRÚCRẼ RẼNHÁNH NHÁNHVÀ VÀLẶP LẶP BÀI BÀI10 10 (3) Lặp Các bài toán đặt vấn đề : Tính tổng S, với a là số nguyên và a>2 Bài toán 1: S 1 100 Bài toán 2: 1 S 1 i 0.01 i (4) Lặp với a là số nguyên a>2 bài toán 1: tính và đưa kết màn hình tổng S 1 100 Xuất phát Lần Lần 1 2 S 0 Lần 100 +… 100 Sau Saumỗi mỗilần lầnthực thựchiện hiệngiá giátrịtrịcộng cộngvào vàoSStăng tăngthêm thêmmột mộtlượng lượnglàlài i (Với (Vớii=1, i=1,2,2,33,4, ,4,5,…,100) 5,…,100) • Việc tăng giá trị cho tổng S lặp lặp lại 100 lần số lần lặp biết trước (5) Lặp bài toán 2: 1 S 1 i Xuất phát Lần Lần Lần i S 0 i +… +…cho đến 0.01 i Sau lần thực giá trị cộng vào S tăng thêm (Với i=1, 2, ,4, 5,…) 0.01 i i • Việc tăng giá trị cho tổng S lặp lặp lại thỏa điều kiện 0.01 i Số lần lặp chưa biết trước (6) Lặp Bài toán 1: 1 1 S a a 1 a a 100 Bài toán 2: 1 1 S a a 1 a aN Cho đến 0,0001 aN • Việc tăng giá trị cho tổng S lặp lặp xuất phát • Việc tăng giá S trịđược cho gán giálạitrị choađến thỏa điều kiện tổng S lặp lặp 0,0001 aN lại 100 lần số lần lặp biết trước Số lần lặp chưa biết trước (7) - Trong số thuật toán có thao tác phải thực lặp lặp lại số lần - Cấu trúc mô tả thao tác lặp gọi là cấu trúc lặp * Lặp có hai loại: - Lặp với số lần biết trước - Lặp với số lần chưa biết trước (8) Lặp với số lần lặp biết trước và câu lệnh For-do Thuật toán Tong_1a Bước 1: Nhập a Bước 2: S1/a; N0; {Khởi tạo S và N} Bước 3: NN+1; Bước 4: Nếu N>100 thì chuyển tới bước 6; Bước 5: SS+1/(a+N) quay lại bước 3; Bước 6: Đưa S màn hình kết thúc Nhập a S1/a ; N0; NN+1 N>100 S S S+1/(a+N); Đưa S màn hình kết thức (9) Lặp với số lần lặp biết trước và câu lệnh For-do Thuật toán Tong_1b Bước 1: Nhập a Bước 2: S 1/a; N 101; {Khởi tạo S và N} Bước 3: N N-1; Bước 4: Nếu N<1 thì chuyển tới bước 6; Bước 5: S S+1/(a+N) quay lại bước 3; Bước 6: Đưa S màn hình kết thúc Nhập a S 1/a ; N 101; N N-1 N<1 S S S+1/(a+N); Đưa S màn hình kết thức (10) Lặp với số lần lặp biết trước và câu lệnh For-do a Dạng lặp tiến : FOR <BIẾN ĐẾM> := <GIÁ TRỊ ĐẦU> TO <GIÁ TRỊ CUỐI> DO <CÂU LỆNH>; Ví dụ: S:=0; FOR i:=1 TO 100 DO S:=S+1/i; b Dạng lặp lùi : FOR <BIẾN ĐẾM> := <GIÁ TRỊ CUỐI> DOWNTO <GIÁ TRỊ ĐẦU> DO <CÂU LỆNH>; Ví dụ: S:=0; FOR i:=100 DOWNTO DO S:=S+1/i; (11) Lặp với số lần lặp biết trước và câu lệnh For-do Trong đó Biến đếm là biến đơn, thường có kiểu nguyên For i:=1 to 10 write(i); For i:=‘a’ to ‘z’ write(i); Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm Giá trị đầu phải nhỏ giá trị cuối Nếu giá trị đầu lớn giá trị cuối thì vòng lặp không thực For i:= 100 to 200 write(i); (12) Lặp với số lần lặp biết trước và câu lệnh For-do Hoạt động lệnh for – do: * Ở dạng lặp tiến: - Câu lệnh viết sau từ khóa thực tuần tự, với biến đếm nhận các giá trị liên tiếp tăng từ giá trị đầu đến giá trị cuối For i:= 100 to 200 write(i); * Ở dạng lặp lùi: - Câu lệnh viết sau từ khóa thực với biến đếm nhận các giá trị liên tiếp giảm từ giá trị cuối đến giá trị đầu For i:= 100 downto write(i); Chú ý: Giá trị biến đếm điều chỉnh tự động, vì câu lệnh sau DO không thay đổi giá trị biến đếm (13) Các câu lệnh dạng tiến sau có hợp lệ không? vì ? Câu For i:=100 to Write(‘A’); TL : không hợp lệ, vì giá trị đầu lớn giá trị cuối Câu For i:=1.5 to 10.5 Write(‘A’); TL : không hợp lệ vì giá trị đầu giá trị cuối có liệu kiểu số thực Câu For i:=1 to 10 Write(‘A’); TL : Hợp lệ, kết : AAAAAAAAAA Câu TL : For i:=10 to 12 Write(‘A’); Hợp lệ, kết : AAA (14) Bài tập: Viết chương trình nhập từ bàn phím số nguyên dương N, tính và đưa màn hình tổng các số chẵn phạm vi từ đến N (15) (16) CỦNG CỐ Lặp: Lặp với số lần biết trước Lặp với số lần chưa biết trước 2.Lặp với số lần biết trước và câu lệnh for …do Dạng lặp tiến: Dạng lặp lùi: Cú pháp : For<biến đếm>:=<giá trị đầu> to <giá trị cuối> <câu lệnh>; Cú pháp : For<biến đếm>:=<giá trị cuối> downto<giá trị đầu> <câu lệnh>; *Hoạt động lệnh for - (17) Chúc các em học sinh chăm ngoan, học tốt ! (18)