Giáo án Điện tử tin học lớp 11 - Bài 10: Cấu trúc lặp

Program Bai_toan;

Uses Crt;

Var a,N:Integer;

 S:Real;

BEGIN

 Clrscr;

 Write(‘Nhap gia tri cua a= ‘);Readln(a);

 S:=1/a;N:=1;

 WHILE 1/(a+N)>=0.0001 DO

 BEGIN

 S:=S+1/(a+N);

 N:=N+1;

 END;

 Writeln(‘Gia tri cua tong S = ‘,S:8:3);

 Readln;

END.

 

ppt21 trang | Chuyên mục: Pascal | Chia sẻ: dkS00TYs | Lượt xem: 6537 | Lượt tải: 2download
Tóm tắt nội dung Giáo án Điện tử tin học lớp 11 - Bài 10: Cấu trúc lặp, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Bài 10 BÀI GIẢNG ĐIỆN TỬ TIN HỌC LỚP 11 (2 TIẾT) Bài toán 1: Bài toán 2: Các bài toán đặt vấn đề : Tính tổng S, với a là số nguyên và a>2 cho đến khi Xuất phát Lần 1 Lần 2 +… Lần N Mỗi lần thực hiện giá trị tổng S tăng thêm bao nhiêu? 	 1 Sau mỗi lần thực hiện giá trị tổng S tăng thêm  ( với i =1; 2; 3 ; ...;N) 	 a + i 	 CÙNG TÌM THUẬT TOÁN Bài toán 1: Bài toán 2: Cho đến khi  Số lần lặp biết trước. Việc tăng giá trị cho tổng S được lặp đi lặp lại cho đến khi Việc tăng giá trị cho tổng S được lặp đi lặp lại 100 lần. TÌM SỰ KHÁC BIỆT  Số lần lặp chưa biết trước. CẤU TRÚC LẶP 1. Bài toán đặt vấn đề - Dữ liệu ra (Output) : Tổng S	 Lập chương trình tính tổng sau: 	 - Dữ liệu vào (Input) : Nhập N	 Hãy xác định INPUT và OUTPUT của bài toán trên! I. LẶP VỚI SỐ LẦN LẶP BIẾT TRƯỚC PHÂN TÍCH BÀI TOÁN VỚI N = 100 	 NHẬN XÉT: S1 = 1 S2 = S1 + 1/2 S3 = S2 + 1/3 S4 = S3 + 1/4 	 .....	 S100 = S99 + 1/100	 Bắt đầu từ S2 việc tính S được lặp đi lặp lại 99 lần theo quy luật Ssau = Strước+ 1/i với i chạy từ 2  100	 . . . . . . . . . . . . . . . . . . . . Đ S B1: Nhập N; B2: S:=1; i:=2; B3: Nếu i > N thì đưa ra giá trị S => Kết thúc; B4 : S:= S + 1/i; B5: i := i +1 quay lại B3. XÂY DỰNG THUẬT TOÁN i:= i+1 FOR := TO DO ; Ví dụ: S:=1; 	 FOR i:=2 TO 100 DO S:=S+1/i; b. Dạng 2 (dạng lùi) FOR := DOWNTO DO ; Ví dụ: S:=1; 	 FOR i:=100 DOWNTO 2 DO S:=S+1/i; a. Dạng 1 (dạng tiến) 2. Lặp với số lần lặp biết trước  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ỏ hơn giá trị cuối. 	 For i:= 100 to 200 do write(i);	  Giá trị biến đếm được điều chỉnh tự động, vì vậy câu lệnh sau DO không được thay đổi giá trị biến đếm. Trong đó  Biến đếm là biến kiểu số nguyên hoặc kí tự. 	For i:=1 to 10 do write(i); 	For i:=‘a’ to ‘z’ do write(i); Uses crt; Var i,N : Integer; S : real; BEGIN Readln; END. S:=1; FOR i:=2 to N do S := S+1/i; Writeln(‘ Tong S =’,S:8:3); Write(‘ Nhap vao gia tri cua N :’);readln(N); Program Tinh_tong; Hãy áp dụng câu lệnh lặp dạng tiến để viết chương trình giải bài toán đặt vấn đề. Lập chương trình tính tổng sau: 	 S := 1 ; i := 2; i >N KT S := S +1/ i ; i := i +1; 2.08 1.83 1.5 1 4 3 2 Lượt i S 2.28 5 Nhập N S := 1 ; i := 2; 2>5 ? S S S := 1 +1/2 ; i := 2 +1; 3>5 ? S := 1.5+1/3 ; i := 3 +1; 4>5 ? S := 1.83+1/4 ; i := 4 +1; 5>5 ? S := 2.08+1/5; i := 5 +1; 6 S S S 6>5 ? In Tổng S Tổng S=2.28 Với N = 5 2.28 Đ Đ MÔ PHỎNG THUẬT TOÁN 	 3. Ví dụ Tính tổng S (với a là số nguyên nhập vào từ bàn phím và a>2). ? Hãy xác định giá trị khởi đầu của S, quy luật thay đổi giá trị của S và số lần lặp. Viết chương trình để giải bài toán trên. S:=1/a;- S:= S + 1/(a+i);- i chạy từ 1 đến 100 => Số lần lặp là 100 lần. 1. Bài toán Dữ liệu ra (Output) : Tổng S	 Dữ liệu vào (Input) : Nhập a	 Hãy xác định INPUT, OUTPUT và nêu thuật toán giải bài toán trên? Cho đến khi Tính giá trị tổng S, với a là số nguyên và a>2. thì dừng lại. II. LẶP VỚI SỐ LẦN LẶP KHÔNG BIẾT TRƯỚC Bước 2: S:=1/a; N:=1;  {Khởi tạo S và N} Bước 3:  Nếu 1/(a+N) Bước 5 Bước 4:  S:=S+1/(a+N); N:=N+1;  => quay lại bước 3 THUẬT TOÁN Bước 1: Nhập a. Đưa ra S => Kết thúc  Vòng lặp chỉ dừng khi 1/(a+N) Kết thúc. WHILE DO ; Điều kiện Đúng Câu lệnh Điều kiện: Là biểu thức quan hệ hoặc lôgic. 	 Câu lệnh: Là một câu lệnh của Pascal. Sai 2. Lặp với số lần lặp không biết trước Trong đó: Chừng nào điều kiện còn đúng thì câu lệnh còn được thực hiện. WHILE 1/(a+N) >= 0.0001 DO BEGIN 	S:=S+1/(a+N); N:=N+1; END; 3. Một số ví dụ a Bài toán đặt vấn đề: Nhận xét: Chừng nào 1/(a+N)>=0.0001 thì còn thực hiện: + Tăng giá trị của tổng S thêm 1/(a+N). + Tăng N thêm 1 đơn vị. Tính giá trị tổng S, với a là số nguyên và a>2 thì dừng lại. Cho đến khi Chương trình Program Bai_toan; Uses Crt; Var a,N:Integer; S:Real; BEGIN Clrscr; Write(‘Nhap gia tri cua a= ‘);Readln(a); S:=1/a;N:=1; WHILE 1/(a+N)>=0.0001 DO BEGIN	 S:=S+1/(a+N); N:=N+1; 	 END; Writeln(‘Gia tri cua tong S = ‘,S:8:3); Readln; END. b Lập chương trình nhập vào hai số nguyên dương M,N. Tìm ƯCLN của hai số đó. B1: Nhập M,N; B2 : Chừng nào MN nếu M>N thì M:=M-N, ngược lại thì N:=N-M; B3: Đến khi M=N thì => Đưa ra ƯCLN(M,N)=M; => Kết thúc.	 B1: Nhập M,N B2 : While MN DO 	Begin 	IF M>N then M:=M-N 	 else N:=N-M;	end;	 B3: In ƯCLN(M,N) THUẬT TOÁN CÁC BƯỚC VIẾT CHƯƠNG TRÌNH Tham khảo: Dạng khác của câu lệnh lặp với số lần lặp không biết trước REPEAT UNTIL ; Điều kiện Sai Câu lệnh Đúng Bài toán đặt vấn đề: Program Bai_toan; Uses Crt; Var a,N:Integer; S:Real; BEGIN Clrscr; Write(‘Nhap gia tri cua a= ‘);Readln(a); S:=1/a;N:=1; REPEAT {Bat dau lap} S:=S+1/(a+N); N:=N+1 	 UNTIL 1/(a+N) THEN ; FOR ... TO ... DO ...… IF THEN ESLE ; FOR ... DOWNTO ... DO ... WHILE DO ; Dạng khuyết. Dạng đầy đủ. Lặp với số lần lặp biết trước. Lặp với số lần lặp không biết trước. 

File đính kèm:

  • pptGiáo án Điện tử tin học lớp 11 - Bài 10_Cấu trúc lặp.ppt