Berechnung für den größtmöglichen Inhalt einer Schachtel
-
ganz pauschal ...... NEIN _
es geht dabei um differtial rechnung .... by the way schau dir den edit in meinem post an ... so schwer isses nu wirklich nich
wenn du mir eine fertige vernünftige formel präsentierst lass ich mit mir drüber reden bei der umsetzung zu helfen

-
PrettyNicky schrieb:
MFK: solangsam überleg ich mir echt jemanden "anzuheuern" der mir sowas schreibt aber ich wills trotzdem selbst "lernen"
dann bringts aber nix, wenn wir die Lösung sagen

Was genau willst du lernen? Das Lösen des mathematischen Problems, aus einer gegebenen, ebenen Fläche einen möglichst großen Quader zu "falten", oder das besagte Problem programmtechnisch umzusetzen? Ersteres ist ein wenig knifflig, aber machbar, zweiteres ist, zumindest danach, fast ein Kinderspiel
-
naja
dacht mir
wenn ich so n programm mal seh
so mit if else und so
oder so
dann werd ich, mit dem klein bissel grundwissen was ich hab, hoffentlich nach n bissel fragen auch verstehn, wie genau im einzelnen das ganze funz
aber so ohne so nen quelltext zu dem ich fragen stellen kann krieg ich auch keine antworten dazu wie der funz und so...
und wenn ich dann wüsste wie das funz würds mir leichter fallen sowas in zukunft selbst zu proggen
-
Dann wärs vielleicht besser, du fängst mit etwas einfacherem an, z.b. den Flächeninhalt mit Hilfe von den Seitenlängen a und b auszurechnen. CStoll hat doch ein halbfertiges Programm geschrieben, das kannst du sicherlich umändern, so dass der Flächeninhalt ausgegeben wird. Und mathematisch dürfte das ja recht einfach sein

-
PrettyNicky schrieb:
so mit if else und so
vielleicht solltest du im unterricht mal weniger simsen und mehr dem lehrer zuhören, wenn er von "if else und so" erzählt

