Documente Academic
Documente Profesional
Documente Cultură
SIMPLE
Nume Caracteristici Exemple in limbaje
procedurale
Permite memorarea de valori întregi ( pozitive sau
negative )
int n ;
Integer (INT) Se folosește atunci cand se lucrează cu numere
naturale cuprinse în intervalul [-32768; 32767]
Pentru acest tip se rezerva 2 octeti
Memorează numere reale
Separatorul zecimal este punctul
Tipul float se reprezinta pe 4 octeți ; numar real, in
float n ;
Float si Double virgula mobila, simpla precizie
double n ;
Tipul double se reprezinta pe 8 octeți ; numar real, in
virgula mobila, dubla precizie
STRUCTURATE
Nume Caracteristici Exemple in limbaje
procedurale
Unidimensionale : vectorul tip nume[nr_elem] ;
Bidimensionale : matricea int v[10] ;
Tablouri int a[5]={-2,4,8,1,9} ;
int a[]={-2,4,8,1,9}
Pe langa acestea, pentru Pascal mai sunt urmatoarele tipuri de date structurate : înregistrare
(record), obiect (object), multime (set), fisier (file)
2. Structura de tablou
Tabloul – o serie de elemente de același tip, memorate în locații de memorie succesive, care pot fi referite individual
prin adăugarea unui index la un identificator unic.
Tablourile unidimensionale (vectorii)
Nu trebuie definită o mărime inițială, iar memoria se alocă pe rând, odată cu fiecare element adăugat
Clasificare
Liste simplu înlănțuite - Elementele au o singură legătură către următorul element introdus, iar ultimul element
pointează către NULL.
Liste dublu înlănțuite - Elementele au dublă legătură către precedentul și antecedentul, capul listei pointând
spre NULL și ultimul element de asemenea.
Liste circulare - Pot fi simplu sau dublu înlănțuite cu proprietatea că ultimul element pointează spre primul.
Operații cu liste:
Stive definitie:
OPERATII CU STIVE
struct stack{
int s[size];
int top = -1;
} st;
Adăugarea
int pop(){
int item;
if(st_empty()) //presupunem ca nu exista elemente
return -1; //cu valoarea -1
item = st.s[st.top];
st.top--;
return (item);
}
Observații
1.Când introducem elemente într-o stivă,trebuie să incrementăm top-ul și apoi să adăugam elementul.
2.Când ștergem un element,trebuie întâi să ștergem elementul și apoi să decrementăm top-ul.
3.O stivă poate fi implementată cu ajutorul unui vector sau cu liste înlănțuite.
Coadă definitie:
OPERATII CU COZI
struct queue{
int queue[size];
int rear = -1;
int front = 0;
}Q;
IsEmpty - întoarce 0 dacă coada este goală;1 dacă are cel puțin
un element.
int Qempty(){
if(Q.front > Q.rear)
return 1;
return 0;
}
Enqueue / Adăugarea - adaugă un element (entitate) în coadă.Adăugarea se poate face doar la sfârșitul cozii.
Dequeue/ștergere - șterge un element din coadă și îl returnează.Ștergerea se poate face doar la începutul cozii.
int Qdelete(){
int item;
if( Qempty() ) //in acest caz, alegem o valoare de return
return -1; // ce NU poate fi confundata cu un element
//presupunem ca NU exista niciun element cu valoarea -1
else {
item = Q.queue[Q.front];
Q.front ++;
return item;
}
}
Clasificare
Dequeue - (sau coadă cu dublu acces) este o structură de tip coadă în care însă accesul (introducere/extragere de
elemente) se poate realiza prin ambele capete. De cele mai multe ori sunt implementate folosind liste dublu
înlănțuite.
Dintr-un anume punct de vedere, se poate considera că atât stiva cât si coada clasică sunt specializări ale tipului
abstract dequeue întrucât ambele se pot implementa folosind dequeue (și restrângând operațiile ce se realizează
asupra sa).
Priority queue - Coada prioritară reprezintă un tip de coadă în care fiecare element are asociată o anume
prioritate.
În aceste condiții,operațiile de bază asupra cozii devin:
Enqueue - adaugă la coadă un element cu prioritatea specificată
Dequeue - extrage elementul cu cea mai mare prioritate
Front - examinează elementul cu cea mai mare prioritate fără a-l extrage din coadă.
Algoritmi de manevra:
Sortarea prin selectie
Sortarea prin insertie
Heapsortma
Turnurile din Hanoi
Parcurgerea unui graf – examinarea tuturor varfurilor grafului, cu scopul prelucrarii informatiilor acestora.
Parcurgerea incepe cu varful initial. Se viziteaza apoi primul vecin nevizitat al varfului. In continuare se viziteaza primul
vecin nevizitat al primului vecin al varfului și tot așa pana la final. *In situatia in care varful la care am ajuns nu mai are
vecini nevizitati, revenim la varful precedent.
Parcurgerea incepe cu varful initial. Se viziteaza in ordine toti vecinii nevizitati ai varfului. Apoi se vizitează în ordine toți
vecinii nevizitați ai vecinilor vârfului și tot așa pana la final.
În arborele alăturat:
-nodul 1 este rădăcina;
-rădăcina are doi descendenți direcți (fii): 2 este descendent stâng a lui 1, iar 3 este descendent drept;
-nodul 2 are un singur descendent, pe 4. Acest este descendent stâng al lui 2;
-similar, 7 este descendent drept al lui 4;
-nodurile 5, 6 și 7 sunt noduri terminale (frunze).
O altă definiție, recursivă, a arborelui binar este următoarea: Un arbore binar este o mulțime finită de noduri,
astfel:
- există un nod special, numit rădăcina arborelui;
- celelalte noduri sunt grupate în două submulțimi disjuncte A1 și
A2, fiecare dintre ele fiind la rândul lor arbori binari. Arborii A1 și
A2 reprezintă subarborele stâng, respectiv subarborele drept, al
rădăcinii.
1. Fiecare nivel i=0,1,2,... dintr-un arbore binar conține cel mult 2i noduri.
2. Un arbore binar de înălțime h conține cel mult 2h+1-1 noduri. Demonstrația se bazează pe afirmația anterioară.
3. Într-un arbore cu n noduri și înâlțime h avem relația h≥log2(n+1)−1.
4. Dacă într-un arbore binar numărul nodurilor terminale este a, iar c este numărul nodurilor care au exact 2 fii,
atunci a = c + 1.
Definiție: Se numește arbore binar strict un arbore binar în care fiecare nod,
cu excepția celor terminale, are exact doi descendenți.
Proprietăți:
1. Arborele binar plin este un caz particular de arbore binar strict, în care toate nodurile terminale sunt situate pe
același nivel.
2. Un arbore binar plin cu k noduri terminale are n=2⋅k–1 noduri.
3. Un arbore binar plin cu înălțimea h are 2h−1 noduri.
1. parcurgerea în inordine – SRD – se parcurge mai întâi subarborele stâng (S), apoi rădăcina (R), apoi subarborele
drept (D);
2. parcurgerea în preordine – RSD – se parcurge mai întâi rădăcina (R), apoi subarborele stâng (S), apoi
subarborele drept (D);
3. parcurgerea în postordine – SDR – se parcurge mai întâi subarborele stâng (S), apoi subarborele drept (D), apoi
rădăcina (R).
Inordine – SRD: 4 7 2 1 5 3 6
Preordine: RSD 1 2 4 7 3 5 6
Postordine: SDR 7 4 2 5 6 3 1
7. Problema căutării. Căutare secvenţială, căutare binară
Programarea procedurala – paradigma de programare ce imparte problema in mai multe bucati (proceduri).
1. Structuri fundamentale
a. Structura Secventiala - Instructiunea
b. Structura decizionala - If
c. Repetitia cu test initial - While
2. Structuri derivate
a. Decizia generalizata - Switch
b. Repetitia cu test final - Do While
c. Repetitia cu contor (nr. cunoscut de pasi) – For
9. Subprograme (definire, tipuri de transfer al parametrilor, apelare, variabile locale și globale)
Definiție:
Un subprogram (funcţie) reprezintă un ansamblu de instrucţiuni (de declarare, executabile) scrise în vederea executării
unei anumite prelucrări, ansamblu identificat printr-un nume şi implementat separat (în exteriorul oricărei alte funcţii).
- au un algoritm propriu
- pot fi proiectate independent
- pot fi scrise independent
- pot fi compilate independent
- nu se pot executa independent ci numai în cadrul unui program (apel)
Un program scris în limbajul C/C++ este un ansamblu de funcţii, fiecare dintre acestea efectuând o activitate bine
definită. Doar una dintre aceste funcţii este rădăcină sau funcţie principală - adică nu poate lipsi şi executarea
programului începe automat cu ea. Aceasta se numeşte main.
Apelul subprogramelor
Variabile locale
Sunt declarate în corpul funcţiilor
Variabilele declarate în coprul funcţiei main() sunt locale
Atributele variabilelor locale sunt:
1. Clasa de memorare a variabilelor locale este, implicit, segmentul de stivă.
2. Durata de viaţă a variabilelor locale este locală. Trăiesc atâta timp cât durează
executarea funcţiei sau blocului (bloc înseamnă între două acolade) în care au fost
definite.
Dacă se declară o variabilă locală în ciclul for, ea este vizibilă doar în ciclul for.
Variabile globale:
2. Durata de viaţă a variabilelor globale este statică. Ele au spaţiul de memorie rezervat
în tot timpul execuţiei programului.
3. Vizibilitatea – În cazul în care declaraţiile acestora sunt înaintea tuturor funcţiilor, ele
sunt vizibile la nivelul întregului program (fişier). Dacă anumite funcţii se află plasate
înaintea declaraţiilor acestor variabile, atunci ele sunt vizibile doar pentru funcţiile care
sunt plasate după aceste declaraţii.
10. Recursivitate
Recursivitatea reprezintă proprietatea unor noțiuni de a se defini prin ele însele. O funcție trebuie definită iar apoi
se poate apela. Procesul recursiv este procesul care, în timpul execuţiei, generează apariţia unor procese identice, aflate în
legătură directă cu procesul ce le generează. Un proces poate fi descris printr-un subprogram
Recursivitatea constă în faptul că în definiția unei funcție apare apelul ei însăși. Acest apel, care apare în însăși
definiția funcției, se numește autoapel. Primul apel, făcut în altă funcție, se numește apel principal.
Functionalitatea recursivitatii : Pentru fiecare apel al unei funcții se adaugă pe stivă o zonă de memorie în care se
memorează variabilele locale și parametrii pentru apelul curent. Această zonă a stivei va exista până la finalul apelului,
după care se va elibera. Dacă din apelul curent se face un alt apel, se adaugă pe stivă o nouă zonă de memorie, iar
conținutul zonei anterioare este inaccesibil până la finalul acelui apel. Aceste operații se fac la fel și dacă al doilea apel
este un autoapel al unei funcții recursive.
Tipuri de recursivitate :
recursivitate directă : în definiția funcției F apare apelul funcției F
recursivitate indirectă : în definiția funcției F apare apelul funcției G, iar în definiția funcției G apare
apelul lui F.
OOP – paradigma de programare ce foloseste concepte abstracte (clase si obiecte) pentru a crea modele bazate pe
elemente din lumea reala.
Clasa – sablon prin intermediul caruia se pot crea obiecte. Aceasta contine atribute si metode.
Metoda – funcţie care aparţine unei clase. Este un alt termen pentru comportamentul unei clase.
- Instrucțiunea Case : Instrucțiunea servește pentru alegerea și execuția unei singure instrucțiuni
dintre mai multe instrucțiuni componente în funcție de valoarea unei expresii scalare de tip ordinal,
numită expresie selector.
-
- Instrucțiunea For : for v:= < expresie1> to < expresie2 > do < instrucțiune simplă sau compusă>
- Când se intră într-o instrucțiune for se evaluează o singură dat expresiile 1 și 2 prin care se determină
valorile inițială și finală a variabilei ciclului. instrucțiunea ciclului se execută o dată pentru fiecare
valoare a variabilei de control.
-
- Instrucțiunea Repeat : repeat <succesiune de instrucțiuni> until < expresie logică>
Succesiunea de instrucțiuni între cuvintele rezervate, repeat și until, se execută în mod repetat până
când expresia logică întoarce rezultatul true. Succesiunea de instrucțiuni este executată cel puțin o dată
deoarece expresia logică este evaluată după execuția succesiunii de instrucțiuni.
-
- Instrucțiunea While : while < expresie logică> do < instrucțiune simplă sau compusă a ciclului>
- Expresia logică între cuvintele rezervate while și do este evaluată înainte ca instrucțiunea ciclului să fie
executată. Instrucțiunea ciclului este executată repetat cât timp expresia logică dă rezultatul true; dacă
expresia logică dă false la început, instrucțiunea ciclului nu se execută nici o dată.
14. Noțiunile de control, proprietate și eveniment în programarea vizuală
Programarea vizuala – un mod de proiectare a unui program prin operare directă asupra unui set de elemente grafice.
Acest lucru are ca efect scrierea automată a unor secvenţe de program. (Fig de mai jos – Visual Basic)
Controalele – pilonii care ajuta la crearea aplicatiei. Acestea sunt obiecte ce pot fi incluse in Form, din Toolbox.
Proprietatea – caracteristică deținută de un obiect vizual. Proprietatile pot fi setate in timpul proiectarii (utilizand
fereastra Properties) sau in timpul executiei.
Evenimentul – un semnal care informeaza aplicatia ca a avut loc ceva important. Ex: atunci cand user-ul face click pe un
control, form-ul poate genera un Click-event si ulterior poate apela o procedura care sa sa se ocupe de acel eveniment.
Casetele de text (TextBox-urile) este un element de control al unei interfețe grafice cu utilizatorul , care ar trebui
să permită utilizatorului să introducă informații text pentru a fi utilizate de un program. O casetă de text tipică este un
dreptunghi de orice dimensiune, eventual cu un chenar care separă caseta de text de restul interfeței. Acestea afișează de
obicei un cursor de text, indicând regiunea curentă a textului care este editat. Sunt flosite de utilizatori pentru a vizualiza,
edita, introduce valori.
O casetă de selectare ( casetă de validare , casetă de bifare) este un widget grafic care permite utilizatorului să facă o
alegere binară, adică o alegere între una dintre două opțiuni posibile care se exclud reciproc. De exemplu, utilizatorul
poate fi nevoit să răspundă „da” (bifat) sau „nu” (nebifat) la o întrebare simplă da/nu. Casetele de selectare sunt afișate ca
☐ când sunt debifate sau ☑ sau ☒ (în funcție de interfața grafică cu utilizatorul) când sunt bifate. O legendă care descrie
semnificația casetei de selectare este afișată în mod normal lângă caseta de selectare. Inversarea stării unei casete de
selectare se face făcând clic cu mouse-ul pe casetă sau pe legendă sau prin utilizarea unei comenzi rapide de la tastatură ,
cum ar fi bara de spațiu .
Adesea, sunt prezentate o serie de casete de selectare, fiecare cu o alegere binară între două opțiuni. Apoi utilizatorul
poate selecta mai multe dintre opțiuni.
Casetele de selectare pot fi dezactivate (indicate cu „ gris ”) pentru a informa utilizatorul despre existența lor și
despre posibila utilizare, în ciuda indisponibilității momentane.
List Box – afiseaza o lista de elemente. Utilizatorul poate face clic și selecta elementele din listă. Elementele pot fi
adăugate/eliminate în timpul proiectării sau în timpul executării.
Formularele HTML – folosite pentru a colecta informațiile de tip user-input. User-inputul este trimis in general către un
server pentru procesare.
Culoarea textului
SINTAXA :
Probabilitatea realizării unui eveniment este raportul dintre numărul de cazuri favorabile și numărul de cazuri posibile.
Metodele manuale – folosesc diferite dispozitive ca: zaruri, urne cu bilete, rulete etc.
Metodele fizice – se bazează pe analogii dintre procesele fizice întâmplătoare (procese radioactive, procese electronice).
Metodele de memorizare – folosesc de regulă memoria internă sau externă a calculatoarelor. Oferă avantajul
reproductibilităţii.
Metodele analitice – folosesc relaţii de recurenţă. Un şir de numere (Un) se numeşte şir de numere pseudoaleatoare
dacă există o anumită formulă de recurenţă şi un număr natural fix k, astfel încât Un = f(Un-1 ... , Un-k), n >= k + 1
27. Problema celui mai scurt drum in grafuri
Problema drumului cel mai scurt se preocupă cu găsirea celei mai scurte căi dintr-un graf sau reţea,
pornind de la un nod, numit nod de start şi până la unul sau mai multe alte noduri din reţea. Pentru aceasta,
fiecare arc are asociată o valoare nenegativă, care reprezintă lungimea arcului, lungime care se poate exprima în
diferite unităţi de măsură, ca de exemplu: kilometri, ore, etc. Atribuirea unei mărimi unui arc se numeşte
marcare. Valoarea acelei mărimi se numeşte marcă şi are semnificaţia de valoare a drumului de lanodul iniţial la
nodul terminal al arcului.
Pentru rezolvarea problemei drumului cel mai scurt se parcurg următorii paşi:
1. Identificaţi nodul iniţial sau de start. Acesta va intra într-o mulţime specială numită mulţimea nodurilor
permanente. De obicei se marchează nodurile din mulţimea permanentă cu un asterisc;
2. Conectaţi acest nod cu acele noduri din reţea cu care acesta are legătură directă.
3. Din mulţimea arcelor rezultate, selectaţi nodul cu cea mai scurtă rută directă către nodul iniţial;
4. Stabiliţi mulţimea permanentă ca fiind construită din nodul iniţial şi nodul selectat la pasul 3;
5. Stabiliţi toate nodurile direct conectate mulţimii nodurilor permanente;
6. Selectaţi nodul cu cea mai scurtă ramură de la grupul de noduri direct conectate cu mulţimea nodurilor
permanente;
7. Repetaţi paşii 5 şi 6 până când toate nodurile s-au adăugat mulţimii nodurilor permanente.
8. Construiţi reţeaua care stabileşte legătura cea mai scurtă dintre nodul de start şi toate celelalte noduri.
Exemplu:
29. Rezolvarea
sistemelor algebrice liniare – metode directe
Metodele directe – gasesc solutia teoretica a problemei intr-un numar finit de pasi (Gauss, factorizare LU).
Metoda Gauss:
Factorizare LU (Matrix Factorization)
Metoda Jacobi
Fie sistemul de ecuaţii liniare dat sub forma:
Pentru sistemul de mai sus se presupune că elementele aii ≠ 0, i = 1, ..., n şi determinatul matricei det(A) ≠ 0,
unde A este matricea coeficienţilor din sistemul de ecuaţii liniare.
Dacă se explicitează fiecare necunoscută a sistemului în funcţie de celelalte necunoscute rezultă o relaţie
iterativă de forma:
Metoda Seidel-Gauss
Metoda Seidel-Gauss este foarte asemănătoare cu metoda Jacobi, singura deosebire dintre ele fiind următoarea:
la metoda Jacobi în partea dreaptă a relaţiei
apar numai valorile anterioare ale variabilelor (valorile de la iteraţia k–1), iar în cadrul metodei Seidel-Gauss
apar atât unele valori anterioare (pentru variabilele care nu au fost încă recalculate), cât şi unele valori noi
(valorile de la iteraţia k, pentru variabilele care au fost recalculate deja).
Relaţia de calcul iterativ este de forma:
Interpolarea sau aproximarea funcțiilor de o singură variabilă – reprezintă o operație de aproximare care se realizează
atunci când:
Interpolarea polinomială – atunci când valorile funcției de aproximare 𝑔(𝑥) au aceleași valori cu cele ale funcției de
aproximat 𝑓(𝑥) în nodurile rețelei 𝑥𝑖: 𝒈(𝒙𝒊) = 𝒇(𝒙𝒊)
Interpolarea Lagrange
35. Utilizarea in PHP a datelor din formularele HTML. Metodele PUT si GET
În interiorul blocului sunt incluse:
action – comunică browserului unde să trimită datele introduse în formular. În general valoarea atributului
action este adresa URL a scriptului aflat pe serverul care primeşte datele formularului. De exemplu:
<FORM action="http://localhost/prelucrare.php>.
method – precizează metoda utilizată de browser pentru expedierea datelor formularului si poate avea 2 valori:
o POST – indica serverului să furnizeze datele direct scriptului ca date de intrare standard.
o GET (valoarea implicită) – datele din formular sunt adăugate la adresa URL precizată de atributul action.
Metoda PUT folosită de unii clienți pentru a stoca fișiere pe un server. Solicitările PUT sunt mult mai simple decât
încărcarea unui fișier folosind solicitări POST și arată cam așa: PUT /path/filename.html HTTP/1.1
Metoda Greedy – construieste solutia prin selectarea, dintr-o multime de elemente, a acelora care indeplinesc o
anumita conditie. Pentru ca elementele selectate sa apartina solutiei optime, este ales candidatul optim. Din acest motiv
se numește Greedy (lacom);
Se dă o mulțime A. Să se determine o submulțime B a lui A, astfel încât să fie îndeplinite anumite condiții –
acestea depinzând de problema propriu-zisă.
Probleme celebre: Problema spectacolelor, Problema continuă a rucsacului, Algoritmul lui Dijkstra pentru
determinarea drumurilor de cost minim într-un graf, Algoritmul lui Prim și Algoritmul lui Kruskal pentru
determinarea arborelui parțial de cost minim al unui graf.
Arborii – grafuri neorientate conexe, fara cicluri. Arbore binar: fiecare nod are maxim 2 fii. Pot fi: de cautare (BST -
S<R<D) si de selectie.
Sistemul de Gestiune al Bazei de Date (SGBD) – un pachet de programe specializat pentru definirea, crearea,
întreţinerea şi accesul controlat la baza de date.
SGBD Relaţionale - caracterizate de structuri de date simple şi intuitive, ce au ca scop definirea, căutarea şi
reactualizarea datelor. Modelul relaţional are capacităţi limitate de modelare a datelor. Ele nu folosesc obiecte nu
realizează gestiunea distribuită a datelor şi nici gestiunea de cunoştinţe.
Mecanisme de optimizare
SQL – Structured Query Language : Limbajul de interogare permite regăsirea liniilor memorate în tabelele bazei de
date. Interogările se scriu cu ajutorul comenzii SELECT .
DDL – Data Definition Language : permite definirea structurii tabelelor care compun baza de date
Comanda Descriere
CREATE Creaza un table, un view sau orice alt obiect intr-o baza de date
ALTER Modificarea structurii unei baze de date (ex: modificare tabel).
DROP Stergerea unui tabel, view sau orice alt obiect.
RENAME Schimba numele unei tabele
TRUNCATE Sterge conţinutul unei tabele
Oracle s-a alăturat ligii bazelor de date relaționale, împreună cu Microsoft SQL Server, Sybase și DB2 etc.
Recunoașterea vocală : Procesul de convertire a cuvintelor vorbite în format digital în scopul transcrierii
acestora într-un cod util pentru diverse aplicații software poartă numele de recunoaștere vocală. Ea este utilizată în
principal pentru sisteme interactive de răspuns vocal și pentru aplicații mobile.
Tehnologia limbajului și procesarea limbajului natural : În această categorie intră sistemele care
utilizează procesarea limbajului natural în scopul analizei textuale. Pentru a obține o înțelegere bună a conținutului atât
din punct de vedere al sintaxei, cât și a semanticii, aceste sisteme folosesc tehnologii de identificare a tonului vocal și a
intensității de exprimare a unei propoziții. Soluțiile software sunt utilizate pentru a preveni tentativele de fraudă și sunt
preferate de anumite companii în analiza datelor nestructurate, cum ar fi conversațiile din mediul online sau pentru
creșterea eficienței asistenților virtuali.
Asistenții virtuali : Chiar dacă putem observa o creștere a numărului de chatbots, utilizați în scopul
îmbunătățirii experienței clienților, evoluția tehnologică din prezent este îndreptată spre dezvoltarea asistenților virtuali.
Cel mai probabil, aceasta își va atinge apogeul în următorii 2-4 ani. Asistenții virtuali sunt capabili să interacționeze direct
cu oamenii și să indeplinească task-uri specifice, în special în cazurile în care sunt angajați în proiecte din rețeaua Internet
of Things (IoT), cum ar fi și cel al caselor inteligente.
Automatizarea proceselor : Aceasta reprezintă unul dintre cele mai puternice trenduri tehnologice,
deoarece poate fi aplicat unui număr mare de industrii. Datorită lui, multe activități umane au fost automatizate, iar
procesele de business au fost optimizate.
Platforma de Machine Learning : În acest caz vorbim de platforme tehnologice pre-configurate, care
exploatează într-un mod eficient și simplu inteligența artificială. Ea integrează în cadrul lor diferitele sale funcționalități,
în particular algoritmi de machine learning. În general, ele sunt soluții cloud prin care se construiesc modele matematice,
care vor fi ulterior utilizate în dezvoltarea aplicațiilor. În prezent, obiectivul lor principal este implementarea unor soluții
de analiză predictivă.
Recunoașterea biometrică : Tehnologia recunoașterii biometrice oferă soluții promițătoare, capabile să
îmbunătățească interacținea dintre om și mașină, nu doar prin recunoașterea limbajului, ci și a feței, a tonului vocii și, în
general, a tot ceea ce desemnăm ca limbaj corporal. În prezent, ea reprezintă una dintre cele mai active zone de cercetare.
Îmbunătățirea managementului și a luării deciziilor : În acest câmp, sunt dezvoltate sisteme și soluții care
integrează reguli logice la nivelul aplicațiilor inteligenței artificiale, cu scopul de a oferi instrumente eficiente de
management și date exacte pe baza cărora pot fi luate decizii. Astfel, prin aceste sisteme se urmărește nu doar asumarea
unor decizii mai bune, ci și eficientizarea procesului prin care se poate ajunge la ele.
Inteligenta Artificiala (AI) – se ocupă cu studiul posibilităţii calculatoarelor de a avea o comportare asemănătoare cu cea
Demonstrarea automata a teoremelor – este cea mai veche aplicație a inteligenței artificiale. Aceasta se bazează pe
generalitatea și rigoarea logicii
In 1956 a fost realizat programul LOGIC THEORIST, al carui scop a fost de a demonstra teoreme matematice. Succesorul
lui este sistemul GPS (General Problem Solver), elaborat in 1957.
Mod de functionare:
Metode folosite:
PROLOG permite să se aleagă nu doar primul element al unei liste ci mai multe. De asemenea este permis să se
lucreze cu liste în care elementele nu au acelaşi tip. Prelucrarea conţinutului listelor se bazează pe separarea lor în cap şi
rest.
Operaţii de prelucrare a listelor :
Apartenenţa unui element la o listă : predicatul apartine
(X,Y) este adevărat dacă X aparţine listei Y şi fals în caz contrar. Un
element X aparţine unei liste Y dacă lista începe cu X sau dacă X aparţine
restului listei.
Algoritmi de sortare:
Alte tipuri de sortari: Counting Sort, Quick Sort.
Pentru reprezentarea în Prolog, presupunem că fiecare nod are câte două legături către alţi arbori:
- una către subarborele stâng,
- una către subarborele drept.
arb(8, arb(4, arb(3, n, n), arb(6, n, n)), arb(11, arb(9, n, n), arb(16, n, n)))