crzp.uniag.skcrzp.uniag.sk/.../a/05755d3a2f1f4a04921922e20c4d7b51.docx · web viewpráca môže...

88
SLOVENSKÁ POĽNOHOSPODÁRSKA UNIVERZITA V NITRE TECHNICKÁ FAKULTA 1130650 APLIKÁCIA „ČÍSLA A ČÍSELNÉ SÚSTAVY“

Upload: others

Post on 17-Jan-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

SLOVENSKÁ POĽNOHOSPODÁRSKA UNIVERZITA

V NITRE

TECHNICKÁ FAKULTA1130650

APLIKÁCIA „ČÍSLA A ČÍSELNÉ SÚSTAVY“

2011 Patrik Andrásko

Page 2: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

SLOVENSKÁ POĽNOHOSPODÁRSKA UNIVERZITA

V NITRE

TECHNICKÁ FAKULTA

APLIKÁCIA „ČÍSLA A ČÍSELNÉ SÚSTAVY“

BAKALÁRSKA PRÁCA

Študijný program: 2386700 Manažérstvo kvality produkcie

Študijný odbor: Kvalita produkcie

Školiace pracovisko:Katedra elektrotechniky, automatizácie a

informatiky

Školiteľ: doc. Ing. Zuzana Palková, PhD.

Nitra 2011 Patrik Andrásko

Page 3: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý
Page 4: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý
Page 5: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

Čestné vyhlásenie

Podpísaný Patrik Andrásko vyhlasujem, že som záverečnú prácu na tému

„Aplikácia: Čísla a číselné sústavy“ vypracoval samostatne s použitím uvedenej

literatúry.

Som si vedomý zákonných dôsledkov v prípade, ak uvedené údaje nie sú pravdivé.

V Nitre 15. apríla 2010

Patrik Andrásko

Page 6: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

Abstrakt

Práca sa zaoberá číselnými sústavami a má za cieľ oboznámiť študentov technických

vied s problematikou čísel a číselných sústav. Prácu možno rozdeliť na dve časti.

V prvej časti – teoretickej, sa autor venuje histórií číselných sústav a predstaveniu

v súčasnosti štyroch najpoužívanejších. Na konkrétnych príkladoch približuje spôsob

prevádzania čísel medzi jednotlivými číselnými sústavami. Práca sa taktiež zameriava

na využitie číselných sústav pri kódovaniach čísel v počítači.

Hlavným cieľom práce je realizácia aplikácie, ktorá bude slúžiť študentom ako

elektronická študijná pomôcka na ozrejmenie vzájomných prevodov čísel. O vysvetlenie

funkčnosti tejto aplikácie sa autor venuje v druhej časti práce, kde opisuje spôsob ako

danú prácu realizoval a tiež zvolené vývojové prostredie. Výsledkom práce je aplikácia,

ktorá má za úlohu previesť číslo do zvolenej číselnej sústavy a zobraziť výsledok spolu

s postupom.

Kľúčové slová: čísla, číselné sústavy, prevod, študijná pomôcka, java.

Page 7: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

Abstract

This work deals with numeric systems and aims to familiarize students of technical

sciences with problems of number and numerical systems. Work can be divided into

two parts. In the first part - theoretical, the author addresses to the history and

presentation of numerical systems in the four most widely used today. On the specific

examples explains converting numbers between different numerical systems. The work

also aims to use the numerical system in coding numbers on the computer.

The main objective of this work is the realization of applications that will be used by

students as an electronic study aid to clarify the mutual transfer of numbers. Author in

the second part explains the functionality of this application, when he describes the way

work is done and given also the chosen development environment. The result is an

application that is designed to transfer the number to the chosen numerical system and

view the result along with the procedure.

Keywords: numbers, numerical systems, transfer, study aid, java.

Page 8: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

Obsah

Zoznam skratiek a značiek.............................................................................................8

Úvod..................................................................................................................................9

1 Súčasný stav riešenej problematiky doma a v zahraničí...................................11

1.1 Číselné sústavy v minulosti..............................................................................11

1.2 Číselné sústavy v súčasnosti.............................................................................16

1.2.1 Desiatková číselná sústava........................................................................16

1.2.2 Dvojková číselná sústava..........................................................................18

1.2.3 Osmičková číselná sústava........................................................................23

1.1.1 Šestnástková číselná sústava.....................................................................25

1.1.2 Prevody medzi nedesiatkovými číselnými sústavami...............................28

1.1.3 Ďalšie typy číselných sústav......................................................................31

1.3 Kódovanie čísel v počítači................................................................................32

1.1.4 BCD kód (8421)........................................................................................32

1.1.5 ASCII (American Standart Code for Information Interchange)................33

1.1.6 UNICODE a UTF – 8................................................................................34

2 Cieľ práce...............................................................................................................35

3 Metodika práce......................................................................................................36

4 Výsledky práce.......................................................................................................38

4.1 Všeobecne o Jave a prečo práve Java...............................................................38

4.2 Aplikácia – prevodník číselných sústav............................................................40

4.2.1 Popis zdrojového kódu..............................................................................40

1.2.2 Popis programu z pohľadu používateľa....................................................50

5 Záver.......................................................................................................................54

6 Zoznam použitej literatúry...................................................................................55

7 Prílohy....................................................................................................................57

Page 9: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

Zoznam skratiek a značiek

ASCII – (American Standart Code for Information Interchange)

štandardný kód pre výmenu informácií

Bajt – (byte) ľubovoľný znak v 8 – bitovom kódovaní

BCD – (Binary Coded Decimal) binárne kódovaná desiatková sústava

Bit – základná jednotka informácie [b]

BSOD – (Blue screen of death) označenie chybového hlásenia operačného systému

Microsoft Windows

EBCDI – (Extended Binary Coded Decimal Interchange) rozšírený BCD kód

GUI – (Graphical User Interface) grafické používateľské rozhranie

JDK – (Java Development Kit) vývojové nástroje pre programovanie v Jave

JVM – (Java Virtual Machine) javovský virtuálny stroj

MS – softvérová firma Microsoft

NetBeans – bezplatné vývojové prostredie pre tvorbu aplikácií v jazyku Java

UNICODE – medzinárodný štandard pre univerzálne kódovanie znakov pre počítače

UTF – 8 – (Unicode Transformation Format) 8 - bitové bezstratové kódovanie

variabilnou dĺžkou určené pre Unicode znaky

Page 10: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

Úvod

Bakalárska práca pojednáva o číselných sústavách. Cieľom práce je opísať základné

princípy číselných sústav a následne vytvoriť fungujúcu aplikáciu – študijnú pomôcku na

prevádzanie čísel v rôznych číselných sústavách. Keďže v desiatkovej sústave vieme

počítať už odmalička, je to pre nás – pre ľudí najprirodzenejšia číselná sústava. Pre

počítače by však bolo neefektívne pracovať v tejto sústave, a preto sa používajú sústavy –

dvojková, osmičková a šestnástková. Pre pochopenie systému, akým počíta samotný

počítač je nutné, aby študenti zaujímajúci sa o problematiku číselných sústav vedeli

samostatne a rýchlo prevádzať čísla v jednotlivých číselných sústavách. Výsledkom práce

je aplikácia určená primárne študentom ako elektronická metodická pomôcka, ktorá by im

mala pomôcť objasniť problematiku číselných sústav. Práca môže slúžiť spolu s priloženou

aplikáciou ako učebný text pre študentov, ktorý sa hlbšie zaujímajú o číselné sústavy.

Práca oboznamuje študentov aj s využitím číselných sústav v matematike a informatike.

Zároveň je aj návodom pre vyučujúceho informatiky na vyučovanie tematického celku

číselné sústavy.

Text je rozdelený do viacerých kapitol a podkapitol. V podkapitole nazvanej „Číselné

sústavy v minulosti“ sa oboznamujeme so vznikom a používaním číselných sústav od

prvých náznakov počítania s kamienkami a vrúbkami až po sústavy starodávnych národov.

Ďalšia kapitola „Číselné sústavy v súčasnosti“ hovorí o jednotlivých typoch číselných

sústav používaných v dnešnom vyspelom svete. Táto časť by mala pomôcť študentom

pochopiť princíp prevádzania čísel medzi jednotlivými číselnými sústavami. Na vhodných

príkladoch sa tu vysvetľuje postup pri prevode. Nasledujúca podkapitola sa venuje

kódovaniu čísel v počítačoch. Táto podkapitola hovorí o binárne kódovanej desiatkovej

sústave – BCD, a taktiež jej rozšíreným kódovaniam ASCII, UNICODE a UTF - 8.

V kapitole „Výsledky práce“ sa práca venuje samotnému využitiu programových

prostriedkov na zostavenie fungujúcej aplikácie (prevodníka číselných sústav). Aplikácia

na prevod číselných sústav patrí do skupiny s názvom Aplikačný softvér. Jedná sa o

skupinu programov, ktoré riešia konkrétne úlohy v organizáciách alebo podnikoch. Ide

o širokú skupinu programov, v ktorých sa premietajú konkrétne požiadavky užívateľov.

V našom prípade ide o aplikáciu, ktorá rieši prevádzanie čísel medzi jednotlivými

číselnými sústavami a je určená pre študentov. Aplikáciu možno použiť ako študijnú

9

Page 11: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

pomôcku na vizualizáciou prevodov spomínaných v podkapitole „Číselné sústavy

v súčasnosti“.

10

Page 12: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

1 Súčasný stav riešenej problematiky doma a v zahraničí

Číslo definujeme ako abstraktnú entitu, ktorá sa používa na opis množstva. Je to tiež

rad symbolov, kde má každý symbol definovanú hodnotu. Číslo môžeme definovať aj ako

súčet matematických výrazov. Každý výraz je daný súčinom číselného symbolu a jeho

hodnoty (váhy). (Hruška, 1960)

Číselná sústava je sústava znakov a pravidiel k zobrazovaniu čísel a vykonávanie

operácií s nimi. Pomocou základu a jeho mocnín môžeme vyjadriť ľubovoľné číslo.

1.1 Číselné sústavy v minulosti

V súčasnosti používaný spôsob zápisu prirodzených čísel v desiatkovej sústave je len

výsledkom dlhého a komplikovaného vývoja. Jeden z najstarších a najjednoduchších

