DAVID J. Malan: Allura dan huwa CS50. U dan kien proprju Colton Ogden CS50, l għal aktar ta 'min l-mużika inti tista' tniżżel fil soundcloud.com/cs50. Allura llum aħna niffukaw l-aktar fuq l-arti ta 'programmazzjoni. U aħna jieħdu fejn aħna jitħalla ' off aħħar ġimgħa, li jiffoka fuq Scratch, li kien dan lingwa ta 'programmar grafika. U jieħdu l-affarijiet isfel għal livell aktar baxx, użu ta 'programmar aktar tradizzjonali lingwa magħrufa bħala C. Iżda tul it-triq, jirrealizzaw li l-istess ideat aħna tkellem dwar il-ġimgħa l-aħħar se jerġa 'jseħħ mhux biss f'dan il- lingwa C, iżda fil-maġġoranza kull oħra li aħna nħarsu lejn dan is-semestru. Allura aħna sejjaħ dan ħaġa hawn liema aħħar darba? Dan huwa rappreżentattiv ta 'dikjarazzjoni. Allura aħna sejjaħ dan stqarrija. U ma xi ħaġa. Huwa ta 'istruzzjoni li kompjuter jew Scratch tista tesegwixxi. U issa, ejja wkoll tibda ssejjaħ xi ħaġa bħal din funzjoni, għal raġunijiet aħna għandu hekk ara. Sadanittant, rajna affarijiet bħal dan. U dawn huma ġeneralment magħrufa bħala dak li jinbena? UDJENZA: Loop. DAVID J. Malan: Allura loop. Allura pjuttost sempliċi. Hija litteralment ma dak li jgħid. U fil Scratch, jekk inti tixtieq li CRAM biċċiet puzzle aktar fil hemm, il-biċċa se jikber biex tajbin. U aħna ser tara fil C li nistgħu nagħmlu l-istess ħaġa. Tip ieħor ta 'loop, għalkemm, fil Scratch jista 'jkun għal dejjem, jew hemm xi numru ta 'approċċi oħra. Imma ejja tagħti aktar ħarsa eneralista, b'wiċċ li probabbli pjuttost familjari, fil loops aktar ġenerali. MARKA Zuckerberg: One ħaġa li l-kompjuters huma verament tajba lejn huwa tirrepeti jikkmanda. Bħala persuna, youd tikseb verament bored jekk inti kellha tagħmel l-istess ħaġa lottijiet ta 'drabi fil-filliera. Iżda kompjuter tista 'tagħmel l-istess ħaġa miljuni jew saħansitra biljuni ta 'drabi, u mhux niddejjaq, u jkun kapaċi biex iwettqu li minn verament tajjeb. Hekk per eżempju, jekk I riedu jixtiequ kulħadd fuq Facebook għal għeluq sninha billi jibgħatilhom email, jista 'jieħu me aktar minn seklu li attwalment jiktbu out kollha ta 'dawk emails lill kulħadd. Iżda biss bi ftit linji tal-kodiċi, I tista ' ikollhom sistema ibgħat email lil kulħadd fuq Facebook li jixtiequ minnhom birthday kuntenti. Allura dak hu li loops huma u għaliex dawn qed siewja u xi ħaġa li l-kompjuters tista 'tagħmel tajjeb ħafna. DAVID J. Malan: Mela jekk inti ħadthom kien il-benefiċjarju ta 'xi wħud tal-CS50 u Ispazju Dropbox ta 'tard, dan huwa attwalment preċiżament dak li aħna do, bl-użu kodiċi pjuttost bħal dik. Aħna essenzjalment ikollhom big spreadsheet li fih folks ġew inputjar tagħhom ismijiet u indirizzi email. U aħna kiteb ftit żgħira ta 'kodiċi li tista jtenni fuq dawk l-indirizzi u bżiq out indirizzi uniċi ħadd każ sottomess ħinijiet multipli. U wara dan, aħna ibgħat email awtomatizzata minn bot CS50, l inkluż il-kodiċi tal-kupun. Issa aħna wkoll ħares lejn dan jinbena aħħar darba. U dan huwa partikolari eżempju ta 'dak? Allura, yeah, espressjoni Boolean. U l-forma hija maħsuba biex jaqbdu dan ukoll. Dawn il-kwistjonijiet kollha tal- jiffurmaw vera jew falza fil Scratch se tfittex ftit xi ħaġa bħal din. U aħna sejħa dan espressjoni Boolean. C'est tabilħaqq veru jew falza, iva jew le. Huwa mod ta jwieġeb mistoqsija. U Sadanittant inti tista 'tuża dawn Boolean espressjonijiet ġewwa tal constructs bħal dawn, li ta ' kors huma kundizzjonijiet jew fergħat, proverbial frieket fit-triq. U jistgħu jfittxu mhux biss bħal dan, iżda jistgħu wkoll jkunu elses assoċjati magħhom. U inti tista 'attwalment jkollhom tliet mod furketta fit-triq jew ta 'erba mod furketta fit-triq, sempliċiment billi nesting dawn l-affarijiet, kif tkun taf tara fil Scratch jekk inti ma jkunux diġà. U kif inti tista 'tagħmel fis-C kif ukoll. Ejja tieħu eneralista ieħor tħares lejn alumnist, kif ukoll, li tista tippreżenta approċċ differenti biex dawn l-affarijiet imsejħa kondizzjonijiet. Bill Gates: Nies jagħmlu deċiżjonijiet kuljum. Per eżempju, qabel ma tmur barra int tip ta 'jkollhom jekk dikjarazzjoni li tgħid, jekk huwa ix-xita allura I bżonn li tikseb ġakketta tiegħi. U kompjuters huma aqwa ladarba inti tiddeċiedi dawk it-tipi ta 'dikjarazzjonijiet, li jistgħu b'mod affidabbli tesegwixxi dawk l-affarijiet b'veloċità unbelievable. U hekk programm tal-kompjuter verament huwa xi ftit ta 'matematika u xi jekk id-dikjarazzjonijiet fejn id-deċiżjoni gets magħmula. DAVID J. Malan: Allura bħala inti tista 'taf, li kien folks bħal Bill Gates, Paul Allen, u oħrajn li verament kicked off l- hekk imsejħa kompjuter personali rivoluzzjoni xi snin ilu. Ħsibt, qabel we adsa fis xi administrivia, aħna'd jirrelataw tale mill-Albuquerque, Mużew New Mexico tal-Istorja Naturali u x-xjenza fejn xi wħud mill Bill Gates " u stejjer kmieni Paul Allen huma irrakkontati kif għandna issa PCs lum u MACs u aktar. Għal dan, għalkemm, għandna bżonn żewġ voluntiera li jkollhom vuċijiet rakkont tajbin ħafna biex jaqra iskrittura b'leħen għoli. Kull dritt, kif madwar fid-dahar hemmhekk. Come fuq up. U kif madwar quddiem hawnhekk. Come fuq l isfel. Ħu postijiet tiegħek hawn. Kif inti guys toħroġ, koppja ta 'avviżi amministrattivi. sezzjonali, il-proċess jagħżlu sezzjoni, se tibda din L-Erbgħa sal-Ġimgħa. Aktar dwar li din ġejjin Erbgħa fil lecture. Sezzjonijiet Super, sadanittant, huma xi ħaġa li noffru ġimgħa d-dieħla li biha l-klassi intiera huwa mistieden biex jipparteċipaw fil skala pjuttost kbir sezzjonijiet, waħda aktar comfy, waħda inqas komdi. U aħna se jħabbar id-dettalji ta 'dak, kif ukoll, aktar tard din il-ġimgħa. Sezzjonijiet Sadanittant, infushom, se tibda fi tlieta mill-kors ġimgħa, indiċi żero, li tfisser dawk huma ftit ġimgħat out. Allura biex ma tinkwetax. Inti għadhom ma qbiżt xejn flimkien dawk il-linji. Sadanittant fil-frattemp, jekk inti xi mistoqsijiet amministrattivament, email myself u Devon u Gabe u Rob f'dan l-indirizz hawn. Fl-aħħar nett, il-problema sett 0 huwa, ovvjament, out. Inti jista 'jkollok ndunat li fuq il-websajt il-kors tal-. Hija għandha tipprovdi inti ma ' tweġibiet kollha għall-mistoqsijiet inti jista 'jkollhom tul it-triq għall- ser tibda bil-sett problema. Imma jekk issib ruħek fil-bżonn ta 'daqqa t'id, bil-mezzi kollha jattendu ħinijiet tal-uffiċċju, It-Tnejn, it-Tlieta, l-Erbgħa, il-Ħamis ta 'din il-ġimgħa fil-għaxija f'erba swali dining. Ara li URL hemmhekk għall-partikolaritajiet ta 'fejn ħinijiet tal-uffiċċju għandu jkun. Issa Ejja jilħqu tagħna żewġ mistednin hawn illum. X'hemm isem tiegħek? JAY PAUL: Jay Paul. DAVID J. Malan: Jay Paul, sbieħ li jissodisfaw inti. HIKARI: Hikari. DAVID J. Malan: Hikari? HIKARI: Hikari. DAVID J. Malan: Hikari. Nizza li jissodisfaw inti ukoll. Jay Paul u Hikari jkollhom fil- quddiem minnhom fuq dawn il-mużika stands żewġ skripts li I stampati out dalgħodu mill-Messiku New Mużew tal-Istorja Naturali u x-Xjenza. U dak li ħsibt I d tagħmel fuq il-overhead huwa jakkumpanjaw recitation tiegħek tal-iskrittura u din l-istorja ma 'xi stampi viżwali, l-ebda sorpriżi. U dak I ghamilt bil-quddiem huwa prehighlight fuq iskrittura tiegħek dak li għandek taqra, u dak li inti għandek taqra. U aħna ser essenzjalment paragrafi biss supplenti. Allura huwa ferm simili inti tista għamlu fil-klassi bl-Ingliż. Li verament jġiegħlu l-udjenza li jemmnu fil tale tiegħek hawn. Għandhom aħna? Allura l-istorja hawnhekk hija, għandna BASIC, u li jibda fil-Cambridge. JAY PAUL: Kien xitwa, 1974, fil Cambridge, Massachusetts fejn xtiewi jistgħu jkunu kesħin. A bearded, häired twil ossiġinu li jinħarġu barra kulleġġ jismu Paul Allen kien drudging madwar Harvard Pjazza, assorbit fil-ħsibijiet tiegħu. Preokkupazzjoni prinċipali tiegħu f'dawk il-jiem kien kif tikseb ħabib tiegħu, Bill Gates, biex nieqaf-iskola u jmorru fis-negozju miegħu. HIKARI: It-tnejn kienu diġà marret permezz ta 'numru ta' intrapriżi tan-negozju flimkien, li jibdew fil Lakeside iskola fil Seattle fejn dawn kienu mħallsa fil-ħin tal-kompjuter ħielsa li tittestja kompjuter PDP-10 fi żmien lokali kumpanija qsim. Il-pjan l-aktar reċenti kien li nieqaf iskola u jiffurmaw kumpanija tas-software. Allen kienu telqu Washington State University. Iżda fl-aħħar minuta, Gates iddeċieda li twaħħal mal Harvard. JAY PAUL: Dik il-ġurnata, qsim Harvard Pjazza, Allen spotted il Jannar, 1975 kwistjoni ta 'Popular Electronics mal-ħabel prinċipali waqfien earth, Kit Dinja Ewwel minikompjuter biex rivali Kummerċjali Mudelli. Taħt il-ċima kien stampa ta 'kaxxa żgħira adorned bi dwal u switches. Hija kienet tissejjaħ l-Altair mits 8800. U Allen kien jaf dan kien dak li hu kien tfittex. HIKARI: Jiem ta 'diskussjoni segwita. Allen Gates mifhuma l- sinifikat tal-Altair. Huma kienu tkellmu spiss dwar mikroproċessuri u kienu qed jistennew biex tara dak se jsir magħhom. Issa kien hemm kit minikompjuter fuq il-kopertura ta 'Popular Electronics. Hija apparentement kellu l-ebda software s'issa. Huma immaġina nazzjon ta ' programmaturi dixxendenti fuq mits. U hekk huma msejħa Ed Roberts, il-kap tal-kumpanija, jallegaw li jkollhom verżjoni tal- Lingwa ta 'programmar BAŻIĊI kważi lesta għall-Altair. Huma ma. U Roberts jridu jkunu magħrufa dawn ma kinux. Huwa kien jkollna 10 sejħiet kuljum minn nies li kellhom BAŻIĊI kważi lesta. U r-rispons istokk tiegħu kien, "L-ewwel persuna li juri bi ħidma BASIC gets-kuntratt. " JAY PAUL: Gates u Allen qatt ma rajt Altair. Huma qatt ma anki dehru l- Intel 8080 mikroproċessur fil-qalba tal-Altair. Iżda ftit ta 'snin qabel Allen kien kiteb programm fuq kompjuter mainframe li imitat l-operazzjoni ta 'Intel preċedenti mikroproċessur. U din id-darba huma se tagħmel l-istess ħaġa. HIKARI: Bil Intel 8080 manwali fil-ġenb tiegħu, Allen poġġa bilqiegħda fuq Kompjuter Harvard PDP-10 u kiteb l-emulator u software għodod meħtieġa biex jagħmlu l-ipprogrammar. Sadanittant Gates waqfet għaddejjin għall-klassijiet u ddedikat lilu nnifsu għall-iddisinjar tal-BASIC, jużaw kull trick kien jaf li tikseb l-daqs stabbiliti hawn taħt 4 kilobytes. JAY PAUL: Out fil Albuquerque, Ed Roberts ltqajna sejħa minn Gates tistaqsi għal dettalji dwar kif il- Altair mmaniġġjati rutini speċifiċi. Ħadd qatt talab li qabel. U Roberts bdiet tikseb interessat. HIKARI: Bl-iżvilupp għodod u d-disinn lest, Gates u Allen kiteb il-kodiċi fuq il-PDP-10, enlisting student ieħor Harvard, Monte Davidoff, li tikteb rutini matematika. Wara lejl finali ta ' programmazzjoni, Allen ltqajna fuq pjan biex iwasslu BASIC tagħhom biex mits. Hu qatta l-pjan ride out inkwetanti. U lura fil Cambridge Gates kien inkwetanti. Huma kienu ttestjati bażiċi tagħhom u huwa kien ħadem fuq il-emulator. Imma x'jiġri jekk il-emulator kienet żbaljata? JAY PAUL: Peress li l-pjan avviċinat Albuquerque, Allen induna li tagħhom BASIC, issa pulit jinsabu fuq roll żgħir ta ' ippanċjati tejp tal-karta, kieku tkun inutli mingħajr separata programm, imsejħa loader, li kieku tgħid il-Altair kif biex taqra l-tejp tal-karta benesseri mitmugħa fil-magna teletype. Huwa ħa out notebook tiegħu u malajr mħarrbxa isfel programm loader fil-lingwa Assemblea, imbagħad manwalment tradotti li fil-1s u 0s l-Altair jifhem. HIKARI: Allen kien jistenna nadif, ftit, il-kumpanija ta 'teknoloġija għolja mmexxija mill-irġiel fl-ilbiesi tan-negozju. Hekk hu kien sorpriż meta Roberts sodisfatti lilu fl-ajruport tfittex bħal Ranch idejn. Roberts kien ukoll sorpriż. Meta hu niżel l-Harvard programmer fi lukanda għalja, Allen kellha nistqarr li hu ma setgħux jagħtu l-kamra. JAY PAUL: mits, fih innifsu, kien jinsabu fil mall strixxa trab. Ġewwa fuq cluttered Workbench kien Altair mgħobbija bi 5 kilobytes ta ' memorja u konnessi permezz ta 'kejbil għal magna teletype. Roberts u Kap Inġinier, Bill Yates, stenniet expectantly bħala Allen toggled loader tiegħu programm fil-Altair. Il teletype beda chugging kif jinġibed l-tejp tal-karta permezz tal-qarrej tejp. Hija ħadet forsi 15-il minuta tagħbija il-programm. Imbagħad il-teletype f'daqqa stampat memorja pront, imbagħad fil-pront lest, u Allen beda tajping test ftit jikkmanda. Biex amazement kulħadd, l-software maħduma. Kien hemm bugs, tal-kors. Imma l-ħaġa prinċipali kienet maħduma. HIKARI: Aktar tard, fit-triq tagħhom lejn 3.00 $ ikla fil ta Pancho, a wasp tellgħu fit-tieqa tal-Pickup trakk u stung Allen fuq il-fergħa. Iżda f'dak il-punt xejn jista jħassru l-burdata. Il Altair issa kellhom BASIC tagħha, il- ewwel softwer kummerċjali għal dar kompjuter, magħmula minn Paul Allen u Bill Gates, jagħmlu negozju bħala Microsoft. DAVID J. Malan: Ħafna grazzi għal żewġ qarrejja tagħna. [Applause] DAVID J. Malan: Issa għandek l-għażla tiegħek, qabel ma titlaq, ta 'sparkly jew tiddix fil-dark-- oh, stenna sec wieħed, wait-- sparkly u tiddix fid-iljunfant dlam minn stess Cheng Gong CS50 tal. HIKARI: Aw, nirringrazzjak. DAVID J. Malan: All dritt, nirringrazzjak tant. [Applause] DAVID J. Malan: storja So vera. Dan huwa li jgħidu li kollha ta 'dawn magni u l-faċilità li biha aħna jużawhom issa u jieħdu għall mogħtija, tassew beda hawn, biss paces ftit minn dan it-teatru attwali. U issa llum, jekk inti ħadthom ma ġewx, dan huwa Maxwell Dworkin, il-kompjuter xjenzi bini, wkoll l-kantuniera. U fit-tieni sular ta 'dan bini ma hang tliet paġni mill-kodiċi sors oriġinali li Bill Gates u Paul Allen kiteb. Fil-fatt, jekk l-użu inti zoom fil inti tista 'tara mhux biss ismijiet tagħhom fil- tat-tip oriġinali, iżda wkoll firem tagħhom li huma adorned a Ftit snin lura meta l-aħħar żar. Imma dak li kien partikolarment konvinċenti dwar dan huwa dak li stabbiliti biex jagħmlu kien li jikteb programm li kieku jippermettu lin-nies oħra biex jiktbu programmi tagħhom stess. Fiż-żmien kollu kien hemm ma ' din il-magna Altair magħmula mill mits. U kollha huma meħtieġa kienet xi mod ta ' li jagħmilha faċli għall hobbyists u nies bħalna f'din il-kamra biex effettivament programm li mingħajr neċessarjament fehim Kodiċi Assemblea, jew magna kodiċi, jew Alla jipprojbixxu, 0s u 1s. Aħna programmaturi, bħal dawk f'din il-kamra, aħna tixtieq li tkun tista 'tesprimi lilna nfusna ferm aktar simili kodiċi psewdo anki jekk huwa nit daqsxejn aktar picky milli tkellimna aħħar ġimgħa. Aħna ma rridux li jikteb il-kodiċi bħal dan, li Paul Allen u Bill Gates għamlet. Aħna, minflok, jridu jiktbu kodiċi li jistenna ftit aktar faċli. Issa dan huwa lingwa magħrufa bħala BASIC. U l-linja numri hemm dak li inti jużaw biex sempliċiment jinnumera l-linji ta 'kodiċi li int bil-miktub. Aħna ma jkollhomx biex tagħmel dan dawn il-jiem. Iżda int tista 'tara hawn kif ISTAMPAR "hello, dinja" tabilħaqq preżumibbilment jistampaw biss li. U iva, liema Bill u Paul ma kien jagħtu s-setgħa lin-nies biex jikteb il-kodiċi bħal dan minflok of-- jekk inti tagħti ħarsa lejn l- xjenza tal-kompjuter wall-- kodiċi bħal dan. Fil-fatt, CS50 reċentement kellha l-opportunità biex joqogħdu bilqegħda mal-Professur Harry Lewis fil-Computer Science dipartiment, li attwalment mgħallma Bill Gates xi snin ilu, u tkun wieqfa hawn qabel dawk it-tliet paġni ta 'siltiet. Ejja tagħti ħarsa. HARRY LEWIS: Dak li għandek hawnhekk hija elenkar ta 'biċċa bikrija ta' software miktub minn Bill Gates u Paul Allen, il-fundaturi ta 'Microsoft. Allura l-kodiċi huwa interessanti għal żewġ raġunijiet. L-ewwelnett, sar Ewwel prodott Microsoft, li kienet interpretu għal il-lingwa ta 'programmar BAŻIĊI. U t-tieni, dan kien wieħed mill-ewwel tentattivi biex joħolqu interpretu hekk ordinarja nies jistgħu jużaw il-kompjuters personali. Allura Bill Gates kien undergraduate fil-Harvard. I bdew tagħlim fil-Harvard fl-1974. Dan sar fl-1975. Allura kien kmieni fil-karriera tiegħu u kmieni fil-karriera tiegħi. I attwalment mgħallma Bill fl kors madwar dan iż-żmien. Paul Allen ma kienx Harvard student, imma hu kien l-iskola għolja classmate ta Bill Gates. Jekk inti ġejjin u ħarsa fil-elenkar, inti ser attwalment issib terz isem, Monte Davidoff, li kien classmate Gates tal hawn fil-Harvard. OK, hekk hawn xi kumment interessanti up here. Hija tgħid "Fil 4K tista 'tħassar għerq ikkwadrat iżda għal loops xorta għandhom jaħdmu. " OK, iva, liema huwa li jfisser li hemm kienu żewġ modi biex jikkompilaw dan il-programm. Wieħed kien biex imexxu fuq verżjoni ta 'dan il-kompjuter Altair li huma biss kellhom 4K kliem ta ' memorja, 4096 kliem ta 'memorja. Iżda l-verżjoni big kellhom 8k. U hekk dak li dan jgħid hu li fil-verżjoni 4K inti kellhom iħassru xi kodiċi li jagħmilha tajbin. U waħda mill-affarijiet li titħassar tkun l-rutina għerq kwadrat. Imma apparentement l- għal-linji għandu xorta jaħdmu anki meta int kompilazzjoni isfel biss għall-verżjoni 4K tal-kompjuter. DAVID J. Malan: Allura wieħed mit-temi, kif aħna ser tara fil-xjenza tal-kompjuter, huwa dan il-kunċett ta ' saffi u estrazzjoni, u verament wieqfa fuq l-ispallejn ta 'folks li jkunu ġejjin quddiemna, mhux kuntrarjament għal uħud mill-Gates Bill u Paul Allen narrattiva hawn. U dak li dan ifisser huwa li llum nistgħu nieħdu għall mogħtija li l-affarijiet huma attwalment faċli għalina li jikteb il-kodiċi. Tabilħaqq kodiċi, kif għidna nhar il-Ġimgħa, huwa aktar teknikament magħrufa bħala kodiċi sors. U huwa dan l-Ingliż simili sintassi li l-aktar xierqa u definiti b'mod aktar sew minn xi ħaġa bħal kodiċi psewdo, għall li m'hemm l-ebda definizzjoni formali. U llum dak li aħna qed tmur li tiffoka fuq hija kodiċi sors li tidher bħal dan, li Ċertament ewwel daqqa t'għajn jistenna kompletament cryptic. U franchement, huwa mod aktar estetikament kumpless milli l-programm sottostanti huwa. Dan kollu programm ma, recall, huwa dak li ma ngħidu? Hija biss prints "bonjour dinja." U għadhom ħarsa fil-livelli kollha ta 'l-għalf għandna bżonn biex nagħlaq madwar dik il-frażi sempliċi ħafna. Iżda qabel twil kollha ta ' dawn il-linji u aktar se jagħmel ħafna sens aħjar għalik. U l-fluss hija kif ġej. Dak li għandna bżonn għad-dispożizzjoni tagħna huwa li jieħdu kodiċi, bħal sors kodiċi li aħna biss raw. U għandna bżonn ta 'programm ġdid run permezz. Għandna bżonn algoritmi li jistgħu jikkonvertu kodiċi sors, bħal dan, fis object code, 0s u 1s. Fi kliem ieħor, liema aħna qed tmur biex jitgħallmu llum hija kif tagħmel dan, jiktbu kodiċi tas-sors top up, tgħaddih bħala input għal speċjali programm magħruf bħala kompilatur, u aħna qed tmur biex jipproduċu kodiċi oġġett. Liema huwa biss mod fancy ta ' qal aħna se tieħu xi ħaġa li tidher bħal dan, tgħaddiha fi programm imsejjaħ kompilatur, jipproduċu kodiċi oġġett li tidher bħal dan. Allura dawn huma litteralment l-mudelli ta '0s u 1s li huma mifhuma minn Intel kompjuter f'dawn il-jiem, li jekk interpretata mill-CPU, l-imħuħ ġewwa ta 'kompjuter, litteralment se jistampa, pjuttost sempliċi, "bonjour dinja." Issa hemm mod aktar 0s u 1s milli suppost jittama jista 'jkun meħtieġ għal dak. Iżda dan għaliex aħna qed bini fuq ammont tajjeb ta 'kumplessità li nistgħu issa tieħu għall mogħtija. Fi kliem ieħor, ħafna nies intelliġenti tawna ħafna ta 'għodod jibred u software qawwija li aħna issa jistgħu jagħmlu proġetti ta 'tagħna stess. Mela ejja tibda. Billi Ġimgħa li għadda, u għall Problema Set 0 din il-ġimgħa, inti ser tkun playing fil- dinja li tidher bħal dan. Mill-lum u għall-Problema Issettja 1 ġimgħa d-dieħla, il-kodiċi huwa ser tfittex ftit aktar cryptic, iżda funzjonalment hija se tkun l-istess. Allura avviż, top hija Scratch, qiegħ huwa Scratch C. Franchement huwa ħafna aktar utent faċli u aċċessibbli. Imma jekk inti issa tqabbel viżwalment fuq għal qiegħ, hemm tip ta '1-1 korrispondenza bejn il- biċċiet puzzle u l-lingwa aħna qed dwar li jilagħbu bil. B'mod partikolari, jgħidu, il- puzzle blu biċċa top up, hija apparentement ekwivalenti għal dak keyword jew frażi speċjali f'dan lingwa imsejħa C? UDJENZA: printf. DAVID J. Malan: printf. Dan ifisser l-istampar ifformattjat. U li jinsab biss fancy mod ta 'tgħid printf fl C se tkun stqarrija jew funzjoni li prints xi ħaġa għall-iskrin. Dak ma print-iskrin? Tkun xi tkun inti għid li ġewwa tal-kwotazzjonijiet, ġewwa ta 'parentesi. Għalhekk għal darb'oħra, ċertament, hemm ħafna ta 'għalf li inti għandek li wieħed iżomm f'moħħu, parentesi, kwotazzjonijiet, semicolons, u kollha ta 'dan. Iżda kollha ta 'dan huwa tip tal ħdejn il-punt. Il takeaway interessanti għal issa hija li l-blokk vuċi fil Scratch huwa pretty ħafna ekwivalenti għal l-istqarrija printf fl C. Sadanittant, il-biċċa puzzle isfar top up, meta bandiera aħdar għafast, huwa probabbilment ekwivalenti għal dak keyword hawnhekk? UDJENZA: Main. DAVID J. Malan: Allura prinċipali. Forsi int, forsi bla effett. Iżda tip ewlieni ta 'ħsejjes simili huwa importanti, u tabilħaqq huwa. Allura meta bandiera aħdar għafast hija, għal darb'oħra, il-biċċa puzzle li kicks off programm Scratch kollu. Iżda aħna qed tmur biex issa tibda sejħa li prinċipali, din il-funzjoni magħrufa bħala prinċipali. Issa sadanittant aħna ser tiġġeneralizza dan kif ġej. Aħna tista 'sejħa ngħidu funzjoni. U tista 'tidher speċifikament bħal dan. Ukoll, dak dwar loops? Jekk irridu li tibda tikkonverti jew traduzzjoni aktar fil Scratch sa C, dan il-ħaġa hawn apparentement biss jgħid "bonjour dinja" għal dejjem. Mela jekk inti tassoċja dawn skripts bl qattus fil Scratch, huwa biss se żżomm qal f'xi tip ta 'cartoons bużżieqa, "Bonjour dinja, bonjour dinja, bonjour dinja, "ad nauseum, dejjem. Jekk irridu nagħmlu xi ħaġa simili fil- C, li għaddej biex tfittex ftit cryptic. Iżda nistgħu niksbu l-istess riżultati, kif aħna ser eventwalment nsib, ma sintassi bħal dan. Jien ser tuża printf darb'oħra, għaliex fl-aħħar tal-ġurnata I tixtieq li jistampaw "bonjour dinja." U jien apparentement jużaw keyword li mhix dejjem. Minflok Hu l-kelma waqt. Iżda biss semantikament fl Ingliż, filwaqt li tip ta ' jissuġġerixxi xi tip ta 'loop jew ċiklu. Allura li jiġri li jkun l-keyword li C użi. U filwaqt li veru, għaliex ma filwaqt li veru jfisser effettiv għal dejjem? Ukoll, filwaqt li, kif aħna ser dalwaqt japprezzaw l-aktar, għandha dan parenthetical jmiss lilu fejn inti tista 'tpoġġi l-espressjoni Boolean. U hekk sakemm dik espressjoni huwa veru, dan il-kodiċi, kif denotat bejn dawn iż-żewġ braces kaboċċi kif aħna ser jsejħulhom, se biss iżommu running darb'oħra u għal darb'oħra. Allura veru huwa veru. Għalhekk, filwaqt li mezzi vera biss tagħmel dan għal dejjem. Huwa kważi stupid jinbena biex tesprimi ruħek. Imma ma kien hemm ebda dejjem keyword fil C. Ma kien hemm waqt. U kien hemm sempliċi ħafna Espressjoni Boolean simili veru. U hekk dan, aħna ser tara, tikseb l-istess riżultat. Kif inkella tista inti jimplimentaw loop? Ukoll, fil Scratch inti tista kodiċi hard numru speċifiku tal iterazzjonijiet fil-linja hawnhekk. U hekk dan huwa eżattament dak li aħna tista 'tagħmel f'dan il-verżjoni ta' C, li biha għandna hekk imsejħa għall loop. U l-għar loop hawn se li jtenni, kemmxejn cryptically, mill-valur 0 fuq up li iżda inqas minn 10. Issa varjabbli fil Scratch. Inti ma setgħu kellhom okkażjoni biex jużaw dawn. Imma x'inhu l-punt, b'mod ġenerali, ta 'varjabbli ma ngħidu ġimgħa li għaddiet? X'hemm li? Udjenza: punti. DAVID J. Malan: Mal-punt? Oh, il-punti. OK, iżżomm rekord ta 'punti, per eżempju, fil-logħba. Jew aktar tagħmel ġeneralment dak mal-varjabbli? X'hemm l-utilità minnhom? UDJENZA: Memorja. DAVID J. Malan: Yeah, hekk memorja. Huwa għall-ħażna xi ħaġa. U l-tip ta 'I viżwali iblah użati aħħar darba kien bħal dan bowl tal-ħġieġ. U jekk ridna li jaħżnu xi ħaġa ġewwa ta 'varjabbli, per eżempju id-dritt issa l- valur huwa sitta għaliex hemm huma sitt blalen ping pong fil hawn. Huwa biss xi tip ta 'ħażna kontenitur li taħtha il-barnuża hija implimentata bl bits, 0s u 1s, madankollu kompjuter jiġri li tagħmel dan. Għalhekk fl Scratch, jekk aħna tixtieq li jkollok varjabbli, nistgħu nużaw blokk oranġjo bħal dan. Aħna ser sejħa dan counter f'dan il-każ partikolari. I initialized dan għal 0. U dak li jien imbagħad do? Forever, jgħidu counter, li jekk inti play ma 'dik fl Scratch, tkun taf biss tara Scratch. Il-qattus jew kwalunkwe kostum inti tpoġġi fuq lilu se jitkellem l-numru in kwistjoni. Bidla counter minn 1 huwa bħal inkrementazzjoni minn 1. U hekk dan se għadd minn dak iva, liema? Minn 0 til infinity, jew sakemm pawżi Scratch, jew sakemm inti tip ta ' jitilfu l-interess fil jaraw kif għolja jista 'attwalment joqgħod. Allura kif jista aħna jikkonvertu dan C? Huwa ser tfittex ftit cryptic. Iżda għal darb'oħra, jekk inti tħares lejn kull ta 'dawn il-linji individwalment dawn it-tip ta 'lineup ġeneralment. Allura apparentement Int se għandhom xi tifsira speċjali fil C. Aħna ser tara li għal darb'oħra. Bħala twarrib dan ifisser integer. Allura dan ifisser biss numru. Allura dak it-tip ta ' ħġieġ skutella Irrid, waħda li jista 'jaħżen numri, mhux ping pong blalen. U jien ser tuża s-sinjal ugwali hemm biex tassenja din valur ta '0. Allura dak pjuttost simili sett counter għal 0, iżda fil C. Sadanittant, filwaqt veru, li kien ekwivalenti, naturalment, biex dejjem, anki jekk huwa ftit cryptic, u mbagħad ġewwa taċ-ċingi kaboċċi. U inti tista 'taħseb ta' dawn ċingi kaboċċi, li inti tista tip fuq it-tastiera tiegħek, bħala verament tkun bħall-kurvatura fl dawn il-blokok loop isfar fil Scratch. Hi tħaddan diversi linji ta 'kodiċi. Printf huwa jkollna ftit scary issa minħabba I tara kwotazzjonijiet mhux biss fil-parentesi. Imma dak li inkella huwa ġdid sintattikament f'dan l-eżempju? Hemm mija d. U allura backslash n hemm. Aħna ma tara li qabel, anki għalkemm I ma jsemmuha. Imbagħad hemm virgola. U allura hemm kontro. Iżda aħna ser tara fi ftit mument li dan huwa biss mod standard ta 'tgħid print a "Numru deċimali," kwotazzjoni, unquote, xi numru deċimali. Imma jien ser jgħidlek aktar tard dak li numru deċimali hu. Allura l-fatt li hemm virgola f'dan il-linja printf qal, ifisser imorru quddiem u print xi numru deċimali. Oh, u mill-mod, in-numru huwa ikun x'ikun il-valur ta 'din il-varjabbli. U hekk biex jagħmlu dan aktar ċara, aħna ser tara eżempju qabel twil li jinvolvi eżattament printf fil-kuntest ta 'programmi Ċ reali. Issa biss biex nagħlaq xi ta 'dawn constructs. Espressjonijiet Boolean, inti jista 'ma jkollhomx okkażjoni biex jużaw dawn fil-programm tiegħek imma inti tista 'tajjeb ħafna, speċjalment jekk jużaw kundizzjonijiet. U hekk dawn iż-żewġ eżempji mill Scratch jfissirx jekk x huwa inqas minn y, jew jekk x huwa inqas minn y uy huwa inqas minn z, kif jista aħna tittraduċi li? Ukoll, fil-C huwa biss ser teżamina bħal dan. A ftit cryptic, aktar parentesi, xi ampersands stramb, iżda fundamentalment l-ideat huma sempliċi kemm dawn huma fid-dinja biċċa puzzle. Aħna qed sempliċiment iċċekkjar jekk xi ħaġa huwa inqas minn xi ħaġa oħra. Kif dwar kondizzjonijiet? Fil-qosor bl-Ingliż, dan xi blokki ta 'kodiċi Scratch do would you say? UDJENZA: Tqabbel żewġ numri. DAVID J. Malan: Tqabbel żewġ numri, u jekk x huwa inqas minn y jgħid kemm. Jekk x hija akbar minn y jgħid kemm, inkella jekk x huwa ugwali għal y jgħid kemm. Issa fejn ma xuy jiġu minn? Min jaf. Dan blokki ta 'Scratch kodiċi huwa barra mill-kuntest. Imma dak li rridu nagħmlu issa hu tittraduċi dan għal ftit mument biex tara. Allura kif inti tikseb komda din il-ġimgħa fil-Problema Set 0 playing f'din id-dinja fuq ix-xellug, tirrealizza li l-ideat tagħhom ma jinbidlu din il-ġimgħa jew li jmiss jew lil hinn. Aħna qed sempliċiment tmur biex tibda bil-miktub affarijiet b'mod differenti ma 'tagħna tastiera minflok mouse tagħna. Mela jekk x huwa inqas minn y, u hemm xi parentesi hemmhekk, allura hemm xi braces kaboċċi darb'oħra biex tip ta 'jirrappreżentaw dan bħad-biċċiet puzzle isfar do. U jien ser printf x huwa inqas minn y u ibqa 'sejjer hekk. X'inhu sbieħ dwar C, kif tistgħu taraw hawn, hija li inti ma tieħux dan ibejtu, ibejtu, nesting thats neċessarjament ser timbotta kodiċi tiegħek lejn il-lemin. Tista minflok jkollhom kollox lineup pulit bħal dan. Imma dak li biss estetika dettall aħna ser tara darb'oħra qabel twil. Kull dritt. Allura li twassalna lura għall dan il-programm cryptic tfittex. Ejja attwalment jikteb xi kodiċi. Issa kif taħseb li tmur dwar kitba kodiċi? Kollha dawn is-snin li inti stajt proprjetà Mac jew PC, desktop jew laptop, inti stajt attwalment kellu l-kapaċità biex tibda tikteb kodiċi ta 'programmazzjoni. Imma int probabilment nieqsa tip speċjali ta 'programm. Inti tista 'ċertament jikteb il-kodiċi. Imma inti ma tistax neċessarjament, barra mill-kaxxa, jikkonvertu dan il-kodiċi sors f'Kodiċi oġġett, 0s u 1s mingħajr dak fuq il-kompjuter tiegħek? UDJENZA: kompilatur. DAVID J. Malan: Allura kompilatur, id-dritt. Issa ħafna minnkom probabbilment ma proprji kompilatur, qatt ma jitniżżel kompilatur. Imma inti taf tara tista 'tniżżel bħal ħafna xi biċċa oħra ta 'software. Fid-dinja ta 'Mac OS, inti tista tniżżel jew niżżilt diġà xi ħaġa imsejħa Xcode jew GCC jew Clang. Jekk inti ġejjin mill- Windows dinja inti tista niżżilt Visual Studio, Visual Basic, ambjenti bħal dik. Hemm għexieren ta 'kompilaturi dawn il-jiem li inti tista 'tuża. Iżda l-qasir ta 'dan hawn huwa li jkun uġigħ u, franchement, a teknoloġiku ħmar il-lejl għal mijiet ta 'nies ma differenti Konfigurazzjonijiet kompjuter għal kulħadd kkonfigurat magni tagħhom eżattament fl-istess mod hekk li aħna kollha jistgħu jkunu fuq l-istess paġna. Allura dak li aħna, minflok, do fil CS50 huwa aħna nagħtuk ambjent standard, a Linux ambjent li l- ser tfittex ftit xi ħaġa bħal din. Int ser ikollok tara aktar ta 'dan fil- Problema Set 1 speċifikazzjoni li se jmorru online dan Ġimgħa bil-lejl. U dak li dan ifisser hija li inti issa ser ikunu kapaċi tniżżel u tinstalla programm imsejjaħ il-Appliance CS50. U int ser tniżżel u jinstallaw program oħra msejħa hypervisor, li huwa biss mod fancy ta 'kisba ta' dan. Jekk inti stess Mac jew PC jew Linux kompjuter jew kompjuter Solaris, jew kwalunkwe operattiva crazy sistema int taħdem, int ser tniżżel programm imsejjaħ il-hypervisor li l- ser imexxu l-CS50 Appliance fuq il-kompjuter tiegħek x'ikun sistema operattiva tiegħek hija. A hypervisor fi kliem ieħor tikkonverti Jittieħed tagħna għal dak kollu lingwa, x'ikun istruzzjonijiet tiegħek kompjuter stess jifhem. Allura dan huwa saffi. U għal darb'oħra, dan huwa tip ta tematika fil-kompjuter xjenza, il-bini fuq quċċata ta 'affarijiet. Inti jista 'jkollok Windows. Inti jista 'jkollok Mac OS. Iżda jibdew il-ġimgħa d-dieħla int ser niżżilt biċċa ħieles ta 'softwer imsejjaħ il-hypervisor. Inti qed tmur biex niżżilt biċċa ta 'softwer imsejjaħ il-Appliance CS50. Li għaddej biex imexxu fil-hypervisor, li se jimxu fuq il-kompjuter tiegħek. U r-riżultat aħħari huwa li lkoll se jkollhom tieqa sempliċi bħal dan fuq Mac tiegħek jew PC li jagħtina l-illużjoni ta 'kulħadd jmexxu l-istess sistema operattiva, mingħajr ebda oħra impatt fuq il-kompjuter tiegħek. U inti tista full screen dan u essenzjalment jġib ruħu daqslikieku inti taħdem sistema operattiva imsejħa Linux, li huwa dak li l-CS50 Appliance hija bbażata fuq. Mela ejja attwalment jużaw dan issa biex jikteb programm. Tista 'tikteb programm jużaw Microsoft Word. Tista 'tikteb programm użu TextEdit, jew notepad, jew WordPad, jew pretty ħafna xi kelma programm ta 'pproċessar inti stajt qatt jintużaw. Iżda r-realtà hija li inti m'għandekx tuża verament xi waħda minn dawk il-programmi. Inti żgur m'għandekx tuża xi ħaġa bħal Microsoft Word, li għandu jiffaċċjaw grassa u korsiva, u fonts akbar u fonts iżgħar, minħabba li l-kompjuter ma kura dwar kwalunkwe ta 'dak. Kollha l-kompjuter huwa ser jimpurtahom huwa Ingliż bħal struzzjonijiet miktuba fil C. Allura dak li aħna ser nagħmlu ġewwa tal-Appliance CS50 hija tuża programm liberament disponibbli, u huwa installat minn qabel f'dan appliance, imsejħa gedit. U gedit huwa biss sempliċi super test editur bħal TextEdit Mac OS, bħal Windows notepad li għaddej biex tfittex ftit xi ħaġa bħal din. Mela ejja fil-fatt mhux tħares lejn slides ta 'dan. Imma ejja fil-fatt imorru fis l-ambjent innifsu. Jien ser jimxi 'l quddiem u log, f'dan tieqa oħra, li CS50 Appliance tiegħi, li jiena stajt installat minn qabel fuq laptop tiegħi hawn. Avviż li, bħall-Windows u Mac OS, huwa ltqajna xi menus. Bħal Windows li tqiegħed l-isfel hemm minflok tal Mac OS, li jpoġġi l-isfel hemmhekk. Iżda r-realtà hija li huwa kull tip ta 'l-istess. U fil hawn hija kollha kemm hi mazz ta 'software. Hemm Dropbox. Hemm mazz sħiħ ta 'aċċessorji, programmi grafika li aħna ser użu aktar tard fit-terminu għal settijiet problema. Hemm web browser mibnija hekk li dan huwa kompjuter żviluppata sħiħa ġewwa ta 'kompjuter. Imma jien ser ikklikkja dan leftmost ikona abjad hawn, li hija l-ikona għall gedit. U li għaddej biex tiftaħ tieqa li għandha tliet panels lilha, waħda xellug, wieħed mill-quċċata, u waħda qiegħ. Issa huwa f'dan il-wieħed dritt top li Jien ser attwalment jikteb xi kodiċi. Mela ejja tagħmel dan ,. Jien se jmorru File, Save. U inti tista 'ma qatt raw dan il-tieqa partikolari qabel. Imma dan huwa simili Mac OS jew Windows. Huwa biss tieqa kollha tal-folders li għandi ġewwa ta 'dan il-kompjuter. U jien ser tiffranka il-fajl bħala hello.c. U jien se jmorru quddiem u kklikkja Save. U issa avviż għandi tab fil-quċċata xellug imsejħa hello.c. Allura probabbilment pretty familjari, anki jekk inti stajt ma użat dan il-programm partikolari qabel. U issa jien se tip fil dawk sekwenza pjuttost mistur ta 'kmandi li rajna mument ilu. Inkludi, I standard / O.h. Aktar dwar dan dalwaqt. Null prinċipali Int, kaboċċi miftuħa Brace, magħluqa kaboċċi Brace. U allura ġewwa li jkun hemm naħseb huwa fejn kellna "bonjour dinja," virgola. U issa jiffrankaw. Allura dan huwa programm miktub fis-C, miktub, għalhekk, fil-kodiċi tas-sors. Imma ma nistax biss run dan il-programm. I tip ta 'tixtieq li doppja ikklikkja fuq 'ikona x'imkien, iżda l-ebda icon jeżisti oħra mill-fajl kodiċi sors. Liema, għal darb'oħra, huwa l-proċess issa li I bżonn biex imexxu dan il-fajl permezz? UDJENZA: kompilatur. DAVID J. Malan: Allura kompilatur. Allura fil-kompjuters differenti inti tagħmel dan b'modi differenti. Imma dak li aħna ghamilt hawn fil l-Appliance CS50 thats rappreżentant ta 'kif inti tista tagħmel dan fuq is-sistemi differenti ħafna, hija Jien sempliċiment ser run kmand imsejħa make. U Make hu litteralment se tagħmel dan. Agħmel me a program. Sabiex tagħmel huwa se run kompilatur għalija. U l-isem tal-programm I tixtieq li tagħmel huwa bonjour. Issa jagħmlu huwa programm. U jagħmlu huwa intelliġenti biżżejjed biex jirrealizzaw li jekk ngħid jagħmlu hello, li għaddej biex tfittex awtomatikament għal fajl imsejjaħ hello.c biss minħabba dak l- mod huwa konfigurati. Allura meta I issa hit Ikteb hawn, dan linja cryptic crazy biss ltqajna esegwiti. U trust me, qabel twil, fi żmien ftit jiem, inti ser tifhem dak kollu ta dak il-mezz nonsense. Iżda għal issa, biss jafu li jagħmlu eżekuzzjoni attivata ta kompilatur. Fi kliem ieħor, hija kkonstatat kompilatur fuq il-kompjuter tiegħi li l-pre-installat fuq il-Appliance CS50 li aħna ser idejn li inti fil Problema Set 1. U mbagħad ħa hello.c bħala input, u prodotti apparentement 0s u 1s bħala output. U fil-kontumaċja dak li tagħmel huwa li jiffranka dawk 0s u 1s fil-fajl imsejjaħ bonjour. U għalkemm dan sintassi jista wisq jkun ġdida għalik, sempliċiment billi qal dot mmejla bonjour se tkun l- Mezz li permezz tiegħu I run dan il-programm. Għal issa u għal mill-inqas ftit ta 'ġimgħat, kważi kollha tal-programmi aħna tikteb ser ikunu fl twieqi test iswed u abjad. Nru ġrieden, ebda tikklikkja, ebda twieqi, l-ebda ikoni. Aħna ser jżommha sempliċi u tiffoka fuq l-ideat sottostanti inizjalment qabel we nikseb għal xi ħaġa livell ogħla, per eżempju, bħall-break out logħba li tkellimna dwar fl-ewwel lecture aħħar ġimgħa. Allura meta I hit Ikteb hawn, huwa ekwivalenti f'test biss ambjent li tirdoppja tikklikkja ikona imsejħa bonjour. X'qed tistenna rieda jiġri meta I hit Ikteb allura? UDJENZA: Hija ser jistampaw "bonjour dinja." DAVID J. Malan: Nisperaw se print "Hello dinja." U tabilħaqq għamlet. Issa hemm kien xi sintassi cryptic hawn. Ejja kontrina għal ftit mument u ara jekk irridu ma jistax jibda jiddeduċi biss billi tbagħbis, jippruvaw u fin-nuqqas, dwar x'inhu għaddej hawn. X'jiġri jekk I jeħles mill-n backslash? Issa xi wħud minnkom li stajt programmati qabel probabbilment taf istantanjament dak li tfisser. Iżda għal dawk minnkom li stajt qatt programmati qabel, inqas taħseb li inti stess x'inhu għaddej għall-bidla meta I terġa 'ssir dan il-programm? So jien se jmorru lura għal tiegħi iswed u abjad tieqa ftit, li hija l-tieqa li fiha I jistgħu jikkompilaw dan. Jien ser recompile bonjour. Aħna qed tmur biex tara l-istess sekwenza cryptic ta jikkmanda. U jien ser tagħmel dot mmejla bonjour. U issa xi ħadd, jekk inti, li qatt ma programmati qabel, dak li jista 'jkun differenti dan iż-żmien? Yeah. UDJENZA: Dan mhux se tieqaf istampar "dinja bonjour." DAVID J. Malan: Huwa ser to-- sorry? UDJENZA: Dan mhux se tieqaf istampar dan? DAVID J. Malan: Dan mhux se stop-istampar "bonjour dinja." Allura mhux idea ħażina. Ideat oħra? Yeah. UDJENZA: Error messaġġ? DAVID J. Malan: Error messaġġ, OK, jista 'jkun. X'aktar? UDJENZA: Jista jistampaw il- parentesi bil-virgola kif ukoll? DAVID J. Malan: Jista jistampaw il- parentesi bil-virgola ukoll. Allura forsi li backslash allura hija xi tip ta 'istess affarijiet li l-importanti. Kwalunkwe ħsibijiet oħra? Ideat Allura kollha tajba. U fil-fatt, li għaddej li jkun messaġġ ta 'żball. Li probabbilment l-aktar probabbli li tkun ir-risposta b'mod ġenerali għall-ftit ġimgħat li ġejjin kif aħna jitgħallmu għall-kodiċi hawn. Iżda għal issa ftakar li l-kompjuters biss tagħmel dak li inti jgħidulhom li jagħmlu. Ħafna bħall-karawett redikoli butir u l-eżempju jelly. Kompjuters tal-bniedem tagħna kienu suppost biss biex jagħmlu dak li inti qaltilhom biex jagħmlu. Allura f'dan il-każ, jekk inti ma jgħidux il-kompjuter li jiċċaqalqu li cursor Teptip għall- linja li jmiss, mhuwiex ser tagħmel dan. Allura meta I run dan il-programm issa, avviż-differenza. Jistenna bħal bug. Huwa ta 'bug estetika, forsi. Imma dak li hu differenti dwar dan output versus l-aħħar wieħed ovvjament? Yeah. UDJENZA: Hija ma tagħmel linja ġdida. DAVID J. Malan: Hija ma tagħmel linja ġdida. Issa dawk minnkom li jkollhom paġni web forsi magħmula qabel, inti tista 'taf ta' l- Tag BR jew il-paragrafu tikketta, simili ħafna fl-ispirtu. A web browser se jinjora inti sakemm inti tgħid eżattament x'għandhom jagħmlu. Bl-istess mod, hija lingwa bħal C biss se tagħmel dak li inti tgħid li tagħmel. Allura l-raġuni li kollha ta 'dawn l-eżempji, s'issa, ikollhom tip ta ' każwali kellha din backslash fil hemm, li l-mezzi li permezz tiegħu inti tesprimi ruħek bħala karattru linja ġdida, biex ngħidu hekk. U inti tista 'tip ta' japprezzaw, forsi, li dan look tip ta 'stupid jekk xejn. Jekk jien ridt linja ġdida, just laqtu Ikteb u mbagħad it-tip tal butchering-kodiċi bħal dik m'għandux verament togħrok inti l-mod id-dritt. U anki jekk inti ma verament kura f'dan il-punt, inti se tirrealizza li din mhix partikolarment tajba biċċa tħares 'kodiċi. U hekk dak id-dinja snin deċiżi ilu huwa li meta inti tixtieq li tqiegħed il- cursor fuq linja ġdida espliċitament, inti trid espliċitament say linja l-ġdida, backslash n. U hemm xi oħra simboli bħal dik. Iżda għal issa aħna ser biss tiffoka fuq backslash n. Issa ejja jagħmlu l-programm ftit aktar interessanti. Jien ser jimxi 'l quddiem u din id-darba jiftħu fajl ġdid. Jien ser tiffranka dan bħala bonjour-1.c. U biss għall kicks, jien ser mur poġġih fil-folder Dropbox tiegħi. Kif tkun taf tara fil-CS50 dokumentazzjoni għall-appliance, aktar tard din il-ġimgħa għall-Problema Set 1, aħna ser jinkoraġġixxu biex tuża Dropbox jew xi servizz ekwivalenti, għaliex imbagħad kollha tal-kodiċi tal tiegħek ser tkun appoġġjata awtomatikament. U hekk hu għalhekk li stajt marret fis this folder hawn. U issa jien ser jiktbu programm kemmxejn differenti. Inkludi, I standard / O.h, null prinċipali int. U mbagħad fil hawn printf, bonjour dinja, li huwa eżattament l-istess bħal qabel. Imma issa nixtieq li jistampaw xi ħaġa thats ftit differenti. Irrid li jistampa, jgħidu, "Hello, David." Kull dritt, hekk ovvjament, suppost nisperaw jkun il-każ li jekk I recompile dan il-programm, terġa 'ssir it, li għaddej biex jgħidu "bonjour, David." Imma x'jiġri jekk nixtieq li jintroduċu dan it-tip ta 'varjabbli, il-kunċett ta 'kontenitur li għaddej li jaħżen D-a-vs-i-d u kodiċi mhux diffiċli fil-programm tiegħi. Ukoll dak li jekk nibda tagħmel xi ħaġa bħal din? String i, hekk din hija varjabbli. Jekk inti tixtieq a string, a.k.a. kelma jew frażi. A sekwenza ta 'karattri huwa dak aħna fl-ipprogrammar sejħa string. Aħna biss se ġenerikament sejħa hija s, għaliex dan huwa isem sempliċi sbieħ. Imma I jistgħu sejħa hija xejn. Jien se ngħid string s-ugwali kwotazzjoni unquote, "David," virgola. U issa nixtieq li daħħal D-a-vs i-d fis-dak jien istampar. U qabel rajna teaser fuq l-iskrin ta 'xi sintassi speċjali li ppermettew magħna biex sostitut fil-valur. Liema kienet l-speċjali simbolu slides ftit ilu? Allura fil-mija. Fiż-żmien li kien fil-mija d għal numru deċimali. Dan ma verament jidhru li huma rilevanti hawnhekk. Jinstabx hemm simbolu ieħor fil-mija, li hija fil-mija s, li stands għal placeholder għal string. Allura issa, ħafna sempliċement, jien se jmorru make-bonjour 1, għaliex dan il-fajl sejjaħ bonjour-1.c, u hit Ikteb. U jien invitat up. X'qed jiġri? Well, hawn fejn għandna biex jibdew japprezzaw li aħna qed fl dan il-kmand ambjent linja, dan test biss l-ambjent. M'hemm l-ebda tikklikkja fuq icons bħal folders dritt issa. U jaħsbu lura mument ilu. F'liema folder ma I say I kien iffrankar kodiċi tiegħi? Allura l-folder Dropbox. Setgħu ġew imsejħa xejn. Iżda dan jiġri li għandu jissejjaħ Dropbox. So I b'xi bżonn biex ikklikkja darbtejn fuq li folder Dropbox sabiex jiksbu fis dan u jiksbu fuq tiegħi kodiċi imsejjaħ bonjour-1.c. Fil-fatt, let me imorru quddiem u jimminimizzaw dan il-tieqa għal ftit mument. Eżatt bħal Windows u Mac OS, hemm folders fil Linux. Hemm folders fil-Appliance CS50. Huwa biss id-dritt issa aħna qed konfinament lilna nfusna biex dan l-ambjent it-test. Imma jekk I ikklikkja darbtejn fuq Dropbox, avviż hemm huwa l-fajl li nixtieq li jikkompilaw. Imma I bżonn din iswed u abjad tieqa terminal, biex ngħidu hekk. Imma I bżonn, għalhekk, li jiċċaqalqu f'dak folder jew direttorju. Allura ftit arcane, iżda inti ser jidraw dan ukoll. Fid-dinja tal-Linux, li għal darb'oħra huwa l-operattiva sistema aħna qed taħdem ġewwa tal-CS50 Appliance, hemm kmand imsejħa CD. Li jfisser I tista 'tagħmel CD, spazju, Dropbox. CD, direttorju bidla. Dritt. Lura fil-ġurnata meta n-nies kienu invenzjoni kompjuters u li joperaw Sistemi bħal dan, huma riedu tip il-keystrokes fewest possibbli. Allura l-eħfef mod biex jgħidu direttorju bidla kienet CD. Mela jekk jien hit CD, spazju Dropbox, Avviż dak li nbidlet hawnhekk. Ġewwa tal-parentesi l-appliance huwa tip ta humoring lili u fakkruha me fejn I am. Allura l-folder miftuħ huwa Dropbox. Jekk I issa tip ls għall lista, għal darb'oħra konċiż, għaliex in-nies ma jridux tip lura fil-ġurnata l-i-s-t. Allura dawn minflok għamilha ls. Ikteb. Avviż I tara żewġ affarijiet, bonjour-1.c, u mbagħad dan ħaġa cryptic, 1m sors. Li jinsab biss tiegħi mod ta 'tgħid kodiċi tas-sors għall-ġimgħa 1 Tnejn. C'est folder I titniżżel minn Websajt CS50 li għamilt kmieni llum u biss jitqiegħed fil- appliance bil-quddiem. Iżda għal issa l-unika ħaġa li għandna kura dwar qed tagħmel dan il-programm. Allura meta I tip make-bonjour 1, Ikteb. Kkritikat dan. Xi ħaġa li marret ħażin. Mela ejja tease dan apparti. U sfortunatament dan huwa fejn l-affarijiet jiksbu ftit stressanti fl-ewwel, għall-inqas jekk inti stajt qatt programmati qabel. My god. I kiteb programm żewġ linja u I jkollhom erba 'linji ta' żbalji. Allura x'inhu għaddej hawn. Ewwel u qabel kollox dejjem iscroll lura up u jsibu l-ewwel messaġġ ta 'żball, għaliex oftentimes kompilaturi biss nikseb konfuż minn dak li inti u I do. Il-kompilaturi huma pretty dumb. Huma ser biss tagħmel dak inti jgħidulhom li jagħmlu. U jekk inti tħawwadhom, dawn qed biss ser tip ta 'tarmi l-idejn tagħhom u forsi tarmi aktar messaġġi ta 'żball minn huma attwalment rilevanti. Mela ejja nħarsu lejn l-ewwel. Super cryptic fl-ewwel. Iżda avviż, hawn l-isem tal- f'fajl li fih I invitat up apparentement. Kolon 5, kolon 5 ifisser biss fuq linja 5 fil-ħames karattru. Allura ħames kolonna ta 'karattri, jekk inti se, żball. Użu ta 'sekwenza identifikatur mhux iddikjarat. Ridt tfisser n standard? Le, I fisser string. U allura huwa tip ta ' ikkupjar u pasta dak I ittajpjat li verament tiġbed tiegħi attenzjoni għal fejn I invitat up. Allura għal xi raġuni C, jew għall-inqas l-kumpilatur ma jifhimx il-string kelma. U dan għaliex għamilna it up. Allura string ma teżistix fil C. Liema CS50 ma, għall-ewwel ftit ġimgħat biss tal-klassi, huwa nipprovdu xi taħriġ roti, biex ngħidu hekk. U aħna tpoġġi dawn ir-roti ta 'taħriġ ġewwa ta 'fajl speċjali msejħa CS50.h. Allura dan huwa t-tieni tnejn fajl ismijiet li apparentement tintemm fl dot h. Ejja kontrina. Printf hija stqarrija jew funzjoni li apparentement prints xi ħaġa għall-iskrin. Imma inti ma tara lili jimplimentaw printf, id-dritt. Snin ilu Xi ħadd implimentati printf. F'liema fajl would you wager hu jew hi tpoġġi l-implimentazzjoni għall printf, il-kodiċi għall printf? Fil fajl imsejjaħ standard I / O.h. Fil-fatt, huwa probabbilment fl żewġ fajls, I standard / O.h, li stands għall header fajl, u I standard / O.c, li stands għall-kodiċi sors C. Allura hu jew hi xi snin ilu plopped il-kodiċi li kiteb fis dan il-fajl sabiex in-nies bħalna snin wara jistgħu jinkludu dan, biex ngħidu hekk, fil-programmi tagħna stess. U fil-fatt, dan huwa dak is-sinjal lira segwit mill-kelma jinkludu ma. Huwa jistenna fuq il-hard drive lokali, isib il-fajl imsejjaħ I standard / O.h, u mbagħad effettiv kopji u pejsts ġewwa tal-fajl tiegħi stess. Allura issa program tiegħi jaf kif li jistampaw l-iskrin. Allura billi li l-loġika, fejn huwa string definit? UDJENZA: CS50.h. DAVID J. Malan: CS50.h. U fil-fatt, dan huwa dak li aħna, il-persunal qalba, għamlu. Imxejna ivvintat tipi ta 'data ftit, biex ngħidu hekk, bħal string, minbarra dawk inti nikseb b'xejn, bħal int. U aħna ser tara oħrajn bħal char għal karattru u ftit aktar. Ġewwa l CS50.h apparentement huwa mill-inqas xi aċċenn ta 'spag. Allura issa let me imorru quddiem u terġa 'ssir make bonjour-1. I ser zoom darb'oħra u cross fingers tiegħi. Issa minn wara li għamlet waħda bidla I fiss aktar affarijiet. Iżda kkritikat dan. Aktar percents minn argumenti dejta. What did I do wrong dan iż-żmien? Allura huwa għadu pjuttost cryptic. Iżda dan l-iżball huwa fuq linja 7 u l-karattru 21. Mela ejja tmur tfittex up here. Huwa ftit sottili. Imma jekk inti taħseb dwar dak l-ideat fundamentali hawn huma, forsi nistgħu tease dan apparti. Allura printf huwa l-isem tal-funzjoni. Parentesi, s'issa, huwa bħad dak li nitfgħu madwar l-għalf aħna qed tgħaddi bħala inputs għal funzjoni. Kull dritt, biss konvenzjoni tal-bniedem arbitrarja. Uża parentesi. Ġewwa ta 'dawk parentesi konna ġew tqegħid kwotazzjonijiet doppja, u mbagħad string bħal "bonjour dinja." Iżda f'dak eżempju kmieni ħafna qosor ma nħarsu lejn mal Scratch. U kellna l-mija d, x'iktar kien ġewwa ta 'dawk parentesi li I imsejħa out verbalment? Yeah. UDJENZA: Allura huwa dak li inti qed tieħu [Inaudible] minn ġewwa [inaudible] liema dawn [inaudible]? DAVID J. Malan: Eżattament. Allura kellna l-mija d. Iżda mbagħad kellna qrib kwotazzjoni, comma, kontro. Dritt. Aħna speċifikat dak li rridu biex jagħmlu bħala l-placeholder. Allura dak li jien ser tagħmel hawnhekk hija comma, dak li tridu lili biex tqiegħed? UDJENZA: S. DAVID J. Malan: S, minħabba s f'dan il-każ huwa l-isem tal-kontenitur tal-ħażna. Hu l-isem ta 'dak skutella ħġieġ. Billi qabel kien counter f'dik Eżempju Scratch sempliċi ħarisna lejn. Allura issa wara li għamlet żewġ bidliet, let me zoom u jippruvaw darba aktar biex jikkompilaw dan il-programm. Issa nara dik il-linja cryptic. Imma dak li attwalment l- isem tal-kompilatur. Clang huwa l-isem tal-kompilatur. Jagħmlu huwa biss iffrankar me l-uġigħ ta 'ras ta' dejjem ittajpjar dak il-kmand twil crazy out. Allura issa jekk I do dot mmejla bonjour-1, I għandhom ara "hello, David." Pretty underwhelming, għalkemm, id-dritt? Aħna seta 'jsir dan ħafna aktar sempliċement mingħajr ma tkellem dwar varjabbli u CS50.h u kollha ta 'dak. Mela ejja jagħmilha ftit aktar interessanti. Minbarra l CS50.h, jkollhom affarijiet simili string iddikjarat, il-librerija CS50 għandha wkoll ftit funzjonijiet. Snin Hekk biss bħal ilu, xi ħadd kiteb printf u poġġih fl-istandard I / O.h u xi fajl ieħor. Aħna, il-persunal CS50, kiteb funzjoni imsejħa getchar, GetDouble, GetFloat, GetInt, GetLongLong, GetString, u npoġġux dawk ġewwa fajl imsejħa CS50.h u CS50.c. U aħna jqiegħdhom ġewwa tal-Appliance CS50. U n-nies tista 'wkoll tniżżilhom online jekk dawn tixtieq li jpoġġuhom fuq tagħhom kompjuters stess kif ukoll. Li huwa li jgħidu li ħloqna funzjonijiet li jiksbu input mill-utent. I do not know dak kollu ta 'din id-data it-tipi huma. GetInt huwa tip ta 'sempliċi, bħal tikseb integer b'xi mod mill-utent. U GetString huwa probabbilment bħal get kelma jew sentenza mill-utent. Mela ejja tiffoka fuq dan. U jien se jmorru lura fil- appliance u jien ser jimxi 'l quddiem u ħlief dan il-fajl bħala, ejja sejħa it bonjour-2.c bħala t-tieni verżjoni tiegħi. U ejja jagħmlu koppja ta 'bidliet. Din id-darba minflok hard David kodifikazzjoni, li jagħmel oerhört konsistenti imma programm underwhelming, jekk dak I minflok do GetString? Issa avviż GetString għandha parentesi miftuħa, parentesi magħluqa, minħabba ma bżonn xi input. Huwa biss se jmorru tikseb string mill-utent. U issa kelma fuq sintassi oħra. Semicolons biss jispiċċaw linja ta 'kodiċi. Inti ma għandekx bżonn minnhom kullimkien. Iżda dan ifisser biss jien isir ma din il-linja tal-kodiċi. Let me jimxu fuq ieħor dikjarazzjoni jew il-funzjoni. String tiddikjara varjabbli. String huwa simili qal tagħti me a bowl, jekk jogħġbok. U let me tpoġġi string fiha. U issa l-sinjal ugwali. X'inhu l-sinjal ugwali essenzjalment ekwivalenti għal? UDJENZA: Jassenja. DAVID J. Malan: Yeah, assenjazzjoni ta 'valur. Mela jekk jien, per eżempju, is-sejħa dan GetString funzjoni, u aħna ser tara fil-mument li l- ser pront l-utent għal string. Dan huwa simili kiri me imbagħad jiktbu -D a-vs i-d fuq biċċa karta. U meta ngħid string i ugwali GetString, ugwali ma jfissirx verament ugwali fl-ipprogrammar C. Dan ifisser jassenja mid-dritt naħa l-naħa tax-xellug. So I ve gotten string. U s-sinjal ugwali jfisser poġġih fil-ħażna kontenitur imsejħa s. U Imbagħad jgħaddu dan off biex printf li fil-fatt jagħmlu ħaġa tagħha. Allura l-riżultat aħħari mbagħad huwa għaddej biex tfittex ftit differenti. Ejja nagħmlu make-bonjour 2. Jew jistgħu jaħdmu. Inti wara flimkien. Make-bonjour 2 maħduma. Dot mmejla bonjour-2, Ikteb. I jidhru li jkollhom infinita loop jew xi ħaġa. Xejn jiġri. Għaliex? UDJENZA: Huwa tagħmel loop infinita. DAVID J. Malan: Huwa loop infinita. Huwa tip ta 'stennija għalija li attwalment jipprovdih bl xi kontribut. So let me jimxi 'l quddiem u t-tip fl David, u hit Ikteb. U issa jgħid "hello, David." Jekk I run mill-ġdid. Ejja tip fil Rob, "hello, Rob." Issa dan huwa l-agħar user interface qatt. L-utent huwa apparentement suppost li tkun taf x'għandek tagħmel. Imma ma jimpurtax. Jużaw dawn istess bini blokki bħad fil Scratch, nistgħu issolvi din il-problema u jgħidu xi ħaġa bħal isem tiegħek jekk jogħġbok, kolon, ispazju, magħluqa kwotazzjoni, qrib parentesi, virgola. Allura ħafna darb'oħra silliness mal-sintassi. Imma avviż Stajt biss miżjud biċċa puzzle hawn fuq dan wieħed u fuq dan wieħed. Allura issa jekk jien terġa dan, bonjour-2, Ikteb. Stenna minuta. X'hemm ħażin? Mhuwiex iġibu ruħhom b'mod differenti. Yeah. UDJENZA: Inti ma run jagħmlu mill-ġdid. DAVID J. Malan: I ma run jagħmlu darb'oħra, id-dritt. So I ve mibdula kodiċi sors tiegħi. Iżda għal darb'oħra, hemm li l-fluss. Kodiċi tas-sors permezz tal-kumpilatur jagħti inti kodiċi l-ġdid oġġett, jew 0s u 1s. So I bżonn biex attwalment terġa 'ssir make bonjour-2 Ikteb. OK, xi ħaġa jidher li ġara. Dot mmejla bonjour-2. Ismek jekk jogħġbok. U biex ikunu ċari issa, għaliex hija il-cursor fuq l-istess linja? Eżattament. I ma poġġiex il-backslash n up hawn fil-kodiċi tiegħi. Allura issa I tista 'tikteb xi ħaġa bħal Daven, Ikteb. I tista 'taħdem mill-ġdid u t-tip xi ħaġa bħal Gabe, Ikteb, u nikbru programm differenti ġdid u għal darb'oħra u għal darb'oħra. Issa finalment aħna qed tmur għall-ħtieġa biex jużaw kapaċitajiet differenti ftit. Għandna bżonn li jiġu introdotti finalment xi kundizzjonijiet biex tagħmel affarijiet kundizzjonalment. Forsi loops hekk nistgħu nagħmlu affarijiet u għal darb'oħra. Forsi jkun sbieħ jekk aħna jista 'jimplimenta l-funzjonijiet tagħna stess, bħal aħna jista 'jimplimenta tagħna stess printf jew il-verżjoni tagħna stess ta 'GetString u GetFlow, għaliex finalment anke jużaw dan l-ambjent linja tal-kmand nistgħu nagħmlu anke l-aktar viżwalment interessanti ta 'affarijiet. Tabilħaqq fil-konklużjoni let me tagħmel dan. Jien ser jimxi 'l quddiem u qrib dawn it-twieqi u tiftaħ din l-ikona hawn, li huwa biss akbar verżjoni ta 'dak inkorporat tieqa terminal. Allura gedit mhux biss il-post għall-kodiċi tiegħi, iżda wkoll mibnija tieqa terminal, il- tieqa iswed u abjad fejn I tista 'taħdem jikkmanda. I biss ġara li tiftaħ verżjoni akbar ta 'dan. U issa jien se jmorru fil l-folder li stajt diġà jitqiegħdu bil-quddiem fuq il-websajt il-kors tal-. U jien ser jimxi 'l quddiem u tiftaħ fajl imsejjaħ thadgavin.c, li ġie miktub minn xi ħadd ieħor. U jekk inħarsu lejn din, dan mhuwiex it-tip ta 'kodiċi aħna ser tkun bil-miktub mill- l-għan ta 'dan il-kodiċi kien li jiktbu l-prettiest tfittex kodiċi li hu jew hi tista ', irrispettivament minn jekk jew le bniedem ieħor jista 'qatt jifhmu dan il-kodiċi. Tabilħaqq, kull sena jkun hemm x'hemm jissejjaħ konkors C obfuscated, li huwa għall geeks reali li jiktbu kodiċi li ebda wieħed inkella jista 'jaqra, iżda li ma xi ħaġa jew verament sempliċi jew verament aqwa. U ħsibna aħna'd tikkonkludi ma din tfittex fuq xi ħaġa li pjuttost aqwa inti tista raw darba qabel. Iżda aħna ser jispiċċaw fuq dan nota, dot mmejla, thadgavin. Dan imbagħad huwa dak li jistenna. C'est għal CS50. Aħna se tara int nhar l-Erbgħa. [Daqq ta mużika]