Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Γ΄ Λυκείου => Μήνυμα ξεκίνησε από: JohnyF στις 10 Μαρ 2016, 01:55:30 ΜΜ

Τίτλος: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: JohnyF στις 10 Μαρ 2016, 01:55:30 ΜΜ
καλησπερα παιδια νομιζω ο τιτλος εκφραζει την ερωτηση!!γιανεται??πχ Χ<-ΑΘΡΟΙΣΜΑ() Η ΚΑΛΕΣΕ ΑΘΡΟΙΣΜΑ()..στο προγραμμα γλωσσα δεν το τρεχει λεει πως περιμενει λιστα παραμετρων..αλλα κολαει οχι στο βασικο προγραμμα που καλειται το υποπρογραμμα..οταν παει να το διαβασει..ευχαριστω!!
Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: petrosp13 στις 10 Μαρ 2016, 02:14:02 ΜΜ
Μια διαδικασία μπορεί να μην έχει παραμέτρους όταν υλοποιεί μια ολοκληρωμένη λειτουργία (ανάγνωση, επεξεργασία, εκτύπωση)
Μια συνάρτηση δεν έχει νόημα (για το μάθημα μας) να μην έχει παραμέτρους, διότι δεν μπορεί να παράγει τυχαίους αριθμούς, οπότε θα πρέπει να υπολογίζει πάντα το ίδιο αποτέλεσμα
Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: JohnyF στις 10 Μαρ 2016, 02:21:51 ΜΜ
ας πουμε οτι θελω να φτιαξω μια συναρτηση που θα υπολογιζει το αθροισμα των περιττων αριθμων μεχρι το δεκα...καπως ετσι
ΣΥΝΑΡΤΗΣΗ ΠΕΡΙΤΤΟΙ():ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:i,sum
ΑΡΧΗ
ΠΕΡΙΤΤΟΙ<-0
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10 ΜΕ_ΒΗΜΑ 2
  ΠΕΡΙΤΤΟΙ<-ΠΕΡΙΤΤΟΙ+i
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

αυτο δεν ειναι κατι τρελο για να μη γινεται..
αντιθετως αυτο τρεχει

ΣΥΝΑΡΤΗΣΗ ΠΕΡΙΤΤΟΙ(Α):ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Α
ΑΚΕΡΑΙΕΣ:i,sum
ΑΡΧΗ
ΠΕΡΙΤΤΟΙ<-0
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10 ΜΕ_ΒΗΜΑ 2
  ΠΕΡΙΤΤΟΙ<-ΠΕΡΙΤΤΟΙ+i
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

απλα ειναι λιγο κουλο...
Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: JohnyF στις 10 Μαρ 2016, 07:12:35 ΜΜ
βασικα τωρα που το ψιλοσκεφτηκα αυτο που καταλαβα ειναι πως λογω οτι η συναρτηση παραπεμεπει στον μαθηματικο ορισμο...δλδ οτι ειναι η σχεση μεταξυ δυο η περισσοτερων ποσοτητων.(μιας εξοδου και εισοδων).οποτε οπως στα μαθηματικα δεν μπορουμε να πουμε F() χωρις ορισμα το ιδιο συμβαινει και σε αυτη τη περιπτωση..θα πρεπει να υπαρχει τουλαχιστον μια εισοδος ωστε να υπαρχει η εξοδος..αυτο νοηματικα με καλυπτει...αν καποιος διαφωνει θελω να το πει βεβαιως!!
Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: Laertis στις 10 Μαρ 2016, 07:22:08 ΜΜ
 ;)
Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: Κωστας τζιαννης στις 26 Μαΐου 2018, 12:45:07 ΠΜ
στη γλωσσα οταν δεν εχεις παραμετρο δεν λες καλεσε ΔΙΑΔ() ΑΛΛΑ καλεσε ΔΙΑΔ  χωρις παρενθεσεις σε αντιθεση με τις περισσοτερες κανονικες γλωσσες προγραμματισμου.ακομα στη γλωσσα οταν την οριζεις λες ΔΙΑΔΙΚΑΣΙΑ ΔΙΑΔ και οχι ΔΙΑΔΙΚΑΣΙΑ ΔΙΑΔ() οταν δεν εχεις παραμετρους

πχ
προγραμμα ...
αρχη
καλεσε ΔΙΑΔ
τελος_προγραμματος

ΔΙΑΔΙΚΑΣΙΑ ΔΙΑΔ
αρχη
γραψε "hey you"
τελος_διαδικασιας
Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: pvs στις 26 Μαΐου 2018, 08:40:16 ΜΜ
και με παρενθέσεις ( ) δουλεύει η κλήση της διαδικασίας
Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: Κωστας τζιαννης στις 26 Μαΐου 2018, 08:58:51 ΜΜ
Παράθεση από: pvs στις 26 Μαΐου 2018, 08:40:16 ΜΜ
και με παρενθέσεις ( ) δουλεύει η κλήση της διαδικασίας
τι να πω μαλλον θα εχω παλιοτερη εκδοση.διευκρινιση δεν λεω για το μαθημα και τι λεει το βιβλιο μιλαω για τον διερμηνευτη της γλωσσας
Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: anasta στις 26 Μαΐου 2018, 09:27:16 ΜΜ
Στα παρακάτω λοιπόν τι θα απαντούσατε?
1. Σε μια Συνάρτηση μπορούμε να μην έχουμε παραμέτρους.
2. Τα υποπρογράμματα μπορούν να μην έχουν καμία παράμετρο.
Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: Κωστας τζιαννης στις 26 Μαΐου 2018, 09:35:51 ΜΜ
DEL
Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: evry στις 27 Μαΐου 2018, 07:37:45 ΠΜ
Παράθεση από: anasta στις 26 Μαΐου 2018, 09:27:16 ΜΜ
Στα παρακάτω λοιπόν τι θα απαντούσατε?
1. Σε μια Συνάρτηση μπορούμε να μην έχουμε παραμέτρους.
2. Τα υποπρογράμματα μπορούν να μην έχουν καμία παράμετρο.

Λάθος και τα δυο!
Μια συνάρτηση πρέπει να έχει τουλάχιστον μια παράμετρο αφού κάθε υποπρόγραμμα πρέπει να έχει κάποια είσοδο. Η διαδικασία μπορεί να έχει είσοδο από το πληκτρολόγιο με χρήση της Διάβασε. Στην συνάρτηση όμως απαγορεύεται αυτό άρα το μόνο σημείο εισόδου είναι η λίστα παραμέτρων. Για αυτό η συνάρτηση δεν μπορεί να έχει κενή λίστα παραμέτρων ενώ η διαδικασία μπορεί.
Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: Κωστας τζιαννης στις 27 Μαΐου 2018, 06:34:54 ΜΜ
Παράθεση από: evry στις 27 Μαΐου 2018, 07:37:45 ΠΜ
Λάθος και τα δυο!
Μια συνάρτηση πρέπει να έχει τουλάχιστον μια παράμετρο αφού κάθε υποπρόγραμμα πρέπει να έχει κάποια είσοδο. Η διαδικασία μπορεί να έχει είσοδο από το πληκτρολόγιο με χρήση της Διάβασε. Στην συνάρτηση όμως απαγορεύεται αυτό άρα το μόνο σημείο εισόδου είναι η λίστα παραμέτρων. Για αυτό η συνάρτηση δεν μπορεί να έχει κενή λίστα παραμέτρων ενώ η διαδικασία μπορεί.

το εσβησα αυτο που εγραψα .δηλαδη στη γλωσσα δεν μπορεις να εχεις μια τετοια συναρτηση?
ΠΡΟΓΡΑΜΜΑ ασκηση
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: α
ΑΡΧΗ
  α <- προσθεση
  ΓΡΑΨΕ α
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ


ΣΥΝΑΡΤΗΣΗ προσθεση: ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ

  ΑΚΕΡΑΙΕΣ: χ, υ
ΑΡΧΗ
  χ <- 1
  υ <- 3
  προσθεση <- χ + υ

ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

αρα λοιπον ο διερμηνευτης της γλωσσας δεν συμβαδιζει με το σχολικο βιβλιο?ρωταω γιατι δεν ξερω και επειδη ο διερμηνευτης της γλωσσας γραφει 4 σαν απαντηση
Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: evry στις 27 Μαΐου 2018, 07:28:02 ΜΜ
Δυστυχώς ή ευτυχώς ακολουθούμε το βιβλίο.
Δηλαδή αν μια συνάρτηση δεν έχει είσοδο από τη λίστα παραμέτρων δεν μπορεί να έχει είσοδο από πουθενά αλλού, οπότε δεν μπορεί να θεωρηθεί καν αλγοριθμική διαδικασία. Δες και τον ορισμό του αλγορίθμου του βιβλίου αλλά και γενικότερα. Μια υπολογιστική διαδικασία που δεν έχει είσοδο, υπολογίζει συνεχώς το ίδιο αποτέλεσμα δηλαδή δεν αποτελεί γενικευμένη υπολογιστική διαδικασία γενικά δεν θεωρείται αλγόριθμος αλλά αυτό πάλι είναι σχετικό και φυσικά θέμα ορισμού.

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

