1. Một số đoạn lệnh cần nhớ
1.1. Cấu trúc một chương trình Pascal
{ Phần khai báo}
- Khai báo tên chương trình: program
- Khai báo thư viên: uses
- Khai báo hằng: const
- Khai báo biến: var
- Khai báo chương trình con:
. Thủ tục: procedure
Begin
End;
Bài tập Pascal 1. Một số đoạn lệnh cần nhớ 1.1. Cấu trúc một chương trình Pascal { Phần khai báo} - Khai báo tên chương trình: program ; - Khai báo thư viên: uses ; - Khai báo hằng: const : ; - Khai báo biến: var : ; - Khai báo chương trình con: . Thủ tục: procedure [ (danh sách các tham số) ] ; Begin End; . Hàm : function [(danh sách tham số)] : ; Begin : : { trả lại giá trị cho hàm} End; {Phần thân chương trình} Begin ; End. 1.2. Một số kiểu dữ liệu hay dùng - Kiểu nguyên: Byte: Từ 0 đến 255. Integer: Từ -215 đến 215 -1. Word: Từ 0 đến 216 -1. Longint: Từ -231 đến 231 - 1. - Kiểu thực: Real: 0 hoặc có giá trị tuyệt đối nằm trong phạm vi từ 10-38 đến 1038 - Kiểu kí tự: Char: 256 kí tự trong bộ mã ASCII. - Kiểu logic: Boolean: có giá trị True hoặc False. 1.3. Thủ tục chuẩn vào/ ra đơn giản - Nhập dữ liệu từ bàn phím: Read (); Hoặc Readln (); - Xuất dữ liệu ra màn hình: Write (); Hoặc Writeln (); 1.4. Câu lệnh rẽ nhánh - If - then: . Dạng thiếu: If then ; . Dạng đủ: If then else ; - Case - of: Case of : ; : ; : ; Else : ; End; 1.5. Câu lệnh lặp - Lặp với số lần biết trước: . Dạng tiến: For := to do ; . Dạng lùi: For := downto do ; - Lặp với số lần chưa biết trước: . While do ; . Repeat ; Until ; 1.6. Mảng 1 chiều - Khai báo . Trực tiếp: Var : array [ kiểu chỉ số ] of ; . Gián tiếp: Type = array [ kiểu chỉ số ] of ; Var : ; - Nhập mảng For i:= 1 to n do Begin Write (‘ nhap A[‘,i,’] = ’); Readln (a[i]); End; - In mảng For i:= 1 to n do Write (A[i] : 5); 1.7. Mảng 2 chiều - Khai báo . Trực tiếp: Var : array [ kiểu chỉ số hàng, kiểu chỉ số cột] of ; . Gián tiếp: Type = array [ kiểu chỉ số hàng, kiểu chỉ số cột] of ; Var : ; - Nhập mảng For i:= 1 to n do For j:=1 to m do Begin Write (‘ nhap A[’,i,’,’,j,’] = ’); Readln (a[i,j]); End; - In mảng For i:= 1 to n do Begin For j:=1 to m do Write (A[i,j]:5 ); Readln; End; 1.8. Xâu - Khai báo Var : String [ ]; - Nhập xâu Write (‘ nhap vao xau: ‘); readln ( ); - In xâu Write (‘xau: ‘, ); 2. Một số thuật toán cơ bản Kiểm tra N có là số chẵn (tương tự số lẻ) If N mod 2=0 then write (‘N la so chan’); Kiểm tra N có phải là số chính phương (số chính phương là số bằng bình phương của một số nguyên dương) If Sqr(Round(Sqrt(N)))= N then write(‘N la so chinh phuong’); Kiểm tra N có là số nguyên tố (số nguyên tố là số nguyên dương chỉ có 2 ước nguyên dương là 1 và chính nó) i := 2; m := Round ( Sqrt (N)); { i và m khai báo kiểu nguyên} While (i 0) do i := i + 1; If i>m then Write (‘ N la so nguyen to’); Kiểm tra N có là số hoàn hảo (số hoàn hảo là số nguyên dương có tổng các ước trừ nó bằng chính nó) S := 0; { S khai báo cùng kiểu với N} For i := 1 to N - 1 do If N mod i = 0 then S := S + i ; If S = N do write (‘ N la so hoan hao’); Kiểm tra N có là số đẹp (số hoàn hảo là 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)) do Begin If S[i+1] < S[i] then kt := False; I := i+1; End; If kt do write (‘ N la so dep’); 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 3 cạnh là a, b, c. Tính chu vi, diện tích, độ dài 3 đường cao. Kiểm tra xem tam giác đó là vuông, đều hay cân? uses crt; var a,b,c, cv:integer; p, dt: real; begin clrscr; write(' nhap do dai 3 canh:'); readln(a,b,c); if (a+b<c) or (a+c<b) or (b+c<a) then write(' nhap kich thuoc 3 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; if (b>a) and (b>c) then 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); end; end; readln; end. Bài 2: Cho 4 điểm A(xa,ya), B(xb,yb), C(xc,yc), D(xd,yd). Cho biết vị trí tương đối của D đối với 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 do 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 } s1:= sqrt(p1*(p1-d1)*(p1-d3)*(p1-c)); 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: Bài tập về số nguyên Bài 1: Nhập vào 2 số nguyên dương a và b. Tính và in ra màn hình: tổng, hiệu, tích, thương a/b và 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); Writeln (‘Thuong‘,a,‘/’,b ,’=’, a/b:5:2); While ab do 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 if t=0 then writeln('PT co ng duy nhat x=0') 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 4 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 2 ng:'); write('x1=',-sqrt(t1):6:2,'x2=',sqrt(t1):6:2); end; if (t10) then begin writeln('PT co 2 ng:'); write('x1=',sqrt(t2):6:2,'x2=',sqrt(t2):6:2); end; end; end; readln; end. Bài 3: Giải hệ phương trình: 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 ((dx0) or (dy0)) 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 3 không? + N bao nhiêu chữ số? + Tổng các chữ số của N? + Số đảo ngược của N? 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 do 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 1 do s1:=s1+s[i]; writeln(' so dao nguoc cua ',n,':',s1); readln; end. Bài 5: tính tổng của N nghìn VND từ 3 loại tiền: 1000 VND, 2000 VND, 5000 VND. Lập trình ra tất cả các phương án. uses crt; var i,j,k,n,d: integer; begin clrscr; write('so tien (don vi la nghin VND): '); readln(n); d:=0; for i:=1 to n do for j:=1 to n div 2 do for k:=0 to n div 5 do 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ị của đ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 do begin write('A[',i,']=');readln(a[i]); end; f:=a[n]; for i:=n downto 1 do f:=f*x +a[i-1]; f:=f+a[0]; writeln('KQ: ',f:7:2); readln; end. Bài tập về mảng Bài 1: Thực hiện các phép tính cộng, trừ, nhân 2 ma trận vuông. (Chú ý: cộng và trừ chỉ thực hiện được với 2 ma trận cùng cỡ n x m. Nhân 2 ma trận thực hiện với 2 ma trận có dang: Anxm x 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 do for j:=1 to n do begin write('A[',i,',',j,']='); readln(a[i,j]); end; for i:=1 to n do for j:=1 to n do begin write('B[',i,',',j,']='); readln(b[i,j]); end; for i:=1 to n do for j:=1 to n do begin 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 do begin for j:=1 to n do write(c[i,j]:5); writeln;writeln; end; writeln('ma tran hieu:'); for i:=1 to n do begin for j:=1 to n do write(d[i,j]:5); writeln;writeln; end; for i:=1 to n do for k:=1 to n do begin c[i,k]:=0; for j:=1 to n do c[i,k]:=c[i,k]+a[i,j]*b[j,k]; end; writeln('ma tran tich:'); for i:=1 to n do begin for j:=1 to n do write(c[i,j]:6); writeln;writeln; end; readln; end. Bài 2: Nhập mảng 2 chiều cấp nxn. + Kiểm tra xem mảng có đối xứng qua đường chéo chính không. + Đưa ra phần tử lớn nhất, nhỏ nhất của mảng. + Có số nào là ước của mọi số không? Có số nào là bội của mọ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 do for j:=1 to n do begin write('A[',i,',',j,']='); readln(a[i,j]); end; for i:=1 to n do begin for j:= 1 to n do write(a[i,j]:5); writeln; end; kt:=true; i:=1; j:=1; while (i<=n) and (j<=n) and (kt=true) do begin if a[i,j]a[j,i] then kt:=false; i:=i+1; j:=j+1; end; 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 do for j:=1 to n do 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 do if a[i] mod min 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 do if max mod a[i] 0 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 các phần tử ở dòng 2 và cột 2. + Tính tổng các phần tử trên đường chéo chính và đường chéo phụ. uses crt; var a: array[1..10,1..10] of integer; n,i,j,t1,t2:byte; begin clrscr; write('n=');readln(n); for i:=1 to n do for j:=1 to n do begin write('A[',i,',',j,']='); readln(a[i,j]); end; for i:=1 to n do begin for j:=1 to n do write(a[i,j]:5); writeln; writeln; end; t1:=0; for i:=1 to n do t1:=t1+a[2,i]+a[i,2]; t1:=t1-a[2,2]; writeln('tong cac phan tu o dong 2 cot 2: ',t1); t2:=0; for i:=1 to n do t2:= t2 + a[i,i] + a[i,n-i+1]; if n mod 2 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; type mt=array[1..100] of integer; 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 do begin write('A[',i,']=');readln(a[i]); end; end; procedure in_day(var a:mt;n:integer); begin writeln; for i:=1 to n do write(a[i]:7); end; procedure sx_lua_chon(var a:mt;n:integer); var m:integer; begin for i:=1 to n do begin m:=1; for j:=1 to i+1 do if a[j]>a[m] then m:=j; if mi then hoan_vi(a[i],a[m]); end; end; procedure sx_chen(var a:mt;n:integer); var x:integer; begin for i:=2 to n do begin x:=a[i]; j:=i-1; while x<a[j] do 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 2 do for j:=1 to i-1 do 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; writeln('day ban dau:'); 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 khi sap xep:'); in_day(a,n); readln; end. Bài 5: Nhập vào dãy số nguyên, sắp xếp theo thứ tự không giảm, đọc thêm 1 số từ bàn phím và chèn vào dãy sao 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 do begin write('A[',i,']=');readln(a[i]); end; writeln('day ban dau:'); for i:=1 to n do write(a[i]:7); writeln; for i:=n downto 2 do for j:=1 to i-1 do if a[j]>a[j+1] then begin tg:=a[j]; a[j]:=a[j+1]; a[j+1]:=tg; end; writeln('day sau khi sap xep:'); for i:=1 to n do write(a[i]:7); writeln; write('chen vao so:');readln(m); i:=1; while (m>a[i]) and (i<n) do i:=i+1; writeln('vi tri chen: ',i); if i>n then a[i]:=m else begin for j:=n downto i do a[j+1]:=a[j]; a[i]:=m; end; writeln('day sau khi chen:'); for i:=1 to n+1 do write(a[i]:6); readln; end. Bài 6: Nhập vào dãy số nguyên, đưa ra những phần tử trong dãy là số đẹp. (Tương tự với số chẵn, số lẻ, số nguyên tố, số chính phương, số hoàn hảo. Tương tự với ma trận) uses crt; 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 do if s[i]>s[i+1] then kt:=false; sd:=kt; end; begin clrscr; write('n=');readln(n); for i:=1 to n do begin write('A[',i,']=');readln(a[i]); end; writeln('nhung so hoan hao trong day:'); for i:=1 to n do if sd(a[i])=true then writeln(a[i],' la so hoan hao'); readln; end. Bài 7: Phần tử của ma trận được gọi là phần tử yên ngựa nếu như nó là bé nhất hàng và lớn nhất cột, hoặc nó là lớn nhất hàng và bé nhất cột. Nhập vào 1 ma trận và cho biết có bao nhiêu phàn tử là 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; maxd,maxc,mind,minc:array[1..10] of integer; begin clrscr; write('n=');readln(n); write('m=');readln(m); for i:=1 to n do for j:=1 to m do begin write('A[',i,',',j,']='); readln(a[i,j]); end; for i:=1 to n do begin for j:=1 to m do write(a[i,j]:7); writeln; writeln; end; for i:=1 to n do begin {lon nhat tren dong} maxd[i]:=a[i,1]; for j:=2 to m do if maxd[i]<a[i,j] then maxd[i]:=a[i,j]; end; for i:=1 to n do write(maxd[i]:6); writeln; for i:=1 to n do begin {nho nhat tren dong} mind[i]:=a[i,1]; for j:=2 to m do if mind[i]>a[i,j] then mind[i]:=a[i,j]; end; for i:=1 to n do write(mind[i]:6); writeln; for j:=1 to m do begin {lon nhat tren cot} maxc[j]:=a[1,j]; for i:=2 to n do if maxc[j]<a[i,j] then maxc[j]:=a[i,j]; end; for j:=1 to m do write(maxc[j]:6);writeln; for j:=1 to m do begin {nho nhat tren cot} minc[j]:=a[1,j]; for i:=2 to n do if minc[j]>a[i,j] then minc[j]:=a[i,j]; end; for j:=1 to m do write(minc[j]:6); writeln; d:=0; for i:=1 to n do for j:=1 to m do 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 là sinh đôi nếu nó là các số nguyên tố và có hiệu bằng 2. Nhập dãy số nguyên và cho biết cso bao nhiêu 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 (k0) do 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 do begin write('A[',i,']=');readln(a[i]); end; for i:=1 to n do write(a[i]:7); writeln; for i:=1 to n do d:=0; for i:=1 to n-1 do for j:=i+1 to n do 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 2 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 ra dãy B có các phần tử là ƯCLN của từng dòng. (tương tự từng 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 xy do 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 do for j:=1 to m do begin write('A[',i,',',j,']='); readln(a[i,j]); end; for i:=1 to n do begin for j:=1 to m do write(a[i,j]:6); writeln;writeln; end; for i:=1 to n do begin d:=ucln(a[i,1],a[i,2]); for j:=3 to m do 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 do write(b[i]:7); readln; end. Bài 9: Nhập vào ma trận A cỡ nxm. In ra dãy B có các phần tử là tổng của từng cột. (tương tự với dãy B là tổng các phần tử trên từng hàng) Bài 10: Nhập vào dãy rồi cho biết có bao nhiêu số chỉ xuất hiện một lần, là những số nào. T51-55. Bài tập về xâu kí tự Bài tập về file Bài tập kết hợp
Tài liệu đính kèm: