ZAMYLA Chan: Təbriklər Sizin bitirdikdən haqqında C proqramları ilk bir neçə. Mən bilirəm ki, ilk çapqın daxil C sintaksis zor ola bilər. Amma sonunda, sizi əmin Əlbəttə, siz baxmaq edə bilərsiniz ilk tapşırıqlarının neçə dəqiqə onlara tam. İndi daha çox tanış edirik ki, sintaksis ilə, bu Sezar almaq imkan verir. Sezar, istifadəçi bir təqdim edəcək bir skript satırı kimi tam əsas dəlil, sonra düz daxil edin tez, mətn mesajı. Proqram sonra encipher edəcək mətn və çap onların ciphertext göndər. Sezar üçün enciphering olduqca sadədir. Onların, hər məktub Shift əsas ilə düz mətn. Nəticədə, o da var olduqca etibarsız. Amma həyata Caesar təqdim edəcək Bizə ASCIIMath və array data strukturlar. Biz daha mürəkkəb almaq lazımdır sonra ciphers. 2 Caesar əsas, bir məktubu ilə düz mətn ilə təmsil olunacaq ciphertext ilə məktub C, çünki C A. B sonra iki məktubu olacaq edir Doğru E. D və C ilə təmsil əlifbası sonunda, W edir Z. Lakin Y tərəfindən Y, və X təmsil Belə ki, bundan sonra iki məktubu yoxdur ki, ciphers əlifbası ətrafında wraps. Düz mətn Y beləliklə təmsil edir Mayın B. ciphertext A və Z kimi Sezar rəqəm baxmaq üçün Help davamlı əlifba təkər. Mətn, istifadəçi encipher üçün iki arqumentin daxil olacaq - command line daxil . / Sezar əsas izlədi. Həmişə olduğu kimi, biz istifadəçi etibar edə bilməz tamamilə ki, daxil daxil etmək üçün bizim proqram üçün mənada. Belə ki, biz onların doğrulamak üçün lazımdır command line daxil etmə. Əvəzində int əsas etibarsız istifadə edərək, biz istəyirik int əsas, int argc, simli argv istifadə edərək. Bu tam dəyişən argc təmsil keçdi dəlilləri sayı command line. Və argv bir sıra, və ya kimi düşünün arqumentləri siyahısı daxil keçdi Belə ki, Sezar, biz necə doğrulamak yoxdur istifadəçi girişi? Bəli, onlar yalnız daxil edilməlidir iki command line dəlilləri - . / Sezar və əsas. Argc 2 deyilsə Belə ki, o deməkdir ki, onlar da əsas və yalnız unuttum daxil olmuşdur. / Sezar, və ya onlar çox düymələri daxil olub. Bu halda, onda will təlimatlar çap istəyirəm və proqram çıxın. Onlar bir daha cəhd lazımdır skript satırı. Amma argc 2 olsa da, will yoxlamaq üçün lazım olub-olmadığını onlar Cari bir əsas verir. Sezar üçün, bir tam lazımdır. Amma argv strings bir sıra edir. Necə ki, əsas daxil edirsiniz? Seriallarda da bir göz atınız - çox tutan data strukturları Eyni data type dəyərləri. Entries deməkdir ki, sıfır yönümlü ki, ilk element index sıfır və son element index ölçüsü edir ölçüsü sayı olduğu mənfi 1, serialın elementləri. Yeni bir string array poçt qutusu elan edin uzunluğu 3, vizual, bu bu kimi görünür. Strings üç qablar , Yan-yana. Hər hansı bir element daxil olmaq üçün, adını yazın serialın və sonra göstərir kvadrat Mötərizədə verilmiş index. Burada hər bir dəyər təyin alıram Mən heç bir birlikdə edəcəyini kimi element, digər string dəyişən. Beləliklə, bizim command line arqumentlər daxil olmaq biz bunu bütün imkanı ki, argv serialın hüququ element. Istifadəçi. / Blastoff Komanda daxil edin Terminal daxil raket argv 0 edərdim ola bilər. / blastoff. argv Team olardı arg2 raket olardı. Biz əsas edə bilərsiniz İndi ki, biz hələ etmək lazımdır doğru olduğundan əmin olun. Biz tam çevirmək lazımdır. Amma biz kimi tökmə bilməz daha əvvəl etdik. Neyse, A Y funksiyası qayğı Bizim üçün bu, hətta 0 qaytarır simli konvertasiya mümkün olmadıqda, bir tam daxil. Demək, baxmayaraq ki, siz qədər istifadəçi niyə qalmayacaq proqram davam edək. Bir Y A nəticə Store tam və orada sizin əsas var. Növbəti hissəsini sadədir. , Onların düz mətn üçün istifadəçi təklif olan data type simli olacaq. Neyse bizim üçün, bütün istifadəçi inputted strings etibarlıdır. Biz bütün lazımi giriş İndi ki, istifadəçi, bizim üçün vaxt var öz mesaj encipher. Sezar konsepsiyası sadədir anlamaq üçün kifayətdir. Amma necə sizin kompüter bilir ki, məktubları bir-birinə sonra gəlir? Ki, ASCII masa girer burada Hər bir xarakter bir tam var sayı ilə bağlı. Kapitalı 65-dir. Capital B 66. Bir 97-dir kiçik. Kiçik b 98 edir. Amma simvol məhdud deyil yalnız əlifba nömrələri. Məsələn, @ simvolu ASCII sayı 64-dir. Bütün cərgə ilə məşğul əvvəl, nin iddia edək biz yalnız shift var bir xarakter. Yaxşı, biz yalnız faktiki keçmək istəyirəm düz mətn məktublar deyil, simvol və ya nömrələri. Biz lazımdır ki, ilk şey yoxlamaq xarakter olsun əlifba. Funksiyası isalpha üçün görür Bizə və Boolean qaytarır - simvol əgər gerçək bir məktub başqa, əgər yalan. Iki digər faydalı funksiyaları isupper və islower ilə self-izahlı adları. Onlar doğru qayıtmaq, əgər verilmiş karakter , böyük və ya kiçik deyil müvafiq olaraq. Onlar Booleans olduğundan, onlar etdiyiniz şərait kimi istifadə etmək faydalıdır. Isalpha doğru qaytarır, siz lazımdır əsas tərəfindən xarakter keçmək. Elə ASCIIMath açıq bildirin və bəzi ASCII riyaziyyat yoxdur. Istifadə istifadə çox oxşardır Sezar və bir əsas götürür command line. Mən ASCIIMath 5 çalıştırıyorsanız, əlavə görünür 5 a, mənə məktub f verilməsi və ki, ASCII dəyəri göstərilir. Elə proqram nəzər salaq. Siz burada, niyə təəccüb bilər bu zaman məktub, bir tam deyil aydın, yaxşı bir məktubu. O çıxır ki, simvollar və integers birini əvəz edir. A tək məktubu qoyaraq tırnak ki, tam saxlaya bilərsiniz kapitalın ASCII dəyəri A. baxmayaraq, ehtiyatlı olun. Siz tək paltar lazımdır. Vahid tırnak işaretleri olmadan, compiler bir dəyişən üçün görünür A, və karakter adına. Sonra saxlanılması, məktub və əsas əlavə ki, int dəyişənlərin nəticəsində məbləği. Nəticə data tipli olsa da tam, mənim printf bəyanat istifadə Sandıqı üçün% c tutucu. Belə ki, proqram karakter yazdıran ki, tam nəticə ilə bağlı. Və biz tam çap-ci ildən forması kimi də% d istifadə edərək, görərik sayı həmçinin. Belə ki, indi siz görə bilərsiniz ki, simvol müalicə və integers, və əksinə. ASCIIMath bir neçə test edək əsas kimi 25 istifadə edərək, daha çox dəfə. Biz məktub z almaq. İndi biz 26 cəhd edin. Biz bir məktub almaq istəyirəm, ancaq Əvəzində biz sol bracket almaq. Belə ki, açıq-aydın, yalnız əlavə Məktubda əsas etməyəcək. Biz kesmek üçün bir düstur anlamaq lazımdır əlifbası ətrafında kimi əvvəlində misal idi. Ki, Sezar üçün düstur shift belədir. c p plus k modulo 26 bərabərdir. Modulo faydalı olduğunu unutmayın bizə qalan verir ki, əməliyyat digər bir sıra bölünməsi. Nin düz bu formula tətbiq edək 2 əsas ilə mətn məktubu. Y olan ASCII dəyəri 89 olan Bizə 91 modulo 26, verir olan 13 bərabərdir - mütləq deyil ASCII dəyər bir, hansı 67. Indi mənə yumor və uzaq hərəkət Əlifba indeksi ASCII dəyərlər sıfır və Z, 25 olduğu Y 24 o deməkdir ki. 24 plus 2, modulo 6, bizə 26 verir da olan modulo 26, 0, bir əlifba index. Beləliklə, bu düsturu tətbiq görünür əlifba məktub indeksi və onun ASCII dəyəri. Amma ASCII dəyərləri ilə başlayın. Və ciphertext xarakter çap etmək siz həmçinin öz ASCII dəyər lazımdır. Bu anlamaq üçün, sonra qədər var geri və irəli keçmək üçün necə. Sonra sağ formula anlamaq bir xarakter üçün bütün nə etmək lazımdır hər eyni formula tətbiq edilir düz mətn məktubu - ki, məktub əlifba deyil, yalnız əlbəttə. Və qorumaq üçün lazımdır ki, unutmayın halda, yuxarı və ya aşağı olduğu var ki, isUpper və isLower funksiyaları qeyd əvvəl yararlı olacaq. Siz iki düsturlar ola bilər - böyük harf üçün bir və kiçik üçün. Belə ki, isUpper bir isLower kömək edəcək tətbiq üçün formula müəyyən edir. Necə hər üçün formula aiddir bir simli tək xarakter? Bəli, bir simli yalnız bir deyil simvol array. Belə ki, hər bir xarakteri ilə istifadə edə bilərsiniz də hər bir xarakter üzərində qruplaşdırılması loop üçün bir string. Loop üçün şərti kimi, simli üçün funksiyası strlen, uzunluğu, lazımlı olacaq. Bu giriş kimi bir simli götürür və ki, simli uzunluğu qaytarır. Sağ kitabxana daxil əmin olun simli uzunluğu funksiyadan istifadə etmək. Və orada sizin ciphertext var. Mənim adı Zamyla edir. Və [danışan CODE].