Có những hoạt động mà chúng ta thường thực hiện lặp lại với một số lần nhất định và biết trước, chẳng hạn đánh răng mỗi ngày hai lần, mỗi ngày tắm một lần,…Chúng ta còn lặp lại công việc[r]
(1)Bài (2) Các công việc phải thực nhiều lần Đi họcrăng ngày là lcông việc lặplvới lạilại vớivới số số lầnất Mỗi Đánh ngày tắm ngày lầnhai llần à công lần àviệc công lặpviệc lại ặp số lần nh lần nh ất định và định nhvà ất biết địnhtrước và biết biết trước trước (3) Các công việc phải thực nhiều lần 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 (4) Các công việc phải thực nhiều lần Trong sống ngày, nhiều hoạt động lặp lặp lại nhiều lần Có hoạt động mà chúng ta thường thực lặp lại với số lần định và biết trước, chẳng hạn đánh ngày hai lần, ngày tắm lần,…Chúng ta còn lặp lại công việc với số lần không thể xác định được: học thuộc bài,nhặt cọng rau xong,… 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 (5) Câu lệnh lặp – lệnh thay cho nhiều lệnh Ví dụ 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 Hình 33 * Việc vẽ hình có thể thực thuật toán sau đây: 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 (6) Câu lệnh lặp – lệnh thay cho nhiều lệnh Riêng 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ẽ Thuật toán sau đây mô tả các bước để vẽ hình vuông: Bước1 K ( là số đoạn thẳng đã vẽ được) Bước2 K K+1 Vẽ đoạn thẳng đơn 90 vị độ dài và quay thước 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 Hình 34 (7) Câu lệnh lặp – lệnh thay cho nhiều lệnh Ví dụ 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 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 Bước2 I 0; 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 (8) Ví dụ câu lệnh lặp Câu lệnh lặp thường gặp Pascal có dạng: a Cú pháp : FOR biến đếm : = giá trị đầu TO giá trị cuối DO Câu lệnh vòng lặp ; Phải thuộc kiểu liệu số nguyên Từ khoá Giá trị đầu < Giá trị cuối (9) Ví dụ câu lệnh lặp a Cú pháp : FOR biến đếm : = giá trị đầu TO giá trị cuối DO Câu lệnh vòng lặp ; Chú ý : - Sau DO không có dấu chấm phẩy b Công dụng: Dùng để lặp lặp lại công việc nào đó với số lần lặp xác định (10) Ví dụ câu lệnh lặp c Sự hoạt động lệnh: Bước1: Đầu tiên Biến đếm nhận giá trị là <giá trị đầu> Bước2: Máy kiểm tra điều kiện <Biến> ≤ <Giá trị cuối> Bước3: Nếu điều kiện trên là sai thì khỏi vòng lặp FOR Nếu điều kiện trên là đúng thì <Lệnh> thực hiện, sau đó biến tăng lên đơn vị (Biến:=Biến+1) và quay trở lại bước(2) Sơ đồ khối Biến Biếnđếm đếm: :==Giá Giátrịtrịđầu đầu False Giátrị trịđầu đầu<=Giá <=Giátrị trịcuối cuối Giá True Câu Câu lệnh lệnh trong vòng vòng lặp lặp ;; Biến Biến đếm đếm :=Biến :=Biến đếm đếm ++ 1; 1; 10 (11) Ví dụ câu lệnh lặp Ví dụ 1: Viết câu lệnh để in màn hình 10 chữ “ Mau sac “ For i : = to 10 writeln( ‘Mau sac’); - Hãy các thành phần câu lệnh trên ? Trả lời: i là biến đếm là giá trị đầu 10 là giá trị cuối writeln( ‘Mau sac’); là câu lệnh 11 (12) Ví dụ câu lệnh lặp For i : = to 10 writeln( ‘Mau sac’); - Hãy sử dụng câu lệnh trên để viết chương trình đầy đủ in màn hình 10 chữ “ Mau sac “ Trả lời: Program mau_sac; Uses crt; Var i: byte; Begin For i:= to 10 Write (‘mau sac’,i); Readln 12 end (13) Tính tổng và tích câu lệnh lặp Ví dụ 1: Viết chương trình tính tổng S=1+2+3+4+5 Trả lời: Program Tinh_tong; Uses crt; Var i: integer; S: longint; Begin S:=0; For i:= to S:= S + 1; Writeln (‘Tong cua S = ’,s); Readln end 13 (14) Tính tổng và tích câu lệnh lặp Ví dụ 2: Ta kí hiệu N! là tích N số tự nhiên đầu tiên: N! = 1.2.3…N - Viết chương trình tính N! với N là số tự nhiên nhập vào từ bàn phím Trả lời: Program Tính_Giai_thua; Uses crt; Var i, N: integer; P: longint; Begin write (‘Nhap N = ‘); readln (N); P:= 1; For i:= to N P:= P*i; Writeln (N,’! = ’,P); Readln 14 (15) Bài tập củng cố Em hãy viết chương trình tính tổng các số nguyên liên tiếp từ n đến m với n,m là các số nguyên dương nhập vào từ bàn phím Gợi ý : -Tìm input,output ? - Khai báo các biến nào ?Kiểu liệu gì ? - Nhập vào từ bàn phím giá trị cho biến nào ? -Tìm thuật toán chương trình ? - Sử dụng các câu lệnh gì để viết chương trình ? 15 (16) Bài tập củng cố Hướng dẫn: - Input: n, m ; Output : Tổng S - Khai báo biến : n, m, S, i kiểu Word - Nhập giá trị vào từ bàn phím cho biến n và m - Thuật toán : Cho biến đếm i chạy từ n đến m ,n Nếu I <= m thì tổng S:= S +i - Sử dụng câu lệnh Write, Readln, For to *Chương trình Trả lời: Program tinh_tong; Uses crt; Var m, n, i: integer; S: longint; Begin write (‘Nhap n = ‘); readln ( n); write (‘Nhap m=‘); readln ( m); S:=0; For i:= n to m S:= S + n; Writeln (‘Tong cua S = ’,s); Readln end 16 (17) Bài tập nhà Viết chương trình tính tổng các số nguyên liên tiếp : S = 1+2+ +n với n nguyên dương nhập từ bàn phím Viết chương trình tính tổng các số chẵn,lẻ từ đến n với n nhập từ bàn phím 17 (18) 18 (19)