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 và sử dụng hàm Function, thủ tục procedure 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.
➤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.
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 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ũ.
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;
1- Viết chương trình con tính diện tích hình tròn bán kính R ( sử dụng thủ tục hoặc hàm)
2- Viết chương trình con tính diện tích tam giác khi biết đáy và chiều cao nhập từ bàn phím.( sử dụng 1 thủ tục hoặc hàm để tính diện tích)
3- Viết chương trình con tính diện tích tam giác với độ dài các cạnh nhập từ bàn phím.(sử dụng 1 thủ tục hoặc hàm )
1:
function dt(r:real):real;
begin
dt:=sqr(r)*pi;
end;
2:
function dt(a,b:real):real;
begin
dt:=1/2*a*b;
end;
3:
function dt(a,b,c:real):real;
var p,s:real;
begin
p:=(a+b+c)/2;
s:=sqrt(p*(p-a)*(p-b)*(p-c));
dt:=s;
end;
Sử dụng thủ tục vẽ từng hình tròn đặc (có màu bút vẽ) em hãy tạo tệp bongmau.lgo lưu lại thủ tục vẽ một chùm bóng bay (có 5 quả màu khác nhau) như hình bên.
Thủ tục vẽ một hình tròn
To htron
Repeat 360[fd 40 bk 40 rt 1]
end
Hướng dẫn: Ngoài thủ tục trên, em cần xây dựng thủ tục chumbong như sau:
To chumbong
Setpencolor 1 htron fd 50 rt 72
Setpencolor 2 htron fd 50 rt 72
Setpencolor 3 htron fd 50 rt 72
Setpencolor 4 htron fd 50 rt 72
Setpencolor 5 htron fd 50 rt 72
Setpencolor 10
Pu bk 100 lt 20
Pd repeat 5 [fd 60 bk 60 rt 8]
End