Η μόνη περίπτωση που μπορώ να σκεφτώ να μην έχει μια συνάρτηση παραμέτρους είναι να καλεί εσωτερικά μια άλλη συνάρτηση παραγωγής τυχαίων αριθμών. Εδώ η κενή λίστα θα είχε ίσως νόημα. Δεν έχουμε όμως κάτι τέτοιο στο βιβλίο. Ο διερμηνευτής νομίζω έχει τέτοια συνάρτηση.
Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: Κωστας τζιαννης στις 27 Μαΐου 2018, 07:46:54 ΜΜ
Παράθεση από: evry στις 27 Μαΐου 2018, 07:28:02 ΜΜ
Δυστυχώς ή ευτυχώς ακολουθούμε το βιβλίο.
Δηλαδή αν μια συνάρτηση δεν έχει είσοδο από τη λίστα παραμέτρων δεν μπορεί να έχει είσοδο από πουθενά αλλού, οπότε δεν μπορεί να θεωρηθεί καν αλγοριθμική διαδικασία. Δες και τον ορισμό του αλγορίθμου του βιβλίου αλλά και γενικότερα. Μια υπολογιστική διαδικασία που δεν έχει είισοδο, υπολογίζει συνεχώς το ίδιο αποτέλεσμα δηλαδή δεν αποτελεί γενικευμένη υπολογιστική διαδικασία γενικά δεν θεωρείται αλγόριθμος αλλά αυτό πάλι είναι σχετικό και φυσικά θέμα ορισμού.

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

Η μόνη περίπτωση που μπορώ να σκεφτώ να μην έχει μια συνάρτηση παραμέτρους είναι να καλεί εσωτερικά μια άλλη συνάρτηση παραγωγής τυχαίων αριθμών. Εδώ η κενή λίστα θα είχε ίσως νόημα. Δεν έχουμε όμως κάτι τέτοιο στο βιβλίο. Ο διερμηνευτής νομίζω έχει τέτοια συνάρτηση.
ναι οκ απλα ειχα δει και μια παλιοτερη συζητηση μεταξυ σας που διαφωνουσατε αλλα ηταν παλια.λογικα τωρα θα το εχουν ξεκαθαρισει το ζητημα αν εχει αλλαξει το βιβλιο.η συζητηση σας που ειχα δει ηταν το 2010 η το 2009 νομιζω.οποτε καλυτερα να βαζω καποιες ασκησεις η να λυνω απο το να απανταω σε θεωρητικες ερωτησεις γιατι ακομα και πραγματα που μου φαινονται δεδομενα ανατρεπονται σε αυτο το μαθημα.στις κανονικες γλκωσσες επειδη υπαρχουν και oi global μεταβλητες μια συναρτηση μπορει να βγαλει διαφορετικα αποτελεσματα χωρις εισοδο.τωρα που το ειπα ελυσα και μια ωραια ασκηση που ειχες βαλει με μια μαγικη ακολουθια στους πινακες.παντως γινεται πολυ καλη δουλεια εδω μεσα απο ολους
Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: pvs στις 27 Μαΐου 2018, 07:54:33 ΜΜ
Μια ερώτηση και από εμένα, ενα πρόγραμμα μπορεί να μην έχει καθόλου μεταβλητές Σωστό ή Λαθος?  Θεωρητικά μπορεί αν έχουμε μόνο διαδικασίες που απλά τις καλούμε από το κύριο πρόγραμμα
Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: andreas_p στις 27 Μαΐου 2018, 08:11:27 ΜΜ
ΠΕΡΙΤΤΟΊ <- ΠΕΡΙΤΤΟΊ  + Ι

Αναδρομή  (;)

Εκτός  ύλης !
Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: wmaster στις 10 Ιουν 2018, 09:42:50 ΠΜ
Καλημέρα,
μια συνάρτηση μπορεί να μην έχει παραμέτρους. π.χ μια συνάρτηση που υπολογίζει και επιστρέφει τον αριθμό Π με 10 δεκαδικά ψηφία, χρησιμοποιώντας μαθηματικό τύπο. Η είσοδος μπορεί να είναι καμία μία ή περισσότερες τιμές.
Συνάρτηση Π():Πραγματική
Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: evry στις 10 Ιουν 2018, 10:50:27 ΠΜ
Αυτό που λες δεν ισχύει.
Ουσιαστικά αυτό που περιγράφεις είναι ένας αλγόριθμος του οποίου η παράμετρος είναι το πλήθος των δεκαδικών ψηφίων (10 =έχεις διαλέξει)
Αν δεν βάλεις παράμετρο έχεις μια υπολογιστική διαδικασία η οποία υπολογίζει πάντα ακριβώς το ίδιο πράγμα, δεν είναι γενικευμένη δηλαδή και δεν ξέρω κατά πόσο μπορεί να χαρακτηριστεί αλγόριθμος. Είναι θέμα ορισμού εδώ. Αν ψάξεις στους πιο πολλούς ορισμούς επιτρέπεται (zero-input algorithms).

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

Όμως στο μάθημά μας, αν δεις τον ορισμό του αλγορίθμου στο κεφάλαιο 2 αναφέρει ότι σε αυτή την περίπτωση η είσοδος έρχεται από συνάρτηση παραγωγής τυχαίων αριθμών.
Φυσικά στο πλαίσιο του μαθήματος το σημαντικότερο επιχείρημα είναι ότι ενώ το βιβλίο το αναφέρει ρητά για τις διαδικασίες δεν το αναφέρει για τις συναρτήσεις. Γιατί άραγε;
Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: wmaster στις 10 Ιουν 2018, 11:36:24 ΠΜ
Καλημέρα και πάλι,
η συνάρτηση ως αλγόριθμος (αυτόνομο τμήμα) μπορεί να έχει καμία μία ή περισσότερες τιμές ως είσοδο.
Το βιβλίο αναφέρει ότι ένας αλγόριθμος μπορεί να μην έχει είσοδο καθώς "η είσοδος έρχεται από συνάρτηση παραγωγής τυχαίων αριθμών" επομένως υπάρχει τέτοια συνάρτηση.
Η συνάρτηση Συνάρτηση Τυχαίος():Πραγματική, χωρίς παραμέτρους, προφανώς είναι σωστή, σύμφωνα και με αυτά που αναφέρεις.

Σχετικά με την χρησιμότητα της συνάρτησης που υπολογίζει το Π δεν γράφω ότι έχει νόημα μια τέτοια συνάρτηση, αλλά δεν καταλαβαίνω ποιον κανόνα παραβιάζει. Το βιβλίο δεν αναφέρει ότι μια συνάρτηση υποχρεωτικά πρέπει να έχει παραμέτρους.
Γιατί πρέπει να είναι γενικευμένη μια συνάρτηση?
Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: evry στις 10 Ιουν 2018, 12:03:07 ΜΜ
Παράθεση από: wmaster στις 10 Ιουν 2018, 11:36:24 ΠΜ
Το βιβλίο δεν αναφέρει ότι μια συνάρτηση υποχρεωτικά πρέπει να έχει παραμέτρους.

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

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

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

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

υγ> το θέμα καλύτερα να μεταφερόταν στο "Θεωρία"
Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: Καρκαμάνης Γεώργιος στις 22 Ιουν 2020, 11:12:33 ΜΜ
Το σχολικό βιβλιο στη σελιδα 179  στις διαδικασίες αναφέρει:

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

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

Απορώ πως σε αυτό το σημείο βγάζετε ένα τόσο προωθημένο συμπέρασμα από μια τόσο μικρή λεπτομέρεια, ενός τόσο κακογραμμένου βιβλίου;
Μπορεί κάποιος να αναιρέσει αυτό που ισχυρίστηκα περί εισόδου; αυτό θα διαφώτιζε περισσότερο την κατάσταση.
Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: thaaanos στις 08 Μαρ 2021, 02:14:53 ΜΜ
Μία συνάρτηση χωρίς ορίσματα είναι μια τιμή

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



Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: alkisg στις 08 Μαρ 2021, 02:21:06 ΜΜ
Στον Διερμηνευτή, στην Pascal και αλλού, δεν επιτρέπεται κλήση συνάρτησης ορισμένης από τον χρήστη σε σημεία όπου χρειάζεται αποτίμηση κατά τη μεταγλώττιση, όπως είναι για παράδειγμα τα όρια ενός πίνακα.

Δηλαδή το παρακάτω δεν είναι αποδεκτό:

ΜΕΤΑΒΛΗΤΕΣ
    ΑΚΕΡΑΙΕΣ: πίνακας[συνάρτηση_όρια]
Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: thaaanos στις 08 Μαρ 2021, 04:11:40 ΜΜ
ναι προφανώς δεν μπορείς να το χρησιμοποιήσεις για δήλωση μεγέθους πίνακα, αλλά υπάρχουν πολλές άλλες περιπτώσεις που θες μια κοινή σταθερά, πχ το π, ή άλλες σταθερές, κάποιο δ ή ε ή ακόμα και μια τιμή φρουρό.
Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: bugman στις 08 Μαρ 2021, 06:32:27 ΜΜ
Παράθεση από: alkisg στις 08 Μαρ 2021, 02:21:06 ΜΜ
Στον Διερμηνευτή, στην Pascal και αλλού, δεν επιτρέπεται κλήση συνάρτησης ορισμένης από τον χρήστη σε σημεία όπου χρειάζεται αποτίμηση κατά τη μεταγλώττιση, όπως είναι για παράδειγμα τα όρια ενός πίνακα.

Δηλαδή το παρακάτω δεν είναι αποδεκτό:

ΜΕΤΑΒΛΗΤΕΣ
    ΑΚΕΡΑΙΕΣ: πίνακας[συνάρτηση_όρια]
Με πιο απλά λόγια σε δήλωση στατικού πίνακα (θα έχει ήδη το προαποφασισμένο μέγεθος πριν την εκτέλεση), μπαίνουν μόνο σταθερές τιμές. Σταθερή τιμή μπορεί να είναι μια απλή αριθμητική τιμή πχ 100 ή ένα όνομα σταθερής τιμής που δηλώνει μια αριθμητική τιμή.
Η τεχνολογία έχει προχωρήσει ως προς τη διαχείριση μνήμης ενός υπολογιστή και για το λόγο αυτό επικρατούν οι δυναμικοί πίνακες οι οποίοι μπορούν να αυξομοιώσουν μέγεθος.
Έχουμε περάσει την εποχή της χρήσης μιας επίπεδης μνήμης. Η μνήμη είναι τεμαχισμένη σε μπλοκ τα οποία μπορούν να αναδιαταχτούν από το λειτουργικό σύστημα, με το λεγόμενο Memory Management Unit MMU. Για το   λόγο αυτό μιλάμε για εικονική μνήμη, μέρος της οποίας μπορεί να είναι ακόμα και στο δίσκο (swap file η partition).

Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: alkisg στις 08 Μαρ 2021, 08:17:33 ΜΜ
Παράθεση από: bugman στις 08 Μαρ 2021, 06:32:27 ΜΜ
Με πιο απλά λόγια σε δήλωση στατικού πίνακα (θα έχει ήδη το προαποφασισμένο μέγεθος πριν την εκτέλεση), μπαίνουν μόνο σταθερές τιμές.

Δεν μπαίνουν μόνο σταθερές τιμές αλλά οποιαδήποτε έκφραση σταθερής αποτίμησης που η τιμή της είναι γνωστή κατά τη μεταγλώττιση. Π.χ. το παρακάτω είναι αποδεκτό στον Διερμηνευτή (αν και πιθανώς όχι από όλους αποδεκτό για την ΑΕΠΠ) και δημιουργεί πίνακα με 4 στοιχεία:

Κώδικας (glossa) [Επιλογή]

ΠΡΟΓΡΑΜΜΑ ΌριαΠίνακα
ΣΤΑΘΕΡΕΣ
  Ν = 10
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: πίνακας[Α_Μ(Τ_Ρ(2*Ν))]
ΑΡΧΗ
  ΓΡΑΨΕ "Ο πίνακας έχει τόσα στοιχεία: ", Α_Μ(Τ_Ρ(2*Ν))
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: telits στις 05 Απρ 2021, 02:19:57 ΠΜ
Συγγνώμη αν έχει απαντηθεί ξανά το ερώτημα....
Αν μια πραγματικη παραμετρος είναι ΑΚΕΡΑΙΑ και η
αντίστοιχη τυπική της λογική... τι λάθος θεωρείται;
κάποιοι μεταγλωττιστές σίγουρα θα το εντόπιζαν.
Όμως στη ΓΛΩΣΣΑ; υπάρχει σε κάποιο σημείο της ύλης γραμμένο;
Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: pgrontas στις 05 Απρ 2021, 08:35:45 ΠΜ
Παράθεση από: telits στις 05 Απρ 2021, 02:19:57 ΠΜ
Συγγνώμη αν έχει απαντηθεί ξανά το ερώτημα....
Αν μια πραγματικη παραμετρος είναι ΑΚΕΡΑΙΑ και η
αντίστοιχη τυπική της λογική... τι λάθος θεωρείται;
κάποιοι μεταγλωττιστές σίγουρα θα το εντόπιζαν.
Όμως στη ΓΛΩΣΣΑ; υπάρχει σε κάποιο σημείο της ύλης γραμμένο;

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

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

ΥΓ: Για να μην παρεξηγηθώ, θα έγραφα αντικανονικού τερματισμού μόνο αν με το ζόρι έπρεπε να απαντήσω κάτι. Όπως λέει και ο Άλκης παρακάτω, υπάρχει θέμα με το ερώτημα αυτό.

Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: alkisg στις 05 Απρ 2021, 09:16:41 ΠΜ
Παράθεση από: Βιβλίο μαθητή, σελίδα 115
Συντακτικό είναι το σύνολο των κανόνων που καθορίζει τη νομιμότητα
της διάταξης και της σύνδεσης των λέξεων της γλώσσας για τη δημιουρ-
γία προτάσεων.
Η σημασιολογία (Semantics) είναι το σύνολο των κανόνων που καθορίζει
το νόημα των λέξεων και κατά επέκταση των εκφράσεων και προτάσεων
που χρησιμοποιούνται σε μία γλώσσα.

Η μεταγλώττιση ενός προγράμματος περιλαμβάνει συντακτικό αλλά και σημασιολογικό έλεγχο. Αναφέρονται σωστά στη σελίδα 115 του βιβλίου μαθητή.
Είναι λάθος μεταγλώττισης (στατικού ελέγχου) και συγκεκριμένα σημασιολογικό λάθος. Δεν είναι συντακτικό, δεν παραβιάζεται κανένας κανόνας σύνταξης.
Πιο τεχνικά, αφού η ΓΛΩΣΣΑ είναι strongly typed, ο σημασιολογικός αυτός έλεγχος είναι λογικό να γίνει ακριβώς μετά τον συντακτικό έλεγχο και την κατασκευή του abstract syntax tree, χωρίς να χρειαστεί να εκτελεστεί το πρόγραμμα.

Δυστυχώς το βιβλίο μαθητή τα λάθη χρόνου μεταγλώττισης τα λέει "λάθη κατά την υλοποίηση" στο κεφάλαιο της εκσφαλμάτωσης (σελ. 233),
ενώ το συμπληρωματικό υλικό (σελ. 116) περιορίζεται σε μια υποκατηγορία των λαθών χρόνου μεταγλώττισης, τα συντακτικά λάθη, οπότε μας αφήνει ακάλυπτους σε όλα τα σημασιολογικά λάθη.
Θεωρώ ότι πρέπει άμεσα να αλλαχθεί το διδακτικό πακέτο ώστε και οι δύο αυτές ενότητες να αναφέρονται σε "λάθη χρόνου μεταγλώττισης", ενώ μέχρι να γίνουν αυτές οι διορθώσεις, να μην μπει ερώτηση στις εξετάσεις που να ζητάει σημασιολογικά λάθη να χαρακτηριστούν ως συντακτικά.
Τίτλος: Απ: συναρτησεις και διαδικασιες χωρις ορισματα
Αποστολή από: evry στις 05 Απρ 2021, 10:16:52 ΠΜ
Με τα σημασιολογικά λάθη υπάρχει πράγματι θέμα, γιατί δυστυχώς πολλοί τα θεωρούν συντακτικά.
Ωστόσο δεν χρειάζεται να πάμε πολύ μακριά όσον αφορά τις εκχωρήσεις μεταξύ μεταβλητών/εκφράσεων διαφορετικών τύπων. Και το παρακάτω με βάση το βιβλίο λάθος είναι:

Κώδικας (glossa) [Επιλογή]

ΠΡΟΓΡΑΜΜΑ ΓΛΩΣΣΑ_IS_SUPER_STRONGLY_STRICT_TYPED
ΜΕΤΑΒΛΗΤΕΣ
  ΠΡΑΓΜΑΤΙΚΕΣ: Χ
ΑΡΧΗ
    Χ <- 6 div 2
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