Přeskočit na obsah

QBasic/Lekce 2

Z Wikiknih

Slouží 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

Slouží 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

[editovat | editovat zdroj]

Proměnná

[editovat | editovat zdroj]

Promě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

[editovat | editovat zdroj]
Tabulka typu proměnných
typ 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 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
[editovat | editovat zdroj]

Jednorozmě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.

DIM MojePole (10) AS 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
[editovat | editovat zdroj]

Ví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)

[editovat | editovat zdroj]

Matematické operátory a funkce

[editovat | editovat zdroj]
Matematické operátory
Operá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
Matematické funkce
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

[editovat | editovat zdroj]
LET 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)

Program č. 1

[editovat | editovat zdroj]

Pří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 | editovat zdroj]

Ú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

[editovat | editovat zdroj]

Zvyš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