המדריך השלם
 

אופרנדים ואופרטורים

אופרנדים

אופרנדים הם משתנים או קבועים. בפרק הקודם דנו במשתנים, בפרק זה נעסוק גם בקבועים.

קבועים(constants) - משתנים שמאותחלים לערכים קבועים וידועים מראש שאינם משתנים במהלך ביצוע התוכנית. כל קבוע מיוחס לסוג משתנה מסוים, לדוגמא pi הוא קבוע מסוגdouble וערכו ידוע לכל (3.1415) . אם נרצה להשתמש בתוכניתנו ב- pi לא נרצה לאפשר להציב ערך אחר ל- pi (כלומר לא נאפשר לעצמנו לשנות את ערכו של pi). כדי לעשות זאת אנו מגדירים את המשתנה כקבוע.
על מנת להגדיר את המשתנה כקבוע מוסיפים את המילה השמורה const לפני ההצהרה על סוג הטיפוס.

דוגמאות:
;const double pi = 3.1415
;const int age = 65
;const long phone = 6543232
אפשר לאלץ כל קבוע להיות int, double, float וכו' על ידי הוספת סיומת מתאימה, והן:
אם נרצה שהקבוע יהיה מסוג long יש להוסיף את הסיומת L.
אם נרצה שהקבוע יהיה מסוגfloat יש להוסיף את הסיומת F.
אם נרצה שהקבוע יהיה מסוג double יש להוסיף את הסיומת D.
אם נרצה שהקבוע יהיה מסוג unsing יש להוסיף את הסיומת U.

דוגמאות:
;age = 65FL
;pi = 3.1415F
בדוגמא הראשונה המרנו את טיפוס המשתנה age מ int ל long .
בדוגמא השנייה המרנו את טיפוס המשתנה pi מ-double ל- float .

הערה: לא כל המהדרים תומכים בסיומות אלה, התמיכה היא רק במהדרים החדשים.

אפשר כמו כן גם לבצע השמה של משתנים מטיפוסים שונים אך חשוב לשים לב כשעושים זאת כי במקרים מסוימים אנו עלולים לאבד מידע. לדוגמא אם נבצע השמה של משתנה מטיפוס float ל-int נאבד את החלק הלא שלם של המספר.

אופרטורים (operators)

אופרטור השמה - מיוצג על ידי תו = כאשר ערך הביטוי מצד ימין מוצב במשתנה מצד שמאל:
;int a = 5
;int b = a
תחילה המשתנה aיקבל את הערך 5 ואח"כ המשתנה b יקבל את ערכו של משתנה a כלומר ערכו של b לאחר משפט זה יהיה 5.

אופרטורים חשבוניים - מאפשרים לבצע פעולות חשבוניות כמו חיבור, חיסור, חילוק, ומודולו (שארית):
a+b חיבור המשתנים a ו- b .
a-b חיסור המשתנה a ב- b .
a*b מכפלת המשתנים a ו- b .
a%b שארית של המשתנה a בחלוקה ב- b.

אחרי אחרי אחרי לפני לפני לפני  
c b a c b a טיפוס
3 2 5 3 2 1 a = b + c
3 2 -1 3 2 1 a = b - c
3 2 6 3 2 1 a = b * c
2 4 2 2 4 1 a = b / c
5 9 4 5 9 1 a = b % c


ניתן כמו כן לרשום מספר פעולות חשבוניות בביטוי מורכב אחד, לדוגמא:
;Price = ((old_price * 80)%100)+5
שמשמעו המחיר לאחר הנחה של 20 אחוזים ועוד תוספת של 5 שקלים (בעבור שירות).

דוגמא 1:

#include <stdio.h>

void main()
{
    int a, b, sum, diff, mult, rem, quot;

    a = 10;
    b = 8;
    sum = a + b;
    diff = a - b;
    mult = a * b;
    rem = a % b;
    quot = a / b;

    printf ("sum is: %d \n", sum);
    printf ("difference is: %d \n", diff);
    printf ("multiplication is: %d \n", mult);
    printf ("remainder is: %d \n", rem);
    printf ("quotient is: %d \n", quot);
}


אופרטור השמה עצמית - ניתן לקצר את כתיבת הפקודה כאשר מעוניינים להשתמש בערכו של המשתנה, לבצע עליו פעולה ולאחסן את התוצאה במשתנה עצמו:
נמחיש זאת על ידי דוגמא: x *= 5 שקול ל x = x*5
x /= 5 שקול ל x = x/5
x %= 5 שקול ל x = x%5
x -= 5 שקול ל x = x-5
x += 5 שקול ל x = x+5
x *= 5 שקול ל x = x*5.

יש להקפיד שלא יהיו רווחים בין האופרטור הרצוי לאופרטור ההשמה(=).

דוגמא 2:

#include <stdio.h>

void main()
{
    int a = 5;
    int b = 10;

    a += b;
    printf("The value of a is: %d\n\r", a);
    a /= b;
    printf("The value of a is: %d\n\r", a);
    a -= a;
    printf("The value of a is: %d\n\r", a);
    b *= ++a;
    printf("The value of b is: %d\n\r", b);
    b %= (a+5);
    printf("The value of b is: %d", b);
}


אופרטורי יחס

> יחס קטן (מכיוון שסדר ביצוע הפעולות הוא משמאל לימין)
< יחס גדול.
== יחס שיווין.
>= יחס גדול או שווה.
<= יחס קטן או שווה.

אופרטורים לוגיים - לערכים בוליאניים (אמת או שקר) אין בשפת c משתנה מיוחד ומשתמשים למטרה זו במשתנים שלמים כאשר ערך 1 מייצג אמת וערך 0 מייצג שקר.

&& פירושו וגם.
|| פירושו או.
!= פירושו שונה .
! פירושו לא.
כך לדוגמא:
int good_grade = (grade > 80);
אם ערכו של המשתנה grade יהיה מעל 80 אזי ערך המשתנה good_grade יהיה 1 אחרת 0.

דוגמאות:
b = 5
a = 10
(a > b) ערכו של ביטוי זה אמת.
((a-5) == b) ערכו של ביטוי זה אמת.
(!a && b) ערכו של ביטוי זה שקר.
(!a && b) ערכו של ביטוי זה אמת.

סדר קדימויות (מעדיפות עליונה לתחתונה):

++ , -- , !
* , % , /
+ , -
< , =< , => , >
== , !=
&&
||
= , =+ , =- , =/ , =*




מבחן
© איתן 2003. כל הזכויות שמורות למערכת המידע איתן.