>> ZAMYLA CHAN: Õnnitlused viimistlus oma
Esimesed paar C programme.
Ma tean, et sinu esimene Tuhoamisretki C süntaks võib olla heidutav.
Aga ma kinnitan teile, et aasta lõpus Muidugi, sa pead suutma vaadata
Esimesed paar ülesanded ja täitma neid minutit.
>> Nüüd, kui sa oled teinud rohkem kursis süntaksi, lähme Caesar.
In Caesar, kasutaja esitama täisarv võti käsurea
argument, siis sisestage tavaline tekstsõnumi käsureale.
Programm siis encipher tekst ja trükkimine
nende ciphertext sõnum.
>> Enciphering jaoks Caesar on üsna lihtne.
Shift iga täht, nende lihttekstina poolt võtmega.
Selle tulemusena, see on ka üsna ebakindel.
Aga rakendatakse Caesar tutvustab meil ASCIIMath ja array andmed
struktuure.
Me jõuame keerulisem ciphers hiljem.
Mis Caesar võti 2 kirja sisse lihtteksti oleks esindatud
täht C ciphertext sest C on kaks tähte pärast A. B oleks
esindab D ja C E. suunas lõpuks tähestikku, W on
esindab Y ja X Z. Aga Y ei ole kahe tähe peale, nii
ciphers murtakse tähestikku.
Y lihttekstina Seega esindab Aastal ciphertext ja Z B. See võib
aitavad vaadata Caesar Cypher nagu pidev tähestik ratast.
>> Encipher oma teksti, kasutaja alustavad kaks argumenti
käsureale käsu -
. / Caesar järgneb võti.
Nagu alati, me ei saa usaldada kasutaja täiesti sisestada sisend, mis muudavad
mõttes meie programm.
Seega me peame kinnitama oma käsurealt sisestada.
>> Selle asemel, et int main tühine, me oleme kasutades int main, int argc, string argv.
Täisarv muutuja argc esindab argumentide arv läks
käsurealt.
Ja argv on massiiv või mõelda seda nimekirja ning argumentide sisse
>> Nii Caesar, kuidas me kinnitada kasutaja sisend?
Noh, nad peaksid ainult sisenemist kaks käsurea argumente -
. / Caesar ja võti.
Nii et kui argc ei ole 2, mis tähendab, et nad kas unustasid võti ja lihtsalt
sisestatud. / caesar, või nad sisestada mitu võtmed.
>> Kui see on nii, siis saate soovite printida juhiseid
ja sulgege programm.
Nad peavad uuesti proovida käsurealt.
Aga isegi kui argc on 2, saate tuleb kontrollida, kas nad
teile kehtiv võti.
Caesari, peate täisarv.
Aga argv on massiivi stringe.
Kuidas pääseda, et võti?
>> Kiire pilk massiivid -
andmestruktuurid et olla mitmeid väärtusi sama andmetüüp.
Sissekanded on null indekseeritud, mis tähendab, et Esimene element on indeks nulli
ja viimane element on indeks suurus miinus 1, kui suurus on arvu
massiivi elementide.
>> Kui ma kuulutatud uus string array postkast pikkus 3, visuaalselt, see
näeb välja selline.
Kolm konteinerid stringid Kõrvuti.
Et pääseda mis tahes element, siis sisesta nimi on massiiv ja seejärel osuta
indeks nurksulgudes.
Siin ma väärtustamise iga element, nagu ma teeksin ükskõik
muu string muutuja.
>> Nii et juurdepääs meie käsurea argumente, kõik me peame tegema, on juurdepääs
õige element argv massiivi.
Kui kasutaja on sisenenud. / Blastoff Team Rocket terminali, argv 0 oleks
olema. / blastoff.
argv oleks Team, ja arg2 oleks raketi.
>> Nüüd, kui meil on juurdepääs meie võti, meil on vaja veel teha
kindel, et see on õige.
Meil on vaja muuta selle täisarv.
Kuid me ei saa lihtsalt valatud nagu me oleme teinud varem.
Õnneks Y funktsioon hoolitseb Selle eest meid ja isegi tagasi 0
kui string ei saa ümber arvesse täisarv.
See on kuni teile, aga öelda kasutaja miks sa ei
lasta programmi edasi.
Hoida tulemus, et Y täisarv, ja et teil on oma võti.
Järgmine osa on lihtne.
Küsib kasutaja oma lihttekstina mis on andmete tüüpi string.
Õnneks kõik kasutaja sisestanud stringid on kehtivad.
>> Nüüd, kui meil kõik vajalik sisend kasutaja, see on meil aeg
encipher oma sõnum.
Mõiste Caesar on lihtne piisavalt aru.
Aga kuidas arvuti teada, millised tähed tulevad üksteise järel?
>> Siin, kus ASCII tabelis on sisse
Igal tegelasel on täisarv number on seostatud sellega.
Capital on 65.
Capital B on 66.
Väiketähed on 97.
Väiketähed b on 98.
Aga märgid ei ole piiratud lihtsalt tähestiku numbrid.
Näiteks @ sümbol on ASCII number 64.
>> Enne tegeleb terve rida, oletame, me lihtsalt peame muutma
üks märk.
Noh, me ainult tahame minna tegelik tähed lihttekstina ei
märgid või numbrid.
Nii et esimene asi, mida me tahame vaadata, kas märk on
tähestikku.
>> Funktsioon isalpha teeb seda meile ja tagastab Boolean -
tõsi, kui tegelased on kirjas, false kui teisiti.
Kaks muud kasulikud funktsioonid isupper ja islower koos
iseenesestmõistetavad nimed.
Nad tagasi true, kui antud märk on suur-või väiketähed,
võrra.
Kuna need on tõeväärtused, need on kasulik kasutada nagu tingimustel.
>> Kui isalpha tagastab tõsi, peate nihutada, et märk, mille võti.
Niisiis olgem avatud ASCIIMath ja teha mõned ASCII matemaatikat.
Kasutamine on väga sarnane kasutus jaoks Caesar ja võtab klahvi
käsurida.
>> Kui ma saan ASCIIMath 5, tundub, et lisada 5, mis annab mulle kirja f, ning
väljapanek ASCII väärtus.
Võtame pilk programmi.
>> Sa võiks küsida, siin, miks kirjas on täisarv, kui see on
selgelt, noh, kirja.
Selgub, et märgid ja täisarvud on omavahel vahetatavad.
Pannes kirja ühe jutumärkides täisarv saab salvestada
ASCII kapitali väärtust A. Olge ettevaatlik, kuigi.
Sa pead ühe riided.
Ilma ühtse jutumärkideta, koostaja näeks muutuja
nimega, mitte iseloomu.
>> Siis lisan kirja ja võtme hoidmiseks summa int muutujate tulemus.
Kuigi tulemus on andmete tüüp täisarv, mu printf avaldus kasutab
% C kohatäide tähemärki.
Nii programm prindib iseloomu seotud täisarv tulemus.
Ja kuna me trükitud täisarv kujul kui ka kasutades% d, siis näeme,
number samuti.
Nüüd te näete, et me raviks tähemärki ja
täisarvud, ja vastupidi.
>> Olgem test välja ASCIIMath paar mitu korda, kasutades 25 kui võti.
Me saame kirja z.
Nüüd püüame 26.
Me tahame, et saada kirja, kuid asemel saame vasak sulg.
Nii et ilmselt lihtsalt lisades võti täht ei tee.
Me peame välja mõtlema valemi pakkima ümber tähestikku, nagu meie
Näiteks aasta alguses tegin.
>> Valem Caesari nihe on järgmine.
c võrdub p pluss k moodul 26.
Pea meeles, et moodul on kasulik operatsioon, mis annab meile ülejäänud
jagades üks number teise.
Olgem kohaldatakse seda valemit tavaline teksti tähe klahvi 2.
ASCII väärtus y on 89, mis annab meile 91 moodul 26,
mis võrdub 13 -
kindlasti mitte ASCII väärtus kohta, mis on 67.
>> Huumor mind nüüd ja eemalduda ASCII väärtused tähestikregistris
kus on null ja Z on 25, mis tähendab, et Y on 24.
24 pluss 2, moodul 6, annab meile 26, moodul 26, 0, mis on
tähestikuline register.
Nii et see valem näib kehtivat tähestikregistris kirja ja
ei oma ASCII väärtus.
>> Aga kui hakkate koos ASCII väärtused.
Ja printida ciphertext iseloomu, peate selle ASCII väärtus samuti.
See on kuni teile, siis, et aru saada, kuidas minna edasi ja tagasi.
>> Kui oled nuputada õige valem üks märk, kõik mida sa pead tegema,
on rakendada sama valemit iga kirja lihttekstina -
ainult siis, kui seda kirja tähestikulises, muidugi.
Ja pidage meeles, et teil on vaja säilitada juhul ülemist või alumist, see on kui
isUpper ja isLower funktsioonid varem mainitud tulevad mugav.
Te võib-olla kaks valemid -
üks suurtähti ja üks väiketähti.
Nii isUpper isLower aitab millist valemit kohaldama.
>> Kuidas rakendada oma valemit iga ühe märgi string?
Noh, string on vaid array tähemärki.
Nii pääsete iga märk rühmitades üle iga tegelane
stringi jaoks silmus.
Nagu seisukorras oma jaoks silmus, funktsioon strlen, keelpilliorkestrile
pikkus, mis tulevad mugav.
See võtab stringi sisendiks ja tagastab pikkus, et string.
Veenduge, et lisada õige raamatukogu kasutada stringi pikkus funktsiooni.
>> Ja et teil on oma ciphertext.
Minu nimi on Zamyla.
Ja [räägitakse CODE].