Нужно исключить ситуацию, когда cos(x)=0 - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Нужно исключить ситуацию, когда cos(x)=0, вроде как написал все правильно, но не выходит.
program pr_10_1;
uses crt;
var a,x,k,d,b:real;
function calc(a,x: real): real;
begin
calc:=(sin(x+PI/6)/cos(x+PI/6))/(sqrt(a+sin(x+0.123)));
end;
begin
clrscr;
write('Input a?->');
readln(a);
write('Input x?->');
readln(x);
k:=cos(x+PI/6);
d:=a+sin(x+0.123);
if (k=0) or (d<=0) then
writeln('Error') else
writeln('Result = ',calc(a,x):1:4);
writeln('cos(',x:1:4,'+pi/6)= ',k:1:4);
readln;
end.
Прогон:
Input a?->0 Input x?->1.04719755 Result = 870888617.3185 cos(1.0472+pi/6)= 0.0000

Решение задачи: «Нужно исключить ситуацию, когда cos(x)=0»

textual
Листинг программы
program pr_10_1;
uses crt;
var a,x,k,d,b:real;
function calc(a,x: real): real;
begin
calc:=sin(x+PI/6)/cos(x+PI/6)/sqrt(a+sin(x+0.123));
end;
begin
clrscr;
write('Input a?->');
readln(a);
write('Input x?->');
readln(x);
if(cos(x+PI/6)=0)or(a+sin(x+0.123)=0) then write('Значение функции не определено')
{но ввести такие a,x не реально}
else write('Result = ',calc(a,x):0:4);
readln;
end.

Объяснение кода листинга программы

  1. Объявление переменных a, x, k, d, b: real;
  2. Определение функции calc(a,x: real): real;
  3. Ввод значений переменных a и x с помощью readln(a); и readln(x);
  4. Проверка на не определенность значения функции с помощью if(cos(x+PI/6)=0)or(a+sin(x+0.123)=0);
  5. Вывод сообщения в случае не определенности значения функции write('Значение функции не определено');
  6. Вывод значения функции с помощью write('Result = ',calc(a,x):0:4);
  7. Чтение строки с помощью readln;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5
Похожие ответы