Creeaza.com - informatii profesionale despre


Evidentiem nevoile sociale din educatie - Referate profesionale unice



Acasa » referate » informatica
LUCRARE DE ATESTAT - TABLOURI BIDIMENSIONALE

LUCRARE DE ATESTAT - TABLOURI BIDIMENSIONALE



  

Colegiul National „Nicolae Titulescu”

           Craiova

                                          LUCRARE DE ATESTAT

                        TABLOURI BIDIMENSIONALE


                                               ARGUMENT

               Tablourile bidimensionale  reprezinta o parte importanta din materia de studiu a unui elev de liceu  . Prin studiul  tablourilor bidimensionale sau matricilor s-a putut  usura rezolvarea exercitiilor si problemelor .Datorita modului  simplu de invatare si retinere a notiunilor esentiale si atractiei pentru  acest capitol din informatica , eu am ales tablourile bidimensionale ca tema pentru  atestat

                               Cap I. Notiuni introductive

                                       

                                              

           1.Tablouri bidimensionale

 

Def : Prin  tablou  intelegem o strucutura de date, toate de acelasi fel, care ocupa locatii successive in memorie.

Tablourile sunt de mai multe feluri dar cele mai folosite sunt tablourile unidimensionale si bidimensionale (matrici).

Def :Tablourile bidimensionale reprezinta o structura de date, toate de acelasi fel organizate pe linii si coloane.

Schematic arata astfel :

Coloana 1

Coloana2

Coloana 3

Coloana n

Linia 1

  a[1,1] 

   a[1,2]

   a[1,3]

..

   a[1,m]

Linia 2

  a[2,1]

   a[2,2]

   a[2,3]

..

   a[2,m]

Linia 3

  a[3,1]

   a[3,2]

   a[3,3]

   a[3,m]

……

………

……..

……..

.………..

Linia n

   a[n,1]

   a[n,2]

   a[n,3]

…………

   a[n,m]

                                                     

 1

 4

12

 3

0

 1

 0

22

4

 3

 1

 1

-matrice cu n x m elemente

-a[i,j] : i=indice de linie

            j=indice de coloana  

-exemplu :n=3 si m=4 :  a[2,3]=0    

     O categorie aparte a matricilor o constituie matricile patratice ,in care numarul de linii este egal cu numarul de coloane adica  n=m

 

                                 

                                          

                          2. Declararea tablourilor bidimensionale

   Se realizeaza prin doua metode:

a) type nume_tip = array[tip_indice1,tip_indice2] of tip_componenta

unde :tip_indice1 =indice de linie

          tip_indice2 =indice de coloana

          tip componenta = tipul de date din care fac parte elementele matricei

          nume_tip = numele atribuit de utilizator tipului de date

          array = cuvant cheie

          of = cuvant cheie

exemple:

1)     type tablou = array[1..5,1..3] of integer

2)     type matrice = array[1..10,1..10] of integer

b) var a :array[tip_indice1,tip_indice2] of tip_componenta

unde: a = numele matricei



         tip_indice1 = indice de linie

         tip_indice2 = indice de coloana

         array = cuvant cheie

         of = cuvant cheie

         var = cuvant cheie

         tip_componenta = tipul de date din care fac parte elementele matricei

   In aceasta varianta se spune ca s-a declarat un tip de date anonim

exemple:

1)     var t : array[-5..5,5..10] of char;

  t[-3,7] = ‘A’

2)     var m :array[‘a’..’m’,1..10] of boolean

  m[‘b’,3] = true

                          CAP II . Operatii cu tablouri bidimensionale

       Se presupune ca avem o matrice cu n linii si m coloane si ca avem urmatoarele declaratii

         A : array [1..10,1..10] of integer ;

          n , i , j : integer ;

1) Citirea tablourilor bidimensionale

for i : = 1 to n do

for j : = 1 to m do

  begin

     write (‘a[‘, i ,’,’, j ,’] =’) ;

      readln (a[i ,j]) ;

          end;

2) Tiparirea tablourilor bidimensionale

a)     pe un singur rand cu spatiu intre elemente

                     for i : = 1 to n do

                     for j : = 1 to m do

                         write (a[i,j],’ ‘) ;

                              end ;

b)     pe randuri diferite

for  i : = 1 to n do

for j : = 1 to m do

                               writeln (a[I,j]) ;

c)     sub forma de matrice

                  for i : = 1 to n do

                     begin

for j : = 1 to m do

  write (a[i,j]:3) ;

                             writeln ;

                               end ;  

                      

 

3) Aflarea sumei si produsului elementelor

   program suma_si_produs ;

   type matrice = array[1..10,1..10] of integer ;

    var a : matrice ;

       n , I , j , S , P : integer ;

    Begin

    write (‘n=’) ; readln(n) ;

      S : = 0

      P : = 1

       for i : = 1 to n do

          for j : = 1 to m do

     begin

        S : = S + a[i,j] ;

        P : = P * a[i,j] ;

          end ;  End.

