ΕΠΙΛΕΞΕ ΚάποιαΣυνάρτηση(...)

Ξεκίνησε από alkisg, 06 Απρ 2020, 11:15:09 ΠΜ

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

alkisg

Έστω το παρακάτω τμήμα προγράμματος, όπου η έκφραση στην ΕΠΙΛΕΞΕ είναι κλήση συνάρτησης που βρίσκει το μέσο όρο ενός πίνακα βαθμών:

Κώδικας: ΓΛΩΣΣΑ
ΕΠΙΛΕΞΕ ΜέσοςΌρος(ΒαθμοίΤμήματος)
  ΠΕΡΙΠΤΩΣΗ 15..20
    ΓΡΑΨΕ "Οι περισσότεροι μαθητές είναι άριστοι" 
  ΠΕΡΙΠΤΩΣΗ 10..15
    ΓΡΑΨΕ "Οι περισσότεροι μαθητές είναι μέτριοι"
  ΠΕΡΙΠΤΩΣΗ ΑΛΛΙΩΣ 
    ΓΡΑΨΕ "Οι περισσότεροι μαθητές έμειναν στην ίδια" 
ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ


Πόσες φορές θεωρείτε σωστό να γίνει κλήση της συνάρτησης ΜέσοςΌρος;

Η Pascal και ο Διερμηνευτής κάνουν βελτιστοποίηση και την καλούν μόνο μία.
Σε απλές περιπτώσεις μετατροπής σε πολλαπλή ΑΝ, θα καλούνταν δύο, όσες και οι ΠΕΡΙΠΤΩΣΗ,
αλλά λόγω των διαστημάτων που υπάρχουν, θα πρέπει να γίνουν 4 κλήσεις, για παράδειγμα:

Κώδικας: ΓΛΩΣΣΑ
ΑΝ ΜέσοςΌρος(ΒαθμοίΤμήματος) >= 15 ΚΑΙ ΜέσοςΌρος(ΒαθμοίΤμήματος) <= 20 ΤΟΤΕ
  ΓΡΑΨΕ "Οι περισσότεροι μαθητές είναι άριστοι" 
ΑΛΛΙΩΣ_ΑΝ ΜέσοςΌρος(ΒαθμοίΤμήματος) >= 10 ΚΑΙ ΜέσοςΌρος(ΒαθμοίΤμήματος) <= 15 ΤΟΤΕ
  ΓΡΑΨΕ "Οι περισσότεροι μαθητές είναι μέτριοι"
ΑΛΛΙΩΣ
  ΓΡΑΨΕ "Οι περισσότεροι μαθητές έμειναν στην ίδια"
ΤΕΛΟΣ_ΑΝ


Άρα, μία, δύο ή τέσσερις κλήσεις;
Δηλαδή, προτιμάμε να υπάρχει ακριβής μετατροπή σε ΑΝ, ή δεχόμαστε ότι η ΕΠΙΛΕΞΕ δουλεύει έτσι και αποφεύγουμε να διδάσκουμε τραβηγμένα παραδείγματα;
Μήπως αν προτιμάμε την ακριβή μετατροπή, αυτό σημαίνει ότι δεν θέλουμε πραγματική γλώσσα προγραμματισμού όπως Pascal/Python αλλά θέλουμε καθαρά εκπαιδευτική γλώσσα;

bugman

Η Περίπτωση δέχεται λίστα περιπτώσεων που οδηγεί σε ένα τμήμα κώδικα;
Πχ
.....
ΠΕΡΙΠΤΩΣΗ 1, 3,, 5
....

Επίσης δέχεται εκφράσεις με μεταβλητές;
Αν ναι τότε εκτελούνται όλες ήή μέχρι την πρώτη που θα βγει Αληθής (εντός μιας περίπτωσης)

bagelis

Παράθεση από: alkisg στις 06 Απρ 2020, 11:15:09 ΠΜ

Πόσες φορές θεωρείτε σωστό να γίνει κλήση της συνάρτησης ΜέσοςΌρος;


Η γνώμη μου είναι μία, δεν είναι θέμα η μετατροπή της σε ΑΝ, αυτό είναι εκπαιδευτικού περιεχομένου.
Η συγκεκριμένη εντολή είναι μία άλλη αυτοτελής εντολή που δουλεύει με τον δικό της τρόπο.

pgrontas

Σαφώς μία.
Και όπως το θέτεις για την σωστή μετατροπή σε ΑΝ ... ΑΛΛΙΩΣ_ΑΝ η αποτίμηση της έκφρασης/συνάρτησης πρέπει να γίνει έξω από αυτήν.
Δεν έχει σημασία βέβαια αφού οι συναρτήσεις δεν έχουν side-effects, αλλά είναι το ισοδύναμο.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson