Phần 4: Ngôn ngữ lập trình Pascal -2 trong giáo trình Nhập môn Tin học biên soạn nhằm mục đích phục vụ cho việc giảng dạy. Bài giảng cung cấp cho người học những nội dung quan trọng trong môn học này: Khái niệm chương trình con, đặc điểm của chương trình con và tệp văn bản. Bên cạnh đó, bài giảng còn giới thiệu một số ví dụ minh họa nhằm giúp các bạn hệ thống kiến thức đã được học trong bài giảng. Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Giáo trình Nhập môn Tin học: Phần 4 - ThS. Đào Tăng Kiệm
TRƯỜNG ĐẠI HỌC XÂY DỰNG
KHOA CÔNG NGHỆ THÔNG TIN
------------ ------------
GIÁO TRÌNH
MÔN HỌC: NHẬP
MÔN TIN HỌC
PHẦN III – NGÔN NGỮ LẬP TRÌNH PASCAL -2
Giảng viên: ĐÀO TĂNG KIỆM
Bộ môn : TIN HỌC XÂY DỰNG
Hà nội 2012
----------
Giáo trình Nhập môn Tin học: Phần III – Ngôn ngữ lập trình Pascal -2
GVC: Đào Tăng Kiệm
Chương 4 CHƯƠNG TRÌNH CON
I.
Khái niệm chung – đặc điểm
1. Khái niệm chung:
Ở những chương trước chúng ta mới làm quen với cấu trúc của chương trình chính, trong đó
để giải quyết một hoặc nhiều vấn đề, tất cả các lệnh đều nằm trong một chương trình và
thực hiện các lệnh từ trên xuống dưới. Với những bài toán lớn, theo cấu trúc này chương
trình chính rất dài, cồng kềnh, khó kiểm soát và không thể phân chia cho nhiều nhóm thực
hiện đồng thời một lúc.
Từ đó hình thành ý tưởng xây dựng chương trình con là một mô đun độc lập, kết nối với
chương trình chính và các chương trình con khác qua “đầu vào” và “đầu ra”, chia nhỏ chức
năng và cấu trúc chương trình chính thành nhiều mô đun nhỏ, trong đó chương trình chính
là chương trình điều khiển quá trình tính toán của chương trình con.
Trong những năm đầu khi bắt đầu xuất hiện ngôn ngữ lập trình, người ta chưa thiết lập được
cấu trúc Chương trình con. Trong quá trình phát triển các ngôn ngữ đã có, cùng với nhu cầu
của người sử dụng, những tiện lợi mà chương trình con mang lại, sự phát triển các ngôn ngữ
đã có và khi xây dựng ngôn ngữ lạp trình mới đều hướng đến việc tổ chức chương trình con.
Ưu điểm khi sử dụng cấu trúc chương trình con:
- Cấu trúc chương trình chính trở nên gọn, mạch lạc, dễ hiểu.
- Không lặp lại các phần tương tự.
- Vì là một mô đun độc lập, chương trình con có thể sử dụng nhiều lần trong một
chương trình hoặc ở các chương trình khác nhau.
- Dễ kiểm tra, theo dõi trong quá trình thử nghiệm.
2. Đặc điểm của Chương trình con:
- Là một đơn vị chương trình độc lập, hoàn chỉnh, cũng bao gồm 3 phần: tên chương trình,
phần khai báo và phần thân. Chương trình con có thể giải quyết một vấn đề trọn vẹn và
được sử dụng nhiều lần qua lời gọi nó trong chương trình chính.
- Toàn bộ các Chương trình con đặt ở cuối phần khai báo trong chương trình chính.
- Các biến trong chương trình con chỉ có tính chất cục bộ (chỉ có tác dụng trong bản thân
chương trình đó). Trong chương trình con có thể sử dụng tất cả các lệnh như chương trình
chính.
- Thứ tự khai báo các chương trình con không quan trọng nếu các chương trình độc lập với
nhau. Khi các chương trình con gọi đến nhau thì phải xếp theo một trật tự nào đó nếu. Ví dụ
chương trình con A gọi đến chương trình con B thì B phải khai báo trước A.
- Trong Pascal có 2 loại chương trình con: chương trình con dạng hàm (Function) và
chương trình con dạng thủ tục (Procedurre).
- Chương trình con chỉ được tham chiếu đến nếu nó được gọi từ chương trình chính.
Bộ môn Tin học Xây dựng
2
Giáo trình Nhập môn Tin học: Phần III – Ngôn ngữ lập trình Pascal -2
GVC: Đào Tăng Kiệm
- Mỗi lần gặp lời gọi chương trình con, chương trình chính chuyển đến chương trình con và
thực hiện chúng, sau khi thực hiện, nó quay trở về chương trình chính thực hiện câu lệnh
ngay sau lời gọi chương trình con.
Minh họa cấu trúc của chương trình chính và chương trình con:
Cấu trúc chương trình
Chú thích
Program Tên_chương_trình_chính;
Các khai
Lebel – Const- Type
báo chung
Var (Khai báo Các biến chung )
của
CT
chính
Function Tên_hàm ( Danh_sách_tham_số_hình thức) :
kiểu_hàm ;
{ Phần khai báo các biến cục bộ của hàm}
Begin
Các câu lệnh của chương trình con ạng hàm
End;
Procedure Tên_Thủ_tục (Dsach_Tham_số_hình_thức);
{ Phần khai báo các biến cục bộ của thủ tục}
Begin
Các câu lệnh của chương trình con thủ tục;
End;
BEGIN
Các lệnh ;
Lời gọi chương trình con;
……
END.
II.
Khai báo
các
Chương
trình con
Phần khai báo
của chương
trình chính
Nội dung
các
chương
trình con
Phần thân
của
chương
trình chính
Thủ tục và hàm – cách khai báo
1. Hàm – Function: Chương trình con dạng hàm dùng để tính cho các hàm hoặc xử lý
cho những bài toán chỉ tính và xuất một kết quả.
Đặc điểm của chương trình con dạng hàm:
- Tên chương trình con là tên biến chứa kết quả.
- Dùng cho các bài toán chỉ tính 1 kết quả
- Trong phần thân của chương trình con phải có một phép gán có chứa tên của CTC.
- Lời gọi chương trình con hàm phải nằm trong thành phần của biểu thức hoặc phép gán
và kết quả của chương trình con được lấy ra từ đó.
Cấu trúc chương trình con dạng hàm:
Function Tên_hàm ( Danh_sách_tham_số_hình thức) : kiểu_hàm ;
{ Phần khai báo các biến cục bộ của hàm}
Begin
Bộ môn Tin học Xây dựng
3
Giáo trình Nhập môn Tin học: Phần III – Ngôn ngữ lập trình Pascal -2
GVC: Đào Tăng Kiệm
Các câu lệnh;
Tên_hàm:= Biểu_Thức
....
End;
Ví dụ: Để tính các hàm:
F1 = a.x + 5b. x2 – (a+b). xy
F2 = (7.a-c).x + b 2. x2 + (a-b). xy
F3 = c.x + (a+c). x2 – (a2+b2). xy
F4 = (a/2).x + 5b. x2 – 120.b. xy
- Chúng ta nhận thấy các hàm có 1 cấu trúc giống nhau có thể tổng quát hóa qua công thức :
F= a1.x + a2. x2 +a3. xy
Trong đó a1, a2, a3 có các giá trị khác nhau trong các hàm F1,.. F4. Chúng ta thiết lập một
chương trình con dạng Function để tính cho một hàm “đại diện”, và sau đó gọi chúng ra tính
cho các hàm F1..F4 như sau:
- Chương tình con tính cho một hàm F bất kỳ:
Nội dung
Giải thích
a1,a2,..Ten : các tham số hình
Function F ( a1, a2, a3 : real) : real;
Var x,y : real ;
Begin
F := a1* + a2* x2 +a3* x*y ;
Writeln ( ‘ Gia tri cua ham ’);
End;
- Để tính toán cho các hàm F1,..F4 ta viết đoạn chương trình
chính sau:
Program Tinh_ham;
Var a,b,c, F1,F2,F3,F4,x,y : real ;
BEGIN
Writeln (‘ Nhap du lieu ’);
Write ( ‘ Nhap cac gia tri a,b,c ’); Readln ( a,b,c);
Write ( ‘ Nhap cac gia tri x,y ’); Readln ( x,y);
Writeln (‘ KET QUA ’);
F1:= F ( a, 5*b, - (a+b) ) ;
Writeln (’F1= ’ , F1:8:2 );
F2:= F ( 7*a-c , sqr(b), (a-b) ) ; Writeln (’F2= ’, F2:8:2 );
F3:= F ( c, (a+c), - (a*a+b*b)) ; Writeln (’F3= ’ , F3:8:2 );
F4:= F ( a/2, 5*b, - 120*b ) ; Writeln (’F4= ’ , F4:8:2 ...