spôsobov zápisu prirodzeného čísla spočíval v použití jedného znaku. Z dostupných

pomôcok to mohol byť napr. zárez na kosti (Obr. 1), kamennej doske, drevenej tyči a pod.

Používali sa taktiež uzly na šnúre, usporiadané kamienky, či prsty na rukách a nohách.

Dôkazom, že ľudia už v dobe kamenej mali potrebu si zaznamenávať číselné hodnoty, je

nález vlčej kosti (Obr. 2) v okolí obce Dolní Věstonice, ktorá obsahuje 55 zárezov.

(Palumbíny, 1996)

Obr. 1 Zárezy na kosti (http://www.fi.muni.cz/)

11

Page 13: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

Obr. 2 Nález vlčej kosti (http://www.vesmir.cz)

Pre vyjadrenie veľkých čísel to však bolo nepraktické. V snahe zlepšovať číselné

sústavy preto nezostávalo nič iné ako zápis zjednodušiť. Skupiny s rovnakým počtom

znakov tvorili zoskupenia alebo boli nahradené jedným znakom. V prípade, keď hodnota

použitých znakov nezávisí na ich pozícií v zápise, hovoríme o nepozičnej číselnej

sústave. (Klimeš, 2005)

Medzi typických predstaviteľov týchto sústav môžeme zaradiť sústavy:

a) egyptská – každý z číselných rádov bol nahradený určitým číselným znakom:

Obr. 3 Egyptská nepozičná číselná sústava

Pre vyjadrenie čísla 724 sa použije 7 znakov pre stovky ρ, 2 znaky pre desiatky ∩ a 4

znaky pre jednotky. (Benďák, cit. 2010-11-11)

12

Page 14: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

b) grécka - herodiánska symbolika (Tab. 1) bola v Grécku používaná do 1 storočia p.

n. l.

Tab. 1 Herodiánska symbolika

1 5 10 50 100 500 1000 5000 10000

Táto symbolika bola však neskôr nahradená iným spôsobom zápisu, tzv. jónsky zápis

(Tab. 2). Vyznačoval sa tým, že pre zápis čísel sa využívali znaky abecedy (0 – 9, 10 – 90,

100- 900). Pridaním čiarky nad znak (apostrof) sa zapisovali tisíce a pridaním písmena M

desaťtisíce. (Palumbíny, 1996)

Tab. 2 Jónsky zápis

1 2 3 4 5 6 7 8 9 10

α β γ δ ε ς ξ ν ϑ ι

c) rímska – predstavuje prechod od nepozičných číselných sústav k sústavám

pozičným, kde umiestnenie niektorých znakov ma rozhodujúci význam, napr. IX

a XI. Je to jedna z mála sústav, ktorá sa používa dodnes (Tab. 3).

Tab. 3 Rímska číselná sústava

1 5 10 50 100 500 1 000 10 000

I V X L C D M M

13

Page 15: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

Pozičná (polyadická) číselná sústava je sústava, kde tá istá veličina môže vyjadrovať

rozličné hodnoty v závislosti od svojej polohy (pozície) v zápise čísla. Vytvorenie

pozičných číselných sústav patrí medzi najvýznamnejšie objavy v histórií ľudstva. Každé

jedno číslo je možné zapísať pomocou ohraničeného množstva znakov. (Znám, 1975)

Pozičné číselné sústavy poznáme:

a) sumerská, babylonská - počiatky pozičnej sústavy siahajú do obdobia starých

Sumerov žijúcich v južnej Mezopotámií. Pre zapisovanie číslic do hlinených tabúl

(klinové písmo) sa spočiatku používal znak   . Jeho množením sa dali zapísať

číslice 1 až 9. Pre číslo 10 sa neskôr použil znak         . Desiatková tabuľka teda

vyzerá nasledovne (Tab. 4):

Tab. 4 Sumerská číselná sústava

1 2 3 4 5 6 7 8 9 10

Príklad zápisu čísla 35:

Sumeri ako prví rozdelili deň na 24 hodín, hodinu na 60 minút a minútu na 60 sekúnd.

Pred 4000 rokmi tak vytvorili systém počítania času, ktorý funguje až dodnes. Nevýhodou

sústavy však bola neexistencia nuly. Sumerská sústava tiež umožňovala zapisovať čísla iba

v rozsahu 0 až 59. Preto Babylončania neskôr prebrali sumerskú sústavu a vylepšili ju.

Z jednotiek vytvorili jednotky vyššieho rádu a ich kombináciou umožnili zapisovať aj čísla

väčšie ako 59. Je to sústava, ktorá má základy 10 a 60. (Palumbíny, 1996)

Sústavu so základom 60 využívame aj v súčasnosti na reprezentáciu časových údajov a

pri meraní uhlov. Za základnú jednotku považujeme jednotku sekundy, ktorá môže byť

časová alebo uhlová. Pri hodnotách 0 – 9 uvažujeme ako o jednotke nultého rádu. Jednotka

vyššieho rádu je tvorená 60 sekundami a nazýva sa minúta. Hodinu alebo stupeň potom

tvorí 60 minút. O vyšších jednotkách už neuvažujeme. (Hruška, 1960)

14

Page 16: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

Príklady zápisov časových a uhlových údajov:

3h21m08s (hodiny, minúty, sekundy)

90o07′38″ (stupne, minúty, sekundy)

b) mayská – Mayovia spočiatku zapisovali čísla v nepozičnej päťkovej sústave    od 1

do 19. Čísla 20 a vyššie neskôr zapisovali v pozičnej dvadsiatkovej sústave. Čísla

sa zapisujú smerom zdola nahor. Mayovia ako prví vo svojej sústave používajú

znak nuly (Tab. 5). (Znám, 1986)

Tab. 5 Mayská číselná sústava

0 3 5 8 10 19 20

c) arabská – je indického pôvodu, kde indické číslice so sumersko - babylonským

pozičným princípom a gréckym znakom pre chýbajúci rád vytvorili systém, ktorý

sa rozšíril prakticky po celej zemi. Do Európy bola rozšírená zásluhou Fibonacciho,

arabského matematika, a preto je tento systém ľudovo označovaný ako „arabské

číslice“. V arabskej sústave sa objavuje číslica nula, ktorú nazvali „as sifra“, čo

znamená dodnes používané „cifra“. Čísla a ich zápis, ako ich poznáme dnes

zaviedli práve Arabi. (Znám, 1986)

15

Page 17: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

1.2 Číselné sústavy v súčasnosti

1.2.1 Desiatková číselná sústava

Desiatková číselná sústava označovaná tiež ako dekadická, je v súčasnosti

najpoužívanejšia číselná sústava vôbec, v ktorej počítame takmer všetko. Je to sústava,

ktorú používame dennodenne a je pre nás samozrejmosťou. V desiatkovej (dekadickej)

číselnej sústave používame 10 znakov: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 a ich pozíciou sa vyjadrujú

jednotky, desiatky, stovky atď. Otázka však znie: Prečo práve desať? Dôvodov môže byť

niekoľko. Faktom je, že táto sústava mohla vzniknúť jednoducho použitím počtu prstov na

rukách. Prsty boli predsa len prvým kontaktom pri určovaní počtu. Ďalším dôvodom je tiež

fakt, že číslo desať je primerané číslo, ktoré nie je malé ale ani veľké. S počtom cifier

v desiatkovej sústave sa tiež dobre ráta s použitím algoritmov základných počtových

operácií pri sčítaní, odčítaní, násobení a delení čísel zapísaných v desiatkovej sústave.

(Palková, 2008)

Netreba však zabudnúť, že sa jedná o pozičnú číselnú sústavu, v ktorej vieme

ľubovoľné číslo všeobecne vyjadriť N polynómom podľa vzťahu:

N=Zn Pn+Zn−1 Pn−1+…+Z1 P1+Z0 P0+Z−1 P−1+Z−2 P−2+…++Z−m P−m

( 1 )

N= ∑i=−m

n

Zi Pi

P = základ číselnej sústavy (P = 2, 3, 4, 5, 6 ...)

Zi = znaky použiteľné v danej číselnej sústave

N = číslo vyjadrené v číselnej sústave o základu P

n = počet rádových miest

Podmienky, ktoré platia: Zn≠ 0

Z−m≠ 0

Zi=0 pre i>n a i<−m

Zi=0 ÷ P−1 pre i∈ ⟨n−1;−m+1 ⟩

16

Page 18: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

Pre desiatkovú sústavu teda transformáciou všeobecného vzorca ( 1 ) platí:

a=an×10n+an−1× 10n−1+…+a1×10+a0 , ( 2 )

