Tải bản đầy đủ (.pdf) (4 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (96.78 KB, 4 trang )

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

ሺ௫ಲ ା௫ಳ ሻ




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

Biên soạn: Th.s Nguyễn Anh Việt

Trang 1


Bài tập Pascal – Biến có Cấu trúc
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);

Biên soạn: Th.s Nguyễn Anh Việt

Trang 2


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


Biên soạn: Th.s Nguyễn Anh Việt

Trang 3


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

Biên soạn: Th.s Nguyễn Anh Việt

Trang 4



×