Laborator 1 Structuri de date elementare i de nivel jos Tema 1 (1 or) Declararea i utilizarea scalarilor n limbajele de proramare Sarcina: 1. Declararea variabilelor de tip predefinit n limbajele C++, ascal, erl, !isual "asic. #. Declararea tipurilor proprii n limbajele C++, ascal, erl, !isual "asic. $. Determinarea %onei de memorie ocupat& de diferite tipuri. Tema ! (1 or) Declararea i utilizarea structurilor de nivel jos Sarcina: 1. Declararea unui masiv de rangul ' cu ( elemente n limbajele C++, ascal, erl, !isual "asic. #. )fectuarea opera*iilor standard +ad&ugare, inserare, tergere, citire elemente i calculul nr. de elemente semnificative, asupra lui. $. Declararea irurilor n limbajele C++, ascal- efectuarea opera*iilor de ad&ugare, citire, concatenare, copiere. Laborator ! "tilizarea variabile dinamice n limbajele de proramare Tema # (! ore) $ointeri i re%erin&e Sarcina: 1. Citirea adresei de memorie pentru scalari de diferite tipuri n limbajele C++, ascal, erl, !isual "asic #. Lucrul cu variabile de tip pointer i referin*& n limbajele C++, ascal: . declararea lor- . crearea i alocarea memoriei- . nscrierea valorilor n %ona de memorie alocat& i citirea lor- . eliberarea memoriei. $. /ormarea i lucrul cu liste dinamice n limbajele C++, ascal . Declararea unei structuri ce con*ine referin*& la structur& similar&. . /ormarea unei liste /0/1- efectuarea opera*iilor de ad&ugare, inserare, eliminare a elementelor- parcurgerea listei. . /ormarea unei liste /0L1- efectuarea opera*iilor de ad&ugare, inserare, eliminare a elementelor- parcurgerea listei. Laborator # Lucru cu structurile arborescente Tema # (' ore) (rbori binari Sarcina: 1. Construirea uni arbore binar complet de nivelul $, n limbajele C++, ascal #. arcurgerea arborelui prin metoda preordine, inordine i postordine. Laborator ' "tilizarea te)nicilor de sortare a datelor Tema ' (' ore) (loritmi de sortare intern Sarcina: $. )laborarea algoritmilor i sortarea ascendent& a unui masiv liniar de ( elemente utili%2nd metodele: bulelor, inser*iei, selec*iei, sortare rapid&, n limbajele C++, ascal, erl, !isual "asic 3. 4nali%a performan*elor algoritmilor de sortare. 1 *+empli%icare, Tema 1 Declararea i utilizarea scalarilor n limbajele de proramare 1.5ipuri de date in C si memoria ocupata : int . # b6tes c7ar . 1 b6tes float . 3 b6tes double . 8 b6tes . . . #.5ipuri de date in ascal si memoria ocupata : integer # b6tes string ma9im #:; simboluri c7ar 1 b6tes . . . $.5ipuri de date in !isual "asic si memoria ocupata : . . . 3.5ipuri de date in erl : . . . $ascal rogram def<scalari- t6pe intreg=integer- caracter=c7ar- cu<virgula=real- var a:integer- b:c7ar- c:real- d:b6te- e: >ord- f:intreg-g:caracter-7:cu<virgula- begin a:=1- b:=?C?- c:=#$.:- d:=#$7- e:=3:.;- readln+f,- readln+g,- readln+7,- >riteln +@variabile de tip integerA,a,A @,intreg,- >riteln +@variabile de tip caracterialA,b,A @,caracter,- >riteln +@variabila de tip >ordA,e,- . . . end. - .. Bdefine intreg int- Bdefine c7aracter c7ar- void main+void, C int a- c7ar b- float c- double d- intreg f- caracter g- a=1- b=?C?- c=#$.:- 1 d=#$3:;.;D gets+f,- gets+g,- printf+Avariabile de tip intreg Ea EfFnA,a,f,- . . . G Tema ! Declararea i utilizarea structurilor de nivel jos $ascal var a:arra6 H1..:,1..#I of integer- i,j:integer- c:string- begin >riteln+Aadaugarea elementelorA,- for j:=1 to # do for i:=1 to : do begin >rite+Aintroducem elementul din rindulA,j,A coloanaA,i,- readln +aHj,iI,- end- >riteln+Acitirea elementelorA,- for j:=1 to # do begin >rite +ArindulA,j,- for i:=1 to : do >rite+aHj,iI,- >riteln- end- . . . >rite+Acitira unui sir:A,- readln+c,- >riteln+Asirul c are valoarea:Ac,- end. -.. Binclude Jstdio.7K Binclude Jconio.7K Bdefine m # Bdefine n : void main+void, C int aHnIHmI- int i,j- clrscr+,- printf+LDati datele in tabel :FnL,- for+i=M- iJn- i++, for+j=M- jJm- j++, C printf+LtHEdIHEdI= L,i,j,- scanf+LEdL,NaHiIHjI,- G printf+LDatele din tabel sint :FnL,- for+i=M- iJn- i++, # for+j=M- jJm- j++, printf+LaHEdIHEdI= EdFnL,i,j,aHiIHjI,- getc7+,- G /isual basic Sub /ill4rra6+, Const (=: Dim dList+:, #, 4s 0nteger Oandomi%e @0ntroducerea aleatorA /or i = 1 5o # /or j = 1 5o : dList+i, = /ormat+Ond+,,LM.MMMML, (e9t j (e9t i @4fisareaA /or i = 1 5o # /or j = 1 5o : Debug.rint /ormat+dlist+i,,LM.MMMML, (e9t j (e9t i )nd Sub Tema # $ointeri i re%erin&e $ascal C Crearea si parcurgerea unei liste bidirectionale G t6pe 4dresaCelula=PCelula- Celula=record 0nfo : string- Qrm, rec : 4dresaCelula- end- var , C adresa de ba%a G ! : 4dresaCelula- C adresa virfului G procedure Creare- var O : 4dresaCelula- begin :=nil- !:=nil- . >riteln+RDafi Sista-R,- >7ile not eof do begin ne> +O, - readln+OP.0nfo,- OP.rec:=nil- OP.Qrm:=nil- if =nil t7en begin :=O- !:=O end else begin !P.Qrm:=O- OP.rec:=!- !:=O end- end- end- C Creare G procedure 4fisarea- var O : 4dresaCelula- begin >riteln+R4fisarea de la baza la virf;'); O:=- >7ile OJKnil do begin $ >riteln+OP.0nfo,- O:=OP.Qrm- end- >ritelnCR4fisarea de la virf la baza;'); O:=!- >7ile OJKnil do begin >riteln+OP.0nfo,- O:=OP.rec- end- readln- end- C 4fisarea G begin Creare- 4fisarea- end. Tema ' (rbori binari $ascal C arcurgerea arborelui binar G t6pe 4rbore=P(od- (od=record 0nfo : string- Stg, Dr - 4rbore end- var 5 : 4rbore- C radacina G %unction 4rb , 4rbore- C crearea arborelui binar G var O : 4rbore- s , strin0 bein readln+s,- i% s12 t)en (rb,1nil else bein ne> +O, - OP.0nfo:=s- >rite+'Dati descendentul sting'); >ritelnCR al nodului ', s, R:R,- OP,Stg:=4rb- >rite+RDafi descendentul dreptR,- >ritelnCR al nodului ', s, R:R,- OP.Dr:=4rb- 4rb:=O- end0 end- C 4rb G procedure 4fis4rb+5 : 4rbore- nivel : integer,- C afigarea arborelui binar G var i : integer- bein i% T34nil t)en bein 4fis4rb+5P.Stg, nivel+l,- %or i:=l to nivel do >rite+R R,- >riteln+5P.0nfo,- 4fis4rb+5P.Dr, nivel+l,- end- end- C 4fisare4rb G procedure reordine+5 : 4rbore,- C traversare OSD G bein i% T34nil t)en bein >riteln+5P.0nfo,- reordine +5P.Stg,- reordineC5P.Dr, end0 3 end- C reordine G procedure 0nordine+5 : 4rbore,- C traversare SOD G bein i% T34nil t)en bein 0nordine+5P.Stg,- >riteln+5P.0nfo,- 0nordine+5P.Dr, end0 end- + reordine G procedure ostordine+5 : 4rbore,- C traversare SDO G bein i% T34nil t)en bein ostordine+5P.Stg,- ostordineC5P.Dr,- >ritelnC5P.0nfo, end0 end- C ostordine G bein >riteln + R4afi radacina:RG - 5:=4rb- 4fis4rb+5, M,- readln- >riteln+Rarcurgere in preordine-R,- reordine+5,- readln- >riteln+Rarcurgere in inordine:'); 0nordine+5,- readln- >ritelnCRarcurgere in postordine:'); ostordine+5,- readln- end5 2.C++ # include <iostream.h> #include <conio.h> #include <stdio.h> struct arb{ int data;arb *stang, *drept; }; arb *creare(arb *p,int c { i! (p""#$%% {p"ne& arb; p'>data"c; p'>stang"p'>drept"#$%%; } else i!(c<p'>data p'>stang"creare(p'>stang,c; else p'>drept"creare(p'>drept,c; return p; } (oid inordine(arb* p {i! (p)"#$%% : {inordine(p'>stang; cout<<p'>data<<endl; inordine(p'>drept; } } (oid preordine(arb* p {i!(p)"#$%% {cout<<p'>data<<endl; preordine(p'>stang; preordine(p'>drept; } } (oid postordine(arb* p {i!(p)"#$%% {postordine(p'>li!t; postordine(p'>drept*; cout<<p'>data<<endl; } } arb *rad"#$%%; char c; (oid main( {cout<<+,ati numarul (-.- pentru terminare /001n+; &hile(scan!(+2d+,3c""4 rad"creare(rad,c; cout<<+0nordine1n+; inordine(rad; cout<<endl<<endl; getch(; cout<<+5reordine+<<endl; preordine(rad; cout<<endl<<endl;getch(; cout<<+5ostordine+<<endl; postordine(rad; cout<<endl<<endl; getch(; } ;