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

העגלה ריקה

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

פירוט שפת תכנות - arrays (מערכים)

על ידי Alex » ד' אוקטובר 15, 2014 4:37 pm
מערך (array) הוא אוסף של משתנים שאפשר לגשת אליהם עם מספר מפתח (index). מערכים בשפת C, שעליה מתבוססת Arduino, יכולים להיות די מסורבלים, אבל שימוש במערכים פשוטים הוא יחסית מובן.

הגדרה של מערך (Declaring an array)
כל השיטות הבאות הן דרכים להגדרה או יצירה של מערך.
קוד: בחר הכל
  int myInts[6];
  int myPins[] = {2, 4, 8, 3, 6};
  int mySensVals[6] = {2, 4, -8, 3, 2};
  char message[6] = "hello";

אתם יכולים להגדיר מערך ללא אתחול של הערכים שלו כמו במקרה של myInts.
במקרה של myPins אנחנו מגדירים מערך ללא ציון מפורש של הגודל שלו. המהדר (compiler) סופר את מספר הערכים ומייצר את המערך בגודל המתאים.
אתם יכולים גם להגדיר את גודל המערך וגם את הערכים שימלאו אותו, כמו במקרה של mySensVals.
שימו לב כי במקרה של הגדרת מערך של תווים צריך להשאיר מקום אחד נוסף לסיומת ה-NULL.

גישה למערך
מיקום המשתנים במערך מתחילים במיקום 0, כך שאם נקח את מערך ה-mySensVals מדוגמאות הגדרות המערכים, הערך הראשון של המערך יהיה במיקום 0, לדוגמה mySensVals[0] == 2, הערך השני יהיה במיקום 1, לדוגמה mySensVals[1] == 4 וכך הלאה.
זה גם אומר שבמערך של 10 תאים, המשתנה התשיעי הוא האחרון. לדוגמה:
קוד: בחר הכל
int myArray[10]={9,3,2,4,3,2,7,8,9,11};
     // myArray[9]    contains 11
     // myArray[10]   is invalid and contains random information (other memory address)     

תא במיקום 9 מכיל ערך 11. גישה לתא מספר 10 היא לא חוקית ותכלול ערכים אקראיים (זהו איזור זכרון של משתנים אחרים).

מסיבה זו צריך להיזהר עם גישות למערכים. גישה לתאים של המערך מעבר לגודל שלה (הגודל שהגדרתם פחות אחד) תקרא את הזכרון שנועד לצרכים אחרים ולא למערך עצמו. קריאה של זכרון ממקומות כאלה כנראה שלא תגרום לנזק, חוץ מלהחזיר ערכים לא הגיוניים. כתיבה לזכרון אקראי הוא רעיון בהחלט לא טוב ויכול להוביל לתוצאות לא משמחות כמו התרסקות או פעילות לא רצויה של התוכנית. זה יכול גם להוביל לבעיות בתוכנה שיהיה קשה לאתר.
בניגוד לשפות תכנות כמו BASIC או Java, מהדר של שפת C לא בודק שהגישות למערך נעשות בגבולות המותרות של הגודל שהגדרתם למערך.

השמה של ערך בתא של מערך:
קוד: בחר הכל
mySensVals[0] = 10;


קריאה של ערך מתא של מערך:
קוד: בחר הכל
x = mySensVals[4];


מערכים ולולאות FOR:
גישות למערכים מטופלות לעתים קרובות בתוך לולאות FOR, כאשר המונה של הלולאה משמש כמספר מפתח (index) של המערך. לדוגמה, כדי להדפיס את ערכי המערך לתקשורת טורית תוכלו להשתמש בקוד הבא:
קוד: בחר הכל
int i;
for (i = 0; i < 5; i = i + 1) {
  Serial.println(myPins[i]);
}


דוגמה
לתוכנית שלמה המדגימה את השימוש במערכים, ראו דוגמה Knight Rider (קישור TODO) ממחלקת הדוגמאות.

ראו גם:
הגדרת משתנים
PROGMEM

פירוט שפת תכנות לסביבת Arduino


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