• Помогите с паскалем,исправить.Сил больше нет



    begin

    var f:real->real:=x-> 0.1*(sin(x)/cos(x))(0.1*x+0,0025*x*x); ;
    var (a,b):=ReadReal2('Введите границы интервала:');
    var (fa,fb):=(f(a),f(b));
    var eps:=ReadReal('Введите требуемую точность:');
    var n:=1;
    Writeln(' n',12*' ','x',14*' ','y');
    while True do begin
    var x:=(a+b)/2;
    var y:=f(x);
    if (Abs(y) Writeln(n:3,x:15:6,y:15:6);
    if Sign(fa)=Sign(y) then a:=x else b:=x;
    n+=1
    end
    end.

    question img

Ответы 2

  • от души брат
    • Автор:

      niapatton
    • 5 лет назад
    • 0
  • Ошибки (в программе на картинке):

    1) (sin(x)/cos(x))(0.1*x+0,0025*x*x) - между скобками отсутствует знак операции

    2) (0.1*x+0,0025*x*x) - вместо 0,0025 нужно писать 0.0025

    3)  (0.1 * (sin(x) / cos(x)) * (0.1 * x + (0.0025 * x * x)); - в конце лямбда-выражения перед ; не хватает )

    Исправленная программа:

    begin

     

     var f: real-> real := x -> (0.1 * (sin(x) / cos(x)) * (0.1 * x + (0.0025 * x * x)));  

     var (a, b) := ReadReal2('Введите границы интервала:');

     var (fa, fb) := (f(a), f(b));

     var eps := ReadReal('Введите требуемую точность:');

     var n := 1;

     Writeln(' n', 12 * ' ', 'x', 14 * ' ', 'y');  

     while True do

     begin

       var x := (a + b) / 2;

       var y := f(x);

       if (Abs(y) < eps) and (Abs(b - a) < eps) then break;

       Writeln(n:3, x:15:6, y:15:6);

       if Sign(fa) = Sign(y) then a := x else b := x;

       n += 1

     end

    end.

    • Автор:

      zoeyxpdm
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years