(περιμένοντας στο VBI για να περάσει η ώρα:)
Το 2007 στις εξετάσεις του ημερησίου είχε ζητηθεί στο Θέμα 2:
α) μετατροπή συνάρτησης σε διαδικασία, και
β) ενσωμάτωση συνάρτησης στο κύριο πρόγραμμα
Τότε τα πράγματα ήταν σχετικά απλά γιατί οι τυπικές παράμετροι της συνάρτησης δεν μεταβάλλονταν.
Για να το δυσκολέψουμε λίγο τώρα, το παρακάτω είναι ένα πρόγραμμα από πανελλήνιες (Θέμα 2 - Επαναληπτικές 2006) που άλλαξα λιγάκι. Έχουμε και λέμε (ελπίζω να μην έχω κάνει κάποιο λάθος):
α) Να ξαναγράψετε το πρόγραμμα, ώστε να επιτελεί την ίδια λειτουργία χρησιμοποιώντας διαδικασία στη θέση της συνάρτησης και συνάρτηση στη θέση της διαδικασίας. (Παραλλαγή: Πώς θα γινόταν η μετατροπή της διαδικασίας σε συνάρτηση αν αντί της εντολής λ<-κ+2*μ υπήρχε η εντολή λ<-κ+2*μ+λ ).
β) Να ξαναγράψετε το πρόγραμμα που δόθηκε αρχικά, ώστε να επιτελεί την ίδια λειτουργία χωρίς τη χρήση υποπρογραμμάτων.
ΠΡΟΓΡΑΜΜΑ Κλήση_Υποπρογραμμάτων
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: α, β, χ
ΑΡΧΗ
α <- 1
β <- 2
χ <- 2
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ χ mod 2 =0 ΤΟΤΕ
ΚΑΛΕΣΕ Διαδ1(α, χ, β)
ΑΛΛΙΩΣ
χ <- χ + Συν1(α, β)
ΤΕΛΟΣ_ΑΝ
ΓΡΑΨΕ α, β, χ
ΜΕΧΡΙΣ_ΟΤΟΥ χ>=11
ΓΡΑΨΕ χ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΔΙΑΔΙΚΑΣΙΑ Διαδ1(κ, λ, μ)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: κ, λ, μ
ΑΡΧΗ
λ<-κ+2*μ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
ΣΥΝΑΡΤΗΣΗ Συν1(ε, ζ): ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: ε, ζ
ΑΡΧΗ
ζ<-ζ+2
ε<-ε*2
Συν1<-ε+ζ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