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 (1022.57 KB, 20 trang )
<span class='text_page_counter'>(1)</span>GV thực hiện: Trần Thị Kim Loan.
<span class='text_page_counter'>(2)</span> ĐẶT VẤN ĐỀ Xét công việc đổ nước vào bình 20lít từ hồ nước. ? Đổ vào bình bằng ca 1lít, ta phải đổ bao nhiêu lần thì bình đầy? ? Đổ vào bình bằng ca không biết dung tích ta phải đổ bao nhiêu lần thì bình đầy? 1 lít. Hồ nước. Bình nước 20 lít.
<span class='text_page_counter'>(3)</span> TIẾT 13.
<span class='text_page_counter'>(4)</span> 1. LẶP Thao tác lặp đi lặp lại nhiều lần gọi là lặp. Lặp gồm có 2 loại: - Lặp với số lần biết trước. - Lặp với số lần chưa biết ( Có điều kiện dừng).. Lặp có mấy loại? Đó là gì?.
<span class='text_page_counter'>(5)</span> 1. LẶP Chúng ta xét thêm hai bài toán nữa. Bài toán 1: Tính và đưa kết quả ra màn hình tổng S = 1 + 2 + 3 + …+ 100 Bài toán 2: Tính và đưa kết quả ra màn hình tổng S = 1 + 2 + 3 + …+ N + … cho đến khi S > 150 Lặp với số lần biết trước Bài toán 1: Thực hiện 100 lần. Bài toán 21 thực hiện Lặp với số lần chưa biết Bài toán 2: Thực hiện N lần cho bao nhiêu lần? đến khi S> 150 thì dừng..
<span class='text_page_counter'>(6)</span> 2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH FOR - DO Để mô tả cấu trúc lặp với số lần biết trước, Pascal dùng câu lệnh For – do với 2 dạng: Dạng tiến: For <biến đếm> := <giá trị đầu> to <giá trị cuối> do <câu lệnh>; Dạng lùi: For <biến đếm> := <giá trị cuối> downto <giá trị đầu> do <câu lệnh>;. Trong đó: - Biến đếm, giá trị đầu, giá trị cuối là cùng kiểu dử liệu. - Giá trị đầu nhỏ hơn giá trị cuối. - Ở dạng tiến: Biến đếm tăng từ giá trị đầu đến giá trị cuối. - Ở dạng lùi: Biến đếm giảm từ giá trị cuối đến giá trị đầu..
<span class='text_page_counter'>(7)</span> 2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH FOR - DO Dạng tiến: For <biến đếm> := <giá trị đầu> to <giá trị cuối> do <câu lệnh>; Dạng lùi: For <biến đếm> := <giá trị cuối> downto <giá trị đầu> do <câu lệnh>; Ví dụ: • For i:=1 to 10 do writeln(‘Pascal’) ; in ra màn hình 10 lần xâu ‘Pascal’. • For i:= 20 downto 1 do writeln(‘Pascal’) ; in ra màn hình 20 lần xâu ‘Pascal’. • For i:=‘a’ to ‘z’ do write (i) ; in ra màn hình các kí tự từ a đến z. • For i:=100 downto 1 do write (i) ; in ra màn hình các số từ 100 xuống 1..
<span class='text_page_counter'>(8)</span> CÙNG ĐI TÌM THUẬT TOÁN. Bài toán:. S = 1 + 2 + 3 + …. + 100. Lần đầu tiên. ,N=0. S=0. Lần 1. N=1. ,S= 1. S=S+1. S=S+N. Lần 2. N=2. ,S=1+2. S=S+2. S=S+N. Lần 3. N=3. ,S=1+2+3. S=S+3. S=S+N. …………………… Lần 100. N = 100. S = S + 100. S = 1 + 2 + 3 + … + 100 S=S+N.
<span class='text_page_counter'>(9)</span> CÙNG ĐI TÌM THUẬT TOÁN. Bài toán:. S = 1 + 2 + 3 + …. + 100. Thuật toán: Bước 1: S = 0, N=0 Bước 2: N = N+1 Bước 3: Nếu N > 100 thì đưa S ra màn hình và kết thúc. Bước 4: S = S + N rồi quay lại bước 2..
<span class='text_page_counter'>(10)</span> 2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH FOR - DO DẠNG TIẾN:. Bài toán:. S = 1 + 2 + 3 + …. + 100. Bước 1: S = 0, N=0 Bước 2: N= N +1 Bước 3: Nếu N > 100 thì đưa S ra và kết thúc. Bước 4: S = S + N rồi quay lại bước 2.. Program tong_tien; Uses crt; Var N, S : integer; Begin clrscr; S:=0; for N:=1 to 100 do S:=S + N ; write(‘Tong la:’ , S); readln; End..
<span class='text_page_counter'>(11)</span> 2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH FOR - DO. Program tong_tien; Uses crt; Var N, S : integer; Begin clrscr; S:=0; for N:=1 to 100 do S:=S + N ; write(‘Tong la:’ , S); readln; End..
<span class='text_page_counter'>(12)</span> 2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH FOR - DO DẠNG LÙI:. Bài toán:. S = 1 + 2 + 3 + …. + 100. Program tong_lui; Uses crt; Var N, S : integer; Begin clrscr; S:=0; for N:=100 downto 1 do S:=S + N ; write(‘Tong la:’ , S); readln; End..
<span class='text_page_counter'>(13)</span> 2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH FOR - DO. Program tong_lui; Uses crt; Var N, S : integer; Begin clrscr; S:=0; for N:=100 downto 1 do S:=S + N ; write(‘Tong la:’ , S); readln; End..
<span class='text_page_counter'>(14)</span> 2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH FOR - DO. 1 1 1 1 Bài toán 2: S 1 ..... 2 3 4 50. Em hãy tìm thuật toán và viết chương trình?.
<span class='text_page_counter'>(15)</span> CÙNG ĐI TÌM THUẬT TOÁN. 1 1 1 1 Bài toán 2: S 1 ..... 2 3 4 50 Lần đầu tiên. ,N=?. S=?. Lần 1. N=?. ,S= ?. S = ….. + …... Lần 2. N=?. ,S=?. S = ….. + ……. Lần 3. N=?. ,S=?. S = ……+ …... …………………… Lần 50. N=?. S=?. S = ….. + …….
<span class='text_page_counter'>(16)</span> 2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH FOR - DO. 1 1 1 1 Bài toán 2: S 1 ..... 2 3 4 50 Thuật toán: Bước 1: S = 0, N = 0 Bước 2: N = N + 1 Bước 3: Nếu N > 50 thì đưa S ra màn hình và kết thúc Bước 4: S = S + 1 / N rồi quay lại bước 2.
<span class='text_page_counter'>(17)</span> 2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH FOR - DO. 1 1 1 1 Bài toán 2: S 1 ..... 2 3 4 50 Chương trình: Program Bai2_tien; Uses crt; Var N: byte; S: real; Begin clrscr; S:=0; for N:=1 to 50 do S:=S + 1/N ; write(‘Tong la:’ , S); readln; End..
<span class='text_page_counter'>(18)</span> 2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH FOR - DO. 1 1 1 1 Bài toán 2: S 1 ..... 2 3 4 50 Chương trình: Program Bai2_lui; Uses crt; Var N : byte; S: real; Begin clrscr; S:=0; for N:=50 downto 1 do S:=S + 1/N ; write(‘Tong la:’ , S); readln; End..
<span class='text_page_counter'>(19)</span> GHI NHỚ. Biết trước số lần. For <biến đếm> := <giá trị đầu> to <giá trị cuối> do <câu lệnh>;. For <biến đếm> := <giá trị cuối> downto <giá trị đầu> do <câu lệnh>;. CẤU TRÚC LẶP. Không biết số lần.
<span class='text_page_counter'>(20)</span> DẶN DÒ VỀ NHÀ XEM TIẾP NỘI DUNG CỦA BÀI CẤU TRÚC LẶP LÀM BÀI TẬP 5a, 6 /51 SGK.
<span class='text_page_counter'>(21)</span>