You are on page 1of 8

1.

Čí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:

Program vygeneroval a vypísal hodnoty a vykreslil histogram:


9 2 3 5 7 1 4 1 2 3
*
*
* *
* *
* * *
* * * *
* * * * * *
* * * * * * * *
* * * * * * * * * *
7. Lotéria
Vytvorte program na simuláciu číselnej lotérie. V lotérii sa žrebuje 6 čísel od 1 po 49.
Napíšte program, ktorý:

 simuluje žrebovanie a vypíše 6 vyžrebovaných čísel (čísla sa nesmú opakovať),


 porovná vyžrebované čísla so všetkými tipmi účastníkov lotérie. Tipy účastníkov
lotérie sú uvedene v textovom súbore loteria.txt. Na každom riadku je 6 čísel. Čísla
sú oddelené medzerou. Jeden riadok reprezentuje jedno tipovanie jedného
účastníka,
 vypíše počet účastníkov, ktorí správne tipovali, práve jedno číslo, práve dve čísla,
práve tri čísla, práve štyri čísla, práve päť čísel, práve šesť čísel.

Ukážka vstupného súboru loteria.txt


10 15 35 12 14 42
20 23 7 14 2 16
16 35 32 24 27 45

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:

11. Hrací automat


Vytvorte program, ktorý bude simulovať hrací automat. Programu zadáte na vstupe
ľubovoľnú hodnotu v €. Napríklad 20,-€. Počítať bude generovať 3 náhodné čísla z intervalu
<1, 20 >. Ak sú medzi týmito tromi číslami dve rovnaké, vyhrávam 5 euro, ak sú všetky tri
rovnaké, vyhrávam 100 euro. Ak sú rôzne prehrávam 1 euro. Program skončí po maximálne
tisícom generovaní troch čísel, respektíve skôr ak som všetko prehral. Výpis môže vyzerať
nasledovne.

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)

Ukážka súboru znamky.txt:


5 6
1 3 4 7 110 1 2 5 8 10 55
1 2 3 4 7 47 110 1 2 4 5 6 8 10 55 56

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.

Ukážka vstupného súboru dialnica.txt:


100 100
3 5
15 80 120 15 65 80 100 115

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)

Napíšte program, ktorý tento súbor spracuje a vypíše:


 počet respondentov ankety
 čísla otázok, ktoré mali najviac percent
 do súboru vysledky.txt, číslo otázky a percento kladných odpovedí na každú
z desiatich otázok

Príklad vstupného súboru: Príklad výstupného súboru:


AANAAANNAN 1. 83.33%
ANNNAANNNN 2. 50.00%
NNNNAAANNN 3. 50.00%
AAANAAANNN 4. 33.33%
ANANANANAN 5. 100.00%
AAAAAAAAAA 6. 83.33%
7. 66.67%
8. 16.67%
9. 50.00%
10. 16.67%

16. Šach – kam môže ísť jazdec


Pomôžte začiatočníkovi v šachu. Vytvorte program, ktorý zvýrazní políčka šachovnice
ohrozované jazdcom:
 na vstupe načítajte pozíciu jazdca na šachovnici (tabuľka 8 x 8), predpokladáme že
vstup je z intervalu <1,8>
 polohu jazdca je na šachovnici označená písmenom J
 políčka, ktoré jazdec ohrozuje sú vyznačené hviezdičkami. Jazdec ohrozuje políčka
v tvare L .
 vytvorte funkciu Jazdec (x, y), ktorá znázorní políčka ohrozované jazdcom.
Napr. funkcia Jazdec(3, 5) vypíše:
. . . * . * . .
. . * . . . * .
. . . . J . . .
. . * . . . * .
. . . * . * . .
. . . . . . . .
. . . . . . . .
. . . . . . . .

17. Šach – ohrozenie dámou


Pomôžte začiatočníkovi v šachu. Vytvorte program, ktorý zvýrazní políčka šachovnice
ohrozované dámou:
 na vstupe načítajte pozíciu dámy na šachovnici (tabuľka 8 x 8), predpokladáme že
vstup je z intervalu <1,8>
 poloha dámy je na šachovnici označená písmenom D
 políčka, ktoré dáma ohrozuje sú vyznačené hviezdičkami. Dáma ohrozuje políčka
vodorovne, zvislo a šikmo.
 vytvorte funkciu Dama (x, y), ktorá znázorní políčka ohrozované dámou.

Napr. funkcia Dama(3, 5) vypíše:


. . * . * . * .
. . . * * * . .
* * * * D * * *
. . . * * * . .
. . * . * . * .
. * . . * . . *
* . . . * . . .
. . . . * . . .

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.

Ukážka textového súboru:

Vytvorte program, ktorý:


 zistí počet zapísaných hier v súbore,
 zistí koľko krokov mala najdlhšia hra,
 vytvorí kópiu textového súboru,
 kópiu vytvorí v komprimovanom tvare použitím metódy opakujúcich sa znakov,
Napr namiesto postupnosti HHHHDDDDDDLLLLLLLDHH zapíše do súboru
postupnosť H4 D6 L7 D1 H2
19. Lokálne minimum a lokálne maximum
V textovom súbore hodnoty.txt sú zaznamenané vypočítané hodnoty priebehu funkcie f(x)
(maximálne 20 hodnôt).
Chceme zistiť jej lokálne maximá a lokálne minimá. Lokálne maximum vznikne vtedy, keď
obidve susedné hodnoty sú menšie, označíme ju znamienkom +. Lokálne minimum vznikne
vtedy, keď obidve susedné hodnoty sú väčšie, označíme ju znamienkom -.

Napíšte program, ktorý


 vypíše súbor na obrazovku
 vypíše koľko hodnôt priebehu funkcie bolo zaznamenaných v súbore
 vypíše jednotlivé hodnoty (každú do nového riadku). Ak je lokálnym maximom
pripíše k nej znamienko + . Ak je lokálnym minimom pripíše k nej znamienko - .

Ukážka textového súboru:


5 7 2 8 6 5 4 7

Ukážka výstupu: Pocet zaznamenanych hodnot: 8


5
7 +
2 –
8 +
6
5
4 –
7

You might also like