Bài 18. Ví dụ về cách viết và sử dụng chương trình con
Chia sẻ bởi Trần Văn Nam Khánh |
Ngày 10/05/2019 |
106
Chia sẻ tài liệu: Bài 18. Ví dụ về cách viết và sử dụng chương trình con thuộc Tin học 11
Nội dung tài liệu:
Huế, 3/2009
MENU
TỔNG QUAN
BÀI HỌC
GIỚI THIỆU
BÀI 18
SÁCH GIÁO KHOA
BÀI HỌC
KIỂM TRA BÀI CŨ
VÀO BÀI MỚI
TRỞ VỀ TRANG ĐẦU
KHỐI CHUYÊN TIN
KH.KHÔNG CHUYÊN
BÀI 18
SÁCH GIÁO KHOA
NỘI DUNG
1. Cách viết và sử dụng thủ tục
1.Cách viết và sử dụng thủ tục:
Xét ví dụ vẽ hình chữ nhật có dạng sau:
* * * * * * *
* *
* * * * * * *
Input: 16 ngôi sao
Output: hình chữ nhật
Thuật toán:
- Dùng ba câu lệnh sau để vẽ hình chữ nhật trên:
writeln(‘* * * * * * *’);
writeln(‘* *’);
writeln(‘* * * * * * *’);
Chương trình minh họa Pascal:
Program th_thutuc1;
uses crt;
procedure ve_hcn;
begin
writeln(`* * * * * * *`);
writeln(`* *`);
writeln(`* * * * * * *`);
end;
begin
clrscr;
ve_hcn;
writeln;writeln;
ve_hcn;
writeln;writeln;
ve_hcn;
readln;
end.
Chạy chương trình:
Ctrl+F9
BÀI 18
SÁCH GIÁO KHOA
NỘI DUNG
1. Cách viết và sử dụng thủ tục
a)Cấu trúc của thủ tục:
Thủ tục có cấu trúc như sau:
procedure [(]);
[]
begin
[]
end;
*Chú thích:
- Phần đầu thủ tục gồm tên dành riêng procedure , tên thủ tục và danh sách tham số có thể có hoặc không có.
- Phần khai báo dùng để xác định các hằng, kiểu, biến và có thể xác định các chương trình con khác được sử dụng trong thủ tục.
- Dãy câu lệnh được viết giữa tên dành riêng begin và end tạo thành thân của thủ tục.
a.Cấu trúc thủ tục
BÀI 18
SÁCH GIÁO KHOA
NỘI DUNG
1. Cách viết và sử dụng thủ tục
b)Ví dụ về thủ tục:
Vdụ1: Vẽ hinh chữ nhật với chiều dài và chiều rộng là những số nguyên dương được nhập từ bàn phím.
Xác định bài toán:
Input : chiều dài, chiều rộng
Output : hình chữ nhật
Chương trình minh họa bằng Pascal:
a.Cấu trúc thủ tục
b.Ví dụ về thủ tục
Program vd_thtuc2;
uses crt;
var a,b,i: integer;
procedure ve_hcn(chdai,chrong:integer);
var i,j: integer;
begin
{ve canh tren cua hinh chu nhat}
for i:=1 to chdai do write(`*`);
writeln;
for j:=1 to chrong-2 do
begin
write(`*`);
for i:=1 to chdai-2 do write(` `);
writeln(`*`);
end;
{ve canh duoi}
for i:=1 to chdai do write(`*`);
writeln;
end;
begin {bat dau chuong trinh chinh}
clrscr;
{ve hinh chu nhat co kich thuoc 25x10}
ve_hcn(25,10);
writeln;writeln;
{ve hinh chu nhat co kicj thuoc 5x10}
ve_hcn(5,10);
readln;
clrscr;
{ve 4 hinh chu nhat: hinh dau tien co kich thuoc 4x2,
moi hinh sau co kich thuoc gap doi hinh truoc}
a:=4; b:=4;
for i:=1 to 4 do
begin
ve_hcn(a,b);
readln;clrscr;
a:=a*2;b:=b*2;
end;
readln;
end.
Chạy chương trình:
Ctrl+F9
BÀI 18
SÁCH GIÁO KHOA
NỘI DUNG
1. Cách viết và sử dụng thủ tục
Trong lệnh gọi thủ tục, các tham số hình thức được thay thế bằng các tham số thực sự còn gọi là các tham số trị hay ( gọi tắt là tham trị).
Các tham số chdai, chrong của thủ tục Ve_Hcn là tham trị. Lệnh gọi thủ tục Ve_Hcn(5, 3) thì tham số chdai=5, chrong=3.Còn lệnh gọi thủ tục Ve_Hcn(a,b) thì tham số
- chdai=giá trị hiện thời của biến a
- chrong= giá trị hiện thời của biến b
Trong lệnh gọi thủ tục các tham số hình thức được thay bằng các tham số thực sự tương ứng là tên các biến chứa dữ liệu ra gọi là tham số biến hay ( tham biến).
để phân biệt giữa tham biến và tham trị. Trong Pascal quy định:Những biến đắt sau từ khóa Var gọi là tham biến.
a.Cấu trúc thủ tục
b.Ví dụ về thủ tục
BÀI 18
SÁCH GIÁO KHOA
NỘI DUNG
1. Cách viết và sử dụng thủ tục
Ví dụ: Thủ tục Hoan_doi giá trị 2 biến x,y.
IN PUT : giá trị x, y trước khi gọi thủ tục hoán đổi
OUT PUT: giá tri x, y sau lời gọi thủ tục.
Chương trình Pascal minh họa như sau:
a.Cấu trúc thủ tục
b.Ví dụ về thủ tục
program vd_thambien1;
uses crt;
var a,b: integer;
procedure hoan_doi(var x,y:integer);
var tg: integer;
begin
tg:=x;
x:=y;
y:=tg;
end;
begin
clrscr;
a:=5;b:=10;
writeln(a:6,b:6);
hoan_doi(a,b);
writeln(a:6,b:6);
readln;
end.
Chạy chương trình:
Ctrl+F9
BÀI 18
SÁCH GIÁO KHOA
NỘI DUNG
1. Cách viết và sử dụng thủ tục
Chúng ta thấy rằng sau khi goi thủ tục Hoan_doi(a,b), với a=5, b=10 thì kết quả sau khi thực hiện thủ tục ta có a=10, b=5.
Kết quả đó có được là do việc khai báo biến x, y ở dạng tham biến (tức là biến đươc khai báo sau từ khóa Var)
- Để thấy được sự khác nhau khi chương trình con dùng tham số giá trị ( tham trị) và tham số biến (tham biến) hay (có hay không khai báo với từ khóa Var) ta xét chương trình sau:
a.Cấu trúc thủ tục
b.Ví dụ về thủ tục
program vd_thambien2;
uses crt;
var a,b: integer;
procedure hoan_doi(x:integer;var y: integer);
var tg: integer;
begin
tg:=x;
x:=y;
y:=tg;
end;
begin
clrscr;
a:=5;b:=10;
writeln(a:6,b:6);
hoan_doi(a,b);
writeln(a:6,b:6);
readln;
end.
Chạy chương trình:
Ctrl+F9
BÀI 18
SÁCH GIÁO KHOA
NỘI DUNG
1. Cách viết và sử dụng thủ tục
2. Cách viết và sử dụng hàm
2.Cách viết và sử dụng hàm:
Hàm có cấu trúc như sau:
function [(]): kiêu dữ liệu;
[]
begin
[]
end;
*Chú ý:
-Hàm khác với thủ tục ở chỗ là phần đầu của hàm có thêm kiểu dữ liệu.Trong đó kiểu dữ liệu là kiểu integer, real,…
- Trong thân hàm cần có lệnh gán giá trị cho tên hàm :
:= ;
Vi dụ 1: chương trình rút gọn phân số có sử dụng hàm tính ước chung lớn nhất(ƯCLN) của 2 số nguyên
program rutgon_phanso;
uses crt;
var tuso,mauso,a: integer;
function UCLN(x,y:integer):integer; {bat dau ham UCLN}
var sodu: integer;
begin
while y<>0 do
begin
sodu:=x mod y;
x:=y;
y:=sodu;
end;
UCLN:=x;
end;
begin
clrscr;
Continue
write(`nhap tu so, mau so vao! `);readln(tuso,mauso);
a:=UCLN(tuso,mauso);
if a >1 then
begin
tuso:=tuso div a;
mauso:=mauso div a;
end;
writeln(tuso:5, mauso:5);
readln;
end.
Chạy chương trình:
Ctrl+F9
BÀI 18
SÁCH GIÁO KHOA
NỘI DUNG
1. Cách viết và sử dụng thủ tục
2. Cách viết và sử dụng hàm
*Chú ý:
- Trong chương trình trên thì các biến Tuso, Mauso, và a là các biến toàn cục, còn biến sodu là biến cục bộ
Sử dụng hàm:
- Việc sử dụng hàm hoàn toàn tương tự với việc sử dụng các hàm chuẩn, khi viết lệnh gọi gồm tên hàm và tham số thực tương ứng với các tham số hình thức .
Lệnh gọi hàm có thể tham gia vào biểu thức như một toán hạng và thậm chí là tham số của lời gọi hàm, thủ tục khác, ví dụ :
A:= 6*Ucln(Tuso,Mauso)+1;
Ví dụ 2: Chương trình cho biết giá trị nhỏ nhât của 3 số nhập từ bàn phím, trong đó có sử dụng hàm tìm số nhỏ nhất trong 2 số
Program minbaso;
var a,b,c:real;
{ham tim so nho nhat tron hai so a, b}
function min(a,b:real):real;
begin
if a< b then min:=a
else min:=b;
end;
begin
write(`nhap vao ba so :`);
readln(a,b,c);
writeln(`so nho nhat trong ba so la: `,min(min(a,b),c));
readln;
end.
Chạy chương trình:
Ctrl+F9
BÀI 18
SÁCH GIÁO KHOA
NỘI DUNG
1. Cách viết và sử dụng thủ tục
2. Cách viết và sử dụng hàm
Cách viết và sử dụng chương trình trong pascal
THỦ TỤC:
- Cấu trúc:
procedure[(danh sách tham số)];
[]
Begin
[]
End;
- Phần đầu thủ tục:
- procedure: Từ khoá dành cho thủ tục
- tên thủ tục: là tên được đặt cho thủ tục
BÀI 18
SÁCH GIÁO KHOA
NỘI DUNG
1. Cách viết và sử dụng thủ tục
2. Cách viết và sử dụng hàm
Phần khai báo:
Dùng để xác định các hằng, kiểu, biến và cũng có thể xác định các chương trình con khác được sử dụng trong thủ tục
- Dãy các câu lệnh:
Được viết giữa cặp tên giành riêng begin và end tạo thành thân của thủ tục.
- Danh sách tham số:Có thể là tham trị hoặc tham biến, phần danh sách tham số có thể có hoặc không.
BÀI 18
SÁCH GIÁO KHOA
NỘI DUNG
1. Cách viết và sử dụng thủ tục
2. Cách viết và sử dụng hàm
2. HÀM
Cấu trúc:
function [];;
[]
Begin
[]
End;
- Phần đầu hàm:
- function: từ khóa dành cho hàm
- Tên hàm : là tên được đặt cho hàm ( thường mang ý nghĩa sát với ý nghĩa của hàm)
- Danh sách tham số: là tham tri , tham biến hoặc không có danh sách tham số ( nếu hàm không có tham số hình thức)
- Kiểu dữ liệu: là kiểu giữ liệu của giá trị mà hàm trả về ( kiểu Integer, real, boolean, string...)
BÀI 18
SÁCH GIÁO KHOA
NỘI DUNG
1. Cách viết và sử dụng thủ tục
2. Cách viết và sử dụng hàm
Sự giống và khác nhau giữa thủ tục và hàm.
Giống nhau:
- Đều có tên
- Có hay không có danh sách tham số.
- Có phần khai báo biến
- Thân của hàm và thủ tục đều được kẹp giữa cặp begin và end
Khác nhau:
BÀI 18
SÁCH GIÁO KHOA
NỘI DUNG
1. Cách viết và sử dụng thủ tục
2. Cách viết và sử dụng hàm
Thủ tục
Hàm
+ Việc thực hiện hàm luôn trả về giá trị kết quả thuộc kiểu xác định và giá trị đó được gán cho tên hàm.
+ Còn thủ tục thì không
về Cấu trúc :
- function []; ;
- procedure[(danh sách tham số)];
- Trong thân hàm có lệnh gán giá trị cho tên hàm ::=;
- Còn thủ tục thì không
MENU
TỔNG QUAN
BÀI HỌC
GIỚI THIỆU
BÀI 18
SÁCH GIÁO KHOA
BÀI HỌC
KIỂM TRA BÀI CŨ
VÀO BÀI MỚI
TRỞ VỀ TRANG ĐẦU
KHỐI CHUYÊN TIN
KH.KHÔNG CHUYÊN
BÀI 18
SÁCH GIÁO KHOA
NỘI DUNG
1. Cách viết và sử dụng thủ tục
1.Cách viết và sử dụng thủ tục:
Xét ví dụ vẽ hình chữ nhật có dạng sau:
* * * * * * *
* *
* * * * * * *
Input: 16 ngôi sao
Output: hình chữ nhật
Thuật toán:
- Dùng ba câu lệnh sau để vẽ hình chữ nhật trên:
writeln(‘* * * * * * *’);
writeln(‘* *’);
writeln(‘* * * * * * *’);
Chương trình minh họa Pascal:
Program th_thutuc1;
uses crt;
procedure ve_hcn;
begin
writeln(`* * * * * * *`);
writeln(`* *`);
writeln(`* * * * * * *`);
end;
begin
clrscr;
ve_hcn;
writeln;writeln;
ve_hcn;
writeln;writeln;
ve_hcn;
readln;
end.
Chạy chương trình:
Ctrl+F9
BÀI 18
SÁCH GIÁO KHOA
NỘI DUNG
1. Cách viết và sử dụng thủ tục
a)Cấu trúc của thủ tục:
Thủ tục có cấu trúc như sau:
procedure
[
begin
[
end;
*Chú thích:
- Phần đầu thủ tục gồm tên dành riêng procedure , tên thủ tục và danh sách tham số có thể có hoặc không có.
- Phần khai báo dùng để xác định các hằng, kiểu, biến và có thể xác định các chương trình con khác được sử dụng trong thủ tục.
- Dãy câu lệnh được viết giữa tên dành riêng begin và end tạo thành thân của thủ tục.
a.Cấu trúc thủ tục
BÀI 18
SÁCH GIÁO KHOA
NỘI DUNG
1. Cách viết và sử dụng thủ tục
b)Ví dụ về thủ tục:
Vdụ1: Vẽ hinh chữ nhật với chiều dài và chiều rộng là những số nguyên dương được nhập từ bàn phím.
Xác định bài toán:
Input : chiều dài, chiều rộng
Output : hình chữ nhật
Chương trình minh họa bằng Pascal:
a.Cấu trúc thủ tục
b.Ví dụ về thủ tục
Program vd_thtuc2;
uses crt;
var a,b,i: integer;
procedure ve_hcn(chdai,chrong:integer);
var i,j: integer;
begin
{ve canh tren cua hinh chu nhat}
for i:=1 to chdai do write(`*`);
writeln;
for j:=1 to chrong-2 do
begin
write(`*`);
for i:=1 to chdai-2 do write(` `);
writeln(`*`);
end;
{ve canh duoi}
for i:=1 to chdai do write(`*`);
writeln;
end;
begin {bat dau chuong trinh chinh}
clrscr;
{ve hinh chu nhat co kich thuoc 25x10}
ve_hcn(25,10);
writeln;writeln;
{ve hinh chu nhat co kicj thuoc 5x10}
ve_hcn(5,10);
readln;
clrscr;
{ve 4 hinh chu nhat: hinh dau tien co kich thuoc 4x2,
moi hinh sau co kich thuoc gap doi hinh truoc}
a:=4; b:=4;
for i:=1 to 4 do
begin
ve_hcn(a,b);
readln;clrscr;
a:=a*2;b:=b*2;
end;
readln;
end.
Chạy chương trình:
Ctrl+F9
BÀI 18
SÁCH GIÁO KHOA
NỘI DUNG
1. Cách viết và sử dụng thủ tục
Trong lệnh gọi thủ tục, các tham số hình thức được thay thế bằng các tham số thực sự còn gọi là các tham số trị hay ( gọi tắt là tham trị).
Các tham số chdai, chrong của thủ tục Ve_Hcn là tham trị. Lệnh gọi thủ tục Ve_Hcn(5, 3) thì tham số chdai=5, chrong=3.Còn lệnh gọi thủ tục Ve_Hcn(a,b) thì tham số
- chdai=giá trị hiện thời của biến a
- chrong= giá trị hiện thời của biến b
Trong lệnh gọi thủ tục các tham số hình thức được thay bằng các tham số thực sự tương ứng là tên các biến chứa dữ liệu ra gọi là tham số biến hay ( tham biến).
để phân biệt giữa tham biến và tham trị. Trong Pascal quy định:Những biến đắt sau từ khóa Var gọi là tham biến.
a.Cấu trúc thủ tục
b.Ví dụ về thủ tục
BÀI 18
SÁCH GIÁO KHOA
NỘI DUNG
1. Cách viết và sử dụng thủ tục
Ví dụ: Thủ tục Hoan_doi giá trị 2 biến x,y.
IN PUT : giá trị x, y trước khi gọi thủ tục hoán đổi
OUT PUT: giá tri x, y sau lời gọi thủ tục.
Chương trình Pascal minh họa như sau:
a.Cấu trúc thủ tục
b.Ví dụ về thủ tục
program vd_thambien1;
uses crt;
var a,b: integer;
procedure hoan_doi(var x,y:integer);
var tg: integer;
begin
tg:=x;
x:=y;
y:=tg;
end;
begin
clrscr;
a:=5;b:=10;
writeln(a:6,b:6);
hoan_doi(a,b);
writeln(a:6,b:6);
readln;
end.
Chạy chương trình:
Ctrl+F9
BÀI 18
SÁCH GIÁO KHOA
NỘI DUNG
1. Cách viết và sử dụng thủ tục
Chúng ta thấy rằng sau khi goi thủ tục Hoan_doi(a,b), với a=5, b=10 thì kết quả sau khi thực hiện thủ tục ta có a=10, b=5.
Kết quả đó có được là do việc khai báo biến x, y ở dạng tham biến (tức là biến đươc khai báo sau từ khóa Var)
- Để thấy được sự khác nhau khi chương trình con dùng tham số giá trị ( tham trị) và tham số biến (tham biến) hay (có hay không khai báo với từ khóa Var) ta xét chương trình sau:
a.Cấu trúc thủ tục
b.Ví dụ về thủ tục
program vd_thambien2;
uses crt;
var a,b: integer;
procedure hoan_doi(x:integer;var y: integer);
var tg: integer;
begin
tg:=x;
x:=y;
y:=tg;
end;
begin
clrscr;
a:=5;b:=10;
writeln(a:6,b:6);
hoan_doi(a,b);
writeln(a:6,b:6);
readln;
end.
Chạy chương trình:
Ctrl+F9
BÀI 18
SÁCH GIÁO KHOA
NỘI DUNG
1. Cách viết và sử dụng thủ tục
2. Cách viết và sử dụng hàm
2.Cách viết và sử dụng hàm:
Hàm có cấu trúc như sau:
function
[
begin
[
end;
*Chú ý:
-Hàm khác với thủ tục ở chỗ là phần đầu của hàm có thêm kiểu dữ liệu.Trong đó kiểu dữ liệu là kiểu integer, real,…
- Trong thân hàm cần có lệnh gán giá trị cho tên hàm :
Vi dụ 1: chương trình rút gọn phân số có sử dụng hàm tính ước chung lớn nhất(ƯCLN) của 2 số nguyên
program rutgon_phanso;
uses crt;
var tuso,mauso,a: integer;
function UCLN(x,y:integer):integer; {bat dau ham UCLN}
var sodu: integer;
begin
while y<>0 do
begin
sodu:=x mod y;
x:=y;
y:=sodu;
end;
UCLN:=x;
end;
begin
clrscr;
Continue
write(`nhap tu so, mau so vao! `);readln(tuso,mauso);
a:=UCLN(tuso,mauso);
if a >1 then
begin
tuso:=tuso div a;
mauso:=mauso div a;
end;
writeln(tuso:5, mauso:5);
readln;
end.
Chạy chương trình:
Ctrl+F9
BÀI 18
SÁCH GIÁO KHOA
NỘI DUNG
1. Cách viết và sử dụng thủ tục
2. Cách viết và sử dụng hàm
*Chú ý:
- Trong chương trình trên thì các biến Tuso, Mauso, và a là các biến toàn cục, còn biến sodu là biến cục bộ
Sử dụng hàm:
- Việc sử dụng hàm hoàn toàn tương tự với việc sử dụng các hàm chuẩn, khi viết lệnh gọi gồm tên hàm và tham số thực tương ứng với các tham số hình thức .
Lệnh gọi hàm có thể tham gia vào biểu thức như một toán hạng và thậm chí là tham số của lời gọi hàm, thủ tục khác, ví dụ :
A:= 6*Ucln(Tuso,Mauso)+1;
Ví dụ 2: Chương trình cho biết giá trị nhỏ nhât của 3 số nhập từ bàn phím, trong đó có sử dụng hàm tìm số nhỏ nhất trong 2 số
Program minbaso;
var a,b,c:real;
{ham tim so nho nhat tron hai so a, b}
function min(a,b:real):real;
begin
if a< b then min:=a
else min:=b;
end;
begin
write(`nhap vao ba so :`);
readln(a,b,c);
writeln(`so nho nhat trong ba so la: `,min(min(a,b),c));
readln;
end.
Chạy chương trình:
Ctrl+F9
BÀI 18
SÁCH GIÁO KHOA
NỘI DUNG
1. Cách viết và sử dụng thủ tục
2. Cách viết và sử dụng hàm
Cách viết và sử dụng chương trình trong pascal
THỦ TỤC:
- Cấu trúc:
procedure
[
Begin
[
End;
- Phần đầu thủ tục:
- procedure: Từ khoá dành cho thủ tục
- tên thủ tục: là tên được đặt cho thủ tục
BÀI 18
SÁCH GIÁO KHOA
NỘI DUNG
1. Cách viết và sử dụng thủ tục
2. Cách viết và sử dụng hàm
Phần khai báo:
Dùng để xác định các hằng, kiểu, biến và cũng có thể xác định các chương trình con khác được sử dụng trong thủ tục
- Dãy các câu lệnh:
Được viết giữa cặp tên giành riêng begin và end tạo thành thân của thủ tục.
- Danh sách tham số:Có thể là tham trị hoặc tham biến, phần danh sách tham số có thể có hoặc không.
BÀI 18
SÁCH GIÁO KHOA
NỘI DUNG
1. Cách viết và sử dụng thủ tục
2. Cách viết và sử dụng hàm
2. HÀM
Cấu trúc:
function
[
Begin
[
End;
- Phần đầu hàm:
- function: từ khóa dành cho hàm
- Tên hàm : là tên được đặt cho hàm ( thường mang ý nghĩa sát với ý nghĩa của hàm)
- Danh sách tham số: là tham tri , tham biến hoặc không có danh sách tham số ( nếu hàm không có tham số hình thức)
- Kiểu dữ liệu: là kiểu giữ liệu của giá trị mà hàm trả về ( kiểu Integer, real, boolean, string...)
BÀI 18
SÁCH GIÁO KHOA
NỘI DUNG
1. Cách viết và sử dụng thủ tục
2. Cách viết và sử dụng hàm
Sự giống và khác nhau giữa thủ tục và hàm.
Giống nhau:
- Đều có tên
- Có hay không có danh sách tham số.
- Có phần khai báo biến
- Thân của hàm và thủ tục đều được kẹp giữa cặp begin và end
Khác nhau:
BÀI 18
SÁCH GIÁO KHOA
NỘI DUNG
1. Cách viết và sử dụng thủ tục
2. Cách viết và sử dụng hàm
Thủ tục
Hàm
+ Việc thực hiện hàm luôn trả về giá trị kết quả thuộc kiểu xác định và giá trị đó được gán cho tên hàm.
+ Còn thủ tục thì không
về Cấu trúc :
- function
- procedure
- Trong thân hàm có lệnh gán giá trị cho tên hàm :
- Còn thủ tục thì không
* 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 Văn Nam Khánh
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)