Bài 10. Cấu trúc lặp
Chia sẻ bởi Nguyễn Cao Luận |
Ngày 10/05/2019 |
73
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:
1. Khái niệm lặp
- Xét 2 bài toán như sau với a > 2 là số nguyên cho trước :
Bài toán 1 : Tính tổng
S1=
Bài toán 2 : Tính Tổng
Với điều kiện
S2=
1. Khái niệm lặp
Giải theo các lệnh tuần tự
S1:= 1/a;
Nếu N=1=> S1:=S1+ 1 /(a+1); tăng N lên 1 ĐV;
Nếu N=2 => S1:=S1+ 1 /(a+2); tăng N lên 1 ĐV;
- Ở bài tóan 1: kết thúc khi N = 100 => lệnh Smới := S cũ+ 1/(a+1) lặp đi lặp lại: 100 lần => Viết 100 câu lệnh.
1. Khái niệm lặp
- Ở bài tóan 2 : kết thúc khi khi 1/(a+N) <0.0001 => lệnh Smới := S cũ+ 1/(a+N) lặp đi, lặp lại đến bao nhiêu lần ta không xác định được => Không biết phải viết bao nhiêu câu lệnh mới đủ?
=>Nhất thiết cần phải có câu lệnh giúp giải quyết việc lập đi, lặp lại các câu lệnh trong chương trình
1. Khái niệm lặp
S:=1/a; N:=1;
Lưu đồ bài tóan 1:
N<=100
S:=1/(a+N); N:=N+1;
Xuất S
True
False
Trong lập trình, có những thao tác phải lặp lại nhiều lần, khi đó ta gọi là cấu trúc lặp.
Lặp thường có 2 loại :
- Lặp với số lần biết trước .
- Lặp với số lần không biết trước .
2. Lặp có số lần biết trước và câu lệnh for – do
Trong Pascal, có 2 lọai câu lệnh lặp có số lần biết trước :
- Lặp dạng tiến:
For := to do ;
- Lặp dạng lùi:
For := downto do ;
1. Khái niệm lặp
2. Lặp có số lần biết trước và câu lệnh for – do
- Lặp dạng tiến:
- Lặp dạng lùi
Biến:=
Biến <= GT cuối
Câu lệnh
Biến tự động tăng 1 ĐVị
Biến:=
Biến >= GT đầu
Câu lệnh
Biến tự động giảm 1 ĐVị
Biến:=
Biến <= GT cuối
Câu lệnh
Biến tự động tăng 1 ĐVị
True
False
Biến:=
Biến >= GT đầui
Câu lệnh
Biến tự động giảm 1 ĐVị
True
False
Lưu Đồ
1. Khái niệm lặp
2. Lặp có số lần biết trước và câu lệnh for – do
Trong đó:
Biến đếm thường là biến kiểu số nguyên.
Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm. Giá trị đầu phải nhỏ hơn hay bằng giá trị cuối.
Ở dạng lặp tiến: Biến đếm tự tăng dần từ giá trị đầu đến giá trị cuối.
Ở dạng lặp lùi: Biến đếm tự giảm dần từ giá trị cuối đến giá trị đầu.
Tương ứng với mỗi giá trị của biến đếm, câu lệnh sau do thực hiện 1 lần
1. Khái niệm lặp
2. Lặp có số lần biết trước và câu lệnh for – do
Ví dụ 1 : Chương trình cài đặt thuật toán của bài toán 1 .
Program Tong1_a;
Uses CRT;
Var S:real;
a,N: Integer;
Begin
CLRSCR;
Write(‘Hay nhap gia tri a:’);
Readln(a);
For n:=1 To 100 Do
S:=S+1/(a+N);
Writeln(‘Tong la:’, S:8:4);
Readln;
End.
Xem SGK Tr 44, hãy tìm hiểu chương trình cài đặt thuật toán của bài toán 1 ?
( Tong_1b )
1. Khái niệm lặp
2. Lặp có số lần biết trước và câu lệnh for – do
Ví dụ 2 : Tính tổng các số nguyên chia hết cho 3 hoặc 5 trong phạm vi từ M đến N (MXem GSK Tr 45, hãy tìm hiểu thuật toán của Ví dụ 2 ? Viết thuật toán của nó?
Program Vidu_2;
Uses CRT;
Var M,N,i: Integer;
T: Longint;
Begin
Clrscr;
Writeln(‘ Hay nhap 2 so M va N, M Write(‘M=‘); Redaln(M);
Write(‘N=‘); Readln(N);
T:=0;
For i:=M To N Do
If (I mod 3=0) Or (I mod 5=0) Then
T:= T+I;
Writeln(‘ Ket qua:’,T);
End.
1. Khái niệm lặp
2. Lặp có số lần biết trước và câu lệnh for – do
=> Từ bước 2 đến bước 4 được lặp lại nhiều lần nếu điều kiện 1/(a+N) < 0.0001 chưa được thỏa mãn.
- Trong Pascal sử dụng câu lệnh lặp như sau:
While <Điều kiện> Do;
Cú phap:
3. Lặp với số lần chưa biết trước và câu lệnh while – do
Để giải bài toán 2 ta dùng thuật toán như sau :
Bước 1 : S :=1/a; N :=0;
Bước 2 : Nếu 1/(a+N) < 0.0001 thì chuyển đến bước 5 ;
Bước 3: N :=N +1;
Bước 4: S := S+ 1/(a+N) rồi quay lại bước 2;
Bước 5: Đưa kết qủa S ra màn hình rồi kết thúc
3. Lặp với số lần chưa biết trước và câu lệnh while – do
1. Khái niệm lặp
2. Lặp có số lần biết trước và câu lệnh for – do
Điều kiện
Câu lệnh
Điều kiện
Câu lệnh
True
False
Lưu đồ vòng lặp While
Nhận xét :
- Do điều kiện được kiểm tra trước khi thực hiện câu lệnh -> Câu lệnh sẽ không thực hiện được nếu đầu tiên biểu thức điều kiện mang giá trị sai
- Nếu biểu thức điều kiện luôn đúng -> vòng lặp sẽ không dừng lại được ( Vòng lặp vô tận).
=> Trong câu lệnh phải có ít nhất 1 lệnh làm thay đổi giá trị của biểu thức điều kiện, làm cho BT điều kiện dần đi đến giá trị sai.
3. Lặp với số lần chưa biết trước và câu lệnh while – do
1. Khái niệm lặp
2. Lặp có số lần biết trước và câu lệnh for – do
Ví dụ 1 : Chương trình của bài toán 2.
Program Tong_2;
Uses CRT;
Var S:real;
a,N: Integer;
Begin
Write(‘ Hay nhap gia trị a:’); Readln(a);
S:=1/a; N:=0;
While not (1/(a+N) <0.00001) Do
Begin
N:=N+1:
S:=S+1/(a+N);
End;
Writeln( ‘Tong la:’, S:8:4);
End.
3. Lặp với số lần chưa biết trước và câu lệnh while – do
1. Khái niệm lặp
2. Lặp có số lần biết trước và câu lệnh for – do
Ví dụ 2 : Tìm ước chung lớn nhất của M và N.
Thuật toán :
B1: Nếu M = N thì ƯCLN := M; -> Kết thúc.
B2: Nếu M > N thì M := M – N rồi quay lại B1, ngược lại N := N – M rồi quay lại B1
Hãy viết lại chương trình tìm UCLN SGK Tr 48 ?
3. Lặp với số lần chưa biết trước và câu lệnh while – do
1. Khái niệm lặp
2. Lặp có số lần biết trước và câu lệnh for – do
- Xét 2 bài toán như sau với a > 2 là số nguyên cho trước :
Bài toán 1 : Tính tổng
S1=
Bài toán 2 : Tính Tổng
Với điều kiện
S2=
1. Khái niệm lặp
Giải theo các lệnh tuần tự
S1:= 1/a;
Nếu N=1=> S1:=S1+ 1 /(a+1); tăng N lên 1 ĐV;
Nếu N=2 => S1:=S1+ 1 /(a+2); tăng N lên 1 ĐV;
- Ở bài tóan 1: kết thúc khi N = 100 => lệnh Smới := S cũ+ 1/(a+1) lặp đi lặp lại: 100 lần => Viết 100 câu lệnh.
1. Khái niệm lặp
- Ở bài tóan 2 : kết thúc khi khi 1/(a+N) <0.0001 => lệnh Smới := S cũ+ 1/(a+N) lặp đi, lặp lại đến bao nhiêu lần ta không xác định được => Không biết phải viết bao nhiêu câu lệnh mới đủ?
=>Nhất thiết cần phải có câu lệnh giúp giải quyết việc lập đi, lặp lại các câu lệnh trong chương trình
1. Khái niệm lặp
S:=1/a; N:=1;
Lưu đồ bài tóan 1:
N<=100
S:=1/(a+N); N:=N+1;
Xuất S
True
False
Trong lập trình, có những thao tác phải lặp lại nhiều lần, khi đó ta gọi là cấu trúc lặp.
Lặp thường có 2 loại :
- Lặp với số lần biết trước .
- Lặp với số lần không biết trước .
2. Lặp có số lần biết trước và câu lệnh for – do
Trong Pascal, có 2 lọai câu lệnh lặp có số lần biết trước :
- Lặp dạng tiến:
For
- Lặp dạng lùi:
For
1. Khái niệm lặp
2. Lặp có số lần biết trước và câu lệnh for – do
- Lặp dạng tiến:
- Lặp dạng lùi
Biến:=
Biến <= GT cuối
Câu lệnh
Biến tự động tăng 1 ĐVị
Biến:=
Biến >= GT đầu
Câu lệnh
Biến tự động giảm 1 ĐVị
Biến:=
Biến <= GT cuối
Câu lệnh
Biến tự động tăng 1 ĐVị
True
False
Biến:=
Biến >= GT đầui
Câu lệnh
Biến tự động giảm 1 ĐVị
True
False
Lưu Đồ
1. Khái niệm lặp
2. Lặp có số lần biết trước và câu lệnh for – do
Trong đó:
Biến đếm thường là biến kiểu số nguyên.
Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm. Giá trị đầu phải nhỏ hơn hay bằng giá trị cuối.
Ở dạng lặp tiến: Biến đếm tự tăng dần từ giá trị đầu đến giá trị cuối.
Ở dạng lặp lùi: Biến đếm tự giảm dần từ giá trị cuối đến giá trị đầu.
Tương ứng với mỗi giá trị của biến đếm, câu lệnh sau do thực hiện 1 lần
1. Khái niệm lặp
2. Lặp có số lần biết trước và câu lệnh for – do
Ví dụ 1 : Chương trình cài đặt thuật toán của bài toán 1 .
Program Tong1_a;
Uses CRT;
Var S:real;
a,N: Integer;
Begin
CLRSCR;
Write(‘Hay nhap gia tri a:’);
Readln(a);
For n:=1 To 100 Do
S:=S+1/(a+N);
Writeln(‘Tong la:’, S:8:4);
Readln;
End.
Xem SGK Tr 44, hãy tìm hiểu chương trình cài đặt thuật toán của bài toán 1 ?
( Tong_1b )
1. Khái niệm lặp
2. Lặp có số lần biết trước và câu lệnh for – do
Ví dụ 2 : Tính tổng các số nguyên chia hết cho 3 hoặc 5 trong phạm vi từ M đến N (M
Program Vidu_2;
Uses CRT;
Var M,N,i: Integer;
T: Longint;
Begin
Clrscr;
Writeln(‘ Hay nhap 2 so M va N, M
Write(‘N=‘); Readln(N);
T:=0;
For i:=M To N Do
If (I mod 3=0) Or (I mod 5=0) Then
T:= T+I;
Writeln(‘ Ket qua:’,T);
End.
1. Khái niệm lặp
2. Lặp có số lần biết trước và câu lệnh for – do
=> Từ bước 2 đến bước 4 được lặp lại nhiều lần nếu điều kiện 1/(a+N) < 0.0001 chưa được thỏa mãn.
- Trong Pascal sử dụng câu lệnh lặp như sau:
While <Điều kiện> Do
Cú phap:
3. Lặp với số lần chưa biết trước và câu lệnh while – do
Để giải bài toán 2 ta dùng thuật toán như sau :
Bước 1 : S :=1/a; N :=0;
Bước 2 : Nếu 1/(a+N) < 0.0001 thì chuyển đến bước 5 ;
Bước 3: N :=N +1;
Bước 4: S := S+ 1/(a+N) rồi quay lại bước 2;
Bước 5: Đưa kết qủa S ra màn hình rồi kết thúc
3. Lặp với số lần chưa biết trước và câu lệnh while – do
1. Khái niệm lặp
2. Lặp có số lần biết trước và câu lệnh for – do
Điều kiện
Câu lệnh
Điều kiện
Câu lệnh
True
False
Lưu đồ vòng lặp While
Nhận xét :
- Do điều kiện được kiểm tra trước khi thực hiện câu lệnh -> Câu lệnh sẽ không thực hiện được nếu đầu tiên biểu thức điều kiện mang giá trị sai
- Nếu biểu thức điều kiện luôn đúng -> vòng lặp sẽ không dừng lại được ( Vòng lặp vô tận).
=> Trong câu lệnh phải có ít nhất 1 lệnh làm thay đổi giá trị của biểu thức điều kiện, làm cho BT điều kiện dần đi đến giá trị sai.
3. Lặp với số lần chưa biết trước và câu lệnh while – do
1. Khái niệm lặp
2. Lặp có số lần biết trước và câu lệnh for – do
Ví dụ 1 : Chương trình của bài toán 2.
Program Tong_2;
Uses CRT;
Var S:real;
a,N: Integer;
Begin
Write(‘ Hay nhap gia trị a:’); Readln(a);
S:=1/a; N:=0;
While not (1/(a+N) <0.00001) Do
Begin
N:=N+1:
S:=S+1/(a+N);
End;
Writeln( ‘Tong la:’, S:8:4);
End.
3. Lặp với số lần chưa biết trước và câu lệnh while – do
1. Khái niệm lặp
2. Lặp có số lần biết trước và câu lệnh for – do
Ví dụ 2 : Tìm ước chung lớn nhất của M và N.
Thuật toán :
B1: Nếu M = N thì ƯCLN := M; -> Kết thúc.
B2: Nếu M > N thì M := M – N rồi quay lại B1, ngược lại N := N – M rồi quay lại B1
Hãy viết lại chương trình tìm UCLN SGK Tr 48 ?
3. Lặp với số lần chưa biết trước và câu lệnh while – do
1. Khái niệm lặp
2. Lặp có số lần biết trước và câu lệnh for – do
* 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ẻ: Nguyễn Cao Luận
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)