You are on page 1of 9

Ανάπτυξη Εφαρμογών σε προγρ αμματιστικό περιβάλλον | Υ Π Ο Π Ρ Ο Γ Ρ Α Μ Μ Α Τ Α | Σ ε λ ί δ α |1

ΤΑΞΗ Γ ΓΕΛ

ΜΑΘΗΜΑ ΑΕΠΠ

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ -

ΠΕΡΙΕΧΕΙ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΣΥΝΟΠΤΙΚΗ ΘΕΩΡΙΑ

Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης και ανάπτυξης των προγραμμάτων ως ένα σύνολο
από απλούστερα τμήματα προγραμμάτων (υποπρογράμματα)

Ακολουθεί την ιεραρχική προσέγγιση (top-down διάσπαση του προβλήματος σε επιμέρους προβλήματα).

Αρχικό
πρόβλημα

Διάσπαση σε επιμέρους προβλήματα: Λύνω κάθε επιμέρους


πρόβλημα γράφοντας ένα υποπρόγραμμα
Ανάπτυξη Εφαρμογών σε προγρ αμματιστικό περιβάλλον | Υ Π Ο Π Ρ Ο Γ Ρ Α Μ Μ Α Τ Α | Σ ε λ ί δ α |2
Υποπρόγραμμα είναι ένα τμήμα προγράμματος, το οποίο επιτελεί ένα αυτόνομο έργο και έχει γραφεί χωριστά από
το υπόλοιπο πρόγραμμα.

Χαρακτηριστικά υποπρογραμμάτων (βιβλίο μαθητή § 10.2 σελ 173)

Πλεονεκτήματα του τμηματικού προγραμματισμού (βιβλίο μαθητή § 10.3 σελ 173, 174)

Συνάρτηση είναι ένας τύπος υποπρογράμματος που υπολογίζει και επιστρέφει μόνο μία τιμή με το όνομά της
(όπως οι μαθηματικές συναρτήσεις).

Διαδικασία είναι ένας τύπος υποπρογράμματος που μπορεί να εκτελεί όλες τις λειτουργίες ενός προγράμματος.

Παράμετρος είναι μια μεταβλητή που χρησιμοποιείται για να περνά την τιμή της από ένα υποπρόγραμμα σε ένα
άλλο υποπρόγραμμα ή στο αρχικό πρόγραμμα (κυρίως πρόγραμμα).

Εμβέλεια μεταβλητής (άρα και παραμέτρου) είναι το τμήμα του προγράμματος στο οποίο έχει ισχύ η μεταβλητή (ή
η παράμετρος).

Άσκηση εξοικείωσης με υποπρογράμματα

Να γίνει αλγόριθμος ο οποίος να δέχεται 3 ακέραιους αριθμούς και να υπολογίζει α) σε συνάρτηση τον μέγιστο
αριθμό, β) σε διαδικασία τον ελάχιστο αριθμό, γ) στο κυρίως πρόγραμμα τον μεσαίο αριθμό. Ο αλγόριθμος να
εμφανίζει τον μέγιστο, τον ελάχιστο και τον μεσαίο αριθμό (συνοδευόμενους από σχετικό μήνυμα) στο κυρίως
πρόγραμμα. Καλώ (ενεργοποιώ) μια συνάρτηση Σ γράφοντας το όνομά της σε μια
έκφραση π.χ. ΑΝ Σ(χ,ψ) + κ > 7 ΤΟΤΕ ... ή π  Σ(χ,ψ) -6 ή ΓΡΑΨΕ Σ(χ,ψ)

ΠΡΟΓΡΑΜΜΑ εξοικείωση_με_υποπρογράμματα Καλώ (ενεργοποιώ) μια διαδικασία Δ γράφοντας ΚΑΛΕΣΕ Δ(α,β,γ)


ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: τ1, τ2, τ3, max, min, med Καλώ μια συνάρτηση ή μια διαδικασία στο κυρίως πρόγραμμα (ή μέσα
ΑΡΧΗ σε άλλο υποπρόγραμμα) συνήθως πριν γράψω τον κώδικά τους.
ΓΡΑΨΕ 'Δώστε 3 ακέραιους αριθμούς'
ΔΙΑΒΑΣΕ τ1, τ2, τ3 Γράφω τον κώδικα διαδικασιών και συναρτήσεων με οποιαδήποτε
max <-- ΜΕΓΙΣΤΟΣ(τ1, τ2, τ3) σειρά, μετά το τέλος του κυρίου προγράμματος
ΚΑΛΕΣΕ ΕΛΑΧΙΣΤΟΣ (min, τ1, τ2, τ3)
med <-- τ1 + τ2 + τ3 - min - max
ΓΡΑΨΕ 'Μέγιστος: ', max
! εναλλακτικά ΓΡΑΨΕ 'Μέγιστος: ', ΜΕΓΙΣΤΟΣ(τ1, τ2, τ3) Πραγματικές παράμετροι ή παράμετροι
ΓΡΑΨΕ 'Ελάχιστος: ', min
ΓΡΑΨΕ 'Μεσαίος: ', med
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΣΥΝΑΡΤΗΣΗ ΜΕΓΙΣΤΟΣ (α1, α2, α3): ΑΚΕΡΑΙΑ Τύπος δεδομένων της μοναδικής τιμής
ΜΕΤΑΒΛΗΤΕΣ
ΜΕΓΙΣΤΟΣ που επιστρέφει η συνάρτηση
ΑΚΕΡΑΙΕΣ: α1, α2, α3
ΑΡΧΗ Τυπικές παράμετροι: γράφονται ως στο (υπο)πρόγραμμα που την κάλεσε:
ΜΕΓΙΣΤΟΣ <-- α1 εξαρτήματα της συνάρτησης, μέσα σε ΑΚΕΡΑΙΑ ή ΠΡΑΓΜΑΤΙΚΗ ή ΧΑΡΑΚΤΗΡΑΣ ή
ΑΝ α2 > ΜΕΓΙΣΤΟΣ ΤΟΤΕ ( ) , αλλά ξαναγράφονται και στο ΛΟΓΙΚΗ
ΜΕΓΙΣΤΟΣ <-- α2 τμήμα δήλωσης μεταβλητών της
ΤΕΛΟΣ_ΑΝ συνάρτησης
ΑΝ α3 > ΜΕΓΙΣΤΟΣ ΤΟΤΕ
ΜΕΓΙΣΤΟΣ <-- α3 Όταν ολοκληρωθεί η εκτέλεση της συνάρτησης πρέπει απαραιτήτως να έχει υπάρξει
ΤΕΛΟΣ_ΑΝ μια εντολή εκχώρησης τιμής στο όνομα της συνάρτησης.
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
Ανάπτυξη Εφαρμογών σε προγρ αμματιστικό περιβάλλον | Υ Π Ο Π Ρ Ο Γ Ρ Α Μ Μ Α Τ Α | Σ ε λ ί δ α |3
ΔΙΑΔΙΚΑΣΙΑ ΕΛΑΧΙΣΤΟΣ (min, β1, β2, β3)
ΜΕΤΑΒΛΗΤΕΣ Τυπικές παράμετροι ή ορίσματα
ΑΚΕΡΑΙΕΣ: min, β1, β2, β3
ΑΡΧΗ Τυπικές παράμετροι: γράφονται ως
min <-- β1 εξαρτήματα της διαδικασίας, μέσα σε
ΑΝ β2 < min ΤΟΤΕ ( ) , αλλά ξαναγράφονται και στο
min <-- β2 τμήμα δήλωσης μεταβλητών της
ΤΕΛΟΣ_ΑΝ διαδικασίας
ΑΝ β3 < min ΤΟΤΕ
min <-- β3
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

Ροή εκτέλεσης

ΠΡΟΓΡΑΜΜΑ εξοικείωση_με_υποπρογράμματα
ΜΕΤΑΒΛΗΤΕΣ τ1 τ2 τ3
ΑΚΕΡΑΙΕΣ: τ1, τ2, τ3, max, min, med
ΑΡΧΗ
ΓΡΑΨΕ 'Δώστε 3 ακέραιους αριθμούς'
ΔΙΑΒΑΣΕ τ1, τ2, τ3
max <-- ΜΕΓΙΣΤΟΣ(τ1, τ2, τ3) α1 α2 α3
ΚΑΛΕΣΕ ΕΛΑΧΙΣΤΟΣ (min, τ1, τ2, τ3)
med <-- τ1 + τ2 + τ3 - min - max
ΓΡΑΨΕ 'Μέγιστος: ', max
Αντιστοίχιση 1 προς 1: η τιμή του τ1 αντιγράφεται στο α1,
ΓΡΑΨΕ 'Ελάχιστος: ', min
ΓΡΑΨΕ 'Μεσαίος: ', med του τ2 στο α2 και του τ3 στο α3.
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Ίδιος τύπος δεδομένων ανά ζεύγος τυπικής - πραγματικής
παραμέτρου.

