Помогите пожалуйста. ** Паскале написать программу с подпрограммой.Дано: массивы I(11),...

0 голосов
51 просмотров

Помогите пожалуйста. На Паскале написать программу с подпрограммой.
Дано: массивы I(11), K(11). Сформировать массив М (11), элементы которого вычисляются по формуле
M j= I j+ K j (j=1,11). Массивы I,K предварительно реорганизовать следующим образом: на первом месте, в данных массивах должен стоять элемент с минимальным значением . поиск минимального элемента массива и реорганизацию массива оформить в виде подпрограммы. Если можно полностью пожалуйста расписать


Информатика (93 баллов) | 51 просмотров
0

Сказыввется то , что я не знаю совсем как здесь нужно делать

0

Задание так и звучит в задачнике. больше никакой информации нет

Дан 1 ответ
0 голосов
Правильный ответ

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.


image
(10.8k баллов)
0

Девушка вообще не в курсе - поэтому это самый простой из всех вариантов. Причем программа написана настолько дубово, что вполне сойдет за написанную самостоятельно.

0

Если окажется что надо было отсортировать, или преобразаовать массив используя методы работы с массивами - то тут уже надо было ясно писать условие.

0

Программу с чтением из файла CSV и вывод данных по ученикам - будете делать?

0

там смысла делать еще одну - примитивную версию - нету.