Creeaza.com - informatii profesionale despre


Simplitatea lucrurilor complicate - Referate profesionale unice



Acasa » referate » informatica
APLICATII CU TIPURI DE DATE STRUCTURATE ALGORITMI ELEMENTARI

APLICATII CU TIPURI DE DATE STRUCTURATE ALGORITMI ELEMENTARI



APLICATIICUTIPURIDEDATESTRUCTURATE ALGORITMIELEMENTARI

1 TABLOURI

1.1 Determinare minim/maxim

Program element_minim;

var a:array [1..20] of integer;

n,i,min:integer;


begin

write('n=');readln(n);

for i:=1 to n do

begin write('a[',i,']=');readln(a[i]) end;

min:=MAXINT;

for i:=1 to n do

if a[i]<min then min:=a[i];

writeln('Elementul minim din sir este: ',min);

readln

end.

Program element_maxim;

var a:array [1..20] of integer;

n,i,max:integer;

begin

write('n=');readln(n);

for i:=1 to n do

begin write('a[',i,']=');readln(a[i]) end;

max:=-MAXINT;

for i:=1 to n do

if a[i]>max then max:=a[i];

writeln('Elementul maxim din sir este: ',max);

readln

end.

1.2 Ordonare (metoda bulelor, insertie, selectie, numarare)


Program ordonare_metoda_bulelor;

var a:array[1..15]of integer;

n,i,aux:integer;

ordonat:boolean;

begin

write('n=');readln(n);

for i:=1 to n do

begin write('a[',i,']='); readln(a[i])

end;

write('Vectorul initial:');

for i:=1 to n do

write(a[i],' ');

writeln;

repeat

ordonat:=true;

for i:=1 to n-1 do

if a[i]>a[i+1] then begin

aux:=a[i];

a[i]:=a[i+1];

a[i+1]:=aux;

ordonat:=false

end

until ordonat;

write('Vectorul ordonat crescator: ');

for i:=1 to n do

write(a[i],'');

readln

end.



Program ordonare_metoda_insertiei;

var a:array[1..15]of integer;

n,i,aux,j:integer;

begin

write('n=');readln(n);

for i:=1 to n do

begin

write('a[',i,']=');readln(a[i])

end;

write('Vectorul initial este:');

for i:=1 to n do

write(a[i],'');

writeln;

for i:=2 to n do

begin

aux:=a[i];j:=i-1;

while (j>0) and (aux<a[j])do

begin

a[j+1]:=a[j];

j:=j-1

end;

a[j+1]:=aux

end;

write('Vectorul ordonat crescator: ');

for i:=1 to n do

write(a[i],'');

readln

end.



Program ordonare_metoda_selectiei;

var a:array[1..15]of integer;

n,i,aux,j,min,poz:integer;

begin

write('n=');readln(n);

for i:=1 to n do

begin

write('a[',i,']='); readln(a[i])

end;

write('Vectorul initial este:');

for i:=1 to n do

write(a[i],'');

writeln;

for i:=1 to n-1 do

begin

min:=a[i];poz:=i;

for j:=i+1 to n do

if a[j]<min then begin min:=a[j];

poz:=j end;

if poz<>i then begin

aux:=a[i];

a[i]:=a[poz];

a[poz]:=aux

end

end;

write('Vectorul ordonat crescator: ');

for i:=1 to n do

write(a[i],'');

readln

end.


Fiind dat un sir de n numere intregi memorat intr-un vector sa se ordoneze crescator elementele vectorului prin numarare.


Program ordonare_numarare;

var a,nr:array[1..10]of integer;

n,i,j,aux,k:integer;

begin

write('n=');readln(n);

for i:=1 to n do

begin

write('a[',i,']='); readln(a[i])

end;

write('Vectorul initial este:');

for i:=1 to n do

write(a[i],'');

writeln;

for i:=1 to n do

nr[i]:=1;

for i:=1 to n-1 do

for j:=i+1 to n do

