Условие задачи : Сформировать и вывести на экран массив, элементы которого заданы датчиком случайных чисел на интервале [-56, 47]. Найти произведение элементов с четными номерами, которые превосходят некоторое число t.
Сложность : легкая .
Чтобы решить эту задачу нам понадобиться цикл и условие.
Первое что мы сделаем мы создадим свой тип данных как и зачем читайте (тут) :
type massiv = array [1..100] of integer;
Теперь надо подумать какие переменные нам нужны :
- Под массив само собой
- Под кол-во элементов
- Для произведения
- Переменная счетчик для цикла
- Переменная t.
Объявим их :
var mass : massiv ; n , proizv , i , t : integer;
Теперь мы сделаем следующее :
Сначала включим генератор случайных чисел для random зачем читайте (тут), затем присвоим переменной t какое-то число допустим 10, начальное значение произведения сделаем 1 (если этого не сделать то оно всегда будет равняться 1) и попросим пользователя ввести кол-во элементов массива :
begin randomize; // включаем генератор случайных чисел. t := 10 ; proizv := 1; write('Введите кол-во элементов массива : '); readln(n); end.
Теперь остался цикл в нем мы будем перебирать каждый элемент и сделаем условие, если число четное и больше t, то его можно умножать, погнали :
for i:=1 to n do begin mass[i] := random(104) - 56 ; if (mass[i] mod 2 = 0) and (mass[i] > t) then proiz := proiz * mass[i]; end;
Также можно для удобства вывести числа которые умножались, просто в условие добавим эту строку :
write(mass[i], ' | ');
Вот и вся задача :
uses crt; type massiv = array [1..100] of integer; var mass : massiv ; n , proizv , i , t : integer; begin clrscr; // очищаем экран randomize; // включаем генератор случайных чисел. t := 10 ; proizv := 1; write('Введите кол-во элементов массива : '); readln(n); for i:=1 to n do begin mass[i] := random(104) - 56 ; if (mass[i] mod 2 = 0) and (mass[i] > t) then begin write(mass[i], ' | '); proizv := proizv * mass[i]; end; end; writeln('Произведение эл-тов равно : ', proizv); readln; // чтобы программа не закрывалась. end.