אלגוריתם
המושג אלגוריתם הוא אולי אחד המושגים הכי חשובים בתכנות והוא ילווה אותנו כל הזמן.
אז לפני שאנחנו מתחילים בכלל ללמוד מה זה קוד ומה זה שפת תכנות, צריך להבין את המושג אלגוריתם.
אבל אל תלחצו, אלגוריתם זה לא כזה מסובך להבין, אולי אפילו די פשוט.
סדרה של פעולות
אז נתחיל,
המחשב שלנו הוא ״טיפש״.
למה כוונתנו?
נשתמש בדוגמא:
אם תקומו בבוקר ותבקשו ממי שנמצא לידכם שיכין לכם לחם עם שוקולד, הוא ככל הנראה יחזור אליכם אחרי 5 דק׳ עם הסנדוויץ׳ מוכן.
לעומת זאת, אם יהיה לכם רובוט גאון בבית ותבקשו ממנו את אותה הבקשה, יש מצב שהוא בכלל לא ידע איפה נמצא הלחם. או אולי הוא ידע איפה כל הדברים אבל מה שהוא יעשה זה לפורר את הלחם, לערבב עם שוקולד ולשים בתנור לאפייה. ואז יחזיר לכם ׳לחם עם שוקולד׳.
והסיבה היא שהמחשב יודע לעשות רק מה שאומרים לו לעשות. וצריך לרדת איתו לפרטי פרטים כאשר נותנים לו משימה.
לכן כאשר מבקשים מהמחשב לעשות פעולה מסויימת, צריך לתת לו בעצם סדרה של פעולות, שבסוף הפעולות תתקיים הפעולה הרצויה.
נמשיך בדוגמא של הלחם עם השוקולד וננסה הפעם לתת למחשב את סדרת הפעולות הבאה עבור הכנת לחם עם שוקולד:
אלגוריתם להכנת לחם עם שוקולד
- לך למזווה ותוציא את הלחם והשוקולד.
- תוציא 2 פרוסות לחם מהשקית ותניח אותם על השולחן
- תפתח את קופסת השוקולד.
- תוציא שוקולד ותמרח על 2 הפרוסות.
- תניח את הפרוסות אחת על השניה.
- שים בתוך שקית אוכל.
האם נקבל בסוף הפעולות לחם עם שוקולד? מה הבעיה כאן? קחו דקה או שתיים לחשוב.
(זכרו שהמחשב מבצע בדיוק את מה שמבקשים ממנו) הבעיה היא שלא נתנו הוראות חד משמעיות.
לדוגמא בסעיף 4 כתוב ״תוציא שוקולד ותמרח על 2 הפרוסות״. איך להוציא שוקולד? יכול להיות שהוא יוציא עם היד שלו. איך למרוח על 2 הפרוסות? יכול להיות שהוא ימרח על 2 הצדדים של כל פרוסה.
כלומר אנו לתת למחשב הוראות מדויקות, אחרת הוא פשוט לא ידע מה לעשות.
אז לבסוף נאמר את המשפט הבא:
מה זה אלגוריתם?
״סדרה של פעולות חד-משמעיות, שביצוע כל הפעולות מביא לידי תוצאה הרצויה״.
משימה:
כתבו אלגוריתם, המבצע את הפעולה הבא:
איך ללכת מהבית שלכם לסופר הקרוב, לקנות שם את האוכל האהוב עליכם, ולהכין אותו.
הערה חשובה:
בשנים האחרונות העולם עובר מהפכה שמאפשרת לנו ללמד את המחשב לדמות את יכולת החשיבה האנושית, באמצעות טכנולוגיות של בינה מלאכותית.
כבר היום אתם משתמשים בתוכנות שמשתמשות ביכולת של בינה מלאכותית במגוון תוכנות כמו waze, google ועוד..
יכול להיות שעוד מספר שנים כבר נוכל לדבר עם המחשב בצורה טבעית בלי להגדיר לו כל דבר.. נוכל להגיד לרובוט ״תכין לי סנדוויץ עם שוקולד״ והוא ידע מה צריך לעשות גם אם לא הסברתי לו מפורשות!