-         

Ergebnis 1 bis 5 von 5

Thema: Variablen nacheinander durchlaufen und berechnen?

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    09.10.2004
    Beiträge
    54

    Variablen nacheinander durchlaufen und berechnen?

    Anzeige

    Hallo,

    ich habe folgendes Problem:

    Ich springe im Programm in eine Sub, dort wird eine Berechnung mit mehreren Variablen durchgeführt. Jetzt will ich aber nicht für jede Variable eine eigene Berechnung ins Programm schreiben, sondern das ganze so lösen, dass in der Sub eine Schleife läuft, die zu Beginn die erste Variable in die Berechnung schickt, beim zweiten Durchlauf die zweite Variable usw., bis alle durchlaufen und berechnet sind.
    Ist das überhaupt möglich? Wenn ja, wie?

    Ich habs schon mit Arrays probiert, aber bis jetzt noch recht erfolglos. Der Code soll ja möglichst klein bleiben.

    Bestimmt könnte man das mit einer Zählvariable und einer anschließenden Fallabfrage machen, aber das wäre mir eigentlich schon zu viel Code.

    Vielen Dank.

    Grüße
    Enrico

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    klar ist das möglich.
    Du hast mehrere Möglichkeiten, aber die eleganteste ist vermutlich
    über ne Funktion, also ne Funktion bauen, die ne Rechenoperation
    anhand der übergebenen Parameter durchführt und das Ergebnis zurückgibt.
    Das kannste dann recht einfach im Code einbinden:

    y = funktion_x(x)
    x= Übergabeparameter
    y= Rückgabewert

    funktion funktion_x(tempwert)
    tempwert=tempwert*tempwert
    funktion_x=tempwert
    end function

    Ich weiß, ist pseudocode aber so in etwa geht das dann ... schau mal in die Bascom Hilfe über function.
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    Ich habs schon mit Arrays probiert, aber bis jetzt noch recht erfolglos. Der Code soll ja möglichst klein bleiben.
    Was genau hat denn mit den Arrays nicht geklappt? Ich programmiere zwar erst seit ein paar Monaten mit BASCOM, habe aber genau so eine Aufgabe mit Arrays problemlos gelöst bekommen (EINE Subroutine, die einen Haufen Variablen nacheinander auf die selbe Art und Weise durchrechnet).

    Auf die Code-Größe habe ich zwar nicht geachtet, kleiner geht´s aber m.E. nicht. Wie hast Du´s denn konkret versucht?

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    09.10.2004
    Beiträge
    54
    Hallo,

    danke für eure Antworten.
    Also das mit der Funktion ist mir schon klar, das roblem ist, das ich mehrere Variablen habe.
    Konkret habe ich 4 Byte-Variablen, die ich gern in einem Zuge an eine Funktion oder Sub übergeben möchte:
    Code:
    Call T_berechnung(A , B , C , D)
    A bis D sind also die Variablen, die sich ständig ändern.

    Meine Sub sieht bis jetzt ungefähr so aus:

    Code:
    Sub T_berechnung(byref A As Byte, B As Byte, C As Byte, D As Byte)
    
       Berechnung...
    
    End Sub

    Die Variablen sollen jetzt nacheinander berechnet und der berechnete Wert wieder zurück in dieselbe Variable geschrieben werden.
    Also z.B. Variable A wird berechnet und das Ergebnis wird in Variable A gespeichert, danach wird Variable B berechnet und das Ergebnis in Variable B gespeichert, bis alle durchlaufen sind.

    Nun möchte ich aber nicht vier mal zur Berechnung in die Sub springen, sondern halt alle Werte auf einmal berechnen und dann zurück springen.

    Mein Problem ist jetzt, wie sage ich, dass nachdem die Variable A berechnet wurde dieselbe Berechnung mit Variable B...D gemacht werden soll?

    Mit den Arrays habe ich versucht die Variablen zu speichern, hat auch funktioniert, nur weiß ich dann wieder nicht, wie ich ein Feld höher zähle und neu rechne.

    Vielen Dank.

    Grüße
    Enrico

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.10.2005
    Ort
    Berlin
    Beiträge
    116
    hi,
    warum funktioniert denn dein array nicht?

    wenn ich mich nicht irre müsste das doch einfach so irgendwie aussehen oder

    Code:
    dim var(4) as byte
    dim index as byte
    dim ergebnis as ???
    
    for index = 1 to 4
      ergebnis = var(index)     'hier die berechnung
    next index
    evt. auch for 0 to 3, weiß jetzt nicht wo der anfängt im array bei 0 oder 1.

    mfg milkbubi

    edit: Hab noch nachgesehen wird von 1 an adressiert.

Berechtigungen

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