[Redarea muzicii] DAVID MALAN: În regulă. Bine ai venit înapoi. Aceasta este CS50, iar acest lucru este O saptamana, a continuat. Deci, unul dintre motivele pentru care am fost trece în jurul tehnologii, cum ar fi Google Glass este că ei vin cu ceva cunoscut ca un API, un Application Programming Interface. Și ce înseamnă acest lucru este că, odată cu fișierele potrivite și cu dreptul documentație, puteți scrie de fapt, software pentru dispozitive chiar ca acestea. Și ce avem în minte față de semestre final este, în cazul în care un proiect care implică, spune, Google Glass s-ar putea apel, vom vedea ce putem face în Termeni de prindere vă cu unele înlocuitor hardware precum API accesibil publicului, astfel încât să puteți începe de fapt, crearea de software care ruleaza pe acelasi Google Glass. Un alt dispozitiv care ne-am jucat cu întârziere de care ne-am gandit ar putea fi distracție, la sfârșitul semestru este acest lucru mic aici. Se numește Leap Motion, si ce esti pe cale de a vedea este punct de vedere tehnic o publicitate pentru dispozitiv, dar vorbește la ceea ce particular acest Dispozitivul este capabil. Și, de asemenea, vine cu un API prin intermediul pe care le puteți scrie software-ul pentru a controla propriul computer într-o manieră destul ca acest film de un minut aici. [Redare video] [END redare video] Deci, chiar acum, acest dispozitiv se întâmplă să fi implementat ca un pic USB conector pe care le puteți conecta la dvs. calculator, dar nu aș fi surprins dacă înainte de mult timp avem aceste tipuri de tehnologii în următorul lot de PC-uri și Mac-uri, astfel încât să puteți, într-adevăr, interacționează cu acesta în un mod de genul asta. De fapt, ceea ce am crezut că mi-ar face, de asemenea, este Am tras o mică demonstrație program care vine cu acest software. Așa că am pus senzor mic în fața laptop-ul meu. Și, după cum puteți vedea, ea își dă seama deja că mâna mea este acolo ao controla. Și tot această cerere nu este roate lucruri mici, cum ar fi acest lucru. Dar puteți vedea că, într-adevăr, Eu am cinci degete acolo. Dacă putem ajunge să facă tot 10, vă puteți imagina un pian elegant aplicarea sau similar. Deci, dacă doriți să vină după clasa azi și să se joace cu care ca Ei bine, sunteți bineveniți să. Deci, mai multe pe care spre sfârșitul semestru. Deci, un cuplu de administrative anunțuri. Unul, face secțiunea de vineri la prânz la cs60.net/section. Că URL-ul este în curs de pagina de pornire, de asemenea. În același timp, deși, supersections va debuta în această duminică. Supersections sunt un lucru o singură dată, pentru că ne ia ceva timp pentru a lucra cine e în care secțiune și unde. Deci, acest lucru vine duminică, nu va fi unul Secțiunea pentru cei mai puțin confortabil, o secțiune pentru cei mai confortabil. Iar cei dintre voi undeva în între sunt binevenite pentru a merge la una sau ambele sau nici una. Ambele vor fi filmat. Vor fi într-o sală mai mare decât o secțiune în mod normal ar fi inch Dar scopul aici este de a vă dota cu un pic de confort cu probleme stabilit o, cu C, cu CS50 aparat, această week-end, chiar înainte de a afla dvs. misiune oficială secțiune. Deci, veți întâlni TF și mai mici dvs. grup de sectionmates în aproximativ timp de o săptămână. Orelor de lucru, între timp, au fost întâmplă. Face să profite de ele in seara asta sau mâine seară, dacă doriți. Set de probleme a 0 se datorează vineri. Aceasta este o zi mai târziu decât regulat-programată joi. Dar, cu set de probleme 1, veți vedea care include unele warm-up exerciții cu care te poate extinde dvs. Joi termen limită până vineri. Set de probleme 1, între timp, va debuta pe site-ul cursului aceasta vine Vineri, dacă doriți să mă ghemuiesc cu ea așa cum am făcut-o o dată la un moment târziu Vineri seara, în camera ta. Deci, cs50.net/appliance este locul unde puteți obține aparatul CS50 că am început cu luni. Vom folosi o pic mai mult astăzi. Dar fiți siguri că problema set 1 caietul de sarcini vă va plimba prin exact pașii pe care trebuie pentru a obține că până și să fie difuzate. Deci, nu vă faceți griji despre a face că, înainte de PSET 1, dacă nu ar fi mai degrabă. Bine. Deci, ne-am uitat, luni, la codul sursă, dar în contextul unei noi limbaj de programare, și anume C și C, spre deosebire de Scratch, nu este grafic. Nu e puzzle piese. Este sintaxa mai mult limba engleză-ca. Și există o serie de etape implicate în fapt, scris și rulează un Programul în C, deoarece, pe lângă sursa cod ca aceasta, ai nevoie de ceva numit un compilator. Și în termeni de nespecialist, ceea ce face un compilator pentru noi? Da. STUDENT: Acesta convertește codul care scrie la 0 si 1. DAVID MALAN: Bine. Deci, se convertește codul care ne scrie la 0 si 1. Acesta convertește așa-numitul cod sursă pentru cod obiect, din care acesta din urmă arată ceva ca asta. Și e CPU, creierul din interiorul computer, că, din cauza persoanele care au creat aceste computere, știu ce aceste secvente de medie 0 si 1. Poate că aceasta înseamnă de imprimare. Poate că aceasta înseamnă plus. Poate că aceasta înseamnă scădere. Poate că aceasta înseamnă afișa un grafic. Există modele predefinite de biți că lumea a decis înseamnă anumite lucruri. Dar pentru cea mai mare parte din acest curs, vom lucra la un nivel superior, și vom lua de la sine că există lucruri cum ar fi compilatoare, care poate face funcția noastră codul sursă în modul în care ne-am propus. Astfel încât programul am scris prima săptămâna trecută și apoi a început să port, așa să vorbesc, să C această trecut Luni, a fost aceasta. Când steagul verde clic, salut. Acest lucru a fost, desigur, scris în Scratch. Și am pretins că echivalentul Programul în C uitat un pic ceva de genul asta. Deci, ce-am gândit să facem la prima este, hai sa tachineze pe langa ceea ce pare, la prima vedere, desigur, ca destul de arcane sintaxa, dar veți începe să observați modele destul de repede. Ce vom face, de asemenea, astăzi este de a oferi te cu un model mental pentru unele canonic, unele construcții standard de în programare. Și apoi vom obține de fapt, mâinile noastre murdare cu unele exemple. Deci, pentru cei dintre voi mai confortabil, dau seama că în această săptămână și apoi viitoare săptămână poate fi foarte bine un pic de revizuire. Dar mai ales atunci când ediție hacker a problemei set 1 iese pe site-ul curs, vineri, eu nu cred veți găsi că, chiar în timp ce completați unele spații în următorii săptămână sau două, veți începe să obțineți mai mult contestat și se confruntă lucruri noi și mai noi. Așa că haideți să tachineze acest program în afară câteva linii la un moment dat. La foarte de sus, avem ceea ce-i numit punct de vedere tehnic Directiva preprocesor. Aceasta este doar o linie de cod care spune pentru a include conținutul unui fișier, numitul standard I / N, standard de intrare - sau, îmi pare rău, I / O standard, standard, intrare / ieșire,. h, în interiorul de propriul meu program. Deci, cu alte cuvinte, în cazul în care am scris acest program cu un editor de text simplu, cum ar fi gedit, echivalentul simplu de ceva de genul Microsoft Word, care instruire, # include stdio.h, este doar să-i spun compilator, apuca Conținutul de celălalt dosar, stdio.h, și lipiți-le chiar aici. Acum, ce-mi pasă? Ce am pretinde în interiorul acestui fișier numit stdio.h, care este stocat undeva pe hard-disk, sau în acest caz, undeva în CS50 aparat? Cineva la pus acolo pentru mine. Dar ce e în ea? Da, așa că este o declarație de o funcție numită printf. Amintește astfel printf funcția pe care afișează cuvinte și caractere și Numerele de pe ecran de la licitare mea. Dar eu nu l-am scris. CS50 nu-l scrie. Ani în urmă cineva a scris-o, și ei în esență, ne-a dat reteta pentru ea într-un fișier numit stdio.h. Astfel că prima linie doar dă-mi acces a funcțiilor că altcineva a scris cu ani în urmă, printre care sunt printf. Acum, linia următoare am de gând să val meu parte la, cel puțin până săptămâna viitoare. Dar pentru acum, știu că int main (void) este în esență, echivalentul acestei piesa de puzzle galben când steagul verde clic. Lumea, cu ani în urmă, a decis că în cazul în care ai scris un program în limbaj numit C, de a începe programul cu o linie care arata ca asta. În doar aproximativ o săptămână, se va face sens ceea ce Int este, ceea ce este nul. Dar pentru acum, cred că doar de ea ca această piesă de puzzle galben. Acum viitoare, avem o proteză cret urmat de către un alt aproape bretele cret, ca să spunem așa. Și vom vedea acestea de-a lungul programe în C, precum și JavaScript și PHP. Și acestea incapsuleaza doar linii legate de cod. Deschis bretele buclat în esență, spune, aici vine un cod. Și bretele buclat închis, care este în unghi, în cealaltă direcție, doar înseamnă, că e pentru codul relevant. Deci, linia de suculent în această primă Programul este ultimul, printf, citez, salut lume. Și am sunat la lucru între citate ce ultima oară? Deci, este un șir. Și un șir este doar tehnician Termenul pentru o secvență de caractere, un cuvânt, o frază. Chiar și o singură literă ar putea fie dublu citat. Dar este o secvență de zero, sau mai multe caractere. Backslash-n, deși, pare un pic ciudat. Dar însemna pur și simplu ceva simplu la calculator. Ce-i backslash-n? Linie nouă. Deci, asta e doar secvență specială de caractere că lumea a decis înseamnă a pune un sfârșit de linie chiar acolo, deoarece compilatorul va primi de fapt, confuz, de obicei, în cazul în care aveți, foarte de înțeles, dar incorect, doar începe apăsarea Enter pentru a pune noi linii de cod. Aveți nevoie pentru a fi un pic mai mult explicite cu backslash-n. Și vom vedea acolo este un alt astfel de câteva modelelor de caractere speciale. De exemplu, dacă ai vrut să vă lăsați minte umbla la un caz colț, presupunem că am vrut să imprima o Citat dublu de pe ecran pentru indiferent de motiv, care ar părea să fi un pic problematic, nu? Pentru că dacă am pus un citat dublu în mijlocul de "Bună ziua, lume," pentru orice motiv, de ce se pare că potențial problematice? Se rupe șirul. Compilator este doar un program. Un program ca un compilator este doar de gând pentru a citi de sus codul de fund, la stânga la dreapta. Și dacă vede trei ghilimele în loc a doua, ea nu va sti dacă vrei să spui că ceea ce la stânga ar trebui să fie șir, sau de lucru pentru a dreapta, sau totul. Este ambiguu, și deci ceea ce un tipic compilator ar face este doar speria, și vă va oferi un mesaj de eroare, și te fac să se ocupe de problema. Deci dat fiind că backslash-n înseamnă o nouă linie, ceea ce ar fi instinctele tale acum începe să fie, dacă ai vrut să includă ceva anormal ca un dublu cita în interiorul acestei altfel citat șir? Backslash-ghilimele. Și astfel vom vedea acest lucru un fel de model prea. Dacă vrei să faci ceva un pic ciudat, veți găsi că Soluții de multe ori urmeaza un tipar, și backslash denotă o secvență de evadare. Și aceasta înseamnă doar ceva special care trebuie să reprezinte într-un mod diferit. În ceea ce privește modul în care te reprezinta o bară oblică inversă, ei bine, vom reveni la asta. Dar răspunsul, de asemenea, este de fapt un pic evident. Așa că haideți să introducă acum o altă constructe de programare că ai văzut în Scratch. Probabil le-ați luat pentru a acordat deja, dacă ai deja scufundat în Problema stabilit 0. Dar hai să introducă acum sintaxa din C pentru acestea altfel destul de intuitiv idei, cel puțin unele dintre ele. Deci, această noțiune de o condiție sau o filială, în timp ce anterior am a reprezentat-o ​​cu cod care arata ca asta de pe partea stângă în Scratch - dacă x este mai mic decât y, atunci spune asa - în schimb acum în C - lasă-mă perfecționa în cazul cel mai simplu pe - suntem pur și simplu să spun, dacă, deschideți paranteze, ceva este adevărat - un Expresie booleană este de gând să meargă unde am spus stare - paranteze de aproape, apoi face ceea ce-i în interiorul acestor acolade. Deci, aici, de asemenea, acolade sunt un fel de a Scratch Piese de puzzle în formă de U. Nu ceea ce este în interiorul acestor acolade. În acest caz, slash slash. Și că acest lucru este un atacant slash, nu o bară oblică inversă. Slash, slash, pentru cei care au programat înainte, înseamnă doar - e doar un comentariu. Un comentariu nu este o linie de cod, per se. Este o linie de limba engleză care, umană, s-au scris la tine pentru a poate vă reamintesc să faci ceva, să explica pentru tine, pentru a explica altcineva, ceea ce codul dvs. este de a face. E doar un comentariu descriptiv. Acum, desigur, putem avea un mod de două- furculiță în drum doar de a face acest lucru, o trei căi furculiță în drum de a face acest lucru, iar dacă veți continua acest model, puteți avea patru căi, cinci-way, șase cai furci din drum, dacă trebuie să se ocupe, într-adevăr, că multe condiții. Și apoi observați paralelismul aici - în cazul în care (condiție), else if (conditie), și singurul care e un pic ciudat este ultimul, care este doar că altcineva. Dar, din nou, acest lucru este identic, conceptual, pentru ceea ce am făcut deja, deși sintaxa va ia un pic sa va obisnuiti. Acum, în acest exemplu, există o altă sintaxă ciudat. Vedem printf din nou, paranteză deschisă, și Paranteză închisă. Și interioară nu există un șir citat. Paranteze, în contextul de printf, du-te la stânga și dreptul de ce? Ce vom descrie că citat șir ca fiind mai general? Deci, este un argument. Oricând aveți o funcție, cum ar fi printf, iar apoi o paren deschis și un paren aproape și ceva în interiorul ea, indiferent dacă este un șir, sau o întreg, sau orice altceva, lucru în între aceste paranteze se numește un argument. Și un argument doar influențează Comportamentul funcția lui. În acest caz, e destul de clar cum. x