Αποστολέας Θέμα: ερώτηση για τα div/mod  (Αναγνώστηκε 7739 φορές)

Πανάγος94

  • Βετεράνος
  • ****
  • Μηνύματα: 65
  • what doesn't kill you only makes you pissed off..
ερώτηση για τα div/mod
« στις: 31 Μαρ 2012, 08:39:57 μμ »
επιτρέπεται η έκφραση: α <- γ mod β ή α <- γ div β
με β,γ να είναι πραγματικοί αριθμοί???? στον διερμηνευτή είδα οτι δεν το δέχεται και προβληματίστηκα...

busy_bee

  • Νέος
  • *
  • Μηνύματα: 5
Απ: ερώτηση για τα div/mod
« Απάντηση #1 στις: 31 Μαρ 2012, 09:09:55 μμ »
Τα div και mod ορίζονται ως το  πηλίκο και το υπόλοιπο  μόνο στο πεδίο των ακεραίων αριθμών. Δες την σελίδα 153 στο βιβλίο του μαθητή. Δεν μπορούν οι τελεστέοι να είναι πραγματικοί αριθμοί.
Με τους πραγματικούς αριθμούς χρησιμοποιείται η πραγματική διαίρεση " / ".

Πανάγος94

  • Βετεράνος
  • ****
  • Μηνύματα: 65
  • what doesn't kill you only makes you pissed off..
Απ: ερώτηση για τα div/mod
« Απάντηση #2 στις: 01 Απρ 2012, 01:28:12 μμ »
τότε όμως στα θέματα του ΟΕΦΕ 2011 Α5 την ερώτηση " Στην εντολή α ← β mod γ η μεταβλητή α μπορεί να είναι πραγματικού τύπου" γιατί την θεωρούν σωστή????

noname

  • Ομάδα διαγωνισμάτων 2013
  • *
  • Μηνύματα: 193
Απ: ερώτηση για τα div/mod
« Απάντηση #3 στις: 01 Απρ 2012, 08:02:01 μμ »
Παρατήρησε ότι μιλάει για το α και όχι για τα β και γ. Στο διερμηνευτή της γλώσσας δέχεται το α να είναι πραγματικός και τα β, γ ακέραιοι. Σε μια πραγματική μεταβλητή μπορείς να αποθηκεύσεις ακέραιες τιμές αλλά όχι το αντίστροφο.


petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2319
Απ: ερώτηση για τα div/mod
« Απάντηση #4 στις: 01 Απρ 2012, 08:17:59 μμ »
Η μεταβλητή που είναι αριστερά του βέλους και η τιμή που της αποδίδεται δεν πρέπει να είναι ίδιου τύπου;
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

maria.k.

  • Θαμώνας
  • ***
  • Μηνύματα: 34
Απ: ερώτηση για τα div/mod
« Απάντηση #5 στις: 02 Απρ 2012, 10:29:04 πμ »
Παράθεση
Η μεταβλητή που είναι αριστερά του βέλους και η τιμή που της αποδίδεται δεν πρέπει να είναι ίδιου τύπου;

Συμφωνώ απόλυτα... Γιατί με την λογική που θεωρείται το α πραγματικός, θα μπορούσαμε στο πρόγραμμα να δηλώνουμε μόνο αριθμητικές πραγματικές μεταβλητές....



P.Tsiotakis

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3309
  • agent romanoff you miss me?
    • P.Tsiotakis
Απ: ερώτηση για τα div/mod
« Απάντηση #6 στις: 02 Απρ 2012, 06:13:03 μμ »
προσωπικά θεωρώ οτι σε μια πραγματική μεταβλητή μπορεί να εκχωρηθεί ακέραια έκφραση,
και με ένα πιο απλό παράδειγμα από αυτό που τέθηκε νωρίτερα :

α <- 5 (όπου α πραγματική μεταβλητή)

βέβαια δε μπορούμε να δηλώνουμε πραγματικές μεταβλητές όλες τις αριθμητικές, διότι πχ ο δείκτης ενός πίνακα πρέπει απαραίτητα να είναι ακέραια έκφραση/μεταβλητή/τιμή!!!
όμοια οι μεταβλητές που εμπλέκονται σε μια πράξη div/mod

Laertis

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 1525
  • Sky's the limit
    • ΑΣΚΗΣΕΙΣ-ΘΕΜΑΤΑ ΑΕΠΠ
Απ: ερώτηση για τα div/mod
« Απάντηση #7 στις: 02 Απρ 2012, 08:01:50 μμ »
Βιβλίο μαθητή σελ. 155 στο σχόλιο (προσοχή) :
Σε μια εντολή εκχώρησης η μεταβλητή και η έκφραση πρέπει να είναι ίδιου τύπου

Η εξέταση γίνεται με βάση το βιβλίο οπότε δεν τίθεται ζήτημα.
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

sstergou

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 985
  • Program or be Programmed
    • pseudoglossa.gr
Απ: ερώτηση για τα div/mod
« Απάντηση #8 στις: 02 Απρ 2012, 08:19:30 μμ »
δηλαδή αυτό που λέει ο Παναγιώτης είναι λάθος;
π.χ.

Κώδικας: ΓΛΩΣΣΑ
  1. ΠΡΟΓΡΑΜΜΑ π1
  2. ΜΕΤΑΒΛΗΤΕΣ
  3.     ΠΡΑΓΜΑΤΙΚΕΣ: α
  4.     ΑΚΕΡΑΙΕΣ: β,γ
  5. ΑΡΧΗ
  6.     α <- 5 ! λάθος;
  7.     α <- 5.0 ! σωστό;
  8.     α <- β + γ ! λάθος;
  9.     α <- β + γ + 0.0 ! σωστό;
  10.  

και τα δύο είναι σωστά, δεν γίνεται διαφορετικά!!
Στάθης Στέργου - sstergouATgmailDOTcom - http://www.pseudoglossa.gr

Laertis

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 1525
  • Sky's the limit
    • ΑΣΚΗΣΕΙΣ-ΘΕΜΑΤΑ ΑΕΠΠ
Απ: ερώτηση για τα div/mod
« Απάντηση #9 στις: 02 Απρ 2012, 10:06:07 μμ »
Δεν πρόκειται να βγει άκρη έτσι ...
Άρα καταλήγουμε στο να γίνεται χρήση των ακεραίων μεταβλητών μόνο σε δείκτες πινάκων και σε πράξεις div και mod . Όλες οι άλλες πραγματικές και τελειώνουμε. Σωστά ;

Η σπατάλη μνήμης πάει περίπατο ή δεν το θεωρούμε χρήσιμο αφού είναι σωστή η δήλωση ;
Αφού το δεχόμαστε σωστό ας τα απλοποιήσουμε όλα.
Η ίδια λογική με τη βίαιη διακοπή της Για .... Και αυτή δουλεύει γιατί να μη το πάρουμε σωστό ;

Ο ορισμός της υπεραπλούστευσης για μένα .... Λυπάμαι αλλά διαφωνώ με τη λογική προσέγγισης.
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3534
  • to Iterate is human to Recurse divine
Απ: ερώτηση για τα div/mod
« Απάντηση #10 στις: 02 Απρ 2012, 10:26:59 μμ »
Όποιος έχει την άποψη ότι δεν μπορεί να εκχωρηθεί σε πραγματική μεταβλητή ακέραια τιμή θα πρέπει να συμφωνήσει ότι οι παρακάτω παραστάσεις είναι λάθος

α) 1 + 2.0 + 3 + 6/2   
β) ΦΠΑ <- 0.18 * 100

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

ΥΓ. Στάθη μόλις τώρα είδα το μήνυμά σου. Μου φαίνεται το ίδιο λέμε
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Laertis

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 1525
  • Sky's the limit
    • ΑΣΚΗΣΕΙΣ-ΘΕΜΑΤΑ ΑΕΠΠ
Απ: ερώτηση για τα div/mod
« Απάντηση #11 στις: 02 Απρ 2012, 10:56:58 μμ »
Ωραία ... και που καταλήγουμε  με αυτή την ωραία συζήτηση; Σε μια ακόμη διαπίστωση ..
Σε αυτό που όλοι γνωρίζουμε απο τα μαθηματικά.
Ποιός διαφώνησε με αυτό που λέει ο Παναγιώτης και ο Στάθης ;
Ποιος διαφωνεί για το αν μια συνάρτηση μπορεί να εισάγει δεδομένα ;
Ποιος βαθμολογεί λάθος τη διακοπή της Για ; Γιατί ;
Το 32,0 είναι πραγματική ή ακέραια ;
Το να δηλώσεις πραγματική μια μεταβλητή που πέρνει ακέραιες τιμές γίνεται, αλλά ποιος ο λόγος ; Έτσι , γιατί γίνεται ...
Μπορώ να συνεχίσω με πολλά που γίνονται αλλά καλό είναι να μη γίνονται. Μόνο κουβέντα να γίνεται ...  ;)
Φτου κι απ' την αρχή ..
« Τελευταία τροποποίηση: 02 Απρ 2012, 11:10:21 μμ από Laertis »
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

