-         

Ergebnis 1 bis 4 von 4

Thema: Funktion und Variablentyp

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.03.2005
    Beiträge
    386

    Funktion und Variablentyp

    Anzeige

    Warum geht das nicht? Wenn ich Byte anstelle von Single nehme funktioniert es, allerdings nur mit ganzen Zahlen bis 255. Ich will aber auch grössere Zahlen mit Kommastellen addieren.
    Kann mir das bitte jemand verständlich erklären?

    Dim B1 As Single
    Dim B2 As Single
    Dim B3 As Word
    Declare Function Testfunktion(byval A As Single , Byval B As Single) As Word
    Do
    Input "Zahl: " , B1
    Input "Zahl: " , B2
    B3 = Testfunktion(b1 , B2)
    Print "--------------------------"
    Print "Ergebniss: " ; B3
    Print "=========================="
    Print Chr(13)
    Loop
    End

    'Funktionen und Prozeduren
    Function Testfunktion(a As Single , B As Single) As Word
    Testfunktion = A + B
    End Function
    Gruss Robert

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Du solltest probieren, B3 und Testfunktion ebenfalls als "single" zu deklarieren und definieren
    Oder aber alles als word oder integer

    auf jeden Fall aber gleiche typen

    Ich kann hier im moment nicht testen, an welcher stelle genau Bascom da ins konversions-schleudern kommt.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    05.03.2011
    Ort
    Graz
    Beiträge
    29
    Hallo,

    was genau funktioniert denn nicht? Die Funktion liefert das erwartete Ergebnis zurück - eine Ganzzahl (Word).
    Dabei wird die Kommastelle aber nicht gerundet, sondern einfach abgeschnitten - willst du eine gerundete Ganzzahl, müsstest du zum Ergebnis noch 0,5 addieren.
    Willst du auch die Kommastelle haben, musst du die Funktion auch als Single oder Double deklarieren.

    mfg

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.03.2005
    Beiträge
    386
    Erstmal Danke für die Hilfe.

    Das obige Programm funktionierte nur mit Byte. Bei Singel kam nur Müll raus. zbsp. bei Zahl B1 = 10 und Zahl B2 = 20 war dann Variable A = 0 und B= 19.999.. und B3 = 0.

    Habe, da ich ja ohne euch eh nicht weiterkomme, aus Langeweile mal die im Lernpaket enthaltene Bascom Demo 1.11.9.1 deinstalliert und die neue Bascom Demo 2.0.5.0 von MCS heruntergeladen und installiert.

    Und jetzt geht der Code plötzlich. .
    Ist zum Wahnsinig werden, erst hat das von Franzis mitgelieferte USB Kabel eine Macke zeitweiliger Mikrounterbruch im Kabel (vorheriger Post) und jetzt noch das mit der Bascom Version.
    Gruss Robert

Ähnliche Themen

  1. Funktion gibt Funktion zurück... nächstes Problem
    Von Jaecko im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 19.12.2008, 09:51
  2. Funktion als Rückgabewert einer Funktion?
    Von Jaecko im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 08.09.2008, 11:25
  3. Welchen Variablentyp bei 'Textinhalten'....
    Von popi im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 16.06.2006, 19:23
  4. Nur Nummern in Array / nur Variablentyp byte als Array?
    Von Crashmichl im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 28.04.2006, 00:15
  5. Variablentyp von Ports und Pins
    Von timpleton im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 24.10.2005, 11:02

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •