Polja: kako jih tvorimo in uporabljamo



Kaj so polja

Polja so skupine enakih objektov ali podatkov. Oštevilčene so od 0 naprej. Poglejmo si skupino celih števil  (int). Pozor na format zapisa:

{12, 7, 32, 15, 113, 0, 7} 

Poglejmo, kako bi bile te vrednosti pomnjene v računalniku, zraven pa podajmo še tekoče številke  posameznih podatkov v skupini :

    indeks

0

1

2

3

4

5

6

vrednosti

    12

     7

     32

    15

  113

     0

     7

Tekočo številko podatka v takem polju imenujemo indeks. Če želimo dobiti posamezni element polja, moramo navesti ime polja, v oglatih oklepajih [ ] za imenom pa zapisati številko indeksa. Recimo, da damo takemu polju ime tockeTekmovalcev.

Deklaracija polja

Polje lahko v Javi deklariramo na dva načina:

   int tockeTekmovalcev[] ;
   int[] tockeTekmovalcev ;

        

T a deklaracija napove prevajalniku, kakšen tip podatkov bo polje vsebovalo. Samo polje pa še ni ustvarjeno, dokler ne uporabimo ključne besedice new, kot v naslednjem primeru.

   int [] tockeTekmovalcev ;
   tockeTekmovalcev = new int[7] ;

      

Z navedenima zgornjima vrsticama smo vzpostavili polje s 7 celoštevilčnimi podatki, ki pa imajo vsi privzeto vrednost 0. Lahko pa polje hkrati deklariramo, konstruiramo in inicializiramo vse v enem stavku, na primer:.

int[] tockeTekmovalcev = {12, 7, 32, 15, 113, 0, 7 } ;

Pozorni bodimo na uporabo zavitih oklepajev { } in vejc med vrednostmi elementov polja.

Naslavljanje elementa polja

Do posameznega elementa v zanki pridemo preprosto tako, da podamo ime polja in za imenom v zavitih oklepajih podamo  indeks elementa, na primer tockeTekmovalcev[0] ;

Vaje

  1. Kakšno vrednost ima tockeTekmovalcev[[0]  ?
  2. Kakšno vrednost imaf tockeTekmovalcev[[5] ?

Zapomnimo si: polja vedno začnejo z indeksom 0. Zato pridemo do 5. elementa polja z  imePolja[4] .
Tu je formula:

        n-ti Element     =>     imePolja[n-1]


Spreminjanje vrednosti v polju

Če želimo spremeniti vrednost nekega elementa v polju, napišimo na primer nekaj takega :

  tockeTekmovalcev[3] = 56 ;
  tockeTekmovalcev[1] = 27 ;

Če hočemo prepisati vrednost nekega elementa v drugo spremenljivko, naredimo nekaj takega :

   int mojeTocke ;
   mojeTocke = tockeTekmovalcev[4] ;

Če bi sedaj skušali izpis s stavkom printLine(mojeTocke) ; , bi dobili izpis 113.

Dovolj teoretiziranja, napišimo en program !

 

   void main() {
      // deklaracija in iniciacija polja
      int[] tockeTekmovalcev =  {12, 7, 32, 15, 113, 0, 7 } ;
      // izpis tock
      for(int i = 0; i<7 ; i++ )
      {
         printLine("Tekmovalec "+ i + "ima stevilo tock " + tockeTekmovalcev[i]);
      }
   }


 

Naloga :

Na tekmi smučarjev, skakalcev merimo dolžine skokov in jih beležimo v polje. Nastopa 20 skakalcev. Naredi program, ki pomni vseh 20 skokov in izpiše rezultate. Na koncu naj izpiše še povprečno dolžino skokov.

Izpis bi lahko imel naslednjo obliko:

Skakalec 1:  dolzina 135

Skakalec 2: dolzina 122
Skakalec 3: dolzina 127
.....
Skakalec 20: dolzina 129
Povprecna dolzina skoka: 128.5

Najprej zapišimo v naravnem jeziku korake, ki jih bo moral opraviti program: .

  1. Deklaracija polja int, ki vsebuje 20 elementov
  2. Zanka preko vseh teh elementov in vnos podatkov.
  3. Seštevanje skokov v vsoto
  4. Izračun povprečja
  5. Izpis dolžin skokov
  6. Izpis povprečja.  

To, kar smo sedaj napravili, pa je že pisanje programa

Algoritem

Algoritem je zaporedje korakov, loahko zapisanih v naravnem jeziku. Ti koraki naj bi zagotovili uspešno izvedbo programa.

Poskusi, kaj si dobil?

Dopolni program tako, da izpiše dolžine skokov vseh tistih tekmovalcev, ki so skočili več od povprečja..


Vaje

1.     Ali so naslednji stavki pravilni ?
a. int[ ] poljeStevil[ ] ;
b. String[ ] ime ;
c. double cena[ ] ;
    cena = new double[12] ;

2.      Kakšne so privzete vrednosti za iniciacijo vrednosti za spremenljivke tipa int, double, String , boolean ?