>> [MIZIK jwe]
>> DAVID J. Malan: Tout dwa.
Sa a se CS50 ak sa a se kòmansman an nan Semèn 2.
Men, ou pral sonje ke plis pase koup ki sot pase a semèn,
nou ve yo te entwodwi òdinatè syans ak, nan vire, pwogramasyon.
>> Apre sa, nou te kòmanse istwa a pa fason pou Grafouyen, ke lang grafik
soti nan Laboratwa Media MIT'S.
Lè sa a, pi resamman, semèn pase a, te fè nou
prezante yon higher-- yon lang pi ba nan nivo li te ye
kòm C, yon bagay sa a, se piman textuelle.
Epi, tout bon, dènye fwa nou eksplore nan yon kontèks ki
yon kantite konsèp.
>> Sa a, sonje, te trè a premye pwogram nou te gade.
Apre sa, pwogram sa a, byen tou senpleman, simagri soti, "hello, nan lemonn."
Men, gen nan anpil sanblans majik pral sou.
Genyen # enkli sa a ak sa yo parantèz ang.
Genyen Int.
Genyen (san valè).
Genyen parantèz, aparèy òtopedik Curly, semi-kolon, ak anpil plis.
>> Se konsa, sonje ke nou prezante Scratch
pou nou te kapab, depreferans, wè sot pase ki sentaks, bagay la sa a, se vrèman pa
tout sa ki entelektyèlman enteresan, men byen bonè nan
se, absoliman, yon ti jan difisil yo vlope tèt ou alantou.
Epi, tout bon, yon sèl nan ki pi komen bagay byen bonè nan nan yon klas pwogram,
espesyalman pou moun mwens konfòtab, se debarase fristre pa
ak trebiche moute pa sèten Massachusetts Institute of Technology erè, nou pa mansyone erè lojik.
Se konsa, nan mitan objektif nou jodi a, aktyèlman, yo pral
gen nan ekipe ou ak kèk teknik pou rezoud pwoblèm pou konbyen
nan pi bon rezoud pwoblèm tèt yo nan fòm lan nan debogaj.
Men, ou pral sonje, tou, ki nan anviwònman ki nou prezante
te dènye fwa rele CS50 IDE.
Sa a se lojisyèl ki baze sou wèb ki pèmèt ou nan pwogram nan yon nwaj,
se konsa pale, pandan y ap kenbe tout nan ou dosye ansanm, menm jan nou ankò pral jodi a.
Apre sa, sonje ke nou revize sijè sa yo isit la,
nan mitan yo fonksyon, ak pasan, ak varyab, ak ekspresyon Boolean,
ak kondisyon.
Ak aktyèlman yon tijan plis ke nou tradui soti nan mond lan nan Scratch
nan mond lan nan C.
>> Men, bilding lan fondamantal blòk, se konsa pale,
te reyèlman toujou menm bagay semèn ki sot pase.
An reyalite, nou vrèman jis te gen yon diferan moso devinèt, si ou pral.
Olye pou yo ki koulè wouj violèt sove blòk, nou olye
te printf, ki se fonksyon sa a nan C ki
pèmèt ou enprime yon bagay ak fòma l 'sou ekran an.
Nou prezante CS50 nan Bibliyotèk, kote ou
gen kounye a nan get_char jete ou, ak get_int, ak get_string,
ak kèk lòt fonksyon kòm byen, via ki ou ka jwenn D '
soti nan pwòp klavye itilizatè a la.
Apre sa, nou menm tou nou te pran yon gade nan bagay sa yo tankou bouleen these-, ak Char,
ak doub, flote, int, long_long fisèl.
Apre sa, nan menm lòt kalite done nan C.
>> Nan lòt mo, lè ou deklare yon varyab nan magazen kèk valè,
oswa lè ou aplike yon fonksyon ki retounen kèk valè,
ou ka presize ki sa di ki kalite valè se sa ki.
Èske se yon fisèl, tankou yon sekans nan karaktè?
Èske se yon nimewo, tankou yon nonb antye relatif?
Èske se yon pwen k ap flote valè, oswa tankou an?
Se konsa, nan C, kontrèman ak grafouyen, nou aktyèlman yo te kòmanse presize ki kalite done
nou te retounen oswa lè l sèvi avèk.
>> Men, nan kou, nou menm tou li pran kouri nan kèk limit fondamantal nan informatique.
Ak nan patikilye, sa a ak lang C, sonje
ke nou te pran yon gade nan nonb antye relatif debòde, reyalite a
ke si ou gen sèlman yon fini kantite lajan nan memwa
oswa, espesyalman, yon PO fini nan Bits, ou ka sèlman konte tèlman wo.
Se konsa, nou gade egzanp sa a isit la kijan yon vann san preskripsyon nan yon avyon,,
aktyèlman, si kouri lontan ase ta debòde ak rezilta nan yon lojisyèl
yon vrè fizik erè potansyèl yo.
>> Nou menm tou nou gade k ap flote pwen enpresizyon, reyalite a
ke ak sèlman yon kantite fini nan Bits, si li nan 32 oswa 64,
ou ka sèlman presize nimewo anpil apre yon pwen desimal, apre yo fin kote ou
kòmanse jwenn enpresizyon.
Se konsa, pou egzanp, yon sèl-twazyèm nan la mond isit la, nan mond imen nou an,
nou konnen se jis yon nonb infini nan 3s apre pwen an desimal.
Men, yon òdinatè pa kapab nesesèman reprezante yon nonb infini nan nimewo
si ou sèlman pèmèt li kèk fini kantite lajan pou enfòmasyon.
>> Se konsa, pa sèlman te fè nou ekipe ou ak pi gwo pouvwa an tèm
nan ki jan ou ta ka eksprime tèt ou nan yon klavye an tèm de pwogram,
nou menm tou nou limite sa ou ka aktyèlman fè.
Ak tout bon, pinèz ak erè kapab leve soti nan kalite sa yo ki nan pwoblèm.
Ak tout bon, nan mitan sijè yo jodi a yo ale nan dwe sijè tankou debogaj
ak aktyèlman kap anba kapo a nan ki jan bagay sa yo Yo te vin entwodwi semèn pase a
yo aktyèlman aplike pou ke ou pi bon
konprann tou de kapasite yo nan ak limit yo nan yon lang tankou C.
>> Men, an reyalite, nou pral kale tounen kouch yo nan pi senp la nan estrikti done,
yon bagay yo rele yon etalaj, ki Grafouyen k ap pase yo rele yon "lis."
Li yon ti jan ti kras diferan nan yon kontèks sa.
Lè sa a, nou pral tou entwodui youn nan la premye nan pwoblèm domèn ki espesifik nou an
nan CS50, mond lan nan chifreman, atizay la nan eskalade
oswa nan chifreman enfòmasyon se konsa ke ou ka voye mesaj sekrè
ak dekode mesaj sekrè ant de moun, A ak B.
>> Se konsa, anvan nou tranzisyon ak sa yo ki mond nouvo,
kite a eseye ekipe ou ak kèk teknik ak kote ou ka elimine
oswa diminye omwen kèk nan fristrasyon yo
ke ou te pwobableman rankontre sou semèn ki sot pase a pou kont li.
An reyalite, devan yo nan w ap such-- kèk nan pwoblèm premye fwa ou nan C. Epi chans yo se,
si w ap tankou m ', premye fwa a ou eseye tape soti yon pwogram,
menm si ou panse lojikman pwogram nan se trè senp,
ou ta ka trè byen frape yon miray, ak du a a pa pral kolabore.
Fè oswa rezone pa pral ki aktyèlman fè òf ou yo.
>> Epi poukisa ke sa ta kapab?
Oke, kite la pran yon gade nan, petèt, yon pwogram ki senp.
Mwen pral ale pi devan epi sove sa a nan yon dosye fè espre rele buggy0.c,
paske mwen konnen li nan dwe defekte an davans.
Men, mwen pa ta ka reyalize ke si sa a se pwogram nan premye oubyen dezyèm oswa yon twazyèm
ke mwen aktyèlman fè tèt mwen.
Se konsa, mwen pral ale pi devan ak tape soti, int prensipal (san valè).
Lè sa a, andedan nan aparèy òtopedik Curly mwen, yon trè abitye ( "hello, world--
antislach, n ") - ak yon semi-kolon.
>> Mwen te sove dosye a.
Koulye a, mwen pral ale desann bò fennèt tèminal m '
ak kalite fè buggy0, paske, ankò, non an nan dosye a jodi a se buggy0.c.
Se konsa, mwen tape fè buggy0, Antre nan.
>> Epi, oh, bondye papa, sonje soti nan dènye fwa ke pa gen okenn mesaj erè se yon bon bagay.
Se konsa, pa gen okenn pwodiksyon se yon bon bagay.
Men, isit la mwen gen klèman kèk kantite erè.
>> Se konsa, liy lan premye nan pwodiksyon apre sezisman fè buggy0, sonje,
se pwodiksyon san patipri sil rezone a.
Anba kapo machin lan, se CS50 IDE configuré
yo sèvi ak yon pakèt antye nan opsyon ak sa a du
pou ke ou pa gen yo reflechi sou yo.
Epi sa a, tout sa ki premye liy vle di ke kòmanse ak sonnen.
>> Men, apre sa, pwoblèm sa yo kòmanse fè aparans yo.
Buggy0.c sou liy 3, pèsonaj 5, gen yon gwo, wouj erè.
Kisa sa ye?
Chal deklare fonksyon bibliyotèk printf ak kalite int (konstitisyon Char *,
...) [Werror-].
Mwen vle di, li trè byen vit vin trè Esoteric.
Epi sètènman, nan premye gade, nou pa t 'vle
atann ou a konprann nan antye nan ki mesaj.
Se konsa, youn nan leson yo pou jodi a ki pral
yo dwe pou yo eseye remake menm modèl yo, oswa bagay sa yo ki similè yo,
nan erè ou ta ka genyen rankontre nan tan lontan an.
Se konsa nou toumante apa sèlman mo sa yo ki gade yo konnen yo.
gwo, wouj Erè nan se byen klè senbolik nan yon bagay ke yo te sa ki mal.
>> chal deklare bibliyotèk fonksyon printf.
Se konsa, menm si mwen pa byen konprann sa chal deklare fonksyon bibliyotèk
vle di, pwoblèm nan siman gen rapò ak printf yon jan kanmenm.
Apre sa, sous la nan ke pwoblèm te fè ak deklare li.
>> Deklare yon fonksyon se mansyone li pou premye fwa.
Apre sa, nou itilize tèminoloji a semèn pase a nan deklare pwototip yon fonksyon a,
swa ak yon sèl liy nan tèt la nan ou pwòp dosye w la oubyen nan yon sa yo rele dosye header.
Ak nan sa dosye te fè nou di semèn pase a ke printf se quote,
unquote, te deklare?
Nan ki dosye se pwototip li yo?
>> Se konsa, si ou sonje, trè premye bagay la mwen tape, prèske chak pwogram dènye time--
ak aksidantèlman yon ti moman de sa te kòmanse sezisman moi te sa a isit lan-- youn
regle # enkli <stio-- pou opinyon / output-- dot h Ak tout bon,
si mwen kounye a sove sa a ranpli, mwen pral ale pi devan epi klè ekran m 'yo,
ki ou ka fè lè ou tape Klè, oswa ou ka kenbe kontwòl L,
jis klè fenèt tèminal ou jis elimine kèk dezord.
>> Mwen pral ale pi devan epi re-kalite fè buggy0, Antre nan.
Ak vwala, mwen toujou wè ke lontan lòd soti nan rezone,
men gen nan pa gen mesaj erè moman sa a.
Ak tout bon, si m 'fè ./buggy0, jis tankou dènye fwa,
kote dot vle di sa a anyè, koupe jis vle di,
isit la vini non an nan pwogram nan epi ke non nan pwogram lan se buggy0,
Antre, "hello, nan lemonn."
>> Koulye a, ki jan ou ta ka genyen rete ranmase grap lòj sa a solisyon
san yo pa nesesèman rekonèt kòm anpil mo
jan mwen te fè, sètènman, li te gen fè sa pou anpil ane?
Oke, reyalize pou chak pwoblèm nan premye seri, nou entwodui ou nan yon lòd
ke anplwaye pwòp CS50 nan te ekri rele help50.
Ak tout bon, C fè spesifikasyon pou pwoblèm nan mete ki di kòman yo sèvi ak sa a.
>> Men, help50 se esansyèlman yon pwogram ki anplwaye CS50 nan
te ekri ki pèmèt ou kouri yon lòd oswa kouri nan yon pwogram,
epi si ou pa konprann li yo pwodiksyon, yo pase pwodiksyon li nan help50,
nan ki pwen lojisyèl an ke anplwaye kou a nan te ekri
pral gade nan pwodiksyon pwogram ou an liy pa liy, pèsonaj pa karaktè.
Men, si nou, anplwaye a, rekonèt nan mesaj erè ke w ap fè eksperyans,
nou pral eseye fè nou ak kèk kesyon retorisyen, ak kèk konsèy,
anpil tankou yon TF oswa yon CA oswa tèt mwen ta fè an pèsòn nan lè biwo.
>> Se konsa, gade nan help50 si ou pa fè sa nesesèman rekonèt yon pwoblèm.
Men, pa konte sou li twòp kòm yon beki.
Sètènman eseye konprann li yo pwodiksyon ak Lè sa a aprann nan men li
se konsa ke yon sèl fwa oswa de fwa ou janm kouri help50 pou yon erè patikilye
mesaj.
Apre sa, ou ta dwe pi byen ekipe tèt ou
eseye figi konnen ki sa li aktyèlman se.
>> Se pou yo fè yon lòt isit la.
Kite m 'ale pi devan, ak nan yon lòt dosye nou pral rele buggy1.c sa a.
Ak nan sa a ranpli mwen se ale nan deliberately--
men pretann ke mwen pa fè sa konprann ki sa erè mwen te fè fè yo.
>> Mwen pral ale pi devan epi fè sa a men # enkli, depi mwen te
aprann leson mwen yo ki nan yon ti moman de sa.
Int prensipal (san valè), tankou anvan.
Lè sa a, nan isit la, mwen pral fè fisèl la - get_string.
Apre sa, sonje soti nan dènye fwa ki sa a vle di, hey, òdinatè,
ban m 'yon varyab, rele li s, ak fè ki kalite varyab sa yon afè
Se konsa, mwen ka magazen youn oswa plis mo nan li.
>> Lè sa a, sou bò dwat- bò nan siy ki egal
se get_string, ki se yon fonksyon nan bibliyotèk la CS50
ki fè egzakteman sa.
Li vin yon fonksyon ak Lè sa a men li de dwat a gòch.
Se konsa, sa siy egal pa vle di "Egal" kòm nou ta ka panse nan matematik.
Sa vle di plasman de dwat a gòch.
Se konsa, sa vle di, pran fisèl la soti nan itilizatè a ak magazen li andedan nan la.
>> Koulye a, kite a sèvi ak li.
Kite m 'ale pi devan kounye a epi kòm yon dezyèm liy, kite m 'ale pi devan epi di "alo" -
pa "mond,", men "hello,% s-- ki se kontneur nou an, vigil la,
ki se varyab nou an, ak Lè sa a yon semi-kolon.
Se konsa, si mwen pa t 'vis moute nan twòp isit la, sa a sanble kòrèk kòd.
>> Apre sa, ensten mwen an kounye a yo dwe konpile li.
Se dosye a rele buggy1.c.
Se konsa, mwen pral fè fè buggy1, Antre nan.
Apre sa, reprize-li, si gen se pa menm plis erè pase anvan.
Mwen vle di, gen nan plis mesaj erè li ta
sanble pase liy aktyèl nan pwogram sa a.
>> Men, Takeaway a isit la se, menm si w ap akable
ak de oswa twa oswa kat plis mesaj erè,
konsantre toujou sou trè a premye nan sa yo mesaj.
Gade nan tèt-pi yonn si l defile tounen moute kòm bezwen dwe.
Se konsa, isit la mwen tape fè buggy1.
Isit la nan ke pwodiksyon rezone jan yo espere.
>> Ak isit la nan premye erè a wouj.
Sèvi ak nan sekrè idantifyan fisèl, t 'mwen vle di estanda nan?
Se konsa, estanda nan se aktyèlman yon lòt bagay.
Li refere a nan nan itilizatè entènèt klavye, esansyèlman.
>> Men, sa a pa sa m 'vle di.
M te vle di fisèl, ak mwen vle di get_string.
Se konsa, sa se li ke mwen bliye fè tan sa a?
Ki sa ki nan manke moman sa a?
Mwen gen # enkli m 'yo, Se konsa, mwen gen aksè a printf.
>> Men, sa ki mwen pa gen aksè a jis ankò?
Oke, jis tankou dènye fwa, Mwen bezwen di du a
Sonnen sa fonksyon sa yo ye.
Get_string pa vini ak C. Ak nan patikilye, li
pa vini nan nan header ranpli,.
Li olye pou vini nan yon bagay anplwaye a te ekri,
ki se yon dosye diferan non men justesse yo te rele.
>> Se konsa, tou senpleman pa pandan l ajoute ke yon sèl liy nan sonje code-- soti nan dènye fwa
ke lè rezone kouri, li k ap pase fè yon gade nan tèt kòd m 'jouk anba,
gòch a dwat.
Li k ap pase a yon avi, oh, ou vle.
Kite m 'ale ak jwenn ke, tout kote li se sou sèvè a,
kopi epi kole li, esansyèlman, nan tèt la nan dosye pwòp ou a
se konsa ke nan pwen sa a nan istwa a, liy 1, rès la nan pwogram nan
ka, tout bon, sèvi ak nenpòt nan fonksyon yo ladan l ', nan mitan yo get_string.
Se konsa, mwen ale nan inyore rès la nan erè sa yo,
paske mwen, tout bon, sispèk ke se sèlman youn nan premye aktyèlman konte.
Men, mwen pral ale pi devan epi relance, apre ekonomize dosye mwen fè buggy1.
Apre sa, vwala, li te fè travay.
Men, si m 'fè ./buggy1 ak kalite nan, pou egzanp, Zamyla, mwen kounye a pral jwenn hello,
Zamyla, olye pou yo hello, nan lemonn.
>> Tout dwa.
Se konsa, takeaways yo isit la Lè sa a, yo dwe, yon sèl, eseye ranmase kòm anpil jan ou kapab
soti nan mesaj yo erè pou kont li, kap nan kèk nan mo sa yo rekonèt.
Anpeche sa, sèvi ak help50 pou chak pwoblèm nan mete spesifikasyon.
Men, anpeche sa, tou, toujou gade nan erè nan tèt sèlman, omwen
okòmansman, yo wè sa ki enfòmasyon li ta ka aktyèlman sede.
Men, li vire yo deyò nan menm plis fonctionnalités bati
nan bibliyotèk la CS50 ede ou byen bonè nan nan semès la
ak byen bonè nan nan pwogram figi konnen sa k ap pase sa ki mal.
Se konsa, kite a fè yon lòt egzanp isit la.
Mwen pral rele buggy2 sa a, ki, ankò, yo pral defekte soti
nan pòtay lavil la, pa konsepsyon.
>> Apre sa, mwen pral ale pi devan ak fè # enkli.
Lè sa a, mwen pral fè int prensipal (san valè).
Lè sa a, mwen pral fè yon pou riban.
Pou (int mwen _ 0.
mwen se mwens pase oswa egal a 10.
mwen ++, ak Lè sa an aparèy òtopedik Curly, mwen pral ekri ak lèt ​​detache soti jis yon senbòl hashtag isit la
ak yon karaktè liy nouvo.
>> Se konsa, entansyon m 'ak sa a pwogram se byen tou senpleman
repekte 10 fwa epi sou chak iterasyon
nan ki bouk chak fwa nan sik la,
enprime soti yon hashtag, yon hashtag, se yon hashtag.
Youn pou chak liy paske mwen gen liy nan nouvo a.
Apre sa, sonje ke nan pou riban, pou chak week-- dènye
epi ou pral jwenn plis abitye avèk sentaks la
lè l sèvi avèk l 'ak pratik anvan long-- sa a ki ban m '
yon varyab rele mwen epi li kouche l 'bay 0.
>> Sa a ogmantasyon mwen sou chak iterasyon pa 1.
Se konsa, mwen ale nan 1 rive nan 2 a 3.
Lè sa a, kondisyon sa a nan la mitan ant semi-kolon yo
vin tcheke sou chak iterasyon fè asire w ke nou yo toujou nan ranje.
Se konsa, mwen vle repekte 10 fwa, se konsa mwen gen sòt de trè entwitif jis
mete 10 kòm mwen mare anwo a.
>> E ankò, lè m 'kouri sa a, apre yo fin konpile l 'ak fè buggy2--
epi li konpile OK.
Se konsa, mwen pa gen yon sentaks erè moman sa a.
Kite m 'ale pi devan kounye a epi kouri buggy2, Antre nan.
Epi, koulye a woulo liv yo.
Ak kite m 'ogmante gwosè a nan fenèt la.
>> Mwen sanble yo gen 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11.
Se konsa, gen nan 11 hashtags, menm si Mwen byen klè mete 10 andedan nan sa a bouk.
Koulye a, kèk nan ou ta ka wè imedyatman sa erè a se paske, tout bon, sa a
se pa yon erè trè difisil yo fè.
Men, li la trè souvan te fè trè byen bonè nan.
>> Ki sa mwen vle nan pwen soti, menm si, se, ki jan mwen ta ka figi sa a soti?
Oke, li sanble ke Bibliyotèk la CS50 vini
ak pa sèlman get_string ak get_int ak get_float ak lòt fonksyon.
Li te tou vini ak yon fonksyon espesyal rele eprintf, oswa, erè printf.
Apre sa, li egziste sèlman fè li yon ti jan ti kras pi fasil pou ou
lè debogaj kòd ou a nan jis enprime yon mesaj erè sou ekran an
ak konnen ki kote li te soti nan.
>> Se konsa, pou egzanp, yon sèl bagay mwen ta ka fè isit la ak fonksyon sa a se sa a men
eprintf, ak Lè sa mwen pral ale pi devan epi di m se kounye a% mwen, antislach, n.
Men, mwen pral yo ploge nan valè a nan mwen.
Apre sa, moute tèt, paske sa a se nan bibliyotèk la CS50,
Mwen pral ale pi devan epi yo genyen ladan
Se konsa, mwen gen aksè a sa a fonksyon.
Men, kite a konsidere sa liy 9 se ta sipoze ap fè.
Mwen pral efase sa a evantyèlman.
Sa a pa gen anyen fè ak objektif toupatou m 'yo.
Men, eprintf, erè printf, se jis vle di , ban m 'kèk enfòmasyon dyagnostik.
Lè m 'kouri pwogram mwen, mwen vle wè sa a sou ekran an pou yon ti tan
kòm byen jis yo konprann sa k pase.
>> Epi, tout bon, sou chak iterasyon isit la nan liy 9
Mwen vle wè, ki sa ki valè a nan mwen?
Ki sa ki se valè a nan mwen?
Epi, èspere ke, mwen ta dwe sèlman wè ke mesaj, tou, 10 fwa.
>> Se pou m 'ale pi devan epi compile pwogram mwen,
jan mwen dwe fè nenpòt ki lè Mwen fè yon chanjman. ./buggy2.
Apre sa, now-- OK.
Genyen yon anpil plis pral sou.
Se pou m 'woulo liv moute nan yon fenèt menm pi gran.
>> Men, ou pral wè ke chak nan hashtags a se toujou enprime.
Men, nan ant chak nan yo se kounye a sa a pwodiksyon dyagnostik fòma jan sa a.
Non a nan pwogram m 'isit la se buggy2.
Non a nan dosye a se buggy2.c.
Nimewo a liy ki soti nan ki sa a te enprime se liy 9.
Lè sa a, a dwat a se sa ki nan mesaj erè ke mwen tann.
>> Ak sa ki nan bèl sou sa a se ke koulye a, mwen pa bezwen nesesèman konte
nan tèt mwen sa pwogram mwen ap travay.
Mwen ka wè ke sou la premye iterasyon mwen se 0,
Lè sa a, 1, Lè sa a, 2, Lè sa a, 3, Lè sa a, 4, Lè sa a, 5, Lè sa a, 6, Lè sa a, 7, Lè sa a, 8, Lè sa a, 9, Lè sa a,
10.
Se konsa, rete tann yon minit.
Ki sa ki k ap pase sou isit la?
Mwen toujou sanble yo dwe konte kòm gen entansyon jiska 10.
>> Men, kote m te kòmanse?
0, 1, 2, 3, 4, 5, 6, 7, 8, 9 10.
Se konsa, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10-- dwèt la 11yèm
se indicative de pwoblèm nan.
Mwen sanble yo gen konte mal nan bouk m 'yo.
Olye ke ale 10 itérations, Mwen kòmanse nan 0,
Mwen fini nan ak nan 10.
Men, paske se, tankou yon òdinatè, Mwen kòmanse konte nan 0,
Mwen ta dwe konte moute a, men se pa nan, 10.
>> Se konsa, ranje a, mwen evantyèlman reyalize isit la, se youn nan de bagay sa yo.
Mwen te kapab anpil tou senpleman di konte jiska mwens pase 10.
Se konsa, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ki se, tout bon, kòrèk,
menm si li son yon ti kras sa ki mal.
Oswa mwen ta ka fè mwens pase oswa egal a 9, toutotan m'a kòmanse nan 0.
Oswa si ou reyèlman pa renmen sa, ou ka konte moute nan 10 men kòmanse nan 1.
Men, ankò, sa a jis se pa sa ki komen.
Nan Programming kwake pa tèlman nan grafouyen
men nan pwogram nan C ak lòt lang yo,
tankou JavaScript ak Piton ak lòt moun, li nan
jis trè komen pou diskisyon nou an binè
jis kòmanse konte nan la pi ba nimewo ou kapab, ki se 0.
Tout dwa.
Se poutèt sa se eprintf.
Epi ankò, kounye a ke mwen te kalkile konnen mwen pwoblèm, ak mwen pral pou tounen nan 0
nan mwens pase 10, mwen pral yo ale nan ak efase eprintf.
>> Li pa ta dwe gen lè m ' bato kòd m 'oswa soumèt kòd m'
oswa montre li nan nenpòt lòt moun.
Li nan vrèman jis vle di yo dwe itilize pou yon ti tan.
Men koulye a, mwen te fiks sa a pwoblèm patikilye kòm byen.
>> Oke, kite la fè yon sèl plis egzanp isit la ki mwen pral fwe moute jan sa a.
Mwen pral ale pi devan epi # enkli. $ 50
Apre sa, mwen pral ale pi devan ak # enkli.
>> Men, mwen pral pou konsève pou sa a ranpli kòm buggy3.c.
Apre sa, mwen pral ale pi devan ak deklare int prensipal (san valè).
Lè sa a, andedan nan gen Mwen pral fè int mwen _ -
Mwen vle aplike yon pwogram ak yon get_negative_int.
Sa a se pa yon fonksyon ki egziste ankò.
Se konsa, nou ap ale nan aplike li nan jis yon moman.
Men, nou ap ale nan wè poukisa li nan buggy nan premye pas.
Ak yon lòt fwa mwen te vinn yon int soti nan itilizatè a,
Mwen jis ale nan enprime% mwen se yon negatif nonb antye relatif, antislach, n, vigil, mwen.
Nan lòt mo, tout mwen vle pwogram sa a fè
se jwenn yon int negatif soti nan itilizatè a ak Lè sa a enprime soti
ki sa yo ak sa yo se yon int negatif.
>> Koulye a, mwen bezwen aplike fonksyon sa a.
Se konsa, pita nan dosye mwen, mwen pral yo ale pi devan epi deklare yon fonksyon rele
get_negative_int (san valè) - epi nou pral tounen vin jwenn ki sa sa liy vle di ankò
nan yon n moment-- int; do-- fè n nan annapre printf se :.
Lè sa a, mwen pral fè n - get_int, ak fè sa n pandan y ap gen plis pouvwa pase 0.
Lè sa a, retounen n ;.
>> Se konsa, gen nan yon anpil ap pase nan sa a, men pa youn nan ki nou pa t '
gade nan semèn pase a, omwen yon ti tan.
Se konsa, sou liy 10 isit la mwen te deklare yon fonksyon rele get_negative_int,
epi mwen te mete (san valè), nan parantèz, rezon ki fè la ke yo te sa a
pa pran yon D '.
Mwen pa pase anyen sa a fonksyon.
Mwen jis ap resevwa yon bagay tounen soti nan li.
>> Apre sa, sa m ap espere jwenn tounen se yon nonb antye relatif.
Pa gen okenn kalite done nan C rele negative_int.
Li nan jis int, se konsa li k ap pase yo dwe sou nou a asire w
ke valè a sa a, se aktyèlman Retounen se pa sèlman yon int
men tou se negatif.
>> Sou liy 12 Mwen deklare yon varyab rele n ak fè li nan kalite int.
Lè sa a, nan liy 13 a 18 mwen se fè yon bagay pandan y ap yon bagay ki vre.
Mwen pral pi devan epi enprime N se, se kolon, ak Lè sa a yon espas,
tankou yon èd memwa pou itilizatè a.
>> Mwen Lè sa a, rele get_int ak estoke valè sa yo rele retounen li yo
nan ki n varyab.
Men, mwen pral kontinye ap fè sa a n pandan y ap gen plis pouvwa pase 0.
Nan lòt mo, si itilizatè a ki ban m 'yon int e ke nonb ki se pi gran pase 0,
èrgo, pozitif, mwen pral jis kenbe reprompting itilizatè a,
kenbe reprompting, pa fòse yo kolabore ak ban m 'yon int negatif.
>> Ak yon lòt fwa n se aktyèlman negative-- ta kwè itilizatè a finalman kalite -50,
Lè sa a, sa a riban pandan y ap se pa vre paske -50 pa janm pi grannèg pase 0.
Se konsa, nou kraze soti nan ki bouk lojikman epi retounen n.
>> Men, gen nan yon lòt bagay mwen dwe fè.
Apre sa, mwen ka senpleman fè sa pa w kopye e kole
yon sèl liy nan kòd nan tèt la nan dosye a.
Mwen bezwen anseye rezone, oswa pwomès yo rezone,
klèman ke mwen pral, tout bon, ale epi mete an aplikasyon
fonksyon sa a get_negative_int.
Li ta ka jis pou pi ba nan dosye a.
Yon fwa ankò, sonje ke rezone li bagay anwo jouk anba,
gòch a dwat, se konsa ou pa kapab rele yon fonksyon si rezone
pa konnen li k ap pase yo egziste.
>> Koulye a, malerezman, pwogram sa a, tankou kèk nan ou ta ka remake gen,
se deja buggy.
Kite m 'ale pi devan epi fè buggy3.
Li compiles, se konsa pwoblèm mwen kounye a se pa yon erè sentaks, tankou yon erè textuelle,
li la aktyèlman pral gen yon lojik erè ki mwen te fè espre
te fè kòm yon opòtinite yo etap nan sa k ap pase sou.
>> Mwen pral ale pi devan kounye a epi yo kouri buggy3.
Apre sa, mwen pral ale pi devan epi pa kolabore.
Mwen pral bay li nimewo a 1.
Li pa t 'tankou li, se konsa li nan pouse m 'ankò.
>> Kouman sou 2?
3?
50?
Pa gen yonn nan moun ap travay.
Kouman sou -50?
Ak pwogram nan sanble nan travay.
>> Kite m 'eseye li yon fwa plis.
Kite m 'eseye -1, sanble nan travay.
Kite m 'eseye -2, sanble nan travay.
Kite m 'eseye 0.
Huh, sa se kòrèk.
Koulye a, nou ap ke yo te yon ti kras pedant isit la.
Men, li la, tout bon, ka a ke 0 ni pozitif ni negatif.
Se konsa, lefèt ke pwogram mwen an se ki di ke 0 se yon nonb antye relatif negatif,
sa a, se pa teknikman kòrèk.
>> Koulye a, poukisa li fè sa?
Oke, li ta kapab evidan.
Epi, tout bon, pwogram nan se vle di yo dwe san patipri ki senp
se konsa nou gen yon bagay yo eksplore.
>> Men, kite a prezante yon debogaj twazyèm teknik isit la yo rele debug50.
Se konsa, sa a se yon pwogram ke nou te jis te kreye
ane rele sa a debug50 ki pral pèmèt ou
yo sèvi ak sa ki rele yon bati-an grafik debugjeur nan CS50 IDE.
Ak yon debugjeur se jis yon pwogram ki jeneralman pèmèt ou kouri pwogram ou an
men etap pa etap pa etap, liy pa liy pa liy, s'arrête, poking
alantou li, gade nan varyab pou ke pwogram lan pa jis kònen sot pase ou
epi byen vit enprime yon bagay oswa ou pa enprime yon bagay.
Li ba ou yon opòtinite, nan vitès imen, yo kominike avèk li.
>> Men, fè sa, ou tou senpleman fè sa ki annapre yo.
Apre konpile kòd ou a, ki mwen deja te fè, buggy3,
ou ale pi devan epi kouri debug50 ./buggy.
Se konsa, anpil tankou help50 gen ou kouri help50 ak Lè sa a lòd la,
debug50 gen ou kouri debug50 ak Lè sa a, non an nan lòd la.
>> Koulye a, gade sa k ap pase sou ekran m 'yo, sou bò men dwat-ou an patikilye.
Lè m 'frape Run, tout nan a toudenkou panèl sa a men dwat-ou
ouvè sou ekran an.
Apre sa, nan yon anpil pral sou nan premye gade.
Men, gen nan pa twò anpil enkyete sou ankò.
>> Sa a se ki montre m 'tou sa ki k ap pase sou andedan nan pwogram mwen
kounye a epi atravè sa yo bouton moute tèt se lè sa a
sa ki pèmèt m 'nan etap nan kòd m' finalman etap pa etap pa etap.
Men, pa jis ankò.
Avi sa ki rive.
Nan fenèt tèminal m ' Mwen te pouse pou n.
Men, mwen pral ale pi devan epi kolabore tan sa a ak kalite nan -1.
Apre sa, kwake yon ti kras cryptically, -1 se yon nonb antye relatif negatif, jan yo espere.
>> Lè sa a, pitit quitté ak sitiyasyon 0 GDBserver sòti.
Gdb, GNU Debugjeur, se non an nan lojisyèl an kache
ki aplike debugjeur sa a.
Men, tou sa vrèman vle di, debugjeur a al fè wout yo paske pwogram mwen kite
ak tout te byen.
Si m 'vle se vre wi: debug pwogram m' yo, Mwen gen yo preemptively di debug50,
kote fè Mwen vle kòmanse kite nan kòd mwen an?
>> E petèt wout la pi senp fè sa se jan sa a.
Si m 'hover sou la bon marse nan editè m 'isit la,
se konsa vrèman jis nan ankadre a isit la, nan kite nan nimewo a liy,
remake ke si mwen jis klike yon fwa, mwen mete yon ti kras dot wouj.
Epi sa ti kras dot wouj, tankou yon siy sispann, vle di, hey,
debug50, ekzekisyon pran yon poz nan kòd m ' dwa gen lè m 'kouri pwogram sa a.
>> Se konsa nou fè sa.
Kite m 'ale pi devan epi kouri pwogram mwen ankò ak debug50 ./buggy3, Antre nan.
Epi, koulye a, avi, yon bagay diferan te rive fèt.
Mwen pa ke yo te pouse ankò nan fenèt tèminal m '
pou anyen, paske mwen pa gen vinn gen anyen ankò nan pwogram m 'yo.
Remake sou liy 8 ki se kounye a make,
ak gen nan yon ti kras flèch nan bò gòch di, se ou ki Sarepta isit la.
Liy sa a nan kòd, liy 8, pa gen ankò egzekite.
>> Ak sa ki nan kirye, si mwen gade sou isit la sou bò men dwat-ou,
remake ke mwen se yon lokal varyab, lokal nan sans
ke li nan andedan fonksyon aktyèl la.
Ak valè li yo, aparamman pa default, ak sòt de yon bon, se 0.
Men, mwen pa t 'tape 0.
Sa jis k ap pase yo li yo valè default nan moman an.
>> Se pou m 'ale pi devan epi fè sa kounye a.
Kite m 'ale pi devan epi sou tèt la dwa isit la, mwen se
pral ale pi devan ak klike sou sa a icon premye ki
vle di etap sou ki vle di pa sote li men etap sou liy sa a nan kòd,
egzekite li sou wout la.
>> Epi, koulye a, remake, mwen èd memwa te jis chanje.
Poukisa se sa?
Mwen te di debug50, kouri liy sa a nan kòd.
Ki sa ki liy sa a nan kòd fè?
Envit m 'pou yon int.
OK.
Kite m 'kolabore.
Kite m 'ale pi devan kounye a epi tape -1, Antre nan.
Epi, koulye a remake sa te chanje.
Sou bò men dwat-ou, varyab lokal mwen mwen
se endike tankou se te -1 kounye a.
Apre sa, li la toujou nan kalite int.
>> Apre sa, avi, tou, mwen sa yo rele rele pil, kote mwen t 'pran yon poz?
Nou pral pale plis sou sa a nan tan kap vini an.
Men, chemine a rele jis vle di sa fonksyon se kounye a an mouvman.
Dwa koulye a li nan jis prensipal la.
E yo gen dwa kounye a sèlman lokal la varyab se mwen ki gen yon valè nan 1.
>> Lè m 'finalman etap sou liy sa a isit la, ak sa icon menm nan tèt dwat,
-1 Se yon nonb antye relatif negatif.
Koulye a, li la s'arrête sou ki atèl Curly.
Se pou nou kite l fè sa li yo.
Mwen etap sou ki liy, ak vwala.
>> Se konsa, pa tout sa ki fò anpil Enstriktif ankò,
men li t 'kite m' pran yon poz ak panse nan lojikman
sa pwogram sa a ap fè.
Men, sa pa te ka a inègza.
Se pou yo fè sa a ankò jan sa a.
>> Mwen pral kite ki breakpoint sou liy 8 ak dot wouj la.
Mwen pral relance debug50.
Li nan otomatikman Sarepta isit la.
Men, tan sa a, olye pou yo kite sou liy sa a,
kite m 'aktyèlman ale andedan nan get_negative_int ak figi soti,
poukisa li aksepte 0 kòm yon repons valab?
>> Se konsa, olye pou yo klike Etap Plis pase.
Mwen pral ale pi devan , epi klike Etap Nan.
Apre sa, remake ke liy lan 8 sa a, se kounye a make kounye a toudenkou
vin liy 17.
>> Koulye a, li pa ki debugjeur a te sote liy 14 ak 15 ak 16.
Li nan jis pa gen anyen montre w la.
Moun sa yo ki yo se jis deklare varyab, ak Lè sa a gen nan pawòl Bondye a Èske
ak Lè sa a yon louvri Curly atèl.
sèlman nan liy fonksyonèl sa a, se juicy vrèman se yon sèl sa a isit la, 17.
Epi sa a, kote nou te Sarepta otomatikman.
>> Se konsa, printf ( "n.is:") ;, se konsa ki pa te rive fèt ankò.
Se konsa, kite yo ale pi devan, epi klike Etap Plis pase.
Koulye a, èd memwa mwen, tout bon, chanje a ( "n se:").
Koulye a, get_int, mwen pa pwal bezwen deranje kite nan,
paske ke fonksyon te fèt pa CS50 nan bibliyotèk la.
Li nan prezimableman kòrèk.
>> Se konsa, mwen pral ale pi devan ak sòt de kolabore pa bay li
yon int, men se pa yon int negatif.
Se pou m 'ale pi devan epi frape 0.
Epi, koulye a sa k ap pase isit la lè m 'jwenn desann nan liy 21?
Mwen pa te iteratif ankò.
Mwen pa sanble yo dwe kole nan ki riban.
Nan lòt mo, sa a jòn ba pa t 'kenbe prale alantou li,
ak toupatou nan, ak toupatou nan.
>> Koulye a, poukisa se sa?
Oke, n, ki sa ki N kounye a?
Mwen ka gade nan lokal la varyab nan debugjeur a.
n se 0.
Tout dwa, sa ki te kondisyon mwen an?
>> 20-- liy 20 se, byen, 0 se pi gran pase 0.
Sa se pa vre.
0 pa janm pi grannèg pase 0.
Se konsa, m 'te separe soti nan sa a.
>> Se konsa, Se poutèt sa sou liy 21, si mwen aktyèlman kontinye,
Mwen pral retounen 0, menm si mwen ta dwe rejte 0
yo pa aktyèlman ke yo te negatif.
Koulye a, mwen pa fè sa vrèman menm pran swen sou debugjeur a.
Te li, mwen pa bezwen konnen ki sa plis ki pwal sou.
>> Se konsa, mwen pral ale pi devan ak jis klike sou bouton an Jwe,
epi kite sa a fini yo.
Koulye a, mwen te reyalize ke mwen ensèk se aparamman sou liy 20.
Sa a erè ki lojik mwen.
>> Se konsa, sa fè mwen vle pou fè pou chanje sa a?
Si pwoblèm nan se ke mwen pa pwan 0, li nan jis yon erè lojik.
Apre sa, mwen ka di pandan y ap n se pi gran pase oswa egal a 0,
kenbe pouse itilizatè a ankò e ankò.
>> Se konsa, ankò, senp erè, petèt menm evidan lè ou te wè m '
ekri li jis yon kèk minit de sa.
Men, Takeaway a isit la se ke ak dbug 50,
ak debogaj lojisyèl plis jeneralman,
ou gen sa a nouvo pouvwa jwenn yo mache nan Kòd pwòp ou a, gade
via ki panèl men dwat sa valè varyab ou yo.
Se konsa, ou pa fè sa nesesèman gen yo sèvi ak yon bagay
tankou ou eprintf ekri ak lèt ​​detache valè sa yo.
Ou ka aktyèlman wè yo vizyèlman sou ekran an.
>> Koulye a, pi lwen pase sa a, li la vo anyen ke gen nan yon lòt teknik sa a, se
aktyèlman super komen.
Epi ou ta ka mande poukisa sa a ti kras Te nèg isit la te chita sou sèn nan.
Se konsa, gen nan teknik sa a, jeneralman li te ye tankou kawotchou kanna debogaj,
ki reyèlman se jis yon kontra Bondye nan lefèt
ki souvan lè pwogramasyon ap ekri kòd,
yo ap pa nesesèman kolabore ak lòt moun,
oswa k ap travay nan yon anviwònman pataje.
>> Yo ap sòt de nan kay la.
Petèt li nan anreta nan mitan lannwit.
Yo ap eseye figi soti kèk ensèk nan kòd yo.
Apre sa, yo ap jis pa wè li.
>> Apre sa, gen nan pa gen kolokasyon.
Pa gen okenn TF.
Pa gen okenn CA alantou.
Tout sa yo gen sou etajè yo se sa a ducky kawotchou ti kras.
>> Se konsa, kanna kawotchou debogaj se jis envitasyon sa a
panse a yon bagay tankou komik tankou sa a tankou yon bèt reyèl,
ak aktyèlman mache nan kòd ou a vèbalman sa a objè inanime.
Se konsa, pou egzanp, si sa a se egzanp mwen isit lan--
ak sonje ke pi bonè pwoblèm nan te sa a,
si mwen efase sa a liy premye nan kòd, ak mwen ale pi devan epi fè buggy 0 ankò,
sonje ke mwen te gen sa yo erè mesaj isit la.
Se konsa, lide a isit la, ridikil si mwen santi nan moman sa a fè sa piblikman,
se ke erè.
>> OK, se konsa pwoblèm mwen se ke mwen te chal deklare yon fonksyon bibliyotèk.
Epi sa fonksyon bibliyotèk se printf.
Declare-- OK, deklare fè m sonje nan prototip.
>> Sa vle di mwen bezwen aktyèlman di du a davans sa ki
fonksyon an sanble.
Tann yon minit.
Mwen pa t 'gen estanda io.h.
Mèsi anpil.
>> Se konsa, jis pwosesis sa a de- ou pa bezwen gen aktyèlman yon kanna.
Men, sa a lide sou mache tèt ou nan Kòd pwòp ou a
pou ke ou menm tande tèt ou, pou ke ou
reyalize omisyon nan pwòp ou a remak, se jeneralman lide la.
>> Epi, petèt pi plis lojikman, pa konsa pou sa anpil ak sa gen yon sèl men patisipe plis nan
egzanp nou jis te fè nan buggy 3.c, ou ta ka mache tèt ou nan li
jan sa a.
Se konsa, tout dwa, kawotchou ducky, ddb, si ou pral.
Isit la nou gen nan fonksyon prensipal m 'yo, M ap rele jwenn Int negatif.
>> Apre sa, mwen ap resevwa valè a retounen.
Mwen estoke l 'sou bò men gòch sou liy 8 nan yon varyab rele mwen.
OK, men rete tann, ki jan te fè ki jwenn ke valè?
Kite m 'gade nan fonksyon an nan liy 12.
>> Nan liy 12, nou gen jwenn int negatif.
pa pran okenn entrain, retounen yon int, OK.
Mwen deklare sou liy 14 yon n varyab.
Li nan ale nan magazen yon nonb antye relatif.
Sa a ki sa mwen vle.
>> Se konsa, fè sa ki annapre yo pandan y ap n is-- kite m 'defèt sa ranje a mwen deja fè fè yo.
Se konsa, pandan n pi gran pase 0, enprime soti n se, se OK.
Lè sa a, rele jwenn Int estoke nan n.
Lè sa a, tcheke si n se 0, n se not-- gen li ye.
Se konsa, ankò, ou pa fè sa bezwen kanna a vrè.
Men, jis mache nan tèt ou kòd ou a kòm yon fè egzèsis entelektyèl
pral souvan ede w reyalize sa k ap pase sou li a,
kòm opoze a jis fè yon bagay tankou sa a, fikse nan ekran an,
epi yo pa pale tèt ou nan li, ki onètman se pa
prèske kòm yon teknik efikas.
Se konsa, gen ou genyen li, yon kantite diferan teknik
pou aktyèlman debogaj kòd ou a ak repwòch, nan tout ki
ta dwe zouti nan bwat zouti ou se konsa ke ou pa anreta nan mitan lannwit,
espesyalman, w ap nan manje a koulwa, oswa nan lè biwo louvri,
frape tèt ou kont la miray, ap eseye rezoud kèk pwoblèm.
Reyalize ke gen yo se zouti lojisyèl.
Gen kawotchou zouti kanna.
Apre sa, nan yon baton antye nan sipòte ap tann yo prete yon men.
>> Koulye a, yon mo sou pwoblèm nan kouche, ak sou sa n ap tann ou
jwenn soti nan yo, ak ki jan nou ale sou evalye.
Per progranm kou a nan, CS50 nan aparèy televisyon HD pwoblèm
yo evalye sou kat aks prensipal, se konsa speak-- sijè ki abòde, Correct, konsepsyon,
ak style.
Apre sa, sijè ki abòde jis vle di konbyen lajan nan moso nan ou mòde la?
Ki jan anpil nan yon pwoblèm ou te eseye?
Ki sa ki nivo nan efò ou manifeste?
>> Correct se, fè travay nan pwogram kòm li nan sipoze pou chak CS50 spesifikasyon
lè ou bay sèten entrain oswa sèten rezilta vini tounen?
Design se pi subjectif an nan yo.
Lè li nan yon sèl la ki pral pran pi long la yo aprann
ak pi long la yo anseye, nan byen lwen tèlman kòm li klou desann nan,
ki jan byen ekri se kòd ou a?
>> Li nan yon sèl bagay yo jis enprime repons ki kòrèk la rezilta oswa retounen valè yo dwat.
Men, n'ap fè li kòm avèk efikasite ke posib?
Èske ou fè li divize ak konkeri, oswa binè
rechèch jan nou pral byento wè ke nou te fè de semèn de sa ak liv la telefòn?
Èske gen pi bon fason yo rezoud nan pwoblèm pase ou genyen kounye a isit la?
Sa a yon opòtinite pou pi bon konsepsyon.
>> Lè sa a, ki jan style-- bèl se kòd ou a?
Ou ap remake ke mwen se trè patikilye sou indenting kòd m ',
epi asire varyab mwen yo rezonab yo te rele. n,
ti tan kout, se yon non bon pou yon Nimewo, mwen pou yon nonb antye relatif konte,
a pou yon fisèl.
Apre sa, nou ka gen ankò varyab non style.
Style se jis ki jan bon kòd ou a gade?
Ak ki jan lizib sa li ye?
>> Ak sou tan, sa TAS ou ak TFs pral fè nan kou a
se ofri ou ak ki kalite kalitatif fidbak
pou ke ou jwenn pi bon nan sa yo divès aspè.
Lè an tèm de ki jan nou evalye chak nan aks sa yo,
li nan en ak trè kèk bokit pou ke ou, jeneralman,
jwenn yon sans de ki jan byen w ap fè.
Epi, tout bon, si ou resevwa yon nòt sou nenpòt nan moun sa Correct axes--, konsepsyon
ak style especially-- ladan nimewo pral jeneralman gen ant 1 ak 5.
Epi, literalman, si w ap vin 3 a nan kòmansman an nan semès la,
sa a se yon bagay trè bon.
Sa vle di gen nan toujou plas pou amelyorasyon,
ki ou ta espere pou nan pran yon klas la pou premye fwa a.
Genyen èspere ke kèk ti jan nan plafon yo ki ou ap aspiran yo rive.
Se konsa, ap resevwa sou 3 a moso yo pi bonè,
si se pa nan kèk 2 ak 4 an, se, tout bon, yon bon bagay.
Li nan byen nan ranje, byen nan atann.
>> Men, si tèt ou se kous, rete tann yon minit, twa nan senk.
Sa ki nan vrèman yon soti 6 nan 10.
Sa a 60%.
Bondye mwen, sa a, se yon F.
>> Li pa.
Li pa, an reyalite, sa.
Olye de sa, li nan yon opòtinite yo amelyore sou kou a nan semès la.
Men, si w ap vin kèk Poors, sa yo se yon opòtinite
pran avantaj de èdtan nan biwo a, sètènman seksyon ak lòt resous.
>> Pi bon se yon opòtinite, reyèlman, yo dwe fyè de jis ki jan lwen ou te
vini sou kou a nan semès la.
Se konsa, reyalize, si pa gen anyen lòt moun, twa se yon bon bagay.
Epi, se pèmèt plas pou kwasans sou tan.
>> Ki di kòman moun aks yo filaplon, pli reyèlman w ap
pral depanse pi fò nan tan ou ap resevwa bagay sa yo travay, se pou kont li kòrèkteman.
Se konsa, Correct gen tandans fè dwe filaplon pi plis nan, menm jan ak
sa a faktè miltiplikatif nan twa.
Design enpòtan tou, men yon bagay ke ou pa fè sa nesesèman
pase tout moun ki èdtan sou ap eseye jwenn bagay sa yo jis nan travay.
>> Se konsa, li nan filaplon yon ti kras plis dousman.
Lè sa a, style se filaplon pi piti a.
Menm si li nan pa gen mwens enpòtan fondamantalman,
li nan jis, petèt, nan pi fasil bagay yo fè sa ki dwat,
miman egzanp yo nou fè nan konferans ak seksyon,
ak bagay sa yo joliman utilize, ak kòmante,
ak pou fè se nan mitan pi fasil la bagay yo fè epi pou yo jwenn dwa.
Se konsa, jan sa yo, reyalize ki sa yo se pwen
ki relativman fasil atrab.
>> Epi, koulye a yon mo sou sa a men onètete akademik yo.
Se konsa, pou chak nan la kou progranm, ou pral wè
ke kou a gen byen yon ti jan nan lang alantou sa a.
Apre sa, kou a pran pwoblèm nan de onètete akademik byen oserye.
>> Nou gen distenksyon an, pou pi bon oswa pou vin pi mal,
yo ki te voye chak ane pi plis elèv yo pou aksyon disiplinè
pase sa pifò nenpòt lòt kou, se mwen menm ki okouran de.
Sa a se pa nesesèman indicative de lefèt
ki CS elèv yo, oswa elèv CS50, se nenpòt ki mwens onèt pase kamarad klas ou yo.
Men, reyalite a ke nan ka sa mond, elektwonikman, nou jis
gen teknolojik vle di nan detekte sa a.
>> Li se enpòtan yo ban nou pou etidye ekite Règleman nan tout klas la
ke nou fè detekte sa a, ak ogmante pwoblèm nan lè nou wè bagay sa yo.
Epi jis nan penti yon foto, ak reyèlman ede yon bagay tankou koule sa a nan,
sa yo, se nimewo sa yo nan elèv yo plis pase 10 ane ki sot pase
sa yo ki te te enplike nan kèk pwoblèm sa yo de onètete akademik,
ak kèk 32 elèv yo soti nan sezon otòn 2015, ki
sa a vle di ke nou pran pwoblèm nan trè seryezman.
Epi, finalman, nimewo sa yo konpoze, pi resamman, apeprè 3%, 4% oswa konsa
nan klas la.
>> Se konsa, pou majorite a super elèv li sanble ke liy ki yo klè.
Men, kenbe sa a nan lide, patikilyèman an reta
nan mitan lannwit lè gen difikilte nan kèk solisyon a yon seri pwoblèm,
ke gen fòmil pou jwenn tèt ou pi bon
sipò pase ou ta ka panse, menm nan ki èdtan.
Reyalize ke lè nou resevwa soumèt elèv, nou travèse
konpare chak soumèt ane sa a kont chak soumèt ane pase a,
kont chak soumèt soti nan 2007, epi depi, gade nan, kòm byen,
Kòd zarchiv sou entènèt, fowòm diskisyon, sit travay.
Apre sa, nou mansyone sa a, reyèlman, tout pou dedomajman pou la
nan divilgasyon konplè, ke si yon lòt moun ka jwenn li sou entènèt,
sètènman, se konsa nou ka kou a.
Men, reyèlman, Lespri Bondye a nan kou a klou desann
kloz sa a nan progranm la.
Li reyèlman se jis, se pou ki rezonab.
>> Men, si nou te gen nan elabore sou sa ak jis yon ti jan pi plis ak lang,
reyalize ke sans nan tout travay ke ou soumèt a kou sa a
dwe pwòp ou yo.
Men, nan sa, gen sètènman opòtinite, ak ankourajman,
ak pedagojik valè nan Jezi vire bò others-- tèt mwen, TFs a, CAs a,
TAS yo, ak lòt moun nan klas la, pou sipò, se pou kont li zanmi
ak kolok ki te etidye CS ak pwogramasyon anvan.
Se konsa, gen yon alokasyon pou sa.
Apre sa, règ la an jeneral nan gwo pous se sa a men lè mande pou èd,
ou ka montre kòd ou a bay lòt moun, men ou pa kapab gade leur.
Se konsa, menm si w ap nan lè biwo louvri, oswa nan sal la D, oswa yon lòt kote
ap travay sou kèk seri moso, k ap travay ansanm ak yon zanmi, ki
se totalman amann, nan la fen nan jounen an travay ou
ta dwe finalman apatni a chak nan nou respektivman, epi yo pa
gen kèk efò kolaborasyon, eksepte pou pwojè final la kote
li nan pèmèt, epi ankouraje.
>> Reyalize ke si ou se gen difikilte nan yon bagay
ak zanmi ou jis k ap pase yo dwe pi bon nan sa a lè sa a ou,
oswa pi bon nan ke pwoblèm pase ou, oswa yon ti kras pi lwen devan yo pase ou,
li nan totalman rezonab yo vire ak zanmi ou ak di, hey,
ou lide gade nan kòd m 'isit la, ede m 'tach sa pwoblèm mwen an se?
Epi, èspere ke, nan la enterè nan pedagojik valè
ke zanmi pa fè sa jis di, o, fè sa, men pito,
ki sa ou manke sou liy 6, oswa yon bagay tankou sa?
Men, solisyon an se pa pou zanmi a kap vini jwenn ou
yo di, o, byen, isit la, kite m 'rale sa a moute, epi montre solisyon m 'devan ou.
Se konsa, ki se liy lan.
Ou montre Kòd ou a lòt moun, men ou pa ka
wè sa yo fè, sijè a lòt la kontrent nan progranm kou a.
>> Se konsa, kenbe nan tèt ou sa a sa yo rele kloz regrèt
nan progranm kou a nan kòm byen, ke si ou komèt kèk zak ki
se pa rezonab, men pote l 'bay atansyon a nan tèt kou a nan
nan lespas 72 èdtan, kou a ka enpoze sanksyon lokal ki
ka fèt ann satisfezan oswa li pap resevwa nòt pou travay la soumèt.
Men, kou a pa pral refere a gen pwoblèm pou aksyon disiplinè pi lwen,
eksepte nan ka repete zak.
Nan lòt mo, si ou fè fè kèk estipid, espesyalman byen ta lannwit, desizyon
ki nan denmen maten oubyen de jou pita, ou reveye ak reyalize,
sa ki te mwen panse?
Ou fè nan CS50 gen yon priz pou repare-ke pwoblèm
ak jan mèt jiska li, se konsa ke nou va kontre ou mwatye epi fè fas
ak li nan yon kesyon ki se tou de edikasyon ak bonjan pou ou,
men yo toujou pinitif nan kèk fason.
Epi, koulye a, yo pran kwen nan koupe, sa a.
>> [VIDEO lèktur]
>> [MIZIK jwe]
>> [FEN lèktur]
DAVID J. Malan: Tout dwa, nou yo tounen.
Epi, koulye a nou gade nan youn nan la premye nan domèn reyèl mond nou an
nan CS50, atizay la nan chifreman, atizay la nan voye ak resevwa
mesaj sekrè, chiffres mesaj si ou vle,
ki kapab fèt sèlman dechifre si ou gen kèk engredyan kle ki moun k la gen
kòm byen.
Se konsa, yo motive sa a nou pral pran yon gade nan sa a bagay isit la,
ki se yon egzanp yon sekrè bag dekodaj ki
kapab itilize yo nan lòd yo konnen ki ki sa yon komisyon aktyèlman se.
An reyalite, li tounen nan la jou nan lekòl klas,
si ou te janm voye mesaj sekrè kèk zanmi oswa kèk kraze nan klas la,
ou ta ka gen te panse ou te ke yo te entelijan
pa sou moso ou nan chanje papye, tankou, A jiska B, ak B nan C, ak C rive nan D,
ak pou fè.
Men, ou te aktyèlman chifreman enfòmasyon ou, menm
si li te yon ti kras trivial, pa t ' ki difisil pou pwofesè a reyalize,
byen, si ou jis chanje B nan A ak C rive nan B,
ou aktyèlman konnen sa mesaj la te,
men ou te nan chifreman enfòmasyon.
>> Ou te jis ap fè li tou senpleman, anpil tankou Ralphie isit la
nan yon fim pi popilè ki jwe bèl anpil nauseum anons chak sezon fredi.
[VIDEO lèktur]
-Fè Li te ye nan tout ki Ralph Parker se Avèk prezant sa mwen
nonmen yon manm nan Little nan Òfelen Annie sekrè Fè yon ti wonn
epi li gen dwa nan tout onè yo ak benefis ki rive kite yo pase.
>> -Signed, Little Òfelen Annie, counter-siyen Pierre Andre, nan lank.
Onè ak benefis yo, deja a laj de nèf.
>> [T'ap rele byen fò]
-Come Sou.
Se pou nou jwenn sou ak li.
Mwen pa bezwen tou sa djaz sou kontrebandye ak pirat.
>> -Listen Lannwit demen pou avanti a conclure
nan batiman an bato nwa.
Koulye a, li lè pou komisyon Annie a
pou ou manm nan Fè yon ti wonn la sekrè.
Sonje byen, timoun yo, se sèlman manm nan Annie a sekrè Fè yon ti wonn
ka dekode komisyon Annie a.
>> Sonje byen, Annie se depann sou ou.
Mete Pins ou a B2.
Isit la se mesaj la.
12, 11--
>> -Mwen Menm mwen nan, premye reyinyon sekrè m 'yo.
>> -14, 11, 18, 16.
>> -Pierre Te nan gwo aswè a vwa.
Mwen te kapab di ke nan aswè a mesaj te vrèman enpòtan.
>> -3, 25, sa a, se yon mesaj soti nan Annie tèt li.
Sonje byen, pa di nenpòt ki moun.
>> -90 Segond apre, mwen nan sèlman nan chanm nan kay la kote yon ti gason nan nèf
te kapab chita nan sou vi prive ak decode.
Aha, B!
Mwen te ale nan kap vini an, E. la
>> Pawòl Bondye a premye se dwe.
S, li te vini pi fasil kounye a, U, 25--
>> -Oh, Vini sou li a, Ralphie, mwen oblije ale!
>> -I'll Dwe gen dwa desann, Ma!
Gee sifleman!
>> -T, Nou menm, asire w ke to-- asire w ke ou ki sa?
Ki sa ki te Little Òfelen Annie ap eseye di nou fè?
Asire ou ke ou ki sa?
>> -Ralphie, Andy te pran yo ale, yo pral ou tanpri ye konsa?
>> -Tout Dwa, Ma!
Mwen pral dwe gen dwa soti!
>> -Mwen Te resevwa pi pre kounye a.
tansyon an te terib.
Sa ki te li?
Sò a nan planèt la ka kwoke nan balans lan.
>> -Ralphie!
oblije Andy a ale!
>> -I'll Dwe gen dwa soti, pou kriye byen fò!
>> -Almost A, dwèt mwen te pran vòl, lide m ' te yon pèlen asye, chak pò vibre.
Li te prèske klè, repons lan se wi, se wi, repons lan se wi.
>> -Fè Asire w ke ou bwè Ovaltine ou yo.
Ovaltine?
Yon komèsyal crummy?
Pitit yon femèl chen.
[FEN lèktur]
DAVID J. Malan: OK, se konsa sa ki te yon fason trè lontan
nan entwodwi chifreman, epi tou li Ovaltine.
An reyalite, ki soti nan anons sa a fin vye granmoun isit la, poukisa se Ovaltine tèlman bon?
Li se yon ekstraksyon konsantre nan mi lòj malte, lèt pi bon kalite bèf krèm a,
ak espesyalman prepare kakawo, ansanm ak fosfatid natirèl ak vitamin.
Li se plis fòtifye ak vitamin adisyonèl B ak D, Yum.
Epi ou ka toujou jwenn li, aparamman, sou Amazon, jan nou te fè isit la.
>> Men, motivasyon an isit la te prezante chifreman, espesyalman
yon kalite chifreman li te ye kòm sekrè chifreman kle.
Apre sa, kòm non an sijere, tout la sekirite nan yon sistèm sekrè kriptografik kle,
si ou vle, yon metodoloji pou jis eskalade
enfòmasyon ant de moun, se ke sèlman moun k la ak sèlman benefisyè a
konnen yon key-- sekrè kèk valè, gen kèk sekrè fraz, kèk nimewo sekrè, ki
pèmèt yo nan tou de ankripte ak dechifre enfòmasyon.
Apre sa, chifreman, reyèlman, se jis sa a soti nan semèn 0.
>> Li se yon pwoblèm kote gen nan entrain, tankou mesaj aktyèl la nan lang angle
oswa kèlkeswa sa lang ke ou vle voye ak yon moun nan klas,
oswa atravè entènèt la.
Gen kèk pwodiksyon, ki se ale yo dwe mesaj la grenpe moute ke ou
vle moun k ap resevwa a resevwa.
E menm si yon moun nan nan mitan resevwa l 'tou,
ou pa vle yo nesesèman pral kapab dechifre li,
paske andedan nan sa a bwat nwa, oswa algorithm,
se kèk mekanis, gen kèk etap pa etap enstriksyon, pou pran ki opinyon
ak konvèti l 'nan la pwodiksyon, nan èspere ke yon fason ki an sekirite.
>> Epi, an reyalite, gen kèk vokabilè nan mond sa a jan sa a.
Plain tèks se pawòl Bondye yon an syantis òdinatè ta
itilize a dekri D 'a mesaj, tankou angle a
oswa kèlkeswa sa lang ou aktyèlman vle voye nan kèk lòt moun.
Lè sa a, chifre a se goumen nan enciphered a, oswa chiffres,
vèsyon ladan l '.
>> Men, gen nan yon lòt engredyan isit la.
Genyen yon lòt D ' sekrè kle chifreman.
E ke se kle nan tèt li, ki se, jeneralman,
kòm nou pral wè, yon PO, oswa lèt, oswa mo, tou sa
algorithm nan li se aktyèlman espere.
>> Ak ki jan ou dechifre enfòmasyon?
Ki jan ou fè dekode li?
Oke, ou jis ranvèse nan rezilta ak entrain yo.
>> Nan lòt mo, yon fwa yon moun resevwa mesaj chiffres ou,
li oswa li te tou senpleman gen konnen ke kle menm.
Yo te resevwa chifre a.
Ak nan rakorde sa yo de entrain nan sistèm lan kriptografik,
algorithm a, sa a bwat nwa, soti ta dwe vini plentèk orijinal la.
Se konsa, sa a, se nivo a trè wo gade nan ki sa chifreman se aktyèlman
tout sou.
>> Se konsa nou rive la.
Se pou nou kounye a gade anba kapo a nan yon bagay
nou ve yo te pran pou yo akòde pou semèn ki sot pase, ak pou sesyon sa a
isit lan-- fisèl la.
Yon fil nan fen a nan jounen an se jis yon sekans nan karaktè.
>> Li ta ka mond hello, oswa alo Zamyla, oswa kèlkeswa sa.
Men, sa ki ki vle di gen yon sekans nan karaktè?
An reyalite, bibliyotèk la CS50 bay nou yon kalite done rele fisèl.
>> Men, gen aktyèlman pa gen okenn sa yo bagay tankou yon fisèl nan C.
Li reyèlman se jis yon sekans nan karaktè, karaktè, karaktè,
karaktè, tounen, nan do, nan tounen, nan do, nan do andedan
nan memwa òdinatè w lan an, oswa RAM.
Epitou, n ap gade pi fon nan ke nan la tan kap vini lè nou gade memwa tèt li,
ak itilizasyon an, ak nan menas ke yo enplike nan sa.
>> Men, kite a konsidere fisèl la Zamyla.
Se konsa, jis non an nan moun nan isit la, Zamyla,
ki se yon sekans nan karaktè, Z-A-M-Y-L-A.
Epi, koulye a kite a ta kwè ke non Zamyla a se ke yo te ki estoke andedan nan yon òdinatè
pwogram nan.
>> Oke, li vle di rezon ke nou ta dwe pral kapab fè yon gade nan karaktè moun
endividyèlman.
Se konsa, mwen jis ale nan trase yon ti kras bwat alantou Non Zamyla a isit la.
Epi li se ka a nan C ke lè ou gen yon fisèl, tankou Zamyla-- e petèt
li te ke fisèl tounen soti nan yon fonksyon tankou jwenn fisèl,
ou ka aktyèlman manipile li karaktè pa karaktè.
>> Koulye a, sa a se konvnabl pou la konvèsasyon nan men, paske
nan chifreman si ou vle chanje A jiska B, ak B nan C, ak C rive nan D,
ak pou fè, ou bezwen yo dwe kapab fè yon gade nan karaktè yo moun
nan yon fisèl.
Ou bezwen yo dwe kapab chanje Z nan yon lòt bagay, A
yon lòt bagay, M a yon lòt bagay, ak sou sa.
Se konsa, nou bezwen yon fason sa a, pwogramasyon, se konsa
konsa pale, nan C pou kapab chanje ak gade nan lèt endividyèl elèv yo.
Apre sa, nou ka fè sa jan sa a.
>> Kite m 'ale tèt tounen nan CS50 IDE.
Ak kite m 'ale pi devan ak kreye yon dosye nouvo
ke mwen pral rele sa a string0 tan, kòm nou an premye egzanp sa yo, dot c.
Apre sa, mwen pral ale pi devan ak fwe l 'kanpe jan sa a.
>> Se konsa, gen ladan CS50.h, ak Lè sa a, gen ladan estanda io.h,
ki mwen prèske toujou ale nan lè l sèvi avèk nan pwogram m 'yo, omwen
okòmansman.
int anile prensipal yo, ak Lè sa a nan isit la mwen se pral fè strings vin jwenn fisèl.
Lè sa a, mwen pral ale pi devan epi fè sa.
Mwen vle ale pi devan epi, kòm yon chèk saniti,
jis di, hello, pousan an, semi-kolon, fè fisèl 0.
Uh oh, ki sa mwen t 'fè isit la?
Oh, mwen pa t 'ploge li nan.
Se konsa, leson te aprann, ki pa t 'entansyonèl.
>> Se konsa, erè, plis pousan konvèsyon pase done agiman.
Lè sa a se kote, nan liy 7-- OK, se konsa mwen gen,
quote unquote, sa se fisèl mwen an printf.
Mwen te gen yon siy pousan.
Men, mwen manke agiman, dezyèm lan.
>> Mwen manke nan la vigil, ki Mwen t 'gen nan egzanp anvan yo.
Se konsa, yon bon opòtinite yo ranje yon sèl plis erè, aksidantèlman.
Epi, koulye a kite m 'kouri string0, kalite nan Zamyla.
OK, alo Zamyla.
>> Se konsa, nou te kouri sa a kalite pwogram yon fwa kèk diferan kounye a.
Men, kite a fè yon bagay yon ti kras diferan tan sa a.
Olye pou yo jis enprime Zamyla a tout Non soti ak printf,
se pou yo fè l 'karaktè pa karaktè.
>> Mwen pral sèvi ak yon pou riban.
Men, mwen pral bay tèt mwen yon varyab konte, rele m.
Men, mwen pral kenbe iteration, se konsa lontan ke mwen se mwens pase longè a nan la.
>> Li sanble soti, nou pa t ' fè dènye fwa sa a,
ki c vini ak yon fonksyon rele Stirling.
Retounen nan jou a, epi an jeneral toujou lè mete ann aplikasyon fonksyon,
moun pral souvan chwazi trè non somèr ki kalite son
tankou sa ou vle, menm si li nan manke yon vwayèl kèk oswa lèt yo.
Se konsa, Stirling se nan non nan yon fonksyon ki
pran yon agiman ant parantèz ki ta dwe yon kòd.
Epi, se jis retounen yon nonb antye relatif, longè a nan ki fisèl.
>> Se konsa, sa pou riban sou liy 7 ki pral yo kòmanse konte nan m egal 0.
Li nan ale nan kantite mwen sou chak iterasyon
pa 1, menm jan nou te toujou ap fè yon fwa kèk.
Men, li k ap pase yo sèlman fè sa a moute jouk pwen an
lè mwen se longè a nan fisèl la tèt li.
>> Se konsa, sa se yon fason pou, finalman, iteration sou karaktè yo
nan fisèl la kòm se sa a.
Mwen pral enprime soti pa yon tout fisèl, men pousan c,
yon karaktè sèl ki te swiv pa yon liy nouvo.
Lè sa a, mwen pral ale pi devan, ak mwen bezwen
di mwen vle enprime on karaktè nan a.
>> Se konsa, si mwen se varyab la ki endike endèks la nan fisèl la, kote
w ap nan li, mwen bezwen pou kapab di, ban m 'pèsonaj la on nan la.
Epi c gen yon fason pou fè sa a ak parantèz kare.
Ou tou senpleman di non an nan la fisèl, ki nan ka sa a se la.
Lè sa a, ou itilize parantèz kare yo, ki se anjeneral jis anwo a Retounen ou a oswa Antre
kle sou klavye a.
Lè sa a, ou mete endèks la nan la karaktè ke ou vle enprime.
Se konsa, endèks la ki pral gen yon number-- 0, oswa 1, oswa 2, oswa 3, oswa dot,
dot, dot, kèk lòt kantite.
>> Apre sa, nou asire ke li k ap pase yo gen nimewo a dwa, paske mwen
kòmanse konte nan 0.
Apre sa, pa default, pèsonaj la premye nan yon fisèl se pa konvansyon 0.
Ak karaktè nan dezyèm se bracket 1.
Apre sa, pèsonaj la twazyèm se bracket 2.
Epi ou pa ta vle ale twò lwen, men nou pral se pa paske nou ap
ale nan sèlman kantite mwen jiskaske li egal longè a nan fisèl la.
Ak nan ki pwen, sa a pou riban yo ap sispann.
>> Se pou m 'ale pi devan epi sove sa a pwogram, ak kouri fè fisèl 0.
Men, mwen vise moute.
Chal deklare fonksyon bibliyotèk Stirling ak kalite sa yo ak such-- kounye a,
sa a son yo konnen yo.
Men, li pa nan printf.
Apre sa, li pa nan jwenn fisèl.
>> Mwen pa t 'vis moute nan menm jan an moman sa a.
Men, remake desann isit la yon ti kras desann pi lwen, gen ladan string.h nan header,
klèman bay nan deklarasyon pou Stirling.
Se konsa, gen se aktyèlman yon siy nan la.
>> Ak tout bon li vire soti gen nan yon lòt dosye header
ke nou pa te itilize nan klas ankò, men li la
nan mitan moun disponib nou la a, rele string.h.
Ak nan ki ranpli, string.h se Stirling deklare.
Se pou m 'ale pi devan epi sove sa a, fè fisèl
0-- bèl, pa gen mesaj erè sa a tan.
>> ./string0 Zamyla, ak Mwen se sou yo frape Antre,
nan ki pwen GetString ki pral retounen fisèl la, mete l 'nan la.
Lè sa a, ki pou riban ki pral repekte sou karaktè S a yon sèl nan yon tan,
epi enprime yo youn pou chak liy, paske Mwen te gen ki n antislach nan fen an.
Se konsa, mwen te kapab retire okenn pati ki antislach n, ak Lè sa a jis enprime Zamyla tout
nan liy la menm, efektivman reimplementing
printf, ki se pa tout sa ki itil.
Men, nan ka sa a, mwen pa te fè sa.
Mwen te aktyèlman enprime youn karaktè nan yon moman, yon sèl pou chak liy,
pou nou aktyèlman wè efè a.
>> Men, mwen ta dwe sonje yon sèl bagay isit la.
Epitou, n ap tounen vin jwenn sa a nan yon semèn nan lavni.
Li sanble ke sa a kòd se potansyèlman buggy.
>> Li sanble ke fisèl jwenn ak kèk lòt fonksyon nan lavi
fè pa nesesèman toujou retounen sa w ap tann.
Nou konnen nan klas dènye tan nan sa a ki jwenn
se fisèl sipoze retounen yon kòd.
Men, sa ki si itilizatè kalite mouvman yo soti tankou yon mo long, oswa paragraf, oswa redaksyon
ke gen nan jis pa ase memwa nan òdinatè a nan anfòm li.
>> Tankou, sa ki si gen yon bagay ale mal anba kapo a?
Li pa ka rive souvan, men li te ka rive yon fwa
nan yon ti tan, trè Rahman.
Se konsa, li sanble ke fisèl jwenn ak fonksyon tankou li pa fè sa nesesèman
toujou retounen strings.
Yo ta ka retounen kèk valè erè, kèk valè Sentinel se konsa pale,
ki endike ke yon bagay te ale mal.
Epi ou ta konnen sèlman sa a soti nan li te gen te aprann li nan klas kounye a,
oswa li te gen li kèk dokiman plis ankò.
Li sanble ke fisèl jwenn ka retounen yon valè rele nil.
Null se yon valè espesyal ki nou pral tounen nan vini nan yon semèn nan lavni.
Men, pou kounye a, jis konnen ke si mwen vle yo dwe reyèlman bon nan k ap deplase pou pi devan
lè l sèvi avèk jwenn fisèl, mwen pa ta dwe jis rele l ',
ak je fèmen itilize valè retounen li yo, kwè ke li nan yon fisèl.
>> Mwen ta dwe premye di, hey, rete tann yon minit, se sèlman
kontinye si la pa fè sa egal nil, kote nil, ankò,
se jis kèk valè espesyal.
Epitou, se sèlman valè a espesyal ou bezwen enkyete sou pou jwenn fisèl.
Jwenn fisèl se swa ale yo retounen yon fisèl oswa nil.
>> Lè sa a pwen esklamasyon egal siy ou ta ka konnen soti nan petèt klas matematik
ke ou ta ka trase yon siy egal ak yon liy nan li yo endike pa bon.
Sa a pa jeneralman yon karaktè ou ka tape sou klavye ou.
Se konsa, nan pifò lang programmation, lè ou vle di pa egal,
ou itilize yon pwen esklamasyon, ki te rekonèt kòm Bang.
Se konsa, ou di Bang egal, ki vle di pa egal, ak lojik.
Se jis tankou gen nan pa yon pi gwo pase, oswa egal a, oswa mwens pase
oswa egal bay kle sou klavye ou ki fè li tout nan yon sèl senbòl.
Se konsa, Se poutèt sa, nan egzanp sot pase yo, ou te fè yon bracket louvri, ak Lè sa a
yon siy egal, nan lòd yo fè pi gran pase oswa, di, mwens pase.
>> Se konsa, sa ki nan Takeaway a isit la?
Sa a se tou senpleman yon fason kounye a nan entwodwi sa a sentaks, karakteristik sa a,
iteration sou moun karaktè nan yon fisèl.
Epi jis tankou sa yo kare parantèz pèmèt ou jwenn nan yo,
konsidere sa yo parantèz kare kòm kalite Sa anpeche nan nivo sa a kache
konsepsyon, annakò ak sa chak pèsonaj andedan nan yon afè
se kalite bwat an yon kote anba kapo a nan memwa òdinatè ou a.
>> Men, kite a fè yon Variant nan sa a.
Li sanble ke sa a pwogram kòrèk.
Se konsa, pou chak aks CS50 nan pou evalye Kòd, sa a se kòrèk kounye a.
Espesyalman kounye a ke mwen tcheke pou nil, pwogram sa a pa ta dwe janm aksidan.
Apre sa, mwen jis konnen ke soti nan eksperyans.
Men, gen nan pa gen anyen lòt bagay ki nou ka vrèman ale mal isit la.
Men, li la pa trè byen-ki fèt, paske se pou yo ale tounen nan Basics.
>> Premyèman, principles-- ki sa yon pou riban fè?
A pou riban fè twa bagay sa yo.
Li inisyalizasyon kèk valè, si ou mande l 'bay.
Li chèk yon kondisyon.
Lè sa a, apre chak iterasyon, apre yo fin chak sik,
li ogmantasyon kèk valè, oswa valè, isit la.
>> Se konsa, sa sa vle di?
Nou inisyalize mwen a 0.
Nou tcheke, epi fè sèten mwen se mwens pase longè a nan la, ki se Z-A-M-Y-L-A,
se konsa ki se mwens pase 6.
Epi, tout bon, 0 kòm mwens pase 6.
>> Nou enprime soti Z nan non Zamyla a.
Apre sa, nou kantite mwen ki ant 0 a 1.
Nou Lè sa a, tcheke, se 1 mwens pase longè a nan a?
Longè a nan a se 6.
Wi, li se.
>> Se konsa, nou enprime yon nan non Zamyla a, ZA.
Nou kantite mwen soti nan 0, a 1, a 2.
Nou Lè sa a, tcheke, se 2 mwens pase longè a nan Non Zamyla a.
6- se konsa 2 se mwens pase 6.
Wi, se pou yo enprime soti kounye a M nan Non Zamyla a, pèsonaj la twazyèm.
>> Kle a isit la se ke sou chak iterasyon nan istwa a, mwen tcheke,
se mwen mwens pase longè a nan Zamyla?
Men, trape an se ke Stirling se pa yon pwopriyete.
Moun sa yo ki nan nou ki te pwograme anvan nan Java oswa lòt lang
ta ka konnen longè a nan yon afè se yon pwopriyete, sèlman kèk li sèlman valè.
>> Nan C nan ka sa a, si sa a se yon fonksyon ki se literalman
konte kantite karaktè nan Zamyla chak fwa
nou rele ki fonksyon.
Chak fwa ou mande òdinatè a yo sèvi ak Stirling, li nan pran yon gade nan Zamyla,
yo t'ap di konsa Z-A-M-Y-L-A, 6.
Apre sa, li retounen 6.
Tan nan pwochen ou rele li anndan ke pou riban,
li pral fè yon gade nan Zamyla ankò, di Z-A-M-Y-L-A, 6.
Epi, se nan ale nan retounen 6.
Se konsa, sa ki nan estipid sou sa a konsepsyon?
>> Poukisa se kòd m 'lan pa yon 5 soti nan 5 pou konsepsyon kounye a, se konsa pale?
Oke, mwen mande yon kesyon san nesesite.
M ap fè plis travay pase mwen bezwen.
>> Se konsa, menm si nan repons ki kòrèk, Se mwen menm ki
mande òdinatè a, ki sa ki longè a nan Zamyla ankò,
e ankò, epi ankò, epi ankò?
Epi sa repons se pa janm pral chanje.
Li nan toujou pral fè 6.
>> Se konsa, yon solisyon pi bon pase sa a ta dwe sa a vèsyon kap vini an.
Kite m 'ale pi devan epi mete l nan yon dosye separe rele string1.c,
jis kenbe li separe.
Epi li vire soti nan yon pou riban, ou kapab aktyèlman
deklare varyab miltip nan yon fwa.
>> Se konsa, mwen pral kenbe m li mete l 'nan 0.
Men, mwen tou ale nan ajoute yon vigil, y'ap di:
ban m 'yon varyab rele n, ki gen valè egal longè a afè de la.
Koulye a, tanpri, fè m 'kondisyon toutotan mwen se mwens pase n.
>> Se konsa, nan fason sa a, lojik la se ki idantik nan fen a nan jounen an.
Men, mwen sonje nan valè 6, nan ka sa a.
Ki longè a nan non Zamyla a?
Apre sa, mwen mete l 'nan n.
>> Apre sa, mwen toujou tcheke kondisyon an chak fwa.
Se 0 mwens pase 6?
Se 1 mwens pase 6?
Se 2 mwens pase 6, ak pou fè?
>> Men, mwen pa ap mande òdinatè a ankò, epi ankò, sa ki nan
longè a nan Non Zamyla a?
Ki sa ki nan longè a nan Non Zamyla a?
Ki sa ki nan longè a nan non nonm sa a Zamyla a?
Mwen literalman sonje ke premye ak sèlman reponn nan sa a dezyèm N varyab.
Se konsa, sa kounye a ta dwe pa sèlman kòrèk, men tou, ki byen fèt.
>> Koulye a, sa ki sou style?
Mwen te yo te rele varyab mwen trè byen, mwen ta ka di.
Yo ap super somèr kounye a.
Epi sa a, totalman amann.
>> Si ou sèlman gen yon sèl fisèl nan yon pwogram,
ou ta ka kòm byen rele li s pou fisèl.
Si ou sèlman gen yon sèl varyab pou konte nan yon pwogram,
ou ta ka kòm byen rele li mwen.
Si ou gen yon longè, n se super komen kòm byen.
Men, mwen pa te kòmante nenpòt nan Kòd m 'yo.
>> Mwen pa te enfòme reader-- la si wi ou non sa a, se TF mwen, oswa TA,
oswa jis colleague-- ki sa ki sipoze yo dwe ap pase nan pwogram sa a.
Se konsa, yo ka resevwa bon style, ki sa mwen ta vle fè
se sa a men yon bagay tankou mande itilizatè pou D '.
Apre sa, mwen te kapab ekri sa a nenpòt ki kantite fason.
>> Asire w ke s-- asire w jwenn fisèl tounen yon kòd.
Lè sa a, nan isit lan-- ak sa a se petèt repekte ki pi enpòtan comment--
sou karaktè yo ki nan yon sèl nan yon tan.
Apre sa, mwen te kapab sèvi ak nenpòt chwa nan lang angle
la a yo dekri chak nan sa yo fragman nan kòd.
>> Remake mwen pa t 'mete yon kòmantè sou chak liy nan kòd,
vrèman jis sou enteresan an yo menm, sa yo ki
gen kèk siyifikasyon ke mwen ta ka vle fè super klè ak yon moun
lekti Kòd m 'yo.
Apre sa, poukisa w'ap rele jwenn fisèl Ask pou D '?
Menm ke yon moun se pa nesesèman tout sa ki deskriptif.
Men, li te ede rakonte yon istwa, paske nan dezyèm liy nan istwa a se, asire w ke
jwenn fisèl tounen yon kòd.
>> Ak liy lan twazyèm nan istwa a se, repekte sou karaktè yo ki nan yon sèl
nan yon tan.
Epi, koulye a jis pou bon mezi, Mwen pral ale pi devan epi ajoute
yon sèl plis kòmantè ki jis di ekri an lèt detache m-th karaktè nan a.
Koulye a, kisa m 'fè nan fen jounen an?
>> Mwen gen te ajoute kèk angle mo nan fòm lan nan kòmantè.
Senbòl la koupe koupe vle di, hey, òdinatè sa a se pou moun lan,
pa pou ou, òdinatè a.
Se konsa, yo ap inyore ak lojik.
Yo ap jis la.
>> Epi, tout bon, CS50 IDE montre yo tankou gri, tankou se te itil, men se pa kle
nan pwogram nan.
Gade sa ou kapab kounye a fè.
Si ou konnen C pwogramasyon oswa ou pa, ou
ka jis kanpe tounen nan sa a pwogram, ak ekreme kòmantè yo.
Mande itilizatè pou D ', asire w ke jwenn fisèl tounen yon fisèl,
repekte sou karaktè yo ki nan la yon sèl nan yon tan, enprime pèsonaj la
m-th karaktè nan s-- ou pa fè sa menm gen fè yon gade nan kòd la
a konprann ki sa pwogram sa a fè.
Epi, pi bon toujou, si ou tèt ou gade nan pwogram sa a nan yon semenn oswa de,
yon mwa, yon lanne, ou twò pa gen
yo fikse nan kòd la, ap eseye sonje,
sa ki te mwen ap eseye fè ak kòd sa a?
>> Ou te di tèt ou.
Ou te dekri li pou tèt ou, oswa kèk kòlèg, oswa TA, oswa TF.
Se konsa, sa a ta kounye a dwe kòrèk, ak bon konsepsyon,
epi finalman bon style kòm byen.
Se konsa, fè kenbe ki nan tèt li.
>> Se konsa, gen nan yon lòt bagay mwen pral fè isit la
ki kapab kounye a revele egzakteman sa ki nan ale sou anba kapo a.
Se konsa, gen nan karakteristik sa a nan C, ak lòt lang,
rele typecasting ki swa chal
oswa klèman pèmèt ou konvèti soti nan yon kalite done nan yon lòt.
Nou te ap fè fas se konsa lwen jodi a ak strings.
>> Apre sa, strings yo se karaktè.
Men, sonje soti nan semèn 0, ki sa yo karaktè?
Karaktè yo se jis yon distraksyon sou tèt nan nimewo desimal numéros,
ak nimewo desimal yo se reyèlman jis yon distraksyon sou tèt nan nimewo binè,
jan nou defini li.
>> Se konsa, karaktè yo chif yo.
Ak nimewo yo se karaktè, jis depann sou kontèks la.
Epi li vire soti ke andedan nan yon pwogram òdinatè,
ou ka presize ki jan ou vle gade nan Bits yo andedan nan ki pwogram?
>> Rapèl soti nan semèn 0 ke nou te Ascii, ki se jis kòd sa a
kat lèt bay chif yo.
Nou te reponn, kapital A se 65.
Kapital B se 66, ak pou fè.
>> Apre sa, avi, nou esansyèlman gen charaktèr sou ranje nan tèt isit la, kòm C tapral ba yo,
karaktè, ak Lè sa a antye nan dezyèm ranje a.
Epi li vire soti ou ka konvèti transparans ant de a, tipikman.
Men, si nou vle fè sa a fè espre, nou
ta ka vle atake yon bagay konsa.
>> Nou ta ka vle konvèti anwo ka pi ba
ka, oswa pi ba ka nan dosye anwo kay la.
Epi li vire soti gen nan aktyèlman yon modèl isit la
nou ka anbrase nan jis yon moman.
Men, se pou pou yo gade premye nan yon egzanp sou fè sa klèman.
>> Mwen pral ale tounen nan CS50 IDE.
Mwen pral kreye yon dosye rele ASCII 0.c.
Apre sa, mwen pral ale pi devan epi ajoute m ' estanda io.h nan tèt la, int anile prensipal
nan tèt yo nan fonksyon m 'yo.
Lè sa a, mwen jis pral fè a annapre yon pou riban soti nan mwen egal,
se pou yo di, 65.
>> Lè sa a, mwen a pwal mwens pase 65, plis 26 lèt nan alfabè a.
Se konsa, mwen pral kite òdinatè a fè matematik la pou m 'la.
Lè sa a, andedan sa a bouk, ki sa mwen pral enprime?
>> % C se% m antislach n.
Epi, koulye a mwen vle ploge nan de valè.
Mwen te pou yon ti tan mete kesyon make gen envite kesyon an.
>> Mwen vle repekte nan 65 pati pou 26 lèt nan alfabè a,
enprime soti sou chak iterasyon ki entegral ekivalan karaktè la.
Nan lòt mo, mwen vle repekte sou 26 nimewo enprime
sa pèsonaj la ASCII se, lèt la, ak sa nimewo ki koresponn lan is--
vrèman jis rkree tablo a soti nan ki glise.
Se konsa, sa ta dwe sa yo mak kesyon ta dwe ye?
>> Oke, li sanble ke dezyèm lan youn ta dwe jis pou mwen an varyab.
Mwen vle wè ke kòm yon kantite.
Apre sa, agiman an mitan isit la, mwen ka di òdinatè a
nan trete ki nonb antye ki pè mwen kòm yon karaktè, se konsa yo
pran plas li isit la pou pousan C.
>> Nan lòt mo, si mwen, an pwogramè imen, konnen
sa yo, se jis nimewo nan fen jounen an.
Apre sa, mwen konnen ke 65 ta dwe kat jeyografik nan kèk karaktè.
Avèk jete sa a klè, ak yon parantèz,
non an nan kalite la done ou vle konvèti nan, ak yon parantèz fèmen,
ou ka di la òdinatè, hey, òdinatè,
konvèti nonb antye relatif sa a nan yon Char.
>> Se konsa, lè mwen kouri sa a pwogram apre konpile,
se pou yo wè sa m 'get-- fè ASCII 0.
Reprize li, ki sa mwen t 'fè sa ki mal isit la?
Sèvi ak nan sekrè idantifyan, tout dwa, pa entansyonèl,
men kite a wè si nou pa kapab rezon nan sa a.
>> Se konsa, liy five-- Se konsa, mwen pa t 'jwenn byen lwen anvan bèz yo.
Se byen.
Se konsa, liy 5 pou m egal 65-- mwen wè.
Se konsa, sonje ke nan C, kontrèman ak kèk lang si ou gen pwogram anvan
eksperyans, ou gen di òdinatè a,
kontrèman ak grafouyen, sa di ki kalite varyab li ye.
>> Apre sa, mwen bliye yon fraz kle isit la.
Nan liy senk, mwen te te kòmanse lè l sèvi avèk mwen.
Men, mwen pa te di C ki sa done kalite li ye.
Se konsa, mwen pral ale nan isit la ak di, ah, fè l 'yon nonb antye relatif.
>> Koulye a, mwen pral ale pi devan ak compile.
Sa fiks sa.
./ascii0 Antre, sa a, se kalite fre.
Pa sèlman se li super vit mande òdinatè a kesyon sa a,
olye ke gade l 'kanpe sou yon glise, li enprime soti yon sèl pou chak liy, A se 65,
B se 66, tout wout la down-- depi m ' te fè sa 26 jou- jiska Z nan lèt,
ki se 90.
Epi, an reyalite, yon ti kras plis entelijan ta
yo te pou m 'pa fè konfyans sou òdinatè a yo ajoute 26.
Mwen te kapab jis fè 90 kòm byen, lontan
jan mwen pa fè erè nan menm de fwa.
Mwen vle ale moute nan z, pa sèlman moute nan y.
>> Se poutèt sa se yon jete eksplisit.
Li sanble ke sa a se pa menm nesesè.
Kite m 'ale pi devan epi relance sa a du, ak relance ASCII 0.
Li sanble ke C se trè entelijan.
>> Apre sa, printf, an patikilye, se trè entelijan.
Si ou jis pase yon m de fwa pou tou de placeholders, printf
pral reyalize, o, byen Mwen konnen ou te bay m 'yon integer-- kèk nimewo,
tankou 65, oswa 90, oswa kèlkeswa sa.
Men, mwen wè ke ou vle m ' fòma ladan nimewo tankou yon karaktè.
Se konsa, printf ka chal jete int nan yon Char pou ou kòm byen.
Se poutèt sa se pa yon pwoblèm nan tout.
>> Men, remake, paske nan sa ekivalans nou ka aktyèlman fè sa a tou.
Kite m 'ale pi devan epi fè yon sèl lòt vèsyon an sa a men 1.c. ASCII
Ak olye pou yo iteration sou nonm antye yo, ka vrèman kònen tèt ou
pa iteration sou karaktè.
Si yon Char c vin kapital A, mwen vle ale pi devan epi fè sa,
toutotan C se mwens pase oswa egal Z. kapital Yo, epi sou chak iterasyon
Mwen vle kantite C, mwen kapab kounye a nan liy printf m 'isit la
di, pousan C se pousan mwen ankò, vigil C.
>> Epi, koulye a, mwen ka ale nan lòt direksyon an, Distribisyon pèsonaj la klèman
nan yon nonb antye relatif.
Se konsa, ankò, poukisa ta ou fè sa?
Li se yon ti kras etranj yo sòt nan konte an tèm de karaktè.
>> Men, si ou konprann sa ki nan ale sou anba kapo a,
gen nan reyèlman pa gen okenn majik.
W ap jis di, hey, òdinatè bay m 'yon varyab rele C nan kalite Char.
Inisyalize li yo nan kapital A. Apre sa, remake sèl quotes matyè.
>> Pou karaktè nan C, sonje soti nan semèn pase a, ou itilize quotes sèl.
Pou strings, pou mo, fraz, ou itilize quotes doub.
OK, òdinatè, kenbe fè sa, se konsa lontan ke pèsonaj la se mwens pase
oswa egal a z.
Apre sa, mwen konnen nan tablo ASCII mwen ke tout nan kòd ASCII sa yo, se vwazen.
>> Gen nan pa gen twou vid ki genyen.
Se konsa, li jis A jiska Z, separe pa yon sèl nimewo chak.
Lè sa a, mwen kapab kantite yon Char, si mwen vle reyèlman.
Nan fen jounen an, li nan jis yon kantite.
Mwen konnen sa a.
Se konsa, mwen ka jis konprann nou ka ajoute 1 nan li.
>> Lè sa a, tan sa a, mwen enprime c, ak Lè sa a ekivalan a entegral.
Apre sa, mwen pa menm bezwen jete nan eksplisit.
Mwen ka kite printf a ak figi òdinatè bagay sa yo soti,
se konsa ke kounye a si mwen kouri fè Ascii1./ascii1,
Mwen jwenn egzak menm bagay la tou.
>> Initil pwogram, though-- pa gen yon ki pral aktyèlman ekri lojisyèl
yo nan lòd yo konnen ki, sa ki te nan nimewo ki kat A, oswa B, oswa Z?
W ap jis ale nan Google li, oswa gade l 'kanpe sou entènèt, oswa gade l' kanpe
sou yon glise, oswa renmen an.
Se konsa, kote sa a aktyèlman jwenn itil?
>> Oke, ann pale de glise, remake gen nan
yon modèl aktyèl isit la ant majuskul ak miniskil ki pa t 'aksidan.
Remake kapital A se 65.
Miniskil yon se 97.
Ak ki jan byen lwen se pi ba ka yon?
>> Se konsa, 65 se konbyen etap lwen 97?
Se konsa, 97 mwens 65 se 32.
Se konsa, kapital yon se 65.
Si ou ajoute 32 ak sa yo ki, ou jwenn miniskil a.
Epi, équivalant, si ou fè soustraksyon 32, ou jwenn tounen nan kapital A-- menm ak B
ti kras b, gwo C rive nan ti kras c.
>> Tout moun nan twou vid ki genyen sa yo, se 32 apa.
Koulye a, sa ta sanble yo pèmèt nou fè yon bagay tankou Microsoft Word,
oswa Google Docs prezante, kote ou ka chwazi tout bagay ak Lè sa a di,
chanje tout moun miniskil, oswa chanje tout nan dosye anwo,
oswa chanje sèlman pawòl Bondye a premye nan yon fraz nan dosye anwo kay la.
Nou ka aktyèlman fè yon bagay tankou sa tèt nou.
>> Kite m 'ale pi devan epi sove yon dosye isit la yo rele kapitalize 0.c.
Li kite yo ale pi devan epi fwe moute yon pwogram ki fè egzakteman sa jan sa a.
Se konsa, gen ladan bibliyotèk la CS50.
Epi yo genyen ladan estanda mwen / O.
>> Apre sa, mwen konnen sa a ap vini byento.
Se konsa, mwen ale nan mete l 'nan gen deja, string.h,
Se konsa, mwen gen aksè nan bagay sa yo tankou Stirling,
ak Lè sa a int anile prensipal yo, kòm dabitid.
Lè sa a, mwen pral ale pi devan ak fè strings vin jwenn fisèl,
jis yo ka resevwa yon fisèl soti nan itilizatè a.
Lè sa a, mwen pral fè chèk saniti mwen.
Si fisèl pa fè sa egal nil, Lè sa a, li nan san danje kontinye.
Ak sa ki fè mwen vle fè?
Mwen pral repekte soti nan mwen egal 0, ak n jiska longè a afè de la.
>> Men, mwen pral fè sa toutotan mwen se mwens pase n, e mwen plis plis.
Se konsa, lwen, mwen vrèman jis prete ide ki soti anvan.
Epi, koulye a mwen pral prezante yon branch.
>> Se konsa, panse tounen nan grafouyen, kote nou te gen moun fouchèt nan wout la,
ak semèn pase a nan C. mwen pral di sa a, si pèsonaj la m-th nan la
se pi gran pase oswa egal pi ba ka yon,
and-- nan grafouyen ou ta literalman di ak, men nan C ou di comercial,
ampersand-- ak karaktè nan m-th nan la se mwens pase oswa egal a pi ba ka z,
se pou yo fè yon bagay ki enteresan.
Se pou nou aktyèlman enprime soti yon pèsonaj ki pa gen okenn newline
ki se karaktè a nan fisèl la, pèsonaj la m-th nan fisèl la.
>> Men, kite a ale pi devan epi fè soustraksyon 32 soti nan li.
Lòt Bagay si karaktè a nan la fisèl ke nou ap chèche
se pa ant ti kras yon ak yon ti kras z, ale pi devan
ak jis enprime li soti chanje.
Se konsa, nou te prezante sa a notasyon kwochè
pou strings nou an yo ka resevwa nan la m-th karaktè nan fisèl la.
>> Mwen te ajoute kèk lojik kondisyonèl, tankou Grafouyen nan yon semèn semèn pase a, kote
Mwen jis lè l sèvi avèk fondamantal mwen konpreyansyon yo genyen sou sa ki nan
ale sou anba kapo a.
Èske pèsonaj la m-th nan la pi gran pase oswa egal a yon?
Tankou, se li 97, oswa 98, oswa 99, ak pou fè?
>> Men, se li tou mwens pase oswa egal nan valè a nan miniskil z?
Men, si se konsa, ki liy sa a vle di?
14, sa a se sòt de la jèm nan lide a tout antye,
kapitalize lèt la pa tou senpleman soustraksyon 32 soti nan li,
nan ka sa a, paske mwen konnen, pou chak ki tablo, Ki jan nimewo m 'yo ap reprezante.
Se konsa, kite yo ale pi devan epi kouri sa a, apre konpile kapitalize 0.c,
ak kouri kapitalize 0.
>> Se pou nan tape nan yon bagay tankou Zamyla nan tout miniskil antre.
Epi, koulye a nou gen Zamyla nan tout majuskul.
Se pou nou tape nan Rob nan tout miniskil.
Ann eseye Jason nan tout miniskil.
Apre sa, nou kontinye resevwa nan fòse lèt majiskil.
Genyen yon ensèk minè ke mwen kalite pa t 'antisipe.
Avi nouvo èd memwa mwen an fini monte sou liy lan menm jan ak non yo,
ki santi l yon ti kras sal.
>> Se konsa, mwen pral ale isit la, ak aktyèlman nan fen pwogram sa a
enprime soti yon karaktè newline.
Sa a tout.
Avèk printf, ou pa bezwen pase nan varyab oswa kòd fòma.
Ou ka literalman jis enprime yon bagay tankou yon newline.
>> Se konsa nou ale pi devan epi fè kapitalize 0 ankò, relance li, Zamyla.
Epi kounyeya, se nan yon ti kras bèl pase.
Koulye a, èd memwa mwen an se sou pwòp nouvo liy li yo.
Se poutèt sa se tout bon epi li bon.
Se poutèt sa se yon bon egzanp.
Men, mwen pa fè sa menm nesesèman bezwen difisil Kòd 32 an.
Ou konnen ki sa?
Mwen te kapab say-- mwen pa fè sa tout tan tout tan sonje sa diferans lan se.
>> Men, mwen konnen ke si mwen gen yon lèt ka pi ba,
Mwen esansyèlman vle fè soustraksyon nan tou sa distans la se ant ti kras
yon ak gwo Yon, paske si Mwen sipoze ke tout lòt lèt yo se menm bagay la,
ki ta dwe jwenn travay la fèt.
Men, olye ke fè sa, ou konnen ki sa?
Genyen yon lòt fason toujou.
>> Si sa a kapitalize 1.c-- si m 'te yo mete ki nan yon dosye ki apa a.
se pou yo kapitalize 2.c jan sa a.
Mwen pral reyèlman netwaye sa a moute isit la.
Ak olye pou yo menm gen konnen oswa pran swen sou moun nivo ki ba
detay aplikasyon, mwen se olye pou jis ale nan enprime yon karaktè,
quote unquote, pousan C, ak Lè sa a, rele yon lòt fonksyon ki
egziste ki pran yon diskisyon, ki se yon karaktè, tankou sa a.
>> Li sanble nan C, gen nan yon lòt fonksyon rele
nan Upper, ki kòm non li sijere pran yon karaktè
ak fè li nan dosye anwo li yo ekivalan, ak Lè sa a retounen li
se konsa ke printf kapab ploge li nan la.
Se konsa, fè sa, menm si, mwen bezwen prezante yon lòt dosye-a.
Li sanble gen nan yon lòt dosye ke ou ta ka konnen sèlman nan klas,
oswa yon liv, oswa yon sou entènèt referans, ki rele C type.h.
>> Se konsa, si mwen ajoute ke nan mitan header m ' dosye, e kounye a, re-konpile pwogram sa a,
capitalize2, ./capitalize2 Antre nan.
Se pou nou tape nan Zamyla nan tout miniskil, toujou ap travay menm bagay la.
Men, ou konnen ki sa?
Li sanble ke yo anwo gen kèk lòt fonctionnalités.
>> Ak kite m 'prezante sa a mande isit la, sòt de malabiyman
yo te rele, men moun pou manyèl.
Li sanble ke pi Linux òdinatè, jan nou ap itilize isit lan-- Linux opere
system-- gen yon lòd rele nonm, ki di,
hey, òdinatè, ban m ' manyèl òdinatè la.
Ki sa ou vle gade moute nan ki manyèl?
>> Mwen vle yo gade jiska fonksyon an rele anwo, Antre nan.
Lè li nan yon ti kras skre li pafwa.
Men, remake nou ap nan la manyèl Linux pwogramè la.
Ak li nan tout tèks.
Apre sa, remake ke gen nan la non nan fonksyon an moute isit la.
Li sanble li gen yon kouzen rele pi ba, ki fè opoze an.
Apre sa, avi anba Rezime, yo sèvi ak sa a fonksyone paj an moun, se konsa pale,
ap di m 'ke mwen bezwen gen ladan c type.h.
Apre sa, mwen te konnen ke nan pratik.
>> Isit la, li nan montre m 'de la prototip pou fonksyon an,
se konsa ke si mwen janm vle sèvi ak sa a Mwen konnen sa yo pran kòm D ',
ak sa yo retounen kòm pwodiksyon.
Lè sa a, si mwen li deskripsyon an, mwen wè
nan plis detay sa ki fonksyon an fè.
Men, pi enpòtan, si Mwen gade anba valè retou,
li di valè a tounen se sa yo ki an lèt la konvèti,
oswa C, D 'orijinal la, si konvèsyon an pa te posib.
>> Nan lòt mo, nan anwo pral eseye konvèti yon lèt bay ka anwo kay la.
Men, si se konsa, li k ap pase yo retounen li.
Men, si li pa kapab pou kèk reason-- petèt li nan deja anwo a,
petèt li nan yon pwen esklamasyon oswa kèk lòt punctuation--
li nan jis ale nan retounen C orijinal la,
ki vle di mwen ka fè kòd m ' pi bon ki fèt jan sa a.
>> Mwen pa bezwen tout nan sa yo liy reprize nan kòd.
Tout moun nan liy ki Mwen te jis make kapab
dwe tonbe nan sèlman yon sèl senp liy, ki se sa a men pousan printf
C rive nan anwo S bracket mwen.
Lè sa a ta pwal genyen yon egzanp nan pi bon konsepsyon.
>> Poukisa aplike nan 7 oswa 8 liy nan kòd, tou sa li te mwen jis
efase, lè ou ka olye pou tonbe nan tout sa lojik ak desizyon y ap pran
nan yon sèl sèl liy, 13 kounye a, ki rpoz sou yon bibliyotèk fonksyon-
yon fonksyon ki vini ak C, men sa fè ekzakteman ki sa ou vle l 'fè.
Epi, franchman, menm si li pa t 'vini ak C,
, ou te kapab aplike li tèt ou, kòm nou te wè, ak jwenn int negatif
epi pou yo jwenn pozitif int semèn pase a kòm byen.
>> Kòd sa a kounye a se pi plis lizib.
Epi, tout bon, si nou woulo liv leve, gade ki jan pi plis kontra enfòmèl ant
vèsyon sa-a nan pwogram mwen an se.
Li se yon ti kras lou tèt kounye a, ak tout bagay sa yo gen ladan.
Men, sa a OK, paske kounye a mwen kanpe sou zepòl yo nan pwogramasyon
anvan mwen.
Moun ki li te ki aplike anwo reyèlman
fè m 'yon favè, anpil tankou moun ki va aplike Stirling reyèlman
fè m 'yon favè kèk tan de sa.
Se konsa, kounye a nou gen yon pi bon pwogram konsepsyon
ki aplike egzak lojik la menm.
>> Pale de Stirling, se pou m 'ale pi devan epi fè sa.
Kite m 'ale pi devan epi sove sa a ranpli kòm stirling.c.
Epi li vire soti, nou ka kale tounen yon lòt kouch bèl tou senpleman kounye a.
Mwen pral ale pi devan epi fwe moute yon lòt pwogram nan prensipal
isit la ke tou senpleman re-egzekite longè fisèl jan sa a.
Se konsa, isit la nan yon liy nan kòd ki ap resevwa m 'yon afè soti nan itilizatè a.
Nou kenbe lè l sèvi avèk sa a ankò e ankò.
Kite m 'bay tèt mwen yon varyab rele n nan int kalite ki estoke yon nimewo.
>> Ak kite m 'ale pi devan epi fè lojik sa a.
Pandan ke pèsonaj la n-th nan la fè pa egal antislach 0, ale pi devan
ak kantite n.
Lè sa a, enprime soti printf pousan mwen n.
Mwen reklamasyon ke pwogram sa a isit la, san yo pa rele longè fisèl,
figi konnen longè yon fisèl.
>> Apre sa, majik la se antyèman enklizyon nan liy 8
isit la ak sa ki sanble nouvo sentaks, sa a antislach 0 nan quotes sèl.
Men, poukisa se sa?
Oke, konsidere sa k te ale sou tout tan tout tan sa a.
>> Apre sa, kòm yon sou kote mwen anvan m 'bliye, reyalize tou, ke nan adisyon nan paj sa yo moun
ki vini ak yon tipik Linux sistèm tankou CS50 IDE,
reyalize ke nou, nan anplwaye kou a, yo te genyen tou
te fè yon vèsyon sit entènèt nan ide sa a menm rele
reference.cs50.net, ki te gen tout moun ki paj nonm menm,
nan tout sa menm dokiman, osi byen ke
yon ti kras ti bwat nan tèt la ki pèmèt ou konvèti tout nan san patipri a
lang Esoteric nan mwens konfòtab mòd, kote nou, anplwaye a ansèyman,
te ale nan ak yo te eseye senplifye kèk nan lang lan kenbe bagay sa yo
konsantre sou lide yo, epi yo pa kèk nan teknikalite yo.
Se konsa, kenbe nan tèt ou, reference.cs50.net kòm yon lòt resous kòm byen.
>> Men, poukisa fè fisèl longè travay nan wout la mwen pwopoze yon ti moman de sa?
Isit la nan Non Zamyla a ankò.
Ak isit la nan non Zamyla a bwat nan, jan mwen kontinye ap fè,
nan penti yon foto nan li ke yo te, reyèlman, jis yon sekans nan karaktè.
Men, Zamyla pa egziste nan izolasyon nan yon pwogram.
>> Lè ou ekri ak kouri nan yon pwogram, w ap itilize Mac ou a oswa PC ou
kòm memwa, oswa RAM se konsa pale.
Epi ou ka panse a òdinatè w lan tankou ke li gen
anpil nan jigokte nan memwa jou sa yo.
Ak yon Gig vle di dè milya, se konsa dè milya de bytes.
>> Men, kite a remonte nan tan.
Apre sa, ta kwè ke nou ap lè l sèvi avèk yon òdinatè reyèlman fin vye granmoun ki
sèlman gen 32 bytes nan memwa.
Mwen te kapab, sou ekran òdinatè mwen an, tou senpleman trase sa a soti jan sa a.
>> Mwen te kapab tou senpleman di ke mwen òdinatè te gen tout nan memwa sa a.
Lè sa a se tankou yon bout bwa nan memwa, si ou sonje foto nou yo soti nan dènye fwa.
Men, si mwen jis divize sa a nan tan ase,
Mwen reklamasyon ke mwen gen 32 bytes nan memwa sou ekran an.
>> Koulye a, an reyalite, mwen kapab sèlman trase byen lwen tèlman sou ekran sa a isit la.
Se konsa, mwen pral ale pi devan, ak jis pa konvansyon,
trase memwa òdinatè mwen an a kòm yon kadriyaj, pa sèlman kòm youn liy dwat.
Espesyalman, mwen reklamasyon kounye a ke kadriyaj sa a, sa a kadriyaj 8 pa 4,
jis reprezante tout 32 bytes nan memwa disponib nan Mac mwen an,
oswa ki disponib nan PC m 'yo.
Apre sa, yo ap vlope sou de liy, jis
paske li adapte plis sou ekran an.
Men sa se multiple an premye.
Sa a se multiple, dezyèm lan.
Sa a se multiple nan twazyèm.
>> Lè sa a se multiple nan 32nd.
Oswa, si nou panse tankou yon òdinatè syantis, sa a se multiple 0, 1, 2, 3, 31.
Se konsa, ou gen 0 a 31, si ou kòmanse konte nan 0.
>> Se konsa, si nou sèvi ak yon pwogram ke apèl jwenn fisèl,
e nou jwenn yon fisèl soti nan moun nan tankou mwen t 'rele Zamyla, Z-A-M-Y-L-A,
ki jan nan mond lan fè a kenbe òdinatè tras nan ki multiple,
ki ti moso nan memwa, ki dwe nan ki fisèl?
Nan lòt mo, si nou kontinye nan tape yon lòt non nan òdinatè a,
tankou sa a Andi, lè w rele jwenn fisèl yon dezyèm fwa,
A-N-D-mwen te fini nan nan memwa òdinatè a kòm byen.
Men, ki jan?
>> Oke, li sanble ke anba a kapo, ki sa C fè lè estoke strings
ki kalite mouvman yo moun nan, oswa ki soti nan kèk lòt sous, se li
defini nan fen yo ak yon espesyal antislach character--
0, ki se jis yon fason espesyal nan di 80 Bits nan yon ranje.
>> Se konsa, A-- sa a se nimewo 97 rapèl la.
Se konsa, kèk modèl nan 8 Bits reprezante kantite desimal 97.
Sa a antislach 0 se literalman nimewo a 0, a.k.a. nul, N-U-L, kontrèman ak pi bonè,
N-U-L-L, nou te pale osijè de.
Men, pou kounye a, jis konnen ke sa a antislach 0 se jis 80 Bits nan yon ranje.
>> Apre sa, li nan jis liy sa a nan la sab ki di nou kichòy sou bò goch la
ki dwe nan youn fisèl, oswa yon sèl kalite done.
Apre sa, anyen a dwat a ki dwe nan yon lòt bagay.
nan Non Andi, pandan se tan, ki jis vizyèlman
k ap pase nan vlope sou nan liy lan lòt, men sa a jis yon detay ayestetik,
Menm jan an tou se nul sispann.
>> Li se yon afè de yon karaktè A-N-D-Se mwen menm, plis yon karaktè sekrè senkyèm,
tout 0 Bits, ki jis demarcates nan fen Non Andi la kòm byen.
Men, si nou rele jwenn fisèl yon twazyèm fwa nan òdinatè a yo ka resevwa yon fisèl tankou
Maria, M-A-R-I-A, Menm jan an tou se Maria a Non nul sispann ak antislach 0.
>> Sa a se fondamantalman diferan soti nan ki jan yon òdinatè ta tipikman
magazen yon nonb antye relatif, oswa yon flote, oswa lòt done kalite toujou, paske sonje,
yon nonb antye relatif se nòmalman 32 Bits, oswa 4 bytes, oswa petèt menm 64 Bits,
oswa uit bytes.
Men, anpil primitif nan yon òdinatè nan yon lang programmation
gen yon nimewo fiks de bytes anba hood-- la
petèt 1, petèt 2, petèt 4, petèt 8.
>> Men, strings, pa konsepsyon, gen yon Nimewo dinamik nan karaktè.
Ou pa konnen an avanse, jouk kalite mouvman yo moun nan Z-A-M-Y-L-A,
oswa M-A-R-I-A, oswa A-N-D-mwen. Ou pa konnen konbyen fwa itilizatè a ki pral frape
klavye a.
Se poutèt sa, ou pa konnen ki jan karaktè anpil moun nan davans
w ap ale nan bezwen.
>> Se konsa, C jis kalite kite tankou yon sekrè myèt anba kapo a
nan fen fisèl la.
Apre estoke Z-A-M-Y-L-A nan memwa, li tou jis mete ekivalan a
nan yon peryòd.
Nan fen yon fraz, li mete 80 Bits, se konsa yo
sonje ki kote Zamyla kòmanse ak fini.
>> Se konsa, sa ki nan koneksyon an, lè sa a, nan pwogram sa a?
Pwogram sa a isit la, Stirling, se tou senpleman yon mekanis
pou jwenn yon afè soti nan itilizatè a, liy 6.
Liy 7, mwen deklare yon varyab rele n ak mete l 'egal a 0.
>> Lè sa a, nan liy 8, Mwen tou senpleman mande a kesyon, pandan y ap pèsonaj la n-th fè
pa egal tout 0 bits-- nan lòt mo, pa fè sa
egal sa a espesyal karaktè, antislach 0, ki
te jis ki espesyal character-- nul ale pi devan epi jis kantite n.
>> Epi kenbe fè li, epi kenbe fè li, epi kenbe fè li.
Se konsa, menm si nan tan lontan an nou te itilize mwen,
li nan parfe amann Semantics yo sèvi ak n,
si w ap jis ap eseye konte tan sa a fè espre,
ak jis vle rele l 'n.
Se konsa, sa a jis kenbe mande kesyon an, se karaktè n-th nan nan tout 0s?
Si ou pa, gade nan gade kap vini an, gade nan pwochen an, gade nan pwochen an,
gade nan pwochen an.
>> Men, le pli vit ke ou wè antislach 0, liy sa a loop-- 9yèm ane jouk rive 11-- sispann.
Ou kraze soti nan riban an ti tan, kite andedan nan ki n varyab
yon konte manm nan tout nan la karaktè nan fisèl la ou te wè,
kidonk enprime li soti.
Se konsa, kite a eseye sa a.
>> Kite m 'ale pi devan epi, san yo pa lè l sèvi avèk fonksyon an Stirling,
men jis lè l sèvi avèk pwòp mwen homegrown vèsyon isit la yo rele Stirling, kite m 'ale pi devan
ak kouri Stirling, kalite nan yon bagay tankou Zamyla, ki mwen konnen davans
se sis karaktè.
Ann wè si li fonksyone.
Vreman vre, li nan sis.
Ann eseye ak Rob, twa karaktè, twa karaktè kòm byen, ak pou fè.
Se poutèt sa se tout sa ki k ap pase sou anba kapo a.
Apre sa, remake koneksyon yo, lè sa a, ak premye semèn nan
nan klas, kote nou te pale osijè de yon bagay tankou distraksyon,
ki se jis stratifikasyon sa a nan lide, oswa konpleksite, sou tèt prensip de baz yo.
Isit la, nou ap sòt de kap anba kapo a nan Stirling,
se konsa pale, eseye figi konnen, ki jan ta li kapab aplike?
>> Apre sa, nou te kapab re-aplike li tèt nou.
Men, nou ap pa janm ankò pral re-aplike Stirling.
Nou ap jis ale nan sèvi ak Stirling yo nan lòd
ki aktyèlman jwenn kèk longè strings.
>> Men, gen nan pa gen majik anba kapo a.
Si ou konnen ke anba kapo machin lan, yon afè
se jis yon sekans nan karaktè.
Epi sa sekans nan karaktè tout ka numériquement adrese
ak bracket 0, bracket 1, bracket 2, epi ou
konnen ke nan fen a nan yon fisèl se yon karaktè espesyal, ou kapab konnen ki
ki jan fè anyen ki pi nan yon pwogram, paske tout li klou desann nan
ap li ak ekri memwa.
Sa se, chanje ak kap nan memwa, oswa k ap deplase bagay sa yo
alantou an memwa, bagay sa yo enprime sou ekran an, ak pou fè.
>> Se konsa nou kounye a itilize newfound sa a konpreyansyon yo genyen sou sa strings aktyèlman
yo anba kapo a, ak kale tounen yon lòt kouch
ki moute jouk koulye a nou te te inyore tout ansanm.
An patikilye, nenpòt ki lè nou te aplike yon pwogram,
nou te gen liy sa a nan kòd tou pre anwo a deklare prensipal la.
E nou te espesifye int anile prensipal la.
>> Epi sa anile andedan parantèz yo gen te di tout tan sa a ke prensipal
tèt li pa pran okenn agiman.
Nenpòt opinyon ki prensipal la se pral jwenn soti nan itilizatè a
te soti nan kèk lòt mekanis, tankou jwenn int,
oswa pou w jwenn flote, oswa pou w jwenn fisèl, oswa kèk lòt fonksyon.
Men, li sanble ke lè ou ekri yon pwogram,
ou ka aktyèlman presize ke pwogram sa a va
pran entrain soti nan moun nan nan liy lan lòd tèt li.
>> Nan lòt mo, menm si nou konsa byen lwen gen te kouri jis ./hello alo
oswa pwogram ki similè yo, tout nan a lòt pwogram ke nou te te lè l sèvi avèk,
ke nou tèt nou pa t 'ekri, gen te pran, li sanble,
liy lòd arguments-- bagay sa yo tankou fè.
Ou di yon bagay tankou fè, ak Lè sa a yon mo dezyèm fwa.
Ou sonnen, ou di sonnen, ak Lè sa yon mo dezyèm lan, non an nan yon dosye-a.
>> Oswa menm RM oswa CP, menm jan ou ta ka te wè oswa itilize deja
yo retire oswa kopi dosye.
Tout moun nan sa yo pran sa yo rele liy lòd arguments--
Mo adisyonèl nan èd memwa a tèminal.
Men, moute jouk koulye a, nou tèt nou pa te gen
sa a liksye nan pran enfòmasyon nan men gwoup la itilizatè lè li aktyèlman kouri
pwogram nan tèt li nan liy lan lòd.
>> Men, nou ka fè sa pa re-deklare prensipal k ap deplase pi devan, pa tankou ke li gen
anile nan parantèz, men de sa yo agiman
instead-- premye yon nonb antye relatif la, ak dezyèm yon bagay nan
nouvo, yon bagay ke nou ap ale nan rele yon etalaj, yon bagay ki sanble nan Lespri Bondye
nan sa nou te wè nan grate kòm yon lis, men yon etalaj de strings, menm jan nou pral byento wè.
Men, kite a wè sa a pa fason pou egzanp, anvan nou
fè distenksyon ant ekzakteman ki sa sa vle di.
>> Se konsa, si m 'antre nan CS50 IDE isit la, mwen te ale devan yo
epi ki te deklare nan yon dosye rele argv0.c modèl la yo.
Apre sa, remake bagay la sèlman sa a, se diferan byen lwen tèlman
se ke mwen te chanje anile int arg fisèl argv louvri bracket, fèmen
bracket.
Apre sa, remake pou kounye a, gen nan pa gen anyen andedan nan tout sa yo parantèz.
>> Gen nan pa gen kantite.
Apre sa, gen nan pa gen mwen, oswa n, oswa nenpòt ki lòt lèt.
Mwen jis lè l sèvi avèk la parantèz kare pou kounye a,
pou rezon nou pral vini tounen nan nan jis yon moman.
>> Epi, koulye a sa m ap pral fè se sa a.
Si arg egal egal 2-- ak sonje ke egal egal
se operatè a egalite konpare kite la ak dwa pou egalite.
Li pa plasman an operatè, ki se
sèl siy ki egal, ki vle di kopi de dwat la nan bò gòch la kèk valè.
>> Si arg egal egal 2, mwen vle di, printf, hello, pousantaj, nouvo liy,
ak Lè sa a ploge in-- ak isit la a nouvo a trick-- argv bracket 1, pou rezon
ke nou pral tounen vin jwenn koulye a.
Lòt Bagay si arg pa fè sa egal 2, ou konnen ki sa?
Se pou nou jis ale pi devan epi, kòm dabitid, ekri an lèt detache soti alo mond ki pa gen okenn sibstitisyon.
>> Se konsa, li ta sanble ke si arg, ki kanpe pou konte agiman, egal 2,
Mwen pral enprime soti alo yon bagay oswa lòt.
Sinon, pa default, mwen se pral enprime alo nan lemonn.
Se konsa, sa sa vle di?
>> Oke, kite m 'ale pi devan epi sove sa a ranpli, ak Lè sa a fè fè argv0,
ak Lè sa a ./argv0, Antre nan.
Apre sa, li di alo nan lemonn.
Koulye a, poukisa se sa?
>> Oke, li vire soti nenpòt lè ou kouri nan yon pwogram nan liy lan lòd,
w ap ranpli nan sa nou pral jeneralman rele yon vektè agiman.
Nan lòt mo, otomatikman nan òdinatè, sistèm nan fonksyone,
ki pral nan men nan pwogram ou tèt li yon lis tout nan mo sa yo
ki moun nan tape nan èd memwa a, nan ka ou
pwogramè a vle fè yon bagay ki gen enfòmasyon sa a.
Ak nan ka sa a, bay yon lòd ase Mwen te tape nan èd memwa a se ./argv0.
>> Se konsa, ki kantite agiman se sa ki ke yo te pase nan pwogram mwen an se sèlman yon sèl.
Nan lòt mo, agiman an konte, ki te rekonèt kòm arg
isit la tankou yon nonb antye relatif, se sèlman yon sèl.
Youn, nan kou, pa fè sa egal de.
Se konsa, sa a se sa simagri, alo nan lemonn.
>> Men, kite m 'pran yon kote sa a.
Kite m 'di, argv0.
Lè sa a, ki jan sou Maria?
Lè sa a, frape Antre.
>> Apre sa, remake ki sa maji k ap pase isit la.
Koulye a, olye nan mond alo, mwen gen chanje konpòtman an nan pwogram sa a
lè yo pran D 'a pa soti nan jwenn fisèl oswa kèk lòt fonksyon,
Men, nan, aparamman, lòd mwen tèt li, ki sa mwen orijinal tape nan.
Apre sa, mwen ka jwe jwèt sa a ankò pa chanje li nan Stellio, pou egzanp.
>> Epi, koulye a mwen wè yon lòt non toujou.
Ak isit la, mwen ta ka di Andi.
Apre sa, mwen ta ka di Zamyla.
Epi nou ka jwe jwèt sa a tout lajounen, jis rakorde nan valè diferan,
toutotan mwen bay egzakteman de mo nan èd memwa a,
sa yo ki arg, agiman mwen konte, se 2.
>> Mwen wè ke non konekte nan printf, pou chak kondisyon sa a isit la?
Se konsa, nou sanble yo gen kounye a kapasite a espresif
nan pran D 'soti nan yon lòt mekanis, soti nan liy la bay lòd sa yo rele,
olye ke gen yo rete tann jouk itilizatè a kouri pwogram nan,
ak Lè sa a pouse l 'oswa li lè l sèvi avèk yon bagay tankou jwenn fisèl.
>> Se konsa, sa sa a ye?
Arg, ankò, se jis yon nonb antye relatif, ki kantite words-- arguments--
ki itilizatè a bay nan la èd memwa, nan fenèt la tèminal,
ki gen ladan non pwogram nan.
Se konsa, ./argv0 nou an, se, efektivman, Non pwogram nan,
oswa ki jan mwen kouri pwogram nan.
>> Sa konte kòm yon mo.
Se konsa, arg ta dwe 1.
Men, lè mwen ekri Stellio, oswa Andi, oswa Zamyla, oswa Maria,
sa vle di konte a agiman se de.
Se konsa, kounye a gen nan de mo te pase nan.
>> Apre sa, avi, nou ka kontinye lojik sa a.
Si m 'aktyèlman di yon bagay tankou Zamyla Chan,
yon non plen, kidonk pase twa agiman nan total,
kounye a li di default la ankò, paske, nan kou, 3 pa fè sa egal 2.
>> Se konsa, nan fason sa a, mwen gen aksè via argv nouvo agiman sa a
ke nou te kapab teknikman rele anyen nou vle.
Men, pa konvansyon, li nan argv ak arg, respektivman.
Argv, agiman vektè, se kalite nan yon synonym pou yon pwogram
karakteristik nan C rele yon etalaj.
>> Yon etalaj se yon lis nan valè menm jan an tounen, nan do, nan do, nan do.
Nan lòt mo, si se yon sèl isit la nan RAM, youn nan pwochen se dwa akote l,
e yo gen dwa akote l.
Yo pa ap tout lòt peyi sou plas la.
Epi sa senaryo lèt, kote bagay sa yo yo sou tout plas la nan memwa,
ka aktyèlman ap yon karakteristik pwisan.
Men, nou pral tounen vin jwenn ke lè nou pale sou amateur estrikti done.
Pou kounye a, yon etalaj se jis yon ti moso nan memwa vwazen,
chak nan ki gen eleman yo tounen, nan do, nan do, nan do,
epi jeneralman kalite la menm.
>> Se konsa, si ou panse osijè de, ki soti nan yon ti moman de sa, ki sa ki yon afè?
Oke, yon fisèl, tankou Zamyla, Z-A-M-Y-L-A, se, teknikman,
jis yon etalaj.
Li nan yon etalaj de karaktè.
>> Se konsa, si nou reyèlman trase sa a, jan mwen te fè pi bonè, kòm yon ti moso nan memwa,
li sanble ke chak nan sa yo karaktè pran moute yon multiple.
Lè sa a, gen nan sa a espesyal Sentinel karaktè, antislach a 0,
oswa tout Bits uit 0, ki demarcates nan fen ki fisèl.
Se konsa, yon fisèl, li vire soti, site unquote fisèl,
se jis yon etalaj de chara-- Char yo te yon kalite done vrè.
>> Epi, koulye a argv, meanwhile-- se pou yo ale tounen nan pwogram nan.
Argv, menm si nou wè pawòl Bondye a fisèl isit la, se pa yon afè tèt li.
Argv, agiman vektè, se yon etalaj de strings.
>> Se konsa, menm jan ou ka gen yon etalaj de karaktè, ou ka gen pi wo nivo,
yon etalaj de strings se konsa, pou egzanp, lè m 'tape yon ti moman de sa ./argv0
argv0, espas Z-A-M-Y-L-A, mwen te deklare ke argv te gen de strings nan l-- ./argv0,
ak Z-A-M-Y-L-A. nan lòt mo, arg te 2.
Poukisa se sa?
>> Oke, efektivman, sa k ap pase sou se ke chak nan strings sa yo
se, nan kou, yon etalaj de karaktè tankou anvan, chak nan ki gen karaktè
pran moute yon sèl multiple.
Epi yo pa konfonn 0 aktyèl la nan non pwogram nan ak 0 a,
ki vle di tout Bits 80.
Apre sa, Zamyla, pandan se tan, se toujou tou yon etalaj de karaktè.
>> Se konsa, nan fen a nan jounen an, li vrèman sanble tankou sa a anba kapo a.
Men, argv, pa nati nan ki jan prensipal travay, pèmèt m 'nan vlope tout bagay sa yo
moute nan, si ou pral, yon etalaj pi gwo ki, si nou yon ti kras sou senplifye
sa foto a sanble ak pa fè sa byen rale l selon echèl la moute a,
etalaj sa a se sèlman nan gwosè 2, premye a eleman nan ki gen yon fisèl,
eleman an dezyèm nan ki gen yon kòd.
Epi, nan vire, si ou kalite rale nan sou chak
nan tout sa yo strings, ki sa ou wè anba kapo a
se ke chak fisèl se jis yon etalaj de karaktè.
>> Koulye a, menm jan ak strings, nou te kapab jwenn aksè
nan pèsonaj la m-th nan yon afè lè l sèvi avèk ki bracket kare notasyon.
Menm jan an tou, ak ranje an jeneral, nou ka
sèvi ak kare bracket notasyon yo ka resevwa nan nenpòt ki kantite strings nan yon etalaj?
Pou egzanp, kite m ' ale pi devan epi fè sa.
>> Kite m 'ale pi devan epi kreye argv1.c, ki se yon ti kras diferan tan sa a.
Olye pou yo tcheke pou argc2, Mwen pral olye pou fè sa.
Pou int mwen jwenn 0, mwen ki pi piti a pase arg, mwen plis plis,
ak Lè sa a enprime soti andedan nan sa a, pousan nan, nouvo liy, ak Lè sa a
argv bracket mwen.
>> Se konsa, nan lòt mo, Mwen pa fè fas ak karaktè moun nan moman an.
Argv, kòm enplisit pa sa yo kare vid aparèy òtopedik a dwat a argv la non,
vle di argv se yon etalaj de strings.
Apre sa, arg se jis yon int.
>> Liy sa a isit la, 6, se di seri mwen egal a 0.
Konte tout wout la jiska, men se pa ki gen ladan, arg.
Lè sa a, sou chak iterasyon, enprime soti yon kòd.
Ki sa ki fisèl?
>> fisèl la m-th nan argv.
Se konsa, Lè nou konsidere ke anvan m 'te lè l sèvi avèk bracket a kare
notasyon yo ka resevwa nan on a karaktè nan yon fisèl, kounye a
Mwen lè l sèvi avèk notasyon a bracket kare yo ka resevwa nan fisèl la on nan yon etalaj.
Se konsa, li nan kalite yon kouch pi wo a, concept.
>> Se konsa, sa ki nan pwòp sou sa a pwogram kounye a, si mwen konpile argv1,
ak Lè sa a fè ./argv1, ak Lè sa tape nan yon bagay tankou foo ba baz,
ki se twa mo yo default ke yon syantis òdinatè rive nan pou nenpòt ki lè
li bezwen kèk mo kontneur, ak frape Antre, yo chak nan pawòl sa yo,
ki gen ladan non pwogram nan, ki se nan argv nan kote a an premye,
fini moute ke yo te enprime yon sèl nan yon tan.
Men, si mwen chanje sa a, epi mwen di yon bagay tankou argv1 Zamyla Chan,
nou jwenn tout twa nan sa yo mo, ki se argv0,
argv1, argv2, paske se nan sa a ka arg, konte a, se 3.
>> Men, sa ki nan pwòp se si ou konprann ki argv se jis yon etalaj de strings,
epi ou konprann ke yon afè se yon etalaj de karaktè,
nou ka aktyèlman kalite sèvi ak sa a kare bracket notasyon plizyè fwa
yo chwazi yon fisèl, ak Lè sa a chwazi yon karaktè nan fisèl la,
plonje nan pi fon jan sa a.
Nan egzanp sa a, kite m 'ale pi devan epi rele argv2.c sa a.
Ak nan egzanp sa a, kite m 'ale pi devan ak fè annapre a pou int mwen jwenn 0,
mwen se mwens pase arg, mwen plis plis, jis tankou anvan.
Se konsa, nan lòt words-- e kounye a, sa a a ap vin konplike ase.
Lè sa a, mwen pral di repekte sou strings nan argv,
kòm yon kòmantè vin jwenn mwen.
Lè sa a, mwen pral gen yon pare solèy pou riban, ki ou pwobableman
te fè, oswa konsidere kòm fè, nan grafouyen, kote
Mwen pral di int-- mwen se pa ale nan sèvi ak mwen ankò,
paske mwen pa vle lonbraj, oswa sòt de recouvrir mwen an ki deja egziste.
>> Mwen pral, olye de sa, di j, paske sa a, se ale mwen an varyab apre mwen,
lè m ap jis ap eseye konte nimewo senp.
Pou j vin 0-- epi tou, n, ki pral jwenn longè a sevè nan argv bracket mwen,
toutotan j se mwens pase m, j plis plis, fè sa ki annapre yo.
Ak isit la nan pati a enteresan.
>> Enprime soti yon karaktè ak yon liy nouvo, rakorde nan argv bracket mwen, bracket j.
OK, se konsa kite m 'ajoute kèk kòmantè isit la.
Repekte sou karaktè nan fisèl kounye a,
ekri an lèt detache j-th karaktè nan m-th fisèl.
Se konsa, kounye, se pou yo konsidere sa ki sa yo kòmantè vle di.
>> Repekte sou strings yo nan argv-- konbyen
strings yo nan argv, ki se yon etalaj?
Arg anpil, se konsa mwen iteration soti nan mwen egal 0 jiska arg.
Pandan se tan, ki jan anpil karaktè yo nan fisèl la m-th nan argv?
>> Oke, yo ka resevwa ki repons, Mwen jis rele longè fisèl
sou swen an aktyèl fisèl mwen sou, ki se argv bracket mwen.
Apre sa, mwen ale nan pou yon ti tan magazen ki valè nan n, jis pou rezon caching,
sonje li pou efikasite.
Lè sa a, mwen pral inisyalize j nan 0, kenbe prale toutotan j se mwens pase n,
epi sou chak iterasyon j enkreman.
>> Lè sa a, nan isit la, pou chak kòmantè m 'sou liy 12,
enprime soti yon karaktè, ki te swiv pa yon liy nouvo,
espesyalman argv bracket mwen ki ban m 'fisèl la m-th
nan argv-- se konsa pawòl Bondye a premye, nan dezyèm mo, twazyèm pawòl Bondye a, kèlkeswa sa.
Lè sa a, lè plonje j nan pi fon, epi vin m 'pèsonaj la j-th nan mo sa a.
Se konsa, nan efè, ou ka trete argv kòm yon milti-dimansyon,
kòm yon ki genyen de dimansyon, etalaj, kijan tout kalite pawòl nan sanble
tankou sa a nan tèt ou ou a zye, ak chak karaktè
se kalite konpoze nan yon kolòn, si ki ede.
>> An reyalite, lè nou toumante sa a apa nan semèn nan lavni,
li k ap pase yo dwe yon ti kras pi plis sofistike pase sa.
Men, ou ka vrèman panse a sa, pou kounye a,
kòm jis ki genyen de dimansyon sa a etalaj, annakò ak sa yon nivo nan li
se tout nan strings yo.
Lè sa a, si ou plonje nan pi fon, ou ka jwenn nan karaktè endividyèl yo
ladan'l lè l sèvi avèk notasyon sa a isit la.
>> Se konsa, sa se efè a nèt?
Kite m 'ale pi devan epi fè argv2-- reprize li.
Mwen te fè yon erè isit la.
Chal deklare nan bibliyotèk fonksyon Stirling.
Se konsa, tout tan sa a, li nan petèt ki apwopriye
ke nou ap sòt de fini egzakteman ki kote nou te kòmanse.
>> Mwen vise moute, chal deklare bibliyotèk fonksyon Stirling.
OK, rete tann yon minit.
Mwen sonje ke, espesyalman depi li nan dwa isit la.
Mwen bezwen gen ladan string.h nan sa a vèsyon nan pwogram nan.
>> Kite m 'ale pi devan epi yo genyen ladan string.h, delivre sa, ale pi devan
ak compile argv2.
Koulye a, isit la nou ale, fè argv2, Antre nan.
Epi menm si li nan yon ti kras skre nan premye gade,
remake ke, tout bon, ki sa se enprime se dot argv2.
>> Men, si mwen tape kèk mo apre a èd memwa, tankou argv2 Zamyla Chan,
Antre, tou yon ti kras skre nan premye gade.
Men, si nou woulo liv tounen moute, ./argv2 Z-A-M-Y-L-A C-H-A-N.
Se konsa, nou te iteratif sou tout mo.
Epi, nan vire, nou te iteratif sou chak karaktè ki nan yon mo.
>> Koulye a, apre tout bagay sa yo, reyalize ke gen nan
yon lòt detay nou te te kalite nan inyore tan sa a tout antye.
Nou jis takine apa sa entrain prensipal nan ka ta dwe ye?
Ki sa ki sou pwodiksyon prensipal la?
>> Tout moun nan tan sa a, nou te te jis kopye e kole
int nan mo nan devan prensipal yo, menm si ou ka wè sou entènèt,
pafwa mal nan vèsyon ki pi ansyen nan C ak konpilateur, ki yo di anile,
oswa pa gen anyen nan tout.
Men, tout bon, pou vèsyon an nan C ke nou ap lè l sèvi avèk,
C 11, oswa 2011, reyalize ke li ta dwe Int.
E li ta swa gen anile oswa arg ak argv isit la.
>> Men, poukisa int prensipal yo?
Ki sa ki li aktyèlman retounen?
Oke, li vire soti tout nan tan sa a, nenpòt ki lè ou te ekri yon prensipal pwogram
se toujou retounen yon bagay.
Men, li a te fè sa an kachèt.
>> Gen yon bagay ki yon int, kòm liy 5 sijere.
Men, sa ki int?
Oke, gen nan sa a konvansyon nan pwogram,
kijan si pa gen anyen gen ale mal ak tout se byen,
pwogram ak fonksyon jeneralman return-- yon ti jan counterintuitively--
0.
0 jeneralman vle tout se byen.
Se konsa, menm si ou panse a li kòm fo nan anpil kontèks,
li aktyèlman jeneralman vle di yon bon bagay
>> Pandan se tan, si yon pwogram retounen 1, oswa negatif 1, oswa 5, oswa negatif 42,
oswa nenpòt ki pa 0 valè, ki jeneralman vle
te ke yon bagay ale mal.
An reyalite, sou pwòp ou a Mac oswa PC, ou ta ka gen aktyèlman wè
yon mesaj erè, annakò ak sa li di yon bagay oswa lòt, erè
Kòd negatif 42, oswa erè Kòd 23, oswa yon bagay tankou sa.
Nimewo Sa se jeneralman jis yon allusion pwogramè a, oswa konpayi an
ki te fè lojisyèl an, sa ki ale mal epi poukisa,
pou yo ka gade nan dokiman yo oswa kòd,
ak figi konnen ki sa ki nan erè aktyèlman vle di.
Li nan jeneralman yo pa itil nan nou fen itilizatè.
>> Men, lè retounen prensipal 0, tout se byen.
Men, si ou pa presize sa prensipal ta dwe retounen,
li pral jis otomatikman retounen 0 pou ou.
Men, retounen yon bagay lòt bagay se aktyèlman itil.
>> Nan pwogram final sa a, kite m ' ale pi devan epi rele exit.c sa a,
ak prezante dènye a nan jodi a sijè, yo konnen kòm yon kòd erè.
Kite m 'ale pi devan epi yo genyen ladan nou an dosye abitye moute tèt, fè int prensipal la.
Ak tan sa a, se pou yo fè int arg, fisèl argv, ak parantèz mwen
yo vle di ke li nan nan etalaj la.
Lè sa a, kite m 'jis fè yon chèk saniti.
Tan sa a, si arg pa fè sa egal 2, lè sa a ou konnen ki sa?
Bliye li.
Mwen pral yo di ke, hey, itilizatè, ou yo ki disparèt lòd liy agiman
antislach n.
>> Lè sa a, sa a, se li.
Mwen vle sòti.
Mwen pral jwenn preemptively, ak prematireman reyèlman, retounen
yon lòt bagay pase nimewo a 1.
ale nan valè pou premye a erè ki ka rive se 1.
Si ou gen kèk lòt inègza sitiyasyon ki ta ka yo fè fèt,
ou ta ka di retounen 2 oswa retounen 3, oswa petèt menm negatif 1 oswa negatif 2.
>> Sa yo se sèlman kòd sòti ki, jeneralman,
sèlman itil nan pwogramè a, oswa nan konpayi ki nan anbake lojisyèl an.
Men reyalite a ke li nan pa 0 se sa ki enpòtan.
Se konsa, si nan pwogram sa a, mwen vle garanti ke pwogram sa a sèlman
travay si itilizatè a bay m ' ak yon konte agiman nan de,
non an nan pwogram nan, ak kèk lòt mo, mwen kapab aplike kòm anpil jan sa a,
rele nan itilizatè a ak printf di, manke lòd liy agiman,
retounen 1.
Sa pral jis imedyatman kite pwogram nan.
>> Se sèlman si arg egal 2 nou pral jwenn desann isit la, nan ki pwen mwen pral di,
alo pousan an, antislach n, argv1.
Nan lòt mo, mwen se pa pral apre argv 0,
ki se jis non an nan pwogram nan.
Mwen vle enprime soti hello, vigil, pawòl Bondye a dezyèm ki moun nan tape.
Ak nan ka sa a sou liy 13, tout se byen.
>> Mwen konnen ke arg se 2 lojikman soti nan pwogram sa a.
Mwen pral ale pi devan epi retounen 0.
Kòm yon sou kote, kenbe nan tèt ou ke sa a se vre nan grafouyen kòm byen.
>> Lojikman, mwen te kapab fè sa a ak ankapsulasyon liy sa yo
nan kòd nan sa a kloz lòt isit la.
Men, sa a sòt de san nesesite indenting Kòd m 'yo.
Apre sa, mwen vle fè super klè ke pa gen pwoblèm sa,
pa default, alo yon bagay pral jwenn enprime,
toutotan itilizatè a kolabor.
>> Se konsa, li trè komen yo sèvi ak yon kondisyon, jis yon si,
trape kèk inègza sitiyasyon, ak Lè sa a sòti.
Lè sa a,, se konsa lontan tout se byen, pa gen yon lòt bagay,
men jis gen kòd la deyò ke si, paske li nan
ekivalan nan sa a ka an patikilye, ak lojik.
Se konsa, mwen retounen 0, jis klèman siyifi tout se byen.
>> Si m 'omisyon retounen nan 0, li ta ap otomatikman sipoze pou mwen.
Men koulye a, ke mwen retounen youn nan omwen ka sa a,
Mwen pral, pou bon mezi ak klè, retounen 0 nan ka sa a.
Se konsa, kounye kite m 'ale pi devan epi fè sòti, ki se yon seg pafè a jis kite kay la.
>> Men, asire sòti, ak kite m 'ale pi devan epi fè ./exit, Antre nan.
Ak pwogram nan rele nan m ', manke liy lòd agiman.
OK, kite m 'kolabore.
>> Se pou m 'olye pou fè ./exit, David, Antre nan.
Epi kounyeya, se di, alo David.
Epi ou pa ta nòmalman wè sa a.
>> Men, li sanble ke gen nan yon espesyal fason nan Linux ki aktyèlman wè
ak sa sòti Kòd yon pwogram quitté.
Pafwa nan yon grafik mond tankou Mac OS oswa Windows,
ou sèlman wè nimewo sa yo lè yon mesaj erè Pops leve sou ekran an
ak pwogramè a montre ou ki kantite.
Men, si nou vle wè sa ki erè a mesaj se, nou ka fè l 'isit lan--
se konsa ./exit, Antre, ekri an lèt detache manke liy lòd agiman.
>> Si m 'fè kounye a eko $ ?, ki se ridikil skre kap.
Men, $?
se enkantasyon la majik ki di, hey, òdinatè,
di m 'sa anvan an Kòd sòti pwogram nan te ye a.
Apre sa, mwen frape Antre.
Mwen wè 1, paske se sa ki mwen te di fonksyon prensipal mwen an retounen.
>> Pandan se tan, si m 'fè ./exit David, ak frape Antre, mwen wè, alo David.
Men, si mwen kounye a fè $ eko ?, mwen wè alo 0.
Se konsa, sa a pral aktyèlman gen enfòmasyon enpòtan
nan yon kontèks debugjeur a, pa konsa pou sa bagay ke ou, moun nan, ta pran swen.
Men, debugjeur a ak lòt pwogram nou pral sèvi ak sa a semès
pral souvan gade nan nimewo sa a, menm si li nan sòt de kache lwen
sof si ou gade pou li, yo detèmine si wi ou pa yon nan pwogram
ekzekisyon te kòrèk oswa kòrèk.
>> Se konsa, ki pote nou nan sa a, nan fen jounen an.
Nou te kòmanse jodi a pa gade nan debogaj, ak nan vire nan kou a
tèt li, ak Lè sa a plis enteresan, teknikman anba kapo a
nan sa ki strings yo, ki dire semèn nou jis te pran pou yo akòde,
ak sètènman pran yo, yo pou yo akòde nan grafonyen moun.
>> Nou Lè sa a, gade nan ki jan nou kapab jwenn aksè karaktè moun nan yon fisèl,
ak Lè sa a ankò te pran yon pi wo nivo gade nan bagay sa yo, gade nan ki jan well--
si nou vle jwenn nan moun eleman nan yon lis tankou estrikti,
pa ka nou fè sa ak strings miltip?
Apre sa, nou kapab ak liy lòd agiman.
Men, foto sa a isit la nan jis bwat se démonstration nan lide jeneral sa a
nan yon etalaj, oswa yon lis, oswa yon vektè.
E li depan de nan kontèks, tout nan mo sa yo
vle di bagay sa yo ti kras diferan.
Se konsa, nan C, nou ap sèlman pral pale sou yon etalaj.
Ak yon etalaj se yon moso nan memwa, chak nan moun nan
eleman yo vwazen, tounen, nan do, nan do, nan do.
>> Ak moun ki eleman yo, jeneralman, nan kalite la done menm, karaktè,
karaktè, karaktè, karaktè, oswa fisèl, fisèl, fisèl, fisèl, oswa int,
int, int, tou sa li se nou ap eseye magazen.
Men, nan fen jounen an, sa a se sa li sanble concept.
Ou ap pran ou memwa òdinatè a oswa RAM.
Epi ou ap Sur li soti nan idantik gwosè bwat, nan tout ki
yo tounen, nan do, nan tounen, nan do nan fason sa.
>> Ak sa ki nan bèl sou ide sa a, ak lefèt
ke nou ka eksprime valè nan fason sa a ak premye a nan estrikti done nou an
nan klas la, vle di nou kapab kòmanse yo rezoud pwoblèm ak kòd
ki te vin se konsa entwitif nan semèn 0.
Ou ap sonje telefòn nan liv egzanp, kote
nou itilize yon separe ak konkeri, oswa yon algorithm rechèch binè,
pase atravè yon antye pakèt moun sou non ak chif yo.
Men, nou sipoze, sonje, ki ki liv telefòn te deja klase,
ke yon lòt moun te deja kalkile ki out-- bay yon lis non
ak numéros Ki jan yo alphabetize yo.
Epi, koulye a ke nan C nou, tou, gen kapasite nan
mete bagay sa yo soti, pa fizikman nan yon liv telefòn
men nòmalman nan yon òdinatè a memwa, nou yo pral kapab semèn pwochèn
prezante ankò sa a men premye a nan estrikti done nou an nan yon array--
men plis enpòtan, aktyèl òdinatè algoritm syans aplike
nan kòd, ak ki nou ka magazen done nan estrikti tankou sa a,
ak Lè sa a kòmanse manipile li, epi ki aktyèlman rezoud pwoblèm ak li,
ak yo bati sou tèt de sa, finalman, pwogram nan C,
nan Piton, nan JavaScript, rekèt baz done ak SQL?
>> Epitou, n ap wè ke tout moun sa yo lide diferan stat.
Men, pou kounye a, sonje ke nan domèn ke nou prezante jodi a
te bagay sa a isit la, ak mond lan nan chifreman.
, Ak nan mitan pwoblèm kap vini ou tèt ou ap rezoud se atizay la nan chifreman,
eskalade ak de-eskalade enfòmasyon, ak chifreman
ak dechifre tèks, ak an konsideran finalman
ke ou kounye a konnen ki sa se anba kapo a
se konsa ke lè ou wè oswa resevwa yon mesaj tankou sa a, ou
tèt ou ka Decoder li.
Tout bagay sa a, ak plis ankò pwochen fwa.
>> [VIDEO lèktur]
>> -Mover Fèk rive.
Mwen pral ale vizit pwofesè kolèj l 'yo.
Oui.
Hi.
Li nan ou.
Rete tann!
David.
Mwen jis ap eseye figi konnen ki sa ki rive ou.
Tanpri, anyen ta kapab ede.
Ou te kolèj li kolokasyon, yo pa t 'ou?
Ou te gen avè l 'lè li te fini pwojè a CS50?
>> [MIZIK jwe]
>> -Sa Te CS50.
>> Mwen renmen kote sa a.
>> -Eat Yo.
Nou pwal soti nan biznis.
>> [FEN lèktur]