Διαφωνια στο διαγραμμα ροης

Ξεκίνησε από agelos, 28 Οκτ 2008, 09:39:17 ΠΜ

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

Σούλας Βασίλης

Ανάλογα με το πρόβλημα. Εσύ καθορίζεις τις απαιτήσεις και φτιάχνεις τον ανάλογο αλγόριθμο.
Σούλας Βασίλης
Ηλεκτρολόγος Μηχανικός & Μηχανικός Η/Υ Δ.Π.Θ.
Καθηγητής Πληροφορικής ΠΕ19
http://users.sch.gr/vasisoulas
http://eclass.sch.gr/modules/auth/opencourses.php?fc=%D4-52

Σούλας Βασίλης

- Επίλυση του προβλήματος
Για τη σωστή επίλυση του προβλήματος βασική προϋπόθεση είναι ο καθορισμός απαιτήσεων.
Καθορισμός απαιτήσεων : Σημαίνει να  α) προσδιορίσουμε τα δεδομένα που παρέχονται β) να προσδιορίσουμε τα ζητούμενα, δηλαδή τι περιμένουμε σαν αποτέλεσμα.
Σούλας Βασίλης
Ηλεκτρολόγος Μηχανικός & Μηχανικός Η/Υ Δ.Π.Θ.
Καθηγητής Πληροφορικής ΠΕ19
http://users.sch.gr/vasisoulas
http://eclass.sch.gr/modules/auth/opencourses.php?fc=%D4-52

agelos

Συμφωνώ.

Αλγόριθμος Πχ
Εμφάνισε 'Δώσε δύο αριθμούς'
Διάβασε χ,ψ
Τέλος Πχ

Ποίο πρόβλημα επιλύεται;

Πρόσεχε τη διαφορά.Αν πείς

Αλγόριθμος Πχ
Εμφάνισε "Δώσε 2 αριθμούς"
Τέλος Πχ

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

Σούλας Βασίλης

Κανένα πρόβλημα δεν επιλύει. Αν δεις παλαιότερη συζήτηση που συμμετείχα υποστήριζα ότι δεν πρέπει να ξεχνάμε τον ορισμό του Αλγορίθμου. Σε αυτή την συζήτηση υποστήριζα ότι με το να χρησιμοποιούμε συντακτικά σωστά εντολές δεν σημαίνει ότι έχουμε και Αλγόριθμο. Άρα η άποψη μου είναι ότι δεν είναι Αλγόριθμος γιατί δεν επιλύει κανένα πρόβλημα με την έννοια του προβλήματος που ξέρουμε. Γενική κατάσταση που χρίζει αντιμετώπισης και η λύση δεν είναι γνωστή ούτε προφανής. Εδώ βέβαια στην συγκεκριμένη παλαιότερη συζήτηση διαφωνούσα με πολλούς συναδέλφους.
Σούλας Βασίλης
Ηλεκτρολόγος Μηχανικός & Μηχανικός Η/Υ Δ.Π.Θ.
Καθηγητής Πληροφορικής ΠΕ19
http://users.sch.gr/vasisoulas
http://eclass.sch.gr/modules/auth/opencourses.php?fc=%D4-52

Σούλας Βασίλης

ΠαράθεσηΤότε επιλύεται το πρόβλημα της εμφάνισης μηνυμάτων.Οπότε είναι έξοδος.

Είναι αυτό μια γενική κατάσταση με μή γνωστή και προφανή λύση;
Σούλας Βασίλης
Ηλεκτρολόγος Μηχανικός & Μηχανικός Η/Υ Δ.Π.Θ.
Καθηγητής Πληροφορικής ΠΕ19
http://users.sch.gr/vasisoulas
http://eclass.sch.gr/modules/auth/opencourses.php?fc=%D4-52

agelos

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

Σωστό και αυτό.Για ποιό λόγο να φτιάξει κάποιος ένα τέτοιο πρόγραμμα;;;;;Ίσως για εκπαιδευτικούς σκοπούς.Δηλαδή το πρόβλημα που επιλύει μπορείς να πe;iς πως είναι πως χρησιμοποιείται η εντολή εμφάνισε.Ξέρεις όπως τα κλασσικά προγράμματα "Hello World".

Σούλας Βασίλης

ΠαράθεσηΣυμφωνούμε απόλυτα Βασίλη.Αυτό ακριβώς λέω και γώ.Για αυτό το λόγο λοιπόν αυτά τα μηνύματα δεν είναι έξοδος.

Δεν είναι έξοδος του αλγορίθμου σωστά αλλά αν υπάρχουν σε ένα Αλγόριθμο σε ψευδογλώσσα και τον μετατρέψεις σε δ.ρ. θα τα βάλεις σε παραλληλόγραμο. σελ 29. Πλάγιο παραλληλόγραμμο, που δηλώνει είσοδο ή έξοδο στοιχείων. Πολλές φορές το σχήμα αυτό μπορεί να διαφοροποιείται προκειμένου να προσδιορίζεται και το είδος της συσκευής απ’ όπου γίνεται η είσοδος ή η έξοδος. Αυτό είναι το θέμα της συζήτησης και της διαφωνίας σου.
Σούλας Βασίλης
Ηλεκτρολόγος Μηχανικός & Μηχανικός Η/Υ Δ.Π.Θ.
Καθηγητής Πληροφορικής ΠΕ19
http://users.sch.gr/vasisoulas
http://eclass.sch.gr/modules/auth/opencourses.php?fc=%D4-52

Σούλας Βασίλης

Τα διαγράμματα ροής και η ψευδογλώσσα είναι οι 2 αυστηροί τρόποι περιγραφής ενός αλγορίθμου. Τα προεπτικά μηνύματα δεν είναι απαραίτητα αλλά και δεν είναι λάθος όταν χρησιμοποιούνται και περισσότερο δεν απαγορεύονται όπως αν κατάλαβα καλά υποστηρίζεις. Δεν προκύπτει από πουθενά ότι απαγορεύονται.
Σούλας Βασίλης
Ηλεκτρολόγος Μηχανικός & Μηχανικός Η/Υ Δ.Π.Θ.
Καθηγητής Πληροφορικής ΠΕ19
http://users.sch.gr/vasisoulas
http://eclass.sch.gr/modules/auth/opencourses.php?fc=%D4-52

alkisg

Παράθεση από: agelos στις 30 Οκτ 2008, 09:12:08 ΜΜ
Τι είναι αποτέλεσμα αλγορίθμου;

Άλλο είναι αυτό που μας ενδιαφέρει όταν θέλουμε να λύσουμε ένα πρόβλημα,
κι άλλο τα αποτελέσματα ενός αλγορίθμου που εξ' ορισμού ταυτίζονται με την έξοδό του.

