Δομή πολλαπλής επιλογής (ΕΠΙΛΕΞΕ)

Ξεκίνησε από Φίλιππος, 01 Φεβ 2006, 10:30:29 ΜΜ

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

Φίλιππος

Έστω άσκηση η οποία λέει:

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

Προφανής, ζωστή λύση είναι η:
[glossa]
  Αν ποσό = κόστος τότε
    Γράψε "Δε χρειάζονται ρέστα"
  Αλλιως_αν ποσό > κόστος τότε
    υπόλοιπο <- ποσό - κόστος
    Γράψε υπόλοιπο
  Αλλιως_αν ποσό < κόστος τότε
    περίσσευμα <- κόστος - ποσό
    Γράψε περίσσευμα
  Τέλος_αν
[/glossa]
Εξυπακούεται ότι το τελευταίο αλλιώς_αν (περιττός έλεγχος) θα μπορούσε να γραφεί απλά ως αλλιώς

Το ερώτημά μου είναι κατά πόσον το ίδιο θα μπορούσε να γραφτεί ως:

[glossa]
  Επίλεξε ποσό
    Περίπτωση κόστος
            Γράψε "Δε χρειάζονται ρέστα"
    Περίπτωση > κόστος τότε
            υπόλοιπο <- ποσό - κόστος
            Γράψε υπόλοιπο
    Περίπτωση < κόστος τότε
            περίσσευμα <- κόστος - ποσό
            Γράψε περίσσευμα
  Τέλος_Επιλογών
[/glossa]

όπου αντίστοιχα εξυπακούεται ότι το τελευταίο πρίπτωση < κόστος (περιττός έλεγχος) θα μπορούσε να γραφεί απλά ως περίπτωση_αλλιώς

Τι λέτε;

pian2

Συνάδελεφε ( ή μαθητή) , ΠΡΟΣΕΞΕ τη σύνταξη της  ΕΠΙΛΕΞΕ  !!!
το σωστό :
Επίλεξε ποσό
     Περίπτωση   κόστος
           Γράψε "Δε χρειάζονται ρέστα"
     Περίπτωση   > κόστος  
          υπόλοιπο <- ποσό - κόστος
          Γράψε 'Υπόλοιπο= ', υπόλοιπο
     Περίπτωση   αλλιώς
          περίσσευμα <- κόστος - ποσό
          Γράψε 'Περίσσευμα=' , περίσσευμα
  Τέλος_Επιλογών

Ανδρέας


P.Tsiotakis


Αν ο Φίλιππος βγάλει τα "τότε" είναι σωστός

Φίλιππος

Με ... πιάσατε !!!

Όντως έπεσα θύμα του copy&paste... :)

Όντως το εννοούσα χωρίς τα τότε...  Ο προβληματισμός μου όμως ήταν (και παραμένει) κατά πόσον "δικαιούται" ο μαθητής να χρησιμοποιήσει την επίλεξε όταν οι περιπτώσεις είναι εκφράσεις και όχι τιμές !!!

Έχω την αίσθηση ότι έχει ακουστεί κατά καιρούς η άποψη πως οι "περιπτώσεις" θα πρέπει να είναι "τιμές" της έκφρασης που εξετάζεται και όχι "εκφράσεις".

Αν κάτι τέτοιο ισχύει, η λύση που προτείνω με την επίλεξε είναι λάθος αφού οι περιπτώσεις περιλαμβάνουν εκφράσεις (κόστος) και όχι σταθερές τιμές (1, 2, 3...).

Τι νομίζετε;

andreas

Φίλιππε, μπορείς. Βλέπε ΒΜ37 Παράδειγμα 5.
Διόρθωση :  Επίλεξε   age

Ανδρέας

Φίλιππος

Συνάδελφοι,

το ερώτημα παραμένει.   Το παράδειγμα της σελ.37, με τη "διαχρονική" παράλειψη του age από την πρώτη γραμμή της δομής, έχει στις "περιπτώσεις" ΣΤΑΘΕΡΕΣ τιμές και ΟΧΙ εκφράσεις με μεταβλητές.

Το ερώτημά μου είναι αν πιστεύετε ότι οι "περιπτώσεις" μπορούν να περιλαμβάνουν εκφράσεις με μεταβλητές και όχι απαραίτητα μόνο σταθερές τιμές.

Στο παράδειγμα που δίνω στην αρχή του post, οι "περιπτώσεις" ΔΕΝ περιλαμβάνουν σταθερές τιμές αλλά μεταβλητές.  Δεν έχω δει αντίστοιχο παράδειγμα στο διδακτικό πακέτο.

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

Πιστεύετε ότι ισχύει κάτι τέτοιο;

Sergio

Φίλιππε, το θέμα που θίγεις είναι νομίζω ... ανοικτό!

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

Δοικίμασα κάτι παρόμοιο με αυτό που προτείνεις, συγκεκριμένα ένα υποσύνολο του θέματος 3 (2002) με τα διόδια:
[glossa]
ΠΡΟΓΡΑΜΜΑ Δοκιμή
ΜΕΤΑΒΛΗΤΕΣ
  ΠΡΑΓΜΑΤΙΚΕΣ: Υ, Α
ΑΡΧΗ
  Διάβασε Υ, Α
  Επίλεξε Υ
    περίπτωση >=Α
      Υ <- Υ - Α
      ΓΡΑΨΕ "Οκ, υπόλοιπο ", Υ
    περίπτωση 0
      ΓΡΑΨΕ "Κενή κάρτα, οφείλεις ", Α
    περίπτωση <Α
      ΓΡΑΨΕ "Ανεπαρκές υπόλοιπο, οφείλεις ", Υ - Α
      Υ <- 0
  τέλος_επιλογών
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ[/glossa]

ΚΑΙ οι τρεις περιπτώσεις, αφορούν την ίδια παράσταση: Υ.

Δεν είναι όμως σταθερές τιμές, αλλά παραστάσεις.

Η μεταγλώτισή του παραπάνω κώδικα έδωσε ως σφάλμα το:

Οι εκφράσεις σε κάθε «περίπτωση» πρέπει να είναι σταθερές, απαγορεύεται να περιέχουν μεταβλητές ή κλήσεις σε συναρτήσεις.
«Α»: πραγματική μεταβλητή


Αυτό δείχνει να ακολουθεί τη λογική ότι οι περιπτώσεις πρέπει να είναι σταθερές τιμές και ΟΧΙ παραστάσεις.  Δεν ξέρω αν θα πρέπει αυτό να εκληφθεί και ως ορισμός της ΕΠΙΛΕΞΕ σε επίπεδο ψευδογλώσσας.

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

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

alkisg

Σε παλιότερη έκδοση ο Διερμηνευτής δεχόταν και μεταβλητές στην Επίλεξε. Μετά, νομίζω λόγω συζητήσεων στο στέκι, μου είχε φανεί σωστότερο να δέχεται μόνο σταθερές. Ίσως να είχα ρωτήσει και τους συγγραφείς, δε θυμάμαι.

Θα το ψάξω το ΣΚ να βρω ποιος ήταν ο λόγος που έκανα την αλλαγή. Φυσικά οποιαδήποτε παραπομπή στο βιβλίο/τετράδιο θα είναι σαφώς σημαντικότερη!

gpapargi

Καλημέρα

Ξέρω ότι επαναλαμβάνομαι αλλά νομίζω ότι αξίζει τον κόπο.

Το συγκεκριμένο θέμα είναι από εκείνα που δε γίνεται να απαντηθούν γιατί το βιβλίο δεν ορίζει κάτι συγκεκριμένο και σαφές. Είναι από τους λόγους για τους οποίους πιστεύω ότι είναι επιτακτική ανάγκη να πιστοποιηθεί κάποια από τις υλοποιήσεις της ΓΛΩΣΣΑΣ.

Αυτή τη στιγμή σε τέτοια ζητήματα ο Άλκης δίκαια λέει ότι δεν είναι σαφές το βιβλίο και άρα δεν ξέρει πως να υλοποιήσει τη ΓΛΩΣΣΑ.

Από την άλλη μεριά το παιδαγωγικό ινστιτούτο ίσως να λέει ότι δεν ξέρουν πως ακριβώς υλοποιεί τη ΓΛΩΣΣΑ ο διερμηνευτής και γι αυτό δεν μπορεί να τον πιστοποιήσει. Αν είναι έτσι έχουμε μπλέξει σε φαύλο κύκλο.

Το παιδαγωγικό ινστιτούτο έχει την ευθύνη είτε να έχει πλήρως ορισμένη τη ΓΛΩΣΣΑ στο σχολικό βιβλίο είτε να δώσει κάποια υλοποίηση της ΓΛΩΣΣΑΣ και να την έχουμε σαν αναφορά. Επειδή πάντα μπορεί να ξεφύγει κάτι από το βιβλίο (όπως τώρα) νομίζω ότι καλύτερη λύση είναι η δεύτερη.

Από κάπου πρέπει να ξεκινήσουμε. Ας ελέγξει το παιδαγωγικό ινστιτούτο το διερμηνευτή, ας κάνει όποιες τροποποιήσεις θεωρηθούν αναγκαίες και ας πιστοποιηθεί το αποτέλεσμα. Ότι ξεφύγει από τον έλεγχο ας είναι όπως κάτσει δηλαδή όπως το έχει ήδη ο Άλκης. Ότι πιστοποιηθεί μετά θα θεωρείται σωστό. Δεν έχει σημασία αν θα είναι με τον ένα ή τον άλλο τρόπο. Σημασία έχει να υπάρχει κάτι συγκεκριμένο και να το έχουμε σαν αναφορά.

Έτσι σε τέτοια ζητήματα απλά θα βλέπουμε πως λειτουργεί κάτι στο διερμηνευτή και θα είμαστε όλοι ευτυχισμένοι.

P.Tsiotakis


Ποιος να ελέγξει το λογισμικό; Στο ΠΙ δεν υπάρχει πλέον πάρεδρος πληροφορικής

Και πάλι Γιώργο πρέπει να ξέρεις οτι ΔΕΝ μπορεί κάποιος να πάρει την ευθύνη αυτή. Η επιτροπή εξετάσεων δεν ορίζεται από το ΠΙ. Το μόνο σημείο αναφοράς είναι το διδακτικό πακέτο, ό,τι κι αν σημαίνει αυτό

gpapargi

Το ΠΙ έχει την ευθύνη για να είναι όλα σαφή. Ας βρει κάποιο τρόπο να το πετύχει. Εγώ πρότεινα έναν από αυτούς.

Αυτό που λέω είναι να μπει κάποια υλοποίηση της ΓΛΩΣΣΑΣ στο διδακτικό πακέτο. Η επιτροπή εξετάσεων στη συνέχεια θα πρέπει να συμμορφωθεί με αυτό αφού θα είναι μέρος του διδακτικού πακέτου.

Κάθένας πρέπει να αναλάβει τις ευθύνες του. Οι δικές μας είναι να ξέρουμε το αντικείμενο και να το διδάσκουμε σωστά. Το να είναι καλά καθορισμένο αυτό το αντικείμενο είναι ευθύνη του ΠΙ.  

alkisg

Έψαξα τα email μου, είχα κάνει σχετική συζήτηση με κάποιους από τους συγγραφείς αλλά τελικά είχα βασιστεί περισσότερο στο βιβλίο: Στον ορισμό της Επίλεξε αναφέρει ότι οι περιπτώσεις είναι λίστα τιμών (όχι μεταβλητών ή εκφράσεων), ενώ σε κανένα από τα 3 βιβλία δεν είχα βρει παράδειγμα με Επίλεξε που να μη χρησιμοποιεί σταθερές περιπτώσεις.

Εξάλλου γενικά η case δε συνηθίζεται να παίρνει μεταβλητές, υποτίθεται συγκρίνεις κάτι με συγκεκριμένες περιπτώσεις, αλλιώς χρησιμοποιείς if...