1 00:00:00,000 --> 00:00:02,742 >> [موسیقی] 2 00:00:02,742 --> 00:00:05,030 3 00:00:05,030 --> 00:00:09,090 >> ANDI PENG: این CS50 است، و به دو هفته از بخش خوش آمدید. 4 00:00:09,090 --> 00:00:11,740 این است که در واقع در حالی که هفته دو نفر از class-- ما در واقع، 5 00:00:11,740 --> 00:00:14,550 هفته اول ما بخش بود. 6 00:00:14,550 --> 00:00:18,897 دست ها، که چگونه بسیاری از همه شما هفته گذشته به بخش فوق العاده آمد؟ 7 00:00:18,897 --> 00:00:19,480 OK، که OK. 8 00:00:19,480 --> 00:00:20,020 این خوب است. 9 00:00:20,020 --> 00:00:23,110 چگونه بسیاری از شما را تماشا بخش فوق العاده هفته گذشته؟ 10 00:00:23,110 --> 00:00:23,610 باشه. 11 00:00:23,610 --> 00:00:25,702 و شما بچه ها خوب بود در مجموعه ای مشکل است؟ 12 00:00:25,702 --> 00:00:28,660 بنابراین من قصد دارم به آن را که ما یک دسته از بچه ها واقعا هوشمند 13 00:00:28,660 --> 00:00:32,310 در این کلاس و همه چیز خوب خواهد بود. 14 00:00:32,310 --> 00:00:33,180 باشه. 15 00:00:33,180 --> 00:00:33,980 بنابراین first-- 16 00:00:33,980 --> 00:00:37,900 17 00:00:37,900 --> 00:00:41,090 >> اول، ما فقط رفتن را به طور خلاصه بیش از دستور کار امروز است. 18 00:00:41,090 --> 00:00:42,700 ما در مورد تدارکات البته صحبت کنید. 19 00:00:42,700 --> 00:00:45,480 بسیاری از شما احتمالا سوال در مورد 20 00:00:45,480 --> 00:00:46,920 همه چیز در این دوره اجرا چگونه. 21 00:00:46,920 --> 00:00:47,897 ما آنها را پاسخ خواهم داد. 22 00:00:47,897 --> 00:00:49,730 ما قصد داریم به اختصار به بیش از حلقه ها در مورد 23 00:00:49,730 --> 00:00:51,410 هر یک از شما بچه ها بخش فوق العاده از دست رفته. 24 00:00:51,410 --> 00:00:53,240 ما در مورد نقشه برداری ASCII صحبت کنید. 25 00:00:53,240 --> 00:00:56,180 ما در مورد آرایه ها صحبت می کنید، توابع، آرگومان های خط فرمان. 26 00:00:56,180 --> 00:01:00,210 و در نهایت، آنچه که شما بچه احتمالا همه واقعا می خواهید به اینجا برای یادگیری در مورد، 27 00:01:00,210 --> 00:01:01,270 pset2 شما است. 28 00:01:01,270 --> 00:01:04,209 ما برخی از ترفندهای خوب باید و راهنمایی برای چگونگی انجام این کار. 29 00:01:04,209 --> 00:01:07,910 30 00:01:07,910 --> 00:01:08,690 >> باشه. 31 00:01:08,690 --> 00:01:11,450 همچنین، در مرحله دوم، ما باید بسیاری از آب نبات است. 32 00:01:11,450 --> 00:01:13,583 هر کسی که دوست آب نبات، فقط آمده تا اینجا. 33 00:01:13,583 --> 00:01:14,430 چنگ زدن به برخی. 34 00:01:14,430 --> 00:01:15,100 من یک دسته. 35 00:01:15,100 --> 00:01:16,390 ما یک تن در دفتر. 36 00:01:16,390 --> 00:01:18,230 من واقعا نمی خواهید به خوردن آب نبات تمام طول روز. 37 00:01:18,230 --> 00:01:20,300 شما بچه ها باید تمام آب نبات خوردن، چون من آن را به اینجا آورده برای شما بچه ها. 38 00:01:20,300 --> 00:01:20,990 فقط آب نبات بخورند. 39 00:01:20,990 --> 00:01:24,080 می شود آب نبات هر بخش وجود دارد. 40 00:01:24,080 --> 00:01:25,330 >> پس اول، من که هستم؟ 41 00:01:25,330 --> 00:01:27,080 نام من اندی پنگ است. 42 00:01:27,080 --> 00:01:30,270 من سر TA از CS50 در دانشگاه ییل است. 43 00:01:30,270 --> 00:01:32,540 و علاوه بر که، من هم خواهد be-- 44 00:01:32,540 --> 00:01:35,600 اگر کسی در حال اجرا خود را like-- دوستان، شانه خود را به گریه کردن. 45 00:01:35,600 --> 00:01:39,140 اگر شب قبل به دلیل pset خود را، شما هیچ ایده چه خبر است، 46 00:01:39,140 --> 00:01:40,080 به من رسید تا. 47 00:01:40,080 --> 00:01:42,770 ما با هم شروع همدردی، و غیره. 48 00:01:42,770 --> 00:01:46,100 فقط اینکه بدانند من اینجا هستم به عنوان یک منابع برای شما به عنوان خط مقدم 49 00:01:46,100 --> 00:01:51,830 در کمک به شما بچه ها بفهمند که چگونه برای حل مشکلات در CS50 و فراتر از آن. 50 00:01:51,830 --> 00:01:54,590 >> ایمیل من andi.peng@yale.edu است. 51 00:01:54,590 --> 00:01:58,390 من هم از ارسال یک فرد ایمیل با شماره تلفن من در آن 52 00:01:58,390 --> 00:02:01,860 طوری که هر کس نه در اینترنت می توانید شماره تلفن من را ببینید. 53 00:02:01,860 --> 00:02:03,640 احساس رایگان به من پاسخ در هر زمان. 54 00:02:03,640 --> 00:02:07,510 به طور جدی، گوشی من است معمولا به دست من وصل شده است. 55 00:02:07,510 --> 00:02:10,240 من ممکن است پاسخ نمی در عرض چند دقیقه. 56 00:02:10,240 --> 00:02:11,984 من ممکن است در عرض چند ساعت پاسخ نمی دهند. 57 00:02:11,984 --> 00:02:14,400 اما من می تواند به شما، اگر تضمین شما ایمیل به من، اگر شما با من تماس بگیرید، 58 00:02:14,400 --> 00:02:17,404 من متن، من ظرف 24 ساعت پاسخ. 59 00:02:17,404 --> 00:02:19,820 اغلب اوقات، من قبل از پاسخ که، چون من درک 60 00:02:19,820 --> 00:02:23,900 است که هر کس در برخی از مشکلات، و شما می خواهید پاسخ خود را 61 00:02:23,900 --> 00:02:26,110 به سرعت پاسخ داده شود. 62 00:02:26,110 --> 00:02:28,945 >> با این حال، اگر شما پاسخ من 30 دقیقه قبل از 63 00:02:28,945 --> 00:02:31,570 آن قطعه است که به علت پنجشنبه night-- شود، اندی، من کمک کند، 64 00:02:31,570 --> 00:02:35,380 من started-- من ممکن است به شما که شانه به گریه کردن. 65 00:02:35,380 --> 00:02:41,520 اما ممکن است زمان برای فکر کردن در مورد چگونه است که در کنار هم نیست. 66 00:02:41,520 --> 00:02:44,040 باشه. 67 00:02:44,040 --> 00:02:44,944 اوه. 68 00:02:44,944 --> 00:02:45,850 چگونه تماس بروم؟ 69 00:02:45,850 --> 00:02:48,140 ما میرویم آنجا. 70 00:02:48,140 --> 00:02:52,310 >> بنابراین در این دوره، ما یک تن از پشتیبانی برای همه. 71 00:02:52,310 --> 00:02:54,640 علاوه بر فقط بخش اینجا، که شما 72 00:02:54,640 --> 00:02:57,000 هر هفته به صرف 90 دقیقه فوق العاده با من، 73 00:02:57,000 --> 00:02:58,330 ما همچنین ساعات اداری داشته باشد. 74 00:02:58,330 --> 00:03:01,021 چگونه بسیاری از شما بچه ها در حال حاضر برای کمک به ساعات اداری بوده است؟ 75 00:03:01,021 --> 00:03:01,520 عالی. 76 00:03:01,520 --> 00:03:05,700 این واقعا خوبی است برای دیدن، چرا که ما یک هیات از بیش از 45 استادیار و CAS 77 00:03:05,700 --> 00:03:11,780 آموزش دیده برای این دوره است که اینجا هستید برای کمک به شما بچه ها با psets خود را. 78 00:03:11,780 --> 00:03:14,580 >> دوشنبه آنها در ای آبی سیر برگزار کلاس درس در 17 هیل خانه در اینجا 79 00:03:14,580 --> 00:03:15,350 در دانشگاه ییل. 80 00:03:15,350 --> 00:03:17,349 سه شنبه و پنج شنبه ها، آنها در عوام برگزار می شود. 81 00:03:17,349 --> 00:03:20,010 8:00-11:00 تقریبا هر روز هفته. 82 00:03:20,010 --> 00:03:21,620 بیا، بیرون می آیند. 83 00:03:21,620 --> 00:03:24,030 هر گونه مشکل، هیچ problem-- فقط در در آمده است، 84 00:03:24,030 --> 00:03:26,650 و سپس ما شما را با آن کمک کند. 85 00:03:26,650 --> 00:03:31,640 >> در مرحله دوم، علاوه بر ساعات اداری و بخش، ما نیز شورت داشته باشد. 86 00:03:31,640 --> 00:03:35,930 تا به هر کسی تا کنون دیده یک زن و شوهر از شورت و یا تکمیل فرم سفارش در فیلم 87 00:03:35,930 --> 00:03:36,750 در وب سایت؟ 88 00:03:36,750 --> 00:03:37,250 باشه. 89 00:03:37,250 --> 00:03:39,510 به طوری که آنها واقعا، واقعا مفید است. 90 00:03:39,510 --> 00:03:42,470 تولید و دوست داشتنی ما هاروارد تیم بیش از وجود دارد در آن مدرسه 91 00:03:42,470 --> 00:03:47,910 تا شمال، آنها فیلم برداری و تولید این فیلم خرید باور نکردنی است. 92 00:03:47,910 --> 00:03:52,290 >> آنها شما را قدم به قدم از طریق چگونه در مورد حل یک مشکل است. 93 00:03:52,290 --> 00:03:56,340 اغلب اوقات، اگر شما در حال اشتباه در مورد یک مفهوم ساده، یک مفهوم منحصر به فرد، 94 00:03:56,340 --> 00:03:59,780 نگاهی، چرا که ما احتمالا کوتاه بر روی آن در جایی در وب سایت ما. 95 00:03:59,780 --> 00:04:03,800 و آن را معمولا یک منبع بزرگ برای زمانی که شما برای اولین بار است نگاه 96 00:04:03,800 --> 00:04:06,510 از دست رفته در نحوه رسیدگی به مشکل است. 97 00:04:06,510 --> 00:04:09,750 >> سوم، ما نیز study50 و reference50. 98 00:04:09,750 --> 00:04:15,650 بنابراین مطالعه بر روی 50 وب سایت فقط یک لینک است. 99 00:04:15,650 --> 00:04:21,500 از آن، من فکر می کنم، study.cs50.net یا چیزی شبیه به آن. 100 00:04:21,500 --> 00:04:22,860 فقط آن را گوگل. 101 00:04:22,860 --> 00:04:24,229 ما تعداد زیادی از اسلاید آماده شده است. 102 00:04:24,229 --> 00:04:26,770 ما تعداد زیادی از شورت و همه چیز از همه walkthroughs-- وارد 103 00:04:26,770 --> 00:04:31,070 بسیار زیبا و شسته و رفته برای شما بچه ها همه به مرور، هر مفاهیم 104 00:04:31,070 --> 00:04:32,860 که شما در مورد اشتباه است. 105 00:04:32,860 --> 00:04:35,920 این احتمالا پوشش داده شود بیش از وجود دارد در study50. 106 00:04:35,920 --> 00:04:37,640 >> Reference50-- مشابه است. 107 00:04:37,640 --> 00:04:41,510 در حال حاضر بسیاری از یادداشت های مختلف به آسانی برای اختیار شما در دسترس است. 108 00:04:41,510 --> 00:04:44,450 و در آخر، ما باید چه نام CS50 بحث، 109 00:04:44,450 --> 00:04:48,082 فروم که در آن، اگر شب قبل شما در حال انجام مشکلات خود، می گویند، 110 00:04:48,082 --> 00:04:49,880 شما یک سوال. 111 00:04:49,880 --> 00:04:52,340 ورود به CS50 بحث. 112 00:04:52,340 --> 00:04:53,190 ارسال درخواست خود را. 113 00:04:53,190 --> 00:04:55,820 و پس از آن یکی از hundreds-- شاید، thousands-- از همسالان 114 00:04:55,820 --> 00:04:57,960 گرفتن آنلاین این کلاس وارد شوید در. 115 00:04:57,960 --> 00:05:01,182 و شاید یه می توانید پاسخ خود را قبل از یک قوطی TA. 116 00:05:01,182 --> 00:05:03,390 این در اصل فقط یک انجمن آنلاین است که ما می توانیم تمام 117 00:05:03,390 --> 00:05:04,556 استفاده به بحث در مورد مشکلات ما است. 118 00:05:04,556 --> 00:05:06,483 که سرد است. 119 00:05:06,483 --> 00:05:10,660 120 00:05:10,660 --> 00:05:11,550 >> باشه. 121 00:05:11,550 --> 00:05:13,220 بنابراین مجموعه مسائل. 122 00:05:13,220 --> 00:05:17,840 ما در مورد درست در حال ضخامت از مشکل تنظیم دو. 123 00:05:17,840 --> 00:05:20,570 بسیاری از ما در حال حاضر در مورد مشکل تلاش یک مجموعه است. 124 00:05:20,570 --> 00:05:24,460 ما می دانیم که شاید انتظار برای شب گذشته به انجام pset خود را 125 00:05:24,460 --> 00:05:28,170 است باهوش ترین کاری که به انجام در CS50 است. 126 00:05:28,170 --> 00:05:32,380 >> نکات و راهنمایی در اصل برای موفقیت، طیف تنظیمات به عنوان خوانده شده. 127 00:05:32,380 --> 00:05:36,270 چگونه بسیاری از شما در حال حاضر خواندن تنظیمات برای pset 2؟ 128 00:05:36,270 --> 00:05:36,770 باشه. 129 00:05:36,770 --> 00:05:39,840 که مقدار جامد است. 130 00:05:39,840 --> 00:05:43,210 من می دانم که شما بچه ها احتمالا به رسمیت شناخته شده در حال حاضر توسط مشخصات واقعا طولانی است. 131 00:05:43,210 --> 00:05:45,700 آنها واقعا، واقعا طولانی است. 132 00:05:45,700 --> 00:05:49,630 >> این واقعا سخت به خواندن هر خط که با دقت کلمه به کلمه. 133 00:05:49,630 --> 00:05:52,780 شما می خواهید فقط به جایی که خامه ای آن را به شما می گوید برای انجام کاری. 134 00:05:52,780 --> 00:05:54,459 من می توانم شما را تضمین کند، این کار را نمی کند. 135 00:05:54,459 --> 00:05:56,750 اگر شما این کار، شما احتمالا رفتن به از دست جایی 136 00:05:56,750 --> 00:05:58,458 که در آن به شما می گوید چگونه برای شروع یک مشکل 137 00:05:58,458 --> 00:06:01,140 یا آن را به شما می گوید چه به نام مشکل شما و یا آن را به شما می گوید، 138 00:06:01,140 --> 00:06:03,720 این است که احتمالا بهترین راه برای شروع به انجام مشکل شما. 139 00:06:03,720 --> 00:06:05,050 و سپس شما را از دست داده می شود. 140 00:06:05,050 --> 00:06:08,219 >> هنگامی که شما سعی می کنید به خواندن خود را تنظیمات نیمه راه از طریق، 141 00:06:08,219 --> 00:06:10,510 بسیاری از مهم information-- که در شما نیست 142 00:06:10,510 --> 00:06:12,260 رفتن به قادر به دسترسی واقعا. 143 00:06:12,260 --> 00:06:13,219 به طوری که تمام تنظیمات به عنوان خوانده شده. 144 00:06:13,219 --> 00:06:15,468 سعی کنید به خواندن کل تنظیمات قبل از اینکه شما به بخش آمده است، 145 00:06:15,468 --> 00:06:17,360 چرا که پس از، زمانی که ما بحث در مورد pset، 146 00:06:17,360 --> 00:06:21,070 ما همه می توانند یک ایده چه خبر است. 147 00:06:21,070 --> 00:06:25,169 >> در مرحله دوم، این یک مفهوم است که من می خواهم به مرجع 148 00:06:25,169 --> 00:06:26,710 بسیاری در سراسر ترم البته. 149 00:06:26,710 --> 00:06:30,070 اما در اصل، ما ملاقات در نیمه راه، درست است؟ 150 00:06:30,070 --> 00:06:33,970 من، به عنوان TA و جیسون خود را به عنوان دوره بدهید و به عنوان استاد خود را Scaz 151 00:06:33,970 --> 00:06:37,120 و دیوید به عنوان استاد خود را و همه از دیگر استادیار دوست داشتنی در این دوره، 152 00:06:37,120 --> 00:06:39,830 دستیاران در این course-- ما بهترین های ما را انجام خواهد داد 153 00:06:39,830 --> 00:06:42,965 به اطمینان حاصل شود که شما قرار است تا برای موفقیت در این دوره است. 154 00:06:42,965 --> 00:06:43,840 ما بخش نگه دارید. 155 00:06:43,840 --> 00:06:44,870 ما ساعات اداری برگزار خواهد شد. 156 00:06:44,870 --> 00:06:47,087 ما تلفن شما جواب خواهد داد تماس، پاسخ خود را ایمیل، 157 00:06:47,087 --> 00:06:49,670 انجام همه چیز را ما می توانیم به مطمئن سوالات خود را پاسخ. 158 00:06:49,670 --> 00:06:51,460 >> با این حال، ما کمک کند بیش از حد. 159 00:06:51,460 --> 00:06:52,450 ملاقات با ما را در نیمه راه. 160 00:06:52,450 --> 00:06:56,040 اگر شما به ساعات اداری آمده داشتن رفته نیست به بخش، نه 161 00:06:56,040 --> 00:07:02,060 دیده سخنرانی، بدون داشتن چه خبر است، مانند، به من کمک کند. 162 00:07:02,060 --> 00:07:04,350 من قصد دارم به مانند، خوب، من متاسفم باشد. 163 00:07:04,350 --> 00:07:06,410 ممکن است آن زمان به من قرض بدهید که شانه ای برای گریه در، 164 00:07:06,410 --> 00:07:08,959 چون من مطمئن هستم که چه می توانم انجام به شما کمک کند 165 00:07:08,959 --> 00:07:12,000 اگر شما به حداقل کمک را امتحان کنید خودتان کمی در ابتدا. 166 00:07:12,000 --> 00:07:12,910 ملاقات با ما را در نیمه راه. 167 00:07:12,910 --> 00:07:15,020 شما می دانید، لطفا آمده آماده برای پاسخ به و 168 00:07:15,020 --> 00:07:16,353 آماده تعامل در ماده. 169 00:07:16,353 --> 00:07:19,342 این باعث می شود چیزهای بسیار آسان تر برای همه درگیر است. 170 00:07:19,342 --> 00:07:22,970 آره، که تقریبا آن. 171 00:07:22,970 --> 00:07:23,720 >> درجه بندی. 172 00:07:23,720 --> 00:07:29,250 بنابراین در برنامه درسی، آن را بسیار در عمق مورد چگونه ما درجه. 173 00:07:29,250 --> 00:07:32,440 اما در اصل، شکست در این 50٪ از نمره خود را است 174 00:07:32,440 --> 00:07:34,530 خواهد بود که psets که دوست داشتنی است، چرا که 175 00:07:34,530 --> 00:07:37,400 که در آن شما در حال صرف گسترده اکثر وقت البته خود را در. 176 00:07:37,400 --> 00:07:39,854 آزمون ها 40٪ و خود را پروژه نهایی خواهد شد 10٪. 177 00:07:39,854 --> 00:07:42,520 وجود خواهد داشت دو آزمون ها در این دوره از ترم. 178 00:07:42,520 --> 00:07:47,050 من فکر می کنم زمان و تاریخ هستند همچنین در برنامه درسی ذکر شده است. 179 00:07:47,050 --> 00:07:49,210 >> راه که ما را درجه بندی شود psets خود را 180 00:07:49,210 --> 00:07:53,930 این است که ما اساسا چهار ارزش هایی که ما را به هر درجه اختصاص دهید. 181 00:07:53,930 --> 00:07:57,250 ما یک مقدار دامنه، صحت، طراحی و سبک. 182 00:07:57,250 --> 00:08:01,530 بنابراین همانطور که می بینید، این نوع از ما را فرمول محاسبه psets. 183 00:08:01,530 --> 00:08:03,640 سه ما در ترین را وزن به صحت، 184 00:08:03,640 --> 00:08:06,140 زیرا بدیهی است مربی تیم خود را باید برای موارد آزمایش 185 00:08:06,140 --> 00:08:08,480 که ما می خواهیم آن را برای تست. 186 00:08:08,480 --> 00:08:11,000 >> شما بچه ها همه check50 در اختیار شما. 187 00:08:11,000 --> 00:08:13,730 این یک تابع بسیار مفید است که شما می توانید بچه ها همه 188 00:08:13,730 --> 00:08:17,560 آپلود کد خود را به سرور ما، که در آن ما آن را برای شما بررسی خواهد کرد. 189 00:08:17,560 --> 00:08:20,800 و شما آن را دیده ام چهره frowny، چهره لبخند. 190 00:08:20,800 --> 00:08:22,119 آنها واقعا مفید است. 191 00:08:22,119 --> 00:08:23,910 لطفا نمی شود دانشجویی که دوست تلاش می کند 192 00:08:23,910 --> 00:08:26,230 به hardcode در تمام پاسخ به آنها. 193 00:08:26,230 --> 00:08:30,050 من قطعا دیده ام که در آن pset کسی را دیدم تمام ارزش های check50 194 00:08:30,050 --> 00:08:33,429 و آنها فقط سخت in-- اگر کدگذاری این تعداد، چاپ کردن این عدد است. 195 00:08:33,429 --> 00:08:35,080 اگر این تعداد، نسخه قابل چاپ کردن این تعداد است. 196 00:08:35,080 --> 00:08:36,090 آیا انجام این کار نیست. 197 00:08:36,090 --> 00:08:39,360 >> هر چند از لحاظ فنی حتی check50 درست باشد، 198 00:08:39,360 --> 00:08:41,809 راه خود را از حل مشکل این است که درست نیست. 199 00:08:41,809 --> 00:08:45,770 پس فقط به مقدار کم استفاده check50. 200 00:08:45,770 --> 00:08:48,497 اما همچنین مطمئن شوید که شما را درک چگونگی عملکرد آن، 201 00:08:48,497 --> 00:08:50,580 برنامه عملکرد در علاوه بر این به check50، 202 00:08:50,580 --> 00:08:53,120 زیرا ما می توانیم هر آزمون نیست مورد ممکن است از check50. 203 00:08:53,120 --> 00:08:55,440 ما می شود آزمایش برخی از آنها. 204 00:08:55,440 --> 00:09:00,390 >> طراحی اساسا، چگونه به خوبی طراحی شده کد شما است؟ 205 00:09:00,390 --> 00:09:04,150 اگر شما چند کپی چسباندن هستند خط کد بارها و بارها. 206 00:09:04,150 --> 00:09:06,960 شاید شما کاملا ندارد بهترین طراحی در کد خود را. 207 00:09:06,960 --> 00:09:09,470 شاید زمان برای اضافه کردن که حلقه آن است. 208 00:09:09,470 --> 00:09:12,090 اساسا، در اینجا آن را فقط به همه در مورد تلاش برای انجام کد خود را، 209 00:09:12,090 --> 00:09:17,010 تلاش برای نوشتن کد خود را به عنوان موثر به که ممکن است به طوری که برنامه خود را اجرا می 210 00:09:17,010 --> 00:09:19,630 با بیشترین سرعت ممکن. 211 00:09:19,630 --> 00:09:20,996 >> در نهایت، ما باید سبک. 212 00:09:20,996 --> 00:09:24,360 بنابراین سبک نوع از است دلخواه مدت، ذهنی است. 213 00:09:24,360 --> 00:09:27,470 من می دانم که ما رسما از یک راهنمای سبک 50 برای CS50، 214 00:09:27,470 --> 00:09:30,050 که در آن به شما می گوید، آه شما، باید یک فضای اینجا. 215 00:09:30,050 --> 00:09:32,220 شما باید نوع فرمت کد را در این راه. 216 00:09:32,220 --> 00:09:34,070 شما باید همه چیز نام این راه. 217 00:09:34,070 --> 00:09:38,180 >> من واقعا نمی مراقبت، در هر سه، چگونه شما انتخاب می کنید به سبک کد خود را، 218 00:09:38,180 --> 00:09:39,840 فقط تا زمانی که شما اقامت سازگار است. 219 00:09:39,840 --> 00:09:43,732 به عنوان مثال، اگر شما به دوست ترک یک فاصله پس از چهار خود را 220 00:09:43,732 --> 00:09:45,690 قبل از چهار حلقه خود را، فقط انجام این کار در هر زمان. 221 00:09:45,690 --> 00:09:46,523 هنوز نه از نوع آن انجام دهد. 222 00:09:46,523 --> 00:09:47,730 آیا انجام این کار بار دیگر نیست. 223 00:09:47,730 --> 00:09:51,046 اگر دوست دارید برای حفظ در اشکال مختلف فضای پرانتز یک روش خاص، 224 00:09:51,046 --> 00:09:52,170 فقط همیشه آن را که راه را انجام دهد. 225 00:09:52,170 --> 00:09:54,628 هنوز نه از نوع آن را انجام جایی در اینجا و در جایی وجود ندارد. 226 00:09:54,628 --> 00:09:57,010 زمانی که ما درجه بندی، این واقعا دشوار است 227 00:09:57,010 --> 00:09:59,420 اگر هیچ ایده چگونه شما در حال کد قالب بندی شده خود را، 228 00:09:59,420 --> 00:10:02,064 همه چیز حواس پرت و خارج از محل. 229 00:10:02,064 --> 00:10:04,980 اگر شما فقط آن را نگه دارید سازگار باشد، آن را بسیار آسان تر برای من به عنوان بیشتر 230 00:10:04,980 --> 00:10:06,310 قادر به خواندن کد خود را. 231 00:10:06,310 --> 00:10:09,393 آن را بسیار آسان تر برای شما به عنوان یک دانشجوی قادر به از طریق کد خود را نگاه کنید 232 00:10:09,393 --> 00:10:11,720 و ببینید که چه چیزی اشتباه است با آن را بریده بریده چرا مسائل وجود دارد. 233 00:10:11,720 --> 00:10:15,740 سبک یکی از ساده ترین چیز است شما بچه ها می توانید انجام دهید برای گرفتن نمره کامل است. 234 00:10:15,740 --> 00:10:18,770 اساسا، اگر شما فقط مراقبت، اگر شما پنج دقیقه از توجه 235 00:10:18,770 --> 00:10:22,760 به کد خود را در هر هفته، شما باید شود گرفتن امتیاز به سبک کامل است. 236 00:10:22,760 --> 00:10:26,020 >> در نهایت، ما باید آنچه را به نام چند برابر از دامنه. 237 00:10:26,020 --> 00:10:28,890 Scope-- من می دانم آن بزرگ کلمه، به خصوص در این کلاس است. 238 00:10:28,890 --> 00:10:31,030 اما دامنه، که به معنی این است که شما در حال تلاش 239 00:10:31,030 --> 00:10:33,670 psets به بهترین توانایی خود را. 240 00:10:33,670 --> 00:10:37,180 اگر شما در سه به نوبه خود چهار مشکلات خود 241 00:10:37,180 --> 00:10:39,460 و حتی نمی تلاش یکی از آخرین، شما احتمالا 242 00:10:39,460 --> 00:10:41,630 رفتن به از دست دادن برخی از نقاط در دامنه. 243 00:10:41,630 --> 00:10:44,560 >> حتی اگر شما فقط شروع مشکل، بهترین کار خود را از طریق آن راه رفتن. 244 00:10:44,560 --> 00:10:47,691 حتی اگر آن کار نمی کند، آن را در، چرا که نشان می دهد و نشان می دهد 245 00:10:47,691 --> 00:10:50,190 به ما که شما در حال تلاش، که شما مجموعه ای مشکل تلاش 246 00:10:50,190 --> 00:10:51,430 به بهترین توانایی خود را. 247 00:10:51,430 --> 00:10:53,800 و سپس ما می تواند شما را امتیاز کامل برای دامنه. 248 00:10:53,800 --> 00:10:58,715 >> دامنه است برای زمانی که ما بسیار مهم در مورد پایین ترین نمره قطره pset صحبت کنید. 249 00:10:58,715 --> 00:11:02,010 بنابراین در طول این دوره از ترم، شما بچه ها نه psets. 250 00:11:02,010 --> 00:11:05,340 و ما در واقع می شود حذف پایین ترین نمره از آن نه 251 00:11:05,340 --> 00:11:07,670 اما تنها در صورتی که شما دارای نقاط دامنه کامل. 252 00:11:07,670 --> 00:11:11,120 >> بنابراین اگر شما در یک pset ناقص به نوبه خود، متاسفانه، ما می توانیم که رها نمی کند، 253 00:11:11,120 --> 00:11:13,540 چون دامنه خود را امتیاز تکمیل نشده است. 254 00:11:13,540 --> 00:11:16,570 بنابراین حتی اگر شما در هفته افتضاح که در آن شما در حال مرگ و شما بیمار هستید 255 00:11:16,570 --> 00:11:20,040 یا سگ خود می میرد، گربه خود می میرد، و شما با مشق شب غیرمنتظره، 256 00:11:20,040 --> 00:11:21,074 فقط تلاش pset. 257 00:11:21,074 --> 00:11:22,490 آیا آن را به بهترین توانایی خود را. 258 00:11:22,490 --> 00:11:23,840 اگر آن کار نمی کند، مهم نیست. 259 00:11:23,840 --> 00:11:24,506 فقط آن را در تبدیل شود. 260 00:11:24,506 --> 00:11:26,590 حداقل ما می توانیم شما برای تلاش اشاره می کند. 261 00:11:26,590 --> 00:11:28,510 >> A برای تلاش در این کلاس است. 262 00:11:28,510 --> 00:11:30,170 حداقل کمترین افت نمره برای تلاش. 263 00:11:30,170 --> 00:11:32,354 پس آره. 264 00:11:32,354 --> 00:11:33,270 که تقریبا آن را. 265 00:11:33,270 --> 00:11:36,521 آیا کسی سوالات دور در ما چگونه در کلاس؟ 266 00:11:36,521 --> 00:11:37,187 و یا هر یک از این؟ 267 00:11:37,187 --> 00:11:41,220 هر یک از این پس far-- بخش، ساعات اداری؟ 268 00:11:41,220 --> 00:11:41,720 خنک. 269 00:11:41,720 --> 00:11:46,720 270 00:11:46,720 --> 00:11:47,800 باشه. 271 00:11:47,800 --> 00:11:51,260 >> بنابراین این یک موضوع است که هیچ یکی واقعا دوست دارد به بحث در مورد. 272 00:11:51,260 --> 00:11:53,084 من واقعا نمی خواهم در مورد آن صحبت کنید. 273 00:11:53,084 --> 00:11:55,250 شما بچه ها واقعا نمی خواهید به گوش من در مورد آن صحبت کنید. 274 00:11:55,250 --> 00:11:57,690 اما متاسفانه، ما همه باید در مورد آن صحبت کنید. 275 00:11:57,690 --> 00:12:00,110 دیوید 20 دقیقه را صرف سخنرانی صحبت کردن در مورد آن است. 276 00:12:00,110 --> 00:12:02,580 و این موضوع است صداقت دانشگاهی. 277 00:12:02,580 --> 00:12:08,110 >> بنابراین ما همه در اینجا احتمالا نوشته شده مدتی مقاله در زندگی حرفه ای دانشگاه ییل است. 278 00:12:08,110 --> 00:12:11,800 ما احتمالا یک بحث که در آن ما را بدست گفته شده است مقاله ما به خوشه چینی کردن نیست، 279 00:12:11,800 --> 00:12:13,940 چون که کار ما نیست. 280 00:12:13,940 --> 00:12:18,109 در علم کامپیوتر، ما همان نوع از مفهوم. 281 00:12:18,109 --> 00:12:20,150 همه کار که شما را انتخاب و تمام کد که شما ارسال 282 00:12:20,150 --> 00:12:21,900 باید کدی که شما نوشته شده است باشد. 283 00:12:21,900 --> 00:12:24,280 باید کد که شما را نمی کپی شده از جای دیگری است. 284 00:12:24,280 --> 00:12:26,777 باید کد نیست که شما اینترنتی گوگل جستجو کرده و در plopped 285 00:12:26,777 --> 00:12:28,360 و شما واقعا نمی دانم اگر آن کار می کند. 286 00:12:28,360 --> 00:12:32,440 شما نوع حس دارند آنچه در آن انجام اما نه واقعا. 287 00:12:32,440 --> 00:12:36,562 زمانی که در شک، در اصل، آن را فقط معقول باشد. 288 00:12:36,562 --> 00:12:38,520 در برنامه درسی ما، ما یک لیست کامل از همه چیز 289 00:12:38,520 --> 00:12:40,560 ما می بینیم به عنوان معقول در مقابل معقول نیست. 290 00:12:40,560 --> 00:12:43,820 >> به عنوان مثال، معقول است که شما و دوست شما 291 00:12:43,820 --> 00:12:47,360 بحث در مورد آنچه که بهترین راه برای رفتن در مورد منطقی حل یک مشکل. 292 00:12:47,360 --> 00:12:48,910 که نسبتا مناسب. 293 00:12:48,910 --> 00:12:53,244 چه نخواهد بود معقول و منطقی است اگر شما بچه ها با هم، همان کد تایپ شده، 294 00:12:53,244 --> 00:12:54,410 و تبدیل در همان کد. 295 00:12:54,410 --> 00:12:56,302 که منطقی نیست. 296 00:12:56,302 --> 00:12:57,510 همان چیزی که، نوع مقاله. 297 00:12:57,510 --> 00:12:59,290 اگر می خواهید به بحث در مورد با دوستان خود، با سلام، 298 00:12:59,290 --> 00:13:00,220 این چیزی است که من می خواهم در مورد ارسال. 299 00:13:00,220 --> 00:13:02,500 این مراحل من می خواهم هستند را به نوشتن در مورد آن، بزرگ است. 300 00:13:02,500 --> 00:13:03,208 شگفت آوره. 301 00:13:03,208 --> 00:13:04,790 لطفا با یکدیگر همکاری می کنند. 302 00:13:04,790 --> 00:13:06,540 اگر شما بچه ها شروع نوشتن همین، 303 00:13:06,540 --> 00:13:10,020 به نوبه خود در همان مقاله که کمتر OK. 304 00:13:10,020 --> 00:13:13,200 بنابراین، هنگامی که در شک، فقط آن را انجام نمی. 305 00:13:13,200 --> 00:13:16,940 >> در اینجا، ما در CS50، ما باید اسکریپت که اجرا به طور خودکار به آزمون 306 00:13:16,940 --> 00:13:21,740 نه تنها صحت کد خود را، بلکه منحصر به فرد از کد خود را. 307 00:13:21,740 --> 00:13:25,920 پس لطفا ما را در موقعیت قرار داده نشده از نیاز به به EXCOMM ارجاع پرونده خود را. 308 00:13:25,920 --> 00:13:31,110 لطفا فقط برای همه، اجازه دهید فقط این تجربه فوق العاده است. 309 00:13:31,110 --> 00:13:33,600 همه بهتر یاد می گیرد، همه ما شادتر، 310 00:13:33,600 --> 00:13:37,926 و ما همه به راه اندازی موفقیت در این دوره است. 311 00:13:37,926 --> 00:13:39,800 چیزی که بسیار منحصر به فرد در مورد این کلاس 312 00:13:39,800 --> 00:13:42,660 که من فکر می کنم هر کس باید واقعا توجه به این است که ما 313 00:13:42,660 --> 00:13:44,930 چه تاسف نام بند در برنامه درسی است. 314 00:13:44,930 --> 00:13:50,010 بنابراین اساسا، در عرض 72 ساعت، اگر شما فکر می کنید چیزی را انجام داده ام 315 00:13:50,010 --> 00:13:53,240 شما واقعا مطمئن هستید شد مناسب، لطفا به ما رسیده است. 316 00:13:53,240 --> 00:13:57,220 ما به شما قول می دهم که در عرض 72 ساعت ما را به خودمان رسیدگی مورد 317 00:13:57,220 --> 00:13:59,820 بدون مراجعه به بالاتر قدرت در دولت. 318 00:13:59,820 --> 00:14:03,100 >> بنابراین اگر شما به من می آیند و می گویند، اندی، هی، من واقعا متاسفم، 319 00:14:03,100 --> 00:14:07,620 اما من فکر می کنم یک جفت خط در من وجود دارد کد شب گذشته که من از گوگل، 320 00:14:07,620 --> 00:14:10,120 خاموش کردم از پشته سرریز، کپی و جا به جا، 321 00:14:10,120 --> 00:14:13,680 و من واقعا، واقعا متاسفم در مورد آن، اجازه دهید من می دانم. 322 00:14:13,680 --> 00:14:16,900 لطفا نه تنها اجازه دهید آن را چرک و فقط امیدوارم که من آن را گرفتن. 323 00:14:16,900 --> 00:14:17,784 ما آن را گرفتن خواهد شد. 324 00:14:17,784 --> 00:14:18,450 فقط به من می آیند. 325 00:14:18,450 --> 00:14:20,520 اجازه دهید من می دانم ظرف 72 ساعت. 326 00:14:20,520 --> 00:14:22,240 ما یک راه حل را کشف کردن. 327 00:14:22,240 --> 00:14:26,679 و ما قول می دهم که ما نمی خواهد برای اشاره مقامات دانشگاه در اصل. 328 00:14:26,679 --> 00:14:29,220 پس از آن به نفع شما است فقط با همه صادق باشد 329 00:14:29,220 --> 00:14:31,720 در این دوره است. 330 00:14:31,720 --> 00:14:34,630 >> باشه. 331 00:14:34,630 --> 00:14:35,240 باشه. 332 00:14:35,240 --> 00:14:37,800 بنابراین در حال حاضر، به سرعت قبل از من در حرکت، آیا کسی 333 00:14:37,800 --> 00:14:42,670 سوال در مورد تدارکات در چه دوره های ما در حال رفتن برای اجرا، 334 00:14:42,670 --> 00:14:45,982 چگونه بخش می رویم برای اجرا، هر یک از آن؟ 335 00:14:45,982 --> 00:14:46,711 باشه. 336 00:14:46,711 --> 00:14:47,210 آره. 337 00:14:47,210 --> 00:14:48,126 >> مخاطبان: [نامفهوم]؟ 338 00:14:48,126 --> 00:14:50,414 339 00:14:50,414 --> 00:14:51,080 ANDI PENG: آره. 340 00:14:51,080 --> 00:14:54,850 بنابراین quizzes-- چگونه بسیاری از شما می در بخش دوشنبه / چهارشنبه؟ 341 00:14:54,850 --> 00:14:56,700 چگونه بسیاری از شما را در سه شنبه / پنج شنبه؟ 342 00:14:56,700 --> 00:14:58,550 OK، پس از آن تقسیم جامد در اینجا. 343 00:14:58,550 --> 00:15:00,900 بنابراین راه است که ما اجرا آن را در دانشگاه ییل است که ما 344 00:15:00,900 --> 00:15:04,040 در حال رفتن به دو جداگانه quizzes-- یکی برای هر section-- که 345 00:15:04,040 --> 00:15:06,160 خواهد شد در طول کلاس گرفته شده است. 346 00:15:06,160 --> 00:15:09,310 من فکر می کنم اکتبر، پایان ماه اکتبر، چیزی شبیه به آن، به عنوان یکی از هفته 347 00:15:09,310 --> 00:15:10,794 از مسابقه. 348 00:15:10,794 --> 00:15:11,960 آره، بنابراین فقط به کلاس می آیند. 349 00:15:11,960 --> 00:15:13,920 در روز دوشنبه یا چهارشنبه، شما در مسابقه را می گیرم. 350 00:15:13,920 --> 00:15:16,336 در که روز سه شنبه یا پنج شنبه، شما یک مسابقه های مختلف را می گیرم. 351 00:15:16,336 --> 00:15:18,570 اما همان مواد پوشش داده خواهد شد. 352 00:15:18,570 --> 00:15:19,160 آره. 353 00:15:19,160 --> 00:15:20,660 سوال خوبی بود. 354 00:15:20,660 --> 00:15:21,160 آره. 355 00:15:21,160 --> 00:15:23,260 >> رسید که در آن ما رفتن به بررسی نمرات ما؟ 356 00:15:23,260 --> 00:15:23,926 >> ANDI PENG: آره. 357 00:15:23,926 --> 00:15:28,420 بنابراین من خواهد شد ارسال کردن پست الکترونیکی هر آنچه در هر هفته 358 00:15:28,420 --> 00:15:31,460 وقتی آزمونها graded-- یا، با عرض پوزش، که psets می درجه بندی. 359 00:15:31,460 --> 00:15:34,120 Psets معمولا تبدیل در ظهر یا جمعه. 360 00:15:34,120 --> 00:15:37,540 بنابراین من قول می دهم که من سعی کنید به آنها به شما 361 00:15:37,540 --> 00:15:40,000 توسط ظهر جمعه بعد. 362 00:15:40,000 --> 00:15:44,950 >> هر زمان که من کلاس pset، من ارسال خواهد شد یک اطلاع رسانی در کتاب درجه 363 00:15:44,950 --> 00:15:47,070 که به شما می گوید نمره خود را می توان مشاهده آنلاین. 364 00:15:47,070 --> 00:15:52,022 بنابراین در این هفته، پس از من پایان درجه بندی psets هفته گذشته، 365 00:15:52,022 --> 00:15:54,230 شما بچه ها یک ایمیل دریافت کنید اطلاع رسانی به شما می گویم، 366 00:15:54,230 --> 00:15:55,870 هی این است که در آن شما به دیدن نمرات خود را بروید. 367 00:15:55,870 --> 00:15:57,680 و شما می توانید هر دید شکست از نمرات خود را. 368 00:15:57,680 --> 00:15:58,555 شما می توانید نظرات را مشاهده کنید. 369 00:15:58,555 --> 00:16:00,360 آه، چیزی سریع نیز. 370 00:16:00,360 --> 00:16:03,060 بخش نظرات در بزرگ کتاب جایی است که من احتمالا 371 00:16:03,060 --> 00:16:05,300 صرف اکثریت از درجه بندی هم من. 372 00:16:05,300 --> 00:16:07,094 بنابراین چیزی که واقعا مهم است که 373 00:16:07,094 --> 00:16:09,010 شما بچه ها در حال مشاهده نمرات خود را در psets خود را 374 00:16:09,010 --> 00:16:11,400 نه تنها به دنبال در نمره فیزیکی 375 00:16:11,400 --> 00:16:14,630 بلکه در نظر گرفتن زمان به واقعا خواندن نظرات من. 376 00:16:14,630 --> 00:16:17,820 >> اغلب که به شما بازخورد به چگونه شما حل یک مشکل. 377 00:16:17,820 --> 00:16:20,480 اگر شما نیاز به انجام چیزی کمی بهتر است، 378 00:16:20,480 --> 00:16:24,080 انتقاد سازنده معمولا بهترین در آن بخش نظرات داده شده است. 379 00:16:24,080 --> 00:16:26,950 پس لطفا، لطفا، من قصد دارم به صرف زمان نوشتن نظر. 380 00:16:26,950 --> 00:16:30,440 لطفا، من واقعا آن را درک اگر شما بچه ها آن نظرات را بخوانید. 381 00:16:30,440 --> 00:16:31,170 باشه. 382 00:16:31,170 --> 00:16:34,150 خنک. 383 00:16:34,150 --> 00:16:34,680 >> خیلی خوب. 384 00:16:34,680 --> 00:16:40,680 بنابراین ما می رویم به شروع به صحبت کردن و فقط بررسی سرعت 385 00:16:40,680 --> 00:16:45,040 برخی از مواد از هفته صفر فقط بنابراین ما در حال 386 00:16:45,040 --> 00:16:48,760 در صفحه سمت راست برای آغاز مشکلات این هفته. 387 00:16:48,760 --> 00:16:52,600 بنابراین در حالی که حلقه است از سه نوع از حلقه 388 00:16:52,600 --> 00:16:54,510 ما قبلا در این کلاس بحث شده است. 389 00:16:54,510 --> 00:16:57,060 >> در حالی که اساسا یک حلقه است در نحو نوشته 390 00:16:57,060 --> 00:17:00,666 که در آن، در حالی که یک شرایط خاص، این کار بارها و بارها، درست است؟ 391 00:17:00,666 --> 00:17:02,040 از آن فکر می کنم در این گرافیک در اینجا. 392 00:17:02,040 --> 00:17:04,780 شما در حال رفتن برای شروع در نقطه خاص در کد خود را. 393 00:17:04,780 --> 00:17:09,030 شما در حال رفتن برای ورود به شرط حلقه if-- من نمی دانم x کمتر از یک است. 394 00:17:09,030 --> 00:17:11,677 >> در صورتی که درست است، شما در حال رفتن برای اجرای بدنه حلقه. 395 00:17:11,677 --> 00:17:14,010 و شما در حال رفتن به انجام که دوباره، دوباره، دوباره، 396 00:17:14,010 --> 00:17:17,900 و over-- همین دلیل است که آن را به یک loop-- تا شرایط خود می شود 397 00:17:17,900 --> 00:17:19,079 نادرست است. 398 00:17:19,079 --> 00:17:22,140 بنابراین در این روش، یک حلقه در حالی که یکی از راه های ساده تر است 399 00:17:22,140 --> 00:17:25,619 به هر نوع بیماری است که نیاز به تکرار و بیش از بیش و بیش از. 400 00:17:25,619 --> 00:17:28,109 فقط مراقب باشید هر زمان که باشد شما در حال نوشتن هر نوع حلقه 401 00:17:28,109 --> 00:17:32,140 که شما باید یک شرط خروج به عنوان همچنین به عنوان یک به روز رسانی به هر آنچه در آن 402 00:17:32,140 --> 00:17:36,714 است به طوری که حلقه خود را نه تنها اجرا و بیش از بیش بی نهایت. 403 00:17:36,714 --> 00:17:38,630 در هر صورت، شما در حال رفتن به خواهید مطمئن شوید 404 00:17:38,630 --> 00:17:42,670 که شما در حال تغییر برخی از جنبه های کد خود را و یا در پایان از حلقه 405 00:17:42,670 --> 00:17:46,680 فقط مطمئن شوید که شما یک راه پیشرفت به سمت شرایط 406 00:17:46,680 --> 00:17:48,400 که شما می خواهید برای دیدار به پایان. 407 00:17:48,400 --> 00:17:50,239 آیا این را حس به همه؟ 408 00:17:50,239 --> 00:17:52,530 ما فقط نمی خواهم به در این مارپیچ که در آن گرفتار 409 00:17:52,530 --> 00:17:55,710 ما در اطراف و در اطراف بروید و هیچ راهی برای شکستن حلقه وجود دارد. 410 00:17:55,710 --> 00:17:58,844 و هر حلقه در اصل یک راه انجام این کار. 411 00:17:58,844 --> 00:17:59,344 باشه. 412 00:17:59,344 --> 00:18:03,030 413 00:18:03,030 --> 00:18:06,060 >> در مرحله دوم، بسیاری از شما در psets ماریو خود را 414 00:18:06,060 --> 00:18:08,910 احتمالا تا به حال به استخدام این نوع از حلقه. 415 00:18:08,910 --> 00:18:11,802 آن را به نام حالی که حلقه. 416 00:18:11,802 --> 00:18:14,510 اول از همه، هر کسی می تواند به من بگو چه تفاوت بین یک انجام 417 00:18:14,510 --> 00:18:16,586 در حالی که حلقه و یک حلقه در حالی که؟ 418 00:18:16,586 --> 00:18:17,086 آره. 419 00:18:17,086 --> 00:18:21,030 >> مخاطبان: ساختار do while اجرا می شود در ابتدا [نامفهوم]. 420 00:18:21,030 --> 00:18:22,120 >> ANDI PENG: بله، دقیقا. 421 00:18:22,120 --> 00:18:27,130 بنابراین یک در حالی که حلقه همیشه هر چه در داخل انجام دهید، در داخل براکت 422 00:18:27,130 --> 00:18:30,520 وجود دارد و آن شرط قبل از چک کردن برای the-- با عرض پوزش، 423 00:18:30,520 --> 00:18:32,940 می کند که قبل از کد برای چک کردن وضعیت. 424 00:18:32,940 --> 00:18:37,200 و این است که مخصوصا با ما مرتبط در اینجا در این کلاس، به دلیل اینکه اکثر بار 425 00:18:37,200 --> 00:18:41,450 ما در حال رفتن به می خواهم به بی درنگ کاربر برای نوعی از ورودی می باشد. 426 00:18:41,450 --> 00:18:43,520 و پس از آن، بسته به ورودی آنها به ما بدهد، 427 00:18:43,520 --> 00:18:46,150 پس ما می توانیم ارزیابی، آه، آیا ما باید به آنها بی درنگ دوباره؟ 428 00:18:46,150 --> 00:18:49,930 >> بنابراین در ماریو، در صورتی که کاربر به شما داد ارتفاع منفی، برای مثال، 429 00:18:49,930 --> 00:18:52,990 شما در حال رفتن به اولین اعلان و انجام هر کاری در داخل است. 430 00:18:52,990 --> 00:18:54,820 پس از آن شما در حال رفتن به چک در حالی که. 431 00:18:54,820 --> 00:18:57,570 شما می دانید، منفی 1، این است که یک عدد مثبت؟ 432 00:18:57,570 --> 00:19:00,680 اگر این طور نیست، من قصد دارم برای رفتن تماس و تکرار و تکرار انجام 433 00:19:00,680 --> 00:19:03,950 و تکرار و تکرار تا زمانی که در نهایت شما یک شماره که دوست دارید به من بدهید، 434 00:19:03,950 --> 00:19:07,002 که همه ما می توانید در کد ما را استخدام کنند. 435 00:19:07,002 --> 00:19:09,210 این بسیار مهم برای اساسا هر ورودی کاربر است. 436 00:19:09,210 --> 00:19:11,760 من می توانم شما را تضمین هر زمان در یک pset که در آن 437 00:19:11,760 --> 00:19:15,070 ما از شما درخواست به ورودی هر نوع از کد، ما به 438 00:19:15,070 --> 00:19:17,540 احتمالا به شما بدهد مورد آزمون که در آن ما 439 00:19:17,540 --> 00:19:21,200 رفتن به شما چیزی بد که رفتن به تلاش برای شکستن کد خود را. 440 00:19:21,200 --> 00:19:25,044 >> اگر ما سعی می کنیم به شما بخواهید به یک ورودی عدد صحیح، ما ممکن است فقط شما یک رشته 441 00:19:25,044 --> 00:19:26,460 و ببینید که چگونه شما می توانید رسیدگی است. 442 00:19:26,460 --> 00:19:30,610 اگر ما از شما درخواست استخدام سن، ما ممکن است شما یک عدد منفی را 443 00:19:30,610 --> 00:19:32,340 ببینید که چگونه شما می مسئولیت رسیدگی به این. 444 00:19:32,340 --> 00:19:37,260 فقط مطمئن شوید که شما بچه ها در حال آزمایش برای موارد که در آن شما بهترین نیست 445 00:19:37,260 --> 00:19:38,590 ورودی، اجازه دهید فقط می گویند. 446 00:19:38,590 --> 00:19:40,510 و یک در حالی که حلقه است اغلب بهترین 447 00:19:40,510 --> 00:19:45,260 راه برای طراحی کد خود را به طوری که آن را مطابق است که دامنه. 448 00:19:45,260 --> 00:19:45,760 باشه. 449 00:19:45,760 --> 00:19:48,930 450 00:19:48,930 --> 00:19:49,470 >> باشه. 451 00:19:49,470 --> 00:19:53,270 پس این است که احتمالا بیشتر حلقه های پیچیده از سه 452 00:19:53,270 --> 00:19:54,990 که ما تا کنون دیده ام. 453 00:19:54,990 --> 00:19:56,689 و به نظر می رسد در ابتدا بسیار ترسناک است. 454 00:19:56,689 --> 00:19:59,730 اما من به شما تضمین، هنگامی که شما بچه ها از آن آویزان از نحوه استفاده از یک حلقه، 455 00:19:59,730 --> 00:20:03,320 آن را یکی از چیزهایی که مفید ترین، ترین ابزار های مفید در زرادخانه خود را 456 00:20:03,320 --> 00:20:05,300 برای حرکت رو به جلو در این کلاس است. 457 00:20:05,300 --> 00:20:09,920 >> بنابراین برای مثال، در ابتدا، ما این بلوک بسیار ساده بود 458 00:20:09,920 --> 00:20:13,180 که فقط گفت: تکرار این خاص عبارات تعداد معینی از بار. 459 00:20:13,180 --> 00:20:16,260 به هر حال، SAJ-- که Scaz اندی جیسون است. 460 00:20:16,260 --> 00:20:18,740 ما اغلب ایمیل های SAJ ما وارد شوید. 461 00:20:18,740 --> 00:20:20,360 اگر ما می گویند SAJ، انجام نمی شود اشتباه گرفته شود. 462 00:20:20,360 --> 00:20:22,630 که فقط به ما. 463 00:20:22,630 --> 00:20:28,600 >> بنابراین در ابتدا، ما قادر به شد یک بلوک که گفت، تکرار می کنم دوست دارم SAJ! 464 00:20:28,600 --> 00:20:29,430 10 بار. 465 00:20:29,430 --> 00:20:30,130 بسیار ساده. 466 00:20:30,130 --> 00:20:32,302 منطق پشت آن است که بسیار، بسیار ساده، درست است؟ 467 00:20:32,302 --> 00:20:35,260 من می خواهم به اولین بار از طریق اول زمان و، بار دوم ببینید 468 00:20:35,260 --> 00:20:38,510 و این که، بار سوم را مشاهده کنید، غیره و به همین ترتیب، تا زمانی که شما به 10 رسید. 469 00:20:38,510 --> 00:20:41,960 >> و راه ما را نشان دهنده است که در کد فقط از طریق یک حلقه ساده برای است. 470 00:20:41,960 --> 00:20:45,440 بنابراین، شما در حال رفتن به اعلام متغیر خود را در اینجا، در این مورد، 471 00:20:45,440 --> 00:20:46,349 با یک int است. 472 00:20:46,349 --> 00:20:47,390 ما قصد داریم به نام آن من. 473 00:20:47,390 --> 00:20:49,500 ما قصد داریم به آن را مقداردهی اولیه به 0. 474 00:20:49,500 --> 00:20:52,490 و نسخه توقف است رفتن به من کمتر از 10 است. 475 00:20:52,490 --> 00:20:54,622 و به روز رسانی است برای رفتن به من + +. 476 00:20:54,622 --> 00:20:57,750 >> و در داخل حلقه، آن را برای اجرای آن را تا در نهایت 477 00:20:57,750 --> 00:21:01,490 بازدید از پایان condition-- که در آن مورد، آن را به شکستن حلقه. 478 00:21:01,490 --> 00:21:04,600 باید مسائل وجود داشته باشد که شما بچه ها همه نوع از دیده می شود قبل 479 00:21:04,600 --> 00:21:07,270 و تا به حال انجام برای مشکل شما مجموعه ای از یک. 480 00:21:07,270 --> 00:21:12,310 آیا کسی هر گونه سوال در مورد حلقه در حال حاضر؟ 481 00:21:12,310 --> 00:21:12,930 باشه. 482 00:21:12,930 --> 00:21:13,430 عالی. 483 00:21:13,430 --> 00:21:17,520 484 00:21:17,520 --> 00:21:18,620 >> باشه. 485 00:21:18,620 --> 00:21:22,270 بنابراین برای کسانی که از شما که به عنوان خوانده شده تنظیمات pset برای این هفته 486 00:21:22,270 --> 00:21:27,690 می دانیم که ما در حال رفتن به به استخدام چیزی به نام ASCII ASCII و جدول. 487 00:21:27,690 --> 00:21:32,380 پس داود در سخنرانی بیش از خلاصه رفت چگونه کامپیوتر essentially-- همه چیز 488 00:21:32,380 --> 00:21:35,410 در یک کامپیوتر در کد گذاری باینری، در صفر و آنهایی که. 489 00:21:35,410 --> 00:21:39,740 و راهی که کامپیوترها قادر برای ذخیره مقادیر مختلف علاوه بر 490 00:21:39,740 --> 00:21:44,360 به صفر و آنهایی که از طریق نقشه برداری هستند تعداد کسانی که به نمایندگی از سایر ارقام 491 00:21:44,360 --> 00:21:47,220 و یا شخصیت اساسا دیگر. 492 00:21:47,220 --> 00:21:49,810 >> بنابراین در این مورد، یک ASCII table-- همه آن کند 493 00:21:49,810 --> 00:21:53,600 شخصیت نقشه، یا کاراکتر، به اعداد است. 494 00:21:53,600 --> 00:21:57,385 به طوری که فایل کد منبع در خود را computer-- آن را می بیند، 495 00:21:57,385 --> 00:22:00,010 با سلام، یک دسته از صفر و آنهایی که، صفر و آنهایی که، صفر و آنهایی که. 496 00:22:00,010 --> 00:22:02,350 این چیزی است که ذخیره شده در واقعی حافظه از کامپیوتر شما. 497 00:22:02,350 --> 00:22:04,750 >> اما زمانی که ما می خواهیم به انسان برقراری ارتباط با کامپیوتر، 498 00:22:04,750 --> 00:22:08,249 ما want-- می گویند، برای مثال، اگر من می خواهم بزرگ A در، 499 00:22:08,249 --> 00:22:10,540 من قصد دارم به نیاز به راه از گفتن کامپیوتر، آه، 500 00:22:10,540 --> 00:22:16,300 وقتی که من نوع حروف بزرگ A، منظور من این نمایندگی در دودویی. 501 00:22:16,300 --> 00:22:22,260 >> و به این ترتیب راه ما انجام انداخت که یک چیزی به نام دلخواه جدول ASCII، 502 00:22:22,260 --> 00:22:25,020 که در آن ما به عنوان انسان، به عنوان برنامه نویسان، چند وقت پیش، 503 00:22:25,020 --> 00:22:28,660 ما را خودسرانه تصمیم گرفت که ما قرار بود به اختصاص این تعداد 504 00:22:28,660 --> 00:22:30,960 ارزش به این شخصیت. 505 00:22:30,960 --> 00:22:32,720 >> پس شما بچه ها می توانید این آنلاین گوگل. 506 00:22:32,720 --> 00:22:37,120 من فکر می کنم یک لینک به آن در شما وجود دارد pset-- فقط یک جدول نقشه ASCII، ASCII 507 00:22:37,120 --> 00:22:37,720 جدول. 508 00:22:37,720 --> 00:22:40,722 این فقط ترجمه باینری اعداد را به حرف می باشد. 509 00:22:40,722 --> 00:22:42,930 و آن را که بسیار است برای مجموعه ای مشکل خود را مفید 510 00:22:42,930 --> 00:22:45,470 هر زمان که شما می خواهید محاسبه هر چیزی و یا اگر شما 511 00:22:45,470 --> 00:22:47,880 می خواهید برای نشان خاص شخصیت یا اعداد صحیح 512 00:22:47,880 --> 00:22:50,327 یا دستکاری شخصیت های خاص. 513 00:22:50,327 --> 00:22:52,160 آن را که بسیار است مهم است که تمام 514 00:22:52,160 --> 00:22:55,140 می دانم که چگونه به حرکت یک جدول ASCII. 515 00:22:55,140 --> 00:23:01,260 >> بنابراین برای مثال، حروف بزرگ با تعداد 65 ارائه شده است. 516 00:23:01,260 --> 00:23:04,207 بزرگ و کوچک یک توسط 97 ارائه شده است. 517 00:23:04,207 --> 00:23:07,040 بنابراین این مهم است که بدانید که تفاوت بین این دو ارزش 518 00:23:07,040 --> 00:23:08,320 32 است. 519 00:23:08,320 --> 00:23:13,210 اغلب اوقات، اگر شما نیاز به تبدیل از یکی به دیگری، تفاوت 32 است. 520 00:23:13,210 --> 00:23:15,710 و نگران نباشید اگر شما مهربان هستید از اشتباه در این در ابتدا. 521 00:23:15,710 --> 00:23:20,230 ما بیش از اینکه چگونه ما را استخدام در کد واقعی. 522 00:23:20,230 --> 00:23:24,700 523 00:23:24,700 --> 00:23:26,380 >> باشه. 524 00:23:26,380 --> 00:23:30,770 بنابراین برای کسانی که از شما با لپ تاپ است، احساس رایگان به جلو و یک جدول ASCII، 525 00:23:30,770 --> 00:23:36,030 چرا که این احتمالا نیاز به شما بچه ها به مرجع 526 00:23:36,030 --> 00:23:38,100 چه شخصیت های می باشد. 527 00:23:38,100 --> 00:23:38,640 باشه. 528 00:23:38,640 --> 00:23:42,840 >> بنابراین دانستن است که برخی از شخصیت نقشه به شماره های خاص، 529 00:23:42,840 --> 00:23:47,240 اگر من به اجرا فقط اولین خط که code-- تابع () printf A، 530 00:23:47,240 --> 00:23:50,900 کوچک، منهای حروف بزرگ A. آیا کسی 531 00:23:50,900 --> 00:23:55,880 یک حدس در چه خواهد چاپ از روی صفحه نمایش در حال حاضر؟ 532 00:23:55,880 --> 00:23:58,190 >> پس اول از همه، چه حروف کوچک نشان می دهد؟ 533 00:23:58,190 --> 00:24:00,990 چه تعداد است که کد گذاری شده در جدول ASCII. 534 00:24:00,990 --> 00:24:01,490 متاسف؟ 535 00:24:01,490 --> 00:24:02,630 >> مخاطبان: 97؟ 536 00:24:02,630 --> 00:24:03,630 >> ANDI PENG: 97، بزرگ است. 537 00:24:03,630 --> 00:24:05,077 و چه بزرگ A است؟ 538 00:24:05,077 --> 00:24:06,330 >> مخاطبان: 65. 539 00:24:06,330 --> 00:24:08,255 >> ANDI PENG: پس چه 97 منهای 65 است؟ 540 00:24:08,255 --> 00:24:09,227 >> مخاطبان: 32. 541 00:24:09,227 --> 00:24:09,810 ANDI PENG: OK. 542 00:24:09,810 --> 00:24:13,530 بنابراین چه چیزی شما فکر می کنم بچه ها است که به اتفاق می افتد زمانی که من ورودی که خط از کد 543 00:24:13,530 --> 00:24:14,670 به کامپیوتر من؟ 544 00:24:14,670 --> 00:24:17,981 545 00:24:17,981 --> 00:24:19,896 >> مخاطبان: [نامفهوم]. 546 00:24:19,896 --> 00:24:21,020 ANDI PENG: با عرض پوزش، صحبت کردن. 547 00:24:21,020 --> 00:24:22,520 بدون نگرانی. 548 00:24:22,520 --> 00:24:25,750 این بسیار امن است محیط زیست، منهای دوربین. 549 00:24:25,750 --> 00:24:27,550 ما همه رفتن to-- هیچ نگرانی. 550 00:24:27,550 --> 00:24:30,940 فقط ما همه رفتن به وانمود کنیم آن را فقط به ما در این اتاق سرد. 551 00:24:30,940 --> 00:24:31,480 بدون نگرانی. 552 00:24:31,480 --> 00:24:33,410 بدون درخواست بیش از حد احمقانه است. 553 00:24:33,410 --> 00:24:35,300 بدون پاسخ، پاسخ احمقانه است. 554 00:24:35,300 --> 00:24:38,260 من احتمالا رفتن به اشتباه در این دوره از تدریس من بود. 555 00:24:38,260 --> 00:24:40,740 به طور جدی، بچه ها، فقط آن را بروز دادن. 556 00:24:40,740 --> 00:24:43,092 اعتماد به نفس در خودتان می شود، شما می دانید؟ 557 00:24:43,092 --> 00:24:43,800 پس چه بود؟ 558 00:24:43,800 --> 00:24:47,990 چه کسی گفت که پاسخ آخرین؟ 559 00:24:47,990 --> 00:24:48,540 باشه. 560 00:24:48,540 --> 00:24:50,380 فریاد که خوب و روشن است. 561 00:24:50,380 --> 00:24:51,220 >> مخاطبان: 32؟ 562 00:24:51,220 --> 00:24:51,850 >> ANDI PENG: 32. 563 00:24:51,850 --> 00:24:54,141 خوب، اجازه دهید این کد را اجرا و ببینید اگر این چیزی است که اتفاق می افتد. 564 00:24:54,141 --> 00:25:00,260 565 00:25:00,260 --> 00:25:00,760 باشه. 566 00:25:00,760 --> 00:25:03,300 567 00:25:03,300 --> 00:25:06,360 به طوری که شما بچه ها می توانید نوع ببینید، نماد معمولی من 568 00:25:06,360 --> 00:25:12,250 راه اندازی در اینجا برای اینکه چگونه ما را استخدام هر نوع برنامه در کامپیوتر ما است. 569 00:25:12,250 --> 00:25:14,770 ما باید تابع اصلی ما در داخل تابع اصلی ما است. 570 00:25:14,770 --> 00:25:17,265 من فقط رفتن به کپی و این خط از کد وارد کنید. 571 00:25:17,265 --> 00:25:21,082 572 00:25:21,082 --> 00:25:23,540 همچنین هنگامی که شما بچه ها مراقب باشید در حال کپی کردن و چسباندن کد. 573 00:25:23,540 --> 00:25:28,750 اپراتورهای گاهی اوقات خاص به درستی رب بیش از نه. 574 00:25:28,750 --> 00:25:31,397 در آن صورت، منهای ثبت نام در واقع یک خط تیره. 575 00:25:31,397 --> 00:25:32,980 و به این ترتیب کامپیوتر آن را انتخاب کنید تا. 576 00:25:32,980 --> 00:25:35,870 بنابراین من مجبور به رفتن به عقب و از لحاظ جسمی تکرار است. 577 00:25:35,870 --> 00:25:37,846 فقط مراقب باشید در هنگام باشد شما بچه ها انجام می دهند که. 578 00:25:37,846 --> 00:25:41,178 579 00:25:41,178 --> 00:25:42,660 >> باشه. 580 00:25:42,660 --> 00:25:43,980 ما قصد داریم برای اجرای این اینجا. 581 00:25:43,980 --> 00:25:45,670 بنابراین ما قصد داریم به سی دی به section2 ما است. 582 00:25:45,670 --> 00:25:50,470 583 00:25:50,470 --> 00:25:52,030 من این برنامه را asciimath نامیده ام. 584 00:25:52,030 --> 00:25:55,690 بنابراین به یاد داشته باشید، زمانی که ما هر اجرا برنامه، ما می خواهیم به اولین آن را کامپایل 585 00:25:55,690 --> 00:25:57,150 با اجرای آن از طریق ایجاد کنیم. 586 00:25:57,150 --> 00:26:00,030 و پس از آن ما می خواهیم به واقع اجرا برنامه را با اجرای دات بریده بریده. 587 00:26:00,030 --> 00:26:01,280 بنابراین ما در حال رفتن به ./asciimath. 588 00:26:01,280 --> 00:26:05,780 589 00:26:05,780 --> 00:26:06,590 >> راست، در آنجا می رویم. 590 00:26:06,590 --> 00:26:07,410 و ما می بینیم 32. 591 00:26:07,410 --> 00:26:07,930 خوبی انجام می شود. 592 00:26:07,930 --> 00:26:10,340 شما شایستگی یک قطعه از آب نبات. 593 00:26:10,340 --> 00:26:11,160 آب نبات برای شما. 594 00:26:11,160 --> 00:26:11,900 متاسف. 595 00:26:11,900 --> 00:26:13,100 خیلی خوب. 596 00:26:13,100 --> 00:26:13,670 باشه. 597 00:26:13,670 --> 00:26:18,070 بنابراین ما می توانیم به عنوان مثال ما به اینجا بروید. 598 00:26:18,070 --> 00:26:23,530 599 00:26:23,530 --> 00:26:24,345 آه، نه. 600 00:26:24,345 --> 00:26:29,147 601 00:26:29,147 --> 00:26:31,090 آه. 602 00:26:31,090 --> 00:26:32,490 باشه. 603 00:26:32,490 --> 00:26:34,610 من فقط رفتن به آن را نگه دارید می خواهم که. 604 00:26:34,610 --> 00:26:48,520 605 00:26:48,520 --> 00:26:51,240 باشه. 606 00:26:51,240 --> 00:26:51,740 باشه. 607 00:26:51,740 --> 00:26:55,340 به طوری که شما بچه ها می توانید ببینید، ما می توانیم انجام بسیاری از چیزهای بسیار جالب است، 608 00:26:55,340 --> 00:26:58,880 بسیاری از چیزهای بسیار سرد، بسیاری از همه چیز بسیار پیچیده که شامل 609 00:26:58,880 --> 00:27:02,720 کاراکترهای ASCII و اعداد. 610 00:27:02,720 --> 00:27:05,890 هنگامی که شما را به خط پنج، که بسیاری به دنبال همراه است. 611 00:27:05,890 --> 00:27:07,640 ما قصد داریم به از طریق بخش. 612 00:27:07,640 --> 00:27:10,720 در صورت تمایل به، اگر شما می توانید، دلیل آن بر روی کاغذ 613 00:27:10,720 --> 00:27:14,750 برای اولین بار در آنچه که باید اتفاق می افتد زمانی شما ورودی چنین رشته ای از ارزش ها. 614 00:27:14,750 --> 00:27:19,720 به عنوان مثال، در آن خط گذشته، ما باید z-- که نشان دهنده یک number-- خاص 615 00:27:19,720 --> 00:27:24,740 a-- که همچنین نشان دهنده یک برخی از number-- به علاوه 1 modulos 26 616 00:27:24,740 --> 00:27:26,750 به علاوه کوچک. 617 00:27:26,750 --> 00:27:29,220 >> اگر شما بچه ها ادامه مطلب را بخوانید از طریق این، شما می 618 00:27:29,220 --> 00:27:34,009 ممکن است یک الگوی در آمده چگونه ما در حال دستکاری کد. 619 00:27:34,009 --> 00:27:36,050 من به شدت، به شدت پیشنهاد بعد از همه شما 620 00:27:36,050 --> 00:27:38,160 بچه های پیش رو و ورودی به کسانی که در کامپیوتر شما 621 00:27:38,160 --> 00:27:40,060 و ببینید که چه نوع شماره در حال بیرون آمدن 622 00:27:40,060 --> 00:27:43,090 و استدلال از طریق همین دلیل کسانی که می اتفاق می افتد، چرا که برای psets خود را 623 00:27:43,090 --> 00:27:45,060 آن خواهید بود واقعا مهم برای شما به درک 624 00:27:45,060 --> 00:27:47,132 چرا همه چیز خاصی اتفاق می افتد. 625 00:27:47,132 --> 00:27:48,590 همه این اسلاید آنلاین خواهد بود. 626 00:27:48,590 --> 00:27:51,510 بنابراین هیچ نگرانی در مورد تلاش برای از لحاظ جسمی کپی یادداشت. 627 00:27:51,510 --> 00:27:52,510 آنلاین همه چیز است. 628 00:27:52,510 --> 00:27:54,050 این بخش خود را آنلاین. 629 00:27:54,050 --> 00:27:57,500 تمام کد منبع که من در حال اجرا آنلاین خواهد بود. 630 00:27:57,500 --> 00:27:58,180 آره. 631 00:27:58,180 --> 00:27:59,430 آیا شما هنوز هم یک سوال؟ 632 00:27:59,430 --> 00:28:00,587 مخاطبان: modulos چیست؟ 633 00:28:00,587 --> 00:28:01,170 ANDI PENG: OK. 634 00:28:01,170 --> 00:28:05,620 بنابراین پیمانه یک اپراتور که رفتن به است می تواند بسیار به pset بچه شما مهم 635 00:28:05,620 --> 00:28:06,690 اینجا. 636 00:28:06,690 --> 00:28:12,280 پس راه که اپراتورهای در C و کار برنامه نویسی 637 00:28:12,280 --> 00:28:16,360 است که شما آنچه را به نام نماد تقسیم و نماد مدول، 638 00:28:16,360 --> 00:28:18,350 که است که درست مثل علامت درصد. 639 00:28:18,350 --> 00:28:24,840 >> بنابراین در C، زمانی که شما یک عدد صحیح با یک اسلش تقسیم یک عدد صحیح، 640 00:28:24,840 --> 00:28:27,720 C تمایل به می خواهید به قطع همه از نقطه اعشاری، 641 00:28:27,720 --> 00:28:30,290 به دلیل یک عدد صحیح می خواهد برای تبدیل به یک عدد صحیح. 642 00:28:30,290 --> 00:28:33,550 آن را به می خواهم به یک دو با یک دسته از اعشار همه پس از آن. 643 00:28:33,550 --> 00:28:39,322 >> بنابراین اگر من 3 تقسیم بر 2، آن را برای قطع 0.5 و فقط به شما 1 است. 644 00:28:39,322 --> 00:28:41,530 بنابراین این چیزی است که به بسیار مراقب باشید از زمانی که شما 645 00:28:41,530 --> 00:28:45,294 انجام هر نوع از ریاضی در برنامه نویسی، است که تعداد شما 646 00:28:45,294 --> 00:28:47,210 ممکن است اعداد نه که شما، فکر می کردند 647 00:28:47,210 --> 00:28:50,190 همین دلیل است که در گرد خود آخرین pset بسیار مهم است. 648 00:28:50,190 --> 00:28:51,980 >> پیمانه به شما می دهد باقی مانده است. 649 00:28:51,980 --> 00:28:56,200 بنابراین برای مثال، اگر من 3 پیمانه 2-- تا 3 درصد ثبت نام 2-- 650 00:28:56,200 --> 00:28:58,020 آن را به شما باقی مانده از که می دهد. 651 00:28:58,020 --> 00:29:00,460 بنابراین 3 تقسیم بر 2 1.5 است. 652 00:29:00,460 --> 00:29:01,410 1 باقی مانده 1 است. 653 00:29:01,410 --> 00:29:04,600 آن را به شما 1، را که باقی مانده از آن است. 654 00:29:04,600 --> 00:29:07,361 >> بنابراین، هنگامی که شما بچه ها در حال حرکت از طریق جدول ASCII، 655 00:29:07,361 --> 00:29:09,735 پیمانه به پایان خواهد رسید چیزی که بسیار مهم است، 656 00:29:09,735 --> 00:29:11,240 و ما بحث در مورد آن بعد از آن. 657 00:29:11,240 --> 00:29:17,750 658 00:29:17,750 --> 00:29:19,040 >> باشه. 659 00:29:19,040 --> 00:29:27,300 بنابراین چیزی است که زیبا، بسیار جدید و بسیار منحصر به فرد 660 00:29:27,300 --> 00:29:31,920 که ما در این هفته بحث است مفهوم آنچه یک آرایه است. 661 00:29:31,920 --> 00:29:34,370 بنابراین آرایه اول است نوع ساختار داده 662 00:29:34,370 --> 00:29:36,320 که ما قصد داریم به روبرو می شوند در این کلاس است. 663 00:29:36,320 --> 00:29:40,010 همه ساختار داده است برخی از خودسرانه، 664 00:29:40,010 --> 00:29:43,370 به معنای واقعی کلمه از چیزهایی مانند ساختار که ما به عنوان برنامه نویسان ایجاد کرده اند، 665 00:29:43,370 --> 00:29:47,890 که ما در کد قرار داده ام که ما می تواند شامل تکه های دیگری از کد. 666 00:29:47,890 --> 00:29:51,090 >> بنابراین در این معنا، یک آرایه از آن فکر می کنم به عنوان یک فایل کابینت، 667 00:29:51,090 --> 00:29:53,470 که در آن اگر شما برای باز کردن مختلف قفسه های کابینه فایل خود را، 668 00:29:53,470 --> 00:29:55,630 شما می توانید چیزهای مختلف دسترسی داشته باشید. 669 00:29:55,630 --> 00:29:58,630 در حافظه، یک آرایه فقط انجام همان چیزی که بر روی کامپیوتر شما. 670 00:29:58,630 --> 00:30:01,730 شما می توانید ما متفاوت blocks-- دارند آنها indices-- از یک آرایه است. 671 00:30:01,730 --> 00:30:04,210 این درست مثل یک بلوک، یک قفسه از حافظه 672 00:30:04,210 --> 00:30:07,580 که ما در درون خود ایجاد کرده اید کامپیوتری که شما می توانید ورودی 673 00:30:07,580 --> 00:30:10,270 کارهای معینی را در فضاهای مختلف. 674 00:30:10,270 --> 00:30:18,000 >> بنابراین با یک آرایه، شما همیشه به specify-- 675 00:30:18,000 --> 00:30:22,360 شما باید برای مشخص اعلام یک آرایه در فرمت های زیر است. 676 00:30:22,360 --> 00:30:24,290 شما در حال رفتن به اولین تعیین نوع داده 677 00:30:24,290 --> 00:30:25,831 که شما می خواهید برای ایجاد آرایه است. 678 00:30:25,831 --> 00:30:28,870 اگر من می خواهم یک آرایه از اعداد صحیح، من رفتن به قرار دادن INT سمت راست وجود دارد. 679 00:30:28,870 --> 00:30:32,079 اگر من می خواهم یک آرایه از رشته ها، من قصد دارم به قرار دادن رشته وجود دارد، 680 00:30:32,079 --> 00:30:34,995 نام آرایه خود را، و سپس شما در حال رفتن به براکت مربع است. 681 00:30:34,995 --> 00:30:39,580 و داخل براکت، شما رفتن به اندازه آرایه خود را. 682 00:30:39,580 --> 00:30:42,900 >> چیزی که واقعا مهم به خاطر داشته باشید که هنگام ایجاد آرایه است 683 00:30:42,900 --> 00:30:46,530 که، هنگامی که شما یک ایجاد آرایه، که اندازه نمی توانید تغییر دهید. 684 00:30:46,530 --> 00:30:50,180 بنابراین اگر شما می دانید که در حال حاضر شما باید یک آرایه از اندازه 10، 685 00:30:50,180 --> 00:30:54,550 شما می دانید که من قصد دارم به 10 سلول داخل و یا 10 شاخص در این آرایه، 686 00:30:54,550 --> 00:30:56,830 و آن را هرگز برای گسترش یا کاهش 687 00:30:56,830 --> 00:30:59,850 بدون توجه به وجود چیزی است، و که در حال حاضر فقط 10 بلوک از فضای 688 00:30:59,850 --> 00:31:04,490 اختصاص داده شده در حافظه خود ذخیره است که می تواند 10 همه چیز از هر آنچه که شما قرار داده ام. 689 00:31:04,490 --> 00:31:08,790 >> بنابراین در این روش، یک نوع داده آرایه، ساختار داده ها این است که یک آرایه 690 00:31:08,790 --> 00:31:13,392 بسیار متفاوت از برخی دیگر خواهیم است پوشش بعدا در این دوره است. 691 00:31:13,392 --> 00:31:15,170 آره. 692 00:31:15,170 --> 00:31:20,080 به عنوان مثال، اگر شما به خواست ایجاد یک آرایه از اندازه 3 که 693 00:31:20,080 --> 00:31:23,670 متغیرهای موجود از integer-- آه، با عرض پوزش، از temperature-- 694 00:31:23,670 --> 00:31:25,640 و درجه حرارت، از البته، یک عدد صحیح است. 695 00:31:25,640 --> 00:31:28,710 >> بنابراین ما از نوع int ایجاد است، که نوع داده ها از آنچه ما می خواهیم را ذخیره کنید. 696 00:31:28,710 --> 00:31:32,680 ما در حال رفتن به به این درجه حرارت به خاطر نامگذاری نامگذاری 697 00:31:32,680 --> 00:31:34,200 چیزی است که همه ما درک می کنیم. 698 00:31:34,200 --> 00:31:35,900 و ما در حال رفتن به براکت مربع است. 699 00:31:35,900 --> 00:31:37,200 و ما می خواهیم سه عدد. 700 00:31:37,200 --> 00:31:39,000 بنابراین ما در حال رفتن به قرار دادن سه داخل آن است. 701 00:31:39,000 --> 00:31:41,041 >> چیزی که واقعا مهم است که در ذهن داشته باشیم 702 00:31:41,041 --> 00:31:43,530 این است که آرایه ها صفر شدهاند. 703 00:31:43,530 --> 00:31:46,410 که بدان معنی است که شما شروع با شاخص 0، 704 00:31:46,410 --> 00:31:49,800 و شما را اجرا کنید تا از طریق اندازه آرایه منهای 1. 705 00:31:49,800 --> 00:31:52,730 بنابراین برای مثال در اینجا، ما یک آرایه از اندازه 3. 706 00:31:52,730 --> 00:31:54,680 آن را قادر برای برگزاری سه مقدار است. 707 00:31:54,680 --> 00:31:57,450 اما تعداد themselves-- که تعداد، آرایه، که شاخص، 708 00:31:57,450 --> 00:32:00,271 آرایه، 0 طریق 2. 709 00:32:00,271 --> 00:32:03,520 پس بچه ها، لازم است واقعا، واقعا مراقب باشید در هنگام شما در حال رفتن را از طریق مشکلات خود را تنظیم کنید 710 00:32:03,520 --> 00:32:06,500 و ایجاد هر نوع آرایه، چرا که بسیاری از اوقات آن را 711 00:32:06,500 --> 00:32:08,490 واقعا، واقعا آسان فراموش کرد که. 712 00:32:08,490 --> 00:32:11,840 من در واقع شاخص ندارد 3، که من در حال حاضر فقط 713 00:32:11,840 --> 00:32:13,130 که اول از 2. 714 00:32:13,130 --> 00:32:16,046 و اگر شما سعی کنید دسترسی به شاخص سوم، 715 00:32:16,046 --> 00:32:18,170 آن را برای رفتن به چه به نام نابودگر تهی. 716 00:32:18,170 --> 00:32:19,990 آن را به واقع نه در آرایه وجود دارد. 717 00:32:19,990 --> 00:32:21,781 و کامپیوتر می باشد رفتن به دوست دارم. 718 00:32:21,781 --> 00:32:24,570 بنابراین مراقب باشید هر زمان که باشد شما دسترسی به همه چیز فقط 719 00:32:24,570 --> 00:32:28,070 به اطمینان حاصل شود که شما به یاد داشته که آرایهها zero-نمایه میشود. 720 00:32:28,070 --> 00:32:28,880 >> باشه. 721 00:32:28,880 --> 00:32:34,030 بنابراین به عنوان مثال اول است فقط یکی از راه های ایجاد یک آرایه. 722 00:32:34,030 --> 00:32:36,790 مثال دوم من زیر فقط یک راه جداگانه است 723 00:32:36,790 --> 00:32:40,210 ایجاد آنچه داده است ساختار است که ما فقط وارد است. 724 00:32:40,210 --> 00:32:44,347 بنابراین به جای فیزیکی در حال اجرا از طریق و قرار دادن در درجه حرارت از 0 725 00:32:44,347 --> 00:32:47,180 برابر هر، درجه حرارت 1 برابر هر، درجه حرارت 2 برابر 726 00:32:47,180 --> 00:32:50,950 هر چیز دیگری، من در واقع فقط به طور مستقیم آن همه در یک خط ایجاد 727 00:32:50,950 --> 00:32:53,010 به دمای براکت برابر است. 728 00:32:53,010 --> 00:32:56,536 >> و توجه در این مورد، شما لازم نیست مشخص کنید که چگونه بزرگ آرایه خود را، 729 00:32:56,536 --> 00:32:59,160 چرا که کامپیوتر را به از طریق رفتن و دیدن وجود دارد که 730 00:32:59,160 --> 00:33:01,570 سه عنصر در آن آکولاد. 731 00:33:01,570 --> 00:33:04,000 و آن را به مطمئن شوید، OK، من نیاز به یک مجموعه ای از اندازه 3. 732 00:33:04,000 --> 00:33:07,440 شما در حال رفتن به نیاز به ورودی آن را به صورت زیر. 733 00:33:07,440 --> 00:33:10,170 >> و همچنین، آره، که راه. 734 00:33:10,170 --> 00:33:12,610 آیا کسی سوال در مورد چگونه ما را آرایه 735 00:33:12,610 --> 00:33:17,391 و یا چگونه ساختار یک آرایه کار می کند؟ 736 00:33:17,391 --> 00:33:17,890 آره. 737 00:33:17,890 --> 00:33:18,806 >> مخاطبان: [نامفهوم]؟ 738 00:33:18,806 --> 00:33:21,649 739 00:33:21,649 --> 00:33:22,690 ANDI PENG: بله، دقیقا. 740 00:33:22,690 --> 00:33:26,150 بنابراین اگر شما به اعلام و مقداردهی اولیه از روش زیر آرایه، 741 00:33:26,150 --> 00:33:28,477 که راه دوم این است، شما فقط می توانید آن را ترک کنند. 742 00:33:28,477 --> 00:33:30,310 و کامپیوتر به طور خودکار می داند که آن 743 00:33:30,310 --> 00:33:33,950 نیاز به تعداد بسیاری از عناصر در آن آکولاد، از هم جدا 744 00:33:33,950 --> 00:33:34,930 توسط کاما. 745 00:33:34,930 --> 00:33:37,517 >> بنابراین در اینجا آنها 65، 87، 30 را ببینید. 746 00:33:37,517 --> 00:33:39,600 بنابراین کامپیوتر می داند، آه، سه اعداد صحیح وجود دارد. 747 00:33:39,600 --> 00:33:45,960 من می دانم که برای ایجاد یک نام آرایه درجه حرارت با سه عنصر در آن است. 748 00:33:45,960 --> 00:33:46,590 سوال خوبی بود. 749 00:33:46,590 --> 00:33:47,090 آره. 750 00:33:47,090 --> 00:33:51,590 >> مخاطبان: آیا ممکن است به ایجاد نمی یک آرایه با انواع مختلف داده ها 751 00:33:51,590 --> 00:33:53,021 که می تواند به آن وارد شده؟ 752 00:33:53,021 --> 00:33:56,746 به عنوان مثال، با اعداد صحیح [نامفهوم]؟ 753 00:33:56,746 --> 00:33:59,120 ANDI PENG: برای اهداف از این کلاس، نه، در حال حاضر. 754 00:33:59,120 --> 00:34:03,070 هنگامی که شما یک داده ایجاد ساختار یک آرایه، 755 00:34:03,070 --> 00:34:04,990 شما در حال گفتن کامپیوتر، با سلام، من شما نیاز 756 00:34:04,990 --> 00:34:08,159 را به خود اختصاص این حد حافظه در هارد کامپیوتر، 757 00:34:08,159 --> 00:34:10,690 با هر سلول یک تعداد معینی از بیت. 758 00:34:10,690 --> 00:34:13,429 >> به یاد داشته باشید که ما در هفته به دست صفر که داده های مختلف 759 00:34:13,429 --> 00:34:15,300 انواع اندازه های مختلف؟ 760 00:34:15,300 --> 00:34:17,630 بنابراین برای مثال، یک رشته یک مقدار متفاوت است 761 00:34:17,630 --> 00:34:20,719 از فضا به جز کاراکتر، که یک مقدار متفاوت از فضا است 762 00:34:20,719 --> 00:34:21,830 از یک عدد صحیح. 763 00:34:21,830 --> 00:34:25,534 و بنابراین اگر شما مشخص نیست و شما ترکیب و مطابقت با چه نوع از متغیرهای 764 00:34:25,534 --> 00:34:27,659 شما، کامپیوتر رفتن به بسیار اشتباه گرفته شود. 765 00:34:27,659 --> 00:34:29,950 و آن را به دانستن چه مقدار حافظه را به شما بدهد. 766 00:34:29,950 --> 00:34:32,480 بنابراین برای اهداف حق در حال حاضر، کامپیوتر می تواند تنها 767 00:34:32,480 --> 00:34:36,120 یک نوع از یک آرایه را تشخیص دهد. 768 00:34:36,120 --> 00:34:37,940 سوال خوبی بود. 769 00:34:37,940 --> 00:34:38,440 باشه. 770 00:34:38,440 --> 00:34:45,179 771 00:34:45,179 --> 00:34:47,120 >> بنابراین به طور طبیعی، سوال دوم ما 772 00:34:47,120 --> 00:34:50,760 است، به خوبی، در حال حاضر که ما ایجاد کرده اید آرایه و ما همه این چیزها قرار داده ام 773 00:34:50,760 --> 00:34:54,190 در آرایه، چگونه ما رفتن به قادر به دسترسی به آن؟ 774 00:34:54,190 --> 00:34:59,710 بنابراین ساختار معمولی که ما همیشه دسترسی به یک آرایه دوست داشتنی ما برای حلقه است. 775 00:34:59,710 --> 00:35:03,830 من به شما قول بچه ها که ما خواهید بود دیدن بسیاری از این مرد. 776 00:35:03,830 --> 00:35:06,470 >> اساسا، در هر زمان که شما می خواهید به ورودی ارزش را به یک آرایه 777 00:35:06,470 --> 00:35:09,940 و یا می خواهید به آنها دسترسی داشته باشید، بهترین راه برای انجام این کار برای حلقه است، 778 00:35:09,940 --> 00:35:13,730 چرا که در یک حلقه for، شما مطمئن شوید که چگونه بسیاری از شما 779 00:35:13,730 --> 00:35:17,290 رفتن به خواهید برای اجرا از طریق آرایه، چرا که شما باید یک نسخه توقف، درست است؟ 780 00:35:17,290 --> 00:35:19,680 و هر بار اجرا می کنید از طریق، شما می توانید دسترسی 781 00:35:19,680 --> 00:35:21,310 یک عنصر از آرایه های مختلف. 782 00:35:21,310 --> 00:35:26,920 >> و همچنین، این به همین دلیل به طور معمول ما ما شروع برای حلقه در 0 ارزش، 783 00:35:26,920 --> 00:35:30,080 زیرا هنگامی که شما دسترسی به آرایه ها، شما می توانید شاخص صفر دسترسی داشته باشید. 784 00:35:30,080 --> 00:35:32,070 و پس از آن به موازات بسیار خوبی. 785 00:35:32,070 --> 00:35:35,295 شما بچه ها ممکن است می خواستم به ارسال برای INT من برابر با 1. 786 00:35:35,295 --> 00:35:37,330 من کمتر یا 3 برابر است. 787 00:35:37,330 --> 00:35:39,890 >> اما آن را نمی خواهد کاملا به عنوان کار خوب در اینجا، زیرا شما تنها 788 00:35:39,890 --> 00:35:42,010 عناصر از 0، 1، 2 و. 789 00:35:42,010 --> 00:35:45,815 و بنابراین اگر شما برای شروع من خود را در عنصر 1، 2، و 3، 790 00:35:45,815 --> 00:35:48,440 شما در حال رفتن برای پایان دادن به در حال اجرا خارج از مرزهای آرایه خود را، 791 00:35:48,440 --> 00:35:50,440 و به چیزهای بد اتفاق خواهد افتاد. 792 00:35:50,440 --> 00:35:54,480 >> بنابراین من امیدوارم که شما بچه ها دیدن SEGUE چرا در کلاس های قبلی 793 00:35:54,480 --> 00:35:58,560 ما به شما بچه ها آموزش شد که چگونه به اجرا و فرمت یک حلقه for راه است که ما بود. 794 00:35:58,560 --> 00:36:01,900 به این دلیل، در حال حاضر ما باید انتقال به آرایه ها، 795 00:36:01,900 --> 00:36:06,760 شما می توانید به همین دلیل می آورد به دیدن 0 خود بسیار خوبی برای دسترسی به. 796 00:36:06,760 --> 00:36:09,880 >> پس راه ما انجام این کار است that-- من فقط چاپ آن را در اینجا به خاطر 797 00:36:09,880 --> 00:36:10,830 از چاپ آن را. 798 00:36:10,830 --> 00:36:13,750 اما من حفره یا سوراخ من، کاما از هم. 799 00:36:13,750 --> 00:36:15,645 و دسترسی واقعی بخش اتفاق می افتد. 800 00:36:15,645 --> 00:36:17,520 نام آرایه دمای نامیده می شد. 801 00:36:17,520 --> 00:36:21,570 پس از آن درجه حرارت و i ام عنصر از آرایه. 802 00:36:21,570 --> 00:36:24,400 >> بنابراین به عنوان برای حلقه اجرا می شود از طریق، آن را برای شروع در 0. 803 00:36:24,400 --> 00:36:27,640 آن را برای چاپ کردن صفحه اول 0 از این آرایه. 804 00:36:27,640 --> 00:36:29,599 سپس آن را به چاپ از عنصر اول. 805 00:36:29,599 --> 00:36:31,431 سپس آن را به چاپ از یک ثانیه. 806 00:36:31,431 --> 00:36:32,880 و سپس ما در حال رفتن برای شکستن. 807 00:36:32,880 --> 00:36:36,718 است همه روشن در چگونه است که اتفاق می افتد؟ 808 00:36:36,718 --> 00:36:37,217 عالی. 809 00:36:37,217 --> 00:36:43,230 810 00:36:43,230 --> 00:36:44,100 >> خیلی خوب. 811 00:36:44,100 --> 00:36:47,270 بنابراین در اینجا ما یک راه گفت: اگر ما نمی 812 00:36:47,270 --> 00:36:50,020 به سخت کد من in-- به عنوان برنامه نویس. 813 00:36:50,020 --> 00:36:53,320 من نمی خواستم به واقع از لحاظ جسمی را در هر عنصر منحصر به فرد 814 00:36:53,320 --> 00:36:54,020 از این آرایه. 815 00:36:54,020 --> 00:36:56,500 اگر من به جای آن می خواست دارای مقادیر ورودی کاربر، 816 00:36:56,500 --> 00:36:58,100 بهترین راه برای انجام این کار؟ 817 00:36:58,100 --> 00:37:00,920 >> خوب، در اینجا من ایجاد کرده است این تابع دوست داشتنی، 818 00:37:00,920 --> 00:37:03,560 که در آن من می تواند مجموعه ای را اعلام کند. 819 00:37:03,560 --> 00:37:06,210 بنابراین اعضای هیات scores-- اجازه دهید فقط می گویند ما می خواهیم به 820 00:37:06,210 --> 00:37:10,660 یک آرایه است که نمرات از تمام 18 برگزار شد از دانش آموزان در این بخش است. 821 00:37:10,660 --> 00:37:12,670 من فکر می کنم ما باید کمی بیش از 18 بچه ها امروز. 822 00:37:12,670 --> 00:37:16,460 اما به خاطر مثال، اجازه دهید فقط فرض کنیم ما تا به حال 18. 823 00:37:16,460 --> 00:37:21,580 من یک نمرات نام آرایه با ایجاد نوع int، به دلیل نمرات، البته، 824 00:37:21,580 --> 00:37:22,987 اعداد هستند. 825 00:37:22,987 --> 00:37:24,820 و من قصد دارم به 18 در براکت مربع، 826 00:37:24,820 --> 00:37:29,900 چگونه بسیاری از دانش آموزان به دلیل این که من می خواهم که قادر به ذخیره نمرات از. 827 00:37:29,900 --> 00:37:32,206 >> و راه من می خواهم جمعیت آرایه است که من می خواهم 828 00:37:32,206 --> 00:37:35,572 اجرا آن را از طریق یک حلقه for، از البته، با اینکه 0 0 شاخص است. 829 00:37:35,572 --> 00:37:38,030 و پس از آن با 18 بودن من توقف نسخه، به دلیل وجود دارد 830 00:37:38,030 --> 00:37:39,690 18 عنصر در آرایه. 831 00:37:39,690 --> 00:37:44,620 و سپس من را به انجام تابع () printf، را وارد کنید گل برای student-- YADA بیارزش. 832 00:37:44,620 --> 00:37:51,171 >> هر کسی می تواند به من بگو چرا در اینجا من چاپ من به علاوه 1 و نه من؟ 833 00:37:51,171 --> 00:37:52,920 این نوع از ترفند درخواست، نه واقعا. 834 00:37:52,920 --> 00:37:56,020 این کار در واقع از لحاظ جسمی نمی در حال اجرا از کد تاثیر می گذارد. 835 00:37:56,020 --> 00:37:56,520 آره. 836 00:37:56,520 --> 00:37:57,909 >> مخاطبان: [نامفهوم] 0؟ 837 00:37:57,909 --> 00:37:58,950 ANDI PENG: بله، دقیقا. 838 00:37:58,950 --> 00:38:02,620 این کمی بی دست و پا می گویند، با سلام، شما دانش آموز 0 در این کلاس است. 839 00:38:02,620 --> 00:38:03,780 این کمی عجیب و غریب. 840 00:38:03,780 --> 00:38:08,340 بنابراین ما، به عنوان انسان، واقعا نمی خواهم تا از نحوه فکر می کنم فکر می کنم کامپیوتر. 841 00:38:08,340 --> 00:38:10,930 بنابراین حتی اگر در کامپیوتر، آن را ذخیره سازی مقادیر 842 00:38:10,930 --> 00:38:13,310 در شاخص 0 ام، هنگامی که ما انسان هستیم، ما واقعا نمی 843 00:38:13,310 --> 00:38:15,520 دارم به خودمان را به عنوان صفر است. 844 00:38:15,520 --> 00:38:18,119 بنابراین، هنگامی که من فقط چاپ که، من قصد دارم به چاپ و اضافه کردن 845 00:38:18,119 --> 00:38:19,410 1 فقط به خاطر وضوح. 846 00:38:19,410 --> 00:38:22,447 بنابراین، هنگامی که من نسخه قابل چاپ، من قصد دارم به قادر به چاپ دانشجویان 1 تا 18. 847 00:38:22,447 --> 00:38:24,530 این کار در واقع تاثیر نیست در حال اجرا از کد 848 00:38:24,530 --> 00:38:27,110 در هر صورت، راه من را چاپ کنید. 849 00:38:27,110 --> 00:38:30,380 >> اما مراقب باشید زمانی که شما در واقع دسترسی به آرایه. 850 00:38:30,380 --> 00:38:32,780 هنگامی که می بینید نمرات من، اطلاع قبلی در اینجا من در واقع 851 00:38:32,780 --> 00:38:38,200 دسترسی به شاخص 0 و نه 1 به علاوه 0-- یا 1 به علاوه 1، 852 00:38:38,200 --> 00:38:45,530 در این مورد، شاخص آن، بنابراین که در واقع روشن است. 853 00:38:45,530 --> 00:38:48,870 هر کس نوع OK در این در حال اجرا است از طریق 854 00:38:48,870 --> 00:38:51,470 و با هر شاخص من قرار دادن یک مقدار به آرایه 855 00:38:51,470 --> 00:38:55,340 و ایجاد یک آرایه با 18 شماره که کاربر در حال رفتن به ورودی. 856 00:38:55,340 --> 00:38:58,780 857 00:38:58,780 --> 00:38:59,821 باشه. 858 00:38:59,821 --> 00:39:00,321 خنک. 859 00:39:00,321 --> 00:39:05,380 860 00:39:05,380 --> 00:39:07,400 >> باشه. 861 00:39:07,400 --> 00:39:12,220 ما در حال حاضر به چیزی که خیلی حرکت مربوط به این قطعه است. 862 00:39:12,220 --> 00:39:15,020 من در سخنرانی دانید، David-- با عرض پوزش، شما یک سوال بود؟ 863 00:39:15,020 --> 00:39:16,840 >> رسید می توانید آن را بزرگ؟ 864 00:39:16,840 --> 00:39:18,080 >> ANDI PENG: آره، بنابراین من سعی کردم. 865 00:39:18,080 --> 00:39:18,788 اما من نمی دانم. 866 00:39:18,788 --> 00:39:21,437 برای برخی از این دلیل، این نسخه از پاورپوینت 867 00:39:21,437 --> 00:39:23,270 است که واقعا کار نمی کند به خوبی با صفحه نمایش. 868 00:39:23,270 --> 00:39:25,260 بنابراین ما فقط رفتن آن را نگه دارید مثل این. 869 00:39:25,260 --> 00:39:27,280 همه این به صورت آنلاین ارسال شده است. 870 00:39:27,280 --> 00:39:28,218 بچه ها متاسفم. 871 00:39:28,218 --> 00:39:30,090 آره. 872 00:39:30,090 --> 00:39:30,980 باشه. 873 00:39:30,980 --> 00:39:35,530 >> بنابراین ما نیز می توانید رشته داشته باشد. 874 00:39:35,530 --> 00:39:39,320 بنابراین اگر شما بچه در واقع notice-- من مطمئن شوید راب بیش از این در آن سخنرانی رفت 875 00:39:39,320 --> 00:39:43,652 که او did-- یک رشته است که در واقع فقط یک آرایه از شخصیت ها، 876 00:39:43,652 --> 00:39:44,860 اگر شما در مورد آن فکر، درست است؟ 877 00:39:44,860 --> 00:39:47,500 یک رشته یک نام یا است جمله یا یک کلمه، درست است؟ 878 00:39:47,500 --> 00:39:52,975 >> اگر من به یک رشته به نام ایجاد Andi-- فقط نام من، A-N-D-I. 879 00:39:52,975 --> 00:39:55,460 شما از آن به عنوان فقط یک متغیر فکر می کنم. 880 00:39:55,460 --> 00:39:58,630 اما در واقع، آن را شکسته را تنها در آرایه ای از کاراکتر. 881 00:39:58,630 --> 00:40:01,910 بنابراین آن را به یک شخصیت در یک مقدار آرایه یک ذخیره می شود. 882 00:40:01,910 --> 00:40:05,420 آن را به یک شخصیت N ذخیره شده در شاخص دوم و غیره و غیره. 883 00:40:05,420 --> 00:40:08,660 >> بنابراین در چنین راهی، ما در واقع این نوع 884 00:40:08,660 --> 00:40:10,970 ساختار مجموعه در مشخصات برای رشته ما است. 885 00:40:10,970 --> 00:40:14,660 بنابراین در اینجا، اگر من به ورودی شد کلمه "خوردن" - پس کلمه رشته برابر 886 00:40:14,660 --> 00:40:15,540 دریافت رشته. 887 00:40:15,540 --> 00:40:19,260 اگر من به ورودی شد کلمه "خوردن" است که از نظر فیزیکی راه است که کامپیوتر من 888 00:40:19,260 --> 00:40:21,870 ذخیره سازی این رشته در حافظه من. 889 00:40:21,870 --> 00:40:27,140 >> و اگر من می خواستم از طریق که اجرا و چاپ که out-- بنابراین برای من به 890 00:40:27,140 --> 00:40:30,890 برابر صفر، به یاد داشته باشید، در سخنرانی، ما چیزی که تحت پوشش که strlen نامیده می شود، 891 00:40:30,890 --> 00:40:32,990 و یا طول رشته. 892 00:40:32,990 --> 00:40:36,520 از آنجا که من در واقع نه می دانم که چگونه بزرگ آرایه است 893 00:40:36,520 --> 00:40:38,210 از هر inputting-- کاربر 894 00:40:38,210 --> 00:40:40,370 >> برای مثال، من وارد کلمه "خوردن" و من می دانم 895 00:40:40,370 --> 00:40:41,870 که سه شخصیت طولانی، درست است؟ 896 00:40:41,870 --> 00:40:44,700 بنابراین من می تواند در سه وجود دارد قرار داده و همه چیز خوب خواهد شد. 897 00:40:44,700 --> 00:40:49,290 اما اگر چیزی ورودی کاربر را که شماره های مختلف از ارزش است، 898 00:40:49,290 --> 00:40:52,760 شما در حال رفتن به نه قادر به واقعا مطمئن شوید که هنگامی که شما برنامه کد خود را. 899 00:40:52,760 --> 00:40:56,040 >> بنابراین راه است که ما رسیدگی به پرونده آزمون مانند این است که ما چیزی 900 00:40:56,040 --> 00:41:00,070 نام strlen، است که فقط یک تابع که شما می گوید چه مدت یک رشته است. 901 00:41:00,070 --> 00:41:02,080 بنابراین کلمه strlen. 902 00:41:02,080 --> 00:41:03,470 کلمه من است را بخورند. 903 00:41:03,470 --> 00:41:05,990 N برابر strlen از کلمه است. 904 00:41:05,990 --> 00:41:08,930 می تواند کسی به من بگویید چه که ارزش در واقع سمت راست وجود دارد؟ 905 00:41:08,930 --> 00:41:12,550 چه n نشان سمت راست در حال حاضر، در این مثال، خوردن اگر من تا به حال؟ 906 00:41:12,550 --> 00:41:13,530 >> مخاطبان: 3. 907 00:41:13,530 --> 00:41:14,520 >> ANDI PENG: 3، دقیقا. 908 00:41:14,520 --> 00:41:18,820 بنابراین ما باید برای INT من برابر با صفر، N برابر با 3، در اصل. 909 00:41:18,820 --> 00:41:22,355 و من است که برای اجرا تا زمانی که کمتر از 3I ++. 910 00:41:22,355 --> 00:41:24,980 و آن را به اصل رفتن از طریق و انجام همان چیزی. 911 00:41:24,980 --> 00:41:26,979 آن را برای چاپ کردن هر مقدار و به شما بدهد 912 00:41:26,979 --> 00:41:29,700 E-A-T. این فقط دلالت راه های مختلف از نوشتن آن. 913 00:41:29,700 --> 00:41:31,170 که برای رفتن به بسیار مفید است. 914 00:41:31,170 --> 00:41:31,670 آره. 915 00:41:31,670 --> 00:41:35,174 رسید از مزایای قرار دادن چه خبر از n برابر کلمه strlen در داخل است که 916 00:41:35,174 --> 00:41:36,894 برای حلقه [نامفهوم]؟ 917 00:41:36,894 --> 00:41:37,560 ANDI PENG: آره. 918 00:41:37,560 --> 00:41:44,880 بنابراین اگر ... من باید ... می گویند، برای مثال، اگر من به انجام این کار و پس از آن 919 00:41:44,880 --> 00:41:51,935 do-- oop-- که در کد من، این امر در واقع انجام مانند همان چیزی که باشد. 920 00:41:51,935 --> 00:41:55,060 با این حال، که دیوید توضیح داد آن را در طول سخنرانی، اگر هر کدام از شما بچه ها 921 00:41:55,060 --> 00:41:57,854 به یاد داشته باشید، این بود که، به عنوان انسان، به عنوان برنامه نویسان، 922 00:41:57,854 --> 00:42:00,270 ما واقعا سعی کنید به برنامه های ما کد به طوری که کامپیوتر ما است 923 00:42:00,270 --> 00:42:04,070 به کار به عنوان حداقل ممکن، به طوری که کد ما بسیار کارآمد است. 924 00:42:04,070 --> 00:42:06,850 >> بنابراین اگر من به حال که وجود دارد، چه از طریق حلقه for من اتفاق می افتد 925 00:42:06,850 --> 00:42:10,790 این است که من برای اولین بار می خواهم اعلام متغیری به نام من در حال رفتن به 0. 926 00:42:10,790 --> 00:42:13,350 من می خواهم به بررسی، آه، strlen از کلمه چیست؟ 927 00:42:13,350 --> 00:42:15,000 آه، strlen 3 است. 928 00:42:15,000 --> 00:42:16,191 بنابراین من کمتر از سه؟ 929 00:42:16,191 --> 00:42:16,690 بله، در آن است. 930 00:42:16,690 --> 00:42:17,870 من قصد دارم را اجرا کنند. 931 00:42:17,870 --> 00:42:21,130 >> و پس از آن بار دوم در اطراف حلقه، من قصد دارم به افزایش کنم. 932 00:42:21,130 --> 00:42:22,550 من در حال رفتن به یک است. 933 00:42:22,550 --> 00:42:25,600 و من در حال رفتن به بررسی، آه، اما آنچه که strlen از کلمه است؟ 934 00:42:25,600 --> 00:42:26,839 آه، آن را سه. 935 00:42:26,839 --> 00:42:29,880 و به نظر می رسد می کند که نوع بی فایده است، هر زمانی که شما از طریق حلقه اجرا شود، 936 00:42:29,880 --> 00:42:33,340 به چک کردن تابع، حتی اگر strlen کلمه 937 00:42:33,340 --> 00:42:35,490 در واقع هرگز تغییر می کند؟ 938 00:42:35,490 --> 00:42:38,590 >> پس از آن قدرت فوق العاده برای یک کامپیوتر است. 939 00:42:38,590 --> 00:42:42,180 هنگامی که شما شروع به صحبت کردن در مورد چیزهایی که میلیاردها و میلیاردها هستند 940 00:42:42,180 --> 00:42:44,431 و میلیاردها مکان طولانی، تصور کنید کامپیوتر شما 941 00:42:44,431 --> 00:42:47,430 نیاز به لحاظ جسمی از طریق رفتن و بررسی همه که هر زمان تنها. 942 00:42:47,430 --> 00:42:53,170 به همین دلیل، به تنها به خاطر بازده، 943 00:42:53,170 --> 00:42:57,620 ما تمایل به تنها این کار، چرا که این راه ما فقط در حال 944 00:42:57,620 --> 00:42:59,850 فراخوانی تابع یک بار در آغاز، 945 00:42:59,850 --> 00:43:01,766 و هر بار آن را می رود از طریق آن را 946 00:43:01,766 --> 00:43:03,789 برای ذخیره ارزش 3 وجود دارد، که شما نمی 947 00:43:03,789 --> 00:43:05,330 باید به طور مستمر بررسی در هر زمان. 948 00:43:05,330 --> 00:43:05,743 آره. 949 00:43:05,743 --> 00:43:06,409 >> مخاطبان: با عرض پوزش. 950 00:43:06,409 --> 00:43:09,070 فقط [نامفهوم]. 951 00:43:09,070 --> 00:43:13,985 می تواند شما را از نوع int N برابر strlen قرار داده و که در بالا در خارج از حلقه for 952 00:43:13,985 --> 00:43:15,364 به خوبی؟ 953 00:43:15,364 --> 00:43:16,030 ANDI PENG: آره. 954 00:43:16,030 --> 00:43:17,100 شما می توانید انجام این کار، کاملا. 955 00:43:17,100 --> 00:43:19,970 به همین دلیل ما آن را در اینجا است چرا که راه یک حلقه برای کار 956 00:43:19,970 --> 00:43:23,500 است که آن را به نام متغیر محلی در مفهوم 957 00:43:23,500 --> 00:43:26,150 که همه چیز شما ایجاد داخل حلقه for 958 00:43:26,150 --> 00:43:27,890 تنها در داخل از حلقه for وجود دارد. 959 00:43:27,890 --> 00:43:31,530 >> بنابراین تنها متغیر i در آن براکت وجود دارد. 960 00:43:31,530 --> 00:43:35,260 و در اینجا متغیر n نیز تنها در آن براکت وجود دارد. 961 00:43:35,260 --> 00:43:39,350 بنابراین اگر شما به استفاده از strlen کلمه چند بار به پایین، 962 00:43:39,350 --> 00:43:42,230 مطلقا بهترین راه برای انجام این کار می شود آن را اعلام تا بالای 963 00:43:42,230 --> 00:43:43,563 بنابراین شما لازم نیست که برای انجام آن یک بار. 964 00:43:43,563 --> 00:43:45,420 آره. 965 00:43:45,420 --> 00:43:47,670 مخاطبان: چرا شما یک خط جدید پس از درصد 966 00:43:47,670 --> 00:43:51,300 دیدن اگر شما می خواهید برای قرار دادن تمام حروف در کنار آن جدا می کنید؟ 967 00:43:51,300 --> 00:43:54,140 >> ANDI PENG: آه، من می خواستم چاپ تمام آنها در هر خط. 968 00:43:54,140 --> 00:43:54,890 مهم نیست. 969 00:43:54,890 --> 00:43:55,890 آره، آن را به یک قالب است. 970 00:43:55,890 --> 00:43:57,181 این سوال خوبی است، هر چند. 971 00:43:57,181 --> 00:43:59,360 بله، اگر من می خواستم به چاپ این همه در فقط یک خط، 972 00:43:59,360 --> 00:44:02,731 من در فاصله ندارد. 973 00:44:02,731 --> 00:44:03,230 باشه. 974 00:44:03,230 --> 00:44:06,880 همه خوب است؟ 975 00:44:06,880 --> 00:44:07,500 باشه. 976 00:44:07,500 --> 00:44:08,000 خنک. 977 00:44:08,000 --> 00:44:12,080 978 00:44:12,080 --> 00:44:14,750 >> بنابراین من فکر می کنم من به اندازه کافی صحبت کردیم. 979 00:44:14,750 --> 00:44:20,040 به نوبه خود شما بچه ها را از طریق اجرا کد و به من بگویید که چه چیزی اشتباه است در اینجا. 980 00:44:20,040 --> 00:44:21,560 اشکال کجاست؟ 981 00:44:21,560 --> 00:44:26,920 به طوری که شما می توانید ببینید، من اعلام یک آرایه جدید از نوع رشته با نام کلاس. 982 00:44:26,920 --> 00:44:30,220 و من سام وارد کرده ایم، جس، و کیم به آن است. 983 00:44:30,220 --> 00:44:33,400 و من تلاش برای چاپ کردن تمام عناصر آرایه. 984 00:44:33,400 --> 00:44:36,796 می توانید کسی به من بگویید چرا این در حال رفتن به من مشکلات را؟ 985 00:44:36,796 --> 00:44:39,320 من به شما بچه 10 را ثانیه به این فکر کنید. 986 00:44:39,320 --> 00:44:55,490 987 00:44:55,490 --> 00:44:56,619 >> باشه. 988 00:44:56,619 --> 00:44:57,118 آره؟ 989 00:44:57,118 --> 00:45:01,972 >> مخاطبان: آیا مرکز سمت چپ تا 3 برابر یا [نامفهوم]؟ 990 00:45:01,972 --> 00:45:02,680 ANDI PENG: درست است. 991 00:45:02,680 --> 00:45:06,784 بنابراین چند بار این است که در واقع رفتن را از طریق این حلقه را اجرا کنید؟ 992 00:45:06,784 --> 00:45:07,620 >> مخاطبان: چهار. 993 00:45:07,620 --> 00:45:08,070 >> ANDI PENG: دقیقا. 994 00:45:08,070 --> 00:45:09,445 آن را به طریق چهار بار. 995 00:45:09,445 --> 00:45:12,250 آن را به اجرا از طریق در 0، 1، 2، و 3، 996 00:45:12,250 --> 00:45:15,200 چون عنصر خود من است کمتر یا 3 برابر است. 997 00:45:15,200 --> 00:45:16,960 آن را به جلوگیری از زمانی که آن را 2. 998 00:45:16,960 --> 00:45:18,800 آن را به نگه داشتن تا زمانی که از آن بازدید 3. 999 00:45:18,800 --> 00:45:21,720 و همانطور که می دانیم، تنها سه وجود دارد عناصر آرایه واقعی ما. 1000 00:45:21,720 --> 00:45:27,260 >> اگر ما سعی می کنیم برای دسترسی به چهارم عنصر یا شاخص 3، 1001 00:45:27,260 --> 00:45:30,357 شما در حال رفتن برای ضربه زدن به جایی در حافظه است که وجود ندارد. 1002 00:45:30,357 --> 00:45:31,690 این نابودگر تهی به نام. 1003 00:45:31,690 --> 00:45:32,856 هیچ چیز به وجود داشته باشد. 1004 00:45:32,856 --> 00:45:35,324 کامپیوتر شما است که نمی با تو بسیار خوشحال است. 1005 00:45:35,324 --> 00:45:36,170 آره. 1006 00:45:36,170 --> 00:45:38,430 آیا کسی سوال در همین دلیل است که اتفاق می افتد؟ 1007 00:45:38,430 --> 00:45:39,679 که یک منطقه معمول برای جلوگیری از است. 1008 00:45:39,679 --> 00:45:40,712 آره. 1009 00:45:40,712 --> 00:45:45,777 >> مخاطبان: آیا اولین نیست اسلاید نیز یک رشته از 2؟ 1010 00:45:45,777 --> 00:45:46,360 ANDI PENG: شماره 1011 00:45:46,360 --> 00:45:49,610 بنابراین اساسا، هنگامی که شما در حال ساخت یک آرایه، 1012 00:45:49,610 --> 00:45:51,540 که حق براکت وجود دارد، که همه number-- 1013 00:45:51,540 --> 00:45:53,480 آن را به شما می گویم این است که چگونه بسیاری از عناصر من. 1014 00:45:53,480 --> 00:45:55,840 این در واقع گفتن من شاخص از هر چیزی. 1015 00:45:55,840 --> 00:45:58,760 بنابراین در این مورد، من می دانم من می خواهم به نوشتن با سه مکان، 1016 00:45:58,760 --> 00:46:02,690 با سه مکان فیزیکی به هر آنچه من می خواهم به نگه دارید. 1017 00:46:02,690 --> 00:46:04,510 به همین دلیل شماره سه است. 1018 00:46:04,510 --> 00:46:06,560 با این حال، اگر من می خواستم به واقع آن را دسترسی داشته باشید، 1019 00:46:06,560 --> 00:46:11,220 اگر من می خواستم به گفتن نیست، تابع () printf تعداد براکت کلاس، پس از آن 1020 00:46:11,220 --> 00:46:14,560 شما در حال رفتن به واقع قرار داده است شاخص فیزیکی وجود دارد. 1021 00:46:14,560 --> 00:46:16,330 آره، سوال خوب است. 1022 00:46:16,330 --> 00:46:20,065 >> مخاطبان: بنابراین است که فیزیکی صفحه اول تصور می شود [نامفهوم]؟ 1023 00:46:20,065 --> 00:46:20,940 ANDI PENG: من متاسفم. 1024 00:46:20,940 --> 00:46:21,500 می توانید صحبت تا کمی؟ 1025 00:46:21,500 --> 00:46:24,208 >> مخاطبان: بنابراین شاخص فیزیکی است [نامفهوم] هر یک از جعبه؟ 1026 00:46:24,208 --> 00:46:25,260 [نامفهوم]؟ 1027 00:46:25,260 --> 00:46:26,040 >> ANDI PENG: آره. 1028 00:46:26,040 --> 00:46:28,970 بنابراین من قصد دارم برای رفتن به حق در اینجا. 1029 00:46:28,970 --> 00:46:31,120 فکر می کنم از اینجا ببینید. 1030 00:46:31,120 --> 00:46:32,820 ما مجموعه ای از اندازه 3. 1031 00:46:32,820 --> 00:46:35,540 سه مکان وجود دارد، مانند، متغیرهایی فیزیکی در اینجا. 1032 00:46:35,540 --> 00:46:37,620 اما آنها به نام 0، 1، 2 و. 1033 00:46:37,620 --> 00:46:40,700 بنابراین اگر من می خواستم به آنها دسترسی داشته باشید، راه است که من به آنها دسترسی 1034 00:46:40,700 --> 00:46:43,480 تابع () printf از هر آنچه که من در اینجا می خواستم است. 1035 00:46:43,480 --> 00:46:45,485 شما را مجبور به چاپ به نام آن، 1036 00:46:45,485 --> 00:46:47,610 زیرا پس از آن کامپیوتر می داند، آه، من نیاز به نگاه 1037 00:46:47,610 --> 00:46:51,391 در این آرایه برای شاخص 0. 1038 00:46:51,391 --> 00:46:51,890 آره. 1039 00:46:51,890 --> 00:46:53,306 اما اندازه آن تغییر نمی کند. 1040 00:46:53,306 --> 00:46:55,492 اندازه 3 است، بدون در نظر گرفتن از اینکه چگونه آنها را برچسب. 1041 00:46:55,492 --> 00:46:58,321 1042 00:46:58,321 --> 00:46:58,820 باشه. 1043 00:46:58,820 --> 00:47:01,387 همه خوب است؟ 1044 00:47:01,387 --> 00:47:02,970 مخاطبان: بنابراین هر بار که من [نامفهوم]؟ 1045 00:47:02,970 --> 00:47:06,357 1046 00:47:06,357 --> 00:47:06,940 ANDI PENG: OK. 1047 00:47:06,940 --> 00:47:13,270 بنابراین در این مورد، ما واقعا نمی وارد شدن به آن در حال حاضر در این دوره است. 1048 00:47:13,270 --> 00:47:16,760 اما می دانیم که یک string-- من گفت: قبل از، یک رشته است که در اصل 1049 00:47:16,760 --> 00:47:18,440 آرایه ای از کاراکتر. 1050 00:47:18,440 --> 00:47:21,430 بنابراین اگر من ایجاد یک آرایه از رشته ها، من از نوع 1051 00:47:21,430 --> 00:47:24,430 یک آرایه از آرایه از شخصیت های، درست است؟ 1052 00:47:24,430 --> 00:47:27,720 >> بنابراین در این مورد، چون من یک آرایه از رشته ها، 1053 00:47:27,720 --> 00:47:31,340 اگر شما به ورودی یک کلمه واقعا طولانی بود، که هنوز هم طول می کشد تا تنها یک فضا، 1054 00:47:31,340 --> 00:47:33,230 چرا که از یک رشته است. 1055 00:47:33,230 --> 00:47:37,492 اما اگر شما به فکر می کنم شخصیت های که آرایه، 1056 00:47:37,492 --> 00:47:40,450 پس از آن که در نظر گرفتن خیلی بیشتر شخصیت از هر یک از عبارت دیگر 1057 00:47:40,450 --> 00:47:41,372 هستند. 1058 00:47:41,372 --> 00:47:42,830 نه واقعا برای در حال حاضر مهم است. 1059 00:47:42,830 --> 00:47:44,921 اما این فقط به طور کلی چگونه آن را کار می کند. 1060 00:47:44,921 --> 00:47:49,750 1061 00:47:49,750 --> 00:47:50,560 >> باشه. 1062 00:47:50,560 --> 00:47:55,840 پس این چیزی من به شما اجازه انجام دهید این است بسیاری در طول این دوره از ترم. 1063 00:47:55,840 --> 00:47:57,500 من نیاز به استراحت صدای من. 1064 00:47:57,500 --> 00:47:59,530 شما بچه ها نیاز به تحریک خودتان. 1065 00:47:59,530 --> 00:48:02,300 بسیاری از شما احتمالا هم اکنون در حال خواب. 1066 00:48:02,300 --> 00:48:05,960 من وارد تصادفی مشکلات که در آن ما به عنوان یک طبقه و یا شما 1067 00:48:05,960 --> 00:48:09,480 با یک شریک در کنار شما در حال رفتن به صرف چند دقیقه بحث درباره 1068 00:48:09,480 --> 00:48:14,980 در مورد چگونه ما را در مورد حل رفتن و یا ایجاد یک برنامه مانند این. 1069 00:48:14,980 --> 00:48:17,100 >> بنابراین در حال حاضر، ما می خواهیم برای ایجاد یک program-- 1070 00:48:17,100 --> 00:48:19,560 ما در حال رفتن به آن upper.c-- که تبدیل 1071 00:48:19,560 --> 00:48:24,787 یک کلمه کوچک به طبقه بالا حروف بزرگ string--، متاسفم. 1072 00:48:24,787 --> 00:48:26,370 کلمه در رشته ها، با عرض پوزش، مترادف است. 1073 00:48:26,370 --> 00:48:28,370 من قصد دارم به آنها را تغییر دهید به یک معنی دارند. 1074 00:48:28,370 --> 00:48:32,270 1075 00:48:32,270 --> 00:48:33,499 >> آره. 1076 00:48:33,499 --> 00:48:34,540 نگاهی به چند دقیقه. 1077 00:48:34,540 --> 00:48:37,130 آن را ندارد به نوشته شده در هر زبان. 1078 00:48:37,130 --> 00:48:39,890 فقط در کد شبه و یا منطقی که چگونه ما حتی 1079 00:48:39,890 --> 00:48:42,083 رفتن در مورد انجام چنین مشکل است. 1080 00:48:42,083 --> 00:48:42,583 آره. 1081 00:48:42,583 --> 00:48:49,881 1082 00:48:49,881 --> 00:48:52,780 >> [SIDE گفتگو] 1083 00:48:52,780 --> 00:49:18,680 1084 00:49:18,680 --> 00:49:22,130 >> همچنین متوجه شدم که شما بچه ها can-- من از نوع پیش از این برنامه است. 1085 00:49:22,130 --> 00:49:24,600 من حدس می زنم من از فقدان حالت ارائه یک مشکل است. 1086 00:49:24,600 --> 00:49:27,410 اما این خوب است. 1087 00:49:27,410 --> 00:49:30,410 >> [SIDE گفتگو] 1088 00:49:30,410 --> 00:50:03,589 1089 00:50:03,589 --> 00:50:04,380 آره، مدیر فروش، بچه ها. 1090 00:50:04,380 --> 00:50:05,400 بیا آب نبات. 1091 00:50:05,400 --> 00:50:06,372 بیا آب نبات. 1092 00:50:06,372 --> 00:50:07,698 >> آری! 1093 00:50:07,698 --> 00:50:09,958 >> [SIDE گفتگو] 1094 00:50:09,958 --> 00:50:16,101 1095 00:50:16,101 --> 00:50:18,100 ANDI PENG: همچنین، آره، من شروع به پرتاب آب نبات 1096 00:50:18,100 --> 00:50:20,280 در افرادی که سوال را جواب ندهید. 1097 00:50:20,280 --> 00:50:22,260 بنابراین شما باید تمام سوالات پاسخ دهد. 1098 00:50:22,260 --> 00:50:24,895 یا من فرض کنید که مردم که جواب سوال. 1099 00:50:24,895 --> 00:50:26,070 آره، راه دیگری در اطراف. 1100 00:50:26,070 --> 00:50:28,570 >> [SIDE گفتگو] 1101 00:50:28,570 --> 00:51:13,399 1102 00:51:13,399 --> 00:51:14,274 مخاطبان: [نامفهوم] 1103 00:51:14,274 --> 00:51:17,300 1104 00:51:17,300 --> 00:51:18,340 >> ANDI PENG: آره. 1105 00:51:18,340 --> 00:51:19,340 آره. 1106 00:51:19,340 --> 00:51:22,840 >> [SIDE گفتگو] 1107 00:51:22,840 --> 00:51:40,700 1108 00:51:40,700 --> 00:51:41,590 >> همه حق است، بچه ها. 1109 00:51:41,590 --> 00:51:44,731 را، مانند، 10 ثانیه است. 1110 00:51:44,731 --> 00:51:48,210 >> [SIDE گفتگو] 1111 00:51:48,210 --> 00:52:10,600 1112 00:52:10,600 --> 00:52:11,750 >> OK، بچه ها. 1113 00:52:11,750 --> 00:52:14,920 بنابراین قبل از ما شروع به تلاش برای در واقع از لحاظ جسمی نوشتن کد، 1114 00:52:14,920 --> 00:52:20,650 یک عادت خوب برای توسعه این است که ما به نوع اول از دلیل می خواهید 1115 00:52:20,650 --> 00:52:22,737 خارج منطقی چگونه ما آن را انجام دهد. 1116 00:52:22,737 --> 00:52:24,570 شما می خواهید مطمئن شوید، قبل از اینکه شما از لحاظ جسمی 1117 00:52:24,570 --> 00:52:27,210 شروع به تلاش برای کد در ماریو، که شما را به 1118 00:52:27,210 --> 00:52:28,870 مطمئن شوید که شما شبه خود را. 1119 00:52:28,870 --> 00:52:31,235 این است که شما از طریق گرفتن آنچه شما نیاز دارید برای ایجاد، بنابراین 1120 00:52:31,235 --> 00:52:33,360 که، هنگامی که شما فیزیکی ارسال برنامه های خود را بعد، 1121 00:52:33,360 --> 00:52:36,640 شما بهتر می توانند برای گرفتن خطاها هستند در کد و مانند آن خود را. 1122 00:52:36,640 --> 00:52:40,460 >> بنابراین ما قصد داریم به شروع by-- به زبان انگلیسی، در شبه، 1123 00:52:40,460 --> 00:52:43,320 آیا کسی می خواهید را به من یک توضیح کلی 1124 00:52:43,320 --> 00:52:46,250 چگونه ما را در مورد انجام این کار؟ 1125 00:52:46,250 --> 00:52:48,102 آره. 1126 00:52:48,102 --> 00:52:49,664 >> مخاطبان: [نامفهوم]. 1127 00:52:49,664 --> 00:52:50,830 ANDI PENG: مطمئنا، هیچ نگرانی. 1128 00:52:50,830 --> 00:52:57,233 رسید می توانید آن را بپرسید و یا از به کسی که برای دریافت رشته 1-- آره، رشته، 1129 00:52:57,233 --> 00:52:58,160 و بعد-- 1130 00:52:58,160 --> 00:52:59,826 >> ANDI PENG: بله، به طوری که این یک شروع خوب است. 1131 00:52:59,826 --> 00:53:01,972 من شروع به تایپ کردن، با عرض پوزش، به عنوان شما صحبت می کنند. 1132 00:53:01,972 --> 00:53:02,471 بنابراین-- 1133 00:53:02,471 --> 00:53:05,698 >> مخاطبان: --The کوچک اعداد بالاتر، درست است؟ 1134 00:53:05,698 --> 00:53:08,519 و یا حروف کوچک دارای شماره بالا؟ 1135 00:53:08,519 --> 00:53:09,310 ANDI PENG: دقیقا. 1136 00:53:09,310 --> 00:53:16,156 مخاطبان: بنابراین پس از آن ما تفریق 32 از هر [نامفهوم]. 1137 00:53:16,156 --> 00:53:28,600 1138 00:53:28,600 --> 00:53:29,870 >> ANDI PENG: بزرگ. 1139 00:53:29,870 --> 00:53:35,020 بنابراین ما از یک مفهوم کلی دارند چگونه به مورد این مشکل کار می کنند. 1140 00:53:35,020 --> 00:53:40,060 آگاهی از این که ما به نوعی به دست راه فیزیکی است که رشته 1141 00:53:40,060 --> 00:53:43,320 در حافظه ذخیره می شود، چه شما در حال حاضر 1142 00:53:43,320 --> 00:53:45,920 می دانم که شما در حال رفتن به احتمالا ارسال به در کد خود را 1143 00:53:45,920 --> 00:53:48,288 به منظور از طریق رشته حرکت می کند؟ 1144 00:53:48,288 --> 00:53:49,259 >> رسید برای حلقه. 1145 00:53:49,259 --> 00:53:50,550 ANDI PENG: برای حلقه، دقیقا. 1146 00:53:50,550 --> 00:53:56,540 1147 00:53:56,540 --> 00:53:57,220 عالی. 1148 00:53:57,220 --> 00:54:00,539 بنابراین ما یک نوع عام شبه نوشته شده پایین 1149 00:54:00,539 --> 00:54:02,330 این نوع از دادن شما اشاره به اینکه چگونه شما 1150 00:54:02,330 --> 00:54:03,900 در مورد حل مشکل حرکت می کند. 1151 00:54:03,900 --> 00:54:06,150 حالا که شما این، شما می توانید آن را برای بعد مرجع 1152 00:54:06,150 --> 00:54:08,233 در زمانی که شما در حال تلاش برای در واقع کد خود را بنویسید. 1153 00:54:08,233 --> 00:54:10,240 پس ما در واقع می توانید به اینجا بروید. 1154 00:54:10,240 --> 00:54:25,130 و من یک تابع به نام کردم upper.c-- وجود دارد آن را فقط یک قالب خالی is-- 1155 00:54:25,130 --> 00:54:28,510 در حال حاضر که شما بچه ها در حال رفتن به به من کمک شکل در مورد نحوه ارسال 1156 00:54:28,510 --> 00:54:30,430 این خط از code-- خط از کد است. 1157 00:54:30,430 --> 00:54:32,890 این چند خط از کد خواهید بود. 1158 00:54:32,890 --> 00:54:35,710 >> هنگامی که شروع هر نوع از pset خالی، چه 1159 00:54:35,710 --> 00:54:37,418 اولین چیزی که من نیاز به یاد داشته باشید انجام دهید؟ 1160 00:54:37,418 --> 00:54:39,290 >> مخاطبان: [نامفهوم]. 1161 00:54:39,290 --> 00:54:41,000 >> ANDI PENG: بله بزرگ. 1162 00:54:41,000 --> 00:54:41,500 شامل. 1163 00:54:41,500 --> 00:54:44,850 1164 00:54:44,850 --> 00:54:47,130 stdio.h. 1165 00:54:47,130 --> 00:54:49,640 غالبا این یکی از است اشتباهات مردم آسان ترین 1166 00:54:49,640 --> 00:54:51,598 خواهد شد زمانی که آنها نوشتن، این است که آنها را 1167 00:54:51,598 --> 00:54:54,180 فراموش که شامل کتابخانه مهم آنها نیاز دارند. 1168 00:54:54,180 --> 00:54:57,689 بنابراین اگر این ساعات اداری و شما مانند، من نمی دانم که چرا من کد کار نمی کند. 1169 00:54:57,689 --> 00:54:59,230 می توانید به من بگویید چرا آن را به کار نمی کند؟ 1170 00:54:59,230 --> 00:55:00,730 ما قصد داریم به شما می گویند # شامل؟ 1171 00:55:00,730 --> 00:55:02,520 شما باید آن را # شامل. 1172 00:55:02,520 --> 00:55:03,270 باشه. 1173 00:55:03,270 --> 00:55:07,230 >> بنابراین ما استاندارد I / O را در اینجا. 1174 00:55:07,230 --> 00:55:10,740 این است که تنها کتابخانه ما قصد داریم به نیاز دارید در اینجا؟ 1175 00:55:10,740 --> 00:55:12,681 چه چیز دیگری می خواهیم کاری انجام دهید؟ 1176 00:55:12,681 --> 00:55:13,180 متاسف. 1177 00:55:13,180 --> 00:55:14,562 کسی که فقط آن را فریاد؟ 1178 00:55:14,562 --> 00:55:15,666 >> مخاطبان: [نامفهوم]. 1179 00:55:15,666 --> 00:55:16,666 ANDI PENG: شما بروید وجود دارد. 1180 00:55:16,666 --> 00:55:20,320 1181 00:55:20,320 --> 00:55:21,440 باشه. 1182 00:55:21,440 --> 00:55:26,070 و چگونه می توانم در مورد شروع هر نوع رفت از تابع، هر نوع تابع اصلی 1183 00:55:26,070 --> 00:55:28,760 در برنامه ما؟ 1184 00:55:28,760 --> 00:55:30,020 اعضای هیات تحریریه اصلی. 1185 00:55:30,020 --> 00:55:34,531 1186 00:55:34,531 --> 00:55:35,030 باشه. 1187 00:55:35,030 --> 00:55:35,970 چه در داخل قرار داده است من در اینجا؟ 1188 00:55:35,970 --> 00:55:37,640 اولین چیزی که شما می خواهید به انجام چه خبر؟ 1189 00:55:37,640 --> 00:55:39,910 اگر ما می خواهیم به یک رشته از کاربر، 1190 00:55:39,910 --> 00:55:43,870 چه می خواهیم به در این خط اول را انجام دهد؟ 1191 00:55:43,870 --> 00:55:46,120 با عرض پوزش، شما بچه ها فقط احساس رایگان به صحبت کردن و با صدای بلند. 1192 00:55:46,120 --> 00:55:47,123 فقط فریاد هر چیز دیگری. 1193 00:55:47,123 --> 00:55:48,772 >> مخاطبان: درخواست کاربر را؟ 1194 00:55:48,772 --> 00:55:49,980 ANDI PENG: چگونه ما انجام این کار؟ 1195 00:55:49,980 --> 00:55:51,873 Ask-- من رفتن به نوع "درخواست کاربر"؟ 1196 00:55:51,873 --> 00:55:52,600 >> مخاطبان: printf است. 1197 00:55:52,600 --> 00:55:54,341 >> ANDI PENG: OK. 1198 00:55:54,341 --> 00:55:54,840 printf است. 1199 00:55:54,840 --> 00:55:57,372 چه من می خواهم به printf؟ 1200 00:55:57,372 --> 00:55:58,776 >> مخاطبان: تایپ چیزی. 1201 00:55:58,776 --> 00:56:02,760 1202 00:56:02,760 --> 00:56:03,840 >> ANDI PENG: که می خواهم؟ 1203 00:56:03,840 --> 00:56:05,430 بچه ها، وانمود کنیم من یک کامپیوتر است. 1204 00:56:05,430 --> 00:56:08,475 از لحاظ فیزیکی من در هر مرحله به که من نیاز به تایپ در اینجا؟ 1205 00:56:08,475 --> 00:56:09,600 من انجام چیزی اشتباه است؟ 1206 00:56:09,600 --> 00:56:10,743 باید چیزی است که من تایپ؟ 1207 00:56:10,743 --> 00:56:11,690 >> رسید شما به نقل از نیاز دارند. 1208 00:56:11,690 --> 00:56:12,380 >> ANDI PENG: من نقل قول نیاز دارید؟ 1209 00:56:12,380 --> 00:56:12,880 باشه. 1210 00:56:12,880 --> 00:56:15,520 1211 00:56:15,520 --> 00:56:16,297 باشه. 1212 00:56:16,297 --> 00:56:17,698 >> رسید و پس از آن خط جدید است. 1213 00:56:17,698 --> 00:56:21,434 1214 00:56:21,434 --> 00:56:22,465 نقطه و ویرگول. 1215 00:56:22,465 --> 00:56:23,340 ANDI PENG: نقطه و ویرگول؟ 1216 00:56:23,340 --> 00:56:24,060 باشه. 1217 00:56:24,060 --> 00:56:24,560 خوب است. 1218 00:56:24,560 --> 00:56:27,060 >> رسید و شاید مشخص که شما آن را می خواهم در کوچک؟ 1219 00:56:27,060 --> 00:56:30,120 1220 00:56:30,120 --> 00:56:31,415 >> ANDI PENG: بزرگ. 1221 00:56:31,415 --> 00:56:33,540 شما بچه ها به من بخندند فراموش کردن یک نقطه و ویرگول. 1222 00:56:33,540 --> 00:56:36,350 من به شما تضمین جایی در این دوره از این کلاس، 1223 00:56:36,350 --> 00:56:38,260 شما فراموش نکنید که به قرار یک نقطه و ویرگول، و آن 1224 00:56:38,260 --> 00:56:41,116 به شما سه ساعت را به شکل که چرا کد شما کار نمی کند. 1225 00:56:41,116 --> 00:56:42,240 آن را به همه ما اتفاق افتاده است. 1226 00:56:42,240 --> 00:56:43,950 این احتمالا به شما اتفاق خواهد افتاد. 1227 00:56:43,950 --> 00:56:46,352 در یک عادت خوب از با استفاده از سمیکالن. 1228 00:56:46,352 --> 00:56:46,852 باشه. 1229 00:56:46,852 --> 00:56:49,010 >> مخاطبان: آیا شما می خواهید برای انجام بک اسلش در؟ 1230 00:56:49,010 --> 00:56:50,398 >> ANDI PENG: حتما. 1231 00:56:50,398 --> 00:56:51,856 آیا شما می خواهید برای انجام بک اسلش در؟ 1232 00:56:51,856 --> 00:56:53,020 >> آری. 1233 00:56:53,020 --> 00:56:54,330 >> ANDI PENG: بزرگ. 1234 00:56:54,330 --> 00:56:54,830 باشه. 1235 00:56:54,830 --> 00:56:57,872 چه کاری باید انجام دهم؟ 1236 00:56:57,872 --> 00:56:58,964 >> مخاطبان: دریافت رشته. 1237 00:56:58,964 --> 00:56:59,880 ANDI PENG: دریافت رشته است. 1238 00:56:59,880 --> 00:57:03,080 1239 00:57:03,080 --> 00:57:03,830 بنابراین چه چیزی تایپ کنم؟ 1240 00:57:03,830 --> 00:57:04,233 کسی؟ 1241 00:57:04,233 --> 00:57:05,040 >> مخاطبان: رشته ها. 1242 00:57:05,040 --> 00:57:05,873 >> ANDI PENG: رشته ها. 1243 00:57:05,873 --> 00:57:07,251 رسید از GetString. 1244 00:57:07,251 --> 00:57:09,000 ANDI PENG: کسی، می توانید به من بگویید که در آن 1245 00:57:09,000 --> 00:57:12,000 این تابع GetString است که از؟ 1246 00:57:12,000 --> 00:57:13,660 >> مخاطبان: String.h. 1247 00:57:13,660 --> 00:57:15,256 >> ANDI PENG: String.h؟ 1248 00:57:15,256 --> 00:57:16,715 شما فکر می کنم آن را از string.h نیست. 1249 00:57:16,715 --> 00:57:17,830 >> مخاطبان: [نامفهوم]. 1250 00:57:17,830 --> 00:57:18,830 >> ANDI PENG: شما بروید وجود دارد. 1251 00:57:18,830 --> 00:57:21,280 آن را از CS50.h. است 1252 00:57:21,280 --> 00:57:24,530 اگر شما همیشه در آن یک اشتباه فایل کتابخانه است و یا یک فایل هدر است، 1253 00:57:24,530 --> 00:57:28,450 گوگل به معنای واقعی کلمه string.h، و من به شما بگویم 1254 00:57:28,450 --> 00:57:30,450 تمام توابع هستند که در string.h هستند. 1255 00:57:30,450 --> 00:57:31,340 باشه. 1256 00:57:31,340 --> 00:57:35,210 >> بنابراین در حال حاضر که من یک رشته ایجاد کرده اند و من سریع کاربر برای آن، 1257 00:57:35,210 --> 00:57:38,770 من آن را در یک متغیر ذخیره کرده اید بازدید کنندگان به نام، چه چیزی نیاز دارم در حال حاضر؟ 1258 00:57:38,770 --> 00:57:40,652 >> رسید چک کنید اگر آن را در کوچک است. 1259 00:57:40,652 --> 00:57:41,360 ANDI PENG: با عرض پوزش. 1260 00:57:41,360 --> 00:57:42,545 رسید چک کنید اگر آن را در کوچک است. 1261 00:57:42,545 --> 00:57:44,045 ANDI PENG: خوب، اجازه دهید که. 1262 00:57:44,045 --> 00:57:45,857 چگونه می توانم انجام دهم؟ 1263 00:57:45,857 --> 00:57:47,940 در واقع، برای اهداف از کلاس در حال حاضر، 1264 00:57:47,940 --> 00:57:50,330 ما فقط رفتن به فرض کنیم که همه چیز را 1265 00:57:50,330 --> 00:57:52,620 که ما در حال حاضر در ورودی است کوچک. 1266 00:57:52,620 --> 00:57:55,430 اگر شما می خواهید به بررسی، شما می توانید فقط یک عبارت شرطی اضافه 1267 00:57:55,430 --> 00:57:59,640 که بررسی می شود، که از طریق فرار هر عنصر آرایه تک 1268 00:57:59,640 --> 00:58:02,540 و بررسی می شود اگر آن را بین برخی از ارزش ها. 1269 00:58:02,540 --> 00:58:05,627 من فراموش کرده ام چه تعداد از مقادیر کوچک هستند. 1270 00:58:05,627 --> 00:58:07,210 شما می توانید آن نگاه کنید تا در جدول ASCII. 1271 00:58:07,210 --> 00:58:08,800 اما آره، که یک نقطه واقعا خوب است. 1272 00:58:08,800 --> 00:58:11,758 اما در حال حاضر، ما فقط رفتن به فرض کنیم که همه رشته ورودی ما 1273 00:58:11,758 --> 00:58:13,130 در حروف کوچک می باشد. 1274 00:58:13,130 --> 00:58:13,870 باشه. 1275 00:58:13,870 --> 00:58:18,069 >> پس چگونه خواهد بود من در مورد رفتن این مشکل بعدی؟ 1276 00:58:18,069 --> 00:58:18,860 رسید برای حلقه. 1277 00:58:18,860 --> 00:58:19,340 ANDI PENG: برای حلقه؟ 1278 00:58:19,340 --> 00:58:19,839 باشه. 1279 00:58:19,839 --> 00:58:20,847 به من بگویید چه به تایپ کنید. 1280 00:58:20,847 --> 00:58:25,230 >> مخاطبان: اینترنت من برابر با 0. 1281 00:58:25,230 --> 00:58:27,230 >> ANDI PENG: OK. 1282 00:58:27,230 --> 00:58:36,350 >> مخاطبان: اوه، در واقع، پس از آن شما انجام یک کاما از هم و انجام N برابر strlen. 1283 00:58:36,350 --> 00:58:38,940 >> ANDI PENG: چیزی که مهم که من فکر می کنم او در اینجا متوجه 1284 00:58:38,940 --> 00:58:42,936 این است که ما مجبور به INT N بار دوم ما این است. 1285 00:58:42,936 --> 00:58:45,060 فقط می دانم که در یک برای حلقه زمانی که شما در حال اعلام کرد: 1286 00:58:45,060 --> 00:58:47,934 شما در واقع از نوع int از نیاز بار دوم شما یک متغیر را. 1287 00:58:47,934 --> 00:58:51,202 شما می توانید N strlen می گویند. 1288 00:58:51,202 --> 00:58:52,620 >> مخاطبان: از بازدید کنندگان. 1289 00:58:52,620 --> 00:58:53,510 >> ANDI PENG: S. 1290 00:58:53,510 --> 00:58:54,706 باشه. 1291 00:58:54,706 --> 00:58:58,370 >> مخاطبان: سپس یک نقطه و ویرگول. 1292 00:58:58,370 --> 00:59:00,130 >> ANDI PENG: حتما. 1293 00:59:00,130 --> 00:59:04,050 >> رسید و پس از آن [نامفهوم] N. 1294 00:59:04,050 --> 00:59:07,480 1295 00:59:07,480 --> 00:59:09,460 پس از آن من + +. 1296 00:59:09,460 --> 00:59:11,780 >> ANDI PENG: بزرگ. 1297 00:59:11,780 --> 00:59:12,280 خیلی خوب. 1298 00:59:12,280 --> 00:59:14,690 چه ما در داخل می خواهند این حلقه در حال حاضر؟ 1299 00:59:14,690 --> 00:59:17,820 به یاد داشته باشید، اگر ما قصد داریم به اجرا از طریق یک رشته و اجرا از طریق یک آرایه، 1300 00:59:17,820 --> 00:59:19,287 ما می خواهیم به بررسی مسائل را در آن است. 1301 00:59:19,287 --> 00:59:20,370 چه می خواهیم به نیاز دارید؟ 1302 00:59:20,370 --> 00:59:23,070 1303 00:59:23,070 --> 00:59:26,900 در حال حاضر این نوع از بخشی از مشکل است. 1304 00:59:26,900 --> 00:59:27,960 هر کسی یک حدس؟ 1305 00:59:27,960 --> 00:59:34,160 1306 00:59:34,160 --> 00:59:34,690 >> باشه. 1307 00:59:34,690 --> 00:59:37,830 بنابراین برای اولین بار، ما چگونه حتی دسترسی داشته باشید؟ 1308 00:59:37,830 --> 00:59:41,610 چگونه ما حتی بررسی برای اولین بار و یا دسترسی به یک عنصر در آرایه؟ 1309 00:59:41,610 --> 00:59:42,920 چگونه ما انجام این کار؟ 1310 00:59:42,920 --> 00:59:47,120 نماد استفاده می کنیم برای انجام این کار چیست؟ 1311 00:59:47,120 --> 00:59:50,920 نام این آرایه آنچه به نام؟ 1312 00:59:50,920 --> 00:59:52,400 آن را به نام بازدید کنندگان، درست است؟ 1313 00:59:52,400 --> 00:59:54,850 >> به یاد داشته باشید، هر رشته است که همیشه یک آرایه. 1314 00:59:54,850 --> 00:59:58,210 بنابراین براکت من، درست است؟ 1315 00:59:58,210 --> 01:00:01,360 از آنجا که ارزش فعلی است و یا ارزش شاخص ما در حال چک کردن. 1316 01:00:01,360 --> 01:00:05,156 و ما قصد داریم به مجموعه ای که برابر to-- ما می خواهیم یک مقدار کوچک، درست است؟ 1317 01:00:05,156 --> 01:00:07,530 ما می خواهیم که به نوبه خود lower-- با عرض پوزش، ما می خواهیم بزرگ. 1318 01:00:07,530 --> 01:00:10,014 ما می خواهیم به نوبه خود با حروف کوچک ارزش را به یک بزرگ. 1319 01:00:10,014 --> 01:00:11,805 و به این ترتیب like-- من متاسفم، اسم شما چیست؟ 1320 01:00:11,805 --> 01:00:12,580 >> مخاطبان: هایدی. 1321 01:00:12,580 --> 01:00:12,940 >> ANDI PENG: با عرض پوزش. 1322 01:00:12,940 --> 01:00:13,280 >> مخاطبان: هایدی. 1323 01:00:13,280 --> 01:00:13,988 >> ANDI PENG: هایدی. 1324 01:00:13,988 --> 01:00:15,850 مانند هایدی گفت در ابتدا، ما احتمالا 1325 01:00:15,850 --> 01:00:20,330 نیاز به رفتن به the-- ما احتمالا باید به تفریق 1326 01:00:20,330 --> 01:00:22,630 32 از هر charc است که، درست است؟ 1327 01:00:22,630 --> 01:00:24,680 از آنجا که در ASCII جدول، تفاوت 1328 01:00:24,680 --> 01:00:27,790 بین یک حرف کوچک و حرف بزرگ 32 است. 1329 01:00:27,790 --> 01:00:31,290 بنابراین، هنگامی که ما در حال انجام این کار، ما احتمالا رفتن به می خواهم به تفریق 32، درست است؟ 1330 01:00:31,290 --> 01:00:33,910 >> بنابراین ما در حال رفتن به بازدید کنندگان من. 1331 01:00:33,910 --> 01:00:37,590 1332 01:00:37,590 --> 01:00:41,200 آیا همه درک کنند که چرا من که؟ 1333 01:00:41,200 --> 01:00:45,760 از آنجا که در حال حاضر، در آرایه، ما در حال چک کردن شاخص 0، درست است؟ 1334 01:00:45,760 --> 01:00:49,190 و در شاخص 0 از رشته، که برای اولین بار شخصیت است. 1335 01:00:49,190 --> 01:00:51,820 و است که شخصیت ما در حال رفتن به فرض آن را کوچک. 1336 01:00:51,820 --> 01:00:55,980 اگر ما می خواهیم آن را به حروف بزرگ، ما به تفریق 32 از ارزش خود را، 1337 01:00:55,980 --> 01:00:58,620 چرا که در ASCII ما جدول، این که چگونه ما آن را دریافت 1338 01:00:58,620 --> 01:01:01,600 به بعدی مربوط ارزش است که آن را بزرگ می سازد. 1339 01:01:01,600 --> 01:01:03,714 آیا همه درک کنند که؟ 1340 01:01:03,714 --> 01:01:04,213 آره. 1341 01:01:04,213 --> 01:01:06,530 >> رسید می توانید هم انجام حروف کوچک minus-- 1342 01:01:06,530 --> 01:01:08,080 >> ANDI PENG: آره، به طوری که در واقع واقعا خوب است. 1343 01:01:08,080 --> 01:01:10,455 من قصد دارم تا دوباره به که سوال پس از ما این کار را. 1344 01:01:10,455 --> 01:01:11,060 آره. 1345 01:01:11,060 --> 01:01:13,940 و سپس اگر من می خواهم ببینید که چه خبر است، 1346 01:01:13,940 --> 01:01:16,180 من احتمالا رفتن به می خواهید برای چاپ، درست است؟ 1347 01:01:16,180 --> 01:01:19,930 کسی به من بگویید چه چاپ در اینجا. 1348 01:01:19,930 --> 01:01:29,160 >> مخاطبان: تابع () printf درصد ج بک اسلش [نامفهوم]. 1349 01:01:29,160 --> 01:01:33,570 که ارزش [نامفهوم] بازدید کنندگان من است. 1350 01:01:33,570 --> 01:01:34,614 >> ANDI PENG: S من، ببخشید؟ 1351 01:01:34,614 --> 01:01:35,530 مخاطبان: [نامفهوم]. 1352 01:01:35,530 --> 01:01:38,550 1353 01:01:38,550 --> 01:01:39,550 ANDI PENG: من نمی دانم. 1354 01:01:39,550 --> 01:01:40,600 شما چی فکر میکنید؟ 1355 01:01:40,600 --> 01:01:44,016 >> مخاطبان: خوب، من would not من حدس می زنم من نمی bring-- 1356 01:01:44,016 --> 01:01:46,944 من آن را را در داخل، به دلیل [نامفهوم]. 1357 01:01:46,944 --> 01:01:49,726 1358 01:01:49,726 --> 01:01:51,392 ANDI PENG: آه، شما انجام می شده اند که؟ 1359 01:01:51,392 --> 01:01:53,867 مخاطبان: آره. 1360 01:01:53,867 --> 01:01:56,700 ANDI PENG: اجازه دهید آن را راه ترک آن است، و من به همین دلیل بعد توضیح خواهیم داد. 1361 01:01:56,700 --> 01:01:58,533 به یاد داشته باشید، حتی زمانی که شما یک دارنده محل، 1362 01:01:58,533 --> 01:02:00,701 شما می خواهید برای قرار دادن پرانتز در اطراف آن. 1363 01:02:00,701 --> 01:02:01,200 خیلی خوب. 1364 01:02:01,200 --> 01:02:04,810 بنابراین این باید در اینجا یک تابع جامد باشد. 1365 01:02:04,810 --> 01:02:06,370 اجازه دهید آن را اجرا کنید و ببینید که اگر آن را کامپایل. 1366 01:02:06,370 --> 01:02:08,750 را بالا. 1367 01:02:08,750 --> 01:02:09,250 آه اوه. 1368 01:02:09,250 --> 01:02:12,030 1369 01:02:12,030 --> 01:02:13,340 که به نظر خیلی خوب است. 1370 01:02:13,340 --> 01:02:14,507 چرا این اتفاق می افتد؟ 1371 01:02:14,507 --> 01:02:17,340 همانطور که با هر خطا، شما می خواهید برای رفتن تماس و با یکی از اولین شروع، 1372 01:02:17,340 --> 01:02:20,630 چون به طور معمول باعث یک خطا تعداد زیادی از خطاهای دیگر پس از آن. 1373 01:02:20,630 --> 01:02:26,700 اینجا ما می بینیم upper.c: 18: 25، که می گوید من در این برنامه به نام upper.c، 1374 01:02:26,700 --> 01:02:33,800 در خط 18، خطای طور ضمنی اعلام کتابخانه از توابع strlen با نوع 1375 01:02:33,800 --> 01:02:36,330 اه unassigned--، من نمی دانم آنچه که در پس از آن. 1376 01:02:36,330 --> 01:02:39,990 >> همه آن را به من گفتن در حال حاضر است این چیزی است که رفتن در strlen. 1377 01:02:39,990 --> 01:02:43,520 و کامپیوتر اشتباه است، چرا آن را مانند، من نمی دانم که چه strlen است؟ 1378 01:02:43,520 --> 01:02:45,520 چه که احتمالا به شما بگویم شما از دست رفته؟ 1379 01:02:45,520 --> 01:02:46,490 >> مخاطبان: شما از دست رفته [نامفهوم]. 1380 01:02:46,490 --> 01:02:47,630 >> ANDI PENG: حق با شماست. 1381 01:02:47,630 --> 01:02:49,510 دقیقا. 1382 01:02:49,510 --> 01:02:52,140 پس این است که آن را مهم است مطمئن شوید 1383 01:02:52,140 --> 01:02:56,970 که هر تابع شما در استفاده از خود را کد است که با داشتن هدر درست 1384 01:02:56,970 --> 01:02:59,660 فایل برای کتابخانه، و یا دیگری شما در حال رفتن به گرفتن مقدار زیادی از خطاهای 1385 01:02:59,660 --> 01:03:01,150 و کد خود را در حال رفتن بدانید که چه چیزی در جریان است. 1386 01:03:01,150 --> 01:03:03,050 بنابراین ما در حال رفتن به شامل string.h در اینجا. 1387 01:03:03,050 --> 01:03:06,270 >> حالا وقتی که ما سعی می کنیم به کامپایل بالا. 1388 01:03:06,270 --> 01:03:08,410 درست کامپایل. 1389 01:03:08,410 --> 01:03:09,960 بیایید این برنامه را اجرا کنید. 1390 01:03:09,960 --> 01:03:12,000 بنابراین چیزی در حروف کوچک تایپ کنید. 1391 01:03:12,000 --> 01:03:14,920 شما بچه ها چه می خواهید به نوع؟ 1392 01:03:14,920 --> 01:03:16,546 فریاد از چیزی. 1393 01:03:16,546 --> 01:03:17,920 همه حق است، چارلی فقط در راه می رفت. 1394 01:03:17,920 --> 01:03:18,990 ما نام چارلی است را تایپ کنید. 1395 01:03:18,990 --> 01:03:21,670 1396 01:03:21,670 --> 01:03:22,840 >> چارلی در کوچک. 1397 01:03:22,840 --> 01:03:27,742 و امیدوارم، امیدوارم، این است رفتن به فریاد و تف 1398 01:03:27,742 --> 01:03:28,575 چارلی در بزرگ. 1399 01:03:28,575 --> 01:03:30,830 ماهواره! 1400 01:03:30,830 --> 01:03:33,430 هر کس درک کنند که چگونه من در مورد حل که رفت؟ 1401 01:03:33,430 --> 01:03:36,190 راه که من می توانم دستکاری با استفاده از اعداد صحیح 1402 01:03:36,190 --> 01:03:39,410 برای حل چیزی است که من می خواهم به انجام این کار در رشته ها، 1403 01:03:39,410 --> 01:03:44,390 به دلیل شخصیت ها و اعداد صحیح می توانید در به همان شیوه به اشاره 1404 01:03:44,390 --> 01:03:45,540 نقشه برداری ASCII. 1405 01:03:45,540 --> 01:03:52,890 >> بنابراین برای رفتن به نقطه خود را، اگر من خواستم برای قرار دادن در اینجا به جای 32 1406 01:03:52,890 --> 01:03:58,959 حروف بزرگ منهای فقط مانند کوچک که، که به همان اندازه که کار به عنوان خوب، 1407 01:03:58,959 --> 01:04:01,750 چرا که به سادگی فقط تفاوت بین این دو مقدار است. 1408 01:04:01,750 --> 01:04:09,570 اگر من می خواهم به این چارلی again--. 1409 01:04:09,570 --> 01:04:10,320 وای نه. 1410 01:04:10,320 --> 01:04:11,820 من فکر می کنم ما راه را اشتباه رفت، آره؟ 1411 01:04:11,820 --> 01:04:13,260 >> مخاطبان: [نامفهوم] کوچک. 1412 01:04:13,260 --> 01:04:14,260 >> ANDI PENG: شما بروید وجود دارد. 1413 01:04:14,260 --> 01:04:22,380 1414 01:04:22,380 --> 01:04:22,880 بله. 1415 01:04:22,880 --> 01:04:24,920 و تف به Charly. 1416 01:04:24,920 --> 01:04:28,020 بنابراین مراقب باشید زمانی که می شود شما در حال کم کردن ارزش 1417 01:04:28,020 --> 01:04:30,400 به یاد داشته باشید که یکی از بیشتر از دیگری است. 1418 01:04:30,400 --> 01:04:35,220 به عنوان مثال، تا اینجا من را فراموش کرده که حروف کوچک است که در واقع 1419 01:04:35,220 --> 01:04:38,540 بیشتر از A. بزرگ بنابراین، هنگامی که من سعی کردم به آنها راه دیگری در تفریق 1420 01:04:38,540 --> 01:04:40,600 اطراف، من منفی 32 است. 1421 01:04:40,600 --> 01:04:42,800 و کامپیوتر من مانند بود، من نمی دانم چه چیزی است. 1422 01:04:42,800 --> 01:04:45,810 این احتمال فقط در برخی از تصادفی ارزش این است که خیلی خوب نیست. 1423 01:04:45,810 --> 01:04:48,760 و بنابراین مطمئن شوید که شما کم کردن در طول صحیح 1424 01:04:48,760 --> 01:04:52,831 برای پیدا کردن شخصیت شما می خواهید. 1425 01:04:52,831 --> 01:04:53,330 باشه. 1426 01:04:53,330 --> 01:04:58,550 کسی در مورد چگونه ما اشتباه در مورد نوشتن این تابع رفت؟ 1427 01:04:58,550 --> 01:04:59,180 باشه. 1428 01:04:59,180 --> 01:05:04,830 پس در واقع، یک تابع در حال حاضر در کتابخانه به نام ctype.h وجود دارد. 1429 01:05:04,830 --> 01:05:06,417 ctype.h نام کتابخانه می باشد. 1430 01:05:06,417 --> 01:05:08,500 این تابع است در حال حاضر برای شما نوشته شده است. 1431 01:05:08,500 --> 01:05:10,820 آن را به بالا نامیده می شود. 1432 01:05:10,820 --> 01:05:13,027 >> و به همین ترتیب برای اهداف این pset، شما در حال رفتن 1433 01:05:13,027 --> 01:05:15,860 برای پیدا کردن که شما واقعا می خواهید به استفاده از بسیاری از توابع موجود 1434 01:05:15,860 --> 01:05:17,390 در کتابخانه ctype است. 1435 01:05:17,390 --> 01:05:21,040 به بالا، به کاهش، بالا است، lower-- کسانی که تمام توابع 1436 01:05:21,040 --> 01:05:24,914 که شما قادر خواهید بود به استفاده از بسیار، بسیار به سرعت در کد خود را که 1437 01:05:24,914 --> 01:05:26,080 دقیقا همان چیزی است این کار را. 1438 01:05:26,080 --> 01:05:28,941 ما نوشت: چگونه برای تبدیل یک رشته به حروف بزرگ. 1439 01:05:28,941 --> 01:05:31,440 اما این است که در واقع کد که کسی دیگری نوشته شده است 1440 01:05:31,440 --> 01:05:33,800 و شما می توانید دسترسی داشته باشید از طریق یک تابع متفاوت است. 1441 01:05:33,800 --> 01:05:34,300 آره؟ 1442 01:05:34,300 --> 01:05:39,570 >> رسید بنابراین شما فقط کپی کردن یک در وجود دارد و آن را برای هر حرف تنها؟ 1443 01:05:39,570 --> 01:05:42,070 >> ANDI PENG: آره، چرا که من نمی در مورد ارزش های مراقبت. 1444 01:05:42,070 --> 01:05:44,540 من فقط مراقبت که تفاوت بین آنها 32 است، درست است؟ 1445 01:05:44,540 --> 01:05:48,210 تفاوت بین حروف کوچک B و B بزرگ است 32. 1446 01:05:48,210 --> 01:05:50,860 و تفاوت بین C و بزرگ C است که همیشه 32. 1447 01:05:50,860 --> 01:05:53,235 >> من فقط باید به مورد مراقبت تفاوت بین این دو، 1448 01:05:53,235 --> 01:05:56,666 چون همه حروف پیروی از الگوی همان، درست است؟ 1449 01:05:56,666 --> 01:05:58,540 اگر من تفاوت بین یکی از آنها، 1450 01:05:58,540 --> 01:06:01,050 من می دانم که چه تفاوت بین همه آنها است. 1451 01:06:01,050 --> 01:06:01,740 سوال خوبی بود. 1452 01:06:01,740 --> 01:06:04,090 آره. 1453 01:06:04,090 --> 01:06:06,660 همه خوب است؟ 1454 01:06:06,660 --> 01:06:09,080 باشه. 1455 01:06:09,080 --> 01:06:09,580 OOP. 1456 01:06:09,580 --> 01:06:14,380 1457 01:06:14,380 --> 01:06:15,270 >> باشه. 1458 01:06:15,270 --> 01:06:20,310 بنابراین مفهوم دیگری که رفتن به بسیار مفید است که شما 1459 01:06:20,310 --> 01:06:22,570 همچنان به توسعه کد خود را در این ایده این است 1460 01:06:22,570 --> 01:06:25,430 ایجاد توابع یا انتزاع. 1461 01:06:25,430 --> 01:06:28,479 بنابراین در حال حاضر، ما همه جبر گرفته شده است. 1462 01:06:28,479 --> 01:06:31,770 در جبر، شما آموزش داده می شود وجود دارد این است که این چیزی که فوق العاده به نام یک تابع 1463 01:06:31,770 --> 01:06:35,300 ماشین، که در آن اگر شما ورودی یک نوع شماره، 1464 01:06:35,300 --> 01:06:38,720 آن را از طریق این تابع اجرا می شود فوق العاده و بیرون میآید خروجی های مختلف، درست است؟ 1465 01:06:38,720 --> 01:06:42,220 در کد، همین اتفاق می افتد در هر نوع تابع. 1466 01:06:42,220 --> 01:06:48,230 >> بنابراین من می تواند از لحاظ جسمی ارسال در بدن من از کد من 1467 01:06:48,230 --> 01:06:52,357 بیانیه اصلی که در واقع نشانی هر بدن از کد انجام شده است. 1468 01:06:52,357 --> 01:06:54,940 اما در خارج از آن، من نیز می تواند ارسال بسیاری از توابع مختلف 1469 01:06:54,940 --> 01:06:56,320 که انجام بسیاری از چیزهای مختلف. 1470 01:06:56,320 --> 01:06:58,570 به عنوان مثال، ما در حال حاضر شروع به استفاده از برخی از آنها. 1471 01:06:58,570 --> 01:07:00,610 Printf-- است که یک تابع است که کسی دیگر 1472 01:07:00,610 --> 01:07:02,870 در حال حاضر نوشته شده است که ما می توانیم در کد ما تماس بگیرید. 1473 01:07:02,870 --> 01:07:05,410 به upper-- در این مورد، upper-- تابع دیگری است 1474 01:07:05,410 --> 01:07:07,330 ما نوشته شده است که ما می توانید در کد ما تماس بگیرید. 1475 01:07:07,330 --> 01:07:09,520 و به این ترتیب من حدس می زنم چرا ما حتی توابع؟ 1476 01:07:09,520 --> 01:07:12,100 چرا ما فقط آن را با صدای تلپ همه در همان خط از کد؟ 1477 01:07:12,100 --> 01:07:13,730 این باعث می شود آن را برای همه آسان است. 1478 01:07:13,730 --> 01:07:19,200 >> خب، استدلال پشت که است، اول از همه، سازمان. 1479 01:07:19,200 --> 01:07:21,880 این واقعا آزار دهنده است که از طریق کد کسی 1480 01:07:21,880 --> 01:07:25,110 و یک تابع مانند printf است. 1481 01:07:25,110 --> 01:07:28,570 اگر شما بچه ها در واقع می دانستند چه تابع printf مستلزم به نوشتن، 1482 01:07:28,570 --> 01:07:30,530 آن را، مانند، 1000 خط کد. 1483 01:07:30,530 --> 01:07:32,357 >> اگر هر بار که من می خواستم به printf چیزی، 1484 01:07:32,357 --> 01:07:35,440 من تا به حال 1،000 ارسال خط کد، خواهد بود که واقعا آزار دهنده است به خواندن، 1485 01:07:35,440 --> 01:07:36,290 درست؟ 1486 01:07:36,290 --> 01:07:38,860 به همین دلیل است که ما فقط ایجاد این تابع انتزاعی 1487 01:07:38,860 --> 01:07:41,670 که ما در حال حاضر کسی دیگری در جایی دیگر نوشته شده است. 1488 01:07:41,670 --> 01:07:44,920 و هر بار که ما نیاز به استفاده از آن در کد ما، ما فقط باید بگویم printf است. 1489 01:07:44,920 --> 01:07:48,070 و این است که قادر به استفاده از تابع شخص دیگری در کد ما نوشته شده است. 1490 01:07:48,070 --> 01:07:51,020 این باعث می شود آن را آسان تر سازمانی به خواندن کد. 1491 01:07:51,020 --> 01:07:53,460 >> دوم، آن را ساده سازی است. 1492 01:07:53,460 --> 01:07:56,750 این ساده مراحل ما را به حل مشکل ما. 1493 01:07:56,750 --> 01:07:59,300 تابع () printf، توابع مانند printf، توابع مانند به بالا 1494 01:07:59,300 --> 01:08:03,560 تمام چیزهایی که به ما اجازه می دهد تا هستند ساده کد ما را پس از آن آسان تر است. 1495 01:08:03,560 --> 01:08:05,830 و آخرین چیزی که قابلیت استفاده مجدد است. 1496 01:08:05,830 --> 01:08:08,710 >> بنابراین این واقعیت است که ما یک تابع به نام تابع () printf 1497 01:08:08,710 --> 01:08:11,990 که ما می توانیم بسیاری از پاسخ های مختلف بار و اجازه می دهد تا آن را به قابل استفاده مجدد. 1498 01:08:11,990 --> 01:08:14,980 اگر من به تابع () printf ارسال، من فقط آن را ارسال کند. 1499 01:08:14,980 --> 01:08:16,439 تنها در یک مکان است که وجود دارد. 1500 01:08:16,439 --> 01:08:19,890 اگر من می خواستم آن را دوباره، من می خواهم باید به کپی و چسباندن همه از آن 1501 01:08:19,890 --> 01:08:21,760 به خط دوم من از کد. 1502 01:08:21,760 --> 01:08:24,880 به همین دلیل اگر ما یک تابع ایجاد که در خارج از اصلی ما وجود دارد، 1503 01:08:24,880 --> 01:08:26,880 ما فقط می توانید پاسخ به آن و استفاده مجدد از آن را هر زمان 1504 01:08:26,880 --> 01:08:29,604 ما نیاز به طوری که آن را بسیار ساده تر برای ما به عنوان برنامه به نوشتن. 1505 01:08:29,604 --> 01:08:32,220 1506 01:08:32,220 --> 01:08:35,549 >> بنابراین راه است که ما در واقع ارسال یک تابع بسیار مشابه است، درست است؟ 1507 01:08:35,549 --> 01:08:37,590 این نوع از اولین به عنوان مثال در که ما 1508 01:08:37,590 --> 01:08:42,830 یک تابع را در یک سبک متفاوت از اعتبار اصلی اعضای هیات ما است. 1509 01:08:42,830 --> 01:08:46,779 در این مورد، اگر من می خواستم ارسال یک تابع به نام Q، درست است؟ 1510 01:08:46,779 --> 01:08:49,370 >> و مقدار int در اینجا است که همه به من گفتن، 1511 01:08:49,370 --> 01:08:51,649 چه من می خواهم این عمل به بازگشت به من؟ 1512 01:08:51,649 --> 01:08:54,484 اگر من می خواهم به مکعب یک عدد صحیح، من می خواهم به ورودی. 1513 01:08:54,484 --> 01:08:55,525 این پارامترها می باشد. 1514 01:08:55,525 --> 01:08:58,490 من قصد دارم به ورودی یک مقدار از نوع int. 1515 01:08:58,490 --> 01:09:01,300 و من قصد دارم به بازگشت یکی دیگر از ارزش نوع int است. 1516 01:09:01,300 --> 01:09:03,050 و در اینجا، به عنوان شما می بینید، همه من انجام 1517 01:09:03,050 --> 01:09:07,300 است هر ورودی گفتگوی من است به عنوان خروجی و بازگشت آن است. 1518 01:09:07,300 --> 01:09:10,790 >> بنابراین تمام این تابع انجام می دهد نوعی از عدد صحیح طول می کشد. 1519 01:09:10,790 --> 01:09:14,979 این ضرب شده خود را دو بار به طوری که آن را در اثر مکعب. 1520 01:09:14,979 --> 01:09:17,729 و سپس آن را می گرداند هر چه که خروجی است. 1521 01:09:17,729 --> 01:09:20,540 بنابراین در این مورد، آن را دو خط از کد است که ما تا به حال به ارسال اضافی. 1522 01:09:20,540 --> 01:09:22,880 اما اگر ما می خواستیم به پاسخ بر این چندین بار، 1523 01:09:22,880 --> 01:09:26,210 آن را بسیار آسان تر برای تایپ که خط راست در اینجا است که در مکعب از 1524 01:09:26,210 --> 01:09:28,830 باید از طریق چندین بار بروید. 1525 01:09:28,830 --> 01:09:34,180 >> بنابراین راه است که اساسا هر قالب بندی برای هر نوع تابع 1526 01:09:34,180 --> 01:09:36,420 در حال رفتن به وجود مثل اینجا است. 1527 01:09:36,420 --> 01:09:38,659 بنابراین ما باید نام تابع. 1528 01:09:38,659 --> 01:09:39,950 در این مورد، آن را مکعب نامیده می شود. 1529 01:09:39,950 --> 01:09:42,033 و ما نام آن را به خاطر مکعب از آن آسان است به یاد داشته باشید. 1530 01:09:42,033 --> 01:09:44,220 شما می توانید نام آن مربع و آن را در واقع می تواند نبات شود. 1531 01:09:44,220 --> 01:09:45,500 مهم نیست. 1532 01:09:45,500 --> 01:09:48,020 فقط یک نام است که شما اختصاص عملکرد خود را. 1533 01:09:48,020 --> 01:09:51,660 >> این حق در اینجا، هوشمند، است که نوع پارامتر شما نیاز دارید. 1534 01:09:51,660 --> 01:09:54,149 پس چه چیزی این تابع نیاز به منظور به کار؟ 1535 01:09:54,149 --> 01:09:55,990 خوب، آن نیاز به یک ورودی می باشد. 1536 01:09:55,990 --> 01:09:56,704 من آن را به نام ورودی. 1537 01:09:56,704 --> 01:09:58,120 شما می توانید هر نامی که می خواهید. 1538 01:09:58,120 --> 01:10:00,500 اما من نیاز به چیزی از نوع int. 1539 01:10:00,500 --> 01:10:03,730 آن را در حقیقت برای اجرای هر آنچه در داخل از اینجا، 1540 01:10:03,730 --> 01:10:04,990 بدن از تابع. 1541 01:10:04,990 --> 01:10:07,847 و پس از آن نوع بازگشت در اینجا، این int-- 1542 01:10:07,847 --> 01:10:09,680 تمام آن را به من گفتن است که این تابع این است 1543 01:10:09,680 --> 01:10:11,250 رفتن به بازگشت به من در نوع int است. 1544 01:10:11,250 --> 01:10:14,460 بنابراین آن را به در یک int، و آن را به شما از نوع int است. 1545 01:10:14,460 --> 01:10:17,750 آیا همه درک کنند که چگونه قالب بندی این نوع کار می کند؟ 1546 01:10:17,750 --> 01:10:18,250 خنک. 1547 01:10:18,250 --> 01:10:24,690 1548 01:10:24,690 --> 01:10:25,740 >> باشه. 1549 01:10:25,740 --> 01:10:31,770 بنابراین نمی شود نگران به نظر می رسد اگر این حق انتزاعی کمی در حال حاضر. 1550 01:10:31,770 --> 01:10:33,450 این چیزی است که ما در مورد صحبت است. 1551 01:10:33,450 --> 01:10:36,310 ما را در عمیق تر شیرجه رفتن بعد از آن در این دوره است. 1552 01:10:36,310 --> 01:10:41,170 راه که هر نوع سطح بالاتر انتزاع از این چیزها کار 1553 01:10:41,170 --> 01:10:43,530 این است که در حافظه، در کامپیوتر شما، همه چیز 1554 01:10:43,530 --> 01:10:47,660 در این نوع ذخیره شده از پشته، باید بگویم. 1555 01:10:47,660 --> 01:10:49,070 >> بنابراین تا در بالای صفحه. 1556 01:10:49,070 --> 01:10:50,861 من نمی دانم اگر شما بچه ها می تواند که به خوبی ببینید. 1557 01:10:50,861 --> 01:10:52,590 من سعی کنید به زوم. 1558 01:10:52,590 --> 01:10:55,111 در اینجا در بالا، ما به متن فیزیکی 1559 01:10:55,111 --> 01:10:57,860 از آنچه که کامپیوتر interpreting-- است تمام صفر و آنهایی که 1560 01:10:57,860 --> 01:10:59,540 در کامپیوتر ما وجود داشته باشد. 1561 01:10:59,540 --> 01:11:03,390 و پس از آن ما را به مقداردهی اولیه داده ها و مقدار دهی نکردن داده ها، 1562 01:11:03,390 --> 01:11:05,340 آنچه که ما از متغیر های جهانی است. 1563 01:11:05,340 --> 01:11:08,200 بنابراین متغیرهای است که وجود دارد در تمام برنامه 1564 01:11:08,200 --> 01:11:11,815 و در سراسر کل خود را، در اصل، کد. 1565 01:11:11,815 --> 01:11:13,940 هیچ نگرانی اگر شما بچه ها نوع مشخص نیست در این. 1566 01:11:13,940 --> 01:11:16,060 آن را واقعا مهم حال حاضر نیست. 1567 01:11:16,060 --> 01:11:18,680 >> و بعد ما چه به نام یک پشته در پشته. 1568 01:11:18,680 --> 01:11:21,140 فکر می کنم از یک پشته به معنای واقعی کلمه به عنوان درست مانند یک پشته از همه چیز، 1569 01:11:21,140 --> 01:11:23,098 یک پشته از مختلف چیزهایی که در بالا تحت فشار قرار دادند 1570 01:11:23,098 --> 01:11:27,870 هر یک از دیگر که ذخیره های مختلف متغیرها و نحو در کد خود را. 1571 01:11:27,870 --> 01:11:31,460 و پس از آن در اینجا در پایین، ما باید متغیر های محیط زیست 1572 01:11:31,460 --> 01:11:35,480 از آنچه شما در حال اجرای در فقط خط کوچک خود را از کد. 1573 01:11:35,480 --> 01:11:40,510 >> و ما فقط رفتن به زوم در در بخشی پشته واقعی. 1574 01:11:40,510 --> 01:11:43,880 بنابراین در اینجا، اگر ما به زوم در تنها بر این منطقه از پشته، 1575 01:11:43,880 --> 01:11:45,140 این چیزی است که به نظر می رسد. 1576 01:11:45,140 --> 01:11:48,590 و این در واقع بسیار مهم زمانی که شما بچه در مورد توابع صحبت می کنید، 1577 01:11:48,590 --> 01:11:52,330 توجه داشته باشید که به دلیل حافظه را از کامپیوتر شما 1578 01:11:52,330 --> 01:11:55,600 ذخیره سازی متغیرهای و توابع 1579 01:11:55,600 --> 01:11:58,790 و پارامترهای هر دو خود را عملکرد و متغیرهای اصلی خود را 1580 01:11:58,790 --> 01:12:00,190 در مکان های مختلف. 1581 01:12:00,190 --> 01:12:03,390 >> بنابراین در حال حاضر، اصلی است عملکرد واقعی 1582 01:12:03,390 --> 01:12:04,780 که شما در حال اجرا در یک کد. 1583 01:12:04,780 --> 01:12:08,050 شما باید پارامترهای خود را در اینجا ذخیره شده و متغیرهای محلی خود را در اینجا ذخیره می شود. 1584 01:12:08,050 --> 01:12:12,270 متغیر محلی فقط به این معنی هر متغیر که تنها در آن تابع وجود داشته باشد. 1585 01:12:12,270 --> 01:12:15,610 و در بالای آن، شما این را عملکرد جداگانه به نام مکعب. 1586 01:12:15,610 --> 01:12:18,240 شما که پارامترهای است و همچنین کسانی که مردم محلی است. 1587 01:12:18,240 --> 01:12:21,540 >> و به همین دلیل شما می توانید در اینجا مشاهده کنید این است که چه 1588 01:12:21,540 --> 01:12:25,030 اتفاقی می افتد زمانی طول می کشد در یک مکعب ارزش از عملکرد اصلی خود را 1589 01:12:25,030 --> 01:12:27,640 این است که در واقع آن را کپی کردن که بیش از. 1590 01:12:27,640 --> 01:12:31,470 بنابراین اگر من می خواستم به مکعب 2 و بازگشت 8، 2 1591 01:12:31,470 --> 01:12:33,730 است که در واقع وارد به عنوان یک پارامتر و آن را 1592 01:12:33,730 --> 01:12:37,690 کپی بیش از به طوری که شما آن را موجود در دو مکان مختلف در حافظه است. 1593 01:12:37,690 --> 01:12:40,520 و شما باید بسیار مراقب باشید در به یاد آوردن که یکی از آن 1594 01:12:40,520 --> 01:12:42,520 شما در واقع دستکاری. 1595 01:12:42,520 --> 01:12:47,170 و به عنوان مثال از آنچه اتفاق افتاده خواهد بود که بسیار، بسیار بد 1596 01:12:47,170 --> 01:12:48,050 وجود دارد در اینجا ببینید. 1597 01:12:48,050 --> 01:12:50,760 1598 01:12:50,760 --> 01:12:58,650 >> بنابراین در اینجا، من کردم، در تئوری، یک برنامه در اینجا، یک تابع اصلی 1599 01:12:58,650 --> 01:13:02,180 که من اعلام یک int x برابر 1. 1600 01:13:02,180 --> 01:13:04,505 من اعلام یکی دیگر از اعضای هیات y برابر 2. 1601 01:13:04,505 --> 01:13:06,380 و سپس من آن در حال اجرا از طریق این تابع 1602 01:13:06,380 --> 01:13:09,647 به نام مبادله، که در آن من فرض کنیم که آن را مبادله دو ارزش. 1603 01:13:09,647 --> 01:13:11,480 و پس از آن من قصد دارم به آنها را چاپ، درست است؟ 1604 01:13:11,480 --> 01:13:13,220 این چیزی است که من می خواهم این برنامه را انجام دهد. 1605 01:13:13,220 --> 01:13:15,180 >> بنابراین اجازه دهید پایین آمده و نگاهی به. 1606 01:13:15,180 --> 01:13:18,200 بنابراین اگر من در واقع ارسال نامه های مختلف تابع، به عنوان شما می توانید ببینید، 1607 01:13:18,200 --> 01:13:19,750 ما باید تابع اصلی ما در اینجا. 1608 01:13:19,750 --> 01:13:22,860 و بعد ما ما تابع دوم در اینجا. 1609 01:13:22,860 --> 01:13:24,520 مبادله اعتبار ساقط است. 1610 01:13:24,520 --> 01:13:27,090 از درجه اعتبار ساقط فقط به این معنی است که آن را رفتن به بازگشت هر چیزی. 1611 01:13:27,090 --> 01:13:28,930 نام تابع است به نام مبادله، و آن را 1612 01:13:28,930 --> 01:13:33,730 رفتن به دو متغیر مصرف، اعضای هیات A و اعضای هیات ب، از خود [نامفهوم] تابع. 1613 01:13:33,730 --> 01:13:39,010 >> بنابراین اساسا در اینجا، ما عبور x و y به این تابع. 1614 01:13:39,010 --> 01:13:40,760 و اگر ما به بود ایجاد this-- بنابراین ما می خواهیم 1615 01:13:40,760 --> 01:13:42,420 برای ایجاد یک مقدار موقت، درست است؟ 1616 01:13:42,420 --> 01:13:43,930 ما قصد داریم به اختصاص که به یک. 1617 01:13:43,930 --> 01:13:45,388 و پس از آن است که به حال برابر ب. 1618 01:13:45,388 --> 01:13:47,660 و B است که به پشت که در آن ارزش های موقتی بود، 1619 01:13:47,660 --> 01:13:51,070 است که، چرا که وقتی شما می خواهید به مبادله چیز، 1620 01:13:51,070 --> 01:13:52,320 شما نمی توانید فقط دوست مبادله آنها. 1621 01:13:52,320 --> 01:13:54,360 >> شما باید برای حفظ یکی از در اینجا به طوری که آن را به یاد 1622 01:13:54,360 --> 01:13:56,485 چه چیزی است، چرا که یک بار شما مبادله یک، شما را فراموش کرده ام 1623 01:13:56,485 --> 01:13:58,200 که ارزش اصلی بود، درست است؟ 1624 01:13:58,200 --> 01:14:00,990 بنابراین در تئوری، این برنامه باید کار کند، درست است؟ 1625 01:14:00,990 --> 01:14:03,630 اگر من می خواستم به مبادله دو، آنها باید مبادله. 1626 01:14:03,630 --> 01:14:05,490 بنابراین اجازه دهید آن را اجرا کنید و ببینید که اگر آن کار می کند. 1627 01:14:05,490 --> 01:14:11,130 1628 01:14:11,130 --> 01:14:16,940 >> به طوری که شما می توانید ببینید بچه ها، X یک بار 1 و y یک بار 2 بود. 1629 01:14:16,940 --> 01:14:21,475 و اگر من آن را چاپ کنید، X است که هنوز 1 و y است 2. 1630 01:14:21,475 --> 01:14:25,970 هوم، این برنامه به نظر نمی رسد به کار راه است که من می خواهم آن را به کار. 1631 01:14:25,970 --> 01:14:29,950 آیا کسی می خواهید را به یک شات در حدس زدن این که چرا این اتفاق می افتد؟ 1632 01:14:29,950 --> 01:14:34,430 این است که با راه که همه چیز متفاوت 1633 01:14:34,430 --> 01:14:38,172 ذخیره شده در مکان های مختلف در حافظه است. 1634 01:14:38,172 --> 01:14:39,377 >> باشه. 1635 01:14:39,377 --> 01:14:41,960 پس شما بچه ها لازم نیست که به نگرانی در بیش از حد در مورد این در حال حاضر. 1636 01:14:41,960 --> 01:14:46,610 اما می دانم که مکعب های محلی متغیرهای a و b بود، 1637 01:14:46,610 --> 01:14:49,230 چرا که در اینجا در تابع ما، ما A و B اعلام کرده ام 1638 01:14:49,230 --> 01:14:53,570 به عنوان متغیر است که وجود دارد در مکعب، که تابع. 1639 01:14:53,570 --> 01:14:59,490 اما به عنوان شما می توانید، پارامترهای دید که آن را مصرف در در اینجا ذخیره شده بودند. 1640 01:14:59,490 --> 01:15:01,370 اما ما در واقع نمی بازگشت هر چیزی. 1641 01:15:01,370 --> 01:15:03,120 ما واقعا در حال تغییر x و y است. 1642 01:15:03,120 --> 01:15:04,440 ما فقط در حال تغییر بودند A و B. 1643 01:15:04,440 --> 01:15:08,340 >> ما x و y به کپی کرده چیزی به نام A و B. 1644 01:15:08,340 --> 01:15:11,092 اما ما در واقع هرگز دستکاری x و y هستند. 1645 01:15:11,092 --> 01:15:12,800 آیا شما بچه ها دیدن چگونه است که اتفاق می افتد؟ 1646 01:15:12,800 --> 01:15:16,140 این است که ما به سادگی آن را کپی کرده ام بیش از، اما ما در واقع نگه داشته است 1647 01:15:16,140 --> 01:15:18,030 آهنگ از جایی که آنها در حافظه است. 1648 01:15:18,030 --> 01:15:20,127 >> و بنابراین در حال حاضر کامپیوتر است که به دنبال، اوه، من 1649 01:15:20,127 --> 01:15:21,960 اجرای این چیزی که از طریق این تابع دوست داشتنی. 1650 01:15:21,960 --> 01:15:23,690 اما x و y هنوز x و y. 1651 01:15:23,690 --> 01:15:26,240 هیچ چیز اتفاق افتاده است آنها به دلیل این واقعیت 1652 01:15:26,240 --> 01:15:28,340 که این پارامترها و متغیرهای محلی 1653 01:15:28,340 --> 01:15:30,150 در مختلف ذخیره می شود محل در حافظه. 1654 01:15:30,150 --> 01:15:32,030 و این یک سطح بالاتر است مفهوم است که ما 1655 01:15:32,030 --> 01:15:34,300 شروع به دیدن بعدا در این دوره است. 1656 01:15:34,300 --> 01:15:36,950 اما فقط می دانم که این یک مشکل است که می تواند رخ دهد 1657 01:15:36,950 --> 01:15:41,400 و ما به شکل از راه در مورد چگونگی مقابله با این بعد از آن در این دوره است. 1658 01:15:41,400 --> 01:15:41,900 باشه. 1659 01:15:41,900 --> 01:15:47,750 1660 01:15:47,750 --> 01:15:48,250 خیلی خوب. 1661 01:15:48,250 --> 01:15:51,780 بنابراین آخرین مفهوم ما واقعا به پوشش 1662 01:15:51,780 --> 01:15:53,880 که رفتن به مفید باشد برای pset این هفته 1663 01:15:53,880 --> 01:15:56,060 هستند که به نام آرگومان های خط فرمان. 1664 01:15:56,060 --> 01:16:00,820 بنابراین راب در سخنرانی خود از طریق رفت نوع خلاصه در مورد چگونگی این کار می کنند. 1665 01:16:00,820 --> 01:16:02,770 اساسا می دانید که زمانی که شما در حال نوشتن 1666 01:16:02,770 --> 01:16:06,280 مانند یک تابع اصلی، زمانی که ما توابع قبل از در گذشته نوشت، 1667 01:16:06,280 --> 01:16:07,804 ما اعتبار اصلی اعضای هیات بود. 1668 01:16:07,804 --> 01:16:10,470 و به همین دلیل ما تا به حال از درجه اعتبار ساقط وجود دارد بود چرا که برنامه های ما نیست 1669 01:16:10,470 --> 01:16:12,520 نیاز به مقادیر ورودی به اجرا، درست است؟ 1670 01:16:12,520 --> 01:16:16,020 هنگامی که من فرار ماریو، من لازم نیست به واقع فقط در چیزی تایپ 1671 01:16:16,020 --> 01:16:16,970 وقتی که من فرار ماریو. 1672 01:16:16,970 --> 01:16:20,170 من می تواند برای کاربران بعد از تحریک کند. 1673 01:16:20,170 --> 01:16:22,450 اما این همیشه صدق نمی کند باشد. 1674 01:16:22,450 --> 01:16:24,980 >> به عنوان مثال، در این مشکل در هفته مجموعه، 1675 01:16:24,980 --> 01:16:28,365 شما در حال رفتن به خواسته می شود که در علاوه بر اجرای برنامه خود را، 1676 01:16:28,365 --> 01:16:30,990 شما در حال رفتن به خواهید برای ورودی چیز خاصی در راست به شما به عنوان 1677 01:16:30,990 --> 01:16:32,050 را اجرا کنید. 1678 01:16:32,050 --> 01:16:34,720 بنابراین راه ما انجام است که به نام آرگومان خط فرمان، که 1679 01:16:34,720 --> 01:16:37,280 مثل این است که یک آرگومان شما می توانید ورودی به طور مستقیم 1680 01:16:37,280 --> 01:16:39,260 عنوان شما در حال تلاش برای اجرای برنامه خود را. 1681 01:16:39,260 --> 01:16:44,680 >> بنابراین نماد برای این آن را بسیار پیچیده، به دنبال، 1682 01:16:44,680 --> 01:16:47,320 اما واقعا که دشوار. بنابراین اعضای هیات main-- 1683 01:16:47,320 --> 01:16:48,910 که فقط تابع اصلی خود را. 1684 01:16:48,910 --> 01:16:52,110 به کاما از هم تعداد آنها براکت ی argv رشته است. 1685 01:16:52,110 --> 01:16:56,040 پس همه که گفت این است که این argc-- INT همه که گفتن شما 1686 01:16:56,040 --> 01:17:00,560 است که کسانی که تعداد استدلال کامپیوتر باید انتظار می رود. 1687 01:17:00,560 --> 01:17:03,130 >> بنابراین چیزی که واقعا مهم برای پیگیری 1688 01:17:03,130 --> 01:17:07,080 نام فیزیکی برنامه شما می باشد شمارش به عنوان یکی از کسانی که استدلال. 1689 01:17:07,080 --> 01:17:11,080 بنابراین اگر من می خواستم به برنامه من اجرا به علاوه یک خط فرمان اضافی 1690 01:17:11,080 --> 01:17:13,310 استدلال، من در واقع رفتن به دو. 1691 01:17:13,310 --> 01:17:15,080 تعداد آنها در واقع رفتن به دو. 1692 01:17:15,080 --> 01:17:18,010 و پس از آن رشته ی argv bracket-- تمام است که انجام می دهند، 1693 01:17:18,010 --> 01:17:20,410 آن را به من یک دادن آرایه ای از رشته که 1694 01:17:20,410 --> 01:17:24,870 رفتن به فقط نمایش و ذخیره چه همه کسانی که آرگومان های خط فرمان می باشد. 1695 01:17:24,870 --> 01:17:34,090 >> بنابراین برای مثال، اگر من می خواستم به این برنامه، ./copy INFILE outfile، درست است؟ 1696 01:17:34,090 --> 01:17:37,330 که فقط یک دستور لینوکس معمولی است. 1697 01:17:37,330 --> 01:17:38,830 آنچه در واقع تعداد آنها است؟ 1698 01:17:38,830 --> 01:17:41,320 چگونه بسیاری از آرگومان های خط فرمان در واقع در این وجود دارد؟ 1699 01:17:41,320 --> 01:17:45,130 همه می کند این است که یک کپی از INFILE از نام یک فایل 1700 01:17:45,130 --> 01:17:47,070 و آن را کپی آن را به یک فایل دیگر، درست است؟ 1701 01:17:47,070 --> 01:17:48,700 که همه از این انجام شده است. 1702 01:17:48,700 --> 01:17:53,080 همانطور که می بینید، من انجام آن را در یک خط در واقع بدون نیاز به برنامه است. 1703 01:17:53,080 --> 01:17:55,380 >> تعداد آنها ما در این مورد چیست؟ 1704 01:17:55,380 --> 01:17:58,968 چگونه بسیاری از استدلال داریم؟ 1705 01:17:58,968 --> 01:17:59,634 مخاطبان: سه؟ 1706 01:17:59,634 --> 01:18:01,200 ANDI PENG: ما سه، دقیقا. 1707 01:18:01,200 --> 01:18:05,030 پس از آن بسیار شهودی به فقط فکر می کنم که آن را فقط 1708 01:18:05,030 --> 01:18:06,290 INFILE و outfile. 1709 01:18:06,290 --> 01:18:10,190 اما می دانم که نام فیزیکی برنامه شما در حال اجرا شمارش به عنوان یکی. 1710 01:18:10,190 --> 01:18:13,220 بنابراین در این مورد، تعداد آنها در واقع سه. 1711 01:18:13,220 --> 01:18:15,860 چگونه در مورد، آنچه ی argv 0 است؟ 1712 01:18:15,860 --> 01:18:18,180 به یاد داشته باشید، همه از آرگومان های خط فرمان 1713 01:18:18,180 --> 01:18:20,500 در آرایه ای از رشته ذخیره شده بودند. 1714 01:18:20,500 --> 01:18:24,140 بنابراین اگر سعی کنید به آن دسترسی داشته باشید، چه می و argv براکت 0 به من بدهید؟ 1715 01:18:24,140 --> 01:18:25,364 >> مخاطبان: [نامفهوم]. 1716 01:18:25,364 --> 01:18:26,155 ANDI PENG: دقیقا. 1717 01:18:26,155 --> 01:18:28,550 آن را به من نقطه را بریده بریده کپی، چرا که 1718 01:18:28,550 --> 01:18:31,070 عنصر 0، از اولین عنصر آرایه است. 1719 01:18:31,070 --> 01:18:33,236 چه ی argv 1؟ 1720 01:18:33,236 --> 01:18:33,945 >> مخاطبان: INFILE. 1721 01:18:33,945 --> 01:18:35,070 ANDI PENG: INFILE، دقیقا. 1722 01:18:35,070 --> 01:18:36,272 چه ی argv 2؟ 1723 01:18:36,272 --> 01:18:37,022 مخاطبان: Outfile. 1724 01:18:37,022 --> 01:18:38,190 ANDI PENG: Outfile. 1725 01:18:38,190 --> 01:18:39,290 این کمی مشکل است در حال حاضر. 1726 01:18:39,290 --> 01:18:42,630 شما بچه ها چه فکر می کنم و argv 3 است که به من دادن 1727 01:18:42,630 --> 01:18:45,522 اگر من سعی کردم برای چاپ که؟ 1728 01:18:45,522 --> 01:18:48,260 >> مخاطبان: [نامفهوم]؟ 1729 01:18:48,260 --> 01:18:50,164 >> ANDI PENG: آیا شما یک دست تا؟ 1730 01:18:50,164 --> 01:18:50,663 آره. 1731 01:18:50,663 --> 01:18:51,550 >> مخاطبان: یک جایگزین. 1732 01:18:51,550 --> 01:18:52,341 >> ANDI PENG: دقیقا. 1733 01:18:52,341 --> 01:18:55,440 بنابراین در سخنرانی به یاد داشته باشید که ما در پایان یک چیزی مسابقه را داشته 1734 01:18:55,440 --> 01:18:56,640 به نام نابودگر تهی؟ 1735 01:18:56,640 --> 01:18:58,890 ما را به این نیز دریافت بیشتر در در کلاس. 1736 01:18:58,890 --> 01:19:02,472 اما می دانم که در نماد، راه کامپیوتر شما 1737 01:19:02,472 --> 01:19:04,430 می داند که آن را پایان از آرایه است که آن را 1738 01:19:04,430 --> 01:19:07,310 چیزی قرار می دهد به نام های پوچ نابودگر یا یک خط تیره صفر است. 1739 01:19:07,310 --> 01:19:12,047 >> بنابراین اگر شما سعی می کنید برای دسترسی به ی argv 3، شما در حال رفتن برای ضربه زدن به این فاصله 0. 1740 01:19:12,047 --> 01:19:13,630 این است که حتی بیشتر از یک درخواست ترفند. 1741 01:19:13,630 --> 01:19:17,020 چه ی argv 4؟ 1742 01:19:17,020 --> 01:19:20,920 بنابراین این نابودگر تهی گذشته است، گذشته از مرزهای آرایه است. 1743 01:19:20,920 --> 01:19:24,380 شما چه فکر میکنید در حال رفتن به اتفاق می افتد زمانی که ما سعی به انجام این کار؟ 1744 01:19:24,380 --> 01:19:25,842 >> مخاطبان: [نامفهوم]؟ 1745 01:19:25,842 --> 01:19:26,550 ANDI PENG: با عرض پوزش. 1746 01:19:26,550 --> 01:19:28,025 می گویند که کمی بلندتر؟ 1747 01:19:28,025 --> 01:19:29,086 >> مخاطبان: [نامفهوم]. 1748 01:19:29,086 --> 01:19:29,710 ANDI PENG: بله. 1749 01:19:29,710 --> 01:19:32,420 که نام است منطقه شما به احتمال زیاد دریافت کنید. 1750 01:19:32,420 --> 01:19:36,610 اما می دانم که ی argv 4-- که شما اجازه می دهد تا برای دسترسی به 1751 01:19:36,610 --> 01:19:38,610 مکان ها در کامپیوتر شما حافظه است که شما واقعا 1752 01:19:38,610 --> 01:19:41,650 نباید لمس کردن، به دلیل در حال حاضر شما می دانید چه ی argv است. 1753 01:19:41,650 --> 01:19:46,220 شما می دانید که آن را مجموعه ای از اندازه 3 است که کپی نقطه، INFILE و outfile. 1754 01:19:46,220 --> 01:19:50,200 >> اگر شما سعی کنید برای رفتن تا کنون فراتر از آن که شما در گذشته نابودگر تهی هستید، 1755 01:19:50,200 --> 01:19:53,050 کامپیوتر شما احتمالا چیزی ذخیره شده در argv 4. 1756 01:19:53,050 --> 01:19:55,790 و شما واقعا نمی باید اجازه دسترسی به ی argv 4، 1757 01:19:55,790 --> 01:19:58,130 دلیل این که شما یک فایل کابینه و شما تنها هستید 1758 01:19:58,130 --> 01:19:59,790 اجازه دسترسی به این سه قفسه. 1759 01:19:59,790 --> 01:20:02,870 اما اگر شما سعی کنید به راه دور از دسترس قفسه که در آن به شما اجازه داده، 1760 01:20:02,870 --> 01:20:04,930 شما در حال رفتن به شروع به خراب با چیزهای دیگر در حافظه کامپیوتر شما. 1761 01:20:04,930 --> 01:20:06,690 که برای رفتن به واقعا، واقعا بد است. 1762 01:20:06,690 --> 01:20:07,440 بنابراین فقط می دانم که. 1763 01:20:07,440 --> 01:20:10,370 بسیار مراقب باشید که شما نه تنها به طور تصادفی شروع 1764 01:20:10,370 --> 01:20:14,772 دسترسی به عناصر آرایه است که در یک در آنچه به شما می خواستم برای ایجاد شد. 1765 01:20:14,772 --> 01:20:17,114 بله. 1766 01:20:17,114 --> 01:20:18,430 >> باشه. 1767 01:20:18,430 --> 01:20:26,360 بنابراین ما قصد داریم به یکی دیگر از انجام به عنوان مثال در اینجا ترمینال. 1768 01:20:26,360 --> 01:20:27,300 باشه. 1769 01:20:27,300 --> 01:20:29,900 بنابراین راب به سرعت در سخنرانی روز دیگر رفت 1770 01:20:29,900 --> 01:20:35,040 از طریق این مثال، جایی که او حال INT اصلی اعضای هیات ی argv رشته تعداد آنها 1771 01:20:35,040 --> 01:20:39,090 براکت، که به من گفتن که من رفتن به آرگومان های خط فرمان. 1772 01:20:39,090 --> 01:20:41,860 >> او، اگر تعداد آنها برابر با برابر 2-- به یاد داشته باشید، 1773 01:20:41,860 --> 01:20:45,070 برابر است با برابر معنی مقایسه. 1774 01:20:45,070 --> 01:20:47,980 اگر آن را برابر با 2، پس از آن من رفتن به چاپ سلام، 1775 01:20:47,980 --> 01:20:51,190 هر اولین عنصر از آرایه است. 1776 01:20:51,190 --> 01:20:54,100 چاپ دیگری، سلام جهان. 1777 01:20:54,100 --> 01:20:56,300 این چیست رفتن به اتفاق می افتد در اصل؟ 1778 01:20:56,300 --> 01:21:00,570 آیا کسی می تواند فقط در توضیح انگلیسی آنچه این برنامه انجام شده است؟ 1779 01:21:00,570 --> 01:21:01,272 آره. 1780 01:21:01,272 --> 01:21:08,160 >> مخاطبان: اگر کسی تایپ شده در یک دستور و گفت نام و نام خانوادگی خود را، 1781 01:21:08,160 --> 01:21:12,096 آن را نه فقط چاپ یکی از اولین و می گویند، سلام، 1782 01:21:12,096 --> 01:21:14,090 هر نام خود را است. 1783 01:21:14,090 --> 01:21:15,410 >> ANDI PENG: خوب، اجازه دهید آن را اجرا کنید. 1784 01:21:15,410 --> 01:21:22,470 بنابراین برای مثال، اگر من به این فایل را خوش آمدید to-- سلام 1785 01:21:22,470 --> 01:21:24,500 to-- چه چیزی شما را من می خواهم به ورودی. 1786 01:21:24,500 --> 01:21:25,900 >> مخاطبان: نام و نام خانوادگی. 1787 01:21:25,900 --> 01:21:27,280 >> ANDI PENG: نام و نام خانوادگی؟ 1788 01:21:27,280 --> 01:21:28,180 فضاهای؟ 1789 01:21:28,180 --> 01:21:29,690 >> مخاطبان: آره. 1790 01:21:29,690 --> 01:21:33,490 >> ANDI PENG: کسی می تونه به من در حال حاضر، چه تعداد آنها است؟ 1791 01:21:33,490 --> 01:21:35,630 فقط سمت راست وجود دارد؟ 1792 01:21:35,630 --> 01:21:36,290 آخ ببخشید. 1793 01:21:36,290 --> 01:21:37,920 اجازه دهید من به عقب برگردید. 1794 01:21:37,920 --> 01:21:40,740 چگونه بسیاری از آرگومان های خط فرمان are-- شما بچه ها واقعا می توانید ببینید. 1795 01:21:40,740 --> 01:21:43,760 اما من سعی کنید به زوم. 1796 01:21:43,760 --> 01:21:44,290 دارم سعی می کنم. 1797 01:21:44,290 --> 01:21:45,414 آره، سه وجود دارد، درست است؟ 1798 01:21:45,414 --> 01:21:48,750 آن را بریده بریده نقطه است سلام، آن اندی، و آن را پنگ. 1799 01:21:48,750 --> 01:21:51,870 >> بنابراین چه چیزی شما بچه ها فکر می کنم این برنامه است که به چاپ؟ 1800 01:21:51,870 --> 01:21:55,550 1801 01:21:55,550 --> 01:21:56,060 آه. 1802 01:21:56,060 --> 01:21:57,120 آه ببخشید. 1803 01:21:57,120 --> 01:21:57,810 نام اشتباه. 1804 01:21:57,810 --> 01:22:03,630 1805 01:22:03,630 --> 01:22:06,130 آن را چاپ، سلام جهان. 1806 01:22:06,130 --> 01:22:09,603 آیا کسی می خواهید برای توضیح چرا که اتفاق می افتد؟ 1807 01:22:09,603 --> 01:22:10,103 آره؟ 1808 01:22:10,103 --> 01:22:11,019 >> مخاطبان: [نامفهوم]. 1809 01:22:11,019 --> 01:22:14,439 1810 01:22:14,439 --> 01:22:15,230 ANDI PENG: دقیقا. 1811 01:22:15,230 --> 01:22:19,940 بنابراین در اینجا، مشروط است، اگر تعداد آنها برابر برابر 2. 1812 01:22:19,940 --> 01:22:23,650 بنابراین تنها در مورد وجود دارد که دو آرگومان خط فرمان. 1813 01:22:23,650 --> 01:22:25,850 سپس من قصد دارم به چاپ، سلام، هر آنچه در آن است. 1814 01:22:25,850 --> 01:22:28,210 اما دیگری، من قصد دارم به چاپ فقط، سلام جهان. 1815 01:22:28,210 --> 01:22:30,040 بنابراین می کند کسی که می خواهید به عنوان مثال به من بدهید 1816 01:22:30,040 --> 01:22:35,050 چگونه من قادر خواهد بود تا در واقع آن را به چاپ مقدار و argv 1؟ 1817 01:22:35,050 --> 01:22:38,600 >> آنچه که من در اینجا به ورودی. 1818 01:22:38,600 --> 01:22:39,840 فقط یک چیز، درست است؟ 1819 01:22:39,840 --> 01:22:42,900 از آنجا که در حال حاضر به نقطه خوش آمدید شمارش به عنوان آرگومان اول. 1820 01:22:42,900 --> 01:22:43,930 من تنها یک بیشتر داشته باشد. 1821 01:22:43,930 --> 01:22:46,470 بنابراین نقطه خوش آمدید اگر من فقط اندی. 1822 01:22:46,470 --> 01:22:47,270 سلام، اندی. 1823 01:22:47,270 --> 01:22:49,186 آیا همه درک چرا که اتفاق می افتد؟ 1824 01:22:49,186 --> 01:22:49,602 آره. 1825 01:22:49,602 --> 01:22:52,500 >> مخاطبان: بنابراین فضای بین دستور line-- آن [نامفهوم] است؟ 1826 01:22:52,500 --> 01:22:56,247 1827 01:22:56,247 --> 01:22:56,830 ANDI PENG: شماره 1828 01:22:56,830 --> 01:23:03,810 بنابراین فضا در یک خط فرمان آرگومان، x، به کامپیوتر خود را بگویید 1829 01:23:03,810 --> 01:23:06,820 که این آغاز یک رشته جدید است. 1830 01:23:06,820 --> 01:23:11,130 بنابراین رشته ی argv آن here-- فروشگاه تمام دستورات آرگومان های خط خود را 1831 01:23:11,130 --> 01:23:13,110 در رشته ها. 1832 01:23:13,110 --> 01:23:17,420 و به این ترتیب فضا در خط فرمان argument-- که می کند این است به شما بگویم، 1833 01:23:17,420 --> 01:23:21,030 این است که در پایان یک رشته و زمان به حرکت بر روی یکی دیگر از آن است. 1834 01:23:21,030 --> 01:23:21,990 >> آره. 1835 01:23:21,990 --> 01:23:23,530 این بسیار مهم برای pset خود را، چرا که شما هستید 1836 01:23:23,530 --> 01:23:24,613 رفتن به آزمایش می شود این. 1837 01:23:24,613 --> 01:23:29,300 بنابراین آیا کسی هر گونه سوال در مورد این؟ 1838 01:23:29,300 --> 01:23:30,016 باشه خوبه. 1839 01:23:30,016 --> 01:23:30,515 آره؟ 1840 01:23:30,515 --> 01:23:35,008 >> مخاطبان: بنابراین به این دلیل شما را قرار کالک استدلال صحیح به جای 1841 01:23:35,008 --> 01:23:40,059 [نامفهوم] خواهد بود زمانی که شما می خواهید به نوع اطلاعات اضافی را به 1842 01:23:40,059 --> 01:23:41,030 [نامفهوم]؟ 1843 01:23:41,030 --> 01:23:42,090 >> ANDI PENG: بله، دقیقا. 1844 01:23:42,090 --> 01:23:45,370 برخی از برنامه های شما نیاز به ورودی یک آرگومان خط فرمان 1845 01:23:45,370 --> 01:23:47,732 که آن را در عبور می کند و که با استفاده از آن است. 1846 01:23:47,732 --> 01:23:49,035 آره. 1847 01:23:49,035 --> 01:23:50,410 مخاطبان: بنابراین اگر [نامفهوم]؟ 1848 01:23:50,410 --> 01:23:55,440 1849 01:23:55,440 --> 01:23:58,870 >> ANDI PENG: خب، چه چیزی من پس از آن به تغییر در برنامه های من؟ 1850 01:23:58,870 --> 01:23:59,870 >> مخاطبان: فقط 3. 1851 01:23:59,870 --> 01:24:12,460 1852 01:24:12,460 --> 01:24:15,020 >> ANDI PENG: چرا که اتفاق می افتد، فکر می کنید؟ 1853 01:24:15,020 --> 01:24:18,940 >> رسید از آنجا که [نامفهوم]. 1854 01:24:18,940 --> 01:24:22,370 >> رسید شما می خواهم به 2 [نامفهوم] آن را تغییر دهید. 1855 01:24:22,370 --> 01:24:23,484 >> مخاطبان: 1 و 2. 1856 01:24:23,484 --> 01:24:24,650 ANDI PENG: 1 و 2، دقیقا. 1857 01:24:24,650 --> 01:24:29,150 بنابراین در این مورد، شما می توانید احتمالا می خواهم به دو تابع () printf statements-- 1858 01:24:29,150 --> 01:24:32,601 که چاپ و argv 1 و یکی که چاپ و argv 2. 1859 01:24:32,601 --> 01:24:33,100 اینجا. 1860 01:24:33,100 --> 01:24:34,516 من در واقع می توانید انجام دهید که سریع واقعی است. 1861 01:24:34,516 --> 01:24:46,720 1862 01:24:46,720 --> 01:24:47,320 وجود دارد که شما بروید. 1863 01:24:47,320 --> 01:24:48,287 آه. 1864 01:24:48,287 --> 01:24:49,370 نه کاملا آنچه شما می خواهید. 1865 01:24:49,370 --> 01:24:52,590 اما اگر شما بچه ها ظرف غذا به اطراف با قالب بندی، آن خواهد آمد. 1866 01:24:52,590 --> 01:24:54,981 آره. 1867 01:24:54,981 --> 01:24:55,480 خنک. 1868 01:24:55,480 --> 01:24:57,670 من می دانم که ما کمی در زمان کوتاه. 1869 01:24:57,670 --> 01:25:02,469 اما من فقط رفتن را به سرعت صرف چند دقیقه رفتن را از طریق helpful-- 1870 01:25:02,469 --> 01:25:03,760 رسید شما باید دو دقیقه. 1871 01:25:03,760 --> 01:25:05,010 ANDI PENG: من دو دقیقه؟ 1872 01:25:05,010 --> 01:25:06,340 متشکرم. 1873 01:25:06,340 --> 01:25:09,180 برخی از راهنمایی pset سریع است. 1874 01:25:09,180 --> 01:25:13,100 بنابراین برای این pset، من به شدت توصیه، مثل من گفت، هر کس به خواندن تنظیمات. 1875 01:25:13,100 --> 01:25:16,804 شما می شود نوشتن سه یک programs-- نام initials.c، یکی به نام caesar.c، 1876 01:25:16,804 --> 01:25:17,720 یکی vigenere.c نامیده می شود. 1877 01:25:17,720 --> 01:25:20,465 1878 01:25:20,465 --> 01:25:22,340 برخی نکات مهم که شما بچه ها واقعا می خواهید 1879 01:25:22,340 --> 01:25:25,040 در mind-- نگه دارید به طوری این تابع وجود دارد 1880 01:25:25,040 --> 01:25:27,770 نام atoi-- به عنوان من می خواهم به می گویند، یک ترویس. 1881 01:25:27,770 --> 01:25:29,520 معلوم نیست اگر که در واقع چگونه شما آن را می گویند. 1882 01:25:29,520 --> 01:25:32,510 اما همه آن را به انجام، آن را وارد. 1883 01:25:32,510 --> 01:25:34,320 آن را یک رشته به int تبدیل می کند. 1884 01:25:34,320 --> 01:25:37,490 بنابراین یک نشان دهنده ASCII به من عدد صحیح است. 1885 01:25:37,490 --> 01:25:40,310 آن را فقط تبدیل ASCII ارزش به عدد صحیح ارزش ها. 1886 01:25:40,310 --> 01:25:44,510 بنابراین به یاد داشته باشید و argv، آرایه که فروشگاه تمام دستورات خود را خط arguments-- 1887 01:25:44,510 --> 01:25:46,300 آن همه آنها را ذخیره به عنوان رشته. 1888 01:25:46,300 --> 01:25:50,010 و بنابراین اگر شما می خواهید قادر به یکی از آنها را تبدیل به یک عدد صحیح، 1889 01:25:50,010 --> 01:25:52,750 شما در حال رفتن به برای استفاده از این مقدار در اینجا. 1890 01:25:52,750 --> 01:25:56,690 >> پیمانه، مثل ما تحت پوشش پیش از آن در کلاس امروز، 1891 01:25:56,690 --> 01:25:59,550 اجازه می دهد تا شما را به باقی مانده از هر آنچه که شما داشته باشد. 1892 01:25:59,550 --> 01:26:03,620 بنابراین اگر ما واقعا، واقعا تعداد زیادی در سزار، 1893 01:26:03,620 --> 01:26:06,117 چه می شود اگر ما پایان از یک رشته از ویژنر؟ 1894 01:26:06,117 --> 01:26:08,450 چگونه می خواهید قادر برای دریافت کنید که به بسته بندی کردن در اطراف؟ 1895 01:26:08,450 --> 01:26:11,330 اگر من ضربه Z و من می خواهم آن را به بازگشت به یک، 1896 01:26:11,330 --> 01:26:13,650 چگونه من رفتن به که به بسته بندی کردن در اطراف؟ 1897 01:26:13,650 --> 01:26:15,960 احتمالا می خواهید به استفاده از پیمانه در آن وجود دارد در جایی. 1898 01:26:15,960 --> 01:26:19,190 >> در مرحله دوم، فهرست اطراف کتابخانه خود را. ctype.h. 1899 01:26:19,190 --> 01:26:20,680 که یک کتابخانه جدید ما است. 1900 01:26:20,680 --> 01:26:25,270 شما بسیاری از پیدا واقعا، واقعا isupper functions-- مفید، islower، 1901 01:26:25,270 --> 01:26:27,681 toupper، tolower، isalpha، و غیره. 1902 01:26:27,681 --> 01:26:30,680 همه توابع است که بسیار مفید خواهد بود هنگامی که شما تلاش برای کشف کردن، 1903 01:26:30,680 --> 01:26:33,780 این شخصیت یک حرف کوچک است؟ 1904 01:26:33,780 --> 01:26:35,730 چگونه این تبدیل کنم رشته را به حروف بزرگ هستند؟ 1905 01:26:35,730 --> 01:26:38,146 همه این چیزها بسیار خواهد بود، بسیار مفید برای pset خود را. 1906 01:26:38,146 --> 01:26:42,720 1907 01:26:42,720 --> 01:26:45,500 باشه. 1908 01:26:45,500 --> 01:26:49,644 >> ساعات اداری امشب ساعت 8:00 تا 11:00 در کلاس درس تیل فردا 1909 01:26:49,644 --> 01:26:51,310 و همچنین روز چهارشنبه و پنجشنبه شب. 1910 01:26:51,310 --> 01:26:53,280 ساعات اداری در مشترک می باشد. 1911 01:26:53,280 --> 01:26:56,180 بسیار به شما پیشنهاد بچه ها همه شروع به کار فورا، 1912 01:26:56,180 --> 01:27:00,490 چون شما نمی خواهید که به بچه که پنجشنبه شب مشکلات است 1913 01:27:00,490 --> 01:27:03,870 ارسال pset خود است و مانند، من نمی دانم چه باید بکنید. 1914 01:27:03,870 --> 01:27:05,870 من شروع، من به پایان رسید، من را مشاهده کنید. 1915 01:27:05,870 --> 01:27:09,737 سعی کنید به خودتان برخی از اتاق را، چرا که در مشکلات کد همیشه رخ می دهد. 1916 01:27:09,737 --> 01:27:11,570 شما خواهید مطمئن شوید که شما خودتان را 1917 01:27:11,570 --> 01:27:14,810 زمان زیادی را قادر برای تکمیل psets. 1918 01:27:14,810 --> 01:27:15,310 خنک. 1919 01:27:15,310 --> 01:27:16,720 من اینجا می چسبیدن به اطراف. 1920 01:27:16,720 --> 01:27:18,226 >> مخاطبان: آیا این آنلاین در حال حاضر؟ 1921 01:27:18,226 --> 01:27:20,850 ANDI PENG: من نمی دانم اگر آن را آنلاین در حال حاضر، اما از آن خواهد شد. 1922 01:27:20,850 --> 01:27:23,500 من اینجا می چسبیدن به اطراف اگر کسی هر گونه سوال در حال حاضر. 1923 01:27:23,500 --> 01:27:25,390 ممنونم که اومدی. 1924 01:27:25,390 --> 01:27:27,105