Εισοδος Αλγορίθμου

Ξεκίνησε από Skara, 03 Οκτ 2008, 02:12:19 ΜΜ

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

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

ΠαράθεσηΣυνάδελφοι πάνω σε αυτό ακριβώς, δώστε μια παραπάνω εξήγηση μπας και καταλάβω τι εννοείτε:
Έστω το απλό πρόβλημα "κάντε έναν αλγόριθμο που να μετράει από το Α ως το Τ με βήμα Β".
Κάποιος το δίνει σαν (κακοδιατυπωμένη κατά την άποψή μου) άσκηση με συγκεκριμένα νούμερα:
"κάντε έναν αλγόριθμο που να μετράει από το 1 ως το 10 με βήμα 1"

Ένας μαθητής το λύνει με αναθέσεις τιμής:
Α <- 1
Τ <- 10
Β <- 2
Για ι από Α μέχρι Τ με_βήμα Β
  Εμφάνισε ι
τέλος_επανάληψης

Ένας άλλος μαθητής το λύνει χωρίς αναθέσεις τιμής:
Για ι από 1 μέχρι 10 με_βήμα 2
  Εμφάνισε ι
τέλος_επανάληψης

Τι διαφορά έχουν τα δύο παραπάνω όσον αφορά στην είσοδο, όπως την ορίζετε;

Η άποψη μου είναι η εξής: οι αλγόριθμοι που γράφεις εκφυλίζονται σε:
Αλγόριθμος μέτρημα
Εμφάνισε '1'
Εμφάνισε '3'
Εμφάνισε '5'
Εμφάνισε '7'
Εμφάνισε '9'
Εμφάνισε '11'
Τέλος

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

Laertis

Παράθεση από: sstergou στις 14 Οκτ 2008, 05:14:18 ΜΜ
Νομίζω ότι κάνουμε κύκλους πάλι.

Για μένα είναι αυτονόητο ότι καμία είσοδος σημαίνει ότι δεν υπάρχει είσοδος και ότι παραβιάζεται το κριτήριο ή χαρακτηριστικό της εισόδου.

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

Αν απαντηθεί αυτό νομίζω μετά πρέπει να μας βασανίσει το ερώτημα για τη Ζωή το Σύμπαν και τα Πάντα, ε Άλκη;  8)

Μη βιάζεσαι Στάθη, έχουμε να πιάσουμε και το κριτήριο της εξόδου και της αποτελεσματικότητας. Εκεί να δεις .... :D
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

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

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

sstergou

Παράθεση από: Σούλας Βασίλειος στις 14 Οκτ 2008, 05:37:52 ΜΜ
Αν το λάβουμε αυτό υπόψη πιστεύω θα σταματήσουμε να δίνουμε παραδείγματα που ουσιαστικά με κάτι που έχει την μορφή αλγορίθμου ουσιαστικά δεν λύνουμε προβλήματα γι αυτό και εκφυλίζονται τελικά σε κάτι με μορφή αλγόριθμου χωρίς <-- και χωρίς διάβασε άρα παραβιάζουν το κριτήριο της εισόδου (αυτό δεν σημαίνει καμμία είσοδος)

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

Αυτό σημαίνει ότι δεν είναι σωστοί ή ότι δεν λύνουν κάποιο πρόβλημα;

Γιώργο, δεν έχει συζητηθεί ακόμη τι είναι δεδομένο ή μήπως κάνω λάθος  :)

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

#79
Αλγόριθμος σύστημα3επι2
α1<--3
β1<--6
γ1<--9.3
α2<--3.8
β2<--6
γ2<---2.3
α3<--3
β3<--6
γ3<---9.3
.
.
.
.
.
Τέλος

Ο παραπάνω είναι ένας αλγόριθμος που λύνει ένα σύστημα εξισώσεων 3Χ2 (δεν τον έκανα ολόκληρο). Η λύση του συγκεκριμένου προβλήματος δεν είναι γνωστή ούτε προφανής. Άρα οποιοσδήποτε είχε να λύσει ένα τέτοιο πράγμα επειδή εμπίπτει στον ορισμό του προβλήματος θα χρησιμοποιούσε ένα αλγόριθμο με <-- και όχι τον εκφυλισμένο γιατί για να γράψει τον εκφυλισμένο τότε θα έπρεπε να το λύσει στο χαρτί πριν (αλγόριθμος με ελεύθερο κείμενο όπου αντί για βελάκια το =) (μη προφανής η λύση που λέγαμε). Αλλά το να μετράω από το 1 μέχρι το 11 δεν είναι πρόβλημα με μη προφανή λύση για αυτό και χωρίς να φτιάξω κάτι στο χαρτί γράφω τον εκφυλισμένο

Αλγόριθμος μέτρημα
Εμφάνισε '1'
Εμφάνισε '3'
Εμφάνισε '5'
Εμφάνισε '7'
Εμφάνισε '9'
Εμφάνισε '11'
Τέλος

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

