Вычисления значений функции Y для значения переменной x - Pascal ABC

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

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

Листинг программы
  1. program v16z2;
  2. var
  3. x,y,A,B,g,H:real;
  4. begin
  5. writeln('Программа для вычисления значений функции Y для значения переменной x -->');
  6. writeln;
  7. writeln('Дана функция: Y = x^2*Cos(x)/Ln(x^2-1);');
  8. writeln;
  9. write('Введите начальное значение интервала A: ');
  10. readln(A); //-2
  11. write('Введите конечное значение интервала B: ');
  12. readln(B); //2
  13. write('Введите шаг H: ');
  14. readln(H); //0.1
  15. writeln;
  16. A:=A-H;
  17. writeln('------------');
  18. while (A<=-1.1) do begin
  19. A:=A+H;
  20. x:=A;
  21. y:=(sqr(x)*cos(x))/ln(sqr(x)-1); //в этом цикле все работает
  22. writeln('|',y:8:3,' |');
  23. writeln('------------');
  24. end;
  25. writeln('| ---- |');
  26. writeln('------------');
  27. A:=-1;
  28. while (A<=1) do begin
  29. A:=A+H;
  30. x:=A;
  31. y:=(sqr(x)*cos(x))/ln(sqr(x)-1); //здесь:Ошибка: неверная вещественная операция (v16z2.pas, строка 34)
  32. writeln('|',y:8:3,' |');
  33. writeln('------------');
  34. end;
  35. //.......
  36. end.
Задание: Составить программу для вычисления значений функции Y для значений переменной х, изменяющейся в интервале от a до b с заданным шагом h. A = -2, B = 2, H = 0.1 Не могу понять, из-за чего эта ошибка, почему в первом цикле работает, а во втором ошибка(именно в этой строке)

Решение задачи: «Вычисления значений функции Y для значения переменной x»

textual
Листинг программы
  1. function f(x:real):real;
  2. begin
  3. f:=x*x*cos(x)/ln(x*x-1)
  4. end;
  5. const a=-2;
  6.       b=2;
  7.       h=0.1;
  8. var x:real;
  9. begin
  10. writeln('Программа для вычисления значений функции Y для значения переменной x -->');
  11. writeln;
  12. writeln('Дана функция: Y = x^2*Cos(x)/Ln(x^2-1)');
  13. writeln;
  14. writeln('-----------------');
  15. writeln('|  x  |    y    |');
  16. writeln('-----------------');
  17. x:=a;
  18. while x<=b do
  19.  begin
  20.   if x*x<=1 then writeln('|',x:5:1,'| не опр. |')
  21.   else  writeln('|',x:5:1,'|',f(x):9:3,'|');
  22.   x:=x+h;
  23.  end;
  24. writeln('-----------------');
  25. end.

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

  1. Создаётся функция f, которая принимает аргумент x типа real и возвращает значение типа real.
  2. В функции f используется формула Y = x^2 * Cos(x) / Ln(x^2 - 1).
  3. Задаются три константы: a = -2, b = 2 и h = 0.1.
  4. Создается переменная x типа real.
  5. Выводится сообщение «Программа для вычисления значений функции Y для значения переменной x -->».
  6. Выводится сообщение «Дана функция: Y = x^2*Cos(x)/Ln(x^2-1)».
  7. Выводится сообщение «-----------------».
  8. Выводится таблица с значениями x и y для каждого значения переменной x от a до b с шагом h.
  9. Если x*x <= 1, то выводится сообщение «|», затем значение x и «| не опр. |».
  10. Если x*x > 1, то выводится сообщение «|», затем значение x, значение f(x) и «|».
  11. Переменная x увеличивается на h.
  12. Выводится сообщение «-----------------».
  13. Программа заканчивается.

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


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

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

10   голосов , оценка 3.8 из 5

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

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

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