Giao diện mới của VnDoc Pro: Dễ sử dụng hơn - chỉ tập trung vào lớp bạn quan tâm. Vui lòng chọn lớp mà bạn quan tâm: Lưu và trải nghiệm

Giải bài tập Tin học 11: Bài tập và thực hành 7

Tin học 11 - Bài tập và thực hành 7

VnDoc xin giới thiệu tới bạn đọc tài liệu Giải bài tập Tin học 11: Bài tập và thực hành 7, hy vọng qua bộ tài liệu các bạn học sinh sẽ có kết quả cao hơn trong học tập. Mời các bạn học sinh và thầy cô cùng tham khảo chi tiết tại đây nhé.

Giải bài tập Tin học 11 Bài tập và thực hành 7 vừa được VnDoc.com sưu tập và xin gửi tới bạn đọc cùng tham khảo. Bài viết được tổng hợp gồm có nội dung của bài tập và thực hành số 7. Qua bài viết bạn đọc có thể thấy được mục đích và yêu cầu của bài tập và thực hành 7, nội dung của bài tập và thực hành 7 cách xây dựng các hàm và thủ tục thực hiện tính toán... Mời các bạn cùng tham khảo chi tiết và tải về tại đây nhé.

Giải bài tập Tin học 11 Bài tập và thực hành 7

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 chất đề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 các 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à dữ liệ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 R:Tamgiac):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:

procedure Tinhchat(var R:Tamgiac;var Deu,Can,Vuong:boolean);

+ Thủ tục hiển thị tọa độ ba đỉnh của tam giác lên màn hình:

procedure Hienthi (var R:tamgiac);

+ Hàm tính khoảng cách giữa hai điểm P,Q:

function Kh_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 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.

uses crt;
const eps=1.0E-6;
type
Diem=record
	x,y:real;
     end;
Tamgiac=record
	A,B,C:Diem;
	end;
var T:Tamgiac;
    Deu,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;
function ChuVi(var R:Tamgiac):real;
	var a,b,c:real;
begin
	Daicanh(R,a,b,c);
	Chuvi:=a+b+c;
end;
function Dientich(var R:Tamgiac):real;
	var a,b,c,p:real;
begin
	Daicanh(R,a,b,c);
	p:=(a+b+c)/2;
	Dientich:=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)<eps) and (abs(a-c)<eps) then
	Deu:=true
	else 
	if (abs(a-b)<eps) or (abs(a-c)<eps) or (abs(b-c)<eps)
	then Can:=true;
	if (abs(a*a+b*b-c*c)<eps) or (abs(a*a+c*c-b*b)<eps)
	then Vuong:=true;
end;             
begin
	clrscr;
	writeln('Nhap tam giac :');
	write('Toa do dinh A:'); readln(T.A.x,T.A.y);
	write('Toa do dinh B:'); readln(T.B.x,T.B.y);
	write('Toa do dinh C:'); readln(T.C.x,T.C.y);
	writeln('======================================');
	Hienthi(T);
	writeln('Dien tich: ',Dientich(t):9:3);
	writeln('Chu vi:',Chuvi(T):9:3);
	Tinhchat(T,Deu,Can,Vuong);
	writeln('Tam giac co tinh chat :');
	if Deu then writeln('La tam giac deu ')
		else if Can then writeln('La tam giac can ');
	if Vuong then writeln('La tam giac vuong ');
	readln;
end.

Kết quả:

Giải bài tập Tin học 11: Bài tập và thực hành 7

c) 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 sáu số thực Xa, Xb, Xc, Ya, Yb, Yc là tọa độ của ba đỉnh A, B, C 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ứ hai là số lượng tam giác cân (nhưng không đều);

+ Dòng thứ ba là số lượng các tam giác vuông;

Trả lời:

+ Ta cần 2 biến kiểu tệp để tham chiếu đến 2 tệp 'TAMGIAC.DAT' và 'TAMGIAC.OUT' .

