Απορία για Συναρτήσεις

Ξεκίνησε από ElenaP, 19 Απρ 2021, 05:11:32 ΜΜ

« προηγούμενο - επόμενο »

ElenaP

Καλησπέρα σας.
Σε μία συνάρτηση η οποία υπολογίζει σύνολο τιμών ενός πίνακα, δεν μπορώ να χρησιμοποιήσω το ονομά της σε περισσότερες απο μία εκχωρήσεις?
Για παράδειγμα,
ΣΥΝΑΡΤΗΣΗ ΣΥΝΟΛΟ(Α): ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
  ΠΡΑΓΜΑΤΙΚΕΣ: Α[100]
  ΑΚΕΡΑΙΕΣ: Ι
ΑΡΧΗ
ΣΥΝΟΛΟ<-- 0
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 100
  ΣΥΝΟΛΟ<-- ΣΥΝΟΛΟ + Α[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

Αυτό θεωρείται λάθος? Πρέπει να υπάρχει μία εκχώρηση στο όνομα και να χρησιμοποιηθεί επιπλέον μεταβλητή (π.χ S), η οποία θα εκχωρηθεί στο ΣΥΝΟΛΟ πάνω από το ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ?


George Eco

Έλενα κοίτα, επειδή θες να χρησιμοποιήσεις τη συνάρτηση ως μεταβλητή,  εντός της συνάρτησης, η συνάρτηση πρέπει να επιστρέψει τιμή, αλλά αυτό είναι αδύνατο προτου ολοκληρωθεί ( ; ; ) βάζω ερωτηματικά γιατί η ΓΛΩΣΣΑ είναι ορισμένη επί χάρτου. ΔΕ μπορώ να αποφανθώ αν είσαι ή όχι λάθος εδώ, διίστανται οι απόψεις, αλλά μπορώ να σου πω, ότι καλό θα ήταν να χρησιμοποιήσεις μία πραγματική μεταβλητή για αυτή τη διαδικασία εντός της συνάρτησης και να της δώσεις της συνάρτησης τη τιμή της μεταβλητής στο τέλος.
Γενικά αν δεν είσαι σίγουρη για κάτι, παίχτο με ασφάλεια, με τα εργαλεία που ξέρεις πως δουλεύουν σίγουρα.
Πρόσεξε το εξής (γιατί στα λέω αυτά): Μεταβλητές με όνομα συνάρτησης, απαγορεύεται να υπάρξουν, το όνομα της συνάρτησης, εντός της συνάρτησης αναφέρεται στη συνάρτηση και ΔΕΝ είναι μεταβλητή.
Γενικά να δώσεις πολλαπλές αναθέσεις τιμής, δε νομίζω να είναι λάθος, αλλά είναι γκρίζο τοπίο.
Ωστόσο εδώ, δε μου κάθεται καθόλου καλά, ο τρόπος που χρησιμοποιείται.

petrosp13

Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

ΔΗΜΗΤΡΗΣ Χ

ΝΑ ΚΟΙΤΑΞΕΙΣ ΛΙΓΟ ΠΙΟ ΠΑΝΩ ΑΠΟ ΕΚΕΙ ΠΟΥ ΣΕ ΣΤΕΛΝΕΙ O ΠΕΤΡΟΣ, 2-3 ΑΝΑΡΤΗΣΕΙΣ, ΔΙΟΤΙ ΤΟ ΔΕΝ ΥΠΑΡΧΕΙ ΛΟΓΟΣ ΝΑ ΑΠΑΓΟΡΕΥΕΤΑΙ...ΑΝΑΦΕΡΕΤΑΙ ΣΕ ΑΥΤΟ ΠΟΥ ΓΡΑΦΕΙ Ο ΛΑΜΠΡΑΚΗΣ. ΠΙΟ ΠΑΝΩ Ο ΠΕΤΡΟΣ ΕΞΗΓΕΙ ΚΑΙ ΠΟΛΥ ΣΩΣΤΑ ΜΑΛΙΣΤΑ ΓΙΑ ΑΥΤΟ ΠΟΥ ΡΩΤΑΣ. ΜΠΟΡΕΙ ΝΑ ΘΕΩΡΗΘΕΙ ΑΝΑΔΡΟΜΗ. ΓΕΝΙΚΑ ΣΥΜΦΩΝΩ ΑΠΟΛΥΤΩΣ ΜΕ ΑΥΤΑ ΠΟΥ ΣΟΥ ΕΓΡΑΨΕ O GEORGE ECO ΠΑΝΩ ΣΕ ΑΥΤΟ. ΔΥΣΤΥΧΩΣ ΥΠΑΡΧΟΥΝ ΣΗΜΕΙΑ ΤΕΤΟΙΑ. ΑΣ ΠΡΟΤΙΜΑΣ ΤΟ ΣΙΓΟΥΡΟ

andreas_p

 ΣΥΝΟΛΟ<-- ΣΥΝΟΛΟ + Α[Ι]

Αναδρομή !

George Eco


petrosp13

Νομίζω ότι μπορεί να εξηγηθεί και χωρίς να αναφέρουμε την έννοια της αναδρομής ως εξής:
Κάθε εμφάνιση του ονόματος της συνάρτησης που δεν είναι αριστερά από βέλος, λαμβάνεται ως κλήση της συνάρτησης κι επειδή σε αυτή την περίπτωση δεν καλούμε την συνάρτηση (με παρενθέσεις, παραμέτρους κτλ), προκύπτει συντακτικό λάθος
Νομίζω ότι δεν είναι κάτι βαρύ για τους μαθητές
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

George Eco

Παράθεση από: petrosp13 στις 20 Απρ 2021, 01:14:32 ΜΜ
Νομίζω ότι μπορεί να εξηγηθεί και χωρίς να αναφέρουμε την έννοια της αναδρομής ως εξής:
Κάθε εμφάνιση του ονόματος της συνάρτησης που δεν είναι αριστερά από βέλος, λαμβάνεται ως κλήση της συνάρτησης κι επειδή σε αυτή την περίπτωση δεν καλούμε την συνάρτηση (με παρενθέσεις, παραμέτρους κτλ), προκύπτει συντακτικό λάθος
Νομίζω ότι δεν είναι κάτι βαρύ για τους μαθητές
Συμφωνώ. Τους λες πως ζητά να χρησιμοποιηθεί η ΣΥΝΟΛΟ για το παράδειγμά μας, προτού αυτή επιστρέψει τιμή.

gpapargi

Αν δεχτούμε ότι μπορούμε να έχουμε συνάρτηση χωρίς παραμέτρους και να την καλούμε χωρίς παρενθέσεις (το γράφει ο Άλκης στο εγχειρίδιο της ΓΛΩΣΣΑΣ)  τότε δημιουργείται αντίφαση.
Πχ έστω η χωρίς παραμέτρους συνάρτηση:
Συνάρτηση άθροισμα : ακέραια
Μεταβλητές
Ακέραιες: Σ,ι
Αρχή
Σ<-0
Για ι από 1 μέχρι 100
Σ<-Σ+ι
Τέλος_επανάληψης
Άθροισμα<-Σ
Τέλος_συνάρτησης
Επιστρέφει πάντα το άθροισμα των ακεραίων από το ως το 100.
Αν το κάνουμε χρησιμοποιώντας σα μεταβλητή το όνομα της συνάρτησης. Έχουμε
Συνάρτηση άθροισμα : ακέραια
Μεταβλητές
Ακέραιες: ι
Αρχή
άθροισμα<-0
Για ι από 1 μέχρι 100
άθροισμα<-άθροισμα+ι
Τέλος_επανάληψης
Τέλος_συνάρτησης
Στην εντολή άθροισμα<-άθροισμα+ι δεν ξέρω αν θέλω το περιεχόμενο ή καλώ τη συνάρτηση.