DAVID MALAN: Acesta este CS50, iar această este începutul săptămânii unul. Și ceea ce ne-am gandit face este trage înapoi perdea de un dispozitiv care mulți de ai mers tu, probabil, trecut acum de ani de zile, dar niciodată, probabil, destul de cunoscut ceea ce este. Deci, acest dispozitiv va arata, probabil, familiar pentru majoritatea dintre voi de acum. [Redare video] -Un triumf de matematică și calificare mecanic este această mare nou calculator automat la Universitatea Harvard. Probleme complexe de matematică a pus prin masina sub formă codificată pe bandă sunt rezolvate cu precizie într-un minut fracțiune din timpul necesar pentru Calculul uman. Proiectat pentru a accelera toate formele de cercetării matematice și științifice, creier mecanic gigant va de lucru pentru Statele Unite ale Americii Navy până la sfârșitul războiului. [END redare video] DAVID MALAN: Deci, asta e ceea ce vedeți în Centrul de Stiinta, care este în cazul în care că aparatul este acum găzduit. Tu de fapt, a se vedea doar o parte din ea. Numai o parte este în prezent pe ecran, și că este un dispozitiv numit Mark I, și a fost în esență, un calculator foarte mare. Acesta a fost urmat de Mark II, și e de la Mark II, care suntem de fapt obține un pic de lexicon. Acesta este primul caz înregistrat de ceva esti pe cale de a deveni tot prea familiarizat cu peste parcursul semestrului - și anume, un bug. Deci, sa dovedit la un moment dat Mark Dispozitiv al II-lea nu a fost funcționează în mod corespunzător, și la o inspecție mai atentă, a existat într-adevăr o problemă - o molie - că molie - interior. Și, de atunci, ne-am referit la greșeli în programe ca bug-uri. Astfel mai mult pe care să vină. Vorbind de film, precum și, dacă te nu au deja, știu că CS50 este evident filmat. Prelegerile merge de obicei imediat după clasă într-un fel de pre-lansare format nemodificat, și apoi o zi sau două mai târziu, am pus o rezoluție mai mare și versiunea mai mare calitate. Poate vă amintiți Vanessa, care a avut norocul de a juca cu Google sticla, pe care mi-am amintit de taxa de data asta. Deci, dacă doriți să vină după clasa și să se joace, ei ar trebui să funcționeze în prezent. Și dacă doriți să vedeți ce Vanessa văzut de altă zi, ceea ce veți vedea aici - permiteți-mi să crească volumul aici pe laptop-ul meu. [Redare video] -Deci, lasă-mă să coadă este în sus. Bine. Deci atinge acest. Bine. OK, sticlă. Înregistrarea unui clip video. Bine. Vanessa? [END redare video] DAVID MALAN: Bine, deci motivul că nu au de lucru pentru majoritatea dintre voi la sfârșitul clasei a fost pentru că am procedat pentru a înregistra o oră de care imagini arătând spre mine după Mi-am pus ochelarii jos. Așa că astăzi, le voi lăsa pe, dar mulțumesc vă la Vanessa pentru a fi o astfel de sport bun. Între timp, un cuplu de anunțuri înainte de a merge înainte azi. Deci unul, CS50 are o tradiție de a face ceea ce putem pentru a încerca să facă o foarte clasa mare simt mai mic. Și spre acest scop, cele mai multe în fiecare vineri, ne-am adunat la un restaurant din pătrat, Foc și gheață, cu 30 sau 40 de colegii dumneavoastră, eu, o parte din cadrele didactice, și ne-am au un prânz foarte casual. Noi de multe ori invita prietenii din industrie, absolvenți ai clasei, absolvenți ai colegiu, într-adevăr doar pentru a discuta fiecare pe alții, vorbesc despre viața de după colegiu, viața în colegiu, și altele asemenea. Deci, dacă v-ar dori să ia parte la această Primul astfel de masa de prânz vineri, la 13:15, cap de care URL la un moment dat. Spațiul este limitat, asa ca vom face primul venit primul servit. Dar vom face acest lucru din nou, pe o recurente bază, astfel încât să nu vă faceți griji dacă nu face în acest prim lot. Acum, în ceea ce privește resursele furnizate curricularly de curs, există o mulțime întreagă, iar dacă nu aveți tras în sus site-ul cursului deja, în special, sub cursuri, veți găsi că totul am făcut săptămâna trecută este acolo, atât în film și un fel de formă electronică. Dar dincolo de clipuri video, veți găsi că în prezent există text integral transcrieri, de exemplu, de fiecare curs. Deci, dacă am merge de fapt, înapoi la acest ecran aici cu Vanessa, și navigați la colțul de jos al ecranului, veți găsi că, de fapt, nu pentru Curs de vineri, dar dacă ne întoarcem la Miercuri, întrucât această caracteristică are o câteva zile, veți găsi că puteți de fapt trage în sus, pentru o mai bună sau pentru mai rău, fiecare cuvânt pe care I sau un voluntar pe scenă spus. Și, mai mult decât atât. Puteți să-l căuta de fapt, puteți faceți clic pe oricare dintre aceste fraze, sari la acel moment, în film, tot spre și sfârșitul a face materialul tot mai navigabil. Dar dacă nu vrei să-l urmeze în astfel de detaliu, veți găsi, de exemplu, acest meniu mic aici pentru 1.5x viteza, viteza de 2x, sau i-am f deja vorbesc prea repede pentru tine, viteza de 0.75x. Deci dăm seama de ce este disponibile acolo pentru tine. Dar, dincolo de faptul că, pentru prelegeri, realiza pe care le face, de asemenea, aceste resurse disponibile, de asemenea. Slide-uri, de exemplu cod, nimic din ce am face pe scenă sau în avans de clasă, Vom posta acolo, astfel încât să puteți juca de-a lungul la domiciliu sau în Sanders. Dar ceea ce, de asemenea, am gândit să facem acest lucru an pentru prima dată, este, de asemenea, vă oferă cu walkthroughs din aceste exemple. Din ce în ce, așa cum am reflectat asupra Valoarea de prelegeri CS50 lui, am început la întrebarea cât de util este pentru voi să stea acolo, pentru mine să stau aici, și pentru mine să vorbesc la tine, în special ca material, exemple, devin mai complexe. Pentru că invariabil, după o serie de minute, cineva va fi zona de afară, și atunci ți-e dor ceva despre cheie a unor de exemplu, și apoi ești în esență, plecat pentru porțiunea rămasă din clasa, care nu este cea mai bună utilizare a timp, sau, într-adevăr, a noastră colectiv ca o clasă. Și astfel ceea ce am crezut că vom încerca să facem, în special pentru unele dintre cele mai exemple complexe, care s-ar putea să nu fac justiție la clasă, că nu s-ar putea au timp de la clasa, sau s-ar putea doar zona în timpul, este vom producem o serie de walkthroughs acestor exemple, astfel că, dacă te duci la, pentru exemplu, pagina filme vinerea trecută aici în exemple, veți vedea că pentru vineri, există acum acest link-ul de walkthroughs. Și formatul acestor se va schimba în timp. Pentru moment, suntem cu ajutorul unui simplu Lista de redare YouTube. Dar ceea ce am făcut cu echipa noastră de producție apoi sa mers pe jos prin fiecare și fiecare dintre aceste exemple din nou, sperăm subliniind în mult mai mare claritate exact ceea ce takeaways ar putea fi sau ar trebui să fie de la fiecare. Deci, veți găsi, de exemplu, de la ultima săptămână, toate exemplele de reîncărcare am trecut prin terminat liniar în acest mod. Deci, nu ezitați să se angajeze sau nu se angajeze în acest material. Într-adevăr o temă de acest curs special este că există, probabil, mai mult în modul de resurse decât tine ar putea absorbi, eventual, peste cursul unui semestru. Dar asta e în mod deliberat. Este menit să fie, astfel încât voi, ca studenții individuale pot auto-select bazat pe stilul tau de invatare. Deci, dacă prelegeri lucra pentru tine, mare. Dacă secțiuni de lucru pentru tine, mare. În cazul în care walkthroughs de lucru pentru te mai bine, mare. Este într-adevăr va fi de până la tine de a alege ce resurse funcționează cel mai bine pentru tine. În cele din urmă, datorită unui absolvent de Desigur, vom oferi, de asemenea, un canonic set de note de scrib. Deci, mai degrabă decât au căpetenii baieti în prelegeri zmângăleală jos lucruri care vin în clasă, noi, personal, vă va oferi cu ceea ce am simt sunt un set canonic de note de te elibereze de acea distragere a atenției, astfel încât Dacă sunteți aici și angajat, sunteți cu adevărat angajat cu ceea ce se întâmplă, cu colegii dvs. fac pe etapă, cu ceea ce este pe ecran, și nu pur și simplu scris cuvânt cu cuvânt ceea ce sa întâmplat a fost spus. Deci realiza toate aceste resurse sunt disponibile pentru tine. Secționare, ca răspuns la un FAQ, va începe în această miercuri. În esență, să așteptăm până după mai alte clase sunt realizate astfel încât să putem reduce numărul de modificări de care avem nevoie pentru a face. Dar vine în acest weekend, începând Duminică, va fi un timp instanță unul dintre ceea ce noi numim super-secțiuni. Acestea vor fi filmat pentru cei care nu pot participa, și, în esență, capete de curs ne va plimba prin intermediul unor din porțiunea C a cursului, spre capăt al problemei set unul, care va fi primul nostru C pe set problemă. Și acestea vor fi doar secțiuni opționale în anticiparea a ceea ce va devin punctele recurente au condus de curs de 50 plus predare semenii săptămânal. În zilele de duminică sau luni sau marți, ne- au secțiunile 90 minute într-o foarte sensul tradițional, care va fi oportunități pentru mâini pe și mai mult revizuirea intim al Materialul cursului. Fără alte introduceri, permiteți-mi să introducă capete ale cursului, care sunt în spatele scenei cu mine, a face tot ceea ce se întâmplă. Dacă cei care astăzi aici ma, Rob ar putea adera și Lauren și Iosif și Lucas, toate din care au fost cu curs de ceva timp. RJ este al treilea astfel de membru al echipei noastre. El nu a putut fi astăzi aici, dar el mi-a cerut să arate o fotografie de el. Nu sunt sigur că a vrut acest lucru unul, dar nu este. Si lasa-ma sa permite echipei să spun salut și să se prezinte astfel încât ajungi să-i cunoști ca și dvs. colegi de predare propriu acest termen. LAUREN CARVALHO: Hi. Numele meu este Lauren Carvalho. Sunt un tutore rezident în Leverett House. Sunt, de asemenea, foarte încântați să fie un TV cap pentru CS50 acest an. CS50 este o clasa foarte provocator, precum și ca o clasă foarte mare, așa că, dacă au dubii, dacă vă simțiți ca te care se încadrează în spatele, nu ezitați să ajunge la oricare dintre noi, la heads@cs50.het, sau pentru a-mi, dacă te-ar place să se joace cu aur meu Retriever cățeluș. Aici e Lucas. LUCAS FREITAS: Hei, băieți. Numele meu este Lucas Freitas. Sunt un junior [inaudibil] informatică și lingvistică. Sunt de fapt din Brazilia, și eu, de asemenea, realiza studii est asiatice. Deci, dacă aveți orice întrebări cu privire la informatică sau limbi sau nimic, doar să-mi spuneți. Sau CS50, în special. JOSEPH ONG: Hi. Eu sunt Iosif. Sunt un calculator senior studiu știința în Elliott House. Deci, să vedem. O să mă vezi în jurul transportă una dintre aceste camere uriașe. Sunt fotograf personal rezident pentru 50 de asemenea, și elevii de multe ori uneori ma confunda o turistică din Asia. Deci, dacă mă văd cu un aparat de fotografiat, Nu fugi. Zâmbește și nu fi timid. Și sper să vă bucurați de 50. M-am bucurat foarte mult când am luat-o, și de aceea am fost TFing pentru acești trei ani. ROB BOWDEN: Hi. Sunt Rob. Acesta este al patrulea semestru mea cu CS50. Tocmai am absolvit în luna mai. Am fost în Kirkland. Sunt emoționat pentru acest semestru, și sper că ești prea. DAVID MALAN: Vă mulțumesc pentru acest an capete, și la RJ precum. Deci, câteva note finale asupra resurselor. O, p 0 este stabilit deja. Aceasta exista doar în standardul Ediție, care este destinat pentru întregime de clasa. Începând cu p set 1, vor exista ediții hacker de cele mai multe seturi de probleme, care, din nou, va acoperi materialul cu un pic mai mult de o provocare, în timp ce încă atinge pe unele de aceleași subiecte. Nu luați o privire la site-ul cursului pentru care caietul de sarcini pentru p set de 0. Orelor de lucru, de asemenea, va începe în această săptămână, in seara asta, mâine, miercuri, și joi în diverse mese săli în campus. Check out cs50.net/ohs pentru birou ore de curs, și să realizeze acest lucru va fi oportunități foarte casual, cu siguranță, la începutul semestru, pentru a veni cu cu dvs. laptop în timpul pauzei de creier. Adu niște prieteni și chat- TFS curs si CAS cu orice întrebări pe care le-ar putea avea. Și eu nu pot sublinia suficient, chiar și pentru zero și problema set de 0, acolo într-adevăr există nici o întrebare prostească. Nu există nici un student nu prea inconfortabil de a pune întrebări. Vă rugăm să nu ezitați să profite a acestei resurse. Acesta va fi acolo recurringly pe parcursul semestrului, ca va discuta CS50. Aceasta este discuția curs on-line Forumurile de la acea adresă nu. Ce vom face, de asemenea, în timpul prelegerilor este monitoriza, de asemenea, acest lucru, datorită Echipa de predare cursului. Și deci, dacă aveți o întrebare în timpul prelegeri, pentru că am spus ceva slab sau nu la toate, prin toate mijloacele, cere că, în timp real, dacă aveți dumneavoastră laptop sau telefon de pe site-ul, și vom face tot posibilul, în timp real, aproape de răspund la asta. Există întrebări cu privire la CS 50? Apoi, unul ultimele note ale mele. Această problemă a SAT UnSat. După cum a finaliza cărți de studiu, dacă te nu au deja, dau seama că viziune globală a SAT UnSat, disponibilă pentru toți studenții, este într-adevăr pentru a ajuta ia de pe marginea unui curs ca aceasta, ca să spunem așa, astfel încât, dacă găsiți-vă noaptea târziu, 2AM, 3am, trage într-adevăr capul împotriva peretele pe care știi că ești 99% din drum la finalizare, dar tu au atât de multe alte lucruri de facut, Cred că o utilizare mai bună, de multe ori, de timp elevilor este de a muta într-adevăr la aceste alte lucruri, astfel încât să puteți optimiza timpul tot în jurul. Și SAT UnSat este un mecanism prin care puteți lua confort în faptul că 99% din modurile posibile încă naibii de bine. Similar, de asemenea, dacă ați venit în desigur, cu nici un fundal anterioare sau nu aproape la fel de mult ca tine fundal cred că colegii dumneavoastră ar putea avea, adevărata sau falsă, dau seama că aceasta este o posibilitatea de a obține mainile murdare cu timpul, a pus degetele de la picioare în de apă, ca să spunem așa, la fel ca m-am a făcut ani în urmă, cu admis / respins. Așa cum am spus săptămâna trecută, a avut acest curs, ca și alții, nu a fost disponibil pass / fail la timp, probabil că ar nu și-au intensificat vreodată piciorul în clasa, chiar dacă am făcut, cinci săptămâni mai târziu, schimba mintea mea, care poate la fel de bine, și de a comuta pe sau de la statutul clasificate scrisoare. Bine. Deci, ne-am uitat la lucruri de genul asta Vineri, și suntem foarte repede merge pentru trecerea la ceva care pare mai criptic azi. Dar este, totuși, aceeași idee fundamentală. Care a fost termenul general care le utilizat pentru a descrie o piesa de puzzle care arata ca aceasta? Deci, o declarație. Și puteți apela acest orice număr de lucruri. Dar vom numi doar o declarație, și o declarație doar spune programului - sau în caz de Scratch, Sprite - de a face ceva. Spune-i salut în acest caz. Ceva de genul asta ne în loc numit ce? Da, așa o expresie booleană. O expresie booleană este doar ceva că este adevărat sau fals, și așa răzuibile le atrage cu această formă, dar, de asemenea, cu un semn de întrebare pentru a transmite Ideea că răspunsul la această întrebare este fie adevărat sau fals, da sau nu unul, 1 sau 0. Și vom folosi aceste expresii booleene interiorul constructe ca acestea, care am numit ce? Deci, condiție sau o sucursală. Și starea vedeți aici în Scratch are un pic de substituent pentru o piesa de puzzle din care forma, scopul care este astfel încât să puteți glisați-o și fixați-l pe partea de sus și apoi dicta programul dacă acest Boolean expresia este adevarata, face acest set de instrucțiuni, acest set de declarații, altcineva face acest lucru un alt set de instrucțiuni. Și amintesc că puteți cuib aceste lucruri. Chiar daca nu e prea mult loc vizual în care piesa de puzzle, Scratch va crește și micșora pentru a se potrivi orice piese de puzzle vă trageți și plasați în acolo astfel încât să puteți de fapt, cuib acest lucru și au un mod furculiță trei în drum. În cazul în care, altfel, dacă, altfel. Și puteți merge chiar dincolo de faptul că prin cuiburi continuare și în continuare după cum este necesar. Deci, în cele din urmă, am văzut construcții, cum ar fi aceasta, altfel cunoscut ca o buclă. Și acesta este doar ceva care nu ceva nou și din nou și din nou. În acest caz, se întâmplă să fie un finit număr de ori, dar, de asemenea, a văzut, de exemplu, în cazul în care numărul de ori au venit de la o variabilă, așa că ar putea schimba. Și am văzut, de asemenea, un alt bloc cu totul numit un bloc pentru totdeauna că ne-a permis să bucla infinit de mult. Deci, un alt construct care răzuibile 2.0 are - si cei dintre voi mai mult confortabil cu fundal anterior sunt deja bine familiarizat cu acest construi - aceste lucruri am numit ce? Așa că am sunat aceste funcții, altfel cunoscut sub numele de proceduri. Există o mică diferență semantică, dar le vom doar funcțiile de apel. Și o funcție, în caz de Scratch, este o piesa de puzzle personalizat, care vă puteți crea, astfel că aveți o noua piesa de puzzle, care, în acest caz, ar fi numit tuse, care apare printre toate celelalte piese de puzzle disponibil în Scratch. Chiar dacă MIT nu a inventat această piesă de puzzle, ai făcut-o. Deci, o funcție vă permite să creați noi comportamentul, da un nume de funcție, și apoi apel, ca să spunem așa. Într-adevăr l folosească în programele din nou și din nou și din nou, fără a trebui să aștepte pentru cineva ca MIT pe drumul de a inventa noi funcționalități de la zero. Vă puteți construi aceste puzzle piese de tine, și apoi le reutiliza în propriile programe. Și vom vedea un exemplu recurent de care azi și mai departe. Așa că astăzi, am tranziție acum la ceva mai mult arcane. Dar la sfârșitul zilei, ceva mai puternic și expresiv și mai mult reprezentant de calea pe care vom fi pe tot parcursul semestru un număr de limbi - că de cod sau codul sursă. Și codul sursă, se pare, nu este ceea ce un calculator de obicei, de fapt rulează. Codul sursă arată ceva de genul asta. Deci, aceasta este, din nou, poate cel mai simplu Programul se poate scrie într-o limbaj numit C. Vom începe să tachineze acest afară înainte de mult timp, și în cazul în care acest lucru într-adevăr nu arata ca greacă chiar acum, ai încredere în mine. În termen de doar o saptamana sau doua de timp, acest va fi mult prea familiar și de fapt destul de reprezentativ de ce exemple complexe cu care veți De asemenea, se mai confortabil. Dar nu poate rula doar acest un fel de cod de obicei. Trebuie să-l transforme în ceva ce calculatorul se intelege pe sine. Și astfel pentru că, avem nevoie de ceva vom numi un compilator. Un compilator este un program care are codul sursă, cum tocmai ați văzut, ca intrare, și produce zerouri și cei ca ieșire, în caz contrar cunoscut sub numele de cod obiect. Și e acele zerouri și cele care s-ar putea arata destul ca asta, care în cele din urmă sunt înțelese de Mac-ul sau PC-ul. Dacă ați auzit vreodată de marketing expresie Intel Inside, că doar înseamnă că o companie numita Intel a fabricat creierul de computer - altfel cunoscut sub numele de CPU, unitate centrală de procesare - și că e doar un lucru pe care înțelege modele de zerouri și cele. Și astfel prin transformarea codul sursă în cod obiect prin acest proces aici că vom face cu o pereche de comenzi în doar un pic, esti crearea de modele de zerouri și cele că angajații de la Intel au a decis reprezintă anumite declarații. Acum, eu nu prea știu ce este ceea ce de abia se uite la aceste zerouri și cele. Cei mai mulți oameni în aceste zile nu. Dar undeva acolo este un model de zerouri și cele care reprezintă Declarația de imprimare. Undeva acolo ar putea fi un alt set de zerouri și cele care reprezintă noțiunea de totdeauna sau Repeta de 10 ori sau chiar miau, dacă este de fapt un program care poate includ unele sunete. Deci, pe scurt, oamenii au decis doar, de mult ca am facut pentru ASCII - pentru litere ale alfabetului săptămâna trecută - oamenii au decis că, chiar modele mai complexe de zerouri și cele reprezintă un comportament mult mai complex cum ar fi imprimarea sau spune sau meowing. Și astfel pentru ziua de azi, și în mare măsură mai departe în semestru, vom lua pentru acordată ca cineva a dat seama cum să faci asta cartografiere. Dar noi, în concordanță cu această idee de stratificare de la partea de sus a activității oamenilor care au venit înaintea noastră, se vor lua pentru acordată de faptul că acest lucru se întâmplă sub capota. Dar noi suntem mult mai interesați în de construcție lucruri care sunt mai mult interesant pe partea de sus a tuturor acest lucru. Și astfel, într-adevăr, primul program ne a scris în Scratch a fost acest super-simplu unul, Hello World. Și vă puteți gândi la acest lucru ca fiind Programul principal care guvernează lui răzuibile Comportamentul ca de vinerea trecută. Astăzi, vom începe să traducă Scratch piese de puzzle în codul sursă în acest limbaj numit C, astfel încât ceea ce arata ca acest lucru pe Vineri, începând de astăzi înainte, este acum va arata aceasta. Desigur, mai criptic. Este destul de distrag atenția și un fel de spirit amortire a vedea toate citate și virgulă și paranteze și așa mai departe. Dar dacă începeți să ignore orice nu inteleg, si arata foarte la esența text alb pe ecran, cu siguranță veți vedea, așa cum fac eu, "Bună ziua, lume." Că se aliniază cu Declarația violet sus sus, și se pare în care cuvântul cheie principal este de gând să alinia conceptual când verde steag clic. Deci, cu alte cuvinte, în timp ce în Scratch, vom pune în aplicare acest program Hello World cu cele două piese de puzzle, în C, am de gând să-l pună în aplicare cu acestea patru linii oarecum criptice. Dar, așa cum am arunca cu capul adânc în acest lucru, va vedea că fiecare dintre cei caractere albe pe ecran fapt, are o semnificație importantă, și cele mai multe dintre programele noastre sunt de gând să uite structural la fel. Deci o declarație, să fie clar, ceea ce arata ca "lumea spune salut" pe Vineri se va începe căutarea ca acest luni. printf ("Bună ziua, lume"). Și există un backslash ciudat n, există paranteze, există punct și virgulă. Dar la sfârșitul zilei, cheia Takeaway astăzi este că tot ce facem este traducerea lucruri de imagine forma de forma de text. Deci, o buclă care arata ca aceasta săptămâna trecută este de gând să se uite acum ceva de genul asta. Și lasă-mă să renunțe, la fel ca în Zero, există diferite moduri de a atinge același obiectiv. La fel, în C. Nu vă arată doar mod de a face lucrurile, dar într-un fel de a traduce aceasta pentru totdeauna bloca la o buclă în C. Acest unul aici, repeta de 10 ori. Acesta într-adevăr un fel de curbe minte prima dată când îl văd. Ci să pună în aplicare acea acum înainte, am de gând să utilizeze un pentru bucla, ca să spunem așa. Și în mod clar există unele sintaxa care este un mic areal cu I și egal si 0, dar odata ce am arunca cu capul în care azi înainte, tu esti doar de gând pentru a vedea că totul este pur și simplu face ceva aritmetica de bază pentru a ne obține de la 0 pe de până la 9 sau 10, în acest caz. În cele din urmă, cu variabile, vei aminti că o variabilă este o bucată de depozitare. Ei bine, ceea ce am avut pe stanga ultimul săptămână este de gând să arate un pic ceva de genul asta in aceasta saptamana. Dar, din nou, mai mult de pe care să vină. Am avut expresii booleene, care saptamana trecuta, arata ca aceasta. În această săptămână înainte, au de gând să începe să se uite un pic ca asta. Și asta e de fapt un pic de liniștitor. Este de fapt aproape la fel de simplu ca blocuri verde. Dar aici avem, din nou, unele noua sintaxă cu ampersand, dar puteți Poate că în timp ce în Scratch, te A spus-N-D, aparent în C, suntem O să spun ampersand ampersand. Dar toate acestea vor deveni naturale înainte de lung. Condiții. Săptămâna trecută, părea acest lucru pe partea stângă. În această săptămână, pe dreapta, este O să arate ca asta. Dar, din nou, Takeaway cheie aici este că cum veți vedea lucruri de genul asta pe dreptul, și mai ales în cazul în care mai puțin confortabil, e un fel de peste dvs. cap, veți obține un pic copleșit că N-am nici o idee cum am putut eventual veni cu că de la zero - nr joc de cuvinte destinate - doar dau seama că este într-adevăr la fel Ideea că, probabil, simțit atât de mult mai mult naturale în săptămâna precedentă. Și chiar dacă nu s-au scufundat în set de probleme 0, îndrăznesc să spun veți găsi că piesele de puzzle sunt destul de intuitiv, sau cel puțin devenit atât de-a lungul timpului. Deci, haideți să se scufunde inch Să ne murdărim mâinile aici cu Acest prim program simplu. Și simplu este, desigur, relativă. Pentru a face acest lucru, am de gând să schimbe ecrane pentru ca dispozitiv am sunat CS50 aparat. Aparatul CS50 este o bucată de software-ul care se execută într-un fereastra pe Mac-ul meu, și puteți rula, de asemenea, se într-o fereastră interiorul PC-ului, care îmi permite să aibă exact același mediu computer ca fiecare TF, ca fiecare CA, ca fiecare elev în clasa. Deoarece aparatul CS50 este literalmente un alt sistem de operare numit Linux - în special Fedora Linux - și noi, personalul, s-au configurat Procesul de instalare pentru această Sistemul funcționează în așa fel încât unul, E un mic CS50 logo-ul în Orientul Mijlociu, doi, exista un meniu personalizat la în partea de jos, și trei, pedagogic, am simplificat interfața cu utilizatorul ca mult posibil, astfel încât, atunci când boot-eze prima dată acest lucru pe cont propriu Mac sau PC, aveți aceeași mediului ca oricine altcineva, și tu au toate instrumentele de care aveți nevoie pentru curs, fără a fi nevoie să dau cum să instalați fiecare și fiecare instrument individual. Deci, acest lucru pare relativ cum ar fi Mac OS sau Windows. În colțul din stânga jos, vă au în esență un meniu Start de felul, sau un meniu Apple. Și atunci aveți ceea ce suspectul va fi de trei icoane cele mai comune. Una dintre ele este Chrome. Există un browser interior a aparatului. Doi este un program numit gedit, care am văzut pe scurt săptămâna trecută, care este doar un editor grafic. Și trei este un program de terminal, care este o fereastră în alb și negru din odinioară, care ne permite să tastați mai mult Comenzile Arcane dar mult mai puternic la tastatură nostru. Așa că am de gând să merg mai departe și faceți clic pe gedit, și fiți siguri că problema set 1, pentru a fi lansat vineri, va te plimbi prin toate aceste etape aceleași. Observați că am o destul de simplu interfața cu utilizatorul cu trei părți. Pe stânga, am un mare gol fereastră numită codul sursă. Acolo am de gând pentru a vedea un rezumat de orice cod care scriu. Pe partea dreapta, am o mare fila, nemântuit în prezent, și că este în cazul în care codul meu va merge. Și pe partea de jos, am o încorporat Fereastră terminal, un alb-negru prompt la care am posibilitatea să tastați comenzile la compila și pentru a rula programele mele - că este, de a face și de a rula programele mele. Așa că haideți să începem simplu. Lasă-mă să merg până la File, Save. Am de gând să merg mai departe și du-te în jharvard. Deci aparat, indiferent de ce numele tau este, aparține unui tip pe nume John Harvard, care are o casă jharvard dintre care director in toate dvs. fișiere va merge. Este propria copie a contului său, deci nu suntem toți de partajare În același hard disk. Trebuie doar iluzia din proprie John Harvard. În avans, am de fapt, instalat Dropbox. Aparatul vine pregatite dinainte cu Dropbox astfel încât, dacă ceva nu merge bine în timpul semestrului, dacă ați configurat aparatul cu un liber Cont Dropbox, toate fișierele vor fi în mod automat susținute, astfel încât să le poate recupera foarte usor. Și am de gând să merg în Dropbox mea director, și nu există deja merge să fie un cuplu alte lucruri acolo. Dar am de gând să merg mai departe și du-te la File, Save. Am de gând să meargă în jharvard, Dropbox, și aici, am de gând să da programul meu un super-simplu nume, hello.c, și apoi salvați. Așa că am aceeași interfață acum. Singurul lucru care sa schimbat este fila sus. Deci, eu sunt foarte repede va recrea că programul de slide-uri acum o clipă. Deci în principal (nule), iar apoi printf, "Bună ziua, lume," o oarecum criptic backslash n, citat de aproape, închide paranteze, punct și virgulă, iar apoi Ctrl S pentru a salva. Și observați ca o parte ce sa a aparut aici, pe partea de sus stânga. Și acest lucru nu este util astăzi, dar vor fi utile în timp. Tu vezi doar, din nou, un rezumat al cod pe care le-ați scris. Și pentru că am scris ceva numit principal, de aceea cuvântul principal mi-a venit sus acolo. Dar în cea mai mare parte, ne Nu am nevoie de asta azi. Bine, așa că am susțin că acest lucru este meu primul program scris într-o programare limbaj numit C. Știm de vineri că ceea ce acest lucru este de gând să faci foarte uninterestingly când am rulați este doar afișa - cu alte cuvinte, imprima, ca un calculator om de știință s-ar spune - Bună ziua lume pe ecran. Deci, pentru a face acest lucru, veți observa că am pentru a merge aici la terminalul meu fereastră, iar acum am o clipește prompt. Dar aceasta este acum o versiune tastatură de directorul meu John Harvard acasa. Este o modalitate de tastatură prin care pentru a naviga hard disk mea. Deci, eu nu pot tip de fapt, așa cum am făcut-o săptămâna trecută să salut, pentru că este O să spun o regulă pentru a face țintă - ceva e în neregulă. Nu prea stiu ce mesaj înseamnă, dar asta pentru ca, în mod implicit, atunci când această fereastră alb-negru este deschis, eu sunt în interiorul John Harvard directorul home. Dar de unde am salva acest program? În dosarul meu Dropbox. Acum, toți dintre noi au crescut cu calculatoare în cazul în care doar dublu clic pe pictograma unui folder, acesta deschide, și voila. Asta în cazul în fișier numit hello.c ar fi. Deci, în fapt, hai să facem asta. Lasă-mă să merg mai departe și pentru a minimiza gedit la fel ca tine ar fi pe Windows sau Mac OS. Dă-mi drumul in casa director in stanga sus. Voi vedea aici o grămadă de dosare. Aici e dosarul meu Dropbox. Checkmarks înseamnă că a fost sincronizate. Și există câteva lucruri în aici, dar observa că hello.c este într-adevăr acolo. Și astfel, în Mac OS sau Windows, în mod normal, Aș faceți clic dublu, acesta se deschide în indiferent de program, și eu sunt bine să plec. Dar acum, cel puțin începând de astăzi, am trebuie să facă un pas înapoi doar pentru a vă dau câteva instrumente de bază pentru dvs. Setul de instrumente cu care să facă mai mult lucruri puternice înainte de lung. Deci, la acest prompt, eu trebuie să fac echivalentul dublu click pe Folder Dropbox. Și de a face acest lucru, am de gând să introduceți CD-ul de schimba director, Dropbox, intra. Și observa acum paranteze la mea așa-numita prompte spune acum că eu sunt în tilda, puțin ondulate simbol în partea din stânga sus a cele mai multe tastaturi, / Dropbox. Aceasta este doar notație prescurtare pentru spune umană, sunteți acum în interiorul folderul Dropbox, la fel ca și cum ai fi făcut clic dublu pe ea. Deci, acum, dacă am merge mai departe și tastați face Bună ziua, intră, văd o foarte criptic comandă, dar nu un mesaj de eroare, se pare, și apoi un alt clipește prompt. Și dacă vă amintiți, tot atât de repede vineri, am făcut asta. . / Bună ziua. Ceea ce esti pe cale de a vedea este rezultatul de funcționare mea acestui program, sau, în Mac OS și PC punct de vedere, dacă aș dubla în mod normal faceți clic pe un program - o aplicatie. program sau un. exe, acesta se deschide o fereastră și se execută. Tastarea / salut. Este la fel ca dublu clic pe un program pentru a rula, dar folosind tastatura mea. Introduceți, salut lume. Și asta e tot. Așa că haideți să tachineze acest afară de așa nu se simt prea mult ca greacă. Deci. / Ce înseamnă? Oricine care a navigat vreodată o tastatură Mediul ca aceasta, ceea ce este punct referindu-se la? Directorul curent. Deci, directorul curent este doar un sinonim pentru un folder. Deci, spunând punct slash, eu spun, uita-te pentru un program numit salut în directorul curent - în folderul curent. Cu alte cuvinte, dosarul meu Dropbox. Și de aceea apăsarea Enter ulterior de fapt, ruleaza acest program. Dacă aș LS acum tip, observa că văd totul în dosarul meu Dropbox. Noțiuni de bază Started.pdf, care Dropbox vă oferă gratuit, fotografiile mele director, un director public, nesalvate Documentul 1 care l-am făcut din greșeală o în urmă clipă, foo.c, ceea ce am făcut mai devreme astăzi, iar apoi două linii - hello.c și salut. Hello.c este programul l-am scris cu gedit, și ceea ce este salut în verde? Salut în verde este executabil. Cu alte cuvinte, atunci când am fugit această comandă Acum o clipă - permiteți-mi să se rostogolească înapoi în timp - Când am fugit să salut, că este pas de mijloc aici. Și a luat hello.c ca date de intrare - Codul sursă AKA - și a produs un fișier numit salut în calitate de ieșire, care conține toate aceste zero si unu. Și de aceea, în cele din urmă, pot de fapt executați o comandă cum ar fi / salut.. Din cauza Intel Inside, de operare meu sistem, Linux, deschide acele zerouri și cele, le hrănește în creierul meu calculator - CPU - și că CPU știe, oh, aici e un model de zero-uri și cele care spune imprima următorul lucru de pe ecran. Care este următorul lucru? Citat citez, "Hello World." În regulă, deci un scurt rezumat al unora dintre aceste comenzi, astfel încât să putem începe le ia pentru a acordat. Lasă-mă să treceți la de unde am rămas. Și veți aminti că am avut CD la spatele nostru se încheie acum o clipă. Acestea sunt, îndrăznesc să spun, pentru scopuri de azi - Poate că în această săptămână - singurele comenzile noi ar putea avea nevoie să tastați la comanda cere în afară de a face. Deci, CD stat pentru ce? Schimba directorul. E doar echivalentul a dublei faceți clic pe un dosar. Și, ca o paranteză, dacă te pierdut vreodată în interiorul dvs. aparatul, astfel încât Dropbox - Vreau să mă întorc la meu Director jharvard - atunci când în dubiu, CD, introduceți, cu nici un alt cuvinte, și doar fermoare te înapoi de unde ai pornit, care este o comandă rapidă drăguț. Bine, deci acum alte comenzi. LS. Am scris că în urmă cu o clipă. Ce crezi LS vine de la? Deci, lista, nu? Pe vremuri, când oamenii veneau cu aceste comenzi, acestea au încercat să fie eficient, și mai degrabă tip de L-I-S-ENTER, ele a decis LS. Asta e bine. Se pare destul ca lista. Hai să LS tip intra, și că listează fișiere sau foldere în mea dosarul curent. mkdir, puteți ghici, probabil. Face directorul. Deci, nu te duci la un meniu de fișiere și selectați Dosar nou în acest mediu. Mai degrabă, tastați spațiu mkdir comanda și apoi numele folderului pe care doriți să creați, și se va face. rm, puteți ghici, probabil. Elimina sau șterge. Deci, dacă doriți să ștergeți un fișier, veți a se vedea în setul problema cum te poate face acest lucru. Și rmdir, scoateți director. Deci, din nou, eu tind sa zboare prin intermediul unor de aceste detalii,, pentru că ei nu sunt tot ceea ce distractiv de mult să-și petreacă timp, dar două, vă vom oferi în mult mai detaliat în oricare dintre Problema cursului stabilește, în special edițiile standard, oricare dintre pașii care ar putea avea nevoie să tastați atât de pe care le obține mai mult și mai mult confortabil cu aceste lucruri. Dar acum, permiteți-mi să tachineze pe langa un alt lucru. Când am scris să salut acum o clipă, am văzut o secvență criptic de comenzi. Am văzut, din nou, să salut. OK, hai sa facem acest lucru. Am fost pe cale de a face o greșeală, dar [Inaudibil] acum recunosc că am fost pe punctul de a și o fac în mod deliberat. Ce am făcut greșit chiar acum? Da, deci eu nu sunt în Dropbox director, deoarece un moment în urmă am CD-ul tastat și doar a lovi Enter. Asta mă mărit din nou de unde am pornit, ceea ce nu este cazul în care dosarul meu este, așa că am într-adevăr nevoie pentru a face CD-ul Dropbox intra, iar acum pot să fac salut rm intra, eliminați fișierul regulat salut. Nu știu de ce este atât de criptic. Asta înseamnă că ești sigur doriți să ștergeți Alo? Aveți posibilitatea să tastați y pentru Da, intră, și acum a dispărut. Și acum, dacă tastați face salut din nou, este va recrea codul meu obiect, recrea acele zero si unu. Dar ceea ce este treaba cu această comandă foarte mult? Ei bine, vom sicana acest lucru în afară Înainte de mult timp, dar face - I-am spus un pic de o minciună albă înainte - nu este un compilator. Face este un program care în mod automat seama cum de a rula un compilator pentru tine. Deci, porunca pe care într-adevăr ar trebui să fie de funcționare, în scopul de a converti hello.c în salut arata de fapt un pic mai mult ca aceasta. Și Doamne ferește, trebuie să de fapt, amintiți-vă să tastați vreodată că tot Secvența de comenzi tunel. Scopul de a face în viață este de a amintiți-vă că gradul de complexitate a noi și automatizarea ce ar fi altfel fi pași foarte obositor. Dar pot aproxima că. Deci, pe această foaie de ieftin puțin aici, am poate aproxima că ceea ce comandă este face pur și simplu prin tastarea zăngănit, care este numele de compilator vom fi folosind acest semestru. Dacă vreunul dintre voi ați făcut vreodată iOS dezvoltare pentru iPhone sau iPad, Zăngănit este programul care le-ați folosit în Xcode pentru a face aplicațiile dvs.. Clang, însă, este doar un alt program al cărui nume se poate introduce la comanda prompte, și prin introducerea acest lucru acum, Pot să prezint ceva care este un Reprezentantul puțin de comenzi pentru a veni. Deci, lasă-mă să fac acest lucru manual. Deci rm Bună ziua, și observa acum în cazul în care Eu, la fel ca și verifica un bun-simț - . / Bună ziua, ce crezi că am ar trebui să vedeți dacă am face acest lucru? Un fel de eroare. Director nu fișier, cum ar. Astfel că unul este de fapt destul de directă. Deci, acum, permiteți-mi clar pe ecran. De control S șterge doar pe ecran pentru a elimina unele distrageri. Și acum am de gând să manual tip clang-o salut hello.c. Deci, despre ce este vorba de a face? Exact același lucru care face făcut pentru noi, dar am aruncat o parte din cuvintele de prisos. Zăngănit este programul care va ia-o. c fișier ca intrare și produc zero si unu ca ieșire. Dar-o acum înainte va numi un comutator sau un steag. Aceasta este doar jargon tehnician pentru a spune acesta este un cuvânt pe care îl tastați, la un prompt care influențează într-un fel comportamentul de programul pe care îl rulați. Deci, nimeni nu vrea să ghicesc ce-o transmite? De ieșire. E doar cineva a decis-o înseamnă ieșire un fișier numit salut și să ia ca intrare indiferent de ultimul cuvânt cu privire la promptă este, hello.c, astfel încât, dacă am lovit Introduceți acum, nimic nu pare să se întâmple. Și destul de ciudat, în această lume de de programare, în cazul în care nu se întâmplă nimic, că este, probabil, un lucru bun pentru că nu există nici o eroare Mesajul de pe ecran. Bună ziua, Enter. Programul meu a alerga acum. Dar eu pot face lucruri stupide cum ar fi aceasta. clang-o, hihihi, hello.c, intra, iar acum am un identică Programul numit hihihi. Acesta se comportă la fel, dar numele este diferit. Deci, aceasta este doar să spun că, dacă doriți pentru a influența comportamentul unui Programul, vom tot vezi lucruri numite argumente în linia de comandă. Aceasta este o linie. Ce tastați comenzi. Ergo, linia de comandă. Și parametri sunt doar cuvinte sau bucăți mici de sintaxă care influența într-un fel comportamentul programele pe care le execută. Bine, că este, probabil, cel mai Programul de plictisitor, putem scrie și să vedem. Să facem acum ceva mult mai interesant. Lasă-mă să merg mai departe și de a crea un nou fișier. Am de gând să merg mai departe și de a salva acest lucru în Directorul home John Harvard ca, să-i zicem custom.c, să fie un mic program personalizat. Am de gând pentru a mări în partea de sus a mea filele de aici și începe din nou. Include stdio.h standard. Mai multe despre faptul că într-o clipă. int main (void), mai mult pe că într-un moment. printf ("Bună ziua, David"). Mult mai interesant, nu? Deci, acum, dacă - nu din cauza numelui meu, doar pentru că este diferit - face personalizat intra. Personalizat, salut, David. Dar chiar și faptul că, de asemenea, este o minciună albă. Acest program ar putea fi la fel de bine numit david.c, pentru că nu este personalizat Comportamentul la toate. Într-adevăr, vreau un program care cere utilizatorului pentru numele lor. Deci, cum fac asta? Ei bine, lasă-mă să derulați în sus pe aici. Și înainte de a utiliza o declarație în Zero, înainte de a folosi printf, altfel cunoscut ca o funcție, lasă-mă să Primul cere utilizatorului pentru unele de intrare. Deci, pentru a face acest lucru, trebuie să face un cuplu de lucruri. O, am nevoie de un loc pentru a stoca utilizatorului numele după ce l-am rugat sau o pentru ea. Ce CONSTRUCT am nevoie pentru a utiliza, probabil, pentru a stoca o valoare de genul asta? O variabilă. Deci, spre deosebire de Scratch, în cazul în care obține doar o frumos piesa de puzzle, aici, trebuie să utilizarea, în mod evident, cuvintele la ne exprima. Și de acum înainte, oricând doriți o cuvânt sau o frază, în programarea, vom numi ca un șir. Deci, un șir este un cuvânt sau o frază. Este o secvență de zero sau mai multe caractere, mai mult formal. Și, dacă doriți o astfel de variabilă a există, trebuie să spui da-mi unul. Și modul prin care poți face asta este să spune șir s punct și virgulă, unde s poate fi tot ce vrei. De fapt, s este un pic underwhelming. Lasă-mă să merg mai departe și mai mult este numele de apel în mod clar. Dă-mi un șir numit nume. Dar acum, ceea ce este persoana de Numele implicit? Ei bine, dacă omul nu tastați nimic in, evident, nu se întâmplă să fie nici o valoare în nume. Și se pare că în C, dacă nu dau o variabilă de valoare, se va au o valoare de gunoi. S-ar putea avea unele zerouri aleatorii și cele, deci esti doar de gând să vezi gunoi, într-adevăr, pe ecran dacă încercați să-l afișeze. Dar eu pot rezolva ca prin a spune, de fapt, magazin în interiorul numelui după valoare. Felul în care vă stoca valori în variabile este dacă aveți un nume de variabilă pe stânga, trebuie să puneți într-un fel ceea ce doriți să stocați în ea pe dreapta, și sintaxa pentru că se întâmplă a fi, după cum urmează. Noi nu am văzut acest lucru înainte, dar ia pe credință pentru o clipă că există există o altă declarație în lume că am de gând pentru a apela din nou funcția, iar această funcție este numita obține șir. Și-l face literalmente acest lucru. Ea devine într-un fel o secvență de caractere de la om și apoi face ceva cu ea. Și acest lucru nu arata ca sintaxa criptic. În mod normal, dacă utilizați semne egale - vă aflați în lume, să zicem, algebra, si tu esti de fapt spunând x este egal cu 1. Aici noi nu spunem că Numele egal obține șir. Spunem magazin în numele ce- pe partea dreaptă din care semnul egal. Semnul egal reprezintă operatorului de atribuire. Este sintaxa care spune că a pus ceea ce este pe partea dreaptă din interiorul ceea ce-i pe stânga. Deci, se string este o nouă piesă de funcționalitate care nu numai că ceva - cere utilizatorului pentru un șir - De asemenea, se întoarce, ca să spunem așa. Deci, haideți să vedem ce se întâmplă să se întâmple aici. Am de gând să merg mai departe acum și zoom out, și am de gând pentru a obține un cuplu de greșelile de la prompte mea. Am de gând să tastați face personalizat, intra. Wow. O grămadă de greșeli. În regulă, deci asta este un fel de copleșitoare, cu siguranță, la început, dar se pare că toate acestea foarte Desigur mesaje de eroare criptic sunt referindu-se la unele modele care vom începe pentru a vedea în timp. Deci, asta voi smulge, pentru că este în primul rând. Utilizarea șir de identificare nedeclarate. Asta înseamnă că gedit, sau zăngănit, în acest caz, nu știe Ce vreau să spun prin șir. Și asta pentru că, în C, de programare limbă, există de fapt, este o variabila de tip string. C nu știe că există siruri de caractere. Dar noi, CS50 personal, nu. Și astfel în avans de clasă, am a creat un fișier numit CS50.h. Și în interiorul acestui dosar - și mai mult pe sintaxa să vină - în interiorul acestui fișier este o definiție din ceea ce am definit verbal ca un șir. Deci, pur și simplu, prin încheierea acestui linie unul de cod în programul meu, eu sunt acum predare gedit și să facă și zăngănit toate la rândul său, ceea ce este un șir. Nu știu cum încă. În câteva săptămâni, vom coaja înapoi ca strat. Dar pentru acum, știu că acest învață compilatorul ce un șir de fapt este. Deci, acum, permiteți-mi clar meu terminale aici. Lasă-mă să re-rula face personalizat, și eu rezolvat toate aceste probleme. Deci acest lucru, de asemenea, se va fie o temă recurentă. Am scris doar un program de 9 linii, și dar am avut 18 de linii de erori. Asta e un fel de intimidare. Dar dau seama că ei cascada de multe ori astfel de că o mică greșeală declanseaza confuzie pentru compilator, și se pare mult mai rău decât este. Deci, acum un observator atent va ști că Primesc un șir de utilizator, dar eu nu sunt de fapt face ceea ce cu ea? Nu mă face de fapt nimic cu ea. Deci, dacă am rula de fapt personalizat din nou, se va doar să stea acolo. Ce se întâmplă? Programul meu pare a fi blocat pe ce linie, ai spune? Deci, este de fapt blocat pe linia 7. Și noi nu am văzut acest lucru înainte, dar pe linia 7, nu e, din nou, acest lucru afirmație, se șir. Și ea face ceea ce spune. Se așteaptă acum pentru om să ia șir. Acest lucru este complet unintuitive pentru mine, umană, pentru că nu am fost spus ce să facă. Dar lasă-mă să merg mai departe pe credință și permiteți-mi să pretind a fi Rob. Enter. Asta nu e programul am vrut. Deci avem primul nostru blog. Dar haideți să încercăm să motiveze prin de ce acesta este cazul. În primul rând, permiteți-mi rezolva această primă problemă. Permiteți-mi să adăugați o linie de aici care spune printf, ceea ce este numele tau? Hai să facem Citat de aproape, Paranteză închisă. Acum, lasă-mă să re-rula programul. Problemă. Nu văd asta. Dreapta. Nu l-am recompilare. Deci, într-un limbaj ca C, pentru că schimba codul sursă nu înseamnă pe care le-au schimbat codul obiect pentru a genera cod obiect nou, noi zero si unu. Trebuie să recompilați. Dacă eu acum re-rula personalizat, introduceți, ah, un pic mai clar. Numele meu este Rob. Încă buggy. Și aș spune că e câteva bug-uri acum. Acest lucru arată doar hidos, sincer. Ca, minim, ar trebui să aibă un spațiu acolo, sau mutați cursorul la noua linie. Și, de fapt, noua linie. Asta e un fel de fraza cheie aici că am văzut, dar nu este definit. Modul în care veți obține un text pentru a trece la următoarea linie, tu nu faci acest lucru. Aceasta este încurcată la calculator. Acest lucru arata ca două linii separate de cod, nici de care este perfect corect. Ai în schimb trebuie să fie mai explicit și spune, da-mi o nouă linie, pe care le reprezintă în C cu backslash n. Deci, există câteva astfel de caractere. Backslash n va stabili că estetică. Permiteți-mi să recompilați programul meu. Lasă-mă să re-rula programul meu. Aceasta arata mai bine. Este încă destul de primitiv, dar este, de asemenea, încă buggy. Deci, există un singur - chiar dacă nu ați programat înainte, puteți lua, probabil, o presupunere la ce acest program este în continuare greșită. Ce trebuie să fac ca Nu am făcut încă? Deci, ce trebuie să fac de fapt, ceva cu nume. La fel ca la zero, s-ar putea de fapt atribuie o variabilă ca n sau contracara cum am facut ultima saptamana - o valoare. Dar dacă nu faci nimic cu ea, nimic nu se va întâmpla. Bine, asa ca lasa repara. Permiteți-mi să tastați variabil mea acolo, și lasă-mă să merg pe aici. Lasă-mă să recompilați, lasă-mă să re-rula, Rob. Acum, eu sunt doar un idiot, nu? Deci, acest lucru nu este adevărat obtinerea ma mai departe. Dar asta a fost un perfect natural instinct, aș spune, nu? În cazul în care variabila este numit nume, și eu Vreau să merg acolo, de ce nu am introduceți-l acolo? Ei bine, desigur, avem pentru a distinge acum între ceea ce este un șir? Observați că citatul citat aici, Buna ziua? Acest fapt în sine este un șir. E greu codificate. Nu e de om. E de la mine, programator originală, dar este încă un șir. Deci, dacă ați scrie literalmente N-A-M-E în interiorul a unui șir, ce se întâmplă la obține imprimate? Bine, N-A-M-E. Avem în schimb nevoie de pentru a spune printf, nu se imprimă în literalmente nume. Imprima valoarea de nume. Și de a face acest lucru, facem următoarele. Și aceasta este doar o convenție umană. Noi spunem în schimb% s, și că standuri pentru șir. Și apoi, la sfârșitul meu citate apropiate, Am de gând să pună o virgulă și trece un al doilea argument în această declarație. Am de gând să introduceți numele acolo. Deci, acum observa, avem o ușor noua sintaxă. Încă mai avem două paranteze, și permiteți-mi să spun că de acum încolo lucrurile între paranteze reprezintă argumente într-o funcție - intrări, care sunt într-un fel vor pentru a influența comportamentul acesteia. Deci, prin care logica, cât de multe argumente printf pare a fi având în acest moment? Deci, se pare a fi a lua doi, și că este într-adevăr implicat prin virgula aici. Deci, acesta este un argument în între ghilimele. Chiar dacă are o virgulă în ea, totul e în ghilimele, ceea ce înseamnă este un șir lung. Virgulă, numele variabilei. Deci, acum lasă-mă să micșora. Lasă-mă să-l re-rula. Rob. La naiba, ce am gresit? În regulă, deci va trebui să recompilați. Deci, din nou, greșeli ușor de a face timpurie din nou și din nou pe. Deci, acum re-rula personalizate, Rob, intra, și voila. Avem acum un program personalizat. Asa ca acum am un program care folosind câteva caracteristici că sunt demn de remarcat. O, eu sunt, folosind CS50.h, altfel cunoscut sub CS50 biblioteca. Și în interiorul CS50 bibliotecii sunt Funcțiile pe care alte persoane au scris - și anume personalului - pentru tine de a utiliza, și să obțină șir este unul dintre ele. În interiorul liniei 2 este stdio.h, și de ce este acest lucru acolo? Ia-o presupunere. Ceea ce există în interiorul standard de IO părinte? Printf. Deci printf, nu-l văd nicăieri altceva de pe ecran. Ea trebuie să vină cu calculator într-un fel. În cazul în care nu provin de la? Este în interiorul - care este declarat, ca să spunem așa, în interiorul un fișier numit stdio.h. Acum, pentru chestia asta, ne vom întoarce a în cele din urmă, pentru că este un pic distrage atenția de acum. Aceasta se referă la tipul de returnare. Aceasta se referă la un argument. Dar pentru ziua de azi, ne concentram doar aici, pe aceste linii. Deci numele șir, doar pentru a recapitulare, Ce a făcut pentru mine? Deci, a declarat o variabila de tip string. Deci, este menit să fie de cuvinte, nu pentru numere. Doar ca o paranteză, dacă am vrea acesta să fie un număr, aș spune ceva de genul Int. Dacă am vrut să fie un punct de flotant valoare, ceva cu un punct zecimal, Aș spune float. Dar pentru ziua de azi, am spus șir. Și i-am dat această variabilă un nume de nume, dar am putut au numit-o nimic. De fapt, inițial, l-am sunat S. Acest lucru aici este doar o altă declarație. Cât de multe argumente este aceasta luând afirmație? Deci, se ia doar una, și că este pur și simplu un detaliu estetic de afișarea ceva pe ecranului pentru mine. Ce este această 8 linie face în termeni de nespecialist? Se face o valoare de utilizator - și anume, un șir - și ceea ce o face cu ea? Este în esență, predarea la Tipul pe partea stângă a semnul egalității, astfel că, în acest caz, Numele variabilă poate stoca de fapt. Și apoi printf este un alt exemplu de o funcție. Și noi spunem pentru a apela o funcție. Pentru a utiliza o funcție este pentru a apela o funcție. Acest lucru aparent are două argumente. Acesta, virgulă, aceasta. Aceasta în sine este doar un șir care conține un substituent. % S înseamnă a pune un alt șir aici. Și astfel aplicându-și numele după virgula, care este introducerea care lucru pentru mine. Deci, eu pot face alte lucruri încă. Lasă-mă să merg mai departe acum și de a face un pic de o Programul de prostie, dar permiteți-mi șterge acest, și să-mi crea o buclă. În timp ce adevărat. Simbolul adevărat este, evident, întotdeauna o să fie adevărat. Deci, ce fel de buclă am inducerea de a scrie o linie de genul asta? Deci, o bucla infinita, nu? Doar în timp ce adevărat. Nu există nici un fel pot schimba cuvântul adevărat a fi orice altceva, astfel încât acesta este doar de gând să ruleze pentru totdeauna. Deci, dacă ați avut vreodată de fapt un program de în Mac sau PC-ul care pare dvs. au închis, sau se face ceva și ceva, iar tu doar nu pot obține lucru să renunțe dacă nu reporniți computerul sau trage în sus Task Manager sau cum ar fi, aici este un astfel de exemplu. Eu pot spune, "Sunt un program de buggy." Close citat, aproape paranteze, punct și virgulă. Deci, din nou, observa tiparele. Chiar dacă o parte din sintaxa noastră este nou, în timp ce cuvântul cheie, cuvântul cheie adevărat, Notă am avea aceeași tip de acolade. Am luat un punct și virgulă și paranteze. Deci, acum să mergem mai departe și compila acest lucru. Face personalizat, personalizate. Deci, la acest moment, nu este nevoie să reporniți aparatul, bine? Deci lecția ușor aici este cu două degete, de control C, vom renunta acest program. Dar puteți vedea exact de ce acest lucru se repeta din nou și din nou. Pot să fac ceva un pic mai complex ca un teaser. Am de gând să merg mai departe și spun următoarele. Pentru Int, care este un întreg, i este doar un nume generic dăm la cele mai variabile în programare și atunci când sunteți numărare doar, este egal cu 0. Lasă-mă să merg mai departe și spun în timp ce este, să zicem, mai puțin de 100, i, plus, plus. Vom reveni la această sintaxă, dar acest lucru înseamnă doar incrementa am din nou și din nou. Și ceea ce vreau să fac aici? Printf, "pot conta să i." Acesta este un program de buggy. Ce am de fapt intenția de aici? La sută nu e, dar tu nu ar ghici aceasta. % D este un număr întreg zecimal. Virgulă am. Lasă-mă să reveniți. Permiteți-mi acum recompilațicu face. Permiteți-mi acum reluare cu personalizat. Pot conta cu adevărat al naibii de repede atunci când Scriu un program de genul asta. Acum, hai sa facem ceva o puțin neintenționată. Ce zici să facem acest lucru în timp ce este mai mare sau egală cu 0. Ce se întâmplă acest lucru pentru a induce? Deci, logic, acest lucru nu este atât de înțelept, pentru că acum, dacă rulați din nou acest lucru, povesti, Eu pot conta acum foarte, foarte mare. Din păcate, la fel de mare ca pot numărul este de 4 miliarde de euro, astfel încât acest lucru se întâmplă pentru a lua un timp. Deci, de ce să nu lăsăm acest lucru ca nostru Cliffhanger, promițând că pe Miercuri, vom vedea dacă acest program se face. Doi, vom prezenta modul în care te scrie propria funcție, astfel încât foarte repede, de miercuri, vom, așa cum am tranziția de la zero în C, începe scris ce în ce mai complexe programe care fac de mult, mult mai mult decât aceasta. Ne veți vedea atunci. [Aplauze] SPEAKER 1: La CS50 următoare, Ziua puzzle a fost un succes.