Μπάμπης ο Άλλος
Δραστήριο μέλος
Ο Μπάμπης ο Άλλος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Φοιτητής και μας γράφει απο Παλαιό Φάληρο (Αττική). Έχει γράψει 418 μηνύματα.
27-05-10
18:08
Η καλή εικόνα ποτέ δεν βλάπτει, εάν ο χρόνος περισσεύει. Εάν τώρα σπαταλίσεις 10 λεπτά παραπάνω στο διάγραμμα ροής για να το κάνεις με χάρακα, και τα 10 αυτά λεπτά δεν σου περισσεύουν, τότε δεν αξίζει σε καμία μα καμία περίπτωση.
Δεν ελέγχουν τις γραμμές, τα προγράμματα ελέγχουν, αρκεί βέβαια να είναι ξεκάθαρο το ποιό σχήμα έχεις κάνει, μην είναι πχ ενα αμφιλεγόμενο ορθογώνιο/πλάγιο παραλληλεπίπεδο, να είναι ξεκάθαρο.
Δεν ελέγχουν τις γραμμές, τα προγράμματα ελέγχουν, αρκεί βέβαια να είναι ξεκάθαρο το ποιό σχήμα έχεις κάνει, μην είναι πχ ενα αμφιλεγόμενο ορθογώνιο/πλάγιο παραλληλεπίπεδο, να είναι ξεκάθαρο.
Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Μπάμπης ο Άλλος
Δραστήριο μέλος
Ο Μπάμπης ο Άλλος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Φοιτητής και μας γράφει απο Παλαιό Φάληρο (Αττική). Έχει γράψει 418 μηνύματα.
27-05-10
17:15
μωρέ, δεν φοβάμαι τα δύσκολα, την θεωρία φοβάμαι μόνο... μην χάσω μόρια από την θεωρία και συγκεκριμένα την θεωρία ανάπτυξης και όχι τα ΣΛ/θεωρητικές ασκήσεις κλπ.
Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Μπάμπης ο Άλλος
Δραστήριο μέλος
Ο Μπάμπης ο Άλλος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Φοιτητής και μας γράφει απο Παλαιό Φάληρο (Αττική). Έχει γράψει 418 μηνύματα.
27-05-10
16:59
πώπω αυτή η θεωρία είναι τόσο πολλή και βαρετή και απορώ τι από αυτά όλα μπορούν να ζητήσουν ώς ερώτηση ανάπτυξης... ><
Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Μπάμπης ο Άλλος
Δραστήριο μέλος
Ο Μπάμπης ο Άλλος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Φοιτητής και μας γράφει απο Παλαιό Φάληρο (Αττική). Έχει γράψει 418 μηνύματα.
24-04-10
19:05
2) Για το ερώτημα:
«Όταν μια συνάρτηση αλλάζει το περιεχόμενο των παραμέτρων της, οι αλλαγές αυτές επιστρέφουν πίσω στις πραγματικές παραμέτρους;»
Στην ενότητα 10.5. Διαδικασίες και συναρτήσεις (Βιβλίο Μαθητή, σελ. 210) αναφέρεται: «Οι διαδικασίες μπορούν να εκτελέσουν οποιαδήποτε λειτουργία από αυτές που μπορεί να εκτελέσει ένα πρόγραμμα. Να εισάγουν δεδομένα, να εκτελέσουν υπολογισμούς, να μεταβάλλουν τις τιμές των μεταβλητών και να τυπώσουν αποτελέσματα. Με τη χρήση των παραμέτρων αυτές τις τιμές μπορούν να τις μεταφέρουν και στα άλλα υποπρογράμματα. Αντίθετα η λειτουργία των συναρτήσεων είναι πιο περιορισμένη. Οι συναρτήσεις υπολογίζουν μόνο μία τιμή, αριθμητική, χαρακτήρα ή λογική και μόνο αυτήν επιστρέφουν στο υποπρόγραμμα που την κάλεσε». Επίσης, στη σελ. 213 του Βιβλίου Μαθητή αναφέρεται: «Ο μηχανισμός που επιτυγχάνεται αυτό, είναι ο εξής: Το κύριο πρόγραμμα πριν την κλήση της συνάρτησης … όπου η τιμή του εμβαδού εκχωρείται στη μεταβλητή Εμ».
Προκύπτει, επομένως, ότι μια συνάρτηση που αλλάζει το περιεχόμενο των παραμέτρων της δεν επιστρέφει τις αλλαγές αυτές στις πραγματικές παραμέτρους.
Νομίζω ότι υπήρχε κάποιο μπέρδεμα όταν αρχίσατε την κουβέντα λοιπόν.
Η συνάρτηση απ' όσο γνωρίζω- και εάν σε αυτό το πλαίσιο που παραθέτω αναφερόσασταν- Μπορεί να αποθηκεύσει τις τιμές άφοβα στον εαυτό τους.
Μπορείτε να την χρησιμοποιήσετε μέσα σε έκφραση και να κάνετε όλες τις εργασίες σας με αυτή. Στο τέλος, όταν γίνει η επιστροφή στο αρχικό πρόγραμμα, το αρχικό πρόγραμμα θα πάρει την τελική τιμή που έχει υπολογίσει αυτή η συνάρτηση.
Το πρόβλημα είναι στις διαδικασίες, εκεί απατείται η προσοχή. Οι διαδικασίες δέχονται κάποιες παραμέτρους, και τις επιστρέφουν μετά όλες στο κύριο πρόγραμμα. Οπότε, εάν εσείς εκτελέσετε πράξεις μέσα στην διαδικασία με τις δοθείσες από το κύριο πρόγραμμα παραμέτρους, εάν δηλαδή, τους αλλάξετε τις τιμές, τότε στο κύριο πρόγραμμα θα επιστραφούν οι τιμές τους αλλαγμένες.
Αυτό, θα επηρεάσει το πρόγραμμά σας μόνο εάν εσείς, στη συνέχεια του προγράμματος, χρειαστείτε εκείνες τις τιμές (όπως ήταν πριν την αλλαγή) και τελικά τις χρησιμοποιήσετε αλλαγμένες.
Παράδειγμα:
ΠΡΟΓΡΑΜΜΑ ΤΑΔΕ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Α,Β,Γ,Δ
ΑΡΧΗ
ΔΙΑΒΑΣΕ Α,Β
ΚΑΛΕΣΕ ΑΞΙΟΛΟΓΗΣΗ(Α,Β,Γ)
ΑΝ Γ>=Α ΤΟΤΕ
ΓΡΑΨΕ Α
ΑΛΛΙΩΣ
ΓΡΑΨΕ Β
Τ_ΑΝ
ΤΕΛΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ
ΔΙΑΔΙΚΑΣΙΑ ΑΞΙΟΛΟΓΗΣΗ(Α,Β,Γ)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Α,Β,Γ,Δ
ΑΡΧΗ
Α<--Α+2
Β<--Β-3
Δ<--Α*Β-2
Γ<--Δ^2-(Α+Β)
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
Εδω λοιπόν υπάρχουν λάθη.
Εμείς αυτό που θέλουμε είναι να φτιάξουμε μια διαδικασία που θα δέχετε τις τιμές Α, Β και μια άδεια τιμή Γ από το πρόγραμμα και μετά απο κάποιες πράξεις (που γίνονται με σκοπό την αλλαγή του Γ) να πάρουμε το Γ πίσω στο πρόγραμμα και να εμφανίσουμε το Α εάν το Γ είναι μεγαλύτερο ή ίσο του Α ή να εμφανίσουμε το Β εάν το Γ είναι μικρότερο του Α.
Εδώ τα λογικά λάθη είναι στο ότι εμείς ΔΕΝ ΘΕΛΑΜΕ ΝΑ ΑΛΛΑΞΟΥΝ ΟΙ ΑΡΧΙΚΕΣ ΤΙΜΕΣ ΤΟΥ Α,Β.
Θέλαμε να κανουμε σύγκριση του Γ με τις αρχικές τιμές του Α,Β.
Στη διαδικασία λοιπόν αλλάξαμε τους αριθμούς Α και Β και όταν η διαδικασία τους επέστρεψε αλλαγμένους στο κύριο πρόγραμμα, η σύγκριση που έγινε ήταν λανθασμένη.
Αυτό που θα έπρεπε να είχαμε κάνει στη διαδικασία, λοιπόν, θα ήταν να δώσουμε πρώτα πρώτα τις τιμές των Α,Β σε 2 άλλες μεταβλητές(π.χ. Μ,Ν) και μετά να χρησιμοποιήσουμε τις μεταβλητές εκείνες για όλες τις πράξεις μας μέσα στην διαδικασία. Οπότε οι τιμές των Α,Β θα επέστρεφαν αμετάβλητες στο κύριο πρόγραμμα μετά την πάροδο της διαδικασίας..
Αυτό το πρόβλημα δεν υπάρχει στην συνάρτηση (και αυτό επιβεβαιώνει αυτή η παράθεση από την εγκύκλιο).
Και αυτός είναι ένας από τους βασικότερους λόγους που ενώ μπορούμε να χρησιμοποιήσουμε διαδικασία για οποιαδήποτε ενέργεια, όταν θέλουμε να υπολογίσουμε μια μόνο τιμή, προτιμάμε να χρησιμοποιήσουμε συνάρτηση.
Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Μπάμπης ο Άλλος
Δραστήριο μέλος
Ο Μπάμπης ο Άλλος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Φοιτητής και μας γράφει απο Παλαιό Φάληρο (Αττική). Έχει γράψει 418 μηνύματα.
24-04-10
17:53
Το όνομα της συνάρτησης δρά ΣΑΝ μεταβλητή. Δεν είναι μεταβλητή. Δεν μπορούμε να το χρησιμοποιούμε και στα δεξιά μιας έκφρασης...
Το σωστό είναι να βάζεις στο όνομα της συνάρτησης αυτό που υπολογίσες (εδώ το άθροισμα του πίνακα) πριν το ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ...
Τρέξε το παρακάτω στο Διερμηνευτή να δείς τι συμβαίνει (στην συνάρτηση έβαλα σαν παράμετρο πίνακα αφού έτσι την ορίζουμε)...
Ο Διερμηνευτής βρίσκεται στη διεύθυνση https://users.sch.gr/alkisg/. Κατεβάζεις το exe αρχείο και το τρέχεις...
ΠΡΟΓΡΑΜΜΑ Τάδε
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: ΠΙΝ[5], Α
ΑΚΕΡΑΙΕΣ: i
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5
ΔΙΑΒΑΣΕ ΠΙΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Α <- ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ(ΠΙΝ)
ΓΡΑΨΕ Α
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΣΥΝΑΡΤΗΣΗ ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ(ΠΙΝΑΚΑΣ): ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: ΠΙΝΑΚΑΣ[5]
ΑΚΕΡΑΙΕΣ: Ι
ΑΡΧΗ
ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ <- 0
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 5
ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ <- ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ(ΠΙΝΑΚΑΣ) + ΠΙΝΑΚΑΣ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
Δεν ξέρω άν μπορείς ή όχι να βάλεις το όνομα της συνάρτησης στα δεξιά της έκφρασης ή όχι.
Πάντως αυτό:
ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ <- ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ(ΠΙΝΑΚΑΣ) + ΠΙΝΑΚΑΣ[Ι]
προφανώς και είναι αναδρομή αφού καλείς την ίδια τη συνάρτηση μέσα στη συνάρτηση.
Αυτό:
ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ <- ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ+ ΠΙΝΑΚΑΣ[Ι]
που είχεσ γραμμένο πρίν είναι κάτι τελείως διαφορετικό και αυτό επεσήμανα. Ότι δεν ξέρω εάν αυτό είναι λάθος για
άλλο λόγο, αλλά λόγω αναδρομής δεν είναι γιατί δεν κάνεις κλήση της συνάρτησης μέσα στον πίνακα με αυτόν τον τρόπο.
Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.