Datové typy a operátory
Co jsou datové typy Charakterizují proměnnou nebo konstantu – jaká data obsahuje Data jsou v počítači ukládána jako skupiny byte jdoucích v paměti jedno za druhým Teprve označení datovým typem umožní správně údaje přečíst a s daty pracovat
Deklarace datových typů 1 Proměnné a jejich datové typy deklarujeme pomocí příkazu DIM Dim AnyValue, MyValue' AnyValue a MyValue jsou deklarovány ' jako Variant Dim Number As Integer ' Explicitní declarace proměnné integer Dim AnotherVar, Choice As Boolean, BirthDate As Date Dim DayArray(50)' DayArray je pole s 51 prvky (0 – 50) Dim Matrix(3, 4) As Integer ' Matrix je dvourozměrné pole integer Dim MyMatrix(1 To 5, 4 To 9, 3 To 5) As Double ' MyMatrix je třírozměrná ' matice s explicitními hranicemi Dim BirthDay(1 To 10) As Date' BirthDay je pole datumů s indexy Dim MyArray() ' MyArray je dynamické pole proměnných
Deklarace datových typů 2 Proměnné definované na úrovni modulu (např. ve formuláři v General) mohou být používány kdekoli v modulu nebo v proceduře Proměnné definované v proceduře jsou viditelné pouze v této proceduře a po opuštění procedury ztrácejí hodnotu
Rozdělení datových typů Numerické datové typy – různé prezentace čísel s různým rozsahem a přesností zobrazení Datumový datový typ – záznam data a času Řetězcové datové typy – skupiny písmen a textů o různé délce Ostatní – různé speciální datové typy
Numerické datové typy Byte – pouze od 0 do 255 Integer – celá čísla od -32,768 do 32,767 Long – celá čísla od -2,147,483,648 do 2,147,483,647 Single – čísla s pohyblivou desetinnou čárkou Double –Single s dvojnásobkem délky Currency – měna
Byte Proměnné typu Byte jsou ukládány jako 1 byte – mají hodnotu od 0 do 255. Datový typ Byte je vhodný pro binární data, která jsou komunikována s dynamicky připojenými knihovnami (DLL) a OLE objekty
Integer Proměnné typu Integer jsou ukládány jako 2 byte čísla s hodnotou od -32,768 do 32,767 Používá se tam, kde používáme celá čísla – např. počty kusů … Typ Integer může být mimo jiné použit pro vypočítávané hodnoty – např. sada barev může obsahovat hodnoty 0 – černá, 1 – bílá, 2 – žlutá …
Long Typ Long je obdobou typu Integer Je ukládán jako 4 byte a dosahuje hodnot od do
Single Typ Single je určen pro čísla s pohyblivou desetinnou čárkou Je ukládán jako 4 byte a má rozsah od E38 do E-45 pro záporné hodnoty a od E-45 do E38 pro kladné hodnoty
Double Je obdobou datového typu Single Je ukládán jako á byte a má rozsah od E308 do E-324 pro záporné hodnoty a od E-324 do E308 pro kladné hodnoty
Currency Typ Currency je ukládán jako 8 Byte integer, který podělen dává číslo s pevnou desetinnou čárkou s 15 číslicemi před desetinnou čárkou a 4 číslicemi za Má rozsah od ,5808 do ,5807 Je vhodný pro výpočty obsahující peníze a pro výpočty v pevné desetinné čárce s omezenou přesností
Datumový datový typ 1 Tento datový typ je určen pro ukládání datumů a časů Je uložen jako IEEE 64-bit (8-byte) číslo s pohyblivou desetinou čárkou, které representuje datumy od 1. ledna 100 do 31.prosince 9999 a časy od 0:00:00 do 23:59:59
Datumový datový typ 2 Datumový datový typ je zobrazován Numerické datové typy lze převést na datumový – celá část odpovídá datumu a desetinná část času (např. 0,5 odpovídá poledni) Záporná celá čísla dopovídají datům před 30.prosincem 1899
Řetězcové datové typy String – proměnná délka – 10 byte + délka řetězce – až asi 2 miliardy (2^31) znaků String – pevná délka – 1 až asi 65,400 znaků Znaky v řetězci mají hodnotu od 0 do 255 Znaky 0 – 127 odpovídají písmenům a symbolům na standardní U.S. klávesnici (ASCII), další jsou různé národní znaky
Ostatní datové typy Boolean – pravděpodobnostní – pouze hodnoty true a false (1 a 0) Object – adresa sdíleného (OLE) objektu – např. World dokumentu Variant (číselná) – libovolný numerický typ Variant (se znaky) – libovolný typ kromě typu string s pevnou délkou nebo dat uživatelem definovaných
Uživatelem definovaná data Datový typ je definován příkazem TYPE Na příklad: Následně definujeme: Příkaz TYPE musí být v modulu Type MyType MyName As String' String proměnná obsahuje jméno MyBirthDate As Date' Proměnná obsahuje datum narození MySex As Integer' Proměnná obsahuje pohlaví (0 pro End Type' ženu, 1 pro muže) Dim MyNameRecord As MyType ' Deklarace proměnné
Typy operátorů Aritmetické operátory Porovnávací operátory Konkatenační operátory Logické operátory
Aritmetické operátory Operátor ^ – mocnění Operátor * – násobení Operátor / – dělení Operátor \ – dělení integer Operátor Mod – dělení modulo Operátor + – sčítání Operátor - – odčítání
Operátor ^ Slouží k umocnění čísla na exponent Syntax: výsledek = číslo^exponent Číslo může být záporné pouze je-li exponent celočíselný Výsledek je obvykle typu Double Je-li číslo nebo exponent rovno Null, je výsledek Null
Operátor * Slouží k vytvoření součinu dvou čísel Syntax: výsledek = číslo1 * číslo2 Datový typ výsledku obvykle odpovídá přesnějšímu ze součinitelů Násobením typů Single a Long dostaneme typ Double Výsledkem násobení čísel typu Byte je typ Integer Při násobení dvou čísel typu Integer při přetečení dostaneme typ Long Je-li jeden z operátorů roven Null, je výsledek Null
Operátor / Je určen k dělení dvou čísel a vrací číslo s pohyblivou desetinnou čárkou Syntax: výsledek = číslo1 / číslo2 Výsledek je obvykle typu Single Při přetečení výsledku je vracen typ Double Je-li jeden z operátorů roven Null, je výsledek Null
Operátor \ Při dělení dvou čísel vrací celou část výsledku – zanedbává desetinnou část Syntax: výsledek = číslo1 \ číslo2 Výsledek může být typu Byte, Integer nebo Long Je-li jeden z operátorů roven Null, je výsledek Null
Operátor Mod Při dělení dvou čísel vrací zbytek po dělení Syntax: výsledek = číslo1 Mod číslo2 Výsledek může být typu Byte, Integer nebo Long Je-li jeden z operátorů roven Null, je výsledek Null
Operátor + Slouží k vytvoření součtu dvou číslic Syntax: výsledek = číslo1 + číslo2 Datový typ výsledku obvykle odpovídá přesnějšímu ze součinitelů Je-li jeden z operátorů roven Null, je výsledek Null Je-li jeden z operátorů typu String, pak jde o konkatenaci → konkatenační operátor +
Operátor - Jako operátor se 2 operandy se používá k vytvoření rozdílu 2 čísel Syntax: výsledek = číslo1 – číslo2 Datový typ výsledku obvykle odpovídá přesnějšímu ze součinitelů Jako unární operátor indikuje zápornou hodnotu číselného výrazu Syntax: - číslo
Porovnávací operátory Používají se k porovnávání výrazů Základní skupina obsahuje operátory, >=, =, <> Operátor Is slouží k porovnávání objektů Operátor Like je určen k porovnání řetězce se vzorovým řetězcem, který může obsahovat speciální záměnné znaky
Konkatenační operátory Operátor & je určen ke spojení dvou řetězců Syntax: výsledek = výraz1 & výraz2 Operátor + umožňuje konkatenaci dvou výrazů, kde výsledek by měl být numerický Syntax: výsledek = výraz1 + výraz2 MyNumber = 2 + 2' Vrací 4. MyNumber = ' Vrací Var1 = "34": Var2 = 6' Initializace smíšených proměnných MyNumber = Var1 + Var2' Vrací 40. Var1 = "34": Var2 = "6"' Initializace proměnných jako řetězce MyNumber = Var1 + Var2‚Vrací "346" (konkatenace řetězců).
Logické operátory Operátor And – logická konjunkce 2 výrazů Operátor Eqv – logická ekvivalence 2 výrazů Operátor Imp – logická implikace 2 výrazů Operátor Not – logická negace výrazu Operátor Or – logická disjunkce 2 výrazů Operátor Xor – logická exkluze 2 výrazů
Operátor And Vytváří logickou konjunkci 2 výrazů Syntax: výsledek = výraz1 AND výraz2 Výraz1Výraz2Výsledek True True True True False False True Null Null False True False False False False False Null False Null True Null Null False False Null Null Null
Operátor Eqv Vytváří logickou ekvivalenci 2 výrazů Syntax: výsledek = výraz1 AND výraz2 Je-li alespoň 1 z výrazů Null, je výsledek vždy Null Výraz1Výraz2Výsledek True True True True False False False True False False False True
Operátor Imp Slouží k logické implikaci dvou výrazů Syntax: výsledek = výraz1 IMP výraz2 Výraz1Výraz2Výsledek True True True True False False True Null Null False True True False False True False Null True Null True True Null False Null Null Null Null
Operátor Not Používá se k vytvoření logické negace výrazu Syntax:výsledek = NOT výraz VýrazVýsledek True False False True Null Null
Operátor Or Výsledkem je logická disjunkce 2 výrazů Syntax: výsledek = výraz1 OR výraz2 Výraz1Výraz2Výsledek True True True True False True True Null True False True True False False False False Null Null Null True True Null False Null Null Null Null
Operátor Xor Výsledkem je logická exkluze 2 výrazů Syntax: výsledek = výraz1 XOR výraz2 Je-li alespoň 1 z výrazů Null, je výsledek vždy Null Výraz1Výraz2Výsledek True True False True False True False True True False False False
That’s all folks!