Αποστολέας Θέμα: ΕΠΙΛΕΞΕ ΚάποιαΣυνάρτηση(...)  (Αναγνώστηκε 291 φορές)

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5398
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
ΕΠΙΛΕΞΕ ΚάποιαΣυνάρτηση(...)
« στις: 06 Απρ 2020, 11:15:09 πμ »
Έστω το παρακάτω τμήμα προγράμματος, όπου η έκφραση στην ΕΠΙΛΕΞΕ είναι κλήση συνάρτησης που βρίσκει το μέσο όρο ενός πίνακα βαθμών:

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

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

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

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

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

bugman

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 464
  • The Bug Eater
    • Πληροφορική Προγραμματισμός
Απ: ΕΠΙΛΕΞΕ ΚάποιαΣυνάρτηση(...)
« Απάντηση #1 στις: 06 Απρ 2020, 12:18:19 μμ »
Η Περίπτωση δέχεται λίστα περιπτώσεων που οδηγεί σε ένα τμήμα κώδικα;
Πχ
.....
ΠΕΡΙΠΤΩΣΗ 1, 3,, 5
....

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

bagelis

  • Ομάδα διαγωνισμάτων 2009
  • *
  • Μηνύματα: 549
Απ: ΕΠΙΛΕΞΕ ΚάποιαΣυνάρτηση(...)
« Απάντηση #2 στις: 06 Απρ 2020, 12:49:40 μμ »

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


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

pgrontas

  • Ομάδα διαγωνισμάτων 2016
  • *
  • Μηνύματα: 1402
  • There are always possibilities...
Απ: ΕΠΙΛΕΞΕ ΚάποιαΣυνάρτηση(...)
« Απάντηση #3 στις: 06 Απρ 2020, 01:22:56 μμ »
Σαφώς μία.
Και όπως το θέτεις για την σωστή μετατροπή σε ΑΝ ... ΑΛΛΙΩΣ_ΑΝ η αποτίμηση της έκφρασης/συνάρτησης πρέπει να γίνει έξω από αυτήν.
Δεν έχει σημασία βέβαια αφού οι συναρτήσεις δεν έχουν side-effects, αλλά είναι το ισοδύναμο.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson