170 likes | 404 Views
TAULUKKO. YKSIULOTTEINEN TAULUKKO. TAULUKKO. Taulukon tarkoitus Ohjelmassa tarvitaan paljon samantyyppisiä samaan kohdealueeseen kuuluvia muuttujia Näitä muuttujia ei määritellä jokaista erikseen vaan muodostetaan niistä taulukko
E N D
TAULUKKO YKSIULOTTEINEN TAULUKKO
TAULUKKO • Taulukon tarkoitus • Ohjelmassa tarvitaan paljon samantyyppisiä samaan kohdealueeseen kuuluvia muuttujia • Näitä muuttujia ei määritellä jokaista erikseen vaan muodostetaan niistä taulukko • Taulukossa voidaan kuitenkin käsitellä jokaista muuttujaa omana itsenään
TAULUKKO • Mitä taulukosta tulee tietää • Kuinka monta muuttujaa taulukkoon on tarkoitus tallettaa • Ed. tiedosta saadaan tulevan taulukon koko • Jokaista muuttujaa kutsutaan taulukossa taulukon alkioksi • Selvitetään muuttujien yhteinen tietotyyppi • Annetaan taulukolle kuvaava nimi
TAULUKKO • UML - esimerkkejä taulukoiden määrittelystä :Huom ! Alkuarvoa ei anneta. • oppilaat [35] AN 15 • kaupungit [250] AN 30 • palkat [20] N 9,2 • Java: • String [ ] oppilaat = new String [35] ; • String [ ] kaupungit = new String [250] ; • double [ ] palkat = new double [20] ;
TAULUKKO • Esimerkkejä taulukoiden määrittelystä, kun alkuarvot annetaan. Samalla määräytyy taulukon koko: • UML: • oppilaat[3] AN 15 = (”a06123”, ”a06543”, ”a062323”) • kaupungit[250] AN 30 = (”Helsinki”, ”Tampere”, ….) • palkat[20] N 9,2 = (1230.50, 2200.35, 14780.00, …..) • Java: • String [ ] oppilaat = {”a06123”, ”a06543”, ”a062323”} ; • String [ ] kaupungit = {”Helsinki”, ”Tampere”, ….} ; • double [ ] palkat = {1230.50, 2200.35, 14780.00, …..} ;
TAULUKKO • Taulukon indeksi: • Se on aina kokonaisluku, joka lähtee arvosta yksi • Ensimmäisen alkion numero eli osoite eli indeksi on aina yksi (1) • Viimeisen alkion indeksi on aina sama kuin taulukon alkioiden lukumäärä
TAULUKKO • Malli: • Taulukossa on viisi kokonaislukumuuttujaa • Taulukon kuvaus: • luvut (5) N 3 = (20, 50, 70, 100, 140) 20 50 70 100 140 sisältö 1 2 3 4 5 indeksi
TAULUKKO • Taulukon indeksointi • Alkion järjestysluku voi olla literaali, kaava tai muuttujanimi • Indeksin on oltava aina kokonaislukutyyppiä • UML: 1 – n • Java: 0 – n
TAULUKKO • Taulukon alkion nimi • Jokainen alkio on siis yksi muuttuja • Muuttujan eli alkion nimi muodostuu seuraavasti: • Nimessä on aina kaksi osaa • Nimeen kuuluu taulukon nimi ja sen perässä suluissa järjestysluku, joka kertoo kuinka mones alkio on taulukon alusta lukien
TAULUKKO • Taulukon alkion nimi • UML - esimerkki luvut – taulukosta: • luvut (5) N 3 = (20, 50, 70, 100, 140) • Ensimmäisen alkion nimi: luvut (1) • Kolmannen alkion nimi: luvut (3) • Viimeisen alkion nimi: luvut (5)
TAULUKKO • Taulukon alkion nimi • Alkion arvon tulostus: • UMLMuunnos ! • JavaSystem.out.println (”Toinen on ” + luvut[1]) ; • Javassa indeksi lähtee ainanollasta (0) • Indeksin muunnos on aina tehtävä koodausvaiheessa • Esimerkissä indeksi onnumeerinen literaali TULOSTA luvut (2)
TAULUKKO • Taulukon alkion nimi • Esimerkkinä alkion arvon sijoitus toisen alkion sisällöksi: • UML • JavaMuunnos !luvut [0] = luvut [3] ; luvut (1) = luvut (4)
TAULUKKO • Taulukon indeksointi • Esimerkki luvut – taulukosta, viimeiseen alkioon sijoitetaan arvo 23 • luvut (5) N 3 = (20, 50, 70, 100, 140) • Indeksi on muuttuja ind ja sen määritys on: ind N1 • UML ind = 5 luvut (ind) = 23
TAULUKKO • Taulukon indeksointi • Esimerkki luvut – taulukosta, viimeiseen alkioon sijoitetaan arvo 23 • Javalla: // Määritysosa • int ind ; • int luvut [ ] = {20, 50, 70, 100, 140} ; // Suoritusosa • ind = 4 ; • luvut [ind] = 23 ;
TAULUKKO • Taulukon indeksointi • Indeksi on kaava ind+ 1 • Esimerkki luvut – taulukosta, kolmanteen alkioon sijoitetaan arvo 77 • Javalla: • int ind ; • int luvut [ ] = {20, 50, 70, 100, 140} ;............... • ind = 1 ; • luvut [ind + 1] = 77 ;
TAULUKKO • Taulukon indeksointi • Esimerkki tulostaa kaikkien alkioiden sisällön • UML ind = 1 epätosi [ind = 6] [ind < 6] TULOSTA luvut (ind) ind = ind + 1
TAULUKKO • Taulukon indeksointi • Esimerkki tulostaa kaikkien alkioiden sisällön • Javalla • Yleisesti käytetään for – silmukkaafor (ind = 0; ind < 5; ind ++) System.out.println (luvut [ind] ) ;