Υπολογισμός - Συλλογή Δεδομένων - Πίνακες

Σχετικά έγγραφα
Η γλώσσα προγραμματισμού C

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

Η γλώσσα προγραμματισμού C

Διαδικασιακός Προγραμματισμός

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Η γλώσσα προγραμματισμού C

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ

Η γλώσσα προγραμματισμού C

Κεφάλαιο Πίνακες Ι. (Διάλεξη 16)

Η γλώσσα προγραμματισμού C

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Μεθόδων Επίλυσης Προβλημάτων

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Μεθόδων Επίλυσης Προβλημάτων

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων. 14. Πίνακες Ι. Ιωάννης Κατάκης. ΕΠΛ 032: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων

Εισαγωγή στον Προγραμματισμό

Γλώσσα Προγραμματισμού C

Η γλώσσα προγραμματισμού C

Υπολογισμός - Εντολές Επανάληψης

Προγραμματισμός I (Θ)

Προγραμματισμός I (Θ)

ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ. Σχήµα 1: H έννοια των πινάκων

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C

Ηλεκτρονικοί Υπολογιστές

Κεφάλαιο Πίνακες Ι. ( ιάλεξη 15) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες ( ιάλεξη 18) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8

διανύσματα - Πίνακες - Struct Στατικό διάνυσμα Είσοδος Έξοδος δεδομένων Συναρτήσεις Χειρισμός σφαλμάτων ΤΕΤΑΡΤΗ ΔΙΑΛΕΞΗ

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

ΗΥ-150. Προγραµµατισµός. Πίνακες (Arrays)

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

ΦΥΛΛΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ 1

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 3 Επανάληψη Γ μέρος

Διαδικασιακός Προγραμματισμός

Διάλεξη 9η: Πίνακες (arrays)

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

ΗΥ-150. Πίνακες (Arrays)

Εισαγωγή στην πληροφορική

Διαδικασιακός Προγραμματισμός

Προγραμματισμός Η/Υ (ΤΛ2007 )

Υπολογισμός - Εντολές Ελέγχου

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

scanf() scanf() stdin scanf() printf() int float double %lf float

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Διαδικασιακός Προγραμματισμός

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Γλώσσα Προγραμματισμού C. Προγραμματισμός HY: Γλώσσα Προγραμματισμού C. Γρήγορος Πίνακας Αναφοράς Σύνταξης. Εισήγηση #4. Επαναληπτικές δομές:

Δισδιάστατοι Πίνακες (2D Arrays) Εισαγωγή στη C++

Μεθόδων Επίλυσης Προβλημάτων

Στόχοι και αντικείμενο ενότητας. Τύπος πίνακα. Τύπος πίνακα (συν.) #6. Πίνακες και Δείκτες

Γλώσσα Προγραμματισμού C

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

Εισαγωγή στην πληροφορική

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Προγραμματισμός Η/Υ (ΤΛ2007 )

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Η/Υ (ΤΛ2007 )

Η γλώσσα προγραμματισμού C

Εισαγωγή στον δομημένο προγραμματισμό

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

Master Mind εφαρμογή στη γλώσσα προγραμματισμού C

Προγραμματισμός I (Θ)

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Μεθόδων Επίλυσης Προβλημάτων

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Διαδικασιακός Προγραμματισμός

Δομημένος Προγραμματισμός

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Πίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα "Αλφαριθμητικά"

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμό για ΗΜΥ

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2

Κεφάλαιο 8.6. Πίνακες ΙI (Διάλεξη 17)

Πίνακες. Χρησιμοποιούνται για αποθήκευση συνόλου δεδομένων του ίδιου τύπου. Γραμμική Διάταξη Δήλωση Τύπος Δεδομένων ΌνομαΠίνακα[ length ]

Ανάπτυξη και Σχεδίαση Λογισμικού

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Διαδικασιακός Προγραμματισμός

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Γλώσσες Προγραμματισμού

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Δομημένος Προγραμματισμός (ΤΛ1006)

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

Transcript:

Προγραμματισμός Η/Υ Ι Υπολογισμός - - Πίνακες ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1

Περίληψη Σήμερα... θα συζητήσουμε τη χρήση του πίνακα (array) για τη συλλογή δεδομένων 2

Συλλογή δεδομένων για να κάνουμε κάτι ενδιαφέρον σε ένα πρόγραμμα, χρειαζόμαστε μία συλλογή δεδομένων στα οποία θα δουλέψουμε, π.χ. κατάλογος τηλεφώνων λίστα με τα μέλη μιας ποδοσφαιρικής ομάδας λίστα βιβλίων που διαβάσαμε την τελευταία χρονιά έναν πίνακα μετεωρολογικών προβλέψεων στα πλαίσια του παρόντος μαθήματος, θα συζητήσουμε για τους πίνακες (arrays) έναν από τους πιο απλούς και πιο χρήσιμους τρόπους συλλογής δεδομένων ο πίνακας είναι μία δομή δεδομένων 3

