Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Γ΄ Λυκείου => Θεωρία => Μήνυμα ξεκίνησε από: sarg στις 11 Οκτ 2010, 03:29:38 ΜΜ

Τίτλος: το αποτέλεσμα μιας πράξης μπορεί να εκχωρηθεί σε μια σταθερά;
Αποστολή από: sarg στις 11 Οκτ 2010, 03:29:38 ΜΜ
στην ιστοσελίδα του συναδέφου κ Τσιωτάκη αναφέρεται σαν Λάθος η πρόταση:
Το αποτέλεσμα μιας πράξης μπορεί να εκχωρηθεί σε μια σταθερά.
Αναρωτιέμαι αν στην περίπτωση ενός προγράμματος (που έχουν καλύτερη "υπόσταση" οι μεταβλητές)
είναι σωστή η παραπάνω πρόταση, με την έννοια ότι δίνω - με τη μορφή πράξης - μία αρχική τιμή στην σταθερά μου
και στη συνέχεια προφανώς δεν μεταβάλλεται.
περιμένω και τις δικές σας απόψεις.

Τίτλος: Απ: το αποτέλεσμα μιας πράξης μπορεί να εκχωρηθεί σε μια σταθερά;
Αποστολή από: ntzios kostas στις 11 Οκτ 2010, 04:15:45 ΜΜ
Δεν ξέρω αν κατάλαβα καλά. Θεωρείς ότι αν στο σώμα των εντολών υπάρχει για παράδειγμα η εντολή  χ<-5 και το χ δεν μεταβληθεί τότε το χ πρέπει να το θεωρήσουμε σταθερά; 
Τίτλος: Απ: το αποτέλεσμα μιας πράξης μπορεί να εκχωρηθεί σε μια σταθερά;
Αποστολή από: Νίκος Αδαμόπουλος στις 11 Οκτ 2010, 06:35:56 ΜΜ
Εννοείς π.χ.  αν θα γινόταν:  (?)

ΣΤΑΘΕΡΕΣ
   κ=3*30

Μπορεί σε κάποιες γλώσσες, αλλά στη ΓΛΩΣΣΑ όχι. Άλλωστε το '=' δεν έχει την έννοια της εκχώρησης!

(Φοβερό αυτό με τη ΓΛΩΣΣΑ! Ακόμα και ο Θεός μόνο με ένα κεφαλαίο γράμμα γράφεται!)
Τίτλος: Απ: το αποτέλεσμα μιας πράξης μπορεί να εκχωρηθεί σε μια σταθερά;
Αποστολή από: alkisg στις 11 Οκτ 2010, 06:45:47 ΜΜ
@sarg: εφόσον μπορείς να δώσεις τιμή κατά την εκτέλεση, δεν θεωρείται σταθερά, ακόμα κι αν δεν μεταβληθεί στη συνέχεια. Θεωρείται μεταβλητή.

@Νίκος: γιατί όχι; π.χ. ο διερμηνευτής το υποστηρίζει, εφόσον το 3*30 μπορεί να αποτιμηθεί πριν την εκτέλεση του προγράμματος: https://alkisg.mysch.gr/ΓΛΩΣΣΑ/Μέρη_προγράμματος/ (https://alkisg.mysch.gr/%CE%93%CE%9B%CE%A9%CE%A3%CE%A3%CE%91/%CE%9C%CE%AD%CF%81%CE%B7_%CF%80%CF%81%CE%BF%CE%B3%CF%81%CE%AC%CE%BC%CE%BC%CE%B1%CF%84%CE%BF%CF%82/).
Δεν θυμάμαι αν είχα βρει σχετικό παράδειγμα στο βιβλίο, αλλά γιατί να μην επιτρέπεται;
Τίτλος: Απ: το αποτέλεσμα μιας πράξης μπορεί να εκχωρηθεί σε μια σταθερά;
Αποστολή από: sarg στις 11 Οκτ 2010, 11:25:47 ΜΜ
Παράθεση από: ntzios kostas στις 11 Οκτ 2010, 04:15:45 ΜΜ
Δεν ξέρω αν κατάλαβα καλά. Θεωρείς ότι αν στο σώμα των εντολών υπάρχει για παράδειγμα η εντολή  χ<-5 και το χ δεν μεταβληθεί τότε το χ πρέπει να το θεωρήσουμε σταθερά; 
όχι

εννοώ αυτό ακριβώς που είπε ο alkisg.
Δηλ. δηλώνωντας μια σταθερά στη ΓΛΩΣΣΑ μπορείς να της δώσεις τιμή μέσω μιας πράξης.
Απλά κατάλαβα ότι είναι λάθος η πρόταση επειδή αναφέρει το εκχωρεί το οποίο δεν είναι το ίδιο με το = (όπως αναφέρει ο Νίκος)


ευχαριστώ για τις απαντήσεις
Τίτλος: Απ: το αποτέλεσμα μιας πράξης μπορεί να εκχωρηθεί σε μια σταθερά;
Αποστολή από: Νίκος Αδαμόπουλος στις 11 Οκτ 2010, 11:32:03 ΜΜ
Παράθεση από: alkisg στις 11 Οκτ 2010, 06:45:47 ΜΜ
@Νίκος: γιατί όχι; π.χ. ο διερμηνευτής το υποστηρίζει, εφόσον το 3*30 μπορεί να αποτιμηθεί πριν την εκτέλεση του προγράμματος: https://alkisg.mysch.gr/ΓΛΩΣΣΑ/Μέρη_προγράμματος/ (https://alkisg.mysch.gr/%CE%93%CE%9B%CE%A9%CE%A3%CE%A3%CE%91/%CE%9C%CE%AD%CF%81%CE%B7_%CF%80%CF%81%CE%BF%CE%B3%CF%81%CE%AC%CE%BC%CE%BC%CE%B1%CF%84%CE%BF%CF%82/).
Δεν θυμάμαι αν είχα βρει σχετικό παράδειγμα στο βιβλίο, αλλά γιατί να μην επιτρέπεται;

Αν το δούμε αυστηρά, το βιβλίο στη σελ 149 εκεί που μιλάει για τις συμβολικές σταθερές, αναφέρει ότι: "Η ΓΛΩΣΣΑ επιτρέπει την αντιστοίχιση σταθερών τιμών με ονόματα" και στην σελ. 150 ότι: "Αποδίδει ονόματα σε σταθερές τιμές.". Δεν μιλάει για εκφράσεις...

Από την άλλη δεν επιμένω. Είναι θέμα ορισμού της γλώσσας. Να σε ρωτήσω: Την απόδοση της τιμής σε ποια φάση την έχεις υλοποιήσει; Στη φάση της μεταγλώττισης ή στην έναρξη της εκτέλεσης;

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

Για την εντολή εκχώρησης, στη σελ. 154, αναφέρει: "Η εντολή εκχώρησης χρησιμοποιείται για την απόδοση τιμών στις μεταβλητές κατά τη διάρκεια εκτέλεσης του προγράμματος." οπότε για την αρχική ερώτηση του sarg νομίζω δεν τίθεται θέμα
Τίτλος: Απ: το αποτέλεσμα μιας πράξης μπορεί να εκχωρηθεί σε μια σταθερά;
Αποστολή από: sstergou στις 12 Οκτ 2010, 12:04:25 ΠΜ
Ναι αλλά άλλο σταθερή τιμή άλλο κυριολεκτική σταθερά.

Νομίζω ότι οι εκφράσεις τέτοιου τύπου μπορούν να θεωρηθούν ως σταθερές τιμές.
Τίτλος: Απ: το αποτέλεσμα μιας πράξης μπορεί να εκχωρηθεί σε μια σταθερά;
Αποστολή από: alkisg στις 12 Οκτ 2010, 12:07:50 ΠΜ
Παράθεση από: Νίκος Αδαμόπουλος στις 11 Οκτ 2010, 11:32:03 ΜΜ
Να σε ρωτήσω: Την απόδοση της τιμής σε ποια φάση την έχεις υλοποιήσει; Στη φάση της μεταγλώττισης ή στην έναρξη της εκτέλεσης;
Της μεταγλώττισης.
Τίτλος: Απ: το αποτέλεσμα μιας πράξης μπορεί να εκχωρηθεί σε μια σταθερά;
Αποστολή από: evry στις 12 Οκτ 2010, 10:03:44 ΠΜ
Αν πάρουμε τοις μετρητοίς αυτά που λέει το βιβλίο θα έπρεπε να απαγορεύουμε και εντολές της μορφής   
Γράψε 3*6  ή Γράψε 4*χ
αφού στην σχετική παράγραφο δεν αναφέρεται σε εκφράσεις. Το βιβλίο δεν είναι ευαγγέλιο σε πολλά σημεία έχει λάθη (π.χ. εκεί που ορίζει την Java σαν γλώσσα κατανεμημένου προγραμματισμού και όχι σαν γλώσσα γενικού σκοπού)

Η έκφραση 4*40+9^4 είναι σταθερά η μεταβλητή? προφανώς είναι σταθερά άρα μπορεί να εκχωρηθεί σε σταθερά. Τόσο απλά.
Αν δούμε τη σταθερά σαν το #define της C τότε σκεφτείτε ότι όπου υπάρχει το όνομα της σταθέρας απλά γίνεται αντικατάσταση με αυτή την σταθερή έκφραση. Το αν αυτή υπολογίζεται πριν ή μετά είναι και θέμα βελτιστοποίησης.
  Σε οποιαδήποτε περίπτωση δεν νομίζω ότι υπάρχει σοβαρό επιχείρημα που να αποτρέπει κάποιον από το να χρησιμοποίησει σταθερές εκφράσεις σε σταθερά μόνο και μόνο επειδή δεν έχει το βιβλίο αντίστοιχο παράδειγμα.
Τίτλος: Απ: το αποτέλεσμα μιας πράξης μπορεί να εκχωρηθεί σε μια σταθερά;
Αποστολή από: Νίκος Αδαμόπουλος στις 12 Οκτ 2010, 12:40:23 ΜΜ
Όπως είπα ήδη και παραπάνω δεν επιμένω! Από την άλλη δεν βρίσκω και κάποιο λόγο να μας απασχολεί κάτι τέτοιο στο επίπεδο του μαθήματος της ΑΕΠΠ... Και εν πάση περιπτώσει δεν θα έφτανα στο να το δείξω στους μαθητές...
Τίτλος: Απ: το αποτέλεσμα μιας πράξης μπορεί να εκχωρηθεί σε μια σταθερά;
Αποστολή από: Λάμπρος Μπουκουβάλας στις 12 Οκτ 2010, 04:32:18 ΜΜ
κι εγώ πιστεύω ότι αποτελεί ένα θέμα "φλου", που μάλλον δε πρέπει να μας απασχολήσει παρά μόνο για να διευρύνουμε τις προσωπικές μας απόψεις.