ιορθώσεις επί της 2 ης έκδοσης εκτύπωσης 2002 Καταγράφονται παρακάτω λάθη που αναφέρονται στην δεύτερη έκδοση του βιβλίου εκτύπωσης 2002. Τα λάθη εντοπίστηκαν πριν από την 03/01/2003. Γενική διόρθωση Αφορά αρκετά σηµεία του βιβλίου (π.χ. σελ.59, 157, 203, 238, 257, 271, 308 ) κυρίως εισαγωγές κεφαλαίων όπου γίνεται παραποµπή στις ασκήσεις του κεφαλαίου 11 τις οποίες ο αναγνώστης πρέπει να εκτελέσει παράλληλα µε την µελέτη της αντίστοιχης θεωρίας. Το «...του τρίτου µέρους του βιβλίου» «...του κεφαλαίου 11» Σελίδα 68 έκατη γραµµή από πάνω. «Στη συνέχεια, θα πρέπει να περιγράψετε µε δοµηµένα Ελληνικά τα βήµατα που πρέπει...» Να αντικατασταθεί από την «Στη συνέχεια, θα πρέπει να δώσετε µια λεκτική περιγραφή της διεργασίας που πρέπει να εκτελεστεί για να πάρουµε τα ζητούµενα αποτελέσµατα. Θα πρέπει δηλαδή να περιγράψετε µε «δοµηµένα Ελληνικά» (ο όρος αποτελεί απόδοση στα Ελληνικά του structured English) τα βήµατα που πρέπει...» Σελίδα 73 Στην γραµµή enum boolean {FALSE, TRUE} να προστεθεί το Ελληνικό ερωτηµατικό (;) δηλαδή enum boolean {FALSE, TRUE}; H γραµµή enum Boolean result_valid; enum boolean result_valid; Σελίδα 75 Η έκτη γραµµή από πάνω «Ως συνηθισµένα µεγέθη αναφέρονται... για αύξηση της ακρίβειας της βάσης.» να αντικατασταθεί από «Ως συνηθισµένα µεγέθη αναφέρονται (σύµφωνα µε το πρότυπο IEEE 754/1984): α) για τους float τα 32 bits από τα οποία τα 8 χρησιµοποιούνται για εκθέτη, 1 για πρόσηµο και τα υπόλοιπα 23 για βάση και β) για τους double τα 64, bits µε τα επιπλέον 32 bits να χρησιµοποιούνται για αύξηση της ακρίβειας της βάσης.» Σελίδα 82 Στον πηγαίο κώδικα στο τέλος της σελίδας Να διαγραφεί ο προσδιοριστής static από την δήλωση του πίνακα magic Συγγραφέας: Κλεάνθης Θραµπουλίδης 1 3/1/2003
Σελίδα 83 Στην δήλωση int ar[2][3] = { { 0, 1, 2} να προστεθεί στο τέλος ένα κόµµα (,)δηλαδή int ar[2][3] = { { 0, 1, 2}, Σελίδα 84 Στον πηγαίο κώδικα στην κορυφή της σελίδας Να διαγραφεί ο προσδιοριστής static από την δήλωση του πίνακα array Το ίδιο και στην δήλωση που ακολουθεί µετά το µέσο της σελίδας Σελίδα 85 Στους πηγαίους κώδικες της σελίδας Να διαγραφεί ο προσδιοριστής static από τις δηλώσεις του πίνακα ar Σελίδα 90 ενότητα 3.9.5 Η τελευταία γραµµή της πρώτης παραγράφου «µοζεται πάνω σε µια µεταβλητή...» να αντικατασταθεί από την «µοζεται πάνω σε µια µεταβλητή δείκτη δίνει το περιεχόµενο της θέσης µνήµης που ο δείκτης δείχνει.» Σελίδα 142 εύτερη γραµµή από πάνω Να αντικατασταθεί η λέξη «µέρος» από την λέξη «τόµο» Σελίδα 146 Στην αρχή του πηγαίου κώδικα που δίνεται σαν λύση στο παράδειγµα 5-4 πάνω από την δήλωση int max(int a, int b, int c); να περιληφθεί η πρόταση #include <stdio.h> Σελίδα 152 Η παρακάτω (7 η ) πρόταση του σώµατος της main στον πηγαίο κώδικα της λύσης του παραδείγµατος 5-6 printf( str1 %s str2\n printf( str1 %s str3\n Σελίδα 154 Άσκηση 5.1. «Να γραφεί... στο οποίο θα κάνετε χρήση των συναρτήσεων isalnum(), «Να γραφεί... στο οποίο θα κάνετε χρήση των συναρτήσεων της βασικής βιβλιοθήκης isalnum(), Συγγραφέας: Κλεάνθης Θραµπουλίδης 2 3/1/2003
Άσκηση 5.2. «Να γραφεί... στο οποίο θα κάνετε χρήση των συναρτήσεων getchar(), «Να γραφεί... στο οποίο θα κάνετε χρήση των συναρτήσεων της βασικής βιβλιοθήκης getchar(), Σελίδα 155 Άσκηση 5.7 «Επίσης, εξετάστε, αν υπάρχει συνάρτηση της πρότυπης βιβλιοθήκης...» «Επίσης, εξετάστε, αν υπάρχει συνάρτηση της βασικής βιβλιοθήκης...» Σελίδα 168 if ((ch = = \n) (ch == \t)) if ((ch = = \n ) (ch == \t )) Σελίδα 169 H πρόταση printf( ώσε ένα θετικό αριθµό:); printf( ώσε ένα θετικό αριθµό: ); Σελίδα 170 Πηγαίος κώδικας στην κορυφή της σελίδας return(max) return(max); Σελίδα 187 Στο πλαίσιο του πηγαίου κώδικα η πρόταση if(ch = = )) if(ch = = ) Σελίδα 188 Στο δεύτερο πλαίσιο πηγαίου κώδικα η πρόταση printf( H µέση θερµοκρασία...\n, subtotal/years); printf( H µέση θερµοκρασία...\n, month+1, subtotal/years); Σελίδα 189 H πρόταση (στο σώµα του πρώτου for loop) printf( H µέση θερµοκρασία...\n, year,.); printf( H µέση θερµοκρασία...\n, year+1,.); H πρόταση (τελευταία του σώµατος της main) Συγγραφέας: Κλεάνθης Θραµπουλίδης 3 3/1/2003
printf( H µέση θερµοκρασία...\n, subtotal/years); printf( H µέση θερµοκρασία...\n, month+1, subtotal/years); Σελίδα 196 Άσκηση 6.7 «... και στη συνέχεια θα τους τυπώνει µε αντίστροφη σειρά. Εκτελέστε...» «... και στη συνέχεια θα τους τυπώνει µε αντίστροφη σειρά δηλαδή σύµφωνα µε την λογική Last In First Out (LIFO). Εκτελέστε...» Σελίδα 215 Στο µέσον του σχήµατος 7.6 ο αριθµός 66 δεν έχει καµία σηµασία. Εµφανίστηκε από τυπογραφικό λάθος. Σελίδα 217 Πηγαίος κώδικας στο µέσον της σελίδας int sun(int n) int sum(int n) Σελ 218 στο τέλος της σελίδας «Ένα παράδειγµα εφαρµογής της αναδροµικότητας µπορείτε να βρείτε στην άσκηση 7 του κεφαλαίου 11» Σελίδα 263 Στο τέλος του πηγαίου κώδικα της σελίδας να προστεθεί κάτω από το break και την κατακόρυφη του default µια αγκύλη } που κλίνει το switch. Σελίδα 303 Στο σχήµα στο τέλος της σελίδας δεν φαίνεται καλά η δήλωση struct tnode Σελίδα 349 Tα 3 bullets στο µέσον της σελίδας να αντικατασταθούν από το σύµβολο Σελίδα 364 Στο Βήµα 2 µετά την πρώτη παράγραφο προσθέστε την παρακάτω Τροποποιήστε τον κώδικα της συνάρτησης getop() ώστε να χρησιµοποιεί αντί για την συνάρτηση gecth() την getchar(). Στην περίπτωση αυτή θα πρέπει να αφαιρέσετε και την κλήση της συνάρτησης ungetch(). Μεταγλωττίστε το πρόγραµµα και δώστε του σαν είσοδο την 5 3+= (προσέξτε ώστε να µην παρεµβάλετε κενό µεταξύ του 3 και του τελεστή +). Παρατηρήστε την συµπεριφορά του συστήµατος. Προσπαθήστε να την δικαιολογήσετε. Μια λύση στο πρόβληµα αυτό δίνεται µε την χρήση των συναρτήσεων getch() και ungetc(). Σελίδα 366 Συγγραφέας: Κλεάνθης Θραµπουλίδης 4 3/1/2003
Στον κώδικα της συνάρτησης getch() στο τέλος της σελίδας η έκφραση [ bufp] - - bufp Συγγραφέας: Κλεάνθης Θραµπουλίδης 5 3/1/2003