ΣΥΝΑΡΤΗΣΗ ΜΕΓΙΣΤΟΣ (α1, α2, α3): ΑΚΕΡΑΙΑ Ακόμη κι αν τα ονόματα τυπικών – πραγματικών
ΜΕΤΑΒΛΗΤΕΣ παραμέτρων είναι ίδια (ανά ζεύγη) οι μεταβλητές είναι
ΑΚΕΡΑΙΕΣ: α1, α2, α3 διαφορετικές (απλά συνώνυμες με διαφορετική εμβέλεια).
ΑΡΧΗ
ΜΕΓΙΣΤΟΣ <-- α1
ΑΝ α2 > ΜΕΓΙΣΤΟΣ ΤΟΤΕ
ΜΕΓΙΣΤΟΣ <-- α2 min τ1 τ2 τ3
ΤΕΛΟΣ_ΑΝ
ΑΝ α3 > ΜΕΓΙΣΤΟΣ ΤΟΤΕ
ΜΕΓΙΣΤΟΣ <-- α3
ΤΕΛΟΣ_ΑΝ οι τιμές των α1, α2, α3 δεν αντιγράφονται
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ (επιστρέφουν) στα τ1, τ2, τ3. Επιστρέφει min β1 β2 β3
μόνο η τιμή στο όνομα της συνάρτησης
Αντιστοίχιση 1 προς 1: η τιμή του τ1 αντιγράφεται στο β1,
ΔΙΑΔΙΚΑΣΙΑ ΕΛΑΧΙΣΤΟΣ (min, β1, β2, β3) του τ2 στο β2 και του τ3 στο β3 και του min στο min
ΜΕΤΑΒΛΗΤΕΣ (συνώνυμες αλλά διαφορετικές παράμετροι με ξεχωριστή
ΑΚΕΡΑΙΕΣ: min, β1, β2, β3 εμβέλεια).
ΑΡΧΗ
min <-- β1 Ίδιος τύπος δεδομένων ανά ζεύγος τυπικής - πραγματικής
ΑΝ β2 < min ΤΟΤΕ παραμέτρου.
min <-- β2
ΤΕΛΟΣ_ΑΝ Δεν είναι απαραίτητο όλες οι πραγματικές μεταβλητές να
ΑΝ β3 < min ΤΟΤΕ
έχουν τιμή, π.χ. η πραγματική παράμετρος min δεν έχει τιμή
min <-- β3
τη στιγμή που αντιγράφεται (περνάει) στην τυπική
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ παράμετρο min.

Μετά την ολοκλήρωση της διαδικασίας ΕΛΑΧΙΣΤΟΣ όλες οι


τιμές των τυπικών παραμέτρων αντιγράφονται
(επιστρέφουν) στις πραγματικές παραμέτρους

min τ1 τ2 τ3

min β1 β2 β3
Ανάπτυξη Εφαρμογών σε προγρ αμματιστικό περιβάλλον | Υ Π Ο Π Ρ Ο Γ Ρ Α Μ Μ Α Τ Α | Σ ε λ ί δ α |4

Πότε χρησιμοποιώ συνάρτηση και πότε διαδικασία;

1. Ακολουθώ την εκφώνηση, αν αναφέρει ρητώς χρήση συνάρτησης ή διαδικασίας,


2. Αν όχι, λαμβάνω υπόψη τις προδιαγραφές του υποπρογράμματος (εκφώνηση) και τα εξής για να αποφασίσω:
2.1. Σε μια συνάρτηση δε συνηθίζεται να τοποθετούνται εντολές ΔΙΑΒΑΣΕ και ΓΡΑΨΕ, σε μια διαδικασία
τοποθετείται οποιαδήποτε εντολή
2.2. Η συνάρτηση μπορεί να υπολογίσει και να επιστρέψει μόνο μια τιμή, ενώ η διαδικασία όσες χρειάζεται
κάθε φορά (με βάση την εκφώνηση)

Πίνακας τιμών σε υποπρογράμματα

Να γίνει πίνακας τιμών. Τι εμφανίζει ο κώδικας;

ΠΡΟΓΡΑΜΜΑ πίνακας_τιμών
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: α, β, γ
ΑΡΧΗ
α <-- 3
β <-- 2
γ <-- Σ1(α,β)
ΓΡΑΨΕ α, β, γ
ΚΑΛΕΣΕ Δ1(α,β,γ)
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΣΥΝΑΡΤΗΣΗ Σ1(χ,ψ): ΑΚΕΡΑΙΑ


ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: χ, ψ
ΑΡΧΗ
χ <-- χ + 2
ψ <-- ψ -1
Σ1 <-- χ + ψ
ψ <-- ψ + 3
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

ΔΙΑΔΙΚΑΣΙΑ Δ1(γ,β,κ)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: γ, β, κ
ΑΡΧΗ
ΓΡΑΨΕ γ, β, κ
γ <-- γ - 2
β <-- γ + κ
ΓΡΑΨΕ γ, β
κ <-- γ + β
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

Κυρίως πρόγραμμα Σ1 Δ1
1
α β γ ΓΡΑΨΕ χ ψ Σ1 γ β κ ΓΡΑΨΕ

1
Εναλλακτικά η στήλη Σ1 (η συνάρτηση δηλαδή) θα μπορούσε να τοποθετηθεί στο Κυρίως Πρόγραμμα και σε όποιο άλλο
υποπρόγραμμα την καλεί.
Ανάπτυξη Εφαρμογών σε προγρ αμματιστικό περιβάλλον | Υ Π Ο Π Ρ Ο Γ Ρ Α Μ Μ Α Τ Α | Σ ε λ ί δ α |5
Γενικές παρατηρήσεις

1. Οι τυπικές και πραγματικές παράμετροι ακολουθούν τους παρακάτω κανόνες:


1.1. έχουν το ίδιο πλήθος,
1.2. η 1 προς 1 αντιστοίχιση πραγματικών – τυπικών παραμέτρων προκύπτει με βάση αποκλειστικά τη θέση
τους,
1.3. υπάρχει κοινός τύπος δεδομένων στο κάθε ζευγάρι πραγματικής – τυπικής παραμέτρου.
2. Η λίστα παραμέτρων μπορεί να είναι κενή π.χ. ΚΑΛΕΣΕ Δ1().
3. Τα υποπρογράμματα γράφονται μετά το κυρίως πρόγραμμα με οποιαδήποτε σειρά.
4. Μια συνάρτηση δεν μπορεί να επιστρέψει σαν τιμή στ’ ονομά της έναν πίνακα, καθώς αυτός δεν είναι μοναδική
τιμή
5. Όταν καλούμε επαναληπτικά υποπρόγραμμα και δουλεύουμε με πίνακες, συνήθως στέλνουμε σε αυτό ως
παράμετρο τόσο το στοιχείο του πίνακα όσο και τον μετρητή επανάληψης.

Πίνακες σε υποπρογράμματα

Στέλνω σαν παράμετρο σε υποπρόγραμμα

1. ολόκληρο τον πίνακα ή


2. ένα στοιχείο του πίνακα ή
3. όλα τα στοιχεία του πίνακα επαναληπτικά

Περίπτωση 1: μεταφέρεται ως παράμετρος ολόκληρος ο πίνακας Α


ΚΑΛΕΣΕ Δ1(Α)
max  Σ1(Α)
ΚΑΛΕΣΕ Δ1(Α,Β) η διαδικασία Δ1 δέχεται ως παράμετρο ολόκληρο τον πίνακα Α[100] και υπολογίζει /
επιστρέφει ολόκληρο τον πίνακα Β[100] (πράγμα που δε μπορεί να κάνει η συνάρτηση)

Περίπτωση 2: μεταφέρεται ως παράμετρος μόνο το τελευταίο στοιχείο του μονοδιάστατου πίνακα Α, 100 θέσεων
ΚΑΛΕΣΕ Δ1(Α[100])
max  Σ1(Α[100])

Περίπτωση 3: μεταφέρεται ως παράμετρος, στο πλαίσιο επανάληψης, ένα στοιχείο του πίνακα Α κάθε φορά και ο
δείκτης-μετρητής
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100
ΚΑΛΕΣΕ Δ1(Α[i], i)
max <-- Σ1(Α[i], i)
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Άσκηση: Πίνακες σε υποπρογράμματα

Να γίνει αλγόριθμος, ο οποίος να δέχεται στο κυρίως πρόγραμμα τους βαθμούς 100 μαθητών στα 10 εξεταζόμενα
μεθήματα των προαγωγικών εξετάσεων της Α’ Λυκείου σε πίνακα Α[100,10]. Ακολούθως, σε υποπρόγραμμα, να
Ανάπτυξη Εφαρμογών σε προγρ αμματιστικό περιβάλλον | Υ Π Ο Π Ρ Ο Γ Ρ Α Μ Μ Α Τ Α | Σ ε λ ί δ α |6
υπολογίζει τον μέσο βαθμό ανά μαθητή και να τον εκχωρεί σε πίνακα ΜΟ[100] για περεταίρω χρήση. Να δοθεί μια
λύση με συνάρτηση και μια λύση με διαδικασία.

1η λύση: με επαναληπτική κλήση συνάρτησης

ΠΡΟΓΡΑΜΜΑ πίνακας_σε_συνάρτηση
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: i, j, ΒΑΘΜΟΣ[100,10]
ΠΡΑΓΜΑΤΙΚΕΣ:
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 10
ΓΡΑΨΕ 'Δώστε τον βαθμό του ', i, 'ου μαθητή στο ',j,'ο μάθημα'
ΔΙΑΒΑΣΕ ΒΑΘΜΟΣ[i,j]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
! υπολογισμός μέσου όρου ανά γραμμή σε συνάρτηση, επαναληπτικά
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100
ΜΟ[i] <-- Σ1(ΒΑΘΜΟΣ, i)
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΣΥΝΑΡΤΗΣΗ Σ1(Α,λ) : ΠΡΑΓΜΑΤΙΚΗ


ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Α[100,10], λ, αθρ, j
ΑΡΧΗ
αθρ <-- 0
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 10
αθρ <-- αθρ + Α[λ,j]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Σ1 <-- αθρ/10
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

2η λύση: με κλήση διαδικασίας


Αφήνεται ως άσκηση για τον μαθητή
Ανάπτυξη Εφαρμογών σε προγρ αμματιστικό περιβάλλον | Υ Π Ο Π Ρ Ο Γ Ρ Α Μ Μ Α Τ Α | Σ ε λ ί δ α |7

Απαλοιφή (ενσωμάτωση) υποπρογραμμάτων / ΔΡ με υποπρογράμματα


Να απαλείψετε τα υποπρογράμματα δημιουργώντας ισοδύναμο κώδικα (χωρίς υποπρογράμματα).

Εναλλακτική εκφώνηση: Να δημιουργήστε το Διάγραμμα Ροής του παρακάτω κώδικα. Στην περίπτωση αυτή προηγείται η
απαλειφή των υποπρογραμμάτων και έπεται η κατασκευή του ΔΡ.

ΠΡΟΓΡΑΜΜΑ ενσωμάτωση_υποπρογρ_σε_ΚΠ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: χ,ψ,γ, max
ΑΡΧΗ
ΔΙΑΒΑΣΕ χ,ψ
γ <-- Σ1(χ) + ψ
ΑΝ γ>0 ΤΟΤΕ
ΚΑΛΕΣΕ Δ1(γ,χ,ψ,max)
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΣΥΝΑΡΤΗΣΗ Σ1(τ1): ΑΚΕΡΑΙΑ


ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: τ1
ΑΡΧΗ
ΑΝ τ1>0 ΤΟΤΕ
Σ1 <-- τ1 + 3
ΑΛΛΙΩΣ
Σ1 <-- τ1 DIV 2
ΤΕΛΟΣ_ΑΝ
τ1 <-- 3
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

ΔΙΑΔΙΚΑΣΙΑ Δ1(α,χ,ψ,max)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: α,χ,ψ,max,κ,γ
ΑΡΧΗ
κ <-- 2
ΑΝ α>χ ΤΟΤΕ
max <-- α
ΑΛΛΙΩΣ
max <-- ψ
ΤΕΛΟΣ_ΑΝ
ΓΡΑΨΕ max
γ <-- 3
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

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

1. Για να ενσωματώσεις διαδικασία στο Κυρίως Πρόγραμμα (Κ.Π.) γράφεις τον κώδικα της διαδικασίας στο Κ.Π.,
στο σημείο κλήσης της, . Αντί για τις τυπικές παραμέτρους χρησιμοποιείς τις αντίστοιχες πραγματικές.

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

2. Για να ενσωματώσεις συνάρτηση στο Κ.Π. ακριβώς πριν την κλήση της συνάρτησης κάνεις τις εκχωρήσεις

τυπική_παράμετροςi  πραγματική_παράμετροςi , όπου i το πλήθος των παραμέτρων της συνάρτησης.


Ανάπτυξη Εφαρμογών σε προγρ αμματιστικό περιβάλλον | Υ Π Ο Π Ρ Ο Γ Ρ Α Μ Μ Α Τ Α | Σ ε λ ί δ α |8
Ορίζεις τις νέες μεταβλητές (δηλαδή τις τυπικές παραμέτρους της συνάρτησης και τις μεταβλητές του σώματος
της συνάρτησης) αλλάζοντας, αν χρειάζεται το όνομά τους, ώστε να αποφύγεις συνωνυμίες με τις πραγματικές
παραμέτρους ή άλλες προϋπάρχουσες μεταβλητές.

Αντιμετωπίζεις το όνομα της συνάρτησης σαν μεταβλητή.

Ενσωματώνεις τον κώδικα της συνάρτησης χρησιμοποιώντας τις τυπικές παραμέτρους (ή τις μετονομασμένες
τυπικές παραμέτρους και μεταβλητές της).

Χρησιμοποιείς το όνομα της συνάρτησης χωρίς παραμέτρους, δηλαδή σαν μεταβλητή, στον κώδικα του Κ.Π.

3. Παρόμοια εργαζόμαστε όταν υπάρχουν πολλαπλές κλήσεις της ίδιας συνάρτησης / διαδικασίας από το Κ.Π.
4. Παρόμοια εργαζόμαστε όταν το υποπρόγραμμα καλείται μέσα από άλλο υποπρόγραμμα, ξεκινώντας από την
πλέον εσωτερικά εμφωλευμένη κλήση.
5. Για να κατασκευάσεις Διάγραμμα Ροής κώδικα που περιέχει υποπρογράμματα πρέπει απαραίτητα να
απαλείψεις τα υποπρογράμματα.

ΠΡΟΓΡΑΜΜΑ ενσωματωμένα_υποπρογράμματα
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: χ,ψ,γ,γγ,κ,τ1,Σ1, max
ΑΡΧΗ
ΔΙΑΒΑΣΕ χ,ψ
τ1 <-- χ
ΑΝ τ1>0 ΤΟΤΕ
Σ1 <-- τ1 + 3
ΑΛΛΙΩΣ
Σ1 <-- τ1 DIV 2
ΤΕΛΟΣ_ΑΝ
τ1 <-- 3
γ <-- Σ1 + ψ
ΑΝ γ>0 ΤΟΤΕ
κ <-- 2 !ορίζεις στο τμήμα δηλώσεων (δεν υπάρχει συνωνυμία)
ΑΝ γ>χ ΤΟΤΕ
max <-- γ
ΑΛΛΙΩΣ
max <-- ψ
ΤΕΛΟΣ_ΑΝ
ΓΡΑΨΕ max
!αλλάζεις το όνομα της γ σε γγ ώστε να αποφύγεις συνωνυμία με την
!πραγματική παράμετρο γ της Δ1, και την ορίζεις στο τμήμα δηλώσεων
γγ <-- 3
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Ανάπτυξη Εφαρμογών σε προγρ αμματιστικό περιβάλλον | Υ Π Ο Π Ρ Ο Γ Ρ Α Μ Μ Α Τ Α | Σ ε λ ί δ α |9

Στοίβα χρόνου εκτέλεσης


Να σχεδιάσετε τη στοίβα χρόνου εκτέλεσης για το παρακάτω πρόγραμμα.

ΠΡΟΓΡΑΜΜΑ στοίβα_χρόνου_εκτέλεσης
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: χ,ψ,γ, max
ΑΡΧΗ
ΔΙΑΒΑΣΕ χ,ψ
γ <-- Σ1(χ) + ψ
ΑΝ γ>0 ΤΟΤΕ
ΚΑΛΕΣΕ Δ1(γ,χ,ψ,max)
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΣΥΝΑΡΤΗΣΗ Σ1(τ1): ΑΚΕΡΑΙΑ


ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: τ1
ΑΡΧΗ
ΑΝ τ1>0 ΤΟΤΕ
Σ1 <-- τ1 + 3
ΑΛΛΙΩΣ
Σ1 <-- τ1 DIV 2
ΤΕΛΟΣ_ΑΝ
τ1 <-- 3
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

ΔΙΑΔΙΚΑΣΙΑ Δ1(α,χ,ψ,max)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: α,χ,ψ,max,κ,γ
ΑΡΧΗ
κ <-- 2
ΚΑΛΕΣΕ Δ2(.....)
ΑΝ α>χ ΤΟΤΕ
max <-- α
ΑΛΛΙΩΣ
max <-- ψ
ΤΕΛΟΣ_ΑΝ
ΓΡΑΨΕ max
γ <-- 3
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΔΙΑΔΙΚΑΣΙΑ Δ2(...)
α <-- Σ1(...)
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

You might also like