Ερωτηση σε ασκηση

Ξεκίνησε από Μαρια Κ., 28 Απρ 2006, 11:27:15 ΠΜ

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

Μαρια Κ.

Μια ερωτηση στο πρακατω θεμα

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


Το ερωτημα β) πως μπορει να γίνει χωρις της συναρτησης Α_Μ
μιας και η λύση είναι σε αλγόριθμο;
Ευχαριστώ


xaidi

Η κατασκευή κώδικα με χρησιμοποίηση "γλώσσας" δεν είναι αλγόριθμος????
έχω την εντύπωση ότι όταν ζητείται αλγόριθμος μπορούμε να χρησιμοποιήσουμε όποια κωδικοποίηση θέλουμε.
Ευχαριστώ,

κωστας

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

Μαρια Κ.

Δηλαδή οταν η ασκηση αναφερει 'να γινει αλγοριθμος'
ειναι σωστη η λύση της σε ΓΛΩΣΣΑ;

Στη νεοτερη βιβλιογραφια αλλα και στιςΠανελλαδικες η λυση δίνεται με ψευδογλώσσα.

Vangelis

Παιδιά να μην τρελαθούμε φυσικά και μπορεί να χρησιμοποιήσει ΓΛΩΣΣΑ σε αλγόριθμο (είναι μια μορφή αλγορίθμου).
Επίσης μπορεί να χρησιμοποιήσει τη συνάρτηση Α_Μ  όχι απαραίτητα με αυτό το όνομα μπορεί να χρησιμοποιήσει ΙΝΤ(Χ), Ακέραιο_Μέρος(Χ) και όποια άλλη σύνταξη θέλει ο μαθητής.  Καλό είναι βέβαια σε περίπτωση που χρησιμοποιήσει κάποιο περιέργο όνομα να διευκρινήσει τι κάνει αυτή η συνάρτησ με μια σημείωση.
Επίσης προσωπικά θα δεχόμουν σα σωστό και το Χmod1=0, δεν νομίζω ότι το βιβλίο να αναφέρει  πουθενά ότι η συνάρτηση mod χρησιμοποιείται μόνο για ακεραιους  (Αν κάνω λάθος παρακαλώ να μου το πείτε) οπότε φυσικό είναι ο μαθητής  να θεωρεί ότι μπορεί να χρησιμοποιηθεί και για πραγματικούς.

evry


  Βαγγέλη δεν έχω μπροστά μου το βιβλίο αλλά έχω την εντύπωση ότι χρησιμοποιούμε τον τελεστή mod με ακέραιους αριθμούς. Αν υποθέσουμε ότι οι αριθμοί είναι πραγματικοί τότε και το υπόλοιπο θα πρέπει να είναι πραγματικός. Για παράδειγμα αν διαιρέσουμε το 3,5 με το 2 έχουμε πηλικό 1 και υπόλοιπο 1,5. Όμως έχουμε πει ότι το αποτέλεσμα του mod είναι ακέραιος. Άρα για τον ίδιο ακριβώς λόγο και οι αριθμοί που χρησιμοποιούμε πρέπει να είναι ακέραιοι.
     Αν πάλι κοιτάξεις σε κάποιο βιβλίο διακριτών μαθηματικών ή άλγεβρας έχω την εντύπωση ότι ο τελεστής modulo και γενικότερα η αριθμητική modulo ορίζεται μόνο για ακέραιους αριθμούς αν θύμαμαι καλά.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Christos

Οι τελεστές div και mod χρησιμοποιούνται μόνο με ακεραίους.

Νομίζω οτι μπορούν να χρησιμοποιηθούν στη σύνταξη αλγορίθμων όλες οι συναρτήσεις της ΓΛΩΣΣΑΣ, όπως Α_Μ(χ),Α_Τ(χ) κ.λ.π. Αποτελούν μορφή κωδικοποίησης.

filippos

Δηλαδή Βαγγέλη, αν κάποιο θέμα ζητούσε να γίνει αλγόριθμος που θα ζητάει δύο αριθμούς και θα εμφανίζει το μεγαλύτερο, αυτό θα νομιμοποιούσε το μαθητή να χρησιμοποιήσει αυθαίρετα τη "συνάρτηση" MAX αρκεί να εξηγήσει ΤΙ κάνει;

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

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

