2 Ukládání dat do paměti počítače



Podobné dokumenty
Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Číselné soustavy. Binární číselná soustava

3 Jednoduché datové typy Interpretace čísel v paměti počítače Problémy s matematickými operacemi 5

Algoritmy I. Číselné soustavy přečíst!!! ALGI 2018/19

Čísla a číselné soustavy.

Číselné soustavy a převody mezi nimi

Fz =a z + a z +...+a z +a z =

Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

PJC Cvičení #2. Číselné soustavy a binární reprezentace proměnných

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

Číselné soustavy. Ve světě počítačů se využívají tři základní soustavy:

Mikroprocesorová technika (BMPT)

1. Základní pojmy a číselné soustavy

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.

VY_32_INOVACE_CTE_2.MA_04_Aritmetické operace v binární soustavě Střední odborná škola a Střední odborné učiliště, Dubno Ing.

v aritmetické jednotce počíta

ČÍSELNÉ SOUSTAVY PŘEVODY

Základní jednotky používané ve výpočetní technice

Ahoj mami. Uložení dat v počítači. Příklady kódování dat. IAJCE Přednáška č. 4

Algoritmizace a programování

Struktura a architektura počítačů (BI-SAP) 5

Algoritmy a datové struktury

Úvod do programování 7. hodina

ČÍSELNÉ SOUSTAVY. Číselnou soustavu, která pro reprezentaci čísel využívá pouze dvou číslic, nazýváme soustavou dvojkovou nebo binární.

Čísla v počítači Výpočetní technika I

Číselné soustavy. Jedná se o způsob reprezentace čísel.

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Čísla v plovoucířádovéčárce. INP 2008 FIT VUT v Brně

Principy počítačů. Prof. RNDr. Peter Mikulecký, PhD.

Kódováni dat. Kódy používané pro strojové operace

Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly

Čísla a aritmetika. Řádová čárka = místo, které odděluje celou část čísla od zlomkové.

Algoritmizace a programování

Aritmetické operace a obvody pro jejich realizaci

Převody mezi číselnými soustavami

Přednáška 2: Čísla v počítači. Práce s počítačem. Číselné soustavy. Převody mezi soustavami. Aritmetické operace. Uložení čísel v paměti počítače

Y36SAP. Osnova. Číselné soustavy a kódy, převody, aritmetické operace Y36SAP Poziční číselné soustavy a převody.

1. Chyby vstupních dat metody převedení úlohy na numerickou (řád použité metody) zaokrouhlovací reprezentace čísel v počítači

PB002 Základy informačních technologií

C2115 Praktický úvod do superpočítání

Čísla, reprezentace, zjednodušené výpočty

ARITMETICKÉ OPERACE V BINÁRNÍ SOUSTAVĚ

Informatika Datové formáty

Úloha 1 Spojte binární obrazy na obrázku s hodnotami, které reprezentují.

Způsoby realizace této funkce:

MATA Př 3. Číselné soustavy. Desítková soustava (dekadická) základ 10, číslice 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

Sada 1 - Základy programování

3. Reálná čísla. většinou racionálních čísel. V analytických úvahách, které praktickým výpočtům

Číselné vyjádření hodnoty. Kolik váží hrouda zlata?

( ) Jako základ mocnin nemusíme používat jen 10. Pokud není jasné, že číslo je uvedeno v desítkové soustavě, píšeme jej takto: ( ) 10

Variace. Mocniny a odmocniny

VÝRAZY výrazy = operandy prokládané operátory, vyhodnocované podle priority operátorů

Pokud není uvedeno jinak, uvedený materiál je z vlastních zdrojů autora

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Principy počítačů I Reprezentace dat

Základní pojmy. Program: Algoritmus zapsaný v programovacím jazyce, který řeší nějaký konkrétní úkol. Jedná se o posloupnost instrukcí.

KOMBINAČNÍ LOGICKÉ OBVODY

1.5.1 Číselné soustavy

Čísla, reprezentace, zjednodušené výpočty

Architektury počítačů

Už známe datové typy pro representaci celých čísel i typy pro representaci

1 Strukturované programování

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Exponent. Integer 4 bajty až Double Integer 8 bajtů až

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

2. cvičení z ZI1 - Excel

Struktura a architektura počítačů (BI-SAP) 6

Datové typy a jejich reprezentace v počítači.

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM

Princip funkce počítače

SOUSTAVY LINEÁRNÍCH ALGEBRAICKÝCH ROVNIC

5 Přehled operátorů, příkazy, přetypování

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Reprezentace dat v informačních systémech. Jaroslav Šmarda

1. 1 P Ř I R O Z E N Á Č Í S L A

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Algoritmizace a programování

Binární logika Osnova kurzu

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Programování v jazyce C pro chemiky (C2160) 12. Specifické problémy při vývoji vědeckého softwaru

Číselné soustavy. Prvopočátky. Starověký Egypt a Mezopotámie. Již staří Římané

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

Paměť počítače. alg2 1

P2 Číselné soustavy, jejich převody a operace v čís. soustavách

Zdroje chyb. Absolutní a relativní chyba. Absolutní chyba. Absolutní chyba přibližného čísla a se nazývá absolutní hodnota rozdílu přesného

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

pro každé i. Proto je takových čísel m právě N ai 1 +. k k p

Výukový materiál zpracovaný v rámci projektu Výuka moderně Registrační číslo projektu: CZ.1.07/1.5.00/

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

Základní datové typy, proměnné - deklarujeme předem - C je case sensitive rozlišuje malá a velká písmena v názvech proměnných a funkcí

Mocniny. Nyní si ukážeme jak je to s umocňováním záporných čísel.

Jednoduché cykly

Číselné soustavy - Teorie

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

Datové typy pro reálná čísla

Booleovská algebra. Booleovské binární a unární funkce. Základní zákony.

Racionální čísla. teorie řešené úlohy cvičení tipy k maturitě výsledky. Víš, že. Naučíš se

Aplikovaná numerická matematika

Transkript:

Projekt OP VK Inovace studijních oborů zajišťovaných katedrami PřF UHK Registrační číslo: CZ..7/../8.8 Cíl Studenti budou umět zapisovat čísla ve dvojkové, osmičkové, desítkové a v šestnáctkové soustavě a budou umět převádět zápisy čísel mezi jednotlivými soustavami. Studenti porozumí způsobu ukládání celých čísel, reálných čísel, jednotlivých znaků i celých textů a logických proměnných do paměti počítače.. Vyjádření čísel v různých číselných soustavách Již od první třídy základní školy, kdy se děti seznamují se základy počítání a matematiky, pracují s čísly v desítkové soustavě. Později se dovídají, že existují i jiné číselné soustavy, a že počítače pracují ve dvojkové soustavě. Následně se pak učí zapisovat čísla v různých číselných soustavách. Připomeňme si tedy, co to jsou číselné soustavy a jaké jsou jejich principy. Začněme desítkovou soustavou. Jejím základem je číslo deset. Každé další číslo pak lze vyjádřit jako příslušný součet násobků mocnin deseti. Pro příklad lze uvést rozklad čísla 456 v desítkové soustavě. 456 4. 5. 6. 4 5 6 Stejný princip platí i pro zápis čísel v libovolné jiné číselné soustavě. Vždy se tedy jedná o příslušný součet násoků mocnin základu dané číselné soustavy. Dekadické číslo 456 lze vyjádřit pomocí mocnin základu dva takto. 456. 8 56. 8 7. 64 6 8. 5. 4. 3... /5

Vladimír Jehlička Programování Obdobně lze číslo 456 vyjádřit pomocí mocnin osmi. 456 7.8.8.8 448 8 Nejinak je tomu i při zápisu čísla pomocí mocnin šestnácti. 456.6.6 8.6 56 9 8 Dříve než přistoupíme k zápisu čísla v uvedených číselných soustavách, je třeba si uvědomit, že pro vyjadřování čísel v desítkové číselné soustavě máme k dispozici deset číslicových symbolů (,,,..., 9), ve dvojkové číselné soustavě dva symboly (, ), v osmičkové osm (,,,..., 7) a v šestnáctkové šestnáct (,,,..., 9, A, B, C, D, E, F). Teoreticky bychom si tak mohli vymýšlet i další číselné soustavy při libovolném jiném základu. Zabývejme se nyní zápisem několika prvních celých nezáporných čísel v různých číselných soustavách. Začneme nulou, ke které budeme postupně přičítat jedničku. Jakmile vyčerpáme použitelné symboly v daném řádu, musíme přičíst jedničku do vyššího řádu, viz následující tabulka. V posledním sloupci je jenom pro zajímavost uvedeno vyjádření čísel pomocí římských číslic. Je zřejmé, že se pro matematiku jedná o naprosto nevhodnou formu zápisu. Tabulka. Zápis čísel v různých číselných soustavách Číselná soustava Římská desítková dvojková osmičková šestnáctková čísla I II 3 3 3 III 4 4 4 IV 5 5 5 V 6 6 6 VI 7 7 7 VII 8 8 VIII 9 9 IX A X /5

Vladimír Jehlička Programování 3 B XI 4 C XII 3 5 D XIII 4 6 E XIV 5 7 F XV 6 XVI 7 XVII............... Nyní je již snadné zapsat dané číslo v jednotlivých číselných soustavách, kde index uvádí hodnotu základu dané číselné soustavy. 456 7 8 C8 6. Paměť číslicových počítačů Číslicová výpočetní technika pracuje s paměťmi, jejichž nejmenší jednotku tvoří bit, do kterého lze uložit pouze informaci booleovského typu pravda nebo nepravda (true nebo false), tedy číselně nebo. Z toho také plyne, že do pamětí počítačů lze ukládat čísla pouze ve dvojkové číselné soustavě. Zcela logicky se tedy můžeme ptát: Proč bychom se tedy měli zabývat osmičkovou, nebo šestnáctkovou číselnou soustavou? Odpověď je zřejmá. Počítač sice pracuje ve dvojkové číselné soustavě, ale příslušný zápis čísel je velice nepřehledný. Rozdělíme-li číslo zapsané ve dvojkové číselné soustavě do skupin po třech, resp. čtyřech číslicích, pak můžeme dané číslo zapsat v osmičkové, resp. šestnáctkové číselné soustavě. 456 7 8 456 C8 6 A právě snaha po zjednodušení zápisu a zpřehlednění čtení čísel zapsaných ve dvojkové číselné soustavě je důvodem k tomu, proč v některých případech používáme šestnáctkovou číselnou soustavu. Použijeme-li k zápisu celého čísla např. paměť s kapacitou 4 byte, tj. 4x8=3 bitů, pak ukládáme pro nás velice nepřehledné číslo vyjádřené ve 3/5

