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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2016, 14:51   #1
Gybert
 
Регистрация: 13.05.2016
Сообщений: 4
Печаль Помогите пожалуйста заменить в тексте программы оператор "brake" на "while"

Вот сама програмка
var y,e,y1:real;
begin
y:=1;
e:=1e-5;
while true do begin
y1:=y*(1.5-sqr(y));
Writeln('y1=',y1:6:6);
if abs(y1-y)<=e then break
else y:=y1;
Writeln('y=',y:6:6)
end;
Writeln('Rezyl`tat:',y1:6:6,', kontrol`noe znachenie -',1/sqrt(2):6:6);
Readln;
end.

Последний раз редактировалось Gybert; 13.05.2016 в 14:53.
Gybert вне форума Ответить с цитированием
Старый 13.05.2016, 14:57   #2
Gybert
 
Регистрация: 13.05.2016
Сообщений: 4
По умолчанию


Вот сама задача, но мне нужно использовать цикл "while"
Gybert вне форума Ответить с цитированием
Старый 13.05.2016, 15:01   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

так?

Код:
var y,e,y1:real;
begin
  y:=1;
  e:=1e-5;
  y1:=y*(1.5-sqr(y));
  while abs(y1-y)>e do begin
    y1:=y*(1.5-sqr(y));
    Writeln('y1=',y1:6:6);
    y:=y1;
    Writeln('y=',y:6:6)
  end;
  Writeln('Rezyl`tat:',y1:6:6,', kontrol`noe znachenie -',1/sqrt(2):6:6);
  Readln;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.05.2016, 15:07   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
var y,e,y1:real;
begin
  y:=1;
  e:=1e-5;
  
  y1:=y; // копируем нач.зн. в y1
  y:=y1+2*e; //задаем так чтобы войти в цикл 
  while abs(y1-y)>e do begin
    y:=y1;
    Writeln('y=',y:6:6);
    y1:=y*(1.5-sqr(y));
    Writeln('y1=',y1:6:6);
//    if abs(y1-y)<=e then break
//    else y:=y1;
  end;
Writeln('Rezyl`tat:',y1:6:6,', kontrol`noe znachenie -',1/sqrt(2):6:6);
Readln;
end.
to Serge_Bliznykov
Код:
  while abs(y1-y)>e do begin
    y1:=y*(1.5-sqr(y));
    Writeln('y1=',y1:6:6);
    y:=y1;  ========> abs(y-y1)====0  !!! 
    Writeln('y=',y:6:6)
  end;
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 13.05.2016 в 15:10.
evg_m вне форума Ответить с цитированием
Старый 13.05.2016, 15:15   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

evg_m, согласен. я накосячил с условием!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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