Trong cuộc sống hằng ngày, nhiều hoạt động được thực hiện lặp đi, lặp lại nhiều lần, có những hoạt động mà chúng ta thường thực hiện lặp với số lần nhất định và biết trước Vậy, Khi viế[r]
(1)Bài – Tiết: 37+38 CÂU LỆNH LẶP (2) Các công việc phải thực nhiều lần Đánh ngày hai lần là công việc lặp lại với số lần định và biết trước Học thuộc bài là công việc lặp lại với số lần không thể xác định Đi học ngày lần là công việc lặp lại với số lần định và biết trước Tiếng gà trống gáy, tiếng chim hót, tiếng chuông đồng hồ báo thức gọi em dạy buổi sáng V…v…… (3) Các công việc phải thực nhiều lần Trong sống ngày, nhiều hoạt động thực lặp đi, lặp lại nhiều lần, có hoạt động mà chúng ta thường thực lặp với số lần định và biết trước Vậy, Khi viết chương trình máy tính Để dẫn cho máy thực đúng công việc, nhiều trường hợp ta cần phải viết lặp lại nhiều câu lệnh thực phép tính định (4) Câu lệnh lặp – Một lệnh thay cho nhiều lệnh Ví dụ 1: Hình 33 (SGK – trang56) Giả sử ta cần vẽ ba hình vuông có cạnh đơn vị hình 33 Mỗi hình vuông là ảnh dịch chuyển hình bên trái nó khoảng cách đơn vị Do đó, ta cần lặp lại thao tác vẽ hình vuông ba lần (5) Câu lệnh lặp – Một lệnh thay cho nhiều lệnh *Việc vẽ hình vuông thực thuật toán sau: Bước Vẽ hình vuông ( vẽ liên tiếp bốn cạnh và trở đỉnh ban đầu) Bước Nếu số hình vuông đã vẻ ít 3, di chuyển bút vẻ bên phải hai đơn vị và trở lại bước 1; ngược lại kết thúc thuật toán hình vuông đươc vẽ sau: Kết thúc (6) Câu lệnh lặp – Một lệnh thay cho nhiều lệnh *Bài toán vẽ hình vuông (hình 34 ) Thao tác chính là vẽ bốn cạnh nhau, hãy lập lại bốn lần thao tác vẽ đoạn thẳng Sau lần vẽ đoạn thẳng, thước kẻ quay góc 90 sang phải vị trí bút vẽ Hình 34 (SGK – trang 57) (7) Câu lệnh lặp – Một lệnh thay cho nhiều lệnh *Thuật toán sau đây mô tả các bước để vẽ hình vuông: Bước1 K←0 ( K là số đoạn thẳng đã vẽ được) Bước2 K←K+1 Vẽ đoạn thẳng đơn vị độ dài và quay thước 900 sang phải Bước3 Nếu K < thì trở lại bước2; Ngược lại, kết thúc thuật toán (8) Câu lệnh lặp – Một lệnh thay cho nhiều lệnh Ví dụ – SGK trang 57: Giả sử cần tính tổng 100 số tự nhiên đầu tiên, tức là tính: S= 1+2+3+…+100 (9) Câu lệnh lặp – Một lệnh thay cho nhiều lệnh Ví dụ – SGK trang 57: Thuật toán sau đây mô tả việc thực lặp lại phép cộng 100 lần: Bước1 SUM ←0; i ← Bước2 i ← i+1 Bước3 Nếu i ≤ 100, thì SUM ← SUM + i và quay lại bước Bước4 Thông báo kết và kết thúc thuật toán (10) Câu lệnh lặp – Một lệnh thay cho nhiều lệnh Kết luận: Cách mô tả các hoạt động lặp thuật toán ví vụ trên gọi là cấu trúc lặp (11) Ví dụ Câu lệnh lặp Câu lệnh lặp thường gặp pascal có dạng sau: For <biến đếm>:=<giá trị đầu> to <giá trị cuối> <câu lệnh>; • • • • Trong đó For, to, là từ khóa Biến đếm: biến kiểu nguyên Giá trị đầu, giá trị cuối là biểu thức cùng kiểu với biến đếm (giá trị đầu phải nhỏ giá trị cuối) Câu lệnh: Không làm thay đổi giá trị biến đếm, Nếu có nhiều lệnh thì phải đặt cặp từ khoá Begin end; (12) Ví dụ Câu lệnh lặp Quan sát sơ đồ khối, hãy cho biết thực máy? SƠ ĐỒ KHỐI Bước 1: tính giá trị đầu, gán cho biến đếm Bước 2: Nếu biến đếm <= giá trị cuối thì: - thực lệnh cần Biến đếm:=giá trị đầu Sai Biến đếm<=giá trị cuối Đúng Thực câu lệnh, biến đếm tăng lặp - tăng biến đếm đơn vị, quay lại bước (13) Ví dụ Câu lệnh lặp Ví dụ 3:Chương trình sau in màn hình thứ tự lần lặp: Program lap; Uses crt; day la lan lap thu Var i: integer; day la lan lap thu day la lan lap thu Begin day la lan lap thu For i:= to 10 day la lan lap thu day la lan lap thu Writeln (‘day la lan lap thu’,i); day la lan lap thu Readln day la lan lap thu end day la lan lap thu day la lan lap thu 10 (14) Ví dụ Câu lệnh lặp Ví dụ 4: Để in chữ “O” trên màn hình, ta có thể sử dụng lệnh “Writeln(‘O’); O Program lap; Uses crt; Var i: integer; Begin For i:= to 20 begin Writeln (‘O’); delay(100) end; Readln end O O O O O O O O O O O O O O O O O O O (15) Tính tổng và tích câu lệnh lặp Ví dụ 5: chương trình sau đây tính tổng N số tự nhiên đầu tiên, với N là số tự nhiên nhập từ bàn phím Program Tinh_tong; Uses crt; Var N, i: integer; S: longint; Begin Write(“nhap so N=‘); readln(N); S:=0; For i:= to N S:= S + i; Writeln (‘Tong cua’,N,’So tu nhien dau tien=‘,s); Readln end O O O O O O O O O O O O O O O O O O O O (16) Tính tổng và tích câu lệnh lặp Ví dụ 5: Tính giai thừa N! Program Tinh_Giai_thua; Uses crt; Var N, i: integer; P: longint; Begin Write(“nhap so N=‘); readln(N); P:=1; For i:= to N p:=p*i; Writeln (N,’!=’p); Readln end O O O O O O O O O O O O O O O O O O O O (17) Củng cố Cấu trúc lặp sử dụng để chỉ thị cho máy tính thực lặp lại vài hoạt động nào đó điều kiện nào đó thoả mãn Mọi ngôn ngữ lập trình có các câu lệnh lặp để thể cấu trúc lặp Ngôn ngữ Pascal thể cấu trúc lặp với số lần lặp cho trước câu lệnh For … Cú pháp cấu trúc lặp: For <biến đếm>:=<giá trị đầu> to <giá trị cuối> <câu lệnh>; (18) Hướng dẫn học tập Trả lời và làm các bài tập SGK trang 60-61 Xem trước bài tập 1,2 bài thực hành để tiết thực hành (19)