P.Tsiotakis

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3309
  • agent romanoff you miss me?
    • P.Tsiotakis
Απ: ερώτηση για τα div/mod
« Απάντηση #12 στις: 02 Απρ 2012, 11:27:26 μμ »
εγώ είπα το αναποδο Γιώργο
απλούστευση είναι η απόδοση όλων των αριθμητικών μεταβλητών ως πραγματικές

Laertis

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 1525
  • Sky's the limit
    • ΑΣΚΗΣΕΙΣ-ΘΕΜΑΤΑ ΑΕΠΠ
Απ: ερώτηση για τα div/mod
« Απάντηση #13 στις: 03 Απρ 2012, 08:27:20 πμ »
Kι εγώ αυτό ανέφερα Παναγιώτη, θεωρώ (υπερ)απλούστευση να αποδίδονται όλες οι τιμές ως πραγματικές.
Αλλά απλά δεν το θεωρώ σωστή προσέγγιση εφόσον υπάρχει ανάγκη  διαφοροποίησης στον προγραμματισμό ενώ στα μαθηματικά δεν υπάρχει.
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2319
Απ: ερώτηση για τα div/mod
« Απάντηση #14 στις: 03 Απρ 2012, 12:18:33 μμ »
1. ΑΚΕΡΑΙΕΣ: Α,Β

Γ <-- Α + Β

Το Γ δηλώνεται ως ακέραιο γιατί μόνο τέτοιο μπορεί να είναι (εκτός αν με άλλη εντολή μπορεί να αλλάξει)

2. ΑΚΕΡΑΙΕΣ: Α
ΠΡΑΓΜΑΤΙΚΕΣ: Β

Γ <-- Α + Β

Το Γ δηλώνεται ως πραγματικό λόγω του Β

3. ΠΡΑΓΜΑΤΙΚΕΣ: Α,Β

Γ <-- Α + Β

Αυτονόητα το Γ είναι πραγματικό

Τα παραδείγματα που φέρνετε μιλάνε για πράξεις πραγματικών και ακεραίων μεταξύ τους


Γ <-- Α mod Β
Εδώ μιλάμε για καραμπινάτη πράξη ακεραίων μεταξύ τους, οπότε προφανώς και η μεταβλητή Γ θα δηλωθεί ως ακέραια

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

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3534
  • to Iterate is human to Recurse divine
Απ: ερώτηση για τα div/mod
« Απάντηση #15 στις: 03 Απρ 2012, 12:35:36 μμ »
ένα λεπτάκι
δηλαδή η παρακάτω έκφραση είναι σωστή ή λάθος?

x <- α div 5 + 0.1

δηλαδή οι πράξεις μεταξύ ακεραίων και πραγματικών απαγορεύονται ?
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

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

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 831
  • Έτερος εξ ετέρου σοφός, το τε πάλαι το τε νυν
    • http://sdoukakis.wordpress.com/
Απ: ερώτηση για τα div/mod
« Απάντηση #16 στις: 03 Απρ 2012, 02:56:40 μμ »
όπως επίσης τι γίνεται με αυτές τις εκφράσεις; Είναι λάθος ή σωστές;

Κώδικας: [Επιλογή]
y ← 9 mod 10 / Τ_Ρ(81) - 1

y ← Α_Τ(2 - 12 div 2 / 2 / 3)

y ← Τ_Ρ(400) - 2) div 10

y ← Α_Τ(4 - 8) div 2 mod (6/3)

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3534
  • to Iterate is human to Recurse divine
Απ: ερώτηση για τα div/mod
« Απάντηση #17 στις: 03 Απρ 2012, 03:54:30 μμ »
νομίζω ότι η 3η και 4η είναι λάθος ούτως ή άλλως
στην 3η εκτός της παρένθεσης που λείπει έχει πραγματικό με div
και στην τελευταία πάλι έχει πραγματικό με mod.

Βασικά δεν συζητάμε αν στη θέση ακεραίου μπορείς να βάλεις πραγματικό. Αυτό εννοείται πως δε γίνεται για προφανείς λόγους.
Λέμε για το αντίθετο όπου δεν υπάρχει απώλεια πληροφορίας.

όπως επίσης τι γίνεται με αυτές τις εκφράσεις; Είναι λάθος ή σωστές;

Κώδικας: [Επιλογή]
y ← 9 mod 10 / Τ_Ρ(81) - 1

y ← Α_Τ(2 - 12 div 2 / 2 / 3)

y ← Τ_Ρ(400) - 2) div 10

y ← Α_Τ(4 - 8) div 2 mod (6/3)
« Τελευταία τροποποίηση: 03 Απρ 2012, 04:09:05 μμ από evry »
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

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

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 831
  • Έτερος εξ ετέρου σοφός, το τε πάλαι το τε νυν
    • http://sdoukakis.wordpress.com/
Απ: ερώτηση για τα div/mod
« Απάντηση #18 στις: 04 Απρ 2012, 12:37:49 πμ »
Ας ξαναδούμε λίγο πιο προσεκτικά τις δύο εκφράσεις:

Κώδικας: [Επιλογή]
y ← (Τ_Ρ(400) - 2) div 10

y ← Α_Τ(4 - 8) div 2 mod (6/3)

από που προκύπτει ότι είναι λάθος σε επίπεδο αλγοριθμικής και μαθηματικών;

Σε πρόσφατη εργασία που δημοσίευσα σε συνέδριο της ΠΕΚΑΠ (http://sdoukakis.files.wordpress.com/2011/04/sd_pekap2011.pdf) υποστήριξα ότι:

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

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

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3534
  • to Iterate is human to Recurse divine
Απ: ερώτηση για τα div/mod
« Απάντηση #19 στις: 04 Απρ 2012, 12:42:46 πμ »
Δηλαδή μπορούμε να χρησιμοποιούμε πραγματικούς αριθμούς με τους τελεστές div και mod?

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

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

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 831
  • Έτερος εξ ετέρου σοφός, το τε πάλαι το τε νυν
    • http://sdoukakis.wordpress.com/
Απ: ερώτηση για τα div/mod
« Απάντηση #20 στις: 04 Απρ 2012, 12:49:27 πμ »
ok.

Η πράξη 6/3 πόσο κάνει;

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3534
  • to Iterate is human to Recurse divine
Απ: ερώτηση για τα div/mod
« Απάντηση #21 στις: 04 Απρ 2012, 12:52:20 πμ »
2.0

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

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

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2824
  • Πύργος Ηλείας
Απ: ερώτηση για τα div/mod
« Απάντηση #22 στις: 04 Απρ 2012, 01:15:13 πμ »
Χωρίς να είμαι σίγουρος, έχω την εντύπωση ότι στη νέα έκδοση του βιβλίου στη σελ. 46 αναφέρει και τους div/mod ...

Αντίθετα, στον αλγόριθμο αλά ρωσικά, στην παλιότερη έκδοση του βιβλίου δεν είχε div/mod... αλλά το ακέραιο μέρος:  [ ]

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3534
  • to Iterate is human to Recurse divine
Απ: ερώτηση για τα div/mod
« Απάντηση #23 στις: 04 Απρ 2012, 08:13:40 πμ »
Νίκο έχεις απόλυτο δίκιο, έχω την παλιά έκδοση. Λογικά το έβαλαν εκεί όταν άλλαξαν και τον πολλαπλασιασμό αλά ρωσικά. Μάλλον έχει σχέση.
Ωστόσο στην παλιά έκδοση του βιβλίου στον αλά ρωσικά το είχε το mod. Απλά στην θέση του div είχε το ακέραιο μέρος. Δεν ξέρω γιατί αλλά το mod το είχε σίγουρα.
Πάντως και πάλι αυτό δεν αλλάζει τίποτα. Τα div/mod από μόνα τους κουβαλάνε τον περιορισμό των ακέραιων τελεστέων αφού αναφέρονται σε ευκλείδεια διαίρεση.

Χωρίς να είμαι σίγουρος, έχω την εντύπωση ότι στη νέα έκδοση του βιβλίου στη σελ. 46 αναφέρει και τους div/mod ...

Αντίθετα, στον αλγόριθμο αλά ρωσικά, στην παλιότερη έκδοση του βιβλίου δεν είχε div/mod... αλλά το ακέραιο μέρος:  [ ]
« Τελευταία τροποποίηση: 04 Απρ 2012, 08:52:31 πμ από evry »
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

maria.k.

  • Θαμώνας
  • ***
  • Μηνύματα: 34
Απ: ερώτηση για τα div/mod
« Απάντηση #24 στις: 04 Απρ 2012, 10:36:03 πμ »
Παράθεση
ένα λεπτάκι
δηλαδή η παρακάτω έκφραση είναι σωστή ή λάθος?

x <- α div 5 + 0.1

δηλαδή οι πράξεις μεταξύ ακεραίων και πραγματικών απαγορεύονται ?

Εννοείται πως δεν απαγορεύονται, αφού το αποτέλεσμα ολόκληρης της έκφρασης που υπάρχει στο αριστερό μέλος είναι πραγματικός αριθμός (με δεδομένο ότι το α είναι ακεραιος), άρα και η μεταβλητή χ είναι πραγματική.
Το θέμα είναι το εξής:
Η εντολή α <- 1 με το α δηλωμένο ως πραγματικό είναι σωστή, ενώ
η εντολή α<- 1.0 με το α δηλωμένο ως ακέραιο είναι λανθασμένη.
Δηλαδή η γλώσσα μπορεί να μετατρέψει έναν ακέραιο σε πραγματικό ενώ το αντίθετο όχι γιατι χάνει δεδομένα.
Όλο αυτό όμως πώς συνάδει με το "σε μια εντολή εκχώρησης η έκφραση και η μεταβλητή πρέπει να είναι του ίδου τύπου"?
Πως θα το εξηγήσουμε στους μαθητές?
Δε συμπαθούν που δε συμπαθούν τη δήλωση μεταβλητών, μετά θα τις δηλώνουν όλες πραγματικές εκτός αν κάνουν πράξεις με το mod και το div...
 

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

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 831
  • Έτερος εξ ετέρου σοφός, το τε πάλαι το τε νυν
    • http://sdoukakis.wordpress.com/
Απ: ερώτηση για τα div/mod
« Απάντηση #25 στις: 04 Απρ 2012, 10:55:33 πμ »
Η έκφραση:
Κώδικας: [Επιλογή]
y ← Α_Τ(4 - 8) div 2 mod (6/3)
περιέχει την πράξη 6/3. Το αποτέλεσμα της πράξης είναι 2 ή 2,0 ή 2,00 ή 2,000 και ας βάλει ο καθένας όσα μηδενικά ψηφία επιθυμεί. Αυτά στο μυαλό μας.

Στα μαθηματικά η διαίρεση δύο ακεραίων π.χ. η διαίρεση 6/3 έχει πηλίκο 2 και υπόλοιπο μηδέν. Είναι δλδ τέλεια διαίρεση.

Συνεπώς, για τα μαθηματικά (βλέπε http://digitalschool.minedu.gov.gr/modules/ebook/show.php/DSGL-B100/133/971,3492/ ή (βλέπε http://en.wikipedia.org/wiki/Division_%28mathematics%29) η διαίρεση 6/2 έχει πηλίκο 2.

Άρα, αφού είναι ακέραιο το πηλίκο της διαίρεσης, μπορεί να γίνει στη συνέχεια η πράξη με mod και div.

Συνεπώς η έκφραση
Κώδικας: [Επιλογή]
y ← Α_Τ(4 - 8) div 2 mod (6/3)σε επίπεδο αλγοριθμικής έχει αποτέλεσμα μηδέν (0).

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

Σε επίπεδο ΓΛΩΣΣΑΣ είναι αμφισβητούμενη αν είναι σωστή ή έκφραση. Ωστόσο δεν με απασχολεί, γιατί μου δίνει την δυνατότητα να αναφερθώ στους περιορισμούς που έχουν οι ίδιες οι γλώσσες προγραμματισμού (πίνακες, πράξεις με div και mod, παραγοντικό κ.α. περισσότερα στο άρθρο http://sdoukakis.files.wordpress.com/2011/04/sd_pekap2011.pdf).

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

2.0

αλλά το πρόβλημα δεν είναι εκεί. Το πρόβλημα είναι στους τελεστές div,mod. Στη σελίδα 46 του βιβλίου που αναφέρει όλες τις εντολές της ψευδογλώσσας
στους τελεστές δεν έχει τα div/mod. γιατί άραγε? Φυσικά τα χρησιμοποιεί στον πολλαπλασιασμό αλά ρωσικά.
Τα div/mod είναι ουσιαστικά τελεστές της ΓΛΩΣΣΑΣ και όχι της ψευδογλώσσας. (με βάση το βιβλίο πάντα)
Αν θέλεις να τα χρησιμοποιήσεις στην ψευδογλώσσα θα πρέπει να δεχτείς και τους περιορισμούς που φέρνουν μαζί τους, ότι δηλαδή οι τελεστέοι πρέπει να είναι ακέραιοι

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

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1133
Απ: ερώτηση για τα div/mod
« Απάντηση #26 στις: 04 Απρ 2012, 11:21:24 πμ »
Διαβάζοντας από την αρχή όλο το θέμα, πραγματικά έχω μπερδευτεί:
Ποίο είναι το πρόβλημα που τίθεται;

α) αν μπορούμε να πραγματοποιήσουμε πράξεις μεταξύ ακεραίων και πραγματικών αριθμών;
β) αν σε μία πραγματική μεταβλητή μπορούμε να τοποθετήσουμε το αποτέλεσμα μιας πράξης που παράγει ακέραιο αποτέλεσμα;

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

 Η μεταβλητή και η έκφραση πρέπει να είναι ιδίου τύπου στην εντολή εκχωρησης.




alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5749
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Απ: ερώτηση για τα div/mod
« Απάντηση #27 στις: 04 Απρ 2012, 11:22:03 πμ »
Συνεπώς, για τα μαθηματικά (βλέπε http://digitalschool.minedu.gov.gr/modules/ebook/show.php/DSGL-B100/133/971,3492/ ή (βλέπε http://en.wikipedia.org/wiki/Division_%28mathematics%29) η διαίρεση 6/3 έχει πηλίκο 2.

Άρα, αφού είναι ακέραιο το πηλίκο της διαίρεσης, μπορεί να γίνει στη συνέχεια η πράξη με mod και div.

Το δεύτερο link που παράθεσες δεν συμφωνεί με αυτά που λες.
Αναφέρει ότι η διαίρεση μεταξύ ακεραίων μπορεί να οριστεί με τέσσερις τρόπους.
Εσύ ουσιαστικά λες ότι η ψευδογλώσσα υλοποιεί την περίπτωση 1 (partial function), ενώ ο Διερμηνευτής υλοποιεί την περίπτωση 2 (decimal fraction), η οποία "is the approach usually taken in mathematics."

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3534
  • to Iterate is human to Recurse divine
Απ: ερώτηση για τα div/mod
« Απάντηση #28 στις: 04 Απρ 2012, 11:28:36 πμ »
Η έκφραση:
Κώδικας: [Επιλογή]
y ← Α_Τ(4 - 8) div 2 mod (6/3)
περιέχει την πράξη 6/3. Το αποτέλεσμα της πράξης είναι 2 ή 2,0 ή 2,00 ή 2,000 και ας βάλει ο καθένας όσα μηδενικά ψηφία επιθυμεί.
Το αποτέλεσμα της πράξης στην ΓΛΩΣΣΑ είναι 2.0 και αυτό γίνεται γιατί πρέπει σε compile-time να αποφασίσει αυτή η έκφραση τι τύπου είναι.
Σύμφωνα με το δικό σου σκεπτικό η έκφραση α/β είναι ακέραια αν η διαίρεση είναι τέλεια και πραγματική αν δεν είναι.

Δηλαδή σύμφωνα με το δικό σου σκεπτικό οι παρακάτω εντολές

Διάβασε α,β
υ <- α/β
Εμφάνισε υ

για α=6 και β=3 θα εμφανίσουν 2 (ακέραια τιμή)
ενώ για α=3 και β =2 θα εμφανίσουν 1.5 (πραγματική)

Αλήθεια τι τύπου είναι η μεταβλητή, ακέραια ή πραγματική? ή μήπως αλλάζει τύπο ανάλογα με την εκτέλεση?
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3534
  • to Iterate is human to Recurse divine
Απ: ερώτηση για τα div/mod
« Απάντηση #29 στις: 04 Απρ 2012, 11:35:11 πμ »
Αυτό που λέω εγώ είναι ότι το α) είναι αλληλένδετο με το β)
Δηλαδή δε μπορείς να λες ότι δεν επιτρέπεται η εκχώρηση ακέραιας σε πραγματική αλλά από την άλλη να κάνεις πράξεις μεταξύ ακέραιων και πραγματικών. Από τη στιγμή που επιτρέπονται τέτοιες πράξεις αυτό σημαίνει ότι από πίσω είναι κάποιος μηχανισμός
casting από τον έναν τύπο στον άλλο. Αυτός ο μηχανισμός καλείται και στην εκχώρηση μεταξύ διαφορετικών τύπων.
Αν δεχθούμε ότι δεν γίνεται το ένα τότε δεν μπορεί να γίνεται και το άλλο.

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

δεν ξέρω αν συμφωνείς με το παραπάνω σκεπτικό ή διαφωνείς

Διαβάζοντας από την αρχή όλο το θέμα, πραγματικά έχω μπερδευτεί:
Ποίο είναι το πρόβλημα που τίθεται;
α) αν μπορούμε να πραγματοποιήσουμε πράξεις μεταξύ ακεραίων και πραγματικών αριθμών;
β) αν σε μία πραγματική μεταβλητή μπορούμε να τοποθετήσουμε το αποτέλεσμα μιας πράξης που παράγει ακέραιο αποτέλεσμα;
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

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

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 831
  • Έτερος εξ ετέρου σοφός, το τε πάλαι το τε νυν
    • http://sdoukakis.wordpress.com/
Απ: ερώτηση για τα div/mod
« Απάντηση #30 στις: 04 Απρ 2012, 11:40:07 πμ »
Συνάδελφοι,

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

Θα επικεντρωθώ στο ερώτημα της διαίρεσης ακεραίων όταν το αποτέλεσμα είναι ακέραιο, το οποίο προσδιορίζεται σαφώς από τα μαθηματικά του Λυκείου αλλά και από την wikipedia στο σημείο που αναφέρθηκε ο Άλκης με ειδική μνεία. Πόσο κάνει 6/3; Αυτό είναι κομβικό σημείο κατά την γνώμη μου.

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

maria.k.

  • Θαμώνας
  • ***
  • Μηνύματα: 34
Απ: ερώτηση για τα div/mod
« Απάντηση #31 στις: 04 Απρ 2012, 12:58:09 μμ »
Παράθεση
Υπενθυμίζω ότι στην ψευδογλώσσα δεν έχω δηλώσεις μεταβλητών και διαχωρισμό ακεραίων και πραγματικών, αφού δεν έχουμε θέμα μνήμης μιας και δεν υπάρχει υπολογιστής...

Το πρόβλημα όμως αυτό, το συναντάμε και στη ΓΛΩΣΣΑ που ως "γλώσσα προγραμματισμού" περιλαμβάνει δηλώσεις μεταβλητών...

P.Tsiotakis

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3309
  • agent romanoff you miss me?
    • P.Tsiotakis
Απ: ερώτηση για τα div/mod
« Απάντηση #32 στις: 04 Απρ 2012, 01:03:25 μμ »
κατά τη γνώμη μου το 6/3 είναι το ίδιο με το α/β
δηλαδή κοιτώ το σύμβολο της διαίρεσης και αγνοώ τους εμπλεκόμενους στην πράξη
και βέβαια είναι πραγματική η έκφραση

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3534
  • to Iterate is human to Recurse divine
