učebné texty k maturitnej skúšky z informatiky texty...algoritmizácia a programovanie –...

83
Učebné texty k maturitnej skúšky z Informatiky (časť Algoritmy a programovanie)

Upload: others

Post on 26-Feb-2021

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Učebné texty k maturitnej skúšky z Informatiky

(časť – Algoritmy a programovanie)

Page 2: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 1

Učebné texty – Algoritmizácia a programovanie ............................................................ 7

1.1. Základné pojmy ....................................................................................................... 7

1.2. Premenná ................................................................................................................. 8

1.3. Priraďovací príkaz ................................................................................................... 9

1.4. Príkaz vstupu .......................................................................................................... 11

1.5. Príkaz výstupu ........................................................................................................ 12

1.6. Údajový typ ............................................................................................................ 13

1.6.1. Typ INTEGER .................................................................................................... 13

1.6.2. Typ REAL ........................................................................................................... 14

1.7. Deklarácia premenných ......................................................................................... 14

1.8. Aritmetické operácie .............................................................................................. 14

1.9. Číselné funkcie ...................................................................................................... 16

1.10. Stavba programu .................................................................................................... 16

1.10.1. Formáty zápisu reálnych čísiel ........................................................................... 18

1.11. Podmienený príkaz ................................................................................................ 19

1.12. Zložená podmienka ............................................................................................... 21

1.13. Cyklus FOR ........................................................................................................... 22

1.14. Spracovanie postupnosti ........................................................................................ 24

1.15. Hľadanie maxima (minima) postupnosti ............................................................... 26

1.16. Cyklus WHILE ...................................................................................................... 27

1.16.1. Zacyklenie ........................................................................................................... 28

1.17. Typ CHAR ............................................................................................................ 29

1.18. Cyklus REPEAT ................................................................................................... 30

1.18.1. Rozdiely medzi cyklom REPEAT a WHILE ..................................................... 31

1.19. Typ BOOLEAN .................................................................................................... 32

1.19.1. Zisťovanie vlastnosti postupností ....................................................................... 33

1.20. Príkaz CASE ......................................................................................................... 34

1.21. Vnorené cykly ....................................................................................................... 35

1.22. Výstup na textovú obrazovku ................................................................................ 37

1.23. Unit CRT ............................................................................................................... 38

1.24. Vstup z klávesnice ................................................................................................. 39

1.25. Knižnica CRT – vstup z klávesnice ...................................................................... 41

1.26. Kontrolovaný vstup ............................................................................................... 44

1.27. Podprogram ........................................................................................................... 45

Page 3: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 2

1.27.1. Lokálne a globálne premenné ............................................................................. 47

1.27.2. Používanie premenných a podprogramov ........................................................... 48

1.28. Ponukový program ................................................................................................ 48

1.29. Typ pole................................................................................................................. 50

1.30. Deklarácia konštánt ............................................................................................... 54

1.31. Deklarácia typu ..................................................................................................... 56

1.32. Vymenovaný typ ................................................................................................... 57

1.33. Typ interval ........................................................................................................... 58

1.34. Typ reťazec ........................................................................................................... 61

1.35. Vyhľadávanie ........................................................................................................ 63

1.36. Textový súbor ........................................................................................................ 65

1.36.1. Chybové hlásenia pri práci s textovým súborom ................................................ 69

1.37. Generovanie náhodných údajov ............................................................................ 71

1.38. Štandardné procedúry a funkcie pre typ STRING ................................................ 73

1.38.1. Príklady ............................................................................................................... 75

1.39. Procedúry s parametrami ....................................................................................... 76

1.39.1. Parameter ............................................................................................................ 78

1.40. Funkcia .................................................................................................................. 81

1.41. Triedenie................................................................................................................ 82

1.41.1. Triedenie cez maximum – MAXSORT .............................................................. 83

1.41.2. Triedenie prebublávaním – BUBBLESORT ...................................................... 84

Page 4: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 3

Učebné texty – Algoritmizácia a programovanie

1 .1 . Základné pojm y

A l go r i t mus j e po s t up r i e š en i a n e j ak éh o p ro b l ém u ( po s t up nosť

p r ík azo v , k to r é p r oce s o r do k áže z r ea l i zo v ať a k t o r é v edú k v yr i e š en iu

d an éh o p ro b l ém u) .

A l go r i t mus j e p os tu p t r an s fo rm ác i e v s t up n ých d á t na v ýs t u pn é

( v s t up né d á t a s ú t i e , k t o r é p r o ces o r u n a z ač i a t ku z adáv am e , v ýs t up né

s ú v ýs l ed k y, k t o r é v yp o č í t a . )

V l as tno s t i a l go r i tmu :

1 . h ro madn os ť - a l go r i tm us r i e š i n i e j ed en ko nk r é t n y p r o b l ém ,

a l e c e lú sk up i nu ú lo h po do bn ého ch a r ak te r u . N apr . nem á

v ýz n am v yr áb ať a lgo r i t mu s p r e r i e š en i e ko nk r é t n e j kv ad ra t i cke j

r o vn ice x2+5x +6=0 , a l e môž em e v yr o b i ť a l go r i tmu s p re r i e š en ie

k v ad r a t i ck e j ro vn i ce s ľu bo voľ n ým i ko e f i c i en t ami ax2+bx +c=0 ,

k d e ko e f i c i en t y a , b , c s a z ad a j ú ako v s t up n é d á t a .

2 . d e t ermin i s t i cko sť ( p od mi en eno sť ) - v k až dom ok am ih u výp o č tu

j e p re sn e u rčen á o p e r ác i a , k to r á s a m á v yk o n ať (n i č n i e j e

p o nech an é n a náho d u , v a l go r i tm e s a n ev ys k yt u j ú n áho dné

o p e r ác i e ) .

3 . rezu l ta t í vn os ť (ko n ečn osť ) - v ýp o če t p odľ a a l go r i tm u s a

s ko n č í p o ko n ečnom p o č t e k ro ko v .

P ro gr am j e a l go r i t mu s z ap í s an ý v p r o gr am ov acom j az yk u . J e t o

p os tu pn osť d ek l a r ác i í a p r ík az ov v yj ad r u jú ca p os t up t r an s fo rm ác ie

v s t up n ých d á t n a výs t u p n é .

P ro gr amo v ac í j az yk - j az yk , k to r ému p o č í t a č r oz um i e ( t . j . j az yk ,

k to r ém u r ozu mi e sám p r o ceso r , a l ebo k t o r ému roz umi e p o č í t a č l en

v t ed y, ak m á k d i sp oz í c i i p r í s lu šn é p r o gr am ov é v yb av en i e -

p r ek l ad ač ) .

Page 5: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 4

P r o g r a m o v a c í j a z y k , k t o r é m u r o z u m i e p r i a m o p r o c e s o r s a n a z ý v a s t r o j o v ý k ó d .

P r o g r a m v t o m t o j a z y k u t v o r í p o s t u p n o s ť e l e k t r i c k ý c h s i g n á l o v k ó d o v a n ý c h

p o m o c o u j e d n o t i e k a n ú l . Z á p i s p r o g r a m u j e n e p r e h ľ a d n ý a r o z s i a h l y . V y š š i e

p r o g r a m o v a c i e j a z y k y s ú b l i ž š i e j a z y k u č l o v e k a , z r o z u m i t e ľ n e j š i e a z á p i s

p r o g r a m u j e s t r u č n e j š í . P r o c e s o r a l e t o m u t o j a z y k u n e r o z u m i e , p r e t o j e

p o t r e b n ý p r e k l a d a č , p r o g r a m , k t o r ý p r e l o ž í p r o g r a m z v y š š i e h o

p r o g r a m o v a c i e h o j a z y k a d o s t r o j o v é h o .

Gra ma t ik a p rog ramo v a c i eho j a zyk a : t v o r í j u

1 . m n ož i na s ym bo lo v p r í pu s t n ých p r e z áp i s p r o gr am u ( nap r . v

P as ca l e s ú p r íp us tné s ym b o l y: b eg i n , * , : = , A , B , C , . . . )

2 . m n ož i na pr a v id i e l s p á j an i a t ých t o s ym b o lo v do j az yk o v ých

k o nš t r uk c i í , t zv . s yn ta x pr ogr a mo va c i eh o j az yka . ( N apr .

k o nš t r uk c i a A:=begin j e z lož ená z p r í pu s tn ých s ym bo lov ,

a l e n i e j e v yt v o r ená po dľ a s yn t ak t i ckých p r av i d i e l . )

S éman t ika p rog ramo v a c i eho ja zyka j e l o g i ck ý v ýz n am j az yk o v e j

k o nš t r uk c i e v yt vo r en e j p odľ a s yn t ak t i ck éh o p r av i d l a .

N ap r . s yn t ak t i ck é p r av id lo <premenná>:=<výraz> m á lo g i ck ý

v ýz n am ( s ém an t i ku ) : v ýr az n a p r av e j s t r an e s a v yh o d n o t í a v ýs l ed ok

s a p r i r ad í p r em en ne j n a ľ av e j s t r an e .

1 .2 . Prem enná

P o č í t a č sp r acov áv a d á t a (n apr . č í s l a , zn ak y, . . . ) , k to r é sú u lož en é v

p am ät i v t zv . p r emen n ých .

Premen n á j e ob j ek t ozn ačen ý m en om ( id en t i f i k á t o rom) , k to r ý m á

u r č i tú h od no tu . Ho d no t a p r em enn e j s a môž e v p r i eb ehu v ýp o č t u

m en iť .

I dent i f iká t o r ( m eno , náz ov ) j e r eť az ec ( p os t up no sť z nako v ) z l ožen ý

z p í sm en , č í s l i c a po d č i a rk ov n í k a ( _ ) . P r v ý z n ak n e smi e b yť č í s l i c a .

M a lé a v eľk é p í sm en á s a n e roz l i š u j ú .

Page 6: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 5

I d e n t i f i k á t o r o m s a o z n a č u j ú n i e l e n p r e m e n n é , a l e a j o s t a t n é o b j e k t y v

p r o g r a m e , o k t o r ý c h s a b u d e m e u č i ť n e s k ô r : k o n š t a n t y , t y p y , p o d p r o g r a m y i

s a m o t n ý p r o g r a m .

P r í k l ad y p r í p us tn ých i d en t i f i k á to r ov : A , S UMA , C IS LO 3 ,

N O V Y_ C LE N

P r í k l ad y n ep r í pu s t n ých i d en t i f i k á to r ov : 3 C IS LO , A - BO D , C*

D o p o r u č e n i e : N á z o v p r e m e n n e j v o l í m e t a k , a b y n a p o v e d a l , č o d a n á p r e m e n n á

o b s a h u j e . A k c h c e m m a t v p r e m e n n e j u l o ž e n é n a p r . č í s l o p o s c h o d i a , n a z v e m j u

C I S L O _ P O S C H , a l e b o C _ P O S C H , a l e b o C P .

1 .3 . Priraďovací pr íkaz

Sl úž i n a p r i r ad en i e h od no t y p r em en n e j .

S yn ta x: <p remenná > : = <v ý ra z>

Z á t v o r k y < > s ú l e n p o m o c n é z n a k y o z n a č u j ú c e , ž e m i e s t o s y m b o l u v t ý c h t o

z á t v o r k á c h b u d e m e p í s a ť t o , č o d a n ý s y m b o l v y j a d r u j e . N a p r . m i e s t o s y m b o l u

< p r e m e n n á > n a p í š e m e k o n k r é t n u p r e m e n n ú , n a p r . X . V š e t k o , č o j e m i m o t ý c h t o

o s t r ý c h z á t v o r i e k m u s í b y ť v p r í k a z e n a p í s a n é p r e s n e t a k , a k o v s y n t a k t i c k o m

p r a v i d l e .

<v ýr az > m ôž e b yť a r i tm e t i ck ý v ýr az , t ak ako h o p ozn áme z

m at em at i k y z l ož en ý z k on š t án t a p r em enn ých , o p e r á to rov :

+ ( s č í t an i e ) , - ( odč í t an i e ) , * (n á so ben i e ) , / ( de l en i e ) , o k rú h l ych

z á t vo r i ek , . . . .

<v ýr az > t eda m ôž e b yť :

k o nš t an t a ( 3 , - 25 , 4 . 51 )

p r em enn á ( I , C IS LO 5 )

z l ož i t e j š í a r i tm et i ck ý v ýr az ( I+1 , A*B+5 )

S éman t ika : ho dn o ta v ýr az u n a p rav e j s t r an e sa u l ož í do p r em enn e j n a

ľ ave j s t r an e .

Page 7: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 6

Z a t i a ľ b u d e m e d o p r e m e n n ý c h p r i r a ď o v a ť l e n č í s e l n é h o d n o t y , n e s k ô r b u d e m e

p r a c o v a ť a j s i n ý m i t y p m i ú d a j o v .

P r í k l ad y p r i r aďo v ac í ch p r ík azo v :

A : = 5 d o p r em en n e j A s a u lož í h od no t a 5

A : = B + 3 d o p r em en n e j A sa u l ož í ho dn o t a o 3 v äč š i a n ež j e v

p r em enn e j B

A : = A + 1 h o dn o t a p rem en ne j A s a zv ýš i o 1

A : = A * 2 h o dn o t a p rem en ne j A s a zd vo jn á so b í

Pr í k l ady :

1 . V p r em enn e j A j e u lož ená d ĺ ž k a s t r an y š t v o rca . D o p r em enn e j

O BV ch ceme p r i rad i ť č í s e l nú h od no tu o bv od u š t vo r ca a d o

p r em enn e j O BS č í s e ln ú h od no t u o bs ahu š tv o rca . Po už i j eme

p r ík az y:

O BV : = 4 * A;

O BS : = A * A ;

A k m á m e v i a c p r í k a z o v v p o s t u p n o s t i , o d d e ľ u j e m e i c h b o d k o č i a r k o u .

D o z l o ž e n ý c h z á t v o r i e k z a p í š e m e z a č i a t o č n ý a k o n e č n ý s t a v p r e m e n n ý c h .

2 . { A , B s ú r ozm er y o b d ĺž n ik ov e j z áh r ady}

P : = A * B ;

{ P j e p lo ch a z áh r ady}

Ú l ohy p re vás - dop lň t e p r i r aď ov ac i e p r ík az y:

1 . { R . . p o l om er k r uhu }

? ? ? ? ?

{ O BV . . ob vo d k ruh u , O BS . . ob sah k r u hu }

Page 8: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 7

2 . { T 1 , T2 , T 3 . . t r i t ep lo t y n am er an é r án o , n a o b ed a v eče r}

? ? ? ? ?

{ PR IE M _ TEP L . . p r i em ern á d enn á t ep l o t a}

3 . { A = }

T e n t o z á p i s z n a m e n á , ž e v p r e m e n n e j A j e n e j a k á č í s e l n á h o d n o t a , v o

v š e o b e c n o s t i s m e j u o z n a č i l i }

? ? ? ? ?

? ? ? ? ?

{ A = 3 * , B = 1 2 * }

4 . M iš ko m á M j ab ĺk a J an ko J j ab ĺk . Zap í š t e po mo cou

p r i r aď ov ac ích p r í kazo v :

o J ank o do s t a l o 5 j ab ĺk v i ac ak o Miš ko

o M iš ko z j ed o l vš e tky j ab lk á

o J ank o d a l 3 j ab l k á M iš ko v i

o J ank o d a l Mi šk ov i t oľk o j ab ĺ k , ab y m al i ro vn ako

5 . * {A = , B = }

? ? ? ? ?

{ A = , B = }

1 .4 . Príkaz vs tupu

s lúž i n a p r i r ad en i e h o dn o t y p r em en n e j zo vs tu pn ého z a r i ad en i a (n ap r .

z k l ávesn i ce ) .

S yn ta x: r ead ln ( <zo zn a m p remenn ých> )

<zoz n am p r em en n ých > j e po s t up no sť p r em enn ých o dd e l en ých

č i a rk ami .

S éman t ika : d o pr em en n ých u v ed ených v p r ík az e u lož í ho dn o t y

z ad an é z k l áv es n i ce . ( Ak sú to č í s e l né h od no t y, m ôž u byť z ad an é v

j edn om vs tu pn om r i adk u od d e l en é m edz e r am i . )

Page 9: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 8

N ap r í k l ad : p r í kaz r e ad ln ( A, B , X3 ) zn a m en á , ž e po č í t a č ča ká na

z ad an i e t ro ch h od nô t z k lá ve sn i ce . P rvú u l ož í d o pr em enn e j A , d r uhú

d o pr em en n e j B a t r e t iu d o pr em en n e j X 3 .

1 .5 . Príkaz výs tupu

s lúž i n a v yp í s an i e h o dn ô t n a ob r azo vku .

S yn ta x: w r i te ln ( < zo zna m pa ra met ro v> )

<zoz n am p a r am et r ov > j e po s t up nos ť pa r am et ro v o dd e l en ých č i a r k ami .

P a r am et ro m môž e byť :

1 . č í s lo (5 , 4 . 3 )

2 . p r em enn á (A , B4 )

3 . a r i t me t i ck ý v ýr az (A +4 , B+C *7 )

4 . t ex t v apo s t ro f ách ( 'M A M A MA E M U ')

S éman t ika : po č í t ač v yp í š e do j ed n ého r i ad k u na o b r azov k e :

1 . d an é č í s l o

2 . h o dn o tu d an e j p r em enn e j

3 . v ýs l ed nú h od no t u dan ého v ýr az u

4 . d an ý t ex t b ez apos t r o f

N ap r í k l ad p r í ka z :

w r i t e l n ( 'K r uh s po lo mer om ' , R , ' m a p lo chu ' , 3 . 14 *R *R ) m á 4

p ar a m et r e : t e x t , p rem en nú , t e x t a v ýra z . Za pr edp o k la du ž e p r em enn á

P má h od no tu 1 0 vyp í š e n a obr az o vku n as l edo vné :

K r u h s p o l om ero m 1 0 m a p lo chu 3 14

Page 10: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 9

Pr í k l ad :

Č o v yp í šu n a o br azo vk u n a s l ed ov n é p r ík az y, ak j e v p r em en n e j M

h o dn o t a 5?

{ M =5 }

w r i t e l n ( 'Mis ko m a M j ab lk . ' ) ;

w r i t e l n ( 'Mis ko m a ' , M, ' j ab lk . ' ) ;

w r i t e l n ( 'Mis ko m a M ' , j ab lk . )

1 .6 . Údajový t yp

Ú d aj ov ý t yp u r ču j e :

m nož i nu p r íp us t n ýc h ho dn ô t

m nož i nu p r íp us t n ýc h op e r ác i í

K a ž d á p r e m e n n á p o u ž i t á v p r o g r a m e m u s í m a ť u r č e n ý t y p . T y p u r č u j e , a k é

h o d n o t y m ô ž e m e d o p r e m e n n e j p r i r a ď o v a ť a a k é o p e r á c i e s ň o u m ô ž e m e

v y k o n á v a ť . P r e z a č i a t o k s a z o z n á m i m e s d v o m a č í s e l n ý m i t y p m i - i n t e g e r a r e a l .

1.6.1. Typ INTEGER

Mn ož ina ho dnô t : ce l é č í s l a z i n t e r va lu -3 2 76 8 . . +3 2 767

Pr í pus tn é op erá c ie : a r i tm et i ck é ( + - * / div mod ) a r e l ačné

( < > = <> <= >= )

D i v a mo d s ú op er á to r y ce l o č í se ln éh o d e l en i a . Op e r ác i a d i v v r á t i

c e l oč í s e l n ý p o d i e l a o p er ác i a mo d v r á t i zv yš o k p o ce l oč í s e l nom

d e l en í .

V ma t em at i k e z ap í šem e o pe r ác i u ce l o č í s e ln ého d e l en i a t ak to :

2 7 : 6 = 4 zv yš o k 3

A v P as ca l e t ak t o :

2 7 d i v 6 = 4

Page 11: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 10

2 7 mo d 6 = 3

1.6.2. Typ REAL

Mn ož ina ho dnô t : re á l ne č í s l a

Pr í pus tn é op erá c ie : a r i t me t i ck é ( + - * / ) a r e l ačn é ( < >

= <> <= >= )

1 .7 . Deklarácia preme nných

D ekl a r ov ať p r em enn ú zn am en á u r č i ť j e j t yp .

S yn ta x d ek l a rá c ie : v ar < premenn é> : < typ >

N ap r í k l ad :

var A:integer;

B,C,D:real;

E:integer

Prípustné

priradenia:

A:=-10;

E:=20000;

B:=7;

C:=4.345

Neprípustné

priradenia:

A:=1000000;

E:=2.5

1 .8 . Ar i tm etické operácie

V o v ýr az e A + B naz ýv am e j ed no t l i v é p rv k y t ak to : A , B s ú o pe r and y

a + j e o p er á to r . A k sú ob a o p e ran d y t yp u i n t ege r ( c e l é č í s lo ) ,

v ýs l ed ok v ýr az u j e t i ež t yp u i n t ege r ( c e l é č í s l o ) . A k ého t yp u b ude

v ýs l ed ok p r e o s t a tn é op e r ác i e a t yp y o p e rand ov uk az u je n a s l ed u jú ca

t abuľ k a :

Page 12: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 11

V ýr az : T yp o p e r an du A : T yp o p e r an du B: T yp v ýs l ed ku :

A + B

A – B

A * B

i n t ege r

i n t ege r

r e a l

r e a l

i n t ege r

r e a l

i n t ege r

r e a l

i n t ege r

r e a l

r e a l

r e a l

A / B i n t ege r , r e a l i n t ege r , r e a l r e a l ( vžd y)

A d i v B

A mo d B i n t ege r i n t ege r i n t ege r

Zl ož i t e j š í v ýr az o b s ah u j ú c i v i ac op er á to r ov s a v yh o d no cu j e t ak , ž e

o p e r ác i e * / d i v mo d m aj ú v yš š iu p r io r i t u ak o + - . P r io r i t u

ľ ub ov oľn e j o p e r ác i e z v ýš i m e p omo cou o kr úh l ych z á t vo r i ek .

Pr í k l ad č . 1 :

M áme z ad ek l a ro v an é p r em enn é :

var A,B,C:integer;

D,E:real

U r č t e t yp y t ých t o výr az o v :

a) A + D

b) (A + B) * C

c) (A + B) / C

d) (A - C) * (C + E)

e) B div 5 + E

f) B div (5 + E)

g) A / B div C

Pr í k l ad č . 2 : M áme z ad ek l a r ov an é p rem enn é :

var A,B,C:integer;

D,E:real

U r č t e , k t o r é p r i r aďo v ac i e p r í kaz y s ú nep r í pu s t n é :

a) D := A / B

b) D := A div B

c) A := C / D

d) A := C div D

e) E := C / D

Page 13: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 12

1 .9 . Číselné funkcie

A k ch cem e č í s l o A u m o cn i ť na d r uh ú , v m a t em at i k e to z ap í š em e: A2.

V P asca l e t o z ap í š em e pom o co u fu n kc i e SQ R ( A) . A s a n az ýv a

p a r am e t r om fu nk c i e . A k j e p a r ame t ro m t e j t o f un kc i e č í s lo 4 ,

d os t an em e ako v ýs l edo k 1 6 . Ak j e p a r am et e r t yp u in t ege r , v ýs l ed ok

j e t i ež t yp u i n t ege r . P ouž i t i e n i ek to rých f u n ck i í , t yp i ch a r gu mentov

a v ýs l ed k ov p op i su j e t á t o t abuľ k a :

Po p i s : Fu nk ci a : T yp

p a ra met ra :

T yp

v ýs l edku : Pr í k l ad :

ce l á č a sť č í s l a T R UNC ( A ) r ea l , i n t ege r i n t ege r T R UNC ( 2 . 7 )=2

z ao k rú h l en ie R O UN D ( A) r ea l , i n t ege r i n t ege r R O UN D (2 .7 ) =3

ab so lú t n a

h o dn o t a A BS ( A) r ea l , i n t ege r

r e a l ,

i n t ege r A BS ( -7 .1 ) =7 .1

d r uh á m ocn i n a S QR ( A) r ea l , i n t ege r r e a l ,

i n t ege r S QR (4 ) =16

d r uh á

o dm o cn i n a S QR T( A ) r ea l , i n t ege r r e a l S QR T( 16 ) =4

s ín us S IN ( A ) r ea l , i n t ege r r e a l S IN ( 0 ) =0

co s í nu s C OS ( A) r ea l , i n t ege r r e a l C OS (0 ) =1

a r cu s t an gen s A RC TA N ( A ) r ea l , i n t ege r r e a l A RC TA N (0 ) =0

1 .10. Stavba program u

program <meno> h l a v i č k a p r o g r a m u

<deklarácie>; d e k l a r a č n á č a s ť

begin

<príkaz>;

<príkaz>;

...

<príkaz>

end.

p r í k a z o v á č a s ť

Page 14: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 13

M eno p r o gr am u j e i den t i f i k á t o r , ak o s me s i h o o p í s a l i v č as t i

"P r em enn á" . N ázov p ro gr amu v o l ím e po dľ a t oh o , ak ý p r o b l ém

p r o gr am r i e š i . P ro gr am n a v ýp o če t mi ez d môž em e n ap r . naz v ať

M ZD Y , a l eb o VY PO C ET _M IE ZD

T e n i s t ý i d e n t i f i k á t o r n e m ô ž e m e p o u ž i ť n a o z n a č e n i e d v o c h r ô z n y c h o b j e k t o v ,

n a p r . p r o g r a m u i p r e m e n n e j . V o p a č n o m p r í p a d e z a h l á s i p o č í t a č c h y b u :

„Duplicate identifier“ ( d u p l i k o v a n ý i d e n t i f i k á t o r ) .

V d ek l a r ačn e j č a s t i z ap i su j em e d ek l a r ác i e p r emenn ýc h ( n es kô r i

i n ých o b j ek to v ) , k to r é bu dú po už i t é v p r ík azo v e j č as t i . A k b y s m e v

p r ík azo v e j č as t i po už i l i p r em e nn ú , k t o rú s m e zabu d l i z ad ek l a ro v ať ,

p o č í t a č b ud e h l ás i ť ch yb u : „Unknown identifier“ ( n ezn ám y

i d en t i f i k á to r ) .

Pr í k l ad : Mi šk o k r áča l do šk o l y r o v n om ern ou r ých l os ťo u V m e t r ov za

s eku nd u . Ak o d lh o m u t r v a l a c e s t a , ak j e šk o l a vzd i a l en á S m e t ro v?

Ú l o h o u p r o g r a m u j e p r e d a n é v s t u p n é h o d n o t y V a S v y p o č í t a ť v ý s t u p n ú h o d n o t u

T - č a s t r v a n i a c e s t y d o š k o l y . V s t u p n é a v ý s t u p n é h o d n o t y j e d o b r é z a p í s a ť s i

u ž n a z a č i a t k u r i e š e n i a p r o b l é m u . V s t u p n é h o d n o t y p r o g r a m n a č í t a , v ý s t u p n é

v y p í š e a k o v ý s l e d o k .

{ VS T: V . . r ých l o s ť p o h yb u ( r eá l ne č í s lo ) , S . . d r áh a ( r eá l n e č í s lo )}

{ V ÝS: T . . č a s t r v an i a p oh yb u ( r eá ln e č í s lo ) }

program CESTA_DO_SKOLY;

var V,S,T:real;

begin

readln(V,S);

T:=S/V;

writeln('Miskovi trvala cesta ',T,' sekund.')

end.

T ak t o z ap í s an ý p r o gr am j e sp r ávn y. K eď s i h o vš ak s pu s t í m e n a

p o č í t a č i , z i s t ím e , ž e m á u r č i t é ch yb i čk y k rás y :

1 . K eď p ro gr am s pu s t í m e , po č í t a č n a j s kô r č ak á n a z ad an ie

v s t up n ých h o d n ô t V a S . N ez a i n t e r eso v an ý u ž í va t eľ vš ak n e tu š í ,

Page 15: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 14

p r ečo s a p r o gr am h n eď na z ač i a tk u "z as eko l " . P r e t o j e v h od né

p r ed k ažd ým p r í k azo m r ead ln v yp í s ať na ob r azo vk u v ýzv u p re

už ív a t eľ a , čo m á z ad ať , n apr . :

writeln('Zadaj rychlost a drahu!');

readln(V,S);

a l ebo k r a j š i e :

writeln('Zadaj rychlost!');

readln(V);

writeln('Zadaj drahu!');

readln(S);

2 . K eď v ýp o če t s ko nč í , po č í t a č v yp í š e v ýs l ed o k n a o b r azo vku ,

n e s t i hn eme s i ho an i p reč í t ať a h n eď s a o b r azo vk a p r ep n e do

ed i to v ac i eh o r ež im u . Ak ch cem e, ab y p o v yp í s an í v ýs l edku

p o č í t a č p o čk a l , mu s í me ho k t om u p r i nú t i ť . A ko po s l edn ý

p r ík az p ro gr amu dám e "p r áz dn y" r ead ln . T en to p r ík az n e bu de

n i č n ač í t av ať , l en po čk á , až už ív a t eľ s t l a č í En te r .

3 . P o s pu s t en í p ro gr am u z i s t í m e , ž e n ám p o č í t a č v yp í s a l v ýs l ed ok

a s i v t ak om to tv a r e : 2 . 12 34 56 000 0 E +0 2 . P r e bežn ého

p o už ív a t eľ a j e možn o t ak ýt o tv a r n ez roz umi t eľn ý, p r e t o b y s m e

h o m al i p r e f o r m áto v ať . O f o rm át ov an om v ýs t u p e sa do č í t a t e

ď a l e j .

1.10 .1 . Formáty záp isu reá lnych č íse l

R eál n e č í s l o m ôž em e zap í s ať dv om a s pô so bmi :

b ež n ý t v a r ( ako h o p ozn áme z m at em at i k y) , n ap r . : 0 . 00 123

s emi l o ga r i t mi ck ý t v a r ( ak o ho p ozn ám e z k a l ku l ačk y) , n ap r . :

1 . 23 E- 3

Page 16: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 15

H o dn o t a t a k t o z ap í s an éh o č í s l a j e : 1 . 23 E - 3 = 1 , 23 . 1 0- 3

=

0 , 00 12 3

A k p ouž ív am e v p ro gr am e p r em en nú typ u r ea l a nech áme ju v yp í s ať

n a o b raz ov ku , po č í t a č j u v yp í š e v semi lo ga r i tm ick om t v ar e . Ak ju

n ech ám e v yp í s ať v p r ed p í s ano m f o r má t e , v yp í š e j u v bežn om tv a re .

Fo rmá t o v aný vý s tup : v p r í k az e wr i t e l n z ap í š em e z a p r í s lu šn ý v ýr az

d v o jb od ku a c e l kov ý p o če t m i es t p r e v ýp i s , r e sp . ď a l š iu d vo j bo dk u a

p o če t d es a t in n ých m ie s t .

var A:integer;

B:real;

begin

A:=-25;

B:=8.4E-2;

writeln('Cisla su', A:7 , B:10:4)

end.

P ro gr am v yp í š e č í s l o -2 5 n a s ed em mi e s t , t . z n . do p ln í š t yr i m edze r y

z ľ av a a č í s lo 0 .0 84 n a d e sať m i es t , z t o ho b ud ú 4 d e sa t i nn é , t . zn .

d o p ln í j edn u nu lu sp r av a a š t yr i medz er y z ľ av a :

Cisla su -25 0.0840

1 .11. Podmienený pr íkaz

- p r ík az , k to r ého vyk o n an i e j e v i az ané n a sp ln en i e u r č i t e j p odm i en k y.

P odm i en en ý p r í k az j e š t ru k t ú ro van ý p r í kaz , t o zn am en á ž e j e z l ož en ý

z i n ých j ed no du chš í ch p r ík az ov .

S yn ta x:

if <logický výraz>

then <príkaz>

else <príkaz>

<l o gi ck ý v ýr az > j e v ýr az , k t o r éh o v ýs l ed n á ho dn o t a j e ' p rav d a ' a l eb o

' n ep r avd a ' . Môž e t o b yť po dmi enk a zap í s aná v t v a r e : A < B alebo

C*10 <= D a pod.

Page 17: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 16

<p r í k az > j e ľu b ov oľ n ý p r í k az (p r i r aď ov ac í , p r í k az v s t up u , v ýs t u pu ,

p o dmi en en ý p r í k az , . . . )

S éman t ika : A k j e l o g i ck ý v ýr az (p odm ienk a ) p r av d i v ý, v yk o n á

p r ík az n a v e tv e ' t hen ' , ak j e n ep r avd iv ý, v yk o n á p r ík az n a v e tv e

' e l s e ' .

Pr í k l ad :

if A mod 2 = 0

then writeln('Cislo ',A,' je parne.')

else writeln('Cislo ',A,' je neparne.')

T e n t o p r í k a z p o d ľ a h o d n o t y z v y š k u p o d e l e n í č í s l a A d v o m a v y p í š e , ž e č í s l o A j e

p á r n e , r e s p . n e p á r n e .

N eúpln ý p od mi en en ý p r í ka z - b ez v e tv y e l s e :

if <logický výraz>

then <príkaz>

A k p o d m i e n k a p l a t í , v y k o n á s a u v e d e n ý p r í k a z , a k p o d m i e n k a n e p l a t í , p r í k a z s a

n e v y k o n á .

M ôž e s a s t ať , ž e ak po dm ienk a p l a t í , ch cem e ab y s a v yk o n a l n i e

j ed en , a l e v i ac p r ík az ov . Al e n a v e tv u t h en ( t o i s t é p l a t í p r e e l s e )

m ôž em e dať l en j ed en p r ík az . V t omt o p r íp ad e m us ím e vš e t k y

p r ík az y, k t o r é ch cem e m ať n a j edn e j v e t v e , z j ed no t i ť d o j ed n ého

z l ožen éh o p r ík az u - s ekv en c i e - ozn ačen e j s ym b o lmi b eg in a end :

begin

<príkaz>;

<príkaz>;

...

<príkaz>

end

Pr í k l ad :

{A=20, B=10}

if A<=B

then begin A:=A+1;

B:=B-A

end

else begin B:=B+1;

Page 18: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 17

A:=A-B

end

{A=?, B=?}

R i e š e n i e : p o d m i e n k a A < = B s a v y h o d n o t í a k o n e p r a v d i v á , p r e t o ž e 2 0 n i e j e

m e n š i e a n i r o v n é a k o 1 0 , p r e t o s a v y k o n a j ú p r í k a z y n a v e t v e e l s e . K o n e č n é

h o d n o t y p r e m e n n ý c h b u d ú A = 9 , B = 1 1 .

Pr í k l ady p re vá s :

1 . J ank o m á z áh r ad u s r ozm er mi A x B m et r ov , Mi šk o m á z áh r adu

s r ozm ermi C x D m et r ov . P ro gr am n ač í t a A , B,C , D a v yp í š e , k to

m á v äčš iu záh r ad u ( s v äčš ou p lo cho u) .

2 . P ro gr am n ač í t a č í s l o a v yp í š e n a o b razo vk u j eh o v l as t no s t i : č i

j e c e l é /m á d es a t in n ú časť , k l ad n é /z áp o rn é / nu la . N apr . č í s l o

2 5 .3 1 j e k l adn é s de s a t in no u čas ťo u , -8 j e z ápo r n é ce l é , a p od .

3 . M iš ko s J an ko m s úť až i l i v ho d e guľou . K ažd ý m a l dv a p o kus y,

z k to r ých s a p o č í t a l t en l epš í . V yt v or t e p ro gr am, k t o r ý n ač í t a

h o dn o t y p o k us ov o b och p r e t ek á r ov a v yp í š e , k t o r ý z n i ch

v yh r a l .

1 .12. Zložená podmienka

j e z l ož en á z j ed n od uchš í ch po dm ieno k s po už i t ím lo g i ck ých

o p e r á to r ov A N D (k o n ju nk c i a ) , OR (d i s j u nk c i a , a l t e rn a t ív a ) , N OT

( n egác i a ) . S pôs ob v yh o d no cov an i a z l ožen ých p o d mi en o k uk az u jú

n a s l ed o vn é t ab uľk y:

Po d mi enk a1 Po d mi enk a2 Po d mi enk a1 AN D Po d mi enk a2

p r avd a p r avd a p r avd a

p r avd a n ep r av da n ep r av da

n ep r av da p r avd a n ep r av da

n ep r av da n e p r av da n ep r av da

Po d mi enk a1 N OT Pod mi enk a1

p r avd a n ep r av da

n ep r av da p r avd a

Page 19: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 18

Po d mi enk a1 Po d mi enk a2 Po d mi enk a1 O R Po d mi enka 2

p r avd a p r avd a p r avd a

p r avd a n ep r av da p r avd a

n ep r av da p r avd a p r avd a

n ep r av da n ep r av da n ep r av da

P r i z l ož en ých p odm ienk ach s i mus íme d ať poz o r n a p r io r i t u op e r ác i í .

A k ch cem e z ap í s ať p o dmi enk u , ž e č í s lo A j e z i n t e r v a lu <1 0 ; 10 0 >,

m us ím e po už i ť o k rú h l e z á tv o rk y:

(C>=10)AND(C<=100)

p r e t ož e p r io r i t a ope r ác i í j e n as l edo vná :

1 . N O T

2 . A N D

3 . O R

4 . < > =

Pr í k l ady p re vá s :

1 . P ro gr am n ač í t a r ok R a v yp í š e , č i v ňo m bo l a l e t ná o l ym pi ád a ,

z im n á o l ym p i ád a a l ebo n i č . Le t ná o l ym p i ád a j e v r o ku

d e l i t eľ no m š t yr m i , z im n á j e dv a r ok y p o l e tn e j .

2 . P ro gr am n ač í t a t r i p r i r odz en é č í s l a A , B , C a z i s t í , č i môžu b yť

s t r an ami t r o j uh o ln ík a . A k án o , v yp í š e v l as t no s t i t oh to

t r o ju ho ln í k a - r ov no r am enn ý, r o vn os t ran n ý, p r av ou h l ý.

1 .13. Cyklus FOR

- c yk l us s o z n ám ym p o č to m op ako v an í .

C yk l us j e p r ík az , k t o r ý s a v yk o n á op ak o van e , n i ek oľk ok rá t . A k s a d á

p o če t o p ak ov an í p r e s n e u r č i ť , po už i j em e p r ík az FOR. A k p r e sn ý

Page 20: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 19

p o če t ne v i em e , a l e v i em e , do k ed y s a m á op ako vať , po už i j em e p r í kaz

WHILE a l eb o REPEAT.

S yn ta x:

for <premenná> := <výraz> to <výraz>

do <príkaz>

O b a v ýr az y i p r emen n á mu s i a b yť t yp u i n t ege r . P r í k az v c yk l e m ôž e

b yť l en j ed en , ak p o t r eb u j em e z op ak o vať v i ac p r ík azo v , mu s ím e z

n i ch v yt v o r i ť s ek ven c iu p om o co u ' b eg i n ' a ' en d ' . P r em en n á s a naz ýv a

r i ad i aca p r em enn á c yk l u f o r - z j edn odu š en e p o č í t ad lo .

N e s k ô r , k e ď s a z o z n á m i m e a j s i n ý m i t y p m i , b u d e m e i c h m ô c ť p o u ž i ť p r e

p r e m e n n ú v c y k l e f o r , a l e l e n o r d i n á l n e t y p y ( c e l o č í s e l n é , c h a r , v y m e n o v a n ý

t y p ) .

S éman t ika : N a zač i a t ku s a d o p r em enn e j p r i r ad í h od n o t a p rv ého

v ýr az u ( š t a r t ov ac i a h od no t a ) a po každ om p r ech od e cyk l o m s a j e j

h o dn o t a z v ýš i o 1 . K eď dos i ah n e hod n o tu d r uh ého v ýr azu (k on ečnú

h o dn o tu ) , c yk l us k o nč í . P r ík az v cyk l e s a v yk o n á op ako v an e p re

v š e t k y ce l o č í s e ln é h o dn o t y p r em enn e j z i n t e rv a l u u r čen éh o v ýr azm i .

Pr í k l ad :

{ N=5 }

for i:=1 to N+5

do writeln(I)

P r í k az w r i t e ln ( I ) s a v yk o n á p r e v še t k y h o d n o t y p r e m enn e j I z

i n t e rv a l u <1 ; 10 > , t . z n . v ýs l ed ok bu de t en i s t ý , ak o k eb y sm e 10 -k r á t

z ap í s a l i p r ík az w r i t e l n :

writeln(1);

writeln(2);

writeln(3);

writeln(4);

writeln(5);

writeln(6);

writeln(7);

writeln(8);

writeln(9);

writeln(10);

Page 21: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 20

A k v cyk l e FO R po už i j em e m i es t o s ym bo lu to s ym b ol dow n t o , b ud e

s a r i ad i aca p r em enn á p o k ažd om p r ech o de cyk l o m z menšo v ať o 1 :

for I:=5 downto 1

do writeln(I)

T en t o p r ík az v yp í še po d s eb a č í s l a 5 ,4 , 3 , 2 , 1 .

Po če t opak ov an í cy k lu :

for I:=D to H

do ...

P o če t o p ak ov an í z áv i s í o d h r an i čn ých h o dn ô t D a H a dá s a v yj ad r i ť

v ýr az om : H - D +1 . A k sú h ran i čné h od n o t y D a H r o v n ak é , p r ík az sa

zo p ak u j e l en r az . A k j e d o ln á h r an i ca D v äč š i a ako h o rn á h r an i ca H ,

p r ík az v c yk l e s a nev yk o n á an i r az .

Pr í k l ady :

1 . P ro gr am n ač í t a p r i ro dz en é č í s lo C a v yp í š e j eh o ma lú n á so b i lk u

v t v a r e :

1 x C = ...

2 x C = ...

...

10 x C = ...

2 . P ro gr am n ač í t a p r i ro dz en é č í s lo C a v yp í š e v še tk y j eho d e l i t e l e .

3 . P ro gr am n ač í t a p r i ro dz en é č í s l a A , N a v yp o č í t a h o dn o tu

m o cni n y AN

.

4 . P ro gr am n ač í t a p r i r odz en é č í s l o N a v yp í š e vš e t k y m o cn i n y

č í s l a 2 od n u l t e j po N - t ú .

1 .14. Spracovanie pos tupnost i

Po s tu pno sť j e sk up in a p rv ko v us po r i ad an ých v r ad e z a s ebo u . K až d ý

p r vo k , ok r em pr v éh o , m á sv o j ho p r ed cho d cu a k až d ý p r vo k , ok r em

p os l ed n éh o , m á sv o j ho n a s l ed ov n í ka . M ô ž em e m ať n ap r . :

p os tu pn osť č í s e l : 5 , -8 , 2 , 0 , 20

Page 22: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 21

p os tu pn osť mi en : J an o , J ožo , Miš o , Ku b o

p os tu pn osť f a r i eb : m od r á , z e l en á , č e rven á

P o če t p rv ko v pos tup n os t i naz ýv am e dĺžk ou p os tupn os t i . K ažd ý

p r vo k m á s vo j e po rad ov é č í s lo a po s tup n osť s ym b ol i ck y z ap í š em e

t ak to :

a 1 , a 2 , a 3 , . . . , a N

k d e N j e d ĺ žk a p os tu p nos t i .

M y b u d eme z a t i aľ p r acov ať s č í s e l ným i p os tu pn osť ami . V p r ax i s a

č a s t o s t r e tn em e s p r ob l émom z i s t i ť sú če t a l ebo p r i em er p r vkov

p os tu pn os t i , z i s t i ť p oče t p r vk ov d an e j v l as tn os t i , n á j s ť n a j v äč š í

p r vo k a p od .

N a v yr i e š en i e t ých t o ú lo h po t r ebu jem e p ozn ať :

- po če t p r vk ov p os tu p nos t i ( u l ož ím e ho do j ed n e j p r em enn e j , n ap r . N )

- h o dn o t y j ed n o t l i vých p r v k o v ( t ých j e v i ac , p o t r eb ov a l i b y s m e n a t o

v i ac p r emenn ých , a l e n ev i em e vo p r ed , k oľk o) .

M y v š ak n epo t r ebu j em e poz nať n a raz vš e t k y p r v k y p os tu pn os t i .

M ôž em e s i i ch n ač í t av ať p os t up n e po j edn om d o j ed n e j p r em enn e j ,

n ap r . A , a p r i eb ežne i ch s p r acov áv ať .

S ch éma a l go r i t mu , k to r ý p r acu j e s N - p rv ko vo u p os tu pn osť ou

r eá ln ych č í s e l :

var N:integer;

A:real;

begin

writeln('Zadaj dlzku postupnosti:');

readln(N);

for I:=1 to N

do begin

writeln('Zadaj ',I,'. cislo postupnosti:');

readln(A);

<spracuj cislo A>

end;

<vypis vysledok>

end.

Pr í k l ady :

Page 23: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 22

1 . P ro gr am n ač í t a p o če t d e t í N a N - p r vk ov ú pos tu p nosť

n ez ápo rn ých č í s e l a 1 , a 2 , a 3 , . . . , a N , k d e a i s ú ús po r y I - t eh o

d i eť ať a . Z i s t i t e :

a . ce l ko vú h od no t u úsp o r d e t í

b . p r i em er nú h od n o tu ú sp o r n a d i eť a

c . p o če t " ch ud ob n ých " d e t í ( k to r é m aj ú n u l ov é ú sp or y)

2 . M iš ko p racov a l n a b r i gáde N dn í . P r v ý d eň z a r ob i l K k o rú n .

K ažd ý ď a l š í d eň z a r o b i l dv akr á t t oľ ko ak o v p r ed ch ádza jú c i d eň

a e š t e 1 ko r un u n avyš e .

a . K oľ ko z a r ob i l v p os l ed n ý d eň?

b . K oľ ko s i z a ro b i l c e l ko vo?

1 .15. Hľadanie maxima (minima) pos tupnost i

M ax im um (mi n im um ) p os t up no s t i j e ho dn o t a n a jv äčš i eho

( n a j m en š i eh o ) p r vku v pos tu pn os t i .

N ap r . p os tu pn osť 5 , 10 , 1 , 1 0 , 2 , 7 m á m ax imu m 10 a m in i mum 1 .

Po s tu p h ľad an i a ma x i ma : P os tu pn e p r e j d em e po s tu p nos ťo u od

p r v éh o po p os l ed n ý p rv ok a b ud em e s i p am ät ať v po mo cne j p r em enne j

