Bài 8. Lặp với số lần chưa biết trước
Chia sẻ bởi Phạm Lê Phương Nhi |
Ngày 24/10/2018 |
49
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:
bài 8
Lặp với số lần chưa biết trước
GV : Phạm Hồng Ngọc
Học cho đến khi thuộc bài
Nhặt từng cọng rau cho đến khi hết rau
Bài toán: Viết chương trình nhập vào
một dãy số cho đến khi gặp 0 thì dừng
lại, tính tổng các số vừa nhập
Hãy kể tên những hoạt động được thực hiện lặp đi lặp lại với số lần lặp không thể xác định trước?
1. Các hoạt động lặp với số lần chưa biết trước
Bài toán 1:
Bài toán 2:
Cho đến khi S>1000. Cho biết N
Tính tổng
Tính tổng
2. Ví dụ về lệnh lặp với số lần chưa xác định
Dùng For
Dùng while
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?
? Sau mỗi lần thực hiện giá trị tổng S tăng thêm i đơn vị với i= 1;2;3;.N
?
Cùng tìm thuật toán
Bài toán 1:
Bài toán 2:
Cho đến khi S>1000
? Số lần lặp xác định
? Việc tăng giá trị cho tổng S được lặp đi lặp lại cho đến khi S>1000
Việc tăng giá trị cho tổng S được lặp đi lặp lại N lần.
? Số lần lặp chưa xác định.
tìm sự khác biệt
WHILE <Điều kiện> DO;
Điều kiện
Đúng
Câu lệnh
Điều kiện: thường là một phép so sánh
Sai
Trong đó:
Câu lệnh lặp với số lần lặp chưa xác định trong Pascal:
Câu lệnh: là câu lệnh đơn hay câu lệnh ghép
Ví dụ: While S<100 do s:= S+1;
3. Lệnh lặp với số lần chưa xác định
B1: Khởi tạo S=0; i:=0;
B2: Nếu S<= 1000 thì thực hiện
tăng i thêm 1 đơn vị,
ngược lại chuyển tới B4
B3: Cộng i vào S => sang B2
B4: In kết quả: N = i là số tự nhiên nhỏ nhất sao cho S>1000, Tổng S và kết thúc
S:=0; i:=0;
WHILE S<=1000 DO
Begin
i:=i+1;
S:=S+i;
END;
Writeln(`Số N nhỏ nhất để S>1000=`, i)
Writeln(` Tổng đầu tiên >1000=`,S);
Thuật toán
Chương trình
Ví dụ 1 :
cho đến khi S>1000. Cho biết N
Tính tổng
Program Bai_toan;
Uses Crt;
Var N:Integer;
S:Real;
BEGIN
Clrscr;
S:=0;N:=0;
WHILE s< = 1000 DO
BEGIN
N:=N+1;
S:=S+N;
END;
Writeln(`So N nho nhat de tong >1000 la`,N);
Writeln(`Gia tri cua tong S =`,S);
Readln;
END.
Hãy hoàn thiện chương trình giải bài toán trên?
S:=0;
For i:=1 to 100 do S:=S + 1/i;
Writeln(` S = `, S:7:2);
Dùng lệnh FOR ...DO
Dùng lệnh Whie...Do
S:=0; i:=1;
While i<=100 do
begin
S:=S + 1/i;
i:=i+1;
end;
Writeln(` S = `, S:7:2);
? Có thể sử dụng lệnh While ... do thay cho câu lệnh For...Do
Ví dụ 2 :
Tính tổng
Lưu ý: Khi viết chương trình với câu lệnh lặp, điều kiện phải được thay đổi để chương trình không gặp lỗi lặp vô hạn.
Ví dụ :
Var
a:integer;
Begin
a:=5;
While a<6 do
Write(` Chuong trinh chay mai khong thoat duoc`);
End.
4. Lặp vô hạn -Lỗi lập trình cần tránh
Tin học 8
Ghi nhớ!
Ngoài cấu trúc lặp với số lần lặp xác định 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.
While. . . do là câu lệnh lặp với số lần chưa biết trước trong Pascal
Lặp với số lần chưa biết trước
GV : Phạm Hồng Ngọc
Học cho đến khi thuộc bài
Nhặt từng cọng rau cho đến khi hết rau
Bài toán: Viết chương trình nhập vào
một dãy số cho đến khi gặp 0 thì dừng
lại, tính tổng các số vừa nhập
Hãy kể tên những hoạt động được thực hiện lặp đi lặp lại với số lần lặp không thể xác định trước?
1. Các hoạt động lặp với số lần chưa biết trước
Bài toán 1:
Bài toán 2:
Cho đến khi S>1000. Cho biết N
Tính tổng
Tính tổng
2. Ví dụ về lệnh lặp với số lần chưa xác định
Dùng For
Dùng while
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?
? Sau mỗi lần thực hiện giá trị tổng S tăng thêm i đơn vị với i= 1;2;3;.N
?
Cùng tìm thuật toán
Bài toán 1:
Bài toán 2:
Cho đến khi S>1000
? Số lần lặp xác định
? Việc tăng giá trị cho tổng S được lặp đi lặp lại cho đến khi S>1000
Việc tăng giá trị cho tổng S được lặp đi lặp lại N lần.
? Số lần lặp chưa xác định.
tìm sự khác biệt
WHILE <Điều kiện> DO
Điều kiện
Đúng
Câu lệnh
Điều kiện: thường là một phép so sánh
Sai
Trong đó:
Câu lệnh lặp với số lần lặp chưa xác định trong Pascal:
Câu lệnh: là câu lệnh đơn hay câu lệnh ghép
Ví dụ: While S<100 do s:= S+1;
3. Lệnh lặp với số lần chưa xác định
B1: Khởi tạo S=0; i:=0;
B2: Nếu S<= 1000 thì thực hiện
tăng i thêm 1 đơn vị,
ngược lại chuyển tới B4
B3: Cộng i vào S => sang B2
B4: In kết quả: N = i là số tự nhiên nhỏ nhất sao cho S>1000, Tổng S và kết thúc
S:=0; i:=0;
WHILE S<=1000 DO
Begin
i:=i+1;
S:=S+i;
END;
Writeln(`Số N nhỏ nhất để S>1000=`, i)
Writeln(` Tổng đầu tiên >1000=`,S);
Thuật toán
Chương trình
Ví dụ 1 :
cho đến khi S>1000. Cho biết N
Tính tổng
Program Bai_toan;
Uses Crt;
Var N:Integer;
S:Real;
BEGIN
Clrscr;
S:=0;N:=0;
WHILE s< = 1000 DO
BEGIN
N:=N+1;
S:=S+N;
END;
Writeln(`So N nho nhat de tong >1000 la`,N);
Writeln(`Gia tri cua tong S =`,S);
Readln;
END.
Hãy hoàn thiện chương trình giải bài toán trên?
S:=0;
For i:=1 to 100 do S:=S + 1/i;
Writeln(` S = `, S:7:2);
Dùng lệnh FOR ...DO
Dùng lệnh Whie...Do
S:=0; i:=1;
While i<=100 do
begin
S:=S + 1/i;
i:=i+1;
end;
Writeln(` S = `, S:7:2);
? Có thể sử dụng lệnh While ... do thay cho câu lệnh For...Do
Ví dụ 2 :
Tính tổng
Lưu ý: Khi viết chương trình với câu lệnh lặp, điều kiện phải được thay đổi để chương trình không gặp lỗi lặp vô hạn.
Ví dụ :
Var
a:integer;
Begin
a:=5;
While a<6 do
Write(` Chuong trinh chay mai khong thoat duoc`);
End.
4. Lặp vô hạn -Lỗi lập trình cần tránh
Tin học 8
Ghi nhớ!
Ngoài cấu trúc lặp với số lần lặp xác định 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.
While. . . do là câu lệnh lặp với số lần chưa biết trước trong Pascal
* 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ẻ: Phạm Lê Phương Nhi
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)