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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ενότητα 4: «Εισαγωγή στον Προγραμματισμό. Τα πρώτα προγράμματα σε γλώσσα C»

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

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

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

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

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

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

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

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

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

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

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

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

Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου

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

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

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

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

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

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

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

Απλά Προγράμματα. Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων

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

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

Βήματα: μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων. Δομές Δεδομένων + Αλγόριθμοι = Προγράμματα

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

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

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

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

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

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

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

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

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

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

Transcript:

Κεφάλαιο 8.7 Πολυδιάστατοι Πίνακες (Διάλεξη 19) Πολυδιάστατοι πίνακες Μέχρι τώρα μιλούσαμε για Μονοδιάστατους Πίνακες. ή π.χ. 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 1

Πολυδιάστατοι πίνακες Η 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

>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 3

Παράδειγμα Γράψετε ένα πρόγραμμα το οποίο α) δημιουργεί ένα πίνακα 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"); Εκτυπώνει Μετά την εκτύπωση κάθε γραμμής εκτυπώνουμε newline 18-8 4

Παράδειγμα 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 5

Παράδειγμα 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 6

Παράδειγμα 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 7

Παράδειγμα 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 8

Πολυδιάστατοι Πίνακες & Συναρτήσεις Όταν περνάμε πολυδιάστατους πίνακες σε συναρτήσεις, τότε ακολουθείτε η ίδια λογική με την περίπτωση των μονοδιάστατων πινάκων Δηλαδή οι πίνακες περνάνε δια αναφοράς (και όχι δια τιμής). Επομένως δεν παράγεται ένα νέο αντίγραφο του πίνακα αλλά αντίθετα, ησυνάρτησημπορεί να κάνει κατευθείαν αλλαγές πάνω στον αρχικό πίνακα. 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 9

Παράδειγμα Επεξεργασίας Βαθμών Γράψετε ένα πρόγραμμα: που διαβάζει από τ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 10

Παράδειγμα Επεξεργασίας Βαθμών // Σταθερές #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 11

Παράδειγμα Επεξεργασίας Βαθμών 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 12

Παράδειγμα Επεξεργασίας Βαθμών 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 18-25 40.00 56.00 78.00 99.00 100.00 74.60 13