εντολή εισόδου

Ξεκίνησε από kiro, 19 Οκτ 2005, 07:35:51 ΜΜ

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

kiro

Η εντολή εισόδου ειναι ενα απο τα πεντε κριτιρια που πρέπει να ικανοποιεί ένας αλγόριθμος. με π0ιθανη κενη τιμη εισοδου. Σε μια ασκηση σωστού- λάθους με ερώτηση " Η εισοδος σε εναν αλγοριθμο ειναι παντα απαραιτητη" η απαντηση ειναι λαθος. και η απορια των παιδιων ηταν πως ειναι δυνατον να ειναι λαθος αφου εινια απαραιτητο κριτηριο για τον αλγοριθμο. Μηπως αναφεροταν στην εισοδο σαν δεδομενο μονο?
Άλλη μία ερρώτηση, η εντολή εκτύπωσε είναι μόνο θεωριτική ή υπάρχει γλώσσα που εκτυπώνει σε εκτυπώτη με την εντολη μονο. Δεν εχω κανει ποργραμματισμο.
kai κατι τελευταιο..στις εκφράσεις κάποιες φορές οι παρενθέσεις ειναι προαιρετικές .να τις βάζουμε πάντα για αποφυγή λάθους? ευχαριστώ!

Laertis

Φίλε kiro,

1) Η είσοδος είναι απαραίτητη σε έναν αλγόριθμο και δεν ξέρω πως προέκυψε η απάντηση Λάθος στην ερώτηση Σωστού-Λάθους. Ήταν θέμα απο τεστ στο σχολείο ;
Ασχετα με το ποιος και που έγινε αυτή η ερώτηση, να ξέρεις ότι η είσοδος σε ένα αλγόριθμο μπορεί να γίνεται "εξωτερικά" απο το πληκτρολόγιο δίνοντας εμείς ως χρήστες δεδομένα ή να προέρχεται απο αποτελέσματα που δημιουργούνται απο άλλους αλγορίθμους και χρησιμοποιούνται ως στοιχεία εισόδου σε άλλους αλγορίθμους ή ακόμα να παράγονται απο τον ίδιο τον υπολογιστή "εσωτερικά" στοιχεία εισόδου με ψευδογεννήτριες τυχαίων αριθμών.  Όλες αυτές οι περιπτώσεις αποτελούν Είσοδο για έναν αλγόριθμο.

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

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

α) Χ <-- α+β+γ    και  Χ <-- (α+β+γ)  
      το αποτέλεσμα είναι το ίδιο

β) Χ <-- α+β+γ/3 και  Χ <-- (α+β+γ)/3
          το αποτέλεσμα είναι διαφορετικό

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

sgsfak

#2
ΠαράθεσηΗ είσοδος είναι απαραίτητη σε έναν αλγόριθμο και δεν ξέρω πως προέκυψε η απάντηση Λάθος στην ερώτηση Σωστού-Λάθους. Ήταν θέμα απο τεστ στο σχολείο ;
Ασχετα με το ποιος και που έγινε αυτή η ερώτηση, να ξέρεις ότι η είσοδος σε ένα αλγόριθμο μπορεί να γίνεται "εξωτερικά" απο το πληκτρολόγιο δίνοντας εμείς ως χρήστες δεδομένα ή να προέρχεται απο αποτελέσματα που δημιουργούνται απο άλλους αλγορίθμους και χρησιμοποιούνται ως στοιχεία εισόδου σε άλλους αλγορίθμους ή ακόμα να παράγονται απο τον ίδιο τον υπολογιστή "εσωτερικά" στοιχεία εισόδου με ψευδογεννήτριες τυχαίων αριθμών.  Όλες αυτές οι περιπτώσεις αποτελούν Είσοδο για έναν αλγόριθμο.

Το βιβλίο αναφέρει ότι κάθε αλγόριθμος μπορεί να έχει καμία, μία ή περισσότερες εισόδους. Άρα μπορεί να έχουμε αλγόριθμο που να μην έχει είσοδο και χρησιμοποιεί το παράδειγμα με τις γεννήτριες τυχαίων αριθμών. (Πάντως το παράδειγμα αυτό δεν είναι εντελώς σωστό γιατί και σε αυτές τις περιπτώσεις συνήθως χρειάζεσαι ένα αρχικό seed όσο το δυνατόν πιο "τυχαίο", π.χ. τρέχουσα ώρα, process id, κλπ, για να ξεκινήσει η παραγωγή των αριθμών άρα και πάλι έχεις τουλάχιστον μια είσοδο.)

Κι εγώ λοιπόν θα απαντούσα στην ερώτηση αυτή επιλέγοντας το Λάθος, με βάση το παραπάνω σκεπτικό. Να συμπληρώσω πάντως ότι αυτά που αναφέρονται στο βιβλίο ως κριτήρια ο Knuth, ξεκινώντας την παρουσιάση τους, τα αναφέρει ως "χαρακτηριστικά" (features) των αλγορίθμων και μόνο για ορισμένα από αυτά (π.χ. περατότητα, καθοριστικότητα) λέει ότι πρέπει να ικανοποιούνται. Επίσης στο σημείο που περιγράφει την Είσοδο λέει επί λέξη (η έμφαση δική μου):
ΠαράθεσηAn algorithm has zero or more inputs: quantities that are given to it initially before the algorithm begins, or dynamically as the algorithm runs. These inputs are taken from specifed sets of objects.

Στέλιος

κιρο

Η ερώτηση ηταν 9έμα σε βοήθημα - Φώτης Λαζαρίνης- πάντως και από τις απαντήσεις σας πιστέυω πως είναι λίγο σχετική η απάντηση. Θα μπορούσε να εξηγηθεί και ως σωστό και ως λάθος και γι αυτο μπέρδεψε και τα παιδιά.Ευχαριστω για τις απαντησεις.

gpapargi

Γεια και χαρά

Το βιβλίο λέει ότι ένας αλγόριθμος μπορεί να έχει καμία ή περισσότερες εισόδους. Έτσι θα έβαζα «Λάθος».
Ένα παράδειγμα αλγορίθμου χωρίς είσοδο που μπορώ να σκεφτώ είναι το να βρεθεί το 20 παραγοντικό. (20!=1*2*3*4*...*20). Ο αλγόριθμος κάνει μόνο αυτό το συγκεκριμένο πράγμα και δεν είναι γενικής χρήσεως. Ο αλγόριθμος δημιουργεί τους παράγοντες του γινομένου μονος του χωρίς να δέχεται είσοδο.

Τώρα το ερώτημα είναι τι σόι κριτήριο είναι αυτό. Αν δεχόμαστε ότι ένας αλγόριθμος μπορεί να έχει ή να μην έχει είσοδο (καμία είσοδος) πως μπορεί να παραβιαστεί αυτό το κριτήριο;

Χάρη στο Στέλιο που μου έστειλε τον Knuth διαβάζω από εκεί τώρα. Ειλικρινά αυτά που βλέπω μέσα δεν έχουν καμία σχέση με αυτά που λέει το σχολικό βιβλίο και αυτά που νομίζουμε σωστά. Θα τοποθετηθώ στο θέμα μόλις ξεμπερδέψω. Δεν μπορώ να φανταστώ  τι θα πρέπει να κάνουμε. Η πρώτη εικόνα που έχω είναι ότι έγραψε κάποια πράγματα ο Knuth (που δεν ξέρω αν είναι γενικά αποδεκτά) και μεταφέρθηκαν διαφορετικά στο σχολικό βιβλίο.
Οπότε άντε βγάλε άκρη.
 ???

P.Tsiotakis

Με ενδιαφέρον διάβασα τις αναφορές στο θέμα περί εντολών εισόδου. Διαβάζοντας το βιβλίο πρόσεξα τα εξής:

1. Κάθε αλγόριθμος απαραίτητα ικανοποιεί τα επόμενα κριτήρια (ακολουθεί πρώτη η είσοδος)

Συνεπώς ΚΑΘΕ αλγόριθμος ΠΡΕΠΕΙ να έχει ΕΙΣΟΔΟ

Η πρόταση «Η είσοδος σε έναν αλγόριθμο είναι πάντα απαραίτητη» είναι ΣΩΣΤΗ και δεν υπάρχει διφορούμενο σημείο. Αυτό που δεν κατάλαβα είναι από πότε τα βοηθήματα που κυκλοφορούν για το μάθημα είναι σημείο αναφοράς και επεξήγησης του βιβλίου

Στο βιβλίο μαθητή ακολουθεί ο ορισμό της εισόδου:

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

Όπως και ο φίλος μου ο Γιώργος είπε στην περίπτωση που δεν δίνεται καμία τιμή δεδομένων (από τον χρήστη) τότε παράγεται κάποια. Αυτό που έχει σημασία είναι πως ΠΑΝΤΑ υπάρχει είσοδος. Στη δική μας περίπτωση στην ψευδογλώσσα δεν έχει οριστεί κάποια συνάρτηση παραγωγής τυχαίων αριθμών

Στα παραπάνω πολύ απλά ερωτήματα δεν χρειάζεται αναφορά στον Knuth ή στη Βίβλο

Ο παρακάτω αλγόριθμος δεν έχει είσοδο;

Αλγόριθμος Άσκηση
   Χ <- 2
   Υ <- 2 * Χ
   Εμφάνισε Υ
Τέλος Άσκηση


Υ.Γ. : Η απορία σου Kiro αν «η εντολή εκτύπωσε είναι μόνο θεωρητική ή υπάρχει γλώσσα που εκτυπώνει σε εκτυπωτή με την εντολή μόνο» θεωρώ ότι δεν χρειάζεται απάντηση. Το διδακτικό πακέτο ορίζει για την ψευδογλώσσσα τις εντολές εξόδου Εμφάνισε, Εκτύπωσε και Αποτελέσματα με συγκεκριμένη χρήση η κάθε μια

Με εκτίμηση,


sgsfak

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

Όπως και ο φίλος μου ο Γιώργος είπε στην περίπτωση που δεν δίνεται καμία τιμή δεδομένων (από τον χρήστη) τότε παράγεται κάποια. Αυτό που έχει σημασία είναι πως ΠΑΝΤΑ υπάρχει είσοδος.
Μου θυμίζεις το Unix όπου κάθε process έχει το standard input/output/error αλλά δεν σημαίνει ότι απαραίτητα τα χρησιμοποιεί, π.χ. διαβάζοντας κάποιες δεδομένα από το input. Ακόμα κι αν δεν διάβάζει κάτι από το stdin αυτό δεν σημαίνει ότι το κανάλι εισόδου δεν είναι διαθέσιμο. Τελοσπάντων επιστροφή στα δικά μας...
ΠαράθεσηΣτα παραπάνω πολύ απλά ερωτήματα δεν χρειάζεται αναφορά στον Knuth ή στη Βίβλο
Δεν είναι ταυτόσημα αυτά τα δύο;  ;D Αστειεύομαι ασφαλώς!!
ΠαράθεσηΟ παρακάτω αλγόριθμος δεν έχει είσοδο;

Αλγόριθμος Άσκηση
   Χ <- 2
   Υ <- 2 * Χ
   Εμφάνισε Υ
Τέλος Άσκηση
Δεν βλέπω ούτε δεδομένα // ... // ούτε Διάβασε πουθενά, άρα τείνω να πω ότι ναι δεν έχει είσοδο. Εννοεις φαντάζομαι ότι το 2 αποτελεί ένα δεδομένο του προβληματος και άρα αποτελεί είσοδο αν και "παράγεται" εσωτερικά. Δεν έχω κάποιο πρόβλημα με αυτήν τη λογική παρά μόνο στο εξής: αν διευρύνουμε τόσο πολύ την έννοια της εισόδου τότε δεν μπορώ να φανταστώ ένα παράδειγμα όπου παραβιάζεται το κριτήριο της Εισόδου. Ακόμα και το hello world πρόγραμμα θα θεωρηθεί ότι έχει είσοδο το αλφαριθμητικό 'Hello World!'..

Όποτε να ένα πρόβλημα αντίστοιχο με αυτό που έθεσε σε άλλο thread o Φίλιππος (νομίζω..):

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

Αν το κριτήριο της εισόδου δεν παραβιάζεται ποτέ, όπως συμπεραίνω με βάση το παράδειγμα σου, τότε ίσως δεν είναι κριτήριο;  ;)

Στέλιος

