- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 8 von 8

Thema: Subaufrufe nicht für arrays?

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.05.2004
    Beiträge
    209

    Subaufrufe nicht für arrays?

    Anzeige

    Praxistest und DIY Projekte
    Hallo Leute,

    ich habe eine Sub bei mir, die mit einer Integerzahl (a) etwas macht. Soweit so gut. Nun übergebe ich aber der Sub nicht a, sondern b(2) (z.B.)
    und schon streikt das Programm.

    Muß ich jetzt wirklich die Zahl aus dem Array auslesen, in eine Temp-Variable speichern und dann diese Temp-Variable der Sub übergeben?
    Hoffe mal nicht..ich habe es jetzt mal provisorisch so gemacht und dann geht es. aber ist halt mehr aufwand/speicherplatz...

    Vielen Dank

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    35
    Beiträge
    1.614
    könntest du mal dein programm posten bitte?
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.05.2004
    Beiträge
    209
    ja klar:
    sub mach_was(a:integer)
    dim a( as integer
    dim temp as integer

    sub mach_was (a:integer)
    locate 1,1
    lcd a
    end sub



    geht nicht:

    call mach_was(a(2))

    geht:

    temp=a(2)
    call mach_was(temp)



    nur das kann es irgendwie nicht so recht sein...

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    35
    Beiträge
    1.614
    ich glaube, das ist nicht machbar, das kann Bascom einfach nicht, musste in temp speichern, aber durch eine int geht die welt nicht unter oder?
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.05.2004
    Beiträge
    209
    naja, mach das mal 30mal in einem ausgereiztem quellcode. und 100,1% compilat passt nicht, 99,9% aber schon.
    da kann eine anweisung entscheiden, ob das projekt geht, oder von vorne angefangen wird....

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    35
    Beiträge
    1.614
    hab ich schon öfters ^^ aber du brauchst ja die var nur einmal, und dann immer nur zuweisen, das verbraucht eine instruktion
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  7. #7
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Du kannst auch den Tab-Index übergeben
    Code:
    dim array(8) as integer
    call lcd_int(5)
    ......
    sub lcd_int(byval idx as byte)
      lcd array(idx)
    end sub
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  8. #8
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Zum Code-sparen ein tip: subroutinen mit argumenten brauchen mächtig flash:
    Wenn eine sub nicht rekursiv oder reentrant sein muss:
    Code:
    dim array(8) as integer 
    dim param as byte
    param = 5
    gosub  lcd_int
    ...... 
    lcd_int:
      lcd array(param) 
     return
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress