Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  

CATEGORII DOCUMENTE





loading...

AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Definirea si utilizarea de vectori in Java

java

+ Font mai mare | - Font mai mic







DOCUMENTE SIMILARE

Trimite pe Messenger
EFECTUL DE FLICKERING AL ANIMATIE
DISTRUGEREA CONTEXTELOR GRAPHICS
COMPONENTELE INTERFETEI GRAFICE
ZONE DE TEXT
REALIZAREA UNUI APPLET
CREAREA DE INTERFETE GRAFICE PENTRU APPLETURI
TRATAREA EVENIMENTELOR PRIN METODA GENERICA
COMENTARII
CICLURI ETICHETATE
Operatii booleene

Deprecated: mysql(): This function is deprecated; use mysql_query() instead in /home/svadan38/public_html/calculatoare/java/Definirea-si-utilizarea-de-vec95976.php on line 124

Definirea si utilizarea de vectori in Java

            Cuvantul “vector” este folosit aici ca echivalent pentru “array” din limba engleza si se refera la un tip de date implicit limbajelor C, C++ si Java. Acest tip este diferit de tipul definit de clasa JDK Vector (vectori ce se pot extinde automat) si de aceea vom folosi si denumirea de vector intrinsec (limbajului) pentru vectori ca cei din C.




            In Java, declararea unei variabile (sau unui parametru formal) de un tip vector se poate face in doua moduri, echivalente:

            tip nume [ ];                             // la fel ca in C si C++

            tip [ ] nume;                             // specific Java

   Declararea matricelor (vectori de vectori) poate avea si ea doua forme. Exemplu:

            int a[ ][ ] ;                                 // o matrice de intregi

            int [ ][ ] b;                                 // alta matrice de intregi

   In Java nu este permisa specificarea unor dimensiuni la declararea unor vectori sau matrice, deoarece alocarea de memorie nu se face niciodata la compilare. Exemplu de eroare:

            int a[100];                    // corect:  int a[] = new int[100];

            O variabila vector este automat in Java o variabila referinta iar memoria trebuie alocata dinamic pentru orice vector. Alocarea de memorie pentru un vector se face folosind operatorul new urmat de un nume de tip si de o expresie (cu rezultat intreg) intre paranteze drepte; expresia determina numarul de componente (nu de octeti !) pe care le poate contine vectorul. Exemple:

                        float x[ ] = new float [10];                     // aloca memorie ptr 10 reali

                        int n=10;

                        byte[ ][ ] graf = new byte [n][n];

Este posibila si o alocare automata, atunci cand vectorul este initializat la declarare cu un sir de valori. Exemplu:

                        short prime[ ] = ;

In lipsa unei initializari explicite, componentele unui vector sunt initializate automat, cu valori ce depind de tipul lor: zerouri pentru elemente numerice, null pentru variabile referinta de orice tip.

            Un vector intrinsec cu componente de un anumit tip este considerat ca un obiect de un tip clasa, tip recunoscut de compilator dar care nu este definit explicit in  nici un pachet de clase. Numele acestor clase este format din caracterul ‘[‘ urmat de o litera ce depinde de tipul componentelor vectorului: [I pentru int[], [B pentru byte[], [Z pentru boolean[], [C pentru char[], [F pentru float[] s.a.m.d.

Variabila predefinita cu numele length poate fi folosita ( ca membru al claselor vector ) pentru a obtine dimensiunea alocata pentru un vector (“capacitatea vectorului”). Exemplu:

                // functie de copiere a unui vector

            public static void copyVec (  int a [ ] ,int b[ ] ) 

            De retinut ca length este dimensiunea alocata si nu dimensiunea efectiva a unui vector, iar numarul de elemente din vector se transmite ca argument la functii, atunci cand difera de capacitatea sa.

In Java, se verifica automat, la executie, incadrarea indicilor intre limitele declarate; iesirea din limite produce o exceptie  si terminarea programului. Exemplu:

                          int [ ] a= new int [10];

                          for (int i=1;i<=10;i++)

                 a[i]=i;                                                                      // exceptie la  a[10]=10 

   Numerotarea componentelor unui vector este de la zero la (length-1), deci in exemplul anterior se produce exceptia de depasire a limitelor la valoarea i=10 .

   Variabila length nu trebuie confundata cu metoda 'length()' din clasa String. Functia urmatoare determina sirul cel mai lung dintr-un vector de siruri:

static String maxLen ( String v[ ])

            Din versiunea 5 se poate itera printr-un vector la fel ca si printr-uo colectie de obiecte folosind un ciclu de forma:

                                                            for ( tip ob: a)                  // “tip” este tipul elementelor vectorului a



cu semnificatia: “repeta ceva pentru fiecare valoare a variabilei “ob” din vectorul “a”, atribuind succesiv lui “ob” valorile din vectorul “a” (valori ce pot fi de un tip primitiv sau de un tip clasa).

            Functia care determina sirul de lungime maxima dintr-un vector de siruri se poate scrie astfel:

static String maxLen ( String v[ ])

O matrice este privita si in Java ca un vector de vectori, iar variabila 'length' se poate folosi pentru fiecare linie din matrice, pentru a determina numarul de coloane.

Deoarece orice matrice este alocata dinamic, nu exista probleme la transmiterea unei matrice ca argument la o functie. Nu este necesara transmiterea dimensiunilor matricei la o functie daca matricea este ocupata complet (la capacitatea ei).  Exemplu:

            class Matrice

     }

            public static void main (String [ ] arg) , };

              printmat (mat);

            }

    }

            O functie poate avea un rezultat de un tip vector (sau matrice).

In Java, ca si in C, transmiterea parametrilor se face prin valoare, adica se copiaza valorile parametrilor efectivi in parametrii formali corespunzatori, inainte de executia functiei. Deci o functie Java nu poate transmite rezultate prin argumente de un tip primitiv, dar poate modifica componentele unui vector primit ca argument. Exemplu:

            // creare vector cu divizorii unui intreg

static int divizori (int n, int d[ ])

            // utilizare functie

  int div[ ]= new int [m];                                                // aloca memorie ptr vector divizori

  int nd = divizori (m, div);                               // completare vector divizori

            Clasa Arrays din pachetul “java.util” reuneste functii pentru operatii uzuale cu vectori avand elemente de orice tip (primitiv sau clasa): afisare, sortare, cautare s.a. Exemplu:

import java.util.Arrays;

class ExArrays ;                             // un vector de siruri

     Arrays.sort (t);                                                                                                        // ordonare vector t

            System.out.println ( Arrays.toString(t));                      // afisare vector

            int k = Arrays.binarySearch (t, '3');                            // cautare in vector ordonat

     float x[ ] = ;                                           // un vector de numere reale

            Arrays.sort (x);  printVec(x);                                                   // ordonare vector x

            float y[ ] = (float[ ]) x.clone();                                                   // y este o copie a vectorului x

            System.out.println ( Arrays.equals (x,y));       // scrie 'true'

  }

}

            Din versiunea 5 s-au adaugat clasei Arrays metode statice pentru transformarea in sir de caractere a continutului unui vector intrinsec unidimensional sau multidimensional cu elemente de orice tip primitiv sau de tip Object. Exemplu de folosire:

            double [ ] a= ;

            System.out.println ( Arrays.toString(a));

            Double b[ ][ ]= , , };

     System.out.println(Arrays.deepToString(b));








Politica de confidentialitate

DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari:
Deprecated: mysql(): This function is deprecated; use mysql_query() instead in /home/svadan38/public_html/calculatoare/java/Definirea-si-utilizarea-de-vec95976.php on line 654

Deprecated: mysql(): This function is deprecated; use mysql_query() instead in /home/svadan38/public_html/calculatoare/java/Definirea-si-utilizarea-de-vec95976.php on line 660
855
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2020 . All rights reserved

Distribuie URL

Adauga cod HTML in site