[Μονοδιάστατοι πίνακες]

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Το αλφαριθμητικό (string)
Advertisements

Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση.
ΠΙΝΑΚΕΣ ΜΑΘΗΜΑ 6.
Στοιχειώδεις Δομές Δεδομένων TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Τύποι δεδομένων στη Java • Ακέραιοι.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Copy Constructor Deep and Shallow Copies.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Πίνακες-Αλφαριθμητικά
Πινακες (Arrays) Σημασια Συνταξη Αρχικοποιηση Προσβαση Παραμετροι
ΜΑΘ3122/106 Γλώσσα Προγραμματισμού
Προγραμματισμός Ι Πίνακες •Ο πίνακας είναι μία συλλογή μεταβλητών ίδιου τύπου, οι οποίες είναι αποθηκευμένες σε διαδοχικές θέσεις μνήμης. Χρησιμοποιείται.
Παράδειγμα 2: Κινηματογράφοι Να γραφεί πρόγραμμα το οποίο:
Δείκτες, Πίνακες και Δείκτες, Δείκτες σε Συναρτήσεις
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Αντικείμενα ως ορίσματα.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα.
Αναδρομη και static Γραψετε την συναρτηση sequence_size που διαβαζει μια απροσδιοριστου μεγεθους σειρας και υπολογιζει και τυπωνει το μεγεθος της. int.
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 9: Διανύσματα και λίστες.
Μάθημα : Βασικά Στοιχεία της Γλώσσας Java
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
TEMPLATES STANDARD TEMPLATE LIBRARY ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ C Evangelos Theodoridis.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
Συναρτήσεις Κληση/Επιστροφη Παραμετροι
Παράδειγμα 5: Θερμοκρασίες
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 6: Java Collections Εβδομάδα 6: Συλλογές δεδομένων στην Java.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 4: Exceptions Εβδομάδα 4: Εξαιρέσεις [Exceptions]
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Συλλογές.
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Ολυμπιάδα Πληροφορικής
Παράδειγμα 2:Υπολογισμός μέγιστης και ελάχιστης θερμοκρασίας Αλγόριθμος Ελάχιστη_Μέγιστη !Αρχή αλγορίθμου.
ΣΤΟΙΧΕΙΑ ΤΗΣ ΓΛΩΣΣΑΣ C++ Και ομοιότητες και διαφορές με την C.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές.
ΕΠΛ 223 Θεωρία και Πρακτική Μεταγλωττιστών7-1 Πίνακας Συμβόλων Πίνακας συμβόλων: δομή δεδομένων που χρησιμοποιείται για την αποθήκευση διαφόρων πληροφοριών.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γενικευμένες κλάσεις Συλλογές.
ΜΑΘΗΜΑ: ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Τμ.
Templates Standard Template Library (STL) Exceptions Μεταπτυχιακό Πρόγραμμα Σπουδών, Τμήμα Εφαρμοσμένης Πληροφορικής.
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - 4ο εξάμηνο1 Ανάλυση Αλγορίθμων b Θέματα: Ορθότητα Χρονική αποδοτικότητα Χωρική αποδοτικότητα Βελτιστότητα b Προσεγγίσεις:
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Copy Constructor Deep and Shallow Copies.
Γράφημα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Συνδυαστικό αντικείμενο που αποτελείται από.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
Δομές Δεδομένων 1 Θέματα Απόδοσης. Δομές Δεδομένων 2 Οργανώνοντας τα Δεδομένα  Η επιλογή της δομής δεδομένων και του αλγορίθμου επηρεάζουν το χρόνο εκτέλεσης.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές.
Βασικά στοιχεία της Java
Κεφάλαιο 3 Τύποι Δεδομένων - Τελεστές. Πρωτογενείς τύποι δεδομένων: int, float, double, chars ΤύποςΌνομαΜέγεθος byte 8-bit signed, short 16-bit.
Προγραμματισμός ΗΥ Ενότητα 6: Δισδιάστατοι πίνακες.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα.
Συνδετικότητα γραφήματος (graph connectivity). α β Υπάρχει μονοπάτι μεταξύ α και β; Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές.
Δομές δεδομένων και Αλγόριθμοι Κεφάλαιο 3. Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Δεδομένα Δεδομένα (data) Δεδομένα (data) –αφαιρετική αναπαράσταση.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Παράδειγμα Κληρονομικότητας Γενικευμένες κλάσεις.
Πίνακες στην JAVA ΕΡΓΑΣΤΗΡΙΟ AΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Διαφάνειες: ΧΟΧΟΛΗΣ ΔΙΟΝΥΣΙΟΣ Προσαρμογή 2014: Κώστας Στάμος)
ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ Η/Υ 1 Εισαγωγή στη γλώσσα Προγραμματισμού C ΠΙΝΑΚΕΣ (arrays)
Πολυδιάστατοι Πίνακες στην JAVA ΕΡΓΑΣΤΗΡΙΟ AΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΧΟΧΟΛΗΣ ΔΙΟΝΥΣΙΟΣ.
Πίνακες και αλφαριθμητικά
3η Διάλεξη Στοιχειώδεις Δομές Δεδομένων: Πίνακες Ε. Μαρκάκης
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Κλάσεις και αντικείμενα
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Ενότητα 9: Δείκτες και Δυναμική Διαχείριση Μνήμης.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Ειδικά Θέματα στον Προγραμματισμό Υπολογιστών
Κάθε ένα από τα αντικείμενα λέγεται στοιχείο του πίνακα.
Εισαγωγή στον Προγ/μό Υπολογιστών
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Τύποι δεδομένων και τελεστές,
Εξαιρέσεις [Exceptions]
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Μεταγράφημα παρουσίασης:

