В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
Dima1911
Dima1911
18.12.2021 04:05 •  Информатика

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

Показать ответ
Ответ:
kosenaalina
kosenaalina
09.10.2020 03:26
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(0 оценок)
Ответ:
ulanachukalkina
ulanachukalkina
09.10.2020 03:26

{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(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота