intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Cấu trúc lặp - Tin học 11 - GV.Ph.H.Phúc

Chia sẻ: Phạm Hồng Phúc | Ngày: | Loại File: PPT | Số trang:22

433
lượt xem
76
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Mời các bạn tham khảo bài giảng dành cho tiết học Cấu trúc lặp để thiết kế cho mình những bài giảng hay nhất và giúp học sinh biết được ý nghĩa của cấu trúc lặp, cấu trúc chung của lệnh lặp For và While trong Pascal, biết sử dụng đúng hai dạng lệnh lặp For trong Pascal, biết được ý nghĩa của cấu trúc lặp có số lần lặp chưa xác định.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Cấu trúc lặp - Tin học 11 - GV.Ph.H.Phúc

  1. Bài 10 (2 TIẾT) BÀI GIẢNG ĐIỆN TỬ TIN HỌC LỚP 11
  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 Bài toán 1: 1 1 1 1 S= + + + ... + a a +1 a + 2 a + 100 Bài toán 2: 1 1 1 1 S= + + + ... + + ... a a +1 a + 2 a+N 1 cho đến khi < 0.0001 a+N
  3. CÙNG TÌM THUẬT TOÁN Xuất phát Lần 1 Lần 2 Lần N 1 1 1 1 S = + + +… + a a +1 a + 2 a+N 1 SauMỗi lần thựực hiện giá ttrng ổng S thêm   ( với i =1; 2; 3 ; ...;N) mỗi lần th c hiện giá trị ổ ị t S tăng tăng thêm bao nhiêu?  a+i
  4. TÌM SỰ KHÁC BIỆT Bài toán 1: Bài toán 2: 1 1 1 1 1 1 1 1 S= + + + ... + S= + + + ... + + ... a a +1 a + 2 a + 100 a a +1 a + 2 a+N 1 Cho đến khi < 0.0001 a+N • Việc tăng giá trị cho tổng • Việc tăng giá trị cho tổng S được lặp đi lặp lại 100 S được lặp đi lặp lại cho lần. đến khi 1 < 0.0001 a+N  Số lần lặp biết trước.  Số lần lặp chưa biết trước.
  5. CẤU TRÚC LẶP
  6. I. LẶP VỚI SỐ LẦN LẶP BIẾT TRƯỚC 1. Bài toán đặt vấn đề Lập chương trình tính tổng sau: 1 1 1 1 S =1 + + + +... + 2 3 4 N Hãy xác định INPUT và - Dữ liệuOUTPUT của bài Nhập N vào (Input) : toán trên! - Dữ liệu ra (Output) : Tổng S
  7. PHÂN TÍCH BÀI TOÁN VỚI N = 100 1 1 1 1 S =1+ + + + . . . + 2 3 4 100 .................... S1 = 1 NHẬN XÉT: S2 = S1 + 1/2 Bắt đầu từ S2 việc tính S được S3 = S2 + 1/3 lặp đi lặp lại 99 lần theo quy luật S4 = S3 + 1/4 Ssau = Strước+ 1/i ..... với i chạy từ 2 → 100 S100 = S99 + 1/100
  8. XÂY DỰNG THUẬT TOÁN Nhập N B1: Nhập N; B2: S:=1; i:=2; S:= 1 ; i:= 2 B3: Nếu i > N thì đưa ra giá trị S => Kết thúc; Đ i>N? Đưa ra S rồi kết thúc S S:= S + 1/i B4 : S:= S + 1/i; i:= i+1 B5: i := i +1 quay lại B3.
  9. 2. Lặp với số lần lặp biết trước a. Dạng 1 (dạng tiến) FOR := TO DO < CÂU LỆNH>; 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;
  10. 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);  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.
  11. Lập chương trình tính tổng sau: 1 1 1 1 S= + + + + + 1 ... 2 3 4 N Program Tinh_tong; Uses crt; Var i,N : Integer; SHãy áp dụng câu : real; lệnh lặp dạng BEGIN tiến để viết S:=1; chương trình giải bài toán đặt vấn Write(‘ Nhap vao giaề. cua N :’);readln(N); đ tri FOR i:=2 to N do S := S+1/i; Writeln(‘ Tong S =’,S:8:3); Readln; END.
  12. MÔ PHỎNG THUẬT TOÁN VớậN N 5 Nhi p = i Lượt 2 3 4 5 6 S 1 1.5 1.83 2.08 2.28 S := 1 ; i := 2; Đ i >N 6>5 5>5 4>5 3>5 ? 2>5 TInng ổng S ổ T S=2.28 KT S S S SS:= 1.83+1/4;; S := 2.08+1/5; S := 1.5+1/3; := S +1/2 1 +1/ i i :=i 5 +1;+1; i := 3 +1; := 4 2 i
  13. 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). 1 1 1 1 S = + + +... + a a +1 a +2 a +100 ? • 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.
  14. II. LẶP VỚI SỐ LẦN LẶP KHÔNG BIẾT TRƯỚC 1. Bài toán Tính giá trị tổng S, với a là số nguyên và a>2. 1 1 1 1 S= + + + ... + + ... a a +1 a + 2 a+N 1 Cho đến khi < 0.0001 thì dừng lại. a+ N Dữ liệu vào (Input) : Nhập a Hãy xác định Dữ liệu ra (Output) : Tổng và INPUT, OUTPUT S nêu thuật toán giải bài toán trên?
  15. THUẬT TOÁN Bước 1: Nhập a. Nhập a Bước 2: S:=1/a; N:=1; S:=1/a ; N:=1 {Khởi tạo S và N} Bước 3: S Nếu 1/(a+N) < 0.0001 1/(a+N) >= 0.0001 Đưa ra S => Bước 5 => Kết thúc Bước 4: Đ S:=S+1/(a+N); S:= S+1/(a+N); N:=N+1; N:= N+1; => quay lại bước 3 Bước 5: In S => Kết thúc.  Vòng lặp chỉ dừng khi 1/(a+N)
  16. 2. Lặp với số lần lặp không biết trước WHILE DO ; Trong đó: Điều kiện: Là biểu thức Sai quan hệ hoặc lôgic. Điều kiện Câu lệnh: Là một câu lệnh của Đúng Pascal. Câu lệnh Chừng nào điều kiện còn đúng thì câu lệnh còn được thực hiện.
  17. 3. Một số ví dụ a Bài toán đặt vấn đề: Tính giá trị tổng S, với a là số nguyên và a>2 1 1 1 1 S= + + + ... + + ... a a +1 a + 2 a+N 1 Cho đến khi < 0.0001 thì dừng lại. a+ N Nhận xét: WHILE 1/(a+N) >= 0.0001 Chừng nào 1/(a+N)>=0.0001 thì còn DO thực hiện: BEGIN + Tăng giá trị của tổng S thêm 1/ S:=S+1/(a+N); (a+N). + Tăng N thêm 1 đơn vị. N:=N+1; END;
  18. 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.
  19. 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ố đó. THUẬT CÁC BƯỚC VIẾT CHƯƠNG TOÁN TRÌNH B1: Nhập M,N; B1: Nhập M,N B2 : Chừng nào M≠ N B2 : While MN DO nếu M>N thì M:=M-N, Begin ngược lại thì N:=N-M; IF M>N then M:=M-N B3: Đến khi M=N thì else N:=N-M; => Đưa ra ƯCLN(M,N)=M; end; => Kết thúc. B3: In ƯCLN(M,N)
  20. 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 ; Câu lệnh Sai Điều kiện Đúng
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
5=>2