Αποστολέας Θέμα: ΣΩΣΤΟ - ΛΑΘΟΣ στα υποπρογράμματα  (Αναγνώστηκε 14069 φορές)

petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2219
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

Αθανάσιος Πέρδος

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 288
Απ: ΣΩΣΤΟ - ΛΑΘΟΣ στα υποπρογράμματα
« Απάντηση #16 στις: 14 Μάι 2015, 02:04:56 πμ »
http://alkisg.mysch.gr/steki/index.php?topic=912.msg8645#msg8645

Είναι κάτι επίσημο αυτό; Έχει σταλεί στα σχολεία; Υπάρχει στο υπουργείο αναρτημένο; Αν έχεις το έγγραφο σε παρακαλώ το ανεβάζεις;

kpapad13

  • Νέος
  • *
  • Μηνύματα: 6
Απ: ΣΩΣΤΟ - ΛΑΘΟΣ στα υποπρογράμματα
« Απάντηση #17 στις: 14 Μάι 2015, 09:27:19 πμ »
Άνοιξα αυτό το θέμα όχι τόσο για να ξακαθαρίσει ο τρόπος λειτουργίας των υποπρογραμμάτων (αυτό είναι άλλη ιστορία) αλλά για την απάντηση που θα πρέπει να δοθεί σε ένα τέτοιο Σ-Λ. Υπάρχει ιστορικό με τέτοια θέματα "παίρνω μια πρόταση από το βιβλίο και τη βάζω σαν Σ-Λ". Άρα η απάντηση είναι "Σωστό για το λέει το βιβλίο";
Ας ελπίσουμε η επιλογή των θεμάτων να γίνει προσεκτικά και να μην έχουμε τέτοια προβλήματα...

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2450
  • I 'm not young enough to know everything
Απ: ΣΩΣΤΟ - ΛΑΘΟΣ στα υποπρογράμματα
« Απάντηση #18 στις: 14 Μάι 2015, 11:23:26 πμ »
Στις πανελλήνιες του 2007 είχε πέσει στο θέμα 1Β2
"Για ποιες από τις παρακάτω περιπτώσεις μπορεί να χρησιμοποιηθεί συνάρτηση:

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

Από ότι θυμάμαι είχε δοθεί ως οδηγία βαθμολόγησης ότι σωστά είναι τα β,δ,στ.

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


ολγα

  • Βετεράνος
  • ****
  • Μηνύματα: 70
Απ: ΣΩΣΤΟ - ΛΑΘΟΣ στα υποπρογράμματα
« Απάντηση #19 στις: 14 Μάι 2015, 07:19:07 μμ »
"Κάθε διαδικασία ή συνάρτηση μπορεί να καλείται από το κύριο πρόγραμμα ή από άλλη διαδικασία ή συνάρτηση Σε κάθε περίπτωση μετά το τέλος της εκτέλεσης της διαδικασίας ή της συνάρτησης γίνεται επιστροφή ακριβώς μετά το σημείο απ' όπου κλήθηκε." Έκδοση 2014, σελ 179

"Η τεχνική αυτή εφαρμόζεται και γενικότερα, δηλαδή οποτεδήποτε μία διαδικασία ή συνάρτηση καλεί μία διαδικασία ή συνάρτηση." Έκδοση 2014 σελ 182

Εδώ δεν υπάρχει γκρίζα ζώνη. Τα ελληνικά είναι σαφέστατα.
Προφανώς τα ελληνικά δεν είναι σαφέστατα. Η προσθήκη μπήκε μάλλον, γιατί προφανώς επιτρέπεται συνάρτηση να καλεί συνάρτηση (πράγμα που έλειπε από την παλιότερη έκδοση), αλλά τελικά αυτό δεν αποδόθηκε με σαφήνεια.


Το βιβλίο του καθηγητή που κατέβασα από τη διεύθυνση http://www.pi-schools.gr/content/index.php?lesson_id=1&ep=67&c_id=273 έχει ως απάντηση: Διαδικασία.
Όμως λίγο παρακάτω υπάρχει αρχείο word με διορθώσεις για το βιβλίο καθηγητή (το επισυνάπτω), που λέει να διορθωθεί η λέξη Διαδικασία με τη λέξη Συνάρτηση.


