32_04_1_04-Datove_typy,_operace
Transkript
32_04_1_04-Datove_typy,_operace
Stř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 Integer je 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 0 až 216, tj. 0 až 65 535 • 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 • • • • • + – * DIV MOD ABS (i) SQR (i) sčítání, odčítání, násobení celočíselné dělení (celá část podílu) zbytek po celočíselném dělení absolutní hodnota druhá mocnina, i2 • 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 Real tvoří konečnou podmnožinu reálných čísel z intervalu zhruba (–1038, 1038). • TurboPascal zpracuje typ Real v rozsahu 2,9 . 10–39 až 1,7 . 1038 na 11 až 12 číslic, v paměti zabírá 6 bajtů 0 –1,7.1038 nejmenší záporné číslo –2,9.10 –39 největší záporné číslo 2,9.10–39 nejmenší kladné číslo 1,7.1038 největší kladné číslo Zápis hodnot datového typu real • hodnoty typu Real zapisujeme těmito způsoby • • • • • 123 3.14159 1E6 7.3E5 3.77E–6 bez desetinné části píše se desetinná tečka, nikoliv čárka odpovídá hodnotě 1 000 000 odpovídá hodnotě 730 000 odpovídá hodnotě 0,00000377 x REAL - operace • • • • • • • • • + – * / Abs (x) Sqr (x) Sin (x) Cos (x) Arctan (x) Ln (x) Exp (x) Sqrt (x) sčítání, odčítání, násobení, dělení absolutní hodnota čísla x druhá mocnina (x2) sinus (argument v radiánech) cosinus (argument v radiánech) arcustangens přirozený logaritmus (při základu e) funkce inverzní k Ln (ex ) 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 Integer na Real • převod proměnné typu Integer na Real je 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 Real na 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 x definovaná 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 Boolean mohou 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 z hodnot 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 z hodnot byla pravda a výsledek je TRUE • pouze v pří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 v pří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 Information Interchange – 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 znak mezera ! '' # $ % & ' ( ) * + , – . / kód 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 znak 0 1 2 3 4 5 6 7 8 9 : ; < = > ? kód 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 znak @ A B C D E F G H I J K L M N O kód 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 znak P Q R S T U V W X Y Z [ \ ] ^ _ kód 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 znak ` a b c d e f g h i j k l m n o kód 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 znak p q r s t u v w x y z { | } ~ 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 • String • pchar - jeden znak - řetězec max. 255 znaků dlouhý - řetězec max 65535 znaků dlouhý Zdroje: http://objekty.vse.cz/Programovani/ Literatura: Radek HYLMAR: Programování pro úplné začátečníky, Computer Press, 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.
Podobné dokumenty
Answers section 2.1 Part 1: #1 a. 2 b. 1 c. DNE d. DNE e. 0 f. 2 g
6a) x=0, f(0) = 0 and x=1 not removable
BUNGALOVY CAMPING Ceník - Price list - Preisliste
Ceník - Price list - Preisliste - Tarif 2015
Camping, Mobilní domy & Bungalovy
Otevřeno 28.03. - 31.10.2015
Cracking 4 newbies…
Takže pokud vyxoruji to, co mi vzniklo po XORu v EAX
s ECX, tak získám původní EAX, tedy správné
registrační číslo. Výsledkem této operace je hodnota
5A494C42h, ale heslem musí být nějaký řetězec, ...
CHEMICKÉ VÝPOČTY
CHEMICKÉ VÝPOČTY
Výpočty procentového složení látky
Zjišťujeme procentové zastoupení prvků v molekule.
Př.: Jaké je procentové složení vody?
Zjistíme molekulovou hmotnost vody H2O, zaokrouhlíme na ...