Príklady z LISPu

Číslo pred príkladom označuje úroveň obtiažnosti (1, 2, 3).

PREDIKÁTY
---------
1  Test, či sa zoznam skladá len z atómov na najvyššej úrovni

1  Test, či má zoznam párny počet prvkov (nepoužívať funkciu
   LENGTH)

1  Test, či má zoznam nepárny počet prvkov (nepoužívať funkciu
   LENGTH)

1  Predikát na hľadanie aspoň jedného z dvoch zadaných prvkov na
   najvyššej úrovni v zozname

1  Predikát na hľadanie dvoch zadaných prvkov na najvyššej
   úrovni v zozname (musia sa vyskytovať oba súčasne)

1  Test, či daný zoznam obsahuje iba čísla, na najvyššej úrovni

1  Predikát (POROVNAJ zoznam význačný-prvok) na zistenie
   zhodnosti častí zoznamu naľavo a napravo od význačného-prvku

1  Test či zadaný zoznam reprezentuje postupnosť trojíc čísel
   ((1 2 4)(5 2 7)....) (nepoužívajte funkciu LENGTH)

1  Test či zadaný s-výraz predstavuje aritmetický výraz:
   * každé číslo je aritmetický výraz
   * ak a1, a2 sú aritmetické výrazy, aj trojprvkové zoznamy
     (a1 + a2) (a1 - a2) (a1 * a2) (a1 div a2) sú aritmetické
   výrazy

POČET
-----
1  Funkcia, ktorá vráti počet tých prvkov zoznamu, ktoré sú
   číslami na najvyššej úrovni v zozname

1  Vráti počet atómov v zadanom zozname na najvyššej úrovni

1  Funkcia (POCITAJ-PRVKY zoznam význačný-prvok), ktorá vráti
   zoznam dvoch čísiel. Prvé číslo je počet prvkov naľavo od
   význačného-prvku, druhé napravo

1  Funkcia vráti počet prvkov najdlhšieho podzoznamu zadaného
   zoznamu na najvyššej úrovni

1  Funkcia vráti počet prvkov zoznamu čísel, ktoré sú menšie ako
   daná dolná hranica a väčšie ako daná horná hranica

PRVOK ZOZNAMU
-------------
1  Minimálny prvok postupnosti čísel

1  Maximálny prvok postupnosti čísel

1  Predposledný prvok

