BME Villamosmérnöki és Informatikai Kar
Műszaki informatika szak |
Nappali tagozat
2000. őszi félév
|
A kis házi feladat beadása nem kötelező.
A programot tömörítve, elektronikus levélben kell beküldeni. A
beküldéshez egy bash
szkriptet kell használni. A szkriptet futtatni
a
bash dpkhfbe.00aparanccsal lehet (feltéve, hogy ezen a néven mentettük el).
Figyelem! Az ural2
szerveren a /usr/local/bin
könyvtárban található a bash
program.
A szkript elindulaskor elmagyarázza a teendőket (mi legyen az adott könyvtárban, milyen néven stb.). Mielőtt valaki hibára panaszkodna, győződjön meg róla, hogy a hiba az ural2.hszk.bme.hu szerveren is reprodukálható.
A programok készülhetnek MS DOS vagy MS Windows alatt is, de Unix (linux) operációs rendszer alatt is működniük kell.
A segédeljárásokat feltétlenül lássa el fejkommenttel!
Törekedjék arra, hogy a megoldás hatékony legyen (az eljárások legyenek jobbrekurzívak, append-et, reverse-et ne használjon)! Vigyázzon arra is, hogy a megoldás ne sikerüljön többszörösen! Ha a megadott blokk nem letezik, hiúsuljon meg!
% :- matrix(T) == list(row(T)). % :- type row(T) == list(T). % :- type slice == int-int. % zero-based indexing, inclusive intervals % block(Mátrix, Sorok, Oszlopok, Blokk): a Mátrix mátrix egy blokkja, amelyet % a Sorok pár és az Oszlopok pár határoz meg. % :- pred block(matrix(T)::in, slice::in, slice::in, matrix(T)::out).
| ?- block([[1,2,3],[4,5,6]], 1-2, 0-2, B). no {source_info} | ?- block([[1,2,3],[4,5,6]], 0-1, 1-2, B). B = [[2,3],[5,6]] ? ; no {source_info} | ?- block([[1,2,3],[4,5,6]], 0-3, 1-2, B). no {source_info} | ?- block([[1,2,3],[4,5,6]], 0-0, 0-0, B). B = [[1]] ? ; no | ?-
Törekedjék arra, hogy a megoldás hatékony legyen (az eljárások legyenek jobbrekurzívak, @-ot, rev-et ne használjon)! Ha a megadott blokk nem letezik, dobjon kivételt!
type 'a row = 'a list type 'a matrix = 'a row list type slice = int * int (* zero-based indexing, inclusive intervals *) (* block (matrix, sorok, oszlopok) = a matrix mátrix egy blokkja, amelyet a sorok pár és az oszlopok pár határoz meg. block: 'a matrix * slice * slice -> 'a matrix *)
- block([[1,2,3],[4,5,6]], (1,2), (0,2)); ! Uncaught exception: ! Subscript - block([[1,2,3],[4,5,6]], (0,1), (1,2)); > val it = [[2, 3], [5, 6]] : int list list - block([[1,2,3],[4,5,6]], (0,3), (1,2)); ! Uncaught exception: ! Subscript - block([[1,2,3],[4,5,6]], (0,0), (0,0)); > val it = [[1]] : int list listFigyelem! A hibás híváskor keletkező kivétel akármi lehet, nem kell pont Subscript-nek lennie.
khf-pl1.pl
néven, az SML megoldást khf-ml1.sml
néven,
külön-külön kell beküldeni.
A beadási határidő 2000. december 1., péntek, 24:00
óra.
A vizsgaosztályzat megállapításakor a határidőre beadott, helyesen megoldott kis házi feladatért plusz 1 pont jár (a 100 pontból).