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