Bài 10. Cấu trúc lặp

Chia sẻ bởi Trần Đăng Khoa | Ngày 10/05/2019 | 164

Chia sẻ tài liệu: Bài 10. Cấu trúc lặp thuộc Tin học 11

Nội dung tài liệu:

Bài 10 :CẤU TRÚC LẶP
Sephiroth
I.Lặp
Trong một số thuật toán có những thao tác phải thực hiện lặp đi lặp lại một số lần .
Ví dụ :xét bài toán
Tính và đưa kết quả ra màn hình tổng S=1/a+1/(a+1)+1/(a+2)+…+1/(a+100)
Sephiroth
I.Lặp (tt)
Thuật toán :
Bước 1. S:=1/a; N:=0;
Bước 2 . N:=N+1;
Bước 3 . Nếu N>100 thì chuyền đến bước 5;
Bước 4 . S:=S+1/(a+N)rồi quay lại bước 2;
Bước 5. Xuất S ra màn hình rồi kết thúc.
Sephiroth
Nhận xét:
Trong thuật toán giá trị N khi bắt đầu tham gia vòng lặp là 1 và sau mỗi lần lặp N tăng lên 1 cho tới khi N>100(N=101) thì kết thúc lặp (thực hiện đủ 100 lần)
Ở thuật toán vừa rồi ta biết trước số lần lặp là 100

II. Lặp với số lần biết trước
Sephiroth
II. Lặp với số lần biết trước(tt)
Để mô tả cấu trúc lặp với số lần biết trước ,Pascal dùng câu lệnh for-do
Có hai dạng tiến và lùi như sau:
Dạng lặp tiến :
for:=to do ;
Dạng lặp lùi :
for:=downto do ;
Sephiroth
Giải thích cấu trúc vòng for
Biến đếm là biến đơn và thường có kiểu nguyên
Giá trị đầu,cuối là các biểu thức cùng kiểu với biến đếm và giá trị đầu phải nhỏ hơn hay bằng giá trị cuối .Nếu giá trị đầu lớn hơn thì vòng for không thực hiên.

Sephiroth
Hoạt động của lệnh for
Ở dạng lặp tiến :câu lệnh viết sau do được thực hiện tuần tự ,với biến đếm lần lươt nhận các giá trị liên tiếp tăng từ giá trị đầu đến giá trị cuối .
Ở dạng lặp lùi :câu lệnh viết sau do được thực hiện tuần tự ,với biến đếm lần lươt nhận các giá trị liên tiếp giảm từ giá trị cuối đến giá trị đầu .
Sephiroth
Chú ý:
- Câu lệnh sau từ khoá do có thể là câu lệnh đơn hoặc ghép ,nếu là ghép thì các câu lệnh phải được đăt trong Begin… End;(sau End là “ ; ”).
-Giá trị của biến đếm là tự động điều chỉnh ,vì vậy câu lệnh sau do không được thay đổi giá trị biến đếm
Sephiroth
III) Lặp với số lần chưa biết trước
Xét bài toán :tính và đưa kết quả ra màn hình tổng:
S=1/a+1/(a+1)+1/(a+2)+…+1/(a+n)+…
cho đến khi 1/(a+n)<0.0001

Sephiroth
Thuật toán :
Bước 1: S:=1/a;N:=0;{khởi tạo S,N}
Bước 2:Nếu 1/(a+n)<0.0001 thì chuyển tới bước 4;
Bước 3: N:=N+1; S:=S+1/(a+N); rối quay lại bước 2;
Bước 4: xuất S ra màn hình ,rồi kết thúc .
Sephiroth
Nhận xét :
Ta thấy ở thuật toán vừa rồi việc lặp chỉ kết thúc khi điều kiện cho trước được thoả mãn .nên ta không biết đươc sẽ lặp bao nhiêu lần.
Để mô tả cấu trúc lặp như vậy ,Pascal dùng câu lệnh While – do .
Sephiroth
Cấu Trúc lệnh while-do
While<điều kiện>do;
- Trong đó :
+ điều kiện là biểu thức logic
+ Câu lệnh là một lệnh đơn hoặc ghép (nếu là ghép thì được đặt trong Begin…end;)
Sephiroth
Sơ đồ thực hiện lệnh while -do
Điều kiện
Câu lệnh
Sai
Đúng
Sephiroth
Hoạt Động vòng while-do
Gặp lệnh while-do trước tiên máy kiểm tra biểu thức điều kiện nếu nó có giá trị là TRUE (đúng) thì thực hiện câu lệnh rồi quay lại kiểm tra điều kiện , quá trình cứ tiếp tục như vậy đến khi biểu thức điều kiện có giá trị là FALSE(sai) thì lập tức thoát khỏi vòng lặp.
Chú ý: Ngay từ khi vào kiểm tra điều kiện nếu có giá trị sai thì sẽ không thực hiện câu lệnh.
Sephiroth
Tổng kết :
Cấu trúc lặp gồm :
- lặp biết trước số lần lặp
- lặp chưa biết trước số lầp lặp
*) Tất cả các câu lệnh for-do đều có thể chuyển dùng câu lệnh while-do .
Sephiroth
tdk_trandangkhoa

cuøng caùc baïn toå 3 ñoàng thöïc hieän


the end
Sephiroth
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Trần Đăng Khoa
Dung lượng: | Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)