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

Σχετικά έγγραφα
Προγραμματισμός Ι (ΗΥ120)

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

Προγραμματισμός Υπολογιστών

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

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

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

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

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

είκτες και Πίνακες (2)

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

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

Μονοδιάστατοι πίνακες Πολυδιάστατοι πίνακες Μέθοδοι Μέθοδοι Recursive Overloading

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

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

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

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

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

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

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

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

Περιεχόμενα. Πρόλογος... 21

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

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

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

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

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

Διορθώσεις Συμπληρώσεις επί της επανεκτύπωσης 2003 της 2 ης έκδοσης του βιβλίου «Διαδικαστικός Προγραμματισμός C»

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

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

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

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

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

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

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

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

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

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

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

Η βασική συνάρτηση προγράμματος main()

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

Ηβασικήσυνάρτηση προγράμματος main()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 6 Ο. Συναρτήσεις Τοπικές, καθολικές, στατικές μεταβλητές Μεταβλητές τύπου extern και register Αναδρομή

Περιεχόμενα. Πρόλογος... 17

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

Προγραμματισμός Υπολογιστών με C++

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

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

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

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

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

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

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

Δεδομένα, τελεστές, είσοδος/έξοδος

ΕΙΣΑΓΩΓΗ ΣΤΟN ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι είναι ; Συναρτήσεις. Παράδειγμα #1. double convert ( double cm ) { double inch;

Να εκτυπωθούν οι πρώτες Ν σειρές του τριγώνου, χρησιµοποιώντας ένα πίνακα µεγέθους Ν στοιχείων (η Ν-οστή σειρά περιέχει Ν στοιχεία).

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

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ

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

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

Κλάσεις και αντικείμενα #include <iostream.h<

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

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

Στοιχειώδης προγραμματισμός σε C++

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

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

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

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

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

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

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

Α Β Γ static; printf("%c\n", putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf("*");

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

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

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

Transcript:

Γλώσσες Προγραμματισμού Πολυδιάστατοι πίνακες Στατικές μεταβλητές Στατική ανάθεση τιμών σε πίνακες 19/4/2007

Πολυδιάστατοι πίνακες Παράδειγμα: Sudoku Πώς αναπαριστάται η διπλανή εικόνα από έναν πίνακα; Η λύση είναι η χρήση ενός δισδιάστατου πίνακα

Πολυδιάστατοι πίνακες Είναι πίνακες πινάκων. Συνηθέστερη περίπτωση αποτελούν οι δισδιάστατοι πίνακες Ονομάζονται μήτρες (matrices, εν. matrix). Στη C επιτρέπονται πίνακες με 3 ή περισσότερες διαστάσεις.

Τρίλιζα (συνέχ). Ο πίνακας της τρίλιζας μπορεί να αναπαρασταθεί από έναν δισδιάστατο πίνακα Δήλωση του δισδιάστατου πίνακα char board[3][3]; int matrix[5][10];

Παράδειγμα Τα στοιχεία του πίνακα board είναι χαρακτήρες Η κατανομή στοιχείων στις θέσεις του πίνακα είναι η ακόλουθη board[0][0] board[0][1] board[0][2] board[1][0] board[1][1] board[1][2] board[2][0] board[2][1] board[2][2]

Αρχικοποίηση πίνακα κατά τη δήλωσή του char board[][3] = { {'x','o','o'}, {' ','o',' '}, {' ',' ','x'} };

board[0] board[1] board[2] Εσωτερική αναπαράσταση πολυδιάστατων πινάκων 'x' 'o' 'o' 'x' 'x' board[0][0] board[0][1] board[0][2] board[1][0] board[1][1] board[1][2] board[2][0] board[2][1] board[2][2] Οι πολυδιάστατοι πίνακες αναπαριστώνται εσωτερικά ως μονοδιάστατοι πίνακες Στο παραπάνω παράδειγμα: Ο αριστερός αριθμοδείκτης παριστάνει αριθμό γραμμής ενώ ο δεξιός παριστάνει αριθμό στήλης. Αυτό αποτελεί σύμβαση. Η τιμή του πρώτου αριθμοδείκτη μεταβάλλεται ποιο γρήγορα από αυτή του δεύτερου.

Μεταβίβαση πολυδιάστατων πινάκων ως παραμέτρων σε συναρτήσεις Παράδειγμα συνάρτησης με όρισμα πολυδιάστατο πίνακα static void DisplayBoard(char board[3][3]) { int row, column; for (row = 0; row < 3; row++) { } if (row!= 0) printf( ---+---+---\n ); for (column = 0; column < 3; column++) { } if (column!= 0 ) printf( ); printf( %c, board[row][column]); printf( \n ); }

Η εκτέλεση της συνάρτησης εκτυπώνει τον πίνακα στην παρακάτω μορφή: x o x ---+---+--- x o ---+---+--- x o H επικεφαλίδα της συνάρτησης DisplayBoard μπορεί να γραφεί ως εξής: static void DisplayBoard(char board[][3]);

Ανάθεση αρχικών τιμών σε πολυδιάστατους πίνακες Η δήλωση static double identitymatrix[3][3] = { }; {1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}, {0.0, 0.0, 1.0}, δηλώνει έναν πίνακα (μήτρα) αριθμών κινητής υποδιαστολής 3x3 (μοναδιαίος πίνακας).

Παράδειγμα Να κατασκευαστεί ένα πρόγραμμα το οποίο να γεμίζει με ακέραιες τιμές μεταξύ 0 και Μ έναν τετραγωνικό (δισδιάστατο) πίνακα ΝxN. Θεωρείστε ότι τα Μ και Ν είναι σταθερές του προγράμματος. Στη συνέχεια το πρόγραμμα να υπολογίζει και να εκτυπώνει τη συχνότητα εμφάνισης κάθε τιμής στον πίνακα r. Θα χρειαστεί ένας δεύτερος μονοδιάστατος πίνακας freq με M +1 στοιχεία. Λύση

Παράδειγμα 2 Να γραφεί μια κατηγορηματική συνάρτηση η οποία δέχεται ως παράμετρο έναν δισδιάστατο πίνακα a ακέραιων αριθμών μεγέθους NxN και αποφασίζει αν ο πίνακας είναι συμμετρικός, δηλ. αν ισχύει a[i][j]==a[j][i] για κάθε τιμή των i και j. #define N 3 bool issymmetric(array[][n]); Λύση

Στατικές μεταβλητές (Επαν.) Στατικές και δυναμικές μεταβλητές Δυναμικές μεταβλητές: Η ανάθεση τιμής γίνεται κατά την εκτέλεση του προγράμματος int x = 1; Στατικές μεταβλητές: Η ανάθεση τιμής γίνεται πριν την εκτέλεση του προγράμματος static int x = 1;

Καθολικές μεταβλητές (Εν. 10.2) Οι μεταβλητές που δηλώνονται στο σώμα μιας συνάρτησης ονομάζονται τοπικές μεταβλητές. Μεταβλητές που δηλώνονται έξω από τον ορισμό οποιασδήποτε συνάρτησης ονομάζονται καθολικές μεταβλητές. Οι καθολικές μεταβλητές είναι προσπελάσιμες από όλα τα σημεία ενός προγράμματος. Το τμήμα προγράμματος στο οποίο μπορεί να χρησιμοποιηθεί μια μεταβλητή ονομάζεται εμβέλεια της μεταβλητής.

Στατική ανάθεση αρχικών τιμών σε πίνακες Αν ένας πίνακας δηλωθεί ως στατική καθολική μεταβλητή είναι δυνατή η ανάθεση αρχικών τιμών στα στοιχεία του πριν ξεκινήσει η εκτέλεση του προγράμματος. static int digits[10] = {1,2,3,4,5,6,7,8,9}; Η παραπάνω δήλωση μπορεί να γραφεί static int digits[] = {1,2,3,4,5,6,7,8,9};

Προσδιορισμός μεγέθους πίνακα στον οποίον έχουν έχουν ανατεθεί αρχικές τιμές. static string cities[] = { Athens, Salonica, Patras, Volos }; Το μέγεθος (αριθμός στοιχείων) του παραπάνω πίνακα δίνεται από την παράσταση sizeof cities / sizeof cities[0];

/*... εντολές include */ Παράδειγμα static string cities[ ] = { Athens, Salonica, Patras, Volos }; void printcities(); main() { } printcities(); void printcities() { } int i; for (i=0;i<4;i++) printf( %s,cities[i]);