Vladimír Jehlička Programování dvojkové soustavě, které obsahuje 3 nul či jedniček. Mnohem přehlednější je jeho zápis v šestnáctkové soustavě: F 75 9C 6 6 Osmičková číselná soustava byla standardně používána v 7 letech minulého století při komunikaci operátorek se sálovými počítači. V současné době již využití osmičkové číselné soustavy je minimální, ale v praxi programátorů je používána šestnáctková soustava, a to např. při psaní některých částí programů, které se týkají práce s barvami..3 Ukládání celých nezáporných čísel Potřebujeme-li uložit do paměti počítače celé nezáporné číslo, pak musíme v této paměti vymezit prostor, který obsahuje tolik bitů, kolik je potřeba pro vyjádření daného čísla ve dvojkové soustavě. Začněme jednoduchým příkladem, kdy v paměti počítače vymezíme pouze 8 bitů, čili byte. Do tohoto prostoru lze ve dvojkové soustavě uložit číslo v rozsahu až. Tomu odpovídají v desítkové soustavě čísla v rozsahu až 55. Budeme-li vytvářet programy např. ve vývojovém prostředí Delphi, pak příslušnou proměnnou, do které budeme ukládat tato celá nezáporná čísla, budeme deklarovat jako proměnnou typu Byte. Je ale třeba si uvědomit úskalí takovéto deklarace. Do proměnné skutečně nelze uložit větší číselnou hodnotu. Jestliže budeme např. postupně přičítat hodnotu do příslušné proměnné, pak se dostaneme maximálně na hodnotu 55 a přičtením jedničky dojde k tzv. přetečení, kdy ve všech vymezených bitech budou uloženy nuly a příslušná jednička by měla být zapsána v dalším vyšším řádu. Ten ale je již nezobrazitelný, protože je mimo rozsah vymezené paměti pro uložení proměnné typu Byte. Z toho vyplývá, že v dané proměnné bude uložena výsledná hodnota nula. Pokud si programátor tuto skutečnost neuvědomí, může snadno vytvořit program s tzv. nekonečným cyklem. Stačí, když vytvoří cyklus, ve 4/5

Vladimír Jehlička Programování kterém bude řídicí proměnná deklarovaná typu Byte, přičemž v cyklu by měla nabývat maximální hodnoty např. 3. V takovém případě bude cyklus probíhat do hodnoty 55, pak bude pokračovat znovu od do 55, ale nikdy nedosáhne koncové hodnoty 3. Cyklus tedy nikdy neskončí..4 Ukládání celých záporných čísel Záporná čísla je možno v paměti počítače vyjadřovat různými způsoby. Jedním z nich je rezervování nejvyššího řádu dvojkového čísla pro identifikaci znaménka kladného či záporného čísla a v dalších bitech je uloženo číslo ve své absolutní hodnotě. Nevýhodou tohoto zobrazení je skutečnost, že existuje nejenom kladná nula, ale také záporná nula. Druhou možností je vyjádření záporných čísel s tzv. posunutou nulou. V takovém případě lze hodnotě přiřadit dekadické číslo -8. Hodnotě odpovídá dekadická nula a hodnotě odpovídá dekadické číslo 7. Záporná čísla jsou v paměti počítače ale nejčastěji ukládána ve formě dvojkového doplňku, který vznikne tak, že k absolutní hodnotě záporného čísla, vyjádřeného ve dvojkové soustavě, vytvoříme negaci a k té přičteme jedničku. Pro názornost zkusme zapsat ve formě dvojkového doplňku dekadické číslo -5. zápis absolutní hodnoty čísla -5, tedy +5 negace zapsaného čísla +5 přičtením jedničky získáváme výsledný zápis čísla -5 ve formě dvojkového doplňku. Obdobným způsobem můžeme zapsat libovolné jiné celé záporné číslo, pokud máme vymezenou dostatečně velkou kapacitu paměti. Tento způsob zapisování záporných čísel odstraňuje problémy s nejednoznačným zapsáním nuly i problémy s posunutou nulou. Zajímá-li nás zpětný převod, to znamená určení absolutní hodnoty záporného čísla, pak nejprve od čísla vyjádřeného ve tvaru dvojkového 5/5

Vladimír Jehlička Programování doplňku odečteme jedničku a pak provedeme negaci. Určeme tedy např. absolutní hodnotu čísla. záporné číslo ve tvaru dvojkového doplňku výsledek po odečtení jedničky negací získáme výslednou absolutní hodnotu zadaného záporného čísla = 9. Pro názornost si můžeme sestavit tabulku se všemi kladnými i zápornými čísly, které lze zapsat do paměti o velikosti 4 bitů. Tabulka. Zápis záporných čísel ve tvaru dvojkového doplňku Desítkové číslo Dvojkový doplněk -8-7 -6-5 -4-3 - - 3 4 5 6 7 Čísla, která jsou zapsána ve formě dvojkového doplňku, lze velice snadno sčítat i odčítat. Máme-li totiž odečíst celé kladné číslo, pak přičteme odpovídající číslo záporné, jak je vidět z následujících příkladů. Případný přenos jedničky do nejvyššího řádu, který je v našem případě mimo 6/5

