Tải bản đầy đủ (.ppt) (28 trang)

bai 10 cau truc lap

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 (962.87 KB, 28 trang )

<span class='text_page_counter'>(1)</span>XIN CHÀO CÁC EM HỌC SINH ĐẾN VỚI TIẾT HỌC HÔM NAY !. 1.

<span class='text_page_counter'>(2)</span> KIỂM TRA BÀI CU Câu 1: Viết cấu trúc lặp IF – THEN ở dạng đủ? Cho ví dụ? Câu 2: Viết cấu trúc câu lệnh ghép trong Pascal?. 2.

<span class='text_page_counter'>(3)</span> KIỂM TRA BÀI CU Câu 3: Theo em, chương trình sau sẽ thực hiện như thế nào?. 3.

<span class='text_page_counter'>(4)</span> BÀI 10: CẤU TRÚC LẶP. 4.

<span class='text_page_counter'>(5)</span> 1. LẶP Ví dụ mở đầu: Xét công việc đổ nước vào bình 20 lít từ hồ nước - Đổ vào bình bằng ca 1 lí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 Bình nước 20 lít. Hồ nước. 5.

<span class='text_page_counter'>(6)</span> 1. LẶP. Câu hỏi đặt ra: Vậy theo các em, lặp là gì? Và có mấy dạng lặp?.

<span class='text_page_counter'>(7)</span> 1. LẶP  Lặp là điều khiển thực hiện công việc lặp đi lặp lại khi chưa đủ số lần lặp hoặc khi có một điều kiện nào đó còn đúng  Cấu trúc lặp dùng để mô tả thao tác lặp và được phân làm hai loại - Lặp với số lần biết trước - Lặp với số lần chưa biết trước.

<span class='text_page_counter'>(8)</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 1: Tính và đưa kết quả ra màn hình tổng S = 1 + 2 + 3 + …+ N + … cho đến khi S > 150. Các em hãy suy nghĩ thuật toán để giải hai bài toán trên?.

<span class='text_page_counter'>(9)</span> CÙNG TÌM THUẬT TOÁN XUẤT PHÁT. LẦN 1. LẦN 2. LẦN 3. S 0 1 2 3. …. LẦN N. ... N. - Bước 1: Gán S := 0 ; - Bước 2: Gán S := S + 1; { được S = 1} - Bước 3: Gán S := S + 2 ; { được S = 1 + 2} - Bước 3: Gán S := S + 3 ; { được S = 1 + 2 + 3} - .v.v. - Bước N + 1: Gán S := S + N; { được S = 1 + 2 + 3 + …+ N} Mỗi lần thực hiện ta cộng vào tổng S giá trị bao nhiêu?. 9.

<span class='text_page_counter'>(10)</span> Mỗi lần thực hiện tổng S tăng lên giá trị i với i = 1, 2, 3, …, N Ta so sánh hai bài toán BÀI TOÁN 1. Việc tăng giá trị cho tổng S được lặp đi lặp lại 100 lần  Số lần lặp biết trước. BÀI TOÁN 2. Việc tăng giá trị cho tổng S được lặp đi lặp lại cho đến khi S > 150  Số lần lặp chưa biết trước 10.

<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  Xét hai thuật toán Tong_1a và Tong_1b để giải bài toán 1 như sau: * Thuật toán Tong_1a - Bước 1: S  0, i  0 - Bước 2: i  i + 1 - Bước 3: Nếu i > 100 thì chuyển đến bước 5 - Bước 4: S  S + i rồi quay lại bước 2 - Bước 5: Đưa S ra màn hình rồi kết thúc. S  0, i  0 i  i +1. i > 100. Đúng. Sai. SS+i Đưa S ra màn hình rồi kết thúc. 11.

<span class='text_page_counter'>(12)</span> Nhận xét thuật toán Tong_1a. Giá trị i tham gia vòng lặp là 1 và sau mỗi lần lặp i tăng lên 1 cho đến khi i > 100 ( i = 101) thì kết thúc lặp ( thực hiện lặp đủ 100 lần). Giá trị i tăng lên như vậy , giống như luôn tiến về phía trước nên ta nói cách lặp trong thuật toán Tong_1a là dạng tiến 12.

<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 * Thuật toán Tong_1b - Bước 1: S  0, i  101 - Bước 2: i  i - 1 - Bước 3: Nếu i < 1 thì chuyển đến bước 5 - Bước 4: S  S + i rồi quay lại bước 2 - Bước 5: Đưa S ra màn hình rồi kết thúc. S  0, i  101 ii-1. i<1. Đúng. Sai. SS+i Đưa S ra màn hình rồi kết thúc. 13.

