You are on page 1of 47

1/Sắp Xếp Theo Tên:

CODE (Chọn tất cả)


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.

2/Sắp xếp điểm tăng:

CODE (Chọn tất cả)


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.

3/Hóa Đơn:

CODE (Chọn tất cả)


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.

4/Thư viện sách:

CODE (Chọn tất cả)


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.

5/Hồ Sơ Nhân Viên:

CODE (Chọn tất cả)


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

6/Tính điểm xếp hạng:

CODE (Chọn tất cả)


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.

7/Hoán vị chuỗi:

CODE (Chọn tất cả)


Program Hoan_Vi_Chuoi;
Uses Crt;
VAR
Chuoi1,Chuoi2,Tam :^String;
Begin
ClrScr;
Writeln('HOAN VI 2 CON TRO THAY CHO HOAN VI NOI DUNG');
Writeln('-------------------------------------------');
Writeln;
New(Chuoi1);
New(Chuoi2);
Chuoi1^ := 'Giao trinh Turbo Pascal 7.0';
Chuoi2^ := 'Giao trinh FoxPro 2.6';
Writeln;
Writeln('NOI DUNG BAN DAU CUA 2 CHUOI');
Writeln('----------------------------');
Writeln;
Writeln('-Chuoi thu nhat: ',Chuoi1^);
Writeln('-Chuoi thu hai : ',Chuoi2^);
Writeln;
Writeln('NOI DUNG SAU KHI HOAN VI 2 CON TRO');
Writeln('----------------------------------');
Writeln;
Tam := Chuoi1;
Chuoi1 := Chuoi2;
Chuoi2 := Tam;
Writeln('-Chuoi thu nhat: ',Chuoi1^);
Writeln('-Chuoi thu hai : ',Chuoi2^);
Dispose(Chuoi1);
Dispose(Chuoi2);
Writeln;
Write(' Bam <Enter> . . . ');
Readln;
End.

8/Tách danh sách chẳn lẻ:

CODE (Chọn tất cả)


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

9/Đảo ngược danh sách:

CODE (Chọn tất cả)


Program Dao_Nguoc_Danh_Sach;
Uses Crt;
TYPE
ConTro = ^Nut;
Nut = RECORD
So : Integer;
Next : ConTro;
End;
VAR
Nut1,Tam1,Tam2 : ConTro;
Ch : Char;
BEGIN
ClrScr;
Writeln(' DAO NGUOC DANH SACH');
Writeln(' -------------------');
Nut1 := Nil;
Repeat
New(Tam1);
Write('-Nhap so: ');
Readln(Tam1^.So);
Tam1^.Next := Nut1;
Nut1 := Tam1;
Write(' Nhap nua khong ? (c/k) ');
Readln(Ch);
Until UpCase(Ch)= 'K';
Tam1 := Nut1;
Nut1 := Nil;
Repeat
Tam2 := Tam1^.Next;
Tam1^.Next := Nut1;
Nut1 := Tam1;
Tam1 := Tam2;
Until Tam1 = Nil;
Writeln('Sau khi dao: ');
Tam1 := Nut1;
While Tam1 <> Nil Do
Begin
Write(Tam1^.So:6);
Tam1 := Tam1^.Next;
End;
Writeln;
Write(' Bam <Enter> . . . ');
Readln
END.

10/Ghép Chuỗi:

CODE (Chọn tất cả)


Program Ghep_Chuoi;
Uses Crt;
TYPE
ConTro = ^Nut;
Nut = RECORD
Kt : Char;
Next : ConTro;
End;
VAR
Dau1,Cuoi1 : ConTro;
Dau2,Cuoi2 : ConTro;
Tam : ConTro;
Ch : Char;
i : Integer;
BEGIN
ClrScr;
Writeln('CHUOI THU NHAT');
Writeln('--------------');
Writeln;
i := 0;
Repeat
i := i + 1;
New(Tam);
Write('-Ky tu thu: ',i:2,' : ');
Readln(Tam^.Kt);
If i = 1 Then
Begin
Dau1 := Tam;
Cuoi1 := Tam;
End
Else
Begin
Cuoi1^.Next := Tam;
Cuoi1 := Tam;
End;
Write('Nhap nua khong ? (c/k) ');
Readln(Ch);
Until UpCase(Ch) = 'K';
ClrScr;
Writeln('CHUOI THU HAI');
Writeln('--------------');
Writeln;
i := 0;
Repeat
i := i + 1;
New(Tam);
Write('-Ky tu thu: ',i:2,' : ');
Readln(Tam^.Kt);
If i = 1 Then
Begin
Dau2 := Tam;
Cuoi2 := Tam;
End
Else
Begin
Cuoi2^.Next := Tam;
Cuoi2 := Tam;
End;
Write('Nhap nua khong ? (c/k) ');
Readln(Ch);
Until UpCase(Ch) = 'K';
Cuoi1^.Next := Dau2;
Cuoi2^.Next :=Nil;
Writeln;
Writeln(' KET QUA');
Writeln('---------');
Tam := Dau1;
While Tam <> Nil Do
Begin
Write(Tam^.Kt);
Tam := Tam^.Next;
End;
Writeln;
Write(' Bam <Enter> . . . ');
Readln
END.

11/Cây nhị phân (hay):

CODE (Chọn tất cả)


Program Cay_Nhi_Phan;
Uses Crt;
TYPE
Str = String[24];
ConTro = ^BanGhi;
BanGhi = RECORD
HoTen : Str;
Luong : Real;
Trai,Phai : ConTro;
End;
VAR
Goc : ConTro;
Nv : BanGhi;
Ketthuc : Boolean;
Ch : Char;
{--------------------------------}
Procedure Chen(Var Goc : ConTro; Nv : BanGhi);
Var
P,P1 : ConTro;
Begin
If goc = Nil Then
Begin
New(Goc);
With Goc^ Do
Begin
HoTen := NV.HoTen;
Luong := NV.Luong;
Trai := Nil;
Phai := Nil;
End;
End
Else
Begin
P := Goc;
P1 := Nil;
While P <> Nil Do
Begin
P1 := P;
If Nv.HoTen <= P^.HoTen Then
P := P^.Trai
Else
P := P^.Phai;
End;
New(P);
With P^ Do
Begin
HoTen := NV.HoTen;
Luong := NV.Luong;
Trai := Nil;
Phai := Nil;
End;
If NV.HoTen <=P1^.HoTen Then
P1^.Trai := P
Else
P1^.Phai := P;
End;
End;
{--------------------------------}
Procedure Xoa(Var Goc : ConTro; Nv : BanGhi);
Var
P,P1,Q,Q1 : ConTro;
Nhanh :(NhanhTrai,NhanhPhai);
Begin
If Goc = Nil Then Writeln('Cay rong')
Else
Begin
P := Goc;
P1 := Nil;
While (P <> Nil) And (P^.HoTen <> Nv.HoTen) Do
Begin
P1 := P;
If Nv.HoTen < P^.HoTen Then
Begin
P := P^.Trai;
Nhanh := NhanhTrai;
End
Else
Begin
P := P^.Phai;
Nhanh := NhanhPhai;
End;
End;
If P = Nil Then
Writeln('Khong tim thay')
Else
Begin
If (P^.Trai = Nil) Then
Q := P^.Phai
Else
Begin
Q := P^.Trai;
Q1 := Nil;
While Q^.Phai <> Nil Do
Begin
Q1 := Q;
Q := Q^.Phai;
End;
If Q1 <> Nil Then
Begin
Q1^.Phai := Q^.Trai;
Q^.Trai := P^.Trai;
End;
If P1 = Nil Then
Goc := Q
Else
Begin
If Nhanh = NhanhTrai Then
P1^.Trai := Q
Else
P1^.Phai := Q;
End;
Dispose(P);
End;
End;
End;
End;
{--------------------------------}
Procedure Tim(Goc : ConTro; Nv : BanGhi);
Var
P : ConTro;
Begin
P := Goc;
While (P <> Nil) And (P^.HoTen <> Nv.HoTen) Do
If NV.HoTen < P^.HoTen Then
P := P^.Trai
Else
P := P^.Phai;
If P = Nil Then Writeln('Khong tim thay')
Else
Begin
Writeln('Tim thay');
Writeln(P^.HoTen,' ', P^.Luong:8:1);
End;
End;
{--------------------------------}
Procedure LNRLietKe(Goc : ConTro);
Begin
If Goc = Nil Then
Begin
Writeln('Cay rong, chua co du lieu');
End
Else
Begin
If Goc^.Trai <> Nil Then
LNRLietKe(Goc^.Trai);
Writeln(Goc^.HoTen,', ',Goc^.Luong:8:1);
If Goc^.Phai <> Nil Then
LNRLietKe(Goc^.Phai);
End;
End;
{--------------------------------}
BEGIN
Repeat
ClrScr;
Writeln;
Writeln('CAC CHUC NANG CAY NHI PHAN');
Writeln('--------------------------');
Writeln;
Writeln('1-Khoi tao cay');
Writeln('2-Noi them vao cay');
Writeln('3-Xoa khoi cay');
Writeln('4-Tim kiem tren cay');
Writeln('5-Liet ke danh sach');
Writeln('6-Ket thuc chuong trinh');
Writeln;
Write('Chon cac chuc nang tu 1 den 6: ');
Readln(Ch);
Case Ch Of
'1' : Begin
ClrScr;

Writeln('1-KHOI TAO CAY');


Writeln('Cay co thu tu LNR');
Writeln('-----------------');
Writeln;
Goc := Nil;
KetThuc := False;
Repeat
With Nv Do
Begin
Write('-Ho ten hoac <Enter> de ngung: ');
Readln(HoTen);
If HoTen <> '' Then
Begin
Write('-Bac luong : ');
Readln(Luong);
Chen(Goc,Nv);
End
Else
KetThuc := True;
End;
Until ketThuc;
End;
'2' : Begin
ClrScr;
Writeln;
Writeln('2-NOI VAO CAY THEO THU TU');
Writeln('-------------------------');
Writeln;
KetThuc := False;
Repeat
With Nv Do
Begin
Write('-Ho ten hoac <Enter> de ngung: ');
Readln(HoTen);
If HoTen <> '' Then
Begin
Write('-Bac luong : ');
Readln(Luong);
Chen(Goc,Nv);
End
Else
KetThuc := True;
End;
Until ketThuc;
End;
'3' : Begin
ClrScr;
Writeln;
Writeln('3.XOA KHOI CAY');
Writeln('--------------');
Writeln;
KetThuc := False;
Repeat
With Nv Do
Begin
Write('Ho ten can xoa, hoac <Enter> de ngung: ');
Readln(HoTen);
If HoTen <> '' Then
Xoa(Goc,NV)
Else
KetThuc := True;
End;
Until KetThuc;
End;
'4' : Begin
ClrScr;
Writeln('4-
TIM KIEM TREN CAY');
Writeln('-------------------');
Writeln;
ketThuc := False;
Repeat
With Nv Do
Begin
Write('Ho ten can tim, hoac <Enter> de
ngung: ');
Readln(HoTen);
If HoTen <> '' Then
Tim(Goc,NV)
Else
KetThuc := True;
End;
Until KetThuc;
End;
'5' : Begin
ClrScr;
Writeln('5-
LIET KE NOI DUNG CAY');
Writeln('Hien thi theo thu tu ABC...');
Writeln('---------------------------');
Writeln;
LNRLietKe(Goc);
Writeln;
Write('Xem xong bam <Enter> . . . ');
Readln

End;
'6' : Begin
Writeln('7-
KET THUC CHUONG TRINH');
Writeln;
End;
End;
Until Ch = '6'
END.

12/Đổi thập phân ra nhị phân:

CODE (Chọn tất cả)


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

13/Mảng kí tự:

CODE (Chọn tất cả)


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.
14/Trung bình cộng:

CODE (Chọn tất cả)


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/Chèn một số vào hàng:

CODE (Chọn tất cả)


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.

16/Xóa phần tử trong mảng:

CODE (Chọn tất cả)


Program Xoa_Pt;
Var
i,spt,vitri:Integer;
a:Array[1..100] Of Integer;
Begin
Writeln('XOA PHAN TU TRONG MANG');
Writeln('----------------------');
Writeln;
Write('-Mang co bo nhieu phan tu: ');
Readln(spt);
For i:=1 To spt Do
Begin
Write('-Phan tu A[',i:2,']= ');
Readln(a[i]);
End;
Writeln;
Writeln(' MANG TRUOC KHI XOA');
Writeln(' -----------------');
Writeln;
For i:=1 To spt Do
Write(a[i]:6);
Writeln;
Writeln;
Write('-Vi tri muon xoa: ');
Readln(vitri);
For i:=vitri to spt - 1 Do
a[i]:=a[i+1];
spt:=spt - 1;
Writeln;
Writeln(' MANG SAU KHI XOA');
Writeln(' ----------------');
Writeln;
For i:= 1 to spt Do
Write(a[i]:6);
Writeln;
Writeln;
Writeln(' Bam phim <Enter> de ket thuc ');
Readln
End.

17/Thống kê các số lẻ:

CODE (Chọn tất cả)


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/Tính giá trị của đa thức bậc N:

CODE (Chọn tất cả)


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.

19/Đổi số nguyên kiểu Word ra hệ thập lục:

CODE (Chọn tất cả)


Program Doi_he_16;
Const
KyTuHe16:array[0..$F] Of Char ='0123456789ABCDEF';
Var
SoWord:Word;
SoHex:String[4];
Begin
Writeln('DOI SO NGUYEN KIEU WORD RA HE THAP LUC');
Writeln('--------------------------------------');
Writeln;
Write('-Nhap so kieu Word: ');
Readln(SoWord);
SoHex[0]:=#4;
SoHex[1]:= KyTuHe16[Hi(SoWord) SHR 4];
SoHex[2]:= KyTuHe16[Hi(SoWord) AND $F];
SoHex[3]:= KyTuHe16[Lo(SoWord) SHR 4];
SoHex[4]:= KyTuHe16[Lo(SoWord) AND $F];
Writeln('+So nguyen kieu Word = ',soWord);
Writeln('+Doi ra so he thap luc = $',SoHex);
Writeln;
Writeln(' Bam phim <Enter> de ket thuc ');
Readln
End.

20/Đổi số nguyên kiểu Word ra hệ nhị phân:

CODE (Chọn tất cả)


Program Doi_he_2;
Const
KyTuHe2:array[0..1] Of Char ='01';
Var
SoWord:Word;
SoBinary:String[16];
i:byte;
Begin
Writeln('DOI SO NGUYEN KIEU WORD RA HE NHI PHAN');
Writeln('--------------------------------------');
Writeln;
Write('-Nhap so kieu Word: ');
Readln(SoWord);
SoBinary[0]:=#16;
For i:=15 DownTo 0 Do
If (SoWord AND (1 SHL i)) = (1 SHL i) Then
SoBinary[16-i]:= KyTuHe2[1]
Else
SoBinary[16-i]:= KyTuHe2[0];
Writeln('+So nguyen kieu Word = ',soWord);
Writeln('+Doi ra so he nhi phan= B ',SoBinary);
Writeln;
Writeln(' Bam phim <Enter> de ket thuc ');
Readln
End.

21/Cộng 2 số nguyên:

CODE (Chọn tất cả)


Program Cong_so;
Uses Crt;
Const
spt=301;
Type
mang=Array[1..spt] Of Integer;
Var
a,b,kq:Mang;
k,na,nb,nmax,tam:Integer;
Begin
ClrScr;
Writeln('CONG 2 SO NGUYEN');
Writeln('----------------');
Writeln;
Writeln('+SO THU NHAT (-1 de ket thuc) ');
na:=0;
Repeat
na:=na+1;
Write('-Chu so thu: ',na,' = ');
Readln(a[na]);
Until a[na]=-1;
na:=na-1;
For k:=0 To na-1 Do
a[spt-k]:=a[na-k];
For k:=1 to spt-na Do
a[k]:=0;
ClrScr;
Writeln('+SO THU HAI (-1 de ket thuc) ');
nb:=0;
Repeat
nb:=nb+1;
Write('-Chu so thu: ',nb,' = ');
Readln(b[nb]);
Until b[nb]=-1;
nb:=nb-1;
For k:=0 To nb-1 Do
b[spt-k]:=b[nb-k];
For k:=1 to spt-nb Do
b[k]:=0;
If na>nb Then
nmax:=na
Else
nmax:=nb;
tam:=0;
For k:=spt Downto spt-nmax Do
Begin
kq[k]:=(a[k]+b[k]+tam) Mod 10;
tam:=(a[k]+b[k]+tam) Div 10;
End;
ClrScr;
Writeln('KET QUA CONG 2 SO NGUYEN');
Writeln('------------------------');
Write('*So thu nhat: ');
For k:=spt-na+1 To spt Do
Write(a[k],' ');
Writeln;
Write('*So thu hai : ');
For k:=spt-nb+1 To spt Do
Write(b[k],' ');
Writeln;
Write('*Tong = ');
For k:=Spt-nmax To spt Do
Write(kq[k],' ');
Writeln;
Writeln(' Bam phim <Enter> de ket thuc ');
Readln
End.

22/Nhân 2 số nguyên:

CODE (Chọn tất cả)


Program Nhan_so;
Uses Crt;
Const
spt=900;
Type
mang=Array[1..spt] Of Integer;
Var
a,b,c,kq:Mang;
i,j,k,na,nb,tam:Integer;
{---------------------------}
Procedure Nhap(Var a:mang; Var na:Integer);
Var
k:Integer;
Begin
na:=0;
Repeat
na:=na+1;
Write('-Chu so thu: ',na,' = ');
Readln(a[na]);
Until a[na]=-1;
na:=na-1;
For k:=0 To na-1 Do
a[spt-k]:=a[na-k];
For k:=1 to spt-na Do
a[k]:=0;
End;
{---------------------------}
Procedure Cong(a:mang; Var b:mang);
Var
tam1,tam2,k:Integer;
Begin
tam1:=0;
For k:= spt Downto 1 Do
Begin
tam2:=(a[k]+b[k]+tam1) Div 10;
b[k]:=(a[k]+b[k]+tam1) Mod 10;
tam1:=tam2;
End;
End;
{---------------------------}
BEGIN
ClrScr;
Writeln('NHAN 2 SO NGUYEN');
Writeln('----------------');
Writeln;
Writeln('+SO THU NHAT (-1 de ket thuc) ');
Nhap(a,na);
ClrScr;
Writeln('+SO THU HAI (-1 de ket thuc) ');
Nhap(b,nb);
For k:=1 To spt Do
kq[k]:=0;
For j:=spt Downto spt-nb Do
Begin
For k:=1 to spt Do
c[k]:=0;
tam:=0;
For i:=spt Downto spt-na Do
Begin
c[j+i-spt]:=(b[j]*a[i]+tam) Mod 10;
tam:=(b[j]*a[i]+tam) Div 10;
End;
Cong(c,kq)
End;
ClrScr;
Writeln('KET QUA NHAN 2 SO NGUYEN');
Writeln('-----------------------');
Writeln;
Write('*So thu nhat: ');
For k:=spt-na+1 To spt Do
Write(a[k],' ');
Writeln;
Write('*So thu hai : ');
For k:=spt-nb+1 To spt Do
Write(b[k],' ');
Writeln;
Write('*Tich = ');
For k:=Spt-(na+nb)+1 To spt Do
Write(kq[k],' ');
Writeln;
Writeln(' Bam phim <Enter> de ket thuc ');
Readln
END.

23/Ma trận vuông 10x10 phần tử:

CODE (Chọn tất cả)


Program Ma_tran_vuong;
Uses Crt;
Var
a:Array[1..10, 1..10] Of Integer;
i,j:Integer;
Begin
Writeln('MA TRAN VUONG 10 x 10 PHAN TU');
Writeln('-----------------------------');
ClrScr;
Window(10,5,60,25);
For i:= 1 To 10 Do
Begin
For j:=1 To 10 Do
Begin
If i=j Then
a[i,j]:=i
Else
a[i,j]:=0;
Write(a[i,j]:5);
End;
Writeln(#10)
End;
Writeln;
Writeln(' Bam phim <Enter> de ket thuc ');
Readln
End.

24/Tìm một số trong mảng:

CODE (Chọn tất cả)


Program Tim_so;
Var
a:Array[1..4,1..6] Of Integer;
i,j,so,solan:Integer;
Begin
Writeln('TIM MOT SO TRONG MANG');
Writeln('---------------------');
Writeln;
For i:=1 To 4 Do
For j:=1 to 6 Do
Begin
Write('-Phan tu A[',i,',',j,']= ');
Readln(a[i,j]);
End;
Writeln;
Write('-So muon tim: ');
Readln(so);
solan:=0;
For i:=1 To 4 Do
For j:=1 To 6 Do
If so=a[i,j] Then
Begin
solan:=solan+1;
Writeln('+Lan: ',solan,' tai hang: ',i,' cot: ',j);
End;
Writeln;
Writeln('+Tong so lan xuat hien la: ',solan);
For i:=1 To 4 Do
Begin
For j:=1 To 6 Do
Write(a[i,j]:8);
Writeln;
End;
Readln
End.

25/Giải hệ phuơng trình tuyến tính 2 ẩn:

CODE (Chọn tất cả)


Program Giai_he_PT_tuyen_tinh;
Var
A:Array[1..2, 1..2] Of Real;
C:Array[1..2] Of Real;
x,y,dt,dtx,dty:Real;
i,j:Integer;
Begin
Writeln('GIAI HE PT TUYEN TINH 2 AN');
Writeln('--------------------------');
Writeln;
Writeln('-Nhap cac he so A cua he phuong trinh: ');
For i:=1 to 2 Do
For j:=1 To 2 Do
Begin
Write('+Phan tu A[',i,',',j,']= ');
Readln(a[i,j]);
End;
Writeln;
Writeln('-Nhap cac he so C cua he phuong trinh: ');
For i:=1 to 2 Do
Begin
Write('+Phan tu C[',i,']= ');
Readln(c[i]);
End;
Writeln;
{Giai he phuong trinh}
Dt:= a[1,1]*a[2,2]-a[1,2]*a[2,1]; {Dt: Dinh thuc}
Dtx:=c[1]*a[2,2]-c[2]*a[2,1];
Dty:=a[1,1]*c[2]-a[1,2]*c[1];
If Dt <> 0 Then
Begin
x:=Dtx / Dt;
y:=Dty / Dt;
Writeln('X= ',x);
Writeln('Y= ',y);
End
Else
Begin
If (Dtx=0) And (Dty=0) Then
Writeln(#7,#7,#7,' Co vo so nghiem')
Else
Writeln(#7,#7,#7,'Vo nghiem');
End;
Writeln;
Writeln(' Bam phim <Enter> de ket thuc ');
Readln
End.

26/Nhân ma trận:

CODE (Chọn tất cả)


Program Nhan_ma_tran;
Const
Max=10;
Type
Matran=Array[1..Max,1..Max] Of Integer;
Var
A,B,C:Matran;
hang1,cot1,i,j,m,n,q:Integer;
Begin
Writeln('NHAN MA TRAN');
Writeln('------------');
Writeln;
Writeln('MA TRAN A:');
Write('-So hang = ');
Readln(m);
Write('-So cot = ');
Readln(n);
For i:=1 To m Do
For j:=1 To n Do
Begin
Write('+Phan tu A[',i,',',j,' = ');
Readln(a[i,j]);
End;
Cot1:=m;
Hang1:=m;
Writeln;
Writeln('MA TRAN B:');
Write('-So hang = ');
Readln(m);
Write('-So cot = ');
Readln(n);
For i:=1 To m Do
For j:=1 To n Do
Begin
Write('+Phan tu B[',i,',',j,' = ');
Readln(b[i,j]);
End;
For i:=1 To Hang1 Do
For j:=1 To n Do
Begin
c[i,j]:=0;
For q:=1 To Cot1 Do
c[i,j]:= c[i,j] + a[i,q] * b[q,j];
End;
For i:=1 to hang1 Do
Begin
For j:= 1 To n Do
Write((c[i,j]):8);
Writeln;
End;
Readln
End.

27/Tìm và xóa các kí tự trùng nhau trong chuổi:

CODE (Chọn tất cả)


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.
28/Tìm chuổi 2 xuất hiện trong chuổi 1:

CODE (Chọn tất cả)


Program Tim_chuoi;
Var
St1,St2:String;
i,sl:Integer;
Begin
Writeln('TIM CHUOI HAI XUAT HIEN TRONG CHUOI MOT');
Writeln(' --------------');
Writeln;
Write('-Chuoi thu nhat: ');
Readln(St1);
Write('-Chuoi thu hai : ');
Readln(St2);
sl:=0;
For i:=1 To Length(St1) Do
If St2 = Copy(St1,i,Length(St2)) Then
sl:=sl+1;
Writeln;
Writeln('+Chuoi thu 2 xuat hien: ',sl:2,' lan trong chuoi 1');
Writeln;
Writeln(' Bam phim <Enter> de ket thuc');
Readln
End.

29/Đổi số La mã ra số thập phân:

CODE (Chọn tất cả)


Program So_La_Ma;
Label l1;
Var
St:String;
tiep:Char;
i,So:Integer;
Begin
Writeln('DOI SO LA MA RA SO THAP PHAN');
Writeln(' ------------');
Writeln;
L1:Write('-Nhap so La ma: ');
Readln(St);
So:=0;
i:=Length(St);
While i > 0 Do
Case St[i] Of
'I':Begin
So:=So+1;
i:=i-1;
End;
'V':If (i > 1) And (St[i-1] = 'I') Then
Begin
So:=So+4;
i:=i-2;
End
Else
Begin
So:=So+5;
i:=i-1;
End;
'X':If (i > 1) And (St[i-1] = 'I') Then
Begin
So:=So+9;
i:=i-2;
End
Else
Begin
So:=So+10;
i:=i-1;
End;
'L':If (i > 1) And (St[i-1] = 'X') Then
Begin
So:=So+40;
i:=i-2;
End
Else
Begin
So:=So+50;
i:=i-1;
End;
'C':If (i > 1) And (St[i-1] = 'X') Then
Begin
So:=So+90;
i:=i-2;
End
Else
Begin
So:=So+100;
i:=i-1;
End;
'D':If (i > 1) And (St[i-1] = 'C') Then
Begin
So:=So+400;
i:=i-2;
End
Else
Begin
So:=So+500;
i:=i-1;
End;
'M':If (i > 1) And (St[i-1] = 'C') Then
Begin
So:=So+900;
i:=i-2;
End
Else
Begin
So:=So+1000;
i:=i-1;
End;
End;
Writeln('+So La ma : ',St);
Writeln('+Doi ra thap phan: ',So);
Writeln;
Write('-Tiep tuc nua khong (c/k) ');
Readln(tiep);
If UpCase(tiep)='C' Then
Goto l1;
End.

30/Kiểm tra số nhập vào:

CODE (Chọn tất cả)


Program Kiem_tra_so;
Label tt;
Var
St:String;
So:Real;
Dung:Integer;
tiep:Char;
Begin
Repeat
Writeln('KIEM TRA SO NHAP VAO');
Writeln(' -----------');
tt:Write('-Nhap mot so: ');
Readln(St);
Val(St,So,Dung);
If Dung = 0 Then
Writeln(' +Ban da nhap mot so: ',So:8:2)
Else
Writeln(' +Khong phai so, xin nhap lai:');
Until Dung = 0;
Writeln;
Write('-Co tiep tuc khong (C/K) ');
Readln(Tiep);
If UpCase(Tiep)='C' Then
Goto tt;
End.

31/Chuơng trình mã hóa:

CODE (Chọn tất cả)


Program Ma_hoa;
Var
St:String;
k:Integer;
i,n:Integer;
Begin
Writeln('CHUONG TRINH MA HOA');
Writeln(' -----------');
Write('-Nhap chuoi: ');
Readln(St);
Write('-Nhap ma so k: ');
Readln(k);
k:=k Mod 26;
For i:= 1 To Length(St) Do
Begin
n:=Ord(St[i]);
If (n >=97) And (n<=122) then
Begin
n:=n+k;
If n > 122 Then
n:=(n Mod 122) + 96;
End;
St[i]:=Chr(n);
End;
Writeln;
Writeln('+Sau khi ma hoa: ',St);
Writeln;
Writeln(' Bam phim <Enter> de ket thuc');
Readln
End.

32/Ngắt từng từ trong câu:

CODE (Chọn tất cả)


Program Ngat_tu;
Var
St:String;
Begin
Writeln('NGAT TUNG TU TRONG CAU');
Writeln(' --------------');
Writeln;
Write('-Nhap mot cau: ');
Readln(St);
Repeat
While (St[1] =' ') And (Length(St) <> 0) Do
Delete(St,1,1);
While (St[1] <> ' ') And (Length(St) <>0) Do
Begin
Write(St[1]);
Delete(St,1,1);
End;
Writeln;
Until Length(St)=0;
Readln
End.

33/Kiểm tra kí tự trùng của 2 chuổi:

CODE (Chọn tất cả)


Program Cung_Ky_Tu;
Var
St1,St2:String;
Dung:Boolean;
i:Integer;
Begin
Writeln('KIEM TRA KY TU TRUNG CUA 2 CHUOI');
Writeln(' --------------');
Writeln;
Write('-Nhap chuoi 1: ');
Readln(St1);
Write('-Nhap chuoi 2: ');
Readln(St2);
Dung:=False;
If Length(St1)=Length(St2) Then
Begin
Dung:=True;
For i:= 1 To Length(St1) Do
If Pos(St1[i],St2) = 0 Then
Dung:=False
Else
Delete(St2,Pos(St1[i],St2),1);
End;
If Dung Then
Writeln('+Hai chuoi co cung cac ky tu')
Else
Writeln('+Hai chuoi co cac ky tu khac nhau');
Readln
End.

34/Kiểm tra chuổi đối xứng:

CODE (Chọn tất cả)


Program Chuoi_Doi_Xung;
Var
St:String;
l,i:Integer;
Dung:Boolean;
Begin
Writeln('KIEM TRA CHUOI DOI XUNG');
Writeln(' -------------');
Writeln;
Write('-Nhap chuoi: ');
Readln(St);
l:=Length(St);
Dung:=True;
For i:=1 To (l Div 2) Do
If St[i] <> St[l-i+1] Then
Dung:=False;
If Dung Then
Writeln('+Chuoi nay doi xung')
Else
Writeln('+Chuoi nay khong doi xung');
Readln
End.

35/Đổi số thập phân ra số la mã:

CODE (Chọn tất cả)


Program So_La_Ma;
Var
So,So1,i:Integer;
St:String;
Begin
Writeln('DOI SO THAP PHAN SANG SO LA MA');
Writeln(' ------------');
Writeln;
Write('-Nhap so nguyen: ');
Readln(So);
So1:=So;
St:=' ';
For i:=1 To (so Div 1000) Do
St:=St+'M';
So:=So Mod 1000;
If So >= 900 Then
Begin
St:=St+'CM';
So:=So-900;
End
Else
If So >=500 Then
Begin
St:=St+'I';
So:=So-500;
End
Else
If So >=400 Then
Begin
St:=St+'CD';
So:=So-400;
End;
For i:=1 To (so Div 100) Do
St:=St+'C';
So:=So Mod 100;
If So >= 90 Then
Begin
St:=St+'XC';
So:=So-90;
End
Else
If So >=50 Then
Begin
St:=St+'L';
So:=So-50;
End
Else
If So >=40 Then
Begin
St:=St+'XL';
So:=So-40;
End;
For i:=1 To (so Div 10) Do
St:=St+'X';
So:=So Mod 10;
If So >= 9 Then
Begin
St:=St+'IX';
So:=So-9;
End
Else
If So >=5 Then
Begin
St:=St+'V';
So:=So-5;
End
Else
If So >=4 Then
Begin
St:=St+'IV';
So:=So-4;
End;
For i:=1 To So Do
St:=St+'I';
Writeln;
Writeln('+So thap phan: ',So1);
Writeln('+So La ma : ',St);
Writeln;
Writeln(' Bam phim <Enter> de ket thuc');
Readln
End.

36/Mãng số thực:

CODE (Chọn tất cả)


Program Mang_so_thuc;
Const
Max = 100;
Type
Mang=Array[1..Max] Of Real;
Var
i,n:Integer;
A:mang;
Begin
Writeln('MANG SO THUC');
Writeln('------------');
Repeat
Write('-Cho biet so phan tu: ');
Readln(N);
Until N <= Max;
For i:=1 To N Do
Begin
Write('+Phan tu thu: ',i,' = ');
Readln(a[i]);
End;
Writeln;
Writeln('IN THEO THU TU NGUOC');
Writeln('--------------------');
Writeln;
For i:=N Downto 1 Do
Write(a[i]:4:1,' ');
Writeln;
Writeln;
Writeln('IN CAC DOI SO CUA CAC PHAN TU MANG');
Writeln('----------------------------------');
Writeln;
For i:=1 To N Do
Write(a[i]:4:1,' ');
Writeln;
Readln
End.
37/Tổng tích ma trận:

CODE (Chọn tất cả)


Program Tong_Tich_Ma_tran;
Uses Crt;
Type
Matran=array[1..3,1..3] Of Integer;
Var
a,b,c,d:Matran;
i,j,k:Byte;
Ch:Char;
{*****************************}
Procedure Nhap(Var m:Matran; Ten:Char);
Begin
ClrScr;
GotoXY(26,6);
Write('-Nhap ma tran: ',Ten);
For i:=1 To 3 Do
For j:=1 to 3 Do
Begin
GotoXY(20*i-8,10+2*j);
Write(Ten,'[',i,',',j,']= ');
Readln(m[i,j]);
End;
End;
{*****************************}
Procedure Xuat(m:Matran; Ten:Char);
Begin
ClrScr;
GotoXY(26,6);
Write('CAC PHAN TU CUA MA TRAN: ',Ten);
For i:=1 To 3 Do
For j:=1 To 3 Do
Begin
GotoXY(20*i-8,10+2*j);
Write(Ten,'[',i,',',']= ',m[i,j]);
End;
End;
{*****************************}
BEGIN
Nhap(a,'A');
Nhap(b,'B');
For i:=1 To 3 Do
For j:=1 To 3 Do
c[i,j]:=a[i,j]+b[i,j];
Writeln;
Writeln('MA TRAN TONG');
Writeln;
Xuat(c,'C');
GotoXY(10,25);
Write('Bam phim <Esc> de xem ma tran tich');
For i:=1 to 3 Do
For j:=1 To 3 Do
Begin
d[i,j]:=0;
For k:=1 To 3 Do
d[i,j]:=a[i,k]*b[k,j]+d[i,j];
End;
Repeat
Ch:=Readkey;
If Ch=#0 then
Ch:=Readkey;
Until Ch=#27;
Writeln('MA TRAN TICH= ');
Xuat(d,'D');
Repeat
Until KeyPressed;
END.

38/Sắp xếp mảng tăng dần:

CODE (Chọn tất cả)


Program Mang_tang;
Const
Max=10;
Var
a:Array[1..Max] Of Integer;
i,j,tam:Integer;
Begin
Writeln('SAP XEP MANG TANG DAN');
Writeln('---------------------');
Writeln;
For i:= 1 To Max Do
Begin
Write('-Phan tu A[',i,']= ');
Readln(a[i]);
End;
For i:=1 to Max-1 Do
For j:= i+1 To Max Do
Begin
If a[i] > a[j] Then
Begin
tam:=a[i];
a[i]:=a[j];
a[j]:=tam;
End;
End;
Writeln;
Writeln('+Mang sau khi sap xep:');
Writeln;
For i:=1 To Max Do
Write(a[i],' ');
Writeln;
Readln
End.

39/Sắp xếp mảng bảng giải thuật chèn:

CODE (Chọn tất cả)


Program Gt_Chen;
Const
spt=10;
Var
a:array[1..spt] Of Integer;
i,j,k,tam:Integer;
Begin
Writeln('SAP XEP MANG BANG GIAI THUAT CHEN');
Writeln('---------------------------------');
Writeln;
For i:=1 To spt Do
Begin
Write('-Phan tu A[',i,']= ');
Readln(a[i]);
End;
For i:=2 To spt Do
If a[i] < a[i-1] Then
Begin
j:=1;
While a[j] < a[i] Do
j:=j+1;
tam:=a[i];
For k:=i Downto j+1 Do
a[k]:=a[k-1];
a[j]:=tam;
End;
Writeln;
Writeln('Mang sau khi sap xep:');
For i:=1 To spt Do
Write(a[i]:6);
Writeln;
Writeln(' Bam phim <Enter> de ket thuc ');
Readln
End.

40/Sắp xếp mảng bảng giải thuật chọn:

CODE (Chọn tất cả)


Program Gt_Chon;
Const
spt=10;
Var
a:array[1..spt] Of Integer;
min,vitri,i,j:Integer;
Begin
Writeln('SAP XEP MANG BANG GIAI THUAT CHON');
Writeln('---------------------------------');
Writeln;
For i:=1 To spt Do
Begin
Write('-Phan tu A[',i,']= ');
Readln(a[i]);
End;
For i:=1 To spt Do
Begin
min:=a[spt];
vitri:=spt;
For j:=i To spt Do
If a[j] < min Then
Begin
min:=a[j];
vitri:=j;
End;
a[vitri]:=a[i];
a[i]:=min;
End;
Writeln;
Writeln('Mang sau khi sap xep:');
For i:=1 To spt Do
Write(a[i]:6);
Writeln;
Writeln(' Bam phim <Enter> de ket thuc ');
Readln
End.

41/Sắp xếp mảng bằng giải thuật nổi bọt:

CODE (Chọn tất cả)


Program Gt_Noi_bot;
Const
spt=10;
Var
a:array[1..spt] Of Integer;
i,j,tam:Integer;
Begin
Writeln('SAP XEP MANG BANG GIAI THUAT NOI BOT');
Writeln('-----------------------------------');
Writeln;
For i:=1 To spt Do
Begin
Write('-Phan tu A[',i,']= ');
Readln(a[i]);
End;
For i:=1 To spt-1 Do
For j:= spt Downto i+1 Do
If a[j] < a[j-1] Then
Begin
tam:=a[j];
a[j]:=a[j-1];
a[j-1]:=tam;
End;
Writeln;
Writeln('Mang sau khi sap xep:');
For i:=1 To spt Do
Write(a[i]:6);
Writeln;
Writeln(' Bam phim <Enter> de ket thuc ');
Readln
End.
42/Giải thuật tìm kiếm tuyến tính:

CODE (Chọn tất cả)


Program Tim_Tuyen_Tinh;
Const
N=10;
Var
a:array[1..N] Of Integer;
so,i:Integer;
Begin
Writeln('GIAI THUAT TIM KIEM TUYEN TINH');
Writeln('------------------------------');
Writeln;
For i:=1 To N Do
Begin
Write('-Phan tu A[',i,']= ');
Readln(a[i]);
End;
Writeln;
Write('-So can tim: ');
Readln(so);
i:=1;
While (i <=N) And (a[i] <> so) Do
i:=i+1;
If i <= N Then
Writeln('+Tim thay o vi tri thu: ',i)
Else
Writeln('+Khong tim thay');
Writeln;
Writeln(' Bam phim <Enter> de ket thuc ');
Readln
End.

43/Giải thuật tìm kiếm nhị phân:

CODE (Chọn tất cả)


Program Tim_Nhi_Phan;
Const
N=10;
Var
a:array[1..N] Of Integer;
so,vt1,vt2,i:Integer;
Begin
Writeln('GIAI THUAT TIM KIEM NHI PHAN');
Writeln('----------------------------');
Writeln;
For i:=1 To N Do
Begin
Write('-Phan tu A[',i,']= ');
Readln(a[i]);
End;
Writeln;
Write('-So can tim: ');
Readln(so);
vt1:=1;
vt2:=n;
While vt2 >= vt1 Do
Begin
i:=Trunc((vt1+vt2) Div 2);
If so > a[i] Then
vt1:=i+1
Else
If so < a[i] Then
vt2:=i-1
Else
vt2:=-1;
End;
If vt2 = -1 Then
Writeln('+Tim thay o vi tri thu: ',i)
Else
Writeln('+Khong tim thay');
Writeln;
Writeln(' Bam phim <Enter> de ket thuc ');
Readln
End.

44/Xóa bỏ các số trùng nhau:

CODE (Chọn tất cả)


Program Bo_so_trung;
Const
Max=100;
Var
a:Array[1..Max] Of Integer;
i,j,k,n:Integer;
Begin
Writeln('XOA BO CAC SO TRUNG NHAU');
Writeln('------------------------');
Writeln;
Write('-Nhap so phan tu mang: ');
Readln(n);
For i:=1 To N Do
Begin
Write('-Phan tu A[',i,']= ');
Readln(a[i]);
End;
i:=2;
While i <= N Do
Begin
j:=1;
While a[j] <> a[i] Do
j:=j+1;
If j < i Then
Begin
For k:=i to n-1 Do
a[k]:= a[k+1];
n:=n-1;
End
Else
i:=i+1;
End;
Writeln;
Write('-Mang con lai: ');
For i:=1 to n Do
Write(a[i]:8);
Writeln;
Writeln(' Bam phim <Enter> de ket thuc ');
Readln
End.

45/Dãy con:

CODE (Chọn tất cả)


Program Day_con;
Const
k=10;
a:Array[1..k] Of Integer=(1,3,2,8,10,12,7,29,6,3);
Var
i:Integer;
vt,max:Integer;
n,tong:Integer;
Begin
Vt:=1;
max:=a[1];
n:=1;
tong:=a[1];
For i:=2 To k Do
Begin
If (a[i] > a[i-1]) Then
tong:=tong+a[i];
If (a[i] < a[i-1]) Or (i=k) Then
Begin
If tong > max Then
Begin
max:=tong;
vt:=n;
End;
n:=i;
tong:=a[i];
End;
End;
Writeln('-Day con la: ');
i:=vt;
Repeat
Write(a[i]:6);
max:=max-a[i];
i:=i+1;
Until max=0;
Writeln;
Writeln(' Bam phim <Enter> de ket thuc ');
Readln
End.

46/Chữ hoa:

CODE (Chọn tất cả)


Program Chu_hoa;
Uses Crt;
Const
a:Array[1..10] Of String[24]=('nguyen trung truc','dinh tien hoang',
'nguyen cong tru','le thanh ton','le loi','le lai','tran hung dao',
'nguyen hue','chu van an','mac dinh chi');
Var
k,j:Byte;
{-------------------------}
Procedure ChuHoa(x,y:Byte; a:String);
Var
k:Byte;
Begin
For k:=1 To length(a) Do
If (k=1) Or ((a[k-1]=' ') And (a[k]<>' ')) Then
Begin
GotoXY(x+k-1,y);
Write(UpCase(a[k]));
End;
End;
Begin
ClrScr;
For k:=1 To 10 Do
Begin
GotoXY(5,k);
Write(a[k]:-24);
ChuHoa(5,k,a[k])
End;
Writeln;
Writeln(' Bam phim <Enter> de ket thuc ');
Readln
End.

47/Tam giác Pascal:

CODE (Chọn tất cả)


Program Tg_Pascal;
Const
n=10;
Var
a:Array[1..n, 1..n] Of Integer;
i,j:Integer;
Begin
Writeln('TAM GIAC PASCAL');
Writeln('---------------');
Writeln;
For i:=1 To n Do
a[i,1]:=1;
For j:=1 To n Do
a[1,j]:=0;
For i:=2 To n Do
For j:=2 To n Do
a[i,j]:=a[i-1,j-1]+a[i-1,j];
For i:=1 To n Do
Begin
For j:=1 To i Do
Write(a[i,j]:4);
Writeln;
End;
Writeln;
Writeln(' Bam phim <Enter> de ket thuc ');
Readln
End.

48/Phân tích số nguyên duơng nhỏ nhất:

CODE (Chọn tất cả)


Program Phan_tich;
Const
n=15;
Var
a:Array[1..n, 1..n] Of Longint;
i,j,i1,j1:Integer;
Begin
Writeln('PHAN TICH SO NGUYEN DUONG NHO NHAT');
Writeln('----------------------------------');
Writeln;
For i:=1 To n Do
For j:=1 To n Do
a[i,j]:=i*i*i + j*j*j;
Writeln;
Writeln('IN KET QUA');
Writeln('----------');
For i:=1 To n Do
For j:=1 To i Do
Begin
For i1:= i+1 To n Do
For j1:=1 To j-1 Do
If a[i,j]=a[i1,j1] Then
Writeln(a[i,j],' = ',i,' ^3 ',' + ',j,' ^3 ',' = ',
i1,' ^3 ',' + ',j1,' ^3');
End;
Writeln;
Writeln(' Bam phim <Enter> de ket thuc ');
Readln
End.

49/Bảng cửu chuơng:

CODE (Chọn tất cả)


Program Cuu_Chuong;
Uses Crt;
Type
cc1=Array[1..5, 1..10] Of Byte;
cc2=Array[6..10, 1..10] Of Byte;
Var
i,j:Byte;
Procedure In1;
Var
a:cc1;
cot,hang:Byte;
Begin
cot:=1;
hang:=3;
For i:=1 To 5 Do
For j:=1 To 10 Do
Begin
GotoXY(cot,hang);
a[i,j]:=i * j;
TextColor(Yellow);
Writeln(i:2,' lan ',j:2,' =',a[i,j]:3,'|');
hang:=hang+1;
If hang > 12 Then
Begin
hang:=3;
cot:=cot+15;
End;
End;
End;
Procedure In2;
Var
a:cc2;
cot,hang:Byte;
Begin
cot:=1;
hang:=14;
For i:=6 To 10 Do
For j:=1 To 10 Do
Begin
GotoXY(cot,hang);
a[i,j]:=i * j;
Textcolor(LightMagenta);
Writeln(i:2,' lan ',j:2,' =',a[i,j]:3,'|');
hang:=hang+1;
If hang > 23 Then
Begin
hang:=14;
cot:=cot+15;
End;
End;
End;

BEGIN
ClrScr;
Textcolor(Cyan);
Writeln(' BANG CUU CHUONG');
Writeln(' ---------------');
In1;
Textcolor(LightBlue);
Writeln(' -------------------------------------------');
In2;
Textcolor(LightGreen);
Writeln(' Bam phim <Enter> de ket thuc');
Readln
END.
50/Tìm 2 phần tử liên tiếp trong bảng X:

CODE (Chọn tất cả)


Program Tim_PT_Mang;
Uses Crt;
Var
a:Array[1..1000] Of Integer;
{----------------------------}
Procedure Tao;
Var
k:Integer;
Begin
Randomize;
For k:=1 To 100 Do
a[k]:=Random(100);
End;
{----------------------------}
Procedure Tim;
Var
k,x:Integer;
Begin
Write('-Nhap gia tri X= ');
Readln(x);
For k:=1 To 999 Do
Begin
If a[k] +a[k+1] = X Then
Writeln('a[',K,'] + a[',K+1,']= ',X)
Else
Writeln('Khong co 2 phan tu nao bang: ',X);
End;
End;
BEGIN
Writeln('TIM 2 PHAN TU LIEN TIEP BANG GIA TRI X');
Writeln('-------------------------------------');
Writeln;
Tao;
Tim;
Writeln;
Writeln(' Bam phim <Enter> de ket thuc ');
Readln;
END.

Khách viếng thăm đã đọc qua những bài này ở cùng chuyên mục chưa?:

 Các Bài Tâ ̣p Pascal lớp 11 - CHƯƠNG III


 Thư Viện Các Dạng Bài Tập Pascal của Tin Học 11 - Phần 2
 [Bài Tâ ̣p Pascal Hay] CẤU TRÚC DỮ LIỆU KIỂU MẢNG - Có Đáp
Án
 Các Bài Tâ ̣p Pascal lớp 11 - CHƯƠNG II
 [Bài Tâ ̣p Pascal] XÂU KÝ TỰ (STRING) - Có Đáp Án
 [Bài Tâ ̣p Pascal Hay] DỮ LIỆU KIỂU TỆP - Có Đáp Án
 Các Bài Tâ ̣p Pascal lớp 11 - CHƯƠNG I
 Thư Viện Các Dạng Bài Tập Pascal của Tin Học 11 - Phần 1
 [Bài Tâ ̣p Pascal Hay] CẤU TRÚC DỮ LIỆU KIỂU FILE - Có Đáp Án
 [Bài Tâ ̣p Pascal Hay] VÒNG LẶP XÁC ĐỊNH VÀ KHÔNG XÁC
ĐỊNH (For - While –...

You might also like