Proměnné a datové typy

(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Operace s proměnnými a sestavování výrazů)
(Operace s proměnnými a sestavování výrazů)
Řádka 106: Řádka 106:
 
**< > <= >= != ==
 
**< > <= >= != ==
 
**arg1 < arg2 výsledek je true , je-li arg1 menší než arg2 , jinak false
 
**arg1 < arg2 výsledek je true , je-li arg1 menší než arg2 , jinak false
arg1 > arg2 výsledek je true , je-li arg1 větší než arg2 , jinak false
+
**arg1 > arg2 výsledek je true , je-li arg1 větší než arg2 , jinak false
arg1 = arg2 výsledek je true , je-li arg1 větší nebo roven arg2 , jinak false
+
**arg1 = arg2 výsledek je true , je-li arg1 větší nebo roven arg2 , jinak false
arg1 = arg2 výsledek je true , je-li arg1 roven arg2 , jinak false
+
**arg1 = arg2 výsledek je true , je-li arg1 roven arg2 , jinak false
arg1 arg2 výsledek je true , když arg1 není roven arg2 , jinak false
+
**arg1 arg2 výsledek je true , když arg1 není roven arg2 , jinak false
Like prověří , zda se v řetězci nachází určitý vzorek
+
**Like prověří , zda se v řetězci nachází určitý vzorek
Is prověří ,zda existuje objektová proměnná daného typu , nebo zda dvě  
+
**Is prověří ,zda existuje objektová proměnná daného typu , nebo zda dvě  
objektové proměnné obsahují odkaz na stejný objekt.
+
**objektové proměnné obsahují odkaz na stejný objekt.
  
 
*Logické  
 
*Logické  
! && ||
+
**! && ||
arg1 AND arg2 logický součin obou argumentů
+
**arg1 AND arg2 logický součin obou argumentů
arg1 OR arg2 log. součet obou argumentů
+
**arg1 OR arg2 log. součet obou argumentů
arg1 XOR arg2 výlučně OR (nonekvivalence) argumentů
+
**arg1 XOR arg2 výlučně OR (nonekvivalence) argumentů
NOT arg negace arg.
+
**NOT arg negace arg.
arg1 IMP arg2 implikace arg.
+
**arg1 IMP arg2 implikace arg.
arg1 EQV arg2 ekvivalence arg.
+
**arg1 EQV arg2 ekvivalence arg.
  
 
*Bitové
 
*Bitové
**př.
+
**bit1 bit2 výsledek
IMP
+
**0 0 1  
bit1 bit2 výsledek
+
**0 1 1
0 0 1  
+
**1 0 0
0 1 1
+
**1 1 1
1 0 0
+
1 1 1
+
  
 
== Priorita operátorů ==
 
== Priorita operátorů ==

Verze z 21. 4. 2012, 19:36

  • základní datové typy v jazyce C#
  • explicitní a implicitní deklarace proměnných
  • konstanta
  • pole (velikost pole, rozměr pole, index, asociativní pole)
  • datové typy u databází
  • označování proměnných
  • operace s proměnnými a sestavování výrazů
  • priorita operátorů


Obsah

Základní datové typy:

Celočíselné:

  • Byte - zabírá 1Byte ( 0 až 255 )
  • Integer - celočíselná hodnota se znaménkem zabírající 2Byte (-32768 až 32767 )
  • Long - celočíselná hodnota zabírající 4Byte (-2147483648 až 2147483647 )
  • Currency - reálné číslo s 15 desetinnými čísly před desetinnou čárkou a 4 za desetinnou čárkou, zabírající 8 Byte

Reálné:

  • Decimal - celočíselná hodnota bez znaménka,lze ho použít jen pomocí Variant jehož je podtypem,zabírá 12 Byte
  • Single - celočíselná hodnota zabírající 4 Byte (-3.402823E38 až -1.401298E-45 pro záporné hodnoty,1,401298E-45 až 3,402823E38 pro kladné hodnoty)
  • Double - je obdobou single,ale ve dvojnásobné přesnosti ,zabírá 8 Byte


Logické:

  • Boolean - uchovává hodnoty True nebo False zabírající 2Byte


Nestardantní:

  • Object - obsahují odkaz na objekt (adresu),zabírá 4 Byte
  • Variant - je to obecný datový typ,který může obsahovat jeden z výše uvedených datových typů,proměnná tohoto typu může dynamicky měnit svůj datový typ,jestliže není proměnná nadimenzovaná pak je typu Variant,zabírá 16 Byte
  • Date - obsahuje hodnoty datum a čas (1.leden 100 až 31.prosinec 9999,00:00:00 až 23:59:59),zabírá 8 Byte


Řetězcové:

  • String - řetězec libov. znaků kódovaných pomocí ASCII,jeho délka je prakticky neomezena - asi 2 miliardy znaků,dále se dělí na řetězec promněnlivé délky a pevné délky

Explicitní a implicitní deklarace proměnných

Explicitní

  • Pro proměnnou rezervujeme za běhu programu prostor v paměti pro uložení proměnné. Explicitní deklarace proměnné se zapisuje před jejím vlastním použitím, zpravidla na začátku procedury události. Deklarace začíná příkazem Dim (v podstatě znamená dimenze nebo dimenzovat). V deklaraci můžeme sdělit VBA jaký typ dat budeme používat (není povinné). Neuvedeme-li v deklaraci typ proměnné je automaticky použit implicitní typ dat Variant - může obsahovat data libovolného typu a velikosti.
  • Příklad přiřazení explicitní deklarace proměnné Prijmeni datového typu String
                  Dim Prijmeni As String
  • Příklad přiřazení hodnoty do proměnné Prijmeni
                  Prijmeni = "Karel IV"


  • Implicitní
  • Jedná se o deklaraci proměnné bez příkazu Dim. Implicitní deklarace znamená, že proměnnou přímo použijeme v programu (viz příklad). Implicitní deklarace má výhodu rychlejšího zápisu programového kódu, ale nese s sebou určitá rizika. Hlavním rizikem je to, že VBA při použití implicitních deklarací nepovažuje za chybu případný překlep ve jménu proměnné a považuje překlep za deklaraci nové proměnné.
  • Příklad implicitní deklarace proměnné Jmeno
                  Jmeno = "Pepa"