4) Aflarea simultana a maximului si minimului

     program minim_si_maxim ;

   type matrice = array[1..10,1..10] of integer ;

   var a : matrice ;

        n , i , j , min , max : integer ;

    Begin

     Write (‘n=’) ; readln (n) ;

        min : =a[1,1] ;

        max : = a[1,1] ;

        for i : = 1 to n do

         for j : = 1 to m do

 begin

   if a[i,j] > max them max : = a[i,j] ;

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

      end ;

End .

5) Afisarea elementelor matricei in ordinea rezultata parcurgerii acesteia in spirala

 program spirala ;

type matrice = array[1..10,1..10] of integer ;

vat    a  :  matrice ;

      n, i, j, k : integer  ;

Begin

 write (‘n=’); readln(n) ;

 for i : = 1 to n do

   for j : = 1 to n do

     begin

       write (‘ a[‘, i ,’,’, j ,’] = ‘) ;

       readln (a[i,j]);

    end ;

for k : = 1 to n div 2 +1 do

  begin

    for i : = k to n-k+1 do writeln (a[k,i]) ;

    for i : = k +1 to n-k+1 do writeln (a[i,n-k+1]) ;

    for i : = n-k downto k do writeln (a[n-k+1,i]) ;

    for i : = n-k downto k+1 do writeln (a[i,k]) ;

     end;

End.

6) Interschimbarea liniilor unei matrice

   Se citeste un tablou cu m linii si n coloane. Se citesc de asemenea si doua numere naturale, distincte, x si y, cuprinse intre 1 si m. Se cere sa se schimbe liniile x si y. La inceput se va afisa tabloul initial, apoi cel obtinut prin interschimbarea liniilor x si y

    Program inversare ;

   type matrice = array[1..10,1..10] of byte ;

   var a : matrice ;

         m , n , i , j , x , y , aux : integer ;

    Begin

      write (‘m=’) ; readln (m) ;

      write (‘n=’) ; readln (n) ;

      for i : = 1 to m do

        for j : = 1 to n do

 begin

    write (‘a[‘, i ,’,’, j ,’]=’) ; readln (a[i,j]) ;

  end ;    

        write (‘x=’) ; readln (x) ;

        write (‘y=’) ; readln (y) ;

         for i := 1 to m do

          begin

            for j : = 1 to n do

               write (a[i,j],’ ‘) ;

                 writeln ;

           for j : = 1 to n do

             begin

               aux : = a[x,j] ;

               a[x,j] : = a[j,y] ;

               a[j,y] : = aux ;

  end ;

          writeln ;        

           for i : = 1 to  m do

            begin

                for j = 1 to n do

                     write (a[i,j],’ ‘) ;

              writeln ;

          end ;

          End.        

                                          Cap III .  Aplicatii cu matrici

  Se da o matrice  a patratica cu n x n elemente care are urmatoarele cerinte :

 a) Sa se citeasca si sa se tipareasca matricea a ?

 b) Sa se afiseze minimul si maximul matricei precum si pozitiile pe care se afla acestia ?

 c) Sa se realizeze o procedura prin care sa se interschimbe doua linii oarecare din matrice ?

d) Sa se afiseze maximul elementelor matricei pe linie respectiv minimul pe coloane ?

e) Sa se calculeze suma elementelor matricei a de pe diagonala principala respectiv suma elementelor de pe diagonala secundara ?

       program atestat;

    type matrice=array[1..10,1..10] of integer;

          var a : matrice;

                 s1, s2, n, i, j: integer;

               max ,  min:integer;

     procedure citire_matrice(var a:matrice;var n:integer);

           begin

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

          for i : =1 to n do

          for j : = 1 to n do

                begin

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

        end;

        end;

    procedure tiparire_matrice(a:matrice ; n:integer);

        begin

       for i : = 1 to n do

            begin

              for j : =1 to n do

         write(a[i,j]:3,' ');

      writeln;

     end;

    end;

    procedure pozitie(nr:integer);

        begin

       for i:=1 to n do

      for j:=1 to n do

      if a[i,j]=nr then

      writeln(i,' ',j);

      end;

    procedure maxim_si_minim(a:matrice;n:integer);

        begin

      max:=a[1,1];

      min:=a[1,1];

      for i:=1 to n do

      for j:=1 to n do

            begin

           if a[i,j]>max then

           max:=a[i,j];

           if a[i,j]<min then

            min:=a[i,j];

     end;

     end;

  procedure maxim_pe_linii(a:matrice;n:integer;k:integer);

      var max_lin:integer;



     begin

       max_lin : =a[k,1];

      for j : =1 to n do

      if a[k,j] > max_lin then max_lin : =a[k,j];

     writeln('maximul pe linia ', k ,' este :',max_lin);

  end;

 procedure minim_pe_coloane(a:matrice;n:integer;k:integer);

    var min_col:integer;

       begin

     min_col:=a[1,k];

   for i:=1 to n do

   if a[1,k]<min_col then min_col:=a[1,k];

   writeln('minimul pe coloana ',k,' este :',min_col);

   end;

procedure interschimbare(a:matrice;n:integer);

  var aux : matrice;

    begin

  i : =1;

     for j : =1 to n do

        aux[i,j]:=a[i,j];

      i:=2;

      for j : =1 to n do

          begin

               a[1,j] : =a[i,j];

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

          end;

      writeln(' Matricea interschimbata intre linia 1 si linia 2 este ');

      for i : =1 to n do

          begin

               for j : =1 to n do

                   write(a[i,j],' ');

               writeln;

          end;

          end;

procedure contur(a:matrice;n:integer);

    begin

       i :=1;

       for j : =1 to n do

       write(a[i,j],’ ‚);

         i :=n;

        for j : =1 to n do

        write(a[i,j],’ ‚);

        j:=1;

      for i : =2 to n-1 do

    write(a[i,j],’ ‚);

     j : =n;

   for i : =2 to n-1  do

   write(a[i,j],’ ‚);

   writeln;

  end;

procedure sum_diag_princ(a:matrice;n:integer);

   begin

  s1:=0;

   for i:=1 to n do

   for j:=1 to n do

     if i=j then

      s1:=s1+a[i,j];

    write(‚s1=’,s1);

      writeln;

  end;

procedure suma_diag_sec(a:matrice;n:integer);

 begin

   s2:=0;

   for i :=1 to n do

   for j :=1 to n do

  if (i+j)=n+1 then

  s2:=s2+a[i,j];

  write(‚s2=’,s2);

   writeln;

end;

Begin

   citire_matrice(a,n);

    tiparire_matrice(a,n);

    maxim_si_minim(a,n);

  writeln(‚Elementul maxim este :’,max,’ si se afla pe pozitia:’);

   pozitie(max);

 writeln(‚Elementul minim este :’,min,’ si se afla pe pozitia:’);

   pozitie(min);

 for i :=1 to n do

   maxim_pe_linii(a,n,i);

 for j :=1 to n do

    minim_pe_coloane(a,n,j);

 write(‚conturul matricei este: ‚);

    contur(a,n);

   interschimbare(a,n);

 write('Suma de pe diagonala principala este ');

   suma_diagonala_principala(a,n);

write('suma de pe diagonala secundara este ');

   suma_diagonala_secundara(a,n);

End.

                            EXECUTAREA  PROGRAMULUI DE LA APLICATIE

N =3

a [1,1]=1

a [1,2]=1

a [1,3]=3

a [2,1]=4

a [2,2]=5

a [2,3]=6

a [3,1]=7

a [3,2]=8

a [3,3]=9

                                                          1   2   3

Matricea initiala este       :                 4   5   6

                                                          7   8   9      

Elementul maxim este :9 si se afla pe pozitia : 3 3

Elementul minim este :1 si se afla pe pozitia : 1 1

Maximul pe linia 1 este :3

Maximul pe linia 2 este :6

Maximul pe linia 3 este :9

Minimul pe coloana 1 este :1

Minimul pe coloana 2 este :2

Minimul pe coloana 3 este :3

Conturul matricei este : 1 2 3 7 8 9 4 6

Matricea cu liniile 1 si 2 interschimbate este :

            4    5     6

            1    2     3

            7    8     9

Suma de pe diagonala principala este s1=15

Suma de pe diagonala principala este s2=15

                                         BIBLIOGRAFIE

  ATESTAT TESTE SI PROBLEME REZOLVATE :

Roxana TAMPLARU , Dana ROTOFEI , Nicolita GUTA , Mihaela GRINDEANU

Editura ARVES , 2003 , CRAIOVA

    MANUAL INFORMATICA CLASA A-IX-A VARIANTA PASCAL :

Tudor SORIN

Editura L&S INFOMAT , 2002 , CRAIOVA








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




PROIECT ATESTAT INFORMATICA - GESTIONAREA STOCULUI UNEI FARMACII
Trasaturile marketingului la inceput de secol XXI
Structuri arborescente combinationale pentru inmultirea binara
Elementele de baza ale unui template Joomla
Comunicare si sincronizare prin mesaje
Sinteza unui dispozitiv secvential de inmultire a numerelor binare reprezentate in complement de doi prin procedura James Robertson
ELEMENTE COMPONENTE ALE SISTEMULUI INFORMATIC
CALCULUL CLIENT/SERVER


Termeni si conditii
Contact
Creeaza si tu