Date post: | 01-Jan-2016 |
Category: |
Documents |
Upload: | hope-munoz |
View: | 48 times |
Download: | 0 times |
Co jsou datové typyCo jsou datové typy
Charakterizují proměnnou nebo konstantu – Charakterizují proměnnou nebo konstantu – jaká data obsahujejaká data obsahuje
Data jsou v počítači ukládána jako skupiny Data jsou v počítači ukládána jako skupiny byte jdoucích v paměti jedno za druhýmbyte jdoucích v paměti jedno za druhým
Teprve označení datovým typem umožní Teprve označení datovým typem umožní správně údaje přečíst a s daty pracovatsprávně údaje přečíst a s daty pracovat
Deklarace datových typů 1Deklarace datových typů 1
Proměnné a jejich datové typy deklarujeme Proměnné a jejich datové typy deklarujeme pomocí příkazu DIMpomocí příkazu DIM
Dim AnyValue, MyValue ' AnyValue a MyValue jsou deklarovány ' jako Variant
Dim Number As Integer ' Explicitní declarace proměnné integerDim AnotherVar, Choice As Boolean, BirthDate As DateDim DayArray(50) ' DayArray je pole s 51 prvky (0 – 50)Dim Matrix(3, 4) As Integer ' Matrix je dvourozměrné pole integerDim MyMatrix(1 To 5, 4 To 9, 3 To 5) As Double ' MyMatrix je třírozměrná
' matice s explicitními hranicemiDim BirthDay(1 To 10) As Date ' BirthDay je pole datumů s indexy 1 - 10 Dim MyArray() ' MyArray je dynamické pole proměnných
Deklarace datových typů 2Deklarace datových typů 2
Proměnné definované na úrovni modulu Proměnné definované na úrovni modulu (např. ve formuláři v (např. ve formuláři v GeneralGeneral) mohou být ) mohou být používány kdekoli v modulu nebo v používány kdekoli v modulu nebo v proceduřeproceduře
Proměnné definované v proceduře jsou Proměnné definované v proceduře jsou viditelné pouze v této proceduře a po viditelné pouze v této proceduře a po opuštění procedury ztrácejí hodnotuopuštění procedury ztrácejí hodnotu
Rozdělení datových typůRozdělení datových typů
Numerické datové typy – různé prezentace Numerické datové typy – různé prezentace čísel s různým rozsahem a přesností čísel s různým rozsahem a přesností zobrazenízobrazení
Datumový datový typ – záznam data a časuDatumový datový typ – záznam data a času Řetězcové datové typy – skupiny písmen a Řetězcové datové typy – skupiny písmen a
textů o různé délcetextů o různé délce Ostatní – různé speciální datové typyOstatní – různé speciální datové typy
Numerické datové typyNumerické datové typy
Byte – pouByte – pouze od ze od 0 0 ddo 255o 255 Integer –Integer – celá čísla od celá čísla od -32,768 -32,768 ddo 32,767o 32,767 Long –Long – celá čísla od - celá čísla od -2,147,483,648 do 2,147,483,648 do
2,147,483,647 2,147,483,647 Single – Single – čísla s čísla s pohpohyyblivblivou desetinnou ou desetinnou
čárkoučárkou DoubleDouble ––Single s dvojnásobkem délkySingle s dvojnásobkem délky Currency – Currency – měnaměna
ByteByte
Proměnné typu Proměnné typu Byte Byte jsou ukládány jako jsou ukládány jako 11 bytebyte – mají hodnotu od – mají hodnotu od 0 0 ddo 255.o 255.
Datový typ Datový typ Byte Byte je vhodný pro je vhodný pro binbinárníární data data,, která jsou komunikována s která jsou komunikována s dynamicdynamickyky připojenými knihovnamipřipojenými knihovnami (DLL) a OLE (DLL) a OLE objeobjekkttyy
IntegerInteger
Proměnné typu Proměnné typu Integer Integer jsou ukládány jako jsou ukládány jako 22 byte byte čísla s hodnotou odčísla s hodnotou od -32,768 -32,768 ddo 32,767o 32,767
Používá se tam, kde používáme celá čísla – Používá se tam, kde používáme celá čísla – např. počty kusů …např. počty kusů …
Typ Integer může být mimo jiné použit pro Typ Integer může být mimo jiné použit pro vypočítávané hodnoty – např. sada barev vypočítávané hodnoty – např. sada barev může obsahovat hodnoty 0 – černá, 1 – bílá, může obsahovat hodnoty 0 – černá, 1 – bílá, 2 – žlutá …2 – žlutá …
LongLong
Typ Long je obdobou typu IntegerTyp Long je obdobou typu Integer Je ukládán jako 4 byte a dosahuje hodnot Je ukládán jako 4 byte a dosahuje hodnot
od -2 147 483 648 do 2 147 483 647od -2 147 483 648 do 2 147 483 647
SingleSingle
Typ Single je určen pro čísla s pohyblivou Typ Single je určen pro čísla s pohyblivou desetinnou čárkoudesetinnou čárkou
Je ukládán jako 4 byte a má rozsah od Je ukládán jako 4 byte a má rozsah od --3.402823E38 do -1.401298E-45 3.402823E38 do -1.401298E-45 pro pro záporné hodnoty a odzáporné hodnoty a od1.401298E-45 do 3.402823E38 1.401298E-45 do 3.402823E38 pro pro kladné hodnotykladné hodnoty
DoubleDouble
Je obdobou datového typu SingleJe obdobou datového typu Single Je ukládán jako á byte a má rozsah Je ukládán jako á byte a má rozsah
od od -1.79769313486232E308 -1.79769313486232E308 do do -4.94065645841247E-324-4.94065645841247E-324pro záporné hodnoty a pro záporné hodnoty a odod 4.94065645841247E-324 4.94065645841247E-324 do do 1.79769313486232E3081.79769313486232E308
pro kladné hodnotypro kladné hodnoty
CurrencyCurrency
Typ Currency je ukládán jako 8 Byte integer, Typ Currency je ukládán jako 8 Byte integer, který podělen 10 000 dává číslo s pevnou který podělen 10 000 dává číslo s pevnou desetinnou čárkou s 15 číslicemi před desetinnou čárkou s 15 číslicemi před desetinnou čárkou a 4 číslicemi zadesetinnou čárkou a 4 číslicemi za
Má rozsah od -922.337.203.685.477,5808 Má rozsah od -922.337.203.685.477,5808 do 922.337.203.685.477,5807do 922.337.203.685.477,5807
Je vhodný pro výpočty obsahující peníze a Je vhodný pro výpočty obsahující peníze a pro výpočty v pevné desetinné čárce s pro výpočty v pevné desetinné čárce s omezenou přesnostíomezenou přesností
Datumový datový typ 1Datumový datový typ 1
Tento datovTento datovýý t tyyp je urp je urččen pro uklen pro ukládání ádání datumů a časůdatumů a časů
Je uložen jako Je uložen jako IEEE 64-bit (8-byte) IEEE 64-bit (8-byte) číslo s číslo s pohyblivou desetinou čárkou, které pohyblivou desetinou čárkou, které representrepresentujeuje dat datumy odumy od 1 1.. lednaledna 100 100 ddo o 3131.prosince.prosince 9999 a 9999 a časy odčasy od 0:00:00 0:00:00 ddo o 23:59:5923:59:59
Datumový datový typ 2Datumový datový typ 2
Datumový datový typ je zobrazovánDatumový datový typ je zobrazován Numerické datové typy lze převést na Numerické datové typy lze převést na
datumový – celá část odpovídá datumu a datumový – celá část odpovídá datumu a desetinná část času (např. 0,5 odpovídá desetinná část času (např. 0,5 odpovídá poledni)poledni)
Záporná celá čísla dopovídají datům před Záporná celá čísla dopovídají datům před 30.prosincem 189930.prosincem 1899
Řetězcové datové typyŘetězcové datové typy
String – proměnná délka – 10 byte String – proměnná délka – 10 byte ++ délka délka řetězce – až asi 2 miliardy (2^31) znakůřetězce – až asi 2 miliardy (2^31) znaků
String – pevná délka – 1 až asi 65,400 String – pevná délka – 1 až asi 65,400 znakůznaků
Znaky v řetězci mají hodnotu od 0 do 255Znaky v řetězci mají hodnotu od 0 do 255 Znaky 0 – 127 odpovídají písmenům a Znaky 0 – 127 odpovídají písmenům a
symbolům na standardní U.S. klávesnici symbolům na standardní U.S. klávesnici (ASCII), další jsou různé národní znaky(ASCII), další jsou různé národní znaky
Ostatní datové typyOstatní datové typy
Boolean – pravděpodobnostní – pouze Boolean – pravděpodobnostní – pouze hodnoty hodnoty truetrue a a falsefalse (1 a 0) (1 a 0)
Object – adresa sdíleného (OLE) objektu – Object – adresa sdíleného (OLE) objektu – např. World dokumentunapř. World dokumentu
Variant (číselná) – libovolný numerický typVariant (číselná) – libovolný numerický typ Variant (se znaky) – libovolný typ kromě Variant (se znaky) – libovolný typ kromě
typu typu stringstring s pevnou délkou nebo dat s pevnou délkou nebo dat uživatelem definovanýchuživatelem definovaných
Uživatelem definovaná dataUživatelem definovaná data Datový typ je definován příkazem TYPEDatový typ je definován příkazem TYPE Na příklad:Na příklad:
Následně definujeme:Následně definujeme:
Příkaz TYPE musí být v moduluPříkaz TYPE musí být v modulu
Type MyTypeMyName As String ' String proměnná obsahuje jménoMyBirthDate 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é
TTyyppyy operátorůoperátorů
Aritmetické operátoryAritmetické operátory Porovnávací operátoryPorovnávací operátory Konkatenační operátoryKonkatenační operátory Logické operátoryLogické operátory
Aritmetické operátoryAritmetické operátory
Operátor Operátor ^ ^ – mocnění– mocnění OperátorOperátor * * – násobení– násobení OperátorOperátor / / – dělení– dělení OperátorOperátor \ \ – dělení – dělení integerinteger OperátorOperátor Mod Mod – dělení – dělení modulomodulo OperátorOperátor + + – sčítání– sčítání OperátorOperátor - - – odčítání– odčítání
Operátor Operátor ^̂
Slouží k umocnění čísla na exponentSlouží k umocnění čísla na exponent Syntax:Syntax: výsledek = číslo^exponentvýsledek = číslo^exponent Číslo může být záporné pouze je-li exponent Číslo může být záporné pouze je-li exponent
celočíselnýceločíselný Výsledek je obvykle typu Výsledek je obvykle typu DoubleDouble Je-li Je-li čísločíslo nebo nebo exponentexponent rovno rovno NullNull, je , je
výsledek výsledek NullNull
OperátorOperátor * *
Slouží k vytvoření součinu dvou číselSlouží k vytvoření součinu dvou čísel Syntax:Syntax: výsledek = číslo1 výsledek = číslo1 ** číslo2 číslo2 Datový typ výsledku obvykle odpovídá Datový typ výsledku obvykle odpovídá
přesnějšímu ze součinitelůpřesnějšímu ze součinitelů Násobením typů Násobením typů Single Single aa Long Long dostaneme typ dostaneme typ
DoubleDouble Výsledkem násobení čísel typu Výsledkem násobení čísel typu ByteByte je typ je typ IntegerInteger Při násobení dvou čísel typu Při násobení dvou čísel typu IntegerInteger při přetečení při přetečení
dostaneme typ dostaneme typ LongLong Je-li jeden z operátorů roven Je-li jeden z operátorů roven NullNull, je výsledek , je výsledek NullNull
OperátorOperátor / /
Je určen k dělení dvou čísel a vrací číslo s Je určen k dělení dvou čísel a vrací číslo s pohyblivou desetinnou čárkoupohyblivou desetinnou čárkou
Syntax: Syntax: výsledek = číslo1 / číslo2výsledek = číslo1 / číslo2 Výsledek je obvykle typu Výsledek je obvykle typu SingleSingle Při přetečení výsledku je vracen typ Při přetečení výsledku je vracen typ DoubleDouble Je-li jeden z operátorů roven Je-li jeden z operátorů roven NullNull, je , je
výsledek výsledek NullNull
OperátorOperátor \ \
Při dělení dvou čísel vrací celou část Při dělení dvou čísel vrací celou část výsledku – zanedbává desetinnou částvýsledku – zanedbává desetinnou část
Syntax: Syntax: výsledek = číslo1 výsledek = číslo1 \\ číslo2 číslo2 Výsledek může být typu Výsledek může být typu Byte, Integer Byte, Integer nebo nebo
LongLong Je-li jeden z operátorů roven Je-li jeden z operátorů roven NullNull, je , je
výsledek výsledek NullNull
OperátorOperátor ModMod
Při dělení dvou čísel vrací zbytek po děleníPři dělení dvou čísel vrací zbytek po dělení Syntax: Syntax: výsledek = číslo1 Mod číslo2výsledek = číslo1 Mod číslo2 Výsledek může být typu Výsledek může být typu Byte, Integer Byte, Integer nebo nebo
LongLong Je-li jeden z operátorů roven Je-li jeden z operátorů roven NullNull, je , je
výsledek výsledek NullNull
OperátorOperátor + +
Slouží k vytvoření součtu dvou číslicSlouží k vytvoření součtu dvou číslic Syntax: Syntax: výsledek = číslo1 výsledek = číslo1 ++ číslo2 číslo2 Datový typ výsledku obvykle odpovídá Datový typ výsledku obvykle odpovídá
přesnějšímu ze součinitelůpřesnějšímu ze součinitelů Je-li jeden z operátorů roven Je-li jeden z operátorů roven NullNull, je , je
výsledek výsledek NullNull Je-li jeden z operátorů typu Je-li jeden z operátorů typu StringString, pak jde o , pak jde o
konkatenaci konkatenaci → konkatenační operátor → konkatenační operátor ++
OperátorOperátor --
Jako operJako operáátortor se 2 operandy se používá se 2 operandy se používá k vytvoření rozdílu 2 číselk vytvoření rozdílu 2 čísel
Syntax: Syntax: výsledek = číslo1 – číslo2výsledek = číslo1 – číslo2 Datový typ výsledku obvykle odpovídá Datový typ výsledku obvykle odpovídá
přesnějšímu ze součinitelůpřesnějšímu ze součinitelů Jako unární operátor indikuje zápornou Jako unární operátor indikuje zápornou
hodnotu číselného výrazuhodnotu číselného výrazu Syntax: Syntax: - číslo- číslo
Porovnávací operátoryPorovnávací operátory
Používají se k porovnávání výrazůPoužívají se k porovnávání výrazů Základní skupina obsahuje operátory Základní skupina obsahuje operátory
<, <=, >, >=, =, <><, <=, >, >=, =, <>
OperOperáátor tor IsIs slouží k porovnávání objektů slouží k porovnávání objektů Operátor Operátor LikeLike je určen k porovnání řetězce je určen k porovnání řetězce
se vzorovým řetězcem, který může se vzorovým řetězcem, který může obsahovat speciální záměnné znakyobsahovat speciální záměnné znaky
Konkatenační operátoryKonkatenační operátory Operátor Operátor && je určen ke spojení dvou řetězců je určen ke spojení dvou řetězců Syntax: Syntax: výsledek = výraz1 výsledek = výraz1 && výraz2 výraz2 Operátor Operátor ++ umožňuje konkatenaci dvou umožňuje konkatenaci dvou
výrazů, kde výsledek by měl být numerickývýrazů, kde výsledek by měl být numerický Syntax: Syntax: výsledek = výraz1 výsledek = výraz1 ++ výraz2 výraz2MyNumber = 2 + 2 ' Vrací 4.MyNumber = 4257.04 + 98112 ' Vrací 102369.04.
Var1 = "34": Var2 = 6 ' Initializace smíšených proměnnýchMyNumber = Var1 + Var2 ' Vrací 40.
Var1 = "34": Var2 = "6" ' Initializace proměnných jako řetězceMyNumber = Var1 + Var2 ‚Vrací "346" (konkatenace řetězců).
Logické operátoryLogické operátory
Operátor And – logická konjunkce 2 výrazůOperátor And – logická konjunkce 2 výrazů Operátor Eqv – logická ekvivalence 2 Operátor Eqv – logická ekvivalence 2
výrazůvýrazů Operátor Imp – logická implikace 2 výrazůOperátor Imp – logická implikace 2 výrazů Operátor Not – logická negace výrazuOperátor Not – logická negace výrazu Operátor Or – logická disjunkce 2 výrazůOperátor Or – logická disjunkce 2 výrazů Operátor Xor – logická exkluze 2 výrazůOperátor Xor – logická exkluze 2 výrazů
Operátor AndOperátor And
Vytváří logickou konjunkci 2 výrazůVytváří logickou konjunkci 2 výrazů Syntax:Syntax: výsledek = výraz1 AND výraz2vý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 EqvOperátor Eqv
Vytváří logickou ekvivalenci 2 výrazůVytváří logickou ekvivalenci 2 výrazů Syntax:Syntax: výsledek = výraz1 AND výraz2výsledek = výraz1 AND výraz2
Je-li alespoň 1 z výrazů Je-li alespoň 1 z výrazů NullNull, je výsledek , je výsledek vždy vždy NullNull
Výraz1 Výraz2 Výsledek True True True True False False False True False False False True
Operátor ImpOperátor Imp
Slouží k logické implikaci dvou výrazůSlouží k logické implikaci dvou výrazů Syntax: Syntax: výsledek = výraz1 IMP výraz2vý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 NotOperátor Not
Používá se k vytvoření logické negace Používá se k vytvoření logické negace výrazuvýrazu
Syntax:Syntax: výsledek = NOT výrazvýsledek = NOT výraz
Výraz Výsledek True False False True Null Null
Operátor OrOperátor Or
Výsledkem je logická disjunkce 2 výrazůVýsledkem je logická disjunkce 2 výrazů Syntax: Syntax: výsledek = výraz1 OR výraz2vý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 XorOperátor Xor
Výsledkem je logická exkluze 2 výrazůVýsledkem je logická exkluze 2 výrazů Syntax: Syntax: výsledek = výraz1 XOR výraz2výsledek = výraz1 XOR výraz2
Je-li alespoň 1 z výrazů Je-li alespoň 1 z výrazů NullNull, je výsledek , je výsledek vždy vždy NullNull
Výraz1 Výraz2 Výsledek True True False True False True False True True False False False