61 bài tập Pascal cơ bản

Bài 1: Nhập vào 2 cạnh của một hình chữ nhật. In ra màn hình diện tích và chu vi của nó. Program HINH_CHU_NHAT;

Uses Crt;

Var a,b,s,c: real; Begin

End.

Clrscr;

Writeln(‘ TINH DIEN TICH & CHU VI HINH CHU NHAT:’); Writeln(‘--------------------------------------------------------------‘); Write('Nhap chieu dai='); readln(a);

Write('Nhap chieu rong=');readln(b);

s:=a*b;

c:=(a+b)*2;

Writeln('Dien tich hinh chu nhat la:’,s:6:2); Writeln('Chu vi hinh chu nhat:',c:6:2); Readln;

Bài 2: Nhập vào bán kính của hình tròn. In ra màn hình diện tích và chu vi của nó. Program HINHTRON;

Uses Crt;

Var r,dt,cv:real; Begin

Clrscr;

Writeln('TINH DIEN TICH & CHU VI HINH TRON:'); Writeln('------------------------------------------------------'); Write ('Nhap ban kinh R=');readln(r);

dt:=pi*r*r;

cv:=2*pi*r;

Writeln('Dien tich hinh tron la:',dt:6:2); Writeln('Chu vi hinh tron la:',cv:6:2);

Readln; End.

 

doc 39 trang Người đăng phammen30 Lượt xem 1037Lượt tải 0 Download
Bạn đang xem 20 trang mẫu của tài liệu "61 bài tập Pascal cơ bản", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
11 12 13 14	15 16 17	18 19
.........................................................................
Program BANG_SO; Uses crt;
Var i,j,n:integer; Begin
Clrscr;
Writeln(' TAO BANG SO TU 0-99'); Writeln('---------------------------------------------'); For i:=0 to 99 do
Begin
End.

End; Readln;
If (i mod 10 = 0) then
Writeln; Write(i:3)
Bài 24: Tạo hình
a)
*

b)	c)
* * * * *	*
* *
* * *
* * * *
* * * * *
Program TAO_HINH_A; Uses Crt;
Var i,j,n: integer; Begin
* * * *
* * *
* *
*
 * * *
* * * * *
* * * * * * *
* * * * * * * * *
Clrscr;
Writeln(' TAO HINH A:'); Writeln('------------------------'); Write('Nhap so dong n=');readln(n); For i:= 1 to n do
Begin
End;
For j:=1 to i do
Write('* '); Writeln;
End.
Readln;
Program TAO_HINH_B; Uses Crt;
Var i,j,n,m: integer;

Trang 10
Begin
 Clrscr;
 Writeln('	TAO HINH B'); Writeln('----------------------------'); Write('Nhap so dong n= ');readln(n); For i:= n downto 1 do
Begin
 Readln; End.

End;
For j:=1 to i do
Write('* '); Writeln;
Program TAO_HINH_C; Uses Crt;
Var i,j,n,m: integer; Begin
 Clrscr;
 Writeln('	TAO HINH C'); Writeln('----------------------------'); Write('Nhap so dong n= ');readln(n);
 For i:= 1 to n do
Begin
 Readln; End.

End;
Gotoxy(n-i+5,i+5); For j:=1 to 2*i-1 do Write('*');
Writeln;
Bài 26: Tính an (dùng chương trình con) Program LUY_THUA;
Uses Crt;
Var a,n:integer;
Function lt(a,n:integer):longint; Var i:integer; kq:longint; Begin
kq:=1;
For i:=1 to n do kq:=kq*a;
Begin

End;
Clrscr;
lt:=kq;
Writeln('CHUONG TRINH TINH A^N:'); Writeln('------------------------------------------'); Write('Nhap a = '); readln(a);
Write('Nhap n = '); readln(n); Writeln(a,'^',n,' = ',lt(a,n)); Readln;

Trang 11
End.
Bài 27: Tính n! (dùng chương trình con) Program GIAI_THUA;
Uses Crt;
Var n:integer;
Function gt(n:integer):longint; Var kq,i:integer;
Begin
Begin

