Obliczanie powierzchni bocznej stożka

Odpowiedz Nowy wątek
2015-01-20 18:41
0

Napisałem prosty szybkoliczący skrypt. Ma on liczyć pole powierzchni bocznej bryły obrotowej. Na test wziąłem stożek o wysokości 5 i promieniu 5 czyli pbocznej powinien wyjść około 111,0719 a skrypt liczy inaczej Myślę ,że sknociłem coś we wzorze . Oto kod :

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;
 var
 xmax,X,Y,pole: extended ;
 poletxt:string;
begin
pole:=0;
writeln(' /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\');
writeln('<  Program kreciolek Copyright by Adam Xxxxxx  >');
writeln('< Obliczanie pola powierzchni dla funkcji X=Y  >');
writeln(' \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/');
writeln('-------------------------------------------');
writeln('Podaj wartość Xmax >');
readln(xmax);

while x<xmax do begin
X:=x+0.0000001;
y:=x; //wzór;
pole:=Pole+(2*pi*y*0.0000001);
end;
poletxt:=currToStr(pole);
writeln(poletxt);
readln;
end. 

metodą dzielenia stożka na plasterki (małe walce) i sumowaniem pól chciałem policzyć , ale wychodzi zawsze coś koło 75. Dla czego ? I poza tym konwersja currtostr mi nie pasuje, gdy stosuję armatę w postaci Extended

Co to za moda z tymi skryptami? Nauczcie się ludziska. To nie jest skrypt, tylko kod. Poczytaj na Wikipedii, czym są języki skryptowe. - olesio 2015-01-20 19:12

Pozostało 580 znaków

2015-01-20 23:22
0

Masz skiszony wzór na pole. To jest stożek, gdy dzielisz go na plasterki, to powierzchnia każdego takiego plastereka ma długość 2pix, ale szerokość jest inna niż krok całkowania. Zeby ją wyznaczyć musisz pokombinować trochę z kątami.

edytowany 1x, ostatnio: PLrc, 2015-01-20 23:29

Pozostało 580 znaków

2015-01-21 19:34
0

Problem jest taki ,że od nauczyciela dostanę jakiś wymyślny wzór (jakikolwiek np.: Y=X*2-4) i ma on liczyć powierzchnię takiego pogiętego stożka (choinka ,wazonik etc) Jak powinien wyglądać taki wzór do ćwiartowania i liczenia ? Oczywiście przez zmniejszenie szerokości takiego plasterka -zwiększyć dokładność... Podsumowując : To nie musi być stożek ! Wzór stożka podałem tlko jako test , czy skrypt dobrze liczy...

edytowany 1x, ostatnio: programista97, 2015-01-21 19:38

Pozostało 580 znaków

2015-01-21 20:31
0
begin
   krok:=0.000001;
   pole:=0;
   x:=0;
   while x<xmax do begin
     X:=x+krok;
     /// wyliczenie promiena stożka na zadanej wysokości od podstawy 
     /// za pomocą funkcji promien(x)
     y:=promien(x);
     pole:=Pole+(2*pi*y*krok);
   end;
   poletxt:=currToStr(pole);
   writeln(poletxt);
   readln;
end. 

Pozostało 580 znaków

2015-01-21 20:42
0

a w ogólnym wariancie to miał byś taki algorytm

x:=0;
dx:=krok_calkowania;
pole:=0;
while x<wysokosc_bryly ; 
begin 
   pole :=pole+dx*obwod_bryly(x);
   x:=x+dx;
end;

funkcję obwod_bryly(x) budujesz wg geometrycznych parametrów bryły

edytowany 3x, ostatnio: grzegorz_so, 2015-01-21 21:08

Pozostało 580 znaków

2015-01-21 20:44
Czarny Kaczor
0
grzegorz_so napisał(a):
pole:=Pole+(2*pi*y*krok);

Ten wzór też jest zły.

Pozostało 580 znaków

2015-01-21 20:46
0

Zapomniałem się zalogować i nie mogę edytować.

programista97 napisał(a):

Problem jest taki ,że od nauczyciela dostanę jakiś wymyślny wzór (jakikolwiek np.: Y=X*2-4) i ma on liczyć powierzchnię takiego pogiętego stożka
Jaki pogięty stożek? Przecież to równanie prostej.

programista97 napisał(a):

Jak powinien wyglądać taki wzór do ćwiartowania i liczenia ?

W ogólnym wypadku obliczenie powierzchni bocznej bryły powstałej poprzez obracanie wykresu funkcji to jest zagadnienie analizy matematycznej. Jeżeli masz 18 lat to Twoj nauczyciel wymaga od Ciebie dosyć wiele. Można by napisać program do tego, ale bez różniczkowania numerycznego chyba się nie obejdzie.

grzegorz_so napisał(a):

begin
y:=promien(x);
pole:=Pole+(2*pi*y*krok);


Ten wzór też jest zły.
edytowany 2x, ostatnio: PLrc, 2015-01-21 20:58
2Pipromień * wysokość to powierzchnia elementarnego walca , gdzie widzisz błąd ? - grzegorz_so 2015-01-21 20:52

Pozostało 580 znaków

2015-01-21 21:06
0

@Czarny Kaczor vel @PLrc
pole:=Pole+(2piy*krok);

2piy(czyli promień)= obwód
2piy*krok całkowania = powierzchnia boczna elementarnego walca
gdzie widzisz błąd ?
oczywiście "y" jest funkcją od "x" czyli odległości od podstawy bryły (stożka)

edytowany 1x, ostatnio: grzegorz_so, 2015-01-21 21:11

Pozostało 580 znaków

2015-01-21 21:12
0
grzegorz_so napisał(a):

@Czarny Kaczor vel @PLrc
pole:=Pole+(2piy*krok);

2piy(czyli promień)= obwód
2piy*krok całkowania = powierzchnia boczna elementarnego walca
gdzie widzisz błąd ?

W tym, że pole takich paseczków = długośćszerokość. Długość=2pi*r(x), ale szerokość jest inna niż krok całkowania.

Pozostało 580 znaków

2015-01-21 21:15
0

szerokość jest taka jak krok całkowania !!
na jakiej podstawie twierdzisz że jest inna ?

edytowany 1x, ostatnio: grzegorz_so, 2015-01-21 21:18

Pozostało 580 znaków

2015-01-21 21:42
0

Narysowałem Ci to. Na niebiesko zaznaczyłem krok całkowania dx. Na różowo promień okręgu powstałego przez przecięcie stożka. Na zielono zaznaczyłem szerokość paseczka ds. Pole takiego paseczka to 2pir(x)*ds

stożek2.JPG

dodanie obrazka do treści posta - @furious programming
Czy teraz mi wierzysz?

edytowany 3x, ostatnio: PLrc, 2015-01-21 22:10

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0