Άρθρο #3: Αριθμητικοί τελεστές
C++ Programmer's Corner :: Προγραμματισμός :: C :: Άρθρα
Σελίδα 1 από 1
Άρθρο #3: Αριθμητικοί τελεστές
Οι συνήθεις αριθμητικοί τελεστές όπως της πρόσθεσης και του πολλαπλασιασμού δε μπορούσαν να λείπουν από οποιαδήποτε γλώσσα προγραμματισμού. Πρόσθεση( + ), Αφαίρεση( - ), Πολλαπλασιασμός( * ), Διαίρεση( / ), Υπόλοιπο( % ). Όπως και στα μαθηματικά, ο πολλαπλασιασμός και η διαίρεση ( άρα και το υπόλοιπο ) προηγούνται της πρόσθεσης και της αφαίρεσης. Βεβαίως, όλες αυτές η πράξεις θα ήταν άχρηστες αν δεν υπήρχε ένας τελεστής ο οποίος αποθηκεύει το αποτέλεσμα, και αυτός είναι η ανάθεση τιμής( = ). Επίσης, όπως και στα μαθηματικά, οπουδήποτε μπορούν να χρησιμοποιηθούν παρενθέσεις για να υποδείξουν μια συγκεκριμένη πορεία πράξεων.
Κάτι σημαντικό για τις αριθμητικές πράξεις στη C είναι να ξέρουμε τι τύπου είναι το αποτέλεσμα. Η απάντηση είναι:
Στο παρακάτω παράδειγμα το πρόγραμμα ζητάει την ακτίνα ενός κύκλου και εκτυπώνει το εμβαδόν του.
Η C χρησιμοποιεί επίσης μερικούς ίσως άγνωστους τελεστές για αύξηση κατά ένα( ++ ), μείωση κατά ένα( -- ). Μπορούν να εκτελούνται μόνο σε μεταβλητές. Ο καθένας τους έχει δύο διαφορετικές χρήσεις. Μπορεί να είναι πριν απ`το όνομα της μεταβλητής, το οποίο την αλλάζει και συνεχίζει την εκτίμηση της υπόλοιπης έκφρασης. Μπορεί επίσης να είναι μετά απ`το όνομα της μεταβλητής, που σημαίνει ότι πρώτα θα γίνει η εκτίμηση της υπόλοιπης έκφρασης και μετά θα αλλάξει η τιμή της μεταβλητής. Για παράδειγμα:
"(x++)*2" σημαίνει "x*2" & μετά "x = x + 1"
"(++x)*2" σημαίνει "x = x + 1" & μετά "x*2"
Επίσης, η C περιλαμβάνει τελεστές οι οποίοι ταυτόχρονα κάνουν πράξεις και αναθέτουν τιμές, για χάρη συντομίας. Πχ += , -= , *= , /= , κτλ. Σημειώστε ότι πχ "x += 1" είναι το ίδιο με "x = x + 1".
Τέλος, να θυμάστε ότι όταν διαιρούμε 2 ακεραίους στη C, κάνουμε ακέραια διαίρεση, δηλαδή το κλασματικό κομμάτι αγνοείται παντελώς. Όπως πάντα, πειραματιστείτε με το κώδικα μέχρι να καταλάβετε πώς λειτουργεί. Μη διστάσετε να αλλάξετε τις πράξεις, ή ακόμα και να το κάνετε να βρίσκει κάτι τελείως διαφορετικό. Η λέξη κλειδί είναι εξάσκηση.
Κάτι σημαντικό για τις αριθμητικές πράξεις στη C είναι να ξέρουμε τι τύπου είναι το αποτέλεσμα. Η απάντηση είναι:
Ας σημειωθεί ότι τελεστής ύψωσης σε δύναμη δεν υπάρχει στη C . Ο συνήθης τελεστής που χρησιμοποιείται( ^ ) σημαίνει κάτι τελείως διαφορετικό που θα αναφερθεί σε επόμενο άρθρο. Υπάρχουν συναρτήσεις της standard βιβλιοθήκης για δυνάμεις, και αυτές θα αναφερθούν σε άλλο άρθρο.Αν κάποιος απ`τους όρους είναι "long double", το αποτέλεσμα είναι "long double"
Αλλιώς αν κάποιος απ`τους όρους είναι "double", το αποτέλεσμα είναι "double"
Αλλιώς αν κάποιος απ`τους όρους είναι "float", το αποτέλεσμα είναι "float"
Αλλιώς είναι "int", "unsigned int", "long", "unsigned long" με αυτή τη σειρά προτεραιότητας, αναλόγως το μέγεθος του αριθμού.
Στο παρακάτω παράδειγμα το πρόγραμμα ζητάει την ακτίνα ενός κύκλου και εκτυπώνει το εμβαδόν του.
- Κώδικας:
#include <stdio.h>
int main(void)
{
float radius;
double area;
printf("Give the radius of the circle: ");
scanf("%f", &radius);
area = 3.14*radius*radius;
printf("The circle's area is %f\n", area);
/* Αγνοήστε την παρακάτω γραμμή, προστέθηκε ώστε να μην είναι ελλιπές το παράδειγμα, θα αποκτήσει νόημα σε επόμενα άρθρα... */
while (getchar() != '\n');
getchar();
return 0;
}
Η C χρησιμοποιεί επίσης μερικούς ίσως άγνωστους τελεστές για αύξηση κατά ένα( ++ ), μείωση κατά ένα( -- ). Μπορούν να εκτελούνται μόνο σε μεταβλητές. Ο καθένας τους έχει δύο διαφορετικές χρήσεις. Μπορεί να είναι πριν απ`το όνομα της μεταβλητής, το οποίο την αλλάζει και συνεχίζει την εκτίμηση της υπόλοιπης έκφρασης. Μπορεί επίσης να είναι μετά απ`το όνομα της μεταβλητής, που σημαίνει ότι πρώτα θα γίνει η εκτίμηση της υπόλοιπης έκφρασης και μετά θα αλλάξει η τιμή της μεταβλητής. Για παράδειγμα:
"(x++)*2" σημαίνει "x*2" & μετά "x = x + 1"
"(++x)*2" σημαίνει "x = x + 1" & μετά "x*2"
Επίσης, η C περιλαμβάνει τελεστές οι οποίοι ταυτόχρονα κάνουν πράξεις και αναθέτουν τιμές, για χάρη συντομίας. Πχ += , -= , *= , /= , κτλ. Σημειώστε ότι πχ "x += 1" είναι το ίδιο με "x = x + 1".
Τέλος, να θυμάστε ότι όταν διαιρούμε 2 ακεραίους στη C, κάνουμε ακέραια διαίρεση, δηλαδή το κλασματικό κομμάτι αγνοείται παντελώς. Όπως πάντα, πειραματιστείτε με το κώδικα μέχρι να καταλάβετε πώς λειτουργεί. Μη διστάσετε να αλλάξετε τις πράξεις, ή ακόμα και να το κάνετε να βρίσκει κάτι τελείως διαφορετικό. Η λέξη κλειδί είναι εξάσκηση.
Παρόμοια θέματα
» Άρθρο #11: Λογικοί ανά-bit τελεστές / Bitwise operators - Τελεστές ολίσθησης
» Άρθρο #4: Λογικοί τελεστές - Ροή προγράμματος
» Άρθρο #7: Πίνακες
» Άρθρο #9: Συμβολοσειρές
» Άρθρο #1: Γνωριμία με τη C
» Άρθρο #4: Λογικοί τελεστές - Ροή προγράμματος
» Άρθρο #7: Πίνακες
» Άρθρο #9: Συμβολοσειρές
» Άρθρο #1: Γνωριμία με τη C
C++ Programmer's Corner :: Προγραμματισμός :: C :: Άρθρα
Σελίδα 1 από 1
Δικαιώματα σας στην κατηγορία αυτή
Δεν μπορείτε να απαντήσετε στα Θέματα αυτής της Δ.Συζήτησης
|
|