מבוא לעולם התכנות - בואו נאפה עוגה

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

  • ¼ כוס שמן
  • ½ כוס קקאו
  • ¼ כוס סוכר
  • 1. בוחשים היטב את כל החומרים
  • 2. מעבירים לתבנית ומכניסים לתנור בחום של 150 מעלות
  • .......

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

 

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

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

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

למחשבים שפה משלהם

אם תסתכלו על המפסקים השונים שיש לכם בבית תראו שבחלקם יש סימון על כל צד של המפסק, בצד אחד סימן 'O' ובצד השני סימן 'I' - הסימונים הללו הם בעצם שתי הספרות '0' ו-'1', '0' מסמל כבוי ו-'1' מסמל דולק, ממש כמו להדליק ולכבות את האור בחדר השינה שלכם.

הספרות האלו בונות שפה שנקראת שפה בינארית -לא להיבהל, הפירוש המילולי של בינארי זה פשוט "מכיל 2 דברים", לדוגמא אם עשית מבחן והציונים הם או עובר או לא עובר אז ציוני המבחן הם ביניאריים. בשפה שלנו יש 10 ספרות להשתמש בהם (0-9) ובשפה הבינארית רק 2 (0,1), למרות זאת עם השפה הזו אפשר לבטא איזה מספר שיעלה על דעתכם ואפילו לרשום קוד ! (וזה כבר נושא למאמר אחר)

כמו שבטח ניחשתם זוהי השפה ש"המוח" של המחשב (המעבד) מכיר ויודע, כל עוד תדברו איתו בשפה הזו הוא יוכל לבצע את הפעולות שתדרשו ממנו, אבל לא לדאוג אנחנו לא הולכים לתכנת בשפת מכונה (השפה הבינארית), יש תוכנת מחשב אשר נקראת "Compiler" (בעברית - "מהדר") ותפקידה הוא לתרגם את מה שאנחנו רושמים במחשב בשפת הקוד באנגלית לשפה הבינארית כך שהמעבד יוכל להבין מה אנחנו בעצם רוצים ממנו, אפשר לחשוב על זה כמו Google Translate ביניכם אל בין המחשב שלכם.

ההבדל בין אדם למכונה

נחזור אל העוגה הטעימה שלנו - עירבבתם את כל המרכיבים והעברתם לתבנית אל תוך התנור בחום של 150 מעלות בדיוק, בהוראות המתכון רשום לאפות במשך 30 דקות אך לאחר 20 דקות אתם מריחים ריח מוזר ורואים עשן יוצא מדלת התנור, הדבר הראשון שתעשו ככל הנראה זה לרוץ אל התנור, לכבות אותו ולהוציא את העוגה, אבל זה לא היה רשום בהוראות ההכנה אז איך ידעתם מה לעשות?

זוהי דוגמא קצת טיפשית אבל מתארת בדיוק את ההבדל ביננו לבין המחשב, כל מה שהמחשב יודע לעשות זה לבצע פעולות - הוא אינו חושב בעצמו, אם לא תגדירו לו מה לעשות בכל שלב ובכל מקרה קצה אז הוא פשוט לא יבצע שום פעולה או שיבצע פעולה כלשהי אבל לא את הפעולה הרצויה, ובמקרה של העוגה שלנו למרות שיצא עשן המחשב יחכה את כל ה30 דקות שנדרשו ממנו ובסוף נקבל עוגה שרופה ולא כל כך טעימה…

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

לדבר בשפת המחשב

עכשיו נראה איך אנחנו מיישמים את כל מה שדיברנו עליו (הדוגמאות ניתנות בשפת C):

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

תדפיס - "Hello World" ;

הפקודה של הדפסה בשפת C נקראת Printf, עכשיו נשלב בין השתיים ונקבל שורת קוד אמיתית -

printf(“Hello World”);

הפקודת הדפסה מקבלת קלט של טקסט בתוך הסוגריים ומדפיסה אותו.

ומה אומר סימן הנקודה פסיק (' ; ') בסוף המשפט? הוא מסמל למחשב שזהו סוף הפקודה.

לדוגמא - אם אכתוב הוראות הכנה לעוגה בסדר הבא:

1.תדליק את התנור ;
2.תערבב את הרכיבים ;

אז תדליק זו פקודה מספר 1 ותערבב זו פקודה מספר 2, המחשב יודע לקבל פקודה אחת בכל פעם ולכן אם נרשום הכל בשורה אחת נקבל:

1.תדליק את התנור ואת הרכיבים ;

לא הגיוני כל כך נכון? אז הבנו שסימן הנקודה פסיק (' ; ') עוזר למחשב להבין מתי עוברים לפקודה הבא.

גם למחשב יש זיכרון

דבר אחרון לפני סוף המאמר נדבר על זיכרון המחשב, אם לדוגמא אני רוצה להגיד למחשב - תזכור שלפי המתכון כל עוגה צריכה 2 כוסות מים ולאחר מכן שאחליט כמה עוגות אני רוצה לאכול היום אני רוצה שתגיד לי כמה כוסות מים אני צריך, אז אנחנו בעצם רוצים לשמור לזיכרון המחשב את המספר 2, זיכרון המחשב בנוי ממילארדי תאים ובכל תא אנחנו יכולים להכניס ערך מסויים ולשמור אותו שם, אבל כשנרצה לדעת שוב מה הערך ששמרנו איך נדע איפה שמרנו אותו? קצת קשה להבדיל בין אינסוף תאי זיכרון וירטואליים ולזכור בדיוק איפה הכנסנו את הערך ולכן אנחנו ניתן שם וסוג לתא הזיכרון ! (סוג מדבר על – האם זה מספר שלם? מספר עשרוני? תו במקלדת?)

לדוגמא:

1.שמור את הערך המספרי השלם 2 בתוך תא בשם water ;

אז להגיד למחשב שמור זה פשוט להשתמש בסימן '=' וערך מספרי שלם (ללא נקודה עשרונית) מסומן במילה 'int' בשפת הקוד, עכשיו בוא נמיר את זה לשורת קוד:

int water = 2;

ואם עכשיו אני רוצה לדעת כמה כוסות מים אני צריך בשביל 3 עוגות?

פשוט מאוד !

1.שמור את הערך המספרי השלם 2 בתוך תא בשם water
2.שמור את הערך המספרי השלם 3 בתוך תא בשם cakes
3.בצע חישוב של ערך התא water כפול ערך התא cakes והכנס את הערך המספרי השלם לתוך תא בשם total

ביצוע חישוב של כפל הוא הסימן הבא ' * ', נמיר לשורות קוד ונקבל:

int water = 2;
int cakes = 3;
int total = cakes * water;

כעת אם נפנה אל המחשב ונשאל אותו מה הערך שקיים בתא הזיכרון מסוג ערך מספרי שלם בשם total הוא יודיע לנו שהערך בפנים הוא '6'.

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