Vladimír Jehlička Programování vymezených 8 bitů, vynecháme, neboť danou hodnotu není možno zapsat do paměti dané velikosti. Tabulka.3 Ukázka sčítání a odčítání čísel ve dvojkové soustavě. 5 + = 7 5 = 3 5 = 7 5 5 5 5 + = 7 5 = 3 5 = 7 Vidíme tedy, že v nejvyšším bitu (první zleva) je vždy uložena jednička pro čísla záporná a nula pro čísla kladná. Rozsah zapsatelných čísel je pak dán počtem n bitů, které máme v paměti počítače pro tento zápis k dispozici. Obecně lze příslušný rozsah vyjádřit zápisem n až. V následující tabulce jsou uvedeny využitelné rozsahy dekadických celých nezáporných i záporných čísel, a to v závislosti na velikosti paměti počítače, kterou pro daný zápis vymezíme. Současně jsou uvedeny typy proměnných, které využívá vývojové prostředí Delphi, resp. programovací jazyk Visual Basic. Tabulka.4 Rozsah celých čísel, která lze zapsat do různě velké vymezené paměti počítače Rozsah paměti byte = 8 bit byte = 6 bit 4 byte = 3 bit Typ proměnné Rozsah čísel (desítkově) Visual Delphi Basic 55 Byte Byte -8 7 Shortint 65 535 Word Char -3 768 3 767 Smallint Short 4 94 967 95 Longword (Cardinal) - 47 483 648 47 483 647 Longint (Integer) Integer n 7/5

Vladimír Jehlička Programování 8 byte = 64 bit 64... 64 přibližně -9 3 37 36 854 78... 9 3 37 36 854 78 Int64 Long 6 byte = 8 bit 8... 8 přibližně -7 4 83 46 469... -7 4 83 46 469 Decimal Při psaní programů a deklarování typů proměnných pro ukládání celých čísel je třeba stále mít na paměti, že může dojít k přetečení vymezeného rozsahu paměti, jak už bylo výše uvedeno. Pokud si programátor neuvědomí odpovídající základní matematické souvislosti, snadno se mu podaří vytvořit programy s nekonečnými cykly. V takových případech překladač nehlásí žádné syntaktické chyby, ale program je nepoužitelný, protože jeho chod nikdy není ukončen. Vrátíme-li se k tabulce.4, pak lze např. říci, že v paměti o velikosti byte můžeme ukládat celá čísla v rozsahu -3 768 3 767. Chápáno v absolutní hodnotě tak můžeme ukládat čtyřciferná čísla v rozsahu od do 9 999. Můžeme ale také ukládat některá pěticiferná čísla, a to v rozsahu od do 3 767. Příslušné výpočty tedy mohou probíhat s přesností 4 5 platných dekadických míst. Nelze tedy jednoznačně tvrdit, že všechny výpočty budou realizovány s přesností na 4 nebo naopak s přesností na 5 platných dekadických míst. To je také důvod, proč v návodech ke kalkulačkám se můžeme např. dočíst, že výpočty probíhají s přesností na až platných dekadických míst. Výrobci tedy nemohou uvést, že by výpočty probíhaly právě na nebo právě na platných dekadických míst. 8/5