Ο έχων το πρόβλημα, θα πει: θέλω ένα πρόγραμμα που να μου λύνει μια δευτεροβάθμια εξίσωση.
(γι' αυτόν, αποτελέσματα = σημαντικές πληροφορίες = οι ρίζες ή το "αόριστη" / "αδύνατη").

Ο αναλυτής συστημάτων θα πει: μάλιστα, οπότε θέλεις να σου εμφανίζει ένα μήνυμα για να σε ρωτάει τους συντελεστές, στη συνέχεια να εισάγεις τους συντελεστές, ο υπολογιστής να βρίσκει τις λύσεις και να στις εμφανίζει ή να σου εμφανίζει τα μηνύματα "αόριστη" ή "αδύνατη" στις ανάλογες περιπτώσεις.
(γι' αυτόν, αποτελέσματα = και το αρχικό μήνυμα).

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

Όταν δίνουμε εκφωνήσεις από την πλευρά του ...πελάτη, τότε ζητάμε από τους μαθητές να παίξουν και το ρόλο του αναλυτή συστημάτων, δηλαδή να προσδιορίσουν μόνοι τους το ακριβές πρόβλημα που θα λύσουν. Δεν είναι κακό να τους παρέχουμε αυτήν την ελευθερία, και φυσικά οι μαθητές μπορούν να διαλέξουν να λύσουν το πρόβλημα χωρίς εμφάνιση του αρχικού μηνύματος, είτε σε διάγραμμα, είτε σε ψευδογλώσσα, είτε σε ΓΛΩΣΣΑ.

Γενικά, αποτέλεσμα αλγορίθμου = όλες οι Εμφάνισε, τα Αποτελέσματα, οι παράμετροι εξόδου των διαδικασιών, οι εγγραφές σε αρχεία, οι εκτυπώσεις, και αν είχαμε και εντολές που να μπορούν να γράψουν σε άλλες συσκευές (αντίστοιχες με τη Random που αναφέρει ο ορισμός της εισόδου και η οποία διαβάζει το ρολόι), όπως για παράδειγμα να ανάψουν το λαμπάκι του εκτυπωτή για να ειδοποιήσουν το χρήστη ότι τέλειωσε το χαρτί, θα ήταν κι αυτές.

Συγκεκριμένα στην ψευδογλώσσα, Αποτέλεσμα αλγορίθμου = Εμφάνισε και Αποτελέσματα.
Χρειάζεται να το κάνουμε πιο πολύπλοκο; Δε νομίζω ότι υπονοεί κάτι τέτοιο το βιβλίο...

Σούλας Βασίλης

ΠαράθεσηΟ έχων το πρόβλημα, θα πει: θέλω ένα πρόγραμμα που να μου λύνει μια δευτεροβάθμια εξίσωση.
(γι' αυτόν, αποτελέσματα = σημαντικές πληροφορίες = οι ρίζες ή το "αόριστη" / "αδύνατη").

ΠαράθεσηΓενικά, αποτέλεσμα αλγορίθμου = όλες οι Εμφάνισε, τα Αποτελέσματα, οι παράμετροι εξόδου των διαδικασιών, οι εγγραφές σε αρχεία, οι εκτυπώσεις, και αν είχαμε και εντολές που να μπορούν να γράψουν σε άλλες συσκευές (αντίστοιχες με τη Random που αναφέρει ο ορισμός της εισόδου και η οποία διαβάζει το ρολόι), όπως για παράδειγμα να ανάψουν το λαμπάκι του εκτυπωτή για να ειδοποιήσουν το χρήστη ότι τέλειωσε το χαρτί, θα ήταν κι αυτές.

Ακριβώς έτσι. Συμφωνώ. Καθορισμός απαιτήσεων.
Σούλας Βασίλης
Ηλεκτρολόγος Μηχανικός & Μηχανικός Η/Υ Δ.Π.Θ.
Καθηγητής Πληροφορικής ΠΕ19
http://users.sch.gr/vasisoulas
http://eclass.sch.gr/modules/auth/opencourses.php?fc=%D4-52

agelos

Βασίλη γράφεις " Πλάγιο παραλληλόγραμμο, που δηλώνει είσοδο ή έξοδο στοιχείων. Πολλές φορές το σχήμα αυτό μπορεί να διαφοροποιείται προκειμένου να προσδιορίζεται και το είδος της συσκευής απ’ όπου γίνεται η είσοδος ή η έξοδος."
Αυτό αναφέρεται στο σχήμα.Αν δείς στις ψευδογλώσσες το πλάγιο παραλληλόγραμμο αναφέρεται σαν έξοδος όταν δεν μας ενδιαφέρει το μέσο δηλαδή αν είναι εκτυπωτής ,οθόνη κλπ.Αν μας ενδιαφέρει τότε χρησιμοποιούνται άλλα σχήματα.Αυτό εννοεί εδω.

"Ο αναλυτής συστημάτων θα πει: μάλιστα, οπότε θέλεις να σου εμφανίζει ένα μήνυμα για να σε ρωτάει τους συντελεστές, στη συνέχεια να εισάγεις τους συντελεστές, ο υπολογιστής να βρίσκει τις λύσεις και να στις εμφανίζει ή να σου εμφανίζει τα μηνύματα "αόριστη" ή "αδύνατη" στις ανάλογες περιπτώσεις.
(γι' αυτόν, αποτελέσματα = και το αρχικό μήνυμα).

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

Το μήνυμα που ρωτάει είναι βήμα πρός την επίλυση του προβλήματος , μέρος της προδιαγραφής όπως στη συνέχεια είναι η εισαγωγή των συντελεστών,η εύρεση των λύσεων και η εμφάνιση του μηνύματος "αόριστη" δηλαδή της λύσης.Με την παραπάνω λογική θα πρέπει και τα υπόλοιπα βήματα να μπούν σε πλάγιο παραλληλόγραμμο μιάς και όλα τα βήματα προφανώς έχουν κάποιο αποτέλεσμα.Κάποιο θα συγκρίνει,κάποιο θα προσθέσει όλα κάνουν κάτι και παράγουν κάποιο αποτέλεσμα μιας και κάνουν κάτι.Ο χρήστης προφανώς θέλει γενικότερα ο υπολογιστής να κάνει τη δουλειά του.Να ρωτήσει,να προσθέσει κλπ.Όμως όταν κάποιος μου αναθέτει να του φτιάξω ένα πρόγραμμα που θα κάνει μιά δουλειά από μένα τον ενδιαφέρει να του φτιάξω το πρόγραμμα που θα του κάνει τη δουλειά.Το πως θα την κάνει δεν τον ενδιαφέρει.Αυτό που θέλει είναι να δουλεύει.Και υπόψιν.Αν δεν μου ζητήσει κάποιος να του φτιάξω ένα πρόγραμμα δεν θα του το φτιάξω.Το πρόγραμμα φτιάχνεται για να δώσει αποτέλεσμα σε αυτόν που το ζητάει ή σε όποιον το χρειάζεται τέλος πάντων.Στον χρήστη δηλαδή.Άρα το αποτέλεσμα έχει να κάνει με τον χρήστη.Οχι με τον αναλυτή.
Και προφανώς όταν πχ αγοράζω ένα παιχνίδι και με ρωτάει "θέλετε να το σώσετε;" με ενδιαφέρει να το σώσει μόλις του πώ ναι.Όχι το μήνυμα που μου έβγαλε.Αν δεν το βγάλει απλά χάλασε και το πετάω όπως θα το πέταγα αν μου κόλαγε ή αν γενικά δεν έκανε τη δουλειά του.Το αποτέλεσμα για τον χρήστη είναι το σώσιμο του παιχνιδιού όχι το μήνυμα.Και έξοδος είναι το σωσμένο αρχείο.



agelos

#71
Και κάτι ακόμα.Νομίζω ότι όλοι είμαστε επηρεασμένοι από τον προγραμματισμό.Άλλο οι αλγόριθμοι και άλλο το πρόγραμμα.Γιατί ας πούμε δεν δηλώνουμε τις μεταβλητές στο διάγραμμα ροής;Αν δεν τις δηλώσουμε θα τρέξει το πρόγραμμα;Τουλάχιστον αν δεν πείς "Δώσε 2 αριθμούς" το πρόγραμμα θα τρέξει.Δεν είναι η δήλωση μεταβλητών μέρος της λύσης του προβλήματος;
ʼλλο η υλοποίηση του προγράμματος που υλοποιεί έναν αλγόριθμο και άλλο ο αλγόριθμος.
Για να υλοποιήσεις το πρόγραμμα χρειάζεσαι χιλια δυο επιπλεόν πράγματα τα οποία δεν έχουν σχέση με το αποτέλεσμα ή με τον αλγόριθμο αλλά με λειτουργικές παραμέτρους του υπολογιστή.Αν πχ φτιάξεις ένα πρόγραμμα που χρειάζεται ελάχιστη μνήμη λέω εγώ τωρα 5KB και το τρέξεις σε υπολογιστή που έχει 3ΚΒ αν δεν τρέξει δεν σημαίνει ότι είναι λάθος ο αλγόριθμος.Δεν θα φτιάξεις καινούριο αλγόριθμο αν αυτός είναι ο καλύτερος που υπάρχει.Θα βρείς άλλη λύση.Απλά δεν τρέχει σε παλιά μηχανήματα.Πές το στο manual του προγράμματος.Ή βάλε περισσότερη μνήμη στο συγκεκριμένο PC.Αν ο χρήστης βλέπει τον κέρσορα να αναβοσβήνει και δεν δίνει δεδομένα δεν φταίει ο αλγόριθμος.Ο αλγόριθμος δίνει λύση στο πρόβλημα.Το πρόγραμμα είναι μάπα.Δώστου και ένα manual μαζι με το πρόγραμμα για να ξέρει πότε να δίνει τι.Ή βάλτου μηνύματα.Δηλαδή αυτό το πρόβλημα λύνεται και αλλιώς.Δεν χρειάζεται να εμπλέξεις τον αλγόριθμό σου σε προβλήματα που έχουν να κάνουν με τον υπολογιστή.Μπορείς απλά να εμπλουτίσεις το πρόγραμμά σου για να είναι λειτουργικό και εύχρηστο.Αυτά δεν αφορούν τον αλγόριθμο.Αφορούν το πρόγραμμα.Ο αλγόριθμος λύνει ένα συγκεκριμένο πρόβλημα.Αν πχ έχεις έναν αλγόριθμο που λέει πχ να σώσεις 1000 ονόματα σε ένα αρχείο και υλοποιήσεις το πρόγραμμα με τρόπο που τα σώνει σε ένα text χάλια και κακογραμμένα με γραμματοσειρά ότι ναναι δεν φταίει ο αλγόριθμος.Σώστα με ποιό ωραίο τρόπο εσύ.Καταλάβατε τι θέλω να πώ;Είμαστε επηρεασμένοι από τον προγραμματισμό.Σαν έξοδο ο προγραμματιστής λέει καλώδια,οθόνες κλπ.Ο αλγόριθμος λέει αποτελέσματα.Μιλάει για λύσεις σε προβλήματα.

agelos

Καλημέρα σας και πάλι.
Έκανα μία ψιλοέρευνα στα βοηθήματα που κυκλοφορούν.Σε σύνολο 12 βοηθημάτων που μπόρεσα να βρώ (με καλή πρόθεση παιδιά.Δεν πήγα να βρώ αυτά που δεν τα έχουν.Βρήκα όλα όσα μπόρεσα) σας παραθέτω παρακάτω ποιά βάζουν τα μηνύματα για τα οποία διαφωνούμε στο διάγραμμα ροής όταν υπάρχουν στον αλγόριθμο και ποιά όχι.

Τα βάζουν στο διάγραμμα ροής όταν υπάρχουν στον αλγόριθμο:
Εκδόσεις Σαββάλα : Καραίσκος - Καραμπής
Εκδόσεις Ζήτη : Βερνάρδος - Μπότσαρης
Δεν τα βάζουν στο διάγραμμα ροής όταν υπάρχουν στον αλγόριθμο:
Εκδόσεις Σαββάλα :Τζιμογιάννης - Γιούνης
Εκδόσεις Ελληνοεκδοτική : Μιχαλακόπουλος - Τσιαπάλας
Εκδόσεις Σύγχρονη Πένα : Προβατάς
Αλλού τα βάζει αλλού όχι όταν υπάρχουν στον αλγόριθμο:
Εκδόσεις Γκιούρδα : Γιαννέλης 

Οι υπόλοιποι δεν έχουν αντίστοιχα παραδείγματα.Όταν τα βάζουν στον αλγόριθμο (κάποιοι δεν τα βάζουν καθόλου ούτε στον αλγόριθμο) δεν δίνουν διάγραμμα ροής.

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

Laertis

Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

gpapargi

Άγγελε το διάγραμμα ροής είναι αλγόριθμος. Ο σωστός διαχωρισμός είναι διάγραμμα ροής - ψευδογλώσσα και όχι διάγραμμα ροής - αλγόριθμος. Και τα 2 είναι αλγόριθμοι και αυτό που αλλάζει είναι η μορφή αναπαράστασης (στη μια περίπτωση είναι κωδικοποίηση και στην άλλη διαγραμματική τεχνική).

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

Προτείνω λοιπόν να γίνεται πιστή μεταφορά όλων των εντολών μια που τα βήματα πρέπει να είναι ίδια.

Τώρα γενικά είδα ότι έχουν πέσει στην κουβέντα πολλά πράγματα σχετικά με τα «κριτήρια» που θεωρώ ότι είναι σε λάθος κατεύθυνση. ʼσε τι λέει το βιβλίο. Οι συγγραφείς προσπάθησαν να καταλάβουν τι έλεγε ο Knuth και δεν το κατάφεραν από ότι φαίνεται. Έτσι έγραψαν κάτι που ξέρουμε ότι δεν στέκει. Δεν έχει νόημα λοιπόν να προσπαθούμε εμείς να τεντώσουμε τις ερμηνείες μας έτσι ώστε να βγει κάτι συνεπές. Όσο και να το προσπαθήσουμε πάντα θα είναι δυνατόν να καταλήξουμε με ασυνέπειες γιατί απλά αυτά που λέει το βιβλίο δεν είναι συνεπή.

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