[VIDEO PLAYBACK] -A Trijumf matematička i mehanička vještina je ovaj veliki novi automatski kalkulator na Sveučilištu Harvard. Zapetljan problemi u matematici staviti kroz stroj u kodiranom obliku na vrpci se točno riješiti u minuta djeliću vremena potrebno za ljudsku izračuna. Dizajniran da ubrzaju sve oblike matematička i znanstvena istraživanja, div mehanički mozak će raditi za Sjedinjene Države mornarice do kraja rata. [END PLAYBACK] DAVID J. Malan: Ovo je CS50. Prošlost je čaroban mjesto, ali ako ste ikada pitali što da uređaj u Harvard Science Center, to je doista dio su Harvard Mark I, i to je na zaslonu tamo sada u posljednjih mnogo godina. A što ćete vidjeti ugrađen u problemu set jedan je pogled iza kulisa na što je uređaj učinio, i čini, od profesora Harry Lewis, koji je u znanost odjel računalo ovdje. Dakle, više o tome u samo malo. No, danas smo počeli tranziciji od prošlog tjedna na ovo, a mi ćemo donijeti spomenuti jedne fotografije ovdje to je zapravo vrlo poznata. Se bilo tko znati što je to Ovdje je na zaslonu? Barem prema mitu. Da. PUBLIKA: Prvi virus. DAVID J. Malan: Tako je navodno Prvi stvarni bug u računalu. Sada je u stvarnosti riječ bug, zbog greške u programu, je s nama za neke Vrijeme u fizičkom svijetu, i to je bio jedan od prvih dokumentirani puta gdje je netko zapravo iskopali veliku moljca iz Marku II računalo, stavite ga u vezivu, a zatim ga snimio kao prvi poznati bug da su zapravo utvrđeno tjelesno. Dakle, time je ušao da je u današnjem nauka. Sve od prošlog Tjedan je dostupan online. U pojedinim resursima koje možda ne nužno primijetiti, osobito Ako dolazite ovdje u osobi. Tako je jedan od nastavnih bližnjima svaki godine čini kanonsku skup bilješke, tako da ne morate držati glavu prema dolje, pokušavajući prepisati najviše ništa da bi se moglo dogoditi ovdje u klasi. Dakle, shvatite da oni Takozvani [? Scribd?] Bilješke online, svakako slajdova i izvorni kod koji koristimo u razredu. Izrađujemo puni tekst transkripata dostupni kao dobro. Dakle, ako ste maglovito sjećam neke pojam, a želite to pogledati malo lakše, shvatiti da sve to je pretraživati ​​online. Kao i Walkthroughs kao dobro. Doista, danas počinjemo gledati na niža razina programski jezik, Uskoro će se znati za nas kao C, i to je vrlo lako na neki način gubi se nakon samo nekoliko trenutke vremena, a onda nekako čudo koliko smo zapravo dobio na neke više Kompleks primjer iz najjednostavnije. I tako smo shvatili ćete trešnja pokupiti tijekom nastave nekom od reprezentativnih primjera, ali shvatite da toliko više je dostupan online, tako da možete raditi kroz to vlastitim tempom, no vi ste najudobniji. Ali smo stali s programi koji su upravo to. Tako sam kliknite na zelenu zastavu, a što se ovaj program učiniti? Kaže, zdravo, svijet. To čini mačka kažu Pozdrav u svom malom svijetu na gornjem lijevoj strani od nule korisničko sučelje. No, počeli smo uvoditi Neki terminologija prošlog tjedna. I tako, stvari kao što je ovaj smo pozvani što? Što bi moglo biti generički izraz za to? Da. Metoda ili izjava. Svakako, to je akcija. Učinite to. A ipak, bilo je drugi oblici ispočetka, Osim tih tzv Izjava, oni su također stvari kao što je ovaj, koji smo nazvali što? Da. Tako se petlja. I u ovom slučaju, to je stvar ponavlja, očito, 10 puta. Postoji zauvijek blok. Postoji nekoliko drugih. I danas ćemo vidjeti kako prevesti to više suvremenom svijetu, ako će, iako je će se na prvi pogled da će biti puno više Arcane. No, oni su doista petlje. A onda smo stvari kao što su to što je ovaj oblik, i bitno postavljana pitanja. A iz smo ih kao što? PUBLIKA: logički izraz. DAVID J. Malan: Da. Logički izraz. Nešto što je bilo istina ili lažna, da ili ne, jedan ili nula, No želite vidjeti svijet. Ali mi se zove one Boolean izrazi, a mi ih uključite u uvjetima ili grane. A u svijetu Blok, sve lijepo blokatori u pogledu svog oblika, ako to čini logično smisla da to učini, ali ne morate se zaustaviti na samo radi jedna stvar uvjetno, možete imati izreku raskrižju i to bilo ovo ili ono, ako uvjet je istina ili ne. A onda, kao što ćete vidjeti, Ako to već niste učinili, Možete čak i gnijezda te blokove. Dakle ispočetka raste ispuniti oblike da možda želite umetnuti u nju, tako da zapravo možete izraziti najviše bilo logike da možda želite učiniti. Sada nekoliko riječi objave i za tu i New Haven. Dakle mikroskopom počinje danas. URL za to je na stazi a web stranice, za one koji nisu upoznati. Sekcije će biti prilika da se zajedno u mnogo intimnije okruženje od [? Sanders?] Dopušta, sa 10 do 20 kolega s poučavanje kolega na različitim stazama, i različitih koraka, ako tako odlučite. Doista tečaj ponude različite dijelove za one manje udoban, više udoban, a negdje između, i uloga thumb ovdje, nema formalna definicija, ali ako ste manje ugodno, ste vrsta poznajemo. Ti si malo neustrašivi o Ideja koračni nogu, možda, ponovno u učionici, ili prikazuje do jednog između dijelu. Ako ste bili programiranja jer vas Šest godina, udobnije, Možda vama. A ako je to vrsta bacanje-up, to je upravo ono što je između njih je značilo da se. Sada, u međuvremenu, za klasu ove veličine, to nam potrebno dosta vremena da se odjeljak Svatko, pa smo tzv, super sekcije, u ovome vikend i početkom sljedećeg tjedna, pa pogledajte na web stranici tijeku je za one koji su naravno široke, i snimio za one koji ne može napraviti ih. I dijelovi i sami će početi u tjedan dana tri od CS50 nula indeksa. Problem postavljen 0 je već na web stranici tečaja je. I shvatite da nemate devet dana kasni ovaj semestar. Dakle, ovo je nadogradnja od prošlog godine, kada smo imali pet dana kasno. Dakle, ako se pitate, imamo devet problema seta. Imate devet kasne dana, svaka od njih možete samo potrošiti jedan tjedno na. To učinkovito čini sve problem postavlja zbog Petak, ali cilj je da stavite malo Malo psihološkim pritiskom na vama je da pokušate dobiti stvari u četvrtak jer kao što ćete uskoro otkriti, za bolje ili za lošije, većina sve u softverskom svijetu završi traje mnogo dulje nego što predvidjeti. Tako je svojevrsna obzir mogućnosti da pomogne sami ciljati u četvrtak, ali tješiti da, da, sve je zbog petak. A ako ih pošaljete na Četvrtak, to je divno. Nema bonus bodova ili pomoćni kredit za ispunjavanje tog roka. To je značilo da se samo štaka. A radno vrijeme, i i ovdje u New Havenu, osobno, ako želite sastati s bilo kojim od naših tečajeva nastavna drugove i CAS za pomoć. U redu. Tako sada, učinimo to više stvaran. I na trenutak da će početi da se malo više kompliciranih, ali vrlo brzo u petak Sljedeći tjedan ćemo se mogućnosti učiniti mnogo više nego smo mogli do sada u nule. Tako smo uveli kôd posljednji tjedna, iako pictoral. To je bio slagalice. I formalizirana smo da je nešto što se zove izvorni kod, ali bi li izgledati? Pa, izgledalo je malo nešto ovako. A, u stvari, samo vrste zafrkavati gdje možemo ići s tim. Ja ću ići naprijed i otvoriti prozor ovdje, a ja sam samo će izabrati novu datoteku. I ja ću spremiti ovu datoteku kao nešto poput halo dot c. Više o tom izboru riječi u samo trenutak. A to je kako netko može go o pisanju programa. Uključuju standardni I / O točkica h, int glavna praznina, a zatim otvorite kovrčava braće, u neposrednoj blizini kovrčava braće, printf Pozdrav zarez svijet, backslash nje, točka i zarez, Spremi, učinjeno. U REDU. Ja sam napisao moj prvi Program, ali to se događa biti nevjerojatno neimpresioniran jer kad sam zapravo pokrenuti ovaj program, naravno, prvo pismeno izraditi Pozdrav, a onda dot slash Pozdrav, i mi ćemo proći kroz to mnogo detaljnije u jednom trenutku, da je sve to radi. Ne pop otvoriti sve prozore. To ne čini ništa osobito sviđa. Sve je to ipak ono što sam rekao da učiniti, ali kako ćemo doći do toga? A kako ćemo graditi na to? Pa, neka je uvesti neke različite koncepcije ovdje. Dakle, jedan, mi smo o za početak koristite program pod nazivom prevodilac. Prevodilac postoji za Mac OS, Windows, Linux, bilo koji broj operacijskih sustava, i uskoro ćemo vas uvesti u okruženje koje će se koristiti, ali prevodilac je samo opći Pojam za komad softvera koji traje izvorni kod i proizvodi objektnog koda iz nje. Drugim riječima, ako vama ima kao ulazni izvor signala broj, nešto poput onoga što sam upravo upisali, što u konačnici stvara objektnog koda. I objekt kod je zapravo samo fancy način govoreći izlazi nula i jedan je. Drugim riječima, izvor broj, iako je će izgledati malo Arcane, i malo manje prijateljski od nule, na prvi pogled, to je barem nešto da mi ljudi mogu razumjeti. To je vrsta izgleda i zvuči kao Engleski, iako je vrlo kratak. Dok programiranje u nula-a i jedan je, kako su naši preci morali učiniti, prije nekoliko godina, nije bilo osobito zabavno izazov. Pa ipak, to je ono što računalo i dalje ne razumije. Dakle, prevodilac nas dobiva iz izvorni kod objekta koda. To je kao otvaranje datoteke s prevodilac, i kada ga spasi, dobivate one nula i jedinica. Tako ćemo vidjeti kako to učiniti da je u samo jednom trenutku. Ali neka sada pokušati pružiti most između prošlog tjedna i to, tako da čak i dok smo se objesio na stvari kao što su vitičastih zagrada, i zarezom i zagrade, i sve to intelektualno zanimljiv aspekti programa, koji je vrlo razumljivo putovanje ljude rano, shvatiti da sve ideje danas su isti kao i prošle. Dakle prošli, vidjeli smo ovaj primjer Ovdje, Hello World programa. Pa, počevši od danas, ako želimo provesti taj isti program, to će izgledati Malo nešto ovako. A mi ćemo objasniti prije dugo ono int, i glavni i prazna, a sve to je, ali barem vidim ovdje već upoznati Hello World. U međuvremenu, stvari kao što su funkcija, pozdraviti, vrlo jednostavno će biti vrlo jednostavna izjava kao što je ovaj. Printf Pozdrav svijetu, s nekim citati, kosom crticom, sa zarezom, ali više o tome doći. Petlje, u međuvremenu, to je petlja koja, Naravno, kaže pozdravi svijet zauvijek, a ovaj će izgledati malo čudnije nego prošle, ali ako sam nešto reći kao što su, dok je istina, ja zatim možete ispisati Pozdrav svijetu opet i opet i opet i opet. A onda možeš vrsta od početi zaključiti ovdje ova Konvencija korištenja vitičastih zagrada je vrsta poput obuhvaćajući razvedena linija koda postoji. Printf linija koda slično žuti zagonetka komad iznad. Dakle, nećemo reći zauvijek, ćemo reći, a istina, ali vidjet ćemo zašto je u samo malo. U međuvremenu, ako imate petlje kao što je ovaj, gdje ponoviti nešto konačnih broj puta, to je jedan previše je uzeti malo navikavanje da, ali to će reći za int ja dobiva nula, ja manje od 10, i ++, a onda printf opet. No, tu će biti obrasci. A za one od vas upoznati sa AP Computer Science, ili Java, ili bilo koji broj drugih jezika, gotovo svih tih konstrukata do sada bi trebao izgledati govore upoznati. Dakle, promjenjiva. Dakle, ovdje je jednostavan izvadak ispočetka da postavlja varijablu nazvanu brojač na nulu, a onda zauvijek kaže brojač i onda to mijenja brojilo po jedan. Tako se počinje s nulom, te jedan, dva, tri. Pa, kako bismo mogli upoznati da u ovaj novi jezik malo slično? Int brojač jednak nula, dok je istina, što da je ista ideja od prije radiš nešto zauvijek, a ja sam samo idući u printf. A sada je sve malo čudno, posto ja, ali više o tome da se, ali te ideje su isti. Mi samo sada moraju pridržavati sintaksa da je računalo će zahtijevati od nas. Logički izraz, nešto poput SX manji od y ili x manji od y, i y manji od z. To će izgledati malo nešto ovako, s zagrade samo kao u matematici za dobru mjeru samo bi se osiguralo da je redoslijed operacija kao što namjeravamo. A sada, uvjeti. Dakle, ako je x manji od y, kažu x manje od y, inače ako je x veći od y, reći je x veći od y, inače logično, x mora biti jednaka y. Tako možete provesti nešto kao što je ovaj u nule, ili možda provesti to je u ovom sintaksi. A opet, vitičastim zagradama su vrsta dajući nam isti oblik kao slagalice komada, ali sintaksa, sada je možda počinju slijediti neke obrasce. Dakle, ono što nam to dati ovdje? Tako smo tada u našem glavnom programu. Neka je zapravo, danas, učiniti nešto s njom. Dakle, u ovom prva crta vidimo oštro su, standardni I / O, točku H i onda neki čudan kut nosači ispod toga. int glavna praznina, a onda printf Hello World. Dakle, samo uzeti korak. Netko tko nikad nije programiran prije, barem objasniti jedan od tih linija. Koristeći možda neki od žargonu prošlog tjedna. Što je printf, na primjer? Da. PUBLIKA: [nečujan] DAVID J. Malan: Da. To je funkcija ili izjava, od prošlotjednog terminologije. I to je radnja da radi nešto. Sada je to funkcija ili ova izjava, ne izgledala uzeti nekakav ulaz? A u kojem smislu to radi Čini se da se ulaz, ako je tako? Ulaz, što mislim pod tim? Da. PUBLIKA: [nečujan] DAVID J. Malan: Da. Dakle precrtati nekoliko slagalice gdje ga možete parametrize. Ti bi mogao reći ponavljanje blok koliko puta ponoviti, tako da je bio ulaz vrste, a baš kao i ispočetka imao malo bijelog rezervirano mjesto za broj biste upisali u, tako da mi koristimo u ovom Tekst svjetski zagrade da nam taj kružni oblik u koje možemo uključiti naš ulaz. Uostalom, nekoliko desetaka godina prije kada je taj jezik, nazvan C, je izumio nikoga Predviđa se da je jedan od nas, ti nekoliko godina kasnije, mi bismo Želite funkciju koja kaže zdravo. Pravo? Bilo bi lijepo kad bi bilo zagonetka komad, ili ključne riječi, kako se zove halo, da doslovno samo kaže zdravo. Ali mi ne treba. Možemo imati nešto puno niže razini, kao što su generički ispis naredba, koja se ulaz, i ispisuje sve što želimo. Dakle, primijetite sada uzorak koja će se početi pojavljivati. Otvorena zagrada, u neposrednoj blizini je zagr očito obuhvaćajući ulaz, a onda vidim duplo navodi na oba kraja. Tu je još čudno backslash nje, ali nadamo se sada možete početi vizualizirati barem da printf je to u nekom obliku ulaz. Ne kao korisnik prijazan kao Ispočetka, ali to je samo kao što je uključen u neke vrijednosti tamo. U redu, sada neka je zapravo učiniti nešto s tim. Dakle, neki od vas možda znaju iz što prije kupovala razred, čavrljao s prijateljima, koji već dugi niz godina mi se nešto što se zove CS50 aparat. To je termin koji opisuje tehnologiju zove virtualni stroj, koji se je komad softvera da je vaš prethodnici bi preuzeti s Web stranica Tečaj je besplatno. Oni će također preuzeti besplatno komad softvera zove hipervizor, nešto što se zove kao i VMware, ili VirtualBox, ili bilo koji broj drugih alata, a na Mac ili PC ili što god računalo imali prošle godine a proteklih godina, oni bi dvostruko kliknuti ikonu pokrenuti taj softver zove hipervizor. A onda unutar tog programa oni će otvoriti CS50 aparat. A učinak je bio taj je li prethodnik tvoj je pokrenut Mac OS ili Windows, on ili ona tada naknadno je novi prozor na njihove Zaslon trčanje CS50 okoliš. Dakle, virtualni stroj omogućuje pokretanje jednog operativni sustav unutar drugog, i to je upravo ono što smo učinili. Kroz većinu mi kolegija koristite operativni sustav pod nazivom Linux, posebno Ubuntu Linux, a to je vrlo lijep način u posljednjih godina od pazeći da svatko u tijeku Samo je imao istu okolinu. A možete koristiti bilo koju vrstu računalo koje zapravo želite. Među mane, ipak, bilo je to kao dva gigabajta preuzeti ovu stvar. To nije nužno raditi super dobro ljudi čija računala koja možda samo imala koncert ili tako RAM-a, ili ne Previše gigaherca brzine CPU, pa ove godine, za ove i drugih razloga, smo bili Prelaženje na ovom okruženju. Takozvani CS50 IDE, što je temelji se na open source softvera, i podržava platformu da tvrtka zove Cloud9 podržava u Europi, koji omogućuje nam da se u biti da isti okoliš u proteklih godina, ali u tzv oblaka. Dakle, što je oblak? Vjerojatno ste kliknuli njegova ikona na vašem Mac ili PC. Što je oblak? Da? Malo glasnije. Da. To je samo hrpa računala drugdje da spremanje podataka i trčanje softver i slično. Dakle, to je stvarno samo riječi de Jure opisati [? iznajmiti?] računala koja žive negdje drugdje. To vas, sami, ne nužno posjedovati. Dakle, kada se podaci ili vaše Programi su u oblaku, to samo znači da je na nekoga tuđe računala drugdje, i ne, najvjerojatnije, na vašem fizička laptop ili stolno. I tako to je ono što CS50 IRO je. Ubuduće ćete ići na određeni URL koji će vas uvesti da, u problem postavite 1, kasnije ove tjedan, koji će onda, nakon prijave, dati vam ovo okruženje. I baš kao ispočetka imao nekoliko različitih paneli su uključeni, tako se CS50 je IDE imaju upravo to. Na gornjem lijevoj strani ovdje, ti si idući u vidjeti poznato preglednika datoteka. Dakle, bilo koji od datoteka koje staviti u ovom okruženju samo će biti na popisu. Datoteke i mape. Na vrhu upravo ovdje, ti ćeš vidjeti mjesto gdje se zapravo može pisati svoj kod. U početku u C, kasnije u termina u PHP i JavaScript, i, možda za konačni projekti, Ruby ili Java ili Python ili bilo koji broj jezika su podržane u ovom okruženju. To nije uopće vezan da CS50 posebno. A onda je u donjem kutu ovdje, pogotovo za one udobnije, imate nešto naziva terminala prozor. I ovaj prozor terminala omogućuje izvršavanje bilo koju naredbu koja vas Želite u ovom cloud okruženju. To vam omogućuje da instalirate bilo koji dodatni softver da želite, jer ste tzv korijen ili administratorske ovlasti. Dakle, drugim riječima, iako ovo je u konačnici domaćin u oblaku i iako smo to pojednostavljeno donekle po defaultu, doslovno uvođenja, zahvaljujući Dan Armendariz, Dino, Dan Bradley na CS50 tima nad pored mnogih mjeseci, manje ugodno mod koji skriva mnogo od početku zbunjujuće ometanja. Sve postoji na predstavlja tipičan računalni sustav da biste mogli koristiti u stvarnom svijetu. Pa što to sve znači, i što možemo zapravo učiniti s njom? Idemo zapravo zaviriti u program. Tako ću otvoriti stvarna okolina ovdje koji je samo naš Chrome preglednik, koji bi mogao biti Krijesnica, može biti Internet Explorer, ili neki drugi preglednik, kao dobro. To puna je prikazan ovdje za trenutak. I želim da se zapravo zafrkavati Osim što je ovaj program bio. Tako ćemo pogledati, tako povećavanja se vrh, na ono što sam učinio, i kako sam došao ovdje. Dakle, ovdje je onima točno iste linije koda. Dakle, ovo je izjava, kao što je ranije spomenuto. Funkcija da kaže zdravo. U vitičastim zagradama, na crta četiri i šest linija, vjerojatno vrsta koverti da crta ga povezati sa suštinom mog programa. Dakle, istina, ova ključna riječ glavna, to je gore na liniji tri, možete misliti da je kao ekvivalent od kad zelena zastava kliknuli, blok u nule. Dakle, to je sve što imamo ovdje, kada zelena zastava kliknuli, print, ili reći, Bok svijete. Ali uzmimo pogodak, sada, na ono što ovo prvo, više Arcane linija, je. Oštro su, otvorena pod kutom nosač, standardni I / O točka h, zatvoriti pod kutom nosač. Što se to možda čini, pogotovo ako ste programirani prije u nekom drugom jeziku. Da? PUBLIKA: [nečujan] DAVID J. Malan: Da. Točno. Dakle, to je što vam daje pristup do knjižnica, da tako kažemo, funkcija. A knjižnica funkcija Funkcije koje netko drugi pisao, bilo je nedavno ili davno, tako da ne moraju izmisliti kotač. Na primjer, mi ne moraju znati, u 2015. godini, kako napisati kod koji stavlja lik na mom zaslonu. Netko je shvatio da s funkcijom printf tako da mogu sortirati od apstraktno daleko od toga, ili sloj na vrhu njegov ili njezin broj, a sada samo uzeti zdravo za gotovo da je bilo koji program pišem možete ispisati nešto na ekranu. Dakle, ovaj prvi red tamo u jednom koraku uključuje tzv zaglavlje datoteke za standardne biblioteke. Dakle vidite, jezik u što mi sada radimo imala standardne biblioteke s puno funkcija. Printf je jedan od njih, i da prva linija koda znači daj mi pristup te funkcije, tako da sam ne moraju izmisliti da kotač. Sada idemo u donjem prozoru i to je točno ono što sam učinio prije. Trenutak prije, kad sam bio whizzing kroz kod, upisivanjem po prvi put, I vrlo brzo upisali, provjerite zdravo. Što je to bilo bi li pogoditi? Što sam radio? Da? Nema veze. Uredu je. Da. PUBLIKA: to Izrada. DAVID J. Malan: Da. To je jednostavno sastavljanje. Pravo? Čak i ako je to potpuno nepoznato vama, to je prilično engleski kao. To sigurno nije nula i oni, pa sam i dalje trebate ga pokrenuti preko takozvanog Program, prevodilac, koji će ga uzeti kao ulaz i proizvoditi izlaz. A barem za sada, u to Linux okruženju, ali to nije uvjet, ovo je samo gdje ćemo početi, općenito interakciju s računalni sustavi kao što je ovaj po tzv komandne linije. Dakle, s treperenjem brz i tipkovnicu, a ne toliko miša, a ne toliko prozore i ikone i izbornici, a sve je tekstualni. I iako to osjeća, na prvi pogled, možda, kao korak unatrag, to je zapravo mnogo više snažan i izražajan način kontroliranje računalo pogotovo što je vama, sebe, postaju ugodno s manje. To će vam omogućiti da učinite mnogo više stvari nego samo ono što Microsoft ili Apple vam omogućuje da učinite s njihov grafički operativni sustav. Dakle, kad sam pritisnite Enter, sada, ništa se ne događa ovo vrijeme jer očito Program pozdravi je do danas. A što je naredba Trčao sam nakon toga? Dot slash Pozdrav, i Hello World. Sada ćemo uzeti jedan korak natrag samo na trenutak. Ispada da bi pozdravio je samo pojednostavljeni način sastavljanja programa. Ajmo uvesti jedan komad žargon, ali onda se odmaknuti iz nje, jer to nije sve to zanimljivo za današnje potrebe. Prevodilac ćemo početi koristiti zove se zveket, na C jeziku. A to je program koji je izvoditi samo kao što smo učinili u naredbenom retku tamo. I tako, ako želim sastaviti program koji sam napisali u datoteci pod nazivom Pozdrav točka c, sam doslovno samo upišite jeka Hello c ući. Smiješno je što je, povijesnih razloga, ako ne odredite naziv programa da želim izlaz, ako ja ne odredite naziv datoteke za one nula i one, vrlo čudno Prije je usvojena Konvencija godina gdje je osjetio vrsta dobar odgovor na vrijeme, i neka je samo proizvoljno nazvati Prvi program sastavimo točku van. Dolazi prvi u pismu. Out, to je izlaz. Tako ćemo nazvati program po defaultu dot van. I to je u redu, jer ako želim pokrenuti program u ovom tekstu na temelju okoliš, samo sam tip dot slash točku izvan ući. I to bi pokrenuti točno kao i prije. Tako ćemo vidjeti da je jako brzo. Dakle, ako sam se vratiti u moj koda u CS50 IDE, i ja umjesto da to učinite, zveket Pozdrav krevetić c ući, obavijest ništa ne čini da se dogodi, ali gotovo uvijek to Linux okruženju, kad ništa loše činiti se to dogoditi, da znači nešto dobro zapravo dogodilo. Ako ne vidite pogrešku Poruka, sve je vjerojatno dobro. I doista, ako ja sada napraviti dot slash točku kako ući, ja sam pokrenuti moje isti program. Ja još uvijek imaju Hello programa od ranije, jer doista, to je će biti toliko ljepše samo upišite bi umjesto sjećanja ove vračanja naredbe, ali vidjet ćemo kako ćemo Možda poboljšati ovo, ipak. Dakle, ovo je naredba sastaviti kod. Ovo je naredba za pokretanje prikupljenih kod toga. Kako mogu odrediti naziv datoteke? Pa neka je samo uvesti još jedan komad žargon. Kada ste u ovom Tekst se temelji okoliša, ti si idući u ištanje to odrediti stvari nazivaju argumente naredbenog retka. Koji je samo fancy način govoreći, drugim riječima na redak koji ugađanje ponašanje bilo Program radite. Dakle, konkretno program sam trčanje, upisivanjem imena zveket, je program pod nazivom zveket. Dakle, ovo je ili stara škola ekvivalent dvostrukim klikom Microsoft Word ili Ikona neki program a. Ja sam umjesto da upišete svoje ime, ali u ovoj verziji naredbe, I onda se crtica O prostor Pozdrav prostor Pozdrav točka c. Dakle, čak i ako ste nikada igrao u ovom svijetu prije, samo uzeti pogodite što nema crtica o pozdravi učiniti? Ili što to kažem zveket učiniti? Da. PUBLIKA: [nečujan] DAVID J. Malan: Da. To samo postavlja datoteku je izlaz se Pozdrav umjesto gluplje dot van. I, doista, pokušajmo to. Dakle, ako ja sada učiniti, prvo učinimo to, r m zdravo. To je ukloniti. A to će reći, uklanjanje redovito file Pozdrav, što je nepotrebno arcane, ali to je samo znači ne želite izbrisati datoteku, i ja tip y za potvrdan odgovor. A primjetiti, ako ste bili na vrhu gledajući lijevo, to je nestati iz gore. Dopustite mi sada napraviti zveket crtica O, i Ja ću ići naprijed i učiniti Pozdrav, u svim kape, pozdravi točka c. Sada, ako ja dot crta Pozdrav, što bi ste očekivali? Možda je to mala slova. Možda to nije. Da vidimo. Nema takve datoteke ili direktorija. I možemo vrsta varati samo gleda na gornjem lijevom. Ono što sam učinio očito spremiti program kao? Sve kape zdravo. Dakle, istina, to je idući napraviti razliku. Tako sada Hello World je natrag. Sada je to sve u redu i dobro, a svi vrlo um-numbing, na kakve dobiti bogged dolje u tim detalji, ali ih razumjeti dobro. Tipkanje tih sve duge incantations ne će biti osobito zabavno, pa ljudi na svijetu izmislili drugi program, Prije nekoliko godina, pod nazivom bi, da je sasvim jednostavno vam omogućuje da upišete make, naziv programa želite napraviti, a čine je pametan u smislu da će izgledati u trenutna mapa, zvani imeniku, a ako imate datoteke Pozdrav zove točka c, da je datoteka će sastaviti za vas u program pod nazivom Hello. Dakle, to je mnogo jednostavnije način radiš više zagonetan naredbe da smo učinili ranije. I mi smo pre-konfiguriran CS50 IDE znati da treba napraviti crtica O i broj druge zastave, ili argumente naredbenog retka, kako ćemo vidjeti prije dugo. Ali neka sada zapravo učiniti nešto zanimljivije. Samo upisivati ​​izvan Pozdrav svijetu sve vrijeme nije sve što je uvjerljiv. Pa neka mi ići naprijed i promjene ovaj program i reći, zdravo je David. Sada ću ići ovdje. Idem da ide naprijed i ne čine pozdrav. I opet sad vidite napraviti pokazuje vam što duže slijed naredbi koje je radi jer smo pre-konfiguriran to na taj način, ali mi ne moraju brinuti za sada što to radiš osim što je sastavljanje dot slash Poštovani, Hello World. Što nije u redu? Da. PUBLIKA: [nečujan] DAVID J. Malan: Da. Dakle, noobie pogreška. Primjećujem to je super suptilna, ali zvjezdicu ovdje, na kartici, samo znači da niste ga spasio, i preglednici i drugi programi to ponekad. Dakle, kontrola je i naredba a treba ga spasiti. Sada neka mi ići naprijed i ponovno pokrenuti program. Recompiled. Točno, tako da je proces u više koraka. Nitko od kojih je posebno složen, ali svaki put kad promijenite datoteku, moramo mijenjati Nastala nula i jedinica, i točka Slash zdravo. Opa. Dakle, to je vrlo underwhelming da mi samo ispisati to. Učinimo stvari malo dinamičniji, sada. Pa ispada da vole Scratch, C podržava varijabli. I to ispada, ako želiš imati varijabla koja pohranjuje, nije broj kao što smo obično učinio s nule, ali kao riječ, ili fraza, ili naziv, te može odrediti varijablu biti tipa string. Tako ćemo vidjeti više te u samo nekoliko trenutaka, ali ispada da je C, a puno jezika poput nje, imaju vrlo specifične vrste varijabli. Nije baš kao algebra, gdje ćete dobiti X, Y i Z a oni su samo i uvijek brojevi, u programskom jeziku možete pohraniti brojeve, možete pohraniti pojedine znakove, možete pohraniti cijelih riječi, što bi pohranjivati ​​cjelovite slike, cjelovite zvučne datoteke, i slično. Dakle, moramo odrediti što vrsta naše varijable. I po konvenciji ću nazvati svog varijabla je samo zato što je kratak, i s zalaže za niz. A onda ću za pohranu unutar ove varijable, baš kao s nule kad sam koristiti postavljenu blok, Idem koristiti Dodjela operater u C, što je dovoljno lijepo je jednaka potpisati, ali je znak jednakosti čini. Ona se kreće nešto od prava na lijeva strana izraza. Dakle, ono što sam učinio, da bude jasno crta pet je sam proglasio varijablu. Rekao sam računalo, dajte mi memorija za varijable, nazovite to je, i znam unaprijed da ću da se stavljanjem niz u njoj. I niz je samo slijed znakova. To je riječ ili izraz ili stavka, ali to je slijed znakova. Nije brojeva. Ono niz ću biti stavljajući u tu varijablu? Pa, očito citat citat: "Hannah". Sada primijetite uzorak koji je u nastajanju. Postoji lijeva ruka izraz. Postoji desnica izraz, razdvojeni znakom jednakosti. I samo uzeti pogodak, ako se nepoznata ipak, s tim što zarez radi. Što je to vjerojatno radi za nas? Da? PUBLIKA: [nečujan] DAVID J. Malan: Da. To je samo ukida liniju. Pravo? Računala žele biti otvoreno Rekao, doslovno, što učiniti. Poput kikiriki maslac i Jelly sendvič primjer, Ako ne odredite točno ono što namjeravate, to bi moglo biti prepušteno prosudbe ili pogreške. Zarez znači, to je to za ovu naredbu. To je bio super precizno, a to je vrlo jednostavna stvar ostaviti off. Tako sada ovaj program ne čini se da se ponaša drugačije bilo dok sam čine ga više dinamičan. Dakle, umjesto da je teško mogao moj ime, neka mi stavi vrijednost rezerviranog mjesta. I ispada da, i ja znam ovo od što pročitajte dokumentaciju, i koristiti funkciju za nekoliko godina, da je printf je dizajniran da bude dinamičan. Ne morate znati unaprijed što riječi koje želite staviti u njega. Umjesto toga možete imati rezervirano mjesto, kao što je posto s koje će reći računalo, stavite niz ovdje. Koji niz želimo staviti tamo? Hoće ispada da je između njih zagrade, koje pamte, razgraničiti ulaz u funkciji, ako imate odvojene zarezom popis stvari ovdje, mi zapravo proći višekratnik Ulazi u funkciji. Dakle, baš kao i neki Scratch blokovi, možda ne su igrali s njima Vaši projekti još ili na sve, neki Scratch blokovi imaju dva ulaza. Dvije bijele kutije možete utipkajte brojeve ili riječi u. Tako da nema C ima funkcije kao što su printf koji može potrajati dva ulaza. I opet, to zarezom ih razdvaja. Tako je u engleskom, opet, čak i ako nikad nisam programirana prije, tako da je logika printf je funkcija, traje dva ulaza, od kojih je jedan je rezervirano mjesto, što bi se nadam printf će učiniti s ovim ulaz? To će pozdraviti Ana, nadam se. Tako da to moramo učiniti ga spasiti. Idem za smanjenje. Ja ću ići ovdje natrag i reći, napraviti pozdravi ući. Oh. Nešto nije u redu, a zapravo to je prilično velika. Imam šest linija koda i kao 12 redaka pogrešaka. Dakle, radujemo se tome. Dakle, ono što se ovdje događa? Tako je najbolji pravilo ovdje pogotovo kad ste na samom početku, ne bi omesti stvari na dnu. U stvari, ja vrlo namjerno Samo pomicati gore jer vrlo često, računalo je nije sve što svijetle uređaja. To će zbuniti. Ako se vidi jednu stvar koja to ne razumije, to bi moglo pogriješiti drugima linija koda kao netočne, iako su savršeno u redu. Tako ćete uvijek želite raditi vrha prema dolje kroz pogreške. I to je, doduše, super arcane u ovom trenutku. Pogreška, korištenje neprijavljeni Oznaka niz. Jeste Mislim standard u? Ne, mislio sam niz. I to je pokazujući na, možda je pogreška pri upisu. Nešto poput, provjeru pravopisa u Vrlo geeky put, ali razlog ovdje a vi ćete znati samo praksom, je da ispada da je string ne postoji u C. U stvari, C je posebno stara jezik, i to je vrlo niska razina, i to ne puno mogućnosti da možda su odrasli s ako imate, u stvari, programirana u Javi, kao što neki od vas, ali možete ga učiti nove stvari. I doista, mi smo učinili ovo CS50, iako do kraja semestra, sve ove obuke kotača će biti skinut, ono što radimo u tim Prvi par tjedana u početku je također imamo što su CS50 dot h. Koji je zaglavlje datoteke. Više o tome u budućnosti. To je datoteka koja sadrži funkcije da smo pisani za vas. A među tim funkcijama je Funkcije za dobivanje ulaz od korisnika, kao što su žice, i brojevi, a realni brojevi, i još mnogo toga. No, ona također ima nekoliko prečaca. Ona definira Boolean kao vrste podataka. C nema true ili false. No, možemo mu dati pojam true ili false putem ove knjižnice. I to također nema string sagrađena dok ne uključuju ove linije. Dakle, ova linija koda govori prevodilac, hej, zveket, izgleda u ovoj datoteci za cjelinu hrpa kôd koji CS50 napisao je da svatko tko koristi ovu sliku može uzeti zdravo za gotovo karakteristike su dodali. Pa sad neka mi ići naprijed i jasan zaslon, a ako znatiželjni ja samo govorim kontrolu Ja svaki put za brisanje zaslona, ili možete upisati jasno. Samo ću ići naprijed i sada Vrsta napraviti Pozdrav, i sve je dobro. Ipak tajanstveni izlaz, ali to nije pogrešna poruka. Ako li pak činim točka slash Pozdrav, i kao stranu, točka Slash je nepoznata većini. To samo znači, znači dot trenutni katalog. Dakle, ako ste ikada koristili DOS ili Linux ili Unix možda ste učinili nešto kao cd dot dot, gdje dot dot znači ići unatrag u vrijeme ili otići natrag, ili viši u svom imeniku. Dot samo znači gledati u trenutni katalog. Želim zdravo, što je upravo ovdje. I doista, sada kaže da pozdravi Hannah. I ako ja to ponovno promijeniti za Maria, rekompiliranje to bi Poštovani, dot crta Pozdrav, program se mijenja. No, to je još uvijek prilično glupo programa. Ako želim poslati ovaj program, ili ga dati prijatelju, ili ga dati Maria ili Hannah što se toga tiče, to je u redu. Ja mogu prilagoditi za obojicu, ali to nikad neće biti dinamičan. Oni ne mogu ga promijeniti nakon što je sastavio dolje u tih nula i jedinica. Dakle, ono što smo radili nešto pametnije? Što ako, umjesto hard-kodiranje u program njegovim imenom, što ako smo samo dobiti string na zahtjev? Dakle, drugim riječima, neka mi to učiniti. Idem rekompilirati ovaj program. I neka mi zumiranje na dnu sada. Napravite Pozdrav dot Slash zdravo. Sada se ništa ne događa. Možemo dobiti brzo volonter da bi se nešto dogodilo? Dođi gore. Kako se zoveš? Pancho: Pancho. DAVID J. Malan: Pacho? Dođi gore. Nakon što ste dobili ovdje, ovo je će biti vrlo underwhelming, ali to je više zanimljiv od mene ga upišete. Ako želite ići naprijed i upišite svoj ime, sam napravio ovaj program samo za vas. Samo upišite svoje ime. Unesite. Divno. U redu, hvala vam jako puno. Pancho: Hvala puno. DAVID J. Malan: U redu. [PLJESAK] To je bio vrlo ljubazan. Izvoli. Što nam je činiti? Tako smo napokon, u najmanju ruku, napravio ovaj program dinamičan. Sada je još sigurno po dizajnu underwhelming, ali napokon imamo mogućnost sada pisati kod unaprijed, mnogo kao autora printf, a zatim dinamički Prilagoditi na temelju ulaznih smo predao, bilo programer, ili od strane čovjeka koji je zapravo interakciji s programom. Tako ćemo zapravo sada probati napraviti nekoliko drugih konstrukata i vidjeti ako ne možemo napraviti programe sami sofisticiraniji. Tako ćemo ići naprijed i umjesto pisanja ovog jedan od nule, Ja ću ići u današnjem izvorni kod, i sve to je dostupan na tečaj a web stranice, a možete povući i ispustiti ga u svojem okruženju dolaze u petak nakon problema Skup 1 vam daje Upute, ili ste mogli to učiniti u naredbenom retku kao dobro, ali više dolaze u p set 1. Idemo vidjeti što je u ovom programu ovdje zove, zbrajalo točka c. Sada sam već komentirao da, ali ono što je novo? Na prvi pogled, ono što crta koda je apsolutno novo? Vjerojatno ne bitno upoznati sada. PUBLIKA: [nečujan] DAVID J. Malan: Da, tako int x jednak dobiti n. Nikad nismo vidjeli ništa od ovoga i prije, ali je vjerojatno int simbol za Kakvu varijabla, [? iz?] cijeli broj. Tako int za cjelobrojnim. To je samo se više kratak. x je samo proizvoljna. x i y i z su dalje prilično razumno za brojeve, ali općenito ćemo koristiti riječi odjednom Naši programi dobili složeniji. Get int, naravno, baš kao get nizu, vjerojatno idući u dobiti int od korisnika, a onda ćemo napraviti istu stvar s y. I očito, iako je to Zadnji redak, 24, izgleda složeniji, to će reći zbroj ovo i da je to druga stvar. A Obavijest posto ja Vjerojatno označava što? Koja je uloga posto ja očito služe? To je samo rezerviranih mjesta. Pravo? Posto je bio za niz, posto sam se za cijeli broj. Tu će biti posto f za Krajnja vrijednost koja je samo broj s decimalne točke. Drugim riječima, pravi broj. Tako ćemo zapravo sastaviti ovaj programirati jako brzo i ne čine zbrajalo. Ups. Dobra prilika. Dakle obavijest ovdje, sve ovo vrijeme moje korisnika naziv za ovaj račun je jharvard. Ja sam u CS50 IDE, zvani IDE50. A sada u plavom ovdje spominje, ali iz okoliša, u kojoj sam ja. A u stvari, ako sam povećati do vrha Ovdje, primijetiti da imam IDE50 i vidim tu riječ, ako vas neka vrsta okrenuti glavu u stranu, radni prostor. U Ukratko, činjenica da Vidim tilde kose crte radni prostor znači da se u ovom tekstu based komandne okoliš, Ja sam u tekstnom ekvivalenta ovo grafički mapu ovdje. Pa kad radim dot crta guja, to govori ne pravilo da bi ciljani guja zaustaviti. Ne znam što to znači, ali to je loše za nekog razloga. nema takve datoteke ili direktorija još je jasna. Gdje je onda? Temeljem gdje sam kliknuo otvoriti datoteku ranije. Gdje bi mogao biti? To je vjerojatno u izvoru Jedan W, za srijedu, i ja mogu vidjeti, doista, ako sam otvoriti to. Tu je guja točka c, ali u Ovaj tekst-based okruženju, opet, moram biti super eksplicitno. Ako želim promijeniti direktorija u Izvor jedna Srijeda, moram upisati, cd izvor prostor jedan Srijeda ući i sada moji brz promjene daj mi znak da vizualni Ja sam, doista, na drugom mjestu u mom okruženju, ali sada sam se čine guja, čini se da radi, dot slash zbrajalo, daj mi cijeli broj. Jedna. Dva. Zbroj jedan i dva je tri. Ali ako ne surađuju, da vidimo što dobijete int radi. Daj mi cijeli broj. Ne. Pokušaj ponovo. U REDU. Fine. 50. 50. U redu. Tako je konačno surađuje. I to je neki od funkcionalnost koja ove funkcije može imati izgrađen u za vas. Dakle, u provedbi od dobiti int, što programiranje izgraditi od prošlog tjedna je vjerojatno u tamo natjerati ovo ponašanje ponovnog pokušaja, Pokušaj ponovo pokušajte ponovo? Da, tu je vjerojatno neka vrsta petlje. To će izgledati sintaktički različit od nule u blokovima, ali to je istina ono što je unutar datoteke. I u nekoliko tjedana put ćemo zapravo, pogledajte CS50 knjižnici kao što je unutra, ali postoji petlja nametanje upravo to. Idemo igrati blesave igra ovdje s ove datoteke. Stanje nula točka c. Samo ćemo se općenito početi računajući na nulu. I ja bi pomicanje prošlost neke od stvari na vrhu. U plavo ovdje označeno sa svim tih zvijezda i kose crte, one od vas koji programirati prije, što je to? Zašto držimo preskakanje preko njega? Što? PUBLIKA: To je komentar. DAVID J. Malan: Da. To je samo komentar. Ovo je komentar za ljude čitati, da je u našem slučaju, govori nam ono što naziv datoteke je, tko ga je napisao, a ono što čini, tako da ne morate čitati kroz kod znati što je ova datoteka je sve o tome. To je samo opis, ali funkcionalno je nevažno. A ja čak mogu izbrisati iz moj file i to nema utjecaja. Sočne linije su ovi Prva dva ovdje, sada. int glavna praznina je ekvivalent naše kad zelena zastava kliknuli, pa ćemo ostaviti da se za danas, a mi ćemo se vratiti, na kraju, što bi int i praznina su, ali sada, primijetiti ono što sam učinio ovdje, također možete, ako imate u redu komentar, ako imate misao želite podijeliti o određenoj liniji koda, Konvencija u C je učiniti udarac slash, a onda nekoliko riječi, dat, Ne puni osuda, općenito nije stavka, to samo objašnjava na vas ili vaše TF ili drugim čitateljima i kolegama, Što je vaš broj radi. Dakle, umjesto da moraju gledati na ovo i zaključiti iz linije devet i 10, što je to radiš, u skladu osam Upravo sam dati komentar na pitati korisnika za cijeli broj, onda ja ne moram razmišljati previše teško o čemu linije devet i 10 su. Ja samo znam da je to ono što zajednički rade. Kako? Pa, ovdje je brz. Evo sve od int. I na temelju prethodnog ponašanja, čini se kao GET int je dovoljno pametan da bi bili sigurni da ljudsko surađuje i daje ga cijeli. Ali sada vidimo to. A to podsjeća ispočetka. Ja sam tvrdio da sam Analizirajući korisnički ulaz, ali nešto netočno. A to očito u C kako izražavamo if drugo, grana, vilica na cesti, ali ja kažu nešto pogrešno. Što je bug u ovom programu? O dodatno natrag? Da. PUBLIKA: [nečujan] nuli. DAVID J. Malan: Da. Dakle, ako sam upisati nulu, razmotrimo upravo to slučaj, ili kutak slučaj, ako hoćete. Dakle, ako sam upisati nulu, što od blokovi će očito ga zgrabite? IF ili drugo? Drugo, a to će reći, ste odabrali negativan broj. I doista, nula nije trebao biti pozitivan ili negativan, pa to bi bilo pogrešno. To će biti bug. Pa kako možemo popraviti ovo? Netko tko nikad nije programiran prije? Dali želiš-- PUBLIKA: [nečujan] DAVID J. Malan: Povlačenje? PUBLIKA: [nečujan] DAVID J. Malan: O, je li? Netko tko nikad nije programiran prije. Želite li se okušati u to, u crvenoj košulji? Dođi gore. O da, daj se, ako ti ne smeta. Dakle, nikada nije programiran prije, što je vaše ime? LAUREN: Lauren. DAVID J. Malan: Lauren, u redu. Dakle, popraviti ovaj bug za nas. Niste Vidjeli C, vjerojatno, a vjerojatno ni jedan drugi jezik. Dakle riješili ovaj program za nas. Lijepo ya susret. Bez pritiska. LAUREN: Da. DAVID J. Malan: Ali opet, ako je to kockati ide prema planu, takeaway ovdje će biti, samo jednom, za početak primijetiti obrasce i zaključiti iz postojećih sintakse kako biste mogli izraziti ostalo sebe, nema namjeru dosjetka, kako uhvatiti neke dodatne scenarij. Tako smo govoriš drugo, ako. printf, dobro. I obavijest s CS50 IDE i frankly-- IDE predstavlja integrirani Razvoj Okoliš. To je samo fancy način govoreći program koji vam pomaže program. To čini user friendly stvari kao što su kada upišete jednu zagradu, automatski vam daje drugu. Pretpostavka se da ste na kraju će se želite upisati da je, i to je također to radi s navodnicima. Zato volim liniju 23. 99% na putu tamo. Netko želi pridružiti se s vrha? Čuo sam zarez iz publike. Dobra. Tako da završi to. A sada, samo sam se malo zaprepaštenje sa linije 21. Kako želimo izraziti? Ono što je pitanje želimo pitati, što mislite? Tako je prije smo pitali to pitanje, ako je n veći od nule, to. Inače, to učiniti. Dakle, moramo odabrati pitanje koje treba postaviti ovdje. PUBLIKA: [nečujan] DAVID J. Malan: Dobro. Dakle, ako je n jednak nuli. Izvrsno. Tako ćemo ovdje zastati. Hvala vam toliko za braving to. Dopustite mi da vam dati malo zasluženi stres loptica, možda postoji. Tako smo skoro tamo. U stvari, Lauren, ne ako radite um, neka mi napraviti jedan ugađanje ovdje samo da se čak i ako što smo vidjeli u nule, što želim učiniti s linije 21 i 24, samo jednom se temelji o tome kako mi je to ispočetka, možda? PUBLIKA: Premjestiti ga. DAVID J. Malan: Da, premjestite ga. Tako je stanje ostalo, treći, ili četvrto, ili peti ili konačna grana, treba doista doći poslije, i to je samo po konvenciji, samo zato ako hoćete. Pa ja trebam napraviti ovaj ugađanje. I moram staviti moj kovrčava brace ovdje. I sad, ovaj program će sastaviti. Mi smo tako blizu, ali tu je vrlo, vrlo suptilna bug. Idemo vidjeti što se događa. Prvo, neka mi ići naprijed i smanjivanje. Ja ću ići naprijed i upišite bi stanje nula. Oh, lagao bih. Sada prevodilac je zapravo prilično pametna. A ja stvarno ne razumijem to je poruka o pogrešci. Koristeći rezultat zadatku kao uvjet bez zagrada, je očito loše. No, što to znači? Pa opet, u potrazi za uzorke u kod koji smo vidjeli prije, Što je linija 17 zapravo radi, iako Lauren malo namijenjen inače? Da. PUBLIKA: [nečujan] DAVID J. Malan: Da. Dakle, ne zaboravite znak jednakosti, očito kako smo ga koristili prije, nije jednako. Njegov zadatak, s desna na lijevo. Dakle, linija 17 u ovom trenutku je uvjet, a to je izvršavanje koda unutar zagrada, ali kad se to kod izvršava, ono što se događa na vrijednost nula? Što se događa u vrijednosti od n? Postati nulu. Dakle, ako je n postaje nula, i opet, po prošlog tjedna, mi općenito reći da nula je lažno i jedna je istina, ili da je jedan i nema je nula. Dakle, pravi i lažni, jedan i 0. Ako je n od linije 17 je s obzirom na vrijednost 0, nula istina? Ne. Po definiciji, nula je lažna. To je konvencija smo će držati se kreće prema naprijed. Tako će linije 18, 19, i 20 sve vrijede sada, logično? Oni ne mogu. Tako smo postavili pitanje ali ne sasvim točno, a ti ne bi znao to, osim ako ste ga vidjeli, rješenje u C kad želite izraziti jednakost, kažeš jednaki jednaka. Dakle, znak jednakosti već iskorišten po zadatku, s desna na lijevo. Jednako jednak način jednako. A ako stvarno želite da vaš um biti savijen u JavaScript i PHP, postoji jednaka jednaka jednakima, koji znači nešto drugo uopce, ali mi ćemo doći do toga prije dugo. Dakle, ovo je jednostavan škripac, ali shvatite super jednostavan za napraviti ovu pogrešku, i onda čuditi i borba za nekoliko minuta, ako ne i sata, Zašto je moj broj ne izvršavanje kao Namjeravam? To je zato što nije rekao je upravo ono što je značilo. Tako da je gotovo savršena, i to je super da smo naišli na ove dvije male stvari jer sada, ako smo ih riješili, i ja bi stanje nula dot slash stanje nula, Htio bih cijeli broj molim. Da vidimo. Ne. To će me prisiliti da to učini. Dakle, 42. Uzela sam pozitivan broj. Pa sad kako mogu dokazati ovaj program točno? Ako ste matematičara, ne možete stvarno dokazati metodom pokušaja i pogreške, zar ne? Ne možete samo dokaz strane Primjerice, ali barem kao programer nismo će pokušati dokazati za sada da je to doista točno, ali ja trebao vjerojatno testirati neke reprezentativne slučajeve. Ja sam testirao 42. Mogao sam testirati 43. Mogao sam testirati 44. Test 45. Pravo? Ali ja bi to stvarno davno učiniti. Što bi se još malo Zanimljivi slučajevi probati? PUBLIKA: [nečujan] nuli. DAVID J. Malan: Pa nula. Svakako. A dobro, mi smo ga dobili ovaj put, zahvaljujući Laurenov novi kod. Što je još jedan dobar slučaj pokušati? PUBLIKA: negativan. DAVID J. Malan: negativan, i možda nešto malo veći, pa možda negativna 42, ali općenito, kad testiranje vaših programa kreće naprijed, ti si idući u ištanje to misliti za sebe, kao što je su temeljna različita slučaja. I usuđujem se reći negativan slučaj, pozitivan slučaj, a nula slučaj prilično zaokružuje ove out. Pogledajmo varijantu ovog ipak. Uvjeti jedan. To je točno rješenje ovdje, tako da ćete vidjeti dva i on-line, ako hoda kroz Walkthroughs, općenito povećajte ove postupno dok ne dobili točno pravo pristupa. Što ako smo htjeli pitati dva pitanja odjednom? Dopustite mi otvoriti ovaj umjesto. Non-prekidač, iz razloga vidjet ćemo drugi put. Što je novo sintaktički ovdje? Ja sam trenutno igrate igru gdje je računalo govori mi, daj mi cijeli broj jedan do 10, a onda ću suditi korisnika ulaz. U engleskom jeziku, na temelju kod vidite ovdje u plavoj boji, što je ovaj program radi? PUBLIKA: [nečujan] pokupio veliki ili mali broj. DAVID J. Malan: Da. To je samo odlučivanju hoće li Uzela sam veliku ili medij, ili mali broj temelju vrlo proizvoljna definicija malih, srednjih, i velika ovdje, ali obavijest sintaksa da je novo je to. Nema manje od int ili jednak potpisati, ili veća od ili jednaka potpisati, gdje je nad drugim, da vas može izraziti kao Microsoft Word. Tako je u programskom jeziku obično samo napraviti dva znaka, jedan za drugim. A što se to vjerojatno predstavljaju, ampersand ampersand. PUBLIKA: [nečujan] DAVID J. Malan: Da. To samo znači da i zbog njega Ispada da su autori C koristi jednu ampersand, što možda mislite će biti savršen za pojam od te se već koristi se, tako da znak za struju znak za struju zapravo bilježi slučaj zapravo želite. Tako ćemo sada posrnuti preko dvije stvari. Dopustite mi ići naprijed i otvoriti jednu. Nešto što je malo zabrinjavajuće. Nepreciznost točka c. Dopustite da se predstavimo dvije stvari ovdje. Jedan, obavijest da možemo napraviti matematika, kao kao i prije kada smo plus dva broja X i Y. Što je ovaj program očito radi? Nisam ga još komentirao, i ja sam uveo posto f, ali brzo sam rekao ranije posto f znači pomičnim zarezom vrijednost, što je stvarni broj. Nešto s decimale točka, što nije cijeli broj. Što mislite je ovaj program pokušava me se prikazati na zaslonu? Da? PUBLIKA: Rezultat jedan preko 10. DAVID J. Malan: Da. Što je rezultat jedne podijeljena 10. Točno, jer svi vi vjerojatno odrasla znajući da je jedan više od 10 je što? Da, to je samo 1/10 ili 0,1. Pravo? Tako ćemo vidjeti što to zapravo jest. Pa neka mi ići naprijed i spasiti ovo. Pusti me ovdje. Napravite nepreciznost dot crta nepreciznosti i obavijest, također, u Linux okruženju, što ne moraju tip iz nepreciznosti i uzeti cijeli dan. Općenito, ako hit Tab, to će završiti svoju misao za vas, temelji se na riječi koje su dostupna u trenutnom direktoriju. U REDU. Dakle, bili ste u pravu. Jedan podijeljena 10 je, u stvari, 0.1. Ali ja sam malo znatiželjan. I ispada printf podržava neke značajke gdje možete odrediti više od zadani broj decimalnih mjesta. Dakle, ako želim vidjeti 10 decimale Točke mogu učiniti posto, za simbol rezerviranog mjesta, dot 10 za, daj mi 10 decimalne točke, a onda dalje s pomičnim zarezom vrijednost, i, kao na stranu, što je ovo backslash n očito smo stalno koristite? Ispada da je Simbol za novu liniju. To je vrlo eksplicitan način govoreći na računalo, pomaknite pokazivač na sljedeći crta nakon što ste učinili. A vidjet ćemo što će se dogoditi kad mi ne učiniti. Dopustite mi rekompilirati bi nepreciznost. Sada dot slash nepreciznost. U REDU. Ipak pravu. Jedan podijeljena 10. Sada sam uzimajući malo znatiželjni, ipak. Što ako gledam 20 decimale ističe, rekompiliranje, ponovno izvođenje, i kao u stranu Brzina, također možete koristiti Vaš gore i dolje strelice za pomicanje kroz povijest, tako da ne morate držati prekucavanje ove naredbe, upišite. Ha. Nisam saznali da u osnovnoj školi. U redu, pa mi dopustite vidi se kao 29 mjesta van. Možda je to samo slučajnost. Možda moje računalo ponaša čudno. To nije stvar, zar ne? To je radi nešto deterministički. Tako bi nepreciznost. U redu, to je zabrljao. Dakle, što se događa? Dakle, očito svoj blog Učitelj je lagao vam sve ovo vrijeme Razlozi da ćemo vidjeti zadugo. Ali neka je završiti s jednom drugom programu. To je malo programa netko je napisao prije nekoliko godina, i to je zapravo dio natjecanja. Nitko zapravo piše šifru ovako, a ako ne, to je stilski problem. Ali ljudi to učiniti za hvalisanje prava. Za pisanje najviše konfuzno gleda program koji ipak radi nešto zanimljivo. I napomena sam mislio da ćemo ostaviti na Danas, prije nego što nas Colton igra ovdje, je pokrenuti ovaj program, koji, čak iu samo pomoću C u ovaj tekst-temeljen okoliš, daje nam tu. Vraga. [Smijeh] Pričekaj. [Nečujan] c crtica l m. Ideš vidjeti čarobni bajanje da ćemo vidjeti prije dugo. [Nečujan] U redu. A sada možete čak učiniti stvari kao što je ovaj. To je to. Za CS50 mi, će vas vidjeti u petak. [Glazbom] [PLJESAK]