[Powered by Google Translate] [Walkthrough - تنظیم مشکل 2] [Zamyla چان - دانشگاه هاروارد [این CS50 است. CS50.TV] بسیار خوب. خوش آمدید، هر کس، و به Walkthrough (2) خوش آمدید. اول از همه، من می خواهم به شما برای اتمام pset 1 تبریک می گویم. من می دانم که این می تواند یک کمی دشوار است برای برخی از شما بوده است، می توانست برنامه کامپیوتر شما را برای اولین بار است که شما نوشت، اما درست است که در پایان این به یاد داشته باشید، زمانی که شما نگاه کنید در پایان ترم، شما در pset 1 و بگی، "هی، من می توانم انجام داده اند که در 5 دقیقه است." و می دانم که اعتماد که در پایان این شما قطعا باید پیدا pset 1 کاملا ساده است. اما در حال حاضر آن را به یک دستاورد بزرگ است، و تبریک برای گرفتن انجام می شود. در حال حاضر، همچنین توجه داشته باشید سریع قبل از ما به گوشت walkthrough دریافت کنید. من فقط می خواهم برای ایجاد یک یادداشت سریع است که من گاهی اوقات هم به اندازه کافی ندارد در walkthroughs به رفتن را از طریق هر تنها راه برای انجام مجموعه ای از مشکل و نه فقط شاید 1 یا 2 نوع پیاده سازی تمرکز، راه هایی که شما می توانید این کار را انجام دهند. اما آن است که به شما می گویند که از انجام آن یکی دیگر از راه حرام نیست. اغلب وجود دارد، به عنوان با علوم کامپیوتر، راه های متعددی برای انجام کارها، و بنابراین قطعا احساس رایگان برای استفاده از یک نوع متفاوت از راه حل از من ممکن است ارائه کرده اند. [pset 2: رمزنگاری - Zamyla چان - zamyla@cs50.net] [pset2 - 0. یک بخش از سوالات - 1. سزار - 2. Vigenere] بسیار خوب. بنابراین مشکل مجموعه 2: رمزنگاری است یکی از سرگرم کننده است. باز هم، با هر pset شما با یک بخش از سوالات شروع که در بخش های خود را با هم تدریس خود را اختصاص داده انجام شده است. ما می خواهیم از طریق این بیش از walkthrough، اما آنها قطعا کمک خواهد کرد کامل شما pset. بنابراین قسمت اول از مجموعه مشکل سزار است. و به این ترتیب در سزار کسی به شما یک کلید با یک عدد صحیح منتقل می کند، و شما یک رشته از متن است که آنها به شما ارائه رمزگذاری و آنها را به عقب چیزی رمزگذاری شده است. اگر کسی به تماشای یک داستان کریسمس، نمونه ای از آن وجود دارد وجود دارد. سپس قسمت دوم از مجموعه مشکل است Vigenere، که روش رمزگذاری پیشرفته تر است. و بنابراین ما در حال رفتن به سری کردن یک قطعه از متن، به جز به جای اینکه فقط با یک عدد صحیح، ما در واقع رفتن به آن رمزگذاری با یک کلمه کلیدی که کاربر را به ما ارائه. خوب، پس از ابزار برای اولین بار در امروز جعبه ابزار است که در واقع برای رفتن به به روز رسانی دستگاه. در انجمن ما چیزهایی مانند دیدن، "چرا این کار نمی کند؟" "چرا کار 50 ارسال نمی کند؟" و در اغلب موارد راه حل است که در واقع فقط برای به روز رسانی دستگاه شما است. بنابراین اگر شما فقط در یک پنجره ترمینال اجرا کنید: sudo لوازم یام-Y - که پرچم گفت: بله، به روز رسانی همه چیز - به روز رسانی، و سپس دستگاه خود را به روز رسانی در صورت لزوم. و ضرری ندارد اگر شما در حال حاضر در نسخه های اخیر از دستگاه هستند. سپس آن را فقط بدون به روز رسانی جدید در دسترس می گویند و شما می توانید در ادامه کار همراه است. اما این خوب است برای اجرای هر زمان که شما برای باز کردن لوازم خانگی از آنجا که ما هنوز بسیار - اصلاح آن در لوازم خانگی - گاهی اوقات اگر ما به یک اشکال آمده است. بنابراین اطمینان حاصل کنید که شما را به نسخه های اخیر از دستگاه و اجرا کنید که به روز رسانی وجود دارد. بسیار خوب. بنابراین از آنجایی که ما در حال برخورد با حروف و تغییر، enciphering همه چیز، ما قصد داریم واقعا می خواهید برای تبدیل شدن به بهترین دوستان با نمودار ASCII ما. آنهایی که متعدد وجود دارد (آنلاین)، اگر شما پیدا کنید. شاید حتی خود را بسازید. در واقع، با هر حرف و هر تعداد و هر شخصیت یک عدد در ارتباط با آنها وجود دارد، و پس از آن خوب است برای دیدن مقادیر ASCII خود را در کنار این نامه واقعی است. که قطعا شما را در مجموعه ای مشکل کمک کند. یکی از چیزهایی است که واقعا من در مجموعه این مشکل کمک کرد این بود که در واقع آن را چاپ، و بود که من از رفتن را از طریق، من در واقع بر روی آن قرعه کشی، نوشتن، "اگر این را برای رفتن وجود دارد، پس از آن ..." نوع قرعه کشی بر روی آن و علامت آن را تبدیل به بهترین دوستان خود را با جدول ASCII. سپس ما باید چند ابزار دیگر در اختیار ما است. این بار به جای در واقع باعث کاربر برای تمام ورودی خود را ما قصد داریم برای انجام یک ترکیب است. ما قصد داریم تا آنها را برای برخی از ورودی تحریک، اما ما نیز فقط به استفاده از استدلال های خط فرمان است. بنابراین، هنگامی که آنها اجرای برنامه خود را، معمولا به شما می گویند / سلام، به عنوان مثال، اگر برنامه شما hello.c بود. اما این بار به جای فقط گفت که، آنها می توانند کلمات، استدلال پس از آن قرار داده است. و بنابراین ما قصد استفاده از هر آنچه که آنها در به عنوان ورودی خود را به ما منتقل می کند و همچنین، بنابراین در حال حرکت فراتر از فقط باعث عدد صحیح است اما با استفاده از استدلال خط فرمان است. و پس از آن ما را به آرایه ها و رشته ها، که ما آن را می شود با استفاده از زیادی و همچنین بروید. در اینجا فقط یک مثال، از مجموع 1 نمودار کوتاه ASCII. همانطور که گفتم، هر نامه مربوط به تعداد، و به همین ترتیب خود را با آن آشنا شوید. آن را در دستی آمده است. و بعد زمانی که ما شروع به انجام برخی از ASCIIMath خرید و فروش با شماره - اضافه کردن، کم کردن آن ها - پس از آن قطعا خوب برای مراجعه به این جدول است. بنابراین در اینجا یک مثال از رمزنگاری سزار - چیزی است که شما ممکن است با ایفا کرده است. این است که فقط یک چرخ است. اساسا، الفبای خارجی وجود دارد و پس از آن است الفبای داخلی وجود دارد. تا حق در اینجا یک مثال از رمزنگاری سزار، اما با یک کلید از 0 است. اساسا، با یک تراز وسط قرار دارد، B با B تراز وسط قرار دارد، تمام راه را تا Z. اما پس از آن می گویند ما می خواستیم یک کلید 3، به عنوان مثال. سپس ما را از چرخ داخلی به طوری که در حال حاضر با D، و غیره گیرنده چرخش و بنابراین این است که اساسا چیزی است که ما قصد داریم به انجام. ما می توانم در یک چرخ نیست، اما چیزی است که ما قصد انجام برنامه های ما نوع از SHIFT الفبای همراه با ما یک مقدار مشخصی از اعداد است. بنابراین همانطور که قبلا گفتم، ما در حال رفتن به خرید و فروش با آرگومان های خط فرمان و همچنین به عنوان یک عدد صحیح است. بنابراین راهی که یک کاربر، برنامه خود را اجرا سزار با گفتن / سزار و سپس با وارد کردن یک عدد پس از آن است. و این تعداد نشان دهنده کلید، تغییر، چند بار شما در حال رفتن به چرخش چرخ درونی خود را از رمزنگاری سزار. و بنابراین شما در اینجا یک مثال را ببینید. اگر ما نامه ها را از L تا در رمزنگاری سزار ما وارد شده، سپس آن را به ورودی D از طریق O چرا که هر نامه منتقل شده بیش از 3 بار، درست مثل نمونه ای از چرخ است که من به شما نشان داد. بنابراین اگر شما وارد، برای مثال، این CS50 است! سپس آن را نیز که همه از حروف حرکت می کند. و این یک نکته مهم در هر دو سزار و Vigenere این است که ما قصد داریم به جست و خیز بیش از هر حروف غیر. بنابراین هر گونه فضاها، شخصیت ها، و غیره، اعداد، ما قصد داریم به نگه داشتن آنها را در همان. ما فقط رفتن به تغییر حروف در این مورد است. بنابراین به عنوان شما را در چرخ می بینیم، ما فقط حروف موجود برای ما داشته باشد، بنابراین ما فقط می خواهید به تغییر حروف و رمز حروف. بنابراین اولین چیزی که به انجام این کار، شما را دیدم که استفاده سزار در مشکل مجموعه 2 به اجرا سزار و سپس یک عدد را وارد کنید هنگامی که شما آن را در ترمینال اجرا کنید. بنابراین آنچه که ما باید انجام دهیم این است که به نحوی دریافت کنید که کلید و دسترسی به آن است. و به این ترتیب ما می خواهیم به نحوی آن را به دومین آرگومان خط فرمان است. یکی از اولین برای رفتن به / سزار و یک بعدی خواهد بود تعداد کلید. بنابراین قبل از ما تا به حال اعضای هیات تحریریه اصلی (خالی) به شروع برنامه C است. ما در حال رفتن به پوست پشت لایه کمی و در واقع می بینیم که به جای عبور خالی به تابع اصلی ما ما در واقع با 2 پارامتر خرید و فروش می کند. ما باید از نوع int به نام argc و سپس آرایه ای از رشته ها به نام ی argv. بنابراین argc عدد صحیح است، و آن را نشان دهنده تعداد آرگومانهای داده شده به برنامه شما است. و پس از آن و argv است که در واقع لیستی از آرگومانهای داده شده است. همه استدلال رشته ها، و غیره ی argv نشان دهنده یک آرایه، یک لیست از رشته ها است. اجازه دهید بحث در مورد آرایه های کمی. آرایه اساسا یک ساختمان داده جدید است. ما باید نوع داده int، ما دو برابر شود، ما باید رشته، و در حال حاضر ما باید آرایه. آرایه ها ساختارهای داده ای است که می تواند چندین مقدار را از همان نوع را نگه دارید، بنابراین اساسا، یک لیست از هر نوع که شما می خواهید. اساسا، اگر شما می خواهید یک لیست از اعداد صحیح در 1 متغیر، سپس شما می توانید یک متغیر جدید بود که از آرایه های نوع int ایجاد کنید. بنابراین آرایه های با شاخص صفر است، به این معنی است که عنصر اول از آرایه در شاخص 0. اگر آرایه به طول 4، همانطور که در این مثال، پس از آن آخرین عنصر خود را در صفحه اول 3 می شود، 1 - 4 است. بنابراین برای ایجاد آرایه، شما می توانید چیزی شبیه به این انجام دهد. می گویند شما می خواهید یک آرایه دو. این رود برای هر نوع از نوع اطلاعات، هر چند. پس می گویند شما می خواهید یک آرایه دو. بگو: شما می خواهید آن را به صندوق پستی. درست مثل وقتی که هر دو دیگر مقداردهی اولیه، شما می گویند دو برابر و سپس نام و نام خانوادگی، اما این بار ما را از براکت مربع، و پس از آن شماره وجود خواهد داشت که طول آرایه است. توجه داشته باشید که در آرایه های ما همیشه نمی تواند تغییر طول، بنابراین شما همیشه به تعریف و انتخاب کنید که چگونه بسیاری از جعبه داشته باشد، که چگونه بسیاری از مقادیر آرایه خود را نگه دارد. بنابراین برای تنظیم مقادیر مختلف در آرایه خود را، شما در حال رفتن به استفاده از این نحو زیر، تا شما را در اسلاید را ببینید. شما باید شاخص 0 صندوق پستی خواهد شد و به 1.2 تعیین می کنند، صندوق پستی شاخص مجموعه 1 به 2.4، و غیره بنابراین در حال حاضر که ما بررسی آرایه های بیت، اجازه بازگشت به argc و argv را. ما می دانیم که ی argv است که در حال حاضر یک آرایه از رشته ها است. بنابراین، هنگامی که یک کاربر می گذرد - می گویند که یک برنامه در حال اجرا - آنها می گویند. / سلام دیوید مالان، آنچه که این برنامه انجام خواهد داد برای شما در حال حاضر است که در واقع با آنچه argc و argv را آمده است. بنابراین شما لازم نیست که در مورد آن نگران باشید. Argc در این مورد خواهد بود 3 به دلیل آن را می بیند. 3 تا کلمه ی مجزا با فاصله از هم جدا است. و تا بعد آرایه در این مثال، شاخص اول خواهد بود / میهمان گرامی، در کنار دیوید، در کنار یک مالان. آیا کسی حق دور چه رابطه ای بین و argv  آرایه، و argc است؟ آره. خواهیم به آن در یک مثال در args.c. بیایید ببینیم که اگر ما می توانیم با استفاده از رابطه بین 2. در اینجا شما ممکن است که در دستگاه پیدا کردن برنامه های کاربردی به طور پیش فرض برای باز کردن فایل های C است که گاهی اوقات ایمکس. اما ما می خواهیم برای مقابله با gedit، بنابراین آنچه که شما می توانید انجام دهید این است که به شما حق می تواند در فایل C خود را کلیک کنید، رفتن به خواص، باز، و سپس gedit، مجموعه ای به عنوان پیش فرض را انتخاب کنید، و در حال حاضر برنامه شما باید را در gedit به جای ایمکس باز. کامل. بنابراین در اینجا من برنامه ای است که من می خواهم برای چاپ کردن هر آرگومان خط فرمان است. بنابراین هر کاربر ورودی، من می خواهم در اصل بازگشت به آنها را در یک خط جدید است. بنابراین آنچه که یک ساختار است که ما می توانیم با استفاده از به تکرار بیش از چیزی - چیزی است که شما احتمالا در 1 pset شما استفاده می شود؟ اگر شما می خواهید از طریق مجموعه ای از همه چیز؟ >> [دانشجو] حلقه for. حلقه for. دقیقا. بنابراین با حلقه for شروع کنیم. ما برای اعضای هیات من = 0 داشته باشد. بیایید فقط با یک متغیر مقدار دهی اولیه استاندارد شروع می شود. من قصد دارم به ترک وضعیت برای یک مجموعه و بعد می گویند من در + +، رفتن برای انجام کارها وجود دارد. بسیار خوب. بنابراین فکر به گذشته ی argv اگر ی argv است که لیستی از استدلال به این برنامه منتقل می و argc تعداد آرگومان در برنامه است، پس از آن است که بدان معنی است که argc اساسا طول و argv، درست است، از آنجا که قصد دارد به عنوان بسیاری از استدلال به عنوان مقدار argc می شود. بنابراین اگر ما می خواهیم به تکرار بیش از هر عنصر در argv، ما در حال رفتن به متغیر در argv در شاخص دسترسی به هر زمان. است که می تواند با این نشان داده شده است، درست است؟ این متغیر در اینجا نشان دهنده رشته خاص در این مثال چرا که آن را به یک آرایه رشته ای - رشته خاص که در آن شاخص داده شده است. آنچه ما می خواهیم انجام دهیم، در این صورت ما می خواهیم به آن را چاپ کند، به طوری که می گویند printf. و در حال حاضر و argv یک رشته است، به طوری که ما می خواهیم برای قرار دادن این حفره یا سوراخ وجود دارد. ما می خواهیم یک خط جدید، آن را به نگاه خوب است. بنابراین در اینجا ما باید یک حلقه برای. ما شرط نشده است. بنابراین من از 0 شروع می شود، و پس از آن هر بار آن را به چاپ رشته داده که در آن شاخص خاص در آرایه. بنابراین، هنگامی که می خواهیم برای جلوگیری از چاپ کردن عناصر در آرایه؟ هنگامی که ما از به پایان رسید، درست است؟ هنگامی که ما رسیده در پایان از آرایه. بنابراین ما نمی خواهیم به گذشته از طول آرایه تجاوز، و ما در حال حاضر می دانیم که ما نیازی به واقع فعالانه پیدا کردن آنچه را که طول و argv است چرا که آن را به ما داده می شود، و آنچه که؟ Argc. دقیقا. بنابراین ما می خواهیم برای انجام این فرایند تعداد argc از زمان. من در پوشه راست نیستم. بسیار خوب. در حال حاضر را استدلال میگیرد. بدون خطا، که فوق العاده است. پس اجازه دهید فقط اجرا استدلال میگیرد. این چیست رفتن را به ما برگردانید؟ این فقط به آن نسخه قابل چاپ بازگشت. "شما استدلال میگیرد را به این برنامه وارد کردهاید، من قصد دارم آن را به شما است." بنابراین اجازه دهید می گویند ما می خواهیم برای گفتن استدلال میگیرد و سپس نوار صنایع غذایی. پس آن را چاپ برگشت به بخش تماس با ما. همه درست است؟ بنابراین به عنوان مثال از اینکه چگونه شما می توانید argc و argv را استفاده کنید وجود دارد دانستن این که argc نشان دهنده طول و argv است. اطمینان حاصل کنید که شما با دسترسی به آرایه در درجه اول هرگز فراتر از طول آرایه زیرا C قطعا به شما فریاد. شما چیزی به نام گسل تقسیم بندی کنید، سرگرم کننده است که هرگز، اساسا گفت: شما در حال تلاش برای دسترسی به چیزی که وجود ندارد، به شما تعلق ندارند. بنابراین مطمئن شوید، و به ویژه صفر نمایه سازی، ما نمی خواهیم به - مثل به عنوان مثال، اگر ما یک آرایه از طول 4، که اندیس 4 وجود ندارد، زیرا ما در از 0 شروع، صفر شاخص است. آن را تبدیل به طبیعت دوم درست مثل حلقه زمانی که ما در 0 شروع. پس تنها کاری که در ذهن داشته باشیم. شما نمی خواهید به شاخص یک آرایه است که فراتر از دسترس شما همیشه دسترسی داشته باشید. بنابراین ما در حال حاضر می توانید ببینید که چگونه ما می توانیم نوع دسترسی استدلال های خط فرمان هستند که منتقل می شوید. اما به عنوان شما را دیدم رشته ی argv است که در واقع یک آرایه رشته ای است. پس از آن در واقع یک عدد صحیح نشده است، اما در سزار ما می خواهیم برای مقابله با اعداد صحیح است. خوشبختانه، یک تابع ایجاد شده برای ما که در واقع می تواند تبدیل یک رشته به عدد صحیح وجود دارد. همچنین در اینجا ما با ورودی کاربر خرید و فروش نیست با جایی که ما آنها را باعث ورودی برای کلید، به طوری که ما در واقع نمی تواند reprompt و می گویند، : "اوه، من دیگر عدد صحیح به من بدهید، می گویند، اگر آن را معتبر نیست." اما ما هنوز هم برای بررسی مصرف صحیح نیاز دارند. در سزار آنها تنها مجاز به تصویب در 1 عدد و به طوری که آنها را اجرا کنند. / سزار و سپس آنها را باید به شما یک عدد می دهد. بنابراین argc به یک عدد خاص است. چه تعداد خواهد بود که اگر آنها را به شما / سزار و سپس یک کلید عبور خواهد بود؟ argc چیست؟ >> [دانشجو] 2. >> دو. دقیقا. بنابراین شما می خواهید مطمئن شوید که argc است 2. در غیر این صورت شما اساسا برنامه ای برای اجرا رد. در اصلی آن یک تابع است که می گوید: اعضای هیات تحریریه اصلی پس ما همیشه در 0 بازگشت عمل خوب در پایان یک برنامه موفق. بنابراین اگر، می گویند، آنها به شما 3 استدلال خط فرمان به جای 2 یا شما 1 را، به عنوان مثال، پس از آن آنچه شما می توانید انجام دهید این است که شما می خواهید برای چک کنید و سپس بازگشت 1 و گفت: نه، من نمی تواند با ادامه این برنامه. [دانشجو] وجود ندارد می تواند در فضای متن انتخابی خود را نشان دهید. >> مرا ببخشید؟ [دانشجو] می تواند فضا در متنی که شما در حال تلاش برای رمزگذاری وجود ندارد. آه! در شرایط استفاده از متن است که ما در تلاش هستیم به رمز در آوردن، که در واقع بعد از آن می آید هنگامی که متن را به من بدهید. بنابراین در حال حاضر ما فقط به عنوان آرگومان فرمان پذیرش تعداد واقعی، تغییر واقعی برای رمزگذاری سزار. [دانشجو] چرا شما نیاز به 2 به عنوان تنها 1 argc مخالف؟ 1 تعداد قطعا وجود دارد. راست. دلیل این که چرا ما نیاز به 2 برای argc به جای 1 چرا که وقتی یک برنامه را اجرا می کنید و می گویند / سزار یا. / سلام، که در واقع به عنوان یک آرگومان خط فرمان می شمارد. بنابراین پس از آن که در حال حاضر طول می کشد تا 1 و تا پس از آن ما در حال inputting 1 فوق العاده است. بنابراین شما inputting در واقع رشته در بحث خط فرمان است. آنچه که می خواهید انجام دهید، برای سزار، ما می خواهیم برای مقابله با یک عدد صحیح، بنابراین شما می توانید این تابع atoi استفاده کنید. و اساسا، آن را در یک رشته به شما منتقل و پس از آن شما را به عقب برگرداندن یک عدد صحیح اگر این امکان وجود دارد که رشته ای را به یک عدد صحیح است. در حال حاضر زمانی که ما در حال برخورد با چیزهای printf یا GetString، که می خواهم به یاد داشته باشید، شامل کتابخانه هایی که به ما خاص هستند. پس در ابتدا ما را با مخلوط برچسب استاندارد I / O، ساعت، چیزی شبیه به آن شروع می شود. خب، atoi است که در داخل یکی از این کتابخانه نیست، بنابراین آنچه که ما باید انجام دهیم این است که ما باید شامل کتابخانه های مناسب برای آن می باشد. بنابراین بازگشت به Walkthrough 1 جایی که من در مورد تابع دستی یاد. شما انسان را در ترمینال خود را تایپ کنید و سپس با نام یک تابع است. و به طوری که به ارمغان خواهد آورد لیست کل از استفاده از آن، اما به عنوان آن را به خوبی به ارمغان خواهد آورد که کتابخانه که متعلق به. بنابراین من به تو ترک برای استفاده از عملکرد دستی با atoi و کشف کردن که کتابخانه شما نیاز دارید را شامل می شود قادر به استفاده از تابع atoi. بنابراین ما باید کلید و در حال حاضر آن را به متن ساده می آید، و به طوری که در واقع رفتن به ورودی کاربر را که در آن شما بی درنگ. ما با GetInt و GetFloat پرداخته، و به همین ما در حال رفتن به خرید و فروش با GetString. اما در این مورد ما لازم نیست هر آیا برای انجام در حالی که یا در حالی که حلقه چک کنید. GetString قطعا ما به یک رشته، و ما در حال رفتن به رمز در آوردن هر کاربر به ما می دهد. بنابراین شما می توانید فرض کنیم که همه رشته ها کاربر این نظامها بشوند درست است. بزرگ است. بنابراین پس از یک بار شما رو از کلید و در هنگامی که شما در متن، در حال حاضر آنچه در سمت چپ است که شما به رمز نوشتن متنی می باشد. فقط به سرعت بیش از اصطلاح پوشش، متنی است که آنچه را که کاربر به شما می دهد، و متن رمزی چیزی است که شما را به آنها برگردانید. بنابراین رشته ها، قادر خواهد بود از طریق در واقع نامه نامه چرا که ما به تغییر هر حرف، ما درک می کنیم که رشته، اگر ما از نوع پوست پشت لایه، ما می بینیم که آنها واقعا لیستی از کاراکتر ها است. یکی پس از دیگری می آید. و به این ترتیب ما می توانیم رشته را به عنوان آرایه زیرا آنها آرایه از کاراکتر ها را درمان می کنند. پس می گویند شما باید یک رشته به نام متن، و در آن متن متغیر ذخیره شده است این است CS50. سپس متن در اندیس 0 T پایتخت خواهد بود، شاخص 1 ساعت، و غیره خواهد بود و سپس با آرایه ها، در مثال argc در args.c، ما شاهد است که ما تا به حال به تکرار بیش از یک آرایه و بنابراین ما تا به حال از من به تکرار = 0 تا من کمتر از طول. بنابراین ما نیاز به برخی از راه بدانند آنچه را که طول رشته ما است اگر ما قصد داریم به تکرار در بیش از آن است. خوشبختانه دوباره، یک تابع وجود دارد برای ما وجود دارد، اگر چه بعدها در CS50 شما قطعا باید قادر به اجرا و عملکرد خود را است که می تواند در طول یک رشته را محاسبه کند. اما در حال حاضر ما در حال رفتن به استفاده از طول رشته، بنابراین strlen. شما در یک رشته می گذرد، و سپس آن را به شما بین المللی است که نشان دهنده طول رشته خود بازگشت. بیایید نگاهی به یک مثال از اینکه چگونه ممکن است قادر به تکرار بیش از هر کاراکتر در یک رشته و کاری با آن است. آنچه ما می خواهیم انجام دهیم این است که تکرار بیش از هر کاراکتر از رشته، و آنچه ما می خواهیم انجام دهیم این است که ما نسخه قابل چاپ بازگشت هر یک از شخصیت 1 1 به جز چیزی به آن اضافه می کنیم. بنابراین با حلقه for شروع کنیم. من بین المللی = 0. ما قصد داریم به ترک فضا برای این بیماری است. ما می خواهیم به تکرار می کنیم تا رسیدن به انتهای رشته، درست است؟ پس آنچه تابع طول رشته را به ما می دهد؟ [پاسخ دانش آموز نامفهوم] که طول آرگومان های خط فرمان است. اما برای رشته ما می خواهیم برای استفاده از یک تابع است که طول رشته را به ما می دهد. به طوری که طول رشته است. و به این ترتیب پس از آن شما باید در یک رشته را به آن منتقل می کند. این نیاز به دانستن چه رشته به آن نیاز دارد را محاسبه طول. بنابراین پس در این مورد ما در حال برخورد با رشته ها. بزرگ است. بنابراین پس از آنچه ما می خواهیم انجام دهیم، اجازه دهید printf است. در حال حاضر، ما می خواهیم برای مقابله با شخصیت. ما می خواهیم برای چاپ کردن هر یک از شخصیت. هنگامی که شما می خواهید آن را به چاپ شناور، شما را از مکان نگه دار مانند F٪ استفاده کنید. شما می توانید با استفاده از یک int D٪ استفاده کنید. و به این ترتیب به طور مشابه، با شخصیت شما با استفاده از C٪ برای گفتن من قصد دارم به چاپ یک شخصیت که در داخل یک متغیر ذخیره می شود. بنابراین ما باید این، و اجازه دهید اضافه کردن یک دوره و یک فضای به آن است. کدام شخصیت می کنیم با استفاده از؟ ما قصد داریم با استفاده از هر شخصیت ما در رشته هستید. بنابراین پس از آن ما قصد داریم با استفاده از چیزی با رشته، اما ما می خواهیم به دسترسی به شخصیت خاصی وجود دارد. بنابراین اگر یک رشته فقط یک آرایه، و سپس چگونه عناصر آرایه دسترسی پیدا کنم؟ ما باید کسانی که از براکت مربع است، و پس از آن شاخص را در آنجا قرار داده است. بنابراین ما باید براکت. شاخص ما در این مورد، ما فقط می توانید استفاده کنید. دقیقا. بنابراین در اینجا ما در حال گفت: ما قصد داریم به چاپ یک شخصیت به دنبال یک نقطه و یک فضای و است که شخصیت در حال رفتن به نامه i ام در رشته s ما. من فقط رفتن برای صرفه جویی در آن. باشه. در حال حاضر من قصد دارم به اجرای طول رشته است. بنابراین ما تا به حال یک رشته به نام OMG، و در حال حاضر آن را حتی بیشتر تاکید شده است. به طور مشابه، اجازه دهید می گویند ما در واقع می خواهید برای دریافت یک رشته از کاربر است. چگونه ممکن است این را ما انجام می دهیم؟ قبل از اینکه، چگونه یک int را دریافت کنم؟ ما GetInt گفت، درست است؟ اما این نوع int نیست، بنابراین اجازه دهید GetString. بیایید طول رشته. در اینجا ما یک اعلان را وارد کنید. بنابراین من نمی دانم. من قصد دارم به قرار دادن نام من در اینجا و به همین ترتیب پس از آن من می توانم یکی از آن چیزهایی جایی که من یک کلمه برای هر نامه یا چیزی شبیه به آن اختصاص دهید. دانلود. به طوری که طول رشته است. بنابراین ما در حال بازگشت به سزار. در حال حاضر چند ابزار در حال حاضر بیش از یک رشته تکرار، چگونه هر یک از عناصر فردی ما دسترسی داشته باشید. بنابراین در حال حاضر ما می توانیم به عقب بر گردیم به برنامه است. همانطور که پیش از این در جدول ASCII، بهترین دوست شما، ذکر شما در حال رفتن به دیدن اعداد است که با هر نامه در ارتباط است. بنابراین در اینجا متنی ما این است که من سرگیجه می گویند! سپس هر یک از این شخصیت ها به تعداد و ارزش ASCII مربوط به آن، حتی آپوستروف، حتی فضا، حتی علامت تعجب، بنابراین شما می خواهید به نگه داشتن آن در ذهن است. بنابراین کلید ما می گویند که کاربر در استدلال خود را در خط فرمان است 6. این بدان معناست که برای حرف اول، که من، که توسط 73 نشان داده شده است، شما می خواهید به بازگشت به آنها هر حرف ارزش ASCII 73 + 6 نشان داده شده است. در این صورت است که می تواند 79. در حال حاضر ما می خواهم برای رفتن به شخصیت بعدی. بنابراین در کنار شاخص 1 از متنی خواهد بود آپوستروف. اما به یاد داشته باشید ما فقط می خواهید برای برمز نوشتن حروف است. بنابراین ما می خواهیم مطمئن شوید که در مواقع حذف حرف یا بخشی از کلمه در واقع همان باقی می ماند، که ما از 39 به هر 45 تغییر نمی باشد. ما می خواهیم به آن را به عنوان یک آپوستروف نگه دارید. بنابراین، ما می خواهیم به یاد داشته باشید فقط به رمز نوشتن حروف چرا که ما می خواهیم همه از نمادهای دیگر باقی می ماند بدون تغییر در برنامه ما. یکی دیگر از چیزی است که ما می خواهیم برای حفظ حروف بزرگ است. بنابراین، هنگامی که شما به یک حرف بزرگ، آن را باید به عنوان بزرگ باقی بماند. Lowercases باید به عنوان حروف کوچک باقی بماند. بنابراین بعضی از توابع مفید باشد قادر به با حروف فقط enciphering مقابله و حفظ حفظ سرمایه از همه چیز isalpha، isupper، توابع islower است. و به این ترتیب این توابع است که شما یک مقدار بولی بازگشت. در واقع، درست یا نادرست است. آیا این بزرگ است؟ این الفبایی است؟ آیا این نامه، در اصل. بنابراین در اینجا 3 نمونه هایی از شما می توانید این تابع استفاده کنید. در واقع، شما می توانید از تست چه مقدار به شما که توسط تابع برگردانده درست است یا غلط بر اساس که ورودی. یا انجام چیزی برمز نوشتن نیست و یا رمز و یا مطمئن شوید که آن را به بزرگ، و غیره [دانشجو] آیا می توانید فقط کسانی که کمی بیشتر و چگونه شما به استفاده از آنها را توضیح دهید؟ >> آره، حتما. بنابراین اگر ما نگاه، در اینجا ما باید سرمایه من، درست است؟ بنابراین ما می دانیم که من می رود به O به خاطر من + 6 O. اما ما می خواهیم اطمینان حاصل کنید که آن O خواهد بود O. پایتخت پس در واقع، این نوع از رفتن به تغییر ورودی ما می باشد. بنابراین آیا آن را بزرگ خواهد شد و یا نوع تغییر روش است که ما مقابله با آن نیست. بنابراین اگر ما با استفاده از تابع isupper در آن شاخص خاص، بنابراین isupper ("من")، که برای ما درست برمی گرداند، بنابراین ما می دانیم که آن را به بالا. تا سپس بر اساس آن، بعد ما را به یک فرمول که شما با استفاده از تغییر چیز در سزار بنابراین پس اساسا، رفتن به یک فرمول کمی متفاوت وجود دارد اگر آن را بزرگ به عنوان مخالف به کوچک. را حس؟ آره. بدون نگرانی. من یک کمی در مورد اضافه کردن 6 به یک نامه، که کاملا حس صحبت کردیم به جز زمانی که ما از نوع درک است که این کاراکتر ها نوع قابل تعویض با اعداد صحیح هستند. آنچه ما انجام می دهیم این است که ما نوع ریخته گری استفاده ضمنی است. خواهیم به ریخته گری و کمی بعد در جایی که شما را یک مقدار و آن را روشن کنید و شما را به یک نوع متفاوت از آن بود. اما با این pset ما قادر خواهیم بود به نوع قابل معاوضه با استفاده از شخصیت های و مربوط به خود را در مقادیر عدد صحیح. بنابراین اگر شما به سادگی قفس یا جعبه گذاردن یک شخصیت تنها با نقل قول تنها، پس از آن شما قادر خواهید بود تا با آن کار با اعداد صحیح، برخورد با آن را به عنوان یک عدد صحیح است. بنابراین C پایتخت مربوط به 67 است. F کوچک تا 102 می باشد. باز هم، اگر شما میخواهید بدانید که این ارزش ها، در جدول ASCII شما نگاه. پس اجازه دهید به برخی از نمونه های چگونه شما ممکن است قادر به جمع و تفریق و اضافه کردن، شما در واقع می تواند واقعا با این شخصیت ها کار می کنند، آنها را به جای یکدیگر استفاده است. من می گویم که ASCIIMath است رفتن به محاسبه علاوه بر این از یک شخصیت را به یک عدد صحیح و پس از آن را نمایش می دهد و همچنین شخصیت حاصل مقدار حاصل ASCII. و بنابراین در اینجا من گفت - معامله we'll با این بخش بعد - اما در واقع، من و گفت که کاربر باید ASCIIMath اجرا به همراه یک کلید می گویند. و من و گفت که این کلید برای رفتن به شماره که با آن ما قصد داریم برای اضافه کردن این شخصیت است. بنابراین در اینجا توجه کنید که از من خواستار یک کلید، از من خواسته بودند که به آنها دادن من 1 چیز، من فقط می خواهم به قبول / asciimath و یک کلید. بنابراین من قصد دارم به تقاضا که argc تا 2 برابر است. اگر این نیست، پس من قصد دارم به بازگشت (1) و این برنامه خارج شوید. بنابراین من گفت: کلید رفتن به اولین آرگومان خط فرمان، آن را برای رفتن به مرحله دوم، و به عنوان شما اینجا را ببینید. من قصد دارم به نوبه خود آن را به یک عدد صحیح است. سپس من قصد دارم برای تنظیم یک شخصیت به تحقیق است. توجه داشته باشید که نوع CHR متغیر است که در واقع یک عدد صحیح است. راهی که من قادر به استفاده از R به عنوان یک عدد صحیح است با پوشاندن آن را با این نقل قول تکی. پس به دستور printf ما به جایی برگردان که ما دارای یک نگهدارنده برای یک شخصیت و پس از آن یک حفره یا سوراخ برای یک عدد صحیح، کاراکتر CHR نشان داده شده است، و عدد صحیح کلیدی است. و به این ترتیب پس از آن ما قصد داریم تا در نتیجه اضافه کردن 2 با یکدیگر است. بنابراین ما قصد داریم برای اضافه کردن R + هر کلید است، و پس از آن ما قصد چاپ نتیجه آن است. را asciimath. آن را تا به امروز است، به طوری که فقط اجرا asciimath. آه، اما دیدن، آن را نشانی از هیچ کاری انجام نمی از آنجا که ما در واقع آن یک کلید به من بدهید. بنابراین، هنگامی که آن را فقط به بازگشت 1، تابع اصلی ما، آن را فقط به بازگشت به ما. بنابراین پس از یک کلید عبور کنیم. کسی که به من یک عدد را به شما بدهد. >> [دانشجو] 4. 4. باشه. بنابراین تحقیق 4 است که به ما V، که مربوط به مقدار ASCII از 118 به افزایش است. پس از آن نوع را حس می کند که - در واقع، می تواند به شما من بپرسید، چه چیزی به شما فکر می کنم ارزش ASCII از R است اگر R + 4 118؟ سپس آره، R 114. بنابراین اگر شما در جدول ASCII نگاه کنید و سپس مطمئن شوید به اندازه کافی، شما خواهید دید که تحقیق توسط 114 نشان داده شده است. بنابراین در حال حاضر که ما می دانیم که ما می توانیم از اعداد صحیح را به کاراکتر اضافه کنید، این به نظر می رسد خیلی ساده است. ما فقط رفتن به تکرار بیش از یک رشته مانند ما در مثال قبل را دیدم. خواهیم بررسی کنید که آیا آن نامه. اگر از آن است، سپس ما آن را با هر کلید تغییر است. بسیار ساده است، به جز زمانی که شما دریافت می کنید به مانند این، شما می بینید که Z، نمایندگی 122، پس از آن که شما یک شخصیت متفاوت. ما در واقع می خواهم به ماندن در داخل الفبای ما، درست است؟ بنابراین ما نیاز به کشف کردن برخی از راه را از نوع کاغذ بسته بندی در اطراف. هنگامی که شما در رسیدن به ZED و شما می خواهید به یک شماره خاص را افزایش می دهد، شما نمی خواهید برای رفتن به فراتر از بخش الفبای ASCII؛ شما می خواهید برای قرار دادن تمام راه را به A. اما به خاطر داشته باشید که شما هنوز حفظ این مورد. بنابراین دانستن که نامه نمی تواند تبدیل به نمادهای درست مثل نمادهای نمی خواهید به تغییر و همچنین. در آخرین pset شما قطعا نیازی به، اما یک گزینه برای اجرای pset حریص خود را با استفاده از تابع مدول. اما در حال حاضر ما در واقع رفتن به نیاز به استفاده از مدول پس بیش از این بیت کمی اجازه دهید. اساسا، هنگامی که شما به Y، X پیمانه است که به شما می دهد باقی مانده از X توسط Y تقسیم می کند. در اینجا برخی از نمونه ها در اینجا. در حال حاضر 27٪ 15. در واقع، اگر 15 شما تفریق از 27 را هر چند بار که ممکن است بدون گرفتن منفی پس از آن شما می توانید 12 باقی مانده است. به طوری که نوع مانند در زمینه ریاضی است، اما چگونه می توانیم در واقع استفاده از این؟ این رفتن مفید باشد برای wrapover ما. برای این کار، اجازه دهید فقط می گویند من از تو به 3 گروه تقسیم. گاهی اوقات شما این کار را در گروه ها و چیزی شبیه به آن. بگو من گفت: "بسیار خوب، من می خواهم همه شما را به 3 تقسیم شده است." چگونه ممکن است به شما انجام این کار؟ [پاسخ دانش آموز نامفهوم] بله، دقیقا. تعداد خاموش است. باشه. اجازه دهید در واقع انجام این کار است. آیا شما می خواهید را شروع کنم؟ [دانش آموزان شمارش کردن] 1، 2، 3، 4. اما به یاد داشته باشید ... >> [دانشجو] اوه، ببخشید. این نقطه واقعا خوب است. شما گفتید 4، اما ما در واقع می خواهم به شما بگویم 1 چرا که ما فقط می خواهیم 3 گروه. پس، چگونه - نه، که واقعا یک مثال خوب این دلیل است که پس چگونه ممکن است 1 به شما می گویند؟ ارتباط بین 4 و 1 چه خبر؟ خب، 4 مد 3 1. بنابراین اگر شما در ادامه، به شما خواهد بود 2. بنابراین ما باید 1، 2، 3، 1، 2. باز هم، شما در واقع فرد 5. چگونه شما می دانید برای گفتن 2 به جای 5؟ شما می گویید 2 5 مد 3. من می خواهم ببینید که چگونه بسیاری از گروه 3 باقی مانده، پس از آن که نظم هستم اول و تا بعد اگر ما در طول اتاق ادامه داد، پس از آن ما خواهد بود که ما همیشه در واقع با استفاده از تابع وزارت دفاع به خودمان به دفعات مشاهده شده نوع خاموش است. این نوع بیشتر از مثال ملموس از اینکه چگونه ممکن است استفاده از پیمانه چون من مطمئن هستم که بسیاری از ما احتمالا از طریق این روند رفته جایی که ما تا به حال به دفعات مشاهده شده خاموش. هر گونه سوال در مورد پیمانه؟ این خواهد بود که بسیار مهم است به درک این مفاهیم، بنابراین من می خواهم تا مطمئن شوید که شما بچه ها می دانند. [دانشجو] اگر هیچ باقی مانده وجود دارد، آیا آن را به شما تعداد واقعی؟ اگر یکی از 3 نخست از آنها آن را انجام داده بود، آن را به آنها را با توجه به آنچه آنها در واقع، و یا آن را به آنها داده [نامفهوم] >> که یک سوال خوبی است. هنگامی که باقی مانده برای باقی مانده وجود دارد - به طوری که می گویند شما باید 6 مد 3 - که در واقع به شما می دهد 0. ما که کمی بعد صحبت خواهیم کرد. آه، بله، به عنوان مثال، 3rd نفر 3 - وزارت دفاع 3 است که در واقع 0 اما او گفت 3. به طوری که این نوع مانند گرفتن داخلی، به عنوان مثال، مانند بسیار خوب، اگر وزارت دفاع 0 است و سپس من قصد دارم به فرد 3. اما ما را به نوعی ما چگونه ممکن است بخواهید برای مقابله با آنچه که 0 است بعد دریافت کنید. بنابراین در حال حاضر ما به نحوی راه نقشه برداری ZED به نامه است. بنابراین در حال حاضر از طریق این مثالها رفته ایم، ما نوع سزار چگونه ممکن است کار کند. همانطور که می بینید 2 حروف و سپس شما آنها را تغییر. پس سعی و بیان که در شرایط استفاده از فرمول است. این فرمول است که در واقع در تنظیمات به شما داده شده است، اما نوع بیایید نگاه را از طریق آنچه هر متغیر به معنی. نتیجه نهایی ما این است که برای رفتن به متن رمزی. پس این می گوید که شخصیت i ام از متن رمزی رفتن به مربوط به شخصیت i ام از متنی است. این را حس می کند زیرا ما می خواهیم که همیشه در پوشش این چیزها. پس از آن که برای رفتن به شخصیت i ام از متن رمزی به علاوه K است که کلید ما - که حس می کند - و سپس به ما از این وزارت دفاع 26. به یاد داشته باشید زمانی که ما تا به حال ZED ما به شخصیت، به طوری که ما می خواستیم به آن وزارت دفاع و نوع بسته بندی کردن در اطراف حروف الفبا. پس از ZED شما را به، B، C، D، تا زمانی که شما به عدد سمت راست شدم. بنابراین ما می دانیم که ZED، اگر + 6، که ما F چون بعد از ZED می آید A، B، C، D، E، F. بنابراین به یاد داشته باشید که ما برای مطمئن می دانیم که ZED + 6 به ما F را بگذارید. در مقادیر ASCII، Z 122 است و F 102. بنابراین ما باید برای پیدا کردن بعضی از راه های ساخت فرمول سزار ما به ما 102 پس از مصرف در 122 می باشد. بنابراین اگر ما تنها این فرمول، درصد ('Z' + 6) 26، که در واقع به شما 24 اعمال می شود به خاطر 122 + 6، 128؛ 128 26٪ به شما می دهد 24 باقی مانده. اما واقعا به این معنی نیست F. که قطعا 102 نیست. همچنین نامه 6 در الفبای نیست. بنابراین بدیهی است که ما باید به برخی از راه های افزایش سرعت این بیت کمی است. در شرایط استفاده از حروف الفبای انگلیسی را به طور منظم، ما می دانیم که Z نامه 26 و F 6. اما ما در علم کامپیوتر هستید، بنابراین ما در حال رفتن به صفحه اول در 0. بنابراین پس از آن به جای Z شماره 26، ما در حال رفتن به می گویند شماره 25 چرا که 0 است. بنابراین در حال حاضر اعمال این فرمول به شما اجازه می دهد تا. Z 25 + 6 نشان داده شده است، که به شما می دهد 31. و 31 وزارت دفاع 26 به شما می دهد 5 به عنوان یک باقی مانده است. عالی است چرا که ما می دانیم که F نامه 5 در الفبای. اما هنوز F نمی باشد، درست است؟ هنوز هم 102 است. پس برای این pset، یک چالش خواهد شد تلاش برای پیدا کردن این رابطه بین تبدیل این مقادیر ASCII و شاخص به ترتیب حروف الفبا. اساسا، آنچه که شما می خواهید برای انجام این کار، شما می خواهید برای شروع کردن با ارزش های ASCII، اما بعد از آن شما می خواهید به نوعی ترجمه است که به یک شاخص به ترتیب حروف الفبا پس از آن چه نامه ای باید آن را محاسبه - در واقع، در صفحه اول خود را به ترتیب حروف الفبا از شخصیت صفر - پس از آن بازگشت به ارزش های ASCII ترجمه. بنابراین اگر شما شلاق از جدول ASCII خود را، پس از آن و پیدا کردن روابط بین، می گویند، 102 و 5 یا از 122 و 25. ما کلید خود را از آرگومان های خط فرمان بدست ما رو بدست متنی، ما آن را enciphered. در حال حاضر همه ما را ترک کرده اند به انجام آن را چاپ کنید. ما می توانیم انجام دهیم این است که یک زن و شوهر از راه های مختلف. آنچه ما می توانیم انجام دهیم این است که در واقع به عنوان ما به همراه چاپ. ما تکرار کاراکتر در رشته، ما به سادگی می تواند درست و مناسب آن را چاپ زمانی که ما آن را محاسبه. متناوبا، شما همچنین می تواند آن را در یک آرایه ذخیره و آرایه ای از کاراکتر ها و در پایان که بیش از کل آرایه تکرار و آن را چاپ کنید. بنابراین شما باید یک زن و شوهر از گزینه های که برای. و به یاد داشته باشید که٪ C است برای رفتن به مکان نگه دار برای چاپ یک کاراکتر است. بنابراین ما باید سزار، و در حال حاضر ما در حرکت به Vigenere، که بسیار شبیه به سزار، اما فقط کمی پیچیده تر است. بنابراین اساسا با Vigenere است که شما قصد عبور در یک کلمه کلیدی است. بنابراین به جای استفاده از یک شماره، شما در حال رفتن به یک رشته، و به طوری که به عنوان کلمه کلیدی خود را عمل می کنند. سپس، به طور معمول، شما در حال رفتن به سریع برای یک رشته از کاربر دریافت کنید و پس از آن و پس از آن سری کردن پشت متن رمزی را به آنها بدهید. بنابراین همان طور که گفتم، آن را بسیار شبیه به سزار، به جز به جای تغییر توسط یک شماره خاص، است که در واقع رفتن به تغییر در هر زمان از یک شخصیت به شخصیت است. به نمایندگی که تعداد واقعی به تغییر، آن را با حروف صفحه کلید نشان داده شده است. بنابراین اگر شما در یک شیفت، به عنوان مثال وارد کنید، پس از آن است که به یک تغییر از 0 مطابقت دارد. پس از آن دوباره برگشت به فهرست الفبایی. چه ممکن است مفید باشد اگر شما می بینید که ما در واقع با ارزش ASCII خرید و فروش و همچنین به عنوان حروف، و همچنین به عنوان شاخص به ترتیب حروف الفبا، شاید و یا پیدا کردن خود را در جدول ASCII است که نشان می دهد شاخص به ترتیب حروف الفبا از 0 تا 25 از طریق Z، و ارزش های ASCII به طوری که شما از نوع رابطه می توانید ببینید و طرح کنید و سعی کنید و پیدا کردن بعضی از الگوها. به طور مشابه، اگر شما به عنوان مثال برخی از تغییر توسط F - و این هر دو F حروف کوچک یا بزرگ است - پس از آن است که تا 5 مطابقت دارد. آیا ما تا کنون؟ فرمول Vigenere کمی متفاوت است. در واقع، شما می بینید که آن را درست مثل سزار، جز به جای فقط K J K اول. توجه داشته باشید که ما با استفاده از نیست، زیرا در اصل، طول کلمه کلیدی طول متن رمزی ما نیستند. این خواهد بود که واضح تر بیتی زمانی که ما می بینیم به عنوان مثال که من آن را کمی بعد. در واقع، اگر شما برنامه را اجرا می کنید با یک کلمه کلیدی ohai، پس از آن است که این بدان معنی است که در هر زمان، ohai است برای رفتن به تغییر شما. بنابراین با توجه به موقعیت شما در کلمه کلیدی خود را، شما در حال رفتن به تغییر برخی از شخصیت های متن رمزی خود را توسط آن مقدار است. باز هم، درست مثل سزار، ما می خواهیم اطمینان حاصل کنید که سرمایه همه چیز ما حفظ و ما فقط نامه برمز نوشتن، شخصیت ها و یا فضاهای. بنابراین بازگشت به سزار در توابع است که شما ممکن است مورد استفاده قرار گیرد، راهی که شما تصمیم گرفت که چگونه برای تغییر همه چیز، و درخواست از آن است که به برنامه شما در اینجا. پس از این نقشه. ما یک متنی که ما از کاربر را از GetString بدست گفت: این ... CS50 است! سپس ما باید کلید واژه ohai. 4 حرف اول خیلی ساده است. ما می دانیم که T در حال رفتن به O منتقل می شود، پس از آن در ساعت توسط H منتقل می شود، من در حال رفتن به یک منتقل شده است. در اینجا شما می بینید که نشان دهنده 0 پس ارزش نهایی است که در واقع فقط همان حرف قبل است. سپس S توسط منتقل شده است. اما پس از آن شما باید این دوره اینجا کلیک کنید. ما نمی خواهیم به سری کردن که، به طوری که پس از آن ما انجام آن را با هر چیزی را تغییر نمی دهد و فقط از چاپ دوره بدون تغییر باقی مانده است. [دانشجوی] من درک نمی کنم که چگونه شما می دانید که این منتقل - کجا شما - >> اوه، ببخشید. در بالا در اینجا شما می بینید که خط فرمان ohai بحث در اینجا، که رفتن را به عنوان کلمه کلیدی می باشد. و بنابراین اساسا، شما در حال دوچرخه سواری بیش از حرف در کلمه کلیدی است. [دانشجوی] ای است که برای رفتن به تغییر همان - بنابراین O مربوط به تعداد معینی در الفبای. [دانشجو] درست است. اما در جایی که شما می توانید به بخش CS50؟ آه. GetString جایی که دوست دارید، در حال "من یک رشته برای رمزگذاری است." [دانشجوی] آنها در حال رفتن به شما که بحث ها و منازعات را به تغییر توسط و پس از آن شما برای رشته اول خود را بپرسید. >> آره. بنابراین، هنگامی که آنها اجرای برنامه، آنها در حال رفتن به شامل کلمه کلیدی در خط فرمان استدلال خود را هنگامی که آن را اجرا می کنند. سپس هنگامی که شما بررسی کرده اید که آنها در واقع با توجه به شما 1 و نه بیشتر، نه کمتر، پس از آن شما برای رفتن به آنها را برای یک رشته بی درنگ، می گویند، "من یک رشته را به من بده." به طوری که که در این مورد را به شما داده ام این است ... CS50 است! بنابراین پس شما قصد استفاده از آن و استفاده از ohai و تکرار بیش از. توجه داشته باشید که در اینجا در حال حاضر بیش رمزنگاری دوره های قلم، اما در شرایط استفاده از موضع ما برای ohai، یک بعدی ما با استفاده از O. در این مورد، آن را کمی سخت تر برای دیدن زیرا که 4، بنابراین ادامه کمی اجازه دهید. فقط با من می چسبد. سپس ما به من و S هستند که پس از ترجمه توسط O و H به ترتیب. سپس ما یک فضا، و به همین ترتیب پس از آن ما می دانیم که ما می خواهیم به سری کردن فضاهای. اما توجه داشته باشید که به جای رفتن به این نقطه، ما در حال رمزنگاری - من نمی دانم اگر شما می توانید آن را ببینید - حق در اینجا. پس از آن مانند شما در واقع از پیش تعیین شده، می گویند، ای در اینجا قرار می گیرد، در ساعت می رود در اینجا، می رود در اینجا، من در اینجا قرار می گیرد، O، H، A، I، O، H،، من. شما این کار را نمی کنند. شما تنها موقعیت خود را در کلید واژه انتقال هنگامی که شما می دانید که شما در واقع برای رفتن به رمزنگاری نامه واقعی است. آیا این نوع را حس؟ باشه. پس فقط برخی از یادآوری. شما می خواهید مطمئن شوید که شما را به نامه بعدی در کلمه کلیدی خود را در پیشبرد اگر شخصیت در متنی شما یک نامه. پس بگو ما در ای هستید. ما می بینیم که شخصیت بعدی، شاخص من از متنی، یک عدد باشد، به عنوان مثال. پس ما J، شاخص برای کلید واژه ما پیشرفت نمی کند، تا زمانی که نامه دیگری برسد. باز هم، شما همچنین می خواهید مطمئن شوید که شما کمر بند یا چیزی که دور بدن شخصی بسته باشند را به ابتدای کلمه کلیدی هنگامی که شما در پایان آن هستیم. اگر شما اینجا را ببینید به ما در من هستید، یک بعدی به صورت O است. بنابراین شما می خواهید برای پیدا کردن بعضی از راه به ابتدای کلمه کلیدی خود را که قادر به شال هر بار که شما رسیدن به انتهای. و به این ترتیب دوباره، چه نوع اپراتور مفید است که در مورد بسته بندی در اطراف؟ مانند شمارش کردن عنوان مثال. [دانش آموز] نشانه درصد است. >> آره، علامت درصد است، که باقی مانده است. بنابراین باقی مانده را در دستی به اینجا می آیند، زمانی که شما می خواهید برای قرار دادن شاخص در ohai شما. و فقط سریع نکته: سعی کنید به فکر کردن در بسته بندی بیش از کلمه کلیدی کمی شبیه خارج از شمارش، جایی که اگر 3 گروه، شخص 4 وجود دارد، تعداد آنها که گفتند 4 مد 3، که 1 بود. بنابراین کنید و سعی کنید از آن فکر می کنم که در راه است. همانطور که شما در این فرمول را دیدم، هر کجا که شما CI و سپس PI اما بعد از آن KJ، شما می خواهید مطمئن شوید که مسیر شما را از آن. شما لازم نیست که آن را من تماس بگیرید، شما لازم نیست که به آن J، اما شما می خواهید مطمئن شوید که مسیر شما را از موقعیت است که شما در متنی شما و همچنین به عنوان موقعیتی است که شما در در کلمه کلیدی خود هستید زیرا آنها نه لزوما به همان. نه فقط کلید واژه ها - می تواند آن را به طول به طور کامل متفاوت از متنی شما است. همچنین، متنی شما هستند، اعداد و حروف وجود دارد، پس از آن کاملا مطابقت کردن با هم. بله. [دانشجوی] یک تابع برای تغییر مورد وجود دارد؟ آیا می توانید یک تغییر به سرمایه؟ >> بله، قطعا وجود دارد. شما می توانید - به اعتقاد من toupper آن، تمام کلمه 1. اما هنگامی که شما در حال تلاش برای رمز چیزها و حفظ متن، بهتر است اساسا به پرونده های جداگانه است. اگر آن را بزرگ، و سپس شما می خواهید به این تغییر چرا که در فرمول خود را، زمانی که شما به عقب نگاه ما را به نوع برو قابل معاوضه بین راه ASCII به نمایندگی از اعداد و فهرست الفبایی واقعی، ما می خواهیم اطمینان حاصل کنید رفتن وجود دارد به نوعی از الگوی است که شما قصد استفاده از. یکی دیگر از توجه داشته باشید در این الگو، در واقع. شما در حال رفتن به قطعا به خرید و فروش با شماره. سعی کنید به استفاده از اعداد جادویی است، که نمونه ای از سبک. پس بگو شما را به هر چیزی زمان تغییر توسط دوست می خواهم - بسیار خوب، اشاره، یکی دیگر از اسپویلر است که هنگامی که شما در حال رفتن به تغییر چیزی با یک مقدار خاص، سعی کنید به نشانگر این است که تعداد واقعی بلکه سعی کنید ببینید که اگر شما می توانید مقدار ASCII که به نوعی ایجاد حس بیشتر استفاده کنید. یکی دیگر از توجه داشته باشید: از آنجا که ما در حال برخورد با فرمول، حتی اگر TF خود را به نوعی می دانید چه الگوی شما ممکن است با استفاده از، بهترین در نوع خود از نظر توضیح منطق، مانند، "من با استفاده از این الگو به دلیل ..." و نوع توضیح الگوی موجز در نظر شما. [این مقاله 2] در صورتی که هر گونه سؤال دیگر وجود ندارد، پس من فقط در اینجا می مانم کمی. موفق باشید با pset 2: رمزنگاری و تشکر برای آینده. [دانشجو] با تشکر از شما. >> با تشکر. [مقدمه ای بر رسانه های آفلاین]