Μετατροπές σε υποπρογράμματα

Ξεκίνησε από Νίκος Αδαμόπουλος, 05 Μαΐου 2009, 07:24:07 ΜΜ

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

Νίκος Αδαμόπουλος

(περιμένοντας στο VBI για να περάσει η ώρα:)

Το 2007 στις εξετάσεις του ημερησίου είχε ζητηθεί στο Θέμα 2:
α) μετατροπή συνάρτησης σε διαδικασία, και
β) ενσωμάτωση συνάρτησης στο κύριο πρόγραμμα
Τότε τα πράγματα ήταν σχετικά απλά γιατί οι τυπικές παράμετροι της συνάρτησης δεν μεταβάλλονταν.

Για να το δυσκολέψουμε λίγο τώρα, το παρακάτω είναι ένα πρόγραμμα από πανελλήνιες (Θέμα 2 - Επαναληπτικές 2006) που άλλαξα λιγάκι. Έχουμε και λέμε (ελπίζω να μην έχω κάνει κάποιο λάθος):
α) Να ξαναγράψετε το πρόγραμμα, ώστε να επιτελεί την ίδια λειτουργία χρησιμοποιώντας διαδικασία στη θέση της συνάρτησης και συνάρτηση στη θέση της διαδικασίας. (Παραλλαγή: Πώς θα γινόταν η μετατροπή της διαδικασίας σε συνάρτηση αν αντί της εντολής  λ<-κ+2*μ  υπήρχε η εντολή  λ<-κ+2*μ+λ ).
β) Να ξαναγράψετε το πρόγραμμα που δόθηκε αρχικά, ώστε να επιτελεί την ίδια λειτουργία χωρίς τη χρήση υποπρογραμμάτων.

ΠΡΟΓΡΑΜΜΑ Κλήση_Υποπρογραμμάτων
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: α, β, χ
ΑΡΧΗ
  α <- 1
  β <- 2
  χ <- 2
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΑΝ χ mod 2 =0 ΤΟΤΕ
      ΚΑΛΕΣΕ Διαδ1(α, χ, β)
    ΑΛΛΙΩΣ
      χ <- χ + Συν1(α, β)
    ΤΕΛΟΣ_ΑΝ
    ΓΡΑΨΕ α, β, χ
  ΜΕΧΡΙΣ_ΟΤΟΥ χ>=11
  ΓΡΑΨΕ χ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ


ΔΙΑΔΙΚΑΣΙΑ Διαδ1(κ, λ, μ)
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: κ, λ, μ
ΑΡΧΗ
  λ<-κ+2*μ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ


ΣΥΝΑΡΤΗΣΗ Συν1(ε, ζ): ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: ε, ζ
ΑΡΧΗ
  ζ<-ζ+2
  ε<-ε*2
  Συν1<-ε+ζ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ


evry


   Καλή η παραλλαγή αλλά θα διαφωνήσω με την επιλογή της αλλαγής των τιμών των παραμέτρων μέσα στην συνάρτηση (αν και έχει πέσει θέμα). Μου φαίνεται λίγο φάουλ γιατί φαίνεται ότι έχει σκοπό να μπερδέψει τον μαθητή σε ένα θέμα το οποίο δεν ορίζεται ξεκάθαρα στο βιβλίο. Δηλαδή δεν ορίζεται αν είναι λάθος να πειράζουμε τις παραμέτρους μιας συνάρτησης ή ότι μπορούμε να τις πειράζουμε αλλά οι αλλαγές δεν μεταφέρονται στο κύριο πρόγραμμα.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Νίκος Αδαμόπουλος

Παράθεση από: evry στις 06 Μαΐου 2009, 12:47:02 ΠΜ
... δεν ορίζεται αν είναι λάθος να πειράζουμε τις παραμέτρους μιας συνάρτησης ή ότι μπορούμε να τις πειράζουμε αλλά οι αλλαγές δεν μεταφέρονται στο κύριο πρόγραμμα.

Αναφέρεται για τις συναρτήσεις στη σελ. 213: "Η λίστα παραμέτρων είναι μια λίστα μεταβλητών, των οποίων οι τιμές μεταβιβάζονται στη συνάρτηση κατά την κλήση"

και για τις διαδικασίες στη σελ. 214: "Η λίστα παραμέτρων είναι μια λίστα μεταβλητών, των οποίων οι τιμές μεταβιβάζονται προς τη διαδικασία κατά την κλήση ή/και επιστρέφονται στο κύριο πρόγραμμα μετά το τέλος της διαδικασίας".

(ευχαριστούμε τον Άλκη για τη μετατροπή των pdf των βιβλίων του μαθήματος ώστε να είναι δυνατή η αντιγραφή του κειμένου και η αναζήτηση. Βλ. https://alkisg.mysch.gr/steki/index.php?topic=1436.0)

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

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

evry

Το ότι το θέμα επιλέχθηκε από την επιτροπή δεν σημαίνει τίποτα. Αντίθετως μάλιστα με αυτά που έχουμε δει ως τώρα. Δεν είναι θέμα αν είναι λάθος η όχι. Το θέμα είναι πως δεν διευκρινίζεται τι είναι, ξεκάθαρα μέσα στο βιβλίο. Για παράδειγμα φαντάσου να έδινες μια συνάρτηση η οποια να διάβαζε κάτι. Θα ήταν λάθος? και αν ναι τι λάθος θα ήταν? Θέλω να πω ότι υπάρχουν ασάφειες και σκοτεινά σημεία στο βιβλίο. Δεν πρέπει λοιπόν να μπαίνουν θέματα τα οποια αγγίζουν τα σημεία αυτά γιατί μπορεί ένας καλός μαθητής να την πατήσει
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

gpapargi

2 λόγια όχι τεχνικά αλλά ως προς τη φιλοσοφία της άσκησης.

Το είχα πει και τότε και το ξαναλέω και τώρα: Αυτό το θέμα των εξετάσεων ήταν άστοχο.
Κι αυτό γιατί τα υποπρογράμματα υπάρχουν για να κάνουν τη σκέψη ευκολότερη στην επίλυση ενός προβλήματος και όχι για να προσθέτουν έξτρα δυσκολία.

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

Αντίθετα το να κάνεις με διαδικασία κάτι που έχει ήδη γίνει με συνάρτηση, ή το να κάνεις χωρίς υποπρόγραμμα κάτι που είναι ήδη με υποπρόγραμμα είναι απλώς συντακτικός έλεγχος και δεν έχει καμία σχέση με τη φιλοσοφία του τμηματικού προγραμματισμού. Γεμίζει το σκεπτόμενο μαθητή με την δίκαιη απορία: «Μα γιατί να το κάνουμε αυτό αφού είναι δυσκολότερο;» Και φυσικά στην πράξη δεν πρόκειται ποτέ μα ποτέ να χρειαστεί κάτι τέτοιο.

Κατά τη γνώμη μου εμείς στο στέκι πρέπει να κριτικάρουμε τέτοια θέματα και να μην τα αναπαράγουμε… και όχι να πέφτουμε στη λούμπα «έπεσε στις πανελλήνιες, άρα ας το πάμε ένα βήμα παραπέρα». Έχω πέσει σε αυτή τη λούμπα, αλλά τώρα πιστεύω ότι πρέπει πάνω από όλα να βάζουμε το παιδαγωγικό και το επιστημονικό ζήτημα και όχι τις εξετάσεις.

Νίκος Αδαμόπουλος

#5
Παράθεση από: evry στις 06 Μαΐου 2009, 09:49:22 ΠΜ
Το ότι το θέμα επιλέχθηκε από την επιτροπή δεν σημαίνει τίποτα. Αντίθετως μάλιστα με αυτά που έχουμε δει ως τώρα. Δεν είναι θέμα αν είναι λάθος η όχι. Το θέμα είναι πως δεν διευκρινίζεται τι είναι, ξεκάθαρα μέσα στο βιβλίο. Για παράδειγμα φαντάσου να έδινες μια συνάρτηση η οποια να διάβαζε κάτι. Θα ήταν λάθος? και αν ναι τι λάθος θα ήταν? Θέλω να πω ότι υπάρχουν ασάφειες και σκοτεινά σημεία στο βιβλίο. Δεν πρέπει λοιπόν να μπαίνουν θέματα τα οποια αγγίζουν τα σημεία αυτά γιατί μπορεί ένας καλός μαθητής να την πατήσει

Δεν υπεραμύνομαι της λογικής των θεμάτων των εξετάσεων. Ωστόσο, πιστεύω ότι και για τα δύο ζητήματα που θέτεις (1. αλλαγή τυπικών παραμέτρων σε συνάρτηση, και 2. Διάβασμα μέσα σε συνάρτηση), ασχέτως των προσωπικών μας απόψεων (και της δικής μου συμπεριλαμβανομένης), στα χρόνια που πέρασαν αυτά τα έχουμε ξεκαθαρίσει.
Εγώ, τουλάχιστον για τους σκοπούς του μαθήματος, τα έχω υιοθετήσει: 1. Επιτρέπεται αλλαγή των τυπικών παραμέτρων στις συναρτήσεις μόνο που δεν επιστρέφουν πίσω οι αλλαγές, 2. Δεν επιτρέπεται Διάβασμα και Γράψε μέσα σε συνάρτηση.

Παράθεση από: gpapargi στις 06 Μαΐου 2009, 10:00:05 ΠΜ
Οι σωστές ασκήσεις στα υποπρογράμματα είναι αυτές που δείχνουν πως ένα αρχικά δύσκολο πρόβλημα γίνεται σημαντικά απλούστερο με τη χρήση υποπρογραμμάτων. Σε αυτές τα υποπρογράμματα είναι αναγκαία και δικαιολογούν πλήρως τη χρήση τους.

Αντίθετα το να κάνεις με διαδικασία κάτι που έχει ήδη γίνει με συνάρτηση, ή το να κάνεις χωρίς υποπρόγραμμα κάτι που είναι ήδη με υποπρόγραμμα είναι απλώς συντακτικός έλεγχος και δεν έχει καμία σχέση με τη φιλοσοφία του τμηματικού προγραμματισμού. Γεμίζει το σκεπτόμενο μαθητή με την δίκαιη απορία: «Μα γιατί να το κάνουμε αυτό αφού είναι δυσκολότερο;»

Ωστόσο, σε όλα τα θέματα (3ο και 4ο) πανελληνίων όπου έπρεπε οι μαθητές να φτιάξουν ένα υποπρόγραμμα, υπήρχε κλήση σε αυτό μόνο από ένα σημείο του κύριου προγράμματος, γεγονός που απλά αύξανε την πολυπλοκότητα της λύσης αφού θα έπρεπε οι μαθητές να διαχειριστούν και το θέμα της κλήσης και του περάσματος των παραμέτρων. Κατά τα άλλα το ίδιο το υποπρόγραμμα δεν προσέφερε τίποτα στην λύση.

Παράθεση από: gpapargi στις 06 Μαΐου 2009, 10:00:05 ΠΜ
Κατά τη γνώμη μου εμείς στο στέκι πρέπει να κριτικάρουμε τέτοια θέματα και να μην τα αναπαράγουμε… και όχι να πέφτουμε στη λούμπα «έπεσε στις πανελλήνιες, άρα ας το πάμε ένα βήμα παραπέρα». Έχω πέσει σε αυτή τη λούμπα, αλλά τώρα πιστεύω ότι πρέπει πάνω από όλα να βάζουμε το παιδαγωγικό και το επιστημονικό ζήτημα και όχι τις εξετάσεις.

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

Και τέλος πάντως δεν είναι απαραίτητο να συμφωνούμε και σε όλα! Αλλιώς τότε δεν έχει νόημα η ύπαρξη του forum...

evry

  Θα διαφωνήσω με την κατηγοριοποίηση που κάνεις. Αν θεωρείς λάθος το Διάβασε μέσα σε συνάρτηση τότε για τον ίδιο ακριβώς λόγο πρέπει να θεωρήσεις λάθος και την απόδοση τιμής σε μια παράμετρο μέσα στη συνάρτηση και εξηγώ το σκεπτικό μου.
  Το βιβλίο δε λέει πουθενά ούτε απαγορεύεται να διαβάζεις ή να γράφεις σε μια συνάρτηση ρητά. Αυτό το εξάγουμε από τα συμφραζόμενα αφού στη σελίδα 210 λέει ότι

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


ενώ παρακάτω λέει ότι

Αντίθετα η λειτουργία των συναρτήσεων είναι πιο περιορισμένη. Οι συ-
ναρτήσεις υπολογίζουν μόνο μία τιμή, αριθμητική, χαρακτήρα ή λογική και
μόνο αυτήν επιστρέφουν στο υποπρόγραμμα που την κάλεσε.


Δηλαδή οι συναρτήσεις όχι μόνο επιστρέφουν μόνο μια τιμή αλλά και υπολογίζουν μόνο μια τιμή. Αν αυτό το πάρουμε και το εφαρμόσουμε κατά γράμμα τότε αυτό σημαίνει ότι στο σώμα της συνάρτησης δε μπορεί να υπολογίζεται τίποτα άλλο άσχετα αν αυτό επιστρέφεται ή όχι στο κύριο πρόγραμμα. Δεν ξεκαθαρίζει αν αυτό είναι συντακτικό λάθος ή θεωρείται κακή πρακτική. Έτσι εμείς κάνουμε  μόνο υποθέσεις. Δεν μπορούμε να είμαστε κατηγορηματικοί.
   Γιατί αν εμείς πούμε στους μαθητές ότι είναι λάθος μετά δεν θα μπορούμε να αιτιολογήσουμε τι λάθος είναι. Υπάρχει άραγε κάποια γλώσσα στην οποία να ισχύει κάτι τέτοιο???? Αν ξέρει κανείς θα είχε ενδιαφέρον να μάθουμε.
   Με τα παραπάνω θέλω απλά να καταλήξω στο ότι δεν μπορούμε να είμαστε κατηγορηματικοί ούτε αν αυτά είναι λάθος  ούτε για το τι συμβαίνει αν αλλάξεις τις παραμέτρους μιας συνάρτησης. Μπορούμε απλά να υποθέσουμε τι είναι λογικό να συμβεί.
     Για αυτό το λόγο δε νομίζω ότι τέτοια θέματα μπορεί να μπαίνουν στις εξετάσεις όταν εμείς τα συζητάμε ακόμα μεταξύ μας.

Παρακάτω δίνω ένα παράδειγμα όπου ζητείται από έναν μαθητή να φτιάξει μια συνάρτηση που να υπολογίζει το μέγιστο για έναν πίνακα Βαθ[Ν]

Αυτό θα το θεωρούσατε σωστό?

ΣΥΝΑΡΤΗΣΗ Μέγιστο(Βαθ) : ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
     ΑΚΕΡΑΙΕΣ:Βαθ[Ν], χ, μεγ, ΜΟ, Σ
ΑΡΧΗ
     μεγ <- Βαθ[1]
     Σ <- μεγ
     ΓΙΑ χ ΑΠΟ 2 ΜΕΧΡΙ Ν
          Σ <- Σ + Βαθ[χ]
          ΑΝ Βαθ[χ] > μεγ ΤΟΤΕ
             μεγ <- Βαθ[χ]
          ΤΕΛΟΣ_ΑΝ 
     ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
      ΜΟ <- Σ / Ν
     Μέγιστο <- μεγ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ


Παράθεση από: Νίκος Αδαμόπουλος στις 06 Μαΐου 2009, 12:28:29 ΜΜ
Δεν υπεραμύνομαι της λογικής των θεμάτων των εξετάσεων. Ωστόσο, πιστεύω ότι και για τα δύο ζητήματα που θέτεις (1. αλλαγή τυπικών παραμέτρων σε συνάρτηση, και 2. Διάβασμα μέσα σε συνάρτηση), ασχέτως των προσωπικών μας απόψεων (και της δικής μου συμπεριλαμβανομένης), στα χρόνια που πέρασαν αυτά τα έχουμε ξεκαθαρίσει.
Εγώ, τουλάχιστον για τους σκοπούς του μαθήματος, τα έχω υιοθετήσει: 1. Επιτρέπεται αλλαγή των τυπικών παραμέτρων στις συναρτήσεις μόνο που δεν επιστρέφουν πίσω οι αλλαγές, 2. Δεν επιτρέπεται Διάβασμα και Γράψε μέσα σε συνάρτηση.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

gpapargi

Παράθεση από: Νίκος Αδαμόπουλος στις 06 Μαΐου 2009, 12:28:29 ΜΜ
Ωστόσο, σε όλα τα θέματα (3ο και 4ο) πανελληνίων όπου έπρεπε οι μαθητές να φτιάξουν ένα υποπρόγραμμα, υπήρχε κλήση σε αυτό μόνο από ένα σημείο του κύριου προγράμματος, γεγονός που απλά αύξανε την πολυπλοκότητα της λύσης αφού θα έπρεπε οι μαθητές να διαχειριστούν και το θέμα της κλήσης και του περάσματος των παραμέτρων. Κατά τα άλλα το ίδιο το υποπρόγραμμα δεν προσέφερε τίποτα στην λύση.

Αυτό ακριβώς προσπαθούμε να εξηγήσουμε τόσο καιρό με τα διαγωνίσματα που φτιάχνει το στέκι. Το 2007 βάλαμε την υλοποίηση της δυναμοσειράς του συνημιτόνου με συνάρτηση παραγοντικού. Το 2008 βάλαμε προσομοίωση της Eurovision που η μια χώρα ψηφίζει την άλλη και συνάρτηση αναζήτησης. Kαι φέτος σάρωση σε σχήμα "Γ" με συνάρτηση. Κάθε φορά το υποπρόγραμμα έκοβε το πρόβλημα ακριβώς στη μέση... έβαζε το μέσα βρόχο μέσα στο υποπρόγραμμα και τον εξωτερικό στο κυρίως πρόγραμμα απλουστεύοντας τη σκέψη και δίνοντας εικόνα ανάλυσης προβλήματος. Κάθε φορά το υποπρόγραμμα δικαιολογεί τη χρήση του. Πχ να μια περυσινή κριτική που μιλάει για το θέμα 4 (Eurovision)
"[...] και στο 4ο είπαν επιτέλους  γράψαμε συνάρτηση για να μν γράφουμε πάλι τον ίδιο κώδικα"
https://alkisg.mysch.gr/steki/index.php?topic=1260.msg8681#msg8681
 
Παράθεση από: Νίκος Αδαμόπουλος στις 06 Μαΐου 2009, 12:28:29 ΜΜ
Συνάδελφοι μου φαίνεται ότι υπερβάλετε λιγάκι! Δηλαδή, να μην προετοιμάσουμε κατάλληλα τους μαθητές ώστε να μπορούν να αντιμετωπίσουν κάτι παρόμοιο στις εξετάσεις; Εσείς δηλαδή, στους μαθητές σας δεν έχετε πει τίποτα; Δεν το πιστεύω!

Έχουμε πει... προφανώς... και δυστυχώς. Αφού έπεσε είναι δυνατόν να μην πούμε; Απλά λέω να μην το αναπαράγουμε. Δηλαδή δεν το προτείνουμε δημόσια κλπ. Αν για παράδειγμα προτείνουμε ασκήσεις είναι σα να λέμε και ότι είναι καλές και θα έπρεπε να πέφτουν. Κατά τη γνώμη μου το σωστό είναι όταν προτείνουμε θέματα και τα αναφέρουμε δημόσια να περιοριζόμαστε σε θέματα σωστά από παιδαγωγική και επιστημονική άποψη.

Νίκος Αδαμόπουλος

Παράθεση από: gpapargi στις 06 Μαΐου 2009, 01:40:24 ΜΜ
Αν για παράδειγμα προτείνουμε ασκήσεις είναι σα να λέμε και ότι είναι καλές και θα έπρεπε να πέφτουν. Κατά τη γνώμη μου το σωστό είναι όταν προτείνουμε θέματα και τα αναφέρουμε δημόσια να περιοριζόμαστε σε θέματα σωστά από παιδαγωγική και επιστημονική άποψη.

Μα..... σε κάποιο άλλο post... δεν είχαμε πει να ανεβάζουμε ό,τι νομίζουμε ότι δεν πρέπει να πέσει ώστε να το δει η επιτροπή και να μην το βάλει;;;  >:D

Κι εγώ πάνω είπα ότι είναι "τραβηγμένο" για εξετάσεις...

Όμως, κι από την άλλη τι θα πούμε σε έναν μαθητή ή στους γονείς του αν πέσει γενικά κάποιο θέμα για το οποίο εμείς δεν συμφωνούμε; "Μα τι θέματα έβαλαν αυτοί οι άσχετοι!;", "Το σκεφτόμουν αυτό το θέμα αλλά δεν το ανέφερα στα παιδιά γιατί δεν με βρίσκει σύμφωνο!", "Εγώ ασχολούμαι μόνο με σοβαρά θέματα που προάγουν την επιστημονική, κριτική και την αλγοριθμική σκέψη...". Όσο κι αν δεν μας αρέσει, αυτή είναι η πεζή πραγματικότητα...

Παρόλα αυτά εγώ συνεχίζω να θεωρώ ότι δεν υπάρχει λάθος παιδαγωγικό ούτε επιστημονικό στο παραπάνω αλλά ότι βοηθάει στην κατανόηση του μηχανισμού κλήσης των υποπρογραμμάτων... :angel:

Νίκος Αδαμόπουλος

Παράθεση από: evry στις 06 Μαΐου 2009, 01:32:00 ΜΜ
  Θα διαφωνήσω με την κατηγοριοποίηση που κάνεις. Αν θεωρείς λάθος το Διάβασε μέσα σε συνάρτηση τότε για τον ίδιο ακριβώς λόγο πρέπει να θεωρήσεις λάθος και την απόδοση τιμής σε μια παράμετρο μέσα στη συνάρτηση και εξηγώ το σκεπτικό μου.

Καταλαβαίνω απόλυτα το σκεπτικό σου... όμως μετά από όσα έχουν ειπωθεί (εδώ στο Στέκι ή και αλλού), τελικά εσύ στα παιδιά τι λες για το Διάβασμα και το Γράψε μέσα στη Συνάρτηση; Να τα χρησιμοποιούν ή όχι; Εγώ θεωρώ το ζήτημα αυτό κλεισμένο πλέον!

Ως προς το πέρασμα των παραμέτρων σε Διαδικασία και σε Συνάρτηση (για το αν επιστρέφουν πίσω οι τιμές των παραμέτρων) δεν προκύπτει ανακολουθία με αυτό που ισχύει σε διάφορες γλώσσες (πέρασμα κατά αναφορά, κατά τιμή, κατά τιμή/αποτέλεσμα... - έχεις κάνει και εργασία πάνω σε αυτό: με την ευκαιρία, την έχω πρώτη πρώτη: βλ. http://dide.ilei.sch.gr/keplinet/education/info-gel.php). Γιατί όμως να απαγορεύεται να μεταβληθεί η τιμή των τυπικών παραμέτρων (ασχέτως αν δεν επιστρέφουν πίσω); Το ίδιο θα ρωτήσω κι εγώ: Υπάρχει καμία γλώσσα προγραμματισμού που σε κλήση κατά τιμή να απαγορεύεται η μεταβολή αυτών των τιμών;

Νίκος Αδαμόπουλος

Παράθεση από: evry στις 06 Μαΐου 2009, 01:32:00 ΜΜ
Παρακάτω δίνω ένα παράδειγμα όπου ζητείται από έναν μαθητή να φτιάξει μια συνάρτηση που να υπολογίζει το μέγιστο για έναν πίνακα Βαθ[Ν]

Αυτό θα το θεωρούσατε σωστό?

ΣΥΝΑΡΤΗΣΗ Μέγιστο(Βαθ) : ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
     ΑΚΕΡΑΙΕΣ:Βαθ[Ν], χ, μεγ, ΜΟ, Σ
ΑΡΧΗ
     μεγ <- Βαθ[1]
     Σ <- μεγ
     ΓΙΑ χ ΑΠΟ 2 ΜΕΧΡΙ Ν
          Σ <- Σ + Βαθ[χ]
          ΑΝ Βαθ[χ] > μεγ ΤΟΤΕ
             μεγ <- Βαθ[χ]
          ΤΕΛΟΣ_ΑΝ 
     ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
      ΜΟ <- Σ / Ν
     Μέγιστο <- μεγ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ



(υποθέτουμε ότι το Ν είναι σταθερά;)

Αναφέρεσαι στο ότι υπολογίζεις και το ΜΟ (δεύτερο αποτέλεσμα παρόλο που και δεν το επιστρέφεις);

Είναι μια χαρά!  >:D

Νίκος Αδαμόπουλος

Παράθεση από: gpapargi στις 06 Μαΐου 2009, 01:40:24 ΜΜ
Αυτό ακριβώς προσπαθούμε να εξηγήσουμε τόσο καιρό με τα διαγωνίσματα που φτιάχνει το στέκι...

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

evry

Ένα λεπτό να ξκαθαρίσουμε κάποια πράγματα
Αποτρέπουμε πάντα τα παιδιά από πράξεις οι οποίες θα τους κοστίσουν έστω και μισή μονάδα. Για αυτόν ακριβώς τον λόγο δε μπορεί και η επιτροπή να βάζει αντίστοιχα θέματα. Εκεί ήθελα να καταλήξω. Προφανώς και συμβουλεύεις τους μαθητές να μην χρησιμοποιούν Διάβασε και Γράψε μέσα σε συνάρτηση. Όπως και τους συμβουλεύεις να μην πειράζουν τις τιμές των παραμέτρων της συνάρτησης αφού δεν υπάρχει λόγος.

(Στο παράδειγμα που έδωσα το Ν είναι σταθερά.)
Δεν υπολογίζει 2 διαφορετικά πράγματα? Δεν θα έπρεπε να εκληφθεί ως λάθος? Και να κάνω και μια άλλη ερώτηση.
Ένας άλλος μαθητής δίνει την παρακάτω συνάρτηση

ΣΥΝΑΡΤΗΣΗ ΔιάβασεΑποδεκτόΑριθμό(κάτω, πάνω) : ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
     ΑΚΕΡΑΙΕΣ:κάτω, πάνω
     ΠΡΑΓΜΑΤΙΚΕΣ: αριθμός
ΑΡΧΗ
     ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
            ΔΙΑΒΑΣΕ αριθμός
     ΜΕΧΡΙΣ_ΟΤΟΥ αριθμός >= κάτω ΚΑΙ αριθμός <= πάνω ΚΑΙ Α_Μ(αριθμός) = αριθμός
     ΔιάβασεΑποδεκτόΑριθμό <- Α_Μ(αριθμός)
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ


Ποιος από τους 2 μαθητές έχει κατανοήσει καλύτερα τις βασικές αρχές του τμηματικού προγραμματισμού? ο 1ος ή ο 2ος?

Δηλαδή ο υπολογισμός 2 διαφορετικών αποτελεσμάτων μέσα σε μια συνάρτηση είναι κατά τη γνώμη μου με βάση αυτά που λέει το βιβλίο περισσότερο λάθος από τη χρήση Διάβασε μέσα σε συνάρτηση, γιατί το 1ο παραβιάζει και τις βασικές αρχές του τμηματικού προγραμματισμού ενώ το 2ο όχι.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Νίκος Αδαμόπουλος

#13
Παράθεση από: evry στις 06 Μαΐου 2009, 06:36:06 ΜΜ
... Προφανώς και συμβουλεύεις τους μαθητές να μην χρησιμοποιούν Διάβασε και Γράψε μέσα σε συνάρτηση. Όπως και τους συμβουλεύεις να μην πειράζουν τις τιμές των παραμέτρων της συνάρτησης αφού δεν υπάρχει λόγος.

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

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

Ελπίζω να μη μου χρεωθεί η "κακή" ιδέα αν ποτέ βάλει η επιτροπή θέμα σαν το παραπάνω... ::)

evry

Παράθεση από: Νίκος Αδαμόπουλος στις 06 Μαΐου 2009, 03:37:44 ΜΜ
Ως προς το πέρασμα των παραμέτρων σε Διαδικασία και σε Συνάρτηση (για το αν επιστρέφουν πίσω οι τιμές των παραμέτρων) δεν προκύπτει ανακολουθία με αυτό που ισχύει σε διάφορες γλώσσες (πέρασμα κατά αναφορά, κατά τιμή, κατά τιμή/αποτέλεσμα... - έχεις κάνει και εργασία πάνω σε αυτό: με την ευκαιρία, την έχω πρώτη πρώτη: βλ. http://dide.ilei.sch.gr/keplinet/education/info-gel.php).
Ευχαριστώ πολύ, τώρα που το λες καλή ιδέα για αντίστοιχη εργασία πάνω στα υποπρογράμματα. Ίσως του χρόνου

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

Στη C++ όταν θες να μην τροποποιηθεί η παράμετρος την περνάς by value. Έτσι όμως γίνεται αντίγραφο μέσα και αυτό σου κοστίζει στην απόδοση, ειδικά αν η κλήση της συνάρτησης γίνεται πολλές φορές. Έτσι περνάς όλες τις παραμέτρους κατ'αναφορά. Δεν θέλεις όμως να μπορούν να τροποποιηθούν μέσα στη συνάρτηση γιατί σε αυτή την περίπτωση η αλλαγή θα μεταφερθεί στο κύριο πρόγραμμα έτσι τις ορίζεις const, και αν πάει κάποιος να τις τροποποιήσει του χτυπάει λάθος. Αυτός είναι ένας τρόπος αναφοράς που έχει η C++, θα μπορούσαμε να τον ονομάσουμε const-by-reference. Το ίδιο const-by-reference χρησιμοποιείται ώστε να μην επιστρέφεται reference σε private member μιας κλάσης (συγγνώμη για την αγγλική ωρολογία)

int myFunction( const String &word)


Παράθεση
Παρόλα αυτά εγώ συνεχίζω να θεωρώ ότι δεν υπάρχει λάθος παιδαγωγικό ούτε επιστημονικό στο παραπάνω αλλά ότι βοηθάει στην κατανόηση του μηχανισμού κλήσης των υποπρογραμμάτων... :angel:
Που θα πάει, θα σου αλλάξουμε γνώμη :D

What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

alkisg

Το const δεν είναι μόνο για όταν περνιούνται με αναφορά, είναι και για όταν περνιούνται με τιμή:
Κώδικας: C
int f(const int p)
{
	p = 2;

	return p;
}

int main(void)
{
	return f(1);
}


Προσπάθεια για μεταγλώττισή του βγάζει:
Κώδικας: shell
alkisg@alkis:~/tmp/test-const.c$ gcc test-const.c -o test-const
test-const.c: In function ‘f’:
test-const.c:3: σφάλμα: assignment of read-only location ‘p’


Το const δηλαδή υπάρχει για να προφυλάξει τους προγραμματιστές από τον εαυτό τους, μην τυχόν ξεχάσουν ότι μια συγκεκριμένη παράμετρος δεν πρέπει να πειραχτεί,
ακριβώς επειδή το default είναι να τις πειράζουν χωρίς ...τύψεις. :)


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

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

Παράθεση από: evry στις 06 Μαΐου 2009, 07:55:15 ΜΜ
για να μην έχει παρέμβει ακόμα ο Άλκης ή δεν το έχει δει ή δεν υπάρχει
;D Τρέχω με τον οδηγό εγκατάστασης Ubuntu 9.04 / LTSP  :-\

klitos

Παράθεση από: evry στις 06 Μαΐου 2009, 01:32:00 ΜΜ
  Θα διαφωνήσω με την κατηγοριοποίηση που κάνεις. Αν θεωρείς λάθος το Διάβασε μέσα σε συνάρτηση τότε για τον ίδιο ακριβώς λόγο πρέπει να θεωρήσεις λάθος και την απόδοση τιμής σε μια παράμετρο μέσα στη συνάρτηση και εξηγώ το σκεπτικό μου.
  Το βιβλίο δε λέει πουθενά ούτε απαγορεύεται να διαβάζεις ή να γράφεις σε μια συνάρτηση ρητά. Αυτό το εξάγουμε από τα συμφραζόμενα αφού στη σελίδα 210 λέει ότι
Επειδη θεωρω οτι το εχουμε εξαντλησει αλλα και για να βαλουμε ενα τελος επιτελους δειτε τα παρακατω
Σελιδα 212 ..εφοσον απαιτειται απο αυτο η εκτελεσης της λειτουργιας της εκτυπωσης πρεπει να υλοποιηθεί με διαδικασία.
Επισης σελιδα 211 ... αφου το υποπρογραμμα πρεπει να διαβάζει δεδομενα υλοποιειται με διαδικασία

Το οτι υπολογιζει μια μονο τιμη η συναρτηση ( την οποια επιστρεφει) σημαινει προφανως οτι ο τελικος στοχος ειναι ο υπολογισμος μιας τιμης που θα επιστραφει και οχι αποκλειστικα υπολογισμος μονο μιας τιμης... δηλαδη για να υπολογισει την τιμη που θα επιστρεψει η συναρτηση μπορουν σαφως να γινουν και αλλοι υπολογισμοι
κλητος χατζηγεωργιου

evry

  Ξαναλέω ότι γενικά δεν χρησιμοποιούμε εντολές εισόδου/εξόδου μέσα σε συνάρτηση, από τη στιγμή που το λέει το βιβλίο. Επειδή όμως δεν κάνουμε Θρησκευτικά, στα οποία πιστεύουμε σε κάποιο δόγμα και δεν μπορούμε να το αμφισβητήσουμε, αλλά πληροφορική στην οποία πρέπει να μπορούμε να εξηγήσουμε στους μαθητές το αντικείμενο και να μπορούμε να τους αιτιολογήσουμε πλήρως γιατί δεν πρέπει να κάνουν κάποια πράγματα, απαντήσεις του στυλ "επειδή έτσι το λέει το βιβλίο" ΄ή επειδή "έτσι πρέπει" δε νομίζω ότι έχουν καμία θέση στο σχολείο.
    Το βιβλίο λέει ότι  πρέπει να υλοποιηθεί με διαδικασία και εγώ σαν ένας σκεπτόμενος μαθητής ρωτάω "Γιατί?". Απαντάει το βιβλίο σε αυτή την ερώτηση? Μπορεί κάποιος καθηγητής να δώσει στον μαθητή αυτόν μια πειστική απάντηση?
     Και κάνω την ίδια ερώτηση που έχω κάνει πολλές φορές στο στέκι. Αν κάποιος χρησιμοποιήσει Διάβασε μέσα σε συνάρτηση τι λάθος κάνει? Είναι συντακτικό? είναι λογικό? Ξέρει κανείς τι λάθος είναι?
ή μήπως παραβιάζει τους κανόνες του τμηματικού προγραμματισμού? Φαντάζομαι θα απαντήσετε ότι δεν ισχύει τίποτα από όλα αυτά.

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

Όπως κατάλαβες εγώ θεωρώ ότι δεν έχουμε εξαντλήσει καθόλου το θέμα και ότι δεν έχει μπει κανένα τέλος.
Παράθεση από: klitos στις 08 Μαΐου 2009, 10:51:37 ΠΜ

Επειδη θεωρω οτι το εχουμε εξαντλησει αλλα και για να βαλουμε ενα τελος επιτελους δειτε τα παρακατω
Σελιδα 212 ..εφοσον απαιτειται απο αυτο η εκτελεσης της λειτουργιας της εκτυπωσης πρεπει να υλοποιηθεί με διαδικασία.
Επισης σελιδα 211 ... αφου το υποπρογραμμα πρεπει να διαβάζει δεδομενα υλοποιειται με διαδικασία

Το οτι υπολογιζει μια μονο τιμη η συναρτηση ( την οποια επιστρεφει) σημαινει προφανως οτι ο τελικος στοχος ειναι ο υπολογισμος μιας τιμης που θα επιστραφει και οχι αποκλειστικα υπολογισμος μονο μιας τιμης... δηλαδη
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

P.Tsiotakis

Η συζήτηση μπορεί να είναι ατέρμονη, αλλά οι συναρτήσεις δε μπορούν να μην έχουν παραμέτρους
επίσης δε μπορούν να περιλαμβάνουν εντολές εσόδου - εξόδου

Νίκος Αδαμόπουλος

Μου χαλάσατε το θέμα  >:(    **&**&^*&^&*%&^$#$#%

Εγώ δεν έβαλα εντολές εισόδου - εξόδου στη συνάρτηση. Επίσης, έχω βάλει παραμέτρους...

Νίκος Αδαμόπουλος

Παράθεση από: alkisg στις 06 Μαΐου 2009, 11:55:24 ΜΜ
Επομένως προσωπικά δεν θα το χρησιμοποιούσα σε άσκηση όχι γιατί μπορεί κάποιος να το έπιανε λάθος αλλά για να μη ζαλίζω τους μαθητές με τέτοιες "λεπτομέρειες".

Έλα όμως που όλα τα θέματα που έχουν πέσει ως ασκήσεις σε υποπρογράμματα, είτε ώς Θέμα 1, Θέμα 2, Θέμα 3 & Θέμα 4, αυτό ακριβώς εξέταζαν/αποσκοπούσαν!!! Δηλαδή στις λεπτομέρειες της κλήσης και της μεταβίβασης/επιστροφής των παραμέτρων...

alkisg

Παράθεση από: Νίκος Αδαμόπουλος στις 08 Μαΐου 2009, 03:11:59 ΜΜ
Έλα όμως που όλα τα θέματα που έχουν πέσει ως ασκήσεις σε υποπρογράμματα, είτε ώς Θέμα 1, Θέμα 2, Θέμα 3 & Θέμα 4, αυτό ακριβώς εξέταζαν/αποσκοπούσαν!!! Δηλαδή στις λεπτομέρειες της κλήσης και της μεταβίβασης/επιστροφής των παραμέτρων...

Αυτό το σφάλμα βαρύνει την επιτροπή και κανέναν άλλο.
Εφόσον βλέπουν ότι το συγκεκριμένο σημείο του βιβλίου είναι ασαφές, γιατί το εξετάζουν;
Για να εξετάσουν εάν ο μαθητής είναι διαβασμένος;
Για να εξετάσουν εάν ο καθηγητής του είναι διαβασμένος και του τα εξήγησε σωστά;
Ή για να εξετάσουν εάν ο καθηγητής του "μάντεψε" και δίδαξε την απάντηση που ήθελε η επιτροπή;

Δυστυχώς με τέτοια θέματα αυτό που πραγματικά εξετάζουν είναι το τρίτο, και έτσι καλοί μαθητές χάνουν μονάδες χωρίς λόγο.

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

evry

 Ο Άλκης έχει απόλυτο δίκιο. Ο προγραμματισμός είναι ένα δύσκολο αντικείμενο για να το παρουσιάσεις στην δευτεροβάθμια, πόσο μάλλον για να έχεις ένα τέτοιο πανελλαδικώς εξεταζόμενο μάθημα. Το βιβλίο είναι γεμάτο λάθη και ασάφειες. Μπορεί οι συγγραφείς να είχαν πίεση χρόνου, ή μπορεί να μην ήξεραν ότι το μάθημα προορίζεται για πανελλαδικό, ίσως να έχουν κάποιο ελαφρυντικό, δεν ξέρω.
  Αυτό που ξέρω όμως είναι ότι κάθε χρόνο συζητάμε τα ίδια και τα ίδια θέματα και μερικές φορές προκύπτουν και καινούργια, στα οποία διαφωνούμε. Τα θέματα αυτά είναι κάτι σαν γκρίζες ζώνες ας πούμε του βιβλίου. Θα περίμενε κανείς ότι οι θεματοδότες δεν θα άγγιζαν ποτέ τέτοια θέματα. Και όμως, αρκετές φορές έχουν βάλει τέτοια θέματα ειδικά στη θεωρία. Τι να πω, επίτηδες το κάνουν ???
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Νίκος Αδαμόπουλος

#23
Παράθεση από: alkisg στις 08 Μαΐου 2009, 04:58:48 ΜΜ
Αυτό το σφάλμα βαρύνει την επιτροπή και κανέναν άλλο.
Εφόσον βλέπουν ότι το συγκεκριμένο σημείο του βιβλίου είναι ασαφές, γιατί το εξετάζουν;

Εγώ πάντως δεν το βλέπω να είναι ασαφές! Και ενώ αρχικά σοκαρίστηκα με την υποψία ότι μπορεί μόνο εγώ να το πιστεύω αυτό, άρα ότι είμαι τόσο λάθος, τελικά βλέπω ότι υπάρχουν και διαφορετικές απόψεις άλλων συναδέλφων πιο πάνω ή και στην παράλληλη κουβέντα που γίνεται στο https://alkisg.mysch.gr/steki/index.php?topic=1839 - π.χ. του Παναγιώτη - και τώρα άρχισα να ξαναβρίσκω το χρώμα μου!

Το να λέμε συνεχώς να μην μπει θέμα από εδώ, να μην μπει θέμα από εκεί, τελικά έχουμε βγάλει off όλο το βιβλίο! Υπάρχουν βέβαια ασαφή σημεία αλλά όχι και τόσα πολλά και δε νομίζω ότι προκαλούν τόσα προβλήματα...

Μα τόσο αιρετική ήταν η άσκησή μου που το κάναμε τόσο θέμα;

Ήταν μια ιδέα που μου ήρθε κατά τη διάρκεια ενός μαθήματος, τη δοκίμασα επιτόπου, μαθητές λίγο άνω του μετρίου επιπέδου βρήκαν μόνοι τους και σχετικά άνετα τη σωστή λύση την οποία διατύπωσαν ολόκληρη προφορικά, σπαταλώντας συνολικό χρόνο <10 λεπτά από το μάθημα. Αποκόμισα την εντύπωση ότι άξιζε τον κόπο και θέλησα να μεταφέρω την εμπειρία μου στο Στέκι. Συνεχίζω να μη νιώθω τύψεις για αυτό που έκανα...  >:D

Αν είναι να πιστεύουμε ότι αναρτώντας κάτι, τότε το νομιμοποιούμε και μπορεί να το πάρει η επιτροπή και να το βάλει ως θέμα, τότε sorry αλλά πιστεύω (προσωπική άποψη) ότι υπάρχουν ήδη πολλά θέματα αναρτημένα, πολύ ωραία μεν, αλλά που δεν κάνουν για εξετάσεις μαθητών 3ης Λυκείου, σε δίωρο (και όχι τετράωρο όπως πολλοί θεωρούν!) μάθημα στην ΑΕΠΠ...