[Μονοδιάστατοι πίνακες] Διάλεξη #8: Διανύσματα [Μονοδιάστατοι πίνακες]

Παράδειγμα Πρόβλημα: Καταγραφέας θερμοκρασιών για μετεωρολογική υπηρεσία Αισθητήρες συλλέγουν θερμοκρασία σε τακτά διαστήματα κατά τη διάρκεια της ημέρας Θέλουμε να αποθηκεύσουμε τις θερμοκρασίες να υπολογίσουμε τη μέγιστη θερμοκρασία να υπολογίσουμε την ελάχιστη θερμοκρασία

Διανύσματα – το πρόβλημα Πως αποθηκεύουμε πολλές τιμές; Πολλές μεταβλητές; Πόσες; Τι γίνεται εάν χρειαζόμαστε χιλιάδες μεταβλητές; public class TemperatureReader { private float temp1; private float temp2; private float temp3; private float temp4; private float temp5; ... }

Διανύσματα – η λύση Αντί να πούμε χίλιες φορές «Δώσε μου μια μεταβλητή» λέμε μία φορά «Δώσε μου χίλιες μεταβλητές». Πολλές μεταβλητές: Μια μεταβλητή διάνυσμα: temp1 temperatures temp2 temp3 temp4 temp5 ...

Τα διανύσματα είναι αντικείμενα (σχεδόν) 12.3 temperatures 12.7 14.9 16.2 15.1 private float temperatures[]; temperatures = new float[5];

Σύνταξη: δήλωση διανύσματος ΌνομαΤύπου[] προσδιοριστής; ΌνομαΤύπου προσδιοριστής[]; typeName[] identifier; typeName identifier[]; Παραδείγματα: int numbers[]; Person people[];

Σύνταξη: δημιουργία διανύσματος new ΌνομαΤύπου[μήκος]; new typeName[length]; Παραδείγματα: new int[10]; new Person[2300];

Προσπέλαση διανύσματος Η προσπέλαση των στοιχείων ενός διανύσματος γίνεται μέσω των «τετράγωνων αγκύλων» ( [ ] ) float element = temperatures[0]; temperatures[3] = 21.2; temperatures[0] = temperatures[1];

Προσπέλαση μέσω δεικτών (Indexing) Οι δείκτες ενός διανύσματος αρχίζουν από το 0! Έγκυροι δείκτες διανύσματος είναι οι 0..length-1 Παράδειγμα: ένα διάνυσμα μεγέθους 5 έχει δεικτες 0..4 Τα ονόματα των στοιχείων του διανύσματος είναι: temperatures[0] temperatures[1] temperatures[2] temperatures[3] temperatures[4] δείκτης 12.3 temperatures 12.7 1 14.9 2 16.2 3 15.1 4