M A X za t i aľ n á jd en ý n a j v äčš í p rv ok . T . zn . z ob e r i eme p r v ý p r v o k a

p r eh l ás im e h o za do časn é m ax im um . U l ož ím e h o d o p r em enn e j MAX

a s ko n t ro lu j eme os t a t n é p r vk y p o s t upn os t i , č i n i e s ú n áho d no u v äčš i e

ak o na š e M A X. Ak t ak ý p r v o k n á jd em e , m us í me h o u lož i ť do MAX

ak o no v é max i mum.

Pr í k l ady :

1 . D an ý j e p oče t p ok us ov p r e t ek á r a vo v rh u guľo u a ho d no t y

j edn o t l i v ých h o dov . P ro gr am v yp í š e ho dn o t u n a j l ep š i eho

p o kus u .

Page 24: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 23

2 . D an ý j e p oče t p rvk o v N a j ed no t l i v é p r vk y p o s t up no s t i a 1 , a 2 ,

a 3 , . . . , a N . N á jd i t e h od no t u na jväč š i eho p rv ku a z i s t i t e ,

k oľ ko kr á t s a v p os tu p nos t i n ac h ádza .

3 . O p r av t e p r ed ch ádz a j úc i p ro gr am t ak , ab y h ľ ad a l na jm enš í

p r vo k .

1 .16. Cyklus WHILE

- c yk l us s p od mi enk o u na z ač i a t ku

S yn ta x:

while <logický výraz>

do <príkaz>

S éman t ika : k ým j e l o g i ck ý v ýr az (po dm ienk a ) p r avd i vý , o p ak ov ane

v yk o n áv a d an ý p r í k az . A k po dm i enk a n ep l a t í , c yk l us k o n č í . Ak

ch cem e mať v cyk l e v i ac p r ík az ov , mu s í me z n i ch v yr o b i ť s ek v en c iu

p om o co u ' b eg in ' a ' en d ' .

Pr í k l ad :

{A=13, B=4}

while A>=B

do A:=A-B

A k ý b u d e s t av p r em enn ých p o sk on čen í c yk l u?

Z a č i a t o č n ý s t a v p r e m e n n ý c h j e : A = 1 3 , B = 4 .

P r e d v s t u p o m d o c y k l u s a p o d m i e n k a v y h o d n o t í a k o p r a v d i v á ( 1 3 > = 4 ) . V o j d e d o

c y k l u a v y k o n á p r í k a z , z n í ž i h o d n o t u p r e m e n n e j A o 4 . S t a v p r e m e n n ý c h p o 1 .

p r e c h o d e c y k l o m : A = 9 , B = 4 .

P o d m i e n k a s t á l e p l a t í ( 9 > = 4 ) , p r e t o z n o v a z o p a k u j e p r í k a z , z n í ž i h o d n o t u

p r e m e n n e j A o 4 . S t a v p r e m e n n ý c h p o 2 . p r e c h o d e c y k l o m : A = 5 , B = 4 .

P o d m i e n k a e š t e s t á l e p l a t í ( 5 > = 4 ) , z n o v a z o p a k u j e p r í k a z , z n í ž i h o d n o t u

p r e m e n n e j A o 4 . S t a v p r e m e n n ý c h p o 3 . p r e c h o d e c y k l o m : A = 1 , B = 4 .

P o d m i e n k a ( 1 > = 4 ) j e n e p r a v d i v á , c y k l u s s a k o n č í . K o n e č n ý s t a v p r e m e n n ý c h j e :

A = 1 , B = 4 .

Page 25: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 24

N a čo s l úž i u v ed en ý a l go r i tm us a ak á b ud e k on ečn á ho dn o ta

p r em enn e j A , ak n a z ač i a tk u p l a t í A =10 3 , B=5?

Pr í k l ady :

1 . D an é j e p r i ro dzen é č í s lo C . Z i s t i t e p o če t c i f i e r v t om to č í s l e .

2 . D an é j e p r i ro dzen é č í s lo C . Z i s t i t e j eho c i f e rn ý s ú če t .

3 . M iš ko v ho d i l do po k l adn i čk y 1 k o r unu . D r uh ý d eň t am vh o d i l 2

k o ru n y, t r e t í d eň 3 k o ru n y, a t ď . Za k o ľk o dn í s i na sp o r í na

au t í čk o , k to r é s t o j í K k o rú n?

4 . D an á j e po s tu pno sť ce l ých č í s e l p r ed s t av u j úc i ch p l a t y

z am es tn ancov ( i ch p o če t n ep ozn áme) . A k o p os l edn ý j e z ad an ý

p l a t r i ad i t eľ a , k to r ý j ed in ý j e v äč š í n ež 5 00 00 , - S k . Z i s t i t e

k oľ ko zam es t n an cov m á p od n i k a ak ý j e i ch p r i em er n ý p l a t .

5 . V b an k e j e K ko r ún . P os tu pn e p r i ch ádz a j ú pož i ad av k y na

p os k yt n u t i e ú ve r u - t . zn . po s tu pn e s a z adáv a j ú s um y, k t o ré s i

ch cú k l i en t i od b ank y p o ž i čať . P o n ač í t an í kaž d e j sum y p r o gr am

v yp í š e , č i j e ž i ados ť o p ôž i čku v yb a v en á k l ad n e , a l eb o s a j e j

n ed á v yh o v i eť z d ôv o du nedo s t a t ku p eň az í v b an ko vom t rezo r e .

P ro gr am ko n č í , ak v bank e n ez os t an e an i ko r un a .

1.16 .1 . Zacyklenie

- op a ko v an i e p r í k azu d on eko n ečn a .

A k j e p odm i en ka cyk l u W H ILE s t á l e p r avd i v á , cyk l u s n ik d y n e sk on č í .

S t áv a s a t o v t ed y, ak p r o gr am át o r ch yb n e z ap í š e p od mi enk u , nap r . :

{A=10}

while A>=0

do A:=A+1

T ak t o z ap í s an ý c yk l us n i kd y n e s k on č í , p r e t ože p r em enn á A b u d e m ať

s t á l e ho dn o tu v äčš i u ak o nu la . Ak s a n ám v p r o gr am e p o da r í n i ečo

p o do bn é , m us í m e sp us t en ý p r o gr am nás i ln e u ko n č i ť p om o co u k l áv es

C t r l+Br eak . Ni ek ed y v š ak sú s t ým p r o b l ém y a m u s ím e u k on č i ť c e l ý

Page 26: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 25

P as ca l (C t r l +A l t +D e l ) a l eb o re š t a r to v ať po č í t a č . P r e t en to p r íp ad

t r eb a m ať p os l edn ú ve rz i u p r o gr am u u lož en ú n a d i s ku . PR ED

K A ŽD Ý M S PUS T EN ÍM P RO GR AM U S I T R E BA PR O GRA M U LO Ž IŤ

N A D IS K ! ! !

1 .17. Typ CHAR

Mn ož ina hodn ô t : zn ak y ( z ap i s u j em e i ch v ap os t r o f ách , n ap r . 'A ' , ' 5 ' ,

'@ ' , ' ! ' , ' ' a tď . )

Pr í pus tn é op erá c ie : po r ov náv an ie ( < > = )

V š et k ých z n ak ov j e 25 6 , u sp o r i ad an é sú v t zv . ASCI I t ab u ľk e a

k až d ému j e p r i r aden é p o r ad ov é č í s lo od 0 p o 2 55 . To to č í s lo sa

n az ýv a k ód z n aku , r e sp . o rd in á l ne č í s lo . J ed no t l i v é z nak y s a

p o ro vn áv a jú p od ľa i ch kó du .

P r í k l ad y k ó do v :

'A' má kód 65

'B' 66

'C' 67

...

'Z' 90

'a' má kód 97

'b' 98

'c' 99

...

'z' 122

'0' má kód 48

'1' 49

'2' 50

...

'9' 57

P r e t o p l a t í , ž e :

'A '< ' a '

'A '< 'B '

' 9 '< 'A '

Štandardné funkcie

Popis: Funkcia: Typ parametra: Typ výsledku: Príklad:

ordinálne číslo znaku ORD(C) znak celé číslo ORD('A')=65

znak prislúchajúci kódu CHR(I) celé číslo znak CHR(65)='A'

predchodca znaku PRED(C) znak znak PRED('B')='A'

nasledovník znaku SUCC(C) znak znak SUCC('A')='B'

Page 27: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 26

Pr í k l ad y :

1 . P ro gr am v yp í š e na o b r azo vk u v eľk ú ab ecedu : A , B ,C , . . . , Z

2 . P ro gr am n ač í t av a po j ed no m zn ak u a v yp i s u j e j eho kó d , p o k iaľ

n ebu d e z adan á bo dk a .

3 . P ro gr am v yp í š e v še t k y z n ak y A S C II t abuľ k y o d 0 - t éh o p o 25 5 -

t y .

4 . P ro gr am n ač í t a v eľ k é p í s meno ab eced y a v yp í š e t o i s t é m a lé

p í s meno .

P o z n . : T y p c h a r m o ž n o p o u ž i ť p r e r i a d i a c u p r e m e n n ú c y k l u F O R . A k c h c e t e

v y p i s o v a ť n a o b r a z o v k u ú d a j e d o r i a d k u z a s e b o u , p o ž i t e m i e s t o p r í k a z u

W R I T E L N l e n W R I T E .

1 .18. Cyklus REPEAT

- c yk l us s p od mi enk o u na k on c i

S yn ta x:

repeat

<príkazy>

until <logický výraz>

P r í k azo v v cyk l e m ôž e b yť v i ac a n emus ím e p ouž i ť ko nš t r uk c iu

' b eg i n . . end ' .

S éman t ika : p r í k azy v c yk l e s a v yk o n áv a jú o p ak ov an e , po k i aľ nebu de

l o g ick ý v ýr az p rav d i v ý. A k j e n ep r avd i v ý, c yk l u s p o k r aču j e .

Pr í k l ad :

S:=0;

repeat

readln(A);

S:=S+A

until A=0;

writeln(S)

Page 28: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 27

Č o s a v yp í š e n a ob r az ov ku , ak už í va t eľ po s t up n e z adáv a n a vs t up

t i e to č í s l a : 2 , 5 , 3 , 0 ,7 , 0 ?

P r i k a ž d o m p r e c h o d e c y k l o m s a n a č í t a j e d n o č í s l o z o v s t u p u ( r e a d l n ( A ) ) a

p r i p o č í t a s a k c e l k o v é m u s ú č t u ( S : = S + A ) . T i e t o d v e o p e r á c i e s a o p a k u j ú

d o v t e d y , k ý m č í s l o z a d a n é n a v s t u p e n e b u d e r o v n é n u l e ( A = 0 ) . V t e d y c y k l u s

k o n č í . P r e h o r e u v e d e n ú v s t u p n ú p o s t u p n o s ť n á m p r o g r a m v y p o č í t a 2 + 5 + 3 , č i ž e

1 0 .

Pr í k l ady :

1 . D an á j e pos tu pn os ť k l adn ých a z áp o rn ých č í s e l (p r í jm y a

v ýd a j e ) u ko n čen á n u l ou . Z i s t i t e c e lko v ý p r í j em , c e l ko vý v ýd a j

a ko n ečn ú b i l an c iu ( z i s k a l ebo s t r a t a ) .

2 . D an á j e p os tu pn osť zn ám ok ž i ak a (1 . . 5 ) uk on čená nu lo u . Z i s t i t e

p o č t y j ed n o t l i v ých zn ámo k (p o če t j edn o t i ek , p o če t dv o j ok , . . . ) a

p r i em er nú zn ámk u .

3 . D an é j e p r i r odz en é č í s l o A . V yt v o r t e a v yp í š t e č í s lo B , k t o r é

m á t i e i s t é c i f r y ak o A, a l e v op ačnom p or ad í .

1.18.1. Rozdiely medzi cyklom WHILE a REPEAT

o v yh odno t en i e p odmi enk y - ak po dm ienk a p l a t í , cyk l us

w h i l e p ok r aču j e , r ep ea t ko n č í . Ak p od mi en k a n ep l a t í

c yk l u s w h i l e k on č í , a l e r ep ea t p ok r aču j e .

o u mi es tn en i e pod mi enk y - v c yk l e w h i l e j e p od mi en k a na

z ač i a t ku , v yh o d nocu j e s a s kô r , n ež s a v yk o n á p r í kaz v

c yk l e , p r e t o s a m ôž e s t ať , ž e s a p r í kaz v cyk l e n ev yk o ná

an i r az , ak j e p odm ienk a h n eď n a zač i a t ku n ep r av d iv á . V

c yk l e r ep ea t j e p o dm ienk a n a k on c i , t . z n . n a j sk ô r s a

v yk o n a jú p r ík az y v cyk l e , až po to m s a v yh o d no cu j e

Page 29: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 28

p o dmi en k a . P r í k azy v c yk l e r ep ea t s as t ed a v yk o n a jú

a s po ň r az .

o p o če t p r ík a zo v v cyk le - v cyk l e w h i l e môž e b yť l en

j ed in ý p r í kaz , v c yk l e r ep ea t i ch m ôž e b yť v i ac .

Ú l oha : P r ep í š t e h o r eu v ed en ý p r í k l ad ( s úče t p os tu pn os t i č í s e l

u k on čen e j n u lo u ) p om o co u cyk l u w h i l e , t ak ab y d áv a l ro vn aké

v ýs l ed k y.

1 .19. Typ BOOLEAN

Mn ož ina h odnô t : l o g i ck é ho dn o t y FA LS E ( n ep r av da ) a TRUE

( p r avd a )

T i e t o h o d n o t y m a j ú t i e ž s v o j e k ó d y , k t o r é s a d a j ú z i s t i ť f u n c i o u O R D . F a l s e m á

k ó d 0 a t r u e 1 .

Pr í pus tn é o perá c ie : po r ov n áv an i e ( <>= ) a l o g i ck é ope r ác i e ( N OT,

A N D , OR ) op í s ané v čas t i po dmi en en ý p r í kaz

L og ický vý ra z - v ýr az , k t o rého v ýs l edn á ho dn o t a j e p r avd a a l ebo

n ep r av da . N apr .

A > B

(A<3) and (B <>0)

Premen n á t ypu b oo l ean a j e j po už i t i e :

D ekl a r ác i a :

var B:boolean

P ouž i t i e v p r ík az o ch :

B:=true;

B:= 4<7;

B:= (4<7) and B;

if B then ...;

while not B do ...

Page 30: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 29

1.19.1. Zisťovanie vlastností postupnosti

V p r ax i n i ek ed y p o t r eb u j em e z i s t i ť v l a s t nos ť po s t upn os t i ( č i j e

p os tu pn osť k l ad n á , r a s t úca , . . . ) . Ab y s m e v yr i e š i l i ú l oh u , p o t r eb u j em e

s ko n t r o lo v ať k aždý p r v o k p os t up no s t i , č i s p ĺň a u r č i t ú p o dmi enku .

N ap r . p os tu pn osť j e k l adn á v t ed y, ak j e k ažd ý j e j p r v ok k l adn ý.

Ú l oh y t o h to t yp u r i e š im e t ak , ž e p r edp o k l ad ám e , ž e po s tu p nos ť d anú

v l as t no sť m á . Po tom p os t up n e p reko n t r o lu j em e j edn o t l i vé p r v k y a ak

n á jd em e čo l en j ed in ý, k t o r ý p ožad ov anú v l a s tn os ť n em á, n áš

"p r ed po k l ad " o pr av ím e . A k s ú vš e tk y p r v k y v p o r i ad k u , n i č s a

n em en í .

P r i ú l oh ách to h to typ u j e v ho dn é po už i ť s i g n a l i z ačnú p rem enn ú t yp u

b o o l ean , k to r á n ám s i gn a l i zu j e , ak á j e p o s tu pn os ť . Nap r . p rem en ná

J E K LA D N A :b oo l ean bu d e o bs aho v ať t r ue , ak j e po s t upn os ť k l adn á ,

ak n i e j e k l adn á , bu d e ob s ah ov ať f a l se .

N a z ač i a t ku p r edp ok l ad ám e , ž e p os t upn os ť j e k l ad ná , t . zn . p r em en nú

i n i c i a l i zu j eme n as l edo vn e : J E K LA D N A : =t ru e . P o t om v c yk l e

p os tu pn e n ač í t av ame j ed no t l i vé p r vk y p os tu pn os t i a k on t ro lu j em e i ch .

A k b ud e z ad an ý p r v o k n ek l adn ý, n á š p r edp ok lad s a n a ruš i l a môž em e

h o zm en i ť : J EK LA D N A: =f a l s e . N a k on c i p r o gr am u p o dľ a ob sahu

p r em enn e j J E K LA D N A v yp í š em e v ýs l edo k .

Pr í k l ady :

1 . D an ý j e p o če t p r vk o v N a N -p r vk ová p o s tu pn os ť ce l ých č í s e l .

Z i s t i t e , č i j e p os tu p nos ť k l adn á , t . zn . č i s ú v š e tk y j e j p r v k y

k l ad n é .

2 . D an ý j e p o če t p r vk o v N a N -p r vk ová p o s tu pn os ť ce l ých č í s e l .

Z i s t i t e , č i j e po s tu p nos ť r as t ú ca , t . zn . č i j e k ažd ý j e j p rv ok

v äč š í n ež p red ch ádz a j úc i ( s v ýn i m ko u p rv ého ) .

3 . D an é j e p r i ro dzen é č í s lo C . Z i s t i t e , č i j e t o p r vo č í s l o .

Page 31: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 30

1 .20. Príkaz CASE

- v i acn áso bn é v e t ven i e

S yn ta x:

case <výraz> of

<hodnoty>:<príkaz>;

<hodnoty>:<príkaz>;

...

<hodnoty>:<príkaz>;

else <príkaz>

end

<v ýr az > j e v ýr az o r d in á l n eh o t yp u ( in t ege r , ch ar , bo o l ean , . . . ) .

<p r í k az > j e ľ ub ov oľ n ý p r í k az , ak po t reb u j em e uv ie sť j a j edn e j v e t ve

v i ac p r ík azo v , p ouž i j em e ko nš t r uk c i u ' b eg i n . . . end ' .

< h od no t y> j e z ozn am h od nô t t ak ého i s t ého t yp u , ako j e <v ýr az > .

H o dn o t y s ú o dd e len é č i a r k ami a môž u b yť z ap í s an é ak o i n t e rv a l

' o d . . d o ' .

V etv a ' e l s e ' j e n ep ov in n á .

S éman t ika : V yp o č í t a s a h od no t a d an ého v ýr az u a po r o vn á s a s

h o dn o t ami n a j ed no t l i v ých v e t v ách . A k j e v ýr az r o v n ý h o dn o t e na

n i ek t o r e j v e t v e , vyk o n á s a p r í k az n a t e j t o v e tv e . Ak j e r ov n ý

h o dn o t ám n a v i ace r ých v e tv ách , v yk o ná s a t en p r íkaz , k to r ý j e

u v ed en ý s k ô r .

Pr í k l ad : Mám e p r em enn ú A t yp u i n t ege r . Č o s a v yp í š e n a o b r azo vku

p o v yk o n an í n as l edo v né ho p r ík azu?

case A of

3:writeln(4);

5,10,15,20:writeln(A div 5);

16..22:writeln(A+2);

-2..2,4,6..9:writeln(A -1)

else writeln(A)

end

A k j e A =3 , v yk o n á s a p r v ý p r í k az a v yp í š e : 4

Page 32: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 31

A k j e A =1 7 , v yk o n á s a t r e t í p r í k az ( 1 7 j e z i n t e rv a lu <16 ,2 2 >) a

v yp í š e : 1 9

A k j e A=20 , t eo r e t i ck y b y v yh o v o v a l a a j d r uh á a j t r e t i a v e tv a , a l e

v yk o n á s a l en d r uhý p r í k az a v yp í š e : 4

A k j e A =9 , v yk o n á s a š tv r t ý p r ík az a vyp í š e : 8

A k j e A =14 , v yk o n á s a po s l ed n ý p r í k az n a v e tv e e l s e a vyp í š e : 14

A k o s a zm en í v ýs tu p v h o r eu ved ených p r í p ad o ch , ak v ýr az A v

p r ík az e ' c a s e ' zm en í me n a v ýr az A +1 ?

Pr í k l ady :

1 . D an é j e p r i r odz en é č í s l o z i n t e rva l u <1 , 5 > p r ed s t av u j ú ce

zn ámk u ž i ak a . P r o gr am n ač í t a č í s lo znám k y a v yp í š e j u s lo v ne .

2 . P ro gr am n ač í t a vek o so b y, j e j v ýš k u v cen t im e t r o ch a vyp o č í t a

i d eá ln u hm otn os ť po dľ a t ab uľk y:

V ek H m otn osť

0 - 1 5

1 6 - 3 0

3 1 - 5 0

5 1 -

v ek* 3 . 5

v ýš k a - 1 10

v ýš k a - 1 00

v ýš k a - 9 0

3 . D o pl ň t e p ro gr am t ak , ab y s a zo p ak ov a l p r e N o sô b ( N j e d an é ) .

4 . P ro gr am n ač í t a znak a v yp í š e , č i j e t o v eľ k é p í sm en o , m alé

p í s meno , č í s l i c a , i n t e rp un k čn é zn am i en k o ( . ? ! , ) a l eb o n i ečo i n é .

1 .21. Vnorené cykly

Príkaz v tele cyklu môže byť ľubovoľný (priraďovací príkaz, príkaz vstupu, príkaz

výstupu, príkaz vetvenia, príkaz cyklu, ...). To znamená, že príkaz, ktorý necháme

vykonávať opakovane, môže byť opäť cyklus. Vznikne nám príkazová konštrukcia, ktorú

nazývame vnorené cykly.

Page 33: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 32

for I:=1 to 10

do for J:=1 to 20

do writeln('*')

P rv ý c yk l u s s a n azýv a v o nk a j š í , v yp í s an ý t u čn ým j e v nú to r n ý.

S am ot n ý p r í k az . . .

for J:=1 to 20

do writeln('*')

. . . v yp í š e n a ob r azov k u 20 h v i ezd i č i ek . Ak h o n ech ám e zo p ak ov ať 10 -

k r á t , v yp í š e 10 -k r á t v i ac h v i ezd i č i ek , č i ž e 20 0 .

Ú l ohy :

1 . K oľ ko h v i ezd i č i ek s a v yp í š e n a ob r azov k u?

for I:=1 to 5

do for J:=I to 10

do writeln('*')

2 . K oľ ko h v i ezd i č i ek s a v yp í š e n a ob r azov k u?

for I:=5 downto 1

do for J:=3 to I

do writeln('*')

3 . Č o s a v yp í š e n a o b r azo vk u?

for I:=1 to 5

do for J:=1 to 5

do writeln(I,J)

4 . Č o s a v yp í š e n a o b r azo vk u?

for I:=1 to 3

do for J:=1 to 3

do for K:=1 to 3

do writeln(I,J,K)

Pr í k l ady :

1 . V yp í š t e n a ob r azo vk u v še tk y m ož né usp o r i ad an é dv o j i c e zn akov

z mn ož in y { A , B , C , D , E } .

Page 34: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 33

2 . V yp í š t e n a ob r azo v ku vš e t k y m ožn é k omb in ác i e z nak ov z

m nož i n y { A , B , C , D , E } .

