LUCAS FREITAS: OK, cred acum suntem în direct. Bine ati venit la CS50 supersecțiune. Suntem mai puțin confortabil. Numele meu este Lucas Freitas. Sunt unul CS50 cap TFS. Acest lucru este Lauren. LAUREN CARVALHO: Bună, eu sunt Lauren. Sunt, de asemenea, TF cap pentru CS50. LUCAS FREITAS: Astăzi vom merge doar pentru a oferi o imagine de ansamblu a ceea ce tot ce băieți au învățat într-o săptămână, sperăm pentru a vă oferi un bun baieti sens la ceea ce trebuie să știți pentru problema stabilit o. Doar câteva anunțuri. Mai întâi de toate, ore de birou. Orelor de program se întâmplă de luni până joi, în diferite case din Annenberg fiecare zi. Ei sunt o resursă foarte bună pentru tine oameni să vină și să pună întrebări, și vorbesc cu TFS, și chiar de schimb idei cu alți studenți. Astfel încât să fie sigur de a utiliza această resursă în favoarea ta. Al doilea lucru este CS50 Appliance. Pentru ultima [neauzit] voi nu trebuie să de fapt au un aparat. Tocmai ai făcut totul în computerul personal. Dar de această problemă, aveți de fapt, de a avea o mașină virtuală, astfel încât să fie vă pentru a descărca CS50 Aparat și a pus-o. Și al treilea lucru este să fie sigur de a începe problema stabilit ASAP doar pentru că este mult mai ușor de a găsi ajuta atunci când vă aflați în la începutul săptămânii. Pentru că oamenii tind să aștepte până când ultima secundă pentru a porni setul problemă, și apoi te duci la orele de birou, și există o mulțime de oameni. În cazul în care, dacă te duci la luni, ai de gând pentru a vedea că puteți vorbi cu TFS destul de mult pentru toată noaptea, și ei vor fi mai mult decât bucuros să vă ajute. LAUREN CARVALHO: Pot să opresc te pentru o secundă? A fost în toată lumea posibilitatea de a descărca CS50 Appliance? Au încercat oamenii? LUCAS FREITAS: Pentru a descărca, de către Astfel, puteți obține instrucțiuni de la cs50.net/appliance. LAUREN CARVALHO: Corect. Și aceasta nu ia un pic de timp pentru noastre administratori SYS pentru a vă obține o licență cheie, așa că vă înscrieți pentru de încercare gratuită primul. În acest fel veți avea pentru 30 de zile, și apoi așteptați pentru cheia de licență care ar trebui să dea pentru a vă pentru un an. LUCAS FREITAS: Mai întâi de toate, hai sa vorbim un pic despre CS50 Appliance. CS50 Appliance este de fapt o virtuală masina pe care ai de gând să rula în propriul computer care este de fapt rulează pe un alt calculator în propriul computer. Care este destul de rece. Și de fapt este folosit peste tot. Oamenii care a tech-ar ști că acest lucru este folosit tot timpul. tu? Poate avea mai multe computere într-un singur dispozitiv. Să aruncăm o privire de fapt, la Appliance. Când te duci la aparatul după înregistrare, ai de gând să trebuie să pune numele dumneavoastră și a vă conecta la Harvard astfel încât să putem obține ai toate înregistrate. Ai de gând pentru a vedea de fapt doar un tapet, și apoi Acasă și Gunoi, și apoi aceste icoane mici. Acest trei icoane sunt de fapt cele mai lucruri importante pe care le poate avea în Appliance dumneavoastră. Prima dintre ele este gedit, care este un text editor, la fel ca Notepad sau ca orice fel de editor de text. Este doar ceva pe care le folosim pentru a scrie cod și apoi a face lucruri cu ea. Al doilea lucru care ne-am aici este Chrome. Deci, dacă aveți nevoie pentru a folosi internetul în aparat, care este ceea ce se poate utiliza. Și al treilea lucru este terminalul, care este de fapt foarte dulce. Oamenii, de obicei, sunt un fel de speriat de terminalul pentru că e foarte cerere de modă veche, în care vă doar de tip practic tot cu tastatura. Nu este o mulțime de interacțiune cu mouse-ul. Dar, de fapt terminalul face lucruri foarte bune. Mai întâi de toate, hai sa mergem prin unele comenzi pe care le pot utiliza în terminal. LAUREN CARVALHO: Și nu ezitați să oprească ne dacă aveți întrebări. LUCAS FREITAS: Da. Deci, prima comanda pe care o avem pentru terminalul este ls. ls înseamnă în esență lista totul, toate fișierele și toți directorii, că am la locul pe care eu sunt la. Deci, dacă eu fac E aici, am de gând să văd că am unele directoare. Am desktop, descărcări, jurnalele, și vhosts. Cei care sunt în albastru, deoarece acestea sunt toate directoarele. Atunci aveți alte fișiere. Trebuie ca salut și hello.c, care sunt doar fișiere, și sunt în culori diferite. Deci, aceasta este o comandă foarte importantă doar puteți vedea ce fișiere și directoarele pe care le au în directorul care esti la în terminal. Când vedeți jharvard @ aparat și apoi puțin simbolul acolo, tilda, asta înseamnă doar că e director că ești în acest moment. LAUREN CARVALHO: Deci tastarea ls este aproape cum ar fi clic pe folderul care este listat acolo, în arată că tu tot conținutul pe care sunt în acel folder. Audiența: Este de text după hello.c? LAUREN CARVALHO: Oh, nu se poate a se vedea că, pentru că e albastru. LUCAS FREITAS: Se spune busteni si vhosts. LAUREN CARVALHO: Acestea sunt doar alte dosare. Îmi pare rău, e foarte greu pentru a vedea. Poate că dacă ne-am stins luminile? Colton, vrei să încerci și găsi întrerupătorul de lumină? Îmi pare rău pentru asta. Nu m-am gândi la asta. LUCAS FREITAS: Dar e de fapt - Da, dacă ai putea - LAUREN CARVALHO: Zoom in ecran. LUCAS FREITAS: Eu nu fac au această caracteristică. LAUREN CARVALHO: [inaudibil]. OK. Ei bine, nu e doar o mulțime de naturale lumină în această cameră, de asemenea. LUCAS FREITAS: Să presupunem că există alte două directoare de acolo. LAUREN CARVALHO: Doar aibă cu noi. Aceasta este singura parte care veți se uita la terminal. LUCAS FREITAS: Următoarea comandă este în principiu, poate doriți să organizați fișierele - de exemplu, toate fișierele C într-un singur director, dar nu aveți un director doar pentru fișiere C încă. Puteți crea de fapt un director folosind terminalul de asemenea, care este același lucru ca și clic dreapta și a zis Folder nou. Comanda se face director, care este mkdir, deci practic "face" și "Directorul." Și apoi puteți pune numele directorului. Să spunem că am vrut să fie numit, Nu știu, să spunem pset1 Doing acest lucru, am creat un director. Să verificați că este acolo. Deci, dacă eu fac ls, acum văd busteni, și apoi pset1, și apoi vhosts. Așa că am avea noul director acolo. Și apoi, după ce avea un nou director, poate doriți să navigați în ea, astfel încât următoarea comandă acest cd, ceea ce înseamnă, practic, doar du-te la o directorul specific. Așa că dacă vreau să merg la pset1, Eu pot face doar cd pset1. LAUREN CARVALHO: cd standuri pentru schimbare director, [auzite] posibilitatea de a amintiți-vă că. LUCAS FREITAS: Și acum veți vedea că în loc de a avea doar jharvard aparat, am jharvard aparat, și apoi pset1, deoarece se arată -mi unde sunt în acest calculator. Acum, dacă vreau să mă întorc la director care a fost înainte de aceasta, am poate face un punct cd punct, ceea ce înseamnă pur și simplu du-te la directorul pe care am fost înainte, ca mamă a acestei director, practic. Și acum văd că am înapoi la jharvard. Următorul lucru pe care pot să-l fac este rm, care este elimina un fișier. De exemplu, să facem mai întâi ls pentru a vedea ce am aici. Eu am salut și hello.c. Să spunem că vreau să le eliminați. Eu pot face rm salut. Se va spune "elimina fișier regulat Alo? "Iar eu spun" da ". Și acum, dacă am face ls, am vedea că este nu mai există. Dacă am încerca să folosiți rm pentru un director, totuși, nu se va să te las să faci nimic. Se va spune, hei, tu nu se poate elimina un director. Deci avem acest alt venit numit rmdir, ceea ce înseamnă, practic, doar elimina director. Eu pot, de exemplu, elimina pset1. Și dacă eu fac ls, eu nu fac l-au mai. Orice întrebări cu privire la acest lucru? Nu? Da? Audiența: Este important să plece un spațiu după - ori de câte ori începeți să scrieți ceva în? LUCAS FREITAS: Da. Dacă fac place cd și directorul, Am să pun un spațiu. Ce spațiu vorbești? LAUREN CARVALHO: Spațiul dintre CD și [neauzit]. LUCAS FREITAS: Da, va trebui să pune spațiile pentru că CD-ul este comandă, și apoi șirul următor care ce tip este, în principiu director. Deci, e ca un argument. Da? Audiența: Când listă, toți cei sunt diferite directoare, corect? LUCAS FREITAS: Da, ei sunt în directorul. Audiența: Ce este diferențele printre directoarele? LUCAS FREITAS: Sunt doar dosare diferite. Director este un director în calculatorul dumneavoastră. AUDIENTA: Open folder. LUCAS FREITAS: Da, e doar un folder deschis. LAUREN Carvalho: aici, cele , care sunt în albastru sunt reale directoare pe care le puteți obține în și apoi vezi o grămadă de lucruri care sunt în care, ceea ce este regretabil pentru că nu se poate citi, de fapt, cele în albastru. Și cele din alb sunt doar fișiere , care sunt în directorul curent. LUCAS FREITAS: Deci directoare sunt dosare. Celelalte sunt fișiere. Audienta: Care este comanda a reseta sau să-l clar? LUCAS FREITAS: Pentru a șterge? LAUREN CARVALHO: Pentru a șterge? LUCAS FREITAS: Cred că e "clar". Da. Deci, doar tastați clar dacă ecranul este prea murdar. Orice alte întrebări? Și vă va învăța o grămadă de alte comenzi doar în mod natural în timpul semestru, deoarece acestea sunt foarte utile. Deci, acum, hai sa vorbim despre compilarea. Am vorbit despre pseudocod și codul sursă și cod obiect. Și există o mulțime de coduri, și poate voi sunteți confuz despre asta. Hai sa vorbim un pic despre ceea ce se întâmplă atunci când scrii un program, și tu-l compilați, și devine un fișier executabil. Acestea sunt toate cuvintele pe care le baieti Probabil a auzit, și poate că tu nu ești într-adevăr sigur că ceea ce se întâmplă. Să spunem, de exemplu, pe care vreau să scrie un program care spune "salut". primul lucru care vine în mintea ta este ce fel de a încerca să se gândească la modul în care ești de gând să faci asta în mintea ta, și esti, probabil, de gândire în limba engleză sau o altă limbă, cum ar fi naturale limba, probabil. Si apoi te gandesti, bine, dacă vreau să, de exemplu, a scrie un program care spune: "Bună ziua," aș începe un program, Eu va imprima salut, iar apoi voi închide programul. Acest lucru este pseudocod. Acest lucru este doar practic pe care încercați să veni cu o serie de evenimente care ai de gând să faci pentru a fi capabil să scrie un program. Apoi, aveți codul sursă, și codul sursă nu trebuie să să fie în mod special în C. Vorbim despre codul sursă în C, pentru că e limba suntem de învățare, dar desigur Codul poate fi destul de mult orice limbaj de programare pe care le au. Mai târziu, în semestrul, ai de gând să învețe alte limbi. Acesta este, de asemenea, codul sursă. De exemplu, aici, aceasta este sursa mea cod, și apoi eu, inclusiv o bibliotecă, și apoi am început principal, iar apoi am imprima. Și Laura este de gând să vorbim un pic bit despre toate astea. Deci, aceasta este codul sursă. Și ceea ce este codul obiect? Obiectul este o grămadă de zerouri și cele, practic. Ce se întâmplă este de ai inițial pseudocod, care este tot în limba engleză. Și vreau să spun, ați înțeles. Probabil prietenii tăi înțeleg el, și cei mai mulți oameni ar fi înțelege ideea. Dar calculatoarele sunt foarte prost, și ei nu înțeleg limba engleză, astfel încât să au traduce asta în ceva, de obicei, traduse în unele limbaj de programare. Și vă puteți gândi de o programare limba ca un fel de limbaj ca să vă spun cât de computer de a vorbi și de a înțelege. Ești practic scris ceva în o limbă pe care amândoi și dumneavoastră calculator înțeleg. Asta e codul sursă. Deci, va forma pseudocod la sursă cod, este de până la tine. Este practic faci program. Dar problema este că nu chiar de calculator înțelege limbajul de programare. Acesta nu înțelege codul sursă la toate. Este de fapt doar înțelege zero si unu. Deci avem acest lucru foarte magie numit un compilator, care, practic, este mergi la a lua sursa numit pe care le a scris într-o limbă pe care atât tu cât și computerul vorbesc, și acum ești O să transforme că în zero si unu. Deci, practic ceea ce compilatorul nu este devine cod sursă, în acest caz C, este de gând să-l transforme în zerouri și cele care calculatorul înțelege și poate face o fișier executabil din ea. Asta face sens? Vă puteți gândi doar de compilator ca un fel de traducător, care este ajutându-vă explica la computer exact ceea ce ar trebui să facă. Dar cum pot compila. Să mergem înapoi la aparat, iar Să spunem că eu fac acest program. În primul rând am de gând pentru a crea un director aici, și am de gând să-l numesc "Practică". Acum am de gând pentru a naviga la directorul, așa practica cd. Acum sunt în practică. Acum vreau să încep gedit, Deci, cum fac asta? Pot să faceți clic aici, sau pot pur și simplu literalmente de tip "gedit", și se va pentru a deschide pentru mine. Acum am de gând să tastați programul meu, așa exact ceea ce am scris în diapozitiv. Declar o bibliotecă. Fac int principal, gol. Și acum fac printf, salut. Acum am de gând să salveze această. Lasă-mă să-l pună în practică, și Am de gând să numim această hello.c. Deci, acum este salvată. Dacă vreau să-l compilați, eu de fapt se poate face în două locuri diferite. Pot să o fac, fie într-o fereastră terminal, astfel încât aceasta de mare, sau puteți folosi gedit care are de fapt o fereastră de terminal chiar aici. Astfel încât să puteți foarte convenabil face doar codul, iar apoi aveți posibilitatea să tastați doar indiferent de aici, și să încerce să-l compilați. Deci, cum am compila cod? Cel mai simplu mod pe care o avem este prin utilizarea face, care este o funcție care este, în principiu va compila codul. Trebuie doar să spui facă salut, așa "Face" și numele programului. Oops. Acest lucru este ciudat. LAUREN CARVALHO: Poti sa [inaudibil]? LUCAS FREITAS: Îmi pare rău. Nu l-am salva în directorul corect. Vino la practica, iar acum salvați-l ca hello.c. Îmi pare rău. Acum, acesta este salvat. Lasă-mă să fac ls și să fie sigur că e aici. OK, acum e aici. Deci, acum, dacă fac fac salut, scuipa o mulțime de lucruri, dar apoi ea doar dă mi-o altă linie pentru terminalul, care înseamnă că a avut succes. Deci, acum, dacă am face un ls din nou, am de fapt, a se vedea acest fișier în verde, care este fișier executabil. Și apoi, dacă vreau să-l rula, tot ce Ce trebuie să fac este slash punct salut. O să salut aici, așa este exact ceea ce am eu o cer asta. Nu este unul mai mult mod de compilare, care se utilizează zăngănit. Zăngănit este doar un compilator pe care le avem, și e un pic mai detaliată a compilați-l. Dar funcționează la fel de bine. Deci, dacă am face zăngănit, și apoi-o, și apoi numele pe care vreau să dau la fișierul executabil, asa ca hai sa spunem "Salut". Și apoi fișierul pe care vreau pentru a compila, hello.c. Este, de asemenea, va compila. Și aveți fișierul de aici, și Pot să-l executa la fel de bine. Astfel încât ambele dintre ei lucrează. Asta face sens? Orice întrebări? Audiența: poți mări într-un pic? LUCAS FREITAS: Îmi pare rău? Audiența: Zoom in? LAUREN CARVALHO: Te crezi doar poate comanda plus. LUCAS FREITAS: Poruncește ce? LAUREN CARVALHO: Command plus. LUCAS FREITAS: Nu. LAUREN CARVALHO: Oh, asta nu-i de gând să lucreze pentru că - este pentru că ne-am stabilit rezoluția pentru acest lucru. LUCAS FREITAS: Eu nu fac cred că putem mări inch Da, nu putem mări. Aveți o întrebare? Scuze. Audiența: Poți să repeți zăngănit? LUCAS FREITAS: zăngănitul? Zăngănit este același lucru ca și face, dar Diferența este că în primul rând am de gând pentru a scrie zăngănit, care este comanda, atunci am de gând să fac -0, toate, ceea ce este doar ceea ce am de gând să afla mai târziu, ca un steag. Deci cred că ai mereu trebuie să puneți-O. Și apoi în primul rând, ai de gând să pună numele de fișier executabil, de fapt fișierul pe care esti va crea. Deci, eu pot spune, de exemplu, hello2 și apoi fișierul pe care vreau să compila, care este fișierul c... Deci, asta e hello.c. Asta face sens? Audiența: Alo ce? Ce este asta? LUCAS FREITAS: hello.c. Și dacă l-am compila, și în cazul în care Eu ls, am, de asemenea, o hello2 că am compilat. Și dacă am încerca să îl rulați, se va face exact același lucru ca și salut, doar imprima salut. Audiența: Cum pentru marca puteți pune hello.c după? LUCAS FREITAS: In face, te Nu trebuie să puneți. c.. În a face, vă spun doar numele programului. Nu trebuie să spun. C.. Dar pentru zăngănit, ar trebui. Audiența: Cu zăngănit face, de asemenea, trebuie să adăugați [neauzit] LAUREN CARVALHO: Da. Deci, va trebui, de asemenea, la biblioteca. LUCAS FREITAS: Da, asta e ceva vom folosi mai târziu. Asta se numește de legătură, și cred că suntem O să vorbim despre asta mai târziu. O altă întrebare? Audiența: Nu ai pus un zăngănit punct slash? LUCAS FREITAS: Nu. Punct slash este doar de a deschide fișierul executabil. Deci zăngănit, tu doar scrie "zăngănit," și apoi, dacă doriți să deschideți fișier executabil pe care tocmai ați compilate, atunci tu nu dot slash și numele. Asta face sens? Audiența: Daca ar fi sa doar schimbare [Auzite] a hello world, nu-i asa trebuie să-l recompilați? LUCAS FREITAS: Da. dacă vreau să spun, de exemplu, "salut acolo, "Eu pot doar salva acum, și eu doar compilați din nou. Deci, lasă-mă să fac un make salut. Și dacă eu fac salut, o să spune "salut acolo." Are sens? Orice alte întrebări? Audiența: Nu trebuie să includă I / O standard pentru a coordona activitatea? LUCAS FREITAS: Da. Standard I / O este de fapt biblioteca, care are o de punere în aplicare pentru printf. Astfel că dreptul de lucru de pe top include stdio. Acesta este echipat cu o bibliotecă care are de fapt o grămadă de diferite instrumente pe care le puteți folosi. una? Dintre ele este printf care este o funcție că, practic, printuri mesajelor pe ecran. Orice alte întrebări? Nu? OK. Deci, acum, hai sa vorbim despre - LAUREN CARVALHO: Să du-te la ghidul de stil. Vrei să-l găsiți doar aici? LUCAS FREITAS: Deci vom pentru a vorbi despre stil. LAUREN CARVALHO: Oh, David nu a terminat. OK. De ce nu ne-am întoarce la stil de la sfârșitul? A fost de fapt actualizate în timp ce vorbim. LUCAS FREITAS: Da. Să cale pentru David pentru a termina asta. LAUREN CARVALHO: Can vom trece de fapt? Deci, sper că toată lumea a fost se bucură de Scratch. Din păcate, e timpul să se mute departe de acest lucru - din păcate, e timpul să se mute departe din aceste blocuri de programare destul de pe C. Dar, din fericire, tot a programare construiește pe care le-ați a fost de lucru cu în Scratch sunt direct traductibile la C, și suntem de gând să înceapă să învețe despre unele dintre ele chiar acum. Să vorbim mai întâi despre condițiile de în expresii booleene. Acesta este pe rezervă energia bateriei. LUCAS FREITAS: Cât este că nu de lucru? OK. Tu du-te acolo, am de gând pentru a obține - LAUREN CARVALHO: Deci condițiile sunt important, deoarece ele ne permit să introducă logică în programele noastre. Iată un exemplu de o condiție în cadrul unui program C. Să observăm cum acest lucru - Deci, acest bloc stare chiar aici, acest Declarația printf nu va executa decât dacă starea cadrul paranteze, n mai mare decât 0, evaluează la true. Acum, toate condițiile din cadrul f declarații sunt expresii booleene, ceea ce înseamnă că există sunt doar două opțiuni. Ele ar putea evalua fie adevărat, sau se pot evalua la fals. Deci, aici, așa că acest lucru are sens, nu? n mai mare decât 0, înseamnă că este un pozitiv număr, ceea ce înseamnă că se va imprima out "ai ales un număr pozitiv." Există o mulțime de expresii booleene care poate forma cu condiția unei Declarația de inițializare. Avem mai puțin decât. Acest lucru este mai mică sau egală cu. Acesta este doar un amuzant [neauzit]. Dacă doriți ca printf să apară în cazul în care este mai mare sau egal cu 0, atunci v-ar alege acest lucru. Astfel egalul doar adaugă dreapta după mai mare decât semnul. Irilor, care este diferit de doar un semn egal, irilor înseamnă de fapt că, indiferent pe partea stângă a acestei este aceeași ca ceea ce este pe partea dreapta a acestei în cazul în care un semn egal este ceea ce? Ceea ce este doar un semn egal? Cesiune. LUCAS FREITAS: Cine a spus asta? Este ca bomboane? Oh, nu. Scuze. Scuze. Amândoi obține bomboane. Oh, OK! Trei oameni a lua bomboane! LAUREN CARVALHO: Deci, asta de aici este operatorul bang precedent semnul egal, astfel încât este nu este egal cu. Deci, dacă acest lucru a fost în starea mea, corpul condiției ar executa numai în cazul în care orice în stânga nu este același lucru cu ceea ce este pe dreapta. Pot avea, de asemenea, drepți semn de exclamare. De fapt, vom vedea într-o funcție alunece cum ar fi folosit acest. LUCAS FREITAS: Aveți întrebări? Nu? LAUREN CARVALHO: Putem combina aceste Expresii booleene pentru a construi mai mult declarații condiționale complicate. Deci, aici, în cazul în care orice pe stânga în partea stângă a două baruri sau tot ce este pe partea dreaptă a duble barele se evaluează la true, atunci vom imprima invalid. Și apoi în jos aici, în cazul în care orice e pe partea stângă a doua ampersand și orice cu privire la dreptul în partea stângă a celor două ampersand evaluează la adevărat, atunci vom imprima valabil. Liniile duble sunt numite logică Operatorul OR duble ampersand sunt numit operatorul logic ȘI. Da? Audiența: Sunt cei care doar minuscule l's? LAUREN CARVALHO: Nu. Ei sunt de fapt - știi reacția, cum ar fi de mai sus cheia Înapoi? Vezi asta? LUCAS FREITAS: Este de fapt un bar. LAUREN CARVALHO: Este de fapt doar două baruri. Audiența: Poti folosi echipă pentru siruri de caractere? LUCAS FREITAS: Nu. Vom afla mai târziu ceva despre asta. LAUREN CARVALHO: Există o funcție pe care le puteți folosi. Dar nu trebuie să vă faceți griji că doar încă. Ce se întâmplă dacă am da acest program numărul 5? Ce se va imprima? Audiența: [inaudibil] valabil. LAUREN CARVALHO: valid? Da. Nu știu care a ajuns asta. [Râsete] LAUREN CARVALHO: Asta e un fel de infricosator [neauzit]. Audiența: Deci, dublu și, că doar înseamnă și? LAUREN CARVALHO: Da. Deci, numărul 5 este atât de mare decât 0 și mai mic de 100. Audiența: De ce ar fi unul? LAUREN CARVALHO: O ampersand este de fapt ceva diferit, și este un operator la nivel de bit, pe care veți afla despre mai târziu. Dar e ceva care chiar funcționează cu biții unui număr dat. LUCAS FREITAS: Doar cred că nu fac trebuie să vă faceți griji despre asta de acum. LAUREN CARVALHO: Cred că este, probabil, vine săptămâna viitoare. LUCAS FREITAS: Orice alte întrebări? Nu? LAUREN CARVALHO: Deci, am văzut că o bloca poate sta singur, dar se poate de asemenea, să fie asociat cu și mai bloc. Deci, în acest caz, dacă n este mai mare decât 0, vom imprima "Tu ales un număr pozitiv. "altceva, ceea ce înseamnă dacă este 0 sau dacă este mai puțin decât 0, vom imprima, "Ai ales un număr negativ." Cel mai interesant lucru este că acestea se exclud reciproc. Acolo nu va fi un caz în care aceasta și această posibilitatea de a imprima pe amândoi. Sunt sigur că ai lucrat cu cazul / else caseta în Scratch, astfel încât aceasta ar trebui să fie destul de familiar. Da? Audiența: Nu avem nevoie de spațiul dintre int n este egal cu getint apoi în spațiu if? Ca și cum am folosi o linie [inaudibil] LAUREN CARVALHO: Oh, spațiul de aici? Audiența: Ca asta, dar dublezi spațiu. Nu, du-te în sus. Du-te în sus. LUCAS FREITAS: Doar linia? Audienta: Da. LUCAS FREITAS: Doar linia de gol? Audienta: Da. LAUREN CARVALHO: linie Blank? Nu. Asta e doar o chestie stilistic. LUCAS FREITAS: E ca si cum, uneori, doar sari peste unele linii, astfel care codul nu arata ca un bloc mare de text. LAUREN CARVALHO: Cred că ceea ce sa întâmplat a fost că am avut un comentariu aici, dar eu a luat-o în așa fel încât voi ar trebui să se gândească la acest cod, mai degrabă decât doar citit comentariul meu. În general, distanța nu va fi într-adevăr afecta modul în care programul se execută. E mai mult o chestie stilistic. Și atunci când avem ghidul de stil actualizat și gata pentru a merge până la sfârșitul anului supersecțiune, vom vorbi despre asta mai mult. E ceva în neregulă cu acest program, corect? Deoarece 0 nu este cu adevărat un număr negativ. Să vedem dacă putem repara asta. Probabil vă puteți imagina cu acest spune, nu? Dacă n este mai mare decât 0, ne imprima, "Tu ales un număr pozitiv. "Atunci altcineva dacă n este mai mic decât 0, "Ai ales o număr negativ. "altceva," Ai ales 0. " Acum, un lucru interesant este faptul că acest lucru ar putea continua la nesfârșit. Puteți avea un bloc în cazul în care, în cazul în care o parte bloc, o altă parte în cazul în bloc, în cazul în care altcineva, altceva în cazul în care, în cazul în care altcineva, altceva, practic atâta timp cât doriți. Și atunci când sunt construite ca aceasta, toate acestea sunt de gând să fie exclud reciproc. Da? Audiența: Deci, de ce nu poți pur și simplu utilizați un alt dacă în loc de [inaudibil]? LAUREN CARVALHO: În acest caz, da, am ar putea folosi un alt dacă, și ar fi absolut bine, deoarece condiții sunt ele însele exclud reciproc. Dar, în cazul în care condițiile nu au fost exclusiv unul de altul, aceasta ar îi forțează să nu atât de a evalua, în cazul în care are sens. Audiența: În acest caz, am putea cuib al doilea, dacă în primul dacă? LAUREN CARVALHO: În cazul în care - Ce vrei să spui? Audiența: Dacă cele două condiții nu se exclud reciproc? LAUREN CARVALHO: În cazul în care condițiile nu se exclud reciproc? Dar vrei doar unul dintre ei pentru a rula? Audiența: Vrei doar în cazul în care în loc de altceva. LAUREN CARVALHO: Da. Există întotdeauna o să fie o mulțime de moduri în care puteți face acest lucru. Puteți siguranta cuib ei. Și veți vedea într-un diapozitiv viitor care puteți avea mai multe FI, doar unul după alta. Dar aceasta este o modalitate de logic organizarea fluxului de programul tău. LUCAS FREITAS: Si nu e una mai mult lucru, este că ați întrebat despre punerea dacă și apoi altul, dacă. Care să funcționeze perfect, dar e rău Design pentru că, practic, dacă verificați mai întâi dacă, și observați că numărul este mai mare decât 0, te poate termina doar programul. Nu trebuie să verifice dacă este mai mic decât 0, corect? Dar, dacă nu, dacă în cazul în care, se va verifica atât, în timp ce dacă fac în cazul în care altcineva este, se va verifica dacă este mai mare decât 0. Dacă este, ea nu va arăta chiar la celelalte linii de cod. Deci tu practic o verificare ca de două ori inutil, de aceea noi face în cazul în care altcineva în cazul în care. Orice alte întrebări? Audiența: Deci, funcționalitatea de altfel daca este aceeași ca în cazul în care acesta a fost doar în cazul în care? LAUREN CARVALHO: Nu. Ai de fapt de gând să vedeți în următorul meu glisați un exemplu în care se poate fi diferit. În acest caz, e aproape la fel. Deci, aici, avem un exemplu de multiple în cazul în declarații, precum și Funcționalitatea nu este același ca și cum aș fi spus doar dacă altfel, în cazul în care altfel, în cazul în care altcineva. Hai să ne gândim ce s-ar imprima dacă am introduce numărul 95 în acest program. Audiența: [inaudibil] LAUREN CARVALHO: Și atunci? Audiența: [inaudibil] LAUREN CARVALHO: Da. Deci, în acest caz, aceste condiții sunt nu exclud reciproc unul de altul. Și pentru că nu e nimic de oprire această condiție de la evaluarea acestui o are deja, sunt doar Totul se va imprima. Deci, cum aș putea rezolva această problemă? Audiența: altceva ar fi dacă? LAUREN CARVALHO: Puteți folosi altceva FI. Aș putea schimba ordinea dintre acestea, nu? Dacă am făcut asta în primul rând? Ei bine, de fapt, nu. Asta nu ar funcționa pentru 95. LUCAS FREITAS: Nu, doar altceva FI. LAUREN CARVALHO: altcineva FI s-ar fi stabilit acest lucru. Asta clarifica confuzia între FI și altcineva ar fi dacă? Audiența: Am vrut doar să vă întreb, în ​​cazul în care ați folosit altfel dacă, s-ar opri? LAUREN CARVALHO: Corect. Deci, doar prima unul. Dacă am introdus numărul 95, numai acest s-ar fi imprimat, și niciodată nu ar fi progresat la altceva. LUCAS FREITAS: doar un fel de a gândi ca în cazul în care se întâmplă acest lucru, face acest lucru. Altceva este ca și cum, dacă nu, de verificare pentru aceasta, și apoi face asta. Astfel ca toate acestea sunt reciproc exclusive. Nu se poate obține în două față de cele. Audiența: Poti folosi o logică Și pentru această situație? LAUREN CARVALHO: Da. Acesta este un alt mod pe care am putea au fixat această problemă. Ne-ar putea fi definit variază, corect? Așa că am fi putut spune dacă n este mai mare mare de 90 și mai puțin de - ei bine, cred că acest lucru nu are într-adevăr conteaza, dar aici, am fi putut spune dacă n este mai mare de 80 și mai puțin de 90. Mai mare de 70, mai mic de 80. Care ar fi lucrat, de asemenea. [Râsete] LUCAS FREITAS: E speriată. LAUREN CARVALHO: Nu-ti fie frica. LUCAS FREITAS: Nu este că va fi greșit. Este doar că e inutil verbose. Ca și în informatică, unul ar trebui să să fie cât mai simplu posibil, atâta timp cât aveți funcționalitatea. Vrei bomboane? Audiența: Nu am nevoie de ea. LAUREN CARVALHO: sperii toată lumea, Lucas. LUCAS FREITAS: Îmi pare rău. LAUREN CARVALHO: David, de asemenea, menționat acestea comuta declarație în clasă. Practic ceea ce se întâmplă este comutatorul Declarația are o variabilă. În acest caz, vom lua un întreg. În cazul în care întreg este de 1, vom imprima, "Ai ales o mică număr. "În cazul în care întreg este de 1," Tu ales un număr mediu. "În cazul în care întreg este de 3, "Ai ales o mare număr. "Și am avut, de asemenea, un caz implicit aici, dar nu e arată up, care este prea rău. Practic, aceasta este doar o altă sintaxă. Am putea fi pus în aplicare acest exact același lucru cu dacă și altceva în cazul în care declarații. Dar atunci când există o mulțime de diferite condiții și o mulțime de diferite variații pe ceea ce vrei sa faci pentru fiecare intrare, aceasta este o opțiune. Deci e doar o sintaxă bine de știut. Da? Audiența: De ce este acolo nu o bară oblică inversă n în prima? LAUREN CARVALHO: Pentru acolo? Nu e nici un backslash n sus acolo deoarece getint - dacă încercați acest lucru, va vă dau această solicitare. Dă-mi un număr întreg între 1 și 3. Și dacă am pus reacție N, ar fi mă ducă la următoarea linie, dar eu doar a vrut ca ei să tastați întreg imediat după colon. Ai fi putut pune în reacție n. Nu e mare lucru. Da? Audiența: Pentru acest cod, este aceasta cazul în care una, este că, deoarece este primul caz? Pentru că - LAUREN CARVALHO: Nu, nu, nu. Deci, acest lucru este da-mi un întreg între 1 și 3. În cazul în care n este 1, pot imprima aceasta. Dacă aș fi cerut scrisori, am putea avea a spus să-mi dai o scrisoare între A și C. Apoi, acest lucru ar fi cazul A. Audiența: [inaudibil]. Cazul ar fi doar [inaudibil] LAUREN CARVALHO: Da, corect. Da? Audiența: Ce se întâmplă dacă ai vrut să aibă mai mult de o expresie relațională? Deci, în loc de a spune n este egal cu 1, [inaudibil] n este mai mare de 1 în primul caz? LAUREN CARVALHO: De fapt, dacă nu-mi place definească unele dintre aceste cazuri, acest lucru ar se duce în jos. Deci, de fapt, poate că acest lucru nu este ceea ce ceri. LUCAS FREITAS: Cred că întreabă dacă cazul a fost n mai mare decât 0, caz mai mic de 0. LAUREN CARVALHO: Poate comutatorul afirmație nu este adevărat ceea ce vrei de a utiliza în acest caz. LUCAS FREITAS: Declarația comutator este doar pentru valoare, astfel încât sunteți de verificare a valoarea este ca acest lucru sau că. Deci, nu poți de fapt pune condiții. Audiența: Ce se întâmplă dacă persoana Tipuri de cu [inaudibil]? LAUREN CARVALHO: Asta ar fi fost cazul meu implicit, care, din păcate, nu se poate vedea. LUCAS FREITAS: [inaudibil] a le vedea. LAUREN CARVALHO: De fapt, Știi ce? Hai să mergem pentru a studia 50, și voi doar zoom pe lamele pe studiu 50, deoarece aceasta este doar enervant. Deci, lasă-mă să merg de fapt în stare. Acest lucru este doar de gând să să ia un pic de timp. Bine. Deci, îmi pare rău. Cel puțin acum vom putea vedea tot fără să-l taie. Bine. Deci, dacă au pus într-o 10, ne-ar implicit aici la cazul meu implicit, și eu ar imprima doar invalid pentru că am le-a cerut pentru a introduce un număr întreg între 1 și 3. Orice alte întrebări? Da? Audiența: Să presupunem că pentru un caz, de la caz trei, spune că a vrut să fie tot același lucru, așa că ai ales un număr care nu este un număr mediu. În acest caz, ar fi redundant? Ai schimba doar textul în ambele de ei, sau ar exista unele redundanță? Există vreo modalitate de a combina [Inaudibil]? LAUREN CARVALHO: există modalități de a combina-le, dar eu cred că se poate combina numai cele adiacente. Deci, dacă nu am defini nimic pentru cazul în care două, acest lucru ar se aplică în ambele cazuri. Oh, dacă nu am pus nimic de caz unul, acest lucru s-ar aplica atât cazul în care una sau două. În cazul în care are sens. Audiența: Poți să repeți asta? LUCAS FREITAS: OK. Dacă ați făcut, practic, cum ar fi, ai același lucru, dar nu pui ceva aici, ai fi, fie pentru caz unul sau doi caz, face acest lucru. Corect? Și această pauză înseamnă că, dacă aveți în acest caz, tocmai pleca. Deci, asta e ceea ce înseamnă frâna. Deci, dacă am făcut asta, te uiti, e caz, și v-ar face doar asta. Dacă ar fi fost cazul de doi, ar fi, de asemenea, doar vin aici și de a face asta. Audiența: Dar ce poate face? Dacă există ceva pentru caz două [inaudibil] LAUREN CARVALHO: Nu cred poți face asta. Nu cred că puteți sări în jurul. Poți să faci asta, Rob? Nu sunt de părere. Audiența: Deci, doar un număr poate merge după un caz, corect? Nu poate fi un caz, virgulă, două? LUCAS FREITAS: Nu, nu poți. Tu sigur nu se poate. LAUREN CARVALHO: Adică, punctul este aceasta este o opțiune, iar acest lucru nu s-ar putea potrivi cazul dumneavoastră de utilizare, astfel încât atunci ar folosi dacă condițiile. Audiența: Deci, de ce ai face asta? Comutatorul? LAUREN CARVALHO: Mi-ar folosi acest dacă ați definit foarte - de fapt, Lucas, este blochezi. LUCAS FREITAS: Oh, îmi pare rău. LAUREN CARVALHO: Dacă aveți foarte comportamente definite pe care le doriți pentru fiecare intrare, aceasta ar putea fi o puțin mai concisă decât scriind o declarație, dacă pentru fiecare dintre ele. Audiența: Ce înseamnă pauză înseamnă din nou? LAUREN CARVALHO: pauza inseamna opri. Amintiți-vă, dacă nu am avea această pauză aici, ne-ar fi tocmai căzut jos în cazul următor. LUCAS FREITAS: Break înseamnă pentru a obține din declarația de switch. Pentru că dacă e 1, vreau pentru a imprima acest lucru și se lasă. Nu vreau să verificați nimic altceva. Audiența: Tu nu vrei pentru a imprima orice altceva. LUCAS FREITAS: Da. Pentru că e exclud reciproc. Audiența: Si face acest lucru continua doar următorul caz dacă primul caz nu este adevărat? Sau nu-l testeze toate cazurile în același timp? LUCAS FREITAS: Nu, verificări secvențial. Secvențial, da. Încă o întrebare, apoi ne-am luat la deplasa pe astfel încât să putem acoperi totul. Da? Audiența: Deci, pentru cazul, ar putea avea făcut ceva în afară de doar unul? Ați putea da un interval? LUCAS FREITAS: Nu. LAUREN CARVALHO: Nu cred vă pot da un interval. LUCAS FREITAS: Nu poti tine nu se poate da un interval. Audiența: Cazul este specific [Neauzit]. LUCAS FREITAS: Comutator este un fel de valori. Ai face lucruri diferite, în funcție pe o valoare, o valoare specifică. Nu poti sa faci gama, nu se poate face nimic altceva. Este doar un alt instrument pentru a vedea. LAUREN CARVALHO: Majoritatea oamenilor nu folosesc comuta declarații foarte mult în CS50, dar e acolo. Bine. Deci, următorul lucru pe care vom vorbi despre este operatorul ternar. Acesta este doar un alt tip de de condiționată. Practic ceea ce se întâmplă aici este că sunt cere pentru un număr întreg, iar în cazul în care n este mai mare de 100, am de gând să imprima "De mare." Dacă nu este, am de gând să imprima "mic." Deci, ceea ce face este condiția este chiar aici, în paranteze, și tu poate un fel de a gândi problema ca eu cer dacă acest lucru este adevărat sau nu. Dacă e adevărat, am de gând să fac asta în primul rând lucru, iar dacă nu e adevărat, eu sunt de gând să facă acest al doilea lucru. Orice întrebări cu privire la Operatorul ternar? LUCAS FREITAS: Vreau doar nota de la David este că ori de câte ori aveți o condiție - LAUREN CARVALHO: Cred că David uitam prin live stream. LUCAS FREITAS: El face flux de viață chiar acum. Deci, ori de câte ori aveți o afecțiune, esti ar trebui să pună acolade, la fel ca și cum am avea într-un comutator Declarația aici. Avem acolade aici. Pentru orice condiții, esti ar trebui să pună, de asemenea, că. LAUREN CARVALHO: Veți vedea acest lucru în ghidul de stil. Nu avem, de fapt, Ghid de stil chiar acum. Cred că David încă de lucru. LUCAS FREITAS: El a spus că este doar de lucru acum. LAUREN CARVALHO: Oh, e de lucru acum? OK. Deci, se pare că în acest an în stilul ghid, chiar dacă aveți doar o linie, le-ați luat pentru a pune pe cei acolade inch Nu aveți nevoie neapărat să pentru funcționalitate a programului. Și poate că ar trebui să luăm o pauză după condițiile și merge direct la ghidul de stil pentru a șterge unele dintre aceste lucruri? LUCAS FREITAS: Da. Aveți o întrebare? Audiența: Nu, voi aștepta doar până la ghidul de stil. Audiența: Poți să te întorci pentru operatorul ternar? LAUREN CARVALHO: ternare, da. LUCAS FREITAS: operatorul ternar este în esență o declarație dacă altcineva, dar în loc de a trebui să aibă cele două linii de a verifica dacă o și apoi altceva, aveți doar o linie. Deci, practic, dacă eu vreau să dau un șir o valoare de mică sau mare, și eu vrei sa faci o mare dacă n este mai mare decât 100 sau redus în cazul în care este mai puțin, ceea ce pot face este acest [inaudibil] șirul va fi, și apoi am cere programul este n mai mare de 100? Deci, de aceea am această expresie în paranteze și apoi semnul de întrebare. Eu cer este mai mare de 100? În cazul în care este, o să fie mare. Dacă nu e, o să fie scăzut. Deci, practic ceea ce credeți că este să vă întreb o întrebare, așa că ai pus în paranteze condiție. Atunci ai pus semnul de întrebare pentru ca esti o ceri. Și dacă acest lucru este adevărat, aceasta va fi în prima valoare [neauzit] aici. Dacă nu este, am de gând să pun valoare care este după colon. Are sens? Este, de asemenea, ceva care este ca un instrument în C, dar nu trebuie să l folosească în mod special. Dar oamenii CS place, de obicei, că pentru că doar salvează linii. LAUREN CARVALHO: Este foarte elegant. Acesta are o foarte mult în doar o declarație. Audiența: Deci, semnul procent este doar indiferent de rezultatele pe linia anterioară? LAUREN CARVALHO: Oh, îmi pare rău. Acest semn procent este de fapt un substituent pentru aceasta s. Într-o declarație printf, le-ați luat acest șir de aici, care este ceea ce se întâmplă la imprima, dar nu poti doar pune acest e acolo. În caz contrar, s-ar imprima de s literalmente. Așa că am pus o suta aici pentru a menține acest loc a avut loc pentru orice vine după virgulă. Deci, pentru un șir, ai la sută s. Pentru un întreg, i la sută. Pentru un flotor, procent f. Veți vedea pe cei ca noi vezi mai multe exemple. Dar poate ar trebui să vorbim despre Ghid de stil pentru o vreme, acum că este sus. LUCAS FREITAS: Dacă te duci la cs50.net/style, vei vedea Ghidul de stil. Pentru seturi de probleme, scorul pentru set problemă este compus din domeniul de aplicare, care, practic, înseamnă că dacă ai făcut toate părțile probleme stabilite sau dacă încercat ceva. Al doilea lucru este corectitudine, care mijloace este programul tau face ceea ce trebuia să faci, sau nu-l au bug-uri, sau nu-l face ceea ce ar trebui sa fac. Al treilea lucru este de design, ceea ce înseamnă te punerea în aplicare a acestei bine, sau sunt utilizați declarații inutile? Deci, de exemplu, dacă doriți să se repete un număr de 10 de ori, sunt scrii o pentru buclă sau sunt pur și simplu faci 10 ori aceeași declarație, doar face copy si paste. Astfel de design este pentru asta. Și, în sfârșit, ai stil. Stil este la fel ca judecarea în cazul în care codul arata lizibil și fel de frumos. Aceasta înseamnă pur și simplu, practic, este codul poate fi citit? Ar fi cineva care a fost în căutarea sunt codul să fie capabil să înțeleagă ceea ce se face? Are comentarii și altele? Hai sa vorbim despre stilul pe care ce ar trebui să utilizați. Primul lucru este de comentarii. Comentariile sunt foarte importante pentru dvs. Cod pentru că, uneori, ce faci program, și știți exact ce pe care doriți să faceți acest lucru doar începe codificare, doar introduceți o grămadă de C. Dar, dacă cineva este în căutarea sunt esti cod, ei nu vor să fie în măsură să înțelege pentru că ei nu știu lucrurile care sunt in capul tau, cum ar fi pesudocode, asa ca poate ei vor au un timp de greu de înțeles ceea ce codul este de a face. Deci, comentariile sunt foarte utile pentru a explica pentru cineva care se uită la codul ce face, și de fapt, chiar și pentru tine, acestea sunt foarte utile. Ca te duci la Psets mai greu și greu, ai de gând pentru a vedea că acest cod se mai lungi, și apoi comentarii sunt într-adevăr de important, astfel încât să ne amintim ceea ce fiecare parte a programului dumneavoastră nu. Pentru a pune un comentariu, puteți face doar o slash slash și apoi scrie un comentariu. Și întreaga linie este parte dintr-un comentariu, și tot ce scrie în jos, aceasta nu va fi folosit pentru codul dumneavoastră. Este practic ca compilatorul este de gând să ignore acest lucru. Asta face sens? Audiența: Ce faci din nou pentru a scrie un comentariu? LUCAS FREITAS: Acest? Slash slash? Ori de câte ori tastați slash slash, indiferent de este în care linia nu se întâmplă să fie considerate ca fiind C. Da? Audiența: Deci, după comentariul, te Trebuie doar să introduceți și să înceapă o nouă linie? LUCAS FREITAS: Da, exact. LAUREN CARVALHO: slash slash este pentru comentarii singură linie. LUCAS FREITAS: De exemplu, aici avem - permiteți-mi mări - de exemplu, aici am declara un float, dar poate că dacă ai pus doar acest în codul dvs., ca nu ai nici o idee ceea ce este de a face acest lucru, cum ar fi de fapt cineva care se uită la acest cod va fi, cum ar fi, ceea ce naiba se întâmplă? Dacă puneți un comentariu spunând "converti Fahrenheit la Celsius, ea face mult mai mult sens. Tu ești, cum ar fi, bine, ești a face o conversie. Asta face sens? Deci, este doar ceva care îi ajută pe oameni gata codul dvs. și, de asemenea, face vei fi capabil de a organiza codul de mai bine. Al doilea lucru este că puteți face comentariile multi-line, astfel încât au o comment pentru o grămadă de linii. În loc de a pune slash slash, comentariile prima linie, slash slash, a doua linie, și așa mai departe, tu poate folosi stele slash. Modul în care o faci este că pentru prima linie de comentariu, esti de gând să faci o stea stea slash, astfel la fel ca asta. La fel ca aici avem de la începutul un program, pune, de obicei, cine te sunt, ceea ce face acest program, și chestii de genul asta. E ca un fel de antet pentru program. Din nou, nu este ceva care o compilator este de gând să-i pese, dar este important pentru dumneavoastră să știți ce acest Programul face sau pentru alte persoane să știe ce program este de a face. Astfel încât să se reducă stele stele, și apoi ultima linie ai de gând să faci stele slash a putea închide acest comentariu. Deci, practic pentru toate celelalte linii, puteți scrie pur și simplu orice, iar acest lucru este tot va fi ignorat. Și, de asemenea, la fel ca stil, veți vedea că fiecare dintre liniile are o stea, și toate stelele sunt aliniate. Acestea sunt lucruri importante, astfel care codul arata destul de. Sună bine? Acum, condiții. Ceea ce David spunea că ar trebui să ne de fapt, pune în acele diapozitive, este că atunci când aveți nici un fel de declarații în cazul în care sau orice fel de condiții, ar trebui să utilizați acolade pentru a arăta că acest lucru este ceea ce se va întâmpla atunci când au conditie. Punct de vedere tehnic, atunci când aveți o condiție și apoi următoarea linie este doar unul linie, nu ai punct de vedere tehnic pentru a pune în acolade. Practic compilatorul ar înțelege oricum ca implicit. Dar pentru CS50, vă rog să pună acolade doar pentru ca dvs. Codul este mai organizat și mai ușor de citit. Pentru că cod devine mai mult dacă nu au acolade și astfel. Acesta devine foarte murdar. LAUREN CARVALHO: Acest lucru este exact ceea ce David tocmai a subliniat în diapozitive mele anterioare. Este cu siguranta funcționează fără cret bretele, dar din motive stilistice vom solicita ca vă puneți cele inch Iar atunci când începe să ruleze style50, care este un fel de verificare a 50 de stil, se va reaminti să faceți acest lucru. LUCAS FREITAS: Și un alt lucru este amintiți-vă pentru a pune acolade de-a lungul în fiecare linie. Deci ce faci, de exemplu, l's. Du-te la linia următoare, deschideți cret bretele, atunci te duci la linia următoare. Indentare, care este de patru spații. Apoi se scrie orice, apoi un alt linie, și închideți acoladă. Astfel încât să fie sigur că atât cele ondulat bretele sunt în linii diferite. Audiența: Deci, în cazul în care acest cod a avut ca 10 în altă FI, aceasta ar trebui să fi de 10 de seturi de paranteze? LUCAS FREITAS: Da, pentru fiecare dintre ele. Da. Deci, dacă, în cazul în care altcineva, și așa mai departe. Audiența: Poți să nu apăsați Tab pentru a indenta? LUCAS FREITAS: Vă cerem baieti de a utiliza patru spații. Unele editoare de text tab traduce ca patru spații automat. gedit nu, deci va trebui să face spațiu spațiu spațiu spațiu. Acest lucru este, de asemenea, ceva care unele programatori face doar tab-uri, unele programatori face doar patru locuri, și alte persoane fac chiar două sau trei spații. Doar că aici vom cere voi de a face patru spații. Audiența: Nu există aproape sigur Trebuie să fie o cale de gedit a în mod automat [neauzit]. Ca nu [inaudibil] face asta. LUCAS FREITAS: Da. Cred că pot merge la Settings. Audiența: Se face deja toate astea. LUCAS FREITAS: Este deja nu? OK. Deci, doar asigurați-vă că au patru spații. Audiența: Nu trebuie sa punem cret paranteze in pentru bucle, precum și? LUCAS FREITAS: Da. LAUREN CARVALHO: Ori de câte ori dvs. încapsulare un bloc de cod, doar vă rugăm să folosiți acolade. Și înainte de a vă cred că suntem doar fiind sticklers despre acest lucru pentru nici un bine motiv, în cazul în care voi merg pe pentru a obține stagii de tehnologie de la companii mari, ei vă va oferi un ghid de stil, și ei vă va spune acest lucru este ceea ce dvs. codul trebuie sa arate ca. Și chiar dacă ai învățat să cod ca acest lucru, poate că în stagiu de dvs. veți avea de a face ceva complet diferit. Ei se așteaptă să se conformeze la stilul lor. LUCAS FREITAS: Și încă un lucru este că nu observați cum am ca x, spațiu, mai puțin, spațiu, 0? Ori de câte ori aveți un operator - ea poate fi ca, plus, minus, ori, mai puțin, mai mare, indiferent de operatorul - trebuie să puneți un spațiu pe stânga și dreptul de operator. LAUREN CARVALHO: Acestea sunt numite operanzi binare. Doar asigurați-vă că întotdeauna spațiu din operanzi de binare. LUCAS FREITAS: Acest lucru este nu un operand binar. LAUREN CARVALHO: Aceasta este deoarece este nevoie de doi. LUCAS FREITAS: Oh, da. OK, switch-uri. În primul rând, trebuie să vedem că la fel ca într-o declarație, dacă sau altceva, aveți pentru a pune în acoladă pe o linie proprie și în conformitate cu bretele buclat aici. Observați că există un singur spațiu după comutator, la fel ca în cazul în care și altceva am avut un singur spațiu între că și parantezele. Deci, va trebui să pui. Și nu există nici un spațiu imediat după fiecare din paranteze sau înainte de sfârșitul din paranteze. Deci, vezi că totul împreună, și, de asemenea, ca aici. Da? LAUREN CARVALHO: Cred că avem nevoie pentru a merge mai departe. LUCAS FREITAS: Deci, aceasta este parte a Ghid de stil pe care le au pentru CS50. Asigurați-vă că pentru a merge la cs50.net/style și să ia o privire la acest lucru. Acestea sunt toate foarte importante pentru scorul de stil. Lasă-mă să mă întorc la declarația. LAUREN CARVALHO: mi-ar mai degrabă folosesc doar style50. Mergem să meargă direct la bucle. Bine. Deci, haideți să ne întoarcem la conținutul, acum că am trecut peste ghidul de stil. Loops, le-ai văzut în Scratch, și vom vorbi despre ele în C. Într-o buclă, există trei porții la declarație de acest lucru pentru bucla. Ai de inițializare în pe care ați stabilit variabilele. Ai starea dumneavoastră, care sunt verificare pentru a vedea dacă ceva este adevărat sau fals și dacă buclă ar trebui să continue. Și ai actualizarea, care este actualizarea variabilele. Să aruncăm o privire rapidă la unele Cod C de acest lucru pentru buclă în acțiune. Ce se întâmplă este aici, în inițializare, suntem stabilirea i la 0. În starea suntem de verificare dacă i este mai mic de 10. Și în actualizarea suntem incrementarea i. Deci, ceea ce va rezulta din acest lucru pentru bucla? LUCAS FREITAS: De fapt, în primul rând, nu voi ști ce i + + este? Audiența: Creșterea de 1. LUCAS FREITAS: a crescut cu 1, da. Deci, acest lucru este același lucru ca și face i i plus 1 egal. Și observați că nu avem un spațiu între i și + +. Deci, nu voi ști ce va face? Poate cineva să-mi spui? Și poate lua niște bomboane din cauza asta? Audiența: [inaudibil] LUCAS FREITAS: OK. [Inaudibil] arata toată lumea mai târziu [neauzit]. Da, o să arate "Acest este CS50 "de 10 ori. LAUREN CARVALHO: Cred că a fost în titlul de diapozitiv. LUCAS FREITAS: Oh, da. [Râsete] LUCAS FREITAS: Asta ajută. LAUREN CARVALHO: Deci, cei sunt pentru bucle. Vom vedea unele mai multe exemple de bucle pentru mai târziu. Dar haideți să aruncăm de fapt, o privire la de-al doilea tip de buclă veți întâlni în C, și se numește buclă în timp ce. Într-o buclă în timp ce, ai tocmai am primit o condiție. Condiția este verificată în început, iar în cazul în care această condiție evaluează la adevărat, atunci codul în corpul blocului timp va executa. Și codul va continua să executa atât de mult ca condiție rămâne adevărat. Iată un exemplu de o buclă în timp ce în C. Vom stabili numărul de la 10 la începe cu. Atâta timp cât scorul este mai mare de 0, vom continua imprimarea aceasta variabilă aici. Vom decrementa numărul și apoi verificați din nou starea. Imprimare, decrement, verificare condiția din nou. Aici avem un exemplu care se referă la întrebarea dvs. mai devreme. Am avut la sută s atunci când am fost imprimarea un șir, și acum că suntem imprimarea un int, avem un la suta eu, ca substituent nostru în loc. Literele trebuie să fie destul de intuitiv, e pentru șir, i pentru Int. Deci, dacă acest cod execută, ar trebui conta în jos 10-0, imprimarea fiecare întreg. LUCAS FREITAS: Și vă puteți gândi la sută, se simte ca un martor spațiu, și apoi tu pui aceasta variabilă aici, în acest spațiu gol. Deci, de exemplu, aici, voi avea doar un gol, iar apoi eu pun conta acolo, Valoarea de numărul. Asta face sens? Am putea să fac ca printf și apoi citează, conta? Ar merge asta? Audiența: Nu. LUCAS FREITAS: Nu, pentru că va de fapt imprima cuvântul "count" loc de a imprima valoarea. Acesta este modul în care face imprima valorile spre variabila in loc de doar numele variabilei. Orice întrebări? Audiența: De ce să utilizați pentru ca spre deosebire de vreme? LAUREN CARVALHO: mi-ar folosi o pentru buclă dacă știu exact câți iterații Vreau bucla mea pentru a rula. În acest caz, nu contează pentru că, Vreau să spun, am fost doar încercarea de a cred că de o foarte simplu exemplu pentru acest diapozitiv. Dar să spunem că vrei ceva să continui în timp ce - LUCAS FREITAS: De exemplu, esti cerând de intrare pana cand persoana vă oferă intrare corect. Deci, ca în timp ce de intrare nu este OK, tot întreabă de el. Sau ca în timp ce sunteți părinții nu dau bani, tot întreabă de el. [Râsete] LAUREN CARVALHO: Tu nu știi cum de multe ori va trebui să-l facă. LUCAS FREITAS: Pentru că nu știu cum de multe ori că este O să continui. LAUREN CARVALHO: Dar într-o buclă, trebuie să știți cum de multe ori. Da? Audiența: Doar pentru a clarifica, procentul spune că acest lucru este ceva pe cale de a întâmpla, de i pentru întreg, și backslash N - LAUREN Carvalho: Mijloace? Cine știe ce înseamnă backslash n? Linie nou, da. Exact. LUCAS FREITAS: Puteți să vă gândiți de n ca linie nouă. LAUREN CARVALHO: Nice. Audiența: Ce-i aia numărul liniuță liniuță [inaudibil]? LUCAS FREITAS: Numar minus minus este același lucru ca și în plus, plus, dar în loc să crească, este în scădere cu 1. LAUREN CARVALHO: Orice mai mult în timp ce întrebări bucla? Nu? Oh, trebuia să au sărit ca. Acesta este un do în timp ce buclă. Foarte similar cu o buclă în timp ce excepția acest caz, vom verifica starea după codul în corpul buclă execută o dată. Așa că am executa codul în primul rând, indiferent de ce. Apoi vom verifica starea, executa l din nou în cazul în care condiția este adevărată. Veți găsi te folosind acest lucru atunci când ceri pentru introduse de utilizator. Pentru ca esti mereu va trebui să întreb o dată, și apoi în funcție de ceea ce datele introduse de utilizator este, va trebui să reprompt și întreb din nou și din nou, în cazul în care de intrare nu a fost ceea ce așteptat să fie. Audiența: Deci, e ca o formă pentru ca oamenii să completați. LAUREN CARVALHO: Da, exact. Veți găsi, cred că, în prima ta PSET, ai de gând să trebuie să utilizeze o buclă face bine pentru a colecta intrare de la utilizator. Audiența: În funcție de situație, bucle în timp ce vor avea tendința de a rula mai mult de multe ori decât în ​​timp ce buclele, cum ar fi de către unul sau ceva? LAUREN CARVALHO: Dacă e exact - LUCAS FREITAS: Acestea ar trebui să ruleze mereu cantitatea exactă de ori pe care le doriți să-l rulați. Ca și cum vom folosi în timp ce facem pentru că suntem într-adevăr a vrut pentru a obține de intrare cel puțin o dată. În bucle în timp ce, uneori, nu vrei să-l execute, la toate, dacă nu este cazul a executa. Deci, depinde de design. Adică, puteți face, fie în timp ce utilizarea sau în timp ce, atâta timp cât codul are ca ar trebui sa fac. LAUREN CARVALHO: Dar eu fac cred că răspunsul la dvs. întrebare este, probabil, da. Să presupunem că starea a fost falsă. Într-un caz, ar fi o dată, și un alt caz ar fi de zero ori. Deci, da. Alte întrebări? Da? Audiența: Poate condiția buclă să fie un pentru buclă în termenii unei alte variabile decât [neauzit]. LAUREN CARVALHO: Da, acesta poate fi orice. Probabil pentru Psets început, tu nu va trebui sa se confrunte cu acest caz, dar cu siguranta poate fi nimic. LUCAS FREITAS: Cred că am terminat aici. LAUREN CARVALHO: Suntem? Nu? LUCAS FREITAS: Loops? Da. LAUREN CARVALHO: Noi nu ar trebui să fie. Oh, am terminat cu bucle. OK. De fapt, pentru că am vorbit atât de mult, să de fapt, toate navigare pe de study.cs50.net/conditions. Și ai de gând pentru a naviga în jos la problemele widget. Ei bine, de fapt, în timp ce oamenii devin acest set up, studiul CS50 este O să fie un instrument care TFS dvs. va folosi pentru a pregăti pentru secțiunile și că voi puteți folosi dacă pierdeți secțiuni. O să conțină o grămadă de diapozitive, câteva sfaturi și trucuri pentru fiecare subiect, și unele probleme de practică cu soluții. De ce nu toată lumea ia doar o privire la această problemă aici. Îmi pare rău, ar fi trebuit sa reamintit oameni pentru a aduce laptop-uri de azi. Dar dacă nu aveți un laptop, este OK. Puteți nota pur și simplu acest lucru în jos pe o bucată de hârtie sau se uite peste umărul vecinului. Să încercăm și să scrie un program care solicită utilizatorului să ia o presupunere, numărul mediu de copii per familie Unitate în Statele Unite. Că numărul este de 2, prin modul în care, în timp ce se poate vedea din aceste exemple. Vrem să imprime numărul mediu de copii per familie in SUA, apoi ne-am Vreau să ce? Vrem să colecteze de intrare de la utilizator. Și apoi, în funcție de ceea ce utilizatorul a de intrare este, ai de gând să imprima fie acest lucru este corect sau acest lucru este incorect. Și primul lucru pe care veți vezi, dacă faceți clic pe săgeata mică la partea de jos a problemei este un widget la fața locului să noteze ceva pseudocod. Deci, nu sunteți încă programare. Esti doar obtinerea dvs. ideile în ordine. Nimeni nu vrea să ajute Lucas veni cu dreptul pseudocod pentru această problemă? LUCAS FREITAS: Care este primul lucru că ar trebui să facem, probabil, aici? Ce crezi că voi? Audiența: [inaudibil] LUCAS FREITAS: Da, OK. Deci, de imprimare. Doar spun de imprimare acest mediu număr de oameni? OK. Imprimare întrebare, să spunem. După ce am imprima această întrebare, ceea ce ar trebui să fac? Audiența: Ia intrare. LUCAS FREITAS: Ia intrare. Altceva? Audiența: Stare. LUCAS FREITAS: Stare. LAUREN CARVALHO: Ce este că condiție va fi? Audiența: Numărul de [neauzit]. LAUREN CARVALHO: Corect. LUCAS FREITAS: Deci, ce am de gând pentru a verifica în stare? Audiența: În cazul în care este egal cu 2. LAUREN CARVALHO: În cazul în care este egal cu 2. Exact. LUCAS FREITAS: Este ceva altfel că ar trebui să fac? Audiența: Count. LUCAS FREITAS: Deci, dacă este egal cu 2, să zicem - permiteți-mi să scrie doar în cazul în care de intrare este egal la 2, atunci ceea ce am de gând sa faci este de imprimare corect. Și apoi altceva, am de gând pentru a imprima incorect. Altceva? Nu? LAUREN CARVALHO: Deci tu posibilitatea să faceți clic pe - nu toată lumea are acest lucru în jos? LUCAS FREITAS: Are sens? Deci, acum, haideți să încercăm să cod acest lucru. LAUREN CARVALHO: Dacă faceți clic pe putinul săgeată, se salvează de fapt dvs. pseudocod, ceea ce este cu adevarat interesant. Și tu poți face pe cei în comentarii dacă vrei doar pentru a vă reaminti de ce să facă. LUCAS FREITAS: Deci, de exemplu, în primul rând Am de gând să imprima întrebarea, așa cum am de gând să fac asta, de fapt? printf. Deci printf, iar întrebarea este medie numărul de copii pe familie în SUA. Apoi am de gând pentru a obține intrare de la utilizator. Deci, cum pot face asta? Audiența: Get Int. LAUREN CARVALHO: getint. LUCAS FREITAS: OK. Deci, în primul rând să declare, corect? Int, să-i zicem n este egal cu getint. Iar acum starea. Deci, permiteți-mi să spun că am de gând pentru a verifica răspunsul aici. Deci, mai întâi, în cazul de intrare, care este n, este egal a - cum am de gând să scrie asta? Audiența: egal egal. LUCAS FREITAS: Perfect. Deci n. Și observați că fac un spațiu, egal, egal, spațiu, adevărat. Și acum ce ar trebui să fac? Ceva foarte important pentru stil. Acolade. Și apoi am de gând să imprima. Cum pot imprima? printf. Audiența: Ar putea fi valorificate? LUCAS FREITAS: Nu. Ar trebui să fie toate cu litere mici. Astfel că este corect. Ar fi suficientă pentru acest printf afirmație, sau sunt eu lipsesc ceva? Audiența: Linie nouă. LUCAS FREITAS: Linie nouă, da. Și acum altceva. Audiența: Există un spațiu după printf, sau nu? LAUREN CARVALHO: Ar trebui verificați Ghidul de stil. Audiența: Nu ar trebui să fie. LUCAS FREITAS: nu ar trebui să fie, bine. Deci altceva, printf, "Aceasta este incorect." LAUREN CARVALHO: Oops, citate tale. LUCAS FREITAS: OK. Altceva? Nu-l arate bine? LAUREN CARVALHO: Să-l încercați? LUCAS FREITAS: Da, hai să-l rulați. Deci, este compilarea, și-l se pare că funcționează. Să încercăm doi copii. Că este corect. Și acum să ruleze din nou, dar acum, în loc de a pune doi copii, să spun că am de gând să pun ca cinci. Că este incorectă. Deci, se pare că funcționează. LAUREN CARVALHO: De ce nu le arăta ce se întâmplă dacă ai pus ceva ciudat, ca și unele litere. LUCAS FREITAS: Oh, da. Să verifica, de asemenea că. Ce se întâmplă dacă utilizatorul încearcă să te pui cu programul dumneavoastră, și ei doar scriu, nu știu două. O să spun reîncerca. LAUREN CARVALHO: Deci getint este cerându-le să încercați din nou. Noi nu am avut de a avea grijă de care noi înșine. LUCAS FREITAS: Da. Deci, dacă am pus de fapt un număr, e continua să-mi ceri să încercați din nou. Audiența: Cum l-ai fugit? LUCAS FREITAS: doar să faceți clic acest buton stele. LAUREN CARVALHO: Tu ar trebui să meargă în sus. Acolo te duci. LUCAS FREITAS: Steaua butonul din dreapta acolo. Da? Audiența: Are solicita [inaudibil] cu numere zecimale prea? LAUREN CARVALHO: Eu cred că va fi. LUCAS FREITAS: În cazul în care ce face? LAUREN CARVALHO: În cazul în care tipul într-un număr zecimal, cred se va solicita. LUCAS FREITAS: Să vedem. LAUREN CARVALHO: Deoarece nu este un int. LUCAS FREITAS: Da. LAUREN CARVALHO: Deci nu este un int, Ia Int vă va cere să încercați din nou. Audiența: Deci, în cazul în care codul ar fi zecimală care solicita utilizator care trebuie să intre un număr întreg specific? LAUREN CARVALHO: getint este de fapt fac asta pentru noi. Audiența: Nu, vreau să spun dacă ne-am dorit pentru a intra în [inaudibil] LUCAS FREITAS: Se poate spune ca medie numărul de copii din SUA. Nu știu. Putem spune, de exemplu, "Vă rugăm să intrare un întreg. " LAUREN CARVALHO: Un număr întreg egal la numărul mediu. Adică, e doar modul în care îl cuvânt, corect? LUCAS FREITAS: Da. Acest lucru nu este de fapt o parte a codificare. Este mai mult ca orice ai de gând să doriți să scrie în programul dumneavoastră. Audiența: Cum l-am rula în cazul în care a fost de fapt în gedit [neauzit]. În loc de presare joc? LUCAS FREITAS: Vom primul-l compilați. Putem face acest lucru prin a face make și numele fișierului. Și apoi să-l rulați, vom face dot slash și numele programului. Audiența: Cred că ceea ce am vrut să spun a fost dacă am vrut programul pentru a răspunde la intrarea lor incorectă, invalid, tu nu ar trebui să pună în - LUCAS FREITAS: Noi nu vom fi în măsură să face acest lucru deoarece codul această spune reîncerca vine de Ia Int care este o funcție care este deja pusă în aplicare pentru noi, prin intermediul bibliotecii CS50, și din moment ce este deja pusă în aplicare acolo, ne-am poate nu doar [neauzit]. LAUREN CARVALHO: Dacă nu utilizați Getint, atunci poti sa faci asta. LUCAS FREITAS: Da. Dar dacă utilizați getint, nu poți. Orice alte întrebări? Audiența: Ai putea au plecat cu ca GetFloat și apoi să fie capabil de a pune într-un zecimal? LUCAS FREITAS: Da. Audiența: OK. Apoi, pe care tocmai ați putea de intrare float de la egal la egal - LAUREN CARVALHO: Da. Exact la fel, cu excepția unei plutească în loc de un int. LUCAS FREITAS: Pune-l aici și apoi GetFloat acolo. Audiența: Pe măsură ce va vedea sau au văzut - LAUREN CARVALHO: avem nu a ajuns încă acolo. Audiența: - a face cu inegalitatea flotoare nu [inaudibil] Audiența: Ce vrei de punct și virgulă înseamnă? LAUREN CARVALHO: punct și virgulă doar înseamnă că această declarație este completă, și vom merge pe slide-ul urmator. Audiența: Deci, este necesar de fiecare dată? LAUREN CARVALHO: Da. Ei bine, OK, deci nu pentru aceste condiții, deoarece acestea sunt încapsulare ceva. Deci, practic, dacă ceva este cauza te apoi pentru a crea o acoladă bloc, nu se pune punct și virgulă la sfârșit. LUCAS FREITAS: Dar totul altceva, da. Când ați terminat-o declarație, a pus punct și virgulă. Și dacă ați uitat punct și virgulă, compilator o să se înfurie pe tine, și ai de gând să aibă pentru a încerca să-l repara. LAUREN CARVALHO: Dacă am pus un punct și virgulă aici, care ar opri acest lucru, și eu nu s-ar ajunge pentru a executa ceea ce este în interiorul, apropo. Deci, este una dintre aceste bug-uri comune. Audiența: Întotdeauna executare. LAUREN CARVALHO: Da. În acest caz, am fi mereu executa ceea ce este în interior. Audiența: Stilul tau [inaudibil] atașați că pentru tine, gandit. LAUREN CARVALHO: Oh, asta e adevărat. Audiența: [inaudibil] singur linie de lucru [inaudibil] Publicul: Da? Audiența: Poți avea multiple intrări într-o linie? Astfel ca poti cere utilizatorilor pentru a imprima două lucruri? LAUREN CARVALHO: Nu este utilizat - LUCAS FREITAS: Nu. Să spunem că am dori, de asemenea pentru a obține acest întreg m. Trebuie să o fac într-o linie diferită. Audiența: Dacă ar fi să rulați care, cum [imperceptibil]? S-ar imprima prompt acolo [inaudibil] și apoi vei introduce unul și - LAUREN CARVALHO: Ei bine, ea a alerga. Adică, nu e ne oprește de la nimic doar de funcționare și de a vedea ce s-ar întâmpla. LUCAS FREITAS: Cred că e va plânge la noi pentru că noi nu îl utilizați - LAUREN CARVALHO: Oops. LUCAS FREITAS: A plâns la noi chiar acum, pentru că noi nu utilizați acest variabilă, dar dacă am făcut-o, de exemplu, n este egal cu egal cu, și m este egal este egal cu a, atunci ce se va întâmpla în acest caz? Ce s-ar face acest program? Audiența: Mă întrebam cum ar fi - LAUREN CARVALHO: Ea vrea doar să știe cum arată cum ar fi, cred, corect? Așa că a luat unul dintre ei, și apoi a luat al doilea. Cred că ar trebui să treacă mai departe, pentru că avem o mai slide show pentru a merge înainte - vrei să trage de matematică? LUCAS FREITAS: Da, matematica. LAUREN CARVALHO: Da mi doar o secundă. Există un alt numeric câteva variabile în datele numerice C. în C pot fi clasificate în diferite tipuri, și acestea sunt cele Veți a se vedea mai des. Și int este un număr întreg. Nu poți avea nici zecimale. În aparat, este nevoie de 32 de biți pentru a stoca un int. Un plutitor poate avea zecimale. Este nevoie, de asemenea, 32 de biți pentru a stoca un flotor în aparat. Un dublu este un număr cu o zecimală punct care are 64 de biți pentru a stoca, ceea ce înseamnă că puteți avea doar o mai mare precizie, deoarece puteți avea mai mult - ce-ai spune? LUCAS FREITAS: Da, asta-i mai mult. LAUREN Carvalho: Mai multe locuri după virgulă. Și un timp lung este un număr întreg care durează 64 de biți pentru a inflamat-l în aparat. LUCAS FREITAS: Deci, poate fi mai mare decât int poate fi. LAUREN CARVALHO: lucru despre date tipuri în C este că ei vă spun ce fel de date se pot stoca în variabila dumneavoastră. Ei vă spun cum puteți folosi acest variabilă în programul dumneavoastră. Este foarte important să păstrați doar urmări de ce tip de date pe care îl utilizați, și dacă aveți nevoie pentru a arunca de la un tip de date la alta, asigurați-vă că știți exact ceea ce se întâmplă în momentul în care turnare are loc. Și veți vedea un exemplu mai târziu cu privire la aceste slide-uri de o greșeală care poate avea loc. Să aruncăm o privire la unele matematica în C și cred că într-adevăr cu atenție, cred, despre ceea ce se întâmplă atunci când acest matematica are loc. În prima linie, ceea ce este întâmplă atunci când declar x? Audiența: Ești permite x pentru a fi ceva? LAUREN CARVALHO: Da. Ei bine, eu sunt într-adevăr cer de operare sistem de 32 de biți de memorie, nu? În care pot stoca un int, și Am de gând să numim asta int x. LUCAS FREITAS: Practic merge în memorie și de a găsi un loc care are 32 biți și spune, hei, vreau acest spațiu, și se va numi x. Deci, tu ești doar destul de mult constatare o cutie în memorie pentru a Valorile magazin de x. LAUREN CARVALHO: Și apoi am inițializa x, ceea ce înseamnă că doar am stoca valoare de 2 în acel loc, că bucată de memorie, pe care am cerut de operare sistem de. Și aici ceea ce facem este suntem de fapt declararea și inițializarea y într-o singură linie în loc de în două linii, cum ar fi am făcut aici, care este, de asemenea, o foarte bine, suntem adăugând 1 la x, si suntem stocarea că valoare în y. LUCAS FREITAS: Deci, practic ceea ce acest linie nu, se găsește acum o cutie pentru y, și apoi valoarea sa, lucru care ai de gând să pună în interiorul casetei, este va fi valoarea lui x plus unu. Așa că are această casetă pentru y. Ea devine valoarea lui x, arată aici, și vezi că este 2. Pune-l acolo, plus 1, astfel se pune un 3 acolo. Asta face sens? Deci, y ar fi 2 în acest caz. LAUREN CARVALHO: Bine, bine. Am văzut unele plus, asa ca hai sa cred că acum despre divizare în C. Aici am declararea si initializarea un flotor numit răspuns și împărțirea 1 de 10, și apoi am imprimarea răspunsul cu două zecimale. Și nota aici, în declarația mea printf, atunci când doriți să imprimați ceva la două zecimale,% .2 f este ceea ce vreau sa folosesc. Deci, punctul 2 este doar spun Am nevoie de două locuri după zecimal imprimate. Acum, ce se va întâmpla dacă am rula acest cod? Are cineva o idee? Ce s-ar imprima? LUCAS FREITAS: Care sunt ne asteptam pentru a obține. LAUREN CARVALHO: Ce face ne-o dorim, în primul rând? LUCAS FREITAS: [inaudibil] LAUREN CARVALHO: 0.1, da. Dar ce se va imprima? Audiența: [inaudibil] LAUREN CARVALHO: Ei bine, nu, de fapt. Aceasta este ceea ce eu vorbeam despre ce nevoie pentru a urmări foarte atent de tipuri de date. Deci, ce tip de date este aceasta? Este un întreg, nu? Nu e nici o zecimală. 10 este, de asemenea, un int. Nu e nici o zecimală. Dacă aș împărți o int de un int, primesc o int care nu este de 0,1, deoarece int nu poate avea zecimale, ci doar 0. Pentru ca un int doar trunchiază de pe zecimale. LUCAS FREITAS: Deci, ori de câte ori faci operațiuni cu int, ai de gând să obține un int ca raspunsul. Deci, practic, ceea ce computerul este de a face, e divide 1 de 10, și devine 0,1. Dar apoi e ca, așteptați, aceasta este ar trebui să fie un număr întreg, așa că doar ignora 0.1, deci acum este doar 0. LAUREN CARVALHO: Deci, când am imprima aceasta afară, am 0.00, mai degrabă decât 0.10. LUCAS FREITAS: Asta face sens? LAUREN CARVALHO: Asta e un fel de nefericit, nu? LUCAS FREITAS: Deci, cum putem rezolva această problemă? LAUREN Carvalho: Să încerca și să stabilească faptul că. Iată un exemplu de unde am de fapt, turnare 1 și 10 la pluteste. Deci, acum, 1 nu mai este un int. 1 este un float. Apropo, aceasta este doar sintaxa pentru atunci când doriți să arunce de la unul tip de date la altul. Puteți pune doar tipul de date în paranteze și au că doar preced valoarea pe care o turnare. Deci, aici, eu sunt împărțirea un flotor de un float pentru a obține un răspuns float. Și da, aceasta ar fi, în fapt imprima 0.10. Asta face sens? LUCAS FREITAS: Deci tip de turnare este doar conversia de la un tip la altul. Deci, float 1 este de fapt de 1.000. Nu este exact acest lucru, dar e ceva cu zecimale care este de fapt 1. Asta face sens? Da? Audiența: Ce se întâmplă dacă ai făcut răspuns float este egal cu 1,0 împărțit la 10? LAUREN CARVALHO: Tu esti de fapt merge pentru a vedea că în slide-ul urmator. Asta este de fapt foarte de lângă tobogan nostru. Aceasta este de fapt un mai frumos decât tip de turnare, cred. Deci, aceste două sunt pluteste doar de natura de faptul că acestea au zecimale. Da? Audiența: Ce se întâmplă dacă ai făcut [inaudibil] împărțit la 10? LAUREN CARVALHO: De fapt, un flotor împărțit la o int de fapt, vă oferă o float, astfel că ar funcționa bine. Așteaptă, nu toată lumea înțelege acest lucru? Deoarece acest lucru va fi un adevărat mare în Pset1, de fapt. Da? Audiența: Poți să rapid du-te peste partea de roșu? LAUREN CARVALHO: Partea roșu, da. Lucas, vrei sa? LUCAS FREITAS: OK. Deci, amintiți-vă că procentul este un substituent. E ca un spațiu gol. Deci, haideți să încercăm să înțelegem totul ce se intampla aici. Procente înseamnă că este un substituent. Apoi, aveți f, ceea ce înseamnă că acest substituent este pentru un float. Ultimul lucru pe care o avem aici este o .2, Ceea ce înseamnă că vreau să am două zecimale pentru float. Dacă am avut% f, ei vor pune o grămadă de zecimale. Deci, eu pot pune doar 0.2 sau 0.1 sau 0.5, sau orice, și-l va pune ca număr de zecimale. Singurul lucru este că, dacă ai pus ca 0.100 sau .1,000, nu este de fapt de gând să pună toate aceste zecimale deoarece nu are suficientă memorie a avea ca precizie. Orice alte întrebări? Da? Audiența: Deci, float doar permite să te duci dincolo de numere întregi? LUCAS FREITAS: Da. LAUREN CARVALHO: Ei bine, un float doar vă permite să aibă zecimale. LUCAS FREITAS: doar Aceasta înseamnă că acum pot avea numere zecimale. Audiența: De ce ne-ar utiliza vreodată numere întregi? LUCAS FREITAS: De ce ar fi utilizați numere întregi? Poate că, dacă sunteți de numărare 0-10, doriți să utilizați de fapt un întreg. Nu aveți nevoie pentru a utiliza un float. În unele situații, tu nu faci Trebuie să de fapt - LAUREN CARVALHO: Poate te Nu vreau zecimale. LUCAS FREITAS: Poate că nu doriți să utilizați un float. LAUREN CARVALHO: Un alt lucru este, amintiți-vă, atât pune un flotor și un int ia 32 de biți pentru a le stoca, și poate nu doriți să pierdeți biți pe zecimale. LUCAS FREITAS: Da. Așa cum ar fi, cred că doar despre asta. Ai 32 de biți atât pentru un int și un float. Pentru un int, toate cele 32 de biți du-te la partea întreagă. Dacă utilizați un flotor cu 32 de biți, ce au o parte din această memorie utilizat pentru numărul, de numărul întreg, iar cealaltă parte fiind utilizată pentru zecimale. Astfel că înseamnă că nu se poate ajunge la un număr foarte mare, cu flotoare, deoarece float deja folosind o mulțime de memorie pentru zecimale. Da? Audienta: Asta în primul rând răspuns, exact ceea ce o face? Este setarea valorii float egal pentru ca substituent pentru că puteți rechema în linia următoare? Se spune float răspuns. LUCAS FREITAS: Da. Deci, răspunsul float inseamna ca vei primi acum un pic găleată în memoria pe care deține un float, și că va să fie numit răspuns. Deci, asta e ceea ce face răspuns float. Și apoi spui că în interiorul acest lucru, ai de gând să pună Rezultatul acestei. Deci, ai de gând să faci 1,0 împărțit de către 10,0, te 0,1, și apoi ai pus că în interiorul de răspuns. LAUREN CARVALHO: Deci, într-o singură linie, suntem declararea și inițializarea acest float numit răspuns. LUCAS FREITAS: Interesant, deși aceasta este doar o linie, se face mai multe operațiuni. Este doar o modalitate de C închiriere utilizați mai puțin cod. Este același lucru ca și ternare operatorului, cum puteți face doar o [Inaudibil] într-o singură linie. Se face de fapt același lucru ca acest răspuns float, punct și virgulă, și atunci răspunsul este egal cu aceasta, dar în loc de facandu-te sa faci două linii pentru că, e ca o scurtătură. Da? Audiența: Deci, dacă ai fugit acest lucru, ar fi 0,10? LUCAS FREITAS: Da. Da? Audiența: Este răspunde de fapt cod, sau este doar numele? LAUREN CARVALHO: Acest este, de fapt cod. Aceasta este ceea ce vom pentru a numi variabila nostru. Audiența: Deci, e doar un nume [neauzit]. LAUREN CARVALHO: Da. Am fi putut spune float x este egal cu 1,0. LUCAS FREITAS: Chestia e că numele variabilei este ceva pe care le utilizați. Este important pentru tine. Pentru programul actual, singurul lucru ce contează este valoarea pe care au în interiorul cupei. Motivul pentru care au variabile și nume de variabile este, astfel încât să-ar ști ceea ce ai de a face cu, cum ar fi ce fel de date sunt accesarea la un moment dat. Dar pentru codul de sine, dacă te sun răspunde sau întrebare sau ceva, destul de mult, nu contează. Nu contează. Atâta timp cât ești consecvent în fiecare apariție ea și, astfel încât să-l numesc altceva. Da? Audiența: Nu variabilele merge dincolo de funcția? Cum ar fi dacă ați fost de a crea un suport [Inaudibil], ai putea pur și simplu [Inaudibil] răspunde din nou? LAUREN CARVALHO: Nu. Audiența: [inaudibil] LAUREN CARVALHO: Nu. Care ar fi în afara domeniului de aplicare de această variabilă special. Și, de fapt, asta e un fel de interesant, pentru că atunci când ne-am lucruri cum ar fi bucle sau în cazul în care acestea condiții, dacă ai declara o variabilă într-un alt set de acolade, ea există într-adevăr doar în cadrul acestor acolade. Audiența: O ultimă notă despre la [inaudibil] plutelor. De ce ai vrea vreodată să utilizați int? Acest lucru este mai mult de o notă separată decât nimic, dar computerul este in mod semnificativ mai bine la manipularea int decât la flotoare manipulare. E ca un ordin de magnitudine mai repede. Deci, dacă ne-am manipulat pluteste doar, lucrurile ar fi mult mai lent. LAUREN CARVALHO: De fapt, se pare că există să fie o problemă cu flotoare. LUCAS FREITAS: Un fel de motiv pentru că, vă puteți gândi, este modul în care în binar puteți reprezenta numere întregi prin punerea 0 și 1 a lui. LAUREN CARVALHO: Asta-i urmatorul lucru. LUCAS FREITAS: OK. Minunat. LAUREN CARVALHO: Just dețin acel gând. LUCAS FREITAS: OK, eu voi să vă spun mai târziu. LAUREN CARVALHO: Înainte de a ajunge la ceea ce Lucas a fost să spun, operatorul prioritate. Acest lucru este de bun simț. Voi ați făcut acest lucru suficient. Deci, chiar dacă ceva e în paranteze, se va întâmpla mai întâi. Este multiplicare are prioritate peste plus, scădere, lucruri de genul asta. Deci, de fapt, doar nimeni nu vrea să spune-mi ce numărul unu de fapt, evaluează la? Audiența: 27. LAUREN CARVALHO: 27? Da. LUCAS FREITAS: Permiteți-mi să dau bomboane de persoane. LAUREN CARVALHO: În regulă. Ce despre numărul doi? Ce despre numărul doi? Audiența: 22. LAUREN CARVALHO: 22, da. Nu știu care a ajuns asta. Numărul trei? Audiența: 10. LAUREN CARVALHO: 10, da. Rece. Așa modulo. Lucas, vrei să explici modulo? LUCAS FREITAS: Modulo este acest operator care este de fapt foarte util pentru o grămadă de probleme. Dacă fac 55 modulo 10, ceea ce face aceasta să spunem că vreau să împărți 55 de 10. Ce primesc? Se simte la fel ca în cazul în care eu sunt de fapt doar face divizia, ceea ce este prima dată că am primit întreg? Audiența: 5. LUCAS FREITAS: 5. Și apoi restul este de 5, corect? Deci, e ca si cum de 5 ori 10, plus 5. Practic, ceea ce modulo nu, încearcă să împărți acest număr de acesta, și se vede ceea ce este restul al diviziei. LAUREN CARVALHO: Deci, doar returnează restul. Astfel numarul unu este ceea ce? 5. Numărul doi? Audiența: 3. LAUREN CARVALHO: 3. Numărul trei? 0. Și patru este 1. Exact. LUCAS FREITAS: Simplu, nu? LAUREN CARVALHO: De ce nu săriți peste acest pur și simplu pentru că nu avem cu adevărat timp, și oamenii par să înțeleagă. Deci, aici e ceea ce a fost Lucas doar vorbind despre. LUCAS FREITAS: Un alt motiv pentru care am ar folosi int loc de flotoare este că flotoare sunt foarte imprecise. Și de ce sunt ele imprecisă? David a spus că pentru a reprezenta un număr întreg, de exemplu, vom folosi 0 și 1, nu? Și apoi face practic multiplicare, nu toți cei operațiuni să știu ce număr zecimal aveți loc de binar. Ce se întâmplă acum dacă am încerca pentru a pune puncte zecimale? De fapt, de exemplu, dacă am numărul ca 3.33333? Se simte ca peste 10 3. Cum am de gând pentru a stoca toate 3 e că am după aceea? E foarte greu, nu? Nu pot să vă spun doar calculatorul, hei, am un 3, și atunci faci asta pentru totdeauna. De fapt, computerul nu este destul de inteligent pentru asta. Deci, practic toate computerul nu este care încearcă să pună cât mai multe cifre ca se poate până în memoria pe care le au. Deci, haideți să spunem că o să spune 3.3333, și asta e tot. Deci, nu este în măsură să-și exprime de fapt, exact ceea ce este că float. LAUREN CARVALHO: Avem un număr finit de biți, ceea ce înseamnă că nu fiecare număr zecimal va fi capabil să fie reprezentat cu precizie. Și astfel, în acest exemplu, dacă suntem imprimarea 0,1, suntem acum de imprimare din 20 de locuri. LUCAS FREITAS: Așa cum am spus voi, ai putea pune orice număr. Dar dacă ai făcut cele două locuri, vei primi 0.10, dar dacă ai pus 20 locuri, o să-ți arăt un buchet 's, deoarece aceasta este ceea ce se poate pune în memorie, nu? Dar chiar aici, până la 0, și apoi este doar o pune grămadă de numere aleatoare. Aceasta este un fel de ceva - LAUREN CARVALHO: Acest lucru se datorează faptului că noi suntem nu pot să reprezinte acest zecimal exact cu numărul de biți avem. LUCAS FREITAS: Și apoi calculator este de fapt oferindu-vă un număr de gunoi. Acest lucru nu este de fapt valoarea numărului. Audiența: Este la fel de aproape ca se poate obține [inaudibil] folosind [neauzit]. LAUREN CARVALHO: Deci, implicarea aceasta este ca să spunem că, în loc de fiind 0.100014, orice, ceea ce în cazul în care a fost 0.0999 - bine, OK. Să presupunem că răspunsul real pentru acest lucru a fost 0.9999999. Care este foarte aproape de 1, dar nu este chiar 1. E 0.99999. Asta înseamnă că, dacă eu iau asta 0,999, și l-am aruncat la un int, mă 0. Eu nu primesc 1. LUCAS FREITAS: Pentru că amintiți-vă, turnare de la float la int, tu doar ignora toate zecimale. Trebuie doar să le ignore. Nu există nici un astfel de lucru ca rotunjirea sau care rulează în jos atunci când typecast. De fapt, nu există această funcție ca face rotunjire, care este foarte importante, dar tu chiar crezi că, atunci când faci typecasting, e doar va șterge totul. Deci, chiar dacă aveți 0.99999, va pentru a da doar 0, dacă typecast [Inaudibil] un întreg. LAUREN CARVALHO: Deci, doar să fie foarte conștienți punct de plutind în precizie, mai ales atunci când veți începe pentru a utiliza flotoare in Pset1. Dar de mers pe jos prin intermediul ar trebui să te avertizez de la fel de bine. LUCAS FREITAS: Și de fapt, este într-adevăr greu, de exemplu, dacă am făcut răspuns float 1 este egal cu 1.0 pe 10, și apoi pluti răspuns 2 este egal cu 10,0 peste 100,0. Ei sunt același număr, corect? 0.1, corect? 1 peste 10 sau 10 de peste 100. Dar acum, dacă am încerca să vedem egalitatea, cum ar fi în cazul în care răspunsul 1 este egal pentru a răspunde 2, poate nu e de fapt va pentru a fi același lucru. Deci, flotoare sunt un fel de genul asta. Sunt ca fac egalitate.