360 likes | 539 Views
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.
E N D
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 jedvourozmě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 jepoledatumůs indexy 1 - 10 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 1byte – mají hodnotu od 0 do 255. • Datový typ Byte je vhodný pro binární data,která jsou komunikována s dynamickypřipojenými knihovnami (DLL) a OLE objekty
Integer • Proměnné typu Integer jsou ukládány jako 2byte čí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 -2 147 483 648 do 2 147 483 647
Single • Typ Single je určen pro čísla s pohyblivou desetinnou čárkou • Je ukládán jako 4 byte a má rozsah od -3.402823E38 do -1.401298E-45 pro záporné hodnoty a od 1.401298E-45 do 3.402823E38 pro kladné hodnoty
Double • Je obdobou datového typu Single • Je ukládán jako á byte a má rozsah od -1.79769313486232E308 do -4.94065645841247E-324 pro záporné hodnoty a od 4.94065645841247E-324 do 1.79769313486232E308 pro kladné hodnoty
Currency • Typ Currency je ukládán jako 8 Byte integer, který podělen 10 000 dává číslo s pevnou desetinnou čárkou s 15 číslicemi před desetinnou čárkou a 4 číslicemi za • Má rozsah od -922.337.203.685.477,5808 do 922.337.203.685.477,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é
Typyoperá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átorMod • 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 = 4257.04 + 98112 ' Vrací 102369.04. 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ýraz1 Výraz2 Vý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ýraz1 Výraz2 Vý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ýraz1 Výraz2 Vý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ýraz Vý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ýraz1 Výraz2 Vý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ýraz1 Výraz2 Výsledek True True False True False True False True True False False False