Διαφόρων Φορέων

Αλγόριθμος Αραιός

Στο βιβλίο του μαθήματος «Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον» υπάρχουν τα παρακάτω 6 (έξι) λάθη και παραλείψεις:

Στα δεδομένα δηλώνεται και ο τύπος των μεταβλητών ή έγινε από παραδρομή;

 

1. Είναι στο μόνο παράδειγμα που ορίζονται οι τύποι των μεταβλητών.

ΣΕΛΙΔΑ 48

Αλγόριθμος   Πολλαπλασιασμός_αλά_ρωσικά               

 

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

Ρ-> 0

Όσο Μ2 > 0 επανάλαβε

      Αν μ2 mod  2=1 τότε Ρ<- Ρ+Μ1

      Μ1 <- *2

      Μ2 <- [Μ2/2]        ! γιατί δεν χρησιμοποιείται το div

Τέλος _επανάληψης

Αποτέλεσμα // Ρ, το γινόμενο των ακεραίων Μ1,Μ2 //

Τέλος Πολλαπλασιασμός _αλά_ρωσικά

 

 

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

 

Αλγόριθμος  Fibonacci2

Δεδομένα    // n //

Αν n< 1 τότε

    Fib <- n

Αλλιώς

  Fib <-  fib (n-1)  +  fib (n-2)

Τέλος _Αν

Αποτέλεσμα // fib //

Τέλος  Fibonacci2

 

Πως τερματίζει ένα πρόγραμμα σε γλώσσα προγραμματισμού «ΓΛΩΣΣΑ»

Με

Α ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ή 

Β ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ και όνομα προγράμματος

Διότι ενώ στην θεωρία αναφέρει ως τερματισμό του προγράμματος την πρώτη περίπτωση, στην συνέχει σε πολλά παραδείγματα υιοθετεί την δεύτερη περίπτωση

3. Όπως αυτό που ακολουθεί την παράγραφο 7.10 Δομή Προγράμματος

4.Στην σελίδα 158 «ΠΡΟΓΡΑΜΜΑ Κόστος_Υπολογιστών»,

5.Στην σελίδα 175 «ΠΡΟΓΡΑΜΜΑ Άθροισμα» και

6.Στην σελίδα 188-189 «ΠΡΟΓΡΑΜΜΑ Στατιστική».

 

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

 

1. Στον αλγόριθμο της σελίδας 33 του τετραδίου του Μαθητή υπάρχει ο παρακάτω αλγόριθμος τι εκφράζουν τα L,M γιατί δεν δηλώνονται στα δεδομένα;

Αλγόριθμος Αραιός

Δεδομένα // sparse, n //

Flag ← 0

k ← 0

Όσο flag = 0 επανάλαβε

   i  sparse [3*k+1]

   j  ← sparse [3*k+2]

  Αν i =L και j =M τότε

                result ← sparse [3*k+3]

                flag ← 1

         αλλιώς_αν i > L ή (i =L και j > M) τότε

                result ← 0

                flag ← 1

         αλλιώς

                 kk+1

          Τέλος_αν  

Τέλος_επανάληψης

Αποτελέσματα // result //

Τέλος Αραιός

 

Ο σωστός αλγόριθμος θα ήταν:

Αλγόριθμος Αραιός

Δεδομένα // sparse, n, L, M //

! sparse πίνακας μονοδιάστατος 3*Ν θέσεων

! L:γραμμές του δισδιάστατου αραιού πίνακα

!M:στήλες του δισδιάστατου αραιού πίνακα

 

για κ από 0 μέχρι Ν με βήμα 3 επανάλαβε

   i  sparse [k+1]

   j  sparse [k+2]

 resultsparse [k+3]

Αν i <=L και j< =M τότε

Result[I, j] ← sparse [k+3]

Τέλος_αν  

Τέλος_επανάληψης

Αποτελέσματα // result //

Τέλος Αραιός

 

 

2 Αν και εκτός ύλης ο αλγόριθμος της δυαδικής αναζήτησης στην σελίδα 39 δεν τερματίζει ποτέ

Αλγόριθμος Δυαδική_αναζήτηση

Δεδομένα // ΟΝΟΜΑ, ΚΑΤ //

low ← 0

high ← 50

found ← 0

όσο low <= high επανάλαβε

       mid ← ( low + high) /2

       Aν KAT [mid] < ΟΝΟΜΑ τότε

             lowmid +1

        αλλιώς_αν KAT [mid] > ONOMA τότε

             high ← mid -1

        αλλιώς

             found ← 1

        Τέλος_αν

Τέλος_επανάληψης

Αποτελέσματα // found //

Τέλος Δυαδική_αναζήτηση

 

Το σωστό:

Αλγόριθμος Δυαδική_αναζήτηση

Δεδομένα // ΟΝΟΜΑ, ΚΑΤ //

low ← 1

high ← 50

found ← 0

όσο low <= high επανάλαβε

       mid ← ( low + high) div 2

       Aν KAT [mid] < ΟΝΟΜΑ τότε

             lowmid +1

        αλλιώς_αν KAT [mid] > ONOMA τότε

             high ← mid -1

        αλλιώς

            found ← mid

            lowhigh +1

        Τέλος_αν

Τέλος_επανάληψης

Αποτελέσματα // found //

Τέλος Δυαδική_αναζήτηση

 

Σε basic:

Dim a(10), i, key, low, high, found, midi As Integer

For i = 1 To 10: a(i) = i: Next

key = 1

low = 1

high = 10

found = 0

While low <= high

            midi = (low + high) 2

       If a(midi) < key Then

             low = midi + 1

        ElseIf a(midi) > key Then

             high = midi - 1

        Else

             found = midi: low = high + 1

        End If

Wend

 

3 O  αλγόριθμος στην σελίδα 39 «Αλγόριθμος Δύο_μικρότεροι» βρίσκει τους δύο μικρότερους, μόνο αν στον πίνακα υπάρχουν διαφορετικές τιμές. Αν στην πρώτη και δεύτερη θέση υπάρχει ίδια τιμή η οποία  είναι η μικρότερη του πίνακα, τότε ο αλγόριθμος δεν βρίσκει την δεύτερη μικρότερη τιμή.

 

Αλγόριθμος Δύο_μικρότεροι

Δεδομένα // Μ //

Low1¬ M[1]

Pos ¬ 1

Για i από 2 μέχρι 50

            Αν Μ[I]< Low1 τότε

                        Low1¬ M[i]

                        Pos ¬  I

            Τέλος_Αν

Τέλος_επανάληψης

Αν Pos<>1 τότε

            Low2¬Μ[1]

Αλλιώς

            Low2¬Μ[2]

Τέλος_Αν

Για i από 2 μέχρι 50

            Αν (I<> Pos και  Μ[I]< Low2 τότε

                        Low2¬ M[i]

            Τέλος_Αν

Τέλος_επανάληψης

Αποτελέσματα // Low1, Low2//

Τέλος Δύο_μικρότεροι

 

Ο σωστός:

Αλγόριθμος Δύο_μικρότεροι

Δεδομένα // Μ //

Low1¬ M[1]

ΜΑΧ¬ M[1]

Για i από 2 μέχρι 50

            Αν Μ[I]< Low1 τότε

                        Low1¬ M[i]

            Τέλος_Αν

            Αν Μ[I]>ΜΑΧ τότε

                        ΜΑΧ¬ M[i]

            Τέλος_Αν

Τέλος_επανάληψης

Low2¬ ΜΑΧ

Για i από1 μέχρι 50

            Αν (Μ[i]<> Low1 και  Μ[i]< Low2 τότε

                        Low2¬ M[i]

            Τέλος_Αν

Τέλος_επανάληψης

Αποτελέσματα // Low1, Low2//

Τέλος Δύο_μικρότεροι

 

Dim a(10) As Integer

Dim max1, max2, pos, i As Integer

a(1) = 12: a(2) = 10: a(3) = 5: a(4) = 5: a(10) = 12: a(6) = 4

a(7) = 12: a(8) = 12: a(9) = 5: a(9) = 10: a(10) = 4

max1 = a(1)

pos = 1

For i = 2 To 10

If a(i) > max1 Then

    max1 = a(i)

    pos = i

End If

Next

 

 

If pos <> 1 Then

    max2 = a(1)

Else

    max2 = a(2)

End If

For i = 2 To 10

If a(i) > max1 Then

    max2 = a(i)

End If

Next

ma1.Caption = max2

ma2.Caption = max1

 

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

Πρέπει να προστεθεί η γραμμή "Δεδομένα //Ν//” μετά την γραμμή «Αλγόριθμος Fibonacci»

 

 

7 Στην σελίδα 55 στην άσκηση ΔΣ43

Πρέπει στην γραμμή "Δεδομένα //Α//” να προσθέσουμε και το Ν δηλαδή να γίνει  "Δεδομένα //Α,Ν//”.

 

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

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

 

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

 

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

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

 

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

 

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

 

Τελικά ρωτώ

Πόσο αυστηρά μπορείτε να βαθμολογήσετε τους μαθητές:

Αν αντί Δεδομένα //Α // γράψουν Διάβασε Α.

Αν αντί για ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ γράψουν

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ όνομα_προγράμματος

Αν ξεχάσουν να δηλώσουν μια μεταβλητή.

Αν βάλουν τις συναρτήσεις και τις διαδικασίες πριν από το κυρίως πρόγραμμα.

 

 

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


Τηλέφωνο: 6945283261

http://2lyk-kater.pie.sch.gr/users/braat/



Αποστολή σελίδας   Εκτυπώσιμη μορφή σελίδας   Προσθήκη σελίδας στα Αγαπημένα 
Πείτε τη γνώμη σας για το άρθρο
©1998-2024, Έδρα Εκπαίδευσης, Ι.Π.Ε.Τ.
 
Επιστροφή
Δημοσιεύθηκε την: 04.04.2003 00:00:00
 
Αναγνώσθηκε 462 φορές