הסבר חשוב למי שרוצה ללמוד לתכנת (ולמתכנתים)
-
הפרולוג לתכנות
הסבר שלדתי חשוב לכל מי שלמד תיכנות בעבר (אך לא למד לעומק) ולכל מי שרוצה ללמוד..
הפרולוג לפרולוג...
קודם כל, הדרך בה אנו סופרים היא מ-1 עד 10.
הסיבה לכך היא שיש לנו 10 מספרים במערכת המספרית שלנו.
זה נקרא בסיס 10, למחשבים אין בסיס 10, יש להם רק בסיס 2.מה זה אומר?
יש להם רק שני מספרים במערכת המספרית שלהם, 0 ו-1.
הסיבה לכך היא שמחשבים הדרך שבה הם חוסכים נתונים, היא עם חשמל. וכאשר אתה משתמש בחשמל כדי לחסוך בנתונים, יש לך רק שני מצבים.
1.יש חשמל, 2. אין חשמל. אין יותר מזה.
ולכן, יש לך רק שני מצבים, או 0 או 1.עכשיו, הדרך שבה הם סופרים דומה למערכת המספרית שלנו.
אנחנו סופרים מ-0 עד 9, וכשאנחנו רוצים להוסיף עוד ספרה אנחנו מוסיפים 1 לצד שמאל, ואז מתחילים שוב מ-0.
אנחנו עושים את אותו הדבר עם מחשבים, זה אומר שאתה סופר 0, ואז 1, ואז 10, ואז 11, ואז 100, ואז 101, וכן הלאה (המספרים שספרתי: בסדר 0, 1, 2, 3, 4, 5).
זה חשוב להבין, שמחשבים לא באמת יודעים מה אנחנו אומרים להם.
הם מבינים רק 0 ו-1.
מערכת הספירה הזו, אני בטוח ששמעת עליה פעם, נקראת בינארית.פרולוג
מחשבים יכולים להבין רק בינארי, ולכן, כדי "לדבר איתם", טכנית היינו צריכים לכתוב הרבה אחדים ואפסים.
וזה מה שבאמת היה, פעם היית צריך לכתוב הרבה אחדים ואפסים, כדי שהמחשב יבין מה אתה אומר.
אבל אז אנשים החליטו, במקום שאני אכתוב הרבה אחדים ואפסים, תן לי לכתוב כמה מילים שמשמעותן כל האחדים והאפסים (כמו מילון שבו המילה שלך פירושה ההגדרה, שהיא ארוכה יותר מהמילה עצמה).
וכאן נכנסות לתמונה שפות התכנות.
הם בעצם כמו מילונים, שכאשר אתה כותב סוג כלשהו של קוד, זה בעצם אומר למחשב מה לעשות על ידי שהוא מתורגם לאחדים ולאפסים.
הדרך שבה זה עובד היא שיש לך מהדר (compiler), המהדר הוא מה שמתרגם לאחדים ולאפסים (טכנית, זה לא עובד בדיוק ככה. אלא, זה עובר כמה שךבים. כלומר זה מתורגם למשהו אחר, ואז בסופו של דבר זה מגיע לאחים ואפסים).
והדברים במילונים האלה נקראים ספריות.
אם אני כותב;system.out.println("Hello World")
,
אז מה שאני מתכוון הוא שאני הולך לספרייה שנקראת "system
".
בספרייה הזו, אני הולך למשהו שנקראout
.
בזה, אני הולך לקובץ שנקראprintln
.
ואז כשאני כותב()
, אני מריץ את הקוד ו"שולח" איתו את המידע Hello World.
תחשוב על זה כמו להיכנס לתיקיה שנקראת system ואז להיכנס לתיקיה אחרת שנקראת out ואז ללכת לקובץ שנקרא println שם אתה כותב את המילים hello world והקובץ הזה לוקח את המילים האלה ואומר למחשב להדפיס אותן בקונסולה.
;
פירושו לסיים את השורה הזו.
הסיבה שבגללה אתה צריך את זה היא שכפי שאמרנו, מחשב לא יכול להבין אותך, הוא יכול להבין רק אחדות ואפסים.
למשל, כשאני מדבר איתך, אתה יכול לדעת מתי אני מסיים משפט ע"י הטון שלי, אבל מחשב לא יודע מתי אני מסיים משפט, לכן אני צריך להגיד לו מתי אני מסיים משפט.
יש מהדרים שעושים זאת רק כאשר אתה לוחץ על אנטר, כאשר זו השורה הבאה, זה אומר לסיים את המשפט. אבל למשל, ב-C sharp וב-Java, אתה צריך לכתוב ; על מנת לומר למהדר מה סוף המשפט.עוד דבר חשוב
מחשבים לא יכולים להבין אותך, יש להם רק פעולות ספציפיות שהם יכולים לעשות.
והדרך שבה אתה הופך למתכנת טוב היא על ידי לימוד מהן הפעולות הללו והחשיבה לפי הפעולות הללו.
יש דרך טובה מאוד ללמוד את זה, זה נקרא פסאודוקוד, מה שבעצם אומר שלפני כתיבת הקוד האמיתי שאתה רוצה לעשות, אתה תחילה מחלק אותו לפעולות שונות בעברית.
לדוגמה, אם אני רוצה למצוא את המספר הגדול ביותר בקבוצה של מספרים, אז מה שהייתי כותב זה שאני הולך למספר הראשון, בודק איזה מספר הוא, ואז הולך למספר השני ובודק אם המספר הראשון גדול יותר מאשר המספר הזה, ואז עבור למספר השלישי ובדוק אם הוא גדול יותר מזו שלפני כן, וכן הלאה וכן הלאה.
וכך אתה מחלק את מה שאתה רוצה לעשות לפעולות קטנות ואז אתה מתרגם את הפעולות האלה לקוד.
כשיש לי בעיה קשה לפעמים אני אוהב לחשוב בסדר בלי שום קשר לתכנות איך הייתי עושה את זה אם מישהו היה מבקש ממני לעשות את זה אז אני רושם את זה בפסאודוקוד ואז אני מנסה למצוא באילו פעולות עלי להשתמש כדי לעשות זאת.
בהצלחה לכולם. -
@Ykingsmart כתב בהסבר חשוב למי שרוצה ללמוד לתכנת (ולמתכנתים):
מה שלא מובן למה את השם משתמש שלך לא קיצרת ממנו את כל האפסים
זה מבחן להבין האם למדת משהו בbinary
-
@Ykingsmart כתב בהסבר חשוב למי שרוצה ללמוד לתכנת (ולמתכנתים):
מה שלא מובן למה את השם משתמש שלך לא קיצרת ממנו את כל האפסים
-
@Ykingsmart
ראה הסבר בין ביט לבייט
@10110000 אני רואה שאין אצלך "סתם" ומנסה להבין למה בחרת ב 176 -
פוסט זה נמחק!