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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2007, 18:15   #1
Diller
Пользователь
 
Аватар для Diller
 
Регистрация: 21.06.2007
Сообщений: 55
По умолчанию вычисление объема параболойда по сегментам///need help

задача: необходимо разбить параболойд,заданной длины L, на части с определенным шагом (шаг задается пользователем) и посчитать обем каждого из элементов записав его в таблицу..
ниже приведена прога которая может служить примером.. но в ней есть ошибки.. я их найти не могу... (долго пытался)...
Цитата:
const pi=3.14;
var a,b,c,L,losk,x1,x2,D,xmax,ymin,ymax ,x,razr,rmax,r, xmin,
mindiam,maxdiam : real;
i,razmer:integer;
V: array of real;
begin
a:=strtofloat(Edit1.text);
b:=strtofloat(Edit2.text);
c:=strtofloat(Edit3.text);
losk:=strtofloat(Edit4.text);
L:=strtofloat(Edit5.text);

if a<0 then
begin
showmessage('Неправильно введено значение a. А -СТРОГО ПОЛОЖИТЕЛЬНОЕ ЧИСЛО');
end
else
begin
if abs(a)<0.000001 then
begin
if b=0 then
showmessage('При a=0 неправильно введено значение b. b - не равно "0"')
else
begin
razr:=round(L/losk);
edit6.Text:=floattostr(razr);
razmer:=strtoint(edit6.Text);
edit7.Text:=floattostr(razmer);
SetLength(V,razmer);
x:=10;
ymin:=b*(10)+c+losk;
edit8.Text:=floattostr(ymin);
ymax:=L+ymin;
xmax:=(ymax-c-losk)/b;
edit8.Text:=floattostr(xmax);
for i:=0 to razmer-1 do
begin
repeat
ymin:=b*x+c+losk;
ymax:=losk+ymin;
rmax:=(ymax-c)/b;
r:=(rmax+x)/2;
V[i]:=pi*r*r*losk;
ttable.cells[i+1,1]:=floattostr(V[i]);
x:=rmax;
until x>=xmax;
end;
end;
end
else
begin
razr:=round(L/losk);
edit6.Text:=floattostr(razr);
razmer:=strtoint(edit6.Text);
edit7.Text:=floattostr(razmer);
SetLength(V,razmer);
ymax:=L+a*(-10+(-b/(2*a)))*(-10+(-b/(2*a)))+b*(-10+(-b/(2*a)))+c+losk;
d:=b*b - 4*a*(c-ymax);
if d<0then
begin
showmessage('Неправильно введены a,b или c');
end
else
begin
x1:=(-b - sqrt(d))/(2*a);
{ x2:=(-b + sqrt(d))/(2*a); }
xmin:=x1;{до этого значения считаем в цикле}
mindiam:=20;{условие мин диаметра}
x:=-10+((-b)/(2*a));
for i:=0 to razmer-1 do
begin
repeat
ymin:=a*(x+(-b/(2*a)))*(x+(-b/(2*a)))+b*(x+(-b/(2*a)))+c+losk;
ymax:=ymin+losk;
d:=b*b - 4*a*(c-ymax);
if d<0then
begin
showmessage('Неправильно введены a,b или c');
end
else
begin
x1:=(-b - sqrt(d))/(2*a);
x2:=(-b + sqrt(d))/(2*a);
maxdiam:=x2-x1;
r:=((maxdiam/2)+(mindiam/2))/2 ;
V[i]:=pi*r*r*losk;
ttable.cells[i+1,2]:=floattostr(V[i]);
mindiam:=maxdiam;
x:=x1;
end;
until x>=xmin;
end;
end;
end;
end;
end;

www.nnm.ru
۩۞۩___Смысл заключается,_______________۩۞۩
۩۞۩___Лишь в величине вашего разума____.۩۞۩
۩۞۩__♣™_Diller_™♣__۩۞۩
Diller вне форума Ответить с цитированием
Старый 05.10.2007, 18:19   #2
Diller
Пользователь
 
Аватар для Diller
 
Регистрация: 21.06.2007
Сообщений: 55
По умолчанию

losk- шаг
L - длина параболойда
a/b/c - параметры задающие форму парабулы вращением которой определяется параболойд

www.nnm.ru
۩۞۩___Смысл заключается,_______________۩۞۩
۩۞۩___Лишь в величине вашего разума____.۩۞۩
۩۞۩__♣™_Diller_™♣__۩۞۩
Diller вне форума Ответить с цитированием
Старый 05.10.2007, 18:26   #3
Diller
Пользователь
 
Аватар для Diller
 
Регистрация: 21.06.2007
Сообщений: 55
По умолчанию

idies.doc вот идея того как я пытался решить эту проблему

www.nnm.ru
۩۞۩___Смысл заключается,_______________۩۞۩
۩۞۩___Лишь в величине вашего разума____.۩۞۩
۩۞۩__♣™_Diller_™♣__۩۞۩
Diller вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычисление полинома file Паскаль, Turbo Pascal, PascalABC.NET 5 29.05.2008 21:00
Вычисление постфиксного выр-я на С++ Go6a Помощь студентам 12 20.04.2008 13:34
Вычисление интреграла Kiedis Помощь студентам 19 23.05.2007 19:41
Вычисление Exp Mickle Общие вопросы Delphi 1 26.04.2007 09:34
TDBGrid. Вычисление Nic-x БД в Delphi 8 17.04.2007 08:19