Решение уравнения с вводом данных - PascalABC.NET

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

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

как нужно ее изменить что бы она была для разных уравнений. т.е у меня три уравнения. нужно три программы. 1) х3 – 10х – 5 = 0; 2) х4 – 10х2 – 20 = 0; 3) х4 – 5х3 – 15х2 + 7 = 0; вот для этих уравнений нужно. помогите пожалуйста
Листинг программы
  1. var
  2. a,b,c: integer;
  3. x,d: real;
  4. begin
  5. repeat
  6. write('Введите значение a (a<>0): ');
  7. readln(a);
  8. until a<>0;
  9. write('Введите значение b: ');
  10. readln(b);
  11. write('Введите значение c: ');
  12. readln(c);
  13. d:=b*b-4*a*c;
  14. writeln('Решение уравнения:');
  15. if d=0 then
  16. writeln('Корень один: х = ',-b/2/a) else
  17. if d<0 then
  18. writeln('Корней на множестве действительных чисел нет') else
  19. begin
  20. writeln('Корней два:');
  21. writeln('1-й корень: x1 = ',(-b-sqrt(d))/2/a);
  22. writeln('2-й корень: x1 = ',(-b+sqrt(d))/2/a);
  23. end;
  24. readln;
  25. end.

Решение задачи: «Решение уравнения с вводом данных»

textual
Листинг программы
  1. uses crt;
  2. const e=0.001;
  3. type func=function(x:real):real;
  4. function f1(x:real):real;//1 функция
  5. begin
  6. f1:=x*x*x-10*x-5;
  7. end;
  8. function pf1(x:real):real;//ее 1 производная
  9. begin
  10. pf1:=3*x*x-10;
  11. end;
  12. function f2(x:real):real;
  13. begin
  14. f2:=x*x*x*x-10*x*x-20;
  15. end;
  16. function pf2(x:real):real;
  17. begin
  18. pf2:=4*x*x*x-20*x;
  19. end;
  20. function f3(x:real):real;
  21. begin
  22. f3:=x*x*x*x-5*x*x*x-15*x*x+7;
  23. end;
  24. function pf3(x:real):real;
  25. begin
  26. pf3:=4*x*x*x-15*x*x-30*x;
  27. end;
  28. function newton(f,g:func;a,b:real):real; //функция уточнения корней
  29. var x:real;
  30. begin
  31. if f(a)*g(a)>0 then x:=a
  32. else x:=b;
  33. while abs(f(x))>e do
  34.    begin
  35.      x:=x-f(x)/g(x);
  36.    end;
  37. newton:=x;
  38. end;
  39. procedure korni(f,g:func;a,b:real);
  40. var x,x1,x2,dx,x11,x12,eps:real;
  41.     i:integer;
  42. begin
  43. x1:=a;//интервал для поиска корней
  44. x2:=b;
  45. dx:=0.1;
  46. x:=x1;
  47. i:=0;
  48. while x<=x2 do
  49.  begin
  50.   x11:=x;
  51.   x12:=x+dx;
  52.   if f(x11)*f(x12)<0 then
  53.    begin
  54.     i:=i+1;
  55.     writeln('X',i,'=',newton(f,g,x11,x12):8:5);
  56.    end;
  57.   x:=x+dx;
  58.  end;
  59. end;
  60. begin
  61. korni(f1,pf1,6,9);
  62. korni(f2,pf2,-2,2);
  63. korni(f3,pf3,3,9);
  64. end.

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

  1. В функции f1 происходит вычисление значения функции f1(x:real):real, которая представляет собой куб x, умноженный на -10x - 5.
  2. В функции pf1 вычисляется производная функции f1, которая равна 3x^3 - 10x.
  3. В функции f2 происходит вычисление значения функции f2(x:real):real, которая представляет собой куб x, умноженный на -10x - 20.
  4. В функции pf2 вычисляется производная функции f2, которая равна 4x^3 - 20x^2.
  5. В функции f3 происходит вычисление значения функции f3(x:real):real, которая представляет собой куб x, умноженный на -5x^2 - 15x + 7.
  6. В функции pf3 вычисляется производная функции f3, которая равна 4x^3 - 15x^2 - 30x.
  7. В функции newton используется метод Ньютона для уточнения корней функции. Он принимает функцию f и ее производную g, а также начальные приближения a и b для поиска корней. Он возвращает найденное значение корня.
  8. В процедуре korni происходит поиск корней функции с помощью метода Ньютона. Она принимает функцию f и ее производную g, а также начальные приближения a и b для поиска корней. Она выводит найденные корни.
  9. В основной части программы вызывается функция korni с соответствующими функциями f1, f2 и f3 и начальными приближениями для поиска корней.

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


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

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

9   голосов , оценка 4 из 5

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

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

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