>> ZAMYLA Chan: Apsveicu par apdares savu
Pirmais pāris C programmas.
Es zinu, ka tavs pirmais iebrukums C sintakse var būt pagrūti.
Bet es apliecinu jums, beigās Protams, jūs varēsiet apskatīt
pirmo uzdevumu pāris un pabeigt tos minūtēs.
>> Tagad, ka jūs saņemat vairāk pazīstams ar sintaksi, pieņemsim nokļūt līdz ķeizaram.
Jo ķeizaram, lietotājs iesniedz vesels skaitlis atslēgu kā komandrindas
arguments, tad ievadiet plain īsziņa par ātru.
Programma pēc tam šifrēt teksts un drukas
to ciphertext ziņu.
>> Šifrēšanas par ķeizaru ir diezgan vienkārši.
Shift katru burtu, jo viņu teksta, ko atslēgu.
Kā rezultātā, tas ir arī diezgan nedroši.
Bet īstenošanas Caesar ieviesīs mums ASCIIMath un masīvs datu
struktūras.
Mēs sāksim sarežģītāka šifrēšana vēlāk.
Ar Cēzara atslēgu 2, vēstule, kas teksta varētu pārstāvēt
burtu C ciphertext, jo C ir divi burti, pēc tam, kad A. B, būtu
pārstāv D un C E. Ceļā alfabēta gals, W ir
pārstāv Y un X līdz Z. Bet Y nav divi burti, pēc tam, kad tā, lai
ka šifrēšana wraps ap alfabētu.
Y teksta tādējādi pārstāv In ciphertext, un Z ar B. tā var
palīdzēt, lai apskatītu Caesar Cypher, piemēram, nepārtraukta alfabēts ritenis.
>> Lai šifrēt savu tekstu, lietotāja stāsies divi argumenti
uz komandrindas -
. / Caesar seko atslēgu.
Kā vienmēr, mēs nevaram uzticēties lietotāju pilnīgi ievadīt ievadi, kas padara
sajūtu par mūsu programmu.
Tātad mums būs, lai apstiprinātu savus komandrindas ieejas.
>> Tā vietā, izmantojot int galveno trūkumu, mēs esam izmantojot int galvenais, int argc, stīgu ARGV.
Skaitlis mainīgo argc pārstāv argumentu skaits pārgāja
komandrindas.
Un argv ir masīvs, vai domā par to, kā sarakstu, no argumentiem pagājis collas
>> Tātad Cēzars, kā mēs apstiprinātu lietotāja ievadi?
Nu, tie ir tikai ievadot Divi komandrindas argumenti -
. / Caesar un atslēgu.
Tātad, ja argc nav 2, kas nozīmē, ka viņi vai nu aizmirsa atslēgu un tikai
ieraksta / Caesar., vai arī tie ievada vairākas atslēgas.
>> Ja tas ir gadījumā, tad jūs vēlaties izdrukāt instrukcijas
un atmest programmu.
Viņiem būs nepieciešama, lai mēģinātu vēlreiz no komandrindas.
Bet, pat ja argc ir 2, jūs ir nepieciešams, lai pārbaudītu, vai tie
jums derīgu atslēgu.
Par ķeizaram, jums ir nepieciešams vesels skaitlis.
Bet argv ir masīvs stīgas.
Kā jūs piekļūt šo atslēgu?
>> Ātri apskatīt masīvi -
datu struktūras, kas tur vairākas vērtības, ar tādu pašu datu tipu.
Ieraksti ir nulles indeksētas, kas nozīmē, ka pirmais elements ir indekss nulle
un pēdējais elements ir indeksa lielums mīnus 1, kur izmērs ir skaitlis no
elementus masīvā.
>> Ja man paziņoja jaunu string masīvs pastkasti 3 garuma, vizuāli, tā
izskatās šādi.
Trīs konteineri stīgām , Viens otram blakus.
Piekļūt jebkurš elements, rakstot vārdu no masīva un tad norādīt
indekss kvadrātiekavās.
Lūk, es esmu piešķirot vērtību katrai elements, tāpat kā es to darītu ar jebkuru
citi stīgu mainīgs.
>> Tātad, lai piekļūtu mūsu komandrindas argumentus, viss, kas mums ir jādara, ir piekļuve
tiesības elements ARGV masīva.
Ja lietotājs ievada. / Blastoff Team Raķešu uz terminālu, argv 0 būtu
būt. / Blastoff.
argv būtu komanda, un ARG2 būtu raķešu.
>> Tagad, ka mēs varam piekļūt mūsu atslēga, mums joprojām ir nepieciešams, lai
pārliecināts, ka tas ir pareizi.
Mums ir nepieciešams, lai pārvērstu to par skaitlim.
Bet mēs nevaram vienkārši nodot, piemēram, mēs esam darījuši iepriekš.
Par laimi, lai Y funkcija rūpējas Šī mums un pat atgriež 0
ja string nevar tikt pārvērsts stājas skaitlim.
Tas ir atkarīgs no jums, lai gan, lai pastāstītu lietotājs kāpēc jums nav
ļaujiet programmu turpināt.
Uzglabāt rezultātu, lai Y vesels skaitlis, un tur jums ir savu atslēgu.
Nākamā daļa ir vienkārši.
Atgādinās lietotājam par to teksta, kas būs datu tipa virknes.
Par laimi mums, visiem lietotāja ievadīti stīgas ir spēkā.
>> Tagad, kad mums ir visa vajadzīgā informācija, no lietotāja, ir pienācis laiks mums
šifrēt savu ziņu.
No ķeizara koncepcija ir vienkārša pietiekami, lai saprastu.
Bet kā jūsu dators zina, kas burti nāk pēc tam viens ar otru?
>> Lūk, kur ASCII tabula nāk collas
Katram varonim ir vesels skaitlis numuru, kas saistīts ar to.
Kapitāls ir 65.
Kapitāls B ir 66.
Mazajiem ir 97.
Mazie b ir 98.
Bet rakstzīmes netiek ierobežotas lai tikai alfabētisku numuriem.
Piemēram, @ simbols ir ASCII numurs 64.
>> Pirms nodarbojas ar visu auklu, pieņemsim izlikties, mums vienkārši ir novirzīt
viena rakstzīme.
Nu, mēs tikai vēlamies, lai novirzītu faktisko burti teksta, ne
burti vai cipari.
Tātad, pirmā lieta, ko mēs vēlamies, lai pārbaudīt, vai raksturs ir
alfabēts.
>> Funkcija isalpha tas par mums un atgriež Būla -
taisnība, ja rakstzīmes ir burts, false, ja citādi.
Divas citas noderīgas funkcijas isupper un islower, ar
sev saprotamus nosaukumus.
Viņi atgriežas taisnība, ja, ņemot vērā raksturu ir lielie vai mazie,
attiecīgi.
Tā kā tie ir booleans, viņi lietderīgi izmantot kā apstākļos.
>> Ja isalpha atgriež taisnība, jums būs nepieciešams novirzīt šo raksturu ar atslēgu.
Tātad, pieņemsim atvērts ASCIIMath un tie daži ASCII math.
Izmantošana ir ļoti līdzīgs izmantošanu par ķeizaru un ņem ar taustiņu
komandrindas.
>> Ja es palaist ASCIIMath 5, šķiet, lai pievienotu 5, dod man burtu F, un
parādot ASCII vērtību.
Tātad, pieņemsim to apskatīt programmā.
>> Jūs varētu brīnīties, tieši šeit, kāpēc vēstule ir skaitlis, ja tas ir
skaidri, labi, vēstule.
Izrādās, ka zīmes un veseli skaitļi ir savstarpēji aizvietojami.
Izpētot vēstuli ar viena pēdiņas, skaitlis var uzglabāt
ASCII vērtību kapitāla A. Esiet uzmanīgi, lai gan.
Jums ir nepieciešams vienu drēbes.
Bez vienu pēdiņām, kompilators varētu meklēt mainīgā
nosaukts, un nevis raksturu.
>> Tad es varu pievienot vēstuli un taustiņu, glabāšanai summa int mainīgo rezultātu.
Pat ja rezultāts ir datu tips skaitlis, mans printf paziņojumu izmanto
% C vietturis rakstzīmes.
Tātad Programma drukā raksturu saistīts ar vesela skaitļa rezultātā.
Un, tā kā mēs drukāts skaitlim formā, kā arī, izmantojot% d, mēs redzēt
numuru, kā arī.
Tātad tagad jūs varat redzēt, ka mēs ārstēt rakstzīmes un
veseli skaitļi, un otrādi.
>> Let 's testu veic ASCIIMath pāris vairākas reizes, izmantojot 25 kā atslēgu.
Mēs saņemam burtu z.
Tagad mēs cenšamies 26.
Mēs vēlamies, lai iegūtu burtu A, bet tā vietā mēs iegūstam kreiso iekavu.
Tātad, protams, tikai pievienojot Galvenais, lai burtu nedarīs.
Mums ir nepieciešams, lai noskaidrotu formulu, lai wrap ap alfabētu, piemēram, mūsu
piemērs sākumā izdarīja.
>> Formula Ķeizara pāreja ir šāds.
c vienāds p plus k moduļa 26.
Atcerieties, ka pēc moduļa ir noderīgs darbība, kas dod mums atlikušo
no dalot vienu skaitli ar otru.
Pieņemsim piemērot šo formulu, lai vienkāršā Teksts vēstule ar A atslēgu gada 2.
ASCII vērtība y ir 89, kas dod mums 26 91 modulo,
kas ir vienāds ar 13 -
noteikti nav ASCII vērtība no, kas ir 67.
>> Humors mani tagad un attālināties no ASCII vērtības uz alfabētiskajā sarakstā
kur ir nulle, un Z ir 25, kas nozīmē, ka Y ir 24.
2 24 plus, modulo 6, dod mums 26, pēc moduļa 26, 0, kas ir
alfabētisko rādītāju.
Tātad šī formula, šķiet, attiecas uz alfabētisko vēstules indekss un
nevis tās ASCII vērtību.
>> Bet jūs sākat ar ASCII vērtībām.
Un, lai izdrukātu ciphertext raksturu, jums ir nepieciešams savu ASCII vērtību, kā arī.
Tas ir atkarīgs no jums, tad, lai noskaidrotu kā pārslēgties uz priekšu un atpakaļ.
>> Kad jūs izrēķināt pareizo formulu par vienu rakstzīmi, viss, kas jums jādara,
ir jāpiemēro to pašu formulu, lai katru burts teksta -
tikai tad, ja vēstule ir alfabēta, protams.
Un atcerieties, ka jums ir nepieciešams, lai saglabātu gadījumā, augšējā vai apakšējā, tas ir, ja
isUpper un isLower funkcijas minēts iepriekš noderēs.
Jums varētu būt divas formulas -
viens lielajiem burtiem un viens mazie burti.
Tātad isUpper isLower palīdzēs jums nosaka, kuras formula piemērot.
>> Kā jūs pieteikties savu formulu ik vienu rakstzīmi virknē?
Nu, virkne ir tikai masīvs rakstzīmes.
Tātad, jūs varat piekļūt katru rakstzīmi, Grupējot pār katru rakstura
virknes uz cilpas.
Attiecībā uz stāvokli jūsu uz cilpas, funkciju strlen, stīgu
garums, noderēs.
Tā veic virkni kā ievade un atgriež garums šīs virknes.
Pārliecinieties, lai iekļautu pareizo bibliotēka izmantot virknes garuma funkciju.
>> Un tur jums ir jūsu ciphertext.
Mans vārds ir Zamyla.
Un [runāšana CODE].