1 00:00:00,000 --> 00:00:07,700 2 00:00:07,700 --> 00:00:15,180 >> דובר: בסדר, אז, אתה לא מאמין בזה, אבל בשבוע שעבר, ביום שני, בפירס, אני 3 00:00:15,180 --> 00:00:16,090 היה למטה במרתף. 4 00:00:16,090 --> 00:00:17,010 אני אף פעם לא הולך לפירס. 5 00:00:17,010 --> 00:00:20,530 ואני לעולם לא אחזור שוב, כי עזבתי את הדברים שלי לבד, 6 00:00:20,530 --> 00:00:23,950 כמו, חמש דקות ומישהו גנבתי המחשב ושלי 7 00:00:23,950 --> 00:00:26,050 טלפון מהתרמיל שלי. 8 00:00:26,050 --> 00:00:28,780 מה שאומר שיש לי אותו בחזרה, ו אז פחות משבוע לאחר מכן 9 00:00:28,780 --> 00:00:30,220 זה נגנב שוב. 10 00:00:30,220 --> 00:00:31,570 >> ואז זה הגיע מופעל - 11 00:00:31,570 --> 00:00:34,540 מצא את האייפון שלי ממשיך להיות מועיל. 12 00:00:34,540 --> 00:00:37,340 אז אני ממשיך לעודד אתה לא להשתמש בו. 13 00:00:37,340 --> 00:00:42,270 התברר בפעם אחת, וזה היה ב-MIT, כמו 15 דקות מאוחר יותר, והאדם 14 00:00:42,270 --> 00:00:45,770 התקשרתי למספר הטלפון הזה שהראה ביומן השיחות של AT & T שלי. 15 00:00:45,770 --> 00:00:48,830 >> אז הלכתי באינטרנט, הנקרא שהטלפון מספר, וזה הלך ישר לזה 16 00:00:48,830 --> 00:00:50,540 משיבון בספרדית. 17 00:00:50,540 --> 00:00:52,520 ולא שמעתי ממנו מאז. 18 00:00:52,520 --> 00:00:54,800 אז הייתי צריך לקבל חדש מחשב וטלפון. 19 00:00:54,800 --> 00:00:55,150 אני יודע. 20 00:00:55,150 --> 00:00:56,326 כן. 21 00:00:56,326 --> 00:01:00,110 אבל אם אתם רוצים שבב כדי מחשב קרן אחרי זה, זה למה 22 00:01:00,110 --> 00:01:01,030 שאלתי אותך כאן. 23 00:01:01,030 --> 00:01:02,280 סתם, בצחוק. 24 00:01:02,280 --> 00:01:04,239 25 00:01:04,239 --> 00:01:07,420 אבל זה היה ממש עצוב וטראומטי. 26 00:01:07,420 --> 00:01:10,700 >> אבל זה כל חזרה עכשיו, וזו הייתה הסיבה להגדיר p-8 לקח כל כך הרבה זמן, כי 27 00:01:10,700 --> 00:01:12,480 לא היו לי מחשב. 28 00:01:12,480 --> 00:01:13,730 ומישהו גנב אותו. 29 00:01:13,730 --> 00:01:16,940 ואני בדוא"ל, לשאול אם הם היית בכיתה שלך 8 להגדיר p-. 30 00:01:16,940 --> 00:01:18,790 אבל הם אמרו שלא. 31 00:01:18,790 --> 00:01:20,000 ואני הייתי כמו, אני יכול יש לי המחשב שלי בחזרה? 32 00:01:20,000 --> 00:01:21,270 והם כמו, לא. 33 00:01:21,270 --> 00:01:22,130 סתם, בצחוק. 34 00:01:22,130 --> 00:01:22,930 >> על אישור. 35 00:01:22,930 --> 00:01:28,140 זה החלק האחרון שלנו, ויש לי כמה - יש לנו שלוש בלבד 36 00:01:28,140 --> 00:01:29,790 דברים על סדר היום. 37 00:01:29,790 --> 00:01:31,330 אנחנו הולכים לדבר קצת על המדריך ש. 38 00:01:31,330 --> 00:01:33,900 ואז אנחנו הולכים לבלות 15 דקות על הדגמה מגניב. 39 00:01:33,900 --> 00:01:36,890 ואז אנחנו הולכים לכל לומר שלום אחד לשנייה. 40 00:01:36,890 --> 00:01:41,460 אתה לא באמת צריך את המחשבים שלך או עט או נייר כדי לרשום הערות, או 41 00:01:41,460 --> 00:01:42,410 פעל יחד. 42 00:01:42,410 --> 00:01:45,620 אז אני מניח שאם יש לך המחשב שלך למעלה, אז אתה בפייסבוק. 43 00:01:45,620 --> 00:01:46,530 רק אומר. 44 00:01:46,530 --> 00:01:49,650 אלא אם כן אתה מילוי מדריך Q, שהוא ראשון. 45 00:01:49,650 --> 00:01:50,690 >> מדריך השאלות פתוח. 46 00:01:50,690 --> 00:01:53,520 היה לך דואר אלקטרוני על זה. 47 00:01:53,520 --> 00:01:56,930 ברגע שכל הדברים ש יוגש ב סוף השנה, אני מקבל את כל 48 00:01:56,930 --> 00:02:03,710 הערות ש בציונים מכולם שבוחר לתת לי משוב. 49 00:02:03,710 --> 00:02:04,810 וכך כשאתה הולך בש - 50 00:02:04,810 --> 00:02:07,440 אני לא יודע אם אתה יכול לעשות את זה, ג'ף, בגלל שאתה ותלמיד ארכה. 51 00:02:07,440 --> 00:02:12,730 אבל כשאתה הולך בשאלות, אם יש לך לא עשית את זה לפני, אתה בוחר 52 00:02:12,730 --> 00:02:14,020 מורה, שהוא דוד מלאן. 53 00:02:14,020 --> 00:02:14,970 אתה צריך לעשות אותו. 54 00:02:14,970 --> 00:02:15,690 >> ואז אתה יכול להרים TFS. 55 00:02:15,690 --> 00:02:17,750 ואתה יכול להרים כמה שיותר TFS כמו שאתה רוצה. 56 00:02:17,750 --> 00:02:18,990 אבל יש 60 מאיתנו. 57 00:02:18,990 --> 00:02:20,350 אתה לא צריך לקחת את כולם. 58 00:02:20,350 --> 00:02:23,090 אתה יכול פשוט לאסוף אותי, או פשוט לבחור כמה אנשים אחרים, אם אתה רוצה, כדי 59 00:02:23,090 --> 00:02:24,470 לתת להם משוב גם כן. 60 00:02:24,470 --> 00:02:27,595 ואז אתה מקבל ציונים על כל אלה צירים שונים, ואז אתה יכול לעזוב 61 00:02:27,595 --> 00:02:28,570 שלהם משוב. 62 00:02:28,570 --> 00:02:31,520 >> ואז, כמו בחודש שלאחר מכן, אני אביא את כל משוב ש. 63 00:02:31,520 --> 00:02:34,570 ובדיוק כמו המשוב שהיית נותן לי בכל הסמסטר, אני 64 00:02:34,570 --> 00:02:35,790 לקרוא את כל זה. 65 00:02:35,790 --> 00:02:39,620 וזה באמת מועיל, וזה עוזר לי לגדול כמורה וכ 66 00:02:39,620 --> 00:02:40,680 בודד. 67 00:02:40,680 --> 00:02:43,360 אז, בבקשה לקחת קצת זמן כדי לעשות את זה. 68 00:02:43,360 --> 00:02:45,020 אנחנו הולכים רק להיות כאן ל, כמו, 30 דקות. 69 00:02:45,020 --> 00:02:48,090 אז אם אתה רוצה, בסופו של זה, כדי לקחת חמש דקות, ורק למלא 70 00:02:48,090 --> 00:02:49,960 ש, כי זה לא לוקח יותר זמן מזה. 71 00:02:49,960 --> 00:02:53,410 זה יהיה נפלא, ואתה גם לקבל הציונים שלך בחזרה במהירות רבה יותר אם 72 00:02:53,410 --> 00:02:54,620 לך למלא ש 73 00:02:54,620 --> 00:02:56,580 >> אז רובכם עשיתם זאת לפני - 74 00:02:56,580 --> 00:02:58,240 או לא, כמחצית מכם עשה את זה בעבר. 75 00:02:58,240 --> 00:03:00,060 אבל אם אתה בכיתה ט ', זה מה שזה. 76 00:03:00,060 --> 00:03:01,910 זה יהיה זהה לכל הכיתות. 77 00:03:01,910 --> 00:03:02,270 לעשות את זה. 78 00:03:02,270 --> 00:03:02,900 זה לוקח חמש דקות. 79 00:03:02,900 --> 00:03:07,610 אבל גם, אם אתה עושה את זה קצת ברצינות, זה לא הדבר הכי גרוע 80 00:03:07,610 --> 00:03:10,270 בעולם, כי אני בהחלט לקחת את זה ברצינות. 81 00:03:10,270 --> 00:03:13,000 >> אז אם אתה עוזב אותי פרצוף מחייך, אני מעריך את זה. 82 00:03:13,000 --> 00:03:17,550 אבל אני גם אשמח אם השאיר אותי יותר מפרצוף מחייך. 83 00:03:17,550 --> 00:03:18,270 אבל זה תלוי בך. 84 00:03:18,270 --> 00:03:21,540 אני לא יכול להגיד לך - או כמו סמיילי גדול להתמודד, עם הון ד זה יהיה 85 00:03:21,540 --> 00:03:23,060 להיות אפילו טוב יותר. 86 00:03:23,060 --> 00:03:27,860 >> אוקיי, זה כל מה שיש לי לשאלה: אם אתה יש לך שאלות, אתה יכול לשאול 87 00:03:27,860 --> 00:03:29,370 לי, אבל די מובן מאליו. 88 00:03:29,370 --> 00:03:31,090 רק, בבקשה, למלא אותו. 89 00:03:31,090 --> 00:03:34,390 אני מאוד מעריך את זה, וזה אומר המון בשבילי. 90 00:03:34,390 --> 00:03:38,910 >> אוקיי, זה מה שאנחנו הולכים לבלות 15 דקות עוברת. 91 00:03:38,910 --> 00:03:39,800 אני הולך להראות לכם כמה קוד. 92 00:03:39,800 --> 00:03:42,080 אני חושב שזה ממש מגניב, וזה גרם לי יותר 93 00:03:42,080 --> 00:03:43,810 נרגש במדעי מחשב. 94 00:03:43,810 --> 00:03:46,480 אז אני מקווה שזה יעשה אותו דבר עבור כולכם. 95 00:03:46,480 --> 00:03:51,760 >> אנחנו הולכים להיפתח - וכל זה קוד אני אשלח לך מאוחר יותר. 96 00:03:51,760 --> 00:03:52,680 אבל אנחנו פשוט הולכים להיפתח - 97 00:03:52,680 --> 00:03:54,310 אני במסוף שלי - 98 00:03:54,310 --> 00:03:56,810 אנחנו הולכים לפתוח תכנית זו נקרא [? MySum. ?] 99 00:03:56,810 --> 00:04:01,290 100 00:04:01,290 --> 00:04:02,540 >> האם כל אחד יכול לקרוא את זה, או אני צריך לעשות את זה יותר גדול? 101 00:04:02,540 --> 00:04:07,670 102 00:04:07,670 --> 00:04:13,040 מישהו יכול להגיד לי מה הקוד הזה יהיה לעשות כאשר אני מפעיל את זה, או מה זה 103 00:04:13,040 --> 00:04:14,320 התכנית תעשה כשאני מפעיל את זה? 104 00:04:14,320 --> 00:04:30,710 105 00:04:30,710 --> 00:04:32,400 >> [? אבי,?] מה אתה חושב זה הולך לעשות? 106 00:04:32,400 --> 00:04:33,335 לעיסה על סיום. 107 00:04:33,335 --> 00:04:35,033 אתה לא צריך לדבר עם הפה שלך פתוח. 108 00:04:35,033 --> 00:04:38,330 109 00:04:38,330 --> 00:04:42,860 >> קהל: האם זה לקחת חבורה של טיעונים, למצוא סכום שלהם חוזרים 110 00:04:42,860 --> 00:04:45,285 סכום, ולאחר מכן להדפיס את זה? 111 00:04:45,285 --> 00:04:53,045 או שהוא לוקח בשתי טענות, ו אז זה עושה [לא ברור]. 112 00:04:53,045 --> 00:04:56,460 ואז זה מדפיס את כל מה התוצאות הן. 113 00:04:56,460 --> 00:04:58,100 >> דובר: לסגור, ממש קרוב. 114 00:04:58,100 --> 00:04:59,840 מישהו רוצה להוסיף [? מה אבי?] אמר? 115 00:04:59,840 --> 00:05:04,830 116 00:05:04,830 --> 00:05:07,293 האם אתה צריך לתת לתכנית זו שורת הפקודה טיעונים כל? 117 00:05:07,293 --> 00:05:09,145 >> קהל: לא. 118 00:05:09,145 --> 00:05:09,610 >> דובר: לא. 119 00:05:09,610 --> 00:05:11,250 מה קורה אם אתה לא נותן לו שורת הפקודה טיעונים כל? 120 00:05:11,250 --> 00:05:12,500 אני פשוט לכתוב MySum לוכסן נקודה. 121 00:05:12,500 --> 00:05:15,145 122 00:05:15,145 --> 00:05:16,630 >> קהל: 1 ועוד 2 שווה 3. 123 00:05:16,630 --> 00:05:17,250 >> דובר: 1 ועוד 2 שווה 3. 124 00:05:17,250 --> 00:05:18,570 וזה יהיה להדפיס את זה. 125 00:05:18,570 --> 00:05:19,450 זה בדיוק נכון. 126 00:05:19,450 --> 00:05:21,370 אתה תראה את זה f ההדפסה שורה בתחתית. 127 00:05:21,370 --> 00:05:23,450 זה יהיה להדפיס את a, b, ו לאחר מכן הסכום של A ו-B. 128 00:05:23,450 --> 00:05:26,360 ואני מניח שאתה מניח כי הסכום עובד בצורה נכונה. 129 00:05:26,360 --> 00:05:28,120 הנחה טובה. 130 00:05:28,120 --> 00:05:32,250 >> אוקיי, ומה קורה אם אני לתת לו מה ויכוח? 131 00:05:32,250 --> 00:05:33,010 [? מנו? ?] 132 00:05:33,010 --> 00:05:36,230 >> קהל: זה תוסיף את מה הטיעון הראשון הוא ב. 133 00:05:36,230 --> 00:05:37,150 או ל 2, מצטער. 134 00:05:37,150 --> 00:05:38,480 >> דובר: נכון, 2. 135 00:05:38,480 --> 00:05:42,470 האם מישהו יודע מה strtol עושה? 136 00:05:42,470 --> 00:05:43,960 זה בעצם atoi. 137 00:05:43,960 --> 00:05:47,240 Atoi הוא למעשה גרסה מפוארת של - 138 00:05:47,240 --> 00:05:49,600 או גרסה פשוטה יותר של strtol. 139 00:05:49,600 --> 00:05:51,790 אבל זה בעצם משתמש strtol. 140 00:05:51,790 --> 00:05:54,610 141 00:05:54,610 --> 00:05:58,010 ומצאתי את זה בגלל שאני רוצה משהו כמו atoi, ואז כשאני 142 00:05:58,010 --> 00:06:01,110 לא atoi, קראתי כאן למטה. 143 00:06:01,110 --> 00:06:04,380 ואני מצאתי את "התנהגות זו הוא אותו הדבר כמו "strtol. 144 00:06:04,380 --> 00:06:06,850 אז זה בעצם atoi עבור כל דבר ועניין. 145 00:06:06,850 --> 00:06:09,320 ואתה רואה אני אפילו להשתמש null ו10. 146 00:06:09,320 --> 00:06:14,390 >> זה בעצם מאפשר לך לקחת את מחרוזת, ולהפוך אותו למספר, ולבחור 147 00:06:14,390 --> 00:06:15,970 מה בסיס שאתה רוצה לעשות את זה פנימה 148 00:06:15,970 --> 00:06:17,370 אז זהו בסיס 10 ממש כאן. 149 00:06:17,370 --> 00:06:20,455 אני היה יכול לעשות את שני בסיס לעשרוני, בסיס 16 להקסדצימלי. 150 00:06:20,455 --> 00:06:22,090 זה די מגניב. 151 00:06:22,090 --> 00:06:25,860 אבל סיפור ארוך קצר, זה לוקח שני מספרים ומוסיף אותם יחד. 152 00:06:25,860 --> 00:06:29,260 >> אז בואו להפעיל אותו. 153 00:06:29,260 --> 00:06:32,560 ואתה גם שם לב, יש כמה דברים - 154 00:06:32,560 --> 00:06:37,830 אז יש לי makefile ממש כאן, ו אם אתה פותח את זה, כמה דברים 155 00:06:37,830 --> 00:06:39,270 תוכל להבחין הם שונים. 156 00:06:39,270 --> 00:06:42,370 בפרט, טענה זו ממש כאן, אתה כנראה 157 00:06:42,370 --> 00:06:43,010 לא ראה את זה קודם. 158 00:06:43,010 --> 00:06:45,770 באופן כללי, אנחנו לקמפל דברים עם מקף אפס, אפס. 159 00:06:45,770 --> 00:06:51,500 דש אפס, אפס, פירושו לא עושה כל אופטימיזציות, מהדר. 160 00:06:51,500 --> 00:06:54,950 אל תנסו לעשות שום דבר מפואר, או לעשות כל דבר לרוץ מהר יותר, או לקבל 161 00:06:54,950 --> 00:06:56,530 להיפטר ממשתנים שאינם הכרחיים. 162 00:06:56,530 --> 00:06:58,080 אל לייעל את הקוד הזה בכלל, 163 00:06:58,080 --> 00:07:00,110 >> אני מבקש ברמה שלישית אופטימיזציה. 164 00:07:00,110 --> 00:07:02,580 אז אני מבקש מן המהדר לעשות הרבה אופטימיזציות. 165 00:07:02,580 --> 00:07:05,870 אתה יכול לשנות את זה בmakefile כש יש לך את הקוד הזה, אם אתה רוצה 166 00:07:05,870 --> 00:07:07,190 כדי לראות דברים שונים. 167 00:07:07,190 --> 00:07:08,660 שאנחנו אראה לי בשניים. 168 00:07:08,660 --> 00:07:12,080 אז אנחנו רצים סכומי 1 ועוד 2 ועוד 3. 169 00:07:12,080 --> 00:07:13,445 מישהו נותן לי שני טיעונים. 170 00:07:13,445 --> 00:07:17,221 171 00:07:17,221 --> 00:07:18,210 >> קהל: 4 ו -5. 172 00:07:18,210 --> 00:07:18,966 >> דובר: 4 ו -5. 173 00:07:18,966 --> 00:07:19,900 תודה. 174 00:07:19,900 --> 00:07:20,860 נהדר, זה עובד. 175 00:07:20,860 --> 00:07:25,700 מה הם כמה טיעונים טובים אחרים כדי לנסות, כדי לוודא שזה עובד? 176 00:07:25,700 --> 00:07:27,050 אף אחד? 177 00:07:27,050 --> 00:07:27,430 >> קהל: 0. 178 00:07:27,430 --> 00:07:29,210 >> דובר: 0 ו? 179 00:07:29,210 --> 00:07:31,010 >> קהל: שלילי 3. 180 00:07:31,010 --> 00:07:32,040 >> דובר: זה עובד. 181 00:07:32,040 --> 00:07:33,670 אבל אלה היו בחירות טובות. 182 00:07:33,670 --> 00:07:36,600 אוקיי, אז בואו נחזור לכאן. 183 00:07:36,600 --> 00:07:38,540 זה mysum.c. 184 00:07:38,540 --> 00:07:42,440 שים לב שיש גם משהו קרא sumfunction.c. 185 00:07:42,440 --> 00:07:48,110 וזה אומר, אה, יש בזה משהו שהוגדר בsumfunction.c. 186 00:07:48,110 --> 00:07:51,480 אני לא כולל בקובץ זה כאן כי אני לא צריך. 187 00:07:51,480 --> 00:07:54,840 אבל אני מקשר את זה כשאני בהידור, שמת לב. 188 00:07:54,840 --> 00:07:57,380 >> בואו לגלול למעלה. 189 00:07:57,380 --> 00:08:02,880 ראינו כאשר אנו הידור mysum, נכון שם, אנחנו מקושרים בינארי מ 190 00:08:02,880 --> 00:08:04,130 sumfunction.o. 191 00:08:04,130 --> 00:08:05,780 192 00:08:05,780 --> 00:08:08,470 ואני לא צריך את קובץ הכותרת כי, כמובן, יש את 193 00:08:08,470 --> 00:08:09,240 הצהרה על פונקציה. 194 00:08:09,240 --> 00:08:12,200 אז חד כולל בדרך כלל פשוט מכניס בהצהרה על פונקציה. 195 00:08:12,200 --> 00:08:13,730 כאן אני פשוט שמתי אותו ישר בקוד. 196 00:08:13,730 --> 00:08:16,370 ואז אני צריך לעשות הוא קישור בינארי, שאני עושה. 197 00:08:16,370 --> 00:08:19,950 >> כל ניחושים על מה שהוא בsumfunction.c? 198 00:08:19,950 --> 00:08:21,950 מה קוד שכתבתי בsumfunction.c? 199 00:08:21,950 --> 00:08:25,445 200 00:08:25,445 --> 00:08:26,695 >> קהל: [לא ברור]. 201 00:08:26,695 --> 00:08:29,460 202 00:08:29,460 --> 00:08:30,630 >> דובר: כל ניחושים? 203 00:08:30,630 --> 00:08:30,940 כן? 204 00:08:30,940 --> 00:08:33,710 >> קהל: אני חושב, מגדיר חלק [לא ברור]. 205 00:08:33,710 --> 00:08:33,975 >> דובר: כן. 206 00:08:33,975 --> 00:08:37,650 אז אני עושה את סכום int לכתוב int. 207 00:08:37,650 --> 00:08:41,120 אני כותב את הקו הזה, ואז יש לי פתוח סד מתולתל, סגר סד מתולתל. 208 00:08:41,120 --> 00:08:46,160 מה אתה חושב שאני כותב בתוך אלה סוגריים מסולסלים, בתוך הפונקציה ש? 209 00:08:46,160 --> 00:08:46,600 כן? 210 00:08:46,600 --> 00:08:48,150 >> קהל: התשואה שווה. 211 00:08:48,150 --> 00:08:50,010 >> מעבד: זה ניחוש ממש טוב. 212 00:08:50,010 --> 00:08:51,720 מי חושב [? מנו?] הוא נכון? 213 00:08:51,720 --> 00:08:54,122 זה אומר לחזור ב בתוספת. 214 00:08:54,122 --> 00:08:55,860 בסדר, לא כולם. 215 00:08:55,860 --> 00:08:56,520 [? Akshar,?] 216 00:08:56,520 --> 00:08:57,390 אתה עושה, מדי? 217 00:08:57,390 --> 00:09:00,430 אתה בטוח? 218 00:09:00,430 --> 00:09:01,680 על אישור. 219 00:09:01,680 --> 00:09:09,551 220 00:09:09,551 --> 00:09:10,050 מה? 221 00:09:10,050 --> 00:09:11,662 >> קהל: אתה איית את זה לא נכון. 222 00:09:11,662 --> 00:09:13,000 >> דובר: לא, אני לא. 223 00:09:13,000 --> 00:09:13,966 כן, סתם, בצחוק. 224 00:09:13,966 --> 00:09:15,300 אתה צודק. 225 00:09:15,300 --> 00:09:15,930 זה בדיוק מה שזה אומר. 226 00:09:15,930 --> 00:09:17,110 זה יחזור ב בתוספת. 227 00:09:17,110 --> 00:09:18,570 זה עושה הרבה חוש. 228 00:09:18,570 --> 00:09:20,240 >> אוקיי, בואו נחזור לכאן. 229 00:09:20,240 --> 00:09:21,490 אנחנו רואים איך הכותרת - 230 00:09:21,490 --> 00:09:24,540 231 00:09:24,540 --> 00:09:25,660 זה סוג התמורה. 232 00:09:25,660 --> 00:09:29,100 זכור, שראינו שיום אחד, לחזור סוג של הפונקציה, אבל הולך 233 00:09:29,100 --> 00:09:30,160 לפני שם של פונקצית int. 234 00:09:30,160 --> 00:09:31,560 הנה, כתבתי int. 235 00:09:31,560 --> 00:09:35,680 מה אתה חושב שקורה אם בזה פונקציה, אני לא כותב int, אבל 236 00:09:35,680 --> 00:09:38,270 אני כותב שאינו חתום? 237 00:09:38,270 --> 00:09:41,050 ההבדל, כמובן, להיות כי לא חתום מייצג רק חיובי 238 00:09:41,050 --> 00:09:43,620 מספרים שלמים, ויכולים להיות int חיובי או שלילי. 239 00:09:43,620 --> 00:09:45,450 >> אז אני כבר שיניתי את התמורה סוג של פונקציה זו. 240 00:09:45,450 --> 00:09:49,370 קוד זה אינו תואם שיבה זו הזן כאן. 241 00:09:49,370 --> 00:09:50,925 מה אתה חושב שקורה כשאני לקמפל? 242 00:09:50,925 --> 00:09:53,840 243 00:09:53,840 --> 00:09:56,240 אתה צריך לצעוק עליי. 244 00:09:56,240 --> 00:09:57,700 אין צעקות. 245 00:09:57,700 --> 00:10:00,050 >> מה לגבי כאשר אני מפעיל את התכנית? 246 00:10:00,050 --> 00:10:05,810 בואו לעשות לפני 0 שלילי 3, או 1 שלילי. 247 00:10:05,810 --> 00:10:10,180 זה עדיין עובד, למרות שאני אומר זה חוזר שלם חתום. 248 00:10:10,180 --> 00:10:12,060 ברור שזה לא חוזר שלם חתום. 249 00:10:12,060 --> 00:10:13,520 זה חוזר שלם חתום. 250 00:10:13,520 --> 00:10:16,130 זה חוזר 1 שלילי. 251 00:10:16,130 --> 00:10:17,830 אוקיי, זה מוזר. 252 00:10:17,830 --> 00:10:27,030 >> מה לגבי אם אני הולך ב כאן ולעשות את זה? 253 00:10:27,030 --> 00:10:29,700 אז אני כבר שיניתי את הכל מint כדי לא חתום. 254 00:10:29,700 --> 00:10:31,590 היא יכולה רק לקחת מספרים שלמים לא חתומים. 255 00:10:31,590 --> 00:10:33,840 אבל האם אנחנו עדיין חושבים שזה ירוץ? 256 00:10:33,840 --> 00:10:35,652 >> קהל: כן. 257 00:10:35,652 --> 00:10:37,270 >> דובר: זה יהיה. 258 00:10:37,270 --> 00:10:39,410 זה מטורף. 259 00:10:39,410 --> 00:10:43,140 ואנחנו עוברים שבהוקצינו באופן ברור שלם, אנחנו יכולים לעבור שתי נחתמו 260 00:10:43,140 --> 00:10:46,280 מספר שלם, זה עדיין עובד. 261 00:10:46,280 --> 00:10:52,150 >> בסדר, כל רעיונות למה זה עדיין עובד, או מה קורה? 262 00:10:52,150 --> 00:10:53,368 כן, ג'ף. 263 00:10:53,368 --> 00:10:56,296 >> קהל: יש לו משהו לעשות עם אופטימיזציה שלך, כי אתה 264 00:10:56,296 --> 00:10:57,760 מודגש. 265 00:10:57,760 --> 00:10:58,210 >> דובר: לא. 266 00:10:58,210 --> 00:11:00,570 אנחנו יכולים לשנות את אופטימיזציה, זה עדיין יעבוד. 267 00:11:00,570 --> 00:11:02,240 אני יכול לעשות את זה בשבילך, אבל - 268 00:11:02,240 --> 00:11:02,930 >> קהל: אני אקח את המילה שלך על זה. 269 00:11:02,930 --> 00:11:03,690 >> דובר: כן. 270 00:11:03,690 --> 00:11:09,690 אם אתה פותח את makefile ממש כאן, אני שיניתי את אופטימיזציה. 271 00:11:09,690 --> 00:11:11,570 אז אתה יכול לעשות מקף אפס, אפס. 272 00:11:11,570 --> 00:11:12,820 זה עדיין יעבוד. 273 00:11:12,820 --> 00:11:16,839 274 00:11:16,839 --> 00:11:20,280 מחשבות אחרות? 275 00:11:20,280 --> 00:11:22,600 >> אתם כל צפויים לעבוד, ולכן למה אתה מצפה שזה יעבוד? 276 00:11:22,600 --> 00:11:31,210 277 00:11:31,210 --> 00:11:32,150 לא? 278 00:11:32,150 --> 00:11:33,660 שתיקה. 279 00:11:33,660 --> 00:11:34,910 על אישור. 280 00:11:34,910 --> 00:11:39,271 281 00:11:39,271 --> 00:11:41,650 אני צריך לחכות שבע שניות, משום ששאלתי את שאלה. 282 00:11:41,650 --> 00:11:44,190 283 00:11:44,190 --> 00:11:48,660 >> אז הדבר מגניב על C, ויש לך כנראה חווה בעבר - לך 284 00:11:48,660 --> 00:11:50,260 אולי לא צריך, אולי זה יהיה זו הפעם הראשונה. 285 00:11:50,260 --> 00:11:57,030 אבל כמו שכולכם יודעים, כשאני כותב משהו ב-C, זה לא לחסוך כמו 286 00:11:57,030 --> 00:11:57,760 זה במחשב. 287 00:11:57,760 --> 00:11:59,440 זה נשמר כאחדים ואפסים. 288 00:11:59,440 --> 00:12:02,970 זה הולך מקוד C לקוד הרכבה. 289 00:12:02,970 --> 00:12:09,460 >> מישהו ראה את קוד הרכבה לפני, קוד הרכבה מכונה? 290 00:12:09,460 --> 00:12:10,630 אנו מסתכלים בשניים. 291 00:12:10,630 --> 00:12:12,040 זה הולך מקוד C לקוד הרכבה. 292 00:12:12,040 --> 00:12:13,755 ואתם יודעים שלבים של הידור. 293 00:12:13,755 --> 00:12:17,410 אתה צריך לזכור כי לחידון אחד, ולאחר מכן לכתוב את זה על חידון אפס. 294 00:12:17,410 --> 00:12:18,240 רוב האנשים קיבלו את זה לא נכון. 295 00:12:18,240 --> 00:12:19,760 אני חושב שהחבר 'ה הדביקה אותו. 296 00:12:19,760 --> 00:12:22,880 >> אבל, אתם החלק הטוב ביותר לחידונים, דרך אגב. 297 00:12:22,880 --> 00:12:25,210 וזה מדהים. 298 00:12:25,210 --> 00:12:25,910 זה לא יזיק לך. 299 00:12:25,910 --> 00:12:26,900 אל תהיה מודאג. 300 00:12:26,900 --> 00:12:28,800 אבל זה ממש מגניב. 301 00:12:28,800 --> 00:12:29,660 עבודה טובה. 302 00:12:29,660 --> 00:12:32,870 >> אז זה הולך לשפת הרכבה, ו אז זה הולך לאחדים ואפסים. 303 00:12:32,870 --> 00:12:35,500 ואחדים והאפסים נשמרים על מחשב, וזה מה שהציל את ב 304 00:12:35,500 --> 00:12:38,340 a.out, או במקרה הזה, את קובץ ההפעלה. 305 00:12:38,340 --> 00:12:41,040 והמחשב פועל אחדים ואפסים. 306 00:12:41,040 --> 00:12:41,670 נכון? 307 00:12:41,670 --> 00:12:43,890 למדנו את זה בעבר. 308 00:12:43,890 --> 00:12:47,490 >> אז הדבר מגניב הוא, זה לא חתום רעיון, הרעיון של סוגי ints לא חתום, 309 00:12:47,490 --> 00:12:50,490 וכולי וכולי, וכולי, זה עד כאן בשפת C. 310 00:12:50,490 --> 00:12:51,110 אלה קיימים. 311 00:12:51,110 --> 00:12:53,770 אבל סוגים לא קיימים ב אחדים והאפסים. 312 00:12:53,770 --> 00:12:57,110 סוגים אפילו לא באמת קיימים ב רמת שפת הרכבה. 313 00:12:57,110 --> 00:13:00,075 אז זה משהו שקיים ב-C עולם, אך אינו קיים במחשב 314 00:13:00,075 --> 00:13:01,640 עולם או עולם מעבד. 315 00:13:01,640 --> 00:13:04,660 זה קצת הפשטה כי C השפה כללה, כדי להפוך אותנו 316 00:13:04,660 --> 00:13:06,240 חיים קלים יותר. 317 00:13:06,240 --> 00:13:09,990 >> אז בסופו של היום, אני יכול לכתוב דברים רבים ושונים כאן, וזה 318 00:13:09,990 --> 00:13:10,700 לא לעשות את הבדל. 319 00:13:10,700 --> 00:13:12,060 מאחר שקיים רק בעולם C. 320 00:13:12,060 --> 00:13:14,100 זה לא קיים ב לאחדים ואפסי עולם. 321 00:13:14,100 --> 00:13:17,310 והתכנית שלנו בביצוע אלה ועולם אפסים. 322 00:13:17,310 --> 00:13:21,170 אז רוחכם באופן ברור לא פוצצה עדיין. 323 00:13:21,170 --> 00:13:22,740 אבל אני חושב שזה מגניב. 324 00:13:22,740 --> 00:13:23,530 כן, ג'ף. 325 00:13:23,530 --> 00:13:27,298 >> קהל: לכן, אם במקום עושה int, אתה עושה char. 326 00:13:27,298 --> 00:13:27,770 והיית - 327 00:13:27,770 --> 00:13:29,311 >> דובר: בואו נעשה את זה בשניות. 328 00:13:29,311 --> 00:13:32,583 >> קהל: כי אז אתה מקבל לא חתום הולך מ128 שליליים 329 00:13:32,583 --> 00:13:34,720 127 או 0-255. 330 00:13:34,720 --> 00:13:36,760 >> דובר: אז char הוא בעייתי. 331 00:13:36,760 --> 00:13:39,460 האם מישהו יודע למה char יהיה בעייתי, וזה באמת היית 332 00:13:39,460 --> 00:13:42,930 לשנות דברים באלה ואפסי עולם? 333 00:13:42,930 --> 00:13:44,370 >> קהל: בשל גודלו של char. 334 00:13:44,370 --> 00:13:46,200 >> דובר: גודלו של char הוא 1. 335 00:13:46,200 --> 00:13:48,260 אז חתום גם 4 בתים. 336 00:13:48,260 --> 00:13:50,080 אז char הייתי לדפוק את עניינים. 337 00:13:50,080 --> 00:13:55,660 אבל מה הוא 4 בתים זה הקשורים לchar? 338 00:13:55,660 --> 00:13:57,820 או שבמוסיף אחד נוסף - 339 00:13:57,820 --> 00:13:59,760 אתה יכול לשים את תו אחד יותר לאחר תו. 340 00:13:59,760 --> 00:14:00,200 >> קהל: כוכב צ'אר. 341 00:14:00,200 --> 00:14:01,220 >> דובר: יש כוכב צ'אר 4 בתים. 342 00:14:01,220 --> 00:14:02,490 אז בואו נעשה משהו זה כוכב char. 343 00:14:02,490 --> 00:14:05,470 344 00:14:05,470 --> 00:14:07,240 >> אז זה כנראה יעבוד, אבל אנחנו הולך לעשות משהו אפילו 345 00:14:07,240 --> 00:14:09,710 יותר משוגע מזה. 346 00:14:09,710 --> 00:14:10,960 לדעתי, יותר משוגע. 347 00:14:10,960 --> 00:14:21,060 348 00:14:21,060 --> 00:14:24,570 >> עכשיו אני כבר כתוב פונקציה המחזירה מצביע, וזה לוקח 349 00:14:24,570 --> 00:14:29,480 מצביע וערך שאינו חתום - אנחנו לשנות את זה בחזרה לint כך שאנחנו לא 350 00:14:29,480 --> 00:14:31,250 שינויים רבים מדי בבת אחת. 351 00:14:31,250 --> 00:14:35,370 ויש לה מערך בשם, אינדקסים לתוך המערך, וחוזר 352 00:14:35,370 --> 00:14:35,850 כתובת של. 353 00:14:35,850 --> 00:14:37,470 ראינו מפעילים אלה בעבר. 354 00:14:37,470 --> 00:14:43,340 זה, מה אתה חושב שזה הולך לעשות, בתמורה, כאשר אני מפעיל את זה? 355 00:14:43,340 --> 00:14:48,280 356 00:14:48,280 --> 00:14:49,070 מה אתה חושב שזה הולך לעשות? 357 00:14:49,070 --> 00:14:50,320 ניחושים כל? 358 00:14:50,320 --> 00:14:54,220 359 00:14:54,220 --> 00:14:55,320 >> קהל: Segfault. 360 00:14:55,320 --> 00:14:55,600 >> דובר: מה? 361 00:14:55,600 --> 00:14:56,660 Segfault? 362 00:14:56,660 --> 00:14:58,520 זה ניחוש טוב. 363 00:14:58,520 --> 00:14:59,430 טום אומר את אותו הדבר. 364 00:14:59,430 --> 00:15:02,240 כל ניחושים אחרים? 365 00:15:02,240 --> 00:15:05,260 >> מי שחושב שזה הולך לעשות את אותו הדבר? 366 00:15:05,260 --> 00:15:06,510 מי שחושב שזה הולך segfault? 367 00:15:06,510 --> 00:15:09,350 368 00:15:09,350 --> 00:15:10,230 זה עושה את אותו הדבר. 369 00:15:10,230 --> 00:15:11,880 סליחה. 370 00:15:11,880 --> 00:15:13,860 >> אבל, כמובן, שאנחנו מכניסים ל1 ו -2. 371 00:15:13,860 --> 00:15:16,470 ואלה הם שני חוקיים, נכון? 372 00:15:16,470 --> 00:15:19,420 בואו נראה, אנחנו יכולים ללכת ל מקום שני של מערך. 373 00:15:19,420 --> 00:15:24,010 אבל מה אם עשינו ב מספר שלילי? 374 00:15:24,010 --> 00:15:26,380 כי הוא כנראה ניחוש טוב יותר לsegfaulting משהו. 375 00:15:26,380 --> 00:15:30,310 376 00:15:30,310 --> 00:15:32,260 זה עדיין עובד. 377 00:15:32,260 --> 00:15:35,020 >> אוקיי, זה מטורף עכשיו. 378 00:15:35,020 --> 00:15:38,350 זו היא פונקצית סכום תקפה באותה מידה. 379 00:15:38,350 --> 00:15:40,470 זה עושה את אותו דבר מדויק כתמורה ב. 380 00:15:40,470 --> 00:15:44,600 מישהו יכול להסביר למה זה טוב סיכום פונקציה, או למה זה עובד? 381 00:15:44,600 --> 00:15:45,850 מה קורה כאן? 382 00:15:45,850 --> 00:15:49,360 383 00:15:49,360 --> 00:15:55,750 למה זה עושה את אותו הדבר המדויק דבר כפונקציה הסכום הישנה שלנו? 384 00:15:55,750 --> 00:15:56,890 [? Akshar,?] 385 00:15:56,890 --> 00:15:58,155 מה קורה? 386 00:15:58,155 --> 00:16:01,540 >> קהל: כי כאשר יש לך זה כתובת 387 00:16:01,540 --> 00:16:03,950 זיכרון מיקום - 388 00:16:03,950 --> 00:16:07,910 וכשאתה עושה את האמפרסנד, זה הולך לכי כתובת זיכרון. 389 00:16:07,910 --> 00:16:13,610 וכשאתה הולך ל-B, אתה סוג של נע צעדים שמכתובת הזיכרון, 390 00:16:13,610 --> 00:16:15,550 אתה חוזר ש. 391 00:16:15,550 --> 00:16:20,083 אז אתה בעצם, למעשה, הוספה וb [לא ברור]. 392 00:16:20,083 --> 00:16:23,300 393 00:16:23,300 --> 00:16:26,222 איפה פעולות סטנדרטיות בתמורה ש? 394 00:16:26,222 --> 00:16:27,683 כמו, איפה הסוגריים ליפול? 395 00:16:27,683 --> 00:16:30,610 האם חזרתו של את הכתובת על לפני או אחרי [לא ברור]? 396 00:16:30,610 --> 00:16:32,380 >> דובר: זה הולך למדד ב - 397 00:16:32,380 --> 00:16:34,430 או מדד ל-- ולאחר מכן להחזיר את כתובת. 398 00:16:34,430 --> 00:16:38,800 399 00:16:38,800 --> 00:16:41,340 בסדר, אז לא כולם מבינים מה [? Akshar?] 400 00:16:41,340 --> 00:16:45,830 אמר, והסביר, למה זה עובד? 401 00:16:45,830 --> 00:16:49,430 אני לא, מישהו בפעם הראשונה הסביר לי את זה. 402 00:16:49,430 --> 00:16:51,900 האם מישהו אוהב את תמונה כדי להסביר את זה? 403 00:16:51,900 --> 00:16:55,320 אנחנו הולכים לצייר תמונה, עם אין סמנים, זה נהדר. 404 00:16:55,320 --> 00:16:57,920 מצא כמה. 405 00:16:57,920 --> 00:17:03,390 >> אז יש לנו מערך זה סדרה של קופסות. 406 00:17:03,390 --> 00:17:07,160 407 00:17:07,160 --> 00:17:13,710 הראשון הוא מדד 0, מדד 1, 2, 3, 4, נקודה, נקודה, נקודה. 408 00:17:13,710 --> 00:17:15,609 מערך טיפוסי. 409 00:17:15,609 --> 00:17:19,540 ובנוסף לכך שמדדים, לכולם יש כתובות זיכרון. 410 00:17:19,540 --> 00:17:30,190 אז בואו לתת את הכתובת של הזיכרון הזה 13, 14, 15, 16, 17, וכולי. 411 00:17:30,190 --> 00:17:32,490 כולם כאן כל כך רחוק. 412 00:17:32,490 --> 00:17:35,810 >> אז היא כתובת. 413 00:17:35,810 --> 00:17:38,850 שמו של מערך, מצביע נשמר שם. 414 00:17:38,850 --> 00:17:42,730 זה מצביע, זה חלק מזיכרון, לתחילתו של המערך. 415 00:17:42,730 --> 00:17:45,910 אז אם זה היה המערך, יהיה ערך של 13. 416 00:17:45,910 --> 00:17:49,110 וכמובן, אנחנו יכולים לתת כל ערך שאנחנו רוצים. 417 00:17:49,110 --> 00:17:52,450 תו כוכב, אנחנו יכולים לתת כל כתובת זיכרון שאנחנו רוצים. 418 00:17:52,450 --> 00:17:55,940 אנחנו יכולים לתת לו 0, אנחנו יכולים לתת לו 1 שלילי - שלילי 1 לא קיימת, 419 00:17:55,940 --> 00:17:58,820 אז זה כנראה בעייתי, אבל אתה ראית שזה עדיין עבד. 420 00:17:58,820 --> 00:18:03,070 אז אנחנו יכולים לתת כל מספר שאנחנו רוצים, כל כתובת זיכרון שאנחנו רוצים. 421 00:18:03,070 --> 00:18:08,720 >> לאחר מכן, int b אומרת, בסדר, תלך למספר זה של צעדים למערך. 422 00:18:08,720 --> 00:18:13,150 אז אם ב שווה 2, ושווה 13, אנחנו בכתובת זיכרון 13. 423 00:18:13,150 --> 00:18:17,330 ואנחנו הולכים שני צעדים ב, ולכן אנחנו כאן. 424 00:18:17,330 --> 00:18:21,150 והאמפרסנד אומר תמורה הכתובת של מיקום זה. 425 00:18:21,150 --> 00:18:23,990 והכתובת היא, כמובן, 15. 426 00:18:23,990 --> 00:18:28,710 אז אנחנו מקבלים 13 בתוספת 2, או ב בתוספת, שהוא 15. 427 00:18:28,710 --> 00:18:29,590 >> אם כי השאלה היא, - 428 00:18:29,590 --> 00:18:30,250 אני מצטער. 429 00:18:30,250 --> 00:18:34,324 האם זה להבהיר דברים למה זה עובד? 430 00:18:34,324 --> 00:18:36,300 >> קהל: למה שזה יעבוד הולך - 431 00:18:36,300 --> 00:18:38,770 כך שאתה יכול לקבל את מערך ו ללכת למדד שלילי? 432 00:18:38,770 --> 00:18:39,050 >> SPEAKER: נכון. 433 00:18:39,050 --> 00:18:40,870 אז עשינו מספרים שליליים, אז זה - 434 00:18:40,870 --> 00:18:42,770 אין זה אף הגיוני, ראשון, [? אבי,?] 435 00:18:42,770 --> 00:18:43,120 בשבילך? 436 00:18:43,120 --> 00:18:48,840 >> קהל: כן אני פשוט [לא ברור], אבל - 437 00:18:48,840 --> 00:18:50,440 >> דובר: כן, זה היה חוזר 15. 438 00:18:50,440 --> 00:18:53,523 אם היה 13, והיה ב 2, זה יחזור 15. 439 00:18:53,523 --> 00:18:58,160 >> קהל: אז האינדקס אפס לא להיות בעיה, נכון? 440 00:18:58,160 --> 00:19:00,160 מכיוון שאתה נע בין 0. 441 00:19:00,160 --> 00:19:00,470 >> SPEAKER: נכון. 442 00:19:00,470 --> 00:19:05,000 אז אתה זז - כך שאם ב היה 0, אתה לא זז לשום מקום. 443 00:19:05,000 --> 00:19:06,330 והיית רק חזר את הכתובת - 444 00:19:06,330 --> 00:19:10,830 אם ב היה 0, זה בעצם חוזר כתובת של. 445 00:19:10,830 --> 00:19:13,960 עובר בכוכב char וחוזר כתובת שלו פשוט חוזרת, 446 00:19:13,960 --> 00:19:15,860 במהות. 447 00:19:15,860 --> 00:19:18,280 >> אוקיי, השאלה היא למה לעשות מספרים שליליים עובדים? 448 00:19:18,280 --> 00:19:21,670 וזה הדבר ממש מגניב על את זה, כי זה צריך segfault. 449 00:19:21,670 --> 00:19:25,110 וזה יהיה segfault אם עשה משהו כזה. 450 00:19:25,110 --> 00:19:28,050 451 00:19:28,050 --> 00:19:29,300 בואו נגיד, int. 452 00:19:29,300 --> 00:19:34,390 453 00:19:34,390 --> 00:19:39,810 אז הקוד הזה נראה זהה ו צריכים להתנהג באופן זהה. 454 00:19:39,810 --> 00:19:44,550 בעיקרו של דבר, x הוא משתנה אשפה, וכך זה צריך מתנהג באופן זהה. 455 00:19:44,550 --> 00:19:46,370 >> בואו נעשיתי את זה - 456 00:19:46,370 --> 00:19:47,620 אופס - 457 00:19:47,620 --> 00:19:54,790 458 00:19:54,790 --> 00:19:56,040 בכוכב. 459 00:19:56,040 --> 00:19:59,160 460 00:19:59,160 --> 00:20:02,733 בסדר, אנחנו כבר מקבלים שגיאות כאן, כי זה כבר הולך להיות כועס 461 00:20:02,733 --> 00:20:04,610 עליי, כי זה כבר יודע מה עומד לבוא. 462 00:20:04,610 --> 00:20:07,060 בפרט, השנייה אחת. 463 00:20:07,060 --> 00:20:09,800 כתובת של זיכרון שנערם קשור עם משתנה מקומי. 464 00:20:09,800 --> 00:20:14,220 >> בעיקרו של דבר, אני לא הולך להדר זה, ולאחר מכן אני הולך לבטל לעשות 465 00:20:14,220 --> 00:20:14,920 מה שאנחנו עשינו כרגע. 466 00:20:14,920 --> 00:20:19,130 אבל בגלל שאנחנו אף פעם לא באמת גישה מה בזיכרון 467 00:20:19,130 --> 00:20:21,930 מיקום, זה לא הולך לsegfault. 468 00:20:21,930 --> 00:20:26,450 אנחנו אף פעם לא באמת מסתכלים על מה בתיבה השנייה או מה שיש בכל תיבה 469 00:20:26,450 --> 00:20:28,340 של מערך זה. 470 00:20:28,340 --> 00:20:30,980 אנחנו רק אומרים, הנה כתובת של הדבר שאנחנו מחפשים ו 471 00:20:30,980 --> 00:20:32,410 להחזיר כתובת זו. 472 00:20:32,410 --> 00:20:35,700 אנחנו אף פעם לא באמת הולכים ל מערך להסתכל על מיקום זה. 473 00:20:35,700 --> 00:20:39,140 ובגלל שאנחנו אף פעם לא לגעת בזיכרון, אנחנו לא מקבלים בצרות. 474 00:20:39,140 --> 00:20:40,760 אנחנו לא מקבלים segfault. 475 00:20:40,760 --> 00:20:46,225 >> אם ניסיתי, שוב, לגעת בזה זיכרון, לגעת במה שהיה באו ב - 476 00:20:46,225 --> 00:20:49,940 או ב סוגר, ובהנחה היה 0 ו-- 477 00:20:49,940 --> 00:20:53,040 אם היה 0, אפילו, שיהיה די רע, כי אנחנו לא יכולים ללכת 478 00:20:53,040 --> 00:20:54,090 את כל הדרך לשם. 479 00:20:54,090 --> 00:20:58,250 אם A ו-B שניהם היו 0, ואנחנו ניסינו לגעת במה שהיה שם, אז הייתי 480 00:20:58,250 --> 00:20:59,110 להסתבך בצרות. 481 00:20:59,110 --> 00:21:02,160 אבל אם אנחנו לא נוגעים מה יש שם, אנחנו פשוט להחזיר את הכתובת, זה 482 00:21:02,160 --> 00:21:08,300 בעצם לא הולך segfault כי זה מאפשר לך לבצע פעולות אלה. 483 00:21:08,300 --> 00:21:11,920 זה רק מתרגז עליך, ומקבל סופר כעס, כאשר אתה מנסה ולגעת 484 00:21:11,920 --> 00:21:15,740 הזיכרון בפועל ולחזור מה באותו מיקום בזיכרון. 485 00:21:15,740 --> 00:21:17,690 >> האם זה הגיוני? 486 00:21:17,690 --> 00:21:24,820 זה רק חלק מטורף של ג אז, יש לנו עוד אחד מאלה. 487 00:21:24,820 --> 00:21:27,760 488 00:21:27,760 --> 00:21:29,700 >> מי שחושב שזה מגניב? 489 00:21:29,700 --> 00:21:30,280 יותר אנשים. 490 00:21:30,280 --> 00:21:31,070 זה טוב. 491 00:21:31,070 --> 00:21:34,860 אוקיי, זה האחרון שלנו. 492 00:21:34,860 --> 00:21:37,314 ואני רוצה שתגיד לי אם לך או לא חושב שזה הולך 493 00:21:37,314 --> 00:21:38,564 לעשות את אותו דבר בדיוק. 494 00:21:38,564 --> 00:22:06,050 495 00:22:06,050 --> 00:22:07,390 >> שכתבתי אלה איפשהו. 496 00:22:07,390 --> 00:22:08,640 אני לא לשנן אותם. 497 00:22:08,640 --> 00:22:33,350 498 00:22:33,350 --> 00:22:42,900 >> בואו נראה, 8, ב 4, 4, 2, 4, 0, 8, 0, 3, 4, 4, 2, 4, 0, 4. 499 00:22:42,900 --> 00:22:46,670 אז זהו מערך, עכשיו, לא פונקציה. 500 00:22:46,670 --> 00:22:49,640 וזה כי יש לנו מערך מרובע בסוגריים, בסוגריים מסולסלים לא מסולסלים. 501 00:22:49,640 --> 00:22:52,360 וזה מערך של איזה סוג? 502 00:22:52,360 --> 00:22:55,540 503 00:22:55,540 --> 00:22:56,862 אף אחד, הממ? 504 00:22:56,862 --> 00:22:57,694 >> קהל: המספרים הקסדצימליים שלהם? 505 00:22:57,694 --> 00:22:59,650 >> דובר: אבל מה סוג C? 506 00:22:59,650 --> 00:23:00,710 לכולם יש מספרים הקסדצימליים. 507 00:23:00,710 --> 00:23:01,960 מה סוג C? 508 00:23:01,960 --> 00:23:04,730 509 00:23:04,730 --> 00:23:05,480 זה אומר לך. 510 00:23:05,480 --> 00:23:07,350 >> קהל: זה תווים שאינם חתומים. 511 00:23:07,350 --> 00:23:09,170 >> דובר: נכון, תווים שאינם חתומים. 512 00:23:09,170 --> 00:23:13,050 ושני מספרים הקסדצימליים הוא בייט אחד. 513 00:23:13,050 --> 00:23:18,540 אז אלה הם 1, 2, 3, 4, 5, 6, 7, 8, 9 בתים. 514 00:23:18,540 --> 00:23:21,360 זה מערך של 9 בתים. 515 00:23:21,360 --> 00:23:25,530 >> בסדר, אתם בטח כבר יודעים התשובה לשאלה זו. 516 00:23:25,530 --> 00:23:29,840 אבל, מה אתה חושב שיהיה לקרות כאשר אני מפעיל את זה? 517 00:23:29,840 --> 00:23:34,110 אני אומר, שוב, בmysum.c, אני מצפה לתפקוד 518 00:23:34,110 --> 00:23:36,280 שלוקח שני מספרים שלמים. 519 00:23:36,280 --> 00:23:40,265 ואני במקום שאני אומר שסכום הוא מערך של תווים. 520 00:23:40,265 --> 00:23:42,780 521 00:23:42,780 --> 00:23:48,070 מה הולך לקרות כאשר אני מפעיל. / Mysum ולעשות? 522 00:23:48,070 --> 00:23:53,230 >> ובכן, דבר ראשון, רובכם כנראה יהיה מסכים לעשות את זה - אוי לא, סתם, בצחוק. 523 00:23:53,230 --> 00:23:54,746 מה לא עשיתי בסדר? 524 00:23:54,746 --> 00:23:55,996 אה אה. 525 00:23:55,996 --> 00:23:59,220 526 00:23:59,220 --> 00:24:01,160 זה צריך להיות בסוגריים מסולסלים. 527 00:24:01,160 --> 00:24:02,790 ככה אתה לאתחל מערך. 528 00:24:02,790 --> 00:24:04,040 שלי רע. 529 00:24:04,040 --> 00:24:07,530 530 00:24:07,530 --> 00:24:11,670 >> אז אנחנו כבר ראינו לפני שהסוגים הן הפשטה ברמת C, לא 531 00:24:11,670 --> 00:24:12,610 הפשטה ברמת מחשב. 532 00:24:12,610 --> 00:24:16,360 אז רובכם כנראה ציפה שזה לעשות, או בהנחה שזה יגרום. 533 00:24:16,360 --> 00:24:18,680 אבל מה כאשר אני מפעיל. / Mysum? 534 00:24:18,680 --> 00:24:19,930 מה הולך לקרות? 535 00:24:19,930 --> 00:24:21,790 536 00:24:21,790 --> 00:24:23,422 ניחושים כל? 537 00:24:23,422 --> 00:24:25,270 >> קהל: זה הולך להדפיס את מילה. 538 00:24:25,270 --> 00:24:26,310 >> דובר: זה הולך להדפיס את מילה. 539 00:24:26,310 --> 00:24:29,335 מה מילה? 540 00:24:29,335 --> 00:24:32,200 >> קהל: [לא ברור]. 541 00:24:32,200 --> 00:24:33,240 >> דובר: כל ניחושים אחרים? 542 00:24:33,240 --> 00:24:34,000 אישור, להדפיס את ביטוי. 543 00:24:34,000 --> 00:24:35,130 אתה יכול להיות כל ביטוי. 544 00:24:35,130 --> 00:24:36,240 שיהיה בצד שלך. 545 00:24:36,240 --> 00:24:38,480 כל מי שיש ניחוש אחר? 546 00:24:38,480 --> 00:24:39,730 אנה, מה הניחוש שלך? 547 00:24:39,730 --> 00:24:42,675 548 00:24:42,675 --> 00:24:44,615 >> קהל: זה יהיה להדפיס את - 549 00:24:44,615 --> 00:24:47,525 550 00:24:47,525 --> 00:24:49,480 שתי אותיות, או [לא ברור] מכתב אחד. 551 00:24:49,480 --> 00:24:51,460 >> דובר: מכתב אחד. 552 00:24:51,460 --> 00:24:53,260 >> קהל: האם אני יכול לספור כמה רבים [לא ברור]? 553 00:24:53,260 --> 00:24:55,426 >> דובר: תשע. 554 00:24:55,426 --> 00:24:56,640 ובכן, אני הולך להפעיל אותו. 555 00:24:56,640 --> 00:24:58,650 היא עושה את אותו דבר בדיוק. 556 00:24:58,650 --> 00:25:00,190 זה מוסיף שני מספרים יחד. 557 00:25:00,190 --> 00:25:02,740 ובכן, בואו נעבור את שני טיעונים. 558 00:25:02,740 --> 00:25:03,710 זה לא לוקח את טענות. 559 00:25:03,710 --> 00:25:06,080 אז אני לא יודע מאיפה זה יכול אולי לקבל טענות אלה. 560 00:25:06,080 --> 00:25:07,710 אבל בואו נעבור ב100 ו0. 561 00:25:07,710 --> 00:25:09,200 והוא מוסיף ו100 0. 562 00:25:09,200 --> 00:25:10,220 זה מטורף. 563 00:25:10,220 --> 00:25:12,280 אני חושב שכן. 564 00:25:12,280 --> 00:25:14,480 >> 4 שלילי, זה גם פועל. 565 00:25:14,480 --> 00:25:15,650 אתה יכול לעשות מה שאתה רוצה. 566 00:25:15,650 --> 00:25:17,920 זוהי פונקצית סכום תקפה באותה מידה. 567 00:25:17,920 --> 00:25:19,640 זו היא פונקצית סכום. 568 00:25:19,640 --> 00:25:21,510 אבל, לא, אתה אומר שזה מערך של בתים. 569 00:25:21,510 --> 00:25:23,570 אז מה קורה כאן? 570 00:25:23,570 --> 00:25:27,240 >> אז, שוב, בואו נחזור לרעיון הזה שאמרנו בהתחלה. 571 00:25:27,240 --> 00:25:32,050 אתה הולך מקוד ברמת C, להרכבה שפה, לאחדים ואפסים. 572 00:25:32,050 --> 00:25:33,050 זה הקסדצימלי. 573 00:25:33,050 --> 00:25:35,780 אבל זה באמת רק הרבה אחדים ואפסים. 574 00:25:35,780 --> 00:25:39,230 זה 72 לאחדים ואפסים, נכון? 575 00:25:39,230 --> 00:25:40,550 72 אחדים ואפסים. 576 00:25:40,550 --> 00:25:42,160 9 בתים. 577 00:25:42,160 --> 00:25:43,740 לכל אחד יש בייט 8 סיביות. 578 00:25:43,740 --> 00:25:44,760 כל ביט הוא אחד או אפס. 579 00:25:44,760 --> 00:25:45,920 אז 72 אלה או אפסים. 580 00:25:45,920 --> 00:25:48,780 רק שכתבתי אותם ככה - במקום לכתוב את זה כמו הרבה 581 00:25:48,780 --> 00:25:49,730 אחדים ואפסים. 582 00:25:49,730 --> 00:25:53,560 >> אבל זה יעבור מרמת C שפה, להרכבה 583 00:25:53,560 --> 00:25:54,620 שפה, לקוד. 584 00:25:54,620 --> 00:25:59,020 וזה יהיה להדפיס בקוד, איפשהו, 72 לאחדים והאפסים האלה 585 00:25:59,020 --> 00:26:00,910 שכתבתי כאן. 586 00:26:00,910 --> 00:26:03,610 אז אי שם שב-- 587 00:26:03,610 --> 00:26:04,850 בואו נלך לכאן - 588 00:26:04,850 --> 00:26:11,240 אי שם בmysum, התכנית, יש הם 72 לאחדים והאפסים האלה שיש לי 589 00:26:11,240 --> 00:26:14,930 כתב ואמר לו לכתוב. 590 00:26:14,930 --> 00:26:19,331 >> עכשיו, כל ניחושים על מה שאותם 72 לאחדים ואפסים אומר? 591 00:26:19,331 --> 00:26:21,240 >> קהל: כנראה את אותו דבר כמו לחזור ב בתוספת. 592 00:26:21,240 --> 00:26:22,890 >> דובר: כנראה באותו דבר כמו לחזור ב בתוספת. 593 00:26:22,890 --> 00:26:23,730 בואו לבדוק את זה. 594 00:26:23,730 --> 00:26:25,210 בואו להבין איך עשיתי את זה. 595 00:26:25,210 --> 00:26:31,840 >> אז אם אתה הולך לחזור לכאן, אני אומר לך כדי להפעיל פקודה זו, objdump-S 596 00:26:31,840 --> 00:26:34,290 sumfunction.o. 597 00:26:34,290 --> 00:26:36,230 בואו נלך להפעיל אותו. objdump - 598 00:26:36,230 --> 00:26:37,990 obj, לזרוק. 599 00:26:37,990 --> 00:26:39,840 בעיקרון זה יכול לתת לי כל מה שאני רוצה לראות. 600 00:26:39,840 --> 00:26:40,840 זה יכול לתת לי את שפת ההרכבה. 601 00:26:40,840 --> 00:26:42,730 זה יכול לתת לי את אלה ואפסים. 602 00:26:42,730 --> 00:26:43,840 יש לו טונות של דגלים. 603 00:26:43,840 --> 00:26:45,860 זהו אחד אנחנו הולכים להשתמש לעת עתה. 604 00:26:45,860 --> 00:26:46,980 דוט - 605 00:26:46,980 --> 00:26:48,810 כפי שאתה רואה בשקופיות - 606 00:26:48,810 --> 00:26:53,840 הון מקף S אומר, ולשלב, קוד מקור - 607 00:26:53,840 --> 00:26:58,410 הקו הזה הוא מ C - עם ההרכבה קוד ועם אחדים והאפסים. 608 00:26:58,410 --> 00:27:00,350 ואנחנו הולכים לרוץ זה על sumfunction.o. 609 00:27:00,350 --> 00:27:01,410 כי זה אהיה קל יותר לראות. 610 00:27:01,410 --> 00:27:02,670 שוב - הממ? 611 00:27:02,670 --> 00:27:04,700 >> קהל: אתה איית את זה לא נכון. 612 00:27:04,700 --> 00:27:05,930 >> דובר: אבל אני בעצם הולך כדי לנקות אותה לרגע. 613 00:27:05,930 --> 00:27:09,160 אני הולך ראשון כדי לפתוח רק sumfuntion.o. 614 00:27:09,160 --> 00:27:11,170 >> קהל: אתה איית את זה טעיתי בפעם הראשונה. 615 00:27:11,170 --> 00:27:12,420 >> דובר: קלאסי. 616 00:27:12,420 --> 00:27:14,790 617 00:27:14,790 --> 00:27:15,480 סכום - 618 00:27:15,480 --> 00:27:16,680 שהוא מילה קשה, אם כי. 619 00:27:16,680 --> 00:27:19,050 תתפלא. 620 00:27:19,050 --> 00:27:21,560 אוקיי, אז זה sumfunction.o. 621 00:27:21,560 --> 00:27:24,494 622 00:27:24,494 --> 00:27:26,220 אני אפילו לא יכול להגיד לך. 623 00:27:26,220 --> 00:27:30,250 יש הרבה אפסים, ברור הרבה של אפסים, ויש כמה אחר 624 00:27:30,250 --> 00:27:31,930 דברים שלא אפסים. 625 00:27:31,930 --> 00:27:33,220 אבל בעיקר אפסים. 626 00:27:33,220 --> 00:27:35,120 נראה כאילו יש כמה כאלה. 627 00:27:35,120 --> 00:27:36,810 אז ברור, זה קשה לקריאה. 628 00:27:36,810 --> 00:27:39,320 זה שפת בינארית. 629 00:27:39,320 --> 00:27:40,710 >> בואו עכשיו לפתוח אותו - 630 00:27:40,710 --> 00:27:50,190 631 00:27:50,190 --> 00:27:52,350 מה? 632 00:27:52,350 --> 00:27:53,600 מה אני עושה לא בסדר? 633 00:27:53,600 --> 00:27:56,955 634 00:27:56,955 --> 00:27:58,434 האם אני כותב את זה בצורה נכונה? 635 00:27:58,434 --> 00:28:09,865 636 00:28:09,865 --> 00:28:11,120 אוקיי, זה מביך. 637 00:28:11,120 --> 00:28:37,560 638 00:28:37,560 --> 00:28:40,158 אני זקוק לשנייה אחת כדי להבין מה אני עושה לא בסדר. 639 00:28:40,158 --> 00:28:46,030 640 00:28:46,030 --> 00:28:49,310 זה טעות אחת. 641 00:28:49,310 --> 00:28:50,560 זה מוזר. 642 00:28:50,560 --> 00:28:58,080 643 00:28:58,080 --> 00:29:01,800 אה, זה למה. 644 00:29:01,800 --> 00:29:09,880 >> אני הולך לחזור לראשוני שלנו אחד, ולכן אנחנו יכולים להסתכל 645 00:29:09,880 --> 00:29:10,560 קוד אובייקט של זה. 646 00:29:10,560 --> 00:29:13,390 בגלל שיש לא ממש הולך להיות כל דבר, כאשר אנחנו פשוט לשים 647 00:29:13,390 --> 00:29:14,640 לאחדים ואפסים פנימה 648 00:29:14,640 --> 00:29:29,000 649 00:29:29,000 --> 00:29:30,200 הנה. 650 00:29:30,200 --> 00:29:32,425 אוקיי, אז כולם יכולים לראות את זה. 651 00:29:32,425 --> 00:29:38,130 פונקציה זו, כפי שאמרתי, לכבות את קווי C - 652 00:29:38,130 --> 00:29:39,060 שורות קוד מקור - 653 00:29:39,060 --> 00:29:41,000 עם כמה הוראות הרכבה. 654 00:29:41,000 --> 00:29:42,760 >> הנה שורת קוד המקור שלנו. 655 00:29:42,760 --> 00:29:44,910 הנה אחד, הנה עוד. 656 00:29:44,910 --> 00:29:46,540 הנה הוראות ההרכבה. 657 00:29:46,540 --> 00:29:47,820 זה מה שהם נראים. 658 00:29:47,820 --> 00:29:49,010 הוראות הרכבה - 659 00:29:49,010 --> 00:29:51,530 אתה יכול ללמוד יותר מאלה אם אתה לוקח כיתות אחרות של מדעי המחשב, אבל הם 660 00:29:51,530 --> 00:29:53,500 בדרך כלל הוראה. 661 00:29:53,500 --> 00:29:57,940 ואז מקור ויעד. 662 00:29:57,940 --> 00:30:02,740 >> ואז כאן הוא הקוד בינארי המתאים להרכבה כי 663 00:30:02,740 --> 00:30:04,940 הוראה. 664 00:30:04,940 --> 00:30:09,760 אז כפי שאתם יכולים לראות, פונקצית סכום זה, בסופו של היום, הוא שלוש 665 00:30:09,760 --> 00:30:10,950 הוראות הרכבה. 666 00:30:10,950 --> 00:30:12,870 רק שלוש. 667 00:30:12,870 --> 00:30:14,180 mov אחד - 668 00:30:14,180 --> 00:30:16,740 זה מ-o-V עומד על העבר. 669 00:30:16,740 --> 00:30:17,780 הוספת דוכנים להוספה. 670 00:30:17,780 --> 00:30:20,440 ו-R-e-t מייצג שבות. 671 00:30:20,440 --> 00:30:22,540 אז mov אחד, תוספת אחת, תמורה אחת. 672 00:30:22,540 --> 00:30:27,970 ואלה, לכאן, הם האפסים ו אלה שמתאימים לקוד זה. 673 00:30:27,970 --> 00:30:31,100 >> אז אלה אפסים ואחדים, אם לדעת אלה, אתה יכול פשוט לשים 674 00:30:31,100 --> 00:30:32,140 אלה ישר פנימה 675 00:30:32,140 --> 00:30:34,130 ואז זה יעשה את אותו דבר בדיוק. 676 00:30:34,130 --> 00:30:37,260 כי, בסופו של היום, כל אתה ביצוע הוא סדרה ארוכה של 677 00:30:37,260 --> 00:30:38,480 אפסים ואחדים. 678 00:30:38,480 --> 00:30:40,700 וזה מה שהקוד שלך באמת. 679 00:30:40,700 --> 00:30:41,770 >> והסיבה לכך - 680 00:30:41,770 --> 00:30:43,680 בואו נסתכל על דבר אחד. 681 00:30:43,680 --> 00:30:45,440 האם יש לי makefile פתוח? 682 00:30:45,440 --> 00:30:48,510 אז אם אחזור למקף אפס, אפס עד כאן - 683 00:30:48,510 --> 00:30:52,220 684 00:30:52,220 --> 00:30:57,300 מצטער, o הון, הון o אפס, לא אפס, אפס. 685 00:30:57,300 --> 00:31:01,810 ואנחנו לא עושים, זה היה עדיין עובד אותו הדבר. 686 00:31:01,810 --> 00:31:05,420 אבל עכשיו אתה שם לב שיש הרבה יותר הוראות הרכבה. 687 00:31:05,420 --> 00:31:09,090 זאת משום, שוב, שאלתי מהדר לא לעשות שום אופטימיזציה. 688 00:31:09,090 --> 00:31:12,800 >> אז עדיין אני יכול לקחת את כל אלה אפסים ואחדים, ולזרוק אותם ב, 689 00:31:12,800 --> 00:31:13,390 ושיעבוד. 690 00:31:13,390 --> 00:31:15,850 אני רק עשיתי אופטימיזציות, כי זה קצת יותר קל, ולאחר מכן, 691 00:31:15,850 --> 00:31:17,310 לכתוב מערך זה. 692 00:31:17,310 --> 00:31:19,730 אבל זה הייתי לעבוד באותה מידה. 693 00:31:19,730 --> 00:31:24,460 >> אוקיי, אנחנו הולכים לעשות דבר אחד אחרון, כי אני חושב שזה החלק הכי מגניב. 694 00:31:24,460 --> 00:31:27,410 למרות שכולם זה ברור כבר מפוצץ וללא מילים. 695 00:31:27,410 --> 00:31:30,520 696 00:31:30,520 --> 00:31:31,670 המוחות שלנו הם פוצצו. 697 00:31:31,670 --> 00:31:32,920 [לא ברור] 698 00:31:32,920 --> 00:31:47,580 699 00:31:47,580 --> 00:31:51,520 >> אז, אלה הם מכיתת CS שונה, אשר הוא סופר מעניין, 700 00:31:51,520 --> 00:31:52,970 שיש לי לקחתי - 701 00:31:52,970 --> 00:31:54,140 CS61. 702 00:31:54,140 --> 00:31:55,910 אני מאוד ממליץ לך לקחת את זה. 703 00:31:55,910 --> 00:31:58,990 אבל החלק מגניב על עובדה זו, כי דברים הם רק אפסים ואחדים, 704 00:31:58,990 --> 00:32:01,270 הם שכל מה שהוא אפסים ואחדים. 705 00:32:01,270 --> 00:32:05,330 >> אז אתה יכול לקחת את קובץ שיש לו את אפסים נכונים ואלו שאתה רוצה 706 00:32:05,330 --> 00:32:10,390 אי שם בזה, ולהשתמש בסעיף זה של אפסים ואחדים כפונקציה סכום. 707 00:32:10,390 --> 00:32:11,480 >> מה שאני מתכוון לעשות את זה? 708 00:32:11,480 --> 00:32:15,755 אני אומר שאתה יכול לקחת את קובץ תמונה ש יש לו את הסדרה הנכונה של אפסים ו 709 00:32:15,755 --> 00:32:17,120 אלה, שלהדפיס משהו לתמונה. 710 00:32:17,120 --> 00:32:20,070 ותכנית אחת עלול לפרש היא תמונה, אבל אתה יכול לפרש את זה, אם 711 00:32:20,070 --> 00:32:22,040 אתה רוצה, כפונקציה סכום. 712 00:32:22,040 --> 00:32:27,010 >> אז אם אנחנו רוצים לפתוח, עבור למשל, תמונה זו. 713 00:32:27,010 --> 00:32:37,440 בואו נלך, הלו קיטי. 714 00:32:37,440 --> 00:32:38,810 תמונה קטנה ונפלאה. 715 00:32:38,810 --> 00:32:42,260 בפה יש מחרוזת ש של אפסים ואחדים. 716 00:32:42,260 --> 00:32:45,500 אלה 72 אפסים ואחדים קיים בתמונה זו. 717 00:32:45,500 --> 00:32:47,695 >> אז מה אני יכול לעשות, אם כן, לכתוב - 718 00:32:47,695 --> 00:32:50,510 719 00:32:50,510 --> 00:32:51,760 אני צריך לזכור היכן הם נמצאים. 720 00:32:51,760 --> 00:32:54,550 721 00:32:54,550 --> 00:32:55,720 אני תמצא את זה תוך שני. 722 00:32:55,720 --> 00:32:57,840 אבל אנחנו עושים - 723 00:32:57,840 --> 00:32:59,440 תן לי לגלות היכן הם נמצאים. 724 00:32:59,440 --> 00:33:00,020 שנייה אחת. 725 00:33:00,020 --> 00:33:01,270 בואו לעשות - 726 00:33:01,270 --> 00:33:05,800 727 00:33:05,800 --> 00:33:07,240 >> קהל: [לא ברור]. 728 00:33:07,240 --> 00:33:08,490 >> דובר: תודה. 729 00:33:08,490 --> 00:33:24,240 730 00:33:24,240 --> 00:33:28,740 אז אם אנחנו לבצע תכנית זו, אשר במקום שקורא בקובץ, אז זה הולך 731 00:33:28,740 --> 00:33:33,160 למדד זה בקובץ. 732 00:33:33,160 --> 00:33:35,500 ואז, שוב, בדיוק כמו mysum, לוקח שני מספרים. 733 00:33:35,500 --> 00:33:41,410 אנחנו יכולים להוסיף מספרים בדיוק כמו אנחנו עושים לפני, אשר הולך 734 00:33:41,410 --> 00:33:44,850 להראות לך איך את העובדה כי בסופו של הדבר שלו של היום, כל הדברים האלה הם 735 00:33:44,850 --> 00:33:45,350 אפסים ואחדים. 736 00:33:45,350 --> 00:33:48,170 וזה בדיוק איך שאתה בוחר לפרש אותם. 737 00:33:48,170 --> 00:33:50,770 >> ואם אתה באמת נראה בתמונה זו - 738 00:33:50,770 --> 00:33:52,930 בואו להתקרב קצת. 739 00:33:52,930 --> 00:33:53,720 האם כל אחד יכול לראות את זה? 740 00:33:53,720 --> 00:33:57,570 תוכל להבחין כאן, יש כמה כתם מוזר. 741 00:33:57,570 --> 00:34:00,130 742 00:34:00,130 --> 00:34:02,290 בואו נלך - זה את התמונה המקורית. 743 00:34:02,290 --> 00:34:04,540 תוכל להבחין כאן שאין שום כתם. 744 00:34:04,540 --> 00:34:08,420 זה הקוד לפונקצית הסכום, הוא שכתם קטן ממש שם. 745 00:34:08,420 --> 00:34:13,449 >> ולמעשה, שוב, אם אתה לומד יותר על זה, תבין שזה 746 00:34:13,449 --> 00:34:18,270 הלו קיטי, שבו יש אפילו יותר גדול כתם, יש קוד שיכול להשתלט על 747 00:34:18,270 --> 00:34:21,800 מחשב אם זה לא מוגן כראוי. 748 00:34:21,800 --> 00:34:23,920 אז למעשה אתה יכול להפעיל את זה. 749 00:34:23,920 --> 00:34:25,380 אני לא הולך להפעיל אותו עכשיו. 750 00:34:25,380 --> 00:34:30,600 אבל אתה יכול להפעיל את זה שלום תמונתו קיטי, וזה יכול 751 00:34:30,600 --> 00:34:32,429 להשתלט על המחשב שלך. 752 00:34:32,429 --> 00:34:35,159 >> אז זה כל להדגמה. 753 00:34:35,159 --> 00:34:38,560 האם יש למישהו שאלות, הערות, חששות? 754 00:34:38,560 --> 00:34:39,515 אני חושב שהדבר הזה הוא מרתק. 755 00:34:39,515 --> 00:34:41,500 זה נתן לי השראה כדי ללמוד עוד. 756 00:34:41,500 --> 00:34:44,980 אני מאוד ממליץ, אם אתה מעוניין בכלל במדעי מחשב, לדבר איתי. 757 00:34:44,980 --> 00:34:50,250 למרות שאני מדעי חברה מרוכז, אני CS, משניים, ולכן 758 00:34:50,250 --> 00:34:52,340 אני עדיין יודע קצת. 759 00:34:52,340 --> 00:34:53,810 אבל אני בהחלט יודע מה שיעורים אתה צריך לקחת. 760 00:34:53,810 --> 00:34:57,940 אני חושב שזה הכל באמת מעניין, ואני ממליץ לך, ללא ספק, ל 761 00:34:57,940 --> 00:35:00,330 ללמוד יותר אם אתה מעוניין. 762 00:35:00,330 --> 00:35:02,090 >> אוקיי, יש לי דבר אחד סופי. 763 00:35:02,090 --> 00:35:05,530 764 00:35:05,530 --> 00:35:05,870 סליחה. 765 00:35:05,870 --> 00:35:06,460 כל שאלה? 766 00:35:06,460 --> 00:35:10,010 אני לא להשהות לחכות אם מישהו היו שאלות על זה. 767 00:35:10,010 --> 00:35:13,220 768 00:35:13,220 --> 00:35:16,900 >> האם מישהו הולך להיות מרוכז CS? 769 00:35:16,900 --> 00:35:18,580 או לחשוב על זה? 770 00:35:18,580 --> 00:35:20,730 אחת, שתיים, שלוש, ארבעה. 771 00:35:20,730 --> 00:35:21,620 אחד - אחד בלבד. 772 00:35:21,620 --> 00:35:24,680 אנה היא רק היד זה העלה בסמכותיות. 773 00:35:24,680 --> 00:35:27,640 774 00:35:27,640 --> 00:35:29,390 בסדר, זה מגניב. 775 00:35:29,390 --> 00:35:30,110 אסאם, מה אתה הולך לעשות? 776 00:35:30,110 --> 00:35:33,220 >> קהל: [לא ברור]. 777 00:35:33,220 --> 00:35:33,910 >> דובר: קונסטנטין? 778 00:35:33,910 --> 00:35:34,990 >> קהל: פיסיקה. 779 00:35:34,990 --> 00:35:36,720 >> דובר: וואו, זה היה מהיר. 780 00:35:36,720 --> 00:35:40,770 היה לך ניסיון רע בCS50? 781 00:35:40,770 --> 00:35:42,015 [לא ברור], מה אתה הולך לעשות? 782 00:35:42,015 --> 00:35:42,980 >> קהל: אין לי מושג. 783 00:35:42,980 --> 00:35:43,924 >> דובר: קורט? 784 00:35:43,924 --> 00:35:45,900 >> קהל: Econ או CS. 785 00:35:45,900 --> 00:35:46,910 >> דובר: Econ או CS. 786 00:35:46,910 --> 00:35:47,840 טום? 787 00:35:47,840 --> 00:35:48,385 >> קהל: אני עושה Stat. 788 00:35:48,385 --> 00:35:48,950 >> דובר: Stat? 789 00:35:48,950 --> 00:35:50,100 על אישור. 790 00:35:50,100 --> 00:35:51,000 מה אתה? 791 00:35:51,000 --> 00:35:51,310 >> קהל: אותי? 792 00:35:51,310 --> 00:35:51,750 >> דובר: כן. 793 00:35:51,750 --> 00:35:52,190 >> קהל: Stat. 794 00:35:52,190 --> 00:35:52,520 >> דובר: Stat. 795 00:35:52,520 --> 00:35:53,500 אה, הנה לך. 796 00:35:53,500 --> 00:35:55,200 טום, לדבר עם אלדן. 797 00:35:55,200 --> 00:35:56,932 אמילי, מה שלומך? 798 00:35:56,932 --> 00:35:57,396 >> קהל: ביו - 799 00:35:57,396 --> 00:36:00,178 >> דובר: האם אתה בסעיף זה? 800 00:36:00,178 --> 00:36:03,040 >> קהל: לא. 801 00:36:03,040 --> 00:36:04,530 >> הדובר: בסדר, זה אמילי. 802 00:36:04,530 --> 00:36:05,670 היא החברה שלי. 803 00:36:05,670 --> 00:36:10,080 ברור שלא זה של חבר טוב, בגלל שהיא נותנת לי חיים קשה. 804 00:36:10,080 --> 00:36:13,223 אתה יכול להיות יותר נחמד אליי בחזית של כולם, התלמיד שלי - 805 00:36:13,223 --> 00:36:14,580 >> קהל: אני עושה את מדריך השאלות שלך. 806 00:36:14,580 --> 00:36:14,870 >> דובר: באמת? 807 00:36:14,870 --> 00:36:15,510 אה אה. 808 00:36:15,510 --> 00:36:17,224 בסדר, אתה מדהים. 809 00:36:17,224 --> 00:36:19,380 אני אוהב אותך כל כך הרבה. 810 00:36:19,380 --> 00:36:20,600 אוי ואבוי. 811 00:36:20,600 --> 00:36:28,320 >> בכל מקרה, אני, אתמול בלילה, כמו כל דבר - 812 00:36:28,320 --> 00:36:32,220 אני בטוח שכולם נראה באמת הדגיש עכשיו. 813 00:36:32,220 --> 00:36:35,970 אני לא יודע, הם בכיתה ט '- הם אתם מרגישים לחוץ? 814 00:36:35,970 --> 00:36:36,855 אני מרגיש לחוץ. 815 00:36:36,855 --> 00:36:37,980 זה היה כמו, אתה הולך הביתה לחג ההודיה. 816 00:36:37,980 --> 00:36:40,660 אתה כמו, אני הולך לעשות את כל הדברים האלה. 817 00:36:40,660 --> 00:36:41,530 >> קהל: זה כל כך שונה. 818 00:36:41,530 --> 00:36:42,560 >> דובר: כן, ואתה חוזר. 819 00:36:42,560 --> 00:36:45,290 ג'ף, אתה לא מרגיש ככה? 820 00:36:45,290 --> 00:36:46,610 >> קהל: אני רק חשבתי הייתי עושה קצת. 821 00:36:46,610 --> 00:36:48,660 >> דובר: בסדר, נהדר. 822 00:36:48,660 --> 00:36:51,650 אז אני חוזר, ויש לי לא עשה שום דבר. 823 00:36:51,650 --> 00:36:53,260 וכל זה סופר מלחיץ. 824 00:36:53,260 --> 00:36:55,640 ואני מודאג, מודאג באמת ובתמים, לגבי האם או לא אני 825 00:36:55,640 --> 00:36:57,380 הולך לסיים את כל מה שאני צריך. 826 00:36:57,380 --> 00:37:01,750 אבל אתמול בלילה, אני לא לחוץ, הייתי קצת עצוב. 827 00:37:01,750 --> 00:37:04,520 אז כתבתי ביומן שלי על מה שאני היה עצוב. 828 00:37:04,520 --> 00:37:08,020 ואני היה עצוב על סעיף זה במעמד הזה מגיע לסיומו. 829 00:37:08,020 --> 00:37:11,100 >> כל כך פשוט שאני הולך לקרוא לחבר 'ה קטע קטן של היומן שלי, 830 00:37:11,100 --> 00:37:12,950 מאתמול בלילה. 831 00:37:12,950 --> 00:37:17,400 האם אני יכול לקבל כמה מפיות, כמה רקמות מטום? 832 00:37:17,400 --> 00:37:18,040 לא, אני עומד לבכות. 833 00:37:18,040 --> 00:37:19,720 אני לא בוכה. 834 00:37:19,720 --> 00:37:22,030 לא שאתה לא יכול לבכות, אני רק לא לבכות. 835 00:37:22,030 --> 00:37:24,040 אני אפילו לא יודע אם הדמעות שלי בלוטות עבדו - צינוריות דמעה. 836 00:37:24,040 --> 00:37:25,630 אני לא בכיתי בזמן רב. 837 00:37:25,630 --> 00:37:26,510 >> קהל: [לא ברור]. 838 00:37:26,510 --> 00:37:28,920 >> דובר: בסדר, תודה. 839 00:37:28,920 --> 00:37:30,070 בסדר, יש קצת הקדמה - 840 00:37:30,070 --> 00:37:32,480 יש כמה חלקים אחרים של היומן שלי כניסה, כי אני מנסה בכל עת 841 00:37:32,480 --> 00:37:33,600 הלילה לפני שנכנסתי למיטה. 842 00:37:33,600 --> 00:37:34,900 אני מאוד ממליץ על כתיבת יומן. 843 00:37:34,900 --> 00:37:38,600 זה עוזר לך לעבד את הדברים, וגם להיות מעריך מאוד את היום שלך. 844 00:37:38,600 --> 00:37:43,063 וזה עושה את זה הרבה יותר קל לחפש חזרה על היום שלך ולהבין ש 845 00:37:43,063 --> 00:37:44,240 היו הרבה טוב דברים שלא קרו. 846 00:37:44,240 --> 00:37:47,240 גם אם אתה מרגיש באמת הדגיש בלילה או באמת נסער, או 847 00:37:47,240 --> 00:37:49,022 באמת עצוב או עייף. 848 00:37:49,022 --> 00:37:50,272 >> אוי, אלוהים. 849 00:37:50,272 --> 00:37:52,546 850 00:37:52,546 --> 00:37:54,400 אני אפילו לא יודע אם זה נכתב כי גם בגלל שלא להגיה אותו. 851 00:37:54,400 --> 00:37:55,780 אבל אנחנו קראנו אותו. 852 00:37:55,780 --> 00:37:59,950 אני בדרך כלל לא קורא כתב עת, כמובן. 853 00:37:59,950 --> 00:38:03,720 >> "מחר, אני אלמד אותי סופי סעיף CS50 של השנה. 854 00:38:03,720 --> 00:38:05,860 זה מטורף איך שזמן טס מהר. 855 00:38:05,860 --> 00:38:09,900 ובכל זאת, אני נדהם עד כמה שונה הניסיון שלי מלמד את זה בשנה שהיה 856 00:38:09,900 --> 00:38:11,365 מאשר כשהייתי בכיתת י '. 857 00:38:11,365 --> 00:38:14,120 בתור התחלה, אני בהחלט יודע את החומר טוב יותר. 858 00:38:14,120 --> 00:38:16,820 אבל אל תספר המחזור הראשון שלי תלמידים ש. 859 00:38:16,820 --> 00:38:20,030 וחשוב יותר, לעומת זאת, הבנתי כי את השמחה שמגיעה ממעמד 860 00:38:20,030 --> 00:38:23,160 בחזיתו של חדר, מה שמתחיל כזרים, אבל בסופו כ, ב 861 00:38:23,160 --> 00:38:27,150 לפחות, חברים בפייסבוק, הוא לא מקרי בשנה הראשונה. 862 00:38:27,150 --> 00:38:29,970 במקום זאת, זה מהידיעה, ב חלק קטן בדרך, שאתה עוזר 863 00:38:29,970 --> 00:38:32,980 מוכשר, מתחשב, מענג, ו אנשים נלהבים ללמוד קצת יותר 864 00:38:32,980 --> 00:38:34,750 על מדעי מחשב. 865 00:38:34,750 --> 00:38:37,480 >> אתה הסטת שהנורה פשוט קצת בשקע שלה, כך שזה הצליח 866 00:38:37,480 --> 00:38:42,120 לזרוח בהיר יותר מאשר לך, או שהם, יכול היה לדמיין בתחילת סמסטר. 867 00:38:42,120 --> 00:38:45,390 אתה עוזר מתהפך מזעיף פנים אלה למטה ושואל שאלות כי 868 00:38:45,390 --> 00:38:49,240 לספק תמיכה, אבל עדיין מאפשר תלמידים לעמוד על שלהם. 869 00:38:49,240 --> 00:38:52,190 >> זה בהחלט לא הגזמה לומר כי סעיף זה הוא אהוב עליי 870 00:38:52,190 --> 00:38:53,190 בחלק מהשבוע. 871 00:38:53,190 --> 00:38:57,930 או אפילו שאני מהסס לומר, שזה הכל, ב05:30 בכל שבוע, בידיעה 872 00:38:57,930 --> 00:39:00,640 שזה יהיה יותר מדי זמן עד שנפגש שוב. 873 00:39:00,640 --> 00:39:02,740 >> ובכל זאת, אני מודה מאוד ל כל מי שנתן לי את זה 874 00:39:02,740 --> 00:39:05,010 הזדמנות להחזיר לאחרים. 875 00:39:05,010 --> 00:39:07,340 לדוד, על הסבלנות והאמון שלו. 876 00:39:07,340 --> 00:39:11,040 לצוות הצילום והפקה, עבור גורם לי להיראות מכובד במקצת. 877 00:39:11,040 --> 00:39:15,380 והכי חשוב, לתלמידים שלי, בלעדיהם הייתי צריך שום סיבה 878 00:39:15,380 --> 00:39:17,890 לבלות 10 שעות להבין הטוב ביותר דרך למשוך מצביעים, או לפרוש 879 00:39:17,890 --> 00:39:20,330 שולחן של דולפינים, באמצעות JavaScript. 880 00:39:20,330 --> 00:39:22,620 כמו תמיד, זה היה ברכה ". 881 00:39:22,620 --> 00:39:25,420 >> אז עם זה, תודה חבר 'ה. 882 00:39:25,420 --> 00:39:29,000 אני תראה את כל מה שאתה ביריד CS50, ו hackathon, אם אתה שם. 883 00:39:29,000 --> 00:39:32,020 ואם יש לך שאלות, אני אשאר מסביב, עד שאין יותר. 884 00:39:32,020 --> 00:39:33,760 אבל אני מודה לך חבר 'ה ל שנה נפלאה. 885 00:39:33,760 --> 00:39:37,290 >> [מחיאות כפות] 886 00:39:37,290 --> 00:39:38,540 >> דובר: אני עלול לבכות. 887 00:39:38,540 --> 00:39:40,800