Αποστολέας Θέμα: ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ  (Αναγνώστηκε 7225 φορές)

ΝΙΚΟΣ ΧΑΤΖΗΓΙΑΝΝΑΚΗΣ

  • Επισκέπτης
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
« στις: 27 Φεβ 2004, 09:10:30 μμ »
Τελικά στις συναρήσεις το πέρασμα παραμέτρων γίνεται με τιμή η με αναφορά.

Πάντως στον διερμηνευτή της "Γλώσσας" του Αλκη υλοποιείται με αναφορά
« Τελευταία τροποποίηση: 28 Φεβ 2004, 10:43:59 πμ από alkisg »

tommy

  • Νέος
  • *
  • Μηνύματα: 4
  • Γράψτε το προσωπικό σας σλόγκαν!
Re: ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
« Απάντηση #1 στις: 28 Φεβ 2004, 02:14:30 πμ »
χαιρετε.
με τον τρόπο που φαίνεται να υλοποιείται το πέρασμα των τιμών σύμφωνα με το βιβλίο παρουσιάζεται σαν με αναφορά, καθώς επηρεάζεται άμεσα η τιμή που έχει η μεταβλητή-όρισμα στο κυρίως πρόγραμμα. Δεν θα έπρεπε όμως να έχει γίνει και μια αναφορά σε δείκτες και διευθύνσεις(έστω αναφορικά)?
« Τελευταία τροποποίηση: 28 Φεβ 2004, 10:44:19 πμ από alkisg »

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5658
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Re: ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
« Απάντηση #2 στις: 28 Φεβ 2004, 11:03:43 πμ »
Νίκο στον διερμηνευτή ΔΕΝ έχει γίνει υλοποίηση με αναφορά, αλλά με αντιγραφή. Πιστεύω ότι αυτόν τον μηχανισμό εννοεί η περιγραφή του σχολικού βιβλίου.
Ο μηχανισμός της αντιγραφής δεν υπάρχει ούτε στην basic ούτε στην pascal.

Εξηγώ σύντομα τις διαφορές των τριών αυτών μηχανισμών. Έστω ότι δηλώνουμε μια συνάρτηση
[glossa]Συνάρτηση Αύξησε(χ): Ακέραια[/glossa]η οποία αυξάνει το χ κατά 1 και ταυτόχρονα επιστρέφει την νέα τιμή του. Έστω ακόμα ότι την καλούμε από το κυρίως πρόγραμμα:
[glossa] α <-- Αύξησε(1)
β <-- 3
γ <-- Αύξησε(β)[/glossa]
Πέρασμα παραμέτρων με τιμή σημαίνει ότι κατά την Αύξησε(β) η τιμή του β δεν θα αλλάξει και θα παραμείνει 3.
Πέρασμα παραμέτρων με αναφορά σημαίνει ότι η Αύξησε(1) δεν είναι αποδεκτή, αφού μόνο οι μεταβλητές μπορούν να περαστούν με αναφορά και όχι οι σταθερές όπως είναι το 1.
Πέρασμα παραμέτρων με αντιγραφή σημαίνει ότι όλο το παραπάνω πρόγραμμα είναι αποδεκτό. Η τιμή της σταθεράς 1 θα αντιγραφεί στην τοπική μεταβλητή χ της συνάρτησης, το χ θα αυξηθεί αλλά φυσικά δεν θα μπορέσει να επιστρέψει την αλλαγμένη τιμή του στο κυρίως πρόγραμμα. Δηλαδή ενώ το α θα γίνει 2, η σταθερά 1 δεν θα γίνει 2 (εννοείται). Αν όμως περαστεί η τιμή της μεταβλητής β στην τοπική μεταβλητή χ με αναφορά, τότε και το β θα γίνει 4 και το γ θα γίνει επίσης 4.

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

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

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

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

P.Tsiotakis

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3304
  • agent romanoff you miss me?
    • P.Tsiotakis
