Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.07 MB, 21 trang )
<span class='text_page_counter'>(1)</span>SỞ GD&ĐT QUẢNG TRỊ. THPT ĐAKRÔNG. Đakrông, tháng 12 năm 2010.
<span class='text_page_counter'>(2)</span> Bài toán: Tính tổng S=1+2+…+N, với N=10 1/ Viết câu lệnh lặp FOR-DO cho thuật toán giải bài toán trên? For i:=1 to 10 Do S:=S+i; 2/ Dựa vào công thức đã học, hãy xác định số lần lặp câu lệnh sau Do? Số lần lặp = giá trị đầu – giá trị cuối + 1 =. 1. –. 10. + 1 = 10.
<span class='text_page_counter'>(3)</span> Bài toán 1: Tính và đưa ra màn hình tổng S=1+2+…+N+… cho đến khi S>20. 1/ Xác định bài toán? - Input: - Output: tổng S 2/ Ý tưởng? + Ban đầu: S1; N1; + Chừng nào S≤20 thì còn thực hiện: NN+1; SS+N; + In tổng S 3/ Thuật toán? 4/ Mô phỏng việc thực hiện thuật toán? Crocodile.
<span class='text_page_counter'>(4)</span> Bài toán 2: Tính và đưa ra màn hình tổng S=1+1/2+1/3+… cho đến khi S>2,5. 1/ Xác định bài toán? - Input: - Output: tổng S 2/ Ý tưởng? + Ban đầu: S1; N1; + Chừng nào S≤2,5 thì còn thực hiện: NN+1; SS+N; + In tổng S 3/ Thuật toán? 4/ Mô phỏng việc thực hiện thuật toán? Crocodile.
<span class='text_page_counter'>(5)</span> a) Nhu cầu của cấu trúc lặp While-Do trong biểu diễn thuật toán III. LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC& CÂU LỆNH WHILE-DO NHU CẦU CÚ PHÁP HOẠT ĐỘNG. Bài toán 1: Tính và đưa ra màn hình tổng S=1+2+…+N+… cho đến khi S>20 Bài toán 2: Tính và đưa ra màn hình tổng. 1 1 1 1 S ... ... 1 2 3 n cho đến khi S>2,5. VÍ DỤ ÁP DỤNG CỦNG CỐ BÀI TẬP VỀ NHÀ. Nhận xét: Các bài toán có dạng như trên chưa biết trước số lần lặp Chỉ biết được sau khi thực hiện thuật toán.
<span class='text_page_counter'>(6)</span> Giống nhau: Lần đầu 1 S 1 LẶP LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÍ DỤ ÁP DỤNG CỦNG CỐ BÀI TẬP VỀ NHÀ. Lần 2 . 1 2. Lần 3 . 1 3. Lần n. +.... . 1 n. Sau mỗi lần thực hiện giá trị tổng S tăng thêm với n = 2, 3, 4, 5,... Khác nhau:. 1 n. Bài toán 1: Việc tăng giá trị cho tổng S được lặp đi lặp lại 99 lần (số lần lặp biết trước, n chạy từ 2 đến 100). Bài toán 2: Việc tăng giá trị cho tổng S được lặp đi lặp 1 lại cho đến khi < (số lần lặp chưa biết). n.
<span class='text_page_counter'>(7)</span> II. Lặp với số lần biết trước và câu lệnh For-do 1. Bài toán: Viết chương trình tính tổng. LẶP LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÍ DỤ ÁP DỤNG. 1 1 1 1 S ... 1 2 3 100. a. Phân tích bài toán. 1 1 1 1 S ... 1 2 3 100 ..................... CỦNG CỐ BÀI TẬP VỀ NHÀ. S1 = 1/1. Ta thấy: Bắt đầu từ S2, việc tính S được lặp đi lặp S2 = S1 + 1/2 lại 99 lần theo quy luật: S3 = S2 + 1/3 SSau = Strước + 1/n ..... với n chạy từ 2 đến 100. S100 = S99 + 1/100.
<span class='text_page_counter'>(8)</span> b. Thuật toán. Thuật toán 1. Bước 1: Bắt đầu; LẶP LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÍ DỤ ÁP DỤNG CỦNG CỐ BÀI TẬP VỀ NHÀ. Bước 2: S:=1/1; n:=2; Bước 3: Nếu n>100 chuyển đến Bước 5 Bước 4 B4.1: S:=S+1/n; B4.2: n := n + 1; rồi quay lại Bước 3; Bước 5: Đưa ra tổng S và kết thúc.. Bắt đầu S:=1; n:=2; n>100 S S:=S + 1/n; n:= n+1;. Đưa ra S và KT. Đ.
<span class='text_page_counter'>(9)</span> b. Thuật toán. Thuật toán 2. Bước 1: Bắt đầu; LẶP LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÍ DỤ ÁP DỤNG CỦNG CỐ BÀI TẬP VỀ NHÀ. Bước 2: S:=1/1; n:=100; Bước 3: Nếu n<2 thì chuyển đến Bước 5 Bước 4 B4.1: S:=S+1/n; B4.2: n := n - 1; rồi quay lại Bước 3; Bước 5: Đưa ra tổng S và kết thúc.. Bắt đầu S:=1; n:=100; n<2 S S:=S + 1/n; n:= n-1;. Đưa ra S và KT. Đ.
<span class='text_page_counter'>(10)</span> 2. Lặp với số lần biết trước a. Dạng lặp tiến: Cấu trúc LẶP LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÍ DỤ ÁP DỤNG CỦNG CỐ BÀI TẬP VỀ NHÀ. For <biến đếm> := <giá trị đầu> to <giá trị cuối> do <câu lệnh>; Hoạt động Câu lệnh viết sau từ khoá do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp tăng từ giá trị đầu đến giá trị cuối. Ví dụ S:=1; For n:=2 to 100 do S:=S+1/n;.
<span class='text_page_counter'>(11)</span> 2. Lặp với số lần biết trước b. Dạng lặp lùi: Cấu trúc LẶP LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÍ DỤ ÁP DỤNG CỦNG CỐ BÀI TẬP VỀ NHÀ. For <biến đếm> := <giá trị cuối> downto <giá trị đầu> do <câu lệnh>; Hoạt động Câu lệnh viết sau từ khoá do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp giảm từ giá trị cuối đến giá trị đầu. Ví dụ S:=1; For n:=100 downto 2 do S:=S+1/n;.
<span class='text_page_counter'>(12)</span> Trong đó: - Biến đếm thường có kiểu nguyên, kiểu kí tự. For i:=1 to 10 do write(i); LẶP LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÍ DỤ ÁP DỤNG CỦNG CỐ BÀI TẬP VỀ NHÀ. For i:=a to z do write(i); - Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm. Giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối. For i:=1 to 100 do write(i); For i:=100 downto 1 do write(i); - Giá trị biến đếm được điều chỉnh tự động, vì vậy câu lệnh viết sau do không được thay đổi giá trị biến đếm..
<span class='text_page_counter'>(13)</span> LẶP LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÍ DỤ ÁP DỤNG. III. Ví dụ áp dụng Ví dụ 1: Viết chương trình tính và đưa ra màn hình 1 1 tổng: S 1 1 ... 1 2 3 100 Program Tong_1; Var n: byte; S:Real;. Chạy CT. Begin S:=1;. CỦNG CỐ BÀI TẬP VỀ NHÀ. For n:=2 to 100 do S:=S+1/n; Write(‘Tong S=’,S:8:3); Readln End..
<span class='text_page_counter'>(14)</span> III. Ví dụ áp dụng. LẶP LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÍ DỤ ÁP DỤNG. Ví dụ 1: Viết chương trình tính và đưa ra màn hình 1 1 tổng: S 1 1 ... 1 2 3 100 Program Tong_2; Var n: byte; S:Real; Begin. Chạy CT. S:=1;. CỦNG CỐ BÀI TẬP VỀ NHÀ. For n:=100 downto 2 do S:=S+1/n; Write(‘Tong S=’,S:8:3); Readln End..
<span class='text_page_counter'>(15)</span> III. Ví dụ áp dụng Ví dụ 2: Viết chương trình tính và đưa ra màn hình tổng. S = 1 + 2 + 3 + .. + n (n nguyên dương) LẶP LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÍ DỤ ÁP DỤNG CỦNG CỐ BÀI TẬP VỀ NHÀ. Lưu ý: Không dùng các công thức đã biết trong toán học mà chỉ dùng cấu trúc vòng lặp. * Input: Số n; * Output: Đưa ra kết quả của tổng S. Ý tưởng: Sử dụng hình thức “cộng dồn” theo quy lụât: SSau = Strước + số Với S lúc đầu bằng 0, số chạy từ 1 đến n..
<span class='text_page_counter'>(16)</span> Thuật toán. Nhập n. Bước 1: Nhập n Bước 2: S:=0; i:=1; LẶP LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÍ DỤ ÁP DỤNG CỦNG CỐ BÀI TẬP VỀ NHÀ. Bước 3: Nếu i>n thì chuyển đến Bước 5 Bước 4 B4.1: S:=S+i; B4.2: i := i+1; rồi quay lại Bước 3; Bước 5: Đưa ra tổng S và kết thúc.. S:=0; i:=1; i>n S S:=S + i; i:= i+1;. Đưa ra S và KT. Đ.
<span class='text_page_counter'>(17)</span> Chương trình. LẶP LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÍ DỤ ÁP DỤNG CỦNG CỐ BÀI TẬP VỀ NHÀ. Chạy CT. Mô phỏng.
<span class='text_page_counter'>(18)</span> V Nhập ới n=5 n. LẶP LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÍ DỤ ÁP DỤNG CỦNG CỐ BÀI TẬP VỀ NHÀ. S:=0; i:=1; 1>5 2>5 3>5 4>5 5>5 6>5 i>n S S:=10 S:=0 S:=1 S:=3 S:=6 S:=S +++4; 1; 2; 3; i;5; i:= i:= 5+1; 1+1; 2+1; 3+1; 4+1; i+1;. Đưa S=15 ra SvàvàKT KT. Đ. i. 1. 2. 3. 4. 5. S. 1. 3. 6. 10. 15. Mô phỏng thuật toán. 6.
<span class='text_page_counter'>(19)</span> 1. Lặp LẶP LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÍ DỤ ÁP DỤNG CỦNG CỐ BÀI TẬP VỀ NHÀ. 2. Lặp với số lần biết trước a. Dạng lặp tiến: For <biến đếm>:=<giá trị đầu> to <giá trị cuối> do <câu lệnh>; b. Dạng lặp lùi: For <biến đếm>:=<giá trị cuối> downto <giá trị đầu> do <câu lệnh>;.
<span class='text_page_counter'>(20)</span> LẶP LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÍ DỤ ÁP DỤNG CỦNG CỐ BÀI TẬP VỀ NHÀ. Bài 1. Viết chương trình tính Tổng S = 2 + 4 + 6 +.. + 2n, với n được nhập từ bàn phím. Bài 2. Viết chương trình tính Tổng S = 1 + 3 + 5 +.. + (2n + 1), với n được nhập từ bàn phím..
<span class='text_page_counter'>(21)</span>
<span class='text_page_counter'>(22)</span>