- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 9 von 9

Thema: Rechnung in Boolschem Ausdruck

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.01.2004
    Alter
    36
    Beiträge
    121

    Rechnung in Boolschem Ausdruck

    Anzeige

    Powerstation Test
    Ich frage mich schon länger, ob es in Bascom tatsächlich keine möglichkeit gibt in der "Bedingung" von einer If Verzweigung z.b ein Produkt aus 2 Zahlen mit einer anderen zu vergleichen.
    Also z.B:
    Code:
    If I*K > 0 Then ... EndIf
    Da bekomme ich immer als Fehlermeldung "3 Paramteres expected"
    Muss das anders geschrieben werden, oder geht so etwas einfach nicht?

    Des weiteren wundere ich mich warum Bascom mit der Parameterübergabe an Subs nicht klar kommt. Ich habe z.B. eine Sub Goxy(xn As Integer , Yn As Integer), welche auch schon länger sehr gut funktioniert hat. Doch nachdem ich ein bisschen Code und ein paar Variablen mehr hinzugefügt habe, funktioniert die Paramterübergabe von Xn und Yn nicht mehr. D.h. es kommt nur noch 0 an. Liegt das daran, dass der Ram irgendwann zu klein wird und Bascom mir keine Warnung gibt?
    Dazu muss ich sagen, dass ich einen Mega32 benutze und mein Programm schon ~1000 Zeilen hat.

    Ich würde mich sehr freuen, wenn mir da jemand einen Tip geben kann

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    1) du mußt wohl i*k in eine temporäre Variable legen und diese dann zum Vergleichen nehmen.
    temp = i * k
    if temp > 0 then ....

    sub-Parameter: du mußt die Werte für
    $HWSTACK =
    $SWSTACK =
    erhöhen, mit den defaults kommt man nicht weit.
    ( --> Help)
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.12.2004
    Alter
    71
    Beiträge
    277

    Re: Rechnung in Boolschem Ausdruck

    Hallo!

    Zitat Zitat von Static
    Ich frage mich schon länger, ob es in Bascom tatsächlich keine möglichkeit gibt in der "Bedingung" von einer If Verzweigung z.b ein Produkt aus 2 Zahlen mit einer anderen zu vergleichen.
    Also z.B:
    Code:
    If I*K > 0 Then ... EndIf
    Da bekomme ich immer als Fehlermeldung "3 Paramteres expected"
    Muss das anders geschrieben werden, oder geht so etwas einfach nicht?
    So geht das in Bascom leider nicht. Leider kann Bascom mit mathematischen Ausdrücken nichts anfangen.
    Es gilt:
    Immer hübsch eine Rechenoperation pro Zeile. In Deinem Fall sähe das dann so aus:

    Temp = K * I
    If Temp > 0 Then
    ......
    End If
    ......

    ...... funktioniert die Paramterübergabe von Xn und Yn nicht mehr. D.h. es kommt nur noch 0 an. Liegt das daran, dass der Ram irgendwann zu klein wird und Bascom mir keine Warnung gibt?
    Dazu muss ich sagen, dass ich einen Mega32 benutze und mein Programm schon ~1000 Zeilen hat.
    Da sollte das vergrößern von Hard- Soft- und Framestack helfen (in den Optionen).

    Viele Grüße
    Henrik

  4. #4
    Gast
    danke für eure Hilfe. Echt schade, dass man immer nur eine Rechenoperation machen kann, sonst wär mein Programm bestimmt 30% kürzer und schöner lol.
    Mal sehn ob das mit der Sub so funktioniert...

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.12.2004
    Alter
    71
    Beiträge
    277
    Upps, da haben Picknick und meinereiner zur gleichen Zeit das gleiche getippt .

    Grüße von einem zu langsamen Henrik

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.12.2004
    Alter
    71
    Beiträge
    277
    Zitat Zitat von Anonymous
    danke für eure Hilfe. Echt schade, dass man immer nur eine Rechenoperation machen kann, sonst wär mein Programm bestimmt 30% kürzer und schöner lol.
    Schöner und auch besser lebar ohne Zweifel. Kürzer nicht unbedingt (im Kompilat). Der Compiler muss die Rechenschritte sowieso so auflösen, wie Bascom das vom Anwender händisch fordert. Recht hast Du aber natürlich trotzdem. Schön wäre es schon, wenn diese nach meinem Ermessen einzige echte Macke beseitigt würde.

    Grüße
    Henrik

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.01.2004
    Alter
    36
    Beiträge
    121
    ..von der Dateigröße würde sich natürlich nichts ändern.
    Ganz stimmt das ja nicht, denn die Temp-Variable wird vom Bascom voll zurckgeschrieben, und dann zum Weiterechnen wieder von dort geholt. In vielen Fällen könnt er sich das sparen, wenn er gleich damit weitermachen würde oder könnte. Ein paar Statements jedesmal wären es ja doch.

  8. #8
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Was is jetzt passiert ?
    @Static: Ich fürchte, ich hab in ersten Demenz-Anzeichen deinen Post niedergeschrieben

    Bitte verzeih mir
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  9. #9
    Gast
    lol, gut gemacht

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress