Αποστολέας Θέμα: Ερώτηση σε ασκηση πινακα τιμών  (Αναγνώστηκε 1830 φορές)

Μαρια Κ.

  • Επισκέπτης
Ερώτηση σε ασκηση πινακα τιμών
« στις: 03 Απρ 2006, 06:23:07 μμ »
Από θέματα προτεινόμενα των ΝΕΩΝ

Δίνεται
   s ← 2
   i ← 1
   Όσο ι<>8  επανέλαβε
       Αν (s mod 4= s) τότε
             s ← s + 2
       Αλλιώς
            Για j από 1 μέχρι i με_βήμα 2
                s ← s * j
            Τέλος_Επαναληψης
       Τέλος_αν
        Γράψε s
        i ← i * 2
  Τέλος_επανάληψης
Γράψε i , j

Τι τιμές θα εμφανιστούν κατά την εκτέλεση του αλγορίθμου;

Απάντηση: 4,4,12,8,5

Δεν χρειάζεται να σχηματισθεί ο πίνακας τιμών σε τέτοιου είδους ασκήσεις ή και έτσι θεωρείται σωστό;
Εγώ βρίσκω 4,4,12,8,3 μπορείτε να του ρίξετε μια ματιά μήπως κάνω εγώ λάθος. Ευχαριστώ.



graeep

  • Νέος
  • *
  • Μηνύματα: 4
Απ: Ερώτηση σε ασκηση πινακα τιμών
« Απάντηση #1 στις: 03 Απρ 2006, 11:52:45 μμ »
Μαρία η απάντηση 4,4,12,8,5 είναι σωστή
Και γιατί το j είναι τειλικά 5;
Καταρχήν θυμίζω ότι το i σε αυτό το στάδιο εκτέλεσης είναι 4
Η επανάληψη
----------------------------------------
Για j από 1 μέχρι i με_βήμα 2
                s ← s * j
Τέλος_Επαναληψης
-----------------------------------------
θα διακοπεί μόνο όταν το j γίνει μεγαλύτερο του 4. Αυτό σημαίνει ότι τελικά η τιμή του j θα είναι 1+2+2=5

Σε τέτοιες ασκήσεις δεν απαιτείται πίνακας τιμών, αφού μας αφορούν μόνο οι μεταβλητές που εμφανίζονται στην "οθόνη"
Θα ήταν καλό όμως να φτιάξεις ένα πινακάκι με όνομα κάθε στήλης το όνομα της μεταβλητής που σε ενδιαφέρει. Εκεί θα γράφεις μόνο τις τιμές των μεταβλητών, όταν αυτές είναι έτοιμες προς εμφάνιση.
Μήπως οι αλγόριθμοι που στηρίζονται στη μηχανή Turing, μας εγκλωβίζουν σε τοπικό μέγιστο στη συνάρτηση της εξέλιξης της Πληροφορικής; ;)

Christos

  • Θαμώνας
  • ***
  • Μηνύματα: 24
Απ: Ερώτηση σε ασκηση πινακα τιμών
« Απάντηση #2 στις: 03 Απρ 2006, 11:54:43 μμ »
Ο αλγόριθμος εμφανίζει 4,4,12,8,5.
Η διαφορά της δικής σου εκτέλεσης είναι ότι στην τελευταία επανάληψη(i=4), στον εσωτερικό βρόχο

     Για j από 1 μέχρι i με_βήμα 2
                s ← s * j
            Τέλος_Επαναληψης

το j θεωρείς οτι παίρνει τελευταία τιμή το 3, ενώ στην πραγματικότητα γίνεται αύξηση του i σε 5.

Δεν χρειάζεται να παραθέσεις και τον πίνακα τιμών αφού η άσκηση ζητάει μόνο τι εμφανίζει ο αλγόριθμος.