Πραγματική μεταβλητή Δείκτης σε πίνακα

Ξεκίνησε από evry, 20 Ιουν 2025, 09:30:58 ΠΜ

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

petrosp13

Παράθεση από: evry στις 22 Ιουν 2025, 12:43:26 ΜΜόταν γράψεις 0 αυτό στη μνήμη τι αναπαράσταση έχει? αποθηκεύεται ως ακέραιος ή ως πραγματικός?

Δεν νομίζω ότι αυτό έχει σημασία σε μάθημα Γ΄ Λυκείου
Ορίζουμε στο μάθημα μας ότι ο πραγματικός τύπος παίρνει τιμή από το σύνολο των πραγματικών αριθμών
Το 0 είναι πραγματικός αριθμός, είτε έχει υποδιαστολή είτε όχι
Για μένα δεν υπάρχει αστοχία στην πρόταση "η μεταβλητή και η έκφραση πρέπει να είναι ίδιου τύπου"
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

o_Antonis

Επομένως όλοι οι ακέραιοι είναι ταυτόχρονα και πραγματικοί στην ΓΛΩΣΣΑ;

petrosp13

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

Θα ήθελα ειλικρινά να καταλάβω τον αντίλογο, μήπως κάνω λάθος εγώ
Γιατί η εντολή χ <-- 0 είναι συντακτικά λάθος με πραγματική μεταβλητή;
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

evry

Άρα με το δικό σας σκεπτικό η παρακάτω ανάθεση είναι σωστή. Αφού η τιμή δεξιά είναι ακέραια, σωστά;

ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Ν
ΑΡΧΗ
  Ν <- 8/4

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

George Eco

Παράθεση από: evry στις 22 Ιουν 2025, 10:49:50 ΜΜΆρα με το δικό σας σκεπτικό η παρακάτω ανάθεση είναι σωστή. Αφού η τιμή δεξιά είναι ακέραια, σωστά;

ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Ν
ΑΡΧΗ
  Ν <- 8/4

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

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

Δεύτερη ερώτηση αν πάρεις literal το βιβλίο υπ όψιν ξέρεις πως δε μπορείς να κάνεις τέτοια ανάθεση, ασχέτως αν ΟΛΟΙ κάνουμε τα στραβά μάτια σ' αυτό...
Πράσινο βιβλίο σελ 132 η υποσημείωση θαυμαστικό κόκκινο της ενότητας 7.8 κάτω αριστερά...
Δεν είχε αυτή τη πρόθεση η συγγραφική ομάδα, αλλά κι η ΝΕΑ ΑΝΑΘΕΩΡΗΜΕΝΗ ΕΚΔΟΣΗ.... τι σκατά έχει λύσει από όλα αυτά που συζητάμε μετά από 25 χρόνια;;;
Εδώ δεν ορίζουν σωστά το αλφάβητο, τι συζητάμε. Δεν υπάρχουν άνω κάτω τελεία κι αγγύλες....

George Eco

Παράθεση από: o_Antonis στις 22 Ιουν 2025, 10:06:57 ΜΜΕπομένως όλοι οι ακέραιοι είναι ταυτόχρονα και πραγματικοί στην ΓΛΩΣΣΑ;

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


Παράθεση από: petrosp13 στις 22 Ιουν 2025, 07:24:03 ΜΜΔεν νομίζω ότι αυτό έχει σημασία σε μάθημα Γ΄ Λυκείου
Ορίζουμε στο μάθημα μας ότι ο πραγματικός τύπος παίρνει τιμή από το σύνολο των πραγματικών αριθμών
Το 0 είναι πραγματικός αριθμός, είτε έχει υποδιαστολή είτε όχι
Για μένα δεν υπάρχει αστοχία στην πρόταση "η μεταβλητή και η έκφραση πρέπει να είναι ίδιου τύπου"

Για εμένα υπάρχει Πέτρο.
Γιατί όμως;
Δεν υπάρχει ΑΡΙΘΜΗΤΙΚΟΣ τύπος στη ΓΛΩΣΣΑ.
Υπάρχουν
ΑΚΕΡΑΙΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ
ΧΑΡΑΚΤΗΡΕΣ
ΛΟΓΙΚΕΣ

Άρα όπως το λένε, χωρίς μάλλον να το είχαν στόχο, είναι ΤΟΣΟ απόλυτο που πρέπει να κάνουμε ηλίθια πράγματα για να είμαστε σωστοί.
Φέρει πειν:

πραγ <- 10 * 1.0

Για να βάλεις σε πραγματικό ακέραιο, βάσει του όσα λέει το βιβλίο δε μπορείς. Πρέπει να τον κάνεις πραγματικό. Άντε να πεις τώρα εσύ στα παιδιά πως πρέπει να λένε  ακέραιος * 1.0 δηλαδή έλεος. Το λέω καλαμπουρίζοντας εγώ, εξηγώντας τα προβλήματα που έχει το μάθημα στα παιδιά, ΑΦΟΥ έχουν ξεμπερδευτεί και μπορούν να καταλάβουν το παραλογισμό.
Ούτως ή άλλως δε πιστεύω ποτέ να κόψουν Πανελλήνιες για τέτοια πράγματα.
Κάνω λάθος άραγε;;;

petrosp13

Μπορεί να μου εξηγήσει κάποιος γιατί το 0 δεν είναι πραγματικός;
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

evry

Κάποτε πριν πολλά χρόνια υπήρχε ένα μάθημα που λεγόταν "Τεχνολογία Υπολογιστικών Συστημάτων και Λειτουργικά Συστήματα" του οποίου η συγγραφική ομάδα ήταν καθηγητές και διδακτορικοί των ΗΜΜΥ του ΕΜΠ.
Λίγοι καθηγητές τολμούσαν να το διδάξουν γιατί οι μαθητές δεν θα το διάλεγαν. Βλέπετε ήθελε κάτι αδιανόητο για τη σημερινή εποχή... Διάβασμα. Προτιμούσαν να κάνουν Πολυμέσα, Εφαρμογές Πληροφορικής και γενικά πιο .... χαλαρά μαθήματα για να μην κουράζονται και τα παιδιά.
Τα μαθήματα αυτά εξαφανίστηκαν σε μια νύχτα και δεν στεναχωρήθηκε κανείς για αυτό (γιατί άραγε?)
Έτσι θα εξαφανιστεί και το μάθημά μας, αν δεν αλλάξει αργά η γρήγορα. Είναι νομοτελειακό.

Όλες οι απαντήσεις σε αυτά που συζητάμε είναι σε αυτό το βιβλίο στο κεφάλαιο 2.
Όλο αυτό το thread δείχνει πόσο επιτακτική είναι η ανάγκη να υπάρξει υποχρεωτικά ένα τέτοιο κεφάλαιο στο μάθημά μας.

ΥΓ. Η εκχώρηση ακέραιας τιμής σε πραγματική απαιτεί μετατροπή που γίνεται implicit από τον compiler και λέγεται type promotion αν θέλετε να το δείτε.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

evry

Παράθεση από: petrosp13 στις 22 Ιουν 2025, 11:48:08 ΜΜΜπορεί να μου εξηγήσει κάποιος γιατί το 0 δεν είναι πραγματικός;
αν το 0 ήταν πραγματικός τότε δεν θα μπορούσε να εκχωρηθεί σε ακέραια μεταβλητή έτσι δεν είναι?
Να έχει δυο τύπους ταυτόχρονα πάντως δε γίνεται.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

petrosp13

Δηλαδή σε πραγματική γλώσσα γράφουμε

sum = 0.0
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

o_Antonis

όχι δεν το γράφουμε έτσι γιατί γίνεται promotion/casting αυτόματα
(ορίζεται στο specification, τουλάχιστον για την C)

gpapargi

Παράθεση από: petrosp13 στις 22 Ιουν 2025, 11:48:08 ΜΜΜπορεί να μου εξηγήσει κάποιος γιατί το 0 δεν είναι πραγματικός;
Υποπτεύομαι ότι η παρεξήγηση έχει να κάνει με το αν θεωρούμε το ακέραιος/πραγματικός με την ορολογία των μαθηματικών ή του προγραμματισμό. Στα μαθηματικά οι ακέραιοι είναι υποσύνολο των πραγματικών άρα κάθε ακέραιος είναι και πραγματικός. Ενώ όταν μιλάμε για ακεραίους και πραγματικούς στον προγραμματισμό, μιλάμε για τον αποθηκευτικό χώρο που δεσμεύεται στη μνήμη του υπολογιστή. Άρα ο ακέραιος και ο πραγματικός είναι υποχρεωτικά διαφορετικά πράγματα. Δεν υπάρχει και το casting στη ΓΛΩΣΣΑ οπότε εμφανίζονται πράγματα που σε γλώσσες προγραμματισμού του εμπορίου λειτουργούν σιωπηλά. 
Γιώργος Παπαργύρης

pgrontas

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

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


Παράθεση από: evry στις 22 Ιουν 2025, 11:53:32 ΜΜΚάποτε πριν πολλά χρόνια υπήρχε ένα μάθημα που λεγόταν "Τεχνολογία Υπολογιστικών Συστημάτων και Λειτουργικά Συστήματα" του οποίου η συγγραφική ομάδα ήταν καθηγητές και διδακτορικοί των ΗΜΜΥ του ΕΜΠ.
Λίγοι καθηγητές τολμούσαν να το διδάξουν γιατί οι μαθητές δεν θα το διάλεγαν. Βλέπετε ήθελε κάτι αδιανόητο για τη σημερινή εποχή... Διάβασμα. Προτιμούσαν να κάνουν Πολυμέσα, Εφαρμογές Πληροφορικής και γενικά πιο .... χαλαρά μαθήματα για να μην κουράζονται και τα παιδιά.
Τα μαθήματα αυτά εξαφανίστηκαν σε μια νύχτα και δεν στεναχωρήθηκε κανείς για αυτό (γιατί άραγε?)
Έτσι θα εξαφανιστεί και το μάθημά μας, αν δεν αλλάξει αργά η γρήγορα. Είναι νομοτελειακό.
Ας μην το πάμε τόσο μακριά.
Στην Α Λυκείου, στο βιβλίο υπάρχουν κεφάλαια σχετικά με αρχιτεκτονική υπολογιστών, τα οποία αν και αρχικά ήταν εντός ύλης κάποια στιγμή βγήκαν εκτός. Γιατί συνέβη αυτό και μείναμε με το Alice και το AppInventor; Δε φταίνε ούτε οι καθηγητές, ούτε οι μαθητές γι'αυτό.

Φταίει κατά τη γνώμη μου ότι αυτοί που αποφασίζουν δεν ξέρουν και δεν αγαπάνε την Πληροφορική (στην συντριπτική τους πλειοψηφία). Είναι κυρίως γραφειοκράτες. Δεν καταλαβαίνουν λοιπόν και θεωρούν πως οτιδήποτε δεν ξέρουν οι ίδιοι είναι προχωρημένο για το σχολείο.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

petrosp13


ΠαράθεσηΠραγματικός τύπος. Ο τύπος αυτός περιλαμβάνει τους πραγματικούς αριθμούς που γνωρίζουμε από τα μαθηματικά. Οι αριθμοί 3.14159, 2.71828, -112.45, 0.45 είναι πραγματικοί αριθμοί. Και οι πραγματικοί αριθμοί μπορούν να είναι θετικοί, αρνητικοί ή μηδέν.


Έτσι ορίζεται στο σχολικό βιβλίο
Πραγματικοί αριθμοί που γνωρίζουμε από τα μαθηματικά, άρα και το μηδέν
Τα υπόλοιπα νομίζω ότι βασίζονται σε γνώσεις που αποκομίσαμε από τις σπουδές μας και δεν θα πρέπει να εντάσσονται και να μπερδεύουν το μάθημα χωρίς λόγο
Αν σε μια πραγματική γλώσσα δίνω αρχική τιμή στην πραγματική μεταβλητή sum το μηδέν (χωρίς υποδιαστολές), δεν θα μπορώ στην ΓΛΩΣΣΑ;;; 
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

Foto

Το τι και πως γίνεται σε μια γλώσσα το ορίζει η γλώσσα.
Για παράδειγμα στο excel οι τύποι γράφονται με τις σταθερές τιμές με η χωρίς υποδιαστολή.  Αν χρησιμοποιήσεις υποδιαστολη τότε πρέπει να είναι αυτή που ορίζεται στη γλώσσα του υπολογιστή. Στα ελληνικά είναι το κόμμα. Οπότε αν μια συνάρτηση θέλει δύο αριθμούς για ορίσματα πως τους χωρίζουμε; Με κόμμα δεν μπορούμε, μόνο με ελληνικό ερωτηματικό.
Δείτε ότι το Excel χρησιμοποιείται σε όλες τις δημόσιες υπηρεσίες, σε οργανισμούς, σε επιχειρήσεις, εμπορικές και τεχνικές. Δεν είναι δύσκολο να το μάθεις γιατί έχεις το Excel, και αν κάνεις λάθος μια φορά μετά το μαθαίνεις.  Η χρήση του Excel μας μαθαίνει από το λάθος.

Υπάρχει σήμερα διερμηνευτης της ΓΛΩΣΣΑΣ που να θεωρείται 100% ιδανικός για το μάθημα, ώστε με τη χρήση του οι μαθητές να γνωρίσουν πώς λειτουργεί η ΓΛΩΣΣΑ; Δηλαδή να κάνουν όπως χιλιάδες εργαζόμενοι που χρησιμοποιούν το Excel;