﻿PROGRAM A12;
const
    rows = 3;
    cols = 4;
    els = 10;

var
    mt:array[1..rows,1..cols] of byte;
    vt:array[1..rows*cols] of byte;    
    
    i,j, k,m:byte;
    a,b, c:byte;
    ax:integer;
    
procedure print_vt();
var i,j:byte;
begin
  for i:=1 to rows do begin
    for j:=1 to cols do 
      write(mt[i,j]:6);
    writeln(' ');
  end;
  writeln(' ');
end;

BEGIN
  randomize;

  k := rows * cols - els; //последние 10 элементов
  m := 1;//счетчик
  ax := 0; //сумма последних 10 элементов
  
  //начальное заполнение массива и вычисление суммы последних 10 эл.
  for i:=1 to rows do begin
    for j:=1 to cols do begin 
      mt[i,j] := random(255);
      
      if (m>k) then
        ax := ax + mt[i,j]; //сумма последних 10 элементов

      m := m+1;
    end;
  end;

  writeln('Начальный массив');
  print_vt();      
      
  a := 255;
  b := 255;
  for i:=1 to rows do begin
    if (mt[i,3]<a) then begin//3 колонка
      a := mt[i,3];
      k := i;//позиция
    end;
    if (mt[i,4]<b) then begin//4 колонка
      b := mt[i,4];
      m := i;//позиция
    end;
  end;
  
  writeln('а) найти номер минимального элемента в третьем столбце: ', mt[k,3]);      
  writeln(' ');
  
  writeln('б) заменить min элемент в 4-ом столбце (',mt[m,4] ,
          ') на min элемент 3 столбца (', mt[k,3],')');

  c := mt[k,3];
  mt[k,3] := mt[m,4];
  mt[m,4] := c;
  
  print_vt();

  writeln('c) Среднеарифметическое значение последних 10-ти элементов матрицы: ', ax/els);
  writeln(' ');
  
  writeln('д) преобразовать матрицу в вектор');
  //матрицу в вектор
  c := 1;
  for i:=1 to rows do
    for j:=1 to cols do begin
      vt[c] := mt[i,j];
      c:= c+1;
    end;

  for i:=1 to c-1 do
    write('   ',vt[i]);
    
END.