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