Απ: ερώτηση για τα div/mod
« Απάντηση #33 στις: 04 Απρ 2012, 01:17:38 μμ »
οι αλγόριθμοι που γράφουμε σε ψευδογλώσσα δεν έχουν σαν στόχο να εκτελεστούν από υπολογιστή??? από τι εκτελούνται?
επίσης αφού δεν έχουμε δηλώσεις μεταβλητών γιατί έχουμε τύπους αλφαριθμητικούς και λογικούς? εκεί γιατί έχουμε διαχωρισμό?
τέλος με βάση το σκεπτικό αυτό η παρακάτω έκφραση στην ψευδογλώσσα είναι σωστή ή λάθος?

  3.6 div 1.2

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

Με αυτά θέλω να πω ότι η ψευδογλώσσα δεν είναι κάτι αφηρημένο στο οποίο μπορούμε να γράφουμε ότι θέλουμε χωρίς κανέναν περιορισμό. Για παράδειγμα απαγορεύουμε στους μαθητές την αλλαγή του μετρητή της Για μέσα στην επανάληψη στην ψευδογλώσσα. Γιατί? αφού είναι ψευδογλώσσα. Εκεί δεν περιορίζουμε την σκέψη των μαθητών?
Άρα έχει κάποιους περιορισμούς, άρα είναι σχεδιασμένη για κάποιο υπολογιστικό μοντέλο το οποίο την εκτελεί.

Ουσιαστικά η ψευδογλώσσα είναι μια γλώσσα προγραμματισμού με χαλαρή σύνταξη έτσι ώστε να επικεντρωνόμαστε στον αλγόριθμο και όχι σε τεχνικές λεπτομέρειες όπως είναι η σύνταξη. Αυτό όμως δε σημαίνει ότι μπορούμε να φτάνουμε στο άλλο άκρο.
« Τελευταία τροποποίηση: 04 Απρ 2012, 01:51:44 μμ από evry »
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Gnirut

  • Επισκέπτης
Απ: ερώτηση για τα div/mod
« Απάντηση #34 στις: 04 Απρ 2012, 01:49:41 μμ »
οι αλγόριθμοι που γράφουμε σε ψευδογλώσσα δεν έχουν σαν στόχο να εκτελεστούν από υπολογιστή??? από τι εκτελούνται?
επίσης αφού δεν έχουμε δηλώσεις μεταβλητών γιατί έχουμε τύπους αλφαριθμητικούς και λογικούς? εκεί γιατί έχουμε διαχωρισμό?
τέλος με βάση το σκεπτικό αυτό η παρακάτω έκφραση στην ψευδογλώσσα είναι σωστή ή λάθος?

  3.6 div 1.2

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

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

βασικά το πρόβλημα είναι το ότι ούτε η ψευδογλώσσα και το σπουδαιότερο ούτε η ΓΛΩΣΣΑ δεν είναι πουθενά επισήμως ορισμένες.
μια απλή ελληνοποίηση της ISO-PASCAL ίσως να ήταν τελικά ο φθηνότερος και γρηγορότερος τρόπος να καλυπτονταν οι ανάγκες του μαθήματος.


evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3534
  • to Iterate is human to Recurse divine
Απ: ερώτηση για τα div/mod
« Απάντηση #35 στις: 04 Απρ 2012, 01:52:57 μμ »
πολύ καλή προσέγγιση από άλλη οπτική

στο συγκεκριμένο παράδειγμα, από τη στιγμή που το div δεν είναι αυστηρά καθορισμένο το πως λειτουργεί με ορίσματα πραγματικούς, όλος ο αλγόριθμος που το χρησιμοποιεί δεν πληροί το κριτήριο της καθοριστικότητας.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

sstergou

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 985
  • Program or be Programmed
    • pseudoglossa.gr
Απ: ερώτηση για τα div/mod
« Απάντηση #36 στις: 04 Απρ 2012, 02:24:05 μμ »
Μπορεί να μου πει κάποιος από που συμπεραίνει ότι το 6/3 δίνει πραγματικό αριθμό στην ψευδογλώσσα;
Στάθης Στέργου - sstergouATgmailDOTcom - http://www.pseudoglossa.gr

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

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2824
  • Πύργος Ηλείας
Απ: ερώτηση για τα div/mod
« Απάντηση #37 στις: 28 Απρ 2012, 09:41:44 μμ »
Πώς σας φαίνεται το παρακάτω: (σελ. 189 του βιβλίου)

ΑΝ Ν MOD 2 =0 TOTE
   Διάμεσος <- (X[N/2]+X[N/2+1])/2
ΑΛΛΙΩΣ
   Διάμεσος <- X[(N+1)/2]
ΤΕΛΟΣ_ΑΝ

όπου Ν ακέραιος...

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3534
  • to Iterate is human to Recurse divine
Απ: ερώτηση για τα div/mod
« Απάντηση #38 στις: 28 Απρ 2012, 09:56:43 μμ »
Νίκο το συγκεκριμένο είναι στη ΓΛΩΣΣΑ αν θυμάμαι καλά
και πάω στοίχημα ότι είναι από τα λάθη του βιβλίου που δεν έχουν διορθωθεί ακόμα :D

Πώς σας φαίνεται το παρακάτω: (σελ. 189 του βιβλίου)

ΑΝ Ν MOD 2 =0 TOTE
   Διάμεσος <- (X[N/2]+X[N/2+1])/2
ΑΛΛΙΩΣ
   Διάμεσος <- X[(N+1)/2]
ΤΕΛΟΣ_ΑΝ

όπου Ν ακέραιος...
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

andreas_p

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1060
Απ: ερώτηση για τα div/mod
« Απάντηση #39 στις: 28 Απρ 2012, 10:43:15 μμ »
ΑΝ Ν MOD 2 =0 TOTE
   Διάμεσος <- (X[N DIV 2]+X[N DIV 2+1])/2
ΑΛΛΙΩΣ
   Διάμεσος <- X[(N+1) DIV 2]
ΤΕΛΟΣ_ΑΝ