3 . D an ý j e p o če t ž i ako v N a p o če t zn ám ok n a v ys v ed čen í P . P re

k až d éh o ž i ak a p rogr am n ač í t a P z n ám ok , v yp o č í t a p r i em ernú

zn ámk u a v yp í š e , č i b o l v yz n am en an ý ( p r i em er do 1 . 50 ) ,

p r os p e l ve ľmi dob r e ( p r i em er d o 2 . 00 ) a l ebo p ros p e l (v

o s t a t n ých p r íp ado ch ) .

4 . N ájd i t e vš e t k y t r o j i c e p r i r odz en ých č í s e l A , B, C z i n t e r v a l u

<1 ,1 00 > , k t o r é s ú s t r an ami p r av ou h l ého t r o ju ho ln í k a .

5 . N ájd i t e v š e tk y r i e š en i a k r yp t o gr amu (z i s t i t e , k to r é č í s l i c e

r ep r ez en t u j ú z n ak y A , B, C) : BA * A B = AC A

1 .22. Výstup na textovú obrazovku

T ex t ov á o b r azov k a m á 2 5 r i ad ko v a 8 0 s t ĺ p cov . J e r ozd e l en é n a 80x 25

p o l í čok , v k až d om p o l í čku môž e b yť n ap í san ý p r áv e 1 zn ak . A k t í vn e

p o l í čko ozn aču je k u rzo r ( b l ik a j ú c i p o dč i a r ko vn ík ) , k to r ý s a p r i

v ýp i s e na ob r az ovk u p os úv a ď a le j . ( K u rzo r oz n aču j e m ie s t o , kd e

z ačn e v yp i s ov ať na j b l i ž š í p r í k az w r i t e / w r i t e ln . Po z áp i s e zn aku n a

ak t ív n e p o l í čko s a k u rzo r p os un ie o 1 p o l í čko vp r av o , ak j e n a k on c i

r i ad ku , po su n i e s a n a p r vé p o l í čko v n as l ed u jú com r i ad ku . Ak j e

k u rzo r v p os l edn om p o l í čku p os l ed néh o r i adk u , ob sah o b r azo vk y sa

r o lu j e o 1 r i ad ok v yš š i e a k u rzo r s a n a s t av í n a p r v é p o l í čko

p os l ed n éh o r i adk u .

Pr í ka zy n a vý p i s :

w ri t e ( <p ara met re> )

- v yp í š e ú d a j e a n as t av í k u rzo r z a p os l edn ý v yp í s an ý z n ak

w ri t e ln (<p a ra met re> )

- v yp í š e úd a je a n a s t av í ku rzo r na z ač i a t ok n as l edu jú ceho

r i ad ku

w ri t e ln

- n ev yp í š e n i č , ku rzo r n a s t av í n a z ač i a t ok n a s l ed u jú ceho r i adk u

Page 35: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 34

Pr í k l ady :

1 . D an é j e p r i r odz en é č í s lo N . Zap í š t e d o r i adk u z a s ebou

f ak t o r i á l y: 1 ! , 2 ! , 3 ! , . . . N ! o dd e l en é č i a rk ami . K - fak to r i á l j e

s ú č i n p r i ro dzen ých č í s e l o d 1 po K: K! =1 .2 .3 . . . . K

2 . D an é j e p r i ro dzené č í s l o N . P r o gr am v yp í š e N r i ad ko v s N

h v i ez d i čk am i . ( "Nak r e s l í " hv i ez d i čk ový š t v o rec . )

3 . P ro gr am v yp í š e do r i ad ko v 1 . .2 4 , t oľk o hv iez d i č i ek , k oľ ko

u r ču j e f un k c i a f ( i )= ( i -1 2 )2/ 2 p o z aok rú h l en í ( i j e č í s lo r i ad ku ) .

P r i v ýs t up e n a o b razo vk u môž em e v yuž ív ať p r í k az y z un i t u CR T. V

t akom to p r í p ad e mu s í me z a h l av i čk u p r o gr am u do p l n i ť : uses Crt;

1 .23. Unit CRT

g o to xy ( x , y )

- p r e su n i e ku rzo r d o x - t éh o s t ĺ pca a y - t éh o r i adk u . S t ĺp ce sú

č í s lo v an é 1 . . 80 , r i ad k y 1 . .2 5 .

t ex t co lo r ( F)

- n as t av í f a r bu p í s m a F . F j e c e l é č í s lo z i n t e r v a l u <0 ,1 5 > .

Č í s l a v äčš i e ak o 15 p r ed s t av u j ú b l i k a jú ce fa r b y.

t ex tb a ckg round ( F)

- n as t av í f a r bu p ozad i a F . F j e c e l é č í s lo z i n t e rv a lu <0 , 7> .

w ind ow ( x l ,yh ,xp ,yd )

- o tv or í o kn o s o sú r adn i cami [ x l , yh ] v ľ av om h o rn om r o hu a

[ x p , yd ] v p r av om do ln om r oh u . O kn o j e ak t ív na ča sť o b razo vk y

v k to r om p l a t i a r e l a t í v n e s ú r ad n i ce vzh ľado m n a j eho ľ av ý

h o rn ý r o h [ 0 , 0 ] . M im o ok n a s a n ed a jú ro b i ť ž i adn e zm en y

( p í s ať , z o t i e r ať ) .

c l rs cr

- z o t r i e ob r az ov ku , r e sp . ok no , f a rb ou p ozad i a .

w h erex , w h erey

- f u nk c ie , k t o r é v rá t i a p r i r odz en é č í s l o - č í s l o s t ĺ p ca , r i ad ku , v

k to r om s a n ach ádz a k urz o r .

d el ay ( t )

Page 36: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 35

- p r o ces o r "čak á" t mi l i s ekú nd ( keď po t r ebu jem e sp om al i ť

p r o gr am ) .

Pr í k l ady :

1 . V yb e r t e s i z o s vo j i ch od l ad en ých p r o gr amo v j ed en a do p lň t e ho

o f a r b y: n a z ač i a t ku p r o gr am u bu d e p r ázd na o b r azo vk a z e l en e j

f a r b y. P r i n ač í t av an í v s tu pn ých d á t bu d ú ozn am y v yp i s o v an é n a

o b r azo vk u b i e l ou f a r b ou , v ýs l ed k y s a bu dú v yp i s ov ať ž l t ou

f a r b ou . (P r i na s t av o van í f a r i eb m ôže t e po už ív ať a j an g l i cké

oz n ačen i a : g r een , w h i t e , ye l l o w ) .

2 . "N ak r e s l i t e " n a b i e l e j o b r az ov k e u p ro s t r ed če r v en ý o b d ĺž n ik a

r ozm erm i 40x 1 5 po l í čok .

3 . P r es úv a j t e pom a l y p o h or no m ok r a j i ob r az ov k y n áp i s "AH OJ " .

4 . V yt v o r t e n a ce l e j ob r az ov ke f a r eb nú rek l amu na ne j ak ý p r o duk t .

( S t ač í s t a t i ck á , môž e b yť a j p oh yb l iv á . )

1 .24. Vstup z k lávesnice

U žív a te ľ z ad áv a vs tu pn é úd a j e v n i ek oľ k ých r i ad ko ch u k on čen ých

en t e r om . V j edno m r i ad ku m ôže b yť z ap í s an ých v i ac ú d a j ov ( ak s ú

t o č í s l a , od deľu j eme i ch m edz e r ami ) . M ys l en ý u k azo v a t eľ ( n i ečo ako

k u rzo r ) oz naču j e zn ak zo vs t up n éh o r i adk u , k to r ý s a b ud e n a jb l i ž š i e

č í t a ť . P r i č í t an í s a p os úv a ď a l e j .

Pr í ka zy n a č í t an i e :

r ead ( <p remenn é> )

- p r eč í t a úd a j e zo v s t up ného r i adk u d o d an ých p r em en n ých a

p os un i e uk azo v a t eľ z a p os l edn ý p r eč í t an ý z n ak

read ln (<p remenn é> )

- p r eč í t a úd a j e zo v s t up ného r i adk u d o d an ých p r em en n ých a

p os un i e uk az o v a t eľ n a ďa l š í v s t up n ý r i ado k ( ak h o už í v a t e ľ e š t e

n ez ad a l , t ak čak á )

read ln

Page 37: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 36

- p os u n i e u k azo v a te ľ n a ď a l š í v s t up ný r i ad ok ( ak h o už í v a t eľ

e š t e n ez ad a l , t ak čak á ) . V s tu pn ý r i ad o k môž e b yť a j p r áz dn y

( už í v a t eľ s t l ač í l en en t e r ) .

Pr í k l ad :

U žív a te ľ z ad a l na k l áv esn i c i t i e t o vs t up n é r i adk y:

1 2 3 4

5

A k ý b u d e ob sah p rem enn ých v a r A , B : i n t ege r ; C : ch a r po v yk o n an í

t ých t o p r í kaz ov?

read(A);

readln(C);

read(B)

{ A= , B= , C= }

Fu nk ci a EO LN : j e t o l o g i ck á f un k c ia , k to r á nám s i gn a l i z u j e poz í c iu

m ys l en éh o uk azo va t eľ a p r i č í t an í zo v s tu pn ého r i ad k u . A k j e

u k azo v a t eľ n a ko nc i vs t up n éh o r i ad ku ( p reč í t a l s a po s l ed n ý z n ak) ,

f u nk c i a v r á t i TR UE, i n ak v r á t i FA LS E.

T út o f un k c iu m ôžem e v yu ž i ť p r i č í t an í po s t up nos t i ú da j ov , k t o r á j e

d an á v j edn om v s t up no m r i adk u , p r i čom p o če t p r v ko v v op r ed

n epoz n ám e. Po už i j em e tú to s ch ému p ro gr amu :

while not eoln

do begin read(prvok);

<spracuj prvok>;

end

Pr í k l ad : D an á j e p os tu pn osť zn ako v v j edn om v s tu pn om r i ad ku . P r i

z ad áv an í s ú n a ob r azo vk e š t and a rd né f a rb y - č i e rn e poz ad i e , b i e l e

p í s mo . V yp í š t e t ú i s tú p os t up no sť d o d r uh ého r i ad ku ž l t ou f a rb ou .

uses crt;

var znak:char;

begin

textbackground(black);

textcolor(white);

writeln('Zadaj postupnost znakov:');

while not eoln

do begin read(znak);

Page 38: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 37

textcolor(yellow);

write(znak)

end

end.

Pr í k l ady :

1 . D an á j e p os t up no sť zn ako v v j ed no m v s t up no m r i adk u . P r o gr am

v yp í š e , koľ ko j e v p os tu pn os t i

a ) p í s m en b ) č í s l i c c ) a r i t m et i ck ých znami eno k

2 . D an á j e pos tu pn osť zn ako v v j edn om v s t up no m r i adk u . V yp í š t e

t ú i s t ú po s t up nos ť d o d ru h éh o r i adk u t ak , ž e :

a ) k ažd é ' y ' z men í t e n a ' i b ) z a k ažd é ' x ' v l ož í t e ' y '

3 . D an é j e p r i ro dzen é č í s lo A . Bez po už i t i a č í s e l n e j p r em enne j

a ) z i s t i t e , č i j e d e l i t eľ n é 5 b ) z i s t i t e , č i j e d e l i t eľn é 1 00

c ) v yp í š t e j eho d e sať n áso bo k .

4 . D an á j e po s tu pn os ť z n ak ov . Z i s t i t e , č i j e t o i d en t i f i k á t o r .

1 .25. Knižnica CRT - vs tup z k lávesnice

read key

- zn ako v á fu nk c ia , k t o r á č ak á na s t l ačen ie k l áv es y a v r á t i zn ak

t e j t o k l áves y. P o s t l a čen í k l áv es y s a z n ak n ev yp i su j e na

o b r azo vk u .

k eyp ress ed

- l o g i ck á f un k c i a , k to r á v r á t i TR U E, ak bo la s t l a čená k l áv es a ,

i n ak v r á t i FA LS E

Page 39: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 38

Pr í k l ady :

1 . D o s t redu ob r azov k y v yp í š t e t ex t A H OJ a op ak ovan e ho

p r ek re sľu j t e f a r b am i od 1 d o 15 po k ia ľ už ív a t eľ ne s t l a č í ne j akú

k l áv es u .

2 . D o s t r ed u o b r azo vk y v yp í š t e t ex t AH OJ . P r o g r am o p ak o vane

n ač í t av a zn ak s t l a čen e j k l áv es y. A k už í v a t eľ s t l a č í 'C ' , náp i s s a

p r ep í š e č e r veno u fa r b ou , ak s t l a č í 'M ' - m o d ro u , 'Z ' - z e l enou ,

. . . 'K ' - p ro gr am kon č í .

Kl á vesy mô žeme ro zde l i ť n a :

zn ako v é ( A , @ , + , 3 , m edz er a , . . . ) - i ch s t l a čen í m už í v a t eľ

z ad áv a zo b r az i t eľ ný z n ak

f unk čn é ( En t e r , Es c , š íp k y, F1 , In s e r t , . . . ) - i ch s t l a čen ím sa

v yv o l áv a n e j ak á f un k c i a (n ap r . Es c má v äč š in ou f un k c i u s to r no ,

F1 - h e l p , . . . )

p rep ín a c i e ( Al t , Sh i f t , C t r l ) - p ouž íva j ú sa v k om bin ác i i s i n ou

k l áv es o u a m en i a j e j f un k c i u , r e sp . z nak

I né ro zd e len i e k láv es :

j edno ba j to v é - i ch s t l a čen ím s a z ad áv a j ed en zn ak ( A , 3 , + ,

E nt e r , Es c , . . . )

d vo jb aj t ov é - i ch s t l a čen í m s a z ad áva j ú dv a zn ak y, z k t o r ých

p r v ý j e z n ak s k ód om 0 ( š í pk y, F1 , . . . )

Zn ak y m ô ž em e z ap i s ov ať ( o k r em b ežn ého s pô so bu s ap os t r o f ami ,

n ap r . 'A ' ) a j p o moco u i ch k ód ov : # <k ód> ( n ap r . #6 5 ) . T en t o sp ôs ob

s a p ouž í v a h l av ne p r e n ezo b r az i t eľ n é zn ak y ( n ap r . k l áv es a E sc

z ad áv a zn ak #2 7 ) .

Page 40: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 39

Preh ľad zn ako v n iek to rý ch k lá v es :

E s c j edn ob a j to v á # 2 7

E n t e r j edn ob a j to v á # 1 3

š íp k a ho r e d v o jb a j to v á # 0 # 72

š íp k a vľ av o d v o jb a j to v á # 0 # 75

š íp k a vp r av o

š íp k a do l e

H o me

E n d

P gU p

P gD n

In s e r t

D e l e t e

F1

C t r l F1

Pr í k l ad : P ro gr am o p ak ov an e n ač í t av a s t l a čen ú k l áv es u a v yp i s u j e , č i

j e j ed no b a j t ov á a l eb o dv o j ba j t ov á a v yp í š e j e j k ód , r e s p . k ód y. S

p om o co u to h t o p ro gr amu do p l ň t e ho r euv eden ú t ab uľku . P ro gr am

k o nč í po s t l ačen í Es c . D op l ň t e ch ýb a j ú ce čas t i ozn ačen é " . . . . . "

uses Crt;

var ZN1, ZN2:char;

begin

repeat

ZN1:=readkey;

if ZN1=.....

then begin ZN2:=readkey;

writeln('Klavesa je dvojbajtova, jej kody

su: 0 a ',.....)

end

else writeln('Klavesa je jednobajtova, jej kod je:

',.....)

until ZN1=.....

end.

Page 41: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 40

Pr í k l ady :

1 . V yp í š t e d o s t r edu o b r azo vk y t ex t AH OJ . P r o gr am o p ak o vane

n ač í t av a s t l a čen é k l áv es y a p o dľ a š íp o k po sú v a t ex t o r i ad ok

v yš š i e / n i ž š i e , o s t ĺ p ec doľ av a /d op r av a . Po s t l a čen í Es c p r o gr am

k o nč í .

1 .26. Kontrolovaný vs tup

V st up n á p odm i en ka a l go r i tm u u r ču j e , ak é v l as tn os t i ma j ú mať

ú d a j e , k to r é do s t ane a l go r i tm us n a v s tu p e . N ap r : " D an é j e p r i ro dz ené

č í s lo N vä čš i e a ko 1 . " , " D an á j e p os t up no s ť k l ad n ých reá ln ych č í se l

u kon čená n u l ou . " P r e už í v a t eľ a to zn amen á , ž e ak ch ce , ab y m u

a l go r i tmu s da l n a z áv e r sp r áv n e v ýs l ed k y, m u s í m u n a v s t u p e z adať

ú d a j e v yh o v u j ú ce vs tu pn e j po dmi enk e . Zad an i e n es p r áv neh o úd a j u n a

v s t up e môž e sp ôso b i ť , ž e p ro gr am s k on č í p r edčasn e s ch yb o v ým

h l ás en ím ( p ro gr am " s p ad ne" ) a l eb o nám d á n a v ýs t u p e z l é v ýs l ed k y.

D o b r ý p r o gr am b y m al b yť z ab ezp ečen ý p r o t i ch yb ám už í v a t eľ a a

k o n t ro l ov ať k ažd ý ú d a j z adan ý n a v s t up e . V p r í pad e z ad an ia

n e sp r ávn eh o úd a ju s a m us í v s t up zop ak o vať .

C hyb a vs tup ného úd a ju mô že by ť :

- v t yp e ( n ap r . už í va t eľ m al z ad ať ce l é č í s l o a z ad a l zn ak)

- v h od no te ( n ap r . už ív a t eľ m al z adať č í s lo z i n t e r v a l u <1 , 10 > a

z ad a l 2 0 )

S chém a ko n t ro l ov an ého v s t up u :

repeat

writeln('Zadaj...');

readln(U);

if <údaj U je zlý>)

then writeln('Zle - zadaj znova')

until <údaj U je je dobrý>

Z a t i a ľ b u d e m e k o n t r o l o v a ť l e n s p r á v n o s ť h o d n o t y .

Page 42: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 41

Pr í k l ad :

N ap ro gr a mu j t e ko n t r o lo v an ý v s tu p ce l éh o č í s l a z i n t e rv a lu < -1 0 , 10 > .

1 .27. Podprogram

P od pr o gr am j e l o gick y u ce l en á časť p r o gr amu - po s t up no sť p r í k azo v ,

k to r á r i e š i n e j aký p o d p r o b l ém a j e ozn ačen á v l a s tn ým m en om

( i den t i f i k á t o rom ) .

N ap r . : N aš ou ú lo h ou j e v yt v o r i ť p ro gr am, k to r ý n ak r e s l í na

o b r azo vk u ob d ĺžn ik o vú d úh u , v h o rne j č as t i v s t r ed e vyp í š e "PRŠ Í

PRŠ Í" a v s t r ed n e j č a s t i n ech á r o l ov ať r i adk y, v k t o r ých s ú s t r i edavo

v yp í s an é b odk y a m edz e r y p o dľ a v zo r u :

T út o ú lo hu môž em e r ozd e l i ť n a č i a s tk ov é ú l oh y ( p o d pr ob l ém y) :

n ak r es l i ť dú hu , u r o b i ť n áp i s a u r o b i ť d ážď ( r o l u j úce r i adk y s

b o dk ami a m edzer ami ) . K ažd ý p o d p ro b l ém bu de r i e š i ť n e j ak ý

p o dp ro gr am, n az v im e i ch : D U HA , N A P IS , D A ZD . A k b y t i e t o

"p r ík az y" p o č í t a č poz n a l , ná š p ro gr am b y b o l v eľ mi j ed no d uch ý:

begin

DUHA;

NAPIS;

DAZD;

end.

P r í k az y, k to r é s m e v p ro gr ame

p o už i l i , n i e sú s ú čas ťo u j az yk a

P as ca l , p r e t o i ch m us í me po č í t aču

p r e sn e "v ys ve t l i ť " , m us íme i ch zad ek l a ro v ať .

D ekl ará c i a p odp rog ra mu (p ro cedú ry) :

procedure <identifikátor>;

<deklaračná časť>;

begin

<príkazy>;

end

Page 43: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 42

P od pr o gr am m á ro v nakú s t avb u ako p r o gr am , roz d ie l j e l en v

h l av i čk e (m ie s t o ' p r o gr am ' p í šem e ' p r o ced ur e ' ) . Za s ym bo lom ' en d '

n ed áv am e bo dk u , a l e b od ko č ia r ku , k to r á s lúž i ak o od d eľ ov ač od

ď a l š e j č a s t i .

U mi es tn en i e d ek lará c ie podp rog ra mu : v d ek l a r ačne j ča s t i h l av ného

p r o gr am u ( t am , kd e j e u mi es t n en á d ek la r ác i a p r em enn ých ) . Zau ž ív ané

p o r ad i e j e , ž e n a j sk ô r d ek l a r u j em e p rem enn é a p o n i ch p o dp ro gr am y,

a l e môž e to b yť a j n aop ak .

V o lan i e podp rog ra mu : v h l av nom pr o gr am e, t am, kd e ch ceme , ab y

s a v yk o n a l i p r ík azy p o d p r o gr amu , n ap í š em e l en j eh o men o . T ak ýt o

z áp i s s a b e r i e ako j ed en p r ík az .

N áš p ro gr am bu d e n ako n i ec v yz e r ať t ak to :

program APRIL;

procedure DUHA;

begin

...

end;

procedure NAPIS;

begin

...

end;

procedure DAZD;

begin

window(20,7,60,19); {súradnice okna treba prispôsobiť}

textbackground(lightgray);

textcolor(black);

clrscr;

repeat

write('. ');

until keypressed

end;

Page 44: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 43

Begin

DUHA;

NAPIS;

DAZD

end.

Ú l oha p re v ás : Do pl ň t e ch ýb a j ú ce p r ík azo v é čas t i p od p ro gr amov .

V ýh ody p ou ž i t ia po dp ro g ra mo v :

p r ehľ ad n e j š í p r o gram

m ožn osť l ad i ť p ro gr am po s t up n e po čas t i a ch

s t ru čn e j š í z áp i s p ro gr amu ( ak sa n e j ak á p os t up no sť p r í k azo v

o p ak u j e n a v i ace r ých mi e s t ach p ro gr a m u, s t a č í j u z ap í s ať l en

r a z - z ad ek l a r ov ať p o dp ro gr am - a vo lať p o t r eb n ý p o če t k r á t )

1.27.1. Lokálne a globálne premenné

A j p od p ro gr am môž e m ať s vo j e v l a s tn é p r em en n é d ek l a r o v an é v j eho

d ek l a r ačn e j č a s t i . T i e t o p r em enn é s a n az ýv a j ú l o ká ln e a m ôž e i ch

p o už ív ať l e n t en to po dp r o gr am . Ok r em n i ch môž e p o už ív ať a j

p r em enn é z h l avn éh o p r o gr amu - g l ob á ln e . Ak ex i s t u j e l o k á l n a a j

g l o b á ln a p r em enn á s t ým i s t ým m en om, s ú to dv e r ôzn e p r em en n é a v

p o dp ro gr am e j e po už i t eľ n á l en lo ká l n a ( g l ob á l n a j e za t i enená ) .

N ap r ík la d:

program HLAVNY;

var A,B:integer;

procedure PROC;

var B,C:integer;

begin

A:=1; B:=2; C:=3

end;

begin

A:=4; B:=5;

PROC;

writeln(A,B)

end.

Page 45: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 44

A k é ho dn o t y v yp í š e t en to p ro gr am? Č o v yp í š e , ak p os l edn ý p r í kaz

zm en ím e n a writeln(A,B,C) ?

Pr í k l ady :

1 . D an é j e p r i r odz ené č í s lo N . "V yk r e s l i t e " n a o b r az ov ku š t vo r ec

s o s t r an ou N, p o o bv od e k t o r éh o b u dú h v i ezd i čk y a v nú t r i

m edze r y. V yt v o r t e p od p ro gr am, k to r ý v yp í š e d o r i ad k u N

h v i ez d i č i ek a d ru h ý p o d pr o gr am , k to r ý v yp í š e d o r i adku

h v i ez d i čk u , z a ňou ( N - 2) m edz i e r a n a k on iec hv i ezd i čku . S

p om o co u t ých t o p od p ro gr amo v v yt v o r t e h l avn ý p r o gr am.

1.27.2. Používanie premenných a podprogramov

P r e k ažd ý o b j ek t v p r o gr am e ( p r emen n é i p od p ro gr am y) p l a t í , ž e

mu s í by ť dek la rov an ý skô r , ak o je pou ž i t ý . T . z n . ak ch c em e

p r em enn ú z h l avn éh o p ro gr amu po už i ť v n e j ak om po d pro gr am e, mu s í

b yť d ek l a ro van á sk ô r n ež t en to p odp r o gr am . Ak ch cem e , ab y j ed en

p o dp ro gr am m oh o l v o l ať i n ý p o d p ro gr am, mu s í b yť v o l an ý

d ek l a ro v an ý s k ô r ak o v o l a jú c i .

1 .28. Ponukový program

J e t o p r o gr am , k t o r ý v yp í š e p o nu ku n i ek oľk ých s l už i eb , už ív a t eľ s i

n i ek t o rú z n i ch v yb e r i e a p ro gr am ju z r ea l i z u j e . To t o v š e t ko op aku j e ,

k ým u ž í v a t eľ n ezad á p o k yn n a u k on čen i e .

S ch éma po nuko v éh o p rog ra mu :

repeat

writeln('1. sluzba');

writeln('2. sluzba');

...

writeln('N. sluzba');

writeln('0. koniec');

writeln('Zadaj cislo sluzby, ktoru si si

vybral:');

readln(VYBER);

Page 46: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 45

case VYBER of

1:<volaj procedúru 1>;

2:<volaj procedúru 2>;

...

N:<volaj procedúru N>

end;

until VYBER=0

K v ôl i p r ehľ adn os t i p ro gr amu j e do b r é k až dú s l užbu r ea l i zo v ať

zv l áš t n ym p o dp ro gr amo m.

Po s tu p l ad en i a p onuk ov éh o prog ra mu :

P on uk ov ý p r o gr am j e r oz s i ah l e j š í a j e d o br é l ad i ť ho p o ča s t i a ch - po

j edn o t l i v ých p r o ced ú r ach . T .zn . n a j sk ô r v yr o b ím e h l avn ý p r o gr am s

p r áz dn ou po nu ko u s l už i eb . Do p ln íme d o ň p r vú s l užb u a p r o cedú ru ,

k to r á j u r ea l i zu j e . P ro gr am sp us t ím e , o ds kú š am e, č i p r acu j e t ak , ako

t r eb a , p r í p . o p r av ím e ch yb y. D o p ln ím e ď a l š i u s l užb u a j e j p ro cedú ru

a tď .

Pr í k l ady :

1 . V yt v o r t e po nu ko vý p r o gr am , k to r ý o p a k ov ane n ač í t av a ce l é

č í s lo . Ak už ív a t eľ z ad á 1 , "v yk r e s l í " s l ov ens kú z á s t avu , 2 -

f r an cúz sk u , 3 - maď ars kú , a tď . , ak z ad á 0 - s ko nč í . (Zás t av y

k r e s l i t e ak o f a r eb né p ru h y - o b d ĺžn iky . )

2 . P on uk ov ý p r o gr am n ač í t a p r i r odzen é č í s lo N a p o nú kn e

už ív a t eľ ov i n ak r es l en i e t ých t o geo m et r i ck ých ú t v ar o v z

h v i ez d i č i ek : 1 . š t vo r ec s o s t r ano u N , 2 . p r avo uh l ý t r o ju ho ln ík s

o d vesn ami d ĺ ž k y N , 3 . r ov no r am enn ý t r o ju ho ln í k s v ýš k ou N, 4 .

k os oš tv or ec s o s t r an o u N.

***** * * *****

***** ** *** *****

***** *** ***** *****

***** **** ******** *****

***** ***** ********** *****

Page 47: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 46

1 .29. Typ pole

P ol e j e d á t ov á š t ru k t ú ra - o bs ahu j e v i ace r o d á t n e j ak ým s pô so bom

u sp o r i ad an ých . P o le p ozo s t áv a z n i eko ľk ých p r vk ov r ovn ak éh o t yp u

u sp o r i ad an ých v r ad e z a s e b ou . I ch p oče t j e p ev ne u r čen ý v

d ek l a r ác i i . Z u veden ého v yp l ýv a , ž e p o l e ako d á to v á š t ru k tú r a má

t i e to v l a s t no s t i :

- l in eá rn a ( p rv k y s ú usp o r i ad an é v r ade z a s eb ou )

- h o mo g énna (v š e tk y p r v k y s ú r ov nakéh o t yp u )

- s ta t i ck á (p o če t p r v ko v j e s t á l y, n emen n ý)

P o l e s i môž em e g r a f i ck y z n ázo rn i ť t ak t o :

1 2 34 1 2 40 1 2 65 1 2 20 1 2 70 1 3 01 1 4 00 1 3 50 1 3 60 1 3 86 1 4 20 1 4 21

V t ak e j t o d á to v e j š t ru k tú r e môž em e m ať u lož en ú i n fo rm ác i u o s t av e

ú č tu v bank e p očas 1 2 m es i acov r ok a . ( V p r vo m p r vk u j e s t av ú č t u v

j anu á r i , v d ru hom p r vk u s t av ú č tu vo f eb r uá r i a tď . ) To to b y b o l o p o l e

č í se l .

O k r em p oľ a č í s e l s i m ôžem e v yt v o r i ť n ap r . p o l e mi en d e t í :

M i ch a l Zu zk a A n d re j V i l ma

A l eb o po l e z n ak ov , v k to ro m m ôžu b yť z ap í s an é s p r ávn e o d po ved e n a

t e s to v é o t ázk y ( A , B , C , D ) :

A C B A D A

P rv ý p r v o k p oľ a ob s ah u j e s p r áv nu od p ov eď na p rv ú t es to vú o t ázk u ,

d r uh ý p r v ok - n a d ru h ú . . . a tď .

C el é po l e j e j edna premenn á o zn ačená j edn ý m id ent i f ik á to ro m.

J edno t l iv é p rvk y po ľa sú roz l í š en é ind exa mi . In d ex s i môž em e

p r eds t av i ť ak o po r ad o vé č í s lo .

1 2 3 4 5 6

A C B A D A

Page 48: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 47

D ekl ará c i a p remenn e j t ypu po l e :

var <premenná>:array [<typ indexu>] of <typ prvkov>

T y p i n d e x u j e o r d i n á l n y ( c e l o č í s e l n ý , c h a r , b o o l e a n , . . . ) a z v y č a j n e s a z a p i s u j e

a k o i n t e r v a l o d . . d o . T y p p r v k o v j e ľ u b o v o ľ n ý .

N azv i me p o l i a , k to r é s m e s i g r a f i ck y zn áz or n i l i v yš š i e , U C ET , D E T I,

T ES T. Ich d ek l a r ác i a b ud e v yz e r ať n a s l edo vn e :

var UCET:array[1..12]of real;

DETI:array[1..4]of string;

TEST:array[1..6]of char

T y p s t r i n g s a n a u č í m e n e s k ô r . V p r e m e n n e j t y p u s t r i n g m ô ž e b y ť u l o ž e n é c e l é

m e n o ( p o s t u p n o s ť z n a k o v ) .

In d ex y n em us i a b yť vžd y l en ce l é č í s l a a n emu s i a vž dy z ač í n ať od

č í s l a 1 . Nap r . :

var A:array[-5..5] of integer;

B:array['a'..'z'] of boolean

Sp rí s tupn en i e p rvku po ľa : <premenná>[<index>]

N ap r . : UC ET[ 1] j e p r v ý p r v o k p oľa U C ET , DE T I[ 4 ] j e p os l edn ý

p r vo k poľ a DE T I.

A k b y s m e ak o i nd ex po už i l i h od no t u m imo i n t e rv a l u u r čen éh o v

d ek l a r ác i i , n ap r . UC ET[ 0] a l eb o DE TI[ 5 ] , p oč í t a č b y v yh l ás i l ch yb u :

„R an ge ch eck e r r o r“ .

A k v á m a j n a p r i e k c h y b e v p r o g r a m e p o č í t a č n e v y p í s a l c h y b o v é h l á s e n i e , t r e b a

s i h l a v n o m m e n u P a s c a l u , v p o l o ž k e O p t i o n s - C o m p i l e r z a p n ú ť v o ľ b u " R u n t i m e

e r r o r s : [ X ] R a n g e c h e c k i n g . "

Prá ca s p rvka mi p oľ a: s j edn o t l i v ým i p r vk am i p r acu j em e ak o s

p r em enn ým i p r í s luš n éh o t yp u . (S p r vk om UC ET[ 1] p r acu j em e ak o s

p r em enn ou t yp u r ea l , s p r vk om T ES T[2] ak o s p r em en no u t yp u ch a r . )

UCET[1]:=123.50;

UCET[2]:=UCET[1]*2;

I:=3;

writeln(DETI[I]);

if TEST[1]='A' then P:=P+1

PO ZO R : p r em ennú t yp u p o l e nemôž em e n ač í t av ať an i v yp i s ov ať :

r e ad l n (U CE T ) ; w r i t e l n ( UC E T)

Page 49: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 48

P ol e n ač í t avam e a j v yp i s u j em e p o j edno t l i v ých p r v ko ch :

readln(UCET[1]);

readln(UCET[2]);

readln(UCET[3]);

...

readln(UCET[12])

a l ebo j ed no du chš i e :

for I:=1 to 12

do readln(UCET[I])

Pr í k l ad :

1 . D an á j e po s tu pn os ť d es i a t i ch ce l ých č í s e l . V yp í š t e t ú i s t ú

p os tu pn osť :

a ) odz ad u ( p rv k y v o p ačn om p or ad í )

b ) b ez n u lo v ých p r v k ov

c ) n a j s kô r z ápo r n é a po tom n ez ápo rn é p r vk y

V p r ax i v äč š in ou d o pr edu n ev i em e, ak é v eľ k é p o l e b u deme

p o t r eb o vať . Ú lo ha m ôž e b yť z ad an á t ak to : Da n é j e p r i r odz en é č í s l o N

a N - pr vko vá po s t up n os ť r eá ln y ch č í se l . . . . H od no t a N sa n ač í t a až po

z ah á j en í p ro gr amu , a l e p o l e mu s í b yť d ek l a r ov an é s kô r . A k b y s me

p o l e d ek l a ro v a l i t ak to : var A:array[1..N]of real ; p o č í t a č b y n ám

p r i p r em enn e j N vyh l á s i l ch yb u : „C an n o t ev a lu a t e t h i s ex p r es s io n “ .

( N emôž em v yh o d no t i ť t en t o v ýr az - n epoz n ám j eh o h odn o t u . ) R ozs ah

i nd ex o v m us í b yť v d ek l a r ác i i u rčen ý k o nš t an to u .

Ri eš im e t o t ak , ž e o dh adn em e m ax im ál nu ho dn o tu N a d ĺ ž ku

p oľ a u r č ím e p odľ a t oh to o dh adu . N ap r . : D an ý j e po če t ž ia ko v v t r i ede

N a N - pr vko vá p os tu pn os ť r eá ln ych č í s e l , p r ed s t avu jú ca i ch

p r i em er n é z ná m ky . . . O dh ad n em e , ž e v t r i ed e n eb ud e v i ac ak o 40

ž i ako v a po l e z ad ek l a r u j em e n a s l ed ovn e :

var A:array[1..40]of real

A l eb o j e h o rn á h ran i ca v s t up n ých h o d nô t u r čen á p r i am o v z ad an í :

D a n é j e pr i r odz en é č í s l o N (N <=1 0 0 ) a N - pr vko vá p os tu pn os ť

r eá l nych č í s e l . . . . Dek l a r ác i a t eda b ud e :

var A:array[1..100]of real .

A k b y s m e to s d ĺ žk o u poľ a p r eh n a l i , n ap r . :

var A:array[1..20000]of real ;

Page 50: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 49

p o č í t a č v yh l á s i chyb u : „S t r u c tu r e t oo l a r ge“ . (P r í l i š ve ľ ká d á t ová

š t ru k tú r a - n ezm es t í s a d o v yh r ad en e j č a s t i p am ät e . )

Pr í k l ady :

1 . D an ý j e p o če t z am es tn ancov N ( N <=1 00 ) a N - p r vk ov á

p os tu pn osť p r i rodz en ých č í s e l , p r eds t avu jú c i ch p l a t y

z am es tn ancov . Zi s t i t e i ch p r i em ern ý p l a t a p o če t z am es t nan cov ,

k to r í m aj ú po dp r i em ern ý p l a t .

2 . D an ý j e p o če t dn í v m es i ac i N a N - pr v ko v á p os tu pn osť ce l ých

č í se l p r ed s t avu j ú ca t ep lo t y n am er ané v j ed no t l i v ých d ň och o

1 2 ,0 0 ho d . N á jd i t e h od no tu n a j n i ž še j t ep lo t y v d an om ob d ob í a

v yp í š t e č í s l a dn í , v k t o r ých b o l a n am er an á ( môž e i ch b yť v i ac ) .

3 . D an á j e v e t a - po s tu p nos ť zn ako v - v j edn om r i adk u . Z i s t i t e , č i

j e t o p a l i nd r óm ( p o v yn ech an í medz ie r a i n t e r pu nk čn ých

zn ami en ok , s i gnor o v an í m r ozd i e l u m edz i m al ým i a veľ k ým i

p í s men ami , j e s ym e t r i ck á , t . zn . od pr edu i odz ad u zn i e ro vn ako ) .

N ap r . "Ko b yl a m a m al y b o k . " j e pa l ind r óm .

4 . D an ý j e p o če t d e t í N ( N <=50 ) a p os t up no sť N r eá l n ych č í s e l

p r eds t avu jú c i ch ús po r y j ed n o t l i v ýc h d e t í . P r o gr am n ač í t a

v s t up n é d á t a a r e a l i zu j e n as l ed o vn ú p on uk u s luž i eb :

a ) v ýp i s s t av u úsp or v t v a r e :

1. dieťa: 12,50 Sk

2. dieťa: 8,10 Sk

...

N. dieťa: 222,00 Sk

--------------------

Spolu: xxx,xx Sk

b ) zv ýš i ť k ažd ém u d i eť ať u ho dn o tu ú sp o r o K k or ún (K j e d an é )

c ) us ku to čn i ť zb i e r k u p o K k o rú n ( K j e d an é) : k ažd é d i eť a dá

d o zb i e r k y K k o r ún , ak m á m en e j , t ak d á vš e tk o , čo m á . V yp í š e

s a h od no t a v yz b i e ran e j s um y.

Page 51: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 50

d ) zú r o č i ť ú sp o r y - pr ip o č í t ať kaž dém u d i eť ať u k j eho sum e

ú r ok y, k to r ých p e r cen to j e u r čen é t ab uľ ko u :

suma do 10,- Sk: 1%

suma do 50,- Sk: 2%

suma nad 50,-Sk: 3%

e ) z aev i do v ať n ov é d i eť a (n ač í t a s a j eh o s um a , k to rú vk lad á do

b ank y a z a r ad í s a na ko n i ec po ľ a)

f ) v yl ú č i ť I - t e d i eťa z ev i d en c ie ( I j e d an é )

g) z aev id ov ať p ro t ek čn é d i eť a ( n ač í t a s a j eh o s um a, k to rú

v k l ad á do b an k y a z a rad í s a n a z ač i a to k p oľ a)

1 .30. Deklarácia konštánt

K o nš t an t a j e ko nk r é t n a ho dn o t a u r č i t ého t yp u , k t o r á s a m ôže

v ys k yt o v ať v p r ogr am e n a r ôzn ych mi e s t ach . N ap r . c e lo č í s e l ná

k o nš t an t a 2 0 s a môž e v ys k yt o v ať v d ek l a r ác i i poľ a , v p r i r aď ov acom

p r ík az e , v p od mi enk e a po d . :

var A:array[1..20]of integer;

begin

...

I:=I+20;

...

if N>20 then writeln('POZOR!' );

...

end.

P od ob n e zn ak ' . ' ako ko nš t an t a t yp u cha r :

begin

...

repeat

read(znak);

if znak<>'.' then ...;

until znak='.';

...

end.

Page 52: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 51

A k s a r ozh od n em n ap r . v p r ve j u k ážk e z v äčš i ť r oz s ah p oľ a na 100 ,

m us ím o p rav i ť v p ro gr am e v š e tk y k o n š t an t y s h o dn o t ou 2 0 , sú v i s i a ce

s r oz s ah om poľ a , n a 10 0 . V roz s i ah l e j šo m p ro gr am e to môž e b yť

p r ob lém. P r e t o j e v ýh o d n e j š i e t ú to k o nš t an tu po m eno v ať , n apr .

R O ZSA H a v p r o gr am e po už ív ať l en t en t o ind en t i f i k á t o r .

S am oz r e jm e , s kô r n ež h o p ouž i j em e , m us ím e ho z ad ek l a r o v ať : con s t

R O ZSA H =2 0 . D ek la r ác iu u mi es tn i m e d o d ek l a račn e j č as t i p ro gr amu,

zv yča j n e p r ed dek l a r ác i u p r emenn ýc h , a l e n i e j e t o p o dmi en ko u .

P od ob n e s i môž em e z adek l a ro v ať k o nš t an tu t yp u ch a r : con s t

K O NC O V Y_ ZN A K= ' . ' . N aš e uk áž k y p r o gr am ov bu dú po to m v yz e r ať

t ak to :

const ROZSAH=20;

var A:array[1..ROZSAH]of integer;

begin

...

I:=I+ROZSAH;

...

if N>ROZSAH then writeln('POZOR!');

...

end.

P od ob n e zn ak ' . ' ako ko nš t an t a t yp u cha r :

const KONCOVY_ZNAK='.'

begin

...

repeat

read(znak);

if znak<>KONCOVY_ZNAK then ...;

until znak=KONCOVY_ZNAK;

...

end.

A k sa t e r az roz hod n em e zv äčš i ť roz s ah p oľ a n a 10 0 , zm enu s t a č í

u r ob i ť l en n a j ed no m mi es t e p r o gr amu , v d ek l a rác i i ko nš t an t y: co ns t

R O ZSA H =1 0 0 .

S yn ta x d ek l a rá c ie k onš ta nt y :

const <identifikátor>=<konštanta>

Page 53: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 52

T ak t o d ek l a r u j em e k o nš t an t y j ed n od u ch ých t yp o v ( i n t ege r , r e a l , ch ar ,

b o o l ean , . . . ) .

N i ek to r é ko nš t an t y s ú sú ča sťo u P as ca l u , n em us í m e i ch d ek l a r ovať ,

m ôž em e i ch l en použ ív ať . J ed no u z n i ch j e ko nš t an t a P I ( Lu d o l fovo

č í s lo 3 ,1 4 . . . ) .

1 .31. Deklarácia typu

A k p ouž ív am e v p ro gr am e š t ru k t u ro van ý t yp ( z a t i aľ poz nám e l en t yp

p o l e ) , z v yk n em e h o po m en ov ať a v p ro gr am e p r i dek l a r ác i i

p r em enn ých p ouž í vať l en j eh o id en t i f i k á to r .

S yn ta x d ek l a rá c ie t yp u :

t yp e < id en t i f i k á t o r>=<d e f i n í c i a t yp u >

N ap r í k l ad :

type TPOLE=array[1..100]of real

Takýto typ môžeme použiť pri deklarácii

premennej typu pole:

var A:TPOLE

Je to to isté ako keby sme priamo

deklarovali:

var A:array[1..100]of real

V ýh o d o u d ek l a r ov an i a t yp u j e , ž e ho z ad ek l a ru j em e l en r az a môž me

h o po už i ť n a r ôzn ych mi e s t ach p ro gr am u p r i d ek l a r ác i i p r em en n ých -

g l o b á ln ych i l ok á ln ych . K eď sa n e sk ô r n au č ím e po už í vať

p o dp ro gr am y s p a r am e t r ami , d ek l a r ác i a t yp o v bud e d ok on ca

n ev yh n u t n á .

D op o ru čen i e :

T ak ako n ázv y p r e m enn ých v o l ím e p od ľ a t oh o , čo ob s ahu j ú , a j n áz v y

t yp o v b y m a l i ko re š po nd ov ať s p r emen n ým i , p r i dek l a rác i i k t o r ých

b u dú p ouž i t é . Zv yč a j n e s a n ázov t yp u z ač ín a p í sm eno m T . N ap r í k l ad ,

v p r o gr am e z ad ek l a r u j em e p r emenn ú typ u p o l e , v k to r e j b u dú u l ož ené

p o č t y b o do v , k to r é z í sk a l ž i ak v p í s omk e z a j edn o t l i v e o t ázk y:

Page 54: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 53

co ns t P OC ET _ OT AZO K =2 0;

t yp e T BO D Y =ar r ay[ 1 . .P OC E T_ OT A ZO K] o f i n t ege r ;

v a r BOD Y: T BO DY

Ú l oha na p r em ýš ľan i e :

A k m ám e v p ro gr am e dv e p r em en né r o vn ak éh o t yp u ( n ap r . A , B) ,

m ôž em e p r i r ad i ť ob s ah j edn e j p rem enn e j do d ru he j ( n ap r . A: =B) . T yp

p r em enn ých m ôže byť ľ ub ov oľ n ý ( a j po l e ) . N apr . :

v a r A , B: a r r ay[ 1 . .1 00] o f r e a l ;

b eg i n A : =B en d .

A k p ouž i j em e i n ý s pô so b d ek l a r ác i e p r em enn ých , môž e n ám po č í t ač

p r i p r ík az e A :=B h l á s i ť ch yb u "T yp e m ism at ch " (N ez hod a t yp o v ) . V

k to r e j z t ých t o u k ážo k k tom u d ô jd e a p r ečo?

a ) v a r A: a r r a y[ 1 . . 10 0] o f r e a l ;

B : a r ra y[ 1 . . 10 0] o f r e a l ;

b eg in A: =B end .

b ) t yp e p o l e=a r r ay[ 1 . .1 00] o f r e a l ;

v a r A: po le ;

B : po l e ;

b eg in A: =B end .

c ) t yp e p o l e=a r r a y[ 1 . .1 00] o f r e a l ;

v a r A , B :p o l e ;

b eg in A: =B end .

d ) t yp e p o l e=a r r ay[ 1 . .1 00] o f r e a l ;

v a r A: po le ;

B : a r ra y[ 1 . . 10 0] o f r e a l ;

b eg in A: =B end .

1 .32. Vym enovaný typ

N i ek ed y p o t r ebu j em e p r acov ať v p rogr am e s i n ým i h o dn o t am i n ež sú

č í s l a , zn ak y, l o g i ck é h od no t y a p o d . S kr á tk a , ž i aden z o š t an da r dn ý ch

Page 55: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 54

t yp o v sa n ám n eho d í . M ôžem e s i vy t v o r i ť v l as t n ý t yp s v l a s tn ou

m nož i no u ho dn ô t . K ažd ú h od no tu označ ím e n e j ak ým i d en t i f i k á to r om

a v ym en u j em e i ch v dek l a r ác i i t yp u .

S yn ta x d ek l a rá c ie v y meno van éh o t ypu :

type <identifikátor typu>=(<zoznam identifikátorov hodnôt

oddelených čiarkami>)

N ap r í k l ad p o t r ebu j em e v p ro gr am e p r aco v ať s h od no t ami

p r eds t avu jú c i mi d n i v t ýž d n i . Ozn ač ím e i ch P O N DE LO K , UT OR O K,

S TR ED A, S TV RTO K , P IA T O K , S OBO T A a NE D E LA . T yp s t ou to

m nož i no u h od nô t nazv em e T D EN a z ad ek l a ru j em e ho :

type TDEN=(PONDELOK, UTOROK, STREDA, STVRTOK, PIATOK,

SOBOTA, NEDELA);

var DEN:TDEN

Zár o v eň sm e z adek l a r ov a l i p r em enn ú DE N , do k t o r e j m ôž eme

p r i r aď ov ať h od no ty z o s ed emp rv ko ve j mn ož i n y h o d n ô t t yp u T D E N,

n ap r . DEN:=STREDA .

K ažd á ho dn o t a v m nož i n e m á p r i de l en ý k ó d ( ce l é č í s lo ) p očnú c od

n u l y. N ap r . kó d h o dn o t y S T RE D A j e 2 . P r e ho dn o t y t o h to t yp u

m ôž em e p ouž í v ať f u nk c ie OR D , SU C C , PRE D , t ak ak o s m e i ch

p o už ív a l i p re t yp ch a r . Ho dn o t y v ym en o v an éh o t yp u n e môž em e

n ač í t ať an i v yp í s ať : r e ad l n ( D EN ) ; w r i t e l n (D E N ) P ouž í v am e i ch k vô l i

l epš e j č i t a t eľ no s t i p r o gr am u.

1 .33. Typ interval

M nož in a ho dn ô t t oh to t yp u j e p od množ in ou in ého o rd i ná l n eh o t yp u

( ch a r , b oo l ean , c e lo č í s e l n ý a v ym en o v an ý t yp ) a j e u r čen á d o ln ou a

h o rn ou h r an i co u .

S yn ta x d ek l a rá c ie t yp u in t erva l :

type <identifikátor typu>=<dolná hranica>..<horná hranica>

P r í k l ad y d ek l a rác i í i n t e r v a lo v a i ch po už i t i e p r i d ek l a r ác i i

p r em enn ých :

Page 56: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 55

type TDEN=(PONDELOK, UTOROK, STREDA, STVRTOK, PIATOK,

SOBOTA, NEDELA);

TZNAMKY=1..5;

TABECEDA='a'..'z';

TPRAC_DNI=PONDELOK..PIATOK;

var Z:TZNAMKY;

ZNAK:TABECEDA;

DEN:TPRAC_DNI

T yp T ZN A M K Y je p odm nož in ou t yp u IN T E G ER . S p r em enn ou Z

p r acu j em e ako s p r em en no u t yp u IN T E GE R, a l e p r i r aď ov ať d o n e j

m ôž em e l en ho dn o ty o d 1 d o 5 . P o do bn e T A BEC ED A j e p o dmn ož in ou

t yp u CH AR a TPRA C_ D N I j e p od mn ož i no u t yp u T DE N .

In t e r v a l s a po už ív a h l avn e p r i d ek l a rác i i p oľ a :

const MAX=100;

type TINDEX=1..MAX;

TPOLE=array[TINDEX] of integer;

var A:TPOLE

Pr í k l ad :

1 . N ap ro gr amu j t e obeh h v i ezd i čk y o k o lo o b raz ov k y v s m er e

h o d in ov ých r u č i č i ek , p ok i aľ už ív a t eľ n e s t l a č í ľ ubo v oľnú

k l áv es u . (P r acu j t e s r i adk am i 1 . . 25 a s t ĺ p cam i 1 . . 79 , po s l edn ý

s t ĺ p ec i gn or u j t e . )

R i eš en i e :

V c yk l e bu dem e op ako v an e v yp i s ov ať a z o t i e r ať h v i ezd i čku , p r i čom

j e j s ú r ad n i ce s a b u dú po k až dom k r ok u men iť . A k tu á ln u poz í c iu

h v i ez d i čk y s i b ud em e p am ät ať v p r em enn ých X , Y , p red s t av u j ú c i ch

s ú r ad n i ce hv iez d ičk y. H r ub á s ch ém a p r o gr am u bud e v yz e r ať

n as l ed o vn e :

repeat

<vypíš hviezdičku>;

<počkaj>;

<zotri hviezdičku>;

<zmeň súradnice>

until keypressed

Page 57: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 56

A k o s a bu dú m en iť sú r adn i ce? R az sa b u d e m en iť x - ová , r az y - o v á

s ú r ad n i ca - r az s a b u de z v äčš ov ať o 1 a r az zm enš ov ať , p o dľ a t oho ,

ak ý m á h v i ezd i čk a p r áv e s mer ( v ých o d , j u h , z áp ad , s eve r ) . Ab y s me

v ed e l i , k to r ú s ú r adn i cu t r eb a zm en iť a ak o , b ud em e s i e š t e p am ät ať

ak tu á l n y s m er v p rem enn e j t yp u TSME R:

type TSMER = (VYCHOD,JUH,ZAPAD,SEVER);

var S:TSMER;

X,Y:integer;

P ro gr am bu d e v yz e r ať n as l edo vn e - dop lň t e ch ýb a j ú ce ča s t i :

begin

{inicializácia premenných - doplňte ďalšie}

X:=1; Y:=1;

repeat

{vypíšeme hviezdičku na pozíciu [X,Y] - doplňte

príkazy}

delay(50);

{zotrieme hviezdičku}

gotoxy(X,Y);

write(' ');

{zmeníme súradnice}

if S=VYCHOD then if X<79 then X:=X+1 el se S:=JUH;

if S=JUH then {doplňte}

until keypressed

end.

Page 58: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 57

1 .34. Typ reťazec

R eť az ec j e po s t upn os ť z n ak ov , k t o rú z ap i s u j em e m edz i ap os t r o f y.

P o če t z nako v u r ču je d ĺ ž ku r e ťaz ca .

N ap r . : ' FE RO ' j e r e ť az ec d ĺ žk y 4

' PD 12 3A B' j e r eť az ec d ĺ žk y 8 ( po č í t a s a a j m edze r a )

' @' j e r eť az ec d ĺ žky 1

' ' j e r e ť azec d ĺ žk y 0 - p r ázdn y r e ť az ec

D ekl ará c i a p remenn e j t ypu reťa zec :

var <premenná>:string[<maximálna dĺžka reťazca>]

M ax im á ln a d ĺ ž k a re ť az ca u r ču j e , ak ý n a j d l hš í r eť az ec m ôž e b yť v

p r em enn e j u l ož en ý. J e t o c e l é č í s lo z i n t e rv a l u <0 ,2 55> . T á t o časť

d ek l a r ác i e j e n epov in n á , ak ju v yn ech áme , po č í t a č j u au t om at i ck y

d o p ln í na 2 5 5 :

var <premenná>:string

N ap r . :

var R:string[10];

S:string[2];

T:string;

Op erá c i e s r eťa zca mi :

a . p ri rad en i e

R:='ABCD';

S:=R {ak sa priraďovaný reťazec nezmestí do

premennej, skracuje sa sprava}

b . p o ro vnan ie po moco u o p e rá to r ov < > = < > < = > =

D v a re ť azce s a p o ro vn áv a jú po dľa p rv ých zn ako v , n ap r . :

'A BD F '< ' B BC ' , p r e t ož e 'A '< 'B ' .

c . A k s ú p rv é zn ak y z h o dn é , po ro vn áv a sa p odľ a n a jb l i ž š e j d v o j i ce

zn ako v , k to r é s ú r ôzn e , n apr . : 'A BC DE '< 'A BC E ' , p r e t ože

'D '< 'E ' .

d . A k j e j ed en z r eť az co v k ra t š í a ch ýb a m u ď a l š í zn ak na

p o ro vn an i e , po v ažu j e s a ž i adn y z n ak z a m enš í n ež ľu bo v oľn ý

Page 59: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 58

i n ý z n ak , n apr . : 'A BC '< 'A BC D ' , p r e t ož e ľ av ý r e ť az ec n emá

š tv r t ý z n ak .

e . zreť a zen i e p om o cou o pe r á t o r a + . Zr eť az en i e j e s po jen i e d v och

r e ť az co v do j edn éh o . N ap r . : 'S K ODA ' + 'FA B IA ' = ' S K OD A

FA B IA '

f . n a č í tan ie - r e ť az ce m ôž em e n ač í t av ať p om ocou p r í k azov r ead ,

r ead ln , a l e z a t i aľ bu d em e p ouž í v ať l en read ln .

g . v ýp i s - r eť az ce m ôž em e v yp i so v ať n a ob r azo vk u po mo cou

p r ík azo v w ri t e , w r i t e ln .

Pr í k l ady :

var R,S,T:string[6];

begin R:='MYŠ';

S:='LIENKA';

if S<R

then T:=R+S

else T:=S+R;

writeln(T)

end.

Č o v yp í še t en to p ro g ra m na ob ra zo vku ?

1 . D an é j e p r i r odz ené č í s l o N a N -p rv k ov á po s t up nos ť m i en .

N ač í t a j t e v s tu pn é ú d a j e a v yp í š t e n a o b r azo vk u m en á , k to r é sa

z ač ín a jú n a 'A ' .

2 . D an ý j e r eť az ec Z p r eds t avu jú c i s lo vný z ák l ad , p r i ro dz ené č í s lo

N a N- p rv ko v á po s t up no sť r e ťaz cov , p r eds t avu jú c i ch p red po n y.

V yp í š t e v š e tk y m o žn é s l ov á , k to r é vzn i kn ú z p r edp ôn a z ák l ad u .

D o pl no k : Napo č í t a j t e a j p r i ro dz ené č í s lo M a M -p r vk ovú

p os tu pn osť r eť az co v - pr íp on . V yp í š t e vš e t k y m o ž né s lo v á ,

k to r é vz n ik n ú z o zák l ad u , p r edp ôn a p r íp on .N ap r . : 3 p r ed p on y:

'O ' , 'ZÁ ' , 'V Ý ' , 2 p r í po n y: 'A ' , 'N ÍK ' , z ák l ad : 'H RA D ' vzn i kn u t é

s lo v á : 'O HR A D A ' , 'ZÁ H R A D A ' , 'V Ý H RA D A ' , 'O HR AD N ÍK ' ,

'ZÁ H R A D N ÍK ' , 'V Ý H RA D N ÍK '

Page 60: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 59

3 . D an é j e p r i ro dz ené č í s lo N . Ulož t e d o p rem en ne j S : s t r i n g

r e ť az ec z l ožen ý z N v ýk r i čn ík ov .

4 . D an ý j e r eť az ec p red s t av u j ú c i č í s lo v s em i l o ga r i t mi ck om t v a re ,

k to r éh o f o rm át j e < ce l é č í s l o> E<p ri r . č í s lo > (n ap r . : -1 2 3E 5) .

P ro gr am v yp í š e t o to č í s lo v b ež nom t va r e (n ap r . : -1 23 00 00 0 ) .

1 .35. Vyhľadávanie

P r i p r ác i s d á to vým i š t r uk t ú rami sa č a s to s t r e t n em e s p o t r ebou

v yh ľ ad ať j ed en a l ebo v i ac p rv kov d an e j v l as tn os t i . N ap r . z

p os tu pn os t i ž i ak ov ch cem e v yp í s ať vš e t k ých v yz n am en an ých , v

p os tu pn os t i ev i d enčn ých z ázn am ov ch ceme n á j s ť z ázn am o os ob e s

m enom 'C yr i l ' , v ro d okm eni k r áľ ovs kéh o r od u ch cem e ná j sť vš e tk ých

s ú ro d en cov Ľ ud ov í t a X IV . , v p o l i c a jno m r eg i s t r i ch cem e n á j sť os ob u

s o t l a čk ami p r s t ov zh od n ým i s o t l a čk ami z m ie s t a č i nu , v s l ov n í ku

ch cem e n á j sť p r ek lad s lo v a .

A l go r i t mu s , k t o r ý p o už i j em e p r i v yh ľ adáv an í z áv i s í h l av n e od t yp u

d á to v e j š t ru k t ú r u , v k to r e j m ám u r čený p r v o k v yh ľ ad ať .

P r i v yh ľ ad áv an í p r v ko v s d an ou v l a s tn osť ou v l i n eá r n e j dá to ve j

š t ru k tú r e ( po s t up nos t i ) môž em p ouž i ť t i e to z ák l adn é a l go r i t m y:

1 . l in eá rn y v ýb er - po s t up n e s ko n t ro lu j em vš e t k y p r v k y o d p r v éh o

p o p os l edn ý, s ko nč í m p r i po s l ed no m p r vk u , a l eb o a j skô r , k eď

n á jd em p r vo k s požad ov ano u v l as tn osťo u :

<nastav sa na prvý prvok>;

while <nie si na konci postupnosti>and<nie je to

hľadaný prvok>

do <posuň sa na ďalší prvok>

K oľ ko z ák l ad n ých o p e r ác i í (p o ro vnan í ) mu s ím e p r i t omto

p os tu p e v yk o n ať v n a j ho r šom p r íp ad e ( t . z n . k eď m us í m e p r e j s ť

c e l ú po s t up nos ť )? S kú s t e t en t o p os t up n ap ro gr amo v ať po mo cou

c yk l u r ep ea t .

Page 61: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 60

2 . bi ná rn y v ýb er - p r i t o mto po s t up e v yuž i j em e , ž e p os t upn os ť j e

u sp o r i ad an á vzo s tu p ne (o d n a jm enš i eho p o n a jv äč š í ) p o dľa

d an e j v l as t no s t i . V žd y s i v yb e r i eme n a j sk ô r s t r ed n ý p r vo k z

ú s ek u , v k t o r om h ľ a d ám e . Z i s t ím e , č i t o n i e j e t en , k to r ý

h ľ ad ám e . Ak n i e j e a n á š h ľ ad an ý p r v o k j e od s t r ed n éh o m enš í ,

v yb e r i em e s i z p oľa l en j eh o ľ avú p o lo v i cu ( t . j . p r vk y v ľav o od

s t redn ého ) a o p ak u j em e r o vn ak ý p os tu p , k ým n ená j d eme

h ľ ad an ý p r v o k . A k bo l n á š p r vo k v äčš í od s t r ed n ého

p os tu pu jem e ď a l e j v p r av e j po lo v i c i . A k s a hľ ad an ý p r v ok v

p os tu pn os t i v ôb ec n en ach ádza , b ud e sa ú s ek , v k to r om hľ adáme

s t á l e zm en šo v ať n a p o lo v i cu , až zo s t an e p r ázd n y ( n u l ov e j

d ĺ žk y) :

<úsek, v ktorom hľadám je najskôr celá postupnosť>;

repeat

<vyber stredný prvok úseku>;

if <hľadaný prvok> < <stredný prvok>

then <vezmi ľavý úsek>

else if <hľadaný prvok> > <stredný prvok>

then <vezmi pravý úsek>

until (<hľadaný prvok>=<stredný prvok>) or <zostal

prázdny úsek>

K oľ ko p o ro vn an í mu s í me v yk o n ať v na j ho r šom p r í p ad e?

Pr í k l ad :

D an é j e p r i ro dzené č í s lo N a N - p rv k ov á p os tu pn osť ce l ých č í se l

u sp o r i ad an á vz os t up n e . Z i s t i t e poz í c iu d ane j h od n o t y H v

p os tu pn os t i , p r í p . v yp í š t e ozn am, ž e ho dn o t a s a v p os t up no s t i

n en ach ádza . Po už i t e l i n eá rn y a j b i ná r n y v ýb e r a p r e o b a p os t u p y

v yp í š t e , ko ľk o po ro v nan í s a mu s e lo vyk o n ať p r i v yh ľ ad áv an í .

<načítaj N>;

<načítaj usporiadanú postupnosť>;

<načítaj hodnotu H>;

<vyhľadaj pozíciu hodnoty H v postupnosti lineárne>;

writeln(H,'sa nachádza na ',I,' pozícii. ');

Page 62: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 61

writeln('Pri lineárnom postupe som vykonal ',POCL,'

porovnaní.');

<vyhľadaj pozíciu hodnoty H v postupnosti binárne>;

writeln(H,'sa nachádza na ',J,' pozícii.');

writeln('Pri binárnom postupe som vykonal ',POCB,'

porovnaní.');

R ozš í r t e p r o gr am t ak , ž e s a n ebu d e z ad áv ať j ed n a ho d no t a H na

v yh ľ ad an i e , a l e v i ac z a s eb ou , p r i čo m p os l ed n á bu de n u l a .

1 .36. Textový súbor

Súb o r j e p os t up no sť dá t u l ož en á na d i s ku p od v l as tn ým m enom,

n ap r . : l i s t . t x t . Ú p lné m eno sú bo r u o bsah u j e a j n ázo v d i s ku , na k t o rom

j e u l ož en ý, a j s ad re s á r ov ou ce s t ou , nap r . :

c : \ do ku men t y \ po s ta \ l i s t . t x t .

T ext ov ý súb o r o bs ahu j e d á t a vo f o r m e t ex tu , t . zn . zn ak y,

u sp o r i ad an é v r i adk o ch r ôzn e j d ĺ žk y. V eľk osť sú bo ru j e t i ež rôz n a ,

z áv i s í o d p o č tu z nak ov , k t o ré

o bs ahu j e . T ex to vý s ú b o r s i

m ôž em e p r eds t a v i ť ako l i s t

p ap i e r a , k t o r ý j e o h r an i čen ý

l en z ľ av a a zh o ra . M ôž em e n aň

p í s ať r i ad k y ľ u bov oľ n e j d ĺ žk y, p o če t r i ad ko v j e t i ež ľ u bo voľ n ý,

o bm edzen ý l en k apac i t ou d i s ku .

T ak ýt o t ex to v ý s ú bo r s i m ôž em e p reze r ať a ed i to v ať v ne j akom

t ex to vo m ed i to r e , n ap r . Po zn ám kový b l o k (No tep ad ) , Wi n dows

C om m an d er a l ebo V o l kov C o mm an der ( s lu žb a F3 V i ew , F 4 Ed i t ) ,

t e x t o vý ed i to r v n e ja kom pr og ra mova co m ja z yku (n ap r . B or l an d

P a sca l ) , . .

N a k on c i k až d éh o r i adk u j e v sú bo re n ev i d i t eľ n ý z n ak k o n ca

r i ad ku . M ôž em e h o zn áz o rn i ť ak o . Tex t ov ý ed i t o r n ám ho

Milý Jožko!

Úvodom môjho listu Ťa čo najsrdečnejšie

pozdravujem.

Máš niečo nové?

Ja mám veľkú novinku, konečne som

sa naučil programovať.

Page 63: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 62

n ez ob r azu j e , a l e v s úb o r e j e z ap í s an ý ak o dv a zn ak y ( # 1 3 # 10 ) , k t o ré

oz n aču j ú ko n i ec r i ad ku . N a ko n c i c e l ého s úb or u j e t i ež n ev i d i t e ľn ý

zn ak ko n ca sú bo ru ( # 26 ) .

S t ex to v ým s ú bo rom m ôž em e p r acov ať a j v p r o gr am e . Výs l ed k y

p r o gr am u (v ýs t up ) n emu s ím e v yp i so v ať l en n a ob razo vk u , a l e

m ôž em e i ch z ap í s ať d o sú bo r u , k d e zo s t anú t rv a lo u chov an é . P od ob ne

v s t up p r o gr am u n em us ím e r ea l i zo vať l en z k l áv es n i ce , a l e v s tu pné

d á t a m ôžem e n ač í t ať z t ex to v éh o sú b or u . V yu ž i j em e t o n ap r í k l ad

v t ed y, k eď j e v s tu p n ých d á t v äč š i e m nož s tv o . P r i l ad en í p r o gram

s pú šť am e n i ekoľ kok r á t z a s eb ou a j e d os ť p r acn é o pakov an e z ad áv ať

m nož s tv o vs tu pn ýc h dá t .

A k chcem e v p r o gram e p r acov ať s t ex t ov ým s úb o ro m, m us ím e s i

z ad ek l a ro v ať p remen nú , k t o rá h o bu de r ep r ez en to v ať .

D ek l ará c i a p remenn e j t ypu t ex t o vý s úbo r :

var <premenná>:text napr.: var T:text

Pr í ka zy p re p rá cu s t ex t ov ý m súbo ro m:

Assign(<premenná typu textový súbor>,<meno súboru>)

napr.: assign(T, 'c: \dokumenty\posta\list.txt')

- t ým t o p r í kaz om p r i de l ím e p r em en n e j t yp u t ex to v ý s ú bo r

k o nk r é t n y s ú b o r z d i s ku . Meno s úb o ru j e r eť az ec . Ten to s úb or

b u de p r em enn á r ep r ezen t ov ať v o vš e tk ých o s t a t n ých p r ík az o ch .

Rewrite(<premenná typu textový súbor>) napr.: Rewrite(T)

- o tv or en i e s úb o ru p r e z áp i s . T en to p r í k az v y t v o r í n ov ý p r ázd n y

s úb o r n a d i sk u , do k t o r éh o m ôžem e n ás l edn e z ap i s ovať . Ak

d an ý s ú b o r p r ed t ým ex i s t ov a l , j eh o ob s ah s a zm aže .

Append(<premenná typu textový súbor>) napr.: Append(T)

- o t vo r en i e sú bo ru p r e z áp i s . T en to p r ík az môž em e p ouž i ť l en

p r e ex i s tu j ú c i sú b or , d o k to r éh o m ôž em e n ás l edn e z ap i sov ať na

k o n i ec . A k d an ý s ú b or p r ed t ým n eex i s to v a l , ob j av í s a ch yb o v é

h l ás en i e .

Reset(<premenná typu textový súbor>) napr.: Reset(T)

- o tv or en i e sú bo ru p r e č í t an i e . T en t o p r ík az m ôž em e p ouž i ť l en

p r e ex i s t u j ú c i s úb or , z k to r éh o m ôžeme n ás l ed n e č í t ať . Ak d an ý

s úb o r p red t ým n eex i s to v a l , ob j av í s a ch yb o v é h l ás en i e .

Page 64: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 63

write/writeln(<premenná typu textový súbor>,<zoznam

zapisovaných údajov>)

napr.: write(T,'Pocet deti je ', CH+D,'.')

- z áp i s úd a j ov d o t ex to v éh o sú bo ru . Úd a j e m ôžu b yť t yp u z nak ,

r e ť az ec , č í s lo a od d eľ u j em e i ch č i a r k am i . P r ík az y p o už ív am e

r o vn ako ak o p r i v ýp i s e n a ob r azo vk u s t ým r oz d i e l om , že p r v ý

p a r am e te r p r í k azu j e p r em en n á t yp u t ex to v ý s ú b o r .

read/readln(<premenná typu textový súbor>,<zoznam

premenných>)

napr.: readln(T,A,B,C)

- č í t an i e ú d a jo v z t ex to v éh o s úb o ru . P r em en n é m ôžu b yť t yp u

zn ak , r e ťaz ec , č í s lo a o dd eľ u j em e i ch č i a r k ami . P r í kaz y

p o už ív am e r ov n ak o ak o p r i č í t an í z k l áv esn i ce s t ým r o zd i e lo m,

ž e p rv ý p a r am e t e r p r ík azu j e p r em en ná t yp u t ex t o v ý s ú bo r .

close(<premenná typu textový súbor> napr.: close(T)

- z a t vo r en i e t ex tov ého s úb o ru . N a k o nc i p ráce s o súb o ro m,

m us ím e s úb or z a tvo r i ť . A k d o s úb or u z ap i s u j em e a z abu d neme

h o n a k on c i p r o gram u z a t vo r i ť , p r avd epo do bn e v s úb o re bu dú

ch ýb ať pos l e d n é úd a j e , k t o r é s m e doň z ap i s ov a l i . J e t o z t oho

d ô vo du , ž e p r ík az w ri t e / wr i t e ln n ez ap i su j e d á t a do s úb o ru

o k amž i t e , d á t a s a d o sú bo r u p r en áš a jú p o v äčš í ch b l ok o ch .

P r í k azom c lo s e s a p r en es i e n a d i sk a j p os l ed n ý b l ok d á t .

Fu nk ci e p re p rá cu s t ex t ov ý m súb o ro m:

eoln(<premenná typu textový súbor>) napr.: eoln(T)

- l o g i ck á f un ck i a . V r á t i TR U E/ FA LSE , ak sm ern ík p r e č í t an i e

j e / n i e j e n a ko n c i ak tu á l n eh o r i adk u sú b or u .

eof(<premenná typu textový súbor>) napr.: eof(T)

- l o g i ck á f un ck i a . V r á t i TR U E/ FA LSE , ak sm ern ík p r e č í t an i e

j e / n i e j e n a ko n c i sú b or u .

O BE FU NK C IE SA PO U ŽÍV A J Ú LE N PR I Č ÍT A N Í.

Pr í k l ad :

D an ý j e po če t p r vko v N a N - p rv ko v á p os tu pn osť p r i ro dzen ých č í s e l .

Z i s t i t e a v yp í š t e p oče t v ýs k yt o v j ed no t l i v ých č í s e l v p os tu p nos t i .

Page 65: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 64

N as l edu jú ce d va pr og r a m y r i eš i a d an ú ú lo hu , p r i čo m p r vý r ea l i zu j e

v s tu p z k l áve sn ice a v ý s t up n a ob ra zovku , d r uh ý pr og ram č í ta v s t up né

d á t a zo s úb or u DAT A. IN a výs l ed ky za p i su j e d o sú bo ru D AT A .O UT .

t y p e T P O L E = a r r a y [ 1 . . 1 0 0 ] o f i n t e g e r ;

v a r A : T P O L E ;

N , P O C E T , I , J : i n t e g e r ;

b e g i n

w r i t e ( ' Z a d a j p o c e t p r v k o v : ' ) ;

r e a d l n ( N ) ;

w r i t e l n ( ' Z a d a j h o d n o t y p r v k o v : ' ) ;

f o r I : = 1 t o N

d o r e a d ( A [ I ] ) ;

f o r I : = 1 t o N

d o i f A [ I ] > 0

t h e n b e g i n

P O C E T : = 0 ;

f o r J : = I t o N

d o i f . . . . .

t h e n P O C E T : = P O C E T + 1 ;

w r i t e l n ( A [ I ] , ' s a

v y s k y t u j e ' , P O C E T , ' - k r a t . ' ) ;

A [ I ] : = . . . . .

e n d

e n d .

t y p e T P O L E = a r r a y [ 1 . . 1 0 0 ] o f i n t e g e r ;

v a r A : T P O L E ;

N , P O C E T , I , J : i n t e g e r ;

V S T , V Y S : t e x t ;

b e g i n

a s s i g n ( V S T , ' D A T A . I N ' ) ;

a s s i g n ( V Y S , ' D A T A . O U T ' ) ;

r e s e t ( V S T ) ; r e w r i t e ( V Y S ) ;

r e a d l n ( V S T , N ) ;

f o r I : = 1 t o N

d o r e a d ( V S T , A [ I ] ) ;

f o r I : = 1 t o N

d o i f A [ I ] > 0

t h e n b e g i n

P O C E T : = 0 ;

f o r J : = I t o N

d o i f . . . . .

t h e n P O C E T : = P O C E T + 1 ;

w r i t e l n ( V Y S , A [ I ] , ' s a

v y s k y t u j e ' , P O C E T , ' - k r a t . ' ) ;

A [ I ] : = . . . . .

e n d ;

c l o s e ( V S T ) ; c l o s e ( V Y S )

e n d .

D o pl ň t e v p ro gr ame ch ýb a j ú ce čas t i . K oľ ko p o ro vn an í s a v yk o n á p re

N - p rv ko vú p os tu pno sť v n a j ho r šom p r í p ad e?

V st up n ý s ú b or b y m oh ol v yz e r ať

t ak to :

1 0

1 7 1 1 10 7 1 0 7 7 3 3

V ýs t u pn ý s ú bo r p o to m bu d e :

1 s a v ys k yt u j e 3 -k r a t .

7 s a v ys k yt u j e 4 -k r a t .

1 0 s a v ys k yt u j e 2 -k r a t .

3 s a v ys k yt u j e 1 - k ra t .

P r ečo s a h od no t a 3 v ys k yt u j e v d an e j po s t up no s t l en 1 -k r a t ?

Page 66: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 65

1.36 .1 . Chybové h lásen ia pr i p rác i s t ex tovým súborom

Fi l e no t fo un d

P r i o tv á r an í (R es e t , A pp en d ) n en aš i e l d an ý s ú b or . Buď sú bo r

n eex i s tu j e , a l eb o j e z l e z ad an á ad r e s á ro v á ce s t a k sú bo r u .

P a t h no t fo un d

P r i o t v á r an í sú bo ru b o l a z l e z ad an á ad r e s á r ov á ce s t a , d an ý

ad r e sá r n eex i s t u j e .

F i l e no t o p en fo r i np u t

S úb or n i e j e o tv o ren ý p r e č í t an i e . S úb o r sm e o t vo r i l i p r í kazom

r ew r i t e / ap p en d a ch ceme z n eh o č í t ať .

F i l e no t o p en fo r ou tp u t

S úb or n i e o tv o r en ý p r e z áp i s . Sú bo r sm e o tv o r i l i p r í k azom r es e t

a ch cem e do ň z ap i so v ať , a l ebo p ouž i ť f u nk c i u eo l n / eo f .

Pr í k l ady :

1 . D an ý j e t ex to v ý s ú b or T E XT . IN . Z i s t i t e , koľ ko o bs ahu j e a )

zn ako v , b ) r i adko v , c ) v i e t (v e t a j e u ko n čen á b o dk ou ,

v ýk r i čn í ko m, a l eb o o t áz n ik om ) .

2 . D an ý j e t ex t ov ý s úb o r M AJ ET O K. IN , o bs ahu jú c i m aj e t ko v é

p r i zn an i e ob s ah u jú ce n i ek oľk o p o lož i ek . K ažd á p o lož k a j e

z ap í s an á v j ed nom r i ad ku v t va r e : n ázo v ma j e tk u , m edze r a ,

h o dn o t a v S k . Z i s t i t e ce lk ov ú ho dn o t u m aj e t ku .

3 . D an ý j e t ex to v ý s ú b or C IS LA . IN o b s ahu jú c i po s tu pn osť č í s e l .

V yt v o r t e t ex tov ý s úb o r H V IE ZD Y . O U T , d o k to r éh o zap í š e t e

p os tu pn osť "h v i ezd i čk ov ých " r i ad kov , kd e d ĺ ž k y r i ad k o v sú

u r čené č í s l ami z d an e j po s tu pn os t i .

auto 500000

dom 1500000

zahrada 50000

Page 67: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 66

C IS LA . IN H V IE ZD Y . O U T

5

1

2

8

* * ** *

*

* *

* * ** ** **

4 . M il i on á r : V t ex to vo m s úb or e OT A ZKY . IN s ú z ap í s an é zn en i a

o t ázo k o dd e l en é p rázd n ym i r i adk a mi . Za t ex to m k ažd e j o t ázk y

n a s l ed u j ú 4 m ožn os t i o dp ov ed í (A , B ,C ,D ) . V t ex t ov om s úb ore

O D PO V ED E. IN j e z ap í s an á p os tu pn osť zn ako v , p r ed s t avu jú c i ch

s p r áv n e od po v ed e k o t ázk am v p r vo m s úb or e . V yt v o r t e p r o gr am,

k to r ý b u d e po s tup n e p o j edn e j o t áz ke č í t ať z o sú b or u ,

v yp i s ov ať j u n a ob r az ov ku a č í t ať z k l áv es n i ce už í va t eľ ove

o d po ved e . Za s p rávn u o dp ov eď z í s k a už í v a t eľ bo d .

D o pl no k : už í v a t eľ m ôž e p r i k až d e j o t ázk e po už i ť žo l ík a ' 5 0 :5 0 ' ,

p r i o dp ov ed i b ez žo l í ka s a m u zapo č í t a j ú 2 b od y, s o žo l í ko m 1

b o d .

OTAZKY.IN ODPOVEDE.IN

Ako sa volá hlavné mesto Talianska?

A. Talian B. Rím

C. Vatikán D. Pelikán

Čo je to tritical?

A. chemická zlúčenina B. hmyz

C. praveký jašter D. obilnina

B

D

Page 68: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 67

1 .37. Generovanie náhodných údajov

V ygen e r o v ať n áh od n ý ú d a j z n e j ake j mn ož i n y z n amen á n áho dn e

v yb r ať j ed n u h od no tu z d an e j mn ož in y. V j a z yk u P as ca l m ám e t i e to

n á s t ro j e na gen e ro van i e náho dn ých č í se l :

ra ndo m( < ce l é č í s lo > )

- f u nk c ia , k to r á v rá t i n áho dn é ce l é č í s lo z i n t e rv a l u <0 , <ce l é

č í s lo > - 1> . N apr . r an d om (1 0) v r á t i c e l é č í s l o z i n t e r v a lu <0 ,9 > .

C e l é č í s l o , k t o r é j e p a r ame t rom f unk c i e r and om , p r eds t av u j e

"d ĺ ž ku " in t e r v a lu ( p o če t c e l ých č í se l ) , z k t o r ého v yb e r á

n áho dn é č í s lo , p r i čo m do ln á h r an i ca in t e r v a l u j e vž d y 0 .

ra ndo mi ze

- p ro ced ú r a , k t o rú s t a č í p ouž i ť l en raz n a z ač i a t ku p r ogr am u,

a l ebo p r ed p r v ým p o už i t í m f un k c i e r an do m. J e t o v l as t n e

"n a š t a r t ov an i e " gen e r á t o r a náho dn ýc h č í se l a sp ôs ob í , ž e p r i

k až do m ď al šo m sp us t en í p r o gr am u bu de gen e ro v ať in é č í s l a .

ra ndo m

- f u nk c i a po už i t á b ez p a ram et r a v r á t i n áh od n é r eá ln e č í s lo z

i n t e rv a l u <0 , 1 )

Pr í k l ad p ou ž i t i a :

U žív a te ľ z adá p r i r odz en é č í s lo N p r ed s t av u j ú ce po če t p rv kov

p os tu pn os t i n áh od ných č í s e l , k to r é m á p o č í t a č v ygen e r o vať . P r o gr am

s a sp ýt a už ív a t eľ a , č i chce po s t up no sť ce l ých a l ebo r eá ln ych č í s e l a

v ygen e r u j e j u .

uses Crt;

var N:integer;

VYBER:char;

procedure CELE;

var I:integer;

begin

for I:=1 to N

do write(random(100),' ')

end;

Page 69: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 68

procedure REALNE;

var I:integer;

begin

for I:=1 to N

do writeln(random:0:10)

end;

BEGIN

write('Zadaj, kolko cisel chces: '); readln(N);

writeln('Zadaj, ake chces cisla:');

writeln('a) cele z intervalu <0,99>');

writeln('b) realne z intervalu <0,1)');

VYBER:=upcase(readkey);

case VYBER of

'A':CELE;

'B':REALNE;

end;

readln

END.

Ú l oha p re vás : roz š í r t e po nu ku p r o gr am u o možn os t i gene r o v ať

- ce l é č í s l a z i n t e r va l u <10 0 , 15 0 >

- r e á l n e č í s l a z i n t e r v a l u <0 , 10 )

- r e á l n e č í s l a z i n t e r v a l u <5 , 15 )

- z n ak y z i n t e r v a lu ' a ' . . ' z '

- l o g i ck é h od no t y

- f a rb y z m nož i n y { b i e l a , ž l t á , o r anž ov á , č e rv en á , z e l en á , m od r á ,

f i a l ov á}

A k ch cem e v ygen e r o v ať n áh od né ce l é č í s l o z i n t e rva l u <A, B> a

u lož i ť ho d o p rem en n e j C : i n t ege r , po už i j em e p r ík az

C: = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (d op l ň t e ) .

A k ch ceme v ygen e r o v ať n áho dn é r eá l n e č í s l o z i n t e r va l u <A , B ) a

u lož i ť ho d o p rem en n e j C : r ea l , po už i j em e p r í k az

C: = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (d op l ň t e ) .

Page 70: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 69

A k ch cem e v ygen e r o v ať n áh od n ý n eč í s e ln ý ú d a j , s p r av ím e to t ak , ž e

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Pr í k l ady :

1 . V yt v o r t e p ro gr am, k t o r ý n áh o dn e " r oz h adz u j e " fa r eb né

o b d ĺžn i čk y p o o br azo vk e , t . j . op ako v an e gen e r u j e náh od né

s ú r ad n i ce X , Y a n áho dn ú f a r bu a v yk r e s ľu je po l í čko s

u r čen ým i s ú radn i cami u r čen ou f a rbo u . P ro gr am k onč í , ak

už ív a t eľ s t l a č í ľu bo v oľn ú k l áv esu .

2 . D o s t r ed u ob r azo vk y v yp i s u j t e v u r č i t ý ch ča s o v ých i n t e r v a l o ch

n áho dn é č í s l a z i n t e r v a l u <0 , 9 > ( s t á l e n a r o vn ak é p o l í čko ) ,

p o k i aľ už í v a t eľ n es t l a č í ľu bo vo ľn ú k l áv esu . ( N a o b r azov k e sa

t o č i a č í s l a p od ob n e , ak o k eď s a ž r eb u je . )

3 . D o pl no k : Úl oh ou už í v a t eľ a j e z as t av i ť gen er ov an i e , k eď j e n a

o b r azo vk e č í s lo 0 . A k b o l ús p eš n ý, z ap o č í t a s a m u bo d . Po 1 0

p o kus o ch s a v yh o dn o t í j eho ú sp ešn osť .

4. P ro gr am v ygen e r u je d v e ce l é č í s l a - o p e r an d y a a r i tme t i ckú

o p e r ác iu ( + - * / ) . V yp í š e n a o b r azov k u v ygen e r o v an ý v ýr az v

t v a r e <o p er and ><op e r á t o r ><op e r and >= a o d už í v a t eľ a n ač í t a

č í s lo p r eds t av u jú ce v ýs l ed ok v ýr az u . A k j e už ív a t eľo v výs l ed ok

s p r áv n y, z apo č í t a s a m u bo d . P o 1 0 p r í k l ad o ch p r o gram

v yh o d n o t í ú sp eš no sť už í v a t eľ a a oz n ám ku je h o .

1 .38. Štandardné procedúry a funkcie pre typ STRING

l en g th (< reť a zec> )

- f un k c i a , k t o r á v r á t i c e l é č í s l o p r ed s t av u j ú ce d ĺ žk u r eť az ca

p os (<p od reť a zec> ,< reťa zec>)

- f un k c i a v r á t i poz í c i u p rv ého v ýs k yt u p o dr eť az ca v r e ť az c i ,

p r íp . nu l u , ak s a p od r eť az ec v r eť az c i n en ach ádza

co py (< reťa zec> ,<po z í c ia > , <po če t znak ov >)

- f un k c i a v r á t i p odr eť a z ec , k to r ý v z n ik n e v ýb e r o m d aného po č tu

zn ako v z d aného r eť az ca od d an e j poz íc i e

in s ert ( <pod reťa zec> ,< reťa zec> ,< po z í c i a> )

Page 71: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 70

- v l ož í do re ť azca d an ý p o d r eť az ec n a d an ú poz íc iu

d el e t e (< reťa zec> ,< po z í c i a> ,< po če t zn ako v> )

- v d an om r eť az c i zm až e od d an e j p oz íc i e d an ý p o če t zn ak o v

s t r (< č í s l o> ,< reťa zec> )

- p ro ced ú r a zm en í č í s lo n a re ť azec

v a l ( <reťa zec> , < č í s l o> ,<k ód chyb y> )

- p r o ced úr a zm en í r e ť az ec n a č í s lo a v k ód e ch yb y v r á t i n u l u ; v

p r íp ad e že r e ťaz ec n ep r ed s t av u j e z áp i s č í s l a , b ud e výs l ed n é

č í s lo nu l a a v k ó de ch yb y b u d e u lož ená poz íc i a p r vého

ch yb n éh o z n ak u v re ť az c i

Pr í k l ady po už i t ia :

var I,K:integer;

C:real;

S,R:string

Stav premenných pred Príkaz Stav premenných po Poznámka

S='dva' I:=length(S) I=3 length(S) je to isté ako

ord(S[0])

S='vodovod' I:=pos('od',S) I=2

S='BYSTROZRAKÝ' I:=pos('rak',S) I=0

podreťazec nenašiel

kvôli rozdielu medzi

malými a veľkými

písmenami

S='straka' R:=copy(S,2,4) R='trak'

S='konár' insert('mi',S,3) S='kominár'

S='slovák' delete(S,3,2) S='slák'

I=72 str(I,S) S='72'

C=2.34 str(C:6:3,S) S=' 2.340'

čísla premieňané na

reťazec môžeme

formátovať ako pri

výpise na obrazovku

S='-45.6' val(S,C,K) C=-45.6, K=0 reťazec sa podarilo

premeniť na číslo

S='-45.6' val(S,I,K) I=0, K=4

reťazec nemožno

premeniť na celé číslo

kvôli 4. znaku

S='-45' val(S,I,K) I=-45, K=0 reťazec sa podarilo

premeniť na číslo

Page 72: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 71

1.38 .1 . Pr ík lady

( v z á tv o rk ách s ú uv ed en é f un k c i e a p r o cedú r y, k t o r é b y s t e mo h l i v

p r ík l ad e v yu ž i ť )

1 . V yt v o r t e p ro gr am, k t o r ý n ač í t a r e ť az ec , v yk o n á s n ím

n as l ed o vn é úp r av y a po k až d e j ho v yp í š e :

- k ažd ú č i a rk u z m en í n a bo dk o č i a rk u

- k ažd ú z a s eb ou i dú cu dv o j i cu z n ak ov ' x x ' zm en í n a ' 2x '

- k ažd ý z ač i a t ok s lo v a ( s lo v á sú o dd e len é m edz e r am i , t . zn . p r ed

k až d ým s lo vo m s výn i m k ou p rv ého j e m edze r a ) z m en í n a v eľk é

p í s meno .

( l en g t h )

2 . Z d an ého r eť azca S o ds t r áň t e vš e tk y m edz e r y a v yp í š t e h o .

( l en g t h , d e l e t e )

3 . D o d aného r e ť azca v l ož t e z a k ažd ý z n ak medz e ru a v yp í š t e ho .

( l en g t h , i n s e r t )

4 . V d ano m r eť az c i S j e u lož en é m eno a p r i ezv i sk o o dd e l en é

m edze r ou . D o r eť az ca M u lož t e zv l áš ť m eno a do r eťaz ca P

p r i ez v i sk o . N apr . z r eť az ca S = 'K u bo Za j ac ' v yt v o r t e r e ť az ce

M ='K u bo ' a P = 'Za jac ' . ( po s , cop y, l eng t h )

5 . V yr i e š t e b ez pož i t i a t yp u r ea l : N ač í t a j t e r e á ln e č í s lo ( do

r e ť az co ve j p r em enn e j ) , z i s t i t e a v yp í š t e , koľ ko m á d e s a t in n ých

m ies t . ( p os , l en gt h )

V yp í š t e j eho d e s aťn áso bo k . (d e l e t e , i n s e r t )

6 . V ygen e r u j t e n áhod n ý r e ť az ec z l ožen ý z p í sm en ab eced y

n áho dn e j d ĺ žk y m ax . 8 0 .

7 . V ygen e r u j t e n áh odn ý t ex t a z ap í š t e h o do sú bo ru - p o če t

r i ad ko v bu d e n áhod n é č í s l o z i n t e rva l u 1 . . 20 , d ĺ žk a každ ého

r i ad ku bu d e n áho dn é č í s l o z i n t e r v a lu 1 . . 5 0 , v r i ad ko ch bu dú

n áho dn é ab eced n é zn ak y.

Page 73: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 72

8 . Bez po už i t i a po č í t ača u rč t e v ýs t u p p rogr am u:

var S,R:string;

begin

S:='REKLAMA';

R:=copy(S,3,5);

S:=S+R;

insert(' ',S,8);

S[13]:='E';

S[14]:='!';

writeln(S)

end.

9 . V p rem en n e j S : s t r i n g j e u lož en ý r e ť azec . Zap í š t e p r ík az y ,

k to r ým i :

- zm až e t e p os l edn é 3 zn ak y

- p rv ý z nak p r es un ie t e n a ko n i ec

– do s t r ed u v l ož í t e zn ak ' - '

1 .39. Procedúry s parametrami

Pr í k l ad č . 1 : D an ý j e po če t p rv ko v N a N - p rv ko v á p os tup n osť ce l ých

č í se l A[ 1 . . N] . V yt v o r t e no vé p o l e B, u lož t e d oň ho vš e tk y h o d n o t y z

p oľ a A t ak , ab y s a k až d á v ys k yt o v a l a l en r az a i ch p o če t u l ož t e do

p r em enn e j P . Ob e po l i a v yp í š t e .

N ap r . : ak N =7 a A=( 2 ,1 ,5 ,1 ,5 ,5 ,4 ) , po t om P =4 a B=(2 ,1 ,5 , 4 ) .

R i eš en i e : Ú lo hu s i r ozd e l ím e n a p od ú l o h y, k t o r é b udú r i eš i ť t i e to

p o dp ro gr am y: C IT AJ _A ( n ač í t a N a p o l e A ) , V YR O B_B ( n ap l n í po le

B a p r em enn ú P ) , V Y P IS _ A ( v yp í š e N - p rv ko v é p o l e A) a V YP IS _ A

