Tο κριτήριο της ΕΙΣΟΔΟΥ υποχρεωτικό ή όχι;

Ξεκίνησε από Λευτέρης Δουκέρης, 31 Μαρ 2013, 05:19:23 ΜΜ

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

Νίκος Αδαμόπουλος

Παράθεση από: Παναγιώτης Τσιωτάκης στις 31 Μαρ 2013, 10:07:34 ΜΜ
- το μήνυμα "hello world" με αφηρημένο τρόπο (και με την έννοια της εισόδου του βιβλίου) αποτελεί είσοδο

Παράθεση από: gpapargi στις 01 Απρ 2013, 08:44:37 ΠΜ
Αν δεχτούμε μηνύματα εκτύπωσης (Εμφάνισε «Καλημέρα»)  στην είσοδο ...

Γιατί τα μηνύματα που εμφανίζονται στην οθόνη να μπορούν να θεωρηθούν ως είσοδος; Έξοδος δεν είναι;

Νίκος Αδαμόπουλος

Παράθεση από: gpapargi στις 02 Απρ 2013, 12:06:12 ΜΜ
Εδώ ξέρουμε ότι το βιβλίο πήρε τα κριτήρια από τον Knuth. Αν διαβάσουμε λοιπόν τον Knuth (για να δούμε τι ήθελε να πει το σχολικό βιβλίο) θα δούμε ότι δεν μετέφερε καλά τα νοήματα. Αντί για χαρακτηριστικό (feature) που λέει ο Knuth την είσοδο, το σχολικό βιβλίο τα ονόμασε όλα κριτήρια.

Για ξέρουμε γιατί ακριβώς μιλάμε:


ntzios kostas

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

P.Tsiotakis

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

ψυχραιμία, δεν έχω σκοπό να γκρεμίσω το σύμπαν

στο

Αλγόριθμος Αλ
α <- "γεια σας"
Εμφάνισε α
Τέλος Αλ

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

Αλγόριθμος Αλ
Εμφάνισε "γεια σας"
Τέλος Αλ

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

Ένας αλγόριθμος πρεπει πάντα να πληρει το κριτήριο της εισόδου = να δέχεται (διαβάζει) ή να παράγει τιμές που θα επεξεργάζεται

alkisg

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

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

  • Η Διάβασε είναι είσοδος, είτε από το πληκτρολόγιο είτε από αρχείο.
  • Οι πρωτογενείς τιμές είναι είσοδος (παράδειγμα, είσοδος της seed μιας random από το ρολόι ή από τις κινήσεις ποντικιού + πληκτρολογίου του χρήστη).
  • Η εντολή Δεδομένα ενός αλγορίθμου είναι είσοδος.
  • Αν έχουμε ένα υποπρόγραμμα (συνάρτηση, διαδικασία) Υ με παράμετρο π, και το καλέσουμε ως Υ(2), το 2 έχει την ίδια έννοια με τα Δεδομένα, και αποτελεί είσοδο για αυτό το υποπρόγραμμα.
Οι αναθέσεις τιμής δεν είναι είσοδος, εμπεριέχονται στο μαύρο κουτί.

vtsakan

Παράθεση από: gpapargi στις 02 Απρ 2013, 08:29:41 ΜΜ
Ο δεύτερος κώδικας διαβάζει το ν και το έχει στο δεξί άκρο της Για. Δε δίνει το ίδιο αποτέλεσμα σε κάθε εκτέλεση.

Έχεις δίκιο. Δεν το πρόσεξα. Ο δεύτερος φυσικά και είναι αλγόριθμος!
Βασίλης Τσακανίκας
Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών Ε.Μ.Π.

Gnirut

Δεν μπορώ να καταλάβω που είναι το μπέρδεμα. Το βιβλίο είναι σαφές:
"Είσοδος (input). Καμμία, μία ή περισσότερες τιμές δεδομένων πρέπει να δίνονται ως είσοδοι στον αλγόριθμο..."

petrosp13

Παράθεση από: alkisg στις 03 Απρ 2013, 07:34:27 ΠΜ
Οι αναθέσεις τιμής δεν είναι είσοδος, εμπεριέχονται στο μαύρο κουτί.

Άρα ο παρακάτω αλγόριθμος δεν πληρεί το κριτήριο της εισόδου;;;; (επαναλαμβάνω, δεν θα βγάλουμε άκρη)

Αλγόριθμος χ
  α <-- 2
  β <-- α ^ 2
  Εμφάνισε β
Τέλος χ
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

Gnirut

Παράθεση από: petrosp13 στις 03 Απρ 2013, 10:32:15 ΠΜ
Άρα ο παρακάτω αλγόριθμος δεν πληρεί το κριτήριο της εισόδου;;;; (επαναλαμβάνω, δεν θα βγάλουμε άκρη)

Αλγόριθμος χ
  α <-- 2
  β <-- α ^ 2
  Εμφάνισε β
Τέλος χ


