ΣΥΜΒΑΤΟΤΗΤΑ ΤΥΠΩΝ

Ξεκίνησε από landreou, 05 Μαρ 2013, 07:58:11 ΠΜ

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

landreou

Γεια χαρά σε όλους τους φίλους του  ΣτΠ.

Αν σε ενα προγραμμα γραμμένο δε ΓΛΩΣΣΑ έχω δύο μεταβλητές πχ. μετακ και πραγμετ η πρώτη ακέραια και η δεύτερη πραγματική μπορώ εντός του προγράμματος μια εντολή μετακ <-- πραγμετ ή πραγμετ <-- μετακ ( αυτό δε θα είναι ακυρο αφού είναι διαφορετικού τυπου μεταβλητές ) ;
Επίσης αν μπορώ μεσα σε πραγματικες εκφράσεις να συμπεριλάβω την ακέραια μεταβλητη και μέσα σε ακεραιες εκφράσεις την πραγματική μεταβλητή .


Ευχαριστώ

P.Tsiotakis

τροποποιώ το ερώτημα στο παρακάτω:

αν Α πραγματική μεταβλητή. Η εκχώρηση

   Α <- 3

είναι σωστή;

Gnirut

Από τη στιγμή που δεν υπάρχει επίσημη και λεπτομερής περιγραφή της ΓΛΩΣΣΑΣ, σωστό είναι ότι "τρέχει" στον "Διερμηνευτή" που αποτελεί και την μόνη "επίσημη" υλοποίηση της ΓΛΩΣΣΑΣ σε υπολογιστή.

Π.χ. το Α<-3 "τρέχει", άρα είναι "σωστό"
εαν το Α ήταν ακέραιος και βάζαμε Α<-3.1 δεν θα "έτρεχε", άρα είναι λάθος.

Για όποιον έχει χρόνο για ψάξιμο, είναι βέβαιο ότι θα υπάρχουν και links στο στέκι ή αλλού που θα επιβεβαιώνουν την συμπεριφορά του "Διερμηνευτή".

batos

Παράθεση από: landreou στις 05 Μαρ 2013, 07:58:11 ΠΜ
Γεια χαρά σε όλους τους φίλους του  ΣτΠ.

Αν σε ενα προγραμμα γραμμένο δε ΓΛΩΣΣΑ έχω δύο μεταβλητές πχ. μετακ και πραγμετ η πρώτη ακέραια και η δεύτερη πραγματική μπορώ εντός του προγράμματος μια εντολή μετακ <-- πραγμετ ή πραγμετ <-- μετακ ( αυτό δε θα είναι ακυρο αφού είναι διαφορετικού τυπου μεταβλητές ) ;
Επίσης αν μπορώ μεσα σε πραγματικες εκφράσεις να συμπεριλάβω την ακέραια μεταβλητη και μέσα σε ακεραιες εκφράσεις την πραγματική μεταβλητή .


Ευχαριστώ

Αν χ πραγματική μεταβλητή, τότε οι δύο επόμενες θεωρούνται ισοδύναμες εντολές:
χ<- 3
χ<- 3.0
αφού στην πρώτη γίνεται αυτόματα μετατροπή του ακεραίου 3, σε πραγματικό (έστω 3.0) πριν την καταχώρηση, οπότε και στις δύο περιπτώσεις, στην μεταβλητή καταχωρείται το πραγματικό 3 (3.0).
Αυτό το θεωρούμε δεδομένο στην ΓΛΩΣΣΑ τα τελευταία 13(;) χρόνια που διδάσκεται το μάθημα (χωρίς να έχω υπόψη μου αυτή τη στιγμή σαφή αναφορά στα σχολικά εγχειρίδια).
Το αντίστροφο δεν γίνεται. Αν κ ακέραια μεταβλητή, τότε δεν μπορούμε να έχουμε την παρακάτω εντολή:
κ <- 3.1

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

gthal

Παράθεση από: batos στις 05 Μαρ 2013, 05:57:37 ΜΜ
Μέσα σε μια αριθμητική έκφραση, η παρουσία έστω και μιας πραγματικής μεταβλητής (ή τιμής), την καθιστά πραγματικού τύπου.
Επίσης σε μια αριθμητική έκφραση, αποτελούμενη μόνο από ακέραιες μεταβλητές (ή/και τιμές), η παρουσία του τελεστή /, την καθιστά πραγματικού τύπου. (Για αυτό και εκτιμώ ότι υπάρχει (από παλιά) λάθος στο ΠΡΟΓΡΑΜΜΑ σελ. 189 στην αναφορά Χ[Ν/2], αφού το Ν/2 είναι πραγματικού τύπου.)
Συμφωνώ και συμπληρώνω ότι και η ύπαρξη του τελεστή ^ ακόμα και μεταξύ ακεραίων, καθιστά την έκφραση πραγματικού τύπου
Φιλικά,
Γιώργος Θαλασσινός