Advertisement
xXx_Fortis_xXx

Untitled

Apr 10th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.85 KB | None | 0 0
  1. program matrixAnalising;
  2.  
  3. uses
  4.     crt;
  5.  
  6. type
  7.     MatrixT = array [0..5] of array [0..5] of integer;
  8.     RowT = array [0..5] of integer;
  9.    
  10. var
  11.     matrix: MatrixT;
  12.     colMax: RowT;
  13.     colMin: RowT;
  14.    
  15. procedure initUI ();                                                          
  16. begin
  17.     setwindowtitle('Анализ матрицы');
  18.     setwindowsize(100, 25);
  19.     textbackground(15);
  20.     textcolor(0);
  21.     clrscr();
  22. end;
  23.  
  24. procedure startOutput ();
  25. begin
  26.     clrscr();
  27.     gotoxy(50, 1);
  28.     writeln('Мин.   Макс.');
  29.     gotoxy(50, 2);
  30.     writeln('  в      в');
  31.     gotoxy(50, 3);
  32.     writeln('стр.   стр.');
  33. end;
  34.  
  35. procedure endOutput ();
  36. begin
  37.     writeln('Мин.');
  38.     write(' в   :');
  39.     for var i := 0 to 5 do begin
  40.         write(colMin[i]:6, ' ');
  41.     end;
  42.     writeln('');
  43.     writeln('стлб.');
  44.     writeln('Макс.');
  45.     write(' в   :');
  46.     for var i := 0 to 5 do begin
  47.         write(colMax[i]:6, ' ');
  48.     end;
  49.     writeln('');
  50.     writeln('стлб.');
  51.     writeln('');
  52. end;
  53.  
  54. procedure processRow (rowNum: integer);
  55. begin
  56.     var
  57.         rowMax, rowMin: integer;
  58.     write('      ');
  59.     for var i := 0 to 5 do begin
  60.         if (i = 0) or (matrix[rowNum][i] > rowMax) then begin
  61.             rowMax := matrix[rowNum][i];
  62.         end;
  63.         if (i = 0) or (matrix[rowNum][i] < rowMin) then begin
  64.             rowMin := matrix[rowNum][i];
  65.         end;
  66.            
  67.         if (rowNum = 0) or (matrix[rowNum][i] > colMax[i]) then begin
  68.             colMax[i] := matrix[rowNum][i];
  69.         end;
  70.         if (rowNum = 0) or (matrix[rowNum][i] < colMin[i]) then begin
  71.             colMin[i] := matrix[rowNum][i];
  72.         end;
  73.        
  74.         write(matrix[rowNum][i]:6, ' ');
  75.     end;
  76.     write(rowMin:6, ' ');
  77.     writeln(rowMax:6);
  78. end;
  79.  
  80. procedure initMatrix (key: char);
  81. begin
  82.     var flag: boolean;
  83.    
  84.     flag := ((key = 'А') or (key = 'а'));
  85.     if flag then begin
  86.         randomize;
  87.     end
  88.     else begin
  89.         writeln('Введите матрицу 6х6:');
  90.     end;
  91.     for var i := 0 to 35 do begin
  92.         if flag then begin
  93.             matrix[i div 6][i mod 6] := random(-100000, 100000);
  94.         end
  95.         else begin
  96.             read(matrix[i div 6][i mod 6]);
  97.         end;
  98.     end;
  99. end;
  100.  
  101. var
  102.     key   : char;
  103.    
  104. begin
  105.     initUI();
  106.    
  107.     while ((key <> 'к') and (key <> 'К') and
  108.            (key <> 'а') and (key <> 'А')) do begin
  109.         write('Введите "К" для заполнения матрицы с клавиатуры');
  110.         writeln(' или "А" для автоматического заполнения.');
  111.         read(key);
  112.         clrscr();
  113.     end;
  114.            
  115.     initMatrix(key);
  116.     startOutput();
  117.     for var i := 0 to 5 do begin
  118.         processRow(i);
  119.     end;
  120.     endOutput();
  121.     readkey();
  122. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement