User Tools

Site Tools


laboratoare:10-prolog-introducere

This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

===== Laborator 10 - Prolog: Introducere ===== ==== Liste & diverse ==== - Definiti predicatul ''firstTwo(X,Y,L)'' care leaga variabilele ''X'', ''Y'' la primele doua elemente din lista ''L'', daca acestea exista. - Definiti predicatul ''contains(E,L)'' care verifica daca elementul la care este legat ''E'' exista in lista ''L''. - Definiti predicatul ''notcontains(E,L)''. * Poate acest predicat sa fie folosit pentru a genera toate elementele care nu sunt in ''L''? Justificati raspunsul. - Definiti predicatul ''unique(L1,L2)''. ''L2'' este lista ''L1'' fara elemente duplicate. - Definiti predicatul ''listOnly(L1,L2)''. ''L2'' este lista ''L1'' care contine doar elementele de tip lista. Exemplu: ''listOnly([1,[2,3],4,[5],6], [ [2,3],[5]]).'' - Implementati ''insertionSort'' in Prolog. * Idenficati predicatele necesare, aritatea fiecaruia, variabilele care reprezinta input-ul, respectiv output-ul. ==== Arbori ==== - Stabiliti o conventie de reprezentare pentru arbori. Ilustrati conventia in Prolog. Exemplu: ''T=...''. - Implementati predicatele ''size(T,S)'' si ''height(T,H)''. - Definiti predicatul ''flatten(T,L)'' unde ''T'' este un arbore. ==== Reprezentarea datelor in Prolog ==== - Stabiliti o conventie de reprezentare pentru expresii generate de gramatica de mai jos, urmarind acceeasi abordare ca la arbori: <code> <expr> ::= <valoare> | <variabila> | <expr> + <expr> | <expr> * <expr> <variabila> ::= string <valoare> ::= orice </code> - Scrieti un predicat ''eval(Expr,R)'' unde ''R'' este rezultatul evaluarii lui ''Expr''. ''Expr'' **nu contine** variabile. - Scrieti un predicat care permite evaluarea unei expresii ce contine variabile. ==== Resurse (functii matematice) ==== * [[http://www.swi-prolog.org/man/arith.html|Functii utile in Prolog]]

laboratoare/10-prolog-introducere.1430744528.txt.gz · Last modified: 2015/05/04 16:02 by matei.popovici