Η διόρθωση στο αρχείο word αφορά την ΔΤ2 Β και όχι την ΔΤ1 Β.
 
Εκεί αναφέρονται οι τελευταίες δύο διορθώσεις που αφορούν την ΔΤ2:

1. σελ. 203     η προτεινόμενη απάντηση ΔΤ2 Β) Διαδικασία, να γίνει        Β) Συνάρτηση

2. σελ.203-204     η προτεινόμενη απάντηση ΔΤ2 Β), να αντικατασταθεί με την εξής:   
ΔΙΑΔΙΚΑΣΙΑ Μικρότερο (Α, Β, Μικρ)
ΠΡΑΓΜΑΤΙΚΕΣ  Α, ΒΒ, Μικρ
ΑΡΧΗ
   ΑΝ Α < Β ΤΟΤΕ
      Μικρ <- Α
   ΑΛΛΙΩΣ
      Μικρ <- Β
   ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ Μικρότερο

Μάλιστα το αξιοσημείωτο σε αυτές τις διορθώσεις είναι ότι στην πρώτη λέει να γίνει        Β) Συνάρτηση
στη δεύτερη σωστά διορθώνεται το < , αλλά αφήνεται ΔΙΑΔΙΚΑΣΙΑ Μικρότερο και δε γίνεται Συνάρτηση (όπως προτείνεται στην πρώτη).

Τελικά με βάση το πνεύμα του βιβλίου δε νομίζω ότι είναι αποδεκτό συνάρτηση να καλεί διαδικασία (λόγω Διάβασε, όπως είπαν και άλλοι πιο πριν) 
« Τελευταία τροποποίηση: 14 Μάι 2015, 10:39:35 μμ από ολγα »

Αθανάσιος Πέρδος

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 288
Απ: ΣΩΣΤΟ - ΛΑΘΟΣ στα υποπρογράμματα
« Απάντηση #20 στις: 14 Μάι 2015, 11:01:07 μμ »
Προφανώς τα ελληνικά δεν είναι σαφέστατα.

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

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

Η διόρθωση στο αρχείο word αφορά την ΔΤ2 Β και όχι την ΔΤ1 Β.

Όντως γράφει στο word ΔΤ2 το οποίο προφανώς είναι λάθος. Το σωστό είναι ΔΤ1. Και εξηγώ γιατί. Το βιβλίο καθηγητή (έντυπη μορφή 1999) γράφει Διαδικασία. Το βιβλίο καθηγητή (έντυπη μορφή 2004) γράφει Συνάρτηση. Το 2004 είναι το διορθωμένο.

Εκεί αναφέρονται οι τελευταίες δύο διορθώσεις που αφορούν την ΔΤ2:
1. σελ. 203     η προτεινόμενη απάντηση ΔΤ2 Β) Διαδικασία, να γίνει        Β) Συνάρτηση
2. σελ.203-204     η προτεινόμενη απάντηση ΔΤ2 Β), να αντικατασταθεί με την εξής:   
ΔΙΑΔΙΚΑΣΙΑ Μικρότερο (Α, Β, Μικρ)
ΠΡΑΓΜΑΤΙΚΕΣ  Α, ΒΒ, Μικρ
ΑΡΧΗ
   ΑΝ Α < Β ΤΟΤΕ
      Μικρ <- Α
   ΑΛΛΙΩΣ
      Μικρ <- Β
   ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ Μικρότερο

Μάλιστα το αξιοσημείωτο σε αυτές τις διορθώσεις είναι ότι στην πρώτη λέει να γίνει        Β) Συνάρτηση
στη δεύτερη σωστά διορθώνεται το < , αλλά αφήνεται ΔΙΑΔΙΚΑΣΙΑ Μικρότερο και δε γίνεται Συνάρτηση (όπως προτείνεται στην πρώτη).

Στο βιβλίο καθηγητή (έντυπη 2004) δεν διορθώθηκε μόνο το <, αλλά άλλαξε και όνομα η μεταβλητή Μεγ σε Μικρ.
Όπως και να χει όταν εκτυπώνεται ένας καινούργιος διορθωμένος οδηγός, ο παλιός παύει να ισχύει.

Τελικά με βάση το πνεύμα του βιβλίου δε νομίζω ότι είναι αποδεκτό συνάρτηση να καλεί διαδικασία (λόγω Διάβασε, όπως είπαν και άλλοι πιο πριν) 

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

Στις πανελλήνιες του 2007 είχε πέσει στο θέμα 1Β2
"Για ποιες από τις παρακάτω περιπτώσεις μπορεί να χρησιμοποιηθεί συνάρτηση:
α. εισαγωγή ενός δεδομένου
β. υπολογισμός του μικρότερου από πέντε ακεραίους
γ. υπολογισμός των δύο μικρότερων από πέντε ακεραίους
δ. έλεγχος αν δύο αριθμοί είναι ίσοι
ε. ταξινόμηση πέντε αριθμών
στ. έλεγχος αν ένας χαρακτήρας είναι φωνήεν ή σύμφωνο."

Από ότι θυμάμαι είχε δοθεί ως οδηγία βαθμολόγησης ότι σωστά είναι τα β,δ,στ.
Κακώς Γιώργο και το εξηγώ παραπάνω. Μάλλον οι θεματοδότες δεν ήταν ενημερωμένοι για τις αλλαγές στο βιβλίο καθηγητή. Εκτός αν υπάρχει κάποια οδηγία που εγώ δεν μπορώ να την βρω.
« Τελευταία τροποποίηση: 14 Μάι 2015, 11:17:48 μμ από aperdos »

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3147
  • to Iterate is human to Recurse divine
Απ: ΣΩΣΤΟ - ΛΑΘΟΣ στα υποπρογράμματα
« Απάντηση #21 στις: 14 Μάι 2015, 11:52:07 μμ »
Όλγα το πρόβλημα στο συγκεκριμένο θέμα δεν είναι με το Διάβασε αλλά με το Γράψε.
Δηλαδή αν υποθέσουμε ότι όλα αυτά περί κλήσης διαδικασίας από συνάρτηση έχουν κάτι το ... ασαφές, σίγουρα θα πρέπει να δεχτούμε όλοι ότι
με βάση τον ορισμό της συνάρτησης κάθε συνάρτηση μπορεί να επιστρέφει μόνο μια τιμή.
Αυτό καταστρατηγείται αν η συνάρτηση έχει στο σώμα της Γράψε ή Διαδικασία που καλεί το Γράψε αφού και τα δυο αποτελούν κάποιου είδους έξοδο.
Δε λέω ότι δεν μπορεί συνάρτηση να καλέσει διαδικασία, αλλά είμαι σίγουρος με βάση το πνεύμα του βιβλίου ότι δεν είναι δυνατόν συνάρτηση να καλέσει διαδικασία που περιέχει Γράψε, αφού τότε θα παραβιάζεται ο ορισμός της συνάρτησης.

Το θέμα του 2007 που αναφέρει ο Γιώργος σε σχέση με την αντίστοιχη άσκηση από το τετράδιο μαθητή είναι ακριβώς ίδιο εκτός από μια ερώτηση την οποία έβγαλαν.
Αν δείτε την ερώτηση που "'έκοψαν" θα καταλάβετε και το σκεπτικό τους, τουλάχιστον όπως το υποθέτω εγώ.
« Τελευταία τροποποίηση: 15 Μάι 2015, 12:09:47 πμ από evry »
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Αθανάσιος Πέρδος

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 288
Απ: ΣΩΣΤΟ - ΛΑΘΟΣ στα υποπρογράμματα
« Απάντηση #22 στις: 15 Μάι 2015, 09:47:16 πμ »
Σίγουρα θα πρέπει να δεχτούμε όλοι ότι με βάση τον ορισμό της συνάρτησης κάθε συνάρτηση μπορεί να επιστρέφει μόνο μια τιμή.
Αυτό καταστρατηγείται αν η συνάρτηση έχει στο σώμα της Γράψε ή Διαδικασία που καλεί το Γράψε αφού και τα δυο αποτελούν κάποιου είδους έξοδο.
Δε λέω ότι δεν μπορεί συνάρτηση να καλέσει διαδικασία, αλλά είμαι σίγουρος με βάση το πνεύμα του βιβλίου ότι δεν είναι δυνατόν συνάρτηση να καλέσει διαδικασία που περιέχει Γράψε, αφού τότε θα παραβιάζεται ο ορισμός της συνάρτησης.

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

