1. Trang chủ
  2. » Giáo án - Bài giảng

Bài tập Pascal 09 Biến có cấu trúc

4 219 1

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 4
Dung lượng 96,78 KB

Nội dung

Các bài tập và bài giải về biến cấu trúc (Record) trong Pascal Bài tập 01 – Tìm độ dài của một đoạn thẳng AB: Bài tập 02 – Tìm toạ độ trung điểm của một đoạn thẳng AB: Bài tập 03 – Danh sách học sinh:

Bài tập Pascal – Biến có Cấu trúc Biến có cấu trúc - Records TD: Mỗi ñiểm hình học chiều có toạ ñộ (x, y) Khai báo biến Pascal sau: Type Diem = Record x, y: Integer; End; Var A, B: Diem; Bài tập 01 – Tìm ñộ dài ñoạn thẳng AB: Độ dài ñoạn thẳng AB với ñiểm A có toạ ñộ xA, yA ñiểm B có toạ ñộ xB, yB ñược tính sau: തതതത = ඥሺ‫ݔ‬஺ െ ‫ݔ‬஻ ሻଶ ൅ ሺ‫ݕ‬஺ െ ‫ݕ‬஻ ሻଶ ‫ܤܣ‬ Chương trình tìm ñộ dài ñoạn thẳng AB ñược viết sau: Type Diem = Record x, y: Integer; {Nếu toạ ñộ số nguyên} End; Var A, B: Diem; DoDai: Real; Begin WriteLn('Ban hay nhap toa cua diem thu nhat'); ReadLn(A.x, A.y); WriteLn('Ban hay nhap toa cua diem thu hai'); ReadLn(B.x, B.y); DoDai := SQRT(SQR(A.x - B.x) + SQR(A.y - B.y)); {SQRT = Căn bậc 2, SQR = Bình phương} WriteLn('Do dai doan thang AB la ', DoDai:5:2); ReadLn; End Bài tập 02 – Tìm toạ ñộ trung ñiểm ñoạn thẳng AB: Toạ ñộ trung ñiểm I ñoạn thẳng AB xI, yI ñược tính sau: xI = ሺ௫ಲ ା௫ಳ ሻ ଶ yI = ሺ௬ಲ ା௬ಳ ሻ ଶ Type Diem = Record x, y: Real; {Toạ ñộ trung ñiểm kết phép /2 nên số thực} End; Var Biên soạn: Th.s Nguyễn Anh Việt Trang Bài tập Pascal – Biến có Cấu trúc A, B, I: Diem; Begin WriteLn('Ban hay nhap toa cua diem thu nhat'); ReadLn(A.x, A.y); WriteLn('Ban hay nhap toa cua diem thu hai'); ReadLn(B.x, B.y); I.x := (A.x + B.x) / 2; I.y := (A.y + B.y) / 2; WriteLn('Toa trung diem doan AB la (', I.x:5:2, ', ', I.y:5:2, ')'); ReadLn; End Bài tập 03 – Danh sách học sinh: Nhập vào danh sách học sinh gồm có Họ, Tên, Điểm TB * Sắp thứ tự danh sách theo ñiểm TB học sinh * In danh sách học sinh có Điểm TB >= * In danh sách học sinh có Điểm TB < (tự làm bài) * In danh sách học sinh có ñiểm TB cao * In danh sách học sinh có ñiểm TB thấp (tự làm bài) Type HocSinh = Record Ho, Ten: String; DiemTB: Real; End; Var n, i, j: Integer; HS: Array [1 10] of HocSinh; t1, Max: Real; t2: String; Begin WriteLn('Danh sach co bao nhieu hoc sinh'); ReadLn(n); {Nhap DS} For i:=1 to n begin WriteLn('Hoc sinh thu ', i); Write('Ho : '); ReadLn(HS[i].Ho); Write('Ten : '); ReadLn(HS[i].Ten); Write('Diem TB: '); ReadLn(HS[i].DiemTB); Biên soạn: Th.s Nguyễn Anh Việt Trang Bài tập Pascal – Biến có Cấu trúc WriteLn; End; {In DS} WriteLn('DS Hoc sinh'); For i:=1 to n begin Write(HS[i].Ho, ' '); Write(HS[i].Ten, ' '); Write(HS[i].DiemTB:3:2); WriteLn; End; {Sap thu tu} For i:=1 to n-1 For j:=i+1 to n If HS[i].DiemTB > HS[j].DiemTB then begin t2 := HS[i].Ho; {Hoan chuyen Ho} HS[i].Ho := HS[j].Ho; HS[j].Ho := t2; t2 := HS[i].Ten; HS[i].Ten := HS[j].Ten; HS[j].Ten := t2; {Hoan chuyen Ten} t1 := HS[i].DiemTB; {Hoan chuyen Diem TB} HS[i].DiemTB := HS[j].DiemTB; HS[j].DiemTB := t1; End; {In DS da sap thu tu} WriteLn('DS Hoc sinh da sap thu tu'); For i:=1 to n begin Write(HS[i].Ho, ' '); Write(HS[i].Ten, ' '); Write(HS[i].DiemTB:3:2); WriteLn; End; {In DS HS co diem TB >= 5} WriteLn('DS Hoc sinh co diem TB >= 5'); For i:=1 to n begin If HS[i].DiemTB < then Continue; Write(HS[i].Ho, ' '); Write(HS[i].Ten, ' '); Write(HS[i].DiemTB:3:2); WriteLn; End; Biên soạn: Th.s Nguyễn Anh Việt Trang Bài tập Pascal – Biến có Cấu trúc {Tim diem TB cao nhat} Max := HS[1].DiemTB; For i:=2 to n If Max < HS[i].DiemTB then Max := HS[i].DiemTB; {In DS HS co diem TB cao nhat} WriteLn('DS Hoc sinh co diem TB cao nhat'); For i:=1 to n If HS[i].DiemTB = Max then begin Write(HS[i].Ho, ' '); Write(HS[i].Ten, ' '); Write(HS[i].DiemTB:3:2); WriteLn; End; ReadLn; End Biên soạn: Th.s Nguyễn Anh Việt Trang ... Write(HS[i].DiemTB:3:2); WriteLn; End; {In DS HS co diem TB >= 5} WriteLn('DS Hoc sinh co diem TB >= 5'); For i:=1 to n begin If HS[i].DiemTB < then Continue; Write(HS[i].Ho, ' '); Write(HS[i].Ten,... tập Pascal – Biến có Cấu trúc {Tim diem TB cao nhat} Max := HS[1].DiemTB; For i:=2 to n If Max < HS[i].DiemTB then Max := HS[i].DiemTB; {In DS HS co diem TB cao nhat} WriteLn('DS Hoc sinh co diem... làm bài) Type HocSinh = Record Ho, Ten: String; DiemTB: Real; End; Var n, i, j: Integer; HS: Array [1 10] of HocSinh; t1, Max: Real; t2: String; Begin WriteLn('Danh sach co bao nhieu hoc sinh');

Ngày đăng: 11/09/2017, 22:04

TỪ KHÓA LIÊN QUAN

w