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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2008, 23:34   #1
Aleo13
Пользователь
 
Регистрация: 01.10.2008
Сообщений: 14
По умолчанию Помогите пожалуйста с задачей!!!

Помогите плиз с задачей:
Рассчитать y= корень(x) с точностью "Е", используя соотношение Y(i+1)=0,5(Y(i)+X/Y(i)); E=0,001; X=8,6; Y=2,8
Заранее благодарен
Aleo13 вне форума Ответить с цитированием
Старый 02.10.2008, 08:13   #2
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Было, сегодня
http://www.programmersforum.ru/showp...47&postcount=7
_Dmitry вне форума Ответить с цитированием
Старый 02.10.2008, 14:15   #3
Aleo13
Пользователь
 
Регистрация: 01.10.2008
Сообщений: 14
По умолчанию

Она не работает, пишет "Error 116: Must be in 8087 mode to compile this"
Aleo13 вне форума Ответить с цитированием
Старый 02.10.2008, 14:43   #4
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Добавьте в самое начало программы строчку {$N+} - это директива компилятора (так же можно изменить в пункте Options - Compile - поставить галочку рядом с 8087)
eoln вне форума Ответить с цитированием
Старый 03.10.2008, 00:46   #5
Aleo13
Пользователь
 
Регистрация: 01.10.2008
Сообщений: 14
По умолчанию

Код:
{$N+}
function Radical(x,eps: double): double;
var
  y0,y: double;
begin
  y:=2.8; 
  repeat
    y0:=y;
    y:=(y0+x/y0)/2;
  until abs(y-y0) <= eps;
  Radical:=y;
end;
Программа не работает. Тут надо что-то дописать что-бы оно его как-то вывело???

Последний раз редактировалось Aleo13; 03.10.2008 в 01:53.
Aleo13 вне форума Ответить с цитированием
Старый 03.10.2008, 09:07   #6
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Это не программа, а только функция, которую нужно вызвать в программе.
Программа пишется так:
Код:
Uses Crt; //если используете этот модуль для очистки экрана
//Поскольку у Вас все значения заданы, раздел переменных Var не нужен.
Uses crt; //если используете этот модуль для очистки экрана
{$N+}
function Radical(x,eps: double): double;
var
  y0,y: double;
begin
  y:=2.8; 
  repeat
    y0:=y;
    y:=(y0+x/y0)/2;
  until abs(y-y0) <= eps;
Radical:=y;
end;
begin //начало программы
clrscr; //очищаем экран
write('y=',Radical(8.6,0.001):0:4);//выводим результат
readln  //читаем и выходим из программы
end.
Если работу с функциями еще не проходили, то можно и без нее, даже короче.
Код:
uses crt;
{$N+}
var x,y,y0,eps:double;
begin
clrscr;
x:=8.6;
eps:=0.001;
y:=2.8;
repeat
  y0:=y;
  y:=(y0+x/y0)/2;
until abs(y-y0)<=eps;
write('y=',y:0:4);
readln
end.

Последний раз редактировалось puporev; 03.10.2008 в 09:24.
puporev вне форума Ответить с цитированием
Старый 03.10.2008, 13:46   #7
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Одно уточнение: нельзя глобальную директиву компилятора разместить в теле программы, поэтому директива {$N+} должна быть в самой первой строке.
Код:
{$N+}
uses crt;
............
_Dmitry вне форума Ответить с цитированием
Старый 03.10.2008, 16:16   #8
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Извините, ошибся, никогда ими не пользуюсь, все настроено для работы без директив.
puporev вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста с наилегчайшей задачей Тарсаков Михаил Фриланс 6 26.05.2008 20:51
Пожалуйста, помогите с задачей по C++ Maksimym Помощь студентам 2 10.01.2008 23:18
помогите пожалуйста с задачей! Coolmanz Помощь студентам 2 06.01.2008 23:07
Помогите пожалуйста с задачей по С++ Riddick2013 Помощь студентам 2 11.11.2007 16:54