Re: ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
« Απάντηση #3 στις: 01 Μάρ 2004, 12:54:55 μμ »
Μερικές φορές κάνουμε τα πράγματα πολύ πιο δύσκολα απ'οτι είναι. Κάπου μας είχαν πει οτι ο καλύτερος δάσκαλος είναι αυτός που παίρνει τη θέση του μαθητή και εξετάζει τα πράγματα και από τη δική του σκοπιά.

Οι μαθητές λοιπόν, αδιαφορούν (και πολύ καλά κάνουν κατά τη γνώμη μου) για τους όρους: Πέρασμα παραμέτρων με τιμή, Πέρασμα παραμέτρων με αναφορά και Πέρασμα παραμέτρων με αντιγραφή.

Μια συνάρτηση δέχεται παραμέτρους και επιστρέφει μια τιμή, μια διαδικασία μπορεί να κάνει ό,τι και ένα πρόγραμμα.

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

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

Οι απορίες έχουν έννοια στην υλοποίηση του διερμηνευτή ή της γλωσσομάθειας ή αντίστοιχου άλλου περιβάλλοντος για την ΓΛΩΣΣΑ

Με εκτίμηση,

ΧΑΤΖΗΓΙΑΝΝΑΚΗΣ ΝΙΚΟΣ

  • Επισκέπτης
Re: ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
« Απάντηση #4 στις: 02 Μάρ 2004, 02:25:38 μμ »
Εφόσον λοιπόν μία συνάρτηση δεν μπορεί να μεταβάλει τις παραμέτρους τις (όπως μια διαδικασία) θεωρούμε οτι τις περναμε με τιμή ενω σε μια διαδικασία με αντιγραφή .

Αυτο που ειπα είναι οτι στο διερμηνευτή περνιουνται με αντιγραφή και στις δύο περιπτώσεις.

Εμείς τι διδάσκουμε ?

Μπορεί μια συνάρτηση να αλλάξει τις τιμές στις παραμέτρους τις ?

Ναι είναι ψιλά γράμματα αλλά δε μπορούμε να δίνουμε και αόριστες ερμηνίες

P.Tsiotakis

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3304
  • agent romanoff you miss me?
    • P.Tsiotakis
Re: ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
« Απάντηση #5 στις: 03 Μάρ 2004, 11:58:22 πμ »
Θεωρώ Νίκο, οτι απλά δεν χρειάζεται να θίξουμε το αν μια συνάρτηση μπορεί να αλλάζει τις παραμέτρους
Αλλά δεν υπάρχει αόριστη ερμηνεία: μια συνάρτηση δέχεται παραμέτρους και επιστρέφει μια τιμή με το όνομα της συνάρτησης. Η μόνη τιμή που επιστρέφεται είναι αυτή που εκχωρείται (ως τελευταία εντολή) στο όνομα της συνάρτησης, τίποτα άλλο, άρα αν αλλάζει η τιμή κάποιας παραμέτρου δεν σημαίνει οτι η αλλαγή αυτή θα έχει επίπτωση στην τιμή της στο κυρίως πρόγραμμα.
Χρειάζεται τα παιδιά να προβληματιστούν περισσότερο από αυτό ??

Αόριστη ερμηνεία είναι ό,τι δεν βασίζεται σε θεωρία ή παραδείγματα του βιβλίου

Με εκτίμηση,

tanius_nik

  • Επισκέπτης
Re: ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
« Απάντηση #6 στις: 19 Μάρ 2004, 12:00:01 πμ »
Χαιρετώ κι εγώ αυτήν την ψηφιακή κοινότητα,  ;) 8)
την οποία την βρίσκω πολύ σημαντική. Τώρα τελευταία ανακάλυψα αυτήν την κοινότητα και δηλώνω ενθουσιασμένη.
Να συστηθώ κι εγώ λοιπόν. Λέγομαι Τάνια και ζώ στην Λευκάδα.
Διδάσκω το μάθημα αυτό και το βρίσκω καταπληκτικό σαν αντικείμενο,
Όμως για το βιβλίο ας μην εκφραστώ καλύτερα  :furious3:

