ελεγχος ακεραίου....

Ξεκίνησε από notaki, 06 Δεκ 2012, 01:48:09 ΠΜ

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

notaki

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


Αλγόριθμος α

Διάβασε m
Όσο m ≠ 0 επανάλαβε
  Αν m = Α_Μ(m) τότε
    Γράψε "akeraios"
  αλλιώς
    Γράψε "pragmatikos"
  Τέλος_αν
  Διάβασε m
Τέλος_επανάληψης
Γράψε "----- telos -----"
Τέλος α 

Στα παιδια φυσικά διδάσκω πως και οτιδήποτε έχει υποδιαστολή θεωρείται πραγματικος... Τελικά το 5.0 τι θεωρείται και πως μπορω να το ελεγξω μέσω αλγορίθμου ???

yiannis

Νομίζω ότι είναι από τα "σκοτεινά" σημεία του μαθήματος, και ίσως και έξω από τους στόχους του. Πιθανώς και γι' αυτό στα αντίστοιχα περσινά θέματα πιάστηκαν όλα σωστά! :)

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

Σπύρος Δουκάκης

Αν και έχει ξανασυζητηθεί, θα αναφέρω την ακόλουθη παράγραφο από το άρθρο:

Δουκάκης, Σ. (2011). Πανελλαδικές Εξετάσεις στο Μάθημα Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον, Πρακτικά 5ου Πανελληνίου Συνεδρίου Καθηγητών Πληροφορικής Δευτεροβάθμιας Εκπαίδευσης με θέμα: «Η Πληροφορική στην Πρωτοβάθμια και Δευτεροβάθμια Εκπαίδευση – Ο ρόλος του καθηγητή Πληροφορικής στο νέο σχολείο», 1-3 Απριλίου 2011, Ιωάννινα, σελ. 190-197 (http://goo.gl/vZnY5).

"Η ψευδογλώσσα δεν κάνει διάκριση μεταξύ ακέραιων και πραγματικών. Αντίθετα, η χρήση της ΓΛΩΣΣΑΣ περιορίζει την ανάπτυξη του αλγόριθμου, αφού ο μαθητής/τρια θα πρέπει να ασχοληθεί εκτός των άλλων με τα χαρακτηριστικά και τις δυνατότητες της ΓΛΩΣΣΑΣ. Σε αλγοριθμικό επίπεδο, η έκφραση (Τ_Ρ(400) - 2) έχει την τιμή 18, ενώ σε επίπεδο ΓΛΩΣΣΑΣ, η τιμή της έκφρασης (Τ_Ρ(400) - 2) έχει την τιμή 18.0 (η συνάρτηση Τ_Ρ επιστρέφει πραγματική τιμή). Έτσι, σε επίπεδο ΓΛΩΣΣΑΣ είναι αμφισβητούμενη η εντολή: y ← (Τ_Ρ(400) - 2) div 10, με πιθανότερο αποτέλεσμα να μην είναι δυνατή η πράξη div, αφού επιχειρείται να εκτελεστεί μεταξύ πραγματικού και ακεραίου."

gpapargi

Παράθεση από: notaki στις 06 Δεκ 2012, 01:48:09 ΠΜ
Καλησπέρα συνάδελφοι,
εφτιαξα ενα προχειρο προγραμματακι για να διαπιστώσω αν το 5.0 θεωρειται πραγματικος ή ακεραιος. Ο διερμηνευτής το αντιμετωπιζει ως ακεραιος και προβληματίστηκα. 


Αλγόριθμος α

Διάβασε m
Όσο m ≠ 0 επανάλαβε
  Αν m = Α_Μ(m) τότε
    Γράψε "akeraios"
  αλλιώς
    Γράψε "pragmatikos"
  Τέλος_αν
  Διάβασε m
Τέλος_επανάληψης
Γράψε "----- telos -----"
Τέλος α 

Στα παιδια φυσικά διδάσκω πως και οτιδήποτε έχει υποδιαστολή θεωρείται πραγματικος... Τελικά το 5.0 τι θεωρείται και πως μπορω να το ελεγξω μέσω αλγορίθμου ???


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

Πάντως η ψευδογλώσσα έχει αριθμητικό τύπο και δεν κάνει διαχωρισμό μεταξύ ακεραίων και πραγματικών. Δηλαδή δεν ασχολείται με αποθηκευτικούς χώρους. Βέβαια όταν ασχολείσαι με div και mod μοιραία μπλέκεις καθώς τα div και mod ορίζονται μόνο στους ακεραίους

notaki

ΣΥΝΑΔΕΛΦΟΙ ΝΟΜΙΖΩ ΜΕ ΚΑΛΥΨΑΤΕ.

ΕΥΧΑΡΙΣΤΩ ΠΟΛΥ!!