1 00:00:00,000 --> 00:00:01,940 [Powered by Google Translate] [Walkthrough - تنظیم مشکل 2] 2 00:00:01,940 --> 00:00:04,130 [Zamyla چان - دانشگاه هاروارد 3 00:00:05,170 --> 00:00:07,490 [این CS50 است. CS50.TV] 4 00:00:07,490 --> 00:00:10,750 بسیار خوب. خوش آمدید، هر کس، و به Walkthrough (2) خوش آمدید. 5 00:00:10,750 --> 00:00:14,330 اول از همه، من می خواهم به شما برای اتمام pset 1 تبریک می گویم. 6 00:00:14,330 --> 00:00:18,140 من می دانم که این می تواند یک کمی دشوار است برای برخی از شما بوده است، 7 00:00:18,140 --> 00:00:20,460 می توانست برنامه کامپیوتر شما را برای اولین بار است که شما نوشت، 8 00:00:20,460 --> 00:00:24,500 اما درست است که در پایان این به یاد داشته باشید، زمانی که شما نگاه کنید در پایان ترم، 9 00:00:24,500 --> 00:00:29,820 شما در pset 1 و بگی، "هی، من می توانم انجام داده اند که در 5 دقیقه است." 10 00:00:29,820 --> 00:00:35,700 و می دانم که اعتماد که در پایان این شما قطعا باید پیدا pset 1 کاملا ساده است. 11 00:00:35,700 --> 00:00:40,640 اما در حال حاضر آن را به یک دستاورد بزرگ است، و تبریک برای گرفتن انجام می شود. 12 00:00:40,640 --> 00:00:44,010 در حال حاضر، همچنین توجه داشته باشید سریع قبل از ما به گوشت walkthrough دریافت کنید. 13 00:00:44,010 --> 00:00:48,340 من فقط می خواهم برای ایجاد یک یادداشت سریع است که من گاهی اوقات هم به اندازه کافی ندارد 14 00:00:48,340 --> 00:00:52,500 در walkthroughs به رفتن را از طریق هر تنها راه برای انجام مجموعه ای از مشکل 15 00:00:52,500 --> 00:00:56,140 و نه فقط شاید 1 یا 2 نوع پیاده سازی تمرکز، 16 00:00:56,140 --> 00:00:57,750 راه هایی که شما می توانید این کار را انجام دهند. 17 00:00:57,750 --> 00:01:01,970 اما آن است که به شما می گویند که از انجام آن یکی دیگر از راه حرام نیست. 18 00:01:01,970 --> 00:01:05,980 اغلب وجود دارد، به عنوان با علوم کامپیوتر، راه های متعددی برای انجام کارها، 19 00:01:05,980 --> 00:01:12,190 و بنابراین قطعا احساس رایگان برای استفاده از یک نوع متفاوت از راه حل از من ممکن است ارائه کرده اند. 20 00:01:12,190 --> 00:01:14,520 [pset 2: رمزنگاری - Zamyla چان - zamyla@cs50.net] 21 00:01:14,520 --> 00:01:17,160 [pset2 - 0. یک بخش از سوالات - 1. سزار - 2. Vigenere] 22 00:01:17,160 --> 00:01:20,650 بسیار خوب. بنابراین مشکل مجموعه 2: رمزنگاری است یکی از سرگرم کننده است. 23 00:01:20,650 --> 00:01:24,500 باز هم، با هر pset شما با یک بخش از سوالات شروع 24 00:01:24,500 --> 00:01:29,600 که در بخش های خود را با هم تدریس خود را اختصاص داده انجام شده است. 25 00:01:29,600 --> 00:01:31,670 ما می خواهیم از طریق این بیش از walkthrough، 26 00:01:31,670 --> 00:01:35,100 اما آنها قطعا کمک خواهد کرد کامل شما pset. 27 00:01:35,100 --> 00:01:38,100 بنابراین قسمت اول از مجموعه مشکل سزار است. 28 00:01:38,100 --> 00:01:43,470 و به این ترتیب در سزار کسی به شما یک کلید با یک عدد صحیح منتقل می کند، 29 00:01:43,470 --> 00:01:48,420 و شما یک رشته از متن است که آنها به شما ارائه رمزگذاری 30 00:01:48,420 --> 00:01:50,670 و آنها را به عقب چیزی رمزگذاری شده است. 31 00:01:50,670 --> 00:01:56,050 اگر کسی به تماشای یک داستان کریسمس، نمونه ای از آن وجود دارد وجود دارد. 32 00:01:56,050 --> 00:01:59,090 سپس قسمت دوم از مجموعه مشکل است Vigenere، 33 00:01:59,090 --> 00:02:01,790 که روش رمزگذاری پیشرفته تر است. 34 00:02:01,790 --> 00:02:05,640 و بنابراین ما در حال رفتن به سری کردن یک قطعه از متن، 35 00:02:05,640 --> 00:02:09,600 به جز به جای اینکه فقط با یک عدد صحیح، ما در واقع رفتن به آن رمزگذاری 36 00:02:09,600 --> 00:02:13,340 با یک کلمه کلیدی که کاربر را به ما ارائه. 37 00:02:16,270 --> 00:02:22,090 خوب، پس از ابزار برای اولین بار در امروز جعبه ابزار است که در واقع برای رفتن به به روز رسانی دستگاه. 38 00:02:22,090 --> 00:02:26,430 در انجمن ما چیزهایی مانند دیدن، "چرا این کار نمی کند؟" 39 00:02:26,430 --> 00:02:28,110 "چرا کار 50 ارسال نمی کند؟" 40 00:02:28,110 --> 00:02:31,830 و در اغلب موارد راه حل است که در واقع فقط برای به روز رسانی دستگاه شما است. 41 00:02:31,830 --> 00:02:36,730 بنابراین اگر شما فقط در یک پنجره ترمینال اجرا کنید: sudo لوازم یام-Y - 42 00:02:36,730 --> 00:02:40,040 که پرچم گفت: بله، به روز رسانی همه چیز - به روز رسانی، 43 00:02:40,040 --> 00:02:42,280 و سپس دستگاه خود را به روز رسانی در صورت لزوم. 44 00:02:42,280 --> 00:02:46,960 و ضرری ندارد اگر شما در حال حاضر در نسخه های اخیر از دستگاه هستند. 45 00:02:46,960 --> 00:02:51,280 سپس آن را فقط بدون به روز رسانی جدید در دسترس می گویند و شما می توانید در ادامه کار همراه است. 46 00:02:51,280 --> 00:02:55,800 اما این خوب است برای اجرای هر زمان که شما برای باز کردن لوازم خانگی 47 00:02:55,800 --> 00:02:57,140 از آنجا که ما هنوز بسیار - 48 00:02:57,140 --> 00:03:00,320 اصلاح آن در لوازم خانگی - گاهی اوقات اگر ما به یک اشکال آمده است. 49 00:03:00,320 --> 00:03:03,180 بنابراین اطمینان حاصل کنید که شما را به نسخه های اخیر از دستگاه 50 00:03:03,180 --> 00:03:07,710 و اجرا کنید که به روز رسانی وجود دارد. 51 00:03:07,710 --> 00:03:14,360 بسیار خوب. بنابراین از آنجایی که ما در حال برخورد با حروف و تغییر، enciphering همه چیز، 52 00:03:14,360 --> 00:03:20,410 ما قصد داریم واقعا می خواهید برای تبدیل شدن به بهترین دوستان با نمودار ASCII ما. 53 00:03:20,410 --> 00:03:24,350 آنهایی که متعدد وجود دارد (آنلاین)، اگر شما پیدا کنید. شاید حتی خود را بسازید. 54 00:03:24,350 --> 00:03:29,950 در واقع، با هر حرف و هر تعداد و هر شخصیت 55 00:03:29,950 --> 00:03:32,210 یک عدد در ارتباط با آنها وجود دارد، 56 00:03:32,210 --> 00:03:38,670 و پس از آن خوب است برای دیدن مقادیر ASCII خود را در کنار این نامه واقعی است. 57 00:03:38,670 --> 00:03:42,310 که قطعا شما را در مجموعه ای مشکل کمک کند. 58 00:03:42,310 --> 00:03:45,750 یکی از چیزهایی است که واقعا من در مجموعه این مشکل کمک کرد این بود که در واقع آن را چاپ، 59 00:03:45,750 --> 00:03:48,380 و بود که من از رفتن را از طریق، من در واقع بر روی آن قرعه کشی، 60 00:03:48,380 --> 00:03:51,150 نوشتن، "اگر این را برای رفتن وجود دارد، پس از آن ..." 61 00:03:51,150 --> 00:03:55,270 نوع قرعه کشی بر روی آن و علامت آن را تبدیل به بهترین دوستان خود را با جدول ASCII. 62 00:03:57,240 --> 00:04:00,750 سپس ما باید چند ابزار دیگر در اختیار ما است. 63 00:04:00,750 --> 00:04:03,750 این بار به جای در واقع باعث کاربر برای تمام ورودی خود را 64 00:04:03,750 --> 00:04:05,230 ما قصد داریم برای انجام یک ترکیب است. 65 00:04:05,230 --> 00:04:06,880 ما قصد داریم تا آنها را برای برخی از ورودی تحریک، 66 00:04:06,880 --> 00:04:11,350 اما ما نیز فقط به استفاده از استدلال های خط فرمان است. 67 00:04:11,350 --> 00:04:15,600 بنابراین، هنگامی که آنها اجرای برنامه خود را، معمولا به شما می گویند / سلام، به عنوان مثال، 68 00:04:15,600 --> 00:04:17,310 اگر برنامه شما hello.c بود. 69 00:04:17,310 --> 00:04:22,500 اما این بار به جای فقط گفت که، آنها می توانند کلمات، استدلال پس از آن قرار داده است. 70 00:04:22,500 --> 00:04:27,210 و بنابراین ما قصد استفاده از هر آنچه که آنها در به عنوان ورودی خود را به ما منتقل می کند و همچنین، 71 00:04:27,210 --> 00:04:31,720 بنابراین در حال حرکت فراتر از فقط باعث عدد صحیح است اما با استفاده از استدلال خط فرمان است. 72 00:04:31,720 --> 00:04:36,590 و پس از آن ما را به آرایه ها و رشته ها، که ما آن را می شود با استفاده از زیادی و همچنین بروید. 73 00:04:41,460 --> 00:04:44,810 در اینجا فقط یک مثال، از مجموع 1 نمودار کوتاه ASCII. 74 00:04:44,810 --> 00:04:48,460 همانطور که گفتم، هر نامه مربوط به تعداد، 75 00:04:48,460 --> 00:04:52,510 و به همین ترتیب خود را با آن آشنا شوید. آن را در دستی آمده است. 76 00:04:52,510 --> 00:04:55,610 و بعد زمانی که ما شروع به انجام برخی از ASCIIMath خرید و فروش با شماره - 77 00:04:55,610 --> 00:05:00,110 اضافه کردن، کم کردن آن ها - پس از آن قطعا خوب برای مراجعه به این جدول است. 78 00:05:02,860 --> 00:05:06,920 بنابراین در اینجا یک مثال از رمزنگاری سزار - چیزی است که شما ممکن است با ایفا کرده است. 79 00:05:06,920 --> 00:05:11,190 این است که فقط یک چرخ است. اساسا، الفبای خارجی وجود دارد و پس از آن است الفبای داخلی وجود دارد. 80 00:05:11,190 --> 00:05:15,290 تا حق در اینجا یک مثال از رمزنگاری سزار، اما با یک کلید از 0 است. 81 00:05:15,290 --> 00:05:21,540 اساسا، با یک تراز وسط قرار دارد، B با B تراز وسط قرار دارد، تمام راه را تا Z. 82 00:05:21,540 --> 00:05:26,590 اما پس از آن می گویند ما می خواستیم یک کلید 3، به عنوان مثال. 83 00:05:26,590 --> 00:05:33,280 سپس ما را از چرخ داخلی به طوری که در حال حاضر با D، و غیره گیرنده چرخش 84 00:05:33,280 --> 00:05:35,250 و بنابراین این است که اساسا چیزی است که ما قصد داریم به انجام. 85 00:05:35,250 --> 00:05:38,340 ما می توانم در یک چرخ نیست، اما چیزی است که ما قصد انجام برنامه های ما 86 00:05:38,340 --> 00:05:44,490 نوع از SHIFT الفبای همراه با ما یک مقدار مشخصی از اعداد است. 87 00:05:44,490 --> 00:05:48,650 بنابراین همانطور که قبلا گفتم، ما در حال رفتن به خرید و فروش با آرگومان های خط فرمان 88 00:05:48,650 --> 00:05:50,390 و همچنین به عنوان یک عدد صحیح است. 89 00:05:50,390 --> 00:05:55,050 بنابراین راهی که یک کاربر، برنامه خود را اجرا سزار با گفتن / سزار 90 00:05:55,050 --> 00:05:58,090 و سپس با وارد کردن یک عدد پس از آن است. 91 00:05:58,090 --> 00:06:01,130 و این تعداد نشان دهنده کلید، تغییر، 92 00:06:01,130 --> 00:06:06,740 چند بار شما در حال رفتن به چرخش چرخ درونی خود را از رمزنگاری سزار. 93 00:06:06,740 --> 00:06:08,390 و بنابراین شما در اینجا یک مثال را ببینید. 94 00:06:08,390 --> 00:06:14,550 اگر ما نامه ها را از L تا در رمزنگاری سزار ما وارد شده، 95 00:06:14,550 --> 00:06:19,520 سپس آن را به ورودی D از طریق O چرا که هر نامه منتقل شده بیش از 3 بار، 96 00:06:19,520 --> 00:06:22,080 درست مثل نمونه ای از چرخ است که من به شما نشان داد. 97 00:06:22,080 --> 00:06:25,300 بنابراین اگر شما وارد، برای مثال، این CS50 است! 98 00:06:25,300 --> 00:06:27,960 سپس آن را نیز که همه از حروف حرکت می کند. 99 00:06:27,960 --> 00:06:31,040 و این یک نکته مهم در هر دو سزار و Vigenere 100 00:06:31,040 --> 00:06:34,890 این است که ما قصد داریم به جست و خیز بیش از هر حروف غیر. 101 00:06:34,890 --> 00:06:39,160 بنابراین هر گونه فضاها، شخصیت ها، و غیره، اعداد، ما قصد داریم به نگه داشتن آنها را در همان. 102 00:06:39,160 --> 00:06:42,920 ما فقط رفتن به تغییر حروف در این مورد است. 103 00:06:42,920 --> 00:06:45,870 بنابراین به عنوان شما را در چرخ می بینیم، ما فقط حروف موجود برای ما داشته باشد، 104 00:06:45,870 --> 00:06:50,150 بنابراین ما فقط می خواهید به تغییر حروف و رمز حروف. 105 00:06:51,370 --> 00:06:56,720 بنابراین اولین چیزی که به انجام این کار، شما را دیدم که استفاده سزار در مشکل مجموعه 2 106 00:06:56,720 --> 00:07:05,280 به اجرا سزار و سپس یک عدد را وارد کنید هنگامی که شما آن را در ترمینال اجرا کنید. 107 00:07:05,280 --> 00:07:10,940 بنابراین آنچه که ما باید انجام دهیم این است که به نحوی دریافت کنید که کلید و دسترسی به آن است. 108 00:07:10,940 --> 00:07:14,730 و به این ترتیب ما می خواهیم به نحوی آن را به دومین آرگومان خط فرمان است. 109 00:07:14,730 --> 00:07:20,950 یکی از اولین برای رفتن به / سزار و یک بعدی خواهد بود تعداد کلید. 110 00:07:22,190 --> 00:07:29,200 بنابراین قبل از ما تا به حال اعضای هیات تحریریه اصلی (خالی) به شروع برنامه C است. 111 00:07:29,200 --> 00:07:31,790 ما در حال رفتن به پوست پشت لایه کمی 112 00:07:31,790 --> 00:07:34,720 و در واقع می بینیم که به جای عبور خالی به تابع اصلی ما 113 00:07:34,720 --> 00:07:37,920 ما در واقع با 2 پارامتر خرید و فروش می کند. 114 00:07:37,920 --> 00:07:44,070 ما باید از نوع int به نام argc و سپس آرایه ای از رشته ها به نام ی argv. 115 00:07:44,070 --> 00:07:46,030 بنابراین argc عدد صحیح است، 116 00:07:46,030 --> 00:07:49,640 و آن را نشان دهنده تعداد آرگومانهای داده شده به برنامه شما است. 117 00:07:49,640 --> 00:07:53,590 و پس از آن و argv است که در واقع لیستی از آرگومانهای داده شده است. 118 00:07:53,590 --> 00:08:00,820 همه استدلال رشته ها، و غیره ی argv نشان دهنده یک آرایه، یک لیست از رشته ها است. 119 00:08:01,830 --> 00:08:03,990 اجازه دهید بحث در مورد آرایه های کمی. 120 00:08:03,990 --> 00:08:05,940 آرایه اساسا یک ساختمان داده جدید است. 121 00:08:05,940 --> 00:08:09,660 ما باید نوع داده int، ما دو برابر شود، ما باید رشته، و در حال حاضر ما باید آرایه. 122 00:08:09,660 --> 00:08:13,820 آرایه ها ساختارهای داده ای است که می تواند چندین مقدار را از همان نوع را نگه دارید، 123 00:08:13,820 --> 00:08:18,320 بنابراین اساسا، یک لیست از هر نوع که شما می خواهید. 124 00:08:18,320 --> 00:08:24,400 اساسا، اگر شما می خواهید یک لیست از اعداد صحیح در 1 متغیر، 125 00:08:24,400 --> 00:08:29,090 سپس شما می توانید یک متغیر جدید بود که از آرایه های نوع int ایجاد کنید. 126 00:08:29,090 --> 00:08:34,450 بنابراین آرایه های با شاخص صفر است، به این معنی است که عنصر اول از آرایه در شاخص 0. 127 00:08:34,450 --> 00:08:41,799 اگر آرایه به طول 4، همانطور که در این مثال، پس از آن آخرین عنصر خود را در صفحه اول 3 می شود، 128 00:08:41,799 --> 00:08:44,810 1 - 4 است. 129 00:08:45,940 --> 00:08:48,420 بنابراین برای ایجاد آرایه، شما می توانید چیزی شبیه به این انجام دهد. 130 00:08:48,420 --> 00:08:51,440 می گویند شما می خواهید یک آرایه دو. 131 00:08:51,440 --> 00:08:56,520 این رود برای هر نوع از نوع اطلاعات، هر چند. 132 00:08:56,520 --> 00:09:00,210 پس می گویند شما می خواهید یک آرایه دو. بگو: شما می خواهید آن را به صندوق پستی. 133 00:09:00,210 --> 00:09:04,760 درست مثل وقتی که هر دو دیگر مقداردهی اولیه، 134 00:09:04,760 --> 00:09:09,760 شما می گویند دو برابر و سپس نام و نام خانوادگی، اما این بار ما را از براکت مربع، 135 00:09:09,760 --> 00:09:13,570 و پس از آن شماره وجود خواهد داشت که طول آرایه است. 136 00:09:13,570 --> 00:09:16,840 توجه داشته باشید که در آرایه های ما همیشه نمی تواند تغییر طول، 137 00:09:16,840 --> 00:09:21,230 بنابراین شما همیشه به تعریف و انتخاب کنید که چگونه بسیاری از جعبه داشته باشد، 138 00:09:21,230 --> 00:09:25,440 که چگونه بسیاری از مقادیر آرایه خود را نگه دارد. 139 00:09:25,440 --> 00:09:31,820 بنابراین برای تنظیم مقادیر مختلف در آرایه خود را، شما در حال رفتن به استفاده از این نحو زیر، 140 00:09:31,820 --> 00:09:33,200 تا شما را در اسلاید را ببینید. 141 00:09:33,200 --> 00:09:37,620 شما باید شاخص 0 صندوق پستی خواهد شد و به 1.2 تعیین می کنند، 142 00:09:37,620 --> 00:09:42,180 صندوق پستی شاخص مجموعه 1 به 2.4، و غیره 143 00:09:42,180 --> 00:09:47,910 بنابراین در حال حاضر که ما بررسی آرایه های بیت، اجازه بازگشت به argc و argv را. 144 00:09:47,910 --> 00:09:52,220 ما می دانیم که ی argv است که در حال حاضر یک آرایه از رشته ها است. 145 00:09:52,220 --> 00:09:55,080 بنابراین، هنگامی که یک کاربر می گذرد - می گویند که یک برنامه در حال اجرا - 146 00:09:55,080 --> 00:09:58,740 آنها می گویند. / سلام دیوید مالان، 147 00:09:58,740 --> 00:10:05,160 آنچه که این برنامه انجام خواهد داد برای شما در حال حاضر است که در واقع با آنچه argc و argv را آمده است. 148 00:10:05,160 --> 00:10:07,620 بنابراین شما لازم نیست که در مورد آن نگران باشید. 149 00:10:07,620 --> 00:10:14,370 Argc در این مورد خواهد بود 3 به دلیل آن را می بیند. 3 تا کلمه ی مجزا با فاصله از هم جدا است. 150 00:10:14,370 --> 00:10:18,850 و تا بعد آرایه در این مثال، شاخص اول خواهد بود / میهمان گرامی، 151 00:10:18,850 --> 00:10:21,770 در کنار دیوید، در کنار یک مالان. 152 00:10:21,770 --> 00:10:25,640 آیا کسی حق دور چه رابطه ای بین و argv 153 00:10:25,640 --> 00:10:28,990  آرایه، و argc است؟ 154 00:10:32,820 --> 00:10:38,090 آره. خواهیم به آن در یک مثال در args.c. 155 00:10:38,090 --> 00:10:42,880 بیایید ببینیم که اگر ما می توانیم با استفاده از رابطه بین 2. 156 00:10:42,880 --> 00:10:46,550 در اینجا شما ممکن است که در دستگاه پیدا کردن برنامه های کاربردی به طور پیش فرض 157 00:10:46,550 --> 00:10:49,450 برای باز کردن فایل های C است که گاهی اوقات ایمکس. 158 00:10:49,450 --> 00:10:54,660 اما ما می خواهیم برای مقابله با gedit، بنابراین آنچه که شما می توانید انجام دهید این است که به شما حق می تواند در فایل C خود را کلیک کنید، 159 00:10:54,660 --> 00:11:04,580 رفتن به خواص، باز، و سپس gedit، مجموعه ای به عنوان پیش فرض را انتخاب کنید، 160 00:11:04,580 --> 00:11:13,020 و در حال حاضر برنامه شما باید را در gedit به جای ایمکس باز. 161 00:11:14,710 --> 00:11:16,290 کامل. 162 00:11:17,120 --> 00:11:25,520 بنابراین در اینجا من برنامه ای است که من می خواهم برای چاپ کردن هر آرگومان خط فرمان است. 163 00:11:25,520 --> 00:11:32,050 بنابراین هر کاربر ورودی، من می خواهم در اصل بازگشت به آنها را در یک خط جدید است. 164 00:11:32,050 --> 00:11:36,710 بنابراین آنچه که یک ساختار است که ما می توانیم با استفاده از به تکرار بیش از چیزی - 165 00:11:36,710 --> 00:11:40,380 چیزی است که شما احتمالا در 1 pset شما استفاده می شود؟ 166 00:11:40,380 --> 00:11:45,840 اگر شما می خواهید از طریق مجموعه ای از همه چیز؟ >> [دانشجو] حلقه for. 167 00:11:45,840 --> 00:11:48,910 حلقه for. دقیقا. بنابراین با حلقه for شروع کنیم. 168 00:11:48,910 --> 00:11:56,900 ما برای اعضای هیات من = 0 داشته باشد. بیایید فقط با یک متغیر مقدار دهی اولیه استاندارد شروع می شود. 169 00:11:56,900 --> 00:12:02,370 من قصد دارم به ترک وضعیت برای یک مجموعه و بعد می گویند من در + +، رفتن برای انجام کارها وجود دارد. 170 00:12:02,370 --> 00:12:04,090 بسیار خوب. 171 00:12:04,090 --> 00:12:11,590 بنابراین فکر به گذشته ی argv اگر ی argv است که لیستی از استدلال به این برنامه منتقل می 172 00:12:11,590 --> 00:12:15,380 و argc تعداد آرگومان در برنامه است، 173 00:12:15,380 --> 00:12:21,280 پس از آن است که بدان معنی است که argc اساسا طول و argv، درست است، 174 00:12:21,280 --> 00:12:28,970 از آنجا که قصد دارد به عنوان بسیاری از استدلال به عنوان مقدار argc می شود. 175 00:12:28,970 --> 00:12:35,910 بنابراین اگر ما می خواهیم به تکرار بیش از هر عنصر در argv، 176 00:12:35,910 --> 00:12:43,290 ما در حال رفتن به متغیر در argv در شاخص دسترسی به هر زمان. 177 00:12:43,290 --> 00:12:49,060 است که می تواند با این نشان داده شده است، درست است؟ 178 00:12:49,060 --> 00:12:53,430 این متغیر در اینجا نشان دهنده رشته خاص در این مثال 179 00:12:53,430 --> 00:12:57,030 چرا که آن را به یک آرایه رشته ای - رشته خاص که در آن شاخص داده شده است. 180 00:12:57,030 --> 00:13:00,690 آنچه ما می خواهیم انجام دهیم، در این صورت ما می خواهیم به آن را چاپ کند، به طوری که می گویند printf. 181 00:13:00,690 --> 00:13:04,680 و در حال حاضر و argv یک رشته است، به طوری که ما می خواهیم برای قرار دادن این حفره یا سوراخ وجود دارد. 182 00:13:04,680 --> 00:13:08,430 ما می خواهیم یک خط جدید، آن را به نگاه خوب است. 183 00:13:08,430 --> 00:13:12,530 بنابراین در اینجا ما باید یک حلقه برای. ما شرط نشده است. 184 00:13:12,530 --> 00:13:20,020 بنابراین من از 0 شروع می شود، و پس از آن هر بار آن را به چاپ رشته داده 185 00:13:20,020 --> 00:13:22,980 که در آن شاخص خاص در آرایه. 186 00:13:22,980 --> 00:13:28,410 بنابراین، هنگامی که می خواهیم برای جلوگیری از چاپ کردن عناصر در آرایه؟ 187 00:13:28,410 --> 00:13:35,720 هنگامی که ما از به پایان رسید، درست است؟ هنگامی که ما رسیده در پایان از آرایه. 188 00:13:35,720 --> 00:13:38,870 بنابراین ما نمی خواهیم به گذشته از طول آرایه تجاوز، 189 00:13:38,870 --> 00:13:43,700 و ما در حال حاضر می دانیم که ما نیازی به واقع فعالانه پیدا کردن آنچه را که طول و argv است 190 00:13:43,700 --> 00:13:47,520 چرا که آن را به ما داده می شود، و آنچه که؟ Argc. دقیقا. 191 00:13:47,520 --> 00:13:56,640 بنابراین ما می خواهیم برای انجام این فرایند تعداد argc از زمان. 192 00:13:56,640 --> 00:13:59,550 من در پوشه راست نیستم. 193 00:14:02,100 --> 00:14:03,490 بسیار خوب. 194 00:14:03,490 --> 00:14:08,990 در حال حاضر را استدلال میگیرد. بدون خطا، که فوق العاده است. 195 00:14:08,990 --> 00:14:11,430 پس اجازه دهید فقط اجرا استدلال میگیرد. 196 00:14:11,430 --> 00:14:15,130 این چیست رفتن را به ما برگردانید؟ این فقط به آن نسخه قابل چاپ بازگشت. 197 00:14:15,130 --> 00:14:18,320 "شما استدلال میگیرد را به این برنامه وارد کردهاید، من قصد دارم آن را به شما است." 198 00:14:18,320 --> 00:14:23,170 بنابراین اجازه دهید می گویند ما می خواهیم برای گفتن استدلال میگیرد و سپس نوار صنایع غذایی. 199 00:14:23,170 --> 00:14:26,570 پس آن را چاپ برگشت به بخش تماس با ما. همه درست است؟ 200 00:14:26,570 --> 00:14:30,790 بنابراین به عنوان مثال از اینکه چگونه شما می توانید argc و argv را استفاده کنید وجود دارد 201 00:14:30,790 --> 00:14:33,460 دانستن این که argc نشان دهنده طول و argv است. 202 00:14:33,460 --> 00:14:42,750 اطمینان حاصل کنید که شما با دسترسی به آرایه در درجه اول هرگز فراتر از طول آرایه 203 00:14:42,750 --> 00:14:45,140 زیرا C قطعا به شما فریاد. 204 00:14:45,140 --> 00:14:47,560 شما چیزی به نام گسل تقسیم بندی کنید، 205 00:14:47,560 --> 00:14:52,470 سرگرم کننده است که هرگز، اساسا گفت: شما در حال تلاش برای دسترسی به چیزی 206 00:14:52,470 --> 00:14:55,000 که وجود ندارد، به شما تعلق ندارند. 207 00:14:55,000 --> 00:14:59,430 بنابراین مطمئن شوید، و به ویژه صفر نمایه سازی، ما نمی خواهیم به - 208 00:14:59,430 --> 00:15:02,390 مثل به عنوان مثال، اگر ما یک آرایه از طول 4، 209 00:15:02,390 --> 00:15:07,240 که اندیس 4 وجود ندارد، زیرا ما در از 0 شروع، صفر شاخص است. 210 00:15:07,240 --> 00:15:11,730 آن را تبدیل به طبیعت دوم درست مثل حلقه زمانی که ما در 0 شروع. 211 00:15:11,730 --> 00:15:13,610 پس تنها کاری که در ذهن داشته باشیم. 212 00:15:13,610 --> 00:15:22,590 شما نمی خواهید به شاخص یک آرایه است که فراتر از دسترس شما همیشه دسترسی داشته باشید. 213 00:15:26,710 --> 00:15:32,560 بنابراین ما در حال حاضر می توانید ببینید که چگونه ما می توانیم نوع دسترسی 214 00:15:32,560 --> 00:15:35,930 استدلال های خط فرمان هستند که منتقل می شوید. 215 00:15:35,930 --> 00:15:41,330 اما به عنوان شما را دیدم رشته ی argv است که در واقع یک آرایه رشته ای است. 216 00:15:41,330 --> 00:15:45,740 پس از آن در واقع یک عدد صحیح نشده است، اما در سزار ما می خواهیم برای مقابله با اعداد صحیح است. 217 00:15:45,740 --> 00:15:54,430 خوشبختانه، یک تابع ایجاد شده برای ما که در واقع می تواند تبدیل یک رشته به عدد صحیح وجود دارد. 218 00:15:54,430 --> 00:15:58,710 همچنین در اینجا ما با ورودی کاربر خرید و فروش نیست با جایی که ما آنها را باعث 219 00:15:58,710 --> 00:16:03,740 ورودی برای کلید، به طوری که ما در واقع نمی تواند reprompt و می گویند، 220 00:16:03,740 --> 00:16:07,840 : "اوه، من دیگر عدد صحیح به من بدهید، می گویند، اگر آن را معتبر نیست." 221 00:16:07,840 --> 00:16:10,540 اما ما هنوز هم برای بررسی مصرف صحیح نیاز دارند. 222 00:16:10,540 --> 00:16:13,520 در سزار آنها تنها مجاز به تصویب در 1 عدد 223 00:16:13,520 --> 00:16:18,030 و به طوری که آنها را اجرا کنند. / سزار و سپس آنها را باید به شما یک عدد می دهد. 224 00:16:18,030 --> 00:16:23,660 بنابراین argc به یک عدد خاص است. 225 00:16:23,660 --> 00:16:29,060 چه تعداد خواهد بود که اگر آنها را به شما / سزار و سپس یک کلید عبور خواهد بود؟ 226 00:16:29,060 --> 00:16:32,920 argc چیست؟ >> [دانشجو] 2. >> دو. دقیقا. 227 00:16:32,920 --> 00:16:35,490 بنابراین شما می خواهید مطمئن شوید که argc است 2. 228 00:16:35,490 --> 00:16:39,620 در غیر این صورت شما اساسا برنامه ای برای اجرا رد. 229 00:16:39,620 --> 00:16:43,040 در اصلی آن یک تابع است که می گوید: اعضای هیات تحریریه اصلی 230 00:16:43,040 --> 00:16:47,360 پس ما همیشه در 0 بازگشت عمل خوب در پایان یک برنامه موفق. 231 00:16:47,360 --> 00:16:50,840 بنابراین اگر، می گویند، آنها به شما 3 استدلال خط فرمان به جای 2 232 00:16:50,840 --> 00:16:54,350 یا شما 1 را، به عنوان مثال، پس از آن آنچه شما می توانید انجام دهید این است که شما می خواهید برای چک کنید 233 00:16:54,350 --> 00:16:59,900 و سپس بازگشت 1 و گفت: نه، من نمی تواند با ادامه این برنامه. 234 00:16:59,900 --> 00:17:03,190 [دانشجو] وجود ندارد می تواند در فضای متن انتخابی خود را نشان دهید. >> مرا ببخشید؟ 235 00:17:03,190 --> 00:17:06,780 [دانشجو] می تواند فضا در متنی که شما در حال تلاش برای رمزگذاری وجود ندارد. 236 00:17:06,780 --> 00:17:08,480 آه! 237 00:17:08,480 --> 00:17:11,280 در شرایط استفاده از متن است که ما در تلاش هستیم به رمز در آوردن، که در واقع بعد از آن می آید 238 00:17:11,280 --> 00:17:13,970 هنگامی که متن را به من بدهید. 239 00:17:13,970 --> 00:17:18,260 بنابراین در حال حاضر ما فقط به عنوان آرگومان فرمان پذیرش تعداد واقعی، 240 00:17:18,260 --> 00:17:21,579 تغییر واقعی برای رمزگذاری سزار. 241 00:17:21,579 --> 00:17:27,569 [دانشجو] چرا شما نیاز به 2 به عنوان تنها 1 argc مخالف؟ 1 تعداد قطعا وجود دارد. 242 00:17:27,569 --> 00:17:32,200 راست. دلیل این که چرا ما نیاز به 2 برای argc به جای 1 243 00:17:32,200 --> 00:17:36,260 چرا که وقتی یک برنامه را اجرا می کنید و می گویند / سزار یا. / سلام، 244 00:17:36,260 --> 00:17:38,280 که در واقع به عنوان یک آرگومان خط فرمان می شمارد. 245 00:17:38,280 --> 00:17:43,020 بنابراین پس از آن که در حال حاضر طول می کشد تا 1 و تا پس از آن ما در حال inputting 1 فوق العاده است. 246 00:17:45,030 --> 00:17:49,440 بنابراین شما inputting در واقع رشته در بحث خط فرمان است. 247 00:17:49,440 --> 00:17:52,730 آنچه که می خواهید انجام دهید، برای سزار، ما می خواهیم برای مقابله با یک عدد صحیح، 248 00:17:52,730 --> 00:17:57,180 بنابراین شما می توانید این تابع atoi استفاده کنید. 249 00:17:57,180 --> 00:18:02,850 و اساسا، آن را در یک رشته به شما منتقل و پس از آن شما را به عقب برگرداندن یک عدد صحیح 250 00:18:02,850 --> 00:18:06,070 اگر این امکان وجود دارد که رشته ای را به یک عدد صحیح است. 251 00:18:06,070 --> 00:18:10,960 در حال حاضر زمانی که ما در حال برخورد با چیزهای printf یا GetString، که می خواهم به یاد داشته باشید، 252 00:18:10,960 --> 00:18:13,390 شامل کتابخانه هایی که به ما خاص هستند. 253 00:18:13,390 --> 00:18:19,450 پس در ابتدا ما را با مخلوط برچسب استاندارد I / O، ساعت، چیزی شبیه به آن شروع می شود. 254 00:18:19,450 --> 00:18:22,430 خب، atoi است که در داخل یکی از این کتابخانه نیست، 255 00:18:22,430 --> 00:18:26,600 بنابراین آنچه که ما باید انجام دهیم این است که ما باید شامل کتابخانه های مناسب برای آن می باشد. 256 00:18:26,600 --> 00:18:32,720 بنابراین بازگشت به Walkthrough 1 جایی که من در مورد تابع دستی یاد. 257 00:18:32,720 --> 00:18:37,110 شما انسان را در ترمینال خود را تایپ کنید و سپس با نام یک تابع است. 258 00:18:37,110 --> 00:18:39,720 و به طوری که به ارمغان خواهد آورد لیست کل از استفاده از آن، 259 00:18:39,720 --> 00:18:42,890 اما به عنوان آن را به خوبی به ارمغان خواهد آورد که کتابخانه که متعلق به. 260 00:18:42,890 --> 00:18:47,000 بنابراین من به تو ترک برای استفاده از عملکرد دستی با atoi 261 00:18:47,000 --> 00:18:53,360 و کشف کردن که کتابخانه شما نیاز دارید را شامل می شود قادر به استفاده از تابع atoi. 262 00:18:54,450 --> 00:18:57,670 بنابراین ما باید کلید و در حال حاضر آن را به متن ساده می آید، 263 00:18:57,670 --> 00:19:01,820 و به طوری که در واقع رفتن به ورودی کاربر را که در آن شما بی درنگ. 264 00:19:01,820 --> 00:19:05,540 ما با GetInt و GetFloat پرداخته، و به همین 265 00:19:05,540 --> 00:19:07,670 ما در حال رفتن به خرید و فروش با GetString. 266 00:19:07,670 --> 00:19:12,440 اما در این مورد ما لازم نیست هر آیا برای انجام در حالی که یا در حالی که حلقه چک کنید. 267 00:19:12,440 --> 00:19:14,480 GetString قطعا ما به یک رشته، 268 00:19:14,480 --> 00:19:17,630 و ما در حال رفتن به رمز در آوردن هر کاربر به ما می دهد. 269 00:19:17,630 --> 00:19:23,770 بنابراین شما می توانید فرض کنیم که همه رشته ها کاربر این نظامها بشوند درست است. 270 00:19:23,770 --> 00:19:24,670 بزرگ است. 271 00:19:24,670 --> 00:19:27,270 بنابراین پس از یک بار شما رو از کلید و در هنگامی که شما در متن، 272 00:19:27,270 --> 00:19:31,660 در حال حاضر آنچه در سمت چپ است که شما به رمز نوشتن متنی می باشد. 273 00:19:31,660 --> 00:19:36,530 فقط به سرعت بیش از اصطلاح پوشش، متنی است که آنچه را که کاربر به شما می دهد، 274 00:19:36,530 --> 00:19:41,030 و متن رمزی چیزی است که شما را به آنها برگردانید. 275 00:19:42,450 --> 00:19:45,850 بنابراین رشته ها، قادر خواهد بود از طریق در واقع نامه نامه 276 00:19:45,850 --> 00:19:48,550 چرا که ما به تغییر هر حرف، 277 00:19:48,550 --> 00:19:51,390 ما درک می کنیم که رشته، اگر ما از نوع پوست پشت لایه، 278 00:19:51,390 --> 00:19:54,130 ما می بینیم که آنها واقعا لیستی از کاراکتر ها است. 279 00:19:54,130 --> 00:19:55,930 یکی پس از دیگری می آید. 280 00:19:55,930 --> 00:20:01,690 و به این ترتیب ما می توانیم رشته را به عنوان آرایه زیرا آنها آرایه از کاراکتر ها را درمان می کنند. 281 00:20:01,690 --> 00:20:05,640 پس می گویند شما باید یک رشته به نام متن، 282 00:20:05,640 --> 00:20:09,400 و در آن متن متغیر ذخیره شده است این است CS50. 283 00:20:09,400 --> 00:20:15,680 سپس متن در اندیس 0 T پایتخت خواهد بود، شاخص 1 ساعت، و غیره خواهد بود 284 00:20:17,530 --> 00:20:23,970 و سپس با آرایه ها، در مثال argc در args.c، 285 00:20:23,970 --> 00:20:27,090 ما شاهد است که ما تا به حال به تکرار بیش از یک آرایه 286 00:20:27,090 --> 00:20:32,440 و بنابراین ما تا به حال از من به تکرار = 0 تا من کمتر از طول. 287 00:20:32,440 --> 00:20:35,560 بنابراین ما نیاز به برخی از راه بدانند آنچه را که طول رشته ما است 288 00:20:35,560 --> 00:20:37,090 اگر ما قصد داریم به تکرار در بیش از آن است. 289 00:20:37,090 --> 00:20:42,300 خوشبختانه دوباره، یک تابع وجود دارد برای ما وجود دارد، اگر چه بعدها در CS50 290 00:20:42,300 --> 00:20:45,860 شما قطعا باید قادر به اجرا و عملکرد خود را 291 00:20:45,860 --> 00:20:48,260 است که می تواند در طول یک رشته را محاسبه کند. 292 00:20:48,260 --> 00:20:52,120 اما در حال حاضر ما در حال رفتن به استفاده از طول رشته، بنابراین strlen. 293 00:20:52,120 --> 00:21:00,440 شما در یک رشته می گذرد، و سپس آن را به شما بین المللی است که نشان دهنده طول رشته خود بازگشت. 294 00:21:00,440 --> 00:21:05,840 بیایید نگاهی به یک مثال از اینکه چگونه ممکن است قادر به تکرار بیش از هر کاراکتر در یک رشته 295 00:21:05,840 --> 00:21:08,470 و کاری با آن است. 296 00:21:08,470 --> 00:21:13,250 آنچه ما می خواهیم انجام دهیم این است که تکرار بیش از هر کاراکتر از رشته، 297 00:21:13,250 --> 00:21:19,150 و آنچه ما می خواهیم انجام دهیم این است که ما نسخه قابل چاپ بازگشت هر یک از شخصیت 1 1 298 00:21:19,150 --> 00:21:22,060 به جز چیزی به آن اضافه می کنیم. 299 00:21:22,060 --> 00:21:27,020 بنابراین با حلقه for شروع کنیم. من بین المللی = 0. 300 00:21:27,020 --> 00:21:30,070 ما قصد داریم به ترک فضا برای این بیماری است. 301 00:21:32,700 --> 00:21:36,840 ما می خواهیم به تکرار می کنیم تا رسیدن به انتهای رشته، درست است؟ 302 00:21:36,840 --> 00:21:41,340 پس آنچه تابع طول رشته را به ما می دهد؟ 303 00:21:41,340 --> 00:21:43,160 [پاسخ دانش آموز نامفهوم] 304 00:21:43,160 --> 00:21:46,420 که طول آرگومان های خط فرمان است. 305 00:21:46,420 --> 00:21:50,650 اما برای رشته ما می خواهیم برای استفاده از یک تابع است که طول رشته را به ما می دهد. 306 00:21:50,650 --> 00:21:53,090 به طوری که طول رشته است. 307 00:21:53,090 --> 00:21:57,130 و به این ترتیب پس از آن شما باید در یک رشته را به آن منتقل می کند. 308 00:21:57,130 --> 00:21:59,760 این نیاز به دانستن چه رشته به آن نیاز دارد را محاسبه طول. 309 00:21:59,760 --> 00:22:03,160 بنابراین پس در این مورد ما در حال برخورد با رشته ها. 310 00:22:04,790 --> 00:22:05,860 بزرگ است. 311 00:22:05,860 --> 00:22:10,770 بنابراین پس از آنچه ما می خواهیم انجام دهیم، اجازه دهید printf است. 312 00:22:10,770 --> 00:22:14,850 در حال حاضر، ما می خواهیم برای مقابله با شخصیت. ما می خواهیم برای چاپ کردن هر یک از شخصیت. 313 00:22:14,850 --> 00:22:22,150 هنگامی که شما می خواهید آن را به چاپ شناور، شما را از مکان نگه دار مانند F٪ استفاده کنید. 314 00:22:22,150 --> 00:22:24,580 شما می توانید با استفاده از یک int D٪ استفاده کنید. 315 00:22:24,580 --> 00:22:30,890 و به این ترتیب به طور مشابه، با شخصیت شما با استفاده از C٪ برای گفتن من قصد دارم به چاپ یک شخصیت 316 00:22:30,890 --> 00:22:34,570 که در داخل یک متغیر ذخیره می شود. 317 00:22:34,570 --> 00:22:40,840 بنابراین ما باید این، و اجازه دهید اضافه کردن یک دوره و یک فضای به آن است. 318 00:22:40,840 --> 00:22:45,430 کدام شخصیت می کنیم با استفاده از؟ 319 00:22:45,430 --> 00:22:49,780 ما قصد داریم با استفاده از هر شخصیت ما در رشته هستید. 320 00:22:49,780 --> 00:22:52,890 بنابراین پس از آن ما قصد داریم با استفاده از چیزی با رشته، 321 00:22:52,890 --> 00:22:56,420 اما ما می خواهیم به دسترسی به شخصیت خاصی وجود دارد. 322 00:22:56,420 --> 00:23:02,740 بنابراین اگر یک رشته فقط یک آرایه، و سپس چگونه عناصر آرایه دسترسی پیدا کنم؟ 323 00:23:02,740 --> 00:23:06,480 ما باید کسانی که از براکت مربع است، و پس از آن شاخص را در آنجا قرار داده است. 324 00:23:06,480 --> 00:23:11,820 بنابراین ما باید براکت. شاخص ما در این مورد، ما فقط می توانید استفاده کنید. دقیقا. 325 00:23:15,290 --> 00:23:22,370 بنابراین در اینجا ما در حال گفت: ما قصد داریم به چاپ یک شخصیت به دنبال یک نقطه و یک فضای 326 00:23:22,370 --> 00:23:30,870 و است که شخصیت در حال رفتن به نامه i ام در رشته s ما. 327 00:23:32,920 --> 00:23:39,330 من فقط رفتن برای صرفه جویی در آن. باشه. 328 00:23:42,510 --> 00:23:46,840 در حال حاضر من قصد دارم به اجرای طول رشته است. 329 00:23:46,840 --> 00:23:53,440 بنابراین ما تا به حال یک رشته به نام OMG، و در حال حاضر آن را حتی بیشتر تاکید شده است. 330 00:23:53,440 --> 00:23:57,870 به طور مشابه، اجازه دهید می گویند ما در واقع می خواهید برای دریافت یک رشته از کاربر است. 331 00:23:57,870 --> 00:23:59,580 چگونه ممکن است این را ما انجام می دهیم؟ 332 00:23:59,580 --> 00:24:01,610 قبل از اینکه، چگونه یک int را دریافت کنم؟ 333 00:24:01,610 --> 00:24:08,040 ما GetInt گفت، درست است؟ اما این نوع int نیست، بنابراین اجازه دهید GetString. 334 00:24:11,780 --> 00:24:17,770 بیایید طول رشته. در اینجا ما یک اعلان را وارد کنید. 335 00:24:17,770 --> 00:24:19,940 بنابراین من نمی دانم. 336 00:24:19,940 --> 00:24:23,820 من قصد دارم به قرار دادن نام من در اینجا و به همین ترتیب پس از آن من می توانم یکی از آن چیزهایی 337 00:24:23,820 --> 00:24:29,600 جایی که من یک کلمه برای هر نامه یا چیزی شبیه به آن اختصاص دهید. دانلود. 338 00:24:29,600 --> 00:24:31,900 به طوری که طول رشته است. 339 00:24:33,000 --> 00:24:34,640 بنابراین ما در حال بازگشت به سزار. 340 00:24:34,640 --> 00:24:38,620 در حال حاضر چند ابزار در حال حاضر بیش از یک رشته تکرار، 341 00:24:38,620 --> 00:24:41,250 چگونه هر یک از عناصر فردی ما دسترسی داشته باشید. 342 00:24:41,250 --> 00:24:44,720 بنابراین در حال حاضر ما می توانیم به عقب بر گردیم به برنامه است. 343 00:24:44,720 --> 00:24:48,650 همانطور که پیش از این در جدول ASCII، بهترین دوست شما، ذکر 344 00:24:48,650 --> 00:24:52,300 شما در حال رفتن به دیدن اعداد است که با هر نامه در ارتباط است. 345 00:24:52,300 --> 00:24:55,900 بنابراین در اینجا متنی ما این است که من سرگیجه می گویند! 346 00:24:55,900 --> 00:25:01,090 سپس هر یک از این شخصیت ها به تعداد و ارزش ASCII مربوط به آن، 347 00:25:01,090 --> 00:25:04,710 حتی آپوستروف، حتی فضا، حتی علامت تعجب، 348 00:25:04,710 --> 00:25:06,600 بنابراین شما می خواهید به نگه داشتن آن در ذهن است. 349 00:25:06,600 --> 00:25:12,360 بنابراین کلید ما می گویند که کاربر در استدلال خود را در خط فرمان است 6. 350 00:25:12,360 --> 00:25:17,770 این بدان معناست که برای حرف اول، که من، که توسط 73 نشان داده شده است، 351 00:25:17,770 --> 00:25:25,610 شما می خواهید به بازگشت به آنها هر حرف ارزش ASCII 73 + 6 نشان داده شده است. 352 00:25:25,610 --> 00:25:29,020 در این صورت است که می تواند 79. 353 00:25:30,840 --> 00:25:35,040 در حال حاضر ما می خواهم برای رفتن به شخصیت بعدی. 354 00:25:35,040 --> 00:25:40,960 بنابراین در کنار شاخص 1 از متنی خواهد بود آپوستروف. 355 00:25:40,960 --> 00:25:46,780 اما به یاد داشته باشید ما فقط می خواهید برای برمز نوشتن حروف است. 356 00:25:46,780 --> 00:25:50,040 بنابراین ما می خواهیم مطمئن شوید که در مواقع حذف حرف یا بخشی از کلمه در واقع همان باقی می ماند، 357 00:25:50,040 --> 00:25:54,310 که ما از 39 به هر 45 تغییر نمی باشد. 358 00:25:54,310 --> 00:25:57,150 ما می خواهیم به آن را به عنوان یک آپوستروف نگه دارید. 359 00:25:57,150 --> 00:26:00,780 بنابراین، ما می خواهیم به یاد داشته باشید فقط به رمز نوشتن حروف 360 00:26:00,780 --> 00:26:04,560 چرا که ما می خواهیم همه از نمادهای دیگر باقی می ماند بدون تغییر در برنامه ما. 361 00:26:04,560 --> 00:26:07,130 یکی دیگر از چیزی است که ما می خواهیم برای حفظ حروف بزرگ است. 362 00:26:07,130 --> 00:26:10,250 بنابراین، هنگامی که شما به یک حرف بزرگ، آن را باید به عنوان بزرگ باقی بماند. 363 00:26:10,250 --> 00:26:12,830 Lowercases باید به عنوان حروف کوچک باقی بماند. 364 00:26:13,620 --> 00:26:19,480 بنابراین بعضی از توابع مفید باشد قادر به با حروف فقط enciphering مقابله 365 00:26:19,480 --> 00:26:22,380 و حفظ حفظ سرمایه از همه چیز 366 00:26:22,380 --> 00:26:25,130 isalpha، isupper، توابع islower است. 367 00:26:25,130 --> 00:26:29,270 و به این ترتیب این توابع است که شما یک مقدار بولی بازگشت. 368 00:26:29,270 --> 00:26:34,180 در واقع، درست یا نادرست است. آیا این بزرگ است؟ این الفبایی است؟ 369 00:26:34,180 --> 00:26:37,180 آیا این نامه، در اصل. 370 00:26:37,180 --> 00:26:41,070 بنابراین در اینجا 3 نمونه هایی از شما می توانید این تابع استفاده کنید. 371 00:26:41,070 --> 00:26:47,060 در واقع، شما می توانید از تست چه مقدار به شما که توسط تابع برگردانده درست است یا غلط 372 00:26:47,060 --> 00:26:49,400 بر اساس که ورودی. 373 00:26:49,400 --> 00:26:54,880 یا انجام چیزی برمز نوشتن نیست و یا رمز و یا مطمئن شوید که آن را به بزرگ، و غیره 374 00:26:54,880 --> 00:27:01,080 [دانشجو] آیا می توانید فقط کسانی که کمی بیشتر و چگونه شما به استفاده از آنها را توضیح دهید؟ >> آره، حتما. 375 00:27:01,080 --> 00:27:08,470 بنابراین اگر ما نگاه، در اینجا ما باید سرمایه من، درست است؟ 376 00:27:08,470 --> 00:27:14,550 بنابراین ما می دانیم که من می رود به O به خاطر من + 6 O. 377 00:27:14,550 --> 00:27:18,740 اما ما می خواهیم اطمینان حاصل کنید که آن O خواهد بود O. پایتخت 378 00:27:18,740 --> 00:27:22,940 پس در واقع، این نوع از رفتن به تغییر ورودی ما می باشد. 379 00:27:22,940 --> 00:27:26,870 بنابراین آیا آن را بزرگ خواهد شد و یا نوع تغییر روش است که ما مقابله با آن نیست. 380 00:27:26,870 --> 00:27:32,360 بنابراین اگر ما با استفاده از تابع isupper در آن شاخص خاص، 381 00:27:32,360 --> 00:27:36,480 بنابراین isupper ("من")، که برای ما درست برمی گرداند، بنابراین ما می دانیم که آن را به بالا. 382 00:27:36,480 --> 00:27:40,360 تا سپس بر اساس آن، بعد ما را به یک فرمول 383 00:27:40,360 --> 00:27:42,750 که شما با استفاده از تغییر چیز در سزار 384 00:27:42,750 --> 00:27:46,560 بنابراین پس اساسا، رفتن به یک فرمول کمی متفاوت وجود دارد اگر آن را بزرگ 385 00:27:46,560 --> 00:27:50,670 به عنوان مخالف به کوچک. را حس؟ 386 00:27:51,020 --> 00:27:52,760 آره. بدون نگرانی. 387 00:27:54,900 --> 00:27:58,990 من یک کمی در مورد اضافه کردن 6 به یک نامه، که کاملا حس صحبت کردیم 388 00:27:58,990 --> 00:28:05,500 به جز زمانی که ما از نوع درک است که این کاراکتر ها 389 00:28:05,500 --> 00:28:08,920 نوع قابل تعویض با اعداد صحیح هستند. 390 00:28:08,920 --> 00:28:11,250 آنچه ما انجام می دهیم این است که ما نوع ریخته گری استفاده ضمنی است. 391 00:28:11,250 --> 00:28:18,100 خواهیم به ریخته گری و کمی بعد در جایی که شما را یک مقدار و آن را روشن کنید و شما را به یک نوع متفاوت 392 00:28:18,100 --> 00:28:20,440 از آن بود. 393 00:28:20,440 --> 00:28:25,910 اما با این pset ما قادر خواهیم بود به نوع قابل معاوضه با استفاده از شخصیت های 394 00:28:25,910 --> 00:28:30,880 و مربوط به خود را در مقادیر عدد صحیح. 395 00:28:30,880 --> 00:28:35,140 بنابراین اگر شما به سادگی قفس یا جعبه گذاردن یک شخصیت تنها با نقل قول تنها، 396 00:28:35,140 --> 00:28:40,390 پس از آن شما قادر خواهید بود تا با آن کار با اعداد صحیح، برخورد با آن را به عنوان یک عدد صحیح است. 397 00:28:40,390 --> 00:28:48,040 بنابراین C پایتخت مربوط به 67 است. F کوچک تا 102 می باشد. 398 00:28:48,040 --> 00:28:51,480 باز هم، اگر شما میخواهید بدانید که این ارزش ها، در جدول ASCII شما نگاه. 399 00:28:51,480 --> 00:28:56,160 پس اجازه دهید به برخی از نمونه های چگونه شما ممکن است قادر به جمع و تفریق و اضافه کردن، 400 00:28:56,160 --> 00:29:03,130 شما در واقع می تواند واقعا با این شخصیت ها کار می کنند، آنها را به جای یکدیگر استفاده است. 401 00:29:03,870 --> 00:29:11,350 من می گویم که ASCIIMath است رفتن به محاسبه علاوه بر این از یک شخصیت را به یک عدد صحیح 402 00:29:11,350 --> 00:29:17,590 و پس از آن را نمایش می دهد و همچنین شخصیت حاصل مقدار حاصل ASCII. 403 00:29:17,590 --> 00:29:22,290 و بنابراین در اینجا من گفت - معامله we'll با این بخش بعد - 404 00:29:22,290 --> 00:29:29,100 اما در واقع، من و گفت که کاربر باید ASCIIMath اجرا به همراه یک کلید می گویند. 405 00:29:29,100 --> 00:29:30,880 و من و گفت که این کلید برای رفتن به شماره 406 00:29:30,880 --> 00:29:34,600 که با آن ما قصد داریم برای اضافه کردن این شخصیت است. 407 00:29:34,600 --> 00:29:38,560 بنابراین در اینجا توجه کنید که از من خواستار یک کلید، 408 00:29:38,560 --> 00:29:40,590 از من خواسته بودند که به آنها دادن من 1 چیز، 409 00:29:40,590 --> 00:29:45,600 من فقط می خواهم به قبول / asciimath و یک کلید. 410 00:29:45,600 --> 00:29:49,330 بنابراین من قصد دارم به تقاضا که argc تا 2 برابر است. 411 00:29:49,330 --> 00:29:54,360 اگر این نیست، پس من قصد دارم به بازگشت (1) و این برنامه خارج شوید. 412 00:29:55,070 --> 00:29:58,540 بنابراین من گفت: کلید رفتن به اولین آرگومان خط فرمان، 413 00:29:58,540 --> 00:30:05,080 آن را برای رفتن به مرحله دوم، و به عنوان شما اینجا را ببینید. 414 00:30:05,080 --> 00:30:11,790 من قصد دارم به نوبه خود آن را به یک عدد صحیح است. 415 00:30:15,740 --> 00:30:19,230 سپس من قصد دارم برای تنظیم یک شخصیت به تحقیق است. 416 00:30:19,230 --> 00:30:23,970 توجه داشته باشید که نوع CHR متغیر است که در واقع یک عدد صحیح است. 417 00:30:23,970 --> 00:30:30,480 راهی که من قادر به استفاده از R به عنوان یک عدد صحیح است با پوشاندن آن را با این نقل قول تکی. 418 00:30:33,850 --> 00:30:40,560 پس به دستور printf ما به جایی برگردان که ما دارای یک نگهدارنده برای یک شخصیت 419 00:30:40,560 --> 00:30:43,590 و پس از آن یک حفره یا سوراخ برای یک عدد صحیح، 420 00:30:43,590 --> 00:30:49,450 کاراکتر CHR نشان داده شده است، و عدد صحیح کلیدی است. 421 00:30:49,450 --> 00:30:54,320 و به این ترتیب پس از آن ما قصد داریم تا در نتیجه اضافه کردن 2 با یکدیگر است. 422 00:30:54,320 --> 00:30:58,420 بنابراین ما قصد داریم برای اضافه کردن R + هر کلید است، 423 00:30:58,420 --> 00:31:03,520 و پس از آن ما قصد چاپ نتیجه آن است. 424 00:31:06,210 --> 00:31:14,220 را asciimath. آن را تا به امروز است، به طوری که فقط اجرا asciimath. 425 00:31:14,220 --> 00:31:18,290 آه، اما دیدن، آن را نشانی از هیچ کاری انجام نمی از آنجا که ما در واقع آن یک کلید به من بدهید. 426 00:31:18,290 --> 00:31:23,850 بنابراین، هنگامی که آن را فقط به بازگشت 1، تابع اصلی ما، آن را فقط به بازگشت به ما. 427 00:31:23,850 --> 00:31:29,250 بنابراین پس از یک کلید عبور کنیم. کسی که به من یک عدد را به شما بدهد. >> [دانشجو] 4. 428 00:31:29,250 --> 00:31:30,920 4. باشه. 429 00:31:30,920 --> 00:31:39,280 بنابراین تحقیق 4 است که به ما V، که مربوط به مقدار ASCII از 118 به افزایش است. 430 00:31:39,280 --> 00:31:43,880 پس از آن نوع را حس می کند که - 431 00:31:43,880 --> 00:31:51,250 در واقع، می تواند به شما من بپرسید، چه چیزی به شما فکر می کنم ارزش ASCII از R است اگر R + 4 118؟ 432 00:31:53,070 --> 00:31:55,470 سپس آره، R 114. 433 00:31:55,470 --> 00:32:03,010 بنابراین اگر شما در جدول ASCII نگاه کنید و سپس مطمئن شوید به اندازه کافی، شما خواهید دید که تحقیق توسط 114 نشان داده شده است. 434 00:32:03,010 --> 00:32:08,610 بنابراین در حال حاضر که ما می دانیم که ما می توانیم از اعداد صحیح را به کاراکتر اضافه کنید، این به نظر می رسد خیلی ساده است. 435 00:32:08,610 --> 00:32:12,740 ما فقط رفتن به تکرار بیش از یک رشته مانند ما در مثال قبل را دیدم. 436 00:32:12,740 --> 00:32:17,170 خواهیم بررسی کنید که آیا آن نامه. 437 00:32:17,170 --> 00:32:20,420 اگر از آن است، سپس ما آن را با هر کلید تغییر است. 438 00:32:20,420 --> 00:32:23,650 بسیار ساده است، به جز زمانی که شما دریافت می کنید به مانند این، 439 00:32:23,650 --> 00:32:32,140 شما می بینید که Z، نمایندگی 122، پس از آن که شما یک شخصیت متفاوت. 440 00:32:32,140 --> 00:32:37,770 ما در واقع می خواهم به ماندن در داخل الفبای ما، درست است؟ 441 00:32:37,770 --> 00:32:43,180 بنابراین ما نیاز به کشف کردن برخی از راه را از نوع کاغذ بسته بندی در اطراف. 442 00:32:43,180 --> 00:32:47,190 هنگامی که شما در رسیدن به ZED و شما می خواهید به یک شماره خاص را افزایش می دهد، 443 00:32:47,190 --> 00:32:51,230 شما نمی خواهید برای رفتن به فراتر از بخش الفبای ASCII؛ 444 00:32:51,230 --> 00:32:54,140 شما می خواهید برای قرار دادن تمام راه را به A. 445 00:32:54,140 --> 00:32:58,550 اما به خاطر داشته باشید که شما هنوز حفظ این مورد. 446 00:32:58,550 --> 00:33:00,980 بنابراین دانستن که نامه نمی تواند تبدیل به نمادهای 447 00:33:00,980 --> 00:33:05,290 درست مثل نمادهای نمی خواهید به تغییر و همچنین. 448 00:33:05,290 --> 00:33:08,170 در آخرین pset شما قطعا نیازی به، 449 00:33:08,170 --> 00:33:14,310 اما یک گزینه برای اجرای pset حریص خود را با استفاده از تابع مدول. 450 00:33:14,310 --> 00:33:17,230 اما در حال حاضر ما در واقع رفتن به نیاز به استفاده از مدول 451 00:33:17,230 --> 00:33:19,900 پس بیش از این بیت کمی اجازه دهید. 452 00:33:19,900 --> 00:33:26,920 اساسا، هنگامی که شما به Y، X پیمانه است که به شما می دهد باقی مانده از X توسط Y تقسیم می کند. 453 00:33:26,920 --> 00:33:30,930 در اینجا برخی از نمونه ها در اینجا. در حال حاضر 27٪ 15. 454 00:33:30,930 --> 00:33:36,200 در واقع، اگر 15 شما تفریق از 27 را هر چند بار که ممکن است بدون گرفتن منفی 455 00:33:36,200 --> 00:33:39,060 پس از آن شما می توانید 12 باقی مانده است. 456 00:33:39,060 --> 00:33:44,650 به طوری که نوع مانند در زمینه ریاضی است، اما چگونه می توانیم در واقع استفاده از این؟ 457 00:33:44,650 --> 00:33:47,100 این رفتن مفید باشد برای wrapover ما. 458 00:33:47,100 --> 00:33:55,420 برای این کار، اجازه دهید فقط می گویند من از تو به 3 گروه تقسیم. 459 00:33:55,420 --> 00:33:58,010 گاهی اوقات شما این کار را در گروه ها و چیزی شبیه به آن. 460 00:33:58,010 --> 00:34:01,320 بگو من گفت: "بسیار خوب، من می خواهم همه شما را به 3 تقسیم شده است." 461 00:34:01,320 --> 00:34:04,240 چگونه ممکن است به شما انجام این کار؟ 462 00:34:04,240 --> 00:34:06,810 [پاسخ دانش آموز نامفهوم] بله، دقیقا. تعداد خاموش است. باشه. 463 00:34:06,810 --> 00:34:10,260 اجازه دهید در واقع انجام این کار است. آیا شما می خواهید را شروع کنم؟ 464 00:34:10,260 --> 00:34:13,810 [دانش آموزان شمارش کردن] 1، 2، 3، 4. 465 00:34:13,810 --> 00:34:16,620 اما به یاد داشته باشید ... >> [دانشجو] اوه، ببخشید. 466 00:34:16,620 --> 00:34:18,730 این نقطه واقعا خوب است. 467 00:34:18,730 --> 00:34:24,130 شما گفتید 4، اما ما در واقع می خواهم به شما بگویم 1 چرا که ما فقط می خواهیم 3 گروه. 468 00:34:24,130 --> 00:34:30,159 پس، چگونه - نه، که واقعا یک مثال خوب این دلیل است که پس چگونه ممکن است 1 به شما می گویند؟ 469 00:34:30,159 --> 00:34:33,370 ارتباط بین 4 و 1 چه خبر؟ 470 00:34:33,370 --> 00:34:36,760 خب، 4 مد 3 1. 471 00:34:36,760 --> 00:34:41,460 بنابراین اگر شما در ادامه، به شما خواهد بود 2. 472 00:34:41,460 --> 00:34:44,540 بنابراین ما باید 1، 2، 3، 1، 2. 473 00:34:44,540 --> 00:34:49,420 باز هم، شما در واقع فرد 5. چگونه شما می دانید برای گفتن 2 به جای 5؟ 474 00:34:49,420 --> 00:34:53,760 شما می گویید 2 5 مد 3. 475 00:34:53,760 --> 00:34:59,100 من می خواهم ببینید که چگونه بسیاری از گروه 3 باقی مانده، پس از آن که نظم هستم اول 476 00:34:59,100 --> 00:35:02,860 و تا بعد اگر ما در طول اتاق ادامه داد، 477 00:35:02,860 --> 00:35:07,760 پس از آن ما خواهد بود که ما همیشه در واقع با استفاده از تابع وزارت دفاع به خودمان 478 00:35:07,760 --> 00:35:09,990 به دفعات مشاهده شده نوع خاموش است. 479 00:35:09,990 --> 00:35:14,490 این نوع بیشتر از مثال ملموس از اینکه چگونه ممکن است استفاده از پیمانه 480 00:35:14,490 --> 00:35:17,960 چون من مطمئن هستم که بسیاری از ما احتمالا از طریق این روند رفته 481 00:35:17,960 --> 00:35:19,630 جایی که ما تا به حال به دفعات مشاهده شده خاموش. 482 00:35:19,630 --> 00:35:21,840 هر گونه سوال در مورد پیمانه؟ 483 00:35:21,840 --> 00:35:25,360 این خواهد بود که بسیار مهم است به درک این مفاهیم، 484 00:35:25,360 --> 00:35:28,640 بنابراین من می خواهم تا مطمئن شوید که شما بچه ها می دانند. 485 00:35:28,640 --> 00:35:34,660 [دانشجو] اگر هیچ باقی مانده وجود دارد، آیا آن را به شما تعداد واقعی؟ 486 00:35:34,660 --> 00:35:40,430 اگر یکی از 3 نخست از آنها آن را انجام داده بود، آن را به آنها را با توجه به آنچه آنها در واقع، 487 00:35:40,430 --> 00:35:43,310 و یا آن را به آنها داده [نامفهوم] >> که یک سوال خوبی است. 488 00:35:43,310 --> 00:35:48,750 هنگامی که باقی مانده برای باقی مانده وجود دارد - به طوری که می گویند شما باید 6 مد 3 - 489 00:35:48,750 --> 00:35:52,340 که در واقع به شما می دهد 0. 490 00:35:53,670 --> 00:35:57,290 ما که کمی بعد صحبت خواهیم کرد. 491 00:35:58,810 --> 00:36:07,720 آه، بله، به عنوان مثال، 3rd نفر 3 - وزارت دفاع 3 است که در واقع 0 اما او گفت 3. 492 00:36:07,720 --> 00:36:14,900 به طوری که این نوع مانند گرفتن داخلی، به عنوان مثال، 493 00:36:14,900 --> 00:36:17,620 مانند بسیار خوب، اگر وزارت دفاع 0 است و سپس من قصد دارم به فرد 3. 494 00:36:17,620 --> 00:36:22,740 اما ما را به نوعی ما چگونه ممکن است بخواهید برای مقابله با آنچه که 0 است بعد دریافت کنید. 495 00:36:22,740 --> 00:36:32,750 بنابراین در حال حاضر ما به نحوی راه نقشه برداری ZED به نامه است. 496 00:36:32,750 --> 00:36:34,920 بنابراین در حال حاضر از طریق این مثالها رفته ایم، 497 00:36:34,920 --> 00:36:37,880 ما نوع سزار چگونه ممکن است کار کند. 498 00:36:37,880 --> 00:36:42,640 همانطور که می بینید 2 حروف و سپس شما آنها را تغییر. 499 00:36:42,640 --> 00:36:44,430 پس سعی و بیان که در شرایط استفاده از فرمول است. 500 00:36:44,430 --> 00:36:46,940 این فرمول است که در واقع در تنظیمات به شما داده شده است، 501 00:36:46,940 --> 00:36:52,070 اما نوع بیایید نگاه را از طریق آنچه هر متغیر به معنی. 502 00:36:52,070 --> 00:36:55,000 نتیجه نهایی ما این است که برای رفتن به متن رمزی. 503 00:36:55,000 --> 00:36:58,300 پس این می گوید که شخصیت i ام از متن رمزی 504 00:36:58,300 --> 00:37:02,500 رفتن به مربوط به شخصیت i ام از متنی است. 505 00:37:02,500 --> 00:37:08,130 این را حس می کند زیرا ما می خواهیم که همیشه در پوشش این چیزها. 506 00:37:08,130 --> 00:37:13,480 پس از آن که برای رفتن به شخصیت i ام از متن رمزی به علاوه K است که کلید ما - 507 00:37:13,480 --> 00:37:17,230 که حس می کند - و سپس به ما از این وزارت دفاع 26. 508 00:37:17,230 --> 00:37:19,860 به یاد داشته باشید زمانی که ما تا به حال ZED 509 00:37:19,860 --> 00:37:24,190 ما به شخصیت، به طوری که ما می خواستیم به آن وزارت دفاع 510 00:37:24,190 --> 00:37:26,540 و نوع بسته بندی کردن در اطراف حروف الفبا. 511 00:37:26,540 --> 00:37:33,430 پس از ZED شما را به، B، C، D، تا زمانی که شما به عدد سمت راست شدم. 512 00:37:33,430 --> 00:37:44,690 بنابراین ما می دانیم که ZED، اگر + 6، که ما F چون بعد از ZED می آید A، B، C، D، E، F. 513 00:37:44,690 --> 00:37:52,530 بنابراین به یاد داشته باشید که ما برای مطمئن می دانیم که ZED + 6 به ما F را بگذارید. 514 00:37:52,530 --> 00:38:03,530 در مقادیر ASCII، Z 122 است و F 102. 515 00:38:03,530 --> 00:38:10,570 بنابراین ما باید برای پیدا کردن بعضی از راه های ساخت فرمول سزار ما به ما 102 516 00:38:10,570 --> 00:38:13,590 پس از مصرف در 122 می باشد. 517 00:38:13,590 --> 00:38:19,550 بنابراین اگر ما تنها این فرمول، درصد ('Z' + 6) 26، که در واقع به شما 24 اعمال می شود 518 00:38:19,550 --> 00:38:25,980 به خاطر 122 + 6، 128؛ 128 26٪ به شما می دهد 24 باقی مانده. 519 00:38:25,980 --> 00:38:29,140 اما واقعا به این معنی نیست F. که قطعا 102 نیست. 520 00:38:29,140 --> 00:38:33,590 همچنین نامه 6 در الفبای نیست. 521 00:38:33,590 --> 00:38:41,550 بنابراین بدیهی است که ما باید به برخی از راه های افزایش سرعت این بیت کمی است. 522 00:38:42,970 --> 00:38:51,340 در شرایط استفاده از حروف الفبای انگلیسی را به طور منظم، ما می دانیم که Z نامه 26 و F 6. 523 00:38:51,340 --> 00:38:55,460 اما ما در علم کامپیوتر هستید، بنابراین ما در حال رفتن به صفحه اول در 0. 524 00:38:55,460 --> 00:39:00,690 بنابراین پس از آن به جای Z شماره 26، ما در حال رفتن به می گویند شماره 25 525 00:39:00,690 --> 00:39:02,630 چرا که 0 است. 526 00:39:02,630 --> 00:39:04,770 بنابراین در حال حاضر اعمال این فرمول به شما اجازه می دهد تا. 527 00:39:04,770 --> 00:39:11,710 Z 25 + 6 نشان داده شده است، که به شما می دهد 31. 528 00:39:11,710 --> 00:39:15,790 و 31 وزارت دفاع 26 به شما می دهد 5 به عنوان یک باقی مانده است. 529 00:39:15,790 --> 00:39:20,500 عالی است چرا که ما می دانیم که F نامه 5 در الفبای. 530 00:39:20,500 --> 00:39:26,400 اما هنوز F نمی باشد، درست است؟ هنوز هم 102 است. 531 00:39:26,400 --> 00:39:32,730 پس برای این pset، یک چالش خواهد شد تلاش برای پیدا کردن این رابطه 532 00:39:32,730 --> 00:39:36,910 بین تبدیل این مقادیر ASCII و شاخص به ترتیب حروف الفبا. 533 00:39:36,910 --> 00:39:40,280 اساسا، آنچه که شما می خواهید برای انجام این کار، شما می خواهید برای شروع کردن با ارزش های ASCII، 534 00:39:40,280 --> 00:39:45,390 اما بعد از آن شما می خواهید به نوعی ترجمه است که به یک شاخص به ترتیب حروف الفبا 535 00:39:45,390 --> 00:39:52,610 پس از آن چه نامه ای باید آن را محاسبه - در واقع، در صفحه اول خود را به ترتیب حروف الفبا 536 00:39:52,610 --> 00:39:57,660 از شخصیت صفر - پس از آن بازگشت به ارزش های ASCII ترجمه. 537 00:39:57,660 --> 00:40:04,870 بنابراین اگر شما شلاق از جدول ASCII خود را، پس از آن و پیدا کردن روابط بین، می گویند، 102 و 5 538 00:40:04,870 --> 00:40:10,440 یا از 122 و 25. 539 00:40:12,140 --> 00:40:15,690 ما کلید خود را از آرگومان های خط فرمان بدست ما رو بدست متنی، 540 00:40:15,690 --> 00:40:17,520 ما آن را enciphered. 541 00:40:17,520 --> 00:40:19,820 در حال حاضر همه ما را ترک کرده اند به انجام آن را چاپ کنید. 542 00:40:19,820 --> 00:40:22,040 ما می توانیم انجام دهیم این است که یک زن و شوهر از راه های مختلف. 543 00:40:22,040 --> 00:40:24,570 آنچه ما می توانیم انجام دهیم این است که در واقع به عنوان ما به همراه چاپ. 544 00:40:24,570 --> 00:40:28,250 ما تکرار کاراکتر در رشته، 545 00:40:28,250 --> 00:40:31,660 ما به سادگی می تواند درست و مناسب آن را چاپ زمانی که ما آن را محاسبه. 546 00:40:31,660 --> 00:40:36,030 متناوبا، شما همچنین می تواند آن را در یک آرایه ذخیره و آرایه ای از کاراکتر ها 547 00:40:36,030 --> 00:40:39,280 و در پایان که بیش از کل آرایه تکرار و آن را چاپ کنید. 548 00:40:39,280 --> 00:40:40,980 بنابراین شما باید یک زن و شوهر از گزینه های که برای. 549 00:40:40,980 --> 00:40:47,280 و به یاد داشته باشید که٪ C است برای رفتن به مکان نگه دار برای چاپ یک کاراکتر است. 550 00:40:47,280 --> 00:40:50,420 بنابراین ما باید سزار، و در حال حاضر ما در حرکت به Vigenere، 551 00:40:50,420 --> 00:40:57,580 که بسیار شبیه به سزار، اما فقط کمی پیچیده تر است. 552 00:40:57,580 --> 00:41:03,310 بنابراین اساسا با Vigenere است که شما قصد عبور در یک کلمه کلیدی است. 553 00:41:03,310 --> 00:41:06,510 بنابراین به جای استفاده از یک شماره، شما در حال رفتن به یک رشته، 554 00:41:06,510 --> 00:41:09,200 و به طوری که به عنوان کلمه کلیدی خود را عمل می کنند. 555 00:41:09,200 --> 00:41:14,440 سپس، به طور معمول، شما در حال رفتن به سریع برای یک رشته از کاربر دریافت کنید 556 00:41:14,440 --> 00:41:19,050 و پس از آن و پس از آن سری کردن پشت متن رمزی را به آنها بدهید. 557 00:41:19,050 --> 00:41:24,650 بنابراین همان طور که گفتم، آن را بسیار شبیه به سزار، به جز به جای تغییر توسط یک شماره خاص، 558 00:41:24,650 --> 00:41:30,620 است که در واقع رفتن به تغییر در هر زمان از یک شخصیت به شخصیت است. 559 00:41:30,620 --> 00:41:34,890 به نمایندگی که تعداد واقعی به تغییر، آن را با حروف صفحه کلید نشان داده شده است. 560 00:41:34,890 --> 00:41:43,150 بنابراین اگر شما در یک شیفت، به عنوان مثال وارد کنید، پس از آن است که به یک تغییر از 0 مطابقت دارد. 561 00:41:43,150 --> 00:41:45,900 پس از آن دوباره برگشت به فهرست الفبایی. 562 00:41:45,900 --> 00:41:49,100 چه ممکن است مفید باشد اگر شما می بینید که ما در واقع با ارزش ASCII خرید و فروش 563 00:41:49,100 --> 00:41:51,790 و همچنین به عنوان حروف، و همچنین به عنوان شاخص به ترتیب حروف الفبا، 564 00:41:51,790 --> 00:41:58,020 شاید و یا پیدا کردن خود را در جدول ASCII است که نشان می دهد شاخص به ترتیب حروف الفبا از 0 تا 25 565 00:41:58,020 --> 00:42:03,750 از طریق Z، و ارزش های ASCII به طوری که شما از نوع رابطه می توانید ببینید 566 00:42:03,750 --> 00:42:07,020 و طرح کنید و سعی کنید و پیدا کردن بعضی از الگوها. 567 00:42:07,020 --> 00:42:11,010 به طور مشابه، اگر شما به عنوان مثال برخی از تغییر توسط F - 568 00:42:11,010 --> 00:42:21,110 و این هر دو F حروف کوچک یا بزرگ است - پس از آن است که تا 5 مطابقت دارد. 569 00:42:21,110 --> 00:42:24,180 آیا ما تا کنون؟ 570 00:42:25,770 --> 00:42:30,050 فرمول Vigenere کمی متفاوت است. 571 00:42:30,050 --> 00:42:32,960 در واقع، شما می بینید که آن را درست مثل سزار، 572 00:42:32,960 --> 00:42:37,390 جز به جای فقط K J K اول. 573 00:42:37,390 --> 00:42:44,810 توجه داشته باشید که ما با استفاده از نیست، زیرا در اصل، طول کلمه کلیدی 574 00:42:44,810 --> 00:42:49,850 طول متن رمزی ما نیستند. 575 00:42:49,850 --> 00:42:56,130 این خواهد بود که واضح تر بیتی زمانی که ما می بینیم به عنوان مثال که من آن را کمی بعد. 576 00:42:56,130 --> 00:43:03,160 در واقع، اگر شما برنامه را اجرا می کنید با یک کلمه کلیدی ohai، 577 00:43:03,160 --> 00:43:08,560 پس از آن است که این بدان معنی است که در هر زمان، ohai است برای رفتن به تغییر شما. 578 00:43:08,560 --> 00:43:11,060 بنابراین با توجه به موقعیت شما در کلمه کلیدی خود را، 579 00:43:11,060 --> 00:43:15,800 شما در حال رفتن به تغییر برخی از شخصیت های متن رمزی خود را توسط آن مقدار است. 580 00:43:15,800 --> 00:43:19,630 باز هم، درست مثل سزار، ما می خواهیم اطمینان حاصل کنید که سرمایه همه چیز ما حفظ 581 00:43:19,630 --> 00:43:22,900 و ما فقط نامه برمز نوشتن، شخصیت ها و یا فضاهای. 582 00:43:22,900 --> 00:43:26,330 بنابراین بازگشت به سزار در توابع است که شما ممکن است مورد استفاده قرار گیرد، 583 00:43:26,330 --> 00:43:32,570 راهی که شما تصمیم گرفت که چگونه برای تغییر همه چیز، و درخواست از آن است که به برنامه شما در اینجا. 584 00:43:32,570 --> 00:43:35,260 پس از این نقشه. 585 00:43:35,260 --> 00:43:39,680 ما یک متنی که ما از کاربر را از GetString بدست 586 00:43:39,680 --> 00:43:44,090 گفت: این ... CS50 است! 587 00:43:44,090 --> 00:43:47,090 سپس ما باید کلید واژه ohai. 588 00:43:47,090 --> 00:43:50,930 4 حرف اول خیلی ساده است. 589 00:43:50,930 --> 00:43:55,580 ما می دانیم که T در حال رفتن به O منتقل می شود، 590 00:43:55,580 --> 00:44:01,990 پس از آن در ساعت توسط H منتقل می شود، من در حال رفتن به یک منتقل شده است. 591 00:44:01,990 --> 00:44:04,610 در اینجا شما می بینید که نشان دهنده 0 592 00:44:04,610 --> 00:44:11,940 پس ارزش نهایی است که در واقع فقط همان حرف قبل است. 593 00:44:11,940 --> 00:44:15,250 سپس S توسط منتقل شده است. 594 00:44:15,250 --> 00:44:19,370 اما پس از آن شما باید این دوره اینجا کلیک کنید. 595 00:44:19,370 --> 00:44:25,960 ما نمی خواهیم به سری کردن که، به طوری که پس از آن ما انجام آن را با هر چیزی را تغییر نمی دهد 596 00:44:25,960 --> 00:44:31,280 و فقط از چاپ دوره بدون تغییر باقی مانده است. 597 00:44:31,280 --> 00:44:38,020 [دانشجوی] من درک نمی کنم که چگونه شما می دانید که این منتقل - کجا شما - >> اوه، ببخشید. 598 00:44:38,020 --> 00:44:41,620 در بالا در اینجا شما می بینید که خط فرمان ohai بحث در اینجا، 599 00:44:41,620 --> 00:44:43,740 که رفتن را به عنوان کلمه کلیدی می باشد. 600 00:44:43,740 --> 00:44:49,550 و بنابراین اساسا، شما در حال دوچرخه سواری بیش از حرف در کلمه کلیدی است. 601 00:44:49,550 --> 00:44:52,020 [دانشجوی] ای است که برای رفتن به تغییر همان - 602 00:44:52,020 --> 00:44:56,260 بنابراین O مربوط به تعداد معینی در الفبای. 603 00:44:56,260 --> 00:44:58,400 [دانشجو] درست است. اما در جایی که شما می توانید به بخش CS50؟ 604 00:44:58,400 --> 00:45:02,540 آه. GetString جایی که دوست دارید، در حال "من یک رشته برای رمزگذاری است." 605 00:45:02,540 --> 00:45:07,510 [دانشجوی] آنها در حال رفتن به شما که بحث ها و منازعات را به تغییر توسط 606 00:45:07,510 --> 00:45:09,380 و پس از آن شما برای رشته اول خود را بپرسید. >> آره. 607 00:45:09,380 --> 00:45:12,440 بنابراین، هنگامی که آنها اجرای برنامه، آنها در حال رفتن به شامل کلمه کلیدی 608 00:45:12,440 --> 00:45:14,740 در خط فرمان استدلال خود را هنگامی که آن را اجرا می کنند. 609 00:45:14,740 --> 00:45:19,740 سپس هنگامی که شما بررسی کرده اید که آنها در واقع با توجه به شما 1 و نه بیشتر، نه کمتر، 610 00:45:19,740 --> 00:45:23,750 پس از آن شما برای رفتن به آنها را برای یک رشته بی درنگ، می گویند، "من یک رشته را به من بده." 611 00:45:23,750 --> 00:45:27,630 به طوری که که در این مورد را به شما داده ام این است ... CS50 است! 612 00:45:27,630 --> 00:45:32,090 بنابراین پس شما قصد استفاده از آن و استفاده از ohai و تکرار بیش از. 613 00:45:32,090 --> 00:45:38,200 توجه داشته باشید که در اینجا در حال حاضر بیش رمزنگاری دوره های قلم، 614 00:45:38,200 --> 00:45:51,660 اما در شرایط استفاده از موضع ما برای ohai، یک بعدی ما با استفاده از O. 615 00:45:51,660 --> 00:45:54,990 در این مورد، آن را کمی سخت تر برای دیدن زیرا که 4، 616 00:45:54,990 --> 00:45:57,710 بنابراین ادامه کمی اجازه دهید. فقط با من می چسبد. 617 00:45:57,710 --> 00:46:02,960 سپس ما به من و S هستند که پس از ترجمه توسط O و H به ترتیب. 618 00:46:02,960 --> 00:46:09,370 سپس ما یک فضا، و به همین ترتیب پس از آن ما می دانیم که ما می خواهیم به سری کردن فضاهای. 619 00:46:09,370 --> 00:46:18,930 اما توجه داشته باشید که به جای رفتن به این نقطه، 620 00:46:18,930 --> 00:46:28,330 ما در حال رمزنگاری - من نمی دانم اگر شما می توانید آن را ببینید - حق در اینجا. 621 00:46:28,330 --> 00:46:33,710 پس از آن مانند شما در واقع از پیش تعیین شده، می گویند، ای در اینجا قرار می گیرد، در ساعت می رود در اینجا، 622 00:46:33,710 --> 00:46:39,200 می رود در اینجا، من در اینجا قرار می گیرد، O، H، A، I، O، H،، من. شما این کار را نمی کنند. 623 00:46:39,200 --> 00:46:43,760 شما تنها موقعیت خود را در کلید واژه انتقال 624 00:46:43,760 --> 00:46:51,020 هنگامی که شما می دانید که شما در واقع برای رفتن به رمزنگاری نامه واقعی است. 625 00:46:51,020 --> 00:46:53,920 آیا این نوع را حس؟ 626 00:46:53,920 --> 00:46:55,800 باشه. 627 00:46:56,490 --> 00:46:58,500 پس فقط برخی از یادآوری. 628 00:46:58,500 --> 00:47:03,760 شما می خواهید مطمئن شوید که شما را به نامه بعدی در کلمه کلیدی خود را در پیشبرد 629 00:47:03,760 --> 00:47:06,390 اگر شخصیت در متنی شما یک نامه. 630 00:47:06,390 --> 00:47:09,120 پس بگو ما در ای هستید. 631 00:47:09,120 --> 00:47:19,310 ما می بینیم که شخصیت بعدی، شاخص من از متنی، یک عدد باشد، به عنوان مثال. 632 00:47:19,310 --> 00:47:31,630 پس ما J، شاخص برای کلید واژه ما پیشرفت نمی کند، تا زمانی که نامه دیگری برسد. 633 00:47:31,630 --> 00:47:36,230 باز هم، شما همچنین می خواهید مطمئن شوید که شما کمر بند یا چیزی که دور بدن شخصی بسته باشند را به ابتدای کلمه کلیدی 634 00:47:36,230 --> 00:47:37,770 هنگامی که شما در پایان آن هستیم. 635 00:47:37,770 --> 00:47:42,030 اگر شما اینجا را ببینید به ما در من هستید، یک بعدی به صورت O است. 636 00:47:42,030 --> 00:47:47,690 بنابراین شما می خواهید برای پیدا کردن بعضی از راه به ابتدای کلمه کلیدی خود را که قادر به شال 637 00:47:47,690 --> 00:47:49,470 هر بار که شما رسیدن به انتهای. 638 00:47:49,470 --> 00:47:55,040 و به این ترتیب دوباره، چه نوع اپراتور مفید است که در مورد بسته بندی در اطراف؟ 639 00:47:56,630 --> 00:47:59,840 مانند شمارش کردن عنوان مثال. 640 00:47:59,840 --> 00:48:03,710 [دانش آموز] نشانه درصد است. >> آره، علامت درصد است، که باقی مانده است. 641 00:48:03,710 --> 00:48:11,250 بنابراین باقی مانده را در دستی به اینجا می آیند، زمانی که شما می خواهید برای قرار دادن شاخص در ohai شما. 642 00:48:11,250 --> 00:48:17,700 و فقط سریع نکته: سعی کنید به فکر کردن در بسته بندی بیش از کلمه کلیدی کمی شبیه خارج از شمارش، 643 00:48:17,700 --> 00:48:23,590 جایی که اگر 3 گروه، شخص 4 وجود دارد، 644 00:48:23,590 --> 00:48:30,610 تعداد آنها که گفتند 4 مد 3، که 1 بود. 645 00:48:30,610 --> 00:48:32,880 بنابراین کنید و سعی کنید از آن فکر می کنم که در راه است. 646 00:48:34,770 --> 00:48:42,740 همانطور که شما در این فرمول را دیدم، هر کجا که شما CI و سپس PI اما بعد از آن KJ، 647 00:48:42,740 --> 00:48:44,700 شما می خواهید مطمئن شوید که مسیر شما را از آن. 648 00:48:44,700 --> 00:48:47,580 شما لازم نیست که آن را من تماس بگیرید، شما لازم نیست که به آن J، 649 00:48:47,580 --> 00:48:53,270 اما شما می خواهید مطمئن شوید که مسیر شما را از موقعیت است که شما در متنی شما 650 00:48:53,270 --> 00:48:55,790 و همچنین به عنوان موقعیتی است که شما در در کلمه کلیدی خود هستید 651 00:48:55,790 --> 00:48:59,840 زیرا آنها نه لزوما به همان. 652 00:48:59,840 --> 00:49:06,400 نه فقط کلید واژه ها - می تواند آن را به طول به طور کامل متفاوت از متنی شما است. 653 00:49:06,400 --> 00:49:09,140 همچنین، متنی شما هستند، اعداد و حروف وجود دارد، 654 00:49:09,140 --> 00:49:14,450 پس از آن کاملا مطابقت کردن با هم. بله. 655 00:49:14,450 --> 00:49:19,280 [دانشجوی] یک تابع برای تغییر مورد وجود دارد؟ 656 00:49:19,280 --> 00:49:24,530 آیا می توانید یک تغییر به سرمایه؟ >> بله، قطعا وجود دارد. 657 00:49:24,530 --> 00:49:27,890 شما می توانید - به اعتقاد من toupper آن، تمام کلمه 1. 658 00:49:30,650 --> 00:49:36,310 اما هنگامی که شما در حال تلاش برای رمز چیزها و حفظ متن، 659 00:49:36,310 --> 00:49:39,350 بهتر است اساسا به پرونده های جداگانه است. 660 00:49:39,350 --> 00:49:42,040 اگر آن را بزرگ، و سپس شما می خواهید به این تغییر 661 00:49:42,040 --> 00:49:46,460 چرا که در فرمول خود را، زمانی که شما به عقب نگاه ما را به نوع برو 662 00:49:46,460 --> 00:49:50,900 قابل معاوضه بین راه ASCII به نمایندگی از اعداد 663 00:49:50,900 --> 00:49:55,020 و فهرست الفبایی واقعی، ما می خواهیم اطمینان حاصل کنید 664 00:49:55,020 --> 00:50:01,850 رفتن وجود دارد به نوعی از الگوی است که شما قصد استفاده از. 665 00:50:01,850 --> 00:50:04,580 یکی دیگر از توجه داشته باشید در این الگو، در واقع. 666 00:50:04,580 --> 00:50:07,250 شما در حال رفتن به قطعا به خرید و فروش با شماره. 667 00:50:07,250 --> 00:50:11,280 سعی کنید به استفاده از اعداد جادویی است، که نمونه ای از سبک. 668 00:50:11,280 --> 00:50:18,470 پس بگو شما را به هر چیزی زمان تغییر توسط دوست می خواهم - 669 00:50:18,470 --> 00:50:22,400 بسیار خوب، اشاره، یکی دیگر از اسپویلر است که هنگامی که شما در حال رفتن به تغییر چیزی 670 00:50:22,400 --> 00:50:26,310 با یک مقدار خاص، سعی کنید به نشانگر این است که تعداد واقعی 671 00:50:26,310 --> 00:50:32,810 بلکه سعی کنید ببینید که اگر شما می توانید مقدار ASCII که به نوعی ایجاد حس بیشتر استفاده کنید. 672 00:50:32,810 --> 00:50:35,470 یکی دیگر از توجه داشته باشید: از آنجا که ما در حال برخورد با فرمول، 673 00:50:35,470 --> 00:50:41,200 حتی اگر TF خود را به نوعی می دانید چه الگوی شما ممکن است با استفاده از، 674 00:50:41,200 --> 00:50:44,430 بهترین در نوع خود از نظر توضیح منطق، مانند، 675 00:50:44,430 --> 00:50:51,880 "من با استفاده از این الگو به دلیل ..." و نوع توضیح الگوی موجز در نظر شما. 676 00:50:54,090 --> 00:50:58,990 [این مقاله 2] در صورتی که هر گونه سؤال دیگر وجود ندارد، پس من فقط در اینجا می مانم کمی. 677 00:50:58,990 --> 00:51:04,370 موفق باشید با pset 2: رمزنگاری و تشکر برای آینده. 678 00:51:06,070 --> 00:51:08,620 [دانشجو] با تشکر از شما. >> با تشکر. 679 00:51:09,220 --> 00:51:10,800 [مقدمه ای بر رسانه های آفلاین]