>> 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].