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[r]
(1)(2)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à thường thực lặp lại với một số lần định 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 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 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
(3)2 Câu lệnh lặp – lệnh thay cho nhiều lệnh
Ví dụ 1 Giả sử ta cần vẽ ba hình vng có cạnh đơn vị hình 33 Mỗi hình vng ảnh dịch chuyển hình bên trái khoảng cách đơn vị Do đó, ta cần lặp lại thao tác vẽ hình vng ba lần
1
Hình 33
2
* Việc vẽ hình thực thuật toán sau đây:
Bước 1. Vẽ hình vng ( vẽ liên tiếp bốn cạnh trở đỉnh ban đầu).
(4)2 Câu lệnh lặp – lệnh thay cho nhiều lệnh
Riêng toán vẽ hình vng (hình 34), thao tác vẽ bốn cạnh nhau, 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 mơ tả bước để vẽ hình vng:
Bước1. K ( số đoạn thẳng đã vẽ được)
Bước2 K K+1 Vẽ đoạn thẳng 1 đơn vị độ dài quay thước sang phải.
Bước3 Nếu K < trở lại
(5)2 Câu lệnh lặp – lệnh thay cho nhiều lệnh
Ví dụ 2. Giả sử cần tính tổng 100 số tự nhiên đầu tiên, tức tính: S= 1+2+3+…+100.
Thuật tốn sau mơ tả việc thực lặp lại phép cộng 100 lần:
Bước1. SUM 0; i 0.
Bước2 i i+1
Bước3 Nếu i ≤ 100, SUM SUM + i quay lại bước 2.
(6)3 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 ;
Từ khố
Phải thuộc kiểu dữ liệu đếm (không số thực)
Giá trị đầu < Giá trị cuối
- Không làm thay đổi giá trị biến đếm
- Nếu có nhiều lệnh phải đặt cặp từ
(7)3 Ví dụ câu lệnh lặp
b Sự hoạt động lệnh:
Sơ đồ khối
Biến đếm : = Giá trị đầuBiến đếm : = Giá trị đầu
Giá trị đầu <=Giá trị cuốiGiá trị đầu <=Giá trị cuối
Câu lệnh vòng lặp ; Biến đếm :=Biến đếm + 1;
Câu lệnh vòng lặp ; Biến đếm :=Biến đếm + 1;
False
False
True True
Bước1: Đầu tiên Biến đếm nhận giá trị
<giá trị đầu>
Bước2: Máy kiểm tra điều kiện <Biến> ≤ <Giá trị cuối>
(8)Ví dụ 1: Viết câu lệnh để in hình 10 chữ “ Mau sac “
For i : = to 10 writeln( ‘Mau sac’);
- Hãy thành phần câu lệnh ?
3 Ví dụ câu lệnh lặp
Trả lời:
i biến đếm
1 giá trị đầu
10 giá trị cuối
(9)3 Ví dụ câu lệnh lặp
Ví dụ 2: Viết chương trình để in hình 10 chữ “ Mau sac “
For i : = to 10 writeln( ‘Mau sac’);
- Hãy sử dụng câu lệnh để viết chương trình đầy đủ in hình 10 chữ “ Mau sac “
Trả lời:
Program mau_sac; Uses crt;
Var i: integer; Begin
For i:= to 10 do
Write (‘mau sac’,i); Readln
(10)4 Tính tổng tích câu lệnh lặp
Ví dụ 2: Ta kí hiệu N! 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 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: real;
Begin
write (‘Nhap N = ‘); readln (N);
P:= 1;
For i:= to N P:= P*i; Writeln (N,’! = ’,P:1:2); Readln
(11)Bài tập củng cố
Em viết chương trình tính tổng số ngun liên tiếp từ n đến m với n,m số nguyên dương nhập vào từ bàn phím
Gợi ý :
-Tìm input,output ?
- Khai báo biến ?Kiểu liệu ? - Nhập vào từ bàn phím giá trị cho biến ?
-Tìm thuật tốn chương trình ?
(12)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 m - Thuật toán : Cho biến đếm i chạy từ n đến m ,n.
Nếu I <= m tổng S:= S +i - Sử dụng câu lệnh Write, Readln, For to do
*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;
(13)Bài tập nhà
1 Viết chương trình tính tổng số
ngun liên tiếp : S = 1+2+ +n với n
nguyên dương nhập từ bàn phím.