Όσο για το MOD, θα διαφωνήσω με το Βαγγέλη.  Το mod και το div είναι οι τελεστές της ακέραιας (ευκλείδιας ή αλγοριθμικής) διαίρεσης που (πρέπει να) γνωρίζουν οι μαθητές από τα Μαθηματικά κατεύθυνσης της Β' Λυκείου.  Δεν είναι ο ρόλος του μαθήματος να τους επανακαθορίσει, και μάλιστα έτσι αυθαίρετα.  Πρόκειται για τελεστές ακεραίων.  Διαφορετικά ο μαθητής είναι ελεύθερος να υποθέσει είτε ότι:
4.5 div 2.5 = 1
4.5 mod 2.5 = 2
ή ότι:
4.5 div 2.5 = 1.5
4.5 mod 2.5 = 0.75
είτε οτιδήποτε άλλο ικανοποιεί την Δ = δ x π + υ που όμως πρόκειται για τον ορισμό της ΑΚΕΡΑΙΑΣ διαίρεσης

Εξ άλλου, στη σελίδα 153, ΚΑΙ το βιβλίο τους ορίζει σε σχέση με τη διαίρεση ακέραιων, ορισμός που είναι απόλυτα σύμφωνος με αυτό που δίνουν και τα μαθηματικά που ξέρουν (και ξέρουμε).

Vangelis

Φιλλιπε
με την ίδια λογική, αν το επεκτείνουμε λιγάκι, θα μου προσάψεις ότι  μπορούσε ο μαθητής να γράψει το υποπρόγραμμα Λύση  το οποίο θα λύνει την άσκηση που του έβαλαν (χωρίς να λέει πως) και θα το θεωρούσα σωστό!!. 
Παραδέχεσε  σα σωστή την έκφραση ΙΝΤ(Χ) αλλά όχι το ΑΚΕΡΑΙΑ_ΤΙΜΗ(Χ), εδώ πράγματι διαφωνούμε ριζικά.  Ο σκοπός του μαθήματος δεν είναι να μάθουμε το μαθητή ότι η συνάρτηση Ακέραιο Μέρος (και κάθε συνάρτηση)  ονομάζεται Α_Μ, ΙΝΤ κ.λπ αλλά τι κάνει αυτή η συνάρτηση.  Αν λοιπόν εμένα μου γράψει ΑΚΕΡΑΙΑ_ΤΙΜΗ(Χ) ή ΑΚΕΡΑΙΟ_ΜΕΡΟΣ(Χ) ή ΙΝΤ(Χ) μου είναι απολύτως το ίδιο, ο μαθητής έχει καταλάβει τι πρέπει να κάνει και πως θα το συμβολισει λίγο με ενδιαφέρει (δεν κάνω προγραμματισμό ούτε μεταγλώτττιση).
Τώρα σχετικά με το div και το mod  συμφωνώ με τον Φίλλιπο ( και ευχαριστώ) ότι εφόσον στη σελίδα 153 διευκρινίζεται ότι χρησιμοποιούνται μόνο για ακεραίους αριθμούς δεν μπορεί να χρησιμοποιηθεί με τον τρόπο που ανέφερα.  Αν δεν το έλεγε πουθενά θα υπήρχε πάντως πρόβλημα το ότι το έμαθαν στα Μαθηματικά της Β λυκείου δεν είναι επαρκής δικαιολογία.

Vangelis

Ερώτηση
Αν ο μαθητής γράφοντας σε ΓΛΩΣΣΑ  χρησιμοποιήσει την εντολή Εμφάνισε  αντί για την ΓΡΑΨΕ το θεωρείτε λάθος;

filippos

Παράθεση από: Vangelis στις 29 Απρ 2006, 11:02:11 ΜΜ
Παιδιά να μην τρελαθούμε φυσικά και μπορεί να χρησιμοποιήσει ΓΛΩΣΣΑ σε αλγόριθμο (είναι μια μορφή αλγορίθμου).

