0% found this document useful (0 votes)
62 views4 pages

1/Sắp Xếp Theo Tên: 2/Sắp xếp điểm tăng: 3/Hóa Đơn: 4/Thư viện sách

The document contains code for several Pascal programs that perform tasks such as sorting data by name or score, calculating averages, inserting elements into arrays, and more. Specifically, it includes programs to: 1) Sort data by name and output a table with name and score. 2) Sort scores in ascending order and output a list with name, birth year, and average score. 3) Create an invoice program that calculates total sales by product. 4) Create a library management program that stores book information in a linked list.

Uploaded by

let_go_n94
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
62 views4 pages

1/Sắp Xếp Theo Tên: 2/Sắp xếp điểm tăng: 3/Hóa Đơn: 4/Thư viện sách

The document contains code for several Pascal programs that perform tasks such as sorting data by name or score, calculating averages, inserting elements into arrays, and more. Specifically, it includes programs to: 1) Sort data by name and output a table with name and score. 2) Sort scores in ascending order and output a list with name, birth year, and average score. 3) Create an invoice program that calculates total sales by product. 4) Create a library management program that stores book information in a linked list.

Uploaded by

let_go_n94
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 4

1/Sp Xp Theo Tn: Code: 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[j1].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.

2/Sp xp im tng: Code: 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. 14/Trung bnh cng: Code: Program Tb_cong; Var i,so,dem,tong:Integer; Tb:Real; A:Array[1..100] Of Integer; Begin Writeln('TINH TRUNG BINH CONG CAC SO NGUYEN'); Writeln('---------------------------------'); Writeln; dem:=0; Tong:=0; Write('-Nhap so nguyn: '); Readln(so); While so > 0 Do Begin dem:=dem+1; a[dem]:=so; Write('-Nhap so nguyen (-1 de ngung): '); Readln(so); End; For i:=1 to dem Do Tong:=Tong+A[i]; Tb:=Tong/dem; Writeln; Writeln('+Trung binh cong cua: ',dem:2,' so vua nhap = ',Tb:8:2); Writeln; Writeln(' Bam phim <Enter> de ket thuc '); Readln End. 15/Chn mt s vo hng: Code: Program Chen; Var i,spt:Integer; so,vitri:Integer; a:Array[1..100] Of Integer; Begin Writeln('CHEN MOT SO VAO MANG'); Writeln('--------------------'); Write('-Co bao nhieu phan tu: '); Readln(spt); For i:=1 To spt Do Begin Write('-Phan tu A[',i,']= '); Readln(a[i]); End; Writeln; Writeln('MANG TRUOC KHI CHEN');

3/Ha n: Code: 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[SoTenH ang]:=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. 12/i thp phn ra nh phn: Code: Program Doi_thap_phan_ra_nhi_phan; Var He10,N,Y:Word; He2,Tam:String; Begin Writeln('DOI SO TU HE THAP PHAN SANG HE NHI PHAN'); Writeln(' -----------------'); Writeln; Write('-Nhap so nguyen he thap phan: '); Readln(He10); N:=He10; He2:=' '; Repeat Y:=He10 Mod 2; Str(Y, Tam); He2:=Tam + He2; He10:= He10 Div 2;

4/Th vin sch: Code: 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(TenS ach); 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. 8/Tch danh sch chn l: Code: Program

15/Chn mt s vo hng: Code: Program Chen; Var i,spt:Integer; so,vitri:Integer; a:Array[1..100] Of Integer; Begin Writeln('CHEN MOT SO VAO MANG'); Writeln('--------------------'); Write('-Co bao nhieu phan tu: '); Readln(spt); For i:=1 To spt Do Begin Write('-Phan tu A[',i,']= '); Readln(a[i]); End; Writeln; Writeln('MANG TRUOC KHI CHEN'); For i:=1 To spt Do Write(a[i]:6); Writeln; Write('-Can che so: '); Readln(so); Write('-Vao vi tri: '); Readln(vitri); For i:=spt+1 Downto Vitri+1 Do a[i]:=a[i-1]; a[vitri]:=so; spt:=spt+ 1; Writeln; Writeln('MANG SAU KHI CHEN'); For i:=1 To spt Do Write(a[i]:6); Readln End.

5/H S Nhn Vin: Code: Program Ho_So_Nhan_Vien;

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 Luong Min := Luong; HoTen 2 := 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.

For i:=1 To spt Do Write(a[i]:6); Writeln; Write('-Can che so: '); Readln(so); Write('-Vao vi tri: '); Readln(vitri); For i:=spt+1 Downto Vitri+1 Do a[i]:=a[i-1]; a[vitri]:=so; spt:=spt+ 1; Writeln; Writeln('MANG SAU KHI CHEN'); For i:=1 To spt Do Write(a[i]:6); Readln End. 6/Tnh im xp hng: Code: 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. 13/Mng k t: Code: Program Mang_Ky_Tu; Var a:Array[Char] Of Integer; Ch:Char; Begin Writeln('IN MA ASCII CUA CAC KY TU'); Writeln('------------------------'); For Ch:='A' To 'Z' Do Begin a[Ch]:=Ord(Ch); Writeln('-Ky tu: ',Ch,' ma ASCII = ',a[ch]); End; Writeln; Writeln('Bam phim <Enter> de ket thuc'); Readln End.

Until He10 = 0; Writeln; Writeln('+So he 10 la : ',N); Writeln('+Doi sang he 2 la: ',He2); Writeln; Writeln(' Bam phim <Enter> de ket thuc'); Readln End. 27/Tm v xa cc k t trng nhau trong chui: Code: Program Tim_Xoa; Var St,St1:String; Ch:Char; i,l,l1:Byte; Begin Writeln('TIM VA XOA CAC KY TU TRUNG NHAU TRONG CHUOI'); Writeln(' -----------------'); Writeln; Write('-Nhap mot chuoi: '); Readln(St); St1:=St; i:=1; l:=Length(St); While i <= l Do Begin i:=i+1; If St[i]=St[i - 1] Then Begin Writeln('+Ky tu thu: ',i:2,' la: ',St[i],' bi trung lap'); Write('Ban co muon xoa ky tu nay khong (c/k)'); Readln(Ch); If UpCase(Ch)='C' Then Begin Delete(St,i ,1); i:= i - 1; End; End; End; l1:=Length(St); Writeln; Writeln('+Chuoi ban dau : ',St1,' co: ',l:2,' ky tu'); Writeln(' Sau khi xoa ky tu trung nhau'); Writeln(' Chuoi con lai: ',St,' gom: ',l1:2,' ky tu'); Writeln; Writeln(' Bam phim <Enter> de ket thuc'); Readln End.

Tach_Danh_Sach_Chan_Le; Uses Crt; TYPE Mang = Array[1..100] Of Integer; VAR i,j,k,n : Integer; a,b,c : Mang; Begin ClrScr; Writeln(' NHAP DANH SACH'); Writeln(' --------------'); Write('-So phan tu: '); Readln(n); For i := 1 To n Do Begin Write('-Phan tu thu: ',i:2,' = '); Readln(a[i]); End; Writeln; Writeln('TACH THANH 2 DANH SACH'); Writeln('---------------------'); Writeln; j := 1; k := 1; For i := 1 To n Do If Odd(a[i]) Then Begin b[j] := a[i]; j := j + 1; End Else Begin c[k] :=a[i]; k := k + 1; End; Writeln; Writeln(' -Danh sach thu nhat ( so le ) '); Writeln; For i := 1 To j-1 Do Write(b[i],' '); Writeln; Writeln; Writeln(' -Danh sach thu hai ( so chan ) '); Writeln; For i := 1 To k-1 Do Write(c[i],' '); Writeln; Write(' Bam <Enter> . . . '); Readln End.

17/Thng k cc s l: Code: Program So_le; Var a:Array[1..255] Of Integer; i,spt,sole:Byte; Begin Writeln('THONG KE CAC SO LE'); Writeln('------------------') ; Write('-Can nhap bao nhieu so: '); Readln(spt); For i:=1 To spt Do Begin Write('-Phan tu A[',i:2,']= '); Readln(a[i]); End; sole:=0; For i:=1 To spt Do If Odd(A[i]) Then Inc(sole); Writeln; Writeln('-Tong so cac so da nhap: ',spt); For i:= 1 To spt Do Write(a[i]:6); Writeln; Writeln('-Tong so cac so le la: ',sole); Writeln; Writeln(' Bam phim <Enter> de ket thuc '); Readln End.

18/Tnh gi tr ca a thc bc N: Code: Program Da_thuc; Var a:Array[1..255] Of Real; i,n:Byte; x,p:Real; Begin Writeln('TINH GIA TRI CUA DA THUC BAC N'); Writeln('-----------------------------'); Writeln; Write('-Cho biet bac cua da thuc: '); Readln(n); For i:= N Downto 0 Do Begin Write('-Cho biet he so A[',i:2,']= '); Readln(a[i]); End; Writeln; Write('-Cho biet X= '); Readln(x); P:=a[n]; For i:= N Downto 1 Do P:=x * p + a[i-1]; Writeln; Writeln('+Tri cua da thuc P(x)= ',P:0:6); Writeln; Writeln(' Bam phim <Enter> de ket thuc '); Readln End.

You might also like