sstergou

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

Οι εκχωρήσεις στην αρχή του παραδείγματός σου έχουν καθαρά πρακτικό λόγο ύπαρξης. Θα μπορούσες κάλλιστα να μην τις έχεις βάλει και να χρησιμοποιήσεις τις πραγματικές τιμές όπου αυτό είναι απαραίτητο.

Για το πρόβλημα βρες την τετραγωνική ρίζα του 8475; Δεν νομίζω η λύση να είναι προφανής.
Και όμως μπορείς να γράψεις Εμφάνισε Τ_Ρ(8475).

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

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

Προφανής λύση είναι να λύσω παράδειγμα  το εξής πρόβλημα. Να γραφεί ένας αλγόριθμος που να μετρά από το 1 μέχρι το 10. Συμφωνείς;
Μπορείς κατευθείαν να γράψεις τον ''αλγόριθμο'' αυτό με κωδικοποίηση χωρίς καμμία άλλη ενέργεια; Χρειάζεσαι βελάκια; Πιστεύω όχι. Άρα ούτε βελάκια ούτε διάβασε άρα παραβίαση του κριτηρίου εισόδου.

ΠαράθεσηΟι εκχωρήσεις στην αρχή του παραδείγματός σου έχουν καθαρά πρακτικό λόγο ύπαρξης. Θα μπορούσες κάλλιστα να μην τις έχεις βάλει και να χρησιμοποιήσεις τις πραγματικές τιμές όπου αυτό είναι απαραίτητο.

έχουν ουσιαστικό λόγο ύπαρξης γιατί έχω ένα πρόβλημα με γνωστή λύση αλλά μη προφανή. εαν σου δώσω ένα σύστημα 3 επι 2 μπορείς να γράψεις κατευθείαν αλγόριθμο με εμφάνιση της λύσης (όχι σχηματισμό της λύσης μέσα στην εμφάνισε) χωρίς προηγουμένως στο χαρτί να το λύσεις (άρα αλγόριθμο πάλι με =); Όχι. ʼρα θα χρησιμοποιήσεις <-- και θα γράψεις την λύση.

ΠαράθεσηΓια το πρόβλημα βρες την τετραγωνική ρίζα του 8475; Δεν νομίζω η λύση να είναι προφανής.
Και όμως μπορείς να γράψεις Εμφάνισε Τ_Ρ(8475).

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

sstergou

Δεν μπορώ να καταλάβω γιατί η συνάρτηση Τ_Ρ έχει εκχώρηση.
Η είσοδός της συνάρτησης στην ψευδογλώσσα το πιο πιθανό είναι να γίνεται με την δεσμευμένη λέξη Δεδομένα. Αλλά δεν μιλάμε για την είσοδο της συνάρτησης μιλάμε για αυτή του υποτιθέμενου αλγορίθμου που λύνει το πρόβλημα "βρες τη ρίζα ...". Άλλο παράδειγμα

"Υπολόγισε τον κύβο του αριθμού 1234,11345".
Τώρα έχουμε : Εμφάνισε 1234,11345^3

Δεν βλέπω όμως να βγάζουμε άκρη..
Συμφωνώ ότι διαφωνούμε :)

Για όλα τα παραπάνω μπορώ να θέσω ένα επιχείρημα, για αυτό όμως δεν έχω τίποτε να πω, ειλικρινά δεν το χωράει το μυαλό μου!!
Παράθεση από: Σούλας Βασίλειος στις 14 Οκτ 2008, 06:55:05 ΜΜ
ʼρα ικανοποιεί το κριτήριο της εισόδου γιατί έχει καμμία είσοδο.

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

Προβλήματα με προφανή λύση είναι αυτά που ακούγοντας την εκφώνηση κατευθείαν μπορείς να εμφανίσεις την λύση (όχι να την σχηματίσεις μέσα στην Εμφάνισε). Αν το πρόβλημα δεν έχει προφανή λύση για να το λύσεις στατικά (π.χ μια συγκεκριμένη δευτεροβάθμια εξίσωση χρειάζεσαι <-- στον αλγόριθμο και όχι διάβασε άρα καμμία είσοδο) και για να το λύσεις δυναμικά χρειάζεσαι και <-- και διάβασε και συγκεκριμένα 3 διάβασε (3 εισόδους). Άρα οι αλγόριθμοι που λύνουν προφανή προβλήματα είναι αυτοί που παραβιάζουν το κριτήριο εισόδου.
Σούλας Βασίλης
Ηλεκτρολόγος Μηχανικός & Μηχανικός Η/Υ Δ.Π.Θ.
Καθηγητής Πληροφορικής ΠΕ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

sstergou

Εκχώρηση χρειάζεσαι για να υπολογίσεις κάτι και όχι απαραίτητα για να δηλώσεις την είσοδο στον αλγόριθμό σου.

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

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

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

