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

Σχετικά έγγραφα
Μεθόδων Επίλυσης Προβλημάτων

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

17. Πολυδιάςτατοι πίνακεσ

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

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

ΕΠΛ 034: Εισαγωγή στον Προγραμματισμό για ΗΜΥ

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

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

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

Κεφάλαιο Αλφαριθµητικές Σειρές Χαρακτήρων (Strings)

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

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

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

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

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

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

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

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

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

H ΓΛΩΣΣΑ C. Μάθηµα 7: Πίνακες. ηµήτρης Ψούνης

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο ΙV: Δείκτες και πίνακες. 4.1 Δείκτες.

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 8: Πολυδιάστατοι Πίνακες και Δυναμική Δέσμευση Μνήμης

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

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

C Programming EPL032 Maria Stavrinou Ioannou Εισαγωγή στη Γλώσσα C

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

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

H ΓΛΩΣΣΑ C. Μάθηµα 12: υναµική έσµευση Μνήµης. ηµήτρης Ψούνης

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

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

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

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

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

οµές (structures) και Eνώσεις (unions)

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

Διάλεξη 11η: Δείκτες, μέρος 1

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

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

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

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

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

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

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 11 - Απαντήσεις

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΕΞΕΤΑΣΗ IOYNIOY 2018 ΘΕΜΑΤΑ Α ΟΝΟΜΑΤΕΠΩΝΥΜΟ:... ΑΕΜ: ΕΞΑΜΗΝΟ:

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

Transcript:

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

Πολυδιάστατοι πίνακες Μέχρι τώρα µιλούσαµε για Μονοδιάστατους Πίνακες. ή π.χ. int age[5]= {31,28,31,30,31; για Παράλληλους πίνακες, π.χ. int id[5] = {1029,1132,1031,9991,1513; int age[5] = {31,28,31,30,31; Σήµερα θα µιλήσουµε για Πολυδιάστατους Πίνακες (κυρίως ισδιάστατους). 18-2

Πολυδιάστατοι πίνακες Η C διαθέτει ορθογωνικούς πολυδιάστατους πίνακες. δηλ. char array[3][7] /*[γραµµή][στήλη]*/ Αυτό συνεπάγεται ότι δεσµεύουµε ακριβός 3*7 = 21 χαρακτήρες στην µνήµη. Κάθε χαρακτήρας είναι 1 byte. Εποµένως η πιο πάνω δήλωση δεσµεύει 21 bytes. Για να αναφερθούµε σε κάποιο στοιχείο του πίνακα χρησιµοποιούµε δείκτες θέσης. π.χ. array[0][0]= Α, array[2][3]= Β array[3][2]= Α /*[γραµµή][στήλη]*/ έν υπάρχει το [3][2] 18-3

Κοινά Λάθη σε Πολυδιάστατους Πίνακες Ερώτηση Α Μπορούµε να δηλώσουµε µη-ορθογωνικούς πολυδιάστατους πίνακες? ΌΧΙ Θα µπορούσε να γίνει κάτι αντίστοιχο, µε χρήση δυναµικής δέσµευσης µνήµης, αλλά όχι σε αυτό το µάθηµα. Ερώτηση Β Μπορούν τα στοιχεία του πίνακα να είναι µε να είναι ανοµοιογενή (δηλαδή κάποιες γραµµές η στήλες να φέρουν διαφορετικό τύπο (int, char, float)? ΌΧΙ Θα µπορούσε να γίνει κάτι αντίστοιχο, µε την χρήση κάποιων ειδικών δοµών που λέγονται structs, αλλά όχι σε αυτό το µάθηµα. 18-4

>2-διάστατοι Πίνακες Ένας πολυδιάστατος πίνακας είναι ένας µονοδιάστατος πίνακας κάθε στοιχείο του οποίου είναι ένας πίνακας. Μπορούν να υπάρχουν πίνακες σε πολλές διαστάσεις (η ΑΝSI-C που χρησιµοποιούµε υποδεικνύει στους κατασκευαστές µεταγλωττιστών να προσφέρουν µέχρι 6 διαστάσεις) Σε αυτό το µάθηµα θα µελετήσουµε δισδιάστατους πίνακες (η άλλη χρήσιµη κατηγόρια πινάκων είναι οι τρισδιάστατοι). Παράδειγµα 3-διάστατου πίνακα int enrolled[course][campus][year]; Π.χ. εγγραφές της µορφής {32,1,2004, {132,1,2005,{131,1,2005 18-5

Πολυδιάστατοι πίνακες (συν.) Αρχικοποίηση 2-διάστατου πίνακα Στατικά Μια λίστα αρχικών τιµών κλεισµένη σε άγκιστρα, όπου κάθε τιµή παίρνει αρχική τιµή από µια αντίστοιχη υπολίστα, π.χ. int studentgrades[100][6] = { {99, 76, 88, 74, 65, 53, {67, 71, 77, 71, 80, 47, ; Ηπρώτες δυο γραµµές (από τις 100) περιέχουν τις 6 βαθµολογίες δυο φοιτητών) Αρχικοποίηση 2-διάστατου πίνακα µε FOR loop for(i=0;i<100;i++) // γραµµές for(j=0;j<6; j++) // στήλες studentgrades[i][j]=0; Tο nesting-level είναι ίδιο µε τον αριθµό των διαστάσεων του πίνακα 18-6

Παράδειγµα Γράψετε ένα πρόγραµµα το οποίο α) δηµιουργεί ένα πίνακα 10x10 β) Αρχικοποιεί κάθε θέση του πίνακα σε 0 γ) Εκτυπώνει τον πίνακα 18-7

Παράδειγµα 1 Λύση Α #include <stdio.h> #define SIZE 10 main () { // ήλωση Πίνακα int matrix[size][size], i, j; // Αρχικοποίηση πίνακα for (i=0; i<size; i++) for (j=0; j<size; j++) matrix[i][j] = 0; // Εκτύπωση πίνακα for (i=0; i<size; i++) { for (j=0; j<size; j++) { printf("%d", matrix[i][j]); printf("\n"); Εκτυπώνει 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 Μετά την εκτύπωση κάθε γραµµής εκτυπώνουµε newline 18-8

Παράδειγµα 1 Λύση Β #include <stdio.h> #define SIZE 10 main () { int matrix[size][size] = {{ ; int i,j; // Εκτύπωση πίνακα for (i=0; i<size; i++) { for (j=0; j<size; j++) { printf("%d", matrix[i][j]); printf("\n"); Η Αρχικοποίηση γίνεται εδώ µε δυο παρενθέσεις αντί for loop. To µειονέκτηµα είναι ότι δουλεύει µόνο για αρχικοποίηση σε 0 18-9

Παράδειγµα 2 Αρχικοποίηση Πίνακα Γράψετε ένα πρόγραµµα το οποίο δηµιουργεί τον πιο κάτω 2-διάστατο πίνακα στην µνήµη και στην συνέχεια τον εκτυπώνει 18-10

Παράδειγµα 2 Αρχικοποίηση Πίνακα Βλέπουµε ότι ο πίνακας Α µπορεί να παραχθεί από τον Β εάν προσθέσουµε σε κάθε θέση του Β το αριθµό 3 Α Β 01234 01234 01234 01234 01234 18-11

Παράδειγµα 2 Αρχικοποίηση Πίνακα #include <stdio.h> #define SIZE 5 main () { int matrix[size][size]; int i,j; // Αρχικοποιηση for (i=0; i<size; i++) for (j=0; j<size; j++) matrix[i][j] = j+3; for (i=0; i<size; i++) { for (j=0; j<size; j++) { printf("%d", matrix[i][j]); printf("\n"); Για κάθε i (γραµµή) εκτελείτε το πιο κάτω: j 0+3=3 1+3=4 2+3=5 3+3=6 4+3=7 Στο τέλος εκτυπώνετε 18-12

Παράδειγµα 3 Άθροισµα ιαγωνίου Γράψετε ένα πρόγραµµα το οποίο δηµιουργεί τον πιο κάτω 2-διάστατο πίνακα στην µνήµη και στην συνέχεια εκτυπώνει το άθροισµα της διαγωνίου = 25 Παρατηρούµε ότι οι τιµές που θέλουµε είναι για i=j 18-13

Παράδειγµα 3 Άθροισµα ιαγωνίου #include <stdio.h> #define SIZE 5 main () { int matrix[size][size]; int i,j; int sum = 0; // Αρχικοποίηση for (i=0; i<size; i++) for (j=0; j<size; j++) matrix[i][j] = j+3; Μεταβλητή που θα κρατά το άθροισµα // Εύρεση Αθροίσµατος for (i=0; i<size; i++) { for (j=0; j<size; j++) { if (i==j) { sum += matrix[i][j]; printf( Sum: %d, sum); for (i=0; i<size; i++) { sum += matrix[i][i]; 18-14

Παράδειγµα 4 Άθροισµα Στήλης Γράψετε ένα πρόγραµµα το οποίο δηµιουργεί τον πιο κάτω 2-διάστατο πίνακα στην µνήµη και στην συνέχεια εκτυπώνει το άθροισµα της τρίτης στήλης (index 2) = 25 Παρατηρούµε ότι θέλουµε τις τιµές όπου το j=2 18-15

#include <stdio.h> #define SIZE 5 main () { int matrix[size][size]; int i,j; int sum = 0; // Αρχικοποίηση for (i=0; i<size; i++) for (j=0; j<size; j++) matrix[i][j] = j+3; Παράδειγµα 3 Άθροισµα Στήλης // Εύρεση Αθροίσµατος for (i=0; i<size; i++) { sum += matrix[i][2]; printf( Sum: %d, sum); Εδώ το δεύτερο for loop θα ήταν αχρείαστο. 18-16

Πολυδιάστατοι Πίνακες & Συναρτήσεις Όταν περνάµε πολυδιάστατους πίνακες σε συναρτήσεις, τότε ακολουθείτε η ίδια λογική µε την περίπτωση των µονοδιάστατων πινάκων ηλαδή οι πίνακες περνάνε δια αναφοράς (και όχι δια τιµής). Εποµένως δεν παράγεται ένα νέο αντίγραφο του πίνακα αλλά αντίθετα, η συνάρτηση µπορεί να κάνει κατευθείαν αλλαγές πάνω στον αρχικό πίνακα. 18-17

Πίνακες και Συναρτήσεις (Πρότυπο Ορισµός - Κλήση) #include <stdio.h> #define SIZE 4 // Πρότυπο void FillArray (int[ ][ ]) ; main ( ) { int array [SIZE][SIZE]; // Κλήση Συνάρτησης FillArray (array); // Ορισµός Συνάρτησης void FillArray( int table[ ][SIZE] ) { int i,j; for ( i = 0; i < SIZE; i++) { for ( j = 0; j < SIZE; j++) { table[i][j] = 0; Μόνο η πρώτη διάσταση µπορεί να παραληφθεί array[0][1] = 0 array[0] [1] = 0 array[0] [2] = 0 array[0] [3] = 0 Έξοδος: array[1][1] = 0 array[1] [1] = 0 array[1] [2] = 0 array[1] [3] = 0 array[2][1] = 0 array[2] [1] = 0 array[2] [2] = 0 array[2] [3] = 0 array[3][1] = 0 array[3] [1] = 0 array[3] [2] = 0 array[3] [3] = 0 18-18

Παράδειγµα Επεξεργασίας Βαθµών Γράψετε ένα πρόγραµµα: που διαβάζει από τo πληκτρολόγιο βαθµούς 80 φοιτητών. Για κάθε φοιτητή διαβάζονται 5 βαθµοί δηλαδή: 90 60 70 89 45 (βαθµοί 1ου φοιτητή) 40 56 78 99 100 (βαθµοί 2ου φοιτητή) κτλ υπολογίζει και τυπώνει (α) βαθµούς κάθε φοιτητή (β) τον µέσο όρο για κάθε φοιτητή Μέσος Όρος 90.00 60.00 70.00 89.00 45.00 70.80 40.00 56.00 78.00 99.00 100.00 74.60 18-19

Παράδειγµα Επεξεργασίας Βαθµών Τι πρέπει να γίνει; Α) ιαβαστούν δεδοµένα από το πληκτρολόγιο και να αποθηκευτούν σε ένα 2-διαστάσεων πίνακα Β) Υπολογισµός µέσου όρου ανά φοιτητή C) Εκτύπωση αποτελεσµάτων 18-20

Παράδειγµα Επεξεργασίας Βαθµών // Σταθερές #define NUM_STUDENTS 80 #define NUM_COURSES 5 Πίνακες στο main // Πίνακας ο οποίος κρατά για κάθε φοιτητή την βαθµολογία // για κάθε µάθηµα float grade_table[num_students][num_courses] = {{ ; // Πίνακας ο οποίος κρατά για κάθε φοιτητή τον // µέσο όρο της βαθµολογίας float average_per_student[num_students]={ ; 18-21

main() { Παράδειγµα Επεξεργασίας Βαθµών float grade_table[num_students][num_courses] = {{ ; float average_per_student[num_students]={ ; // ιάβασµα δεδοµένων (αποθηκευτούν) read_data(grade_table); // Υπολογισµός µέσων όρων compute_averages(grade_table, average_per_student); // Εκτύπωση αποτελεσµάτων display_results(grade_table, average_per_student); 18-22

Παράδειγµα Επεξεργασίας Βαθµών void read_data(float grade_table[][num_courses]) { int i,j; for(i=0;i<num_students;i++) { printf("student %d\n", i); for(j=0;j<num_courses;j++) { scanf("%f", &grade_table[i][j]); 18-23

Παράδειγµα Επεξεργασίας Βαθµών ηλώνουµε ότι απαγορεύετε να αλλάξει ο πίνακας σε αυτή την συνάρτηση (π.χ. από κάποιο προγραµµατιστικό λάθος) void compute_averages( const float grade_table[][num_courses], float average_per_student[]) { int i,j; for(i=0;i<num_students; i++) { for(j=0;j<num_courses; j++){ average_per_student[i]+=grade_table[i][j]; Κρατά το Sum κάθε φοιτητή for(i=0;i<num_students;++i) average_per_student[i]/=num_courses; 18-24

Παράδειγµα Επεξεργασίας Βαθµών void display_results(float grade_table[][num_courses], float average_per_student[]) { int i,j; for(i=0;i<num_students; i++){ for(j=0;j<num_courses;j++) { printf("%5.2f ",grade_table[i][j]); printf("%5.2f\n",average_per_student[i]); Εκτυπώνει: 90.00 60.00 70.00 89.00 45.00 70.80 40.00 56.00 78.00 99.00 100.00 74.60 Μέσος Όρος 18-25