od - » 2. 6. 2011 19:40
Pre tych co nevedeli co znamena pojem "lahke technicke priklady".
PROLOG
1. Sifra vyzera tak, ze text poukladate do matic 4x4, napr chcem sifrovat "ahoj ako sa mas"
ahoj
_ako
_sa_
mas_
Dlhsi text by siel na viac takych matic, posledna doplnena napr _.
Potom mame mriezku, ktoru akoby polozime na tie matice a ona ma 4 diery, cize vidime 4 pismena, otocime mriezku o 90 vpravo a vidime dalsie 4 atd kym mame celu jednu maticu. Ulohou je napisat predikat co takto sifruje desifruje a este zisti ci je ta mriezka ok.
Riesenie - hlavne predpokladat ze text je dlhy a netocit mriezku stale, ale len si pripravit 4 polohy. Idealne vyuzit neuplne datove struktury aby ten predikat rovno fungoval obojstranne.
2. Vypustit z BVS prvky nepatriace intervalu <A,B>
Riesenie je lahke, vyuzit vlastnosti BVS a je to.
HASKELL
3. Definovat datovy typ pre orientovany graf ktory ma vrcholy identifikovane jednoznacnym intom a este maju nejaky string na sebe. Napisat fciu ktora vrati vsetky vrcholy s ich vzdialenostami od zadanej startovacej mnoziny - prehladavanie do sirky.
data Node = Node NodeID String [Node]
type NodeID = Int
type Graf = [Node]
vzdialenosti :: Graf -> [NodeID] -> [(NodeID,Vzdialenost)]
dalej by to malo byt ok.
4. Vypisat zoznam prvociselnych delitelov cisla v tvare [(prvocislo,nasobnost)]
Urobit efektivne, tj eratostenovo sito plus algoritmus nejak rozumne.
Tak. Na to boli dve hodiny a dalo sa to vymysliet, ale je potrebne to mat dotiahnute aj syntakticky. Resp, mat spravny postup nestaci.
Co sa tyka velkeho prikladu k tomu sa nebudem vyjadrovat. Snad len niekolko rad. Hlavne vymysliet algoritmus a popisat ho slovne. Potom by stacili nejake kusy kodu, cele sa to aj tak neda. V principe je to fakt rovnake ako na skuske Programovani II, lenze o pol hodinu menej.
Dalsie tipy:
1. na ustnu cast si so sebou vezmite stvorlistok, podkovu a ine talizmany pre stastie.
2. ak dostanete na ustej dodatocny priklad, poriadne si ho rozmyslite, cas mate, skuste akoby odtraceovat co to robi. moze vas to stat zivot.
3. rozdielove zoznamy - prevod tam a naspat, pan doktor Kryl to ma v skriptach.
4. ked sa pripravujete stylom, ze ulohy pisete na pocitaci, pustite, zistite ze to robi nieco ine, opravite drobnu chybu a zase pustite, skrtnite si najblizsi termin, zmente metodu a skuste rovno ten dalsi.
PS. nie je to tazke, len sa treba sustredit a mat nieco natrenovane.
Pre tych co nevedeli co znamena pojem "lahke technicke priklady".
PROLOG
1. Sifra vyzera tak, ze text poukladate do matic 4x4, napr chcem sifrovat "ahoj ako sa mas"
ahoj
_ako
_sa_
mas_
Dlhsi text by siel na viac takych matic, posledna doplnena napr _.
Potom mame mriezku, ktoru akoby polozime na tie matice a ona ma 4 diery, cize vidime 4 pismena, otocime mriezku o 90 vpravo a vidime dalsie 4 atd kym mame celu jednu maticu. Ulohou je napisat predikat co takto sifruje desifruje a este zisti ci je ta mriezka ok.
Riesenie - hlavne predpokladat ze text je dlhy a netocit mriezku stale, ale len si pripravit 4 polohy. Idealne vyuzit neuplne datove struktury aby ten predikat rovno fungoval obojstranne.
2. Vypustit z BVS prvky nepatriace intervalu <A,B>
Riesenie je lahke, vyuzit vlastnosti BVS a je to.
HASKELL
3. Definovat datovy typ pre orientovany graf ktory ma vrcholy identifikovane jednoznacnym intom a este maju nejaky string na sebe. Napisat fciu ktora vrati vsetky vrcholy s ich vzdialenostami od zadanej startovacej mnoziny - prehladavanie do sirky.
data Node = Node NodeID String [Node]
type NodeID = Int
type Graf = [Node]
vzdialenosti :: Graf -> [NodeID] -> [(NodeID,Vzdialenost)]
dalej by to malo byt ok.
4. Vypisat zoznam prvociselnych delitelov cisla v tvare [(prvocislo,nasobnost)]
Urobit efektivne, tj eratostenovo sito plus algoritmus nejak rozumne.
Tak. Na to boli dve hodiny a dalo sa to vymysliet, ale je potrebne to mat dotiahnute aj syntakticky. Resp, mat spravny postup nestaci.
Co sa tyka velkeho prikladu k tomu sa nebudem vyjadrovat. Snad len niekolko rad. Hlavne vymysliet algoritmus a popisat ho slovne. Potom by stacili nejake kusy kodu, cele sa to aj tak neda. V principe je to fakt rovnake ako na skuske Programovani II, lenze o pol hodinu menej.
Dalsie tipy:
1. na ustnu cast si so sebou vezmite stvorlistok, podkovu a ine talizmany pre stastie.
2. ak dostanete na ustej dodatocny priklad, poriadne si ho rozmyslite, cas mate, skuste akoby odtraceovat co to robi. moze vas to stat zivot.
3. rozdielove zoznamy - prevod tam a naspat, pan doktor Kryl to ma v skriptach.
4. ked sa pripravujete stylom, ze ulohy pisete na pocitaci, pustite, zistite ze to robi nieco ine, opravite drobnu chybu a zase pustite, skrtnite si najblizsi termin, zmente metodu a skuste rovno ten dalsi.
PS. nie je to tazke, len sa treba sustredit a mat nieco natrenovane.