Μιας και έχει περάσει σε προσωπικό επίπεδο η συζήτηση ας απαντήσω ακόμη μία φορά.
Στο κεφάλαιο 10 λέει το σχολικό βιβλίο "Κάθε διαδικασία ή συνάρτηση μπορεί να καλείται απο το κύριο πρόγραμμα ή από άλλη διαδικασία η συνάρτηση.". Αν όμως μια διαδικασία περιέχει εντολή εισόδου-εξόδου μπορεί να κληθεί από συνάρτηση;
Εφόσον η διαδικασία εισόδου/εξόδου γίνεται στην διαδικασία, γιατί να μην μπορεί να γίνει;
Προφανώς και ΔΕΝ μπορεί να γίνει αυτό, σε καμία περίπτωση.
Αν δεχτούμε ότι μια διαδικασία η οποία διαβάζει από το πληκτρολόγιο μπορεί να κληθεί από μια συνάρτηση τότε
η συνάρτηση ουσιαστικά θα έχει είσοδο και από εκεί και φυσικά θα μπορεί να έχει έξοδο και εκεί.
Από τη στιγμή που μια συνάρτηση δέχεται είσοδο μόνο από τη λίστα παραμέτρων και επιστρέφει αποτέλεσμα μόνο με το όνομά της και με κανένα άλλον τρόπο τότε δεν μπορεί να καλεί διαδικασία η οποία εσωτερικά έχει είσοδο/έξοδο
αν ήταν έτσι θα μετονόμαζα τις Γράψε/Διάβασε σε διαδικασίες και θα τις καλούσα μέσα από συναρτήσεις ώστε να καταστρατηγήσω τον ορισμό της συνάρτησης
Νομίζω είναι ξεκάθαρο.
Αν μπορώ να καλέσω μια διαδικασία από συνάρτηση τότε μπορώ να βάλω ένα Γράψε μέσα στη διαδικασία, κάτι που σημαίνει ότι η συνάρτηση θα έχει και δεύτερη έξοδο κάτι που απαγορεύεται ρητά στο βιβλίο. αφού η συνάρτηση επιστρέφει μια τιμή μόνο με το όνομά της.
Επίσης δεν κατάλαβα σε τι διαφέρει το να χρησιμοποιούμε Γράψε/Διάβασε μέσα σε μια συνάρτηση από το να χρησιμοποιούμε Γράψε/Διάβασε μέσα σε Διαδικασία που καλείται από Συνάρτηση. Είναι ακριβώς το ίδιο πράγμα.
Τα ξαναλέω λοιπόν όσο πιο απλά μπορώ
Δεν είπα ότι δεν μπορείς να καλέσεις διαδικασία μέσα από συνάρτηση με την έννοια ότι απαγορεύεται και είναι λάθος. Είπα ότι αν δεχτούμε πως μπορούμε να καλέσουμε διαδικασία η οποία μέσα έχει διάβασε/γράψε μέσα από συνάρτηση είναι το ίδιο σαν να επιτρέπουμε διάβασε/γράψε μέσα σε συνάρτηση.
Άρα το πρόβλημά μου δεν είναι η κλήση διαδικασίας μέσα από συνάρτηση όπως λανθασμένα θες να παρουσιάσεις αλλά η κλήση διαδικασίας μέσα από συνάρτηση η οποία έχει μέσα της εντολές εισόδου/εξόδου.
Κατά τη γνώμη μου το πιο λογικό σενάριο προσπαθώντας να αποκρυπτογραφήσουμε το κακογραμμένο κεφάλαιο 10 είναι ότι η κλήση διαδικασίας μέσα από συνάρτηση ή το Διάβασε/Γράψε μέσα σε συνάρτηση είναι κακή πρακτική αλλά όχι λάθος από το οποίο μπορούν να κοπούν μονάδες.
Το ίδιο έκανες και προηγουμένως όπου με παρουσίασες να λέω σε μήνυμά μου που “ανακαλύψες” το 2007, διαφορετικά πράγματα από ότι λέω τώρα. Όταν σου υπέδειξα το λάθος σου δεν είχες καν την ευθιξία να ζητήσεις συγγνώμη, αν φυσικά το έκανες κατά λάθος.
Ευρυπίδη ζητώ συγγνώμη, δεν κατάλαβα τι εννοούσες. Είσαι όντως σταθερός στις απόψεις σου και εγώ διαστρέβλωσα. Αποδεικνύεται άλλωστε και από τις παραπάνω παραθέσεις.
Με το «Προφανώς και
ΔΕΝ μπορεί να γίνει αυτό,
σε καμία περίπτωση», με το «και με κανένα άλλον τρόπο τότε δεν μπορεί να καλεί διαδικασία» και με το "Αν μπορώ να καλέσω μια διαδικασία από συνάρτηση τότε μπορώ να βάλω ένα Γράψε μέσα στη διαδικασία, κάτι που σημαίνει ότι η συνάρτηση θα έχει και δεύτερη έξοδο κάτι που απαγορεύεται ρητά στο βιβλίο. αφού η συνάρτηση επιστρέφει μια τιμή μόνο με το όνομά της"
εννοείς το «Δεν είπα ότι δεν μπορείς να καλέσεις διαδικασία μέσα από συνάρτηση με την έννοια ότι απαγορεύεται και είναι λάθος. Είπα ότι αν δεχτούμε πως μπορούμε να καλέσουμε διαδικασία η οποία μέσα έχει διάβασε/γράψε μέσα από συνάρτηση είναι το ίδιο σαν να επιτρέπουμε διάβασε/γράψε μέσα σε συνάρτηση.»
Παράλληλα να σε ευχαριστήσω και για το μάθημα περί γλωσσών προγραμματισμού. Έχω όμως μια απορία. Η Haskell συναρτησιακή γλώσσα δεν είναι; Η ΓΛΩΣΣΑ με την οποία ασχολούμαστε μήπως είναι διαδικασιακή όπως η Pascal και η Basic που συμπληρώνουν το διδακτικό πακέτο; Τι σχέση έχουν η ΓΛΩΣΣΑ και η Haskell; Επίσης υπάρχει καμιά αναφορά για pure functions στο διδακτικό πακέτο;
Α, και κάτι ακόμα.
δεν θέλεις να κάνεις διάλογο, αλλά να συμφωνήσουμε όλοι πόσο δίκιο έχεις.
Παράθεση από: Καρκαμάνης Γεώργιος στις Χθες στις 03:24:22 μμ
Από τη στιγμή που δεν υπάρχει κάποιος περιορισμός ,τότε ΝΑΙ μια συνάρτηση μπορεί να καλέσει μία διαδικασία η οποία διαβάζει ή εμφανίζει αποτελέσματα.
άρα μπορούμε μέσα σε Συνάρτηση να έχουμε Διάβασε / Γράψε κατά τη γνώμη σου?
Κατά τα άλλα εγώ δεν θέλω να κάνω διάλογο αλλά να συμφωνήσουμε όλοι πόσο δίκαιο έχω. Δεν εκφράστηκε με σαφήνεια ο Καρκαμάνης; Δεν αιτιολόγησε; Γιατί τον ρωτάς ξανά;
Στην ερώτηση "Τι υποπρόγραμμα πρέπει να χρησιμοποιήσεις διαδικασία ή συνάρτηση για την είσοδο ενός δεδομένου", η σωστή απάντηση είναι "Διαδικασία".
Αυτοί που δεν έχουν και μεγάλη σχέση με το μάθημα είναι αυτοί που έγραψαν στο βιβλίο καθηγητή την απάντηση "Συνάρτηση". Δεν ξέρω ποιοι είναι ονομαστικά. Όποιοι είναι. Δεν αλλάζει κάτι για μένα ακόμα και αν είναι οι ίδιοι οι συγγραφείς του βιβλίου.
Αφού το λες εσύ, έτσι θα είναι, ακόμη και οι συγγραφείς για σένα μπορεί να μην έχουν μεγάλη σχέση με το μάθημα.
Μακάρι να ερθούν στο στέκι και να συζητήσουμε τις ασάφειες του μαθήματος οι οποίες έχουν συγκεντρωθεί, έχουν αναρτηθεί και έχει ξοδεύτει πάρα πολύς χρόνος από πολλά άτομα προσπαθώντας να καταλάβουμε τι θέλουν να πουν.
Για πολλές από τις ασάφειες έχουν σταλεί διευκρινίσεις. Έχεις αναρωτηθεί γιατί για άλλες δεν έχει συμβεί αυτό. Μήπως κάποιοι δεν τις θεωρούν ασάφειες γιατί είναι ξεκάθαρο τι συμβαίνει.
Δεν ξέρω γιατί αλλά το κλίμα εδώ μέσα θεωρώ ότι βοήθησε στην εξάπλωση αυτής της ασάφειας. Αναφέρομαι στην ψηφοφορία που είχε γίνει το 2007. Καταρχήν πιστεύω ότι οι ψηφοφορίες δεν δίνουν απάντηση σε επιστημονικά θέματα. Καταγράφουν τάσεις ίσως.
https://alkisg.mysch.gr/steki/index.php?topic=920.0Επιτρέπονται ΓΡΑΨΕ - ΔΙΑΒΑΣΕ στο εσωτερικό μιας συνάρτησης;
Ναι, αλλά δεν προτείνονται: 25
Όχι, είναι συντακτικό λάθος: 44
Αναφέρθηκαν κάποιοι λόγοι από συναδέρφους γιατί θα μπορούσε να υπάρχει είσοδος σε συνάρτηση παραπάνω στο τωρινό νήμα. Η συγκεκριμένη όμως ψηφοφορία θέλοντας και μη περνάει το μήνυμα ότι η χρήση της συνάρτησης είναι λάθος για την είσοδο των δεδομένων. Μου θυμίζει την αντίστοιχη ερώτηση:
Πρέπει να έχουν εκπαίδευση τα παιδιά των ρομά;
Ναι, αλλά όχι στο σχολείο των παιδιών μου.
Όχι, είναι αδύνατον να τους εκπαιδεύσεις.
Ότι και να απαντήσει κάποιος, είναι σίγουρο ότι είναι ρατσιστής.
Χωρίς να ξέρω αν τη συγκεκριμένη απάντηση στο βιβλίο καθηγητή την έγραψαν αυτοί, θέλω να πω πως τόσα χρόνια που προσπαθούσαμε να αποσαφηνίσουμε τα γκρίζα σημεία του διδακτικού πακέτου, περίμενα από τους συγγραφείς να εμφανιστούν στο φορουμ και να δώσουν απαντήσεις ως προς το τι θέλουν να πουν.
Όσο και αν πιστεύω στην συνεισφορά του Στεκιού τόσο στην εκπαίδευση της πληροφορικής όσο και στην αντιμετώπιση των προβλημάτων του κλάδου, για αυτό άλλωστε κάθομαι και ασχολούμαι, πρέπει να βάλουμε κάποια πράγματα στη θέση τους..
Από πότε αλήθεια ένα φόρουμ
κάποιων καθηγητών πληροφορικής απέκτησε
θεσμικό ρόλο. Ή μήπως
κάποιοι εδώ μέσα νομίζουν ότι απέκτησαν θεσμικό ρόλο; Και γιατί οι συγγραφείς ενός βιβλίου, που έχει περάσει από κρίση και είναι όλοι τους πανεπιστημιακοί, είναι υποχρεωμένοι να εγγραφούν σε ένα φόρουμ και να απαντούν στον κάθε τυχαίο και να δέχονται ακόμα και τρολάρισμα ανωνύμων. Και στην τελευταία ανάλυση, τους κάλεσε κανείς επίσημα από εδώ μέσα; Και αν ναι με ποια ιδιότητα;
Καλή συνέχεια σε όλους