Πολυδιάστατοι Πίνακες στην JAVA ΕΡΓΑΣΤΗΡΙΟ AΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΧΟΧΟΛΗΣ ΔΙΟΝΥΣΙΟΣ
Δισδιάστατοι Πίνακες –float[][] sample=new float[5][10]; –5 πίνακες με 10 στοιχεία ο καθένας –Ο πρώτος δείκτης θέσης: καθορίζει τον πίνακα (γραμμή-row) –Ο δεύτερος δείκτης θέσης:καθορίζει το στοιχείο στον πίνακα(στήλη-column) –Στην JAVA ο τύπος float είναι 4 bytes, total Συνολικό μέγεθος=4*5*10=200 bytes
Γραφική Αναπαράσταση sample[0] sample[1] sample[2]
Αρχικοποίηση Δισδιάστατου Πίνακα int[][] array2D = { {99, 42, 74, 83, 100}, {90, 91, 72, 88, 95}, {88, 61, 74, 89, 96}, {61, 89, 82, 98, 93}, {93, 73, 75, 78, 99}, {50, 65, 92, 87, 94}, {43, 98, 78, 56, 99} }; //7 πίνακες με 5 στοιχεία ο καθένας
Δισδιάστατοι πίνακες μεταβλητού μήκους Όλοι οι πίνακες δεν είναι αναγκαίο να έχουν το ίδιο μήκος float[][] samples; samples=new float[6][]; samples[2]=new float[6]; samples[5]=new float[101]; Δεν απαιτείται να ορισθούν όλοι οι πίνακες
Αρχικοποίηση Πινάκων μεταβλητού μήκους int[][] uneven = { { 1, 9, 4 }, { 0, 2}, { 0, 1, 2, 3, 4 } }; //Τρείς πίνακες //Ο πρώτος έχει 3 στοιχεία //Ο δεύτερος έχει 2 στοιχεία //Ο τρίτος έχει 5 στοιχεία
Μέγεθος Πινάκων long[][] primes = new long[20][]; primes[2] = new long[30]; System.out.println(primes.length); //Αριθμός Πινάκων System.out.println(primes[2].length);//Αριθμός στοιχέιων στον δέυτερο πίνακα OUTPUT: 20 30
Παράδειγμα class unevenExample3 { public static void main( String[] arg ) { // δήλωση και αρχικοποίηση δισδιάστατου πίνακα int[][] uneven = { { 1, 9, 4 }, { 0, 2}, { 0, 1, 2, 3, 4 } }; // Εκτύπωση στοιχείων του πίνακα for ( int row=0; row < uneven.length; row++ ) //αλλαγή γραμμής { System.out.print("Row " + row + ": "); for ( int col=0; col < uneven[row].length; col++ ) //αλλαγή στήλης System.out.print( uneven[row][col] + " "); System.out.println(); }
Τρισδιάτατοι Πίνακες Ένας αγρότης έχει δέκα φάρμες με σιτάρι σε δύο νομούς και κάθε φάρμα έχει 30 χωράφια Τρισδιάστατος πίνακας int[][][] wheat=new int[2][10][30];
Άσκηση 1 Να γραφεί πρόγραμμα σε γλώσσα java ArrayTwoDimensions.java, στο οποίο αρχικά θα δηλώνεται ένας πίνακας ακεραίων 3 x 3 που θα δέχεται τυχαίες τιμές από το πληκτρολόγιο και στη συνέχεια θα υπολογίζεται το άθροισμα των στοιχείων του πίνακα μέχρι το πρώτο αρνητικό στοιχείο (αν υπάρχει τέτοιο) ή όλων των στοιχείων του πίνακα αν δεν υπάρχει αρνητικό στοιχείο σε αυτόν. Η διαπέραση του πίνακα θα γίνεται κατά γραμμές και σε κάθε γραμμή τα κελιά θα προσπελαύνονται από αριστερά προς τα δεξιά (κατά αύξοντα αριθμό στήλης).
Άσκηση 2 Να γραφεί πρόγραμμα σε java με όνομα ArrayTwoDimensions2 στο οποίο: 1.Θα δηλώνεται ένας πίνακας ακεραίων Ν x Ν όπου N θετικός ακέραιος που εισάγεται από τον χρήστη. 2.Στην συνέχεια να εισάγονται από τον χρήστη θετικοί ακέραιοι για κάθε θέση του πίνακα. 3.Να υπολογιστεί και να τυπωθεί το άθροισμα των στοιχείων της κυρίας διαγωνίου 4.Δημιουργήστε έναν μονοδιάστατο πίνακα ακεραίων με μήκος N που σε κάθε θέση του θα περιέχει τον μέγιστο ακέραιο της κάθε σειράς του πίνακα ΝΧN. 5.Να τυπώσετε όλους τους άρτιους αριθμούς που περιέχονται στον μονοδιάστατο πίνακα.