DAVID Malan: Sa a se CS50, ak sa a se kòmanse nan yon semèn. Ak sa ki nou te panse nou ta fè se rale tounen rido a nan yon aparèy ki anpil nan ou te pwobableman gen te mache sot pase yo kounye a pou ane, men petèt pa janm byen li te ye sa li ye. Se konsa, aparèy sa a ap pwobableman gade abitye nan pi fò nan ou pa kounye a. [Lèktur videyo] -A triyonf nan matematik ak konpetans mekanik se sa a nouvo gwo otomatik kalkilatris nan Inivèsite Harvard. Pwoblèm konplike nan matematik mete nan machin lan nan fòm kode sou kasèt yo avèk presizyon rezoud nan yon minit fraksyon nan tan an obligatwa pou moun kalkil. Ki fèt nan akselere pwosesis tout fòm matematik ak syantifik rechèch, jeyan sèvo a mekanik pral travay pou Etazini Marin jouk nan fen lagè a. [Lèktur videyo END] DAVID Malan: Se konsa, sa a, se sa ou wè nan Syans Sant la, ki se kote ke machin se kounye a loje. Ou aktyèlman wè sèlman pati nan li. Se sèlman yon pòsyon se kounye a nan ekspozisyon, e ke sa a yon aparèy yo rele Mwen la Mak, epi li te esansyèlman yon kalkilatris reyèlman gwo. Li te siksede pa Mark II a, epi li nan soti nan II a Mark ke nou aktyèlman jwenn yon ti jan nan leksik. Sa a se egzanp lan premye anrejistre nan yon bagay w ap sou yo vin tout twò abitye ak a sou kou nan semès la - savwa, yon ensèk. Se konsa, li te tounen soti nan yon pwen Mak la II aparèy pa te fonksyone byen, epi sou pi pre enspeksyon, te gen tout bon yon ensèk - yon vè - ki vè - anndan an. Men, depi tout tan, nou te refere yo bay erè nan pwogram kòm pinèz. Se konsa, plis sou ki ap vini yo. Pale de videyo kòm byen, si ou pa gen deja, konnen ke CS50 se evidamman filme-li. Konferans yo tipikman moute dwa apre klas nan sòt de yon lage pre- inedi fòma, ak Lè sa a, yon jou osinon de jou apre sa, nou mete yon rezolisyon ki pi wo ak pi wo bon jan kalite vèsyon. Ou ka sonje Vanessa, ki moun ki te gen nan fòtin nan jwe ak Google Glass, ki mwen vin chonje chaje tan sa a. Se konsa, si ou vle vini apre klas ak jwe yo, yo ta dwe travay jodi a. Men, si ou ta renmen wè sa Vanessa te wè lòt jou a, ki sa ou ap wè isit la - kite m 'ogmante volim nan isit la sou laptop mwen. [Lèktur videyo] -Se konsa, kite m 'keu sa a se leve. Tout dwa. Se konsa, manyen sa a. Tout dwa. OK, Glass. Ekri yon videyo. Tout dwa. Vanessa? [Lèktur videyo END] DAVID Malan: Tout dwa, se konsa rezon ki fè yo ke li pa t 'travay pou pifò nan ou nan fen klas la te paske mwen t'ap nan dosye yon èdtan nan ki pye montre nan tèt mwen apre yo fin Mwen mete linèt yo desann. Se konsa, jounen jodi a, mwen pral kite yo koupe, men mèsi ou Vanessa pou yo te tankou yon bon espò. Pandan se tan, yon koup nan anons anvan nou fòje devan jodi a. Se konsa, yon sèl, CS50 gen yon tradisyon pou fè sa nou kapab pou yo eseye fè yon trè gwo klas santi pi piti. Men, Se poutèt sa, pi chak vandredi, n ap ranmase nan yon restoran nan kare, dife a ak glas, ki gen 30 oswa 40 nan kamarad klas ou a, tèt mwen, kèk nan anplwaye a ansèyman yo, epi nou jis gen yon manje midi trè aksidantèl. Nou souvan envite zanmi ki soti nan endistri yo, ansyen elèv nan klas la, ansyen elèv nan la kolèj, vrèman jis chat chak lòt moute, pale sou lavi apre kolèj, lavi nan kolèj, ak renmen an. Se konsa, si ou ta renmen patisipe nan sa a premye manje midi tankou sa a vandredi nan 1:15 PM, ki an tèt ak sa yo ki URL nan kèk pwen. Espas yo limite, kidonk, n ap fè premye vini an premye ap sèvi yo. Men, nou pral fè sa a ankò sou yon renouvlab baz, se konsa pa enkyete w si ou pa fè sa fè l 'nan sa a pakèt premye. Koulye a, an tèm de resous yo bay curricularly pa kou a, gen yon touye tout, epi si ou pa gen rale moute sou sit wèb kou a nan deja, an patikilye, anba konferans, w ap jwenn ke tout bagay nou t 'semèn pase a ki gen la, tou de nan videyo ak sòt kèk nan elektwonik fòm. Men, pi lwen pase videyo yo, w ap jwenn ke gen kounye a plen tèks relve nòt, pou egzanp, nan chak konferans. Se konsa, si nou aktyèlman tounen nan sa a ekran isit la ak Vanessa, ak navige nan kwen an anba nan ekran an, w ap jwenn ki aktyèlman, pa pou Konferans Vandredi a, men si nou tounen nan Mèkredi, depi sou karakteristik sa a pran yon kèk jou, w ap jwenn ke ou ka aktyèlman rale moute, pou pi bon oswa pou vin pi mal, tout pawòl ki mwen oswa yon volontè sou sèn te di. Men, pi plis pase jis sa. Ou ka aktyèlman fè rechèch li, ou kapab klike sou nenpòt nan moun sa fraz, sote ak sa yo ki pwen nan videyo a, tout direksyon ak nan fen fè materyèl la nan tout plis navigab. Men, si ou ta pito pa swiv li an detay sa yo, w ap jwenn, pou egzanp, sa a meni ti kras isit la pou 1.5x vitès, vitès 2x, oswa mwen f mwen deja pale twò vit pou ou, 0.75x vitès. Se konsa, reyalize tout sa ki disponib gen pou ou. Men, pi lwen pase sa, pou konferans, reyalize ki nou menm tou nou fè resous sa yo disponib kòm byen. Dyapozitiv, kòd egzanp, anyen ke mwen fè sou sèn oswa nan avanse nan klas, nou pral afiche gen pou ke ou ka jwe ansanm nan kay la oswa nan Sanders. Men, sa ki nou menm tou nou te panse nou ta fè sa ane a pou premye fwa se tou ofri ou ak valktroug nan egzanp sa yo. De pli zan pli, menm jan mwen te reflete sou la valè de konferans CS50 a, mwen te kòmanse nan kesyon jis ki jan itil li se pou ou nèg yo chita la, pou m 'kanpe isit la, ak pou m 'pale nan nou la a, patikilyèman kòm materyèl la, nan egzanp, jwenn plis konplèks. Paske toujours, apre yo fin kèk nimewo nan minit, yon moun pral zòn soti, li Lè sa a, ou rate kèk apèsi kle nan kèk egzanp, ak Lè sa a ou se esansyèlman ale pou pòsyon ki rete a nan klas la, ki se pa itilize nan pi bon nan tan ou, oswa, reyèlman, nou ansanm kòm yon klas. Se konsa, sa nou te panse nou ta eseye fè, patikilyèman pou kèk nan pi plis nan egzanp konplèks ke mwen pa ta kapab fè jistis nan nan klas sa, nou ta ka pa gen tan pou nan klas, oswa ou ka jis zòn soti pandan, se nou pral pwodui yon seri de valktroug nan sa yo egzanp pou ke si ou ale nan, pou egzanp, paj videyo Vandredi dènye a isit la anba egzanp, ou ap wè ke pou Vandredi, gen nan kounye a sa a mennen nan valktroug. Men, fòma a nan sa yo pral chanje sou tan. Pou kounye a, nou ap lè l sèvi avèk yon senp YouTube playlist. Men, sa m 'te ak ekip pwodiksyon nou apre sa te mache nan chak ak tout youn nan moun ki egzanp ankò, èspere ke montre yo nan pi plis klè ekzakteman ki sa takeaways yo ta ka oswa yo ta dwe soti nan chak. Se konsa, w ap jwenn, pou egzanp, ki soti nan dènye semèn yo, tout nan egzanp yo grate nou te ale nan yo fè linear nan ki alamòd. Se konsa, santi yo lib yo angaje yo oswa ou pa angaje yo nan materyèl sa a. Vrèman yon tèm nan kou sa a an patikilye se ke gen la pwobableman plis nan chemen an nan resous pase ou kapab pètèt absòbe plis pase kou a nan yon semès. Men, sa a ekspre. Li nan vle di yo dwe pou ke ou kòm chak elèv kapab pwòp tèt ou-chwazi ki baze sou style aprantisaj ou. Se konsa, si konferans travay pou ou, gwo. Si seksyon travay pou ou, gwo. Si valktroug travay pou ou pi bon, gwo. Li reyèlman yo pral jiska ou chwazi resous ki sa travay pi bon pou ou. Finalman, gras a yon matyè premyè nan la Natirèlman, nou menm tou nou bay yon kanonyal mete nan nòt, sekretè. Se konsa, olye ke gen ou nèg tèt desann nan konferans fè madigriji ak kreyon desann bagay sa yo ke vini nan klas yo, nou, anplwaye yo, ap ofri ou ak sa nou santi yo se yon seri kanonyal nan nòt delivre nou an ki distraksyon, se konsa ke si ou se isit la epi yo angaje yo, se ou ki se vre wi: angaje ak sa k ap pase sou li a, ak elèv nan klas ou yo ap fè moute sou etap, ak sa ki nan moute sou ekran an, epi yo pa tou senpleman ekri desann motamo sa ki te pase yo te di. Se konsa, reyalize tout moun ki resous yo disponib nan ou. Koup, nan repons nan yon FAQ, ap kòmanse sa a Mèkredi. Nou esansyèlman rete tann jouk apre yo fin ki pi lòt klas yo fè pou nou ka misyon pou minimize kantite a nan chanjman ke nou bezwen fè. Men, vini fen semèn sa a, kòmanse Dimanch, pral gen yon egzanp tan youn nan sa nou rele seksyon super. Sa yo pral filme-li pou moun ki pa kapab ale nan, ak esansyèlman, nan tèt kou a ap mache nou nan kèk nan pòsyon C nan kou a, nan direksyon yon fen nan seri pwoblèm yon sèl, ki a pwal C premye nou an ki baze seri pwoblèm. Apre sa, pral jis pou seksyon si ou vle nan patisipe nan yon Ki sa ki pral vin seksyon renouvlab ki te dirije pa 50 plis kou a nan anseye zanmi chak semèn. Sou dimanch oswa lendi oswa Madi, nou gen 90 seksyon minit nan yon trè tradisyonèl sans, ki pral opòtinite pou men sou ak plis ankò entim revizyon an materyèl kou a. San yo pa plis tarde, kite m 'prezante tèt kou a, ki gen dèyè sèn nan avè m ', fè tout bagay rive. Si moun ki jodi a isit la te kapab rantre nan m ', Rob ak Lauren ak Jozèf ak Lucas, tout ki moun yo te avèk la kou pou kèk tan. RJ se tankou nan twazyèm manm ekip nou an. Li pa ta ka isit la jodi a, men li mande m 'yo montre yon foto nan li. Mwen pa si li te vle sa a yon sèl, men gen se li ki. Men, kite m 'jis pèmèt ekip la vle di alo ak prezante tèt yo pou ke ou jwenn yo konnen yo kòm byen ke ou pwòp ansèyman parèy tèm sa a. Lauren CARVALHO: Hi. Non mwen se Lauren Carvalho. Mwen se yon titè rezidan nan LEVERETT House. Mwen tou super eksite yo dwe yon televizyon tèt pou CS50 ane sa a. CS50 se yon klas trè enteresan kòm byen kòm yon klas gwo anpil, kidonk si w gen nenpòt enkyetid, si ou santi ou tankou w ap tonbe dèyè, santi yo lib yo rive jwenn soti nan nenpòt nan nou nan heads@cs50.het, oswa m ', si ou ta renmen yo jwe avèk lò mwen puppy retriever. Isit la nan Lucas. LUCAS Freitas: Hey, mesye. Non mwen se Lucas Freitas. Mwen se yon jinyò [fèbl] syans òdinatè ak lengwistik. Mwen se aktyèlman soti nan Brazil, epi tou mwen te reyalize bò solèy leve syans Azyatik. Se konsa, si ou gen nenpòt kesyon sou syans òdinatè oswa lang oswa anyen, jis kite m 'konnen. Oswa CS50, espesyalman. JOSEPH Ong: Hi. Mwen se pitit Jozèf yo. Mwen se yon granmoun aje òdinatè etidye syans nan Elliott House. Se konsa, kite a wè. Ou pral wè m 'bò kote pote youn nan sa yo kamera gwo. Mwen se fotograf la anplwaye rezidan pou 50 kòm byen, ak elèv yo souvan pafwa erè m 'pou yon touris Azyatik. Se konsa, si ou wè m 'ak yon kamera, pa kouri ale. Jis souri epi yo pa dwe timid. Apre sa, mwen espere ou jwi 50. Mwen te renmen l 'anpil lè m' pran l ', ak Se poutèt sa mwen te TFing pou ane sa yo twa. ROB BOWDEN: Hi. Mwen se Rob. Sa a se semès katriyèm mwen ak CS50. Mwen jis gradye nan mwa me. Mwen te nan Kirkland. Mwen eksite pou sa a semès, e mwen espere ke ou se tou. DAVID Malan: Mèsi poutèt ou sa a nan ane tèt, ak RJ kòm byen. Se konsa, yon kèk nòt final la sou resous yo. Youn, p mete 0 se deja yo. Sa a yon sèl ki egziste sèlman nan estanda edisyon, ki se vle di pou la antye nan klas la. Kòmanse avèk p seri 1, pral gen HACKER edisyon nan pi kouche pwoblèm, ki, ankò, pral kouvri materyèl la ak yon ti jan pi plis nan yon defi, pandan y ap toujou manyen sou kèk nan sijè yo menm. Èske pran yon gade nan sit entènèt kou a nan pou sa spesifikasyon pou ansanm p 0. Èdtan Biwo, tou, yo ap kòmanse semèn sa a, aswè a, demen, Mèkredi, ak Jedi nan manje divès kalite koulwa sou lakou lekòl la. Tcheke cs50.net/ohs pou biwo a èdtan pou kou a, ak reyalize sa a pral trè aksidantèl opòtinite, sètènman, nan kòmansman an semès, yo rive nan yon ak ou laptop pandan repo nan sèvo. Pote kèk zanmi ak chat la moute TFs kou a ak sèrtifikasyon ak nenpòt ki kesyon ke ou ta ka genyen. Apre sa, mwen pa ka mete aksan sou ase, menm pou grafouyen ak pwoblèm seri 0, gen vrèman gen okenn kesyon bèbè. Pa gen okenn elèv twò alèz poze kesyon. Tanpri santi yo lib yo pran avantaj nan resous sa a. Li pral gen recurringly nan tout semès la, kòm ap CS50 Diskite. Sa a se diskisyon sou entènèt kou a nan fowòm nan ki adrès la. Ki sa nou ap tou fè pandan konferans la se tou kontwole sa a, gras a la ekip ansèyman kou a. Se konsa, si ou gen yon kesyon pandan delivre lekti, paske mwen di yon bagay mal oswa ou pa nan tout, pa tout vle di, mande ki nan tan reyèl, si ou gen ou laptop oswa telefòn sou sit entènèt la, ak nou pral fè pi byen nou nan tan tou pre reyèl nan reponn a sa. Èske gen nenpòt kesyon sou CS 50? Lè sa a, yon sèl nòt sot pase yo nan mwen yo ye. Sa pwoblèm nan SAT UNSAT. Kòm ou finalize kat etid ou, si ou pa gen deja, reyalize ke nan toupatou vizyon nan SAT UNSAT, ki disponib pou tout elèv, se reyèlman ede yo pran kwen nan koupe nan yon kou tankou sa a, se konsa pale, se konsa ke si ou jwenn tèt ou anreta nan mitan lannwit, 2am, 3AM, vrèman frape tèt ou atake miray ranpa a nan kote ou konnen ou 99% nan wout la gen fini, men ou gen bagay sa yo anpil lòt fè, Mwen panse ke yon sèvi ak pi bon, souvan, nan tan elèv yo se tout bon deplase sou bagay sa yo lòt pou ke ou kapab optimize tan ou tout alantou. Ak SAT UNSAT se youn mekanis via ki ou ka pran konfò nan lefèt ke 99% nan wout la gen toujou trè reprize bon. Menm jan an tou, tou, si ou te antre nan la kou ki pa gen okenn eksperyans oswa pa prèske kòm anpil jan nou koumanse jan ou panse kondisip ou ka gen, vre oswa fo, reyalize ke sa a se yon opòtinite yo pran men ou sal ak kou a, mete tèt zòtèy pye ou a nan nan dlo, se konsa pale, anpil tankou mwen menm te fè ane de sa ak pase / fail. Kòm mwen te di semèn pase a, te gen kou sa a, tankou lòt moun, pa te disponib pase / fail nan moman an, mwen pwobableman ta pa te janm te demisyone pye nan klas la, menm si mwen te fè, senk semèn apre sa, chanje lide m 'yo, kote ou ka kòm byen, epi chanje sou nan oswa soti nan sitiyasyon lèt pwofesè yo korije. Tout dwa. Se konsa, nou te gade bagay sa yo tankou sa a sou Vandredi, e nou ap trè byen vit ale pou tranzisyon nan yon bagay ki sanble plis skre jodi a. Men, li la Alòske la menm lide fondamantal. Ki sa ki te tèm jeneral la ke nou itilize dekri yon moso devinèt ki te sanble sa a? Se konsa, yon deklarasyon. Men, ou ka rele sa a nenpòt ki nimewo de bagay sa yo. Men, nou pral jis rele li yon deklarasyon, ak yon deklarasyon jis di pwogram lan - oswa nan ka a nan grafouyen, luten la - fè yon bagay. Di alo nan ka sa a. Yon bagay tankou sa nou olye pou yo rele sa? Yeah, se konsa yon ekspresyon Boolean. Yon ekspresyon Boolean se jis yon bagay ki se vrè oswa fo, ak pou grate trase yo ak fòm sa a, men tou, ak yon mak kesyon tansmèt la lide ki repons lan nan kesyon sa a se swa vrè oswa fo, repons lan se wi oswa ki pa gen yon sèl, 1 oswa 0. Epi nou sèvi ak sa yo ekspresyon Boolean andedan nan konstwi tankou sa yo, ki nou te rele ki sa? Se konsa, pwoblèm oswa yon branch. Ak kondisyon nan ou wè isit la nan Grafouyen gen yon kontneur ti kras pou yon moso devinèt nan ki fòm, bi pou yo nan ki se pou ke ou kapab trennen l 'ak gout l' sou tèt ak Lè sa a, dikte nan pwogram lan si sa a Boolean ekspresyon ki vre, fè sa seri enstriksyon, sa a seri deklarasyon, lòt fè sa seri lòt nan enstriksyon yo. Men, sonje ke ou kapab nich bagay sa yo. Menm si gen nan pa sal anpil vizyèlman nan ki moso devinèt, grafouyen ap grandi ak retresi nan anfòm tou sa devinèt moso ou trennen ak gout nan gen pou ou kapab aktyèlman fè nich sa a ak gen yon fouchèt fason twa nan wout la. Si, lòt moun si, lòt moun. Epi ou ka menm ale pi lwen pase ki pa fè nich plis ak plis jan sa nesesè. Se konsa, anfen, nou te wè konstwi tankou sa a, otreman li te ye kòm yon bouk. Lè sa a se jis yon bagay ki fè yon bagay ankò, li ankò e ankò. Nan ka sa a, li k ap pase yo yon fini kantite fwa, men nou menm tou nou wè yon egzanp kote ki kantite fwa te soti nan yon varyab, se konsa li te ka chanje. Men, nou menm tou nou wè yon lòt blòk tout ansanm rele yon blòk pou tout tan ke pèmèt nou bouk enfiniman lontan. Se konsa, yon lòt édifice ki scratches 2.0 gen - ak sa yo ki nan ou plis konfòtab ak eksperyans yo deja byen abitye avèk sa a konstwi - bagay sa yo nou te rele ki sa? Se konsa, nou rele fonksyon sa yo, otreman li te ye kòm pwosedi yo. Genyen yon ti diferans semantik, men nou pwal rele yo jis fonksyon. Men, yon fonksyon, nan ka a nan grafouyen, se yon moso devinèt koutim ki ou tèt ou ka kreye pou ke ou gen yon moso devinèt nouvo ki, nan sa a ka, ta ka rele tous, ki parèt nan mitan tout lòt la moso devinèt disponib nan grate. Menm si MIT pa t 'envante pyès sa a devinèt, ou te fè. Se konsa, yon fonksyon pèmèt ou kreye nouvo konpòtman, bay li yon non fonksyon, ak Lè sa a, rele li, se konsa pale. Vrèman sèvi ak li nan pwogram ankò, li ankò e ankò san yo pa gen rete tann pou yon moun tankou MIT desann wout la envante nouvo fonctionnalités nan grate. Ou menm, ou ka bati sa yo devinèt moso tèt ou, epi Lè sa a, jam itilize yo nan pwogram pwòp ou yo. Epitou, n ap wè yon egzanp renouvlab nan ke jodi a ak pati. Se konsa, jodi a, nou tranzisyon kounye a nan yon bagay plis Esoteric. Men, nan fen jounen an, yon bagay plis pouvwa anpil ak Ekspresif ak plis ankò reprezantan nan chemen an ke nou pral sou tout semès nan tout yon kantite nan lang - ki nan kòd oswa kòd sous. Ak sous kòd, li vire soti, se pa sa yon òdinatè Anjeneral, aktyèlman kouri. Kòd Sous sanble yon bagay tankou sa. Se konsa, sa a se, ankò, petèt ki pi senp la pwogram nou ka ekri nan yon lang yo rele C. Nou ap kòmanse toumante sa a apa anvan lontan, epi si sa a vrèman gade tankou Grèk ou kounye a, mete konfyans mwen. Nan jis yon semèn oswa de tan an, sa a yo pral tout twò abitye ak aktyèlman byen reprezantan nan de pli zan pli egzanp konplèks ak ki ou pral tou jwenn plis konfòtab. Men, ou pa kapab jis kouri sa a kalite Kòd anjeneral. Ou gen vire l 'nan yon bagay ki òdinatè nan tèt li konprann. Se konsa, pou sa, nou bezwen yon bagay nou pwal rele yon du. Yon du se yon pwogram ki pran Kòd sous, tankou ou jis te wè, jan yo D ', epi li pwodui zero ak yo menm kòm pwodiksyon, otreman li te ye kòm Kòd objè. Lè li nan moun zero ak moun yo ki ta ka gade byen tankou sa a ki finalman yo konprann pa Mac ou a oswa PC ou. Si ou te janm tande maketing la ekspresyon Intel Anndan, ki jis vle di ke yon konpayi yo rele Intel te manifaktire nan sèvo nan òdinatè w lan - otreman li te ye kòm CPU a, santral pwosesis inite - ak sa se sèlman bagay la ki konprann modèl nan zero ak moun yo. Se konsa, pa konvèti Kòd sous nan Kòd objè nan pwosesis sa a isit la ke nou pral fè ak yon koup la kòmandman nan jis ti jan yon, ou se kreye modèl nan zero ak moun yo ki anplwaye yo nan Intel gen deside reprezante deklarasyon sèten. Koulye a, mwen pa byen konnen ki se ki pa jis ensidan an sa yo zero ak moun yo. Pifò moun jou sa yo pa fè sa. Men, yon kote nan gen yon modèl nan zero ak moun yo ki reprezante nan ekri ak lèt ​​detache deklarasyon. Yon kote nan ka gen yon diferan mete nan zero ak moun yo ki reprezante nosyon de pou tout tan oswa repete 10 fwa oswa Meow menm, si li aktyèlman yon pwogram ki kapab mete kèk son. Se konsa, nan kout, moun te jis deside, anpil tankou nou te fè pou ASCII - pou lèt nan alfabè a semèn pase a - moun te deside ke menm pi konplèks modèl nan zero ak moun yo reprezante konpòtman pi konplèks tankou enprime oswa li di oswa meowing. Se konsa, pou jodi a, ak lajman pati nan semès la, nou pral pran pou akòde ke yon moun te kalkile konnen kouman ou kapab fè sa kat. Men, nou, ki konsistan avèk lide sa a nan stratifikasyon sou tèt travay la nan moun ki te vini anvan nou, pral pran pou akòde lefèt ke sa a ki pral sou anba kapo a. Men, nou ap pi plis enterese nan bilding bagay sa yo ke yo gen plis enteresan sou tèt tout bagay sa a. Se konsa, tout bon, pwogram nan premye nou te ekri nan scratches sa a te senp super yon sèl, Bonjou Mondyal la. Men, ou ka panse a sa a tankou se te nan prensipal pwogram ki rejwisans lan scratches konpòtman kòm nan Vandredi dènye. Jodi a, nou ap ale nan kòmanse tradui Grafouyen moso devinèt nan Kòd sous nan lang sa a rele C se konsa ke sa ki te sanble ak sa a sou Vandredi, kòmanse jodi a pati, se kounye a pral gade tankou sa a. Byensir plis skre. Li trè distrè ak sòt de tèt ou angourdir yo wè tout nan quotes yo ak virgules yo yo ak parantèz ak pou fè. Men, si ou kòmanse inyore anyen ou pa konprann, ak reyèlman gade nan sans nan tèks la blan sou la ekran, siman ou wè, tankou m 'fè, "Hello, nan lemonn." Sa liy moute ak nan deklarasyon koulè wouj violèt moute tèt, ak li sanble soti ke prensipal la mo kle ki pral liy moute concept ak lè vèt drapo klike. Se konsa, nan lòt mo, Lè nou konsidere ke nan grafouyen, nou aplike pwogram sa a Mondyal Bonjou ak sa yo de moso devinèt, nan C, nou pral aplike li ak sa yo kat yon ti jan skre liy yo. Men, jan nou plonje pi fon nan sa a, ou pral wè ke chak youn nan moun ki karaktè blan sou ekran an aktyèlman gen kèk siyifikasyon enpòtan, ak pi fò nan pwogram nou yo yo ale nan gade estriktirèl byen menm bagay la. Se konsa, yon deklarasyon, yo dwe klè, ki sa ki te sanble ak "mond di alo" sou Vandredi ki pral kòmanse kap renmen sa a nan Lendi. printf ("hello, mond"). Apre sa, nan kèk antislach etranj n, gen nan parantèz yo, gen nan virgules. Men, nan fen jounen an, kle a Takeaway jodi a se ke tout sa nou ap fè se tradui bagay sa yo soti nan foto fòme nan fòm tèks. Se konsa, yon bouk ki te sanble ak sa a semèn pase a ki pral kounye a gade yon bagay tankou sa. Men, kite m 'responsab, jis tankou nan Grafouyen, gen nan diferan fason reyalize objektif la menm. Menm nan C. Mwen pa montre ou sèlman a fason yo fè bagay sa yo, men se yon sèl fason yo tradui sa a pou tout tan bloke nan yon bouk nan C. Sa a yon sèl isit la, repete 10 fwa. Sa a yon sèl reyèlman ki kalite viraj lide a premye fwa ou wè li. Men, aplike ki koulye a, nou pwal sèvi ak yon pou bouk, se konsa pale. Men, byen klè gen kèk sentaks sa a, se yon konplèks ti kras la ansanm ak mwen menm ansanm ak egal ak 0, men yon fwa nou plonje nan ki pati jodi a, w ap sèlman ale wè ke se te tout tou senpleman fè kèk debaz aritmetik jwenn nou soti nan 0 sou jiska 9 oswa 10 nan ka sa a. Anfen, ak varyab, ou pral sonje ki yon varyab se yon moso nan depo. Oke, sa nou te gen sou bò gòch la gen dènye semèn ki pral gade yon ti kras yon bagay tankou sa semèn sa a. Men, ankò, pi plis sou sa ap vini yo. Nou te gen ekspresyon Boolean, ki semèn pase a, te sanble ak sa a. Sa a pati semèn, yo ap ale nan kòmanse gade yon ti kras tankou sa. Lè sa a yon sèl la aktyèlman yon ti kras rasire. Li nan aktyèlman prèske kòm senp kòm blòk yo vèt. Men, isit la nou gen, ankò, kèk sentaks nouvo ak ampersands, men ou ka petèt devine Lè nou konsidere ke nan grafouyen, ou di A-N-D, aparamman nan C, nou ap pral di comercial comercial. Men, tout bagay sa yo ap vin natirèl anvan lontan. Kondisyon. Semèn pase a, li te sanble ak sa a sou bò gòch la. Semèn sa a, sou bò dwat la, li nan pral gade tankou sa. Men, ankò, Takeaway kle a isit la se ke kòm ou wè bagay sa yo tankou ki sou dwat li, li espesyalman si an mwens konfòtab, li nan sòt de sou ou tèt, ou jwenn yon ti kras akable ki Mwen vrèman pa gen okenn lide ki jan mwen te kapab petèt vini ak ki nan grate - pa gen okenn Pun gen entansyon - jis reyalize ke li vrèman menm bagay la tou lide ki pwobableman te santi pou pi plis natirèl semèn davan an. E menm si ou pa gen plonje nan seri pwoblèm 0, mwen daresay w ap jwenn ki moso yo devinèt yo egalman entwisyon, oswa omwen vin tèlman sou tan. Se konsa, nan kite plonje pous Se pou nou jwenn men nou sal isit la ak sa a premye pwogram ki senp. Men, senp se, nan kou, manm fanmi. Pou fè sa, mwen pral chanje ekran ak sa yo ki aparèy mwen te rele nan CS50 aparèy. Aparèy la CS50 se yon moso nan lojisyèl ki ap kouri andedan yon fenèt sou Mac mwen an, epi ou ka tou kouri li nan yon lòt fenèt andedan nan PC ou sa, pèmèt mwen gen egzak la menm anviwònman òdinatè kòm chak TF, kòm chak CA, menm jan chak elèv nan klas la. Paske aparèy la CS50 se literalman yon lòt opere sistèm rele Linux - espesyalman Fedora Linux - e nou yo, anplwaye a, yo te configuré enstalasyon pwosesis la pou sa a opere sistèm nan yon fason ke youn, gen yon ti kras CS50 logo nan la mwayen, de, gen nan yon meni koutim nan anba a, ak twa, pedagojik, nou te senplifye koòdone nan itilizatè kòm plis ke posib pou ke lè ou premye bòt bagay sa a moute sou pwòp ou a Mac oswa PC, ou gen menm bagay la tou anviwònman kòm tout lòt moun, epi ou gen tout zouti yo ke ou bezwen pou kou a san yo pa gen kalkile konnen kouman ou kapab enstale chak ak chak zouti endividyèlman. Se konsa, sa a sanble relativman tankou Mac OS oswa fenèt yo. Nan kwen an men anba bò gòch, ou esansyèlman gen yon meni Start nan kalite, oswa yon meni Apple. Lè sa a, ou gen sa nou sispèk pral gen twa ou ki pi komen ikon. Youn nan se Chrome. Genyen yon navigatè andedan nan aparèy la. De se yon pwogram ki rele jdi, ki nou te wè yon ti tan semèn pase a, ki se jis yon editè grafik. , Twa se yon pwogram Tèminal, ki se yon fenèt nwa ak blan ki soti nan pase ki pèmèt nou tape plis Esoteric men plis pouvwa anpil kòmandman nan klavye nou an. Se konsa, mwen pral ale pi devan, epi klike sou jdi, ak tout rès asire ke pwoblèm mete 1, yo dwe lage nan Vandredi, pral mache ou atravè tout etap sa yo menm. Remake mwen gen yon trè senp koòdone itilizatè ak twa pati. Sou bò gòch la, mwen gen yon vid gwo fenèt yo rele Kòd sous. Sa a kote mwen pral wè yon rezime nan nenpòt ki Kòd pou m 'ekri. Sou bò nan men dwat, mwen gen yon gwo tab, kounye a unsaved, e ke sa a kote Kòd mwen k ap pase ale. Men, sou anba a, mwen te yon entegre Fenèt Tèminal, yon nwa ak blan pouse nan ki mwen ka tape kòmandman konpile ak kouri pwogram mwen an - ki se, yo fè ak kouri pwogram m 'yo. Se konsa, kite la kòmanse senp. Kite m 'ale jiska ranpli, sove. Mwen pral ale pi devan epi ale nan jharvard. Se konsa, aparèy la, endepandaman de sa Non ou ye, se ki dwe nan yon nèg yo te rele Jan Harvard, ki moun ki gen yon kay jharvard andedan anyè nan yo ki tout ou dosye vle ale. Li nan kopi pwòp ou a nan kont li, se konsa nou pa tout pataje menm kondwi a difisil. Ou jis gen ilizyon an nan pwòp Jan Harvard la. An avanse, mwen aktyèlman enstale Dropbox. Aparèy la vini preprepared ak Dropbox se konsa ke si anyen ale mal pandan semès la, si ou te configuré aparèy ou yo avèk yon gratis Dropbox kont yo, tout nan dosye ou yo ap ap otomatikman apiye moute pou ou ka trè fasil refè yo. Men, mwen pral ale nan Dropbox mwen anyè, epi gen nan deja ale yo dwe yon koup lòt bagay la. Men, mwen pral ale pi devan epi ale nan ranpli, sove. Mwen pral antre nan jharvard, Dropbox, epi jiska isit la, mwen pral bay pwogram mwen an yon senp super Non, hello.c, ak Lè sa a, sove. Se konsa, mwen gen koòdone a menm kounye a. Bagay la sèlman ki a chanje se tab la moute tèt. Se konsa, mwen trè byen vit ale nan rkree pwogram sa a soti nan la glisad yon ti moman de sa. Se konsa, nan prensipal (san valè), ak Lè sa a, printf, "Hello, mond," yon yon ti jan skre antislach n, fèmen quote, fèmen parantèz, virgules, ak Lè sa a, Ctrl S pou konsève pou. Ak Avi kòm yon sa ki sou kote jis parèt isit la sou bò gòch nan tèt. Lè sa a se pa itil jodi a, men pral itil sou tan. Ou jis wè la a, ankò, yon rezime kòd la ke ou te ekri nan Liv la. Epi paske mwen te ekri yon bagay yo rele prensipal yo, Se poutèt sa pawòl Bondye a prensipal la déja moute sou la. Men, pou pati ki pi, nou pa bezwen ke jodi a. Tout dwa, se konsa mwen reklamasyon ke sa a se mwen premye pwogram ekri nan yon pwogram lang yo rele C. Nou konnen soti nan Vandredi ke sa bagay sa a ki pral fè trè uninterestingly lè m ' kouri li se jis montre - nan lòt mo, ekri ak lèt ​​detache, kòm yon òdinatè syantis ta di - alo mond sou ekran an. Se konsa, yo fè sa, ou pral avi ke mwen gen desann ale isit la yo tèminal mwen fenèt, e kounye a, mwen gen yon kliyote èd memwa. Men, sa a se kounye a yon vèsyon klavye nan Jan mwen Harvard lakay anyè. Li se yon fason klavye via ki navige kondwi difisil m 'yo. Se konsa, mwen pa ka aktyèlman tape tankou m 'te fè semèn pase a fè hello, paske li nan ale nan di pa gen okenn règ fè sib - yon bagay ki nan mal. Mwen pa byen konnen ki sa ki mesaj vle di, men sa a paske pa default, lè fenèt sa a nwa ak blan an se louvri, mwen se andedan nan Jan Batis yo Harvard anyè lakay yo. Men, kote mwen te delivre sa pwogram nan? Nan Dropbox katab m 'yo. Koulye a, tout moun nan nou te cultivées moute ak òdinatè ki kote ou jis doub klike sou sou ikòn yon katab a, li ouvè, ak vwala. Sa a kote dosye a rele hello.c ta dwe. Se konsa, an reyalite, se pou yo fè sa. Kite m 'ale pi devan epi minimize chans pou jdi jis tankou ou ta sou Fenèt yo oswa ou Mac OS. Kite m 'ale nan Kay la katab sou bò gòch tèt. Mwen pral wè isit la yon pakèt moun sou dosye. Isit la nan katab Dropbox mwen. Checkmarks yo vle di li a te senkronize. Men, gen yon bagay kèk nan isit la, men remake ke hello.c se tout bon ki la a. Se konsa, nan Mac OS oswa Windows, nòmalman, Mwen ta doub klike sou sa, li ouvè nan tou sa pwogram nan, ak mwen se bon yo ale. Men koulye a,, omwen kòmanse jodi a, nou bezwen pran yon etap bak jis ba ou kèk zouti debaz yo pou ou twous zouti ak ki fè plis bagay sa yo pwisan anvan lontan. Se konsa, nan sa a èd memwa, mwen gen fè nan ekivalan nan doub klike la Dropbox katab. Men, fè sa, mwen pral tape CD pou chanje anyè, Dropbox, antre. Epi, koulye a remake parantèz yo nan mwen sa yo rele èd memwa kounye a di ke mwen se nan tild, ti kras nan squiggly senbòl nan tèt la rete nan pi Klavye, / Dropbox. Sa a se jis notasyon steno pou li di moun, ou yo kounye a se andedan nan Dropbox katab a, jis tankou si ou te doub klike sou li. Se konsa, kounye a si mwen ale pi devan epi tape fè hello, antre nan, mwen wè yon trè skre lòd, men se pa yon mesaj erè, li sanble, ak Lè sa a, yon lòt kliyote èd memwa. Men, si ou sonje, tout tan tout tan la vit konsa nan Vandredi, nou te fè sa a. . / Hello. Ki sa ki w ap sou yo wè se rezilta nan nan kouri mwen pwogram sa a, oswa, nan Mac OS ak PC tèm, si mwen ta nòmalman doub klike sou yon pwogram - yon app. pwogram oswa yon ègzekutabl., li ouvè yon fenèt ak kouri. Sezisman. / Bonjou se jis tankou doub klike yon pwogram nan kouri li, men li lè l sèvi avèk klavye m 'yo. Antre, alo nan lemonn. Epi sa a, li. Se konsa, kite a toumante sa a apa pou li pa santi yo twò anpil tankou grèk. Se konsa,. / Vle di ki sa? Nenpòt ki moun ki nan te navige yon klavye anviwònman tankou sa a, sa ki nan dot refere li a? Anyè a kounye a. Se konsa, anyè a kounye a se jis yon synonym pou yon katab. Se konsa, lè li di dot koupe, mwen t'ap di: gade pou yon pwogram ki rele alo nan la aktyèl anyè - nan dosye aktyèl la. Nan lòt mo, katab Dropbox mwen. Ak Se poutèt sa frape Antre apre sa aktyèlman kouri pwogram sa a. Si m 'koulye a di ki kalite LS, remake ke mwen wè tout bagay nan katab Dropbox mwen. Lè w Started.pdf, ki Dropbox ba ou pou foto gratis, mwen anyè, yon anyè piblik, Unsaved Dokiman 1 ki mwen te fè pa erè yon moman sa de sa, foo.c, ki mwen te fè pi bonè jodi a, ak Lè sa a de liy - hello.c ak hello. Hello.c se pwogram lan mwen te ekri ak jdi, ak sa ki alo nan vèt? Alo a nan vèt, se ègzèkutabl la. Nan lòt mo, lè m 'kouri lòd sa a yon ti moman de sa - kite m 'woule tounen nan tan - lè m 'kouri al fè hello, sa a, se etap la nan mitan isit la. Men, li te pran hello.c kòm opinyon - AKA Kòd sous - epi li pwodui yon dosye yo rele alo kòm pwodiksyon, ki gen tout moun sa yo zewo ak moun yo. Ak Se poutèt sa, nan fen a, mwen ka aktyèlman kouri nan yon lòd tankou. / hello. Paske nan Intel Anndan, opere mwen sistèm, Linux, ouvè moun ki zewo ak moun yo, ba yo manje an nan sèvo nan òdinatè mwen an - CPU a - e ke CPU konnen, o, isit la nan yon modèl nan zewo ak moun yo ki di ekri ak lèt ​​detache bagay sa a sou ekran an. Ki sa ki nan bagay sa a? Quote unquote, "alo nan lemonn." Tout dwa, se konsa yon rezime rapid nan kèk nan kòmandman sa yo pou nou ka kòmanse pran yo pou yo akòde. Kite m 'ale dirèkteman devan yo kote nou te kite la. Men, ou pral sonje ke nou te CD nan do nou fini yon ti moman de sa. Sa yo se, mwen bay gabèl di, pou rezon jodi a - petèt semèn sa a - kòmandman yo sèlman nou ta ka bezwen tape nan yo lòd, ki rapid san konte fè. Se konsa, CD te kanpe pou ki sa? Chanje anyè. Se jis nan ekivalan a nan doub klike sou yon katab. Men, kòm yon sou kote, si ou jwenn pèdi tout tan tout tan andedan nan ou aparèy, sa yo ki Dropbox - Mwen vle jwenn tounen nan mwen jharvard anyè - lè yo gen dout, CD, antre nan, ki pa gen okenn lòt mo, epi li jis zips ou tounen nan kote ou te kòmanse a, ki se yon chemen kout bèl ti kras. Tout dwa, se konsa kounye a lòt kòmandman. LS. Mwen tape ki yon ti moman de sa. Ki sa ou panse LS kanpe pou? Se konsa, lis, dwa? Retounen nan jou a, lè moun yo te vini moute ak sa yo kòmandman yo, yo t ap eseye yo dwe efikas, ak olye tape soti L-I-S-T antre, yo deside LS. Sa a amann. Li son ase tankou lis. Se pou yo jis LS di ki kalite antre nan, ak ki bay lis dosye yo oswa dosye nan mwen kounye a katab. mkdir, ou ka pwobableman devine. Fè anyè. Se konsa, ou pa ale nan kèk meni dosye ak chwazi New Dosye nan anviwonman sa a. Olye de sa, ou tape espas ki la mkdir lòd ak Lè sa a non an nan katab la ke ou vle kreye, epi li pral fè. RM, ou ka pwobableman devine. Retire oubyen efase. Se konsa, si ou vle efase yon dosye, ou pral wè nan mete nan pwoblèm ki jan ou ka fè sa. Men, rmdir, retire anyè. Se konsa, ankò, mwen pral yo gen tandans vole nan kèk nan sa yo detay, yon sèl, paske yo ap pa tout sa ki plezi anpil yo ap depanse tan sou, men de, nou pral ba ou nan pi plis detay nan nenpòt nan la pwoblèm kou a kouche, patikilyèman edisyon yo estanda, nenpòt nan etap sa yo ke ou ta ka bezwen tape konsa ke ou jwenn pi plis ak plis confortable ak bagay sa yo. Men koulye a, kite m 'toumante apa yon lòt bagay. Lè nou tape fè alo yon ti moman de sa, nou te wè yon sekans skre nan kòmandman. Nou te wè, ankò, fè hello. OK, se pou yo fè sa. Mwen te sou fè yon erè, men [Fèbl] kounye a admèt mwen te sou yo ak fè li fè espre. Ki sa ki mwen te fè sa ki mal jis kounye a? Yeah, se konsa mwen pa nan Dropbox a anyè, paske yon ti moman de sa mwen tape CD ak jis frape antre. Sa agrandi m 'tounen nan kote mwen te kòmanse, ki se pa kote dosye mwen se, se konsa mwen reyèlman bezwen fè CD Dropbox antre nan, epi kounye a mwen kapab fè alo RM antre nan, retire regilye dosye hello. Mwen pa konnen poukisa li la pou skre. Sa jis vle di yo se ou asire w ou vle efase alo? Ou ka tape y pou wi, antre nan, e kounye a, li la ale. Epi, koulye a si mwen tape fè alo ankò, li nan ale nan rkree Kòd objè m 'yo, rkree moun zewo ak moun yo. Men, sa ki se kontra a ak lòd sa a trè long? Oke, nou pral toumante sa a apa anvan lontan, men fè - Mwen te di yon ti jan nan yon manti blan anvan - se pa yon du. Fè se yon pwogram ki otomatikman figi konnen kouman ou kapab kouri nan yon du pou ou. Se konsa, lòd la ke ou vrèman yo ta dwe kouri yo nan lòd yo konvèti hello.c nan alo aktyèlman sanble yon pi plis ti kras tankou sa a. Men, mande Bondye padon! Nou gen aktyèlman sonje tout tan tout tan tape ke tout sekans nan kòmandman deyò. Objektif la nan fè nan lavi se sonje ke degre nan konpleksite pou nou ak otomatize Ki sa ki ta otreman gen anpil fatigan etap. Men, mwen kapab apwoksimatif sa. Se konsa, chak fèy papye sa a tronpe ti kras isit la, mwen kapab apwoksimatif ki sa sa lòd se fè pa senpleman sonnen sezisman, ki se non an nan du a nou pral lè l sèvi avèk sa a semès la. Si nenpòt nan ou te janm fè iOS devlopman pou ifon a oswa iPad, Sonnen se pwogram lan ou te itilize nan Xcode fè apps ou. Rezone, menm si, se jis yon lòt pwogram ki gen non nou ka tape nan yo lòd, ki rapid, ak pa entwodwi sa a kounye a, Mwen ka prezante yon bagay ki se yon ti kras reprezantan nan kòmandman ap vini yo. Se konsa, kite m 'fè sa manyèlman. Se konsa, RM hello, e kounye a, remake nan ka Mwen, jis kòm yon saniti tcheke - . / Hello, ki sa ou panse mwen ta dwe wè si mwen fè sa? Gen kèk kalite erè. Pa gen anyè dosye sa yo. Se konsa, ki yon sèl la aktyèlman trè dirèk. Se konsa, kounye a kite m 'klè ekran an. Kontwòl S jis efase ekran an yo retire kèk distraksyon. Epi, koulye a mwen pral manyèlman di ki kalite rezone-o alo hello.c. Se konsa, sa a se sa a pral fè? Egzakteman menm bagay la ki fè te fè pou nou, men mwen t 'jete kèk nan initil mo yo. Sonnen se pwogram lan ki nan ale nan pran yon. c dosye kòm opinyon yo epi ki pwodui zewo ak moun yo kòm pwodiksyon. Men,-o koulye a ap rele yon switch oswa drapo a. Sa a se jis jagon techie pou di sa a se yon mo ou tape nan yon èd memwa ke yon jan kanmenm enfliyanse konpòtman an nan pwogram nan w ap kouri. Se konsa, nenpòt moun ki vle devine sa-o tradwi? Sòti. Se jis nan yon moun deside-o vle di pwodiksyon yon dosye rele alo epi pran kòm D 'tou sa lan dènye mo an sou la èd memwa se, hello.c, se konsa ke si mwen frape Antre nan kounye a, pa gen anyen sanble rive. Men, etranj ase, nan mond sa a nan pwogramasyon, si pa gen anyen k ap pase, sa a, se pwobableman yon bon bagay paske gen nan pa gen erè mesaj sou ekran an. Hello, Antre. Pwogram mwen an kounye a kouri. Men, mwen ka fè estipid bagay sa yo tankou ti sa a. rezone-o, hihihi, hello.c, antre nan, epi kounye a mwen gen yon idantik pwogram yo te rele hihihi. Li konpòte li menm bagay la tou, men Non an se diferan. Se konsa, sa a se sèlman yo di ke si ou vle gen enfliyans sou konpòtman an nan yon pwogram nan, nou pral de pli zan pli wè bagay yo rele lòd liy agiman. Sa a se yon liy. Ou ap tape kòmandman. Èrgo, yo liy lòd. Ak agiman liy lòd yo se jis mo oswa moso ti kras nan sentaks ki yon jan kanmenm enfliyanse konpòtman an nan pwogram ke nou ap kouri. Tout dwa, se sa ki petèt pi an raz pwogram nou ka ekri ak wè. Se pou yo kounye a fè yon bagay plis enteresan. Kite m 'ale pi devan epi kreye yon dosye nouvo. Mwen pral ale pi devan epi sove sa a nan Anyè lakay John Harvard a kòm, kite a rele l 'custom.c, yo dwe yon ti kras pwogram koutim. Mwen pral rale nan nan tèt mwen an onglè yo isit la epi yo kòmanse ankò. Mete estanda stdio.h. Plis sou ke nan yon ti moman. Int prensipal (san valè), plis sou ke nan yon ti moman. printf ("hello, David"). Pi plis enteresan, dwa? Se konsa, kounye a si - pa paske yo te non mwen, jis paske li nan diferan - fè koutim antre. Custom, hello, David la. Men, menm sa, tou, se yon manti blan. Pwogram sa a ta ka kòm byen dwe rele david.c, paske li pa koutim konpòtman nan tout. Vrèman, mwen vle yon pwogram ki mande itilizatè a pou non yo. Se konsa, kouman mwen fè sa? Oke, kite m 'woulo liv moute sou isit la. Men, anvan m 'sèvi ak yon deklarasyon ki nan Grafouyen, anvan m 'sèvi ak printf, otreman li te ye kòm yon fonksyon, kite m ' premye mande itilizatè a pou kèk D '. Se konsa, yo fè sa, mwen bezwen fè yon koup nan bagay sa yo. Youn, mwen bezwen yon kote ki nan magazen itilizatè a non apre yo fin mwen te mande l 'oswa li pou li. Ki sa ki édifice mwen bezwen sèvi ak pwobableman nan magazen yon valè tankou sa? Yon varyab. Se konsa, kontrèman ak grafouyen, kote ou jis jwenn yon bèl moso devinèt, isit la, nou dwe sèvi ak, evidamman, mo a eksprime tèt nou. Men, koulye a, nenpòt lè ou vle yon mo oubyen yon fraz yon, nan pwogram, nou pwal rele ke yon kòd. Se konsa, yon fisèl la se yon mo oubyen yon fraz yon. Li se yon sekans nan zewo oswa plis karaktè, plis fòmèlman. Men, si ou vle tankou yon varyab egziste, ou te vle di, ban m 'yon sèl. Men, wout la pa kote ou fè sa se di virgules fisèl la, kote yo ka nenpòt sa ou vle. An reyalite, yo se yon underwhelming ti kras. Kite m 'ale pi devan ak plis ankò byen klè rele l 'non. Ban m 'yon kòd rele. Men koulye a,, ki sa ki moun nan Non pa default? Bon, si moun lan pa tape anyen nan, evidamman, gen k ap pase yo dwe pa gen okenn valè nan non. Men, li vire soti nan C, si ou pa ba yon varyab yon valè, li te ale nan gen yon valè fatra. Li ta ka gen kèk zewo aza, epi yo menm, se konsa w ap sèlman pral wè fatra, se vre wi, sou ekran an si ou eseye ekspoze l. Men, mwen ka repare ke lè li di, aktyèlman, andedan magazen nan non an apre valè. Fason a ou magazen valè nan varyab la se si ou gen yon Non varyab sou la kite, ou gen yon jan kanmenm mete sa ou vle nan magazen an li sou bò dwat la, ak sentaks la pou sa k ap pase yo dwe jan sa a. Nou pa te wè sa a anvan, men pran sou lafwa pou yon moman ki di ke gen egziste yon lòt deklarasyon nan mond lan ki mwen pral ankò rele fonksyon, ak sa a fonksyon se rele jwenn fisèl. Men, li fè sa literalman sa. Li yon jan kanmenm vin yon sekans nan karaktè soti nan imen an ak Lè sa a, fè yon bagay ak li. Lè sa a sanble skre sentaks. Nòmalman, si w ap sèvi ak siy egal - w ap nan mond lan nan, di, aljèb, epi w ap aktyèlman li di x egal 1. Isit la nou pa ap di ke Non egal jwenn fisèl. Nou ap di magazen nan non sa ki nan sou bò nan men dwat nan ki egal siy. Egal a siy reprezante plasman operatè a. Li nan sentaks la ki di mete sa ki la sou bò nan men dwat andedan sa ki nan sou bò gòch la. Se konsa, jwenn fisèl se yon moso nouvo sou fonctionnalités ki pa sèlman fè yon bagay - mande itilizatè a pou yon fisèl - li tou retounen li, se konsa pale. Se konsa, kite a wè sa k ap pase rive isit la. Mwen pral ale pi devan kounye a epi yo rale soti, ak mwen pral jwenn yon koup la erè nan èd memwa mwen. Mwen pral tape fè koutim, antre. Wow. Yon pakèt antye nan erè. Tout dwa, se konsa sa a se kalite boulvèsan, sètènman an premye, men li vire soti tout moun sa yo trè Byensir mesaj erè skre yo refere li a kèk modèl ki nou pral kòmanse wè sou tan. Se konsa, yon sèl sa a mwen pral rache koupe, paske li nan premye. Sèvi ak nan fisèl idantifyan sekrè. Sa jis vle di ke jdi, oswa rezone, nan ka sa a, pa konnen sa mwen vle di pa fisèl. Epi sa a, paske se nan C, pwogram lan lang, gen aktyèlman pa gen okenn varyab nan fisèl kalite. C pa konnen ki strings egziste. Men, nou, CS50 anplwaye yo, fè. Se konsa, nan avanse nan klas, nou kreye yon dosye rele CS50.h. Ak andedan sa a ranpli - ak plis sou sentaks k'ap vini an - andedan sa a ranpli a se yon definisyon nan sa ki mwen jis yo defini vèbalman kòm yon fisèl. Se konsa, tou senpleman pa conclure liy sa a yon sèl nan kòd nan pwogram m 'yo, mwen menm ki kounye a ansèyman jdi epi fè ak rezone tout moun ki nan vire ki sa yon fisèl la se. Mwen pa konnen ki jan ankò. Nan yon kèk semèn, nou pral kale tounen ke kouch. Men, pou kounye a, konnen ke sa a anseye du a ki sa yon fisèl aktyèlman se. Se konsa, kounye a kite m 'klè mwen tèminal desann isit la. Kite m 're-kouri fè koutim, ak mwen rezoud tout moun ki pwoblèm. Se konsa, sa a, tou, se ale nan gen yon tèm renouvlab. Mwen sèlman te ekri yon pwogram 9 liy, ak Men, mwen te gen 18 liy nan erè. Sa a kalite entimidasyon. Men, reyalize ke yo souvan Cascade tankou ke yon erè ti kras deklannche konfizyon an pou du a, ak li sanble pi mal pase sa li se. Se konsa, kounye a yon obsèvatè rize pral konnen ke mwen ap resevwa yon kòd ki soti nan la itilizatè yo, men mwen se pa aktyèlman fè sa avèk li? Mwen pa aktyèlman ap fè anyen ak li. Se konsa, si mwen aktyèlman kouri koutim ankò, li pral jis chita la. Ki sa ki nan ale sou? Pwogram mwen an sanble ap kole nan sa ki liy, ou ta di? Se konsa, li la aktyèlman kole sou liy 7. Epi nou pa te wè sa a anvan, men sou liy 7, gen nan, ankò, sa a deklarasyon, jwenn fisèl. Epi li fè sa li di. Li nan ap tann kounye a pou moun nan pran fisèl la. Sa a se konplètman unintuitive m ', moun la, paske mwen pa te di sa yo dwe fè. Men, kite m 'ale pi devan sou lafwa ak kite m 'pretann yo dwe Rob. Antre nan. Sa a pa pwogram nan mwen gen entansyon. Se konsa, nou gen Blog premye nou yo. Men, kite a eseye rezon ki fè nan poukisa sa a se ka a. Premyèman, kite m 'ranje pwoblèm sa a an premye. Kite m 'ajoute yon liy isit la ki di printf, ki sa ki jan ou rele? Se pou yo jis fè fèmen quote, fèmen parantèz. Koulye a, kite m 're-kouri pwogram nan. Pwoblèm. Mwen pa wè sa. Dwa. Mwen pa t 'compile li. Se konsa, nan yon lang tankou C, paske ou chanje kòd la sous sa pa vle di ke ou te chanje kòd objè ou jenere nouvo Kòd objè, zewo nouvo ak moun yo. Ou gen compile. Si m 'koulye a re-kouri koutim, antre nan, Ah, yon ti kras plis klè. Non mwen se Rob. Toujou buggy. Apre sa, mwen ta diskite, gen nan yon koup pinèz kounye a. Sa a jis sanble efreyan, franchman. Tankou, minim, mwen ta dwe gen yon espas la, oswa deplase nan kurseur nan liy nan nouvo. Men, aktyèlman, nouvo liy. Sa a kalite yon fraz kle isit la ke nou te wè, men se pa defini. Wout la nan ki ou jwenn yon tèks pou avanse pou pi sou liy kap vini an, ou pa fè sa. Sa a se konfizyon nan òdinatè a. Sa a sanble de liy apa nan kòd, ni nan yo ki se parfe kòrèk. Ou olye dwe fè plis eksplisit ak di, ban m 'yon liy nouvo, ki nou reprezante nan c ak antislach n. Se konsa, gen nan yon kèk karaktè sa yo. Antislach n ap ranje ki ayestetik. Kite m 'compile pwogram m' yo. Kite m 're-kouri pwogram m' yo. Sa a sanble pi bon. Li nan toujou bèl primitif, men li la tou toujou buggy. Se konsa, gen nan yon sèl - menm si ou pa janm te pwograme anvan, ou ka pwobableman pran yon devine nan rezon ki fè pwogram sa a toujou defekte. Ki sa mwen bezwen fè sa Mwen pa te fè ankò? Se konsa, mwen gen aktyèlman fè yon bagay ki gen non yo. Jis tankou nan grafouyen, ou ta ka aktyèlman bay yon varyab tankou n oswa vann san preskripsyon tankou nou te fè dènye semèn - yon valè. Men, si ou pa fè anyen ak li, pa gen anyen nan pral rive. Tout dwa, kidonk kite ranje. Kite m 'tape varyab m' la, ak kite m 'desann isit la. Kite m 'compile, kite m' re-kouri, Rob. Koulye a, mwen se jis yon moun sòt, dwa? Se konsa, sa a pa vrèman ap resevwa m 'nenpòt ki pi lwen. Men, sa ki te yon parfe natirèl ensten, mwen ta diskite, dwa? Si yo varyab la rele, epi mwen vle li ale la, poukisa pa fè sa mwen jis tape li genyen? Oke, nan kou, nou gen yo fè distenksyon ant kounye a ant sa a se yon fisèl? Remake unquote quote isit la, bonjou Non? Sa a aktyèlman tèt li se yon kòd. Li nan difisil kode. Li pa soti nan moun la. Li nan nan men m ', pwogramè orijinal la, men li la toujou yon kòd. Se konsa, si ou literalman ekri N-A-M-E andedan nan yon fisèl, sa k ap pase jwenn enprime? Oke, N-A-M-E. Nou olye bezwen di printf, pa enprime soti literalman non. Ekri an lèt detache soti valè a nan Non. Men, fè sa, nou fè sa ki annapre yo. Lè sa a se jis yon konvansyon moun. Nou olye di% s, epi ki kanpe pou fisèl. Lè sa a, nan fen quotes fèmen m 'yo, Mwen pral mete yon vigil ak pase yon agiman dezyèm nan deklarasyon sa a. Mwen pral tape Non a. Se konsa, kounye a remake nou gen yon yon ti kras nouvo sentaks. Nou toujou gen de parantèz yo, ak koulye a kite m 'di ke bagay la ant parantèz reprezante agiman nan yon fonksyon - entrain ke yo yon jan kanmenm pral gen enfliyans sou konpòtman li yo. Se konsa, pa ki lojik, ki jan anpil agiman printf sanble yo gen pran nan moman sa a? Se konsa, li sanble ap pran de, Epi sa a, tout bon konprann onkenn pa vigil la isit la. Se konsa, sa a se youn agiman nan ant quotes. Menm si li gen yon vigil nan li, tout bagay ap nan quotes, ki vle di li nan yon sèl fil long. Vigil, varyab Non. Se konsa, kounye a kite m 'rale soti. Kite m 're-kouri li. Rob. Modi li, ki sa mwen te fè sa ki mal? Tout dwa, se konsa ou gen compile. Se konsa, ankò, erè fasil fè byen bonè nan ankò e ankò. Se konsa, kounye a re-kouri koutim, Rob, antre nan, ak vwala. Nou kounye a gen yon pwogram koutim. Se konsa, mwen kounye a gen yon pwogram ki lè l sèvi avèk yon karakteristik kèk ki vo anyen. Youn, mwen lè l sèvi avèk CS50.h, otreman li te ye kòm bibliyotèk la CS50. Ak andedan nan bibliyotèk la CS50 yo fonksyon ke lòt moun te ekri - sètadi anplwaye a - pou ou pou w itilize, epi pou yo jwenn fisèl la se youn nan yo. Anndan nan liy 2 a se stdio.h, ak poukisa sa a genyen? Pran yon devine. Ki sa ki egziste andedan nan estanda IO paran? Printf. Se konsa, printf, ou pa wè li nenpòt kote lòt sou ekran an. Li dwe vini ak nan òdinatè yon jan kanmenm. Ki kote li soti? Li nan andedan nan - li an te deklare, se konsa pale, andedan nan yon dosye rele stdio.h. Koulye a, pou bagay sa a, nou ap tounen evantyèlman, paske li nan yon ti jan trouble pou kounye a. Sa refere a ki kalite retounen nou an. Sa refere a yon agiman. Men, pou jounen jodi a, nou ap konsantre jis isit la sou liy sa yo. Se konsa, fisèl Non, jis Rekapitilasyon, sa sa te fè pou mwen? Se konsa, li te deklare yon varyab nan fisèl kalite. Se konsa, li la vle di yo dwe pou mo, pa pou chif yo. Menm jan yon sou kote, si m 'te fè vle li nan dwe yon nimewo, mwen ta ka di yon bagay tankou Int. Si mwen te vle fè yon pwen k ap flote valè, yon bagay ki gen yon pwen desimal, Mwen ta ka di flote. Men, pou jounen jodi a, Mwen te jis di fisèl. Apre sa, mwen te bay sa a varyab yon non Non, men mwen te kapab yo te rele li anyen. An reyalite, orijinal, mwen rele l 'S. Sa a isit la se jis yon lòt deklarasyon. Konbyen agiman sa a deklarasyon pran? Se konsa, li jis pran yon sèl, ak ki se tou senpleman yon detay ayestetik nan montre yon bagay sou ekran an m '. Ki sa ki se sa a 8 liy fè an tèm pwofàn la? Li nan ap resevwa yon valè ki soti nan la itilizatè - savwa, yon kòd - ak sa ki li ap fè avèk li? Li nan esansyèlman Distribiye li sou nan an nèg ki sou bò men gòch nan la egal siy pou ke nan ka sa a, nan varyab Non ka aktyèlman magazen li. Lè sa a, printf se yon lòt egzanp nan yon fonksyon. Epi nou di yo rele yon fonksyon. Pou itilize yon fonksyon se yo rele yon fonksyon. Sa a bagay aparamman pran de agiman. Sa a yon sèl, vigil, yon sèl sa a. Sa a yon sèl tèt li se jis yon fisèl ki gen ladan yon kontneur. Vle di% s mete yon lòt fisèl isit la. Se konsa, pa mete Non apre yo fin vigil la, ki nan yo mete ke bagay pou mwen. Se konsa, mwen ka fè lòt bagay toujou. Kite m 'ale devan kounye a epi yo fè yon ti jan nan yon komik pwogram, men kite m 'efase sa a, ak kite m 'kreye yon bouk. Pandan ke vre. Vre nan senbòl se evidamman toujou ale yo dwe vre. Se konsa, ki kalite bouk 'yo, mwen provoqués pa ekri yon liy tankou sa a? Se konsa, yon bouk enfini, dwa? Jis pandan y ap vre. Gen nan pa gen fason mwen ka chanje pawòl Bondye a vre yo dwe nenpòt lòt bagay, se konsa sa a se jis pral kouri pou tout tan. Se konsa, si ou janm aktyèlman te gen yon pwogram nan Mac ou a oswa PC ki sanble yo te fèmen yon kote, oswa li a ap fè yon bagay e yo yon bagay, epi ou jis pa ka jwenn bagay la kite fimen sof si ou rdemare òdinatè w lan oswa rale a moute Manadjè Objektif Travay la oswa renmen an, isit la nan sa yo yon egzanp. Mwen kapab di, "Mwen se yon pwogram buggy." Fèmen quote, fèmen parantèz, virgules. Se konsa, ankò, remake modèl yo. Menm si kèk nan sentaks nou an, se nouvo, pandan y ap nan mo kle, mo kle tout bon an, notifikasyon Mwen gen menm bagay la tou kalite aparèy òtopedik Curly. Mwen te gen yon virgules ak parantèz. Se konsa, kounye a kite a ale pi devan epi pou konpile sa a. Fè koutim, koutim. Se konsa, nan pwen sa a, ou pa bezwen rekòmanse aparèy ou yo, tout dwa? Se konsa, leson ki pi fasil la isit la se ak de dwèt, Kontwòl C, nou pral kite pwogram sa a. Men, ou ka wè egzakteman poukisa bagay sa a te repete tèt li ankò e ankò. Mwen ka fè yon bagay yon ti kras pi konplèks kòm yon kol. Mwen pral ale pi devan epi di sa ki annapre yo. Pou Int, ki se yon nonb antye ki pè, mwen se jis yon non jenerik nou bay pi varyab nan pwogram lè w ap jis konte, egal 0. Kite m 'ale pi devan epi di pandan y ap mwen se, kite a di, mwens pase 100, mwen plis plis. Nou pral tounen nan sa a sentaks, men sa a jis vle di enkreman mwen ankò e ankò. Ak sa ki mwen vle fè isit la? Printf, "Mwen ka konte mwen." Sa a se yon pwogram buggy. Ki sa ki t 'mwen aktyèlman gen entansyon isit la? Pousantaj pa yo, men ou pa ta devine sa a. D% se yon nonb antye ki pè desimal. Vigil mwen. Kite m 'woule tounen. Kite m 'compile ak fè. Kite m 'relance ki gen tout koutim. Mwen ka konte reyèlman modi vit lè Mwen ekri yon pwogram tankou sa a. Koulye a, kite a fè yon bagay yon ti kras envolontè. Kouman sou kite a fè sa pandan y ap mwen se pi gran pase oswa egal a 0. Ki sa ki nan sa a ale nan pwovoke? Se konsa, lojikman, sa a se pa konsa pou sa ki gen bon konprann, paske kounye a si mwen relance sa a, rekontaj, Mwen kapab kounye a konte reyèlman, reyèlman segondè. Malerezman, sou kòm yon wo mwen kapab konte a se 4 milya de dola, kidonk sa a ki pral yo pran yon ti tan. Se konsa, poukisa pa nou kite sa a kòm nou cliffhanger, pwomèt ke sou Mèkredi, nou pral wè si se pwogram sa a fè. De, nou pral prezante jan ou tèt ou ekri fonksyon pwòp ou yo pou ke anpil byen vit, pa Mèkredi, nou pral, jan nou tranzisyon nan grate nan C, kòmanse ekri tout tan tout tan de pli zan pli konplèks pwogram ki fè anpil, pi plis pase sa a. Nou pral wè ou lè sa a. [Aplodisman] Oratè 1: Nan CS50 kap vini an, Jou devinèt te yon siksè.