1 00:00:00,000 --> 00:00:05,830 2 00:00:05,830 --> 00:00:08,650 >> ג'ייסון הירשהורן: ברוכים באים CS50 סעיף, כולם. 3 00:00:08,650 --> 00:00:11,430 שמי הוא ג'ייסון הירשהורן. 4 00:00:11,430 --> 00:00:15,850 אני הרבה TFS שלך, אבל הרבה אנשים יהיו בתקווה שיצטרפו אלינו 5 00:00:15,850 --> 00:00:20,420 , תלמידי שלוחה מקוונים או סטודנטים מנסה להסתכל דרך סעיף אם הם 6 00:00:20,420 --> 00:00:22,830 פספס הקטע שלהם באותו שבוע או פשוט להתעדכן אם הם רוצים 7 00:00:22,830 --> 00:00:24,510 לסקור קצת חומר. 8 00:00:24,510 --> 00:00:30,060 >> אז כמו לכל תכנית הלימודים, שבו כל מכם קראו, לתקן? 9 00:00:30,060 --> 00:00:31,390 אני רואה הרבה מהנהן בראש. 10 00:00:31,390 --> 00:00:34,220 מדורים לספק לך הזדמנויות כדי לחקור את המהלך של 11 00:00:34,220 --> 00:00:37,420 חומר בסביבה אינטימית יותר, כמו גם לצלול לתוך 12 00:00:37,420 --> 00:00:38,810 הידיים על פעילויות. 13 00:00:38,810 --> 00:00:41,230 >> אז זה בעצם מה שאנחנו הולך לעשות כל שבוע. 14 00:00:41,230 --> 00:00:45,090 אנחנו הולכים לעבור את מה שיש לנו נחוש בדעתו להיות חשוב ביותר 15 00:00:45,090 --> 00:00:49,170 נושאים נלמדים בהרצאה, ואת אלה כנראה גם שימושי וביותר 16 00:00:49,170 --> 00:00:52,780 סיכוי טוב ביותר לעלות על קבוצות בעייתי ובחידונים, ובקידוד שלך 17 00:00:52,780 --> 00:00:53,970 חיים מחוץ לCS50. 18 00:00:53,970 --> 00:00:57,260 אז אנחנו הולכים להיכנס לנושאים אלו, לדון בהם, לעבור עליהם, 19 00:00:57,260 --> 00:01:00,660 לענות על כל שאלה שיש לך חבר 'ה, ו אז אנחנו הולכים לעשות הרבה 20 00:01:00,660 --> 00:01:02,250 בעיות בקידוד בפועל. 21 00:01:02,250 --> 00:01:04,239 >> אתם הביאו את מחשבים ניידים, אשר הוא פנטסטי. 22 00:01:04,239 --> 00:01:05,710 זו היא מחלקה למדעי מחשב. 23 00:01:05,710 --> 00:01:10,070 עם זאת, הרבה מהתרגילים שאנו עושים, אתה לא צריך למחשבים הניידים שלך. 24 00:01:10,070 --> 00:01:11,720 אתה יכול לעשות אותם על גיליון נייר. 25 00:01:11,720 --> 00:01:13,580 ככה אתה הולך לעשות אותם בחידונים. 26 00:01:13,580 --> 00:01:16,450 ואכן, זה דרך מצוינת באמת יודע כי לך איך לעשות 27 00:01:16,450 --> 00:01:19,720 משהו אם אין לך בדוק 50 עד להסתמך על או הצע להסתמך על, ואמר לי 28 00:01:19,720 --> 00:01:20,620 אתה עשית את כל שגיאות. 29 00:01:20,620 --> 00:01:25,670 >> אז אתה מוזמן קוד על מכשיר או run.cs50.net, שהוא 30 00:01:25,670 --> 00:01:29,770 כלי נוסף שמאפשר לך קוד באינטרנט, אבל אני גם ממליץ, אם 31 00:01:29,770 --> 00:01:32,280 אתה לא ניסית את זה, תוך שימוש בגיליון נייר ומנסה בפועל אלה 32 00:01:32,280 --> 00:01:33,640 בעיות על דף נייר. 33 00:01:33,640 --> 00:01:35,330 כי שוב, זה סופו של דבר מה שאתה הולך להיות 34 00:01:35,330 --> 00:01:37,430 ביקש לעשות בחידונים. 35 00:01:37,430 --> 00:01:44,080 >> אז בואו נתחיל עימנו סדר יום להיום. 36 00:01:44,080 --> 00:01:47,710 אנחנו הולכים לעבור על כמה נורמות עבור החלק שלנו, ואז אנחנו הולכים לצלול 37 00:01:47,710 --> 00:01:51,180 למערכים, פונקציות, ושורת הפקודה ויכוחים, וזה מה שאתם 38 00:01:51,180 --> 00:01:56,200 כיסיתי את השבוע האחרון בהרצאה ואז יום שני, ומה תוכל לכסות 39 00:01:56,200 --> 00:01:57,330 יותר ממחר. 40 00:01:57,330 --> 00:01:59,060 ולבסוף, אנחנו הולכים לדבר על pset2. 41 00:01:59,060 --> 00:02:03,640 אם אני יכול לקבל הרמת ידיים, אם אתה לא הסתכל על סט הבעיה שתיים 42 00:02:03,640 --> 00:02:04,890 מפרט. 43 00:02:04,890 --> 00:02:07,060 44 00:02:07,060 --> 00:02:08,120 אנחנו נגיד לכולם. 45 00:02:08,120 --> 00:02:09,419 פנטסטי. 46 00:02:09,419 --> 00:02:12,070 >> נדבר על קבוצות בעייתיים במעט, אבל אם אתה קורא את סט הבעיה 47 00:02:12,070 --> 00:02:14,340 מפרט, זה כל מה שאתה צריך לעשות. 48 00:02:14,340 --> 00:02:18,370 אם אתה קורא את זה לפני שאתם מגיעים ל כיתה וסעיף ביום שלישי, יהיה לך 49 00:02:18,370 --> 00:02:19,220 להיות בעמדה מצוינת. 50 00:02:19,220 --> 00:02:21,680 אנחנו יכולים לעבור את קבוצת הבעיה, וזה מה שאנחנו הולכים 51 00:02:21,680 --> 00:02:22,090 לעשות בסוף. 52 00:02:22,090 --> 00:02:23,500 אנחנו הולכים לעבור ההיגיון, ודא 53 00:02:23,500 --> 00:02:24,710 שכולם באותו הדף. 54 00:02:24,710 --> 00:02:28,650 >> אני רוצה להיות מסוגל לעזוב יום שלישי מרגיש מאוד בנוח עם מה שאתה 55 00:02:28,650 --> 00:02:31,560 צריך לעשות לקבוצת הבעיה של השבוע, ואם לא תעשה זאת, אעשה זאת בשמחה 56 00:02:31,560 --> 00:02:33,050 להישאר אחרי ולעבוד איתך. 57 00:02:33,050 --> 00:02:36,850 אבל זה דבר אחד שיש לך לעשות, אבל אני חושב שיהיה ממש חכם, 58 00:02:36,850 --> 00:02:40,500 רק כדי לקרוא את ערכת הבעיה מפרט על פי מעמד ביום שלישי, 59 00:02:40,500 --> 00:02:42,640 שזה נשמע כמו הרבה חבר 'ה עשה את זה. 60 00:02:42,640 --> 00:02:45,810 >> אני אתחיל עם סדר יום כל כיתה אז אתה יודע לאן אנחנו הולכים. 61 00:02:45,810 --> 00:02:49,520 זה גם מועיל לאנשים צופים באינטרנט, כי כל קטע 62 00:02:49,520 --> 00:02:53,540 הוא מקודד לפי צבע, כך שאם אתה רוצה לבוא הלוך ורק לצפות 10 דקות ולא 63 00:02:53,540 --> 00:02:56,950 מסעיף 90 דקות השלמה, אתה יכול פשוט ללכת למקטע המקודד הצבע 64 00:02:56,950 --> 00:02:57,890 ומסתכל על חלק הזה. 65 00:02:57,890 --> 00:03:01,510 אז אני כבר ניסיתי לשבור אותם ליפה מודולים שיאפשר לך - 66 00:03:01,510 --> 00:03:03,960 אם אתה רוצה לחזור ולסקור, או תלמידים אחרים שהם רק 67 00:03:03,960 --> 00:03:05,350 צפייה בקטע לסקור - 68 00:03:05,350 --> 00:03:08,130 כדי למצוא את הדבר הספציפי שהם רוצה לשים לב 69 00:03:08,130 --> 00:03:10,480 וללמוד עוד על. 70 00:03:10,480 --> 00:03:11,390 מתוק. 71 00:03:11,390 --> 00:03:12,180 >> נורמות. 72 00:03:12,180 --> 00:03:13,680 אני מנהיג FOP בקמפוס. 73 00:03:13,680 --> 00:03:14,900 אני לא יודע אם מישהו עשה FOP. 74 00:03:14,900 --> 00:03:16,280 האם מישהו יעשה FOP? 75 00:03:16,280 --> 00:03:17,100 אדם אחד עשה FOP. 76 00:03:17,100 --> 00:03:18,430 שני אנשים עשו FOP. 77 00:03:18,430 --> 00:03:19,250 מדהים. 78 00:03:19,250 --> 00:03:22,360 אז FOP הוא השנה הראשונה תחת כיפת השמיים תכנית כיווניות. 79 00:03:22,360 --> 00:03:27,240 אנחנו לוקחים את תלמידי שנה א 'אל תוך היער ולעשות החוויות הקסומות ביותר של 80 00:03:27,240 --> 00:03:28,830 חייהם, נכון? 81 00:03:28,830 --> 00:03:29,220 כן. 82 00:03:29,220 --> 00:03:30,080 נשמע בסדר. 83 00:03:30,080 --> 00:03:36,360 >> אז רק רציתי להתחילנו הראשון סעיף דן בכמה נורמות 84 00:03:36,360 --> 00:03:38,860 לכיתה ומערכת היחסים שלנו כי אני חושב 85 00:03:38,860 --> 00:03:40,010 הם חשובים מאוד. 86 00:03:40,010 --> 00:03:43,630 בראש ובראשונה, כמו אלה מכם ש הם החלק שלי וקבל 87 00:03:43,630 --> 00:03:47,150 כבר דן בכך דואר אלקטרוני, אני אוהב את זה. 88 00:03:47,150 --> 00:03:48,130 זה החלק האהוב עליי של השנה. 89 00:03:48,130 --> 00:03:49,100 אני כבר כל כך מתרגש. 90 00:03:49,100 --> 00:03:50,040 אני פה כבר במשך שעות היום. 91 00:03:50,040 --> 00:03:54,560 אני לא עזבתי את הבניין הזה אלא ללכת לאכול כי אני אוהב את CS50 סעיף, אני 92 00:03:54,560 --> 00:03:58,620 אוהב את ההוראה, אני אוהב את העבודה עם אתם. 93 00:03:58,620 --> 00:04:02,000 >> אחת העדיפויות הגבוהות ביותר שלי, אם לא שלי בעדיפות ראשונה, לא רק עבור 94 00:04:02,000 --> 00:04:05,130 המעמד הזה, אבל כולל אחר שלי שיעורים וחוגים של, הוא 95 00:04:05,130 --> 00:04:09,350 תומכים בכם חבר 'ה, ולעזור לכם, ו עושה כמיטב יכל כדי לוודא שאתה 96 00:04:09,350 --> 00:04:13,780 החבר 'ה נפלא, כיף, פורה, מרתק, מרגש 97 00:04:13,780 --> 00:04:15,250 ניסיון במעמד הזה. 98 00:04:15,250 --> 00:04:16,190 זה מה שאני מחויב. 99 00:04:16,190 --> 00:04:17,959 זו הסיבה שאני אוהב לעשות את זה. 100 00:04:17,959 --> 00:04:20,190 זה המספר שלי דבר אחד, תמיכה לך החבר 'ה. 101 00:04:20,190 --> 00:04:25,110 אם יש לך שאלות כלשהן בנוגע להרצאה, סט הבעיה, סעיף, 102 00:04:25,110 --> 00:04:28,830 חיים, גם אם אתה רוצה לדבר על חיים, אתה מוזמן להגיע. 103 00:04:28,830 --> 00:04:31,210 >> יש לך את מספר הטלפון הסלולרי שלי, יש לך הדואר האלקטרוני שלי 104 00:04:31,210 --> 00:04:32,910 כתובת, יש לך Gchat שלי. 105 00:04:32,910 --> 00:04:37,540 אתה יכול לפנות אליי בכל או את כל אלה בכל פעם, אבל כנראה לא יקבלו 106 00:04:37,540 --> 00:04:38,720 תגובה בכל פעם. 107 00:04:38,720 --> 00:04:41,020 אני מנסה ולחזור תוך 24 שעות. 108 00:04:41,020 --> 00:04:44,760 לעתים קרובות זה יהיה בתוך 20 דקות או 24 דקות. 109 00:04:44,760 --> 00:04:46,110 הייתי צריך להגיד ש כדי לעשות את זה במקביל. 110 00:04:46,110 --> 00:04:48,840 אבל אתה תקבל תגובה די מהר. 111 00:04:48,840 --> 00:04:54,220 >> אם טקסט אותי שעה לפני בעיה של הקבוצה בשל, אני ארגיע אותך 112 00:04:54,220 --> 00:04:57,660 למטה ולעשות תרגילי נשימה עמוקים איתך, אבל אם אתה לא התחיל, 113 00:04:57,660 --> 00:05:00,270 אתה כנראה לא הולך עד הסוף, ו אני באמת לא יכול לעזור לך שם 114 00:05:00,270 --> 00:05:01,710 למרות שאני אנסה הכי טוב שלי. 115 00:05:01,710 --> 00:05:03,920 אז אני אעשה הכל אני יכול לתמוך בך. 116 00:05:03,920 --> 00:05:07,980 אנא הרגש חופשי להגיע אם זה בסעיף שוב, בשעתי עבודה 117 00:05:07,980 --> 00:05:09,150 אם אתה רואה אותי, או אפילו בחוץ. 118 00:05:09,150 --> 00:05:11,800 אני שמח להגדיר זמן להיפגש ועבודה דרך בעיות 119 00:05:11,800 --> 00:05:14,410 עם או לעבור על חומר. 120 00:05:14,410 --> 00:05:15,990 אז זה מספר אחד, תמיכה. 121 00:05:15,990 --> 00:05:17,940 אני אעשה כל מה שאני יכול לתמוך בך. 122 00:05:17,940 --> 00:05:21,520 >> מספר שתיים, פגישה באמצע. 123 00:05:21,520 --> 00:05:24,760 כמה שאני רוצה להיות, אני לא כל יכול או כל יכול או 124 00:05:24,760 --> 00:05:28,410 כל הידיעה, ולכן אני לא יודע את כל זמן אם מה שאני עושה הוא מקבל 125 00:05:28,410 --> 00:05:33,410 על פני, אם אופן בו אני מלמד נושא מסייע לך ללמוד את זה, או אם אתה 126 00:05:33,410 --> 00:05:36,120 מבולבלים בנושא אך לא להרים את היד שלך, או שואל אותי 127 00:05:36,120 --> 00:05:37,390 או לשלוח לי מייל. 128 00:05:37,390 --> 00:05:42,150 או אפילו אם אתה, שוב, מבולבל על משהו על סט הבעיה. 129 00:05:42,150 --> 00:05:44,240 אם אתה לא להגיע אליי, אני לא יכול לדעת את זה בודאות. 130 00:05:44,240 --> 00:05:46,950 אני הולך לעשות את הכי טוב שלי כדי לבדוק על חבר 'ה, לוודא שהכל 131 00:05:46,950 --> 00:05:51,170 הולך טוב, נסה ללמד את הדברים בצורה שיהיה תורם לרוב 132 00:05:51,170 --> 00:05:54,910 סגנונות הלמידה שלך, אבל אם יש משהו שאני יכול לעשות, תן לי לדעת. 133 00:05:54,910 --> 00:05:58,520 >> לאורך שורות אלה, אם אתה רוצה קצת עזרה עם סט הבעיה, אני יותר 134 00:05:58,520 --> 00:05:59,700 אשמח לעזור לך עם סט הבעיה. 135 00:05:59,700 --> 00:06:02,300 אנחנו הולכים לעשות הרבה כי לקראת השני 136 00:06:02,300 --> 00:06:03,460 מחצית מסעיף זה. 137 00:06:03,460 --> 00:06:06,040 אבל אם לא קראו את הבעיה מגדירה לגבות ולא צפה את ההליכה 138 00:06:06,040 --> 00:06:09,310 דרך ולא צפה את המכנסיים הקצרים ומצפה ממני ללמד אותך 139 00:06:09,310 --> 00:06:13,260 כל מה שכבר צלם בוידאו באינטרנט או שאתה יכול למצוא בCS50 140 00:06:13,260 --> 00:06:16,720 המחקר, שזה לא ממש הוגן לי או לחברים האחרים שלך. 141 00:06:16,720 --> 00:06:20,440 142 00:06:20,440 --> 00:06:25,730 >> אז בבקשה, אני יותר משמח לעזור לך, אבל אתם חייבים לפגוש אותי ב 143 00:06:25,730 --> 00:06:27,230 האמצע. 144 00:06:27,230 --> 00:06:30,100 יש לנו טונות של משאבים עבור לך זמין בCS50. 145 00:06:30,100 --> 00:06:31,230 הזכרתי כמה מהם. 146 00:06:31,230 --> 00:06:32,960 אנא לנצל אותם. 147 00:06:32,960 --> 00:06:35,140 אם אתה מבולבל, אני יותר שמח כדי לעזור לך להסביר אותם ב 148 00:06:35,140 --> 00:06:39,290 דרך אחרת, אבל זה לא הוגן אם תלמידים להופיע בשעתי עבודה, 149 00:06:39,290 --> 00:06:42,530 לא התחיל שום דבר, וזה יום חמישי בלילה ושהם מצפים 150 00:06:42,530 --> 00:06:45,880 TF ללכת דרך כל אחת דבר לבעיה קבע בשל 151 00:06:45,880 --> 00:06:47,140 בצהרי היום שלמחרת. 152 00:06:47,140 --> 00:06:48,300 הגיוני? 153 00:06:48,300 --> 00:06:50,890 שוב, בבקשה לפגוש אותנו באמצע. 154 00:06:50,890 --> 00:06:53,230 >> ולבסוף, ציפיות גבוהות. 155 00:06:53,230 --> 00:06:58,010 אני הולך להיות כולם לדירוג מי בסעיף שלי, או ניקוד שלך 156 00:06:58,010 --> 00:06:59,020 סטים בעייתיים. 157 00:06:59,020 --> 00:07:01,240 יש לך בעיה לא חזר להגדיר אפס או אחד עדיין. 158 00:07:01,240 --> 00:07:02,250 אנחנו מצטערים על כך. 159 00:07:02,250 --> 00:07:04,970 לקח לנו קצת זמן סוף סוף ליישב את חלקיו, ועכשיו 160 00:07:04,970 --> 00:07:05,560 אנחנו יכולים להתחיל לדירוג. 161 00:07:05,560 --> 00:07:09,560 >> אני אקבל אותם בחזרה אליך בהקדם האפשרי. 162 00:07:09,560 --> 00:07:11,890 אלה הם חלק ממני חניכה בחוץ. 163 00:07:11,890 --> 00:07:14,150 אני אקבל אותם בחזרה אליך בהקדם האפשרי. 164 00:07:14,150 --> 00:07:18,046 ועבור קבוצת הבעיה שתיים, נהיה על לוח זמנים ונתחיל לקבל אותם 165 00:07:18,046 --> 00:07:20,440 די לך במהירות לאחר אתה מפעיל אותם פנימה 166 00:07:20,440 --> 00:07:24,130 >> כאשר אתה מקבל להגדיר את הבעיה שלך בחזרה, אתה יקבל ציונים, כפי שאתה יודע מ 167 00:07:24,130 --> 00:07:28,150 קריאת הסילבוס - נכונותו, עיצוב, היקף וסגנון ציונים. 168 00:07:28,150 --> 00:07:29,760 כמו כן תוכל לקבל תגובות. 169 00:07:29,760 --> 00:07:32,160 ההערות הן חשובים יותר יותר מהציונים. 170 00:07:32,160 --> 00:07:33,780 אני חושב שזה בטוח להגיד את זה. 171 00:07:33,780 --> 00:07:37,930 >> ציונים הם רק מספר מאת אחת עד חמש. 172 00:07:37,930 --> 00:07:38,930 קשה לקרוא לאלה. 173 00:07:38,930 --> 00:07:40,720 קשה לשפר מאלו. 174 00:07:40,720 --> 00:07:44,460 אך התגובות תהיה להצביע ספציפיות דברים שאתה לא טוב או אזורים 175 00:07:44,460 --> 00:07:48,360 אתה יכול לשפר ובתיתן לך קצת רעיונות לעתיד או החלופי 176 00:07:48,360 --> 00:07:49,160 דרכים לעשות דברים. 177 00:07:49,160 --> 00:07:52,270 >> אז בבקשה, בבקשה, בבקשה לקרוא דרך התגובות. 178 00:07:52,270 --> 00:07:54,190 אני משקיע הרבה זמן לתוך ההערות האלה. 179 00:07:54,190 --> 00:07:57,190 אנא קרא אותם ולא רק לגלול למטה לתחתית 180 00:07:57,190 --> 00:08:01,890 PDF, לחפש את הציון שלך, או גולשים באינטרנט ולמצוא את הציון שלך, ולאחר מכן להתעלם 181 00:08:01,890 --> 00:08:02,800 על דבריו. 182 00:08:02,800 --> 00:08:03,910 זה לא איך אתה הולך להשתפר. 183 00:08:03,910 --> 00:08:06,550 זה לא איך שאתה הולך להגדיל הציונים שלך סופו של דבר, רק 184 00:08:06,550 --> 00:08:07,340 על ידי הסתכלות על הציונים. 185 00:08:07,340 --> 00:08:08,760 נא להסתכל על ההערות האלה. 186 00:08:08,760 --> 00:08:13,240 >> ולאורך הקו של ציפיות גבוהות, שוב, כמו שאמרתי, לך 187 00:08:13,240 --> 00:08:14,260 יכול להיות הבקיע מאחד עד חמש. 188 00:08:14,260 --> 00:08:17,120 צמדים, שלישי, ורביעיות הם הרוב מכריע של ציונים 189 00:08:17,120 --> 00:08:17,940 אתה הולך להיות מקבל. 190 00:08:17,940 --> 00:08:20,180 אלה וחמישיים הם שניהם באמת נדירים. 191 00:08:20,180 --> 00:08:21,720 תמיד יש דברים אנחנו יכולים לעשות יותר טובים. 192 00:08:21,720 --> 00:08:23,490 כל פעם שאני קוד תכנית, יש תמיד יש משהו שאני 193 00:08:23,490 --> 00:08:24,800 היה יכול לעשות יותר טוב. 194 00:08:24,800 --> 00:08:28,740 >> אז במקום לומר שאתה מקבל חמישה כל הזמן על כל דבר, ולא עשיתי 195 00:08:28,740 --> 00:08:31,960 הכל מושלם, אני לא חושב שכל מאתנו באמת מאמינים שאנחנו - או 196 00:08:31,960 --> 00:08:34,830 בתקווה, אנחנו לא עושים את כל מה מושלם כל הזמן. 197 00:08:34,830 --> 00:08:37,010 אז אל תהיה מודאג אם אתה לא קבל חמש. 198 00:08:37,010 --> 00:08:40,470 חמישה לא על גבי המפה, ארבעה לא למפות על B, שלוש עושה 199 00:08:40,470 --> 00:08:42,950 לא על מפת C. זה לא איך הציונים עובדים. 200 00:08:42,950 --> 00:08:48,140 >> כמו דיוויד אמר פעמים רבות, ב הסוף של הסמסטר כל הציונים שלך ו 201 00:08:48,140 --> 00:08:53,390 התרומה שלי, TF שלך, לבוא יחד ולקבוע את ציון סופי עבורך. 202 00:08:53,390 --> 00:08:56,760 אבל שוב, זה לא חמש, , ארבע, ב ', וכולי. 203 00:08:56,760 --> 00:09:01,150 אז אני הולך יש ציפיות גבוהות לחבר 'ה. 204 00:09:01,150 --> 00:09:03,670 אני הולך לצפות בעיה טובה סטים ואני הולך לתת לי 205 00:09:03,670 --> 00:09:05,010 לך משוב ככזה. 206 00:09:05,010 --> 00:09:07,430 וזה לא הולך לאומר שאתה הולך לקבל ציון גרוע. 207 00:09:07,430 --> 00:09:09,760 אתה מדורג במונחים של ההתקדמות שלך משבוע 208 00:09:09,760 --> 00:09:11,260 לאפס קצו של הקורס. 209 00:09:11,260 --> 00:09:17,190 >> ולבסוף, במונחים של גבוה ציפיות בכיתה, אני אוהב כש 210 00:09:17,190 --> 00:09:18,460 אנשים להשתתף. 211 00:09:18,460 --> 00:09:23,180 אני מבין כמה אנשים להרגיש יותר או פחות נוח להשתתף. 212 00:09:23,180 --> 00:09:26,050 אנשים אחרים משתתפים לא על ידי הרמת היד שלהם ו 213 00:09:26,050 --> 00:09:27,320 מדבר כל הזמן. 214 00:09:27,320 --> 00:09:30,570 אבל אנחנו במעמד הזה הולכים להיות עושה הרבה בעיות קטנות, הרבה 215 00:09:30,570 --> 00:09:33,770 שאלות מיני, ולאחר מכן כמה קידוד גדול יותר בעיות. 216 00:09:33,770 --> 00:09:36,760 אז בהחלט עובד התרגילים האלה החוצה כאשר אנחנו עושים אותם במחשב שלך או על 217 00:09:36,760 --> 00:09:37,900 גיליון נייר. 218 00:09:37,900 --> 00:09:40,933 >> אבל אני גם אתן לך קצת זמן לפני מישהו אי פעם יש לענות על חלק 219 00:09:40,933 --> 00:09:42,220 מהשאלות שאני שואל. 220 00:09:42,220 --> 00:09:44,930 אז בגלל שאני אתן לך קצת זמן תחשוב על זה, כי אנחנו הולכים 221 00:09:44,930 --> 00:09:49,380 לעשות דברים בשותפים לפעמים, אני מצפה שכולם 222 00:09:49,380 --> 00:09:52,150 להיות מעורב במידה מסוימת. 223 00:09:52,150 --> 00:09:56,030 ומחוסר מונח טוב יותר, יש כנראה יהיה קורא קר, אשר 224 00:09:56,030 --> 00:09:59,045 מקום שבו כולם יהיה סיכוי לחשוב על התשובה, ולאחר מכן 225 00:09:59,045 --> 00:10:01,150 אני אתקשר עליך, ולאחר מכן אתה תגיד את התשובה. 226 00:10:01,150 --> 00:10:05,200 >> אל תדאגו, לפחד על זה. 227 00:10:05,200 --> 00:10:08,610 אני כבר עשיתי את זה בעבר ואנחנו כבר נמצאו שזה הרבה יותר מוצלח, 228 00:10:08,610 --> 00:10:11,810 קראו גם מחקר חינוכי עליו כדי לקבוע אם או לא היה 229 00:10:11,810 --> 00:10:12,640 טקטיקה. טובה 230 00:10:12,640 --> 00:10:15,790 זה מאוד מועיל, במיוחד אם אתה לתת לתלמידי זמן לחשוב על 231 00:10:15,790 --> 00:10:20,070 תשובות ולא עושה אותם רק לבוא ואומר את זה מייד את בת. 232 00:10:20,070 --> 00:10:22,620 אבל אם אתה לא מרגיש בנוח התשובה, אני גם די טוב ב 233 00:10:22,620 --> 00:10:25,370 חישה את זה, ואנחנו לא הולכים לשים אותך על המקום, במיוחד על 234 00:10:25,370 --> 00:10:28,240 המצלמה, למרות שאף אחד מן אתה על מצלמה עכשיו. 235 00:10:28,240 --> 00:10:32,250 >> אז אלה הם הנורמות שיש לי. 236 00:10:32,250 --> 00:10:34,670 עוד דבר אחד לאורך הקווים של פגישה באמצע. 237 00:10:34,670 --> 00:10:36,490 אני הולך לתת לך את החבר 'ה המון פידבקים. 238 00:10:36,490 --> 00:10:38,310 תן לי בבקשה משוב גם כן. 239 00:10:38,310 --> 00:10:46,190 יש אתר אינטרנט, sayat.me/cs50. 240 00:10:46,190 --> 00:10:48,380 אז זה משוב כנים. 241 00:10:48,380 --> 00:10:50,730 אם אתה רוצה לתת לו בסעיף, אני מקבל דוא"ל בכל פעם שזה קורה. 242 00:10:50,730 --> 00:10:53,820 אנחנו ניקח הפסקה בקצת, אז אני להסתכל דרך המשוב לאחר מכן. 243 00:10:53,820 --> 00:10:55,970 אם אי פעם יש לך משוב, בבקשה לתת לי את זה לשם. 244 00:10:55,970 --> 00:11:01,380 >> אם תיתן לי משוב על שאלה, זה נפלא, אבל זה המדריך 245 00:11:01,380 --> 00:11:02,570 שאתה עושה בסוף. 246 00:11:02,570 --> 00:11:05,690 אבל זה יהיה בסוף הסמסטר כל כך אני לא אהיה מסוגל לקחת את כל זה 247 00:11:05,690 --> 00:11:08,620 משוב ולהפוך אותה להוראה אתם טובים יותר. 248 00:11:08,620 --> 00:11:11,020 אז בבקשה, אם יש לך משוב, לתת לי את זה. 249 00:11:11,020 --> 00:11:12,010 אני אוהב את המשוב. 250 00:11:12,010 --> 00:11:14,490 חזרה לFOP, אנחנו מקבלים משוב כל הזמן. 251 00:11:14,490 --> 00:11:18,610 >> אתה יכול לתת לי פלוסים, דברים טובים, תות, דברים שאני יכול לשפר. 252 00:11:18,610 --> 00:11:20,600 אתה יכול להגיב על התלבושות שלי. 253 00:11:20,600 --> 00:11:24,170 שלא יהיה מועילה כמו, אבל אתה מוזמן להגיב על כל ו 254 00:11:24,170 --> 00:11:24,570 הכל. 255 00:11:24,570 --> 00:11:26,280 אנא, אנא תן לי משוב. 256 00:11:26,280 --> 00:11:28,740 אני מעריך אותו הרבה וזה אומר לי המון. 257 00:11:28,740 --> 00:11:31,760 258 00:11:31,760 --> 00:11:33,280 >> אחד נורמה יותר, כיף. 259 00:11:33,280 --> 00:11:34,530 אנחנו הולכים להיות הרבה כיף. 260 00:11:34,530 --> 00:11:36,930 יש לקוות בקורס זה, תוכל יש הרבה כיף. 261 00:11:36,930 --> 00:11:38,780 תהיה לנו סוכריות בסעיף. 262 00:11:38,780 --> 00:11:40,040 תהיה לנו מוסיקה. 263 00:11:40,040 --> 00:11:45,510 אנחנו נהיה בתקווה להכיר אחד עוד מעט טוב, ולכן אני רוצה 264 00:11:45,510 --> 00:11:47,690 זה יהיה כיף, חוויה מרתקת. 265 00:11:47,690 --> 00:11:50,890 >> אני יודע שכמה מכם נרדמתי ב את ההרצאות שהיו לך מוקדם יותר היום, 266 00:11:50,890 --> 00:11:53,750 כך אני מקווה שלא להיות במקרה עכשיו. 267 00:11:53,750 --> 00:11:55,960 ואם זה המקרה, עכשיו, רק לא נוחר משום שאולי 268 00:11:55,960 --> 00:11:57,580 להיתפס על מצלמה. 269 00:11:57,580 --> 00:11:58,770 מתוק. 270 00:11:58,770 --> 00:12:04,020 שאלות, הערות, או החששות לפני שאני ממשיך הלאה על כל דבר שיש לנו 271 00:12:04,020 --> 00:12:05,270 דיבר על? 272 00:12:05,270 --> 00:12:08,620 273 00:12:08,620 --> 00:12:11,350 גדול. 274 00:12:11,350 --> 00:12:14,830 >> אז אנחנו הולכים ללכת למערכים ראשונים. 275 00:12:14,830 --> 00:12:17,140 זה איך אתה להפוך את מערך. 276 00:12:17,140 --> 00:12:18,410 אנחנו כבר ראינו את זה קודם. 277 00:12:18,410 --> 00:12:21,830 יש לך סוג הנתונים, יש לך שם, ואז יש לך גודל. 278 00:12:21,830 --> 00:12:24,430 ממש כאן, אני יוצר שני מערכים. 279 00:12:24,430 --> 00:12:30,360 הראשון הוא מערך של תווים, ויש לו 26 מקומות. 280 00:12:30,360 --> 00:12:33,790 השני הוא מערך של ציונים, וזה שלושה 281 00:12:33,790 --> 00:12:35,390 רווחים לתקופה של שלושה מספרים שלמים. 282 00:12:35,390 --> 00:12:35,827 כן? 283 00:12:35,827 --> 00:12:38,200 >> תלמיד: האם כל אלה שקופיות זמין אי שם בשבילנו? 284 00:12:38,200 --> 00:12:38,850 >> ג'ייסון הירשהורן: שאלה גדולה. 285 00:12:38,850 --> 00:12:40,650 השאלה הייתה, הם כל אלה מחליקים זמינים? 286 00:12:40,650 --> 00:12:40,920 כן. 287 00:12:40,920 --> 00:12:43,420 כל שקופיות אלה יהיו זמינים, ובעתיד, אני לשלוח אותם אל 288 00:12:43,420 --> 00:12:44,640 שלך לפני הקטע. 289 00:12:44,640 --> 00:12:47,340 אבל היום, בגלל זה הוא ראשון שבוע, היו לנו התחלה מאוחרת. 290 00:12:47,340 --> 00:12:49,675 אז בדרך כלל, תקבל שקופיות אלה, אך הם יהיו מקוונים וזמינים 291 00:12:49,675 --> 00:12:52,420 אני אשלח לך אותם מייד אחרי השיעור. 292 00:12:52,420 --> 00:12:54,140 יש עוד שאלות? 293 00:12:54,140 --> 00:13:01,330 >> אז שוב, מערכים הם תיבות, לחוסר מילה טובה יותר, שמחזיקה מרובות 294 00:13:01,330 --> 00:13:06,420 אלמנטים של סוג נתונים אחד, והם זה לצד זה בזיכרון. 295 00:13:06,420 --> 00:13:11,370 וכך שוב, זה איך אתה יכול להפוך את שני סוגים של מערכים. 296 00:13:11,370 --> 00:13:15,090 >> אז אחרי שעשית את המערך שלך עם הקו ראשון ש-- ציוני int, סוגר 297 00:13:15,090 --> 00:13:17,430 סוגר שלוש, קרוב - לך רוצה לאתחל אותו. 298 00:13:17,430 --> 00:13:19,050 אתה רוצה לשים כמה ערכים שם. 299 00:13:19,050 --> 00:13:24,660 וזה איך אתה לשים כמה ערכים ב שם, רק בבחירת מנוכי העונתיות ו 300 00:13:24,660 --> 00:13:25,670 כותב את המספר. 301 00:13:25,670 --> 00:13:27,130 בואו לצייר את זה על הלוח. 302 00:13:27,130 --> 00:13:28,270 האם כל אחד יכול לראות? 303 00:13:28,270 --> 00:13:29,030 כל אחד יכול לראות. 304 00:13:29,030 --> 00:13:30,790 מתוק. 305 00:13:30,790 --> 00:13:36,550 >> אז זה הולך להיות שלי מערך נקרא ציוני. 306 00:13:36,550 --> 00:13:37,730 כפי שאתה יכול לראות, זה גודל שלוש. 307 00:13:37,730 --> 00:13:39,210 ישנם שלוש קופסות לשם. 308 00:13:39,210 --> 00:13:43,120 כל אחד יכול להתאים את מה סוג של סוג הנתונים? 309 00:13:43,120 --> 00:13:43,790 >> תלמיד: מספר שלם. 310 00:13:43,790 --> 00:13:45,250 >> ג'ייסון הירשהורן: מספר שלם בתחום הזה. 311 00:13:45,250 --> 00:13:48,790 כתבנו עשרות int, והמילה הראשונה הוא סוג הנתונים שהולכים 312 00:13:48,790 --> 00:13:50,910 ללכת בתיבות במערך זה. 313 00:13:50,910 --> 00:13:52,160 כך שאני יכול להתאים לשלוש. 314 00:13:52,160 --> 00:13:54,880 315 00:13:54,880 --> 00:13:57,000 למה יש לי אפס עד יש על הלוח? 316 00:13:57,000 --> 00:13:59,240 למה זה אומר אפס ציון שווה 1? 317 00:13:59,240 --> 00:14:02,090 318 00:14:02,090 --> 00:14:03,180 מזכיר לי את השם שלך. 319 00:14:03,180 --> 00:14:03,470 >> תלמיד: קורט. 320 00:14:03,470 --> 00:14:04,070 >> ג'ייסון הירשהורן: קורט. 321 00:14:04,070 --> 00:14:04,480 >> סטודנט: כן. 322 00:14:04,480 --> 00:14:04,920 >> ג'ייסון הירשהורן: למה? 323 00:14:04,920 --> 00:14:07,230 >> תלמיד: כי המדד הראשון הוא אפס, אנחנו מתחילים לספור על אפס. 324 00:14:07,230 --> 00:14:08,480 >> ג'ייסון הירשהורן: אז אנחנו מתחילים לספור על אפס. 325 00:14:08,480 --> 00:14:09,580 זה בדיוק נכון. 326 00:14:09,580 --> 00:14:12,340 זה החלק המבלבל וטיול אותך, במיוחד כשאתה 327 00:14:12,340 --> 00:14:14,900 מנסה לחזר באמצעות מערכים, שאנחנו עושים בקצת. 328 00:14:14,900 --> 00:14:15,980 אנחנו מתחילים לספור על אפס. 329 00:14:15,980 --> 00:14:19,170 אז אם אני רוצה להתייחס לראשון תיבה, זה לא תיבה אחת. 330 00:14:19,170 --> 00:14:22,290 למרבה הצער, זה אפס קופסה. 331 00:14:22,290 --> 00:14:26,460 תיבה אחת השני הוא, ובכך מקרה, שליש תיבה שתיים הוא. 332 00:14:26,460 --> 00:14:28,700 >> מה תיבה שלוש על? 333 00:14:28,700 --> 00:14:30,670 איפה תיבת שלוש היא? 334 00:14:30,670 --> 00:14:34,750 או אם אני רוצה לעשות את ציונים, סוגר שלושה סוגר, קרוב, מה זה? 335 00:14:34,750 --> 00:14:37,650 336 00:14:37,650 --> 00:14:39,760 אז אתה אמר את אופי null. 337 00:14:39,760 --> 00:14:41,600 כל מחשבות אחרות? 338 00:14:41,600 --> 00:14:44,590 מה הוא סוגר ציון שלושה סוגר? 339 00:14:44,590 --> 00:14:48,045 >> תלמיד: זה לא באמת קיים, כי אתה מוגדר רק כציונים, 340 00:14:48,045 --> 00:14:49,370 סוגר שלוש. 341 00:14:49,370 --> 00:14:51,400 >> ג'ייסון הירשהורן: אז אתה אומר זה לא באמת קיים. 342 00:14:51,400 --> 00:14:54,230 במקרים מסוימים, כאשר יש לנו עסק עם המיתרים, בדרך כלל אנו מכניסים null 343 00:14:54,230 --> 00:14:54,790 דמות בסוף. 344 00:14:54,790 --> 00:14:56,100 אנחנו נגיע לזה בשנייה. 345 00:14:56,100 --> 00:15:01,020 אבל במקרה הזה, יש אין כאן תיבה שלישית. 346 00:15:01,020 --> 00:15:06,390 אז התיבה האחרונה בכל מערך הוא בגודל מינוס 1. 347 00:15:06,390 --> 00:15:11,310 אז אם יש לנו מערך של הגודל n, התיבה הראשונה היא על אפס, את האחרון הוא 348 00:15:11,310 --> 00:15:12,700 בn מינוס 1. 349 00:15:12,700 --> 00:15:14,970 ובמקרה זה, זה לא קיים. 350 00:15:14,970 --> 00:15:17,970 יש משהו כאן ב זיכרון אבל זה לא שלנו. 351 00:15:17,970 --> 00:15:18,460 אנחנו לא בעלים שלה. 352 00:15:18,460 --> 00:15:19,570 אנחנו לא בקשו את זה. 353 00:15:19,570 --> 00:15:22,606 אז אם אנחנו מנסים לגשת אליו, שבו אנו יהיו לעשות בקצת, אנחנו כנראה הולכים 354 00:15:22,606 --> 00:15:24,970 להסתבך בצרות. 355 00:15:24,970 --> 00:15:29,180 >> במקרה זה, אני מאתחל אותי מערך עם שלושה משתנים. 356 00:15:29,180 --> 00:15:36,195 אנחנו מכניסים אחד בתיבה אפס, שתיים בתיבה אחת, ושלוש שתיים בתיבה. 357 00:15:36,195 --> 00:15:39,280 האם יש למישהו שאלות על אתחול מערך? 358 00:15:39,280 --> 00:15:44,540 359 00:15:44,540 --> 00:15:46,970 >> אז הלכנו על זה רק עכשיו. 360 00:15:46,970 --> 00:15:52,725 ציונים, סוגר שלוש, קרוב סוגר שאינו קיימים. 361 00:15:52,725 --> 00:15:58,130 אנחנו צמודים אפס במדעי מחשב, אז אנחנו מתחילים לספור על אפס. 362 00:15:58,130 --> 00:16:01,860 התיבה האחרונה לרשותנו, זה הוא התיבה השלישית, אבל זה נקרא תיבה 363 00:16:01,860 --> 00:16:03,110 מספר שתיים. 364 00:16:03,110 --> 00:16:05,790 365 00:16:05,790 --> 00:16:09,710 >> למטה, זו אלטרנטיבה דרך של אתחול מערכים. 366 00:16:09,710 --> 00:16:13,410 אז במקום ליצור מערך על אחד קו, ממלא את התיבה הראשונה, ולאחר מכן 367 00:16:13,410 --> 00:16:17,070 התיבה השנייה, ולאחר מכן התיבה השלישית, אתה יכול לעשות את כל זה בשורה אחת. 368 00:16:17,070 --> 00:16:19,040 כך שבשורה, שני המערכים. 369 00:16:19,040 --> 00:16:23,460 זה יוצר את אותו מערך בדיוק כמו מה שיצרנו כאן, אבל זה 370 00:16:23,460 --> 00:16:24,710 פשוט עושה את זה בשורה אחת. 371 00:16:24,710 --> 00:16:29,740 372 00:16:29,740 --> 00:16:31,360 >> עכשיו יש לנו יצרנו המערך שלנו. 373 00:16:31,360 --> 00:16:34,100 בדרך כלל ברגע שאתה יוצר מערך, אתה רוצה לעשות משהו עם זה, בין אם 374 00:16:34,100 --> 00:16:38,430 זה למלא אותו או לקבל את הדברים מחוץ לזה ולהדפיס אותם על המסך. 375 00:16:38,430 --> 00:16:42,270 במקרה זה, אנחנו הולכים דרכנו מערך ציונים, שבו אנו מאותחלים על 376 00:16:42,270 --> 00:16:44,740 השורה הראשונה כאן באפור. 377 00:16:44,740 --> 00:16:49,600 ולאחר מכן בשורה השנייה, אנחנו מתחילים iterating באמצעות המערך. 378 00:16:49,600 --> 00:16:52,640 האם יש למישהו שאלות על המבנה ללולאה? 379 00:16:52,640 --> 00:16:55,250 380 00:16:55,250 --> 00:16:56,400 >> אז זה ללולאה. 381 00:16:56,400 --> 00:16:59,530 יש לנו המצב הראשוני שלנו, ולאחר מכן מצבנו הסופי, ואז אנחנו 382 00:16:59,530 --> 00:17:01,160 לחזר, אני, כל לולאה. 383 00:17:01,160 --> 00:17:05,579 ובסוגריים המסולסלים בזה עבור לולאה, מה קורה אם אני היה לרוץ 384 00:17:05,579 --> 00:17:06,290 תכנית זו? 385 00:17:06,290 --> 00:17:10,410 מישהו יכול להגיד לי מה היינו מקבל? 386 00:17:10,410 --> 00:17:11,589 [? Matu? ?] 387 00:17:11,589 --> 00:17:13,819 >> Matu: להדפיס את כל הציונים בכל שורה. 388 00:17:13,819 --> 00:17:14,900 זה יהיה להדפיס כל ציון בשורה נפרדת. 389 00:17:14,900 --> 00:17:16,300 >> ג'ייסון הירשהורן: מה בדיוק הייתי זה להדפיס? 390 00:17:16,300 --> 00:17:19,790 >> סטודנט: זה יהיה להדפיס אחד, אז שתיים, ואז שלוש. 391 00:17:19,790 --> 00:17:20,235 >> ג'ייסון הירשהורן: בדיוק. 392 00:17:20,235 --> 00:17:23,490 זה יהיה להדפיס אחד, ואז שתיים, ואז שלוש, כל אחד בשורות נפרדות, כי 393 00:17:23,490 --> 00:17:27,810 אנחנו עוברים מערך ואתה רואה ששני, printf 394 00:17:27,810 --> 00:17:29,275 הצהרה, ציוני i. 395 00:17:29,275 --> 00:17:32,880 אז בסיבוב הראשון שלנו לדרך לולאה, אני שווה אפס, מה שאומר שאנחנו 396 00:17:32,880 --> 00:17:34,640 מקבל את הערך אפס בציון - 397 00:17:34,640 --> 00:17:36,900 אשר, אם אנחנו חוזרים ל התרשים שלנו, הוא אחד - 398 00:17:36,900 --> 00:17:38,630 ומילוי - 399 00:17:38,630 --> 00:17:39,700 אה, זה אומר ג. 400 00:17:39,700 --> 00:17:41,680 זה צריך להיות% d. 401 00:17:41,680 --> 00:17:43,970 אני אסדר את זה קצת כש אני יד שמחוץ לחבר 'ה. 402 00:17:43,970 --> 00:17:48,670 אבל אנחנו מציגים מספר שלם כך שזה צריך להיות% d ממש כאן, ולא% ג. 403 00:17:48,670 --> 00:17:50,340 מהו ג% ל? 404 00:17:50,340 --> 00:17:50,790 >> תלמיד: תווים. 405 00:17:50,790 --> 00:17:52,680 >> ג'ייסון הירשהורן: תווים, בדיוק. 406 00:17:52,680 --> 00:17:53,690 מהו שני? 407 00:17:53,690 --> 00:17:56,260 אם אתה לא רוצה לעשות% לד שלם, מה עוד אתה יכול לעשות? 408 00:17:56,260 --> 00:17:57,000 >> תלמיד: אני. 409 00:17:57,000 --> 00:17:59,180 >> ג'ייסון הירשהורן:% i, בדיוק. 410 00:17:59,180 --> 00:18:01,660 אז שאלות בנוגע iterating באמצעות המערך? 411 00:18:01,660 --> 00:18:05,500 412 00:18:05,500 --> 00:18:07,800 אז מה קורה אם אנחנו עושים את זה? 413 00:18:07,800 --> 00:18:10,290 במקום לעשות לי הוא פחות מ שלוש, אנחנו הוא פחות 414 00:18:10,290 --> 00:18:11,390 או שווה לשלוש. 415 00:18:11,390 --> 00:18:13,420 מה קורה כאשר אנו מפעילים את הקוד הזה? 416 00:18:13,420 --> 00:18:17,510 417 00:18:17,510 --> 00:18:18,940 כן, אנני? 418 00:18:18,940 --> 00:18:22,030 >> תלמיד: הם הולכים להדפיס דברים מוזרים על הקו הרביעי. 419 00:18:22,030 --> 00:18:23,850 >> ג'ייסון הירשהורן: אז אתה אומר, האם זה הולכים להדפיס את הדברים מוזרים על 420 00:18:23,850 --> 00:18:24,390 השורה הרביעית? 421 00:18:24,390 --> 00:18:25,750 האם יש למישהו תשובה לשאלתה? 422 00:18:25,750 --> 00:18:28,940 423 00:18:28,940 --> 00:18:33,160 אז רוב הסיכויים הם שכאשר אנחנו מקבלים - 424 00:18:33,160 --> 00:18:36,700 כך בסיבוב הרביעי באמצעות לנו לולאה, בדיוק כמו שחשבת, אנני, 425 00:18:36,700 --> 00:18:39,430 זה יהיה שלושה ציונים שסוגר, שכבר הבינו שלא עושה 426 00:18:39,430 --> 00:18:41,990 קיימות, ואנחנו הולכים לנסות ולגשת לזה, להדפיס אותו 427 00:18:41,990 --> 00:18:43,350 החוצה, להשתמש בו בדרך כלשהי. 428 00:18:43,350 --> 00:18:46,060 אז המחשב יהיה כנראה כועס עלינו. 429 00:18:46,060 --> 00:18:46,760 אתה צודק. 430 00:18:46,760 --> 00:18:48,830 >> זה יכול להפסיק את התכנית לגמרי. 431 00:18:48,830 --> 00:18:52,222 זה יכול להדפיס משהו ממש מוזר. 432 00:18:52,222 --> 00:18:53,420 אתה לא יכול להגיד בודאות. 433 00:18:53,420 --> 00:18:56,210 רוב הסיכויים הם שזה בטח מקבלים כועס על לך ופשוט להפסיק מייד. 434 00:18:56,210 --> 00:19:00,100 >> אבל זו טעות נפוצה יהיה לך שבו אתה ממש ליד על ידי אחד בכל 435 00:19:00,100 --> 00:19:05,110 הסוף, ומדובר בבאג שיהיה להציק לך בכל הקידוד שלך. 436 00:19:05,110 --> 00:19:09,350 437 00:19:09,350 --> 00:19:14,150 דרך אחת שאני אוהב לעשות היא רק על לוח לבן, לעבור את כל איטרציה 438 00:19:14,150 --> 00:19:18,190 של הלולאה על יד או על נייר כדי לראות מה שקורה, ואז אתה 439 00:19:18,190 --> 00:19:20,440 בדרך כלל מבין, אה רגע, אני לא צריך הלכתי פחות או 440 00:19:20,440 --> 00:19:20,870 שווה לשלוש. 441 00:19:20,870 --> 00:19:24,730 הייתי צריך לעצור בשתיים, שהוא מה קורה אם המצב שלך הוא פחות 442 00:19:24,730 --> 00:19:26,206 משלוש. 443 00:19:26,206 --> 00:19:29,120 כל שאלות עד כה? 444 00:19:29,120 --> 00:19:31,010 מתוק. 445 00:19:31,010 --> 00:19:33,360 >> אז כל מה שיש לך את המחשבים שלך פתוחים. 446 00:19:33,360 --> 00:19:36,760 אנחנו הולכים לתת לך 02:58 דקות כדי לכתוב תכנית ש 447 00:19:36,760 --> 00:19:40,460 יוצר מערך עם המספרים השלמים אחד עד חמש ולאחר מכן מדפיס את כל 448 00:19:40,460 --> 00:19:41,720 מספר שלם בשורה חדשה. 449 00:19:41,720 --> 00:19:44,330 450 00:19:44,330 --> 00:19:46,000 ואם יש לך שאלות, להרים את היד שלך. 451 00:19:46,000 --> 00:19:48,140 אני שמח לבוא. 452 00:19:48,140 --> 00:19:50,630 כמו שאמרתי, בואו ניקח שלושה דקות לכתוב את זה. 453 00:19:50,630 --> 00:20:41,300 454 00:20:41,300 --> 00:20:45,110 האם כולם בסדר אם אני הולך ל חלון חדש ולסגור את זה? 455 00:20:45,110 --> 00:22:13,420 456 00:22:13,420 --> 00:22:15,520 >> אני מצטער אם לא היה לך סיכוי כדי לסיים, אבל אנחנו הולכים לעשות את זה 457 00:22:15,520 --> 00:22:17,310 יחד עכשיו. 458 00:22:17,310 --> 00:22:23,640 אז על המסך, יש לי # include cs50.h, # include stdio.h. 459 00:22:23,640 --> 00:22:26,090 מישהו יכול להגיד לי מה שני הקווים האלה עושים? 460 00:22:26,090 --> 00:22:32,250 461 00:22:32,250 --> 00:22:33,155 מייקל? 462 00:22:33,155 --> 00:22:40,030 >> תלמיד: הם כוללים את הספריות שCS50 עשה ושיש לו סטיב 463 00:22:40,030 --> 00:22:44,210 הציל לך להשתמש בו כדי להקל על חייך. 464 00:22:44,210 --> 00:22:46,820 >> ג'ייסון הירשהורן: אז אתה אמר שהם כולל ספריות, אחד שCS50 465 00:22:46,820 --> 00:22:51,230 עשה, cs50.h, ואחד שהוא פשוט סטנדרטי, מגיע עם 466 00:22:51,230 --> 00:22:53,510 חבילת C, stdio.h. 467 00:22:53,510 --> 00:22:54,890 מה זאת אומרת כוללת הספריות, אם כי? 468 00:22:54,890 --> 00:22:55,770 האם אתה יכול להיות קצת יותר ספציפי? 469 00:22:55,770 --> 00:23:01,180 >> תלמיד: זה עושה את זה, כך שאתה יכול להשתמש במילות קוד מסוימות שתהיה לי 470 00:23:01,180 --> 00:23:05,710 לתפקד יקרה מבלי ללכת ולהפוך את פונקצית ג עצמך. 471 00:23:05,710 --> 00:23:08,730 >> ג'ייסון הירשהורן: האם אתה יכול לתת לי דוגמה? 472 00:23:08,730 --> 00:23:11,160 >> סטודנט: כמו printf הוא אחד שאתה יכול להשתמש. 473 00:23:11,160 --> 00:23:11,860 >> ג'ייסון הירשהורן: printf. 474 00:23:11,860 --> 00:23:14,680 אז אתה אמר printf הוא אחד מאלה פונקציות שבו ולא יצטרכו 475 00:23:14,680 --> 00:23:19,840 לכתוב printf בעצמך, הוא printf כלול למעשה בstdio.h, כך ש 476 00:23:19,840 --> 00:23:22,010 יכול פשוט להשתמש בו ומניח שזה יעבוד. 477 00:23:22,010 --> 00:23:28,270 ב stdio.h, אם פתח את הקובץ, האם זה כולל כמה printf 478 00:23:28,270 --> 00:23:31,620 עבודות, את כל הקוד עבור printf? 479 00:23:31,620 --> 00:23:33,105 למה אתה מטלטל את הראש שלך? 480 00:23:33,105 --> 00:23:35,710 >> תלמיד: בגלל קובץ הכותרת פשוט כולל את ההצהרה על הפונקציה. 481 00:23:35,710 --> 00:23:36,400 >> ג'ייסון הירשהורן: בדיוק נכון. 482 00:23:36,400 --> 00:23:39,680 קובץ הכותרת פשוט כולל ההצהרה על הפונקציה. 483 00:23:39,680 --> 00:23:42,950 אז בעצם, כאשר אתה מהדר את זה, פגע הפוך רוזן, שנעשינו ב 484 00:23:42,950 --> 00:23:48,070 שני, המהדר יודע שאם אתה משתמש printf, printf קיים. 485 00:23:48,070 --> 00:23:49,370 זה הולך להיות מוגדר במקום כלשהו. 486 00:23:49,370 --> 00:23:51,200 זה לא בעיה בשבילך להשתמש בו. 487 00:23:51,200 --> 00:23:55,490 ואז בשלב מאוחר יותר, זה יהיה לכלול אלה ואפסים שבעצם מכילים 488 00:23:55,490 --> 00:23:58,360 היישום של printf ו למזג אותם עם הקוד שלך. 489 00:23:58,360 --> 00:24:01,935 איך אתה לוודא שזה כולל את אלה ואפסים, למשל, לקבל את המחרוזת? 490 00:24:01,935 --> 00:24:05,670 491 00:24:05,670 --> 00:24:07,210 >> תלמיד: קבל מחרוזת הוא בcs50.h. 492 00:24:07,210 --> 00:24:07,830 >> ג'ייסון הירשהורן: נכון. 493 00:24:07,830 --> 00:24:11,110 אז זה אומר לקבל את המחרוזת קיים, ההצהרה על הפונקציה. 494 00:24:11,110 --> 00:24:15,410 אבל אז אלה ואפסים, בינאריים קובץ הכולל למעשה 495 00:24:15,410 --> 00:24:17,370 יישום המחרוזת לקבל? 496 00:24:17,370 --> 00:24:19,310 איך אתה לוודא כי הולך עם התכנית שלך? 497 00:24:19,310 --> 00:24:23,220 >> סטודנט: לעבור מקשר ב ויכוח שורת הפקודה. 498 00:24:23,220 --> 00:24:25,430 >> ג'ייסון הירשהורן: לעבור מקשר בויכוח שורת הפקודה. 499 00:24:25,430 --> 00:24:26,700 איך אתה עושה את זה? 500 00:24:26,700 --> 00:24:29,730 >> תלמיד: זה L-קו בצלצול 501 00:24:29,730 --> 00:24:30,480 >> ג'ייסון הירשהורן: בדיוק נכון. 502 00:24:30,480 --> 00:24:32,900 אתה אומר-l cs50, נכון? 503 00:24:32,900 --> 00:24:34,940 זה כולל את אלה ואפסים. 504 00:24:34,940 --> 00:24:36,460 >> סטודנט: אבל עושה הפוך זה בשבילך, נכון? 505 00:24:36,460 --> 00:24:37,010 >> ג'ייסון הירשהורן: בדיוק. 506 00:24:37,010 --> 00:24:40,390 הפוך את עושה את זה בשבילך, אבל סופו של דבר, לא יהיה לך הפוך, או 507 00:24:40,390 --> 00:24:43,220 תצטרך לעשות הפוך בעצמך, אז זה 508 00:24:43,220 --> 00:24:43,940 דבר טוב שיש לזכור. 509 00:24:43,940 --> 00:24:47,350 אם היית הולך להשתמש באחד מאלה ספריות אחרות, לא רק שיש לך 510 00:24:47,350 --> 00:24:49,490 לכתוב ו# כולל לאחר מכן בספרייה. 511 00:24:49,490 --> 00:24:51,420 אתה גם צריך לקשר אותו פנימה 512 00:24:51,420 --> 00:24:54,480 ואלה שני דברים שונים. L-cs50 שונה 513 00:24:54,480 --> 00:24:59,260 מ # כולל cs50.h. 514 00:24:59,260 --> 00:25:02,870 >> אז יש לנו סוגריים מסולסלים void main int, ועכשיו אנחנו הולכים לקוד 515 00:25:02,870 --> 00:25:03,590 בתוך ראשי. 516 00:25:03,590 --> 00:25:07,090 השורה הראשונה שיש לי כאן היא תגובה שאומר, ליצור מערך 517 00:25:07,090 --> 00:25:08,820 עם ints אחד עד חמש. 518 00:25:08,820 --> 00:25:12,600 מה היא מילה טובה לתאר את מה שאני יש כרגע על המסך, פשוט 519 00:25:12,600 --> 00:25:14,170 הערות בתוך ראשי? 520 00:25:14,170 --> 00:25:15,722 מה אנחנו קוראים לזה? 521 00:25:15,722 --> 00:25:16,820 >> תלמיד: Pseudocode. 522 00:25:16,820 --> 00:25:17,840 >> ג'ייסון הירשהורן: Pseudocode. 523 00:25:17,840 --> 00:25:18,420 תודה לך, ג'פרי. 524 00:25:18,420 --> 00:25:19,540 זה בדיוק נכון. 525 00:25:19,540 --> 00:25:20,005 Pseudocode. 526 00:25:20,005 --> 00:25:22,854 יש לכם ראה pseudocode לפני? 527 00:25:22,854 --> 00:25:28,340 הרם את ידך, אם אתה כבר בשימוש pseudocode לפני הבעיה מוגדרת אחת. 528 00:25:28,340 --> 00:25:29,400 כמחצית מכם. 529 00:25:29,400 --> 00:25:32,700 >> אני מאוד ממליץ להשתמש pseudocode לשבור בעיות לתוך 530 00:25:32,700 --> 00:25:35,210 קטן יותר, יותר קל לנגוס חתיכות. 531 00:25:35,210 --> 00:25:38,630 כמו כן, אם אתה עושה pseudocode, אתה יש לך הערות כבר במידה רבה 532 00:25:38,630 --> 00:25:40,760 מובנה, כך שאתה לא צריך לחזור ולנסות להבין 533 00:25:40,760 --> 00:25:42,450 מה שאתה עושה. 534 00:25:42,450 --> 00:25:44,730 אז מישהו יכול לתת לי את השורה הראשונה זה כדי ליצור מערך עם ints אחד 535 00:25:44,730 --> 00:25:45,980 דרך חמש? 536 00:25:45,980 --> 00:25:48,700 537 00:25:48,700 --> 00:25:49,130 אתה? 538 00:25:49,130 --> 00:25:53,350 >> סטודנט: int ואז אתה יכול להתקשר מה מספר, ולאחר מכן כיכר 539 00:25:53,350 --> 00:25:54,830 סוגר חמש. 540 00:25:54,830 --> 00:25:57,820 >> ג'ייסון הירשהורן: מספרים אז int, כיכר סוגר חמש. 541 00:25:57,820 --> 00:25:59,160 >> תלמיד: שווה, ו אז סוגריים מסולסלים. 542 00:25:59,160 --> 00:26:00,830 >> ג'ייסון הירשהורן: שווה, סוגריים מסולסלים. 543 00:26:00,830 --> 00:26:01,830 >> תלמיד: אחת, שתיים, שלוש, ארבעה. 544 00:26:01,830 --> 00:26:05,566 >> ג'ייסון הירשהורן: אחת, שתיים, שלוש, ארבע, חמש. 545 00:26:05,566 --> 00:26:07,390 >> תלמיד: ואז סוגריים מסולסלים ולאחר מכן פסיק. 546 00:26:07,390 --> 00:26:09,240 >> ג'ייסון הירשהורן: ומתולתל פלטות ופסיק. 547 00:26:09,240 --> 00:26:10,330 מצוין. 548 00:26:10,330 --> 00:26:12,210 להדפיס את כל int בשורה חדשה. 549 00:26:12,210 --> 00:26:17,140 יכול מישהו אחר ייתן שלי קוד זה, בבקשה? 550 00:26:17,140 --> 00:26:17,530 [? Matu? ?] 551 00:26:17,530 --> 00:26:18,560 קדימה. 552 00:26:18,560 --> 00:26:20,440 >> תלמיד: ל( 553 00:26:20,440 --> 00:26:21,750 >> ג'ייסון הירשהורן: ל( 554 00:26:21,750 --> 00:26:23,740 >> תלמיד: אני int = 0 555 00:26:23,740 --> 00:26:26,070 >> ג'ייסון הירשהורן: int i = 0 556 00:26:26,070 --> 00:26:28,190 >> תלמיד: פסיק אני פחות מחמישה. 557 00:26:28,190 --> 00:26:31,680 >> ג'ייסון הירשהורן: פסיק, אני פחות מ -5. 558 00:26:31,680 --> 00:26:33,600 >> תלמיד: פסיק, אני + +. 559 00:26:33,600 --> 00:26:35,140 >> ג'ייסון הירשהורן: פסיק, אני + +. 560 00:26:35,140 --> 00:26:37,720 >> תלמיד: סוגריים סגורים, לאחר מכן סד פתוח. 561 00:26:37,720 --> 00:26:39,410 >> ג'ייסון הירשהורן: סוגריים סגורים ושתי פלטות. 562 00:26:39,410 --> 00:26:40,510 בתוך הסוגריים המסולסלים? 563 00:26:40,510 --> 00:26:47,640 >> תלמיד: ואז printf "% ד / n" 564 00:26:47,640 --> 00:26:48,695 >> ג'ייסון הירשהורן: מצטער, להחזיק מעמד. 565 00:26:48,695 --> 00:26:52,330 Printf "% ד / n, ציטוט סגור. 566 00:26:52,330 --> 00:26:55,980 >> תלמיד: ואז ציטוט סגור, פסיק, ספירה, סוגרי. 567 00:26:55,980 --> 00:26:58,350 >> ג'ייסון הירשהורן: פסיק, לספור, אני סוגר. 568 00:26:58,350 --> 00:26:59,970 >> תלמיד: מצטער, אני סוגר את המספרים. 569 00:26:59,970 --> 00:27:01,416 >> ג'ייסון הירשהורן: מספרים, אני סוגר. 570 00:27:01,416 --> 00:27:03,200 >> תלמיד: מצטער. 571 00:27:03,200 --> 00:27:04,750 ולאחר מכן סגר את הסוגריים, פסיק. 572 00:27:04,750 --> 00:27:07,156 >> ג'ייסון הירשהורן: סגור סוגריים, פסיק. 573 00:27:07,156 --> 00:27:08,680 אני הולך להציל את זה. 574 00:27:08,680 --> 00:27:12,670 אנחנו הולכים לעשות את הספירה. 575 00:27:12,670 --> 00:27:14,742 ואיך אני מפעיל את הספירה? 576 00:27:14,742 --> 00:27:16,470 >> תלמיד: קו נטוי הפוך. 577 00:27:16,470 --> 00:27:17,180 >> תלמיד: דוט קו נטוי - 578 00:27:17,180 --> 00:27:18,050 >> ג'ייסון הירשהורן:. / לספור, בדיוק. 579 00:27:18,050 --> 00:27:19,380 תודה. . / לספור. 580 00:27:19,380 --> 00:27:21,060 אחת, שתיים, שלוש, ארבעה, חמש על קווים חדשים. 581 00:27:21,060 --> 00:27:22,110 נראה כאילו שזה עבד. 582 00:27:22,110 --> 00:27:23,200 כן, נח? 583 00:27:23,200 --> 00:27:26,660 >> תלמיד: אתה יכול גם לעשות פחות או שווה לארבעה, כמו שהוא פחות מ 584 00:27:26,660 --> 00:27:27,630 או שווה לארבעה? 585 00:27:27,630 --> 00:27:31,190 האם יש יתרון לעושה פחות מחמש, או רק דרך שונה 586 00:27:31,190 --> 00:27:31,610 כותב את זה? 587 00:27:31,610 --> 00:27:35,280 >> ג'ייסון הירשהורן: אז השאלה היא היה יכול לעשות לי הוא פחות או 588 00:27:35,280 --> 00:27:37,450 שווה לארבעה במקום אני הוא פחות מחמש. 589 00:27:37,450 --> 00:27:38,935 האם זה עובד אותו הדבר? 590 00:27:38,935 --> 00:27:39,760 >> סטודנט: זה צריך. 591 00:27:39,760 --> 00:27:39,860 >> ג'ייסון הירשהורן: כן. 592 00:27:39,860 --> 00:27:41,660 זה לגמרי לא היה עובד אותו הדבר. 593 00:27:41,660 --> 00:27:44,780 מבחינה סגנונית, זה בדרך כלל פחות מ, ואתה תראה בשנייה שבה 594 00:27:44,780 --> 00:27:48,160 אנחנו מחרוזות, אתה יכול להשתמש במשהו נקרא strlen, שראית 595 00:27:48,160 --> 00:27:50,380 בעבר, כדי לקבל את האורך של המחרוזת. 596 00:27:50,380 --> 00:27:54,090 ואתה לא יכול לעשות פחות מ או שווה strlen. 597 00:27:54,090 --> 00:27:56,500 אתה יכול לעשות פחות או שווה strlen מינוס אחד. 598 00:27:56,500 --> 00:27:59,260 אז זה פשוט יותר נחמד לעשות פחות מ strlen. 599 00:27:59,260 --> 00:28:00,240 כן? 600 00:28:00,240 --> 00:28:03,270 >> סטודנט: ובחידונים בפועל, לעשות אנחנו צריכים לספק הערות עלינו 601 00:28:03,270 --> 00:28:04,620 קוד גם כן? 602 00:28:04,620 --> 00:28:06,130 >> ג'ייסון הירשהורן: השאלה היה בחידונים, יעשה לך 603 00:28:06,130 --> 00:28:07,760 יש לספק הערות? 604 00:28:07,760 --> 00:28:12,050 אז נדבר עוד על חידונים כש הם באים, אבל בדרך כלל, טוב 605 00:28:12,050 --> 00:28:14,530 כלל אצבע הוא בכל פעם שאתה כתיבת קוד, לספק הערות. 606 00:28:14,530 --> 00:28:18,130 אם אתה מקבל את הקוד הלא נכון, אבל להגיב נכון, אתה יכול לקבל איזה 607 00:28:18,130 --> 00:28:22,280 אשראי הן מאותי אם אני לדירוג לך על סט או בעיה בחידון. 608 00:28:22,280 --> 00:28:24,660 אז הערות תמיד טוב לספק. 609 00:28:24,660 --> 00:28:25,040 מתוק. 610 00:28:25,040 --> 00:28:25,460 לספור. 611 00:28:25,460 --> 00:28:26,720 עבודה מצוינת. 612 00:28:26,720 --> 00:28:28,570 בואו נעבור הלאה. 613 00:28:28,570 --> 00:28:29,920 >> המיתרים. 614 00:28:29,920 --> 00:28:30,630 המיתרים. 615 00:28:30,630 --> 00:28:31,730 ראינו את זה בעבר בהרצאה. 616 00:28:31,730 --> 00:28:33,390 זה פוצץ את דעתי כשאני גילו את זה ראשון. 617 00:28:33,390 --> 00:28:37,240 כנראה שזה לא פוצץ אף אחד של אכפת כאן, אבל זה בסדר. 618 00:28:37,240 --> 00:28:41,260 >> מחרוזות הן מערכים של תווים, ו הם בסופו עם, כפי שאמרת קודם לכן, 619 00:28:41,260 --> 00:28:45,710 שליחות קטלנית null, אשר היא דמות / 0 זה. 620 00:28:45,710 --> 00:28:47,740 אם אנחנו הולכים לצייר על מחרוזת לוח, נצטרך לצייר אותו לכאן. 621 00:28:47,740 --> 00:28:53,080 622 00:28:53,080 --> 00:28:56,420 אז כמה זמן היא מחרוזת זו? 623 00:28:56,420 --> 00:28:56,680 סליחה. 624 00:28:56,680 --> 00:28:57,660 כמה זמן היא מחרוזת זו? 625 00:28:57,660 --> 00:28:57,910 >> תלמיד: [לא ברור]. 626 00:28:57,910 --> 00:28:59,010 >> ג'ייסון הירשהורן: ארבע? 627 00:28:59,010 --> 00:28:59,880 למה זה ארבע? 628 00:28:59,880 --> 00:29:02,240 >> תלמיד: בגלל המקום החמישי הוא על דמותה הריקה. 629 00:29:02,240 --> 00:29:04,070 >> ג'ייסון הירשהורן: אז המקום החמישי הוא על דמותה הריקה. 630 00:29:04,070 --> 00:29:07,130 אז אם אני היה לרוץ על strlen זה, זה היה נותן לי ארבע. 631 00:29:07,130 --> 00:29:07,850 נכון. 632 00:29:07,850 --> 00:29:11,640 והמערך, אם כי, אם הייתי לאתחל מערך זה, כמה חללים 633 00:29:11,640 --> 00:29:13,444 הייתי אני צריך לבקש? 634 00:29:13,444 --> 00:29:13,821 >> תלמיד: חמש. 635 00:29:13,821 --> 00:29:14,200 >> ג'ייסון הירשהורן: חמש. 636 00:29:14,200 --> 00:29:17,650 הייתי צריך לשאול לחמישה, אבל אני יכול רק לשים בארבע דמויות כאן 637 00:29:17,650 --> 00:29:19,750 כי אני צריך לשים null כי שליחות קטלנית בסופו של הדבר. 638 00:29:19,750 --> 00:29:25,260 אז אנחנו הולכים לכתוב ב" ohai "ו לשים null בשליחות קטלנית בסוף. 639 00:29:25,260 --> 00:29:31,820 640 00:29:31,820 --> 00:29:34,940 אנחנו אומרים את זה הוא מחרוזת ים שווה את זה. 641 00:29:34,940 --> 00:29:36,610 מה הוא אפס סוגר של? 642 00:29:36,610 --> 00:29:40,210 643 00:29:40,210 --> 00:29:41,550 סוגר של אפס, אנני? 644 00:29:41,550 --> 00:29:41,950 >> תלמיד: O. 645 00:29:41,950 --> 00:29:45,400 >> ג'ייסון הירשהורן: O, בדיוק. של סוגר אחד? 646 00:29:45,400 --> 00:29:48,200 סוגר של חמש? 647 00:29:48,200 --> 00:29:52,670 648 00:29:52,670 --> 00:29:53,955 סוגר של חמש? 649 00:29:53,955 --> 00:29:54,740 >> תלמיד: לא קיים. 650 00:29:54,740 --> 00:29:55,040 >> ג'ייסון הירשהורן: לא קיימת. 651 00:29:55,040 --> 00:29:57,050 בדיוק נכון. 652 00:29:57,050 --> 00:29:57,940 מגניב. 653 00:29:57,940 --> 00:30:03,120 שאלות לגבי הבנה מחרוזות כמערכים של תווים? 654 00:30:03,120 --> 00:30:03,870 על אישור, ולאחר מכן. 655 00:30:03,870 --> 00:30:05,440 תכנית אחת יותר בשבילכם. 656 00:30:05,440 --> 00:30:09,190 כתוב תכנית ששואלת את המשתמש למחרוזת לאחר מכן מדפיס את כל 657 00:30:09,190 --> 00:30:11,880 דמות בשורה חדשה. 658 00:30:11,880 --> 00:30:14,160 אז בואו ניקח שלוש דקות כדי לכתוב תכנית זו, ולאחר מכן נצטרך לקודד אותו 659 00:30:14,160 --> 00:30:15,410 כקבוצה. 660 00:30:15,410 --> 00:31:04,730 661 00:31:04,730 --> 00:31:04,830 >> סליחה. 662 00:31:04,830 --> 00:31:06,470 האם אתה צריך לראות את זה? 663 00:31:06,470 --> 00:31:07,410 >> תלמיד: לא. 664 00:31:07,410 --> 00:31:08,660 >> ג'ייסון הירשהורן: אישור. 665 00:31:08,660 --> 00:31:36,390 666 00:31:36,390 --> 00:31:40,605 בואו ניקח עוד דקה אחת לקוד הזה, או לפחות להתחיל לעבוד על זה. 667 00:31:40,605 --> 00:32:13,900 668 00:32:13,900 --> 00:32:17,020 >> אז אתה יכול להמשיך לעבוד, אבל אני הולך להתחיל ללכת דרכו. 669 00:32:17,020 --> 00:32:22,560 אז לפני שאוהב, יש לי על המסך # כולל cs50.h, # כולל stdio.h. 670 00:32:22,560 --> 00:32:24,020 int החלל ראשי. 671 00:32:24,020 --> 00:32:28,880 בתוך הסוגריים המסולסלים של העיקרי, יש לי שתי הערות, pseudocode. 672 00:32:28,880 --> 00:32:30,980 אחת הוא לבקש מחרוזת מהמשתמש. 673 00:32:30,980 --> 00:32:33,900 השני הוא להדפיס את כל דמות בשורה חדשה. 674 00:32:33,900 --> 00:32:39,780 אז אנה, אתה יכול לתת לי לשאול למחרוזת מהמשתמש? 675 00:32:39,780 --> 00:32:41,970 >> סטודנט: printf. 676 00:32:41,970 --> 00:32:42,720 >> ג'ייסון הירשהורן: printf? 677 00:32:42,720 --> 00:32:45,050 >> סטודנט: כן. 678 00:32:45,050 --> 00:32:46,165 ( 679 00:32:46,165 --> 00:32:47,610 >> ג'ייסון הירשהורן: ( 680 00:32:47,610 --> 00:32:49,300 >> תלמיד: "תן לי את מחרוזת. 681 00:32:49,300 --> 00:32:52,380 >> ג'ייסון הירשהורן: "ייתן לי שלי str - אופס - 682 00:32:52,380 --> 00:32:53,710 מחרוזת. 683 00:32:53,710 --> 00:32:59,980 >> תלמיד: / n ") פסיק. 684 00:32:59,980 --> 00:33:02,300 >> ג'ייסון הירשהורן: סיים את המחרוזת, סוגריים סגורים, פסיק. 685 00:33:02,300 --> 00:33:03,550 >> סטודנט: כן. 686 00:33:03,550 --> 00:33:09,080 והשורה הבאה, ואז מחרוזת S = מקבל מחרוזת. 687 00:33:09,080 --> 00:33:11,240 >> ג'ייסון הירשהורן: מחרוזת S = מקבל מחרוזת. 688 00:33:11,240 --> 00:33:11,665 >> סטודנט: כן. 689 00:33:11,665 --> 00:33:13,080 ולאחר מכן () 690 00:33:13,080 --> 00:33:14,365 >> ג'ייסון הירשהורן: () 691 00:33:14,365 --> 00:33:14,720 >> תלמיד: פסיק. 692 00:33:14,720 --> 00:33:15,540 >> ג'ייסון הירשהורן: פסיק. 693 00:33:15,540 --> 00:33:16,890 פנטסטי. 694 00:33:16,890 --> 00:33:19,000 אז אני הולך לקבל מחרוזת ו אני הולך לחסוך במה זה? 695 00:33:19,000 --> 00:33:21,830 מה משתנה בשם שיצרת? 696 00:33:21,830 --> 00:33:23,290 >> תלמיד: מחרוזת s. 697 00:33:23,290 --> 00:33:24,580 >> ג'ייסון הירשהורן: משתנה נקרא ים. 698 00:33:24,580 --> 00:33:25,700 זה סוג מחרוזת. 699 00:33:25,700 --> 00:33:27,200 בדיוק. 700 00:33:27,200 --> 00:33:30,080 הדבר הבא שאנחנו רוצים הוא להדפיס את כל תו בשורה חדשה. 701 00:33:30,080 --> 00:33:31,710 מי יכול לתת לי את הקוד הזה? 702 00:33:31,710 --> 00:33:32,110 [לא ברור]? 703 00:33:32,110 --> 00:33:33,000 אתה יכול לתת לי את זה? 704 00:33:33,000 --> 00:33:33,580 >> סטודנט: בוודאי. 705 00:33:33,580 --> 00:33:35,420 >> ג'ייסון הירשהורן: בואו נעשה את זה. 706 00:33:35,420 --> 00:33:36,080 ומצטער. 707 00:33:36,080 --> 00:33:38,896 אני לא רוצה לחזור על מה שאתה אומר בגלל שאתה מקבל את זה נכון, אבל אני 708 00:33:38,896 --> 00:33:42,100 צריך לחזור על זה, כך שכאשר הם לתמלל את זה, הם יכולים לקבל את כל 709 00:33:42,100 --> 00:33:44,870 הטקסט על התעתיקים. 710 00:33:44,870 --> 00:33:47,180 אז אתה פשוט יכול להמשיך לדבר. 711 00:33:47,180 --> 00:33:48,590 למרבה הצער, יש לי להגיד את זה עליך. 712 00:33:48,590 --> 00:33:49,510 אני מצטער, אבל - 713 00:33:49,510 --> 00:33:50,610 >> סטודנט: זה בסדר גמור. 714 00:33:50,610 --> 00:33:53,010 לint i = 0 715 00:33:53,010 --> 00:33:54,170 >> ג'ייסון הירשהורן: עבור אני int = 0 716 00:33:54,170 --> 00:33:56,740 >> תלמיד: אני פחות מ - 717 00:33:56,740 --> 00:33:58,206 >> ג'ייסון הירשהורן: פסיק. 718 00:33:58,206 --> 00:34:00,650 >> תלמיד: לפני זה, אנחנו יכולים לשים משתנה כך שאתה מקבל int שם אורך? 719 00:34:00,650 --> 00:34:01,870 >> ג'ייסון הירשהורן: אה, אתה לא רוצה לשים פסיק? 720 00:34:01,870 --> 00:34:02,310 אישור. 721 00:34:02,310 --> 00:34:05,120 אז מה אתה רוצה לעשות אחרי אפס? 722 00:34:05,120 --> 00:34:09,340 >> תלמיד: אני רוצה להגיע מחרוזת באורך של שעות ו 723 00:34:09,340 --> 00:34:10,410 נקבע, כי למשתנה? 724 00:34:10,410 --> 00:34:11,760 >> ג'ייסון הירשהורן: בסדר, אז איך אני עושה את זה? 725 00:34:11,760 --> 00:34:17,636 >> תלמיד: אז אתה עושה אורך int = 726 00:34:17,636 --> 00:34:20,010 >> ג'ייסון הירשהורן: int אורך = 727 00:34:20,010 --> 00:34:22,230 >> תלמיד: S-T-R-L-E-N. 728 00:34:22,230 --> 00:34:24,260 >> ג'ייסון הירשהורן: S-T-R-L-E-N - 729 00:34:24,260 --> 00:34:25,380 >> תלמיד: של S. 730 00:34:25,380 --> 00:34:25,790 סוגריים. 731 00:34:25,790 --> 00:34:27,920 >> ג'ייסון הירשהורן: (ים). 732 00:34:27,920 --> 00:34:33,040 >> תלמיד: ואז אני חושב שיש לך לשים פסיק בין שני ints. 733 00:34:33,040 --> 00:34:34,590 >> ג'ייסון הירשהורן: פסיק אחרי אפס? 734 00:34:34,590 --> 00:34:35,260 >> סטודנט: כן. 735 00:34:35,260 --> 00:34:40,670 ואז לשים פסיק אחרי זה, ו אתה אומר, אני פחות מאורך. 736 00:34:40,670 --> 00:34:43,250 אני פחות מ אורך, אשר הוא משתנה. 737 00:34:43,250 --> 00:34:44,590 >> תלמיד: ואז פסיק. 738 00:34:44,590 --> 00:34:45,790 >> ג'ייסון הירשהורן: פסיק. 739 00:34:45,790 --> 00:34:46,290 >> תלמיד: אני + +. 740 00:34:46,290 --> 00:34:46,909 >> ג'ייסון הירשהורן: אני + +. 741 00:34:46,909 --> 00:34:47,530 יש הלולאה עבורנו. 742 00:34:47,530 --> 00:34:48,860 מניח את הדעת, בתוך ללולאה. 743 00:34:48,860 --> 00:34:51,670 >> סטודנט: ואז לעשות printf. 744 00:34:51,670 --> 00:34:53,340 >> ג'ייסון הירשהורן: printf. 745 00:34:53,340 --> 00:34:53,889 >> תלמיד: בסוגריים. 746 00:34:53,889 --> 00:34:55,130 >> ג'ייסון הירשהורן: סוגריים, ציטוטים. 747 00:34:55,130 --> 00:34:59,930 >> תלמיד: סוגריים, ציטוטים,% ג / n. 748 00:34:59,930 --> 00:35:00,760 >> ג'ייסון הירשהורן:% ג, בסדר. 749 00:35:00,760 --> 00:35:01,670 >> תלמיד: / n. 750 00:35:01,670 --> 00:35:03,470 >> ג'ייסון הירשהורן: / n. 751 00:35:03,470 --> 00:35:04,410 >> תלמיד: ציטוטים סגורים. 752 00:35:04,410 --> 00:35:05,270 >> ג'ייסון הירשהורן: ציטוטים סגורים. 753 00:35:05,270 --> 00:35:05,810 >> תלמיד: פסיק. 754 00:35:05,810 --> 00:35:06,860 >> ג'ייסון הירשהורן: פסיק. 755 00:35:06,860 --> 00:35:07,800 >> תלמיד: ס 756 00:35:07,800 --> 00:35:08,070 >> ג'ייסון הירשהורן: ס 757 00:35:08,070 --> 00:35:08,690 >> תלמיד: אני סוגר. 758 00:35:08,690 --> 00:35:10,230 >> ג'ייסון הירשהורן: תושבתי. 759 00:35:10,230 --> 00:35:11,520 >> סטודנט: וסוגריים לאחר מכן נסגרו. 760 00:35:11,520 --> 00:35:12,540 >> ג'ייסון הירשהורן: סוגריים סגורים. 761 00:35:12,540 --> 00:35:13,660 >> תלמיד: ואז פסיק. 762 00:35:13,660 --> 00:35:13,770 >> ג'ייסון הירשהורן: פסיק. 763 00:35:13,770 --> 00:35:14,380 פנטסטי. 764 00:35:14,380 --> 00:35:16,890 אז בואו נחסוך את זה. 765 00:35:16,890 --> 00:35:19,770 הפוך לאיית. 766 00:35:19,770 --> 00:35:20,040 אוי ואבוי. 767 00:35:20,040 --> 00:35:22,275 יש לי כמה טעויות. 768 00:35:22,275 --> 00:35:33,120 שגיאה הראשונה ב -11 בקו, הוא אומר, ציפיתי ביטוי, וזה נותן 769 00:35:33,120 --> 00:35:36,910 לי הודעת שגיאה שהשנייה int, יש שגיאה. 770 00:35:36,910 --> 00:35:38,430 יש איזו שגיאה בסביבה שם. 771 00:35:38,430 --> 00:35:41,060 האם מישהו יודע מה שגיאה הוא ש? 772 00:35:41,060 --> 00:35:41,640 קורט? 773 00:35:41,640 --> 00:35:44,108 >> תלמיד: אני חושב שזה אמור להיות פסיק ולא פסיק. 774 00:35:44,108 --> 00:35:46,010 >> ג'ייסון הירשהורן: אוקיי, פסיק במקום פסיק. 775 00:35:46,010 --> 00:35:47,340 אז הוא שכולנו צריכים לתקן? 776 00:35:47,340 --> 00:35:47,655 >> תלמיד: לא. 777 00:35:47,655 --> 00:35:48,930 >> ג'ייסון הירשהורן: מה עוד אנחנו צריכים לתקן? 778 00:35:48,930 --> 00:35:50,920 >> סטודנט: יש לנו לכלול string.h. 779 00:35:50,920 --> 00:35:51,680 >> ג'ייסון הירשהורן: כלול string.h. 780 00:35:51,680 --> 00:35:53,730 איפה אני צריך לכלול את זה? 781 00:35:53,730 --> 00:35:57,085 >> תלמיד: באותו מקום שאתה בכלל דברים האחרים, נכון 782 00:35:57,085 --> 00:35:59,560 לאחר לכלול stdio.h. 783 00:35:59,560 --> 00:36:01,610 >> ג'ייסון הירשהורן: בואו תראו אם זה פועל ראשון, כי באופן כללי, אני אוהב 784 00:36:01,610 --> 00:36:06,360 כדי לתקן דבר אחד תחילה, ולאחר מכן להפעיל אותו, ולאחר מכן לראות את השגיאות שאנו מקבלים. 785 00:36:06,360 --> 00:36:11,620 אז אנחנו הולכים כדי לנקות את המסוף עם השליטה n, בואו עושים כישוף. 786 00:36:11,620 --> 00:36:15,190 787 00:36:15,190 --> 00:36:18,770 אז שגיאה אחרת בקו 11. 788 00:36:18,770 --> 00:36:20,540 צפוי פסיק. 789 00:36:20,540 --> 00:36:22,640 ואני עדיין מקבל שגיאות בקו זה. 790 00:36:22,640 --> 00:36:25,270 אז זה לא נתן לי שגיאה אומרת את זה לא מבין מה הוא strlen, 791 00:36:25,270 --> 00:36:28,980 אבל זה נותן לי שגיאות על זה קו, אז מה עוד לא בסדר? 792 00:36:28,980 --> 00:36:29,690 מארק? 793 00:36:29,690 --> 00:36:30,940 מרקוס. 794 00:36:30,940 --> 00:36:32,570 >> תלמיד: האם יש לך להסיר הצהרת int השנייה? 795 00:36:32,570 --> 00:36:34,990 >> ג'ייסון הירשהורן: הסר int השני. 796 00:36:34,990 --> 00:36:35,710 בואו ננסה את זה. 797 00:36:35,710 --> 00:36:37,600 עכשיו לנקות את המסוף. 798 00:36:37,600 --> 00:36:40,130 הפוך לאיית. 799 00:36:40,130 --> 00:36:40,490 שגיאה. 800 00:36:40,490 --> 00:36:42,890 הכרזה במשתמע ספרייה פונקצית strlen. 801 00:36:42,890 --> 00:36:44,270 אז עכשיו אנחנו רואים את השגיאה הזאת. 802 00:36:44,270 --> 00:36:45,760 מה אנחנו צריכים לכלול? 803 00:36:45,760 --> 00:36:46,660 >> תלמיד: string.h. 804 00:36:46,660 --> 00:36:51,880 >> ג'ייסון הירשהורן: כלול string.h, אנחנו נעשה # כוללים string.h בראש 805 00:36:51,880 --> 00:36:52,920 של המסך. 806 00:36:52,920 --> 00:36:55,450 בואו לשמור, לעשות לאיית. 807 00:36:55,450 --> 00:36:56,970 עכשיו הידור. 808 00:36:56,970 --> 00:37:01,970 אז שוב, את הדברים שאנחנו צריכים זוכר את הקו 12 בלולאה כאשר עבורנו 809 00:37:01,970 --> 00:37:08,010 אנחנו מקימים אותו, אני int = 0, אורך = strlen (ים). 810 00:37:08,010 --> 00:37:09,350 >> זו אסטרטגיה פנטסטית. 811 00:37:09,350 --> 00:37:12,590 הסגנון של זה הוא גדול, עיצוב של זה הוא גדול. 812 00:37:12,590 --> 00:37:15,620 אנחנו יכולים להיכנס לסיבות אלה מאוחר יותר, אבל בדרך זו אתה רק צריך להתקשר 813 00:37:15,620 --> 00:37:19,040 strlen פעם אחת במקום כל אחד פעם שאתה מפעיל דרך הלולאה. 814 00:37:19,040 --> 00:37:22,255 עם זאת, עליך להשתמש בפסיק שם ואתה לא צריך int שוב. 815 00:37:22,255 --> 00:37:24,180 אם אתה מכריז הן כאלה משתנים ביחד, אתה 816 00:37:24,180 --> 00:37:26,850 לא צריך int שוב. 817 00:37:26,850 --> 00:37:29,820 ולאחר מכן, אם אתה הולך להשתמש strlen, אשר ספרייה אחרת 818 00:37:29,820 --> 00:37:33,560 פונקציה לא נכלל ב stdio.h או cs50.h, לעשות 819 00:37:33,560 --> 00:37:35,310 הקפד לכלול string.h. 820 00:37:35,310 --> 00:37:35,900 קורט? 821 00:37:35,900 --> 00:37:39,085 >> תלמיד: אז אם אתה לא צריך לומר את מה שהוא סוג האורך, עושה את זה 822 00:37:39,085 --> 00:37:40,290 אומר שזה צריך להיות int? 823 00:37:40,290 --> 00:37:41,930 לא יכול להיות לך שני שונה סוגים יש? 824 00:37:41,930 --> 00:37:43,290 >> ג'ייסון הירשהורן: אז אתה יכול יש שני סוגים שונים. 825 00:37:43,290 --> 00:37:45,730 אורך אף הוא int כאן,. 826 00:37:45,730 --> 00:37:48,590 אורך הוא int כי זה פסיק ולאחר מכן את אותו הדבר. 827 00:37:48,590 --> 00:37:50,460 >> תלמיד: אז הוא מניח שזה הולך להיות אותו הדבר כמו בפעם הראשונה? 828 00:37:50,460 --> 00:37:52,423 >> ג'ייסון הירשהורן: בדיוק. 829 00:37:52,423 --> 00:37:54,970 אנחנו לא הולכים לעשות את זה עכשיו, אבל אתה יכול לכלול שני משתנים על 830 00:37:54,970 --> 00:37:57,080 אותו קו תוך שימוש בסוג נתונים אחד. 831 00:37:57,080 --> 00:38:01,415 אז x int, y ייצור שני משתנים. 832 00:38:01,415 --> 00:38:05,830 833 00:38:05,830 --> 00:38:10,770 אז x int, y, אם אנחנו עושים את זה, זה נותן לי לי x ו-y משתנה שאינו בשימוש, כי 834 00:38:10,770 --> 00:38:12,020 אנו לא משתמשים בם. 835 00:38:12,020 --> 00:38:17,950 836 00:38:17,950 --> 00:38:21,650 אז לשים חלל הוא רק לפני טריק מפואר, אם אתה לא משתמש 837 00:38:21,650 --> 00:38:22,810 משהו, כדי להשתמש בו. 838 00:38:22,810 --> 00:38:26,300 אבל כפי שאתה רואה, אני יוצר X ו-Y באותה השורה עם פסיק. 839 00:38:26,300 --> 00:38:28,450 זה יוצר שני מספרים שלמים ממש שם. 840 00:38:28,450 --> 00:38:31,560 אז כן, אפשרי לחלוטין ליצור שני דברים על אותו הקו 841 00:38:31,560 --> 00:38:33,720 מופרד על ידי פסיק. 842 00:38:33,720 --> 00:38:35,470 בואו להיפטר מאלה, אם כי. 843 00:38:35,470 --> 00:38:36,370 >> אז יש קסם. 844 00:38:36,370 --> 00:38:39,200 תודה לך חבר 'ה לקידוד זה בשבילנו. 845 00:38:39,200 --> 00:38:43,040 בואו נעשה את זה עוד פעם אחת, להפעיל אותו. 846 00:38:43,040 --> 00:38:44,580 תן לי את מחרוזת. 847 00:38:44,580 --> 00:38:45,580 [לא ברור], שעשית את רובו. 848 00:38:45,580 --> 00:38:47,910 מה את המחרוזת? 849 00:38:47,910 --> 00:38:48,250 >> תלמיד: שלום. 850 00:38:48,250 --> 00:38:50,110 >> ג'ייסון הירשהורן: שלום. 851 00:38:50,110 --> 00:38:52,810 H-E-L-L-O, כל תו בשורה אחת. 852 00:38:52,810 --> 00:38:53,700 נראה נהדר. 853 00:38:53,700 --> 00:38:54,750 בואו להפעיל אותו שוב. 854 00:38:54,750 --> 00:38:56,050 תמיד הולך לבדוק למקרים פינתיים. 855 00:38:56,050 --> 00:38:57,750 מה מקרה פינה טוב כדי לבדוק? 856 00:38:57,750 --> 00:39:00,250 857 00:39:00,250 --> 00:39:00,890 >> תלמיד: מספר? 858 00:39:00,890 --> 00:39:02,240 >> ג'ייסון הירשהורן: מספר. 859 00:39:02,240 --> 00:39:06,580 אז אני אשים ב1, וזה מדפיס את 1. 860 00:39:06,580 --> 00:39:08,970 זה לא מבקש מכתבים, ולכן זה נראה כמו מספרי עבודה. 861 00:39:08,970 --> 00:39:09,890 מקרה פינה טוב לבדוק. 862 00:39:09,890 --> 00:39:11,740 מה פינה טובה נוספת כדי לבדוק את מקרה? 863 00:39:11,740 --> 00:39:12,420 >> תלמיד: מחרוזת ריקה. 864 00:39:12,420 --> 00:39:12,910 >> ג'ייסון הירשהורן: הממ? 865 00:39:12,910 --> 00:39:13,880 >> סטודנט: כמו מחרוזת ריקה. 866 00:39:13,880 --> 00:39:14,400 >> ג'ייסון הירשהורן: מחרוזת ריקה. 867 00:39:14,400 --> 00:39:16,730 אז בואו לא לשים בשום דבר. 868 00:39:16,730 --> 00:39:18,660 ומה מקבל הדפיס? 869 00:39:18,660 --> 00:39:19,090 >> סטודנט: שום דבר. 870 00:39:19,090 --> 00:39:19,870 >> ג'ייסון הירשהורן: שום דבר. 871 00:39:19,870 --> 00:39:20,555 נראה כאילו זה עובד. 872 00:39:20,555 --> 00:39:23,790 אתה יכול לנסות יותר מקרי פינה, אבל בדרך כלל מספרים, נתונים שונים הוא 873 00:39:23,790 --> 00:39:26,160 מצוין לנסות, כמו גם שום דבר. 874 00:39:26,160 --> 00:39:29,180 שום דבר, אפס, תשלילים תמיד דברים גדולים כדי לנסות ודברים שאתה 875 00:39:29,180 --> 00:39:33,140 צריכים בדיקה, דברים בהחלט נצטרך לבדוק ולבדוק 50 יבדקו אם קיימים. 876 00:39:33,140 --> 00:39:34,720 שאלות לגבי spell.c? 877 00:39:34,720 --> 00:39:37,752 878 00:39:37,752 --> 00:39:39,310 >> זה בסדר, תן את הראש לאחור. 879 00:39:39,310 --> 00:39:42,420 יש לי אחד יותר תכנית בשבילכם לכתוב. 880 00:39:42,420 --> 00:39:44,700 זה נקרא students.c. 881 00:39:44,700 --> 00:39:49,020 זוהי תכנית ששואלת את המשתמש עבור חמישה שמות, ולאחר מכן בוחר באופן אקראי 882 00:39:49,020 --> 00:39:51,600 ומדפיס את אחד השמות. 883 00:39:51,600 --> 00:39:54,840 תכנית זו היא קצת יותר מעורב יותר משני האחרון שכתבנו, 884 00:39:54,840 --> 00:39:58,080 אז למה שלא ניקח חמש דקות קוד זה בנפרד, ואחר כך 885 00:39:58,080 --> 00:40:00,130 קוד זה כקבוצה. 886 00:40:00,130 --> 00:40:03,795 >> תכנית זו גם כרוכה בכמה דברים ייתכן שלא ראה לפני כן, כך שאם 887 00:40:03,795 --> 00:40:06,390 יש לך שאלה על, איך לעשות אני עושה את זה, להרים את היד שלך. 888 00:40:06,390 --> 00:40:08,530 אני אבוא ואצביע לך בכיוון הנכון. 889 00:40:08,530 --> 00:40:10,820 אבל אנחנו גם עושים את זה כי זה תהיה דרך טובה להכניס קצת 890 00:40:10,820 --> 00:40:12,070 נושאים שהם מסובך. 891 00:40:12,070 --> 00:44:14,600 892 00:44:14,600 --> 00:44:15,560 >> כך זה עובד, נכון? 893 00:44:15,560 --> 00:44:17,580 >> סטודנט: כן. 894 00:44:17,580 --> 00:44:19,180 >> ג'ייסון הירשהורן: בכל פעם שאתה פונה ב להגדיר את הבעיה, יש דרכים רבות לעשות 895 00:44:19,180 --> 00:44:20,790 את זה, אבל קצת יותר אלגנטי יותר מאחרים. 896 00:44:20,790 --> 00:44:29,000 897 00:44:29,000 --> 00:44:31,110 תן לנו לצלול פנימה 898 00:44:31,110 --> 00:44:32,880 # כולל cs50.h. 899 00:44:32,880 --> 00:44:34,250 # Include stdio.h. 900 00:44:34,250 --> 00:44:37,240 החלל עיקרי int, סוגריים מסולסלים. 901 00:44:37,240 --> 00:44:39,430 בתוך הסוגריים המסולסלים, יש לי שתי הערות. 902 00:44:39,430 --> 00:44:41,500 הראשון הוא, לשאול משתמש במשך חמישה שמות. 903 00:44:41,500 --> 00:44:46,580 השני הוא, באופן אקראי לבחור ולהדפיס את אחד השמות. 904 00:44:46,580 --> 00:44:50,250 אז בואו לעשות את הראשון, לשאול המשתמש במשך חמישה שמות. 905 00:44:50,250 --> 00:44:53,730 מי ששאל את המשתמש לחמישה שמות ויכול להגיד לי איך לעשות את זה? 906 00:44:53,730 --> 00:44:56,760 907 00:44:56,760 --> 00:44:58,570 רק שני אנשים שעשו את החלק הראשון. 908 00:44:58,570 --> 00:45:00,150 שלושה אנשים עשו את החלק הראשון. 909 00:45:00,150 --> 00:45:00,670 ארבעה, חמש. 910 00:45:00,670 --> 00:45:03,140 טום, איך אתה עושה את זה? 911 00:45:03,140 --> 00:45:09,940 >> תלמיד: היית להכריז על מחרוזת ולאחר מכן שמו, סוגר חמש. 912 00:45:09,940 --> 00:45:12,070 >> ג'ייסון הירשהורן: מחרוזת שם סוגר חמש. 913 00:45:12,070 --> 00:45:15,350 אז מהו הקו הזה עושה, מחרוזת שם סוגר חמש? 914 00:45:15,350 --> 00:45:17,800 >> סטודנט: תכריז מערך של מחרוזות. 915 00:45:17,800 --> 00:45:19,000 >> ג'ייסון הירשהורן: זה מערך של מחרוזות. 916 00:45:19,000 --> 00:45:21,590 כמה חוטים הולכים כדי שיתאים לכאן? 917 00:45:21,590 --> 00:45:22,010 >> תלמיד: חמש. 918 00:45:22,010 --> 00:45:22,320 >> ג'ייסון הירשהורן: חמש. 919 00:45:22,320 --> 00:45:22,660 מצוין. 920 00:45:22,660 --> 00:45:26,360 אנחנו הולכים לקרוא לזה שמות כי אנחנו הולכים לקבל את אלה מרובים. 921 00:45:26,360 --> 00:45:27,790 אוקיי, הבא? 922 00:45:27,790 --> 00:45:29,270 >> סטודנט: ואז אתה יש ללולאה - 923 00:45:29,270 --> 00:45:30,060 >> ג'ייסון הירשהורן: ללולאה. 924 00:45:30,060 --> 00:45:33,035 >> תלמיד: - עבור i = 0. 925 00:45:33,035 --> 00:45:37,040 >> ג'ייסון הירשהורן: עבור (אני int = 0. 926 00:45:37,040 --> 00:45:38,270 >> תלמיד: פסיק. 927 00:45:38,270 --> 00:45:38,880 >> ג'ייסון הירשהורן: פסיק. 928 00:45:38,880 --> 00:45:39,790 >> תלמיד: אני פחות מחמישה. 929 00:45:39,790 --> 00:45:41,310 >> ג'ייסון הירשהורן: אני פחות מחמישה. 930 00:45:41,310 --> 00:45:42,230 >> תלמיד: פסיק. 931 00:45:42,230 --> 00:45:42,560 >> ג'ייסון הירשהורן: פסיק. 932 00:45:42,560 --> 00:45:43,380 >> תלמיד: אני + +. 933 00:45:43,380 --> 00:45:46,050 >> ג'ייסון הירשהורן: אני + +. 934 00:45:46,050 --> 00:45:47,100 >> סטודנט: וסוגריים לאחר מכן נסגרו. 935 00:45:47,100 --> 00:45:48,600 >> ג'ייסון הירשהורן: סוגריים סגורים, ולאחר מכן כמה סוגריים מסולסלים. 936 00:45:48,600 --> 00:45:50,050 בתוך הסוגריים המסולסלים? 937 00:45:50,050 --> 00:45:51,423 >> תלמיד: ואז printf. 938 00:45:51,423 --> 00:45:52,535 >> ג'ייסון הירשהורן: printf. 939 00:45:52,535 --> 00:45:56,200 >> תלמיד: סוגריים פתוחים, שם% d. 940 00:45:56,200 --> 00:45:57,090 >> ג'ייסון הירשהורן: סליחה? 941 00:45:57,090 --> 00:45:57,660 >> תלמיד: 'שם'. 942 00:45:57,660 --> 00:45:58,200 >> ג'ייסון הירשהורן: 'שם'. 943 00:45:58,200 --> 00:46:01,700 >> סטודנט: ולאחר מכן רווח ולאחר מכן% ד. 944 00:46:01,700 --> 00:46:02,950 >> ג'ייסון הירשהורן: שם, מרחב,% ד. 945 00:46:02,950 --> 00:46:05,630 946 00:46:05,630 --> 00:46:10,820 >> סטודנט: ולאחר מכן / n, ולאחר מכן נסגר. 947 00:46:10,820 --> 00:46:15,070 >> ג'ייסון הירשהורן: שם אז, מרחב, סגור סוגריים%, d / n. 948 00:46:15,070 --> 00:46:17,730 >> תלמיד: פסיק, אני + 1. 949 00:46:17,730 --> 00:46:19,390 אני מצטער. 950 00:46:19,390 --> 00:46:21,040 ציטוט סגור, ולאחר מכן פסיק, אני 1. 951 00:46:21,040 --> 00:46:24,400 >> ג'ייסון הירשהורן: סגור ציטוט, פסיק, אני 1. 952 00:46:24,400 --> 00:46:25,850 >> סטודנט: כן. 953 00:46:25,850 --> 00:46:27,650 ולאחר מכן את השורה הבאה - 954 00:46:27,650 --> 00:46:29,400 >> ג'ייסון הירשהורן: אני + 1. 955 00:46:29,400 --> 00:46:31,600 >> סטודנט: כן. 956 00:46:31,600 --> 00:46:36,440 ולאחר מכן השקופית הבאה אני סוגר הוא שמות. 957 00:46:36,440 --> 00:46:39,000 >> ג'ייסון הירשהורן: השורה הבאה אני סוגר הוא שמות. 958 00:46:39,000 --> 00:46:41,360 >> תלמיד: = מקבל מחרוזת. 959 00:46:41,360 --> 00:46:43,460 >> ג'ייסון הירשהורן: = קבל - 960 00:46:43,460 --> 00:46:44,510 הון ה-G-E-T - 961 00:46:44,510 --> 00:46:45,530 מחרוזת. 962 00:46:45,530 --> 00:46:47,800 אופס, סליחה. 963 00:46:47,800 --> 00:46:49,050 >> תלמיד: פתוחים, סגורים סוגריים ולאחר מכן - 964 00:46:49,050 --> 00:46:50,940 >> ג'ייסון הירשהורן: פתוח, סגור סוגריים. 965 00:46:50,940 --> 00:46:51,030 >> תלמיד: פסיק. 966 00:46:51,030 --> 00:46:52,500 >> ג'ייסון הירשהורן: פסיק. 967 00:46:52,500 --> 00:46:57,545 אוקיי, אז אתה לאתחל את המערך של מחרוזות, שמות, ולאחר מכן לעבור 968 00:46:57,545 --> 00:47:02,720 ללולאה, וחמש פעמים להדפיס את חלק תבקש למשתמש ולאחר מכן לאחסן 969 00:47:02,720 --> 00:47:03,360 חמישה המיתרים. 970 00:47:03,360 --> 00:47:08,090 האם יש למישהו כל התאמות לזה? 971 00:47:08,090 --> 00:47:10,030 טום, אני חושב שכולם מסכים איתך. 972 00:47:10,030 --> 00:47:10,880 נראה די טוב. 973 00:47:10,880 --> 00:47:11,660 אישור. 974 00:47:11,660 --> 00:47:14,830 למה עשית לי 1, אם כי? 975 00:47:14,830 --> 00:47:18,000 >> תלמיד: אני מתכוון, אין לי להיות, אבל אני +1 כך שזה 976 00:47:18,000 --> 00:47:19,700 שם אחד שם חמש. 977 00:47:19,700 --> 00:47:21,930 אחרת, זה יהיה שם אפס שם ארבעה. 978 00:47:21,930 --> 00:47:24,400 >> ג'ייסון הירשהורן: אז אתה עשית לי 1 כי אחר זה יהיה 979 00:47:24,400 --> 00:47:27,060 הדפיס אפס עד ארבע, כי ככה מחשבים חושבים, אבל בני אדם 980 00:47:27,060 --> 00:47:28,530 לא באמת קוראים ככה. 981 00:47:28,530 --> 00:47:30,190 זה דבר אחר אתה נתקל. 982 00:47:30,190 --> 00:47:33,210 לפעמים כשאתה מדפיס משהו למשתמש, אתה רוצה לעשות את זה 983 00:47:33,210 --> 00:47:35,733 קצת יותר יפה, ועושה אני +1 במקרה זה הוא 984 00:47:35,733 --> 00:47:37,430 דרך לעשות את זה יותר יפה. 985 00:47:37,430 --> 00:47:41,380 >> אני גם רואה חמש פעמיים, שם מחרוזת הוא חמש, אני הוא פחות מחמש. 986 00:47:41,380 --> 00:47:42,430 אני יודע איפה יש לך חמש. 987 00:47:42,430 --> 00:47:44,890 יש לך את זה ממני אומר לי לך חמישה שמות. 988 00:47:44,890 --> 00:47:49,000 אבל אם אנחנו רוצים להפוך את הקוד קצת חזק יותר, דבר אחד אנחנו 989 00:47:49,000 --> 00:47:53,110 יכול לעשות הוא כאן, מחוץ לint, אנחנו יכולים לעשות משהו כזה, 990 00:47:53,110 --> 00:47:57,070 # להגדיר, ושאנחנו יכולים לעשות שמות 5. 991 00:47:57,070 --> 00:48:01,580 992 00:48:01,580 --> 00:48:05,390 >> אז בעצם, בכל מקום שאני כותב הון N, הון, הון M, E ההון, 993 00:48:05,390 --> 00:48:08,890 ההון S, המחרוזת, הוא יחליף כי עם 5 בקוד. 994 00:48:08,890 --> 00:48:11,530 995 00:48:11,530 --> 00:48:13,445 או בואו פשוט נקראים לזה - אנחנו פשוט קוראים לזה ספרות. 996 00:48:13,445 --> 00:48:17,190 אז אני מגדיר את כל כמוסות מספר שיש 5. 997 00:48:17,190 --> 00:48:22,830 >> אז עכשיו בכל מקום שיש לי את המספר 5, אני יכול להחליף אותו בכל מספר הכובעים. 998 00:48:22,830 --> 00:48:26,880 ועכשיו, אם אני רוצה לשנות את המספר של שמות, כל מה שאני צריך לעשות הוא 999 00:48:26,880 --> 00:48:31,350 הקו הזה, הקו ארבעה, שבו יש לי # להגדיר מספר 5, לשנות את זה ל 10, 1000 00:48:31,350 --> 00:48:34,340 או לשנות את זה עד 4. 1001 00:48:34,340 --> 00:48:37,400 כאשר הקוד שלך מקבל יותר, אתה לא הולך לזכור את כל המקומות שאתה 1002 00:48:37,400 --> 00:48:41,630 לשים כמה שמות שאתה רוצה, ובשינה על מנת שתוכל לא לפספס אחד, זה 1003 00:48:41,630 --> 00:48:45,490 דרך טובה לעשות את זה, כדי למצוא משהו למעלה, ואז פשוט להשתמש בביטוי ש 1004 00:48:45,490 --> 00:48:46,400 בכל מקום לאורך כל הקוד שלך. 1005 00:48:46,400 --> 00:48:46,780 מרקוס? 1006 00:48:46,780 --> 00:48:49,780 >> תלמיד: האם זה מועדף סגנונית מהגדרה גלובלית 1007 00:48:49,780 --> 00:48:51,270 n קבוע? 1008 00:48:51,270 --> 00:48:53,760 >> ג'ייסון הירשהורן: אז הוא ש העדיף סגנונית מהעולם 1009 00:48:53,760 --> 00:48:54,980 הגדרת n קבוע? 1010 00:48:54,980 --> 00:48:59,036 אז אתה אומר שאתה יכול לעשות, מספר int = 5? 1011 00:48:59,036 --> 00:49:01,300 >> תלמיד: האם יש להם עיצורים ב-C או לא? 1012 00:49:01,300 --> 00:49:02,720 >> ג'ייסון הירשהורן: או const - בשווה. 1013 00:49:02,720 --> 00:49:04,275 אז אתה אומר שרק משתנה גלובלי? 1014 00:49:04,275 --> 00:49:04,990 >> סטודנט: כן. 1015 00:49:04,990 --> 00:49:08,670 >> ג'ייסון הירשהורן: אז סגנונית, אין בהכרח זכות אחת 1016 00:49:08,670 --> 00:49:12,050 ענה, אבל שני אלה הם טובים יותר מסתם לזרוק אקראי אלה 1017 00:49:12,050 --> 00:49:12,960 מספרים ברחבי הקוד שלך. 1018 00:49:12,960 --> 00:49:14,650 אנו קוראים להם מספרי קסם. 1019 00:49:14,650 --> 00:49:16,450 כשאני מסתכל על הקוד שלך, או כאשר מישהו קורא דרכו, הם 1020 00:49:16,450 --> 00:49:18,790 לא רוצים סתם המספרים האקראיים הללו שאינם הגיוני. 1021 00:49:18,790 --> 00:49:22,420 אפילו את המספר 26, אשר בדרך כלל הוא מספר האותיות באלף הבית, 1022 00:49:22,420 --> 00:49:28,870 עדיף להגדיר את א"ב עליון ולשמור את המספר 26 במחרוזת ש, 1023 00:49:28,870 --> 00:49:29,550 אם זה נשמע הגיוני. 1024 00:49:29,550 --> 00:49:33,210 >> או על בעיה מוגדרת אחת, ולא - שוב, אנחנו לא מדברים על זה ב 1025 00:49:33,210 --> 00:49:37,020 הזמן, אבל במקום סתם לזרוק בכל מקום 25 או 10, אתה יכול 1026 00:49:37,020 --> 00:49:41,860 לשמור את המספר 25 כרבע או כ10 אגורה, וזה עושה את זה יותר קל לי 1027 00:49:41,860 --> 00:49:44,140 מי שקורא את הקוד שלך לדרך להבין למה אתה בחרת את המספר הזה. 1028 00:49:44,140 --> 00:49:46,540 וגם בשבילך, אם תרצה אי פעם לעדכן את הקוד שלך, זה עושה את זה קצת 1029 00:49:46,540 --> 00:49:47,290 חזק יותר. 1030 00:49:47,290 --> 00:49:48,070 כן? 1031 00:49:48,070 --> 00:49:50,830 >> סטודנט: האם קוד זה גם הולך כדי להיות זמין עבורנו אחרי? 1032 00:49:50,830 --> 00:49:52,453 >> ג'ייסון הירשהורן: כל הקודים האלה שיש לנו בכתב בצירוף הם 1033 00:49:52,453 --> 00:49:54,620 הולכים יישלח אליך החבר 'ה וזמינה. 1034 00:49:54,620 --> 00:49:55,740 כן. 1035 00:49:55,740 --> 00:49:58,040 אז תשאל את המשתמש במשך חמישה שמות. 1036 00:49:58,040 --> 00:50:00,280 באופן אקראי לבחור ולהדפיס אחד השמות. 1037 00:50:00,280 --> 00:50:00,940 מי עשה את הקו הזה? 1038 00:50:00,940 --> 00:50:02,230 זהו קו trickiest כאן. 1039 00:50:02,230 --> 00:50:02,450 מצטער, טום. 1040 00:50:02,450 --> 00:50:05,510 עשית עבודה ממש טובה, אבל זה קצת יותר מסובך. 1041 00:50:05,510 --> 00:50:06,600 מרקוס, קדימה. 1042 00:50:06,600 --> 00:50:10,180 >> תלמיד: ובכן ראשית, אתה הולך צריך לכלול stdlib.h וtime.h. 1043 00:50:10,180 --> 00:50:13,200 >> ג'ייסון הירשהורן: אז אתה אומר ב העליון, כולל שתי ספריות נוספות. 1044 00:50:13,200 --> 00:50:18,830 אתה רוצה שאני כולל S-T-D-L-I-B נקודת H, ספרייה רגילה, ומה 1045 00:50:18,830 --> 00:50:19,760 היה שני? 1046 00:50:19,760 --> 00:50:21,010 >> תלמיד: Time.h. 1047 00:50:21,010 --> 00:50:25,130 1048 00:50:25,130 --> 00:50:27,840 >> ג'ייסון הירשהורן: # כולל time.h. 1049 00:50:27,840 --> 00:50:29,470 אז אלו הם שתי ספריות נוספות. 1050 00:50:29,470 --> 00:50:31,790 אני מניח שעכשיו אנחנו הולכים להיות באמצעות פונקציות הכלולות באלה 1051 00:50:31,790 --> 00:50:34,240 שתיים, וזו הסיבה שאתה צריך לכלול אותם? 1052 00:50:34,240 --> 00:50:36,980 >> תלמיד: אז, קודם אתה הולך רוצה לכתוב srand. 1053 00:50:36,980 --> 00:50:38,770 >> ג'ייסון הירשהורן: srand. 1054 00:50:38,770 --> 00:50:42,070 >> תלמיד: (זמן (0) 1055 00:50:42,070 --> 00:50:42,700 >> ג'ייסון הירשהורן: מצטער. 1056 00:50:42,700 --> 00:50:45,580 Srand (זמן ( 1057 00:50:45,580 --> 00:50:46,890 >> תלמיד: 0. 1058 00:50:46,890 --> 00:50:47,230 >> ג'ייסון הירשהורן: 0. 1059 00:50:47,230 --> 00:50:49,990 >> תלמיד:)), פסיק. 1060 00:50:49,990 --> 00:50:51,320 >> ג'ייסון הירשהורן: עוד paren הסגור? 1061 00:50:51,320 --> 00:50:51,650 פסיק. 1062 00:50:51,650 --> 00:50:53,610 אני הולך רק כדי להחליף אפס עם NULL. 1063 00:50:53,610 --> 00:50:55,980 זה יעשה על אותו הדבר, אבל בדרך כלל, אתה תראה NULL, אשר 1064 00:50:55,980 --> 00:50:57,720 נדבר על זה קו בשני. 1065 00:50:57,720 --> 00:50:58,580 >> תלמיד: בחינה סגנונית טוב יותר? 1066 00:50:58,580 --> 00:51:02,240 >> ג'ייסון הירשהורן: באופן כללי, אנשים NULL צודק, אבל אותו דבר. 1067 00:51:02,240 --> 00:51:05,010 >> תלמיד: ואז שם int. 1068 00:51:05,010 --> 00:51:06,490 >> ג'ייסון הירשהורן: שם Int. 1069 00:51:06,490 --> 00:51:07,280 >> תלמיד: = 1070 00:51:07,280 --> 00:51:07,780 >> ג'ייסון הירשהורן: = 1071 00:51:07,780 --> 00:51:08,580 >> תלמיד: ראנד. 1072 00:51:08,580 --> 00:51:09,340 >> ג'ייסון הירשהורן: ראנד. 1073 00:51:09,340 --> 00:51:10,420 >> תלמיד: () 1074 00:51:10,420 --> 00:51:11,500 >> ג'ייסון הירשהורן: () 1075 00:51:11,500 --> 00:51:12,850 >> תלמיד: מספר מודולו. 1076 00:51:12,850 --> 00:51:14,310 >> ג'ייסון הירשהורן: מה זה מודולו? 1077 00:51:14,310 --> 00:51:14,970 האופי? 1078 00:51:14,970 --> 00:51:16,000 אופי אחוזים? 1079 00:51:16,000 --> 00:51:17,790 >> תלמיד: אופי אחוזים. 1080 00:51:17,790 --> 00:51:19,521 מודולו מספר שהוגדרת למעלה. 1081 00:51:19,521 --> 00:51:22,030 >> ג'ייסון הירשהורן: מספר מודולו. 1082 00:51:22,030 --> 00:51:24,052 >> תלמיד: ואז פסיק. 1083 00:51:24,052 --> 00:51:24,660 >> ג'ייסון הירשהורן: פסיק. 1084 00:51:24,660 --> 00:51:27,820 >> סטודנט: ולאחר מכן קו חדש, printf. 1085 00:51:27,820 --> 00:51:28,460 >> ג'ייסון הירשהורן: printf. 1086 00:51:28,460 --> 00:51:29,730 >> תלמיד: ( 1087 00:51:29,730 --> 00:51:30,620 >> ג'ייסון הירשהורן: ( 1088 00:51:30,620 --> 00:51:31,650 >> תלמיד: " 1089 00:51:31,650 --> 00:51:32,630 >> ג'ייסון הירשהורן: " 1090 00:51:32,630 --> 00:51:35,320 >> תלמיד:% s / n 1091 00:51:35,320 --> 00:51:37,220 >> ג'ייסון הירשהורן:% s / n 1092 00:51:37,220 --> 00:51:38,420 >> תלמיד: " 1093 00:51:38,420 --> 00:51:40,640 >> ג'ייסון הירשהורן:% s / n " 1094 00:51:40,640 --> 00:51:43,540 >> תלמיד: פסיק, שמות חלל. 1095 00:51:43,540 --> 00:51:44,350 >> ג'ייסון הירשהורן: שטח - 1096 00:51:44,350 --> 00:51:46,300 >> תלמיד: הו, אני מניח, מה לא שאנחנו קוראים לזה כאן? 1097 00:51:46,300 --> 00:51:48,640 >> ג'ייסון הירשהורן: אנחנו קראנו לזה בשמות. 1098 00:51:48,640 --> 00:51:52,360 >> תלמיד: סוגר פתוח, שם. 1099 00:51:52,360 --> 00:51:55,090 >> ג'ייסון הירשהורן: פתיחת סוגריים, שם. 1100 00:51:55,090 --> 00:51:55,850 >> תלמיד: סוגר סגור. 1101 00:51:55,850 --> 00:51:56,490 >> ג'ייסון הירשהורן: סוגר סגור. 1102 00:51:56,490 --> 00:51:57,460 >> תלמיד:) 1103 00:51:57,460 --> 00:51:58,800 >> ג'ייסון הירשהורן:) 1104 00:51:58,800 --> 00:51:59,440 >> תלמיד: פסיק. 1105 00:51:59,440 --> 00:52:00,410 >> ג'ייסון הירשהורן: פסיק. 1106 00:52:00,410 --> 00:52:01,500 אוקיי, בואו להציל. 1107 00:52:01,500 --> 00:52:04,410 בואו נעשה את הקוד הזה. 1108 00:52:04,410 --> 00:52:06,365 תלמידים. 1109 00:52:06,365 --> 00:52:07,100 בואו להפעיל את הקוד הזה. 1110 00:52:07,100 --> 00:52:08,480 תלמידים. 1111 00:52:08,480 --> 00:52:11,630 לא. / סטודנט. . / סטודנטים. 1112 00:52:11,630 --> 00:52:12,870 שם אחד. 1113 00:52:12,870 --> 00:52:15,490 אנחנו נגיד דוד. 1114 00:52:15,490 --> 00:52:18,070 שם שתיים, RJ. 1115 00:52:18,070 --> 00:52:20,561 שם שלושה, רוב. 1116 00:52:20,561 --> 00:52:22,490 שם ארבעה, לוקאס. 1117 00:52:22,490 --> 00:52:26,060 שם חמש, יוסף. 1118 00:52:26,060 --> 00:52:28,850 ואז זה מדפיס את יוסף שוב. 1119 00:52:28,850 --> 00:52:31,730 >> אז תן לי להפעיל את זה שוב. 1120 00:52:31,730 --> 00:52:32,460 תן לי לעשות את אותם שמות. 1121 00:52:32,460 --> 00:52:39,760 דוד, RJ, רוב, לוקאס, יוסף. 1122 00:52:39,760 --> 00:52:41,070 וזה נתן לי דוד בזמן זה. 1123 00:52:41,070 --> 00:52:43,030 אז עשיתי את אותו דבר, אבל זה נתן לי לי דבר אחר, וזה 1124 00:52:43,030 --> 00:52:45,410 כי, כמובן, שאנחנו מבקשים לשם אקראי. 1125 00:52:45,410 --> 00:52:50,950 אז אני חושב, מבוסס על הנחה שלי משוטט מסביב לחדר, שרוב האנשים 1126 00:52:50,950 --> 00:52:55,960 כנראה קיבל את החלק הראשון נכון, הקמת מערך ושלאחר מכן מקבל את 1127 00:52:55,960 --> 00:52:56,430 את כל השמות. 1128 00:52:56,430 --> 00:52:59,320 אני מדבר על קווי 10 עד 16. 1129 00:52:59,320 --> 00:53:02,150 אבל שורות 18 עד 21 הן כנראה כמה דברים שלא ראית קודם, 1130 00:53:02,150 --> 00:53:03,750 אז בואו לעבור אותם. 1131 00:53:03,750 --> 00:53:10,390 >> קו זה, NULL זמן srand הוא למעשה - 1132 00:53:10,390 --> 00:53:14,300 מצטער, בואו נדלג למטה קו, rand (). 1133 00:53:14,300 --> 00:53:17,320 זה נותן לך מספר אקראי, שלם אקראי. 1134 00:53:17,320 --> 00:53:19,630 אם אתה מכה אדם רנד, אשר הרבה שעשית - 1135 00:53:19,630 --> 00:53:21,530 M-N-מרחב R--N-D - 1136 00:53:21,530 --> 00:53:25,910 במסוף כזה, M--N שטח R--N-D, על Enter. 1137 00:53:25,910 --> 00:53:30,490 היית לבוא למדריך ול יהיה מסוגל לקרוא שראנד 1138 00:53:30,490 --> 00:53:34,260 בתים אקראיים פסאודו num יציאות פיקוד לאחר זריעת המספר האקראי 1139 00:53:34,260 --> 00:53:35,510 גנרטור פעם אחת. 1140 00:53:35,510 --> 00:53:38,450 1141 00:53:38,450 --> 00:53:39,700 >> אז זה תיאור. 1142 00:53:39,700 --> 00:53:43,860 1143 00:53:43,860 --> 00:53:46,800 זה מה שעושה ראנד, נותן אתה מספר אקראי כאשר 1144 00:53:46,800 --> 00:53:48,610 אתה קורא לפונקציה הזאת. 1145 00:53:48,610 --> 00:53:53,140 למרבה הצער, זה לא באמת אקראי כי אם אתה פשוט קורא אקראי 1146 00:53:53,140 --> 00:53:55,970 מבלי להיכנס לזה קצת זרעים, חלקם נקודת ההתחלה, זה תמיד יהיה לבחור 1147 00:53:55,970 --> 00:53:59,100 אותו אחד, והוא משתמש בנוסחה כדי לקבוע את הבאה. 1148 00:53:59,100 --> 00:54:01,730 אז אם אתה קורא לראנד, זה יהיה פשוט לתת לך את אותו דבר. 1149 00:54:01,730 --> 00:54:02,610 זה יהיה מאוד צפוי. 1150 00:54:02,610 --> 00:54:03,790 זה באמת לא יהיה אקראי. 1151 00:54:03,790 --> 00:54:09,610 >> אז מה שאנחנו צריכים לעשות, למרקוס של הוראות לי, היו ראנד הזרעים 1152 00:54:09,610 --> 00:54:13,810 עם משהו אחר, וזה מה פונקצית srand עושה. 1153 00:54:13,810 --> 00:54:18,055 זה זרעי rand עם משהו קצת יותר אקראי מאותו הדבר, ו 1154 00:54:18,055 --> 00:54:23,360 הוא זריעה אותו עם NULL הזמן, אשר כלומר, רק על ידי אמנה, הנוכחי 1155 00:54:23,360 --> 00:54:24,650 זמן בשניות. 1156 00:54:24,650 --> 00:54:29,790 >> אז אתה יוצא מנקודת הנחה שכולם לא הולך להפעיל את הקוד במדויק 1157 00:54:29,790 --> 00:54:33,620 אותה שנייה, כך שזה הימור בטוח כי NULL הזמן הוא הולך להיות שונה 1158 00:54:33,620 --> 00:54:35,250 בכל פעם שהקוד הזה הוא לרוץ. 1159 00:54:35,250 --> 00:54:39,020 הימור בטוח שכך, ראנד הזרע srand עם משהו שונה בכל 1160 00:54:39,020 --> 00:54:39,990 פעם אחת. 1161 00:54:39,990 --> 00:54:44,110 אז על ידי אמנה, כאשר אנחנו רוצים מספר אקראי, אנחנו כותבים את הקו הזה, 1162 00:54:44,110 --> 00:54:50,540 NULL הזמן srand, כדי לתת לנו הרבה יותר זרע אקראי יותר, ולאחר מכן אנחנו רצים 1163 00:54:50,540 --> 00:54:52,080 ראנד, אשר נותן לנו מספר אקראי. 1164 00:54:52,080 --> 00:54:52,840 כן? 1165 00:54:52,840 --> 00:54:54,140 >> תלמיד: האם אתה יכול לומר מה אתה מתכוון בזרע? 1166 00:54:54,140 --> 00:54:55,630 >> ג'ייסון הירשהורן: זרעים כמו ב-- 1167 00:54:55,630 --> 00:54:58,730 כך ראנד הולך לקטוף כמה מספר וזה הולך להשתמש בחלק 1168 00:54:58,730 --> 00:55:00,060 נוסחה כדי להגיע לשם. 1169 00:55:00,060 --> 00:55:03,250 אז זה הולך להתחיל עם משהו ולאחר מכן להפוך אותו למשהו מבוסס 1170 00:55:03,250 --> 00:55:03,890 הנחה של נוסחה. 1171 00:55:03,890 --> 00:55:06,090 אם אתה תמיד נותן לו את אותו דבר, זה תמיד הולך להפוך אותו ל 1172 00:55:06,090 --> 00:55:06,790 אותו דבר. 1173 00:55:06,790 --> 00:55:08,450 אז הדבר הראשון שאתה נותן לו הוא הזרע. 1174 00:55:08,450 --> 00:55:10,880 אז אתה רוצה לתת לו משהו אחר כדי להתחיל עם, ואז זה 1175 00:55:10,880 --> 00:55:12,610 יהפוך אותו למשהו אחר. 1176 00:55:12,610 --> 00:55:15,840 >> ולבסוף, קו 20, % זה נקרא 1177 00:55:15,840 --> 00:55:17,470 מודולו, וזה מבלבל. 1178 00:55:17,470 --> 00:55:19,850 זה משהו שהוא קצת שונה כאן, כי אתה לא באמת 1179 00:55:19,850 --> 00:55:22,240 יש במתמטיקה בחיים אמיתית. 1180 00:55:22,240 --> 00:55:27,430 אבל בעצם, כשאתה לוקח את ענקית מספר ואתה מחלק ב-C, מה 1181 00:55:27,430 --> 00:55:29,482 קורה לשאר? 1182 00:55:29,482 --> 00:55:30,510 >> תלמיד: זה נהיה קטום. 1183 00:55:30,510 --> 00:55:31,220 >> ג'ייסון הירשהורן: זה נהיה קטום. 1184 00:55:31,220 --> 00:55:35,200 אז 20 חלקי 3 הוא מה? 1185 00:55:35,200 --> 00:55:37,950 האם זה מה שיחזיר ל לך, 20 חלקי 3. 1186 00:55:37,950 --> 00:55:39,260 מצטער, 10 מתחלק ב 3. 1187 00:55:39,260 --> 00:55:41,062 האם זה מה שיחזור אליך? 1188 00:55:41,062 --> 00:55:41,540 >> תלמיד: [לא ברור]. 1189 00:55:41,540 --> 00:55:45,170 >> ג'ייסון הירשהורן: 10 חלקי 3 רק 3, לא חוזר 3 היתר 1. 1190 00:55:45,170 --> 00:55:51,490 אז מה 10 מחזירה מודולו 3 רק השארית, 1. 1191 00:55:51,490 --> 00:55:54,020 אז אם אתה רוצה לדעת מה חילק 10 על ידי 3 בעצם היו, שהיית 1192 00:55:54,020 --> 00:55:58,950 לעשות 10 חלקי 3, היית מקבל 3 שלך, ואז היית עושה 10 מודולו 3, ו 1193 00:55:58,950 --> 00:55:59,860 היית מקבל 1. 1194 00:55:59,860 --> 00:56:04,630 אז היית מבין שחלקו 10 על ידי 3 היא 3, שארית 1. 1195 00:56:04,630 --> 00:56:07,990 >> ובתחום הזה, יכול להיות ראנד כל מספר שלם, בעצם. 1196 00:56:07,990 --> 00:56:12,660 אז מודולו הוא אומר, לחלק אותו על ידי מספר, שהוא במקרה זה 5. 1197 00:56:12,660 --> 00:56:16,420 ואם אי פעם אתה מחלק על ידי מספר, תמיד יש מספר שלם להיות פחות מ 1198 00:56:16,420 --> 00:56:17,590 את המספר הזה. 1199 00:56:17,590 --> 00:56:22,200 אז אם אתה על ידי חלוקת מספר 5, השאר תמיד הולך להיות 1200 00:56:22,200 --> 00:56:23,396 אפס עד ארבע. 1201 00:56:23,396 --> 00:56:25,520 זה בדיוק אופן שבו המתמטיקה תסתדר. 1202 00:56:25,520 --> 00:56:29,700 >> אז מספר גדול moduloed על ידי קטנה המספר תמיד יחזור 1203 00:56:29,700 --> 00:56:33,530 שארית ותמיד להחזיר חלק מספר זה נמוך מהמספר שאתה 1204 00:56:33,530 --> 00:56:34,693 מחולק על ידי. 1205 00:56:34,693 --> 00:56:37,920 האם יש למישהו שאלות על מודולו, כי זה יבוא במאוד, 1206 00:56:37,920 --> 00:56:41,450 שימושי מאוד, ולכן אני רוצה לוודא כולם מבין את זה? 1207 00:56:41,450 --> 00:56:43,710 מגניב. 1208 00:56:43,710 --> 00:56:46,000 וראינו שהתכנית הזו עבדה. 1209 00:56:46,000 --> 00:56:50,280 בסדר, ממשיך הלאה. 1210 00:56:50,280 --> 00:56:52,970 >> אז הבא, אנחנו הולכים להיכנס פונקציות, ואנחנו הולכים ללכת 1211 00:56:52,970 --> 00:56:55,580 דרך שאר החומר הזה די מהר, כי אני רוצה להגיע ל 1212 00:56:55,580 --> 00:56:57,150 טיעוני שורת הפקודה. 1213 00:56:57,150 --> 00:57:00,330 אז פונקציות הן בעצם, כפי שראית, קופסות שחורות. 1214 00:57:00,330 --> 00:57:04,290 הם לוקחים את הדברים בפרמטרים הנקראים, הם עושים להם משהו, או 1215 00:57:04,290 --> 00:57:06,990 לשנות אותם או ליצור כמה תופעות לוואי, ולבסוף, הם ירקו 1216 00:57:06,990 --> 00:57:09,530 משהו, שהוא ערך ההחזרה. 1217 00:57:09,530 --> 00:57:12,495 מישהו יכול לתת לי סיבה אחת מדוע היינו להשתמש בפונקציות? 1218 00:57:12,495 --> 00:57:15,870 1219 00:57:15,870 --> 00:57:16,360 אף אחד? 1220 00:57:16,360 --> 00:57:19,360 אחת סיבות לכך היינו שימוש בפונקציות? 1221 00:57:19,360 --> 00:57:21,280 אף אחד? 1222 00:57:21,280 --> 00:57:22,700 ראיתי שתי ידי. 1223 00:57:22,700 --> 00:57:23,590 מה סיבה טובה? 1224 00:57:23,590 --> 00:57:24,930 מרקוס? 1225 00:57:24,930 --> 00:57:27,730 >> תלמיד: אם יש לך לקרוא אותו נתח של קוד מספר רב של פעמים. 1226 00:57:27,730 --> 00:57:29,150 >> ג'ייסון הירשהורן: בסדר, אם אתה צריך לקרוא לאותו נתח של 1227 00:57:29,150 --> 00:57:30,040 קוד מספר רב של פעמים. 1228 00:57:30,040 --> 00:57:32,470 ג'ף, האם יש לך מסיבה אחרת? 1229 00:57:32,470 --> 00:57:34,230 >> סטודנטים: רק כך ש אתה יכול קוד פחות. 1230 00:57:34,230 --> 00:57:35,070 >> ג'ייסון הירשהורן: אתה יכול קוד פחות. 1231 00:57:35,070 --> 00:57:35,320 נכון. 1232 00:57:35,320 --> 00:57:38,720 אם אתה רוצה לעשות משהו הרבה - 1233 00:57:38,720 --> 00:57:41,720 בקוד הקודם, אני יכול לי כתב לקבל מחרוזת חמש פעמים, אבל 1234 00:57:41,720 --> 00:57:44,620 ללולאה גורמת לזה להיראות יותר נחמד ו אתה צריך לכתוב קוד פחות. 1235 00:57:44,620 --> 00:57:45,760 פונקציות הן רעיון דומה. 1236 00:57:45,760 --> 00:57:48,720 אם אני רוצה לעשות את אותו הדבר הרבה, להעביר אותו לפונקציה וקורא לזה 1237 00:57:48,720 --> 00:57:49,610 לתפקד בכל פעם. 1238 00:57:49,610 --> 00:57:51,190 שיעשה את הדבר הזה בשבילך. 1239 00:57:51,190 --> 00:57:53,740 זה סיבה מצוינת כדי להשתמש בפונקציות. 1240 00:57:53,740 --> 00:57:54,870 >> אז האנטומיה של פונקציה. 1241 00:57:54,870 --> 00:57:56,670 פונקציה בדרך נראה ככה. 1242 00:57:56,670 --> 00:57:59,280 זה יתחיל עם סוג התמורה, אז תקבל את השם. 1243 00:57:59,280 --> 00:58:02,935 זה ייקח את הטיעונים, אחרת המכונה את הפרמטרים, ובתוך 1244 00:58:02,935 --> 00:58:05,290 הסוגריים המסולסלים האלה, אתה לכתוב את הקוד שלך. 1245 00:58:05,290 --> 00:58:07,150 >> ראינו פונקציה אחת הרבה. 1246 00:58:07,150 --> 00:58:09,160 זה ראשי. 1247 00:58:09,160 --> 00:58:13,820 הנה עיקרי על גבי שהיה לי קודם לכן אנטומיה. 1248 00:58:13,820 --> 00:58:15,525 מה משמעות של int ממש כאן מסמל? 1249 00:58:15,525 --> 00:58:18,534 1250 00:58:18,534 --> 00:58:19,450 מה משמעות של int אומר? 1251 00:58:19,450 --> 00:58:21,026 כשאני כותב int ראשי (חלל). 1252 00:58:21,026 --> 00:58:21,740 >> תלמיד: סוג חזרה? 1253 00:58:21,740 --> 00:58:22,350 >> ג'ייסון הירשהורן: סליחה? 1254 00:58:22,350 --> 00:58:23,170 >> תלמיד: סוג התמורה. 1255 00:58:23,170 --> 00:58:24,820 >> ג'ייסון הירשהורן: INT הוא לחזור סוג, בדיוק כמו שצריך. 1256 00:58:24,820 --> 00:58:25,870 עיקרי מחזיר int. 1257 00:58:25,870 --> 00:58:28,678 מהו עיקרי? 1258 00:58:28,678 --> 00:58:29,510 >> תלמיד: שם פונקציה. 1259 00:58:29,510 --> 00:58:30,800 >> ג'ייסון הירשהורן: הראשי הוא שם של הפונקציה. 1260 00:58:30,800 --> 00:58:31,510 בדיוק נכון. 1261 00:58:31,510 --> 00:58:31,840 ומבוטל? 1262 00:58:31,840 --> 00:58:33,190 מהו בתוך הסוגריים ריקים? 1263 00:58:33,190 --> 00:58:36,650 1264 00:58:36,650 --> 00:58:42,030 >> תלמיד: זה לא לוקח כל ערך חיצוני. 1265 00:58:42,030 --> 00:58:42,930 >> ג'ייסון הירשהורן: חלל אז - 1266 00:58:42,930 --> 00:58:43,240 נכון. 1267 00:58:43,240 --> 00:58:45,940 בתוך הסוגריים, אנחנו שמים את פרמטרים או את הטענות 1268 00:58:45,940 --> 00:58:48,480 הפונקציה לוקחת, מה שקורה בתוך הקופסה השחורה. 1269 00:58:48,480 --> 00:58:50,760 כשאתה כותב הריק, שאתה אומר זה לוקח שום דבר פנימה 1270 00:58:50,760 --> 00:58:53,802 חלל מרכזי אז int פירושו העיקרי של לא לוקח שום דבר פנימה 1271 00:58:53,802 --> 00:58:56,950 >> בתוך הסוגריים המסולסלים, יש לנו כמה קוד, ולאחר מכן אנו רואים בסוף 1272 00:58:56,950 --> 00:58:57,640 להחזיר אפס. 1273 00:58:57,640 --> 00:59:01,220 מה משמעות של חזרה אפס? 1274 00:59:01,220 --> 00:59:02,470 ובכן, אנחנו מדברים על סוג ההחזרה. 1275 00:59:02,470 --> 00:59:03,780 עיקרי צריך להחזיר int. 1276 00:59:03,780 --> 00:59:04,960 זה מה שעושה את הקו הזה. 1277 00:59:04,960 --> 00:59:07,330 זה מחזיר int, אפס. 1278 00:59:07,330 --> 00:59:13,600 >> כמובן, שלא ראו את זה הרבה משום שבתכנות שאנחנו עושים עם 1279 00:59:13,600 --> 00:59:16,070 המכונות שאנחנו עושים ואת מהדרים אנו משתמשים בימינו, אתה 1280 00:59:16,070 --> 00:59:16,990 לא צריך את זה קו. 1281 00:59:16,990 --> 00:59:20,070 העיקרי הוא מיוחד מספיק שהוא יודע כאשר אתה מגיע לסוף ראשי, רק 1282 00:59:20,070 --> 00:59:22,060 תחזיר אפס אם הכל יתנהל כשורה. 1283 00:59:22,060 --> 00:59:25,560 למעשה, אם משהו לא הולך טוב, לעתים קרובות עיקרי להחזיר שונה 1284 00:59:25,560 --> 00:59:28,500 מספר מסמל משהו ש השתבש עם התכנית שלך. 1285 00:59:28,500 --> 00:59:32,470 >> אז בדרך כלל כשאתה רואה את קוד, אתה לא כותב תשואה אפס, אבל זה טוב 1286 00:59:32,470 --> 00:59:34,770 לדעת שזה קורה מאחורי הקלעים כי בכל פעם שאתה כותב 1287 00:59:34,770 --> 00:59:36,370 עוד סוג של פונקציה, אתה הולך צריך 1288 00:59:36,370 --> 00:59:37,400 כולל קו תמורה. 1289 00:59:37,400 --> 00:59:39,710 אם אתה אומר אני הולך להחזיר int, שיש לך 1290 00:59:39,710 --> 00:59:41,250 לכתוב להחזיר משהו. 1291 00:59:41,250 --> 00:59:45,160 אם אתה אומר כאן בחלל התחלה, חלל עיקרי בטל, 1292 00:59:45,160 --> 00:59:48,670 דוגמה, אז זה לא חוזר שום דבר - לא אומר כלום החלל - 1293 00:59:48,670 --> 00:59:50,320 כך שאתה לא צריך את קו שחזרה. 1294 00:59:50,320 --> 00:59:53,610 אבל אי פעם שאתה כותב משהו שהוא לא לבטל לסוג התמורה, אתה צריך 1295 00:59:53,610 --> 00:59:55,950 שורה שאומרת לך וחזרה צריך לשים שם משהו 1296 00:59:55,950 --> 00:59:57,650 התואם את הסוג. 1297 00:59:57,650 --> 00:59:58,900 שאלות בנוגע לזה? 1298 00:59:58,900 --> 01:00:03,110 1299 01:00:03,110 --> 01:00:04,680 מתוק. 1300 01:00:04,680 --> 01:00:05,930 >> היקפה. 1301 01:00:05,930 --> 01:00:07,360 זה משהו שיש לנו נגע גם כן. 1302 01:00:07,360 --> 01:00:10,720 כל משתנה, כפי שאנו יודעים, יש היקף מסוים, וזה בעצם 1303 01:00:10,720 --> 01:00:14,160 מדבר על בו משתנה עשויים או לא עשוי להיות מופנה. 1304 01:00:14,160 --> 01:00:16,310 ואני רוצה לומר מה קורה בסוגריים מסולסלים נשאר 1305 01:00:16,310 --> 01:00:18,000 בתוך הסוגריים המסולסלים. 1306 01:00:18,000 --> 01:00:21,490 כך לדוגמה, אם אנו מסתכלים על הקוד הזה, אנחנו מגדירים משתנים גלובלי 1307 01:00:21,490 --> 01:00:24,510 מחוץ לראשי, int, עד כאן בחלק העליון. 1308 01:00:24,510 --> 01:00:27,380 אנחנו קוראים לעוד int ראשי בפנים. 1309 01:00:27,380 --> 01:00:29,760 יש לנו כמה סוגריים מסולסלים יותר, ו אנחנו קוראים int אחר. 1310 01:00:29,760 --> 01:00:31,690 >> יש לנו שלוש של בקוד. 1311 01:00:31,690 --> 01:00:32,550 אלה הם לא אותו דבר. 1312 01:00:32,550 --> 01:00:34,880 יצרתי שלושה משתנים שונים. 1313 01:00:34,880 --> 01:00:39,370 ואז בתוך אלה מתולתל הפנימיים פלטות, אני אומר = 4. 1314 01:00:39,370 --> 01:00:44,130 אשר הוא שדבר עליו, הראשון, השני, 1315 01:00:44,130 --> 01:00:47,045 או שליש? 1316 01:00:47,045 --> 01:00:47,920 >> תלמיד: שליש. 1317 01:00:47,920 --> 01:00:49,320 >> ג'ייסון הירשהורן: הוא מדבר על שליש. 1318 01:00:49,320 --> 01:00:52,850 כל אלה בעצם יכולים להיות דיבר על זה בבפרט 1319 01:00:52,850 --> 01:00:58,660 למשל משום שהיקפם הכל הולך לסוגריים המסולסלים הכמוסים ביותר של אלה. 1320 01:00:58,660 --> 01:01:02,360 עם זאת, כאשר אתה קורא את דבריו שם, יש משהו שנקרא מסתתר. 1321 01:01:02,360 --> 01:01:09,670 אז אתה רק להתמודד עם או לתקן או להשתמש המשתנה האחרון, או אחד 1322 01:01:09,670 --> 01:01:11,090 הכי קרוב אליך. 1323 01:01:11,090 --> 01:01:14,760 אז פה, בתוכנו, בשליש הזה הוא קרוב ביותר כדי שהשורה, = 4, כך שזה 1324 01:01:14,760 --> 01:01:16,550 משפיע על שליש. 1325 01:01:16,550 --> 01:01:19,890 והשורה האחרונה, = 2, אשר הוא שדבר עליו, ראשון, שני, 1326 01:01:19,890 --> 01:01:20,805 או שלישי? 1327 01:01:20,805 --> 01:01:22,530 >> תלמיד: שני. 1328 01:01:22,530 --> 01:01:24,430 >> ג'ייסון הירשהורן: הוא מדבר על השנייה. 1329 01:01:24,430 --> 01:01:27,970 כמובן, השלישי היא קרוב ביותר ל זה בקוד, אבל השלישי 1330 01:01:27,970 --> 01:01:30,200 לא קיימת מחוץ אלה סוגריים מסולסלים. 1331 01:01:30,200 --> 01:01:32,650 ברגע שאתה תגיע לזה סגור מתולתל סד, זה כמו שזה נעלם, 1332 01:01:32,650 --> 01:01:33,570 למעשה. 1333 01:01:33,570 --> 01:01:36,150 אז רק שתיים שנותרו לך הם אלה שני ראשונים, וכמובן, עכשיו 1334 01:01:36,150 --> 01:01:37,960 זה הכי קרוב לשנייה אחת. 1335 01:01:37,960 --> 01:01:39,410 >> אז זה דבר טוב זוכר על היקפה. 1336 01:01:39,410 --> 01:01:42,900 לדוגמה, אני בטוח שאתה כבר נתקל זה בזמן שעושה לולאה. 1337 01:01:42,900 --> 01:01:46,680 אם אתה לאתחל את המשתנה בתוך אל תוך לולאה ואז אתה מנסה 1338 01:01:46,680 --> 01:01:50,360 לגשת אליו מבחוץ, אתה כנראה קיבל קצת כמו אזהרה, זה 1339 01:01:50,360 --> 01:01:51,680 משתנה אינו קיים. 1340 01:01:51,680 --> 01:01:54,370 זה בגלל רעיון ההיקף, שדברים קיימים רק 1341 01:01:54,370 --> 01:01:55,320 בתוך הסוגריים המסולסלים האלה. 1342 01:01:55,320 --> 01:01:59,320 סוגריים מסולסלים הם כמו חיבוק ענק ש אתה נותן לקוד שלך, זה דבר אחר 1343 01:01:59,320 --> 01:02:01,380 דרך לחשוב על זה. 1344 01:02:01,380 --> 01:02:05,280 >> אז זו פונקציה אחרת, משהו לחבר 'ה לקוד, hellofunction.c. 1345 01:02:05,280 --> 01:02:08,240 אנחנו הולכים לדלג כי לעת עתה, אבל זה משהו שאני ממליץ לך 1346 01:02:08,240 --> 01:02:09,740 לתרגל בעצמך. 1347 01:02:09,740 --> 01:02:12,510 כתוב תכנית שבשיחות עיקריות פונקציה נוספת שמדפיסה 1348 01:02:12,510 --> 01:02:13,750 ברכה למשתמש. 1349 01:02:13,750 --> 01:02:17,750 זה בעצם לוקח את שלום העולם והפשטה שprintf לתוך 1350 01:02:17,750 --> 01:02:18,680 פונקציה אחרת. 1351 01:02:18,680 --> 01:02:22,360 אבל אנחנו לא הולכים לעשות את זה עכשיו משום שאין לנו כל כך הרבה זמן 1352 01:02:22,360 --> 01:02:23,350 יצא כמו שאני היה רוצה. 1353 01:02:23,350 --> 01:02:26,250 >> אז הכרזת פונקציה. 1354 01:02:26,250 --> 01:02:28,080 ראינו את זה בעבר גם כן. 1355 01:02:28,080 --> 01:02:31,180 אם אתה רוצה לכתוב פונקציה אחרת, אתה צריך ליידע את המחשב ו 1356 01:02:31,180 --> 01:02:32,600 עיקרי יודע שהוא קיים. 1357 01:02:32,600 --> 01:02:37,140 אז מה שאנחנו עושים הוא מעל עיקרי, אנו כותבים סוג התמורה, את השם, ו 1358 01:02:37,140 --> 01:02:42,970 פרמטרים, ולאחר מכן למטה ראשי, כאן למטה, אנחנו בעצם להעתיק את הקו 1359 01:02:42,970 --> 01:02:45,080 ואז לכתוב את הקוד עצמו. 1360 01:02:45,080 --> 01:02:50,990 אז ככה, אם אתה קורא לפונקציה בעיקרי בצמרת, יודע שעיקרי 1361 01:02:50,990 --> 01:02:54,650 שלום קיים, למשל, אם הייתי לקרוא לשלום, ואז זה נראה לי 1362 01:02:54,650 --> 01:02:56,710 היישום למטה. 1363 01:02:56,710 --> 01:02:59,680 מה קורה אם אני לא לכלול את זה בשורה העליונה, לבטל את שלום (חלל)? 1364 01:02:59,680 --> 01:03:03,820 1365 01:03:03,820 --> 01:03:06,560 >> אם אני לא כולל את הקו הזה ושיחות עיקריות שלום, אני 1366 01:03:06,560 --> 01:03:07,640 הולך לקבל את שגיאה. 1367 01:03:07,640 --> 01:03:10,090 אני הולך לקבל שגיאה כי המהדר אינו יודע 1368 01:03:10,090 --> 01:03:13,070 שהדבר הזה קיים. 1369 01:03:13,070 --> 01:03:16,680 זה דומה למה שאנו אל # כוללים cs50.h. 1370 01:03:16,680 --> 01:03:21,390 מה בעצם הוא עושה cs50.h היא לשים את המחרוזת שם למעלה. 1371 01:03:21,390 --> 01:03:23,120 זה לשים לקבל int שם למעלה. 1372 01:03:23,120 --> 01:03:26,570 זה לשים את כל פונקציה אלה אבות טיפוס עד לפני עיקרי, כך שכאשר 1373 01:03:26,570 --> 01:03:29,900 אתה קורא להם בראשי, עיקרי יודע שהדברים האלה קיימים. 1374 01:03:29,900 --> 01:03:31,630 זה מה הקבצים. H האלה לעשות. 1375 01:03:31,630 --> 01:03:33,850 ואז אם אתה הולך להפוך את עצמו פונקציה, אתה חייב לוודא 1376 01:03:33,850 --> 01:03:36,690 אתה שם את אב הטיפוס ששם למעלה. 1377 01:03:36,690 --> 01:03:38,380 כל שאלות על זה עד כה? 1378 01:03:38,380 --> 01:03:41,630 1379 01:03:41,630 --> 01:03:42,490 >> טיעוני שורת הפקודה. 1380 01:03:42,490 --> 01:03:44,780 זה מה שאנחנו הולכים לסיים את ב, ולאחר מכן אני מקווה שיהיו 1381 01:03:44,780 --> 01:03:46,180 לסחוט כמה pset. 1382 01:03:46,180 --> 01:03:48,700 אני לא יודע אם נהיה מסוגל לסחוט כי בבגלל הזמן, אבל 1383 01:03:48,700 --> 01:03:51,560 עם אתם שנמצאים כאן, ואם אתה חבר 'ה רוצה לומר אחריו קצת, אנחנו 1384 01:03:51,560 --> 01:03:54,290 יכול לעבור על זה מבחוץ. 1385 01:03:54,290 --> 01:03:56,020 אבל אנחנו הולכים לסיים עם טיעוני שורת הפקודה 1386 01:03:56,020 --> 01:03:58,510 במשך 15 דקות האחרונות. 1387 01:03:58,510 --> 01:03:59,930 אנחנו ער, מייקל? 1388 01:03:59,930 --> 01:04:01,180 אתה ער? 1389 01:04:01,180 --> 01:04:01,660 טוב. 1390 01:04:01,660 --> 01:04:03,760 אני לא יודע אם אתה ישן בעיניים עצומות. 1391 01:04:03,760 --> 01:04:05,800 זה יהיה מסובך. 1392 01:04:05,800 --> 01:04:07,180 >> טיעוני שורת הפקודה. 1393 01:04:07,180 --> 01:04:10,430 אלה הם דרך אחת להעביר מידע לתכנית. 1394 01:04:10,430 --> 01:04:12,780 סופו של דבר, יגיע לאחרים. 1395 01:04:12,780 --> 01:04:15,600 אבל בעצם, אנחנו הולכים לעצור כתיבת int ראשי (הריק) אם אנחנו רוצים 1396 01:04:15,600 --> 01:04:16,720 לקחת כמה טיעוני שורת הפקודה. 1397 01:04:16,720 --> 01:04:19,850 אנחנו הולכים לכתוב את הדבר הזה שם עיקרי int (int argc, 1398 01:04:19,850 --> 01:04:22,430 מחרוזת argv, בסוגריים. 1399 01:04:22,430 --> 01:04:23,710 זה מבלבל. 1400 01:04:23,710 --> 01:04:26,070 זה הרבה אותיות שאינכם נמצאים ב אנגלית האנושית, ולכן אנחנו הולכים 1401 01:04:26,070 --> 01:04:27,680 לפרוק אותם עכשיו. 1402 01:04:27,680 --> 01:04:30,450 >> Argc מייצג ספירת טיעון - 1403 01:04:30,450 --> 01:04:32,600 ושוב, כל אלה יהיו יהיה זמין באינטרנט - 1404 01:04:32,600 --> 01:04:34,280 וזה מספר הטיעונים. 1405 01:04:34,280 --> 01:04:37,940 Argv מייצג וקטור ויכוח, ו אלו הם הטיעונים עצמם. 1406 01:04:37,940 --> 01:04:38,830 זה מערך של מחרוזות. 1407 01:04:38,830 --> 01:04:40,880 למעשה ראינו מערך של מחרוזות לפני היום. 1408 01:04:40,880 --> 01:04:44,390 אנחנו יצרנו את אחת שבעברנו התכנית קדדנו. 1409 01:04:44,390 --> 01:04:45,720 >> אז הנה דוגמה. 1410 01:04:45,720 --> 01:04:50,230 אני כותב. / Ohai cs50 סעיף בשורת הפקודה שלי. 1411 01:04:50,230 --> 01:04:54,090 Argc במקרה זה שווה 3. 1412 01:04:54,090 --> 01:05:01,170 Argv סוגר 0 הוא ohai, argv סוגר 1 הוא cs50, argv סוגר 2 הוא סעיף. 1413 01:05:01,170 --> 01:05:05,160 שוב, argc הוא מספר הארגומנטים, וקצת נסיעה עד שאתה 1414 01:05:05,160 --> 01:05:08,710 קצת, אנחנו תמיד לספור את שמו של לתפקד כטענה הראשונה. 1415 01:05:08,710 --> 01:05:12,350 אז במקרה הזה, יש שלוש טיעונים, את השם של הפונקציה 1416 01:05:12,350 --> 01:05:14,590 ולאחר מכן שני אלה שהקלדתי פנימה 1417 01:05:14,590 --> 01:05:18,900 >> בשלב בא, אנחנו הולכים להציל את אלה טיעונים עצמם בargv. 1418 01:05:18,900 --> 01:05:22,690 ושוב, בדיוק כפי שראינו בעבר, שעשינו זה בתכנית האחרונה שקודדנו. 1419 01:05:22,690 --> 01:05:27,110 באפשרותך להעביר באמצעות המערך של argv ולקבל את המיתרים הללו. 1420 01:05:27,110 --> 01:05:28,830 זה בעצם מה שעשינו ב סוף התכנית האחרונה שלנו. 1421 01:05:28,830 --> 01:05:33,190 אספנו שם אקראי ולאחר מכן הלכנו ל כל מה שסוגר שמות ומודפסים 1422 01:05:33,190 --> 01:05:34,580 מתוך המחרוזת ממוקם שם. 1423 01:05:34,580 --> 01:05:39,870 1424 01:05:39,870 --> 01:05:43,670 >> על גבי רק מערך אחד, כי מחרוזות מערכים עצמם, כפי 1425 01:05:43,670 --> 01:05:46,320 דיבר עליו, אתה יכול לקבל את המערכים של מערכים, שהוא 1426 01:05:46,320 --> 01:05:48,530 בעצם מה הוא argv. 1427 01:05:48,530 --> 01:05:51,370 דרך אחת אתה יכול לחשוב על זו היא שורות ועמודות. 1428 01:05:51,370 --> 01:05:54,750 אני יכול לצייר על זה כרגע. 1429 01:05:54,750 --> 01:05:57,370 אז argv - 1430 01:05:57,370 --> 01:05:58,630 זה לא מוחק. 1431 01:05:58,630 --> 01:05:59,880 בואו לצייר תחת ohai. 1432 01:05:59,880 --> 01:06:09,320 1433 01:06:09,320 --> 01:06:12,490 >> אז אם כתבתי בסעיף cs50 ohai, אני הולך לחתוך 1434 01:06:12,490 --> 01:06:14,520 קטע לדוגמה זו. 1435 01:06:14,520 --> 01:06:29,026 אבל למעשה, רב ממדי שלי מערך, ohai cs50, 1436 01:06:29,026 --> 01:06:32,200 אנחנו הולכים לעשות את הכת. 1437 01:06:32,200 --> 01:06:34,610 אז הנה, אני יכול לגשת - 1438 01:06:34,610 --> 01:06:40,930 1439 01:06:40,930 --> 01:06:45,710 אם אני רק נותן argv מספר אחד - 1440 01:06:45,710 --> 01:06:46,390 זה לא בסדר. 1441 01:06:46,390 --> 01:06:49,020 מה לא בסדר בתרשים זה? 1442 01:06:49,020 --> 01:06:49,690 >> תלמיד: תתחיל מאפס. 1443 01:06:49,690 --> 01:06:50,350 >> ג'ייסון הירשהורן: זה צריך תתחיל עם אפס. 1444 01:06:50,350 --> 01:06:52,940 אני כנראה צריך גם לסובב אותו, אבל מאז שאני כבר צויר עליו, אני 1445 01:06:52,940 --> 01:06:54,120 הולך להשאיר אותו על שם לעת עתה. 1446 01:06:54,120 --> 01:06:55,160 אבל זה מתחיל באפס. 1447 01:06:55,160 --> 01:06:56,410 זה נכון. 1448 01:06:56,410 --> 01:06:58,980 1449 01:06:58,980 --> 01:07:00,120 אני מצטער אם זה קטן. 1450 01:07:00,120 --> 01:07:01,370 אתם יכולים לראות סוג של? 1451 01:07:01,370 --> 01:07:03,620 1452 01:07:03,620 --> 01:07:06,670 אז אם אני עושה argv 0, אני יהיה לקבל את כל ohai. 1453 01:07:06,670 --> 01:07:08,555 אם אני עושה 1 argv, אני אביא את כל cs50. 1454 01:07:08,555 --> 01:07:10,720 אם אני עושה את argv 2, אני אקבל את כל כת. 1455 01:07:10,720 --> 01:07:13,370 >> אבל עכשיו, כאמור, מחרוזות הם מערכים עצמם. 1456 01:07:13,370 --> 01:07:19,740 אז מה אני יכול לעשות הוא שאני יכול לטפל בזה כמערך רב ממדי, ואני 1457 01:07:19,740 --> 01:07:24,190 יכול לעשות משהו בנוסח 0 argv, 0, מה שנותן לי רק 1458 01:07:24,190 --> 01:07:25,400 תו 0. 1459 01:07:25,400 --> 01:07:28,760 0 argv, 1, מה שנותן לי רק שעות. 1460 01:07:28,760 --> 01:07:33,960 1 argv, 3, מה שנותן לי רק 0 זה כאן למטה בcs50. 1461 01:07:33,960 --> 01:07:37,690 >> אז בגלל שמייתרים עצמם הם מערכים, אנחנו מכניסים 1462 01:07:37,690 --> 01:07:38,540 כי במערך אחר. 1463 01:07:38,540 --> 01:07:42,850 עכשיו יש לנו מערך של מערכים, ואנחנו יכול מדד למערך הראשון שלנו ו 1464 01:07:42,850 --> 01:07:44,840 אז מדד למערך השני שלנו. 1465 01:07:44,840 --> 01:07:48,650 וכפי שהיית מצפה, אנחנו עושים את זה רק על ידי לשים את שני אלה - 1466 01:07:48,650 --> 01:07:51,760 אנחנו עושים את סוגריים המרובעים רק ממש ליד אחד את השני. 1467 01:07:51,760 --> 01:07:58,930 אז בדוגמה זו, 1 argv הוא cs50 ו 1 argv, 2, כמו שאמרנו, הוא רק 5. 1468 01:07:58,930 --> 01:08:02,120 האם יש למישהו שאלות על מערכים רב ממדים? 1469 01:08:02,120 --> 01:08:05,090 1470 01:08:05,090 --> 01:08:06,380 אתם עושים מדהים. 1471 01:08:06,380 --> 01:08:07,750 מתוק. 1472 01:08:07,750 --> 01:08:11,980 >> אז יש לנו תכנית אחרת כאן, וזה הדבר האחרון שאנחנו 1473 01:08:11,980 --> 01:08:13,690 הולך לעשות עכשיו. 1474 01:08:13,690 --> 01:08:18,160 אז אני רוצה שתכתוב תכנית ה לוקח את השם המלא של משתמש, ורק שתיים 1475 01:08:18,160 --> 01:08:21,649 שני טיעוני שורת הפקודה, ולבסוף, להדפיס את ברכה ל 1476 01:08:21,649 --> 01:08:24,180 משתמש הכולל את השם הראשון שלהם. 1477 01:08:24,180 --> 01:08:27,800 אז למה שלא תיקח שלושה או ארבעה דקות כדי לעשות את זה, ואחר כך נלך 1478 01:08:27,800 --> 01:08:29,870 על זה כקבוצה, ו אז לעטוף את? 1479 01:08:29,870 --> 01:09:44,189 1480 01:09:44,189 --> 01:09:48,084 >> ושוב, כאן, כאשר אנו אומרים לקחת שמו המלא של המשתמש לתיאור 1481 01:09:48,084 --> 01:09:54,473 לבעיה זו, זה צריך להיות הפקודה קו טיעונים, לא משתמשים לקבל מחרוזת. 1482 01:09:54,473 --> 01:09:55,450 כן, מרקוס? 1483 01:09:55,450 --> 01:09:58,260 >> תלמיד: אז כשאתה אומר שתיים הפקודה שורת טענות, היא שבנוסף ל 1484 01:09:58,260 --> 01:10:00,000 . / לרוץ, או - 1485 01:10:00,000 --> 01:10:02,980 >> ג'ייסון הירשהורן: שאלה טובה. 1486 01:10:02,980 --> 01:10:05,995 האם, כולל. / הריצה, השלושה טיעוני שורת הפקודה. 1487 01:10:05,995 --> 01:10:08,550 1488 01:10:08,550 --> 01:10:11,320 או בכלל. / מותאם אישית, ב מקרה זה, כי זה 1489 01:10:11,320 --> 01:10:12,360 שמו של קובץ זה. 1490 01:10:12,360 --> 01:10:13,300 אז argc יהיה שלוש. 1491 01:10:13,300 --> 01:10:19,480 אבל אני רוצה רק שני טיעונים נתן לתכנית. 1492 01:10:19,480 --> 01:10:20,400 אני צריך לציין את זה. 1493 01:10:20,400 --> 01:10:23,380 אני אעשה את השינוי, כי לפני שאני נפרסם אלה ולשלוח אותם לחבר 'ה. 1494 01:10:23,380 --> 01:10:32,747 1495 01:10:32,747 --> 01:10:34,740 >> סטודנט: מה אם יש שם באמצע? 1496 01:10:34,740 --> 01:10:36,800 >> ג'ייסון הירשהורן: אם יש לך באמצע שם, אתה מזל. 1497 01:10:36,800 --> 01:10:38,050 אני מצטער. 1498 01:10:38,050 --> 01:10:40,320 1499 01:10:40,320 --> 01:10:43,744 או אם אתה הולך רק על ידי שאקירה, אתה גם מזל. 1500 01:10:43,744 --> 01:10:55,672 1501 01:10:55,672 --> 01:10:56,425 כן? 1502 01:10:56,425 --> 01:11:00,760 >> תלמיד: לכן, כאשר אנשים אין לי cs50.h, האם הם מגדירים argv 1503 01:11:00,760 --> 01:11:03,450 כchar argv הכוכב? 1504 01:11:03,450 --> 01:11:05,160 או שזה עדיין נקרא מחרוזת argv? 1505 01:11:05,160 --> 01:11:07,430 >> ג'ייסון הירשהורן: כן. 1506 01:11:07,430 --> 01:11:10,480 אז מחרוזת, שוב, אנחנו מסכה על מה בדיוק קורה שם. 1507 01:11:10,480 --> 01:11:14,040 זה הולך להיות אולי פרק ביום רביעי, אבל בקרוב. 1508 01:11:14,040 --> 01:11:16,380 זה כמו גלגלים עזר. 1509 01:11:16,380 --> 01:11:18,370 כי בעצם, זה את אותו הדבר. 1510 01:11:18,370 --> 01:11:37,040 1511 01:11:37,040 --> 01:11:42,560 >> אז בואו ניקח עוד דקה לתכנית זה, ולאחר מכן נעבור על 1512 01:11:42,560 --> 01:11:45,130 זה כקבוצה, ולאחר מכן כמו שאמרתי, לעטוף. 1513 01:11:45,130 --> 01:11:47,770 ואני חושב שהם עדיין ממתק נוסף, אז אני מקווה שאתם צריכים לקחת 1514 01:11:47,770 --> 01:11:49,790 זה, או בבקשה לקחת את זה. 1515 01:11:49,790 --> 01:12:20,380 1516 01:12:20,380 --> 01:12:22,560 >> מצטער אם אתה עדיין כותב, אבל אני רוצה לצלול ובאנחנו 1517 01:12:22,560 --> 01:12:24,010 יכול לסיים את זה ביחד. 1518 01:12:24,010 --> 01:12:30,470 אז כתבתי ב, # כולל cs50.h, # include stdio.h. 1519 01:12:30,470 --> 01:12:33,970 int הראשי (חלל), מתולתל סד, מתולתל סד, בתוך שלוש שורות של 1520 01:12:33,970 --> 01:12:38,760 pseudocode, לקחת את השם המלא של משתמש, שתיים ורק שתיים שורת הפקודה 1521 01:12:38,760 --> 01:12:42,670 טיעונים, להדפיס את ברכה ל משתמש הכולל את השם הראשון שלהם. 1522 01:12:42,670 --> 01:12:45,810 >> אז הראשון, לקחת שמו המלא של משתמש. 1523 01:12:45,810 --> 01:12:47,290 מי יכול לעזור לי לקחת שמו המלא של משתמש? 1524 01:12:47,290 --> 01:12:50,882 1525 01:12:50,882 --> 01:12:52,780 איך אני עושה את החלק הזה? 1526 01:12:52,780 --> 01:12:57,685 1527 01:12:57,685 --> 01:12:59,500 האם אתם עושים חלק ראשון? 1528 01:12:59,500 --> 01:13:02,587 1529 01:13:02,587 --> 01:13:03,894 קח את שמו המלא של משתמש. 1530 01:13:03,894 --> 01:13:05,860 ובכן, בשביל זה שורת פקודה אחת ויכוח, מה אני צריך לכתוב? 1531 01:13:05,860 --> 01:13:09,624 מה עליי לשנות על ההצהרה על הפונקציה שלי? 1532 01:13:09,624 --> 01:13:11,140 >> תלמיד: אתה לא רוצה זה יהיה חלל ריק יותר. 1533 01:13:11,140 --> 01:13:11,410 >> ג'ייסון הירשהורן: בדיוק. 1534 01:13:11,410 --> 01:13:12,385 אני לא רוצה שזה יהיה מבוטל. 1535 01:13:12,385 --> 01:13:13,630 מה אני רוצה שזה יהיה? 1536 01:13:13,630 --> 01:13:14,650 >> תלמיד: argc Int. 1537 01:13:14,650 --> 01:13:15,720 >> ג'ייסון הירשהורן: int argc. 1538 01:13:15,720 --> 01:13:17,430 >> תלמיד: מחרוזת argv. 1539 01:13:17,430 --> 01:13:19,055 >> ג'ייסון הירשהורן: מחרוזת argv. 1540 01:13:19,055 --> 01:13:19,705 >> תלמיד: סוגר, סוגר. 1541 01:13:19,705 --> 01:13:20,070 >> ג'ייסון הירשהורן: סוגר, סוגר. 1542 01:13:20,070 --> 01:13:21,780 זה בדיוק נכון, וזה בעצם איך אני הולך לקבל 1543 01:13:21,780 --> 01:13:22,820 שמו המלא של משתמש. 1544 01:13:22,820 --> 01:13:24,070 הם הולכים לשים אותו שם. 1545 01:13:24,070 --> 01:13:27,720 1546 01:13:27,720 --> 01:13:28,780 כך שאף אחד עושה את זה. 1547 01:13:28,780 --> 01:13:30,780 אז עכשיו אני רוצה שתיים ורק שניים טיעוני שורת הפקודה. 1548 01:13:30,780 --> 01:13:35,065 אז נח, מה היא דרך שאוכלת אחד לבדוק את מספר הפקודה 1549 01:13:35,065 --> 01:13:36,315 קו טיעונים שיש לי? 1550 01:13:36,315 --> 01:13:39,676 1551 01:13:39,676 --> 01:13:40,725 >> תלמיד: אתה עושה אם הצהרה. 1552 01:13:40,725 --> 01:13:42,270 >> ג'ייסון הירשהורן: אם הצהרה, בדיוק. 1553 01:13:42,270 --> 01:13:44,830 מה אני רוצה כתנאי? 1554 01:13:44,830 --> 01:13:48,370 >> תלמיד: אם argc גדול מ -3. 1555 01:13:48,370 --> 01:13:52,485 >> ג'ייסון הירשהורן: אם argc הוא גדול מ -3. 1556 01:13:52,485 --> 01:13:58,430 אם argc גדול מ -3, מה עליי לעשות? 1557 01:13:58,430 --> 01:13:59,400 >> תלמיד: 1 חזור. 1558 01:13:59,400 --> 01:14:01,856 >> ג'ייסון הירשהורן: 1 חזור. 1559 01:14:01,856 --> 01:14:04,050 יהיה להבטיח שיש לי שתיים ורק שניים? 1560 01:14:04,050 --> 01:14:07,280 1561 01:14:07,280 --> 01:14:07,820 >> תלמיד: לא. 1562 01:14:07,820 --> 01:14:13,110 אם argc הוא גדול יותר מאשר 3 ופחות מ -2. 1563 01:14:13,110 --> 01:14:17,770 >> ג'ייסון הירשהורן: אם argc הוא גדול יותר מ 3 וargc הוא פחות מ 2. 1564 01:14:17,770 --> 01:14:21,540 מה הדרך היחידה שאני יכול לכתוב את זה בסתם שורה אחת, או ללא שימוש ש 1565 01:14:21,540 --> 01:14:23,890 ובוליאני מפעיל? 1566 01:14:23,890 --> 01:14:25,942 >> תלמיד: זה לא שווה ל 2. 1567 01:14:25,942 --> 01:14:28,790 >> ג'ייסון הירשהורן: אם argc אינו שווה ל 2. 1568 01:14:28,790 --> 01:14:29,260 בדיוק. 1569 01:14:29,260 --> 01:14:34,890 אז אם argc הוא לא שווה ל 2, כי ייתן לי תכנית זו, 1570 01:14:34,890 --> 01:14:37,250 אישית, כשאני מפעיל אותו, ו שייתן לי כמה 1571 01:14:37,250 --> 01:14:38,740 טיעוני שורת הפקודה? 1572 01:14:38,740 --> 01:14:42,110 כמה תהיה לי לבדוק? 1573 01:14:42,110 --> 01:14:42,370 >> סליחה. 1574 01:14:42,370 --> 01:14:43,400 תן לי לנסח מחדש את זה. 1575 01:14:43,400 --> 01:14:46,620 אם argc = 2, כמה דברים עשו המשתמש לכתוב בשורה? 1576 01:14:46,620 --> 01:14:47,500 >> תלמיד: אחת. 1577 01:14:47,500 --> 01:14:49,120 >> ג'ייסון הירשהורן: רק אחת. 1578 01:14:49,120 --> 01:14:50,430 אז לפני, היית נכון, נח. 1579 01:14:50,430 --> 01:14:52,192 מה אני באמת צריך לשים שם? 1580 01:14:52,192 --> 01:14:53,640 >> תלמיד: זה שווה 3. 1581 01:14:53,640 --> 01:14:55,970 >> ג'ייסון הירשהורן: argc לא שווה 3. 1582 01:14:55,970 --> 01:15:00,250 אני רוצה להיות שווה 3 כי אני רוצה אישית בתוספת שני האחרים. 1583 01:15:00,250 --> 01:15:02,560 אז אם התכנית + 3 לא שווים, תחזיר 1. 1584 01:15:02,560 --> 01:15:04,475 למה אמר להחזיר 1? 1585 01:15:04,475 --> 01:15:06,180 >> תלמיד: בגלל ש אומר שזה לא בסדר. 1586 01:15:06,180 --> 01:15:08,420 >> ג'ייסון הירשהורן: זה אומר שזה לא בסדר, ומה שהוא הולך לעשות? 1587 01:15:08,420 --> 01:15:10,360 >> תלמיד: Re-תנחה את המשתמש. 1588 01:15:10,360 --> 01:15:11,940 >> ג'ייסון הירשהורן: זה הולך להיסגר התכנית, כך שהוא יצטרך לרוץ 1589 01:15:11,940 --> 01:15:14,520 שוב, אבל אין לנו שום דבר לכאן כדי לבקש אותם שוב. 1590 01:15:14,520 --> 01:15:14,840 אני לא בקשו את זה. 1591 01:15:14,840 --> 01:15:15,990 אז זה בדיוק נכון. 1592 01:15:15,990 --> 01:15:17,680 1 חזור פשוט ייסגר את התכנית. 1593 01:15:17,680 --> 01:15:18,520 גדול. 1594 01:15:18,520 --> 01:15:21,600 >> ולהדפיס את ברכה למשתמש הכולל את השם הראשון שלהם. 1595 01:15:21,600 --> 01:15:24,010 איך אני יכול לעשות את זה? 1596 01:15:24,010 --> 01:15:25,990 אנה? 1597 01:15:25,990 --> 01:15:26,580 >> סטודנט: printf. 1598 01:15:26,580 --> 01:15:27,785 >> ג'ייסון הירשהורן: printf. 1599 01:15:27,785 --> 01:15:28,640 >> תלמיד: (" 1600 01:15:28,640 --> 01:15:30,460 >> ג'ייסון הירשהורן: ( 1601 01:15:30,460 --> 01:15:31,600 >> תלמיד: "שלום 1602 01:15:31,600 --> 01:15:33,210 >> ג'ייסון הירשהורן: "שלום 1603 01:15:33,210 --> 01:15:34,800 >> תלמיד:% s 1604 01:15:34,800 --> 01:15:37,230 >> ג'ייסון הירשהורן:% s 1605 01:15:37,230 --> 01:15:38,840 >> תלמיד: / n 1606 01:15:38,840 --> 01:15:41,030 >> ג'ייסון הירשהורן: / n 1607 01:15:41,030 --> 01:15:43,120 >> תלמיד: ", 1608 01:15:43,120 --> 01:15:45,130 >> ג'ייסון הירשהורן: ", 1609 01:15:45,130 --> 01:15:46,620 >> תלמיד: argv 1610 01:15:46,620 --> 01:15:47,080 >> ג'ייסון הירשהורן: סליחה? 1611 01:15:47,080 --> 01:15:47,750 >> תלמיד: argv 1612 01:15:47,750 --> 01:15:48,840 >> ג'ייסון הירשהורן: argv 1613 01:15:48,840 --> 01:15:50,190 >> תלמיד: סוגריים מרובעים 1. 1614 01:15:50,190 --> 01:15:51,230 >> ג'ייסון הירשהורן: סוגריים מרובעים? 1615 01:15:51,230 --> 01:15:51,870 >> תלמיד: 1. 1616 01:15:51,870 --> 01:15:54,050 >> ג'ייסון הירשהורן: 1. 1617 01:15:54,050 --> 01:15:55,850 >> סטודנט: ו) פסיק. 1618 01:15:55,850 --> 01:15:58,290 >> ג'ייסון הירשהורן:) פסיק. 1619 01:15:58,290 --> 01:16:00,250 תן לנו להפעיל את זה. 1620 01:16:00,250 --> 01:16:03,730 הפוך אישית. 1621 01:16:03,730 --> 01:16:06,392 . / אישית. 1622 01:16:06,392 --> 01:16:07,420 זה פשוט להפסיק. 1623 01:16:07,420 --> 01:16:10,390 למה זה להפסיק? 1624 01:16:10,390 --> 01:16:11,310 >> סטודנט: לא לשים את כל טענות. 1625 01:16:11,310 --> 01:16:12,560 >> ג'ייסון הירשהורן: אני לא לשים את כל טיעונים פנימה 1626 01:16:12,560 --> 01:16:16,360 1627 01:16:16,360 --> 01:16:16,920 נראה נהדר. 1628 01:16:16,920 --> 01:16:18,130 אתם מסמרים אותו. 1629 01:16:18,130 --> 01:16:22,420 אז שוב, אתה נכנס לargv ואתה בדק בתכנית + ההתחלה. 1630 01:16:22,420 --> 01:16:24,390 אלה הם שתיים חשובים דברים שיש לזכור. 1631 01:16:24,390 --> 01:16:29,250 אז בשתי דקות האחרונות שלנו לפני שאנו לעזוב, אנחנו לא תקבלו לpset שתיים, אבל 1632 01:16:29,250 --> 01:16:33,585 כמו שאמרתי, אם אתה רוצה להישאר אחרי במשך 10 דקות, הוא הייתי שמח ללכת 1633 01:16:33,585 --> 01:16:35,710 על איתכם ההיגיון עבור קבוצות בעייתי אלה. 1634 01:16:35,710 --> 01:16:37,930 היו לנו הרבה כדי לכסות את היום אז אני לא מקבל אותם. 1635 01:16:37,930 --> 01:16:39,820 באופן כללי, אני רוצה לכלול כי בסופו של הדבר. 1636 01:16:39,820 --> 01:16:42,150 אז אם אתה רוצה להישאר בסביבה, להישאר בסביבה במשך 10 דקות. 1637 01:16:42,150 --> 01:16:42,990 אנחנו נעשה את זה. 1638 01:16:42,990 --> 01:16:46,250 >> ואז, כפי שציינתי בהתחלה, pset אפס ואחד, נקבל כי 1639 01:16:46,250 --> 01:16:48,040 משוב אחזור אליך ב ההקדם האפשרי. 1640 01:16:48,040 --> 01:16:51,260 המטרה היא לקבל משוב pset אחד, חלק ההערות, 1641 01:16:51,260 --> 01:16:52,850 לפני pset שתיים נובע. 1642 01:16:52,850 --> 01:16:56,730 אז אם אתה עשית כמה טעויות או מבחינה סגנונית, דברים יכולים להיות טובים יותר, 1643 01:16:56,730 --> 01:17:01,330 יהיה לך מידע שאתה כל כך לא לעשות את אותם דברים בpset שתיים. 1644 01:17:01,330 --> 01:17:06,140 ולאחר מכן בעתיד, תוכל לקבל את כל המשוב שלך והערות pset 1645 01:17:06,140 --> 01:17:08,190 בחזרה לפני הבא הוא נובע. 1646 01:17:08,190 --> 01:17:12,695 >> לבסוף, אם אני יכול לשים אחר התוספת למשוב. 1647 01:17:12,695 --> 01:17:13,935 זהו הסעיף הראשון שלך. 1648 01:17:13,935 --> 01:17:15,920 זה היה הקטע הראשון שלי מלמד את זה שנה. 1649 01:17:15,920 --> 01:17:16,930 ללכת לשם. 1650 01:17:16,930 --> 01:17:19,800 לכתוב דברים, טוב ורע, ואני אשתמש בו כדי להפוך 1651 01:17:19,800 --> 01:17:21,320 קטע טוב יותר בפעם הבאה. 1652 01:17:21,320 --> 01:17:24,870 ואחרון, שוב, אם אתה צריך משהו, תודיע לי. 1653 01:17:24,870 --> 01:17:26,410 אני יותר משמח לעזור לכם. 1654 01:17:26,410 --> 01:17:28,420 אם אתה רק רוצה סוכריות, אני תהיה לי ממתקים נוסף. 1655 01:17:28,420 --> 01:17:29,800 אני שמח להביא לך את זה. 1656 01:17:29,800 --> 01:17:31,190 >> זה הולך להיות כמובן מדהים. 1657 01:17:31,190 --> 01:17:34,900 זהו אחד, אם לא אהוב עליי כמובן, אני כבר לקחתי בכל החיים שלי, 1658 01:17:34,900 --> 01:17:37,220 ואני מקווה שזה יהיה כי נפלא בשבילך. 1659 01:17:37,220 --> 01:17:40,090 אז אני רוצה לעשות כל שביכולתי כדי לעשות את זה כי מדהים בשבילך. 1660 01:17:40,090 --> 01:17:46,590 אני הולך לשלוח דוא"ל אם אתה בסעיף או נח שלי, ו 1661 01:17:46,590 --> 01:17:50,310 הולך לנסות ולתזמן עם כל אחד אתם זמן לבדוק בלמעלה מ 1662 01:17:50,310 --> 01:17:53,820 כמה שבועות אז אני יכול לקבל תחושה של מה הרקע של CS שלך, 1663 01:17:53,820 --> 01:17:58,170 וזה גם יעזור לי חייט אלה חלקים טובים יותר לצרכיך. 1664 01:17:58,170 --> 01:17:59,740 אז זה מה שיש לי בשורה. 1665 01:17:59,740 --> 01:18:02,260 שוב, אני אראה אותך מחוץ אם אתה רוצה להיות שם. 1666 01:18:02,260 --> 01:18:03,700 זה היה בשבוע שסעיף שתיים. 1667 01:18:03,700 --> 01:18:04,950 תודה לך כל כך הרבה חבר 'ה. 1668 01:18:04,950 --> 01:18:09,067