Βρίσκομαι στο κεφάλαιο 10 και ζητώ την γνώμη σας για τις ασκήσεις στο ΔΤ2
Για πχ το βιβλίο του καθηγητή και κάποιο άλλο βοήθημα που έχω την λύνει έτσι:
Α)
ΔΙΑΔΙΚΑΣΙΑ Τετράγωνο (Χ2)
ΠΡΑΓΜΑΤΙΚΕΣ Χ,Χ2
ΑΡΧΗ
ΔΙΑΒΑΣΕ Χ
Χ2<-Χ^2
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ Τετράγωνο

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

P.Tsiotakis

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3304
  • agent romanoff you miss me?
    • P.Tsiotakis
Re: ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
« Απάντηση #7 στις: 19 Μάρ 2004, 10:56:24 πμ »
Αγαπητή Τάνια,

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

Σύμφωνα με το βιβλίο συνάρτηση είναι ο τύπος υποπρογράμματος που δέχεται τιμές και επιστρέφει μετά από την επεξεργασία τους ΜΙΑ τιμή. Ο,τιδήποτε άλλο είναι διαδικασία (τύπος υποπρογράμματος που κάνει ό,τι και ένα πρόγραμμα).
Άρα, δεν πρόκειται να δούμε ποτέ στο τμήμα εντολών μιας συνάρτησης τις εντολές ΔΙΑΒΑΣΕ και ΓΡΑΨΕ

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

Βέβαια το συγκεκεριμένο παράδειγμα ΜΕ ΑΛΛΗ ΕΚΦΩΝΗΣΗ θα έπρεπε να υλοποιείται με συνάρτηση την οποία παραθέτω στην ιστοσελίδα http://users.kor.sch.gr/ptsiotakis/aepp/aepp_ask/ch10/aepp_ask10_1.htm παράδειγμα 10.1.4.

Τάνια δεν ξέρω αν σε κάλυψα. Ή αν υπάρχει διαφορετική άποψη από τα 173 (!!!) εγγεγραμμένα μέλη του forum και λοιπούς μη εγγεγραμμένους αναγνώστες με χαρά αναμένω να την ακούσω

Με την γνωστή εκτίμηση,
« Τελευταία τροποποίηση: 19 Μάρ 2004, 10:58:12 πμ από ptsiotakis »

Γιώργος

  • Επισκέπτης
Re: ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
« Απάντηση #8 στις: 19 Μάρ 2004, 11:03:22 πμ »
Γεια σου Τανια. Λοιπόν το παράδειγμα που λές είναι σωστό γιατί σε μια διαδικασία όπως ξέρουμε μπορούμε να κάνουμε ότι ακριβώς και σε ένα πρόγραμμα , αρά και εισαγωγή στοιχείων


xaidi

  • Ομάδα διαγωνισμάτων 2009
  • *
  • Μηνύματα: 111
  • who is WHO!!!!!!
Re: ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
« Απάντηση #9 στις: 19 Μάρ 2004, 11:51:55 πμ »
ΣΥΜΦΩΝΩ ΑΠΟΛΥΤΑ ΜΕ ΤΟΥΣ ΠΑΡΑΠΑΝΩ ΑΛΛΑ ΝΟΜΙΖΩ ΠΩΣ ΤΟ ΚΟΜΜΑΤΙ
ΔΙΑΔΙΚΑΣΙΑ Τετράγωνο (Χ2)  ΕΙΝΑΙ ΛΑΘΟΣ ΘΑ ΕΠΡΕΠΕ ΝΑ ΕΙΝΑΙ

ΔΙΑΔΙΚΑΣΙΑ Τετράγωνο (Χ)

