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

bài10:vòng_lặp_trong_Pascal_THPT-NguyenHue-11a1-Q9-Tphcm

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 (340.79 KB, 25 trang )



1: Các khái niệm
- lặp:là thực hiện 1 công việc nhiều lần
Vậy trong đây cần xác đònh rõ hai yếu tố
+công việc gì?
+nhiều lần là mấy lần, khi nào thì dừng.
-
lặp với số lần chưa biết là thực hiện đến 1
giai đoạn nào đó thì dừng chứ chưa biết là
bao nhiêu lần. Ngược lại nếu đã biết được số
lần làm là lặp với số lân biết trước.

-cấu trúc lặp: trong Pascal có hai cách thể
hiện cho việc lặp lại đó là
+for-do: lặp với số lần biết trước.
+while-do và repeat-until: lặp với số lần
chưa biết.
-chặn dừng: đối với
+for-do: là số lần lặp lại
+while-do và repeat-until: là điều kiện dừng
lại
Vd:
+ đi 100 bước thì dừngchặn dừng là 100.
+ đi đến kia thì dừng chặn dừøng là chỗ kia

2:cấu trúc for-do
(lặp với số lần biết trước)
-công thức:
For <biến đếm>:=<giá trò đầu> to <giá trò cuối> do <câu lệnh>
For <biến đếm>:=<giá trò cuối> downto <giá trò đầu>do<cl>


-cần xác đònh:
+công việc lặp lại.
+giá trò đầu, giá trò cuối.
+kiểu biến đếm
VD1: xét bài toán: tính tổng của các số chẵn trong khoảng từ
1 đến n với n nhập từ bàn phÍm (1<=n<=1000);

VD1: xét bài toán: tính tổng của các số chẵn trong khỏang từ 1
đến n với n nhập từ bàn phím (1<=n<=1000);
+công việc: tính tổng của các số chẵn
phải làm 2 công việc:
+kiểm tra xem nó có phải số chẵn không
+nếu là số chẵn thì tính tổng của chúng
+giá trò đầu: 1; giá trò cuối: n (1<=n<=1000)
số lần lặp không quá 1000
kiểu biến đếm là số nguyên(integer,longint…)
Lưu ý:biến đếm thường là hai kiểu sau: số nguyên và
kiểu ký tự (char). Theo kinh nghiệm của mình kiểu
của biến đếm sẽ cùng kiểu với giá trò đầu (cuối).

Var I,n:integer;tong:longint;
Begin
Tong:=0;
Writeln(‘nhap n’);
Readln(n);
For i:=1 to n do
if I mod 2=0 then {kieåm tra soá chaün}
tong:=tong+I; {tính toång}
Writeln(‘tong can tim ’,tong);
Readln

End.

Lưu ý:
+số a chia hết cho b được Pascal thể hiện là
a mod b=0chia hết cho 2 là mod2=0
+tinh tổng lần lượt
.i=1sai, không làm
.i=2đúng, tong:=0+2;
.i=3sai, không làm
.i=4đúng, tong:=2+4;
………………………………………………….
vậy tổng lần thứ k thì= tổng lần thứ k-1 cộng thêm với I
+tại sao phải gán tong:=0 ngay từ đầu chương trình?
Vì nếu xét tổng đầu tiên, ta có tổng đầu tiên=tổng nào cộng cho nó
chính là tong được gán =0
tổng đầu là 0, tích đầu là 1

-for-downto gần giống for-to-do nhưng nó đi
ngược lại từ lớn đến nhỏ, nghóa là biến đếm
sẽ giảm dần.
3:lưu ý chung
-không thay đổi giá trò biến đếm khi vòng lặp
đang chạy.
-”to”; từ nhỏ đến lớn.
-“downto”:từ lớn đến nhỏ.
-hoạt động của vòng lặp là hoạt động tuần tự,
có thể làm ngoài nháp để thử kết quả (xem
lại VD1)

4:cấu trúc while-do hay repeat_until

a: while-do
-công thức:
While <điều kiện> do
-ý nghóa: trong khi điều kiện đúng thì làm.
làm gì???
*điều quan trọng nhất của dạng lặp không biết
trước số lần lặp này là tính dừngnghóa là
điều kiện phải bò vi phạm.
Xét lại VD1 nhưng viết bằng While-do

4:cấu trúc while-do hay repeat-until
a: while-do
-lưu đồ của While-do
Điều kiện
Công việc
End.
true
False
Nếu Đk đúng thì cứ tiếp tục, sai
thì thoát khỏi vòng lặp

×