End;
Clrscr;
kq:=1;
For i:=1 to n do kq:=kq*i;
gt:=kq;
End.
Writeln('CHUONG TRINH TINH N! :'); Writeln('---------------------------------------'); Write('Nhap n = '); readln(n);
Writeln(n,'! = ',gt(n)); Readln;
Bài 28: Tính C kn (dùng chương trình con) Program TO_HOP;
Uses Crt;
Var n,k:integer;
Function gt(n:integer):longint; Var kq,i:integer;
Begin
End;
kq:=1;
For i:=1 to n do kq:=kq*i;
gt:=kq;
Function C(n,k:integer):real; Begin
Begin

End;
Clrscr;
c:=gt(n)/(gt(k)*gt(n-k));
End.
Writeln('CHUONG TRINH TINH N CHAP K :'); Writeln('----------------------------------------------'); Write('Nhap n = '); readln(n);
Write('Nhap k = ');readln(k); Writeln('C(',n,',',k,') = ',c(n,k):6:0); Readln;
Bài 29: Lập tam giác PASCAL, bằng Cn k(dùng chương trình con) 
n 
Program TAM_GIAC_PASCAL; Uses Crt;
Var i,j,n,k:integer;

Trang 12
Function gt(n:integer):longint; Var kq,i:integer;
Begin
End;
kq:=1;
For i:=1 to n do kq:=kq*i;
gt:=kq;
Function C(k,n:integer):real; Begin
Begin

End;
Clrscr;
C:=gt(n)/(gt(k)*gt(n-k));
Writeln('VIET TAM GIAC PASCAL:'); Writeln('---------------------------------'); Write(' Nhap n = '); readln(n);
For i:=0 to n do
Begin
End.

End; Readln;
For j:=0 to i do
Write(C(j,i):3:0); Writeln;
Bài 30: Viết các chương trình con tính diện tích tam giác, tròn, vuông, chữ nhật trong một chương trình. Sau đó hỏi chọn một trong các phương án tính diện tích bằng cách chọn trong bảng chọn lệnh sau:
0. Không làm gì hết và trở về màn hình soạn thảo.
1. Tính diện tích hình vuông
2. Tính diện tích hình tròn
3. Tính diện tích tam giác
4. Tính diện tích hình chӳ nhұt
Program TINH_DIEN_TICH; Uses crt;
Procedure HV;
Var s,a:real; Begin
End;
Writeln('TINH DIEN TICH HINH VUONG:'); Write('Nhap chieu dai cua canh a = ');readln(a); s:=a*a;
Writeln('Dien tich hinh vuong = ',s:6:2);
Procedure HT;
Var s,r:real; Begin
End;
Writeln('TINH DIEN TICH HINH TRON:'); Write('Nhap ban kinh R = ');readln(r); s:=pi*r*r;
Writeln('Dien tich hinh tron = ',s:6:2);
Procedure TG;

Trang 13
Var a, b, c,s,p:real; Begin
Writeln('TINH DIEN TICH TAM GIAC:'); Write('nhap a =');readln(a);
Write ('nhap b =');readln(b); Write('nhap c =');readln(c);
If ((a+b)>c)and((b+c)>a)and((a+c)>b) then
Begin
End;

End
Else
p:=(a+b+c)/2;
s:=sqrt(p*(p-a)*(p-b)*(p-c)); Writeln('Chu vi tam giac:',2*p:4:2) ; Writeln('Dien tich tam giac:',s:4:2);
Writeln(a,', ',', ',c,' khong phai la ba canh cua tam giac') ;
Procedure CN;
Var a, b, s:real; Begin
End;
Writeln('TINH DIEN TICH HINH CHU NHAT:'); Write('Nhap chieu dai a =');readln(a);
Write('Nhap chieu rong b= ');readln(b);
s:= a*b;
Writeln('Dien tich hinh chu nhat, s= ',s:6:2);
Procedure menu; Var d:integer; Begin
Clrscr;
Writeln('CHON MOT TRONG CAC PHUONG AN SAU:'); Writeln('----------------------------------------------------------'); Writeln('0: Quay ve man hinh soan thao');
Writeln('1: Tinh dien tich hinh vuong'); Writeln('2: Tinh dien tich hinh tron'); Writeln('3: tinh dien tich tam giac'); Writeln('4: Tinh dien tich hinh chu nhat');
Writeln('===================================='); Write(' Hay chon mot phuong an: '); readln(d); Writeln('===================================='); Writeln;
Case d of
0: Exit;
1: HV;
2: HT;
3: TG;
4: CN;
End; Begin
End.
End;
menu; Readln;

