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

APLICATII  CU  TIPURI  DE  DATE  STRUCTURATE ALGORITMI  ELEMENTARI

1 TABLOURI

            1.1 Determinare minim/maxim

Fiind dat un sir de n numere intregi memorat intr-un vector sa se determine cel mai mic element.

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.

Fiind dat un sir de n numere intregi memorat intr-un vector sa se determine cel mai mare element.

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)

Fiind dat un sir de n numere intregi memorat intr-un vector sa se ordoneze crescator elementele vectorului folosind metoda bulelor.


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.


Fiind dat un sir de n numere intregi memorat intr-un vector sa se ordoneze crescator elementele vectorului folosind metoda insertiei.


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.


Fiind dat un sir de n numere intregi memorat intr-un vector sa se ordoneze crescator elementele vectorului folosind metoda selectiei.


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.


     a11          a12          a13          a14             diagonala principala: a11, a22, a33, a44  

    a21      a22          a23          a24             deasupra diagonalei principale:  a12, a13, a14, a23, a24, a34       

    a31      a32          a33          a34             sub diagonala principala: a21, a31, a32, a41, a42, a43  

    a41      a42          a43          a44

         

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 do                             sau                 For i:=1 to n do

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

                if  i=j  then

                        <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 do                                            b) for i:=1 to n-1 do

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

       if  i<j  then                                                        <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 do                                            b) for i:=2 to n do

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

       if  j<i  then                                                        <viziteaza a[i,j]>

              <prelucreaza a[i,j]>

a11           a12          a13          a14             diagonala secundara: a14, a23, a32, a41  

a21       a22          a23          a24             deasupra diagonalei secundare:  a11, a12, a13, a21, a22, a31       

a31       a32          a33          a34             sub diagonala secundara: a24, a34, a33, a44, a43, a42  

    a41       a42          a43          a44

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 do                         sau                   For i:=1 to n do                 

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

                if  i+j=n+1  then

                        <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 do                                            b) for i:=1 to n-1 do

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

       if  i+j<n+1  then                                               <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 do                                            b) for i:=2 to n do

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

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

b)              <prelucreaza a[i,j]>

b)





Proiecte

vezi toate proiectele
 PROIECT DE TEHNOLOGIE DIDACTICA Matematica-Geometrie CLASA: a VIII-a - Proiectii de puncte, de segmente de dreapta si de drepte pe un plan
 PROIECT DIDACTIC Grupa: mijlocie Expresie grafica si plastica Rochita
 TEHNOLOGIA PRESARII LA RECE - Proiectarea stantei pentru reperu
 Proiect Implementarea SQM in cadrul societatii Ericsson Telecommunication Romania - Managementul Afacerilor prin Proiecte

Lucrari de diploma

vezi toate lucrarile de diploma
 LUCRARE DE DIPLOMA BALNEOFIZIOKINETOTERAPIE SI RECUPERARE - TRATAMENTUL STARII DE RAU ASTMATIC LA COPIL
 Relatiile diplomatice dintre Romania si Austro- Ungaria din a doua jumatate a secolului al XIX-lea
 Proiect de diploma ecologie - calitatea aerului ambiental in regiunea 5 vest
 LUCRARE DE DIPLOMA MANAGEMENT

Lucrari licenta

vezi toate lucrarile de licenta
 LUCRARE DE LICENTA MANAGEMENT CRESTEREA VANZARILOR PRIN METODA IMBUNATATIRII SERVICIILOR CATRE CLIENTI
 CONTABILITATEA FINANCIARA TESTE GRILA LICENTA
 Lucrare de licenta educatie fizica si sport - sistemul de selectie in jocul de handbal pentru copii de 10-11 ani in concordanta cu cerintele handbalul
 Lucrare de licenta - cercetare si analiza financiara asupra deseurilor de ambalaje la sc.ambalaje sa

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
 LUCRARE DE ATESTAT - TABLOURI BIDIMENSIONALE
 ATESTAT LA INFORMATICA - Gestionarea unui magazine de confectii
 LUCRARE DE ATESTAT ELECTRONIST - TEHNICA DE CALCUL - Placa de baza
 PROIECT ATESTAT STRUNGAR - Strung frontal


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

 


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