Πληροί το κριτήριο. Δεν έχει καμμία είσοδο.
Είναι επιτρεπτό και σύμφωνα με το βιβλίο.
Ένας αλγόριθμος μπορεί να μην έχει είσοδο.

gpapargi

Παράθεση από: vtsakan στις 03 Απρ 2013, 09:28:27 ΠΜ
Έχεις δίκιο. Δεν το πρόσεξα. Ο δεύτερος φυσικά και είναι αλγόριθμος!

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

Διάβασε ν
Σ<--0
Για ι από 1 μέχρι ν
  Σ<--Σ+ι^2
Τέλος_επανάληψης

gpapargi

Παράθεση από: Gnirut στις 03 Απρ 2013, 10:38:57 ΠΜ
Πληροί το κριτήριο. Δεν έχει καμμία είσοδο.
Είναι επιτρεπτό και σύμφωνα με το βιβλίο.
Ένας αλγόριθμος μπορεί να μην έχει είσοδο.

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

gpapargi

Παράθεση από: alkisg στις 03 Απρ 2013, 07:34:27 ΠΜ
Πέρα από το χαρακτηρισμό της ως κριτήριο ή μη, με βάση το βιβλίο, νομίζω ότι η έννοια της εισόδου ενός αλγορίθμου είναι πολύ καλά καθορισμένη:

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

  • Η Διάβασε είναι είσοδος, είτε από το πληκτρολόγιο είτε από αρχείο.
  • Οι πρωτογενείς τιμές είναι είσοδος (παράδειγμα, είσοδος της seed μιας random από το ρολόι ή από τις κινήσεις ποντικιού + πληκτρολογίου του χρήστη).
  • Η εντολή Δεδομένα ενός αλγορίθμου είναι είσοδος.
  • Αν έχουμε ένα υποπρόγραμμα (συνάρτηση, διαδικασία) Υ με παράμετρο π, και το καλέσουμε ως Υ(2), το 2 έχει την ίδια έννοια με τα Δεδομένα, και αποτελεί είσοδο για αυτό το υποπρόγραμμα.
Οι αναθέσεις τιμής δεν είναι είσοδος, εμπεριέχονται στο μαύρο κουτί.

Άλκη συμφωνώ σε όλα όσα γράφεις. Μια μικρή διευκρίνηση μόνο για να καταλάβω τι ακριβώς εννοείς όταν λες "πρωτογενείς τιμές". Υποθέτω αν εκχωρώ τιμές σε 5 μεταβλητές και μετά τις επεξεργάζομαι (πχ τις προσθέτω) αυτές δεν είναι είσοδος (και για μένα και για σένα). Υπάρχουν 2 κόσμοι: ο "μέσα" στον αλγόριθμο και ο "έξω" από τον αλγόριθμο. Για να είναι είσοδος θα πρέπει να είναι αρχικά στον "έξω" κόσμο και να "μπει" στον μέσα.
Είναι πρωτογενείς τιμές αυτές οι 5 μεταβλητές;

petrosp13

Παράθεση από: gpapargi στις 01 Απρ 2013, 08:44:37 ΠΜ
Ο Knuth αναφέρει ως «χαρακτηριστικά» (features) την είσοδο την έξοδο και αυτό που το βιβλίο μετέφρασε ως «αποτελεσματικότητα». «Κριτήρια» αποκαλεί την περατότητα και την καθοριστικότητα. Το «χαρακτηριστικό» είναι πιο ελαφριά έκφραση από το κριτήριο και αν δεν πληρείται από τον κώδικα δε σημαίνει ότι δεν είναι και αλγόριθμος. Αν όμως δεν πληρείται κάποιο κριτήριο τότε δεν είναι αλγόριθμος.

Για μένα... οι συγγραφείς δε μετέφεραν σωστά το νόημα του βιβλίου του Knuth.


Αυτό τα εξηγεί όλα νομίζω
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

P.Tsiotakis

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

Gnirut

Παράθεση από: gpapargi στις 03 Απρ 2013, 11:16:25 ΠΜ
Σύμφωνα με αυτό που γράφεις, ένας αλγόριθμος μπορεί να μην έχει είσοδο και παρόλα αυτά να πληρεί το κριτήριο της εισόδου. Δηλαδή είτε έχει είσοδο είτε δεν έχει είσοδο... το κριτήριο το πληρεί. Τι νόημα έχει να λέμε ότι ο αλγόριθμος πληρεί το κριτήριο της εισόδου ανεξάρτητα από το αν έχει είσοδο ή όχι;
Τι νόημα έχει να μιλάμε για το κριτήριο της εισόδου;

Π.χ.
Αλγόριθμος πχ1
α<-α+1
Τέλος πχ1

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

Ο παρακάτω όμως είναι αλγόριθμος:
Αλγόριθμος πχ2
α <- 1
α <- α+1
Τέλος πχ2

εδώ η πρωτογενής τιμή είναι το 1.

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