[Video atskaņošana] -A Triumfs matemātisko un mehāniskās prasme tas ir liels jaunu automātisko kalkulators Hārvardas universitātē. Sarežģīts problēmas matemātikā likts caur mašīnu kodētā veidā lentē ir precīzi risināti minūte daļu laika vajadzīgs cilvēka aprēķinam. Izstrādāts, lai paātrinātu visu veidu formas matemātisko un zinātniskā pētniecība, milzu mehāniskās smadzenes strādās ASV Navy līdz kara beigām. [Beigtu atskaņošanu] DAVID J. Malan: Tas ir CS50. Pagājušais bija maģisks vieta, bet, ja jūs esat kādreiz brīnījās, kas tas ir ierīce in Harvard Science Center, tas ir patiešām daļa no Harvard Mark I, un tas ir uz displeja tur tagad pēdējo daudzu gadu garumā. Un ko jūs redzēsiet iestrādāta problēmu kopumu viens ir apskatīt aizkulises par to, ko šī ierīce bija, un tas, no profesora Harry Lewis, kurš ir datorzinātņu departaments šeit. Tik daudz par ka tikai mazliet. Bet šodien mēs sākam pāreju no pagājušajā nedēļā uz šo, un mēs atnesīšu pieminēt Vienas fotogrāfijas šeit tas ir faktiski diezgan slavens. Vai kāds zina, ko tas šeit ir uz ekrāna? Vismaz saskaņā ar mītu. Jā. Mērķauditorija: Pirmais vīruss. DAVID J. Malan: Tātad tas bija it Pati pirmā faktiskais bug datorā. Tagad patiesībā vārds bug, par kļūdu kādā programmā, ir kopā ar mums, lai kādu laiks fiziskajā pasaulē, un šī bija viens no pirmajiem dokumentētas reizes kur kāds faktiski noplūktas lielu kožu no Mark II dators, likt to saistvielu, un pēc tam reģistrē to kā pirmā zināmā bug lai faktiski ir atrasti fiziski. Tātad Tādējādi tika ievadīts ka uz šodienas mācība. Viss no pēdējās nedēļa ir pieejams tiešsaistē. Jo īpaši resursu, ka jūs varētu ne vienmēr paziņojums, it īpaši ja nāk šeit personīgi. Tātad viena no mācību puiši ik gadā padara kanonisko kopumu piezīmes, tāpēc jums nav nepieciešams turēt galvu uz leju, cenšoties pārveidot visvairāk neko kas varētu notikt šeit klasē. Tāpēc jāsaprot, ka tie tā sauktais [? Scribd?] Piezīmes tiešsaistē, protams, slaidi un pirmkodu, ka mēs izmantojam klasē. Mēs izgatavojam pilnu tekstu stenogrammas pieejamas kā labi. Tātad, ja jūs neskaidri atceros kādu termins, un vēlas, lai skatīties to uz augšu mazliet vieglāk, saprast, ka viss no tā ir meklējams tiešsaistē. Kā arī walkthroughs, kā arī. Patiešām, šodien mēs sākam apskatīt zemāka līmeņa programmēšanas valoda, drīz, lai būtu zināms mums kā C, un tas ir ļoti viegli līdz veida pazust jau pēc pāris brīži laiks, un tad sava veida brīnums kā mēs faktiski ieguva dažas vairāk sarežģīts piemērs no vienkāršākā. Un tā saprotu, mēs ķirsis uzņemt klasē kādā laikā no uzskatāmiem piemēriem, bet apzināties, ka tik daudz ir arī pieejami tiešsaistē, lai jūs varētu strādāt caur to pie sava gaita, tomēr esat visērtāk. Bet mēs left off ar programmas, kas bija tieši šis. Tāpēc es noklikšķiniet uz zaļo karogu, un ko šī programma dara? Saka, hello, pasaule. Tas padara kaķis teikt sveiki viņa maz pasaulē augšējā kreisajā pusē no nulles, lietotāja interfeiss. Bet mēs sākām ieviest daži terminoloģija pagājušajā nedēļā. Un tā, lietas, piemēram, to mēs sauc, ko? Kāda varētu būt vispārējs termins par šo? Jā. Metode vai paziņojums. Protams, tas ir rīcība. Dariet to. Un tomēr tur bija citas formas nulles, Bez šiem tā saukto apgalvojums, tie bija arī lietas, piemēram, tas, ko mēs sauc par ko? Jā. Tik cilpa. Un, šajā gadījumā, šī lieta atkārtojas, protams, 10 reizes. Tur ir mūžīgi bloks. Tur ir pāris citiem. Un šodien mēs ejam, lai redzētu, kā tulkot šo vairāk mūsdienu pasaulē, ja jūs, pat ja tas ir gatavojas ierasties pēc pirmā acu uzmetiena būt daudz vairāk arcane. Bet tie tiešām bija cilpas. Un tad mums ir lietas, piemēram, Tas, kas bija šo formu, un būtībā uzdotie jautājumi. Un mēs minēts kā tie, ko? Mērķauditorija: Būla izteiksme. DAVID J. Malan: Jā. Būla izteiksme. Kaut ko, kas ir vai nu patiess, vai nepatiesa, jā vai nē, viena vai nulle, tomēr vēlaties apskatīt pasauli. Bet mēs sauc tos Bula izteiksmes, un mēs pievienojiet tos par nosacījumiem, vai filiāles. Un pasaulē Scratch, viss labi atslēgām attiecībā uz tās formu, ja tas padara loģisku jēga to darīt, bet jums nav apstāties pie tikko darot vienu lietu nosacīti, Jums var būt proverbial dakša uz ceļa un darīt vai nu to vai ja nosacījums ir taisnība, vai ne. Un tad, kā jūs redzēsiet, Ja jums vēl nav, Jūs pat varat ligzdo šos blokus. Tātad Scratch aug aizpildīt formas ka jūs varētu vēlēties, lai ievietotu tajā, lai jūs faktiski var izteikt visvairāk jebkurš loģiski, ka jūs varētu vēlēties darīt. Tagad daži vārdi paziņojumu lai gan šeit, gan New Haven. Tātad pārgriešana sākas šodien. Par šo URL ir par kursu s mājas lapā, par tiem svešs. Sekcijas būs iespēja saņemt kopā būtu daudz vairāk intīmo vidi kā [? Sanders?] Pieļauj, ar 10 līdz 20 klasesbiedriem ar mācību līdzstrādnieks dažādām trasēm, un dažādi tempus, ja jums tā izvēlēties. Patiešām kursa piedāvājumu dažādas sekcijas tiem mazāk apmierināti, vairāk ērts, un kaut kur starp, un loma īkšķis šeit, ir tur nav formāla definīcija, bet, ja tu esi tik ērti, jūs veida zināt to. Tu esi mazliet bezbailīgs Par Ideja par pastiprināšanu kāju, iespējams, atpakaļ klasē, vai parādot līdz pat starp sadaļā. Ja esat bijis programmēšana kopš tevi bija seši gadi, ērtāk, varbūt jums. Un, ja tas ir sava veida mētāt-up, tas ir tieši tas, ko pa vidu ir domāts, lai būtu. Tagad, pa to laiku, par klasi šo lielumu, tas aizņem mums diezgan kādu laiku, lai sadaļu visi, tāpēc mēs esam tā saukto, super sekcijas, nāk klajā šī nedēļas nogalē un nākamās nedēļas sākumā, tāpēc to apskatīt kursa mājas lapā tiem, kas ir, protams plašs, un arī filmēja tiem kas nevar padarīt tos. Un sekcijas paši sāks nedēļā trīs no CS50 nulles indekss. Problēma noteikti 0 jau par kursu mājas lapā. Un saprast, ka jums ir deviņas vēlu dienas šis semestrī. Tātad tas ir jauninājums no pēdējās gads, kad mums bija piecas vēlu dienas. Tātad, ja jūs domājām, mums ir deviņi problēmu kopas. Jums ir deviņi vēlu dienas, no kuriem katrs jūs varat tikai tērēt vienu nedēļā on. Tas faktiski padara visu problēma noteikti dēļ Piektdiena, bet mērķis ir likt nedaudz mazliet psiholoģisko spiedienu par jums, lai mēģinātu iegūt lietas ceturtdien jo, kā jūs drīz atklāt, lai labāk vai sliktāk, visvairāk viss programmatūras pasaulē nonāks ņemot daudz ilgāk, nekā jūs prognozēt. Tāpēc uzskatu to par sava veida par iespēju palīdzēt yourself mērķa ceturtdien, bet būt apmierināts, ka, jā, viss ir saistīts piektdienā. Un, ja jūs iesniegt tos Ceturtdiena, tas ir brīnišķīgi. Nav bonusa punktiem vai papildu kredīts, lai sasniegtu šo termiņu. Tas ir domāts, lai būtu tikai kruķi. Un darba laiks, gan šeit un New Haven, personīgi, ja vēlaties tikties ar kādu no mūsu kursiem mācību stipendiātiem un CAS palīdzības. Viss kārtībā. Tāpēc tagad, pieņemsim padara šo reālāks. Un uz brīdi tas notiek, lai sāktu lai iegūtu nedaudz vairāk mistisks, bet ļoti ātri piektdien un nākamnedēļ mēs būsim var darīt daudz vairāk nekā mēs varētu līdz šim ir nulles. Tātad mēs iepazīstinājām kodu pēdējo nedēļā, lai gan pictoral. Tas bija puzzle gabalus. Un mēs formāli, ka tas ir kaut ko sauc par pirmkodu, bet tomēr izskatās? Nu, tas izskatījās mazliet kaut kas tamlīdzīgs. Un, patiesībā, tikai veida ķircināt kur mēs varam iet ar to. Es iešu uz priekšu un atvērt logu šeit, un es esmu tikai gatavojas izvēlēties jaunu failu. Un es esmu gatavojas, lai saglabātu šo failu kā kaut ko līdzīgu sveiki dot c. Vairāk par šo izvēli vārdus tikai brīdi. Un tas ir tas, kā kāds varētu iet par rakstveidā programmu. Iekļaut standarta I / O dot h, int galvenais par spēkā neesošu, un pēc tam atvērt cirtaini lencēm, close cirtaini lencēm, printf sveiki komats pasaule, slīpsvītru n, semikols, Save, darīts. LABI. Es esmu uzrakstījis mans pirmais programma, bet tas notiek būt neticami underwhelmed jo, kad es tiešām palaist šo programmu, protams, ar pirmo rakstiski darīt sveiki, un tad DOT slash hello, un mēs iet caur to daudz detalizētāk pēc brīža, tas ir viss, tā dara. Nav pop atvērt visus logus. Tas nedara neko īpaši fancy. Viss tas ir tas, ko es teicu, lai darīt, bet kā mēs nokļūt, ka? Un kā mēs balstīties uz to? Nu, pieņemsim ieviest dažus dažādi jēdzieni šeit. Tik viens, mēs esam par to, lai sāktu izmantojot programmu, ko sauc kompilators. Kompilators pastāv Mac OS, Windows, Linux, jebkurš no operētājsistēmām skaits, un mēs drīz jūs iepazīstināt ar vide, kas mums būs izmantojot, bet kompilators ir tikai vispārējs termins gabals programmatūras kas ņem pirmkodu un ražo objekta kodu no tā. Citiem vārdiem sakot, ja jums ir kā ieejas signāla avotu kods, kaut kas līdzīgs, ko es tikko drukāti, tas galu galā rada objekta kodu. Un objekts kods ir patiešām vienkārši iedomātā veids, kā pateikt, ka izejas nulle s un viens ir. Citiem vārdiem sakot, avots kods, pat ja tas ir skatīsies mazliet arcane, un nedaudz mazāk draudzīga nekā nulles pēc pirmā acu uzmetiena, tas ir vismaz kaut kas ka mēs cilvēki var saprast. Tā veida izskatās un izklausās Angļu pat ja tas ir ļoti īss. Tā plānošanu nulle s un viens ir, kā mūsu priekšteči bija jādara, Pirms dažiem gadiem, nebija īpaši jautri izaicinājums. Un tomēr, tas ir tas, ko dators joprojām saprot. Tātad kompilators izpaužas mūs no pirmkods iebilst kodu. Tas ir tāpat kā atvērt failu ar kompilatoru, un, kad jūs to saglabāt, jums tās nullēm un uzņēmumiem. Tātad mēs redzēsim, kā to izdarīt ka tikai brīdi. Bet pieņemsim tagad cenšamies nodrošināt tiltu starp pagājušajā nedēļā, un tas, tā ka pat tad, kad mēs get hung up par lietām, piemēram, cirtaini bikšturi, un semikoliem, un iekavas, un visi šie intelektuāli interesanti aspekti programmēšana, ka ļoti saprotams ceļojums cilvēkus agri, saproti, ka visas idejas šodien, ir tādi paši kā pēdējais. Tātad pēdējais, mēs redzējām šo piemēru šeit, Hello World programmu. Nu, sākot ar šodienu, ja mēs gribam lai īstenotu šo pašu programmu, tas notiek, lai izskatās mazliet kaut kas līdzīgs šim. Un mēs izskaidrot pirms ilgi kādā int, un galvenais, un par spēkā neesošu, un visu, kas ir, bet vismaz es redzu šeit jau pazīstami Hello World. Tikmēr, lietas, piemēram, funkcija, teiksim sveiki, ir ļoti vienkārši būs ļoti vienkāršs apgalvojums, kā šis. Printf hello world, ar dažiem citātus, ar slīpsvītru, ar semikolu, bet vairāk par to, lai nāk. Cilpas, tikmēr tas ir cilpa, kas, protams, saka sveiki pasauli uz visiem laikiem, un tas viens ir gatavojas izskatās mazliet dīvaināks nekā pēdējā, bet, ja es kaut ko teikt tāpat, lai gan ir taisnība, es pēc tam var izdrukāt Hello pasaule atkal un atkal un atkal un atkal. Un tad, kā jūs varat veida no sākuma, lai secinātu šeit, šī konvencija, izmantojot cirtaini bikšturi ir laipns līdzīgu aptverošu izrobots līnija koda tur. Printf līnija koda līdzīgi dzeltenais puzzle gabals augšas. Tātad mēs nebrauksim teikt visiem laikiem, mēs ejam teikt, bet taisnība, bet mēs redzēsim, kāpēc tas ir tikai mazliet. Tikmēr, ja mums ir cilpa, piemēram, tas, kur jūs atkārtot kaut ierobežots numurs reizes, šo vienu too tas ir gatavojas veikt mazliet jāpierod to, bet tas notiek teikt par int i kļūst nulle, i mazāk nekā 10, i ++, un tad printf vēlreiz. Bet tur būs modeļus. Un tiem no jums pazīstami ar AP datorzinātnēs vai Java, vai kādu citu valodu skaits, gandrīz visas no šīm konstrukcijas Līdz šim vajadzētu izskatīties galvenokārt pazīstams. Tik mainīgs. Tātad, šeit ir vienkāršs Scratch izvilkums ka nosaka mainīgo sauc counter līdz nullei, un tad uz visiem laikiem saka skaitītājs, un tad tas izmaina skaitītājs pa vienam. Tātad, tas sākas ar nulli, un pēc tam viens, divi, trīs. Nu, kā varētu mēs ieviest, ka Šī jaunā valoda mazliet līdzīgi? Int skaitītājs ir vienāds nulle, bet taisnība, kas ir tas, ka pati ideja no pirms darīt kaut ko uz visiem laikiem, un es esmu tikai gatavojas printf. Un tagad tas kļūst mazliet dīvaini, procenti i, bet vairāk par to, lai nāk, bet šīs idejas ir tieši tāds pats. Mēs tikai tagad ir jāievēro sintakse, ka dators ir gatavojas pieprasīt no mums. Būla izteiksme, kaut ko līdzīgu sx mazāk nekā y, vai x mazāk nekā y, un y ir mazāks par z. Tas notiek, lai izskatās mazliet kaut ko kā šis, ar iekavas tikai tāpat math labs pasākums, lai tikai nodrošina, ka operāciju kārtība ir, kā mēs plānojam. Un tagad, nosacījumi. Tātad, ja x ir mazāks nekā y, teiksim x ir mazāks nekā y, cits ja x ir lielāks nekā y, teikt x ir lielāks nekā y, citādi loģiski, x ir vienāds ar y. Lai jūs varētu īstenot kaut kas līdzīgs tas nulles, vai jūs varētu īstenot tas šajā sintaksi. Un atkal, cirtaini bikšturi ir sava veida dodot mums to pašu formu kā puzzle gabali, bet sintakse, tagad ir iespējams sāk ievērot dažus modeļus. Tātad, ko tas dod mums šeit? Tātad mēs esam atpakaļ, tad mūsu galvenajā programmā. Pieņemsim faktiski, tagad, kaut ko darīt ar to. Tātad tas pats pirmais line mēs redzam asas ietver, standarta I / O, punkts h, un tad daži dīvaini leņķis iekavās zem ka. int main par spēkā neesošu, un tad printf hello world. Tik vienkārši veikt soli. Kāds, kurš nekad nav ieprogrammēts agrāk, vismaz paskaidrot vienu no šīm līnijām. Izmantojot varbūt daži žargons pagājušajā nedēļā. Kas ir printf, piemēram? Jā. Mērķauditorija: [dzirdams] DAVID J. Malan: Jā. Tā ir funkcija, vai paziņojums, No pagājušās nedēļas terminoloģiju. Un tas ir darbība ka dara kaut ko. Tagad šī funkcija, vai Šis apgalvojums, vai tas, šķiet, veikt kādu ieejas? Un kāda jēga to dara šķiet, veikt ieguldījumu, ja tā? Input, Ko es domāju ar šo? Jā. Mērķauditorija: [dzirdams] DAVID J. Malan: Jā. Tātad Scratch no pāris puzzle gabalus kur jūs varat parametrize to. Jūs varētu pateikt atkārtot bloķēt cik reizes atkārtot, tā ka bija ieguldīto veidu, un tāpat kā Scratch bija mazliet balta vietturi skaitam jūs ierakstiet, tāpēc mēs izmantojam šajā Teksta pasaules iekavas lai dotu mums, ka apaļu formu kurā mēs varam plug savu ieguldījumu. Galu galā, desmitiem gadu atpakaļ ja šī valoda, ko sauc par C, tika izgudrots neviens Paredzams, tas ir viens no mums, šos dažus gadus vēlāk, mēs gribētu gribu funkcija, kas saka sveiki. Tiesības? Tas lūdzu būt jauki, ja būtu puzzle gabals vai atslēgas vārdi, ka sauc sveiki, ka burtiski vienkārši saka sveiki. Bet mums nav nepieciešams, ka. Mēs varam būt kaut kas daudz zemāks līmenis, piemēram, ģenērisko drukāt komanda, kas ņem ievadi, un izdrukas kāds mēs gribam. Tātad paziņojums tagad modelis kas sāks parādīties. Atvērt paren, tuvu paren ir acīmredzot aptverot ievadi, un tad es redzu dubultā citātus abos galos. Joprojām dīvaini slīpsvītra n, bet cerams, ka tagad jūs var sākt iztēloties, ka vismaz printf veic sava veida ieguldījumu. Ne tik lietotājam draudzīgi, kā Scratch, bet tas ir tikai tāpat tam pievienots kādu vērtību tur. Labi, tagad pieņemsim faktiski kaut ko darīt ar to. Tāpēc daži no jums varētu zināt no kam iepirkušies klasi pirms, tērzēja ar draugiem, ka daudzus gadus mēs izmantojām kaut ko sauc CS50 ierīce. Tas bija termins, kas apraksta tehnoloģijas sauc par virtuālo mašīnu, kas ir gabals programmatūra, kas jūsu priekšteči varētu lejupielādēt off Kurss mājas lapā par brīvu. Viņi arī lejupielādēt bezmaksas gabals programmatūras sauc hypervisor, kaut ko sauc, piemēram, VMware, vai VirtualBox, vai jebkurš skaits no citiem rīkiem, un par to Mac vai PC vai kāds dators viņiem bija pagājušajā gadā un gadu iepriekš, tie būtu dubultklikšķi uz ikonas palaist šo programmatūru sauc hypervisor. Un tad iekšpusē šo programmu tie pavērtu CS50 ierīci. Un efekts bija, ka vai priekštecis jums skrēja Mac OS vai Windows, viņš vai viņa pēc tam Pēc tam bija jaunu logu uz to ekrāns darbojas CS50 vidi. Tātad virtuālā mašīna ļauj palaist vienu operētājsistēmu iekšpusē citu, un tas ir tieši tas, ko mēs darījām. Visā lielākā daļa, protams, mēs izmantot operētājsistēmu, ko sauc Linux, īpaši Ubuntu Linux, un tas ir ļoti jauks veids gadu pagātnē Pārliecinoties, ka ikvienam gaitā tikko bija tā pati vide. Un jūs varat izmantot jebkura veida dators, kas jūs tiešām vēlaties. Starp ēnas, lai gan, bija tas bija, piemēram, diviem gigabaitiem lejupielādēt šo lietu. Tas ne vienmēr strādā super labi cilvēki, kuru datorus, kas varbūt tikai bija GIG vai tik RAM, vai ne pārāk daudz gigahercu CPU ātrumu, un tāpēc šogad, lai šo un citu iemeslu dēļ, ir mums ir pārejot šai videi. Ts CS50 IDE, kas ir pamatojoties uz atklātā pirmkoda programmatūru, un atbalsta platforma ka uzņēmums, ko sauc Cloud9 atbalsta Eiropā, kas ļauj mums būt pamatā ka tieši tādu pašu vide kā gadu iepriekš, bet tā saukto mākoni. Tātad, kas ir mākonis? Jūs droši vien esat noklikšķinājis tā ikona uz jūsu Mac vai PC. Kas ir mākonis? Yeah? Mazliet skaļāk. Jā. Tas ir tikai ķekars datoriem citur, kas uzglabā datus un palaist programmatūru un tamlīdzīgi. Tātad, tas ir tiešām tikai ar vārdu de jure aprakstīt [? nomājams?] datori, kas dzīvo citur. Ka jums, sevi, ne vienmēr paši. Tātad, ja jūsu dati, vai jūsu programmas, ir mākonis, tas tikai nozīmē, ka tas ir uz kādu cits datori citur, un nevis, visticamāk, par savu fiziskā klēpjdatoru vai galddatoru. Un tā tas, ko CS50 IDE tagad ir. Turpmāk jūs doties uz noteiktu URL, kas būs jūs iepazīstināt to, jo problēma ir noteikts 1, vēlāk šajā nedēļa, kas būs pēc tam, kad piesakoties, sniegt jums šo vidi. Un līdzīgi Scratch bija daži atšķirīgi paneļi iesaistīti, tas pats CS50 IDE ir tieši tā. Augšējā kreisajā pusē šeit, jūs esat gatavojas redzēt pazīstamas failu pārlūks. Tātad kāds no failiem, kas jums nodot šajā vidē ir tikai tiks uzskaitītas. Failus un mapes. Uz augšu tepat, jūs gatavojas redzēt vietu kur jūs faktiski var rakstīt savu kodu. Sākotnēji C, vēlāk Termins PHP un JavaScript, un, varbūt final projekti, Ruby vai Java vai Python vai kādu valodu skaits ir atbalstīta šajā vidē. Tas nemaz nav piesaistīti uz CS50 konkrēti. Un tad apakšējā stūrī šeit, jo īpaši tiem, ērtāku, jums ir kaut kas sauc par termināla logu. Un šī termināļa logs ļauj jums izpildīt jebkuru komandu, kas jums gribu šajā mākonis vidē. Tas ļauj jums, lai instalētu jebkādu papildu programmatūra ka jūs vēlaties, jo jūs esat tā sauktais saknes, vai administratora privilēģijas. Tātad citiem vārdiem sakot, pat ja tas galu galā izvietots mākonis, un, lai gan mēs esam vienkāršota to zināmā mērā pēc noklusējuma, burtiski ieviešot, Pateicoties Dan Armendariz, un Dino, un Dan Bradley uz CS50 komanda virs tā pagātnē daudzus mēnešus, mazāk ērts režīms, kas slēpj daudz no sākotnēji jauc traucējošos. Viss pastāv uz veido tipisku datorsistēmu ka jūs varētu izmantot reālajā pasaulē. Tātad, ko tas viss nozīmē, un Ko mēs varam reāli darīt ar to? Pieņemsim faktiski pieņemt palūrēt pie programmas. Tāpēc es esmu gatavojas atvērt Faktiskais vide šeit, kas ir tikai mūsu Chrome pārlūks, kas varētu būt Firefox, varētu būt Internet Explorer, vai kādu citu pārlūku, kā arī. Tas ir pilnībā pārmeklēta šeit uz šo brīdi. Un es gribu, lai faktiski ķircināt izņemot to, ko šī programma bija. Tātad, pieņemsim to apskatīt, uzklikšķinot uz augšu top, to, ko es darīju, un kā es saņēmu šeit. Tātad, šeit ir tie, precīzs paši rindas kodu. Tātad šis ir apgalvojums, kā jūs jau iepriekš minēts. Funkcija, kas saka sveiki. Cirtaini bikšturi, par line četri un seši līnija, domājams veida piešķīrumiem ka līnija saistīt to ar būtību manā programmā. Tātad tiešām, šis atslēgvārds galvenais, tas ir tur augšā uz līnijas trīs, Jūs varat iedomāties, ka ekvivalents no ka tad, kad zaļais karogs uzklikšķināt, bloķēt in nulles. Tātad tas ir viss, kas mums ir šeit, ir, kad zaļš karogs uzklikšķināt, izdrukāt, vai teikt, Sveika pasaule. Bet pieņemsim minējums, tagad, ko Tas, pirmkārt, vairāk arcane līnija, ir. Sharp ietver, open leņķveida kronšteins, standarta I / O dot h, aizvērt leņķveida kronšteinu. Kas ir tas, ka, iespējams, dara, it īpaši, ja jūs esat programmēt pirms kādā citā valodā. Yeah? Mērķauditorija: [dzirdams] DAVID J. Malan: Jā. Tieši tā. Tātad šis dod jums piekļuvi bibliotēka, tā sakot, no funkcijām. Un bibliotēka funkcijām ir funkcijas, ka kāds cits rakstīja: nu nesen vai sen, lai jūs nav no jauna jāizgudro ritenis. Piemēram, mums nav ir jāzina, 2015. gadā, kā rakstīt kodu, kas liek raksturs uz mana ekrāna. Kāds cits ir izpētījuši, ka veic ar printf funkciju lai es varētu kārtot abstraktās prom no ka, vai slānis virsū viņa vai viņas kods, un tagad lietojiet tikai par pašsaprotamu, ka jebkura programma man uzrakstīt var drukāt kaut ko uz ekrāna. Tātad šī pirmā rinda tur vienā solī ietver tā saukto header failu standarta bibliotēkā. Tātad redzēt, ka valodu ko mēs tagad strādājam bija standarta bibliotēka ar daudzām funkcijām. Printf ir viens no tiem, un ka pirmajā rindā kodu nozīmē, iedodiet man piekļuvi šīs funkcijas, tā ka es nav jauna, ka ritenis. Tagad iesim uz apakšējā loga un darīt tieši to, ko es darīju pirms tam. Pirms mirkļa, kad es biju whizzing izmantojot kodu, ierakstot to, pirmo reizi, Es ļoti ātri drukāti, veikt sveiki. Ko tas viss bija jūs uzminēt? Kas bija daru? Yeah? Aizmirsti. Ir labi. Jā. Mērķauditorija: apkopošana to. DAVID J. Malan: Jā. Tas bija tikai apkopojot to. Tiesības? Pat tad, ja tas ir pilnīgi svešs jums, tas ir diezgan angliski, piemēram. Tas, protams, nav nulles un tiem, tāpēc es joprojām ir nepieciešams, lai palaistu to, izmantojot tā sauktās programma, kompilators, kas notiek ņemt to kā ievade un ražot produkciju. Un vismaz pagaidām, jo šis Linux vidē, bet tas nav priekšnoteikums, tas ir tieši tur, kur mēs sāksim, jūs parasti mijiedarbojas ar datorsistēmas, piemēram, tas ar tā saucamo komandrindas. Tātad ar mirgojošu ātru un klaviatūras, un ne tik daudz jūsu pele, un nav tik daudz logi un ikonas un izvēlnes, drīzāk viss ir teksta. Un, pat ja tas jūtas, sākumā skatiens, varbūt, kā solis atpakaļ, tas ir tiešām daudz vairāk Spēcīgs un izteiksmīgs veids kontrolēt datoru jo īpaši jums, sevi, kļūt ērti no mazāk. Tas notiek, lai jūs varētu darīt daudz vairāk lietām nekā tikai to, ko Microsoft vai Apple ļauj darīt ar to grafisko operētājsistēma. Tātad, kad es hit Enter, tagad, nekas nenotiek šoreiz jo acīmredzot Programma sveiki ir atjaunināta. Un kāda bija komanda Es skrēja pēc tam? Dot slash hello, un Hello World. Tagad pieņemsim veikt soli atpakaļ tikai brīdi. Izrādās, ka padarītu sveiki ir tikai vienkāršots veids, programmas sastādīšanas. Pieņemsim tikai iepazīstināt viens gabals žargonu, bet tad attālināties no tā, jo tas nav visu, kas interesants šodienas vajadzībām. Kompilators mēs ejam, lai sāktu izmantot sauc šķindēt, par C valodā. Un tas ir programma, kas ir palaist tikai tāpat kā mēs to darījām pie komandrindas tur. Un tāpēc, ja es gribu sastādīt programmu, kas man ir rakstīts failu sauc sveiki dot c, es burtiski vienkārši ierakstiet šķindēt sveiks C ienākt. Smieklīgi ir tas, vēsturisku iemeslu dēļ, ja man nav precizētu programmas nosaukums ka es gribu, lai produkciju, ja man nav norādiet faila nosaukumu šīm nullēm un tiem, ļoti dīvaini pirms Konvencija tika pieņemta gadi ja tā uzskata, sava veida laba atbilde tajā laikā, labi pieņemsim tikai patvaļīgi zvanīt Pirmā programma mēs apkopotu dot out. Nāk pirmais alfabēts. Out, tas ir izejas. Tātad mēs saucam par programmu pēc noklusējuma dot out. Un tas ir labi, jo, ja es gribu palaist programmu šajā tekstā, pamatojoties vide, es vienkārši ierakstiet dot slash ir dot out ienākt. Un tas būtu darboties tieši tā, kā agrāk. Tātad, pieņemsim redzēt, ka reālā ātri. Tātad, ja es iet atpakaļ uz manu pirmkodu CS50 IDE, un es tā vietā darīt, šķindēt sveiki gultiņa c ievadīt, paziņojums nekas, šķiet, notiek, bet gandrīz vienmēr šis Linux vidē, ja nekas slikts, šķiet, notiek, ka ir kaut kas labs patiesībā noticis. Ja jūs neredzat kļūdu ziņa, viss ir iespējams, labi. Un tiešām, ja man tagad darīt dot slash ir punkts out ieiet, es esmu palaist manu pašu programmu. Man joprojām ir Hello programmu no agrāk, jo patiešām, tas ir būs tik daudz jaukāk vienkārši tips padarīt vietā atcerēties šie buramvārdi par komandas, bet pieņemsim redzēt, kā mēs varētu uzlaboties pēc tam, tomēr. Tātad, tas ir komandu sastādīt kodu. Šī ir komanda, lai palaistu tam apkopoti kodu. Kā es varu norādīt faila nosaukumu? Nu pieņemsim tikai iepazīstināt vēl viens gabals žargonu. Kad tu esi tas teksta pamatā vide, jūs gatavojas vēlaties norādīt lietas, ko sauc komandrindas argumentus. Kura ir tikai iedomātā veids, kā pateikt, Citiem vārdiem pie ātru, ka kniebiens uzvedību neatkarīgi Programma jūs darbojas. Tātad īpaši programma es esmu darbojas, ierakstot vārdu šķindēt, ir programma, ko sauc šķindēt. Tātad šis ir vai old school ekvivalents dubultklikšķi Microsoft Word vai dažas programmas ikona. Es esmu nevis vienkārši ierakstot savu vārdu, bet šajā versijā komandu, Man tad ir domuzīme o telpas sveiki telpa sveiki dot c. Tātad, pat ja jūs nekad neesmu spēlēja šajā pasaulē, pirms, lietojiet tikai minējums, ko tas domuzīme o sveiki darīt? Vai ko tas pateiks šķindēt darīt? Jā. Mērķauditorija: [dzirdams] DAVID J. Malan: Jā. Tas tikai nosaka faila izejas būt sveiki, nevis no sillier dot out. Un, protams, pieņemsim mēģināt šo. Tātad, ja es tagad daru, vispirms Darīsim to, r m sveiki. Tas ir noņemt. Un tas notiek teikt Noņemt regulārs fails hello, kas ir nevajadzīgi Arcane, bet tas tikai līdzekļus jūs vēlaties izdzēst failu, un es rakstīt Y Jā. Un paziņojums, ja Jums bija glancing augšā pa kreisi, tā pazūd no tur. Ļaujiet man tagad darīt šķindēt domuzīme o, un Es esmu gatavojas iet uz priekšu un darīt sveiki, visās cepures, hello dot c. Tagad, ja man dot slīpsvītru sveiki, ko jūs sagaida? Varbūt tā ir reģistrjutīga. Varbūt tas nav. Paskatīsimies. Nav tāda faila vai direktorijas. Un mēs varam veida apkrāptu ar tikai apskatot augšējā kreisajā stūrī. Ko darīju es, protams, saglabājiet programmu kā? Visi cepures sveiki. Tik tiešām, kas notiek, lai kaut ko mainīt. Tāpēc tagad sveiki pasaule ir atpakaļ. Tagad tas viss ir labi un labs, un visi ir ļoti prātā-numbing, to veida saņemt bogged noteikti tie detaļas, bet tās izpratni ir labi. Rakstīt šos arvien garās buramvārdi nav būs īpaši jautri, tāpēc cilvēku pasaulē izgudroja citu programmu, Pirms dažiem gadiem, ko sauc padarīt, ka gluži vienkārši ļauj jums rakstīt marku, nosaukums programmas Jūs vēlaties, lai, un padarīt ir gudrs, jo tas izskatīsies pašreizējā mape, aka direktorijā, un, ja jums ir fails sauc sveiki dot c, tas ir fails būs apkopot Jums par programmu, ko sauc sveiki. Tātad, tas ir daudz vienkāršāks veids darot vairāk mistisks komandas ka mēs darījām agrāk. Un mēs esam iepriekš konfigurēta CS50 IDE zināt ka tas būtu jādara domuzīme o un vairākas citi karogi, vai komandrindas argumentus, ka mēs redzēsim pirms ilgi. Bet pieņemsim tagad faktiski darīt kaut ko interesantu. Just rakstīt out Hello pasaule visu laiks nav tik pārliecinoši. Tāpēc ļaujiet man iet uz priekšu un pārmaiņas šī programma un teikt, sveiki David. Tagad es esmu gatavojas iet uz leju šeit. Es esmu gatavojas iet uz priekšu un darīt padarīt Sveiki. Un atkal tagad jūs redzēt padarīt rāda jums ilgāk secība komandas, kas tas ir dara, jo mēs esam iepriekš konfigurēta tas, ka veids, bet mēs nav jāuztraucas tagad ko tas dara cits, nekā tas ir apkopojot dot slash Hello, Hello World. Kas noticis? Jā. Mērķauditorija: [dzirdams] DAVID J. Malan: Jā. Tātad, noobie kļūda. Es ievēroju, tas ir super smalks, bet zvaigznīte šeit, tab, tikai nozīmē, ka jūs neesat saglabājis to, un pārlūkprogrammām un citas programmas izdarītu reizēm. Tātad kontrole s vai komandu s vajadzētu saglabāt. Tagad ļaujiet man iet uz priekšu un atkārtoti palaist programmu. Recompiled. Tiesības, tāpēc tas ir daudzpakāpju process. Neviens no tiem ir īpaši sarežģīts, bet jebkurā laikā mēs mainīt failu, mums ir nepieciešams, lai mainītu Iegūtais nullēm un tiem, un dot slash sveiki. Vau. Tātad šī ir ļoti underwhelming ka mēs vienkārši izdrukāt to. Veidosim lietas nedaudz dinamiskāks, tagad. Nu izrādās, ka, piemēram, Scratch, C atbalsta mainīgajiem. Un izrādās, ja jūs vēlaties ir mainīgs lielums, veikali, nav numurs, piemēram, mēs parasti darīja ar nulles, bet, piemēram, vārda, vai frāze vai vārds, jūs var norādīt mainīgo būt tipa virkni. Tātad mēs redzēsim vairāk tie tikai brīdi, bet izrādās, ka C, un daudz valodas, piemēram, to, ir ļoti īpaša veida mainīgo. Tas nav tāpat kā algebra, kur jūs saņemsiet X, Y un Z un tie ir tikai vienmēr numurus, jo programmēšanas valodu jūs varat saglabāt numurus, jūs varat uzglabāt atsevišķas rakstzīmes, jūs varētu saglabāt veselus vārdus, jūs varētu saglabāt veselus attēlus, veseli skaņas failus, un tamlīdzīgi. Tāpēc mums ir nepieciešams noteikt, kāda Mūsu mainīgo tips ir. Un pēc vienošanās es esmu dodas uz zvanu manu mainīgās s tikai tāpēc, ka tas īss, un s apzīmē virkni. Un tad es esmu gatavojas glabāt iekšpusē šo mainīgo, tāpat kā ar Scratch kad es izmantot iestatīto bloku, Es esmu gatavojas izmantot Piešķiršanas operators C, kas labi pietiekami ir vienāds parakstīt, bet vienādības zīme dara. Tas kustas kaut ko no labi kreisajā pusē izteiksmes. Tātad, ko es esmu darījis, lai būtu skaidrs, line pieci, ir es esmu deklarēta mainīga. Es esmu teicis datoru, dod man atmiņas par mainīgo, sauc to s, un jau iepriekš zināt, ka es esmu gatavojas būt liekot virkni tajā. Un string ir tikai rakstzīmju secība. Tas ir vārds, vai frāzi, vai punkts, bet tas ir rakstzīmju sekvence. Tas nav numuri. Ko string man būs laist šo mainīgo? Nu, acīmredzot citējot likt pēdiņas beigās, "Hannah". Tagad paziņojums modelis, kas ir jaunās. Tur ir kreisā roka izteiksme. Tur ir labās rokas izteiksme, atdalīti ar vienādības zīmi. Un tikai veikt minējums, ja svešs tomēr, ar ko Semikolu dara. Kas tas iespējams, dara mums? Yeah? Mērķauditorija: [dzirdams] DAVID J. Malan: Jā. Tas ir vienkārši izbeidz līniju. Tiesības? Datori vēlas būt skarbi pastāstīja, burtiski, ko darīt. Tāpat kā zemesriekstu sviestu un želejas sendvičs piemērs, ja jums nav jānorāda tieši to, ko jūs plānojat, tas varētu atstāt uz spriedumu vai kļūdu. Semikols nozīmē, tas arī viss par šo komandu. Tas ir super precīzs, un tas ir ļoti viegli lieta mitēties. Tāpēc tagad šī programma, šķiet, nav tikt uzvedas savādāk līdz I padarītu to dinamiskāku. Tātad, nevis grūti varētu mana nosaukt, ļaujiet man nodot viettura vērtību. Un izrādās, ka, un es zinu, tas no izlasot dokumentāciju, un izmantoja funkciju gadiem, kas printf tika izstrādāta, lai būtu dinamisks. Jums nav iepriekš zināt kādi vārdi jūs vēlaties, lai to. Jūs varat vietā have a vietturis, piemēram, procentiem s, kas gatavojas pateikt dators, ielieciet virkni šeit. Kura string mēs vēlamies likt tur? Will Izrādās, ka starp šiem iekavas, kas jāatceras, norobežot ievades līdz funkcijai, ja Jums ir komatu atdalīti sarakstu ar lietām šeit, mēs faktiski iet sastāvus ieejas uz funkciju. Tik vienkārši patīk dažas Scratch bloki, jūs nevarēsiet ir bijusi ar viņiem jūsu projekti vēl vai vispār, daži Scratch blokiem ir divas ieejas. Divas baltas kastes, jūs varat numurus vai vārdus ievadīts. Tāpēc, lai tas C ir funkcijas, piemēram, printf, kas var veikt divas ieejas. Un atkal, tas komats tiek atdalot tos. Tātad angļu valodā, atkal pat ja jūs nekad neesmu programmēt agrāk, ar to, ka loģika printf ir funkcija, aizņem divas ieejas, no kuriem viens ir vietturis, ko jūs cerību printf gatavojas darīt ar šo ieguldījumu? Tas būs teikt sveiki Hannah, cerams. Tātad, lai to izdarītu, mums ir nepieciešams, lai to saglabātu. Es esmu gatavojas, lai tālinātu. Es iešu atpakaļ uz leju šeit un teikt, padarīt sveiki ievadīt. Oh. Kaut kas ir nepareizi, un faktiski tas ir diezgan milzīgs. Man ir sešas rindiņas kodu un tāpat kā 12 līnijas kļūdas. Tātad, ceram uz to. Tātad, kas notiek šeit? Tāpēc labākais īkšķis šeit, jo īpaši, ja jūs, sākot out, nesaņem apjucis ar sīkumi apakšā. Patiesībā, es ļoti apzināti tikai apskatus up jo ļoti bieži, dators ir ne viss, kas spilgti no ierīces. Tas notiek, lai saņemtu sajaukt. Ja tā uzskata, viena lieta, ka tā nesaprot, tas varētu noturēt cits rindiņas kodu, kā nepareizi, pat ja viņi ir perfekti labi. Tātad, jūs vienmēr vēlaties strādāt augšas uz leju caur kļūdām. Un, protams, tas ir super arcane brīdī. Kļūda, izmantošana nedeklarētu identifikators string. Vai es domāju standarts? Nē, es nozīmēja virkni. Un tas ir norādot, varbūt tas ir typo. Kārtot līdzīgu, pareizrakstības pārbaudes in ļoti geeky veidā, bet iemesls šeit, un jūs zināt, tas tikai ar praksi, ir ka izrādās, ka virkne neeksistē C. Faktiski, C ir īpaši vecs valoda, un tas ir ļoti zems līmenis, un tas nav daudz funkcijas kas jums varētu būt auguši ar, ja jums ir, faktiski, programmēt Java, kā daži no jums ir, bet jūs varat mācīt jaunas lietas. Un tiešām, mēs esam darījuši šo CS50, lai gan ar semestra noslēgumā, visi šie mācību riteņiem tiks veikti off, ko mēs darām šajās Pirmais pāris nedēļām Sākotnēji ir mums ir arī jūs iekļaut CS50 dot st. Kura ir header fails. Vairāk par to, ka nākotnē. Tas ir fails, kas satur funkcijas ka mēs esam rakstīts par jums. Un starp šīm funkcijām ir funkcijas, lai iegūtu ieejas no lietotāja, piemēram, stīgām, un numurus, un reāliem skaitļiem, un vairāk. Bet tas arī ir dažas īsceļus. Tā definē Būla kā datu tipu. C nav patiess vai nepatiess. Bet mēs varam to jēdzienu patiess vai nepatiess veidā šīs bibliotēkas. Un tā arī nav virknes uzcelta kamēr mēs iekļaut šo līniju. Tātad šī līnija koda stāsta kompilators, hey, šķindēt, meklēt Šajā failā kopumā ķekars kodu, kas CS50 ir rakstīts tā, ka ikviens, kas izmanto šo failu var veikt par piešķirts funkcijas viņi piebilda. Tāpēc tagad ļaujiet man iet uz priekšu un notīrītu ekrānu, un ja ziņkārīgs Es tikai saku, kontroli l katru reizi, lai notīrītu ekrānu, vai jūs varat ierakstīt skaidrs. Es esmu tikai gatavojas iet uz priekšu un tagad tips padarīt hello, un viss ir labi. Joprojām ir arcane izejas, bet tas nav kļūdains ziņojums. Tagad, ja man dot slīpsvītra hello, un kā malā, dot slīpsvītra ir svešs visvairāk. Tas tikai nozīmē, DOT līdzekļi pašreizējā direktorijā. Tātad, ja jūs esat kādreiz izmanto DOS vai Linux vai Unix Jums varētu būt darījuši kaut ko piemēram, cd dot dot, kur dot dot nozīmē iet atpakaļ in laiks, vai iet atpakaļ, vai augstāk savā direktorijā. Dot nozīmē tikai ieskatīties pašreizējā direktorijā. Es gribu hello, kas ir tepat. Un tiešām, tagad tā saka sveiki Hannah. Un, ja es mainīt to vēlreiz Maria, recompile tas būtu Sveiki, dot slīpsvītru sveiki, programma vienmēr mainās. Bet tas joprojām ir diezgan stulba programma. Ja es gribu nosūtīt šo programmu, vai dot to draugam, vai arī tā, lai Maria vai Hannah par šo jautājumu, tas ir jauki. Es varu pielāgot to gan no tiem, bet tas nekad nebūs dinamisks. Viņi nevar mainīt to, kad tas ir apkopoti lejup šajās nullēm un uzņēmumiem. Tātad, ko mēs kaut ko gudrāku? Ko darīt, ja, nevis cieto kodēšanas programmā šīs personas vārdu, Ko darīt, ja mēs tikai iegūt stīgu pēc pieprasījuma? Tātad citiem vārdiem sakot, ļaujiet man darīt. Es esmu gatavojas recompile šo programmu. Un ļaujiet man tuvinātu apakšā tagad. Padarīt sveiki dot slash sveiki. Tagad nekas nenotiek. Vai mēs varam iegūt ātri brīvprātīgo lai kaut kas notiktu? Nāciet uz augšu. Kā tevi sauc? PANCHO: Pancho. DAVID J. Malan: Pacho? Nāciet uz augšu. Kad jums šeit, tas ir būs ļoti underwhelming, bet tas ir vairāk interesanti nekā man rakstīt to. Ja jūs vēlaties, lai iet uz priekšu un ierakstiet vārds, es šo programmu tieši Jums. Vienkārši ierakstiet savu vārdu. Enter. Wonderful. Labi, liels paldies. PANCHO: Liels paldies. DAVID J. Malan: OK. [Aplausi] Tas bija ļoti laipns. Šeit jums iet. Ko mēs darām? Tātad, mēs beidzot, vismaz, padarīja šo programmu dinamisks. Tagad tas ir vēl noteikti pēc uzbūves underwhelming, bet mums beidzot ir iespēja tagad rakstīt kodu iepriekš, daudz tāpat autori printf, un pēc tam dinamiski ADAPT pamatojoties uz ieguldījumu mēs esam pasniedza vai nu programmētājs, vai ar cilvēku, kurš ir faktiski mijiedarbojas ar programmu. Tātad pieņemsim faktiski tagad mēģināt darīt dažas citas konstrukcijas un redzēt, ja mēs nevaram padarīt programmas paši sarežģītākas. So iesim uz priekšu un nevis Rakstot šo vienu no nulles, Es iešu uz šodienas pirmkodu, un tas viss ir pieejams kurss ir mājas lapā, un jūs varat vilkt un nomest to savā dzimtajā vidē nāk piektdiena, kad problēmas komplekts 1 sniedz jums instrukciju, vai jūs varētu darīt to pie komandrindas, kā labi, bet vēl ir priekšā p noteikts 1. Let 's redzēt, kas ir šajā programmā šeit sauc, papildinātājs dot c. Tagad es esmu jau komentēja tas, bet to, kas jauns? No pirmā acu uzmetiena, ko līnija kods ir pilnīgi jauns? Droši vien nav būtiski svešs tagad. Mērķauditorija: [dzirdams] DAVID J. Malan: Jā, tāpēc int x vienāds nokļūt n. Mēs nekad neesmu redzējis kādu no šo pirms, bet int ir iespējams simbols kāda veida mainīgs, [? no?] veselam skaitlim. Tātad int par skaitlim. Tas vienkārši ir vairāk kodolīgs. x ir tikai patvaļīgi. x un y un z ir joprojām diezgan saprātīgi numuriem, bet parasti mēs izmantot vārdus reiz Mūsu programmas iegūt sarežģītāka. Iegūt int, protams, līdzīgi get virkni, ir iespējams, gatavojas saņemt int no lietotāja, un tad mēs ejam uz darīt to pašu ar y. Un acīmredzot, kaut arī šis pēdējā rindā, 24, izskatās sarežģītāka, tas notiek, proti, no šīs summas un ka tas ir cita lieta. Un paziņojums procenti i droši vien nozīmē, ko? Kāda loma procentiem i acīmredzot kalpo? Tas ir tikai vietturi. Tiesības? Percent s bija stīgu, procenti i ir vesels skaitlis. Tur būs procenti f peldošo punktu vērtību, kas ir tikai skaitlis ar komata. Citiem vārdiem sakot, īsta numurs. Tātad pieņemsim faktiski apkopo šo programmas Real ātri un darīsim papildinātājs. Whoops. Laba iespēja. Tātad paziņojums šeit, visu šo laiku manu lietotāju konta nosaukumu ir jharvard. Es esmu CS50 IDE, aka IDE50. Un tagad zilā šeit, ir pieminēta, bet no vides, kur es esmu. Un patiesībā, ja es zoom uz augšu uz augšu šeit, ievērosiet, ka man ir IDE50 un es redzu šo vārdu, ja jūs veida pagrieziet galvu uz sāniem, darbvietas. In Īsumā, tas, ka Es esmu redzēt tildes slash darbvietas nozīmē, ka šajā tekstā balstīta komanda vide, Es esmu teksta ekvivalentu Tas Grafiskie mapi šeit. Tātad, kad man dot slīpsvītru papildinātājs, tas ir saprotams, nekādas normas padarīt mērķa papildinātāja pietura. Es nezinu, ko tas nozīmē, bet tas ir slikti, kāda iemesla dēļ. Nav tāda faila vai direktorijas ir vēl vairāk skaidrs. Kur tad tas? Pamatojoties uz to, kur es noklikšķinājuši lai atvērtu failu agrāk. Kur tas varētu būt? Tas ir iespējams, jo avota viens w, trešdien, un es redzu to, protams, ja es atveru, ka līdz. Ir papildinātājs dot c, bet Šis teksts balstīta vide, atkal, man ir jābūt super skaidri. Ja es gribu mainīt direktoriju uz avots viens Trešdiena, man ir nepieciešams rakstīt, cd telpa avots viens Trešdiena ieiet un tagad Mani ātru izmaiņas man vizuāls norādījums, ka Es esmu, protams, citur manā vidē, bet tagad es varu darīt darīt papildinātājs, tas, šķiet, darbojas, dot slash papildinātājs, dod man veselu skaitli. One. Divi. Par vienu un divām summa ir trīs. Bet, ja man nav sadarboties, pieņemsim redzēt, kas get int dara. Dodiet man vesels skaitlis. Nē. Atkārtot. LABI. Fine. 50. 50. Viss kārtībā. Tātad tas beidzot sadarbojas. Un tas ir daži no funkcionalitāte, kas šīs funkcijas var būt celta jums. Tātad iekšpusē īstenošanai no get INT, kāda programmēšana būvēt no pagājušajā nedēļā ir iespējams, tur, lai piespiestu šo uzvedību mēģinājuma, retry, retry? Jā, tur ir iespējams sava veida cilpas. Tas skatīsies sintaktiski atšķiras no nulles s blokiem, bet tas ir patiešām kas ir iekšpusē failu. Un pāris nedēļu laikā mēs faktiski apskatīt CS50 bibliotēkā par to, kas ir iekšā, bet tur ir cilpa uzlikt tieši tā. Spēlēsim dumjš Little Spēle šeit ar šo failu. Stāvoklis nulle dot c. Mēs esam tikai gatavojas parasti sākas skaitīšana nulles līmenī. Un es glabāt ritināšanu pagātni daži sīkumi augšā. Zilā šeit, norobežota ar visiem no šīm zvaigznēm un simbolos, tiem no jums, kas programmēt pirms, kas tas ir? Kāpēc mēs turpinām izlaižot pār to? Ko? Mērķauditorija: Tas ir komentārs. DAVID J. Malan: Jā. Tas ir tikai komentārs. Tas ir piezīme cilvēkiem lasīt, ka mūsu gadījumā, stāsta mums, ko faila nosaukumu ir, kas rakstīja to, un to, ko tā dara, tā, ka jums nav izlasīt kodu zināt, ko šis fails ir visu par. Tas ir tikai apraksts, bet funkcionāli tas ir neefektīvs. Un es pat varētu izdzēst to no mans failu un tā neietekmē. Sulīgs līnijas ir šie Pirmie divi šeit, tagad. int galvenais neesošu ir ekvivalents no mūsu zaļus karogs uzklikšķināt, tāpēc mēs esam gatavojas atstāt, ka būtu šodien, un mēs atgriezties, Galu galā, par to, ko int neesošs ir, bet tagad, paziņojums, ko es esmu darījusi arī šeit, varat arī, ja jums ir rindā komentēt, ja jums ir doma vēlaties koplietot par konkrētu koda rindu, konvencija C ir darīt slīpsvītru slīpsvītra, un tad dažas kodolīgu vārdi, nav pilna teikums, parasti nav punktu, ka tikai skaidro ar jums, vai jūsu TF, vai citi lasītāji vai kolēģiem, kādas ir jūsu kods dara. Tātad, nevis jāskatās šajā un izsecināt no līnijas deviņi un 10, kas ir Tas dara saskaņā astoņās Es tikai dot komentāru pieprasīt no lietotāja par skaitlim, tad man nav jādomā pārāk grūti par to, ko līnijas deviņi un 10 ir. Es tikai zinu, ka tas ir kas kopā viņi dara. Kā? Nu, šeit ir ātri. Lūk, kļūst par int. Un, pamatojoties uz iepriekšējā uzvedība, šķiet, piemēram, get int ir pietiekami gudrs, lai pārliecinātos, ka cilvēka sadarbojas un sniedz to vesels skaitlis. Bet tagad mēs redzam. Un tas atgādina nulles. Es esmu apgalvojot, ka es esmu analizējot lietotāja ievadi, bet nedaudz neprecīzi. Un tas acīmredzot C ir, kā Mēs šo, ja cits, filiāle, dakša uz ceļa, bet es saka nedaudz neprecīzi. Kas ir bug šajā programmā? Par tālāk atpakaļ? Jā. Mērķauditorija: [dzirdams] nulle. DAVID J. Malan: Jā. Tātad, ja es rakstīt nulles, pieņemsim apsvērt tieši tā lieta, vai stūra gadījums, ja Jums gribas. Tātad, ja es rakstīt nulles, kurā no bloki gatavojas acīmredzot paķert to? IF vai kas cits? Cits, un tas notiek, proti, jūs noplūktiem negatīvu skaitli. Un tiešām, nulle nav paredzēts būt pozitīva vai negatīva, un lai būtu kļūdaini. Tas būtu kļūda. Tātad, kā mēs varam noteikt šo? Kāds, kurš nekad nav ieprogrammēts agrāk? Vai tu gribi-- Mērķauditorija: [dzirdams] DAVID J. Malan: Savilkšanās? Mērķauditorija: [dzirdams] DAVID J. Malan: Ak, jums ir? Kāds, kurš nekad nav ieprogrammēts agrāk. Vēlaties izmēģināt savu roku Tas, sarkanajā kreklā? Nāciet uz augšu. Ak jā, nākt uz augšu, ja jums nav prātā. Tāpēc nekad nav ieprogrammēta Pirms, kāda ir jūsu vārds? LAUREN: Lauren. DAVID J. Malan: Lauren, viss labi. Tātad noteikt šo kļūdu mums. Jūs esat ne redzējis C, domājams, un, iespējams, neviens cits valoda. Tātad noteikt šo programmu mums. Prieks iepazīties ya. Nav spiediena. LAUREN: Jā. DAVID J. Malan: Bet atkal, ja tas spekulēt noritēs pēc plāna, takeaway šeit būs būt, tikai atkal, lai sāktu lai paziņojuma modeļus un secināt no esošā sintakse Kā gan citādi jūs varētu izteikt sevi, no pun paredzēti, lai lai attēlotu dažus papildu scenāriju. Tātad mēs esam sakot cits, ja. printf, labs. Un paziņojums ar CS50 IDE, un frankly-- IDE apzīmē integrētu Izstrādes vide. Tas ir tikai iedomātā veids, kā pateikt programma, kas palīdz jums programmu. Tas lietotājam draudzīgas lietas, piemēram, ja jūs tipa vienu iekavās tas automātiski dod jums otru. Pieņēmums ir tas, ka tu esi beidzot gatavojas vēlaties rakstīt, ka, un tas arī tiek darīts ar pēdiņām. Tāpēc man patīk līniju 23. 99% no tā, kā tur. Kāds vēlas piebalsot ar galu? Es dzirdēju semikolu no auditorijas. Labs. Tā, ka pabeidz to. Un tagad, man vienkārši ir nedaudz samulsums ar līniju 21. Kā mēs gribam izteikt šo? Ko jautājums mēs gribam jautāt, vai jūs domājat? Tātad iepriekš mēs uzdeva jautājumu, ja n ir lielāks par nulli, to izdarītu. Else, darīt. Tāpēc mums ir nepieciešams izvēlēties jautājums uzdot šeit. Mērķauditorija: [dzirdams] DAVID J. Malan: Labi. Tātad, ja n ir vienāds ar nulli. Excellent. Tātad pieņemsim pauze šeit. Thank you so much braving šis. Ļaujiet man sniegt jums mazliet labi pelnījis stress bumbu, varbūt tur. Tātad mēs esam gandrīz tur. Patiesībā, Lauren, ja jums nav prāts, ļaujiet man viens kniebiens šeit, tikai, lai atbilstu pat ar tas, ko mēs redzējām nulles, ko vēlos darīt ar līnijām 21 un 24, tikai atkal balstās par to, kā mēs to darījām ar nulles, varbūt? Mērķauditorija: Pārvietojiet to uz augšu. DAVID J. Malan: Jā, pārvietot to uz augšu. Tātad cits nosacījums, trešais vai ceturtā, vai piektā, vai galīgā filiāle, būtu patiešām nāk pēc tam, un tas ir tikai pēc vienošanās, tikai tāpēc, ka, ja Jums gribas. Tāpēc man ir nepieciešams, lai padarītu šo iekniebt. Un man vajag manu cirtaini lencēm atpakaļ šeit. Un tagad, šī programma apkopo. Mēs esam tik tuvu, bet tur ir ļoti, ļoti smalks bug. Let 's redzēt, kas notiek. Pirmkārt, ļaujiet man iet uz priekšu un attālinātu. Es iešu uz priekšu un tips padarīt stāvokli nulle. Ak, es meloja. Tagad kompilators ir faktiski diezgan gudrs. Un man nav īsti saprast tas ir kļūdas ziņojums. Izmantojot rezultātu cesiju kā nosacījumu bez iekavās, ir acīmredzami slikti. Bet ko tas nozīmē? Nu atkal, meklē modeļus ar kodu, ko mēs esam redzējuši iepriekš, kas ir 17 līnija patiesībā dara, pat ja Lauren nedaudz paredzēta citādi? Jā. Mērķauditorija: [dzirdams] DAVID J. Malan: Jā. Tik atceros vienādības zīmi, acīmredzot jo mēs esam izmanto to pirms, nav vienāds. Tās uzdevums, no labās uz kreiso pusi. Tātad pozīcijas 17 brīdī ir stāvoklis, un tas ir izpildes kodu iekšpusē iekavās, bet, kad tas kods izpilda, kas notiek ar vērtību nulle? Kas notiek ar vērtību n? Kļūstot nulli. Tātad, ja n kļūst nulle, un atkal, kā par pagājušajā nedēļā, mēs parasti sakām, ka nulles ir nepatiesa, un viens ir taisnība, vai jā ir viens, un neviens ir nulle. Tik patiess un nepatiess, viens un 0. Ja n no līnijas 17 ir ņemot vērā vērtību 0, ir nulle taisnība? Nē. Pēc definīcijas, nulle ir nepatiesa. Tas ir konvencija mēs esam gatavojas piekļauties virzās uz priekšu. Tā būs līnijas 18, 19, un 20 kādreiz pieteikties tagad, loģiski? Viņi nevar. Tāpēc mēs lūdzām jautājumu bet ne gluži precīzi, un jūs nezināt, ja vien tas jūs esat redzējuši, šķīdumu C ir, ja jūs vēlaties, lai paustu vienlīdzība, jūs sakāt vienlīdzīgi vienāds. Tātad vienādības zīme jau bija iztērēta cesijas, no labās uz kreiso pusi. Vienāds vienāds līdzeklis vienāds. Un, ja jūs patiešām vēlaties, lai jūsu prātu būt saliekti, JavaScript un PHP, tur ir vienāds vienāds vienāds, kas nozīmē kaut ko citu vispār, bet mēs nokļūt, ka pirms ilgi. Tātad tas ir vienkārši noteikt, bet saprast, super viegli izdarīt šo kļūdu, un pēc tam brīnīties, un cīņa par minūtēm, ja ne stundu, kāpēc ir mans kods nav izpildītāja kā es plānoju? Tas ir tāpēc, ka jums nav pateikt tas tieši to, ko jums nozīmē. Tā, ka bija gandrīz ideāls, un tas bija lieliski ka mēs stumbled pāri šīm divi maz lietas, jo tagad, ja mēs noteiktu tos, un man darīt nosacījums nulli dot slash stāvoklis nulle, Es gribētu vesels skaitlis lūdzu. Paskatīsimies. Nē. Tas notiek, lai piespiestu mani, lai to izdarītu. Tātad 42. Es paņēmu pozitīvu skaitli. Tāpēc tagad, kā es varu pierādīt, Šī programma ir pareizi? Ja jūs esat matemātiķis, jūs nevarat tiešām pierādīt ar izmēģinājumu un kļūdu, labi? Jūs varat ne tikai pierādījums, ko piemērs, bet vismaz kā programmētājs mēs neesam mēģināšu pierādīt tagad ka tas ir faktiski pareizi, bet es droši vien pārbaudīt dažus reprezentatīvus gadījumus. Esmu testē 42. Es varētu pārbaudīt 43. Es varētu pārbaudīt 44. Test 45. Tiesības? Bet es varētu darīt ļoti ilgu laiku. Kādi varētu būt daži vairāk interesantas lietas, lai mēģinātu? Mērķauditorija: [dzirdams] nulle. DAVID J. Malan: Tātad nulle. Protams. Un labi, mēs esam ieguvuši to šoreiz, Pateicoties Lauren jauno kodu. Kas ir vēl viens labs gadījums izmēģināt? Mērķauditorija: Negatīvs viens. DAVID J. Malan: negatīva, un varbūt kaut nedaudz lielāks, tāpēc varbūt negatīvs 42, bet vispār, kad pārbaudīt savas programmas virzās uz priekšu, jūs esat gatavojas vēlaties, lai padomātu uz sevi, patīk tas, ko ir fundamentāli atšķirīgas lietas. Un es uzdrošinos teikt negatīvu lietu, pozitīva lieta, un nulles lieta diezgan daudz kārtās tiem ārā. Apskatīsim variantu šīs though. Nosacījumi viens. Tas ir pareizs risinājums šeit, tā, ka jūs redzēsiet divas un online, ja jūs staigāt pa walkthroughs, parasti pieauguma šos pakāpeniski, kamēr mēs saņemt tieši pareizo pieeju. Ko darīt, ja mēs vēlējāmies jautāt divi jautājumi uzreiz? Ļaujiet man atvērt šo vietā. Non-slēdzis, tādu iemeslu dēļ, mēs redzēsim vēl vienu reizi. Kas jauns sintaktiski šeit? Es esmu šobrīd spēlējot spēli ja dators ir spēcīgi man, dod man vesels skaitlis starp vienu un 10, un tad es esmu spriežot lietotāja ievadi. Angļu valodā, pamatojoties uz kodu jūs redzēt šeit zilā krāsā, kāda ir šī programma dara? Mērķauditorija: [dzirdams] paņēma liels vai mazs skaitlis. DAVID J. Malan: Jā. Tas ir tikai spriest, vai Es paņēmu liels, vai vidēja, vai mazs skaits, pamatojoties uz ļoti patvaļīga definīciju mazās, vidējās, un liela šeit, bet paziņojums sintakse kas jauns ir tas. Tur ir ne mazāk kā int vai vienāds ar parakstīt, vai lielāks vai vienāds parakstīt, kur viens ir pār otru, ka jums var izteikt, piemēram, Microsoft Word. Tātad programmēšanas valodu jūs parasti vienkārši darīt divas rakstzīmes, viens pēc otra. Un ko tas, iespējams, pārstāvēt, aizvieto & zīmes aizvieto & zīmes. Mērķauditorija: [dzirdams] DAVID J. Malan: Jā. Tas tikai nozīmē, un tāpēc, ka tā Izrādās, ka autoru C izmanto vienotu aizvieto & zīmes, ko jūs varētu domāt būtu ideāls jēdzienu un, jau izlietota, tāpēc Ampersand Ampersand faktiski uztver šo lietu mēs patiesībā gribam. Tātad pieņemsim tagad paklupt pāri divām lietām. Ļaujiet man iet uz priekšu un atvērt vienu. Kaut kas, kas ir nedaudz satraucoša. Neprecizitāte dot c. Ļaujiet man iepazīstināt divas lietas šeit. Viens, paziņojums, ka mēs varam darīt math, jo tāpat kā līdz šim, kad mēs darījām plus divi skaitļi, x un y. Kas ir šī programma acīmredzot dara? Man nav komentēja to vēl, un es esam ieviesuši procentiem f, bet es ātri teicu agrāk procenti f nozīmē peldošā komata vērtība, kas ir reāla numurs. Kaut ar komata punkts, kas nav vesels skaitlis. Ko jūs domājat, ka šī programma ir mēģina parādīt man uz ekrāna? Yeah? Mērķauditorija: Viena virs 10 rezultāts. DAVID J. Malan: Jā. Kāds ir rezultāts viens dalīts ar 10. Pareizi, jo visi no jums ir iespējams izauguši zinot, ka viens virs 10 ir tas, ko? Jā, tas ir tikai 1/10 jeb 0,1. Tiesības? Tātad, pieņemsim redzēt, kas tas patiesībā ir. Tāpēc ļaujiet man iet uz priekšu un saglabājiet to. Ļaujiet man iet uz leju šeit. Padarīt neprecizitāte dot slīpsvītru neprecizitātes, un paziņojums, pārāk, ar Linux vidē, jums nav ir tipa out neprecizitātes un veikt Visas dienas garumā. Tas parasti, ja jūs hit Tab, tas beigsies jūsu domas par jums, pamatojoties uz vārdi, kas ir pieejams pašreizējā direktorijā. LABI. Tātad jums bija taisnība. Viens dalīts ar 10, patiesībā, 0.1. Bet es esmu mazliet ziņkārīgs. Un izrādās, printf atbalsta dažas funkcijas ar kuru jūs varat norādīt vairāk nekā noklusējuma skaits aiz punktiem. Tātad, ja es gribu redzēt 10 decimālo Punkti es varu darīt procentiem, par viettura simbolu, dot 10 par, dodiet man 10 cipariem aiz komata, un tad vēl peldošā komata vērtību, un, kā malā, Kas tas ir slīpsvītra n acīmredzot mēs turpinām izmantot? Izrādās, ka tas ir simbols jaunu līniju. Tas ir ļoti skaidrs ceļš kā pateikt datoram, pārvietotu kursoru uz nākamo line pēc esat pabeidzis. Un mēs redzēsim, kas notiks ja mēs to nedarām. Ļaujiet man recompile padarīt neprecizitātes. Tagad dot slash neprecizitātes. LABI. Joprojām labi. Viens dalīts ar 10. Tagad es saņemu mazliet ziņkārīgs, though. Ko darīt, ja es paskatos 20 decimālo norāda, recompile, atkārto, un kā atstātas ātrumu, jūs varat arī izmantot Jūsu augšu un uz leju bultas, lai ritinātu savu vēsturi, tāpēc jums nav, lai saglabātu pārrakstīšana šīm komandām, ievadiet. Huh. Man nebija uzzinot, ka pakāpē skolā. Labi, tāpēc ļaujiet man skatīt, piemēram, 29 vietās out. Varbūt tā ir tikai sagadīšanās. Varbūt mans dators ir rīkojas dīvaini. Tas nav lieta, vai ne? Tas dara kaut deterministically. Tātad, lai neprecizitātes. Labi, ka ir messed up. Tātad, kas notiek? Tātad acīmredzot Jūsu Skolotājs ir meli jums visu šo laiku iemesli, ka mēs redzēsim pirms ilgi. Bet pieņemsim beidzas ar vienu citu programmu. Tas ir maz programmas kāds rakstīja pirms dažiem gadiem, un tas faktiski ir daļa no konkursā. Neviens patiesībā raksta kodu kā šis, un, ja jūs darāt, tas ir stilistiski problēma. Bet cilvēki to dara par bragging tiesības. Lai rakstītu visvairāk mulsinoši meklē programmu, kas tomēr dara kaut ko interesantu. Un piezīme es domāju, mēs gribētu atstāt uz Šodien, pirms Colton spēlē mūs šeit, ir palaist šo programmu, kas, pat tikai izmantojot C šajā teksta pamatā vide, dod mums šo. Nolāpīts. [Smiekli] Stāvēt. [Dzirdams] c domuzīme l m. Jūs esat dodas, lai redzētu burvju buršana, ka mēs redzēsim pirms ilgi. [Dzirdams] Viss labi. Un tagad jūs pat varat darīt lietas, piemēram, šis. Tieši tā. Par CS50 mēs, redzēs tevi piektdien. [Mūzikas atskaņošanai] [Aplausi]