logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Bascom i działania matematyczne na kilku zmiennych jednocześnie

bipolunipol 06 Sty 2012 18:57 2886 10
  • #1 10358004
    bipolunipol
    Poziom 19  
    Witam.
    W jaki sposób można w kompilatorze Bascom zapisywać w jednej linii więcej niż 2 operacje matematyczne - tj. dodawanie, odejmowanie, iloczyn 2 zmiennych itp.. Bo mam złożone działania, a dzielenie tego na poszczególne kroki mające za każdym razem tylko 2 zmienne które przykładowo mnożę jest bardzo uciążliwe i muszę stosować dodatkowe zmienne pomocnicze... Jest jakieś rozw. tego problemu?

    Już nawet przy bardzo prostych działaniach typu:
    a = b * (c + d)^2
    muszę wszystko rozpisywać na kroki i stosować pomocnicze zmienne by to obliczyć [bo wywala błąd 3 parameters expected].
    W tym wypadku można jednak jeszcze to zrobić. Jednak jeżeli takie działanie jest bardzo długie, mające wiele zmiennych i działań - jest to bardzo uciążliwe...
  • Pomocny post
    #3 10358343
    xury
    Specjalista automatyka domowa
    Taka niestety jest konstrukcja Bascom'a. Jeśli nie chcesz robić tego krok po kroku to możesz sobie stworzyć funkcję, która to będzie robić. Innej alternatywy nie ma... no chyba że zmiana języka na C.
  • Pomocny post
    #4 10358429
    janbernat
    Poziom 38  
    xury napisał:
    Innej alternatywy nie ma... no chyba że zmiana języka na C.

    Wszyskimi kończynami się pod tym podpisuję.
    Wydawało mi się że jak mam zakupiony Bascom to w C się będę tylko uczył nowego sposobu myślenia a w Bascomie pisał proste programy.
    Nic z tego- jak już przejdziesz na C to najprostszych programów nie napiszesz w Bascomie.
    Kup książkę Mirka a potem tmf-a.
    To jedyne wydatki- potem już wszystko darmo.
    Oczywiście można też bez wydatków- ale nieco trudniej.
  • Pomocny post
    #5 10358559
    piotr5000
    Poziom 21  
    Nie musisz stosować dodatkowych zmiennych pomocniczych
    Twój przykład: "a = b * (c + d)^2"
    musisz rozpisać
    a= c+d
    a= a*a
    a= a*b
    Pamiętaj jednak , że procesory ośmiobitowe nie zostały stworzone do obliczeń matematycznych i staraj się unikać działań na liczbach zmiennoprzecinkowych
  • #6 10358669
    bipolunipol
    Poziom 19  
    no ale tego typu działania rozkładać na poszczególne części to jest już trudniej i można się pogubić...
    a = a + 0,4*(1-y)* [1*(1-(tanh*(0,9*(a1*w1+a2*w2)))^2)]*b
  • Pomocny post
    #7 10358753
    dondu
    Moderator na urlopie...
    Doszedłeś do momentu, w którym było już wielu byłych Bascomowców.
    Teraz piszą w C i nie muszą się martwić o takie problemy jak Twój. Czas na zmianę języka i wzór będziesz mógł zapisać jak wyżej.
  • Pomocny post
    #8 10358777
    janbernat
    Poziom 38  
    No- ale nawiasy kwadratowe będziesz musiał zmienić na zwykłe.
  • #9 10359353
    bipolunipol
    Poziom 19  
    Zatem najlepszym rozwiązaniem jest przejście na język C.
  • Pomocny post
    #10 10359818
    mirekk36
    Poziom 42  
    bipolunipol napisał:
    Zatem najlepszym rozwiązaniem jest przejście na język C.


    Zdecydowanie tak, ale spokojnie to naturalna droga rozwoju. No i teraz nie jest już trak trudno przejść na ten cały C ;)
  • #11 10361381
    bipolunipol
    Poziom 19  
    W sumie twórca Bascoma mógłby poprawić tą niedogodność - powstają nowe wersje Bascoma ale nie widać w nich żadnych istotniejszych zmian (np. większej optymalizacji kodu, poprawy składni itp..)...
REKLAMA