Bài giảng Tin học Lớp 11 - Cấu trúc lặp và câu lệnh For - Nguyễn Lê Hiếu
Các khái niệm
Lặp là việc thực hiện đi thực hiện lại một hoặc một vài công việc nào đó. Ví dụ: múc nước đổ vào thùng
Cấu trúc lặp là dùng các thao tác để thể hiện việc lặp đó
trong thuật toán. Ví dụ:
Có những loại lặp nào?
Giống nhau: ở thao tác lặp: múc nước đổ vào thùng
Khác nhau: số lần lặp
C: Số lần lặp là 100; D: Số lần lặp chưa biết
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Tin học Lớp 11 - Cấu trúc lặp và câu lệnh For - Nguyễn Lê Hiếu", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Giới thiệu 1 Lặp và cấu trúc lặp 3 Các bài tập áp dụng và nâng cao 2 Câu lệnh For Cấu trúc lặp và câu lệnh lặp Gv: Nguyễn Lê Hiếu THPT Lệ Thủy – Q. Bình Chương III: Cấu trúc rẽ nhánh và lặp Bài: CẤU TRÚC LẶP VÀ CÂU LỆNH FOR TIN HỌC 11 Kiểm tra bài cũ BÀI TẬP TRẮC NGHIỆM (gồm 5 câu, mỗi câu 2 điểm) Chúc các em làm bài tốt! Câu 1 Em trả lời đúng rồi - Click để tiếp tục nhé! Em trả lời sai rồi - Click để tiếp tục nhé! Em trả lời chính xác! Câu trải lời của em là: Đáp án đúng là: Em chưa hoàn thành bài tập! Em phải hoàn thành bài tập trước khi tiếp tục! Trả lời Bỏ chọn Câu 1: Em hãy cho biết trong các cú pháp sau đây, đâu là cú pháp của câu lệnh If - then dạng đủ ? A) Begin End; B) If then ; C) If do ; D) If then else ; Câu 2 Em trả lời đúng rồi - Click để tiếp tục nhé! Em trả lời sai rồi - Click để tiếp tục nhé! Em trả lời chính xác! Câu trải lời của em là: Đáp án đúng là: Em chưa hoàn thành bài tập! Em phải hoàn thành bài tập trước khi tiếp tục! Trả lời Bỏ chọn Câu 2: Phát biểu nào sau đây có thể lấy làm biểu thức điều kiện trong câu lệnh rẽ nhánh If - then ? A) A + B B) A > B C) N mod 100 D) “A nho hon B” Câu 3 Em trả lời đúng rồi - Click để tiếp tục nhé! Em trả lời sai rồi - Click để tiếp tục nhé! Em trả lời chính xác! Câu trải lời của em là: Đáp án đúng là: Em chưa hoàn thành bài tập! Em phải hoàn thành bài tập trước khi tiếp tục! Trả lời Bỏ chọn Câu 3: Hãy chọn cách dùng sai . Muốn dùng biến X lưu giá trị nhỏ hơn trong các giá trị của hai biến A, B có thể dùng cấu trúc rẽ nhánh như sau: A) if A < B then X := A; B) if A <= B then X := A else X := B; C) X := B; if A < B then X := A; D) if A < B then X := A else X := B; Câu 4 Em trả lời đúng rồi - Click để tiếp tục nhé! Em trả lời sai rồi - Click để tiếp tục nhé! Em trả lời chính xác! Câu trải lời của em là: Đáp án đúng là: Em chưa hoàn thành bài tập! Em phải hoàn thành bài tập trước khi tiếp tục! Trả lời Bỏ chọn Câu 4: Em cho biết khi chạy chương trình dưới thì báo lỗi ở dòng nào ? { dòng 1} Var a, b, t : real; { dòng 2} Begin { dòng 3} if b<>0 then t := a/b; { dòng 4} else { dòng 5} writeln(‘Mau bang 0, khong chia duoc’); { dòng 6} End. A) Dòng 1 B) Dòng 3 C) Dòng 4 D) Dòng 5 Câu 5 Em trả lời đúng rồi - Click để tiếp tục nhé! Em trả lời sai rồi - Click để tiếp tục nhé! Em trả lời chính xác! Câu trải lời của em là: Đáp án đúng là: Em chưa hoàn thành bài tập! Em phải hoàn thành bài tập trước khi tiếp tục! Trả lời Bỏ chọn Câu 5: Cho đoạn CT: x :=2; y:=3; IF x > y THEN F:= 2*x – y ELSE IF x=y THEN F:= 2*x ELSE F:= x*x + y*y ; Sau khi thực hiện CT, giá trị F là: A) F = 1 B) F = 13 C) F = 4 D) Không xác định Kết quả kiểm tra bài cũ Điểm {score} Trên tổng điểm {max-score} Số lần làm bài {total-attempts} Question Feedback/Review Information Will Appear Here Xem lại Tiếp tục 1. Các khái niệm Lặp là việc thực hiện đi thực hiện lại một hoặc một vài công việc nào đó. Ví dụ: múc nước đổ vào thùng Cấu trúc lặp là dùng các thao tác để thể hiện việc lặp đó trong thuật toán . Ví dụ: True False Kiểm tra đầy thùng? Múc thêm 1 ca đổ vào thùng 1. Các khái niệm Có những loại lặp nào? Ví dụ 1: Giống nhau: Ở thao tác lặp chạy vòng quanh sân Khác nhau : Số lần lặp A: Số lần lặp là 10; B: Số lần lặp chưa biết A A: chạy 10 vòng quanh sân B B: chạy quanh sân đến khi mệt 1. Các khái niệm Có những loại lặp nào? Ví dụ 2: Giống nhau: ở thao tác lặp : múc nước đổ vào thùng Khác nhau : số lần lặp C: Số lần lặp là 100; D: Số lần lặp chưa biết C: đổ nước đầy thùng D: đổ nước đầy thùng 1. Khái niệm Có những loại lặp nào? Lặp với số lần lặp biết trước Lặp với số lần lặp chưa biết trước Nội dung tiếp theo 2. LẶP VỚI SỐ LẦN LẶP BIẾT TRƯỚC Chúc các em học tốt! 2. Lặp với số lần lặp biết trước Bài toán 1: Viết chương trình tính tổng S Câu hỏi: Có bao nhiêu lần đổ nước vào thùng Mỗi lần ta đổ một lượng bao nhiêu? Khi gõ lệnh ta gặp phải vấn đề gì? 100 lần 1/(a+i); S=S+1/(a+i); Gõ tổng 100 số hạng 01:00 00:59 00:58 00:57 00:56 00:55 00:07 00:06 00:05 00:04 00:03 00:02 00:01 00:00 Thời gian 1 phút bắt đầu! (để tiện cho BGK, thời gian được rút ngắn lại) 2. Lặp với số lần lặp biết trước Xác định bài toán và viết thuật toán: Bài toán 1: 03:00 02:59 02:58 02:57 02:56 02:55 00:07 00:06 00:05 00:04 00:03 00:02 00:01 00:00 Thời gian 3 phút bắt đầu! (để tiện cho BGK, thời gian được rút ngắn lại) Xác định bài toán: Input: a; Output: S Thuật toán : Bước 1: Nhập a; i 0; S 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 + 1/(a+i); Quay lại bước 2; Bước 5: Thông báo giá trị tổng S rồi kết thúc . 3. Câu lệnh FOR Cú pháp dạng tiến: Ví dụ: For i:=1 to 5 do writeln(‘ i= ‘, i); FOR := TO DO ; Trong đó: Biến đếm: là biến kiểu nguyên, kí tự hoặc miền con Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm thực hiện khi giá trị đầu <= giá trị cuối i= 1 i= 2 i= 3 i= 4 i = 5 Kết quả khi thực hiện: Số lần lặp = GT cuối – GT đầu + 1 3. Câu lệnh FOR Cú pháp dạng lùi: Ví dụ: For i:=5 down to 1 do writeln(‘ i=‘, i); FOR := DOWNTO DO ; Trong đó: Biến đếm: là biến kiểu nguyên, kí tự hoặc miền con Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm thực hiện khi giá trị đầu <= giá trị cuối i= 5 i= 4 i= 3 i= 2 i= 1 Kết quả khi thực hiện: Số lần lặp = GT cuối – GT đầu + 1 3. Câu lệnh FOR Cú pháp: FOR := DOWNTO DO ; Ví dụ: Xuất ra màn hình hai dòng ‘I love Pascal’ Writeln (‘I love Pascal ’); Writeln (‘I love Pascal ’); Xuất ra màn hình 100 dòng ‘I love Pascal’ FOR := TO DO ; Oh no For i:= 1 to 100 do Writeln(‘I love Pascal ’); Hoặc For i:= 100 downto 1 do Writeln(‘I love Pascal’); 20 19 05 04 03 02 01 00 20 giây bắt đầu Oh yeahhh 3. Câu lệnh FOR Ví dụ: Xuất bảng chữ cái tiếng Anh ra màn hình 4. Một số ví dụ Em hãy xác định: Giá trị đầu, giá trị cuối. Lệnh cần lặp lại, sau đó viết câu lệnh để tính tổng S Câu trả lời là: Giá trị đầu là 1, giá trị cuối là 100. Lệnh cần lặp lại: S := S + 1/(a+i); S := 0; For i:=1 to 100 do S:=S+1/(a+i); 01:00 00:59 00:58 00:57 00:56 00:55 00:07 00:06 00:05 00:04 00:03 00:02 00:01 00:00 Thời gian 1 phút bắt đầu! Bài toán 1: 4. Một số ví dụ Bài toán 1: 4. Một số ví dụ Bài toán 2 : Một người có số tiền là S , ông ta gửi tiết kiệm ngân hàng với lãi suất 1.5%/tháng . Hỏi sau 12 tháng gửi tiết kiệm (không rút tiền lãi hàng tháng), ông ta được tổng cộng là bao nhiêu tiền? Xác định bài toán : Input: Số tiền ban đầu S; Output: Số tiền thu được sau 12 gửi Phân tích bài toán : Với số tiền S, sau mỗi tháng sẽ có tiền lãi là 0.015*S. Số tiền này sẽ được cộng vào trong số tiền ban đầu để tính lãi cho tháng tiếp theo. S := S + 0.015*S 4. Một số ví dụ Bài toán 2 : Một người có số tiền là S , ông ta gửi tiết kiệm ngân hàng với lãi suất 1.5%/tháng . Hỏi sau 12 tháng gửi tiết kiệm (không rút tiền lãi hàng tháng), ông ta được tổng cộng là bao nhiêu tiền? Câu hỏi Dấu hiệu lặp là gì? Lặp bao nhiêu lần? Viết thuật toán bằng SĐK? 03:00 02:59 02:58 02:57 02:56 02:55 00:07 00:06 00:05 00:04 00:03 00:02 00:01 00:00 Thời gian 3 phút bắt đầu! 03:00 02:59 02:58 02:57 02:56 02:55 00:07 00:06 00:05 00:04 00:03 00:02 00:01 00:00 Thời gian 3 phút bắt đầu! 4. Một số ví dụ Chương trình b ài toán 2 : Biến đếm được điều chỉnh tự động, ta không tác động vào biến đếm 5. Bài tập cuối bài BÀI TẬP TRẮC NGHIỆM (gồm 5 câu, mỗi câu 2 điểm) Chúc các em làm bài tốt! Câu 1 Em trả lời đúng rồi - Click để tiếp tục nhé! Em trả lời sai rồi - Click để tiếp tục nhé! Em trả lời chính xác! Câu trả lời của em là: Đáp án là: Em chưa hoàn thành bài tập! Em phải hoàn thành bài tập trước khi tiếp tục! Trả lời Bỏ chọn Cho hai dạng lặp FOR trong PASCAL như sau: ( trong đó : ) Dạng tiến: FOR := TO DO ; Dạng lùi: FOR := DOWNTO DO ; Chọn phát biểu sai trong các phát biểu đưới dây : A) Biến đếm là biến đơn, kiểu nguyên hoặc kí tự hoặc miền con. B) Với mỗi giá trị của biến đếm trong khoảng từ giá trị đầu đến giá trị cuối, câu lệnh sau DO được thực hiện một lần. C) Phải có lệnh thay đổi biến đếm trong mỗi sau DO trong cấu trúc lặp này, vì giá trị của biến đếm không được tự động điều chỉnh sau mỗi lần thực hiện câu lệnh lặp. D) Ở dạng lặp tiến câu lệnh sau DO được thực hiện tuần tự, với biến đếm lần lượt nhận giá trị từ giá trị đầu đến giá trị cuối. Câu 2 Em trả lời đúng rồi - Click để tiếp tục nhé! Em trả lời sai rồi - Click để tiếp tục nhé! Em trả lời chính xác! Câu trả lời của em là: Đáp án là: Em chưa hoàn thành bài tập! Em phải hoàn thành bài tập trước khi tiếp tục! Trả lời Bỏ chọn Hãy cho biết đâu là đoạn lệnh lặp bằng câu lệnh For để tính: S = 1 + 2 + 3 + ... + 10? A) S:=0; for i:=1 to 10 do begin S:=S+i; i:=i+1; end; B) S:=0; for i:=1 to 10 do S:=i + 1; C) S:=0; for i:=1 to 10 do S:=S + i; D) S:=0; for i:=1 downto 10 do S:=S + i; Câu 3 Em trả lời đúng rồi - Click để tiếp tục nhé! Em trả lời sai rồi - Click để tiếp tục nhé! Em trả lời chính xác! Câu trả lời của em là: Đáp án là: Em chưa hoàn thành bài tập! Em phải hoàn thành bài tập trước khi tiếp tục! Trả lời Bỏ chọn Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau đưa ra màn hình kết quả gì ? For i := 10 downto 1 do write(i, ‘ ’); A) 1 2 3 4 5 6 7 8 9 10 B) 10 9 8 7 6 5 4 3 2 1 C) Đưa ra 10 dấu cách D) Không đưa ra kết quả gì Câu 4 Em trả lời đúng rồi - Click để tiếp tục nhé! Em trả lời sai rồi - Click để tiếp tục nhé! Em trả lời chính xác! Câu trả lời của em là: Đáp án là: Em chưa hoàn thành bài tập! Em phải hoàn thành bài tập trước khi tiếp tục! Trả lời Bỏ chọn Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau đưa ra màn hình kết quả gì ? For i := 10 to 1 do write(i, ‘ ’); A) 1 2 3 4 5 6 7 8 9 10 B) 10 9 8 7 6 5 4 3 2 1 C) Đưa ra 10 dấu cách D) Không đưa ra kết quả gì Câu 5 Em trả lời đúng rồi - Click để tiếp tục nhé! Em trả lời sai rồi - Click để tiếp tục nhé! Em trả lời chính xác! Câu trả lời của em là: Đáp án là: Em chưa hoàn thành bài tập! Em phải hoàn thành bài tập trước khi tiếp tục! Trả lời Bỏ chọn Trong NNLT Pascal, đoạn chương trình sau thực hiện công việc gì ? T := 0 ; For i := 1 to N do If (i mod 3 = 0) and (i mod 5 = 0) then T := T + i ; A) Tính tổng các số chia hết cho 3 hoặc 5 trong phạm vi từ 1 đến N ; B) Tính tổng các ước thực sự của N ; C) Tìm một ước số của số N ; D) Tính tổng các số chia hết cho 3 và 5 trong phạm vi từ 1 đến N ; Kết quả bài tập cuối bài Điểm {score} Trên tổng điểm {max-score} Số lần làm {total-attempts} Question Feedback/Review Information Will Appear Here Làm lại Tiếp tục Tóm tắt Rẽ nhánh If then If then else Chương III Rẽ nhánh – Lặp If a mod 2 = 0 then write(a, ‘la so chan ’) else write(a, ‘la so le’) ; If a mod 2 = 0 then write(a, ‘la so chan’); Lặp For to do For downto do Biết trước S:=0; For i:= 100 downto 1 do S:= S+i; S:=0; For i:=1 to 100 do S:=S+i; While do Chưa biết trước S:=0; i:=0; While i<= 100 do Begin i:=i+1; S:=S+i; End; Repeat Until S:=0; i:=0; Repeat i:=i+1; S:=S+i; Until i =100 Tóm tắt Cú pháp câu lệnh For : FOR := TO DO ; FOR := DOWNTO DO ; Biến đếm: là biến kiểu nguyên, kí tự hoặc miền con Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm thực hiện khi giá trị cuối >= giá trị đầu Không tác động vào biến đếm. Bài tập làm thêm: Hoàn thiện Bài toán 1, bài toán 2; Làm bài tập 5.a, 6 sách giáo khoa trang 51 Xem thêm nội dung phụ lục B, C sách giáo khoa trang 131, 139 Tài liệu tham khảo Thank you!
Tài liệu đính kèm:
- bai_giang_tin_hoc_lop_11_cau_truc_lap_va_cau_lenh_for_nguyen.pptx
- Thiet lap Flash- bi loi-.doc
- _ Thuyet minh _ For.doc