1  Funkcia, ktorá vráti n-tý CDR zoznamu. Ak n je 0 tak vráti
   pôvodný zoznam (NTHCDR 2 '(a b c d)) --> (c d)

1  Funkcia vráti taký prvok postupnosti čísel, ktorý je menší
   ako zadané číslo a zároveň najväčší zo všetkých takýchto
   čísel

1  Funkcia vráti taký prvok postupnosti čísel, ktorý je väčší
   ako zadané číslo a zároveň najmenší zo všetkých takýchto
   čísel

1  Napíšte vlastnú verziu funkcie  GET (MY-GET). Použite funkciu
   SYMBOL-PLIST

POLE
----
1  Pozícia daného prvku v poli, ktoré sa reprezentuje
   postupnosťou postupností, kde jednotlivé prvky na najvyššej
   úrovni predstavujú riadky poľa

1  Prvok poľa určený zadanými súradnicami x a y. Pole sa
   reprezentuje postupnosťou postupností, kde jednotlivé prvky
   na najvyššej úrovni predstavujú riadky poľa

1  Funkcia, ktorá vráti rozmer zadaného dvojrozmerného pola
   (x y). Pole sa reprezentuje zoznamom, ktorého prvky sú
   zoznamy (riadky pola)

TABUĽKA
-------
1  Nech S je postupnosť dvojíc, t.j. má tvar
   ((a1 . b1) (a2 . b2) ... (an . bn)). Definujte funkciu
   (ASSOC x S) tak, že vracia prvé bi, pre ktoré x = ai

1  Test, či sa v zozname tvaru ((a1 . b1)(a2 . b2)...(an . bn))
   nachádza na mieste ľavej časti niektorej bodka dvojice zadaný
   prvok

MNOŽINA
-------
1  Funkcia podmnožina, ktorá vráti T ak sa všetky s-výrazy
   nachádzajúce sa v zadanom zozname na najvyššej úrovni
   nachádzajú v druhom zadanom zozname

INÉ
---
1  Funkcia, ktorá indikuje miesto výskytu prvej nuly v zozname,
   ak sa nula v zozname nenachádza vráti NIL

1  Pozícia daného kľúča v zozname ((k1 . b1)...(kn . bn))

1  Definujte funkciu pre sčítanie čísiel, ak predpokladáme, že
   náš funkcionálny jazyk pozná iba funkcie ADD1 (inkrementácia)
   a SUB1 (dekrementácia)

1  Definujte funkciu násobenia dvoch čísiel, ktorá vystačí
   s funkciami + a SUB1

1  Funkcia, ktorá vráti súčet všetkých čísel od N po M

1  Výpočet súčtu štvorcov rozdielov jednotlivých prvkov dvoch
   zadaných postupností

1  Funkcia, ktorá vypíše na obrazovku maticu znakov '*', rozmery
   matice sa zadajú na vstupe

POLE
----
2  Nahradí prvok poľa určený súradnicami x,y zadaným prvkom.
   Pole sa reprezentuje postupnosťou postupností, kde jednotlivé
   prvky na najvyššej úrovni predstavujú riadky poľa

2  Funkcia vytvorí pole rozmerov x a y s počiatočnými hodnotami
   0. Pole je reprezentované postupnosťou postupností, kde
   jednotlivé prvky na najvyššej úrovni predstavujú riadky poľa

TABUĽKA
-------
2  Funkcia vráti zoznam (k1 k2 ...kn), ktorý vytvorí zo zadaného
   zoznamu  ((k1 h1)(k2 h2)....(kn hn))

2  Funkcia, ktorá zruší taký prvok zo zoznamu v tvare
   ((k1 . h1) ... (kn . hn)), ktorého ľavá časť je zhodná so
   zadaným s-výrazom

MNOŽINA
-------
2  Vloží do usporiadanej postupnosti čísel zadané číslo tak, aby
   ostalo zachované usporiadanie. V prípade, že sa také číslo už
   v postupnosti nachádza vráti nezmenenú postupnosť (nepoužívať
   funkciu MEMBER)

2  Zlúči dve usporiadané postupnosti čísel do usporiadanej
   postupnosti, pričom nie je povolený viacnásobný výskyt prvkov

2  Funkcia zruší z neusporiadanej postupnosti čísel minimum
   a vráti novú postupnosť

2  Funkcia zruší z neusporiadanej postupnosti čísel maximum
   a vráti novú postupnosť

INÉ
---
2  Funkcia, ktorá  vráti prvky zadaného zoznamu  čísel, ktoré sú
   menšie ako daná dolná hranica a väčšie ako daná horná hranica

2  Všetky prvky zoznamu okrem posledného prvku

2  Pripojí prvok na koniec zoznamu

2  Pridá daný s-výraz za n-tý prvok zoznamu

2  Zruší n-tý prvok zoznamu

2  Prvých K prvkov zoznamu

2  Posledných K prvkov zoznamu

2  Funkcia, ktorá vynechá prvých K prvkov zoznamu

2  Postupnosť M-tého až N-tého prvku zadaného zoznamu

2  Nový zoznam bez prvého a posledného prvku

2  Vloží do usporiadanej postupnosti čísel zadané číslo tak, aby
   ostalo zachované usporiadanie

2  Zoznam párnych výskytov prvkov  (t.j. vržáti druhý, štvrtý,...
   prvok zo zadaného zoznamu)

2  Zoznam nepárnych výskytov prvkov  (t.j. vráti prvý, tretí,...
   prvok zo zadaného zoznamu)

2  Funkcia  vráti  zoznam,  ktorý  vznikne  odstránením všetkých
   výskytov zadaného prvku na najvyššej úrovni

2  Funkcia vráti zoznam, ktorý vznikne zámenou všetkých výskytov
   prvku1 za prvok2 v zadanom zozname na najvyššej úrovni

2  Funkcia  (PRAVA-STRANA  zoznam  vyznacny-prvok),  ktorá vráti
   nový zoznam,  pozostávajúci z časti  vstupného zoznamu vpravo
   od vyznacneho-prvku

2  Funkcia  (LAVA-STRANA  zoznam  vyznacny-prvok),  ktorá vráti
   nový zoznam,  pozostávajúci z časti  vstupného zoznamu vľavo
   od vyznacneho-prvku

2  Funkcia, ktorá všetky numerické atómy nahradí atómom 'NUM na
   najvyššej úrovni v zozname

2  Funkcia, ktorá všetky nenumerické atómy nahradí číslom 0 na
   najvyššej úrovni v zozname

2  Výmena prvkov v zozname po dvojiciach na najvyššej úrovni

2  Vytvorenie  zoznamu   zdvojením  každého  prvku  pôvodného
   zoznamu na najvyššej úrovni v zozname

2  Funkcia, ktorá vráti zoznam čísel, ktoré sa vytvorii ako
   súčin postupne každého prvku zadaného zoznamu čísel a daného
   čísla

2  Funkcia, ktorá vytvorí zoznam čísel vynásobením vždy
   zodpovedajúcich prvkov dvoch vstupných zoznamov

2  Funkcia, ktorá vytvorí zoznam čísel sčítaním vždy
   zodpovedajúcich prvkov dvoch vstupných zoznamov

2  Funkcia,  ktorá  dostane  na  vstup  číslo  a  zoznam čísiel.
   Výstupom je zoznam, ktorý obsahuje jednotky práve na
   pozíciach, kde sa vo vstupnom zozname na najvyššej úrovni
   nachádza číslo rovnaké ako prvý argument. Na ostatných
   pozíciach sú nuly.

2  Funkcia vráti vzostupne usporiadaný vstupný zoznam čísel

2  Funkcia vráti zostupne usporiadaný vstupný zoznam čísel

2  Definujte funkciu, ktorá vráti zoznam vytvorený zo zadaného
   zoznamu vylúčením každého takého prvku, ktorý sa ešte neskôr
   na najvyššej úrovni v zadanom zozname vyskytuje

2  Funkcia, ktorá vymení prvý prvok zoznamu s posledným

2  Funkcia, ktorá rotuje prvky zoznamu vpravo

2  Funkcia, ktorá rotuje prvky zoznamu vľavo

2  Funkcia,  ktorá  do  zadaného  zoznamu  pridá  jeho zrkadlový
   obraz, napr. zo zadaného zoznamu (a b c) vytvorí (a b c c b a)

2  Vráti transponovanú maticu, t.j. riadky sú st’pce a st’pce sú
   riadky

2  Implementujte funkciu fib(n) = 1, ak n = 1 alebo 2
                                = fib(n-1) + fib(n-2) ak n > 2
   urobte aj efektívnejšiu verziu, ktorá iba raz rekurzívne volá
   funkciu s rovnakými parametrami (pomocou Ôalších parametorv)


PREDIKÁTY
---------
3  Predikát na hľadanie aspoň jedného z dvoch zadaných prvkov na
   ľubovoľnej úrovni v zozname

3  Predikát na hľadanie dvoch zadaných prvkov na ľubovoľnej
   úrovni v zozname (musia sa vyskytovať oba súčasne)

3  Test, či daný zoznam obsahuje na najnižšej úrovni iba čísla

3  Test, či daný zoznam obsahuje na najnižšej úrovni iba symboly
   (nenumerické atómy)

3  Test, či sa v zozname nenachádza na ľubovoľnej úrovni žiadne
   nepárne číslo

POČET
-----
3  Funkcia, ktorá vráti počet tých prvkov zoznamu, ktoré sú
   číslami na ľubovoľnej úrovni v zozname

3  Vráti počet atómov v zadanom zozname na ľubovoľnej úrovni

3  Funkcia (PO¬ÖTAJ-ATŕMY zoznam význačný-prvok), ktorá vráti
   zoznam dvoch čísiel. Prvé číslo je počet atómov naľavo od
   význačného-prvku, druhé napravo; na ľubovoľnej úrovni

3  Funkcia vráti počet prvkov najdlhšieho podzoznamu zadaného
   zoznamu na ľubovoľnej úrovni

3  Funkcia vráti počet prvkov zoznamu čísel na ľubovoľnej
   úrovni, ktoré sú menšie ako daná dolná hranica a väčšie ako
   daná horná hranica

3  Funkcia, ktorá vráti maximálnu h’bku binárneho stromu, ktorý
   reprezentuje daný s-výraz (atómy sú listy stromu a ostatné
   časti sú bodka dvojice s nasledovníkmi: CAR a CDR časť)
   (HLBKA '(A . B) -> 1, (HLBKA '((A B C D))) -> 5

PRVOK ZOZNAMU
-------------
3  Minimálny prvok zoznamu (číslo); uvažujú sa čísla na všetkých
   úrovniach v zozname

3  Maximálny prvok zoznamu (číslo); uvažujú sa čísla na všetkých
   úrovniach v zozname

3  Maximálne párne číslo, pričom sa uvažujú atómy na všetkých
   úrovniach v zozname

3  Funkcia vráti prvé také číslo, ktoré sa nachádza na
   ľubovoľnej úrovni v zadanom zozname a je menšie ako zadané
   číslo a zároveň najväčšie zo všetkých takýchto čísel

3  Funkcia vráti prvé také číslo, ktoré sa nachádza na
   ľubovoľnej úrovni v zozname a je väčšie ako zadané číslo
   a zároveň najmenšie zo všetkých takýchto čísel

3  Funkcia vráti prvé párne číslo nachádzajúce sa v zadanom
   zozname na ľubovoľnej úrovni

INÉ
---
3  Funkcia, ktorá pripočíta ku každému číselnému atómu na
   ľubovoľnej úrovni zoznamu číslo 1

3  Funkcia, ktorá zo zadaného zoznamu vytvorí zoznam
   s odstránenými všetkými vnútornými zátvorkami

3  Obrátenie zoznamu na všetkých úrovniach

3  Vráti zoznam pozostávajúci zo všetkých čiselných prvkov
   zadaného s-výrazu (na všetkých úrovniach)

3  Funkcia, ktorá pre zoznam nájde množinu atómov, ktoré sa
   v ňom vyskytujú (množina = postupnosť atómov bez opakovania)

3  Funkcia, ktorá vráti čísla zadaného zoznamu nachádzajúce sa
   na ľubovoľnej úrovni, ktoré sú menšie ako daná dolná hranica
   a väčšie ako daná horná hranica

3  Funkcia vráti zoznam, ktorý vznikne odstránením všetkých
   výskytov zadaného prvku na ľubovoľnej úrovni

3  Funkcia vráti zoznam, ktorý vznikne zámenou všetkých výskytov
   prvku1 za prvok2 v zadanom zozname na ľubovoľnej úrovni

3  Funkcia, ktorá všetky numerické atómy nahradí atómom 'NUM na
   všetkých úrovniach v danom zozname

3  Funkcia, ktorá všetky nenumerické atómy nahradí číslom 0 na
   všetkých úrovniach v danom zozname

3  Výmena prvkov v zozname po dvojiciach na všetkých úrovniach

3  Funkcia, ktorá dostane na vstup číslo a zoznam čísiel.
   Výstupom je zoznam, ktorý obsahuje jednotky práve na
   pozíciach, kde sa vo vstupnom zozname na ľubovoľnej úrovni
   nachádza číslo rovnaké ako prvý argument. Na ostatných
   pozíciach sú nuly.

3  Funkcia, ktorá vráti zoznam, kde na ľubovoľnej úrovni ponechá
   iba prvé dva prvky vnorených zoznamov (neplatí pre najvyššiu
   úroveň, kde sa počet prvkov nezmení)

3  Funkcia, ktorá spočíta všetky čísla v zadanom zozname na
   ľubovoľnej úrovni

3  Funkcia, ktorá vyhodnotí aritmetický výraz zapísaný v infixe
   (ARIT '(2 + (3 * 4))) -> 14 (použite funkcionál FUNCALL)

to Homepage to Teaching to FLP to the Top

Home
Research
Projects
Publications
Books
SCM
Teaching
Links
Last updated:
Mária Bieliková bielik [zavináč] fiit-dot-stuba-dot-sk
Design © 2oo1 KoXo