Schleife
-
morgen, ich hab ein problem ^^
Ich soll mit einer Kopfgesteurten Schleife die Temperatur bis zu 10 min ausgeben.
Nur hab ich 0 Plan wie ich das in einer Schleife machen könnte hat vielleicht wer n tipp ?
#include <iostream> using namespace std; main() { long double um,sup,erg,erg2; cout<<"Wassertemperatur: "; cin>>sup; cout<<"Umgebungstemperatur: "; cin>>um; erg = sup - um - 10 ; erg2 = erg - 10; cout<<"1 min: "<<erg<<"\n"; cout<<"2 min: "<<erg2<<"\n"; system("PAUSE"); }
-
Ich verstehe gar nicht so recht, was das Programm machen soll. Erklär das bitte mal genauer. Hast du denn überhaupt schonmal eine Schleife programmiert?
Kopfgesteuerte Schleife:
do { //mache irgendwas }while(true); //Abbruchbedingung
-
10 min? heißt das nun 10 minuten oder bis minimal zur Temperatur 10 ab der Eingabe des Users?
-
Das Wasser kühlt pro min 10% seiner Differenz aus Wassertemperatur und Umgebungstemperatur ab.
Nach jeder Minute soll die Temperatur des Wassers angegeben werden.
Anfangstemperatur vom Wasser 90 C° Umgebungstemperatur 21 C°.
Ja eine Schleife habe ich schon öfters Programmiert.
-
_matze schrieb:
Ich verstehe gar nicht so recht, was das Programm machen soll. Erklär das bitte mal genauer. Hast du denn überhaupt schonmal eine Schleife programmiert?
Kopfgesteuerte Schleife:
do { //mache irgendwas }while(true); //Abbruchbedingung
Das ist keine kopfgesteuerte Schleife.
-
@hihi, sie dich mal nach clock() um, damit sollte es möglich sein, nach jeder minute eine berechnung, bzw eine ausgabe zu machen.Fals ich falsch liege, bitte korrigieren.
-
Firefighter schrieb:
damit sollte es möglich sein, nach jeder minute eine berechnung, bzw eine ausgabe zu machen.
Ich glaube nicht, dass das Programm in Echtzeit laufen muss
-
ohh Gut, naja es wäre aber eine Lösung Dann soll er uns sagen wie er die 10min darstellen will.
-
Ne nicht nach Echtzeit^^
-
Dafür soll eine Fußgesteuerte Schleife verwendet werden.
Die Verarbeitungsphase der Daten soll in ein Unterprogramm ausgelagert werden.
-
ja wie dann? ^^ soll das Programm einfach nur die Rechnung beginnend von 90° bis 21° ausführen und anzeigen oder was?
-
Vermutlich soll das so aussehen:
0 min: 90°
1 min: 83.1°
2 min: 76.89°
usw.
-
hier mal ein bisschen pseudocode
mache { weise temperatur den wert der alten temperatur abzüglich der 10% zu }solange die temperatur nicht kleiner als 21.00° ist
ich hoffe das kann man so machen
-
Dann solltest du aber die Formel ändern und an Stelle von erg und erg2 ein Array nehmen (falls du die werte überhaupt zwischenspeichern willst).
also so erstmal...#include <iostream> using namespace std; int main( int, char** ) { enum { MIN = 10 }; double um, sup; double erg[MIN]; cout<<"Wassertemperatur: "; cin>>sup; cout<<"Umgebungstemperatur: "; cin>>um; int i; for( i = 0; i != MIN; ++i ) { sup -= ( sup - um ) * 0.1; erg[i] = sup; } for( i = 0; i != MIN; ++i ) { cout << endl << (i + 1) <<" min:\t" << erg[i] << " C;"; } cout << endl; system("PAUSE"); return 0; }
// EDIT:
Ich soll mit einer Kopfgesteurten Schleife die Temperatur bis zu 10 min ausgeben.
(...)
Dafür soll eine Fußgesteuerte Schleife verwendet werden....?
-
ich habe es so gelöst:
#include <iostream> using namespace std; int main() { float anfangstemp = 90.00; float endtemp = 21.00; int i = 0; do { cout<<"Temp nach "<<i<<" min: "<<anfangstemp<<endl; anfangstemp = anfangstemp -(anfangstemp *0.1); i = i+1; }while(anfangstemp >endtemp); }
-
@Firefighter warum wird das bei deinem Code bis zu 13 min berechnet ?
-
Weil bei der nächsten Berechnung die Temperatur sonst unter 21° fallen würde, und das wolltest du ja nicht, zumindest habe ich das so verstanden. Von 90° bis 21°
-
@Firefighter: Formel falsch, setzen, 6. Außerdem ist 21°C die Umgebungstemperatur, nicht die Endtemperatur.
Äh, also eigentlich sollte das hier eher den Anforderungen entsprechen (Kopfgesteuert, 10 Min. Betrachtungszeitraum, Berechnung jede Minute):
double dWasserTemp, dUmgebTemp; int iMinuten, iMinutenMax; iMinuten = 10; iMinutenMax = iMinuten; dWasserTemp = 90.0; dUmgebTemp = 21.0; while (iMinuten >= 0) { cout<<"Temp nach "<<iMinuten<<" Min.: "<<DWasserTemp<<endl; dWasserTemp -= (dWasserTemp - dUmgebTemp) / 10; --iMinuten; }
Was ist denn nun die Aufgabenstellung? Die ist nicht klar ersichtlich, respektive teilweise widersprüchlich....
-
Ein Topf Wasser kühlt pro minute um 10% seiner differenz aus Wassertemperatur und Umgebungstemperatur ab. Es soll die Temperatur des Wassers nach jeder Minute angegeben werden, wenn man als Anfangstemperatur 90 °C annimmt. Die Umgebungstemperatur liegt in der Regel bei 21 °C.
-
Über welchen Zeitraum? 10 Minuten? Respektive, was ist die Abbruchbedingung?
War da nicht noch was mit Kopf- oder Fußgesteuerter Schleife?
Sollte nicht die Berechnung in eine Funktion ausgelagert werden?