Alg 0. Dotazy k přednášce 1. Dotazy k recodexu - test driven: standardní chyby () a (ne)chybovost recodexu - test driven: testovací data recodexu nesdělujmeme, avšak je možné diskutovat, proč Vám konkrétní test nedopadl a optat se, kde je ve výstupu chyba 1.5 Konzultace, poznámka: před cvičeními v posluchárnách neprobíhá výuka (nebo je předchozí moje), a chodím (zpravidla) aspoň 20 minut dřív (i kvůli případným dopravním komplikacím) a sedím/pracuji v učebně, klidně využijte tento čas pro konzultace 2. Převody soustav Převeďte čísla ze zadaných výchozích soustav do cílových soustav ([číslo]_soustava): 2.1. [143]_10 do []_2 2.3. [143]_10 do []_3 a zpět 2.5. [0111010110110]_2 do []_10 2.7. [0111010110110]_2 do []_5 2.9. [0111010110110]_2 do []_3 2.11. [1B7E]_16 do []_10 2.13. [1B7E]_16 do []_2 4. Binární vyhledávání v setříděném poli - (idea) algoritmu vyhledat v setříděném poli na tabuli, prvek který: a) je obsažen, b) není obsažen, c) je obsažen a je krajní, d) není obsažen a je menší než nejmenší obsažený a symetricky - co vracíme? (při (ne)nalezení prvku) - trekování horní a dolní meze - podmínky zastavení - co nám "přináší" setřídení oproti nesetřízenému poli a co bere? (metafora a dílnou) Prg * range (revisited: range(n) vs range(a b) vs range(a b c)) * len() * string slicing * list, různé typy, délka listu, access [], list slicing, append, ... * chr, ord (pro domácí úkol) * (přístě) math, random, knihovny a moduly * std I/O: konzole, standardní vstup a výstup, přesměrování std vstupu a výstupu (cat) * (přístě) funkce, navratova hodnota, parametry, pojmenovane parametry, neznamy pocet param * (přístě) passing variable - reference, value 0.1. Napiste program, ktery precte slovo a vypise kazdy sudy znak (pomoci for cyklu a range). (for, range) 0.2. Napiste program, ktery precte slovo a vypise vše od 4. znaku do konce (pomoci for cyklu a range). (for, range) 0.3. Napiste program, ktery precte slovo a vypise ho pozpatku-reverzne (pomoci for cyklu a range). (for, range) 0.5. Napiste program, ktery precte slovo a vypise kazdy sudy znak (pomoci slicingu). (string slicing) 0.6. Napiste program, ktery precte slovo a vypise vše od 4. znaku do konce (pomoci slicingu). (string slicing) 0.7. Napiste program, ktery precte slovo a vypise ho pozpatku-reverzne (pomoci slicingu). (string slicing) 0.9. Napište program, který ověří, zdali zadaný (neprázdný konečný) string je palindrom. Pokud je string palindrom, vypíše "ano", pokud ne vypíše "ne". (string slicing, for cyklus, testování) (šlo by reverse string a porovnat s původním; zde udělejme přes for cyklus) 0.9.2 Navrhněte množinu testovacích dat pro testování programu testujícího polindrom :D 0.11. Napište program, který nalezne a vypíše, všechny číselné palindromy vzniklé součinem tří dvouciferných čísel. (string slicing a motivace k fci) 3. Vypočítejte hodnotu: cos(4) 4. Password gen Napište generátor náhodných hesel délky 12 znaků z abecedy a-zA-Z. (random, chr, ord, knihovny) 5. std IO: reverse line Napište program, který čte řádky ze std IO a vypisuje je pozpátku (reverzně). 5.2 prepend line number to lines and print Napište program, který čte řádky ze std IO, vytiskne na jeden řádek pořadí řádku a odpovídající obsah řádku (pořadí se přiloží na začátek řádky). Ex. pro vstup: Kde domov můj, kde domov můj? Voda hučí po lučinách, bory šumí po skalinách, v sadě skví se jara květ, zemský ráj to na pohled! A to je ta krásná země, země česká, domov můj, země česká, domov můj! vypíše: 1. Kde domov můj, 2. kde domov můj? 3. Voda hučí po lučinách, 4. bory šumí po skalinách, 5. v sadě skví se jara květ, 6. zemský ráj to na pohled! 7. A to je ta krásná země, 8. země česká, domov můj, 9. země česká, domov můj! 5.3 zkuste si poslat programu data ze souboru na standardni vstup a vypsat do konzole cat inputDataFile.txt | python skript.py 5.4 zkuste si poslat programu data ze souboru na standardni vstup a vypsat do souboru cat inputDataFile.txt | python skript.py >> outputFile.txt vs. cat inputDataFile.txt | python skript.py > outputFile.txt 6. std IO: sum number