Search
a='b\'c#d' #e i="j\"k'l#m" #n
def preskoc_komentare(line): # vytiskne obsah souboru 'f' s vynechanymi komentari stav=0 # počáteční stav automatu for c in line: # přečti jeden znak if stav==0: # počáteční stav if c=="#": # začátek komentáře stav=1 continue elif c=='\"': stav=2 # začátek řetězce elif stav==1: # 1="komentar" continue elif stav==2: if c=='\"': stav=0 print(c,end="") # vytiskni znak i=input() preskoc_komentare(i) # nacti radku a preskakuj
floatnumber ::= pointfloat | exponentfloat pointfloat ::= [intpart] fraction | intpart "." exponentfloat ::= (intpart | pointfloat) exponent intpart ::= digit+ fraction ::= "." digit+ exponent ::= ("e" | "E") ["+" | "-"] digit+ digit ::= "0"..."9"
aa[bb(cc)dd(ee)fff[gggg]]hhh
()cc ()ee []gggg []bbddfff
Mějme tři nádoby o objemu 2, 5, 9. S nádobami můžeme provádět následující akce:
Napište program, který najde nejrychlejší způsob, jak získat v poslední nádobě objem 6. Nejrychlejší znamená s nejmenším počtem kroků.
class Person: def __init__(self, name, sex): self.name = name self.sex = sex self.children = [] self.parents = [] # parents of this node self.partner = None # partner (=husband/wife of this node) def addChild(self, node): self.children.append(node) def addParent(self, node): self.parents.append(node) def setPartner(self, node): self.partner = node def __repr__(self): s = "Female" if self.sex == 'F' else "Male" return self.name + " " + s
Vstupní soubor family.txt:
M Jana Jan F M P Jana Martin F M P Jana Robert F M P Robert Gabriel M M P Robert Oleg M M P Robert Ondrej M M P Martin Jiri M M P Martin Rudolf M M P Jan Petra M F P Jan Uxana M F P Uxana Klara F F P Uxana Jakub F M P Uxana Adam F M P Petra Alex F M P A C M M P A D M F P D K F F P C J M M P C I M F P C H M M P B E F F P B F F M P B G F F
Schéma rodiny ve family.txt:
Uložení načtených dat do ' Dot ' souboru, který lze pak vykreslit do png nástrojem dot z balíku nástrojů Graphviz:
dot -Tpng family.dot > family.png
Příklad family.dot:
digraph G { Jana[ color=red]; Jana->Martin [label="child"]; Jana->Robert [label="child"]; Jana->Jan[color=blue; penwidth=4]; Jan[ color=green]; Jan->Petra [label="child"]; Jan->Uxana [label="child"]; Jan->Jana[color=blue; penwidth=4]; Martin[ color=green]; Martin->Jiri [label="child"]; Martin->Rudolf [label="child"]; Martin->Jana [style=dashed]; ... }
Znalosti k vyřešení následujících úloh budou postupně rozebírány na cvičeních, proto je termín odevzdání úloh až do konce semestru.
Hlavolamy jsou inspirovány hrami pro Android Can you escape the 100 room I-XII, kde najdete plno podobných zajímavých hlavolamů.
1 0 1 0 0 0 1 1 1 0 1 1
1 0 0 0 0 0 1 1 0 1 1 1
(0,m)(1,m)
Vstup programu je:
1 0 1 0 0 0 1 0 1 1 1 1
Výstupem programu bude řádka:
(1,p)
1 1 1 0 0 0 1 0 1 1 1 0
(1,p)(0,m)
1 0 1 1 0 1 1 1 1 0 0 0
(0,m)(1,p)(1,p)(0,p)(1,p)(0,p)
1 2 0 0 0 0 1 1 0 2 1 1 1 2 2 2 2 0
1 2 2 0 0 0 1 0 2 1 1 1 0 2 1 2 2 0
0 1 2 1 0 0 0 1 2 1 0 2 1 1 1 2 2 1
(0,m)(1,m)(1,m)
2 0 1 2 1 1 2 2 1 0 0 1 2 0 0 0 2 2
(2,m)(0,p)(1,m)(0,p)(0,p)(2,m)(0,p)