Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
Κάντε κλικ για να ξεκινήσετε
Αντικειμενοστραφής Προγραμματισμός
Ενότητα 4: Πίνακες, Συνδυασμός
Βρόχων Επαναλήψεων και Πινάκων.
Δρ. Χαράλαμπος Ζ. Πατρικάκης Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ
Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα
Άδειες Χρήσης
• Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
• Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς.
2
Χρηματοδότηση
• Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα.
• Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού.
• Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.
3
Ευχαριστίες
• Στην ανάπτυξη του υλικού βοήθησαν οι φοιτητές Λάζαρος Τουμανίδης, Λίλιαν Γούσιου και ο βοηθός εργαστηρίου Κόγιας Δημήτριος.
4
Βιβλιογραφία
• Harvey Deitel,Paul Deitel , «Java Προγραμματισμός, 8η έκδοση», Γκιούρδας, 2010.
• Γιώργος Λιακέας, «Εισαγωγή στη Java», Κλειδάριθμος, 2009. • Χρήστος Κυτάγιας, Κώστας Δ. Κυτάγιας, Γιώργος Πρεζεράκος,
Δημήτρης Κυτάγιας, «Αντικειμενοστραφής Προγραμματισμός με Java», Σύγχρονη Εκδοτική, 2013.
• Wanda Dann, Stephen Cooper, and Randy Pausch, «Learning to program with Alice» 3rd edition, Pearson Education, 2012.
• Michael Kölling, «Introduction to Programming with Greenfoot». • «Object-Oriented Programming in Java with Games and
Simulations», Pearson Education, August 2009. • Οι σημειώσεις είναι βασισμένες και σε υλικό του καθηγητή του ΤΕΙ
Πειραιά Γ. Πρεζεράκου.
5
Περιεχόμενα
6
4.1 Πίνακες
4.2 Συνδυάζοντας Βρόχους Επαναλήψεων και Πίνακες
Προσδοκώμενα Αποτελέσματα
7
Στην ενότητα αυτή θα μάθετε για:
Τον τρόπο δημιουργίας και τα διάφορα είδη πινάκων,
Πολυδιάστατους Πίνακες, Παραδείγματα για να διατρέξετε έναν πίνακα
αποκτώντας πρόσβαση στα στοιχεία του.
8
4.1 Πίνακες
Πίνακες
• Ένας πίνακας είναι ένα ευρετήριο τιμών.
• Μπορείτε να φτιάξετε έναν πίνακα για κάθε μεταβλητή int, double, string, κοκ…
• Προσοχή: Όλα τα στοιχεία ενός πίνακα πρέπει να είναι του ίδιου τύπου.
9
Πίνακες
10
• Αρίθμηση στοιχείων ενός πίνακα
Πίνακες
• Παράδειγμα: Πίνακας double[]
11
Πίνακες
• Ο δείκτης αρχίζει από το μηδέν και τελειώνει στο μηκος -1. • Παράδειγμα: int[] values = new int[5]; values[0] = 12; // ΣΩΣΤΟ values[4] = 12; // ΣΩΣΤΟ values [5] = 12; // ΛΑΘΟΣ!! Συντακτικά είναι σωστό // αλλά εμφανίζεται σφάλμα κατά την
// εκτέλεση, καθώς τα στοιχεία βρίσκονται // στις θέσεις από 0 έως 4.
• Φτιάξτε ένα πρόγραμμα με το σφάλμα αυτό και δοκιμάστε
να το τρέξετε.
12
Πίνακες
• Ένας πίνακας εισάγεται καλώντας ARRAY_TYPE [ ].
• Οι πίνακες είναι απλά ένας ακόμα τύπος δεδομένων.
int [ ] values; // πίνακας int μεταβλητών
int [ ] [ ] values; // int [ ] είναι ένας τύπος δεδομένων
13
Πίνακες
• Για να δημιουργήσουμε πίνακα συγκεκριμένου μεγέθους, χρησιμοποιούμε τον τελεστή new :
int [ ] values = new int [5];
ή μία μεταβλητή για να καθορίσουμε το μέγεθος:
int size = 12;
int [ ] values = new int [size];
14
Αρχικοποίηση Πίνακα
• Άγκιστρα μπορούν να χρησιμοποιηθούν για να αρχικοποιήσουμε έναν πίνακα.
• Μπορούν ωστόσο να χρησιμοποιηθούν ΜΟΝΟ όταν ορίζουμε τη μεταβλητή/ πίνακα.
int [ ] values = { 12, 24, -23, 47 } ;
15
Ώρα για Quiz!
• Υπάρχει λάθος σε αυτόν το τμήμα κώδικα;
int[ ] values = {1, 2.5, 3, 3.5, 4};
16
Πρόσβαση στα Στοιχεία Πινάκων
• Για να έχουμε πρόσβαση στα στοιχεία του πίνακα, χρησιμοποιούμε τον τελεστή [ ]:
values [index]
• Παράδειγμα:
int [ ] values = { 12, 24, -23, 47 };
values [3] = 18; // { 12, 24 , -23, 18 }
int x = values[1] + 3; // { 12, 24 , -23, 18 }
// x = 27
17
Η Εντολή length
• Κάθε πίνακας έχει μια ενσωματωμένη εντολή length η οποία και περιέχει το μήκος του πίνακα.
• int [ ] values = new int [12];
• int size = values.length; // η απάντηση είναι 12
• int [ ] values2 = { 1, 2, 3, 4, 5}
• int size2 = values2.length; // 5
18
Πoλυδιάστατοι πίνακες
• Ένας πολυδιάστατος πίνακας ακολουθεί τους κανόνες δήλωσης πινάκων, αλλά έχει περισσότερες από μία διαστάσεις.
int [ ] [ ] values = new int [6][5]; // πίνακας 2 διαστάσεων
• Εδώ η πρώτη αγκύλη είναι για τις γραμμές και η δεύτερη για τις στήλες.
19
Πίνακες Συμβολοσειρών
• public static void main (String [ ] arguments) {
System.out.println (arguments.length);
System.out.println (arguments [0]);
System.out.println (arguments [1]);
}
20
21
4.2 Συνδυάζοντας Βρόχους Επαναλήψεων και Πίνακες
Διατρέχοντας έναν Πίνακα Με τη Βοήθεια Ενός βρόχου
• Παράδειγμα 1:
int [ ] values = new int[5];
for (int i=0; i<values.length; i++) {
values[i] = i;
int y = values[i] * values[i];
System.out.println(y);
}
Ερώτηση: Εξηγήστε τι κάνει το παραπάνω πρόγραμμα
22
Διατρέχοντας έναν Πίνακα Με τη Βοήθεια Ενός βρόχου
• Παράδειγμα 2:
int [ ] values = new int [5];
int i = 0;
while (i < values.length) {
values[i] = i;
int y = values[i] * values[i];
System.out.println(y);
i++;
}
23
Ένα παράδειγμα με πίνακα 2 διαστάσεων
• Ο ακόλουθος κώδικας εκτυπώνει όλα τα στοιχεία ενός πίνακα 2 διαστάσεων.
int rows =3;
int columns = 2;
int [ ] [ ] values = { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } };
for (int i=0; i<rows; i++) {
for (int j=0; j<columns; j++) {
System.out.println(values[i][j]+” “);
}
}
24
Σε αυτή την ενότητα μιλήσαμε για:
26
4.1 Πίνακες
4.2 Συνδυάζοντας Βρόχους Επαναλήψεων και Πίνακες
Αντικειμενοστραφής Προγραμματισμός
Ενότητα 4: Πίνακες, Συνδυασμός
Βρόχων Επαναλήψεων και Πινάκων.
Δρ. Χαράλαμπος Ζ. Πατρικάκης Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ
Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα