L Array e un oggetto. L array puo contenere elementi che sono: tipi primitivi, o oggetti (in realta riferimenti ad oggetti!!!).

Hasonló dokumentumok
FÖLDRAJZ OLASZ NYELVEN

FÖLDRAJZ OLASZ NYELVEN

MetaTrader 5 con Mac OS

MATEMATIKA OLASZ NYELVEN MATEMATICA

Lingua italiana Turismo

FÖLDRAJZ OLASZ NYELVEN

FÖLDRAJZ OLASZ NYELVEN KÖZÉPSZINTŰ ÍRÁSBELI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

Szia! / Jó napot! (attól függően, hogy magázod vagy tegezed az adott személyt)

Szia! / Jó napot! (attól függően, hogy magázod vagy tegezed az adott személyt)

FÖLDRAJZ OLASZ NYELVEN

PNI SmartHome SM9W. Intelligens izzó / Lampadina intelligente

EN 1317 Ütközés hevessége és Az utasok biztonsága

Viaggi Alloggio. Alloggio - Cercare. Alloggio - Prenotare. Chiedere indicazioni sull'alloggio

FÖLDRAJZ OLASZ NYELVEN GEOGRAFIA

MŰVÉSZETTÖRTÉNET OLASZ NYELVEN

Sia il nostro Partner. Relazioni Curate da un Assistenza Clienti di Qualità

MATEMATIKA OLASZ NYELVEN

AZ Sdoppiatore Ø 80 mm per Elválasztott csőcsatlakozás Ø 80 mm a következőkhöz Ø112 Ø121 ZSR 8-3 AE... ZSR 11-3 AE... Ø88.

FÖLDRAJZ OLASZ NYELVEN GEOGRAFIA

MATEMATIKA OLASZ NYELVEN

MATEMATIKA OLASZ NYELVEN

MATEMATIKA OLASZ NYELVEN

Európai Uniós üzleti

MATEMATIKA OLASZ NYELVEN

MATEMATIKA OLASZ NYELVEN

MATEMATIKA OLASZ NYELVEN MATEMATICA

Lingua italiana Affari

HERCZEG ILDIKÓ MÁRTA * A humor, mint motivációs tényezı az idegen nyelvi órákon

Corvinus Szaknyelvi Vizsgaközpont Közgazdasági Szaknyelv Hallás utáni szövegértés teszt Alapfok (B1)

MATEMATIKA OLASZ NYELVEN

MŰVÉSZETTÖRTÉNET OLASZ NYELVEN

MATEMATIKA OLASZ NYELVEN

ÉRETTSÉGI VIZSGA május 6.


WHAT WE DO BEFORE THE EXCHANGE MIT CSINÁLTUNK A KÖZÖS MUNKA ELŐTT COSA ABBIAMO FATTO PRIMA DELLO SCAMBIO

MATEMATIKA OLASZ NYELVEN

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

MATEMATIKA OLASZ NYELVEN

MATEMATIKA OLASZ NYELVEN

JNDI - alapok. Java Naming and Directory Interface

A 2014/2015. tanévi Országos Középiskolai Tanulmányi Verseny második forduló OLASZ NYELV II. KATEGÓRIA

MŰVÉSZETTÖRTÉNET OLASZ NYELVEN

MŰVÉSZETTÖRTÉNET OLASZ NYELVEN

3. Gyakorlat Ismerkedés a Java nyelvvel

C# osztályok. Krizsán Zoltán

Corrispondenza Lettera

SISTEMA PEDAGGIO UNGHERIA

Utazás Tájékozódás Tájékozódás - Elhelyezkedés olasz olasz Mi sono perso. Può mostrarmi dov'è sulla cartina? Dove posso trovare? ... un bagno?

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

Segédanyag: Java alkalmazások gyakorlat

Bevándorlás Dokumentumok

abkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame {

Corvinus Szaknyelvi Vizsgaközpont Nemzetközi kapcsolatok Szaknyelv Nyelvismereti teszt Alapfok (B1)

FÖLDRAJZ OLASZ NYELVEN GEOGRAFIA

MATEMATIKA OLASZ NYELVEN

tárgyalásokat kezdeményez a Megállapodásnak az új körülményekhez történő igazítására; a következőkben állapodnak meg:

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

SZITUÁCIÓK ÉS SZÓKINCS AKTIVÁTOR FEJEZET

List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error

ÍRÁSBELI FELVÉTELI FELADATOK OLASZ NYELVBŐL 2004

Acta Francisci Pp. 207

Viaggi Mangiare fuori

Dinamikus adatszerkezetek. 2D generikus tömb: C++ 2D generikus tömb: C++

Dinamikus adatszerkezetek. 2D generikus tömb: C++ 2D generikus tömb: C++ 2D tömb: Java versus C++ 2D tömb: Java.

Java Programozás 1. Gy: Java alapok. Ismétlés ++

Zala Megyei Katasztrófavédelmi Igazgatóság Nagykanizsai Katasztrófavédelmi Kirendeltség

KÖVETELMÉNYRENDSZER Olasz szaknyelv I-IV

Helyi tanterv. az Élő idegen nyelv - Olasz nyelvi fakultáció tantárgyhoz

Programozás I. Első ZH segédlet

Testvértelepülési szerződés. Accordo per il gemellaggio PREAMBOLO

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

MŰVÉSZETTÖRTÉNET OLASZ NYELVEN

OOP: Java 4.Gy: Java osztályok

bab.la Frasi: Corrispondenza Auguri Ungherese-Italiano

Java programozási nyelv

MAGYAR HELSINKI BIZOTTSÁG KIPP-KOPP, HOGY KI VAGYOK! Menedékkérôk hozzáférése a védelemhez Magyarországon

Due fori, zero unitá esterne Csak két cső, zeró kültéri egység

Immigrazione Documenti

Szoftvertechnológia alapjai Java előadások

Bánsághi Anna

INVITO MEGHIVÓ. L ASSOCIAZIONE CULTURALE ITALO UNGHERESE IN BOLOGNA è lieta di invitarvi allo spettacolo del GRUPPO MUSICALE CSÁNGÓ UNGHERESE SOMOS,

MAGIC OLUME STYLING GUIDE

C#, OOP. Osztályok tervezése C#-ban

MŰVÉSZETTÖRTÉNET OLASZ NYELVEN

VENDÉGLÁTÓ- IDEGENFORGALMI ALAPISMERETEK OLASZ NYELVEN

Az új be- és kimenet könyvtár

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )

English Deutsch Nederlands Français Italiano Español Polski Česky Magyar

Java és web programozás

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Algoritmi di Sequenziamento

MŰVÉSZETTÖRTÉNET OLASZ NYELVEN

EMELT SZINTŰ ÍRÁSBELI VIZSGA

AZ ZR/ZSR 8-3 AE... ZR/ZSR 11-3 AE... Kit scarico verticale Ø 80/110 mm per apparecchi

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

AZ ZR/ZSR 8-3 AE... ZR/ZSR 11-3 AE...

Adatbázisok webalkalmazásokban

EMELT SZINTŰ ÍRÁSBELI VIZSGA

ÍRÁSKÉSZSÉG 1 OLASZ B2

INFORMATIKAI ALAPISMERETEK

Átírás:

ARRAY Arrays Idea Fornire il concetto di array presente nei piu comuni linguaggi di programmazione Un array e una struttura statica, una volta creato la sua dimensione (numero di elementi che lo compongono) non puo essere più modificata Il principale vantaggio dell array l accesso diretto a ciascuno elemento in un tempo O(1). In generale gli arrays sono omogenei, cioe ogni elemento e delle stesso tipo. Questo limite puo essere superato con il polimorfismo. 1

Arrays L Array e un oggetto. L array puo contenere elementi che sono: tipi primitivi, o oggetti (in realta riferimenti ad oggetti!!!). L array puo contenere tipi primitivi o identificatore e una references ad un object. Questo e diverso dagli altri linguaggi Arrays: dichiarazione Gli array Java sono oggetti, istanze di una classe speciale denotata da [ ] La posizione delle [] è a scelta: o dopo il nome, come in C, oppure di seguito al tipo (novità) Dichiarazione di array Java: <elemtype>[ ] <arrid>; oppure <elemtype> <arrid>[ ]; La dimensione si specifica all atto della creazione int[ ] gradi; int gradi[]; float pressione[]; boolean[] stato; 2

Arrays: istanziazione Istanzione array Java: <arrid> = new <elemtype>[<size>]; Esempi: Recall: int gradi[]; float pressione[]; boolean[] stato; gradi = new int[10]; pressione = new float[100]; stato = new boolean[15] ogni elemento dell array: è una variabile, se gli elementi dell array sono di un tipo primitivo (int, float, char, ) int v[] v = new int[3]; Arrays dichiarazione e istanziazione e inizializzazione Dichiarazione e istanziazione di array Java : <elemtype>[ ] <arrid> = new <elemtype>[<size>]; oppure <elemtype> <arrid>[ ] = new <elemtype>[<size>]; Esempio int[ ] gradi = new int[10]; oppure int gradi[] = new int[10]; Java example: int[] x = {10, 100, 90, 50, 45; int x[] = {10, 100, 90, 50, 45; (Nota: in questo caso non e necessaria una instanziazione esplicita) 3

Errori nella gestione degli array Comprendere la differenza fra riferimento ad array (array id) e l oggetto array Esempio di codice stupido: int oldcount[] = new int[3]; int counts[] = new int[3]; oldcounts = counts; Errori nella gestione degli array float[] pressione = new float[3]; int i=3; int j=1; while(i>j) { pressione = new float[2]; j++ 4

Errori nella gestione degli array class Prova { int[] data; Duplicato? public Prova() { int[] data = new int[15];... Arrays int[ ] gradi = new int[10]; int i; for (i=0; i < gradi.length; i++) { gradi[i] = 0; // for loop Se si cambia la dimenzione dell array, questo ciclo non deve essare modificato Notes: per ogni Array e conosciuta la dimenzione length e un attributo non un metodo gli Arrays sono dimenzionati staticamente: la lunghezza non puo essere modificata dopo l istanziazione. Tutti gli arrays sono oggetti che devono essere dichiarati, istanziati e inizializzati 5

Notes: Indice dell array inizia da 0 non da 1 length e uguale all ultimo indice + 1 Arrays int[ ] gradi = new int[10]; int i; for (i= 01; i<= < gradi.length; i++) { gradi[i] = 0; // for loop Dove e l errore Il codice tenta di accedere agli elementi 1..10 ma. Dovrebbe accedere agli elementi 0..9 Problema Dato un array di int, ritorna l elemento maggiore. public int maggiore(int[ ] myarray) { int massimo = -9999; int i; for (i = 0; i < myarray.length; i++) { if ( massimo < myarray[i]) massimo = myarray[i]; return massimo; Cosa accade se l array contiene solo Valori minori di-9999 6

Problema public int maggiore(int[ ] myarray) { int massimo = myarray[0]; int i; for (i = 0; 1; i < myarray.length; i++) { if (massimo < myarray[i]) massimo = myarray[i]; return massimo; Esempio Dato un array di int, ritorna l indice dell elemento maggiore. Scrivere un metodo Java che accetta un array di int e ritorna un array un cui ciascune degli elementi e il doppio del valore originale. 7

Arrays Se un array di oggetti, allora: l identificatore dell array e un riferimento ad un array di oggetti ogni elemento dell array e un riferimento a un oggetto della classe specificata come tipo base dell array Istanziare l array di oggetti non implica l istanziazione dei vari oggetti che costituiscono gli elementi dell array. Gli elementi devono essere esplicitamente istanziati. ARRAY IN JAVA ATTENZIONE ogni elemento dell array: è una variabile, se gli elementi dell array sono di un tipo primitivo (int, float, char, ) v = new int[3]; è un riferimento a un (futuro) oggetto, se gli elementi dell array sono (riferimenti a) oggetti w = new Counter[6]; Inizialmente tutti null 8

ARRAY IN JAVA Quindi Nel primo caso ogni elemento dell array è una normale variabile usabile cosi come è v = new int[3]; v[0] = 1; v[1] = 34; 1 34 ARRAY IN JAVA Nel secondo caso invece, ogni elemento della array è solo un riferimento: se si vuole un nuovo oggetto bisogna crearlo w = new Counter[6]; w[0] = new Counter(11); 11 9

ARRAY IN JAVA In quanto istanze di una classe array, gli array Java hanno alcune proprietà Tra queste, il campo dati pubblico length dà la lunghezza (dimensione) dell array: v.length vale 3 w.length vale 6 Una volta creato, un array ha comunque dimensione fissa non può essere allargato a piacere per tali necessità esiste la classe Vector ESERCIZIO Stampare gli argomenti passati dalla linea di comando public class EsempioMain{ public static void main(string[] args){ if (args.length == 0) System.out.println("Nessun argomento"); else for (int i=0; i<args.length; i++) System.out.println("argomento " + i + ": " + args[i]); L operatore + concatena String e anche valori di tipi primitivi (che vengono automaticamente convertiti in String) In Java si possono definire variabili in ogni punto del programma (non solo all inizio come in C): in particolare è possibile definire l indice i dentro al ciclo for. Visibilità limitata al corpo del ciclo: fuori da esso, i risulta indefinita 10

Riepilogo: Creazione di Array Dichiarazione crea solo il riferimento - volore null int myints[]; int[] myints; Istanziazione myints = new int[10]; dichiarazione e istanziazione: int[] myints = new int[10]; accesso a ciscuno elemento myints[3] = 9; x = myints[4]; inizializzazion statica int[] myints = {1,2,5,6,7,4; Array multidimenzionali Gli Arrays possono contenere elementi che sono: Primitivi Oggetti e. Quindi Arrays! (ricorda l array e un oggetto) Cio ci permette di crea array 2-D, 3-D, 4-D, attraverso la definizione di arrays di arrays. Nel caso 2-D, noi avremo un array 1-D i cui elementi sono array 1-D. Avremo degli array 2-D piu flessibili Ogni riga dell array non deve avere la stessa dimenzione 11

Array bidimensionali Un array bidimensionale può essere pensato come un array con due indici Tipicamente gli array bidimensionali sono usati per rappresentare matrici di valori di uno stesso tipo, anche se il loro potere espressivo è superiore a quello delle matrici Un array bidimensionale si crea usando l operatore new, in base alla seguente sintassi new <tipo di dato>[dimr][dimc] Dove <tipo di dato> è un qualunque tipo di dato valido (ma non un tipo array), mentre dimr e dimc sono rispettivamente la dimensione dell indice di riga e dell indice di colonna 12

Creazione di un array bidimensionale Ad esempio, per creare un array bidimensionale i cui elementi sono di tipo int, e le cui dimensioni sono 4 (per le righe) e 3 (per le colonne), si scrive new int[4][3] Definito int[ ][ ] a = new int[4][3] la variabile a conterrà il riferimento ad un array bidimensionale di tipo int; di default, gli elementi int dell array sono inizializzati a 0 13

Per denotare l elemento di tipo T di a di indici (i,j) debbo scrivere a[i][j] Scrivendo invece soltanto a[i], sto denotando il riferimento all array di tipo T contenuto alla riga i- esima Tipico uso del array 2-D int [ ] [ ] multiplicationtable; multiplicationtable = new int [11] [21]; for (int i=0; i < multiplicationtable.length; i++) { for (int j=0; j < multiplicationtable.length; multiplicationtable[i].length j++) { multiplicationtable[i][j] = i*j; Dove è l errore? 14

Inizializzazione statica di array multidimenzionali Noi possiamo inizializzare un array multidimenzionali nel seguente modo: String s[][] = s.length e uguale a 3 { { io", sono", la riga uno, S[0].lenght è uguale a 4 { io", sono", la", seconda", { io", la", terza" S[1].lenght è uguale a 4 ; S[2].lenght è uguale a 3 io sono la riga uno io sono la seconda io la terza La riga 0 ha 4 colonne <io> <sono> <la riga> <uno> La riga 1 ha 4 colonne <io> <sono> <la> <seconda> La riga 2 ha 3 colonne <io> <la> <terza> public class ArrayDemo { public static void main(string args[]) { String s[][] = { { io", sono", la riga uno, { io", sono", la", seconda", { io", la", terza" ; for(int row = 0; row < s.length; row++) { System.out.println ( La riga " + row + " ha " + s[row].length + " colonne"); for(int col = 0; col < s[row].length; col++) { System.out.print( <" + s[row][col] + "> "); System.out.println(); 15

public class Multiple { public static void main(string args[]) { int[][] numbers; numbers = new int[5][]; for(int row=0; row<numbers.length; row++) { numbers[row] = new int[(int)(math.random()*8)]; for(int col=0; col<numbers[row].length; col++) { numbers[row][col] = row*10 + col; if (row<1) System.out.print( 0 ); System.out.print(numbers[row][col]+ ); System.out.println(); >java Multiple 00 01 02 10 11 12 13 14 15 16 20 21 22 23 30 31 32 33 34 35 40 41 42 >java Multiple 00 01 10 11 12 13 20 21 22 23 24 25 26 30 31 32 33 34 35 40 41 42 >java Multiple 00 01 02 03 10 20 30 31 40 16

VECTOR Vectors Class Esempio: use Vector: della classe struttura Vector per creare dati unasimile collezione di all array Counter import java.util.*; con alcune caratteristiche addizionali: Dichiarazione Vector contatori= new Vector(); La Aggiungere dimenzione Elementi di un vector non deve contatori.addelement(c1); essere dichiarata, contatori.addelement(c2); la sua dimenzione cresce Accesso all elemnto quando i necessario c3 = (Counter) contatorir.elementat(i); Esistono metodi per aggiungere, inserire in Modifica unadi posizione un elemento di posizione e rimuovere i un elemento contatori.setelementat(c4, i); L elemento di un vector deve essere un oggetto Inserimento di (non un elemento puòin posizione esserei un tipo primitivo) contatatori.insertelementat(c4, i); Rimuovere un elemento di posizione I contatori.removeelementat(i); 17