Γενικό Λύκειο > Διαδικασίες

Επιστροφή τιμών σε διαδικασία

(1/3) > >>

Neo:
Συνάδελφοι Χριστός Ανέστη και χρόνια πολλά.
 :)

Ήθελα τη γνώμη σας στο ακόλουθο ζήτημα :

αν έχω το ακόλουθο τμήμα κυρίως προγράμματος
.
.
.
Κάλεσε Αθροισμα(Α[10,10],2,αποτέλεσμα)
Γράψε αποτέλεσμα
.
.
.
και τη διαδικασία
Διαδικασία Άθροισμα (Α[10,10],χ,αποτέλεσμα)
δηλώσεις
Αρχή
αποτέλεσμα <-- 0
  Για ι απο 1 μεχρι 10

     αποτέλεσμα <-- αποτέλεσμα + a[χ,ι]
 
 τέλος_επανάληψης
Τέλος_διαδικασίας
με το Τέλος_διαδικασίας υπάρχει πρόβλημα κατά τη γνώμη σας; δηλαδή τι θα συμβεί μιας και θα γίνει ¨"επιστροφή" του χ στο 2 ?
Ελπίζω να είμουνα σαφής.
Ζητώ προκαταβολικά συγνώμη αν το έχετε καλύψει αλλά έψαξα αλλά δε το βρήκα.
Περιμένω τα σχόλια σας.
Ευχαριστώ πολύ.

Μανώλης Σταματάκης

andreas_p:
Καλημέρα Μανώλη και Χρόνια Πολλά.
Το θέμα το έχουμε καλύψει.  Το παρουσιάζω πάλι.
1.  Ο πίνακας στη λίστα των πραγματικών παραμέτρων στο σημείο κλήσης  ΔΕΝ γράφεται Α[10,10] αλλά μόνο Α και δηλώνεται κανονικά στο τμήμα δηλώσεων.
2.  Στη λίστα των πραγματικών παραμέτρων στο σημείο κλήσης , ΔΕΝ μπορώ να έχω σταθερά.

Συνεπώς   το σωστό
 κ <- 2
Κάλεσε  Άθροισμα(Α, κ, αποτέλεσμα)

Αληθώς Ανέστη

filippos:
Στο (1) θα συμφωνήσω απόλυτα με τον Ανδρέα.  Όταν η παράμετρος είναι πίνακας, δηλώνεται απλά το όνομά του τόσο ως πραγματική όσο και ως τυπική παράμετρος.  Ας προσέξουμε όμως το εξής.  Εάν ένα υποπρόγραμμα (συνάρτηση ή διαδικασία) περιμένει ως παράμετρο μία ακέραια τιμή, μπορεί κατά την κλήση να οριστεί ένα στοιχείο πίνακα ακεραίων ως πραγματική παράμετρος. 

π.χ.
ΚΥΡΙΟ ΠΡΟΓΡΑΜΜΑ
...
   ΑΚΕΡΑΙΕΣ: Π[10, 10]
...
   ΚΑΛΕΣΕ Διαδ1(Π[1,7])
...
...
ΔΙΑΔΙΚΑΣΙΑ Διαδ1(Χ)
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Χ

Στο 2 η γνώμη μου Ανδρέα είναι ότι κάνεις λάθος.  Τόσο ο διερμηνευτής, όσο και η κοινή λογική συμφωνούν ότι η πραγματική παράμετρος μπορεί να είναι είτε μεταβλητή είτε σταθερά.  Αν είναι μεταβλητή τότε "και δίνει και παίρνει" (στην περίπτωση διαδικασίας).  Αν είναι σταθερά τότε "μόνο δίνει".   Αλλά και το βιβλίο "εννοεί το ίδιο" όταν ταυτίζει (σε λειτουργικό επίπεδο) τις συναρτήσεις που κατασκευάζει ο "προγραμματιστής" με τις "ενσωματωμένες συναρτήσεις της ΓΛΩΣΣΑΣ".  Διαφορετικά θα ήταν λάθος και η έκφραση Ψ<-Τ_Ρ(4) !!  Θα έπρεπε να δωθεί ως:
Χ<- 4
Ψ <- Τ_Ρ(Χ)
που όμως ασφαλώς δεν είναι απαραίτητο.

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

lsourtzo:
Εγώ πάλι δεν θα συμφωνήσω με τον filipo …
Στο σχολικό βιβλίο στην σελίδα 217 έχει το παρακάτω παράδειγμα …

Α<- 5
Β<- 7
ΚΑΛΕΣΕ ΠΡΑΞΕΙΣ ( A, B, Διαφ1, Αθρ1 )

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

Αν και πιστεύω σφόδρα, ότι είναι ακόμα ένα κακογραμμένο σημείο στο βιβλίο που αφήνει πολλά περιθώρια παρερμηνειών !!

alkisg:
Σχετικά θέματα:
https://alkisg.mysch.gr/steki/index.php?topic=289.0
https://alkisg.mysch.gr/steki/index.php?topic=308.0

Υπάρχει και το παράδειγμα της σελίδας 106 του τετραδίου μαθητή στο οποίο χρησιμοποιούνται σταθερές αλλά και εκφράσεις (το Ν-1 στην κλήση της Μετακίνησε) :


--- Κώδικας: ΓΛΩΣΣΑ ---ΠΡΟΓΡΑΜΜΑ ΠύργοιΤουΑνόιΣΤΑΘΕΡΕΣ  Στύλος1 = 'Α'  Στύλος2 = 'Β'  Στύλος3 = 'Γ'ΜΕΤΑΒΛΗΤΕΣ  ΑΚΕΡΑΙΕΣ: ΝΑΡΧΗ  ΓΡΑΨΕ 'Δώσε τον αριθμό των δίσκων:  '  ΔΙΑΒΑΣΕ Ν  ΚΑΛΕΣΕ Μετακίνησε(Ν, Στύλος1, Στύλος2, Στύλος3)ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΔΙΑΔΙΚΑΣΙΑ Μετακίνησε(Ν, ΣτύλοςΑ, ΣτύλοςΒ, ΣτύλοςΓ)ΜΕΤΑΒΛΗΤΕΣ  ΑΚΕΡΑΙΕΣ: Ν  ΧΑΡΑΚΤΗΡΕΣ: ΣτύλοςΑ, ΣτύλοςΒ, ΣτύλοςΓΑΡΧΗ  ΑΝ Ν = 1 ΤΟΤΕ    ΓΡΑΨΕ 'Μετακίνησε από τον ', ΣτύλοςΑ, ' στον ', ΣτύλοςΓ  ΑΛΛΙΩΣ    ΚΑΛΕΣΕ Μετακίνησε(Ν - 1, ΣτύλοςΑ, ΣτύλοςΓ, ΣτύλοςΒ)    ΓΡΑΨΕ 'Μετακίνησε από τον ', ΣτύλοςΑ, ' στον ', ΣτύλοςΓ    ΚΑΛΕΣΕ Μετακίνησε(Ν - 1, ΣτύλοςΒ, ΣτύλοςΑ, ΣτύλοςΓ)  ΤΕΛΟΣ_ΑΝΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

Πλοήγηση

[0] Λίστα μηνυμάτων

[#] Επόμενη σελίδα

Μετάβαση στην πλήρη έκδοση