BASIC - Základní vlastnosti
Konstanty
Proměnné
Číselné i znakové proměnné mohou být jednoduché nebo mohou tvořit tzv. pole, tj. indexové proměnné. Identifikátor /jméno/ proměnné mohou být jeden až dva znaky, první musí být písmeno. Identifikátor řetězcové proměnné je doplněn znakem $. Identifikátor indexové proměnné /pole/ je doplněn indexem, určujícím souřadnice polohy proměnné v poli.
Jednoduchá proměnná je definována prvním příkazem, který ji přiřazuje hodnotu /INPUT, LET, FOR/. Je-li použit identifikátor proměnné, které nebyla přiřazena hodnota, Basic ji vynuluje.
Pole je množina proměnných stejného typu /znakových, číselných/ se společným jménem, za nímž pro rozlišení prvků uvádíme v kulatých závorkách index - lib. výraz, který udává pozici prvku v poli. Není-li hodnota výrazu celé číslo, Basic ji upraví odříznutím desetinné části. Prvky polí jsou vždy číslovány od nuly.
XX$(3) třetí prvek jednorozměrného řetězcového pole XX$
A0(0,6) prvek v nultém řádku a šestém sloupci pole A0
MN(I,J-3,3*LOG(X)) je prvek trojrozměrného pole MN
proměnná X, pole X, proměnná X$ a pole X$ jsou čtyři různé proměnné, je však lépe toho nevyužívat.
Pole je definováno deklarací příkazem DIM nebo i implicitně prvním přiřazením hodnoty libovolnému prvku pole /ostatní jsou u číselných polí vynulovány, a znakových naplněny prázdnými řetězci.
Operátory a jejich priorita
10 indexování polí a závorky
9 funkce
8 ^ umocňování
7 - záporné znaménko
6 * / násobení, dělení
5 + - sečítání, odčítání
4 = < > <= >= <> porovnání
3 NOT negace
2 AND log. součin
1 OR log. součet
Aritmetické výrazy
obsahují číselné konstanty, proměnné, zápisy funkcí a aritmetické operátory. Při vyčíslování jejich hodnoty se postupuje podle priority od nejvyšší k nejnižší, při stejné prioritě se postupuje ve výrazu zleva doprava. Za aritmetický výraz lze považovat i jedinou konstantu, proměnnou či zápis funkce.
Znakové výrazy
se skládají ze znakových proměnných a konstant, případně zápisů těch funkcí, jejichž výsledkem je znak či řetězec znaků. Jedinou přípustnou operací je +, tj. spojení řetězců.
Relace
je porovnání dvou výrazů stejného typu. Nejprve se určí výsledná hodnota obou výrazů a výsledky se porovnají /číselně, u znakových výrazů abecedně dle kódu ASCII/. Konečným výsledkem relace je logická hodnota ano /pravda,true/ nebo log. hodnota ne /nepravda,false/.
=/<> rovno/nerovno </> menší/větší <=/>= menší/větší n. rovno
Logické výrazy
vznikají spojováním relací /případně ve smíšených výrazech též číselných konstant, proměnných a funkcí/ logi. operátory :
A AND B = pravda pro oba operandy A i B pravdivé, nepravda pro aspoň jeden operand nepravdivý.
A OR B = pravda pro aspoň jeden operand pravdivý, nepravda pro oba operandy nepravdivé
NOT A = pravda pro nepravdivé A, nepravda pro pravdivé A
Jsou-li operandy logických výrazů pouze relace, je určení jednoduché. Basic však ve skutečnosti logické proměnné nezná, pracuje s hodnotami číselnými, a proto připouští na místech logických operandů nejen relace, ale i číselné výrazy. Při vyhodnocování postupuje tak, že hodnoty operandů převede fcí INT na celá čísla, vnitřně je zobrazí dvojkovým doplňkem a provede žádané log. operace. Negací tedy dělá jako jedničkový doplňek, takže např NOT 7 dává -8, NOT -1 dává 0 atd. Konečný výsledek se pak posuzuje jako pravda, je-li nenulový, a jako nepravda, je-li nulový. /7 i NOT 7 má logickou hodnotu pravda, proto je ve smíšených výrazech třeba značné opatrnosti !!!/ V příkazu IF se konečná hodnota výrazu použitého na místě podmínky už neupravuje funkcí INT, takže i nepatrná nenulová hodnota se posuzuje jako splněná podmínka, jde-li o výraz aritmetický.