DarkerAngel13 Geschrieben 21. September 2016 Geschrieben 21. September 2016 Hi, ich bräucht mal eure Hilfe. Ich weiß nicht, wo bei diesem Code für den Kraftstoffverbrauch der Fehler liegt. So hat ihn unser Lehrer vorgegeben. Habe vergessen, die Textboxen umzubenennen. Bsp.: Ich habe getankte Liter: 70 l; gefahrene Kilometer: 1000 km, Preis pro Liter: 1,00 € Wenn ich das Programm ausführe, bekomme ich bei Verbrauch auf 100km: 1428,57 l und bei den Kraftstoffpreis je 100km: 1428,57 € private void cmdberechnen_Click(object sender, EventArgs e) { try { km = Convert.ToDouble(textBox1.Text); liter = Convert.ToDouble(textBox2.Text); preis = Convert.ToDouble(textBox3.Text); verbrauch = liter * 100 / km; kosten = verbrauch * preis; textBox4.Text = "Verbrauch auf 100 km: " + verbrauch.ToString("F2") + "Liter" + Environment.NewLine; textBox4.Text += "\nKraftstoffpreis je 100 Km: " + kosten.ToString("C"); } catch { MessageBox.Show("nur Zahlen eingeben"); textBox1.Text = textBox2.Text = textBox3.Text = null; textBox1.Focus(); } } Zitieren
Mttkrb Geschrieben 21. September 2016 Geschrieben 21. September 2016 Hallo, bei den Werten die du raus bekommst, scheint es Probleme mit den Eingabewerten aus den TextBoxen zu geben. Setze daher einen Breakpoint bei der Berechnung des Verbrauchs und schaue nach was in den Feldern km, Liter und preis steht. Sind die Variablen(km, preis, liter, verbrauch, kosten) alle vom Typ double? Zitieren
DarkerAngel13 Geschrieben 21. September 2016 Autor Geschrieben 21. September 2016 (bearbeitet) vor 13 Minuten schrieb Mttkrb: Sind die Variablen(km, preis, liter, verbrauch, kosten) alle vom Typ double? Ja sind sie. Was ist ein Breakpoint, wenn ich fragen darf? Die Programmiermaterie ist für mich komplettes Neuland. Bearbeitet 21. September 2016 von DarkerAngel13 Zitieren
Mttkrb Geschrieben 21. September 2016 Geschrieben 21. September 2016 Das ist ein Haltepunkt, bei der das Programm beim Debuggen (Starte das Programm aus dem VisualStudio mit F5) anhält. Einen Haltepunkt setzt du am schnellsten mit der Taste F9 in die Zeile wo sich der Cursor gerade befindet. Erneutes drücken von F9 entfernt diesen wieder. Wenn das Programm dort anhält, kannst du dir die aktuellen Werte der Variable anschauen und mit F10/F11 im Programm schrittweise weiterspringen. Mit F5 geht es weiter zum nächsten Haltepunkt. Der gelbe Pfeil markiert die Position an der das Programm sich gerade befindet. OffTopic: Mich wundert es, dass dies noch nicht drangekommen ist und ihr schon mit Oberflächen hantiert. Aber das ist ein anderes Thema. ;-) Zitieren
DarkerAngel13 Geschrieben 21. September 2016 Autor Geschrieben 21. September 2016 vor 39 Minuten schrieb Mttkrb: OffTopic: Mich wundert es, dass dies noch nicht drangekommen ist und ihr schon mit Oberflächen hantiert. Aber das ist ein anderes Thema. ;-) Danke dir. Ich hab das Gefühl, dass die im 3. Semester anfangen und irgendwann später das 1. Semester dran kommt. Bin jetzt in der 4. Woche des 1. Semesters. Zitieren
Whiz-zarD Geschrieben 21. September 2016 Geschrieben 21. September 2016 (bearbeitet) Hinweis 1: arbeite bei wahrungsbeträgen nie mit double! C# bietet dafür den decimal-datentyp. Hinweis 2: schreibe nie die Logik in der UI! Das macht die Logik untestbar und falls du mal die UI tauschen möchtehst, musst du die Logik noch mal implementieren. Bearbeitet 21. September 2016 von Whiz-zarD Klebrig reagierte darauf 1 Zitieren
grueni Geschrieben 22. September 2016 Geschrieben 22. September 2016 Sieht so aus, als hättest du "km" und "liter" vertauscht. Werden die km wirklich in textBox1 und die Liter in textBox2 eingegeben? Zitieren
Whiz-zarD Geschrieben 22. September 2016 Geschrieben 22. September 2016 vor einer Stunde schrieb grueni: Sieht so aus, als hättest du "km" und "liter" vertauscht. Werden die km wirklich in textBox1 und die Liter in textBox2 eingegeben? mmh, irgendwie macht die ganze Berechnung keinen Sinn. Das müsste doch: verbrauch = liter / km * 100 heißen. Zitieren
SebastianB. Geschrieben 22. September 2016 Geschrieben 22. September 2016 vor 22 Minuten schrieb Whiz-zarD: mmh, irgendwie macht die ganze Berechnung keinen Sinn. Das müsste doch: verbrauch = liter / km * 100 heißen. Das ist in diesem Fall nicht von Bedeutung, da wir zwei Punktrechnungen haben. Verbrauch = 70 / 1000 * 100; // 7 Verbrach = 70 * 100 / 1000; // Ebenfalls 7 Deine Rechnungen sind richtig, ich habe das mal nachvollzogen. Du musst also einen Fehler bei der Eingabe gemacht haben. Sind eventuell die Dezimaltrennzeichen deines Systems andere, als du denkst? Dann kommt ganz schnell was falsches herraus. Deine Rechnung an sich ist jedoch zweifelsohne richtig, selbst das Rechnen in Double-Werten stellt hier kein Problem dar. Nachvollzogen habe ich das natürlich mit den von dir gegebenen Parametern. Gruß Sebastian Zitieren
DarkerAngel13 Geschrieben 22. September 2016 Autor Geschrieben 22. September 2016 vor 4 Stunden schrieb grueni: Sieht so aus, als hättest du "km" und "liter" vertauscht. Werden die km wirklich in textBox1 und die Liter in textBox2 eingegeben? Danke grueni. Ich hab sie tatsächlich verwechselt gehabt. Komisch, dass das einem selbst gar nicht auffällt. Jetzt stimmts nämlich, bei den von mir angegbenen Werten. Verbrauch auf 100 km: 7,00Liter Kraftstoffpreis je 100 Km: 7,00 € Zitieren
SebastianB. Geschrieben 23. September 2016 Geschrieben 23. September 2016 vor 23 Stunden schrieb DarkerAngel13: Danke grueni. Ich hab sie tatsächlich verwechselt gehabt. Komisch, dass das einem selbst gar nicht auffällt. Jetzt stimmts nämlich, bei den von mir angegbenen Werten. Verbrauch auf 100 km: 7,00Liter Kraftstoffpreis je 100 Km: 7,00 € Darf ich dir mit auf den Weg geben, dass dir das mit einer sprechenden Bezeichnung deiner UI-Controls nicht passiert wäre? Mach dir das Leben leichter, und verzichte auf textBox2 usw., sondern mach direkt textBoxKM daraus. Gruß Sebastian Zitieren
DarkerAngel13 Geschrieben 24. September 2016 Autor Geschrieben 24. September 2016 Mach ich normalerweise eh, habs nur da vergessen gehabt. Weil wir gerade mit der WindowsForms das Programmieren lernen. Ich versuche aber, dass ich es auch in der WindowsKonsole schaffe, zu programmieren. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.