ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

Ξεκίνησε από ΝΙΚΟΣ ΧΑΤΖΗΓΙΑΝΝΑΚΗΣ, 27 Φεβ 2004, 09:10:30 ΜΜ

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

tommy

Χαίρετε,
σχετικά με το προηγούμενο post:
εστω οτι θέλουμε να φτιάξουμε μια διαδικασία που να προσθέτει 2 ακέραιους αριθμούς και να επιστρέφει το αποτέλεσμα στο κυρίως πρόγραμμα, θα ήταν σωστό το παρακάτω?

Διαδικασία Πρόσθεση(Αριθμός1, Αριθμός, Αποτέλεσμα)
Μεταβλητές
   Ακέραιες:Αριθμός1, Αριθμός2, Αποτέλεσμα
Αρχή
   Αποτέλεσμα<-Αριθμός1+Αριθμός2
Τέλος_Διαδικασίας

στο κυρίως πρόγραμμα δε θα πρέπει να δηλωθεί μια μεταβλητή που να δέχεται το Αποτέλεσμα?
και εστω οτι δηλώνεται θα καλέσουμε: Κάλεσε πρόσθεση(χ,χ1,y)?
αλλά η μεταβλητή y για το κυρίως πρόγραμμα δεν έχει κάποια τιμή και η μεταβλητή Αποτέλεσμα είναι τοπική μεταβλητή της διαδικασίας.
Θα σας ήταν εύκολο παρακαλώ να το αναλύσετε;
ευχαρίστώ πολύ



tanius76

Βέβαια το συγκεκεριμένο παράδειγμα ΜΕ ΑΛΛΗ ΕΚΦΩΝΗΣΗ θα έπρεπε να υλοποιείται με συνάρτηση την οποία παραθέτω στην ιστοσελίδα http://users.kor.sch.gr/ptsiotakis/aepp/aepp_ask/ch10/aepp_ask10_1.htm παράδειγμα 10.1.4.
 
Καταρχήν δεν υπάρχει παράθεση?Πώς γίνεται?
Αρα η εξής Ασκηση που παραθέτω
 10.1.1. Να γράψετε υποπρόγραμμα που να διαβάζει έναν αριθμό και να επιστρέφει το τετράγωνό του

ΣΥΝΑΡΤΗΣΗ Εις_το_Τετράγωνο (Χ): ΠΡΑΓΜΑΤΙΚΗ

ΜΕΤΑΒΛΗΤΕΣ

     ΠΡΑΓΜΑΤΙΚΕΣ : Χ

ΑΡΧΗ

     Τετράγωνο <- Χ^2

ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

 
είναι λάθος Παναγιώτη σωστά? Τι λέτε?

P.Tsiotakis

#17
"Παραθέτω" σημαίνει οτι υπάρχει στην ιστοσελίδα μου και δεν τον αντιγράφω στο forum
Απόσπασμα από ιστοσελίδα http://users.kor.sch.gr/ptsiotakis/aepp/aepp_ask/ch10/aepp_ask10_1.htm
10.1.4. Να γράψετε υποπρόγραμμα που να δέχεται έναν αριθμό και να επιστρέφει το τετράγωνό του

[glossa]
ΣΥΝΑΡΤΗΣΗ Εις_το_Τετράγωνο (Χ): ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
     ΠΡΑΓΜΑΤΙΚΕΣ : Χ, εκτίμηση
ΑΡΧΗ
     εκτίμηση <-- Χ ^ 2
     Εις_το_Τετράγωνο <-- εκτίμηση
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
[/glossa]

Μήπως Τάνια έχεις εκτυπώσει την ιστοσελίδα παλιά όπου είχα κάνει λάθος στην τελευταία εντολή? Στην παλιότερη έκδοση την είχα ονομάσει "Τετράγωνο", όταν την μετονόμασα ξέχασα να αλλάξω και την τελευταία εντολή. Δες και τώρα...

Tommy:

Το πρόγραμμα που αναφέρεσαι είναι το εξής:

[glossa]
ΠΡΟΓΡΑΜΜΑ Έλεγχος_Πρόσθεσης
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: x1, x2, y
ΑΡΧΗ
  x1 <-- 5
  x2 <-- 11
  ΚΑΛΕΣΕ Πρόσθεση (x1, x2, y)
  ΓΡΑΨΕ y
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
!=================================
ΔΙΑΔΙΚΑΣΙΑ Πρόσθεση(Αριθμός1, Αριθμός2, Αποτέλεσμα)
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Αριθμός1, Αριθμός2, Αποτέλεσμα
ΑΡΧΗ
  Αποτέλεσμα <-- Αριθμός1 + Αριθμός2
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
[/glossa]


Στο κυρίως πρόγραμμα η μεταβλητή που θα δεχτεί το αποτέλεσμα είναι η y. Πριν την κλήση της διαδικασίας η μεταβλητή αυτή δεν έχει τιμή όπως ορθά επισημαίνεις. Η μεταβλητή Αποτέλεσμα που είναι τοπική στη διαδικασία θα δώσει την τιμή της κατά το τερματισμό εκτέλεσης της διαδικασίας στην μεταβλητή y.

Κάνε copy paste στον διερμηνευτή αν τον έχεις και τρέξτο να παρακολουθήσεις τις τιμές των μεταβλητών κατά την εκτέλεση

Μπορείς επίσης να δεις και τις ιστοσελίδες:

1)  http://users.kor.sch.gr/ptsiotakis/aepp/aepp_theory/ch10/aepp_theory10c.htm
2)  http://users.kor.sch.gr/ptsiotakis/aepp/aepp_ask/ch10/aepp_ask10_9.htm

Με τη γνωστή εκτίμηση,

tanius76

Ναι Παναγιώτη έχω την προηγούμενη εκδοχή της Άσκησης!
Όπου το πρώτο λάθος ήταν στην εκφώνιση όπου έλεγε να διαβάζει έναν αριθμό και όχι να δέχεται έναν αριθμό και το δεύτερο είναι αυτό που αναφέρεις εσύ.
Ευχαριστώ πάντως για τις απαντήσεις σου..
ΚΑΛΟ ΣΚ !

P.Tsiotakis

Η συνεχής βελτίωση του δικτυακού κόμβου οφείλεται στα διαρκή σχόλια και παρατηρήσεις των συναδέλφων κάτι που άλλωστε επιζητώ.  Υπάρχουν σίγουρα πολλά λάθη ακόμη

Το υλικό αυτό τελικά ανήκει σε όλους

xaidi

 OXI EYXARISTO (KATI EXEI PATHEI PALI AYTO TO MHXANIMA KAI DEN GRAFEI ELLHNIKA ! ) DHLADH OTAN EKTYPVNEIS MESA STH DIADIKASIA, (AYTONOHTO OTI DEN EPISTREFEI TIPOTA) DEN DHLONEIS OTAN YPARXEI EPISTROFJH STIS DIADIKASIES DHLONEIS TA PANTA. ETSI TO KATALABAINO KI EGO.
Ευχαριστώ,

P.Tsiotakis

Όταν δεν υπάρχει παράμετρος εξόδου δεν την βάζεις (πχ στην εκτύπωση) αλλά θα βάλεις τις παραμέτρους εισόδου. Πώς θα πάρει δεδομένα η διαδικασία ;;;
Όταν έχεις και εισόδου και εξόδου τότε θα βάλεις όλες τις παραμέτρους

Στο παράδειγμα του τετραδίου μαθητή, η διαδικασία εκτύπωσης δέχεται δεδομένα, τα εκτυπώνει αλλά δεν επιστρέφει τίποτα

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

Με εκτίμηση,

tommy

ptsiotakis:

Ευχαριστώ πολύ για την απάντηση.

tanius76

Παιδιά άλλη μια διευκρινησούλα με τα υποπρογράμματα

Οταν η εκφώνιση λέει να κάνετε υποπρόγραμμα που να δέχεται τις παραμέτρους α,β  
σημαίνει ότι οι τιμές αυτές έχονται από το Κύριο Πρόγραμμα.
Ομως στο βιβλίο στην άσκηση ΔΤ2 το Β) Ερώτημα αν δεν κάνω λάθος
Ενώ γράφει έτσι στην εκφώνηση χρησιμοποιεί Διαδικασία
και εντός της διαδικασίας γράφει Διάβασε α,β
Τι λέτε εσείς γιαυτό?

P.Tsiotakis

Σαφώς, στο ΔΤ2.β πρέπει να χρησιμοποιηθεί συνάρτηση

Ωστόσο, σε όποια περίπτωση χρησιμοποιώ συνάρτηση μπορώ να χρησιμοποιήσω και διαδικασία για να κάνω τα ίδια πράγματα (το αντίθετο φυσικά δεν ισχύει).

Δεν ξέρω γιατί αυτοί που έλυσαν την άσκηση επέλεξαν διαδικασία. Η πιο "ψαγμένη" εξήγηση είναι οτι ήθελαν να περάσουν το μήνυμα που προανέφερα. Την πιο απλή εξήγηση δεν θέλω να την αναφέρω τώρα  :furious3:

Tommy, δεν χρειάζονται ευχαριστίες, συζητάμε για να βγάζουμε συμπεράσματα

Με εκτίμηση,