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(); } }
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?
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
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. ;-)
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.
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
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?
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.
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
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 €
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
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.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden