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

Σχετικά έγγραφα
Πίνακες (Arrays) Εισαγωγή στη C++

Δομές Επανάληψης. Εισαγωγή στη C++

Γ7.1 Επανάληψη ύλης Β Λυκείου. Γ Λυκείου Κατεύθυνσης

Γ7.2 Συμβολοσειρές (Strings) Γ Λυκείου Κατεύθυνσης

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

Εντολές εισόδου - εξόδου. Εισαγωγή στη C++

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

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

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

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

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

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

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

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

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

Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;..

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι είναι οι πίνακες; Μονοδιάστατοι πίνακες. Απλές μεταβλητές: Κεντρική μνήμη

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

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

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

Συναρτήσεις (Functions) Εισαγωγή στη C++

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου

3 η Διάλεξη C++ - Βασικοί τύποι δεδομένων. Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ

Αντικειμενοστραφείς Γλώσσες Προγραμματισμού C++ / ROOT

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

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

Δομές δεδομένων (Structures) Εισαγωγή στη C++

Δομές Δεδομένων & Αλγόριθμοι

Παίρνοντας Αποφάσεις 1

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

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι περιλαμβάνει μια μεταβλητή; ΔΕΙΚΤΕΣ. Διεύθυνση μεταβλητής. Δείκτης

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

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

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι είναι οι πίνακες; Μονοδιάστατοι πίνακες. Απλές μεταβλητές: Κεντρική μνήμη

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

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

Β7.1.4 Δομές Επανάληψης. Β Λυκείου Κατεύθυνσης

Το πρόγραμμα θα τυπώνει και τους τρεις πίνακες.

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ. Ακέραιοι αριθμοί (int) Πράξεις μεταξύ ακεραίων αριθμών

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

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

Χωρική Βάση δεδοµένων Autocad

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 8/4/2008. Πίνακες (Arrays)

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

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C)

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 7: Πίνακες (Arrays)

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

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

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

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

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2018 ΤΟ ΕΞΕΤΑΣΤΙΚΟ ΔΟΚΙΜΙΟ ΑΠΟΤΕΛΕΙΤΑΙ ΑΠΟ ΔΕΚΑΤΡΕΙΣ (13) ΣΕΛΙΔΕΣ.

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

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

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

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

Προγραµµατιστικές Τεχνικές

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

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

Υπερφόρτωση τελεστών (operator(

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

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

Πληροφορική 2. Αλγόριθμοι

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

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

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

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

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

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

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

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

ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΣΑΒΒΑΤΟ 4 ΙΟΥΝΙΟΥ 2005

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

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

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

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

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

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

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

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2010

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

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

242 -ΕισαγωγήστουςΗ/Υ

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

Β. Να γράψετε στο τετράδιό σας τους αριθμούς της Στήλης Α, που αντιστοιχούν σωστά με το γράμμα της Στήλης Β. ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗ

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

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

ΘΕΜΑ Α. Α2. Να αναφέρετε από τι εξαρτάται η επιλογή του καλύτερου αλγορίθμου ταξινόμησης. Μονάδες 4. Σελίδα 1 από 8

Πληροφορική 2. Γλώσσες Προγραμματισμού

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις:

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

Transcript:

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

Γενικά Η εντολή: int arr[5][2]; Δηλώνει την μεταβλητή arr σαν πίνακα με πέντε γραμμές (rows) και με δύο στήλες (columns). Η αρίθμηση και των δύο δεικτών ξεκινά από το μηδέν. arr[0][0] arr[1][0] arr[2][0] arr[3][0] arr[4][0] arr[0][1] arr[1][1] arr[2][1] arr[3][1] arr[4][1] 2

Αρχικοποίηση δισδιάστατου πίνακα Για να αρχικοποιηθεί ένας δισδιάστατος πίνακας, θα πρέπει κάθε γραμμή να περικλείεται από άγκιστρα. Αν δεν υπάρχουν σε κάποια στοιχεία τιμές τότε τα στοιχεία αυτά παίρνουν την τιμή 0. Η πιο κάτω εντολή δημιουργεί τον παρακάτω πίνακα: int arr[3][3] = { {1,2,3,{4,5,6,{7,8,9 ; 1 2 3 4 5 6 7 8 9 3

Στοιχεία δισδιάστατου πίνακα Μέσα στο πρόγραμμα μπορούμε να χρησιμοποιήσουμε τα στοιχεία του πίνακα σαν κανονικές μεταβλητές: char triliza[3][3]; triliza [0][1] = 'X'; triliza [0][2] = 'O'; triliza [1][1] = 'X'; triliza [2][0] = 'O'; triliza [2][1] = 'X'; O X X X O 4

Εισαγωγή στοιχείων Για την εισαγωγή στοιχείων σε πίνακα μπορούμε να χρησιμοποιήσουμε δύο εμφωλευμένες δομές επανάληψης for μαζί με δύο μεταβλητές-δείκτες. Η διαδικασία έχει ως ακολούθως: int arr[10][5]; for (int i=0; i<10; i++) for (int j=0; j<5; j++) cin >> arr[i][j]; 5

Εμφάνιση στοιχείων Για την εμφάνιση των στοιχείων δισδιάστατου πίνακα στην οθόνη χρησιμοποιούμε παρόμοια δομή επανάληψης με την εισαγωγή στοιχείων, αυτή τη φορά με εντολή εξόδου: int arr[10][5]; for (int i=0; i<10; i++) for (int j=0; j<5; j++) cin >> arr[i][j]; for (int i=0; i<10; i++){ for (int j=0; j<5; j++){ cout << arr[i][j] << " "; cout << endl; // αλλαγή γραμμής 6

Παράδειγμα 1 Να γράψετε ένα πρόγραμμα που να αποθηκεύει τον πίνακα προπαίδειας, από το 1 ως το 10, σε δισδιάστατο πίνακα και να τον εμφανίζει στην οθόνη. 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 20 25 30 35 40 45 50 6 12 18 24 30 36 42 48 54 60 7 14 21 28 35 42 49 56 63 70 8 16 24 32 40 48 56 64 72 80 9 18 27 36 45 54 63 72 81 90 10 20 30 40 50 60 70 80 90 100 7

#include <iostream> #include <iomanip> using namespace std; int main(){ int arr[10][10]; Παράδειγμα 1 for (int i=0; i<10; i++){ for (int j=0; j<10; j++){ arr[i][j]=(i+1)*(j+1); cout <<setw(4)<< arr[i][j]; cout << endl; return 0; 8

Παράδειγμα 2 Να γράψετε πρόγραμμα που θα κάνει τα πιο κάτω: α) Να διαβάζει τα στοιχεία ενός δισδιάστατου πίνακα ακέραιων αριθμών με το όνομα numbers, που αποτελείται από 5 γραμμές και 5 στήλες. β) Να υπολογίζει και να εμφανίζει το άθροισμα κάθε γραμμής. γ) Να υπολογίζει και να εμφανίζει το άθροισμα κάθε στήλης. 9

#include <iostream> using namespace std; Παράδειγμα 2 int main(){ int numbers[5][5]; int sum_of_rows[5] = {0,0,0,0,0; int sum_of_cols[5] = {0,0,0,0,0; for (int i=0; i<5; i++){ for (int j=0; j<5; j++){ cin >> numbers[i][j]; sum_of_rows[i] +=numbers[i][j]; sum_of_cols[j] +=numbers[i][j]; for (int i=0; i<5; i++) cout << sum_of_rows[i] << " "; cout << endl; for (int i=0; i<5; i++) cout << sum_of_cols[i] << " "; return 0; 10

Παράδειγμα 3 Ανάστροφος (ΑΤ) ενός πίνακα Α, καλείται ο πίνακας που προκύπτει από τον Α αν οι γραμμές γίνουν στήλες και οι στήλες γραμμές, με την ίδια ακολουθία (δηλαδή, η πρώτη γραμμή να γίνει πρώτη στήλη, η δεύτερη γραμμή δεύτερη στήλη, κοκ). Να δημιουργήσετε πρόγραμμα που διαβάζει τις διαστάσεις ενός πίνακα Α x B καθώς και τον πίνακα που ακολουθεί. Στη συνεχεία τυπώνει τον ανάστροφο του πίνακα στην οθόνη. Παράδειγμα εισόδου 3 4 1 2 3 4 5 6 7 8 9 10 11 12 Παράδειγμα εξόδου 1 5 9 2 6 10 3 7 11 4 8 12 11

Παράδειγμα 3 #include <iostream> using namespace std; int main(){ int n, m; cin >> n >> m; int A[n][m]; int AT[m][n]; for (int i=0; i<n; i++) for (int j=0; j<m; j++){ cin >> A[i][j]; AT[j][i]=A[i][j]; for (int i=0; i<m; i++){ for (int j=0; j<n; j++) cout << AT[i][j] << " "; cout << endl; return 0; 12

Παράδειγμα 4 - (ΠΕ 2010 Άσκηση Β2) Οι 150 μαθητές της A τάξης ενός γυμνασίου της Κύπρου εξετάστηκαν σε ένα διαγώνισμα γενικών γνώσεων. Το διαγώνισμα περιλάμβανε 20 ερωτήσεις πολλαπλής επιλογής και για κάθε ερώτηση δίνονταν 5 επιλογές (A, B, C, D και E). Να γράψετε πρόγραμμα, το οποίο: α) να ζητά από το χρήστη τις σωστές απαντήσεις για τις 20 ερωτήσεις που δόθηκαν στο διαγώνισμα και να τις καταχωρεί στο μονοδιάστατο πίνακα Lyseis. β) να ζητά από το χρήστη τις απαντήσεις που έδωσαν οι μαθητές στο διαγώνισμα και να τις καταχωρεί σε ένα δισδιάστατο πίνακα 150 γραμμών και 20 στηλών με το όνομα Apantiseis, ο οποίος είναι παράλληλος με τον πίνακα Lyseis. Κάθε γραμμή του πίνακα Apantiseis θα αντιστοιχεί με τις 20 απαντήσεις ενός μαθητή στο διαγώνισμα. γ) να υπολογίζει και να εμφανίζει το βαθμό του κάθε μαθητή, αν η κάθε σωστή απάντηση βαθμολογείται με 5 μονάδες. Οι βαθμοί όλων των μαθητών να καταχωρούνται σε μονοδιάστατο πίνακα με το όνομα Vathmoi, ο οποίος είναι παράλληλος με τον πίνακα Apantiseis. 13

14

#include <iostream> using namespace std; #define Q 20 #define N 150 int main(){ char Lyseis[Q]; char Apantiseis[N][Q]; int Vathmoi[N]; for (int i=0; i<n; i++) Vathmoi[i]=0; cout << "Input correct answers: " << endl; for (int i=0; i<q; i++) cin >> Lyseis[i]; cout << "Input student answers: " << endl; for (int i=0; i<n; i++) for (int j=0; j<q; j++){ cin >> Apantiseis[i][j]; if (Apantiseis[i][j] == Lyseis[j]) Vathmoi[i] += 5; cout << "Student Grades"<< endl; for (int i=0; i<n; i++) cout << Vathmoi[i] << " "; return 0; 15