На паскале написать программу с подпрограммой. дано: массивы i(11), k(11). сформировать массив м (11), элементы которого вычисляются по формуле m j= i j+ k j (j=1,11). массивы i,k предварительно реорганизовать следующим образом: на первом месте, в данных массивах должен стоять элемент с минимальным значением . поиск минимального элемента массива и реорганизацию массива оформить в виде подпрограммы. если можно полностью расписать

RTAKZM RTAKZM    3   15.09.2019 15:40    1

Ответы
snezoc snezoc  07.10.2020 17:37
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.

На паскале написать программу с подпрограммой. дано: массивы i(11), k(11). сформировать массив м (11
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика