Bài tập pascal cơ bản đến nâng cao theo chương trình TIN HỌC lớp 11 không phân ban
Bài tập 3: Viết chương trình nhập vào một xâu, sau đó xuất ra xâu sau khi đã xóa
hết ký tự số.
Program xoa_ky_tu_so;
Uses crt;
Var I,k : byte;
S : string;
Ch : char;
Begin
Clrscr;
Writeln(‘nhap xau ‘); readln(s);
K :=length(s); i :=1;
For ch :=’0’ to ‘9’ do
iem : ', Tongdiem);
If Tongdiem >= 15 Then
Writeln(' Ban da trung tuyen ')
Else Writeln(' Ban khong trung tuyen ');
Readln;
END.
Bài 12 : Viết chương trình nhập hai số thực. Sau đó hỏi phép tính cần thực hiện và in kết
quả của phép tính đó.
Nếu là “+”, in kết quả của tổng lên màn hình.
Nếu là “-”, in kết quả của hiệu lên màn hình.
Nếu là “/”, in kết quả của thương lên màn hình.
Nếu là “*”, in kết quả của tích lên màn hình. Nếu là “+”, in kết quả của tổng lên màn
hình.
Nếu là “+”, in kết quả của tổng lên màn hình.
Program Chuongtrinh_tinh;
Uses Crt;
Var a, b, T : Real;
Pt : Char;
BEGIN
Clrscr;
Write (' a = '); Readln( a );
Trần Văn Chung trường giáo viên trường THPT Hoàng Văn Thụ Nha Trang
ĐT : 0972.311.481 Trang 14
Write (' b = '); Readln( b );
Write (' Phep tinh thuc hien la (+ - * /) : ');
Readln( Pt );
If Pt = '+’ Then T :=a + b;
If Pt = '-’ Then T:=a - b;
If Pt = '*’ Then T :=a * b;
If Pt = '/’ Then T :=a / b;
Write ( a, pt, b, ' = ', T );
Readln;
END.
Bài 13: viêt chương trình nhập và tâm và bán kính của đường tròn và môt điểm bất
kỳ, xác định vị trí của điểm đó với đường tròn trên
Prgram vi_tri_tuong_doi;
Var xi, yi, R, Xa, Ya, IA : real;
Begin
Writeln(‘nhap hoanh do tam duong tron’); realnd(xi);
Writeln(‘nhap tung do tam duong tron’); realnd(yi);
Writeln(‘nhap hoanh do diem A’); realnd(xa);
Writeln(‘nhap tung do diem A’); realnd(Ya);
Writeln(‘nhap ban kinh duong tron’); realnd(R);
IA:=sqrt(sqr(xi-xa)+sqr(yi-ya));
If IA>R then Writeln(‘Diem A nam ngoai duong tron’);
If IA=R then Writeln(‘Diem A nam tren duong tron’);
If IA<R then Writeln(‘Diem A nam trong duong tron’);
Readln
End.
Trần Văn Chung trường giáo viên trường THPT Hoàng Văn Thụ Nha Trang
ĐT : 0972.311.481 Trang 15
Trần Văn Chung trường giáo viên trường THPT Hoàng Văn Thụ Nha Trang
ĐT : 0972.311.481 Trang 16
PHẦN II : CÂU LỆNH CÓ CẤU TRÚC
Bài 12. Cho số tự nhiên n, hãy lập trình để tính các tổng sau :
a. 1 + 1/22 + 1/32 + + 1/n2
b. 1 + 1/2! + 1/3! + + 1/n!
Program Caua;
Uses crt;
Var n, i : Word;
S : Real;
BEGIN
Clrscr;
Write (' Nhap n : '); Readln (n);
S :=0;
For i :=1 To n Do
S :=S + 1 / sqr(i);
Writeln ('Tong la S = ', S : 6 : 2);
Readln
END.
Program Cau_b;
Uses crt;
Var n, i, j, p : Word;
S : Real;
BEGIN
Clrscr;
Write (' Nhap n : '); Readln(n);
p :=1; s :=0;
For i :=1 To n Do
Begin
p :=p * i; S :=S + 1 / p;
End;
Trần Văn Chung trường giáo viên trường THPT Hoàng Văn Thụ Nha Trang
ĐT : 0972.311.481 Trang 17
Writeln ('Tong la S = ', S : 6 : 2);
Readln
End.
Câu 13a : Lập trình tính tổng :
A = 1 + 1/2 + 1/3 + + 1/n
ở đây n là số tự nhiên được nhập vào từ bàn phím.
Program tinhtong;
Uses Crt;
Var i, n : Integer; tong : Real;
BEGIN
Clrscr;
Write (' Cho so tu nhien n : '); Readln (n);
tong :=0; i :=1;
While i <= n Do
Begin
tong:=tong + 1/i; i:=i + 1;
End;
Writeln (' Tong can tim la : ', tong : 8 : 2 );
Readln;
END.
Câu 13b : Tính số hạng thứ n của dãy FIBONAXI biết n nhập từ bàn phím và quy
luật dãy như sau F0=0; F1=1 và Fn=Fn-1+Fn-2
Program FIBONAXI;
Uses crt;
Var A : array[0..1000] of integer;
n : integer;
Begin
Clrscr;
Trần Văn Chung trường giáo viên trường THPT Hoàng Văn Thụ Nha Trang
ĐT : 0972.311.481 Trang 18
Writeln(‘can so hang thu may cua day Fibonaxi’); readln(n);
A[0] :=0; A[1] :=1;
For i :=2 to n do
A[i] :=A[i-1]+A[i-2];
Writeln(‘so hang thu’, n,’cua day fibonaxi la’, A[n]);
Readln
End.
Câu 14a : Tính hàm lũy thừa an, ở đây a thực và n tự nhiên được nhập vào từ bàn
phím.
Program Tinhgiaithua;
Uses Crt;
Var i, n : Integer;
a, giatri : Real;
BEGIN
Clrscr;
Write (' nhap co so a = : '); Readln(a);
Write (' nhap so mu n = : '); Readln(n);
i :=1; giatri :=1;
While i <= n Do
Begin
giatri :=giatri * a;
i:=i+1;
End;
Writeln(' a mu n bang : ', giatri : 8 : 2 );
Readln;
END.
Trần Văn Chung trường giáo viên trường THPT Hoàng Văn Thụ Nha Trang
ĐT : 0972.311.481 Trang 19
Bài 14b. Viết chương trình nhập vào hai số nguyên dương a, b bất kỳ, hiển thị ước chung
lớn nhất của hai số và bội chung nhỏ nhất của hai số đó.
Program UC_BC;
Uses crt;
Var a, b, uc, bc : integer;
BEGIN
Clrscr;
Writeln(‘nhap so thu nhat ’); readln(a);
Writeln(‘nhap so thu hai ’); readln(b);
T:=a*b;
While (ab) do
Begin
If a>b then a :=a-b else b :=b-a;
End;
uc :=a; bc :=(T)/uc;
Writeln(‘uoc chung lon nhat cua ‘,a,’ va ’,b,’ la ‘,uc);
Writeln(‘boi chung nho nhat cua ‘,a,’va ’,b,’ la ‘,bc);
Readln
END.
Câu 15 : Chương trình nhập mảng một chiều gồm n phần tử n<=100 kiểu nguyên rồi
thực hiện
a. Đếm số lượng phần tử dương cho kết quả ra màn hình
b. Tính tổng các phần tử dương trong mảng.
c. Tính trung bình các phần tử trong mảng.
d. Tính trung bình các phần tử dương trong mảng
e. Tìm vị trí đầu tiên của phần tử =k với k nhập từ bàn phím.
f. Tìm vị trí phần tử =k với k nhập từ bàn phím, nếu có nhiều phần tử =k thì hiển
thị ra màn hình tất cả vị trí phần tử=k đó.
g. Đếm số lượng phần tử là nguyên tố trong mảng.
h. Kiểm tra mảng vừa nhập có phải là cấp số cộng hay không?
i. Sắp xếp mảng theo thứ tự tăng dần các phần tử và hiển thị ra màn hình mảng
tăng đó
Trần Văn Chung trường giáo viên trường THPT Hoàng Văn Thụ Nha Trang
ĐT : 0972.311.481 Trang 20
Prgram BAI_15;
Uses crt;
Var A : array[1..100] of integr;
i, k,demd, s, demnt, tg,n, d, dd,j : integer;
tb, tbm : real;
Begin
Clrscr;
Writeln(‘nhap so luong phan tu cua mang’); readln(n);
Writeln(‘----------------------nhap mang--------------------------------------‘);
For i :=1 to n do
Begin
Writeln(‘nhap so hang thu’, i, ‘A[‘,i,’]= ‘);
Readln(A[i]);
End;
{-------------------------------------------Cau a----------------------------------}
demd :=0;
For i :=1 to n do if A[i]>0 then demd :=demd+1;
Writeln(‘ so luong phan tu duong cua mang la’, demd);
{-----------------------------------Cau b-----------------------------------------}
s :=0;
For i :=1 to n do if A[i]>0 then s :=s+ A[i];
Writeln(‘ tong cac phan tu duong cua mang la’, s);
{-----------------------------------Cau c-----------------------------------------}
s :=0;
For i :=1 to n do s :=s+A[i];
tbm :=s/n;
Writeln(‘ trung binh cac phan tu cua mang la ’, tbm : 6 : 2);
Trần Văn Chung trường giáo viên trường THPT Hoàng Văn Thụ Nha Trang
ĐT : 0972.311.481 Trang 21
{----------------------------------------Cau d-------------------------------------}
s :=0; demd :=0;
For i :=1 to n do
Begin
if A[i]>0 then s :=s+ A[i]; demd :=d+1;
End;
tb :=s/demd;
Writeln(‘ trung binh cac phan tu duong cua mang la ’, tb : 6 : 2);
{----------------------------------------Cau e-------------------------------------}
Writeln(‘ nhap gia tri can tim vi tri ’); readln(k);
J :=1;
While (jk) do j :=j+1;
If j> n then Writeln(‘khong co gia tri ’, k, ’ trong mang’)
Else Writeln(k, ‘ nam o vi tri thu ’, j,’ trong mang’);
{------------------------------------Cau f---------------------------------------------}
Writeln(‘ nhap gia tri can tim vi tri ’); readln(k);
J :=1; writeln(‘cac vi tri xuat hien cua ’,k,’ trong mang la’);
While (j<=n) do
Begin
If A[j]=k then write(j : 5);
j :=j+1;
end;
{----------------------------------------Cau g---------------------------------------------}
Demnt :=0;
For i:=1 to n do
Begin
j:=2;
While( j0) do
Begin
Trần Văn Chung trường giáo viên trường THPT Hoàng Văn Thụ Nha Trang
ĐT : 0972.311.481 Trang 22
J:=j+1;
End;
If j> A[i] - 1 then demnt :=demnt+1;
End;
Writeln(‘ so luong phan tu la nguyen to la’, demnt);
{----------------------------------------Cau h-------------------------------------------}
d :=A[2]-A[1]; j:=3;
While (j<=n) And (A[j]-A[j-1]=d) do j:=j+1;
if j>n then Writeln(‘ mang vua nhap la cap so cong’)
else Writeln(‘ mang vua nhap khong phai la cap so cong’);
{------------------------------------------Cau i-----------------------------------------------}
For i :=1 to n do
For j :=i+1 to n-1 do
If A[j]>A[j+1] then
Begin {doi vi tri hai phan tu A[j] va A[j+1]}
tg :=A[j];
A[j] :=A[j+1];
A[j+1] :=tg;
End;
Writeln(‘mang sau khi duoc sap xep la’);
For i :=1 to n do write(A[i] : 5);
Readln
END.
Bài 15 b: Viết chương trình nhập vào mảng gồm n phần tử (n<=100) tìm và hiển thị
vị trí phần tử có giá trị lớn nhât, sau đó sắp xếp các phần tử theo thứ tự tăng dần và
hiển thị các phần tử sắp xếp đó ra màn hình.
Program Tim_vi_tri;
uses crt;
var a : array[1..100] of integer;
var i,n,j, tg,max, vt : integer;
begin
Trần Văn Chung trường giáo viên trường THPT Hoàng Văn Thụ Nha Trang
ĐT : 0972.311.481 Trang 23
clrscr;
write(' nhap so phan tu cua mang ');
readln(n);
writeln(' moi nhap cac phan tu cua mang ');
for i:=1 to n do
begin
write('A', i,']= ');
readln(a[i]);
end;
Max :=a[1]; vt :=1;
For i :=1 to n do
begin
If A[i]>max then
Begin
Max :=a[i]; vt :=i;
End;
End;
Writeln('gia tri lon nhat la ', max, ' nam o vi tri thu ',vt);
for i:=1 to n-1 do
for j :=i+1 to n do
if a[i]>a[j] then
Begin
tg :=a[i];
a[i] :=a[j];
a[j] :=tg;
End;
Trần Văn Chung trường giáo viên trường THPT Hoàng Văn Thụ Nha Trang
ĐT : 0972.311.481 Trang 24
writeln(' day sau khi sap xep la ');
for i :=1 to n do
write( a[i] : 4);
readln;
End.
Bài 15C: Viết chương trình nhập mảng gồm n phần tử kiểu nguyên(n<=100) và cho
ra màn hình phần tử xuât hiện nhiều nhất và số lần xuât hiện của nó trong mảng
Program Tansuat;
Uses crt;
var i,k,j,n,max:integer;
b,st: array [1..100] of integer;
begin
clrscr;
write('Nhap so pt:');readln(n);
for i:=1 to n do
Begin
write('st[',i,']=');readln(st[i]);
End;
b[i]:=0;
for i:=1 to n do
for j:=i to n do
if st[i]=st[j] then inc(b[i]);
max:=b[1];
for i:=1 to n do if b[i]>max then max:=b[i];
write('--So xuat hien nhieu nhat la--');
for i:=1 to n do
if max=b[i] then write(st[i],' ');
write('---xuat hien--- ',max,' –lan--');
Trần Văn Chung trường giáo viên trường THPT Hoàng Văn Thụ Nha Trang
ĐT : 0972.311.481 Trang 25
Readln
End.
Bài 16. Viết chương trình nhập mảng gồm n (n<=100) phần tử rồi chèn vào một số
bất kỳ vào một vị trí nào đó trong mảng, số cần chèn và vị trí chèn nhập từ bàn
phím.
Program Chen;
Uses crt;
Var i,spt, so,vitri : Integer;
A : Array[1..100] Of Integer;
Begin
Clrscr;
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');
Trần Văn Chung trường giáo viên trường THPT Hoàng Văn Thụ Nha Trang
ĐT : 0972.311.481 Trang 26
For i :=1 To spt Do Write(a[i] : 6);
Readln
End.
Bài 17. Viết chương trình nhập mảng gồm n (n<=100)phần tử rồi xóa đi một phần tử
nào đó có vị trí nhập từ bàn phím
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');
Trần Văn Chung trường giáo viên trường THPT Hoàng Văn Thụ Nha Trang
ĐT : 0972.311.481 Trang 27
Writeln('- -----------------------------------');
Writeln;
For i:=1 to spt Do Write(a[i] : 6);
Writeln; Writeln;
Writeln(' Bam phim de ket thuc ');
Readln
End.
Bài 18. Viết chương trình nhập mảng gồm n (n<=100)phần tử rồi xóa đi những phần
tử trùng nhau trong mảng và in ra màn hình phần tử sau khi đã bỏ bớt.
Program Bo_so_trung;
Uses crt;
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;
Trần Văn Chung trường giáo viên trường THPT Hoàng Văn Thụ Nha Trang
ĐT : 0972.311.481 Trang 28
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 de ket thuc ');
Readln
End.
Bài tập phần xâu :
Bài tập1: Chương trình nhập từ bàn phím các ký tự chương trình đếm số lần xuất
hiện của mỗi ký tự
Program Dem_so_lan;
Uses Crt ;
Var a : Array[ 'A'..'Z' ] of integer;
ch : char ;
i : byte ;
BEGIN
Clrscr ;
For ch :='A' to 'Z' Do a[ch] :=0 ;
Writeln (' Go phim 50 lan ') ;
Trần Văn Chung trường giáo viên trường THPT Hoàng Văn Thụ Nha Trang
ĐT : 0972.311.481 Trang 29
For i :=1 To 50 Do
Begin
ch :=Readkey ;
ch :=Upcase(ch) ;
a[ch] :=a[ch] + 1 ;
End;
Writeln (' So lan xuat hien cac ki tu la : ') ;
For ch :='A' to 'Z' do
If a[ch] > 0 Then
Writeln (ch ‘xuat hien’, a[ch] : 4, ' lan. ');
Readln ;
END.
Bài tập 2: Nhập xâu cho trước kiểm tra có phải xâu đối xứng hay không?
Program Xau-doi-xung;
Uses Crt;
Var St : string;
dx : Boolean;
i, len : byte;
BEGIN
Clrscr;
Write(' Nhap xau St = '); Readln(St);
dx:=True; i :=1; len:=Length(St);
While dx And (i<=(len div 2)) do
Begin
dx :=(St[i] = St[len - i+1]);
I :=i+1;
Trần Văn Chung trường giáo viên trường THPT Hoàng Văn Thụ Nha Trang
ĐT : 0972.311.481 Trang 30
End;
If dx then Write(' St la xau doi xung ')
Else Write(St,’ khong phai la xau doi xung ') ;
Readln;
END.
Bài tập 3: Viết chương trình nhập vào một xâu, sau đó xuất ra xâu sau khi đã xóa
hết ký tự số.
Program xoa_ky_tu_so;
Uses crt;
Var I,k : byte;
S : string;
Ch : char;
Begin
Clrscr;
Writeln(‘nhap xau ‘); readln(s);
K :=length(s); i :=1;
For ch :=’0’ to ‘9’ do
Begin
While (i0 do
Begin
Delete(s,pos(ch,s),1);
i :=i+1;
End;
End;
Writeln(‘xau sau khi xoa het so la : ’,s);
Readln
End.
Trần Văn Chung trường giáo viên trường THPT Hoàng Văn Thụ Nha Trang
ĐT : 0972.311.481 Trang 31
Bài 4: Viết chương trình nhập vào xâu ký tự và xuất ra màn hình xâu sau khi đã bỏ
hết ký tự trắng dư thừa.
Program xoa_ky_tu_trang;
Uses crt;
Var I,k : byte;
S : string;
Begin
Clrscr;
Writeln(‘nhap xau’); Readln(s);
While (s[1]=’ ‘ do Delete(s,1,1);
While (s[lengh(s)] =’ ‘ do Delete(s,length(s),1);
While pos(‘ ‘,s)0 do Delete(s,pos(‘ ‘,s),1);
Writeln(‘ xau sau khi xoa het ky tu trang du thua la’, s);
Readln
End.
Bài 5: Viết chương tình nhập vào một xâu, sau đó xóa hết ký tự trắng dư thừa và đổi
các ký tự đầu của mỗi từ thành chữ hoa.
Program Doi_chu;
Uses crt;
Var I,k : byte;
S : string;
Begin
Clrscr;
Writeln(‘nhap xau’); Readln(s);
While (s[1]=’ ‘ do Delete(s,1,1);
While (s[lengh(s)] =’ ‘ do Delete(s,length(s),1);
While pos(‘ ‘,s)0 do Delete(s,pos(‘ ‘,s),1);
Trần Văn Chung trường giáo viên trường THPT Hoàng Văn Thụ Nha Trang
ĐT : 0972.311.481 Trang 32
K :=length(s);
For i :=1 to k do if ( s[i]=’ ‘ )And( s[i+1]’ ‘) do upcase(s[i+1];
Writeln(‘xau sau khi dieu chinh la’,s);
Readln
End.
Bài 6: Viết chương trình nhập vào một xâu, đếm xem trong xâu có bao nhiêu ký tự in
hoa?
Program Dem_chu;
Uses crt;
Var I,k,d : byte;
S : string;
Begin
Clrscr;
Writeln(‘nhap xau’); Readln(s);
K:= length(s); d:=0;
For i:=1 to k do if S[i]=upcase(S[i]) then d:=d+1;
Writeln(‘so ky tu hoa trong xau la’, d);
Readln
End.
Bài 7: Viết chương trình nhập vào một xâu, đếm xem trong xâu có bao nhiêu ký số?
Program Dem_so;
Uses crt;
Var I,k,d : byte;
S : string;
Begin
Clrscr;
Writeln(‘nhap xau’); Readln(s);
Trần Văn Chung trường giáo viên trường THPT Hoàng Văn Thụ Nha Trang
ĐT : 0972.311.481 Trang 33
K:= length(s); d:=0;
For i:=1 to k do if (S[i]>’0’) and (S[i]<’9’) then d:=d+1;
Writeln(‘so ky tu so trong xau la’, d);
Readln
End.
Bài tập phần bản ghi
Bài tập 1: Chương trình nhập danh sách học sinh gồm Họ tên, tuổi, lớp của học
sinh,in ra danh sách vừa nhập
Program danh_sach;
Uses Crt;
Const n=15;
Type Danhsach=record
holot : string[25];
ten : string[10];
tuoi : 0..99;
lop : string[3];
End;
Var ds : array [1..n] of Danhsach;
i : byte;
BEGIN
ClrScr;
Writeln('Hay nhap danh sach hoc sinh : ');
Writeln;
For i :=1 to n do
Begin
Writeln('Thong tin hoc sinh thu ',i);
Trần Văn Chung trường giáo viên trường THPT Hoàng Văn Thụ Nha Trang
ĐT : 0972.311.481 Trang 34
Write('Cho ho lot : '); Readln(ds[i].holot);
Write('Cho ten : '); Readln(ds[i].ten);
Write('Cho tuoi : '); Readln(ds[i].tuoi);
Write('Cho lop : '); Readln(ds[i].lop);
Writeln;
End;
Writeln('Danh sach hoc sinh : ');
For i :=1 to n do
With ds[i] do Writeln(holot : 20,ten : 10,tuoi : 4,lop : 5);
Writeln;
Write('Bam Enter de ket thuc...');
Readln;
END.
Bài tập 2: Chương trình nhập danh sách học sinh gồm Họ tên, tuổi, lớp. Chương
trình in ra danh sách sau khi sắp xếp theo thứ tự tăng dần.
Program sap_xep;
Uses Crt;
Const n=5;
Type
Danhsach=record
holot : string[25];
ten : string[10];
tuoi : 0..99;
lop : string[3];
End ;
Var ds : array [1..20] of Danhsach;
i,j : byte;
Trần Văn Chung trường giáo viên trường THPT Hoàng Văn Thụ Nha Trang
ĐT : 0972.311.481 Trang 35
f : file of Danhsach;
Procedure Doi(i,j : byte);
Var tg : Danhsach;
Begin
tg :=ds[i];
ds[i] :=ds[j];
ds[j] :=tg;
End;
BEGIN
ClrScr;
Writeln('Nhap danh sach hoc sinh tu file data.dat : ');
Writeln;
Assign(f,'data.dat'); Reset(f);
For i :=1 to n do Read(f,ds[i]);
Close(f);
For i :=1 to n-1 do
For j :=i+1 to n do
begin
If (ds[i].ten>ds[j].ten) then Doi(i,j)
Else
If (ds[i].ten=ds[j].ten)And(ds[i].holot>ds[j].holot) then Doi(i,j);
end;
Writeln('Danh sach hoc sinh : ');
For i:=1 to n do
With ds[i] do Writeln(holot : 20,ten : 11,tuoi : 4,lop : 5);
Writeln;
Trần Văn Chung trường giáo viên trường THPT Hoàng Văn Thụ Nha Trang
ĐT : 0972.311.481 Trang 36
Write('Bam Enter de ket thuc...');
Readln;
END.
Bài tập 3 : Thông tin về mỗi học sinh là một bản ghi gồm các trường :
Họđệm : một xâu 25 kí tự.
Tên : một xâu 10 kí tự.
Tuổi : một số nguyên hai chữ số.
Lớp : một xâu hai chữ số và một chữ cái viết hoa
Một file bản ghi chứa một danh sách một lớp gồm 20 học sinh. Hãy lập chương
trình hiển thị danh sách lên màn hình, mỗi người một dòng.
Program Nhaphocsinh;
Uses Crt; Const n=5;
Type Danhsach=record
holot : string[25];
ten : string[10];
tuoi : 0..99;
lop : string[3];
end;
Var ds : Danhsach;
i : byte;
File đính kèm:
BAI_TAP_TIN_11_NANG_CAOBT_20150727_120932.pdf