Trang 14
Bài 31: Tính các số Fibonacci:
-	F1=F2 = 1
-	Fn = Fn-1 + Fn-2
Program FIBONACII; Uses Crt;
Var n,kq:integer;
Function F(n:integer):integer; Begin
If (n=1) or (n=2) then
F:=1
Begin

End;
Clrscr;
Else

F:=F(n-1)+F(n-2);
End.
Writeln(' TINH SO FIBONACII:'); Writeln('-------------------------------'); Write('Nhap n = '); Readln(n); Write('F(',n,')= ',f(n));
Readln;
Bài 32: Viết chương trình tìm số đảo của một số nguyên dương . Ví dụ: - Số = 12345
- Số đảo = 54321
Program TIM_SO_DAO; Uses crt;
Var n:longint;
Function daoso(n: longint):longint; Var	s:string;
ch:char; i,l,code:integer; kq:longint;
Begin

str(n,s);
For i:=1 to length(s) div 2 do
Begin
End;
ch:=s[i]; s[i]:=s[length(s)-i+1]; s[length(s)-i+1]:=ch;
Begin

End;
Clrscr;
val(s,kq,code);
daoso:=kq;
End.
Writeln(' TIM SO DAO CUA MOT SO'); Writeln('--------------------------------------'); Write('Nhap so can tim dao n= ');readln(n); Writeln('So dao cua ',n,' la: ', daoso(n)); Readln;
Trang 15
n
Bài 33: Tính tổng S = å 1 (dùng chương trình con)
i=0 i!
Program TONG1; Uses Crt;
Var	i,n:integer;
s:real;
Function gt(n:integer):longint; Var kq,i:integer;
Begin
Begin

End;
Clrscr;
kq:=1;
For i:=1 to n do kq:=kq*i;
gt:=kq;
End.
Writeln(' CHUONG TRINH TINH TONG:'); Writeln('----------------------------------------------'); Write('Nhap n='); Readln(n);
S:=1;
For i:= 1 to n do
S:=S+1/gt(i); Write('Tong la: ',S:6:2); Readln;
n
Bài 34: Tính tổng S = å x i (dùng chương trình con)
i=1
Program TONG2; Uses Crt;
Var	i,x,n:integer;
s:longint;
Function lt(a,n:integer):longint; Var	i:integer;
kq:longint;
Begin

kq:=1;
For i:=1 to n do kq:=kq*a;
Begin

End;
Clrscr;
lt:=kq;
Writeln(' CHUONG TRINH TINH TONG:'); Writeln('----------------------------------------------'); Write('Nhap x = ');readln(x);
Write('Nhap n='); Readln(n);
 S:=0;
For i:= 1 to n do S:=S+lt(x,i); Writeln('Tong la: ',s);
Trang 16
End.
Readln;
= (dùng chương trình con)
Bài 35: Tính tổng S
Program TONG3; Uses Crt;
Var i,x,n:integer;
s:real;

Function lt(a,n:integer):longint; Var i:integer;
kq:longint;
Begin

kq:=1;
For i:=1 to n do kq:=kq*a;
End;
lt:=kq;
Function gt(n:integer):longint; Var kq,i:longint;
Begin
End;
kq:=1;
For i:=1 to n do kq:=kq*i;
gt:=kq;
Begin
End.

