Entwickler-Ecke
Basistechnologien - Erster Rechner
krampus - Mo 29.09.08 20:58
Titel: Erster Rechner
hi, ich hab mir heute einen rechner programmiert, der einfach nur 2 zahlen addieren soll.
doch das problem ist, dass das ergebnis falsch ist! und wenn ich statt ner zahl nen buchstabe eingebe kommt trotzdem ein ergebnis O.o
wenn ich mit der "int"-funktion einen 1er eingebe, den speichern lasse und dann wiedergeben lasse, kommt 49 dabei raus O.o
ich bitte um hilfe und hinweiße wie ich das ändern kann, dass die rechnungen stimmen!
der code:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
| using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int zahl1; int zahl2; int erg; Console.WriteLine("Rechner"); Console.WriteLine("**********************"); Console.Write("Gib eine Zahl ein: "); zahl1 = Console.Read(); Console.ReadLine(); Console.WriteLine(""); Console.Write("Gib noch eine Zahl ein: "); zahl2 = Console.Read(); Console.ReadLine(); Console.WriteLine(""); erg = zahl1 + zahl2; Console.Write("Das ergebnis lautet: "); Console.WriteLine(erg); Console.ReadLine(); } } } |
mfg krampus ;)
Moderiert von
Christian S.: Code- durch C#-Tags ersetzt
Kha - Mo 29.09.08 21:22
:welcome:
Read liest nur ein einzelnes Zeichen und gibt dir dessen Unicode-Wert zurück. Versuch es lieber mal mit ReadLine (-> String) in Verbindung mit int.(Try)Parse ;) .
krampus - Mo 29.09.08 21:27
also soll ich oben zb "int.TryParse zahl1;" eingeben?
ich kenne mich noch nicht so gut aus, da ich ein anfänger bin...
und wenn ich statt dem read wo er die eingabe lesen soll readline eingebe, dann kommt folgende meldung wenn ich die maus drüber halte: "Eine implizierte Konvertierung vom Typ "string" in "int" ist nicht möglich."
Flitzs - Mo 29.09.08 21:41
Hey,
Wenn du dir mal die Parameter ansiehst die die Funktion Int.TryParse() benötigt, siehst du das zahl1 wohl nicht ganz passt.
int int.Parse(string s) wäre wohl eher passend
bool int.TryParse(string s, out in result) kannst du benützen wenn du nicht sicher bist ob s auch wircklich ein int ist.
Da beide Methoden sind werden diese so aufgerufen: int.Parse(Eingabe); und nicht int.Parse Eingabe;
| Zitat: |
| und wenn ich statt dem read wo er die eingabe lesen soll readline eingebe, dann kommt folgende meldung wenn ich die maus drüber halte: "Eine implizierte Konvertierung vom Typ "string" in "int" ist nicht möglich. |
Das liegt daran das Read() dir den Unicode-Wert (also auch ein int) eines Zeichens (der nicht z.B. bei dem Zeichen "2" auch wirklich 2 ist) zurückgibt aber eben nur ein Zeichen du willst aber die ganze Zahl und nicht nur ein Zeichen (Drum funktioniert das auch wenn du einen Buchstaben eingibst, da diese auch einen int-Unicodewert haben).
Versuchs einfach mit ReadLine() und int.Parse() / int.TryParse().
mfg Flitzs
krampus - Mo 29.09.08 21:54
oh mann ich blick das einfach nicht das is mir fürn anfang noch zu hoch...
könntest du mir das bitte mal an meinem quellcode zeigen?
ich habs schon versucht, aber ich schaffs einfach nicht!
mfg krampus
Flitzs - Mo 29.09.08 22:24
Hey, auch wenn es nicht üblich ist Quellcode zu posten:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| string zahl1; string zahl2; int erg; Console.WriteLine("Rechner"); Console.WriteLine("**********************"); Console.Write("Gib eine Zahl ein: "); zahl1 = Console.ReadLine(); Console.WriteLine(""); Console.Write("Gib noch eine Zahl ein: "); zahl2 = Console.ReadLine(); Console.WriteLine(""); erg = int.Parse(zahl1) + int.Parse(zahl2); Console.Write("Das ergebnis lautet: "); Console.WriteLine(erg); Console.ReadLine(); |
Allerdings empfehler ich dir, lieber (nochmal) die Grundlagen zu c# durchzugehen (z.B. in so nen Openbook (z.B. das hier
http://www.galileocomputing.de/openbook/visual_csharp/ )).
mfg Flitzs
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!