Vladimír Jehlička Programování.5 Vyjádření reálných čísel v exponenciálním tvaru Při výpočtech se ale nemůžeme omezovat pouze na práci s celými čísly. Do paměti počítače je třeba vkládat také reálná čísla, tj. čísla s desetinnou částí. Ta jsou ukládána v exponenciálním tvaru. Např. dekadické číslo 4 53,86 lze v exponenciálním tvaru vyjádřit jako 4 4,5386., kde 4,5386 je mantisa a 4 je exponent zadaného čísla. Jedná se tedy o dvě samostatná čísla, která pro potřeby ukládání do paměti počítače lze chápat jako celá kladná či celá záporná čísla. Při zápisu reálných čísel s desetinnou částí tedy opět bude vše záviset na rozsahu vymezené paměti počítače. Velikost paměti vyhrazené pro zápis mantisy bude určovat přesnost vyjádření reálného čísla, a tedy počet platných cifer. Velikost paměti vyhrazené pro zápis exponentu bude určovat řádový rozsah zapisovaných čísel..6 Ukládání reálných čísel Při ukládání reálných čísel do paměti počítače je vymezená paměť počítače rozdělena na dvě části. V první je uložena mantisa daného čísla a ve druhé části je uložen jeho exponent. V následující tabulce jsou uvedeny rozsahy pamětí, které jsou rezervovány pro ukládání reálných čísel, a odpovídající rozsahy dekadických čísel, které lze do vymezených částí paměti zapsat. Současně jsou uvedeny odpovídající typy proměnných, které lze využít při psaní programů. Tabulka.5 Rozsah reálných čísel, která lze zapsat do různě velké vymezené paměti počítače Počet Typ proměnné Rozsah Rozsah čísel platných Visual paměti Delphi číslic Basic -3,4. 38 -,5. -45 4 byte = 3 bit 7 8 Single Single,5. -45 3,4. 38 6 byte = 48 bit -,7. 38 -,9. -39 Real48 9/5

Vladimír Jehlička Programování 8 byte = 64 bit byte = 8 bit 6 byte = 8 bit,9. -39,7. 38 -,7. 38-5,. -34 Double 5 6 5,. -34,7. 38 (Real) Double -,. 493-3,6. -495 - Extended 3,6. -495,. 493-7,9865464337593543 95335 - -8-8 8 Decimal 7,9865464337593543 95335 Jestliže v matematice standardně pracujeme s čísly z množiny reálných čísel, pak při práci na počítači si musíme uvědomit, že nemáme k dispozici celou množinu reálných čísel. Pracujeme vždy pouze s určitou podmnožinou množiny reálných čísel, a to v závislosti na deklaraci typu příslušné proměnné, do které budeme ukládat čísla s desetinnou částí. Tato omezení platí nejenom pro programy, které píšeme v libovolném programovacím jazyku, ale samozřemě platí pro jakoukoliv práci na počítači, kalkulačce apod. Můžeme si to ověřit např. při práci s velmi často využívaným tabulkovým procesorem Excel..7 Ukládání čísel v tabulkovém kalkulátoru Excel Zkusme nejprve nalézt největší celé číslo, které lze zadat do buňky tabulkového kalkulátoru Excel. Když zadáme hodnotu 345 678 9, pak na obr.. vidíme zobrazení příslušného čísla. /5

Vladimír Jehlička Programování Obr.. Zadání čísla s přesností na platných dekadických míst Přidáme-li další cifru, pak hodnota 3 456 789 bude automaticky zobrazena v exponenciálním tvaru. Obr.. Zobrazení čísla v exponenciálním tvaru Budeme-li přidávat další cifry, a tedy řádově zvětšovat hodnotu zobrazovaného čísla, pak zjistíme, že všechna čísla budou automaticky zobrazena v exponenciálním tvaru. Zkusme nyní změnit formát buňky podle nastavení, které je uvedeno na obr..3. /5

Vladimír Jehlička Programování Obr..3 Nastavení formátu pro zobrazení čísel Následující obr..4 dokladuje, že můžeme zadávat i řádově větší hodnoty, např. 34 567 89 3 456. Obr..4 Pokus o zadání čísla s přesností na 6 platných dekadických míst Stiskneme-li následně klávesu Enter, pak se číslo v buňce automaticky uloží s přesností na 5 platných dekadických míst. /5

