c# Anf?nger Prob *grr*

  • Hey,
    Benutze gerade das E-Book visual c# 2005 - Steilkurs in 10 lektionen Nun h?nge ich schon bei der ersten Lektion x.x.
    Als 2. ?bungsaufgabe soll ich ein Programm schreiben, wo der User eine Kommazahl eingibt und dann die Wurzel dieser Zahl ausgegeben werden soll.
    Alles in der Console.


    Mein Code sieht wie folgt aus


    static void Main(string [] args)
    {


    int zahl;//die Variable Name wird als int definiert
    Console.WriteLine("Bitte geben Sie eine Kommazahl ein: ");
    zahl = Console.ReadLine();
    Console.WriteLine("Die Wurzel aus der eingegeben Zahl ist:");
    Console.WriteLine(Math.Sqrt(zahl));
    Console.ReadKey();
    }



    Nun meckert mein Compiler Fehler :Eine implizite Konvertierung vom Typ "string" in "int" ist nicht m?glich.


    Da ich noch nicht soviel Ahnung habe, w?sste ich gerne wie ich das von string in int bekomme :D
    Finde als eine der ersten Aufgaben ist das "schwer", wenn man bis dahin nur mit Hello World besch?ftigt hat



    Mfg

  • Ok jetzt hab ich die Fehlermeldung behoben jedoch gibt er nicht das korreckte Ergebnis aus x.x.Was ist da falsch?


    Hier mal mein Quelltext:


    static void Main(string [] args)
    {
    int zahl;//die Variable Name wird als int definiert
    Console.WriteLine("Bitte geben Sie eine Kommazahl ein: ");
    zahl = Console.Read();
    Console.Write("Die Wurzel aus der eingegeben Zahl ist:");
    Console.WriteLine(Math.Sqrt(zahl));
    Console.ReadKey();
    }



    Mfg

  • Das mit dem Datentyp ist ja jetzt behoben ( siehe letzter post )...Doch der gibt nicht die korreckte Wurzel aus der eingegeben Zahl aus.
    So schwer kann das doch nicht seon, wenn das am Ende von Lektion 1 als ?bung steht...



    mfg


  • Soweit ich weiÃ?, sind integers GANZE und keine Kommazahlen?


    ___________


    Zitat

    Eine implizite Konvertierung vom Typ "string" in "int" ist nicht m?glich.


    Es gibt da einen schönen befehl der nennt sich Parse (sprich: int.parse(), string.parse(), etc.)
    Versuchs mal damit ;)

  • Ich kann kein C# aber ich denke das man mit ReadLine einen String bekommt den man erst danach in Integer/Double umwandeln muss oder?




    Du sagst, du spürst die Ohnmacht, denn der Feind ist ach so stark
    Und er will dich niederhalten mit Geschrei durch Bein und Mark
    Mit Verboten und Zensur kann er zwar den Kampf erschweren
    Doch niemals wird ein Richterspruch den freien Geist bekehren.


    Fürchte lieber Deutschlands Untergang als die Reden der Vasallen
    Derer, die der Lüge dienen, denn schon bald werden sie fallen.

  • Ich habs so gemacht

    Code
    static void Main(string[] args)
            {
                double zahl;//die Variable Name wird als int definiert
                Console.WriteLine("Bitte geben Sie eine Kommazahl ein: ");
                zahl = Convert.ToDouble(Console.ReadLine());
                Console.Write("Die Wurzel aus der eingegeben Zahl ist:");
                Console.WriteLine(Math.Sqrt(zahl));
                Console.ReadKey();
            }


    deine fehler:
    1. int sind ganze Zahlen
    2. Du hast Console.Read() verwendet, das liest soweit ich weis nur einen int wert.


    wie ändern:
    1. nimm double anstelle von int
    2. Verwende anstelle von Console.Read() Console.ReadLine() und mach daraus einen double wert mit Convert.ToDouble()