Nội dung của Bài 17: Chương trình con và phân loại dưới đây, các em sẽ được tìm hiểu về khái niệm chương trình con, ý nghĩa của chương trình con; cấu trúc của chương trình con và cách phân biệt hai loại chương trình con là hàm và thủ tục. Mời các em cùng theo dõi nội dung chi tiết của bài học.
Để viết chương trình giải các bài toán lớn, phức tạp người lập trình có thể chia thành nhiều bài toán nhỏ, mỗi bài toán là một dãy lệnh mô tả một số thao tác nhất định (gọi là chương trình con). Sau đó ghép nối các chương trình con thành chương trình chính.
Chương trình con là dãy các lệnh mô tả một số thao tác nhất định và có thể được thực hiện từ nhiều vị trí trong chương trình.
Trong nhiều ngôn ngữ lập trình, chương trình con thường gồm hai loại:
sin(x) nhận vào giá trị thực x và trả về giá trị sinx,
sqrt(x) nhận vào giá trị x trả về giá trị căn bậc hai của x,
length(x) nhận vào xâu x và trả về độ dài của xâu x,...
< phần đầu >
[< phần khai báo >]
< phần thân >
Một số lưu ý:
Sự giống nhau và khác nhau giữa hàm và thủ tục
Gợi ý trả lời:
Hàm | Thủ tục |
Đầu hàm bắt đầu bằng từ khóa Function | Đầu thủ tục bắt đầu bằng từ khóa Procedure |
Luôn trả về một giá trị thuộc kiểu xác định thông qua tên hàm (các kiểu dữ liệu đơn giản: integer, real, boolean, char, string). | |
Phải chỉ ra kết quả của hàm thuộc kiểu dữ liệu nào. | |
Trong thân hàm thường có câu lệnh gán giá trị cho tên hàm. |
Chương trình tính tích của hai số nguyên a và b
Function Tich(a, b: integer): integer;
Var Kq: Integer;
Begin
Kq := a*b;
Tich := Kq;
End;
Procedure tt_Tich(a, b: integer);
Var Kq: Integer;
Begin
Kq := a*b;
Write('Tích của' , a, 'và', b, 'là', Kq);
End;
Hãy nhận xét cấu trúc hàm và thủ tục của chương trình tính tích ở trên.
Gợi ý trả lời:
Sau khi học xong Bài 17: Chương trình con và phân loại, các em cần nắm vững nhữ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 17 cực hay có đáp án và lời giải chi tiết.
Để khai báo hàm trong Pascal bắt đầu bằng từ khóa
Để khai báo thủ tục trong Pascal bắt đầu bằng từ khóa
Kiểu dữ liệu của hàm
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
Để khai báo hàm trong Pascal bắt đầu bằng từ khóa
Để khai báo thủ tục trong Pascal bắt đầu bằng từ khóa
Kiểu dữ liệu của hàm
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?
Khẳng định nào sau đây là đúng?
Khẳng định nào sau đây là đúng?
Mô tả nào dưới đây về hàm là sai?
Trong các cách sử dụng thủ tục sau, cách nào là phù hợp nhất ?
Hãy chọn phương án ghép đúng. Cho thủ tục sau:
Procedure p ;
Var n : integer ;
Begin
…………
End ;
Phạm vi của biến n là :
Trong các chương trình chuẩn sau đây, chương trình chuẩn nào là thủ tục chuẩn?
Họ và tên
Tiêu đề câu hỏi
Nội dung câu hỏi
Có phải chương trình nào cũng cần chương trình con ko? Vì sao
Câu trả lời của bạn
Câu trả lời của bạn
- Người dùng đăng kí với một nhà cung cấp dịch vụ Internet (ISP).
- Thiết bị kết nối mạng được kết nối vào hệ thống mạng của ISP rồi từ đó kết nối với Internet.
- Những thiết bị cần thiết:
+ Đối với mạng có dây: môdem, vỉ mạng, dây cáp mạng,…
+ Đối với mạng không dây: Môdem (USB 3G)
Câu trả lời của bạn
OneDrive
Viết chương trình con (hàm) tính X^2 ( X nguyên nhập vào từ bàn phím)
Câu trả lời của bạn
Viết công thức nhập vào từ bàn phím 10 số nguyên bất kì . Ghi 10 số nguyên trên vào tệp KQ.TXT và 10 số nguyên trên nằm trên 1 hàng và mỗi số cách nhau 1 dấu cách (hàng 1).và ghi số lượng số dương vào hàng 2 trong tệp ?
Câu trả lời của bạn
Câu trả lời của bạn
* Điểm khác:
- Biến toàn cục:
+ Được khai báo ngoài hàm, có thể được khai báo trong hàm main() nhưng sử dụng chung cho tất cả các hàm có trong hàm main().
+ Giá trị của biến được sử dụng chung cho tất cả các hàm, nếu bạn truyền biến vào hàm bằng cách truyền tham chiếu thì giá trị của biến sẽ thay đổi.
+ Biến không bị hủy sau khi hàm kết thúc, biến chỉ bị hủy khi chương trình đã dừng.
+ Biến được khởi tạo có giá trị mặc định do hệ thống tự động tạo ra.
- Biến cục bộ:
+ Được khai báo trong phạm vi một hàm.
+ Giá trị của biến chỉ được sử dụng trong phạm vi hàm đó, không thể sử dụng bởi hàm khác.
+ Biến sẽ bị hủy sau khi hàm thực hiện xong công việc của mình.
+ Biến được khởi tạo có giá trị rác, bạn phải tự mình khởi tạo giá trị cho biến.
a) Số lượng số chẵn và số lẻ trong dãy
b) Tổng các số chẵn và tổng các số lẻ trong dãy
(Lưu ý: dùng chương trình con để đảm bảo các số chẵn ,số lẻ,tính tổng chẵn và tổng các số lẻ).
Câu trả lời của bạn
uses crt;
var a:array[1..100]of integer;
i,n,dem,t,dem1,t1:integer;
{----------------------chuong-trinh-con-----------------------------}
function ktra(var x:integer):boolean;
begin
if x mod 2=0 then ktra:=true
else ktra:=false;
end;
{---------------------chuong-trinh-chinh----------------------------}
begin
clrscr;
write('Nhap n='); readln(n);
for i:=1 to n do
begin
write('A[',i,']='); readln(a[i]);
end;
t:=0;
dem1:=0;
t1:=0;
dem:=0;
for i:=1 to n do
begin
if ktra(a[i])=true then
begin
t:=t+a[i];
inc(dem);
end
else begin
t1:=t1+a[i];
inc(dem1);
end;
end;
writeln('So luong so chan la: ',dem);
writeln('So luong so le la: ',dem1);
writeln('Tong cac so chan la: ',t);
writeln('Tong cac so le la: ',t1);
readln;
end.
Câu trả lời của bạn
Procedure sapxep( var x,y: integer);
var tg: integer;
begin
if x<y then
begin
tg:=x;
x:=y;
y:=tg;
end;
Câu trả lời của bạn
Program DapAnHay;
var i,n: integer;
t: longint;
a: array[1..100] of integer;
procedure ip;
begin
write('Nhap n='); readln(n);
for i:=1 to n do
begin
write('a[',i,']='); readln(a[i]);
end;
end;
function chan(x: integer): longint;
var tong: longint;
begin
t:=0;
if x mod 2=0 then tong:=x;
chan:=tong;
end;
begin
ip;
for i:=1 to n do t:=t+chan(a[i]);
write(t);
readln
end.
Câu trả lời của bạn
Program DapAnHay;
const fi='Dulieu.data';
fo='Ketqua.data';
var i,n,k,d: integer;
f: text;
procedure ip;
begin
assign(f,fi);
reset(f);
n:=0;
while not(eof(f)) do
begin
n:=n+1;
read(f,a[n]);
end;
readln(f);
read(f,k);
close(f);
end;
procedure out;
begin
assign(f,fo);
rewrite(f);
d:=0;
for i:=1 to n do
if a[i]=k then d:=d+1;
write(f,d);
close(f);
end;
begin
ip;
out;
end.
Câu trả lời của bạn
Program DapAnHay;
var f: text;
begin
assign(f,'ABC.doc');
reset(f);
close(f);
end.
Câu trả lời của bạn
program ktsnt ;
var n : integer;
function ktsnt(m:integer):boolean;
var j:integer;kq:boolean;
begin
kq:=true;
for j:=2 to m-1 do
begin
if m mod j =0 then kq:=false;
end;
ktsnt:=kq;
end;
begin
write('nhap n='); readln(n);
if ktsnt(n)=true then write('Day la so nguyen to') else write('Day khong phai la so nguyen to');
readln
end.
Câu trả lời của bạn
uses crt;
var a,b:integer;
{--------------------------chuong-trinh-con-tim-ucln-------------------------}
function ucln(x,y:integer):integer;
var i:integer;
begin
ucln:=1;
if x>y then
begin
for i:=1 to y do
if (x mod i=0) and (y mod i=0) then
begin
if ucln<i then ucln:=i;
end;
end
else if x=y then ucln:=x
else
begin
for i:=1 to x do
if (x mod i=0) and (y mod i=0) then
begin
if ucln<i then ucln:=i;
end;
end;
end;
{----------------------chuong-trinh-chinh--------------------------}
begin
clrscr;
repeat
write('Nhap a='); readln(a);
write('Nhap b='); readln(b);
until (a>0) and (b>0);
writeln(ucln(a,b));
readln;
end.
Câu trả lời của bạn
uses crt;
var a,b,c,d,t:integer;
{------------------------chuong-trinh-con-tinh-tong-cua-hai-so-----------------}
function tong(var x,y:integer):integer;
begin
tong:=x+y;
end;
{------------------------chuong-trinh-chinh----------------------}
begin
clrscr;
write('Nhap so thu nhat: '); readln(a);
write('Nhap so thu hai: '); readln(b);
write('Nhap so thu ba: '); readln(c);
write('Nhap so thu tu: '); readln(d);
t:=tong(a,b)+tong(c,d);
writeln('Tong cua bon so la: ',t);
readln;
end.
Câu trả lời của bạn
const fi='dulieu.dat';
assign(f1,fi); reset(f1);
Câu trả lời của bạn
uses crt;
var a,b:integer;
{---------------------chuong-trinh-con--------------------------}
function tong(var x,y:integer):integer;
begin
tong:=x+y;
end;
{-------------------chuong-trinh-chinh----------------------}
begin
clrscr;
write('Nhap so thu nhat:'); readln(a);
write('Nhap so thu hai:'); readln(a);
writeln('Tong cua hai so la: ',tong(a,b));
readln;
end.
Câu trả lời của bạn
uses crt;
var a:array[1..300]of integer;
n,i,t:integer;
begin
clrscr;
write('Nhap so phan tu:'); readln(n);
for i:=1 to n do
begin
write('A[',i,']='); readln(a[i]);
end;
t:=0;
for i:=1 to n do
if (a[i] mod 2<>0) and (i mod 2=0) then t:=t+a[i];
writeln('Tong cac phan tu le o vi tri chan la: ',t);
readln;
end.
Câu trả lời của bạn
uses crt;
var n,k:longint;
{----------------chuong-trinh-con-------------------}
function gthua(var n:longint):real;
var i:longint;
gt:real;
begin
gt:=1;
for i:=1 to n do
gt:=gt*i;
gthua:=gt;
end;
{----------------chuong-trinh-chinh------------------}
begin
clrscr;
repeat
write('Nhap n='); readln(n);
write('Nhap k='); readln(k);
until (n>0) and (k>0) and (k<=n);
writeln(n,'!=',gthua(n):4:2);
writeln('C=',gthua(n)/(gthua(k)*gthua(n-k)):4:2);
readln;
end.
Câu trả lời của bạn
Uses crt;
Const fi='dl.int';
Var f1:text;
A:array[1..100] of integer;
I,n,t: integer;
Begin
Clrscr;
Assign(f1,fi); reset(f1);
Readln(f1,n);
For i:=1 to n do
Read(f1,a[i]);
T:=0;
For i:=1 to n do
T:=t+a[i];
Writeln(t);
Close(f1);
Readln;
End.
Câu trả lời của bạn
uses crt;
var a:array[1..100]of integer;
i,n,t:integer;
begin
clrscr;
write('Nhap n='); readln(n);
for i:=1 to n do
begin
write('A[',i,']='); readln(a[i]);
end;
t:=0;
for i:=1 to n do
if a[i] mod 2=0 then t:=t+a[i];
writeln(t);
readln;
end.
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 *