﻿PROGRAM B01;

CONST
    max = 11;
TYPE
    vector = array[1..max]of integer;
VAR
    M, I, K:vector;
    j:byte;

{ Массивы I,K предварительно реорганизовать следующим образом: на первом 
месте, в данных массивах должен стоять элемент с минимальным значением}
procedure reorganize_vector(var vt:vector); 
var   i, j:byte;
      min, tmp:integer;
      
begin
  // вначале ищем минимальный элемент и запоминаем его место в массиве
  j:=1;//
  min:=vt[1];//назначаем наименьшим - первый элемент
  for i:=2 to max do
    if (min>vt[i]) then begin
      min:=vt[i];
      j:=i;//индекс наименьшего числа
    end;
    
  // теперь меняем местами первый элемент массива с наименьшим числом
  tmp := vt[1];//запоминаем значение первого элемента
  vt[1] := min;//меняем его на наименьший элемент
  vt[j] := tmp;//на место наименьшего ставим значение из первого элемента
end;

// процедура для вывода массива на экран
procedure print_vector(var vt:vector);
var j:byte;
begin
  for j:=1 to max do 
    write(vt[j]:6);
  writeln(' ');
end;


BEGIN
  writeln('Дано:'); 

  //заполняем массивы случаынйми данными
  randomize;
  for j:=1 to max do begin
    I[j]:=random(-128,127);  
    K[j]:=random(-128,127);  
  end;

  //выводим их на экран
  write('массив I[',max,']: ');
  print_vector(I);
  write('массив K[',max,']: ');
  print_vector(K);

  writeln(' ');
  writeln('Реорганизовать массивы так, чтобы на первом месте ');
  writeln('должен стоять элемент с минимальным значением');

  reorganize_vector(I);
  reorganize_vector(K);

  write('массив I[',max,']: ');
  print_vector(I);
  write('массив K[',max,']: ');
  print_vector(K);

  writeln(' ');
  writeln('Сформировать массив М[',max,'], элементы которого вычисляются');
  writeln('по формуле M[j] = I[j] + K[j]'); 

  for j:=1 to max do 
    M[j] := I[j] + K[j];

  write('массив M[',max,']: ');
  print_vector(M);
END.