Σύνταξη: προσπέλαση διανύσματος όνομαΔιανύσματος[δείκτης] arrayName[index] Παραδείγματα: a[10] = 77; num[i] = num[i+1];

Σύνηθες λάθος: προσπέλαση εκτός ορίων Έστω ένα διάνυσμα 5 στοιχείων: Μετά γράφουμε: Τι θα συμβεί; δείκτης 12.3 temperatures 12.7 1 14.9 2 16.2 3 System.out.println(temperatures[5]); 15.1 4 ArrayIndexOutOfBoundsException: 5

Σύνηθες λάθος: παράλειψη δημιουργίας διανύσματος Έστω η δήλωση διανύσματος: Μετά γράφουμε: Τι θα συμβεί; int numbers[]; numbers[0] = 42; numbers numbers = new int[5]; Παράλειψη: δημιουργία διανύσματος NullPointerException

Επεξεργασία διανυσμάτων Οι βρόγχοι [loops] συχνά χρησιμοποιούνται για την επεξεργασία των στοιχείων ενός διανύσματος Παράδειγμα: Εκτύπωση στοιχείων διανύσματος for(int i = 0; i < 5; i++) { System.out.println(numbers[i]); }

Διανύσματα σε ρόλο παραμέτρων Τα διανύσματα μπορεί να χρησιμοποιηθούν σαν παράμετροι μεθόδων: public void printArray(int intArray[]) { for(int i = 0; i < 5; i++) System.out.println(intArray[i]); } πρόβλημα!! printArray(numbers);

Το πεδίο "length" Τα διανύσματα παρέχουν το πεδίο "public length" public void printArray(int intArray[]) { for(int i = 0; i < intArray.length; i++) System.out.println(intArray[i]); } printArray(numbers);

Μη-πλήρη διανύσματα Πολλές φορές δεν γνωρίζουμε από πριν το ακριβές μέγεθος του διανύσματος (παράδειγμα: είσοδος αριθμών από τον χρήστη) Στην περίπτωση αυτή πρέπει να: δημιουργήσουμε διάνυσμα με μέγεθος μεγαλύτερο από τον αριθμό των στοιχείων που αναμένουμε μετρήσουμε πόσα στοιχεία χρησιμοποιήθηκαν

Πλήρωση διανυσμάτων Παράδειγμα: Διαβάζουμε ακέραιους έως ότου εισαχθεί ο αριθμός -1 από το χρήστη. private int numbers[] = new int[20]; private int count = 0; public void fillArray() { int newNumber = getNewNumber(); while(newNumber != -1) numbers[count] = newNumber; count++; newNumber = getNewNumber(); }

Γεννήτρια τυχαίων αριθμών import java.util.Random; ... public void fillArrayRandom(int intArray[]) { Random rand = new Random(); for(int i = 0; i < intArray.length; i++) intArray[i] = rand.nextInt(); }

Εύρεση μέγιστης τιμής /** * Return the maximum number in an array. * The array must be non-empty. */ public int findMax(int intArray[]) { int max = intArray[0]; for(int i = 1; i < intArray.length; i++) if(intArray[i] > max) max = intArray[i]; } return max;

Μέτρηση στοιχείων /** * Count the number of times a value appears * in an array. */ public int countElements(int intArray[], int elem) { int count = 0; for(int i = 0; i < intArray.length; i++) if(intArray[i] == elem) count++; } return count;

Διαγραφή στοιχείου /** * Remove an element from array 'numbers' at a * given position. 'count' is the number of elements. */ public void removeElement(int pos) { if(pos < 0 || pos >= count) return; for(int i = pos; i < count - 1; i++) numbers[i] = numbers[i+1]; } count--;

Απλοί τύποι / τύποι αντικειμένων Τα στοιχεία των διανυσμάτων αποθηκεύουν τιμές για απλούς τύπους και αναφορές για τύπους αντικειμένων 12.3 numbers 12.7 14.9 16.2 Person 15.1 Person people Person Person Person