Table of Contents

Cvičení 8, Fronta, zásobník

náplň cvičení

Úkol 1 Inverzní permutace

Úkol 2: třídění karet

Uvažujme hrací karty .

Napište funkci, který vzestupně třídí karty podle jejich barvy a podle jejich hodnoty.

cards = [  [3,"A"],  [3,"Q"],  [0,"2"],  [1,"10"]  ]

výsledek pro setřídění:

[  [0, "2"],  [1, "10"],  [3, "Q"],  [3, "A"]  ]

Seřaďte toto pole:

cards = [[0, 'Q'], [2, '6'], [1, 'K'], 
         [1, '8'], [2, '10'], [2, '4'], 
         [3, '4'], [0, '4'], [1, '3'], 
         [2, '5'], [0, 'K'], [3, 'A'], 
         [1, 'J'], [0, '3'], [0, '9']]

Úloha 3 Dekódování zprávy

TE*A*QYS***SEU****NI*O**

Úloha 4 Flood fill

m=[
[0,0,1,0,0,1,0,0,0,0],
[0,0,1,0,0,1,0,0,0,0],
[0,0,1,1,0,1,0,0,0,1],
[0,0,1,0,0,0,1,0,1,0],
[0,0,1,0,0,0,0,1,0,0],
[0,0,1,1,0,1,0,0,0,0],
[0,0,1,0,1,1,1,1,0,0],
[0,0,1,0,0,1,0,1,1,1],
[0,0,1,0,0,1,0,0,0,0],
[0,0,1,0,0,1,0,0,0,0] ]

domácí práce

Lehká varianta

* Napište program assemble.py, který si ze souboru se jménem zadaným jako první argumentu na příkazové řádce, přečte rozměr pole a díly, kterými má to pole zaplnit

5 5
 0  0 0 0 0
 0  0 0 0 0
 0  0 0 0 0
-1  0 0 0 0
-1 -1 0 0 0
2 2 2 1 2 0 1 0 0 0 0 1
0 0 0 1 1 1 2 1 2 0 2 2
3 0 3 1 2 1 1 1 0 1
0 0 0 1 0 2 1 1 2 1

Příklad dílku 1:

2 2 2 1 2 0 1 0 0 0 0 1

souřadnice 
y

2  *
1* *
0***
 012 souřadnice x

Graficky znázorněné všechny dílky

1: 2: 3: 4:

program vytiskne:

4 3 3 3 3
4 4 4 2 3
4 2 2 2 1
-1 2 1 2 1
-1 -1 1 1 1

Nápověda možného řešení:

Těžká varianta

Vstup:

Výstup:

Příklad:

3 + 4 * 2 / ( 1 - 5 )

t1:=4*2
t2:=1-5
t3:=t1/t2
t4:=3+t3

Příklad:

(1+2)*(3+4)/(5+6)

t1:=1+2
t2:=3+4
t3:=t1*t2
t4:=5+6
t5:=t3/t4

Příklad:

1+2/(*4+5)

ERROR