Konstanta

  • Konstanty jsou symboly reprezentující v programu neměnnou hodnotu.
  • Příklad konstant v jazyce C#:

const int months = 12, weeks = 52, days = 365;

  • Konstant2 je přiřazen řetězec nebo číslo,které se nemění.Uživatel si může nadefinovat svou konstantu příkazem const.Definice vlastních konstant má tuto syntaxi:

[Public|Private] Const název konstanty [As typ] = výraz


Pole

  • kolekce proměnných
  • Velikost pole odpovídá počtu jeho prvků. U jednorozměrného pole je tedy dána maximální hodnotou indexu. U pole dvourozměrného odpovídá součinu maximálních hodnot obou indexů.
  • Index: při deklaraci proměnných může být identifikátor proměnné opatřen indexovým rozsahem ,to je, že řada po sobě jdoucích prvků(paměťových míst) je nazvána stejným jménem,rozlišena číslem a vložena do pole,indexový rozsah udává jeden rozměr pole,teoreticky může být pole velké o n*n prvcích
  • Asociativní pole: je pole jehož prvky nejsou indexovány pomocí posloupnosti celých čísel, ale pomocí klíčů. Klíčem může být číslo (v nesekvenční posloupnosti), textový řetězec a jiné.

Příklad asociativního pole v jazyce PHP: $foo = array("a"=>"1", "b"=>"10", "c"=>"100"); echo $foo["c"] . $foo["b"] . $foo["a"];


Datové typy u databází

  • Textové
    • char: textový typ pevně stanovené šířky (počtu znaků), které zabírá nezávisle na tom, je-li vyplněna nebo ne (v takovém případě je v datovém souboru databáze doplněna na tuto šířku). Výhodou je rychlejší manipulace a přepisování hodnot, nevýhodou je toto nadbytečné místo.
    • varchar: (zkratka z variant char nebo char varying) – na rozdíl od typu char se ukládané hodnoty nedoplňují na zadanou šířku, ale v datovém souboru se uloží délka a za ní data; délka je tedy pohyblivá (odtud označení variant). Výhodou je úspornější uložení bez zbytečného, nevyužitého místa, nevýhodou je problematičtější přeukládání kratšího řetězce delším (kdy databázový stroj musí realokovat dostupné místo v datovém souboru).
  • Binární
    • binary: binárně citlivá obdoba typu char (tj. pevná šířka pro uložení dat)
    • varbinary: binárně citlivá obdoba typu varchar (tj. proměnlivá šířka při ukládání dat)


Označování proměnných

  • Způsoby označování proměnných jsou závislé na použitém BASICu. Název proměnné (identifikátor) může být sestaven z jakékoliv kombinace písmen a číslic. Název nesmí začínat číslicí a rozlišují se malá a velká písmena. Dále nesmí být jako identifikátor použito vyhrazené slovo, které v příslušném jazyce má již svůj význam (IF, TO, GO, atd.). První znak vždy bývá písmeno, některé druhy BASICu dovolují na druhém místě pouze číslici, jiné pak číslice i písmena. Neměli by obsahovat háčky a čárky.


Operace s proměnnými a sestavování výrazů

  • Matematické operátory
    • / * + - %
    • arg + arg sečte oba argumenty

arg - arg odečte oba argumenty -arg změní znaménko arg*arg vynásobí oba argumenty arg/arg vydělí první druhým argarg celočíselné dělení (výsledek je jen celá část podílu) arg1 MOD arg2 zbytek po celočíselném dělení arg1^arg2 umocnění základ arg1 mocnitelem arg2

  • Relační
    • < > <= >= != ==
    • arg1 < arg2 výsledek je true , je-li arg1 menší než arg2 , jinak false
    • arg1 > arg2 výsledek je true , je-li arg1 větší než arg2 , jinak false
    • arg1 = arg2 výsledek je true , je-li arg1 větší nebo roven arg2 , jinak false
    • arg1 = arg2 výsledek je true , je-li arg1 roven arg2 , jinak false
    • arg1 arg2 výsledek je true , když arg1 není roven arg2 , jinak false
    • Like prověří , zda se v řetězci nachází určitý vzorek
    • Is prověří ,zda existuje objektová proměnná daného typu , nebo zda dvě
    • objektové proměnné obsahují odkaz na stejný objekt.
  • Logické
    • ! && ||
    • arg1 AND arg2 logický součin obou argumentů
    • arg1 OR arg2 log. součet obou argumentů
    • arg1 XOR arg2 výlučně OR (nonekvivalence) argumentů
    • NOT arg negace arg.
    • arg1 IMP arg2 implikace arg.
    • arg1 EQV arg2 ekvivalence arg.
  • Bitové
    • bit1 bit2 výsledek
    • 0 0 1
    • 0 1 1
    • 1 0 0
    • 1 1 1

Priorita operátorů

určuje pořadí vyhodnocování částí výrazu. Nejvyšší prioritu mají operátory aritmetické, pak následují relační a nejnižší prioritu u kombinovaných výrazů mají logické operátory. V rámci aritmetických operátorů mají vyšší prioritu * a / před + a -.

Osobní nástroje
Jmenné prostory
Varianty
Akce
Navigace
Nástroje