Visual Basic Aufgabe: Console.WriteLine

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von SibNoPain, 15. April 2013 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 15. April 2013
    Zuletzt bearbeitet: 18. April 2013
    Morgen,

    sitze gerade an einem Übungsblatt zu Visual Basic und verstehe die Aufgabe nicht.


    Geben sie den folgenden Programmcode ein und interpretieren Sie die Ausgabe:

    Code:
    Dim d_value1 as double
    d_value1 = 1.0E+17
    Console.WriteLine("Wert1: {0}", d_value1 + 4 - d_value1)
    Console.WriteLine("Wert2: {0}", d_value1 - d_value1 + 4)
    Ich bin absoluter Anfänger auf diesem Gebiet muss ich dazu sagen...

    Kann mir jdm helfen?! Danke im Vorraus.


    Gruß
     
  2. 15. April 2013
    AW: Visual Basic Studium Aufgabe

    Wobei helfen? Beim eingeben des Quellcodes? Beim interpretieren? Mach dir doch klar was das Programm macht und was raus kommen müsste und dann schaust du dir an was raus kommt.
     
  3. 18. April 2013
    AW: Visual Basic Studium Aufgabe

    Dim

    Deklariert und reserviert Speicherplatz für eine oder mehrere Variablen.
    (Dim-Anweisung (Visual Basic))


    as Double

    Datentyp der Variablen (z.B. Char = einzelnes Zeichen, String = Zeichenfolge, Integer = natürliche (Ganz)Zahl, Datum, Object, ...)
    (Datentyp: Zusammenfassung (Visual Basic))


    d_value

    individuell vergebener Variablen-Name


    d_value1 = 1.0E+17

    Der Variablen wird ein Wert zugewiesen (hier 10^17 = 1.0E+17). Achtung: dieser Wert muss dem Datentyp entsprechen (hier Double), das heisst d_value1 = "abc" wäre ein Fehler, weil der zugewiesene Wert vom Datentyp String (Zeichenfolge) ist.


    Console.WriteLine()

    "Schreibt die Textdarstellung des angegebenen Objekts, gefolgt vom aktuellen Zeichen für den Zeilenabschluss, in den Standardausgabestream."
    (Console.WriteLine-Methode (Object) (System))

    Heisst nichts anderes als dass der WriteLine-Befehl das in Klammern stehende in der Konsole wiedergibt und die Wiedergabe automatisch mit einem Zeilenumbruch abschließt.


    "Wert1: {0}", d_value1 + 4 - d_value1

    Hier wird der Text "Wert1: " und der Wert des ersten nach dem Komma stehenden Ausdrucks in String formatiert und geschrieben (Beginn der Zählung ist nicht 1 sondern immer 0). In String formatiert bedeutet, dass der Zahlenwert in eine Zeichenfolge umgewandelt wird. {0} ist hier der Wert des Ausdrucks d_value1 + 4 - d_value1. Hier werden lediglich mathematisch Zahlen und die Werte der Variablen verrechnet, das bedeutet 10^17 + 4 - 10^17 ist nichts anderes als 4

    (Beispiele für Console.WriteLine: VB.NET Console.Write, WriteLine, ReadLine Examples)




    Die Ausgabe des Programms lautet also meines Erachtens:

    Wert1: 4
    Wert2: 4
     
    1 Person gefällt das.
  4. 18. April 2013
    AW: Visual Basic Studium Aufgabe

    danke dir

    so hätte ich die ausgabe auch erwartet wie du geschrieben hast.

    aber nach eingabe des codes ins programm kommt...

    wert1: 0
    wert2: 4

    ...heraus. das versteh ich nicht ganz?!
     
  5. 18. April 2013
    AW: Visual Basic Studium Aufgabe

    Ich programmiere (noch) nicht mit C, aber folgendes fiel mir auf.

    Code:
    Dim d_value as double
    d_value1 = 1.0E+17
    Console.WriteLine("Wert1: {0}", d_value1 + 4 - d_value1)
    Console.WriteLine("Wert2: {0}", d_value1 - d_value1 + 4)
    
    Erste Zeile lautet der Name der Variable "d_value" und später wird aber "d_value1" verwendet.

    d_value != d_value1
     
    1 Person gefällt das.
  6. 18. April 2013
    AW: Visual Basic Studium Aufgabe

    hast recht stimmt. hat der prof wohl verballert.

    habs im programm aber schon verbessert gehabt und kamen wie gesagt die werte 0 und 4 raus.
     
  7. 18. April 2013
    Zuletzt bearbeitet: 19. April 2013
    AW: Visual Basic Studium Aufgabe

    Hey, damit wollte der Prof. vermutlich zeigen wie das mit der Genauigkeit von Berechnungen und der Interpretation des Compilers des Codes abläuft.

    Genaues kann ich jetzt auch nicht sagen.
    Ich denke nur, dass der Compiler versucht die Berechnung zu vereinfachen. Dabei wird er wohl die Anweisung von vorn nach hinten durchgehen und ggf. Vereinfachungen treffen können. In der zweiten Berechnung kann er sofort erkennen, dass er die beiden Variablen nicht voneinader abziehen muss. Er kann dafür sofort 0 einsetzen und gibt entsprechend 4 aus.
    In der ersten Zeile führt er die komplette Berechnung durch und kommt vermutlich an die Genauigkeitsgrenzen. Die 4 ist gegenüber der 10^17 so klein, dass sie vernachlässigbar ist. Zieht man anschließend wieder die 10^17 ab, kommt 0 heraus.

    Das wäre meine Vermutung. Auf Definitionen von VB etc. kann ich mich gerade nicht stützen. Müsste ich mich erstmal wieder belesen etc. Aber das scheint auch allgemein so "gängig" zu sein. Ist bei WolframAplha z.B. auch so:
    vaiable + 4 - variable: 1.0E+17 + 4 - 1.0E+17 - Wolfram|Alpha
    variable - variable + 4: 1.0E+17 - 1.0E+17 + 4 - Wolfram|Alpha


    Gruß
     
    1 Person gefällt das.
  8. 19. April 2013
    AW: Visual Basic Studium Aufgabe

    danke dir ich denke so wird es sein.

    bw's sind raus!
     
    1 Person gefällt das.
  9. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.