http://vitas.matfyz.cz/cv/contest/priklady.html

Pascal-contest -- příklady


hello

level 0

Zadání: Vytiskne 'Hello world'

Input: Žádný vstup.

Output: Vytiskne 'Hello world'.

Soubory: hello.pas, hello.out.


max3

level 0

Zadání: Vyberte největší přirozené číslo ze tří.

Input: Jedno zadání na řádku, zadání má tvar:

	Z: a b c 
kde Z je číslo zadání a,b,c jsou zkoumaná čísla.

Output: Pro každé zadání vytiskne řádek ve tvaru:

	Z: max

Soubory: max3.pas, max3.out, max3.in.


rev10

level 0

Zadání: Načtěte deset čísel a vytiskněte je v opačném pořadí.

Input: Jedno zadání na řádku, zadání má tvar:

	Z: [10 prirozených cisel]
kde Z je číslo zadání, poslední zadání má číslo 0.

Output:

	Z: [10 čísel v opačněm pořadí, oddělené mezerou]

Poznámka: za posledním není mezera

Soubory: rev10.pas, rev10.out, rev10.in.


max

level 0

Zadání: V posloupnosti nenulových celých čísel najděte maximální. Posloupnost je ukončena číslem 0 (které se nepočítá). Pokud takové číslo neexistuje vytiskne se 0.

Input: Jedno zadání na řádku. Zadání má tvar:

	N: [čísla oddělená mezerou] 0

Output:

	N: max 

Soubory: max.pas, max.out, max.in.


trymax

level 1

Zadání: Najděte třetí největší číslo v posloupnosti (celých nenulových). Jinými slovy: kdyby byla tato čísla usporádána sestupně, které by bylo třetí. Např: v 1 2 2 3, je treti nevjvetsi cislo 2. V případě, že takové číslo neexistuje, program vytiskne text 'trymax neexistuje'.

Input: Jedno zadání na řádku. Zadání má tvar:

	Z: [neulová celá čísla oddělená mezerou] 0
Poslední zadání má číslo 0.

Output:

	Z: [trymax] 
	Z: trymax neexistuje

Soubory: trymax.pas, trymax.out, trymax.in.


sort3

level 1

Zadání: Setřiďte sestupně 3 čísla podle velikosti

Input: Jedno zadání na řádku, zadání má tvar:

	Z: a b c 
kde Z je číslo zádaní, a,b,c jsou zkoumaná čísla. poslední zadání má číslo 0.

Output: Pro každě zadání vytiskne řádek ve tvaru:

	Z: max medium min

Soubory: sort3.pas, sort3.out, sort3.in.


postmin

level 1

Zadání: Najde číslo, které je v posloupnosti na místě za minimem. Např: 1 2 100 5 6 0 --> 2. Pokud takové číslo neexituje, vytiskne 0.

Input: jedno zadaní na řádku, zadání má tvar:

	Z: [cela nenulova čísla oddělena mezerou] 0

Output:

	Z: postmin

Soubory: postmin.pas, postmin.out, postmin.in.


premin

level 1

Zadání: Najde číslo, ktere je v posloupnosti pred minimem. Např: 5 2 100 5 6 0 --> 5. Pokud takové číslo neexituje vytiskne 0.

Input: Jedno zadaní na řádku. Zadání má tvar:

	Z: [celá nenulová čísla oddělena mezerou] 0
Poslední zadání má číslo 0.

Output:

	Z: premin

Soubory: premin.pas, premin.out, premin.in.


rc

level 1

Zadání: Na vstupu je rodné číslo ve tvraru YY MM DD OOOO (YY rok, MM měsíc, DD den, OOOO ocásek). Úkolem je zjistit, je-li toto číslo korektní. Tedy jestli datum tímto rodným číslem vyjádřené existuje a jestli je celé číslo dělitelné jedenácti. Předpokládejte, že dvojčíslí 00 znamená rok 2000. U ostaních roků na tom nezáleží. Program odpoví textem 'ok' nebo 'ko'.

Input: jedno zadání na řádku, zadání má tvar:

	Z: YY MM DD OOOO
kde Z je číslo zadání. Poslední zadání má číslo 0.

Output:

	Z: ok
	Z: ko

Soubory: rc.pas, rc.out, rc.in.


pos

level 2

Zadání: Na vstupu jsou dva řetězce A, B, najděte pozici prvního výskytu řetězce A v řetězci B, pokud se A v B nevyskytuje, výstup bude 0. Nepoužívejte pascalskou fci pos();

Input: jedno zadaní na dvou řádcích řádku, zadání má tvar:

	Z:<řetězec A>
	Z:<řetězec B>
kde Z je číslo zadání. Poslední zádání má číslo 0.

Output:

	Z:[pozice] 

Soubory: pos.pas, pos.out, pos.in.


nxtperm

Zadání: K zadaně permutaci nalezněte následující v lexikografickěm uspořádání, např. pro P=5: 1 2 4 5 3 --> 1 2 5 3 4 . Pozn: následník k poslední permutaci je první permutace. level 3

Input: Rádek vstupu vypadá následovně:

  Z: N a1 a2 ... aN
kde Z číslo zadání, N je velikost permutace a a1 .. aN je samotná permutace. Můžete přepokládat: N <= 100 poslední zadání má číslo 0.

Output:

  Z: lexikograficky následující permutace oddělená mezerami

Soubory: nxtperm.pas, nxtperm.in, nxtperm.out.


permnum

level 3

Zadání: Uvažujme permutace nad čísly 1..N uspořádané lexikograficky. Pro danou permutaci nalezněte, kolikáté v pořadí je v tomto uspořádání. Permutace 1234..N má číslo 1.

Input: Řádek vstupu vypadá následovně:

  Z: N a1 a2 ... aN
kde Z číslo zadání, N je velikost permutace permutace a a1 .. aN je samotná permutace. Můžete přepokládat, že N! se vejde do datoveho typu longint. (tj. N<=12) poslední zadání má číslo 0.

Output:

	Z: [cislo permutace]

Soubory: permnum.pas, permnum.out, permnum.in.


fib

level 2

Zadání: Fibonacciho čísla jsou zadány rekurentně: F(0) = 0, F(1) = 1, F(n+2) = F(n+1) + F(n).

Input: Jedno zadání na řádku, zadání má tvar:

	Z: N
kde Z je číslo zadání, N požadované číslo. poslední zadání má číslo 0.

Output:

	Z: F(N)

Soubory: fib.pas, fib.out, fib.in.


slozenky

level 2

Zadání: Vypište zadané (nezáporné celé) číslo slovy (bez diakritiky). Přesný tvar bude jasný z příkladů: 1(jedna), 2(dva), 247(dve ste ctyricet sedm), 1008(tisic osm), 133(sto tricet tri), 52(padesat dva). Zadané číslo bude menší než dest tisíc. level 2

Input: jedno zadaní na řádku, zadání má tvar:

	Z: N
kde Z je číslo zadání, N je číslo k přečtení poslední zadání má číslo 0.

Output:

	Z: [zadané číslo slovy]

Soubory: slozenky.pas, slozenky.out, slozenky.in.


ara2rim

level 3

Zadání: Převeďte arabské číslo na číslo římské. Použijte tzv. moderní zápis římských čísel, který nedovoluje nejednoznačnosti. Viz nasledující přiklady: 1 -> i, 4 -> iv, 8 -> viii, 10 -> x, 50 -> l, 100 -> c, 500 -> l, 1000 -> m, 49 -> xlix, 1999 -> mcmxcix.

Input: jedno zadaní na řádku, zadání má tvar:

	Z: N
kde Z je číslo zadání, N je arabské číslo, přirozené menší než 4000. Pokud je N nula program vytiskne '-'. poslední zadání má číslo 0.

Output:

	Z: rim(N)

Soubory: ara2rim.pas, ara2rim.out, ara2rim.in.


kal

level 5

Zadání: Naprogramujte kalkulačkuk, která vyhodnotí operatory +-*/ a závorky. Příklad: (1-4*6+1)*(-1) --> -25. V případě, že výraz je špatně zadán, napíše se: syntax error V případě, že se vývarazu dělí nulou, napíše se: div by zero Pro vyhodnocení výrazu použijte datový typ Longint. Můžete předpokládat, že výraz nebude delší než 200 znaků.

Input: jedno zadaní na řádku, zadání má tvar:

	Z : výraz
kde Z je číslo zadání, N výraz obsahující znaky '0-9+-*/()' poslední zadání má číslo 0.

Output:

	Z: výsledek
Z: syntax error Z: div by zero

Soubory: kal.pas(not yet), kal.out(not yet), kal.in(not yet).


easykal

level 5

Zadání: Naprogramujte celočíselnou kalkulačku, která vyhodnotí operatory +-*/. Příklad: 1-4*6/5+1*-1 --> -4. V případě, že výraz je špatně zadán, napíše se: syntax error V případě, že se vývarazu dělí nulou, napíše se: div by zero Můžete předpokládat, že výraz nebude delší než 200 znaků. Pro vyhodnocení výrazu použijte datový typ Longint.

Input: jedno zadaní na řádku, zadání má tvar:

	Z : výraz
kde Z je číslo zadání, N výraz obsahující znaky '0-9+-*/' poslední zadání má číslo 0.

Output:

	Z: výsledek
Z: syntax error Z: div by zero

Soubory: kal.pas(not yet), kal.out(not yet), kal.in(not yet).


Zpět:
http://vitas.matfyz.cz/cv/contest/priklady.html