Вычислить значение выражения - Pascal ABC (13012)
Формулировка задачи:
Ребят, без понятия как делать. Если кто поможет то пожалуйста с пояснениями.
Написать программу вычисления суммы (произведения) конечного ряда. При разработке программы предусмотреть пропуск слагаемых (множителей), равных нулю или бесконечности.
Решение задачи: «Вычислить значение выражения»
textual
Листинг программы
var i, j, k: integer;
p, s: extended; //real, double
begin
repeat
write('k in [5..688]; k = '); //5..73 для real и double
readln(k)
until (k >= 5) and (k <= 688); //k <= 73 для real и double
p := 1;
for j := 4 to k do
if j <> 4 then
begin
s := 0;
for i := j to k + 2 do
if (i <> 7) and (i <> 5) then
s := s + exp(ln(abs(i - 5) / 3)) / abs(i - 7);
p := p * (j - j * j) * k / (j - 4) * s
end;
write('p = ', p);
readln
end.
Объяснение кода листинга программы
- Объявляются переменные i, j, k типа integer, а также переменные p и s типа extended (real или double).
- Задается диапазон значений переменной k от 5 до 688.
- Выводится сообщение с просьбой ввести значение k.
- Задается начальное значение переменной p равное 1.
- Задается диапазон значений переменной j от 4 до k.
- В цикле for происходит проверка условия j <> 4.
- Если условие выполняется, то переменная s инициализируется значением 0.
- В цикле for происходит проверка условия i <> 7 и i <> 5.
- Если оба условия выполняются, то вычисляется значение выражения exp(ln(abs(i - 5) / 3)) / abs(i - 7) и добавляется к переменной s.
- Значение выражения p вычисляется как произведение (j - j j) k / (j - 4) * s.
- Выводится сообщение с просьбой ввести значение k.
- Программа завершается после ввода значения k и чтения строки
readln.