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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2012, 17:02   #1
RUSSTUDENT
Пользователь
 
Аватар для RUSSTUDENT
 
Регистрация: 18.01.2010
Сообщений: 26
По умолчанию Прога

Можете прогу проверить

Program Urav;
var p1,p2,h:real;
n:integer;
begin
writeln('Введите p1');
read(p1);
n:=0;
repeat
n:=n+1;
p1:=p2;
p2:=p1-(515300/(p1*p1)+ln(p1)-11.56)/((-1030600)/(p1*p1*p1)+1/p1);
h:=abs(p1-p2);
until h<0.01;
writeln(p1,' ',p2);
writeln('Кол-во итераций: n=',n);
end.

Выводит ошибку: Вещественное деление на ноль в 10 строке
Как исправить?

Последний раз редактировалось RUSSTUDENT; 08.01.2012 в 17:05.
RUSSTUDENT вне форума Ответить с цитированием
Старый 08.01.2012, 17:11   #2
VadikV
Форумчанин
 
Аватар для VadikV
 
Регистрация: 08.01.2011
Сообщений: 226
По умолчанию

при первом проходе p2 = 0.
дальше ты p1 = p2
и в формулер деление на (p1*p1), т.е. деление на 0
icq 223-630-454
e-mail vysotskiy@list.ru
сайт http://www.big-library.net/
VadikV вне форума Ответить с цитированием
Старый 08.01.2012, 17:16   #3
RUSSTUDENT
Пользователь
 
Аватар для RUSSTUDENT
 
Регистрация: 18.01.2010
Сообщений: 26
По умолчанию

Вычисляется формулой Ньютона (касательных). p - давление.

Как сделать, чтобы первый член был 100000 (Па)
RUSSTUDENT вне форума Ответить с цитированием
Старый 08.01.2012, 17:18   #4
VadikV
Форумчанин
 
Аватар для VadikV
 
Регистрация: 08.01.2011
Сообщений: 226
По умолчанию

может начальное значение нужно вводить в р2, а не в р1?
icq 223-630-454
e-mail vysotskiy@list.ru
сайт http://www.big-library.net/
VadikV вне форума Ответить с цитированием
Старый 08.01.2012, 17:22   #5
RUSSTUDENT
Пользователь
 
Аватар для RUSSTUDENT
 
Регистрация: 18.01.2010
Сообщений: 26
По умолчанию

Возможно. А как это сделать?
Паскаль плохо знаю, через константу попробовал, не получилось.
RUSSTUDENT вне форума Ответить с цитированием
Старый 08.01.2012, 19:49   #6
RUSSTUDENT
Пользователь
 
Аватар для RUSSTUDENT
 
Регистрация: 18.01.2010
Сообщений: 26
По умолчанию

Думаю теперь правильно

Program Urav;
var p1,p2,h:real;
n:integer;
begin
writeln('Введите p1');
read(p1);
n:=0;
p2:=100000;
repeat
n:=n+1;
p1:=p2;
p2:=p1-(515300/(p1*p1)+ln(p1)-11.56)/((-1030600)/(p1*p1*p1)+1/p1);
h:=abs(p1-p2);
until h<1;
writeln(p2);
writeln('Кол-во итераций: n=',n);
end.
RUSSTUDENT вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
прога Alexander1205 Win Api 2 02.11.2011 23:23
прога в си++ sfinks_murka Общие вопросы C/C++ 3 06.10.2009 13:15
прога и чюжая прога benjaminfran Общие вопросы Delphi 5 28.03.2008 15:07
прога vovik Свободное общение 2 02.07.2007 10:13