( v yp í š e P - p rv ko vé p o l e B) . H l av n ý p r o gr am po t om b u de v yz e r ať

t ak to :

Page 74: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 73

begin

CITAJ_A;

VYROB_B;

VYPIS_A;

VYPIS_B

end.

P os l edn é d v e p r o ced ú r y b u d ú v yz e r ať t ak to :

procedure VYPIS_A;

var I:integer;

begin for I:=1 to N

do write(A[I]:5);

writeln

end

procedure VYPIS_B;

var I:integer;

begin for I:=1 to P

do write(B[I]:5);

writeln

end

K eď o b e p ro cedú ry p o r o v n ám e, z i s t í me , ž e s a l í š i a l en n ázv ami

p r em enn ých . O b e v yj ad r u j ú t en i s t ý p o s t up sp r aco v an i a , a l e k aždá

p r acu j e s i n ým i h od no t ami . V t omt o p r í pad e j e v ýh o d n e j š i e

z ad ek l a ro v ať m i es t o t ých t o d vo ch p r o ced úr j ed nu "u n i v erz á ln u " ,

k to r á b ud e p r aco v ať s "n ezn ám ym " p o ľom X a nez n ám ou p r em ennou

Y v yj ad r u j ú co u p oče t p rv ko v . Za "n ezn áme" X , Y do s ad ím e p r i vo lan í

p r o ced úr y p r em en né A ,N a po tom B ,P .

D ekl ará c i a bud e vy zerať tak t o :

procedure VYPIS(X:POLE;Y:integer);

var I:integer;

begin for I:=1 to Y

do write(X[I]:5);

writeln

end

V o lan i a pro cedú ry v h la vn o m p ro g rame bu dú vy zera ť ta kt o :

begin

CITAJ_A;

VYROB_B;

VYPIS(A,N);

VYPIS(B,P)

end.

Ú l oha p re vás : V yp r acu j t e os t a tn é d ek l a r ác i e .

Page 75: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 74

1.39 .1 . Parameter

j e p r em enn á cez k t o rú s a o do vzd áva j ú vs tu pn é a v ýs t u p n é h od no t y

p o dp ro gr amu .

Pa ra met re ro zd eľu j eme n a:

f o rmá ln e - u v ed ené sú v h l av ičk e d ek l a r ov an éh o po dp ro gr amu.

P ouž í v a jú s a ako l ok á l n e p r em en né - vzn ik a j ú p r i v o l an í

p o dp ro gr amu , z an ik a jú po j eh o s ko n čen í , mim o p od p ro gr amu sú

n epo už i t eľ n é . S l úž i a n a u lož en i e h o dn ô t , s k to r ým i b ud e

p o dp ro gr am p r acovať .

s kut o čn é - uv ed ené s ú p r i vo l an í p od p ro gr amu , sú to sk u t o čné

h o dn o t y, s k t o r ým i b u de p od p ro gr am pr aco vať .

D ekl ará c i a p odp rog ra mu s p a ra met ra mi :

procedure <meno> (<zoznam parame trov a ich typov

oddelených bodkočiarkami>);

<lokálne deklarácie>;

begin

<príkazy>

end

V o lan i e po dp ro gramu s p a ra met ra mi :

<meno>(<zoznam parametrov oddelených čiarkami>)

P O ZOR !

t yp p a r am e t r a v h l av i čke po dp ro gr amu m us í b yť j eden

i d en t i f i k á to r . Nap r . n es mi em e z ap í s ať procedure

XYZ(A:array[1..10]of char) , a l e m u s ím e to z ap í s ať :

procedure XYZ(A:POLE) , k d e type POLE=array[1..10]of

char

s ku to čn é a fo rm áln e pa r am e t r e s a m us ia zh od o vať v p o č t e ,

p o r ad í a t yp e .

Pr í k l ad č .2 : Zad ek l a ru j t e p r o ced ú ru s p a r am et ram i

P IS _ ZN A K Y (C: ch ar ;P : in t ege r ) , k to r á v yp í š e z a s ebo u d o r i ad ku P

Page 76: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 75

zn ako v C a k u rzo r n ech á z a po s l ed n ým v yp í s an ým zn ako m. V yt v o r t e

n a j s kô r s kú šo bn ý h l av n ý p r o gr am , k to r ým o d sk úš a t e j e j f u nk čno sť s

v o l an i ami n ap r . P IS _ ZN AK Y ( '@ ' , 5 ) ; P IS _ ZN A K Y ( ' . ' , 1 0 ) .

P o to m v y t v o r t e n ov ý h l av n ý p r o gr am , k to r ý n ač í t a p r i r odz en é č í s l o N

a s p om o co u t e j t o p r o cedú r y v yp í še n a o b r azo vk u t i e t o ú tv a r y s

r ozm er om N (n ep ouž í v a j t e go tox y! ) :

****! **** *******

***!! **** *****

**!!! **** ***

*!!!! **** *

Pa ra met re ro zd eľu j eme n a:

v s tupn é (v o l an é ho dno t ou) - d o p odp r o gr am u s a od o vzd áv a l en

h o dn o t a p rem en ne j , s k to r ou s a p r acu j e . P o sk o nčen í

p o dp ro gr amu h od no t a p r em en ne j z os t áv a n ezm en en á .

v s tupn o - vý s tupn é ( v o l an é ad reso u , r e f erenc iou ) - do

p o dp ro g r amu s a od o vzd áv a ce l á p r em enn á , p od p ro gr am s ňou

p r acu j e a m ôž e j u zm en iť . V h l av i čke p o dp r o gr am u s ú od l í š en é

s lo vk om v ar . N apr ík l ad :

var X,Y:integer;

procedure SKUSKA(A:integer; var B:integer);

begin A:=A+2;

B:=B+A

end;

BEGIN X:=5; Y:=8;

SKUSKA(X,Y);

writeln(X,' ',Y)

END.

P r i vo lan í po dp r o gr amu s a h od no t a sk u t o čn ého pa r am e t r a X v l ož í do

f o rm á ln eh o p a r ame t r a A . K eďž e j e t o l en v s tu pn ý p a r am e te r , po

s ko n čen í po dp ro gr am u s a j eho n ov á h o dn o t a n ep os i e l a n a sp äť . A le ,

p a r am e te r B d os t ane n a z ač i a tk u v s t upn ú ho dn o tu Y a n a k o nc i p oš l e

n a sp äť p rem en n e j Y no vú ( v ýs t u pn ú ) h od no t u . Č o ná m t ento

p rog ra m v yp í še? Č o vyp í š e t en to p ro g ra m, a k vo l an i e

Page 77: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 76

S KUS KA ( X, Y ) na h rad í me v o lan ím a ) S KU S KA( 3 , Y) b )

S KUS KA ( X+ 3, Y ) c ) S KUS KA (X , 3 ) d ) S KUS KA ( X, Y+ 3)?

V yu ž i t i e p a ra met ro v :

ak s a v p r o gr am e op aku j e t á i s t á po s tu p nos ť p r ík azo v s r ôz n ym i

p r em enn ým i

ak p r i d ek l a r ác i i po d pr o gr am u e š t e nev i em n ázo v p r emen n e j s

k to r ou b ud e p ro gr am p r aco v ať

Pr í k l ady :

1 . P ro gr am n ač í t a p r i r o dz en é č í s l a M ,N , p o t om M zn ám ok ž i aka A

a N zn ám ok ž i ak a B . V yp í š e , k t o r ý z n i ch m á l epš í p r i em er .

2 . Zad ek l a r u j t e p ro ced ú ru NS D ( A, B: i n t ege r ; v a r C : i n t ege r ) , k to rá

p r e dan é č í s l a A , B n á jd e i ch n a j v äč š i eh o s po lo čn ého d e l i t e ľa C

p om o co u Eu k l i do vh o a l go r i tm u .

3 . D o pr ed ch ádz a júc eh o p ro gr amu z ad ek l a r u j t e p r o ced úr u

N S N( A , B: i n t ege r ; v a r C : in t ege r ) , k to r á p r e d an é č í s l a A , B

n á jd e i ch n a jm enš í s po lo čn ý n á s ob ok C , t ak , ž e i ch s ú č in v yd e l í

i ch n a jv äč š ím s po lo čn ým d e l i t eľ om .

4 . P ro gr am n ač í t a z lom ok - 2 ce l é č í s l a p r ed s t av u j úce č i t a t eľ a a

m eno v a t eľ a . Z lo mok up r av í n a z ák l adn ý t v a r a v ýs l ed o k v yp í š e .

V yu ž i t e v yš š i e uv ed en é p ro ced ú r y.

Page 78: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 77

1 .40. Funkcia

Fu n k c i a j e p od p ro gr am, k to r ý v r á t i j ed n u v ýs t u pn ú ho dno tu cez s vo je

m eno . Môž e b yť s p a r am e t r ami a j bez p a r am et ro v .

D ekl ará c i a :

function <meno> (<parametre>):<typ výstupnej hodnoty>;

<lokálne deklarácie>;

begin

<príkazy>

end

P a r am et r e fu nk c i e s a d ek la r u jú a j p o už ív a j ú ro vn ak o ak o p r i

p r o ced úr e . T yp v ýs tu pn e j ho dn o t y m ôž e b yť j ed no duch ý ( č í s e l n ý,

zn ako v ý, l o g i ck ý, v ym en o v an ý, i n t e rv a l ) a l ebo s t r i n g . N esm ie to b yť

š t ru k tú r ov an ý t yp . V p r í k azo v e j č as t i s a do m en a fun k c i e p r i rad í

v ýs t u pn á h od no t a .

Pr í k l ad :

function VACSI(A,B:integer):integer;

begin

if A>B

then VACSI:=A

else VACSI:=B

end

V o lan i e f unk c i e :

<meno>(<parametre>)

M eno fu n kc i e j e n o s i t eľ om h od no t y , p r e to f un kc iu použ ív am e ako

h o dn o tu p r í s l uš néh o t yp u ( m ôž em e j u n i ek am p r i r ad i ť , v yp í s ať ,

p o už i ť vo v ýr az e ) n ap r . :

X:=VACSI(3,5); Y:=VACSI(X-4,4); Z:=VACSI(Y,VACSI(X,2));

writeln(Z)

Pr í k l ady .

1 . Zad ek l a ru j t e p ro ced ú ru s v ho dn ým i pa r am et r ami n a v ýp o če t N -

f ak t o r i á l u N ! =1 . 2 .3 . . . .N . V yt v o r t e h l av n ý p r o gr am , k to r ý s

p om o co u po dp r o gram u v yp o č í t a p r e dan é p r i r odz en é č í s l a N , K

Page 79: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 78

v ýr az : N ! / K! / (N - K) ! V yr i e š t e t en to i s t ý p r í k l ad s po už i t ím

f u nk c i e a ob a p ro gr am y p o r ov na j t e . Č o v yp í š e po s l ed n ý p r í k az?

2 . Zad ek l a r u j t e f un kc i u s vh od n ým i p a r am et r am i , k to r á z i s t í , č i s a

d an é dv a r e ť azce rým u j ú (z ho du jú d vo jzn ako vo u ko n co vk o u) .

3 . Zad ek l a r u j t e fu nkc i u , k to r á p r em en í t ep lo tu d anú v °C na

j edn o tk y Fah r en h e i t a p odľ a vzť ahu F=9 /5 *C +3 2 . V yt v o r t e

h l av n ý p r o gr am , k t o r ý n a č í t a p r i ro dzen é č í s lo D a v yp í š e 20 -

r i ad ko v ú t abuľ ku , v k to r e j p r vom s t ĺpc i s ú t ep l o t y v ° C p o čn ú c

o d n u l y s k r ok om D a v d ru ho m s t ĺp c i p r í s l uš né t ep l o t y v

s tu pň o ch Fah r en he i t a . (A k bu de D =5 , v p r vom s t ĺ p c i bu dú č í s l a

0 , 5 , 10 ,1 5 , . . . )

4 . Zad ek l a r u j t e fu nk c i u , k to r á v d an ých d v och r eť az co ch n á j d e i ch

n a jd l hš í sp o l o čn ý z ač i a t očn ý p od r eť az ec , n ap r .

SP _ ZAC ( 'p e ro ' , ' p e r i n a ' ) = 'p e r '

5 . D an ý j e r eť az ec D A TU M p r ed s t av u j ú c i d á t um v tv a re

' d eň .m es i ac . ro k ' . D eň i m es i ac m ôžu b yť j edn o - i d v o jc i f e rn é .

V yt v o r t e f un kc i e : * D EN ( D AT UM :s t r i n g ) : in t ege r . . . z d an ého

d á tum u v r á t i č í s lo d ň a * M ES IA C ( DA T UM :s t r in g ) : in t ege r . . . z

d an éh o d á tum u v r á t i č í s l o m es i aca*

R O K( D AT U M:s t r ing ) : in t ege r . . . z d an ého d á t umu v r á t i č í s lo

r o k a

1 .41. Triedenie

A k p o t r eb u j em e čas to v yh ľ ad áv ať p rvk y v s k u p in e d á t po dľ a n e j ake j

v l as t no s t i , j e d obr é m ať s ku p i nu d á t u s po r i ad an ú p o dľ a d an e j

v l as t no s t i . N apr . ak č i t a t eľ v k n ižn i c i ch ce n á j s ť k n iž ku o d n e j ak ého

s p i so v a t eľ a , v yu ž i j e n a v yh ľ ad an i e m enn ý k a t a l óg , k d e sú

u sp o r i ad an é z ázn am y o k n i h ách po dľ a mi en au t o ro v . A k c h ce n á j s ť

k n iž ku po dľ a n ázv u , v yu ž i j e n ázvo v ý k a t a l ó g , k d e s ú z ázn am y

u sp o r i ad an é p odľa n áz vo v k n í h . V yh ľ ad áv an i e v u sp o r i ad an e j

p os tu pn os t i j e n epor o vn a t e ľn e r ých l e j š i e ak o v neus po r i adan e j .

Page 80: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 79

P os t up no sť a 1 , a 2 , a 3 , . . . , a n môž e b yť us po r i ad an á :

v zos tupn e ( od n a jm enš i eho po na jv äč š í p rv ok ) : a 1 <= a 2 <= a 3

<= . . . <= a n

zo s tupn e ( od n a jv äč š i eho po n a j m en š í p rv ok ) : a 1 >= a 2 >= a 3 >=

. . . >= a n

N ap r . p os t up no sť č í se l 2 ,8 ,5 ,2 ,9 ,1 ,8 m ôž em us po r i adať vzo s tu pn e :

1 , 2 , 2 , 5 , 8 , 8 , 9 a l eb o zo s tu pn e : 9 , 8 , 8 , 5 , 2 , 2 , 1 . Us po r i a dan í m

p os tupn os t i po če t p rvk ov zos t áv a n ezmen en ý , t ak i s t o h odn oty

p rvko v sa n emen ia , l en ma jú in é p o ra d i e .

Ú l oha : V yt v o r t e p r o gr am , k to r ý d an ú po s tu pn os ť č í se l u s po r i ada

vz os tu pn e . Po s tup n osť j e d an á p o č t om p r vk ov a h od no t ami

j edn o t l i v ých p r v ko v . S fo rm ul u j em e n a j s kô r vs tu pn ú a v ýs t u pnú

p o dmi en ku , t . z n . p re s n e u rč ím e , čo j e d an é a čo ch cem e do s t ať :

{ VS T: D an é j e p r i r odz en é č í s l o N a N - p rv ko v á p os t up n osť ce l ých

č í se l a 1 , a 2 , a 3 , . . . , a n }

{ V ÝS: U sp or i ad aná p o s tu pn osť t ých i s t ých č í s e l , k de p l a t í : a 1 <= a 2

< = a 3 <= . . . <= a n }

K eďž e h od no t y p r v k o v p os t up no s t i s a n e sm ú zm en iť , j ed in é o pe r ác i e ,

k to r é s n imi bu d em e mô cť r ob i ť s ú p o ro v nan i e (m enš í , v äčš í ) a

vz á jom n é v ým en y. Zo p ak u jm e s i a l go r i tm us v ým en y o b s ah u d v och

p r em enn ých X a Y . P ouž i j em e t r e t i u po mo cnú p r em e n nú Z , r o v nak ého

t yp u ako p r em enn é X , Y. V ým en u u sk u to čn ím e t ro mi p r i r ad en i am i :

Z:=X; X:=Y; Y:=Z

Ex i s t u jú v i ace r é t yp y a l go r i tm ov n a v yr i e š en i e t e j t o ú lo h y, m y s a

zoz n ámi me s d vo ma n a j j edn od u ch š ími .

1.41 .1 . Tr iedenie cez max imum - MAXSORT

P os t up : N á j d em na j v äčš í p rv ok v po s t up no s t i A[ 1 . . N] . T en p a t r í n a

p os l ed n é mi es to , p re t o h o v ym en ím s po s l edn ým p r vk om. T en t o p r vok

j e už t am , k d e m á b yť , p r e to s i h o už ď a l e j n ebu d em vš ím ať .

Zo p aku j em t en t o po s t up p r e " s k r á t enú" p o s t up no sť A[ 1 . .N - 1] . Ď a l š ím

Page 81: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 80

o p ak ov an ím nakon i ec d o s t an em us po r i ad an ú po s t upn os ť . Hr ub á

s ch ém a a l gor i tm u:

for I:=N downto .....

do begin <nájdi maximum v úseku postupnosti A[1.. ]>;

<vymeň ho s prvkom A[ ]>

end

D o pl ň t e ch ýb a j ú ce ča s t i . P r i t r i ed en í n ám v š ak n es t ač í n á j s ť l en

h o dn o tu m ax ima , a l e kv ô l i n ás l edn e j v ým en e p r vk ov v p os t up no s t i

p o t r eb u j em e p ozn ať a j j eho poz í c iu - i nd ex . P r e to p r i j eho n á j den í

m us ím e od l ož i ť d o n e j ak e j p om ocn e j p r em en n e j a j j eho i nd ex .

1.41 .2 . Tr iedenie prebublávaním - BUBBLESORT

K eďž e ch cem e p os tu pn osť č í s e l vzo s t up n e us po r i ad ať , b ud em e sa

s n až i ť d os t ať men š i e p rv k y v ľ av o a v äčš i e v p rav o . P r i nc íp

p r ebu b l áv an i a sp o č í v a v p o ro vn ávan í d v o j í c su s ed n ých p r v ko v a i ch

n á s l ed n e j v ým en e :

if A[I] > A[I+1]

then <vymeň prvky A[I], A[I+1]>

S am ozr e jm e , t ak ých to po r ov nan í a p r í p ad n ých v ým en m u s í me u ro b i ť

v i ac . J edn ozn ačn e m us ím e po r ov n ať vš e tk y d v o j i c e s us edn ých p r vk ov

- n a j l epš i e s ys t emat i ck y z ľ av a d op r ava :

for I:=1 to .....

do if A[I] > A[I+1]

then <vymeň prvky A[I], A[I+1]>

Ú l oha : D opl ň t e h o rn ú h r an icu c yk l u f o r .

N apí š , ako b ud e v yz e r ať po s tu pno sť 2 , 8 , 5 , 2 , 9 , 1 , 8 p o ap l i k ác i i

h o r eu v ed eného a l go r i tm u: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Čo t r eb a d o a l go r i tmu

d o p ln i ť , ab y t r i ed i l c e l ú N - p rv ko vú p os tu pn osť? N av r hn i v yl ep š en ia

a l go r i tmu , ab y s a p o č í t a č p r i t r i ed en í p os tu pn os t i čo na j m en e j

"n a r o b i l " .

P or ov n a j o b e m et ód y t r i ed en i a .

Pr í k l ad :

V yt v o r t e p on uk ov ý p r o gr am, k t o r ý n a z ač i a t ku v ygen e r u j e n áho dnú

Page 82: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 81

p os tu pn osť č í s e l z i n t e rv a lu <1 , 20> . ( P r ed gen e ro v an ím s i vžd y

v yp ýt a p o če t p rvk o v p os tu pn os t i . ) P o t om o p ak ov an e r ea l i zu j e

n a s l ed o vn ú po nu ku :

1 . V ýp i s ak tu á l n e j pos tu pn os t i

2 . V ygen e r o v an ie n ove j p os t up no s t i

3 . V zo s tu pn é u t r i ed en i e p os t up no s t i M AX S ORT om

4 . V zo s tu pn é u t r i ed en i e p os t up no s t i BU BB LE S OR T om

5 . V zo s tu pn é u t r i ed en i e p os t up no s t i M IN S OR Tom

6 . Zo s tu pn é u t r i ed en ie po s t up no s t i ľu bov oľ n ým s pô so b o m

7 . K o ni ec

M IN S O R T j e t r i ed en i e c ez mi n im um, k to r é j e v p r in c íp e r o vn ak é , ako

t r i ed en i e c ez m ax im um . O p ak ov an e v yh ľ ad áv am e n a jmen š í p r vo k v

ú s ek u a v ym i eňam e h o s o z ač i a to čn ým p r vk om . Po čas b eh u p r o gramu

n ez o t i e r a j t e ob r azo vk u , ab y b o lo možn é po ro vn ať pô v o dnú

p os tu pn osť s u s po r i ad an ou . S kú s t e v ym ys l i e ť v l a s tný a l go r i t mus

t r i ed en i a .

Page 83: Učebné texty k maturitnej skúšky z Informatiky texty...Algoritmizácia a programovanie – učebné texty 5 Identifikátorom sa označujú nielen premenné, ale aj ostatné objekty

Algoritmizácia a programovanie – učebné texty 82

Literatúra

1. Andrejková, G. – Kucka, M.: Zbierka úloh z programovania, Prírodovedecká fakulta

UPJŠ, Košice 1991

2. Blaho, A. – Kalaš, I.: Comenius Logo: tvorivá informatika, Bratislava CL Group 1998

3. Drlík, P. – Hvorecký, J.: Informatika – náčrt didaktiky, PF v Nitre 1992

4. Dvořák, S.: Dekompozice a rekursívne programy, Grada, Praha 1992

5. Dvořák, S.: Turbo Pascal 6 v príkladech, Grada, Praha 1991

6. Fabián, P. a kol.: Počítače a programovanie, VŠDS v Žiline 1990

7. Fikár, I a kol.: Programátorský Babylon, Grada, Praha 1992

8. Grošek, O. – Porubský, Š.: Šifrovanie – algoritmy, metódy, prax, Grada, Praha 1992

9. Gvozdjak, L a kol.: Počítače a programovanie, Alfa, Bratislava 1985

10. Hruška, T. : Pascal pro začátečniky, SNTL, Praha 1989

11. Hvorecký,J. – Kelemen,L.: Algoritmizácia, Alfa, Bratislava 1983

12. Hvorecký, J – Gabčo, P.: Informatika a výpočtová technika pre I. ročník gymnázia,

SPN, Bratislava 1988

13. Jinoch, J. a kol.: Programovaní v jazyku Pascal, SNTL, Praha 1985

14. Kryl, R. – Drózd, J.: Začínáme s programovaním, Grada,Praha 1992

15. Kukal, J: Myšlením k algoritmům, Grada, Praha 1992

16. Kulacs, D. – Petlák, E.: Didaktika. PF v Nitre 1985

17. Mikula, P. a kol.: Turbo Pascal 7.0 – kompletní pruvodce, Grada, Praha 1993

18. Wirth,N: Algoritmy a štruktúry údajov, Alfa, Bratislava 1987