aber hab nur geduld, es dauert bestimmt nicht mehr lange bis dir jemand eine fertige lösung postet. vielleicht schaut (d)evil mal rein, der hilft da immer gern.
-
nur mal so zum besseren verständnis (verwirrt und so)
Du hast eine gegebene, ebene Fläche a*b
Durch falten willst du daraus eine Schachtel (also Quader ohne Deckel) machen, die einen möglichst großen Rauminhalt bietet.
Falten bedeutet hier, dass dadurch von der gegebenen Fläche ein Teil in der Größe von (h = die Höhe des Quaders) für die Faltung wegfällt.Dabei steh ich vor einem Problem... das Volumen ist von h abhängig, h aber auch vom Volumen... (umgekehrt proportional, wenn ich mich nicht täusche, d.h, je geringer h, desto größer das Volumen)
oha...jetzt weiß ich auch, warum in den Übungsaufgaben damals immer dabeistand, dass eventuell überlappende Flächen nicht berücksichtigt werden ^^
-
Macht mir auch einer die Hausaufgaben? Ich bin auch super pretty und total süß. *superliebguck*
-
naja...
ich fang nun mal so an...
(a*b)*c = inhalt eines rechtecks
richtig oder?
nun theoretisch müsste das programm ja doch nur immer wieder von a und b (wenn ich nicht falsch liege) was abziehn und das abgezogene halt zum rand hinzu gerechnet werden, richtig?
also nun die frage
durch welchen quelltext kann ich es dann nun eig. bewerkstelligen, das dann nun halt die grundfläche immer kleiner wird, der rand größer, die länge mal die breite genommen wird und das ergebnis mal die höhe und das ergebnis in cm^3 ausgegeben wird?
dann stellt sich nur noch die frage: wie muss ich die rechnung (also das das programm das rechnet) nochmal mit den eingegebenen zahlen verbinden? %i oder so war das doch oda?
also...
eingabe müssten da nur sein a und b, eventuell noch ein weiteres in welchen schritten (1, 0.5, 0.1, ...) der das rechnen soll, also genauigkeit, und die ausgabe soll halt das ergebnis sein, wobei da als ergebnis vll am anfang 0 steht und immer, wenn die zahl größer ist, wird die vorherige da ersetzt und sobald eine zahl kleiner ist, wirds nich ersetzt, die rechnung wird beendet und ausgabe erfolgt......
-
Also nochmal der Ansatz:
Das Volumen der Schachtel ist V=a'*b'*h mit a'=a-2*h, b'=b-2*h(1) - eingesetzt ergibt sich V = (a-2h)(b-2h)*h = a*b*h-a*2h*h-2h*b*h+2h*2h*h = 4h³-2(a+b)h²+a*bh. Jetzt mußt du nur noch den Wert für h bestimmen, bei dem dieser Ausdruck maximal wird - eine einfache Extremwertaufgabe, die du bestimmt auch auf dem Papier lösen kannst.
(1) du nimmst an jeder Seite der (zukunftigen) Schachtel einen Streifen der Breite h und faltest ihn nach oben.
-
also im klartext breite mal länge und das ergebnis mal höhe da is doch das volumen fertig
die höhe ergibt sich ja eig. von selbst, naja da fängt man ja mit 0 an und geht langsam in gleichmäßigen schritten höher
joa...
eingabe is ja iwas mit printf ("...") mein ich und halt noch was damit das prog auch die zahlen nimmt die da stehn
dann halt die rechnung
und die ausgabedie frage is ja
1. wie war des nochma gleich das des prog die breite und die länge liest? (höhe soll bei 0 festgelegt sein)
2. was meint ihr, wärs sinnvoll auch die genauigkeit als eingegebenen wert zu nehmen oder sollte des auch festgelegt sein?
3. wie heißt noch gleich der code, mit dem der eine zahl ausgegeben wird (also das ergebnis der rechnung) und bei der ausgabe die zahl so lang ersetzt wird bis eine kleinere kommt?
-
PrettyNicky schrieb:
1. wie war des nochma gleich das des prog die breite und die länge liest? (höhe soll bei 0 festgelegt sein)
In C++ "cin>>var;", in C "scanf("%d",&var);", "scanf("%f",&var);" oder "scanf("%lf",&var);" (je nach Typ der Variablen) - ich weiß schon, warum ich die C++ Variante bevorzuge.
2. was meint ihr, wärs sinnvoll auch die genauigkeit als eingegebenen wert zu nehmen oder sollte des auch festgelegt sein?
Es wäre wohl am sinnvollsten, die optimale Höhe zu berechnen, anstatt alle möglichen Werte für die Höhe auszutesten.
3. wie heißt noch gleich der code, mit dem der eine zahl ausgegeben wird (also das ergebnis der rechnung) und bei der ausgabe die zahl so lang ersetzt wird bis eine kleinere kommt?
Ausgabe: "cout<<var;" bzw. "printf("%d",var);"/printf("%f",var);"/...
Ersetzen: Was meinst du damit jetzt?
-
Damit kannst du den Umfang von einem Quadrat berechnen müsste so richtig sein .
Aber ka wie das bei einer Schachtel geht ich kann nicht so gut Mathe
Links zu so Formel Sachen für Flachenberechnung:
http://home.debitel.net/user/anja.schiffers/Formelsammlung.PDF
http://www.mathepower.com/quadrat.phpJa ich weiss niemals system("PAUSE"); verwenden aber bei getchar(); da ist das Programm immer sofort wieder zugegangen^^
#include <iostream> using namespace std; int main() { int start; cout<<"(1) Umfang vom Quadrat berechnen\n"; cin>>start; if (start==1) { int a1,a2,u; cout<<"Erste laenge eingeben\n"; cin>>a1; cout<<"Zweite laenge eingeben\n"; cin>>a2; u = a1*a2; cout<<"Der Umfang des Quadrates betraegt "<<u<<"\n"; system("PAUSE"); } }
-
also mit ersetzen mein ich, das wenn der jetzt ausrechnet 50m³, als nächstes 51m³, dann gibt der nicht 50m³ aus sondern halt 51m³ und von 50m³ erfährt man überhaupt nichts, also halt das nur das größte ausgegeben wird
naja wohl n bissel unfein formuliert
hmm...
und noch fragen^^
was bedeutetn des "using namespace std"?und 2 mal int?
cout und cin, << und >>... also damit kenn ich mich ja noch nich aus.... hatte ich ja noch nich... hmm... man kommt ja auch nich schon mit dem berechnen von aufgaben aus der 13. klasse an wenn man erst in der 5. ist oder so...
-
na also, geht doch...
Volumen eines Prismas ist die Grundfläche mal Höhe, von daher hast du Recht (V = a*b*h; h=die Höhe)
die Grundfläche des fertigen Quaders (nicht rechteck, rechteck ist 2D) bekommst du, wenn du von den gegebenen Werten a und b die doppelte Höhe abziehst.
Angenommen der User hat folgendes eingegeben:
a = 5;
b = 10;daraus ergibt sich für h: ]0;5[ (zwischen 0 und dem kleinsten der beiden Werte, aber nie genau 0 und nie genau dieser Wert)
den kleinsten der beiden Werte kannst du über ne zwischenfunktion bekommen
int minValue( int a, int b ) { if( a < b ) return a; else return b; }dann kommt deine Haupt-Schleife
double maxVolumen( int a, int b ) // a und b sind die vom User eingegebenen Werte { int min = minValue( a, b ); float h; // die Hoehe float step = 0.05; // die Schrittweite, in der du durchtesten willst double volumen = 0.0; // selbsterklären ;) double temp; // zum temporaeren zwischenspeichern des Volumens for( h = step; h < min; h += step ) // wie gesagt, h darf nicht 0 sein { temp = ( a - 2 * h ) * ( b - 2 * h ) * h; //auf jeder Seite wird die Höhe abgezogen if( temp > volumen ) { volumen = temp; // wenn das neue Volumen größer ist, speichern } } // jetzt ist die schleife durch und in volumen liegt das maximale Volumen in cm³ return volumen; }jetzt musst du funktion nur noch aufrufen...
das ist zumindest das Grundprinzip, auf dem du aufbauen kannst... du wirst aber schnell feststellen, dass eine gewisse Regelmäßigkeit in den Ergebnissen steckt... wenn du die gefunden hast, sparst du dir die Schleife und kannst den Wert direkt ausrechnen

-
zwutz schrieb:
na also, geht doch...
Volumen eines Prismas ist die Grundfläche mal Höhe, von daher hast du Recht (V = a*b*h; h=die Höhe)
die Grundfläche des fertigen Quaders (nicht rechteck, rechteck ist 2D) bekommst du, wenn du von den gegebenen Werten a und b die Höhe abziehst.
Nur eine kleine Berichtigung - du hast 4 Seitenwände, also mußt du von den vorgegebenen Werten die doppelte Höhe abziehen.
-
CStoll schrieb:
zwutz schrieb:
na also, geht doch...
Volumen eines Prismas ist die Grundfläche mal Höhe, von daher hast du Recht (V = a*b*h; h=die Höhe)
die Grundfläche des fertigen Quaders (nicht rechteck, rechteck ist 2D) bekommst du, wenn du von den gegebenen Werten a und b die Höhe abziehst.
Nur eine kleine Berichtigung - du hast 4 Seitenwände, also mußt du von den vorgegebenen Werten die doppelte Höhe abziehen.
wenn du meinen Programmvorschlag ansiehst, wirst du bemerken, dass ich genau das gemacht habe... hab mich oben nur etwas falsch ausgedrückt, da hast du recht
-
double volumen is iwie nich selbst erklärend ^^
und muss nich iwie das was von a und b abgezogen wird genau zu h hinzugefügt werden?
und doppelte höhe abziehn? hä?
-
PrettyNicky schrieb:
was bedeutetn des "using namespace std"?
und 2 mal int?
cout und cin, << und >>... also damit kenn ich mich ja noch nich aus.... hatte ich ja noch nichAn deiner stelle würde ich mir erst mal die Grundlagen dazu angucken ich versuch auch öfters irgendwelche Programm zu machen aber irgendwann kommt man dann an einen Punkt wo man nicht mehr weiter kommt und dann muss man halt noch etwas üben.
Gutes Tutorial: http://www.cpp-tutor.de/cpp/intro/toc.htm
noch ein weiters Tutorial: http://tutorial.schornboeck.net/inhalt.htm ( Aber das finde ich nicht so gut ich arbeite lieber das erste ab den da wird alles ausführlicher erklärt )
mehrere Tutorials zu bestimmten sachen: http://www.tutorials.de/forum/c-c-tutorials/
Wofür das using namespace std; ist: http://www.cpp-tutor.de/cpp/le01/le01_04.htm
wofür das int ist: http://www.cpp-tutor.de/cpp/le02/le02_01.htm