Εμφωλευμένες Δομές

Ξεκίνησε από Kurt Godel, 24 Οκτ 2007, 01:02:02 ΜΜ

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

Kurt Godel

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

Εγκαινιάζω τη συμμετοχή μου με τον ακόλουθο προβληματισμό :

Ποιος θα μπορούσε να είναι ένας αυστηρός ορισμός των "Εμφωλευμένων Δομών" ;

Ερωτήματα που προέκυψαν κατά τον δικό μου προβληματισμό είναι τα ακόλουθα :

α)Για να είναι εμφωλευμένες δύο ή περισσότερες δομές θα πρέπει αναγκαστικά να είναι του ίδιου τύπου; Δηλαδή μια Δομή Επανάληψης "μέσα" σε μια Δομή Επιλογής (ή το αντίστροφο) θεωρείται εμφωλευμένη; Ή θα πρέπει να έχω αναγκαστικά εντολές του ίδιου τύπου, όπως λχ. στον BubbleSort ;

β)Μια δομή επιλογής (έστω εσωτερική) η οποία βρίσκεται μέσα σε μια άλλη δομή επιλογής (έστω εξωτερική) θεωρείται εμφωλευμένη είτε ανήκει διαγραμματικά στο κομμάτι "ΝΑΙ" είτε στο κομμάτι "ΟΧΙ" της εξωτερικής ;

Δηλαδή και το :

Αν συνθήκη_έξω τότε
    Αν συνθήκη_μέσα τότε
         εντολές μέσα
    Τέλος_αν
Τέλος_αν

(όπου η συνθήκη_έξω πρέπει να ικανοποιείται ώστε να εξετάζεται η συνθήκη_μέσα)

και το:

Αν συνθήκη_έξω τότε
     .....
αλλιώς
     Αν συνθήκη_μέσα τότε
         εντολές μέσα
    Τέλος_αν
Τέλος_αν

(όπου η συνθήκη_έξω πρέπει να μην ικανοποιείται ώστε να εξετάζεται η συνθήκη_μέσα)

αποτελούν εξίσου παραδείγματα εμφωλευμένων δομών;

Ευχαριστώ
"Δεν υπάρχει βασιλικός δρόμος προς τη Γεωμετρία"  - Ευκλείδης

P.Tsiotakis

Ο ορισμός του βιβλίου για τις εοφωλευμένες δομές είναι σαφής: οποιαδήποτε δομή εντός οποιαδήποτε άλλης ονομάζεται εμφωλευμένη.

Οι δομές είναι: Αν, Επίλεξε, Για, Όσο, Μέχρις_ότου

Kurt Godel

Καλησπέρα,

δυστυχώς στο σχολικό βιβλίο δεν μπόρεσα να βρω ορισμό της εμφωλευμένης δομής. Ο ορισμός που παρέθεσες που βρίσκεται ; Στις σελίδες 37-38 (βιβλίο μαθητή) βρήκα παραδείγματα εμφωλευμένων δομών όπου οι συγγραφείς περιορίζονται σε δύο "Αν...τότε..." μέσα σε μια εξωτερική "Αν...τότε..." και δεν είναι ξεκάθαροι για το κατα πόσο μια "Αν...τότε..." μπορεί να θεωρηθεί εμφωλευμένη κάτω από μια "Όσό..." κτλ.

Μάλιστα, αν διαβάζω σωστά, θα πρέπει να δεχόμαστε ότι ακόμα και αν μια δομή βρίσκεται κάτω απ'το κομμάτι "ΟΧΙ" μιας "Αν...τότε..." θα πρέπει να την θεωρούμε εμφωλευμένη.

Τι γίνεται όμως με την "Αν...τότε...αλλιώς_αν..." και την "Επίλεξε" που διαγραμματικά δεν είναι (?) τίποτε άλλο από ένα σύνολο συνθηκών κάτω από το κομμάτι "ΟΧΙ" μιας εξωτερικής συνθήκης; Θεωρούνται σύνολο εμφωλευμένων δομών επιλογών;

Καταλήγω στο συμπέρασμα ότι ίσως ο όρος "εμφωλευμένη δομή" θα έπρεπε να ορίζεται μόνο στην (Ψευδο)Γλώσσα και όχι στο Διάγραμμα Ροής και η σημασία του είναι περισσότερο "σχηματική" υπό την μορφή παραδείγματος.


