1 00:00:00,000 --> 00:00:05,410 2 00:00:05,410 --> 00:00:08,770 >> ANDI פנג: אנחנו כמעט דרך כל psets. 3 00:00:08,770 --> 00:00:12,080 למעשה, אנחנו ברוב של psets הקשה ביותר. 4 00:00:12,080 --> 00:00:14,350 אז אנחנו בעצם רק הולך סוג של רוח 5 00:00:14,350 --> 00:00:16,050 באמצעות כמה שבועות הבאים. 6 00:00:16,050 --> 00:00:19,520 >> אנחנו הולכים להתחיל לדבר עלינו פרויקטי גמר, האירועים מתקרבים 7 00:00:19,520 --> 00:00:21,320 בשבועות הקרובים. 8 00:00:21,320 --> 00:00:23,825 וחיים יהיו רוח. 9 00:00:23,825 --> 00:00:26,510 10 00:00:26,510 --> 00:00:27,680 אז לא יותר מדי היום. 11 00:00:27,680 --> 00:00:30,280 >> יש לקוות, יהיה למעשה משב רוח דרך סדר היום להיום, 12 00:00:30,280 --> 00:00:33,400 ואז יהיה מכאן עם קצת זמן פנוי. 13 00:00:33,400 --> 00:00:36,210 כמו כן, אני רוצה להתנצל לחוסר ממתקים היום. 14 00:00:36,210 --> 00:00:37,030 אני לא יודע למה. 15 00:00:37,030 --> 00:00:40,520 אבל הוביל בשבוע ליל כל הקדושים, אני לא אשכח את הסוכריות. 16 00:00:40,520 --> 00:00:43,290 >> אז אני בעצם רק עצום אכזבה לך עכשיו. 17 00:00:43,290 --> 00:00:47,050 כי אני ממש זוכר את הממתקים לכל כיתה, אבל ליל כל הקדושים. 18 00:00:47,050 --> 00:00:49,345 אבל בשבוע הבא, אני אביא להכפיל את כמות הממתקים 19 00:00:49,345 --> 00:00:50,720 כדי לפצות על זה, כל זה בשבילך. 20 00:00:50,720 --> 00:00:53,260 זה יהיה נהדר. 21 00:00:53,260 --> 00:00:56,690 >> אז יש לי כמה הודעות לגבי חלק התזמון. 22 00:00:56,690 --> 00:00:59,520 יש לי כמה בעיות תזמון. 23 00:00:59,520 --> 00:01:02,150 אז אנחנו הולכים לעבור ל לדבר על מה שנקרא chmod. 24 00:01:02,150 --> 00:01:05,980 אנחנו הולכים לדבר על מהירות TCP / IP HTTP. 25 00:01:05,980 --> 00:01:09,770 >> ואז אנחנו הולכים לקוד שלנו אתר עצמו באמצעות HTML ו- CSS. 26 00:01:09,770 --> 00:01:13,030 ואז אני בעצם אולי אעזוב כמו 20 דקות לדבר על pset6. 27 00:01:13,030 --> 00:01:16,550 בגלל pset6 הוא למעשה הרבה דברים שאנחנו כבר ראינו בעבר, 28 00:01:16,550 --> 00:01:19,090 אבל רציתי לרענן חלק ממושגים אלה 29 00:01:19,090 --> 00:01:22,140 כמו גם ללמד את בני זוג פונקציות חדשות. 30 00:01:22,140 --> 00:01:23,110 >> לְהִתְקַרֵר. 31 00:01:23,110 --> 00:01:25,440 אז קודם כל, בברכה חזרה מהפסקה. 32 00:01:25,440 --> 00:01:27,410 אני מקווה שאתה ההפסקה הייתה מהנה. 33 00:01:27,410 --> 00:01:29,695 האם עשית להפסקה? 34 00:01:29,695 --> 00:01:30,820 קהל: נסע לניו יורק. 35 00:01:30,820 --> 00:01:32,030 ANDI פנג: אתה נסעתי לניו יורק? 36 00:01:32,030 --> 00:01:33,738 אני חושב שמחצית בית הספר שלנו נסעתי לניו יורק. 37 00:01:33,738 --> 00:01:34,740 הכל בסדר. 38 00:01:34,740 --> 00:01:38,250 אני ביליתי את רוב ההפסקה שלי בישיבה בNetflixing המיטה. 39 00:01:38,250 --> 00:01:39,760 וזה היה זמן טוב. 40 00:01:39,760 --> 00:01:43,450 >> אבל אנחנו עכשיו בחזרה, בחזרה ב פגישה, חזרה בתנופה של דברים. 41 00:01:43,450 --> 00:01:47,900 יש לנו pset עקב יום שישי בצהריים. 42 00:01:47,900 --> 00:01:50,240 >> אני חושב שיש לך כבר הרים החידון שלך, כן? 43 00:01:50,240 --> 00:01:52,140 אז כל מי שיש לו לא היה להם חידונים, 44 00:01:52,140 --> 00:01:55,416 בבקשה לבוא ולקבל החידונים שלך ממני בסופו של הסעיף. 45 00:01:55,416 --> 00:01:56,540 או לאתר אותי בקמפוס. 46 00:01:56,540 --> 00:01:59,310 אני אצטרך אותו איתי למקום. 47 00:01:59,310 --> 00:02:02,120 >> מראש הצעת פרויקט הגמר שלנו גם. 48 00:02:02,120 --> 00:02:06,380 אז לאלה מאתנו שמעולם לא נלקחו המעמד הזה לפני, אבן הראשה של CS50 49 00:02:06,380 --> 00:02:11,150 הוא מאוד הגיעה לשיא בזה פרויקט גדול שתלמידים מציעים. 50 00:02:11,150 --> 00:02:14,300 ולפני ההצעה, רק רעיון כללי 51 00:02:14,300 --> 00:02:18,500 של מה שייתכן שתרצה לעשות להם פרויקט, הרעיון שנובע יום שני, 52 00:02:18,500 --> 00:02:20,780 ביום שני הבא בצהריים. 53 00:02:20,780 --> 00:02:23,800 >> אז פחות או יותר, דוד אני חושב שיהיה לדבר יותר על זה בהרצאה 54 00:02:23,800 --> 00:02:25,390 אם לא כבר יש לו. 55 00:02:25,390 --> 00:02:28,710 ויש דף מוצק באתר שלנו מסביר 56 00:02:28,710 --> 00:02:31,610 כל הדרישות של הפרויקט. 57 00:02:31,610 --> 00:02:34,082 אבל בעצם, לבחור כל נושא שיש לך 58 00:02:34,082 --> 00:02:35,915 כבר עניין ב לאורך הזמן שלך כאן 59 00:02:35,915 --> 00:02:41,760 במדעי המחשב, בין אם זה יהיה משחקים או עיצוב או וידאו או כל דבר. 60 00:02:41,760 --> 00:02:44,920 >> ואתה יכול באמת סוג של עכשיו ליישם חלק מהלקחים 61 00:02:44,920 --> 00:02:52,470 שלמדנו כאן בCS50-- היי, , ברוך הבא לביצוע די הרבה 62 00:02:52,470 --> 00:02:56,320 פרויקט גמר של הבחירה שלך. 63 00:02:56,320 --> 00:02:59,570 כל זה בגלל יום שני הוא רק פרסומת קצרה באמצעות דואר אלקטרוני 64 00:02:59,570 --> 00:03:02,010 לי, משפט מהיר, כמו, היי, אנדי, 65 00:03:02,010 --> 00:03:06,490 אני באמת מתעניין בעיצוב משחק שעושה את זה עבור iOS. 66 00:03:06,490 --> 00:03:07,420 לְהִתְקַרֵר. 67 00:03:07,420 --> 00:03:10,767 רק תן לי ראשוני הקצר שלך רעיונות לפרויקטי הגמר שלך. 68 00:03:10,767 --> 00:03:13,850 ונדבר דרך האם או לא שהוא למעשה רעיון טוב או לא, 69 00:03:13,850 --> 00:03:15,590 אם זה רעיון אפשרי או לא. 70 00:03:15,590 --> 00:03:20,760 אבל רק לפני ההצעה בשל יום שני הבא. 71 00:03:20,760 --> 00:03:24,190 pset6, web-- היפה שלנו שהוא בסדר. 72 00:03:24,190 --> 00:03:25,060 Pset7? 73 00:03:25,060 --> 00:03:25,560 pset6? 74 00:03:25,560 --> 00:03:26,680 זה pset6, נכון? 75 00:03:26,680 --> 00:03:32,690 >> pset6, שרת האינטרנט שלנו, נובע יום שישי בצהריים עם האיחור של היום. 76 00:03:32,690 --> 00:03:37,660 שעתי עבודה לחדש בדרך כלל מיום השני עד יום חמישי 8:00-11:00 השבוע. 77 00:03:37,660 --> 00:03:39,710 אני חושב Commons ל שלושה הלילות הבאים. 78 00:03:39,710 --> 00:03:40,310 לְהִתְקַרֵר. 79 00:03:40,310 --> 00:03:44,260 לפני שהיו לנו לחומר, עושה כל אחד יש לך שאלות, בדיחות, סיפורים? 80 00:03:44,260 --> 00:03:46,662 מה עשה להפסקת סתיו? 81 00:03:46,662 --> 00:03:48,640 >> קהל: מה אני עושה? 82 00:03:48,640 --> 00:03:52,834 >> ANDI פנג: כבר זה גילים לפני למעשה. 83 00:03:52,834 --> 00:03:54,000 קריסטבל נסע לניו יורק. 84 00:03:54,000 --> 00:03:55,614 אני נשארתי כאן וNetflixed. 85 00:03:55,614 --> 00:03:56,864 קהל: הו, כן הייתי כאן. 86 00:03:56,864 --> 00:03:57,614 ANDI פנג: אה, בסדר. 87 00:03:57,614 --> 00:03:59,792 קהל: אני לא זוכר מה במיוחד. 88 00:03:59,792 --> 00:04:00,710 ANDI פנג: זה בסדר. 89 00:04:00,710 --> 00:04:01,960 קהל: Netflixing כנראה. 90 00:04:01,960 --> 00:04:02,990 ANDI פנג: Netflixing. 91 00:04:02,990 --> 00:04:04,710 כן, זה זמן טוב. 92 00:04:04,710 --> 00:04:05,780 אוקיי. 93 00:04:05,780 --> 00:04:06,340 בסדר. 94 00:04:06,340 --> 00:04:08,877 כל שאלות לפני אנחנו קופצים לחומר? 95 00:04:08,877 --> 00:04:11,210 כמו כן, אנחנו הולכים לנסות להאיץ באמצעות היום סעיף, 96 00:04:11,210 --> 00:04:12,504 לא יותר מדי כדי לכסות. 97 00:04:12,504 --> 00:04:14,420 ואני מקווה, יהיה לנו כאן קצת מוקדם. 98 00:04:14,420 --> 00:04:15,580 מצטער על שלא ממתקים, גם. 99 00:04:15,580 --> 00:04:20,310 אני אכזבה, במיוחד בליל כל הקדושים. 100 00:04:20,310 --> 00:04:21,110 >> בסדר. 101 00:04:21,110 --> 00:04:21,810 לְהִתְקַרֵר. 102 00:04:21,810 --> 00:04:28,370 אז אנחנו הולכים להתחיל לדבר על טיעון שורת הפקודה נקרא chmod. 103 00:04:28,370 --> 00:04:32,850 chmod, כל זה הוא רק מערכת יוניקס קוראים נערך משורת הפקודה 104 00:04:32,850 --> 00:04:34,700 כדי לשנות את הרשאות קובץ. 105 00:04:34,700 --> 00:04:37,790 כך למשל, יש לנו כל נתקל בדף 106 00:04:37,790 --> 00:04:40,550 כמו זה כנראה מתישהו ב תוחלת החיים שלנו להיות באינטרנט 107 00:04:40,550 --> 00:04:45,110 למשתמש, שבו שרת האינטרנט שלנו יש נתן לנו את השגיאה של אסור. 108 00:04:45,110 --> 00:04:49,086 אין לך הרשאה לגישה, תאדה, תאדה, תאדה, בשרת זה. 109 00:04:49,086 --> 00:04:50,960 כל זה באמת אומר הוא שההרשאות 110 00:04:50,960 --> 00:04:53,920 שצורפו לכל מה ש דף שאתה מנסה לגשת 111 00:04:53,920 --> 00:04:55,840 לא היו פתוח בפניך. 112 00:04:55,840 --> 00:04:57,870 אז פחות או יותר, chmod היא הדרך שבה 113 00:04:57,870 --> 00:05:02,140 אנחנו יכולים לשנות את הרשאות מערכת אלה לתת לכולם, למשתמש, הקבוצה, 114 00:05:02,140 --> 00:05:04,975 או העולם, או כל שילוב של גישה אלה 115 00:05:04,975 --> 00:05:07,900 לקבצים מסוימים, ספריות, שום דבר באמת, 116 00:05:07,900 --> 00:05:11,720 כל סוג של מערכת ב מערכת הפעלה. 117 00:05:11,720 --> 00:05:14,039 אז אם כל בחורים שיש לי מחשבים אם אתה מרגיש 118 00:05:14,039 --> 00:05:17,080 כמו הבא יחד איתי היום, לגמרי מרגיש חופשי רק להקליד דברים 119 00:05:17,080 --> 00:05:17,580 ב. 120 00:05:17,580 --> 00:05:19,790 אם לא, אתה יכול פשוט להסתובב. 121 00:05:19,790 --> 00:05:23,170 אז אני הולך למשוך למעשה עד המסוף שלי עכשיו. 122 00:05:23,170 --> 00:05:29,810 123 00:05:29,810 --> 00:05:32,310 >> אז את הפקודה להפעלה chmod, או לפחות רק 124 00:05:32,310 --> 00:05:37,840 לרשימת ההרשאות שלך ספריית קבצים, היא רק LS-L. 125 00:05:37,840 --> 00:05:42,270 כפי שניתן לראות, חבורה של דברים צץ שרובם 126 00:05:42,270 --> 00:05:45,390 חשוב לנו ב צד השמאל כאן. 127 00:05:45,390 --> 00:05:48,710 אתם רואים חבורה של RS, WS, / 1. 128 00:05:48,710 --> 00:05:49,210 כן. 129 00:05:49,210 --> 00:05:51,400 >> אלה הם בעצם רק כל הרשאות הקבצים 130 00:05:51,400 --> 00:05:55,960 להסביר מה ספריות מסוימות וקבצים במערכת שלך יש. 131 00:05:55,960 --> 00:05:58,150 אז בואו נחזור ל נקודת הכח כאן. 132 00:05:58,150 --> 00:06:02,450 133 00:06:02,450 --> 00:06:06,500 אז בנוסף לשמות קבצים כאתם יכולים לראות מימין, 134 00:06:06,500 --> 00:06:10,312 אנחנו מחפשים לראות במהות רק העמודה משמאל. 135 00:06:10,312 --> 00:06:12,020 אז בנוסף לרק שמות קבצים, אנחנו 136 00:06:12,020 --> 00:06:16,240 יכול לראות את ההרשאות של קבצים, קבוצת בעלים, שם הקבוצה, התאריך 137 00:06:16,240 --> 00:06:18,460 שהקובץ היה אחרון שונה, וכולי. 138 00:06:18,460 --> 00:06:20,640 אתה יכול לראות הרבה דברים באמצעות chmod. 139 00:06:20,640 --> 00:06:26,037 לכן הדרך שאנו קוראים chmod היא ש המכתב הראשון שאנחנו פחות או יותר להתעלם 140 00:06:26,037 --> 00:06:27,370 במונחים של הרשאות קריאה. 141 00:06:27,370 --> 00:06:31,460 >> המכתב הראשון רק אומר לנו מה סוג של מערכת שאנחנו ניגשים. 142 00:06:31,460 --> 00:06:34,240 ד, במקרה זה, הוא תיקייה או ספרייה. 143 00:06:34,240 --> 00:06:38,430 אז אנחנו יודעים שכרגע סביבת העבודה שלי סעיף שבע היה ספרייה. 144 00:06:38,430 --> 00:06:41,530 ואז אתה רואה שלושה שלשות, בעצם רק 145 00:06:41,530 --> 00:06:43,490 שלושה סטים של שלוש דמויות. 146 00:06:43,490 --> 00:06:45,680 ואתה יכול לחשוב על כל כקצת. 147 00:06:45,680 --> 00:06:49,260 >> אז אתה רק צריך שלושה סטים של שלוש חתיכות, תשע חתיכות בסך הכל. 148 00:06:49,260 --> 00:06:51,420 אתה מתייחס אליהם בקבוצות של שלוש. 149 00:06:51,420 --> 00:06:56,230 אז הקבוצה הראשונה של שלוש היא תמיד הרשאות המשתמש שלך. 150 00:06:56,230 --> 00:07:00,557 >> הקבוצה השנייה שלך של שלוש היא תמיד הרשאות הקבוצה שלך. 151 00:07:00,557 --> 00:07:02,765 והקבוצה השלישית שלך של שלוש תמיד כמו בעולם, 152 00:07:02,765 --> 00:07:04,380 בכל מקום ההרשאות. 153 00:07:04,380 --> 00:07:06,320 אז אני מניח שקל שאלה שצריכה להישאל היא מה היא 154 00:07:06,320 --> 00:07:08,051 ההבדל בין משתמש וקבוצה. 155 00:07:08,051 --> 00:07:09,800 ההבדל העיקרי בין משתמש וקבוצה 156 00:07:09,800 --> 00:07:13,180 הוא שהמשתמש הוא רק באופן אישי גישה מה שזה לא עכשיו. 157 00:07:13,180 --> 00:07:18,070 קבוצה יכולה להיות אם יש לך מספר רב של משתמשים במחשב אחד, לדוגמא. 158 00:07:18,070 --> 00:07:20,280 כולם יכולים להתייחס אליהם כקבוצה. 159 00:07:20,280 --> 00:07:23,220 >> ואז העולם הוא רק העולם, כולם. 160 00:07:23,220 --> 00:07:31,010 כדי שנוכל לראות מאוחר יותר על איך אנחנו יכולים לשנות אותם לתוך הרשאות שונות. 161 00:07:31,010 --> 00:07:33,080 אז פחות או יותר, אנחנו הולך עדיין להתמקד 162 00:07:33,080 --> 00:07:38,450 בחלק משמאל, שבו לCS50 ספרייה אנו רואים drwx, 163 00:07:38,450 --> 00:07:40,970 שבו r רק אומר שזה קריא. 164 00:07:40,970 --> 00:07:42,620 >> W רק אומר שזה ניתנת לכתיבה. 165 00:07:42,620 --> 00:07:45,470 ואז x רק אומר שזה הפעלה. 166 00:07:45,470 --> 00:07:47,220 היית חושב שזה סוג של לא הגיוני. 167 00:07:47,220 --> 00:07:47,993 זה צריך להיות בדואר. 168 00:07:47,993 --> 00:07:50,150 אבל x בעצם סוג של עובד קצת יותר טוב, 169 00:07:50,150 --> 00:07:51,690 בגלל שאתה זוכר את זה טוב יותר. 170 00:07:51,690 --> 00:07:56,406 >> אז שלושה סוגים של דברים שאתה יכול לעשות, אתה יכול לקרוא קובץ, 171 00:07:56,406 --> 00:07:59,280 אתה יכול לקבל הרשאה לכתוב להגיש, או שיש לך יכול רשות 172 00:07:59,280 --> 00:08:00,780 לבצע קובץ. 173 00:08:00,780 --> 00:08:04,580 ולכן הדרך שאנחנו באמת מייצג אותם בחתיכות 174 00:08:04,580 --> 00:08:06,940 הוא המספרים 4, 2, 1 ו. 175 00:08:06,940 --> 00:08:12,870 אז כל דבר שהוא קריא הוא מיוצג על ידי מספר 4. 176 00:08:12,870 --> 00:08:15,150 >> דבר זה ניתנת לכתיבה מיוצג על ידי 2. 177 00:08:15,150 --> 00:08:18,880 וכל דבר שהוא הפעלה כפי שהוא מיוצג על ידי 1. 178 00:08:18,880 --> 00:08:22,860 אז במובן הזה, אנחנו גם יכולים מייצג אחר מספרים אלה 179 00:08:22,860 --> 00:08:25,281 היי, בברכה, בצורה שונה. 180 00:08:25,281 --> 00:08:25,780 מצטער. 181 00:08:25,780 --> 00:08:28,510 לפני כולם, אני הולך מתנצל בשם כולם 182 00:08:28,510 --> 00:08:29,468 כניסה לכיתה עכשיו. 183 00:08:29,468 --> 00:08:30,810 שכחתי ממתקים היום. 184 00:08:30,810 --> 00:08:33,640 אני מצטער שאני כישלון השבוע של ליל כל הקדושים. 185 00:08:33,640 --> 00:08:37,070 אני אביא כמות כפולה של סוכריות בפעם הבאה כדי לפצות על זה. 186 00:08:37,070 --> 00:08:42,360 אבל בכל מקרה, מצטער על זה בחורים, מצטער. 187 00:08:42,360 --> 00:08:46,640 >> אז הדרך שאנחנו באמת יכולים קלט על הפקודה שלנו הטענה היא ש 188 00:08:46,640 --> 00:08:51,760 יכול לעשות הרשאות הנטויים קבוצת chmod, שבו הקבוצה היא רק מה ש 189 00:08:51,760 --> 00:08:54,130 קבוצה שאנחנו מנסים לשנות. 190 00:08:54,130 --> 00:08:56,600 וההרשאות כל מה שאנחנו רוצים להוסיף לזה. 191 00:08:56,600 --> 00:08:58,860 כך למשל, בתוספת מוסיף הרשאות, 192 00:08:58,860 --> 00:09:01,590 ולחסר לוקח הרשאות. 193 00:09:01,590 --> 00:09:07,060 >> והסוגים של קבוצה יש לנו שלנו לכל, u עבור משתמשים, גרם לקבוצות, 194 00:09:07,060 --> 00:09:09,050 או O לאחרים. 195 00:09:09,050 --> 00:09:10,300 זה קצת מופשט עכשיו. 196 00:09:10,300 --> 00:09:13,550 אבל אנחנו נלך על כמה דוגמאות רק כדי להדגים מהיר אמיתי זה. 197 00:09:13,550 --> 00:09:16,960 כולם טובים בזה שקופיות, כך שאני יכול להמשיך הלאה? 198 00:09:16,960 --> 00:09:18,280 לְהִתְקַרֵר. 199 00:09:18,280 --> 00:09:21,290 >> כך למשל, rwx. 200 00:09:21,290 --> 00:09:26,720 לפני שנידבר על מה שהיא מייצגת, קודם כל מה rwx אומר? 201 00:09:26,720 --> 00:09:31,450 אם אתה רואה שזה בטוח יש קובץ הרשאות של rwx, 202 00:09:31,450 --> 00:09:34,270 מה זה אומר אדם יכול להיות מסוגל לעשות? 203 00:09:34,270 --> 00:09:35,740 >> קהל: לקרוא, לכתוב ולבצע. 204 00:09:35,740 --> 00:09:36,420 >> ANDI פנג: כן, בדיוק. 205 00:09:36,420 --> 00:09:37,840 אתה יכול לקרוא לכתוב ולבצע. 206 00:09:37,840 --> 00:09:40,790 כי כל שלושה מאלה דמויות הן הווה. 207 00:09:40,790 --> 00:09:44,370 אז אם אנחנו הולכים קדימה ודיבורים על זה במונחים של ביטים, 208 00:09:44,370 --> 00:09:48,490 rwx גם יכול להיות מיוצג כ-700. 209 00:09:48,490 --> 00:09:53,370 כי כפי שאתה יכול לראות בכל סוג של רשות ספריית קבצים, 210 00:09:53,370 --> 00:09:54,320 יש שלוש שלישיות. 211 00:09:54,320 --> 00:09:58,060 >> במקרה זה, רק ראשון יש שלישייה שם שום דבר. 212 00:09:58,060 --> 00:10:04,050 אז במקרה הזה, r הוא 4, w הוא 2, וx הוא 1. 213 00:10:04,050 --> 00:10:05,860 אם אתה מוסיף אותם יחד, זה 7. 214 00:10:05,860 --> 00:10:08,730 >> ולכן אם אתה להמיר זה לינארי, זה 700. 215 00:10:08,730 --> 00:10:10,310 מכיוון 7 היא השלישייה הראשונה. 216 00:10:10,310 --> 00:10:12,760 0, אין שום דבר בהווה בשלישייה השנייה. 217 00:10:12,760 --> 00:10:15,850 ואז אין שום דבר בהווה ב השלישייה השלישית, כך שהתוצאה 0 אחר. 218 00:10:15,850 --> 00:10:22,520 >> אז באותו המובן, חבורה של שלישיות יכול להיות מיוצג רק בחתיכות, רק 219 00:10:22,520 --> 00:10:23,600 בינארי, כמו גם. 220 00:10:23,600 --> 00:10:29,920 אז 700 פירוש בדיוק את אותו הדבר כמו rwx ------ במונחים של הרשאות. 221 00:10:29,920 --> 00:10:32,590 כולם ברור שב? 222 00:10:32,590 --> 00:10:33,090 לְהִתְקַרֵר. 223 00:10:33,090 --> 00:10:40,290 וכך 111 chmod היו נותנים שהרשאות לקובץ? 224 00:10:40,290 --> 00:10:42,600 לתת לכם כמה שניות כדי להמיר את זה. 225 00:10:42,600 --> 00:10:51,140 226 00:10:51,140 --> 00:10:53,250 זכור, הראשון שלישייה היא עבור המשתמש. 227 00:10:53,250 --> 00:10:56,320 השלישייה השנייה היא עבור הקבוצה. 228 00:10:56,320 --> 00:10:59,450 והשלישייה השלישית היא עבור כולם. 229 00:10:59,450 --> 00:11:03,680 >> וכך 111 chmod ייתנו ש סוג של הרשאות ולמי? 230 00:11:03,680 --> 00:11:06,520 231 00:11:06,520 --> 00:11:09,020 קח כמה שניות כדי תחשוב על זה ויחזור. 232 00:11:09,020 --> 00:11:19,790 233 00:11:19,790 --> 00:11:20,910 כן. 234 00:11:20,910 --> 00:11:22,920 >> קהל: אז כל אחד יכול לבצע את זה. 235 00:11:22,920 --> 00:11:23,920 ANDI פנג: כן, בדיוק. 236 00:11:23,920 --> 00:11:25,544 קהל: אבל אף אחד לא יכול לקרוא או לכתוב. 237 00:11:25,544 --> 00:11:27,910 ANDI פנג: ואל תהסס להסביר לכולם 238 00:11:27,910 --> 00:11:29,860 איך הגיע למסקנה ש. 239 00:11:29,860 --> 00:11:34,290 >> קהל: ובכן, עבור המשתמש, קבוצה, ובעולם, זה כל 1, 240 00:11:34,290 --> 00:11:35,700 אשר הוא הקוד להפעלה. 241 00:11:35,700 --> 00:11:37,070 >> ANDI פנג: כן, בדיוק. 242 00:11:37,070 --> 00:11:42,320 אז 1, במקרה זה, כל מה שאנחנו יודעים הוא שזה קוד ההפעלה. 243 00:11:42,320 --> 00:11:45,280 בגלל קריאה היא 4. 244 00:11:45,280 --> 00:11:45,990 כתיבה היא 2. 245 00:11:45,990 --> 00:11:47,230 וההפעלה היא 1. 246 00:11:47,230 --> 00:11:51,580 אז הוא כל שלוש השלשות הן 1, ש משמעות הדבר היא כי לעולם, למשתמש, 247 00:11:51,580 --> 00:11:54,680 ולקבוצה, הם כל ההפעלה. 248 00:11:54,680 --> 00:11:56,170 >> כולם טובים בזה? 249 00:11:56,170 --> 00:11:56,940 אוקיי. 250 00:11:56,940 --> 00:11:59,180 ולכן הדרך השנייה שבעצם אנחנו יכולים 251 00:11:59,180 --> 00:12:01,220 לכתוב גם זה אתה רק יכול לעשות chmod 252 00:12:01,220 --> 00:12:05,050 x בתוספת. אומר שכולם, כולם או. 253 00:12:05,050 --> 00:12:07,060 בתוספת פירושה מתן הרשאות ל. 254 00:12:07,060 --> 00:12:09,112 ואז x פירושו הפעלה. 255 00:12:09,112 --> 00:12:11,070 אז יש שתי פקודות זהים למעשה. 256 00:12:11,070 --> 00:12:12,903 אז אם אתה רוצה לרוץ זה במסוף שלך, 257 00:12:12,903 --> 00:12:15,830 אתה עושה chmod 111, שם הספרייה שלך או את הקובץ שלך. 258 00:12:15,830 --> 00:12:18,520 או שאתה יכול לעשות chmod x בתוספת, שמו של הקובץ בספרייה שלך. 259 00:12:18,520 --> 00:12:22,150 אותו דבר, רק דרך קלה יותר, אולי, לכמה לייצג או שינוי 260 00:12:22,150 --> 00:12:24,280 הרשאות קובץ. 261 00:12:24,280 --> 00:12:28,806 >> כל אישור אחד עם chmod לפני שאנחנו עוברים? 262 00:12:28,806 --> 00:12:31,700 לְהִתְקַרֵר. 263 00:12:31,700 --> 00:12:35,336 אז עכשיו אנחנו הולכים ראש לתוך כמה שקופיות של מושגים מופשטים מאוד 264 00:12:35,336 --> 00:12:37,210 כי אני די הרבה הולך רוח באמצעות. 265 00:12:37,210 --> 00:12:39,530 וזה בסדר לגמרי אם אתה לא מבין הכל. 266 00:12:39,530 --> 00:12:42,330 >> אפילו עכשיו, אני עדיין לא ממש מבין כל מה שלחלוטין. 267 00:12:42,330 --> 00:12:44,640 אבל זה יותר ממקבל ההבנה ברמה העליונה 268 00:12:44,640 --> 00:12:47,280 איך חלק מהדברים האלה עובדים. 269 00:12:47,280 --> 00:12:50,490 אז אנחנו הולכים לדבר במהירות על TCP / IP, 270 00:12:50,490 --> 00:12:54,880 וזה רק בקרת הילוכים פרוטוקול לקצץ פרוטוקול אינטרנט. 271 00:12:54,880 --> 00:12:57,135 >> נזכיר מהרצאה, דוד, שהוא ילמד אותך 272 00:12:57,135 --> 00:13:00,700 הדוגמא שבה הוא הייתי עובר ההערות במעטפה 273 00:13:00,700 --> 00:13:02,790 עד אוהב את החלק העליון של אולם ההרצאות? 274 00:13:02,790 --> 00:13:06,990 אז באולם בית הספר למשפטים דוד הפגין במהות 275 00:13:06,990 --> 00:13:10,370 איך TCP / IP עובד ב המובן שכל זה 276 00:13:10,370 --> 00:13:14,300 הוא הוא אמצעי להבטחת הנתונים ש נמסר על פני שרת 277 00:13:14,300 --> 00:13:15,870 או באינטרנט. 278 00:13:15,870 --> 00:13:22,270 אז בדוגמא של המעטפה וההודעה, המשתמש בסוף 279 00:13:22,270 --> 00:13:26,410 ניתן היה לראות ש, הו, אני צריך תקבל ארבע מנות של מידע. 280 00:13:26,410 --> 00:13:28,096 >> אבל אני באמת קיבלתי רק שלוש. 281 00:13:28,096 --> 00:13:29,470 שאומר שאני חייב להיות חסר אחד. 282 00:13:29,470 --> 00:13:30,760 ואחד מהם לא נמסר. 283 00:13:30,760 --> 00:13:33,990 וכך TCP / IP באינטרנט, באמצעות המחשב והשרת, 284 00:13:33,990 --> 00:13:35,500 עושה בדיוק את אותו הדבר. 285 00:13:35,500 --> 00:13:38,900 כל שהיא עושה היא לציין מסגרת שבה נתונים שאבדו 286 00:13:38,900 --> 00:13:41,100 ניתן להתרעם מנות וקיבלו. 287 00:13:41,100 --> 00:13:44,760 >> כמו באינטרנט כאשר אתה מנסה כדי לגשת לקבצים באינטרנט או לשלוח קבצים 288 00:13:44,760 --> 00:13:48,210 לחבר שלך או מסתכלים על אינטרנט דפדפנים, אלפים ואלפים 289 00:13:48,210 --> 00:13:50,440 מיליארדים ומיליארדים בתים מידע 290 00:13:50,440 --> 00:13:52,840 מועברים לאלפית שני. 291 00:13:52,840 --> 00:13:54,560 וזה באמת, באמת מבלבל. 292 00:13:54,560 --> 00:13:57,110 וזה ממש קשה למעשה יודע מה נשלח 293 00:13:57,110 --> 00:13:58,270 ומה לא נשלח. 294 00:13:58,270 --> 00:14:02,210 >> וכך TCP / IP רק מציין מסגרת מלוכדת 295 00:14:02,210 --> 00:14:04,115 שבו האינטרנט שלך דפדפן והשרת שלך 296 00:14:04,115 --> 00:14:05,990 סוג של יכול לתקשר אחד עם השני, רק 297 00:14:05,990 --> 00:14:08,550 לוודא שמנות הן כולם כאן ושום דבר לא אבוד 298 00:14:08,550 --> 00:14:12,700 ואת כל הנתונים שביקשתם למעשה מוצגות כראוי. 299 00:14:12,700 --> 00:14:16,350 כולם אישור על רק שמאוד רמה גבוהה קצרה מבינה? 300 00:14:16,350 --> 00:14:18,510 לְהִתְקַרֵר. 301 00:14:18,510 --> 00:14:21,550 >> אז אנחנו הולכים לעבור למדבר על HTTP, ש 302 00:14:21,550 --> 00:14:24,610 רק Hypertext Transfer Protocol. 303 00:14:24,610 --> 00:14:32,550 HTTP, כל זה הוא מה שכל דף או קבצים הוא גישה באתר שלך, 304 00:14:32,550 --> 00:14:35,810 שרת מחזיר HTTP קוד מצב בתגובה 305 00:14:35,810 --> 00:14:39,869 לבקשה לוודא ש או, אה, בקשה זו עברה. 306 00:14:39,869 --> 00:14:41,410 וכל מה ששלו מוצגות כראוי. 307 00:14:41,410 --> 00:14:43,500 או, אה, לא, 404. 308 00:14:43,500 --> 00:14:44,730 משהו השתבש. 309 00:14:44,730 --> 00:14:45,940 אה, אני לא יכול להציג. 310 00:14:45,940 --> 00:14:50,370 >> כל זה הוא שכל מה ש אתה מנסה לגשת, 311 00:14:50,370 --> 00:14:55,160 להשתמש כמשתמש מנסה לגשת, על internet-- רק לוודא 312 00:14:55,160 --> 00:15:00,080 כי אתה גם צריך בהצלחה מה שזה לא היה גישה או לא 313 00:15:00,080 --> 00:15:02,080 בהצלחה נצפה מה שזה לא היה. 314 00:15:02,080 --> 00:15:05,120 וכך מצב HTTP קוד רק מספק לך 315 00:15:05,120 --> 00:15:09,910 אמצעי של להיות מסוגל לדעת אם או לא זה היה מוצלח או לא. 316 00:15:09,910 --> 00:15:13,440 כך למשל, בקשת דוגמא. 317 00:15:13,440 --> 00:15:16,050 >> אתה יכול לראות כאן זה בדרך כלל בדרך כלל ארבעה קווים. 318 00:15:16,050 --> 00:15:22,530 יש לנו HTTP GET 1.1, שהוא רק כתובת אתר בקשת השיטה, הפרוטוקול 319 00:15:22,530 --> 00:15:24,490 גרסה, שם השדה, וערך השדה. 320 00:15:24,490 --> 00:15:26,810 כך שאין צורך לחלוטין לשנן שום דבר כאן. 321 00:15:26,810 --> 00:15:29,960 רק סוג של קראתי את עצמך עם איך האלה נראים. 322 00:15:29,960 --> 00:15:34,060 >> בדוגמא זו, בקשת השיטה כתובת אתר היא רק מה שבקשה 323 00:15:34,060 --> 00:15:35,620 אתה שולח את השרת. 324 00:15:35,620 --> 00:15:40,710 כמו, היי, שרת, אני באמת רוצה גישה יאדה, תאדה, תאדה, דף HTTP. 325 00:15:40,710 --> 00:15:43,785 גרסת הפרוטוקול היא רק מה ש המארח שלך גרסה או השרת שלך 326 00:15:43,785 --> 00:15:45,490 הוא משתמש כדי לגשת למידע. 327 00:15:45,490 --> 00:15:49,510 >> שם השדה הוא האתר או כתובת אתר שאתה מנסה לגשת, 328 00:15:49,510 --> 00:15:52,610 במקרה זה, www.apple.com. 329 00:15:52,610 --> 00:15:56,110 והוא ערך השדה רק בדרך כלל שם, ערך. 330 00:15:56,110 --> 00:15:59,540 וזה יכול להיות כל סוג של שילוב של אותיות או מספרים או משהו כזה. 331 00:15:59,540 --> 00:16:02,890 >> אז בקשה טיפוסית, כך מה המחשב שלך למעשה 332 00:16:02,890 --> 00:16:08,400 שולח לשרת שאומר, היי, אתה יודע למה אני צריך את זה מוצג, 333 00:16:08,400 --> 00:16:13,000 זה הסוג של בקשה שהם מקבלים בפועל. 334 00:16:13,000 --> 00:16:16,760 תגובת דוגמא למה ש השרת ישלח בחזרה אליך 335 00:16:16,760 --> 00:16:20,320 יהיה פחות או יותר את אותו הדבר, אלא בקוד מצב בחלק העליון. 336 00:16:20,320 --> 00:16:24,550 אז 200, 2 0 0 תמיד קוד המצב לאישור. 337 00:16:24,550 --> 00:16:26,050 כמו, אישור, בקשה זו עברה. 338 00:16:26,050 --> 00:16:27,980 הייתם יכול לגשת ל הכל נכון. 339 00:16:27,980 --> 00:16:28,810 החיים טובים. 340 00:16:28,810 --> 00:16:29,990 חיים יפים. 341 00:16:29,990 --> 00:16:32,150 הכל טוב לגמרי. 342 00:16:32,150 --> 00:16:36,050 >> ואז זה רק אומר לי הדפדפן ו השרת שלך, היי, טוב של הכל. 343 00:16:36,050 --> 00:16:37,470 יש לי את כל המידע שאני צריך. 344 00:16:37,470 --> 00:16:39,160 לְהִתְקַרֵר. 345 00:16:39,160 --> 00:16:41,790 אבל הבעיה היא לפעמים בעיות לבוא 346 00:16:41,790 --> 00:16:46,850 כאשר אתה נו-- תימשך אני חושב ש אני דיברתי על כפילויות. 347 00:16:46,850 --> 00:16:48,870 יש לך תגובות פחות טובות. 348 00:16:48,870 --> 00:16:52,660 >> כך למשל, 404 הוא הדף לא נמצא. 349 00:16:52,660 --> 00:16:54,897 לפעמים יש לך גישה אסורה. 350 00:16:54,897 --> 00:16:56,730 יש לך שונים אחרים קודי מצב שאני 351 00:16:56,730 --> 00:16:59,688 בטוח שכולכם ראית כשאתה מנסה לעשות מחקר באינטרנט. 352 00:16:59,688 --> 00:17:02,300 והדפדפן שלך נותן לך , לא, לא יכול לגשת. 353 00:17:02,300 --> 00:17:04,190 ואתה כמו, כן, שטויות. 354 00:17:04,190 --> 00:17:09,260 >> אז פשוט פחות או יותר, יש כמה קודי מצב די נפוצים. 355 00:17:09,260 --> 00:17:14,109 אולי קראתי בעצמך עם אילו אלה. 356 00:17:14,109 --> 00:17:16,000 הכי מצחיק זה ש אני חושב שאי פעם שמעתי 357 00:17:16,000 --> 00:17:18,040 ל-- אם יקרה לך נראה את כולם 358 00:17:18,040 --> 00:17:21,490 באינטרנט, מסיבה כלשהי יש למעשה קוד מצב אמיתי 359 00:17:21,490 --> 00:17:26,619 נקרא 418 אני קומקום. 360 00:17:26,619 --> 00:17:29,610 >> אני בגוגל בי מקורו של זה היה מ. 361 00:17:29,610 --> 00:17:33,150 וכנראה אחד אפריל טיפשים ' יום כמה עשרות שנים לפני, 362 00:17:33,150 --> 00:17:36,415 מישהו חשב שזה יהיה מצחיק כדי ליצור קוד מצב חדש בשם 418 363 00:17:36,415 --> 00:17:37,380 אני קומקום. 364 00:17:37,380 --> 00:17:40,760 לגיטימי, את שמו של זה קוד נקרא אני קומקום. 365 00:17:40,760 --> 00:17:43,670 >> אני שוכח מה שיש לך דף ל ללכת בעצם לעשות תצוגה זו. 366 00:17:43,670 --> 00:17:47,955 אבל כנראה, שאתה באמת יכול להשיג קוד מצב אני 367 00:17:47,955 --> 00:17:51,400 קומקום איכשהו דרך לעשות משהו. 368 00:17:51,400 --> 00:17:54,480 אז יש מאות ו מאות קודי מצב. 369 00:17:54,480 --> 00:17:56,730 >> חלק מהם לעשות יותר תחושה יותר מאחרים. 370 00:17:56,730 --> 00:18:01,430 אבל פחות או יותר רק קראתי את עצמך עם אלה הנפוצים ביותר. 371 00:18:01,430 --> 00:18:04,090 גוף הישות המבוקש קצר ועבה, ככל הנראה. 372 00:18:04,090 --> 00:18:07,990 >> אז לפעמים יש יותר שגיאות מפחידות מאני קומקום. 373 00:18:07,990 --> 00:18:11,210 אבל זה אחד שאני מניח ש אתה סוג של מקווה להכות. 374 00:18:11,210 --> 00:18:14,130 אבל אני לא חושב שאתה לא. 375 00:18:14,130 --> 00:18:17,260 כולם טובים רק על מצב קודים, בקשות, תהליכים, קבלת 376 00:18:17,260 --> 00:18:19,155 מידע בטוח מועבר כראוי? 377 00:18:19,155 --> 00:18:22,270 378 00:18:22,270 --> 00:18:26,120 >> אז עכשיו אנחנו הולכים למעבר לשל חלק מהנה של סעיף היום, 379 00:18:26,120 --> 00:18:28,500 שבו אנחנו מדברים קצת על HTML. 380 00:18:28,500 --> 00:18:32,580 HTML, כל זה הוא HyperText שפת סימון. 381 00:18:32,580 --> 00:18:35,160 זה רק השפה סטנדרטית אתה משתמש כדי ליצור את כל האינטרנט 382 00:18:35,160 --> 00:18:36,690 דפים באינטרנט. 383 00:18:36,690 --> 00:18:39,560 >> אז כל דף אינטרנט, מה דף האינטרנט האהוב עליך? 384 00:18:39,560 --> 00:18:40,855 מה דף האינטרנט האהוב עליך? 385 00:18:40,855 --> 00:18:41,771 >> קהל: [לא ברור]. 386 00:18:41,771 --> 00:18:42,270 387 00:18:42,270 --> 00:18:43,090 ANDI פנג: מצטער? 388 00:18:43,090 --> 00:18:43,980 >> קהל: Tumblr. 389 00:18:43,980 --> 00:18:44,730 >> ANDI פנג: Tumblr. 390 00:18:44,730 --> 00:18:46,800 אז Tumblr כתוב ב- HTML. 391 00:18:46,800 --> 00:18:50,700 ואז אנחנו בעצם לעבור ו לשחק עם כמה מהדברים האלה 392 00:18:50,700 --> 00:18:51,980 מאוחר יותר. 393 00:18:51,980 --> 00:18:54,980 פחות או יותר כל מה שאתה צריך ללמוד, לדעת, 394 00:18:54,980 --> 00:18:58,540 לכתוב HTML אתה יכול כנראה רק גוגל באינטרנט. 395 00:18:58,540 --> 00:19:04,490 >> HTML, זה לא תכנית כמו C שבו אתה יכול ליצור משתנים ולעשות 396 00:19:04,490 --> 00:19:05,600 דברים מגניבים עם זה. 397 00:19:05,600 --> 00:19:08,747 זה יותר פשוט, אה, זה איך אני רוצה שדברים מופיעים באתר האינטרנט שלי. 398 00:19:08,747 --> 00:19:10,080 ואני רק הולך לשים את זה ב. 399 00:19:10,080 --> 00:19:12,160 וזה הולך לעצב אותו. 400 00:19:12,160 --> 00:19:15,650 >> אז HTML, במובן מסוים, זה בדיוק כמו שפת עיצוב או תבנית. 401 00:19:15,650 --> 00:19:16,680 זה הרבה יותר קל. 402 00:19:16,680 --> 00:19:19,030 זה הרבה יותר קל ללמוד, הרבה יותר קל לכתוב ב 403 00:19:19,030 --> 00:19:21,450 מ תכנות הטיפוסי שלך שפה, קלה מאוד, 404 00:19:21,450 --> 00:19:24,310 מאוד ידידותי לנגיש וידידותי. 405 00:19:24,310 --> 00:19:29,040 >> אז אנחנו למעשה הולכים לשחק מסביב, לכתוב הדפים שלנו היום. 406 00:19:29,040 --> 00:19:32,900 אבל לפני שנתחיל, אני רק רוצה לעבור על כמה שיטות עבודה מומלצות קצרה. 407 00:19:32,900 --> 00:19:35,660 בגלל HTML הוא כזה קל שפה וכי גם 408 00:19:35,660 --> 00:19:39,012 אם אתה עושה כמה דברים לא נכונים, לפעמים זה עלול שלא להבחין, 409 00:19:39,012 --> 00:19:41,970 אנחנו רוצים לוודא שאנחנו למעשה הקפדה על שיטות העבודה מומלצת שלנו 410 00:19:41,970 --> 00:19:44,490 כדי לוודא שדברים ש יכול להיות הולך מסביב אבל 411 00:19:44,490 --> 00:19:49,660 לא תמיד הולכים לא ללכת ימינה לוודא שהם ממוזערים. 412 00:19:49,660 --> 00:19:53,570 >> אז פחות או יותר, לוודא כל התגים שלך הסגירה שלך 413 00:19:53,570 --> 00:19:54,737 כאשר אתה כותב ב- HTML. 414 00:19:54,737 --> 00:19:56,486 אם אתה פותח גוף, לוודא שאתה 415 00:19:56,486 --> 00:19:58,015 סגירתו עם גוף במקום. 416 00:19:58,015 --> 00:20:00,720 אתה רוצה לוודא ש דף האינטרנט מאמת באמצעות 417 00:20:00,720 --> 00:20:02,070 מה שנקרא Validator W3. 418 00:20:02,070 --> 00:20:05,460 אתה יכול רק גוגל כי מקוון, ויש קישור אליו. 419 00:20:05,460 --> 00:20:07,820 >> ואז אתה רוצה HTML הנפרד, ש 420 00:20:07,820 --> 00:20:13,060 היא שפת הסימון שלך מהסגנון שלך, שהיא השפה CSS שדוד 421 00:20:13,060 --> 00:20:17,510 הוכיח שאנחנו גם הולך לשחק קצת עם הרצאה. 422 00:20:17,510 --> 00:20:19,120 לְהִתְקַרֵר. 423 00:20:19,120 --> 00:20:23,500 אז כל פעם שאתה רוצה לרוץ HTML על מכשיר CS50, 424 00:20:23,500 --> 00:20:26,240 אנחנו הולכים לרוץ תכנית בשם אפאצ'י, 425 00:20:26,240 --> 00:20:29,810 שכל זה הוא רק נבנה ב שרת אינטרנט שכולם בCS50 426 00:20:29,810 --> 00:20:31,410 יש לו גישה ל. 427 00:20:31,410 --> 00:20:35,700 אנחנו קוראים לזה apache50 רק בגלל שאנחנו רוצה לקרוא את כל מה -50 בCS50. 428 00:20:35,700 --> 00:20:39,610 >> לכן הדרך שאתה מתחיל באינטרנט CS50 שרת הוא על ידי הקלדה על הפקודה שלך 429 00:20:39,610 --> 00:20:42,860 קו apache50 להתחיל נקודה. 430 00:20:42,860 --> 00:20:46,665 ואם אתה רוצה לסיים אותו בכל זמן, אתה בסופו של apache50 לא נקודה. 431 00:20:46,665 --> 00:20:47,910 ואתה פשוט לחץ על Enter. 432 00:20:47,910 --> 00:20:50,810 ואת זה צריך להיות כותרת כאן בקרוב. 433 00:20:50,810 --> 00:20:53,630 434 00:20:53,630 --> 00:20:54,130 כן. 435 00:20:54,130 --> 00:20:58,110 אז רק אני הולך לעבור במהירות על דוגמא לדף אינטרנט באמת קצר. 436 00:20:58,110 --> 00:21:00,280 ואנחנו הולכים לבלות כמו 10, 15 דקות משחק 437 00:21:00,280 --> 00:21:04,008 סביב כתיבת דפי האינטרנט שלנו. 438 00:21:04,008 --> 00:21:05,320 אוקיי. 439 00:21:05,320 --> 00:21:07,841 אז הנה בIDE-- יכול כולם רואים את זה? 440 00:21:07,841 --> 00:21:08,340 לא באמת. 441 00:21:08,340 --> 00:21:11,400 הנה, אני להתקרב. 442 00:21:11,400 --> 00:21:15,850 >> רק שיש לי תבנית קצרה כאן עם שום דבר לא באמת בזה. 443 00:21:15,850 --> 00:21:20,660 אנחנו רק הולכים לכתוב במהירות תכנית HTML שבו אנחנו פשוט 444 00:21:20,660 --> 00:21:22,050 להגיד שלום לעולם. 445 00:21:22,050 --> 00:21:24,970 אז אותו דבר כמו ב- C, עכשיו אנחנו רק הולך לעשות את זה ב- HTML. 446 00:21:24,970 --> 00:21:28,250 האם מישהו רוצה בעצם רק נסה לתת לי את הדבר הראשון שאתה 447 00:21:28,250 --> 00:21:31,870 היה צריך לשים במסמך HTML? 448 00:21:31,870 --> 00:21:32,850 כן. 449 00:21:32,850 --> 00:21:35,965 >> קהל: בסוגריים, [לא ברור]. 450 00:21:35,965 --> 00:21:36,590 ANDI פנג: כן. 451 00:21:36,590 --> 00:21:47,200 452 00:21:47,200 --> 00:21:50,930 אז משהו שהוא מאוד ייחודי ל HTML שאנחנו בדרך כלל באופן מסורתי 453 00:21:50,930 --> 00:21:56,080 לא נתקל בפקודה אחרת שפות תכנות ברמת הקו 454 00:21:56,080 --> 00:21:59,890 הוא שאנחנו באמת ל לציין את סוג הקובץ 455 00:21:59,890 --> 00:22:01,987 שזה הולך להיות בחלק העליון של הקוד שלנו. 456 00:22:01,987 --> 00:22:04,570 אז בinstance-- זה אני חושב ש זה הפקודה הנכונה, נכון? 457 00:22:04,570 --> 00:22:10,050 458 00:22:10,050 --> 00:22:10,550 כן. 459 00:22:10,550 --> 00:22:14,860 בחלק העליון, אתה רק רוצה לכלול html DOCTYPE מפץ בסוגריים רק 460 00:22:14,860 --> 00:22:17,670 לספר המחשב, היי, תיזהר. 461 00:22:17,670 --> 00:22:20,050 ומסמך ה- HTML הוא בא. 462 00:22:20,050 --> 00:22:22,250 ואז איך אנחנו רוצים כדי להתחיל הקובץ שלנו? 463 00:22:22,250 --> 00:22:25,540 אם אנחנו רק רוצים להגיד שלום, יש לי דף האינטרנט שאומר שלום לעולם, 464 00:22:25,540 --> 00:22:26,915 איך אנחנו הולכים על בנייה זו? 465 00:22:26,915 --> 00:22:32,910 466 00:22:32,910 --> 00:22:35,300 >> למעשה, בואו נפנה לגוגל. 467 00:22:35,300 --> 00:22:36,910 ואנחנו באמת יכולים לעשות את זה. 468 00:22:36,910 --> 00:22:43,170 469 00:22:43,170 --> 00:22:43,670 כן. 470 00:22:43,670 --> 00:22:44,840 הנה. 471 00:22:44,840 --> 00:22:47,630 אז HTML. 472 00:22:47,630 --> 00:22:52,390 כפי שניתן לראות, הדפדפן שלי הוא למעשה באופן אוטומטי סטיילינג זה בשבילי. 473 00:22:52,390 --> 00:22:56,010 >> אותו דבר כמו ב- C, כאשר אתה ליצור סד מתולתל פתוח, 474 00:22:56,010 --> 00:22:59,020 הדפדפן שלך באופן אוטומטי מוסיף בסד מתולתל קרוב. 475 00:22:59,020 --> 00:23:02,210 למזלנו, IDE שלנו אוהב גם לעשות את זה בשבילנו. 476 00:23:02,210 --> 00:23:05,490 אז עכשיו אנחנו יכולים סוג של הזן תחילתו של תג, 477 00:23:05,490 --> 00:23:09,139 וזה הולך תמיד לומר לנו ל זוכר להקליד את סוף התג. 478 00:23:09,139 --> 00:23:10,680 אני חושב שזה צריך להיות מהוון. 479 00:23:10,680 --> 00:23:15,510 480 00:23:15,510 --> 00:23:21,760 ולאחר מכן אנחנו רוצים להוסיף, תמיד, ראש שבהוא הכותרת. 481 00:23:21,760 --> 00:23:25,270 482 00:23:25,270 --> 00:23:29,160 אנחנו רק רוצים אולי לקרוא שלום זה, ולאחר מכן גוף. 483 00:23:29,160 --> 00:23:34,010 484 00:23:34,010 --> 00:23:36,310 >> והנה לך. 485 00:23:36,310 --> 00:23:39,650 שהוא למעשה מסמך ה- HTML שלנו. 486 00:23:39,650 --> 00:23:45,030 לכן הדרך שכל מסמך HTML תמיד מנוסח in-- אותו דבר 487 00:23:45,030 --> 00:23:46,720 עם החלל מרכזי int. 488 00:23:46,720 --> 00:23:49,600 אתה תמיד רוצה שיהיה לי HTML תג פתיחה וסגירה 489 00:23:49,600 --> 00:23:52,100 בחלק העליון והתחתון של הקוד שלך. 490 00:23:52,100 --> 00:23:56,900 >> אתה רוצה להיות ראש בתוך המכיל את הכותרת, רק מה ש 491 00:23:56,900 --> 00:24:01,430 הוא הולך להציג את הכרטיסייה שלך באינטרנט דף, ולאחר מכן גוף בתוכה 492 00:24:01,430 --> 00:24:04,120 יהיה למעשה להציג את התוכן של מה שאתה רוצה לעשות. 493 00:24:04,120 --> 00:24:08,220 אז אם אתה רוצה לרוץ למעשה זה, אני הולך להתמקד בחזרה החוצה. 494 00:24:08,220 --> 00:24:12,740 למעשה אתה יכול להתחיל apache50 להתחיל נקודה. 495 00:24:12,740 --> 00:24:15,650 496 00:24:15,650 --> 00:24:16,150 לְהִתְקַרֵר. 497 00:24:16,150 --> 00:24:18,980 ואז כפי שאתם יכולים לראות, עכשיו קישור זה צץ. 498 00:24:18,980 --> 00:24:21,940 זה אומר שהאתר שלך עכשיו זמין בכמה קישור הבא. 499 00:24:21,940 --> 00:24:25,910 אז כולנו יש IDE done-- לא IDE, sorry-- כן, 500 00:24:25,910 --> 00:24:33,280 IDE שלנו עשה הוא ליצור אינטרנט קישור שעליו כל דפי האינטרנט שלנו 501 00:24:33,280 --> 00:24:35,407 ניתן לגשת בשרת. 502 00:24:35,407 --> 00:24:36,490 אז בואו נסתכל כאן. 503 00:24:36,490 --> 00:24:40,240 >> בואו ללחוץ על זה, ללכת לhello.html. 504 00:24:40,240 --> 00:24:42,895 ואתה רואה פשוט מאוד דף האינטרנט לעולם שלום. 505 00:24:42,895 --> 00:24:46,477 506 00:24:46,477 --> 00:24:47,420 אוקיי. 507 00:24:47,420 --> 00:24:50,513 אנחנו בעצם הולכים רק יש לי everyone-- כן, מה קורה? 508 00:24:50,513 --> 00:24:52,353 >> קהל: יש לי שאלה בסיסית. 509 00:24:52,353 --> 00:24:52,978 ANDI פנג: כן. 510 00:24:52,978 --> 00:24:58,064 קהל: איך אתה לחסוך הקובץ שלך כHTML? 511 00:24:58,064 --> 00:24:58,730 ANDI פנג: כן. 512 00:24:58,730 --> 00:25:02,960 513 00:25:02,960 --> 00:25:10,820 אז אם אני היה ליצור קובץ חדש, אם אני עושה את הקובץ חדש, Untittle, אם אני עושה, 514 00:25:10,820 --> 00:25:14,390 section.html, בום, זה כל מה שאני צריך לעשות. 515 00:25:14,390 --> 00:25:15,363 >> קהל: [לא ברור]? 516 00:25:15,363 --> 00:25:15,946 ANDI פנג: מס ' 517 00:25:15,946 --> 00:25:16,660 קהל: [לא ברור]. 518 00:25:16,660 --> 00:25:17,240 ANDI פנג: מס ' 519 00:25:17,240 --> 00:25:18,156 קהל: [לא ברור]. 520 00:25:18,156 --> 00:25:19,110 ANDI פנג: כן. 521 00:25:19,110 --> 00:25:24,300 פחות או יותר, הארכה על הקובץ שנמצא בתוך ה- IDE שלך, 522 00:25:24,300 --> 00:25:27,840 המספר את המחשב, ש אומר לדפדפן, היי, ייזהר. 523 00:25:27,840 --> 00:25:30,480 זה הולך להיות קוד נכתב בשפה זו. 524 00:25:30,480 --> 00:25:34,240 כך למשל, במיקרוסופט מילה, מה שעושה את כל מסמכי Word 525 00:25:34,240 --> 00:25:37,070 בסופו של עם, מה סיומת? 526 00:25:37,070 --> 00:25:39,830 .doc או .docx, נכון? 527 00:25:39,830 --> 00:25:42,299 >> כל מה שעושה הוא מציין ל מערכת הפעלה שלך, היי, 528 00:25:42,299 --> 00:25:43,840 יש לך מסמך Word מתקרב. 529 00:25:43,840 --> 00:25:44,940 לפתוח אותו עם Word. 530 00:25:44,940 --> 00:25:46,955 אותו דבר עם קבצי PDF. 531 00:25:46,955 --> 00:25:49,650 הוא יודע, הו, אני צריך כדי לפתוח את הקובץ הזה 532 00:25:49,650 --> 00:25:52,020 עם Adobe Reader או Adobe Acrobat. 533 00:25:52,020 --> 00:25:56,130 >> וכך פועלות הרחבות אותו אופן כמו במחשב שלך. 534 00:25:56,130 --> 00:26:00,750 אם תציין בדף הקוד שלך להיות שם HTML, אז הוא יודע, 535 00:26:00,750 --> 00:26:01,880 אה, יש לך קוד HTML. 536 00:26:01,880 --> 00:26:04,890 אני הולך להתייחס אליו כקוד ה- HTML. 537 00:26:04,890 --> 00:26:06,600 אז זה סופר חכם במובן זה. 538 00:26:06,600 --> 00:26:11,360 539 00:26:11,360 --> 00:26:18,730 >> אז כולם, בואו ניקח כמו 10 דקות ורק ליצור אתרי האינטרנט שלנו. 540 00:26:18,730 --> 00:26:21,020 בואו נוסיף בדברים היפים. 541 00:26:21,020 --> 00:26:23,440 תרגיש חופשי להגיד מה שאתה רוצה. 542 00:26:23,440 --> 00:26:27,890 אני רק רוצה לוודא ש השרתים של כולם פועלים בצורה נכונה 543 00:26:27,890 --> 00:26:31,220 לפני שנשחרר אותך לpset. 544 00:26:31,220 --> 00:26:33,490 כי אם השרתים שלך לא לרוץ לpset, 545 00:26:33,490 --> 00:26:34,847 שיהיה באמת, באמת רע. 546 00:26:34,847 --> 00:27:17,380 547 00:27:17,380 --> 00:27:21,093 >> אני רק הולך לרחף ו לראות מה שכולם עובד על. 548 00:27:21,093 --> 00:27:26,965 549 00:27:26,965 --> 00:27:27,590 איך הולך? 550 00:27:27,590 --> 00:27:29,048 >> קהל: אני רק הדלקתי את המחשב שלי. 551 00:27:29,048 --> 00:27:29,923 >> ANDI פנג: זה בסדר. 552 00:27:29,923 --> 00:27:41,200 553 00:27:41,200 --> 00:27:42,390 >> קהל: [לא ברור]. 554 00:27:42,390 --> 00:27:44,284 >> ANDI פנג: רק IDE שלך. 555 00:27:44,284 --> 00:27:44,784 כן. 556 00:27:44,784 --> 00:27:54,040 557 00:27:54,040 --> 00:27:55,910 >> קהל: [לא ברור]. 558 00:27:55,910 --> 00:27:57,590 >> ANDI פנג: זה בסדר. 559 00:27:57,590 --> 00:27:59,491 >> קהל: [לא ברור]. 560 00:27:59,491 --> 00:28:00,490 ANDI פנג: לגמרי בסדר. 561 00:28:00,490 --> 00:28:47,705 562 00:28:47,705 --> 00:28:51,530 האם כולם גישה אישור השרת שלהם באינטרנט? 563 00:28:51,530 --> 00:28:52,970 האם apache50 פועל בסדר? 564 00:28:52,970 --> 00:28:54,700 אני חושב שבחלק הסעיפים האחרים, אנחנו 565 00:28:54,700 --> 00:28:58,790 היו בעיות עם אנשים לא להיות מסוגלת לגשת לשרת. 566 00:28:58,790 --> 00:28:59,290 כן. 567 00:28:59,290 --> 00:29:05,764 אז אתה פשוט להפעיל apache50 החלל להתחיל תקופה החלל. 568 00:29:05,764 --> 00:29:06,680 קהל: [לא ברור]. 569 00:29:06,680 --> 00:29:07,610 ANDI פנג: כן. 570 00:29:07,610 --> 00:29:08,294 טוֹב? 571 00:29:08,294 --> 00:29:09,210 >> קהל: [לא ברור]. 572 00:29:09,210 --> 00:29:12,530 573 00:29:12,530 --> 00:29:13,350 >> ANDI פנג: אה, בסדר. 574 00:29:13,350 --> 00:29:14,808 אז אתה אמור להיות בחלל. 575 00:29:14,808 --> 00:29:15,425 אז apache50-- 576 00:29:15,425 --> 00:29:16,115 >> קהל: אני עשיתי. 577 00:29:16,115 --> 00:29:17,661 >> ANDI פנג: חלל --start. 578 00:29:17,661 --> 00:29:18,660 קהל: הו, נקודה בחלל. 579 00:29:18,660 --> 00:29:20,110 ANDI פנג: כן, נקודה בחלל. 580 00:29:20,110 --> 00:29:23,230 הנה לך. 581 00:29:23,230 --> 00:29:25,490 אז אם יש לך דף HTML שנוצר, 582 00:29:25,490 --> 00:29:28,560 אז אתה יכול פשוט ללכת ישירות לקישור שהוא מציין. 583 00:29:28,560 --> 00:29:30,539 ואתה אמור להיות מסוגל לגשת אליו. 584 00:29:30,539 --> 00:29:35,130 585 00:29:35,130 --> 00:29:37,876 >> כולם היה מסוגלים גישה לדפי האינטרנט שלהם בסדר? 586 00:29:37,876 --> 00:29:39,339 >> קהל: [לא ברור]. 587 00:29:39,339 --> 00:29:40,380 ANDI פנג: אה, זה בסדר. 588 00:29:40,380 --> 00:29:43,551 589 00:29:43,551 --> 00:29:44,964 >> קהל: [לא ברור]. 590 00:29:44,964 --> 00:29:45,630 ANDI פנג: כן. 591 00:29:45,630 --> 00:29:48,171 אני חושב שאתה ממש יכול לפתוח זה בתוך הדפדפן, הדפדפן שלך 592 00:29:48,171 --> 00:29:49,955 ולא רק דפדפן IDE שלך. 593 00:29:49,955 --> 00:29:51,580 כן, אני חושב שאם אתה מעתיק ומדביק אותו. 594 00:29:51,580 --> 00:29:53,920 >> קהל: ואז איך אנחנו לכבות אותו? 595 00:29:53,920 --> 00:29:54,590 [לא ברור] 596 00:29:54,590 --> 00:29:58,720 >> ANDI פנג: כן, אתה עושה apache50 לעצור ללא התקופה. 597 00:29:58,720 --> 00:29:59,220 כן. 598 00:29:59,220 --> 00:30:01,180 >> קהל: [לא ברור]. 599 00:30:01,180 --> 00:30:02,768 >> ANDI פנג: ללא התקופה. 600 00:30:02,768 --> 00:30:04,051 כן. 601 00:30:04,051 --> 00:30:04,550 הנה. 602 00:30:04,550 --> 00:30:05,050 כן. 603 00:30:05,050 --> 00:30:08,480 604 00:30:08,480 --> 00:30:09,855 אנחנו יוצרים את דפי האינטרנט שלנו. 605 00:30:09,855 --> 00:30:10,646 >> קהל: הו, מגניב. 606 00:30:10,646 --> 00:30:13,396 607 00:30:13,396 --> 00:30:14,062 ANDI פנג: כן. 608 00:30:14,062 --> 00:30:20,484 609 00:30:20,484 --> 00:30:22,420 >> קהל: יש לי שאלה. 610 00:30:22,420 --> 00:30:25,294 אז אפאצ'י 50-- 611 00:30:25,294 --> 00:30:26,731 >> ANDI פנג: 50, כן. 612 00:30:26,731 --> 00:30:28,168 >> קהל: [לא ברור]. 613 00:30:28,168 --> 00:30:29,130 >> ANDI פנג: מה? 614 00:30:29,130 --> 00:30:29,750 זה מוזר. 615 00:30:29,750 --> 00:30:32,244 ראה, שהיה סוג של הבעיה שקורה לפני. 616 00:30:32,244 --> 00:30:37,820 617 00:30:37,820 --> 00:30:38,730 אוקיי. 618 00:30:38,730 --> 00:30:39,800 לראות אותי אחרי הסעיף. 619 00:30:39,800 --> 00:30:42,320 בגלל שיש לנו כמה בעיות עם השרת. 620 00:30:42,320 --> 00:30:44,325 >> ואתה רוצה לעשות בטוח שהשרת שלך הוא 621 00:30:44,325 --> 00:30:45,700 לפני שמתחיל לרוץ pset. 622 00:30:45,700 --> 00:30:47,800 בגלל שאתה הולך צריך את זה. 623 00:30:47,800 --> 00:30:48,300 כן. 624 00:30:48,300 --> 00:30:51,299 האם יש עוד מישהו שלא היה תוכל לקבל השרת שלהם להתחיל? 625 00:30:51,299 --> 00:31:12,410 626 00:31:12,410 --> 00:31:17,840 >> לאלו מכם שרוצים להוסיף סגנון נוסף לדפי האינטרנט שלך, 627 00:31:17,840 --> 00:31:20,450 אנחנו באמת יכולים לעשות מה ש גם דוד עשה בהרצאה, 628 00:31:20,450 --> 00:31:24,070 אשר הוא ליצור סגנון נוסף גיליון, שהוא נקודה CSS, מדורג 629 00:31:24,070 --> 00:31:30,080 גיליון סגנון ולמעשה רק להוסיף אותו ב. 630 00:31:30,080 --> 00:31:33,550 כך למשל, אני פשוט יצרתי פחות או יותר כמעט באותם אחד 631 00:31:33,550 --> 00:31:37,180 דוד עשה בהרצאה. 632 00:31:37,180 --> 00:31:39,220 אתה יכול פחות או יותר פשוט לעשות את הגוף. 633 00:31:39,220 --> 00:31:45,980 >> יש לך מה שנקרא תגים שב ניתן להחיל על IDE מה קטע 634 00:31:45,980 --> 00:31:48,650 אתה רוצה בתוכך בפועל לדף HTML. 635 00:31:48,650 --> 00:31:54,890 אז הגוף של הדף, אתה יכול לעשות ליישר למרכז טקסט. 636 00:31:54,890 --> 00:31:58,110 ואז אני יצירתי עליון תג נקרא בתוך 637 00:31:58,110 --> 00:32:01,860 שאני רוצה את הדברים האלה ל יקרה, להקצות גודל פיקסל גדול יותר 638 00:32:01,860 --> 00:32:03,104 לגופן. 639 00:32:03,104 --> 00:32:04,520 אני רוצה את משקל הגופן להיות נועז. 640 00:32:04,520 --> 00:32:06,478 ואני רוצה את הצבע ל להיות כחול, רק שרירותי 641 00:32:06,478 --> 00:32:08,570 ערכים שהחלטתי לבחור. 642 00:32:08,570 --> 00:32:10,870 אני יכול ליצור תג נוסף הנקרא אמצע. 643 00:32:10,870 --> 00:32:12,640 גודל גופן, לעשות את זה קצת יותר קטן. 644 00:32:12,640 --> 00:32:17,730 ואז אני יכול ליצור תג אחר תחתון בשם שבו אני רוצה את גודל הגופן 645 00:32:17,730 --> 00:32:20,900 להיות קטן עוד יותר עדיין. 646 00:32:20,900 --> 00:32:25,630 >> וכך פחות או יותר זה הוא רק דוגמא גיליונות סגנון קוד המקור או מקור 647 00:32:25,630 --> 00:32:27,400 כי זה מאוד קל רק גוגל. 648 00:32:27,400 --> 00:32:31,560 אם אתה אומר, אה, אני רוצה הגופן שלי להיות מודגש וירוק כהה, 649 00:32:31,560 --> 00:32:33,980 כנראה שאתה יכול גוגל, ואז הוא יגיד לך 650 00:32:33,980 --> 00:32:37,590 התגים או תעודות זהות המתאימים ליצירה. 651 00:32:37,590 --> 00:32:41,670 ולכן הדרך שאתה בעצם היית סוג של יש לי זה במסמך HTML 652 00:32:41,670 --> 00:32:45,660 או להשתמש בו הוא כל מה שיש לך לעשות כאן הוא בראש 653 00:32:45,660 --> 00:32:48,560 להוסיף קישור לגיליון הסגנונות. 654 00:32:48,560 --> 00:32:53,600 >> אז אתה יכול פשוט לקשר שווים href מה שמו של גיליון הסגנון שלך 655 00:32:53,600 --> 00:32:54,590 הוא. 656 00:32:54,590 --> 00:32:56,740 ולאחר מכן את מערכת היחסים הוא גיליון סגנונות. 657 00:32:56,740 --> 00:33:00,700 אז בתוך כל מסמך HTML, כל עוד כפי שאתה כולל גיליון CSS נקודה זו, 658 00:33:00,700 --> 00:33:07,140 אתה צריך להיות מסוגל לגשת ל ויש לי הנכסים שם. 659 00:33:07,140 --> 00:33:10,370 >> כך למשל, כאן יש לי רק ליצור דף אינטרנט אחר דוגמא. 660 00:33:10,370 --> 00:33:15,680 זה מוזמן סעיף CS50 ימי שלישי 2:00-03:30 איתי. 661 00:33:15,680 --> 00:33:20,300 ואז אני הוספתי תמונה יפה ש אנו עלולים להיות אמורים להיות מסוגלים לראות. 662 00:33:20,300 --> 00:33:24,620 >> אז אם אתה תסתכל כאן, אם אתה הולך לstyle.html, 663 00:33:24,620 --> 00:33:26,310 יצרנו דף אינטרנט עם גורים. 664 00:33:26,310 --> 00:33:29,420 בגלל החתלתול הם מדהים. 665 00:33:29,420 --> 00:33:33,570 אז הוספת תמונה רק img קישור SRC. 666 00:33:33,570 --> 00:33:36,260 667 00:33:36,260 --> 00:33:38,310 >> די הרבה, אם יש כל סוג של תכונה 668 00:33:38,310 --> 00:33:40,268 ברצונך להוסיף לך website-- כך נניח, 669 00:33:40,268 --> 00:33:43,290 ברצונך להוסיף תפריט או סרגל חיפוש או כמו 670 00:33:43,290 --> 00:33:46,450 image-- רק גוגל איך לעשות את זה. 671 00:33:46,450 --> 00:33:48,277 ואתה רק פלופ בפורמט זה. 672 00:33:48,277 --> 00:33:50,110 רק ואתה יכול די הרבה רק להוסיף אותו ב. 673 00:33:50,110 --> 00:33:52,670 זה ממש, ממש קל. 674 00:33:52,670 --> 00:33:55,014 >> אנחנו יוצרים דפי אינטרנט עכשיו. 675 00:33:55,014 --> 00:33:55,680 אם אתה רוצה-- 676 00:33:55,680 --> 00:33:56,580 >> קהל: [לא ברור] 677 00:33:56,580 --> 00:33:57,470 >> ANDI פנג: מצטער? 678 00:33:57,470 --> 00:33:59,310 >> קהל: [לא ברור]. 679 00:33:59,310 --> 00:34:01,340 >> ANDI פנג: אה, div הוא רק החלוקה 680 00:34:01,340 --> 00:34:04,370 אומר ש, הו, יש לי אותי סעיף מסוים נקרא 681 00:34:04,370 --> 00:34:07,480 אמצע שבו אני מיישם התג שלי CSS, ולאחר מכן 682 00:34:07,480 --> 00:34:09,619 חלוקה אחרת שלי עם התחתית. 683 00:34:09,619 --> 00:34:10,785 זה כל מה שזה אומר לך. 684 00:34:10,785 --> 00:34:12,743 כי זה נחמד לשמור דברים מסודרים לפי סדר, 685 00:34:12,743 --> 00:34:16,304 כך התכנית יודעת בדיוק לרוץ. 686 00:34:16,304 --> 00:34:18,929 וחושב שאני יכול להעתיק ולהדביק את זה בדפדפן שלי בפועל גם כן. 687 00:34:18,929 --> 00:34:21,110 זה אמור להיות בסדר. 688 00:34:21,110 --> 00:34:21,610 כן. 689 00:34:21,610 --> 00:34:24,330 690 00:34:24,330 --> 00:34:25,989 יש. 691 00:34:25,989 --> 00:34:29,380 אז אם כולם רוצים רק נסה ליצור דף אינטרנט, 692 00:34:29,380 --> 00:34:32,169 ניקח עוד שניים עד שלוש דקות. 693 00:34:32,169 --> 00:34:34,460 אני רק רוצה לוודא השרתים של כולם פועלים 694 00:34:34,460 --> 00:34:36,941 וכל אחד יש רעיון של איך לעשות את זה. 695 00:34:36,941 --> 00:34:38,774 אם אתם רוצים להוציא את המחשבים שלך. 696 00:34:38,774 --> 00:34:44,630 697 00:34:44,630 --> 00:34:45,635 עדיין לא עובד? 698 00:34:45,635 --> 00:34:47,420 >> קהל: אני רק [לא ברור]. 699 00:34:47,420 --> 00:34:49,838 >> ANDI פנג: אולי תנסה לעדכן את 50 גם כן. 700 00:34:49,838 --> 00:34:51,392 כן. 701 00:34:51,392 --> 00:34:52,308 קהל: [לא ברור]. 702 00:34:52,308 --> 00:35:17,502 703 00:35:17,502 --> 00:35:18,990 >> ANDI פנג: כן. 704 00:35:18,990 --> 00:35:23,750 לכן הדרך שאתה מתחיל חדש שרת האינטרנט בIDE הוא פשוט 705 00:35:23,750 --> 00:35:27,889 לעשות apache50 נקודת התחלת מרחב החלל. 706 00:35:27,889 --> 00:35:30,430 אני רק רציתי לוודא ש השרתים של כולם פועלים על אישור. 707 00:35:30,430 --> 00:35:31,763 >> קהל: כאן, במסוף? 708 00:35:31,763 --> 00:35:33,334 ANDI פנג: כן. 709 00:35:33,334 --> 00:35:34,250 קהל: [לא ברור]. 710 00:35:34,250 --> 00:35:38,000 711 00:35:38,000 --> 00:35:38,985 >> ANDI פנג: אפאצ'י. 712 00:35:38,985 --> 00:35:42,010 למעשה, אני חושב שאתה ריצת משהו כבר. 713 00:35:42,010 --> 00:35:43,145 כן, אתה בעצם פועל שרת אחר. 714 00:35:43,145 --> 00:35:43,830 כן, אתה טוב. 715 00:35:43,830 --> 00:35:45,085 כל עוד זה עובד, אתה בסדר. 716 00:35:45,085 --> 00:35:45,626 >> קהל: אישור. 717 00:35:45,626 --> 00:35:47,615 ANDI פנג: יש שני דרכים להפעלת שרתים. 718 00:35:47,615 --> 00:35:49,990 אז כל עוד אחת מהדרכים עובד, שזה בסדר. 719 00:35:49,990 --> 00:36:18,470 720 00:36:18,470 --> 00:36:21,680 אנחנו ניקח עוד דקה רק כדי לסיים את סוג של 721 00:36:21,680 --> 00:36:25,280 הגימור של כל מה ש דף האינטרנט שאתם רוצים לעשות. 722 00:36:25,280 --> 00:36:26,830 >> האם כולם עובדים דרך אגב? 723 00:36:26,830 --> 00:36:30,910 השרתים של כולם פועל מלבד לך? 724 00:36:30,910 --> 00:36:32,210 אנחנו להבין את זה. 725 00:36:32,210 --> 00:36:34,137 ו- HTML של פשוט למדי. 726 00:36:34,137 --> 00:36:35,220 אז אני חושב שכולנו טוב. 727 00:36:35,220 --> 00:36:38,260 728 00:36:38,260 --> 00:36:38,760 כן. 729 00:36:38,760 --> 00:36:41,070 אני אחזור. 730 00:36:41,070 --> 00:36:42,797 >> קהל: [לא ברור]. 731 00:36:42,797 --> 00:36:43,380 ANDI פנג: אישור. 732 00:36:43,380 --> 00:36:44,770 קהל: אז זה רק התחיל להעמיס. 733 00:36:44,770 --> 00:36:45,686 ANDI פנג: אין בעיה. 734 00:36:45,686 --> 00:36:49,590 735 00:36:49,590 --> 00:36:52,680 אז HTML, יש קוד מקור ש יהיה מקוון לאחר סעיף. 736 00:36:52,680 --> 00:36:54,810 כמו כן, יש דוד שלם חבורת האינטרנט, כמו גם. 737 00:36:54,810 --> 00:36:58,190 רק סוג של מבט על זה ל לראות איך דפי HTML נכתבים. 738 00:36:58,190 --> 00:36:59,920 זה קל למדי. 739 00:36:59,920 --> 00:37:03,979 כל דבר שאתה לא יודע, אתה די הרבה רק גוגל ואתה טוב. 740 00:37:03,979 --> 00:37:06,270 אני רק רוצה לוודא ש השרתים שלך פועלים. 741 00:37:06,270 --> 00:37:12,962 742 00:37:12,962 --> 00:37:14,880 >> קהל: האם זה עושה את זה לעתים קרובות? 743 00:37:14,880 --> 00:37:16,421 >> ANDI פנג: זה אף פעם לא קרה לי. 744 00:37:16,421 --> 00:37:18,470 745 00:37:18,470 --> 00:37:20,782 אני לא ידעתי שזה יכול אפילו שינה. 746 00:37:20,782 --> 00:37:22,516 >> קהל: [לא ברור]. 747 00:37:22,516 --> 00:37:25,140 ANDI פנג: אני חושב everyone-- שלי מעולם לא hibernated לפני. 748 00:37:25,140 --> 00:37:26,860 ואני לא יודע למה. 749 00:37:26,860 --> 00:37:27,566 זה מוזר. 750 00:37:27,566 --> 00:37:29,310 >> קהל: [לא ברור]. 751 00:37:29,310 --> 00:37:30,643 >> ANDI פנג: האם שנת החורף? 752 00:37:30,643 --> 00:37:32,615 753 00:37:32,615 --> 00:37:33,669 >> קהל: [לא ברור]. 754 00:37:33,669 --> 00:37:34,335 ANDI פנג: כן. 755 00:37:34,335 --> 00:37:39,122 756 00:37:39,122 --> 00:37:39,872 קהל: זה בסדר. 757 00:37:39,872 --> 00:37:40,622 אז ברגע שהוא פתוח. 758 00:37:40,622 --> 00:37:41,760 ANDI פנג: אישור. 759 00:37:41,760 --> 00:37:43,940 אנחנו נתמודד עם כמה שרת בעיות לאחר סעיף. 760 00:37:43,940 --> 00:37:44,860 אתה אמור להיות בסדר. 761 00:37:44,860 --> 00:37:47,950 אמנם, אתה רוצה לוודא שאתה תפתור אותם לפני שאתה עוזב. 762 00:37:47,950 --> 00:37:49,380 כי אם של השרת שלך לא פועל, אז אתה 763 00:37:49,380 --> 00:37:52,004 לא הולך להיות מסוגל לעשות pset, כמו כל חלק של pset. 764 00:37:52,004 --> 00:37:54,200 אז אתה רוצה לוודא שזה עובד. 765 00:37:54,200 --> 00:37:54,831 לְהִתְקַרֵר. 766 00:37:54,831 --> 00:37:55,330 בסדר. 767 00:37:55,330 --> 00:37:56,490 אומר גורי שלום. 768 00:37:56,490 --> 00:37:59,670 ביליתי זמן רב מחפשים כי תמונת החתלתול לשים על. 769 00:37:59,670 --> 00:38:02,272 אז, בכל מקרה. 770 00:38:02,272 --> 00:38:04,950 >> קהל: [לא ברור]. 771 00:38:04,950 --> 00:38:05,770 >> ANDI פנג: מצטער? 772 00:38:05,770 --> 00:38:07,345 >> קהל: [לא ברור]. 773 00:38:07,345 --> 00:38:08,970 ANDI פנג: אני חושב שזה באתר. 774 00:38:08,970 --> 00:38:11,064 כמו המפרט? 775 00:38:11,064 --> 00:38:12,020 >> קהל: [לא ברור]. 776 00:38:12,020 --> 00:38:16,080 אני חושב שהמפרט הוא רק באינטרנט בשבוע שבעה. 777 00:38:16,080 --> 00:38:18,850 אני חושב שזה נקרא pset6, אפילו למרות שאנחנו בשבוע, שבעה ש 778 00:38:18,850 --> 00:38:19,641 הוא מחשוב קצת. 779 00:38:19,641 --> 00:38:23,130 קהל: אבל אני מתכוון אם אתה רוצה להיראות at-- אם אתה 780 00:38:23,130 --> 00:38:28,666 רוצה למשוך את הגרסה שלנו אתר האינטרנט מהסבר שלנו? 781 00:38:28,666 --> 00:38:31,820 אז כמו server.c הוא pset, נכון? 782 00:38:31,820 --> 00:38:36,514 אם אתה רוצה להסתכל על זה, כמו איך הוא בודק את? 783 00:38:36,514 --> 00:38:38,680 ANDI פנג: הו, אז בעצם pset, כל מה שאנחנו עושים 784 00:38:38,680 --> 00:38:41,405 כאן implementing-- כאן, אני אלך על זה לרגע. 785 00:38:41,405 --> 00:38:44,187 786 00:38:44,187 --> 00:38:47,020 אז לכולם שפשוט קיבל לסעיף, אתם נמצאים במזל. 787 00:38:47,020 --> 00:38:49,340 יש חומר מעט מאוד כדי לכסות בעצם היום. 788 00:38:49,340 --> 00:38:52,585 >> אני רק הולך לבלות הבא 20 דקות הולכים על העזרה pset. 789 00:38:52,585 --> 00:38:55,210 כי יש כמה שימושי פונקציות שיעזרו לי החיים שלך. 790 00:38:55,210 --> 00:38:57,501 ואני מקווה, נהיה מחוץ מכאן בכמו 20 דקות. 791 00:38:57,501 --> 00:38:58,360 אוקיי. 792 00:38:58,360 --> 00:39:00,252 >> אז pset7 לא בסדר. 793 00:39:00,252 --> 00:39:02,460 למרות שאנחנו בשבוע שבע, זה pset6 למעשה. 794 00:39:02,460 --> 00:39:04,220 אני אשנה את זה. 795 00:39:04,220 --> 00:39:07,550 כל מה שאנחנו עושים בpset6 יוצר שרת אינטרנט. 796 00:39:07,550 --> 00:39:09,010 זה נשמע סופר מפחיד. 797 00:39:09,010 --> 00:39:11,010 >> ובמיוחד עבור אלה מכם שיש לי כבר 798 00:39:11,010 --> 00:39:14,530 הסתכל על קוד ההפצה, יש הרבה קוד, הרבה קוד. 799 00:39:14,530 --> 00:39:15,570 אבל זה בסדר לגמרי. 800 00:39:15,570 --> 00:39:17,750 בגלל המתוסבכים חלק מיצירה למעשה 801 00:39:17,750 --> 00:39:20,140 השרת נעשה על ידינו. 802 00:39:20,140 --> 00:39:22,090 כל מה שאתה באמת שאלת לעשות בpset זה 803 00:39:22,090 --> 00:39:25,350 הוא רק כדי לעשות קצת מניפולציה מחרוזת בקובץ I / O. זה בעצם 804 00:39:25,350 --> 00:39:27,570 כמו פשוט למדי. 805 00:39:27,570 --> 00:39:30,830 >> לכן, כאשר אתה מוריד ראשון לראות-- ש כאן למעשה כבר הורד 806 00:39:30,830 --> 00:39:32,540 pset ולקחת מבט? 807 00:39:32,540 --> 00:39:33,040 בסדר. 808 00:39:33,040 --> 00:39:33,540 כן. 809 00:39:33,540 --> 00:39:36,042 אין כמו 500 שורות קוד כי אתה הולך להיות כמו, 810 00:39:36,042 --> 00:39:36,750 מה הולך? 811 00:39:36,750 --> 00:39:38,177 וזה לגמרי בסדר. 812 00:39:38,177 --> 00:39:39,760 ודא שאתה צופה בהליכה על המודעות. 813 00:39:39,760 --> 00:39:41,610 בגלל דוד and-- אני לא יודע. 814 00:39:41,610 --> 00:39:43,870 אני לא חושב שזה Zamyla של, זה אחד. 815 00:39:43,870 --> 00:39:47,040 אבל אני חושב שכמה אחר ללכת על המודעות למדי 816 00:39:47,040 --> 00:39:49,510 מועיל במונחים של רק מאפשר לך לדעת 817 00:39:49,510 --> 00:39:51,780 מה קורה בתוך הקוד שלך. 818 00:39:51,780 --> 00:39:53,330 >> וזה בסדר לגמרי. 819 00:39:53,330 --> 00:39:57,860 בגלל הפונקציות ארבע שאתה ביקשתי ליישם למעשה יש 820 00:39:57,860 --> 00:39:59,720 אפס לעשות עם השרת בפועל. 821 00:39:59,720 --> 00:40:02,590 כל מה שהם צריכים לעשות הוא פשוט ניתוח מחרוזות שונות, 822 00:40:02,590 --> 00:40:05,780 חיפוש דרך מיתרים, כדי לעשות דברים בטוחים עושים 823 00:40:05,780 --> 00:40:07,750 מה הם אמורים לעשות. 824 00:40:07,750 --> 00:40:11,200 >> אז להשפעה ש, יש כמה פונקציות מאוד, מאוד שימושיות, 825 00:40:11,200 --> 00:40:13,630 במיוחד עבור מחרוזת מניפולציה, שכולנו צריכים 826 00:40:13,630 --> 00:40:15,879 הולכים על זה חשבתי שאולי להיות מאוד שימושי עבורכם 827 00:40:15,879 --> 00:40:19,130 ללמוד לפני שתנסה pset. 828 00:40:19,130 --> 00:40:23,350 וכולם כלולים בתוך ספריית string.h. 829 00:40:23,350 --> 00:40:25,980 יש כנראה יותר שימושי פונקציות שאינו כלולות כאן, 830 00:40:25,980 --> 00:40:30,740 כי אני גם לא להשתמש בם או אולי אני פשוט לא יודע שהם קיימים. 831 00:40:30,740 --> 00:40:32,440 >> אתה מוזמן להציץ דרך student.h. 832 00:40:32,440 --> 00:40:36,460 כי יש הולך להיות הרבה של פונקציות שהם מאוד שימושיים. 833 00:40:36,460 --> 00:40:43,050 אז שש שאני משתמש ביותר בי pset כאשר אני עושה את זה בשבוע האחרון 834 00:40:43,050 --> 00:40:49,620 היה strtok, strchr, strrcher, strstr, strcasecmp, וstrcpy. 835 00:40:49,620 --> 00:40:53,060 וכך שני האחרונים אולי נראים די מוכר לרובכם. 836 00:40:53,060 --> 00:40:56,910 מקרה Str להשוות, כל שהיא עושה הוא להשוות מחרוזות כדי לבדוק אותם לשוויון, 837 00:40:56,910 --> 00:40:58,110 כולל מקרה. 838 00:40:58,110 --> 00:41:01,430 וstrcpy רק עותקים מחרוזת אחת לחיץ. 839 00:41:01,430 --> 00:41:04,430 >> וכך שני אלה צריכים להיראות מאוד מוכר לכם בשלב זה. 840 00:41:04,430 --> 00:41:07,100 מפני שהשתמשנו בהם הרבה, במיוחד עבור psets האחרון. 841 00:41:07,100 --> 00:41:10,734 אבל ארבעה הראשונים אולי שלא ראה עד עכשיו. 842 00:41:10,734 --> 00:41:12,400 אבל אני הולך רק כדי לעבור אותם. 843 00:41:12,400 --> 00:41:15,620 בגלל שהם הולכים להפוך את חייך באמת, באמת קל for-- לא קל, 844 00:41:15,620 --> 00:41:19,830 אבל הרבה יותר קל לpset הקרוב. 845 00:41:19,830 --> 00:41:20,420 >> אוקיי. 846 00:41:20,420 --> 00:41:27,720 אז char * strtok, זה הפונקציה הגדרה לפונקציה זו כלולה 847 00:41:27,720 --> 00:41:31,050 בתוך המחרוזת, ספריית שעות. 848 00:41:31,050 --> 00:41:34,340 אם אתם מקבלים קלט של char * מחרוזת, הנמצאת במרחק מחרוזת, 849 00:41:34,340 --> 00:41:38,220 או char קבוע * deliminator, סימן מפריד בקיצור, 850 00:41:38,220 --> 00:41:42,410 כל זה עושה הוא שבירה גדול יותר מחרוזת לסדרה של מה שאנו מכנים 851 00:41:42,410 --> 00:41:45,730 אסימונים מופרדים על ידי ערך מסוים. 852 00:41:45,730 --> 00:42:03,340 אז במובן מסוים, אם הייתי נותן לי אתה section.7.php, זה הוא מחרוזת. 853 00:42:03,340 --> 00:42:09,520 >> אז זה יהיה אם הייתי עובר כבstr זו, str * char שלי, 854 00:42:09,520 --> 00:42:18,870 אם deliminator היה נקודה, כל זה היה לעשות הוא לחפש דרך מחרוזת. 855 00:42:18,870 --> 00:42:22,790 והפעם הראשונה שהוא רואה נקודה, זה יחזור רק למצביע 856 00:42:22,790 --> 00:42:25,830 לאסימון האחרון מצא במחרוזת לפני זה. 857 00:42:25,830 --> 00:42:27,230 אז זה הייתי הולך ממש כאן. 858 00:42:27,230 --> 00:42:30,580 >> וזה ייתן לי רק 7.php. 859 00:42:30,580 --> 00:42:34,070 ואם הייתי קורא לתפקד עוד פעם אחת, 860 00:42:34,070 --> 00:42:37,580 זה ייתן לי רק .php. 861 00:42:37,580 --> 00:42:41,540 וכך כל פונקציה זו עושה הוא פירוק המחרוזת הגדולה יותר 862 00:42:41,540 --> 00:42:44,620 למחרוזות קטנות יותר בהתאם על מה שאתה מחפש. 863 00:42:44,620 --> 00:42:46,670 >> וכך לדוגמא, ב הפונקציה חפש 864 00:42:46,670 --> 00:42:49,895 אם אתה רוצה להסתכל על מה ש תווים מסוימים באים על 865 00:42:49,895 --> 00:42:54,280 או אם נקודות לקרות או הרחבות לקרות, פונקציה זו תהיה שימושית למדי. 866 00:42:54,280 --> 00:42:57,260 867 00:42:57,260 --> 00:42:59,010 כן. 868 00:42:59,010 --> 00:42:59,510 אין דאגות. 869 00:42:59,510 --> 00:43:01,339 זה כל להיות-- כן, מה קורה? 870 00:43:01,339 --> 00:43:07,087 >> קהל: אז בשורה הראשונה, אם היינו משתמשים בדוגמה זו, 871 00:43:07,087 --> 00:43:09,504 מה היינו להכניס לתוך זה? 872 00:43:09,504 --> 00:43:10,170 ANDI פנג: כן. 873 00:43:10,170 --> 00:43:13,000 874 00:43:13,000 --> 00:43:25,640 אתה הייתי קורא רק סימן מפריד פסיק מחרוזת strtok. 875 00:43:25,640 --> 00:43:30,260 ומחרוזת שווה לsection.7.php. 876 00:43:30,260 --> 00:43:35,244 ואז אתה סימן מפריד יכול להיות שווה רק כדי נקודה. 877 00:43:35,244 --> 00:43:36,654 >> קהל: אישור. 878 00:43:36,654 --> 00:43:39,010 >> ANDI פנג: כן. 879 00:43:39,010 --> 00:43:41,266 בדיוק כך. 880 00:43:41,266 --> 00:43:43,890 כל הפונקציות האלה הן די דומה כאשר אנו עוברים אותם. 881 00:43:43,890 --> 00:43:45,514 הם פשוט עושים דברים מעט שונים. 882 00:43:45,514 --> 00:43:49,530 אבל הם כולם הולכים להפוך את החיים שלך הרבה יותר קלים. 883 00:43:49,530 --> 00:43:53,940 פונקציה שנייה, אחד של זה כמו סופר, סופר, סופר חשוב, 884 00:43:53,940 --> 00:43:58,254 הוא כל-- להחזיק. 885 00:43:58,254 --> 00:44:07,560 886 00:44:07,560 --> 00:44:08,730 >> אופס. 887 00:44:08,730 --> 00:44:13,810 חיפושי Strchr לראשון occurrence-- למעשה, כן. 888 00:44:13,810 --> 00:44:16,385 Strchr היא הפונקציה ש בהחלט רק הלכתי. 889 00:44:16,385 --> 00:44:18,260 אז להתעלם ממה שאמרתי לפונקציה הראשונה. 890 00:44:18,260 --> 00:44:20,980 זה בעצם נקרא strchr. 891 00:44:20,980 --> 00:44:24,840 >> אז מה היה קורה כאן הוא אם ניתנו לך מחרוזת בג char, 892 00:44:24,840 --> 00:44:28,660 זה ייתן רק אתה כל מה שהיה. 893 00:44:28,660 --> 00:44:29,230 כן. 894 00:44:29,230 --> 00:44:33,700 אז תחשוב על זה כעל str, ש הוא מחרוזת, וChr כchar. 895 00:44:33,700 --> 00:44:38,621 אז כל מה שאתה מנסה לעשות הוא חיפוש לשם char הוא בתוך מחרוזת. 896 00:44:38,621 --> 00:44:41,120 ואז זה מחפש הראשון מופע של האופי 897 00:44:41,120 --> 00:44:43,601 ג בstr המחרוזת. 898 00:44:43,601 --> 00:44:46,463 >> קהל: [לא ברור]. 899 00:44:46,463 --> 00:44:48,380 >> ANDI פנג: כן. 900 00:44:48,380 --> 00:44:51,230 ואז אם זה לא מוצא זה, זה הולך לחזור NULL. 901 00:44:51,230 --> 00:44:54,313 אז משהו שהולך להיות מאוד שימושי עבורכם בעושה pset 902 00:44:54,313 --> 00:44:59,030 אם, לומר, שחיפשת סיומת כמו .docx לWord 903 00:44:59,030 --> 00:45:04,740 מסמך או .pdf למסמך PDF, סוג של אתה יכול להשתמש בו כדי להסתכל 904 00:45:04,740 --> 00:45:08,720 לכל מה שלאחר מכן בכל פעם שאתה רואה נקודה, נכון? 905 00:45:08,720 --> 00:45:11,880 וכך פחות או יותר, אם אתה לרוץ כי באמצעות הפונקציה, 906 00:45:11,880 --> 00:45:13,610 אם הוא חוזר NULL, אז אתה יודע שזה 907 00:45:13,610 --> 00:45:17,292 לא מוצא את זה נקודה, מה שאומר שזה ברור שאין סיומת קובץ חוקית. 908 00:45:17,292 --> 00:45:19,000 או אם הוא חוזר משהו, אז אתה יודע 909 00:45:19,000 --> 00:45:21,940 זה הולך לחזור כל מה של למעשה לאחר ההארכה. 910 00:45:21,940 --> 00:45:24,190 אז אלו מכם שהיו לי התחיל לחפש דרך בדיקה 911 00:45:24,190 --> 00:45:28,640 ולנתח, פונקציה זו של הולך להיות סופר שימושי. 912 00:45:28,640 --> 00:45:32,010 אז אנחנו למעשה הולכים כדי להדגים באמצעות זה. 913 00:45:32,010 --> 00:45:36,670 >> למה שלא ינסו לכתוב בחורים char משפט בול פונקציה * ים ש 914 00:45:36,670 --> 00:45:39,610 רק מחזיר אמת אם s הוא משפט ושקר אחר. 915 00:45:39,610 --> 00:45:44,110 916 00:45:44,110 --> 00:45:46,830 אז לרמוז, אתה הולך כנראה להשתמש strchr. 917 00:45:46,830 --> 00:45:50,420 או שאתה פשוט לחפש ב מחרוזת לאופי מסוים. 918 00:45:50,420 --> 00:45:54,950 וכך במשפט, מה שמפריד בין משפט 919 00:45:54,950 --> 00:45:57,510 מאינו משפט, מה אופי ספציפי? 920 00:45:57,510 --> 00:45:58,260 קהל: חלל. 921 00:45:58,260 --> 00:45:59,343 ANDI פנג: חלל, נכון? 922 00:45:59,343 --> 00:46:03,354 ואז מה שאנחנו כנראה הולכים רוצה לעשות בתוך פונקציה זו כאן? 923 00:46:03,354 --> 00:46:04,290 >> קהל: [לא ברור]. 924 00:46:04,290 --> 00:46:07,623 >> ANDI פנג: אנחנו הולכים לרוצים strchr מחרוזת להופעתו של החלל. 925 00:46:07,623 --> 00:46:11,330 כי אם הוא חוזר משהו, אז אנחנו יודעים שזה חייב להיות משפט. 926 00:46:11,330 --> 00:46:14,510 זה אומר שאנחנו חייבים יש מקום במחרוזת זו. 927 00:46:14,510 --> 00:46:17,660 >> אם אין חלל, אז אנחנו יודעים כי, היי, מניח שזה לא מחרוזת. 928 00:46:17,660 --> 00:46:20,060 זה כנראה רק מילה באמת ארוכה. 929 00:46:20,060 --> 00:46:23,242 אז אני אתן לכם כמה דקות כדי לכתוב פונקציה זו. 930 00:46:23,242 --> 00:46:44,398 931 00:46:44,398 --> 00:46:45,874 כן. 932 00:46:45,874 --> 00:46:47,970 >> קהל: האם אתה מקבל מחרוזת זו מהמשתמש? 933 00:46:47,970 --> 00:46:48,440 >> ANDI פנג: כן. 934 00:46:48,440 --> 00:46:49,565 אז זה רק פונקציה. 935 00:46:49,565 --> 00:46:54,586 אז לדמיין בתוך הפונקציה העיקרית שלך אתה כבר נו-- בוא נלך כאן. 936 00:46:54,586 --> 00:47:00,040 937 00:47:00,040 --> 00:47:00,540 אוקיי. 938 00:47:00,540 --> 00:47:05,270 אז אני כתבתי תכנית שבה זה יש לי הפונקציה שבו העיקרית שלי 939 00:47:05,270 --> 00:47:07,432 רק יצרתי שתי מחרוזות. 940 00:47:07,432 --> 00:47:09,890 הראשון הוא היי, השם שלי הוא Andi-- ברור, משפט. 941 00:47:09,890 --> 00:47:13,240 השנייה אחת שלי הוא פשוט אנדי, ברור שלא לגזור. 942 00:47:13,240 --> 00:47:18,390 >> ואז אני רץ שני אלה מחרוזות באמצעות פונקציה זו. 943 00:47:18,390 --> 00:47:20,540 אני רוצה שבחורים לכתוב משפט קר. 944 00:47:20,540 --> 00:47:23,380 ואני אחסון ערכים אלה, ואז פשוט להדפיס אותם. 945 00:47:23,380 --> 00:47:26,549 אז תחשוב שהמשתמש הוא הולך לעבור במחרוזת. 946 00:47:26,549 --> 00:47:29,590 ואז אתה הולך למהות להבין אם זה משפט או לא 947 00:47:29,590 --> 00:47:31,131 ולחזור אמת או שקר בהתאם. 948 00:47:31,131 --> 00:48:41,850 949 00:48:41,850 --> 00:48:45,200 >> אם אתם רוצים לתת ל אגודלים כלפי מעלה או ראש בראש, הנהון ראש, 950 00:48:45,200 --> 00:48:49,080 מישהו מוכן להתחיל זה, זה יהיה טוב. 951 00:48:49,080 --> 00:50:13,570 952 00:50:13,570 --> 00:50:15,200 אולי כמו 30 שניות יותר? 953 00:50:15,200 --> 00:50:49,570 954 00:50:49,570 --> 00:50:50,070 בסדר. 955 00:50:50,070 --> 00:50:52,870 בואו תראו אם אתה יכול לנסות כתיבת פונקציה זו. 956 00:50:52,870 --> 00:50:57,480 >> אז פסאודו coding-- אני רק הולך ל סוג של ללכת דרך את זה עכשיו. 957 00:50:57,480 --> 00:51:00,570 די הרבה, אנחנו יודעים פונקציה שאנחנו צריכים להשתמש. 958 00:51:00,570 --> 00:51:04,390 אנחנו הולכים לקרוא לפונקציה שעל המחרוזת שלנו וחיפוש אחר מקום. 959 00:51:04,390 --> 00:51:08,682 אם הוא חוזר משהו, אז אנחנו חייבים יודע את זה, באופן ברור, זה משפט. 960 00:51:08,682 --> 00:51:09,640 כי יש חללים. 961 00:51:09,640 --> 00:51:10,930 אז אנחנו הולכים לחזור אמיתיים. 962 00:51:10,930 --> 00:51:12,310 אחר, אנחנו הולכים לחזור שווא. 963 00:51:12,310 --> 00:51:14,393 האם מישהו רוצה לתת לי שלי בשורה הראשונה של קוד 964 00:51:14,393 --> 00:51:16,890 שאנחנו בעצם הולכים להשתמש כדי לכתוב את זה? 965 00:51:16,890 --> 00:51:19,680 זה בעצם הכי קשה כמו גם שורת קוד. 966 00:51:19,680 --> 00:51:21,026 כן. 967 00:51:21,026 --> 00:51:28,942 >> קהל: אם strtok s-- 968 00:51:28,942 --> 00:51:29,900 ANDI פנג: רק strchr. 969 00:51:29,900 --> 00:51:35,354 קהל: [חציצת קולות] החלל הוא לא שווה ל null. 970 00:51:35,354 --> 00:51:38,270 971 00:51:38,270 --> 00:51:40,710 >> ANDI פנג: מגניב. 972 00:51:40,710 --> 00:51:41,470 בדיוק נכון. 973 00:51:41,470 --> 00:51:43,200 כולם מבינים ששורה ראשונה? 974 00:51:43,200 --> 00:51:46,110 אנחנו הולכים לקרוא strstr, שהיא פונקציה שמחפשת 975 00:51:46,110 --> 00:51:51,830 מחרוזת של לתווים של החלל. 976 00:51:51,830 --> 00:51:56,010 ואם הוא מוצא אותו, זה הולך לחזור מצביע למקום שבי שהוא. 977 00:51:56,010 --> 00:51:58,500 >> אם זה לא מוצא אותו, זה הולך לחזור NULL. 978 00:51:58,500 --> 00:52:02,530 אז אם הוא חוזר שום דבר אחר מאשר NULL, אז אנחנו יודעים שזה מצא מרחב. 979 00:52:02,530 --> 00:52:03,553 האם זה הגיוני? 980 00:52:03,553 --> 00:52:04,090 לְהִתְקַרֵר. 981 00:52:04,090 --> 00:52:04,590 בסדר. 982 00:52:04,590 --> 00:52:08,246 אז אם אנחנו יודעים שזה מצא חלל, מה שאנחנו רוצים לעשות? 983 00:52:08,246 --> 00:52:09,162 קהל: חזור אמיתי. 984 00:52:09,162 --> 00:52:09,787 ANDI פנג: כן. 985 00:52:09,787 --> 00:52:11,940 חזור אמיתי. 986 00:52:11,940 --> 00:52:15,034 ולאחר מכן, מישהו רוצה לסיים את התפקיד בשבילי? 987 00:52:15,034 --> 00:52:16,300 כן. 988 00:52:16,300 --> 00:52:19,720 אחר, כמו שרק. 989 00:52:19,720 --> 00:52:20,780 ולנסות להרכיב את זה. 990 00:52:20,780 --> 00:52:26,071 991 00:52:26,071 --> 00:52:28,000 >> כן. 992 00:52:28,000 --> 00:52:33,099 אז כפי שאתם יכולים לראות מ פלטים, זוכרים Booleans בC 993 00:52:33,099 --> 00:52:34,390 תמיד באו לידי ביטוי בינארי. 994 00:52:34,390 --> 00:52:35,100 1 הוא נכון. 995 00:52:35,100 --> 00:52:36,350 0 הוא שקר. 996 00:52:36,350 --> 00:52:39,720 >> אם היינו להפעיל את זה פונקציה על מיתר אחד, ש 997 00:52:39,720 --> 00:52:42,900 הוא הי, של שמי Andi-- ברור, התוצאה sentence-- 998 00:52:42,900 --> 00:52:45,700 הדפיס עד 1 מה שנכון. 999 00:52:45,700 --> 00:52:48,420 השנייה אחת, שהוא רק מילה, תוצאה הדפיסה 1000 00:52:48,420 --> 00:52:50,630 0, שהוא מזויף. 1001 00:52:50,630 --> 00:52:54,820 סוג ברור לכולם של על איך פונקציה זו נכתבה? 1002 00:52:54,820 --> 00:52:55,800 כן. 1003 00:52:55,800 --> 00:52:59,770 >> קהל: האם אנחנו יכולים גם לעשות, במקום לא שווה שום, שווה שווה 0, 1004 00:52:59,770 --> 00:53:03,677 כך שזה שווה ל? 1005 00:53:03,677 --> 00:53:04,260 ANDI פנג: מס ' 1006 00:53:04,260 --> 00:53:07,480 בגלל strchr היא פונקציה. 1007 00:53:07,480 --> 00:53:09,940 אני הולך לחזור על זה. 1008 00:53:09,940 --> 00:53:14,624 אז מה סוג התמורה של פונקצית strchr? 1009 00:53:14,624 --> 00:53:15,332 קהל: אה, בסדר. 1010 00:53:15,332 --> 00:53:15,800 או NULL. 1011 00:53:15,800 --> 00:53:16,466 >> ANDI פנג: כן. 1012 00:53:16,466 --> 00:53:20,890 זה char * שאומר לי שכל מה ש פונקציה זו הולכת לחזור, 1013 00:53:20,890 --> 00:53:22,090 זה הולך להיות מצביע. 1014 00:53:22,090 --> 00:53:24,860 כך או המצביע הולך להיות מצביע למקום שבו מצא אותו, 1015 00:53:24,860 --> 00:53:27,550 או שזה הולך לחזור מצביע null. 1016 00:53:27,550 --> 00:53:30,930 בכל נסיבות, זה הולך לחזור מצביע למשהו. 1017 00:53:30,930 --> 00:53:34,354 >> ולכן אם היית להשוות זה שווה, שווה, 0, 1018 00:53:34,354 --> 00:53:36,020 אתה הולך לקבל שגיאת הידור. 1019 00:53:36,020 --> 00:53:37,645 בגלל שזה הולך לחזור מצביע. 1020 00:53:37,645 --> 00:53:40,240 ואתה הולך לנסות להשוות מצביע למספר שלם. 1021 00:53:40,240 --> 00:53:42,515 והמחשב לא הולך רוצה את זה. 1022 00:53:42,515 --> 00:53:45,630 כן, בדיוק. 1023 00:53:45,630 --> 00:53:46,540 לְהִתְקַרֵר. 1024 00:53:46,540 --> 00:53:47,525 כולם טובים? 1025 00:53:47,525 --> 00:53:55,770 1026 00:53:55,770 --> 00:53:59,770 >> ושנית, אנחנו הולכים ללכת על strstr פונקציה שנקראת. 1027 00:53:59,770 --> 00:54:02,020 אל דאגה, אם אלה פונקציות מבלבלים אותך. 1028 00:54:02,020 --> 00:54:03,750 הם מבלבלים אותי. 1029 00:54:03,750 --> 00:54:07,250 ככזה, אתם יכולים לראות, כולם נשמעים די דומה. 1030 00:54:07,250 --> 00:54:10,400 רק בכל פעם שאתה מבולבל, למשוך את ספריית string.h. 1031 00:54:10,400 --> 00:54:13,290 ואתם יכולים למיין שדרכו של אשר. 1032 00:54:13,290 --> 00:54:18,910 >> אז strstr, כל מה שעושה הוא חיפושים מחרוזת למחרוזת אחרת לגמרי. 1033 00:54:18,910 --> 00:54:21,980 אז איפה בדיוק strchr חיפושים לתו בודד, 1034 00:54:21,980 --> 00:54:24,090 חיפושי strstr לכל מחרוזת. 1035 00:54:24,090 --> 00:54:30,440 אז אני רוצה להיראות ב, אני לא יודע, היי, השם שלי הוא אנדי. 1036 00:54:30,440 --> 00:54:32,490 ושמו של החבר הכי טוב שלי הוא גם אנדי. 1037 00:54:32,490 --> 00:54:37,180 >> אם אני רוצה לחפש בזה משפט לכל המילה של אנדי, 1038 00:54:37,180 --> 00:54:39,930 המחט שלי הייתה כל מה שאתה מחפש. 1039 00:54:39,930 --> 00:54:43,440 וערימת השחת שלך היא כל מה ש אתה מחפש אותו ב. 1040 00:54:43,440 --> 00:54:47,050 אז אם אתה מחפש מילה ספציפית בתוך משפט, 1041 00:54:47,050 --> 00:54:48,800 המילה שהולכת להיות המחט שלך. 1042 00:54:48,800 --> 00:54:51,397 ולאחר מכן את המשפט עצמו הולך להיות ערימת שחת שלך. 1043 00:54:51,397 --> 00:54:53,230 ואז זה פשוט מחפש המופע הראשון 1044 00:54:53,230 --> 00:54:55,063 של מחט המחרוזת בערימת שחת המחרוזת. 1045 00:54:55,063 --> 00:54:57,140 זה מחזיר את המצביע למופע הראשון. 1046 00:54:57,140 --> 00:55:00,510 מלבד, זוכר במקרה זה, זה המופע הראשון של כל המחרוזת 1047 00:55:00,510 --> 00:55:02,510 שאתה מחפש ל, לא רק אופי. 1048 00:55:02,510 --> 00:55:04,676 >> ואז זה כמעט אותו דבר כמו הפונקציה 1049 00:55:04,676 --> 00:55:09,100 רק שעשינו, רק עם קצת יותר ספציפי. 1050 00:55:09,100 --> 00:55:12,730 מכיוון שאתה מחפש יותר מאשר רק דמות אחת. 1051 00:55:12,730 --> 00:55:16,310 והשימוש הוא אותו הדבר כאחד שעשינו כרגע. 1052 00:55:16,310 --> 00:55:18,070 כולם בסדר עם זה? 1053 00:55:18,070 --> 00:55:20,250 אוקיי. 1054 00:55:20,250 --> 00:55:23,560 >> אחרון שאנחנו הולכים על strrchr הוא, שהוא לא 1055 00:55:23,560 --> 00:55:26,320 מבולבל עם strstr או עם strchr. 1056 00:55:26,320 --> 00:55:27,890 יש strrchr r נוסף שם. 1057 00:55:27,890 --> 00:55:29,140 היזהר כאשר אתה מקליד. 1058 00:55:29,140 --> 00:55:33,851 אתה עלול למצוא את עצמך כולל r נוסף או לא כולל r, 1059 00:55:33,851 --> 00:55:35,850 ואז הפונקציה שלך הוא קיבל לא הולך לעבוד. 1060 00:55:35,850 --> 00:55:37,183 ואתה הולך להיות מבולבל. 1061 00:55:37,183 --> 00:55:40,150 היזהר שאתה איות כל הפונקציות האלה נכונה. 1062 00:55:40,150 --> 00:55:43,770 >> אז strrchr הוא מדויק אותו דבר כמו strchr 1063 00:55:43,770 --> 00:55:47,480 חוץ מזה שמחפש לא הראשון מופע של דמות מסוימת, 1064 00:55:47,480 --> 00:55:49,350 אלא המופע האחרון. 1065 00:55:49,350 --> 00:55:52,800 וכך, במובן זה, זה כמעט אותו הדבר. 1066 00:55:52,800 --> 00:55:54,620 אבל במקום להעביר להעביר במחרוזת, 1067 00:55:54,620 --> 00:55:57,230 אתה הולך להיות מרגש אחורה במחרוזת. 1068 00:55:57,230 --> 00:56:00,510 אותו דבר בדיוק, אתה פשוט חיפוש בצו שונה. 1069 00:56:00,510 --> 00:56:04,690 >> ואז זה יכול להיות סופר, סופר שימושי לבדיקה שלך 1070 00:56:04,690 --> 00:56:07,490 פונקציה, הראשונה פונקציה על pset. 1071 00:56:07,490 --> 00:56:12,710 בואו נעמיד פנים שאנחנו צריכים לכתוב פונקציה של הארכת החלל שבו אנו 1072 00:56:12,710 --> 00:56:17,850 עובר שם קובץ char * קבוע, רק מחרוזת, שם קובץ, 1073 00:56:17,850 --> 00:56:21,370 שלוקח שבשם והדפסים את הסיומת של קובץ ש. 1074 00:56:21,370 --> 00:56:26,520 כך למשל, אם הייתי לעבור במחרוזת של pset7.zip, 1075 00:56:26,520 --> 00:56:30,004 זה הולך להדפיס רק הסיומת, אשר היא ה- zip. 1076 00:56:30,004 --> 00:56:31,920 וזה יעבוד ל כל סוג של הרחבה, 1077 00:56:31,920 --> 00:56:38,290 .docx עבור Word או .pdf ל- PDF להגיש או html לקובץ HTML. 1078 00:56:38,290 --> 00:56:40,425 די הרבה, לכתוב פונקציה שיכול לעשות את זה. 1079 00:56:40,425 --> 00:56:42,300 בעצם אני הולך ל לעבור לIDE. 1080 00:56:42,300 --> 00:56:54,560 1081 00:56:54,560 --> 00:56:56,740 זה לא load-- שם אנחנו הולכים. 1082 00:56:56,740 --> 00:57:00,990 >> אז כל מה שעשיתי כאן הוא נוצר char *, מחרוזת ראשונה, 1083 00:57:00,990 --> 00:57:01,930 נקרא pset7.zip. 1084 00:57:01,930 --> 00:57:04,530 אני הולך להתמקד ב. 1085 00:57:04,530 --> 00:57:08,520 יצרתי מחרוזת שנייה נקרא finalpaper.docx. 1086 00:57:08,520 --> 00:57:12,649 ולכתוב לי פונקציה שכאשר נקרא הולך רק כדי להדפיס את 1087 00:57:12,649 --> 00:57:13,690 הסיומות של שמות קבצים. 1088 00:57:13,690 --> 00:57:16,702 1089 00:57:16,702 --> 00:57:19,660 אולי לקחת כמה דקות לחשוב על איך אתה הולך לעשות את זה. 1090 00:57:19,660 --> 00:57:22,510 מעט יותר מאתגר יותר מקודם, 1091 00:57:22,510 --> 00:57:24,770 אבל השימוש הוא כמעט בדיוק אותו הדבר. 1092 00:57:24,770 --> 00:57:29,670 1093 00:57:29,670 --> 00:57:30,170 כן. 1094 00:57:30,170 --> 00:57:37,540 אז לכתוב הארכת פונקציה שנקראת כי, אם אני נותן לך את השם של קובץ, 1095 00:57:37,540 --> 00:57:41,340 אם הייתי נותן לך pset7.zip-- אני רוצה שלהדפיס רק zip. 1096 00:57:41,340 --> 00:57:45,040 1097 00:57:45,040 --> 00:57:49,890 אם אני נותן לך אוהב finalpaper.docx, רק להדפיס את .docx, 1098 00:57:49,890 --> 00:57:51,538 רק הרחבה של מה שקובץ. 1099 00:57:51,538 --> 00:59:03,720 1100 00:59:03,720 --> 00:59:07,790 >> זה בעצם רק לוקח שתי שורות של קוד. 1101 00:59:07,790 --> 00:59:10,692 כדי לנסות לראות אם אתה אולי יכול לעשות את זה שב. 1102 00:59:10,692 --> 00:59:12,400 למעשה, זה רק לוקח שורה אחת של קוד. 1103 00:59:12,400 --> 00:59:14,074 אבל שני קווים הוא כנראה יותר סטנדרטי. 1104 00:59:14,074 --> 00:59:20,408 1105 00:59:20,408 --> 00:59:22,574 מה פונקציה אנחנו כנראה הולך רוצה לקרוא? 1106 00:59:22,574 --> 00:59:25,286 1107 00:59:25,286 --> 00:59:26,260 >> קהל: strrchr. 1108 00:59:26,260 --> 00:59:27,343 >> ANDI פנג: strrchr, תקין. 1109 00:59:27,343 --> 00:59:29,570 בגלל שאנחנו מחפשים מהשמאל הנכון. 1110 00:59:29,570 --> 00:59:32,107 1111 00:59:32,107 --> 00:59:33,940 אני לא אתן לך חבר ' דוגמא כמו זה, 1112 00:59:33,940 --> 00:59:38,870 אבל אם נתתי לך דוגמא כמו www.apple.com ורק רציתי 1113 00:59:38,870 --> 00:59:43,005 .com, שזה יהיה דוגמא למקום שבי אתה רוצה לקרוא את המופע האחרון 1114 00:59:43,005 --> 00:59:44,630 התקופה ולא הראשון, נכון? 1115 00:59:44,630 --> 00:59:47,470 אם היית שיחת strchr, זה היה נותן לך את apple.com. 1116 00:59:47,470 --> 00:59:49,966 >> אם אתה נקרא strrchr, זה היה נותן לך .com. 1117 00:59:49,966 --> 00:59:53,062 וכדי להיות זהיר שב ways-- בדוגמא שלי, 1118 00:59:53,062 --> 00:59:55,520 כנראה יכול אתה יכול להיות רק כתבת אותו באמצעות strchr, 1119 00:59:55,520 --> 00:59:57,130 מאז שיש רק נקודה אחת. 1120 00:59:57,130 --> 00:59:59,790 אבל במקרים אחרים, זה לא יכול להיות המקרה. 1121 00:59:59,790 --> 01:00:04,960 וכך תמיד מנסה לעצב הקוד שלך טוב, כל כך לראות-- כן? 1122 01:00:04,960 --> 01:00:07,365 >> קהל: אז ב דוגמא שאמרת, 1123 01:00:07,365 --> 01:00:11,760 כאשר אתה strrchr זה היה תיתן לך .com או פשוט לבוא? 1124 01:00:11,760 --> 01:00:13,960 >> ANDI פנג: זה ייתן לך את .com. 1125 01:00:13,960 --> 01:00:14,794 >> קהל: אישור. 1126 01:00:14,794 --> 01:00:15,460 ANDI פנג: כן. 1127 01:00:15,460 --> 01:00:18,090 1128 01:00:18,090 --> 01:00:19,744 הוא מצביע למקום שבו מצא אותו. 1129 01:00:19,744 --> 01:00:20,244 כן. 1130 01:00:20,244 --> 01:00:24,120 1131 01:00:24,120 --> 01:00:25,188 30 שניות אולי? 1132 01:00:25,188 --> 01:00:25,688 כן. 1133 01:00:25,688 --> 01:00:56,640 1134 01:00:56,640 --> 01:00:58,500 כולם טובים או אולי קצת יותר זמן? 1135 01:00:58,500 --> 01:01:01,057 1136 01:01:01,057 --> 01:01:01,640 הרמת ידיים? 1137 01:01:01,640 --> 01:01:02,320 הצג של ראשים? 1138 01:01:02,320 --> 01:01:04,801 1139 01:01:04,801 --> 01:01:05,300 לְהִתְקַרֵר. 1140 01:01:05,300 --> 01:01:07,924 כל אחד רוצה לתת לי ראשון שורת קוד לתכנית זו? 1141 01:01:07,924 --> 01:01:11,861 1142 01:01:11,861 --> 01:01:12,777 קהל: [לא ברור]. 1143 01:01:12,777 --> 01:01:16,190 1144 01:01:16,190 --> 01:01:20,160 >> ANDI פנג: אז קודם כל, בואו אולי לשבור את זה. 1145 01:01:20,160 --> 01:01:24,370 אז מה הוא הסוג של חזרה strrchr? 1146 01:01:24,370 --> 01:01:26,150 בוא נחזור. 1147 01:01:26,150 --> 01:01:29,015 strrchr, מה הוא סוג התמורה? 1148 01:01:29,015 --> 01:01:29,640 קהל: תו * 1149 01:01:29,640 --> 01:01:31,270 ANDI פנג: זה char *, נכון? 1150 01:01:31,270 --> 01:01:35,760 מה שאומר שאתה כנראה הולך לרוצה ליצור char * אחר לסוג 1151 01:01:35,760 --> 01:01:40,400 של חנות בכל פעם שזה חוזר ל, נכון? 1152 01:01:40,400 --> 01:01:43,200 כי אם אתה קורא strrchr הפונקציה, 1153 01:01:43,200 --> 01:01:47,030 זה הולך לתת לך מצביע ל בכל מקום בו נמצא כי התקופה האחרונה, 1154 01:01:47,030 --> 01:01:47,580 יָמִינָה? 1155 01:01:47,580 --> 01:01:49,913 >> אבל אתה הולך רוצה לאחסן במקום זה, נכון? 1156 01:01:49,913 --> 01:01:52,612 ואז איך אנחנו קוד זה לתכנית שלנו? 1157 01:01:52,612 --> 01:01:54,320 קהל: אתה עושה * char [לא ברור]. 1158 01:01:54,320 --> 01:01:55,240 ANDI פנג: כן. 1159 01:01:55,240 --> 01:01:57,120 קהל: [לא ברור]. 1160 01:01:57,120 --> 01:01:58,000 ANDI פנג: strrchr. 1161 01:01:58,000 --> 01:01:58,390 כן. 1162 01:01:58,390 --> 01:01:59,306 אה, פספס r שם. 1163 01:01:59,306 --> 01:02:02,877 קהל: שם קובץ [לא ברור]. 1164 01:02:02,877 --> 01:02:03,376 מה זה? 1165 01:02:03,376 --> 01:02:04,420 אה, זה פשוט זה. 1166 01:02:04,420 --> 01:02:04,940 >> ANDI פנג: אה, זה פשוט זה. 1167 01:02:04,940 --> 01:02:05,610 כן, מצטער. 1168 01:02:05,610 --> 01:02:06,330 טעות שלי. 1169 01:02:06,330 --> 01:02:08,370 דוגמאות לא תאמו. 1170 01:02:08,370 --> 01:02:12,130 >> קהל: ואז נקודה. 1171 01:02:12,130 --> 01:02:13,970 >> ANDI פנג: כן. 1172 01:02:13,970 --> 01:02:16,570 היזהר כאשר אתם הן-- כאן, תן לי להתמקד ב. 1173 01:02:16,570 --> 01:02:22,355 1174 01:02:22,355 --> 01:02:24,400 הנה. 1175 01:02:24,400 --> 01:02:26,770 היזהר כאשר אתם מקלידים, במיוחד כאשר 1176 01:02:26,770 --> 01:02:27,920 אתה עושה רק char. 1177 01:02:27,920 --> 01:02:32,480 זה ממש קל בטעות רק לעשות מרכאות כפולות ולא בודד. 1178 01:02:32,480 --> 01:02:35,212 >> זה לא יעבוד. 1179 01:02:35,212 --> 01:02:36,670 מהדר שלך הולך להתלונן. 1180 01:02:36,670 --> 01:02:38,790 והתפקוד שלך הוא פשוט לא הולך לרוץ. 1181 01:02:38,790 --> 01:02:40,540 וכדי להיות זהיר כאשר אתה עושה דברים 1182 01:02:40,540 --> 01:02:42,622 עם תווים שזה גרשיים בודדים. 1183 01:02:42,622 --> 01:02:44,830 וכך גם הקו הזה של קוד הגיוני לכולם? 1184 01:02:44,830 --> 01:02:46,810 אנחנו יוצרים את מצביע * char. 1185 01:02:46,810 --> 01:02:50,310 בגלל תשואות strrchr משהו של מצביע סוג. 1186 01:02:50,310 --> 01:02:53,440 >> וכך אנחנו הולכים לקרוא strchr בים, שהוא המחרוזת, הקובץ 1187 01:02:53,440 --> 01:02:55,140 שם, שאנחנו עוברים ב. 1188 01:02:55,140 --> 01:02:59,750 ואנחנו מחפשים האחרונים מופע של התקופה, שהוא 1189 01:02:59,750 --> 01:03:02,200 רק ציטוט אחד dot ציטוט אחד. 1190 01:03:02,200 --> 01:03:02,700 כן. 1191 01:03:02,700 --> 01:03:05,180 >> קהל: מתי אנו משתמשים במרכאות כפולות וכאשר אנחנו משתמשים בגרשיים בודדים? 1192 01:03:05,180 --> 01:03:05,320 >> ANDI פנג: כן. 1193 01:03:05,320 --> 01:03:07,180 ציטוטים אז כפולים הם תמיד כשאתה 1194 01:03:07,180 --> 01:03:10,120 יש שורה של יותר מאשר רק אחד. 1195 01:03:10,120 --> 01:03:13,070 אז אם אתה עושה strstr, אשר הוא אחד שאתה 1196 01:03:13,070 --> 01:03:16,320 חיפוש מחרוזת למחרוזת, יעבור את זה במרכאות כפולות. 1197 01:03:16,320 --> 01:03:18,070 אבל כל זמן זה רק דמות אחת, 1198 01:03:18,070 --> 01:03:19,870 אתה רוצה לעשות בגרשיים בודדים. 1199 01:03:19,870 --> 01:03:22,880 >> זה דבר טוב לזכור. 1200 01:03:22,880 --> 01:03:25,864 אז עכשיו שיש לנו שלנו מצביע, מה אנחנו עושים עם זה? 1201 01:03:25,864 --> 01:03:27,780 אני מבקש מכם ל הדפסתו, נכון? 1202 01:03:27,780 --> 01:03:30,940 אז [לא ברור], אתה רוצה תן לי את שורת קוד? 1203 01:03:30,940 --> 01:03:31,780 >> קהל: printf-- 1204 01:03:31,780 --> 01:03:32,446 >> ANDI פנג: כן. 1205 01:03:32,446 --> 01:03:35,344 1206 01:03:35,344 --> 01:03:36,843 קהל: --you צריך בעל מקום. 1207 01:03:36,843 --> 01:03:37,340 ANDI פנג: כן. 1208 01:03:37,340 --> 01:03:38,334 קהל: הדפס את בעל המקום. 1209 01:03:38,334 --> 01:03:40,322 אני לא יודע מה המקום בעל הוא אך נקודה אליה. 1210 01:03:40,322 --> 01:03:40,819 >> אוקיי. 1211 01:03:40,819 --> 01:03:42,027 בואו נדלג על זה עכשיו אז. 1212 01:03:42,027 --> 01:03:44,556 קהל: ואז comma-- 1213 01:03:44,556 --> 01:03:45,720 >> ANDI פנג: פוינטר, נכון? 1214 01:03:45,720 --> 01:03:47,970 >> קהל: פוינטר, יאפ. 1215 01:03:47,970 --> 01:03:51,140 >> ANDI פנג: אז סוג של שאלה מכשילה, יש לעשות עם מצביעים ומחרוזות 1216 01:03:51,140 --> 01:03:53,130 שאנחנו כבר סוג של כבר דיברנו על. 1217 01:03:53,130 --> 01:03:57,766 איזה סוג של בעל מקום לעשות צריך למצביע לchar *? 1218 01:03:57,766 --> 01:03:59,574 >> קהל: [לא ברור]. 1219 01:03:59,574 --> 01:04:00,240 ANDI פנג: כן. 1220 01:04:00,240 --> 01:04:02,522 זה יותר קל ממה שאתם חושבים שזה. 1221 01:04:02,522 --> 01:04:03,230 קהל: מחרוזת? 1222 01:04:03,230 --> 01:04:04,730 ANDI פנג: זה רק מחרוזת, בדיוק. 1223 01:04:04,730 --> 01:04:06,595 בגלל לזכור מחרוזות לא קיימים באמת. 1224 01:04:06,595 --> 01:04:09,430 * Char הוא המדויק אותו דבר כמו מחרוזת. 1225 01:04:09,430 --> 01:04:14,461 ואז באמת זה מה שזה היה צריך להיות בשימוש לכל אורך הדרך. 1226 01:04:14,461 --> 01:04:14,960 אוקיי. 1227 01:04:14,960 --> 01:04:17,810 >> בואו תראו אם אנחנו יכולים לנסות לרוץ זה. 1228 01:04:17,810 --> 01:04:19,450 בואו לעשות הארכת איפור. 1229 01:04:19,450 --> 01:04:22,710 1230 01:04:22,710 --> 01:04:23,396 לְהִתְקַרֵר. 1231 01:04:23,396 --> 01:04:28,830 אתם רואים איך אני עובר ב psset7.zip וfinalpaper.docx, 1232 01:04:28,830 --> 01:04:32,500 וזה פשוט מדפיס .zip ו.docx? 1233 01:04:32,500 --> 01:04:34,150 הגיוני? 1234 01:04:34,150 --> 01:04:36,660 >> אוקי אז אני חושב במבט אותך פונקציה בpset אתה 1235 01:04:36,660 --> 01:04:41,050 הולך להיות שאלו אם מחרוזת סיום מסוים, 1236 01:04:41,050 --> 01:04:42,800 אתה צריך לתת קוד שגיאה מסוים. 1237 01:04:42,800 --> 01:04:44,820 ואז זה יהיה די נורא. 1238 01:04:44,820 --> 01:04:47,350 כי אם אתה יכול להבין מה היא הרחבה, 1239 01:04:47,350 --> 01:04:49,810 אז אתה יכול להשוות את זה הארכה כדי לראות אם היא תואמת את 1240 01:04:49,810 --> 01:04:51,251 עם סיומת מסוימת. 1241 01:04:51,251 --> 01:04:53,250 ואז אתה יכול לחזור הודעת שגיאה, נכון? 1242 01:04:53,250 --> 01:04:53,860 כן. 1243 01:04:53,860 --> 01:04:55,370 >> קהל: אז אנחנו לא צריך להוסיף 1 או משהו? 1244 01:04:55,370 --> 01:04:56,530 המצביע ילך כל-- 1245 01:04:56,530 --> 01:04:56,660 >> ANDI פנג: לא ולא. 1246 01:04:56,660 --> 01:04:57,530 >> קהל: --point אחרי זה. 1247 01:04:57,530 --> 01:04:58,196 >> ANDI פנג: כן. 1248 01:04:58,196 --> 01:05:00,650 הוא מצביע בדיוק ל שבו ההתרחשות הייתה. 1249 01:05:00,650 --> 01:05:04,010 כך למשל כאן, אנחנו מחפש את התקופה. 1250 01:05:04,010 --> 01:05:06,597 אז זה הולך לחזור מצביע לתקופה. 1251 01:05:06,597 --> 01:05:08,930 ואז זה הולך להדפיס את מתחיל בתקופה. 1252 01:05:08,930 --> 01:05:10,260 >> אז אתה לא צריך להוסיף 1. 1253 01:05:10,260 --> 01:05:15,000 אמנם, זה לגמרי בסדר, אם אתה לא בטוח, רק סוג 1254 01:05:15,000 --> 01:05:16,070 של לבדוק את זה בעצמך. 1255 01:05:16,070 --> 01:05:17,590 לבנות תכנית לדוגמא. 1256 01:05:17,590 --> 01:05:20,240 לבדוק את זה בעצמך ו לראות איפה זה דפוס. 1257 01:05:20,240 --> 01:05:23,380 זה גם דרך לא רע לעשות את זה. 1258 01:05:23,380 --> 01:05:26,040 >> לְהִתְקַרֵר. 1259 01:05:26,040 --> 01:05:28,880 וזה פחות או יותר כל הייתה לי בשבילכם היום. 1260 01:05:28,880 --> 01:05:31,440 1261 01:05:31,440 --> 01:05:33,300 עשינו הרבה דברים pset היום. 1262 01:05:33,300 --> 01:05:35,720 אז במקרה של ספק, כמו אמרתי, תמיד להסתכל למעלה 1263 01:05:35,720 --> 01:05:37,620 ספריית string.h לpset זה. 1264 01:05:37,620 --> 01:05:40,370 יש הולך להיות הרבה פונקציה שם שעשויה להיות שימושית. 1265 01:05:40,370 --> 01:05:41,300 חלקם עשויים לא להיות שימושיים. 1266 01:05:41,300 --> 01:05:42,133 אני לא ממש יודע. 1267 01:05:42,133 --> 01:05:44,370 ווייד דרכו, יש חבורה שלמה שלהם. 1268 01:05:44,370 --> 01:05:49,100 strstr, strchr, strrchr הם סופר, סופר מועיל, כמו גם 1269 01:05:49,100 --> 01:05:52,080 strcpys וstrcasecmps שאנחנו כבר בשימוש. 1270 01:05:52,080 --> 01:05:56,510 >> זה פשוט הרבה להתעסק עם מחרוזות, קביעה אם הם שווים, 1271 01:05:56,510 --> 01:05:59,960 מקבל דברים מחוטים, ו יכולת לפתוח קבצים בצורה נכונה. 1272 01:05:59,960 --> 01:06:02,252 זה הרבה אני קובץ / O. pset באמת לא כל כך רע. 1273 01:06:02,252 --> 01:06:04,210 אתה הולך לקחת תסתכל על זה, להוריד אותו, 1274 01:06:04,210 --> 01:06:05,590 ולראות חבורה של קוד כולו. 1275 01:06:05,590 --> 01:06:09,220 אין דאגות, את הקוד ש למעשה לכתוב הוא לא רע בכלל. 1276 01:06:09,220 --> 01:06:12,870 אם למישהו יש בעיות עימם שרת, לבוא לראות אותי אחרי הסעיף. 1277 01:06:12,870 --> 01:06:16,040 >> מתנצל שוב על שלא מביא ממתקים לליל כל הקדושים. 1278 01:06:16,040 --> 01:06:18,790 אני לא יודע מה לא בסדר איתי. 1279 01:06:18,790 --> 01:06:20,800 אבל תהיה לנו כפול הסוכריות בפעם הבאה. 1280 01:06:20,800 --> 01:06:25,620 ומזל טוב בpset שבוע. 1281 01:06:25,620 --> 01:06:27,170 כן. 1282 01:06:27,170 --> 01:06:28,722