Domaci Ukol
Nebojte, nezapomnel sem na vas, ale doslo mi ze se ted asi mesic neuvidime… Takze vydechnete, zkuste si v tom volnu nacist ty skripta, at tusite ktera bije a jakym smerem a nekdy ke konci toho volna se tu objevi mozna malej domaci ukol, takze sledujte co se bude dit… (aspon si zapamatujete vcasnym hledanim adresu)
Zlomky (a tridy)
Takze po dlouhy dobe delali;-)
A co budete delt vy pripominam domaci ukol, a cekam ho vsichni udelate!!, a to dopsat ty tri metody na odcitani, nasobeni a deleni zlomku.
A tady jsou zdrojaky:
zlomky.py
zlomky.html
Pres prazdniny
Prvne pardon ze to posilam az ted, ale berte to z lepsi stranky, aspon jsem vam nezkazil prazdniny;-) Nejdriv klasicky co jsme delali na hodine:
A ted ukol. Nepovinny ukol je v tom co jsme delali na hodine. Povinny ukol je tady:
1) Napiste funkci, ktera vrati nejvetsi cislo ze seznamu. Tedy napriklad ze seznamu 2 3 4 1 5 3 je to 5tka.
2) Napiste funkci, ktera vrati nejpocetnejsi prvek ze seznamu. Tedy ze seznamu 2 3 2 3 4 3 je to trojka.
PS: pekne prosim, pokud jsem vam slibil ze vam neco poslu, napiste mi jeste maila ze sem na to zapomnel at v tom mam poradek a muzu hned odpovedet… ;-) Dik moc, P.
Co bylo dneska a ukoly
Takze nejdriv co bylo dneska:
A ted ukol(y):-) Nebojte neni to nic narocnyho…
1) napiste funkci find(seznam,prvek), ktera vrati index prvku v seznamu pokud prvek v seznamu je a -1 kdyz v seznamu prvek neni
2) napiste funkci swap(seznam,index1,index2), ktera prohodi 2 prvky v seznamu na indexech index1 a index2
3) Upravte funkci cifry(cislo) tak, aby vracela seznam cifer, ale ve spravnem poradi. Tedy cifry(456) vrati seznam [4,5,6].
U vsech ukolu muzete pouzit samozrejme funkce co uz jsme nekdy delali (musite je ale opsat do stejnyho souboru, jinak to nebude fungovat – muzete totiz pouzivat jen funkce ze stejneho souboru).
Tak hodne stesti;-)
PS: Neposilejte kod, kterej se vam nepodarilo ani spustit bez informace o tom, ze vam nejde spustit a proc si myslite ze to nejde.
Dnesni hodina + ukol
Takze, tady mate odkaz na okomentovane kody z dnesni hodiny. Poradne si je prectete… Cim driv tim lip:
Kod v Pythonu
Obarveny kod pro prohlizec
A tady jsou domaci ukoly: Upozornuju, ze chci, abyste se na ne koukli uz pres vikend, zkusili neco udelat a poslat mi na mail klidne s dotazy, behem soboty a nedele… Pokud to nebudete schopni napsat v Pythonu, zkuste aspon napsat ten algoritmus cesky.
1) Prepiste funkci z minuly hodiny na zjisteni vsech cifer cisla tak, aby nic nevypisovala, ale aby vratila seznam, ve kterym budou ty jednotlivy cifry zapsany. Tedy z 456 udela [6,5,4].
2) Napiste funkci, ktera si vrati seznam, ktery bude obsahovat sjednoceni dvou seznamu. Pozor tady ale na to, ze prvek, ktery je v seznamu 1 i v seznamu 2 se musi ve vysledku objevit jen jednou. Pro zjednoduseni muzete pocitat ze zadny prvek ve vstupnich seznamech se nevyskytuje 2x. Takze napriklad sjednoceni [1,2,3] a [2,4,6] je [1,2,3,4,6].
3) Napiste funkci insert, ktera do seznamu vlozi prvek na zadanou pozici. U tehle funkce vam ukazu, jak ma vypadat hlavicka:
def insert(seznam,index,prvek):
""" Vlozi do seznamu na index dany prvek. """
Mozna jste si vsimli, ze takovahle funkce uz v Pythonu existuje, samozrejme ji ale nemuzete pouzit. Mate ale append a muzete libovolne menit hodnoty jakychkoli prvku v seznamu, coz berte jako malou napovedu, jak to udelat.
Takze piste a pracujte a vytvarejte.
Napoveda k domacimu ukolu
Ok, takze napoveda pro ty z vas co se tim vazne zabyvaji:
Kdyz mate nejaky cislo v desitkovy soustave, treba 211 ;-) tak kolik je cifra na pozici jednicek? To je 211 % 10 (% je zbytek po deleni, jak byste meli vedet;-). Kdyz se chcete dostat na dalsi cifru, staci cislo vydelit 10ti… Tim ho jakoby posunete o cifru doprava. Takze u 123 treba: 123 % 10 je 3, proto posledni cifra je 3, 123/10 je 12 a 12 % 10 je 2, takze predposledni cifra je 2 a 12 / 10 je 1 a 1 % 10 je 1 takze treti cifra je 1. a 1 / 10 je 0, takze konec. To je cely, ted to jen napiste do Pythonu.
Co se domecku tyce, je to proste jen o tom napsat forcyklus co pricita hvezdicky do nejakyho stringu co pak vytisknete, zjednodusene receno. Pokud je domecek prilis, zkuste udelat treba jen ctverec o zadany velikosti.
A obecna rada: Priste zkuste ukoly delat uz o vikendu, kdyz nebudete vedet, tak napiste hned v pondeli, protoze mam sanci vam odpovedet vcas;-) Tedy tak, abyste stihli si to jeste spravit a odevzdat ok…
PS: Ukoly poslete v takovym stavu do jakyho je dotahnete, idealne s nejakym komentarem kde treba zminite co vam nejde a kam jste to dotahli a tak… Mam pak sanci videt na co se mame zamerit…
Dnesek a ukol (i pro kluky)
Takze v priloze uz klasicky najdete okomentovanej kod, co jsme delali dneska. Pripominam, ze domaci ukoly sou povinny. (i pro kluky) kdo je neodevzda, nebo se o to alespon nepokusi (kdyz poslete na cem jste delali a napisete proc to nejde dal, je to lepsi nez nic) tak bude psat osobni pisemku. A myslim to smrtelne vazne, protoze casu na to uz budete mit dost a dost. Takze programujte a trenujte…
A domaci ukol:
- Napiste funkci, co mi vypise po sobe cifry cisla od ty s nejmensi vahou po tu s nejvetsi vahou… Tedy kdyz ji zadam treba 5671, tak vypise:
1
7
6
5 - Napiste funkci, ktera nakresli domecek z hvezdicek (vzpomente si, co jsme delali na prvnich hodinach, zapatrejte v pameti a zkuste to;-). Napriklad funkce s parametrem 5 udela tohle:
*
***
*****
* *
* *
* *
*****
Pisemka pristi hodinu
Takze co bude v pisemce. Budou tam dva priklady,prvni bude napsat nejakou jednoduchou funkci a ukazat jeji pouziti (nezapomente napsat napovedu k funkci v trojuvozovkach) a druhy bude, ze napisu nejakej program a vy mi napisete co dela.
Priklad pisemky muze vypadat treba takhle:
Ukol 1: Napiste funkci, ktera mi zjisti jestli 2 zadana cisla jsou soudelna (jedno deli druhe bezezbytku). Pokud ano, vrati True, pokud ne, vrati False.
Ukol 2: Podivejte se na nasledujici program. Zajimaji me nasledujici veci:
- Kolik bude stuff(5,3) (funkce na radku 01)
- Kolikrat probehne cyklus while v hlavnim programu (radek8 a dal)
- Jaka bude konecna hodnota promenne x v hlavnim programu (co vypise radek 11)
- Jaka bude konecna hodnota promenne d v hlavnim programu (co vypise radek 12)
01 def stuff(x,y):
02 """Co dela tahle funkce vam nepovim. """
03 x=x+y
04 return x+y
05
06 x=1
07 d=1
08 while (x<10):
09 x=stuff(x,d)
10 d=d+1
11 print x
12 print d
Vyreseni tyhle pisemky najdete v komentari, fak vam doporucuju na nej hned nekoukat, zkusit se to nejdriv naucit a udelat si tu pisemku sami a az pak to zkouknout s vysledkem. Limit na tuhle pisemku bude 40 minut, ani o minutu vic.