1. Trang chủ
  2. » Công Nghệ Thông Tin

Cau truc lap

22 6 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

LÆp víi sè lÇn lÆp kh«ng biÕt tr íc... LÆp víi sè lÇn lÆp kh«ng biÕt tr íc.[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:

100 1 2 1 1 1 1         a a a a S 1 2 1 1 1 1          N a a a a S

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

cho đến 1  0.0001

(3)

XuÊt ph¸t

a

S  1

1 1

 

a

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: 100 1 2 1 1 1 1         a a a a

S 1 1 1 1 2 1 

        N a a a a S

Cho đến khi 10.0001

N

a

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

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

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

1

S

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

2 1

3 1

4 1

  .  1

(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ỏ hơn 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 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

tốn đặt vấn đề. Lập ch ơng trình tính tổng sau:

N 1

4 1 3

1 2

1 1

(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 vµ a>2).

100 1

2

1 1

1 1

 

 

 

 

a a

a a

S

? • 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 toá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?

1 2 1 1 1 1          N a a a a S

Cho đến 0.0001

a N

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

thì dừng l¹i.

(15)

B íc 2:

S:=1/a; N:=1; {Khëi t¹o S vµ 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 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

(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 nµo 1/(a+N)>=0.0001 thực hiện:

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

1 2 1 1 1 1          N a a a a S 0.0001

aN

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 tố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>;

+ Dng khuyt. + Dng đầy đủ.

Ngày đăng: 11/05/2021, 07:42

Xem thêm:

TỪ KHÓA LIÊN QUAN