1 00:00:00,000 --> 00:00:10,103 2 00:00:10,103 --> 00:00:11,270 >> ZAMYLA Chan: Təbriklər Sizin bitirdikdən haqqında 3 00:00:11,270 --> 00:00:13,200 C proqramları ilk bir neçə. 4 00:00:13,200 --> 00:00:16,379 Mən bilirəm ki, ilk çapqın daxil C sintaksis zor ola bilər. 5 00:00:16,379 --> 00:00:20,060 Amma sonunda, sizi əmin Əlbəttə, siz baxmaq edə bilərsiniz 6 00:00:20,060 --> 00:00:23,870 ilk tapşırıqlarının neçə dəqiqə onlara tam. 7 00:00:23,870 --> 00:00:27,830 >> İndi daha çox tanış edirik ki, sintaksis ilə, bu Sezar almaq imkan verir. 8 00:00:27,830 --> 00:00:31,720 Sezar, istifadəçi bir təqdim edəcək bir skript satırı kimi tam əsas 9 00:00:31,720 --> 00:00:35,300 dəlil, sonra düz daxil edin tez, mətn mesajı. 10 00:00:35,300 --> 00:00:38,050 Proqram sonra encipher edəcək mətn və çap 11 00:00:38,050 --> 00:00:40,020 onların ciphertext göndər. 12 00:00:40,020 --> 00:00:42,980 >> Sezar üçün enciphering olduqca sadədir. 13 00:00:42,980 --> 00:00:46,455 Onların, hər məktub Shift əsas ilə düz mətn. 14 00:00:46,455 --> 00:00:49,220 Nəticədə, o da var olduqca etibarsız. 15 00:00:49,220 --> 00:00:53,850 Amma həyata Caesar təqdim edəcək Bizə ASCIIMath və array data 16 00:00:53,850 --> 00:00:54,460 strukturlar. 17 00:00:54,460 --> 00:00:57,510 Biz daha mürəkkəb almaq lazımdır sonra ciphers. 18 00:00:57,510 --> 00:01:01,680 2 Caesar əsas, bir məktubu ilə düz mətn ilə təmsil olunacaq 19 00:01:01,680 --> 00:01:07,580 ciphertext ilə məktub C, çünki C A. B sonra iki məktubu olacaq edir 20 00:01:07,580 --> 00:01:12,450 Doğru E. D və C ilə təmsil əlifbası sonunda, W edir 21 00:01:12,450 --> 00:01:18,550 Z. Lakin Y tərəfindən Y, və X təmsil Belə ki, bundan sonra iki məktubu yoxdur 22 00:01:18,550 --> 00:01:21,070 ki, ciphers əlifbası ətrafında wraps. 23 00:01:21,070 --> 00:01:27,190 Düz mətn Y beləliklə təmsil edir Mayın B. ciphertext A və Z 24 00:01:27,190 --> 00:01:32,080 kimi Sezar rəqəm baxmaq üçün Help davamlı əlifba təkər. 25 00:01:32,080 --> 00:01:35,760 >> Mətn, istifadəçi encipher üçün iki arqumentin daxil olacaq 26 00:01:35,760 --> 00:01:37,090 - command line daxil 27 00:01:37,090 --> 00:01:40,010 . / Sezar əsas izlədi. 28 00:01:40,010 --> 00:01:44,710 Həmişə olduğu kimi, biz istifadəçi etibar edə bilməz tamamilə ki, daxil daxil etmək üçün 29 00:01:44,710 --> 00:01:45,800 bizim proqram üçün mənada. 30 00:01:45,800 --> 00:01:50,670 Belə ki, biz onların doğrulamak üçün lazımdır command line daxil etmə. 31 00:01:50,670 --> 00:01:57,285 >> Əvəzində int əsas etibarsız istifadə edərək, biz istəyirik int əsas, int argc, simli argv istifadə edərək. 32 00:01:57,285 --> 00:02:01,730 Bu tam dəyişən argc təmsil keçdi dəlilləri sayı 33 00:02:01,730 --> 00:02:02,880 command line. 34 00:02:02,880 --> 00:02:09,070 Və argv bir sıra, və ya kimi düşünün arqumentləri siyahısı daxil keçdi 35 00:02:09,070 --> 00:02:12,000 >> Belə ki, Sezar, biz necə doğrulamak yoxdur istifadəçi girişi? 36 00:02:12,000 --> 00:02:15,870 Bəli, onlar yalnız daxil edilməlidir iki command line dəlilləri - 37 00:02:15,870 --> 00:02:18,150 . / Sezar və əsas. 38 00:02:18,150 --> 00:02:22,340 Argc 2 deyilsə Belə ki, o deməkdir ki, onlar da əsas və yalnız unuttum 39 00:02:22,340 --> 00:02:27,230 daxil olmuşdur. / Sezar, və ya onlar çox düymələri daxil olub. 40 00:02:27,230 --> 00:02:29,770 >> Bu halda, onda will təlimatlar çap istəyirəm 41 00:02:29,770 --> 00:02:30,910 və proqram çıxın. 42 00:02:30,910 --> 00:02:34,320 Onlar bir daha cəhd lazımdır skript satırı. 43 00:02:34,320 --> 00:02:37,430 Amma argc 2 olsa da, will yoxlamaq üçün lazım olub-olmadığını onlar 44 00:02:37,430 --> 00:02:39,100 Cari bir əsas verir. 45 00:02:39,100 --> 00:02:40,730 Sezar üçün, bir tam lazımdır. 46 00:02:40,730 --> 00:02:43,260 Amma argv strings bir sıra edir. 47 00:02:43,260 --> 00:02:46,490 Necə ki, əsas daxil edirsiniz? 48 00:02:46,490 --> 00:02:47,850 >> Seriallarda da bir göz atınız - 49 00:02:47,850 --> 00:02:51,410 çox tutan data strukturları Eyni data type dəyərləri. 50 00:02:51,410 --> 00:02:55,350 Entries deməkdir ki, sıfır yönümlü ki, ilk element index sıfır 51 00:02:55,350 --> 00:03:00,260 və son element index ölçüsü edir ölçüsü sayı olduğu mənfi 1, 52 00:03:00,260 --> 00:03:02,850 serialın elementləri. 53 00:03:02,850 --> 00:03:07,380 >> Yeni bir string array poçt qutusu elan edin uzunluğu 3, vizual, bu 54 00:03:07,380 --> 00:03:08,570 bu kimi görünür. 55 00:03:08,570 --> 00:03:11,520 Strings üç qablar , Yan-yana. 56 00:03:11,520 --> 00:03:15,445 Hər hansı bir element daxil olmaq üçün, adını yazın serialın və sonra göstərir 57 00:03:15,445 --> 00:03:18,080 kvadrat Mötərizədə verilmiş index. 58 00:03:18,080 --> 00:03:21,610 Burada hər bir dəyər təyin alıram Mən heç bir birlikdə edəcəyini kimi element, 59 00:03:21,610 --> 00:03:24,310 digər string dəyişən. 60 00:03:24,310 --> 00:03:29,020 >> Beləliklə, bizim command line arqumentlər daxil olmaq biz bunu bütün imkanı 61 00:03:29,020 --> 00:03:31,690 ki, argv serialın hüququ element. 62 00:03:31,690 --> 00:03:37,360 Istifadəçi. / Blastoff Komanda daxil edin Terminal daxil raket argv 0 edərdim 63 00:03:37,360 --> 00:03:38,950 ola bilər. / blastoff. 64 00:03:38,950 --> 00:03:45,010 argv Team olardı arg2 raket olardı. 65 00:03:45,010 --> 00:03:47,670 >> Biz əsas edə bilərsiniz İndi ki, biz hələ etmək lazımdır 66 00:03:47,670 --> 00:03:49,040 doğru olduğundan əmin olun. 67 00:03:49,040 --> 00:03:51,060 Biz tam çevirmək lazımdır. 68 00:03:51,060 --> 00:03:54,680 Amma biz kimi tökmə bilməz daha əvvəl etdik. 69 00:03:54,680 --> 00:03:58,800 Neyse, A Y funksiyası qayğı Bizim üçün bu, hətta 0 qaytarır 70 00:03:58,800 --> 00:04:02,110 simli konvertasiya mümkün olmadıqda, bir tam daxil. 71 00:04:02,110 --> 00:04:04,450 Demək, baxmayaraq ki, siz qədər istifadəçi niyə qalmayacaq 72 00:04:04,450 --> 00:04:06,220 proqram davam edək. 73 00:04:06,220 --> 00:04:10,710 Bir Y A nəticə Store tam və orada sizin əsas var. 74 00:04:10,710 --> 00:04:12,070 Növbəti hissəsini sadədir. 75 00:04:12,070 --> 00:04:15,940 , Onların düz mətn üçün istifadəçi təklif olan data type simli olacaq. 76 00:04:15,940 --> 00:04:18,339 Neyse bizim üçün, bütün istifadəçi inputted strings etibarlıdır. 77 00:04:18,339 --> 00:04:21,170 78 00:04:21,170 --> 00:04:24,760 >> Biz bütün lazımi giriş İndi ki, istifadəçi, bizim üçün vaxt var 79 00:04:24,760 --> 00:04:26,520 öz mesaj encipher. 80 00:04:26,520 --> 00:04:29,200 Sezar konsepsiyası sadədir anlamaq üçün kifayətdir. 81 00:04:29,200 --> 00:04:33,750 Amma necə sizin kompüter bilir ki, məktubları bir-birinə sonra gəlir? 82 00:04:33,750 --> 00:04:36,100 >> Ki, ASCII masa girer burada 83 00:04:36,100 --> 00:04:39,420 Hər bir xarakter bir tam var sayı ilə bağlı. 84 00:04:39,420 --> 00:04:41,380 Kapitalı 65-dir. 85 00:04:41,380 --> 00:04:43,310 Capital B 66. 86 00:04:43,310 --> 00:04:45,260 Bir 97-dir kiçik. 87 00:04:45,260 --> 00:04:47,590 Kiçik b 98 edir. 88 00:04:47,590 --> 00:04:50,770 Amma simvol məhdud deyil yalnız əlifba nömrələri. 89 00:04:50,770 --> 00:04:56,020 Məsələn, @ simvolu ASCII sayı 64-dir. 90 00:04:56,020 --> 00:04:59,690 >> Bütün cərgə ilə məşğul əvvəl, nin iddia edək biz yalnız shift var 91 00:04:59,690 --> 00:05:01,220 bir xarakter. 92 00:05:01,220 --> 00:05:04,640 Yaxşı, biz yalnız faktiki keçmək istəyirəm düz mətn məktublar deyil, 93 00:05:04,640 --> 00:05:06,020 simvol və ya nömrələri. 94 00:05:06,020 --> 00:05:09,100 Biz lazımdır ki, ilk şey yoxlamaq xarakter olsun 95 00:05:09,100 --> 00:05:10,430 əlifba. 96 00:05:10,430 --> 00:05:14,460 >> Funksiyası isalpha üçün görür Bizə və Boolean qaytarır - 97 00:05:14,460 --> 00:05:18,570 simvol əgər gerçək bir məktub başqa, əgər yalan. 98 00:05:18,570 --> 00:05:22,270 Iki digər faydalı funksiyaları isupper və islower ilə 99 00:05:22,270 --> 00:05:23,860 self-izahlı adları. 100 00:05:23,860 --> 00:05:27,370 Onlar doğru qayıtmaq, əgər verilmiş karakter , böyük və ya kiçik deyil 101 00:05:27,370 --> 00:05:28,740 müvafiq olaraq. 102 00:05:28,740 --> 00:05:33,770 Onlar Booleans olduğundan, onlar etdiyiniz şərait kimi istifadə etmək faydalıdır. 103 00:05:33,770 --> 00:05:38,310 >> Isalpha doğru qaytarır, siz lazımdır əsas tərəfindən xarakter keçmək. 104 00:05:38,310 --> 00:05:43,750 Elə ASCIIMath açıq bildirin və bəzi ASCII riyaziyyat yoxdur. 105 00:05:43,750 --> 00:05:48,700 Istifadə istifadə çox oxşardır Sezar və bir əsas götürür 106 00:05:48,700 --> 00:05:50,870 command line. 107 00:05:50,870 --> 00:05:59,590 >> Mən ASCIIMath 5 çalıştırıyorsanız, əlavə görünür 5 a, mənə məktub f verilməsi və 108 00:05:59,590 --> 00:06:01,260 ki, ASCII dəyəri göstərilir. 109 00:06:01,260 --> 00:06:04,090 Elə proqram nəzər salaq. 110 00:06:04,090 --> 00:06:11,820 >> Siz burada, niyə təəccüb bilər bu zaman məktub, bir tam deyil 111 00:06:11,820 --> 00:06:14,330 aydın, yaxşı bir məktubu. 112 00:06:14,330 --> 00:06:17,690 O çıxır ki, simvollar və integers birini əvəz edir. 113 00:06:17,690 --> 00:06:21,730 A tək məktubu qoyaraq tırnak ki, tam saxlaya bilərsiniz 114 00:06:21,730 --> 00:06:25,390 kapitalın ASCII dəyəri A. baxmayaraq, ehtiyatlı olun. 115 00:06:25,390 --> 00:06:27,150 Siz tək paltar lazımdır. 116 00:06:27,150 --> 00:06:31,260 Vahid tırnak işaretleri olmadan, compiler bir dəyişən üçün görünür 117 00:06:31,260 --> 00:06:35,510 A, və karakter adına. 118 00:06:35,510 --> 00:06:42,140 >> Sonra saxlanılması, məktub və əsas əlavə ki, int dəyişənlərin nəticəsində məbləği. 119 00:06:42,140 --> 00:06:47,740 Nəticə data tipli olsa da tam, mənim printf bəyanat istifadə 120 00:06:47,740 --> 00:06:50,370 Sandıqı üçün% c tutucu. 121 00:06:50,370 --> 00:06:54,530 Belə ki, proqram karakter yazdıran ki, tam nəticə ilə bağlı. 122 00:06:54,530 --> 00:07:00,400 Və biz tam çap-ci ildən forması kimi də% d istifadə edərək, görərik 123 00:07:00,400 --> 00:07:02,110 sayı həmçinin. 124 00:07:02,110 --> 00:07:04,450 Belə ki, indi siz görə bilərsiniz ki, simvol müalicə və 125 00:07:04,450 --> 00:07:06,980 integers, və əksinə. 126 00:07:06,980 --> 00:07:12,205 >> ASCIIMath bir neçə test edək əsas kimi 25 istifadə edərək, daha çox dəfə. 127 00:07:12,205 --> 00:07:15,510 128 00:07:15,510 --> 00:07:17,090 Biz məktub z almaq. 129 00:07:17,090 --> 00:07:19,750 İndi biz 26 cəhd edin. 130 00:07:19,750 --> 00:07:25,600 Biz bir məktub almaq istəyirəm, ancaq Əvəzində biz sol bracket almaq. 131 00:07:25,600 --> 00:07:29,490 Belə ki, açıq-aydın, yalnız əlavə Məktubda əsas etməyəcək. 132 00:07:29,490 --> 00:07:32,780 Biz kesmek üçün bir düstur anlamaq lazımdır əlifbası ətrafında kimi 133 00:07:32,780 --> 00:07:34,570 əvvəlində misal idi. 134 00:07:34,570 --> 00:07:38,520 >> Ki, Sezar üçün düstur shift belədir. 135 00:07:38,520 --> 00:07:42,750 c p plus k modulo 26 bərabərdir. 136 00:07:42,750 --> 00:07:46,040 Modulo faydalı olduğunu unutmayın bizə qalan verir ki, əməliyyat 137 00:07:46,040 --> 00:07:49,880 digər bir sıra bölünməsi. 138 00:07:49,880 --> 00:07:54,870 Nin düz bu formula tətbiq edək 2 əsas ilə mətn məktubu. 139 00:07:54,870 --> 00:08:01,810 Y olan ASCII dəyəri 89 olan Bizə 91 modulo 26, verir 140 00:08:01,810 --> 00:08:03,690 olan 13 bərabərdir - 141 00:08:03,690 --> 00:08:08,740 mütləq deyil ASCII dəyər bir, hansı 67. 142 00:08:08,740 --> 00:08:12,810 >> Indi mənə yumor və uzaq hərəkət Əlifba indeksi ASCII dəyərlər 143 00:08:12,810 --> 00:08:18,690 sıfır və Z, 25 olduğu Y 24 o deməkdir ki. 144 00:08:18,690 --> 00:08:25,830 24 plus 2, modulo 6, bizə 26 verir da olan modulo 26, 0, 145 00:08:25,830 --> 00:08:28,170 bir əlifba index. 146 00:08:28,170 --> 00:08:32,980 Beləliklə, bu düsturu tətbiq görünür əlifba məktub indeksi və 147 00:08:32,980 --> 00:08:34,960 onun ASCII dəyəri. 148 00:08:34,960 --> 00:08:37,630 >> Amma ASCII dəyərləri ilə başlayın. 149 00:08:37,630 --> 00:08:41,650 Və ciphertext xarakter çap etmək siz həmçinin öz ASCII dəyər lazımdır. 150 00:08:41,650 --> 00:08:46,400 Bu anlamaq üçün, sonra qədər var geri və irəli keçmək üçün necə. 151 00:08:46,400 --> 00:08:49,850 >> Sonra sağ formula anlamaq bir xarakter üçün bütün nə etmək lazımdır 152 00:08:49,850 --> 00:08:53,520 hər eyni formula tətbiq edilir düz mətn məktubu - 153 00:08:53,520 --> 00:08:57,720 ki, məktub əlifba deyil, yalnız əlbəttə. 154 00:08:57,720 --> 00:09:02,360 Və qorumaq üçün lazımdır ki, unutmayın halda, yuxarı və ya aşağı olduğu var 155 00:09:02,360 --> 00:09:06,890 ki, isUpper və isLower funksiyaları qeyd əvvəl yararlı olacaq. 156 00:09:06,890 --> 00:09:08,830 Siz iki düsturlar ola bilər - 157 00:09:08,830 --> 00:09:11,680 böyük harf üçün bir və kiçik üçün. 158 00:09:11,680 --> 00:09:18,420 Belə ki, isUpper bir isLower kömək edəcək tətbiq üçün formula müəyyən edir. 159 00:09:18,420 --> 00:09:22,460 >> Necə hər üçün formula aiddir bir simli tək xarakter? 160 00:09:22,460 --> 00:09:25,910 Bəli, bir simli yalnız bir deyil simvol array. 161 00:09:25,910 --> 00:09:31,150 Belə ki, hər bir xarakteri ilə istifadə edə bilərsiniz də hər bir xarakter üzərində qruplaşdırılması 162 00:09:31,150 --> 00:09:33,450 loop üçün bir string. 163 00:09:33,450 --> 00:09:37,550 Loop üçün şərti kimi, simli üçün funksiyası strlen, 164 00:09:37,550 --> 00:09:39,280 uzunluğu, lazımlı olacaq. 165 00:09:39,280 --> 00:09:44,020 Bu giriş kimi bir simli götürür və ki, simli uzunluğu qaytarır. 166 00:09:44,020 --> 00:09:49,250 Sağ kitabxana daxil əmin olun simli uzunluğu funksiyadan istifadə etmək. 167 00:09:49,250 --> 00:09:51,790 >> Və orada sizin ciphertext var. 168 00:09:51,790 --> 00:09:53,260 Mənim adı Zamyla edir. 169 00:09:53,260 --> 00:09:54,510 Və [danışan CODE]. 170 00:09:54,510 --> 00:10:02,944