Archiv verlassen und diese Seite im Standarddesign anzeigen : Rechnung in Boolschem Ausdruck
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:
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
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)
Hallo!
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:
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
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...
Upps, da haben Picknick und meinereiner zur gleichen Zeit das gleiche getippt :-).
Grüße von einem zu langsamen Henrik
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
..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.
Was is jetzt passiert ?
@Static: Ich fürchte, ich hab in ersten Demenz-Anzeichen deinen Post niedergeschrieben :Haue
Bitte verzeih mir :-({|=
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.