Similar topics
bai tap phan 4
Tin k9-NBK Quảng Nam :: Học tập :: Tin :: Kiến Thức
Trang 1 trong tổng số 1 trang
bai tap phan 4
Program Tao_Bien_Dong;
TYPE
Str10 = String[10];
PStr = ^Str10;
VAR
Newp : PStr;
i : Integer;
Begin
Writeln('TAO BIEN DONG VA THEO DOI KICH THUOC BO NHO');
Writeln('-------------------------------------------');
Writeln;
Writeln('-Bo nho ban dau la: ',MemAvail,' bytes');
Writeln;
For i := 1 To 10 Do
Begin
New(Newp);
Writeln(' +Sau khi tao bien thu: ',i:2,' bo nho con lai la: ',MemAvail,' bytes');
End;
Writeln;
Writeln('-Bo nho bay gio la : ',MemAvail,' bytes');
Writeln;
Writeln(' Bam <Enter> de ket thuc');
Readln
End.
(==================================================)
Program Tao_Bien_Dong;
TYPE
ConTro = ^BanGhi;
BanGhi = RECORD
HoTen : String[24];
Tuoi : Byte;
DiaChi : String[30];
Next : ConTro;
End;
VAR
Newp : ConTro;
HeapTop : Pointer;
i : Integer;
Begin
Writeln('TAO VA XOA CAC BIEN DONG');
Writeln('------------------------');
Writeln;
Writeln('-Bo nho ban dau la: ',MemAvail,' bytes');
Mark(HeapTop);
Writeln('-Kich thuoc cua ban ghi la: ',Sizeof(BanGhi),' bytes');
For i := 1 To 10 Do
Begin
New(Newp);
Writeln(' +Sau khi tao bien thu: ',i:2,' bo nho con lai: ',MemAvail,' Bytes');
End;
Writeln;
Writeln('-Bo nho bay gio la: ',MemAvail,' bytes');
Writeln;
Writeln(' Bam <Enter> de xoa cac bien dong');
Readln;
Release(HeapTop);
Writeln;
Writeln('-Bo nho bay gio lai la: ',MemAvail,' bytes');
Writeln;
Writeln(' Bam <Enter> de ket thuc');
Readln
End.
(==============================================)
Program Tao_Bien_Dong;
TYPE
Str10 = String[10];
PStr = ^Str10;
VAR
Newp : Array[1..10] Of PStr;
i : Integer;
Begin
Writeln('TAO BIEN DONG VA THEO DOI KICH THUOC BO NHO');
Writeln('-------------------------------------------');
Writeln;
Writeln('-Bo nho ban dau la: ',MemAvail,' bytes');
Writeln;
For i := 1 To 10 Do
Begin
New(Newp[i]);
Writeln(' +Sau khi tao bien thu: ',i:2,' bo nho con lai la: ',MemAvail,' bytes');
End;
Writeln;
Writeln('Bo nho bay gio la: ',MemAvail,' bytes');
Writeln;
Writeln(' Bam <Enter> de bat dau xoa lan luot tung bien dong');
Readln;
For i := 1 To 10 Do
Begin
Dispose(Newp[i]);
Writeln('+Xoa bien thu: ',i:2,' bo nho tro la: ',Memavail,' bytes');
Writeln(' Bam <Enter> de xoa tiep');
Readln;
End;
Writeln;
Writeln('-Bo nho bay gio la : ',MemAvail,' bytes');
Writeln;
Writeln(' Bam <Enter> de ket thuc');
Readln
End.
(====================================)
Program Tao_Con_Tro;
VAR
ConTro : ^String;
Begin
Writeln('TAO BIEN DONG TAI DIA CHI CHO TRUOC');
Writeln('-----------------------------------');
Writeln;
ConTro :=Ptr($B800,$0004);
ConTro^ := 'Turbo Pascal';
Writeln('-Du lieu cua bien ma con tro dang tro toi la: ',ConTro^);
Writeln;
Write(' Bam <Enter> de ket thuc');
Readln
End.
(==============================================)
Program Tinh_Diem;
TYPE
ConTro = ^BanGhi;
BanGhi = RECORD
HoTen : String[24];
Tuoi : Byte;
Diem : Real;
End;
VAR
Newp : ConTro;
i,n : Integer;
d,tong,tb :Real;
Begin
Writeln('TINH DIEM TRUNG BINH CUA LOP');
Writeln('----------------------------');
Writeln;
Tong := 0.0;
Write('-Lop co bao nhieu nguoi: ');
Readln(n);
Writeln;
For i := 1 To N Do
Begin
New(Newp);
With Newp^ Do
Begin
Write(' +Ho ten nguoi thu: ',i:2,' la: ');
Readln(HoTen);
Write(' +Tuoi : ');
Readln(Tuoi);
Write(' +Diem : ');
Readln(Diem);
d := Diem;
Tong :=Tong + d;
End;
Tb := tong / n;
End;
Writeln('-Diem trung binh cua lop la: ',Tb:5:2);
Readln
End.
(==========================================)
Program Sap_Xep_Theo_Ten;
TYPE
ConTro = ^HoSo;
HoSo = RECORD
HoLot : String[17];
Ten : String[7];
Diem : Real;
End;
VAR
a : Array[1..50] Of HoSo;
Tam : ConTro;
i,j,PhanTu : Integer;
BEGIN
PhanTu := 0;
New(Tam);
With Tam^ Do
Repeat
Write('-Nhap ho lot ( 0 de ket thu): ');
Readln(HoLot);
If HoLot <> '0' Then
Begin
Write('-Nhap ten : ');
Readln(Ten);
Write('-Nhap diem : ');
Readln(Diem);
PhanTu := PhanTu + 1;
a[PhanTu] := Tam^;
End;
Until HoLot = '0';
For i := 1 To PhanTu - 1 Do
For j := PhanTu DownTo i+1 Do
If a[j].Ten[1] < a[j-1].Ten[1] Then
Begin
Tam^ := a[j];
a[j] := a[j-1];
a[j-1] := Tam^;
End;
Writeln;
Writeln('------------------------------------');
Writeln('| HO VA TEN | DIEM |');
Writeln('|--------------------------|-------|');
For i := 1 To PhanTu Do
With a[i] Do
Writeln('|',HoLot:17,' ',Ten:7,' |',Diem:5:1,' |');
Writeln('------------------------------------');
Readln
END.
(=================================================)
Program Sap_Xep_Diem_Tang;
TYPE
ConTro = ^Lop;
Lop = RECORD
HoTen : String[24];
NamSinh : Integer;
DiemTb : Real;
End;
VAR
Hs : Array[1..50] Of lop;
i,j,n : Integer;
Tam : ConTro;
Begin
Writeln('SAP XEP DIEM TANG DAN);');
Writeln('Giai thuat noi Buble');
Writeln('--------------------');
New(Tam);
Writeln;
Write('-So hoc sinh: ');
Readln(n);
For i := 1 To N Do
With Hs[i] Do
Begin
Write('+Ho ten hoc sinh thu: ',i:2,' la: ');
Readln(Hoten);
Write('+Nam sinh: ');
Readln(NamSinh);
Write('+Diem trung binh: ');
Readln(DiemTb);
End;
For i := 1 To N-1 Do
For j := 1 To N-i Do
If Hs[j].DiemTb > Hs[j+1].DiemTb Then
Begin
Tam^ := Hs[j];
Hs[j] := Hs[j+1];
Hs[j+1] := Tam^;
End;
Writeln;
Writeln(' DANH SACH SAP XEP');
Writeln;
For i := 1 To N Do
With Hs[i] Do
Writeln('-',HoTen:24,' :',Namsinh:4,' , ',DiemTb:5:2);
Readln
End.
(============================================)
Program Hoa_Don;
CONST
Max = 100;
TYPE
ConTro = ^HoaDon;
HoaDon = RECORD
NguoiMua : String[24];
TenHang : String[10];
DonGia : Real;
SoLuong : Integer;
End;
VAR
a : Array[1..Max] Of HoaDon;
DsTenHang : Array[1..Max] Of String[10];
Tam : ConTro;
Spt, SoTenHang, i, j : Integer;
Tong : Real;
KiemTra : Boolean;
BEGIN
Writeln('HOA DON BAN HANG');
Writeln('----------------');
Writeln;
Spt := 0;
New(Tam);
With Tam^ do
Repeat
Write('-Ten nguoi mua (go 0 de thoat): ');
Readln(NguoiMua);
If NguoiMua <> '0' Then
Begin
Write('-Ten hang: ');
Readln(TenHang);
Write('-Don gia : ');
Readln(DonGia);
Write('-So luong: ');
Readln(SoLuong);
Spt := Spt + 1;
a[Spt] := Tam^;
End;
Until NguoiMua = '0';
SoTenHang := 0;
For i := 1 To Spt Do
Begin
KiemTra :=False;
For j := 1 To SoTenHang Do
If DsTenHang[j] = a[i].TenHang Then
KiemTra := True;
If NOT KiemTra Then
Begin
SoTenHang :=SoTenHang + 1;
DsTenHang[SoTenHang] := a[i].TenHang;
End;
End;
Writeln;
For i := 1 To SoTenHang Do
Begin
Tong := 0;
For j := 1 To Spt Do
With a[j] Do
If TenHang = DsTenHang[i] Then
Tong := Tong + (DonGia * Soluong);
Writeln(' +Tong so tien mua: ',DsTenHang[i]:10,' = ',tong:10:2);
End;
Readln
END.
(=============================================)
Program Thu_Vien;
Uses Crt;
TYPE
ConTro = ^ThuVien;
ThuVien = RECORD
TenSach : String[30];
TacGia : String[24];
Namxb : Byte;
NguoiMuon: String[24];
Next : ConTro;
End;
VAR
First,Last,Newp : ConTro;
ds,dm : Integer;
Ch : Char;
HeapTop : ^Integer;
BEGIN
ClrScr;
GotoXY(5,25);
Write('Bam <Enter> de tiep tuc, bam <Esc> de thoat');
Window(1,1,80,24);
Writeln('QUAN LY THU VIEN');
Writeln('----------------');
Writeln;
ds := 0;
dm := 0;
First := Nil;
Mark(Heaptop);
Repeat
New(Newp);
With Newp^ Do
Begin
Write('-Ten sach : ');
Readln(TenSach);
If TenSach <> '' Then
Begin
ds := ds + 1;
Write('-Tac Gia: ');
Readln(TacGia);
Write('-Nam xuat ban : ');
Readln(Namxb);
Write('-Nguoi muon (Khong co ai muon thi bam <Enter>: ');
Readln(NguoiMuon);
If NguoiMuon <> '' Then
dm := dm + 1;
End;
End;
If First = Nil Then
First := Newp
Else
Last^.Next := Newp;
Last :=Newp;
Last^.Next := Nil;
Ch := ReadKey;
Until Ch = #27;
ClrScr;
Writeln('QUAN LY THU VIEN');
Writeln('----------------');
While First <> Nil Do
With First^ Do
Begin
Writeln('-Ten sach: ',TenSach);
Writeln('-Tac gia : ',TacGia);
Writeln('-Nam Xuat ban: ',Namxb);
Writeln('-Nguoi muon : ',NguoiMuon);
First := Next;
End;
Writeln;
Writeln('+Tong so sach: ',Ds);
Writeln('+So sach cho muon: ',Dm);
Release(HeapTop);
Writeln;
Write(' Bam <Esc> de thoat');
Readln
END.
(===================================================)
Program Ho_So;
Uses Crt;
TYPE
ConTro = ^HoSo;
HoSo = RECORD
HoTen : String[24];
Tuoi : Integer;
Luong : LongInt;
Next : ConTro;
End;
VAR
First, Last, Newp : ConTro;
Hoten1, Hoten2 : String[24];
i,TuoiMax,TuoiMin : Integer;
LuongMax, LuongMin,LuongTb : LongInt;
Ch : Char;
HeapTop :^Integer;
Begin
ClrScr;
Writeln('HO SO NHAN VIEN');
Writeln('---------------');
Writeln;
GoToXY(5,25);
Write('Bam <Enter> de tiep tuc, bam <Esc> de thoat ');
Window(1,2,80,25);
First :=Nil;
Mark(HeapTop);
i := 0;
Repeat
i := i + 1;
New(Newp);
With Newp^ Do
Begin
Write('-Ho ten nhan vien thu: ',i:2,' la= ');
Readln(HoTen);
Write('-Tuoi = ');
Readln(Tuoi);
Write('-Bac luong = ');
Readln(Luong);
TuoiMax := Tuoi;
TuoiMin := Tuoi;
LuongMax := Luong;
LuongMin := Luong;
HoTen1 := HoTen;
HoTen2 := HoTen;
End;
If First = Nil Then
First := Newp
Else
Last^.Next := Newp;
Last := Newp;
Last^.Next := Nil;
Ch := ReadKey;
Until Ch = #27;
Writeln;
While First <> Nil Do
With First^ Do
Begin
If Tuoi > TuoiMax Then
TuoiMax := Tuoi
Else
If Tuoi < TuoiMin Then
TuoiMin := Tuoi;
If Luong > LuongMax Then
Begin
LuongMax := Luong;
HoTen1 := HoTen;
End
Else
If Luong < LuongMin Then
Begin
LuongMin := Luong;
HoTen2 := HoTen;
End;
First := Next;
End;
Writeln;
Writeln('+Nhan vien co tuoi lon nhat la: ',TuoiMax);
Writeln('+Nhan vien co tuoi nho nhat la: ',TuoiMin);
Writeln('+Nhan vien: ',HoTen1,' ,co bac luong lon nhat: ',LuongMax:10);
Writeln('+Nhan vien: ',HoTen2,' ,co bac luong nho nhat: ',LuongMin:10);
Release(HeapTop);
Writeln;
Write(' Bam <Enter> de ket thuc ');
Readln
End.
(============================================)
Program Gia_Canh;
Uses Crt;
CONST
Td1 ='|========================|========================|======|';
Td2 =#124 +' HO VA TEN '+
#124 +' HO TEN VO CHONG '+
#124 +'SO CON'+#124;
Td3 ='|------------------------|------------------------|------|';
TYPE
ConTro = ^GiaCanh;
GiaCanh = RECORD
HoTen :String[24];
Next : ConTro;
Case GiaDinh : Boolean Of
True : (VoChong : String[24];
SoCon : Byte);
End;
VAR
First, Last, Newp : ConTro;
i : Integer;
Ch : Char;
HeapTop : ^Integer;
BEGIN
ClrScr;
GotoXY(5,25);
Write('Bam <Enter> de tiep tuc, bam <Esc> de thoat');
Window(1,2,80,25);
Writeln('HO SO GIA CANH');
Writeln('--------------');
Writeln;
First := Nil;
Mark(HeapTop);
i := 0;
Repeat
i := i + 1;
New(Newp);
With Newp^ Do
Begin
Write('+Ho va ten nhan vien thu: ',i:2,' la= ');
Readln(HoTen);
Write('+Co gia dinh chua (C/K) ');
Readln(Ch);
Ch := UpCase(Ch);
If Ch = 'C' Then
Begin
GiaDinh := True;
Write(' +Ho ten vo/chong: ');
Readln(VoChong);
Write(' +So con : ');
Readln(SoCon);
End
Else
GiaDinh := False;
End;
If First = Nil Then
First := Newp
Else
Last^.Next := Newp;
Last := Newp;
Last^.Next := Nil;
Ch := ReadKey;
Until Ch = #27;
Writeln;
ClrScr;
Writeln(#32:25,'HOAN CANH GIA DINH NHAN VIEN');
Writeln(#32:12,Td1);
Writeln(#32:12,Td2);
Writeln(#32:12,Td3);
While First <> Nil Do {Xuat du lieu }
With First^ Do
Begin
Write(#32:12);
Write(#124,HoTen,#32:24-Length(HoTen));
If GiaDinh Then
Begin
Write(#124,VoChong,#32:24-Length(VoChong));
Writeln(#124,SoCon:6,#124);
End
Else
Begin
Write(#124,#32:24);
Writeln(#124,#32:6,#124);
End;
First := Next;
End;
Release(HeapTop);
Writeln(#32:12,Td1);
Readln
END.
((---------------------------------------------------------------))
Program Tinh_Diem_Xep_Hang;
TYPE
ConTro = ^Lop;
Lop = RECORD
HoTen : String[24];
NamSinh : Integer;
Tb1,Tb2,Tb : Real;
End;
VAR
Hs : Array[1..50] Of lop;
i,j,n,Hang: Integer;
Tam : ConTro;
Begin
Writeln('TINH DIEM VA XEP HANG);');
Writeln('Giai thuat noi Buble');
Writeln('--------------------');
Writeln;
New(Tam);
Write('-So hoc sinh: ');
Readln(n);
For i := 1 To N Do
With Hs[i] Do
Begin
Write(' +Ho ten hoc sinh thu: ',i:2,' la: ');
Readln(Hoten);
Write(' +Nam sinh: ');
Readln(NamSinh);
Write(' +Diem trung binh hoc ky 1: ');
Readln(Tb1);
Write(' +Diem trung binh hoc ky 2: ');
Readln(Tb2);
Tb :=(Tb1 + Tb2)/2;
Writeln;
End;
For i := 1 To N-1 Do
For j := 1 To N-i Do
If Hs[j].Tb < Hs[j+1].Tb Then
Begin
Tam^ := Hs[j];
Hs[j] := Hs[j+1];
Hs[j+1] := Tam^;
End;
Writeln;
Writeln(' DANH SACH XEP HANG');
Writeln;
Hang := 1;
For i := 1 To N Do
Begin
If (i > 1) And (Hs[i].Tb <> Hs[i-1].Tb) Then
Hang := i;
Writeln(' .Hoc sinh : ',Hs[i].HoTen);
Writeln(' .Nam sinh : ',Hs[i].NamSinh);
Writeln(' .Diem trung binh ca nam : ',Hs[i].Tb:5:2);
Writeln(' .Xep hang ca nam : ',Hang);
End;
Readln
End.
(_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_)
TYPE
Str10 = String[10];
PStr = ^Str10;
VAR
Newp : PStr;
i : Integer;
Begin
Writeln('TAO BIEN DONG VA THEO DOI KICH THUOC BO NHO');
Writeln('-------------------------------------------');
Writeln;
Writeln('-Bo nho ban dau la: ',MemAvail,' bytes');
Writeln;
For i := 1 To 10 Do
Begin
New(Newp);
Writeln(' +Sau khi tao bien thu: ',i:2,' bo nho con lai la: ',MemAvail,' bytes');
End;
Writeln;
Writeln('-Bo nho bay gio la : ',MemAvail,' bytes');
Writeln;
Writeln(' Bam <Enter> de ket thuc');
Readln
End.
(==================================================)
Program Tao_Bien_Dong;
TYPE
ConTro = ^BanGhi;
BanGhi = RECORD
HoTen : String[24];
Tuoi : Byte;
DiaChi : String[30];
Next : ConTro;
End;
VAR
Newp : ConTro;
HeapTop : Pointer;
i : Integer;
Begin
Writeln('TAO VA XOA CAC BIEN DONG');
Writeln('------------------------');
Writeln;
Writeln('-Bo nho ban dau la: ',MemAvail,' bytes');
Mark(HeapTop);
Writeln('-Kich thuoc cua ban ghi la: ',Sizeof(BanGhi),' bytes');
For i := 1 To 10 Do
Begin
New(Newp);
Writeln(' +Sau khi tao bien thu: ',i:2,' bo nho con lai: ',MemAvail,' Bytes');
End;
Writeln;
Writeln('-Bo nho bay gio la: ',MemAvail,' bytes');
Writeln;
Writeln(' Bam <Enter> de xoa cac bien dong');
Readln;
Release(HeapTop);
Writeln;
Writeln('-Bo nho bay gio lai la: ',MemAvail,' bytes');
Writeln;
Writeln(' Bam <Enter> de ket thuc');
Readln
End.
(==============================================)
Program Tao_Bien_Dong;
TYPE
Str10 = String[10];
PStr = ^Str10;
VAR
Newp : Array[1..10] Of PStr;
i : Integer;
Begin
Writeln('TAO BIEN DONG VA THEO DOI KICH THUOC BO NHO');
Writeln('-------------------------------------------');
Writeln;
Writeln('-Bo nho ban dau la: ',MemAvail,' bytes');
Writeln;
For i := 1 To 10 Do
Begin
New(Newp[i]);
Writeln(' +Sau khi tao bien thu: ',i:2,' bo nho con lai la: ',MemAvail,' bytes');
End;
Writeln;
Writeln('Bo nho bay gio la: ',MemAvail,' bytes');
Writeln;
Writeln(' Bam <Enter> de bat dau xoa lan luot tung bien dong');
Readln;
For i := 1 To 10 Do
Begin
Dispose(Newp[i]);
Writeln('+Xoa bien thu: ',i:2,' bo nho tro la: ',Memavail,' bytes');
Writeln(' Bam <Enter> de xoa tiep');
Readln;
End;
Writeln;
Writeln('-Bo nho bay gio la : ',MemAvail,' bytes');
Writeln;
Writeln(' Bam <Enter> de ket thuc');
Readln
End.
(====================================)
Program Tao_Con_Tro;
VAR
ConTro : ^String;
Begin
Writeln('TAO BIEN DONG TAI DIA CHI CHO TRUOC');
Writeln('-----------------------------------');
Writeln;
ConTro :=Ptr($B800,$0004);
ConTro^ := 'Turbo Pascal';
Writeln('-Du lieu cua bien ma con tro dang tro toi la: ',ConTro^);
Writeln;
Write(' Bam <Enter> de ket thuc');
Readln
End.
(==============================================)
Program Tinh_Diem;
TYPE
ConTro = ^BanGhi;
BanGhi = RECORD
HoTen : String[24];
Tuoi : Byte;
Diem : Real;
End;
VAR
Newp : ConTro;
i,n : Integer;
d,tong,tb :Real;
Begin
Writeln('TINH DIEM TRUNG BINH CUA LOP');
Writeln('----------------------------');
Writeln;
Tong := 0.0;
Write('-Lop co bao nhieu nguoi: ');
Readln(n);
Writeln;
For i := 1 To N Do
Begin
New(Newp);
With Newp^ Do
Begin
Write(' +Ho ten nguoi thu: ',i:2,' la: ');
Readln(HoTen);
Write(' +Tuoi : ');
Readln(Tuoi);
Write(' +Diem : ');
Readln(Diem);
d := Diem;
Tong :=Tong + d;
End;
Tb := tong / n;
End;
Writeln('-Diem trung binh cua lop la: ',Tb:5:2);
Readln
End.
(==========================================)
Program Sap_Xep_Theo_Ten;
TYPE
ConTro = ^HoSo;
HoSo = RECORD
HoLot : String[17];
Ten : String[7];
Diem : Real;
End;
VAR
a : Array[1..50] Of HoSo;
Tam : ConTro;
i,j,PhanTu : Integer;
BEGIN
PhanTu := 0;
New(Tam);
With Tam^ Do
Repeat
Write('-Nhap ho lot ( 0 de ket thu): ');
Readln(HoLot);
If HoLot <> '0' Then
Begin
Write('-Nhap ten : ');
Readln(Ten);
Write('-Nhap diem : ');
Readln(Diem);
PhanTu := PhanTu + 1;
a[PhanTu] := Tam^;
End;
Until HoLot = '0';
For i := 1 To PhanTu - 1 Do
For j := PhanTu DownTo i+1 Do
If a[j].Ten[1] < a[j-1].Ten[1] Then
Begin
Tam^ := a[j];
a[j] := a[j-1];
a[j-1] := Tam^;
End;
Writeln;
Writeln('------------------------------------');
Writeln('| HO VA TEN | DIEM |');
Writeln('|--------------------------|-------|');
For i := 1 To PhanTu Do
With a[i] Do
Writeln('|',HoLot:17,' ',Ten:7,' |',Diem:5:1,' |');
Writeln('------------------------------------');
Readln
END.
(=================================================)
Program Sap_Xep_Diem_Tang;
TYPE
ConTro = ^Lop;
Lop = RECORD
HoTen : String[24];
NamSinh : Integer;
DiemTb : Real;
End;
VAR
Hs : Array[1..50] Of lop;
i,j,n : Integer;
Tam : ConTro;
Begin
Writeln('SAP XEP DIEM TANG DAN);');
Writeln('Giai thuat noi Buble');
Writeln('--------------------');
New(Tam);
Writeln;
Write('-So hoc sinh: ');
Readln(n);
For i := 1 To N Do
With Hs[i] Do
Begin
Write('+Ho ten hoc sinh thu: ',i:2,' la: ');
Readln(Hoten);
Write('+Nam sinh: ');
Readln(NamSinh);
Write('+Diem trung binh: ');
Readln(DiemTb);
End;
For i := 1 To N-1 Do
For j := 1 To N-i Do
If Hs[j].DiemTb > Hs[j+1].DiemTb Then
Begin
Tam^ := Hs[j];
Hs[j] := Hs[j+1];
Hs[j+1] := Tam^;
End;
Writeln;
Writeln(' DANH SACH SAP XEP');
Writeln;
For i := 1 To N Do
With Hs[i] Do
Writeln('-',HoTen:24,' :',Namsinh:4,' , ',DiemTb:5:2);
Readln
End.
(============================================)
Program Hoa_Don;
CONST
Max = 100;
TYPE
ConTro = ^HoaDon;
HoaDon = RECORD
NguoiMua : String[24];
TenHang : String[10];
DonGia : Real;
SoLuong : Integer;
End;
VAR
a : Array[1..Max] Of HoaDon;
DsTenHang : Array[1..Max] Of String[10];
Tam : ConTro;
Spt, SoTenHang, i, j : Integer;
Tong : Real;
KiemTra : Boolean;
BEGIN
Writeln('HOA DON BAN HANG');
Writeln('----------------');
Writeln;
Spt := 0;
New(Tam);
With Tam^ do
Repeat
Write('-Ten nguoi mua (go 0 de thoat): ');
Readln(NguoiMua);
If NguoiMua <> '0' Then
Begin
Write('-Ten hang: ');
Readln(TenHang);
Write('-Don gia : ');
Readln(DonGia);
Write('-So luong: ');
Readln(SoLuong);
Spt := Spt + 1;
a[Spt] := Tam^;
End;
Until NguoiMua = '0';
SoTenHang := 0;
For i := 1 To Spt Do
Begin
KiemTra :=False;
For j := 1 To SoTenHang Do
If DsTenHang[j] = a[i].TenHang Then
KiemTra := True;
If NOT KiemTra Then
Begin
SoTenHang :=SoTenHang + 1;
DsTenHang[SoTenHang] := a[i].TenHang;
End;
End;
Writeln;
For i := 1 To SoTenHang Do
Begin
Tong := 0;
For j := 1 To Spt Do
With a[j] Do
If TenHang = DsTenHang[i] Then
Tong := Tong + (DonGia * Soluong);
Writeln(' +Tong so tien mua: ',DsTenHang[i]:10,' = ',tong:10:2);
End;
Readln
END.
(=============================================)
Program Thu_Vien;
Uses Crt;
TYPE
ConTro = ^ThuVien;
ThuVien = RECORD
TenSach : String[30];
TacGia : String[24];
Namxb : Byte;
NguoiMuon: String[24];
Next : ConTro;
End;
VAR
First,Last,Newp : ConTro;
ds,dm : Integer;
Ch : Char;
HeapTop : ^Integer;
BEGIN
ClrScr;
GotoXY(5,25);
Write('Bam <Enter> de tiep tuc, bam <Esc> de thoat');
Window(1,1,80,24);
Writeln('QUAN LY THU VIEN');
Writeln('----------------');
Writeln;
ds := 0;
dm := 0;
First := Nil;
Mark(Heaptop);
Repeat
New(Newp);
With Newp^ Do
Begin
Write('-Ten sach : ');
Readln(TenSach);
If TenSach <> '' Then
Begin
ds := ds + 1;
Write('-Tac Gia: ');
Readln(TacGia);
Write('-Nam xuat ban : ');
Readln(Namxb);
Write('-Nguoi muon (Khong co ai muon thi bam <Enter>: ');
Readln(NguoiMuon);
If NguoiMuon <> '' Then
dm := dm + 1;
End;
End;
If First = Nil Then
First := Newp
Else
Last^.Next := Newp;
Last :=Newp;
Last^.Next := Nil;
Ch := ReadKey;
Until Ch = #27;
ClrScr;
Writeln('QUAN LY THU VIEN');
Writeln('----------------');
While First <> Nil Do
With First^ Do
Begin
Writeln('-Ten sach: ',TenSach);
Writeln('-Tac gia : ',TacGia);
Writeln('-Nam Xuat ban: ',Namxb);
Writeln('-Nguoi muon : ',NguoiMuon);
First := Next;
End;
Writeln;
Writeln('+Tong so sach: ',Ds);
Writeln('+So sach cho muon: ',Dm);
Release(HeapTop);
Writeln;
Write(' Bam <Esc> de thoat');
Readln
END.
(===================================================)
Program Ho_So;
Uses Crt;
TYPE
ConTro = ^HoSo;
HoSo = RECORD
HoTen : String[24];
Tuoi : Integer;
Luong : LongInt;
Next : ConTro;
End;
VAR
First, Last, Newp : ConTro;
Hoten1, Hoten2 : String[24];
i,TuoiMax,TuoiMin : Integer;
LuongMax, LuongMin,LuongTb : LongInt;
Ch : Char;
HeapTop :^Integer;
Begin
ClrScr;
Writeln('HO SO NHAN VIEN');
Writeln('---------------');
Writeln;
GoToXY(5,25);
Write('Bam <Enter> de tiep tuc, bam <Esc> de thoat ');
Window(1,2,80,25);
First :=Nil;
Mark(HeapTop);
i := 0;
Repeat
i := i + 1;
New(Newp);
With Newp^ Do
Begin
Write('-Ho ten nhan vien thu: ',i:2,' la= ');
Readln(HoTen);
Write('-Tuoi = ');
Readln(Tuoi);
Write('-Bac luong = ');
Readln(Luong);
TuoiMax := Tuoi;
TuoiMin := Tuoi;
LuongMax := Luong;
LuongMin := Luong;
HoTen1 := HoTen;
HoTen2 := HoTen;
End;
If First = Nil Then
First := Newp
Else
Last^.Next := Newp;
Last := Newp;
Last^.Next := Nil;
Ch := ReadKey;
Until Ch = #27;
Writeln;
While First <> Nil Do
With First^ Do
Begin
If Tuoi > TuoiMax Then
TuoiMax := Tuoi
Else
If Tuoi < TuoiMin Then
TuoiMin := Tuoi;
If Luong > LuongMax Then
Begin
LuongMax := Luong;
HoTen1 := HoTen;
End
Else
If Luong < LuongMin Then
Begin
LuongMin := Luong;
HoTen2 := HoTen;
End;
First := Next;
End;
Writeln;
Writeln('+Nhan vien co tuoi lon nhat la: ',TuoiMax);
Writeln('+Nhan vien co tuoi nho nhat la: ',TuoiMin);
Writeln('+Nhan vien: ',HoTen1,' ,co bac luong lon nhat: ',LuongMax:10);
Writeln('+Nhan vien: ',HoTen2,' ,co bac luong nho nhat: ',LuongMin:10);
Release(HeapTop);
Writeln;
Write(' Bam <Enter> de ket thuc ');
Readln
End.
(============================================)
Program Gia_Canh;
Uses Crt;
CONST
Td1 ='|========================|========================|======|';
Td2 =#124 +' HO VA TEN '+
#124 +' HO TEN VO CHONG '+
#124 +'SO CON'+#124;
Td3 ='|------------------------|------------------------|------|';
TYPE
ConTro = ^GiaCanh;
GiaCanh = RECORD
HoTen :String[24];
Next : ConTro;
Case GiaDinh : Boolean Of
True : (VoChong : String[24];
SoCon : Byte);
End;
VAR
First, Last, Newp : ConTro;
i : Integer;
Ch : Char;
HeapTop : ^Integer;
BEGIN
ClrScr;
GotoXY(5,25);
Write('Bam <Enter> de tiep tuc, bam <Esc> de thoat');
Window(1,2,80,25);
Writeln('HO SO GIA CANH');
Writeln('--------------');
Writeln;
First := Nil;
Mark(HeapTop);
i := 0;
Repeat
i := i + 1;
New(Newp);
With Newp^ Do
Begin
Write('+Ho va ten nhan vien thu: ',i:2,' la= ');
Readln(HoTen);
Write('+Co gia dinh chua (C/K) ');
Readln(Ch);
Ch := UpCase(Ch);
If Ch = 'C' Then
Begin
GiaDinh := True;
Write(' +Ho ten vo/chong: ');
Readln(VoChong);
Write(' +So con : ');
Readln(SoCon);
End
Else
GiaDinh := False;
End;
If First = Nil Then
First := Newp
Else
Last^.Next := Newp;
Last := Newp;
Last^.Next := Nil;
Ch := ReadKey;
Until Ch = #27;
Writeln;
ClrScr;
Writeln(#32:25,'HOAN CANH GIA DINH NHAN VIEN');
Writeln(#32:12,Td1);
Writeln(#32:12,Td2);
Writeln(#32:12,Td3);
While First <> Nil Do {Xuat du lieu }
With First^ Do
Begin
Write(#32:12);
Write(#124,HoTen,#32:24-Length(HoTen));
If GiaDinh Then
Begin
Write(#124,VoChong,#32:24-Length(VoChong));
Writeln(#124,SoCon:6,#124);
End
Else
Begin
Write(#124,#32:24);
Writeln(#124,#32:6,#124);
End;
First := Next;
End;
Release(HeapTop);
Writeln(#32:12,Td1);
Readln
END.
((---------------------------------------------------------------))
Program Tinh_Diem_Xep_Hang;
TYPE
ConTro = ^Lop;
Lop = RECORD
HoTen : String[24];
NamSinh : Integer;
Tb1,Tb2,Tb : Real;
End;
VAR
Hs : Array[1..50] Of lop;
i,j,n,Hang: Integer;
Tam : ConTro;
Begin
Writeln('TINH DIEM VA XEP HANG);');
Writeln('Giai thuat noi Buble');
Writeln('--------------------');
Writeln;
New(Tam);
Write('-So hoc sinh: ');
Readln(n);
For i := 1 To N Do
With Hs[i] Do
Begin
Write(' +Ho ten hoc sinh thu: ',i:2,' la: ');
Readln(Hoten);
Write(' +Nam sinh: ');
Readln(NamSinh);
Write(' +Diem trung binh hoc ky 1: ');
Readln(Tb1);
Write(' +Diem trung binh hoc ky 2: ');
Readln(Tb2);
Tb :=(Tb1 + Tb2)/2;
Writeln;
End;
For i := 1 To N-1 Do
For j := 1 To N-i Do
If Hs[j].Tb < Hs[j+1].Tb Then
Begin
Tam^ := Hs[j];
Hs[j] := Hs[j+1];
Hs[j+1] := Tam^;
End;
Writeln;
Writeln(' DANH SACH XEP HANG');
Writeln;
Hang := 1;
For i := 1 To N Do
Begin
If (i > 1) And (Hs[i].Tb <> Hs[i-1].Tb) Then
Hang := i;
Writeln(' .Hoc sinh : ',Hs[i].HoTen);
Writeln(' .Nam sinh : ',Hs[i].NamSinh);
Writeln(' .Diem trung binh ca nam : ',Hs[i].Tb:5:2);
Writeln(' .Xep hang ca nam : ',Hang);
End;
Readln
End.
(_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_)
Profession_jamy- Ma cấp II
- Tổng số bài gửi : 132
Join date : 25/10/2010
Age : 44
Đến từ : Tamky
Tin k9-NBK Quảng Nam :: Học tập :: Tin :: Kiến Thức
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết