Forum
Tipps
News
Menu-Icon

VB 2008 express: größer kleiner gleich null ??

Ein Programm soll entscheiden, ob eine Zahl positiv, negativ oder gleich Null ist.
Aufgabe
Struktogramm
Schreibtischtest

weiß nicht wie ich das angehen soll, bin absoluter neuling im progen.
Muss fürs Studium mit VB 08 progen lernen.
vielelicht kann mir ja jemand helfen.
Das ist bisher alles was ich vorweisen kann:

Module Module1

    Sub Main()
        Console.WriteLine("Das Programm entscheidet, ob eine Zahl positiv, negativ oder gleich Null ist. ")
        'Dim Zahl As Double=Rnd()

        If Zahl = 0 Then
            Console.WriteLine("Die Zahl ist gleich 0")
            Console.ReadLine()
        Else
            Console.WriteLine()
        End If
        Console.ReadLine()
    End Sub

End Module

 

« Letzte Änderung: 04.11.10, 10:59:26 von Markus_Slide »

Antworten zu VB 2008 express: größer kleiner gleich null ??:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Das soll so bleiben, nicht mit case oder so arbeiten? Also vom Prinzip her musst du danach prüfen ob Zahl < 0 und ob Zahl >0 ist in den Else-Bedingung

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Weiß nicht mal ob der Grundaufbau stimmt, ist bis jetzt Patchwork-arbeit aus meinem wissen (3-mal informatikunterricht gehabt bis jetzt) und dem was man so im internet findet.
Ich weiß wie das jetzt klingt (Code-klau),... aber wie hat das denn auszusehen?

oO(kann mir jemand vielleicht noch sagen was dieser Befehl bedeutet?,konkret der schlussteil,dieses =Rnd: 'Dim Zahl As Double=Rnd(), hab den einfach ganz dreißt übernommen ohne zu wissen was er bedeutet )


achja... was issen case??... (grübegrübel) also ich soll es als konsolenanwendung "programmieren" und es dann demnächst als hausaufgabe hochladen.

« Letzte Änderung: 07.11.10, 00:24:02 von Markus_Slide »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
RND erzeugt eine Zufallszahl (random) und case ist eine andere Form der Abfrage wie bei If ... then nur hast du da viele "Fälle" / case drin

Für nur 3 Tage war der Anfang doch gar nicht schlecht. Ich denke das bekommst du du auch mit if noch hin.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hallo nochmal, das ist was ich bis jetzt fabriziert habe.
Man sieht es sicher schon ... Fehler. VB sagt mir  ZAHL ist nicht deklariert... dachte ZAHL wäre mit dem ausdruck 'Dim Zahl As Double=Rnd() deklariert? kann mir das jemand kurz erklären? ... und vielleicht auch noch nen allgemeinen Kommentar zu dem abliefern was ich bis jetzt fabriziert habe




Module Module1

    Sub Main()
        Console.WriteLine("Das Programm entscheidet, ob eine Zahl positiv, negativ oder gleich Null ist. ")
        'Dim wort As String
        'Dim Zahl As Double=Rnd()

        wort = Console.ReadLine()
        If IsNumeric(wort) = True Then
            Console.WriteLine(" Eingabe war eine Zahl! ")
            If Zahl = 0 Then
                Zahl = Console.ReadLine()
                Console.WriteLine("Die Zahl ist gleich 0")
                Console.ReadLine()

            ElseIf Zahl <= 0 Then
                Zahl = Console.ReadLine()
                Console.WriteLine("Die Zahl ist kleiner als Null")
                Console.ReadLine()

            ElseIf Zahl >= 0 Then
                Zahl = Console.ReadLine()
                Console.WriteLine("Die Zahl ist größer als Null")
                Console.ReadLine()

            End If
        Else
            Console.WriteLine(" Eingabe war ein Wort! ")
        End If
       

    End Sub

End Module

« Letzte Änderung: 10.11.10, 19:14:38 von Markus_Slide »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Du hast die beiden Dims aber auskommentiert, das ' davor entfernen

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Wow, verdammt... Danke jetzt läuft es. was so ein kleines bisschen Fliegendreck nicht alles ausmacht.
Nochmal danke für die Info

 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

dummerweise sagt er mir jetzt aber nicht ob meine eingabe größer oder kleiner als null ist oder vielleicht sogar gleich null

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Bau mal eine Zeile ein:

Console.WriteLine(Zahl)

und guck dir die Ergebnisse an.

Wozu gibt es "wort" ? was für eine Eingabe bei Wort wird erwartet, denn über die erste IF-Abfrage geht er m.E. nicht hinaus, kommt gar nicht in die inneren Prüfungen an.

Du kannst auch debuggen mit F8 und Schritt für Schritt das Programm ablaufen lassen. Mit der Maus auf einer Variable siehst du den enthaltenen Wert.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Also nach der Aussage "ist eine Zahl" klappt das Debugging bei mir ab und gibt mir ne Art fehlermeldung

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Was muss denn bei Wort rein bei der Eingabe, nur Enter?

wort = Console.ReadLine()
 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Also die Geschichte mit "WORT" wurde mir von meinem Lehrer in Auftrag gestellt als Aufgabenzustaz
Hir mal als überblick:

Erweiterung für alle Aufgaben:
Fangen Sie Texteingaben und die leere Eingabe ("") mit Verzweigungen ab!


Folgender Quelltext fängt alle Texteingaben ab.
Dim wort As String

wort = Console.Readline (…)
If IsNumeric(wort)) = true Then
Console.WriteLine (" Eingabe war eine Zahl! ")
Else
Console.WriteLine (" Eingabe war ein Wort! ")
End If

Testfälle: X, XY, 4, 87, DR4, 5S, …..
Notieren Sie die Testergebnisse! Vergleichen Sie mit der vorherigen Lösung

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

hab das Anfangs einfach so überneommen wie es da stand weil ich nicht genau wußte was er damit meint bzw. wie das definiert sein soll 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Aha, aber das sind ja dann grundsätzlich 2 Fälle.

a) Die Zahl wird durch RND vorgegeben und kommt in die 0, <0 oder >0 Schleife

b) eine Eingabe wird angenommen (kein RND) mit Prüfung
- Wort
- Zahl

Wenn Zahl dann die 0, <0, >0 Prüfung.

Im Moment ist beides durcheinander wenn ich das richtig sehe.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

wow! sry. Dann werde ich das mal ohne RND fortsetzen


jetzt habe ich beim debugging 3 eingegeben und er sagt mir die Zahl = 0 ?


Und was möchte er mir damit sagen:

Eine Ausnahme (erste Chance) des Typs "System.InvalidCastException" ist in Microsoft.VisualBasic.dll aufgetreten.

 

« Letzte Änderung: 10.11.10, 20:03:02 von Markus_Slide »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Also er unterscheidet jetzt schonmal zwischen Zahl und "wort" aber er sagt mir zur Zahl keine einzelheiten von wegen größer kleiner als oder gleich 0

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Also oben müsstest du dann nicht wort sondern Zahl einlesen. In der Schleife entscheidest du, ob 0 <0 >0 verlangst gleichzeitig aber noch mal eine Eingabe, wozu die?

  ElseIf Zahl < 0 Then
                Zahl = Console.ReadLine()
                Console.WriteLine("Die Zahl ist kleiner als Null")
                Console.ReadLine()

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Mmmh! joah, ist überflüßig, stimmt

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

er sagt mir jetzt zu jeder zahl, dass sie gleich null sei...

oO(ist ja irgendwie doof)

und als bonus noch diese mitteilung:

Eine Ausnahme (erste Chance) des Typs "System.InvalidCastException" ist in Microsoft.VisualBasic.dll aufgetreten.     
 ??  

« Letzte Änderung: 10.11.10, 20:27:19 von Markus_Slide »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Zeig noch mal wie es jetzt aussieht

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

*husthust*





Module Module1

    Sub Main()
        Console.WriteLine("Das Programm entscheidet, ob eine Zahl positiv, negativ oder gleich Null ist. ")
        Dim wort As String
        Dim Zahl As Double

        wort = Console.ReadLine()
        If IsNumeric(wort) = True Then
            Console.WriteLine(" Eingabe war eine Zahl! ")
            If Zahl = 0 Then
                Console.WriteLine("Die Zahl ist gleich 0")
                Console.ReadLine()

            ElseIf Zahl <= 0 Then
                Console.WriteLine("Die Zahl ist kleiner als Null")
                Console.ReadLine()

            ElseIf Zahl >= 0 Then
                Console.WriteLine("Die Zahl ist größer als Null")
                Console.ReadLine()

            End If
        Else
            Console.WriteLine(" Eingabe war ein Wort! ")
        End If
       

    End Sub

End Module

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Also kein Wunder, denn Zahl wird ja nun nicht mehr erfasst. Nach der Prüfung ob wort ein Wort oder Zahl ist, kann eine Zeile eingefügt werden (wenn Zahl)

Zahl = wort

z.B. über Console.WriteLine(" Eingabe war eine Zahl! ")

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

sorry, blicke aber nicht mehr wirklich durch, hab die übersicht verloren
Wo genau hab ich den Fehler platziert?

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Durch das Ändern auf Wort, wird zahl nicht vorbesetzt und ist 0. Schau dir die (simple) Änderung an.

Module Module1

    Sub Main()
        Console.WriteLine("Das Programm entscheidet, ob eine Zahl positiv, negativ oder gleich Null ist. ")
        Dim wort As String
        Dim Zahl As Double

        wort = Console.ReadLine()
        If IsNumeric(wort) = True Then
            Console.WriteLine(" Eingabe war eine Zahl! ")
            Zahl = wort
            If Zahl = 0 Then
                Console.WriteLine("Die Zahl ist gleich 0")
                Console.ReadLine()

            ElseIf Zahl <= 0 Then
                Console.WriteLine("Die Zahl ist kleiner als Null")
                Console.ReadLine()

            ElseIf Zahl >= 0 Then
                Console.WriteLine("Die Zahl ist größer als Null")
                Console.ReadLine()

            End If
        Else
            Console.WriteLine(" Eingabe war ein Wort! ")
        End If


    End Sub

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

*gegendiestirnklatsch* mmmh, joah, die erklärung leuchtet mir ein... und funktioniert reibungslos

 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Wie gibst du es ein, -1 z.B. funktioniert 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

japp, funktioniert perfekt, mein fehler, sorry

so nebenbei, muss ich mir wegen dieser Meldung eigentlich gedanken machen?:

Eine Ausnahme (erste Chance) des Typs "System.InvalidCastException" ist in Microsoft.VisualBasic.dll aufgetreten.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Muss bei dir liegen, mach mal ein neues Projekt evtl. einfach nur die Vorgabe und starte, wenn das da auch kommt, liegt irgendein Fehler der Installation vor.

Nachkommastellen übrigens mit Punkt 1.5 oder -1.37

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Vielen Dank für die Hilfe.
Werde mich dann mal wieder alleine hinsetzten und noch ein wenig an vb herumhantieren.
Danke nochmal, hätte ich alleine nicht gebacken bekommen!

*wiederalleineherumprobier*


« JAVA (QUERSUMME BERECHNEN)Hilfe beim Programmieren gesucht »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Eingabefelder
Als Eingabefelder werden in einem Programm oder in Online-Formularen die Stellen bezeichnet, an denen Informationen eingetippt werden können. Die Beschriftung neben ...

Eingabeaufforderung
Die Eingabeaufforderung ist ein Begriff aus dem IT-Bereich und bezeichnet eine Markierung auf der Kommandozeile, welche auf die Stelle verweist, an der man Kommandozeilen...

Internet-Zugriffsprogramm
Ein Internet-Zugriffsprogramm, auch Browser genannt, stellt Internetseiten für den Benutzer dar. Am bekanntesten ist der Microsoft Internet Explorer, gefolgt vom kos...