2. Tipul referinţă, structuri de date dinamice ( liste înlănţuite şi arbori binari).

Size: px
Start display at page:

Download "2. Tipul referinţă, structuri de date dinamice ( liste înlănţuite şi arbori binari)."

Transcription

1 2. Tipul referinţă, structuri de date dinamice ( liste înlănţuite şi arbori binari) Tipul referinţă. Limbajul Pascal oferă posibilitatea de a lucra atât cu variabile statice cât şi cu variabile dinamice. Caracteristicile variabilelor statice sunt bine definite, cunoscute şi fixe. Structura, tipul şi adresa de memorie nu se pot modifica în timpul execuţiei. Aceste variabile sunt referite prin numele lor, fiecărui nume asociindu-i-se o adresă fizică de memorie. Unei variabile statice i se poate modifica doar valoarea, nu şi adresa (locul său) din memoria internă. Variabilele dinamice au un tip bine precizat încă din faza de compilare însă ele pot fi alocate dinamic (pot lua fiinţă în faza de execuţie a programului), pot fi utilizate (referite) prin adresa lor din memoria internă şi pot fi distruse (dealocate) dacă nu mai sunt utile. Aceste variabile pot fi referite printr-o variabilă de referinţă ce conţine adresa variabilei dinamice. Variabila de referinţă poate face referiri numai la variabile dinamice de acelaşi tip declarat, bine definit şi fix. Această legatură (corespondenţă) între variabila dinamică şi tipul de date referinţă permite cunoaşterea structurii variabilei dinamice. Variabilele de tip referinţă vor conţine în timpul execuţiei adrese de memorie ale variabilelor dinamice referite. Datorită acestui fapt, declararea tipului referinţă poate fi făcută înaintea definirii tipului variabilei dinamice referite. Definirea unui tip referinţă şi a variabilelor de tip referinţă se face astfel: Type Tip_Referinţă = ^ Tip_Var_Dinamică; Tip_Var_Dinamică =... { poate referi Tip_Referinţă } Var Var_Ref 1,Var_Ref 2,... : Tip_Referinţă; {Vor conţine adrese} Alocarea dinamică (ocuparea zonei de memorie) pentru variabila dinamică se realizează cu procedura : New (Var_Ref) care caută în memoria internă o zonă liberă pentru variabila dinamică şi furnizează adresa acestei zone în variabila de tip referinţă (Var_Ref). Această zonă este alocată variabilei dinamice, fără a fi iniţializată. Dimensiunea zonei alocate variabilei dinamice este determinată de tipul variabilei dinamice, aşa cum se poate vedea în exemplul următor : Type Adresa=^Numar; Numar = Record Numar_Cifre : Byte; Sir_Cifre : Array [1..100] of Byte Var n : Adresa; New (n); { Se alocă 101 octeti }... {Prelucrare (n^) } End.

2 Referirea unei variabile dinamice se face printr-o variabilă de tip referinţă (legată de variabila dinamică). Numele variabilei referinţă urmat de caracterul ^ reprezintă numele variabilei dinamice. Eliberarea zonei de memorie ocupată de o variabila dinamică se va executa cu instrucţiunea (apelul de procedură) : Dispose (Var_Ref) care disponibilizează zona de la adresa conţinută în variabila Var_Ref. Dacă o variabilă referinţă nu referă nici o variabilă dinamică, atunci valoarea variabilei referinţă este. Variabilele referinţă se pot utiliza în instrucţiuni de atribuire prin care o astfel de variabilă primeşte valoarea altei variabile de acelaşi tip sau constanta şi, de asemenea, în expresii relaţionale cu operaţorii "=" sau "<>". Subliniem că orice referire a variabilei dinamice P^ trebuie să se facă între apelurile NEW (P) şi DISPOSE (P). În următorul program se adună două numere raţionale citite de la tastatură. Program Rationale; {Programul Tipul referinţă} Type Q = ^Rational; Rational = Record Numarator, Numitor : Integer Var a,b,c : Q ; Function Cmmdc (m,n:integer) : Integer; {Gaseste c.m.m.d.c.} Var Rest:Integer; {al numerelor m şi n} While n<>0 Do Rest := m Mod n; m := n; n := Rest End {while}; Cmmdc := m {Cmmdc} Function Cmmmc (m,n:integer) : Integer; {Calculeaza c.m.m.m.c.} {al numerelor m şi n nenule} If m*n = 0 Then Writeln('nr.nul') Else Cmmmc := m * n Div Cmmdc (m,n) {Cmmmc} Procedure Simplific (Var p:q); {Simplifica nr.rational p } Var Divizor_comun: Integer; With p^ do Divizor_comun:=Cmmdc(Numarator,Numitor); If Divizor_comun > 1 Then Numarator := Numarator Div Divizor_comun; Numitor := Numitor Div Divizor_comun End {If} End {With} {Simplific} 1

3 Procedure Citeste (Var p:q); {Citeste nr.rational in p} Write (' Numarator,numitor = '); Readln (p^.numarator, p^.numitor); Simplific (p) {Citeste} Procedure Aduna (a,b:q; Var c:q); Var N_comun: Integer; { Numitorul comun } N_comun := Cmmmc(a^.Numitor,b^.Numitor); c^.numarator := a^.numarator * (N_comun Div a^.numitor) + b^.numarator * (N_comun Div b^.numitor); c^.numitor :=N_comun; Simplific (c) {Aduna} Procedure Tipareste (p:q); {Tipareste nr.rational p} With p^ do Write (Numarator,'/',Numitor) New (a); Citeste (a); New (b); Citeste (b); New (c); Aduna (a,b,c); Tipareste(a); Write(' + '); Tipareste(b); Write(' = '); Tipareste (c); Dispose (a); Dispose (b); Dispose (c); Readln; End. {Programul principal} Vom rezolva în continuare aceeaşi problemă în altă manieră, utilizând funcţia Aduna pentru suma a două numere raţionale care va da ca rezultat adresa numărului raţional calculat. Program Rationale; {Programul 2. Tipul referinţă} Type Q = ^Rational; Rational = Record Numarator, Numitor : Integer Var a, b : Q ; Function Cmmdc (m,n:integer) : Integer; {Gaseste c.m.m.d.c.} Var Rest:Integer; {al numerelor m şi n} While n<>0 do Rest := m Mod n; m := n; n := Rest End {while}; Cmmdc := m Function Cmmmc (m,n:integer): Integer; {Calculeaza c.m.m.m.c.} {al numerelor m şi n nenule} If m*n = 0 Then Writeln('nr.nul') Else Cmmmc := m * n Div Cmmdc (m,n) Procedure Simplific (Var p:q); { Simplifica nr.rational p } Var Divizor_comun: Integer; With p^ Do Divizor_comun:=Cmmdc(Numarator,Numitor); If Divizor_comun > 1 Then Numarator := Numarator Div Divizor_comun; Numitor := Numitor Div Divizor_comun End {If} End {With} 2

4 Procedure Citeste (Var p:q); {Citeste nr.rational in p} With p^ do Write(' Numarator numitor = '); Readln (Numarator, Numitor); If Numitor=0 Then Write (' Numitor = 0! dati altul'); Readln (Numitor); Until Numitor <> 0; {With} Simplific (p) Function Aduna (a,b:q) : Q; Var Numit_comun: Integer; s:q; New (s); Numit_comun := Cmmmc(a^.Numitor,b^.Numitor); s^.numarator:= a^.numarator * (Numit_comun Div a^.numitor)+ b^.numarator * (Numit_comun Div b^.numitor); s^.numitor :=Numit_comun; Simplific (s); Aduna:=s; Dispose(s) Procedure Tipareste (p:q); {Tipareste nr.rational p} With p^ Do Write (Numarator,'/',Numitor) New (a); Citeste (a); New (b); Citeste (b); Tipareste(a); Write('+'); Tipareste(b); Write('='); Tipareste(Aduna(a,b)); Dispose(a); Dispose(b); Readln; End. În limbajul Pascal se pot utiliza variabile nelegate de un anumit tip de bază (tipul variabilei dinamice) în scopul memorării valorilor unor variabile de tip referinţă (memorare de adrese). Acest tip referinţă nelegat, este tipul Pointer. Operaţiile ce se pot efectua cu astfel de variabile sunt de tip atribuire astfel: Var AdrP : Pointer; Adr1 : Tip_Referinţă1; Adr2 : Tip_Referinţă2;... AdrP:=Adr1; Adr2:=AdrP;... End. În exemplul anterior funcţia Aduna putea avea următorul antet: Function Aduna (a,b:q) : Pointer; fără a fi necesare alte modificări în program. 3

5 În următorul exemplu ne propunem să tipărim în hexazecimal conţinutul zonei de memorie pe care se reprezintă un număr real. Program Numar_Real; Const Lung = 6; Type Sir_Octeti = Array[1..Lung] of Byte; Var Pointer_Real : ^Real; Pointer_Byte : ^Sir_Octeti; Pointer_Manevra : Pointer; i : Integer; Function Hexa (Cifra:Byte) : Char; If Cifra < 10 Then Hexa := Chr(Cifra+Ord('0')) Else Hexa := Chr(Cifra+Ord('A')-10) Procedure Print (Octet: Byte); Write (Hexa(Octet Div 16)); Write (Hexa(Octet Mod 16),' ') New ( Pointer_Real); Write (' Dati un numar real : '); Readln ( Pointer_Real^ ); Pointer_Manevra := Pointer_Real; Pointer_Byte := Pointer_Manevra; For i:=1 to Lung do Print (Pointer_Byte^[i]); Dispose (Pointer_Real); Readln; End. {Prgramul Pointeri} {Tipareste o cifra} {hexazecimala} {Tipareste continutul unui} {octet in hexazecimal} {Programul principal} 2.2. Liste înlănţuite. Prin listă se înţelege o colecţie de elemente de acelaşi tip x 1, x 2,..., x n, în care x 1 este primul element, x n este ultimul element şi pentru 1 < k < n elementul x k are un unic succesor (pe x k+1 ) şi un unic predecesor (pe x k-1 ). Se poate stabili o corespondenţă biunivocă între elementele listei liniare şi submulţimea numerelor naturale {1, 2,..., n} astfel: primului element îi ataşăm 1, următorului 2 şi aşa mai departe, iar ultimului n. Numărul natural asociat unui element din listă se numeşte poziţia elementului respectiv. Vom spune că elementul de pe poziţia i precede elementul de pe poziţia j dacă i < j. Rezultă că pe o astfel de structură de date putem defini următoarele funcţii: Următorul, Precedentul şi Poziţia unui element, aşa cum se va vedea mai jos. Asupra listelor liniare putem defini operaţii care să ne permită adăugarea unui element în lista, extragerea unui element (cu stergerea lui) din lista, cautarea unui element cu o anumita proprietate şi crearea unei liste vide. 4

