Τμήμα:C/Μάθημα 3ο
Προηγούμενη Ενότητα |
Περιεχόμενα | Επόμενη Ενότητα |
Στο μάθημα αυτό θα μελετήσουμε τους τελεστές και την χρήση τους στην C. Οι τελεστές χωρίζονται σε τρεις κατηγορίες ανάλογα με τις μεταβλητές που μπορούν να χειριστούν ταυτόχρονα. Υπάρχουν οι μοναδιαίοι τελεστές (unary), οι δυαδικοί (binary), και οι τριαδικοί (ternary).
Πριν συνεχίσουμε πρέπει να ξεκαθαρίσουμε κάτι. Expression στην C θεωρείτε οποιαδήποτε μαθηματική ή μη μαθηματική έκφραση, έχει μία τιμή. Είναι πολύ σημαντικό να το θυμάστε αυτό γιατί τα expression παίζουν δέοντα ρόλο στον κώδικά μας. Για παράδειγμα το (a==b) είναι ένα expression καθώς επιστρέφει είτε true(1) είτε false(0). Το ίδιο ισχύει και για το (a=20) αφού επιστρέφει την τιμή του a.
Αριθμητικοί Τελεστές (Arithmetic Operators)
[επεξεργασία]Σύμβολο | Πράξη | Παράδειγμα |
---|---|---|
+ | Πρόσθεση | 5 + 4 |
- | Αφαίρεση | 5 - 4 |
* | Πολλαπλασιασμός | 5 * 4 |
/ | Διαίρεση | 5 / 4 |
% | Υπόλοιπο Διαίρεσης (mod) | 5 % 4 |
Στο προηγούμενο μάθημα αναφέρθηκαν μερικοί μαθηματικοί τελεστές. Όλοι αυτοί θεωρούνται δυαδικοί τελεστές καθώς χρειάζονται τουλάχιστον δύο τελεσταίους για να εκτελεστούν σωστά.
Σημείωση: Η πράξη ακέραια διαίρεση (div) εκτελείται με ανάθεση του αποτελέσματος της διαίρεσης σε ακέραιο αριθμό. Για παράδειγμα η πράξη:
α=β/10 όπου α ακέραιος και β πραγματικός ισοδυναμεί με την πράξη α=βdiv10
Σχεσιακοί Τελεστές (Relational Operators)
[επεξεργασία]Σύμβολο | Πράξη | Παράδειγμα |
---|---|---|
== | Ίσο | (x == y) |
!= | Διάφορο | (x != y) |
> | Μεγαλύτερο | (x > y) |
>= | Μεγαλύτερο ή ίσο | (x >= y) |
< | Μικρότερο | (x < y) |
<= | Μικρότερο ή ίσο | (x <= y) |
Οι σχεσιακοί τελεστές είναι και αυτοί δυαδικοί. Το αποτέλεσμά τους είναι είτε αληθές(1) είτε ψευδές(0). Γενικότερα, οποιαδήποτε άλλη τιμή εκτός του μηδέν θεωρείτε αληθής.
Συνδυασμένοι Τελεστές (Combined Operators)
[επεξεργασία]Σύμβολο | Πράξη | Παράδειγμα |
---|---|---|
+= | x= x + 2 | x += 2 |
-= | x= x - 2 | x -= 2 |
*= | x= x * 2 | x *= 2 |
/= | x= x / 2 | x /= 2 |
%= | x= x % 2 | x %= 2 |
Οι συνδυασμένοι τελεστές είναι απλές συντομογραφίες όσων αναφέρθηκαν παραπάνω. Χρησιμοποιούνται ως απλοποιημένες πράξεις, ενώ, στο πρότυπο της ANSI C μας γλυτώνουν 1 επεξεργαστικό κύκλο (Hertz), το οποίο σημαίνει πως εκτελούνται πιο γρήγορα.
Λογικοί Τελεστές (Logical Operators)
[επεξεργασία]Σύμβολο | Πράξη | Παράδειγμα |
---|---|---|
&& | Σύζευξη (AND) | (1 && 0) |
|| | Διάζευξη (OR) | (1 || 0) |
! | Άρνηση (NOT) | (!1) |
Οι λογικοί τελεστές χρησιμοποιούνται ως λογικές προτάσεις, όταν θέλουμε να δούμε αν ισχύει κάποια πρόταση για να εκτελεστεί ο ανάλογος αλγόριθμος. Περισσότερα για αυτούς θα μάθετε στο μάθημα Λογική και Βασικές Μαθηματικές Αρχές.
Χρήσιμο είναι να διευκρινιστεί πως οι λογικοί τελεστές ελέγχουν πρώτα τον αριστερό τελεστή. Αυτό σημαίνει πως αν αυτός καθορίζει το αποτέλεσμα οι υπόλοιποι τελεστές δεν θα προσπελαστούν. Για παράδειγμα στην σύζευξη όταν ο αριστερός τελεστής είναι Ψευδής, τότε ο δεξιός δεν θα επηρεάζει το αποτέλεσμα όποιο και αν είναι. Έτσι η C κρίνει πως δεν χρειάζεται έλεγχος. Στην Διάζευξη αν ο αριστερός τελεστής είναι Αληθής, τότε επίσης η πράξη τελειώνει εκεί. Αυτό καλό είναι να το έχετε υπόψη σας, ούτως ώστε να βάζετε τελεστές που συνήθως καθορίζουν το αποτέλεσμα στα αριστερά. Έτσι γλιτώνετε επεξεργαστικούς κύκλους, και τα προγράμματά σας θα εκτελούνται ταχύτερα.
Αυξητικοί και Αφαιρετικοί Τελεστές (Increment & Decrement Operators)
[επεξεργασία]Σύμβολο | Πράξη | Παράδειγμα (a=5) |
---|---|---|
++ | a= a + 1 | b=a++; //b=5, a=6 |
b=++a; //b=6, a=6 | ||
-- | a= a - 1 | b=a--; //b=5, a=4 |
b=--a; //b=4, a=4 |
Οι τελεστές αυτοί είναι μοναδιαίοι και η λειτουργία τους είναι η αύξηση ή η μείωση του τελεσταίου κατά μία μονάδα. Υπάρχουν δύο τρόποι χρήσης, είτε προθεματικά (prefix) είτε επιθεματικά (postfix) του τελεσταίου. Η προθεματική χρήση δηλώνει την αύξηση ή μείωση του τελεσταίου πριν εκτελεστεί η μαθηματική πράξη, ενώ αντίθετα η επιθεματική αφού εκτελεστεί.
Επιθεματική χρήση, παραδείγματα 1, 3.
Προθεματική χρήση, παραδείγματα 2, 4.
Προηγούμενη Ενότητα |
Περιεχόμενα | Επόμενη Ενότητα |