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

Σχετικά έγγραφα
Δομημένος Προγραμματισμός

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

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

Εργαστήριο 3 Εντολή for while, do while

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Εισαγωγή στον Προγραμματισμό. Ενότητα 6: Πίνακες. Κ.

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

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

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Λογιστικές Εφαρμογές Εργαστήριο

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Εισαγωγή στον Προγραμματισμό. Ενότητα 4: Έλεγχος Ροής. Κ.

Στατιστική Επιχειρήσεων Ι

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

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

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Εισαγωγή στον Προγραμματισμό. Ενότητα 3: Είσοδος και Έξοδος Δεδομένων

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Εισαγωγή στον Προγραμματισμό. Ενότητα 9: Συναρτήσεις Εμβέλεια

Πληροφορική. Εργαστηριακή Ενότητα 1 η : Εισαγωγή στα Λογιστικά Φύλλα με το MS Excel. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Εισαγωγή στον Προγραμματισμό. Ενότητα 8: Συναρτήσεις. Κ.

Υδραυλικά & Πνευματικά ΣΑΕ

Προγραμματισμός H/Y Ενότητα 4: Δείκτες. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

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

Πληροφορική. Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Βιομηχανικοί Ελεγκτές

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Τεχνικό Σχέδιο

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

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

Στατιστική Επιχειρήσεων Ι

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

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

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

Βιομηχανικοί Ελεγκτές

11 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

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

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

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

Στατιστική Επιχειρήσεων Ι

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Πληροφορική. Εργαστηριακή Ενότητα 6 η : Ταξινόμηση & Ομαδοποίηση Δεδομένων

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

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

Θεωρία Πιθανοτήτων & Στατιστική

Αντικειμενοστραφής Προγραμματισμός

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

Θεωρία Πιθανοτήτων & Στατιστική

ΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

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

Πληροφορική II. Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι. τύποι δεδομένων. Δρ. Γκόγκος Χρήστος

Λογιστικές Εφαρμογές Εργαστήριο

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

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

Βιομηχανικοί Ελεγκτές

Στατιστική Επιχειρήσεων

9 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

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

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

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

Υπολογιστικά & Διακριτά Μαθηματικά

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΠΛΗΡΟΦΟΡΙΚΗ. Ενότητα: Εργαστηριακές Ασκήσεις. Καθηγήτρια: Ι.

8 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

Μοντελοποίηση Λογικών Κυκλωμάτων

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. 4o Εργαστήριο Σ.Α.Ε

Περιβαλλοντική Χημεία

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

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Eισαγωγή στον Προγραμματισμό

Συστήματα Αυτομάτου Ελέγχου II

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Εισαγωγή στον Προγραμματισμό

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

ΑΡΧΕΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

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

Στατιστική Επιχειρήσεων Ι

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

Συστήματα Αυτομάτου Ελέγχου 1 Ενότητα # 5: Χρήση μετασχηματισμού Laplace για επίλυση ηλεκτρικών κυκλωμάτων Μέθοδοι εντάσεων βρόχων και τάσεων κόμβων

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

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

Ειδικά Θέματα Προγραμματισμού

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ. Ενότητα : ΔΙΑΚΡΙΤΟΣ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ FOURIER

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Εισαγωγή στον Προγραμματισμό

Προγραμματισμός H/Y Ενότητα 6: Δομές (structures) Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

Transcript:

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στον Προγραμματισμό με C++ Ενότητα # 4: Πίνακες Κωνσταντίνος Κουκουλέτσος Τμήμα Αυτοματισμού

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Σκοποί Ενότητας Κατανόηση των διαφόρων δηλώσεων πίνακα Εμπέδωση της χρήσης των πινάκων για τη λύση προβλημάτων. 4

Περιεχόμενα Δήλωση πίνακα Αρχικοποίηση πίνακα Συνάρτηση size of Επεξεργασία πίνακα Πολυδιάστατοι πίνακες Παραδείγματα & Ασκήσεις 5

