p°edchozφ lekce (1.10) | obsah kurzu | nßsledujφcφ lekce (1.12) |
Co je Φφslo, vφ urΦit∞ ka₧d². ╚φslo vÜak m∙₧e b²t pouze celΘ, p°φpadn∞ m∙₧e
obsahovat takΘ desetinnou Φßst. Znakov² °et∞zec p°edstavuje seskupenφ libovoln²ch znak∙
- pφsmen. Logickß hodnota uchovßvß v²sledky dotazu a m∙₧e nab²vat pouze hodnot
pravda nebo nepravda. Zßkladnφ p°ehled mo₧n²ch typ∙ prom∞nn²ch uvßdφ nßsledujφcφ
p°ehled:
INTEGER - celoΦφseln² typ pro celß Φφsla
REAL - Φφslo obsahujφcφ desetinnou Φßst
STRING - °et∞zec znak∙ relativn∞ neomezenΘ dΘlky
CHAR - jeden alfanumerick² znak
BOOLEAN - logickß prom∞nnß typu BOOLEAN (True/False)
VARIANT - prom∞nnß s variabilnφm obsahem (nap°. Φφslo, °et∞zec)
ARRAY - prom∞nnß strukturovanΘho typu s indexov²m p°φstupem
Datov² typ INTEGER je urΦen pro celß kladnß i zßpornß Φφsla. Neobsahuje proto
desetinnou Φßst.
Datov² typ REAL se pou₧φvß pro vyjßd°enφ hodnot s pohyblivou °ßdovou Φßrkou. To znamenß ₧e obsahuje desetinnou Φßst Φφsla. Vznikß matematick²m d∞lenφm Φφsla typu integer, jeho₧ v²sledkem nenφ celΘ Φφslo.
Datov² typ CHAR je urΦen pro ulo₧enφ jednoho znaku. ZnakovΘ konstanty se vyjad°ujφ tak, ₧e se znak uzav°e do apostrof∙, nap°φklad 'A', '1', '&'. Zßpis '1' v tomto p°φpad∞ znamenß znak pro vyjßd°enφ Φφslice jedna nikoli Φφselnou hodnotu.
Datov² typ STRING p°edstavuje posloupnost znak∙ typu CHAR bezprost°edn∞ za sebou. Vytvß°φ tφm tzv. °et∞zec. ╪et∞zec musφ b²t ohraniΦen apostrofy nebo dvojitou uvozovkou. ╪et∞zec typu string m∙₧e mφt teoreticky neomezenou dΘlkou. Prakticky je vÜak omezen kapacitou volnΘ pam∞ti. Prov∞°ovßno bylo nap°φklad pou₧itφ °et∞zc∙ o dΘlce tΘm∞° 3 Mb.
Datov² typ BOOLEAN mß pouze dv∞ mo₧nΘ hodnoty a to True (pro stav pravda) a False (pro stav nepravda). Lze mu proto v programu p°i°adit bu∩ konkrΘtnφ hodnotu True nebo False, p°φpadn∞ v²sledek vyhodnocenφ logickΘho v²razu. LogickΘ v²razy najdou uplatn∞nφ zejmΘna v podmφn∞n²ch p°φkazech, p°φkazech cyklu apod. a probereme si je v n∞kterΘ z dalÜφch lekcφch.
Nejzajφmav∞jÜφ je typ VARIANT, kter² m∙₧e obsahovat libovolnou prom∞nou v²Üe uvedenΘho typu. Krom∞ ji₧ uveden²ch typ∙ m∙₧e ale obsahovat i pole prom∞nn²ch, se kter²mi je mo₧nΘ provßd∞t jednoduÜe rozsßhlΘ v²poΦty za pomoci indexovΘho p°φstupu. VÜechny prom∞nnΘ jsou ve skuteΦnosti vnit°n∞ typu VARIANT, doporuΦuje se ale zachovat pravidlo rozliÜovßnφ typu prom∞nn²ch z d∙vodu p°ehlednosti programu a mo₧nΘho pozd∞jÜφho d∙sledn∞jÜφho vy₧adovßnφ dodr₧enφ pou₧φvanΘho typu prom∞nn²ch.
Prom∞nnß typy ARRAY p°edstavuje datovou strukturu polo₧ek, kterΘ se vzßjemn∞ odliÜujφ pomocφ indexu. Jako index pole slou₧φ hodnoty urΦitΘho typu, kter² naz²vßme typem indexu pole a kter² je spolu s typem slo₧ek pole stanoven popisem typu pole. PoΦet slo₧ek pole je dßn a₧ dßle v programu p°i inicializaci pole.
V²Üe uveden² seznam typ∙ prom∞nn²ch slou₧φ pouze jako p°ehled mo₧n²ch hodnot. Ve skuteΦnosti jsou vÜechny prom∞nnΘ v jazyce BONANZA zpracovßvßny jako typ VARIANT. To znamenß, ₧e pou₧it² typ prom∞nnΘ zßvisφ ve skuteΦnosti na obsahu prom∞nnΘ. SouΦasn∞ s tφm je pro ka₧dou prom∞nnou podle jejφho obsahu urΦena mno₧ina mo₧n²ch operacφ s obsahem prom∞nnΘ. Nenφ nap°φklad mo₧nΘ sΦφtat Φφselnou prom∞nnou s °et∞zcovou prom∞nnou.
Prom∞nnΘ v jazyce BONANZA nemusφ b²t v programu na rozdφl od jin²ch jazyk∙ povinn∞ deklarovßny. To znamenß, ₧e nemusφ b²t p°ed sv²m pou₧itφm uvedeny v seznamu pou₧φvan²ch prom∞nn²ch. P°esto je mo₧nΘ pro zv²Üenφ p°ehlednosti programu prom∞nnΘ deklarovat pomocφ p°φkazu Dim. Prom∞nnß je deklarovßna automaticky p°i svΘm prvnφm pou₧itφ. Pokud vÜak vy₧adujete povinnou deklaraci prom∞nn²ch je mo₧nΘ pou₧φt v prvnφm °ßdku programu p°φkaz Option Explicit, dφky kterΘmu bude v programu vy₧adovßna povinnß deklarace prom∞nn²ch.
Hodnotu prom∞nnΘ stanovφme jejφm p°i°azenφm. To se provede pomocφ znaku rovnß se (=). Na levΘ stran∞ od rovnφtka je p°itom uvedena prom∞nnß, jejφ₧ hodnota mß b²t zm∞n∞na a na stran∞ pravΘ je uvedena p°i°azovanß hodnota. Hodnotu m∙₧eme uvΘst bu∩ p°φmo (Φφslo, °et∞zec) nebo jako v²raz. Co je to v²raz si p°esn∞ji probereme v dalÜφch lekcφch. Nynφ bude staΦit, pokud si budete pamatovat, ₧e v²raz m∙₧e b²t nap°φklad matematick² v²poΦet.
Deklarovanß prom∞nnß mß ihned po deklaraci v₧dy nulov², Φφseln² obsah. A₧ po p°i°azenφ konkrΘtnφ hodnoty se vnit°n∞ jejφ typ m∞nφ podle zadanΘho obsahu. P°i°adφte-li prom∞nnΘ °et∞zec, bude obsahovat alfanumerickΘ znaky. Po dosazenφ ΦφselnΘ hodnoty bude prom∞nnß bu∩ typu Integer (celΘ Φφslo) nebo Real (Φφslo s desetinami). SystΘm BONANZA si takto sßm zajiÜ¥uje vnit°nφ reprezentaci prom∞nn²ch. Vy sami budete muset pouze zajistit to, aby jste neprovßd∞li nap°φklad matematick² v²poΦet d∞lenφ s °et∞zcovou prom∞nnou.
Dosud jsme sestavovali naÜe programy tak, ₧e vykonßvaly pouze zadanou posloupnost akcφ bez mo₧nosti vynechßnφ n∞kter²ch akcφ. V nßsledujφcφ lekci se proto seznßmφme s mo₧nostφ rozd∞lenφ Φinnosti programu na zßklad∞ vyhodnocenφ zadanΘ podmφnky.
p°edchozφ lekce (1.10) | obsah kurzu | nßsledujφcφ lekce (1.12) |