Clrscr;
Writeln(' CHUONG TRINH TINH TONG:'); Writeln('-------------------------------'); Write('Nhap x = ');readln(x);
Write('Nhap n= '); Readln(n); S:=0;
For i:= 0 to n do
S:=S+(1+lt(x,i))/gt(1+i); Writeln('Tong la: ',s:6:2); Readln;
Bài 36: Giải hệ phương trình: Viết chương trình giải hệ phương trình tuyến tính 2 ẩn dùng ma trận.
a11.x	+ a12.y = c1
a21	+ a22.y = c2
Bài 37: Hãy viết chương trình nhập giá trị cho ma trận vuông cấp n. 
 a. Tính tổng các phần tử nằm trên đường chéo chính
b. Tính tổng bình phương các số nằm trên hàng chẵn. 
c. Tính tổng căn bậc hai các số không âm trên cột lẻ. 
d. Đếm số phần tử có giá trị trong khoảng [1..5].
Program MAT_TRAN1; Uses Crt;
Type MT = array[1..20,1..20] of integer;

Trang 17
Var	a:MT;
n:integer;
Procedure Input(Var a:MT; n:integer); Var i, j:integer;
Begin
For i:=1 to n do
For j:=1 to n do
Begin
End;

End;
Write('a',i,j,'='); Readln(a[i,j]);
Procedure Output(a:MT;n:integer); Var i,j:integer;
Begin
For i:=1 to n do
Begin
End;

End;
For j:=1 to n do
Write (a[i,j]:3); Writeln;
{Tong cac phan tu tren duong cheo chinh} Function Sum1(a:MT;n:integer):integer;
Var i,kq:integer; Begin
End;
kq:=0;
For i:=1 to n do kq:=kq + a[i,i];
sum1:=kq;
{Tong binh phuong cac so tren hang chan} Function Sum2(a:MT;n:integer):integer;
Var i,j,kq:integer; Begin
End;
kq:=0;
For i:=1 to n do
For j:=1 to n do
If(i mod 2 =0) then kq:=kq+SQR(a[i,j]); Sum2:=kq;
{Tong can bac hai cac so tren cot le} Function Sum3(a:MT;n:integer):real;
Var	i,j:integer;
kq:real;
Begin

kq:=0;

For i:=1 to n do
For j:=1 to n do
If (j mod 2 =1) and (a[i,j]>=0)then kq:=kq + SQRT(a[i,j]);
End;
Sum3:=kq;

Trang 18
{So phan tu cua ma tran co gia tri nam trong [1..5]} Function Count(a:MT;n:integer):integer;
Var i,j,kq:integer; Begin
kq:=0;
For i:=1 to n do
For j:=1 to n do
If (a[i,j]>=1) and(a[i,j]<=5) then kq:=kq+1;
Begin

End;
Count:=kq;
End.
Writeln('CHUONG TRINH TINH TONG CAC PHAN TU CUA MA TRAN'); Writeln('-----------------------------------------------');
Write('Nhap cap cua ma tran n = ');readln(n); Input(a,n);
Output(a,n);
Writeln('Tong cac phan tu tren duong cheo chinh la = ',sum1(a,n)); Writeln('Tong binh phuong cac phan tu tren hang chan la = ',sum2(a,n)); Writeln('Tong can bac hai cac so khong am tren cot le = ',sum3(a,n):6:2); Writeln('So phan tu trong khoang[1..5] = ', count(a,n));
Readln;
Bài 38: Viết chương trình nhập vào một ma trân, tính tổng bình phương của các số âm trong ma trận trên.
Program MAT_TRAN2; Uses Crt;
Type MT = array[1..20,1..20] of integer; Var a:MT;
n,m:integer;
Procedure Input(Var a:MT; n,m:integer); Var i, j:integer;
Begin
For i:=1 to n do
For j:=1 to m do
Begin
End;

End;
Write('a',i,j,'='); Readln(a[i,j]);
Procedure Output(a:MT;n,m:integer); Var i,j:integer;
Begin
For i:=1 to n do
Begin
End;

End;
For j:=1 to m do
write (a[i,j]:3);
writeln;
{Tong binh phuong cac phan tu am} Function Sum(a:MT;n,m:integer):integer;

Trang 19
Var i,j,kq:integer;
 Begin
