//Δεδομένα ...// ?????

Ξεκίνησε από anasta, 10 Νοε 2006, 09:26:42 ΜΜ

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

anasta

Α) Στην σελίδα 64 του βιβλίου μαθητή αναφέρει οτι τα δεδομένα εισόδου εφόσον υπάρχουν γράφονται στην δεύτερη γραμμή του αλγόριθμου. Αντίστοιχα στην τελευταία γραμμή του αλγόριθμου γράφονται τα αποτελέσματα.
Τι εννοεί εφόσον υπάρχουν?????? Μήπως εννοεί όταν δίνεται κάτι κ δεν είναι δεδομένο εισόδου?

π.χ. αν λέει το πρόβλημα οτι δίνεται πίνακας Τ και να υπολογιστεί το άθροισμα των στοιχείων του, τότε το γράφουμε έτσι????
Αλγόριθμος παράδειγμα
//Δεδομένα Τ//
sum<--0
Για i από 1 μέχρι 10
   sum<--sum+Τ
Τέλος_επανάληψης
Εμφάνισε sum
//Αποτελέσματα sum//
Τέλος παράδειγμα

Αυτό σημαίνει οτι τα //Δεδομένα ...// αντικαθιστούν το Διάβασε??????

Είναι σωστό το παρακάτω?
Αλγόριθμος άθροισμα
//Δεδομένα Α,Β//
Διάβασε Α,Β
Σ<--Α+Β
Εμφάνισε Σ
//Αποτελέσματα Σ//
Τέλος άθροισμα

Β) Στο 2ο κεφάλαιο πρώτη φορά σε παράδειγμα τα //Δεδομένα ...// τα βρίσκουμε στο τέλος στον πολλαπλασιασμό αλα Ρωσικά(Σελ 48), όπου γράφει και τον τύπο!
στο 3ο κεφάλαιο τα βρίσκουμε σε όλα τα παραδείγματα, αλλά χωρίς τον τύπο!

ΤΙ ΓΙΝΕΤΑΙ ΤΕΛΟΣ ΠΑΝΤΩΝ ΜΕ ΑΥΤΑ ΤΑ ΔΕΔΟΜΕΝΑ ΚΑΙ ΤΑ ΑΠΟΤΕΛΕΣΜΑΤΑ???
ΠΟΤΕ ΓΡΑΦΟΝΤΑΙ?????
ΠΩΣ ΓΡΑΦΟΝΤΑΙ?????
ΕΙΝΑΙ ΛΑΘΟΣ ΑΝ ΔΕΝ ΤΑ ΓΡΑΦΟΥΜΕ??????

petrosp13

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

1.Δεδομένα γράφουμε όταν η εκφώνηση γράφει "Δίνεται..." ή "Δίνονται...". Δεδομένα και "Διάβασε" δεν συνδυάζονται

2.Αποτελέσματα γράφουμε όταν ο αλγόριθμος υπολογίζει κάποια πράγματα και δεν ορίζεται να τα εμφανίζει

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

ErmiONi

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

Και δυστυχώς στις (βία) τρεις ώρες εξέτασης , δεν υπαρχουν περιθώρια για περιττές σκέψεις.

Έτσι καταλήγω να τους διδάσκω απο την αρχή προγράμματα (με δυνατότητα οπτικοποίησης μέσω lap-top & projector, χωρίς να χάνουμε χρόνο αλλαγής τμήματος), ώστε με τους αυστηρούς κανόνες που τα διέπουν να μην υπάρχει δυνατότητα εναλλακτικών και άρα διλλημάτων.

...και απλα ρισκάρουν κανα πιθανό λάθος σε μεταβλητές...από το ολότελα?  ;)

nekis

Αν γράψεις το παρακάτω
Εμφάνισε sum
//Αποτελέσματα sum//
σημαίνει ότι έχεις φτιάξει το ανάλογο του
ΓΡΑΨΕ SUM
ΓΡΑΨΕ SUM
Πλεονασμός!
Επίσης έχω την άποψη ότι η λογική του βιβλίου είναι ότι επιλέγεις έναν τρόπο γραφής εισόδου εξόδου και δεν "τα μπλέκεις"
Ν. Κυριακου

evry


   Δεν νομίζω ότι τα  Αποτελέσματα // sum // είναι ισοδύναμα με το Εμφάνισε sum. Με το αποτελέσματα δεν εννούμε ότι εμφανίζεται κάτι στην οθόνη.
      Τα δεδομένα και αποτελέσματα θα μπορούσαμε να τα δούμε ως παραμέτρους εισόδου και εξόδου σε έναν αλγόριθμο ο οποίος θα υλοποιηθεί ως υποπρόγραμμα.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

nekis

Δεν διαφωνω.
Εγραψα το αναλογο και οχι ισοδυναμο
Νομιζω οτι ολοι συμφωνουμε στο οτι δεν εχει νοημα τα παιδια να γραφουν
ΕΜΦΑΝΙΣΕ SUM
//Aποτελεσματα SUM//

gpapargi

Βασικά με το Δεδομένα //α, β// εννοούμε κάτι σαν «Μην ασχοληθείς με το να διαβάσεις από την είσοδο τα α, β. Θεώρησε πως έχει γίνει και ξεκίνα την επεξεργασία από εκεί και κάτω».

Κάτι αντίστοιχο γίνεται και με το Αποτελέσματα //χ, ψ//. Δηλαδή σου λέει να μην ασχοληθείς με την έξοδο αυτών των ποσοτήτων.

Άρα προφανώς δεν έχει νόημα να βάλεις και Δεδομένα // // και Διάβασε.

Αυτό είναι πρακτικά ισοδύναμο με αυτό που γράφει και ο Ευριπίδης, απλά το κοιτάμε από λίγο διαφορετική σκοπιά.

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

anasta

Ok, sas euxaristw olous sas,
pws ta grafoume omws? to tupo dhladh twn dedomenwn 'h twn apotelesmatwn antistoixa ton grafoume?
π.χ. :
//Δεδομένα α, β ακέραιοι//
ή σκέτο
//Δεδομένα α, β//

p.s. mia diorthwsh sto arxiko post
h entolh prepei na einai: sum<--sum+T [ i ]

P.Tsiotakis

Αγαπητοί συνάδελφοι,

Για κάθε απορία που έχουμε σχετικά με κάποιο θέμα του μαθήματος πρέπει να ανατρέχουμε στο διδακτικό πακέτο (βιβλίο μαθητή, τετράδιο μαθητή και βιβλίο καθηγητή). Και τα 3 αυτά βιβλία αποτελούν το εργαλείο για το μάθημά μας.

Με μια γρήγορη ματιά στο διδακτικό πακέτο, παρατηρούμε τη χρήση των εντολών Δεδομένα και Αποτελέσματα ως εξής:

Σχολικό βιβλίο
1. Σελ 47. Περιγράφονται τα δεδομένα εισόδου και τα αποτελέσματα εξόδου
2.Σελ 48. Χρησιμοποιείται με τον τύπο των μεταβλητών μαζί
3. Σελ 57. δίνεται μονοδιάστατος πίνακας... Όμοια σελίδες 58, 64, 68,
4. Σελ 69. όπου αλγόριθμος καλεί αλγόριθμο με παράμετρο την μεταβλητή που περιέχεται στα δεδομένα. Όμοια στις σελίδες 71, 72, 86, 89, 90, 91

Τετράδιο μαθητή
1. Σελ 25, 33, 39, 41, 43, 48, 49, 52, 55
2. Σελ 31. Δε ζητάει εκτύπωση αλλά πρέπει να υπάρχει έξοδος! Όμοια σελ 32
3. Σελ 38. Περιγράφει τα χαρακτηριστικά του πίνακα εισόδου, αλλά δεν τον διαβάζει

Βιβλίο καθηγητή
1. Σελ 54, 55, 57, 59, 60, 61, 63, 65, 70, 85, 86, 87, 88, 89, 90, 118, 119, 120, 123, 139
2. Σελ 64. Δίνονται δυο αριθμοί – εντολή Δεδομένα. Όμοια σελ 66, 67
3. Σελ 84. όπου αλγόριθμος καλεί αλγόριθμο με παραμέτρους τις μεταβλητές που περιέχεται στα δεδομένα.
4. Σελ. 91 δηλώνει του πίνακες στα και αποτελέσματα δεδομένα με παρενθέσεις
5. Σελ 95 δηλώνει περιγραφή χρήσης μεταβλητής. Όμοια σελ 96, 100, 101, 103, 127
6. Σελ 117 δηλώνει μέγεθος πίνακα που αποτελεί έξοδο

Σελ 72: «... στο ρεπερτόριο των εντολών της ψευδογλώσσας ΔΕΝ ΥΠΑΡΧΟΥΝ δηλώσεις τύπων δεδομένων των χρησιμοποιούμενων μεταβλητών. Κάτι τέτοιο δεν είναι απαραίτητο σε επίπεδο ψευδογλώσσας…Ωστόσο δεν είναι λάθος να συμπληρώνεται ο τύπος στη γραμμή των δεδομένων.»

Στα παραπάνω, καλό είναι να λάβουμε υπόψη μας την παρουσίαση του μέλους της συγγραφικής ομάδας Χ. Κοίλια στο 2ο Συνέδριο Σύρου, 9-10-11 Μαΐου 2003  http://www.epyna.gr/show/koilias_cor1.doc

Συμπεραίνουμε λοιπόν ότι:
- Η εντολή Δεδομένα είναι εντολή εισόδου, όπως και το Διάβασε. Δεν χρησιμοποιούνται και οι δυο μαζί
- Το Διάβασε χρησιμοποιείται όταν πρέπει (η εκφώνηση της άσκησης το λέει) να δοθεί από το χρήστη κάποιο στοιχείο - από το πληκτρολόγιο δηλαδή
- Όταν κάποιο στοιχείο ΠΡΕΠΕΙ ΝΑ ΑΠΟΤΕΛΕΙ ΕΙΣΟΔΟ, αλλά ΔΕΝ ΑΝΑΦΕΡΕΤΑΙ ΣΤΗΝ ΕΚΦΩΝΗΣΗ (δεν δίνει ο χρήστης την τιμή), τότε χρησιμοποιείται η εντολή Δεδομένα
- Είναι περιττό να δηλώνεται ο τύπος, αλλά μπορεί να συμβεί (με χαραρότητα δηλώνεται και η χρησιμότητα της μεταβλητής)

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

