Tải bản đầy đủ (.doc) (42 trang)

Ngôn ngữ lập trình pascal

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (148.42 KB, 42 trang )

bài tập
ngôn ngữ lập trình pascal
phần I: các bài tập làm quen cấu trúc
điều khiển, cấu trúc lặp
phần II: các bài tập mảng
phần III: các bài tập xâu
phần IV: các bài tập bản ghi
phần V: các bài tập tệp
Trang 1
Phần I: Các bài tập làm quen cấu trúc điều khiển, cấu trúc lặp
Bài tập: Tìm số lớn nhất trong 3 số a,b,c.
program BT;
var a,b,c,max:real;
begin
write('nhap a,b,c=');
readln(a,b,c);
max:=a;
if max<b then max:=b;
if max<c then max:=c;
writeln('gia tri lon nhat=',max);
readln;
end.
Bài tập: Tìm giá trị tuyệt đối của số x.
program BT;
var x,gttd:real;
begin
write('nhap x=');
readln(x);
if x<0 then gttd:=-x
else gttd:=x;
writeln('gia tri tuyet doi cua x=',gttd);


readln;
end.
Bài tập: Nhập vào số đo 3 đoạn thẳng. Kiểm tra xem 3 đoạn thẳng đó có lập
thành một tam giác hay không.
program BT;
var a,b,c:real;
begin
repeat
write('nhap a,b,c la so duong=');
readln(a,b,c);
until (a>0) and (b>0) and (c>0);
if (a+b>c) and (a+c>b) and (b+c>a) then
writeln('a,b,c la 3 canh cua mot tam giac')
else
writeln('a,b,c khong la 3 canh cua mot tam giac');
readln;
end.
Trang 2
Bµi tËp: NhËp vµo mét sè nguyªn d¬ng, kiÓm tra xem sè ®ã cã ph¶i lµ sè nguyªn
tè hay kh«ng.
program BT;
var n:integer;
function snt(n:integer):boolean;
var i:integer;
begin
snt:=true;
for i:=2 to trunc(sqrt(n)) do
if n mod i = 0 then
begin
snt:=false;

exit;
end;
end;
begin
repeat
write('nhap n la so nguyen duong=');
readln(n);
until n>0;
if snt(n) then writeln(n,' la so nguyen to')
else writeln(n,' khong phai la so nguyen to');
readln;
end.
Bµi tËp: NhËp vµo mét sè nguyªn d¬ng, kiÓm tra xem sè ®ã cã ph¶i lµ sè chÝnh
ph¬ng hay kh«ng.
program BT;
var x:integer;
y:real;
begin
repeat
write('nhap x la so nguyen duong=');
readln(x);
until x>0;
y:=sqrt(x);
if(trunc(y)-y=0) then
writeln('day la so chinh phuong')
else
writeln('day khong phai la so chinh phuong');
readln;
end.
Trang 3

Bài tập: Tìm tất cả các số nguyên tố nhỏ hơn n ( n là một số nguyên dơng đợc
nhập vào từ bàn phím ).
program BT;
var i,n:integer;
function snt(x:integer):boolean;
var i:integer;
begin
snt:=true;
for i:=2 to trunc(sqrt(x)) do
if x mod i = 0 then
begin
snt:=false;
exit;
end;
end;
begin
repeat
write('nhap n la so nguyen duong=');
readln(n);
until n>0;
for i:=2 to n do
if snt(i) then write(i:8);
readln;
end.
Bài tập: Tìm tổng s=1-
3
1
+
5
1

- vi
ai
=
i
1
sao cho
ai


Epsilon cho trớc.
program BT;
var i,ai:integer;
s,e:real;
begin
write('nhap epsilon=');
readln(e);
s:=1;
ai:=1;
i:=2;
while ai<e do
begin
ai:=2*i-1;
if i mod 2=1 then s:=s+1/ai
else s:=s-1/ai;
inc(i);
end;
writeln('tong s= ',s:2:2);
readln;
end.
Trang 4

Bài tập:Viết ra màn hình n số hạng đầu tiên trong dãy số Fibonaxi. Dãy Fibonaxi
là dãy thoả mãn:
F
i
= 1 <=> i = 1, 2

F
i-2
+ F
i-1
<=> i

3
program BT;
var t,s,i,n:integer;
begin
repeat
write('nhap n la so nguyen duong=');
readln(n);
until n>0;
t:=1;
s:=1;
write(t:8);
write(s:8);
for i:=3 to n do
begin
s:=s+t;
t:=s-t;
write(s:8);
end;

readln;
end.
Bài tập: Tìm số tự nhiên nhỏ nhất có đúng n ớc số.
program BT;
var n,i,d,so:integer;
begin
repeat
write('nhap n la so nguyen duong=');
readln(n);
until n>0;
so:=n-1;
d:=0;
while d<>n do
begin
d:=0;
so:=so+1;
for i:=1 to so do
if so mod i=0 then d:=d+1;
end;
writeln('so co ',n,' uoc so nho nhat la ',so);
readln;
end.
Trang 5
Bµi tËp: NhËp vµo mét sè nguyªn d¬ng, kiÓm tra xem sè ®ã cã bao nhiªu íc.
program BT;
var n,i,d:integer;
begin
repeat
write('nhap n la so nguyen duong=');
readln(n);

until n>0;
i:=1;
d:=0;
for i:=1 to n do
if n mod i=0 then d:=d+1;
writeln('so ',n,' co so uoc la ',d);
readln;
end.
Bµi tËp: Gi¶i vµ biÖn luËn ph¬ng tr×nh bËc nhÊt 2 Èn:
ax + by = c
dx + ey = f
program BT;
var a,b,c,d,e,f,M,Dx,Dy,x,y:real;
begin
write('nhap a,b,c,d,e,f=');
readln(a,b,c,d,e,f);
M:=a*e-b*d;
Dx:=c*e-b*f;
Dy:=a*f-c*d;
if (Dx<>0) and (Dy<>0) then
begin
x:=Dx/M;
y:=Dy/M;
writeln('x=',x);
writeln('y=',y);
end
else
if (Dx=0) and (Dy=0) then
writeln('he pt co vo so nghiem')
else

writeln('he pt vo nghiem');
readln;
end.
Trang 6
Bµi tËp: Gi¶i vµ biÖn luËn ph¬ng tr×nh bËc nhÊt 1 Èn:
ax + b = 0
program BT;
var a,b,x:real;
begin
write('nhap a,b=');
readln(a,b);
if a=0 then
if b=0 then writeln('pt vo so nghiem')
else writeln(' pt vo nghiem')
else
begin
x:=-b/a;
writeln('x=',x);
end;
readln;
end.
Bµi tËp: Gi¶i vµ biÖn luËn ph¬ng tr×nh bËc 2:
ax
2
+ bx + c = 0
program BT;
var a,b,c,d,x1,x2:real;
begin
write('nhap a,b,c=');
readln(a,b,c);

d:=b*b-4*a*c;
if d<0 then writeln('pt vo nghiem')
else if d=0 then writeln('pt co nghiem kep=',-b/2*a)
else begin
writeln('pt co 2 nghiem');
x1:=((-b+sqrt(d))/(2*a));
x2:=((-b-sqrt(d))/(2*a));
writeln('x1=',x1:5:2);
writeln('x2=',x2:5:2);
end;
readln;
end.
Trang 7
Bài tập: Tìm ớc số chung lớn nhất của 2 số nguyên dơng a,b.
program BT;
var a,b:integer;
begin
repeat
write('nhap a,b la so nguyen duong=');
readln(a,b);
until (a>0) and (b>0);
while a<>b do if a>b then a:=a-b
else b:=b-a;
writeln('uscln=',a);
readln;
end.
Bài tập: Tìm bội số chung nhỏ nhất của 2 số nguyên dơng a,b.
program BT;
var a,b,m,n:integer;
begin

repeat
write('nhap a,b la so nguyen duong=');
readln(a,b);
until (a>0) and (b>0);
m:=a;
n:=b;
while a<>b do if a>b then a:=a-b
else b:=b-a;
writeln('bscnn=',(m*n)/a);
readln;
end.