if a[i]>a[j] then nr[i]:=nr[i]+1

else nr[j]:=nr[j]+1;



write('Vectorul ordonat crescator:');

for i:=1 to n do

begin

if nr[i]<>i then begin j:=i; repeat j:=j+1 until nr[j]=i;aux:=a[i];a[i]:=a[j];a[j]:=aux;

nr[j]:=nr[i];nr[i]:=i end;

end;

for i:=1 to n do

write(a[i],'');

readln;

end.


1.3 Interclasare

Fiind date doua siruri de n, respectiv m numere intregi memorate in doi vectori (vectorii sunt ordonati crescator), se cere sa se formeze al treilea vector care sa contina elementele celor doi vectorui (elementele comune se iau o singura data) de asemenea ordonate crescator.


Program interclasarea_a_doi_vectori;

var a,b,c:array[1..20]of integer;

n,m,i,j,k:integer;

begin

write('n=');readln(n);

write('m=');readln(m);

for i:=1 to n do

begin

write('a[',i,']='); readln(a[i])

end;

for i:=1 to m do

begin

write('b[',i,']='); readln(b[i])

end;

write('Vectorul unu:');

for i:=1 to n do

write(a[i],'');

writeln;

write('Vectorul doi:');

for i:=1 to m do

write(b[i],'');

writeln;

i:=1;j:=1;k:=0;

while (i<=n) and (j<=m) do

begin

k:=k+1;

if a[i]<b[j] then begin

c[k]:=a[i];

i:=i+1

end

else if a[i]>b[j] then begin

c[k]:=b[j];

j:=j+1

end

else begin

c[k]:=a[i];

i:=i+1;

j:=j+1

end

end;

if i<=n then for j:=i to n do

begin

k:=k+1;

c[k]:=a[j]

end

else for i:=j to m do

begin

k:=k+1;

c[k]:=b[i]

end;

write('Vectorul rezultat: ');

for i:=1 to k do

write(c[i],'');

readln

end.


1.4 Metode de cautare (secventiala, binara)

Fiind dat un sir de n numere intregi ordonat crescator, memorat intr-un vector si un numar intreg nr, sa se decida daca nr se gaseste in sirul celor n numere citite. (cautare binara)

Program cautare_binara;

var a:array [1..20] of integer;

n,i,nr,li,ls,mijloc:integer;

gasit:boolean;

begin

write('n=');readln(n);

for i:=1 to n do

begin

write('a[',i,']='); readln(a[i])

end;

write('nr=');readln(nr);

li:=1; ls:=n; gasit:=false;

repeat

mijloc:=(li+ls) div 2;

if nr=a[mijloc] then gasit:=true

else if nr<a[mijloc] then ls:=mijloc-1

else li:=mijloc+1

until (li>ls) or (gasit);

if gasit then writeln(nr,' face parte din sir si este pe pozitia ',mijloc)

else writeln(nr,' nu face parte din sir');

readln

end.

Fiind dat un sir de n numere intregi, memorat intr-un vector si un numar intreg nr, sa se decida daca nr se gaseste in sirul celor n numere citite. (cautare secventiala)

Program cautare_secventiala;

var a:array [1..20] of integer;

n,i,nr:integer;

gasit:boolean;

begin

write('n=');readln(n);

for i:=1 to n do

begin

write('a[',i,']='); readln(a[i])

end;

write('nr=');readln(nr);

gasit:=false; i:=1;

while (i<=n) and (not gasit) do

begin

if nr=a[i] then gasit:=true;

i:=i+1

end;

if gasit then writeln(nr,' face parte din sir si este pe pozitia ',i-1)

else writeln(nr,' nu face parte din sir');

readln

end.


1.5 Parcurgerea unei matrice in raport cu diagonalele

Se considera o matrice cu n linii si n coloane.O matrice cu proprietatea ca numarul liniilor este egal cu numarul coloanelor se numeste matrice patratica.


a11a12 a13a14diagonala principala: a11, a22, a33, a44

