Cách khai báo và sử dụng hàm Function, thủ tục procedure trên tệp
Ai chỉ cho mình cách khai báo và sử dụng hàm Function, thủ tục produce trên tệp
*Cách khai báo
-Thủ tục: procedure <tên thủ tục>(các tham số);
-Hàm: function <tên hàm>(các tham số):<kiểu dữ liệu của hàm>;
*Sử dụng:
-Thủ tục: Dùng để thực hiện một hay nhiều nhiệm vụ nào đó.
-Hàm: Trả về một giá trị nào đó (có kiểu vô hướng, kiểu string). Hàm có thể sử dụng trong các biểu thức.
*Ngoài ra, trong Pascal còn cho phép các CTC lồng vào nhau.
Bài tập chương trình con: (procedure và function) Bài 1: Viết hàm tính n giai thừa của một số nguyên dương (n!) Bài 2: Viết hàm tính tổng các số lẻ chia hết cho 5 từ 1 đến n Bài 3: Viết thủ tục thực hiện việc hoán đổi 2 giá trị của a và b
Bài tập chương trình con: (procedure và function) Bài 6: Viết thủ tục để in các số từ 1 đến n Bài 7: Viết thủ tục để mn các số chẵn chia hết cho 3 phạm vi từ 1 Đến n
Hãy bắt đầu một phiên làm việc mới: Khởi động Logo, mở một tệp chương trình chứa các thủ tục đã viết (ví dụ tệp Baihoc2.lgo) bằng cách chọn File -> Load… và tìm tệp trong cửa sổ Open. Xem nội dung và cách sắp xếp các thủ tục trong tệp này bằng cách nháy nút lệnh Edall. Viết thêm một thủ tục mới, thực hiện thủ tục này và ghi lại tệp với tên cũ.
Cho 3 điểm a(x1;y1) b(x2;y2) c(x3;y3) tính chu vi và diện tích tam giác (1 cách sử dụng hàm,1 cách sử dụng thủ tục
program Angus;
uses crt;
var
x1,x2,x3,y1,y2,y3,s,p,n,a,b,c :real;
begin
clrscr;
write('Nhập tọa độ điểm A(x1,y1)= '); readln(x1,y1);
write('Nhập tọa độ điểm B(x2,y2)= '); readln(x2,y2);
write('Nhập tọa độ điểm C(x3,y3)= '); readln(x3,y3);
a:=sqrt(sqr(x2-x1)+sqr(y2-y1));
b:=sqrt(sqr(x3-x2)+sqr(y3-y2));
c:=sqrt(sqr(x1-x3)+sqr(y1-y3));
if (a+b>c) and (b+c>a) and (c+a>b) then
begin
p:=a+b+c;
n:=p/2;
s:=sqrt(n*(n-a)*(n-b)*(n-c));
writeln('Chu vi = ', p:0:2);
writeln('Diện tích = ',s:0:2);
end
else writeln('các điểm bạn vừa nhập không tạo thành 1 tam giác :> ');
readln
Viết chương trình C++ sử dụng các hàm và thủ tục xây dựng ở trên để giải bài toán:
Cho tệp dữ liệu TAMGIAC.DAT có cấu trúc như sau:
- Dòng đầu tiên chứa số N;
- N dòng tiếp theo, mỗi dòng chứa 6 số thực xA, yA, xB, yB, xC, yC là tọa độ 3 đỉnh A(xA, yA), B(xB, yB), C(xC, yC) của tam giác ABC
Hãy nhập dữ liệu từ tệpđã cho và trong số N tam giác đó, đưa ra tệp TAMGIAC.OUT gồm 3 dòng:
- Dòng đầu tiên là số lượng tam giác đều;
- Dòng thứ 2 là số lượng tam giác cân (nhưng không là đều);
- Dòng thứ 3 là số lượng tam giác vuông.
(Viet chuong trinh C++ chu khong phai Pascal a )
Viết chương trình sử dụng các hàm và thủ tục xây dựng ở trên để giải bài toán:
Cho tệp dữ liệu TAMGIAC.DAT có cấu trúc như sau:
- Dòng đầu tiên chứa số N;
- N dòng tiếp theo, mỗi dòng chứa 6 số thực xA, yA, xB, yB, xC, yC là tọa độ 3 đỉnh A(xA, yA), B(xB, yB), C(xC, yC) của tam giác ABC
Hãy nhập dữ liệu từ tệpđã cho và trong số N tam giác đó, đưa ra tệp TAMGIAC.OUT gồm 3 dòng:
- Dòng đầu tiên là số lượng tam giác đều;
- Dòng thứ 2 là số lượng tam giác cân (nhưng không là đều);
- Dòng thứ 3 là số lượng tam giác vuông.
const fi='tamgiac.dat'
fo='tamgiac.out'
var f1,f2:text;
a,b,c,d,e,f:array[1..100]of integer;
i,n,dem1,dem2,dem3:integer;
ab,bc,ac:real;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,n);
for i:=1 to n do
readln(f1,a[i],b[i],c[i],d[i],e[i],f[i]);
dem1:=0;
dem2:=0;
dem3:=0;
for i:=1 to n do
begin
ab:=sqrt(sqr(a[i]-c[i])+sqr(b[i]-d[i]));
ac:=sqrt(sqr(a[i]-e[i])+sqr(b[i]-f[i]));
bc:=sqrt(sqr(c[i]-e[i])+sqr(d[i]-f[i]));
if (ab>0) and (ac>0) and (bc>0) and (ab+ac>bc) and (ab+bc>ac) and
(ac+bc>ab) then
begin
if (ab=ac) or (ac=bc) then inc(dem1);
if ((ab=ac) and (ab<>bc) and (ac<>bc)) then inc(dem2);
if ((ac=bc) and (bc<>ab) and (ac<>ab)) then inc(dem2);
if ((ac=bc) and (ac<>ab) and (bc<>ab)) then inc(dem2);
if sqr(ab)=sqr(ac)+sqr(bc) then inc(dem3);
if sqr(ac)=sqr(bc)+sqr(ab) then inc(dem3);
if sqr(bc)=sqr(ab)+sqr(ac) then inc(dem3);
end;
end;
writeln(f2,dem1);
writeln(f2,dem2);
writeln(f2,dem3);
close(f1);
close(f2);
end.
Hãy bắt đầu một phiên làm việc mới: Khởi động Logo, mở một tệp chương trình chứa các thủ tục đã viết (ví dụ tệp Baihoc1.lgo) bằng cách gõ lệnh (Load “Baihoc1.lgo). Xem nội dung và cách sắp xếp các thủ tục trong tệp này bằng cách nháy nút lệnh Edall. Viết thêm một thủ tục mới, thực hiện thủ tục này và ghi lại tệp với tên cũ. (Chú ý: Tránh mở nhiều tệp liên tiếp).
Trong PASCAL, để khai báo biến tệp văn bản ta phải sử dụng cú pháp:
A. Var <tên biến tệp> : Text;
B. Var <tên tệp> : Text;
C. Var <tên tệp> : String;
D. Var <tên biến tệp> : String;