לדלג לתוכן

תכנות וזיהוי/איתחול

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי

האתחולים בתוכנה

[עריכה]

אתחול הוא נתינת ערכים למשתנים בתחילת פעולת מערכת - ערכי ברירת מחדל או ערכים אחרים,

אתחול בתוכנה הוא נתינת ערך התחלתי (אנגלית initialization ) כמו שמוגדר בויקיספר במדיך לשפת C,

וגם בערך בויקיפדיה של אתחול אמצעי לאחסון נתונים,

ולא רק כמו ההגדרה המצומצמת בויקיפדיה  : הפעלת מחשב כבוי (אנגלית booting ) הוא איתחול.

כאן בתוכנה האתחול בא לידי ביטוי ב:

  1. העתקת כמה קבצים בסיסיים למחשב כלשהוא (בדרך כלל בעזרת דיסק התקנה) כדי להפעיל את התוכנה בפעם הראשונה.
  2. מילוי מערכים רב וחד ממדיים, באותו מספר לדוגמה (3-, 2- או 1-)כדי שאחרי הצבת ערכים במערך נדע היכן לא הוצב ערך.
  3. בקשת התוכנה מהמשתמש לתת ערכים התחלתיים כדי שהתוכנה תוכל לבנות בעזרתם דיון.
  4. איפוס משתנים (בעיקר על ידי הפונקציה Memset) כדי שלא יכילו זבל - ערכים שיכולים לגרום לטעות.

דיסק התקנה

[עריכה]
דיסק התקנה

במהדר של devcpp של שנת 98 הייתה אפשרות ליצור מהתוכנה תוכנית התקנה בעזרת שילוב של devcpp ותוכנת instalshield.

תוכנית ההתקנה בדרך כלל היא קובץ בינארי ( קובץ ריצה עם סיומת EXE) המכיל קבצי תיקייה מסוימת . כאשר מפעילים את הקובץ

הוא יוצר במחשב אחֵר תיקייה חדשה עם הקבצים מהמחשב הראשון. בגרסאות החדשות אין אפשרות ליצור גרסת התקנה.

בדרך כלל טוענים את תוכנת ההתקנה על דיסק , כך שיוכלו מכונן הדיסקטים של מחשבים שונים להפעיל את תוכנת ההתקנה,

לדיסק עם תוכנת ההתקנה קוראים: "דיסק התקנה".

לתוכנת התקנה הנוצרת על ידי תוכנת instalshield יש יתרון ברור על העתקת קבצים רגילה מדיסק למחשב: מערכת ההגנה של המחשב

הנמצאת במערכת ההפעלה חלונות, חוסמת הרבה סוגי קבצים, אי אפשר להעתיק אותם למחשב בהעתקה רגילה , ואילו instalshield עוקפת

את ההגנה הזאת.

איך המשתמש מאתחל את התוכנה

[עריכה]

בפעם הראשונה שהמשתמש מקבל את התוכנה הוא יכול לבנות בעצמו את בסיס הנתונים של התמונות

המשמש לזיהוי על ידי השוואה . וזה רצוי כי אם מעתיקים תמונת מפת סיביות ממחשב למחשב היא לפעמים מוצגת

בגודל אחר במחשב השני.

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

יש אפשרות להתקין גם בסיס נתונים של תמונות שהוא לא בנוי על תמונת מפת סיביות רגילה שגודלה תלוי במחשב,

אלא תמונת מפת סיביות מסוג DIB או כל סוג תמונה אחר, שהמשתמש יוכל במחשבו להפוך אותה לתמונת סיביות רגילה

לדוגמה : בעזרת הצייר החלוני.

השלבים באתחול הכולל יצירת בסיס נתונים חדש

[עריכה]
  1. הקלדת מספר העצמים שיוכנסו בהמשך לבסיס הנתונים, כל שורה עצם אחר ( בחלון הפקדים: עצמים←כמות ).
  2. יצירת תמונה המכילה מלבנים לבנים על רקע שחור - כל מלבן לבן יכיל בהמשך מופע של אות ( בתפריט הראשי: כלים←תבנית חדשה).
  3. שינוי שם תמונת המלבנים ( mold.bmp ) לקובץ המשמש בסיס נתונים ( Rects.bmp) בעזרת תפריט חלונות .
  4. הוספת מופעי העצמים לבסיס הנתונים ( בחלון הפקדים: הוספת מופע←אחד או הוספת מופע←שורה ).
  5. הפעלת עדכון( בחלון הפקדים: עצמים←עדכן ) - המחשב יוצר את קבצי הטקסט המכילים את התכונות במבדילות בין העצמים.

הסברים לשלבים

[עריכה]

הקלדת מספר העצמים

[עריכה]

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

/* Atdialog.cpp פונקציה לכלכול התפריט בקובץ */
LRESULT CALLBACK WndProcInD(HWND hwnd, UINT Message,
                WPARAM wParam, LPARAM lParam)
{
.
.
.
NPics=GetDlgItemInt( /* בדוק את מספר העצמים*/
       g_hToolbar,IDC_OBJECTS_NUM,NULL,FALSE);
          MainInitInL(GetDC(hwnd),NPics);
.
.
.
}

/* Atlearn.cpp  מספר האוביקטים שנבחרו הוא משתנה מוכר לכל הפונקציות בקובץ  */
int NumObjects;

int MainInitInL(HDC hdc,int Objects_Num)
{
. 
.
. 

 NumObjects=Objects_Num;
.
.
.
}

void SumAllAttsInL()
{
 int LineAtt[NumObjects];
.
.
.
}

יוצרים קובץ, למה לשנות את שמו ?

[עריכה]

לא יוצרים מהתחלה קובץ בשם : Rects.bmp המכיל מלבנים שחורים על רקע לבן,

אלא קובץ בשם אחר : mold.bmp כדי שהמשתמש לא יהרוס בטעות קובץ בסיס נתונים ישן של תמונות.

השלבים ביצירת מופעי עצמים

[עריכה]
  1. המשתמש מסיים ליצור תמונה של עצם בחלון הגרפי. כמו בפרק העוסק בקלט תמונות.
  2. הוא מסמן עם העכבר לפחות שתי נקודות של נקודות הקיצון של המלבן הקובע את גודל התמונה .
  3. הקלדת פקודה "סיים לשרטט" מחלון הפקדים.
  4. לבסוף הוא מוסיף את התמונה הנבחרת לבסיס הנתונים.

הסיבה שהמשתמש יכול להוסיף שורת מופעים של תמונה אחת

[עריכה]
הוספת מופעי העצם

לכתחילה היה נראה שצריך להכריח את המשתמש מהתחלה להוסיף 10 מופעים שונים של כל עצם .

מפני שאם הוא יוסיף שורה שלמה של אותה תמונה, המחשב יכול ללמוד ממנה תכונות מטעות לזיהוי העצם.

אבל מהניסיון נראה שזו פעולה מייאשת כי בשפה יש עשרות אותיות.