Πίνακας Ένας πίνακας είναι μία ομάδα δεδομένων του ιδίου τύπου. Οι πίνακες δίνουν την δυνατότητα επεξεργασίας πολλών δεδομένων με γρήγορο και από τρόπο. Πχ. Για την επεξεργασία των βαθμών των σπουδαστών σε ένα τμήμα απαιτείται μεγάλο πλήθος μεταβλητών. Για 50 σπουδαστές χρειαζόμαστε 50 μεταβλητές (v1,v2, v3 v50). Πράξεις και γενικά χειρισμός τόσων μεταβλητών είναι πρακτικά αδύνατος. Με την χρήση πίνακα όλες οι μεταβλητές έχουν ένα κοινό όνομα και διαφέρουν μόνο ως προς τον δείκτη. 6

Ορισμός-Δήλωση πίνακα Η δήλωση ορισμός γίνεται ως εξής: type name[size] Π.χ. float vathmos[50] // dilonei ena pinaka me 50 theseis kai stoixeia pragmatikous Π.χ. int v[5] // dilonei ena pinaka me 5 theseis kai stoixeia akeraious H προσπέλαση των στοιχείων γίνεται ως εξής Το 1o στοιχεία του ανωτέρω πίνακα είναι το v[0], Tο 2o στοιχείο είναι το v[1] To τελευταίο στοιχείο του πίνακα είναι το v[4] στη περίπτωση που έχει δηλωθεί ένας πίνακας v[5] ή το v[49] στην περίπτωση που έχει δηλωθεί ένας πίνακας v[50] 7

Αρχικοποίηση πίνακα Τιμές σε πίνακα μπορούν να δοθούν με τον παρακάτω τρόπο int v[5]={101,102,103,104,105 } Αν το μέγεθος του πίνακα δεν έχει γραφεί τότε με μία αρχικοποίηση το πλήθος των στοιχείων του πίνακα ορίζεται από το πλήθος των τιμών τις τιμές που πίνακα int v[ ]={ 100,200,300} Με τον τρόπο αυτό ορίζεται πίνακας 3 θέσεων Αν στην αρχικοποίηση ενός πίνακα παραληφθούν κάποιες τιμές τότε είναι 0 int v[5]={101,102} Οι υπόλοιπες θέσεις του πίνακα δηλ. v[2] =0, v[3] =0, v[4] =0 Η δήλωση int v[50]={0} μηδενίζει όλες τις θέσεις σε ένα πίνακα 8

Δήλωση πίνακα Δήλωση πίνακα int a[10]; Όνομα πίνακα a Τύπος int Σύνολο στοιχείων 10 Συνολικά bytes 4X10=40 9

Μέγεθος πίνακα-συνάρτηση sizeof Η συνάρτηση sizeof μπορεί να χρησιμοποιηθεί με πίνακες και επιστρέφει σαν τιμή το συνολικό μέγεθος σε bytes που καταλαμβάνει ο πίνακας. cout<<sizeof(int); //4 cout<<sizeof(double); //8 int i; sizeof(i) ; //4 Όλα τα στοιχεία του πίνακα έχουν το ίδιος μέγεθος. Για να βρεθεί το μέγεθος που καταλαμβάνει ένας πίνακας μπορεί να χρησιμοποιηθεί η εντολής int plithos = sizeof(pin)/sizeof(pin[0]) To ίδιο θα ήταν αν χρησιμοποιηθεί η εντολή float pin[ ]; int plithos = sizeof(pin)/sizeof(float) 10

Επεξεργασία πίνακα Γίνεται με την χρήση της εντολής for. O λόγος που χρησιμοποιείται το for, αντί για κάποια άλλη δομή επανάληψης, είναι γιατί είναι γνωστό το πλήθος των επαναλήψεων που πρέπει να γίνουν για την πρόσβαση σε όλα τα στοιχεία του πίνακα. 11

Εισαγωγή και εμφάνιση στοιχείων (1) 12

Εισαγωγή και εμφάνιση στοιχείων (2) 13

Εισαγωγή και εμφάνιση στοιχείων (3) 14

Πολυδιάστατος πίνακας Ένα πολυδιάστατος πίνακας έχει περισσότερες από μία διαστάσεις. Πίνακες με παραπάνω από 3 διαστάσεις συναντιόνται σπάνια στην πράξη. Δήλωση πίνακα δύο διαστάσεων Ένα πίνακας με δύο διαστάσεις που θα είχε την δυνατότητα να αποθηκεύει τους βαθμούς μίας τάξης 50 ατόμων σε 6 μαθήματα θα οριζόταν ως εξής float vat[50][6]; Για τους πίνακες δύο διαστάσεων ισχύουν ότι και για τους μονοδιάστατους πίνακες σχετικά με την αρχικοποίηση και τον χειρισμό τους 15

Πίνακας δύο διαστάσεων Αρχικοποίηση int pinax[ 2 ][ 2 ] = { { 11, 22 }, { 33, 44 } }; Προσοχή στην ομαδοποίηση int pinax[ 2 ][ 2 ] = { { 11 }, { 3, 4 } }; Αναπαράσταση πίνακα δύο διαστάσεων int pin[3][4] 16

Παράδειγμα 1 Να εμφανίζεται πίνακας δύο διαστάσεων στην οθόνη. Ο πίνακας να αρχικοποιείται μέσα στο πρόγραμμα. 17

Παράδειγμα 2 18

Άσκηση 1: Εμφάνιση μεγαλύτερου στοιχείου Να εισάγονται σε πίνακα 6 αριθμοί. Μετά την εμφάνιση του πίνακα να εμφανίζεται το μεγαλύτερο στοιχείο του πίνακα και η θέση του. 19

Άσκηση 1: Λύση 20

Άσκηση 2: Εμφάνιση βαθμολογίας Παρατήρηση showpoint: Όταν εμφανίζονται αριθμοί εμφανίζονται πάντα με δεκαδικό σημείο fixed: Οι αριθμοί εμφανίζονται με τόσα δεκαδικά ψηφία όσα καθορίζονται από την setprecision right: Στοιχίζει δεξιά setprecision(2): καθορίζει το πλήθος των δεκαδικών ψηφίων 21

Άσκηση 2: Εμφάνιση βαθμολογίας 22

Τυχαίοι αριθμοί-ψευδοτυχαίοι (1) Στη βιβλιοθήκη <cstdlib> της Dev C++ υπάρχουν οι συναρτήσεις rand και srand, που χρησιμεύουν στην δημιουργία μιας ακολουθίας ψευδο-τυχαίων αριθμών. Η συνάρτηση rand() επιστρέφει ένα ακέραιο αριθμό στο διάστημα [0,RAND_MAX], Η τιμή RAND_MAX για τον Dev C++ compiler είναι 32767. Η συνάρτηση κάνει επιλογή από μία σειρά αριθμών που παράγονται από μαθηματικούς τύπους και θεωρούνται τυχαίοι γι αυτό τον λόγο και ονομάζονται ψευδοτυχαίοι. 23

Τυχαίοι αριθμοί-ψευδοτυχαίοι (2) Η rand κάνει χρήση μίας τέτοιας ακολουθίας αριθμών και πάντα αρχίζει από το ίδιο σημείο έναρξης παραγωγής των αριθμών αυτών. Εάν το πρόγραμμα τρέξει πάλι από την αρχή θα γίνει παραγωγή των ίδιων αριθμών. Για τον λόγο αυτό χρησιμοποιείται η συνάρτηση srand(time(0)) αρχικοποιεί την ακολουθία που παράγει η συνάρτηση rand με διαφορετική τιμή, λαμβάνοντας μία τιμή από την ένδειξη του ρολογιού του υπολογιστή Η συνάρτηση αυτή βρίσκεται στην βιβλιοθήκη <ctime>). 24

Τυχαίοι αριθμοί-ψευδοτυχαίοι (3) Αν χρειαζόμαστε τυχαίους αριθμούς, ακέραιους, σε κάποιο διάστημα από high έως low τότε (low<high) αντί για το διάστημα 0-RAND_MAX, χρησιμοποιείται του ακέραιο υπόλοιπο του τυχαίο αριθμού σύμφωνα με το τύπο x=low+rand()%(high-low+1) εμφανίζεται ακέραιος αριθμός στο διάστημα [low,low+high] (με w<rand_max) πχ. Για να γίνει παραγωγή τυχαίων αριθμών από το 10 έως και το 14 rand()%5 +10 πχ. Για προσομοίωση μίας ρίψης ζαριού rand()%6 +1 25

Παράδειγμα Να εμφανίζονται τα αποτελέσματα 10 ρίψεων που κάνει παίκτης με δύο ζάρια: 26

Τέλος Ενότητας