Chưa biết lặp mấy lần Lặp với số lần biết trước , sử dụng câu lệnh lặp For… Do để viết chương trình Lặp với số lần chưa biết trước , sử dụng câu lệnh gì để viết chương trình?... Các h
Trang 1CHUYÊN ĐỀ:
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Trang 2KIỂM TRA BÀI CŨ
Câu 1: Hãy ghi cú pháp của câu lệnh lặp For…do ?
Câu 2: Hãy viết chương tình tính tổng của 5 số đầu tiên ?
For < biến đếm >:= <giá trị đầu> to <giá trị cuối> do < câu lệnh >;
Var i, Tong: integer;
Begin
Tong:=0;
For i: = 1 to 5 do
Tong:= Tong + i;
Write(‘Tong= ’,Tong);
Readln;
End.
Trang 3VD1: Viết chương trình
tính tổng các số tự
nhiên từ 1 đến 100
S = 1 + 2 + 3 +
+100
Lặp 99 lần
VD2: Viết chương trình
nhập vào các số cho đến khi gặp 0 thì dừng lại Tính tổng các số vừa nhập.
Chưa biết lặp mấy
lần
Lặp với số lần biết trước ,
sử dụng câu lệnh lặp For…
Do để viết chương trình
Lặp với số lần chưa biết trước , sử dụng câu lệnh gì
để viết chương trình?
Trang 4Tiết: 49 - 50
BÀI : 8
Trang 5TiÕt: 49-50
1 Các hoạt động lặp với số lần chưa biết trước 2.Ví dụ về lệnh lặp với số lần chưa biết trước.
3 Lặp vô hạn lần-Lỗi lập trình cần tránh.
Trang 61.Các hoạt động lặp với số lần chưa
biết
- Các bạn học sinh nhặt rác ở
cơng viên.
- Nam học từ vựng tiếng anh bằng cách
viết lại nhiều lần cho đến khi thuộc.
- Con quạ nhặt đá bỏ vào bình cho
đến khi nước tràn ra.
Các em hãy cho thêm những ví dụ về hoạt động lặp với số lần chưa biết
trước?
Trang 7 Ví Dụ 1:SGK/67
Xảy ra 2 tình huống:
mình sẽ lặp lại hoạt động gọi điện thêm hai lần.
*Tình huống 2: Cứ 10 phút gọi điện một lần cho đến khi nào có người nhấc máy.
1 Các hoạt động lặp với số lần chưa biết trước
Trang 81 Các hoạt động lặp với số lần chưa biết trước
Ví dụ 2: Nếu cộng n số tự nhiên đầu tiên
(n=1,2,3,4…), ta được các kết quả
T1 = 1
T2 = 1+2
T3 = 1+2+3
………
Cần cộng bao nhiêu lần số tự nhiên đầu tiên để nhận
được Tn nhỏ nhất > 1000?
Trang 9THUẬT TOÁN:
Kí hiệu S là tổng cần tìm, ta có thuật toán sau:
n n+1 ;
ngược lại , chuyển tới bước 4;
2;
tự nhiên nhỏ nhất sao cho S >
1000 Kết thúc thuật toán ;
1 Các hoạt động lặp với số lần chưa biết trước
Trang 10Câu lệnh
Điều kiện
?
Đúng
Sai
Kết thúc
1 Các hoạt động lặp với số lần chưa biết trước
Mô tả hoạt động lặp với số lần chưa biết trước
Trang 11While < điều kiện > do < câu lệnh >;
Trong đó:
- Điều kiện thường là các phép so sánh;
- Câu lệnh có thể là câu lệnh đơn giản hay câu lệnh ghép
2.Ví dụ về lệnh lặp với số lần chưa biết trước.
Cấu Trúc
Trang 12Ví dụ 3: Với giá trị nào của n để 1/n < 0.003 ? Viết chương Trình tính số n nhỏ nhất để 1/n nhỏ hơn một sai số cho trước
Uses crt;
Var x:Real;
n:Integer;
Const Sai_So=0.003;
Begin
Clrscr;
x:=1; n:=1;
While x >= Sai_So do Begin
n:=n+1; x:=1/n;
End;
Writeln(‘So n nho nhat de 1/n < ‘,Sai_So:6:4, ‘ la ‘,n);
Readln;
End.
2.Ví dụ về lệnh lặp với số lần chưa biết trước.
Trang 13Ví dụ 4: Viết chương tình tính tổng n số trong ví dụ 2
Var S,n:Integer;
Begin
S:=0; n:=1;
While S<=1000 do Begin
S:=S+n; n:=n+1;
End;
Writeln(‘So n nho nhat de tong > 1000 la ‘,n);
Writeln(‘Tong dau tien lon hon n la ‘,S);
Readln;
End.
2.Ví dụ về lệnh lặp với số lần chưa biết trước.
Trang 14Ví dụ 5: Viết chương tình tính tổng T=1+1/2+1/3+…+1/n
T:=0;
T:=T+1/i;
Writeln(T);
T:=0;
i:=1;
Begin T:=T+1/i;
i:=i+1;
End;
Writeln(T);
For…do
While…do
2.Ví dụ về lệnh lặp với số lần chưa biết trước.
Trang 15Var a:Integer;
Begin
a:=5;
While a < 6 do
Writeln(‘A’);
End.
Var a:Integer;
Begin
a:=5;
While a < 6 do
Writeln(‘A’);
a:=a+1;
End;
End.
3 Lặp vô hạn lần-Lỗi lập trình cần tránh.
Trang 16GHI NHỚ:
1 Ngoài cấu trúc lặp với số lần lặp biết trước, các ngôn ngữ lập trình còn có các câu lệnh lặp với số lần chưa biết trước.
2 While…do là câu lệnh lặp với số lần chưa biết trước trong pascal.
Trang 17Câu 1: Hãy ghi cú pháp câu lệnh lặp với số lần chưa biết trước ? Cho ví dụ minh họa ?
Câu 2: Câu lệnh nào sau đây đúng ?
A While x:=10 do x:=x+1;
B While x=10 do x=x+1;
C While x<=10 do x:=x+1;
D Tất cả đều sai.
TỔNG KẾT
Trang 18- Về học bài này.
- Tập trả lời các câu hỏi và bài tập trang 71 SGK.
- Xem trước Bài thực hành 8
HƯỚNG DẪN HỌC TẬP