Professional Documents
Culture Documents
Zbierka Maturity
Zbierka Maturity
Číselný zámok
Ako isto viete, na zamykanie sú veľmi obľúbené číselné zámky. Klasické s niekoľkými
kolieskami. Kolieska sa dajú otáčať oboma smermi. Našou úlohou je vyriešiť najmenší
počet otočení, aby sme odomkli zámku.
načítajte z klávesnice počet koliesok, stav zámku a kombináciu na odomknutie.
program vypíše najmenší počet otočení, ktoré musíte urobiť na obrazovku.
Vstup: Vstup:
5 3
12345 222
98765 903
Výstup: Výstup:
Najmenší počet otočení:12 Najmenší počet otočení: 6
2. Dešifruj kód
Počítač náhodne vygeneruje koľko miestny bude kód (minimálne 3, maximálne 6 miestny).
Potom vygeneruje samostatný kód: celé čísla náhodne generované počítačom z intervalu
<0, 9>
Program namiesto kódu vypíše počet hviezdičiek a hráča vyzve na zadanie číselného
kódu
Keď hráč uhádne číslicu program ho na príslušnej pozícii zobrazí (zatiaľ
neuhádnuté číslice sú vypísané hviezdičkou)
Hráč musí dosiahnuť správnu kombináciu
Program vypíše počet pokusov potrebných na uhádnutie kódu.
Príklad:
Počítač vygeneroval kód: 2 2 5 8
Výpis na obrazovku: * * * *
Užívateľ: 3 2 4 8
Výpis na obrazovku: * 2 * 8
Užívateľ: 7 2 5 8
Výpis na obrazovku: * 2 5 8
Užívateľ: 2 2 5 8
Výpis na obrazovku: 2 2 5 8
Uhádol si na tretí pokus.
3. Zrátajme si jednotky
Jožko je veľmi šikovný a tak začal písať všetky čísla v dvojkovej sústave. Jednotky píše
červenou a nuly čiernou farbou. Začal písať všetky čísla od 1 po N. Už mu chýba iba jedno,
keď si všimol, že mu dochádza červená farba. Keby vedel, koľko jednotiek ešte napíše, tak
aby vedel či mu pero vystačí, alebo si má kúpiť nové. S týmto si však nevedel poradiť, preto
sa obrátil na vás.
Vytvorte program, ktorý:
na vstupe dostane číslo v desiatkovej sústave,
vypíše číslo v dvojkovej sústave,
vypíše počet jednotiek potrebných na zápis tohto čísla v dvojkovej sústave
Napr.:
Vstup: 1025
Výstup: Číslo v dvojkovej sústave: 10000000001
Počet jednotiek: 2
4. Na striedačku
Vytvorte program, ktorý:
má na vstupe N jednotiek a N núl v rôznom poradí (N je náhodné z intervalu <3,8>),
poradie jednotiek a núl je tiež náhodné.
preusporiada načítané jednotky a nuly tak, aby žiadne dve nuly ani žiadne dve
jednotky neboli vedľa seba,
preusporiada načítané jednotky a nuly tak, aby žiadne dve nuly ani žiadne dve
jednotky neboli vedľa seba tak, aby bolo potrebné spraviť čo najmenší počet výmen.
(Pri každej výmene môžeme vymeniť ľubovoľnú dvojicu)
Vstup: Výstup:
5 2
1 0 1 1 0 1 1 0 0 0 1 0 1 1 0 1 1 0 0 0
1 0 1 0 0 1 1 0 1 0
1 0 1 0 1 0 1 0 1 0
5. Keno
Predstavte si, že založíte súkromnú stávkovú spoločnosť, ktorá sa zaoberá hrou Keno.
Vytvorte program, ktorý:
na vstupe prečíta tipy na desať čísel od používateľa.
simuluje žrebovanie vygeneruje 20 náhodných čísel z intervalu <1,80> (čísla sa
nesmú opakovať) a vypíše ich,
porovná náš tip so žrebovaním a zobrazí uhádnuté čísla a ich počet.
Napr.
Počítač vygeneruje: 21 17 44 55 66 72 79 13 9 6 1 25 19 33 20 57 69 73 74 61
Používateľov tip: 17 11 14 16 66 55 2 19 21 15
Uhádnuté čísla 17 66 55 19 21
Počet uhádnutých čísel: 5
6. Histogram
Nakreslite histogram pomocou hviezdičiek. Program:
vygeneruje 10 hodnôt z intervalu <1, 9>
vypíše vygenerované hodnoty
nájde najväčšiu hodnotu
vykreslí histogram – 10 stĺpcov zo znakov *, pričom každý stĺpec je vysoký podľa
príslušnej hodnoty.
Napr:
Vylosované čísla: 2 24 26 16 47 13
Výstup:
0 cisel uhadli 1 tipujuci
2 cisel uhadli 2 tipujuci
8. Zázračné platenie
Zygrov dlhoročný sen je navštíviť Švédsko. Dôkladne sa na to pripravuje: študuje históriu,
učí sa jazyk1 a počúva škandinávske pesničky. Popri tom samozrejme pracuje (vo firme
“Vysávače a špagety, s.r.o.”), aby si zarobil peniaze na výlet. Práca je ale náročná, a tak
raz večer zaspal nad poviedkami o Pipi Dlhej Pančuche a ocitol sa v zázračnej švédskej
dedinke s ešte zázračnejším spôsobom platenia.
Platenie sa líšilo tým, že ak máte za zmrzlinu zaplatiť napríklad 512 eur, tak najprv podáte
pokladníkovi 5, 1 a 2 eurá. Zygro bol samozrejme veľmi nadšený. Veď na kúpenie zmrzliny
mu stačilo iba 8 eur, čím ušetril 504 eur. Celú noc preto behal po dedinke a zisťoval ceny
jednotlivých výrobkov, aby zrátal, koľko peňazí dokáže ušetriť. Aj vo svojom sne je však
veľmi unavený, a tak už nezvláda ani obyčajné odčítavanie. Keby tak na to mal program…
Pomôžete mu?
Máte dané celé nezáporné číslo n – cenu výrobku. Vašou úlohou je zistiť, koľko peňazí
Zygro ušetrí, ak za výrobok zaplatí vyššie popísaným spôsobom.
Vstup: 512
Výstup: Ušetrí:504 eur
512-(5+1+2)=512-8=504
Vstup: 1000
Výstup: Ušetrí:999 eur
9. Zobudená programátorka
Kamila má rada kávu. Rokmi pokusov zistila presný objem kávy, pri ktorom sa jej pracuje
najlepšie. Dnes sa dozvedela, že má náročnú domácu úlohu, ktorú treba rýchlo odovzdať, a
potrebuje sa posilniť. Zamierila teda ku svojej zbierke výberových káv. Kávy v zbierke sú
uskladnené v rôzne veľkých vrecúškach: každé vrecúško je dvakrát väčšie ako to pred ním,
počínajúc vrecúškom s hmotnosťou 1 gram. To znamená, že v zbierke má vrecúška s
váhami 1,2,4,8,…,2n gramov. Ako v každej správnej zbierke, aj v tej Kamilinej je vrecúško
každej veľkosti práve raz.
Ktoré vrecúška má Kamila vybrať aby dosiahla svoju vytúženú hladinu kofeínu?
Na vstupe dostanete n – potrebnú hmotnosť kávy a máte zistiť, ktoré z vrecúšok má Kamila
zobrať, ak chce mať presne n gramov kávy.
Vstup: 20
Výstup: 4 16
Vstup: 35
Výstup: 1 2 32
10. Nádoby
5 tisíc guličiek bude náhodne po jednej padať vždy do jednej z 5 nádob, podľa toho do ktorej
nádoby spadne sa zafarbí. Spočítajte, koľko je v každej nádobe guličiek a vypíšte nad nádobu
ich počet. Vypíšte aj v ktorej nádobe je najviac guličiek. Uvažuje aj o prípade, že maximum
bude rovnaké vo viacerých nádobách.
Príklad výstupu:
Napríklad:
začínam so sumou: 20
štart -1-1-1-1-1-1-1+5-1-1-1-1+5-1-1-1-1-1-1-1-1+5-1+5-1-1-1-1-1-1+5-1+5
-1-1-1-1-1-1-1-1-1+5+5-1-1-1-1+5-1-1-1+5-1-1-1+5+5-1-1+5+5-1-1+5-1-1-1-1
-1-1-1-1+5-1-1-1+5-1+5-1-1-1-1+5-1+5-1-1+5-1-1-1-1-1-1-1+5-1+5-1-1-1-1-1
+5-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1+5-1-1-1-1-1+5-1
-1-1-1+5-1-1+5-1-1-1-1-1-1-1-1-1-1-1-1
12. Posun
Vytvorte program, ktorý :
vygeneruje N (maximálne 20) znakov veľkej abecedy (od A po Z).
vypíše vygenerované hodnoty do riadku
posunie hodnoty o jednu doľava a vypíšte ich
posunie hodnoty o k prvkov doľava a vypíše ich. Hodnotu premennej k zadá užívateľ
na vstupe.
Napr.:
Vygenerované znaky: A S D F G H J K L M
Posunuté o jeden doľava: S D F G H J K L M A
Posunuté o k prvkov doľava pre k=3: F G H J K L M A S D
(oproti vygenerovaným znakom)
13. Zberateľky
Danka a Janka sú dvojičky. Obe zbierajú cudzokrajné známky. Ešte donedávna mali obe
presne rovnaké zbierky, každá tú svoju pekne spôsobne utriedenú vo svojom albume. Lenže
včera cestou zo školy našla Janka na zemi obálku s nádhernými známkami, ktoré ešte vo
zbierke nemali. Danke ich však odmietla ukázať, a doma si ich rýchlo založila do svojho
albumu. Danku teraz zožiera zvedavosť – akéže to známky Janka má a ona nie? A tak, keď
Janka odišla vyniesť smeti, Danka schytila oba albumy a začala nové známky hľadať.
Dané je celé číslo N a dve postupnosti celých čísel A a B, ktoré sú utriedené v rastúcom
poradí. Postupnosť B obsahuje presne to isté ako postupnosť A, a navyše ďalšie prvky
(maximálne 10) zaradené na správnom mieste. Všetky čísla v postupnosti B (a teda aj v
postupnosti A) sú navzájom rôzne. Napíšte program, ktorý prvky, ktoré neobsahuje
postupnosť A nájde čo najrýchlejšie:
načítajte a vypíšte hodnotu N z textového súboru znamky.txt
načítajte postupnosti A a B z textového súboru znamky.txt
program vypíše koľko známok cestou zo školy našla Janka.
program čo najrýchlejšie nájde a vypíše, ktoré to boli známky (čísla, ktoré
neobsahuje postupnosť A)
14. Diaľnica
Píše sa rok 2108. Bratislavu a Košice konečne spojila diaľnica. Keď to Jano, bývajúci v
Košiciach, uvidel, od radosti sa hneď rozbehol kúpiť si auto. Rýchlo však zistil, že auto
nejazdí na dobré slovo, ale treba doň občas natankovať benzín. Keď natankuje plnú nádrž,
dokáže na svojom aute prejsť po diaľnici až K metrov. Pozdĺž diaľnice sa nachádza N
čerpacích staníc, pričom i-ta stanica sa nachádza ai metrov od Košíc. Jana zaujímajú také
dvojice staníc, ktorých vzdialenosť je menšia ako dojazd jeho auta – teda ak na jednej z nich
natankuje, dokáže sa potom dostať na druhú z nich.
Napíšte program, ktorý načíta hodnoty K, N a ai z textového súboru dialnica.txt a spočíta
počet dvojíc čerpacích staníc, ktorých vzdialenosť je menšia alebo rovná K.
Prvý riadok súboru dialnica.txt obsahuje celé číslo K- maximálnu vzdialenosť, ktorú
prejde Janovo auto na jedno natankovanie.
Druhý riadok súboru dialnica.txt obsahuje celé číslo N - počet čerpacích staníc.
Tretí riadok súboru dialnica.txt obsahuje N medzerami oddelených celých čísel
a1, . . . , aN (0 ≤ a1 < a2 < · · · < aN) – vzdialenosti jednotlivých čerpacích staníc
od Košíc.
Vypíšte obsah súboru dialnica.txt na monitor.
Výstup má obsahovať jediný riadok a v ňom jediné celé číslo P – počet dvojíc
čerpacích staníc, ktorých vzdialenosť je najviac K.
15. Anketa
Na každom riadku súboru anketa.txt je desať odpovedí reprezentovaných písmenami „A“
(odpoveď Áno) a „N“ (odpoveď Nie) na desať otázok ankety. Písmená nie sú od seba
oddelené a nie je známy počet riadkov súboru (t. j. počet účastníkov ankety)
18. Háďa
V textovom súbore hada.txt máme zapísaný priebeh hier „Háďa“. V každom riadku je
zapísaný priebeh jednej hry. Jedna hra je postupnosť jednotlivých krokov, ktorými sa
pohybovala hlava háďaťa na obrazovke v štyroch základných smeroch a za sebou
zanechávala čiaru. Háďa sa neustále pohybovalo, klávesmi sme menili jeho smer. Cieľom
hry bolo čo najdlhšie nenaraziť do nakreslenej čiary. V riadku sú znaky, ktoré reprezentujú
smer pohybu háďaťa (H-hore, D-dole, L-vľavo, P-vpravo). Jeden znak symbolizuje jeden
krok v danom smere.
Napr. HHHHDDDDDDLLLLLLLDH.