SlideShare a Scribd company logo
1 of 45
Download to read offline
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 1
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
Nhằm giúp các bạn học sinh lớp 11 tiếp cận với ngôn ngữ lập trình Pascal một cách dễ
dàng và vận dụng vào các ngôn ngữ lập trình khác trong tin học, tôi sưu tầm và biên soạn một số
bài toán cơ bản đến nâng cao có trong chương trình của lớp 11 không phân ban. Các chương
trình nhằm mục đích tham khảo cho các bạn ham mê tin học và là tài liệu chuẩn bị cho các bài
kiểm tra về môn tin học.
Nha trang tháng 3/2011
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 2
Phần I: CÁC BÀI TẬP CƠ BẢN
Bài 1: Tìm giá trị lớn nhất trong 4 số a, b, c, d (a, b, c, được nhập từ bàn phím).
Program Program TIM_SO_LON_NHAT;
Uses crt;
Var a,b,c,d,max: real;
BEGIN
Clrscr;
Writeln('TIM SO LON NHAT TRONG BON SO A, B, C, D');
Writeln('---------------------------------------------------------------');
Write('Nhap a='); Readln(a);
Write('Nhap b='); Readln(b);
Write('Nhap c='); Readln(c);
Write('Nhap d='); Readln(d); max:=a;
If b>max then max:=b; If c>max then max:=c; if d>max then max:=d;
Writeln('So lon nhat la: ',max: 4: 2);
Readln;
END.
Bài 1B: Viêt chương trình nhập ba số dương bất kỳ, kiểm tra ba số vừa nhập có phải là ba
cạnh của tam giác không? Nếu phải thì tính chu vi và diện tích của tam giác đó.
PROGRAM Kiem_tra_tam_giac;
Uses crt;
Var a,b,c,cv,s,p: real;
BEGIN
Clrscr;
Writeln(‘nhap so thu nhat’); readln(a);
Writeln(‘nhap so thu hai’); readln(b);
Writeln(‘nhap so thu ba’); readln(c);
If(a+b>c) And(a+c>b) And(b+c>a) then
Begin
Cv:=a+b+c; p:=c/2; s:=sqrt(p*(p-a)*(p-b)*(p-c));
Writeln(‘ba so vua nhap la ba canh cua tam giac’);
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 3
Writeln(‘ chu vi cua tam gia la’, cv: 4: 2, ‘ dien tich cua tam giac la’, s:6:2);
End
Else Writeln(‘ba so vua nhap khong phai la ba canh cua tam giac’);
Readln
End.
Bài 1C: Viết chương trình nhập độ cao h so với mặt đất của một vật rơi tại nơi có gia tốc g,
Tính và hiển thị vận tốc của vật tại mặt đất.
Program Tinh_van_toc;
Uses crt;
Var h, v,g: real;
Begin
Clrscr;
Writeln(‘nhap do cao cua vat’); readln(h);
Writeln(‘nhap gia toc’); readln(g);
V:=sqrt(2*g*h);
Writeln(‘van toc tai mat dat la’, v: 6: 2);
Readln
End.
Bài 2: Viết chương trình giải phương trình ax+b=0
Program GIAI_PHUONG_TRINH_BAC_NHAT;
Uses crt;
Var a,b,x: real;
Begin
Clrscr;
Writeln('GIAI PHUONG TRINH BAC NHAT: AX + B=0');
Writeln('------------------------------------------------------------');
Write ('Nhap a= '); readln(a);
Write ('Nhap b= '); readln(b);
If(a=0) then
If(b=0) then Writeln(' Phuong trinh co vo so nghiem')
Else writeln(' Phuong tring vo nghiem')
Else Writeln('Phuong trinh co nghiem x=',-b/a: 4: 2);
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 4
Readln
End.
Bài 3: Viết chương trình giải bất phương trình bậc 1 (ax + b > 0)
Program BAT_PHUONG_TRINH_BAC_I;
Uses crt;
Var a,b: real;
Begin
Clrscr;
Writeln('GIAI BAT PHUONG TRINH BAC NHAT: AX + B>=0');
Writeln('----------------------------------------------------------------------');
Write('nhap a='); readln(a);
Write('nhap b='); readln(b);
If a<>0 then
If a>0 then Writeln('Bat phuong trinh co nghiem: x>=',-b/a: 4: 2)
Else Writeln('Bat phuong trinh co nghiem: x<=',-b/a: 4: 2)
Else
If b>=0 then Writeln('Bat phuong trinh co vo so nghiem')
Else writeln('Bat phuong trinh vo nghiem');
Readln
End.
Bài 4: Viết chương trình giải phương trình (ax2 + bx + c =0)
Program GIAI_PHUONG_TRINH_BACII;
Uses crt;
Var a,b,c,d,x,x1,x2: real;
Begin
Clrscr;
Writeln('GIAI PHUONG TRINH BAC II: ');
Writeln('-------------------------------------------');
Write('Nhap he so a='); readln(a);
Write('Nhap he so b='); readln(b);
Write('Nhap he so c='); readln(c);
If a=0 then
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 5
If b=0 then
If c=0 then
Writeln('Phuong trinh co vo so nghiem')
Else Writeln('Phuong trinh vo nghiem')
Else Writeln('Phuong trinh co mot nghiem: x=',-c/b: 4: 2)
Else
Begin
d:=b*b-4*a*c;
If d=0 then Writeln('Phuong trinh co nghiem kep: x=',-b/(2*a): 4: 2)
Else if d<0 then Writeln(‘phuong trinh vo nghiem’)
Else
Begin
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
Write('Phuong trinh co hai nghiem: ‘);
Writeln(‘ x1=',x1: 4: 2,' va x2=',x2: 4: 2);
End;
End;
Readln
End.
Bài 5: Giải hệ phương trình tuyến tính:
ax + by = m
cx + dy = n
Program GIAI_HE_HAI_AN;
Uses crt;
Var a,b,c,d,m,n: real;
dx,dy,dd: real;
BEGIN
Clrscr;
Writeln('GIAI HE HAI AN: ');
Writeln('----------------------------------');
Write('Nhap a='); readln(a);
Write('Nhap b='); readln(b);
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 6
Write('Nhap c='); readln(c);
Write('Nhap m='); readln(m);
Write('Nhap n='); readln(n);
dd:=a*d-b*c; dx:=m*d-b*n; dy:=a*n-c*m; If dd=0 then
If (dx=0) And (dy=0) then
Writeln('He vo so nghiem hoac vo nghiem')
Else writeln('He vo nghiem')
Else
Begin
Write('He co nghiem: '); Writeln('x=',dx/dd: 4: 2,' va y=',dy/dd: 4: 2);
End;
Readln
End.
Bài 6: Nhập vào thời gian 1 công việc nào đó là x giây. Hãy chuyển đổi và viết ra màn
hình số thời gian trên dưới dạng bằng bao nhiêu giờ, bao nhiêu phút, bao nhiêu giây.
Program DOI_GIO_PHUT_GIAY;
Uses crt;
Var gio, phut,giay, x: longint;
Begin
Clrscr;
Writeln('DOI SANG GIO PHUT GIAY');
Writeln('--------------------------------------');
Write('Nhap vao so giay: ');
readln(x);
gio:=x div 3600; x:=x mod 3600; phut:=x div 60; x:=x mod 60;
Writeln('Ket qua = ', gio,'gio: ', phut, 'phut: ', x, 'giay');
Readln;
End.
Bài 7: Nhập vào tâm và bán kính của một đường tròn. Sau đó nhập vào một điểm
A(x, y) bất kì và kiểm tra xem nó có thuộc đường tròn hay không?
Program KIEM_TRA_DIEM_THUOC_DUONG_TRON;
Uses crt;
Var x0,y0,xa,ya,d,r: real;
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 7
Begin
Clrscr;
Writeln('KIEM TRA DIEM THUOC DUONG TRON: ');
Writeln('--------------------------------------------------------');
Write('Nhap ban kinh R= '); readln(r);
Write('Nhap hoanh do tam duong tron = '); readln(x0);
Write('Nhap tung do tam duong tron = '); readln(y0);
Write('Nhap hoanh do diem a = '); readln(xa);
Write('Nhap tung do diem a = '); readln(ya);
d:=SQRT(SQR(xa-x0)+SQR(ya-y0));
If r=d then Writeln('Diem A nam tren duong tron')
Else
If d>r then Writeln('Diem A nam ngoai duong tron')
Else Writeln('Diem A nam trong duong tron');
Readln
End.
Bài 7 b: Viết chương trình nhập vào tâm và bán kính hai đường tròn, xác định vị
trí tương đối của hai đường tròn đó.
Program Khao_Sat_Hai_Duong_Tron;
Var R 1, R2 ,x1, y1,x2,y2, Kc, Tong, Hieu: Real;
BEGIN
Writeln('KHAO SAT 2 DUONG TRON');
Writeln('----------------------------------------------------');
Writeln;
Writeln('*Duong tron thu nhat');
Write(' +Ban kinh: '); Readln(R1);
Write(' +Toa do x: '); Readln(x1);
Write(' +Toa do y: '); Readln(y1);
writeln;
Writeln('*Duong tron thu hai');
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 8
Write(' +Ban kinh: '); Readln(R2);
Write(' +Toa do x: '); Readln(x2);
Write(' +Toa do y: '); Readln(y2);
Kc:=Sqrt(Sqr(x1 – x2) + Sqr(y1 – y2));
Tong:=R1 + R2; Hieu:=ABS(R1 – R2);
If (Kc = 0) AND (Hieu = 0) Then
Writeln('-Hai duong tron trung nhau')
Else
If (Hieu > Kc) Then
Writeln('-Hai duong tron long nhau')
Else If (Tong = Kc) OR (Hieu = Kc) Then
Writeln('-Hai duong tron tiep xuc nhau')
Else If (Tong > Kc) AND (Hieu < Kc) Then
Writeln('-Hai duong tron cat nhau ')
Else If (Tong < Kc) Then
Writeln('-Hai duong tron o ngoai nhau-');
Readln
End.
Bài 8: Tính xy ( Với x, y là số thực).
Program X_LUYTHUA_Y;
Uses crt;
Var lt, x,y,z: real;
Begin
Clrscr;
Writeln(‘TINH X LUY THUA Y: ’);
Writeln('----------------------------------');
Write('Nhap x = '); readln(x); Write('nhap y = '); readln(y);
If x>=0 then
Begin
z:=exp(y*ln(x));
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 9
Writeln('x ^ y = ',z: 4: 2);
End
Else
Writeln('Khong tinh duoc do x la so am');
Readln;
End.
Bài 9: Tính n!
Program TINH_N_GIAI_THUA;
Uses crt;
Var i,n,gt: integer;
Begin
Clrscr;
Writeln(' TINH N GIAI THUA: ');
Writeln('----------------------------------');
Write('Nhap n ='); readln(n); gt:=1;
For i:=1 to n do gt:=gt*i; Writeln(n, '!= ',gt);
Readln;
End.
Bài 10**: Đọc ngày tháng năm, sau đó viết ra màn hình đó là ngày thứ mấy trong tuần.
Program Ngaythang;
Uses crt;
Var Thu, Ngay, Thang: Byte;
Nam: Integer;
BEGIN
Clrscr;
Write (' Doc Ngay: '); Readln ( Ngay );
Write (' Doc Thang: '); Readln ( Thang );
Write (' Doc Nam: '); Readln ( Nam );
Nam:=1900 + ( Nam mod 1900 );
If Thang < 3 Then
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 10
Begin
Thang:=Thang + 12; Nam:=Nam - 1;
End;
Thu:=Abs ( Ngay + Thang * 2 + ( Thang + 1 ) * 3 div 5 + Nam + Nam div 4 ) mod 7;
Case Thu Of
0: Writeln (‘ngay ’,ngay,’ thang ',thang,’ nam ’,nam,’ la ngay Chu Nhat ');
1: Writeln ('ngay ’,ngay,’ thang ',thang,’ nam ’,nam,’ la ngay Thu Hai ');
2: Writeln ('ngay ’,ngay,’ thang ',thang,’ nam ’,nam,’ la ngay Thu Ba ');
3: Writeln (‘ngay ’,ngay,’ thang ',thang,’ nam ’,nam,’ la ngay Thu Tu ');
4: Writeln (‘ngay ’,ngay,’ thang ',thang,’ nam ’,nam,’ la ngay Thu Nam ');
5: Writeln ('ngay ’,ngay,’ thang ',thang,’ nam ’,nam,’ la ngay Thu Sau ');
6: Writeln ('ngay ’,ngay,’ thang ',thang,’ nam ’,nam,’ la ngay Thu Bay ');
End;
Readln;
END.
Bài 11: Viết chương trình:
Nhâp số báo danh Nhập điểm văn, toán, ngoại ngữ
In ra màn hình dưới dạng:
 Phiếu điểm:
 Số báo danh:
 Điểm văn:
 Điểm toán:
 Điểm ngoại ngữ:
 Tổng số điểm:
Bạn đã trúng tuyển ( hoặc Bạn đã không trúng tuyển ) với điều kiện Tổng số điểm >= 15
hay ngược lại.
Program INPHIEU;
Uses Crt;
Var SBD: Integer;
Van, Toan, Ngoaingu, Tongdiem: Real;
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 11
BEGIN
Clrscr;
Write (' So bao danh: '); Readln( SBD );
Write (' Diem toan: '); Readln( Toan );
Write (' Diem ngoai ngu: '); Readln( Ngoaingu );
Write (' Diem van: '); Readln ( Van );
Tongdiem:=Toan + Van + Ngoaingu;
Writeln (' Phieu Bao Diem ');
Writeln (' So bao danh: ', SBD );
Writeln (' Diem van: ', Van );
Writeln (' Diem toan: ', Toan );
Writeln (' Diem ngoai ngu: ', Ngoaingu);
Writeln (' Tong diem: ', 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;
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 12
Var a, b, T: Real;
Pt: Char;
BEGIN
Clrscr;
Write (' a = '); Readln( a );
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.
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 13
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 THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 14
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 THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 15
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 THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 16
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);
While (a<>b) do
Begin
If a>b then a:=a-b else b:=b-a;
End;
uc:=a; bc:=(a*b)/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 THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 17
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);
{----------------------------------------Cau d-------------------------------------}
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 18
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 (j<=n) And (A[j]<>k) 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( j<=A[i] - 1 ) And (A[i] mod j<>0) do
Begin
J:=j+1;
End;
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 19
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
clrscr;
write(' nhap so phan tu cua mang ');
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 20
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;
writeln(' day sau khi sap xep la ');
for i:=1 to n do
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 21
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--');
Readln
End.
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 22
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');
For i:=1 To spt Do Write(a[i]: 6);
Readln
End.
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 23
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');
Writeln('- -----------------------------------');
Writeln;
For i:=1 to spt Do Write(a[i]: 6);
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 24
Writeln; Writeln;
Writeln(' Bam phim <Enter> 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;
If j < i Then
Begin
For k:=i to n-1 Do
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 25
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.
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 ') ;
For i:=1 To 50 Do
Begin
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 26
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;
End;
If dx then Write(' St la xau doi xung ')
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 27
Else Write(St,’ khong phai la xau doi xung ') ;
Readln;
END.
Bài tập 3: Chương trình nhập vào họ tên của một người sau đó xóa hết ký tự trắng
dư thừa
Uses crt;
Const Chu=['a'..'z'];
Var Hoten: string;
i,len: byte;
BEGIN
Clrscr;
Write('Ho ten='); Readln(Hoten);
Len:=length(Hoten);
If Hoten[1] in Chu then Hoten[1]:=Upcase(Hoten[1]);
For i:=2 to len do
If (Hoten[i-1]=#32)And(Hoten[i] in Chu) then
Hoten[i]:=Upcase(Hoten[i]);
Write('Ho ten sau khi dieu chinh la: ', Hoten);
Readln;
END.
Bài tập 4: 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;
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 28
Begin
Clrscr;
Writeln(‘nhap xau ‘); readln(s);
K:=length(s); i:=1;
For ch:=’0’ to ‘9’ do
Begin
While (i<=k) And (pos(ch,s))<>0 do
Begin
Delete(s,pos(ch,s),1);
i:=i+1;
End;
End;
Writeln(‘xau sau khi xoa het so la: ’,s);
Readln
End.
Bài 5: 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);
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 29
Writeln(‘ xau sau khi xoa het ky tu trang du thua la’, s);
Readln
End.
Bài 6: 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);
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 tập phần bản ghi, file
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
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 30
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);
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;
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 31
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;
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;
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 32
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;
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.
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 33
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;
f: file of Danhsach;
BEGIN
ClrScr;
Writeln('Danh sach hoc sinh tu file bai2.dat');
Writeln;
Assign(f,'bai2.dat'); Reset(f);
For i:=1 to n do
Begin
Read(f,ds);
With ds do Writeln(holot: 20,ten: 11,tuoi: 4,lop: 5);
End;
Close(f);
Writeln;
Write('Bam Enter de ket thuc...');
Readln;
END.
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 34
Bài tập 4: Một file bản ghi chứa một danh sách học sinh, thông tin về mỗi học sinh
giống như bài trên. Hãy lập chương trình tạo một file bản ghi khác chứa danh sách
đó, mỗi bản ghi gồm các trường:
Họtên: một xâu 35 kí tự.
Tuổi: một số nguyên hai chữ số.
Khối: một số nguyên hai chữ số.
Lớp: một chữ cái viết hoa
Prorgam file_banghi;
Uses Crt;
Type Danhsach1=record
holot: string[25];
ten: string[10];
tuoi: 0..99;
lop: string[3];
End;
Danhsach2=record
hoten: string[35];
tuoi: byte;
khoi: byte;
lop: char;
End;
Var ds1: Danhsach1;
ds2: Danhsach2;
f1: file of Danhsach1;
f2: file of Danhsach2;
c: integer;
BEGIN
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 35
ClrScr;
Writeln('Ghi tu file bai3.dat sang bai3n.dat: ');
Writeln;
Assign(f1,'bai3.dat'); Reset(f1);
Assign(f2,'bai3n.dat'); Rewrite(f2);
While not Eof(f1) do
Begin
Read(f1,ds1);
With ds1 do
Begin
ds2.hoten:=holot+ten;
val(copy(lop,1,2),ds2.khoi,c);
ds2.tuoi:=tuoi;
ds2.lop:=UpCase(lop[3]);
Write(f2,ds2);
End;
End;
Close(f1); Close(f2);
Writeln;
Writeln('Bam Enter de ket thuc!');
Readln;
END.
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 36
Bài tập về chương trình con
Bài tập 1. Dùng thủ tục chuyển một số tự nhiên n cho trước sang hệ cơ số 2.
Procedure Change ( n: integer ; Var St: String ) ;
b: Array[0.. 1] Of Char = ('0', '1') ;
Var
du, So: Integer ;
S: String ;
Begin
S:='' ; {tao xau rong}
So:=n ;
Repeat
Du:= So mod 2 ;
So:=So div 2 ;
S:=b[du] + s ;
Until So = 0 ;
St:=S ;
End ;
Bài tập 2: Dùng thủ tục giải phương trình bậc hai ax2
+ bx + c = 0
Uses Crt ;
Var a, b, c, x1, x2: real;
{================================}
Procedure Nhapabc(var aa,bb,cc: real);
Begin
Write('a='); Readln(aa);
Write('b='); Readln(bb);
Write('c='); Readln(cc);
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 37
End;
{=================================}
Procedure GPTB2;
Var Delta: real;
Begin
Delta:=sqr(b)-4*a*c;
If Delta<0 then Writeln('Phuong trinh vo nghiem.')
Else
If Delta=0 then
Begin
Write('Phuong trinh co nghiem kep: ');
Write('x1,2=',-b/(2*a): 8: 2);
End
Else
Begin
x1:=(-b+sqrt(Delta))/(2*a);
x2:=(-b-sqrt(Delta))/(2*a);
Writeln('Phuong trinh co 2 nghiem phan biet la: ');
Writeln('X1=',x1: 8: 2, 'X2=',x2: 8: 2);
End;
End;
{============================================}
BEGIN { CT chính }
Clrscr;
Writeln(' Giai Phuong Trinh Bac Hai Voi Cac He So: ');
Nhapabc(a,b,c);
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 38
If a<>0 then GPTB2
Else Writeln(' Khong phai phuong trinh bac hai ');
Readln ;
END.
Bài tập 3: Viết chương trình thực hiện lần lượt các công việc sau:
 Lập thủ tục nhập ba số thực dương a, b, c từ bàn phím.
 Lập thủ tục kiểm tra xem ba số trên có lập thành ba cạnh của tam giác hay
không ?
 Viết thủ tục tính diện tích của tam giác.
 Viết thủ tục tính các trung tuyến của tam giác.
 Viết hoàn thiện chương trình chính.
Program Chuong_trinh;
Uses Crt;
Var a, b, c: real ;
{================================}
Procedure Nhap(Var a, b, c: real);
Procedure input (Var a: real; tenbien: Char);
Begin
Repeat
Write('Nhap ' + tenbien+' = '); Readln(a);
Until (a>=0);
End;
Begin
Input(a, 'a');
Input(b, 'b');
Input(c, 'c');
End;
Procedure Kiemtra(a, b, c: Real);
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 39
Begin
If (a<b+c) And (b<a+c) And (c<a+b) then
Writeln(a:0:2, ', ', b: 0: 2, ' va ', c: 0: 2, ' lap thanh ba canh cua tam giac ')
Else Writeln('Khong lap thanh ba canh cua tam giac') ;
End;
Procedure Trung_tuyen (a, b, c: Real);
Var ma, mb, mc: real;
Begin
ma:=sqrt((2*sqr(b)+2*sqr(c)-sqr(a))/4);
mb:=sqrt((2*sqr(a)+2*sqr(c)-sqr(b))/4);
mc:=sqrt((2*sqr(a)+2*sqr(b)-sqr(c))/4);
Writeln('Cac trung tuyen cua tam giac la: ') ;
Writeln('ma=', ma: 0: 2, ' mb=', mb: 0: 2, ' mc=', mc: 0: 2);
End;
{================================}
Procedure Dientich (a, b, c: real); Var p, S: real;
Begin
p:=(a+b+c)/2;
S:=sqrt(p*(p-a)*(p-b)*(p-c));
Writeln('Dien tich =', S: 0: 2);
End;
{================================}
BEGIN
Clrscr;
Nhap(a, b, c);
Kiemtra(a, b, c);
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 40
Dientich(a, b, c);
Trung_tuyen(a, b, c);
Readln;
END.
Bài tập 4: Số Hoàn Hảo là số có tổng các ước của nó (trừ nó) bằng chính nó
Ví dụ: 6 = 1 + 2 + 3
a. Viết chương trình kiểm tra xem 1 số có là số hoàn hảo không
b. Liệt kê tất cả số hoàn hảo từ 1..2000 và đếm xem có bao nhiêu số
Program So_hoan_hao;
uses crt;
var n,i,d,k,j: integer;
Procedure hoanhao;
Begin
d:=0;
for i:=1 to n-1 do
if n mod i=0 then d:=d+i;
if d=n then writeln(' So vua nhap la so hoan hao')
else writeln(' So vua nhap khong la so hoan hao');
end;
Procedure Viet_len;
Begin
write(' Day so hoan hao tu 1-->2000: ');
k:=0;
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 41
for i:=1 to 2000 do
Begin
d:=0;
for j:=1 to i-1 do
if i mod j=0 then d:=d+j;
if d=i then
Begin
write(i: 5); k:=k+1;
End;
End;
writeln;
writeln(' Trong day 1-->2000 co ',k,' so hoan hao');
End;
Begin
clrscr;
write(' Nhap n='); readln(n);
hoanhao;
vietlen;
readln;
End.
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 42
Bài 5: Nhập vào 1 số nguyên gồm 4 chữ số viết chương trình con thực hiện
 Kiểm tra tình chắn lẻ
 Kiểm tra xem có phải là số nguyên tố không
 Kiểm tra xem có phải là số chính phương không
Sau đó trên chương trình chính kiểm tra và trả lời số vừa nhập thuộc số nào?
Program chuong_trinh;
uses crt;
var i,n,k,d: integer;
ok: boolean;
Function chanle(n: integer): boolean;
Begin
ok:=true;
if n mod 2<>0 then ok:=false;
chanle:=ok;
End;
Function nguyento(n: integer): boolean;
Begin
ok:=true; d:=0;
for i:=2 to n-1 do
if n mod i=0 then d:=d+1;
if d<>1 then ok:=false;
nguyento:=ok;
End;
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 43
Function chinhphuong(n: integer): boolean;
Begin
ok:=true; k:=trunc(sqrt(n));
if sqr(k)<>n then ok:=false;
chinhphuong:=ok;
End;
Begin
clrscr;
write(' Nhap n=');readln(n);
if chanle(n) then writeln(' So vua nhap la chan')
else writeln(' So vua nhap la so le');
if nguyento(n) then writeln(' So vua nhap la nguyen to')
else writeln(' So vua nhap khong phai la so nguyen to');
if chinhphuong(n) then writeln(' So vua nhap la so chinh phuong')
else writeln(' So vua nhap khong la so chinh phuong');
readln;
End.
Bài 6. Viết chương trình con tính a Giai Thừa với a nhập từ bàn phím
Program giaithua;
uses crt;
var a: integer;
Function gt(n: byte): Longint;
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 44
Var
s: Longint;
i: byte;
Begin
s:=1;
For i:=2 to n do s:=s*i;
gt:=s;
End;
Begin
clrscr;
write ('Nhap so can tinh giai thua: ');readln(a);
if a:=0 or a:=1 then writeln('Giai thua cua ',a,' = 1')
else writeln('Giai thua cua',a,' =', gt(a) );
End.
Bài 7. Nhập vào 1 mảng gồm n số nguyên (2<n<20). In ra các số nguyên tố có trong
mảng.
Program Mang;
uses crt;
var a: array [ 1..20] of byte;
i,n,d,j,k: integer;
Procedure nhap;
Begin
for i:=1 to n do
Begin
write(' a[',i,']='); readln(a[i]);
End;
End;
Procedure nguyento;
Begin
write(' Day so cac so nguyen to: ');
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang
ĐT: 0972.311.481 Trang 45
k:=0;
for i:=1 to n do
Begin
d:=0;
for j:=1 to a[i]-1 do
if a[i] mod j=0 then
d:=d+1;
if d=1 then
Begin
write(' ',a[i]);
k:=k+1;
End;
End;
if k=0 then
write(' khong co so nao')
else
begin
writeln;
writeln(' Trong day co ',k,' so nguyen to');
End;
End;
Begin
clrscr;
repeat
write(' Nhap n='); readln(n);
until (2<n)And(n<20);
nhap;
nguyento;
readln;
End.

More Related Content

What's hot

Lap trinh c++ có lời giải 1
Lap trinh c++ có lời giải 1Lap trinh c++ có lời giải 1
Lap trinh c++ có lời giải 1Minh Ngoc Tran
 
Cac ham va thu tuc trong pascal
Cac ham va thu tuc trong pascalCac ham va thu tuc trong pascal
Cac ham va thu tuc trong pascaldalat
 
Chuyên đề nhị thức newton và ứng dụng
Chuyên đề nhị thức newton và ứng dụngChuyên đề nhị thức newton và ứng dụng
Chuyên đề nhị thức newton và ứng dụngThế Giới Tinh Hoa
 
Nhị thức newton và Phương pháp giải các bài tập về Nhị thức newton
Nhị thức newton và Phương pháp giải các bài tập về Nhị thức newtonNhị thức newton và Phương pháp giải các bài tập về Nhị thức newton
Nhị thức newton và Phương pháp giải các bài tập về Nhị thức newtonLinh Nguyễn
 
Bảng công thức tích phân + mũ lôga
Bảng công thức tích phân + mũ lôgaBảng công thức tích phân + mũ lôga
Bảng công thức tích phân + mũ lôgaPhương Thảo Nguyễn
 
Sử dụng máy tính cầm tay giải nhanh trắc nghiệm lượng giác – Trần Anh Khoa
Sử dụng máy tính cầm tay giải nhanh trắc nghiệm lượng giác – Trần Anh KhoaSử dụng máy tính cầm tay giải nhanh trắc nghiệm lượng giác – Trần Anh Khoa
Sử dụng máy tính cầm tay giải nhanh trắc nghiệm lượng giác – Trần Anh KhoaTrung Tam Gia Su Tri Viet
 
Tích phân từng phần
Tích phân từng phầnTích phân từng phần
Tích phân từng phầnroggerbob
 
Lập trình c++ có lời giải 2
Lập trình c++ có lời giải 2Lập trình c++ có lời giải 2
Lập trình c++ có lời giải 2Minh Ngoc Tran
 
Quy hoạch động
Quy hoạch độngQuy hoạch động
Quy hoạch độnghana_dt
 
HÀM SỐ LƯỢNG GIÁC
HÀM SỐ LƯỢNG GIÁCHÀM SỐ LƯỢNG GIÁC
HÀM SỐ LƯỢNG GIÁCDANAMATH
 
Chuyên đề phương trình lượng giác
Chuyên đề phương trình lượng giácChuyên đề phương trình lượng giác
Chuyên đề phương trình lượng giácngotieuloc
 
Hoán vị, chỉnh hợp, tổ hợp
Hoán vị, chỉnh hợp, tổ hợpHoán vị, chỉnh hợp, tổ hợp
Hoán vị, chỉnh hợp, tổ hợpNguyễn Hữu Học
 
Phương pháp giải toán hoá hữu cơ lớp 11
Phương pháp giải toán hoá hữu cơ lớp 11Phương pháp giải toán hoá hữu cơ lớp 11
Phương pháp giải toán hoá hữu cơ lớp 11Alice Jane
 
[Htq] toan 9 hsg tp hn dap an
[Htq] toan 9 hsg tp hn   dap an[Htq] toan 9 hsg tp hn   dap an
[Htq] toan 9 hsg tp hn dap anHồng Quang
 
chuyên đề và phương pháp tính giới hạn và liên tục của hàm sô
chuyên đề và phương pháp tính giới hạn và liên tục của hàm sôchuyên đề và phương pháp tính giới hạn và liên tục của hàm sô
chuyên đề và phương pháp tính giới hạn và liên tục của hàm sôThế Giới Tinh Hoa
 

What's hot (20)

Bai tập mảng
Bai tập mảngBai tập mảng
Bai tập mảng
 
Lap trinh c++ có lời giải 1
Lap trinh c++ có lời giải 1Lap trinh c++ có lời giải 1
Lap trinh c++ có lời giải 1
 
Cac ham va thu tuc trong pascal
Cac ham va thu tuc trong pascalCac ham va thu tuc trong pascal
Cac ham va thu tuc trong pascal
 
Chuyên đề nhị thức newton và ứng dụng
Chuyên đề nhị thức newton và ứng dụngChuyên đề nhị thức newton và ứng dụng
Chuyên đề nhị thức newton và ứng dụng
 
Nhị thức newton và Phương pháp giải các bài tập về Nhị thức newton
Nhị thức newton và Phương pháp giải các bài tập về Nhị thức newtonNhị thức newton và Phương pháp giải các bài tập về Nhị thức newton
Nhị thức newton và Phương pháp giải các bài tập về Nhị thức newton
 
Bảng công thức tích phân + mũ lôga
Bảng công thức tích phân + mũ lôgaBảng công thức tích phân + mũ lôga
Bảng công thức tích phân + mũ lôga
 
Sử dụng máy tính cầm tay giải nhanh trắc nghiệm lượng giác – Trần Anh Khoa
Sử dụng máy tính cầm tay giải nhanh trắc nghiệm lượng giác – Trần Anh KhoaSử dụng máy tính cầm tay giải nhanh trắc nghiệm lượng giác – Trần Anh Khoa
Sử dụng máy tính cầm tay giải nhanh trắc nghiệm lượng giác – Trần Anh Khoa
 
Tích phân từng phần
Tích phân từng phầnTích phân từng phần
Tích phân từng phần
 
Lập trình c++ có lời giải 2
Lập trình c++ có lời giải 2Lập trình c++ có lời giải 2
Lập trình c++ có lời giải 2
 
Quy hoạch động
Quy hoạch độngQuy hoạch động
Quy hoạch động
 
HÀM SỐ LƯỢNG GIÁC
HÀM SỐ LƯỢNG GIÁCHÀM SỐ LƯỢNG GIÁC
HÀM SỐ LƯỢNG GIÁC
 
Chuyên đề phương trình lượng giác
Chuyên đề phương trình lượng giácChuyên đề phương trình lượng giác
Chuyên đề phương trình lượng giác
 
Dong phan.doc
Dong phan.docDong phan.doc
Dong phan.doc
 
Quy Hoach Dong
Quy Hoach DongQuy Hoach Dong
Quy Hoach Dong
 
Hoán vị, chỉnh hợp, tổ hợp
Hoán vị, chỉnh hợp, tổ hợpHoán vị, chỉnh hợp, tổ hợp
Hoán vị, chỉnh hợp, tổ hợp
 
Dãy số tuyến tính
Dãy số tuyến tínhDãy số tuyến tính
Dãy số tuyến tính
 
Phương pháp giải toán hoá hữu cơ lớp 11
Phương pháp giải toán hoá hữu cơ lớp 11Phương pháp giải toán hoá hữu cơ lớp 11
Phương pháp giải toán hoá hữu cơ lớp 11
 
Nhóm IIA (kiềm thổ)
Nhóm IIA (kiềm thổ)Nhóm IIA (kiềm thổ)
Nhóm IIA (kiềm thổ)
 
[Htq] toan 9 hsg tp hn dap an
[Htq] toan 9 hsg tp hn   dap an[Htq] toan 9 hsg tp hn   dap an
[Htq] toan 9 hsg tp hn dap an
 
chuyên đề và phương pháp tính giới hạn và liên tục của hàm sô
chuyên đề và phương pháp tính giới hạn và liên tục của hàm sôchuyên đề và phương pháp tính giới hạn và liên tục của hàm sô
chuyên đề và phương pháp tính giới hạn và liên tục của hàm sô
 

Similar to Bai tap-pascal-lop-11

Bai tap pascal co giai
Bai tap pascal co giaiBai tap pascal co giai
Bai tap pascal co giaitrungdha
 
Bai 17 chuong trinh con va phan loai
Bai 17 chuong trinh con va phan loaiBai 17 chuong trinh con va phan loai
Bai 17 chuong trinh con va phan loaiThaiPham97
 
Bài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiBài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiTrung Thanh Nguyen
 
Giao trinh bai tap c va c++
Giao trinh bai tap c va c++Giao trinh bai tap c va c++
Giao trinh bai tap c va c++Congdat Le
 
Mot sothuattoan
Mot sothuattoanMot sothuattoan
Mot sothuattoanHoàng My
 
Bài 18. Ví dụ về cách viết và sử dụng chương trình con.
Bài 18. Ví dụ về cách viết và sử dụng chương trình con.Bài 18. Ví dụ về cách viết và sử dụng chương trình con.
Bài 18. Ví dụ về cách viết và sử dụng chương trình con.Sân Ngoài Còn Lá
 
Powerpoint dạy hoc
Powerpoint dạy hocPowerpoint dạy hoc
Powerpoint dạy hocLong Tibbers
 
Tai lieu boi duong tin 8
Tai lieu boi duong tin 8Tai lieu boi duong tin 8
Tai lieu boi duong tin 8lethilien1993
 
Bài tập nhập môn lập trình
Bài tập nhập môn lập trìnhBài tập nhập môn lập trình
Bài tập nhập môn lập trìnhLong Kingnam
 
Thuc hanh mat lab tong hop
Thuc hanh mat lab tong hopThuc hanh mat lab tong hop
Thuc hanh mat lab tong hopHùng Vương
 

Similar to Bai tap-pascal-lop-11 (20)

Khao sat
Khao satKhao sat
Khao sat
 
Khao sat
Khao satKhao sat
Khao sat
 
Bai tap mau pascal
Bai tap mau pascalBai tap mau pascal
Bai tap mau pascal
 
Bai tap pascal co giai
Bai tap pascal co giaiBai tap pascal co giai
Bai tap pascal co giai
 
Bài tập pascal
Bài tập pascalBài tập pascal
Bài tập pascal
 
Bai 17 chuong trinh con va phan loai
Bai 17 chuong trinh con va phan loaiBai 17 chuong trinh con va phan loai
Bai 17 chuong trinh con va phan loai
 
Chuong trinh con
Chuong trinh conChuong trinh con
Chuong trinh con
 
Bài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiBài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giải
 
Giao trinh bai tap c va c++
Giao trinh bai tap c va c++Giao trinh bai tap c va c++
Giao trinh bai tap c va c++
 
Giao trinh bai tap c va c++
Giao trinh bai tap c va c++Giao trinh bai tap c va c++
Giao trinh bai tap c va c++
 
Chuyen doi he so
Chuyen doi he soChuyen doi he so
Chuyen doi he so
 
Mot sothuattoan
Mot sothuattoanMot sothuattoan
Mot sothuattoan
 
Bài 18. Ví dụ về cách viết và sử dụng chương trình con.
Bài 18. Ví dụ về cách viết và sử dụng chương trình con.Bài 18. Ví dụ về cách viết và sử dụng chương trình con.
Bài 18. Ví dụ về cách viết và sử dụng chương trình con.
 
Powerpoint dạy hoc
Powerpoint dạy hocPowerpoint dạy hoc
Powerpoint dạy hoc
 
Tai lieu boi duong tin 8
Tai lieu boi duong tin 8Tai lieu boi duong tin 8
Tai lieu boi duong tin 8
 
CHƯƠNG 2.pdf
CHƯƠNG 2.pdfCHƯƠNG 2.pdf
CHƯƠNG 2.pdf
 
Bài tập nhập môn lập trình
Bài tập nhập môn lập trìnhBài tập nhập môn lập trình
Bài tập nhập môn lập trình
 
Thuc hanh mat lab tong hop
Thuc hanh mat lab tong hopThuc hanh mat lab tong hop
Thuc hanh mat lab tong hop
 
Bg cau trucrenhanh
Bg cau trucrenhanhBg cau trucrenhanh
Bg cau trucrenhanh
 
Vi du tinh dien tich
Vi du tinh dien tichVi du tinh dien tich
Vi du tinh dien tich
 

More from sonnqsp

Bai thuchanh.3
Bai thuchanh.3Bai thuchanh.3
Bai thuchanh.3sonnqsp
 
Bai.11.tot
Bai.11.totBai.11.tot
Bai.11.totsonnqsp
 
Nhom07 ke hoachbaiday
Nhom07 ke hoachbaidayNhom07 ke hoachbaiday
Nhom07 ke hoachbaidaysonnqsp
 
Nhom07 bangdanhgiatudinhhuong
Nhom07 bangdanhgiatudinhhuongNhom07 bangdanhgiatudinhhuong
Nhom07 bangdanhgiatudinhhuongsonnqsp
 
Nhom07 anphamgioithieuytuong
Nhom07 anphamgioithieuytuongNhom07 anphamgioithieuytuong
Nhom07 anphamgioithieuytuongsonnqsp
 
Nhom07 phieu danh_gia_bai_thuyet_trinh
Nhom07 phieu danh_gia_bai_thuyet_trinhNhom07 phieu danh_gia_bai_thuyet_trinh
Nhom07 phieu danh_gia_bai_thuyet_trinhsonnqsp
 
Nhom07 bangkiemmuc nhatky
Nhom07 bangkiemmuc nhatkyNhom07 bangkiemmuc nhatky
Nhom07 bangkiemmuc nhatkysonnqsp
 
Nhom07 ban kiem_muc_bai_thuyet_trinh
Nhom07 ban kiem_muc_bai_thuyet_trinhNhom07 ban kiem_muc_bai_thuyet_trinh
Nhom07 ban kiem_muc_bai_thuyet_trinhsonnqsp
 
Nhom07 bang danhgiasanphamhs
Nhom07 bang danhgiasanphamhsNhom07 bang danhgiasanphamhs
Nhom07 bang danhgiasanphamhssonnqsp
 
Nhom07 kwl
Nhom07 kwlNhom07 kwl
Nhom07 kwlsonnqsp
 
Nhom07 bai baocaoduan
Nhom07 bai baocaoduanNhom07 bai baocaoduan
Nhom07 bai baocaoduansonnqsp
 
Nhom07 danh gianhucauhs
Nhom07 danh gianhucauhsNhom07 danh gianhucauhs
Nhom07 danh gianhucauhssonnqsp
 
Nhom07 an pham
Nhom07 an phamNhom07 an pham
Nhom07 an phamsonnqsp
 

More from sonnqsp (14)

Bai7
Bai7Bai7
Bai7
 
Bai thuchanh.3
Bai thuchanh.3Bai thuchanh.3
Bai thuchanh.3
 
Bai.11.tot
Bai.11.totBai.11.tot
Bai.11.tot
 
Nhom07 ke hoachbaiday
Nhom07 ke hoachbaidayNhom07 ke hoachbaiday
Nhom07 ke hoachbaiday
 
Nhom07 bangdanhgiatudinhhuong
Nhom07 bangdanhgiatudinhhuongNhom07 bangdanhgiatudinhhuong
Nhom07 bangdanhgiatudinhhuong
 
Nhom07 anphamgioithieuytuong
Nhom07 anphamgioithieuytuongNhom07 anphamgioithieuytuong
Nhom07 anphamgioithieuytuong
 
Nhom07 phieu danh_gia_bai_thuyet_trinh
Nhom07 phieu danh_gia_bai_thuyet_trinhNhom07 phieu danh_gia_bai_thuyet_trinh
Nhom07 phieu danh_gia_bai_thuyet_trinh
 
Nhom07 bangkiemmuc nhatky
Nhom07 bangkiemmuc nhatkyNhom07 bangkiemmuc nhatky
Nhom07 bangkiemmuc nhatky
 
Nhom07 ban kiem_muc_bai_thuyet_trinh
Nhom07 ban kiem_muc_bai_thuyet_trinhNhom07 ban kiem_muc_bai_thuyet_trinh
Nhom07 ban kiem_muc_bai_thuyet_trinh
 
Nhom07 bang danhgiasanphamhs
Nhom07 bang danhgiasanphamhsNhom07 bang danhgiasanphamhs
Nhom07 bang danhgiasanphamhs
 
Nhom07 kwl
Nhom07 kwlNhom07 kwl
Nhom07 kwl
 
Nhom07 bai baocaoduan
Nhom07 bai baocaoduanNhom07 bai baocaoduan
Nhom07 bai baocaoduan
 
Nhom07 danh gianhucauhs
Nhom07 danh gianhucauhsNhom07 danh gianhucauhs
Nhom07 danh gianhucauhs
 
Nhom07 an pham
Nhom07 an phamNhom07 an pham
Nhom07 an pham
 

Bai tap-pascal-lop-11

  • 1. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 1 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 Nhằm giúp các bạn học sinh lớp 11 tiếp cận với ngôn ngữ lập trình Pascal một cách dễ dàng và vận dụng vào các ngôn ngữ lập trình khác trong tin học, tôi sưu tầm và biên soạn một số bài toán cơ bản đến nâng cao có trong chương trình của lớp 11 không phân ban. Các chương trình nhằm mục đích tham khảo cho các bạn ham mê tin học và là tài liệu chuẩn bị cho các bài kiểm tra về môn tin học. Nha trang tháng 3/2011
  • 2. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 2 Phần I: CÁC BÀI TẬP CƠ BẢN Bài 1: Tìm giá trị lớn nhất trong 4 số a, b, c, d (a, b, c, được nhập từ bàn phím). Program Program TIM_SO_LON_NHAT; Uses crt; Var a,b,c,d,max: real; BEGIN Clrscr; Writeln('TIM SO LON NHAT TRONG BON SO A, B, C, D'); Writeln('---------------------------------------------------------------'); Write('Nhap a='); Readln(a); Write('Nhap b='); Readln(b); Write('Nhap c='); Readln(c); Write('Nhap d='); Readln(d); max:=a; If b>max then max:=b; If c>max then max:=c; if d>max then max:=d; Writeln('So lon nhat la: ',max: 4: 2); Readln; END. Bài 1B: Viêt chương trình nhập ba số dương bất kỳ, kiểm tra ba số vừa nhập có phải là ba cạnh của tam giác không? Nếu phải thì tính chu vi và diện tích của tam giác đó. PROGRAM Kiem_tra_tam_giac; Uses crt; Var a,b,c,cv,s,p: real; BEGIN Clrscr; Writeln(‘nhap so thu nhat’); readln(a); Writeln(‘nhap so thu hai’); readln(b); Writeln(‘nhap so thu ba’); readln(c); If(a+b>c) And(a+c>b) And(b+c>a) then Begin Cv:=a+b+c; p:=c/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); Writeln(‘ba so vua nhap la ba canh cua tam giac’);
  • 3. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 3 Writeln(‘ chu vi cua tam gia la’, cv: 4: 2, ‘ dien tich cua tam giac la’, s:6:2); End Else Writeln(‘ba so vua nhap khong phai la ba canh cua tam giac’); Readln End. Bài 1C: Viết chương trình nhập độ cao h so với mặt đất của một vật rơi tại nơi có gia tốc g, Tính và hiển thị vận tốc của vật tại mặt đất. Program Tinh_van_toc; Uses crt; Var h, v,g: real; Begin Clrscr; Writeln(‘nhap do cao cua vat’); readln(h); Writeln(‘nhap gia toc’); readln(g); V:=sqrt(2*g*h); Writeln(‘van toc tai mat dat la’, v: 6: 2); Readln End. Bài 2: Viết chương trình giải phương trình ax+b=0 Program GIAI_PHUONG_TRINH_BAC_NHAT; Uses crt; Var a,b,x: real; Begin Clrscr; Writeln('GIAI PHUONG TRINH BAC NHAT: AX + B=0'); Writeln('------------------------------------------------------------'); Write ('Nhap a= '); readln(a); Write ('Nhap b= '); readln(b); If(a=0) then If(b=0) then Writeln(' Phuong trinh co vo so nghiem') Else writeln(' Phuong tring vo nghiem') Else Writeln('Phuong trinh co nghiem x=',-b/a: 4: 2);
  • 4. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 4 Readln End. Bài 3: Viết chương trình giải bất phương trình bậc 1 (ax + b > 0) Program BAT_PHUONG_TRINH_BAC_I; Uses crt; Var a,b: real; Begin Clrscr; Writeln('GIAI BAT PHUONG TRINH BAC NHAT: AX + B>=0'); Writeln('----------------------------------------------------------------------'); Write('nhap a='); readln(a); Write('nhap b='); readln(b); If a<>0 then If a>0 then Writeln('Bat phuong trinh co nghiem: x>=',-b/a: 4: 2) Else Writeln('Bat phuong trinh co nghiem: x<=',-b/a: 4: 2) Else If b>=0 then Writeln('Bat phuong trinh co vo so nghiem') Else writeln('Bat phuong trinh vo nghiem'); Readln End. Bài 4: Viết chương trình giải phương trình (ax2 + bx + c =0) Program GIAI_PHUONG_TRINH_BACII; Uses crt; Var a,b,c,d,x,x1,x2: real; Begin Clrscr; Writeln('GIAI PHUONG TRINH BAC II: '); Writeln('-------------------------------------------'); Write('Nhap he so a='); readln(a); Write('Nhap he so b='); readln(b); Write('Nhap he so c='); readln(c); If a=0 then
  • 5. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 5 If b=0 then If c=0 then Writeln('Phuong trinh co vo so nghiem') Else Writeln('Phuong trinh vo nghiem') Else Writeln('Phuong trinh co mot nghiem: x=',-c/b: 4: 2) Else Begin d:=b*b-4*a*c; If d=0 then Writeln('Phuong trinh co nghiem kep: x=',-b/(2*a): 4: 2) Else if d<0 then Writeln(‘phuong trinh vo nghiem’) Else Begin x1:=(-b+sqrt(d))/(2*a); x2:=(-b-sqrt(d))/(2*a); Write('Phuong trinh co hai nghiem: ‘); Writeln(‘ x1=',x1: 4: 2,' va x2=',x2: 4: 2); End; End; Readln End. Bài 5: Giải hệ phương trình tuyến tính: ax + by = m cx + dy = n Program GIAI_HE_HAI_AN; Uses crt; Var a,b,c,d,m,n: real; dx,dy,dd: real; BEGIN Clrscr; Writeln('GIAI HE HAI AN: '); Writeln('----------------------------------'); Write('Nhap a='); readln(a); Write('Nhap b='); readln(b);
  • 6. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 6 Write('Nhap c='); readln(c); Write('Nhap m='); readln(m); Write('Nhap n='); readln(n); dd:=a*d-b*c; dx:=m*d-b*n; dy:=a*n-c*m; If dd=0 then If (dx=0) And (dy=0) then Writeln('He vo so nghiem hoac vo nghiem') Else writeln('He vo nghiem') Else Begin Write('He co nghiem: '); Writeln('x=',dx/dd: 4: 2,' va y=',dy/dd: 4: 2); End; Readln End. Bài 6: Nhập vào thời gian 1 công việc nào đó là x giây. Hãy chuyển đổi và viết ra màn hình số thời gian trên dưới dạng bằng bao nhiêu giờ, bao nhiêu phút, bao nhiêu giây. Program DOI_GIO_PHUT_GIAY; Uses crt; Var gio, phut,giay, x: longint; Begin Clrscr; Writeln('DOI SANG GIO PHUT GIAY'); Writeln('--------------------------------------'); Write('Nhap vao so giay: '); readln(x); gio:=x div 3600; x:=x mod 3600; phut:=x div 60; x:=x mod 60; Writeln('Ket qua = ', gio,'gio: ', phut, 'phut: ', x, 'giay'); Readln; End. Bài 7: Nhập vào tâm và bán kính của một đường tròn. Sau đó nhập vào một điểm A(x, y) bất kì và kiểm tra xem nó có thuộc đường tròn hay không? Program KIEM_TRA_DIEM_THUOC_DUONG_TRON; Uses crt; Var x0,y0,xa,ya,d,r: real;
  • 7. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 7 Begin Clrscr; Writeln('KIEM TRA DIEM THUOC DUONG TRON: '); Writeln('--------------------------------------------------------'); Write('Nhap ban kinh R= '); readln(r); Write('Nhap hoanh do tam duong tron = '); readln(x0); Write('Nhap tung do tam duong tron = '); readln(y0); Write('Nhap hoanh do diem a = '); readln(xa); Write('Nhap tung do diem a = '); readln(ya); d:=SQRT(SQR(xa-x0)+SQR(ya-y0)); If r=d then Writeln('Diem A nam tren duong tron') Else If d>r then Writeln('Diem A nam ngoai duong tron') Else Writeln('Diem A nam trong duong tron'); Readln End. Bài 7 b: Viết chương trình nhập vào tâm và bán kính hai đường tròn, xác định vị trí tương đối của hai đường tròn đó. Program Khao_Sat_Hai_Duong_Tron; Var R 1, R2 ,x1, y1,x2,y2, Kc, Tong, Hieu: Real; BEGIN Writeln('KHAO SAT 2 DUONG TRON'); Writeln('----------------------------------------------------'); Writeln; Writeln('*Duong tron thu nhat'); Write(' +Ban kinh: '); Readln(R1); Write(' +Toa do x: '); Readln(x1); Write(' +Toa do y: '); Readln(y1); writeln; Writeln('*Duong tron thu hai');
  • 8. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 8 Write(' +Ban kinh: '); Readln(R2); Write(' +Toa do x: '); Readln(x2); Write(' +Toa do y: '); Readln(y2); Kc:=Sqrt(Sqr(x1 – x2) + Sqr(y1 – y2)); Tong:=R1 + R2; Hieu:=ABS(R1 – R2); If (Kc = 0) AND (Hieu = 0) Then Writeln('-Hai duong tron trung nhau') Else If (Hieu > Kc) Then Writeln('-Hai duong tron long nhau') Else If (Tong = Kc) OR (Hieu = Kc) Then Writeln('-Hai duong tron tiep xuc nhau') Else If (Tong > Kc) AND (Hieu < Kc) Then Writeln('-Hai duong tron cat nhau ') Else If (Tong < Kc) Then Writeln('-Hai duong tron o ngoai nhau-'); Readln End. Bài 8: Tính xy ( Với x, y là số thực). Program X_LUYTHUA_Y; Uses crt; Var lt, x,y,z: real; Begin Clrscr; Writeln(‘TINH X LUY THUA Y: ’); Writeln('----------------------------------'); Write('Nhap x = '); readln(x); Write('nhap y = '); readln(y); If x>=0 then Begin z:=exp(y*ln(x));
  • 9. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 9 Writeln('x ^ y = ',z: 4: 2); End Else Writeln('Khong tinh duoc do x la so am'); Readln; End. Bài 9: Tính n! Program TINH_N_GIAI_THUA; Uses crt; Var i,n,gt: integer; Begin Clrscr; Writeln(' TINH N GIAI THUA: '); Writeln('----------------------------------'); Write('Nhap n ='); readln(n); gt:=1; For i:=1 to n do gt:=gt*i; Writeln(n, '!= ',gt); Readln; End. Bài 10**: Đọc ngày tháng năm, sau đó viết ra màn hình đó là ngày thứ mấy trong tuần. Program Ngaythang; Uses crt; Var Thu, Ngay, Thang: Byte; Nam: Integer; BEGIN Clrscr; Write (' Doc Ngay: '); Readln ( Ngay ); Write (' Doc Thang: '); Readln ( Thang ); Write (' Doc Nam: '); Readln ( Nam ); Nam:=1900 + ( Nam mod 1900 ); If Thang < 3 Then
  • 10. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 10 Begin Thang:=Thang + 12; Nam:=Nam - 1; End; Thu:=Abs ( Ngay + Thang * 2 + ( Thang + 1 ) * 3 div 5 + Nam + Nam div 4 ) mod 7; Case Thu Of 0: Writeln (‘ngay ’,ngay,’ thang ',thang,’ nam ’,nam,’ la ngay Chu Nhat '); 1: Writeln ('ngay ’,ngay,’ thang ',thang,’ nam ’,nam,’ la ngay Thu Hai '); 2: Writeln ('ngay ’,ngay,’ thang ',thang,’ nam ’,nam,’ la ngay Thu Ba '); 3: Writeln (‘ngay ’,ngay,’ thang ',thang,’ nam ’,nam,’ la ngay Thu Tu '); 4: Writeln (‘ngay ’,ngay,’ thang ',thang,’ nam ’,nam,’ la ngay Thu Nam '); 5: Writeln ('ngay ’,ngay,’ thang ',thang,’ nam ’,nam,’ la ngay Thu Sau '); 6: Writeln ('ngay ’,ngay,’ thang ',thang,’ nam ’,nam,’ la ngay Thu Bay '); End; Readln; END. Bài 11: Viết chương trình: Nhâp số báo danh Nhập điểm văn, toán, ngoại ngữ In ra màn hình dưới dạng:  Phiếu điểm:  Số báo danh:  Điểm văn:  Điểm toán:  Điểm ngoại ngữ:  Tổng số điểm: Bạn đã trúng tuyển ( hoặc Bạn đã không trúng tuyển ) với điều kiện Tổng số điểm >= 15 hay ngược lại. Program INPHIEU; Uses Crt; Var SBD: Integer; Van, Toan, Ngoaingu, Tongdiem: Real;
  • 11. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 11 BEGIN Clrscr; Write (' So bao danh: '); Readln( SBD ); Write (' Diem toan: '); Readln( Toan ); Write (' Diem ngoai ngu: '); Readln( Ngoaingu ); Write (' Diem van: '); Readln ( Van ); Tongdiem:=Toan + Van + Ngoaingu; Writeln (' Phieu Bao Diem '); Writeln (' So bao danh: ', SBD ); Writeln (' Diem van: ', Van ); Writeln (' Diem toan: ', Toan ); Writeln (' Diem ngoai ngu: ', Ngoaingu); Writeln (' Tong diem: ', 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;
  • 12. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 12 Var a, b, T: Real; Pt: Char; BEGIN Clrscr; Write (' a = '); Readln( a ); 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.
  • 13. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 13 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;
  • 14. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 14 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;
  • 15. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 15 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.
  • 16. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 16 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); While (a<>b) do Begin If a>b then a:=a-b else b:=b-a; End; uc:=a; bc:=(a*b)/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 đó
  • 17. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 17 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); {----------------------------------------Cau d-------------------------------------}
  • 18. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 18 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 (j<=n) And (A[j]<>k) 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( j<=A[i] - 1 ) And (A[i] mod j<>0) do Begin J:=j+1; End;
  • 19. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 19 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 clrscr; write(' nhap so phan tu cua mang ');
  • 20. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 20 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; writeln(' day sau khi sap xep la '); for i:=1 to n do
  • 21. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 21 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--'); Readln End.
  • 22. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 22 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'); For i:=1 To spt Do Write(a[i]: 6); Readln End.
  • 23. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 23 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'); Writeln('- -----------------------------------'); Writeln; For i:=1 to spt Do Write(a[i]: 6);
  • 24. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 24 Writeln; Writeln; Writeln(' Bam phim <Enter> 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; If j < i Then Begin For k:=i to n-1 Do
  • 25. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 25 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. 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 ') ; For i:=1 To 50 Do Begin
  • 26. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 26 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; End; If dx then Write(' St la xau doi xung ')
  • 27. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 27 Else Write(St,’ khong phai la xau doi xung ') ; Readln; END. Bài tập 3: Chương trình nhập vào họ tên của một người sau đó xóa hết ký tự trắng dư thừa Uses crt; Const Chu=['a'..'z']; Var Hoten: string; i,len: byte; BEGIN Clrscr; Write('Ho ten='); Readln(Hoten); Len:=length(Hoten); If Hoten[1] in Chu then Hoten[1]:=Upcase(Hoten[1]); For i:=2 to len do If (Hoten[i-1]=#32)And(Hoten[i] in Chu) then Hoten[i]:=Upcase(Hoten[i]); Write('Ho ten sau khi dieu chinh la: ', Hoten); Readln; END. Bài tập 4: 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;
  • 28. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 28 Begin Clrscr; Writeln(‘nhap xau ‘); readln(s); K:=length(s); i:=1; For ch:=’0’ to ‘9’ do Begin While (i<=k) And (pos(ch,s))<>0 do Begin Delete(s,pos(ch,s),1); i:=i+1; End; End; Writeln(‘xau sau khi xoa het so la: ’,s); Readln End. Bài 5: 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);
  • 29. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 29 Writeln(‘ xau sau khi xoa het ky tu trang du thua la’, s); Readln End. Bài 6: 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); 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 tập phần bản ghi, file 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
  • 30. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 30 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); 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;
  • 31. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 31 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; 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;
  • 32. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 32 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; 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.
  • 33. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 33 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; f: file of Danhsach; BEGIN ClrScr; Writeln('Danh sach hoc sinh tu file bai2.dat'); Writeln; Assign(f,'bai2.dat'); Reset(f); For i:=1 to n do Begin Read(f,ds); With ds do Writeln(holot: 20,ten: 11,tuoi: 4,lop: 5); End; Close(f); Writeln; Write('Bam Enter de ket thuc...'); Readln; END.
  • 34. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 34 Bài tập 4: Một file bản ghi chứa một danh sách học sinh, thông tin về mỗi học sinh giống như bài trên. Hãy lập chương trình tạo một file bản ghi khác chứa danh sách đó, mỗi bản ghi gồm các trường: Họtên: một xâu 35 kí tự. Tuổi: một số nguyên hai chữ số. Khối: một số nguyên hai chữ số. Lớp: một chữ cái viết hoa Prorgam file_banghi; Uses Crt; Type Danhsach1=record holot: string[25]; ten: string[10]; tuoi: 0..99; lop: string[3]; End; Danhsach2=record hoten: string[35]; tuoi: byte; khoi: byte; lop: char; End; Var ds1: Danhsach1; ds2: Danhsach2; f1: file of Danhsach1; f2: file of Danhsach2; c: integer; BEGIN
  • 35. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 35 ClrScr; Writeln('Ghi tu file bai3.dat sang bai3n.dat: '); Writeln; Assign(f1,'bai3.dat'); Reset(f1); Assign(f2,'bai3n.dat'); Rewrite(f2); While not Eof(f1) do Begin Read(f1,ds1); With ds1 do Begin ds2.hoten:=holot+ten; val(copy(lop,1,2),ds2.khoi,c); ds2.tuoi:=tuoi; ds2.lop:=UpCase(lop[3]); Write(f2,ds2); End; End; Close(f1); Close(f2); Writeln; Writeln('Bam Enter de ket thuc!'); Readln; END.
  • 36. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 36 Bài tập về chương trình con Bài tập 1. Dùng thủ tục chuyển một số tự nhiên n cho trước sang hệ cơ số 2. Procedure Change ( n: integer ; Var St: String ) ; b: Array[0.. 1] Of Char = ('0', '1') ; Var du, So: Integer ; S: String ; Begin S:='' ; {tao xau rong} So:=n ; Repeat Du:= So mod 2 ; So:=So div 2 ; S:=b[du] + s ; Until So = 0 ; St:=S ; End ; Bài tập 2: Dùng thủ tục giải phương trình bậc hai ax2 + bx + c = 0 Uses Crt ; Var a, b, c, x1, x2: real; {================================} Procedure Nhapabc(var aa,bb,cc: real); Begin Write('a='); Readln(aa); Write('b='); Readln(bb); Write('c='); Readln(cc);
  • 37. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 37 End; {=================================} Procedure GPTB2; Var Delta: real; Begin Delta:=sqr(b)-4*a*c; If Delta<0 then Writeln('Phuong trinh vo nghiem.') Else If Delta=0 then Begin Write('Phuong trinh co nghiem kep: '); Write('x1,2=',-b/(2*a): 8: 2); End Else Begin x1:=(-b+sqrt(Delta))/(2*a); x2:=(-b-sqrt(Delta))/(2*a); Writeln('Phuong trinh co 2 nghiem phan biet la: '); Writeln('X1=',x1: 8: 2, 'X2=',x2: 8: 2); End; End; {============================================} BEGIN { CT chính } Clrscr; Writeln(' Giai Phuong Trinh Bac Hai Voi Cac He So: '); Nhapabc(a,b,c);
  • 38. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 38 If a<>0 then GPTB2 Else Writeln(' Khong phai phuong trinh bac hai '); Readln ; END. Bài tập 3: Viết chương trình thực hiện lần lượt các công việc sau:  Lập thủ tục nhập ba số thực dương a, b, c từ bàn phím.  Lập thủ tục kiểm tra xem ba số trên có lập thành ba cạnh của tam giác hay không ?  Viết thủ tục tính diện tích của tam giác.  Viết thủ tục tính các trung tuyến của tam giác.  Viết hoàn thiện chương trình chính. Program Chuong_trinh; Uses Crt; Var a, b, c: real ; {================================} Procedure Nhap(Var a, b, c: real); Procedure input (Var a: real; tenbien: Char); Begin Repeat Write('Nhap ' + tenbien+' = '); Readln(a); Until (a>=0); End; Begin Input(a, 'a'); Input(b, 'b'); Input(c, 'c'); End; Procedure Kiemtra(a, b, c: Real);
  • 39. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 39 Begin If (a<b+c) And (b<a+c) And (c<a+b) then Writeln(a:0:2, ', ', b: 0: 2, ' va ', c: 0: 2, ' lap thanh ba canh cua tam giac ') Else Writeln('Khong lap thanh ba canh cua tam giac') ; End; Procedure Trung_tuyen (a, b, c: Real); Var ma, mb, mc: real; Begin ma:=sqrt((2*sqr(b)+2*sqr(c)-sqr(a))/4); mb:=sqrt((2*sqr(a)+2*sqr(c)-sqr(b))/4); mc:=sqrt((2*sqr(a)+2*sqr(b)-sqr(c))/4); Writeln('Cac trung tuyen cua tam giac la: ') ; Writeln('ma=', ma: 0: 2, ' mb=', mb: 0: 2, ' mc=', mc: 0: 2); End; {================================} Procedure Dientich (a, b, c: real); Var p, S: real; Begin p:=(a+b+c)/2; S:=sqrt(p*(p-a)*(p-b)*(p-c)); Writeln('Dien tich =', S: 0: 2); End; {================================} BEGIN Clrscr; Nhap(a, b, c); Kiemtra(a, b, c);
  • 40. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 40 Dientich(a, b, c); Trung_tuyen(a, b, c); Readln; END. Bài tập 4: Số Hoàn Hảo là số có tổng các ước của nó (trừ nó) bằng chính nó Ví dụ: 6 = 1 + 2 + 3 a. Viết chương trình kiểm tra xem 1 số có là số hoàn hảo không b. Liệt kê tất cả số hoàn hảo từ 1..2000 và đếm xem có bao nhiêu số Program So_hoan_hao; uses crt; var n,i,d,k,j: integer; Procedure hoanhao; Begin d:=0; for i:=1 to n-1 do if n mod i=0 then d:=d+i; if d=n then writeln(' So vua nhap la so hoan hao') else writeln(' So vua nhap khong la so hoan hao'); end; Procedure Viet_len; Begin write(' Day so hoan hao tu 1-->2000: '); k:=0;
  • 41. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 41 for i:=1 to 2000 do Begin d:=0; for j:=1 to i-1 do if i mod j=0 then d:=d+j; if d=i then Begin write(i: 5); k:=k+1; End; End; writeln; writeln(' Trong day 1-->2000 co ',k,' so hoan hao'); End; Begin clrscr; write(' Nhap n='); readln(n); hoanhao; vietlen; readln; End.
  • 42. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 42 Bài 5: Nhập vào 1 số nguyên gồm 4 chữ số viết chương trình con thực hiện  Kiểm tra tình chắn lẻ  Kiểm tra xem có phải là số nguyên tố không  Kiểm tra xem có phải là số chính phương không Sau đó trên chương trình chính kiểm tra và trả lời số vừa nhập thuộc số nào? Program chuong_trinh; uses crt; var i,n,k,d: integer; ok: boolean; Function chanle(n: integer): boolean; Begin ok:=true; if n mod 2<>0 then ok:=false; chanle:=ok; End; Function nguyento(n: integer): boolean; Begin ok:=true; d:=0; for i:=2 to n-1 do if n mod i=0 then d:=d+1; if d<>1 then ok:=false; nguyento:=ok; End;
  • 43. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 43 Function chinhphuong(n: integer): boolean; Begin ok:=true; k:=trunc(sqrt(n)); if sqr(k)<>n then ok:=false; chinhphuong:=ok; End; Begin clrscr; write(' Nhap n=');readln(n); if chanle(n) then writeln(' So vua nhap la chan') else writeln(' So vua nhap la so le'); if nguyento(n) then writeln(' So vua nhap la nguyen to') else writeln(' So vua nhap khong phai la so nguyen to'); if chinhphuong(n) then writeln(' So vua nhap la so chinh phuong') else writeln(' So vua nhap khong la so chinh phuong'); readln; End. Bài 6. Viết chương trình con tính a Giai Thừa với a nhập từ bàn phím Program giaithua; uses crt; var a: integer; Function gt(n: byte): Longint;
  • 44. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 44 Var s: Longint; i: byte; Begin s:=1; For i:=2 to n do s:=s*i; gt:=s; End; Begin clrscr; write ('Nhap so can tinh giai thua: ');readln(a); if a:=0 or a:=1 then writeln('Giai thua cua ',a,' = 1') else writeln('Giai thua cua',a,' =', gt(a) ); End. Bài 7. Nhập vào 1 mảng gồm n số nguyên (2<n<20). In ra các số nguyên tố có trong mảng. Program Mang; uses crt; var a: array [ 1..20] of byte; i,n,d,j,k: integer; Procedure nhap; Begin for i:=1 to n do Begin write(' a[',i,']='); readln(a[i]); End; End; Procedure nguyento; Begin write(' Day so cac so nguyen to: ');
  • 45. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 45 k:=0; for i:=1 to n do Begin d:=0; for j:=1 to a[i]-1 do if a[i] mod j=0 then d:=d+1; if d=1 then Begin write(' ',a[i]); k:=k+1; End; End; if k=0 then write(' khong co so nao') else begin writeln; writeln(' Trong day co ',k,' so nguyen to'); End; End; Begin clrscr; repeat write(' Nhap n='); readln(n); until (2<n)And(n<20); nhap; nguyento; readln; End.