Funkcje w bascomie

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
Awatar użytkownika
Aro
Użytkownik
Posty: 677
Rejestracja: 30 paź 2006, 18:49
Lokalizacja: Świerczyniec | Wrocław
Kontakt:

Funkcje w bascomie

Post autor: Aro » 29 sty 2007, 15:01

Czy da się w bascomie zrobic funkcję, która zwraca wartości poprzez parametry. Przykład:

Kod: Zaznacz cały

dim a as byte
dim b as byte
a=x
b=y
funkcja(a,b)
'w tym miejscu 'a' wynosi 2x, a 'b' wynosi x/2

Function funkcja(n,m)
n=n*2
m=m/2
End Function
W uproszczeniu to tak wygląda. Wiem tylko że w C można coś takiego zrobic.

ZbeeGin

Post autor: ZbeeGin » 29 sty 2007, 17:42

Funkcja w BASCOM Basic pozwala zwrócić bezpośrednio jedną wartość - wtedy to nazwie funkcji przypisywana jest wartość, przekazana później w jej wywołaniu. Ale! Jeśli parametry n i m będą przekazane jako ByRef to każda zmiana tych zmiennych wewnątrz funkcji będzie widziana na zewnątrz. Tak samo będzie z Sub zatem myślę, że powinno to wyglądać tak:

Kod: Zaznacz cały

Declare Sub Fun(byref N As Byte , Byref M As Byte)

Dim A As Byte
Dim b As Byte

A = 10
B = 20
Fun A , B
' w tym miejscu 'a' wynosi 2x, a 'b' wynosi x\2
Print a; " - "; b
Stop

Sub Fun(byref N As Byte , Byref M As Byte)
  N = N * 2
  M = M \ 2
End Sub

End

Awatar użytkownika
Aro
Użytkownik
Posty: 677
Rejestracja: 30 paź 2006, 18:49
Lokalizacja: Świerczyniec | Wrocław
Kontakt:

Post autor: Aro » 29 sty 2007, 18:52

Działa :grin: Dzięki :grin: :grin: :grin:

ODPOWIEDZ