Advertisement
nguyenvanquan7826

maTranNam

Nov 2nd, 2013
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 3.99 KB | None | 0 0
  1. var     A : array[1..100,1..100] of integer;
  2.         i, j, k, n, m, sum, sumNT, sumCP, sumHH, max, temp, count : integer;
  3.  
  4. function checkNT(n : integer): boolean;
  5. var     i, m: integer;
  6. begin
  7.         m := round(sqrt(n));
  8.         for i:=2 to m do
  9.                 if n mod i = 0 then
  10.                 begin
  11.                         checkNT := false;
  12.                         exit;
  13.                 end;
  14.         checkNT := true;
  15. end;
  16.  
  17. function checkCP(n : integer) : boolean;
  18. var     i: integer;
  19. begin
  20.         checkCP := false;
  21.         if n = 1 then
  22.         begin
  23.                 checkCP := true;
  24.                 exit;
  25.         end;
  26.         for i:=1 to n div 2 do
  27.                 if i*i = n then
  28.                 begin
  29.                         checkCP := true;
  30.                         exit;
  31.                 end;
  32.  
  33. end;
  34.  
  35. function checkHH(n : integer): boolean;
  36. var     i, s : integer;
  37. begin
  38.         s := 1;
  39.         for i:= 2 to n-1 do
  40.                 if n mod i = 0 then s := s + i;
  41.         if s = n then checkHH := true
  42.         else checkHH := false;
  43. end;
  44.  
  45. BEGIN
  46.         writeln('Nhap so hang va so cot: ');
  47.         readln(n, m);
  48.         writeln('Nhap cac phan tu cua ma tran: ');
  49.         for i:=1 to n do
  50.         begin
  51.                 for j:=1 to m do
  52.                 begin
  53.                         write('A[',i,', ', j,'] = ');
  54.                         readln(A[i,j]);
  55.                 end;
  56.         end;
  57.         writeln('Ma tran da nhap:');
  58.         for i:=1 to n do
  59.         begin
  60.                 for j:=1 to m do
  61.                         write(A[i,j]);
  62.                 writeln;
  63.         end;
  64.  
  65.         sum := 0;
  66.         sumNT := 0;
  67.         sumHH := 0;
  68.         sumCP := 0;
  69.         max := A[1,1];
  70.         count := 0;
  71.         for i:=1 to n do
  72.         begin
  73.                 for j:=1 to m do
  74.                 begin
  75.                         {tinh tong cac so chan tren hang le}
  76.                         if i mod 2 = 1 then
  77.                         begin
  78.                                 if A[i,j] mod 2 = 0 then
  79.                                 begin
  80.                                         sum := sum + A[i,j];
  81.                                         inc(count);
  82.                                 end;
  83.                         end;
  84.  
  85.                         {tinh tong cac so nguyen to}
  86.                         if checkNT(A[i,j]) then sumNT := sumNT + A[i,j];
  87.  
  88.                         {tinh tong cac so chinh phuong}
  89.                         if checkCP(A[i,j]) then sumCP := sumCP + A[i,j];
  90.  
  91.                         {tinh tong cac so hoan hao}
  92.                         if checkHH(A[i,j]) then sumHH := sumHH + A[i,j];
  93.  
  94.                         {tim so lon nhat cua ma tran}
  95.                         if max < A[i,j] then max := A[i,j];
  96.                 end;
  97.         end;
  98.  
  99.         writeln('TB cac so chan tren cac hang le la: ', sum/count);
  100.         writeln('Tong cac so nguyen to la: ', sumNT);
  101.         writeln('Tong cac so chinh phuong la: ', sumCP);
  102.         writeln('Tong cac so hoan hao la: ', sumHH);
  103.  
  104.         {in ra cac so max}
  105.         writeln('So lon nhat trong ma tran la ', max, ' o cac vi tri:');
  106.         for i:=1 to n do
  107.                 for j:=1 to m do
  108.                         if A[i,j] = max then writeln('A[', i , ',', j , ']');
  109.         writeln;
  110.  
  111.         {sap xep ma tran theo chieu tang dan cua moi hang}
  112.         for i:=1 to n do
  113.         begin
  114.                 for j:=1 to m-1 do
  115.                         for k:= j+1 to m do
  116.                                 if A[i,j] > A[i,k] then
  117.                                 begin
  118.                                         temp := A[i,j];
  119.                                         A[i,j] := A[i,k];
  120.                                         A[i,k] := temp;
  121.                                 end;
  122.         end;
  123.  
  124.         writeln('Ma tran sap xep theo chieu tang cua moi hang:');
  125.         for i:=1 to n do
  126.         begin
  127.                 for j:=1 to m do
  128.                         write(A[i,j]);
  129.                 writeln;
  130.         end;
  131.  
  132.         readln;
  133. END.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement