QBasic/Lekce 2
Příkazy
editovatLET
editovatSlouží k zadávání hodnot do proměnných a k psaní matematických výrazů (vzorců). V prostředí QBasic je příkaz nepovinný, lze ho tedy vynechat a rovnou psát příslušný matematický výraz (vzorec), nebo výraz pro uložení hodnoty do proměnné. Například pro předpis LET A=30
lze napsat zjednodušeně jako A=30
Příklad použití příkazu LET
LET X=36
LET Y=48
LET A$="Ahoj"
LET I=I+1
LET R=(T*R)-7
Ten samý příklad použití s vynecháním příkazu LET
X=36
Y=48
A$="Ahoj"
I=I+1
R=(T*R)-7
DIM
editovatSlouží k deklaraci proměnné. Syntaxe příkazu: DIM NázevPromenne AS TypPromenne
Příklad použití:
DIM Jmeno AS STRING
DIM Cislo1 AS DOUBLE
DIM Cislo2 AS DOUBLE
DIM X AS INTEGER
DIM Y AS INTEGER
DIM JednoRozmernePole(10) AS STRING
DIM DvouRozmernePole (100,100) AS INTEGER
Teoretická témata
editovatProměnná
editovatProměnná symbolizuje název pomyslného šuplíku, do kterého je rezervován kus paměti. V prostředí QBasic se proměnná deklaruje pomocí příkazu DIM NázevPromenne AS TypPromenne
, kde NázevPromenne je jméno (tedy pojmenování) proměnné a TypPromenne udává typ proměnné (Celé číslo, desetinné číslo, text atd.). Tento způsob se používá i ve Visual Basic.
Deklarování proměnné lze vysvětlit jako definování, vytvoření nebo zavedení proměnné. V prostředí QBasic ji však nemusíme vždy deklarovat předem, programovací jazyk jej dokáže deklarovat v momentu jejich prvního použití, například LET A=30
Chápe QBasic, že se jedná o celočíselnou proměnou (INTEGER), například LET A$="Ahoj"
, chápe QBasic, že se jedná o proměnnou typu text (STRING). Všimněte si textová proměnná se od celočíselného lišila přidáním příznaku $ (dolaru), lze jej vytvořit stiskem kláves alt+36.
Typy proměnných
editovattyp proměnné | znak | klávesová zkratka | rozsah hodnot | paměť | popis |
---|---|---|---|---|---|
INTEGER | % | alt+37 | -32768 až +3276 | 2-Byte | Celá čísla |
LONG | & | alt+38 | -2 147 483 648 až +2 147 483 647 | 4-Byte | Celá čísla - dlouhý rozsah |
SINGLE | ! | alt+33 | +2,8*10-45 až +3,4*1038 -2,8*10-45 až -3,4*1038 |
4-Byte | desetinné číslo s pohyblivou řadovou čárkou / 7 desetinných míst |
DOUBLE | # | alt+35 | +4,9*10-324 až +1,8*10308 -4,9*10-324 až -1,8*10308 |
8-Byte | desetinné číslo s pohyblivou řadovou čárkou dvojité přesnosti /16 desetinných míst |
STRING | $ | alt+36 | znaky | x | řetězová proměnná s proměnlivou délkou |
STRING*X | $ | alt+36 | znaky | x | řetězová proměnná pevné délky, X= počet znaků |
Pole
editovatPole je datová struktura skládající se z prvků stejného typu (například: všechny prvky jsou typu INTEGER nebo všechny prvky jsou typu STRING), tyto prvky se od sebe vzájemně odlišují pomocí indexu (index připomíná pořadové číslo, které slouží jako adresa prvku). Pro ukládání sady (řady) dat stejného typu je užití pole efektivněji, než užití více proměnných stejného typu.
Pole patří mezi strukturované typy dat.
Jednorozměrné pole
editovatJednorozměrné pole je řada proměnných s jedním indexem určitého rozsahu.
Deklarace jednorozměrného pole:
DIM MojePole (10) AS INTEGER
Deklarace říká, že se jedná o proměnu s názvem MojePole jenž je polem s jedním indexem o rozsahu 0-10 a proměnné jsou typu INTEGER.
index (0) | index (1) | index (2) | index (3) | index (4) | index (5) | index (6) | index (7) | index (8) | index (9) | index (10) |
---|---|---|---|---|---|---|---|---|---|---|
hodnota | hodnota | hodnota | hodnota | hodnota | hodnota | hodnota | hodnota | hodnota | hodnota | hodnota |
Vkládat hodnoty do paměti lze tímto způsobem (příkaz LET lze vynechat):
LET MojePole(0)=25
LET MojePole(1)=14
LET MojePole(2)=18
LET MojePole(3)=29
LET MojePole(4)=88
LET MojePole(5)=151
LET MojePole(6)=25
LET MojePole(7)=107
LET MojePole(8)=88
LET MojePole(9)=115
LET MojePole(10)=118
Vícerozměrné pole
editovatVícerozměrné pole má dvě nebo více indexů.
DIM A(10,10) AS STRING
DIM B(10,10,10) AS STRING
DIM C(50,50,50,25,25) AS INTEGER
Vkládat hodnoty lze tímto způsobem (příkaz LET lze vynechat):
LET A(0,0)="Alfa"
LET A(1,0)="Beta"
LET A(2,0)="Gama"
LET A(3,0)="Delta"
LET A(4,0)="Leden"
LET A(0,1)="Unor"
LET A(0,2)="Brezen"
LET A(0,3)="Duben"
LET A(8,10)="Kveten"
LET A(4,10)="Cerven"
Matematické výrazy (vzorce)
editovatMatematické operátory a funkce
editovatOperátor | Příklad užití | Popis |
---|---|---|
+ | A+B | sčítání |
- | A-B | odčítání |
* | A*B | násobení |
/ | A/B | dělení |
\ | A\B | zbytek po dělení |
^ | 10^2 | mocnina |
Funkce | Příklad užití | Popis |
---|---|---|
ABS | ABS(-15) | absolutní hodnota |
ATN | ATN(a) | arkus tangens |
COS | COS(a) | cosinus v radiánech |
SIN | SIN(a) | sinus v radiánech |
LOG | LOG(a) | logaritmus |
EXP | EXP(a) | exponenciál |
RND | A=INT(RND(1)*10+1) | náhodné číslo |
SQR | SQR(a) | druhá odmocnina |
INT | INT(3.147) | zobrazí pouze celou část čísla |
Matematika v QBasic
editovatLET a=(x*y)-7
| |
LET S=a^2
| |
LET S=(a*v)/2
| |
LET S=SQR(q^2-p^3)
nebo LET S=(q^2-p^3)^(1/2)
protože lze užít vzorce | |
LET S=(q^2-p^3)^(1/3)
|
Programy
editovatProgram č. 1
editovatPříklad užití proměnných (příkaz LET
lze vynechat)
CLS
LET a=13
LET b=9
LET c=24
LET a$="Windows 7, 64 Bit Systém"
LET s1=a+b
LET s2=a-b
LET s3=a*b
LET s4=a/b
LET s5=a^2
LET s6=b^2
LET s7=SQR(s5-s6)
PRINT a
PRINT b
PRINT c
PRINT
PRINT a+b+c
PRINT a-b-c
PRINT a*b*c
PRINT a/b
PRINT
PRINT s1
PRINT s2
PRINT s3
PRINT s4
PRINT "Vypis promene s5=";s5
PRINT "Vypis promene s6=";s6
PRINT "Druha odmocnina z s5-s6=";s7
PRINT a$
Ten samý program, ale s vynecháním příkazu LET
CLS
a=13
b=9
c=24
a$="Windows 7, 64 Bit Systém"
s1=a+b
s2=a-b
s3=a*b
s4=a/b
s5=a^2
s6=b^2
s7=SQR(s5-s6)
PRINT a
PRINT b
PRINT c
PRINT
PRINT a+b+c
PRINT a-b-c
PRINT a*b*c
PRINT a/b
PRINT
PRINT s1
PRINT s2
PRINT s3
PRINT s4
PRINT "Vypis promene s5=";s5
PRINT "Vypis promene s6=";s6
PRINT "Druha odmocnina z s5-s6=";s7
PRINT a$
Výstup na obrazovce po spuštění programu
13 9 24 46 -20 28008 1.444444 22 4 117 1.444444 vypis promene s5= 169 vypis promene s6= 81 Druha odmocina z s5-s6= 9.380832 Windows 7, 64 Bit System
Program č. 2
editovatÚhledné zobrazení proměnných a výpočtů (příkaz LET
lze vynechat)
CLS
LET a=15
LET b=29
LET c=3
PRINT "a=";a
PRINT "b=";b
PRINT "c=";c
PRINT
PRINT "a+b=";a+b
PRINT "a-b=";a-b
PRINT "a*b=";a*b
PRINT "a/b=";a/b
PRINT
PRINT "(a+b)^2=";(a+b)^2
PRINT "(a+b)^c=";(a+b)^c
Ten samý program bez použití příkazu LET
CLS
a=15
b=29
c=3
PRINT "a=";a
PRINT "b=";b
PRINT "c=";c
PRINT
PRINT "a+b=";a+b
PRINT "a-b=";a-b
PRINT "a*b=";a*b
PRINT "a/b=";a/b
PRINT
PRINT "(a+b)^2=";(a+b)^2
PRINT "(a+b)^c=";(a+b)^c
Výstup na obrazovce po spuštění programu
a= 15 b= 29 c= 3 a+b= 44 a+b=-14 a*b= 435 a/b= .5172414 (a+b)^2= 1936 (a+b)^c= 85184
Program č. 3
editovatZvyšování proměnné v krocích
CLS
LET a=10
PRINT "a=";a
LET a=a+1
PRINT "a=";a
LET a=a+1
PRINT "a=";a
Ten samý program s vynecháním příkazu LET
CLS
a=10
PRINT "a=";a
a=a+1
PRINT "a=";a
a=a+1
PRINT "a=";a
Výstup na obrazovce po spuštění programu
a=10 a=11 a=12