Вычислить выражение - PascalABC.NET (24936)
Формулировка задачи:
Для решения задачи задать случайным образом одномерный массив размерности N (вводится с клавиатуры) из целочисленных элементов, принадлежащих отрезку
[-20;20]. Вывести на экран промежуточные результаты, полученные при вычислении значения заданного выражения.
Составить программу для вычисления
T=(R/(Q+1))+S
R - наименьший элемент массива;
Q - произведение элементов массива с нечетными номерами;
S - количество элементов, лежащих в интервале (A,B) (ввести с клавиатуры).
Решение задачи: «Вычислить выражение»
textual
Листинг программы
const
n_max = 100;
var
s, a, b, i, n, min: integer;
mas: array[1..n_max] of integer;
t, proizved: real;
begin
randomize;
WRITE('Введите размерность одномерного массива ');
READln(n);
write('Введите интервал (A,B): ');
READln(a, b);
//S - количество элементов, лежащих в интервале (A,B)
writeln('Одномерный массив:');
{Q - произведение элементов массива с нечетными номерами;}
min := 1;
s := 0;
proizved := 1;
for i := 1 to n do
begin
mas[i] := random(-20, 20); {задаем массив случайным образом}
write(mas[i]:5); {выводим массив}
if mas[i] < mas[min] then
min := i;
if odd(i) then
proizved := proizved * mas[i];
if (mas[i] <= b) and (mas[i] >= a) then
inc(s);
end;
writeln;
writeln('R = ', mas[min]);
writeln('Q = ', proizved:0:0);
writeln('S = ', s);
//T=(R/(Q+1))+S
T := mas[min] / (proizved + 1) + s;
writeln('T = ', T);
end.
Объяснение кода листинга программы
- Объявлены константы и переменные:
- n_max = 100 - максимальная размерность массива
- s, a, b, i, n, min = целочисленные переменные для подсчета количества элементов в интервале, произведения элементов массива с нечетными номерами, хранения индекса минимального элемента и т.д.
- mas = массив для хранения случайных чисел
- t, proizved = переменные для хранения произведения элементов массива с нечетными номерами и временного хранения результата
- Выполняется инициализация генератора случайных чисел
- Пользователю предлагается ввести размерность массива и интервал для подсчета элементов
- Цикл for перебирает элементы массива от 1 до n
- Каждый элемент массива инициализируется случайным числом в диапазоне от -20 до 20
- Если текущий элемент меньше минимального, то обновляется значение переменной min
- Если текущий элемент имеет нечетный номер, то обновляется значение переменной proizved
- Если текущий элемент находится в заданном интервале (A,B), то увеличивается значение переменной s
- После завершения цикла выводятся значения переменных min, proizved и s
- Вычисляется значение переменной T по формуле T = (R/(Q+1))+S
- Выводится значение переменной T