Các ngôn ngữ lập trình đều có các quy tắc viết và sử dụng chương trình con, trong Bài 18: Ví dụ về cách viết và sử dụng chương trình con ta xét cách viết và sử dụng chương trình con trong Pascal. Mời các em cùng theo dõi nội dung chi tiết của bài học dưới đây.
Procedure [ < danh sách tham số > ];
[ < phần khai báo > ]
Begin
[ < dãy các lệnh > ]
End;
Trong đó:
Một số lưu ý:
Khi cần thực hiện, ta phải viết lệnh gọi thủ tục tương tự như các thủ tục chuẩn.
Ví dụ 1: Lập chương trình cho phép vẽ nhiều hình chữ nhật với kích thước khác nhau.
Gợi ý làm bài:
Chương trình mẫu:
Program VD_hcn;
Uses crt;
Var a,b,i:integer; {bien toan cuc}
Procedure Ve_Hcn(chdai,chrong:integer); {Bat dau CTC}
Var i, j: integer; {bien cuc bo}
Begin
{ve canh tren hinh chu nhat}
For i:=1 to chdai do write(‘*’);
Writeln;
For j:=1 to chrong -2 do {ve 2 canh ben}
Begin
Write(‘*’);
For i:=1 to chdai – 2 do write(‘ ’);{ve khoang trang}
Writeln(‘*’);
End;
{ve canh duoi}
For i:=1 to chdai do write(‘*’);
Writeln;
End; {Ket thuc CTC}
Begin
Clrscr;
Ve_Hcn(25,10); {ve hinh chu nhat 25x10}
Writeln; {cach 1 dong}
Ve_Hcn(5,10); {ve hinh chu nhat 5x10}
Readln;
Clrscr;
{ve 4 hinh chu nhat hinh dau tien 4x2. Moi hinh sau co kich thuoc gap doi hinh truoc}
a:=4; b:=2;
for i:=1 to 4 do
begin
Ve_Hcn(a,b);
readln;
a:=a*2; b:=b*2;
end;
End.
Function < tên hàm > [ < danh sách tham số > ) ] : < kiểu dữ liệu > ;
[ < phần khai báo > ]
Begin
[ < dãy các lệnh > ]
< tên hàm > := < biểu thức >
End;
Trong đó:
Ví dụ 2: Xét chương trình rút gọn một phân số, trong đó sử dụng hàm tính ước chung lớn nhất (ƯCLN) của hai số nguyên.
Chương trình mẫu:
Program Rutgon_Phanso;
Uses crt;
Var Tuso, Mauso, a: Integer; {Bien toan cuc}
Function UCLN(x, y: Integer): Integer; {Bat dau ham UCLN}
Var sodu: Integer; {Bien cuc bo}
Begin
while y <> 0 do
begin
sodu:= x mod y;
x:= y;
y:= sodu;
end;
UCLN:= x; {Gan gia tri cho ten ham}
End; {Ket thuc ham}
Begin
Clrscr;
write('Nhap vao Tu So va Mau So: '); readln(Tuso,Mauso);
a:= UCLN(Tuso,Mauso);
If a > 1 then
begin
Tuso:= Tuso div a;
Mauso:= Mauso div a;
end;
writeln(Tuso,'/', Mauso);
End.
Một số lưu ý:
Viết chương trình con để tính n! = 1.2...n.
Gợi ý giải:
Vì bài toán này trả về 1 giá trị duy nhất nên ta dùng hàm.
Function GiaiThua(n:Integer) : Integer;
Var P, i: Integer;
Begin
P:=1;
For i:=1 To n Do
P:=P*i;
GiaiThua:=P;
End;
Viết chương trình con để tìm điểm đối xứng của điểm (x,y) qua gốc tọa độ.
Gợi ý giải:
Vì bài toán này trả về tọa độ điểm đối xứng (xx,yy) gồm 2 giá trị nên ta dùng thủ tục.
Procedure DoiXung(x,y:Integer; Var xx,yy:Integer);
Begin
xx:=-x;
yy:=-y;
End;
Nhận xét 2 ví dụ trên:
Sau khi học xong Bài 18: Ví dụ về cách viết và sử dụng chương trình con, các em cần nắm vững nội dung trọng tâm:
Các em có thể hệ thống lại nội dung kiến thức đã học được thông qua bài kiểm tra Trắc nghiệm Tin học 11 Bài 18 cực hay có đáp án và lời giải chi tiết.
Nói về cấu trúc của một chương trình con, khẳng định nào sau đây là không đúng?
Sự khác biệt cơ bản giữa hàm và thủ tục:
Giả sử ta có phần đầu thủ tục:
Procedure VD (var N, M: integer; E: real);
Thì nhận định nào sau đây là đúng:
Câu 4-10: Mời các em đăng nhập xem tiếp nội dung và thi thử Online để củng cố kiến thức về bài học này nhé!
Trong quá trình học tập nếu có thắc mắc hay cần trợ giúp gì thì các em hãy comment ở mục Hỏi đáp, Cộng đồng Tin học DapAnHay sẽ hỗ trợ cho các em một cách nhanh chóng!
Chúc các em học tập tốt và luôn đạt thành tích cao trong học tập!
-- Mod Tin Học 11 DapAnHay
Nói về cấu trúc của một chương trình con, khẳng định nào sau đây là không đúng?
Sự khác biệt cơ bản giữa hàm và thủ tục:
Giả sử ta có phần đầu thủ tục:
Procedure VD (var N, M: integer; E: real);
Thì nhận định nào sau đây là đúng:
Với x, y là 2 số nguyên, để tính tổng của chúng ta chọn hàm kiểu tham trị. Vậy phần tựa đề nào được xây dựng sau là đúng?
Với a, b là 2 số thực, để tính tích của chúng ta chọn thủ tục kiểu tham trị. Vậy phần tựa đề nào được xây dựng sau là đúng?
Muốn khai báo x là tham số giá trị và y, z là tham số biến (x, y, z thuộc kiểu Byte) trong thủ tục sau thì khai báo nào sau đây là sai?
Biến cục bộ là các biến được khai báo trong?
Biến toàn cục là các biến được khai báo trong?
Cho chương trình sau:
Program Chuong_Trinh;
Var a, b, S : byte;
Procedure TD(Var x : byte ; y : byte);
Var i : byte;
Begin
i := 5;
writeln(x,‘ ’, y);
x := x + i ;
y := y + i ;
S := x + y ;
Writeln(x,‘ ’, y);
End;
Begin
Write(‘nhập a và b : ’);
Readln(a, b);
TD(a,b);
Writeln(a,‘ ’, b, ‘ ’, S);
Readln;
End.
Trong chương trình trên có các tham số thực sự là:
Cho chương trình sau:
Program Chuong_Trinh;
Var a, b, S : byte;
Procedure TD(Var x : byte ; y : byte);
Var i : byte;
Begin
i := 5;
writeln(x,‘ ’, y);
x := x + i ;
y := y + i ;
S := x + y ;
Writeln(x,‘ ’, y);
End;
Begin
Write(‘nhập a và b : ’);
Readln(a, b);
TD(a,b);
Writeln(a,‘ ’, b, ‘ ’, S);
Readln;
End.
Trong chương trình trên có các tham số hình thức là:
Họ và tên
Tiêu đề câu hỏi
Nội dung câu hỏi
Var
x, y : Integer ; St :String ;
Procedure TT( Var a : Integer ; b : String);
-Lệnh nào đúng :
A. TT(x +1, St) ;
B. TT(10, St) ;
C. TT(x, St) ;
D. y:= TT(St, x) ;
Câu trả lời của bạn
Câu trả lời của bạn
Câu trả lời của bạn
Câu trả lời của bạn
Câu trả lời của bạn
Câu trả lời của bạn
Câu trả lời của bạn
Câu trả lời của bạn
begin
write(' a[ ' , i , '] =');
readln(a[i]);
end;
max:=a[1];
min:=a[1];
tb:=a[i];
for i:= 1 to n do
begin if max<a[i] then max:= a[i];
if min>a[i] then min:= a[i];
if tb:= tb+a[i];
end;
( cái này m k chắc là có đúng hay k đâu nhé).
Câu trả lời của bạn
chào một người quan tâm đến câu hỏi này , nếu có thể thì trả lời giúp mình nhé!
Câu trả lời của bạn
dung lenh program
pacal la j vay ban
Câu trả lời của bạn
Viết chương trình nhập vào từ bàn phím 1 số nguyên dương N (nhỏ hơn hoặc =100) và dãy số nguyên (A1,A2..An) với Ai nhỏ hơn hoặc bằng 1000. Dãy A có ít nhất hai phần tử có giá trị =0. Tính và đưa ra màn hình tổng các phần tử giữa phần tử đầu tiên = 0 và phần tửng cuối cùng =0
Câu trả lời của bạn
: Viết chương trình nhập vào từ bàn phím số nguyên dương N (N<=100), và dãy số A1,A2,...,An . Đếm các số chẵn chia hết cho 3 trong dãy
Câu trả lời của bạn
Viết chương trình với các chương trình con sau:
a. Nhập xâu s.
b. Xóa kí tự trắng thừa trong xâu s để có xâu s chuẩn.
c. Đếm số từ trong xâu s.
d. Sử dụng chương trình con trên với xâu x nhập từ bàn phím
Câu trả lời của bạn
Câu 1: hãy viết 1 chương trình pascal nhập vào từ bàn phím 4 số nguyên a,b,c,d rồi in ra màn hình dòng thứ nhất là tổng của 4 số trên, dòng thứ 2 là giá trị lớn nhất của chúng.
câu 2: yêu cầu như câu 1 , chủ thay từ đọc từ bàn phím thành đọc từ tệp "kt.inp" và in ra màn hình thành in ra tệp 'kt.out'.
Câu trả lời của bạn
Viết chương trình 3 số nguyên từ file de2.txt .Sau đó in ra màn hình số nguyên nhỏ nhất trong 3 số nguyên đó
Câu trả lời của bạn
Câu trả lời của bạn
Viết chương trình có sử dụng chương trình con để tính diện tích các hình vuông có độ dài cạnh lần lượt là: a,b,c,d,e,f. In ra màn hình kết quả sau khi tính.
Câu trả lời của bạn
VCT Nhập số nguyên dương N( N<= 250) và dãy N số nguyên dương a1,a2,..an.
a) in ra các phần tử âm của mảng
b ) tính tổng các phần tử âm của mảng
Câu trả lời của bạn
Viết chương trình tính diện tích của một hình tròn, biết bán kính được nhập từ bàn phím và pi = 3.14. Yêu cầu có sử dụng chương trình con tính diện tích.
Câu trả lời của bạn
0 Bình luận
Để lại bình luận
Địa chỉ email của hạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *