Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Tutorial

Vergleiche von Double- und Integer-Zahlen

von RedakteurytwinkySeite 1 von 3

Vergleichen in FreeBASIC ist einfach, weil der Compiler dafür viele Operatoren hat.
Doch ist es damit schon getan? Nein!
Hier geht es jetzt nicht darum, die zu vergleichenden (Teil-)Ausdrücke sorgfältig einzuklammern, damit richtige Ergebnisse erzielt werden..
Es sollte jedem klar sein, dass (a+b)<c ein anderes Ergebnis liefert als a+(b<c).
Nehmen wir mal ein Beispiel(also eins, bei dem die Probleme gleich auftreten..):

Const FALSE=0, TRUE=Not FALSE
Dim As Integer i=1, j=3 'Deklarieren von zwei Integer-Variablen
Print "i=" &i &!"\nj=" &j 'Ausgeben der Variablen auf dem Bildschirm
Print "i/j=" &(i/j) &!"\n1/3=" &(1/3) 'Ausgabe der Quotienten auf dem Bildschirm
Print "i=j?";
Select Case i=j 'Prüfen, ob i=j ist..
    Case TRUE 'ja, dann..
        Print " True" '..Meldung ausgeben
    Case Else 'Dann kann es nur FALSE sein..
        Print " False, ";
        Print *IIf(i<j, @"i<j", @"i>j")
End Select
Print !"\nEniki..";
GetKey 'ist besser als Sleep, denn der Tastaturpuffer wird gelöscht^^

Wir 'sehen' auch, dass auch die Ergebnisse der Divisionen 'gleich' sind, aber halt:
Lassen wir das doch vom Rechner überprüfen..

Const FALSE=0, TRUE=Not FALSE
Dim As Integer i=1, j=3
Dim As Double d=i/j 'freundlicherweise ermittelt FB gleich das doppeltgenaue Ergebnis..
Print "i/j=1/3 " &*IIf(i/j=1/3, @"True", @"False") 'Ergebnisse vergleichen..
Print "i/j=d " &*IIf(i/j=d, @"True", @"False") 'Quotienten mit dem doppeltgenauen Ergebnis vergleichen
Print !"\nEniki..";
GetKey

Ooops, das sieht aber überhaupt nicht beruhigend aus!
Halten wir ersteinmal fest:
Integer-Variablen lassen sich untereinander ohne Probleme auf '=', '<>', '<', '>' (u.v.m.) prüfen.
Wieso wir das gerade jetzt festhalten? Na, weil wir mit der Division den Bereich der Integers(also ganzen Zahlen) verlassen haben..

 

Gehe zu Seite Gehe zu Seite  1  2  3  
Zusätzliche Informationen und Funktionen
  • Das Tutorial wurde am 04.09.2010 von Redakteurytwinky angelegt.
  • Die aktuellste Version wurde am 06.09.2010 von Redakteurytwinky gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen