Дан целочисленный массив из 40 элементов. Напишите программу на паскале, которая находит и выводит пару с наименьшей суммой среди непересекающихся пар соседних элементов. То есть первая пара - 1 и 2 элементы, а вторая пара - 3 и 4 элементы и тд
Дан целочисленный массив из 40 элементов. Элементы массива могут принимать целые значения от –10 000 до 10 000 включительно. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит пару с наименьшей суммой среди непересекающихся пар соседних элементов. То есть, первая пара - 1-й и 2-й элементы, вторая пара - 3-й и 4-й элементы, и т.д.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
0 votes Thanks 0
mirageKZ
Ваш ответ вообще к чему???? полагаю это ошибка
coolkate1
Не очень понятно зачем i mod 2 и i mod 10, а еще откуда были взяты эти значения m := 200; ind := -1;i := 1
mirageKZ
это сделано для того чтобы вывести весь первоначальный массив в удобном виде. i mod 2 добавил чтобы показать пары, между парами ставится символ _. i mod 10 добавил, чтобы выводить по 10 чисел в строке, итого будет 4 строки.
mirageKZ
m=200 задал чтобы найти минимальное значение при поиске. Минимальное число первоначально не может быть больше чем сумма пары, каждое из чисел которых задана в рандоме до 100.
mirageKZ
i = 1 это начальный шаг цикла с которого надо брать элементы.
mirageKZ
без условий ( i mod 2 и i mod 10) будет каша из цифр, и тяжело проверять решение. Поверь, так лучше.
Answers & Comments
Объяснение:
Дан целочисленный массив из 40 элементов. Элементы массива могут принимать целые значения от –10 000 до 10 000 включительно. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит пару с наименьшей суммой среди непересекающихся пар соседних элементов. То есть, первая пара - 1-й и 2-й элементы, вторая пара - 3-й и 4-й элементы, и т.д.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
Ответ:
числа задаются автоматом через random
Объяснение:
var
a : array [1..40] of integer;
i, m, ind : integer;
begin
randomize;
for i := 1 to 40 do begin
a[i] := random(100);
if i mod 2 = 0 then write(a[i]:2, ' ')
else write(a[i]:2, '__');
if i mod 10 = 0 then writeln();
end;
m := 200;
ind := -1;
i := 1;
repeat begin
if m > (a[i]+a[i+1]) then begin
m := (a[i]+a[i+1]);
ind := i;
end;
i := i+2;
end
until i > 40;
writeln('----- ', round((ind+1)/2) ,' пара минимальная -----');
writeln(a[ind], ' ', a[ind+1]);
end.