kde a0 , a1 , …, an−1 , an∈ { {0 , 1 ,2 , …, 9 } (číslice desiatkovej sústavy)

Podmienka: an≠ 0

O číslici ai podľa vzorca ( 2 ) hovoríme, že je i - teho rádu. Číslo 10 i sa nazýva jednotka

rádu i. (Hruška, 1964)

Príklad: Číslo 95 342 môžeme rozpísať nasledovne:

95342=9× 104+5 ×103+3× 102+4 × 101+2× 100

Hovoríme, že číslo 95 342 má 9 jednotiek štvrtého rádu, 5 jednotiek tretieho                 

rádu, 3 jednotky druhého rádu, 4 jednotky prvého rádu a 2 jednotky nultého               rádu.

Číslo 10 predstavuje základ a čísla 4, 3, 2, 1, 0 nazývame exponentami.

Pre ľahšiu čitateľnosť zapisujeme veľké čísla v trojciferných skupinách, ktoré počítame

sprava a nazývame ich triedy. Jednotlivé triedy od seba oddeľujeme malou medzerou.

Najvyššia trieda v čísle nemusí byť úplná a môže mať menej než tri číslice. (Hruška, 1964)

Príklad: Číslo 12 521 440 má tri triedy:

trieda miliónov trieda tisícov trieda jednotiek

1 2 5 2 1 4 4 0

Keďže základ číselnej sústavy môže nadobúdať všeobecne ľubovoľné prirodzené číslo

(P = 2, 3, 4, 5, 6 ...), číselných sústav poznáme nekonečno. V informatike však z

praktického hľadiska rozlišujeme len štyri číselné sústavy:

Ak P = 2, hovoríme o dvojkovej (binárnej) číselnej sústave

Ak P = 8, hovoríme o osmičkovej (oktalovej) číselnej sústave

Ak P = 10, hovoríme o desiatkovej (dekadickej) číselnej sústave

Ak P = 16, hovoríme o šestnástkovej (hexadecimálnej) číselnej sústave

17

Page 19: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

1.2.2 Dvojková číselná sústava

Dvojková číselná sústava má základ P = 2 a používame v nej dve číslice 0 a 1. Táto

sústava začala nadobúdať význam od obdobia vzniku prvých elektronických počítačov.

Nula a jednotka predstavujú v praxi dve hodnoty elektrického prúdu, z čoho vyplýva, že

pre počítač majú tieto čísla výhodu ľahkej interpretácie. Nositeľom hodnoty v

elektronických počítačoch je elektrické napätie (Hennyeyová, 2009). Dvojková číselná

sústava je považovaná za najbežnejšiu číselnú sústavu, ktorá má z hľadiska technického aj

programového vybavenia stroja významné výhody. Z technického hľadiska sú to napr.

jednoduché algoritmy aritmetických a logických operácií a ich následná realizácia, ďalej

v porovnaní s inými sústavami je potrebný menší rozsah pamäte a pod. Z programového

hľadiska treba spomenúť možnosť delenia a násobenia mocninami dvoch jednoduchým

posunom čísla. Dvojková sústava sa hojne využíva, a to v moderných elektrónkových

počítačoch. Z programovacích jazykov možno spomenúť programovací jazyk assembler,

ktorý výrazne využíva dvojkové čísla. Assembler je materským jazykom procesora. Na

identifikáciu čísel v binárnej sústave, sa používa na konci čísla znak „b“ – prvé písmeno

v slove „binárna“, podobne to bude aj s dekadickou (desiatkovou) a hexadecimálnou

(šestnástkovou) sústavou. Binárna sústava sa tiež využíva pri logických inštrukciách a pri

práci s grafikou.

Nevýhodou dvojkovej sústavy je pomerne dlhý zápis aj nie príliš veľkého čísla.

Napríklad, číslo 13 má štvorciferný zápis, číslo 48 šesťciferný a číslo 522 dokonca

desaťciferný. Medzi nevýhody možno tiež zaradiť potrebu prevodu pri vstupe a výstupe

z desiatkovej sústavy do dvojkovej a naopak. Pri desiatkovej sústave je výhodou práve to,

že spomínané prevody odpadajú. Preto sa desiatkové čísla väčšinou kódujú do dvojkovej

sústavy pomocou dvojkovo desiatkového kódu (BCD kód), o ktorom budeme hovoriť

neskôr.

V dvojkovej sústave počítač kóduje informácie tak, že základnej najmenšej jednotke

informácie (jednému bitu), priradí nadobúdaciu hodnotu 0 alebo 1. Pamäť počítača si

môžeme predstaviť ako milióny miniatúrnych prepínačov, z ktorých každý je buď v ľavej

polohe (pre znak 0) alebo v pravej polohe (pre znak 1). Dlhými postupnosťami prepínačov

vyjadrujeme rôzne informácie. Nadobúdacia hodnota musí obsahovať prvky s dvoma

jednoznačne rozlíšiteľnými stavmi, čiže okrem 0 a 1 môže mať aj inú logickú hodnotu,

napr. zapnutý – vypnutý, pravda – nepravda, plus – mínus, a pod. Na popis týchto stavov je

18

Page 20: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

teda najvhodnejšie použiť dvojkovú sústavu, pretože je založená na mocninách čísla dva.

(Palková, 2008)

Keď človek zadá počítaču informácie, jeho úlohou je tieto informácie prekódovať do

jemu zrozumiteľného jazyka. Tento spôsob kódovania nazývame binárny kód a

informácie zapísané v tomto kóde sa nazývajú digitálne informácie. Jednotku informácie

(jeden bit) zaviedol Claude E. Shannon (autor Teórie informácie). Vychádza z skratky

slovného spojenia „binary digit“. Všeobecne 1 bit definujeme ako množstvo informácií,

ktoré získame správou o realizácií jedného z dvoch možných, rovnako pravdepodobných

stavov. Na popísanie viac ako jedného stavu potrebujeme väčšie množstvo bitov

(Hennyeyová, 2009). Počet bitov potrebných na zapísanie daného počtu stavov je

v informatike daný vzťahom:

L=log2× N ( 3 )

L = potrebný počet bitov

N = maximálny počet získaných vzťahov (počet možností)

2 = základ logaritmu (dva možné stavy)

Vyššou jednotkou ako bit je jeden Bajt (z angl. slova Byte), ktorý tvorí skupinu ôsmich

bitov. Netreba však zabúdať, že 1B (Bajt) nie je jednotkou informácie, ale jednotkou

počítačovej pamäte. Do ôsmich bitov zoradených za sebou (jedného Bajtu) sa dá pomocou

jednotiek a núl zapísať číslo od 0 (osem núl) do 255 (osem jednotiek). Spolu je to 256 (28)

rôznych kombinácií binárnych stavov. Bajt je teda najmenšia adresovateľná časť pamäti

počítača používaná na zakódovanie jedného písmena, číslice alebo znaku. Vyššie jednotky

sú tvorené pridaním štandardných predpôn -kilo, -mega, -giga, -tera, -peta, -exa, -zetta, -

yotta. (Palková, 2008)

Základné násobky bitu sú uvedené v nasledovnej tabuľke (Tab. 6):

Tab. 6 Základné násobky bitu

1 Bajt [B] 8 bitov 8 bitov

1 Kilobajt [KB] 8*210 bitov alebo 210 Bajtov 1024 Bajtov [B]

1 Megabajt [MB] 220 bajtov alebo 210 Kilobajtov 1024 Kilobajtov [KB]

1 Gigabajt [GB] 220 kilobajtov alebo 210 Megabajtov 1024 Megabajtov [MB]

1 Terabajt [TB] 220 megabajtov alebo 210 Gigabajtov 1024 Gigabajtov [GB]

19

Page 21: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

Digitalizácia

Dôvodom, prečo počítače pracujú práve s binárnou sústavou je digitalizácia. Treba

zdôrazniť, že digitalizáciou nazývame prevádzanie analógového signálu na číselný. Nie

opačne. Prevod sa uskutočňuje pomocou analógovo – číslicového prevodníka. Pri

prevádzaní analógového signálu na digitálny, sa každému údaju priradí zodpovedajúca

kombinácia jednotiek a núl. Digitálny signál možno matematicky vyjadriť pomocou

postupnosti celých čísel, no v prípade informatiky sa jedná o kódovanie údajov pomocou

postupnosti jednotiek a núl. Digitálny signál sa spracováva pomocou číslicového počítača.

(Bešenyi, cit. 2011-02-01)

Prevod z desiatkovej sústavy do dvojkovej a naopak

Prevod z desiatkovej číselnej sústavy do dvojkovej je možné realizovať rôznymi

spôsobmi. Jedným z nich je postupné celočíselné delenie desiatkového čísla a jeho

podielov dvojkou. Zvyšok po delení (0 alebo 1) je jednou číslicou z výsledného čísla,

pričom prvý zvyšok je číslicou najnižšieho rádu. Delenie pokračuje dovtedy, kým nie je

celočíselný podiel rovný nule alebo menší ako základ dvojkovej číselnej sústavy. Tento

posledný podiel je potom poslednou číslicou čísla v dvojkovej sústave. Pri zápise čísla sa

dolným indexom vyjadruje sústava, v ktorej je dané číslo zapísané. (Palková, 2008)

20

Page 22: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

Príklad zápisu desiatkového čísla [2541]10 v binárnom tvare:

Desiatkové číslo celočíselne delíme dvomi a zapisujeme zvyšky po delení. Výsledné číslo

dostaneme zápisom zvyškov po delení zdola nahor (cifra najvyššieho rádu musí byť vždy

rôzna od nuly).

VÝPOČET ZVYŠOK

2 541 : 2 = 1 270 1

1 270 : 2 = 635 0

635 : 2 = 317 1

317 : 2 = 158 1

158 : 2 = 79 0

79 : 2 = 39 1 smer

39 : 2 = 19 1 zápisu

19 : 2 = 9 1

9 : 2 = 4 1

4 : 2 = 2 0

2 : 2 = 1 0

1 : 2 = 0 1

Výsledné binárne číslo má tvar:

[2541]10 = [100111101101]2

Prevod čísla zapísaného v binárnom tvare späť do čísla v desiatkovom tvare

prevádzame tak, že použijeme rozklad na polynómy. Jednotlivé rády sú mocniny čísla dva

(1, 2, 4, 8, 16, 32, 64, 128...). Prevod je veľmi jednoduchý, váhu každej číslice vyjadríme

dekadicky a spočítame.

1 0 0 1 1 1 1 0 1 1 0 1

211 210 29 28 27 26 25 24 23 22 21 20

21

Page 23: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

[100111101101]2 =

1 ×211+0 × 210+0 × 29+1× 28+1× 27+1 ×26++1 ×25+0× 24+1 ×23+1× 22+0 ×21+1× 20=2048+256++128+64+32+8+4+1=[ 2541 ]10

Pre väčšiu názornosť prikladám tabuľku váh (rádov) prirodzených čísel v dvojkovej

sústave (Klimeš, 2004):

Tab. 7 Váhy v dvojkovej sústave

Polynóm so základom dva Desiatková sústava Dvojková sústava

20 1 1

21 2 10

22 4 100

23 8 1000

24 16 10000

25 32 100000

26 64 1000000

27 128 10000000

28 256 100000000

29 512 1000000000

210 1024 10000000000

211 2048 100000000000

212 4096 1000000000000

213 8192 10000000000000

214 16384 100000000000000

215 32768 1000000000000000

216 65536 10000000000000000

1.2.3 Osmičková číselná sústava

Osmičková číselná sústava má základ P = 8 a používame v nej povolené znaky:

0, 1, 2, 3, 4, 5, 6, 7. Jej využitie je významné najmä pre skrátený a zrozumiteľnejší zápis

22

Page 24: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

binárnych čísel. Binárne čísla sú zvyčajne dlhé a neprehľadné postupnosti núl a jednotiek.

Pre ich jednoduchší zápis sa teda používa osmičková a šestnástková číselná sústava.

Základom je vzťah 23 = 81, čo znamená, že binárne rády sa zobrazujú jedným osmičkovým

rádom. (Palková, 2008)

Tab. 8 Hodnoty mocnín so základom 8

Polynóm so

základom osem80 81 82 83 84 85 86 87 88

Desiatková sústava 1 8 64 512 4096 32 768 262 144 2 097 152 16 777 216

Prevod z desiatkovej číselnej sústavy do osmičkovej je možné realizovať podobným

spôsobom ako bol prevod do dvojkovej sústavy. Realizácia vyplýva z postupného

celočíselného delenia desiatkového čísla a jeho podielov osmičkou. Zvyšok po prvom

delení (0 až 7) je číslicou najnižšieho rádu výsledného čísla. Celočíselný podiel sa

opätovne delí, až kým nie je rovný nule.

Príklad zápisu desiatkového čísla [2541]10 v osmičkovom tvare:

Desiatkové číslo celočíselne delíme osmičkou a zapisujeme zvyšky po delení zdola nahor

(cifra najvyššieho rádu musí byť vždy rôzna od nuly).

VÝPOČET ZVYŠOK

2 541 : 8 = 317 5

317 : 8 = 39 5 smer

39 : 8 = 4 7 zápisu

4 : 8 = 0 4

Výsledné osmičkové číslo má tvar:

[2541]10 = [4755]8

Prevod čísla zapísaného v osmičkovom tvare späť do čísla v desiatkovom tvare

prevádzame rovnakým spôsobom ako pri prevode z binárneho tvaru, a to pomocou

23

Page 25: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

rozkladu na polynómy. Výskyt postupne sa znižujúcich mocnín so základom osem

zapisujeme pomocou číslic 0 až 7.

[4755]8 = 4 ×83+7× 82+5 ×81+5 ×80=4 ×512+7 ×64+5 ×8++5 × 1=[ 2541 ]10

Výsledné desiatkové číslo má tvar:

[4755]8 = [2541]10

1.1.1 Šestnástková číselná sústava

Šestnástková číselná sústava má základ P = 16. Vychádzame zo vzťahu 2 4 = 161, čiže

štyri binárne rády sa zobrazujú jedným šestnástkovým rádom. Kedže základom sústavy je

číslo 16, pre zápis šestnástkového čísla je potrebných až 16 rôznych symbolov. Číslice 10

až 15 nemožno zapísať jedným znakom, preto ich podľa dohody zapisujeme pomocou

24

Page 26: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

veľkých písmen abecedy A až F. Povolené znaky v jednom ráde teda sú: 0, 1, 2, 3, 4, 5, 6,

7, 8, 9, A, B, C, D, E, F, podľa tabuľky:

Tab. 9 Symboly a hodnoty znakov v šestnástkovej sústave

Desiatková sústava 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Šestnástková sústava 0 1 2 3 4 5 6 7 8 9 A B C D E F

Šestnástková sústava sa podobne ako osmičková využíva pri práci s počítačom na

skrátený zápis binárnych čísel. Používa sa pri zápise znaku alebo kódu farby pixela

v počítači. Je to pochopiteľné, keďže napríklad na zápis bielej farby by sme v dvojkovej

sústave museli použiť až 24 znakov, pri šestnástkovej sústave si vystačíme len so 6

znakmi. Môžeme povedať, že nám šestnástková sústava umožňuje 4 – krát úspornejší zápis

binárnych čísel. Do jedného bajtu vieme zapísať číslo 25510, ktoré má v šestnástkovej

sústave vyjadrenie FF16. (Hennyeyová, 2009)

Zaujímavosťou je tiež fakt, že každý z nás, kto používa OS Windows sa tiež už stretol

so šestnástkovým formátom čísla. Pravdepodobne každému z nás sa už prihodila BSOD,

čiže modrá obrazovka smrti. Tieto obrazovky aj v súčasnosti občas vidieť a keď sa bližšie

pozriete, akýkoľvek BSOD obsahuje aj chybové hlásenie fyzickej pamäte, ktoré má len

hexadecimálne čísla. Taktiež všetky ostatné chybové hlásenia sú vyjadrené v tejto sústave.

Pri číselnom prevode čísla v šestnástkovom tvare budeme vychádzať z tabuľky:

Tab. 10 Hodnoty mocnín so základom 8

Polynóm so základom

šestnásť160 161 162 163 164 165

Desiatková sústava 1 16 256 4 096 65 536 1 048 576

Príklad zápisu desiatkového čísla [54127]10 v šestnástkovom (hexadecimálnom) tvare:

Desiatkové číslo celočíselne delíme šestnástkou a zapisujeme zvyšky po delení zdola nahor

(cifra najvyššieho rádu musí byť vždy rôzna od nuly).

VÝPOČET ZVYŠOK

25

Page 27: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

54 127 : 16 = 3 382 F

3 382 : 16 = 211 6 smer

211 : 16 = 13 3 zápisu

13 : 16 = 0 D

Výsledné šestnástkové číslo má tvar:

[54127]10 = [D36F]1

Naopak, prevod čísla v šestnástkovom tvare späť do čísla v desiatkovom tvare:

[D36F]16 =

13 ×163+3 × 162+6 ×161+15×160=13× 4096++3×256+6 × 16+15×1= [54127 ]10

Vyššie čísla ako 255 sa v počítači zapisujú do dvoch, troch alebo štyroch bajtov. Čísla,

ktoré majú viac ako jeden bajt sa v pamäti počítača ukladajú vždy v poradí od najnižšieho

bajtu po najvyšší (Tab. 11).

Príklad: Máme číslo [7878]10 zapísané v desiatkovej sústave. Prevodom na

hexadecimálny tvar dostávame vyjadrenie [1EC6]16. Toto číslo sa ukladá               v pamäti

počítača do dvoch bajtov. Nižší bajt obsahuje číslo C6 a vyšší bajt               číslo 1E.

Desiatkové číslo 7878 sa tiež rozdelí na nižšie a vyššie. Do               vyššieho bajtu sa uloží

číslo 198 a do nižšieho číslo 30. Zmysel a spojenie               s číslom 7878 sa objavuje až

po usporiadaní oboch bajtov do jedného:

30 ×256+198=7680+198=7878

Tab. 11 Hodnoty čísel ktoré sa dajú zapísať do n bajtov

Počet bajtov [n] Desiatková sústava Šestnástková sústava

1 1 1

1 255 FF

2 256 100

26

Page 28: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

2 65 535 FFFF

3 65 536 10000

3 16 777 215 FFFFFF

4 16 777 216 1000000

4 4 294 967 295 FFFFFFFF

5 4 294 967 296 100000000

5 1 099 511 627 775 FFFFFFFFFF

Najnižšie číslo, ktoré sa dá zapísať do n bajtov

Najvyššie číslo, ktoré sa dá zapísať do n bajtov

1.1.2 Prevody medzi nedesiatkovými číselnými sústavami

Prevod z dvojkovej do osmičkovej a šestnástkovej číselnej sústavy

Už vieme, že dvojková číselná sústava má základ P = 2 a  používame v nej číslice 0

a 1. Osmičková číselná sústava má základ P = 8 s číslicami 0 až 7. Šestnástková číselná

27

Page 29: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

sústava je vyjadrená so základom P = 16 a číslicami 0 až 9, ktoré dopĺňajú písmená A až F.

Pretože prevod z dvojkovej sústavy do osmičkovej je jednoduchý, nevyžadujú sa žiadne

náročné výpočty. Pri číselných prevodoch budeme vychádzať z  jednoduchej tabuľky:

Tab. 12 Hodnoty mocnín so základom 2

20 = 1

21 = 2

22 = 4

23 = 8

24 = 16

Pre prevod dvojkového čísla do osmičkovej sústavy je najjednoduchším spôsobom

rozdelenie dvojkového čísla do skupín po tri číslice sprava doľava. Každú trojicu číslic

potom jednoducho prevedieme na číslo v osmičkovej číselnej sústave.

Príklad:

Ľubovoľné číslo v desiatkovej sústave [4785]10 sme previedli do binárneho tvaru

[1001010110001]2. Našou úlohou je binárne číslo previesť do osmičkovej sústavy.

Binárne číslo rozdelíme sprava na trojice (prvé číslo zostane samostane).

1 001 010 110  001

Každú z trojíc prevedieme do osmičovej sústavy pomocou polynómov 20, 21, 22,

nasledovne:

1=1×20=1=1

001=0× 22+0×21+1× 20=0+0+1=1

010=0 ×22+1× 21+0×20=0+2+0=2 smer

110=1× 22+1× 21+0× 20=4+2+0=6 zápisu

001=0× 22+0×21+1× 20=0+0+1=1

28

Page 30: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

Výsledné osmičkové číslo má tvar:

[1001010110001]2 = [11261]8

Prevod späť do dvojkovej sústavy uskutočníme tak, že každú číslicu osmičkového čísla

prevedieme do dvojkovej sústavy (trojmiestne číslo) a zľava dopĺňame nuly.

Máme osmičkové číslo [11261]8.

1 1 2 6 1

001 001 010 110 001

zápis

Výsledné dvojkové číslo má tvar:

[11261]8 = [1001010110001]2

Prevod do šestnástkovej číselnej sústavy:

Prevod dvojkového čísla do šestnástkovej sústavy je podobný ako pri predchádzajúcom

prevode s tým rozdielom, že dvojkové číslo delíme do skupiny po štyri číslice namiesto

troch. Dodržujeme tiež smer sprava doľava. Vytvorené štvorice číslic potom prevedieme

na číslo v šestnástkovom tvare. Pre čísla 10 – 15 použijeme písmená A – F.

Príklad:

Ľubovoľné číslo v desiatkovej sústave [4785]10 sme previedli do binárneho tvaru

[1001010110001]2. Našou úlohou je binárne číslo previesť do šestnástkovej sústavy.

Binárne číslo rozdelíme sprava na štvorice (prvé číslo zostane samostatne).

1 0010 1011 0001

Každú zo štvoríc čísel prevedieme do šestnástkovej sústavy pomocou polynómov 20, 21, 22,

23 nasledovne:

29

Page 31: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

1=−−−1× 20=1=1

0010=0 ×23+0 ×22+1 ×21+0 ×20=0+0+1+0=2 smer

1011=1× 23+0× 22+1× 21+1×20=8+0+2+1=B zápisu

0001=0× 23+0×22+0 ×21+1 ×20=0+0+1+0=1

Výsledné šestnástkové číslo má tvar:

[1001010110001]2 = [12B1]16

Spätný prevod do dvojkovej sústavy uskutočníme tak, že každú číslicu šestnástkového

čísla prevedieme do dvojkovej sústavy (štvormiestne číslo) a zľava dopĺňame nuly.

Máme šestnástkové číslo [12B1]16.

1 2 B 1

0001 0010 1011 0001

zápis

Výsledné dvojkové číslo má tvar:

[12B1]16 = [1001010110001]2

1.1.3 Ďalšie typy číselných sústav

Tab. 13 Ďalšie typy číselných sústav

Číselná sústava Použité znaky

Dvojková (binárna) 0, 1

Trojková 0, 1, 2

30

Page 32: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

Štvorková 0, 1, 2, 3

Päťková 0, 1, 2, 3, 4

Šestková 0, 1, 2, 3, 4, 5

Sedmičková 0, 1, 2, 3, 4, 5, 6

Osmičková (oktálová) 0, 1, 2, 3, 4, 5, 6, 7

Deviatková 0, 1, 2, 3, 4, 5, 6, 7, 8

Desiatková (dekadická) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Šestnástková (hexadecimálna) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

1.3 Kódovanie čísel v počítači

Na kódovanie čísel v počítači požívame dva rôzne spôsoby kódovania. Prvou je

binárna sústava, s ktorou sme sa už oboznámili v predošlých častiach. Druhý spôsob ako

zakódovať číslo v počítači je binárne kódovaná desiatková sústava – BCD.

31

Page 33: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

1.1.4 BCD kód (8421)

BCD kód (Binary Coded Decimal) je kód, v ktorom sú každej desiatkovej číslici

priradené 4 bity – tetráda. Tento štvorbitový kód je často využívaný pre priame binárne

kódovanie desiatkových čísel do dvojkovej sústavy.

Prevodom desiatkového čísla [2541]10 sme získali dvojkové číslo [100111101101]2.

Keďže je tento zápis neprehľadný pre rýchle vyjadrenie jeho veľkosti, vyjadríme toto číslo

v BCD kóde. To znamená, že každú jednu číslicu osobitne kódujeme štyrmi bitmi podľa

tabuľky (Tab. 14). Každý bit má svoju pevnú hodnotu – váhu, preto BCD kód nazývame

tiež „váhovým“ kódom. (Štancl, 2006)

Tab. 14 Vyjadrenie desiatkových čísel v BCD kóde

Desiatkové číslo BCD kód

0 0000

1 0001

2 0010

3 0011

4 0100

5 0101

6 0110

7 0111

8 1000

9 1001

Desiatkové číslo [2541]10 je v BCD kóde vyjadrené ako [0010 0101 0100 0000]BCD.

V BCD kóde sa zapisujú štyri pozície čísla, ktoré sú rádu 1, 2, 4 a 8. Z toho vzniklo aj

označenie – kód 8421. Pomocou tohto kódovania uložíme dve číslice do jedného bajtu a

štyrmi bitmi dokážeme zakódovať 24 = 16 rôznych znakov. Tieto číslice vstupujú do stroja

8 bitmi, kde 4 bity ľavej časti tvoria tzv. zónu, ktorá svojou hodnotou (1111) udáva, že

daný znak je číslica. Tento rozvinutý tvar sa používa pre styk s periférnymi zariadeniami

stroja. Číslicová informácia sa pred uložením do pamäte stroja preskupí do zhusteného

tvaru, ktorý sa potom uplatňuje pri vnútorných operáciách s desiatkovými číslami.

32

Page 34: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

Výhodou kódu BCD je ľahké čítanie a sčitovanie údajov a jeho využitie môžeme

pozorovať v digitálnych prístrojoch na zobrazovanie číslic – sedem segmentový displej,

požívaný v kalkulátoroch a digitálnych hodinkách. V počítači sa pomocou BCD kódu

uchovávajú informácie týkajúce sa času a dátumu, prípadne niektorej inej systémovej

informácie. (Kódy a kódovanie, 2009)

Rozšíreným kódovaním je kódovanie EBCDI, pomocou ktorého možno okrem číslic

vyjadriť aj písmená a špeciálne znaky.

1.1.5 ASCII (American Standart Code for Information Interchange)

- Americký štandardný kód pre výmenu informácií

Počítaču zadávame vstupy pomocou klávesnice. Každým stlačením klávesy na

klávesnici zadáme určitý znak (písmeno, číslo, interpunkcia, špeciálne znaky atď.). Počítač

musí zobraziť tieto znaky na výstupe – na monitore. To, ako sa majú zobrazovať znaky má

počítač uložené vo svojej vlastnej pamäti vo forme kódovej schránky. Ako už bolo

spomenuté, počítač využíva 8 bitovú logiku, čiže 1 bajt sa skladá z 8 bitov a môže mať 256

kombinácií binárnych stavov.

Keďže znaky textu nevieme priamo previesť do dvojkovej sústavy vznikla tabuľka

znakov ASCII, kde sa dá každý znak vyjadriť pomocou prideleného kódu, ktorý ma

veľkosť len jeden bajt. Z toho vyplýva, že tabuľka ASCII obsahuje celkovo 256 znakov.

Každý znak (symbol) má svoju dekadickú, hexadecimálnu alebo oktálovú podobu.

Napr.: A = [65]10 „+“ = [2B]16 9 = [071]8

Tabuľka ASCII vznikla z nutnosti zjednotiť spôsob ako jednoznačne priradiť určitému

znaku práve jednu binárnu kombináciu, ktorá bude tento znak v počítači reprezentovať.

Tabuľku ASCII zaviedol americký úrad pre normalizáciu

1.1.6 UNICODE a UTF – 8

Ako už bolo spomenuté, tabuľka ASCII obsahuje 256 znakov, ktoré musia byť pre

všetky počítače v rámci krajiny rovnaké, z dôvodu kompatibility pri prenose dát. Z 256

znakov je prvá polovica pre všetky krajiny rovnaká no druhá polovica sa stanovila podľa

33

Page 35: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

potrieb konkrétnej krajiny. To spôsobilo veľký neporiadok v kódovaní znakov, a preto bol

vymyslený spôsob kódovania UNICODE, ktorý namiesto 8 bitov používa na zakódovanie

jedného znaku 16 bitov. UNICODE tak umožňuje zakódovať 65 536 možných znakov

a tým zaisťuje plnú medzinárodnú kompatibilitu v kódovaní znakov. Tento spôsob sa

využíva aj v kancelárskom balíku MS Office. Keďže 16 bitové kódovanie zaberá v pamäti

viac miesta ako 8 bitové ASCII kódovanie, bolo zavedené kódovanie UTF – 8. Podstatou

tohto kódovania je fakt, že prvých 128 znakov tabuľky ASCII je zakódovaných 8 bitovo

a ostatné znaky sú kódované 16 až 48 bitmi. Formát UTF – 8 je štandardizovaný ako

ISO/IEC 10646.

34

Page 36: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

2 Cieľ práce

Hlavným cieľom práce je vytvorenie aplikácie, ktorú bude možné použiť ako

elektronickú študijnú pomôcku. Aplikácia sa má realizovať vo vhodne zvolenom

vývojovom prostredí tak, aby bolo možné študentom ukázať hlavné princípy vo

vzájomných prevodoch medzi jednotlivými číselnými sústavami. Aplikácia musí vhodným

spôsobom uviesť študentov do uvedenej problematiky číselných sústav s dôrazom na

najpoužívanejšie číselné sústavy – dvojková, osmičková, desiatková a šestnástková. Pri

prevode čísla z jednej číselnej sústavy do druhej treba okrem samotného výsledku brať do

úvahy aj zobrazenie algoritmu prevodu pre lepšie pochopenie systému prevádzania čísel.

Výsledkom by mala byť aplikácia, v ktorej bude možné interakciou s klávesnicou určiť

nasledovné údaje:

číselnú sústavu z ktorej sa bude číslo prevádzať,

číselnú sústavu do ktorej sa bude číslo prevádzať,

samotné prevádzané číslo,

Pri zadávaní číselnej sústavy treba vylúčiť možnosť duplicity v zadaných číselných

sústavách a tiež chybu vo formáte zadávaného čísla – napr. pri zvolenej dvojkovej sústave

je možné zadať len číslo s povolenými znakmi 0 a 1. Výstupom by potom malo byť

správne číslo prevedené do zvolenej číselnej sústavy a tiež algoritmus s prislúchajúcimi

výpočtovými operáciami.

Cieľom práce je tiež jednoducho a výstižne objasniť jednotlivé časti zdrojového kódu.

Časti treba vyberať sektorovo tak, aby bola každá podstatná časť programu účelne

vysvetlená.

35

Page 37: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

3 Metodika práce

K úspešnému naplneniu zadaných cieľov je nepochybne prvým, a tiež kľúčovým

bodom, štúdium odbornej literatúry zameranej na problematiku čísel a číselných sústav.

V bežnom živote sa stretávame len s desiatkovou, prípadne dvojkou sústavou (áno – nie,

plus – mínus). Ostatné číselné sústavy sa obvykle používajú len vo výpočtovej technike.

Preto je veľmi dôležité aby človek, ktorý chce navrhnúť fungujúcu aplikáciu, správne

pochopil zápis v jednotlivých číselných sústavách. Dôležitý je tiež systém, pomocou

ktorého sa prevádzajú čísla v jednotlivých sústavách medzi sebou. Zo zadania je nám

známe, že dôraz sa kladie najmä na dvojkovú, osmičkovú, desiatkovú a šestnástkovú

číselnú sústavu. Práve pochopenie princípu počítania s číslami patrí k základnému

predpokladu pri realizácií programu.

Po ujasnení si základných princípov prevádzania je dôležité aj štúdium vhodných

programových prostriedkov, pomocou ktorých sa bude daná aplikácia realizovať. V tejto

časti je dôležitý výber vhodného programovacieho jazyka (v našom prípade Java)

a vývojového prostredia, v ktorom sa bude program písať (v našom prípade NetBeans). Je

dôležité spomenúť, že programovací jazyk Java je zdarma a voľne dostupný na

internetovej adrese http://www.oracle.com/technetwork/java/index.html. Na tejto adrese sa

tiež nachádza všetko, čo potrebujeme k programovaniu v Jave. Skratka JDK znamená Java

Development Kit a označujú ňou vývojové nástroje pre programovanie v Jave. Správne

nainštalovaná Java je hlavným predpokladom pre úspešné spustenie aplikácie.

Ako už bolo spomenuté aplikácia na prevod číselných sústav je realizovaná vo

vývojovom prostredí firmy NetBeans. Pomocou programu NetBeans sa vytvárajú,

prekladajú a ladia aplikácie v jazyku Java. Jedná sa o vývojársky softvér, ktorý je

pravidelne aktualizovaný a pre nekomerčné účely dostupný zdarma na adrese

http://netbeans.org/downloads. Jeho aktuálna verzia pred začatím realizácie aplikácie bola

NetBeans IDE 6.9.1. (Virius, 2005)

Nasledujúcim bodom po výbere programových prostriedkov je návrh samotného

algoritmu riešenia, jeho optimalizácia a overenie. Programovací jazyk Java podporuje

kódovanie Unicode. To znamená, že program napísaný v Jave dokáže pracovať s textami

napísanými v rôznych jazykoch rôznymi písmami bez toho, že by na to programátor musel

36

Page 38: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

osobitne myslieť. K zostaveniu funkčného a kvalitného zdrojového kódu je potrebné

postupovať podľa nasledovných bodov:

inicializácia premenných,

dizajnový návrh programu,

vytvorenie tried,

vytvorenie metód na zobrazenie postupu prevodu pre každú sústavu zvlášť,

kontrola a vylúčenie chýb pomocou funkcie debugger,

viesť jednoduchú a zrozumiteľnú programovú dokumentáciu,

V práci budeme pracovať primárne s číselnou premennou typu int, keďže pracujeme

s číslami. O vzájomnú interakciu s používateľom programu sa bude starať GUI, čiže

grafické používateľské rozhranie. V jave existuje niekoľko knižníc na vytváranie okien

(GUI). Medzi najčastejšie používané patria AWT a Swing. My budeme používať Swing.

Swing predstavuje množinu tried na tvorbu grafického rozhrania, kde vzhľad komponentov

je nezávislý od platformy. Aplikácia má rovnaký vzhľad na všetkých platformách. Swing

nepoužíva natívny kód na zobrazenie komponentov. O vykreslenie komponentov sa stará

sám.

V aplikácií budeme musieť použiť dve triedy. Prvá bude riešiť samotný prevod a druhá

nám bude slúžiť na vykreslovanie. Pre každý jeden prevod bude potrebné realizovať zvlášť

metódu. Ich spoločný počet bude 12. Metódy sa použijú vždy tam, kde bude potrebné danú

metódu vykonať. Pri prevodoch, kde sa vyskytuje šestnástková sústava netreba zabúdať na

nutnosť prevodu čísel na písmená a naopak. Postup prevodu musí byť jednoduchý a

výstižný, tak aby bolo možné vždy jednoznačne určiť, čo sa s čím spočítava, respektíve

násobí a delí.

Pri ladení a testovaní programu treba dôsledne odskúšať všetky kombinácie prevodu,

tak aby sa vymedzili všetky nepresnosti a chyby, ktoré môžu nastať. Nakoniec je potrebné

spísať dokumentáciu k aplikácií tak, aby sa dalo zistiť čo daná časť aplikácie práve rieši,

prípadne aby bolo možné rozšíriť funkcionalitu o ďalšie možnosti.

37

Page 39: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

4 Výsledky práce

4.1 Všeobecne o Jave a prečo práve Java

Java je pomerne nový, objektovo orientovaný programovací jazyk. Pre verejnosť bol

predstavený v roku 1995 a je používaný miliónmi programátormi po celom svete. Java

bola vyvinutá vývojovým tímom firmy Sun Microsystems pod vedením Jamesa Goslinga.

Pôvodné využitie tohto programovacieho jazyka bolo v riadení rôznej spotrebnej

elektroniky ako napríklad: mikrovlnné rúry, kávovar, atď. Tento jazyk sa mal volať Oak

(z angl. dub). Keďže sa neskôr zistilo, že programovací jazyk Oak už existuje, jeho tvorci

sa rozhodli pre názov Java, čo znamená akési americké espreso, a preto sa tiež logom stala

horúca šálka kávy.

Základom úspechu Javy bola široká možnosť zabezpečenia, z čoho vyplýva dobrá

využiteľnosť v oblasti internetu. V súčasnosti sa Java využíva v mnohých oblastiach.

Okrem jednoduchých programov a v Jave píšu aj aplety, tzn. krátke programy, ktoré je

možné vkladať do webových stránok. Obdobou apletov sú servlety, čo sú vlastne

programy, bežiace na webových serveroch a ich úlohou je vytváranie dynamických

stránok. Verzie Javy sa postupne vyvíjali od ranných verzií JDK 1.0.2, 1.1.8, 1.2.2 cez

1.3.2 a 1.4.2 až po aktuálne verzie označované jednoduchým číslom 5, respektíve 6.

Dôvodom tohto označenia je výrazný posun v možnostiach Javy. Výhodou je možnosť

pracovať v rôznych vývojových prostrediach, ktoré podporujú vizuálne nástroje. To

znamená, že týmito nástrojmi môžeme pomocou myši veľmi jednoducho zostaviť základ

svojho programu – okenné aplikácie. Z vopred pripravených komponentov vyberáme tie,

38

Page 40: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

ktoré sú pre náš program potrebné a zdrojový kód sa nám automaticky vygeneruje. Je to

nedoceniteľná funkcia pre pohodlný vývoj programu. (Hynar, 2004)

Zdrojový text

Zápis programu vo vyššom programovacom jazyku sa označuje ako zdrojový program

alebo zdrojový kód. Tento kód sa pomocou prekladača (kompilátora) prekladá do

strojového kódu. Zostavovací program – linker, spolupracuje s prekladačom a jeho úlohou

je spojiť niekoľko nezávisle preložených častí programu do jedného celku. Okrem toho

pripojí knižnice, čo sú časti programu, ktoré už boli v minulosti naprogramované niekým

iným. Výsledkom prekladu programu je súbor, obsahujúci strojový kód, ktorý je možné na

počítači priamo spustiť. Preklad zdrojového kódu je využívaný programovacími jazykmi

ako napr. C, C++ alebo Pascal a hovoríme o prekladaných (kompilovaných)

programovacích jazykoch. Iný spôsob využívajú interpretery – programy, ktoré čítajú

zdrojový kód a vykonávajú príkazy, ktoré sú v ňom obsiahnuté, čiže ich interpretujú. Ich

nevýhodou je najmä pomalosť a navyše spolu s vytvoreným programom sa musí na

počítači nachádzať aj interpretačný program. Medzi interpretery patria jazyky Basic, Perl,

Phyton a ďalšie.

Javu radíme niekde medzi prekladané jazyky a interpretery. Samotný preklad

zdrojového kódu sa síce uskutočňuje, nie však do strojového kódu počítača ale do

všeobecného jazyka, ktorý sa nazýva bajtový kód. Nasledovná interpretácia bajtového kódu

sa uskutočňuje pomocou programu JVM (Java Virtual Machine) – javovský virtuálny stroj.

Výhodou je vyššia rýchlosť behu programu ako u interpreterov a možnosť jednoduchého

prenosu preloženého programu na cieľový počítač, na ktorom je nainštalovaný JVM. To je

jedným z dôvodov prečo je práca realizovaná práve v tomto prostredí. (Hynar, 2004)

39

Page 41: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

4.2 Aplikácia – prevodník číselných sústav

V tejto časti sa budeme venovať samotnej aplikácií, slúžiacej na vyjadrenie čísla

v ľubovoľnej číselnej sústave. Na konkrétnych príkladoch si ukážeme funkcionalitu

jednotlivých častí kódu. Časti kódu si tiež popíšeme a vysvetlíme ich význam. Pri

zapisovaní kódu je dôležité rozlišovať malé a veľké písmená pretože Java patrí medzi

„case sensitive“ programy, čiže programy citlivé na veľkosť písmen.

4.2.1 Popis zdrojového kódu

Najskôr deklarujeme názov prvej triedy, ktorá má názov Cislo. Príkaz public určuje, že túto triedu môžeme používať aj z iných častí programu a teda je verejne

prístupná. Ako som už spomínal v našej aplikácií budeme používať uvedenú GUI typu

swing.

Na začiatku je tiež dôležitá deklarácia premenných. My budeme používať číselné

premenné typu int.

40

public class Cislo extend

s javax.swing.JFrame

{

int cislo; int poly;int pomocna2;int pomocna8;int pomocna16;String a;int a_na_cislo;

Page 42: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

V ďalšej časti vytvárame inštancie triedy StringBuffer, ktorá je akoby reťazec na

ktorý sa dá pripisovať bez toho aby sa stará hodnota nezmazala. Trieda StringBuffer je na

rozdiel od triedy StringBuilder synchronizovaná, takže je bezpečnejšia pri práci s

viacerými vláknami. Príkazom Label pole vytvoríme Label, ktorý môžeme definovať

ako popisovač alebo výstupné textové pole. Sem sa bude vypisovať výpis aplikácie.

Inicializácia premenných sa vykoná v konštruktore jeden krát. Po vytvorení comboboxov

v záložke Design sa pridajú položky pre jComboBox1 a jComboBox2.

V nasledujúcich riadkoch si popíšeme jednotlivé použité metódy na prevod čísel.

41

public Cislo() { initComponents(); jComboBox1.addItem("dvojkova"); jComboBox1.addItem("desiatkova"); jComboBox1.addItem("osmickova"); jComboBox1.addItem("sestnastkova");

StringBuffer polynom= new StringBuffer(5000); StringBuffer zjednoduseny_polynom= new StringBuffer(5000);StringBuffer medzivypocet= new StringBuffer(5000);Label pole;

Page 43: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

Z 2 do 8

Ako prvú udávame metódu, ktorá je zavolaná pri preklade dvojkového čísla do

osmičkového. V tejto metóde načítavame vstup do premennej a. Sem sa načíta číslo ktoré

zadávame do kolónky VSTUP. Následne v metóde zisťujeme dĺžku vstupu príkazom int dlzka=a.length(). Premenná pripocitaj je pomocná premenná, ktorá zisťuje

ako sa ma oddeliť vstup. To znamená, že tak usekávame 3 čísla a z toho nám vzniká jeden

osmičkový bit. Je to potrebné kvôli tomu, že pri tomto prevode sa číslo „usekáva“ smerom

odzadu dopredu. Po zistení dĺžky vstupu určujeme podmienky. Ak nám dĺžka vstupu udáva

po delení trojkou zvyšok 0, tak premennej pripocitaj priradí nulu. Podobne aj pri

ďalších podmienkach.

Ďalej nasleduje cyklus, v ktorom začíname od pozície pripocitaj (koľko bol

zvyšok dĺžky vstupu až po koniec ) a pokračujeme až po koniec s takým krokom, že pri

každom cykle sa hodnote i pripočíta hodnota 3. Zapísanie rozdeleného vstupu prebieha

42

public void postup_z_2_do_8(){ a=jTextField1.getText(); dlzka=a.length(); pripocitaj=0 if (dlzka%3==0){ pripocitaj=0; } if (dlzka%3==1){ pripocitaj=1; } if (dlzka%3==2){ pripocitaj=2;

Page 44: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

v ďalšom riadku. Ide o zápis do tvaru rozdeleného tak, aby reprezentoval osembitové číslo

aj s lomkami, ktoré slúžia na ich oddelenie. Príkaz polynom.insert(0,

a.substring(0, pripocitaj)+" | ") slúži na pridanie tých čísel, ktoré

zvýšili na začiatok reťazca. Napríklad pri vstupe 10111011 sa najskôr zapíše 111 | 011 a po

vykonaní tohto príkazu sa pridá na začiatok 10 | 111 | 011.

Do vytvorených jLabel8, jLabel9 a jLabel10 sa potom uskutoční výpis výsledkov

a medzivýsledkov na plochu.

Z 2 do 16

Metóda na prevod z dvojkovej do šestnástkovej sústavy je prakticky rovnaká s tým

rozdielom, že berieme 4 čísla a nie tri ako v osmičkovej.

Z 8 do 16

43

for (int i=pripocitaj;i<=dlzka-pripocitaj;i=i+3){ polynom.append(a.substring(i, i+3)+" | "); }for(int i=0;i<jLabel5.getText().length();i++){ zjednoduseny_polynom.append(jLabel5.getText().subs       tring(i, i+1)+" | ");}if(pripocitaj!=0){polynom.insert(0, a.substring(0, pripocitaj)+" | "); } jLabel8.setText(polynom+" ="); jLabel9.setText(zjednoduseny_polynom+" =");jLabel10.setText(jLabel5.getText());

Page 45: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

V úvode metódy na prevod z osmičkovej sústavy do šestnástkovej je zavolaná metóda

postup_z_8_do_10() na prevod z osmičkovej do desiatkovej sustavy. Ak tento

prevod prebehne môžeme toto číslo v desiatkovej sústave ďalej prevádzať do

šestnástkovej. Zadeklarujeme pomocnú premennú pom = 0. Potom načítame reťazec zo

vstupu vo formáte čísla. Ďalej nasleduje cyklus, ktorý prebieha dovtedy, pokým vstup nie

je nula. Inými slovami povedané delenie číslom 16 prebieha toľkokrát, pokiaľ

nedosiahneme nulu. Keďže sa v šestnástkovej sústave nachádzajú aj písmená je potrebné

túto skutočnosť ošetriť. Zadávajú sa špeciálne podmienky, ktoré slúžia na rozlíšenie toho,

čo sa má stať ak je zvyšok 10, 11, 12, 13, 14 alebo 15. Výsledok sa má nahradiť

písmenami A,B,C,D,E,F.

Ďalšou úlohou je pridať pole do kontajnera, pomocou metódy this.add(pole) na

44

public void postup_z_8_do_16(){ postup_z_8_do_10(); pom=0;

a_na_cislo=Integer.parseInt(jLabel11.getText()); while (a_na_cislo!=0) { if(a_na_cislo%16==10){ pole=new Label(a_na_cislo+ " : 16 = "+a_na_cislo/16+" zv. A"); ... }else if(a_na_cislo%16==15){ pole=new Label(a_na_cislo+ " : 16 = "+a_na_cislo/16+" zv. F"); }else{ pole=new Label(a_na_cislo+ " : 16 = "+a_na_cislo/16+" zv."+a_na_cislo%16); }

Page 46: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

zobrazenie medzivýpočtov v okne. Keby textové pole nepridáme do kontajnera, tak sa nám

nič nezobrazí. Kontajner je vlastne komponent, do ktorého je možné vkladať iné

komponenty. Funkcia setBounds slúži na nastavenie pozície a veľkosti daného objektu.

V našom prípade je to objekt, v ktorom vypisujeme medzivýpočty. Ďalej je uvedené

delenie čísla zo vstupu číslom 16.

Z 8 do 2, a zo 16 do 2

Pri prevode z 8 do 2 sústavy opäť identicky zavoláme metódu, ktorá prevedie číslo z 8

do 10 sústavy a z nej prevádzame do dvojkovej. Celý postup je rovnaký, čiže máme číslo,

ktoré delíme pokiaľ je deliteľné dvojkou a vypisujeme do Labelu. Pri prevode z 16 do 2

sústavy taktiež podobne, prevod sa vykonáva z 16 do 10 sústavy a potom do dvojkovej.

Z 10 do 2, 8 a 16

Pri ďalších prevodoch z 10 do 2, 8 a 16 sústavy sa v cykle číslo zo vstupu delí číslom

2, respektíve 8 a 16, pokým vstup nie je 0. Pri prevode do 16 sústavy sa vyskytujú už

spomínané podmienky, ktoré zisťujú aký je zvyšok. Pri jeho hodnotách 10 – 15 sa zapíšu

namiesto číslic písmená A – F.

Z 2 do 10

V uvedenej metóde sa nachádza cyklus for, v ktorom sa budú načítavať znaky vstupu

po jednom a bude sa k nim pridávať násobok čísla 2 na x – tú, pričom x je pozícia, ktorú

aktuálne sledujeme. Potom do premennej cislo priraďujeme znaky zo vstupu po jednom.

V ďalšom riadku sa nachádza výpočet čísla 2 na i mínus prvú podľa toho, na ktorej sme

pozícií. Nasledujúce appendy znamenajú pri všetkých prípadoch to isté – v každom cykle

45

this.add(pole); pole.setBounds(47, 350+pom*20, 200, 30); a_na_cislo=a_na_cislo/16; pom++;

Page 47: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

sa im pridáva ďalšia a ďalšia hodnota a po ukončení cyklu sa nakoniec vypíše celý obsah

týchto premenných. Príkazy jLabel8, jLabel9, jLabel10 a jLabel11 slúžia na výpis do okna

aplikácie.

Z 8 do 10

Prevod rovnaký ako pri prevode z 2 do 10 sústavy, len samozrejme použijeme všade

osmičku namiesto dvojky.

46

Page 48: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

Z 16 do 8

V tomto prípade sa najskôr zavolá metóda na prevod zo 16 do 10 sústavy

postup_z_16_do_8 a s výsledkom potom pracujeme ako už podľa spomínaných

krokov.

Z 16 do 10

Postup už bol popísaný stým rozdielom, že v podmienkach sa teraz nepriraďujú číslam

písmená po vydelení šestnástkou, ale opačne. Pri vstupe, v ktorom sa môžu objaviť aj čísla

aj písmená, sa písmená prevedú na prislúchajúce čísla.

V ďalšej časti sa nachádza popis hlavnej časti programu, kde nachádza popis prevodu

čísla z dvojkovej, osmičkovej, desiatkovej a šestnástkovej sústavy do ostatných sústav,

ktorý sa objaví v časti VÝSTUP, iba ako výsledok. Okrem toho sa tu volajú už spomínané

metódy, ktoré nám slúžia na zobrazenie postupu riešenia prevodu.

Z dvojkovej do ostatných sústav

Zápis

if(jComboBox1.getSelectedItem().toString().equals("dvojkova"

)){ vyjadruje podmienku: „Ak je v comboboxe1 vybraná položka rovná „dvojkova“.

Zápis

pomocna2=Integer.parseInt(jTextField1.getText(),2); vyjadruje premennú, do ktorej načítame hodnotu z textového pola, a zároveň ju

prevádzame na číselný formát, ktorý aj očakávame ako vstup. Je to metóda, ktorá

automaticky prevedie číslo, ktoré sme načítali do textového pola do desiatkovej sústavy,

keďže v textovom poli sme načítavali číslo v dvojkovej a nie desiatkovej sústave.

V ďalších riadkoch je ošetrená možnosť výberu identickej číselnej sústavy a sú

realizované výpisy do 8, 10 a 16 sústavy podľa toho aká možnosť je vybraná v

jComboBox2. Pri prevode do 16 sústavy je použitá funkcia toUpperCase, ktorá nám

prehodí celý text na veľké písmená bez ohľadu na to či sú malé alebo veľké. Príkazy

postup_z_2_do_8(), postup_z_2_do_10() a postup_z_2_do_16() sa

volajú metódy. Napísaním názvu metódy sa metóda vždy vykoná v tej časti programu kde

je napísaná.

47

Page 49: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

Z osmičkovej, desiatkovej a šestnástkovej do iných sústav

Pri opise týchto prevodov nie je nutné popisovať postup, keďže je analogický

s prevodmi z dvojkovej sústavy.

V aplikácií sa nachádza ešte jedna funkcia, ktorá slúži na odchytenie výnimky pre iné

číselné formáty. To znamená, že číslo je možné zadávať iba v tom formáte, ktorý je

zvolený v možnosti „Z“. V opačnom prípade nastane výpis dialógového okna

s upozornením a správou aby sa zadalo číslo v správnom číselnom formáte.

Ako sme už spomínali, aplikácia obsahuje triedu Cislo. Okrem bolo potrebné vytvorit

aj druhú triedu Ukazka, ktorá nám slúži na vykresľovanie objektov. Jedná sa o triedu

rozšírenú o komponent jSrollPane, ktorý predstavuje scroolovateľné okno.

Nastavenie labelu a scrollpane-u prebieha nasledovne.

48

public class Ukazka extends JScrollPane{ private JLabel label; public Ukazka() { init(); }

private void init

label = new JLabel();

label.setVerticalAlignment(JLa

bel.TOP);

setViewportView(label);

setHorizontalScrollBarPolicy(JScro

llPane.HORIZONTAL_SCROLLB

AR_         AS_NEEDED);

setVerticalScrollBarPolicy(JScrollP

ane.VERTICAL_SCROLLBAR_A

S_NE       EDED);

Page 50: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

Zadefinujeme si metódu, ktorá po každom stlačení tlačidla vypočítaj, najskôr vymaže

obsah starých hodnôt uložených v okne.

Ďalšou metódou bude metóda pridajRiadok, ktorá nám pridáva riadky do premennej

str. Jedná sa o metódu, ktorá má rovnakú funkciu akú sme už mali – stringbuilder.

V ďalších riadkoch povoľujeme html formátovanie. Teda ak by sme použili párový tag

<b>, tak sa nám objaví vo výpise tučné písmo.

Príkaz label.setText(str.toString()) nastavuje hodnotu polu, ktorý sa

bude zobrazovať v scroolovateľnom okne.

49

private void init

label = new JLabel();

label.setVerticalAlignment(JLa

bel.TOP);

setViewportView(label);

setHorizontalScrollBarPolicy(JScro

llPane.HORIZONTAL_SCROLLB

AR_         AS_NEEDED);

setVerticalScrollBarPolicy(JScrollP

ane.VERTICAL_SCROLLBAR_A

S_NE       EDED);

public void vymazObsah(){ label.setText(""); }

public void pridajRiadok(String riadok){ StringBuilder str = new StringBuilder(); if(label.getText().equals("")){ str.append("<html>"); }else{ str.append(label.getText()); str.delete(str.indexOf("</html>"),str.length()); str.append("<br>"); } str.append(riadok); str.append("</html>"); label.setText(str.toString());

Page 51: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

1.2.2 Popis programu z pohľadu používateľa

Požívateľ aplikácie má možnosť zadať číselnú sústavu z ktorej a do ktorej chce

uskutočniť prevod. Číslo, ktoré chce previesť zadáva do časti VSTUP a výsledok sa

zobrazí v časti VÝSTUP. Pre pochopenie prevodu sa v časti POSTUP zobrazí samotný

postup akým sa dané číslo prevádza. Ovládanie je veľmi jednoduché a intuitívne.

Príklad: Preveďte číslo 100010 z dvojkovej do desiatkovej sústavy.

Obr. 4 Príklad č. 1 - prevod čísla pomocou aplikácie prevodník

50

Page 52: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

Príklad: Preveďte číslo CA247 zo šestnástkovej do dvojkovej sústavy (demonštrácia

možnosti scroolovania).

Obr. 5 Príklad č. 2 - prevod čísla pomocou aplikácie prevodník

51

Page 53: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

Príklad: Preveďte číslo 1000101011 z dvojkovej do osmičkovej sústavy.

Obr. 6 Príklad č. 3 - prevod čísla pomocou aplikácie prevodník

52

Page 54: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

Ďalšie príklady na prevádzanie čísel pomocou aplikácie prevodník sa nachádzajú

v prílohe.

V prípade zle zadaného číselného formátu nám aplikácia zobrazí chybu. (Obr. 5).

Obr. 7 Chybný číselný formát

Taktiež v prípade identicky zvolenej číselnej sústavy nás aplikácia na túto skutočnosť

upozorní (Obr. 6).

Obr. 8 Informácia o identicky zvolenej číselnej sústave

53

Page 55: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

5 Záver

K výberu mojej bakalárskej práce ma priviedlo poznanie, že aj práca s číslami môže byť

zaujímavá tak pre žiakov ako aj učiteľov. V predloženej práci som sa pokúsil opísať

základné princípy číselných sústav a dôležité bolo tiež poukázať na  ich význam v dnešnej

modernej počítačovej spoločnosti.

Ako už vieme hlavným cieľom bakalárskej práce bolo vytvorenie aplikácie, slúžiacej na

vzájomný prevod čísel medzi jednotlivými číselnými sústavami. Aplikácia, ktorú som

vytvoril spĺňa predpoklady na to aby bola použitá ako didaktická pomôcka pre študentov

na vysvetlenie problematiky prevodov čísel. Dôraz je kladený na dvojkovú, osmičkovú,

desiatkovú a šestnástkovú číselnú sústavu. Pomocou aplikácie možno čísla prepočítavať

medzi hociktorou z nich a pre pochopenie algoritmu je vždy zobrazený aj samotný postup.

Ovládanie aplikácie je jednoduché a intuitívne. V práci som nezabudol ani na potrebnú

dokumentáciu, bez ktorej by bolo ťažké pochopiť, ako vlastne celá aplikácia vznikla a ako

fungujú jednotlivé prevody.

Podľa nadobudnutých výsledkov možno usúdiť, že sa nám daný cieľ podarilo úspešne

naplniť. Na záver netreba zabudnúť na myšlienku, že číselné sústavy sú pre nás veľmi

dôležité a možno si to ani neuvedomujeme, ale tvoria súčasť nášho každodenného života.

54

Page 56: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

6 Zoznam použitej literatúry

1 BENĎÁK, Ivan a kol. Z histórie numerácie. [s.a] [online] [cit. 2010-11-11]. Dostupné

na: < http://www.matika.sk/zdroje/numknih.htm>.

2 BEŠENYI, Libor. Číselné sústavy. [s.a] [online] [cit. 2011-02-01]. Dostupné na:

<http://www.accendo.sk/Clanky/CiselneSustavy.html>.

3 GAZDÍKOVÁ, S. 2006. Histéria matematiky. Desiatková sústava : semestrálna práca.

Ružomberok : Katolícka univerzita, 2006. 5 s.

4 HENNYEYOVÁ, Klára. Logické základy číslicových počítačov. [2009] [online] [cit.

2010-12-10]. Dostupné na: <http://www.fem.uniag.sk/cvicenia/ki/hennyeyova

/INFORMATIKA_ZS_denne/info_2_ciselne_sustavy.pdf>

5 HRUŠKA, Karel – DLOUHÝ, Zbyněk – MENCL, Josef. 1964. Aritmetika a algebra.

3. vyd. Praha : SPN, 1978. 307 s.

6 HRUŠKA, Karel a. i. 1960. Aritmetika pre pedagogické inštitúty. Bratislava : SPN,

1960. 228 s.

7 HYNAR, Martin. 2004. Java – nástroje. Praha : Neocortex, 325 s. ISBN 80-86330-

16-8.

8 KLIMEŠ, C. – TURČÁNI, M. 2005. Úvod do operačných systémov. Nitra : FPV

UKF, 2005. 215 s. ISBN 80-8050-895-X.

9 KLOKOČOVÁ, Lívia. Číselné sústavy. SOŠ Vranovská. 2008 [online] [cit. 2011-04-

03] Dostupné na: <http://www.sosvranovska.eu/KLOKOCOVA/CO%20V%20

SKOLE/INF%20pom%C4%82%C2%B4cky/S%C3%BAstavy%20a%20disky.pdf>

10 PALKOVÁ, Zuzana – HENNYEYOVÁ, Klára – OKENKA, Imrich. 2008.

Informatika a informačné technológie. 2. vyd. Nitra : SPU, 2008. 252 s. ISBN 978-80-

552-0113-9.

11 PALUMBÍNY, Daniel a i. 1996. Základy elementárnej aritmetiky. 2. vyd. Nitra :

Vysoká škola pedagogická v Nitre, 1996. 244 s.

12 ŠTANCL, Miroslav. Číselné sústavy – základné rozdelenie číselných sústav. [2006]

[online] Košice : Technická Univerzita v Košiciach. [cit 2011-01-16]. Dostupné na:

<http://mirectu.kvalitne.cz/studium/cissust.pdf>.

55

Page 57: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

13 VIRIUS, Miroslav. 2005. Java pro zelenáče. 2 uprav. vyd. Praha : Neocortex, 268 s.

ISBN 80-8633-017-6.

14 ZNÁM, Štefan a kol. 1986. Pohľad do dejín matematiky. Bratislava : Alfa - SNTL, 32

s. 1986. ISBN 63-572-86.

15 ZNÁM, Štefan – FRANEK, Miloš – ZNÁMOVÁ, Anna. 1975. Teória čísel : študijný

text. Bratislava : SPN, 1975. 56 s.

16 Číselné sústavy. Typy číselných sústav. [s.a.] [online] [cit. 2010-12-10]. Dostupné na:

< https://ep.edu.sk/0045/informatika/tudijn%20materily/Ciselne%20sustavy2.ht

m>.

17 Kódy a kódovanie. [2009] [online] [cit. 2010-12-10]. Dostupné na: < http://files.mp

s1c.webnode.sk/200000061-c84e2c947e/Kody%20a%20kodovanie.pdf >

56

Page 58: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

7 Prílohy

Príloha 1 Obrazy vybraných desiatkových číslic v dvojkovej, osmičkovej a šestnástkovej číselnej sústave

P = 10 P = 2 P = 8 P = 16

0 0 0 0

1 1 1 1

2 10 2 2

3 11 3 3

4 100 4 4

5 101 5 5

6 110 6 6

7 111 7 7

8 1000 10 8

9 1001 11 9

10 1010 12 A

11 1011 13 B

12 1100 14 C

13 1101 15 D

14 1110 16 E

15 1111 17 F

16 10000 20 10

17 10001 21 11

18 10010 22 12

19 10011 23 13

20 10100 24 14

50 110010 62 32

100 1100100 144 64

200 11001000 310 C8

1 000 1111101000 1750 3E8

50 000 1100001101010000 141520 C350

100 000 11000011010100000 303240 186A0

Príloha 2 Príklad č. 4 - prevod čísla pomocou aplikácie prevodník

57

Page 59: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

58

Page 60: crzp.uniag.skcrzp.uniag.sk/.../A/05755D3A2F1F4A04921922E20C4D7B51.docx · Web viewPráca môže slúžiť spolu s priloženou aplikáciou ako učebný text pre študentov, ktorý

Príloha 3 Príklad č. 5 - prevod čísla pomocou aplikácie prevodník

59