Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2013, 18:42   #1
MurkyMargosha
Пользователь
 
Регистрация: 21.10.2013
Сообщений: 13
По умолчанию

ScreenShot4.png
Для нахождения корня используем бесконечный цикл с послеусловием и выходом из цикла с поиощью процедуры “break”.

Попробовала составить, получилось
Код:
 Program lab_5;
  uses crt;
   var x0, x1, x2, x3, x4, eps: real;
   it: longint;
  Procedure Proc (eps, x0: real);
     var i: longint; var x2: real;
     Var x1: real;
     function f1(x: real): real;
     begin
     f1:=ln(4.28/x)
     end;
     begin
     x1:=x0; i:=1;
     repeat
        x2:=f1(x1);
        if abs(x1-x2) < eps then break
           else begin
               inc(i); x1:=x2
           end
     until false
  end;
  function f2(x: real): real;
     begin
     f2:=x*exp(x)
  end;
  begin clrscr;
  write ('Введите точность eps -> ');
  readln (eps);
  write ('Введите начальное приближение -> ');
  readln (x0);
  proc (eps, x0, it, x3);
  x4:=f2(x3);
  writeln ('Результаты : ');
  writeln ('Корень = ', x3:12:6);
  writeln ('Кол-во итераций = ', it:10);
  writeln ('Результат проверки = ', x4:9:6);
 readkey
end.
Выдает: Error 89 - объясните в чем ошибка глупой девушке))

Последний раз редактировалось Stilet; 21.10.2013 в 19:33.
MurkyMargosha вне форума Ответить с цитированием
Старый 21.10.2013, 20:06   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Код:
repeat
        x2:=f1(x1);
        if abs(x1-x2) < eps then break
           else begin
               inc(i); x1:=x2
           end
     until false

...

...
 readkey
end.
Конечно же надо ценить свой труд и не ставить лишние точки с запятой, или скобки, но ...
Так думаю, что лишними они не бывают ...
Я предпочитаю ставить.

А вот тут:
Код:
 proc(eps, x0, it, x3);
больше параметров, чем положено.
В Вашей: Procedure Proc (eps, x0: real); - только два.
После исправления компиляция прошла, но далее не проверял.

Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение системы нелинейных алгебраических уравнений методом Ньютона (2 уравнения) Неопытный Общие вопросы C/C++ 0 29.05.2012 19:13
Решение нелинейных уравнений методом секущих. Spyke Паскаль, Turbo Pascal, PascalABC.NET 1 20.09.2011 19:37
Решение нелинейных алгебраических уравнений методом простой итерации. felicity Помощь студентам 3 04.06.2011 23:24
Решение нелинейных уравнений методом хорд и методом простой итерации(С++) Foralberg Помощь студентам 9 31.01.2011 01:33
Решение нелинейных уравнений методом хорд, pascal Антонова Анна Помощь студентам 3 09.12.2007 19:24