Τελεστής ^ βγάζει πραγματικό αποτέλεσμα ;

Ξεκίνησε από nikolasmer, 11 Δεκ 2019, 04:02:51 ΜΜ

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

nikolasmer

Ανάμεσα σε ακέραιες τιμές , ο τελεστής της δυναμης (^) γιατί δε βγάζει ακέραιο αποτέλεσμα;
Μερεντίτης Νικόλαος
Πληροφορικός


nikolasmer

Μερεντίτης Νικόλαος
Πληροφορικός

ikariofil

Το Υ πρέπει να δηλωθεί σαν πραγματική μεταβλητή. Αν Χ < 0 ....

nikolasmer

Παράθεση από: ikariofil στις 11 Δεκ 2019, 04:22:57 ΜΜ
Το Υ πρέπει να δηλωθεί σαν πραγματική μεταβλητή. Αν Χ < 0 ....
Ωωω!!! Ευχαριστώ .
Μερεντίτης Νικόλαος
Πληροφορικός

nikolasmer

Παράθεση από: alkisg στις 11 Δεκ 2019, 04:08:23 ΜΜ
https://alkisg.mysch.gr/ΓΛΩΣΣΑ/Τελεστές/
Δε θυμάμαι αλλά κάπου είχα δει να δουλεύει αυτό. Μάλλον σε pascal. Επίσης η pow(a,b) στη. C και c++  δουλεύει κανονικά. Αυτό σημαίνει ότι είναι υπερφορτωμενη;
Μερεντίτης Νικόλαος
Πληροφορικός

alkisg

Εννοούσα αυτές τις γραμμές:

Παράθεση από: https://alkisg.mysch.gr/ΓΛΩΣΣΑ/Τελεστές/
^ (δύναμη): ισχύει για τους ακέραιους και τους πραγματικούς. Το αποτέλεσμα είναι συνήθως πραγματικός αριθμός, εκτός αν ο εκθέτης είναι θετικός ακέραιος σταθερής αποτίμησης. Για παράδειγμα το 2^2 είναι ακέραιος, ενώ το 2^-2 πραγματικός (= 0.25). Έτσι στην γενική περίπτωση το 2^ι εκλαμβάνεται σαν πραγματικός αριθμός.

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

nikolasmer

#7
Ευχαριστώ πολύ.
Επίσης επειδή δεν γνωρίζω πως γίνεται, είναι δύσκολο να καθορίσουμε ανάλογα με τους τελεσταίους άλλοτε να δουλεύει και άλλοτε όχι; Δηλαδή αν καταλάβει ότι έχει τελεσταίους ακέραιους να βγάζει ακέραιο και αν όχι να βγάζει πραγματικό;
Σε επίπεδο διερμηνευτή μιλάω πάντα!
Μερεντίτης Νικόλαος
Πληροφορικός

alkisg

Εννοείς αν έχει τελεστέους φυσικούς αριθμούς; Όχι δεν υπάρχει ΦΥΣΙΚΟΣ τύπος δεδομένων στη ΓΛΩΣΣΑ.
Αν έχει τελεστέους ακεραίους, τότε το αποτέλεσμα είναι πραγματικός.
Τέλος, αν θες μετατρέψεις το αποτέλεσμα σε ακέραιο, μπορείς να βάλεις Α_Μ(α^β).

Είναι αντίστοιχο με το 4/2, το οποίο είναι πραγματικός 2.0 και όχι ακέραιος 2.