[Powered by Google Translate] [Solisyon - Set Pwoblèm 2] [Zamyla Chan - Inivèsite Harvard] [Sa a se CS50. CS50.TV] Tout dwa. Hello, tout moun, epi byenveni nan solisyon 2. Premyèman, mwen vle felisite ou pou fini pset 1. Mwen konnen ke li te kapab yon ti jan difisil pou kèk nan nou, yo te kapab vin pwogram premye òdinatè ou ke ou te ekri, men jis sonje ke nan fen sa a, lè ou tounen gade dèyè nan fen semès la, ou pral gade nan pset 1 epi ou ap di, "Hey, mwen te kapab fè sa nan 5 minit." Se konsa, konnen ak sa yo fè konfyans ki nan fen sa a ou pral definitivman jwenn pset 1 byen senp. Men, pou kounye a li nan yon akonplisman gwo, epi Felisitasyon pou trape fè. Koulye a, tou yon nòt rapid anvan nou jwenn nan vyann lan nan solisyon an. Mwen te jis vle fè yon nòt rapid ke mwen pafwa pa pral gen ase tan pandan valktroug yo yo ale nan tout fason sèl nan fè mete nan pwoblèm ak olye jis petèt konsantre sou 1 oswa 2 kalite en, fason ke ou ta ka fè sa. Men sa se pa vle di ke ou ap entèdi nan fè li yon lòt fason. Gen souvan, menm jan ak syans konpitè, fason anpil nan fè bagay, ak sa definitivman santi lib yo itilize yon kalite diferan nan solisyon pase m 'ka te prezante a. [Pset 2: kriptografik - Zamyla Chan - zamyla@cs50.net] [Pset2 - 0. Yon seksyon nan Kesyon - 1. Seza tande kòz - 2. Vigenere] Tout dwa. Se konsa, pwoblèm mete 2: kriptografik se yon yon sèl plezi. Yon fwa ankò, avèk chak pset ou pral kòmanse ak yon seksyon nan kesyon ki k ap pase yo dwe fèt nan seksyon ou a ak plase parèy ansèyman ou. Nou pa pwal ale nan sa yo sou solisyon an, men yo definitivman ap ede w ranpli pset la. Se konsa, premye pati nan seri a pwoblèm se Seza li ye. Se konsa, nan Seza tande kòz yon moun ap pase ou yon kle ak yon nonb antye relatif, epi w ap ankripte yon afè de tèks yo ke yo ba ou epi ba yo tounen yon bagay chiffres. Si yon moun ap gade Yon Istwa Nwèl la, gen nan yon egzanp sou ke gen. Lè sa a, dezyèm pati a nan mete nan pwoblèm se Vigenere, ki se yon teknik chifreman ki pi avanse. Se konsa, nou pral chifre yon moso tèks, eksepte olye ak jis nonb antye relatif yon sèl, nou ap aktyèlman ale nan programme li ak yon mo kle ki itilizatè a ap ba nou yo. Oke, kidonk zouti nan premye nan jounen jodi a nan bwat zouti pou se aktyèlman yo pral mete ajou aparèy la. Sou tablo a diskisyon nou ta renmen wè bagay sa yo tankou, "Poukisa sa pa travay sa a?" "Poukisa nou pa Soumèt 50 travay?" e souvan solisyon an se aktyèlman jis mete ajou aparèy ou an. Se konsa, si ou jis kouri nan yon fenèt tèminal nan sudo aparèy ou a Yum-y - sa a, se yon drapo li di wi, mete ajou tout bagay - update, Lè sa a, aparèy ou an pral mete ajou si bezwen an. Li pa fè mal si ou deja yo nan vèsyon an nan aparèy la pi resan an. Lè sa a, li pral jis di pa gen okenn Ki dènye nouvo disponib epi ou ka kontinye travay ansanm. Men, sa a se yon bon bagay al touye menm chak fwa ke ou louvri aparèy la paske nou toujou anpil - pafwa si nou antre nan yon ensèk - repare-l nan aparèy la. Se konsa, asire w ke ou gen vèsyon an ki pi resan nan aparèy la epi kouri ki mete ajou a. Tout dwa. Se konsa, depi nou ap fè fas ak lèt ​​ak chanje, enciphering bagay sa yo, nou pwal vrèman vle vin pi bon zanmi ak tablo ASCII nou an. Gen anpil yo se yo menm sou entènèt, si ou jwenn. Petèt menm fè pwòp ou yo. Fondamantalman, ak chak lèt ​​nou ekri ak nimewo chak ak karaktè chak gen yon nimewo ki asosye avèk yo, ak Se konsa li bon yo wè valè ASCII yo ansanm ak lèt ​​a vrè. Sa pral definitivman ede ou nan mete nan pwoblèm. Youn nan bagay ki vrèman te ede m 'nan sa a seri pwoblèm se te aktyèlman enprime li soti, ak jan mwen te ale atravè tout, mwen ta aktyèlman trase sou li, ekri, "Si sa a gen pou yo ale nan la, Lè sa a, ..." Kalite desine sou li epi li make l 'kanpe, yo vin pi bon zanmi ak tab ASCII ou a. Lè sa a, nou gen yon kèk lòt zouti a jete nou yo. Fwa sa a, olye pou yo aktyèlman pouse itilizatè a pou tout moun nan opinyon yo nou ap pral fè yon konbinezon. Nou pwal vit ankouraje yo pou kèk D ', men nou ap tou ale nan jis itilize agiman yo liy lòd. Se konsa, lè yo kouri pwogram yo, anjeneral, ou di. / Hello, pou egzanp, si pwogram ou te hello.c. Men, fwa sa a olye pou yo jis di ke, yo ka mete pawòl, agiman apre sa. Se konsa, nou pral sèvi ak tou sa yo pase nan nou kòm opinyon yo kòm byen, Se konsa k ap deplase pi lwen pase jis pouse pou nonb antye relatif, men tou lè l sèvi avèk agiman liy lòd. Lè sa a, nou pral antre nan ranje ak strings, ki nou pral lè l sèvi avèk yon anpil kòm byen. Isit la nan jis yon egzanp nan 1 tablo mini ASCII. Kòm mwen te di, chak lèt ​​nou ekri koresponn ak yon nonb, ak sa abitid familyarize w avèk sa. Li pral vini nan sou la men. Epi pita lè nou kòmanse fè kèk ASCIIMath fè fas ak chif yo - ajoute, soustraksyon yo - Lè sa a, definitivman bon, al gade nan tablo sa a. Se konsa, isit la nan yon egzanp yon Kalkile Seza tande kòz - yon bagay ke ou ka jwe avèk yo. Li se jis nan wou yo. Esansyèlman, gen yon alfabè ekstèn ak Lè sa a, gen yon alfabè enteryè. Se konsa, isit la menm ki se yon egzanp kalkile nan Seza tande kòz men ak yon kle ki 0. Esansyèlman, A a ki kadre ak A, B a konfòm avèk B, tout wout la jiska Z. Men, Lè sa a, di nou te vle yon kle nan 3, pou egzanp. Lè sa a, nou ta tounen wou anndan an pou ke Yon kounye a sarmoniz ak D, elatriye Se konsa, sa a se esansyèlman sa n ap pral fè a. Nou pa gen yon wou, men ki sa nou pwal fè se fè pwogram nou an kalite chanjman alfabè a ansanm ak nou yon kantite sèten nan nimewo yo. Se konsa, jan mwen te di anvan, nou ap pral fè fas ak agiman liy lòd kòm byen ke ap resevwa yon antye relatif. Se konsa, fason la ki yon itilizatè ap kouri pwogram Seza tande kòz ou a se lè li di. / Seza tande kòz ak Lè sa a, k ap antre nan yon nimewo apre sa. Epi ki kantite reprezante kle a, chanjman an, konbyen fwa ou ap pral wotasyon volan an enteryè a kalkile Seza tande kòz ou a. Se konsa, nou wè isit la yon egzanp. Si nou antre nan lèt yo nan A L rive nan kalkile Seza tande kòz nou an, Lè sa a, li ta D 'D atravè O paske sa a, se chak lèt ​​nou ekri deplase plis pase 3 fwa, jis tankou egzanp lan nan rou a ke mwen te montre ou. Se konsa, Lè sa a, si ou te antre nan, pou egzanp, Sa a se CS50! Lè sa a, li ta tou deplase tout lèt yo. Epi sa a, yon bagay enpòtan nan tou de Seza tande kòz ak Vigenere se ke nou ap ale nan sote sou nenpòt lèt ki pa. Se konsa, okenn espas, karaktè, elatriye, nimewo, nou pwal kenbe yo menm bagay la. Nou ap sèlman pral chanje lèt yo ki nan ka sa a. Se konsa, kòm ou wè nan volan an, nou sèlman yo gen lèt yo ki disponib ak nou, pou nou sèlman vle chanje lèt yo ak ankripte lèt yo. Se konsa, nan premye bagay yo fè, ou wè jan l 'la pou Seza tande kòz nan pwoblèm mete 2 se nan kouri Seza tande kòz ak Lè sa a, antre nan yon nimewo lè ou kouri li nan tèminal la. Se konsa, sa nou bezwen fè se yon jan kanmenm jwenn ki kle ak jwenn aksè nan li. Se konsa, nou vle yon jan kanmenm wè li nan pral fè lòd dezyèm agiman an liy. Youn nan premye a pwal. / Seza, youn nan pwochen a pwal nimewo a kle. Se konsa, anvan nou te gen int prensipal (san valè) yo kòmanse pwogram C nou an. Nou pwal kale tounen kouch yon yon ti jan ak aktyèlman wè ke olye pou yo pase nan anile fonksyon prensipal nou an nou ap aktyèlman fè fas ak 2 paramèt. Nou gen yon int te rele arg ak Lè sa a, yon seri strings rele argv. Se konsa, arg se yon nonb antye, epi li reprezante kantite agiman ki te pase nan nan pwogram ou an. Lè sa a, argv se aktyèlman lis la nan agiman yo pase. Tout moun nan agiman yo se strings, epi konsa argv reprezante yon etalaj, yon lis, nan strings. Se pou nou pale sou ranje yon ti jan. Matris yo se esansyèlman se yon estrikti done nouvo. Nou gen antye, nou te double, nou gen strings, epi kounye a nou gen ranje. Matris yo se estrikti done ki kapab kenbe valè miltip nan kalite la menm, Se konsa esansyèlman, yon lis tou sa kalite ou vle. Esansyèlman, si ou te vle yon lis nonm antye relatif tout nan 1 varyab, Lè sa a, ou ta kreye yon varyab nouvo sa yo ki te nan etalaj int kalite. Se konsa, ranje yo se zewo-endèks, sa vle di eleman nan premye nan etalaj la se nan endèks 0. Si etalaj la se nan longè 4, tankou nan egzanp sa a, Lè sa a, eleman dènye fwa ou te ta dwe nan endèks 3, ki se 4 - 1. Se konsa, yo kreye etalaj, ou ta fè yon bagay tankou sa a. Di ou te vle yon etalaj doub. Sa a ale pou nenpòt ki kalite kalite done, menm si. Se konsa, di ou vle yon etalaj doub. Di ou vle rele l 'bwat lèt. Jis tankou ou ta inisyalize nenpòt doub lòt, ou ta di doub ak Lè sa a, non an, men fwa sa a nou mete parantèz yo kare, ak Lè sa a, nimewo a pral gen longè nan etalaj la. Remake byen ke nan ranje nou pa ka janm chanje longè a, konsa ou toujou gen defini epi chwazi konbyen nan bwat, nan konbyen valè etalaj ou a pral nan kenbe. Se konsa, yo mete valè diferan nan etalaj ou a, w ap ale nan sèvi ak sa a sentaks sa yo, kòm ou wè sou glise la. Pral 0 bwat lèt Ou gen endèks ap mete 1.2, bwat lèt endèks 1 seri 2.4, elatriye Se konsa, kounye a ke nou te revize ranje yon ti jan, se pou yo tounen nan arg ak argv. Nou konnen ke argv se kounye a yon etalaj de strings. Se konsa, lè yon itilizatè pase nan - yo di ke yo ap kouri yon pwogram - yo di. / alo David Malan, ki sa pwogram lan pral fè pou ou deja se aktyèlman vini ak sa ki arg ak argv yo ye. Se konsa, ou pa bezwen enkyete sou sa. Arg nan ka sa a ta dwe 3 paske li wè 3 mo distenk ki separe pa espas. Se konsa, Lè sa a, etalaj la nan sa a egzanp, endèks la premye ta dwe. / Hello, pwochen youn David la, pwochen youn Malan la. nenpòt moun ki wè touswit ki sa relasyon ki genyen ant argv,  etalaj la, ak arg se? Yeah. Nou pral jwenn nan ki nan yon egzanp nan args.c. Ann gade pou wè si nou ka pran avantaj de relasyon ki genyen ant 2 a. La a ou ta ka jwenn ke nan aparèy la default aplikasyon an yo louvri. c dosye se pafwa anak. Men, nou vle fè fas ak jdi, se konsa sa ou kapab fè se ou ka dwa klike sou dosye C ou a, ale nan pwopriyete yo, ki louvri yo avèk, ak Lè sa a, chwazi jdi, Fikse kòm default, e kounye a, pwogram ou an ta dwe louvri nan jdi olye pou yo anak. Pafè. Se konsa, isit la mwen gen yon pwogram ki mwen vle enprime soti chak agiman liy lòd. Se konsa, tou sa itilizatè a entrain, mwen vle esansyèlman retounen li tounen nan yo sou yon liy nouvo. Se konsa, sa ki nan yon estrikti ke nou ka itilize yo répétèr sou yon bagay - yon bagay ke ou pwobableman te itilize nan 1 pset ou a? Si ou vle ale nan yon nimewo mete de bagay sa yo? >> [Elèv] Pou riban. Pou riban. Egzakteman. Se konsa, kite la kòmanse avèk la pou riban. Nou gen pou int mwen 0 =. Se pou nou jis kòmanse avèk yon varyab inisyalizasyon estanda. Mwen pral kite kondisyon an pou yon seri ak Lè sa a, di mwen + +, pral fè bagay sa yo la. Tout dwa. Se konsa, panse tounen nan argv, si argv se lis la nan agiman ki te pase nan nan pwogram lan ak arg se nimewo a nan agiman nan pwogram nan, Lè sa a, ki vle di ke arg se esansyèlman longè nan argv, dwat, paske se la yo pral yo dwe kòm agiman anpil kòm valè a nan arg. Se konsa, si nou vle repekte sou chak eleman nan argv, nou ap pral vle chak fwa gen aksè varyab la nan argv nan endèks la bay yo. Ki ka reprezante ak sa a, dwa? Sa a varyab isit la reprezante fisèl la an patikilye nan sa a egzanp paske li nan yon etalaj fisèl - fisèl la an patikilye nan ki endèks bay yo. Ki sa nou vle fè a, nan ka sa a nou vle enprime li, kidonk kite a di printf. Epi, koulye a argv se yon fisèl, se konsa nou vle mete sa kontneur la. Nou vle yon liy nouvo jis fè li gade bon. Se konsa, isit la nou gen yon riban pou li a. Nou pa gen kondisyon an ankò. Se konsa, mwen kòmanse nan 0, epi Lè sa a, chak fwa li pral enprime fisèl la bay nan ki endèks patikilye nan etalaj la. Se konsa, lè nou vle sispann enprime soti eleman nan etalaj la? Lè nou te fini, dwa? Lè nou te rive nan nan fen etalaj la. Se konsa, nou pa vle depase sot pase longè nan etalaj la, epi nou deja konnen nou pa bezwen aktyèlman aktivman chèche konnen kisa longè nan argv se paske li nan bay nou, epi sa ki nan sa? Arg. Egzakteman. Se konsa, nou vle fè sa nimewo arg pwosesis la fwa. Mwen pa nan anyè a dwat. Tout dwa. Koulye a, kite a fè arg. Pa gen erè, ki se gwo. Se konsa, kite a jis kouri arg. Ki sa ki sa a pral retounen nan nou? Li nan jis pral enprime li tounen. "Ou antre arg nan pwogram lan; mwen pral bay li tounen ba ou." Se konsa, kite a di nou vle di arg Lè sa a, foo ba. Se konsa, lè sa a li simagri li soti tounen ban mwen. Tout dwa? Se konsa, gen se yon egzanp sou kouman ou ka itilize arg ak argv konnen ke arg reprezante longè nan argv. Asire w ke ou pa fè sa tout tan ki gen aksè ranje yon sèl pi lwen pase longè nan etalaj la paske C pral definitivman rele nan ou. Ou lj jwenn yon bagay yo rele yon fay segmentation, ki se pa janm amizan, fondamantalman an dizan w ap eseye gen aksè a yon bagay ki pa egziste, pa fè pati ou. Se konsa, asire w, epi sitou avèk zewo Indexing-a, nou pa vle - Renmen pou egzanp, si nou gen yon etalaj de longè 4, ki endèks etalaj 4 pa egziste paske nou kòmanse nan 0, nan zewo endèks. Li pral vin dezyèm nati jis tankou pou pasan lè nou kòmanse nan 0. Se konsa, jis kenbe sa nan tèt ou. Ou pa vle janm jwenn aksè endèks la nan yon etalaj sa a, se pi lwen pase rive ou. Se konsa, nou ka wè kounye a kijan nou kapab kalite aksè agiman yo liy bay lòd pou yo pase pous Men, jan ou te wè fisèl la, argv a se aktyèlman yon etalaj fisèl. Se konsa, li la aktyèlman pa yon nonb antye relatif ankò, men nan Seza tande kòz nou vle fè fas ak nonm antye relatif. Chans, gen yon fonksyon ki te kreye pou nou ki ka aktyèlman konvèti yon kòd nan yon nonb antye relatif. Tou nan isit la nou pa ap fè fas ak opinyon itilizatè kote n ap pouse yo pou D 'isit la pou kle a, se konsa nou pa ka aktyèlman reprompt ak di, "O, ban m 'yon lòt nonb antye relatif, di, si li pa valab." Men, nou toujou bezwen tcheke pou itilizasyon kòrèk. Nan Seza tande kòz yo sèlman pèmèt yo pase nan 1 nimewo, ak pou yo gen nan kouri. / Seza tande kòz ak Lè sa a, yo gen yo ba ou yon nimewo. Se konsa, arg te gen yon nimewo a sèten. Ki nonb ki ta ke gen yo si yo gen double ou. / Seza tande kòz la ak Lè sa a, kle a? Ki sa ki arg? >> [Elèv] 2. >> De. Egzakteman. Se konsa, ou vle asire w ke arg se 2. Otreman ou fondamantalman refize kouri pwogram nan. Nan prensipal li nan yon fonksyon ki di Int prensipal yo, se konsa Lè sa a, nou toujou nan 0 bon retou pratik nan fen yon pwogram ki gen siksè. Se konsa, si, di yo, yo ba ou agiman 3 liy lòd olye pou yo 2 oswa ba ou 1, pou egzanp, Lè sa a, ki sa ou pral fè se ou pral vle tcheke pou ki ak Lè sa a, retounen 1 t'ap di: pa gen okenn, mwen pa ka kontinye ak pwogram sa a. [Elèv] Gen a pa kapab yon espas nan tèks ou. >> Padonnen m 'konsa? [Elèv] Gen a pa kapab yon espas nan tèks la w ap eseye ankripte. Ah! An tèm de tèks la ke nou ap eseye ankripte, ki aktyèlman vini pita lè nou bay ki tèks. Se konsa, kounye a nou ap jis aksepte kòm agiman lòd nimewo aktyèl la, chanjman aktyèl la pou chifreman nan Seza li ye. [Elèv] Poukisa ou bezwen 2 kòm opoze a jis arg 1? Genyen nan definitivman 1 nimewo. Dwat. Rezon an pou kisa nou bezwen 2 pou arg olye pou yo 1 se paske lè ou kouri nan yon pwogram ak di. / Seza tande kòz oswa. / hello, ki aktyèlman konte kòm yon agiman liy lòd. Se konsa, Lè sa a, ki deja pran moute 1 ak se konsa Lè sa a, nou ap Anthrax 1 siplemantè. Se konsa, w ap Anthrax aktyèlman yon fisèl nan agiman an liy lòd. Ki sa ou vle fè a, pou Seza tande kòz nou vle fè fas ak yon nonb antye relatif, pou ou kapab itilize sa a fonksyon atwa. Ak, fondamantalman, ou pase l 'nan yon fisèl ak Lè sa a, li pral retounen ou tounen yon nonb antye relatif si li posib fè ki fisèl nan yon nonb antye relatif. Koulye a, sonje lè nou ap fè fas ak bagay sa yo printf oswa GetString, tankou sa yo, nou mete bibliyotèk yo ki yo espesifik ak nou. Se konsa, nan kòmansman an nou kòmanse ak yon regle estanda yon bagay tag Mwen / O,. H, tankou sa. Oke, atwa se pa nan youn nan moun ki nan bibliyotèk, nan Se konsa, sa nou dwe fè se nou dwe gen ladan yo nan bibliyotèk la dwa pou sa. Se konsa, sonje tounen nan solisyon 1 kote mwen diskite fonksyon an manyèl. Ou tape nonm nan tèminal ou ak Lè sa a, ki te swiv pa non an nan yon fonksyon. Se konsa, ki pral pote yo moute yon lis tout nan itilizasyon li yo, men kòm byen li pral pote yo moute ki bibliyotèk ki apateni. Se konsa, mwen pral kite sa gade ou yo sèvi ak fonksyon an manyèl ak atwa ak konnen ki bibliyotèk ou bezwen mete pou kapab sèvi avèk fonksyon an atwa. Se konsa, nou te gen kle a epi kounye a li rive jwenn tèks la byen dousman, li ak sa ki aktyèlman a pwal D 'itilizatè ki kote ou vit. Nou te fè fas ak GetInt ak GetFloat, epi konsa nan Venn an menm nou ap pral fè fas ak GetString. Men, nan ka sa a nou pa bezwen fè nenpòt ki fè pandan oswa pandan y ap pasan yo tcheke. GetString pral definitivman ba nou yon fisèl, epi nou ap ale nan ankripte tou sa itilizatè a ap ban nou. Se konsa, ou ka asime ke tout strings itilizatè sa yo antre yo kòrèk. Great. Se konsa, Lè sa a, yon fwa ou te gen kle a epi yon fwa ou te gen tèks la, kounye a sa ki rete a se ou gen chifre plentèk la. Jis byen vit kouvri sou langay, plentèk a se sa ki itilizatè a ap ba ou, ak chifre a se ki sa ou retounen nan yo. Se konsa, strings, pou kapab ale nan aktyèlman lèt nan yon lèt nan paske nou gen chanjman chak lèt ​​nou ekri, nou konprann ke strings, si nou kalite kale tounen kouch a, nou wè ke yo ap jis reyèlman yon lis karaktè. Youn vin apre lòt la. Se konsa, nou ka trete strings kòm ranje yo paske yo te ranje nan karaktè. Se konsa, di ou gen yon kòd yo rele tèks, e nan lespas de tèks sa varyab a estoke Sa a se CS50. Lè sa a, tèks nan endèks 0 ta dwe yon kapital T, endèks 1 ta dwe h, elatriye Lè sa a, ak ranje, nan egzanp lan arg nan args.c, nou te wè ke nou te repekte sou yon etalaj epi pou nou te gen nan repekte soti nan mwen = 0 moute jouk tan mwen se mwens pase longè a. Se konsa, nou bezwen kèk fason pou lè n ap kalkile konnen ki sa ki longè nan fisèl nou an, se si nou ap ale nan repekte sou li. Chans ankò, gen yon fonksyon gen pou nou, malgre sou pita nan CS50 ou pral dwe definitivman kapab mete sou pye, epi fè fonksyon pwòp ou a ki ka kalkile longè yon fisèl. Men, pou kounye a nou ap ale nan sèvi ak longè fil, se konsa strlèn. Ou pase nan yon fisèl, ak Lè sa a, li pral retounen ou yon int ki reprezante longè nan fisèl ou a. Se pou yo gade nan yon egzanp sou kouman nou ka kapab repekte sou chak karaktè nan yon fisèl ak fè yon bagay ak sa. Ki sa nou vle fè se repekte sou chak karaktè nan fisèl la, ak ki sa nou vle fè se nou enprime tounen lakay ou chak karaktè 1 pa 1 eksepte nou ajoute yon bagay akote l. Se konsa, kite la kòmanse avèk la pou riban. Int mwen = 0. Nou pral kite espas pou kondisyon an. Nou vle répétèr jiskaske nou rive nan fen an nan fisèl la, dwa? Se konsa, Lè sa a, sa ki fonksyon ba nou longè nan fisèl la? [Fèbl repons elèv] Sa a se longè nan agiman yo liy lòd. Men, pou yon fisèl nou vle sèvi ak yon fonksyon ki ba nou longè nan fisèl la. Se konsa, sa a, se longè fil. Se konsa, Lè sa a, ou gen yo pase nan yon fisèl li. Li bezwen konnen ki sa fisèl li bezwen yo kalkile longè nan. Se konsa, Lè sa a, nan ka sa a nou ap fè fas ak fisèl la. Great. Se konsa, Lè sa a, ki sa nou vle fè, se pou yo printf. Koulye a, nou vle fè fas ak karaktè. Nou vle enprime soti chak karaktè endividyèl. Lè ou vle l 'bay enprime soti yon flote, ou ta itilize kontneur a tankou f%. Avèk yon int ou ta itilize d%. Se konsa, Menm jan tou, ak yon gwo karaktè ou itilize c% a di mwen pral yo dwe enprime yon karaktè ki nan estoke andedan yon varyab. Se konsa, nou gen sa a, e kite yo ajoute yon peryòd ak espas yon li. Ki karaktè yo nou lè l sèvi avèk? Nou ap pral lè l sèvi avèk tou sa karaktè nou ap nan nan fil la. Se konsa, lè sa a nou ap pral lè l sèvi avèk yon bagay ki gen fisèl, men nou vle yo gen aksè nan pèsonaj la sèten la. Se konsa, si yon kòd se jis yon etalaj, lè sa a jan nou gen aksè eleman nan ranje? Nou gen moun ki parantèz kare, ak Lè sa a, nou mete endèks la nan la. Se konsa, nou gen parantèz kare. Endèks nou nan ka sa a nou ka jis itilize mwen. Egzakteman. Se konsa, isit la nou ap di ke nou ap pral enprime yon karaktè ki te swiv pa yon dot ak espas yon, e ke karaktè a pwal lèt la on li nan s fisèl nou an. Mwen jis pral pou konsève pou sa. Oke. Koulye a, mwen pral kouri longè fil. Se konsa, nou te gen yon fisèl rele OMG, epi kounye a li nan mete aksan sou menm plis. Menm jan an, kite a di nou aktyèlman vle jwenn yon fisèl soti nan itilizatè lan. Ki jan ta ka nou fè sa? Anvan, ki jan nou jwenn yon int? Nou te di GetInt, dwa? Men sa se pa Int, kidonk kite a GetString. Se pou nou fè longè fil. Isit la nou pa t 'antre nan yon èd memwa espesifik. Se konsa, mwen pa konnen. Mwen pral mete non mwen nan isit la e konsa Lè sa a, mwen kapab fè youn nan bagay sa yo kote mwen asiyen yon mo pou chak lèt ​​nou ekri oswa yon bagay tankou sa. Fre. Se konsa, sa a, se longè fil. Se konsa, nou ap tounen nan Seza li ye. Nou gen yon zouti kèk sou ki jan nou repekte sou yon fisèl, ki jan nou gen aksè chak eleman endividyèl. Se konsa, kounye a nou ka jwenn tounen nan pwogram nan. Kòm mwen mansyone anvan, nan tablo a ASCII, pi bon zanmi ou a, w ap ale nan wè nimewo yo ki yo asosye avèk chak lèt ​​nou ekri. Se konsa, isit la di plentèk nou an, se mwen toudi! Lè sa a, chak nan sa yo karaktè ki pral gen yon nimewo ak yon ASCII valè ki asosye ak li, menm apostwòf la, menm espas la, menm esklamasyon mak la, konsa ou pral vle kenbe sa nan tèt ou. Se konsa, di kle nou an ki itilizatè a enkli nan agiman liy kòmandman yo se 6. Sa vle di pou lèt la premye, ki se mwen menm, ki se reprezante pa 73, ou vle pou retounen nan yo tou sa lèt a reprezante valè a ASCII nan 73 + 6. Nan ka sa a ki ta ka 79. Koulye a, nou vle pou yo ale nan karaktè kap vini an. Se konsa, pwochen an nan endèks 1 nan plentèk a ta dwe apostwòf la. Men, sonje nou sèlman vle chifre lèt yo. Se konsa, nou vle asire w ke apostwòf a aktyèlman rete menm nan, ke nou pa chanje soti nan 39 mèt fè tout sa 45 se. Nou vle kenbe li kòm yon apostwòf. Se konsa, nou vle sonje sèlman chifre lèt yo paske nou vle tout nan senbòl yo lòt nan rete san okenn chanjman nan pwogram nou an. Yon lòt bagay ke nou vle se prezève majiskil. Se konsa, lè ou gen yon lèt majuskul, li ta dwe rete kòm yon majuskul. Lowercases ta dwe rete kòm miniskil. Se konsa, kèk fonksyon itil pou kapab fè fas avèk sèlman enciphering lèt epi kenbe prezève majiskil nan de bagay sa yo se fonksyon yo islower isalpha, isupper,. Se konsa, sa yo, se fonksyon ki retounen ou yon valè Boolean. Fondamantalman, vre oubyen fo. Èske sa se yon majuskul? Èske sa se alfa? Èske sa se yon lèt, ki esansyèlman. Se konsa, isit la yo se 3 egzanp sou kouman ou ta itilize ki fonksyon. Fondamantalman, ou ta ka teste si valè a tounen nan ou pa ki fonksyon se vre oubyen fo ki baze sou ki D '. Swa pa fè sa chifre yon bagay oswa Kalkile li oswa asire w ke li nan majuskul, elatriye [Elèv] Èske ou ka jis eksplike sa yo yon ti kras plis epi ki jan ou sèvi ak yo? >> Yeah, pou asire w. Se konsa, si nou tounen gade dèyè, isit la nou gen yon kapital mwen, dwa? Se konsa, nou konnen se mwen ale nan O paske mwen + 6 se O. Men, nou vle asire w ke ke O a pwal yon O. kapital Se konsa, fondamantalman, se sa ki kalite pral chanje opinyon nou an. Se konsa, si li nan majuskul oswa ou pa pral kalite chanje fason a ke nou fè fas avèk li. Se konsa, Lè sa a, si nou sèvi avèk fonksyon an isupper sou sa endèks patikilye, Se konsa isupper ("I"), ki retounen pou nou vre, konsa nou konnen ke li nan anwo kay la. Se konsa, Lè sa a, ki baze sou sa, pita nou pral ale nan yon fòmil ki ou pral lè l sèvi avèk chanjman bagay sa yo nan Seza tande kòz, se konsa Lè sa a, fondamantalman, gen k ap pase yo dwe yon fòmil yon ti kras diferan si li nan majuskul kòm yo te opoze ak miniskil. Fè sans? Yeah. Pa gen enkyetid. Mwen te pale yon ti jan sou ajoute 6 a yon lèt, ki pa byen fè sans eksepte lè nou kalite konprann ke sa yo karaktè yo se kalite ka ranplase ak nonm antye relatif. Ki sa nou fè se nou kalite Distribisyon itilize enplisit. Nou pral antre nan depoze yon ti jan pita sou ki kote ou pran yon valè epi ou vire l 'nan yon kalite diferan pase sa li orijinal te ye a. Men, avèk sa a pset nou pral kapab kalite interchangeable itilize karaktè ak valè korespondan yo antye ki pè. Se konsa, si ou tou senpleman recouvrir yon karaktè ak jis quotes yo selibatè, Lè sa a, ou pral kapab travay avèk li ak nonm antye yo, fè fas ak li kòm yon antye relatif. Se konsa, C kapital la gen rapò ak 67. F miniskil gen rapò ak 102. Yon fwa ankò, si ou vle konnen valè sa yo, gade nan tablo ASCII ou a. Se konsa, kite a ale nan kèk egzanp sou kouman ou ka kapab fè soustraksyon epi ajoute, kouman ou ka aktyèlman vrèman travay avèk sa yo karaktè, sèvi ak yo interchangeable. Mwen di ke ASCIIMath ki pral kalkile adisyon a nan yon karaktè nan yon nonb antye relatif ak Lè sa a, montre karaktè a resultant kòm byen ke valè a resultant ASCII. Se konsa, isit la m ap di - we'll kontra avèk pati sa a pita - men, fondamantalman, m ap di ki itilizatè a ta dwe di kouri ASCIIMath ansanm ak yon kle yo, ak m ap di ke ki kle a pwal nimewo a ak ki nou pral ajoute sa a karaktè. Se konsa, isit la remake ke depi mwen ap mande pou yon kle, depi m ap mande yo ke yo ap bay m '1 bagay, Mwen sèlman vle asepte. / Asciimath ak kle a. Se konsa, mwen pral mande ke arg ki egal a 2. Si li pa, Lè sa a, mwen pral tounen 1 ak pwogram lan pral sòti. Se konsa, m ap di kle a pa a pwal bay lòd premye agiman an liy, li pral fè yon sèl, dezyèm lan, ak jan ou wè la a, Mwen pral vire ki nan yon nonb antye relatif. Lè sa a, mwen pral mete yon karaktè yo dwe r. Remake ki kalite varyab kr a se aktyèlman yon nonb antye relatif. Wout la sa mwen m kapab sèvi ak r kòm yon nonb antye relatif se pa encasing l 'ak sa yo quotes sèl. Se konsa, tounen nan deklarasyon printf nou kote nou gen yon kontneur pou yon karaktè ak Lè sa a, yon kontneur pou yon nonb antye relatif, se pèsonaj la reprezante nan kr a, ak nonb antye relatif la se kle a. Se konsa, lè sa a nou ap ale nan nan rezilta ajoute 2 an ansanm. Se konsa, nou ap ale nan ajoute r + tou sa kle a se, ak Lè sa a, nou pral enprime rezilta a nan sa. Se konsa, kite a fè asciimath. Li a jiska dat, se konsa kite yo jis kouri asciimath. Oh, men wè, li pa fè anyen paske nou pa t 'aktyèlman bay li yon kle. Se konsa, lè li fenk retounen 1, fonksyon prensipal nou an, li fenk retounen tounen ban mwen. Se konsa, Lè sa a, kite a pase nan yon kle. Yon moun ban m 'yon nimewo. >> [Elèv] 4. 4. Oke. Se konsa, r ogmante pa 4 a pral ban nou v, ki koresponn ak valè a ASCII nan 118. Se konsa, lè sa a li kalite fè sans sa - Aktyèlman, mwen ka mande w, ki sa ou panse valè a ASCII nan r se si r + 4 se 118? Lè sa a, yeah, r se 114. Se konsa, si ou gade sou tab la ASCII lè sa a, asire w ase, ou pral wè se ke r reprezante nan 114. Se konsa, kounye a ke nou konnen ke nou ka ajoute nonm antye relatif karaktè, sa a sanble trè senp. Nou jis ap ale nan repekte sou yon fisèl tankou nou te wè nan yon egzanp anvan. Nou pral tcheke si li nan yon lèt. Si li se, Lè sa a, nou pral chanje li pa tou sa kle a se. Trè senp, eksepte lè ou jwenn yo tankou sa a, ou wè sa a z, reprezante nan 122, lè sa a ta ba ou yon karaktè diferan. Nou aktyèlman vle rete nan alfabè nou an, dwa? Se konsa, nou bezwen konnen ki kèk fason nan kalite vlope alantou. Lè ou rive nan zèd, epi ou vle ogmante pa yon sèten nonb, ou pa ta vle ale nan pi lwen pase seksyon nan alfabè ASCII; ou vle vlope tounen tout wout la A. Men, kenbe nan tèt ou w ap toujou prezève ka-a. Se konsa, konnen ke lèt pa ka vin senbòl jis tankou senbòl pa pral yo dwe chanje kòm byen. Nan pset an dènye ou definitivman pa t 'bezwen, men yon opsyon te aplike pset visye ou pa sèvi ak fonksyon an Modil. Men koulye a, nou ap aktyèlman ale nan bezwen sèvi ak Modil, se konsa kite yo jis ale sou sa a yon ti jan. Esansyèlman, lè ou gen x modulo y, ki ba ou tout rès x divize pa y. Men kèk egzanp isit la. Nou gen 27% 15. Fondamantalman, lè ou fè soustraksyon 15 soti nan 27 kòm anpil fwa ke posib san yo pa resevwa negatif Lè sa a, ou jwenn 12 gòch sou. Se konsa, sa a, se kalite tankou nan yon kontèks la matematik, men ki jan nou ka sèvi ak aktyèlman sa a? Li nan ale nan kapab itil pou wrapover nou an. Pou sa a, kite yo jis di mwen mande w tout moun divize nan 3 gwoup yo. Pafwa ou fè sa nan gwoup yo ak yon bagay tankou sa. Di mwen te di, "Oke, mwen vle ou tout moun ap divize an 3". Kijan ou kapab fè sa? [Fèbl repons elèv] Yeah, egzakteman. Konte an. Oke. Se pou nou aktyèlman fè sa. ou vle kòmanse? [Elèv yo konte nan] 1, 2, 3, 4. Men, sonje ... >> [Elèv] Oh, regrèt. Sa a se yon pwen reyèlman bon. Ou te di 4, men nou aktyèlman vle ou di 1 paske nou sèlman vle 3 gwoup yo. Se konsa, lè sa a, ki jan - Non, sa se yon egzanp reyèlman bon paske lè sa a kouman ou ka di 1? Ki sa ki nan relasyon ki genyen ant 4 ak 1 an? Oke, 4 Mod 3 se 1. Se konsa, si ou kontinye, ou ta dwe 2. Se konsa, nou gen 1, 2, 3, 1, 2. Yon fwa ankò, ou se aktyèlman moun nan 5yèm. Jan ou fè konnen yo di 2 olye pou yo 5? Ou di 5 Mod 3 se 2. Mwen vle wè ki jan anpil gwoup moun ki nan 3 ki rete sou, Lè sa a, ki lòd mwen wi Se konsa, Lè sa a, si nou kontinye ansanm sal la tout antye, Lè sa a, nou ta renmen wè ke nou toujou ap aktyèlman aplike fonksyon an Mod nan tèt nou kalite konte an. Sa se yon kalite plis nan egzanp byen mèb sou kouman ou ta ka sèvi ak modulo paske mwen asire w pi fò nan nou te pwobableman gen ale nan pwosesis sa a kote nou te te gen nan konte an. Nenpòt kesyon sou modulo? Li pral trè enpòtan ke ou konprann konsèp yo nan sa a, Se konsa, mwen vle asire w ke ou nèg konprann. [Elèv] Si pa gen okenn rès, li ba ou nimewo aktyèl la? Si youn nan 3 an premye nan yo te fè li, li ta te ba yo sa yo aktyèlman te, oswa ou ta li te ba yo [fèbl] >> Sa se yon bon kesyon. Lè pa gen rès pou modulo la - se konsa di ou gen 6 Mod 3 - ki aktyèlman ap ba ou tounen 0. Nou pral pale de sa yon ti jan pita. Oh yeah, pou egzanp, moun nan 3yèm - 3 Mod 3 se aktyèlman 0 men li di 3. Se konsa, sa a, se kalite tankou yon trape enteryè, pou egzanp, tankou oke, si yo Mod a 0 Lè sa a, mwen pral fè moun lan 3yèm. Men, nou pral jwenn nan kalite ki jan nou ta ka vle fè fas ak sa ki 0 se pita. Se konsa, kounye a nou yon jan kanmenm gen yon fason pou planifikasyon zèd nan lèt la dwat. Se konsa, kounye a nou te ale nan egzanp sa yo, nou kalite wè ki jan Seza tande kòz ta ka travay. Ou wè alfabè yo 2 ak Lè sa a, ou wè yo chanje. Se konsa, kite a eseye ak eksprime ki an tèm de fòmil. Sa a se fòmil aktyèlman ba ou nan espèk a, men kalite kite l 'la nan gade nan ki sa chak varyab vle di. Rezilta fen nou an a pwal chifre a. Se konsa, sa a di ke pèsonaj la on nan chifre a ki pral koresponn ak karaktè a on nan plentèk la. Ki fè sans paske nou vle toujou ap doublur sa yo sou bagay yo. Se konsa li pral fè pèsonaj la on nan k nan plis chifre, ki se kle nou yo - ki fè sans - ak Lè sa a, nou gen sa a Mod 26. Sonje tounen lè nou te gen zèd an nou pa t 'vle jwenn nan karaktè a, se konsa nou te vle Mod li ak kalite vlope toutotou alfabè an. Apre zèd ou ta ale nan yon, B, C, D, jiskaske ou te rive nan nimewo ki dwat. Se konsa, nou konnen ke zèd, si + 6, ap ban nou f paske apre zèd vini a, b, C, D, E, F. Se konsa, kite a sonje nou konnen pou asire w ke zèd + 6 ki pral ban nou f. Nan valè ASCII, z se 122 ak f se 102. Se konsa, nou gen jwenn kèk fason pou prepare fòmil Seza tande kòz nou an ban nou 102 apre w pran nan 122. Se konsa, si nou jis aplike sa a lèt an poud,% nan ('z' + 6) 26, ki aktyèlman ap ba ou 24 paske 122 + 6 se 128; 128% 26 ba-w 24 rès. Men, ki pa reyèlman vle di f. Sa a se definitivman pa 102. Sa a se tou pa lèt la 6th nan alfabè an. Se konsa, evidamman, nou bezwen gen kèk fason pou tweaking sa a yon ti kras ti jan. An tèm de alfabè a regilye, nou konnen z se lèt la 26th ak f se 6th a. Men, nou ap nan syans konpitè, pou nou ap ale nan endèks nan 0. Se konsa, Lè sa a, olye pou yo z yo te nimewo a 26, nou ap pral di nimewo li a 25 paske yon se 0. Se konsa, kounye a kite a aplike sa a fòmil. Nou gen z reprezante pa 25 6 +, sa ki ba ou 31. Ak 31 Mod 26 ba ou 5 kòm yon rès. Sa a se pafè paske nou konnen f se lèt la 5yèm nan alfabè an. Men, li toujou se pa f, dwa? Li toujou kontinye se pa 102. Se konsa, Lè sa a, pou sa a pset, yon defi yo pral eseye jwenn sou relasyon ki genyen ant konvèti ant valè sa yo ASCII ak endèks la alfabetik. Esansyèlman, ki sa ou pral vle fè sa, ou vle kòmanse soti ak valè yo ASCII, men Lè sa a, ou vle yon jan kanmenm tradui ki nan yon endèks alfabetik Lè sa a, kalkile sa ki lèt li ta dwe - fondamantalman, ki sa ki endèks alfabetik li yo se nan karaktè a kalkile - Lè sa a, tradui ki tounen nan valè yo ASCII. Se konsa, si ou fwe nan tab ASCII ou a, Lè sa a, eseye epi jwenn relasyon ant, di, 102 ak 5 oswa 122 a ak 25. Nou te vinn kle nou yo soti nan agiman yo liy lòd, nou te vinn plentèk a, nou te enciphered li. Koulye a, tout sa nou te kite fè se enprime li. Nou ta ka fè sa a yon koup nan diferan fason. Ki sa nou ta ka fè se aktyèlman enprime kòm nou ale ansanm. Kòm nou repekte sou karaktè yo ki nan fisèl la, nou te ka tou senpleman jis enprime dwa Lè sa a, lè nou kalkile li. Sinon, ou ta ka tou sere l 'nan yon etalaj epi yo gen yon etalaj de karaktè ak nan fen a repekte sou ki etalaj antye ak enprime li. Se konsa, ou gen yon koup nan opsyon pou sa. Epi sonje byen, c% a pwal kontneur a pou enprime yon karaktè. Se konsa, gen nou gen Seza, kounye a nou deplase sou Vigenere, ki se trè menm jan ak Seza tande kòz men jis yon ti kras plis konplèks. Se konsa, esansyèlman ak Vigenere se w ap ale nan dwe pase nan yon mo kle. Se konsa, olye pou yo yon nonb, w ap ale nan gen yon kòd, Pou fè sa ki k ap pase yo aji kòm mo kle ou. Lè sa a, kòm dabitid, w ap ale nan jwenn yon èd memwa pou yon fisèl soti nan itilizatè a ak Lè sa a, chifre li epi li Lè sa a, ba yo tounen nan chifre. Se konsa, jan mwen te di, li nan anpil menm jan ak Seza tande kòz yo, eksepte olye pou yo déplacement pa yon sèten nonb, nimewo a se aktyèlman pral chanje chak fwa soti nan karaktè karaktè. Ki reprezante ki kantite aktyèl sou chanjman, li te reprezante pa lèt yo klavye. Se konsa, si ou antre nan nan yon chanjman nan yon, pou egzanp, Lè sa a, ki ta ka koresponn ak yon chanjman ki 0. Se konsa, li ankò tounen nan endèks la alfabetik. Ki sa ki kapab itil si w ap wè ke nou ap aktyèlman fè fas ak valè ASCII kòm byen ke lèt yo, osi byen ke endèks la alfabetik, petèt jwenn oswa fè pwòp ou ASCII tab ki montre endèks la alfabetik nan 0 a 25, yon atravè z, ak valè yo ASCII pou ke ou ka kalite wè relasyon ki ak trase deyò epi yo eseye epi jwenn kèk modèl. Menm jan tou, si ou te déplacement nan egzanp lan sèten pa f - ak sa a se swa f miniskil oswa majuskul - Lè sa a, ki ta ka koresponn ak 5. Eske nou kwè nou bon twò lwen? Fòmil la pou Vigenere se yon ti jan diferan. Fondamantalman, ou wè ke li nan jis tankou Seza tande kòz, eksepte olye pou yo jis k nou gen k endèks j. Remake nou pa lè l sèvi avèk mwen paske esansyèlman a, longè mo kle a se pa nesesèman longè nan chifre nou an. Sa se va yon ti jan pi klè lè nou wè yon egzanp ke mwen gen yon ti jan pita sou. Fondamantalman, si ou kouri pwogram ou an ak yon mo kle nan ohai, Lè sa a, ki vle di ke chak fwa, ohai a pwal chanjman ou an. Se konsa, depann sou sa ki pozisyon ou nan mo kle ou a, w ap ale nan chanje sèten ou chifre karaktè pa ki kantite lajan. Yon fwa ankò, jis tankou Seza tande kòz, nou vle asire ki nou prezerv majiskil nan de bagay sa yo epi nou sèlman lèt chifre, pa karaktè oswa espas. Se konsa, gade tounen nan Seza tande kòz sou fonksyon yo ke ou ka te itilize, fason ke ou deside ki jan yo chanje bagay sa yo, epi aplike ki nan pwogram ou an isit la. Se konsa, kite a kat sa a soti. Nou gen yon plentèk ke nou te vinn soti nan itilizatè a soti nan GetString li di sa a ... se CS50! Lè sa a, nou gen yon mo kle nan ohai. Premye 4 karaktè yo se trè senp. Nou konnen ke T yo pral deplase nan o, Lè sa a, h yo pral deplase nan h, mwen yo pral deplase pa yon. La a ou wè ke yon reprezante 0, se konsa Lè sa a, valè a fen se aktyèlman jis lèt la menm jan anvan. Lè sa a, yo ap deplase nan mwen. Men, Lè sa a, ou gen sa yo peryòd isit la. Nou pa vle chifre ki, se konsa Lè sa a, nou pa chanje li pa anyen ak jis enprime soti peryòd la chanje. [Elèv] Mwen pa konprann ki jan ou konnen ke sa a se deplase pa - Ki kote ou te - >> Oh, regrèt. Nan tèt la isit la ou wè sa a liy ohai nan agiman lòd isit la, ki k ap pase yo dwe mo kle a. Se konsa, fondamantalman, w ap monte bisiklèt sou karaktè yo ki nan mo kle a. [Elèv] Se konsa, o yo pral déplacement menm bagay la tou - Se konsa, o koresponn ak yon sèten nonb nan alfabè an. [Elèv] Dwa. Men, kote ou te jwenn pati nan CS50 soti nan? Oh. Sa a nan GetString kote w ap tankou, "Ban m yon fisèl programme." [Elèv] Yo ap pral ba ou ki agiman chanjman nan ak Lè sa a, ou pral mande pou fisèl premye ou. >> Yeah. Se konsa, lè yo kouri pwogram nan, yo pwal santi yo gen ladan yo mo kle a nan agiman liy lòd yo lè yo kouri li. Lè sa a, yon fwa ou te tcheke yo ke yo te aktyèlman ban nou 1 ak pa plis, pa mwens, Lè sa a, w ap ale nan vit yo pou yon fisèl, di, "Ban m yon fisèl." Se konsa, ke se la li nan ka sa a yo te ban nou sa a ... se CS50! Se konsa, Lè sa a, w ap ale nan sèvi ak sa ki epi sèvi ak ohai ak repekte sou. Remake isit la nou sote sou chifreman peryòd yo, men an tèm de pozisyon nou pou ohai, youn nan pwochen nou itilize o. Nan ka sa a li nan yon ti jan pi difisil yo wè paske sa a, se 4, kidonk kite a kontinye yon ti jan. Jis bwa avèk m 'isit la. Lè sa a, nou gen mwen ak s, ki fè yo Lè sa a, tradui pa o epi h respektivman. Lè sa a, nou gen yon espas, e konsa Lè sa a, nou konnen ke nou pa yo ale nan chifre espas yo. Men, avi ke olye pou yo ale nan yon nan plas sa a dwa isit la, nou ap chifreman pa yon - Mwen pa konnen si ou ka wè ke - dwa isit la. Se konsa, li pa nan renmen ou aktyèlman Predetermined, di, o ale isit la, h ale isit la, yon ale isit la, mwen ale isit la, o, h, yon, mwen, o, h, yon, mwen. Ou pa fè sa. Ou sèlman chanjman pozisyon ou nan mo kle a lè ou konnen ke w ap aktyèlman yo pral chifreman yon lèt aktyèl. ki kalite fè sans? Oke. Se konsa, jis kèk rapèl. Ou vle asire w ke ou sèlman avanse a lèt la nan pwochen mo kle ou si pèsonaj la nan plentèk ou a se yon lèt. Se konsa, di nou ap nan o la. Nou remake ke pèsonaj la kap vini an, endèks la mwen nan plentèk a, se yon nimewo, pou egzanp. Lè sa a, nou pa avanse j, endèks la pou mo kle nou an, jouk nou rive jwenn yon lòt lèt. Yon fwa ankò, nou menm tou nou vle asire w ke ou antourant nan konmansman an nan mo kle a lè w ap nan fen li. Si ou wè la a nou ap nan mwen, youn nan pwochen te gen o. Se konsa, ou vle jwenn kèk fason pou yo te kapab antourant nan konmansman an nan mo kle ou chak fwa ke ou rive nan fen an. Se konsa, ankò, ki kalite operatè se itil nan ka sa a pou vlope nan jiwon l? Renmen nan konte a nan egzanp lan. [Elèv] pousan siyen an. >> Yeah, siy ki pousan, ki se modulo. Se konsa, modulo ap vini an sou la men isit la lè ou vle vlope sou endèks la nan ohai ou a. Ak jis yon allusion rapid: Eseye panse a vlope sou mo kle a yon ti jan tankou koupe nan konte, kote si gen nan 3 gwoup, moun nan 4yèm, nimewo yo ke yo te di se te 4 Mod 3, ki te 1. Se konsa, eseye epi panse a li nan fason sa a. Jan ou te wè nan fòmil la, nenpòt ki bò ou gen ci ak Lè sa a, pi men Lè sa a, kj, ou vle asire w ke w kenbe tras nan sa yo. Ou pa bezwen rele li mwen, ou pa bezwen rele li j, men ou vle asire w ke w kenbe tras nan pozisyon an ou nan nan plentèk ou kòm byen ke pozisyon sa ke w ap nan nan mo kle ou paske moun yo pa nesesèman pral fè menm bagay la. Se pa sèlman fè sa ki mo kle a - li te kapab fè yon longè konplètman diferan pase plentèk ou a. Epitou, plentèk ou a, gen nimewo ak karaktè, Se konsa li pa ale nan parfe matche ak moute ansanm. Wi. [Elèv] Èske gen yon fonksyon chanje ka? Èske ou ka chanje yon nan kapital A? >> Yeah, gen definitivman se. Ou ka tcheke deyò - Mwen kwè toupper li a, tout pawòl 1. Men, lè w ap eseye kalkile bagay sa yo e pou prezève tèks la, li pi bon fondamantalman yo te ka separe. Si li nan yon majuskul, lè sa a ou vle chanje sa a paske nan fòmil ou a, lè ou tounen gade dèyè ki jan nou dwe kalite ale interchangeable ant wout la ASCII pou reprezante chif yo ak aktyèl alfabetik endèks la, nou vle asire gen nan pral fè kèk kalite modèl ki w ap ale nan itilize. Yon lòt nòt sou modèl la, aktyèlman. W ap ale nan definitivman ka fè fas ak nimewo. Eseye pa sèvi ak nimewo majik, ki se yon egzanp sou style. Se konsa, di ou vle chak yon bagay chanjman tan pa renmen - Oke, kidonk allusion, yon lòt beke, se lè ou ap pral déplacement yon bagay pa yon sèten kantite, eseye pa reprezante ke pa yon nimewo aktyèl men pito eseye ak wè si ou ka sèvi ak valè a ASCII, ki pral kalite fè plis sans. Yon lòt sonje: Paske nou ap fè fas ak fòmil, menm si tf ou a pral kalite konnen ki sa ki modèl ou ka lè l sèvi avèk, pi bon yo nan kalite kòmantè ou a eksplike lojik la, renmen, "Mwen lè l sèvi avèk modèl sa a paske ..." ak kalite eksplike modèl la suksen nan kòmantè ou a. [Sa a te solisyon 2] Si pa gen okenn lòt kesyon, Lè sa a, mwen pral jis rete isit la pou yon ti tan. Bon chans ak pset ou 2: kriptografik ak mèsi pou vini yo. [Elèv] Mèsi poutèt ou. Mèsi >>. [Media Offline Intro]