Преобразовать два заданных массива, увеличивая их соответствующие элементы на большее из рассматриваемой каждый раз пары чисел. в первом из полученных массивов найти среднее арифметическое, во втором – максимальный и минимальный элементы. в pascal.
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('должен стоять элемент с минимальным значением');
begin
var (a, b) := (ArrRandom, ArrRandom);
Println('Исходные массивы: '); a.Println; b.Println; Println;
var m := a.Zip(b, (x, y)-> max(x, y)).ToArray;
Println('Конечные массивы: ');
a := a.Select((t, i)-> t + m[i]).ToArray; a.Println;
b := b.Select((t, i)-> t + m[i]).ToArray; b.Println;
Println($'{NewLine}Сред. арифм. = {a.Average}');
Println($'Минимальный = {b.Min}{NewLine}Максимальный = {b.Max}');
end.
Пример вывода в приложении.