Cấu trúc lặp mô tả thao tác lặp và được phân biệt bởi 2 loại là lặp với số lần biết trước và lặp với số lần chưa biết trước
Xét 3 bài toán :
Bài 1: tính tổng S1= 1+ 1/2+ . . . + 1/100
Bài 2: Hiển thị 100 chữ ‘Hello’ trên các hàng khác nhau.
Bài 3 : Tính tổng S2=1/a+1/(a+1)+1/(a+2)+ . . . +1/(a+n) cho đến
khi 1/(a+n)<0.0001 (Với a,n là số nguyên dương bất kì (n>2) )
7 trang |
Chia sẻ: quynhsim | Lượt xem: 700 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Bài giảng Tin học 11 bài 10: Cấu trúc lặp, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
BÀI 10: CẤU TRÚC LẶPBÀI 10: CẤU TRÚC LẶPHãy quan sát và cho biết :Mỗi tình huống mô tả điều gì được lặp lại ? Và lặp bao nhiêu lần ? Tớ phải bị phạt đi tới đi lui như thế này cho tới bao giờ ?Còn tớ phải bị phạt tập thể dục như thế này cho tới bao giờ ?Cậu phải làm 50 lần như thế.Cấu trúc lặp mô tả điều gì?Có mấy loại lặp?Cậu phải đi cho đến khi trời mưa.Tình huống 1Tình huống 2Xét 3 bài toán :Bài 1: tính tổng S1= 1+ 1/2+ . . . + 1/100Bài 2: Hiển thị 100 chữ ‘Hello’ trên các hàng khác nhau.Bài 3 : Tính tổng S2=1/a+1/(a+1)+1/(a+2)+ . . . +1/(a+n) cho đến khi 1/(a+n)2) ) 1. Lặp :Bài 1 và bài 2 sử dụng cấu trúc lặp với số lần biết trướcCấu trúc lặp mô tả thao tác lặp và được phân biệt bởi 2 loại là lặp với số lần biết trước và lặp với số lần chưa biết trướcHãy cho biết trong 3 bài toán trên, bài toán nào sử dụng cấu trúc lặp với số lần biết trước ?Hãy cho biết 2 câu lệnh sau thực hiện điều gì? Và biến i, j phải có kiểu dữ liệu nào mới phù hợp? For i:=1 to 100 do writeln(‘Hello’); For j:=‘z’ downto ‘a’ do writeln(j);Ở dạng lặp tiến : câu lệnh sau DO được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp tăng từ giá trị đầu đến giá trị cuốiĐể mô tả cấu trúc lặp với số lần biết trước, Pascal dùng câu lệnh FOR- DO với 2 dạng lặp tiến và lặp lùi.Lặp tiến: FOR := TO DO ;Lặp lùi: FOR := DOWNTO DO ;Trong đó: thường có kiểu số nguyên hoặc kiểu kí tự , : là biểu thức cùng kiểu với biến đếm và ≤ là câu lệnh đơn hoặc câu lệnh ghép.Ở dạng lặp lùi : câu lệnh sau DO được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp giảm từ giá trị cuối đến giá trị đầu* Câu lệnh sau DO không được thay đổi giá trị của biến đếm.Hãy nêu sự hoạt động của câu lệnh FOR – DO?Câu lệnh sau DO có được thay đổi giá trị của biến đếm không ? Vì sao?Hãy cho biết điểm giống và khác nhau của 2 câu lệnh FOR- DO dạng lặp tiến và lặp lùi?2. Lặp với số lần biết trước và câu lệnh FOR - DOVD1 : Ph©n tÝch vµ viÕt ch¬ng tr×nh bµi to¸n tÝnh tỉng s1= 1+1/2+1/3+ . . . +1/100 ®· nªu ë phÇn 1NhËn xÐt:S1 = 1S2 = S1 + 1/2S3 = S2 + 1/3S4 = 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/ivíi i ch¹y tõ 2 100 . . . . . . . . . . . . . . . . . . . . ch¬ng tr×nhUses crt;Var i :Integer; S : real;BEGIN Readln;END.S:=1;FOR i:=2 to 100 do S := S+1/i;Writeln(‘ Tong S =’,S:8:3);Program Tinh_tong;Sưa ch¬ng tr×nh bªn nh thÕ nµo ®Ĩ ®ỵc ch¬ng tr×nh tÝnh tỉng S=1+1/2+ . . .+1/N víi N lµ sè nguyªn d¬ng >2 nhËp vµo tõ bµn phÝmH·y ¸p dơng c©u lƯnh lỈp d¹ng tiÕn ®Ĩ viÕt ch¬ng tr×nh tÝnh tỉng trªn?VD2: Cho biết câu lệnh sau thực hiện điều gì:For i:=1 to 4 do For j:=1 to 5 doWriteln(‘HELLO’);VD3: Cho biết câu lệnh sau thực hiện điều gì: S:=0;T:=0;For i:=1 to 5 doBeginS:= s+i; T:=T+2;End;Write(‘S=‘,S,’T=‘,T);Hiển thị 20 chữ HELLOtrên các dòng khác nhau.BTVN: a/Viết chương trình tính tổng S=1+2+3+ . . + 100?b/Viết chương trình tính tổng S=1/a+1/(a+1)+ . . .+1/(a+n)Với a và n là các số nguyên dương nhập tùy ý từ bàn phím?Tính và hiển thị: S=15T=10Lưu ý :Các lệnh FOR –DO khi viết lồng nhau không được dùng chung một biến đếmSau Do nếu muốn thực hiện nhiều câu lệnh thì các lệnh ấy phải đặt trong Begin . . . End; { câu lệnh ghép}3. Lặp với số lần chưa biết trước và câu lệnh WHILE -DOĐể mô tả cấu trúc lặp với số lần chưa biết trước. Pascal dùng câu lệnh:WHILE DO ;Trong đó: là câu lệnh đơn hoặc câu lệnh ghép.: là biểu thức logic.VD1: Viếtchương trình tính tổng S=1+1/2+1/3+ . . .+1/n cho đến khi 1/n=0.1 DoBeginS:=S+i;i:=i+2;End;Write(‘S=‘,S);Kết quả của đoạn chương rình là:S=25Cho biết kết quả của đoạn chương rình sau:S:=0;i:=1;While 1/i>=0.1 DoBeginS:=S+ 1;i:=i+2;End;Write(‘S=‘,S);Kết quả của đoạn chương rình là:S=5
File đính kèm:
- BAI 10 TIN HOC 11.ppt