[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