Όμοια για την έξοδο και τη χρήση της εντολής Αποτελέσματα σε σχέση με τις Εκτύπωσε/Εμφάνισε

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




Δεν είναι λύση να καταφύγουμε στη ΓΛΩΣΣΑ, με επιχείρημα οτι η ψευδογλώσσα είναι ασαφής. Ασαφή την κάνουμε εμείς οι καθηγητές βάζοντας Τέλος_εαν, Τέλος_Αλγορίθμου, Για...έως και άλλα τέτοια όμορφα ώστε να εμφανιζόμαστε αυθεντίες στους μαθητές μας. Η ψευδογλώσσα δίνει ελευθερίες και χαλαρότητα ενώ ένα προγραμματιστικό περιβάλλον θέλει πειθαρχία. Στο σημείο που είμαστε και με τους στόχους του μαθήματος πιο από τα δυο επιθυμούμε;
Στο πρώτο-δεύτερο μάθημα ποιος εξηγεί στους μαθητές του οτι στην έκφραση  α <-- β + γ
ο τύπος του α πρέπει να έχει τον ίδιο τύπο με την έκφραση β+γ και επομένως εξαρτάται από τους τύπους των β και γ;
Η μήπως είναι λύση να λέμε στους μαθητές να δηλώνουν στη ΓΛΩΣΣΑ ΟΛΕΣ τις μεταβλητές πραγματικές (που είναι ΜΕΓΑΛΟ λάθος)

Η τελευταία παράγραφος δεν αναφέρεται στους συναδέλφους που έγραψαν πως χρησιμοποιούν ΓΛΩΣΣΑ αλλά είναι γενική παρατήρηση.

Με εκτίμηση,

Τσιωτάκης Παναγιώτης


ΥΓ.   Το θέμα έχει προσεγγιστεί ξανά στο forum:
1. https://alkisg.mysch.gr/steki/index.php?topic=173.0
2. https://alkisg.mysch.gr/steki/index.php?topic=126.0
3. https://alkisg.mysch.gr/steki/index.php?topic=16.msg86#msg86
4. https://alkisg.mysch.gr/steki/index.php?topic=250.msg1702#msg1702
5. https://alkisg.mysch.gr/steki/index.php?topic=52.msg200#msg200
6. https://alkisg.mysch.gr/steki/index.php?topic=209.msg1340#msg1340
7. https://alkisg.mysch.gr/steki/index.php?topic=342.msg2259#msg2259

filippos

Συμφωνώντας κατ' αρχήν με τα περισσότερα από τα παραπάνω, προβληματίζομαι λίγο για το :

Παράθεση από: ptsiotakis στις 15 Νοε 2006, 07:57:52 ΜΜ
Συμπεραίνουμε λοιπόν ότι:
- Η εντολή Δεδομένα είναι εντολή εισόδου, όπως και το Διάβασε. Δεν χρησιμοποιούνται και οι δυο μαζί

αυτό από που το συμπεραίνουμε;

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

Για παράδειγμα, το "πρόβλημα":


Δίνεται πίνακας Π που περιέχει τα ονόματα των μαθητών ενός σχολείου.  Να γίνει αλγόριθμος που θα ζητά κάποιο όνομα, και θα ελέγχει εάν αυτό βρίσκεται στον πίνακα...


Νομίζω ότι η εκφώνηση θα μπορούσε να απαντηθεί ως εξής:

Αλγόριθμος Σειριακή_Αναζήτηση
Δεδομένα //Π, Ν//

Διάβασε Όνομα
ι <- 1
βρέθηκε <- Ψευδής
Όσο ι <= Ν και βρέθηκε = Ψευδής επανάλαβε
  Αν Π[ι] = Όνομα τότε
    βρέθηκε <- Αληθής
  αλλιώς
    ι <- ι + 1
  τέλος_αν
Τέλος_Επανάληψης

Αποτελέσματα //βρέθηκε//
Τέλος Σειριακή_Αναζήτηση


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

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

;;;

nikosx

καλημέρα σε όλους,

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

Νίκος
Νίκος Ξένος
Καθηγητής Πληροφορικής
nxenos@sch.gr

P.Tsiotakis

Ναι παιδιά, εννοείται (ίσως η διατύπωση δεν ήταν επαρκής). Δεν χρησιμοποιούνται και οι δυο για είσοδο ΣΤΗΝ ΙΔΙΑ ΜΕΤΑΒΛΗΤΗ...

Σε μια διαδικασία υπάρχουν παράμετροι εισόδου, αλλά και μεταλητές που διαβάζονται εντός της διαδικασίας
Το παράδειγμα με τη σειριακή αναζήτηση ήταν άψογο

Με εκτίμηση,

Τσιωτάκης Παναγιώτης