kq:=0;
For i:=1 to n do
For j:=1 to m do
If(a[i,j]< 0) then kq:=kq+SQR(a[i,j]);
End; Begin
End.
Sum:=kq;
Clrscr;
Writeln('TINH TONG BINH CAC PHAN TU AM'); Writeln('------------------------------');
Write('Nhap vao so dong n = ');readln(n); Write('Nhap vao so cot m = ');readln(m); Input(a,n,m);
Output(a,n,m);
Writeln('Tong binh phuong cac phan tu am = ',sum(a,n,m)); Readln;
Bài 39: Viết chương trình nhập vào một ma trận. In ma trận chuyển vị của nó ra
 màn hình. Ma trận B là ma trận chuyển vị của ma trận A nếu các phần tử của chúng có quan hệ B[i, j] = A[j, i].
Program MAT_TRAN_CHUYEN_VI; Uses Crt;
Type MT = array[1..20,1..20] of integer; Var	a,b:MT;
n,m:integer;
Procedure Input(Var a:MT; n,m:integer); Var i, j:integer;
Begin
For i:=1 to n do
For j:=1 to m do
Begin
End;

End;
Write('a',i,j,'='); Readln(a[i,j]);
Procedure Output(a:MT;n,m:integer); Var i,j:integer;
Begin
For i:=1 to n do
Begin
End;

End;
For j:=1 to m do
write (a[i,j]:3);
writeln;
Procedure Chuyenvi(a:MT;n,m:integer; var b:MT); Var i,j:integer;
Begin
For j:=1 to m do
For i:=1 to n do

Trang 20
End; Begin

Clrscr;
b[j,i]:=a[i,j];
End.
Writeln('TIM MA TRAN CHUYEN VI'); Writeln('----------------------');
Write('Nhap vao so dong n = ');readln(n); Write('Nhap vao so cot m = ');readln(m); Input(a,n,m);
Writeln('Ma tran a la:'); Output(a,n,m); Chuyenvi(a,n,m,b);
Writeln('Ma tran chuyen vi b la:'); Output(b,m,n);
Readln;
Bài 40 :Viết chương trình nhập vào một ma trận A vuông cấp n. Chuyển A thành chính mà trận chuyển vị của A (không sử dụng ma trận trung gian).
Program MAT_TRAN_CHUYEN_VI; Uses Crt;
Type MT = array[1..20,1..20] of integer; Var	a,b:MT;
n,m:integer;
Procedure Input(Var a:MT;n:integer); Var	i, j:integer;
Begin
For i:=1 to n do
For j:=1 to n do
Begin
End;

End;
Write('a',i,j,'='); Readln(a[i,j]);
Procedure Output(a:MT;n:integer); Var i,j:integer;
Begin
For i:=1 to n do
Begin
End;

End;
For j:=1 to n do
Write (a[i,j]:3); Writeln;
Procedure Chuyenvi(var a:MT; n:integer); Var	i,j,t:integer;
Begin
For i:=1 to n do
For j:=i+1 to n do
Begin
End;
t:=a[i,j]; a[i,j]:=a[j,i]; a[j,i]:=t;

Trang 21
End; Begin
End.

Clrscr;
Writeln('TIM MA TRAN CHUYEN VI'); Writeln('-------------------------------------');
Write('Nhap vao cap ma tran vuong n = ');readln(n); Input(a,n);
Writeln('Ma tran a la:'); Output(a,n); Chuyenvi(a,n);
Writeln('Ma tran chuyen vi b la:'); Output(a,n);
Readln;
Bài 41: Viết chương trình nhập vào một dãy số nguyên có n phần tử. In ra màn hình phần tử nhỏ nhất, phần tử lớn nhất và giá trị trung bình của danh sách ra màn hình. Program MAX_MIN_AVG;
Uses crt;
Var a:array[1..20]of integer;i,n,max,min,sum:integer; Begin
Clrscr;
Writeln('TIM MAX, MIN, AVERAGE CUA MOT DAY SO'); Writeln('-------------------------------------');
Write('Nhap so phan tu cua day n=');readln(n); For i:=1 to n do
Begin
End;
Write('Nhap a[',i,']=');readln(a[i]);
Min:=a[1]; Max:=a[1]; Sum:=0; For i:=1 to n do
Begin
End;
If (Min > a[i]) then Min:=a[i]; If (Max < a[i]) then Max:=a[i]; Sum :=sum+a[i];
End.
Writeln('Day so vua nhap la: '); Writeln('-------------------------'); For i:=1 to n do
Write(a[i]:4); Writeln;
Writeln('Gia tri lon nhat la:',Max); Writeln('gia tri nho nhat la:',Min); Writeln('gia tri trung binh la:',Sum/n:6:2); Readln;
Bài 42: Viết chương trình nhập vào một dãy số nguyên có n phần tử.
a. Đưa những phần tử lẻ ra đầu danh sách, những phần tử chẵn về cuối danh sách và in kết quả ra màn hình.
b. Sắp xếp các phần tử lẻ đầu danh sách theo thứ tứ tăng dần, sắp xếp các phần tử
chẵn cuối danh sách theo thứ tự giảm dần. In danh sách ra màn hình. Program DAY_CHAN_LE;
Uses crt;
Trang 22
Type ma=array[1..50] of integer; Var	a:ma;n:integer;
Procedure Input(var a:ma;n:integer); Var i: integer;
Begin
For i:=1 to n do
Begin
End;

End;
Write('nhap phan tu thu ',i,'='); Readln(a[i]);
Procedure Output(a:ma;n:integer); Var i:integer;
Begin
End;
For i:=1 to n do
Write(a[i]:3);
Procedure Odd_Even(var a:ma;n:integer); Var l,r,t:integer;
Begin
l:=1; r:=n; Repeat
While (l<r) and (a[l] mod 2 = 1) do l:=l+1;
While (r>l) and (a[r] mod 2 = 0) do r:=r-1;
If l<r then
Begin
End;

End; Until l>=r;
t:=a[l]; a[l]:=a[r]; a[r]:=t;
Procedure Sort( var a:ma;n:integer); Var i,j,k,t:integer;
Begin
k:=0;
For i :=1 to n do
If a[i] mod 2 0 then k:=k+1; For i:=1 to k-1 do
For j :=i+1 to k do
If a[i]>a[j] then
Begin
End;
t:=a[i]; a[i]:=a[j]; a[j]:=t;
For i:=k+1 to n -1 do
For j :=i+1 to n do
If a[i]<a[j] then

Trang 23
End; Begin

Clrscr;
Begin
End;

t:=a[i]; a[i]:=a[j]; a[j]:=t;
End.
Writeln('CHUONG TRINH SAP XEP CHAN LE'); Writeln('------------------------------------------------'); Write('Nhap so phan tu cua day n= ');readln(n); Input(a,n);
Writeln('Day ban bau la: '); Output(a,n); odd_even(a,n);
Writeln;
Writeln('Day sau tach le va chan:'); Output(a,n);
Writeln;
Writeln('Day sau sap xep la:'); Sort(a,n);
Output(a,n); Readln;
Bài 43: Chuyển 1 số từ hệ thập phân sang nhị phân. Program DOI_THAP_PHAN_SANG_NHI_PHAN; Uses Crt;
Var	d:array[1..20] of byte;
i,j,n:integer;
Begin
End.

Clrscr;
Writeln('DOI SO THAP PHAN SANG NHI PHAN:'); Writeln('--------------------------------------------------'); Write('Nhap so thap phan la n='); Readln(n);
i:=1; Repeat
d[i]:=n mod 2; n:=n div 2; i:=i+1;
Until(n=0);
Write('So nhi phan la:'); For j:=i-1 downto 1 do Write (d[j]);
Readln;
Bài 44: Chuyển 1 số từ hệ thập phân sang bát phân. Program DOI_THAP_PHAN_SANG_BAT_PHAN; Uses Crt;
Var	d:array[1..20] of byte;
i,j,n:integer;
Begin

Clrscr;

