1. Trang chủ
  2. » Trung học cơ sở - phổ thông

Bài 8. LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC

17 12 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 1,55 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

* Em hãy cho một số ví dụ về hoạt động lặp với số lần chưa biết trước?.?. Lệnh lặp với số lần chưa biết trước..[r]

Trang 2

Nội dung

1 Lệnh lặp với số lần chưa biết trước

2 Lặp vô hạn lần-Lỗi lập trình cần tránh

Trang 3

 Bảo làm bài tập cho đến khi làm xong.

 Cô ấy phải đi bộ như vậy cho đến khi về tới nhà.

 Tôi phải nhập dữ liệu vào máy tính cho đến khi nhập xong

Hoạt động nào được lặp

lại?

Hoạt động sẽ kết thúc khi

nào?

* Em hãy cho một số ví dụ về hoạt động lặp với số lần chưa biết trước?

Trang 4

VD 1: 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 100 lần

VD 2: Viết chương trình

tính tổng các số tự nhiên đầu tiên.

S = 1 + 2 + 3 + … Cho đến khi S>100

Chưa biết số vòng lặp là bao

nhiêu

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

Ví dụ 1 thực hiện bao

nhiêu vòng lặp? Ví dụ 2 thực hiện bao nhiêu

vòng lặp?

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 5

1 Lệnh lặp với số lần chưa biết trước:

Ví dụ 1: Ví dụ 1

Nếu cộng lần lượt n số tự nhiên đầu tiên (n=1,2,3,…) Ta sẽ được kết quả:

… tăng dần

Điều kiện như thế nào thì kết thúc hoạt động lặp?

Điều kiện: Khi tổng T n nhỏ nhất lớn hơn 1000 thì kết

thúc hoạt động lặp

5

Trang 6

1 Lệnh lặp với số lần chưa biết trước

 Phân tích bài toán:

1 2 3

T1=1

T2=1+2

T3=1+2+3

Đúng Đúng Đúng

Tn =1+2+3+…+?

(Sao cho Tn nhỏ nhất lớn hơn 1000)

Sai, kết thúc việc tính tổng

?

Trang 7

S  0, n  0.

Nếu S≤1000 thì chuyển tới bước 3; Ngược lại (s>1000) chuyển tới bước 4.

N  n+1; S  S + n; và quay lại bước 2.

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.

Kí hiệu S là tổng cần tìm và ta có thuật toán như sau:

1 Lệnh lặp với số lần chưa biết trước

Trang 8

Để viết chương trình chỉ dẫn máy tính thực hiện các hoạt động lặp mà chưa xác định trước số

lần lặp, ta có thể sử dụng câu lệnh có dạng lặp với

số lần chưa xác định.

1 Lệnh lặp với số lần chưa biết trước

Trang 9

While <điều kiện> do <câu lệnh >;

 Trong đó:

While, do: là các từ khóa.

Điều kiện: thường là một 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.

Chú ý : Trong trường hợp câu lệnh ghép:

While < điều kiện > do

Begin

câu lệnh 1;

câu lệnh 2;

End;

1 Lệnh lặp với số lần chưa biết trước

 Cú pháp:

Trang 10

Kết thúc

* Hoạt động:

Quan sát sơ đồ khối, hãy cho biết câu lệnh while Do được hoạt động như

thế nào?

Bước 1 : Kiểm tra điều kiện.

Bước 2 : Nếu điều kiện SAI,

câu lệnh sẽ bị bỏ qua và việc

thực hiện lệnh lặp kết thúc

Nếu điều kiện đúng, thực hiện câu

lệnh và quay lại bước 1.

1 Lệnh lặp với số lần chưa biết trước

SƠ ĐỒ KHỐI

Trang 11

Ví dụ 2: Chúng ta biết rằng, nếu n(n>0) càng lớn thì 1/n càng nhỏ, nhưng luôn luôn lớn hơn 0

Với giá trị nào của n thì 1/n < 0.005 hoặc

1/n<0.003? Chương trình dưới đây tìm số n nhỏ nhất để 1/n nhỏ hơn một sai số cho trước:

Trang 12

1 Lệnh lặp với số lần chưa biết trước

 Phân tích bài toán ví dụ 2:

n

1 2 3

x1=1/1

x2=1/2

x3=1/3

Đúng Đúng Đúng

xn =1/n (Điều kiện 1/n<0.003) Sai, kết thúc quá

trình lặp

?

Trang 13

Uses crt;

Var x: Real; n: Integer;

Const Sai_So=0.003;

Begin Clrscr;

x:=1; n:=1;

While x >= Sai_So do

n:=n+1;

Writeln(‘So n nho nhat de 1/n < ‘,Sai_So:6:4, ‘ la ‘,n-1);

Readln;

End.

Uses crt;

Var x: Real; n: Integer;

Const Sai_So=0.003;

Begin

Clrscr;

x:=1; n:=1;

While x >= Sai_So do

x:=1/n;

n:=n+1;

Writeln(‘So n nho nhat de 1/n < ‘,Sai_So:6:4, ‘ la ‘,n-1);

Readln;

End.

Chương trình tính số n nhỏ nhất để 1/n nhỏ hơn một sai số cho trước:

Ta nhận được kết quả n=334

Trang 14

VD 3: Dùng câu lệnh lặp While … Do để viết chương trình thể hiện thuật toán trong Ví dụ 1.

var S,n: integer;

Begin

S:=0; n:=0;

while S<=1000 do

begin

n:=n+1; S:=S+n ;

end;

write(‘Tong dau tien >1000 la ’, s);

Readln;

End.

Ta nhận được kết quả n=45 và tổng đầu tiên lớn hơn 1000 là 1035

1 Lệnh lặp với số lần chưa biết trước

write(‘So n nho nhat de tong >1000 la’, n);

Trang 15

T:=0;

For i:=1 to 100 do T:=T + 1/i;

Writeln(‘ T= ’, T:7:2);

Dùng lệnh FOR DO Dùng lệnh While Do

T:=0; i:=1;

While i<=100 do

begin T:=T + 1/i;

i:=i+1;

end;

Writeln(‘ S = ’, S:7:2);

Có thể sử dụng lệnh While do thay

cho lệnh For Do

Ví dụ 4

Để viết chương trình tính tổng T=1+1/2+1/3+…+1/100

ta có thể sử dụng lệnh lặp với số lần cho trước for…do

Trang 16

+ Xem trước bài thực hành 6 Sử dụng lệnh lặp While…do

- Học bài

- Chuẩn bị: bài 8:

“Lặp với số lần

trước”(mục 2) các

em tự học trong

(SGK)

16

Ngày đăng: 02/04/2021, 16:40

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w