6 Specificarea acestor operaţii se dă în continuare: Operaţia CREARE(L) este: L := lista vidă (fără nici un element); Operaţia ADĂUGARE (L,a) este: {în coada listei} Dacă L la intrare conţine elementele : x 1, x 2,..., x n, după efectuarea operaţiei, lista L va conţine elementele : x 1, x 2,..., x n, x n+1, unde x n+1 = a. Operaţia CĂUTARE (L,a,p) este: Dacă L conţine elementele : x 1, x 2,..., x n, după efectuarea operaţiei, p primeşte o valoare între 1 şi n astfel ca x p = a, sau valoarea n+1 în caz contrar. Operaţia EXTRAGERE (L,p,a) este: Daca L conţine la intrare elementele : x 1, x 2,..., x n, după efectuarea operaţiei a primeşte valoarea x p iar lista va avea elementele : x 1, x 2,..., x p-1, x p+1,..., x n, deci elementul x p a fost eliminat din listă. Implementarea acestor operaţii depinde de reprezentarea listei în memoria calculatorului. Reprezentarea unei liste liniare într-un program Pascal poate fi statică sau dinamică. Reprezentarea statică a unei liste se realizează printr-un vector X cu componentele x 1, x 2,..., x n. Spunem că reprezentarea este statică întrucât alocarea memoriei necesare vectorului X este făcută în timpul compilării. Deci locul în memorie al elementelor listei nu se schimbă pe timpul executiei. Elementele listei se vor afla în memorie în locaţii consecutive cu o lungime maximă (declarată) care nu poate fi depăşită şi nici schimbată în timpul executiei. Spre deosebire de alocarea statică, reprezentarea dinamică se realizează cu ajutorul tipului Pointer, alocarea memoriei făcându-se în timpul execuţiei. În locul listelor implementate static care ocupă o zonă fixă de memorie prin locaţii succesive, se poate utiliza o structură mult mai flexibilă în care fiecare nod este legat de nodul următor al listei. Această structură o vom numi listă înlanţuită şi implementarea ei se poate realiza prin alocare dinamică a memoriei. Zona de memorie ocupată de o astfel de listă creşte sau scade după cum lista conţine mai multe sau mai puţine elemente, prin operaţii de adăugare, respectiv de ştergere. O listă înlănţuită o vom reprezenta grafic astfel : Primul Ultimul Informaţie Leg Informaţie Leg Informaţie Leg Informaţie Leg 5

7 Un element din listă va conţine pe lângă informaţia propriu-zisă şi adresa (referinţa) următorului element din listă (marcată în figura de mai sus prin săgeţi). În acest fel având adresa primului element, vom putea accesa (regăsi) orice element din lista înlănţuită prin parcurgarea secvenţială a acesteia. Ultimul element va conţine o informaţie (cod) de "santinelă" care va marca sfârşitul listei. Acest cod poate avea valoarea ceea ce înseamnă că acest element nu mai este legat de un altul (nu există următorul element). O astfel de listă, care conţine în fiecare element adresa următorului element poate fi parcursă doar secvenţial începând de la primul element până la ultimul, într-un singur sens. Această structură o vom numi listă simplu înlănţuită. Variabilele de tip referinţă dintr-un program Pascal care utilizează o listă simplu înlănţuită se pot declara astfel : Type Tip_Info =... ; Adr = ^Tip_Elem; Tip_Elem = Record Informatie : Tip_Info; Leg : Adr Var Primul, Element, Ultimul, Nou : Adr; O listă simplu înlănţuită, în functie de disciplina de generare a ei (prin adăugare element cu element) poate fi: lista înlănţuită înainte, lista înlănţuită înapoi şi listă înlănţuită ordonată. Lista înlănţuită înainte este lista în care adăugarea se face în coada listei, aşa cum se poate vedea în figura următoare: Ultimul Primul Ultimul Nou Informaţie Leg Informaţie Leg Informaţie Leg Informaţie Leg Operaţia scrisă în Pascal este următoarea : Procedure Adaug_in_coada (Nou:Adr; Var Primul,Ultimul:Adr); Nou^.Leg:=; If Primul= Then Primul := Nou { Prima adăugare } Else Ultimul^.Leg := Nou; Ultimul:=Nou Lista înlănţuită înapoi este lista în care adăugarea se face în capul listei, aşa cum se poate vedea în figura de mai jos: Primul Nou Primul Informaţie Leg Informaţie Leg Informaţie Leg Informaţie Leg 6

8 Operaţia scrisă în Pascal este următoarea: Procedure Adaug_in_cap (Nou:Adr; Var Primul:Adr); Nou^.Leg := Primul; Primul := Nou Lista înlănţuită ordonată este lista în care adăugarea se face astfel încât elementele listei să fie într-o anumită ordine (crescător sau descrescător după o anumită cheie) aşa cum se poate vedea în următoarea figură : Primul Prec Elem Informaţie Leg Informaţie Leg Informaţie Leg Informaţie Leg Nou Informaţie Leg Dacă ORDINE este o funcţie booleană care precizează ordinea dorită, atunci procedura Pascal corespunzătoare este: Procedure Adaug_ord (Nou:Adr; Var Primul:Adr); Var Elem, Prec : Adr; Elem:=Primul; While (Elem<>) and not ORDINE(Elem, Nou) do { Cauta locul } Prec := Elem; Elem := Elem^.Leg { de inserare } Nou^.Leg := Elem; If Elem=Primul Then Primul:= Nou { Adăugare înaintea primului element } Else Prec^.Leg := Nou; În exemplul următor vom genera o listă prin adăugarea elementelor în coada listei, în capătul listei sau în aşa fel încât lista sa fie ordonată după un câmp numit cheie. Disciplina de adăugare va fi aleasă de către utilizator. Program Liste_simplu_inlantuite; Type Tip_Cheie = Integer; Tip_Date = String[20]; Tip_Info = Record Adr = ^Tip_Elem; Tip_Elem = Record Cheie : Tip_Cheie; Date : Tip_Date Inf : Tip_Info; Leg : Adr {Programul Liste} Var Lista : Adr; { Adresa primului element } Disc : Char; { Tipul adaugarii } 7

9 Procedure Citesc (Var Element:Adr); New (Element); Write ('... Cheie, Date : '); With Element^, Inf do Readln (Cheie,Date) Procedure Generare (Var Primul:Adr; Disc:Char); Var Nou,Ult : Adr; Rasp : Char; Procedure Adaug_in_coada; Nou^.Leg:=; If Primul= Then Primul := Nou Else Ult^.Leg := Nou; Ult:=Nou Procedure Adaug_in_capat; Nou^.Leg := Primul; Primul := Nou Procedure Inserare_ord; Var Elem, Prec : Adr; Elem:=Primul; While (Elem<>) and (Elem^.Inf.Cheie < Nou^.Inf.Cheie) do Prec := Elem; Elem := Elem^.Leg {While} Nou^.Leg := Elem; If Elem=Primul Then Primul := Nou Else Prec^.Leg := Nou; {Generare} Primul:=; Write ('Adaugati(D,N):'); Readln(Rasp); Rasp:=Upcase(Rasp); Until Rasp in ['D','N']; If Rasp = 'D' Then Citesc (Nou); Case Disc of 'F' : Adaug_in_coada; 'L' : Adaug_in_capat; 'O' : Inserare_ord End {Case} End {If} Until Rasp = 'N' Procedure Parcurgere (Elem:Adr); While Elem <> Do With Elem^ Do With Inf Do Writeln (Cheie:5,Date); Elem:=Leg End {With} { Main} Writeln (' Ce disciplina doriti la adăugare? '); Writeln (' F = in coada listei (FIFO) '); Writeln (' L = in capul listei (LIFO) '); Writeln (' O = lista ordonata '); Write (' Optiune : '); Readln (Disc); Disc:=Upcase(Disc) Until Disc in ['F','L','O']; Generare (Lista,Disc); { Creerea listei } For Disc:='A' to 'E' do Writeln; Writeln('Elementele listei sunt:'); Parcurgere (Lista); Readln { Listarea listei } End. 8

10 Ştergerea unui element din listă se realizează prin modificarea legăturii elementului precedent (dacă acesta există) urmată de dealocarea zonei ocupate de elementul şters astfel: Primul Prec Elem Informaţie Leg Informaţie Leg Informaţie Leg Informaţie Leg Operaţia de ştergere (scrisă în Pascal) a elementului Elem din lista L este următoarea: Procedure Stergere(Var Elem,Prec,L: Adr); {Prec=precedentul } { lui Elem } If L = Elem { dacă se sterge primul element } Then L := Elem^.Leg Else Prec^.Leg := Elem^.Leg; Dispose (Elem); În exemplul următor se poate urmări ştergerea unor elemente precizate prin cheia conţinută în informaţia propriu-zisă a elementelor. Program Stergere_element_din_lista; {Creeaza o lista de elemente (cheie,string),} Type Tip_Cheie = Integer; {apoi sterge elemente şi tipareste lista finala } Tip_Date = String[20]; Tip_Info = Record Cheie : Tip_Cheie; Date : Tip_Date Adr = ^Tip_Elem; Tip_Elem = Record Inf : Tip_Info; Leg : Adr Var Lista : Adr; { Adresa primului element } Procedure Citesc (Var Element:Adr); {Citeste informatia} {din nodul Element} Write ('... Cheie, Date : '); With Element^.Inf do Readln(Cheie,Date) Procedure Generare (Var Primul:Adr); Var Nou : Adr; Rasp : Char; Primul:=; Write (' Adaugati (D,N) : '); Readln (Rasp); Rasp:=Upcase(Rasp); Until Rasp in ['D','N']; If Rasp = 'D' Then New(Nou); Citesc (Nou); Nou^.leg:=Primul; Primul:=Nou End {If} Until Rasp = 'N' {Creaza lista} 9

11 Procedure Stergere (Var Primul,Prec:Adr); Var Elem:adr; If (Prec=) Then Elem:=Primul; Primul := Primul^.Leg End Else Elem:=Prec^.Leg; Prec^.Leg := Elem^.Leg Dispose (Elem) {Sterge succesorul} { lui Prec din lista Primul} Procedure Cauta(Primul:adr; Cod: Tip_Cheie; Var Prec:adr); Var Elem:Adr; {Cauta in lista Primul, elementul cu cheia Cod } { şi retine in Prec predecesorul acestui element } Elem:=Primul; Prec := ; While (Elem<>) And (Elem^.Inf.Cheie<>Cod) Do Prec:=Elem; Elem:=Elem^.Leg {While} If (Elem=) Then WriteLN (' Nu exista elementul cu codul ',Cod) Procedure Stergelemente (Var Primul:Adr); {Sterge la cerere} Var Elem,Prec : Adr; {elemente din lista Primul} Cod : Tip_Cheie;Rasp : Char; Write ('Sterg element? (D,N):'); Readln(Rasp); Rasp:=Upcase(Rasp); If Rasp='D' Then Write (' Cheia elementului : '); Readln(Cod); Cauta(Primul,Cod,Prec); Stergere(Primul,Prec) End {If} until Rasp='N' Procedure Parcurgere (Primul:Adr); Var Elem:adr; While Elem <> Do With Elem^.inf do Writeln (Cheie:5,Date); Elem:=Elem^.Leg End {While} {Parcurge lista Primul} {si-i tipareste continutul} {Programul principal } Generare (Lista); { Creerea listei } Stergelemente(Lista); { Stergere elemente } Parcurgere (Lista); Readln { Listarea listei } End. 10

12 Lista simplu înlănţuită poate fi traversată doar într-un singur sens începând cu primul până la ultimul element, pentru că un element conţine doar adresa următorului element din listă. Dacă dorim sa traversăm lista şi invers (de la coadă la capăt) atunci va trebui să reţinem în fiecare element şi adresa elementului anterior (precedent) : Leg.St. Informaţie Leg.Dr. O listă care are această proprietate se numeşte lista dublu înlănţuită. Primul Leg St. Inf. Leg Dr. Leg St. Inf. Leg Dr. Leg St. Inf. Leg Dr. Ultim Leg St. Inf. Leg Dr. Variabilele de tip referinţă dintr-un program Pascal care utilizează o listă dublu înlănţuită se pot declara astfel: Type Tip_Cheie =...; Tip_Date =...; Tip_Info = Record Adr = ^Tip_Elem; Tip_Elem = Record Cod : Tip_Cheie; Info : Tip_Date Leg_Preced : Adr; Informatii : Tip_Info; Leg_Următor : Adr {Leg_St} {Leg_Dr} Var Primul, Ultim, Elem, Prec, Nou : Adr; Operaţia de adăugare într-o listă dublu înlănţuită se poate realiza astfel : Leg St. Inf. Leg Dr. Leg St. Inf. Leg Dr. Leg St. Inf. Leg Dr. Primul Prec Elem Ultim Leg St. Inf. Leg Dr. Nou Leg St. Inf. Leg Dr. O procedură Pascal care realizează inserarea elementului Nou în faţa elementului Elem este următoarea: Procedure Inserare(Var Nou,Elem: Adr); (Elem^.leg_st)^.Leg_dr:=Nou; Nou^.Leg_St:=Elem^.Leg_St; Nou^.Leg_Dr:=Elem; Elem^.Leg_St:=Nou; 11

13 astfel: Operaţia de ştergere a elementului Elem dintr-o listş dublu înlănţuită se poate schiţa Primul Elem Ultim Leg St. Inf. Leg Dr. Leg St. Inf. Leg Dr. Leg St. Inf. Leg Dr. Leg St. Inf. Leg Dr. O procedură Pascal corespunzatoare acestei operaţii este următoarea: Procedure Stergere(Var Elem : Adr); (Elem^.Leg_St)^.Leg_Dr:=Elem^.Leg_Dr; (Elem^.Leg_Dr)^.Leg_St:=Elem^.Leg_St; Dispose (Elem); În exemplul următor se poate urmări generarea unei liste dublu înlănţuite urmate de parcurgerea acesteia în ambele sensuri: Program Liste_dublu_inlantuite; Type Tip_Cheie = Integer; Tip_Date = String[20]; Tip_Info = Record Cheie : Tip_Cheie; Date : Tip_Date Adr = ^Tip_Elem; Tip_Elem = Record Inf : Tip_Info; Leg_St, Leg_Dr : Adr Directie = (Inainte,Inapoi); Var Prim : Adr; { Adresa primului element } Ultim : Adr; { Adresa ultimului element } Disc : Char; { Tipul adaugarii } Procedure Citesc (Var Element:Adr); {Citeste informatia} {dintr-un nod} New (Element); Write ('... Cheie, Date : '); With Element^, Inf Do Readln (Cheie,Date) Procedure Generare (Disc:Char; Var Primul,Ultim:Adr); {Creaza o lista dublu} { înlănţuită } Var Nou : Adr; Rasp : Char; Procedure Adaug_in_coada; Nou^.Leg_Dr:=; Nou^.Leg_St:=Ultim; If Primul = Then Primul := Nou Else Ultim^.Leg_Dr := Nou; Ultim:=Nou Procedure Adaug_in_cap; Nou^.Leg_Dr := Prim; Nou^.Leg_St := ; If Prim = Then Ultim := Nou Else Prim^.Leg_St := Nou; Prim := Nou 12

14 Procedure Inserare_ord; Var Prec,Elem : Adr; Elem:=Primul; While (Elem<>) and (Elem^.Inf.Cheie < Nou^.Inf.Cheie) Do Elem := Elem^.Leg_dr; If Elem= Then Adaug_in_coada Else If Elem=Primul Then Adaug_in_cap Else Prec := Elem^.Leg_St; Nou^.Leg_St := Prec; Nou^.Leg_Dr := Elem; Elem^.Leg_St:= Nou; Prec^.Leg_Dr:= Nou End {If} End {inserare}; Primul:=; Ultim:=; Write (' Adaugati (D,N) : '); Readln (Rasp); Rasp:=Upcase(Rasp); until Rasp In ['D','N']; If Rasp = 'D' Then New(Nou); Citesc (Nou); Case Disc of 'F' : Adaug_in_coada; 'L' : Adaug_in_cap; 'O' : Inserare_ord End {Case} End {If} until Rasp = 'N' {Generare} Procedure Parcurgere (Elem:Adr; Sens:Directie); While Elem <> Do With Elem^.Inf do Writeln (Cheie:5,Date); If Sens=Inainte Then Elem:=Elem^.Leg_Dr Else Elem:=Elem^.Leg_St End {While} Writeln (' Ce disciplina doriti la adăugare? '); Writeln (' F = in coada listei (FIFO) '); Writeln (' L = in capul listei (LIFO) '); Writeln (' O = lista ordonata '); Write (' Optiune : '); Readln (Disc); Disc:=Upcase(Disc) Until Disc In ['F','L','O']; Generare (Disc, Prim, Ultim ); { Creerea listei } Writeln('Lista inainte'); Parcurgere (Prim,Inainte); { Traversare inainte } Writeln('Lista inapoi'); Parcurgere (Ultim,Inapoi ); { Traversare inapoi } Readln End. 13

15 2.3. Arbori binari. O colecţie de elemente are o structură de tip arborescent dacă elementele componente sunt în relaţie unu la mai_multe, adică un element este în relaţie cu mai multe elemente. Elementele unei astfel de structuri se numesc noduri sau vârfuri. Ele au un unic predecesor numit părinte dar mai mulţi succesori numiţi fii. Un arbore este format din mulţimea nodurilor şi legăturile dintre acestea. Un nod al unui arbore poate fi rădăcină (dacă nu are predecesor) sau poate fi nod intern (dacă are un singur predecesor şi mai mulţi succesori) sau poate fi nod terminal sau frunză (dacă nu are nici un succesor). Un arbore particular este arborele binar pentru care relaţia dintre elemente este de tip unu la două, adică un element poate avea maxim doi succesori. Un arbore binar poate fi definit recursiv ca fiind o mulţime (colecţie) de noduri vidă sau formată din nodul Rădăcină, Subarbore_stâng şi Subarbore_drept. Rădăcina Subarbore stâng Subarbore drept La reprezentarea în memorie a unui arbore binar, pe lânga informaţia propriu-zisă se vor memora în fiecare nod şi adresele de legatură spre nodurile succesoare în felul următor: Deci o variabilă de tip arbore va avea tipul Arbore definit astfel: Type Arbore = ^Tip_Elem; Tip_Elem = Record Info : Tip_Info; As, Ad : Adr Aici Tip_Info este tipul informaţiei pastrată într-un nod, putând fi orice tip Pascal definit anterior. Prin traversarea unui arbore binar vom înţelege parcurgerea tuturor vârfurilor arborelui, trecând o singură dată prin fiecare nod. În funcţie de ordinea (disciplina) de vizitare a nodurilor unui arbore binar, traversarea poate fi în preordine, în inordine sau în postordine. 14

16 Traversarea în preordine este aceea în care se parcurge mai întâi nodul rădăcină, apoi subarborele stâng şi după aceea subarborele drept. Deci se parcurge arborele în ordinea (Rădăcină, Subarbore_stâng, Subarbore_drept). Evident, definiţia este recursivă, parcurgerea unui subarbore fiind facută dupa aceaşi regulă, deci începând cu rădăcina. O procedură Pascal corespunzatoare se dă în continuare. Procedure Preordine (R:Arbore); If R<> Then With R^ do Prelucrare (Info); Preordine (As); Preordine (Ad) End {if} Procedura Prelucrare (Nod) poate reprezenta orice subalgoritm de prelucrare a informaţiei din nodul specificat (de exemplu tipărirea informaţilor). Traversarea în inordine este aceea în care se parcurge mai întâi subarborele stâng, apoi nodul rădăcină şi după aceea subarborele drept. Deci se parcurge arborele în ordinea (Subarbore_stâng, Rădăcină, Subarbore_drept). În continuare este prezentată o procedură Pascal de traversarea în inordine : Procedure Inordine (R:Arbore); If R<> Then With R^ do Inordine (As); Prelucrare (Info); Inordine (Ad) End {if} Traversarea în postordine este aceea în care se parcurge mai întâi subarborele stâng, apoi subarborele drept şi după aceea nodul rădăcină. Deci se parcurge arborele în ordinea (Subarbore_stâng, Subarbore_drept, Rădăcină). Procedura Pascal corespunzătoare este următoarea : Procedure Postordine (R:Arbore); If R<> Then With R^ Do Postordine (As); Postordine (Ad); Prelucrare (R) End {if} Pentru arborele alăturat, ordinea nodurilor corespunzătoare cele trei tipuri de traversări este următoarea : a) în preordine : 16,7,5,2,10,9,13,20,19,25,21,29; b) în inordine : 2,5,7,9,10,13,16,19,20,21,25,29; c) în postordine : 2,5,9,13,10,7,19,21,29,25,20,16. 15

17 În exemplul următor vom genera un arbore binar prin adăugări succesive de noduri după umătoarea regulă: elementele cu cheie mai mare decât cheia informaţiei din nodul rădăcină, se adaugă în subarborele stâng iar cele cu cheie mai mică în subarborele drept. Prin traversarea în inordine a arborelui astfel construit vom obţine lista nodurilor în ordine descrescatoare a cheilor. Informaţia pastrată într-un nod se referă la un student şi conţine media acelui student (aceasta fiind cheia după care se face ordonarea) şi numele studentului. Program Arbore_Binar_Ordonat; { Prgramul arbore_binar } Type Tip_Info = Record Medie : real ; nume : string[20] Adr = ^Tip_Elem; Tip_Elem = Record Info : Tip_Info; As, Ad : Adr Var Arb:Adr; Procedure Citesc (Var InfNod:Tip_Info); Write (' Medie(>0), Nume_Student : '); With InfNod Do Readln (Medie,nume) Procedure Print (InfNod:Tip_Info); With InfNod do Writeln ( Medie:6:2,' - ',nume) Procedure Creare (Var Arb:Adr); Var InfNod: Tip_Info; Procedure Adaug (Var Sarb:Adr); If Sarb<> Then With Sarb^ Do If InfNod.medie>Info.medie Then Adaug(As) Else Adaug(Ad) Else New (Sarb); Sarb^.Info:=InfNod; Sarb^.As:=; Sarb^.Ad:= End {if} Arb:=; Citesc (InfNod); If InfNod.medie > 10 Then Writeln('medie>10?') Else If InfNod.medie > 0 Then Adaug(Arb) Until InfNod.medie <= 0 Procedure Traversare_Inordine (Sarb:Adr); If Sarb <> Then With Sarb^ Do Traversare_Inordine (As); Print (Info); Traversare_Inordine (Ad) End Writeln('Se citesc medii şi nume pana media=0'); Creare (Arb); Writeln('Elementele arborelui (lista studentilor dupa medie) : '); Traversare_Inordine (Arb); Readln End. 16

18 Următorul program va construi un arbore genealogic ascendent (pentru fiecare nod se reţin informaţii despre o persoană şi legăturile de tip mamă şi tată spre nodurile respective) iar apoi se vor depune aceste informaţii într-o listă ordonată după anul naşterii. La parcurgerea acestei liste, persoanele vor fi tiparite în ordinea vârstei. Program Arbore_Genealogic; {Program pentru strămoşii unei persoane } Type Tip_Info = Record An_Nastere : Integer; Nume : String[20]; Adra= ^Tip_Elem_A; Tip_Elem_A = Record Info : Tip_Info; As, Ad : Adra Adrl= ^Tip_Elem_L; Tip_Elem_L = Record Info : Tip_Info; Leg : Adrl Var Arb : Adra; Lista : Adrl; { Adresa rădăcinii arbvorelui }{ Adresa primului element } Procedure Citesc (Var Pers:Tip_Info); {Citeste in Pers} {informatiile despre o persoana} Write (' Anul_Nasterii, Nume_Prenume : '); With Pers do Readln (An_Nastere,nume) Procedure Adaug_Arbore (Var Sarb:Adra); {Depune la adresa Sarb, } Var Pers : Tip_Info; { inf. pt.o persoana } Citesc (Pers); {si decide, dacă e nod terminal sau continua } If Pers.An_nastere > 0 Then New (Sarb); Sarb^.Info:=Pers; Write (' Mama ',Pers.nume,' : '); Adaug_Arbore (Sarb^.As); Write (' Tata ',Pers.nume,' : '); Adaug_Arbore (Sarb^.Ad) End {Then} Else Sarb:= Procedure Print (Pers:Tip_Info); {Tipareste informatiile} {despre persoana Pers} Writeln (Pers.An_nastere:6, Pers.nume) Procedure Inserare_Lista_Ordonata(Pers:Tip_Info; Var Lista:Adrl); {Insereaza } Var E, Prec, Nou : Adrl; { un nou element } {pt. Pers, in Lista ordonata } E:=Lista; {Se cauta locul inserarii} While (E<>) and (E^.Info.An_nastere < Pers.An_nastere) do Prec := E; E := E^.Leg {While} New (Nou); Nou^.Info:= Pers; Nou^.Leg := E; {Se creaza noul element } If E = Lista Then Lista := Nou { şi se depune in lista } Else Prec^.Leg := Nou Procedure Arbore_Lista (Sarb:Adra: Var L: Adrl); {Creaza lista L prin } { Traversare in Inordine} If Sarb<> Then With Sarb^ do Inserare_Lista_Ordonata (Info, L); Arbore_Lista (As); Arbore_Lista (Ad) End {If} Procedure Parcurgere (Elem:Adrl); While Elem <> Do Print(Elem^.Info); Elem:=Elem^.Leg End {While} {Programul principal} Write (' Persoana: '); Adaug_Arbore (Arb); Writeln; Lista:=; Arbore_Lista(Arb,Lista); Writeln('Persoanele in ordine cronologica:'); Parcurgere (Lista); Readln; { Tiparirea listei } End. 17

19 Tema II. 1. Tip_referinţă-Liste. 3. Să se calculeze (P+Q)(x) unde: P şi Q sunt două polinoame cu coeficienţi reali date iar x este un număr real de asemenea dat. Polinoamele P,Q şi P+Q vor fi reprezentate sub forma unor liste simplu înălnţuite ordonate (după grad) cu elemente de forma Coeficient, Grad, Leg. Exemplu : P(x)= 15x 3-4.5x+10, Q(x)=10x x-2, x=2; deci: (P+Q)(x)= 15x 3 +10x 2 +8, (P+Q)(2)=168 P : (15,3); (-4.5,1); (10,0); Q : (10,2); ( 4.5,1); (-2,0); P+Q : (15,3); (10,2); ( 8,0); 2. Tip_referinţă-Arbori_Binari. 4. Să se creeze, să se actualizeze şi să se reprezinte grafic după fiecare operaţie un arbore binar ordonat, apoi să se tipărească informaţiile acestuia în ordine crescătoare a cheii (câmpul de ordonare). Informaţiile din fiecare nod vor fi de forma : (Nume_persoană, Anul_Naşterii), iar listarea se va face după vârstă. Pop 1957 Rares 1956 Pascu 1959 Cata 1955 Turcu 1958 Ilies

20 Cuprins Pag. 1. Tipul referinţă (structuri de date dinamice : liste,arbori binari)

C10. Structuri de date dinamice / Arbori binari 1/57

C10. Structuri de date dinamice / Arbori binari 1/57 C10 / 7.12.2012 10. Tipul referinţă Tipul referinţă ~ pointeri. Structuri de date dinamice Liste înlănţuite. Arbori binari 1/57 10.1. Tipul referinţă Limbajul Pascal oferă posibilitatea de a lucra cu variabile:

More information

Arbori. Figura 1. struct ANOD { int val; ANOD* st; ANOD* dr; }; #include <stdio.h> #include <conio.h> struct ANOD { int val; ANOD* st; ANOD* dr; }

Arbori. Figura 1. struct ANOD { int val; ANOD* st; ANOD* dr; }; #include <stdio.h> #include <conio.h> struct ANOD { int val; ANOD* st; ANOD* dr; } Arbori Arborii, ca şi listele, sunt structuri dinamice. Elementele structurale ale unui arbore sunt noduri şi arce orientate care unesc nodurile. Deci, în fond, un arbore este un graf orientat degenerat.

More information

ARBORI AVL. (denumiti dupa Adelson-Velskii si Landis, 1962)

