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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2007, 19:14   #21
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Как это объём (как объём тела вращения?)?

ЗЫ: Нет...Ещё раз.
Carbon вне форума Ответить с цитированием
Старый 25.06.2007, 19:21   #22
Diller
Пользователь
 
Аватар для Diller
 
Регистрация: 21.06.2007
Сообщений: 55
По умолчанию

000--|----|----|----|----|----|
|--00000--|----|----|----|----|
|----|---00000000--|----|----|
|----|----|----|--0000---|----|
|----|----|----|----|-00000000
|----|----|----|----|----|----|
ymax |<-->| ymin
H
H - размер разбития задаваемый пользователем
0- импровизированная линия функции
красным отмечен i-ый сегмент, обем которогонебоходимо вычислить
объем можно вычислить(например) как обем циллиндра v:=pi*r*r*H
циллиндра , а r - как среднее арифметическое значение между большим и меньшим радиусом прямых.. ограничивающих I-ый сегмент.

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

согу быстренько нарисовать и скинуть как файлик.. если так не особо ясно

www.nnm.ru
۩۞۩___Смысл заключается,_______________۩۞۩
۩۞۩___Лишь в величине вашего разума____.۩۞۩
۩۞۩__♣™_Diller_™♣__۩۞۩
Diller вне форума Ответить с цитированием
Старый 25.06.2007, 19:28   #24
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

По идее объём должен быть как будто парабола вращается относительно центра интервала вокруг оси Y. А тут получается как диаграмма с цилиндрами-столбами.
Carbon вне форума Ответить с цитированием
Старый 25.06.2007, 19:46   #25
Diller
Пользователь
 
Аватар для Diller
 
Регистрация: 21.06.2007
Сообщений: 55
По умолчанию

это метод средних треугольников.. у инет позволит принять файл размером 600кб?? пришлю картинку по icq

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

ВОТ КОД ОКОНЧАТЕЛЬНОЙ ПРОГИ строящей параболу и ограничивающий её сверху и снизу

код

procedure TForm3.Button1Click(Sender: TObject);
var
i,razmer: integer;
a,b,c,L,ymax,ymin,y1,ots,razr,raz,x ,x1,x2, d,xv,yv,yos1,los: real;
y,yos: array of real;
begin
L:=StrToFloat(Edit4.Text);
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
c:=StrToFloat(Edit3.Text);
Chart1.Series[0].Clear;
Chart1.Series[1].Clear;
Chart1.Series[2].Clear;
Chart1.Series[3].Clear;
Chart1.Series[4].Clear;
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
ymax:=L+b*10+c+10;
ots:=(ymax-c)/b;
raz:=((ots -5)/0.01);
razr:=round(raz);
edit5.Text:=floattostr(razr);
razmer:=strtoint(edit5.Text);
ymin:=b*10+c; { реальные размеры БЧ}
ymax:=L+b*10+c; { реальные размеры БЧ}
{ расчет оси симметрии}
xv:=10;
yv:=0;
repeat
Chart1.Series[3].AddXY(xv,yv);
yv:=yv+1;
until yv>=(ymax+10);
{ расчет оси симметрии}
setlength(y,razmer);
setlength(yos,razmer);
los:=StrToFloat(Edit6.Text);
x:=5;
i:=0;
repeat
y[i]:=b*x+c;
y1:=y[i];
yos[i]:=b*x+c+los;
yos1:=yos[i];
Chart1.Series[0].AddXY(x,y1);
Chart1.Series[1].AddXY(x,ymin);
Chart1.Series[2].AddXY(x,ymax);
Chart1.Series[4].AddXY(x,yos1);
x:=x+0.01;
until x>=ots;
end;
end
else
begin
ymax:=L+a*(-10)*(-10)+b*(-10)+c+5;
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);
raz:=((x2-x1)/0.01);
razr:=round(raz);
edit5.Text:=floattostr(razr);
razmer:=strtoint(edit5.Text);
x:=x1;
ymin:=a*(-10)*(-10)+b*(-10)+c;
ymax:=L+ymin;
{ расчет оси симметрии}
xv:=-b/(2*a);
yv:=ymin;
repeat
Chart1.Series[3].AddXY(xv,yv);
yv:=yv+1;
until yv>=(ymax+1);
{ расчет оси симметрии}
los:=StrToFloat(Edit6.Text);
y1:=a*x*x+b*x+c;
yos1:=a*x*x+b*x+c+los;
repeat
y1:=y1+a*(0.02*x+0.0001)+b*0.01;
yos1:=yos1+a*(0.02*x+0.0001)+b*0.01 ;
Chart1.Series[0].AddXY(x,y1);
Chart1.Series[1].AddXY(x,ymin);
Chart1.Series[2].AddXY(x,ymax);
Chart1.Series[4].AddXY(x,yos1);
x:=x+0.01;
until x>=x2;
end;
end;
end;


end;

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

a*(-10)*(-10)+b*(-10)+c необходимо заменить на
a*(-10+(-b/(2*a)))*(-10+(-b/(2*a)))+b*(-10+(-b/(2*a)))+c

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

расчет объема параболы если коэф а=0.. проверьте пожалуйсто что-то не хочет считать


код

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);
SetLength(V,razmer);
x:=10;
ymin:=b*(10)+c+losk;
ymax:=L+ymin;
xmax:=(ymin+L-c-losk)/b;
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]:=floattostr(V[i]);
x:=xmax;
until x>=xmax;
i:=i+1;
end;
end;
end ;
end ;
end ;

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

немного изменил код начала работать правдо в таблицу записывается только 1 значение.. посмотрите где ошибка.сам не могу найти
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:=(ymin+L-c-losk)/b;
edit8.Text:=floattostr(xmax);

repeat
ymin:=b*x+c+losk;
ymax:=losk+ymin;
rmax:=(ymax-c)/b;
r:=(rmax+x)/2;
for i:=0 to razmer-1 do
begin
V[i]:=pi*r*r*losk;
ttable.cells[i,1]:=floattostr(V[i]); записывает 1 значение
{ i:=i+1; }
end;
x:=xmax;
until x>=xmax;

end;
end ;
end ;
end ;

www.nnm.ru
۩۞۩___Смысл заключается,_______________۩۞۩
۩۞۩___Лишь в величине вашего разума____.۩۞۩
۩۞۩__♣™_Diller_™♣__۩۞۩
Diller вне форума Ответить с цитированием
Старый 26.06.2007, 19:35   #30
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Цитата:
что-то не хочет считать
В смысле "не хочет"?
Carbon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
динамический массив Dimon Паскаль, Turbo Pascal, PascalABC.NET 3 21.03.2008 18:08
Динамический массив _ares_ Паскаль, Turbo Pascal, PascalABC.NET 3 26.12.2007 23:54
Динамический массив. Mickle Помощь студентам 9 21.06.2007 20:31
Динамический массив Mickle Общие вопросы Delphi 8 19.06.2007 06:45
Динамический массив + Dll. LEKA Общие вопросы Delphi 7 11.05.2007 20:05