<span class='text_page_counter'>(14)</span> Nhận xét thuật toán Tong_1b. Giá trị i tham gia vòng lặp là 100 và sau mỗi lần lặp i giảm xuống 1 cho đến khi i < 1 ( i = 0) thì kết thúc lặp ( thực hiện lặp đủ 100 lần). Giá trị i giảm xuống như vậy , giống như đi lùi về phía sau nên ta nói cách lặp trong thuật toán Tong_1b là dạng lùi 14.

<span class='text_page_counter'>(15)</span>  Để 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 hai dạng tiến và lùi như sau  Dạng. lặp tiến: for < biến đếm > := < giá trị đầu > to < giá trị cuối > do < câu lệnh> ;  Dạng lặp lùi: for < biến đếm > := < giá trị cuối > downto < giá trị đầu > do < câu lệnh> ;  Trong đó: - Biến đếm: là biến đơn, có kiểu nguyên hoặc kiểu kí tự - Giá trị đầu, giá trị cuối: là các biểu thức cùng kiểu với biến đếm và giá trị đầu phải nhỏ hơn hoặc bằng giá trị 15 cuối.

<span class='text_page_counter'>(16)</span> 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 đến 1.

<span class='text_page_counter'>(17)</span> Trổ tài viết câu lệnh ! Các em hãy suy nghĩ viết các câu lệnh cần thiết để tính tổng S của bài toán 1?.

<span class='text_page_counter'>(18)</span> Chương trình tính theo thuật toán Tong_1a.

<span class='text_page_counter'>(19)</span> Chương trình tính theo thuật toán Tong_1b.

<span class='text_page_counter'>(20)</span> Kết quả của hai chương trình trên.

<span class='text_page_counter'>(21)</span> Hoạt động của lệnh For - Do Ở. dạng lặp tiến: câu lệnh viết sau từ khóa 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. Biến đếmGiá trị đầu. Biến đếm<=Giá trị cuối Đúng Câu lệnh;. Biến đếm  Biến đếm + 1. Lệnh kế tiếp. Sai.

<span class='text_page_counter'>(22)</span> Hoạt động của lệnh For - Do Ở. dạng lặp lùi:. câu lệnh viết sau từ khóa 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. Biến đếmGiá trị cuối. Biến đếm>=Giá trị đầu Đúng Câu lệnh;. Biến đếm  Biến đếm - 1. Lệnh kế tiếp. Sai.

<span class='text_page_counter'>(23)</span> KiẾN THỨC TRỌNG TÂM. Biết lặp là như thế nào?  Nắm 2 dạng cấu trúc của câu lệnh For – Do  Hiểu được các ví dụ .

<span class='text_page_counter'>(24)</span> CỦNG CỐ BÀI HỌC  Câu. 1: x biến kiểu thực, i biến kiểu nguyên, câu lệnh nào sau đây là đúng?  A.. For i:=1 to 10 do writeln(‘Lop 11A1’);  B. For i:=1 to 10 do writeln(‘Lop 11A1’);  C. For x:=1.5 to 10.5 do writeln(‘Lop 11A1’);  D. For i:=1.5 to 10 do writeln(‘Lop 11A1’);.

<span class='text_page_counter'>(25)</span> CỦNG CỐ BÀI HỌC  Câu.  A.. 2: Cú pháp lệnh lặp nào sau đây là sai?. For i:=10 downto 1 do writeln(‘Lop 11A1’);  B. For i:=1 downto 10 do writeln(‘Lop 11A1’);  C. For i:=0 to 100 do writeln(‘Lop 11A1’);  D. For i:=1 to 1 do writeln(‘Lop 11A1’);.

<span class='text_page_counter'>(26)</span> NỘI DUNG CHUẨN BỊ CHO TIẾT HỌC SAU Về. học lại bài , xem thêm VD SGK và chuẩn bị trước phần 3 của bài: Lặp với số lần chưa biết trước và câu lệnh WHILE - DO.. 26.

<span class='text_page_counter'>(27)</span> BÀI TẬP VỀ NHÀ BÀI TẬP 1: ViẾT CHƯƠNG TRÌNH GiẢI BÀI TOÁN Nhập vào số tự nhiên N và tính tổng S . 2. 2. 2. S 1  2  3  ...  100 . 2. BÀI TẬP 2 : ViẾT CHƯƠNG TRÌNH GiẢI BÀI TOÁN Nhập vào số tự nhiên N và tính tích T. T  N !1* 2 * 3 * ... * N 27.

<span class='text_page_counter'>(28)</span> KẾT THÚC BÀI HỌC. CHÂN THÀNH CẢM ƠN !. 28.

<span class='text_page_counter'>(29)</span>

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×