Πίνακας (Array) μια διατεταγμένη ακολουθία δεδομένων ίδιου τύπου, στα οποία αναφερόμαστε με ένα όνομα δηλαδή με μια μεταβλητή π.χ. o ο διπλανός πίνακας ακεραίων A περιέχει τα στοιχεία: {1, 4, 2, 3, 5} A: 1 4 2 3 5 είναι ένας μονοδιάστατος πίνακας δηλαδή ένα διάνυσμα o ο διπλανός δισδιάστατος πίνακας ακεραίων B περιέχει τα στοιχεία: {{1,3,4}, {5,8,2}} B: 1 3 4 5 8 2 η ιδέα αυτής της μαζικής αναφοράς στοιχείων, προέρχεται από τα μαθηματικά διανύσματα, πίνακες 4

Πίνακας (Array) - Υλοποίηση κάθε κελί της μνήμης είναι 4 byte! Γιατί; δεδομένα / εντολές 55 10 διευθύνσεις (128 10 ) υλοποιείται με τη δέσμευση συνεχόμενων κελιών της κύριας μνήμης κατά τη διάρκεια της εκτέλεσης του προγράμματος A: 1 10 4 10 2 10 3 10 (132 10 ) (136 10 ) (140 10 ) (144 10 ) π.χ. 5 10 (148 10 ) η αναπαράσταση στη μνήμη των παρακάτω πινάκων ακεραίων (A και B), παρουσιάζεται στο διπλανό σχήμα 2003 10 1 10 3 10 (152 10 ) (156 10 ) (160 10 ) A: 1 4 2 3 5 B: 4 10 5 10 (164 10 ) (168 10 ) Β: 1 3 4 5 8 2 8 10 2 10 (172 10 ) (176 10 ) 5

Πίνακας (Array) - Μονοδιάστατος π.χ. ένας πίνακας μιας διάστασης είναι ένα διάνυσμα ένας μονοδιάστατος πίνακας με όνομα A που φιλοξενεί 10 πραγματικούς αριθμούς (βαθμούς φοιτητών) έχει την εξής μορφή: A: 6.1 9.4 7.2 3.3 5.0 1.9 10.0 5.2 6.7 8.0 βαθμός 1 ου φοιτητή βαθμός 2 ου φοιτητή βαθμός 10 ου φοιτητή 6

Πίνακας (Array) - Μονοδιάστατος - Δήλωση η δήλωση γίνεται ως εξής: float grades[10]; int students[20]; // για αποθήκευση 10 πραγματικών αριθμών // για αποθήκευση 20 ακεραίων αριθμών γενικά: τύπος_δεδομένων όνομα_πίνακα [πλήθος_στοιχείων] προτιμούμε να δηλώσουμε το πλήθος_στοιχείων ως σταθερά! #define N 10 float grades[ν]; 7

Πίνακας (Array) - Μονοδιάστατος - Αναφορά σε στοιχεία για να αναφερθούμε στο στοιχείο ενός πίνακα χρησιμοποιούμε: το όνομα του πίνακα και το δείκτη θέσης του στοιχείου μέσα σε αγκύλες [] A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9] A: 6.1 9.4 7.2 3.3 5.0 1.9 10.0 5.2 6.7 8.0 βαθμός 1 ου φοιτητή βαθμός 2 ου φοιτητή βαθμός 10 ου φοιτητή 8

Πίνακας (Array) - Μονοδιάστατος - Απόδοση τιμών κατά την διάρκεια της εκτέλεσης του προγράμματος Α[j] = 8; με τη δήλωση του πίνακα (απόδοση αρχικών τιμών) int A[5] = {5,8,2,6,3}; αν δεν υπάρχουν όλες οι τιμές int A[5] = {5,8,2}; απόδοση αρχικών μηδενικών τιμών int A[5] = {0}; // A[0]=5; A[1]=8; A[2]=2; A[3]=6; A[4]=3; // A[0]=5; A[1]=8; A[2]=2; A[3]=0; A[4]=0; // A[0]=0; A[1]=0; A[2]=0; A[3]=0; A[4]=0; μπορεί να μη δηλωθεί το πλήθος των στοιχείων όταν αποδίδονται αρχικές τιμές: int A[] = {5,8,2,6,3}; // A[0]=5; A[1]=8; A[2]=2; A[3]=6; A[4]=3; 9

Πίνακας (Array) - Σύνοψη βασικά χαρακτηριστικά πινάκων: 1. ονομασία 2. διάσταση (1, 2, πολλών διαστάσεων) 3. τύπος δεδομένων που περιέχει (π.χ. int, float, char,...) 4. πλήθος στοιχείων σε κάθε διάσταση του κάθε στοιχείο του πίνακα βρίσκεται σε μία θέση με συγκεκριμένες συντεταγμένες η διάσταση προσδιορίζει τον αριθμό των ακεραίων δεικτών θέσης που χρειάζονται για τις συντεταγμένες του στοιχείου, στον πίνακα για πίνακες 1 διάστασης απαιτείται 1 δείκτης θέσης: A[i] για πίνακες 2 διαστάσεων απαιτούνται 2 δείκτες θέσης: A[i][j] κ.ο.κ 10