Σωστά..  η κωδικοποίηση σε μία γλώσσα προγραμματισμού είναι απόλυτα σωστός τρόπος αναπαράστασης αλγόριθμου, όπως και η κωδικοποίηση σε ψευδογλώσσα.  Ας μην διατηρούμε τη σύγχιση που έχουμε καταφέρει να δημιουργήσουμε στους μαθητές.  Συχνά ρωτάνε... αλγόριθμος ή πρόγραμμα ;;; Λες και το πρόγραμμα δεν είναι αλγόριθμος.  Έχω την αίσθηση ότι τη "ζημιά" κάνει η χρήση της δηλωτικής εντολής "Αλγόριθμος" στην πρώτη περίπτωση και της δεσμευμένης λέξης ΠΡΟΓΡΑΜΜΑ στη δεύτερη.  Προσωπικά τους "διορθώνω" με τη φράση: κωδικοποίηση σε ψευδογλώσσα ή ΓΛΩΣΣΑ;

Παράθεση από: Vangelis στις 01 Μαΐου 2006, 11:06:35 ΜΜ
με την ίδια λογική, αν το επεκτείνουμε λιγάκι, θα μου προσάψεις ότι  μπορούσε ο μαθητής να γράψει το υποπρόγραμμα Λύση  το οποίο θα λύνει την άσκηση που του έβαλαν (χωρίς να λέει πως) και θα το θεωρούσα σωστό!!. 

Κατ' αρχήν δε σου προσάπτω τίποτα... μην το παίρνεις προσωπικά :) κουβέντα κάνουμε ;)

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

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

Παράθεση από: Vangelis στις 01 Μαΐου 2006, 11:06:35 ΜΜ
Παραδέχεσε  σα σωστή την έκφραση ΙΝΤ(Χ) αλλά όχι το ΑΚΕΡΑΙΑ_ΤΙΜΗ(Χ), εδώ πράγματι διαφωνούμε ριζικά. 
Δε διαφωνούμε καθόλου!  Πώς έβγαλες αυτό το συμπέρασμα;  Συμφωνώ απόλυτα με αυτά που λες, τουλάχιστον σε αυτό το σημείο.  Το θέμα δεν είναι αν θα το πει Α_Μ(), ΙΝΤ(), ΑΚΕΡΑΙΟ_ΜΕΡΟΣ() ή οτιδήποτε άλλο.  Το θέμα είναι να το χρησιμοποιήσει σωστά για να δώσει αλγοριθμικά σωστή λύση στο πρόβλημα.  Επομέννως, και εγώ, και ελπίζω όλοι μας, θα θεωρούσαμε κάτι τέτοιο σωστό, τόσο για την Α_Τ όσο και για όποια από τις υπόλοιπες συναρτήσεις "ορίζονται" στο βιβλίο.  (Δε βλέπω βέβαια για ποιό λόγο να πρέπει να γίνει κάτι τέτοιο... Τόσο δύσκολο είναι να θυμάται τα ονόματα;)

Το σημείο όμως με το οποίο διαφωνώ είναι εκείνο στο οποίο λες:
Παράθεση από: Vangelis στις 29 Απρ 2006, 11:02:11 ΜΜ
Καλό είναι βέβαια σε περίπτωση που χρησιμοποιήσει κάποιο περιέργο όνομα να διευκρινήσει τι κάνει αυτή η συνάρτησ με μια σημείωση.

Έτσι όπως το διατυπώνεις δείχνει να "εννοεί" ότι ο μαθητής δικαιούται να "χρησιμοποιήσει" μία οποιαδήποτε "συνάρτηση" αρκεί να διευκρυνίσει τι κάνει.  Πιστεύω ότι θα ήταν λάθος να επεκταθεί ο μαθητής σε αυτοσχεδιασμούς αυτού του είδους θεωρώντας ότι αν απλά διευκυνίσει ΤΙ κάνει μία "αυτοσχέδια" συνάρτηση, νομιμοποιείται να τη χρησιμοποιήσει για την επίλυση ενός προβλήματος.  Φαντάζεσαι στο περυσινό θέμα 4, ερώτημα 3 κάποιος μαθητής να χρησιμοποιούσε μία count(), να ... διευκρύνιζε ΤΙ κάνει αυτή η συνάρτηση ... να τη χρησιμοποιούσε ως πρώτο βήμα (υπολογισμός αριθμού σωστών απαντήσεων) και μετά να προχωρούσε κανονικά με τα επόμενα δύο(1. εύρεση ελάχιστου στοιχείου πίνακα και 2. μέτρηση πλήθους εμφανίσεων του ελάχιστου) ;;;  Θέλει λίγη φαντασία βέβαια, αλλα δεν πιστεύω να δυσκολευτούν να τη βρουν αν ξέρουν ότι μπορούν να χρησιμοποιήσουν υποθετικές συναρτήσεις αρκεί να διευκρυνίζουν ΤΙ κάνουν !!!

