Αποστολέας Θέμα: συναρτησεις και διαδικασιες χωρις ορισματα  (Αναγνώστηκε 3277 φορές)

andreas_p

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1059
Απ: συναρτησεις και διαδικασιες χωρις ορισματα
« Απάντηση #15 στις: 27 Μάι 2018, 08:11:27 μμ »
ΠΕΡΙΤΤΟΊ <- ΠΕΡΙΤΤΟΊ  + Ι

Αναδρομή  (;)

Εκτός  ύλης !

wmaster

  • Θαμώνας
  • ***
  • Μηνύματα: 22
Απ: συναρτησεις και διαδικασιες χωρις ορισματα
« Απάντηση #16 στις: 10 Ιούν 2018, 09:42:50 πμ »
Καλημέρα,
μια συνάρτηση μπορεί να μην έχει παραμέτρους. π.χ μια συνάρτηση που υπολογίζει και επιστρέφει τον αριθμό Π με 10 δεκαδικά ψηφία, χρησιμοποιώντας μαθηματικό τύπο. Η είσοδος μπορεί να είναι καμία μία ή περισσότερες τιμές.
Συνάρτηση Π():Πραγματική

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3531
  • to Iterate is human to Recurse divine
Απ: συναρτησεις και διαδικασιες χωρις ορισματα
« Απάντηση #17 στις: 10 Ιούν 2018, 10:50:27 πμ »
Αυτό που λες δεν ισχύει.
Ουσιαστικά αυτό που περιγράφεις είναι ένας αλγόριθμος του οποίου η παράμετρος είναι το πλήθος των δεκαδικών ψηφίων (10 =έχεις διαλέξει)
Αν δεν βάλεις παράμετρο έχεις μια υπολογιστική διαδικασία η οποία υπολογίζει πάντα ακριβώς το ίδιο πράγμα, δεν είναι γενικευμένη δηλαδή και δεν ξέρω κατά πόσο μπορεί να χαρακτηριστεί αλγόριθμος. Είναι θέμα ορισμού εδώ. Αν ψάξεις στους πιο πολλούς ορισμούς επιτρέπεται (zero-input algorithms).

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

Όμως στο μάθημά μας, αν δεις τον ορισμό του αλγορίθμου στο κεφάλαιο 2 αναφέρει ότι σε αυτή την περίπτωση η είσοδος έρχεται από συνάρτηση παραγωγής τυχαίων αριθμών.
Φυσικά στο πλαίσιο του μαθήματος το σημαντικότερο επιχείρημα είναι ότι ενώ το βιβλίο το αναφέρει ρητά για τις διαδικασίες δεν το αναφέρει για τις συναρτήσεις. Γιατί άραγε;
« Τελευταία τροποποίηση: 10 Ιούν 2018, 11:02:38 πμ από evry »
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

wmaster

  • Θαμώνας
  • ***
  • Μηνύματα: 22
Απ: συναρτησεις και διαδικασιες χωρις ορισματα
« Απάντηση #18 στις: 10 Ιούν 2018, 11:36:24 πμ »
Καλημέρα και πάλι,
η συνάρτηση ως αλγόριθμος (αυτόνομο τμήμα) μπορεί να έχει καμία μία ή περισσότερες τιμές ως είσοδο.
Το βιβλίο αναφέρει ότι ένας αλγόριθμος μπορεί να μην έχει είσοδο καθώς "η είσοδος έρχεται από συνάρτηση παραγωγής τυχαίων αριθμών" επομένως υπάρχει τέτοια συνάρτηση.
Η συνάρτηση Συνάρτηση Τυχαίος():Πραγματική, χωρίς παραμέτρους, προφανώς είναι σωστή, σύμφωνα και με αυτά που αναφέρεις.

Σχετικά με την χρησιμότητα της συνάρτησης που υπολογίζει το Π δεν γράφω ότι έχει νόημα μια τέτοια συνάρτηση, αλλά δεν καταλαβαίνω ποιον κανόνα παραβιάζει. Το βιβλίο δεν αναφέρει ότι μια συνάρτηση υποχρεωτικά πρέπει να έχει παραμέτρους.
Γιατί πρέπει να είναι γενικευμένη μια συνάρτηση?

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3531
  • to Iterate is human to Recurse divine
Απ: συναρτησεις και διαδικασιες χωρις ορισματα
« Απάντηση #19 στις: 10 Ιούν 2018, 12:03:07 μμ »
Το βιβλίο δεν αναφέρει ότι μια συνάρτηση υποχρεωτικά πρέπει να έχει παραμέτρους.

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

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

akalest0s

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 247
Απ: συναρτησεις και διαδικασιες χωρις ορισματα
« Απάντηση #20 στις: 22 Ιούν 2020, 01:10:55 μμ »
Επειδή αυτό το θέμα έχει μείνει άλυτο στο μυαλό μου, συγγνώμη για την επαναφορά μετά από 2 χρόνια, αλλά έχω κάποιες ερωτήσεις.
Επίσης όσον αφορά το θέμα με τη γεννήτρια τυχαίων αριθμών, δεν υπάρχει τέτοια συνάρτηση στη ΓΛΩΣΣΑ. Το ότι την αναφέρει στον ορισμό του αλγορίθμου ως παράδειγμα καμίας εισόδου εγώ το εκλαμβάνω ότι ακόμα και στην περίπτωση που ο αλγόριθμος δεν έχει explicit input θα έχει κάποια άλλη είσοδο π.χ. από άλλο υποπρόγραμμα ή αρχείο ή Pipe/socket η δεν ξέρω τι άλλο. Το θέμα όμως είναι ότι αυτές οι δυνατότητες δεν υπάρχουν στη ΓΛΩΣΣΑ.
Η απάντηση στην ερώτηση "μια συνάρτηση μπορεί να μην έχει καθόλου παραμέτρους;", εξαρτάται άμεσα από αυτό που συζητούσατε, τι θεωρείται ως είσοδος σε έναν αλγόριθμο.
Με τα λόγια του βιβλίου:
"Η περίπτωση που δεν δίνονται τιμές δεδομένων εμφανίζεται, όταν ο αλγόριθμος δημιουργεί και επεξεργάζεται κάποιες πρωτογενείς τιμές με τη βοήθεια συναρτήσεων παραγωγής τυχαίων αριθμών ή με τη βοήθεια άλλων απλών εντολών."
Αυτές οι απλές εντολές τι μπορεί να είναι; Πρώτο πράγμα που μου έρχεται στο μυαλό είναι απευθείας εκχωρήσεις τιμών, πχ α <- 12;

Αν αυτές οι απλές εντολές είναι κάτι άλλο (τι; ), κάτι που επίσης δεν μπορεί να υλοποιηθεί με Γλώσσα, όπως οι συναρτήσεις παραγωγής τυχαίων αριθμών, τότε όντως δεν μπορεί να υπάρχει αλγόριθμος γραμμένος σε Γλώσσα (τουλάχιστον αν μείνουμε σε μια αυστηρή προσέγγιση), ο οποίος να μην έχει είσοδο.
Αλλιώς_Αν αυτές οι απλές εντολές είναι αυτό που είπα, πχ εκχωρήσεις τιμών, τότε μπορεί ένας αλγόριθμος γραμμένος σε Γλώσσα να έχει είσοδο "καμμία τιμή δεδομένων" και να εξακολουθεί να θεωρείται ότι έχει είσοδο (μέσω των "απλών" αυτών εντολών). Κατ' επέκταση, σε αυτή τη περίπτωση, μπορεί να υπάρχει συνάρτηση χωρίς παραμέτρους, η οποία παίρνει τιμές από κλήση άλλης συνάρτησης ή από απευθείας εκχωρήσεις εντός της.

Θεωρώ ατυχή και άχαρα αυτά τα θέματα βέβαια, εστιάζοντας στις αδυναμίες του βιβλίου και είναι και χιλιοειπωμένα, αλλά ένα Σ-Λ με την συγκεκριμένη ερώτηση, παραμένει νομίζω διφορούμενο... Ελπίζω να μην το δούμε σε εξετάσεις.
Γιατί, για το "καλώς ορισμένο" σε αυτό το μάθημα, έπαψα να ελπίζω :P
Άραγε, μετά από 20 χρόνια, αν πάμε σε python κάποια στιγμή, αναρωτιέμαι αν μάθαμε το μάθημά μας (περί του "καλώς ορισμένου") ή θα το διαιωνίσουμε στο κατά τα άλλα "νέο" ΠΣ...

υγ> το θέμα καλύτερα να μεταφερόταν στο "Θεωρία"
"Abstraction is not the first stage, but the last stage, in a mathematical development." MK
"I don't want to write about a high level thing, unless I fully understand about a low level thing" DK

Καρκαμάνης Γεώργιος

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1133
Απ: συναρτησεις και διαδικασιες χωρις ορισματα
« Απάντηση #21 στις: 22 Ιούν 2020, 11:12:33 μμ »
Το σχολικό βιβλιο στη σελιδα 179  στις διαδικασίες αναφέρει:

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

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

akalest0s

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 247
Απ: συναρτησεις και διαδικασιες χωρις ορισματα
« Απάντηση #22 στις: 23 Ιούν 2020, 12:34:09 πμ »
Γιώργο ευχαριστώ για την απάντηση (με ευθύτητα όχι με ειρωνεία). Το ξέρω αυτό, και έχει ειπωθεί και εδώ. Αλλά θεωρώ αυτό το συμπέρασμα πολύ στον αέρα, ειδικά για ένα βιβλίο που ξέρουμε όλοι πόσες αδυναμίες φραστικές έχει.
Για τις διαδικασίες δεν τίθεται θέμα. Για τις συναρτήσεις μιλάμε.
Το πόσο επίφοβο είναι να βασιστούμε σε αυτό που λέτε ("στις συναρτήσεις δεν αναφέρει κάτι αντίστοιχο"), φαίνεται από πολλά κακογραμμένα σημεία στο βιβλίο. Ένα από τα πολλά, είναι αμέσως μετά: μπαχαλωδώς αντιμετωπίζει την κλήση υποπρογράμματος από υποπρόγραμμα.
"Κάθε διαδικασία ή συνάρτηση μπορεί να καλείται από το κύριο πρόγραμμα ή από άλλη διαδικασία ή συνάρτηση."
Ενώ είναι υποτίθεται στο υποκεφάλαιο διαδικασιών, πετάει μια παράγραφο για όλα τα υποπρογράμματα, όπου χωρίς σαφές ξεκαθάρισμα, λέει ότι όλα μπορούν να καλούν όλα. Έτσι το θέλανε; Ή θέλανε να ξεχωρίσουν ότι οι συναρτήσεις δεν μπορούν να καλούν διαδικασίες; Ή δεν το είχαν ακόμη αποφασίσει όταν γραφόταν το βιβλίο;

Απορώ πως σε αυτό το σημείο βγάζετε ένα τόσο προωθημένο συμπέρασμα από μια τόσο μικρή λεπτομέρεια, ενός τόσο κακογραμμένου βιβλίου;
Μπορεί κάποιος να αναιρέσει αυτό που ισχυρίστηκα περί εισόδου; αυτό θα διαφώτιζε περισσότερο την κατάσταση.
"Abstraction is not the first stage, but the last stage, in a mathematical development." MK
"I don't want to write about a high level thing, unless I fully understand about a low level thing" DK