ARBORI AVL. (denumiti dupa Adelson-Velskii si Landis, 1962) ARBORI AVL (denumiti dupa Adelson-Velskii si Landis, 1962) Georgy Maximovich Adelson-Velsky (Russian: Гео ргий Макси мович Адельсо н- Ве льский; name is sometimes transliterated as Georgii Adelson-Velskii)

More information

Titlul lucrării propuse pentru participarea la concursul pe tema securității informatice

Titlul lucrării propuse pentru participarea la concursul pe tema securității informatice Titlul lucrării propuse pentru participarea la concursul pe tema securității informatice "Îmbunătăţirea proceselor şi activităţilor educaţionale în cadrul programelor de licenţă şi masterat în domeniul

More information

2. Setări configurare acces la o cameră web conectată într-un router ZTE H218N sau H298N

2. Setări configurare acces la o cameră web conectată într-un router ZTE H218N sau H298N Pentru a putea vizualiza imaginile unei camere web IP conectată într-un router ZTE H218N sau H298N, este necesară activarea serviciului Dinamic DNS oferit de RCS&RDS, precum și efectuarea unor setări pe

More information

Structura și Organizarea Calculatoarelor. Titular: BĂRBULESCU Lucian-Florentin

Structura și Organizarea Calculatoarelor. Titular: BĂRBULESCU Lucian-Florentin Structura și Organizarea Calculatoarelor Titular: BĂRBULESCU Lucian-Florentin Chapter 3 ADUNAREA ȘI SCĂDEREA NUMERELOR BINARE CU SEMN CONȚINUT Adunarea FXP în cod direct Sumator FXP în cod direct Scăderea

More information

APLICAŢII ELEMENTARE CU ARBORI

APLICAŢII ELEMENTARE CU ARBORI APLICAŢII ELEMENTARE CU ARBORI I. CONSIDERAŢII TEORETICE Din punct de vedere etimologic termenul de arbore a fost introdus de către matematicianul Arthur Cayley în 1857, plecând de la o analogie botanică.

More information

Subiecte Clasa a VI-a

Subiecte Clasa a VI-a (40 de intrebari) Puteti folosi spatiile goale ca ciorna. Nu este de ajuns sa alegeti raspunsul corect pe brosura de subiecte, ele trebuie completate pe foaia de raspuns in dreptul numarului intrebarii

More information

PROIECTAREA ALGORITMILOR

PROIECTAREA ALGORITMILOR Universitatea Constantin Brâncuşi Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu 3 PROIECTAREA ALGORITMILOR Lect. univ. dr. Adrian Runceanu 1 Curs 3 Alocarea dinamică de

More information

Structuri de date: ARBORI

Structuri de date: ARBORI Structuri de date: ARBORI Organizarea liniară de tip listă este adecvată pentru aplicaţiile în care datele (elementele din listă) formează o mulţime omogenă si deci se află pe acelasi nivel. În multe aplicaţii,

More information

Metrici LPR interfatare cu Barix Barionet 50 -

Metrici LPR interfatare cu Barix Barionet 50 - Metrici LPR interfatare cu Barix Barionet 50 - Barionet 50 este un lan controller produs de Barix, care poate fi folosit in combinatie cu Metrici LPR, pentru a deschide bariera atunci cand un numar de

More information

Reflexia şi refracţia luminii. Aplicaţii. Valerica Baban

Reflexia şi refracţia luminii. Aplicaţii. Valerica Baban Reflexia şi refracţia luminii. Aplicaţii. Sumar 1. Indicele de refracţie al unui mediu 2. Reflexia şi refracţia luminii. Legi. 3. Reflexia totală 4. Oglinda plană 5. Reflexia şi refracţia luminii în natură

More information

Procesarea Imaginilor

Procesarea Imaginilor Procesarea Imaginilor Curs 11 Extragerea informańiei 3D prin stereoviziune Principiile Stereoviziunii Pentru observarea lumii reale avem nevoie de informańie 3D Într-o imagine avem doar două dimensiuni

More information

9. Memoria. Procesorul are o memorie cu o arhitectură pe două niveluri pentru memoria de program și de date.

9. Memoria. Procesorul are o memorie cu o arhitectură pe două niveluri pentru memoria de program și de date. 9. Memoria Procesorul are o memorie cu o arhitectură pe două niveluri pentru memoria de program și de date. Primul nivel conține memorie de program cache (L1P) și memorie de date cache (L1D). Al doilea

More information

Versionare - GIT ALIN ZAMFIROIU

Versionare - GIT ALIN ZAMFIROIU Versionare - GIT ALIN ZAMFIROIU Controlul versiunilor - necesitate Caracterul colaborativ al proiectelor; Backup pentru codul scris Istoricul modificarilor Terminologie și concepte VCS Version Control

More information

Semnale şi sisteme. Facultatea de Electronică şi Telecomunicaţii Departamentul de Comunicaţii (TC)

Semnale şi sisteme. Facultatea de Electronică şi Telecomunicaţii Departamentul de Comunicaţii (TC) Semnale şi sisteme Facultatea de Electronică şi Telecomunicaţii Departamentul de Comunicaţii (TC) http://shannon.etc.upt.ro/teaching/ssist/ 1 OBIECTIVELE CURSULUI Disciplina îşi propune să familiarizeze

More information

Textul si imaginile din acest document sunt licentiate. Codul sursa din acest document este licentiat. Attribution-NonCommercial-NoDerivs CC BY-NC-ND

Textul si imaginile din acest document sunt licentiate. Codul sursa din acest document este licentiat. Attribution-NonCommercial-NoDerivs CC BY-NC-ND Textul si imaginile din acest document sunt licentiate Attribution-NonCommercial-NoDerivs CC BY-NC-ND Codul sursa din acest document este licentiat Public-Domain Esti liber sa distribui acest document

More information

MS POWER POINT. s.l.dr.ing.ciprian-bogdan Chirila

MS POWER POINT. s.l.dr.ing.ciprian-bogdan Chirila MS POWER POINT s.l.dr.ing.ciprian-bogdan Chirila chirila@cs.upt.ro http://www.cs.upt.ro/~chirila Pornire PowerPoint Pentru accesarea programului PowerPoint se parcurg următorii paşi: Clic pe butonul de

More information

REVISTA NAŢIONALĂ DE INFORMATICĂ APLICATĂ INFO-PRACTIC

REVISTA NAŢIONALĂ DE INFORMATICĂ APLICATĂ INFO-PRACTIC REVISTA NAŢIONALĂ DE INFORMATICĂ APLICATĂ INFO-PRACTIC Anul II Nr. 7 aprilie 2013 ISSN 2285 6560 Referent ştiinţific Lector univ. dr. Claudiu Ionuţ Popîrlan Facultatea de Ştiinţe Exacte Universitatea din

More information

D în această ordine a.î. AB 4 cm, AC 10 cm, BD 15cm

D în această ordine a.î. AB 4 cm, AC 10 cm, BD 15cm Preparatory Problems 1Se dau punctele coliniare A, B, C, D în această ordine aî AB 4 cm, AC cm, BD 15cm a) calculați lungimile segmentelor BC, CD, AD b) determinați distanța dintre mijloacele segmentelor

More information

GHID DE TERMENI MEDIA

GHID DE TERMENI MEDIA GHID DE TERMENI MEDIA Definitii si explicatii 1. Target Group si Universe Target Group - grupul demografic care a fost identificat ca fiind grupul cheie de consumatori ai unui brand. Toate activitatile

More information

Dispozitive Electronice şi Electronică Analogică Suport curs 02 Metode de analiză a circuitelor electrice. Divizoare rezistive.

Dispozitive Electronice şi Electronică Analogică Suport curs 02 Metode de analiză a circuitelor electrice. Divizoare rezistive. . egimul de curent continuu de funcţionare al sistemelor electronice În acest regim de funcţionare, valorile mărimilor electrice ale sistemului electronic sunt constante în timp. Aşadar, funcţionarea sistemului

More information

HEAPSORT I. CONSIDERAŢII TEORETICE

HEAPSORT I. CONSIDERAŢII TEORETICE I. CONSIDERAŢII TEORETICE HEAPSORT Algoritm de sortare care combină calităţile sortării prin inserţie cu cele ale sortării prin interclasare. A fost inventat de Williams 1964. Prin heapsort se ordonează

More information

Olimpiad«Estonia, 2003

Olimpiad«Estonia, 2003 Problema s«pt«m nii 128 a) Dintr-o tabl«p«trat«(2n + 1) (2n + 1) se ndep«rteaz«p«tr«telul din centru. Pentru ce valori ale lui n se poate pava suprafata r«mas«cu dale L precum cele din figura de mai jos?

More information

Lucrarea de laborator nr. 4

Lucrarea de laborator nr. 4 Metode merice - Lucrarea de laborator 4 Lucrarea de laborator nr. 4 I. Scopul lucrării Elemente de programare în MAPLE II. III. Conţinutul lucrării 1. Atribuirea. Decizia. Structuri repetitive. 2. Proceduri

More information

The First TST for the JBMO Satu Mare, April 6, 2018

The First TST for the JBMO Satu Mare, April 6, 2018 The First TST for the JBMO Satu Mare, April 6, 08 Problem. Prove that the equation x +y +z = x+y +z + has no rational solutions. Solution. The equation can be written equivalently (x ) + (y ) + (z ) =

More information

Mecanismul de decontare a cererilor de plata

Mecanismul de decontare a cererilor de plata Mecanismul de decontare a cererilor de plata Autoritatea de Management pentru Programul Operaţional Sectorial Creşterea Competitivităţii Economice (POS CCE) Ministerul Fondurilor Europene - Iunie - iulie

More information

Grafuri bipartite. Lecție de probă, informatică clasa a XI-a. Mihai Bărbulescu Facultatea de Automatică și Calculatoare, UPB

