Έλεγχος ακεραίου ή πραγματικού

Ξεκίνησε από axi, 09 Ιαν 2010, 10:05:08 ΜΜ

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

axi

Το παρακάτω θέμα είναι από τις εξετάσεις του Εσπερινού το 2005

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

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

andreas_p

Αν x  ο αριθμός   τότε  :

! β)
       Αν  x - Α_Μ(x) = 0  τότε
            Εμφάνισε 'ΑΚΕΡΑΙΟΣ'
! γ)
           Αν  Α_Μ(x) MOD 2 = 0  τότε
                Εμφάνισε 'ΑΡΤΙΟΣ'
          αλλιώς
                Εμφάνισε 'ΠΕΡΙΤΤΟΣ'
         Τέλος_αν
     αλλιώς
           Εμφάνισε 'ΠΡΑΓΜΑΤΙΚΟΣ'
     Τέλος_αν

       

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

Δεν ξεφεύγεις τόσο εύκολα!

Το 32,0 των περσινών θεμάτων ήταν πραγματικός αριθμός! Δηλαδή άλλοτε εννοούμε "ακέραια τιμή" και άλλοτε "ακέραιο τύπο" ανάλογα τι μας συμφέρει;  :D

Vangelis

 
Παράθεση από: Νίκος Αδαμόπουλος στις 09 Ιαν 2010, 10:47:33 ΜΜ
Δεν ξεφεύγεις τόσο εύκολα!

Το 32,0 των περσινών θεμάτων ήταν πραγματικός αριθμός! Δηλαδή άλλοτε εννοούμε "ακέραια τιμή" και άλλοτε "ακέραιο τύπο" ανάλογα τι μας συμφέρει;  :D
Στους αλγορίθμους που αναφέρει το βιβλίο μας για "ακέραια τιμή" και για "ακέραιο τύπο"?
Το 32,0 προφανώς ήταν παράβλεψη ήθελαν να γράψουν 32.0, επιπλέον εκεί μιλούσαν για γλώσσα και όχι για αλγορίθμους.

axi

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




evry


  Ένα λεπτό, το θέμα είναι λίγο άστοχο, οκ συμφωνώ αλλά από που και ως που η χρήση της Α_Μ() θεωρείται λύση σε ΓΛΩΣΣΑ? :-\
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

toufeki

axiζουν πολλά καράτια αυτά που λες......

axi

Παράθεση από: evry στις 10 Ιαν 2010, 08:08:05 ΜΜ
  Ένα λεπτό, το θέμα είναι λίγο άστοχο, οκ συμφωνώ αλλά από που και ως που η χρήση της Α_Μ() θεωρείται λύση σε ΓΛΩΣΣΑ? :-\
οκ, απλά το έγραψα γιατί η χρήση των συναρτήσεων νομιμοποιείται στο 7ο κεφάλαιο.
Βέβαια έχουν μπει 2α θέματα με αλγόριθμους και συναρτήσεις οπότε δεν έχει τόσο σημασία.

andreas_p

Από πουθενά δεν προκύπει ότι ΔΕΝ μπορώ σ' έναν αλγόριθμο να χρησιμοποιήσω μια συνάρτηση π.χ. Α_Μ() ή Τ_Ρ(). Αν θυμάμαι καλά στο τετράδιο μαθητή,  Κεφ. 2 ,  χρησιμοποιεί ακόμη και τη συνάρτηση Ρίζα(), με την προϋπόθεση ότι την ορίζει για το πώς λειτουργεί.

axi

Παράθεση από: andreas_p στις 10 Ιαν 2010, 09:30:16 ΜΜ
Από πουθενά δεν προκύπει ότι ΔΕΝ μπορώ σ' έναν αλγόριθμο να χρησιμοποιήσω μια συνάρτηση π.χ. Α_Μ() ή Τ_Ρ(). Αν θυμάμαι καλά στο τετράδιο μαθητή,  Κεφ. 2 ,  χρησιμοποιεί ακόμη και τη συνάρτηση Ρίζα(), με την προϋπόθεση ότι την ορίζει για το πώς λειτουργεί.
Ναι στο τυπικό μέρος έχεις δίκιο, αλλά δε νομίζω να διδάσκει κανείς μαζί με τους αλγορίθμους και τις συναρτήσεις.
Απλά η έννοια της συνάρτησης ορίζεται αργότερα στο βιβλίο.
Το όλο θέμα δε το άνοιξα για το λόγο αυτό.

gpapargi

Το θέμα του 2005 ζητάει αν ο αριθμός που διαβάστηκε είναι ακέραιος. Εννοεί προφανώς ως προς την τιμή. Δε θα μπορούσε να εννοηθεί τίποτε άλλο.
Αν σε κάποιον δεν αρέσει η συνάρτηση ακεραίου μέρους σε ψευδογλώσσα μπορεί να χρησιμοποιήσει το συμβολισμό [] που χρησιμοποιεί το βιβλίο στον πολλαπλασιασμό αλλά ρωσικά.
Αλλά και τη συνάρτηση Α_Μ() μπορεί να χρησιμοποιήσει αφού σύμφωνα με το βιβλίο καθηγητή (σελίδα 72)

«Μπορούμε επίσης να δεχθούμε και τις συνήθεις μαθηματικές τυπογραφικές
συμβάσεις
για την αποτύπωση τύπων.Για παράδειγμα είναι αποδεκτό να γραφεί
είτε a^2 είτε a2, όπως επίσης a(i,j) ή a[i,j] ή aij καθώς και το σύμβολο της τετραγωνικής
ρίζας.
Αποδεκτός είναι επίσης και ο περιφραστικός τρόπος για ορισμένες ενέργειες,
όπως για παράδειγμα "Θέσε Α=0" ή "Αν Χ είναι άρτιος τότε ...". Προφανώς αυτές
οι "ελευθερίες" παύουν στον προγραμματισμό είτε στη ΓΛΩΣΣΑ είτε σε οποιαδήποτε
γλώσσα προγραμματισμού.»

Στο θέμα του 2009 το ζητούμενο είναι ξεκάθαρα ο τύπος δεδομένων. Το μόνο λαθάκι που υπάρχει είναι ότι θα έπρεπε η υποδιαστολή να είναι με τελεία αντί για κόμμα. Ωστόσο δε σηκώνει παρερμηνεία. Είναι ένα μικρό λαθάκι εκ' παραδρομής.

ikariofil

Για τον έλεγχο αν το x είναι ακέραιος θα μπορούσαμε να γράψουμε:

Δ <- x
Αρχή_επανάληψης
        x <- x - 1
μέχρις_ότου x < 1
Αν x = 0 τότε
        Εμφάνισε "ακέραιος"
        Αν Δ mod 2 = 0 τότε
        -------------------------
       Τέλος_αν
Τέλος_αν

axi

Παράθεση από: gpapargi στις 11 Ιαν 2010, 09:11:49 ΠΜ
«Μπορούμε επίσης να δεχθούμε και τις συνήθεις μαθηματικές τυπογραφικές
συμβάσεις
για την αποτύπωση τύπων.Για παράδειγμα είναι αποδεκτό να γραφεί
είτε a^2 είτε a2, όπως επίσης a(i,j) ή a[i,j] ή aij καθώς και το σύμβολο της τετραγωνικής
ρίζας.
Αποδεκτός είναι επίσης και ο περιφραστικός τρόπος για ορισμένες ενέργειες,
όπως για παράδειγμα "Θέσε Α=0" ή "Αν Χ είναι άρτιος τότε ...". Προφανώς αυτές
οι "ελευθερίες" παύουν στον προγραμματισμό είτε στη ΓΛΩΣΣΑ είτε σε οποιαδήποτε
γλώσσα προγραμματισμού.»

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

Καρκαμάνης Γεώργιος

Παράθεση από: axi στις 10 Ιαν 2010, 11:48:42 ΜΜ
Ναι στο τυπικό μέρος έχεις δίκιο, αλλά δε νομίζω να διδάσκει κανείς μαζί με τους αλγορίθμους και τις συναρτήσεις.
Απλά η έννοια της συνάρτησης ορίζεται αργότερα στο βιβλίο.
Το όλο θέμα δε το άνοιξα για το λόγο αυτό.

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

Νομίζω το θέμα χρήση ή μη των συναρτήσεων στους αλγορίθμους έχει  αναλυθεί και συζητηθεί παλαιότερα

gpapargi

Παράθεση από: axi στις 11 Ιαν 2010, 12:59:04 ΜΜ
Δε νομίζω μια συνάρτηση να θεωρείται τυποποιημένη μαθηματική σύμβαση.
Για ευρέως διαδεδομένα σύμβολα γίνεται λόγος από το χώρο των μαθηματικών,
κλάσματα, ρίζες, δυνάμεις, δείκτες κ.τλ.
Αν είναι έτσι να πετάμε σε κάθε αλγόριθμο και μια τυποποιημένη
συνάρτηση που θα μας λύνει το πρόβλημα.
Ουσιαστικά οι μόνες συναρτήσεις που μπορεί να χρησιμοποιήσει ένας μαθητής
είναι αυτές του 7ου κεφαλαίου εκτός κι αν ρητά αναφέρεται κάτι άλλο.

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

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