Vladimír Jehlička Programování Obr..5 Uložení čísla s přesností na 5 platných dekadických míst. Budeme-li tímto směrem dále pokračovat, pak zjistíme, že následující zadávané cifry jsou automaticky nahrazovány nulami. Excel s těmito číselnými hodnotami bude pracovat jako s reálnými čísly, která mají mantisu vyjádřenou na 5 dekadických platných míst. Zkusme se nyní zabývat otázkou přesnosti výpočtů s využitím všech 5 platných dekadických míst. Do buňky B zadejme číslo 34 567 89 3 456. Po stisku klávesy Enter se ale v této buňce zobrazí číslo 34 567 89 3 45, viz obr..6. Vidíme tedy, že cifra na 6. dekadickém místě byla nahrazena nulou. Obr..6 Problémy s výpočty na 5. a 6. platném dekadickém místě Ve sloupci A budeme dále uvádět matematický zápis prováděných operací. Ve sloupci B budou realizovány jednotlivé výpočty. Do buňky B vložme číslo. V buňce B3 vytvořme součet předcházejících dvou hodnot. Uvědomíme-li si, že Excel dokáže pracovat maximálně s přesností na 5 platných dekadických míst, pak je zřejmé, že z hodnoty, jež je uložena v buňce B, může k číslu z buňky B přičíst pouze hodnotu, viz obr..6. V buňce B4 nyní vypočítejme rozdíl hodnot uložených v buňkách B3 a B. K výpočtu použijeme vztah =B3-B. Budeme-li předpokládat, že Excel zobrazuje stkutečné hodnoty, se kterými počítá, pak by výsledkem 3/5

Vladimír Jehlička Programování výpočtu měla být hodnota. Ale jak je vidět na obr..6, výsledkem výpočtu je hodnota. V buňce B5 vypočítejme rozdíl hodnot uložených v buňkách B3 a B. Budeme-li opět předpokládat, že Excel ve svých buňkách zobrazuje čísla, se kterými skutečně pracuje, pak bychom neměli jako výsledek výpočtu získat hodnotu, která je uložena v buňce B. Ale obr..6 dokladuje, že tomu tak není. Celkově tedy můžeme konstatovat, že Excel pracuje s přesností na 5 platných dekadických míst. Na 6. místě se nacházejí hodnoty, které nelze předem jednoznačně předpovídat, ale v některých případech s nimi Excel pracuje. Obdobným způsobem můžeme zkoumat rozsah exponentů při zápisu reálných čísel v Excelu. Na obr..7 je dokladováno, že je možno do buňky zadat číslo 38. Při zadání čísla 39 ale už došlo k chybě, takže větší čísla už zadávat nelze, viz obr..8. Obr..7 Zadání největšího možného čísla Obr..8 Pokus o zadání čísla, které přesáhlo maximální přípustnou mez Zaměříme-li se naopak na záporné hodnoty exponentů, pak zjistíme, že nejmenší možné číslo je řádově -37, viz obr..9. 4/5

Vladimír Jehlička Programování Obr..9 Zadání nejmenšího možného čísla Při pokusu o vložení menšího čísla, systém převezme zadávanou hodnotu jako nulovou, viz obr... Obr.. Pokus o zadání čísla, které překročilo minimální přípustnou mez Vše lze vysvětlit a zdůvodnit ukládáním mantisy a exponentu reálného čísla do vymezené části paměti počítače ve formě dvojkového doplňku. A zde se dostáváme k jádru problému, který souvisí s přesností ukládaných čísel do pamětí kalkulaček a počítačů. V žádném případě se nejedná pouze o problematiku tabulkového kalkulátoru Excel, ale o obecná pravidla, která platí pro práci na počítačích a pro tvorbu programů v libovolném programovacím jazyku. Vrátíme-li se k tabulce.5, pak můžeme konstatovat, že tabulkový kalkulátor Excel ukládá čísla v exponenciálním tvaru, který koresponduje s deklarováním proměnných typu Double. K uložení do paměti tedy využívá kapacitu 8 byte a mantisu čísla zobrazuje s přesností na 5 až 6 platných dekadických míst. 5/5