[Powered by Google Translate] [Walkthrough - Problēma Set 2]
[Zamyla Chan - Hārvarda]
[Tas ir CS50. CS50.TV]
Labi. Sveiki, visiem, un laipni 2 Walkthrough.
Pirmkārt, es vēlos jūs apsveikt par apdares PSET 1.
Es zinu, ka tas varētu būt bijis nedaudz grūts dažiem no jums,
varēja būt jūsu pirmā datorprogramma, kas jūs rakstījāt,
bet tikai atcerieties, ka gada beigās tas, ja paskatās atpakaļ beigās semestra,
jums izskatās pēc 1 PSET un jūs sakāt: "Hei, es varētu darīt, ka pēc 5 minūtēm."
Tāpēc zinu un ticu, ka beigās tas jūs noteikti atradīsiet PSET 1 pavisam vienkārša.
Bet tagad tas ir milzīgs sasniegums, un apsveicam par kļūst darīts.
Tagad arī ātri piezīmi pirms mēs nokļūt gaļas walkthrough.
Es tikai vēlos, lai ātri piezīmi, ka es reizēm nav pietiekami daudz laika
laikā walkthroughs iet caur katru veids, kā to problēmu kopumu
un diezgan vienkārši varbūt koncentrēties uz 1 vai 2 veida implementāciju,
veidi, ka jūs varētu darīt.
Bet tas nenozīmē, ka jums ir aizliegts to sakot.
Ir bieži, jo ar datoru zinātnes, vairāki veidi, kā darīt lietas,
un tāpēc noteikti justies brīvi izmantot cita veida risinājumu, nekā es varētu būt uzrādīts.
[PSET 2: Kripto - Zamyla Chan - zamyla@cs50.net]
[Pset2 - 0. Nodaļa Jautājumi - 1. Cēzara - 2. Vigenere]
Labi. Tātad problēma set 2: Kriptogrāfijas ir jautri viens.
Atkal, ar katru PSET jūs sākat ar daļu no jautājumiem
kas notiek, lai jāveic jūsu sadaļās ar savu piešķirto mācību līdzstrādnieks.
Mums nav gatavojas iet cauri šiem pār walkthrough,
bet tie noteikti palīdzēs jums pabeigt PSET.
Tātad pirmā daļa problēmu kopums ir Caesar.
Un tā Cēzars kāds iet jums atslēga ar veselam skaitlim,
un jūs šifrēt virkni teksta ka tie sniedz jums
un dot viņiem atpakaļ šifrētu lieta.
Ja kāds noskatījās Ziemassvētku stāsts, tur ir no ka piemērs.
Tad otrā daļa no problēmas komplekts ir Vigenere,
kas ir vairāk uzlabotas šifrēšanas tehniku.
Un tāpēc mēs esam gatavojas šifrēt kādu teksta,
izņemot vietā tikai ar vienu skaitlim, mēs esam patiešām gatavojas kodēt to
ar atslēgvārdu, ka lietotājs sniegs mums.
Labi, tāpēc pirmais instrumentu kopums šodien ir faktiski gatavojas atjaunināt ierīci.
Uz diskusiju dēļa mēs gribam redzēt lietas, piemēram, "Kāpēc ne šo darbu?"
"Kāpēc ne Iesniegt 50 darbu?"
un bieži risinājums ir faktiski tikai atjaunināt savu ierīci.
Un tā, ja jūs vienkārši palaist termināļa logā jūsu ierīces sudo Yum-y -
tas karogs sakot jā, atjaunināt visu - update,
tad jūsu ierīce tiks atjaunināta, ja tas būtu nepieciešams.
Un tas nav ievainots, ja jums jau ir pie jaunāko versiju ierīces.
Tad tas būs vienkārši pateikt nē jauni atjauninājumi pieejami, un jūs varat turpināt strādāt kopā.
Bet tas ir labi izpildīt pat katru reizi, kad atverat ierīces
jo mēs esam vēl ļoti daudz -
Dažreiz, ja mēs nonāk bug - nosaka to ierīci.
Tāpēc pārliecinieties, ka Jums ir jaunākā versija ierīces
un palaist, ka atjaunināt tur.
Labi. Tāpēc, ka mums ir darīšana ar burtiem un mainās, šifrēšanas lietas,
mēs spēsim patiešām vēlas kļūt par labāko draugu, ar mūsu ASCII topā.
Ir daudz tiem tiešsaistē, ja jūs atradīsiet. Varbūt pat padarīt savu.
Būtībā, ar katru burtu un katru numuru un katru raksturu
ir skaitlis, kas saistīts ar tām,
un tāpēc ir labi, lai redzētu savu ASCII vērtības līdzās faktisko vēstuli.
Tas noteikti palīdzēs jums problēmu kopumu.
Viena lieta, kas patiešām palīdzēja man ar šo problēmu kopumu bija patiešām to izdrukāt,
un kā man bija iet cauri, es tiešām izdarīt par to,
rakstīt: "Ja tas ir iet uz tur, tad ..."
Veida izdarīt par to un atzīmējiet to uz augšu, kļūst par labākajiem draugiem, ar savu ASCII tabulu.
Tad mums ir daži citi instrumenti mūsu rīcībā.
Šoreiz nevis faktiski pamudinot lietotājam par visiem viņu ieguldījumu
mēs esam gatavojas darīt kombināciju.
Mēs ejam, lai liktu viņiem kādu ieguldījumu,
bet mēs arī gatavojas tikai izmantot komandrindas argumentus.
Tātad, ja tie veic savu programmu, parasti jūs sakāt. / Sveiki, piemēram,
ja jūsu programma bija hello.c.
Bet šoreiz nevis tikai sakot, ka viņi var likt vārdus, argumentus tam.
Un tāpēc mēs esam gatavojas izmantot neatkarīgi viņi iet ar mums, kā viņu ieguldījumu, kā arī,
tāpēc ejot tālāk tikai pamudinot skaitlim, bet arī izmantojot komandrindas argumentus.
Un tad mēs iesim uz blokiem un virknes, kas mums būs, izmantojot daudz kā labi.
Šeit ir tikai 1 mini ASCII topā piemērs.
Kā es teicu, katru burtu atbilst vairākiem,
un tāpēc iepazīties ar to. Tas noderēs.
Un vēlāk, kad mēs sākt darīt daži ASCIIMath nodarbojas ar skaitļiem -
piebilstot, atņemot viņiem - tad noteikti labi atsaukties uz šo tabulu.
Tātad, šeit ir par Cēzara šifra piemērs - kaut kas jums var būt bijusi ar.
Tas ir tikai ritenis. Būtībā, ir ārējā alfabētu, un tad tur ir iekšējais alfabētu.
Tātad, šeit ir piemērs Cēzara šifra bet ar atslēgu no 0.
Būtībā, ir saskaņots ar A, B ir saskaņots ar B, visu ceļu līdz Z.
Bet tad saka, ka mēs vēlējāmies atslēgu 3, piemēram.
Tad mēs varētu pagriezt iekšējo riteni tā, ka tagad pieskaņo ar D uc
Un tā tas būtībā ko mēs gatavojamies darīt.
Mums nav riteni, bet tas, ko mēs gatavojamies darīt, ir padarīt mūsu programmu
veida maiņu alfabētu kopā ar mums zināmu skaitu.
Tā kā es teicu iepriekš, mēs ejam, lai būtu darīšana ar komandrindas argumentus
kā arī iegūt skaitlim.
Tātad tā, ka lietotājam būs palaist savu Caesar programmu, ir, saka. / Caesar
un pēc tam ievadot numuru pēc tam.
Un šis skaits ir atslēga, pāreja,
cik reizes jūs esat būs rotācijas iekšējo riteņa jūsu Caesar šifru.
Un lai jūs redzēt šeit piemērs.
Ja mēs ieraksta burtus no A līdz L mūsu Cēzara šifra,
tad tas būtu ieguldījums D caur O, jo tas ir katru burtu pārvietoti vairāk nekā 3 reizes,
tāpat kā, piemēram, riteņa ka es parādīja jums.
Tātad tad, ja esat norādījis, piemēram, tas ir CS50!
tad tas arī pārvietot visi burti.
Un tas ir svarīga lieta gan Cēzara un Vigenere
ir tas, ka mēs spēsim izlaist jebkuru valsti, vēstules.
Lai jebkurš atstarpēm, burtiem, utt, cipari, mēs ejam, lai saglabātu tos pats.
Mēs esam tikai gatavojas novirzīt burti šajā gadījumā.
Tātad, kā jūs redzēt riteni, mums ir tikai burti pieejami pie mums,
tāpēc mēs tikai vēlamies novirzīt burtus un šifrēt burtus.
Tātad pirmā lieta darīt, jūs redzēja, ka par Caesar izmantošana problēmu komplekts 2
ir palaist Cēzars un pēc tam ievadiet numuru, kad jūs palaist to terminālā.
Tātad, ko mums darīt, ir kaut saņemt šo atslēgu un tai piekļūt.
Un tāpēc mēs gribam, lai kaut kā redzēt to būs otrais komandrindas arguments.
Pirmais būs. / Cēzars un nākamais būs galvenais numurs.
Tātad, pirms mums bija int galvenais (spēkā neesošs), lai sāktu mūsu C programmas.
Mēs ejam, lai mizu atpakaļ kārtu mazliet
un faktiski redzēt, ka nevis iet uz tukšumu mūsu galvenā funkcija
mēs faktiski nodarbojas ar 2 parametriem.
Mums ir int nosaukts argc un tad virknes masīvs sauc argv.
Tātad argc ir skaitlis,
un tā pārstāv vairākus argumentus taisītus ar savu programmu.
Un tad argv ir faktiski sarakstu pagājis argumentiem.
Visi argumenti ir stīgas, un tā argv pārstāv masīvs, saraksts, stīgas.
Parunāsim par masīvu mazliet.
Masīvi ir būtībā jauna datu struktūra.
Mums ir Ints, mēs esam dubultspēlē, mums ir stīgas, un tagad mums ir bloki.
Masīvi ir datu struktūras, kas var turēt vairākas vērtības viena tipa,
Tātad būtībā, sarakstu visu tipu vēlaties.
Būtībā, ja jūs vēlētos sarakstu integers visi 1 mainīgo,
tad jūs varētu izveidot jaunu mainīgo, kas bija tipa int masīvu.
Tātad masīvi ir nulles indeksētas, kas nozīmē, ka pirmais elements masīva ir 0 indekss.
Ja masīvs ir garuma 4, kā šajā piemērā, tad jūsu pēdējais elements būs pie 3 indeksu,
kas ir 4 - 1.
Tātad, lai izveidotu masīvu, jūs varētu darīt kaut kas līdzīgs šim.
Say vēlaties dubultu masīvs.
Tas pats attiecas uz jebkāda veida datu tipu, lai gan.
Tā teikt jūs vēlaties dubultu masīvs. Say jūs vēlaties, lai izsauktu to pastkasti.
Tāpat kā jūs varētu sāktu jebkuru citu dubultā,
Jūs varētu teikt dubultā un tad vārdu, taču šoreiz mēs uzdodam kvadrātiekavas,
un pēc tam numuru būs garumu masīvs.
Ņemiet vērā, ka masīvu mēs nevaram kādreiz mainīt garumu,
tāpēc jums vienmēr ir jādefinē un izvēlēties, cik daudz kastes,
cik daudz vērtības jūsu masīvs gatavojas rīkot.
Tātad, lai uzstādītu dažādu vērtību jūsu masīvs, jūs gatavojas izmantot šo šādu sintaksi,
kā jūs redzēt slaidā.
Jums ir pastkaste indekss 0 tiks iestatīts uz 1,2,
pastkaste indekss 1 komplekts līdz 2,4, utt
Tāpēc tagad, ka mēs esam jāpārskata masīvos mazliet, iesim atpakaļ uz argc un argv.
Mēs zinām, ka argv tagad masīvs stīgas.
Tātad, ja lietotājs aiziet - saka, viņi darbojas programma -
viņi saka. / sveiki Deivids Malan,
Kāda programma darīs jums jau ir faktiski nāk klajā ar ko argc un argv ir.
Tātad jums nav jāuztraucas par to.
Argc šajā gadījumā būtu 3, jo tas redz 3 atšķirīgus vārdus atdalīti ar atstarpēm.
Un tā tad šajā gadījumā masīvs, pirmais indekss būtu / sveiki.,
nākamais Dāvids, nākamais Malan.
Vai kāds redzēt uzreiz kāda saistība starp argv,
masīvs, un argc ir?
Yeah. Mēs nokļūt, ka par piemēru args.c.
Redzēsim, vai mēs varam gūt labumu no attiecībām starp 2.
Šeit jūs varētu atrast, ka ierīces noklusējuma pieteikumu
atvērt. c failus dažreiz Emacs.
Bet mēs vēlamies, lai risinātu ar gedit, lai ko jūs varat darīt, ir, jūs varat tiesības klikšķi uz jūsu C failu,
iet uz Properties, Atvērt ar un pēc tam izvēlēties gedit, kas kā noklusējuma,
un tagad jūsu programma būtu atvērta gedit vietā Emacs.
Perfekta.
Tāpēc šeit man ir programma, ka es gribu, lai izdrukātu katru komandrindas argumentu.
Tātad neatkarīgi no lietotāja ievadi, es gribu, lai būtībā atgriezties atpakaļ uz tiem par jaunu līniju.
Tātad, kas ir struktūra, mēs varam izmantot, lai atkārtot pār kaut ko -
kaut kas jums, iespējams, izmanto savu PSET 1?
Ja jūs vēlaties, lai iet cauri, kas vairākas lietas? >> [Students] Par cilpu.
Cilpa. Tieši tā. Tāpēc sāksim ar cilpa.
Mums ir par int i = 0. Pieņemsim tikai sākt ar standarta inicializācijas mainīgo.
Es esmu gatavojas atstāt nosacījums kopumu un pēc tam teikt, i + +, gatavojas darīt lietas tur.
Labi.
Tāpēc domāju atpakaļ uz argv, ja argv ir argumentu sarakstā pieņemtiem ar programmu
un argc ir argumentu skaits programmā,
tad tas nozīmē, ka argc būtībā garums argv, pa labi,
jo tur ir būs tikpat daudz argumentu kā vērtību argc.
Tātad, ja mēs gribam atkārtot pār katru elementu argv,
mēs esam gatavojas vēlaties katru reizi piekļūt mainīgo argv pie konkrētā indekss.
Tas var būt pārstāvēta ar šo, labi?
Šis mainīgais šeit pārstāv konkrēto virkni šajā gadījumā
jo tas ir virkne masīvs - konkrētais stīgu tajā noteiktā indeksa.
Ko mēs vēlamies darīt, šajā gadījumā mēs gribam to izdrukāt, tāpēc teiksim printf.
Un tagad argv ir virkne, tāpēc mēs vēlamies nodot, ka vietturis tur.
Mēs vēlamies jaunu līniju tikai, lai tas izskatās labi.
Tātad šeit mums ir cilpa. Mums nav stāvoklī vēl.
Tāpēc es sākas ar 0, un tad katru reizi, kad tā gatavojas drukāt doto virkni
tajā konkrētā indeksa masīvā.
Tātad, ja mēs gribam, lai apturētu drukāšanu elementus masīvā?
Kad mēs esam pabeiguši, vai ne? Kad mēs esam sasnieguši masīva.
Tāpēc mēs nevēlamies pārsniegt pagātnes garumu masīvs,
un mēs jau zinām, mums nav nepieciešams, lai faktiski aktīvi uzzināt par argv garums ir
jo tas ir mums dota, un kas tas ir? Argc. Tieši tā.
Tāpēc mēs vēlamies darīt šo procesu argc vairākas reizes.
Es neesmu pareizajā direktorijā.
Labi.
Tagad pieņemsim args. Nav kļūdas, kas ir lieliski.
Tāpēc pieņemsim tikai palaist args.
Kas tas ir gatavojas atgriezties pie mums? Tas ir tikai gatavojas to izdrukāt atpakaļ.
"Tu ievadīts args vērā programmā, es esmu gatavojas sniegt to atpakaļ uz jums."
Tāpēc pieņemsim, ka mēs vēlamies teikt args tad foo bar.
Tātad, tad tas drukā to, atpakaļ pie mums. Viss labi?
Tāpēc ir par to, kā jūs varat izmantot argc un argv piemērs
zinot, ka argc pārstāv garumu argv.
Pārliecinieties, ka jums nav kādreiz ar masīvu piekļūt vienam aiz garumu masīva
jo C noteikti kliegt pie jums.
Jūs saņemsiet kaut ko sauc segmentāciju vaina,
kas nekad nav jautri, būtībā sakot jūs mēģināt piekļūt kaut
ka nav, nav pieder jums.
Tāpēc pārliecinieties, un jo īpaši ar nulles indeksācija, mēs negribam -
Tāpat kā, piemēram, ja mums ir masīvs 4 garums,
ka masīva indekss 4 nepastāv, jo mēs sākam ar 0, nulles indeksu.
Tas kļūs par otro dabu, tāpat kā uz cilpas, kad mēs sākam ar 0.
Lai tikai saglabātu, ka prātā.
Jūs nevēlaties, lai kādreiz piekļūt indeksu masīvā, kas ir ārpus jūsu sasniegt.
Lai mēs varētu redzēt tagad, kā mēs varam veida piekļuves
komandrindas argumenti, kas tiek nodotas collas
Bet kā jūs redzēja virkni, argv faktiski virkne masīvs.
Tātad, tas tiešām nav skaitlim vēl, bet Cēzars mēs vēlamies tikt galā ar veseliem skaitļiem.
Par laimi, tur ir funkcija radīta mums, ka faktiski var pārvērst virkni līdz veselam skaitlim.
Arī šeit mums nav darīšana ar lietotāja ievadi, kur mēs esam mudinot viņus
par ieguldījumu šeit atslēgu, lai mēs varētu faktiski nav reprompt un teikt,
"Ak, dod man citu skaitli, proti, ja tas nav derīgs."
Bet mēs joprojām ir nepieciešams, lai pārbaudītu pareizu lietošanu.
Jo Cēzars viņiem ir atļauts tikai iet 1 numuru,
un lai viņi būtu palaist. / Cēzaru un tad viņi ir sniegt jums numuru.
Tāpēc argc ir jābūt noteiktam skaitam.
Kādu numuru tas var būt, ja viņiem iet jums. / Cēzars un tad atslēga?
Kas ir argc? >> [Students] 2. >> Divi. Tieši tā.
Tātad jūs vēlaties, lai pārliecinātos, ka argc ir 2.
Pretējā gadījumā jūs būtībā atsakās palaist programmu.
Jo galvenais tas funkcija, kas saka int galvenais,
tā tad mēs vienmēr labas prakses atpakaļ 0 beigās veiksmīgu programmu.
Tātad, ja, teiksim, tie dod jums 3 komandrindas argumentus nevis 2
vai jums 1, piemēram, tad ko jūs darīt, ir jūs vēlaties, lai pārbaudītu, ka
un pēc tam atgriezties 1 saka, nē, es nevaru turpināt šo programmu.
[Students] Tur nevar būt telpu savā tekstā. >> Pardon me?
[Students] Tur nevar būt telpu tekstā jūs mēģināt šifrēt.
Ah!
Runājot par tekstu, ka mēs cenšamies, lai šifrētu, kas faktiski nāk vēlāk
kad mēs dodam šo tekstu.
Tātad tagad mēs esam tikai pieņemt kā komandas argumentus faktiskais skaits,
faktiskais pāreja uz Cēzara šifrēšanu.
[Students] Kāpēc jums ir nepieciešams 2 pretstatā tikai 1 argc? Tur noteikti 1 numuru.
Tiesības. Iemesls, kāpēc mums vajag 2 par argc nevis 1
ir tāpēc, kad jūs darbināt programmu un pateikt. / Cēzara vai. / sveiki,
kas faktiski skaitās kā komandrindas arguments.
Tātad, tad tas jau aizņem 1 un tad mēs esam ievadot 1 papildu.
Tātad jūs ievadot faktiski string komandrindas argumentu.
Ko jūs vēlaties darīt, lai Cēzars mēs vēlamies tikt galā ar veselam skaitlim,
lai jūs varētu izmantot šo atoi funkciju.
Un būtībā, jūs nodot to virknē, un tad tas atgriezīsies jums atpakaļ skaitlim
ja tas ir iespējams veikt šo string vērā veselam skaitlim.
Tagad atceros, kad mums ir darīšana ar printf vai GetString, lietām, piemēram, ka,
mēs arī bibliotēkas, kas ir raksturīgi mums.
Tātad sākumā mēs sākam ar hash tag standarta I / O,. H, kaut kas tamlīdzīgs.
Nu, atoi neietilpst kādā no šīm bibliotēkām,
tā, ko mums ir jādara, ir mums ir jāiekļauj tiesības bibliotēka par to.
Tāpēc atceros atpakaļ uz Walkthrough 1 kur es apsprieda manuālo funkciju.
Rakstot cilvēks savā termināla un pēc tam sekoja ar nosaukumu funkciju.
Un tā, kas būs audzināt veselu sarakstu tās lietošanu,
bet arī tas būs audzināt kurā bibliotēka, kas pieder.
Tāpēc es ņemšu atvaļinājumu, ka jums, lai izmantotu manuālo funkciju ar atoi
un izdomāt, ko bibliotēka jums nepieciešams iekļaut, lai varētu izmantot atoi funkciju.
Tāpēc mēs esam ieguvuši atslēgu un tagad runa ir iegūt vienkāršu tekstu,
un tādējādi faktiski būs lietotāja ievadi, kur ātri.
Mēs nodarbojas ar GetInt un GetFloat, un tāpēc tādā pašā garā
mēs gribam būt darīšana ar GetString.
Bet šajā gadījumā mums nav nepieciešams darīt jebkādu darīt, kamēr vai kamēr cilpas pārbaudīt.
GetString noteikti dod mums virkni,
un mēs braucam, lai šifrētu neatkarīgi lietotājs dod mums.
Tātad jūs varat pieņemt, ka visi šie lietotāju ienākošā stīgas ir pareizi.
Lieliski.
Tātad tad, kad jūs esat ieguvuši taustiņu un, kad esat ieguvuši tekstu,
Tagad to, kas ir pa kreisi ir jums šifrēt šo teksta.
Tikai, lai ātri aptver vairāk nekā lingo, tad teksta, ir tas, ko lietotājs dod jums,
un ciphertext ir tas, ko jūs atgriezties pie tiem.
Tātad stīgas, lai varētu iet cauri faktiski burtu pa burtam
jo mums ir novirzīt katru burtu,
Mēs saprotam, ka stīgas, ja mēs veida mizas atpakaļ slāņa,
mēs redzam, ka viņi tikai patiešām sarakstu rakstzīmes.
Viens nāk pēc otra.
Un tā mēs varam ārstēt virknes kā masīvu, jo tie ir bloki no rakstzīmes.
Tā teikt jums ir virkne nosaukts teksts,
un šajā mainīga tekstā tiek glabāti Tas ir CS50.
Tad teksts pie 0 skalas būtu galvaspilsēta T, 1 indekss būtu st, uc
Un tad ar masīviem, kas argc piemēram args.c,
Mēs redzējām, ka mums bija atkārtot pār masīvs
un tāpēc mums bija atkārtot no i = 0 līdz i ir mazāks nekā garumu.
Tāpēc mums ir nepieciešams kaut kādā veidā norādītas, ko no mūsu virknes garums ir
ja mēs spēsim atkārtot pār to.
Par laimi atkal, tur ir funkcija tur mums, lai gan vēlāk arī CS50
jūs noteikti varētu īstenot un padarīt savu funkciju
kas var aprēķināt garumu virknes.
Bet tagad mēs spēsim izmantot rindas garums, strlen tā.
Jums iet virknē, un tad tas atgriezīsies jums int kas pārstāv garumu jūsu virknes.
Apskatīsim piemēru, kā mēs varētu atkārtot pār katru rakstzīmi virknē
un kaut ko darīt ar to.
Ko mēs vēlamies darīt, ir atkārtot pār katru rakstzīmi virknes,
un ko mēs vēlamies darīt, ir, mēs drukāt atpakaļ katru rakstzīmi 1 līdz 1
izņemot mēs pievienot kaut blakus tai.
Tāpēc sāksim ar cilpa. Int i = 0.
Mēs ejam, lai atstāt telpu stāvokli.
Mēs vēlamies atkārtot, kamēr mēs sasniegt beigām virknes, vai ne?
Tātad, tad kāda funkcija dod mums garuma virknes?
[Dzirdams studentu reaģēšanas]
Tas ir garums komandrindas argumentus.
Bet virknes mēs vēlamies izmantot funkciju, kas dod mums garuma virknes.
Tā ka ir rindas garums.
Un tā, tad jums ir, lai iet virknē uz to.
Tas nepieciešams, lai zināt, ko virkne tai aprēķināt garumu.
Tātad, tad šajā gadījumā mums ir darīšana ar stīgu s.
Lieliski.
Tātad, tad ko mēs vēlamies darīt, pieņemsim printf.
Tagad mēs vēlamies, lai risinātu ar burtiem. Mēs vēlamies, lai izdrukātu katru individuālu raksturu.
Ja jūs vēlaties to izdrukāt, apgrozāmos līdzekļus, jūs varētu izmantot vietturi kā% f.
Ar int jūs varētu izmantot% d.
Un tā līdzīgi, ar raksturu jūs izmantojat% c, ka es esmu būs drukāšanas raksturs
kas ir saglabāta iekšā mainīgā.
Tāpēc mums ir tas, un pieņemsim pievienot periods un telpu, lai to.
Kuru raksturs mēs izmanto?
Mēs ejam, lai, izmantojot neatkarīgi raksturs mēs esam pie virknes.
Tātad, tad mēs ejam, lai būtu izmantot kaut ar auklu,
bet mēs vēlamies, lai piekļūtu noteiktu raksturu tur.
Tātad, ja virkne ir tikai masīvs, tad kā mēs piekļūt elementus masīviem?
Mums ir šīs kvadrātiekavas, un tad mēs nodot indeksu tur.
Tāpēc mums ir kvadrātiekavas. Mūsu rādītājs šajā gadījumā mēs varam tikai izmantot i. Tieši tā.
Tāpēc šeit mēs esam sakot, mēs gribam būt drukāšanas raksturu seko dot un atstarpi,
un ka raksturs būs kārtējam vēstule mūsu String s.
Es esmu tikai gatavojas glābt to. Labi.
Tagad es esmu gatavojas palaist stīgu garumu.
Tāpēc mums bija virkne sauc OMG, un tagad tas ir uzsvērts vēl vairāk.
Tāpat, pieņemsim, ka mēs tiešām vēlamies, lai iegūtu virkni no lietotāja.
Kā varētu mums darīt?
Pirms, kā mēs iegūt int?
Mēs teicām GetInt, labi? Bet tas nav int, tāpēc pieņemsim GetString.
Pieņemsim stīgu garumu. Šeit mums nav ievadiet konkrētu uzvedni.
Tāpēc es nezinu.
Es esmu gatavojas īstenot manu vārdu šeit un tad es varu darīt vienu no šīm lietām
kur es piešķirt vārdu par katru burtu vai kaut kas tamlīdzīgs. Atdzist.
Tā ka ir rindas garums.
Tātad mēs esam atpakaļ uz ķeizaru.
Mums ir daži instrumenti, kā mēs atkārtot pa virknes,
kā mēs piekļūt katru atsevišķu elementu.
Tātad tagad mēs varam nokļūt atpakaļ uz programmu.
Kā jau minēju iepriekš, ASCII tabulā, Jūsu labākais draugs,
jūs gatavojas redzēt skaitļus, kas ir saistīti ar katru burtu.
Tāpēc šeit teikt mūsu teksta, ir es esmu apreibis!
Tad katrs no šiem burtiem ir nāksies numuru un ASCII vērtība, kas saistīti ar to,
pat Apostrofs, pat telpa, pat izsaukuma zīmi,
tādējādi jūs vēlaties, lai saglabātu, ka prātā.
Tā teikt mūsu galvenais, ka lietotājs, kas iekļauta to komandrindas arguments ir 6.
Tas nozīmē, pirmo burtu, kas man, kas tiek pārstāvēta ar 73,
Jūs vēlaties, lai atgrieztos pie viņiem kāds burts ir pārstāvēta ar ASCII vērtību 73 + 6.
Šajā gadījumā tas būtu 79.
Tagad mēs vēlamies doties uz nākamo rakstzīmi.
Tātad, kas no teksta, 1 indeksa nākamais būtu apostrofs.
Bet atcerieties, mēs tikai vēlamies, lai šifrēt burtus.
Tāpēc mēs vēlamies, lai pārliecinātos, ka apostrofs patiesībā paliek tas pats,
ka mums nav jāmaina 39-45 kāds ir.
Mēs vēlamies, lai saglabātu to kā apostrofam.
Tāpēc mēs vēlamies atcerēties tikai šifrēt burti
jo mēs gribam visus citus simbolus, lai nemainās mūsu programmā.
Vēl viena lieta, ko mēs vēlamies, ir saglabāt kapitalizāciju.
Tātad, ja jums ir lielo burtu, tai vajadzētu palikt kā lielajiem burtiem.
Lowercases vajadzētu palikt kā mazie.
Tāpēc dažas noderīgas funkcijas, lai spētu tikt galā ar tikai šifrēšanas burtiem
un saglabāt saglabājot kapitalizāciju lietām
ir isalpha, isupper, islower funkcijas.
Un tāpēc tie ir funkcijas, kas atgriezīs jums Būla vērtību.
Būtībā, patiess vai nepatiess. Vai šis lielais? Vai tas burtciparu?
Vai tas vēstuli, būtībā.
Tātad šeit ir 3 piemēri, kā jūs varētu izmantot šo funkciju.
Būtībā, jūs varētu pārbaudīt, vai vērtība atgriezās jums ar šo funkciju, ir patiess vai nepatiess
pamatojoties uz šo ieguldījumu.
Nu nav šifrēt kaut vai šifrētus to vai pārliecinieties, ka tas ir lielos, uc
[Students] Vai jūs vienkārši izskaidrot tiem nedaudz vairāk, un kā jūs tos izmantot? >> Jā, protams.
Tātad, ja mēs atskatāmies, šeit mums ir kapitāls I, labi?
Tātad mēs zinām, ka man iet līdz O jo man + 6 ir O.
Bet mēs vēlamies, lai pārliecinātos, ka tas O būs kapitāla O.
Vārdu sakot, tas ir sava veida gatavojas mainīt savu ieguldījumu.
Tātad, vai tas lielais vai nav gribas veida mainīt veidu, kā mēs galā ar to.
Lai tad, ja mēs izmantojam isupper funkciju par konkrēto indeksu,
tāpēc isupper ("es"), kas atgriež mūs patiesi, tāpēc mēs zinām, ka tā ir augšējā.
Tātad, tad, pamatojoties uz to, vēlāk mēs iedziļināties formulā
kas jums tiks izmantojot pārcelt lietas Cēzara,
tā tad būtībā, tur būs nedaudz atšķirīga formula, ja tas ir lielos
nevis uz mazajiem burtiem. Jēga?
Yeah. Neuztraucieties.
Es runāju mazliet par pievienojot 6 līdz vēstuli, kurā nav gluži jēgas
izņemot gadījumus, kad mēs veida saprotam, ka šīs zīmes
ir sava veida aizstājamas ar veseliem skaitļiem.
Ko mēs darām, ir mēs veida izmantošanu netieši liešana.
Mēs iedziļināties lejot nedaudz vēlāk, ja jūs lietojat vērtību un jūs pārvērst to dažāda tipa
nekā tas sākotnēji bija.
Bet ar šo PSET mēs varētu veida pamīšus izmantot simbolus
un tām atbilstošie integer vērtības.
Tātad, ja jūs vienkārši iesaiņot raksturs tikai ar vienu pēdiņām,
tad jūs varēsiet strādāt ar to ar veseliem skaitļiem, kas nodarbojas ar to, kā veselam skaitlim.
Tātad kapitāls C attiecas uz 67. Mazie f attiecas uz 102.
Atkal, ja jūs vēlaties zināt šīs vērtības, apskatīt savu ASCII tabulu.
Tāpēc pieņemsim iedziļināties dažos kā jūs varētu atņemt un pievienot piemērus,
kā jūs faktiski var tiešām strādāt ar šiem burtiem, izmantot tos pamīšus.
Es saku, ka ASCIIMath gatavojas aprēķināt pievienot raksturs līdz veselam skaitlim
un pēc tam parāda iegūto raksturu, kā arī rezultējošo ASCII vērtību.
Un tāpēc šeit es saku - we'll galā ar šo daļu vēlāk -
bet būtībā, es saku, ka lietotājam būtu teikt palaist ASCIIMath kopā ar atslēgu,
un es saku, ka galvenais būs skaits
ar ko mēs ejam, lai pievienotu šo raksturu.
Tāpēc šeit ievērosiet, ka kopš es esmu prasīga atslēgu,
jo es esmu prasīga, ka viņi dod man 1 lieta,
Es tikai gribu pieņemt. / Asciimath un atslēgu.
Tāpēc es esmu gatavojas pieprasīt, lai argc ir vienāds ar 2.
Ja tā nav, tad es esmu gatavojas atgriezties 1 un programma tiks aizvērta.
Tāpēc es saku, galvenais nav būs pirmais komandrindas argumentu,
tas būs otrais, un kā jūs redzēt šeit,
Es esmu gatavojas pārvērst kas stājas veselam skaitlim.
Tad es esmu gatavojas noteikt raksturs būt r.
Ievērojiet, ka no mainīgā Cilvēktiesību veids ir faktiski skaitlis.
Tā, ka es esmu spējīgs izmantot r kā veselums, ir encasing to ar šiem vienu pēdiņām.
Tātad atpakaļ pie mūsu printf paziņojumu, kurā mums ir vietturi raksturs
un tad vietturis veselam skaitlim,
raksturs ir pārstāvēta ar CHR, un skaitlis ir galvenais.
Un tad mēs ejam uz rezultātu pievienotu 2 kopā.
Tāpēc mēs esam gatavojas pievienot r + kāds galvenais ir,
un tad mēs ejam, lai drukātu rezultātu, kas.
Tāpēc pieņemsim asciimath. Tas ir līdz dienai, tāpēc pieņemsim tikai palaist asciimath.
Ak, bet redz, tas nav darīt kaut ko, jo mēs faktiski nav arī tā atslēga.
Tad, kad tas tikko atgriezies 1, Mūsu galvenais uzdevums, tas tikko atgriezies atpakaļ pie mums.
Tātad, tad pieņemsim iet ar atslēgu. Kāds varētu man numuru. >> [Students] 4.
4. Labi.
Tātad R pieauga par 4 gatavojas sniegt mums V, kas atbilst ASCII vērtību 118.
Tātad, tad tas veida jēga, ka -
Patiesībā, es varu lūgt jums, ko jūs domājat ASCII vērtība r ir ja r + 4 ir 118?
Tad jā, r ir 114.
Tātad, ja paskatās uz ASCII tabulu tad, tik tiešām, jūs redzēsiet, ka R pārstāv 114.
Tāpēc tagad, ka mēs zinām, ka mēs varam pievienot integers līdz zīmēm, tas šķiet diezgan vienkārši.
Mēs esam tikai gatavojas atkārtot pa virkni, piemēram, mēs redzējām piemērs pirms.
Mēs pārbaudīt, vai tā vēstule.
Ja tā ir, tad mēs novirzīt to, ko kāds galvenais ir.
Diezgan vienkārši, izņemot gadījumus, kad jums patīk tas,
jūs redzat, ka z, ko pārstāv 122, tad dotu jums citu raksturu.
Mēs tiešām vēlamies, lai nepārsniegtu mūsu alfabētā, labi?
Tāpēc mums ir nepieciešams izdomāt kādu veidu veida iesaiņojuma apkārt.
Kad jūs sasniedzat Zed un jūs vēlaties, lai palielinātu ar noteiktu skaitu,
Jūs nevēlaties iedziļināties ārpus ASCII alfabēta sadaļā;
Jūs vēlaties, lai wrap atpakaļ visu ceļu uz A.
Bet paturiet prātā, jūs joprojām saglabājot lietu.
Tāpēc zinot, ka vēstules nevar kļūt simboliem
tāpat kā simboli netiks mainās arī.
Pēdējā PSET jums noteikti nav nepieciešams,
bet iespēja bija, lai īstenotu savu mantkārīgs PSET izmantojot moduļa funkciju.
Bet tagad mēs esam patiešām būs nepieciešama, lai izmantotu moduli,
tāpēc pieņemsim tikai iet pa šo mazliet.
Būtībā, ja jums ir x MODULO y, kas dod jums atlikušo x dala ar y.
Lūk, daži piemēri šeit. Mums ir 27% 15.
Būtībā, kad jūs atņemt 15 no 27 tik reižu, cik vien iespējams bez kļūst negatīvs
tad jūs saņemsiet 12 paliek pāri.
Tātad tas ir veids, piemēram, kas math kontekstā, bet kā mēs varam reāli izmantot šo?
Tas būs noderīgi mūsu wrapover.
Par šo, pieņemsim tikai teikt, es lūdzu jūs visus, lai sadalīt 3 grupās.
Dažreiz jūs šo grupās un kaut kas tamlīdzīgs.
Say es teicu: "Labi, es gribu jūs visus iedalīt 3."
Kā jūs varētu darīt?
[Dzirdams studentu reaģēšanas] Jā, tieši tā. Skaits off. Labi.
Pieņemsim faktiski darīt. Vai jūs vēlaties sākt?
[Studenti skaitīšanas off] 1, 2, 3, 4.
Bet atcerieties ... >> [Students] Ak, piedodiet.
Tas ir patiešām labs punkts.
Jūs teicāt 4, bet mēs tiešām vēlamies, lai jūs teikt 1, jo mēs tikai vēlamies 3 grupām.
Tātad, cik - Nē, tas ir patiešām labs piemērs, jo tad kā jūs varētu teikt 1?
Kāda ir atšķirība starp 4 un 1 attiecības?
Nu, 4 mod 3 ir 1.
Tātad, ja jūs turpināsiet, jums būtu 2.
Tāpēc mums ir 1, 2, 3, 1, 2.
Atkal, jūs faktiski 5. persona. Kā jūs zināt, ko teikt, bet gan 2 no 5?
Tu teiksim, 5 MOD 3 ir 2.
Es gribu redzēt, cik grupas no 3 paliek pāri, tad kādā secībā am I.
Un tad, ja mēs turpinājām pa visu istabu,
tad mēs varētu redzēt, ka mēs vienmēr faktiski piemēro mod funkciju, lai sevi
līdz veida skaits off.
Tas ir vairāk veida reālu piemēru tam, kā jūs varētu izmantot MODULO
jo es esmu pārliecināts, ka lielākā daļa no mums ir iespējams izgājušas caur šo procesu
kur mēs esam bija skaits off.
Kādi jautājumi par modulo?
Tas būs diezgan svarīgi saprast jēdzienus šo,
tāpēc es gribu, lai pārliecinātos, jūs guys saprast.
[Students] Ja nav atlikums, tas dod jums faktisko skaitu?
Ja viens no pirmās 3 no tām bija darījis to, vai tas ir devis viņiem to, ko viņi patiesībā bija,
vai arī tas ir dota viņiem [dzirdams] >> Tas ir labs jautājums.
Ja nav par modulo atlikusī - tā teikt, jums ir 6 mod 3 -
kas faktiski dod jums atpakaļ 0.
Mēs runājam par to nedaudz vēlāk.
Ak jā, piemēram, 3 personu - 3 mod 3 ir faktiski 0, bet viņa teica 3.
Tātad tas ir veids, piemēram iekšējo nozveju, piemēram,
tāpat labi, ja mod ir 0, tad es esmu gatavojas būt 3 personu.
Bet mēs nokļūt veida kā mēs varētu vēlēties, lai risinātu ar to, 0 ir vēlāk.
Tāpēc tagad mēs kaut ir veids kartēšanas zed uz labo vēstuli.
Tāpēc tagad mēs esam izgājuši cauri šiem piemēriem,
mēs veida redzēt, kā Cēzars varētu strādāt.
Jūs redzēt arī 2 alfabētu, un tad jūs redzēt tos novirzot.
Tāpēc pieņemsim mēģināt izteikt, ka ziņā formulā.
Šī formula ir faktiski dota jums spec,
bet pieņemsim veida caurskatīšanas ko katrs mainīgais nozīmē.
Mūsu gala rezultāts būs ciphertext.
Tāpēc šī saka, ka kārtējā raksturs ciphertext
gatavojas atbilst kārtējam raksturu teksta.
Tas ir jēga, jo mēs vēlamies, lai vienmēr būtu uzliku šīs lietas uz augšu.
Tātad tas būs i-raksturs ciphertext plus k, kas ir mūsu galvenais -
ka ir jēga - un tad mums ir šis mod 26.
Atceros atpakaļ, kad mums bija zed
Mēs negribējām, lai nokļūt raksturu, tāpēc mēs vēlējāmies mod to
un veids aptīšanas alfabēta.
Pēc Zed jūs varētu doties uz, b, c, d, kamēr jums uz labo numuru.
Tātad mēs zinām, ka Zed, ja + 6, dotu mums f jo pēc Zed nāk, b, c, d, e, f.
Tāpēc atcerēsimies mēs zinām droši, ka Zed +6 gatavojas sniegt mums f.
ASCII vērtībām, z ir 122 un f ir 102.
Tāpēc mums ir jārod veids, kā padarīt mūsu Caesar formulu dod mums 102
vedot 122.
Tātad, ja mēs vienkārši piemērot šo formulu, tad ("z" + 6)% 26, kas faktiski dod jums 24
jo 122 + 6 ir 128 128% 26 dod jums 24 atlikumu.
Bet tas nav īsti nozīmē f. Tas noteikti nav 102.
Tas arī nav ar 6 alfabēts.
Tātad acīmredzot, mums ir kaut kādā veidā tweaking šo mazliet.
Runājot par regulāru alfabēta, mēs zinām, ka z ir 26. burts un f ir 6.
Bet mēs esam datorzinātnēs, tāpēc mēs esam gatavojas indeksu pie 0.
Tātad tad tā vietā z ir skaitlis 26, mēs esam gatavojas teikt, tas ir numurs 25
jo ir 0.
Tāpēc tagad pieņemsim piemērot šo formulu.
Mums ir z pārstāv 25 + 6, kas dod jums 31.
Un 31 mod 26 dod jums 5 kā pārējiem.
Tas ir ideāls, jo mēs zinām, ka f ir 5 alfabēts.
Bet tas vēl nav f, labi? Tas joprojām nav 102.
Tātad, tad par šo PSET, izaicinājums būs mēģina noskaidrot attiecības
starp konvertējot starp šīm ASCII vērtībām un alfabētisko indeksu.
Būtībā, ko jūs vēlaties darīt, jūs vēlaties sākt ar ASCII vērtībām,
bet tad jūs vēlaties, lai kaut kā pārveido to par alfabētiskajā sarakstā
tad aprēķināt, cik burtu tas būtu - būtībā, kāda tā alfabēta indekss
no šifra raksturs - tad tulkot, ka atpakaļ uz ASCII vērtību.
Tātad, ja jūs pātagu savu ASCII tabulu, tad mēģināt atrast attiecības starp, teiksim, 102 un 5
vai 122 un 25.
Mēs esam gotten mūsu atslēga no komandrindas argumentus, mēs esam gotten teksta,
mēs esam šifrēta to.
Tagad viss, kas mums ir atlicis darīt, ir izdrukāt.
Mēs varētu darīt pāris dažādos veidos.
Ko mēs varētu darīt, ir faktiski drukāt kā mums iet līdzi.
Kā mēs pārietu pāri rakstzīmes virknē,
mēs varētu vienkārši tikai drukāt labi tad, kad mēs to aprēķinātu.
Alternatīvi, jūs varētu arī to uzglabā masīvā un ir masīvs rakstzīmju
un beigās atkārtot pa visu šo masīvā un izdrukāt to ārā.
Tātad jums ir pāris iespējas, kas.
Un atcerieties, ka% c būs vietturi drukāšanai raksturs.
Tātad mums ir Cēzaru, un tagad mēs pāriet uz Vigenere,
kas ir ļoti līdzīgs ķeizaram, bet tikai nedaudz sarežģītāka.
Tātad būtībā ar Vigenere ir jūs būs iet ar atslēgvārdu.
Tātad nevis numuru, jums nāksies virkni,
Un tā tas ir gatavojas darboties kā savu atslēgvārdu.
Tad, kā ierasts, jūs gatavojas saņemt ātru par virknes no lietotāja
un tad šifrēt to un tad dot viņiem ciphertext atpakaļ.
Tā kā es teicu, tas ir ļoti līdzīgs Cēzara, izņemot vietā novirzot ar noteiktu skaitu,
numurs ir faktiski gatavojas mainīt katru reizi no rakstura rakstura.
Kas raksturo faktisko skaitu pāriet, tas pārstāv tastatūras burtiem.
Tātad, ja jūs ievadīt maiņu, piemēram, tam, ka varētu atbilst pāreju no 0.
Tātad, tas ir atkal atpakaļ uz alfabētiskajā sarakstā.
Kāda varētu būt noderīgi, ja jūs redzēt, ka mēs faktiski nodarbojas ar ASCII vērtību
kā arī vēstules, kā arī alfabētiskajā sarakstā,
varbūt atrast vai izveidot savu ASCII tabulu, kas parāda alfabētisko rādītāju no 0 līdz 25,
līdz Z, un ASCII vērtības, lai jūs varētu veida redzēt attiecības
un ieskicēt un mēģināt atrast dažus modeļus.
Tāpat, ja Jums bija novirzot tajā noteiktā instancē F -
un tas vai nu mazos vai lielos f - tad tas varētu atbilst 5.
Vai mēs labi līdz šim?
Par Vigenere formula ir nedaudz atšķirīgs.
Būtībā, jūs redzēsiet, ka tas ir tāpat kā Cēzara,
izņemot nevis tikai k mums ir k indekss j.
Ievērojiet, ka mēs neesam izmantojot i, jo būtībā, garumu atslēgvārdu
ne vienmēr garumu mūsu ciphertext.
Tas būs nedaudz skaidrāks, kad mēs redzam piemēru, kas man ir mazliet vēlāk.
Būtībā, ja jūs palaist savu programmu ar atslēgvārdu ohai,
tad tas nozīmē, ka katru reizi, ohai būs jūsu pāreja.
Tātad, atkarībā no tā, ko amats jums ir jūsu atslēgvārdu,
jūs gatavojas novirzīt savu noteiktu ciphertext raksturu par šo summu.
Atkal, tāpat kā Cēzara, mēs vēlamies, lai pārliecinātos, ka mēs saglabāt kapitalizāciju lietām
un mēs tikai šifrēt vēstules, ne rakstzīmes vai atstarpes.
Tāpēc atskatīties ķeizaram par funkcijām, kas jums var būt izmantoti,
tā, ka esat nolēmis, kā pārcelt lietas, un uzlikt uz savu programmu šeit.
Tāpēc pieņemsim kartēt šo out.
Mums ir teksta, ka mēs esam gotten no lietotāja no GetString
sakot ... ir CS50!
Tad mums ir atslēgvārdu ohai.
Pirmie 4 varoņi ir diezgan vienkārši.
Mēs zinām, ka T ir būs nobīdīts o,
tad h būs nobīdīts H, I ir būs nobīdīts.
Šeit jūs redzēsiet, ka ir 0,
tā tad gala vērtība ir faktiski tikai tā pati vēstule, kas pirms tam.
Tad s tiek nobīdīts i.
Bet tad jums ir šos periodus šeit.
Mēs nevēlamies, lai šifrēt, ka, lai pēc tam mēs nemainīsim to ar jebko
un vienkārši izdrukāt periodu nemainīgu.
[Students] Es nesaprotu, kā jūs zināt, ka tas tiek nobīdīts - Kur tu - >> Ak, piedodiet.
Augšā šeit jūs redzēsiet, ka komandrindas arguments ohai šeit,
kas būs atslēgvārdu.
Un tā būtībā, jūs riteņbraukšana pa attiecīgās atslēgvārdu rakstzīmes.
[Students] tā o ir būs novirzot pašu -
Tā o atbilst noteiktam skaitam šajā alfabētā.
[Students] labi. Bet kur tu saņemt CS50 daļu no?
Oh. Tas ir jo GetString kur tu esi, piemēram, "Dodiet man virknes šifrēt."
[Students] Viņi gatavojas sniegt jums šo argumentu novirzīt par
un tad jūs lūgt par savu pirmo stīgu. >> Jā.
Tātad, ja viņi palaist programmu, viņi gatavojas iekļaut atslēgvārdu
savās komandrindas argumentiem, kad viņi palaist to.
Tad, kad jūs esat pārbaudīts, ka viņi faktiski devis jums 1 un ne vairāk, ne mazāk,
tad jūs gatavojas ātri tos virkne, teiksim, "Dodiet man virkni."
Tā ka, ja šajā gadījumā viņš nodrošina jums šo ... ir CS50!
Tātad, tad jūs gatavojas izmantot to un izmantot ohai un atkārtot vairāk.
Ievērojiet, ka šeit mēs izlaidis vairāk nekā šifrējot periodus,
bet attiecībā uz mūsu nostāju par ohai, nākamais mēs izmantojām o.
Šajā gadījumā tas ir mazliet grūtāk redzēt, jo tas ir 4,
tāpēc pieņemsim turpināt mazliet. Tikai stick ar mani šeit.
Tad mums ir I un S, kas pēc tam tiek tulkots ar o un h attiecīgi.
Tad mums ir telpa, un tā tad mēs zinām, ka mēs negatavojamies šifrēt telpas.
Bet paziņojums, ka tā vietā, lai dodas uz šo vietas tieši šeit,
mēs šifrējot ar - es nezinu, ja jūs varat redzēt, ka - tieši šeit.
Tātad tas nav kā jūs faktiski normēts, teiksim, o iet šeit, st iet šeit,
iet šeit, es iet šeit, o, h,, i, o, h,, i. Jums nav darīt.
Jums tikai novirzīt savu pozīciju atslēgvārdu
ja jūs zināt, ka jūs faktiski būs šifrējot faktisko vēstuli.
Vai šāda veida jēga?
Labi.
Tāpēc tikai daži atgādinājumi.
Jūs vēlaties pārliecināties, ka jūs tikai iepriekš uz nākamo vēstuli atslēgvārda
ja jūsu teksta, raksturs ir burts.
Tā teikt, mēs esam pie o.
Mēs pamanām, ka nākamais raksturs, i indekss teksta, ir skaitlis, piemēram.
Tad mums nav virzīt J, indekss mūsu atslēgvārdu, līdz mēs sasniegtu vēl vienu vēstuli.
Atkal, jūs arī vēlaties, lai pārliecinātos, ka jūs wraparound uz sākuma atslēgvārda
kad tu esi beigās tā.
Ja jūs redzat šeit mēs esam pie i, blakus vienam ir jābūt o.
Tātad jūs vēlaties, lai atrastu kādu veidu, kas spēj wraparound uz sākuma atslēgvārda
Katru reizi, kad beigs.
Un tā atkal, kāda veida operatora ir noderīga šajā gadījumā par ietīšana ap?
Tāpat skaitīšanai off piemērs.
[Students] procentu zīme. >> Jā, procentu zīme, kas ir pēc moduļa.
Tātad modulo noderēs šeit, ja jūs vēlaties, lai wrap pār indeksu savā ohai.
Un tikai ātrs mājienu: Mēģiniet domāt par ietīšanas pār atslēgvārdu mazliet kā skaitīšanas off,
kur, ja tur ir 3 grupas, 4 personām,
To skaits, kas viņi teica bija 4 mod 3, kas bija 1.
Tātad mēģiniet un domāt par to, ka veidā.
Kā redzējāt formulā, kur jums ir CI un tad pi bet tad kJ,
Jūs vēlaties pārliecināties, ka jums sekot līdzi tiem.
Jums nav nepieciešams, lai izsauktu tā i, jums nav nepieciešams, lai izsauktu to j,
bet jūs vēlaties, lai pārliecinātos, ka jums sekot līdzi nostāju, ka jūs esat pie jūsu teksta,
kā arī nostāju, ka jūs esat pie jūsu atslēgvārdu
jo tie ne vienmēr būs tāds pats.
Ne tikai atslēgvārdu - tas varētu būt pilnīgi atšķirīga garuma nekā jūsu teksta.
Arī jūsu teksta, ir skaitļi un zīmes,
tāpēc tas nav gatavojas pilnīgi atbilstu up kopā. Jā.
[Students] Vai ir funkcija, lai mainītu lietu?
Vai jūs varat nomainīt pret kapitālu A? >> Jā, tur noteikti ir.
Jūs varat pārbaudīt - Es uzskatu, ka tas toupper, visi 1 vārdu.
Bet, kad jūs mēģināt šifrēt lietas un saglabāt tekstu,
tas ir labākais būtībā ir atsevišķas lietas.
Ja tas ir lielais, tad jūs vēlaties, lai novirzīt par šo
jo savā formulā, ja paskatās atpakaļ, kā mums ir sava veida piegājienā
pamīšus starp ASCII veidā pārstāv skaitļus
un faktisko alfabētisko rādītāju, mēs vēlamies, lai pārliecinātos
tur būs sava veida modelis, kas jūs gatavojas izmantot.
Vēl viena piezīme par modeli, faktiski.
Jūs gatavojas noteikti būs darīšana ar skaitļiem.
Centieties nelietot burvju numurus, kas ir piemērs stilu.
Tā teikt jūs vēlaties, lai katru reizi maiņu kaut ko patīk -
Labi, tā mājienu, cits spoileris ir, kad jūs esat būs novirzot kaut
par noteiktu summu, mēģiniet nevis lai pārstāvētu ka ar faktisko skaitu
bet drīzāk mēģināt un redzēt, ja jūs varat izmantot ASCII vērtību, kas būs sava veida lielāka jēga.
Vēl viena piezīme: Tā kā mums ir darīšana ar formulām,
pat ja jūsu TF būs sava veida zināt, ko modelis jums varētu būt, izmantojot,
vislabāk uz jūsu komentāriem veida izskaidrot loģiku, tāpat,
"Es esmu, izmantojot šo modeli, jo ..." un veida izskaidrot modelis kodolīgi jūsu komentārus.
[Tas bija Walkthrough 2] Ja nav kādi citi jautājumi, tad es ņemšu tikai palikt šeit mazliet.
Good luck ar savu PSET 2: Kripto un paldies par ierašanos.
[Students] Paldies. >> Paldies.
[Media Offline intro]