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

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

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:

Trang 1

Biến có cấu trúc - Records

TD: Mỗi ñiểm trong hình học 2 chiều có toạ ñộ ( x, y )

Khai báo biến trong Pascal như sau:

Type Diem = Record

x, y: Integer;

End;

Var

A, B: Diem;

Bài tập 01 – Tìm ñộ dài của một ñoạn thẳng AB:

Độ dài của ñoạn thẳng AB với ñiểm A có toạ ñộ xA, yA và ñiểm B có toạ ñộ xB, yB ñược tính như sau:



 =     

Chương trình tìm ñộ dài của ñoạn thẳng AB ñược viết như sau:

Type Diem = Record

x, y: Integer; {Nếu các toạ ñộ chỉ là số nguyên}

End;

Var

A, B: Diem;

DoDai: Real;

Begin

WriteLn('Ban hay nhap toa do cua diem thu nhat');

ReadLn(A.x, A.y);

WriteLn('Ban hay nhap toa do 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 của một ñoạn thẳng AB:

Toạ ñộ trung ñiểm I của ñoạn thẳng AB là xI, yI ñược tính như sau:

xI = 

và yI = 

Type Diem = Record

x, y: Real; {Toạ ñộ trung ñiểm là kết quả phép /2 nên có thể là số thực} End;

Var

Trang 2

A, B, I: Diem;

Begin

WriteLn('Ban hay nhap toa do cua diem thu nhat');

ReadLn(A.x, A.y);

WriteLn('Ban hay nhap toa do 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 do 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 của học sinh

* In ra danh sách các học sinh có Điểm TB >= 5

* In ra danh sách các học sinh có Điểm TB < 5 (tự làm bài)

* In ra danh sách các học sinh có ñiểm TB cao nhất

* In ra danh sách các học sinh có ñiểm TB thấp nhất (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 do 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);

Trang 3

WriteLn;

End;

{In DS}

WriteLn('DS Hoc sinh');

For i:=1 to n do 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 do

For j:=i+1 to n do

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; {Hoan chuyen Ten}

HS[i].Ten := HS[j].Ten;

HS[j].Ten := t2;

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 do 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 do begin

If HS[i].DiemTB < 5 then Continue;

Write(HS[i].Ho, ' ');

Write(HS[i].Ten, ' ');

Write(HS[i].DiemTB:3:2);

WriteLn;

End;

Trang 4

{Tim diem TB cao nhat}

Max := HS[1].DiemTB;

For i:=2 to n do

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 do

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

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

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

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

TỪ KHÓA LIÊN QUAN

w