Ευχαριστώ για την απάντηση !

"Δεν υπάρχει βασιλικός δρόμος προς τη Γεωμετρία"  - Ευκλείδης

P.Tsiotakis

σελίδα 169.

Αγαπητέ φίλε, φωλιασμένη δομή είναι αυτή που είναι μέσα σε μια άλλη δομή. Δε χρειάζεται να είναι ομοειδής.

Μπορεί να είναι δομή επιλογής εντός δομής επανάληψης

pgrontas

Στην σελίδα 169, του βιβλίου μαθητή αναφέρει μόνο για την ΑΝ, αν δεν κάνω λάθος.

Απο πού προκύπτει ότι υπάρχει εμφώλευση για διαφορετικού είδους δομές;
Από ό,τι ξέρω (δεν θυμάμαι από πού το ξέρω) εμφώλευση έχουμε όταν πρόκειται για ττην ίδια δομή (ΑΝ,ΑΝ - ΓΙΑ,ΓΙΑ).

Λέει κάτι σχετικό το βιβλίο καθηγητή (το οποίο σε όσα σχολεία έχω πάει δεν υπάρχει);
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

Kurt Godel

Πρόσεξε : Ο ορισμός που δίνεις στη σελίδα 169, είναι ορισμός για εμφωλευμένες "Αν...Τότε...Αλλιώς". Δεν γίνεται λόγος για δομές επιλογής που περιέχονται σε δομές επανάληψης (ή το αντίστροφο).

Παράλληλα στις σελίδες 179 και 180 του βιβλίου αναφέρεται:
"[...] εμφωλευμένων βρόχων. Σε αυτή την περίπτωση ο ένας βρόχος βρίσκεται μέσα στον άλλο."

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

"Δεν υπάρχει βασιλικός δρόμος προς τη Γεωμετρία"  - Ευκλείδης

P.Tsiotakis

Βρήκα πολλά σημεία στο βιβλίο καθηγητή, αλλά θα αναφέρω μόνο 2:
- Σελ 40 στους ειδικούς διδακτικούς στόχους του κεφαλαίου 2 αναφέρει: "να χρησιμοποιούν εμφωλευμένες αλγοριθμικές δομές και να συνδυάζουν διάφορες συνιστώσες μεταξύ τους" (αλγοριθμικές συνιστώσες είναι η δομή ακολουθίας, η δομή επιλογής και η δομή επανάληψης)

- Σελ 46, στις ερωτήσεις του τεστ αξιολόγησης του κεφαλαίου:
"8. Οι εμφωλευμένες δομές περιλαμβάνουν συνδυασμό:
α) συνθήκης και εκτύπωσης   β) διαφόρων αλγοριθμικών δομών
γ) συνθήκης και ανάγνωσης  δ) ανάγνωσης και εκτύπωσης
σωστό δίνει το β

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

Κατά τη γνώμη μου, δε χρειάζεται να χρειάζεται να γραφεί κάτι άλλο.

Το βιβλίο καθηγητή, βρίσκεται σε pdf στο σιτε μου αλλά και στο σιτε του παιδαγωγικού ινστιτούτου. Αν το απαιτήσεις Παναγιώτη απο το υπεύθυνο σχολείο στην περιοχή σου που μοιράζει τα βιβλία θα το έχεις. Τα βιβλία των καθηγητών έρχονται μετά απο αυτά των μαθητών, αλλά έρχονται.΄Άλλωστε, στο οπισθόφυλλο αναφέρει 3000 αντίτυπα, έτσι;  ;)

bagelis

Αδόκιμη προσπάθεια:
Εμφωλευμένος (nested) = μέσα σε φωλιά, κατ' επέκταση μέσα σε κάτι

Δεν προκύπτει από την λέξη ότι το περιεχόμενο και η φωλιά του πρέπει να είναι κάτι ομοειδές . Κατ' εμέ λοιπόν ακόμα και στο παρακάτω η εντολή εκχώρησης είναι εμφωλευμένη μέσα σε μία εντολή Αν:
Αν συνθήκη τότε
   Α <-- 5
Τέλος_Αν

Από την άλλη μεριά ο ορισμός στο κεφάλαιο 8 ορίζει τι σημαίνει Εμφωλευμένα Αν και όχι τι σημαίνει η εμφώλευση γενικά.

Κάτι ακόμα: Κεφάλαιο 6 ορισμός δομημένου προγραμματισμού: Κάθε πρόγραμμα ή ενότητα προγράμματος χρησιμοποιεί τις τρεις δομές ή συνδυασμό τους. Ο συνδυασμός των δομών δεν είναι αυτό που λέμε εμφωλευμένο; Άρα κάθε δομή (ακολουθίας, επιλογής, επανάληψης) μέσα σε δομή (πάλι ακολουθία, επιλογή, επανάληψη) θεωρείται εμφωλευμένη.

 




pgrontas

Παράθεση από: Τσιωτάκης Παναγιώτης στις 24 Οκτ 2007, 09:48:13 ΜΜ
- Σελ 40 στους ειδικούς διδακτικούς στόχους του κεφαλαίου 2 αναφέρει: "να χρησιμοποιούν εμφωλευμένες αλγοριθμικές δομές και να συνδυάζουν διάφορες συνιστώσες μεταξύ τους" (αλγοριθμικές συνιστώσες είναι η δομή ακολουθίας, η δομή επιλογής και η δομή επανάληψης)
Όπως το λέει δεν με καλύπτει. Αν ήταν έτσι όπως τις λες οι εμφωλευμένες ότι υπάρχει μετά το και είναι περιττό.

Παράθεση από: Τσιωτάκης Παναγιώτης στις 24 Οκτ 2007, 09:48:13 ΜΜ
- Σελ 46, στις ερωτήσεις του τεστ αξιολόγησης του κεφαλαίου:
"8. Οι εμφωλευμένες δομές περιλαμβάνουν συνδυασμό:
α) συνθήκης και εκτύπωσης   β) διαφόρων αλγοριθμικών δομών
γ) συνθήκης και ανάγνωσης  δ) ανάγνωσης και εκτύπωσης
σωστό δίνει το β

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

Το πρόβλημα που έχω είναι ότι και τα δύο είναι σωστά δια του αποκλεισμού. Εξάλλου στο 9 με την συγκεριμένη λογική σωστό είναι και το δ.


Παράθεση από: bagelis στις 24 Οκτ 2007, 09:53:13 ΜΜ
Δεν προκύπτει από την λέξη ότι το περιεχόμενο και η φωλιά του πρέπει να είναι κάτι ομοειδές . Κατ' εμέ λοιπόν ακόμα και στο παρακάτω η εντολή εκχώρησης είναι εμφωλευμένη μέσα σε μία εντολή Αν:
Αν συνθήκη τότε
    Α <-- 5
Τέλος_Αν

Το να είναι  απλά  μια οποιαδήποτε δομή μέσα σε μια άλλη είναι πολύ συνηθισμένο (και προκύπτει από τις προδιαγραφές μιας γλώσσας). Δεν μου φαίνεται τόσο άξιο σχολιασμου, ώστε να έχει δικό του όνομα.
Εγώ ρε παιδιά θυμάμαι μόνο τις εκφράσεις nested loops και nested ifs. Επίση nested classes στην Java -  μια κλάση μέσα σε μια άλλη κλάση.
Τέλος πάντων. Θα φροντίσω να προμηθευτώ το βιβλίο του καθηγητή και να το ψάξω περισσότερο (αν και δεν νομίζω να βρω άκρη).
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

alkisg

Ακολουθία μέσα σε ακολουθία είναι πάλι μία και μόνη ακολουθία οπότε δεν είναι εμφωλευμένη! :)
Το nesting υποτίθεται ότι γίνεται μέσα σε κάτι που έχει μία συγκεκριμένη αρχή και ένα τέλος, π.χ. ΑΝ => ΤΕΛΟΣ_ΑΝ, ΓΙΑ => ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ, ΑΡΧΗ => ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ κτλ. Η ακολουθία δεν έχει καλώς καθορισμένη αρχή και τέλος (πέρα από το surrounding block), οπότε δε νομίζω ότι μπορεί κάποια άλλη δομή να εμφωλευτεί σε αυτήν.

Στα αγγλικά απ' όσο έχω δει το nested δεν χρησιμοποιείται με αυτή τη μορφή:
μία ΑΝ εμφωλευμένη σε μία ΟΣΟ =>
an if nested to a while???

αλλά με αυτή τη μορφή:
nested if(s), nested loops, nested structures, nested functions κτλ, (edit: με πρόλαβε και τα έγραψε και ο Παναγιώτης)
δηλαδή αφού το χρησιμοποιούν έτσι, μιλάνε συνήθως για ομοειδή πράγματα. Όταν θέλουν να μιλήσουν για διαφορετικά πράγματα απ' όσο θυμάμαι χρησιμοποιούν άλλες λέξεις.

Κατά τα άλλα (μετά από ξεφύλισμα κάποιων λεξικών) δεν έχω άποψη, είναι φιλολογικό το θέμα! Δεν είναι δα και ορισμός, απλή λέξη είναι με την οποία εκφράζουμε το γεγονός ότι μια δομή είναι μέσα σε άλλη... Μάλιστα ίσως το "ένθετος" που προτεινει το magenta να ήταν καλύτερη μετάφραση...

P.Tsiotakis

Τις ερωτήσεις του τετραδίου μαθητή τις έγραψε η συγγραφική ομάδα. Αυτή καθόρισε και τις απαντήσεις. Αν ήθελε θα έβαζε "δομών επιλογής" αντί "διάφορων αλγοριθμικών δομών" που τις περιλαμβάνει όλες.

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

Όταν έχω δυο δομές επανάληψης και θέλω να ξεχωρίσω την "εντός" θα πω: εσωτερικός βρόχος ή εμφωλευμένος βρόχος για να εντοπίσω, όμοια και για δομή επιλογής.

Ωστόσο, μια δομή επιλογής εντός μιας δομής επανάληψης δεν είναι φωλιασμένη; Απο το βιβλίο καθηγητή θεωρώ οτι η συγγραφική ομάδα την αναφέρει φωλιασμένη χωρίς αφμιβολία.

Kurt Godel

Καλημέρα!


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

Alkisg και bagelis, πράγματι αν εξετάσουμε "φιλολογικά" το θέμα οδηγούμαστε στο συμπέρασμα ότι μια οποιαδήποτε δομή θεωρείται εμφωλευμένη μέσα σε μια οποιαδήποτε άλλη δομή. Από την άλλη ο καθένας θα μπορούσε να δώσει διαφορετικές ερμηνείες στο "nested" ή αν προτιμάτε στο "εμφωλευμένος" ή "ένθετος" και άρα να εξαγάγει διαφορετικά συμπεράσματα. Το ασφαλές, κατά τη γνώμη μου, θα ήταν να βαδίσουμε βάσει ορισμών και όχι βάσει (φιλο)λογικής.

Ευχαριστώ όλους για τον χρόνο και τη διάθεση !

Καλό ΣΚ.
"Δεν υπάρχει βασιλικός δρόμος προς τη Γεωμετρία"  - Ευκλείδης

gpapargi

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

Εγώ τη χρησιμοποιώ για ίδια πράγματα δηλ εντολές επιλογής σε εντολές επιλογής και εντολές επανάληψης σε εντολές επανάληψης. Όχι επιλογή σε επανάληψη, χωρίς αυτό να σημαίνει ότι κάνω το σωστό.
Το χρησιμοποιώ δηλαδή με την καθημερινή σημασία του "ένθετος" που νομίζω ότι υπονοεί ομοειδή πράγματα. Πχ ένθετο σε ένα περιοδικό ή μια εφημερίδα (σε ένα έντυπο) λέμε ένα άλλο έντυπο. Όχι ένα CD που δίνεται.

ΑΠό το απόσπασμα του βιβλίου που αναφέρει ο Παναγιώτης (Τσιωτάκης) στη σελίδα 46 δεν καταλαβαίνω ότι εννοείται η επιλογή σε επανάληψη. Οι άλλες επιλογές είναι εμφανώς λάθος. Το "διαφόρων αλγοριμικών δομών" μπορεί να σημαίνει ότι γίνεται εμφώλευση και με δομές επιλογής (μόνο) και με επανάληψης (μόνο) αλλά όχι και τα 2. Δε μου λέει κάτι δηλαδή.

Νομίζω πως το καλύτερο που έχουμε να κάνουμε είναι να ρωτήσουμε ένα φιλόλογο αν επιτρέπεται το ένθετο ενός εντύπου να είναι μόνο ένα έντυπο ή μπορεί να είναι και κάτι άλλο  :D