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

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

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

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

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

textual
Листинг программы
  1. program pr_10_1;
  2. uses crt;
  3. var a,x,k,d,b:real;
  4. function calc(a,x: real): real;
  5. begin
  6. calc:=sin(x+PI/6)/cos(x+PI/6)/sqrt(a+sin(x+0.123));
  7. end;
  8. begin
  9. clrscr;
  10. write('Input a?->');
  11. readln(a);
  12. write('Input x?->');
  13. readln(x);
  14. if(cos(x+PI/6)=0)or(a+sin(x+0.123)=0) then write('Значение функции не определено')
  15. {но ввести такие a,x не реально}
  16. else write('Result = ',calc(a,x):0:4);
  17. readln;
  18. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы