Đề bài
Bài tập và thực hành 7 trang 105 SGK Tin học 11
Lời giải chi tiết
1.Mục đích, yêu cầu
- Nâng cao kĩ năng viết, sử dụng chương trình con.
- Biết cách viết một chương trình có cấu trúc để giải một bài toán trên máy tính.
2. Nội dung
a]Tìm hiểu việc xây dựng các hàm và thủ tục thực hiện tính độ dài các cạnh, chu vi, diện tích, kiểm tra các tính đều, cân, vuông của tam giác được trình bày dưới đây:
Giả thiết tam giác được xác định bởi tọa độ của ba đỉnh. Ta sử dụng kiểu bản ghi để mô tả một tam giác:
type
Diem = record
X, y: real;
end;
Tamgiac= record
A, B, c:Diem;
end;
Ta xây dựng thủ tục và hàm:
Thủ tục nhận dữ liệu vào là biến mô tả tam giác R và đầu ra là độ dài của ba cạnh a, b, c:
Procedure Daicanh[var R: Tamgiac; var a, b, C:real];
Hàm tính chu vi của tam giác R:
function Chuvi[var R: Tamgiac]: real;
Hàm tính diện tích của tam giác R:
function Dientich[var Rrtamgiac]: real;
Thủ tục nhận đầu vào là biến mô tả tam giác R và đầu ra là tính chất của tam giác [Deu hay Can hay Vuong]-,
procedure Tinhchat[var R:Tamgiac;varDeu,Can,Vuong:Boolean];
Thủ tục hiển thị tọa độ ba đỉnh tam giác lên màn hình:
procedureHienthi[var R: tamgiac];
Hàm tính khoảng cách giữa hai điểm P, Q:
functionKh_cach[P, Q: Diem]: Real;
b] Tìm hiểu chương trình nhập vào tọa độ ba đỉnh một tam giác và sử dụng các hàm, thủ tục được xây dựng dưới đây để khảo sát các tính chất của tam giác.
program tam_giac;
uses crt
const ep:= 1.0E-6;
type
Diem = record
X, y: real;
end;
Tamgiac= record
A, B, C: Diem;
end;
var T: Tamgiac;
Dou, can, vuong: Boolean;
function Kh_cach[P[Q: Diem]: Real; begin
Kh_cach: sqrt[[P.x-Q.x]*[P.x-Q.x]+[P.y-Q.y]*[P.y-Q.y]];
end ;
Procedure Daicanh[var R: Tamgiac; var a, b, c: real];
begin
a:= Kh_cach[R.B, R.C],
b:= Kh_cach[R.A, R.C];
c:= Kh_cach[R.A,R.B] ;
end;
functio-n Chuvi [var R: Tamgiac] : real;
var a, b, c: real;
begin
Daicanh[R, a, b, c] ;
ChuVi:= a+b+c;
end;
functioin Dientich[var R: tamgiac] : real;
var a, b, c, p: real;
begin
Daicanh[R/a, b, c] ;
p:= [a+b+c]/2;
Dienntich: = sqrt [p* [p-a] * [p-b] * [p-c]]
end;
procedure Hienthi [var R: tamgiac] ;
begin
writeln ['Toa do 3 dinh cua tam giac la:'];
writeln['Dinh A[',R.A.x:0:3,',',R.A.y:0:3,']'];
writeln['Dinh B[',R.B.x:0:3,',R.B.y:0:3, ']'];
writeln['Dinh C [',R.C.x:0:3,',',R.C.y:0:3,']'];
end;
procedure Tinhchat[var R:Tamgiac; var Deu, Can, Vuong: Boolean ]
var a b, c: real;
begin
Deu:= false; Can:= false; Vuong:= false;
Daicanh[R, a, b, c];
if [abs[a-b]