#86
Είσοδος είναι οτιδήποτε μπορεί να μεταβάλλει τα αποτελέσματα του αλγορίθμου από το ΄΄εξωτερικό΄΄ περιβάλλον του αφού έχει προηγουμένως ξεκινήσει η εκτέλεσή του. Αυτή είναι η έννοια της εισόδου στα καθολικά συστήματα (έχει δυναμική έννοια η είσοδος). Άρα στους αλγορίθμους είσοδο έχουμε με την εντολή εισόδου διάβασε ή //Δεδομένα//. ʼρα σε ένα αλγόριθμο με τρεις διάβασε έχουμε 3 εισόδους. Ποια είναι η σκοπιμότητα των αλγορίθμων; Να λύνουν προβλήματα και πρόβλημα είναι μια κατάσταση που η λύση δεν είναι γνωστή και προφανής. Τώρα ας εξετάσουμε το κριτήριο του σωστού αλγορίθμου Είσοδος σε σχέση με τα προβλήματα που έχουμε να λύσουμε. Το κριτήριο της εισόδου αναφέρεται όχι με την έννοια της ύπαρξης ή όχι εισόδου, αλλά αν ικανοποιήται ή όχι το συγκεκριμένο κριτήριο. Ικανοποιήται όταν έχω καμμία, μια η παραπάνω εισόδους και δεν ικανοποιήται με το όχι καμμία και όχι μια ή παραπάνω εισόδους.(συμπλήρωμα). ʼρα έχοντας ένα πρόβλημα με όχι γνωστή λύση και μη προφανή π.χ. δευτεροβαθμια εξίσωση αν το λύσω δυναμικά θα πρέπει να χρησιμοποιήσω διάβασε άρα ικανοποιήται το κριτήριο της εισόδου (έχω 3 εισόδους), αν το λύσω στατικά δηλαδή με συγκεκριμένους συντελεστές δεν έχω διάβασε αλλά θα χρησιμοποιήσω απαραίτητα <-- (απαραίτητα γιατί η λύση δεν είναι προφανής, κάποιος μπορεί να πει ότι το λύνω στο χαρτί και κατευθείαν με εμφάνισε το γράφω στον αλγόριθμο, αυτό είναι το ίδιο έγραψες αλγόριθμο σε μορφή κειμένου και χρησιμοποίησες το = στο χαρτί και μετά το χρησιμοποίησες ή κάποιος μπορεί να πεί ότι σχηματίζω την λύση κατευθείαν στην εμφάνισε αλλά και αυτό είναι το ίδιο δεν είναι προφανής η λύση). ʼρα καμμία είσοδος σημαίνει λύνω στατικά ένα πρόβλημα με όχι γνωστή και μη προφανή λύση φτιάχνοντας αλγόριθμο χωρίς διάβασε αλλά με <--). ʼρα ο αλγόριθμος είναι σωστός γιατί ικανοποιεί το κριτήριο της εισόδου γιατί έχει καμμία. Τώρα αν έχουμε εκφωνήσεις προβλημάτων με προφανή λύση τότε δεν θέλουμε ούτε διάβασε και ούτε <--, άρα όχι καμμία και ούτε μια η περισσότερες είσοδοι, άρα παραβίαση του κριτηρίου της εισόδου.
Π.χ.
Να γραφτεί αλγόριθμος που να μετρά από το 1 μέχρι το 11 ανα 2.

Αλγόριθμος μέτρημα
Εμφάνισε ΄1΄
Εμφάνισε ΄3΄
Εμφάνισε ΄5΄
Εμφάνισε ΄7΄
Εμφάνισε ΄9΄
Εμφάνισε ΄11΄
Τέλος

Να γραφτεί αλγόριθμος που να εμφανίζει το μήνυμα καλημέρα

Αλγόριθμος μήνυμα
Εμφάνισε ΄Καλημέρα΄
Τέλος

Οι παραπάνω ΄΄Αλγόριθμοι΄΄ οπτικά είναι αλγόριθμοι αλλά ουσιαστικά δεν είναι σωστοί αλγόριθμοι γιατί δεν λύνουν πρόβλημα με μη γνωστή λύση και μη προφανή για αυτό και παραβιάζουν το κριτήριο εισόδου και όχι μια η περισσότερες είσοδοι (όχι διάβασε) και καμμία είσοδος (όχι διάβασε και όχι <--).

Αν κάποιος γράψει

Αλγόριθμος εμφάνιση
Διάβασε χ
Εμφάνισε χ
Τέλος

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

ntzios kostas

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

Αλγόριθμος κδξφ
εμφάνισε 'καλημέρα'.
τέλος κδξφ

Τρομερό! Για μένα έλυσε το πρόβλημα της ζωής μου.


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

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

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

ntzios kostas

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

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