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

pdf52 trang | Chia sẻ: dung89st | Lượt xem: 3391 | Lượt tải: 3download
Bạn đang xem trước 20 trang mẫu tài liệu 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, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
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:

  • pdfBAI_TAP_TIN_11_NANG_CAOBT_20150727_120932.pdf