חומרה, תוכנה והשיטה הבינארית#

אג’נדה#

  • חומרה, תכנה, שפת מכונה ושפת מחשב

  • ייצוג מספרים בשפת מחשב

  • מהו אלגוריתם?

  • שפת התכנות פייתון

  • פעולות בסיסיות בפייתון

בסרטון הבא נלמד (בקצרה) מה הקשר בין מחשב לבין תכנות.

מושגים חשובים שלמדנו:#

במהלך הלימוד הכרנו כמה מושגים חשובים. חומרה היא הרכיבים הפיזיים של המחשב, כמו המעבד והזיכרון, שמאפשרים לו לפעול. על גבי רכיבים אלו פועלת התוכנה, שהיא אוסף התכניות ש”רצות” או “כתובות” על גבי החומרה. התוכנה מקודדת בשפת מכונה, כלומר כרצף של ביטים (bits) - יחידות מידע בינאריות שיכולות לקבל את הערך 0 או 1.

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

מעניין לדעת!

בוויקיפדיה רשומות מעל 500 שפות תכנות שונות!

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

ספירה בינארית#

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

שפות תכנות כגשר לשפת מכונה#

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

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

תכנית מחשב#

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

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

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

מימוש פתרון בעיות (או אלגוריתמים) באמצעות תכנית מחשב#

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

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

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