Άρθρο #3: Αριθμητικοί τελεστές

Επισκόπηση προηγούμενης Θ.Ενότητας Επισκόπηση επόμενης Θ.Ενότητας Πήγαινε κάτω

Άρθρο #3: Αριθμητικοί τελεστές

Δημοσίευση από GReaper Την / Το Τρι Μαϊος 08, 2012 12:21 pm

Οι συνήθεις αριθμητικοί τελεστές όπως της πρόσθεσης και του πολλαπλασιασμού δε μπορούσαν να λείπουν από οποιαδήποτε γλώσσα προγραμματισμού. Πρόσθεση( + ), Αφαίρεση( - ), Πολλαπλασιασμός( * ), Διαίρεση( / ), Υπόλοιπο( % ). Όπως και στα μαθηματικά, ο πολλαπλασιασμός και η διαίρεση ( άρα και το υπόλοιπο ) προηγούνται της πρόσθεσης και της αφαίρεσης. Βεβαίως, όλες αυτές η πράξεις θα ήταν άχρηστες αν δεν υπήρχε ένας τελεστής ο οποίος αποθηκεύει το αποτέλεσμα, και αυτός είναι η ανάθεση τιμής( = ). Επίσης, όπως και στα μαθηματικά, οπουδήποτε μπορούν να χρησιμοποιηθούν παρενθέσεις για να υποδείξουν μια συγκεκριμένη πορεία πράξεων.
Κάτι σημαντικό για τις αριθμητικές πράξεις στη C είναι να ξέρουμε τι τύπου είναι το αποτέλεσμα. Η απάντηση είναι:
Αν κάποιος απ`τους όρους είναι "long double", το αποτέλεσμα είναι "long double"
Αλλιώς αν κάποιος απ`τους όρους είναι "double", το αποτέλεσμα είναι "double"
Αλλιώς αν κάποιος απ`τους όρους είναι "float", το αποτέλεσμα είναι "float"
Αλλιώς είναι "int", "unsigned int", "long", "unsigned long" με αυτή τη σειρά προτεραιότητας, αναλόγως το μέγεθος του αριθμού.
Ας σημειωθεί ότι τελεστής ύψωσης σε δύναμη δεν υπάρχει στη C . Ο συνήθης τελεστής που χρησιμοποιείται( ^ ) σημαίνει κάτι τελείως διαφορετικό που θα αναφερθεί σε επόμενο άρθρο. Υπάρχουν συναρτήσεις της standard βιβλιοθήκης για δυνάμεις, και αυτές θα αναφερθούν σε άλλο άρθρο.

Στο παρακάτω παράδειγμα το πρόγραμμα ζητάει την ακτίνα ενός κύκλου και εκτυπώνει το εμβαδόν του.
Κώδικας:
#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, κάνουμε ακέραια διαίρεση, δηλαδή το κλασματικό κομμάτι αγνοείται παντελώς. Όπως πάντα, πειραματιστείτε με το κώδικα μέχρι να καταλάβετε πώς λειτουργεί. Μη διστάσετε να αλλάξετε τις πράξεις, ή ακόμα και να το κάνετε να βρίσκει κάτι τελείως διαφορετικό. Η λέξη κλειδί είναι εξάσκηση.
avatar
GReaper
Admin

Αριθμός μηνυμάτων : 16
Ημερομηνία εγγραφής : 01/10/2011
Ηλικία : 25
Τόπος : Σπάρτη

http://procorn.forumgreek.com

Επιστροφή στην κορυφή Πήγαινε κάτω

Επισκόπηση προηγούμενης Θ.Ενότητας Επισκόπηση επόμενης Θ.Ενότητας Επιστροφή στην κορυφή


 
Δικαιώματα σας στην κατηγορία αυτή
Δεν μπορείτε να απαντήσετε στα Θέματα αυτής της Δ.Συζήτησης