Вопрос задан 27.07.2023 в 04:39. Предмет Информатика. Спрашивает Жебель Оля.

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до

10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит самую большую сумму двух соседних элементов и заменяет на эту сумму все элементы, кратные 3. Гарантируется, что в массиве есть хотя бы один элемент, кратный 3. В качестве результата необходимо вывести измененный массив в обратном порядке, каждый элемент массива выводится с новой строчки. Например, для массива из восьми элементов: 1 2 6 3 2 7 3 4 программа должна вывести (по одному числу в строке) числа: 4 10 7 2 10 10 2 1 Язык Паскаль
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Баранов Семён.

PascalABC.NET 3.4.2, сборка 1837 от 11.10.2018

Внимание! Если программа не работает, обновите версию!

begin

 var a := ArrRandom(30, 0, 10000); // сформировали массив

 a.Println; // вывели его элементы, если не надо, уберите строку

 var smax := a.Pairwise.Select(t -> t[0] + t[1]).Max; // макс. сумма в парах

 a.Reverse.Select(t -> t mod 3 = 0 ? smax : t).Printlines // все остальное

end.

0 0
Отвечает Дроздюк Анастасия.

{PascalABC}

Program Begenjov1997;

const

 n = 30; {Количество элементов массива}

 m = 10000; {Максимально возможное значение элемента}

var

 a:array[1..n] of integer;

 i, sum: integer;

 s:string;

begin

 s:='**** -=Alphaeus=- ****';

 for i:=1 to 22 do begin write(s[i]); sleep(60) end;

{заполняем массив случайными числами}

 writeln; randomize;

 for i:=1 to n do

   begin

     a[i]:=random(m+1);

   end;

{Ищем максимальную сумму двух соседних элементов}

 sum:=a[1]+a[2];

 for i:=2 to n-1 do

     if (a[i]+a[i+1]>sum) then sum:=a[i]+a[i+1];

{Заменяем элементы, кратные 3, наденной суммой}

 for i:=1 to n do

     if (a[i] mod 3 = 0) then  a[i]:=sum;

{Вывод}

 writeln('Массив А в обратном порядке:');

 for i:=0 to n-1 do writeln(a[n-i],'  ');

 writeln();

 writeln('Максимальная сумма двух соседних элементов равна ',sum);

end.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Далее приведен алгоритм на языке Паскаль, который выполняет указанные действия:

pascal
program MaxSumAndReplace; const MAX_SIZE = 30; var arr: array[1..MAX_SIZE] of Integer; i, maxSum, n: Integer; // Функция для нахождения максимальной суммы двух соседних элементов function FindMaxSum(a, b: Integer): Integer; begin if a > b then Result := a else Result := b; end; begin // Ввод элементов массива writeln('Введите 30 элементов массива:'); for i := 1 to MAX_SIZE do readln(arr[i]); // Находим максимальную сумму соседних элементов maxSum := 0; for i := 1 to MAX_SIZE - 1 do begin n := FindMaxSum(arr[i], arr[i + 1]); if n > maxSum then maxSum := n; end; // Заменяем элементы, кратные 3, на максимальную сумму for i := 1 to MAX_SIZE do begin if arr[i] mod 3 = 0 then arr[i] := maxSum; end; // Выводим измененный массив в обратном порядке writeln('Измененный массив:'); for i := MAX_SIZE downto 1 do writeln(arr[i]); end.

Вы можете скопировать этот код в среду программирования для Паскаля и выполнить его, чтобы увидеть результат на вашем массиве. Программа сначала вводит 30 элементов массива, затем находит максимальную сумму двух соседних элементов и заменяет элементы, кратные 3, на эту максимальную сумму. Наконец, программа выводит измененный массив в обратном порядке, каждый элемент на новой строке.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос