Bài giảng vòng lặp không xác định
Chia sẻ bởi Đỗ Văn Xuân |
Ngày 01/05/2019 |
115
Chia sẻ tài liệu: Bài giảng vòng lặp không xác định thuộc Power Point
Nội dung tài liệu:
Uỷ ban nhân dân tỉnh bắc giang
Sở lao động thương binh và xã hội
tên bài giảng
Người thực hiện: Đỗ Văn Xuân
Vị trí bài giảng
Môn : PASCAL
Số tiết : 60
Mục tiêu:
Học xong bài này học sinh có khả năng:
- Nêu và giải thích được chức năng, cú pháp của lệnh While ... do và lệnh Repeat ... Until;
- Trình bày được sự hoạt động của từng lệnh;
- Vận dụng được cấu trúc lệnh trong lập trình giải các bài toán đơn giản;
- Phát triển năng lực tư duy, năng lực phân tích và tổng hợp.
đồ dùng, Phương tiện
- Máy tính;
- Máy chiếu, phông chiếu;
- Bút chỉ;
- Tài liệu phát tay;
- Phiếu trắc nghiệm.
Phương pháp
- Thuyết trình giảng giải;
- Đàm thoại nêu vấn đề, tìm kiếm vv . kết hợp giữa thầy và trò.
Trình bày sự hoạt động của lệnh lặp For ... to ... do ...
Đặt vấn đề
Lập chương trình nhập vào từ bàn phím một dãy số nguyên cho đến khi gặp số 0 rồi tính tổng các số dương.
Vậy để chương trình thực hiện được như yêu cầu ta có thể sử dụng lệnh For ... To ... Do ... không? Tại sao?
Minh hoạ
tên bài giảng
Người thực hiện: Đỗ Văn Xuân
Vòng lặp While ... do
Lệnh dùng để lặp đi lặp lại những đoạn chương trình có số lần chưa biết trước.
Vòng lặp While ... do
WHILE < ĐK_BTL > DO < Công việc > ;
Trong đó:
+ While và do: Là các từ khóa lệnh
+ < ĐK_BTL>:Là biểu thức Logic có thể nhận giá trị TRUE ( đúng ) hoặc FALSE ( sai )
+ < Công việc > : Có thể là một câu lệnh hay một nhóm lệnh (nhóm lệnh hay gọi là lệnh ghép được đặt trong khối Begin . End )
+ Lưu đồ cú pháp
Công việc
TRUE
FALSE
ĐK_BTL
ĐK_BTL
END
+ Sự hoạt động
Khi máy thực hiện lệnh While ... do trước tiên kiểm tra < ĐK_BTL>:
* Nếu ĐK_BTL cho giá trị TRUE (đúng) thì thực hiện rồi lại kiểm tra và thực hiện < công việc> tiếp theo. Quá trình chỉ kết thúc khi điều kiện < ĐK_BTL> cho giá trị FALSE ( sai ).
?
** Ngay từ đầu nếu điều kiện là FALSE thì thân vòng lặp không được thực hiện lần nào.
ĐK_BTL
Công việc
TRUE
FALSE
+ Lưu đồ cú pháp .
END
TRUE
FALSE
ĐK_BTL
ĐK_BTL
BEGIN
END
ĐK_BTL
Công việc
Công việc
Lập chương trình tính tổng sau:
S = 1 + 2 + 3 + ... + N
Với N được nhập vào từ bàn phím
Program VDU1;
Uses CRT;
Var i,n, S:Integer;
Begin
Clrscr;
S:=0; i:=1;
Write(` Vào giá trị của N=`);Readln(N);
........
........
........
........
Writeln(` Tổng S=`, S:2 );
Readln;
End.
Nội dung chương trình
Begin
i<=n
S:=0; i:=1;
S:=S+i;
i:=i+1;
End
TRUE
FALSE
Lưu đồ thuật toán
Input N
Output S
Minh hoạ
Program VDU1;
Uses CRT;
Var i,n, S:Integer;
Begin
Clrscr;
S:=0; i:=1;
Write(` Vào giá trị của N=`);Readln(N);
While i<=N do { Kiểm tra điều kiện BT Logic )
Begin
S:=S + i;
i:= i +1; { Thay đổi BT điều kiện )
End;
Writeln(` Tổng S=`, S:2 );
Readln;
End.
Nội dung chương trình
Minh hoạ
Cho biết kết quả của X trong chương trình sau, giải thích:
Program VDU2;
Uses Crt;
Var a, b: Boolean;
X:Real;
Begin
a:=True; b:=a; X:=0;
While a OR b do
Begin
X:= 2*x +1;
if x>0 then
begin
a:=False;
if x<50 then b:= False;
end;
Writeln(` Giá trị X=`, X: 4:2);
End;
Readln;
End.
?
Em hãy chọn kết quả đúng bằng cách đánh dấu ( ? ) vào ô phía dưới tương ứng, giải thích
Minh hoạ
Lệnh dùng để lặp đi lặp lại những đoạn chương trình có số lần chưa biết trước.
Vòng lặp repeat ... until
REPEAT
< công việc > ;
UNTIL < ĐK_BTL >;
Trong đó:
+ Repeat và Until: là các từ khóa lệnh
+ < ĐK_BTL >:Là biểu thức Logic có thể nhận giá trị TRUE ( đúng ) hoặc FALSE ( sai )
+ < Công việc >: Có thể là một câu lệnh hay một nhóm lệnh (nhóm lệnh hay gọi là lệnh ghép không cần đặt trong khối Begin . End )
Vòng lặp repeat ... until
BTL
Công việc
FALSE
TRUE
+ Lưu đồ cú pháp
BTL
Công việc
TRUE
FALSE
While ... do Repeat ... Until
END
END
+ Từ lưu đồ cú pháp của lệnh While ... do, em có nhận xét gì về lưu đồ cú pháp lệnh Repeat ... Until ?
+Trình bày sự hoạt động của lệnh Repeat ... Until.
+ Sự hoạt động .
Khi máy thực hiện câu lệnh Repeat ... Until trước tiên là thực hiện ngay sau đó kiểm tra điều kiện < BTL>.
- Nếu cho giá trị sai ( False ) thì quay lại vòng lặp.
- Nếu cho giá trị đúng ( True ) thì thoát khỏi vòng lặp.
** Thân vòng lặp của Repeat ... Until được thực hiện ít nhất một lần
BTL
Công việc
FALSE
TRUE
+ Lưu đồ cú pháp .
ENd
Công việc
TRUE
FALSE
ĐK_BTL
BEGIN
END
ĐK_BTL
Lập chương trình tính tổng sau:
S = 1 + 2 + 3 + ... + N
Với N được nhập vào từ bàn phím
Thuật giải
{ While ... do }
Program Btap2;
Uses Crt;
Var S, N, I:Integer;
Begin
S:=0;
I:=1;
Write(` Vào giá trị của N=`); Readln(N);
While I <= N do
Begin
S:=S + I;
I:=I + 1;
End;
Writeln(` Tổng S =:`, S:10);
Readln;
End.
{ Repeat ... Until }
Program Btap2;
Uses Crt;
Var S, N, I:Integer;
Begin
S:=0;
I:=1;
Write(` Vào giá trị của N=`); Readln(N);
Writeln(` Tổng S =:`, S:10);
Readln;
End.
Nội dung chương trình của lệnh While ... do
While I <= N do
Begin
S:=S + I;
I:=I + 1;
End;
Em hãy viết lại đoạn chương trình này bằng lệnh Repeat ... Until ...
Repeat
S:=S + I;
I:=I + 1;
Until I > N;
Nội dung chương trình của lệnh Repeat ... Until
Minh hoạ
** Nếu bỏ lệnh ( i:= i+1) trong thân vòng lặp thì chương trình sẽ hoạt động như thế nào ? Kết quả tổng S cho giá trị là bao nhiêu, giải thích ?
Program VDU1;
Uses CRT;
Const
N=10;
Var i,n, S:Integer;
Begin
Clrscr;
S:=0; i:=1;
Repeat
S:=S + i;
i:=i+1;
Until i>N;
Writeln(` Tổng=`, S:2 );
Readln;
End.
Chú ý
Minh hoạ
** Có phải mọi lệnh While ... do trong Pascal đều có thể thay thế tương đương bởi lệnh Repeat ... until không, cho ví dụ. ?
Hãy thay thế chương trình dưới đây bằng lệnh Repeat ... Until để chứng minh:
** Ví dụ: Lập chương trình tìm giá trị Max và Min của hai số a và b được nhập vào từ bàn phím, chương trình chỉ kết thúc khi ta ấn `Y` hoặc ấn chữ `y`.
Program BTap_4;
Uses Crt;
Var a, b, Max, Min : Real;
TLoi: Char;
Begin
Clrscr; Tloi=`N`;
While Upcase(TLoi)<>`Y` do
Begin
clrscr;
Write(` Vào giá trị của a, b=`);Readln(a,b);
if a> b then
Writeln(` Max=`, a:5:1,` , Min=`, b:5:1)
Else
Writeln(` Max=`, b:5:1,` , Min=`, a:5:1);
Write(` ấn phím chữ "Y" hoặc "y" để kết thúc !`); Readln(Tloi);
End;
Readln;
End.
Minh hoạ
So sánh lệnh While ... do và Repeat ... Until
Chức năng
* Lặp đi lặp lại những đoạn chương trình có số lần lặp chưa biết trước.
Sự hoạt động
( Luu d? )
Số vòng lặp tối thiểu
* Không thực hiện lần nào
* Thực hiện ít nhất một lần
- Kiểm tra điều kiện trước sau đó mới thực hiện < Công việc>.
- Nếu điều kiện < BTL> cho giá trị TRUE thì thực hiện < Công việc>.
- Nếu điều kiện < BTL> cho giá trị FALSE thì kết thúc vòng lặp.
- Thực hiện < Công việc > trước sau đó mới kiểm tra điều kiện < BTL>.
- Nếu điều kiện < BTL> cho giá trị FALSE thì thực hiện < Công việc>.
- Nếu điều kiện < BTL> cho giá trị TRUE thì kết thúc vòng lặp.
** Trình bày vắn tắt sự giống và khác nhau giữa hai lệnh While ... do và Repeat ... Until.
Bằng cách điền nội dung vào các ô tương ứng của bảng cho dưới đây.
tổng kết bài
- Chức năng, cú pháp lệnh;
- So sánh sự hoạt động của từng lệnh;
- ứng dụng của lệnh vào lập trình giải các bài toán cơ bản.
Câu hỏi, bài tập
1/ Trình bày cú pháp và chức năng của WHILE ... do và REPEAT... Until.
2/ Vẽ lưu đồ cú pháp và trình bày sự hoạt động của từng lệnh.
3/ Bài tập: Lập chương trình tính giá trị các biểu thức sau:
+ S= 1+ 1/2 + 1/3 + ... + 1/N
+ S= 1/2 + 1/4 + ... + 1/2N
+ S=1+1/3+1/5 + ... + 1/(2N-1)
Hướng dẫn
? Trong khi thực hiện phải có ít nhất 1 lệnh làm thay đổi biểu thức điều kiện nếu không chương trình sẽ không thoát khỏi vòng lặp.
Quay về
Em hãy cho biết thân vòng lặp () của lệnh Repeat ... Until được thực hiện ít nhất mấy lần, giải thích ?
Trở về
Từ lưu đồ cú pháp và sự hoạt động của lệnh em hãy cho biết thân vòng lặp ( Công việc ) của lệnh WHILE ... DO được thực hiện ít nhất mấy lần, giải thích ?
Trở về
Gợi ý bài tập:
Tính tổng: S= 1+ 1/2 + 1/3 + ... + 1/N
** Khai báo các biến:
- Tổng: S { Kiểu số thực }
- Biến điều khiển: I { Kiểu số nguyên }
- Biến N { Kiểu số nguyên }
** Nhập giá trị của N từ bàn phím
** Gán S:=0; I:=1;
Từ lưu đồ cú pháp của lệnh While ... do, em có nhận xét gì về lưu đồ cú pháp lệnh Repeat ... Until.
Quay về
Begin
I > n
S:=0; i:=1;
S:=S+i;
i:=i+1;
End
TRUE
FALSE
Input N
Output S
Sở lao động thương binh và xã hội
tên bài giảng
Người thực hiện: Đỗ Văn Xuân
Vị trí bài giảng
Môn : PASCAL
Số tiết : 60
Mục tiêu:
Học xong bài này học sinh có khả năng:
- Nêu và giải thích được chức năng, cú pháp của lệnh While ... do và lệnh Repeat ... Until;
- Trình bày được sự hoạt động của từng lệnh;
- Vận dụng được cấu trúc lệnh trong lập trình giải các bài toán đơn giản;
- Phát triển năng lực tư duy, năng lực phân tích và tổng hợp.
đồ dùng, Phương tiện
- Máy tính;
- Máy chiếu, phông chiếu;
- Bút chỉ;
- Tài liệu phát tay;
- Phiếu trắc nghiệm.
Phương pháp
- Thuyết trình giảng giải;
- Đàm thoại nêu vấn đề, tìm kiếm vv . kết hợp giữa thầy và trò.
Trình bày sự hoạt động của lệnh lặp For ... to ... do ...
Đặt vấn đề
Lập chương trình nhập vào từ bàn phím một dãy số nguyên cho đến khi gặp số 0 rồi tính tổng các số dương.
Vậy để chương trình thực hiện được như yêu cầu ta có thể sử dụng lệnh For ... To ... Do ... không? Tại sao?
Minh hoạ
tên bài giảng
Người thực hiện: Đỗ Văn Xuân
Vòng lặp While ... do
Lệnh dùng để lặp đi lặp lại những đoạn chương trình có số lần chưa biết trước.
Vòng lặp While ... do
WHILE < ĐK_BTL > DO < Công việc > ;
Trong đó:
+ While và do: Là các từ khóa lệnh
+ < ĐK_BTL>:Là biểu thức Logic có thể nhận giá trị TRUE ( đúng ) hoặc FALSE ( sai )
+ < Công việc > : Có thể là một câu lệnh hay một nhóm lệnh (nhóm lệnh hay gọi là lệnh ghép được đặt trong khối Begin . End )
+ Lưu đồ cú pháp
Công việc
TRUE
FALSE
ĐK_BTL
ĐK_BTL
END
+ Sự hoạt động
Khi máy thực hiện lệnh While ... do trước tiên kiểm tra < ĐK_BTL>:
* Nếu ĐK_BTL cho giá trị TRUE (đúng) thì thực hiện
?
** Ngay từ đầu nếu điều kiện
ĐK_BTL
Công việc
TRUE
FALSE
+ Lưu đồ cú pháp .
END
TRUE
FALSE
ĐK_BTL
ĐK_BTL
BEGIN
END
ĐK_BTL
Công việc
Công việc
Lập chương trình tính tổng sau:
S = 1 + 2 + 3 + ... + N
Với N được nhập vào từ bàn phím
Program VDU1;
Uses CRT;
Var i,n, S:Integer;
Begin
Clrscr;
S:=0; i:=1;
Write(` Vào giá trị của N=`);Readln(N);
........
........
........
........
Writeln(` Tổng S=`, S:2 );
Readln;
End.
Nội dung chương trình
Begin
i<=n
S:=0; i:=1;
S:=S+i;
i:=i+1;
End
TRUE
FALSE
Lưu đồ thuật toán
Input N
Output S
Minh hoạ
Program VDU1;
Uses CRT;
Var i,n, S:Integer;
Begin
Clrscr;
S:=0; i:=1;
Write(` Vào giá trị của N=`);Readln(N);
While i<=N do { Kiểm tra điều kiện BT Logic )
Begin
S:=S + i;
i:= i +1; { Thay đổi BT điều kiện )
End;
Writeln(` Tổng S=`, S:2 );
Readln;
End.
Nội dung chương trình
Minh hoạ
Cho biết kết quả của X trong chương trình sau, giải thích:
Program VDU2;
Uses Crt;
Var a, b: Boolean;
X:Real;
Begin
a:=True; b:=a; X:=0;
While a OR b do
Begin
X:= 2*x +1;
if x>0 then
begin
a:=False;
if x<50 then b:= False;
end;
Writeln(` Giá trị X=`, X: 4:2);
End;
Readln;
End.
?
Em hãy chọn kết quả đúng bằng cách đánh dấu ( ? ) vào ô phía dưới tương ứng, giải thích
Minh hoạ
Lệnh dùng để lặp đi lặp lại những đoạn chương trình có số lần chưa biết trước.
Vòng lặp repeat ... until
REPEAT
< công việc > ;
UNTIL < ĐK_BTL >;
Trong đó:
+ Repeat và Until: là các từ khóa lệnh
+ < ĐK_BTL >:Là biểu thức Logic có thể nhận giá trị TRUE ( đúng ) hoặc FALSE ( sai )
+ < Công việc >: Có thể là một câu lệnh hay một nhóm lệnh (nhóm lệnh hay gọi là lệnh ghép không cần đặt trong khối Begin . End )
Vòng lặp repeat ... until
BTL
Công việc
FALSE
TRUE
+ Lưu đồ cú pháp
BTL
Công việc
TRUE
FALSE
While ... do Repeat ... Until
END
END
+ Từ lưu đồ cú pháp của lệnh While ... do, em có nhận xét gì về lưu đồ cú pháp lệnh Repeat ... Until ?
+Trình bày sự hoạt động của lệnh Repeat ... Until.
+ Sự hoạt động .
Khi máy thực hiện câu lệnh Repeat ... Until trước tiên là thực hiện ngay
- Nếu
- Nếu
** Thân vòng lặp của Repeat ... Until được thực hiện ít nhất một lần
BTL
Công việc
FALSE
TRUE
+ Lưu đồ cú pháp .
ENd
Công việc
TRUE
FALSE
ĐK_BTL
BEGIN
END
ĐK_BTL
Lập chương trình tính tổng sau:
S = 1 + 2 + 3 + ... + N
Với N được nhập vào từ bàn phím
Thuật giải
{ While ... do }
Program Btap2;
Uses Crt;
Var S, N, I:Integer;
Begin
S:=0;
I:=1;
Write(` Vào giá trị của N=`); Readln(N);
While I <= N do
Begin
S:=S + I;
I:=I + 1;
End;
Writeln(` Tổng S =:`, S:10);
Readln;
End.
{ Repeat ... Until }
Program Btap2;
Uses Crt;
Var S, N, I:Integer;
Begin
S:=0;
I:=1;
Write(` Vào giá trị của N=`); Readln(N);
Writeln(` Tổng S =:`, S:10);
Readln;
End.
Nội dung chương trình của lệnh While ... do
While I <= N do
Begin
S:=S + I;
I:=I + 1;
End;
Em hãy viết lại đoạn chương trình này bằng lệnh Repeat ... Until ...
Repeat
S:=S + I;
I:=I + 1;
Until I > N;
Nội dung chương trình của lệnh Repeat ... Until
Minh hoạ
** Nếu bỏ lệnh ( i:= i+1) trong thân vòng lặp thì chương trình sẽ hoạt động như thế nào ? Kết quả tổng S cho giá trị là bao nhiêu, giải thích ?
Program VDU1;
Uses CRT;
Const
N=10;
Var i,n, S:Integer;
Begin
Clrscr;
S:=0; i:=1;
Repeat
S:=S + i;
i:=i+1;
Until i>N;
Writeln(` Tổng=`, S:2 );
Readln;
End.
Chú ý
Minh hoạ
** Có phải mọi lệnh While ... do trong Pascal đều có thể thay thế tương đương bởi lệnh Repeat ... until không, cho ví dụ. ?
Hãy thay thế chương trình dưới đây bằng lệnh Repeat ... Until để chứng minh:
** Ví dụ: Lập chương trình tìm giá trị Max và Min của hai số a và b được nhập vào từ bàn phím, chương trình chỉ kết thúc khi ta ấn `Y` hoặc ấn chữ `y`.
Program BTap_4;
Uses Crt;
Var a, b, Max, Min : Real;
TLoi: Char;
Begin
Clrscr; Tloi=`N`;
While Upcase(TLoi)<>`Y` do
Begin
clrscr;
Write(` Vào giá trị của a, b=`);Readln(a,b);
if a> b then
Writeln(` Max=`, a:5:1,` , Min=`, b:5:1)
Else
Writeln(` Max=`, b:5:1,` , Min=`, a:5:1);
Write(` ấn phím chữ "Y" hoặc "y" để kết thúc !`); Readln(Tloi);
End;
Readln;
End.
Minh hoạ
So sánh lệnh While ... do và Repeat ... Until
Chức năng
* Lặp đi lặp lại những đoạn chương trình có số lần lặp chưa biết trước.
Sự hoạt động
( Luu d? )
Số vòng lặp tối thiểu
* Không thực hiện lần nào
* Thực hiện ít nhất một lần
- Kiểm tra điều kiện
- Nếu điều kiện < BTL> cho giá trị TRUE thì thực hiện < Công việc>.
- Nếu điều kiện < BTL> cho giá trị FALSE thì kết thúc vòng lặp.
- Thực hiện < Công việc > trước sau đó mới kiểm tra điều kiện < BTL>.
- Nếu điều kiện < BTL> cho giá trị FALSE thì thực hiện < Công việc>.
- Nếu điều kiện < BTL> cho giá trị TRUE thì kết thúc vòng lặp.
** Trình bày vắn tắt sự giống và khác nhau giữa hai lệnh While ... do và Repeat ... Until.
Bằng cách điền nội dung vào các ô tương ứng của bảng cho dưới đây.
tổng kết bài
- Chức năng, cú pháp lệnh;
- So sánh sự hoạt động của từng lệnh;
- ứng dụng của lệnh vào lập trình giải các bài toán cơ bản.
Câu hỏi, bài tập
1/ Trình bày cú pháp và chức năng của WHILE ... do và REPEAT... Until.
2/ Vẽ lưu đồ cú pháp và trình bày sự hoạt động của từng lệnh.
3/ Bài tập: Lập chương trình tính giá trị các biểu thức sau:
+ S= 1+ 1/2 + 1/3 + ... + 1/N
+ S= 1/2 + 1/4 + ... + 1/2N
+ S=1+1/3+1/5 + ... + 1/(2N-1)
Hướng dẫn
? Trong khi thực hiện
Quay về
Em hãy cho biết thân vòng lặp (
Trở về
Từ lưu đồ cú pháp và sự hoạt động của lệnh em hãy cho biết thân vòng lặp ( Công việc ) của lệnh WHILE ... DO được thực hiện ít nhất mấy lần, giải thích ?
Trở về
Gợi ý bài tập:
Tính tổng: S= 1+ 1/2 + 1/3 + ... + 1/N
** Khai báo các biến:
- Tổng: S { Kiểu số thực }
- Biến điều khiển: I { Kiểu số nguyên }
- Biến N { Kiểu số nguyên }
** Nhập giá trị của N từ bàn phím
** Gán S:=0; I:=1;
Từ lưu đồ cú pháp của lệnh While ... do, em có nhận xét gì về lưu đồ cú pháp lệnh Repeat ... Until.
Quay về
Begin
I > n
S:=0; i:=1;
S:=S+i;
i:=i+1;
End
TRUE
FALSE
Input N
Output S
* 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ẻ: Đỗ Văn Xuân
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)