פירוט שפת תכנות - חיבור, חיסור, כפל וחילוק

פורום זה מכיל תרגום לעברית של מדריכים, דוגמאות קוד, פירוט שפת תכנות לכרטיסי Arduino וחומרים לימודיים אחרים מהאתר arduino.cc

פירוט שפת תכנות - חיבור, חיסור, כפל וחילוק

הודעהעל ידי Alex » ב' ספטמבר 15, 2014 11:07 am

אופרטורים של חיבור, חיסור כפל וחילוק מחזירים את התוצאה האריתמטית של הפעולה בין שני אופרנדים (operands). הפעולה מתבצעת תוך כדי שימוש בסוג האופרנדים, כך למשל 9 לחלק ל-4 ייתן תוצאה של 2 מכיוון ש-9 ו-4 הם מספרים שלמים (integers). זה גם אומר שתוצאה גדולה מדי לסוג נתון כלשהו יכולה לגלוש (overflow) ולתת תוצאה לא נכונה (לדוגמה, הוספה של 1 למספר המקסימלי מסוג int שהוא 32,767 ייתן תוצאה שלילית של 32,768-). אם האופרנדים הם מסוג שונה, אז הסוג "הגדול" יותר ישמש לייצוג התוצאה. אם אחד המספרים (האופרנדים) הוא מסוג float או double, יעשה שימוש במתמטיקה עם נקודה צפה כדיי לחשב את התוצאה.

דוגמה
קוד: בחר הכל
y = y + 3;
x = x - 7;
i = j * 6;
r = r / 5;


תחביר
קוד: בחר הכל
result = value1 + value2;
result = value1 - value2;
result = value1 * value2;
result = value1 / value2;

פרמטרים בתחביר:
value1 ו-value2 - כל משתנה או קבוע

טיפים
  • דעו שקבועים של מספרים שלמים הופכים לסוג integer כברירת מחדל, כך שפעולות על מספרים קבועים יכולות לגלוש מעבר לערך שה-integer יכול לשמור (למשל תוצאה של 60*1000 תהיה מספר שלילי)
  • השתמשו בסוגי משתנים שיכולים להכיל את המספרים הגדולים ביותר בחישובים שאתם מבצעים
  • דעו מתי המשתנים יכולים להתגלגל למספרים שליליים ומה קורה כשהמספר השלילי הופך לחיובי (למשל 0 פחות 1 או 0 פחות 32768-)
  • לחישובים הדורשים שברים השתמשו במשתנים מסוג float או double, אבל תהיו מודעים לכמות זכרון משתנים אלה צורכים ואטיות בחישובים של סוגים אלה
  • השתמשו ב-casting כדי לתרגם סוג משתנה אחד לשני, למשל דוגמה הבאה מציגה תרגום של ערך המשתנה מסוג float ל-integer
קוד: בחר הכל
(int)myFloat



ראו גם:
פירוט שפת תכנות לסביבת Arduino


עמוד זה הוא תרגום של Arithmetic לפי רישיון Creative Commons Attribution-ShareAlike 3.0.
www.4project.co.il
כל הרכיבים לפרוייקט שלכם
סמל אישי של המשתמש
Alex
מנהל האתר
 
הודעות: 7459
הצטרף: ה' ינואר 28, 2010 8:27 pm

חזור אל תרגום מדריכים מהאתר arduino.cc

Jump box

מי מחובר

משתמשים הגולשים בפורום זה: CCBot [Bot]