 
В массиве из N элементов, заданных случайным образом из промежутка [-20;60], найдите произведение
всех элементов, больших 20 (pascal abc) 0
        0
         0
        0
    Ответы на вопрос
 
        Из сложностей может возникнуть только генерация случайного значения. Функция random(x) возвращает случайное число от 0 до x-1. Когда функция возвращает 0 (минимальное значение), нам нужно, чтобы оно превратилось в 20. Будем отнимать 20 от значения функции random(x):
a[i] := random(x) - 20;
Самое большое число, которое мы хотим получить - 60. Так как мы отнимаем 20, самое большое число, которое должна вернуть функция random(x) равно 80. Значит, x равен 81:
a[i] := random(81) - 20;
Кстати, произведение может получаться слишком большим, а тип данных integer может хранить числа не больше 32767. Поэтому мы должны хранить произведение как longint. Оно позволяет хранить числа до 
Код
var
a: array[1..1000] of integer;
i, n: integer;
ans: longint;
begin
read(n);
ans:=1;
for i:=1 to n do
begin
a[i]:=random(81)-20;
if a[i] > 20 then ans:=ans*a[i];
end;
writeln(ans);
end.
 0
                    0
                     0
                    0
                 
            Для нахождения произведения всех элементов массива, которые больше 20, вам необходимо выполнить следующие шаги в Pascal ABC:
- Создайте массив из N элементов и заполните его случайными числами из промежутка [-20;60].
- Инициализируйте переменную, которая будет хранить произведение элементов больше 20.
- Пройдитесь по всем элементам массива и, если элемент больше 20, умножьте его на значение переменной из пункта 2.
- Выведите результат – произведение всех элементов больше 20.
Вот пример кода на Pascal ABC, реализующего описанную задачу:
pascalprogram ProductOfElementsGreaterThanTwenty; const N = 10; // Здесь можно указать нужное вам количество элементов в массиве. var arr: array[1..N] of Integer; product: Integer; i: Integer; begin // Заполняем массив случайными числами из промежутка [-20;60]. Randomize; // Инициализация генератора случайных чисел. for i := 1 to N do arr[i] := Random(81) - 20; // Генерируем случайное число из промежутка [-20;60]. // Инициализируем произведение единицей. product := 1; // Находим произведение элементов больше 20. for i := 1 to N do begin if arr[i] > 20 then product := product * arr[i]; end; // Выводим результат. writeln('Массив:'); for i := 1 to N do write(arr[i], ' '); writeln; writeln('Произведение элементов больше 20: ', product); end.
Обратите внимание, что количество элементов массива (N) и сам массив, генерируемый случайными числами, здесь приведены для примера. Вы можете изменить значение N в зависимости от того, сколько элементов вам нужно в массиве.
 0
                    0
                     0
                    0
                Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
- 
			Математика 
- 
			Литература 
- 
			Алгебра 
- 
			Русский язык 
- 
			Геометрия 
- 
			Английский язык 
- 
			Химия 
- 
			Физика 
- 
			Биология 
- 
			Другие предметы 
- 
			История 
- 
			Обществознание 
- 
			Окружающий мир 
- 
			География 
- 
			Українська мова 
- 
			Информатика 
- 
			Українська література 
- 
			Қазақ тiлi 
- 
			Экономика 
- 
			Музыка 
- 
			Право 
- 
			Беларуская мова 
- 
			Французский язык 
- 
			Немецкий язык 
- 
			МХК 
- 
			ОБЖ 
- 
			Психология 
- 
			Физкультура и спорт 
- 
			Астрономия 
- 
			Кыргыз тили 
- 
			Оʻzbek tili 
 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			