Αποστολέας Θέμα: Πρόγραμμα -υποπρογραμμα  (Αναγνώστηκε 324 φορές)

theoni

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 116
Πρόγραμμα -υποπρογραμμα
« στις: 15 Μάι 2019, 08:34:03 μμ »
Καλησπέρα σας μια ερώτηση θέλω να κάνω πάνω στην παρακάτω άσκηση που σας παραθέτω! Η ερώτηση είναι ποιες είναι οι πραγματικές και ποιες οι τυπικές παράμετροι στο παρακάτω κύριο πρόγραμμα στη συνάρτηση και στη διαδικασία
Πρόγραμμα
Μεταβλητές
........
Αρχή
Διάβασε α,β,γ
Γράψε α,β,γ
Αρχη_επαναληψης
  Κάλεσε δ1(α,β,γ,τιμή)
  Γραψε α,β,γ
Μεχρις_οτου τιμή=αληθής
Τελος-προγραμματος

Διαδικασία δ1(γ,β,α,τιμή)
Μεταβλητές
......
Αρχή
Χ<--2*γmod(β+α)
Γράψε Χ
Τιμή<--υπ(Χ,γ)
γ<--γ+2
α<--α+1
Τελος_διαδικασιας

Συνάρτηση υπ(ζ,β):λογική
Μεταβλητές
......
Αρχή
Υ<--ζ-Α_Μ(β/2)
Αν Υ≥0 τότε
υπ<--αληθης
Αλλιώς
 υπ<-- ψευδής
Τελος_αν
Τέλος συναρτησης

theoni

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 116
Απ: Πρόγραμμα -υποπρογραμμα
« Απάντηση #1 στις: 15 Μάι 2019, 08:38:25 μμ »
Η απάντηση που δίνει ο δημιουργός της άσκησης είναι
 Για το πρόγραμμα :
 Πραγματικές:α,β,γ,τιμή
 Τυπικές: γ,β,α,τιμή

Για τη συνάρτηση
 Πραγματικές :ζ,β
 Τυπικές: -
 
Για τη διαδικασία
 Πραγματικές:Χ,γ
Τυπικές:ζ,β
   Είναι σωστή????

petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2167
Απ: Πρόγραμμα -υποπρογραμμα
« Απάντηση #2 στις: 15 Μάι 2019, 10:33:21 μμ »
Πραγματικές είναι οι παράμετροι όταν καλείται ένα υποπρόγραμμα, οπουδήποτε και να καλείται και μπορούν να είναι διαφορετικές
Τυπικές παράμετροι είναι αυτές που γράφουμε στην σύνταξη του υποπρογράμματος και είναι πάντα οι ίδιες
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

theoni

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 116
Απ: Πρόγραμμα -υποπρογραμμα
« Απάντηση #3 στις: 15 Μάι 2019, 11:59:37 μμ »
Στο παράδειγμα δηλαδή από ότι κατάλαβα η συνάρτηση έχει τυπικές παραμέτρους και όχι πραγματικές που λέει η λύση....αυτό ότι οι τυπικές είναι πάντα οι ίδιες δεν το κατάλαβα????

petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2167
Απ: Πρόγραμμα -υποπρογραμμα
« Απάντηση #4 στις: 16 Μάι 2019, 01:51:30 πμ »
Τυπικές είναι αυτές που έχει το υποπρόγραμμα στην παρένθεση του
Πραγματικές όταν το καλείς, άρα μπορείς να το καλείς με πολλές διαφορετικές πραγματικές παραμέτρους κάθε φορά, αλλά οι τυπικές θα είναι πάντα οι ίδιες
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

bugman

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 328
  • The Bug Eater
    • Πληροφορική Προγραμματισμός
Απ: Πρόγραμμα -υποπρογραμμα
« Απάντηση #5 στις: 16 Μάι 2019, 03:25:42 πμ »
Αυτή η διάκριση σε πραγματικές και τυπικές δεν μου αρέσει!

