Bascom - dlaczego nie wykonuje działań złożonych ?

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
matrix
Użytkownik
Posty: 1796
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Bascom - dlaczego nie wykonuje działań złożonych ?

Post autor: matrix » 22 wrz 2011, 10:41

Mam takie podstawowe pytanko dotyczące działań w bascomie. Dlaczego bascom nie wkonuje działań złożonych typu:

a = 100 -((b -50) * 2)

Bardzo ułatwiło by to pisanie niektórych programów z wykorzystaniem takich obliczeń. A może ja nie wiem jak to się pisze i kompilator wywala mi błąd.

Awatar użytkownika
Ertew
Użytkownik
Posty: 1414
Rejestracja: 03 lip 2005, 10:36
Lokalizacja: Leszno
Kontakt:

Post autor: Ertew » 22 wrz 2011, 10:53

Procesory nie wykonują skomplikowanych obliczeń.
Większość kompilatorów np. GCC rozbija skomplikowane obliczenia na proste działania wykonywane po kolei. Bascom tego nie rozbija na kroki, trzeba to zrobić samemu, podobnie jak robi się to w asemblerze.

Awatar użytkownika
kayron
Użytkownik
Posty: 2088
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 22 wrz 2011, 18:41

W sumie trzeba by powiedzieć że taką koncepcję przyjęli jego projektanci. Trochę dziwne bo nawet BASIC na C64 trawił takie zapisy. Ogólnie wadą BASCOMa jest:
- brak obliczeń w zapisie złożonym
- brak tablic wielowymiarowych
- brak struktur.

Awatar użytkownika
matrix
Użytkownik
Posty: 1796
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 22 wrz 2011, 21:03

Oczywiście nie ma że sobie nie poradziłem. Rozbiłem to już dawno na pojedyńcze obliczenia i osiągnąłem co chciałem, ale takie złożone obliczenie jest wygodniejsze. Poza tym jak kolega wyżej pisze:
kayron pisze:Trochę dziwne bo nawet BASIC na C64 trawił takie zapisy.
Pamiętam czasy C64 i radził sobie świetnie z takimi obliczeniami w basic'u.

ODPOWIEDZ