"Η εντολή ΓΡΑΨΕ έχει ως αποτέλεσμα την εμφάνιση τιμών στη μονάδα εξόδου. Συσκευή εξόδου μπορεί να είναι η οθόνη του υπολογιστή, ο εκτυπωτής, βοηθητική μνήμη ή γενικά οποιαδήποτε συσκευή εξόδου έχει οριστεί στο πρόγραμμα."

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

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

Όσο τώρα για το πνεύμα του σχολικού που συχνά αναφέρεται από πολλούς, θεωρώ ότι "πηγάζει" από τρεις προτάσεις του παραδείγματος 2 στη σελίδα 176 (Έκδοση 2014)
"Αφού το υποπρόγραμμα πρέπει να διαβάζει δεδομένα, υλοποιείται με διαδικασία. "
"Μπορεί λοιπόν να υλοποιηθεί με μία συνάρτηση, η οποία επιστρέφει έναν πραγματικό αριθμό."
"Εφόσον απαιτείται από αυτό η εκτέλεση της λειτουργίας της εκτύπωσης, πρέπει να υλοποιηθεί με διαδικασία."

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

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

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2450
  • I 'm not young enough to know everything
Απ: ΣΩΣΤΟ - ΛΑΘΟΣ στα υποπρογράμματα
« Απάντηση #23 στις: 15 Μάι 2015, 11:11:53 πμ »
Το 2007 είχε γίνει μεγάλη κουβέντα, συμμετείχε πολύ κόσμος  και κυρίως είχαν αναφερθεί όλα τα σχετικά σημεία στο διδακτικό πακέτο. Δεν υπήρχε διόρθωση που να είναι υπέρ της συνάρτησης. Αυτή θα πρέπει να ήρθε αργότερα. Για να καταλάβει κανείς τη συζήτηση που είχε γίνει τότε παραθέτω 2 links. Καλό είναι να διαβαστούν από την αρχή μέχρι το τέλος.
http://alkisg.mysch.gr/steki/index.php?topic=997.0
http://alkisg.mysch.gr/steki/index.php?topic=959.0
Το δεύτερο έχει τη μεγάλη συζήτηση
Από ότι θυμάμαι η προσωπική μου άποψη ήταν ότι η χρήση Διάβασε μέσα από συνάρτηση ήταν κακή τεχνική με βάση το σκοπό της συνάρτησης και τη φιλοσοφία του βιβλίου αλλά όχι απαραίτητα συντακτικό λάθος. Τελικά μετά το θέμα αυτό καθιερώθηκε η απαγόρευση της Διάβασε Γράψε μέσα σε συνάρτηση αφού οι πανελλήνιες σφραγίζουν πλέον το συγκεκριμένο ζήτημα. Δεν μπορούμε τη μια χρονιά να θεωρούμε την ίδια ερώτηση Σ και την άλλη Λ.
Προσωπικά αποκλείω το να υπήρχε εκείνη την εποχή διόρθωση που να λέει για χρήση συνάρτησης. Όσο για την οδηγία βαθμολόγησης παραθέτω το παρακάτω link  του Σέργιου
http://alkisg.mysch.gr/steki/index.php?topic=959.msg5389#msg5389


gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2450
  • I 'm not young enough to know everything
Απ: ΣΩΣΤΟ - ΛΑΘΟΣ στα υποπρογράμματα
« Απάντηση #24 στις: 15 Μάι 2015, 11:31:59 πμ »
Εγώ προσωπικά διαβάζοντας το βιβλίο και συγκεκριμένα τον ορισμό της συνάρτησης και της διαδικασίας καταλαβαίνω ότι στα σίγουρα η χρήση συνάρτησης για διάβασμα είναι τουλάχιστο κακή τεχνική. Δεν μπορώ να πω με σιγουριά αν απαγορεύεται ή όχι. Από τον ορισμό της συνάρτησης θα έλεγα ότι απαγορεύεται γιατί αντιβαίνει στη φιλοσοφία της. Από τα άλλα αποσπάσματα θα έλεγα πως δεν απαγορεύεται.

ΟΜΩΣ

Η ΔΤ1 του τετραδίου μαθητή ρωτάει:
Τι είδους υποπρόγραμμα, διαδικασία ή συνάρτηση πρέπει να χρησιμοποιήσεις για
τα παρακάτω:
Α) Εισαγωγή τριών δεδομένων.
Β) Εισαγωγή ενός δεδομένου.
Γ) Υπολογισμός του μικρότερου από πέντε ακεραίους.
Δ) Υπολογισμός των δύο μικρότερων από πέντε ακεραίους.
Ε) Έλεγχος αν δύο αριθμοί είναι ίσοι.
Ζ) Να ταξινομεί, και να επιστρέφει ταξινομημένους, πέντε αριθμούς.
Η) Έλεγχος αν ένας χαρακτήρας είναι φωνήεν ή σύμφωνο."

Στο Β δίνεται η απάντηση Συνάρτηση.

Τότε όμως αφού σύμφωνα με το βιβλίο πρέπει να χρησιμοποιήσεις συνάρτηση για την είσοδο ενός δεδομένου, γιατί στη σελίδα 76 διαβάζει με διαδικασία; Και μάλιστα γράφει:
"Αφού το υποπρόγραμμα πρέπει να διαβάζει δεδομένα, υλοποιείται με διαδικασία."

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

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

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3147
  • to Iterate is human to Recurse divine
Απ: ΣΩΣΤΟ - ΛΑΘΟΣ στα υποπρογράμματα
« Απάντηση #25 στις: 15 Μάι 2015, 11:40:25 πμ »
Η παρακάτω συνάρτηση δέχεται έναν πίνακα, εμφανίζει όλα τα στοιχεία του σε αύξουσα σειρά, και επιστρέφει το μεγαλύτερο.
Όταν εκτελεστεί η συνάρτηση ποια είναι η έξοδός της?
Το λέω μια και θα εμφανιστούν μερικοί αριθμοί στην οθόνη.

Κώδικας: [Επιλογή]
ΣΥΝΑΡΤΗΣΗ   ΤΑΞΙΝΟΜΗΣΗ( Α ) : ΑΚΕΡΑΙΑ
.......
ΑΡΧΗ
    ΚΑΛΕΣΕ ΑΥΞΟΥΣΑ( Α )
    ΚΑΛΕΣΕ ΕΚΤΥΠΩΣΗ( Α )
    ΤΑΞΙΝΟΜΗΣΗ <- Α[100]
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

ΔΙΑΔΙΚΑΣΙΑ ΕΚΤΥΠΩΣΗ( Α )
ΜΕΤΑΒΛΗΤΕΣ
     ΑΚΕΡΑΙΕΣ: Α[100], Ι
ΑΡΧΗ
     ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 100
           ΕΜΦΑΝΙΣΕ Α[Ι]
     ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Αθανάσιος Πέρδος

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 288
Απ: ΣΩΣΤΟ - ΛΑΘΟΣ στα υποπρογράμματα
« Απάντηση #26 στις: 15 Μάι 2015, 02:09:24 μμ »
Εγώ προσωπικά διαβάζοντας το βιβλίο και συγκεκριμένα τον ορισμό της συνάρτησης και της διαδικασίας καταλαβαίνω ότι στα σίγουρα η χρήση συνάρτησης για διάβασμα είναι τουλάχιστο κακή τεχνική. Δεν μπορώ να πω με σιγουριά αν απαγορεύεται ή όχι. Από τον ορισμό της συνάρτησης θα έλεγα ότι απαγορεύεται γιατί αντιβαίνει στη φιλοσοφία της. Από τα άλλα αποσπάσματα θα έλεγα πως δεν απαγορεύεται.

ΟΜΩΣ

Η ΔΤ1 του τετραδίου μαθητή ρωτάει:
Τι είδους υποπρόγραμμα, διαδικασία ή συνάρτηση πρέπει να χρησιμοποιήσεις για
τα παρακάτω:
Α) Εισαγωγή τριών δεδομένων.
Β) Εισαγωγή ενός δεδομένου.
Γ) Υπολογισμός του μικρότερου από πέντε ακεραίους.
Δ) Υπολογισμός των δύο μικρότερων από πέντε ακεραίους.
Ε) Έλεγχος αν δύο αριθμοί είναι ίσοι.
Ζ) Να ταξινομεί, και να επιστρέφει ταξινομημένους, πέντε αριθμούς.
Η) Έλεγχος αν ένας χαρακτήρας είναι φωνήεν ή σύμφωνο."

Στο Β δίνεται η απάντηση Συνάρτηση.

Τότε όμως αφού σύμφωνα με το βιβλίο πρέπει να χρησιμοποιήσεις συνάρτηση για την είσοδο ενός δεδομένου, γιατί στη σελίδα 76 διαβάζει με διαδικασία; Και μάλιστα γράφει:
"Αφού το υποπρόγραμμα πρέπει να διαβάζει δεδομένα, υλοποιείται με διαδικασία."

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

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

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

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

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3147
  • to Iterate is human to Recurse divine
Απ: ΣΩΣΤΟ - ΛΑΘΟΣ στα υποπρογράμματα
« Απάντηση #27 στις: 15 Μάι 2015, 03:59:19 μμ »
Ακριβώς!!!
Χαίρομαι που τελικά συμφωνούμε.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Αθανάσιος Πέρδος

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 288
Απ: ΣΩΣΤΟ - ΛΑΘΟΣ στα υποπρογράμματα
« Απάντηση #28 στις: 15 Μάι 2015, 04:32:49 μμ »
Η παρακάτω συνάρτηση δέχεται έναν πίνακα, εμφανίζει όλα τα στοιχεία του σε αύξουσα σειρά, και επιστρέφει το μεγαλύτερο.
Όταν εκτελεστεί η συνάρτηση ποια είναι η έξοδός της?
Το λέω μια και θα εμφανιστούν μερικοί αριθμοί στην οθόνη.

Κώδικας: [Επιλογή]
ΣΥΝΑΡΤΗΣΗ   ΤΑΞΙΝΟΜΗΣΗ( Α ) : ΑΚΕΡΑΙΑ
.......
ΑΡΧΗ
    ΚΑΛΕΣΕ ΑΥΞΟΥΣΑ( Α )
    ΚΑΛΕΣΕ ΕΚΤΥΠΩΣΗ( Α )
    ΤΑΞΙΝΟΜΗΣΗ <- Α[100]
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

ΔΙΑΔΙΚΑΣΙΑ ΕΚΤΥΠΩΣΗ( Α )
ΜΕΤΑΒΛΗΤΕΣ
     ΑΚΕΡΑΙΕΣ: Α[100], Ι
ΑΡΧΗ
     ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 100
           ΕΜΦΑΝΙΣΕ Α[Ι]
     ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ


Εγώ βλέπω μία συνάρτηση η οποία επιστρέφει στο τμήμα προγράμματος που την καλεί την τιμή της θέσης 100 του πίνακα Α.
Από την άλλη δεν διακρίνω καμία εντολή εισόδου ή εξόδου στο σώμα των εντολών της.

Ακριβώς!!!
Χαίρομαι που τελικά συμφωνούμε.

Σε τι συμφωνούμε;
Σε αυτό;

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

αν ήταν έτσι θα μετονόμαζα τις Γράψε/Διάβασε σε διαδικασίες και θα τις καλούσα μέσα από συναρτήσεις ώστε να καταστρατηγήσω τον ορισμό της συνάρτησης

ή σε αυτό;

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

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

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3147
  • to Iterate is human to Recurse divine
Απ: ΣΩΣΤΟ - ΛΑΘΟΣ στα υποπρογράμματα
« Απάντηση #29 στις: 15 Μάι 2015, 06:00:12 μμ »
Μα και το 2007 η διαδικασία έλεγα ότι είναι το σωστό!!! :-\ Από που έβγαλες το συμπέρασμα ότι έλεγα το αντίθετο?  :-\
Απλά για κάποιο λόγο δεν διάβασες όλη τη συζήτηση  :-\
Καλό λοιπόν θα ήταν να διαβάσεις όλο το thread ώστε να καταλάβεις ακριβώς τι έλεγα.
Αυτό που έλεγα ήταν ότι το θέμα ήταν φάουλ και ότι θα έπρεπε ή να ακυρωθεί ή να πάρουν σωστά και τα 2. Αυτό δε σημαίνει ότι συμφωνώ με το ότι μπορείς να διαβάσεις μέσα σε συνάρτηση, αλλά ότι δεν πρέπει να την πληρώσει ο μαθητής για τις ασάφειες του βιβλίου και του θέματος.
Αν διάβαζες λίγο πιο πάνω στο ίδιο thread θα έβλεπες και αυτό
http://alkisg.mysch.gr/steki/index.php?topic=959.msg5190#msg5190
όπου λέω :
Παιδιά το συγκεκριμένο θέμα δηλαδή το 1.Β.2 το έχουν πάρει αυτούσιο από το τετράδιο του μαθητή. Είναι η δραστηριότητα ΔΤ1.Β σελ 109. Δεν ξέρω αν το θυμάται κανένας αλλά είχα θίξει το θέμα πριν κάποιους μήνες σε κάποιο thread με το σκεπτικό ότι η απάντηση στην ερώτηση αν η εισαγωγή ενός δεδομένου γίνεται με συνάρτηση ή διαδικασία ήταν με συνάρτηση. Όσοι έχετε αντίρρηση μπορείτε απλά να κοιτάξετε το βιβλίο καθηγητή που έχετε και έχει τις απαντήσεις. Προφανώς η απάντηση είναι με διαδικασία. Προσέξτε όμως κάτι. Το θέμα στο τετράδιο του μαθητή έχει μέσα και την περίπτωση "Εισαγωγή τριών δεδομένων". Και όμως αυτό το ερώτημα το αφαίρεσαν, ενώ τα άλλα τα έβαλαν αυτούσια, μάλλον για να μην μπερδέψουν περισσότερο τους μαθητές.

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

Είχα θίξει το ίδιο θέμα πριν πέσει στις εξετάσεις εδώ
http://alkisg.mysch.gr/steki/index.php?topic=275.msg1935#msg1935

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

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

Οπότε συνοψίζω τις απόψεις μου ώστε να είμαι ξεκάθαρος και κατανοητός όσο γίνεται

1. Αν δεχτούμε ότι μπορώ να καλώ διαδικασία μέσα από συνάρτηση η οποία περιέχει Διάβασε/Γράψε είναι σαν να χρησιμοποιώ Διάβασε/Γράψε μέσα στη Συνάρτηση, οπότε πρέπει να δεχτούμε και αυτό
2. Από τον ορισμό της συνάρτησης είναι ξεκάθαρο ότι δεν μπορεί να έχει άλλη έξοδο εκτός από την τιμή που επιστρέφει. Αν καλέσει διαδικασία και αυτη εκτυπώσει στην οθόνη δεδομένα που πήρε από τη συνάρτηση αυτό είναι έξοδος. Δηλαδή Γράψε δεν μπορείς να έχεις μέσα σε συνάρτηση ή σε διαδικασία που καλείται από συνάρτηση (αυτό ας το ονομάσουμε έμμεση έξοδο).
3. Με την εισαγωγή τα πράγματα δεν είναι τόσο ξεκάθαρα. Από τον ορισμό δε φαίνεται ότι απαγορεύεται παρά μόνο από τα συμφραζόμενα, και δεν ξέρω αν μπορούμε να στηριχτούμε σε αυτά. Για παράδειγμα λέει ότι η λίστα παραμέτρων στη διαδικασία μπορεί να είναι κενή. Και ρωτάει κάποιος: γιατί? δεν μπορεί να είναι κενή και στη συνάρτηση? Φαντάζομαι καταλαβαίνουμε όλοι γιατί δεν μπορεί
4. Δεν συμφωνώ με την απαγόρευση των Διάβασε/Γράψε μέσα σε Συνάρτηση. Δεν μου αρέσει, όμως το πνεύμα του βιβλίου σε οδηγεί εκεί.

Όμως αν θέλουμε να συζητάμε για το πνεύμα και όχι το γράμμα του νόμου θα πρέπει όλοι όσοι συμμετέχουμε σε μια τέτοια κουβέντα να είμαστε καλοπροαίρετοι . Να μπορούμε δηλαδή να διαβάσουμε και πέρα από το "γράμμα του νόμου". Αλλιώς αυτή η συζήτηση δεν έχει νόημα.
« Τελευταία τροποποίηση: 15 Μάι 2015, 06:51:48 μμ από evry »
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr