[Muziciranja] DAVID Malan: U redu je to CS50 i to je kraj tjedna jednog. Dakle, ja bih vam predstaviti moj bivši advisee, Andel Duff, koji ne samo da čini iPhone 5 stoji, kao i ovaj govornica, on također čini automobile. ANSEL DUFF: Kako ide, svi? Ja samo želim reći nešto malo o Formule SAE, od kojih sam sam kapetan. To je MIT tim. Ja samo želim reći Dečki malo o tome i nadamo se generirati neki interes. Pa neka mi samo trčanje kroz Par stvari o našem timu. Tako smo u potpunosti Student vožnji, u kojoj su svi od članova dizajna, simuliraju, Test, i proizvođač podsustav iz automobila. Mi imamo svoje stroj shop te garaže, i N52-- ili mi, N51-- što je ista zgrada kao MIT Muzeja znanosti. I mi smo ljudi kako voziti auto. Postoji nacionalni natječaj na početku ljeta, a zatim tu su manji jedanaesteraca natjecanja tijekom cijele godine. I onda mi obuku vozača dana da se novi članovi upoznaju. Naši graditi dani su na Subotom 11:00-20:00. Ručak i večera se brine od od Bertucci-a i Beantown respektivno. Imamo tjedni sastanak i Seminar, koji je, naravno, za kredit. Što je novo od ovog semestra, a to će također biti za sljedeći semestar, tako da možete prijeći-reg za to. I onda imamo projektiranje, trgovinu, i CAD dana tijekom tjedna, dok su članovi će samostalno CAD dijelovi, kako bi dionica i tako dalje. Tako je za električni inženjering u ekipi mi imamo vučna, visoki napon sustava, koji prometuje na nominalni 300 volti, što uključuje motori, motorna kontroleri, i baterije. Onda imamo niske napon sustava, koji traje na 12 volti, što uključuje kontrole, MOŽE čvorovi, mozak okvir, a instrumentna ploča. Što se tiče CS ide, mi radimo imati održavanje web stranica da mi je potrebno učiniti za događaje, članstvo promjene, nove slike i PR materijala. I onda imamo kod koji kontrolira auto za naše kontrole trakcije, lansiranja kontrola, kontrola crtica, okretnog momenta, i regenerativno kočenje sustava, koji pokrenuti obično u MATLAB, Simulink, i LabVIEW. Reći ću vam malo o autu. Dakle, to je oko 500 kilograma. To je pravila ograničena na 85 kilovata. Ima 2 EMRAX 207 motore natrag, po jedan za svaku stražnji kotač. To je običaj-izgrađen baterije iz prizma-A123 torbicu stanica, u ukupnom iznosu od 300 volti i 5.6 kilovat sati. I to je izravna pogon s Odnos 2,64-1 vožnje. Ovdje su neke slike mi uzeo od njega na natjecanju. Evo natrag, nos konus, i ovdje su motori, one velike crne diskove ispod et mens Manuš. Evo tobogan da sam izvukao iz našeg natjecanja sheme. A to je samo uspoređujući naš automobil nekoliko komercijalno dostupnih automobila, kao KTM XBOW, Ariel Atom, a Caterha M 7-280. Ako ste upoznati s cijenom, snage povući težinu, dolara po konjskih snaga, dolara po okretnog momenta, a naš automobil Puše ih iz vode. Ako imate bilo kakvih pitanja, pribilježiti ovu adresu e-pošte. Pucaj nam email na fsae@mit.edu. Mi smo sretni da razgovaraju o što god želite. Harvardski studenti su ljubazni od manjine u timu. Ako imate bilo kakvih pitanja o da Vas molimo da puca nam e-mail, rado razgovarati, a ja ću da se vratimo na to Davidu. Hvala. Cijenim to, momci. [Pljesak] DAVID Malan: Ansel proveo ljeto raditi s nama ovdje na kampusu u CS50 ovo ljeto. A osim rada na Stvari poput binarnih žarulja, on je zapravo jako otvorena naša eyes-- i rudnik u particular-- na ono što je stvarno raskrižju Ne hardvera i softvera može biti. Zapravo puno stvari koje je on samo obišli ste kroz su u konačnici stvorio prvi u softveru, a onda u konačnici izmišljene u stvarnom svijetu u hardveru. Dakle, ako ste zainteresirani za upoznavanje tom raskrižju, možda potrajati tu skupinu. Sada je u međuvremenu, oni od vas koji su ljubitelji tehnologije, i Apple proizvodi u Konkretno znam da postoji bili su par Najave jučer. No, mislili smo da ćemo pokazati ti onaj koji je došao iz Nekoliko dana prije da možda niste vidjeli. Jorgen EGHAMMER: Znate, jednom u neko vrijeme nešto dolazi uz to mijenja način na koji živimo. Uređaj tako jednostavno i intuitivno koristeći ga osjeća gotovo upoznati. Predstavljamo 2015 IKEA katalog. Nije digitalnih knjiga ili e-knjiga, to je knjiga-knjiga. Prva stvar na umu je nema kabeli, ni kabel. 2015 IKEA katalog dolazi potpuno napunjena, a trajanje baterije je vječan. Sučelje je 7,5 po 8 inča, ali može se proširiti na 15 po 8 inča. Navigacijski se temelji na taktilni kontakt tehnologija koja se zapravo može osjetiti. Sadržaj dolazi unaprijed instaliran preko 328 high-definition stranicama nadahnuća za uređenje doma ideje. Za početak pregledavanja, jednostavno dodirnite i povucite. S desna na lijevo za kretanje prema naprijed, lijeva na desno za pomicanje unatrag. Obavijest nešto drugo? To je točno. Nema kašnjenja. Svaki kristalno jasno stranica opterećenja trenutačno, bez obzira na to koliko brzo pomicanje. Ako želite dobiti brzi pregled, Samo ga držite u dlanu, i koristeći samo palac, Brzina pregledavati sadržaj. Ako nađete nešto što želite spremiti za kasnije, jednostavno možete ga označiti. A čak i ako zatvorite program, možete lako ponovno pronaći oznaku. Nevjerojatno. [Smijeh] [Pljesak] Dakle, to nas dovodi do Kraj tjedna jednog. Nekoliko najave sada. Dakle, pod mikroskopom je sada u tijeku. Idi na tom URL-u ovdje je katkada između sada i petak u podne zapravo odrediti da li ste Među onima manje udobno, više ugodno, ili negdje između. To je jedan od onih koji obično stvari koje ste upravo vrsta znaju. A u stvari, one od vas koji su manje ugodno vjerojatno znate koliko, one od vas koji su više ugodno znam koliko, a opet, ako niste sasvim sigurni što od onih kante upadnete u ste Vjerojatno negdje između. Ali budite uvjereni možete mijenjati nakon par tjedana, ako bude potrebno. U međuvremenu, za idući tjedan mi ne počnu dijelove po sebi, ali super sekcija, koje su otvoreni su za sve studente. To dolazi nedjelja na mjestu na će objavljeni na web stranici kolegija ćemo imati jednu za one manje udobno, , kao i jedan za one ugodnije. A oni negdje između Možete odabrati koji od ta dva, ili oboje, ako želite, sjediti-u na. I fokus onih biti ultimativno na C, što ćemo nastaviti razgovor danas. Problem postaviti 0 međuvremenu je nadamo se u vašim rukama. Službeno zbog sutra, Četvrtak, točno u podne. Osim ako u gotovini jedan Vaših 5 kasnih dana, koji će ga dovesti do petka u podne. Problem set 1 međuvremenu će biti objavljena na web stranici tečaja je. A to će biti naš prvi prepad kao klasa u C I to je problem postaviti spec će vas provesti kroz mnogo se ono što je počeli smo razgovarati o je u ponedjeljak, , a mi ćemo nastaviti razgovarati o danas. C, Linux, CS50 aparata, sve to čekat će vas u specifikaciji. Radno vrijeme u međuvremenu su u tijeku, na dodiplomskom blagovaonici. Krenite na ovaj URL ovdje da vidim raspored za večeras i sutra, ako želite sudjelovati. Pitanja u međuvremenu, tako da vas imaju priliku postavljati pitanja asinkrono, 24/7, shvatite da ste ne ograničavajući se na dijelove i ured sata, ali radije ovaj alat Ovdje, CS50 Raspravljati na tom URL-u će biti online tečaja u oglasna ploča softver, preko kojega možete postavljati pitanja kolege i također osoblja. Dakle, imajte na umu da je resurs, kao dobro. U međuvremenu tradicija počinje ovog petka. Kao što ste možda nazire iz Prošle srijede je teaser videa, imamo tradiciju najviše svakog petka tijekom mandata uzimanja nekih 50 učenika i Osoblje na lokalnom restoranu zvanom Vatra i led, na kojoj smo obično se pridružili nekim bivšim studentima ili prijatelji iz industrije općenito teže napraviti velike klase osjećaju manji. Tako da je sasvim ležeran ručak. Hrpa nas, osoblje pogotovo, igrati će glazbene stolice i razgovor s učenicima o 50, život izvan 50, život u budućnosti, stvarni svijet, Govorim o mogućnostima zapošljavanja s prijateljima u industriji. Dakle, ako želite da nam se pridružite ovog petka, krenuti na ovaj URL ovdje. Prostor je ograničen, ali mi ćemo to učiniti recurringly tijekom trajanja. Voditelj tamo cs50.harvard.edu/rsvp. A ako ne dobijete u ovaj put, ne brinite. Mi ćemo to učiniti opet u narednim tjednima kao dobro. Dakle, ovo je slika naslikao smo prošlog tjedna, i vjerojatno sam bio dabbling u do sada. Ali ajmo pokušati spojiti ovaj sada da ono što ćemo učiniti danas i nadalje. Mogu li dobiti jedan volonter? U redu, ili više. Kako o ovdje na kraj, u plavoj košulji. Dođi gore, kako se ti zoveš? Alana: Alana. DAVID Malan: Alana. Dakle, Alana, za samo moment-- lijepo u susret ti-- će igrati ulogu ove funkcionirala. Ljubičasta blok mi smo nazvao dosad funkcija. Dakle, ono što ću otići uoči ovdje i ponuditi Alana je mala oznaka imena, da bi jasno kakvu ulogu igrate. Dakle, ti ćeš biti recimo blok. Ako želite ići naprijed i staviti na. A mi idemo u imajte to super jednostavna. Ako je cilj pri ruci je jednostavno Sada provesti s Alana, taj takozvani kažu blok, evo kako to ide na posao. Ja have-- nazovimo ga argument ili parametar, to je zapravo samo prazan list papira. I to je bijela do vrsta biti podsjeća od bijelog okvira u koji ste Možete pisati riječi. U međuvremenu ću ići tamo. Ja ću ići naprijed i pisati H-E-l-L-O-zarezom svijet. I sada, kao što je rekao programer, nemoj zapravo znaju nešto reći. Ja mogu doći do riječi, ali ja to ne mora nužno biti znam kako se izraziti usmeno ili na zaslonu. I tako ono što ću učiniti je uzeti ovaj komad funkcionalnosti, čiji input-- ili argument, jer ćemo ga nazvati, Ja sam napisao na ovom komadu paper-- i ja ću ga outsource. I doista to je uloga da funkcije u programskom jeziku može igrati. Nešto poput glasa blok može biti ustupljeni nekome tko ne zna ono što on ili ona govori. Dakle, ako ćete korak više ovdje samo na trenutak, Ja ću proći taj unos Alana, i zamolite da vam kažem ovo ulaz. Alana: Zdravo, svijete. DAVID Malan: To je to. Tako da je u funkciji. Sada mi to može potrajati malo više, možemo napraviti korak naprijed ovdje. Budući da je jasno underwhelming. Tako ćemo sada pretvoriti u nešto malo sofisticiraniji. Dakle, ovo je, naravno, naš C verzija. Pa sad, ako želite da se to One, koji tag ime off, pa da ste stavili na novim imenom. Ali bitno da si igrati istu ulogu, To samo tako dogodi da se zove printf sada. Priča je, dakako, će vjerojatno be-- baš kao što je underwhelming-- će biti sljedeće. Sada ste funkcija printf. Ja sam pozivatelja, ili programer, tko želi stajati na ramenima ljudi u prošlosti poput tebe, koji su već shvatili kako zapravo napisati nešto dolje. I tako je ovaj put, umjesto da kažu da ajmo zapravo koristiti našu zaslon ovamo. Dakle, ako želite da se korak ovamo, idem opet to prođe kao Ulaz na moj printf prijatelja. Ako bi mogao ići naprijed i ispisati da je na zaslonu, jednostavno crtanje sa svojim prst na crnom zaslonu. Izvrsno. U redu, tako da puno neizvjesnosti za Kako da se ide igrati van. Dakle, sada ćemo uzeti stvari jedan Konačni usjek, ako smo mogli, kako slijedi. Dakle, ovo je program C kao što smo rekli prošli put. I to samo čini ono što ste učinili, to ispisuje na zaslon, zdravo, svijete. Iako postoji jasno puno od zbunjujući stvari tamo gore. No, uzmimo stvari na višu razinu i uvesti ovu verziju, koja se prisjetiti je treća verzija koja završili smo s prošlom vremenu. I sada postoji jasno Dva uporabe printf. Ima 2 pozivi prema Alana u ovom slučaju za printf, , ali tu je i poziv na drugu funkciju. Što je to funkcija jasno? Getstring. Možemo li dobiti još jedan volonter? U redu, dođi. Koje je tvoje ime? JAVIER: Javier. DAVID Malan: Javier, dođi gore. Dakle, Javier je uloga na taj komad papira. Koji ću nazvati generički e. Sada je to promjenjiva, to je tipa string, što implicira po toj drugoj liniji u sredini tamo. I ja bih da mi se ići niz. Naime spustite se orkestru poglavlje i donesi mi ime nekoga, i vratiti se s varijablom koji sadrži tu vrijednost. To može biti bilo tko želite. Ovdje ćemo ići. U redu, Javier je zapisivao ime. U redu. Mi svi možemo vjerojatno pogoditi kako ovo ide igrati van. Mi smo možda belaboring točka što funkcija radi, ali ipak puno hvala. Dakle, Javier je vratio ovaj niz Ovdje, koja je, ne mogu sasvim vidjeti, Jonathan je niz da smo stečen. I što sad ja zapravo idem osigurati da Alana iako je nešto malo drugačiji. Budući da u ovoj verziji Program, prvo tu je navesti svoje ime. Dakle, prvi argument Moram dati Alana sa će biti doslovno navesti svoje ime. U redu, tako jednostavno kao što je to Ja bi predao ovo za vas. I kao što sam napisati Sljedeći argument, ako vas žele ići naprijed i pisati ovo na brodu, idemo naprijed i napraviti konačni primjer ovdje da bi jasno što u konačnici ima dogoditi. Dakle navesti svoje ime, pisati prema vrhu Ako vam ne smeta, samo da imamo prostora za jednu drugu liniju. Budući da je posljednja stvar idem sada vam pružiti nije jedan, ali dva komada papira. U redu. H-E-L-L-O zarez, a zatim prazan redak. Pa što ću predati Alana sada je nešto malo drugačiji. Ne samo da je ona sve to, gdje se popuniti u prazno predstavlja da percent-- što je rezervirano smo koristili? Da, tako posto a. U međuvremenu ću proći ju u drugom argumentu, koji Upravo je Javier preuzima s Jonatana. Dakle, dopustite mi da vam dati ove dvije. Ako želite, samo naprijed i ispis koji učinak. Što se događa u konačnici sada je opet Alana igra ulogu printf. Javier je igrao Uloga GetString. Tako da će biti vaš suvenir. I na kraju ono što se događa, bez obzira to hello-- yep ići naprijed i zarez. Alana: Jesam li primiti ovaj još ili ne? DAVID Malan: Aha, vi dobila ih obojicu odjednom. Dakle, ideja je da vas sada može okrenuti stranicu rukovati drugi od ta dva ulaza. Dakle, ovo je samo čekić home naglasiti da dok Alana izvršava ova zelena crta ovdje, a zatim Javier je to učinio za nas i vratiti se u meni nešto nazvat ćemo s, ali to je stvarno Upravo taj komad papira iz svoje. I sada Alana je učinio ovu treću liniju. I iako sve to izgleda tako nevjerojatno zagonetan možda Na prvi pogled, to je stvarno je jednostavno tako. Prolazeći ulaza oko, dobivanja izlaza, bilo fizički vrati nešto, ili viđenje nuspojava kao što je ovaj. Nešto vizualno napisana na zaslonu. Dakle, idemo naprijed i Zahvaljujem Alana Javier, tko je ovdje, za pridružio nam se ovdje. [Pljesak] Dakle, sada ćemo uzeti zdravo za gotovo koliko jednostavno sve to moglo biti. I neka se nastavite da zapravo učiniti nešto u stvarnom koda. Tako se na zaslonu ovdje je screenshot od tzv CS50 aparata. A ako ste morali na, kako je 2:00 u srijedu popodne, objasniti nekim prijateljem ono CS50 aparat, Kako bi ste se definirati u rečenici? Bilo jednu rečenicu? Da? UČENIK: To je poput programa koji čini svačije računalo trčanje s istim sustavom. DAVID Malan: Dobro! To je program koji omogućuje svima je računalu da radi s istim sustavom. To je na neki način sami kopija operativnog Sustav koji se događa na se zove Ubuntu Linux. I to radi učinkovito unutar Prozor na svoj Mac ili PC, tako da je ovaj put u pravu iz vrata u tjednu 1, svi ovdje u razredu ima pristup istim alatima, istu konfiguraciju, i nema krivulja učenja specifičnih na Mac ili PC-u posebno. Sada smo otvorili, unutar CS50 Uređaj je u ponedjeljak, ovaj program ovdje. To se događa da se zove gedit. Ali, to je zapravo samo grafički urednik. To je nešto poput Notepad ili Text Uredite na Windows ili Mac OS respektivno. I ja sam predložio da nije bilo stvarno tri važna dijela ovog zaslona. Gornja strana je mjesto gdje vas bi napisati svoj kod. I to je mjesto gdje smo proveli mnogo naših Tri primjera u predavanju u ponedjeljak. Dno smo se zove ono, taj crni prozor, zar ne? UČENIK: prevodilac? DAVID Malan: prevodilac smo pristupiti putem tog prozora. Ali općenito. Da, to je bio samo terminal prozor. To je doba stare pojam koji jednostavno opisuje suštini treperavih brz, da je prije nekoliko godina koristi se na jedan od onih velikih CRT monitora stilu. No, u današnje vrijeme to je vrsta od virtualnog u softveru. I terminala prozori Idemo nas upišite naredbe. To na neki način pojednostavljenu verziju korisničkog sučelja ili UI. Nije grafički korisničko sučelje ili GUI, to je sučelje tekst-based ili sučelje naredbenog retka. I doista je to mjesto gdje u konačnici Bio sam u stanju napisati neki kod. Nakon što sam napisao neki kod, iako, sjećam da sam koristio ovu naredbu. I kao što ime vrsta sugerira to mi omogućuje da napravite Program pod nazivom Pozdrav. Ali što je to zapravo radi? Pa make uzimao moj ulaz, moj izvorni kod, te ga pretvoriti u što, u konačnici? Šifra objekta. A objekt kod je samo fancy način da se kaže nula i jedinica. I onda kad sam htjela pokrenuti taj objekt kôd, Jednom sam htjela proći kao ulaz onih nula i jedinica u mom računalu mozga, tzv CPU ili matična ploča, Morao sam pokrenuti program. No, to nije bio sasvim jednostavan ponedjeljak kako je samo dvostrukim klikom neku ikonu. Što umjesto ja imam učiniti kako bi se pokrenuti program? Što je to druga naredba? Čujem malo kose crte? Da, stvarno? UČENIK: Dot Slash i Naziv programa. DAVID Malan: Točno. Dot Slash i ime programa. Sada što se to znači? Pa dot je samo kompliciranih način govoreći trenutnu imenik. Bez obzira na mapu ste u je spominje kao, predstavljena je kao točka. Slash je upravo ono što ste vidjeli u Mac OS i Windowse već godinama, to je separator između imenik ili mapu i ostatak nekih imena. U Windowsima se dogodi da ide unatrag, u Linux i Mac OS se dogodi da ide naprijed. Ali to je samo separator, tako da je Samo nezanimljiv sintaktička detalja. Sočan dio kolegija naziv programa, Pozdrav. I to je ono što bi se stvorio za nas. To reproduciraju tu sliku za nas. No, kako smo doći do te točke? Idemo sada pitati Pitanje, što je stvarno ovdje događa, barem s u obzir neke od ove sintakse? Tako u rečenici ili tako, kako smo protumačiti ova prva linija koja je označen zelenom bojom? Što je to prva linija radi, s obzirom na moj program? Da? UČENIK: [nečujan]. DAVID Malan: Ponovite to? UČENIK: Uključujući i preuzimanja Proteklih funkcije [nečujan]. DAVID Malan: Dobro. Uključujući, neću reći skidanje, ali recimo uključujući funkcije koje ljudi napisao u prošlosti. I one funkcije provode negdje u mom računalu. Netko je napisao datoteku Prije nekoliko godina, te da je datoteka je negdje unutar CS50 aparata, ili na moj hard disk općenito. I tako je ova linija suštini govori, ići pronaći te datoteke, standardni I / O točku h, i kopirati i zalijepiti svoje sadržaje upravo ovdje na vrhu moje datoteke tako da ja ne moram to ručno osobno. A među juiciest komada unutar od da sliku smo tvrdili bilo koju funkciju? Ono što je funkcija smo rekli proglašen ili spominje u standardni I / O dot h najvjerojatnije? Printf, zar ne? Nismo napisati printf na Ponedjeljak, to je samo postojala. Slično kao i Alana upravo došao na pozornicu i ona je samo postojala i znao kako se izvući nešto na ekranu, pa printf ne postoji već dugi niz godina. I tako je to kako ćemo mu pristupiti. Sada, ako ćemo krenuti dalje ovdje, Glavni je analogna smo , rekao je na puzzle komad nazvao kada je zelena zastava kliknuli u svijetu ispočetka. To je samo neka vrsta Zadani naziv koje ljudi Odlučio bi predstavljalo zadani ulazna točka za program. Komad programskog koda koji se izvršava na prvom mjestu. U međuvremenu su ti vitičastim zagradama su vrsta kao što su zakrivljenog oblika od puno onih žutih scratch komada. Oni su neka vrsta ukratko opisali cijeli hrpa uputa zajedno. Dakle, to je samo neka vrsta veže zajedno neke vezane funkcionalnost. printf naravno je funkcija koja ispisuje ekran, kao što smo to učinili. Što je s tim zagradi? Kako biste define-- čak i ako ste Nikada programirati i prije, ali samo na temelju Sada se na povećanje nadamo se intuicija, što su zagrade rade za nas ovdje? Ili što su okolna? Da? UČENIK: Kažu da ono što idete na ispis s printf. DAVID Malan: Da, oni govore ono što idete na ispis s printf. Ili općenitije, oni su okolnim ulaze na funkciji. Dakle, gotovo da možete misliti od onih zagradi kao poput metala isječak na ovom prijenosnik. To je ono što je drži, to je ono što je će se upotrijebiti kako bi argumente u funkciji, što u Ovaj slučaj se zove printf. Dakle, u cjelini gotovo bilo Vrijeme zovemo funkciju, ćemo vidjeti par zagrade. Možda je nešto u njemu, kao što je sada, možda se ništa u njemu. No, to je mjesto gdje biste stavili ulazi ili tzv argumenti u funkciju. Evo jedan takav argument. Ja sam istaknuo sve između navodnika, jer ispada U tom jeziku zove C, kada želite da predstavljaju string-- da je riječ ili frazu ili čak paragraph-- morate okružuju ga s dvostrukim navodnicima. Ne jednokrevetne, dvokrevetne citati citati. A to je upravo ono što sam učinio ovdje. U međuvremenu postoji funky Simbol prema kraju tamo. Obrnuta kosa crta n. Što bismo mogli reći da je zastupao? Da? UČENIK: Nova linija. DAVID Malan: Nova linija. Točno, ne znaš općenito pritisnite Enter kada Želite program ispljunuti novu liniju. Umjesto da ga reći izričito s ovim doduše kompliciranih komadu sintakse, Obrnuta kosa crta nje, da Želite nova linija ići tamo. Konačno zarez. Mi stvarno ne razgovaraju previše o tome, i daleko će to biti prokletstvo neke vašeg postojanja po prvi problema postaviti, kada se samo uspio shvatiti da ste zaboravili nešto kao glupo kao zarezom. I općenito stavljajući Tu će riješiti taj problem. Ali što to radi za nas, bi ti rekao? UČENIK: [nečujan]. DAVID Malan: Molim? UČENIK: [nečujan]. DAVID Malan: Završni izjavu. To je vrsta kao razdoblje u kraj engleskom kazne, dok je u tom jeziku C što je završio izjavu. Upute za programiranje kod koji se samo želite reći, Završio sam s ovim. Sada primijetiti da je samo jedan ovdje. Dakle, ne želim da se u naviku stavljanja zarezom nakon svake zatvorene zagrade. Na primjer postoji nitko uz poništiti, a mi ćemo vratiti u budućnosti onome što nevažeće sredstva. No, u ovom slučaju vaš printf je funkcija, ili izjavu koja se koristi, i tako želimo da se taj završetkom na samom kraju. A ja sam namjerno branje na C, a iskreno puno jezika kao što su C, C ++, Java, JavaScript i bilo koji broj drugi jezici imaju puno njih vrsta sintaktičkih detalje. To svakako, ako ste novi u programiranje zaista mogu vas odalo. I što će, zapamtite moje Riječi, neki od vas će imaju to iskustvo u radno vrijeme ili kasni noću radi na nekom p-set, u kojem Vaš prokleto Program jednostavno ne sastaviti, on ne izvodi, imate Nemam pojma što se dogodilo, čini se posve logički ispravan za vas. A to je zato što ste zaboravili nešto poput udaranja zarez neke linije. No, to su se stvari koje ste će odmah naučiti vidjeti. I doista su to stvari da CA-a i TF-a imaju bio svojevrsni obučeni da vide puno brže od tebe. I tako je to samo reći, kao što je vama Uronite u problemu set 1 pogotovo, Ne dobiti frustriran ovim stvarima. Nakon što ste na neki način vrati na svijetu, što počinju vidjeti stvari koje možda nećete vidi na prvi pogled ovaj prvi tjedan. Dakle, izvorni kod je nešto slično. Želimo da se prođe u tzv prevodilac. I to kao prevodilac mi je rekao daje izlaz poznat kao objekt kod, Takozvani nula i jedinica. No, od tamo, što znači da nam daju? Pa to nam daje tih uzoraka. I opet je vaše računalo, Vaš Intel Inside, razumije te uzorke od nula i jedinica. A ponekad uzorak predstavlja stvarnu decimalni broj kao što smo vidjeli prošlog tjedna, ponekad predstavlja pismo kao što smo vidjeli prošlog tjedna, ponekad predstavlja uputu, kao ispis nešto na zaslonu. Pa printf za instance-- nego, neka me natrag. Mi smo uzimali zdravo za gotovo da te nule i one su u produkciji ove zapovjedne napraviti. No, budite nije prevodilac. Provjerite nije stvar u sredini koja je proizvodila nula i jedinica. Umjesto da je samo vrlo povoljno Program pod nazivom čija je svrha u životu je bitno shvatiti Kako sastaviti svoj program. I mi smo ga koristili u tim Prvih tjedana jer to samo sprema nam puno problema. No, ono što bi stvarno radiš kad sastaviti Pozdrav, je, kao što smo rekli prošli put, to je gleda na tvrdom disku ili u trenutnoj mapi, za file zove ono, očito? Hello.c, zar ne? To je samo neka vrsta konvencije. To je proizvoljna, ali to je tako. Provjerite, ako samo navesti naziv programa koji još ne postoji, to će tražiti izvornog koda u datoteku, po defaultu znači hello.c. A ako se ne nađe, super. To će se pretvoriti taj izvor Kod u objektnom kodu za vas. Ali svaki put sam pogodio Enter nakon pokretanja napraviti Hello, Sjećate li se vidjeti posljednji put prilično dug i zagonetan slijed drugih bijelim slovima i znakovi na zaslonu? Pa to je bio stvarni naredba, Stvarni prevodilac, koji je bio pokrenut. Dakle, stvarna prevodilac ćemo koristiti većinu semestar je nešto što se zove jeka. Neki od vas možda koristi Visual Studio prije ili GCC, ili bilo koji broj drugih prevodiocima. Mi ćemo koristiti jeka. I zveket omogućuje nam zapravo pretvoriti da izvorni kod za objekt kod. Što to zapravo znači u praksi? Pa pustite me u jednu od Moje mape iz prošlog vremena. Unutar CS50 aparata. I neka mi ići naprijed i stvoriti ovo Ista datoteka, uključuju standardnu ​​I / O dot h. Int main void. A mi ćemo se vratiti u budućnosti kao na ono int znači i što ništavnim sredstva. No, za sada učinimo Pozdrav svijetu Obrnuta kosa crta nje, Baš kao što smo učinili na brodu. Dopustite mi da spasi ovu sliku pod nazivom hello.c. A sad, ako želim da prikupi te Ja could-- neka mi zumirati in-- trčanje Pozdrav bi ući. A to je opet da je vrlo zagonetan linija. Ali sada barem jednu riječ vjerojatno skače na vas. Zveket je da crta smo vidjeli prije. Sada postoji puno drugih stvari iskreno da ćemo mahati naše ruke na za danas. No, postoji nekoliko podskupine, nekoliko likovi ovdje koji su od interesa. Ali ja ću ići naprijed i učiniti. Idem u prvoj vožnji Pozdrav, samo da dokaže da je to radi kao što je bio u ponedjeljak. Ali sada ću izbrisati program. I baš kao što je imao ove kratka imena posljednji put, naredba za uklanjanje nešto što je RM, ukloniti, ući. Ti si idući u dobiti neki prilično grobni pitanja. Teško je vjerovati da možete napraviti čak i to pitanje teško razumjeti. Ali ukloniti obične datoteke pozdrav samo Sredstva želite izbrisati pozdraviti. I ja mogu ići naprijed i upišite y za Da, Enter, a sada ga više nema. Što to znači da je sada, ako sam razbistriti zaslon, da je umjesto radili bi hello-- vas Znaš što, ja sam uzimajući dobar u ovome. Idem na trčanje prevodilac sebe. Ne treba mi neki program na shvatiti što mi je datoteka zove. Napisao sam hello.c, ja znam kako se zove, Ja sam očito u stanju da upišete. Dakle, ja ću ići naprijed i ne Zveket hello.c Enter. Čini se da rade. I nema dodatnog izlaza, jer Zveket je prevodilac. To je ono što je pretvaranje izvorni kod za nula i jedinica. Dakle, ako ja sada napraviti točku slash Pozdrav Enter, hm. Nova poruka o pogrešci i danas. Dakle, bash je samo ime treperi redak koju koristimo. To je bruto pretjerano, ali za sada je to sve što je, to treperi brz. I to je razlog zašto je vikati na nas. Nema takve datoteke ili direktorija malo izravnija. Ali sigurno sam napravio taj objekt kod. No, ulov je, da ako sam upišite naredbu na popis sadržaja ovih katalog, što je ono? Je li za popis. Postoji hrpa stvari ovdje, od kojih su neki došli s aparatom, kao što je moj Desktop mape, preuzimanja mape, Dropbox mapu, a sve te stvari. No, ono što je zanimljivo je hello.c, koji Sam stvorio maloprije s gedit. A što je najčudnije u potrazi ime ovdje, možda da nismo vidi zadnji put uopće? a.out, zar ne? Dakle, natrag u dan, to Upravo je odlučio da kad sastaviti program prvi put i ne navedete ime o datoteke, ajmo ga zovu. I a.out samo znači da je to bio izlaz prevodilac. Dakle, to je strašno ime za program. No, po tom logikom, dot udarac za Trenutni imenik, Slash a.out, treba reći da postoji u stvari Moj Pozdrav svijetu programu. Sada malo zagrijati vježbe, previše. Ako želim preimenovati ovaj datoteka, ispada da vas premještanje datoteke s jednog imena na drugo. Dakle SN a.out, a onda sam Možete to nazvati Pozdrav Enter. Dakle, ovo je Linux naredba. DOS ovo prije mnogo godina, Windows ima prozor terminala neke vrste koja izgleda kao što je ovaj, Linux i Mac računala imaju tu treptanje redak. Iako većina nas vjerojatno rijetko, ako ikada, koristite ga. Ali ono što sam učinio je trčanje Program, čije ime je MV, i ja sam to osigurati dva argumenta, da se tako izrazim. Dva ulaza. a.out je izvorni naziv. Zdravo je novo ime. Dakle, ako ja sada napraviti dot slash Pozdrav, Enter, koja postoji. A ako mi je činiti dot kose crte a.out, što očekujete bih trebao vidjeti? Bash, takva datoteka ili mapa. Zato sam ga preimenovao. Dakle, to traje malo koristi za dobivanje. No, problem postaviti 1 Specifikacija će uistinu držite ruku kroz Neki od ovog minutae. Budući da je ovo potpuni intelektualnog distrakcija iz zanimljiviji ideje u ruci, koji je je zapravo stvaranje nešto iz koda. Ali ajmo napraviti jednu izmjenu Sada se ovaj program. Sjetite se da sam zadnji put učinio nešto ovako, printf navesti svoje ime. I doista smo upravo je to učinio na velikom zaslonu tamo. A onda sam niz e dobiva GetString otvorena zagrada, u blizini zagr. I zagr samo skraćenica Obavijest za zagradi. Dakle, ne GetString poduzimati nikakve argumente? Nema ulaza Ne, ali to treba zagrade, jer to je ono što markira raspisivanje funkciji. Dakle, ja ću ići naprijed i pokušati pokrenuti prevodilac na ovom programu danas. Zveket hello.c, jer sam nije promijenio svoje ime za sada. I dobio sam hrpu grešaka. Idemo smanjivanje ovdje. Ako sam pomicanje gore opet, kao što sam rekao zadnji put, na prvi, istu pogrešku da sam zadnji put. Na liniji 6. hello.c sam imao neprijavljeni identifikator niz, nije mislim standard u? Nisam. Zato što imaju pogreška koju sam napravio u ovo Program, ako sjetiti iz prošlog vremena? Da, trebamo Takozvani trening kotači koje ćemo koristiti samo za nekoliko tjedana. Ali moram navesti da je također, negdje unutar uređaja, je datoteka koja smo napisali samo nekoliko godina. Unutar koje su funkcije kao što je očito GetString. Pa sad, ako idem ovdje natrag, povećavanje, i ponovno pokrenuti Zveket hello.c. K vragu, još jedna pogreška. Ali nismo vidjeli ovo prije. Ovaj je malo više ezoterično shvatiti. No, to je namjerno na zaslonu, jer smo željeli ispričati ovu priču. Kada sastaviti hello.c, baš kao što Slika od prije predložio, ti si samo pretvaranje da izvorni kod za nula i jedinica. Sada CS50 osoblje prije nekoliko godina pisao CS50.h i odgovarajuću datoteku, CS50.c. A mi, prije nekoliko godina, sastavio te datoteke u datoteku koja se događa da se zove CS50.o. Ili to može biti preimenovan nekoliko različitih stvari. No, to je jednostavan način razmišljanja o tome. Tako smo sastaviti CS50-a Knjižnica u nula i jedinica. Ali nigdje nisam naveden da želim kombinirati svoje nule i one za moje Pozdrav svijetu Program s nula i jedinica da je CS50 osoblje stvorio nekoliko godina prije u jedan cjelokupni program. Sve sam odredio pisanja Zveket hello.c je sastaviti hello.c. Nisam rekao da Zveket karika u nula i jedinica da je CS50 osoblje stvorio za vas prije nekog vremena. Tako da je lako popraviti, crtica l za vezu, CS50. A mi ćemo opet vidjeti prije dugo opet i opet. Ali primijetite sada nije bilo pritužbi. Pa sad, ako sam pokrenuti točkica crta Pozdrav, sada to rade. Iako je to malo zabludu jer sam upravo ponovno ono što datoteku? a.out. Pa neka mi unatrag samo na trenutak. Program smo upravo sastavio ima tri linije koda. Kad sam trčao Pozdrav svijetu, pozdravi trenutak Prije, nisam vidio svoje ime. A to je zato što sam trčao stara verzija programa. Ali ako sam doista pokrenuti točkica kose crte a.out Unesite, navesti svoje ime, Rob, zdravo, svijet. Hm. To je vrsta buba. Vjerojatno htio reći Rob, zar ne? Dakle, što je popraviti ovdje u kodu. UČENIK: [nečujan]. DAVID Malan: Točno. Tako sam samo trebate napraviti da konačni ugađanje tako da sam u prolazu rezervirano mjesto, kao ispunite prazne, kao što smo učinili prije nekoliko trenutaka. Ali posto a sada je da ispunite prazne. Dakle, konačno ćemo otkriti jednu posljednju detalja, tako da ne postoji čarobna. Ja ću ići naprijed i dobili osloboditi od hellow. Ja ću ići naprijed i dobili osloboditi od a.out. Tako sada nemam programe, samo moj izvorni kod. A ja ću pokrenuti nešto više naredba, zveket crtica o Hello hello.c crtica LCS50. Sada je to počinje vrsta go u jednom uhu i van možda drugi. Ali samo zafrkavati, osim što to radi. Zveket je prevodilac, crtica LCS50 Namjerno na samom kraju čini ono što je u rečenici? Linkovi na CS50 knjižnici. Dočepa nula i one koje osoblje izrađene i donosi još ih u vlastitom programu. Dakle, zadnje pitanje pri ruci je, ono što je crtica o bok najvjerojatnije radi, čak i ako ste nikada vidi ovu sintaksu prije? Emitiranja programa koji je Ne zove zadani a.out. Naprotiv, ona je nazvana Hello. Tako sada nema a.out. Nema takve datoteke ili direktorija, jer sam izričito rekao nazvati ovaj program bok, tako da su Ja sada mogu upisati takvo ime i to se ponašaju. Sad iskreno, dječak je da nezanimljiv imati zapamtiti sve to Malo minutia, zar ne? Dakle, idemo naprijed i dobili osloboditi od Hello opet. I ajmo sada vratiti u svijetu u što je dovoljno reći da se javim. No, to je magija koja da radi za vas, to je dosada da to radi za vas. I kao što je naše programe i Problemi se složeniji, učinit će doista biti tvoj prijatelj. Budući da nije predugo od sada ćemo da su programi koje su napisane Ne s jedne datoteke, ali nekoliko datoteka, i učinit će automatizirati proces sastavljanju sve to za nas zajedno. Tako sada ispisati. printf je unutar ove datoteke, standardni I / O točka h, kako smo vidjeli prije, ali ima još na printf od toga. Postoji Obrnuta kosa crta nje, ali tu je i hrpa drugih bijega sekvenci. A bijeg slijed je samo fancy način govoreći nešto koji počinje s crticom, Ne kosa crta, Obrnuta kosa crta, a ne neke posebne stvari. I nećemo živjeti na većini od njih, ali zašto je tu obrnute kose crte dvostruki citat, Što mislite? Zašto je to čudno slijed likovi, backslash dvostruko citat, zašto bi to moglo biti korisno? UČENIK: [nečujan]. DAVID Malan: Točno, zar ne? Sjetite se na naš svijet programu Hello kako smo vidjeli dosta puta sada, svaki put kad smo vidjeli da Pozdrav svijetu Program smo imali dvostruke navodnike unutar od kojih je pozdraviti zarezom Svijet Obrnuta kosa crta n. No, mislim na sebe, što ako je zapravo htio ispisati navodnim znakom? Vaš prvi instinkt može biti, ne znam znam zašto bih se želio do-- ovdje, možemo biti malo pasivni agresivno, Pozdrav prijatelju. Mi možda želite učiniti nešto takvo. Ali zašto je to sad problematično? Ignoriranje kovrčavom citati stranu da Glavni je napravio za nas automatski. Zašto je to problematično? Točno. Budući da imamo kao 4 navodnicima. Pa prvo vjerojatno odlazi s drugom, a možda i četvrti ide uz treći, ili, mislim da nisam ni siguran, niti je računalo će biti. Računala opet, kompilatora opet su prilično glupi. Oni će raditi samo ono što reci im da rade. A ako niste jednoznačna oni su vjerojatno idući u baciti na pogrešku. Ako niste jednoznačna kako bi napraviti maslac od kikirikija i kruh s marmeladom čudne stvari mogle stići. To je ista ideja. Sada dovoljno je reći postoji neki drugi escape sekvence, ali mi ćemo doći do onih prije dugo. U osnovi to bijeg sekvence predstavljaju nešto da ne bi mogli biti u mogućnosti Olako na tipkovnici, bez zbunjujući računalo. Sada je u međuvremenu imamo rezerviranih mjesta u printf. Postotak D, koji se može pisati u gotovo svim slučajevima je u postotku i, je rezervirano za kakvu vrstu podataka? Koji tip vrijednosti? Decimalni broj. Tako zapravo ćemo početi korištenjem posto sam jer je to Malo jednostavnije, kao cijeli broj. Posto sam. Cijeli broj koji se dogoditi da se decimale. Posto a mi već rekao je rezervirano za niz. Koji je samo riječ, izraz, stavka, esej, što god. To je slijed likovi neke dužine. I vidjet ćemo prije dugo Neki od ovih drugih. Ali posto je c za jednu karaktera. Posto je f za pomičnim zarezom broj, kao pravi broja koji ima decimalne točke u njemu, koji je je, naravno, nije cijeli broj. I tu je cijeli hrpa drugih ljudi. U međuvremenu je u C, a u puno jezika, imamo različite vrste podataka. Različite vrste staklene zdjele, ako hoćete. Zdjela sam se zadnji put bio za ping pong loptice, ali mi također može pohraniti različite vrijednosti kao što su broj znakova i gudače i cijeli brojevi u kontejner, kao varijable, i C je to. Char je vrsta podataka, tip varijable, u kojem možete pohraniti karakter. Float je tip varijable u koje možete spremiti pravi broj. Interesi je, naravno, za int. I prilično smiješno imenovan dugo dugo je mjesto gdje možete pohraniti u suštini stvarno dugo broj, s još više znamenki onda Tipičan int moć trgovine. No, mi ćemo se vratiti na to prije dugo. U CS50 dot h međuvremenu drugo zaglavlje datoteke da smo vidjeli par puta u uporabi, postoji Druge dvije vrste podataka koje ne postoji u C obično. Jedan od njih je niz, pa ćemo vidjeti u nekoliko tjedana Koje žice stvarno su ispod poklopca motora. A jedan je bool. I bool je varijabla koja može se samo na određenim vrijednostima. I samo na temelju prošlotjednog objašnjenje nule, te u novije vrijeme C, što bi valjda su dvije moguće vrijednosti za Neki kontejner koji je tipa bool? I da i ne. Jedan i nula. Točno ili netočno. I doista je posljednji koji ima tendenciju biti konvencionalna u programiranju jezik, rekavši nešto kao što je istina ili laž. U međuvremenu CS50 knjižnica dolazi s gomilom funkcionalnosti da osoblje je napisao za vas, Osim samo dobivanje niz. Napisali smo unaprijed funkcija koje može dobiti broj od korisnika, dobiti jedan znak, dobiti plovak, koji je samo broj s decimalne točke. Nabavite dugo dugo, jako Velika vrijednost od korisnika. Tako smo samo vidjeli u Akcija u obliku GetString. No, putem tih funkcija Uskoro će biti u mogućnosti pisati programi koji su dobili informacije od korisnika. U međuvremenu razmislite o ovom Program, te razmotriti Kako bismo sada mogli početi dodavati kako bi se s novim tvorevinama. Brzo vrtlog razgled i onda ćemo tražiti na neke pisanje nekih programe ručno nama samima. Ubuduće, ako želimo implementirati stanje, to neće izgledati Lijepo malo lijepa zagonetka komad. To će se tražiti malo više kompliciranih. No, to je kanonska Struktura stanje u C Riječ ako, dva zagrade, unutar kojeg će biti neka vrsta od Boolean izraza. Sada slash slash u sredini, to u ovom trenutku na neki način kao pseudocode kod rezervirano mjesto. Ali, točnije, bilo linija koda u C koja počinje s slash slash je komentar. To je kao sticky note koje možda staviti na eseju, tiskan na papiru. To je napomena da se sami. To nema funkcionalnu utjecaj na program. To je svojevrsni podsjetnik, to je tvoja dokumentaciju o tome što se događa. Dakle, to u ovom trenutku svojevrsni je rezervirano mjesto za sve što je unutra od onih vitičastih zagrada na kraju će učiniti nešto. U međuvremenu imate dvije vilice u cesta, ako još izgraditi kao što je ovaj. Možete li, elseif, drugo. Sada je napomenuti, pogotovo Ako ste Googling oko online resursa u znatiželja, ili ako pokupiti jedan od Naravno-a preporučene knjige o C, vidjet ćete da ljudi imaju puno različitih sklonosti za koliko da se izraze u kodu. Neki ljudi vole staviti vitičastim zagradama, kao što sam učinio ovdje. Neki ljudi vole staviti Kovrčava aparatić za primjer ovdje. Neki ljudi vole staviti drukčije ovdje i onda je to ovdje. Tu je bilo više načina da se pisati kod, i nitko od njih u pravu po sebi. Iako postoji nekoliko da su prilično u krivu. No, tu su Ne-- ako je to konačnici vrlo religiozna rasprava. Zapravo, jedan od najviše smeta stvari o računalnoj znanosti Kako je tvrdoglav računalni znanstvenici mogu biti. A vi ćete se s vremenom da je čak i da razviju osobne preferencije kako je vaš broj bi trebao biti. Ne samo ponašaju, ne samo stvoriti izlaz, ali kako to treba izgledati estetski. Pa što ćemo učiniti je vas voditi zajedno put prema, za sada barem, standardni CS50 stil koji najmanje drži stvari ujednačen i jednostavan za čitanje. No, više o onima razlike prije dugo. Logički izraz u C, ako vas Htio je reći, ako ovo stanje je istina a ovaj drugi uvjet je Istina, ne napisati riječ i, kao što bi na engleskom jeziku. Umjesto toga koristite ampersand ampersand, iz razloga što ćemo se vratiti. Ako želite reći ili da koristite dva vertikalne linije, koja se na američkoj tipkovnici je općenito iznad Enter Ključ pored kose crtice. I to samo znači da ako ovo stanje ili ovaj drugi uvjet je istina to učiniti. U međuvremenu tu je ovo luda stvar, koja imat ćete priliku koristiti jednom u neko vrijeme. Ali to je samo alternativa način izraziti sebe. To je, za sada, ajmo propisano, to je samo još jedan funky način izražavanja ako je, elseif, elseif, elseif, elseif. To je samo formatiran u smislu slučajeva, gdje se doslovno nabrojiti vrijednosti koje možda želite provjeriti. U međuvremenu petlje. Vidjeli smo usporedbe Zagrebite s petljom. A ja ću mahati ruku na ono što svaki od tih stvari znači. Ali primijetite da petlja će vrlo često počinju s ključnom riječi za. Ili će početi s ključnom riječi neko vrijeme. Ili će početi s ključnom riječi učiniti, a završiti s ključnom riječi neko vrijeme. Ali što ćemo vidjeti je više stvari kao što je ovaj. Ovdje je, u cjelini u C, kako biste mogli proglasiti varijablu i dati mu vrijednost. U C nije dostatno, kao u Scratch, samo daj mi reci varijablu nešto. Morate reći C, i reći Vaš prevodilac, točnije, što tip od vrijednosti ti želite staviti u staklenu posudu. Je li cijeli broj? Ako je tako, morate doslovno kažu int a zatim naziv varijable, onda zarez. Ako umjesto toga htjeli string i pozvao to je kao što sam učinio moj broj danas ovdje, što će reći String s zarezom. Kada želite dati vrijednost onda možete koristiti znak jednakosti, inače poznat kao Dodjela operatera. I primijetiti kako svaka od tih linija koda ima zarez od njega. Ali iskreno to samo izgleda malo ružno. Zašto ne mogu reći na računalo, daju ja promjenjiva i to inicijalizirati na nulu. To jest, daj mi praznu staklenu posudu. Dok možete. I tako jedan od presude te zove ćete morati napraviti stilski tijekom vremena je, da li vi napisati svoj kod kao što je ovaj, ili Što vrsta očistiš i impresionirati ljudi pisanjem dvije linije kao samo jedan. A to će se smatrati općenito više elegantan način od pisanja koda stilski. Funkcije smo naravno vidio. Oni će se ovaj format. Naziv funkcije, neki zagradama, a onda možda neki stvari iznutra. Ili ste možda vidjeli koristi od više funkcija strana po strani, kao da se nešto poput ovoga. Sada kao tangente, ne ovaj vic je sada smisla? [Smijeh] To ne znači da je to smiješno, ali to ne, možda bi malo više smisla. Dakle, sada idemo u CS50 aparat za trenutak. I neka mi se otvori jedan teaser ovdje. I doista je jedan od razloga za uvođenje IKEA katalog i treperi sliku iPhone malo prije bio je zapravo vezati u zajedno Činjenica da je prije samo nekoliko godina, u 2007, ovaj dio koda je objavljen, koja je jedan od prvih provedbu komad softvera da čini ono što se zove Jailbreaking. Za one koji nisu upoznati, Jailbreaking nešto kao telefon ili iPhone znači u biti figuring kako to učiniti stvari s time da je tvrtka koji je napravio to nije namjeravao. Kao što želite instalirati određene softver koji nije u App Store, Jailbreaking svoj telefon koji što raditi stvari kao što je to i još mnogo toga. No, ono što je zabavno u 2007-- i tamo je bio desetke različitih verzija od tih stvari od tada, u svim vrstama languages-- je da Ovaj program ovdje, zove iUnlock, je zapravo napisan u C. I tako sam izvukao se izvorni kod za to, samo da vrsta pokazati neke od sličnosti s konstruktima smo raspravljalo do sada. Sada postoji daleko više složenosti ovdje nego što smo vidjeli već u klasi. Dopustite mi da pomicanje gore samo malo ovdje. No primijetite these-- dobro smo primijetiti neke things-- ali primijetite ove retke ovdje, uključujući standardnu ​​I / O dot h. I all-- linije 24, molim Primijetit standardni I / O točka H i cijela hrpa drugih Datoteke koje očito drugi ljudi napisao. A ako mi se pomaknite prema dolje kroz ovaj, malo samovoljno, zamijetiti da ne znam kako napisati sve je to još uvijek ja nužno, ali postoji li. Dakle, očito to ima podružnicu. A ako mi se pomaknite prema dolje malo Nadalje tu je još jedan, ako. Ako sam pomicanje gore, mislim oko 100 linija sam vidjela. Pa nisam baš siguran kako se to radi, ali, ali ovo je za petlje da će se to neka mi neko ponoviti nekoliko puta. A ako sam dođite svi do dna Vidim da postoji funkcionirati ovdje naziva Glavni i neke dodatne kredite za svoj užitak čitanja. Dakle, ovo je samo za say-- pa ćemo staviti Ova online među izvora Tečaj je Kod today-- da čak i neki od njih uređaji koji uzimamo zdravo za gotovo, Na kraju dana, ti si još uvijek pomoću ove osnovne konstrukte koje smo uvodi se već do sada. To je dovoljno da je jedan. U redu, tako da sada neka je zapravo graditi nešto. Idemo dalje nešto slično hello.c, i otvoriti ta, ajmo napisati ovaj program ovdje. Ja ću ići naprijed i napisati program koji se zove adder.c, čija je svrha u životu će biti kao što je moj prvi Super jednostavan kalkulator da samo dodaje nekoliko brojeva. Ne zato što je to teško Problem, nego zato što je omogućuje mi da sada vezati zajedno nekoliko stvari. Dakle, ja ću ići naprijed i uključuju standardni I / O točaka H i CS50 točka h. Ja ću reći int main prazninu. I opet u budućnosti vratit ćemo se na njega u se u tom kontekstu i nevažećih sredstvima. A sada ću nešto reći kao printf, daj mi cijeli broj. A sada na mom drugom redu, kako mogu izraziti sebe kao da želim proglasiti varijablu koje će pohraniti int? Doslovno što sam upisati ako želim stvoriti varijablu koja pohranjuje int bi ti rekao? int jednak getint. Naravno, tako da se radi. I samo za dosljednost s kodom da ćete vidjeti na internetu, neka me mijenjati to x, samo zato x je zajedničko ime varijable za korištenje, barem algebra. Sada neka mi ići naprijed i ne printf opet. Daj mi još jedan cijeli broj. A sada ću vrste od naučiti iz tog obrasca, Ja ću reći int y dobiva se GetInt. I nismo se koristi GetInt prije, ali samo kao GetString ide i dobiva niz, kao što je Javier je iz publike, Slično radi GetInt početi treptati provjeru. I učinkovito čeka korisnika kako bi ga se cijeli broj, tako da ga upišete u i udaranje Enter. Sada napokon ću učiniti to, printf zbroj of-- i neka mi se zavoljeti now-- posto sam i ja posto je prisutan Ja uskličnika obrnute kose crte n. A što ti misliš da ću staviti u sada kao dodatnim ulazima do printf? Ne želim reći doslovno citirati Citat završen x. Želim razred u X i tada, a sada idemo dobiti fancy i neka je samo pretpostavljati možemo učiniti ono što želimo. Ono što želim reći je sljedeće? x plus y. I doista da će raditi. To je minimalno programski jezici ne razumiju osnovne aritmetičke, pa to bi trebalo u stvari rade. Pa neka mi ići naprijed i čine guja u mom crno-bijeli prozor ovdje, Enter. Grobni linija, ali bez pogreške Poruka, tako da je dobra. Dot Slash guja, daj mi cijeli broj, 1. Daj mi još jedan cijeli broj, 2. Zbroj 1 i 2 je 3. U redu, tako da prilično trivijalna Program, ali što je to učinio? To mi je omogućilo da koristite funkciju ovdje zovu, zovu još jednu funkciju ovdje, Dva poziva na GetInt, a Treći natječaj za printf, a onda pomoću tih rezervirana mjesta. Dakle, to je malo više sofisticiran nego prošli put. Ali što ako želim dobiti malo ljubitelj? Dopustite mi ići naprijed i sada to učiniti. Dopustite mi ići naprijed i stvoriti Nova datoteka zove uvjeti nulu. A ja ću spasiti malo vremena za razrede radi i samo zalijepite u tome Kod kao polazište. A sada samo ću staviti nešto novo ovdje u sredini. Pa printf Htio bih cijeli broj molim te. I sve to kod je dostupan na web stranici tečaja je, ne morate sve to tip iz u klasi ako Radije ne bih. Interesi, a sada ću koristiti, umjesto xiy, Ja ću koristiti N, koji je Vjerojatno najčešći naziv za cijeli broj u računalni program. A sada želim napraviti Malo presuda ovdje. Idem vidjeti je li n je veći od 0, onda Ja ću reći printf-- Ups, printf-- ste pokupili pozitivan niz, uskličnik Obrnuta kosa crta n. Zatvorite to. Inače ću ispisati printf ste pokupili negativan broj. Sada prije nego što vikati na mene, ajmo pokrenuti ovaj program. Pusti me ovdje dolje. I kako sam sastaviti program nazvao uvjeti crtica 0? Stvoriti uvjete crtica 0. Malo glupo ime, ali-- k vragu. U redu, dobro nastava trenutak. Zašto je to razbiti? Što sam slučajno nazvati ovu sliku? Možete vrsta zaključiti na kartici ovdje. Dakle, to nije loše da sam je to učinio, jer je to će se dogoditi, možda bi neki od vas. Tako sam slučajno dobio ime moje Izvorni kod uvjet 0. Ali moj izvorni kod strane konvencije treba biti u datoteci pod nazivom Stanje 0 crtica c, ili što god točka c. Pa neka mi to srediti. Baš kao što je Microsoft Word mogu ići gore spremiti kao i to stanje 0 dot c. Sada samo da bude uredna sam ići naprijed i skinite stanje 0, što je bila moja stara verzija. A sada idemo čine Stanje 0, Enter. U redu, čini dobro. Stanje 0, Enter. Ja bih cijeli broj molim, 50, ste pokupili pozitivan broj. Sada kako o negativnom 50? Izabrao si negativan broj. Kako je sada, 0. Prilično siguran 0 nije negativna. Dakle, ovo je neka vrsta logičke greške. Kako mogu popraviti ovo? Inače, ako je n manji od 0, to učiniti, drugo možemo imati tri puta podružnicu ovdje, printf ste pokupili 0. Pa sad, ako sam to repriza Program, nakon što ga sastavljanje ponovno napraviti, a sada ponoviti Stanje 0, što ću vidjeti ovdje 0 daje mi taj izlaz. Dakle, gdje ćemo s tim? Pa to je vrlo lako izgubiti iz vida šume za drveće. I tako nam omogućiti da zaključe s ovim 2 i 1/2 minute videa koji u konačnici je malo od oglasom iz Googlea, ali to je stvarno dokaz ono što ni pomoću ove osnovne zgrade blokovi smo u konačnici može učiniti jednom imamo malo programiranja Pamet u našim pojasevima. [Muziciranja] SAROO Brierley (VoiceOver): Bilo je to prije 26 godina, i ja se upravo okrenuti 5. Dobili smo do željezničke stanice i smo se ukrcali naš vlak zajedno. Moj brat je samo rekao da ću ostati ovdje, a ja ću se vratiti. A upravo sam mislio, dobro znate, Ja možda i samo ići na spavanje i on samo će me probuditi. A kad sam se probudio pokraj dan, cijeli prijevoz bio prazan na odbjegli vlak, duh Vlak me vodi ne znam gdje. Bio sam usvojio na Australiju, na Australian obitelji. A mama je uređena mom Soba s kartom Indije, koju je stavio pored moje postelje. Probudio sam se svako jutro gledajući tu kartu, a time i To na neki način čuva uspomene na životu. Ljudi će reći, ti si pokušavate pronaći iglu u plastu sijena, Saroo nikada nećete naći. Ja bih se bljeskale od mjesta koje sam se ići, a bljeskovi mojoj obitelji suočava. Tu je slika moje majke, sjeo s njezine noge prekrižene, samo gledam njezin vapaj. Život je samo tako teško. To je moje blago. I ja sam bio u potrazi na Google Karta i shvatila da je Google Earth, kao dobro. U svijetu u kojem si mogao zumirati, Počela sam imati sve ove misli a što mogućnosti da bi to mogao učiniti za mene. Rekao sam sebi, znate, vi ste dobio sve one fotografske uspomene i znamenitosti odakle si, i znate što grad izgleda. To bi mogao biti program koji možete koristiti kako bi pronašli svoj put natrag. Mislio sam, i ja ću staviti točka na željezničke stanice Calcutta, i radijus linija, znaš, to ti treba biti u potrazi oko ovog područja. Nekako sam naišao te željezničke pruge. I počeo sam sljedeće, i Došla sam do željezničke stanice koja odražava istu sliku to je bilo u mojim sjećanjima. Sve podudaraju. Samo sam mislila Yep, ja Znam gdje idem. Samo ću pustiti Karta koju imam u glavi vodi me i odvedi me natrag u moj rodni grad. Došao sam na pragu Kuća se da sam se rodio. I hodao oko 15 metara oko kutu, Bila su tri dame stoji izvana, jedna uz drugu. A srednji istupili i Mislila sam, ovo je tvoja majka. Došla je prema naprijed, ona me zagrlila, a bili smo tu za oko pet minuta. Zgrabila me za ruku i Odvela me u kuću i dobio na telefon, gdje je Zazvonio mi sestru i brata reći da je, znate, tvoj brat ima samo sve odjednom pojavio kao duh. A onda je obitelj ponovno ujedinila. Sve što je sve dobro, Pomogao sam svoju majku, ona ne mora biti slaving daleko. Ona može živjeti ostatak njezina života u miru. Bilo je igla u plastu sijena, ali igla je bio tamo. Sve što je tamo. Sve imamo u svijetu je na slavinu na gumb. Ali moraš imati volju i odlučnost da ga žele. [Muziciranja] DAVID Malan: Predivno slatki izjava samo ono što možete sad učiniti s tehnologijom. Mi ćemo vas vidjeti sljedeći tjedan.