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

BUNGALOVY CAMPING Ceník - Price list - Preisliste

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

Více

Cracking 4 newbies…

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, ...

Více

CHEMICKÉ VÝPOČTY

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 ...

Více