a21a22a23a24deasupra diagonalei principale:a12, a13, a14, a23, a24, a34

a31a32a33a34sub diagonala principala: a21, a31, a32, a41, a42, a43



a41a42a43a44

Pentru a “vizita” elementele de pe diagonala principala parcurgem toate elementele din matrice in doua cicluri (liniile i de la 1 la n si coloanele j de la 1 la n) si pentru fiecare element a[i,j] testam daca este situat pe diagonala principala, adica verificam daca i=j.

For i:=1 to n dosauFor i:=1 to n do

For j:=1 to n do<prelucreaza a[i,i]>

ifi=jthen

<prelucreaza a[i,j]>

Pentru a “vizita” elementele de deasupra diagonalei principale avem doua posibilitati:

a)     parcurgem toate elementele din matrice in doua cicluri (liniile i de la 1 la n si coloanele j de la 1 la n) si pentru fiecare element a[i,j] testam daca este situat deasupra diagonalei principale, adica verificam daca i<j.

b)     “vizitam” numai elementele aflate deasupra diagonalei principale: parcurgem numai liniile i care contin elemente deasupra diagonalei principale i=1,2,…,n-1.Pentru fiecare linie i, parcurgem numai coloanele j ale liniei i care au elemente deasupra diagonalei principale, adica j=i+1,…,n.

b)

a)For i:=1 to n dob) for i:=1 to n-1 do

For j:=1 to n dofor j:=i+1 to n do

ifi<jthen<viziteaza a[i,j]>

<prelucreaza a[i,j]>

Pentru a “vizita” elementele de sub diagonala principala avem doua posibilitati:

a)     parcurgem toate elementele din matrice in doua cicluri (liniile i de la 1 la n si coloanele j de la 1 la n) si pentru fiecare element a[i,j] testam daca este situat sub diagonala principala, adica verificam daca j<i.

b)     “vizitam” numai elementele aflate sub diagonala principala: parcurgem numai liniile i care contin elemente situate sub diagonala principala i=2,…,n.Pentru fiecare linie i, parcurgem numai coloanele j ale liniei i care au elemente sub diagonala principala, adica j=1,…,i-1.

b)

a)For i:=1 to n dob) for i:=2 to n do

For j:=1 to n dofor j:=1 to i-1 do

ifj<ithen<viziteaza a[i,j]>

<prelucreaza a[i,j]>

a11a12 a13a14diagonala secundara: a14, a23, a32, a41

a21a22a23a24deasupra diagonalei secundare:a11, a12, a13, a21, a22, a31

a31a32a33a34sub diagonala secundara: a24, a34, a33, a44, a43, a42

a41a42a43a44

Pentru a “vizita” elementele de pe diagonala secundara parcurgem toate elementele din matrice in doua cicluri (liniile i de la 1 la n si coloanele j de la 1 la n) si pentru fiecare element a[i,j] testam daca este situat pe diagonala secundara, adica verificam daca i+j=n+1.

For i:=1 to n dosauFor i:=1 to n do

For j:=1 to n do<prelucreaza a[i,n-i+1]>

ifi+j=n+1then

<prelucreaza a[i,j]>

Pentru a “vizita” elementele de deasupra diagonalei secundare avem doua posibilitati:

a)     parcurgem toate elementele din matrice in doua cicluri (liniile i de la 1 la n si coloanele j de la 1 la n) si pentru fiecare element a[i,j] testam daca este situat deasupra diagonalei secundare, adica verificam daca i+j<n+1.

b)     “vizitam” numai elementele aflate deasupra diagonalei secundare: parcurgem numai liniile i care contin elemente deasupra diagonalei secundare i=1,2,…,n-1.Pentru fiecare linie i, parcurgem numai coloanele j ale liniei i care au elemente deasupra diagonalei secundare, adica j=1,…,n-i.

b)

a)For i:=1 to n dob) for i:=1 to n-1 do

