Найти произведение вычисленных значений функции - Pascal ABC
Формулировка задачи:
Найти произведение вычисленных значений функции,целая часть которых кратна 2
y=9e^-0,5x * Cos^2 (PIx-45 градусов) .Помогите пожалуйста
Решение задачи: «Найти произведение вычисленных значений функции»
textual
Листинг программы
function f(x:real):real;
begin
f:=9*exp(-0.5*x)*sqr(cos(pi*x-pi/4));
end;
var a,b,h,x,p:real;
k:byte;
begin
write('Введите начало интервала a=');
readln(a);
repeat
write('Введите конец интервала b>',a:0:1,' b=');//не вводите b>3, а то произведение будет=0
readln(b);
until b>a;
repeat
write('Введите шаг вычислений h<',b-a:0:1,' h=');
readln(h);
until h<b-a;
x:=a;
p:=1;
k:=0;
while x<b+h/2 do//чтобы не проскочить b за счет округления
begin
writeln('x=',x:5:1,' y=',f(x):8:3);
if trunc(f(x))mod 2=0 then
begin
p:=p*trunc(f(x));
k:=1;
end;
x:=x+h;
end;
if k=0 then write('Нет целой части кратной 2')
else write('Произведение целых частей, кратных 2=',p:0:0);
end.
Объяснение кода листинга программы
- Создается функция f, которая принимает аргумент x типа real и возвращает значение типа real. Внутри функции выполняется вычисление произведения значений функции, используя формулу exp(-0.5x) sqr(cos(pi*x-pi/4)).
- Создаются переменные a, b, h, x и p типа real. Переменная k типа byte.
- Пользователю предлагается ввести начало и конец интервала для вычисления произведения. Ввод проверяется на корректность (не вводить b>3, чтобы произведение не равнялось нулю).
- Пользователю предлагается ввести шаг вычислений h.
- Переменная x инициализируется значением a.
- Переменная p инициализируется значением 1.
- Переменная k инициализируется значением 0.
- Запускается цикл while, который выполняется, пока x меньше b + h/2.
- Внутри цикла выводится значение x и y, где y вычисляется как f(x).
- Если trunc(f(x)) mod 2 = 0, то переменная p инициализируется целой частью f(x), а переменная k устанавливается равной 1.
- После окончания цикла x увеличивается на h.
- Выводится сообщение о том, есть ли целая часть, кратная 2, или нет.
- Выводится произведение целых частей, кратных 2, если k не равно 0.