1 00:00:00,000 --> 00:00:11,952 2 00:00:11,952 --> 00:00:13,800 >> דוד י מלאן: אז זה CS50. 3 00:00:13,800 --> 00:00:18,970 וזה היה קולטון אוגדנו של CS50, במשך יותר שממוסיקה שאתה יכול 4 00:00:18,970 --> 00:00:22,820 להוריד בsoundcloud.com/cs50. 5 00:00:22,820 --> 00:00:26,690 >> אז היום אנחנו מתמקדים כל עוד על האמנות של תכנות. 6 00:00:26,690 --> 00:00:28,980 ואנחנו לוקחים בו ירדנו את השבוע שעבר, תוך התמקדות 7 00:00:28,980 --> 00:00:31,660 על Scratch, שהיה זה שפת תכנות גרפית. 8 00:00:31,660 --> 00:00:35,490 ולקחת את הדברים לרמה נמוכה יותר, באמצעות תכנות מסורתי יותר 9 00:00:35,490 --> 00:00:38,420 אבל שפה ידועה כג לאורך הדרך, מימוש 10 00:00:38,420 --> 00:00:40,730 כי אותם הרעיונות שאנו דיבר על יום שישי האחרון 11 00:00:40,730 --> 00:00:44,390 יחזור על עצמו לא רק בזה C שפה, אך ברוב כל אחר 12 00:00:44,390 --> 00:00:46,350 שאנחנו מסתכלים על הסמסטר הזה. 13 00:00:46,350 --> 00:00:50,247 >> כך קראנו את הדבר הזה כאן מה שהפעם האחרונה? 14 00:00:50,247 --> 00:00:51,830 זה הוא נציג של הצהרה. 15 00:00:51,830 --> 00:00:53,080 כך קראנו זה הצהרה. 16 00:00:53,080 --> 00:00:54,100 וזה עושה משהו. 17 00:00:54,100 --> 00:00:56,910 זה הוראה ש מחשב או גירוד עלול לבצע. 18 00:00:56,910 --> 00:00:59,910 ומעתה, בואו גם להתחיל קורא משהו כזה פונקציה, 19 00:00:59,910 --> 00:01:02,070 מסיבות שנראים בהמשך. 20 00:01:02,070 --> 00:01:03,681 >> בינתיים, ראינו דברים כאלה. 21 00:01:03,681 --> 00:01:05,680 ואלה הם בדרך כלל הידוע בשם מה לבנות? 22 00:01:05,680 --> 00:01:06,240 >> קהל: Loop. 23 00:01:06,240 --> 00:01:06,860 >> דוד י מלאן: אז לולאה. 24 00:01:06,860 --> 00:01:07,943 אז די פשוט. 25 00:01:07,943 --> 00:01:09,470 זה ממש עושה מה שהוא אומר. 26 00:01:09,470 --> 00:01:12,210 ובגירוד, אם ברצונך לדחוס יותר חלקי הפאזל שם, 27 00:01:12,210 --> 00:01:13,950 החתיכה תגדל כדי להתאים אותו. 28 00:01:13,950 --> 00:01:16,790 ואנו רואים בC ש אנחנו יכולים לעשות את אותו הדבר. 29 00:01:16,790 --> 00:01:20,000 >> סוג נוסף של לולאה, אם כי, בגרד יכול להיות לנצח, 30 00:01:20,000 --> 00:01:21,820 או שיש כל מספר גישות אחרות. 31 00:01:21,820 --> 00:01:24,150 אבל בואו ניקח יותר מבט generalist, עם פנים 32 00:01:24,150 --> 00:01:27,402 שסביר להניח די מוכר, בלולאות באופן כללי יותר. 33 00:01:27,402 --> 00:01:29,110 מארק צוקרברג: אחת דבר שמחשבים 34 00:01:29,110 --> 00:01:31,860 הם באמת טובים הוא חוזר פקודות. 35 00:01:31,860 --> 00:01:33,910 כאדם, היית מקבל ממש משועמם אם אתה 36 00:01:33,910 --> 00:01:36,730 הייתי צריך לעשות את אותו הדבר הרבה פעמים ברציפות. 37 00:01:36,730 --> 00:01:40,530 אבל מחשב יכול לעשות את אותו הדבר מיליון או אפילו מיליארדים של פעמים, 38 00:01:40,530 --> 00:01:43,290 ולא להשתעמם, ולהיות מסוגלים לבצע את זה ממש טוב. 39 00:01:43,290 --> 00:01:45,650 >> כך למשל, אם אני רציתי לאחל לכולם 40 00:01:45,650 --> 00:01:48,840 בפייסבוק יום הולדת שמחה על ידי שליחתם בדוא"ל, 41 00:01:48,840 --> 00:01:51,550 זה עלול לקחת לי יותר מ המאה לכתוב בפועל 42 00:01:51,550 --> 00:01:53,000 כל אותם מיילים לכולם. 43 00:01:53,000 --> 00:01:57,780 אבל עם רק כמה שורות של קוד, שאני יכול יש לי מערכת לשלוח דוא"ל לכולם 44 00:01:57,780 --> 00:01:59,930 בפייסבוק שביקש שלהם יום הולדת שמחה. 45 00:01:59,930 --> 00:02:02,730 אז זה מה שהם לולאות ולמה הם יקרים ומשהו 46 00:02:02,730 --> 00:02:04,740 שמחשבים יכולים לעשות טוב מאוד. 47 00:02:04,740 --> 00:02:05,630 >> דוד י מלאן: אז אם אתה כבר הנמען 48 00:02:05,630 --> 00:02:07,820 של חלק מCS50 של ו החלל של Dropbox של מנוח, 49 00:02:07,820 --> 00:02:10,590 זה בעצם בדיוק מה שאנחנו לעשות, תוך שימוש בקוד ממש ככה. 50 00:02:10,590 --> 00:02:12,600 בעצם יש לנו גדול גיליון אלקטרוני שאליה 51 00:02:12,600 --> 00:02:15,016 אנשים כבר הזנה שלהם שמות וכתובות דואר אלקטרוני. 52 00:02:15,016 --> 00:02:18,160 וכתבנו כזית של קוד ש יכול לחזר על כתובות אלה 53 00:02:18,160 --> 00:02:21,860 ולירוק את כתובות ייחודיות ב למקרה שמישהו הגיש מספר רב של פעמים. 54 00:02:21,860 --> 00:02:25,120 ולאחר מכן, אנו שולחים אוטומטי דואר אלקטרוני מבוט של CS50, 55 00:02:25,120 --> 00:02:27,190 כולל קוד קופון. 56 00:02:27,190 --> 00:02:29,290 >> עכשיו אנחנו גם הסתכלנו זה לבנות בפעם האחרונה. 57 00:02:29,290 --> 00:02:33,100 וזה בפרט דוגמא למה? 58 00:02:33,100 --> 00:02:35,050 אז, כן, ביטוי בוליאני. 59 00:02:35,050 --> 00:02:37,050 והצורה נועדה כמו גם כדי ללכוד את זה. 60 00:02:37,050 --> 00:02:39,966 כזה כל השאלות של יוצר אמת או שקר בScratch 61 00:02:39,966 --> 00:02:41,590 ייראה קצת משהו כזה. 62 00:02:41,590 --> 00:02:43,200 ואנחנו קוראים לזה ביטוי בוליאני. 63 00:02:43,200 --> 00:02:46,170 זה אכן אמת או שקר, כן או לא. 64 00:02:46,170 --> 00:02:49,150 זוהי דרך של תשובה לשאלה. 65 00:02:49,150 --> 00:02:52,420 >> ובינתיים אתה יכול להשתמש בוליאנית אלה ביטויים בתוך מבנים 66 00:02:52,420 --> 00:02:54,720 כמו אלה, ש כמובן הם תנאים 67 00:02:54,720 --> 00:02:57,259 או סניפים, פתגמי מזלגות בכביש. 68 00:02:57,259 --> 00:02:59,550 והם יכולים להסתכל לא רק כמו זה, אבל הם גם יכולים 69 00:02:59,550 --> 00:03:02,080 קשר elses איתם. 70 00:03:02,080 --> 00:03:05,820 ואתה בעצם יכול להיות שלוש בדרך מזלג בכביש או מזלג ארבע דרך 71 00:03:05,820 --> 00:03:08,340 בכביש, פשוט על ידי קינון הדברים האלה, 72 00:03:08,340 --> 00:03:10,510 כפי שתראה בScratch אם אתה לא כבר יש. 73 00:03:10,510 --> 00:03:13,550 וכמו שאתה יכול לעשות, כמו גם בC. 74 00:03:13,550 --> 00:03:16,810 >> בואו ניקח generalist אחר מסתכל alumnist, כמו גם, ש 75 00:03:16,810 --> 00:03:21,490 אולי להציג גישה שונה לדברים אלה נקראים תנאים. 76 00:03:21,490 --> 00:03:24,060 >> ביל גייטס: אנשים עושים החלטות בכל יום. 77 00:03:24,060 --> 00:03:27,530 לדוגמא, לפני שאתה יוצא החוצה אתה יש לי סוג של אמירה, אם כי אומרת, 78 00:03:27,530 --> 00:03:31,480 אם יורד גשם אז אני צריך לקחת את המעיל שלי. 79 00:03:31,480 --> 00:03:36,820 ומחשבים הם מדהימים ברגע שאתה להחליט אלו סוגים של הצהרות, 80 00:03:36,820 --> 00:03:42,280 שהם מהימן יכולים לבצע אלה דברים במהירות שלא תיאמן. 81 00:03:42,280 --> 00:03:48,240 וכך תכנית מחשב באמת הוא קצת מתמטיקה וקצת 82 00:03:48,240 --> 00:03:53,050 אם דוחות שבי ההחלטה מקבלת עשתה. 83 00:03:53,050 --> 00:03:55,020 >> דוד י מלאן: אז כמו ש אולי אתה יודע, זה היה 84 00:03:55,020 --> 00:03:57,880 אנשים כמו ביל גייטס, פול אלן, ואחרים 85 00:03:57,880 --> 00:04:00,240 כי באמת בבעיטה מה שנקרא מחשב אישי 86 00:04:00,240 --> 00:04:01,990 מהפכה לפני כמה שנים. 87 00:04:01,990 --> 00:04:04,140 חשבתי, לפני שאנחנו צוללים לכמה administrivia, 88 00:04:04,140 --> 00:04:09,920 היינו מתייחס לסיפור מאלבוקרקי, מוזיאון ניו מקסיקו להיסטוריה של הטבע 89 00:04:09,920 --> 00:04:13,650 ומדע שבו חלק מביל גייטס " והסיפורים המוקדמים של פול אלן 90 00:04:13,650 --> 00:04:17,470 הם ספרו איך יש לנו עכשיו המחשבים של היום ומחשבי מקינטוש ועוד. 91 00:04:17,470 --> 00:04:22,390 לשם כך, אם כי, אנו זקוקים לשני מתנדבים שיש להם קולות קריינות טובים מאוד 92 00:04:22,390 --> 00:04:23,735 לקרוא תסריט בקול רם. 93 00:04:23,735 --> 00:04:25,530 >> בסדר, מה דעתך על לשם. 94 00:04:25,530 --> 00:04:26,120 בואו למעלה. 95 00:04:26,120 --> 00:04:27,770 ומה לגבי מול כאן. 96 00:04:27,770 --> 00:04:28,340 בואו למטה. 97 00:04:28,340 --> 00:04:29,600 קח את המקומות שלך כאן. 98 00:04:29,600 --> 00:04:32,444 כפי שאתם חבר 'ה לבוא, בני זוג של הודעות מנהליות. 99 00:04:32,444 --> 00:04:34,360 חתך, התהליך בחירת סעיף, 100 00:04:34,360 --> 00:04:36,068 יתחיל זה יום רביעי עד שישי. 101 00:04:36,068 --> 00:04:38,400 עוד על כך בקרוב יום רביעי בהרצאה. 102 00:04:38,400 --> 00:04:41,770 >> קטעים סופר, בינתיים, הם משהו שאנו מציעים בשבוע הבא 103 00:04:41,770 --> 00:04:45,310 לפי כל הכיתה מוזמנת להשתתף בקנה מידה גדולה למדי 104 00:04:45,310 --> 00:04:47,690 קטעים, אחד נוח יותר, אחד פחות נוח. 105 00:04:47,690 --> 00:04:51,340 ואנחנו נכריז פרטים כך, כמו גם, בהמשך השבוע. 106 00:04:51,340 --> 00:04:53,310 >> סעיפים בינתיים, עצמם, יתחילו 107 00:04:53,310 --> 00:04:57,241 בשבוע שלוש של הקורס, אפס מדד, מה שאומר שאלו הם כמה שבועות 108 00:04:57,241 --> 00:04:57,740 את. 109 00:04:57,740 --> 00:04:58,450 אז לא לדאוג. 110 00:04:58,450 --> 00:05:01,014 עדיין לא החמיצו משהו בכיוון הזה. 111 00:05:01,014 --> 00:05:03,930 בינתיים בינתיים, אם אתה יש לך שאלות מנהלית, 112 00:05:03,930 --> 00:05:08,120 דוא"ל עצמי ודבון וגייב ורוב בכתובת זו כאן. 113 00:05:08,120 --> 00:05:10,320 >> לבסוף, נקבעה בעיה 0 הוא, כמובן, את. 114 00:05:10,320 --> 00:05:12,320 ייתכן שתהיו לבו באתר האינטרנט של הקורס. 115 00:05:12,320 --> 00:05:14,840 זה אמור לספק לך כל התשובות לשאלות 116 00:05:14,840 --> 00:05:18,250 אולי יש לך בדרך ל התחלת עבודה עם סט הבעיה. 117 00:05:18,250 --> 00:05:21,430 אבל אם אתה מוצא את עצמך בצורך של יד לעזרה, 118 00:05:21,430 --> 00:05:25,020 בכל האמצעים להשתתף שעתי עבודה, יום שני, יום שלישי, רביעי, חמישי 119 00:05:25,020 --> 00:05:27,290 השבוע בערב בארבעה חדרי אוכל. 120 00:05:27,290 --> 00:05:31,650 תראה את כתובת אתר שיש לפרטים היכן שעתי עבודה תהיינה. 121 00:05:31,650 --> 00:05:34,000 >> עכשיו בואו ניפגש שני אורחים כאן היום. 122 00:05:34,000 --> 00:05:34,740 מה שמך? 123 00:05:34,740 --> 00:05:35,290 >> ג'יי פול: ג'יי פול. 124 00:05:35,290 --> 00:05:36,880 >> דוד י מלאן: ג'יי פול, נחמד לפגוש אותך. 125 00:05:36,880 --> 00:05:37,330 >> Hikari: Hikari. 126 00:05:37,330 --> 00:05:37,975 >> דוד י מלאן: Hikari? 127 00:05:37,975 --> 00:05:38,250 >> Hikari: Hikari. 128 00:05:38,250 --> 00:05:38,810 >> דוד י מלאן: Hikari. 129 00:05:38,810 --> 00:05:39,790 נחמד לפגוש אותך גם כן. 130 00:05:39,790 --> 00:05:42,123 יש לי ג'יי פול וHikari ב לפניהם על מוסיקה אלה 131 00:05:42,123 --> 00:05:45,100 עומד שני תסריטים שאני מודפס את הבוקר הזה מניו מקסיקו 132 00:05:45,100 --> 00:05:46,692 מוזיאון להיסטוריה של טבע ומדע. 133 00:05:46,692 --> 00:05:48,400 ומה שחשבתי הייתי עושה על תקורה 134 00:05:48,400 --> 00:05:52,830 הוא מלווה את הדקלום שלך של התסריט ואת ההיסטוריה הזאת 135 00:05:52,830 --> 00:05:54,700 עם כמה דימויים חזותיים, אין הפתעות. 136 00:05:54,700 --> 00:05:57,512 >> ומה שעשיתי מראש הוא prehighlight על התסריט שלך 137 00:05:57,512 --> 00:05:59,470 מה שאתה צריך לקרוא, ומה שאתה צריך לקרוא. 138 00:05:59,470 --> 00:06:00,920 ובעצם אנחנו תמצאו סעיפים רק חלופיים. 139 00:06:00,920 --> 00:06:03,211 אז זה הרבה כמו שאתה יכול עשה בכיתת אנגלית. 140 00:06:03,211 --> 00:06:06,875 כי באמת לחייב את הקהל להאמין בסיפור שלך כאן. 141 00:06:06,875 --> 00:06:07,600 מה דעתכם? 142 00:06:07,600 --> 00:06:13,272 אז הסיפור כאן הוא, שיש לנו BASIC, וזה מתחיל בקיימברידג. 143 00:06:13,272 --> 00:06:18,750 >> ג'יי פול: זה היה בחורף, 1974, בקיימברידג', מסצ'וסטס 144 00:06:18,750 --> 00:06:20,240 שבו החורפים יכולים להיות קרים. 145 00:06:20,240 --> 00:06:22,800 שיער מזוקן, ארוך נשירה במכללה בשם 146 00:06:22,800 --> 00:06:27,280 פול אלן היה drudging פני הרווארד הכיכר, השקוע במחשבותיו. 147 00:06:27,280 --> 00:06:31,050 העיסוק העיקרי שלו באותם ימים היה איך להגיע לחבר שלו, ביל גייטס, 148 00:06:31,050 --> 00:06:34,974 לעזוב את בית הספר וללכת לעסקים עימו. 149 00:06:34,974 --> 00:06:37,890 Hikari: שני כבר יצאו באמצעות מספר המיזמים העסקיים 150 00:06:37,890 --> 00:06:40,850 יחד, החל משעת Lakeside בית הספר בסיאטל בי 151 00:06:40,850 --> 00:06:45,220 הם שילמו בזמן מחשב פנוי ל לבדוק מחשב PDP-10 בזמן מקומי 152 00:06:45,220 --> 00:06:46,580 שיתוף חברה. 153 00:06:46,580 --> 00:06:50,930 התכנית האחרונה שלהם הייתה להפסיק בית ספר ולהקים חברת תוכנה. 154 00:06:50,930 --> 00:06:53,440 אלן עזב את וושינגטון אוניברסיטת מדינה. 155 00:06:53,440 --> 00:06:58,380 אבל ברגע האחרון, גייטס החלטתי להישאר עם הארוורד. 156 00:06:58,380 --> 00:07:02,080 >> ג'יי פול: באותו יום, חוצה הרווארד כיכר, אלן הבחין בינואר 157 00:07:02,080 --> 00:07:07,530 1,975 נושא פופולרי האלקטרוניקה עם כותרת עצירת כדור הארץ, 158 00:07:07,530 --> 00:07:11,900 ערכת הראשונה minicomputer העולם של כדי להתחרות בדגמים מסחריים. 159 00:07:11,900 --> 00:07:14,430 מתחת לכותרת הייתה תמונה של קופסא קטנה 160 00:07:14,430 --> 00:07:16,160 מעוטר באורות ומתגים. 161 00:07:16,160 --> 00:07:19,770 היא נקראה MITS Altair 8800. 162 00:07:19,770 --> 00:07:24,100 ואלן ידע שזה מה ש הוא חיפש. 163 00:07:24,100 --> 00:07:26,350 >> Hikari: ימים של דיון ואחריו. 164 00:07:26,350 --> 00:07:30,170 אלן וגייטס הבינו משמעות של אלטאיר. 165 00:07:30,170 --> 00:07:32,480 הם דיברו לעתים קרובות על מעבדים 166 00:07:32,480 --> 00:07:35,250 וחיכינו לראות מה היה לעשות איתם. 167 00:07:35,250 --> 00:07:39,770 עכשיו הייתה ערכת minicomputer על הכיסוי של אלקטרוניקה פופולארית. 168 00:07:39,770 --> 00:07:42,830 כנראה שזה לא היה לו תוכנה עדיין. 169 00:07:42,830 --> 00:07:46,830 הם דמיינו אומה של מתכנתים יורדים על MITS. 170 00:07:46,830 --> 00:07:49,590 ואז הם קראו אד רוברטס, הראש של החברה, 171 00:07:49,590 --> 00:07:53,330 טוען שיש לה גרסה של שפת תכנות BASIC כמעט מוכנה 172 00:07:53,330 --> 00:07:54,710 לאלטאיר. 173 00:07:54,710 --> 00:07:55,570 הם לא עשו זאת. 174 00:07:55,570 --> 00:07:58,910 ורוברטס ודאי ידע שהם לא עשו זאת. 175 00:07:58,910 --> 00:08:03,170 הוא היה מקבל 10 שיחות ביום מ אנשים שהיו לי BASIC כמעט מוכן. 176 00:08:03,170 --> 00:08:05,570 ותגובת המניה שלו היה, "האדם הראשון 177 00:08:05,570 --> 00:08:11,090 מי מופיע עם עבודה BASIC מקבל החוזה. " 178 00:08:11,090 --> 00:08:13,910 >> ג'יי פול: גייטס ואלן מעולם לא ראה את אלטאיר. 179 00:08:13,910 --> 00:08:17,600 הם מעולם לא ראו אפילו המיקרו אינטל 8080 180 00:08:17,600 --> 00:08:19,060 בלבו של אלטאיר. 181 00:08:19,060 --> 00:08:21,470 אבל כמה שנים קודם לכן אלן כתב תכנית 182 00:08:21,470 --> 00:08:25,220 על מחשב מרכזי שחיקה הפעולה של אינטל קודם 183 00:08:25,220 --> 00:08:26,217 המיקרו. 184 00:08:26,217 --> 00:08:28,300 והפעם הם הייתי עושה את אותו הדבר. 185 00:08:28,300 --> 00:08:31,530 186 00:08:31,530 --> 00:08:34,380 >> Hikari: עם אינטל 8080 ידני בצד שלו, 187 00:08:34,380 --> 00:08:37,770 אלן התיישב ליד הרווארד PDP-10 מחשב 188 00:08:37,770 --> 00:08:42,010 וכתבתי אמולטור ותוכנה כלים דרושים כדי לבצע את תכנות. 189 00:08:42,010 --> 00:08:45,820 בינתיים גייטס הפסיק ללכת לשיעורים והקדיש את עצמו 190 00:08:45,820 --> 00:08:48,120 לעיצוב הבסיסי, משתמש בכל טריק 191 00:08:48,120 --> 00:08:53,130 הוא ידע להשיג את הגודל למטה 4 קילובייט. 192 00:08:53,130 --> 00:08:55,870 >> ג'יי פול: מתוך באלבוקרקי, אד רוברטס קבל טלפון מגייטס 193 00:08:55,870 --> 00:08:59,754 מבקש פרטים על אופן שבי Altair טיפל שגרה מסוימת. 194 00:08:59,754 --> 00:09:01,170 אף אחד לא ביקש שלפני. 195 00:09:01,170 --> 00:09:02,670 ורוברטס החל להתעניין. 196 00:09:02,670 --> 00:09:05,240 197 00:09:05,240 --> 00:09:07,970 >> Hikari: עם ההתפתחות כלים והעיצוב מוכנים, 198 00:09:07,970 --> 00:09:10,780 גייטס ואלן כתבו הקוד על PDP-10, 199 00:09:10,780 --> 00:09:16,060 גיוס נוסף סטודנט באוניברסיטת הרווארד, מונטה דוידוף, לכתוב שגרות במתמטיקה. 200 00:09:16,060 --> 00:09:19,450 אחרי הלילה אחרון של תכנות, אלן עלה על מטוס 201 00:09:19,450 --> 00:09:22,970 כדי לספקם בסיסי לMITS. 202 00:09:22,970 --> 00:09:25,800 הוא בילה את המטוס לצאת בדאגה. 203 00:09:25,800 --> 00:09:28,490 ובחזרה בקיימברידג גייטס היה מדאיג. 204 00:09:28,490 --> 00:09:32,100 ובסיסי שלהם הם בדקו זה עבד על אמולטור. 205 00:09:32,100 --> 00:09:35,444 אבל מה אם אמולטור היה לא בסדר? 206 00:09:35,444 --> 00:09:37,360 ג'יי פול: כשהמטוס פנה אלבוקרקי, 207 00:09:37,360 --> 00:09:40,070 אלן הבין ש BASIC, עכשיו הכיל בצורה מסודרת 208 00:09:40,070 --> 00:09:42,460 על גליל קטן של אגרוף קלטת נייר, היה 209 00:09:42,460 --> 00:09:44,970 להיות חסר תועלת ללא נפרד תכנית, שנקרא מטעין, ש 210 00:09:44,970 --> 00:09:47,550 הייתי אומר לי Altair איך לקרוא את בן קלטת נייר 211 00:09:47,550 --> 00:09:49,620 מוזן לתוך מכונת הטלקס. 212 00:09:49,620 --> 00:09:52,970 הוא הוציא את פנקסו ומהר שרבט את תכנית מלגזה 213 00:09:52,970 --> 00:09:56,819 בשפת אסמבלי, לאחר מכן באופן ידני תרגמתי אותו ל1s ו 0s 214 00:09:56,819 --> 00:09:57,985 אלטאיר היה מבין. 215 00:09:57,985 --> 00:10:00,530 216 00:10:00,530 --> 00:10:03,830 >> אלן ציפה: Hikari חברה נקייה, קטנה, גבוה טק 217 00:10:03,830 --> 00:10:05,470 מנוהל על ידי גברים בחליפות עסקים. 218 00:10:05,470 --> 00:10:09,210 אז הוא היה מופתע כאשר רוברטס נפגש שלו בשדה התעופה נראית כמו החווה 219 00:10:09,210 --> 00:10:10,270 יד. 220 00:10:10,270 --> 00:10:12,070 רוברטס היה גם מופתע. 221 00:10:12,070 --> 00:10:16,340 כשהוא ירד בהרווארד מתכנת במלון יקר, 222 00:10:16,340 --> 00:10:20,790 אלן נאלץ להודות ש הוא לא יכול היה להרשות לעצמו החדר. 223 00:10:20,790 --> 00:10:24,510 >> ג'יי פול: MITS, עצמו, היה ממוקם בקניון מאובק. 224 00:10:24,510 --> 00:10:27,040 בתוך על מבולגן שולחן העבודה הייתה Altair 225 00:10:27,040 --> 00:10:30,390 העמיס עם 5 קילובייט של זיכרון ומחובר על ידי כבל 226 00:10:30,390 --> 00:10:32,030 למכונה טלפרינטר. 227 00:10:32,030 --> 00:10:37,200 רוברטס ומהנדס ראשי, ביל ייטס, חיכה בציפייה 228 00:10:37,200 --> 00:10:40,660 כאלן toggled מטעינו תכנית לאלטאיר. 229 00:10:40,660 --> 00:10:44,980 הטלפרינטר החל לטרטר כפי שהוא משך קלטת נייר באמצעות קורא הקלטת. 230 00:10:44,980 --> 00:10:47,215 זה לקח אולי 15 דקות כדי לטעון את התכנית. 231 00:10:47,215 --> 00:10:52,110 אז הטלפרינטר מודפס בפתאומיות הפקודה זיכרון, אז הפקודה מוכנה, 232 00:10:52,110 --> 00:10:55,340 ואלן התחיל להקליד כמה מבחן פקודות. 233 00:10:55,340 --> 00:10:57,400 לתדהמה כולם, התוכנה עבדה. 234 00:10:57,400 --> 00:10:58,525 היו באגים, כמובן. 235 00:10:58,525 --> 00:11:02,070 אבל העיקר היה שזה עבד. 236 00:11:02,070 --> 00:11:06,570 >> Hikari: מאוחר יותר, בדרכם ל 3.00 $ ארוחת צהריים בפנצ'ו של, צרעה עפה 237 00:11:06,570 --> 00:11:10,470 בחלון של הטנדר משאית ועקצה את אלן על הזרוע. 238 00:11:10,470 --> 00:11:13,070 אבל באותו דבר נקודה יכול לקלקל את מצב הרוח. 239 00:11:13,070 --> 00:11:17,210 Altair עכשיו היה לו בסיסי, תוכנה מסחרית ראשונה לבית 240 00:11:17,210 --> 00:11:23,260 מחשב, שנעשה על ידי פול אלן וביל גייטס, עושה עסקים כמו מיקרוסופט. 241 00:11:23,260 --> 00:11:25,336 >> דוד י מלאן: רבים הודות לשני הקוראים שלנו. 242 00:11:25,336 --> 00:11:30,690 >> [מחיאות כפות] 243 00:11:30,690 --> 00:11:32,520 >> דוד י מלאן: עכשיו יש לך הבחירה שלך, 244 00:11:32,520 --> 00:11:35,880 לפני שאתה עוזב, של נוצץ או זוהר בdark-- הו, 245 00:11:35,880 --> 00:11:40,810 לחכות שנייה אחת, wait-- נוצץ וזוהר בפיל האפל 246 00:11:40,810 --> 00:11:42,534 מנג גונג של CS50. 247 00:11:42,534 --> 00:11:43,450 Hikari: או והאזור, תודה לך. 248 00:11:43,450 --> 00:11:45,324 דוד י מלאן: כל נכון, תודה רבה לך. 249 00:11:45,324 --> 00:11:49,855 [מחיאות כפות] 250 00:11:49,855 --> 00:11:51,105 דוד י מלאן: סיפור כל כך נכון. 251 00:11:51,105 --> 00:11:54,380 זה אומר שכל אלה מכונות והקלות שבה אנחנו 252 00:11:54,380 --> 00:11:56,270 להשתמש בם עכשיו לקחת כמובן מאליו, באמת 253 00:11:56,270 --> 00:12:00,070 התחיל כאן, רק כמה צעדים מתיאטרון בפועל זה. 254 00:12:00,070 --> 00:12:03,930 והנה היום, אם כבר לא היית, זה מקסוול דבורקין, המחשב 255 00:12:03,930 --> 00:12:05,810 בניין מדעים, גם מעבר לפינה. 256 00:12:05,810 --> 00:12:09,760 ובקומה השנייה של זה בניין עושה לתלות שלושה עמודים 257 00:12:09,760 --> 00:12:12,740 מקוד המקור המקורי ש ביל גייטס ופול אלן כתבו. 258 00:12:12,740 --> 00:12:14,770 למעשה, אם שימושך להתקרב באפשרותך לראות לא רק 259 00:12:14,770 --> 00:12:17,350 השמות שלהם ב סוג מקורי, אלא גם 260 00:12:17,350 --> 00:12:22,100 החתימות שלהם שהם מעוטרים לפני כמה שנים כשבקרו אחרון. 261 00:12:22,100 --> 00:12:25,800 >> אבל מה שהיה משכנע במיוחד על זה הוא מה שהם יצאו לעשות 262 00:12:25,800 --> 00:12:29,760 היה לכתוב תכנית שהיית לאפשר לאנשים אחרים לכתוב 263 00:12:29,760 --> 00:12:30,950 תוכניות משלהם. 264 00:12:30,950 --> 00:12:34,280 באותו הזמן כל מה שהיה עם מכונה זו Altair שנעשתה על ידי MITS. 265 00:12:34,280 --> 00:12:40,020 וכל מה שהם זקוקים לו דרך כלשהי מה שהופך את זה קל עבור חובבים ואנשים 266 00:12:40,020 --> 00:12:45,300 אוהב אותנו בחדר הזה בעצם תכנית כי בלי בהכרח הבנה 267 00:12:45,300 --> 00:12:49,060 קוד הרכבה, או במכונה קוד, או חס וחלילה, 0s ו 1s. 268 00:12:49,060 --> 00:12:51,190 אנו מתכנתים, כמו אלה בחדר הזה, אנחנו 269 00:12:51,190 --> 00:12:54,070 רוצה להיות מסוגל להביע את את עצמנו הרבה יותר כמו קוד פסאודו 270 00:12:54,070 --> 00:12:57,330 גם אם זה ניט קצת יותר בררן יותר ממה שדיברנו בשבוע שעבר. 271 00:12:57,330 --> 00:13:00,970 אנחנו לא רוצים לכתוב קוד כזה, שפול אלן וביל גייטס עשה. 272 00:13:00,970 --> 00:13:04,850 אנחנו, במקום, רוצים לכתוב קוד ש נראה קצת יותר ידידותי למשתמש. 273 00:13:04,850 --> 00:13:07,150 >> עכשיו זה הוא שפה הידועה כבסיס. 274 00:13:07,150 --> 00:13:11,497 ומספרי השורות יש את מה שאתה להשתמש פשוט למספר את שורות קוד 275 00:13:11,497 --> 00:13:12,330 שאתה כותב. 276 00:13:12,330 --> 00:13:14,038 אפילו אין לנו ל לעשות את זה בימים אלה. 277 00:13:14,038 --> 00:13:16,060 אבל אתם יכולים לראות כאן איך להדפיס "שלום, עולם" 278 00:13:16,060 --> 00:13:18,660 אכן ככל הנראה להדפיס בדיוק את זה. 279 00:13:18,660 --> 00:13:22,710 ואז מה ביל ופול עשו היה להעצים אנשים כדי לכתוב קוד כזה 280 00:13:22,710 --> 00:13:27,240 במקום of-- אם תסתכל על מדעי מחשב wall-- קוד כזה. 281 00:13:27,240 --> 00:13:29,290 >> למעשה, CS50 לאחרונה הייתה לו הזדמנות 282 00:13:29,290 --> 00:13:32,540 לשבת עם פרופ 'הארי לואיס בפקולטה למדעי המחשב, ש 283 00:13:32,540 --> 00:13:34,640 למעשה לימד את ביל גייטס לפני כמה שנים, 284 00:13:34,640 --> 00:13:38,460 והוא עומד כאן לפני שלושת עמודים של קטעים אלה. 285 00:13:38,460 --> 00:13:39,560 בואו נסתכל. 286 00:13:39,560 --> 00:13:45,520 >> הארי לואיס: מה יש לך כאן הוא רישום של פיסת תוכנה מוקדמת 287 00:13:45,520 --> 00:13:50,240 נכתב על ידי ביל גייטס ופול אלן, ממייסדי מיקרוסופט. 288 00:13:50,240 --> 00:13:52,570 אז הקוד הוא מעניין משתי סיבות. 289 00:13:52,570 --> 00:13:55,480 קודם כל, זה הפך המוצר הראשון של מיקרוסופט, 290 00:13:55,480 --> 00:14:01,810 שהיה מתורגמן עבור שפת תכנות BASIC. 291 00:14:01,810 --> 00:14:04,940 ושנית, זה היה אחד מהניסיונות הראשונים 292 00:14:04,940 --> 00:14:10,580 כדי ליצור מתורגמן כך רגיל אנשים יכולים להשתמש במחשבים אישיים. 293 00:14:10,580 --> 00:14:12,670 >> אז ביל גייטס היה סטודנט לתואר ראשון באוניברסיטת הרווארד. 294 00:14:12,670 --> 00:14:14,820 התחלתי ללמד באוניברסיטת הרווארד בשנת 1974. 295 00:14:14,820 --> 00:14:16,560 הדבר נעשה בשנת 1975. 296 00:14:16,560 --> 00:14:20,180 אז זה היה בשלב מוקדם בקריירה שלו ומוקדם בקריירה שלי. 297 00:14:20,180 --> 00:14:23,790 אני ממש לימדתי את ביל ב כמובן בסביבות הזמן הזה. 298 00:14:23,790 --> 00:14:27,130 פול אלן לא היה סטודנט באוניברסיטת הרווארד, אבל הוא 299 00:14:27,130 --> 00:14:31,020 היה בבית ספר גבוה כיתה של ביל גייטס. 300 00:14:31,020 --> 00:14:33,740 אם אתה בא ומסתכל ברשימה, שתצליח 301 00:14:33,740 --> 00:14:36,230 למעשה למצוא שליש שם, מונטה דוידוף, 302 00:14:36,230 --> 00:14:39,260 שהיה בן כיתתו של גייטס כאן בהרווארד. 303 00:14:39,260 --> 00:14:41,340 >> אוקיי, אז הנה תגובה עד מעניינת כאן. 304 00:14:41,340 --> 00:14:47,150 זה אומר "ב4K יכול למחוק את השורש הריבועי אבל ללולאות עדיין צריכה לעבוד. " 305 00:14:47,150 --> 00:14:53,080 אוקיי, אז מה זה אומר הוא שיש היו שתי דרכים כדי לקמפל תכנית זו. 306 00:14:53,080 --> 00:14:57,860 אחד מהם היה לרוץ על גרסה של מחשב Altair זה 307 00:14:57,860 --> 00:15:04,310 שרק 4K מילות של זיכרון, 4,096 מילות של זיכרון. 308 00:15:04,310 --> 00:15:07,050 אבל הגרסה הגדולה הייתה 8K. 309 00:15:07,050 --> 00:15:09,770 ואז מה זה אומר הוא כי בגרסת 4K 310 00:15:09,770 --> 00:15:12,770 היית צריך למחוק חלק קוד כדי להפוך אותו בכושר. 311 00:15:12,770 --> 00:15:14,790 ואחד הדברים שיימחק 312 00:15:14,790 --> 00:15:16,290 יהיה שגרתי השורש הריבועי. 313 00:15:16,290 --> 00:15:20,360 אבל, ככל הנראה, ללולאות עדיין צריכה 314 00:15:20,360 --> 00:15:26,392 לעבוד גם כאשר אתה קומפילציה למטה רק הגרסה של 4k המחשב. 315 00:15:26,392 --> 00:15:29,350 דוד י מלאן: אז אחד הנושאים, כפי שנראה במדעי מחשב, 316 00:15:29,350 --> 00:15:31,430 הוא הרעיון הזה של שכבות והפשטה, 317 00:15:31,430 --> 00:15:34,670 ובאמת עומד על הכתפיים של אנשים שבאו לפנינו, לא 318 00:15:34,670 --> 00:15:37,890 בניגוד לכמה מביל גייטס והנרטיב פול אלן כאן. 319 00:15:37,890 --> 00:15:40,080 ומה שזה אומר זה כי היום אנחנו יכולים לקחת ל 320 00:15:40,080 --> 00:15:43,490 מובן מאליו שדברים הם למעשה יותר קל לנו לכתוב קוד. 321 00:15:43,490 --> 00:15:47,170 ואכן קוד, כפי שאמרנו ביום שישי, הוא יותר מבחינה טכנית הידוע בשם קוד מקור. 322 00:15:47,170 --> 00:15:52,210 וזה אנגלית זה כמו תחביר זה יותר מתאים ומוגדר יותר טוב 323 00:15:52,210 --> 00:15:55,480 מ משהו כמו קוד פסאודו, ל שבו אין הגדרה פורמלית. 324 00:15:55,480 --> 00:15:58,320 >> והיום מה שאנחנו הולכים להתמקד בהוא קוד מקור 325 00:15:58,320 --> 00:16:01,010 שנראה כמו זה, ש אמנם במבט הראשון 326 00:16:01,010 --> 00:16:02,690 נראה סתום לחלוטין. 327 00:16:02,690 --> 00:16:08,540 ולמען אמת, זה הרבה יותר מבחינה אסתטית מורכב מהתכנית הבסיסית היא. 328 00:16:08,540 --> 00:16:13,300 כל התכנית הזאת עושה, כזכור, הוא מה שאנחנו אומרים? 329 00:16:13,300 --> 00:16:14,990 זה פשוט מדפיס "שלום עולם". 330 00:16:14,990 --> 00:16:19,600 ובכל זאת מסתכל על כל הדברים שאנחנו צריכים כדי לעטוף את אותו ביטוי פשוט מאוד. 331 00:16:19,600 --> 00:16:21,750 אבל לא עבר זמן רב כל קווים אלה ועוד 332 00:16:21,750 --> 00:16:24,800 יהיה הגיוני הרבה יותר טוב לך. 333 00:16:24,800 --> 00:16:26,940 >> והזרימה היא כדלקמן. 334 00:16:26,940 --> 00:16:31,220 מה שאנחנו צריכים שברשותנו הוא לקחת קוד, כמו מקור 335 00:16:31,220 --> 00:16:32,340 קוד שאנחנו רק ראינו. 336 00:16:32,340 --> 00:16:35,060 ואנחנו צריכים תכנית חדשה לרוץ דרכו. 337 00:16:35,060 --> 00:16:39,130 אנחנו צריכים אלגוריתמים שיכולים להמיר את קוד מקור, כמו זה, 338 00:16:39,130 --> 00:16:41,932 לתוך קוד אובייקט, 0s ו 1s. 339 00:16:41,932 --> 00:16:43,890 במילים אחרות, מה ש אנחנו הולכים ללמוד היום 340 00:16:43,890 --> 00:16:46,620 הוא איך לעשות את זה, לכתוב קוד מקור של למעלה, 341 00:16:46,620 --> 00:16:49,930 להעביר את זה כקלט למיוחד תכנית הידועה בשם מהדר, 342 00:16:49,930 --> 00:16:52,140 ואנחנו הולכים לייצר קוד אובייקט. 343 00:16:52,140 --> 00:16:54,600 וזה רק דרך מפוארת של אומר שאנחנו ניקח משהו 344 00:16:54,600 --> 00:16:58,350 שנראה כמו זה, להעביר את זה לתכנית בשם מהדר, 345 00:16:58,350 --> 00:17:01,210 הפקת קוד אובייקט שנראה כמו זה. 346 00:17:01,210 --> 00:17:04,720 >> אז אלו הם, פשוטו כמשמעו, הדפוסים של 0s ו 1s 347 00:17:04,720 --> 00:17:08,550 כי הם הבינו על ידי מחשב אינטל בימים אלה, 348 00:17:08,550 --> 00:17:12,480 שאם פירש על ידי המעבד, המוחות פנימיים של מחשב, 349 00:17:12,480 --> 00:17:16,130 יהיה ממש להדפיס, בפשטות, "שלום עולם". 350 00:17:16,130 --> 00:17:19,670 עכשיו יש הרבה יותר 0s ו 1s ממה שאתה מקווה ייתכן שיהיה צורך בכך. 351 00:17:19,670 --> 00:17:22,520 אבל זה בגלל שאנחנו בונים על עסקה טובה של מורכבות 352 00:17:22,520 --> 00:17:24,270 שאנחנו מכאן ואילך יכולים לקחת כמובן מאליו. 353 00:17:24,270 --> 00:17:27,869 במילים אחרות, הרבה אנשים חכמים נתנו לנו הרבה כלים מגניבים 354 00:17:27,869 --> 00:17:32,480 ותוכנה רבת עוצמה שבה אנו כעת ניתן לבצע את הפרויקטים שלנו. 355 00:17:32,480 --> 00:17:33,400 >> אז בואו נתחיל. 356 00:17:33,400 --> 00:17:36,640 ואילו ביום שישי האחרון, ו לבעית סט 0 שבוע, 357 00:17:36,640 --> 00:17:39,000 אתה יהיה משחק ב עולם שנראה כך. 358 00:17:39,000 --> 00:17:42,180 היום מתחיל ולבעיה להגדיר 1 בשבוע הבא, את הקוד 359 00:17:42,180 --> 00:17:45,410 הולך להיראות קצת יותר נסתר, אבל מבחינה תפקודית הוא 360 00:17:45,410 --> 00:17:46,940 הולך להיות אותו הדבר. 361 00:17:46,940 --> 00:17:50,770 אז הודעה, העליון הוא גרד, תחתון הוא Scratch ג בכנות 362 00:17:50,770 --> 00:17:52,780 הרבה יותר למשתמש ידידותי ונגיש. 363 00:17:52,780 --> 00:17:56,890 אבל אם אתה עכשיו להשוות מבחינה ויזואלית עליון ל תחתון, יש סוג של אחד לאחד 364 00:17:56,890 --> 00:17:59,690 התכתבות בין חלקי הפאזל והשפה 365 00:17:59,690 --> 00:18:00,870 אנחנו עומדים לשחק איתו. 366 00:18:00,870 --> 00:18:04,420 בפרט, אומרים, חידה כחולה עליון חתיכה עד, 367 00:18:04,420 --> 00:18:08,370 הוא שווה ערך ככל הנראה למה שמילת מפתח או ביטוי מיוחד בשפה זו 368 00:18:08,370 --> 00:18:09,062 בשם C? 369 00:18:09,062 --> 00:18:09,770 קהל: printf. 370 00:18:09,770 --> 00:18:10,728 דוד י מלאן: printf. 371 00:18:10,728 --> 00:18:12,140 כלומר, הדפסה מעוצב. 372 00:18:12,140 --> 00:18:15,240 וזה רק מפואר דרך לומר printf בC 373 00:18:15,240 --> 00:18:18,615 הולך להיות הצהרה או פונקציה שמדפיס משהו על המסך. 374 00:18:18,615 --> 00:18:19,990 מה זה להדפיס למסך? 375 00:18:19,990 --> 00:18:23,627 לא משנה מה אתה אומר את זה לבפנים ציטוטים, בתוך סוגריים. 376 00:18:23,627 --> 00:18:25,460 אז שוב, יש להודות, יש הרבה דברים 377 00:18:25,460 --> 00:18:27,990 כי אתה צריך לזכור, סוגריים, מרכאות, פסיק, 378 00:18:27,990 --> 00:18:28,656 וכל זה. 379 00:18:28,656 --> 00:18:30,600 אבל כל זה הוא סוג של לא לעניין. 380 00:18:30,600 --> 00:18:33,660 ממסעדה מעניינת לעת עתה הוא שהבלוק למשל בגרד 381 00:18:33,660 --> 00:18:37,520 הוא פחות או יותר שווה ערך ל הצהרת printf ב C. 382 00:18:37,520 --> 00:18:41,390 >> בינתיים, את פיסת הפאזל הצהובה למעלה, כאשר הדגל ירוק לחץ, 383 00:18:41,390 --> 00:18:44,736 כנראה שווה ערך למה מילת המפתח כאן? 384 00:18:44,736 --> 00:18:45,360 קהל: ראשי. 385 00:18:45,360 --> 00:18:46,359 דוד י מלאן: אז עיקרי. 386 00:18:46,359 --> 00:18:47,410 אולי int, אולי חלל. 387 00:18:47,410 --> 00:18:51,280 אבל סוג עיקרי של צלילים כמו זה חשוב, ואכן זה הוא. 388 00:18:51,280 --> 00:18:54,080 לכן, כאשר הדגל ירוק לחץ היא, שוב, את פיסת הפאזל 389 00:18:54,080 --> 00:18:56,390 כי בעיטות מחוץ כל תכנית Scratch. 390 00:18:56,390 --> 00:19:02,140 אבל אנחנו הולכים עכשיו להתחיל לקרוא שתפקידו העיקרי, זו הידועה בשם ראשי. 391 00:19:02,140 --> 00:19:06,410 >> עכשיו בינתיים שנציע ב להכליל זה כדלקמן. 392 00:19:06,410 --> 00:19:08,780 אנו יכולים לקרוא לי אומרים פונקציה. 393 00:19:08,780 --> 00:19:10,580 וזה עשוי להיראות במיוחד כמו זה. 394 00:19:10,580 --> 00:19:11,770 ובכן, מה עם לולאות? 395 00:19:11,770 --> 00:19:16,540 אם אנחנו רוצים להתחיל המרה או תרגום יותר בגירוד לC, 396 00:19:16,540 --> 00:19:19,400 הדבר הזה כאן, ככל הנראה, רק אומר "hello world" לנצח. 397 00:19:19,400 --> 00:19:23,060 אז אם אתה מקשר אלה תסריטים עם חתול בסריטות, 398 00:19:23,060 --> 00:19:26,560 זה פשוט הולך כל זמן אומר באיזה בועת קריקטורה, 399 00:19:26,560 --> 00:19:29,922 "שלום עולם, שלום עולם, שלום עולם, "מודעת nauseum, לנצח. 400 00:19:29,922 --> 00:19:33,130 אם אנחנו רוצים לעשות משהו דומה ב C, זה הולך להיראות קצת מסתורי. 401 00:19:33,130 --> 00:19:35,463 אבל אנחנו יכולים להשיג את אותו תוצאות, כפי שבסוף 402 00:19:35,463 --> 00:19:36,861 לגלות, עם תחביר כמו זה. 403 00:19:36,861 --> 00:19:39,360 אני הולך להשתמש printf שוב, כי בסופו של היום 404 00:19:39,360 --> 00:19:42,040 אני רוצה להדפיס "שלום עולם". 405 00:19:42,040 --> 00:19:45,610 ואני, ככל הנראה, אני משתמש מילת המפתח שהוא לא לנצח. 406 00:19:45,610 --> 00:19:47,320 זה במקום המילה בזמן. 407 00:19:47,320 --> 00:19:49,650 אבל רק מבחינה סמנטית ב אנגלית, ואילו סוג של 408 00:19:49,650 --> 00:19:52,120 מציע סוג מסוים של לולאה או מחזור. 409 00:19:52,120 --> 00:19:55,070 >> אז זה קורה להיות מילת המפתח שC משתמשת. 410 00:19:55,070 --> 00:20:00,700 ובעוד אמיתי, מדוע בזמן ש אמיתי ביעילות מתכוון לנצח? 411 00:20:00,700 --> 00:20:04,240 ובכן, בזמן ש, כפי שאנו בקרוב מעריך את כל יותר, 412 00:20:04,240 --> 00:20:08,140 יש בסוגריים זה לצד זה שבו אתה יכול לשים את ביטוי בוליאני. 413 00:20:08,140 --> 00:20:11,360 וכל עוד ש הביטוי נכון, את הקוד הזה, 414 00:20:11,360 --> 00:20:14,750 כמצוין בין שני אלה סוגריים מסולסלים כמו שאנחנו קוראים להם, 415 00:20:14,750 --> 00:20:16,880 פשוט להמשיך לרוץ שוב ושוב. 416 00:20:16,880 --> 00:20:18,410 >> אז נכון נכון. 417 00:20:18,410 --> 00:20:20,900 וכך, בעוד אמצעים אמיתיים פשוט לעשות את זה לנצח. 418 00:20:20,900 --> 00:20:23,480 זה כמעט טיפש לבנות להביע את עצמך. 419 00:20:23,480 --> 00:20:26,590 אבל לא היה לנצח מילת המפתח בג היה בזמן. 420 00:20:26,590 --> 00:20:29,390 והיה מאוד פשוט ביטוי בוליאני כמו אמיתי. 421 00:20:29,390 --> 00:20:32,210 וכך זה, אנחנו תראו, משיג את אותה התוצאה. 422 00:20:32,210 --> 00:20:33,890 >> אחרת איך אתה יכול ליישם את לולאה? 423 00:20:33,890 --> 00:20:36,980 ובכן, בגירוד אולי אתה קוד קשה מספר מסוים 424 00:20:36,980 --> 00:20:39,430 חזרות בלולאה כאן. 425 00:20:39,430 --> 00:20:43,210 ואז זה בדיוק מה שאנחנו יכול לעשות בגרסה זו של C, 426 00:20:43,210 --> 00:20:46,140 לפי שיש לנו מה שנקרא ללולאה. 427 00:20:46,140 --> 00:20:49,850 וללולאה כאן הולך ללחזר, בלי לפרש במידה מה, 428 00:20:49,850 --> 00:20:54,100 מהערך 0 בעד לאבל פחות מ -10. 429 00:20:54,100 --> 00:20:55,955 >> עכשיו משתנה בגרד. 430 00:20:55,955 --> 00:20:57,830 ייתכן שלא היו לי הזדמנות להשתמש באלה. 431 00:20:57,830 --> 00:21:02,516 אבל מה הטעם, באופן כללי, של משתנה לא שאנחנו אומרים בשבוע שעבר? 432 00:21:02,516 --> 00:21:03,015 מה זה? 433 00:21:03,015 --> 00:21:03,780 >> קהל: נקודות. 434 00:21:03,780 --> 00:21:05,200 >> דוד י מלאן: כדי להצביע? 435 00:21:05,200 --> 00:21:05,700 אה, מצביע. 436 00:21:05,700 --> 00:21:07,620 אישור, שמירה על מסלול של נקודות, למשל, במשחק. 437 00:21:07,620 --> 00:21:09,510 או באופן כללי יותר עושה מה עם משתנה? 438 00:21:09,510 --> 00:21:10,450 מה התועלת שלהם? 439 00:21:10,450 --> 00:21:10,825 >> קהל: זיכרון. 440 00:21:10,825 --> 00:21:11,750 >> דוד י מלאן: כן, כך זיכרון. 441 00:21:11,750 --> 00:21:13,000 זה לאחסון משהו. 442 00:21:13,000 --> 00:21:17,336 והסוג שלי חזותי טיפשי משמש הפעם האחרונה הייתה כמו קערת זכוכית זו. 443 00:21:17,336 --> 00:21:19,710 ואם אנחנו רוצים לאחסן משהו בתוך משתנה, 444 00:21:19,710 --> 00:21:21,918 למשל עכשיו ערך הוא שש כי יש 445 00:21:21,918 --> 00:21:23,450 שישה כדורי פינג פונג בכאן. 446 00:21:23,450 --> 00:21:26,158 זה פשוט סוג מסוים של אחסון מיכל שמתחת למכסת המנוע 447 00:21:26,158 --> 00:21:30,030 מיושם עם חתיכות, 0s ו 1s, עם זאת מחשב קורה לעשות את זה. 448 00:21:30,030 --> 00:21:32,900 >> אז בשריטה, אם רוצה שיהיה לי משתנה, 449 00:21:32,900 --> 00:21:34,840 אנו יכולים להשתמש בבלוק כתום כמו זה. 450 00:21:34,840 --> 00:21:37,050 אנחנו קוראים לדלפק ש במקרה הספציפי הזה. 451 00:21:37,050 --> 00:21:38,890 אני אותחל אותו ל0. 452 00:21:38,890 --> 00:21:41,080 ומה זה אז אני עושה? 453 00:21:41,080 --> 00:21:44,780 לנצח, אומרים מונה, שאם אתה משחק עם זה בגרד, 454 00:21:44,780 --> 00:21:45,780 אתה פשוט תראה סריטות. 455 00:21:45,780 --> 00:21:49,920 החתול או מה שתחפושת לך לשים על שלו ידבר המספר בשאלה. 456 00:21:49,920 --> 00:21:52,840 >> דלפק שינוי על ידי 1 הוא כמו להגדיל כל על ידי 1. 457 00:21:52,840 --> 00:21:56,580 וכך זה הולך לספור ממה אז מה? 458 00:21:56,580 --> 00:21:59,114 מ0 til אינסוף, או עד הפסקות Scratch, 459 00:21:59,114 --> 00:22:01,030 או עד שאתה סוג של לאבד עניין בצפייה 460 00:22:01,030 --> 00:22:02,650 כמה גבוה הוא יכול ממש לספור. 461 00:22:02,650 --> 00:22:04,800 >> אז איך אנחנו יכולים להמיר את זה לC? 462 00:22:04,800 --> 00:22:06,480 זה הולך להיראות קצת לא ברור מאליהם. 463 00:22:06,480 --> 00:22:08,896 אבל שוב, אם אתה מסתכל על כל שורות אלה בנפרד 464 00:22:08,896 --> 00:22:10,410 הם סוג של הרכב בדרך כלל. 465 00:22:10,410 --> 00:22:13,526 אז, ככל הנראה, int הולך יש להם משמעות מיוחדת בג 466 00:22:13,526 --> 00:22:14,400 אנחנו תראו את זה שוב. 467 00:22:14,400 --> 00:22:15,810 במאמר המוסגר זה אומר שלם. 468 00:22:15,810 --> 00:22:16,990 אז זה רק אומר שמספר. 469 00:22:16,990 --> 00:22:18,920 אז זה הסוג של זכוכית קערה אני רוצה, אחד 470 00:22:18,920 --> 00:22:21,120 שיכול לאחסן מספרים, לא לאותת כדורי פונג. 471 00:22:21,120 --> 00:22:25,520 ואני הולך להשתמש בסימן השוויון יש להקצות לו ערך של 0. 472 00:22:25,520 --> 00:22:29,440 אז זה די כמו סט בניגוד ל0, אבל בג 473 00:22:29,440 --> 00:22:32,840 >> בינתיים, בזמן שאמת, שהיה שווה ערך, כמובן, ללנצח, 474 00:22:32,840 --> 00:22:35,980 למרות שזה קצת לא ברור מאליהם, ולאחר מכן בתוך הסוגריים המסולסלים. 475 00:22:35,980 --> 00:22:39,188 ואתה יכול לחשוב על הסוגריים המסולסלים האלה, שבו אתה יכול להקליד במקלדת, 476 00:22:39,188 --> 00:22:43,110 כבאמת להיות כמו העקמומיות ב בלוקים אלה צהובים לולאה בגרד. 477 00:22:43,110 --> 00:22:45,700 הוא מחבק מספר שורות של קוד. 478 00:22:45,700 --> 00:22:48,120 >> Printf הוא מקבל כי קצת מפחיד עכשיו אני 479 00:22:48,120 --> 00:22:51,120 לראות מצטט לא רק בסוגריים. 480 00:22:51,120 --> 00:22:55,160 אבל מה עוד חדש מבחינה תחבירית בדוגמא זו? 481 00:22:55,160 --> 00:22:57,300 יש ד אחוזים. 482 00:22:57,300 --> 00:22:58,551 ולאחר מכן n הקו הנטוי ההפוך הוא שם. 483 00:22:58,551 --> 00:23:00,883 אנחנו לא רואים את זה לפני, אפילו למרות שאני לא הזכרתי את זה. 484 00:23:00,883 --> 00:23:01,886 ואז יש פסיק. 485 00:23:01,886 --> 00:23:03,010 ואז יש דלפק. 486 00:23:03,010 --> 00:23:05,010 >> אבל נראה בפשוט רגע שזה רק 487 00:23:05,010 --> 00:23:09,080 דרך סטנדרטית לומר הדפסה "מספר העשרוני", ציטוט, סוף ציטוט, 488 00:23:09,080 --> 00:23:10,500 כמה מספר עשרוני. 489 00:23:10,500 --> 00:23:13,370 אבל אני הולך להגיד לך מאוחר יותר מה הוא שהמספר העשרוני. 490 00:23:13,370 --> 00:23:16,835 אז העובדה שיש פסיק בprintf האמרה הקו הזה, 491 00:23:16,835 --> 00:23:18,710 משמעות הדבר היא ללכת קדימה ולהדפיס כמה מספר עשרוני. 492 00:23:18,710 --> 00:23:23,110 אה, ודרך אגב, המספר הוא מה ערכו של משתנה זה הוא. 493 00:23:23,110 --> 00:23:25,880 וכך כדי להפוך את זה יותר ברור, אנחנו תראו דוגמא 494 00:23:25,880 --> 00:23:30,930 לפני זמן רב היה מעורב בדיוק printf בהקשר של תוכניות C האמיתית. 495 00:23:30,930 --> 00:23:33,472 >> עכשיו רק כדי לעטוף את חלק שני המושגים הללו. 496 00:23:33,472 --> 00:23:36,680 ביטויים בוליאנית, ייתכן שאין לך הזדמנות להשתמש אלה בתכנית שלך 497 00:23:36,680 --> 00:23:39,450 אבל אתה גם מאוד אולי, במיוחד אם משתמש בתנאים. 498 00:23:39,450 --> 00:23:43,460 ולכן אלה שתי דוגמאות מ גרד מתכוון אם x קטן מ y, 499 00:23:43,460 --> 00:23:48,770 או אם x קטן מ y וy הוא פחות מ z, איך ייתכן שאנו מתרגמים את זה? 500 00:23:48,770 --> 00:23:50,810 >> ובכן, בC זה פשוט הולך להיראות כך. 501 00:23:50,810 --> 00:23:55,300 קצת יותר סוגריים נסתרים,, כמה סימן חיבור מוזר, אבל ביסודו 502 00:23:55,300 --> 00:23:59,160 הרעיונות הם פשוט כמו שהם נמצא בעולם פיסת הפאזל. 503 00:23:59,160 --> 00:24:02,690 אנחנו פשוט בודקים אם משהו הוא פחות ממשהו אחר. 504 00:24:02,690 --> 00:24:03,910 >> מה דעתך על תנאים? 505 00:24:03,910 --> 00:24:09,710 בקליפת אגוז באנגלית, מה שעושה את זה נתח של קוד Scratch אל היית אומר? 506 00:24:09,710 --> 00:24:11,050 >> קהל: משווה בין שני מספרים. 507 00:24:11,050 --> 00:24:13,760 >> דוד י מלאן: משווה בין שני מספרים, ואם x קטן מ y 508 00:24:13,760 --> 00:24:14,860 זה אומר כל כך הרבה. 509 00:24:14,860 --> 00:24:18,080 אם x גדול מ y זה אומר כל כך הרבה, אחר 510 00:24:18,080 --> 00:24:20,740 אם x שווה ל y זה אומר כל כך הרבה. 511 00:24:20,740 --> 00:24:22,180 עכשיו שבו x ו y לא באו? 512 00:24:22,180 --> 00:24:22,680 מי יודע. 513 00:24:22,680 --> 00:24:25,380 נתח זה של גרד קוד הוא מהקשרם. 514 00:24:25,380 --> 00:24:29,050 אבל מה שאנחנו רוצים לעשות עכשיו הוא לתרגם זה רק לרגע כדי לראות. 515 00:24:29,050 --> 00:24:31,660 >> אז כפי שאתה מקבל בנוח השבוע בבעית סט 516 00:24:31,660 --> 00:24:34,190 0 שיחק בעולם הזה בצד השמאל, מבין 517 00:24:34,190 --> 00:24:36,940 שהרעיונות אינם משתנים השבוע. או הבא או מעבר 518 00:24:36,940 --> 00:24:38,690 אנחנו פשוט הולכים להתחיל לכתוב דברים 519 00:24:38,690 --> 00:24:41,240 בצורה שונה עימנו מקלדת במקום העכבר שלנו. 520 00:24:41,240 --> 00:24:44,577 >> אז אם x קטן מ y, ו יש כמה סוגריים יש, 521 00:24:44,577 --> 00:24:47,160 אז יש כמה סוגריים מסולסלים שוב כדי לתמצת אותו סוג של 522 00:24:47,160 --> 00:24:48,970 בדיוק כמו חלקי הפאזל הצהובים עושים. 523 00:24:48,970 --> 00:24:53,000 ואני הולך printf x הוא פחות מ y וכן הלאה. 524 00:24:53,000 --> 00:24:56,540 >> מה הוא נחמד על C, כפי שאתה יכול לראות כאן, 525 00:24:56,540 --> 00:25:00,480 הוא שאתה לא מקבל קינון זה, קינון, קינון זה בהכרח 526 00:25:00,480 --> 00:25:02,220 הולך לדחוף את הקוד שלך בצד הימין. 527 00:25:02,220 --> 00:25:04,990 במקום שאתה יכול להיות כל מה ש הרכב בצורה מסודרת אהב את זה. 528 00:25:04,990 --> 00:25:08,960 אבל זה רק אסתטי פרט שנראה שוב לפני זמן רב. 529 00:25:08,960 --> 00:25:09,660 >> בסדר. 530 00:25:09,660 --> 00:25:13,290 כך שמחזיר אותנו ל תכנית מחפשת מסתורית זה. 531 00:25:13,290 --> 00:25:15,180 בואו בעצם לכתוב קצת קוד. 532 00:25:15,180 --> 00:25:16,830 עכשיו איך אתה רוצה ללכת על כתיבת קוד? 533 00:25:16,830 --> 00:25:21,310 כל השנים האלה שאתה כבר בבעלות Mac או PC, מחשב שולחני או מחשב נייד, 534 00:25:21,310 --> 00:25:24,520 למעשה הייתה לך את היכולת להתחיל לכתוב קוד תכנות. 535 00:25:24,520 --> 00:25:27,050 אבל אתה כנראה חסר סוג מיוחד של תכנית. 536 00:25:27,050 --> 00:25:28,470 אתה בהחלט יכול לכתוב קוד. 537 00:25:28,470 --> 00:25:30,740 אבל אתה לא יכול בהכרח, מחוץ לקופסה, 538 00:25:30,740 --> 00:25:34,210 להמיר את קוד המקור ש לתוך קוד אובייקט, 0s ו 1s 539 00:25:34,210 --> 00:25:35,619 בלי מה במחשב שלך? 540 00:25:35,619 --> 00:25:36,410 קהל: מהדר. 541 00:25:36,410 --> 00:25:37,630 דוד י מלאן: אז מהדר, תקין. 542 00:25:37,630 --> 00:25:39,730 עכשיו רבים מכם ודאי לא בעלי מהדר, 543 00:25:39,730 --> 00:25:41,259 אף פעם לא הוריד מהדר. 544 00:25:41,259 --> 00:25:44,300 אבל אתה רואה שאתה יכול להוריד אותו כמו רוב כל פיסת תוכנה אחרת. 545 00:25:44,300 --> 00:25:47,470 בעולם של מערכת ההפעלה Mac OS, אתה עלול להוריד או שהורידו כבר 546 00:25:47,470 --> 00:25:50,437 משהו שנקרא Xcode או GCC או קלאנג. 547 00:25:50,437 --> 00:25:52,270 אם אתה בא מ עולמך Windows עלול 548 00:25:52,270 --> 00:25:56,190 הוריד Visual Studio, Visual Basic, סביבות כמו ש. 549 00:25:56,190 --> 00:25:59,200 יש עשרות מהדרים בימים אלה שיהיו אפשר להשתמש. 550 00:25:59,200 --> 00:26:01,940 אבל הקצר שלו כאן הוא שזה יהיה כאב 551 00:26:01,940 --> 00:26:04,480 ולמען אמת, טכנולוגי סיוט עבור מאות 552 00:26:04,480 --> 00:26:07,680 של אנשים עם שונה תצורות מחשב לכל 553 00:26:07,680 --> 00:26:09,800 להגדיר המכונות שלהם בדיוק באותה הדרך 554 00:26:09,800 --> 00:26:11,700 כך שכולנו יכולים להיות על אותו הדף. 555 00:26:11,700 --> 00:26:15,240 >> אז מה אנחנו, במקום, לעשות בCS50 הוא אנחנו נותנים לכם 556 00:26:15,240 --> 00:26:18,349 סביבה סטנדרטית, סביבת לינוקס זה 557 00:26:18,349 --> 00:26:20,140 הולך להסתכל קצת משהו כזה. 558 00:26:20,140 --> 00:26:22,980 אתה תראה יותר מזה ב בעיה סט מפרט 1 ש 559 00:26:22,980 --> 00:26:25,330 יהיה להיכנס לאינטרנט בלילה ביום שישי הקרוב. 560 00:26:25,330 --> 00:26:28,360 >> ומה זה אומר הוא שאתה מעתה ואילך 561 00:26:28,360 --> 00:26:32,060 הולכים להיות מסוגל להוריד ולהתקין את תכנית 562 00:26:32,060 --> 00:26:33,650 נקרא Appliance CS50. 563 00:26:33,650 --> 00:26:36,275 ואתה הולך להורדה ול להתקין תוכנה אחרת בשם 564 00:26:36,275 --> 00:26:40,300 hypervisor, הנמצא במרחק דרך מפוארת של השגת מטרה זו. 565 00:26:40,300 --> 00:26:44,600 בין אם בבעלותך מק או PC או מחשב לינוקס או מחשב Solaris, 566 00:26:44,600 --> 00:26:46,830 או הפעלה מטורפת מה ש מערכת המחשב שלך פועל, 567 00:26:46,830 --> 00:26:49,820 אתה הולך להוריד תוכנה נקרא hypervisor זה 568 00:26:49,820 --> 00:26:53,350 הולך לרוץ CS50 מכשיר במחשב שלך 569 00:26:53,350 --> 00:26:55,430 לא משנה מה היא מערכת ההפעלה שלך. 570 00:26:55,430 --> 00:27:00,640 Hypervisor במילים אחרות ממיר הדברים שלנו לכל שפה, 571 00:27:00,640 --> 00:27:03,850 מה הוראות שלך מחשב עצמו מבין. 572 00:27:03,850 --> 00:27:04,962 >> אז זה שכבות. 573 00:27:04,962 --> 00:27:06,920 ושוב, זה סוג של נושאיות במחשב 574 00:27:06,920 --> 00:27:08,722 מדע, הבניין על דברים. 575 00:27:08,722 --> 00:27:09,680 אולי יש לך Windows. 576 00:27:09,680 --> 00:27:10,710 אולי יש לך מערכת ההפעלה Mac OS. 577 00:27:10,710 --> 00:27:12,960 אבל החל מהשבוע הבא אתה הולך הוריד 578 00:27:12,960 --> 00:27:14,980 פיסת תוכנה חופשית נקרא hypervisor. 579 00:27:14,980 --> 00:27:17,800 אתה הולך להורדת חתיכה תוכנה בשם Appliance CS50. 580 00:27:17,800 --> 00:27:21,050 >> זה הולך לרוץ בhypervisor, שהוא הולך לרוץ במחשב שלך. 581 00:27:21,050 --> 00:27:23,030 והתוצאה הסופית היא שכולנו יהיה 582 00:27:23,030 --> 00:27:26,220 יש לי חלון פשוט כמו זה על Mac או למחשב 583 00:27:26,220 --> 00:27:30,160 שנותן לנו את האשליה של כל פועל באותה מערכת הפעלה, 584 00:27:30,160 --> 00:27:32,800 ללא כל אחר השפעה על המחשב שלך. 585 00:27:32,800 --> 00:27:34,870 ואתה יכול במסך מלא זה ובעצם להתנהג 586 00:27:34,870 --> 00:27:37,550 כאילו אתה מפעיל מערכת הפעלה בשם לינוקס, 587 00:27:37,550 --> 00:27:40,270 וזה מה שCS50 המכשיר מבוסס על. 588 00:27:40,270 --> 00:27:42,930 >> אז בואו באמת להשתמש בזה עכשיו לכתוב תכנית. 589 00:27:42,930 --> 00:27:45,450 אתה יכול לכתוב תכנית באמצעות Microsoft Word. 590 00:27:45,450 --> 00:27:48,160 אתה יכול לכתוב תכנית באמצעות TextEdit, או פנקס רשימות, 591 00:27:48,160 --> 00:27:51,880 או כתבן, או פחות או יותר כל מילה תכנית עיבוד השתמשו אי פעם. 592 00:27:51,880 --> 00:27:55,174 אבל המציאות היא שאתה לא צריך להשתמש באמת בתוכניות אלו. 593 00:27:55,174 --> 00:27:57,840 אתה בהחלט לא צריך להשתמש משהו כמו Microsoft Word, ש 594 00:27:57,840 --> 00:28:01,120 יש מול נועז וכתב נטוי, ו גופנים גדולים יותר וגופנים קטנים יותר, 595 00:28:01,120 --> 00:28:03,560 מכיוון שהמחשב לא אכפת מכל זה. 596 00:28:03,560 --> 00:28:05,600 כל המחשב הוא הולך אכפת הוא 597 00:28:05,600 --> 00:28:09,040 אנגלית כמו הוראות שנכתבו בג 598 00:28:09,040 --> 00:28:12,050 >> אז מה שנעשינו בתוך של מכשיר CS50 599 00:28:12,050 --> 00:28:14,290 הוא משתמש בתכנית באופן חופשי זמין, וזה 600 00:28:14,290 --> 00:28:17,360 מותקן מראש בזה מכשיר, שנקרא gedit. 601 00:28:17,360 --> 00:28:22,280 וgedit הוא רק סופר פשוט עורך כמו TextEdit של מערכת ההפעלה Mac OS טקסט, 602 00:28:22,280 --> 00:28:26,200 כמו פנקס הרשימות של Windows שהולכות נראה קצת משהו כזה. 603 00:28:26,200 --> 00:28:28,910 >> אז בואו בעצם לא מסתכל על שקופיות של זה. 604 00:28:28,910 --> 00:28:32,580 אבל בואו באמת ללכת ל הסביבה עצמה. 605 00:28:32,580 --> 00:28:36,090 אני הולך קדימה, להיכנס, בחלון אחר זה, 606 00:28:36,090 --> 00:28:40,910 לCS50 מכשיר שלי, שיש לי מותקן מראש על המחשב הנייד שלי כאן. 607 00:28:40,910 --> 00:28:43,771 >> שים לב ש, כמו Windows ו Mac OS, יש לו כמה תפריטים. 608 00:28:43,771 --> 00:28:45,520 כמו Windows זה מכניס זה שם למטה במקום 609 00:28:45,520 --> 00:28:47,020 של Mac OS, אשר מניחה אותו שם. 610 00:28:47,020 --> 00:28:48,930 אבל המציאות היא שזה כל הסוג של אותו הדבר. 611 00:28:48,930 --> 00:28:50,770 וכאן הוא כל חבורה של תוכנה. 612 00:28:50,770 --> 00:28:51,770 יש Dropbox. 613 00:28:51,770 --> 00:28:54,780 יש חבורה של אבזרים שלמה, תוכניות גרפיות שאנחנו נעלה את 614 00:28:54,780 --> 00:28:56,430 להשתמש מאוחר יותר בטווח סטי בעיה. 615 00:28:56,430 --> 00:28:59,650 יש דפדפן אינטרנט המובנה בכך כי מדובר במחשב לכל דבר מלא 616 00:28:59,650 --> 00:29:01,240 בתוך מחשב. 617 00:29:01,240 --> 00:29:04,170 >> אבל אני הולך ללחוץ את זה השמאלי ביותר סמל לבן כאן, 618 00:29:04,170 --> 00:29:05,890 המהווה את הסמל לgedit. 619 00:29:05,890 --> 00:29:09,650 וזה הולך לפתוח חלון שיש לו שלושה פנלים לזה, 620 00:29:09,650 --> 00:29:12,590 אחד משמאל, אחד עליון, ואחד תחתון. 621 00:29:12,590 --> 00:29:16,071 >> עכשיו זה בזכות אחד עליון זה ש אני הולך לכתוב קצת קוד למעשה. 622 00:29:16,071 --> 00:29:16,820 אז בואו לעשות את זה ,. 623 00:29:16,820 --> 00:29:19,040 אני הולך ללכת לקובץ, שמור. 624 00:29:19,040 --> 00:29:22,100 וייתכן שלא ראה מעודי חלון המסוים הזה לפני. 625 00:29:22,100 --> 00:29:23,620 אבל זה כמו Mac OS או Windows. 626 00:29:23,620 --> 00:29:25,490 זה רק חלון עם כל התיקיות 627 00:29:25,490 --> 00:29:27,290 שיש לי בתוך מחשב זה. 628 00:29:27,290 --> 00:29:30,320 >> ואני הולך להציל את הקובץ כפי hello.c. 629 00:29:30,320 --> 00:29:32,690 ואני מתכוון ללכת קדימה ולחץ על שמירה. 630 00:29:32,690 --> 00:29:36,364 ועכשיו שמתי לב שיש לי כרטיסייה בצד השמאל למעלה בשם hello.c. 631 00:29:36,364 --> 00:29:38,280 אז כנראה די מוכר גם אם יש לך לא 632 00:29:38,280 --> 00:29:40,240 השתמשתי בתכנית מסוימת זה לפני. 633 00:29:40,240 --> 00:29:44,890 >> ועכשיו אני הולך להקליד באלה רצף די נסתר של פקודות 634 00:29:44,890 --> 00:29:46,360 שראינו לפני רגע. 635 00:29:46,360 --> 00:29:49,330 כולל, אני סטנדרטי / O.h. 636 00:29:49,330 --> 00:29:50,600 עוד על רגע ש. 637 00:29:50,600 --> 00:29:55,670 void main int, מתולתל פתוח סד, נסגר סד מתולתל. 638 00:29:55,670 --> 00:30:01,570 ואז בתוך משם אני חושב שזה שם היה לנו "שלום עולם", ופסיק. 639 00:30:01,570 --> 00:30:03,100 ועכשיו לחסוך. 640 00:30:03,100 --> 00:30:08,780 >> אז זה תכנית שנכתבה בשפת C, נכתב, ולכן, בקוד מקור. 641 00:30:08,780 --> 00:30:10,720 אבל אני לא יכול פשוט להפעיל את התכנית. 642 00:30:10,720 --> 00:30:13,390 אני סוג של רוצה להכפיל לחץ על סמל במקום, 643 00:30:13,390 --> 00:30:16,390 אבל אין סמל קיים אחר מקובץ קוד המקור. 644 00:30:16,390 --> 00:30:20,359 מה, שוב, הוא התהליך עכשיו ש אני צריך להפעיל קובץ זה דרך? 645 00:30:20,359 --> 00:30:21,150 קהל: מהדר. 646 00:30:21,150 --> 00:30:22,399 דוד י מלאן: אז מהדר. 647 00:30:22,399 --> 00:30:24,890 אז במחשבים השונים לעשות את זה בדרכים שונות. 648 00:30:24,890 --> 00:30:27,480 אבל מה שעשינו כאן ב מכשיר CS50 זה 649 00:30:27,480 --> 00:30:31,260 נציג של איך אתה יכול לעשות את זה במערכות רבות ושונות, 650 00:30:31,260 --> 00:30:34,036 הוא אני פשוט הולך להפעיל פקודה נקראת איפור. 651 00:30:34,036 --> 00:30:35,660 ולהפוך אותו, פשוטו כמשמעו, הולך לעשות את זה. 652 00:30:35,660 --> 00:30:36,640 לגרום לי תכנית. 653 00:30:36,640 --> 00:30:39,060 >> אז להפוך את הולך לרוץ מהדר עבורי. 654 00:30:39,060 --> 00:30:42,160 והשם של התכנית אני רוצה לעשות הוא שלום. 655 00:30:42,160 --> 00:30:43,510 עכשיו לעשות היא תכנית. 656 00:30:43,510 --> 00:30:47,170 ולהפוך הוא חכם מספיק כדי להבין שאם אני אומר לעשות שלום, 657 00:30:47,170 --> 00:30:50,980 זה הולך להיראות באופן אוטומטי לhello.c קובץ שנקרא 658 00:30:50,980 --> 00:30:53,420 רק בגלל זה דרך זה מוגדר. 659 00:30:53,420 --> 00:31:00,300 >> לכן, כאשר עכשיו אני מכה הכנס כאן, זה רק שורה נסתרות מטורפת קיבלה להורג. 660 00:31:00,300 --> 00:31:02,720 ותאמין לי, לפני ש ארוך, בתוך ימים ספורים, 661 00:31:02,720 --> 00:31:05,590 תוכל להבין מה כל של שאמצעי שטויות. 662 00:31:05,590 --> 00:31:11,150 אבל לעת עתה, רק יודע שיעשו ביצוע מאולץ של מהדר. 663 00:31:11,150 --> 00:31:13,290 במילים אחרות, זה מצא מהדר במחשב שלי 664 00:31:13,290 --> 00:31:14,820 זה מותקן מראש על מכשיר CS50 665 00:31:14,820 --> 00:31:16,560 שניתן לכם בבעית הסט 1. 666 00:31:16,560 --> 00:31:20,990 ואת זה אז לקח hello.c כ קלט, והופק ככל הנראה 667 00:31:20,990 --> 00:31:23,040 0s ו 1s כפלט. 668 00:31:23,040 --> 00:31:29,410 >> וכברירת מחדל מה שהיא עושה זה חוסך אלה 0s ו 1s בקובץ שנקראו שלום. 669 00:31:29,410 --> 00:31:33,180 ולמרות שתחביר זה אולי יותר מדי להיות חדש לך, פשוט באומרו נקודה 670 00:31:33,180 --> 00:31:37,110 לקצץ שלום הולך להיות משמעות הדבר היא שבאמצעותו אני מפעיל תכנית זו. 671 00:31:37,110 --> 00:31:40,360 >> לעת עתה ולפחות זוג של שבועות, כמעט כל התוכניות 672 00:31:40,360 --> 00:31:44,230 אנחנו כותבים הולכים להיות ב חלונות טקסט שחורים ולבן. 673 00:31:44,230 --> 00:31:47,006 לא עכברים, לא לחיצה, אין חלונות, אין סמלים. 674 00:31:47,006 --> 00:31:49,630 אנחנו הולכים לשמור את זה פשוט ולהתמקד ברעיונות שבבסיס 675 00:31:49,630 --> 00:31:52,490 בתחילה לפני שנגיע למשהו רמה גבוהה יותר, למשל, 676 00:31:52,490 --> 00:31:56,410 כמו משחק הפריצה שדיברנו על בהרצאה הראשונה בשבוע שעבר. 677 00:31:56,410 --> 00:32:00,820 >> לכן, כאשר אני מכה הכנס כאן, זה שווה ערך בטקסט בלבד סביבה 678 00:32:00,820 --> 00:32:03,272 להכפיל לחיצה על סמל שנקרא שלום. 679 00:32:03,272 --> 00:32:05,480 מה אתה מצפה שרצון יקרה כשאני על Enter לאחר מכן? 680 00:32:05,480 --> 00:32:07,120 >> קהל: זה יהיה להדפיס "hello world". 681 00:32:07,120 --> 00:32:10,000 >> דוד י מלאן: אני מקווה ש הוא יודפס "שלום עולם". 682 00:32:10,000 --> 00:32:11,370 ואכן הוא עשה. 683 00:32:11,370 --> 00:32:13,690 עכשיו יש כבר כמה תחביר נסתר כאן. 684 00:32:13,690 --> 00:32:15,950 בואו אחורה רק רגע ולראות אם אנחנו 685 00:32:15,950 --> 00:32:19,530 לא יכול להתחיל להסיק רק על ידי התעסקות, מנסה ונכשל, 686 00:32:19,530 --> 00:32:21,130 על מה שקורה כאן. 687 00:32:21,130 --> 00:32:23,609 מה אם אני להיפטר מn הקו הנטוי? 688 00:32:23,609 --> 00:32:25,650 עכשיו חלק מכם שיש לי לתכנת לפני כנראה 689 00:32:25,650 --> 00:32:27,054 יודע מייד מה זה אומר. 690 00:32:27,054 --> 00:32:29,220 אבל לאלו מכם שיש לי אף פעם לא מתוכנת לפני, 691 00:32:29,220 --> 00:32:34,052 לפחות חושב לעצמך מה קורה לשנות כאשר אני להפעיל מחדש תכנית זו? 692 00:32:34,052 --> 00:32:37,010 אז אני הולך לחזור אליי חלון שחור ולבן קטן, ש 693 00:32:37,010 --> 00:32:39,290 הוא החלון שבו אני יכול לקמפל זה. 694 00:32:39,290 --> 00:32:41,130 אני הולך להדר מחדש את שלום. 695 00:32:41,130 --> 00:32:43,520 אנחנו הולכים לראות אותו רצף מסתורי של פקודות. 696 00:32:43,520 --> 00:32:45,719 ואני הולך לעשות לוכסן נקודת שלום. 697 00:32:45,719 --> 00:32:48,260 ועכשיו מישהו, אם היית, שמעולם לא תכנת לפני, 698 00:32:48,260 --> 00:32:49,770 מה יכול להיות שונה הפעם? 699 00:32:49,770 --> 00:32:50,020 כן. 700 00:32:50,020 --> 00:32:51,840 >> קהל: זה לא יעצור "עולם שלום". הדפסה 701 00:32:51,840 --> 00:32:52,660 >> דוד י מלאן: זה הולך מצטער to--? 702 00:32:52,660 --> 00:32:54,210 >> קהל: זה לא יעצור הדפסתו? 703 00:32:54,210 --> 00:32:55,810 >> דוד י מלאן: זה לא קורה להפסיק להדפיס "hello world". 704 00:32:55,810 --> 00:32:56,560 אז רעיון לא רע. 705 00:32:56,560 --> 00:32:58,633 רעיונות אחרים? 706 00:32:58,633 --> 00:32:59,132 כן. 707 00:32:59,132 --> 00:33:00,060 >> קהל: הודעת שגיאה? 708 00:33:00,060 --> 00:33:01,750 >> דוד י מלאן: שגיאה הודעה, אישור, יכול להיות. 709 00:33:01,750 --> 00:33:02,250 מה עוד? 710 00:33:02,250 --> 00:33:05,479 קהל: זה יכול להדפיס סוגרים עם פסיק גם כן? 711 00:33:05,479 --> 00:33:08,270 דוד י מלאן: אולי להדפיס סוגרים עם פסיק, כמו גם. 712 00:33:08,270 --> 00:33:11,950 אז אולי קו נטוי שלאחר מכן הוא חלק סוג של terminous זה חשוב. 713 00:33:11,950 --> 00:33:14,860 כל מחשבות אחרות? 714 00:33:14,860 --> 00:33:16,412 >> רעיונות אז הכל טוב. 715 00:33:16,412 --> 00:33:18,370 ולמעשה, זה הולך להיות הודעת שגיאה. 716 00:33:18,370 --> 00:33:20,400 זה כנראה סביר ביותר להיות התשובה באופן כללי 717 00:33:20,400 --> 00:33:22,420 בשבועות הבאים כפי שאנו לומדים בקוד כאן. 718 00:33:22,420 --> 00:33:27,680 >> אבל לעת עתה זוכר שמחשבים רק לעשות מה שאתה אומר להם לעשות. 719 00:33:27,680 --> 00:33:30,400 בדומה הבוטנים המגוחכים חמאה וריבת דוגמא. 720 00:33:30,400 --> 00:33:33,860 המחשבים האנושיים שלנו היו אמור רק לעשות מה שאתה אמר להם לעשות. 721 00:33:33,860 --> 00:33:36,250 אז במקרה הזה, אם אתה לא מספר את המחשב 722 00:33:36,250 --> 00:33:41,190 כדי להעביר את הסמן מהבהב ל השורה הבאה, זה לא הולך לעשות את זה. 723 00:33:41,190 --> 00:33:45,390 לכן, כאשר אני מפעיל את תכנית זו עכשיו, תבחין בהבדל. 724 00:33:45,390 --> 00:33:46,900 >> נראה כמו באג. 725 00:33:46,900 --> 00:33:49,190 זה באג אסתטי, אולי. 726 00:33:49,190 --> 00:33:53,310 אבל מה הוא שונה על זה פלט מול האחרון ברורה? 727 00:33:53,310 --> 00:33:53,810 כן. 728 00:33:53,810 --> 00:33:54,920 >> קהל: היא לא עשתה קו חדש. 729 00:33:54,920 --> 00:33:56,586 >> דוד י מלאן: זה לא עשה קו חדש. 730 00:33:56,586 --> 00:33:58,740 עכשיו אלו מכם ש יש לי דפי אינטרנט אולי הפכו את 731 00:33:58,740 --> 00:34:01,910 לפני, אתה אולי יודע של תג BR או תג פסקה, 732 00:34:01,910 --> 00:34:03,120 דומה מאוד ברוחו. 733 00:34:03,120 --> 00:34:06,680 דפדפן אינטרנט יהיה להתעלם ממך עד אתה אומר את זה בדיוק מה לעשות. 734 00:34:06,680 --> 00:34:10,020 בדומה לכך, היא שפה כמו C רק הולך לעשות את מה שאתה אומר את זה לעשות. 735 00:34:10,020 --> 00:34:12,730 >> אז הסיבה ש כל דוגמאות הללו, 736 00:34:12,730 --> 00:34:15,350 עד כה, יש לי סוג של כבדרך אגב היה קו נטוי זה 737 00:34:15,350 --> 00:34:18,560 שם, זה האמצעי שבו אתה מבטא את עצמך 738 00:34:18,560 --> 00:34:21,380 כדמות קו חדשה, אם אפשר לומר כך. 739 00:34:21,380 --> 00:34:26,219 ואתה יכול סוג של מעריך, אולי, כי זה היה נראה די טיפשי 740 00:34:26,219 --> 00:34:27,070 אם שום דבר אחר. 741 00:34:27,070 --> 00:34:29,150 אם אני רוצה קו חדש, רק להכות הזן ולאחר מכן סוג 742 00:34:29,150 --> 00:34:32,219 לשחוט את הקוד כמו ש לא ממש צריך לשפשף אותך בדרך הנכונה. 743 00:34:32,219 --> 00:34:33,830 ואפילו אם לא ממש אכפת בשלב זה, 744 00:34:33,830 --> 00:34:35,830 אתה מבין ש זה לא במיוחד 745 00:34:35,830 --> 00:34:37,870 חתיכה נראית טובה של קוד. 746 00:34:37,870 --> 00:34:39,969 >> ואז מה העולם לפני שנים החליטו הוא 747 00:34:39,969 --> 00:34:43,420 כי כאשר אתה רוצה לשים סמן אל שורה חדשה באופן מפורש, 748 00:34:43,420 --> 00:34:46,332 באופן מפורש שאתה חייב לומר קו חדש, הקו הנטוי n. 749 00:34:46,332 --> 00:34:48,040 ויש כמה אחר סמלים כמו ש. 750 00:34:48,040 --> 00:34:50,719 אבל לעת עתה אנחנו פשוט להתמקד בn הקו הנטוי. 751 00:34:50,719 --> 00:34:53,790 >> עכשיו בואו להפוך את התכנית קצת יותר מעניין. 752 00:34:53,790 --> 00:34:59,200 אני הולך קדימה, זה זמן לפתוח את קובץ חדש. 753 00:34:59,200 --> 00:35:02,520 אני הולך להציל את זה כhello-1.c. 754 00:35:02,520 --> 00:35:05,540 וסתם בשביל הכיף, אני הולך ללכת הכניס אותו לתוך תיקיית Dropbox שלי. 755 00:35:05,540 --> 00:35:09,030 >> כפי שתראה בCS50 תיעוד של המכשיר, 756 00:35:09,030 --> 00:35:11,210 מאוחר יותר שבוע לבעיה זו Set 1, אנחנו נעודד 757 00:35:11,210 --> 00:35:13,230 כדי שתוכל להשתמש Dropbox או איזה שירות שווה ערך, 758 00:35:13,230 --> 00:35:15,430 כי אז כל הקוד שלך הולך להיות מגובים באופן אוטומטי. 759 00:35:15,430 --> 00:35:17,830 ואז זה למה לי הלך לתיקייה זו כאן. 760 00:35:17,830 --> 00:35:20,230 >> ועכשיו אני הולך לכתוב תכנית שונה במקצת. 761 00:35:20,230 --> 00:35:24,740 כולל, אני סטנדרטי / O.h void main int,. 762 00:35:24,740 --> 00:35:29,660 ולאחר מכן בכאן printf, שלום עולם, שזה בדיוק אותו הדבר כמו קודם. 763 00:35:29,660 --> 00:35:32,450 >> אבל עכשיו אני רוצה להדפיס משהו זה קצת שונה. 764 00:35:32,450 --> 00:35:34,800 אני רוצה להדפיס, אומר, "שלום, דוד." 765 00:35:34,800 --> 00:35:37,590 בסדר, אז ברור, אני מקווה שזה צריך 766 00:35:37,590 --> 00:35:40,360 להיות במקרה זה אם אני הידור מחדש תכנית זו, הפעל מחדש את זה, 767 00:35:40,360 --> 00:35:41,840 זה הולך לומר "שלום, דוד." 768 00:35:41,840 --> 00:35:45,160 >> אבל מה אם אני רוצה להציג זה סוג של משתנה, 769 00:35:45,160 --> 00:35:49,240 הרעיון של מיכל שקורה לאחסון D--v-i-d ולא קשה קוד זה 770 00:35:49,240 --> 00:35:50,600 לתכנית שלי. 771 00:35:50,600 --> 00:35:53,430 ובכן מה אם אני מתחיל עושה משהו כזה? 772 00:35:53,430 --> 00:35:57,120 >> מחרוזת של, אז זה משתנה. 773 00:35:57,120 --> 00:36:00,250 אם אתה רוצה מחרוזת, מוכר גם בשם מילה או ביטוי. 774 00:36:00,250 --> 00:36:03,485 רצף של תווים הוא מה אנחנו בתכנות קוראים מחרוזת. 775 00:36:03,485 --> 00:36:06,610 אנחנו רק הולכים הגנרי שיחה זה זה, כי זה שם פשוט נחמד. 776 00:36:06,610 --> 00:36:08,010 אבל אני יכול לקרוא לזה שום דבר. 777 00:36:08,010 --> 00:36:12,920 >> אני הולך לומר שווים של המחרוזת ציטוט סוף ציטוט, "דוד", פסיק. 778 00:36:12,920 --> 00:36:18,330 ועכשיו אני רוצה להכניס D--v-i-d למה שאני מדפיס. 779 00:36:18,330 --> 00:36:23,720 ולפני שראינו טיזר על המסך של כמה תחביר מיוחד 780 00:36:23,720 --> 00:36:26,050 שאיפשר לנו תחליף בשווי. 781 00:36:26,050 --> 00:36:29,250 מה היה מיוחד סמל לפני כמה שקופיות? 782 00:36:29,250 --> 00:36:30,040 >> אז אחוזים. 783 00:36:30,040 --> 00:36:33,830 בזמנו זה היה אחוזים ד למספר עשרוני. 784 00:36:33,830 --> 00:36:35,850 כי לא ממש נראה לי רלוונטי כאן. 785 00:36:35,850 --> 00:36:38,650 מתברר של שם עוד סמל אחוזים, 786 00:36:38,650 --> 00:36:42,810 שהוא של אחוזים, העומד למיקום עבור מחרוזת. 787 00:36:42,810 --> 00:36:49,350 >> אז עכשיו, מאוד פשוט, אני הולך לעשות שלום-1, 788 00:36:49,350 --> 00:36:54,210 כי קובץ זה נקרא שלום-1.c, וקש Enter. 789 00:36:54,210 --> 00:36:56,230 ואני דפוק. 790 00:36:56,230 --> 00:36:57,394 מה קורה? 791 00:36:57,394 --> 00:37:00,560 ובכן, כאן מקום שבו אנחנו צריכים להתחיל מעריך שאנחנו בפקודה זו 792 00:37:00,560 --> 00:37:02,810 סביבת שורה, זה טקסט הסביבה בלבד. 793 00:37:02,810 --> 00:37:06,114 אין לחיצה על אייקונים כמו תיקיות עכשיו. 794 00:37:06,114 --> 00:37:07,280 ונזכר לפני רגע. 795 00:37:07,280 --> 00:37:10,740 במה שהתיקייה עשתה אני אומר אני מציל את הקוד שלי? 796 00:37:10,740 --> 00:37:11,657 אז תיקיית Dropbox. 797 00:37:11,657 --> 00:37:12,989 אפשר היה נקרא כל דבר. 798 00:37:12,989 --> 00:37:14,530 אבל זה קורה להיקרא Dropbox. 799 00:37:14,530 --> 00:37:18,380 אז אני איכשהו צריך ללחוץ פעמים על שתיקיית Dropbox על מנת לקבל 800 00:37:18,380 --> 00:37:21,657 לתוך זה ולקבל בי הקוד נקרא שלום-1.c. 801 00:37:21,657 --> 00:37:24,490 למעשה, תן לי ללכת קדימה ולמזער חלון זה רק לרגע. 802 00:37:24,490 --> 00:37:27,560 בדיוק כמו Windows או Mac OS, יש תיקיות בלינוקס. 803 00:37:27,560 --> 00:37:29,410 ישנן תיקיות במכשיר CS50. 804 00:37:29,410 --> 00:37:32,380 זה רק עכשיו אנחנו מגבילים את עצמנו לסביבת הטקסט הזה. 805 00:37:32,380 --> 00:37:34,700 >> אבל אם אני לוחץ לחיצה כפולה על Dropbox, שים לב שיש 806 00:37:34,700 --> 00:37:37,210 הוא הקובץ שאני רוצה לקמפל. 807 00:37:37,210 --> 00:37:41,430 אבל אני צריך את זה שחור ולבן חלון מסוף, אם אפשר לומר כך. 808 00:37:41,430 --> 00:37:45,750 אבל אני צריך, לכן, כדי לעבור שלתיקייה או ספרייה. 809 00:37:45,750 --> 00:37:48,290 אז מעט מסתורי, אבל אתה תתרגל לזה יותר מדי. 810 00:37:48,290 --> 00:37:50,430 >> בעולם של לינוקס, ששוב היא ההפעלה 811 00:37:50,430 --> 00:37:54,860 מערכת שאנו פועלים בתוך CS50 מכשיר, יש פקודה שנקראת CD. 812 00:37:54,860 --> 00:37:58,310 מה שאומר שאני יכול לעשות CD, חלל, Dropbox. 813 00:37:58,310 --> 00:37:59,900 CD, שינוי בספרייה. 814 00:37:59,900 --> 00:38:00,400 ימין. 815 00:38:00,400 --> 00:38:02,890 חזרה ביום שבו אנשים היו המצאת מחשבים והפעלה 816 00:38:02,890 --> 00:38:05,806 מערכות דומות לזו, הם רצו הקלד את ההקשות כמה שפחות. 817 00:38:05,806 --> 00:38:08,760 אז הדרך הקלה ביותר לומר שינוי הספרייה הייתה CD. 818 00:38:08,760 --> 00:38:13,910 >> אז אם אני מכה CD, החלל Dropbox, שים לב מה השתנה כאן. 819 00:38:13,910 --> 00:38:16,480 בתוך סוגריים המכשיר הוא מסוג 820 00:38:16,480 --> 00:38:19,360 של מנסה לרצות אותי ו מזכיר לי איפה אני. 821 00:38:19,360 --> 00:38:21,480 אז התיקייה הפתוחה הוא Dropbox. 822 00:38:21,480 --> 00:38:24,950 אם אני עכשיו הקלד ls ל רשימה, שוב תמציתית, 823 00:38:24,950 --> 00:38:27,540 בגלל שאנשים לא רוצים הקלד בחזרה ביום-S-t l-i. 824 00:38:27,540 --> 00:38:29,300 אז הם עשו את זה במקום LS. 825 00:38:29,300 --> 00:38:30,110 >> הזן. 826 00:38:30,110 --> 00:38:35,740 שים לב שאני רואה את שני דברים, הלו-1.c, ולאחר מכן דבר נסתר זה, 1m המקור. 827 00:38:35,740 --> 00:38:38,310 זה רק דרך לומר שלי קוד מקור של השבוע השנייה 1. 828 00:38:38,310 --> 00:38:42,020 זה תיקייה אני הורדתי מ באתר CS50 שעשיתי מוקדם יותר היום 829 00:38:42,020 --> 00:38:43,990 ופשוט לשים אותו לתוך מכשיר מראש. 830 00:38:43,990 --> 00:38:47,550 >> אבל לעת עתה הדבר היחיד שאנחנו אכפת לי עושה תכנית זו. 831 00:38:47,550 --> 00:38:50,440 לכן, כאשר אני מקליד לעשות שלום-1, הזן. 832 00:38:50,440 --> 00:38:51,320 לעזאזל. 833 00:38:51,320 --> 00:38:53,060 משהו השתבש. 834 00:38:53,060 --> 00:38:54,580 אז בואו להקניט זה לגזרים. 835 00:38:54,580 --> 00:38:58,489 ולמרבה הצער, זו היא שבו דברים לקבל קצת מלחיץ בהתחלה, 836 00:38:58,489 --> 00:39:00,280 לפחות אם יש לך אף פעם לא מתוכנת לפני. 837 00:39:00,280 --> 00:39:00,980 >> אלוהים. 838 00:39:00,980 --> 00:39:04,990 כתבתי תכנית שני קו ו יש לי ארבע שורות של שגיאות. 839 00:39:04,990 --> 00:39:07,180 אז מה קורה כאן. 840 00:39:07,180 --> 00:39:11,370 בראש ובראשונה תמיד לגלול אחורה ולמצוא את הודעת השגיאה הראשונה, 841 00:39:11,370 --> 00:39:15,730 כי לעתים קרובות מהדרים רק מתבלבל ממה שאתה ואני עושה. 842 00:39:15,730 --> 00:39:17,000 מהדרים הם די מטומטמים. 843 00:39:17,000 --> 00:39:18,360 הם רק יעשו את מה ש אתה אומר להם לעשות. 844 00:39:18,360 --> 00:39:21,484 ואם אתה לבלבל אותם, הם פשוט הולך להקיא סוג של הידיים שלהם 845 00:39:21,484 --> 00:39:25,010 ואולי לזרוק יותר הודעות שגיאה מ רלוונטיים למעשה. 846 00:39:25,010 --> 00:39:26,380 >> אז בואו נסתכל בראשון. 847 00:39:26,380 --> 00:39:27,540 סופר מסתורי בהתחלה. 848 00:39:27,540 --> 00:39:31,050 אבל שימו לב, כאן זה שם קובץ שבו אני דפוק כנראה. 849 00:39:31,050 --> 00:39:36,570 קולון 5, מעי גס 5 רק אומר על קו 5 בדמות החמישית. 850 00:39:36,570 --> 00:39:39,760 אז הגיס החמישי של דמויות, אם תרצה, שגיאה. 851 00:39:39,760 --> 00:39:41,870 שימוש במחרוזת מזהה לא מוצהרת. 852 00:39:41,870 --> 00:39:43,120 האם התכוון ל n הסטנדרטי? 853 00:39:43,120 --> 00:39:44,850 >> לא, התכוונתי מחרוזת. 854 00:39:44,850 --> 00:39:47,640 ואז זה סוג של העתקה והדבקה 855 00:39:47,640 --> 00:39:50,700 מה אני הקלדתי באמת לצייר שלי תשומת לב למקום שבי דפוק. 856 00:39:50,700 --> 00:39:54,260 אז לכמה C סיבה, או לפחות מהדר 857 00:39:54,260 --> 00:39:56,470 אינו מבין את מילת מחרוזת. 858 00:39:56,470 --> 00:39:57,890 וזה בגלל שאנחנו המצאנו אותו. 859 00:39:57,890 --> 00:40:01,440 אז מחרוזת אינה קיימת בג מה CS50 עושה, 860 00:40:01,440 --> 00:40:03,380 בשבועות הראשונים רק של המעמד, 861 00:40:03,380 --> 00:40:05,700 הוא שאנו מספקים כמה אימונים גלגלים, אם אפשר לומר כך. 862 00:40:05,700 --> 00:40:11,160 ואנחנו שמים את גלגלי העזר הללו בתוך קובץ מיוחד בשם CS50.h. 863 00:40:11,160 --> 00:40:14,970 >> אז זה השני של שני קובץ שמות שככל הנראה יסתיימו בשעתי נקודה. 864 00:40:14,970 --> 00:40:16,300 בואו אחורה. 865 00:40:16,300 --> 00:40:19,360 Printf הוא הצהרה או פונקציה שככל הנראה מדפיס משהו 866 00:40:19,360 --> 00:40:20,580 למסך. 867 00:40:20,580 --> 00:40:23,470 אבל אתה לא ראית אותי ליישם printf, תקין. 868 00:40:23,470 --> 00:40:26,360 שנות מישהו לפני מיושמות printf. 869 00:40:26,360 --> 00:40:30,420 במה שקובץ היית מהמר שהוא או שהיא שמה את היישום 870 00:40:30,420 --> 00:40:34,270 לprintf, הקוד לprintf? 871 00:40:34,270 --> 00:40:36,860 >> בקובץ שנקרא סטנדרטי I / O.h. 872 00:40:36,860 --> 00:40:39,930 למעשה, זה כנראה ב שני קבצים, אני סטנדרטי / O.h, 873 00:40:39,930 --> 00:40:42,650 אשר עומד על כותרת קובץ, ואני רגיל / O.c, 874 00:40:42,650 --> 00:40:44,060 אשר מייצג את קוד מקור C. 875 00:40:44,060 --> 00:40:48,220 אז הוא או היא כמה שנים צנחו לפני הקוד שהם כתבו לקובץ ש 876 00:40:48,220 --> 00:40:51,240 כדי שאנשים כמונו שנים מאוחר יותר יכולות לכלול אותו, 877 00:40:51,240 --> 00:40:53,040 אם אפשר לומר כך, בתוכניות שלנו. 878 00:40:53,040 --> 00:40:56,320 >> ואכן, זה מה שהסולמית ואחריו את המילה כוללים עושה. 879 00:40:56,320 --> 00:41:00,250 זה נראה בכונן הקשיח המקומי, מוצא את הקובץ שנקרא אני סטנדרטי / O.h, 880 00:41:00,250 --> 00:41:03,840 ולאחר מכן ביעילות עותקים ו מדביק אותו בתוך הקובץ שלי. 881 00:41:03,840 --> 00:41:07,210 אז עכשיו התכנית שלי יודעת כיצד להדפיס למסך. 882 00:41:07,210 --> 00:41:11,120 >> אז לפי ההיגיון הזה, שבו מוגדרת מחרוזת? 883 00:41:11,120 --> 00:41:12,260 >> קהל: CS50.h. 884 00:41:12,260 --> 00:41:13,290 >> דוד י מלאן: CS50.h. 885 00:41:13,290 --> 00:41:15,540 ואכן, זה מה שאנחנו, צוות הליבה, עשה. 886 00:41:15,540 --> 00:41:19,590 אנחנו כבר המצאנו כמה סוגי נתונים, אם אפשר לומר כך, כמו מחרוזת, 887 00:41:19,590 --> 00:41:22,370 בנוסף לאלה שאתה לקבל בחינם, כמו int. 888 00:41:22,370 --> 00:41:26,010 ואנו רואים אחרים כמו char לאופי ועוד כמה. 889 00:41:26,010 --> 00:41:30,670 בתוך CS50.h הוא, ככל הנראה, לפחות חלק אזכור למחרוזת. 890 00:41:30,670 --> 00:41:34,980 >> אז עכשיו תן לי ללכת קדימה ואיפור בשידור חוזר שלום-1. 891 00:41:34,980 --> 00:41:37,100 אני להתקרב שוב ולחצות את האצבעות שלי. 892 00:41:37,100 --> 00:41:41,370 עכשיו על ידי שעשה אחד לשנות תקנתי את רוב הדברים. 893 00:41:41,370 --> 00:41:42,100 אבל לעזאזל. 894 00:41:42,100 --> 00:41:44,290 יותר אחוזים מאשר טיעוני נתונים. 895 00:41:44,290 --> 00:41:45,980 מה עשיתי לא בסדר הפעם? 896 00:41:45,980 --> 00:41:47,420 >> אז זה עדיין די מסתורי. 897 00:41:47,420 --> 00:41:51,560 אבל שגיאה זו היא על קו 7 ואופי 21. 898 00:41:51,560 --> 00:41:53,880 אז בואו נלך לחפש כאן. 899 00:41:53,880 --> 00:41:55,350 זה קצת עדין. 900 00:41:55,350 --> 00:41:59,167 אבל אם אתה חושב על מה ש הרעיונות הבסיסיים כאן הם, 901 00:41:59,167 --> 00:42:00,500 אולי אנחנו יכולים להפריד את זה. 902 00:42:00,500 --> 00:42:02,300 >> אז printf הוא השם של הפונקציה. 903 00:42:02,300 --> 00:42:04,960 סוגריים, עד כה, הוא בדיוק כמו מה שאנו מקימים סביב 904 00:42:04,960 --> 00:42:07,005 הדברים שאנו עוברים כתשומות לפונקציה. 905 00:42:07,005 --> 00:42:08,921 בסדר, רק אמנה אנושית שרירותית. 906 00:42:08,921 --> 00:42:09,919 להשתמש בסוגריים. 907 00:42:09,919 --> 00:42:12,460 בתוך סוגריים אלה אנחנו כבר לשים במרכאות כפולות, 908 00:42:12,460 --> 00:42:14,810 ואז מחרוזת כמו "עולם שלום." 909 00:42:14,810 --> 00:42:18,160 >> אבל שבדוגמא קודמת מאוד בקצרה עשו אנחנו מסתכלים עם סריטות. 910 00:42:18,160 --> 00:42:22,590 והיו לנו ד אחוזים, מה עוד היה בתוך סוגריים אלה 911 00:42:22,590 --> 00:42:23,730 שקראתי באופן מילולי? 912 00:42:23,730 --> 00:42:24,230 כן. 913 00:42:24,230 --> 00:42:28,166 >> קהל: אז זה מה שאתה לוקח [לא ברור] מבפנים [לא ברור] 914 00:42:28,166 --> 00:42:30,200 מה אלה [לא ברורים]? 915 00:42:30,200 --> 00:42:31,200 דוד י מלאן: בדיוק. 916 00:42:31,200 --> 00:42:32,700 אז היו לנו ד אחוזים. 917 00:42:32,700 --> 00:42:36,620 אבל אז הייתה לנו קרוב ציטוט, פסיק, דלפק. 918 00:42:36,620 --> 00:42:37,120 ימין. 919 00:42:37,120 --> 00:42:40,680 אנו שצוינו מה שאנחנו רוצים לעשות כמציין המיקום. 920 00:42:40,680 --> 00:42:44,621 אז מה אני הולך לעשות כאן הוא פסיק, מה אתה רוצה ממני לשים? 921 00:42:44,621 --> 00:42:45,120 קהל: ס 922 00:42:45,120 --> 00:42:46,828 דוד י מלאן: S, כי ים במקרה זה 923 00:42:46,828 --> 00:42:48,700 הוא השם של מיכל האחסון. 924 00:42:48,700 --> 00:42:50,180 זה שמו של שקערת הזכוכית. 925 00:42:50,180 --> 00:42:53,610 בעוד שבעבר זה היה נגדי שב דוגמא Scratch פשוט הסתכלנו. 926 00:42:53,610 --> 00:42:56,630 אז עכשיו אחרי שעשה שני שינויים, תנו לי להתקרב 927 00:42:56,630 --> 00:42:59,800 ולנסות פעם נוספת ל לקמפל תכנית זו. 928 00:42:59,800 --> 00:43:01,596 >> עכשיו אני רואה ששורה נסתרות. 929 00:43:01,596 --> 00:43:03,470 אבל זה בעצם שמו של המהדר. 930 00:43:03,470 --> 00:43:04,886 צלצול הוא השם של המהדר. 931 00:43:04,886 --> 00:43:07,100 לעשות הוא פשוט הציל אותי כאב הראש של אי פעם 932 00:43:07,100 --> 00:43:09,830 הקלדה כי הפקודה ארוכה מטורפת. 933 00:43:09,830 --> 00:43:14,900 אז עכשיו אם אני dot לקצץ שלום-1, אני צריך לראות את "שלום, דוד." 934 00:43:14,900 --> 00:43:16,450 >> די משעמם, אם כי, נכון? 935 00:43:16,450 --> 00:43:18,158 היינו יכולים לעשות זה הרבה יותר פשוט 936 00:43:18,158 --> 00:43:20,940 בלי לדבר על משתנים וCS50.h וכל זה. 937 00:43:20,940 --> 00:43:23,080 אז בואו נעשה את זה קצת יותר מעניין. 938 00:43:23,080 --> 00:43:31,010 >> בנוסף לCS50.h, יש דברים כמו מחרוזת 939 00:43:31,010 --> 00:43:34,550 הכריז, ספריית CS50 יש גם כמה פונקציות. 940 00:43:34,550 --> 00:43:38,520 לפני שנים אז בדיוק כמו, מישהו כתב printf ולשים אותו בתקן I / O.h 941 00:43:38,520 --> 00:43:39,530 וחלק אחר של קובץ. 942 00:43:39,530 --> 00:43:44,010 >> אנחנו, צוות CS50, כתבנו פונקציה נקרא GetChar, GetDouble, GetFloat, 943 00:43:44,010 --> 00:43:47,610 GetInt, GetLongLong, GetString, ואנחנו שמים אותם בתוך קובץ 944 00:43:47,610 --> 00:43:49,890 נקרא CS50.h וCS50.c. 945 00:43:49,890 --> 00:43:51,880 ואנחנו שמים אותם בתוך של מכשיר CS50. 946 00:43:51,880 --> 00:43:53,880 ואנשים גם יכולים להוריד אותם באינטרנט אם הם 947 00:43:53,880 --> 00:43:55,880 רוצה לשים אותם עליהם מחשב בביתם, כמו גם. 948 00:43:55,880 --> 00:44:00,880 כלומר שיצרנו פונקציות שמקבלות קלט מהמשתמש. 949 00:44:00,880 --> 00:44:02,930 אני לא יודע מה כל מסוגי הנתונים הם. 950 00:44:02,930 --> 00:44:06,490 GetInt הוא סוג של פשוט, כמו תקבל מספר שלם איכשהו מהמשתמש. 951 00:44:06,490 --> 00:44:09,980 וGetString הוא כנראה כמו גט מילה או משפט מהמשתמש. 952 00:44:09,980 --> 00:44:11,770 >> אז בואו נתמקד בזה. 953 00:44:11,770 --> 00:44:14,710 ואני הולך לחזור אל מכשיר ואני הולך קדימה 954 00:44:14,710 --> 00:44:20,790 ולשמור את הקובץ בשם, בואו נקרא זה שלום-2.ג כגרסה השנייה שלי. 955 00:44:20,790 --> 00:44:23,030 ובואו נעשה כמה שינויים. 956 00:44:23,030 --> 00:44:25,800 >> הפעם במקום קשה דוד קידוד, ש 957 00:44:25,800 --> 00:44:29,120 עושה עקבי להפליא אבל תכנית משעממת, 958 00:44:29,120 --> 00:44:32,640 מה אם אני במקום לעשות GetString? 959 00:44:32,640 --> 00:44:35,660 עכשיו שמו לב GetString יש סוגריים פתוחים, 960 00:44:35,660 --> 00:44:38,500 סוגריים סגורים, משום ש זה לא צריך כל קלט. 961 00:44:38,500 --> 00:44:40,850 זה פשוט הולך לקבל מחרוזת מהמשתמש. 962 00:44:40,850 --> 00:44:42,460 >> ועכשיו מילה על תחביר אחר. 963 00:44:42,460 --> 00:44:45,439 פסיק רק בסופו שורת קוד. 964 00:44:45,439 --> 00:44:46,730 אתה לא צריך אותם בכל מקום. 965 00:44:46,730 --> 00:44:48,896 אבל זה רק אומר שאני נעשה עם הקו הזה של קוד. 966 00:44:48,896 --> 00:44:51,080 תן לי לעבור על עוד הצהרה או פונקציה. 967 00:44:51,080 --> 00:44:53,010 המחרוזת מצהירה על משתנה. 968 00:44:53,010 --> 00:44:55,920 מחרוזת היא כמו להגיד תן לי קערה, בבקשה. 969 00:44:55,920 --> 00:44:57,940 ותנו לי לשים את מחרוזת בזה. 970 00:44:57,940 --> 00:44:59,430 >> ועכשיו סימן השוויון. 971 00:44:59,430 --> 00:45:03,510 מהו סימן השוויון בעצם שווה ערך ל? 972 00:45:03,510 --> 00:45:04,500 >> קהל: הקצאה. 973 00:45:04,500 --> 00:45:06,190 >> דוד י מלאן: כן, קביעת ערך. 974 00:45:06,190 --> 00:45:09,872 אז אם אני, למשל, שיחה GetString זה פונקציה, 975 00:45:09,872 --> 00:45:12,830 ואנו רואים ברגע זה הולך לבקש מהמשתמש מחרוזת. 976 00:45:12,830 --> 00:45:17,810 זה כמו שנתן לי אז לכתוב D--v-i-d על פיסת נייר. 977 00:45:17,810 --> 00:45:21,060 וכשאני אומר מחרוזת ים שווה GetString, 978 00:45:21,060 --> 00:45:24,140 שווה לא ממש מתכוון שווה בתכנות C. 979 00:45:24,140 --> 00:45:27,880 זה אומר להקצות מהימין צד לצד שמאל. 980 00:45:27,880 --> 00:45:29,510 >> אז אני כבר קיבלתי מחרוזת. 981 00:45:29,510 --> 00:45:32,785 וסימן שוויון פירושו לשים אותו באחסון בשם של מיכל. 982 00:45:32,785 --> 00:45:36,730 ואז להעביר את זה מחוץ ל printf בעצם לעשות את הדבר שלו. 983 00:45:36,730 --> 00:45:39,790 >> אז התוצאה סופית אז הוא הולכת להסתכל קצת שונה. 984 00:45:39,790 --> 00:45:40,840 בואו עושים שלום-2. 985 00:45:40,840 --> 00:45:43,940 986 00:45:43,940 --> 00:45:45,260 כך או יכול לעבוד. 987 00:45:45,260 --> 00:45:46,450 אתה הבא יחד. 988 00:45:46,450 --> 00:45:47,940 הפוך עבד שלום-2. 989 00:45:47,940 --> 00:45:52,640 דוט לקצץ שלום-2, הזן. 990 00:45:52,640 --> 00:45:54,620 >> יש לי כנראה אינסופי לולאה או משהו. 991 00:45:54,620 --> 00:45:55,453 שום דבר לא קורה. 992 00:45:55,453 --> 00:45:56,134 למה? 993 00:45:56,134 --> 00:45:57,805 >> קהל: זה מה שהופך את לולאה אינסופית. 994 00:45:57,805 --> 00:45:59,430 דוד י מלאן: זה לולאה אינסופית. 995 00:45:59,430 --> 00:46:02,710 זה סוג של מחכה לי ל למעשה לספק אותו עם קצת קלט. 996 00:46:02,710 --> 00:46:05,800 אז תן לי ללכת קדימה והקלידו בדוד, וקש Enter. 997 00:46:05,800 --> 00:46:07,230 ועכשיו הוא אומר "הלו, דוד." 998 00:46:07,230 --> 00:46:09,040 אם אני מפעיל את זה שוב. 999 00:46:09,040 --> 00:46:11,530 בואו נקליד ברוב, "הלו, רוב." 1000 00:46:11,530 --> 00:46:13,900 >> עכשיו זה הוא הגרוע ביותר ממשק משתמש אי פעם. 1001 00:46:13,900 --> 00:46:16,110 המשתמש זה כנראה אמור לדעת מה לעשות. 1002 00:46:16,110 --> 00:46:17,120 אבל לא משנה. 1003 00:46:17,120 --> 00:46:19,570 באמצעות אלה אותו בניין בלוקים בדיוק כמו בגרד, 1004 00:46:19,570 --> 00:46:24,980 אנחנו יכולים לפתור את הבעיה הזאת ולומר משהו כמו שמך בבקשה, מעי גס, 1005 00:46:24,980 --> 00:46:27,820 חלל, סגור ציטוט, קרוב סוגריים, פסיק. 1006 00:46:27,820 --> 00:46:30,680 כל כך הרבה שוב טיפשות עם התחביר. 1007 00:46:30,680 --> 00:46:34,040 >> אבל שמתי לב רק אני הוספתי חתיכה מעל זה חידה 1008 00:46:34,040 --> 00:46:35,280 ומעל זה. 1009 00:46:35,280 --> 00:46:38,870 אז עכשיו אם אני מפעיל מחדש זה, hello-2, הזן. 1010 00:46:38,870 --> 00:46:41,180 חכה רגע. 1011 00:46:41,180 --> 00:46:41,830 מה קרה? 1012 00:46:41,830 --> 00:46:43,570 זה לא מתנהג באופן שונה. 1013 00:46:43,570 --> 00:46:44,200 כן. 1014 00:46:44,200 --> 00:46:46,010 >> קהל: אתה לא רצת לעשות שוב. 1015 00:46:46,010 --> 00:46:47,968 >> דוד י מלאן: אני לא לרוץ לעשות שוב, תקין. 1016 00:46:47,968 --> 00:46:49,430 אז אני כבר שיניתי את קוד המקור שלי. 1017 00:46:49,430 --> 00:46:50,638 אבל שוב, יש זרימה ש. 1018 00:46:50,638 --> 00:46:54,530 קוד מקור באמצעות המהדר נותן אתה קוד אובייקט חדש, או 0s ו 1s. 1019 00:46:54,530 --> 00:47:00,209 אז אני צריך בעצם איפור בשידור חוזר שלום-2 הזן. 1020 00:47:00,209 --> 00:47:01,750 אישור, משהו כנראה קרה. 1021 00:47:01,750 --> 00:47:04,220 דוט לקצץ שלום-2. 1022 00:47:04,220 --> 00:47:05,390 השם שלך בבקשה. 1023 00:47:05,390 --> 00:47:09,990 וכדי להיות ברור עכשיו, למה הוא הסמן באותה השורה? 1024 00:47:09,990 --> 00:47:10,490 בדיוק. 1025 00:47:10,490 --> 00:47:13,020 אני לא שמתי את הקו הנטוי n כאן בקוד שלי. 1026 00:47:13,020 --> 00:47:16,110 אז עכשיו אני יכול לכתוב משהו כמו ךייבן, הזן. 1027 00:47:16,110 --> 00:47:18,710 אני יכול להפעיל אותו שוב והקלד משהו כמו גייב, הזן, 1028 00:47:18,710 --> 00:47:22,250 ואנחנו מקבלים בתכנית אחרת שוב ושוב ושוב. 1029 00:47:22,250 --> 00:47:28,940 >> עכשיו סופו של דבר אנחנו הולכים צריכים להשתמש כמה יכולות שונות. 1030 00:47:28,940 --> 00:47:32,860 אנחנו צריכים להציג את סופו של דבר כמה תנאים לעשות דברים על תנאי. 1031 00:47:32,860 --> 00:47:35,550 אולי לולאות כדי שנוכל לעשות דברים שוב ושוב. 1032 00:47:35,550 --> 00:47:38,220 >> אולי זה יהיה נחמד אם יכול ליישם פונקציות שלנו, 1033 00:47:38,220 --> 00:47:41,355 כמו שאנחנו יכולים ליישמנו printf או הגרסה של GetString שלנו 1034 00:47:41,355 --> 00:47:45,870 וGetFlow, כי גם סופו של דבר באמצעות סביבת שורת הפקודה זה 1035 00:47:45,870 --> 00:47:49,780 אנחנו יכולים לעשות אפילו ביותר מעניין מבחינה ויזואלית של דברים. 1036 00:47:49,780 --> 00:47:51,950 >> ואכן בסיום תן לי לעשות את זה. 1037 00:47:51,950 --> 00:47:54,020 אני הולך קדימה ולסגור את החלונות האלה 1038 00:47:54,020 --> 00:47:57,400 ולפתוח סמל זה כאן, וזה רק יותר גדול 1039 00:47:57,400 --> 00:48:00,020 גרסה של שמוטבעת חלון מסוף. 1040 00:48:00,020 --> 00:48:02,329 אז gedit יש לא רק המקום לקוד שלי, 1041 00:48:02,329 --> 00:48:05,620 אלא גם בנוי בחלון מסוף, חלון שחור ולבן שבו אני יכול לרוץ 1042 00:48:05,620 --> 00:48:06,230 פקודות. 1043 00:48:06,230 --> 00:48:08,600 >> אני פשוט קרה כדי לפתוח גרסה גדולה יותר של זה. 1044 00:48:08,600 --> 00:48:11,170 ועכשיו אני הולך להיכנס את התיקייה שיש לי כבר 1045 00:48:11,170 --> 00:48:13,150 לשים מראש באתר האינטרנט של הקורס. 1046 00:48:13,150 --> 00:48:16,720 ואני הולך קדימה, לפתוח קובץ שנקרא thadgavin.c, 1047 00:48:16,720 --> 00:48:18,710 שנכתב על ידי מישהו אחר. 1048 00:48:18,710 --> 00:48:21,220 >> אם אנחנו מסתכלים על זה ו, זה לא הסוג של קוד 1049 00:48:21,220 --> 00:48:24,370 יהיה לנו כותבים מאז המטרה של הקוד הזה 1050 00:48:24,370 --> 00:48:28,450 היה לכתוב יפה מחפש קוד שהוא או היא יכולה, 1051 00:48:28,450 --> 00:48:31,290 ללא קשר לשאלה אם אדם אחר אי פעם יכל 1052 00:48:31,290 --> 00:48:33,660 להבין את הקוד הזה. 1053 00:48:33,660 --> 00:48:37,050 >> ואכן, בכל שנה יש מה ש בשם תחרות C לטשטש, ש 1054 00:48:37,050 --> 00:48:39,570 הוא לחנונים אמיתיים שכותבים קוד שאף אחד אחר לא יכול לקרוא, 1055 00:48:39,570 --> 00:48:42,050 אבל זה עושה משהו או ממש פשוט או באמת מדהים. 1056 00:48:42,050 --> 00:48:43,890 ואנחנו חשבנו שהיינו תסיים במבט הזה 1057 00:48:43,890 --> 00:48:48,300 במשהו שהוא די מדהים שאולי ראה פעם אחת לפני. 1058 00:48:48,300 --> 00:48:52,650 אבל אנחנו בסופו של בזה פתק, לוכסן נקודה, thadgavin. 1059 00:48:52,650 --> 00:48:53,860 אז זה מה שמחכה לי. 1060 00:48:53,860 --> 00:48:57,140 1061 00:48:57,140 --> 00:48:58,500 >> זהו זה לCS50. 1062 00:48:58,500 --> 00:48:59,935 אנחנו אראה אותך ביום רביעי. 1063 00:48:59,935 --> 00:49:04,284 1064 00:49:04,284 --> 00:49:10,016 >> [השמעת מוסיקה] 1065 00:49:10,016 --> 00:53:31,883