##### IB113 skupina 05 #####
##### cvičení 11


### REGULÁRNÍ VÝRAZY
# ÚKOL 0
# Na stránce umíme programovat si procvičte regulární výrazy.
https://www.umimeprogramovat.cz/regularni-vyrazy


### PŘÍPRAVA NA VNITRO
# ÚKOL 1
# Napište funkci sum_of_squares(limit), která spočítá a vrátí součet všech 
# druhých mocnin menších než číslo 'limit'.

>>> print(sum_of_squares(4))
1
>>> print(sum_of_squares(17))
30


# ÚKOL 2
# Napište funkce table(n), která vytiskne tabulku n x n, ve které budou
# součty indexů řádku a sloupce. Oba indexujeme čísly od 1 do n.

>>> table(4)
2 3 4 5
3 4 5 6
4 5 6 7
5 6 7 8


# ÚKOL 3
# Napište funkci max_number_index(array), která vrátí index největšího
# čísla v seznamu. Pokud jich je víc, vybere ten nejnižší.

>>> print(max_number_index([1, 2, 6, 5, 4, 3]))
2
>>> print(max_number_index([9, 9, 9, 9]))
0


# ÚKOL 4
# Napiš funkce zip_words(word1, word2), která zazipuje vstupní slova
# po písmenech. Slova mohou být různě dlouhá.

>>> zip_words('hhh', 'aaaaa')
hahahaaa
>>> zip_words('mleko', 'kafe')
mklaenfkeo


# ÚKOL 5
# Napište funkci hourglass(n), která pomocí ASCII art vytiskne přesýpací
# hodiny o velikosti n, kde n je liché číslo

>>> hourglass(3)
###
 #
###
>>> hourglass(7)
#######
 #####
  ###
   #
  ###
 #####
#######


# ÚKOL 6
# Napište funkci nonzero(matrix), která spočítá, kolik je v dané 2D matici
# nenulových hodnot.

>>> a = [[1, 2, 3],
         [4, 5, 6],
         [7, 8, 9]]
>>> b = [[0, 0, 1, 0, 0],
         [0, 0, 0, 1, 0],
         [1, 0, 0, 1, 0],
         [0, 1, 0, 0, 1]]
>>> print(nonzero(a))
9
>>> print(nonzero(b))
6


# ÚKOL 7
# Napište funkci frequent_name(text), která vypíše nejčastější slovo z
# textu, které začíná na velké písmeno a počet jeho výskytů.

>>> text = 'Je tomu už náramně dávno, tak dávno, že ani nebožtík starý Zelinka, dej mu pánbůh věčnou slávu, se na to nepamatoval, a ten přece se pamatoval i na mého nebožtíka tlustého pradědečka. Tak tedy je tomu už nesmírně dávno, co na horách Brendách panoval slavný a zlý loupežník Lotrando, mordýř ze všech nejukrutnější, se svými jednadvaceti pacholky, padesáti zloději, třiceti zlodějíčky a dvěma sty pomocníky, pašeráky a přechovávači. Tak ten Lotrando vám číhal u silnice třeba k Poříčí nebo ke Kostelci nebo i k Hronovu, až kolem pojede nějaký ten forman, kupec, žid nebo rytíř na koni; pak na něj vystoup, zařval a obral ho o všecko, a to ještě ten potrefený mohl být rád, že ho Lotrando nezapíchnul, nezastřelil nebo nepověsil na stromě. Takový vrahoun a nelida byl ten Lotrando. Jede si takový kupeček cestou, povídá koňům hyje a čehy a těší se, zač prodá v Trutnově to své zboží. A když jede lesem, má trochu strach před loupežníky, ale aby to nedal na sobě znát, píská si pěknou písničku. A najednou vystoupí z lesa chlap jako hora, širší než pan Šmejkal nebo pan Jahelka, ale ještě o dvě hlavy větší a k tomu fousatý, že si pro samé fousy do huby nevidí; tedy takové chlapisko se vám postaví před koně a zařve: “Peníze nebo život,” a zamíří na kupce pistolí širokou jako hmoždíř. To se ví, kupec dá peníze, a Lotrando mu sebere ještě k tomu i vůz i zboží i koně, ale i kabát, katě a holinky mu stáhne a ještě mu přidá pár bičem, aby se mu, chudákovi, lehčeji běželo domů. Jak říkám, nebyl ten Lotrando nic jiného nežli šibeničník.'
>>> print(frequent_name(text))
Lotrando, 6
