S třední škola stavební Jihlava Sada 1 - Základy programování 04. Datové typy, operace, logické operátory Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284 Šablona: III/2 - inovace a zkvalitnění výuky prostřednictvím ICT Jaromír Železný 2012 Projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky
Proměnné proměnná = datový objekt, jehož hodnota se v průběhu algoritmu (programu) může měnit každá proměnná je určitého typu => je definována množina povolených hodnot dané proměnné, ale také množina povolených operací s nimi. typ proměnné se určuje deklarací proměnné deklarací proměnné se určují její vlastnosti, ale nikoliv její hodnota, ta se určí až tzv. přiřazením
Základní datové typy každý program musí umět předat svému uživateli nějakým způsobem výsledky, ke kterým došel výsledky mohou mít různou podobu čísla, znaky, nebo texty. základní datové typy: INTEGER -celá čísla REAL -reálná čísla CHAR, STRING a PCHAR -znaky a řetězce znaků BOOLEAN -logické hodnoty tyto datové typy jsou definované normou
Datový typ Integer datový typ Integerje souvislá množina celých čísel v intervalu < 32768, 32767 > včetně nuly zabírá v paměti 2 bajty, tedy může mít rozsah 0až2 16, tj. 0 až 65535 aby bylo možné používat i záporná čísla, celý interval se je posunut o polovinu rozsahu do záporných hodnot
Integer-operace + * sčítání, odčítání, násobení DIV celočíselné dělení (celá část podílu) MOD zbytek po celočíselném dělení ABS (i) absolutní hodnota SQR (i) druhá mocnina, i 2 výsledek je operací je rovněž typu Integer!??? Proč chybí dělení???
Datový typ Real reálné číslo obsahuje desetinnou část za desetinnou tečkou, ale narozdíl od typu Integer není zobrazeno přesně, ale zaokrouhleně Typ Realtvoří konečnou podmnožinu reálných čísel z intervalu zhruba ( 10 38, 10 38 ). TurboPascalzpracuje typ Realv rozsahu 2,9. 10 39 až 1,7. 10 38 na 11 až 12 číslic, v paměti zabírá 6 bajtů 0 1,7.10 38 2,9.10 39 2,9.10 39 1,7.10 38 nejmenší záporné číslo největší záporné číslo nejmenší kladné číslo největší kladné číslo
Zápis hodnot datového typu real hodnoty typu Real zapisujeme těmito způsoby 123 bez desetinné části 3.14159 píše se desetinná tečka, nikoliv čárka 1E6 odpovídá hodnotě 1000000 7.3E5 odpovídá hodnotě 730000 3.77E 6 odpovídá hodnotě 0,00000377
x REAL -operace + * / sčítání, odčítání, násobení, dělení Abs(x) absolutní hodnota čísla x Sqr(x) druhá mocnina (x 2 ) Sin (x) sinus (argument v radiánech) Cos (x) cosinus (argument v radiánech) Arctan(x) arcustangens Ln(x) přirozený logaritmus (při základu e) Exp(x) funkce inverzní k Ln(e x ) Sqrt(x) druhá odmocnina čísla x ( x) výsledek je rovněž typu Real
Priorita operátorů Priorita operátorů 1. * / div mod 2. + - aby operace s nižší prioritou se provedla dříve než operace s vyšší prioritou, uzavřeme příslušný výraz do závorek. Příklad: Výraz 5 + 3 * 2 div 4 bude vyhodnocen takto: 5 + 3 * 2 div 4 = 5 + 6 div 4 = 5 + 1 = 6
Převod typu Integerna Real převod proměnné typu Integerna Realje v Pascalu automatický, všude tam, kde se očekává hodnota typu Real, může být typ Integer přiřadíme li reálné proměnné celočíselnou hodnotu, bude nejprve převedena na reálnou, pak se bude provádět uvedená operace.
Převod Realna Integer převod proměnné typu Real na Integer automatický není je nutné si uvědomit, že převod celočíselné hodnoty na reálnou je přesný, obrácený převod reálné hodnoty na celočíselnou přesný nemůže být, převod je možné provést tak, že desetinnou část odřízneme nebo číslo zaokrouhlíme Trunc(x) -výsledkem je celá část čísla x, oddělí a zruší desetinnou část Round(x) -výsledkem je zaokrouhlená hodnota xdefinovaná takto:» Round(x) = Trunc(x + 0.5) pro x >=0» Round(x) = Trunc(x 0.5) pro x < 0
Datový typ Boolean typ logických hodnot proměnné typu Booleanmohou nabývat pouze dvou logických hodnot, které se označují identifikátory False nepravda True pravda Hodnoty jsou uspořádané a platí pro ně vztah: False< True.
Boolean-operace Základními operátory jsou: NOT (negace) AND (logický součin) OR (logický součet) XOR(exkluzivní součet)
Boolean operace - negace Tvrzení Operátor Výsledek True NOT False False NOT TRUE
Boolean operace logický součin obě hodnoty musí být pravdivé, aby výsledek byl TRUE v případě, že jedna zhodnot je nepravda, a výsledek je FALSE První tvrzení Operátor Druhé tvrzení Výsledek TRUE AND TRUE TRUE TRUE AND FALSE FALSE FALSE AND TRUE FALSE FALSE AND FALSE FALSE
Boolean operace logický součet stačí, aby jedna zhodnot byla pravda a výsledek je TRUE pouze vpřípadě, že obě hodnoty jsou nepravda, výsledek je také FALSE První tvrzení Operátor Druhé tvrzení Výsledek TRUE OR TRUE TRUE TRUE OR FALSE TRUE FALSE OR TRUE TRUE FALSE OR FALSE FALSE
Boolean operace exkluzivní součet výsledek je TRUE pouze vpřípadě, že se hodnoty v obou proměnných liší jsou-li hodnoty proměnných shodné, výsledek je FALSE. První tvrzení Operátor Druhé tvrzení Výsledek TRUE XOR TRUE FALSE TRUE XOR FALSE TRUE FALSE XOR TRUE TRUE FALSE XOR FALSE FALSE
Datový typ Char znaky z kódu ASCII (American Standard Code for InformationInterchange Americký standardizovaný kód pro výměnu informací) kód ASCII je nejrozšířenější způsob kódování znaků na počítačích toto přináší velkou výhodu možnosti přenosů dat mezi různými počítači bez nutnosti dekódování každému znaku je přiřazeno jednoznačně pořadové číslo
Datový typ Char tabulka ACSI kódů kód znak kód znak kód znak kód znak kód znak kód znak 32 mezera 48 0 64 @ 80 P 96 ` 112 p 33! 49 1 65 A 81 Q 97 a 113 q 34 '' 50 2 66 B 82 R 98 b 114 r 35 # 51 3 67 C 83 S 99 c 115 s 36 $ 52 4 68 D 84 T 100 d 116 t 37 % 53 5 69 E 85 U 101 e 117 u 38 & 54 6 70 F 86 V 102 f 118 v 39 ' 55 7 71 G 87 W 103 g 119 w 40 ( 56 8 72 H 88 X 104 h 120 x 41 ) 57 9 73 I 89 Y 105 i 121 y 42 * 58 : 74 J 90 Z 106 j 122 z 43 + 59 ; 75 K 91 [ 107 k 123 { 44, 60 < 76 L 92 \ 108 l 124 45 61 = 77 M 93 ] 109 m 125 } 46. 62 > 78 N 94 ^ 110 n 126 ~ 47 / 63? 79 O 95 _ 111 o 127 del Kódy s hodnotami 0 až 31 se většinou nezobrazují jako konkrétní znaky (to záleží na daném programu), jsou určeny jako řídící kódy pro různé periférie (monitor, tiskárna apod.) anebo mají konkrétní význam např. přechod textu na novou řádku, pípnutí apod.
Datový typ STRING a PCHAR Char - jeden znak String - řetězec max. 255 znaků dlouhý pchar - řetězec max 65535 znaků dlouhý
Zdroje: http://objekty.vse.cz/programovani/ Literatura: Radek HYLMAR: Programování pro úplné začátečníky, ComputerPress, Brno, 2009, ISBN 978-80-251-2129-0 http://www.root.cz/clanky/v-pocitaci-jsou-jen-jednicky-a-nuly/ Materiál je určen k bezplatnému používání pro potřeby výuky a vzdělávání na všech typech škol a školských zařízení. Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je : Jaromír Železný Pokud není uvedeno jinak, byly při tvorbě použity volně přístupné internetové zdroje. Autor souhlasí se sdílením vytvořených materiálů a jejich umístěním na www.ssstavji.cz.