Ουσιαστικά οι μεταβλητές που έχει το υποπρόγραμμα είναι τοπικές μεταβλητές, εκτός από τις ορισμένες ως παραμέτρους που θα περάσουμε με αναφορά. Οι "πραγματικές" που λέγονται παραπάνω είναι οι με αναφορά περασμένες μεταβλητές. Ειδικά στη ΓΛΩΣΣΑ και σε μερικές άλλες όπως η Visual Basic, δέχονται σε θέση παραμέτρων εκφράσεις, που δίνουν το τύπο που περιμένουμε στην παράμετρο. Ίσως από εκεί να προκύπτει και το προσδιορισμός ως τυπική για μια μεταβλητή. Στη ΓΛΩΣΣΑ στις συναρτήσεις όλες οι παράμετροι παίρνουν τιμή και όχι αναφορά. Δηλαδή δεν ισχύει η "πραγματική" μεταβλητή, όπως δείχθηκε παραπάνω (δηλαδή η περασμένη με αναφορά, που γίνεται μόνο στα υποπρογράμματα).

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

theoni

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 116
Απ: Πρόγραμμα -υποπρογραμμα
« Απάντηση #6 στις: 16 Μάι 2019, 09:32:35 πμ »
Άρα η ερώτηση ποιες είναι οι τυπικές παράμετροι ενός προγράμματος δεν έχει νόημα γιατί το πρόγραμμα δεν έχει τυπικές!!!!!

andreas_p

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1009
Απ: Πρόγραμμα -υποπρογραμμα
« Απάντηση #7 στις: 16 Μάι 2019, 10:09:40 πμ »
Καλημέρα  !
Η συναδέλφισσα (;) από Κόρινθο  , που κάτι ζήτησε ας επικοινωνήσει .
Είναι διαθέσιμο.
Α.Π.

bugman

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 328
  • The Bug Eater
    • Πληροφορική Προγραμματισμός
Απ: Πρόγραμμα -υποπρογραμμα
« Απάντηση #8 στις: 16 Μάι 2019, 12:15:30 μμ »
http://users.sch.gr/manpap/school_material/aepp/unit2/unit2.htm
Εδώ υπάρχει αναφορά για πραγματικές και τυπικές παράμετρους. Ενδιαφέρον παρουσιάζει ο περιορισμός στο όνομα των δύο μεταβλητών που θα κάνουν ένα ζευγάρι πραγματικής με τυπική παράμετρο. Ο περιορισμός είναι ότι δεν θα έχουν το ίδιο όνομα!
Ειλικρινά δεν μπορώ να σκεφτώ ποιο είναι το κόλλημα για αυτόν τον περιορισμό.
Επιπλέον ο μηχανισμός αντιγραφής τιμής της πραγματικής στην τυπική κατά την αρχή της κλήσης και το ανάποδο στο τέλος της κλήσης (copy in copy out) είναι μια επιλογή περισσότερο για να δώσουν μια απλή εξήγηση του πώς συνδέονται οι πραγματικές παράμετροι με τις τυπικές, μάλλον άτυχη. Και αυτό γιατί ανάγκασε τους διερμηνευτές να αντιγράφουν και πίνακες!
Επίσης από το σύνδεσμο παραπάνω προκύπτουν δύο ιδιαίτερες αναφορές, το πέρασμα πραγματικής σε τυπική, χωρίς η πραγματική να έχει πάρει μια αρχική τιμή, και τα μεγέθη των πινάκων, ως τυπικών παραμέτρων, να προκαθορίζονται, στατικά, πριν την εκτέλεση. Για το πρώτο σε συνάρτηση προφανώς δεν γίνεται, αφού η τυπική παράμετρος περνάει με τιμή. Για το δεύτερο αναφέρεται η ανάγκη χρήσης μιας παραμέτρου ακόμα που θα δέχεται τον αριθμό των ενεργών στοιχείων.
Τα στοιχεία ενός πίνακα έχουν νόημα να τα χωρίζουμε σε ενεργά και μη για δυο λόγους. Ο πρώτος προκύπτει από την απουσία καθορισμού μεγέθους στοιχείων πίνακα κατά την εκτέλεση, οπότε φτιάχνουμε ένα μεγάλο πίνακα και σε μια μεταβλητή, για μονοδιάστατο πίνακα, κρατάμε τον τωρινό αριθμό στοιχείων (συνεχόμενων). Ο δεύτερος δεν φαίνεται εκ πρώτης όψεως, αλλά είναι σημαντικός. Η ΓΛΩΣΣΑ ελέγχει πριν χρησιμοποιήσει ένα στοιχείο πίνακα αν έχει πάρει τιμή, σε κάθε χρήση. Αν ζητάμε τιμή από στοιχείο πίνακα που δεν έχει πάρει αρχική τιμή βγαίνει λάθος κατά την εκτέλεση (run time error). Έτσι ενδέχεται να περάσουμε έναν πίνακα όπου τα μη ενεργά στοιχεία να μην έχουν πάρει ποτέ τιμή. Και προκύπτει το ερώτημα, κατά την αντιγραφή στο πέρασμα με αναφορά, αντιγράφεται και η μή τιμή; Δηλαδή ο πίνακας οφείλει να έχει για κάθε στοιχείο και ένα ακόμα εσωτερικό που να δείχνει αν το στοιχείο έχει τιμή ή όχι!  Εδώ βλέπουμε δηλαδή ότι οι περιορισμοί ή στη πράξη οι διατυπώσεις λειτουργίας, της ΓΛΩΣΣΑΣ, οδηγούν σε πολύπλοκες ιδέες, που δεν συμβάλλουν στην κατανόησή της.

epsilonXi

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 105
Απ: Πρόγραμμα -υποπρογραμμα
« Απάντηση #9 στις: 16 Μάι 2019, 04:15:06 μμ »
Πρόγραμμα ...
  Κάλεσε δ1(α,β,γ,τιμή)   !πραγματικές: α,β,γ,τιμή
Τελος-προγραμματος

Διαδικασία δ1(γ,β,α,τιμή) !τυπικές: γ,β,α,τιμή
Τιμή<--υπ(Χ,γ) !πραγματικές: Χ,γ
Τελος_διαδικασιας

Συνάρτηση υπ(ζ,β):λογική !τυπικές: ζ,β
Υ<--ζ-Α_Μ(β/2)   !πραγματικές: β/2 ;χμμμ
Τέλος συναρτησης

theoni

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 116
Απ: Πρόγραμμα -υποπρογραμμα
« Απάντηση #10 στις: 16 Μάι 2019, 08:45:32 μμ »
Το β/2 δεν είναι πραγματική γιατί δεν καλεί κάποιο προγραμμα

bugman

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 328
  • The Bug Eater
    • Πληροφορική Προγραμματισμός
Απ: Πρόγραμμα -υποπρογραμμα
« Απάντηση #11 στις: 16 Μάι 2019, 09:17:59 μμ »
Στη κλήση συνάρτησης δεν έχουμε πέρασμα με αναφορά, έτσι η Χ είναι τοπική μεταβλητή στη δ1και θα αντιγραφεί στην τυπική Ζ της υπ(),,ενώ η γ είναι η πραγματική α του προγράμματος η οποία θα αντιγραφεί στην β, μια τυπική παράμετρος στην υπ().

theoni

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 116
Απ: Πρόγραμμα -υποπρογραμμα
« Απάντηση #12 στις: 16 Μάι 2019, 09:37:45 μμ »
Δεν το κατάλαβα αυτό το τελευταίο????η συνάρτηση έχει μόνο τυπικές σωστά???