Bài tập: Tính giá trị luỹ thừa với cơ số x và số mũ y ( x

0 ).
program BT;
var x,y,z:real;
begin
write('nhap x,y=');
readln(x,y);
if x>0 then
begin
z:=exp(y*ln(x));
writeln('gia tri can tim la ',z:10:10);
end
else if x=0 then writeln('gia tri can tim la 0')
else begin
writeln('ko tinh dc gia tri do x khong thoa man');
readln;
end;

readln;
end.
Trang 8
Bài tập: "Nhân ấn độ": Để nhân hai số nguyên dơng x và y, ngời ta thực hiện
đồng thời (số lần thực hiện nh nhau) hai thao tác:
- Lấy x chia cho 2 lấy phần nguyên.
- Lấy y nhân với 2.
Quá trình trên sẽ dừng lại khi x=1. Trong quá trình thực hiện ngời ta ghi nhớ x là
lẻ. Tổng của các số y trong các lần x lẻ trong quá trình thực hiện chính là kết quả
của phép nhân ấn độ x
ì
y. Hãy cài đặt thuật toán trên dới dạng một hàm để
tính tích của hai số x và y.
program BT;
var S,a,b:integer;
begin
repeat
write('nhap a,b la so nguyen duong=');
readln(a,b);
until (a>0) and (b>0);
S:=0;
while a<>1 do
begin
if a mod 2=1 then
S:=S+b;
a:=a div 2;
b:=b*2;
end;
S:=S+b;
writeln('tich cua a va b=',S);

readln;
end.
Bài tập: Tìm S =

=
n
i
i
1
program BT;
var i,n,S:integer;
begin
repeat
write('nhap n la so nguyen duong=');
readln(n);
until n>0;
S:=0;
for i:=1 to n do
S:=S+i;
writeln('tong S= ',S);
readln;
end.
Trang 9
Bµi tËp: TÝnh P!
program BT;
var i,n,P:longint;
begin
repeat
write('nhap n la so duong=');
readln(n);

until n>=0;
P:=1;
for i:=1 to n do
P:=P*i;
writeln('P = ',P);
readln;
end.
Bµi tËp: ViÕt ra mµn h×nh d·y sè sau:
12;34;56;78;100;
program BT;
var i,n,s:integer;
begin
repeat
write('nhap n la so nguyen duong=');
readln(n);
until n>0;
s:=12;
write(s:8);
for i:=2 to n do
begin
s:=s+22;
write(s:8);
end;
readln;
end.
Trang 10
Bµi tËp: TÝnh chØnh hîp chËp k cña n phÇn tö trong tËp A.

A
k

n
=
)!(
!
kn
n

(1

k

n) (k, n

Z)
program BT;
var i,a,b,x,y,n,k:longint;
begin
repeat
write('nhap k la so nguyen duong >=1 =');
readln(k);
until k>=1;
repeat
write('nhap n la so nguyen duong >=k =');
readln(n);
until n>=k;
a:=1;b:=1;
for i:=1 to n do
a:=a*i;x:=a;
for i:=1 to (n-k) do
b:=b*i;y:=b;

writeln('chinh hop = ',x/y);
readln;
end.
Bµi tËp: TÝnh tæ hîp chËp k cña n phÇn tö trong tËp A.

C
k
n
=
)!(!
!
knk
n

(0

k

n) (k, n

Z)
program BT;
var i,a,b,c,x,y,z,n,k:longint;
begin
repeat
write('nhap k la so nguyen duong >=0 =');
readln(k);
until k>=0;
repeat
write('nhap n la so nguyen duong >=k =');

readln(n);
until n>=k;
a:=1;b:=1;c:=1;
for i:=1 to n do
a:=a*i;x:=a;
for i:=1 to k do
b:=b*i;y:=b;
for i:=1 to (n-k) do
c:=c*i;z:=c;
writeln('to hop = ',x/(y*z));
readln;
end.
Trang 11
Bµi tËp: ViÕt ra mµn h×nh c¸c ký tù sau:
*
**
***
****
*****
program BT;
var i,j:integer;
begin
for i:=1 to 5 do
begin
for j:=1 to i do write('*');
writeln;
end;
readln;
end.
Bµi tËp: ViÕt ra mµn h×nh c¸c ký tù sau:

*****
****
***
**
*
program BT;
var i,j:integer;
begin
for i:=1 to 5 do
begin
for j:=5 downto i do write('*');
writeln;
end;
readln;
end.
Trang 12
Bµi tËp: ViÕt ra mµn h×nh c¸c ký tù sau:
*
**
***
****
*****
program BT;
var i,j:integer;
begin
for i:=1 to 5 do
begin
write('':6-i);
for j:=1 to i do
write('*');

writeln;
end;
readln;
end.
Bµi tËp: ViÕt ra mµn h×nh c¸c ký tù sau:
*****
****
***
**
*
program BT;
var i,j,t:integer;
begin
t:=5;
for i:=1 to 5 do
begin
write('':i);
for j:=t downto 1 do
write('*');
t:=t-1;
writeln;
end;
readln;
end.
Trang 13
Bµi tËp: ViÕt ra mµn h×nh c¸c ký tù sau:
*
***
*****
*******

*********
program BT;
var i,j,t:integer;
begin
t:=8;
for i:=1 to 5 do
begin
write('':6-i);
for j:=9-t downto 1 do
write('*');
t:=t-2;
writeln;
end;
readln;
end.
Bµi tËp: ViÕt ra mµn h×nh c¸c ký tù sau:
*********
*******
*****
***
*
program BT;
var i,j,t:integer;
begin
t:=9;
for i:=5 downto 1 do
begin
write('':6-i);
for j:=t downto 1 do
write('*');

t:=t-2;
writeln;
end;
readln;
end.
Trang 14
Bµi tËp: ViÕt ch¬ng tr×nh in ra mµn h×nh b¶ng cöu ch¬ng d¹ng 1 nh sau:
1* 1 =1 2* 1 =2 3* 1 =3 4* 1 =4 5* 1 =5 6* 1 =6 7* 1 =7 8* 1 =8 9* 1 =9
1* 2 =2 2* 2 =4 3* 2 =6 4* 2 =8 5* 2 =10 6* 2 =12 7* 2 =14 8* 2 =16 9* 2 =18
1* 3 =3 2* 3 =6 3* 3 =9 4* 3 =12 5* 3 =15 6* 3 =18 7* 3 =21 8* 3 =24 9* 3 =27
1* 4 =4 2* 4 =8 3* 4 =12 4* 4 =16 5* 4 =20 6* 4 =24 7* 4 =28 8* 4 =32 9* 4 =36
1* 5 =5 2* 5 =10 3* 5 =15 4* 5 =20 5* 5 =25 6* 5 =30 7* 5 =35 8* 5 =40 9* 5 =45
1* 6 =6 2* 6 =12 3* 6 =18 4* 6 =24 5* 6 =30 6* 6 =36 7* 6 =42 8* 6 =48 9* 6 =54
1* 7 =7 2* 7 =14 3* 7 =21 4* 7 =28 5* 7 =35 6* 7 =42 7* 7 =49 8* 7 =56 9* 7 =63
1* 8 =8 2* 8 =16 3* 8 =24 4* 8 =32 5* 8 =40 6* 8 =48 7* 8 =56 8* 8 =64 9* 8 =72
1* 9 =9 2* 9 =18 3* 9 =27 4* 9 =36 5* 9 =45 6* 9 =54 7* 9 =63 8* 9 =72 9* 9 =81
program BT;
var i,j:integer;
begin
for j:=1 to 9 do
begin
for i:=1 to 9 do
write(i:2,'*',j:2,'=',(i*j):2);
writeln;
end;
readln;
end.
Bµi tËp: ViÕt ch¬ng tr×nh in ra mµn h×nh b¶ng cöu ch¬ng d¹ng 2 nh sau:
1* 1 =1
1* 2 =2 2* 2 =4

1* 3 =3 2* 3 =6 3* 3 =9
1* 4 =4 2* 4 =8 3* 4 =12 4* 4 =16
1* 5 =5 2* 5 =10 3* 5 =15 4* 5 =20 5* 5 =25
1* 6 =6 2* 6 =12 3* 6 =18 4* 6 =24 5* 6 =30 6* 6 =36
1* 7 =7 2* 7 =14 3* 7 =21 4* 7 =28 5* 7 =35 6* 7 =42 7* 7 =49
1* 8 =8 2* 8 =16 3* 8 =24 4* 8 =32 5* 8 =40 6* 8 =48 7* 8 =56 8* 8 =64
1* 9 =9 2* 9 =18 3* 9 =27 4* 9 =36 5* 9 =45 6* 9 =54 7* 9 =63 8* 9 =72 9* 9 =81
program BT;
var i,j:integer;
begin
for j:=1 to 9 do
begin
for i:=1 to j do
write(i:2,'*',j:2,'=',(i*j):2);
writeln;
end;
readln;
end.
Trang 15
Phần II: Các bài tập mảng
Bài tập: Nhập mảng 1 chiều n phần tử, đếm số phần tử âm, tìm giá trị lớn nhất
của các phần tử, tính tổng các phần tử.
program BT;
type mang=array[1 100] of integer;
var A:mang;n:integer;
procedure nhap(var X:mang;p:integer);
var i:integer;
begin
for i:=1 to p do
begin

write('X[',i,']=');
readln(X[i]);
end;
end;
procedure viet(var X:mang;p:integer);
var i:integer;
begin
for i:=1 to p do write(X[i]:4);
writeln;
end;
function spta(X:mang;p:integer):integer;
var i,d:integer;
begin
d:=0;
for i:=1 to p do
if X[i]<0 then d:=d+1;
spta:=d;
end;
function max(X:mang;p:integer):integer;
var i,m:integer;
begin
m:=X[1];
for i:=1 to p do
if X[i]>m then m:=X[i];
max:=m;
end;
function tong(X:mang;p:integer):integer;
var i,S:integer;
begin
S:=0;

for i:=1 to p do S:=S+X[i];
tong:=S;
end;
begin
write('nhap n=');
readln(n);
nhap(A,n);viet(A,n);
writeln('so phan tu am=',spta(A,n));
writeln('phan tu lon nhat=',max(A,n));
writeln('tong cac phan tu=',tong(A,n));
readln;
end.
Trang 16
Bài tập: Nhập mảng 1 chiều n phần tử, tìm phần tử có giá trị bằng trung bình
cộng của n phần tử.
program BT;
type mang=array[1 100] of integer;
var A:mang;n:integer;
procedure nhap(var X:mang;p:integer);
var i:integer;
begin
for i:=1 to p do
begin
write('X[',i,']=');
readln(X[i]);
end;
end;
procedure viet(var X:mang;p:integer);
var i:integer;
begin

for i:=1 to p do write(X[i]:4);
writeln;
end;
procedure trungbinhcong(var X:mang;p:integer);
var i,S:integer;
begin
S:=0;
for i:=1 to p do
S:=S+X[i];
for i:=1 to p do
if X[i]=S/n then
writeln('X[',i,']=',X[i]);
end;
begin
write('nhap n=');
readln(n);
nhap(A,n);
viet(A,n);
trungbinhcong(A,n);
readln;
end.
Trang 17
Bài tập: Nhập mảng 1 chiều n phần tử, tìm phần tử có giá trị lớn nhất và cho biết
vị trí của phần tử đó trong mảng.
program BT;
type mang=array[1 100] of integer;
var A:mang;n:integer;
procedure nhap(var X:mang;p:integer);
var i:integer;
begin

for i:=1 to p do
begin
write('X[',i,']=');
readln(X[i]);
end;
end;
procedure viet(var X:mang;p:integer);
var i:integer;
begin
for i:=1 to p do write(X[i]:4);
writeln;
end;
procedure max(var X:mang;p:integer);
var i,m:integer;
begin
m:=X[1];
for i:=1 to p do
if X[i]>m then m:=X[i];
for i:=1 to p do
if X[i]=m then
writeln('X[',i,']=',m);
end;
begin
write('nhap n=');
readln(n);
nhap(A,n);
viet(A,n);
max(A,n);
readln;
end.

Trang 18
Bài tập: Nhập mảng 1 chiều n phần tử và một số x. Tìm xem có phần tử nào của
mảng có giá trị bằng x? Nếu có thì cho biết vị trí của phần tử đó trong mảng.
program BT;
type mang=array[1 100] of integer;
var A:mang;n,sox:integer;
procedure nhap(var X:mang;p:integer);
var i:integer;
begin
for i:=1 to p do
begin
write('X[',i,']=');
readln(X[i]);
end;
end;
procedure viet(var X:mang;p:integer);
var i:integer;
begin
for i:=1 to p do write(X[i]:4);
writeln;
end;
procedure vitri(var X:mang;p:integer);
var i:integer;
begin
for i:=1 to p do
if X[i]=sox then writeln('X[',i,']=sox=',X[i]);
end;
begin
write('nhap n=');
readln(n);

write('nhap sox=');
readln(sox);
nhap(A,n);
viet(A,n);
vitri(A,n);
readln;
end.
Trang 19
Bài tập: Nhập mảng 1 chiều n phần tử nguyên dơng. Tìm số tự nhiên nhỏ nhất và
khác với các phần tử của mảng.
program BT;
type mang=array[1 100] of integer;
var A:mang;n:integer;
procedure nhap(var X:mang;p:integer);
var i:integer;
begin
for i:=1 to p do
begin
repeat
write('X[',i,']=');
readln(X[i]);
until X[i]>0;
end;
end;
procedure viet(var X:mang;p:integer);
var i:integer;
begin
for i:=1 to p do write(X[i]:4);
writeln;
end;

procedure sapxep(var X:mang;p:integer);
var i,j,tg:integer;
begin
for i:=1 to p-1 do
for j:=i+1 to p do
if X[i]>X[j] then
begin
tg:=X[i];
X[i]:=X[j];
X[j]:=tg;
end;
end;
function sonhokhac(X:mang;p:integer):integer;
var i,snk:integer;
begin
snk:=1;
for i:=1 to p do
if snk=X[i] then snk:=snk+1;
sonhokhac:=snk;
end;
begin
write('nhap n=');
readln(n);
nhap(A,n);
sapxep(A,n);
viet(A,n);
writeln('so nho khac=',sonhokhac(A,n));
readln;
end.
Trang 20

Bài tập: Nhập vào một ma trận (m,n), đếm số phần tử âm, tìm giá trị lớn nhất của
các phần tử, tính tổng các phần tử.
program BT;
type mang=array[1 50,1 50] of integer;
var A:mang;m,n:integer;
procedure nhap(var X:mang;p,q:integer);
var i,j:integer;
begin
for i:=1 to p do
for j:=1 to q do
begin
write('X[',i,',',j,']=');
readln(X[i,j]);
end;
end;
procedure viet(var X:mang;p,q:integer);
var i,j:integer;
begin
for i:=1 to p do
begin
for j:=1 to q do write(X[i,j]:4);
writeln;
end;
end;
function spta(X:mang;p,q:integer):integer;
var i,j,d:integer;
begin
d:=0;
for i:=1 to p do
for j:=1 to q do

if X[i,j]<0 then inc(d);
spta:=d;
end;
function max(X:mang;p,q:integer):integer;
var i,j,m:integer;
begin
m:=X[1,1];
for i:=1 to p do
for j:=1 to q do
if X[i,j]>m then m:=X[i,j];
max:=m;
end;
function tong(X:mang;p,q:integer):integer;
var i,j,S:integer;
begin
S:=0;
for i:=1 to p do
for j:=1 to q do
S:=S+X[i,j];
tong:=S;
end;
begin
write('nhap m,n=');
readln(m,n);
nhap(A,m,n);
viet(A,m,n);
writeln('so phan tu am=',spta(A,m,n));
writeln('phan tu lon nhat=',max(A,m,n));
writeln('tong cac phan tu=',tong(A,m,n));
readln;

end.
Trang 21
Bµi tËp: NhËp vµo mét ma trËn (m,n). T×m phÇn tö cã gi¸ trÞ b»ng trung b×nh
céng cña m
×
n phÇn tö.
program BT;
type mang=array[1 50,1 50] of integer;
var A:mang;m,n:integer;
procedure nhap(var X:mang;p,q:integer);
var i,j:integer;
begin
for i:=1 to p do
for j:=1 to q do
begin
write('X[',i,',',j,']=');
readln(X[i,j]);
end;
end;
procedure viet(var X:mang;p,q:integer);
var i,j:integer;
begin
for i:=1 to p do
begin
for j:=1 to q do write(X[i,j]:4);
writeln;
end;
end;
procedure trungbinhcong(var X:mang;p,q:integer);
var i,j,S:integer;

begin
S:=0;
for i:=1 to p do
for j:=1 to q do
S:=S+X[i,j];
for i:=1 to p do
for j:=1 to q do
if X[i,j]=S/(m*n) then
writeln('X[',i,',',j,']=',X[i,j]);
end;
begin
write('nhap m,n=');
readln(m,n);
nhap(A,m,n);
viet(A,m,n);
trungbinhcong(A,m,n);
readln;
end.
Trang 22
Bài tập: Nhập vào một ma trận (m,n). Tìm phần tử có giá trị lớn nhất và cho biết
vị trí của phần tử đó trong ma trận.
program BT;
type mang=array[1 50,1 50] of integer;
var A:mang;m,n:integer;
procedure nhap(var X:mang;p,q:integer);
var i,j:integer;
begin
for i:=1 to p do
for j:=1 to q do
begin

write('X[',i,',',j,']=');
readln(X[i,j]);
end;
end;
procedure viet(var X:mang;p,q:integer);
var i,j:integer;
begin
for i:=1 to p do
begin
for j:=1 to q do write(X[i,j]:4);
writeln;
end;
end;
procedure max(var X:mang;p,q:integer);
var i,j,m:integer;
begin
m:=X[1,1];
for i:=1 to p do
for j:=1 to q do
if X[i,j]>m then m:=X[i,j];
for i:=1 to p do
for j:=1 to q do
if X[i,j]=m then writeln('X[',i,',',j,']=',m);
end;
begin
write('nhap m,n=');
readln(m,n);
nhap(A,m,n);
viet(A,m,n);
max(A,m,n);

readln;
end.
Trang 23
Bµi tËp: NhËp vµo mét ma trËn vu«ng (n,n). T×m tæng c¸c phÇn tö phÝa trªn ®êng
chÐo chÝnh.
program BT;
type mang=array[1 50,1 50] of integer;
var A:mang;n:integer;
procedure nhap(var X:mang;p,q:integer);
var i,j:integer;
begin
for i:=1 to p do
for j:=1 to q do
begin
write('X[',i,',',j,']=');
readln(X[i,j]);
end;
end;
procedure viet(var X:mang;p,q:integer);
var i,j:integer;
begin
for i:=1 to p do
begin
for j:=1 to q do write(X[i,j]:4);
writeln;
end;
end;
function tong(var X:mang;p,q:integer):integer;
var i,j,S:integer;
begin

S:=0;
for i:=1 to p-1 do
for j:=i+1 to q do
S:=S+X[i,j];
tong:=S;
end;
begin
write('nhap n=');
readln(n);
nhap(A,n,n);
viet(A,n,n);
writeln('tong cac phan tu phia tren duong cheo
chinh=',tong(A,n,n));
readln;
end.
Trang 24
Bµi tËp: NhËp vµo mét ma trËn (m,n). T×m cét cã tæng c¸c phÇn tö lµ lín nhÊt vµ
cho biÕt ®ã lµ cét nµo.
program BT;
type mang=array[1 50,1 50] of integer;
var A:mang;m,n,cotmax,Smax:integer;
procedure nhap(var X:mang;p,q:integer);
var i,j:integer;
begin
for i:=1 to p do
for j:=1 to q do
begin
write('X[',i,',',j,']=');
readln(X[i,j]);
end;

end;
procedure viet(var X:mang;p,q:integer);
var i,j:integer;
begin
for i:=1 to p do
begin
for j:=1 to q do write(X[i,j]:4);
writeln;
end;
end;
procedure tim(var X:mang;p,q:integer);
var i,j,S:integer;
begin
Smax:=0;
if p<=q then
for i:=1 to q do Smax:=Smax+X[i,1]
else for i:=1 to p do Smax:=Smax+X[i,1];
cotmax:=1;
for j:=2 to q do
begin
S:=0;
for i:=1 to p do S:=S+X[i,j];
if S>Smax then
begin
Smax:=S;
cotmax:=j;
end;
end;
end;
begin

write('nhap m,n=');
readln(m,n);
nhap(A,m,n);
viet(A,m,n);
tim(A,m,n);
writeln('cot co tong lon nhat la cot ',cotmax);
writeln('tong do co gia tri=',Smax);
readln;
end.
Trang 25

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×