For j:=1 to n dofor j:=1 to n-i do

ifi+j<n+1then<viziteaza a[i,j]>

<prelucreaza a[i,j]>

Pentru a “vizita” elementele de sub diagonala secundara avem doua posibilitati:

a)        parcurgem toate elementele din matrice in doua cicluri (liniile i de la 1 la n si coloanele j de la 1 la n) si pentru fiecare element a[i,j] testam daca este situat sub diagonala secundara, adica verificam daca i+j>n+1.

b)       “vizitam” numai elementele aflate sub diagonala secundara: parcurgem numai liniile i care contin elemente situate sub diagonala secundara i=2,…,n.Pentru fiecare linie i, parcurgem numai coloanele j ale liniei i care au elemente sub diagonala secundara, adica j=n,…,n-i+2.

b)a)For i:=1 to n dob) for i:=2 to n do

b)For j:=1 to n dofor j:=n-i+2 to n do

b)ifi+j>n+1then<viziteaza a[i,j]>

b)<prelucreaza a[i,j]>

b)









Politica de confidentialitate

.com Copyright © 2019 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.


Proiecte

vezi toate proiectele
 PROIECT DE LECTIE Clasa: I Matematica - Adunarea si scaderea numerelor naturale de la 0 la 30, fara trecere peste ordin
 Proiect didactic Grupa: mijlocie - Consolidarea mersului in echilibru pe o linie trasata pe sol (30 cm)
 Redresor electronic automat pentru incarcarea bateriilor auto - proiect atestat
 Proiectarea instalatiilor de alimentare ale motoarelor cu aprindere prin scanteie cu carburator

Lucrari de diploma

vezi toate lucrarile de diploma
 Lucrare de diploma - eritrodermia psoriazica
 ACTIUNEA DIPLOMATICA A ROMANIEI LA CONFERINTA DE PACE DE LA PARIS (1946-1947)
 Proiect diploma Finante Banci - REALIZAREA INSPECTIEI FISCALE LA O SOCIETATE COMERCIALA
 Lucrare de diploma managementul firmei “diagnosticul si evaluarea firmei”

Lucrari licenta

vezi toate lucrarile de licenta
 CONTABILITATEA FINANCIARA TESTE GRILA LICENTA
 LUCRARE DE LICENTA - FACULTATEA DE EDUCATIE FIZICA SI SPORT
 Lucrare de licenta stiintele naturii siecologie - 'surse de poluare a clisurii dunarii”
 LUCRARE DE LICENTA - Gestiunea stocurilor de materii prime si materiale

Lucrari doctorat

vezi toate lucrarile de doctorat
 Doctorat - Modele dinamice de simulare ale accidentelor rutiere produse intre autovehicul si pieton
 Diagnosticul ecografic in unele afectiuni gastroduodenale si hepatobiliare la animalele de companie - TEZA DE DOCTORAT
 LUCRARE DE DOCTORAT ZOOTEHNIE - AMELIORARE - Estimarea valorii economice a caracterelor din obiectivul ameliorarii intr-o linie materna de porcine

Proiecte de atestat

vezi toate proiectele de atestat
 Proiect atestat informatica- Tehnician operator tehnica de calcul - Unitati de Stocare
 LUCRARE DE ATESTAT ELECTRONIST - TEHNICA DE CALCUL - Placa de baza
 ATESTAT PROFESIONAL LA INFORMATICA - programare FoxPro for Windows
 Proiect atestat tehnician in turism - carnaval la venezia




ORGANIZAREA DATELOR PE UNITATILE DE DISC (HDD, FLOPPY,CD-ROM, ETC.)
MICROSOFT WORD
Notiuni de hardware
Recursivitate
Structuri de date fundamentale
ATESTAT LA INFORMATICA - Baza de date relationala aplicata intr-o biblioteca scolara
Cina filozofilor (The Dining philosophers problem)
Proiect informatica - Hidrografia Romaniei


Termeni si conditii
Contact
Creeaza si tu