P.Tsiotakis

Παραβιάζει το κριτήριο της εισόδου:

Αλγόριθμος Άσκηση
  Υ <- 2 * Χ
  Εμφάνισε Χ, Υ
Τέλος Άσκηση

Σχόλιο: Κάθε μεταβλητή πριν χρησιμοποιηθεί πρέπει να έχει λάβει τιμή


Παραβιάζει το κριτήριο της εξόδου:

Αλγόριθμος Άσκηση
  Διάβασε Χ
  Υ <- 2 * Χ
Τέλος Άσκηση

Σχόλιο: Ένας αλγόριθμος (από τον ορισμό του) στοχεύει στην επίλυση ενός προβλήματος. Η λύση πρέπει να επιστρέφεται

Νομίζω οτι το αρχικό ερώτημα της Όλγας έχει κλείσει

Με εκτίμηση,


gpapargi

Καλημέρα

Είναι φανερό ότι υπάρχει διαφωνία και δίκαια ο/η  kiro μιλάει για μπέρδεμα.

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

Το βιβλίο γράφει:
«Κάθε αλγόριθμος απαραίτητα ικανοποιεί τα επόμενα κριτήρια»
Και πρώτα από όλα αναφέρει την είσοδο.
Κρίνοντας από αυτό το σημείο μπορεί κάποιος δίκαια να πει ότι η πρόταση
"Η εισοδος σε εναν αλγοριθμο ειναι παντα απαραιτητη" είναι ΣΩΣΤΗ.

Αμέσως μετά λέει:

«Καμία, μία ή περισσότερες τιμές δεδομένων πρέπει να δίνονται ως είσοδοι στον αλγόριθμο»

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

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

Το σημείο στο οποίο γίνεται η σύγχυση φαίνεται πως είναι το πώς ερμηνεύει ο καθένας τη λέξη «είσοδος».

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

Στον παρακάτω αλγόριθμο

Αλγόριθμος Άσκηση
   Χ <- 2
   Υ <- 2 * Χ
   Εμφάνισε Υ
Τέλος Άσκηση

Το Χ παίρνει τιμή μέσα στον αλγόριθμο. Τα όρια του αλγορίθμου είναι τα:
«Αλγόριθμος Άσκηση»
Και
«Τέλος Άσκηση»

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

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

Δίκαια όμως νομίζω ότι δημιουργείται σύγχυση.

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

Συνοψίζοντας η γνώμη μου είναι ότι πρόκειται για μια ασαφή διατύπωση που πρέπει να ερμηνευτεί με βάση την κοινή λογική. Με αυτό το σκεπτικό και με κάθε επιφύλαξη (όπως πάντα στην επιστήμη) θεωρώ ότι η πρόταση που αναφέρει ο/η κιρο είναι ΛΑΘΟΣ. Σέβομαι όμως απόλυτα και την άλλη άποψη αφού μπορεί να τεκμηριωθεί με βάση κάποια συγκεκριμένη πρόταση του βιβλίου.

Καλό θα ήταν πάντως να το κουβεντιάζαμε και να λαμβάναμε μια απόφαση όλοι μαζί.

Φιλικά

P.Tsiotakis


Κατά τη γνώμη μου δεν υπάρχει ΚΑΜΙΑ ασάφεια. Ο ορισμός λέει "καμία τιμή ...", αλλά αμέσως μετά λέει οτι στην περίπτωση αυτή παράγεται τιμή. Άρα και σε αυτήν την περίπτωση ΥΠΑΡΧΕΙ είσοδος.

Έτσι, ΠΑΝΤΑ υπάρχει είσοδος...

Έτσι, στον αλγόριθμο που έγραψα, η εντολή:

Χ <- 2

... αποτελεί γεννήτρια παραγωγής αριθμών  :juggle:

Με εκτίμηση,


gpapargi

Καταλαβαίνω τι ακριβώς λες Παναγιώτη. Εγώ το αντιλαμβάνομαι διαφορετικά.

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

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

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

Για μένα ο αλγόριθμος είναι όλες οι εντολές μεταξύ αρχής και τέλους οπότε οι εντολές απόδοσης τιμών είναι μέσα στον αλγόριθμο και δεν αποτελούν είσοδό του.

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