Εισαγωγή στους πίνακες



Σχετικά έγγραφα
Προγραμματισμός Υπολογιστών

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

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

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

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

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

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

Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό. 4η Διάλεξη Πίνακες Συναρτήσεις

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

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

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

Συναρτήσεις και διαδικασίες

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

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

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

10 η Διάλεξη C++ - Πίνακες. Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ

Συναρτήσεις και Πίνακες

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

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

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

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 17/1/08

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

Συναρτήσεις. Εισαγωγή

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

Αναφορές, είκτες και Αλφαριθμητικά

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Συναρτήσεις II Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Κεφάλαιο , 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

Διάλεξη 6: Δείκτες και Πίνακες

Εισαγωγή στην γλώσσα προγραμματισμού C

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

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

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

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

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

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

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

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

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

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

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

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (Programming in the large)

Ασκηή σεις 12ο Μαά θημα - Λυύ σεις

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

Εργαστήριο 1: Επανάληψη Βασικών Εννοιών στη Γλώσσα C

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

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

Προγραμματισμός Συστημάτων

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

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

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

Μεταβλητές. Έστω η μεταβλητή

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

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

Οντοκεντρικός Προγραμματισμός

Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C (2)

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

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

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

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

Διάλεξη 5: Δείκτες και Συναρτήσεις

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

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

Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C (2)

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

Διδάσκων: Παναγιώτης Ανδρέου

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

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

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

I. ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ. math-gr

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

ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β

Κεφάλαιο 3.1, : Συναρτήσεις I. (Διάλεξη 11)

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

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 8 η : Συναρτήσεις Χειµερινό Εξάµηνο 2011

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

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 8 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

Συναρτήσεις. Κατασκευαστικά Τεµάχια για τη ηµιουργία Αρθρωτών Προγραµµάτων

ΣΥΝΑΡΤΗΣΕΙΣ (Functions)

Απάντηση. // We write in a header file named my_header.h #ifndef my_header_h #define my_header_h #define divides(x,y) (((y)%(x)==0)?

ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δείκτες και Συναρτήσεις (Κεφάλαιο 11, KNK-2ED)

Εισαγωγή στη Matlab Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής

Κεφάλαιο 6: Συναρτήσεις IΙΙ Αρθρωτός Προγραμματισμός. (Διάλεξη 14) Παράδειγμα: Αλλαγή τιμής μεταβλητής μόνο τοπικά

Επανάληψη για τις Τελικές εξετάσεις

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

C: Από τη Θεωρία στην Εφαρμογή

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

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

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

Transcript:

Εισαγωγή στους πίνακες

Πίνακες Ένας πίνακας (array) είναι μια συλλογή μεμονωμένων τιμών με τα παρακάτω χαρακτηριστικά: Διατεταγμένος Ομοιογενής Κάθε τιμή ενός πίνακα ονομάζεται στοιχείο (element) του πίνακα.

Ιδιότητες πίνακα Δήλωση πίνακα Ιδιότητες πίνακα Ο τύπος των στοιχείων του πίνακα Το μέγεθος του πίνακα Δήλωση πίνακα τύπος_στοιχείου όνομα_πίνακα[μέγεθος]; Παραδείγματα int intarray[10]; double darray[5];

Αριθμοδείκτης (index) Κάθε στοιχείο ενός πίνακα προσδιορίζεται από μια αριθμητική τιμή που ορίζει τη θέση του στοιχείου αυτού στον πίνακα και ονομάζεται αριθμοδείκτης (index). 0 1 2 3 4

Επιλογή στοιχείου πίνακα Αναφερόμαστε στο i-οστό στοιχείο ενός πίνακα a ως εξής: a[i] Η γενική μορφή μιας παράστασης για την επιλογή ενός στοιχείου πίνακα είναι: όνομα_πίνακα[αριθμοδείκτης]; Με αυτό τον τρόπο μπορούμε να διαβάσουμε ή να αναθέσουμε τιμή σε αυτό το στοιχείο.

Επιλογή στοιχείου πίνακα (συνέχ.) Παράδειγμα: int a[5], val; /* Ανάθεση τιμής στο τρίτο στοιχείο του πίνακα */ a[2] = 12;? 0 1 2 3 4 12 0 1 2 3 4 /* Ανάγνωση της τιμής του τρίτου στοιχείου του πίνακα a */ val = a[2]; 12 0 1 2 3 4 val

Παράδειγμα βιβλίου (σ. 449) Ένα πρόγραμμα για την εμφάνιση του μέσου βαθμού μιας αθλήτριας ρυθμικής γυμναστικής από τη βαθμολογία 5 κριτών. Έστω NJudges ο αριθμός των κριτών (5) gymnasticscores[njudges] ο πίνακας με τις βαθμολογίες.

Συνέχεια Παραδείγματος Εισαγωγή της βαθμολογίας printf("please enter a score for each judge.\n"); for (i = 0; i < NJudges; i++) { printf("score for judge #%d: ", i); /* Ανάθεση τιμής στο i-οστό στοιχείο του πίνακα * gymnasticscores[i] = GetReal(); } Υπολογισμός του μέσου όρου total = 0.0; for (i = 0; i < NJudges; i++) { /* Ανάγνωση του i-οστού στοιχείου του πίνακα */ total += gymnasticscores[i]; } average = total / NJudges;

