od mmrmartin » 15. 7. 2016 16:11
Pro další generace
a pro procvičení ke zkoušce sem dávám příklady, co nám zadával Kryl na cvičení. Přišly mi docela užitečný, ale jsou pracnější...
- Prolog: Rozdělte seznam na 5 částí, tak aby se délka seznamů lišila nejvýše o jeden prvek.
Kód: Vybrat vše
% rozdel(+Seznam, -S1, -S2, -S3, -S4, -S5):- rozdeli seznam na skoro
% stejne casti (+/-1), |Seznam| >= 5
Pořadí prvků v seznamu by mělo být zachováno.
- Prolog: Transponujte matici
Kód: Vybrat vše
%trans(+Mat, -Trans):- Transponuje matici
- Prolog: Napište QuickSort v Prologu.
- Prolog: Vypište seznam uzlů ve stromu a seřaďte je podle vzdálenosti od nejbližšího listu.
Kód: Vybrat vše
% demo strom
d(t(
t(nill,a,nill),
b,
t(
nill,
c,
t(
nill,
d,
t(
t(
t(nill,e,nill),f,nill),
g,
t(nill,h,nill)
)
)
)
)).
- Prolog: Naprogramujte procedury, které realizují převody mezi dvěma reprezentacemi permutací čísel 1..N
Kód: Vybrat vše
% p(N,Vektor obrazů)
% c(N,Seznam netriviálních cyklů)
Příklad:
a reprezentují stejnou permutaci
identita na 4 prvních je reprezentována jako
a
- Prolog: Kompletní program, který pomocí dijkstrova algoritmu umí odpovídat na otázky
Kód: Vybrat vše
nejkrcesta(+STart,+cíl, -Delka, -NejkrCesta)
nejkrcesty(+Strat, -SseznamNejkratšíchCestSDelkamiDoVsechDostupnýchVrcholu)
Včetně vstupu ze souboru a výstupu do souboru
- Hascel: Derivace a n-tá derivace mocninné řady
- Hascel: Listy binárního stromu odleva do prava bez konkatenace
- Hascel: Reprezentujte řídkou matici pomocí typu
Kód: Vybrat vše
data Mat = M Int Int [ (Int,Int,Float0 ]
Význam: počet řádek, počet sloupců, seznam nenulových členů (i,j, aij) řádek i, sloupec j, hodnota aij
uspořádaný podle i a potom podle j
Naprogramujte transpozici a pomocí ní násobení řídkých matic
Pro další generace :-) a pro procvičení ke zkoušce sem dávám příklady, co nám zadával Kryl na cvičení. Přišly mi docela užitečný, ale jsou pracnější...[line][/line]
[list=1]
[*] [u]Prolog:[/u] Rozdělte seznam na 5 částí, tak aby se délka seznamů lišila nejvýše o jeden prvek.[code]
% rozdel(+Seznam, -S1, -S2, -S3, -S4, -S5):- rozdeli seznam na skoro
% stejne casti (+/-1), |Seznam| >= 5
[/code] Pořadí prvků v seznamu by mělo být zachováno.
[*] [u]Prolog:[/u] Transponujte matici[code]
%trans(+Mat, -Trans):- Transponuje matici
[/code]
[*] [u]Prolog:[/u] Napište QuickSort v Prologu.
[*] [u]Prolog:[/u] Vypište seznam uzlů ve stromu a seřaďte je podle vzdálenosti od nejbližšího listu.[code]
% demo strom
d(t(
t(nill,a,nill),
b,
t(
nill,
c,
t(
nill,
d,
t(
t(
t(nill,e,nill),f,nill),
g,
t(nill,h,nill)
)
)
)
)).
[/code]
[*] [u]Prolog:[/u] Naprogramujte procedury, které realizují převody mezi dvěma reprezentacemi permutací čísel 1..N [code]
% p(N,Vektor obrazů)
% c(N,Seznam netriviálních cyklů)
[/code]
[i]Příklad:[/i]
[code]p(6,[3,5,1,2,4,6])[/code] a [code]c(6,[ [1,3], [2,5,4] ])[/code] reprezentují stejnou permutaci
identita na 4 prvních je reprezentována jako
[code]p(4,[1,2,3,4])[/code] a [code]c(4,[]).[/code]
[*] [u]Prolog:[/u] Kompletní program, který pomocí dijkstrova algoritmu umí odpovídat na otázky
[code]nejkrcesta(+STart,+cíl, -Delka, -NejkrCesta)
nejkrcesty(+Strat, -SseznamNejkratšíchCestSDelkamiDoVsechDostupnýchVrcholu)
[/code]Včetně vstupu ze souboru a výstupu do souboru
[*] [u]Hascel:[/u] Derivace a n-tá derivace mocninné řady
[*] [u]Hascel:[/u] Listy binárního stromu odleva do prava bez konkatenace
[*] [u]Hascel:[/u] Reprezentujte řídkou matici pomocí typu
[code]data Mat = M Int Int [ (Int,Int,Float0 ][/code]
[i]Význam:[/i] počet řádek, počet sloupců, seznam nenulových členů (i,j, a[sub]ij[/sub]) řádek i, sloupec j, hodnota a[sub]ij[/sub]
uspořádaný podle i a potom podle j
Naprogramujte transpozici a pomocí ní násobení řídkých matic[/list]