Bài 8. Lặp với số lần chưa biết trước

Chia sẻ bởi Thcs Nghĩa Phúc | Ngày 24/10/2018 | 54

Chia sẻ tài liệu: Bài 8. Lặp với số lần chưa biết trước thuộc Tin học 8

Nội dung tài liệu:

www.themegallery.com
Bài toán 1: S = 1 + 2 + 3 + 4 +….+ 100
Bài toán 2: Với N = 1,2,3,4….
S = 1 + 2 + 3 + 4 +…..cho đến khi Sn nhỏ nhất >1000
Em hãy cho biết số lần lặp của 2 bài toán sau?
www.themegallery.com
1. Các hoạt động với số lần chưa biết trước
Bài 8: Lặp với số lần chưa biết trước
Tuần 28
Tiết 51
Ví Dụ 1:SGK/67
Xảy ra 2 tình huống:
* Tình huống 1: Bạn Long gọi cho Trang nhưng không có người nhấc máy và bạn Long quyết định gọi thêm 2 lần nữa, nếu không có người nhấc máy sẽ kết thúc cuộc gọi không gọi nữa.
Tức là, bạn Long đã xác định (hay biết trước) số lần mình phải gọi điện là 2 lần.
www.themegallery.com
1. Các hoạt động với số lần chưa biết trước
Tuần 28
Tiết 51
Ví Dụ 1:SGK/67
* Tình huống 2: Lần khác bạn Long quyết định sẽ gọi đến khi nào có người bắt máy mới thôi
Lần này bạn Long sẽ lặp đi lặp lại công việc: nhấc máy, quay số, gọi cho Trang, Long không biết trước số lần Long sẽ phải gọi.
?Điều kiện ngưng việc lặp: là có người bắt máy
Bài 8: Lặp với số lần chưa biết trước
www.themegallery.com
1. Các hoạt động với số lần chưa biết trước
Bài 8: Lặp với số lần chưa biết trước
Tuần 28
Tiết 51
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ả
S1 = 1
S2 = 1+2
S3 = 1+2+3
.
.
.
Cần cộng bao nhiêu lần số tự nhiên đầu
tiên để nhận được Sn nhỏ nhất > 1000?
www.themegallery.com
1. Các hoạt động với số lần chưa biết trước
Bài 8: Lặp với số lần chưa biết trước
Tuần 28
Tiết 51
THUẬT TOÁN:
Kí hiệu S là tổng cần tìm, ta có thuật toán sau:
Bước 1: S ? 0; n? 0;
Bước 2: Nếu S<= 1000, n? n+1; ngược lại, chuyển tới bước 4;
Bước 3: S ? S+n và quay lại bước 2;
Bước 4: In kết quả S và n là số tự nhiên nhỏ nhất sao cho S > 1000. Kết thúc thuật toán;
www.themegallery.com
1. Các hoạt động với số lần chưa biết trước
Bài 8: Lặp với số lần chưa biết trước
Tuần 28
Tiết 51
www.themegallery.com
2. Ví dụ về lệnh lặp với số lần chưa biết trước:
Bài 8: Lặp với số lần chưa biết trước
Tuần 28
Tiết 51
While <điều kiện> do ;
 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.
Câu lệnh lặp được thực hiện như thế nào ?
Câu lệnh
Đúng
Sai
Kết thúc
www.themegallery.com
Bài 8: Lặp với số lần chưa biết trước
Tuần 27
Tiết 51
2. Ví dụ về lệnh lặp với số lần chưa biết trước:
Ví 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.
www.themegallery.com
Bài 8: Lặp với số lần chưa biết trước
Tuần 28
Tiết 51
2. Ví dụ về lệnh lặp với số lần chưa biết trước:
Ví 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 > 1000 la ‘, S);
Readln
End.
www.themegallery.com
Bài 8: Lặp với số lần chưa biết trước
Tuần 27
Tiết 51
2. Ví dụ về lệnh lặp với số lần chưa biết trước:
Ví dụ 5:

Viết chương tình tính tổng T=1+1/2+1/3+…+1/100
T:=0;
For i:=1 to 100 do
T:=T+1/i;
Writeln(T);
T:=0;
i:=1;
While i<= 100 do
Begin
T:=T+1/i;
i:=i+1
End;
Writeln(T);
For…do
While…do
www.themegallery.com
3. Lặp vô hạn lần – lỗi lập trình cần tránh:
Bài 8: Lặp với số lần chưa biết trước
Tuần 28
Tiết 51
Var a:Integer;
Begin
a:=5;
While a < 6 do
Writeln(‘A’);
End.
Var a:Integer;
Begin
a:=5;
While a < 6 do
Begin
Writeln(‘A’);
a:=a+1;
End;
End.
www.themegallery.com
* Một số chú ý trong vòng lặp While.do
Nếu ngay lần kiểm tra đầu tiên mà kết quả là sai thì các câu lệnh trong vòng lặp sẽ không được thực hiện lần nào.
Số lần kiểm tra chính là số lần lặp.
Tuỳ theo điều kiện mà viết các câu lệnh trong vòng lặp cho phù hợp.
www.themegallery.com
Lặp với số lần chưa biết trước
Tuần 27
Tiết 51
Bài 8
GHI NHỚ:
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.
www.themegallery.com
CỦNG CỐ
Bµi tËp 8.3 sbt/67: Câu lệnh nào sau đây sai vµ sai ë ®©u?
A. While i:=1 do t:=10;
B. While a<=b; do write(‘b khong nho hon a’);
C. While 1=1 do write(‘Toi lap trinh gioi’);
Trả lời
(A) Sai, thừa dấu hai chấm đầu tiên
(B) Sai, thừa dấu chấm phẩy trước từ khoá do
(C) Sai, vòng lặp vô hạn do điều kiện luôn đúng
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Thcs Nghĩa Phúc
Dung lượng: | Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)