Το πλήρες πρόγραμμα Πρόγραμμα Βαθμολογίας Κριτών

Αναπαράσταση διανυσμάτων ως πίνακες Ένα διάνυσμα [α 1, α 2,..., α n ] του R n μπορεί να αναπαρασταθεί από έναν πίνακα με n στοιχεία. Εφαρμογή: Πρόγραμμα που υπολογίζει το εσωτερικό γινόμενο δύο διανυσμάτων. Κώδικας υπολογισμού του εσωτερικού γινομένου δύο διανυσμάτων a και b /* Ypologismos eswterikoy ginomenoy */ vproduct = 0.0; for (i=0; i < N; i++){ vproduct += a[i] * b[i]; }

Πλήρες πρόγραμμα υπολογισμού εσωτερικού γινομένου διανυσμάτων Το πλήρες Πρόγραμμα υπολογισμού εσωτερικού γινομένου δια

Πέρασμα πίνακα ως παραμέτρου σε συνάρτηση Ένας πίνακας είναι δυνατόν να αποτελεί όρισμα μιας συνάρτησης. Η μορφή του πρωτοτύπου μιας συνάρτησης με όρισμα έναν μονοδιάστατο πίνακα είναι η εξής: int f(int a[], int n); Ενώ η κλήση της συνάρτησης γίνεται ως εξής: int myarray[10]; f(myarray, 10);

Πέρασμα πίνακα ως παραμέτρου σε συνάρτηση Προσοχή: οι πίνακες περνιούνται ως παράμετροι με αναφορά, δηλαδή είναι δυνατή η αλλαγή των στοιχείων του πίνακα που αποτελεί όρισμα στην κλήση μιας συνάρτηση.

Συνάρτηση υπολογισμού του εσωτερικού γινομένου αριθμών double mmult(double x[], double y[], int n); double mmult(double x[], double y[], int n) { double sprod = 0.0; int i; } for (i=0; i < n; i++) { sprod += x[i] * y[i]; } return sprod;

Συνάρτηση για την ανάγνωση των στοιχείων πίνακα void InsertTableData(double x[], int n) { int i; for (i=0; i < n; i++) { } } printf("[%d]= ",i + 1); x[i] = GetReal();

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

Ανάθεση αρχικών τιμών σε πίνακα Κατά τη δήλωση ενός πίνακα είναι δυνατόν να δώσουμε αρχικές τιμές στα στοιχεία του πίνακα, σύμφωνα με το παρακάτω παράδειγμα: double t[4] = {2.0, 3.2, 1.4, 4.1}; Το παραπάνω είναι ισοδύναμο με το double t[4]; t[0] = 2.0; t[1] = 3.2; t[2] = 1.4; t[3] = 4.1;

Ασκήσεις 3 και 4, Κεφ. 11 Υπολογισμός της μέσης τιμής και της τυπικής απόκλισης των (πραγματικών) στοιχείων ενός πίνακα. Υπολογισμός μέσης τιμής x= x i n Υπολογισμός τυπικής απόκλισης σ = x x i 2 n

Συνάρτηση υπολογισμού μέσης τιμής double mt(double x[], int n) { double sum; int i; } sum = 0; for (i=0; i < n; i++){ sum = sum + x[i]; } return (sum / n);

Συνάρτηση υπολογισμού τυπικής απόκλισης double ta(double x[], int n) { double m, sum; int i; m = mt(x,n); sum = 0; for (i =0; i < n; i++) { sum = sum + (m - x[i]) * (m - x[i]); } sum = sum / n; sum = sqrt (sum); } return sum;

Πλήρες πρόγραμμα Το πλήρες πρόγραμμα υπολογισμού μέσων τιμών και τυπικών αποκλίσεων.

Αναπαράσταση πολυωνύμου ως πίνακα Έστω το πολυώνυμο βαθμού n α n x n a n 1 x n 1... a 1 x a 0 Το παραπάνω πολυώνυμο είναι δυνατόν να αναπαρασταθεί από έναν πίνακα a μεγέθους n + 1 τέτοιον ώστε a[n] = α n a[n-1] = α n-1... a[1] = a 1 a[0] = a

Υπολογισμός της τιμής πολυωνύμων βαθμού n Ένα πολυώνυμο βαθμού n είναι δυνατόν να γραφεί ως εξής: α n x n a n 1 x n 1... a 1 x a 0 = α n x a n 1 x... a 1 x a 0 Για παράδειγμα 5 x 3 3 x 2 x 4= 5 x 3 x 1 x 4

Συνάρτηση υπολογισμού της τιμής πολυωνύμου /* Προσοχή: Το μέγεθος του πίνακα πρέπει να είναι n + 1 */ double polyvalue(double p[], int n, int x) { double value; int i; } value = p[n]; for (i = n - 1; i >= 0; i--) { value = value * x + p[i]; } return value;

Άλλα παραδείγματα Εκτύπωση στοιχείων πίνακα Αντιστροφή πίνακα

Περαιτέρω μελέτη: Ενότητα 11.1 του βιβλίου