ΘΑ ΣΟΥ ΠΡΟΤΕΙΝΑ ΤΑΝΙΑ ΝΑ ΜΠΕΙΣ ΣΤΗΝ ΙΣΤΟΣΕΛΙΔΑ ΤΟΥ ΠΑΝΑΓΙΩΤΗ. ΕΧΕΙ ΠΟΛΥ ΕΝΔΙΑΦΕΡΟΝ ΥΛΙΚΟ.
Ευχαριστώ,

xaidi

  • Ομάδα διαγωνισμάτων 2009
  • *
  • Μηνύματα: 111
  • who is WHO!!!!!!
Re: ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
« Απάντηση #10 στις: 19 Μάρ 2004, 11:55:46 πμ »
ΔΙΑΔΙΚΑΣΙΑ Διαίρεσε_Μιγαδικούς (α, β, γ, δ, πραγμ_πηλίκο, μιγαδ_πηλίκο)

ΜΕΤΑΒΛΗΤΕΣ

   ΠΡΑΓΜΑΤΙΚΕΣ : α, β, γ, δ, πραγμ_πηλίκο, μιγαδ_πηλίκο

ΑΡΧΗ

   πραγμ_πηλίκο <- (α * γ + β * δ) / (γ^2 + δ^2)

   μιγαδ_πηλίκο <- (β * γ - α * δ) / (γ^2 + δ^2)

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΤΟ ΠΑΡΑΠΑΝΩ ΕΙΝΑΙ ΕΝΑ ΛΥΜΕΝΟ ΚΟΜΜΑΤΙ ΑΣΚΗΣΗΣ ΑΠΟ ΤΗΝ ΣΕΛΙΔΑ ΣΟΥ . ΘΑ ΜΠΟΡΟΥΣΕΣ ΣΕ ΠΑΡΑΚΑΛΩ ΝΑ ΜΟΥ ΕΞΗΓΗΣΕΙΣ ΤΟ ΚΟΜΜΑΤΙ  "(α, β, γ, δ, πραγμ_πηλίκο, μιγαδ_πηλίκο)"?
Ευχαριστώ,

tanius76

  • Βετεράνος
  • ****
  • Μηνύματα: 60
  • Γράψτε το προσωπικό σας σλόγκαν!
Re: ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
« Απάντηση #11 στις: 19 Μάρ 2004, 12:23:16 μμ »

Καταρχήν παιδιά, Γιώργο και Παναγιώτη, ευχαριστώ
για τις απαντήσεις σας.

Η αλήθεια είναι Παναγιώτη από το δικό σου site, είδα την άσκηση και προβληματίστικα..

Καταπληκτική η δουλεία σου και πού χρήσιμη για μένα!

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

P.Tsiotakis

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3304
  • agent romanoff you miss me?
    • P.Tsiotakis
Re: ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
« Απάντηση #12 στις: 19 Μάρ 2004, 12:33:42 μμ »
Xaidi δεν έχει δίκιο, το σωστό είναι ΔΙΑΔΙΚΑΣΙΑ Τετράγωνο(Χ2) αφού αυτή η παράμετρος θα επιστραφεί όχι η Χ

Για την άλλη ερώτηση, αναφέρεσαι στην ιστοσελίδα http://users.kor.sch.gr/ptsiotakis/aepp/aepp_ask/tet_math/aepp_tm10.htm που προτείνω τις λύσεις για τις ασκήσεις του τετραδίου μαθητή και στην άσκηση ΔΕ3.

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

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

Με εκτίμηση,

xaidi

  • Ομάδα διαγωνισμάτων 2009
  • *
  • Μηνύματα: 111
  • who is WHO!!!!!!
Re: ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
« Απάντηση #13 στις: 19 Μάρ 2004, 12:45:49 μμ »
ΤΟ ΠΡΟΒΛΗΜΑ ΜΟΥ ΕΙΝΑΙ ΤΟ ΕΞΗΣ: ΣΥΜΦΩΝΑ ΜΕ ΤΟ ΒΙΒΛΙΟ "Η ΛΙΣΤΑ ΠΑΡΑΜΕΤΡΩΝ ΕΙΝΑΙ ΜΙΑ ΛΙΣΤΑ ΜΕΤΑΒΛΗΤΩΝ ΤΩΝ ΟΠΟΙΩΝ ΟΙ ΤΙΜΕΣ.....ΤΗΣ ΔΙΑΔΙΚΑΣΙΑΣ. (ΣΕΛ 214)
ΣΤΗΝ ΠΑΡΑΠΑΝΩ ΔΙΑΔΙΚΑΣΙΑ ΔΗΛΩΝΕΙΣ ΟΛΕΣ ΤΙΣ ΜΕΤΑΒΛΗΤΕΣ. ΣΤΗΝ ΕΠΟΜΕΝΗ ΔΙΑΔΙΚΑΣΙΑ ΔΗΛΩΝΕΙΣ ΤΙΣ ΜΕΤΑΒΛΗΤΕΣ "ΕΙΣΟΔΟΥ". ΜΕ ΠΟΙΑ ΑΙΤΙΟΛΟΓΙΑ ΚΑΘΕ ΦΟΡΑ ΦΙΛΤΡΑΡΕΙΣ ΤΙ ΔΗΛΩΝΕΙΣ? ΑΝ ΚΑΤΑΛΑΒΑΙΝΩ ΚΑΛΑ ΣΥΜΦΩΝΑ ΜΕ ΤΟ ΒΙΒΛΙΟ ΤΙΣ ΔΗΛΩΝΟΥΜΕ ΟΛΕΣ.(?)
ΔΙΑΔΙΚΑΣΙΑ Υπολογισμός_ΦΠΑ (Τιμή, συντ_ΦΠΑ)

ΜΕΤΑΒΛΗΤΕΣ

    ΠΡΑΓΜΑΤΙΚΕΣ : Τιμή, συντ_ΦΠΑ, ποσό_ΦΠΑ, τελ_τιμή

ΑΡΧΗ

    Ποσό_ΦΠΑ <- Τιμή * συντ_ΦΠΑ

    τελ_τιμή <- Τιμή + Ποσό_ΦΠΑ

    ΓΡΑΨΕ 'Το ποσό ΦΠΑ είναι, Ποσό_ΦΠΑ, και η τελική τιμή του προϊόντος είναι', τελ_τιμή

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
ΙΣΩΣ ΕΓΩ ΔΕΝ "ΠΙΑΝΩ" ΚΑΤΙ.

« Τελευταία τροποποίηση: 19 Μάρ 2004, 12:48:13 μμ από xaidi »
Ευχαριστώ,

P.Tsiotakis

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3304
  • agent romanoff you miss me?
    • P.Tsiotakis
Re: ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
« Απάντηση #14 στις: 19 Μάρ 2004, 01:04:54 μμ »
Πάντα δηλώνω τις μεταβλητές εισόδου ΚΑΙ τις μεταβλητές εξόδου, αν κάπου δενμ το έχω κάνει είναι λάθος μου. Στο συγκεκριμένο παράδειγμα σε όλες τις διαδικασίες ακολυθώ την ίδια στρατηγική.

Στο άλλο παράδειγμα οι μεταβλητές Τιμή και συντ_ΦΠΑ είναι παράμετροι εισόδου. Υπάρχει εκτύπωση εντός της διαδικασίας, δεν επιστρέφεται τίποτα στο κυρίως πρόγραμμα

Δεν τις δηλώνουμε όλες. Δηλώνουμε μόνο αυτές που είναι εισόδου και αυτές που είναι εξόδου (αν υπάρχουν σε μια διαδικασία)

Υπάρχει κάτι άλλο;

Με εκτίμηση,