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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2010, 15:52   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Допустим первая:
Код:
var y:double;
begin
 y:=0;while(y<=1.5) do begin
  if (0.9*y-sin(sqrt(y))-0.1)=0 then begin
   Write(y);readln;halt;
  end;
 end;
end.
С потолка, не проверял, но должно работать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.11.2010, 15:55   #12
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

А у кто приращивать будет? Кроме того, нужна некоторая погрешность - числа-то плавающие и есть вероятность получения чисел близких к нулю, но не нуль из-за ошибок округления.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 15.11.2010, 16:20   #13
евгений2009
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 12
По умолчанию

и что мне делать значит???
евгений2009 вне форума Ответить с цитированием
Старый 15.11.2010, 16:26   #14
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

После блока
Код:
 if (0.9*y-sin(sqrt(y))-0.1)=0 then begin
   Write(y);readln;halt;
  end;
Нужно добавить изменение переменной y
Можно так
Код:
y:=y+0.1;
Иначе выпадешь в вечный цикл. While проверяет условие y<=1.5, но оно никогда не наступит, потому что у не изменяется и равен тому значению, которое ему присвоили до цикла, а имено 0. 0 меньше чем 1,5? Да, значит повторим тело цикла и так до бесконечности.
Но насчет погрешности надо уточнять у препода.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 15.11.2010, 16:28   #15
евгений2009
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Допустим первая:
Код:
var y:double;
begin
 y:=0;while(y<=1.5) do begin
  if (0.9*y-sin(sqrt(y))-0.1)=0 then begin
   Write(y);readln;halt;
  end;
 end;
end.
.
а разве это метод простых интераций??

var y : double;
что это значит???? у меня паскаль выдает ошибку типо он не знает что это такое

Последний раз редактировалось Stilet; 15.11.2010 в 16:57.
евгений2009 вне форума Ответить с цитированием
Старый 15.11.2010, 16:31   #16
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Это объявление переменной. прежде чем пользоваться переменной - нужно сказать Паскалю, что это твой друг и отныне он будет жить с тобой. double - это тип переменной означает, что перед тобой число с плавающей точкой.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 15.11.2010, 16:32   #17
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

Цитата:
а разве это метод простых интераций??
Помойму тоже - это не метод простых итераций
Цитата:
var youble;
что это значит????
Это опечатка var double
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.
Niro вне форума Ответить с цитированием
Старый 15.11.2010, 16:37   #18
евгений2009
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 12
По умолчанию

как это с плавающей точкой???

Цитата:
Сообщение от Niro Посмотреть сообщение
Помойму тоже - это не метод простых итераций


а надо то простых итераций!! !

Последний раз редактировалось Stilet; 15.11.2010 в 16:57.
евгений2009 вне форума Ответить с цитированием
Старый 15.11.2010, 16:51   #19
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

Цитата:
а надо то простых итераций!! !
да я понял, так ведь в задании написано "методом простых итераций"
Ну ладно держите ваши простые итерации
Код:
uses crt;
   var zn1,zn2,m,xk,nach,razn: real;
   i: byte;
BEGIN
   clrscr;
   writeln('Ishodnoe yravnenie = 0.9x-sin(sqrt(x))-0.1');
   writeln('Ego proizvodnaya = 0.9-cos(sqrt(x))');
   zn1:=0.9-cos(sqrt(0));
   zn2:=0.9-cos(sqrt(1.5));
   writeln('Znachenie v tochke 0 =',zn1:0:2);
   writeln('Znachenie v tochke 1.5 =',zn2:0:2);
   if abs(zn1)>abs(zn2) then m:=1/zn1 else m:=1/zn2;
   writeln('---------------------------------------');
   nach:=1;
   repeat
      i:=i+1;
      xk:=nach-m*(0.9*nach-sin(sqrt(nach))-0.1);
      writeln('x',i,'= ',xk:0:5);
      razn:=nach-xk;
      nach:=xk;
   until abs(razn)<=0.001;
   readln;
END.
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.
Niro вне форума Ответить с цитированием
Старый 15.11.2010, 16:57   #20
евгений2009
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 12
По умолчанию

Да теперь бы понять что к чему тут!!!! writeln('---------------------------------------');
а что в скобки написать?? все понял зачем это тут написанно!!!

Последний раз редактировалось евгений2009; 15.11.2010 в 17:09.
евгений2009 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Циклы с заданным числом повторений Максикок Помощь студентам 2 11.10.2010 21:19
Циклы с неявным числом повторений Verunya Помощь студентам 2 18.12.2009 19:44
Циклы с заданым числом повторений Анютка...... Паскаль, Turbo Pascal, PascalABC.NET 2 01.12.2008 10:51
Цикл с заданным числом повторений Extrem_um Помощь студентам 3 02.04.2008 21:00