
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до
10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит сумму элементов массива, меньших 200 и при этом кратных 5, а затем заменяет каждый такой элемент на число, равное найденной сумме. Гарантируется, что хотя бы один такой элемент в массиве есть. В качестве результата необходимо вывести изменённый массив, каждый элемент выводится с новой строчки. Например, для исходного массива из шести элементов: 204 115 27 20 305 4 программа должна вывести (по одному числу в строке) числа 204 135 27 135 305 4 Язык Паскаль

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

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 a[i]:=random(m+1);
{Ищем максимальный и минимальный элементы}
sum:=0;
for i:=1 to n do
if (a[i]<200) and (a[i] mod 5 = 0) then sum:=sum+a[i];
{Заменяем эти элементы найденной суммой}
for i:=1 to n do
if (a[i]<200) and (a[i] mod 5 = 0) then a[i]:=sum;
{Вывод}
writeln;
for i:=1 to n do writeln(a[i]);
end.



Вот алгоритм на языке программирования Pascal, который выполняет описанные в задании операции:
pascalprogram SumAndReplace; const N = 30; // Количество элементов в массиве MAX_VALUE = 10000; // Максимальное значение элементов массива TARGET_VALUE = 200; // Значение для фильтрации DIVISOR = 5; // Кратность, по которой фильтруем элементы var arr: array[1..N] of integer; i, sum: integer; begin // Заполнение массива случайными значениями от 0 до 10000 Randomize; for i := 1 to N do arr[i] := Random(MAX_VALUE + 1); // Вывод исходного массива Writeln('Исходный массив:'); for i := 1 to N do Writeln(arr[i]); // Поиск суммы элементов, меньших 200 и кратных 5 sum := 0; for i := 1 to N do begin if (arr[i] < TARGET_VALUE) and (arr[i] mod DIVISOR = 0) then sum := sum + arr[i]; end; // Замена элементов на найденную сумму, если они удовлетворяют условиям for i := 1 to N do begin if (arr[i] < TARGET_VALUE) and (arr[i] mod DIVISOR = 0) then arr[i] := sum; end; // Вывод измененного массива Writeln('Измененный массив:'); for i := 1 to N do Writeln(arr[i]); end.
Этот код создает массив из 30 элементов, заполняет его случайными значениями от 0 до 10000, затем находит сумму элементов, меньших 200 и кратных 5, и заменяет каждый такой элемент на найденную сумму. После этого выводит исходный и измененный массивы, каждый элемент на новой строке.


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








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