Πίνακας (Array) - Σύνοψη ΙΙ μια αρκετά διαδεδομένη δομή δεδομένων προσφέρεται από σχεδόν κάθε γλώσσα προγραμματισμού επιτρέπει την αποτελεσματική οργάνωση δεδομένων ίδιου τύπου η επεξεργασία των δεδομένων του γίνεται μαζικά με χρήση των εντολών επανάληψης όπως θα δούμε στη συνέχεια στα παραδείγματα... 11

Πίνακας (Array) - Τεχνικές λεπτομέρειες όταν ο πίνακας δηλώνεται, τα στοιχεία του έχουν ακαθόριστες τιμές είναι απαραίτητο πάντα να αρχικοποιούμε τα στοιχεία του πίνακα! το μέγιστο πλήθος στοιχείων εξαρτάται από το μεταγλωττιστή μπορούμε να βρούμε το μέγεθος του πίνακα με τον τελεστή sizeof(): sizeof(grades)/sizeof(float) // πλήθος στοιχείων Ν ο δείκτης θέσης εκτός από ακέραιος μπορεί να είναι μεταβλητή ή αριθμητική έκφραση π.χ. 1. j = 2; 2. i = 4; 3. grades[i] = 6.5; // το 5 ο στοιχείο 4. grades[i+j] = 9.3; // το 7 ο στοιχείο 12

Πίνακας (Array) - Τεχνικές λεπτομέρειες ΙΙ δεδομένα / εντολές 55 10 διευθύνσεις (128 10 ) το όνομα του πίνακα (χωρίς τις αγκύλες) περιέχει τη διεύθυνση του 1 ου στοιχείου του πίνακα (δείκτης μνήμης) A: 1 10 4 10 2 10 (132 10 ) (136 10 ) (140 10 ) printf("%d", A); printf("%d", B); // εκτυπώνει:132 // εκτυπώνει:156 3 10 5 10 2003 10 (144 10 ) (148 10 ) (152 10 ) 1 10 (156 10 ) 3 10 (160 10 ) A: 1 4 2 3 5 B: 4 10 5 10 (164 10 ) (168 10 ) Β: 1 3 4 5 8 2 8 10 2 10 (172 10 ) (176 10 ) 13

Μονοδιάστατοι Πίνακες Παραδείγματα 14

Μονοδιάστατοι Πίνακες Παράδειγμα: Εκτύπωση στοιχείων πίνακα πραγματικών αριθμών 1. #include <stdio.h> 2. #define N 5 3. main () 4. { 5. int i; 6. float Α[N] = {1.2, 3.5, 2.6, 7.2, 5.1}; 7. 8. printf("array A: \n"); 9. for (i = 0; i < N; i++) { 10. printf("a[%d]: %4.2f\n", i, Α[i]); 11. } 12. }? ποιες αλλαγές πρέπει να γίνουν αν ο Α είναι πίνακας ακεραίων; 15

Μονοδιάστατοι Πίνακες Παράδειγμα: Εκτύπωση στοιχείων πίνακα ακεραίων αριθμών 1. #include <stdio.h> 2. #define N 5 3. main () 4. { 5. int i; 6. int Α[N] = {1, 3, 2, 7, 5}; 7. 8. printf("array A: \n"); 9. for (i = 0; i < N; i++) { 10. printf("a[%d]: %d\n", i, Α[i]); 11. } 12. } 16

Μονοδιάστατοι Πίνακες Παράδειγμα: Αρχικοποίηση στοιχείων 1. #include <stdio.h> 2. #define N 5 3. main () 4. { 5. int i, Α[N] = {1, 3}, Β[N] = {0}; 6. 7. printf("array A: \n"); 8. for (i = 0; i < N; i++) { 9. printf("a[%d]: %d\n", i, Α[i]); 10. } 11. 12. printf("array Β: \n"); 13. for (i = 0; i < N; i++) { 14. printf("β[%d]: %d\n", i, Β[i]); 15. } 16. }? τι εκτυπώνει το πρόγραμμα; 17

Μονοδιάστατοι Πίνακες Παράδειγμα: Αρχικοποίηση στοιχείων πίνακα από το πληκτρολόγιο 1. #include <stdio.h> 2. #define N 10 3. main () 4. { 5. int i, Α[N]; 6. 7. for (i = 0; i < N; i++) { 8. printf("give the %d element of the array: ", i+1); 9. scanf("%d", &Α[i]); 10. } 11. 12. printf("your array: \n"); 13. for (i = 0; i < N; i++) { 14. printf("a[%d]: %d\n", i, Α[i]); 15. } 16. } 18

Σύνοψη Πίνακας Υλοποίηση Μονοδιάστατος Δήλωση Αναφορά σε στοιχεία Απόδοση τιμών Παραδείγματα 19