Решить уравнение, параметр которого вводится с клавиатуры - Pascal

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

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

Программа решает уравнение вида exp(-x)=ax, где параметр уравнения a вводится с клавиатуры.

Решение задачи: «Решить уравнение, параметр которого вводится с клавиатуры»

textual
Листинг программы
function f(x, a: real): real;
begin
  f := exp(-x) - a * x
end;
 
function root(xmin, xmax, a, eps: real): real;
var fc, fm, xc: real;
begin
  repeat
    xc := (xmin + xmax) / 2;
    fc := f(xc, a);
    fm := f(xmax, a);
    if ((fc >= 0) and (fm >= 0)) or ((fc <= 0) and (fm <= 0))
      then xmax := xc
      else xmin := xc
  until abs(xmax - xmin) < eps;
  root := (xmin + xmax) / 2 {можно просто root := xmin, или root := xmax}
end;
 
var a, eps: real;
 
begin
  repeat
    write('Точность вычисления > 0;  eps = ');
    readln(eps)
  until eps > 0;
  write('Параметр a = ');
  readln(a);
  if a > 0
    then writeln('x = ', root(0, 1 / a, a, eps))
    else if a = 0
      then writeln('x стремится к бесконечности')
      else if a > -exp(1)
        then writeln('При данном параметре корней не существует.')
        else if a = -exp(1)
        then writeln('x = ', -1.0)
        else writeln('x1 = ', root(-ln(-a), 0, a, eps), ', x2 = ', root(-2 * ln(-a), -ln(-a), a, eps));
  readln
end.

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

  1. Создается функция f(x, a), которая решает уравнение exp(-x) - a*x.
  2. Создается функция root(xmin, xmax, a, eps), которая ищет корень уравнения f(x, a) в заданном диапазоне xmin, xmax, при заданной точности eps и параметре a.
  3. Переменные fc и fm инициализируются значениями f(xc, a) и f(xmax, a) соответственно, где xc=(xmin+xmax)/2.
  4. Выполняется цикл повторений, пока abs(xmax-xmin)<eps. В каждой итерации xmax и xmin сравниваются, и если условие выполняется, то xmax присваивается xc, иначе xmin присваивается xc.
  5. После завершения цикла, значение xmin+xmax равно среднему корню уравнения, и это значение присваивается переменной root.
  6. Переменные a и eps инициализируются значениями, введенными пользователем.
  7. Пользователю предлагается ввести значение точности eps.
  8. Запрашивается значение параметра a.
  9. Выводится сообщение с значением a.
  10. Если a>0, выводится значение x, которое является корнем уравнения.
  11. Если a=0, выводится сообщение, что x стремится к бесконечности.
  12. Если a>-exp(1), выводится сообщение, что при данном параметре корней не существует.
  13. Если a=-exp(1), выводится значение x=-1.0.
  14. Если a=-exp(2), выводятся значения корней x1 и x2, найденные функцией root.

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


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

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

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