Trang 24
End.
Writeln('DOI SO THAP PHAN SANG BAT PHAN:'); Writeln('-------------------------------');
Write('Nhap so can doi n = ');Readln(n);
i:=1; Repeat
d[i]:=n mod 8; n:=n div 8; i:=i+1;
Until n=0;
Write('So bat phan la:'); For j:=i-1 downto 1 do Write(d[j]);
Readln;
Bài 45: Viết chương trình nhập vào một chuỗi kí tự, sau đó nhập vào một kí tự bất kì và
đếm số lần của nó trong chuỗi đã nhập. 
Program DEM_SO_KY_TU;
Uses Crt;
Var	st:string[30];
x:char;i,dem:integer;
Begin
End.

Clrscr;
Writeln('DIEM SO LAN XUAT HIEN CUA 1 KY TU'); Writeln('------------------------------------------------------'); Write('Nhap chuoi ky tu la:');readln(st);
Write('Nhap ky tu x=');readln(x);
dem:=0;
For i:=1 to length(st) do
If x= st[i] then dem:=dem+1;
Writeln('so lan xuat hien cua ',x,' trong chuoi "', st,'" la: ',dem); Readln;
Bài 46: Viết chương trình nhập vào một chuỗi ký tự, Kiểm tra xem nó có đối xứng hay không (Ví dụ: Chuỗi đối xứng RADAR, MADAM).
Program CHUOI_DOI_XUNG; Uses Crt;
Var	st:string; i:integer; ok:boolean;
Begin

Clrscr;
Writeln('KIEM TRA CHUOI DOI XUNG'); Writeln('----------------------------------------'); Write('Nhap chuoi ky tu: ');Readln(st);
ok:= true;
For i:=1 to length(St)div 2 do
If st[i]st[length(st)-i+1] then ok:=false;
If ok then
Writeln(st,' la chuoi doi xung')
Else

Writeln(st, ' khong la chuoi doi xung');

Trang 25
End.
Readln;
Bài 47: Viết chương trình nhập vào họ tên của một người. Sau đó in chuỗi họ tên ra màn hình với các ký tự đầu đổi thành chữ hoa, toàn bộ chuỗi họ và tên đổi thành chữ hoa. Program DOI_CHUOI_CHU_HOA;
Uses Crt;
Var i:integer;st:string; Begin
End.
Clrscr;
Writeln('DOI CHUOI SANG CHUOI HOA'); Writeln('-----------------------------------------'); Write('Nhap ho ten:');readln(st); st[1]:=upcase(st[1]);
For i:=1 to length(St) do
If st[i]=' ' then st[i+1]:=upcase(st[i+1]); Writeln('Ho ten sau khi doi lan 1 la: ',st);
For i:=1 to length(St) do st[i]:=upcase(st[i]);
Writeln('Ho ten sau khi doi lan 2 la: ',st); Readln;
Bài 48: Viết chương trình nhập vào một chuỗi ký tự . Sau đó in chuỗi ra màn hình với các ký tự đầu đổi thành chữ thường, các ký tự cuối của từ trong chuỗi sang chữ hoa. 
Program CHUOI_CHU_THUONG;
Uses	Crt;
Var	i,l:integer;
st:string[50];
Begin

Clrscr;
Writeln('DOI CHUOI SANG CHUOI CHU THUONG'); Writeln('------------------------------------------------------'); Write('Nhap chuoi ky tu: '); Readln(st);
For i:=1 to length(st) do
If (st[i]>='A') and (st[i]<='Z') then st[i]:= chr(ord(st[i])+32);
End.
Writeln;
Writeln('Chuoi doi thanh chu thuong la : '); Writeln(st);
Writeln; l:=length(st); st[l]:=upcase(st[l]); For i:=l downto 2 do
If st[i]=' ' then st[i-1]:=upcase(st[i-1]); Writeln('Chuoi cac ky tu cuoi cua tu la ky tu hoa: '); Writeln(st);
Readln;
Bài 49.1: Viết chương trình cộng hai số phức A, B. Program TONG_SO_PHUC;
Uses Crt; Type
sophuc= record

Trang 26
 pa,pt:real;
end;
Var	a,b,c:sophuc; Begin
Clrscr;
Writeln('TONG HAI SO PHUC'); Writeln('----------------------------');
Write('Nhap phan thuc cua so a=');readln(a.pt); Write('Nhap phan ao cua so a=');readln(a.pa); Write('Nhap phan thuc cua so b=');readln(b.pt); Write('Nhap phan ao cua so b=');readln(b.pa); c.pt:=a.pt +b.pt;
c.pa:=a.pa + b.pa;
Writeln('Tong cua hai so phuc a va b la: '); If c.pa<0 then
Writeln('c=',c.pt:6:2,'-j',abs(c.pa):4:2)
Else

Writeln('c=',c.pt:6:2,'+j',c.pa:4:2);
End.
Readln;
Bài 49.2: Viết chương trình nhân hai số phức A, B. Program NHAN_SO_PHUC;
Uses Crt; Type
sophuc= record
 pa,pt:real;
end;
Var	a,b,c:sophuc; Begin
Clrscr;
Writeln('NHAN HAI SO PHUC'); Writeln('----------------------------');
Write('Nhap phan thuc cua so a=');readln(a.pt); Write('Nhap phan ao cua so a=');readln(a.pa); Write('Nhap phan thuc cua so b=');readln(b.pt); Write('Nhap phan ao cua so b=');readln(b.pa); c.pt:=(a.pt)*(b.pt)-(a.pa)*(b.pa); c.pa:=(a.pa)*(b.pt)+(a.pt)*(b.pa);
Writeln('Tich cua hai so phuc a va b la: '); If c.pa<0 then
Writeln('c=',c.pt:6:2,'-j',abs(c.pa):4:2)
Else

Writeln('c=',c.pt:6:2,'+j',c.pa:4:2);
End.
Readln;
Bài 50. Viết chương trình đọc vào hai đa thức. Thực hiện phép cộng hai đa thức rồi in kết quả ra màn hình.
Mô tả: CONST
Bacmax = 50;
TYPE

Trang 27
Dathuc = Record
Bac: Integer; Heso:Array[0..Bacmax] of Real;
End; Program CONG_DA_THUC; Uses	Crt;
Type dathuc=record
 bac:integer;
heso:array[0..50]of integer;
 end;
Var a,b,c:dathuc;i:integer; Begin
Clrscr;
Writeln(‘CONG HAI DA THUC’); Writeln(‘----------------------------‘);
Write('Nhap bac cua da thuc a= ');Readln(a.bac); Writeln('nhap he so cua da thuc a:');
For i:=0 to a.bac do
Begin
End;
Write('nhap he so a[',i,']:='); Readln(a.heso[i]);
Write('Nhap bac cua da thuc b= ');Readln(b.bac); Writeln('nhap he so cua da thuc b:');
For i:=0 to b.bac do
Begin
End;
Write('nhap he so b[',i,']:='); Readln(b.heso[i]);
If a.bac <b.bac then
Begin
Else

End
Begin
End;
c.bac:=b.bac;
For i:=0 to a.bac do c.heso[i]:=a.heso[i]+b.heso[i];
For i:=a.bac+1 to b.bac do c.heso[i]:=b.heso[i];
c.bac:=a.bac;
For i:=0 to b.bac do c.heso[i]:=a.heso[i]+b.heso[i];
For i:=b.bac+1 to a.bac do c.heso[i]:=a.heso[i];
End.
Writeln('Bac cua da thuc tong la: ',c.bac); Write('Cac he so lan luot la: ');
For i:=0 to c.bac do
Write(c.heso[i]:2); Readln;
Bài 51: Viết chương trình nhập vào một dãy số nguyên có n phần tử.

Trang 28
a. Sắp xếp dãy theo thứ tự tăng dần và in kết quả ra màn hình.
b. Nhập vào một số x bất kì, đếm số lần xuất hiện của nó trong dãy trên. c. In ra màn hình số phần tử nhỏ hơn hoặc bằng x.
d. In ra màn hình số p

Tài liệu đính kèm:

  • doc61_BT_Pascal_co_ban_BDHSG.doc