+ Đầu tiên ta đọc số N ở đầu tệp 'TAMGIAC.DAT' từ đó biết tiến hành đọc bấy nhiêu tam giác.

+ Sau đó dùng thủ tục Tinhchat để xác định tính chất của các tam giác. Rồi dùng các biến đếm để lưu số lượng các tam giác.

uses crt;
const eps=1.0E-6;
type
Diem=record
	x,y:real;
     end;
Tamgiac=record
	A,B,C:Diem;
	end;
var T:array[1..1000] of Tamgiac;
    Deu,Can,Vuong:boolean;
    N,i:integer;
    sdeu,scan,svuong:integer;
    tin,tout:text;
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;
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)<eps) and (abs(a-c)<eps) then
	Deu:=true
	else 
	if (abs(a-b)<eps) or (abs(a-c)<eps) or (abs(b-c)<eps)
	then Can:=true;
	if (abs(a*a+b*b-c*c)<eps) or (abs(a*a+c*c-b*b)<eps)
	then Vuong:=true;
end;
begin
	assign(tin,'TAMGIAC.DAT');
	reset(tin);
	assign(tout,'TAMGIAC.OUT');
	rewrite(tout);
	sdeu:=0;
	scan:=0;
	svuong:=0;
	readln(tIN,N);
	for i:=1 to N do
		begin
			Deu:=false;
			Can:=false;
			Vuong:=false;
			readln(tin,T[i].A.x,T[i].A.y,T[i].B.x,T[i].B.y,T[i].C.x,T[i].C.y);
			Tinhchat(T[i],Deu,Can,Vuong);
			if Deu then
			sdeu:=sdeu+1
			else if Can
			then scan:=scan+1;
			if Vuong then
			svuong:=svuong+1;
		end;
	writeln(tout,'So luong cac tam giac deu la ',sdeu);
	writeln(tout,'So luong cac tam giac can ma khong deu la ',scan);
	write(tout,'So luong cac tam giac vuong la ',svuong);
	close(tin);
	close(tout);
end.

Kết quả:

Với dữ liệu file nguồn:

Giải bài tập Tin học 11: Bài tập và thực hành 7

Kết quả nhận được ở file đích

Giải bài tập Tin học 11: Bài tập và thực hành 7

----------------------------

Trên đây VnDoc.com vừa giới thiệu tới các bạn bài viết Giải bài tập Tin học 11: Bài tập và thực hành 7, mong rằng qua bài viết này các bạn có thể học tập tốt hơn môn Tin học lớp 11. Mời các bạn cùng tham khảo thêm kiến thức các môn Toán 11, Ngữ văn 11, Tiếng Anh 11, đề thi học kì 1 lớp 11, đề thi học kì 2 lớp 11...

Mời bạn đọc cùng tham gia nhóm Tài liệu học tập lớp 11 để có thêm tài liệu học tập nhé

Để có kết quả cao hơn trong học tập, VnDoc xin giới thiệu tới các bạn học sinh tài liệu Sinh học lớp 11, Vật lý lớp 11, Hóa học lớp 11, Giải bài tập Toán 11 mà VnDoc tổng hợp và đăng tải.

Chia sẻ, đánh giá bài viết
1
Chọn file muốn tải về:
Chỉ thành viên VnDoc PRO tải được nội dung này!
79.000 / tháng
Đặc quyền các gói Thành viên
PRO
Phổ biến nhất
PRO+
Tải tài liệu Cao cấp 1 Lớp
Tải tài liệu Trả phí + Miễn phí
Xem nội dung bài viết
Trải nghiệm Không quảng cáo
Làm bài trắc nghiệm không giới hạn
Mua cả năm Tiết kiệm tới 48%
Sắp xếp theo
    🖼️

    Gợi ý cho bạn

    Xem thêm
    🖼️

    Giải bài tập Tin học 11

    Xem thêm