1. Trang chủ
  2. » Vật lí lớp 11

Bài 10. Cấu trúc lặp

22 9 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 22
Dung lượng 886 KB

Nội dung

LÆp víi sè lÇn lÆp kh«ng biÕt tr íc... Cho ®Õn khi.[r]

(1)

Bài 10

Giáo án điện tử tin học lớp 11

(2)

Bài toán 1:

Bài toán 2:

Cỏc bi toỏn đặt vấn đề : Tính tổng S, với a số nguyên a>2

cho đến 1  0.0001

N

(3)

XuÊt phát

a

S 1

Lần 1

2 1

 

a

LÇn 2

+…

LÇn N

N

a

1

Mỗi lần thực giá trị tổng S tăng thêm bao nhiêu? 1

Sau lần thực giá trị tổng S tăng thêm ( với i =1; 2; ; ;N)

a + i

(4)

Bài toán 1: Bài toán 2:

Cho đến khi 10.0001N

a

Số lần lặp biết tr ớc.

ã Việc tăng giá trị cho

tng S đ ợc lặp lặp lại cho đến khi

0.0001 N

a 1

 

ã Việc tăng giá trị cho

tổng S đ ợc lặp lặp lại 100 lần.

tìm khác biệt

(5)(6)

1 Bài toán đặt vấn đề

- D÷ liƯu (Output) : Tỉng S

LËp ch ơng trình tính tổng sau:

- D liệu vào (Input) : Nhập N Hãy xác định

INPUT OUTPUT bài toán trên!

I Lặp với số lần lặp biết tr ớc

N 1

4 1 3

1 2

1 1

(7)

Phân tích toán với N = 100

Nhận xÐt:

S1 = 1

S2 = S1 + 1/2 S3 = S2 + 1/3 S4 = S3 + 1/4

S100 = S99 + 1/100

Bắt đầu từ S2 việc tính S đ ợc lặp lặp lại 99 lần theo quy luật

Ssau = Str íc+ 1/i

víi i chạy từ 100

(8)

Đ

S

NhËp N

S:= ; i:= 2

i > N ?

S:= S + 1/i

§ a S råi kÕt thóc

B1: NhËp N; B2: S:=1; i:=2;

B3: Nếu i > N đ a giá trị S => Kết thúc;

B4 : S:= S + 1/i;

B5: i := i +1 quay l¹i B3.

Xây dựng thuật toán

(9)

FOR <biến đếm> := <giá trị đầu> TO <giá trị cuối> DO < câu lệnh>;

VÝ dô: S:=1;

FOR i:=2 TO 100 DO S:=S+1/i;

b D¹ng (d¹ng lïi)

FOR <biến đếm> := <giá trị cuối> DOWNTO <giá trị đầu> DO <câu lệnh >;

VÝ dô: S:=1;

FOR i:=100 DOWNTO DO S:=S+1/i;

a D¹ng (d¹ng tiÕn)

(10)

Giá trị đầu, giá trị cuối biểu thức kiểu với biến đếm, giá trị đầu phải nhỏ giá trị cuối.

For i:= 100 to 200 write(i);

Giá trị biến đếm đ ợc điều chỉnh tự động, câu lệnh sau DO không đ ợc thay đổi giá trị biến đếm. Trong đó

Biến đếm biến kiểu số nguyên kí tự.

(11)

Uses crt;

Var i,N : Integer; S : real;

BEGIN

Readln;

END.

S:=1;

FOR i:=2 to N do S := S+1/i; Writeln(‘ Tong S =’,S:8:3);

Write(‘ Nhap vao gia tri cua N :’);readln(N); Program Tinh_tong;

Hãy áp dụng câu lệnh lặp dạng tiến để viết ch ơng trình giải

toán đặt vấn đề.

(12)

S := ; i := 2;

i >N KT

S := S +1/ i ; i := i +1;

2.08 1.83 1.5 1 4 3 2 L ỵt i S 2.28 5 NhËp N

S := ; i := 2;

2>5 ? S

S

S := +1/2 ; i := +1;

3>5 ?

S := 1.5+1/3 ; i := +1;

4>5 ?

S := 1.83+1/4 ; i := +1;

5>5 ?

S := 2.08+1/5; i := +1;

6

S S S

6>5 ? Tỉng S=2.28In Tỉng S

