Main logo www.4project.co.il
כל הרכיבים לפרוייקט שלכם
עגלת קניות

העגלה ריקה

האם המוצר במלאי?
[X]
עמוד המוצר מציג את רמת המלאי האמיתית, הזמינה במחסנינו בישראל.
פרטים נוספים
איך מזמינים ומשלמים?
[X]
ההזמנה והתשלום מתבצעים רק דרך האתר.
איסוף או משלוח? כמה זה יעלה?
[X]
האתר מציע 5 אפשרויות משלוח וגם אפשרות לאיסוף עצמי מהמחסן.
אחרי הוספת המוצרים לעגלת הקניות, אפשר לראות בה את האפשרויות, המחירים והערכת זמני הגעת המשלוח.
המחיר יחושב לפי גודל ומשקל המוצרים שבחרת.
פרטים נוספים
מתי ההזמנה מוכנה?
[X]
אין צורך לעדכן אותנו טלפונית על ביצוע ההזמנה. אנו רואים אותה מיד ומטפלים בה במהירות.
כמה מהר? לפי הסטטיסטיקה של 3 חודשים האחרונים, הכוללים גם חגים וחופשים, הזמנות שבוצעו בשעות אלה (יום רביעי בין השעות 7 ל-8) היו מוכנות תוך שעה ו-דקה אחת.
פרטים נוספים
ייצור ושירותים
מחלקות מוצרים

פירוט שפת תכנות - הגדרת פונקציות

על ידי Alex » ד' אוגוסט 23, 2017 10:49 am
חלוקה של התוכנית לפונקציות מאפשרת למתכנת לייצר מודולים עם קטעים של קוד שמבצעים פעולות מסוימות וחוזרים לאיזור התוכנית ממנו הם "נקראו". המקרה הטיפוסי ליצירה של פונקציה הוא כשצריך לבצע את אותה הפעולה מספר רק של פעמים בתוכנית.

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

בתוכנית Arduino יש שתי פונקציות שחייבות להופיע: ()setup ו-()loop. פונקציות אחרות צריכות להיות מוגדרות מחוץ לסוגריים מסולסלים ({}) של שתי פונקציות אלה. כדוגמה, ניצור פונקציה פשוטה שמכפילה שני מספרים:
תמונה

כדי "לקרוא" לביצוע של הפונקציה הפשוטה שלנו, אנחנו מעבירים לה משתנים מהסוג שהיא מצפה לקבל:
קוד: בחר הכל
void loop(){
  int i = 2;
  int j = 3;
  int k;

  k = myMultiplyFunction(i, j); // k now contains 6
}


הפונקציה שלנו צריכה להיות מוצהרת מחוץ לפונקציות אחרות, כך ש-()myMultiplyFunction יכול להיות ממוקם לפני או אחרי הפונקציה ()loop.

כל התוכנית תראה כך:
קוד: בחר הכל
void setup(){
  Serial.begin(9600);
}

void loop() {
  int i = 2;
  int j = 3;
  int k;

  k = myMultiplyFunction(i, j); // k now contains 6
  Serial.println(k);
  delay(500);
}

int myMultiplyFunction(int x, int y){
  int result;
  result = x * y;
  return result;
}



דוגמה נוספת
פונקציה זו תקרא 5 פעמים ערך מחישן בעזרת קריאה לפונקציה ()analogRead ותחשב מומצא של הערכים. אחרי זה הפונקציה ממירה את התוצאה לתחום של 8bit (מספרים בין 0 ל-255) והופכת את מה שיצא. הפונקציה מחזירה את התוצאה ההפוכה.
קוד: בחר הכל
int ReadSens_and_Condition(){
  int i;
  int sval = 0;

  for (i = 0; i < 5; i++){
    sval = sval + analogRead(0);    // sensor on analog pin 0
  }

  sval = sval / 5;    // average
  sval = sval / 4;    // scale to 8 bits (0 - 255)
  sval = 255 - sval;  // invert output
  return sval;
}


כדי לקרוא לפונקציה אנחנו פשוט מבצעים השמה של השם שלה למשתנה:
קוד: בחר הכל
int sens;

sens = ReadSens_and_Condition();


כמו שאתם רואים, גם אם פונקציה לא מקבלת פרמטרים, עדיין צריך להצמיד לה את הסוגריים "(" ו-")" וגם ";" בסוף.


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


עמוד זה הוא תרגום של Functions לפי רישיון Creative Commons Attribution-ShareAlike 3.0.