1 00:00:00,000 --> 00:00:10,103 2 00:00:10,103 --> 00:00:11,270 >> ZAMYLA چان: تبریک می گویم در پایان خود 3 00:00:11,270 --> 00:00:13,200 زن و شوهر اول از برنامه های C. 4 00:00:13,200 --> 00:00:16,379 من می دانم که اولین تاخت و تاز کردن خود را به نحو C می تواند دلهره آور. 5 00:00:16,379 --> 00:00:20,060 اما من به شما اطمینان می دهم، در پایان البته، شما قادر خواهید بود به در نگاه کنید 6 00:00:20,060 --> 00:00:23,870 زن و شوهر اول از تکالیف و کامل آنها را در عرض چند دقیقه. 7 00:00:23,870 --> 00:00:27,830 >> حالا که شما در حال گرفتن بیشتر آشنا با نحو، بیایید به سزار. 8 00:00:27,830 --> 00:00:31,720 در سزار، کاربر را ارائه کلید صحیح به عنوان یک خط فرمان 9 00:00:31,720 --> 00:00:35,300 استدلال، سپس وارد دشت پیام متن در اعلان. 10 00:00:35,300 --> 00:00:38,050 این برنامه به رمز درآورد خواهد شد متن و چاپ 11 00:00:38,050 --> 00:00:40,020 پیام خود را در متن رمزی. 12 00:00:40,020 --> 00:00:42,980 >> enciphering را برای سزار کاملا ساده است. 13 00:00:42,980 --> 00:00:46,455 شیفت هر حرف، خود را در متن ساده، با کلید. 14 00:00:46,455 --> 00:00:49,220 به عنوان یک نتیجه، آن را نیز بسیار نا امن است. 15 00:00:49,220 --> 00:00:53,850 اما پیاده سازی سزار معرفی خواهد کرد ما به ASCIIMath و آرایه داده 16 00:00:53,850 --> 00:00:54,460 سازه ها. 17 00:00:54,460 --> 00:00:57,510 ما به پیچیده تر رمز بعد. 18 00:00:57,510 --> 00:01:01,680 با یک کلید سزار 2، نامه متن ساده می شود توسط 19 00:01:01,680 --> 00:01:07,580 حرف C در متن رمزی به دلیل C دو حرف بعد از A. B خواهد بود 20 00:01:07,580 --> 00:01:12,450 توسط D و C توسط E. ارائه شده به سوی پایان از حروف الفبا، W 21 00:01:12,450 --> 00:01:18,550 توسط Y، X و توسط Z. اما Y نشان داده دو حرف بعد از آن را ندارد، بنابراین 22 00:01:18,550 --> 00:01:21,070 رمز دور الفبای. 23 00:01:21,070 --> 00:01:27,190 Y در متن ساده است بنابراین نشان داده در متن رمزی، و Z توسط B. ممکن است 24 00:01:27,190 --> 00:01:32,080 برای مشاهده سزار سایفر مانند چرخ الفبای مستمر. 25 00:01:32,080 --> 00:01:35,760 >> برای برمز نوشتن متن، کاربر دو استدلال را وارد کنید 26 00:01:35,760 --> 00:01:37,090 به خط فرمان - 27 00:01:37,090 --> 00:01:40,010 / سزار به دنبال یک کلید. 28 00:01:40,010 --> 00:01:44,710 مثل همیشه، ما می توانیم به کاربر اعتماد نمی کند به طور کامل به وارد کردن ورودی که باعث 29 00:01:44,710 --> 00:01:45,800 حس برای برنامه های ما. 30 00:01:45,800 --> 00:01:50,670 بنابراین ما باید به اعتبار خود ورودی خط فرمان. 31 00:01:50,670 --> 00:01:57,285 >> به جای استفاده از درجه اعتبار ساقط اصلی اعضای هیات، ما با استفاده از اعضای هیات تحریریه اصلی، تعداد آنها عدد صحیح، رشته و argv. 32 00:01:57,285 --> 00:02:01,730 تعداد آنها متغیر عدد صحیح نشان دهنده تعداد آرگومانهای داده شده به 33 00:02:01,730 --> 00:02:02,880 خط فرمان. 34 00:02:02,880 --> 00:02:09,070 و و argv یک آرایه، و یا فکر می کنم از آن به عنوان یک لیست، از استدلال گذشت. 35 00:02:09,070 --> 00:02:12,000 >> بنابراین برای سزار، چگونه می توانم اعتبار ما ورودی کاربر؟ 36 00:02:12,000 --> 00:02:15,870 خب، آنها تنها باید ورود دو آرگومان خط فرمان - 37 00:02:15,870 --> 00:02:18,150 / سزار و یک کلید. 38 00:02:18,150 --> 00:02:22,340 بنابراین اگر تعداد آنها 2، که بدان معنی است که آنها یا یک کلید و فقط را فراموش کرده ام 39 00:02:22,340 --> 00:02:27,230 وارد شده است. / سزار، یا آنها وارد کلید های متعدد. 40 00:02:27,230 --> 00:02:29,770 >> اگر این مورد است، سپس شما می خواهم به چاپ دستورالعمل 41 00:02:29,770 --> 00:02:30,910 و خروج از برنامه. 42 00:02:30,910 --> 00:02:34,320 آنها نیاز به دوباره سعی کنید از خط فرمان. 43 00:02:34,320 --> 00:02:37,430 اما حتی اگر تعداد آنها 2 است، شما نیاز به چک کردن اینکه آیا آنها 44 00:02:37,430 --> 00:02:39,100 شما یک کلید معتبر بدهد. 45 00:02:39,100 --> 00:02:40,730 برای سزار، شما نیاز به یک عدد صحیح است. 46 00:02:40,730 --> 00:02:43,260 اما و argv به آرایه ای از رشته ها است. 47 00:02:43,260 --> 00:02:46,490 چگونه می توانم از این کلید شما دسترسی پیدا کنم؟ 48 00:02:46,490 --> 00:02:47,850 >> نگاه سریع در آرایه ها - 49 00:02:47,850 --> 00:02:51,410 ساختارهای داده که نگه چندگانه مقادیر نوع داده همان. 50 00:02:51,410 --> 00:02:55,350 نوشته نمایه صفر است، به این معنی که اولین عنصر شاخص صفر است 51 00:02:55,350 --> 00:03:00,260 و عنصر آخر در اندازه شاخص است منهای 1، که در آن تعداد اندازه 52 00:03:00,260 --> 00:03:02,850 عناصر موجود در آرایه. 53 00:03:02,850 --> 00:03:07,380 >> اگر من صندوق پستی آرایه یک رشته جدید اعلام کرد طول 3، بصری، 54 00:03:07,380 --> 00:03:08,570 به نظر می رسد شبیه به این. 55 00:03:08,570 --> 00:03:11,520 سه ظروف برای رشته ، در کنار هم. 56 00:03:11,520 --> 00:03:15,445 برای دسترسی به هر عنصر، نوع نام از آرایه و پس از آن نشان می دهد 57 00:03:15,445 --> 00:03:18,080 شاخص در داخل پرانتز مربع. 58 00:03:18,080 --> 00:03:21,610 در اینجا، من اختصاص دادن مقدار به هر عنصر، درست مانند من که با هر 59 00:03:21,610 --> 00:03:24,310 متغیر رشته ای دیگر. 60 00:03:24,310 --> 00:03:29,020 >> بنابراین برای دسترسی به آرگومان خط فرمان ما، همه ما باید انجام دهیم این است دسترسی به 61 00:03:29,020 --> 00:03:31,690 عنصر از آرایه ی argv. 62 00:03:31,690 --> 00:03:37,360 اگر کاربر وارد تیم / blastoff است موشک به ترمینال، و argv 0 63 00:03:37,360 --> 00:03:38,950 شود / blastoff. 64 00:03:38,950 --> 00:03:45,010 و argv خواهد بود تیم، و ARG2 موشک خواهد بود. 65 00:03:45,010 --> 00:03:47,670 >> حالا که ما می توانید کلید خود دسترسی داشته باشید، ما هنوز نیاز به ایجاد 66 00:03:47,670 --> 00:03:49,040 شوید که آن را درست است. 67 00:03:49,040 --> 00:03:51,060 ما باید آن را تبدیل به یک عدد صحیح. 68 00:03:51,060 --> 00:03:54,680 اما ما نمی توانیم درست مثل بازیگران ما قبلا انجام داده ایم. 69 00:03:54,680 --> 00:03:58,800 خوشبختانه، به تابع Y مراقبت طول می کشد این برای ما و حتی می گرداند 0 70 00:03:58,800 --> 00:04:02,110 اگر رشته را نمی تواند تبدیل می شود به یک عدد صحیح است. 71 00:04:02,110 --> 00:04:04,450 آن را به شما، هر چند، برای گفتن کاربر به همین دلیل شما نمی خواهد 72 00:04:04,450 --> 00:04:06,220 اجازه دهید برنامه را ادامه دهید. 73 00:04:06,220 --> 00:04:10,710 ذخیره نتیجه به Y در عدد صحیح، وجود دارد و شما باید کلید خود را. 74 00:04:10,710 --> 00:04:12,070 قسمت بعدی خیلی ساده است. 75 00:04:12,070 --> 00:04:15,940 اعلان کاربر برای متن ساده خود را، که از نوع رشته داده باشد. 76 00:04:15,940 --> 00:04:18,339 خوشبختانه برای ما، همه کاربر وارد شده رشته معتبر هستند. 77 00:04:18,339 --> 00:04:21,170 78 00:04:21,170 --> 00:04:24,760 >> حالا که ما تمام ورودی لازم از کاربر، آن زمان برای ما به 79 00:04:24,760 --> 00:04:26,520 پیام خود را به رمز درآورد. 80 00:04:26,520 --> 00:04:29,200 مفهوم سزار ساده است به اندازه کافی به درک. 81 00:04:29,200 --> 00:04:33,750 اما چگونه کامپیوتر خود را می دانم که نامه پس از دیگری می آیند؟ 82 00:04:33,750 --> 00:04:36,100 >> در اینجا که در آن جدول ASCII می آید. 83 00:04:36,100 --> 00:04:39,420 هر شخصیت دارای یک عدد صحیح تعداد وجود ندارد. 84 00:04:39,420 --> 00:04:41,380 سرمایه 65 است. 85 00:04:41,380 --> 00:04:43,310 سرمایه B 66 است. 86 00:04:43,310 --> 00:04:45,260 حروف کوچک 97. 87 00:04:45,260 --> 00:04:47,590 حروف کوچک ب 98 است. 88 00:04:47,590 --> 00:04:50,770 اما شخصیت ها محدود نمی شود به تنها تعداد الفبایی. 89 00:04:50,770 --> 00:04:56,020 برای مثال، نماد @ 64 تعداد ASCII است. 90 00:04:56,020 --> 00:04:59,690 >> قبل از برخورد با کل رشته، بیایید وانمود ما فقط باید برای تغییر 91 00:04:59,690 --> 00:05:01,220 یکی از شخصیت ها. 92 00:05:01,220 --> 00:05:04,640 خب، ما فقط می خواهید به تغییر واقعی حروف در متن ساده، نه 93 00:05:04,640 --> 00:05:06,020 کاراکتر یا اعداد باشد. 94 00:05:06,020 --> 00:05:09,100 بنابراین اولین چیزی که ما را می خواهید چک کنید این است که آیا شخصیت در 95 00:05:09,100 --> 00:05:10,430 حروف الفبا. 96 00:05:10,430 --> 00:05:14,460 >> تابع isalpha را می کند این کار را برای ما و بولی را بر می گرداند - 97 00:05:14,460 --> 00:05:18,570 اگر شخصیت واقعی یک نامه، اگر در غیر این صورت نادرست است. 98 00:05:18,570 --> 00:05:22,270 دو تابع مفید دیگر isupper و islower، با 99 00:05:22,270 --> 00:05:23,860 نام خود توضیحی. 100 00:05:23,860 --> 00:05:27,370 بازگشت آنها اگر درست شخصیت داده شده بزرگ یا کوچک است، 101 00:05:27,370 --> 00:05:28,740 بود. 102 00:05:28,740 --> 00:05:33,770 از آنجا که آنها Booleans هستند، آنها برای استفاده به عنوان شرایط مفید است. 103 00:05:33,770 --> 00:05:38,310 >> اگر isalpha می گرداند درست است، شما نیاز برای تغییر این شخصیت توسط کلید. 104 00:05:38,310 --> 00:05:43,750 بنابراین باز به ASCIIMath اجازه و انجام برخی از ریاضی اسکی. 105 00:05:43,750 --> 00:05:48,700 استفاده شده است بسیار شبیه به استفاده از برای سزار و طول می کشد در یک کلید در 106 00:05:48,700 --> 00:05:50,870 خط فرمان. 107 00:05:50,870 --> 00:05:59,590 >> اگر من را اجرا 5 ASCIIMath، آن را به نظر می رسد به اضافه کردن 5 تا، به من حرف F، و 108 00:05:59,590 --> 00:06:01,260 نمایش ASCII ارزش. 109 00:06:01,260 --> 00:06:04,090 خب بیایید یک نگاهی به این برنامه اجازه دهید. 110 00:06:04,090 --> 00:06:11,820 >> شما ممکن است تعجب، حق در اینجا، به همین دلیل نامه یک عدد صحیح است، هنگامی که آن را 111 00:06:11,820 --> 00:06:14,330 به وضوح، به خوبی، نامه. 112 00:06:14,330 --> 00:06:17,690 معلوم است که شخصیت ها و اعداد صحیح قابل تعویض هستند. 113 00:06:17,690 --> 00:06:21,730 با قرار دادن نامه در تک گیومه، عدد صحیح می تواند ذخیره 114 00:06:21,730 --> 00:06:25,390 مقدار ASCII سرمایه A. مراقب باشید، هر چند. 115 00:06:25,390 --> 00:06:27,150 شما نیاز به لباس های تک. 116 00:06:27,150 --> 00:06:31,260 بدون علامت نقل قول منفرد، کامپایلر را برای یک متغیر 117 00:06:31,260 --> 00:06:35,510 به نام A، و نه شخصیت. 118 00:06:35,510 --> 00:06:42,140 >> سپس من نامه و یک کلید اضافه کنید، ذخیره سازی مبلغ در نتیجه متغیر نوع int. 119 00:06:42,140 --> 00:06:47,740 حتی اگر نتیجه این است از نوع داده عدد صحیح، در دستور printf من با استفاده از 120 00:06:47,740 --> 00:06:50,370 ٪ ج حفره یا سوراخ برای شخصیت. 121 00:06:50,370 --> 00:06:54,530 بنابراین برنامه چاپ کاراکتر همراه با نتیجه صحیح است. 122 00:06:54,530 --> 00:07:00,400 و از آنجایی که ما چاپ عدد صحیح فرم و با استفاده از٪ د، ما می بینیم 123 00:07:00,400 --> 00:07:02,110 تعداد نیز هست. 124 00:07:02,110 --> 00:07:04,450 بنابراین در حال حاضر شما می توانید ببینید که ما درمان شخصیت ها و 125 00:07:04,450 --> 00:07:06,980 اعداد صحیح، و بالعکس. 126 00:07:06,980 --> 00:07:12,205 >> بیایید از آزمون ASCIIMath چند برابر بیشتر با استفاده از 25 به عنوان یک کلید. 127 00:07:12,205 --> 00:07:15,510 128 00:07:15,510 --> 00:07:17,090 ما Z نامه. 129 00:07:17,090 --> 00:07:19,750 حالا ما سعی می کنیم 26. 130 00:07:19,750 --> 00:07:25,600 ما می خواهیم حرف a رو دارم، اما به جای براکت چپ ما دریافت کنید. 131 00:07:25,600 --> 00:07:29,490 بنابراین بدیهی است، فقط با اضافه کردن کلید نامه نمی خواهد انجام دهد. 132 00:07:29,490 --> 00:07:32,780 ما نیاز به کشف کردن فرمول به بسته بندی کردن در اطراف حروف الفبا، دوست ما 133 00:07:32,780 --> 00:07:34,570 به عنوان مثال در ابتدا انجام داد. 134 00:07:34,570 --> 00:07:38,520 >> فرمول برای سزار از SHIFT به شرح زیر است. 135 00:07:38,520 --> 00:07:42,750 ج برابر فسفر به علاوه K پیمانه 26. 136 00:07:42,750 --> 00:07:46,040 به یاد داشته باشید که باقی مانده است مفید است عمل است که به ما می دهد باقی مانده 137 00:07:46,040 --> 00:07:49,880 تقسیم یک عدد دیگر. 138 00:07:49,880 --> 00:07:54,870 بیایید اعمال این فرمول به دشت متن نامه با کلید 2. 139 00:07:54,870 --> 00:08:01,810 ارزش اسکی Y، 89 است، که به ما می دهد 91 پیمانه 26، 140 00:08:01,810 --> 00:08:03,690 که برابر است با 13 - 141 00:08:03,690 --> 00:08:08,740 قطعا نه ارزش ASCII از، که 67 است. 142 00:08:08,740 --> 00:08:12,810 >> طنز من در حال حاضر و حرکت به دور از ارزش های ASCII به شاخص بر اساس حروف الفبا 143 00:08:12,810 --> 00:08:18,690 که در آن صفر و در Z 25 است، معنی که 24 Y است. 144 00:08:18,690 --> 00:08:25,830 24 به علاوه 2 پیمانه 6، به ما می دهد 26، پیمانه 26، 0 است، که 145 00:08:25,830 --> 00:08:28,170 فهرست الفبایی. 146 00:08:28,170 --> 00:08:32,980 بنابراین به نظر می رسد این فرمول به درخواست فهرست الفبایی از آن حرف و 147 00:08:32,980 --> 00:08:34,960 نه ارزش ASCII آن. 148 00:08:34,960 --> 00:08:37,630 >> اما شما با ارزشهای اسکی شروع می شود. 149 00:08:37,630 --> 00:08:41,650 و به چاپ شخصیت متن رمزی، شما مقدار اسکی آن نیز نیاز دارند. 150 00:08:41,650 --> 00:08:46,400 آن را به شما، پس از آن، برای کشف کردن چگونه به عقب و جلو سوئیچ. 151 00:08:46,400 --> 00:08:49,850 >> هنگامی که شما کشف کردن فرمول درست برای یکی از شخصیت ها، همه شما باید انجام دهید 152 00:08:49,850 --> 00:08:53,520 اعمال فرمول به هر نامه در متن ساده - 153 00:08:53,520 --> 00:08:57,720 تنها در صورتی که نامه بر اساس حروف الفبا مرتب شده است، البته. 154 00:08:57,720 --> 00:09:02,360 و به یاد داشته باشید که شما نیاز به حفظ مورد، بالا یا پایین تر، که در آن 155 00:09:02,360 --> 00:09:06,890 isUpper و توابع isLower که قبلا ذکر شد در مفید آمده است. 156 00:09:06,890 --> 00:09:08,830 شما ممکن است دو فرمول - 157 00:09:08,830 --> 00:09:11,680 یکی برای حروف بزرگ و یکی برای حروف کوچک. 158 00:09:11,680 --> 00:09:18,420 بنابراین isUpper یک isLower به شما کمک خواهد کرد تعیین فرمول به درخواست. 159 00:09:18,420 --> 00:09:22,460 >> چگونه می توانم فرمول خود را به شما اعمال می شود به هر یک تک کاراکتر در یک رشته؟ 160 00:09:22,460 --> 00:09:25,910 خوب، یک رشته فقط یک آرایه ای از کاراکتر ها است. 161 00:09:25,910 --> 00:09:31,150 بنابراین شما می توانید هر یک از شخصیت های دسترسی گروه بندی بیش از هر شخصیت را در 162 00:09:31,150 --> 00:09:33,450 رشته در یک حلقه for. 163 00:09:33,450 --> 00:09:37,550 همانطور که برای شرایط خود را برای حلقه، تابع strlen، برای رشته 164 00:09:37,550 --> 00:09:39,280 طول، در مفید آمده است. 165 00:09:39,280 --> 00:09:44,020 آن را در یک رشته را به عنوان ورودی و طول این رشته را برمی گرداند. 166 00:09:44,020 --> 00:09:49,250 اطمینان حاصل کنید که شامل کتابخانه سمت راست استفاده از تابع طول رشته. 167 00:09:49,250 --> 00:09:51,790 >> و در آنجا متن رمزی خود را به شما داشته باشد. 168 00:09:51,790 --> 00:09:53,260 نام من Zamyla است. 169 00:09:53,260 --> 00:09:54,510 و [زبان CODE]. 170 00:09:54,510 --> 00:10:02,944