Víi N = 5

2.28

§

§

(13)

3 VÝ dơ

TÝnh tỉng S (víi a số nguyên nhập vào từ bàn phím a>2).

? • Hãy xác định giá trị khởi đầu S, quy luật thay đổi giá trị S số lần lặp

Viết ch ơng trình để giải tốn trên.

- S:=1/a;

- S:= S + 1/(a+i);

(14)

1 Bài toán

Dữ liệu (Output) : Tæng S

Dữ liệu vào (Input) : Nhập a Hóy xỏc nh

INPUT, OUTPUT và nêu thuật toán giải toán trên?

Cho n

Tính giá trị tổng S, với a số nguyên a>2

(15)

B íc 2:

S:=1/a; N:=1; {Khởi tạo S N}

B íc 3:

NÕu 1/(a+N) < 0.0001 => B íc 5

B íc 4:

S:=S+1/(a+N); N:=N+1;

=> quay lại b ớc 3

thuật toán

B íc 1: NhËp a.

S:=1/a ; N:=1

§ a S => KÕt thóc

S:= S+1/(a+N); N:= N+1;

 Vßng lỈp chØ dõng 1/(a+N)<0.0001

NhËp a

S

§

1/(a+N) >= 0.0001

(16)

WHILE <Điều kiện> DO <Câu lệnh>;

Điều kiện

Đúng

Câu lệnh Điều kiện: Là biểu thức

quan hệ lôgic.

Câu lệnh: Là câu lệnh Pascal.

Sai

2 Lặp với số lần lặp tr íc

Trong đó:

(17)

WHILE 1/(a+N) >= 0.0001 DO

Begin

S:=S+1/(a+N); N:=N+1;

END;

3 Mét sè vÝ dơ

a Bài tốn đặt vấn đề:

Nhận xét:

Chừng 1/(a+N)>=0.0001 thực hiÖn:

+ Tăng giá trị tổng S thêm 1/(a+N). + Tăng N thêm n v

Tính giá trị tổng S, với a số nguyên a>2

thì dừng lại.

(18)

Ch ơng trình

Program Bai_toan;

Uses Crt;

Var a,N:Integer; S:Real;

BEGIN

Clrscr;

Write(‘Nhap gia tri cua a= ‘);Readln(a); S:=1/a;N:=1;

WHILE 1/(a+N)>=0.0001 DO BEGIN

S:=S+1/(a+N); N:=N+1;

END;

Writeln(‘Gia tri cua tong S = ‘,S:8:3); Readln;

(19)

b Lập ch ơng trình nhập vào hai số nguyên d ơng M,N Tìm ƯCLN hai số đó.

B1: NhËp M,N;

B2 : Chõng nµo MN

nÕu M>N th× M:=M-N, ng ợc lại thì N:=N-M; B3: Đến M=N thì

=> Đ a ƯCLN(M,N)=M; => KÕt thóc.

B1: NhËp M,N

B2 : While M<>N DO Begin

IF M>N then M:=M-N else N:=N-M; end;

B3: In ¦CLN(M,N)

(20)

Tham khảo:

Dạng khác câu lệnh lặp với số lần lặp tr ớc

REPEAT <Câu lệnh> UNTIL <Điều kiện>;

Điều kiƯn

Sai

C©u lƯnh

(21)

Bài toán đặt vấn đề:

Program Bai_toan;

Uses Crt;

Var a,N:Integer; S:Real;

BEGIN

Clrscr;

Write(‘Nhap gia tri cua a= ‘);Readln(a); S:=1/a;N:=1;

REPEAT {Bat dau lap}

S:=S+1/(a+N); N:=N+1

UNTIL 1/(a+N)< 0.0001; {Ket thuc lap} Writeln(‘Gia tri cua tong S = ‘,S:8:3);

Readln;

(22)

H·y nhí!

Câu lệnh rẽ nhánh.

Câu lệnh lặp IF <đk> THEN <câu lệnh>;

FOR TO DO

IF <đk> THEN <câu lệnh 1> ESLE <c©u lƯnh 2>;

FOR Downto DO

While <đk> Do <câu lệnh>;

+ Dạng khuyết. + Dạng đầy đủ.

+ LỈp với số lần lặp biết tr ớc. + Lặp với số lần lặp không

Ngày đăng: 05/03/2021, 20:43

w