SOS απορια στις συναρτησεις

Ξεκίνησε από tatiana, 18 Απρ 2008, 04:09:04 ΜΜ

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

tatiana

γεια σε όλους! Είμαι νέο μέλος , είμαι φυσικός αλλά εδώ και κάμποσα χρόνια διδάσκω ανεφ (απο το 2002). Μεχρι τωρα ,στα τρεξιματα των ασκήσεων με υποπρογραμματα , στο τέλος του κάθε υποπρογραμματος , για  τις διαδικασίες εκανα αντιστοιχηση στις τυπικες με τις πραγματικές παραμετρους για  τις συναρτήσεις απλώς επέστρεφα την τιμή της συναρτησης χωρις να αλλαζω τις παραμετρους . Είναι λαθος αυτο ή οχι; Σας ρωτάω γιατί σε κάποιο βιβλίο είδα μια λυμμένη ασκηση που στο τελος της συνάρτησης αλλαζαν και οι τιμές των πραματικών παραμέτρων γιατί είχαν μεταβληθεί οι τιμές των τυπικών μεσα στη συναρτηση. SOS !! πρέπει να το ξεκαθαρίσω για να μην λέω βλακείες και στους μαθητες. Ισως καποιοι απο σας με περισσότερες γνωσεις μου λύσετε την απορια μου ! Ευχαριστω.

petrosp13

Μόνο οι διαδικασίες επιστρέφουν τις τιμές των παραμέτρων
Οι συναρτήσεις επιστρέφουν την τιμή της συνάρτησης και τίποτα άλλο
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

tatiana


MichaelP

Να συνεχίσω λίγο το θέμα, με μια δική μου απορία.

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

Παρακαλώ επιβεβαιώστε.


P.Tsiotakis

@tatiana θα ήθελα να μάθω σε ποιο βοήθημα αναφέρεσαι.. έστω και με προσωπικό μήνυμα.

Οι τιμές των τυπικών παραμέτρων μπορούν να μεταβάλλονται ενός των συναρτήσεων (φυσικά ακόμα και αν είναι πίνακες), ωστόσο με το τέλος της συνάρτησης ΔΕΝ ενημερώνονται οι αντίστοιχες πραγματικές παράμετροι.
Η συνάρτηση επιστρέφει ΜΟΝΟ μια τιμή, αυτή που εκχωρείται στο όνομά της εντός του τμήματος εντολών της...

Τα υποπρογράμματα θέλουν προσοχή, έχουν τα δικά τους λεπτά σημεία...

ntzios kostas

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

P.Tsiotakis

όντως, μίλησα μόνο με το Μιχάλη.
Ελπίζω η Τατιάνα, να δει το mail της και να μου λύσει την απορία...

EleniK

Μιχάλη η συνάρτηση δεν μπορεί να έχει επιστροφή πίνακα, παρά μόνο η διαδικασία.
Τατιάνα θα συμφωνήσω με τον Παναγιώτη, ότι η συνάρτηση επιστρέφει μία τιμή και δεν αλλάζει τις τιμές των παραμέτρων.
Ελένη Κοκκίνου
Καθηγήτρια Πληροφορικής, ΠΕ19

maria.k.

Εγώ νομίζω ότι μπορείς να περάσεις στη συνάρτηση μόνο το όνομα του πίνακα σάν έναν δείκτη στον ήδη κατασκευασμένο πίνακα του κυρίου προγράμματος. Στη συνέχεια η συνάρτηση μπορεί να επεξεργαστεί τα δεδομένα του πίνακα χωρίς όμως αυτά να αντιγραφούν στη δικιά της μνήμη και στη συνέχεια να επιστρέψει μόνο το όνομα του πίνακα (δείκτης στον αλλαγμένο πλέον πίνακα)... Εξάλλου κάπως έτσι δεν έιναι και στην C?

andreas_p

και στη συνέχεια να επιστρέψει μόνο το όνομα του πίνακα

....

δλδ να επιστρέψει ΠΟΛΛΕΣ τιμές.   Αυτό ΜΟΝΟ στη διαδικασία.

evry

Παράθεση από: maria_asximi στις 22 Φεβ 2009, 09:57:14 ΜΜ
Εγώ νομίζω ότι μπορείς να περάσεις στη συνάρτηση μόνο το όνομα του πίνακα σάν έναν δείκτη στον ήδη κατασκευασμένο πίνακα του κυρίου προγράμματος.
Το θέμα είναι τι λέει το βιβλίο και ο τρόπος μεταβίβασης παραμέτρων που έχει δεν επιτρέπει κάτι τέτοιο.

What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

P.Tsiotakis

Μαρία, με όλο το σεβασμό πρόσεξε μήπως μπερδέψεις τους μαθητές.
Αν είσαι μαθήτρια, θα έχεις όλο το χρόνο του χρόνου να δουλέψεις με τη C, λίγο υπομονή λοιπόν...

gpapargi

Η μεταβίβαση παραμέτρων δεν γίνεται όπως στη C. Και γενικά δεν σωστό να θεωρούμε ότι στη ΓΛΩΣΣΑ ισχύει κάτι επειδή ισχύει σε κάποια αληθινή γλώσσα. Οι πραγματικές γλώσσες δεν είναι σημείο αναφοράς.
Για το πως γίνεται η μεταβίβαση παραμέτρων διάβασε προσεκτικά το βιβλίο και για ότι δεν καταλάβεις ρώτα... αλλά μην κοιτάς τι γίνεται στις γνωστές γλώσσες προγραμματισμού.  Είναι γνωστή παγίδα  :)

maria.k.

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

xpanta

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

κάνω λαθος;