- LÆp víi sè lÇn biÕt tríc:.. + KiÓm tra xem m¶ng cã ®èi xøng qua ®êng chÐo chÝnh kh«ng.. T¬ng tù víi ma trËn). uses crt;.[r]
(1)Bài tập Pascal 1 Một số đoạn lệnh cần nhớ
1.1 Cấu trúc chơng trình Pascal
{ Phần khai báo}
- Khai báo tên chơng trình:program <tên chơng trình>; - Khai báo th viên: uses <tên th viện>;
- Khai báo hằng: const <tên hằng> : <giá trị hằng>; - Khai báo biến: var <tên biến> : <kiểu liệu>;
- Khai báo chơng trình con:
Thủ tục: procedure <tên thủ tục> [ (danh sách tham số) ] <phần khai báo biến dùng thủ tục>;
Begin
<d·y c¸c lƯnh>
End;
Hàm: function <tên hàm> [(danh sách tham số)] : <kiểu liệu> <phần khai báo biến dùng thđ tơc>;
Begin
<d·y c¸c lƯnh>
<tên hàm> : <biểu thức>: { trả lại giá trị cho hàm}
End;
{Phần thân chơng trình}
Begin
<D·y c¸c lƯnh>;
End.
1.2 Một số kiểu liệu hay dùng - Kiểu nguyên:
Byte: Từ đến 255 Integer: Từ -215 đến 215-1.
Word: Từ đến 216 -1.
Longint: Từ -231 đến 231- 1.
- KiÓu thùc:
Real: có giá trị tuyệt đối nằm phạm vi từ 10-38 đến 1038
(2)Char: 256 kÝ tù bé m· ASCII - KiĨu logic:
Boolean: có giá trị True False 1.3 Thủ tục chuẩn vào/ đơn giản
- Nhập liệu từ bàn phím:
Read (<danh sách biến vào>);
Hoặc Readln (<danh sách biến vào>); - Xuất liệu hình:
Write (<danh sách kết ra>);
Hoặc Writeln (<danh sách kết ra>); 1.4 Câu lệnh rẽ nhánh
- If - then:
Dạng thiếu: If <điều kiƯn> then <c©u lƯnh>;
Dạng đủ: If <điều kiện> then <câu lệnh 1> else <câu lệnh 2>;
- Case - of:
Case <biÓu thøc> of
<h»ng 1> : <lÖnh 1>; <h»ng 2> : <lÖnh 2>; …
<h»ng n - 1> : <lÖnh n - 1>;
Else
<h»ng n> : <lÖnh n>;
End;
1.5 Câu lệnh lặp
- Lặp với số lần biết trớc:
Dng tin: For <biến đếm> := <giá trị đầu> to <giá tri cuối> <câu lệnh>;
Dạng lùi: For <biến đếm> := <giá trị cuối> downto <giá trị đầu>
do <câu lệnh>;
- Lặp với số lần cha biết trớc:
While <điều kiện> <lƯnh>; Repeat
(3)Until <®iỊu kiện>;
1.6 Mảng chiều - Khai báo Trực tiếp:
Var <tên biến mảng> : array [ kiĨu chØ sè ] of <kiĨu phÇn tư>;
Gián tiếp:
Type <tên kiểu mảng> = array [ kiểu số ] of <kiểu phần tử>; Var <tên biến mảng> : <tên kiểu mảng>;
- Nhập mảng
For i:= to n Begin
Write (‘ nhap A[‘,i,’] = ’); Readln (a[i]);
End; - In m¶ng
For i:= to n Write (A[i] : 5); 1.7 M¶ng chiỊu
- Khai báo Trực tiếp:
Var <tên biến mảng> : array [ kiĨu chØ sè hµng, kiĨu chØ sè cét] of
<kiểu phần tử>; Gián tiếp:
Type <tên kiểu mảng> = array [ kiểu số hàng, kiểu số cột] of <kiểu phần tử>;
Var <tên biến mảng> : <tên kiểu mảng>;
- NhËp m¶ng
For i:= to n For j:=1 to m
Begin
Write (‘ nhap A[’,i,’,’,j,’] = ’); Readln (a[i,j]);
(4)- In m¶ng
For i:= to n Begin
For j:=1 to m Write (A[i,j]:5 ); Readln;
End; 1.8 Xâu
- Khai báo
Var <tên biến xâu> : String [ <độ dài lớn xâu> ];
- NhËp x©u
Write ( nhap vao xau: ); readln ( <tên xâu>);
- In xâu
Write (xau: , <tên xâu>);
2 Một số thuật toán bản
2.1 Kiểm tra N có số chẵn (tơng tự số lẻ)
If N mod 2=0 then write (‘N la so chan); 2.2 Kiểm tra N có phải số phơng (số phơng số bình phơng số nguyên dơng)
If Sqr(Round(Sqrt(N)))= N then write(N la so chinh phuong’);
2.3 KiÓm tra N cã số nguyên tố (số nguyên tố số nguyên dơng có ớc nguyên dơng chÝnh nã)
i := 2;
m := Round ( Sqrt (N)); { i m khai báo kiểu nguyªn} While (i<=m) and (N mod i <> 0) i := i + 1; If i>m then Write (‘ N la so nguyen to’);
2.4 KiÓm tra N có số hoàn hảo (số hoàn hảo số nguyên dơng có tổng ớc trừ nã)
S := 0; { S khai b¸o cïng kiĨu víi N} For i := to N -
If N mod i = then S := S + i ;
(5)2.5 Kiểm tra N có số đẹp (số hồn hảo số nguyên dơng, đọc từ trái sang phải nó, chữ số đứng trớc <= chữ số đớng sau)
{BiÕn kt khai b¸o kiĨu logic} Str (N, S); { S khai báo kiểu xâu} Kt := True; i := 1;
While (kt = true) and (i < length(S)) Begin
If S[i+1] < S[i] then kt := False; I := i+1;
End;
(6)3 Bài tập
3.1 Bài tập hình học
Bài 1: Cho tam giác có độ dài cạnh a, b, c Tính chu vi, diện tích, độ dài đ-ờng cao Kiểm tra xem tam giác vng, hay cân?
uses crt;
var a,b,c, cv:integer; p, dt: real;
begin clrscr;
write(' nhap dai canh:'); readln(a,b,c); if (a+b<c) or (a+c<b) or (b+c<a) then
write(' nhap kich thuoc canh sai') else
begin
cv := a+b+c;
writeln(' chu vi tam giac: ',cv); p:=cv/2;
dt:= sqrt(p*(p-a)*(p-b)*(p-c));
writeln('dien tich tam giac: ',dt:6:2); if (a*a+b*b=c*c) or (b*b+c*c=a*a) or (c*c+a*a=b*b) then
begin
writeln(' day la tam giac vuong'); if (a>b) and (a>c) then
begin writeln('do dai duong cao thu nhat: ',b); writeln('do dai duong cao thu hai: ',c);
writeln('do dai duong cao thu ba: ',dt/a:6:2); end;
(7)begin
writeln('do dai duong cao thu nhat: ',a); writeln('do dai duong cao thu hai: ',c); writeln('do dai duong cao thu ba:
',dt/b:6:2); end;
if (c>b) and (c>a) then begin
writeln('do dai duong cao thu nhat: ',a); writeln('do dai duong cao thu hai: ',b); writeln('do dai duong cao thu ba:
',dt/c:6:2); end;
end else begin
if (a=b) and (b=c) and (a=c) then
writeln('day la tam giac deu')
else
if (a=b) or (b=c) or (a=c) then
writeln('day la tam giac can'); writeln('do dai duong cao thu nhat: ',dt/b:6:2);
writeln('do dai duong cao thu hai: ',dt/c:6:2);
writeln('do dai duong cao thu ba: ',dt/a:6:2);
(8)end
Bài 2: Cho điểm A(xa,ya), B(xb,yb), C(xc,yc), D(xd,yd) Cho biết vị trí tơng đối D tam giác ABC
var ax, bx, cx, dx, ay, by, cy, dy:real; a,b,c:real;
p, p1, p2, p3:real; s, s1, s2, s3: real; d1, d2, d3: real; begin
writeln('nhap toa cho cac diem:'); write('diem A:'); readln(ax,ay);
write('diem B:'); readln(bx,by); write('diem C:'); readln(cx,cy); write('diem D:'); readln(dx,dy);
a:=sqrt(sqr(bx-ax)+sqr(by-ay)); {AB} b:=sqrt(sqr(bx-cx)+sqr(by-cy)); {BC} c:=sqrt(sqr(ax-cx)+sqr(ay-cy)); {CA} p:=(a+b+c)/2;
s:=sqrt(p*(p-a)*(p-b)*(p-c));
d1:=sqrt(sqr(ax-dx)+sqr(ay-dy)); {AD} d2:= sqrt(sqr(bx-dx)+sqr(by-dy)); {BD} d3:= sqrt(sqr(cx-dx)+sqr(cy-dy)); {CD} p1:=(c+d1+d3)/2; { ACD }
p2:=(a+d1+d2)/2; { ABD } p3:=(b+d2+d3)/2; { BCD }
(9)s2:= sqrt(p2*(p2-d1)*(p2-d2)*(p2-a)); s3:= sqrt(p3*(p3-d2)*(p3-d3)*(p3-b));
if abs(s-s1-s2-s3)<0.001 then write('D thuoc tgiac ABC')
else if abs(s1)<0.001 then write('D nam tren AC')
else if abs(s2)<0.001 then write('D nam tren AB')
else if abs(s3)<0.001 then write('D nam tren BC')
else write('D nam ngoai tgiac ABC');
readln; end
Bµi 3:
3.2 Bµi tËp vỊ sè nguyên
Bài 1: Nhập vào số nguyên dơng a b Tính in hình: tổng, hiệu, tích, thơng a/b UCLN(a,b)
Uses crt;
Var a,b, tong, hieu, tich, ucln: integer; Thuong: real;
Begin Clrscr;
Write (‘nhap a va b: ‘); readln (a,b); Writeln (‘Tong‘,a,‘+’,b,’=’,a + b); Writeln (‘Hieu‘,a,‘-’,b,’=’,a - b); Writeln (‘Tich‘, a,‘*’,b ,’=’,a * b);
(10)If a>b then a := a-b Else b:=b-a; Writeln (‘UCLN(‘,a,‘va’,b,’)=’, a ); Readln;
End
Bài 2: Giải phơng trình trùng phơng: ax4 + bx2+c = 0.
uses crt;
var a,b,c:integer; d,t,t1,t2:real; begin
clrscr;
writeln('he so a,b,c:'); readln(a,b,c);
if (a=0) then writeln('nhap lai') else
begin
{dat t=x*x}
d:=b*b-4*a*c;
if d<0 then write('PT vo ng') else
if d=0 then begin
t:=-b/(2*a); if t>0 then begin
writeln('PT co 2ng:');
writeln('x1=',-sqrt(t):6:2);
writeln('x2=',sqrt(t):6:2);
end else
(11)else writeln('Pt vo ng'); end
else {d>0}
begin
t1:=(-b-sqrt(d))/(2*a); t2:=(-b+sqrt(d))/(2*a);
if (t1<0) and (t2<0) then write('Pt vo ng'); if (t1=0) and (t2=0) then write('Pt co ng x=0');
if (t1>0) and (t2>0) then begin
writeln('PT co ngh:');
write('x1=',-sqrt(t1):6:2,'x2=',sqrt(t1):6:2); write('x3=',-sqrt(t2):6:2,'x2=',sqrt(t2):6:2);
end;
if (t1>0) and (t2<0) then
begin
writeln('PT co ng:');
write('x1=',-sqrt(t1):6:2,'x2=',sqrt(t1):6:2);
end;
if (t1<0) and (t2>0) then
begin
writeln('PT co ng:');
write('x1=',sqrt(t2):6:2,'x2=',sqrt(t2):6:2);
end;
end; end; readln; end
(12)1 1
2 2
a x+b y=c a x+b y=c
uses crt;
var a1, b1, c1, a2, b2, c2:integer; d, dx, dy:real;
begin clrscr;
writeln('nhap cac he so a1,b1,c1:'); readln(a1,b1,c1);
writeln('nhap cac he so a2,b2,c2:'); readln(a2,b2,c2);
d:=a1*b2-a2*b1; dx:=c1*b2-c2*b1; dy:=a1*c2-a2*c1;
if (d=0) and ((dx<>0) or (dy<>0)) then writeln('HPT vo ng')
else
if (d=0) and (dx=0) and (dy=0) then writeln('HPT co vo so ng')
else begin
writeln('HPT co ng:');
writeln('x=',dx/d:3:2,'y=',dy/d:3:2); end;
readln; end
Bài 4: Nhập vào số nguyên Kiểm tra: + N chia hÕt cho kh«ng?
(13)uses crt;
var n,m,t:word; s,s1:string; i:byte;
begin
clrscr;
write(' N=');readln(n);
if n mod 3=0 then writeln(n,' chia het cho 3') else writeln(n,' khong chia het cho 3');
m:=n; i:=0; t:=0; while m>0
begin
i:=i+1;
t:=t+m mod 10; m:=m div 10; end;
writeln('so cac chu so cua ',n,':',i); writeln('tong cac chu so cua ',n,':',t); str(n,s);
for i:=length(s) downto s1:=s1+s[i]; writeln(' so dao nguoc cua ',n,':',s1); readln;
end
Bài 5: tính tổng N nghìn VND từ lo¹i tiỊn: 1000 VND, 2000 VND, 5000 VND LËp trình tất phơng án
uses crt;
var i,j,k,n,d: integer; begin
clrscr;
(14)readln(n); d:=0;
for i:=1 to n
for j:=1 to n div for k:=0 to n div if n=i+j*2+k*5 then begin
d:=d+1;
writeln('phuong an thu ',d,' :');
write(n,'000 VND = ',i,'*1000 + ',j,'*2000 +',k,'*5000');
writeln; end;
readln; end
Bài 6: Tính giá trị đa thøc f(x) = anxn+ an-1xn-1+… a1x1+a0 var x,n,i:integer;
f:real;
a:array [0 100] of integer; begin
write('x=');readln(x); write('n=');readln(n);
writeln('nhap cac he so:'); for i:=0 to n
begin
write('A[',i,']=');readln(a[i]); end;
f:=a[n];
(15)f:=f+a[0];
writeln('KQ: ',f:7:2); readln;
end
3.3 Bài tập mảng
Bài 1: Thực phép tính cộng, trừ, nhân ma trận vuông
(Chú ý: cộng trừ thực đợc với ma trận cỡ n x m Nhân ma trận thực với ma trận có dang: Anxmx Bmxl)
uses crt;
var a,b,c,d: array[1 10,1 10] of integer; m,n,l,i,j,k:byte;
begin
clrscr;
write('n=');readln(n); for i:=1 to n
for j:=1 to n begin
write('A[',i,',',j,']='); readln(a[i,j]);
end;
for i:=1 to n for j:=1 to n begin
write('B[',i,',',j,']='); readln(b[i,j]);
end;
(16)c[i,j]:=a[i,j]+b[i,j]; d[i,j]:=a[i,j]-b[i,j]; end;
writeln('ma tran tong:'); for i:=1 to n
begin
for j:=1 to n write(c[i,j]:5); writeln;writeln;
end;
writeln('ma tran hieu:'); for i:=1 to n
begin
for j:=1 to n write(d[i,j]:5); writeln;writeln;
end;
for i:=1 to n for k:=1 to n begin
c[i,k]:=0;
for j:=1 to n c[i,k]:=c[i,k] +a[i,j]*b[j,k];
end;
writeln('ma tran tich:'); for i:=1 to n
begin
for j:=1 to n write(c[i,j]:6); writeln;writeln;
(17)Bài 2: Nhập mảng chiỊu cÊp nxn
+ Kiểm tra xem mảng có đối xứng qua đờng chéo khơng + Đa phần tử lớn nhất, nhỏ mảng
+ Có số ớc số không? Có số bội số không? uses crt;
var a: array[1 10,1 10] of integer; n,i,j,max,min:byte;
kt:boolean; begin
clrscr;
write('n=');readln(n); for i:=1 to n
for j:=1 to n begin
write('A[',i,',',j,']='); readln(a[i,j]);
end;
for i:=1 to n begin
for j:= to n write(a[i,j]:5); writeln;
end;
kt:=true; i:=1; j:=1;
while (i<=n) and (j<=n) and (kt=true) begin
if a[i,j]<>a[j,i] then kt:=false; i:=i+1;
(18)if kt=true then writeln('MT doi xung qua duong cheo chinh')
else writeln('Mt ko doi xung qua duong cheo chinh');
max:=a[1,1]; min:=a[1,1]; for i:=1 to n
for j:=1 to n begin
if a[i,j]>max then max:=a[i,j]; if a[i,j]<min then min:=a[i,j]; end;
writeln('GTLN cua mang:', max,' GTNN cua mang:',min);
kt:=true;
for i:=1 to n
if a[i] mod <>0 then kt:=false;
if kt=true then writeln(a[i],'la uoc cua moi so') else writeln('ko co so nao la uoc cua moi so'); kt:=true;
for i:=1 to n
if max mod a[i] <> then kt:=false;
if kt=true then write(max,'la boi cua moi so') else writeln('ko co so nao la boi cua moi so'); readln;
end
Bài 3: Nhập ma trận vuông nxn
+ Tính tổng phần tử dòng cột
+ Tính tổng phần tử đờng chéo đờng chéo phụ uses crt;
(19)begin
clrscr;
write('n=');readln(n); for i:=1 to n
for j:=1 to n begin
write('A[',i,',',j,']='); readln(a[i,j]);
end;
for i:=1 to n begin
for j:=1 to n write(a[i,j]:5); writeln; writeln;
end; t1:=0;
for i:=1 to n t1:=t1+a[2,i]+a[i,2]; t1:=t1-a[2,2];
writeln('tong cac phan tu o dong cot 2: ',t1); t2:=0;
for i:=1 to n t2:= t2 + a[i,i] + a[i,n-i+1]; if n mod <>0 then t2:=t2-a[(n div 2)+1,(n div 2)+1];
writeln('tong cac phan tu tren duong cheo chinh va duong cheo phu: ',t2);
readln; end
Bµi 4: Nhập vào dÃy số nguyên Sắp xếp lại thành dÃy không giảm uses crt;
(20)var a:mt;
n,i,j,t,cv:byte;
procedure hoan_vi(var x,y:integer); var tg:integer;
begin
tg:=x; x:=y; y:=tg; end;
procedure nhap_day(var a:mt;n:integer); begin
for i:=1 to n begin
write('A[',i,']=');readln(a[i]); end;
end;
procedure in_day(var a:mt;n:integer); begin
writeln;
for i:=1 to n write(a[i]:7); end;
procedure sx_lua_chon(var a:mt;n:integer); var m:integer;
begin
for i:=1 to n begin
m:=1;
for j:=1 to i+1
if a[j]>a[m] then m:=j;
(21)end; end;
procedure sx_chen(var a:mt;n:integer); var x:integer;
begin
for i:=2 to n begin
x:=a[i]; j:=i-1;
while x<a[j] begin
a[j+1]:=a[j]; j:=j-1;
end;
a[j+1]:=x; end;
end;
procedure sx_trao_doi(var a:mt;n:integer); begin
for i:=n downto for j:=1 to i-1
if a[j]>a[j+1] then hoan_vi(a[j],a[j+1]);
end; begin
clrscr;
write('n=');readln(n); nhap_day(a,n);
writeln;
(22)in_day(a,n);
writeln('ban chon kieu sap xep nao:'); writeln('1 sap xep lua chon');
writeln('2 sap xep chen');
writeln('3 sap xep trao doi'); writeln('4 thoat');
write('chon: ');readln(cv); case cv of
1: sx_lua_chon(a,n); 2: sx_chen(a,n); 3: sx_trao_doi(a,n); 4: exit;
end;
writeln('day sau sap xep:'); in_day(a,n);
readln; end
Bài 5: Nhập vào dãy số nguyên, xếp theo thứ tự không giảm, đọc thêm số từ bàn phím chèn vào dãy cho thứ tự không đổi
uses crt;
var a:array[1 100] of integer; i,j,tg,m,n:integer;
begin
clrscr;
write('n=');readln(n); for i:=1 to n
begin
(23)end;
writeln('day ban dau:');
for i:=1 to n write(a[i]:7); writeln; for i:=n downto
for j:=1 to i-1
if a[j]>a[j+1] then begin
tg:=a[j];
a[j]:=a[j+1]; a[j+1]:=tg; end;
writeln('day sau sap xep:');
for i:=1 to n write(a[i]:7); writeln; write('chen vao so:');readln(m);
i:=1;
while (m>a[i]) and (i<n) i:=i+1; writeln('vi tri chen: ',i);
if i>n then a[i]:=m else
begin
for j:=n downto i a[j+1]:=a[j]; a[i]:=m;
end;
writeln('day sau chen:');
for i:=1 to n+1 write(a[i]:6); readln;
end
Bài 6: Nhập vào dãy số nguyên, đa phần tử dãy số đẹp (Tơng tự với số chẵn, số lẻ, số nguyên tố, số phơng, số hồn hảo Tơng tự với ma trận)
(24)var a:array[1 100] of integer; n,i:integer;
function sd(var x:integer):boolean; var s:string; kt:boolean;
begin
str(x,s); kt:=true;
for i:=1 to length(s)-1
if s[i]>s[i+1] then kt:=false; sd:=kt;
end; begin
clrscr;
write('n=');readln(n); for i:=1 to n
begin
write('A[',i,']=');readln(a[i]); end;
writeln('nhung so hoan hao day:'); for i:=1 to n
if sd(a[i])=true then writeln(a[i],' la so hoan hao');
readln; end
Bài 7: Phần tử ma trận đợc gọi phần tử yên ngựa nh bé hàng lớn cột, lớn hàng bé cột
NhËp vµo ma trËn vµ cho biÕt cã phàn tử phần tử yên ngựa, ơe vị trí nào?
uses crt;
var a: array[1 10,1 10] of integer; d,n,m,i,j:byte;
(25)begin
clrscr;
write('n=');readln(n); write('m=');readln(m); for i:=1 to n
for j:=1 to m begin
write('A[',i,',',j,']='); readln(a[i,j]);
end;
for i:=1 to n begin
for j:=1 to m write(a[i,j]:7); writeln; writeln;
end;
for i:=1 to n
begin {lon nhat tren dong} maxd[i]:=a[i,1];
for j:=2 to m
if maxd[i]<a[i,j] then maxd[i]:=a[i,j]; end;
for i:=1 to n write(maxd[i]:6); writeln; for i:=1 to n
begin {nho nhat tren dong} mind[i]:=a[i,1];
for j:=2 to m
if mind[i]>a[i,j] then mind[i]:=a[i,j]; end;
for i:=1 to n write(mind[i]:6); writeln; for j:=1 to m
begin {lon nhat tren cot} maxc[j]:=a[1,j];
for i:=2 to n
if maxc[j]<a[i,j] then maxc[j]:=a[i,j]; end;
for j:=1 to m write(maxc[j]:6);writeln; for j:=1 to m
(26)for i:=2 to n
if minc[j]>a[i,j] then minc[j]:=a[i,j]; end;
for j:=1 to m write(minc[j]:6); writeln; d:=0;
for i:=1 to n for j:=1 to m
if ((a[i,j]=maxd[i]) and (a[i,j]=minc[j])) or
((a[i,j]=mind[i]) and (a[i,j]=maxc[j])) then
begin
d:=d+1;
writeln(a[i,j],' o dong ',i,' cot ',j,' la PT yen ngua');
end;
if d=0 then write('ko co PT yen ngua nao') else write('co ',d,' PT yen ngua');
readln; end
Bài 8: Hai số đợc gọi sinh đơi số ngun tố có hiệu Nhập dãy số nguyên cho biết cso cặp số sinh đôi
uses crt;
var a:array[1 20] of byte; i,j,n,d:byte;
function nt(var x:byte):boolean; var k,m:byte; kt:boolean;
begin
kt:=false; k:=2;
m:=trunc(sqrt(x));
while (k<=m) and (x mod k<>0) k:=k+1; if (x>1) and (k>m) then kt:=true;
nt:=kt; end;
begin
clrscr;
write('n=');readln(n); for i:=1 to n
begin
write('A[',i,']=');readln(a[i]); end;
(27)writeln;
for i:=1 to n d:=0;
for i:=1 to n-1 for j:=i+1 to n
if ((nt(a[i])=true) and (nt(a[j])=true)) and (abs(a[i]-a[j])=2) then
begin
writeln(a[i],' va ',a[j],' la so sinh doi');
d:=d+1; end;
if d=0 then write('ko co cap so sinh doi nao') else write('co ',d,' cap so sinh doi');
readln; end
Bài 8: Viết hàm tính ƯCLN(a,b) Nhập vào ma trận A, đa dÃy B có phần tử ƯCLN dòng (tơng tự cột)
uses crt;
var a:array [1 10,1 10] of longint; b:array [1 10] of longint;
i,j,m,n,d,k:longint;
function ucln(var x,y:longint):longint; begin
while x<>y
if x>y then x:=x-y else y:=y-x; ucln:=x;
end; begin
clrscr;
write('n=');readln(n); write('m=');readln(m); for i:=1 to n
for j:=1 to m begin
write('A[',i,',',j,']='); readln(a[i,j]);
end;
for i:=1 to n begin
for j:=1 to m write(a[i,j]:6); writeln;writeln;
(28)for i:=1 to n begin
d:=ucln(a[i,1],a[i,2]);
for j:=3 to m d:=ucln(d,a[i,j]); writeln('ucln cua dong ',i,' la ',d); b[i]:=d;
end;
writeln('day ucln cua tung dong:'); for i:=1 to n write(b[i]:7); readln;
end
Bµi 9: NhËp vµo ma trËn A cì nxm In dÃy B có phần tử tổng cột (tơng tự với dÃy B tổng phần tử hàng)
Bài 10: Nhập vào d·y råi cho biÕt cã bao nhiªu sè chØ xuÊt lần, số T51-55
3.4 Bài tập xâu kí tự 3.5 Bài tập file