Gi¸o ¸n ®iÖn tö tin häc líp 8 Học cho đến khi thuộc bài Nhặt từng cọng rau cho đến khi hết rau Bài toán: Viết chơng trình nhập vào một dãy số cho đến khi gặp 0 thì dừng lại, tính tổng các số vừa nhập Hãy kể tên những hoạt động đợc thực hiện lặp đi lặp lại với số lần lặp không thể xác định trớc? 1. Các hoạt động lặp với số lần cha biết trớc Bài toán 1: Bài toán 2: NS +++++= 4321 NS +++++= 4321 Cho đến khi S>1000. Cho biết N Tính tổng Tính tổng 2. Ví dụ về lệnh lặp với số lần cha xác định Xuất phát 0 = S 1 + Lần 1 2 + Lần 2 + Lần N N + Mỗi lần thực hiện giá trị tổng S tăng thêm bao nhiêu? Sau mỗi lần thực hiện giá trị tổng S tăng thêm i đơn vị với i= 1;2;3;.N ? Cùng tìm thuật toán Bài toán 1: Bài toán 2: NS ++++= 321 N ++++= 321S Cho đến khi S>1000 Số lần lặp xác định Việc tăng giá trị cho tổng S đ)ợc lặp đi lặp lại cho đến khi S>1000 Việc tăng giá trị cho tổng S đ)ợc lặp đi lặp lại N lần. Số lần lặp ch)a xác định. tìm sự khác biệt WHILE <Điều kiện> DO <Câu lệnh> ; Điều kiện Đúng Câu lệnh Điều kiện : thờng là một phép so sánh Sai Trong đó: Câu lệnh lặp với số lần lặp ch)a xác định trong Pascal: Câu lệnh : là câu lệnh đơn hay câu lệnh ghép Ví dụ: While S<100 do S:= S+1; 3. Lệnh lặp với số lần cha xác định B1: Khởi tạo S=0; N:=0; B2: Nếu S<= 1000 thì thực hiện tăng N thêm 1 đơn vị, ngợc lại chuyển tới B4 B3: Cộng N vào S => sang B2 B4: In kết quả: N là số tự nhiên nhỏ nhất sao cho S>1000, Tổng S và kết thúc S:=0; N:=0; WHILE S<=1000 DO Begin N:=N+1; S:=S+N; END; Writeln( Số N nhỏ nhất để S>1000 , N) Writeln( Tổng đầu tiên >1000 ,S); NS +++++= 4321 Thuật toán Chơng trình Ví dụ 1 : cho đến khi S>1000. Cho biết N Tính tổng Program Bai_toan; Uses Crt; Var N:Integer; S:Real; BEGIN Clrscr; S:=0;N:=0; WHILE s< = 1000 DO BEGIN N:=N+1; S:=S+N; END; Writeln(‘So N nho nhat de tong >1000 la’,N); Writeln(‘Gia tri cua tong S =',S); Readln; END. H·y hoµn thiÖn ch¬ng tr×nh gi¶i bµi to¸n trªn? 100 1 4 1 3 1 2 1 1 +++++= S S:=0; For i:=1 to 100 do S:=S + 1/i; Writeln( S = , S:7:2);‘ ’ Dïng lÖnh FOR DO Dïng lÖnh Whie Do S:=0; i:=1; While i<=100 do begin S:=S + 1/i; i:=i+1; end; Writeln( S = , S:7:2);‘ ’ Cã thÓ sö dông lÖnh While do thay cho c©u lÖnh For Do VÝ dô 2 : TÝnh tæng Lu ý: Khi viết chơng trình với câu lệnh lặp, điều kiện phải đợc thay đổi để chơng trình không gặp lỗi lặp vô hạn. Ví dụ : Var a:integer; Begin a:=5; While a<6 do Write(' Chuong t rinh chay mai khong thoat duoc'); End. 4. Lặp vô hạn -Lỗi lập trình cần tránh . Gi¸o ¸n ®iÖn tö tin häc líp 8 Học cho đến khi thuộc bài Nhặt từng cọng rau cho đến khi hết rau Bài toán: Viết. +++++= 4321 Thuật toán Chơng trình Ví dụ 1 : cho đến khi S>1000. Cho biết N Tính tổng Program Bai_ toan; Uses Crt; Var N:Integer; S:Real; BEGIN Clrscr; S:=0;N:=0; WHILE s< = 1000 DO