Τα λάθη πλεονασμοί στο βιβλίου του μαθήματος ΑΕσΠΠ

Ξεκίνησε από Βρακόπουλος Αθανάσιος, 03 Απρ 2003, 12:13:03 ΜΜ

« προηγούμενο - επόμενο »

Βρακόπουλος Αθανάσιος

Στο βιβλίο του μαθήματος «Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον» υπάρχουν τα παρακάτω 6 (έξι) λάθη και παραλείψεις κατά την άποψή μου:
Στα δεδομένα δηλώνεται και ο τύπος των μεταβλητών ή έγινε από παραδρομή;
1. Είναι στο μόνο παράδειγμα που ορίζονται οι τύποι των μεταβλητών.
ΣΕΛΙΔΑ 48
Αλγόριθμος Πολλαπλασιασμός_αλά_ρωσικά

Δεδομένα // Μ1,Μ2 ακέραιοι //

2. Τι υπολογίζεται στον αλγόριθμο της σελίδας 72

Αλγόριθμος Fibonacci2
Δεδομένα // n //
Αν n< 1 τότε
 Fib <- n
Αλλιώς
 Fib <- fib (n-1) + fib (n-2)
Τέλος _Αν
Αποτέλεσμα // fib //
Τέλος Fibonacci2

Τι είναι το fib συνάρτηση; δεν έχει ορισθεί.
Πως τερματίζει ένα πρόγραμμα σε γλώσσα προγραμματισμού «ΓΛΩΣΣΑ»
Με
Α ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ή
Β ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ και όνομα προγράμματος
Διότι ενώ στην θεωρία αναφέρει ως τερματισμό του προγράμματος την πρώτη περίπτωση, στην συνέχει σε πολλά παραδείγματα υιοθετεί την δεύτερη περίπτωση
3. Όπως αυτό που ακολουθεί την παράγραφο 7.10 Δομή Προγράμματος
4.Στην σελίδα 158 «ΠΡΟΓΡΑΜΜΑ Κόστος_Υπολογιστών»,
5.Στην σελίδα 175 «ΠΡΟΓΡΑΜΜΑ Άθροισμα» και
6.Στην σελίδα 188-189 «ΠΡΟΓΡΑΜΜΑ Στατιστική».

Στο Τετράδιο του Μαθητή υπάρχουν τα παρακάτω 12 λάθη και παραλήψεις:

1. Στον αλγόριθμο της σελίδας 33 του τετραδίου του Μαθητή υπάρχει ο παρακάτω αλγόριθμος τι εκφράζουν τα L,M γιατί δεν δηλώνονται στα δεδομένα;
Ο σωστός αλγόριθμος θα ήταν:
Αλγόριθμος Αραιός
Δεδομένα // sparse, n, L, M //
! sparse πίνακας μονοδιάστατος 3*Ν θέσεων
! L:γραμμές του δισδιάστατου αραιού πίνακα
!M:στήλες του δισδιάστατου αραιού πίνακα
για κ από 0 μέχρι Ν με βήμα 3 επανάλαβε
 i <- sparse [k+1]
 j <- sparse [k+2]
 result <- sparse [k+3]
Αν i <=L και j< =M τότε
Result[I, j] <- sparse [k+3]
Τέλος_αν
Τέλος_επανάληψης
Αποτελέσματα // result //
Τέλος Αραιός


2 Αν και εκτός ύλης ο αλγόριθμος της δυαδικής αναζήτησης στην σελίδα 39 δεν τερματίζει ποτέ
Το σωστό:
Αλγόριθμος Δυαδική_αναζήτηση
Δεδομένα // ΟΝΟΜΑ, ΚΑΤ //
low <- 1
high <- 50
found <- 0
όσο low <= high επανάλαβε
 mid <- ( low + high) div 2
 Aν KAT [mid] < ΟΝΟΜΑ τότε
 low <- mid +1
 αλλιώς_αν KAT [mid] > ONOMA τότε
 high <- mid -1
 αλλιώς
 found <- mid
      low <- high +1
 Τέλος_αν
Τέλος_επανάληψης
Αποτελέσματα // found //
Τέλος Δυαδική_αναζήτηση

3 O αλγόριθμοq στην σελίδα 39 «Αλγόριθμος Δύο_μικρότεροι» βρίσκει τους δύο μικρότερους μόνο αν στον πίνακα υπάρχουν διαφορετικές τιμές. Αν στην πρώτη και δεύτερη θέση του πίνακα υπάρχει ίδια τιμή, η οποία είναι η μικρότερη του πίνακα, τότε ο αλγόριθμος δεν βρίσκει την δεύτερη μικρότερη τιμή.
Ο σωστός:
Αλγόριθμος Δύο_μικρότεροι
Δεδομένα // Μ //
Low1 M[1]
ΜΑΧ M[1]
Για i από 2 μέχρι 50
      Αν Μ< Low1 τότε
            Low1 M
      Τέλος_Αν
      Αν Μ>ΜΑΧ τότε
            ΜΑΧ M
      Τέλος_Αν
Τέλος_επανάληψης
Low2 ΜΑΧ
Για i από1 μέχρι 50
      Αν (Μ<> Low1 και Μ< Low2 τότε
            Low2 M
      Τέλος_Αν
Τέλος_επανάληψης
Αποτελέσματα // Low1, Low2//
Τέλος Δύο_μικρότεροι


4 Στην σελίδα 49 στο παράδειγμα 3 «Αλγόριθμος Ευθεία_Ανταλλαγή»
στην σειρά Δεδομένα έπρεπε να υπήρχε : Δεδομένα //Α,Ν//

5 Στην σελίδα 52 στο παράδειγμα
Αλγόριθμος Fibonacci
Δεδομένα //Ν//
Αν Ν<=1 τότε
      Fib  N
Αλλιώς
      J  0
      k  1
      Για i από 1 μέχρι N
            J  J+K
            K J-K το σωστό K J+K
      Τέλος_επανάληψης
      Fib  J
Τέλος_αν
Αποτελέσματα // Fib//
Τέλος Fibonacci
Τελικά τι θα υπολογίσει σαν Ν-οστό όρο της ακολουθίας Fibonacci

6 Στην σελίδα 53 στην άσκηση ΔΤ3
Πρέπει να προστεθεί η γραμμή "Δεδομένα //Ν//&#8221; μετά την γραμμή «Αλγόριθμος Fibonacci»


7 Στην σελίδα 55 στην άσκηση ΔΣ43
Πρέπει στην γραμμή "Δεδομένα //Α//&#8221; να προσθέσουμε και το Ν δηλαδή να γίνει "Δεδομένα //Α,Ν//&#8221;.

8 Στην σελίδα 63 στο παράδειγμα ΠΡΟΓΡΑΜΜΑ Τροχιά_μπάλας πρέπει να διαγραφεί το όνομα του προγράμματος από την τελευταία σειρά
Δηλαδή αντί για ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Τροχιά_μπάλας να γίνει ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

9 Στην ίδια σελίδα στο πρόγραμμα σε γλώσσα Pascal στο τελευταίο end λείπει η τελεία (.)

10 Στην σελίδα 64 στο παράδειγμα ΠΡΟΓΡΑΜΜΑ Υπολογισμός_δόσεων πρέπει να διαγραφεί το όνομα του προγράμματος από την τελευταία σειρά
Δηλαδή αντί για ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Υπολογισμός_δόσεων να γίνει ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

11 Στην σελίδα 73 στο πρόγραμμα σε Pascal υπάρχει η εντολή endif πράγμα απαράδεκτο για την Pascal.

12 Στην σελίδα 93 στο πρόγραμμα σε Pascal λείπει το do στο τελευταίο for.

Τελικά ρωτώ
Πόσο αυστηρά μπορείτε να βαθμολογήσετε τους μαθητές:
Αν αντί Δεδομένα //Α // γράψουν Διάβασε Α.
Αν αντί για ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ γράψουν
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ όνομα_προγράμματος
Αν ξεχάσουν να δηλώσουν μια μεταβλητή.
Αν βάλουν τις συναρτήσεις και τις διαδικασίες πριν από το κυρίως πρόγραμμα.

Sergio

#1
Πολύ καλή η σκέψη σου Θανάση, και ... πλούσια σε ... διαμάντια η συγκομιδή (ο ... 'δαίμων' φαίνεται χτύπησε και ... ξαναχτύπησε :))   Μόνο που έκανες post χωρίς να έχεις κάνει προηγούμενα login οπότε δεν θα φαίνεται στις αποστολές σου (αν θές, ξανα κάνε το post σαν BAL αυτή τη φορά)

Άνοιξες ένα πολύ καλό θέμα στο οποίο όλοι μπορούμε να συνεισφέρουμε προσφέροντας τις παρατηρήσεις μας, και κάποια στιγμή να στείλουμε τα συμπεράσματά μας ομαδικά στο Π.Ι.

Το διδακτικό πακέτο που χρησιμοποιείται στα σχολεία είναι για τους μαθητές το βασικό βοήθημα (αναφορά) για τις εξετάσεις οπότε αυτό που μπορούμε να κάνουμε εμείς από αυτό το 'ηλεκτρονικό βήμα' (όπως εύστοχα το περιέγραψες) είναι να εντοπίσουμε και να καταγράψουμε τις (όποιες) ατέλειες.

Συνάδελφοι... τον ... οβολό σας :)   Αν έχετε βρεί κανένα άλλο λάθος (πλεονασμό / ατέλεια ...) σε κάποιο από τα 3 βιβλία (Βιβλίο Μαθητή, Τετράδιο Μαθητή, Βιβλίο Καθηγητή) στείλτε το.

Κάποια στιγμή, όταν συγκεντρωθούν αρκετά, τα οργανώνουμε ανά βιβλίο & σελίδα ώστε να έχουμε όλοι μιά συνολική εικόνα.

Προηγούμενα βέβαια, ελέξτε τις διορθώσεις που έχει δημοσιεύσει το ΠΙ για τα τρία βιβλία, στο http://www.pi-schools.gr/download/lessons/computers/lykeio/books/anaptyxh.html

Σέργιος
Απ τη μια η θητεία μου σε σχολικές αίθουσες: να φλυαρώ - να ελπίζω πως κατι κατάλαβαν - να εξερευνώ - να μαθαίνω. Απ την άλλη, σχεδόν συνομήλικη, η Διδακτική της Πληροφορικής: ερευνά διαδικασίες μάθησης - φλερτάρει με την Ψυχολογία - με καλεί να αφήσω το βλέμμα του Πληροφορικού και να δω με τα μάτια του δασκάλου. Τέκνα των 2, οι απόψεις μου.. (προσαρμοσμένο από τον πρόλογο του βιβλίου "Το μακρόν Φυσική προ του βραχέως διδάσκω" του Ανδρέα Κασσέτα)

koyan

Και η δικιά μου συνεισφορά (παρακαλώ διορθώστε με εάν κάνω λάθος και δεν είναι πράγματι λάθος ή πλεονασμός κάποιο από τα παρακάτω):

1) Σελ 189, παράδειγμα "στατιστική"
Έχει τμήμα κώδικα για εισαγωγή δεδομένων, όπου "γεμίζει" τον πίνακα, αλλά παρακάτω, 18η και 19η σειρά του προγράμματος βλέπουμε:
   ΓΡΑΨΕ 'Δώσε τον ',i,'-ο αριθμό'
    ΔΙΑΒΑΣΕ Χ


Όπου ξαναγεμίζει τον πίνακα, στην ουσία μην χρησιμοποιόντας τα δεδομένα που του έδωσε ο χρήστης.

2) Σελ 193, παράδειγμα "Θερμοκρασίες_2"
4η σειρά από το τέλος, διαβάζουμε:
   ΓΡΑΨΕ 'Μέση θερμοκρασία ', i , ' Πόλης:', Μέση[j]
Θα έπρεπε να λέει
   ΓΡΑΨΕ 'Μέση θερμοκρασία ', j , ' Πόλης:', Μέση[j]
Αφού η μεταβλητή που μας δείχνει την πόλη είναι η j και όχι η i

Καλημέρα

KillBill

Τετράδιο του μαθητή στο παράδειγμα 1 σελίδα 100:

1ο λάθος
------------
έχουμε την εντολή Διάμεσος<--Υπολογισμός_Διαμέσου(Στοιχεία) ενώ η συνάρτηση Υπολογισμός_Διαμέσου έχει οριστεί να δέχεται 2 παραμέτρους. Το σωστό είναι λοιπόν
Διάμεσος<--Υπολογισμός_Διαμέσου(Στοιχεία, Πλήθος)

2ο Λάθος
------------
Στον ορισμό της διαδικασίας Ταξινόμησε(Πίνακας, Ν) δεν δηλώνονται οι τύποι των παραμέτρων Πίνακας και Ν

Βρακόπουλος Λ. Αθανάσιος

Από την Έκδοση Δ 2004 του βιβλίου  
Ας δούμε και ένα άλλο σημαντικό λάθος  κατά την άποψή μου.
Βρίσκεται στο παράδειγμα 1 της σελίδας 98.
Εκεί έχει το  εξής πρόβλημα : Να γραφεί πρόγραμμα το οποίο να διαβάζει τα ονόματα 50 αεροπορικών εταιρειών και τις αντίστοιχες εισπράξεις τους. Να τυπώνει τα ονόματα των εταιρειών που έχουν εισπράξεις περισσότερες από τον μέσο όρο.

Και η λύση:
ΠΡΟΓΡΑΜΜΑ ΑΕΡΟΠ
ΜΕΤΑΒΛΗΤΕΣ

ΑΡΧΗ
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
      ΔΙΑΒΑΣΕ Ν
ΜΕΧΡΙΣ_ΌΤΟΥ Ν<=50

Όπως καταλάβατε το Ν δεν πρέπει να διαβασθεί αφού καθορίζεται ότι οι εταιρείες είναι 50.
Αλλά και αν χρειαζόταν να διαβασθεί. Στην περίπτωση που η εκφώνηση ήταν : Να γραφεί πρόγραμμα το οποίο να διαβάζει τα ονόματα Ν αεροπορικών εταιρειών όπου Ν<=50 και τις αντίστοιχες εισπράξεις τους. Να τυπώνει τα ονόματα των εταιρειών που έχουν εισπράξεις περισσότερες από τον μέσο όρο.
Τότε στην δομή επανάληψης θα έπρεπε να ελέγχουμε και αν το Ν είναι αρνητικός δηλ

ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
      ΔΙΑΒΑΣΕ Ν
ΜΕΧΡΙΣ_ΌΤΟΥ Ν>0 και  Ν<=50

Περιμένω τις απόψεις σας.


pfan

Θα συμφωνήσω ότι θα πρέπει να κλειδώσουμε το Ν ώστε ο χρήστης να μην μπορεί να εισάγει τιμές κάτω από το 0 γιατί από την στιγμή που ο πίνακας είναι μια στατική δομή δεδομένων πρέπει να δηλωθεί από την αρχή ο αριθμός των θέσεων πίνακα. Από την στιγμή που η εκφώνηση θα λέει ότι πρέπει να γίνει εισαγωγή του αριθμού των εταιρειών θα πρέπει να ξεκαθαρίζει και ποιο είναι το ανώτατο όριο των εταιρειών (εφόσον χρειάζεται η δομή του πίνακα που στην συγκεκριμένη άσκηση είναι απαραίτητη). Επομένως αν υποθέσουμε ότι το ανώτατο όριο είναι το 50 τότε το Ν πρέπει να κλειδωθεί από 1 έως και 50 ώστε ο χρήστης να μην βγει εκτός ορίων του πίνακα.
Πύρζα Φανή
Καθηγήτρια Πληροφορικής

pian

ΒΜ13  Κ1
Σημείο      : 1η παράγρ. 4η γραμμή.
Λάθος       : επιλογής
Διόρθωση : ειδικότητας

pian

Κεφ. 2
1)
ΒΜ37  
Σημείο      : στο  Π5
Λάθος       : Επίλεξε
Διόρθωση : Επίλεξε   age
2)
ΒΜ38  
Σημείο      : στο  Π6
Λάθος       : 1.70
Διόρθωση : 1,70  (βλέπε σελ. 46)
3)
ΒΜ38
Σημείο      : Σχ. 2.5  Δ.Ρ.
Λάθος       : Είναι Δ.Ρ. πολλαπλής. (ΑΝ ... ΤΟΤΕ ... ΑΛΛΙΩΣ_ΑΝ)
Διόρθωση : να γραφεί το σωστό που αντισοιχεί σε εμφωλευμένη δομή.
4)
ΒΜ42  
Σημείο      :
Λάθος       : Λείπει η σύνταξη της Μέχρις_ότου και της  Για.
Διόρθωση :  να προστεθεί (όπως γίνεται με την  Όσο).
5)
ΒΜ44  
Σημείο      : Π11  2η γραμμή
Λάθος       : βήμα
Διόρθωση : με_βήμα
6)
ΒΜ44  
Σημείο      : τελευταία παράγραφος, 4η γραμμή
Λάθος       : πως
Διόρθωση : πώς
7)
ΒΜ45
Σημείο      : 2η παράγρ. 6η γρ.
Λάθος       : πως
Διόρθωση : πώς
8)
ΒΜ48  
Σημείο      : στον αλγόριθμο αλά_ρωσικά
Λάθος       : Μ2 <-- [Μ2/2]
Διόρθωση : Μ2 <-- Μ2 div 2  ή  Μ2 <-- Α_Μ(Μ2/2)
9)
ΒΜ48
Σημείο      : στον αλγόριθμο αλά_ρωσικά
Λάθος       : Δεδομένα  // Μ1, Μ2  ακέραιοι //
Διόρθωση : Δεδομένα // Μ1, Μ2//

Θα συνεχίσω με  Κεφ. 3

Ανδρέας


andreas

αα           Κεφ.          σελ.         Σημείο       Διόρθωση
1.      3ο       62      2η γρ.      FIFO   LIFO

Ανδρέας

θανος

μια απορια. . .
Σελ 127
'Σταδιακα ομως. . .που ΑΠΟΚΡΥΠΤΟΥΝ πολλες λεπτομεριες απο . . .'
'Αυτη η αυξανομενη ταση ΑΠΟΚΡΥΨΗΣ της αρχιτεκτονικης του. . .'

αποκρυβω=κρύβω κάτι από άλλον

Μηπως θελει να πει το αντιθετο? ?
Δηλαδη:

'Σταδιακα ομως. . .που φανερώνουν πολλες λεπτομεριες απο . . .'
'Αυτη η αυξανομενη ταση φανερωσης της αρχιτεκτονικης του. . .'


andreas_p


filippos

Όχι ρε παιδιά, σωστό είναι το κείμενο που αναφέρετε στη σελίδα 127. 

Οι γλώσσες 4ης γενιάς, αποκρύπτουν λεπτομέρεις από τις τεχνικές υλοποίησης.  Αναφέρεται στις λεπτομέρειες που πρέπει να γνωρίζει κανείς προκειμένου να προγραμματίσει σε γλώσσες 3ης γενιάς.    Για παράδειγμα, η SELECT της SQL δομείται εύκολα άποκρύπτοντας την επαναληπτική διαδικασία που θα έπρπεπε κανείς να υλοποιήσει για να πετύχει το ίδιο αποτέλεσμα με γλώσσα 3ης γενιάς. 

Και γενικότερα, κάθε γενιά "αποκρύπτει" όλο και κάτι παραπάνω, προσφέροντας ένα επιπλέον επίπεδο αφαίρεσης ώστε να προσεγγίζει περισσότερο το πρόβλημα και να απομακρύνεται από τις λεπτομέρειες υλοποίησης.

Επισκέπτης

Μιλώντας για SQL.....  Τελικά τα παιδιά να την θεωρούν γλώσσα 4ης γενιάς (σχολικό βιβλίο σελ.129) ή υψηλού επιπέδου-3ης γενιάς (σχολικό βιβλίο σελ. 128) ;

xthao

#13
Πάντως το πιο ωραίο, αυτό που αχρηστεύει κάθε έννοια ψηφιακού συστήματος και περατότητας και που μπορεί να περνάει και για μεγάλο παιδαγωγικό τέχνασμα είναι στη σελίδα 166 (βοήθειά μας!): "...Στην περίπτωση των πραγματικών αριθμών θεωρούμε ότι οι αριθμοί μπορούν να έχουν άπειρο αριθμό ψηφίων."

Αυτό στο δεύτερο μέρος του βιβλίου, όπου υποτίθεται ασχολούμαστε με τις λεπτομέρειες της υλοποίησης αλγορίθμων σε προγραμματιστικό περιβάλλον κι ενώ προηγούμενα στη σελίδα 149 υπάρχει σχόλιο για την παράσταση των αριθμών με συγκεκριμένο πλήθος bytes και νωρίτερα στο πρώτο μέρος του βιβλίου στη σελίδα 45 έχουμε πάρει μια γερή δόση από λειτουργίες χαμηλού επιπέδου με αφορμή τον πολλαπλασιασμό αλά ρωσικά.

Ας μην είμαστε αγνώμονες, ο πρόλογος μας έχει ήδη προειδοποιήσει, "... το βιβλίο αυτό δεν προορίζεται για να διαβαστεί σειριακά.".

manpap

σελ 44: ... το βήμα δε μπορεί να είναι μηδέν γιατί τότε ο βρόχος εκτελείται επ άπειρο.
σελ 178: Καμία αναφορά σε τέτοιο περιορισμό
οπότε σε αλγόριθμο
Για ι από 100 μεχρι 10 με_βημα 0   : Συντακτικό λάθος και κριτήριο αποτελεσματικότητας (δεν είναι εκτελέσιμη) και περατότητας (εκτελείται απ άπειρο)
ενώ σε Πρόγραμμα
Για ι από 100 μεχρι 10 με_βημα 0   : Καμία επανάληψη γιατί το 0 θεωρείται θετικό και άρα ή σύγκριση δίνει
ΟΣΟ ι<=10, που δεν ισχύει γιατί το ι είναι 100.
Προτεινόμενη διόρθωση: Προσωπικά θεωρώ καλύτερη την 2η αναφορά (όπως ορίζεται στα προγράμματα)


Επίσης στη σελίδα 173 θα έπρεπε να προσθέσει εκεί που λέει "η λίστα τιμών ..., ότι μπορεί να είναι συνθήκη (όπως στο παράδειγμα σελ 37.
Προτεινόμενη διόρθωση: Παράδειγμα του βιβλίου που να χρησιμοποιεί όλες τις περιπτώσεις λίστας τιμών (και την ΑΠΟ .. ΕΩΣ όπου δεν ορίζει ότι οι ακραίες τιμές περιλαμβάνονται)

Τι λέτε και εσεις?
Συντηρώ το μυαλό μου ακοίμητο, λαγαρό, ανήλεο. Το αμολώ να παλεύει ακατάλυτα. Άλλο αργαστήρι να κάνω το σκοτάδι φως δεν έχω.
Ν. Καζαντζάκης