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
Để học tốt Tin học lớp 11, nội dung bài học là trả lời câu hỏi, giải bài tập Tin học 11 Bài tập và thực hành 7 hay nhất, ngắn gọn. Bên cạnh đó là tóm tắt lý thuyết ngắn gọn và bộ câu hỏi trắc nghiệm Tin học 11 bài Bài tập và thực hành 7 có đáp án.
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ả:
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:
Kết quả nhận được ở file đích
Xem thêm các bài giải bài tập Tin học lớp 11 hay, chi tiết khác:
- Bài 17: Chương trình con và phân loại
- Bài 18: Ví dụ về cách viết và sử dụng chương trình con
- Bài tập và thực hành 6
- Bài tập và thực hành 7
- Bài 19: Thư viện chương trình con chuẩn
- Bài tập và thực hành 8
- Giải bài tập Tin học 11 trang 117
Tủ sách VIETJACK shopee lớp 10-11 cho học sinh và giáo viên (cả 3 bộ sách):
Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.
Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:Nếu thấy hay, hãy động viên và chia sẻ nhé! Các bình luận không phù hợp với nội quy bình luận trang web sẽ bị cấm bình luận vĩnh viễn.
- Giải Tiếng Anh 11 Global Success
- Giải sgk Tiếng Anh 11 Smart World
- Giải sgk Tiếng Anh 11 Friends Global
- Lớp 11 - Kết nối tri thức
- Soạn văn 11 (hay nhất) - KNTT
- Soạn văn 11 (ngắn nhất) - KNTT
- Giải sgk Toán 11 - KNTT
- Giải sgk Vật Lí 11 - KNTT
- Giải sgk Hóa học 11 - KNTT
- Giải sgk Sinh học 11 - KNTT
- Giải sgk Lịch Sử 11 - KNTT
- Giải sgk Địa Lí 11 - KNTT
- Giải sgk Giáo dục KTPL 11 - KNTT
- Giải sgk Tin học 11 - KNTT
- Giải sgk Công nghệ 11 - KNTT
- Giải sgk Hoạt động trải nghiệm 11 - KNTT
- Giải sgk Giáo dục quốc phòng 11 - KNTT
- Giải sgk Âm nhạc 11 - KNTT
- Lớp 11 - Chân trời sáng tạo
- Soạn văn 11 (hay nhất) - CTST
- Soạn văn 11 (ngắn nhất) - CTST
- Giải sgk Toán 11 - CTST
- Giải sgk Vật Lí 11 - CTST
- Giải sgk Hóa học 11 - CTST
- Giải sgk Sinh học 11 - CTST
- Giải sgk Lịch Sử 11 - CTST
- Giải sgk Địa Lí 11 - CTST
- Giải sgk Giáo dục KTPL 11 - CTST
- Giải sgk Hoạt động trải nghiệm 11 - CTST
- Giải sgk Âm nhạc 11 - CTST
- Lớp 11 - Cánh diều
- Soạn văn 11 Cánh diều (hay nhất)
- Soạn văn 11 Cánh diều (ngắn nhất)
- Giải sgk Toán 11 - Cánh diều
- Giải sgk Vật Lí 11 - Cánh diều
- Giải sgk Hóa học 11 - Cánh diều
- Giải sgk Sinh học 11 - Cánh diều
- Giải sgk Lịch Sử 11 - Cánh diều
- Giải sgk Địa Lí 11 - Cánh diều
- Giải sgk Giáo dục KTPL 11 - Cánh diều
- Giải sgk Tin học 11 - Cánh diều
- Giải sgk Công nghệ 11 - Cánh diều
- Giải sgk Hoạt động trải nghiệm 11 - Cánh diều
- Giải sgk Giáo dục quốc phòng 11 - Cánh diều
- Giải sgk Âm nhạc 11 - Cánh diều