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