Grafuri bipartite. Lecție de probă, informatică clasa a XI-a. Mihai Bărbulescu Facultatea de Automatică și Calculatoare, UPB Grafuri bipartite Lecție de probă, informatică clasa a XI-a Mihai Bărbulescu b12mihai@gmail.com Facultatea de Automatică și Calculatoare, UPB Colegiul Național de Informatică Tudor Vianu București 27 februarie

More information

Modalitǎţi de clasificare a datelor cantitative

Modalitǎţi de clasificare a datelor cantitative Modalitǎţi de clasificare a datelor cantitative Modul de stabilire a claselor determinarea pragurilor minime şi maxime ale fiecǎrei clase - determinǎ modul în care sunt atribuite valorile fiecǎrei clase

More information

2. Setări configurare acces la o cameră web conectată într-un echipament HG8121H cu funcție activă de router

2. Setări configurare acces la o cameră web conectată într-un echipament HG8121H cu funcție activă de router Pentru a putea vizualiza imaginile unei camere web IP conectată într-un echipament Huawei HG8121H, este necesară activarea serviciului Dinamic DNS oferit de RCS&RDS, precum și efectuarea unor setări pe

More information

În continuare vom prezenta unele dintre problemele de calcul ale numerelor Fibonacci.

În continuare vom prezenta unele dintre problemele de calcul ale numerelor Fibonacci. O condiţie necesară şi suficientă ca un număr să fie număr Fibonacci Autor: prof. Staicu Ovidiu Ninel Colegiul Economic Petre S. Aurelian Slatina, jud. Olt 1. Introducere Propuse de Leonardo Pisa în 1202,

More information

Auditul financiar la IMM-uri: de la limitare la oportunitate

Auditul financiar la IMM-uri: de la limitare la oportunitate Auditul financiar la IMM-uri: de la limitare la oportunitate 3 noiembrie 2017 Clemente Kiss KPMG in Romania Agenda Ce este un audit la un IMM? Comparatie: audit/revizuire/compilare Diferente: audit/revizuire/compilare

More information

Mircea Merca 1) Articol dedicat Prof. Dr. Ioan Tomescu la a 70-a aniversare

Mircea Merca 1) Articol dedicat Prof. Dr. Ioan Tomescu la a 70-a aniversare M. Merca, Partiţii întregi şi grafuri orientate aciclice 15 Partiţii întregi şi grafuri orientate aciclice Mircea Merca 1) Articol dedicat Prof. Dr. Ioan Tomescu la a 70-a aniversare Abstract. The algorithms

More information

Baze de date distribuite și mobile

Baze de date distribuite și mobile Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Baze de date distribuite și mobile Lect.dr. Adrian Runceanu Curs 3 Model fizic şi model

More information

Ghid identificare versiune AWP, instalare AWP şi verificare importare certificat în Store-ul de Windows

Ghid identificare versiune AWP, instalare AWP şi verificare importare certificat în Store-ul de Windows Ghid identificare versiune AWP, instalare AWP 4.5.4 şi verificare importare certificat în Store-ul de Windows Data: 28.11.14 Versiune: V1.1 Nume fişiser: Ghid identificare versiune AWP, instalare AWP 4-5-4

More information

Vizualizarea documentelor xml

Vizualizarea documentelor xml Vizualizarea documentelor xml Fără un fişier de stil asociat: browserul vizualizează conținutul documentului xml, cu posibilitatea de a vedea/ascunde descendenții unui nod din structura arborescentă Exemplu:

More information

ISBN-13:

ISBN-13: Regresii liniare 2.Liniarizarea expresiilor neliniare (Steven C. Chapra, Applied Numerical Methods with MATLAB for Engineers and Scientists, 3rd ed, ISBN-13:978-0-07-340110-2 ) Există cazuri în care aproximarea

More information

Metoda BACKTRACKING. prof. Jiduc Gabriel

Metoda BACKTRACKING. prof. Jiduc Gabriel Metoda BACKTRACKING prof. Jiduc Gabriel Un algoritm backtracking este un algoritm de căutare sistematică și exhausivă a tuturor soluțiilor posibile, dintre care se poate alege apoi soluția optimă. Problemele

More information

Algoritmi pentru regăsirea informaţiei

Algoritmi pentru regăsirea informaţiei Algoritmi pentru regăsirea informaţiei Costel Cătălin Gărgăun Colegiul Henri Coandă Bacău, catalin_costel@yahoo.com Ana Nicoleta Grigoreanu Colegiul Henri Coandă Bacău, ananicoleta2002@yahoo.com Abstract

More information

Itemi Sisteme de Operare

Itemi Sisteme de Operare Itemi Sisteme de Operare 1. Pentru a muta un dosar (folder) de pe partiţia C: pe partiţia D: folosim: a. New Folder b. Ctrl + C din bara de instrumente şi Copy; c. Ctrl + X şi Ctrl + V; d. Edit Paste;

More information

Mulțumim anticipat tuturor acelora care vor transmite critici/observații/sugestii

Mulțumim anticipat tuturor acelora care vor transmite critici/observații/sugestii Mulțumim anticipat tuturor acelora care vor transmite critici/observații/sugestii ilincamircea@yahoo.com TEMA III.1 v1 : ORGANIZAREA DATELOR UNUI PROGRAM C/C++ ÎN MO postat 02.11.2016 (sinteză) Coținutul

More information

La fereastra de autentificare trebuie executati urmatorii pasi: 1. Introduceti urmatoarele date: Utilizator: - <numarul dvs de carnet> (ex: "9",

La fereastra de autentificare trebuie executati urmatorii pasi: 1. Introduceti urmatoarele date: Utilizator: - <numarul dvs de carnet> (ex: 9, La fereastra de autentificare trebuie executati urmatorii pasi: 1. Introduceti urmatoarele date: Utilizator: - (ex: "9", "125", 1573" - se va scrie fara ghilimele) Parola: -

More information

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Proiect nr. 154/323 cod SMIS 4428 cofinanțat de prin Fondul European de Dezvoltare Regională Investiții pentru viitorul

More information

Laborator 1. Programare declarativă. Programare logică. Prolog. SWI-Prolog

Laborator 1. Programare declarativă. Programare logică. Prolog. SWI-Prolog Laborator 1 Programare declarativă O paradigmă de programare în care controlul fluxului de execuție este lăsat la latitudinea implementării limbajului, spre deosebire de programarea imperativă în care

More information

Managementul referinţelor cu

Managementul referinţelor cu TUTORIALE DE CULTURA INFORMAŢIEI Citarea surselor de informare cu instrumente software Managementul referinţelor cu Bibliotecar Lenuţa Ursachi PE SCURT Este gratuit Poţi adăuga fişiere PDF Poţi organiza,

More information

ARHITECTURA SISTEMELOR DE CALCUL ŞI SISTEME DE OPERARE. LUCRĂRILE DE LABORATOR Nr. 6, 7 şi 8 REPREZENTAREA INFORMAŢIILOR NUMERICE ÎNTREGI ŞI REALE.

ARHITECTURA SISTEMELOR DE CALCUL ŞI SISTEME DE OPERARE. LUCRĂRILE DE LABORATOR Nr. 6, 7 şi 8 REPREZENTAREA INFORMAŢIILOR NUMERICE ÎNTREGI ŞI REALE. ARHITECTURA SISTEMELOR DE CALCUL ŞI SISTEME DE OPERARE LUCRĂRILE DE LABORATOR Nr. 6, 7 şi 8 REPREZENTAREA INFORMAŢIILOR NUMERICE ÎNTREGI ŞI REALE. I. SCOPUL LUCRĂRILOR Lucrările prezintă reprezentarea

More information

Proiectarea bazelor de date. PL/SQL Înregistrări și Colecții # 13. Adrian Runceanu

Proiectarea bazelor de date. PL/SQL Înregistrări și Colecții # 13. Adrian Runceanu Proiectarea bazelor de date # 13 PL/SQL Înregistrări și Colecții 2016 Adrian Runceanu www.runceanu.ro/adrian Curs 13 Înregistrări și Colecții Proiectarea bazelor de date 2 Înregistrări și Colecții în PL/SQL

More information

Mods euro truck simulator 2 harta romaniei by elyxir. Mods euro truck simulator 2 harta romaniei by elyxir.zip

Mods euro truck simulator 2 harta romaniei by elyxir. Mods euro truck simulator 2 harta romaniei by elyxir.zip Mods euro truck simulator 2 harta romaniei by elyxir Mods euro truck simulator 2 harta romaniei by elyxir.zip 26/07/2015 Download mods euro truck simulator 2 harta Harta Romaniei pentru Euro Truck Simulator

More information

Reţele Neuronale Artificiale în MATLAB

Reţele Neuronale Artificiale în MATLAB Reţele Neuronale Artificiale în MATLAB Programul MATLAB dispune de o colecţie de funcţii şi interfeţe grafice, destinate lucrului cu Reţele Neuronale Artificiale, grupate sub numele de Neural Network Toolbox.

More information

Nume şi Apelativ prenume Adresa Număr telefon Tip cont Dobânda Monetar iniţial final

Nume şi Apelativ prenume Adresa Număr telefon  Tip cont Dobânda Monetar iniţial final Enunt si descriere aplicatie. Se presupune ca o organizatie (firma, banca, etc.) trebuie sa trimita scrisori prin posta unui numar (n=500, 900,...) foarte mare de clienti pe care sa -i informeze cu diverse

More information

CERERI SELECT PE O TABELA

CERERI SELECT PE O TABELA SQL - 1 CERERI SELECT PE O TABELA 1 STUD MATR NUME AN GRUPA DATAN LOC TUTOR PUNCTAJ CODS ---- ------- -- ------ --------- ---------- ----- ------- ---- 1456 GEORGE 4 1141A 12-MAR-82 BUCURESTI 2890 11 1325

More information

Programare în limbaj de asamblare 16. Formatul instrucţiunilor (codificare, moduri de adresare).

Programare în limbaj de asamblare 16. Formatul instrucţiunilor (codificare, moduri de adresare). Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Programare în limbaj de asamblare 16. Formatul instrucţiunilor (codificare, moduri de adresare). Formatul instrucţiunilor

More information

Update firmware aparat foto

Update firmware aparat foto Update firmware aparat foto Mulţumim că aţi ales un produs Nikon. Acest ghid descrie cum să efectuaţi acest update de firmware. Dacă nu aveţi încredere că puteţi realiza acest update cu succes, acesta

More information

CAIETUL DE SARCINI Organizare evenimente. VS/2014/0442 Euro network supporting innovation for green jobs GREENET

CAIETUL DE SARCINI Organizare evenimente. VS/2014/0442 Euro network supporting innovation for green jobs GREENET CAIETUL DE SARCINI Organizare evenimente VS/2014/0442 Euro network supporting innovation for green jobs GREENET Str. Dem. I. Dobrescu, nr. 2-4, Sector 1, CAIET DE SARCINI Obiectul licitaţiei: Kick off,

More information

Excel Advanced. Curriculum. Școala Informală de IT. Educație Informală S.A.

Excel Advanced. Curriculum. Școala Informală de IT. Educație Informală S.A. Excel Advanced Curriculum Școala Informală de IT Tel: +4.0744.679.530 Web: www.scoalainformala.ro / www.informalschool.com E-mail: info@scoalainformala.ro Cuprins 1. Funcții Excel pentru avansați 2. Alte

More information

5.1 Definirea datelor în SQL

5.1 Definirea datelor în SQL SQL Acronim pentru Structured Query Language Dezvoltat pentru sistemul de gestiune a bazelor de date System R, creat de IBM Research Laboratory, San Jose, California, la sfârşitul anilor 70. SQL a fost

More information

Metoda de programare BACKTRACKING

Metoda de programare BACKTRACKING Metoda de programare BACKTRACKING Sumar 1. Competenţe............................................ 3 2. Descrierea generală a metodei............................. 4 3......................... 7 4. Probleme..............................................

More information

Metode de acces la informatie în bazele de date pentru prelucrari grafice

Metode de acces la informatie în bazele de date pentru prelucrari grafice 46 Metode de acces la informatie în bazele de date pentru prelucrari grafice Sef lucr.dr.ing. Marius Dorian ZAHARIA Catedra de Calculatoare, Universitatea POLITEHNICA Bucuresti Lucrarea prezinta modalitati

More information

Aspecte controversate în Procedura Insolvenţei şi posibile soluţii

Aspecte controversate în Procedura Insolvenţei şi posibile soluţii www.pwc.com/ro Aspecte controversate în Procedura Insolvenţei şi posibile soluţii 1 Perioada de observaţie - Vânzarea de stocuri aduse în garanţie, în cursul normal al activității - Tratamentul leasingului

More information

Macrocomenzi. Figura 1. Personalizarea barei de meniuri. Se va afișa fereastra din figura 2. Figura 2. Includerea tab ului Developer.

Macrocomenzi. Figura 1. Personalizarea barei de meniuri. Se va afișa fereastra din figura 2. Figura 2. Includerea tab ului Developer. Macrocomenzi Macrocomenzile (sau, prescurtat macrou rile) sunt colecții de comenzi înregistrate pentru a putea fi lansate în execuție, în bloc, ori de câte ori va fi nevoie. Avantajul lucrului cu macro

More information

Proceduri stocate. Crearea procedurilor stocate. Varianta 1 În Management Studio se dă clic pe New Query ca în imaginea de mai jos: Fig.

Proceduri stocate. Crearea procedurilor stocate. Varianta 1 În Management Studio se dă clic pe New Query ca în imaginea de mai jos: Fig. Proceduri stocate Crearea procedurilor stocate. Varianta 1 În Management Studio se dă clic pe New Query ca în imaginea de mai jos: Fig. 1 Odată cu deschiderea editorului SQL, apare și bara de instrumente

More information

Creare baza de data Deschidem aplicaţia Microsoft Access. Lansarea în execuţie a programului se face urmând calea:

Creare baza de data Deschidem aplicaţia Microsoft Access. Lansarea în execuţie a programului se face urmând calea: Baze de date Pentru început este bine să înţelegem noţiunile de bază din Access: modul de organizare a unei baze de date, a noţiunilor de tabel, înregistrare, câmp, tip de dată al câmpului, proprietăţi

More information

INTEROGĂRI ÎN SQL SERVER

INTEROGĂRI ÎN SQL SERVER INTEROGĂRI ÎN SQL SERVER Principala operaţie efectuată într-o bază de date este operaţia de extragere a datelor, care se realizează cu ajutorul unei clauze SELECT. SELECT Clauza SELECT are o sintaxă foarte

More information

6. Bucle. 6.1 Instrucţiunea while

6. Bucle. 6.1 Instrucţiunea while 6. Bucle În capitolul trecut am văzut cum putem selecta diferite instrucţiuni pentru execuţie folosind instrucţiunea if. O buclă este o structură de control care provoacă executarea unei instrucţiuni sau

More information

Ce pot face pe hi5? Organizare si facilitati. Pagina de Home

Ce pot face pe hi5? Organizare si facilitati. Pagina de Home Ce este Hi5!? hi5 este un website social care, în decursul anului 2007, a fost unul din cele 25 cele mai vizitate site-uri de pe Internet. Compania a fost fondată în 2003 iar pana in anul 2007 a ajuns

More information

Figura x.1 Ecranul de pornire al mediului de dezvoltare

Figura x.1 Ecranul de pornire al mediului de dezvoltare x. Mediul de dezvoltare MICROSOFT VISUAL C++ În cadrul acestui capitol vom prezenta Microsoft Visual C++, din cadrul suitei Microsoft Visual Studio 2012, care este un mediu de programare care suportă dezvoltarea

More information

Arbori sistolici binari

Arbori sistolici binari 1 Universitatea Tehnică Gh. Asachi Iaşi Facultatea de Automatică şi Calculatoare Şcoala de Studii Doctorale Arbori sistolici binari O. Brudaru aprilie 2006 Raport tehnic nr. 4/2006 Universitatea Tehnică

More information

Cap.5 Normalizarea relaţiilor

Cap.5 Normalizarea relaţiilor CAPITOLUL 5 NORMALIZAREA RELAŢIILOR Dependenţele de date reprezintă constrângeri care se impun valorilor atributelor unei relaţii şi determină proprietăţile relaţiei în raport cu operaţiile de inserare,

More information

INFORMAȚII DESPRE PRODUS. FLEXIMARK Stainless steel FCC. Informații Included in FLEXIMARK sample bag (article no. M )

INFORMAȚII DESPRE PRODUS. FLEXIMARK Stainless steel FCC. Informații Included in FLEXIMARK sample bag (article no. M ) FLEXIMARK FCC din oțel inoxidabil este un sistem de marcare personalizată în relief pentru cabluri și componente, pentru medii dure, fiind rezistent la acizi și la coroziune. Informații Included in FLEXIMARK

More information

CHAMPIONS LEAGUE 2017 SPONSOR:

CHAMPIONS LEAGUE 2017 SPONSOR: NOUA STRUCTURĂ a Ch League Pe viitor numai fosta divizie A va purta numele Champions League. Fosta divizie B va purta numele Challenger League iar fosta divizie C se va numi Promotional League. CHAMPIONS

More information

Interogarea (query), este operaţia prin care se obţin datele

Interogarea (query), este operaţia prin care se obţin datele CAPITOLUL 3 INTEROGAREA BAZELOR DE DATE Interogarea (query), este operaţia prin care se obţin datele dorite dintr-o bază de date, selectate conform unui anumit criteriu (condiţie). Întrucât operaţia de

More information

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Proiect nr. 154/323 cod SMIS 4428 cofinanțat de prin Fondul European de Dezvoltare Regională Investiții pentru viitorul

More information

Funcţii grup şi clauzele GROUP BY, HAVING. Operatorii ROLLUP şi CUBE.

Funcţii grup şi clauzele GROUP BY, HAVING. Operatorii ROLLUP şi CUBE. Baze de date-anul 2 Laborator 4 SQL Funcţii grup şi clauzele GROUP BY, HAVING. Operatorii ROLLUP şi CUBE. I. [Funcţii grup şi clauza GROUP BY] Clauza GROUP BY este utilizată pentru a diviza liniile unui

More information

Updating the Nomographical Diagrams for Dimensioning the Concrete Slabs

Updating the Nomographical Diagrams for Dimensioning the Concrete Slabs Acta Technica Napocensis: Civil Engineering & Architecture Vol. 57, No. 1 (2014) Journal homepage: http://constructii.utcluj.ro/actacivileng Updating the Nomographical Diagrams for Dimensioning the Concrete

More information

Baze de date - Lucrare de laborator 3 -

Baze de date - Lucrare de laborator 3 - Baze de date - Lucrare de laborator 3 - PROIECTAREA BAZELOR DE DATE RELATIONALE 1. NOTIUNI TEORETICE Proiectarea unei baze de date consta din proiectarea schemei conceptuale (logice) si fizice a acesteia,

More information

Documentaţie Tehnică

Documentaţie Tehnică Documentaţie Tehnică Verificare TVA API Ultima actualizare: 27 Aprilie 2018 www.verificaretva.ro 021-310.67.91 / 92 info@verificaretva.ro Cuprins 1. Cum funcţionează?... 3 2. Fluxul de date... 3 3. Metoda

More information

[{CYCLE NOCYCLE}] [{CACHE

[{CYCLE NOCYCLE}] [{CACHE Laborator 10 1. Secvenţe Secvenţa este un obiect al bazei de date ce permite generarea de întregi unici pentru a fi folosiţi ca valori pentru cheia primară sau coloane numerice unice. Secvenţele sunt independente

More information

Laborator 2. Definirea tablourilor şi a funcţiilor (în linia de comandă) în Matlab 7.0

Laborator 2. Definirea tablourilor şi a funcţiilor (în linia de comandă) în Matlab 7.0 Laborator Definirea tablourilor şi a funcţiilor (în linia de comandă) în Matlab 70 Bibliografie 1 NH Bingham, John M Fry, Regression Linear Models in Statistics, Springer, New York, 010 M Ghinea, V Fireţeanu,

More information

2. SCHEME LOGICE ŞI PSEUDOCOD

2. SCHEME LOGICE ŞI PSEUDOCOD REPREZENTRE LGORITMILOR PRIN PSEUDOCOD 2. SCHEME LOGICE ŞI PSEUDOCOD 2.1 Reprezentarea algoritmilor prin scheme logice Primitivele utilizate în schemele logice sunt simboluri grafice, cu funcţiuni (reprezentând

More information

Proiectarea bazelor de date # 11. PL/SQL Funcții în PL/SQL (partea a II-a) Adrian Runceanu

Proiectarea bazelor de date # 11. PL/SQL Funcții în PL/SQL (partea a II-a) Adrian Runceanu Proiectarea bazelor de date # 11 PL/SQL Funcții în PL/SQL (partea a II-a) 2018 Adrian Runceanu www.runceanu.ro/adrian Curs 11 Funcţii în PL/SQL (partea II) Proiectarea bazelor de date 2 Cuprins Funcţii

More information

APLICAŢIE INFORMATICĂ PENTRU PREGĂTIREA MISIUNILOR DE NIVEL TACTIC

APLICAŢIE INFORMATICĂ PENTRU PREGĂTIREA MISIUNILOR DE NIVEL TACTIC APLICAŢIE INFORMATICĂ PENTRU PREGĂTIREA MISIUNILOR DE NIVEL TACTIC Asist.univ.drd. Romana OANCEA Conf.univ.dr.ing. Ghiţă BÂRSAN Academia Forţelor Terestre Nicolae Bălcescu Sibiu Abstract The paper describes

More information

X-Fit S Manual de utilizare

X-Fit S Manual de utilizare X-Fit S Manual de utilizare Compatibilitate Acest produs este compatibil doar cu dispozitivele ce au următoarele specificații: ios: Versiune 7.0 sau mai nouă, Bluetooth 4.0 Android: Versiune 4.3 sau mai

More information

MANAGEMENTUL CALITĂȚII - MC. Proiect 5 Procedura documentată pentru procesul ales

MANAGEMENTUL CALITĂȚII - MC. Proiect 5 Procedura documentată pentru procesul ales MANAGEMENTUL CALITĂȚII - MC Proiect 5 Procedura documentată pentru procesul ales CUPRINS Procedura documentată Generalități Exemple de proceduri documentate Alegerea procesului pentru realizarea procedurii

More information

3. Limbajul Pascal : elementele limbajului, structura programelor, tipuri simple de date.

3. Limbajul Pascal : elementele limbajului, structura programelor, tipuri simple de date. 3. Limbajul Pascal : elementele limbajului, structura programelor, tipuri simple de date. Cu toate c limbajul Pascal a fost conceput pentru înv area program rii, el este folosit ast zi la rezolvarea celor

More information

CERERI SELECT PE MAI MULTE TABELE

CERERI SELECT PE MAI MULTE TABELE SQL - 2 CERERI SELECT PE MAI MULTE TABELE 1 STUD MATR NUME AN GRUPA DATAN LOC TUTOR PUNCTAJ CODS ---- ------- -- ------ --------- ---------- ----- ------- ---- 1456 GEORGE 4 1141A 12-MAR-82 BUCURESTI 2890

More information

PACHETE DE PROMOVARE

PACHETE DE PROMOVARE PACHETE DE PROMOVARE Școala de Vară Neurodiab are drept scop creșterea informării despre neuropatie diabetică și picior diabetic în rândul tinerilor medici care sunt direct implicați în îngrijirea și tratamentul

More information

Propuneri pentru teme de licență

Propuneri pentru teme de licență Propuneri pentru teme de licență Departament Automatizări Eaton România Instalație de pompare cu rotire în funcție de timpul de funcționare Tablou electric cu 1 pompă pilot + 3 pompe mari, cu rotirea lor

More information

NEC. Ghid de rezervări

NEC. Ghid de rezervări NEC Ghid de rezervări Action codes B efectuează rezervare finală (booking) B? afișează un model de rezervare (booking sample) BA disponibilitatea unei rezervări ( booking enquiry) BC disponibilitatea unei

More information

Tema 1 - Transferuri de date DMA intr-o arhitectura de tip Cell

Tema 1 - Transferuri de date DMA intr-o arhitectura de tip Cell Tema 1 - Transferuri de date DMA intr-o arhitectura de tip Cell Termen de trimitere a temei: Luni, 31 martie 2008, ora 23:55 1. Specificatii functionale O arhitectura de tip Cell consta din urmatoarele

More information

Informaţie privind condiţiile de eliberare a creditelor destinate persoanelor fizice - consumatori a BC MOBIASBANCĂ Groupe Société Generale S.A.

Informaţie privind condiţiile de eliberare a creditelor destinate persoanelor fizice - consumatori a BC MOBIASBANCĂ Groupe Société Generale S.A. Informaţie privind condiţiile de eliberare a creditelor destinate persoanelor fizice - consumatori a BC MOBIASBANCĂ Groupe Société Generale S.A. CREDIT IMOBILIAR în MDL (procurarea/construcţia/finisarea/moderniz

More information

Capitolul 4 SUBCERERI. F. Radulescu. Curs: Baze de date - Limbajul SQL

Capitolul 4 SUBCERERI. F. Radulescu. Curs: Baze de date - Limbajul SQL Capitolul 4 SUBCERERI 1 STUD MATR NUME AN GRUPA DATAN LOC TUTOR PUNCTAJ CODS ---- ------- -- ------ --------- ---------- ----- ------- ---- 1456 GEORGE 4 1141A 12-MAR-82 BUCURESTI 2890 11 1325 VASILE 2

More information

Candlesticks. 14 Martie Lector : Alexandru Preda, CFTe

Candlesticks. 14 Martie Lector : Alexandru Preda, CFTe Candlesticks 14 Martie 2013 Lector : Alexandru Preda, CFTe Istorie Munehisa Homma - (1724-1803) Ojima Rice Market in Osaka 1710 devine si piata futures Parintele candlesticks Samurai In 1755 a scris The

More information

Ghid de utilizare a Calculatorului valorii U

Ghid de utilizare a Calculatorului valorii U Ghid de utilizare a Calculatorului valorii U la Apelul de Propuneri de Proiecte Nr.3 pentru Instituțiile din Sectorul Public pentru investiții în Eficiență Energetică și Surse de Energie Regenerabilă Versiunea

More information

3.2 Arhitectura setului de instrucţiuni ISA. Copyright Paul GASNER

3.2 Arhitectura setului de instrucţiuni ISA. Copyright Paul GASNER 3.2 Arhitectura setului de instrucţiuni ISA Copyright Paul GASNER Programarea CPU Programele scrise în limbaje de nivel înalt trebuie compilate pentru a obţine un program executabil Din punctul de vedere

More information

Ierarhia memoriilor Tipuri de memorii Memorii semiconductoare Memoria cu unități multiple. Memoria cache Memoria virtuală

Ierarhia memoriilor Tipuri de memorii Memorii semiconductoare Memoria cu unități multiple. Memoria cache Memoria virtuală Ierarhia memoriilor Tipuri de memorii Memorii semiconductoare Memoria cu unități multiple Memoria cache Memoria virtuală 1 Memorii RAM: datele sunt identificate cu ajutorul unor adrese unice Memorii asociative:

More information

MICROSOFT ACCESS 2007 (DE CĂUTAT???)

MICROSOFT ACCESS 2007 (DE CĂUTAT???) Access 2007 Modul A Pagina 1 MICROSOFT ACCESS 2007 (DE CĂUTAT???) 1. CONCEPTE GENERALE PRIVIND BAZELE DE DATE Evoluţia diferitelor metode şi tehnici de organizare a datelor pe suporturi de memorie externă

More information

Subprograme şi pachete PL/SQL

Subprograme şi pachete PL/SQL Subprograme şi pachete PL/SQL Subprograme PL/SQL Subprogramele sunt blocuri PL/SQL care au nume, acceptă parametri şi pot fi apelate din alte blocuri PL/SQL. Subprogramele pot fi declarate ca proceduri

More information

MODELUL UNUI COMUTATOR STATIC DE SURSE DE ENERGIE ELECTRICĂ FĂRĂ ÎNTRERUPEREA ALIMENTĂRII SARCINII

MODELUL UNUI COMUTATOR STATIC DE SURSE DE ENERGIE ELECTRICĂ FĂRĂ ÎNTRERUPEREA ALIMENTĂRII SARCINII MODELUL UNUI COMUTATOR STATIC DE SURSE DE ENERGIE ELECTRICĂ FĂRĂ ÎNTRERUPEREA ALIMENTĂRII SARCINII Adrian Mugur SIMIONESCU MODEL OF A STATIC SWITCH FOR ELECTRICAL SOURCES WITHOUT INTERRUPTIONS IN LOAD

More information

3. MECANISMUL DE OPERARE ÎN PROLOG

3. MECANISMUL DE OPERARE ÎN PROLOG 13 3. MECANISMUL DE OPERARE ÎN PROLOG 3.1. Satisfacerea clauzelor Vom explica în acest capitol modul în care se realizează satisfacerea scopului unui program în PROLOG. Convenim să numim mulţimea de fapte

More information

4. Asignarea adreselor IP

4. Asignarea adreselor IP 4. Asignarea adreselor IP Scopul acestei lucrări este să familiarizeze studenţii cu noțiunea de adresă IP, clase de adrese IP, mască de reţea, adresă IP de rețea, adresă IP de broadcast, metode de alocare

More information