Παράθεση από: Vangelis στις 01 Μαΐου 2006, 11:06:35 ΜΜ
Τώρα σχετικά με το div και το mod  συμφωνώ με τον Φίλλιπο ( και ευχαριστώ) ότι εφόσον στη σελίδα 153 διευκρινίζεται ότι χρησιμοποιούνται μόνο για ακεραίους αριθμούς δεν μπορεί να χρησιμοποιηθεί με τον τρόπο που ανέφερα.  Αν δεν το έλεγε πουθενά θα υπήρχε πάντως πρόβλημα το ότι το έμαθαν στα Μαθηματικά της Β λυκείου δεν είναι επαρκής δικαιολογία.

Δεν καταλαβαίνω γιατί δεν είναι επαρκής δικαιολογία το γεγονός ότι το γνωρίζουν από προηγούμενη τάξη;  Ποιά είναι η παιδαγωγική αξία του να επανακαθορίζουμε κάτι το οποίο ήδη γνωρίζουν όταν πρόκειται για το ίδιο πράγμα;

Παράθεση από: Vangelis στις 01 Μαΐου 2006, 11:08:09 ΜΜ
Ερώτηση
Αν ο μαθητής γράφοντας σε ΓΛΩΣΣΑ  χρησιμοποιήσει την εντολή Εμφάνισε  αντί για την ΓΡΑΨΕ το θεωρείτε λάθος;

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

Αρκεί να μην ήταν στους στόχους του θέματος η αναγνώριση της ικανότητας του μαθητή να συντάξει σωστά σε ΓΛΩΣΣΑ!!

Ας το σκεφτούμε επομένως και ανάποδα!!

Αν σε δεδομένο θέμα δίνεται κομμάτι προγράμματος στο οποίο:
1) αντί του ΓΡΑΨΕ
χρησιμοποιείται το ΕΜΦΑΝΙΣΕ και

2) αντί του
ΑΝ <συνθήκη> ΤΟΤΕ
   Εντολές
ΤΕΛΟΣ_ΑΝ
χρησιμοποιείται το
ΑΝ <συνθήκη> ΤΟΤΕ εντολή
(χωρίς ΤΕΛΟΣ_ΑΝ)

και αντί του Α_Τ(Χ) χρησιμοποιείται το Α_Τ[Χ]

και το θέμα ζητάει να βρεθούν συντακτικά και γραμματικά λάθη με βάση τη γραμματική της ΓΛΩΣΣΑΣ (τυπικό και συντακτικό) ΤΙ θα έπρεπε να παρατηρήσει ο μαθητής και ΤΙ ο βαθμολογητής;  Γιατί νομίζω ότι είναι δόκιμο ένα τέτοιο ερώτημα όταν στο κεφάλαιο 6 διδάσκεται η έννοια της γραμματικής γλωσσών προγραμματισμού και στα κεφάλαι 7 - 10 η κωδικοποίηση σε μία "γλώσσα προγραμματισμού" (εντός ή εκτός εισαγωγικών)

nekis

Εγώ πάντως συνάδελφοι λέω ότι ο έλεγχος χ-Α_Μ(χ)=0 κάνει τη δουλειά

filippos

Σωστά,

όπως και ο (απλούστερος ίσως, ή λιγότερο μαθηματικο-στρεφής)

Α_Μ(Χ) = Χ

Θα μπορούσε να σκεφτεί κανείς (συντακτικά ορθή) υλοποίηση για τη συνάρτηση Α_Μ() σε προγραμματιστικό περιβάλλον;

Για την Α_Τ() όλοι έχουμε σίγουρα πολλές εξίσου σωστές εκδοχές.

Για την Α_Μ() όμως;