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?
-
@Joe_M. wie gemein :), Naja wusste ebend nicht genau was er wollte und habe dann versucht aus seinen Fetzen was zusammenzubauen.
-
Ja, so bin ich eben. Ist möglicherweise ein Spätschaden von zu viel Alf...
-
huhu schrieb:
Ich soll mit einer Kopfgesteurten Schleife die Temperatur bis zu 10 min ausgeben.
(...)
Dafür soll eine Fußgesteuerte Schleife verwendet werden.
(...)
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.
(...)
Die Verarbeitungsphase der Daten soll in ein Unterprogramm ausgelagert werden.#include <iostream> #include <vector> using namespace std; void berechne_temperatur( double sup, double um, vector<double>& erg, int min ) { int i = 0; erg.resize(min); do { sup -= ( sup - um ) * 0.1; erg[i] = sup; ++i; } while( i < min ); } void zeige_werte( vector<double> const& erg ) { int min = erg.size(); int i = 0; while( i < min ) { cout << endl << (i + 1) <<" min:\t" << erg[i] << " C;"; ++i; } cout << endl; } int main( int, char** ) { double um, sup; int min; vector<double> erg; cout<<"Wassertemperatur: "; cin>>sup; cout<<"Umgebungstemperatur: "; cin>>um; cout<<"Minuten: "; cin>>min; berechne_temperatur(sup,um,erg,min); zeige_werte(erg); system("PAUSE"); return 0; }
-
Ja, so kann man das machen. Ich hätte nur noch die Anfangstemperatur des Wassers mit in den Ergebnisvektor genommen.
-
Was heissen den diese Vector Sachen hab sowas noch nie gesehen