C++ Problem

vom 04.12.2008, 19:42 Uhr

Ich habe wieder mal eine Aufgabe die ich nicht lösen kann, weil mir das Programmieren schwer fällt, aber villeicht könnt ihr mir ja wieder helfen. Es geht um Windows Oberflächen-Programmierung.

Ich habe folgende Aufgabe: Eine Tasse Kaffee hat eine Temperatur von 85 °C. Die Zimmertemperatur beträgt 21 °C. In jeder Minute verringert sich die Temperatur des Kaffees um ein Zehntel der Differenz zwischen den beidenTemperaturen. Schreiben Sie ein Programm, dass die Kaffeetemperatur nach 1, 2, 3, ... Minuten ausgibt, bis der Temperaturunterschied weniger als 1 °C beträgt. Wann hat der Kaffee annähernd Zimmertemperatur erreicht?

Das habe ich bereits:

int zahl1, zahl2, differenz, abnahme, minute;

zahl1=85;
zahl2=21;

differenz=zahl1-zahl2; // Differenz

abnahme=(differenz/10); // 1 Zehntel der Differenz

Nun wollte ich dies mit einer For oder Do - while -Schleife machen.
Das sah dann so bei mir aus:

do {
minute=differenz-abnahme;
}
while (temperatur>=21);

ListBox1->Items->Add(minute);

Nun gibt das Programm die Zahl 58 aus, aber ich glaube, dass das Ergebnis nicht stimmt.

Ich hoffe ihr könnt mir helfen, denn es funktioniert mal wieder nicht bei mir!

Benutzeravatar

» siara » Beiträge: 370 » Talkpoints: 8,62 » Auszeichnung für 100 Beiträge



Ich versteh die Zeile "minute=differenz-abnahme;" nicht genau.

Grob sollte das ganze so aussehen. Ich kann kein C++ ;)

Code: Alles auswählen
Variablen: TempRaum, TempStart, Minute, Differenz, Abnahme, TempMinute

TempRaum := 21;
TempStart := 85;
Minute:= 0; // Zeit zum Start
TempMinute:=85; // Temperatur zum Start

while TempRaum -  TempMinute > 1 do begin
  Differenz := TempMinute - TempStart;
  Abnahme:= Differenz / 10;
  TempMinute :=  Tempminute -Abnahme;
  Minute := Minute +1;
  Ausgabe : Minute, Tempminute;
end;

Würde mich übrigens interessieren, was bei rauskommt, will es nicht selber programmieren müssen ;)

Ich habe einen kleinen Fehler entdeckt. Es müsste heißen:
while TempMinute - TempRaum > 1 do begin

Ansonsten hätte man hier eine Endlosschleife.

Benutzeravatar

» mich » Beiträge: 665 » Talkpoints: 2,91 » Auszeichnung für 500 Beiträge


Das was mich hiergepostet hat sieht soweit ich das beurteilen kann schonmal ganz gut aus. Muss man dann nur noch in die Syntax von C++ übersetzen.

Allerdings ist mir noch etwas aufgefallen: Du benutzt als Variablentyp integer, allerdings können Integer keine Nachkommastellen speichern! Du solltest also den Variablentyp float benutzen.

Mir ist doch noch ein Fehler aufgefallen. die Zeile:

Differenz := TempMinute - TempStart

müsste eigentlich

Differenz = TempMinute - TempRaum

heißen, da die Differenz sonst 0 wäre.

Benutzeravatar

» Phantomlord » Beiträge: 953 » Talkpoints: 6,41 » Auszeichnung für 500 Beiträge



Ähnliche Themen

Weitere interessante Themen

^