LUCAS Freitas: OK, pretpostavljam Sada smo uživo. Dobrodošli na CS50 Supersection. Mi smo manje udobno. Moje ime je Lucas Freitas. Ja sam jedna CS50 voditelj TFS. To je Lauren. LAUREN CARVALHO: Bok, ja sam Lauren. Ja sam također Voditelj TF za CS50. LUCAS Freitas: Danas smo samo idete dati pregled što sve Dečki su naučili u tjedan jednom, nadam se da vam dečki dobar Osjećaj za ono što bi trebao znati za problema postaviti jednu. Samo par najave. Prije svega, radno vrijeme. Radno vrijeme se događa od ponedjeljka do četvrtka u različitim kućama u Annenberg svaki dan. Oni su vrlo dobar izvor za vas dečki dolaze i postavljati pitanja, a razgovarati s TFS, pa čak i razmjenu ideje s ostalim učenicima. Dakle, budite sigurni da koristi taj resurs u svoju korist. Druga stvar je CS50 Appliance. Za posljednji [nečujan] ti dečki nisu imali da se zapravo imati aparat. Upravo si učinio sve što je u Vaše osobno računalo. No, za ovaj problem, vi zapravo imate imati virtualni stroj, tako da se sigurni za preuzimanje CS50 Aparati te ga postaviti. I treća stvar je svakako početi problem postaviti što prije samo jer je puno lakše pronaći pomoći kada ste u početkom tjedna. Jer ljudi imaju tendenciju da čekati do posljednje sekunde za pokretanje zadataka, i onda ići na radno vrijeme, i tamo je puno ljudi. Gdje, ako idete u ponedjeljak, idete da se vidi da li može razgovarati s TFS skoro cijelu noć, i oni će biti više od rado će vam pomoći. LAUREN CARVALHO: Mogu li samo prestati što za samo jednu sekundu? Jesu li svi bili u stanju preuzeti CS50 Appliance? Su ljudi pokušali? LUCAS Freitas: Za preuzimanje, koju način, možete dobiti upute na cs50.net/appliance. LAUREN CARVALHO: Točno. I to ne malo potrajati za naše sys admini kako biste dobili licencu Ključ, pa se prijavite za free trial prvi. Na taj način ćete ga imati za 30 dana i zatim čekati Vaše licence koji bi trebao dati da vam za godinu dana. LUCAS Freitas: Prije svega, pričajmo malo o CS50 Appliance. CS50 Appliance je zapravo virtualni stroj koji idete izvoditi na vašem računalu koje je osnovi na nekom drugom računalu unutar svoje računalo. Koji je prilično cool. I zapravo to se koristi svugdje. Ljudi koji se tech bi znati da to se koristi cijelo vrijeme. što? Može imati više računala u jednom uređaju. Neka je zapravo pogledati na Appliance. Kad idete na Appliance nakon Registracijom, ti ćeš morati stavite svoje ime i prijavite se na Harvardu tako da možemo dobiti svi registrirani. Vi ćete vidjeti u osnovi samo pozadina, a zatim Home i Trash, i onda ti mali ikone. Ova tri ikone su zapravo najviše važne stvari koje možete imati u Vaš Appliance. Prvi je gedit, što je tekst urednik, baš kao Notepad ili kao bilo kakav tekst editor. To je samo nešto što ćemo koristiti za pisanje code, a zatim napraviti stvari s njim. Druga stvar koja mi imate ovdje je Chrome. Dakle, ako vam je potrebna za korištenje interneta u Appliance, to je ono što može koristiti. I treća stvar je terminal, što je zapravo vrlo slatka. Ljudi obično vrsta bojati terminala, jer je to vrlo starinski prijava u kojoj ste u biti samo upisati sve s tipkovnici. Ne postoji puno interakcije s mišem. Ali zapravo terminal radi jako dobre stvari. Prije svega, neka je samo proći kroz neke naredbe koje može koristiti u terminalu. LAUREN CARVALHO: I slobodno zaustavljanje nas ako imate bilo kakvih pitanja. LUCAS Freitas: Da. Dakle, prva naredba da imamo za terminal je li. Je li u osnovi znači popis sve, sve datoteke i svi ravnatelji, da imam na mjestu koje sam kod. Dakle, ako mi je činiti ls ovdje, idem vidjeti da imam neke imenike. Imam radne površine, preuzimanje, dnevnici, i VHOSTs. Oni su u plavo jer su su sve direktorije. Onda imate neke druge datoteke. Imate poput Pozdrav i hello.c, koji su samo slika, a oni su u različitim bojama. Dakle, ovo je vrlo važno naredbe samo možete vidjeti što su datoteke i direktorije koje imate u direktoriju koji ti si na u terminalu. Kada vidite jharvard @ aparata i onda malo simbol tamo, tilda, to samo znači da je to katalog koji ste u ovom trenutku. LAUREN CARVALHO: Dakle upišete ls je gotovo kao što kliknete na mapi koji je naveden tamo, u to pokazuje svi vi sadržaja koji su unutar te mape. PUBLIKA: Ima li tekst nakon hello.c? LAUREN CARVALHO: Oh, ne mogu vidim da je, zato što je plava. LUCAS Freitas: To govori dnevnici i VHOSTs. LAUREN CARVALHO: Oni su samo druge mape. Žao mi je, to je stvarno teško vidjeti. Možda, ako mi je ugasio svjetla? Colton, hoćeš pokušati pronaći prekidač za svjetlo? Žao mi je zbog toga. Nisam razmišljao o tome. LUCAS Freitas: Ali to je u osnovi - da, ako bi mogao - LAUREN CARVALHO: zumiranje na zaslonu. LUCAS Freitas: ja ne ima tu značajku. LAUREN CARVALHO: [nerazumljivo]. OK. Pa, postoji samo puno prirodnog Svjetlo u ovoj sobi, kao dobro. LUCAS Freitas: Neka samo pretpostaviti da još su dva imenike tamo. LAUREN CARVALHO: Dovoljno je imati s nama. To je samo dio koji ćete se gleda na terminalu. LUCAS Freitas: sljedeća naredba zapravo možda želite organizirati Vaše slike - Na primjer, svi vaši C slika u jednom katalog-ali nemate katalog samo za C podnijela još. Vi zapravo možete napraviti imenik preko terminala, kao i, što je ista stvar kao i desnim klikom miša i govoreći Nova mapa. Naredba je napraviti katalog, koji je mkdir, tako da u osnovi "napraviti" i "Katalog". A onda možete staviti naziv imenika. Recimo da sam htjela da se zove, Ne znam, recimo pset1 Doing to, samo sam stvorio imenik. Idemo samo provjeriti da je tu. Dakle, ako mi je činiti LS, sada vidim trupaca, a onda pset1, a zatim VHOSTs. Dakle, imam novi katalog tamo. A onda, nakon što su novi katalog, Možda želite navigaciju u nju, tako da sljedeći naredba to cd, koji je u biti samo znači ići na specifične imenik. Dakle, ako želim otići na pset1, Ja samo mogu učiniti cd pset1. LAUREN CARVALHO: cd zalaže za promjene imenik, [nečujan] moći zapamtite to. LUCAS Freitas: A sada vidite da je umjesto da samo imaju jharvard aparata, sam jharvard aparata, a zatim pset1, jer se nije pojavio mi gdje sam u ovom računalu. Sada, ako želim vratiti u katalog koji je prije ovoga, sam Možete napraviti cd dot točku, što samo znači ići u imenik da sam bio prije, kao roditelju to imenik, u osnovi. A sad vidim da sam natrag na jharvard. Sljedeća stvar koju ja mogu to učiniti je RM, koji je ukloniti datoteku. Na primjer, neka prvi učiniti ls vidjeti što imam ovdje. Moram pozdraviti i hello.c. Recimo da želim da ih ukloniti. Ja mogu učiniti rm pozdrav. To će reći: "ukloniti obične datoteke Halo? "A ja kažem:" Da. "I sad kad bih učiniti ls, vidim da je to Ne postoji više. Ako sam pokušati iskoristiti rm za imenik, Međutim, to ne ide da biste se mogli ništa učiniti. To će reći, hej, što Ne možete ukloniti imenik. Dakle, imamo ovaj drugi dolaze zove rmdir, koja je upravo u osnovi znači ukloniti imenik. Ja mogu, na primjer, izvadite pset1. A ako mi je činiti LS, ne znam ima ga više. Sva pitanja o tome? Ne? Da? PUBLIKA: Je li važno da ostavite Prostor iza - kad god počnite tipkati nešto u? LUCAS Freitas: Da. Ako ja volim cd i imenika, Moram staviti prostora. Što prostor pričaš? LAUREN CARVALHO: prostor između cd i [nerazumljivo]. LUCAS Freitas: Da, morat ćete staviti prostore, jer je cd naredbe, a onda sljedeći niz koji upišete u osnovi katalog. Dakle, to je kao argument. Da? Publika: Kada popis, svih onih različite direktorije, zar ne? LUCAS Freitas: Da, oni su u telefonskom imeniku. Publika: Što je razlika među imenike? LUCAS Freitas: Oni su samo različite mape. Katalog je mapa na vašem računalu. PUBLIKA: Otvaranje mape. LUCAS Freitas: Da, to je samo otvoriti mapu. LAUREN Carvalho: ovdje, one koji su u plavim su stvarni direktorije koje možete dobiti na i onda vidjeti hrpu stvari koje su unutar toga, što je nesretno jer zapravo ne može čitati one u plavo. I oni u bijeloj boji samo slika koje su unutar trenutnog imenika. LUCAS Freitas: Dakle imenike su mape. Druge one su slika. Publika: Što je naredba da ga vratili ili se to jasno? LUCAS Freitas: Za brisanje? LAUREN CARVALHO: Za brisanje? LUCAS Freitas: Mislim to je "jasno". Da. Tako da samo upišite jasno je li vaš ekran je pretjerao. Bilo koja druga pitanja? A vi ćete naučiti hrpu drugih naredbe samo prirodno tijekom semestar, jer oni su vrlo korisne. Tako sada pričajmo o sastavljanju. Razgovarali smo o pseudocode i izvorni kod i objektni kod. I tu je puno kodova, a možda ti dečki su zbunjeni o tome. Idemo razgovarati malo o tome što se događa kada pišete program, a vi ga sastaviti, i to postaje izvršnu datoteku. Oni su sve riječi koje ti dečki vjerojatno čuli, a možda i nisi stvarno siguran što se događa. Recimo, na primjer, da želim napisati program koji kaže "bok". Prva stvar koja dolazi u vaš um je ste vrsta pokušati razmišljati o tome kako ste će to učiniti u vašem umu, a vi ste vjerojatno misleći na engleskom ili neki drugi jezik, kao što su prirodni jezik, vjerojatno. I onda mislite, dobro, ako želim, na primjer, napisati program koji kaže: "Zdravo," ja bih pokrenuti program, Ja ću ispisati pozdraviti, a onda hoću izađite iz programa. To je pseudocode. To je u biti samo pokušavaš dolazi do niza događaja da ćete učiniti da bude mogli napisati program. Tada imate izvorni kod, a izvorni kod ne mora konkretno biti u C. Pričamo o izvornog koda u C, jer to je jezik učimo, ali naravno Kod može biti prilično mnogo bilo programski jezik koji imate. Kasnije u semestru, idete učiti druge jezike. To je također i izvorni kod. Na primjer, ovdje, ovo je moj izvor broj, a onda sam uključujući knjižnica, a onda krenem Glavni, a onda sam ispisati. I Laura će razgovarati malo malo o svemu ovome. Dakle, ovo je izvorni kod. I ono što je predmet kod? Objekt je hrpa nula i one, u osnovi. Ono što se događa je što u početku imati pseudocode, što je sve na engleskom jeziku. I mislim, da ga razumiju. Vjerojatno tvoji prijatelji razumiju to, a većina ljudi bi razumjeti ideju. No, računala su stvarno glupi, a oni ne razumiju engleski, tako da su to prevesti u nešto, obično prevodi u neke programski jezik. A možete misliti na programiranje jezik kao vrsta poput jezika da vam kažem svoje računalo how govoriti i razumjeti. Vi ste zapravo pisanje nešto u jezik koji i od vas i vaše Računalo razumije. To je izvorni kod. Tako će oblik pseudocode na izvoru broj, to je do vas. To je u osnovi radite svoj program. No, problem je u tome Računalo ne radi ni Razumijem programski jezik. To ne razumijem koda na sve. To je zapravo samo razumije jedinica i nula. Dakle, imamo vrlo čarobnu stvar zove prevodilac, koji u osnovi je će se izvor pozvao da vam napisao u jeziku i vi i vaše računalo govoriti, a sad si će transformirati da je u jedinica i nula. Tako je u osnovi ono što se je prevodilac to dobiva izvorni kod, u ovom slučaju C, to će ga pretvoriti u nule i one koje računalo razumije i može napraviti izvršne datoteke iz nje. Ima li to smisla? Možete samo misliti prevodilac kao nekakav prevoditelj koji je pomažući vam objasniti na računalu upravo ono što je trebao učiniti. Ali kako ću sastaviti. Vratimo se na aparatu, a recimo da radim taj program. Prvo ću napraviti imenik ovdje, a ja ću ga zvati "Praksa". Sada idem za navigaciju u imenik, pa cd praksa. Sada sam u praksi. Sada želim početi gedit, pa kako ću to učiniti? I bilo možete kliknuti ovdje, ili mogu samo doslovno upišete "gedit", i to se događa otvoriti za mene. Sada ću upisati moj program, pa upravo ono što sam napisao u slajd. Ja proglašavam knjižnicu. Radim int glavnu, prazninu. I sad radim printf, bok. Sada ću spasiti to. Dopustite mi da to u praksi, a Ja ću nazvati ovu hello.c. Dakle, sada je spašen. Ako želim da ga sastaviti, ja zapravo možete to učiniti na dva različita mjesta. I bilo je to ostvarivo prozor terminala, tako da je ovo velika stvar, ili možete koristiti gedit koji zapravo ima Terminal prozor ovdje. Na taj način možete vrlo jednostavno samo raditi vaš broj, i onda možete samo upisati god ovdje, i pokušati ga sastaviti. Pa kako ću sastaviti kod? Najlakši način da smo je pomoću izraditi, koja je funkcija koje je u osnovi će sastaviti svoj kôd. Vi samo reći da hello, pa "Napraviti" i naziv programa. Ups. Ovo je nezgodno. LAUREN CARVALHO: Može li [nečujan]? LUCAS Freitas: Žao mi je. Nisam ga spremiti u Pravo imenik. Dođite vježbati, a sada spremite ga kao hello.c. Žao mi je. Sada je spašen. Dopustite mi samo napraviti ls i biti sigurni da je to ovdje. OK, sad je ovdje. Pa sad, ako mi je činiti da pozdravi, da pljuje puno stvari, ali onda je to samo daje mi još jednu liniju za terminal, koji je znači da je bilo uspješno. Pa sad, ako sam napraviti ls opet, ja zapravo pogledajte ovu sliku u zelenom, koji je izvršnu datoteku. A onda, ako želim ga pokrenuti, sve to Moram učiniti je dot slash pozdraviti. To će pozdraviti ovdje, pa to je točno ono što sam tražeći da. Postoji još jedan način izrade, koji se koriste Dong. Dong je samo prevodilac koje imamo, i to je još malo preopširan za prevesti. No, to radi jednako dobro. Dakle, ako mi je činiti Dong, a zatim-o, a zatim Ime koje želim dati izvršnu datoteku, pa recimo "Zdravo." I onda sliku koju želim sastaviti, hello.c. Također će sastaviti. I imate li dokument ovdje, i Ja samo mogu izvršavati kao dobro. Dakle, obojica rade. Ima li to smisla? Ima li pitanja? PUBLIKA: Možete li uvećati u malo? LUCAS Freitas: Žao mi je? PUBLIKA: Povećavanje? LAUREN CARVALHO: Mislim da vam mogu samo naredbu plus. LUCAS Freitas: Naredite što? LAUREN CARVALHO: Naredba plus. LUCAS Freitas: Ne. LAUREN CARVALHO: Oh, to nije ide na posao, jer - to je zato što smo postaviti razlučivost za ovu stvar. LUCAS Freitas: ja ne Mislim da možemo zumirati u. Da, ne možemo zumirati. Imate li još jedno pitanje? Oprostite. PUBLIKA: Možete li ponoviti Dong? LUCAS Freitas: Zveket? Dong je ista stvar kao i napraviti, ali Razlika je u tome što prvi put idem pisati Dong, koji je naredba, onda ću to učiniti -0, sve, što je Samo što ćemo se učiti kasnije kao zastavom. Dakle, samo mislim da se uvijek morate staviti-o. A onda je prvi, ti ćeš staviti naziv izvršne datoteke, osnovi datoteka koja ste će se stvoriti. Dakle, ja mogu reći, primjerice, hello2 i onda sliku da želim sastaviti, što je. c sliku. Dakle, to je hello.c. Ima li to smisla? PUBLIKA: Pozdrav što? Što je to? LUCAS Freitas: Hello.c. I ako sam ga sastaviti, a ako Ja ne ls, također imam hello2 da sam upravo sastavio. A ako sam pokušati ga pokrenuti, to će učiniti istu stvar kao i pozdraviti, samo ispisati bok. PUBLIKA: Kako to da za napraviti možete staviti hello.c poslije? LUCAS Freitas: U napraviti, što ne moraju staviti. c. U napraviti, samo reci naziv programa. Ne moraš reći. C. Ali za Dong, što bi trebao. Ivanković: Uz zveket vi također morati dodati [nečujan] LAUREN CARVALHO: Da. Tako i vi morate knjižnici. LUCAS Freitas: Da, to je nešto ćemo koristiti kasnije. To se zove povezivanje, a ja mislim da smo ćemo govoriti o tome kasnije. Još jedno pitanje? PUBLIKA: Imate staviti dot slash Zveket? LUCAS Freitas: Ne. Dot slash je samo otvoriti izvršnu datoteku. Dakle zveket, samo napisati "Dong", a zatim, ako želite otvoriti izvršnu datoteku koju ste upravo sastavio, onda vam dot Slash i ime. Ima li to smisla? Ivanković: Ako ste bili na samo promjene [Nečujan] na Pozdrav svijetu, zar ne moraju ga kompilirati? LUCAS Freitas: Da. ako želim reći, primjerice, "Hello postoji, "Ja mogu samo spremiti sada, i ja samo ga sastaviti opet. Pa neka mi to make pozdraviti. A ako mi je činiti hello, to će kažu "Zdravo." Ima smisla? Bilo koja druga pitanja? PUBLIKA: Imate li uključiti standardni I / O koordinirati rad? LUCAS Freitas: Da. Standardni I / O je u osnovi knjižnica koja ima Provedba za printf. Tako da je stvar pravo na top uključuje stdio. To je, uključujući knjižnicu koja osnovi ima hrpa različitih alata koje možete koristiti. jedan? Od njih je printf da je funkcija da je u osnovi otisaka Poruke na zaslonu. Bilo koja druga pitanja? Ne? OK. Dakle, sada ćemo govoriti o - LAUREN CARVALHO: Recimo samo ići u stilu vodič. Želite li samo ga pronaći ovdje? LUCAS Freitas: Dakle, idemo govoriti o stilu. LAUREN CARVALHO: Oh, David nije završila utrku. OK. Zašto ne možemo vratiti Stil na samom kraju? To je zapravo obnovljeno kao što mi govorimo. LUCAS Freitas: Da. Neka je put David dovršiti. LAUREN CARVALHO: Može pređemo zapravo? Dakle, nadam se da svatko je bio uživajući nule. Nažalost, vrijeme je da odmaknuti od toga - na žalost, to je vrijeme da se krene dalje od ove lijepe programskih blokova na C. No, na svu sreću, sve programiranje konstruira da ste radili s nule u su izravno prevesti u C, a mi smo će početi učiti o Neki od njih upravo sada. Neka prvi govor o uvjetima u Boolean izraza. To se radi na rezervi povećati potrošnju baterije. LUCAS Freitas: Kako je da ne radi? OK. Vi idete tamo, ja ću doći - LAUREN CARVALHO: Dakle, uvjeti su važni jer nam omogućuju da se uvesti logiku u naše programe. Evo primjer stanja unutar programa C. Idemo na umu kako je to - Dakle, ovo stanje blok upravo ovdje, ovo printf izjavu neće izvršavati osim ako se stanje unutar zagrade, n veći od 0, true. Sada, svi uvjeti unutar F izjave su Boolean izraza, što znači da postoji su samo dvije opcije. Oni su ili mogu procijeniti da vrijedi, ili mogu ocijeniti da lažno. Dakle ovdje, tako da je ovo ima smisla, zar ne? n veći od 0, znači da je pozitivno broj, što znači da će ispisati out "ste pokupili pozitivan broj." Postoji puno Boolean izraza koji može tvoriti stanje s init priopćenju. Imamo manje od. To je manje od ili jednaka. Ovo je samo smiješno [nečujan]. Ako želite printf da se dogodi, ako je to veći ili jednak 0, tada što će izabrati. Dakle ravnopravni samo dodaje pravu Nakon više od znaka. Jednaka jednaka, koje se razlikuje od samo jedan znak jednakosti, jednaka jednaka zapravo znači da je sve što je na Lijeva strana je to isto kao i ono što je na desnoj strani ove gdje je jedan znak jednakosti je ono? Ono je samo jedan znak jednakosti? Dodjela. LUCAS Freitas: Tko je to rekao? Je li bombona? Oh, ne. Oprostite. Oprostite. Oboje ste dobili slatkiše. Oh, u redu! Troje ljudi dobili slatkiše! LAUREN CARVALHO: Dakle ova ovdje je prasak operator prethodi znak jednakosti, tako da je nije jednak. Dakle, ako je to bilo u mom stanju, Tijelo stanja bi izvršiti samo ako sve što je u lijeva nije isto što i ono što je na desnoj strani. Ja također mogu imati samo uskličnik. Zapravo vidjet ćemo u lice slajd kako će to koristiti. LUCAS Freitas: Ima li pitanja? Ne? LAUREN CARVALHO: Možemo iskombiniramo Boolean izraza konstruirati više zapetljan uvjet. Pa evo, ako je sve što je na lijevoj strani na desnoj strani od dvostrukih rešetaka ili sve što je na desnoj strani Dvostruke zagrade true, onda ćemo ispisati nevažeća. I onda ovdje, ako je što god je Na lijevoj strani dva znakove za i što god je na desnoj strani strane na dva znakove za true, onda ćemo ispisati vrijedi. Dvostruke zagrade nazivaju logično Operator OR dvostruka znakove za su zove logično operator. Da? PUBLIKA: Jesu li to samo donji dio kućišta l'e? LAUREN CARVALHO: Ne. Oni su zapravo - znate reakciju, kao što je iznad tipki za povratak? Vidite li to? LUCAS Freitas: To je zapravo bar. LAUREN CARVALHO: To je zapravo samo dva bara. PUBLIKA: Mogu li koristiti jednaka jednaka za gudače? LUCAS Freitas: Ne. Idemo naučiti kasnije nešto o tome. LAUREN CARVALHO: Tu je funkciju koje možete koristiti. Ali vi ne morate brinuti da samo još. Što ako sam dati ovaj program broj 5? Što će ispisati? PUBLIKA: [nečujan] valjana. LAUREN CARVALHO: Valid? Da. Ja ne znam tko je dobio to. [Smijeh] LAUREN CARVALHO: To je vrsta zastrašujuće [nečujan]. Ivanković: Pa double i, to samo znači i? LAUREN CARVALHO: Da. Dakle, broj 5 je i veća od 0 a manji od 100. Ivanković: Zašto bi to biti jedan? LAUREN CARVALHO: Jedan znak za struju je zapravo nešto drugo, a to je bitovni operator, koji ćete upoznati kasnije. No, to je nešto što zapravo radi s komadićima određenom broju. LUCAS Freitas: Samo mislim da ne morate brinuti o tome za sada. LAUREN CARVALHO: Mislim da je to vjerojatno izlazi sljedeći tjedan. LUCAS Freitas: Bilo koja druga pitanja? Ne? LAUREN CARVALHO: Dakle, vidjeli smo da je to blokirati može stajati samostalno, ali se može također biti upareni sa i drugi blok. Dakle, u tom slučaju, ako je n veći od 0, idemo ispisati "You pokupila pozitivan broj. "drugo, što znači Ako je 0, ili ako je manje od 0, idemo za ispis, "Izabrao si negativan niz." Zanimljivo je da to međusobno isključuju druge. Tu nikada neće biti slučaj u kojoj je i to može i isprintati. Siguran sam da ste radili sa ako / ostalo boksati u nule, tako da bi to trebalo biti lijepo upoznati. Da? Ivanković: Ne trebamo prostor između int n = GetInt zatim prostor u ako je izjavu? Kao što mi koristimo crtu [nečujan] LAUREN CARVALHO: Oh, prostor ovdje? PUBLIKA: Kao da je, ali udvostručite prostor. No, ići gore. Ići gore. LUCAS Freitas: Samo crta? Publika: Da. LUCAS Freitas: Samo prazan red? Publika: Da. LAUREN CARVALHO: Prazan redak? Ne. To je samo stilska stvar. LUCAS Freitas: To je baš kao nekad ste upravo preskočiti neke linije tako da kod ne izgleda kao veliki blok teksta. LAUREN CARVALHO: Mislim da je ono što se dogodilo je da smo imali komentar ovdje, ali sam ga je izvadio, tako da ti dečki bi razmišljati o kodu, a nego samo pročitao moj komentar. U principu, razmak ne stvarno utjecati na način na koji program radi. To je više od stilske stvar. I kad imamo stil vodič ažurirane i spreman ići do kraja supersection, razgovarat ćemo o tome više. Nešto nije u redu s ovaj program, zar ne? Budući 0 zapravo nije negativni broj. Tako ćemo vidjeti možemo li popraviti. Vjerojatno možete zamisliti uz to, kaže, zar ne? Ako je n veći od 0, tiskamo, "Vi pokupila pozitivan broj. "Tada drugo ako je n manji od 0, "Izabrao si negativni broj. "drugdje" Izabrao si 0. " Sada Zanimljivo je da je to bi moglo ići u nedogled. Možete imati IF bloku if blok, drugi drugo, ako blok, drugo, ako, else if, else if, inače, u osnovi koliko god želite. A kad je izgrađena kao što je ovaj, to su sve će biti ekskluzivno od drugoga. Da? Ivanković: Pa zašto se jednostavno ne koristite drugi, ako umjesto [nečujan]? LAUREN CARVALHO: U ovom slučaju, da sam Ako se može koristiti druga, a to bi apsolutno u redu, jer Uvjeti su sami po sebi ekskluzivno od drugoga. No, ako su ispunjeni uvjeti nisu bili isključivi jedan od drugoga, to bi ih prisiliti da nikada i ocjenjivati, ako to ima smisla. Ivanković: U tom slučaju, mogli smo se gnijezde Drugo, ako se u prvom ako? LAUREN CARVALHO: Ako - što misliš? Ivanković: Ako su dva uvjeta nisu međusobno isključivi? LAUREN CARVALHO: Ako su uvjeti nisu međusobno isključivi? No, želite samo jedan od njih pokrenuti? PUBLIKA: Vi želite samo ako umjesto drugog. LAUREN CARVALHO: Da. Tu su i uvijek će biti puno načina na koje možete to učiniti. Možete definitivno nest ih. I vidjet ćete u budućnosti slajd koji možete imati više IFS, samo jedan nakon drugog. No, to je način logično organiziranje protok vašeg programa. LUCAS Freitas: A tu je još jedan stvar je da ste pitali o stavljanju ako i nakon toga još jedna, ako. To će raditi savršeno, ali to je loše Dizajn, jer u osnovi ako provjeriti prvi, ako i primijetite da broj je veći od 0, što može samo završiti program. Vi ne morate provjeriti je li to je manje od 0, zar ne? Ali, ako ne, ako, ako, to će provjeriti i, a ako mi je činiti ako je još, to će provjeriti je li je veći od 0. Ako je to, to se neće ni pogledati na ostalim linijama koda. Dakle, vi zapravo ček kao dva puta nepotrebno, pa je to razlog zašto smo učiniti ako drugo, ako. Bilo koja druga pitanja? Ivanković: Pa funkcionalnost od drugoga ako je ista kao i ako je to samo ako je? LAUREN CARVALHO: Ne. Vi ste zapravo ide vidjeti u moj sljedeći slide primjer u kojem se može biti različiti. U ovom slučaju, to je gotovo ista. Pa evo, imamo primjer višestrukih ako izjave, a funkcionalnost nije isti kao da sam upravo rekao, ako drugo, ako je drugo, ako drugi ne. Recimo samo razmišljati o tome što bi se ispisati da li sam upisati broj 95 u ovaj program. PUBLIKA: [nečujan] LAUREN CARVALHO: I onda? PUBLIKA: [nečujan] LAUREN CARVALHO: Da. Dakle, u ovom slučaju, ti uvjeti su međusobno ne isključuju jedna drugu. I zato postoji ništa zaustavljanja ovaj uvjet od ocjenjivanje je li to jedan već ima, oni su samo sve će se ispisati. Pa kako bih mogao popraviti ovo? PUBLIKA: drugo oklijevanja? LAUREN CARVALHO: Možete koristiti drugdje IFS. Ja mogu promijeniti redoslijed od njih, zar ne? Ako sam prvi put učinio ovo? Pa, zapravo, nema. To ne bi raditi za 95. LUCAS Freitas: Ne, samo drugo oklijevanja. LAUREN CARVALHO: drugo IFS će imati fiksne to. Da li to jasno se zbunjenost između oklijevanja i drugi oklijevanja? PUBLIKA: Samo sam htio da vas pitam, ako nisi koristiti if, to će zaustaviti? LAUREN CARVALHO: Točno. Dakle, samo ovaj prvi. Ako sam ušao u broj 95, samo to bi ispisati, i to nikada bi napredovala na drugo. LUCAS Freitas: Samo nekako mislim da je to što ako se to dogodi, to učiniti. Ostalo je kao i ako ne, provjera za to, a onda raditi. Dakle, kao da su svi međusobno isključivi. Ne možete dobiti u dva iznad njih. PUBLIKA: Mogu li koristiti logično I za tu situaciju? LAUREN CARVALHO: Da. To je još jedan način na koji smo mogli imaju fiksne ovaj problem. Mi smo mogli definirati kreće se, zar ne? Tako sam mogao reći, ako je n veći od 90 i manje od - dobro, mislim da je ovo jedan ne stvarno važno, ali ovdje sam mogao reći, ako n je veći od 80, a manje od 90. Veći od 70, manje od 80 godina. To bi također radili. [Smijeh] LUCAS Freitas: Bila je uplašena. LAUREN CARVALHO: Nemojte se bojati. LUCAS Freitas: Nije da će to biti u redu. To je samo da je to nepotrebno preopširan. Kao u računalnoj znanosti, trebalo bi biti kao jednostavan kao moguć dok imate funkcionalnost. Želite li bombon? PUBLIKA: Nemojte ga trebate. LAUREN CARVALHO: Plašiš svatko, Lucas. LUCAS Freitas: Žao mi je. LAUREN CARVALHO: David je također spomenuo ove se izjave u klasi. Uglavnom ono što se događa je prekidač Izjava traje varijablu. U ovom slučaju, uzimamo cijeli broj. Ako cijeli broj je 1, idemo u ispisati, "Izabrao si mala broj. "Ako cijeli broj je 1," Vi pokupila srednje broj. "Ako broj je 3, "Izabrao si visoka broj. "I ja sam također imao zadani slučaj ovdje, ali to ne pokazuje up, što je loše. U osnovi, to je samo još jedna sintakse. Mogli smo provesti to točno Ista je stvar s ako i drugo, ako izvješća. No, kada ima puno drugačija Uvjeti i puno drugačija varijacije na ono što želite učiniti za svaki ulaz, ovo je opcija. Dakle, to je samo dobra sintakse znati. Da? Ivanković: Zašto je nema backslash n u prvoj? LAUREN CARVALHO: Za gore? Nema backslash n tamo gore jer GetInt - ako pokušate to, to ću dati vam na taj zahtjev. Daj mi broj od 1 do 3 godine. I ako sam stavio kočenjem n, to bi uzmi me u sljedeći redak, ali ja jednostavno Htio ih upisati cijeli broj odmah nakon debelog crijeva. Mogao si staviti kočenjem n. To nije velika stvar. Da? PUBLIKA: Za ovaj broj, je to jedan slučaj, jer je to to je prvi slučaj? Jer - LAUREN CARVALHO: Ne, ne, ne. Dakle, ovo je daj mi cijeli broj između 1 i 3. Ako je n = 1, ja to ispisati. Da sam pitao za slova, mogao sam imati rekao mi je pismo između A i C. Onda će to biti slučaj A. PUBLIKA: [nečujan]. Slučaj bi samo [nečujan] LAUREN CARVALHO: Da, u pravu. Da? PUBLIKA: Što ako je htio imati više relacijskih izraza? Dakle, umjesto da se kaže n jednak 1, [nečujan] n je veći od 1, u prvom slučaju? LAUREN CARVALHO: Zapravo, ako mi se ne definirati neki od ovih slučajeva, ovo bi se nositi dolje. Pa zapravo, možda to nije što pitate. LUCAS Freitas: Mislim da se pita da li Slučaj je n veći od 0, slučaj manje od 0. LAUREN CARVALHO: Možda switch tvrdnja nije stvarno ono što želite za korištenje u tom slučaju. LUCAS Freitas: Izjava prekidač samo za vrijednosti, tako da ste provjeru Vrijednost je kao ovo ili ono. Tako da ne mogu zapravo staviti uvjete. PUBLIKA: Što ako osoba vrste s [nečujan]? LAUREN CARVALHO: To bi bilo moj zadani slučaj, koji se, nažalost, ne možete vidjeti. LUCAS Freitas: [nečujan] bi ih vidjeti. LAUREN CARVALHO: Zapravo, Znaš što? Idemo na studij 50, a ja ću Samo uvećanje na slajdovima na studiji 50, jer to je samo neugodno. Pa neka mi zapravo ide na stanju. To samo ide na potrajati malo dulje. U redu. Dakle, žao mi je. Barem sada ćemo moći vidjeti sve to bez rezanja. U redu. Dakle, ako su stavili u 10., da bi propust Ovdje mom početnom slučaju, i ja Upravo će ispisati nevažeća, jer sam zamolila ih da uđu cijeli broj između 1 i 3. Bilo koja druga pitanja? Da? PUBLIKA: Recimo na slučaju jedne, slučaj tri, recimo da je htio da bude sve ista stvar, tako da pokupila brojne to nije medij broj. U tom slučaju, to bi bio višak? Hoćeš li promijeniti tekst u oba od njih, ili bi se neki zalihost? Postoji li način da se kombiniraju [Nečujan]? LAUREN CARVALHO: Postoje načini na kombinirati ih, ali vjerujem da mogu samo kombinirati susjedne one. Dakle, ako sam ne definira ništa za slučaj dva, to bi odnose se na oba slučaja. Oh, ako nisam stavio sve za slučaj jedan, to bi važilo za oboje Slučaj jedan i dva. Ako to ima smisla. PUBLIKA: Možete li ponoviti taj jedan? LUCAS Freitas: OK. Ako je u osnovi, kao što je, imate ista stvar, ali ne stavi bilo ovdje, ne bi se ni za Slučaj jedan ili dva slučaja, to učiniti. Zar ne? A to pauza znači ako dobijete u ovom slučaju, samo ostaviti. Dakle, to je ono što znači kočnice. Dakle, ako sam upravo to učinio, pogledate, to je slučaj je jedan, a vi bi samo to učiniti. Ako je to bio slučaj s dva, što bi također samo doći ovdje i raditi. PUBLIKA: Ali to možete učiniti? Ako postoji nešto za Slučaj dva [nečujan] LAUREN CARVALHO: Ne vjerujem možete to učiniti. Mislim da ne možete preskočiti okolo. Možete li to učiniti, Rob? Ne mislim tako. Ivanković: Pa samo jedan broj može ići nakon slučaja, zar ne? Tu ne može biti slučaj jedan, zarez, dva? LUCAS Freitas: Ne, ne možete. Ti definitivno ne mogu. LAUREN CARVALHO: Mislim, stvar je to je opcija, a to se ne bi moglo stane vaše korištenje slučaj, tako onda će koristiti ako su uvjeti. Ivanković: Pa zašto bi to učinio? Prekidač? LAUREN CARVALHO: Ja bih iskoristiti ovu ako vrlo su definirani - zapravo, Lucas, je li ti blokira. LUCAS Freitas: Oh, ispričavam se. LAUREN CARVALHO: Ako imate jako definirane ponašanja koje želite za svaki ulaz, to bi moglo biti Malo više koncizan nego pisanje ako je izjavu za svaku od njih. PUBLIKA: Što radi slomiti znači opet? LAUREN CARVALHO: pauza znači zaustaviti. Zapamtite, ako nisam imala ovu pauzu Ovdje smo samo bi pao dolje u sljedećem slučaju. LUCAS Freitas: Break znači da se iz izjave prekidača. Jer ako je to 1, želim ispisati to i ostaviti. Ne želim provjeriti bilo što drugo. Ivanković: Ne žele ispisati bilo što drugo. LUCAS Freitas: Da. Zato što je to međusobno isključuju. Ivanković: I ovo je samo nastavak na sljedeći slučaj, ako prvi slučaj nije istina? Ili to testirati sve slučajeve u isto vrijeme? LUCAS Freitas: Ne, to Provjere sekvencijalno. Dodaju da. Još jedno pitanje, onda moramo premjestiti na tako možemo pokriti sve. Da? Ivanković: Pa za slučaj, može imati učinio nešto osim samo u jednom? Možete li mu dati niz? LUCAS Freitas: Ne. LAUREN CARVALHO: Ne mislim da možete mu dati niz. LUCAS Freitas: Ne možeš ti Ne mogu dati niz. PUBLIKA: slučaj je specifičan [Nerazumljivo]. LUCAS Freitas: Switch je vrsta vrijednosti. Vi radite različite stvari, ovisno na vrijednosti, određene vrijednosti. Ne možete napraviti niz, što se ne može i bilo što drugo. To je samo još jedan alat za vidjeti. LAUREN CARVALHO: Većina ljudi ne koriste prebaciti izjave jako puno u CS50, , ali da je tamo. U redu. Dakle, sljedeća stvar ćemo razgovarati o je trodjelna operatera. Ovo je samo još jedna vrsta uvjetnih. Uglavnom ono što se ovdje događa je da sam molba za cijeli broj, a ako je n veći od 100, ja ću isprintati "Visoki". Ako nije, ja ću ispisati "niska." Dakle, ono što radi je stanje upravo ovdje u zagradama, a vi može nekako mislim da ne dolazi u obzir što ja tražim je li je to istina ili ne. Ako je to istina, ja ću to učiniti prvi stvar, a ako to nije istina, ja sam će učiniti ovu drugu stvar. Sva pitanja o ternarna operatera? LUCAS Freitas: Samo želim napomenuti iz David je da kad god imate Uvjet - LAUREN CARVALHO: Valjda Davida gledate preko live stream. LUCAS Freitas: On radi život tok upravo sada. Dakle, kad god imate stanje, ti si trebao staviti vitičastim zagradama, baš kao što smo i do pomaka Izjava ovdje. Imamo vitičastim zagradama ovdje. Što god se uvjeti, ti si trebao bi također staviti. LAUREN CARVALHO: Vidjet ćete to u stilu vodič. Mi zapravo ne moraju stil vodič upravo sada. Mislim da je David i dalje radi. LUCAS Freitas: On je rekao da je to je samo radi sada. LAUREN CARVALHO: Oh, je li to raditi sada? OK. Dakle, očito je ove godine u stilu voditi, čak i ako imate samo jednu liniju, moraš staviti one vitičastim zagradama u. Ne moraju nužno za funkcionalnosti programa. A možda bismo trebali uzeti pauzu nakon što su uvjeti i ići ravno na stil vodič za brisanje neke od tih stvari? LUCAS Freitas: Da. Imate li pitanje? Ivanković: Ne, ja ću samo čekati do stilu vodič. PUBLIKA: Možete li se vratiti na ternarnom operatera? LAUREN CARVALHO: ternarnih, yes. LUCAS Freitas: ternarnih operater osnovi, ako drugi izjavu, ali umjesto da imaju dvije linije provjere if a zatim drugo, ti samo jednu liniju. Tako je u osnovi, ako želim dati String Vrijednost visoke ili niske, a ja žele napraviti visoke ako je n veći od 100 ili niska, ako je manje, što mogu učiniti je ovo [nečujan] string će biti, a onda sam pitajte Program je N veći od 100? Dakle, to je razlog zašto sam taj izraz u zagradama, a zatim upitnik. Pitam je li veći od 100? Ako je to, to će biti velika. Ako nije, to će biti niska. Tako je u osnovi ono što mislite da se pitaš pitanje, tako da se stavi u zagradi stanje. Onda ste stavili upitnik jer si ga pitati. I ako je to istina, to će biti u prvoj vrijednosti [nečujan] ovdje. Ako nije, ja ću staviti vrijednost koja je nakon dvotočke. Ima li to smisla? To je također nešto što je kao alat u C, ali ne moraju posebno ga koristiti. No CS ljudi obično vole da jer to samo štedi linije. LAUREN CARVALHO: To je vrlo elegantno. To čini puno u samo jednoj izjavi. Ivanković: Pa posto znak je Samo bez obzira na rezultate na zadnja linija? LAUREN CARVALHO: Oh, žao mi je. Ovaj znak postotka je zapravo rezervirano za to je. U priopćenju printf, moraš to Niz ovdje, što je ono što se događa na ispisati, ali ne možete samo stavi to je tamo. Inače bi se ispisati out s doslovno. Pa smo stavili posto ovdje zadržati ovo mjesto održati za sve dolazi iza zareza. Tako je za niz, moraš posto s.. Za cijeli broj, posto ja. Za float, posto f. Vidjet ćete one koji kao i mi vidi više primjera. No, možda bi trebali razgovarati o stil vodič za malo vremena, sada da je gore. LUCAS Freitas: Ako idete u cs50.net/style, ti ćeš vidjeti stil vodič. Za problemskih skupova, vaš rezultat za Problem set sastoji od opsega, koji u osnovi znači da ako si sve dijelovi problema postaviti ili ako pokušao nešto. Druga stvar je korektnosti, što sredstvo je vaš program radi ono što je trebao biti događaj, ili to radi ima bugova, ili se to ne radi ono što što je trebao učiniti. Treća stvar je dizajn, što znači se provodi ovaj dobro, ili su koristite nepotrebne izjave? Tako na primjer, ako želite ponoviti broj 10 puta, pišete for petlje ili se samo radi 10 puta Isto izjavu, samo radi kopirati i zalijepiti. Pa dizajn je za to. I na kraju, imate stila. Stil je isto kao suditi kad je kod izgleda čitljiv i vrsta lijepo. To samo u osnovi znači je vaš broj čitati? Bi li netko drugi tko je u potrazi su tvoj kod moći razumjeti što kako je? Da li ima primjedbe i slično? Pričajmo o stilu koji ti si trebao koristiti. Prva stvar je primjedbe. Komentari su vrlo važni za vaš Kod jer ponekad radite vaš program, a ne znate točno što želite učiniti tako da samo početak kodiranje, samo upišite hrpu C. No ako netko traži se da ste code, oni neće biti u mogućnosti Razumijem ga, jer oni ne znaju stvari koje su u glavi, kao što su pesudocode, pa možda hoće imati tvrdo vrijeme da shvate ono što kod radi. Dakle, komentari su stvarno korisne objasniti za nekoga tko je u potrazi na vaš broj što radi, a Zapravo, čak i za tebe, oni su vrlo korisne. Kao što ide na teže i tvrdih Psets, ti ćeš vidjeti da kod dobiva duže, a onda komentari su stvarno važno, tako da se što je svaki dio svog programa radi. Staviti komentar, možete samo napraviti Slash Slash i zatim napisati komentar. I cijela linija je dio komentara, i sve što pišete, to neće biti koristi za kodu. To je u osnovi kao prevodilac će se ignorirati. Ima li to smisla? PUBLIKA: Što ćete učiniti opet Za objavu komentara? LUCAS Freitas: Ovaj? Slash slash? Kad god tip kose crte udarac, bez obzira na je u toj liniji ne ide da se smatra C. Da? Ivanković: Pa nakon komentar, što samo ući i započeti novu liniju? LUCAS Freitas: Da, točno. LAUREN CARVALHO: slash slash je za jednu liniju komentara. Freitas LUCAS: Na primjer, Ovdje imamo - neka mi povećavanje - primjerice, ovdje sam proglašenja plovak, ali možda ako samo stavite ovo u kodu, kao što si ti nemam pojma što to radi, kao što je zapravo netko tko gleda ovaj kod koja će se, kao, što je dovraga događa? Ako stavite komentar kako "pretvoriti Fahrenheit da Celzija, što ga čini znatno više smisla. Ti si, kao, OK, ti si radi konverziju. Ima li to smisla? Dakle, to je samo nešto što pomaže ljudima Spremni vaš broj i učiniti ćete biti u mogućnosti da se organizira kôd bolje. Druga stvar je što možete učiniti više linija komentari, tako da su jedan komentirati za hrpu linije. Umjesto da se stavi kose crte crtu, U prvom redu komentari, slash slash, drugi red, i tako dalje, što možete koristiti kose crte zvijezdu. Način da to učinite je da se za Prva linija komentaru, ti si će učiniti zvijezdu precrtana zvijezda, pa samo tako. Baš kao i ovdje imamo početak Program, što se obično stavi tko si su, što ovaj program radi, i takve stvari. To je vrsta kao što su zaglavlja za program. Opet, to nije nešto što prevodilac će se stalo, ali to je važno za vas da znate što je to Program radi i za druge ljude znati što vaš program radi. Znači li to srezati star, a zatim Zadnja linija ćeš učiniti zvijezdu Slash se moći zatvoriti koji komentar. Tako je u osnovi za sve ostale linije, možete jednostavno pisati što god, i to se sve će biti ignoriran. A isto tako, baš kao i stilu, vidite da je svaka od linija ima zvijezda, i sve zvijezde su poravnati. To su važne stvari, tako da je vaš kod izgleda lijepo. Zvuči dobro? Sada, uvjeti. Ono što David govori da smo trebali zapravo staviti u tim slajdovima, je da kad imate bilo kakav ako izjave ili bilo kakve uvjete, trebali koristiti vitičastim zagradama pokazati da to je ono što će se dogoditi kada ste u stanju. Tehnički gledano, kada imate stanje a onda sljedeći redak je samo jedan linija, ne tehnički imati staviti vitičastim zagradama. Uglavnom prevodilac bi razumjeli je svejedno što je implicitno. Ali za CS50, mi vas pitati momci staviti Kovrčava aparatić samo tako da je vaš Kod je organiziraniji i više čitati. Budući da se kod dobiva više, ako vam nemaju vitičastim zagradama i takvih. Ona dobiva stvarno neuredan. LAUREN CARVALHO: To je točno ono što je David jednostavno istakao u mom prethodnom slajdovima. To definitivno radi bez kovrčava aparatić, ali za stilskih razloga ćemo tražiti da što ne staviš u. I kada se početi prikazivati ​​style50, koja je vrsta čeku 50. stil, to će vas podsjetiti da to učinite. LUCAS Freitas: I još jedna stvar je ne zaboravite staviti vitičastim zagradama zajedno u svakoj liniji. Znači li to, primjerice, l'e. Idi u sljedeći redak, otvoriti kovrčava brace, onda idete u sljedeći redak. Utiskivanje, što je četiri mjesta. Tada ćete pisati što god, a zatim još jedan linija, i zatvorite kovrčavu braće. Dakle, budite sigurni da su i oni kovrčava aparatić su u različitim linijama. PUBLIKA: Dakle, ako se to kod imala kao 10 drugo oklijevanja, to bi trebalo biti 10 kompleta tipkovnici? LUCAS Freitas: Da, za svaku od njih. Da. Dakle, ako se, ako je drugi, i tako dalje. PUBLIKA: Možete li ne TAB kako bi uvukli? LUCAS Freitas: Mi pitamo Dečki za korištenje četiri mjesta. Neki tekst urednika karticu prevesti kao četiri mjesta automatski. gedit ne, tako da ćete morati napraviti prostor svemirski prostor prostor. To je također nešto što su neki programeri samo da kartica, neki programeri učiniti samo četiri mjesta, i neki drugi ljudi, čak i učiniti dva ili tri mjesta. To je samo da je ovdje tražimo ti dečki to učiniti četiri mjesta. PUBLIKA: Postoji gotovo sigurno Mora biti način za gedit se automatski [nerazumljivo]. Kao nema [nečujan] ne da. LUCAS Freitas: Da. Mislim da možete otići u Settings. Ivanković: Već se sve to. LUCAS Freitas: To već radi? OK. Dakle, samo budite sigurni da vam imati četiri mjesta. Ivanković: Ne moramo staviti kovrčava nosači u za petlje kao i? LUCAS Freitas: Da. LAUREN CARVALHO: svaki put kad vaš kapsuliranjc blok koda, samo molimo koristite vitičastim zagradama. I prije nego što mislite da smo samo što sticklers o tome bez dobrog Razlog, ako ti dečki idu na dobiti tech stažiranja u velikim tvrtkama, oni će vam dati stil vodič, te oni će vam reći to je ono što vaš Kod treba izgledati. I iako ste naučili kod poput to, možda u vašem staž ćete morati nešto učiniti potpuno drugačija. Oni ne očekuju da se prilagode njihovom stilu. LUCAS Freitas: I još jedna stvar je da li ste primijetili kako imam kao X, prostor, manje prostora, 0? Kad god imate operatera - to može biti kao plus, minus, puta, manje, veći, bez obzira na operatera - morate staviti prostor na lijevoj i desno od operatera. LAUREN CARVALHO: Oni su naziva binarni operandi. Samo pazite da uvijek prostor iz vaših binarnih operanada. LUCAS Freitas: To je Ne binarni operand. LAUREN CARVALHO: To je jer je potrebno dvoje. LUCAS Freitas: Oh, da. OK, prekidači. Prvo, morate vidjeti da je baš kao i u, ako inače izjavi, imate staviti kovrčavu braće na vlastitu liniju i pod kovrčave vitice ovdje. Uočite da postoji jedan prostor Nakon prekidača, baš kao u, ako i drugi imali smo jedan prostor između da i zagrade. Dakle, morate staviti. I nema mjesta odmah nakon svakog od zagradi ili prije kraja od zagradi. Pa vidite da je to sve skupa, a također mi se ovdje gore. Da? LAUREN CARVALHO: Mislim moramo krenuti dalje. LUCAS Freitas: Dakle, ovo je dio stil vodič koji imate za CS50. Budite sigurni da ide u cs50.net/style i uzeti pogledati ovo. To su sve vrlo važno za svoj stil rezultat. Dopustite mi vratiti se u priopćenju. LAUREN CARVALHO: Radije samo koristiti style50. Samo ćemo ići ravno do petlje. U redu. Dakle, vratimo se na sadržaj, sada da smo otišli preko stilu vodič. Loops, što ste ih vidjeli u nule, a idemo razgovarati o njima u C. U for petlji, postoje tri dijela Izjava je to za petlje. Imaš inicijalizacije u koje ste postavili svoje varijable. Imaš svoje stanje, koji su ček vidjeti je li nešto istina ili laž i da li loop treba nastaviti. A ti imaš svoje ažuriranje, koji je je ažuriranje varijabli. Ajmo uzeti brzi pogled na neke C kod toga za petlju u akciji. Ono što se događa je ovdje u inicijalizacije, mi smo ja postavljanja na 0. U stanju smo provjerom li i manji od 10. I u ažuriranju smo povećavati i. Dakle, što će biti rezultat ovo za petlje? LUCAS Freitas: Zapravo, prije svega, Znate li što mi + + je? PUBLIKA: porasla je za 1. LUCAS Freitas: porasla je za 1, da. Dakle, to je ista stvar kao i radi je jednako i plus jedan. I primjetite da nemamo prostora između I. i + +. Znači, ti dečki znaju što će to učiniti? Može li mi netko reći? A možda dobiti neki slatkiš zbog toga? PUBLIKA: [nečujan] LUCAS Freitas: OK. [Nečujan] kazi kasnije [nečujan]. Da, to će se pokazati "Ovo je CS50 "10 puta. LAUREN CARVALHO: Mislim da je to bio u naslovu tobogana. LUCAS Freitas: Oh, da. [Smijeh] LUCAS Freitas: To pomaže. LAUREN CARVALHO: Pa oni su za petlje. Idemo vidjeti još neke primjere od petlje za kasnije. Ali neka je zapravo pogledati Drugi tip petlje da ćete naići u C, a to se zove while petlja. U while petlji, vi ste Upravo sam dobio uvjet. Stanje se provjerava u na početku, a ako je taj uvjet true, onda koda unutar Tijelo bloka dok će izvršiti. A broj će i dalje izvršiti tako dugo dok to stanje ostaje istina. Evo primjer while petlji u C. Mi ćemo postaviti računati na 10 do početak. Tako dugo dok je broj veći od 0, ćemo zadržati ispisuje ovo varijabla ovdje. Idemo u dekrementirati računati i onda opet provjeriti stanje. Ispis, opadanje, provjera stanje opet. Ovdje imamo primjer koji se odnosi na vaše pitanje ranije. Imali smo postotak s kada smo bili ispis niz, i sada kada je mi smo ispis int, imamo posto sam se kao naš rezervirano umjesto. Slova svi trebali biti prilično intuitivno, je za nizom, i za int. Dakle, ako se to kod izvršava, što bi trebalo odbrojavati 10-0, ispis svaki broj. LUCAS Freitas: I vi se možete sjetiti posto jer se osjeća kao prazna prostor, a onda ste stavljajući to varijabla ovdje u tom praznom prostoru. Tako na primjer, ovdje ću imati samo prazno, a onda sam stavljajući računati tamo, Vrijednost računati. Ima li to smisla? Mogao sam samo učiniti kao printf a onda citira, računati? Bi li to raditi? Ivanković: Ne. LUCAS Freitas: Ne, jer će zapravo ispisali riječ "računati" umjesto ispisa vrijednost. To je način na koji bi se ispisati vrijednosti prema varijable umjesto Samo ime varijable. Ima li pitanja? Ivanković: Zašto koristiti za kao razliku, dok? LAUREN CARVALHO: Ja bih koristiti za petlje, ako znam točno koliko iteracija Želim da moji petlje pokrenuti. U tom slučaju, nije važno jer Mislim, samo sam pokušavao sjetiti jako jednostavna Primjer za to slajd. No, recimo da želite nešto zadržati ide dok - LUCAS Freitas: Na primjer, ti si molba za ulaz do osobe daje vam pravo ulaz. Dakle, kao što je, dok je ulaz nije OK, držati molba za to. Ili kao dok si roditelji ne daju vam novac, držati molba za to. [Smijeh] LAUREN CARVALHO: Ne znam kako mnogo puta morat ćete to učiniti. LUCAS Freitas: Zato što vi ne znam koliko puta to je će se nastaviti. LAUREN CARVALHO: Ali u for petlji, što trebate znati koliko puta. Da? PUBLIKA: Samo da pojasnimo, posto kaže da je to nešto o dogoditi, I-a za cijeli broj, a backslash n - LAUREN Carvalho: Sredstva? Tko zna što backslash n znači? Nova linija, da. Točno. LUCAS Freitas: Možete misliti n kao nove linije. LAUREN CARVALHO: Nice. Publika: Što je to broj Crtica Crtica [nečujan]? LUCAS Freitas: Točka minus minus je ista stvar kao plus plus, ali umjesto da raste, to je smanjenje od 1. LAUREN CARVALHO: Bilo više dok su pitanja petlje? Ne? Oh, bili smo trebali su preskočili to. To je do while petlja. Vrlo slična while petlji, osim u ovaj slučaj mi provjeriti stanje nakon kod u tijelu Petlja se izvršava jednom. Tako smo izvršiti kod Prvi bez obzira. Onda smo provjeriti stanje, izvršavanje opet, ako je uvjet istinit. Vi ćete se pomoću toga kad pitate za unos korisnika. Budući da ste uvijek morati pitati jednom, a onda, ovisno o tome što sfaust je, možda ćete morati reprompt i opet i opet pitam, ako Ulaz nije bio ono što Očekuje se da će biti. Ivanković: Pa to je kao oblik za ljude da ispunite. LAUREN CARVALHO: Da, točno. Vi ćete, mislim, u svom prvom Pset, ti ćeš morati koristiti činiti dobro petlju prikupiti Ulaz od korisnika. PUBLIKA: Ovisno o situaciji, Vaše vrijeme petlje imaju tendenciju da će se izvoditi više Vrlo često, dok petlje, kao i od strane jednog ili nešto? LAUREN CARVALHO: Ako je to točno - LUCAS Freitas: Uvijek treba izvoditi Točan iznos vremena da vam želite pokrenuti. Kao što mi koristimo učiniti dok jer smo stvarno htjela da se ulaz barem jednom. U While petlje, ponekad ne želite za njezino izvršenje na sve ako to nije Slučaj izvršiti. Dakle, to ovisi o dizajnu. Mislim, možete ili uporaba učiniti dok ili a koliko god vaš broj ne da što je trebao učiniti. LAUREN CARVALHO: Ali ja da je odgovor na svoje Pitanje je vjerojatno da. Recimo da je stanje bilo lažno. U jednom slučaju to bi pokrenuti jednom, i još jedan slučaj da bi se izvoditi nula puta. Dakle, da. Bilo više pitanja? Da? PUBLIKA: Može uvjet petlje biti za petlju u smislu varijabilna drugi od [nečujan]. LAUREN CARVALHO: Da, to može biti bilo što. Vjerojatno za početak Psets, što neće morati susresti taj slučaj, ali definitivno to može biti bilo što. LUCAS Freitas: Mislim gotovi smo ovdje. LAUREN CARVALHO: Jesmo li? Ne? LUCAS Freitas: Loops? Da. LAUREN CARVALHO: Mi ne bi trebali biti. Oh, mi smo učinili s petlje. OK. Zapravo, zato što smo razgovarali, tako mnogo, neka je zapravo sve navigaciju preko study.cs50.net/conditions. I ti ćeš se kretati prema dolje to su problemi dodatak. Pa, zapravo, a ljudi su uzimajući to postavili, CS50 Studija je će biti alat koji će vaše TFS koristiti za pripremu za dijelove i da ti dečki mogu koristiti ako propustite sekcije. To će sadržavati hrpu slajdova, neke savjete i trikove za svaku topic, a neki problemi prakse rješenja. Zašto svi ne samo pogledati na ovaj problem ovdje. Žao mi je, trebao sam podsjetio ljudi donijeti laptop i danas. No, ako nemate laptop, to je u redu. Možete samo točkica ovo dolje na Komad papira ili gledati preko ramena svoga susjeda. Idemo probati i napisati program koji traži od korisnika da se pogađati, prosječan broj djece po obitelji Uređaj u Sjedinjenim Američkim Državama. Taj je broj 2, usput, kao i vi može vidjeti iz ovih primjera. Želimo ispisati prosječan broj djece po obitelji u SAD-u, a zatim smo žele što? Želimo skupiti ulaz od korisnika. A onda, ovisno o tome što korisnik ' Ulaz je, da ćeš isprintati bilo je to točno ili je to netočno. I vrlo prva stvar koju ćete Vidite, ako kliknete na malu strelicu na Donji dio problema widget uočiti da se pribilježiti neke pseudocode. Dakle, niste još programiranja. Vi ste samo dobivanje svoje ideje u redu. Da li netko želi pomoći Lucasa se s pravom pseudocode za ovaj problem? LUCAS Freitas: Koja je prva stvar da mi vjerojatno treba učiniti ovdje? Što vi mislite? PUBLIKA: [nečujan] LUCAS Freitas: Da, u redu. Dakle, print. Dovoljno je reći ispiši prosjek broj ljudi? OK. Ispis pitanje, recimo. Nakon što sam se ispisati na to pitanje, Što sam trebao napraviti? PUBLIKA: Get ulaz. LUCAS Freitas: Get ulaz. Bilo što drugo? Ivanković: Stanje. LUCAS Freitas: Stanje. LAUREN CARVALHO: Što je to Stanje će biti? PUBLIKA: broj [nečujan]. LAUREN CARVALHO: Točno. LUCAS Freitas: Pa što ću ja provjeriti u stanju? Ivanković: Ako je jednaka dva. LAUREN CARVALHO: Ako je jednaka dva. Točno. LUCAS Freitas: Ima li išta drugo što mi je činiti? PUBLIKA: Točka. LUCAS Freitas: Dakle, ako je to jednaka 2, recimo - neka mi samo napiši ako ulazni jednaka do 2, onda ono što ću učiniti je ispisati točne. I onda još, ja ću ispisati pogrešna. Bilo što drugo? Ne? LAUREN CARVALHO: Znači li možete kliknuti na - nema svatko imati ovo dolje? LUCAS Freitas: Ima li to smisla? Pa sad pokušajmo da kod toga. LAUREN CARVALHO: Ako kliknete na malo strelicu, to zapravo sprema svoje pseudocode, što je stvarno uzbudljivo. A možete napraviti one u komentarima, ako želite samo kao podsjetnik na što učiniti. LUCAS Freitas: Tako je, primjerice, prvi Idem se ispisati na pitanje, kako kako ću to učiniti, zapravo? printf. Dakle printf, a pitanje je prosječna broj djece po obitelji u SAD-u. Onda ću doći Ulaz od korisnika. Pa kako to mogu učiniti? PUBLIKA: Get Int. LAUREN CARVALHO: GetInt. LUCAS Freitas: OK. Dakle, prvo izjavljujem, zar ne? int, nazovimo ga n jednako GetInt. I sada stanje. Dakle, dopustite mi da kažem da idem da ovdje potvrdni odgovor. Dakle, prvi, ako je ulaz, koji je N, jednako da - kako ću napisati da? PUBLIKA: Jednake jednaka. LUCAS Freitas: Savršeno. Dakle, n. I primjetite da radim razmaka jednaka, jednaka, prostor, istina. A sada što da radim? Nešto vrlo važno za stil. U vitičastim zagradama. A onda ću se ispisati. Kako mogu ispisati? printf. PUBLIKA: Može li se kapitaliziraju? LUCAS Freitas: Ne. To bi trebalo biti sve su mala slova. Dakle, to je točno. Bi li to biti dosta za printf izjavu, ili sam propustio nešto? PUBLIKA: Nova linija. LUCAS Freitas: Nova linija, da. A sad drugo. PUBLIKA: Ima li prostora nakon printf, ili ne? LAUREN CARVALHO: Trebamo provjeriti stil vodič. Ivanković: Ne bi trebalo biti. LUCAS Freitas: Ne bi trebalo biti, u redu. Dakle drugo, printf, "To je netočna." LAUREN CARVALHO: Ups, vaši citati. LUCAS Freitas: OK. Bilo što drugo? Da li to izgledati dobro? LAUREN CARVALHO: Hoćemo li pokušati? LUCAS Freitas: Da, ajmo to pokrenuti. Dakle, to je sastavljanje, i to Čini se da to radi. Pokušajmo dvoje djece. To je točno. A sada idemo trčati, ali sada umjesto stavljanja dvoje djece, neka je reći da ću staviti kao pet. To je netočno. Tako se čini da to radi. LAUREN CARVALHO: Zašto ne pokazati ih što se događa ako se stavi nešto čudno, poput nekih slova. LUCAS Freitas: Oh, da. Idemo također provjeriti da. Što ako korisnik pokušava nered sa svojim programom, a oni samo pisati, ne znam dva. To će reći: Ponovi. LAUREN CARVALHO: Pa GetInt jest da ih pitamo za ponovni pokušaj. Nismo imali brinuti to mi sami. LUCAS Freitas: Da. Dakle, ako sam zapravo staviti broj, to je će se održati od mene traži da ponovno pokušati. PUBLIKA: Kako ste ga pokrenuti? LUCAS Freitas: Samo kliknite Ovaj gumb zvijezda. LAUREN CARVALHO: Trebali bi ići gore. Postoji li ići. LUCAS Freitas: Zvijezda Gumb tamo. Da? PUBLIKA: Da li to potaknuti [nečujan] s decimalnim brojevima previše? LAUREN CARVALHO: Vjerujem da hoće. LUCAS Freitas: Ako je to što radi? LAUREN CARVALHO: Ako upišete u decimalnim brojem, mislim to će potaknuti. LUCAS Freitas: Idemo vidjeti. LAUREN CARVALHO: Zbog to nije int. LUCAS Freitas: Da. LAUREN CARVALHO: Pa to nije int, Dobili Int će od vas tražiti da ponovno pokušati. Ivanković: Pa gdje u tom kodu bi decimala da traži Korisnik koji su za ulazak cijeli konkretno? LAUREN CARVALHO: GetInt je zapravo da radi za nas. Ivanković: Ne, mislim da smo htjeli ući [nečujan] LUCAS Freitas: Možete reći kao prosječna broj djece u SAD-u. Ne znam. Možemo reći, primjerice, "Molim Ulaz cijeli broj. " LAUREN CARVALHO: cijeli broj jednak s prosječnim brojem. Mislim, to je jednostavno tako Možete ga riječ, zar ne? LUCAS Freitas: Da. To nije dio zapravo kodiranja. To je više kao ono što idete da želite napisati u svom programu. PUBLIKA: Kako bi smo ga pokrenuti ako bio je zapravo u gedit [nečujan]. Umjesto da pritisnete play? LUCAS Freitas: Hoćemo Prvi ga sastaviti. Mi to možemo učiniti tako što napraviti i naziv datoteke. A onda bi ga pokrenuti, mi ćemo učiniti dot crtu i ime programa. Ivanković: I pogodite što sam mislio bilo je, ako smo htjeli Program odgovoriti njihova pogrešna, nevažeći unos, da ne bi trebali staviti u - LUCAS Freitas: Nećemo moći to učiniti, jer kod to kaže ponovnog pokušaja dolazi iz Get Int što je funkcija koja je već proveden za nas preko CS50 knjižnici, a od to je već proveden tamo, mi ne mogu samo [nečujan]. LAUREN CARVALHO: Ako ne koristite GetInt, onda možete to učiniti. LUCAS Freitas: Da. Ali ako koristite GetInt, ne možete. Bilo koja druga pitanja? PUBLIKA: Možete li su otišli sa sličnim GetFloat a zatim biti u mogućnosti staviti je u decimale? LUCAS Freitas: Da. Ivanković: U redu. Tada možete samo unos float a dosegne - LAUREN CARVALHO: Da. Točno isti, osim float umjesto int. LUCAS Freitas: Samo ga stavi ovdje a zatim GetFloat postoji. PUBLIKA: Kao što će se vidjeti ili su vidjeli - LAUREN CARVALHO: imamo Ne dobivši još tamo. PUBLIKA: - radi nejednakost s lebdi ne [nečujan] PUBLIKA: Što se zarezom znači? LAUREN CARVALHO: zarez samo znači da ova izjava ne završi, i mi ćemo ići na sljedeći slajd. Ivanković: Pa to je potrebno svaki put? LAUREN CARVALHO: Da. Pa, u redu, tako da nije za te uvjete, jer oni su kapsuliranjc nešto. Tako je u osnovi, ako nešto je uzrok onda stvoriti kovrčavu braće blok, ne stavi točku zarez na kraju. LUCAS Freitas: Ali sve drugo, da. Kada završite izjavu, staviti točku-zarez. A ako ste zaboravili zarezom, prevodilac će se naljutiti na tebe, i ti ćeš imati pokušati ga riješiti. LAUREN CARVALHO: Ako stavim točku zarez ovdje, da bi se to spriječi, a ja nikad ne bi dobili da izvrši ono što je unutra, usput. Dakle, to je jedan od onih uobičajenih bugova. Ivanković: Uvijek izvršenja. LAUREN CARVALHO: Da. U ovom slučaju, mi bi uvijek izvršavati ono što je unutra. PUBLIKA: Vaš stil [nečujan] priložiti za vas, mislili. LAUREN CARVALHO: Oh, to je istina. PUBLIKA: [nečujan] jedan linija stvar [nečujan] PUBLIKA: Da? PUBLIKA: Može li imati više ulazi u jednu liniju? Dakle, kao što možete tražiti korisnike ispisati dvije stvari? LAUREN CARVALHO: Ako ne koristite - LUCAS Freitas: Ne. Recimo da i ja želim da se ovaj broj M. Moram to učiniti na drugačiji liniji. Ivanković: Ako ste bili pokrenuti da, kako [nečujan]? To će ispisati redak postoji [nečujan] i onda bih unesite jedan i - LAUREN CARVALHO: Pa, pokrenuti ga. Mislim, ne postoji ništa zaustavljanja od nas samo trčanje i vidjeti što će se dogoditi. LUCAS Freitas: Mislim da je to događa se žali na nas jer mi ne koristimo - LAUREN CARVALHO: Ups. LUCAS Freitas: To se žalili na nas u pravu sada, jer ne koristimo to promjenjiva, ali ako jesam, na primjer, n je jednaka jednaka, a mje jednaka, onda ono neće dogoditi u tom slučaju? Što bi ovaj program učiniti? PUBLIKA: Samo se pitam kako bi - LAUREN CARVALHO: Ona samo želi znati kako to izgleda kao što je, mislim, zar ne? Dakle, to je jedan od njih, a onda to je jedan drugi. Mislim da bismo trebali krenuti dalje, jer imamo još jedan slide show ići prije - želiš podići matematiku? LUCAS Freitas: Da, matematika. LAUREN CARVALHO: Dajte mi samo jednu sekundu. Postoji nekoliko različitih numerička varijable u C. brojčanim podacima u C mogu se klasificirati u različite vrste, a to su one koje ćete vidi najčešće. I int je cijeli broj. Ne možete imati bilo decimale. U Appliance, to traje 32 bita za pohranu int. Float može imati decimale. Također je potrebno 32 bita za pohranu plutaju u Appliance. Dvaput je broj s decimale točka koja traje 64 bita da ga pohraniti, što znači da možete jednostavno veća preciznost, jer možete imati više - što se to zove? LUCAS Freitas: Da, to je više. LAUREN Carvalho: Više mjesta nakon decimalne točke. I dugo dugo je cijeli broj koji traje 64 bita upaljeno je u Appliance. LUCAS Freitas: Dakle, to može biti veći od Ints može biti. LAUREN CARVALHO: stvar o podacima tipovi u C je da su ti što vrsta podataka koje možete spremiti u svom varijablu. Oni vam reći kako možete koristiti ovaj varijabla u vašem programu. To je vrlo važno da se samo pratiti kakvu vrstu podataka koju koristite, a ako što je potrebno učiniti da se baci od vrste podataka na drugu, provjerite da li znate upravo ono što se događa kada se to casting odvija. A vi ćete vidjeti primjer kasnije u tim slajdovima od pogreška je što se može dogoditi. Uzmimo pogled na neke matematike u C i mislim stvarno pažljivo, pretpostavljam, o tome što se događa kada se to Matematika se odvija. U prvoj liniji, što je događa kada Izjavljujem x? PUBLIKA: Ti si dopušta x biti nešto? LAUREN CARVALHO: Da. Pa, ja sam stvarno pita operativnog Sustav za 32 bita memorije, zar ne? U kojem sam se pohraniti int, a Idem nazvati taj int x. LUCAS Freitas: Uglavnom ide u memoriji i pronaći mjesto koje ima 32 bitova i izreka, hej, želim ovaj prostor, i to će biti pozvani x. Dakle, ti si samo prilično nalaz Kutija u sjećanju na store vrijednosti za x. LAUREN CARVALHO: I onda sam započeti x, što znači da sam samo pohraniti vrijednost 2 u tom mjestu, te komad memorije, koje smo pitali s radom Sustav za. I ovdje ono što mi radimo je mi zapravo deklariranje inicijalizacije y u jednom retku, umjesto u dva reda kao što smo mi ovdje, koji je ujedno i savršeno u redu, mi smo dodavanjem 1 x, a mi smo pohranjivanje da vrijednost y. LUCAS Freitas: Tako je u osnovi ono što ovaj linija radi, utvrdi sada kutiju za y, a onda je njegova vrijednost, stvar koja idete staviti unutar okvira, je će biti vrijednost X plus 1. Tako da je ovaj okvir za y. Ona dobiva vrijednost x, izgleda ovdje, i vidjeti da je 2. Stavite ga tamo, plus 1, pa to stavlja 3 postoji. Ima li to smisla? Dakle godina će biti 2 u ovom slučaju. LAUREN CARVALHO: U redu, super. Vidjeli smo neki dodatak, pa neka je sada razmišljati o podjela u C. Ovdje sam proglašavanje i inicijalizacije plovak zove odgovor i dijeljenjem 1 za 10, a onda sam ispišete odgovor na dvije decimale. I imajte na umu ovdje, u mom printf izjavi, kad želim ispisati nešto na dva decimalnih mjesta,% .2 f ono što želim koristiti. Dakle, točka 2. samo govori Trebaju mi ​​dva mjesta nakon decimala isprintati. Sada, ono što će se dogoditi ako sam pokrenuti ovaj kod? Ima li netko ideju? Što će ispisati? LUCAS Freitas: Što su smo očekivali da će dobiti. LAUREN CARVALHO: Što učiniti želimo, prije svega? LUCAS Freitas: [nečujan] LAUREN CARVALHO: 0,1, da. No, ono što će se ispisati? PUBLIKA: [nečujan] LAUREN CARVALHO: Pa, ne, zapravo. To je ono što sam govorio o tome zašto morati voditi vrlo pažljivo pratiti Vaši tipovi podataka. Dakle, ono što tip podataka je ovo? Je int, zar ne? Nema decimala. 10 je također Int. Nema decimala. Ako sam podijeliti int po int, dobijem int koji nije 0,1, jer Ints ne može imati decimalna mjesta, ali samo 0. Zbog int samo truncatus off decimale. LUCAS Freitas: Dakle, kad god vam je činiti operacije s Ints, ti ćeš dobiti int kao odgovor. Tako je u osnovi, ono što računalo se radi, to se dijeli po 1 10, i to dobiva 0,1. No, onda je to, čekaj, ovo je trebao biti cijeli broj, tako da samo ignorirati 0,1, tako da je sada samo 0. LAUREN CARVALHO: Dakle, kad sam ovo ispisati out, dobijem 0,00 umjesto 0,10. LUCAS Freitas: Da li to smisla? LAUREN CARVALHO: To je vrsta nesretnih, zar ne? LUCAS Freitas: Pa kako možemo popraviti ovo? LAUREN Carvalho: Idemo pokušati popraviti. Evo primjer, gdje sam Zapravo casting 1 i 10 do pluta. Tako sada, 1 više nije int. 1 je float. Usput, ovo je samo sintakse za kada želite da se baci iz jednog tip podataka u drugu. Vi samo možete staviti vrstu podataka u zagrade i ima da samo prethode Vrijednost koju ste lijevanje. Pa evo, ja sam dijeljenjem plovak strane float dobiti float odgovor. I da, to bi u Činjenica ispisati 0,10. Ima li to smisla? LUCAS Freitas: Dakle tipa casting je samo pretvaranje iz jedne vrste na drugu. Dakle plutaju 1 je zapravo 1.000. Nije baš to, ali to je nešto s decimalnim mjestima da je zapravo 1. Ima li to smisla? Da? PUBLIKA: Što ako je plovak odgovor jednaka 1,0 podijeljeno 10? LAUREN CARVALHO: Vi zapravo ide da se vidi da se u sljedećem slajdu. To je zapravo naša vrlo sljedeći slajd. To je zapravo ljepše nego tipa casting, mislim. Dakle, ove dvije su lebdi samo priroda i činjenice da se ima decimalnih mjesta. Da? PUBLIKA: Što ako je [nečujan] podijeljena 10? LAUREN CARVALHO: Zapravo float podijeljena int zapravo vam daje plutaju, tako da će raditi dobro. Čekaj, ne svi shvatiti ovo? Budući da će ovo biti jako velika stvar u Pset1, zapravo. Da? PUBLIKA: Možete li se brzo ići preko crvenom dijelu? LAUREN CARVALHO: crveni dio, da. Lucas, želiš? LUCAS Freitas: OK. Dakle, ne zaboravite da je postotak je rezervirano. To je kao prazan prostor. Tako ćemo pokušati razumjeti sve da se ovdje događa. Posto znači da je rezervirano. Tada imate f, što znači da to je rezervirano za plovak. Posljednja stvar koja mi imamo ovdje je 0,2, što znači da želim imati dva decimalnih mjesta za plovak. Ako sam samo imao% f, oni će staviti hrpa decimalnih mjesta. Pa ja samo mogu staviti 0,2 ili 0,1 ili 0,5 ili god, i to će se staviti Broj decimalnih mjesta. Jedina stvar je da ako stavite ovako .100 Ili .1,000, to nije zapravo će staviti sve one decimalna mjesta jer nema dovoljno memorije imati tu preciznost. Bilo koja druga pitanja? Da? Ivanković: Pa plutati samo omogućuje li ići dalje od brojeva? LUCAS Freitas: Da. LAUREN CARVALHO: Pa, float samo vam omogućuje da imaju decimalna mjesta. LUCAS Freitas: To samo znači da su ti Sada možete imati decimalne brojeve. Ivanković: Zašto bismo ikada koristiti cijeli brojevi? LUCAS Freitas: Zašto bi koristite prirodni brojevi? Možda, ako ste računajući od 0 do 10, želite koristiti zapravo cijeli broj. Ne trebate koristiti plovak. U nekim situacijama, ne znaš su se zapravo - LAUREN CARVALHO: Možda ste Ne želim decimale. LUCAS Freitas: Možda ne znaš želite koristiti plovak. LAUREN CARVALHO: Druga stvar je, sjetite se, kako staviti float i int potrajati 32 bita pohraniti ih, a možda ne želim trošiti bitove na decimalnih mjesta. LUCAS Freitas: Da. Dakle, kao što je, samo mislim o tome. Imate 32 bita za oboje int i float. Za int, svi ti 32 bita ići na cijeli dio. Ako koristite plovak sa 32 bitova, imati dio ova memorija se koristi za broj, na cijeli broj, a drugi dio se koristi za decimalnih mjesta. Dakle, to znači da ne može doći do vrlo veliki broj s plovcima, jer float već koriste dosta Memorija za decimale. Da? Ivanković: To je prvi odgovor, Što je točno to radi? Je li to postavljanjem vrijednosti float jednake na to rezervirano mjesto na koje možete sjećam ga se u novi red? Ona kaže da plutaju odgovor. LUCAS Freitas: Da. Dakle, float odgovor znači da ste dobivanje sad malo kantu u sjećanju da je drži plovak, a to se događa da se zove odgovor. Dakle, to je ono što plutaju odgovor ne. I onda kažu da je unutar to, ti ćeš staviti Rezultat toga. Tako da ćeš napraviti 1,0 podijeljena 10,0, te dobiti 0,1, a zatim stavite da unutar odgovor. LAUREN CARVALHO: Tako je u jednoj liniji, mi smo proglašavanje i inicijalizacije ovaj plovak zove odgovor. LUCAS Freitas: Zanimljivo, iako Ovo je samo jedna linija, to radi više operacija. To je samo način C ostavljajući koristite manje koda. To je ista stvar kao ternarnom Operater, kako možete jednostavno napraviti [Nečujan] u jednom retku. To je zapravo rade istu stvar kao i radi float odgovor, točka i zarez, i onda odgovor je jednak, ali umjesto što vam je činiti dvije linije za to, to je kao prečac. Da? PUBLIKA: Dakle, ako ste pokrenuli ovaj, da bi 0.10? LUCAS Freitas: Da. Da? PUBLIKA: Je li odgovor zapravo kôd, ili je to samo ime? LAUREN CARVALHO: Ova je zapravo šifra. To je ono što ćemo u ime naše varijablu. Ivanković: Pa to je samo Ime [nečujan]. LAUREN CARVALHO: Da. Mogao sam rekao float x jednak 1.0. LUCAS Freitas: stvar je u tome Ime varijable je nešto što koristiti. To je važno za vas. Za stvarnu programa, jedino što što je bitno je vrijednost koju ima unutar kante. Razlog zašto imate varijable i Imena varijabli, tako da bi znali što ste se bave, kao i kakav podacima ste pristup na vrijeme. Ali kod sebe, ako nazovete to odgovoriti ili pitanje ili bilo što, prilično puno, to ne smeta. To nije važno. Dokle god ste dosljedni u svakom Pojava ga i tako ga zovu nešto drugo. Da? PUBLIKA: Da li varijable ići izvan funkcije? Kao i ako ste bili na stvaranje nosač [Nečujan], mogli ste upravo [Nečujan] javljao? LAUREN CARVALHO: Ne. PUBLIKA: [nečujan] LAUREN CARVALHO: Ne. Da bi se izvan opsega ove varijablu. I doista, to je vrsta Zanimljivo, jer kada imamo stvari poput petlje i to ako uvjetima, ako proglasiti varijablu u drugom setu vitičastim zagradama, to stvarno postoji samo unutar tih vitičastim zagradama. Ivanković: Jedna napomena o su [nečujan] pluta. Zašto bi ste ikada željeli koristiti Ints? To je više od strani bilješku od ništa, ali vaše računalo značajno bolji u rukovanju Ints nego što je u rukovanju plovaka. To je kao red Magnituda brže. Dakle, ako mi samo barata samo pluta, stvari bi se puno sporije. LAUREN CARVALHO: Zapravo, čini se da će biti problema s plovcima. LUCAS Freitas: Malo razloga za da, možete misliti, kako u binarnom možete predstavljaju cijele brojeve stavljajući 0-a i 1-a. LAUREN CARVALHO: To je Sljedeća stvar. LUCAS Freitas: OK. Strašan. LAUREN CARVALHO: Dovoljno Zadrži tu misao. LUCAS Freitas: OK, ja ću ti kasnije. LAUREN CARVALHO: Prije nego što smo dobili na što Lucas je samo rekao, operator prednost. To je zdrav razum. Vi dečki su to učinili dovoljno. Dakle, samo ako nešto nije u zagradama, to će se dogoditi prvi put. To je množenje ima prednost preko toga, oduzimanje, takve stvari. Pa zapravo, samo se bilo tko želi reci mi što je broj jedan zapravo ocjenjuje se? PUBLIKA: 27. LAUREN CARVALHO: 27? Da. LUCAS Freitas: Dopustite mi dati bomboni ljudima. LAUREN CARVALHO: U redu. Što je s brojem dva? Što je s brojem dva? PUBLIKA: 22. LAUREN CARVALHO: 22, da. Ja ne znam tko je dobio to. Broj tri? PUBLIKA: 10. LAUREN CARVALHO: 10, yes. Cool. Dakle modulu. Lucas, želiš objasniti po modulu? LUCAS Freitas: modulo je ovaj operater to je vrlo korisno za zapravo hrpa problema. Ako radim 55 po modulu 10, što on ne to recimo da želim podijelite 55 sa 10. Što ja dobivam? Ona se osjeća kao da sam ja zapravo samo radi podjelu, što je prvi put da sam dobio cijeli broj? PUBLIKA: 5. LUCAS Freitas: 5. I onda ostatak je 5, zar ne? Dakle, to je kao 5 puta 10 plus pet. Uglavnom, ono što se po modulu, on pokušava podijelite taj broj je ovaj jedan, i da vidi ono što je ostatak divizije. LAUREN CARVALHO: Pa to samo vraća ostatak. Dakle, broj jedan je što? 5. Broj dva? PUBLIKA: 3. LAUREN CARVALHO: 3. Broj tri? 0. , A četiri je 1. Točno. LUCAS Freitas: Jednostavno, zar ne? LAUREN CARVALHO: Zašto ne možemo preskočiti Upravo zato što smo stvarno nemam vrijeme, a čini se da ljudi razumiju. Dakle, evo što je Lucas bio samo govori o tome. LUCAS Freitas: Još jedan od razloga zašto sam se će koristiti Ints umjesto kola je koja lebdi vrlo neprecizno. I zašto su neprecizne? David je rekao da to predstavlja cijeli broj, primjerice, koristimo 0-a i 1-a, zar ne? I onda u osnovi množenja, učiniti sve one Operacije znati što decimalni broj imate umjesto binarnog. Što će se sada dogoditi ako pokušam staviti decimalne točke? Zapravo, na primjer, ako imam broj kao 3,33333? To se osjeća kao 10. preko 3 godine. Kako ću pohraniti sve 3 je da imam nakon toga? To je stvarno teško, zar ne? Vi ne možete samo reći računalo, hej, imam 3, a onda ste to zauvijek. Zapravo računalo nije dovoljno pametan za to. Tako je u osnovi sve vaše računalo radi je da se pokuša staviti što više brojki kao to može do memorije koje imate. Pa recimo da će kažu 3,3333, i to je to. Dakle, to nije u mogućnosti da se zapravo izražavaju upravo ono koje lebde je. LAUREN CARVALHO: Imamo konačan broj bitova, što znači da se ne Svaki decimalni broj će biti mogli biti zastupljeni upravo. I tako je u ovom primjeru, ako smo ispis 0,1, sada smo za tisak out 20 mjesta. LUCAS Freitas: Baš kao što sam govorio dečki, možete staviti bilo koji broj. Ali, ako ste upravo učinio dva mjesta, da ćeš dobiti 0,10, ali ako ste stavili 20 mjesta, to će vam pokazati hrpu o je, jer to je ono što se stavi u memoriji, zar ne? Ali ovdje, do 0, i onda samo je li to staviti hrpa slučajnih brojeva. To je vrsta kao što su neki - LAUREN CARVALHO: To je zato što smo Ne mogu da predstavljaju ovu decimale upravo s brojem bitova imamo. LUCAS Freitas: I onda Računalo je u osnovi dajući vam smeće broj. To zapravo nije vrijednost broja. Ivanković: To je najbliže što to može dobiti [nečujan] pomoću [nečujan]. LAUREN CARVALHO: Dakle, implikacija to je da recimo da je umjesto biti 0.100014, što god, što ako je to 0,0999 - dobro, u redu. Ajmo se pretvarati da je stvarni odgovor da je to bio 0,9999999. To je vrlo blizu 1, ali to nije točno 1. To je 0,99999. To znači da, ako uzmem taj 0,999, i ja ga baci na int, dobijem 0. Ne dobiti 1. LUCAS Freitas: Zato zapamtite, lijevanje iz plutaju na int, vi samo ignorirati sve decimalnih mjesta. Vi samo ih ignorirajte. Ne postoji takva stvar kao zaokruživanje ili trčanje dolje kada typecast. Zapravo, tu je ova funkcija koje ne zaokruživanje, što je vrlo važno, ali samo mislim da kada ti typecasting, to je samo će izbrisati sve. Dakle, čak i ako imate 0,99999, to se događa samo dati 0 ako typecast [Nečujan] cijeli broj. LAUREN CARVALHO: Dakle, samo biti jako svjesni od pomičnim zarezom u preciznosti, pogotovo kada počnete koristiti pluta u Pset1. Ali šetnja trebao Upozoravam vas da je kao dobro. LUCAS Freitas: I to je zapravo jako Teško je, na primjer, ako jesam float odgovor 1 iznosi 1,0 tijekom 10, a zatim plutaju odgovor 2 iznosi 10,0 nad 100.0. Oni su isto, zar ne? 0,1, zar ne? 1 od 10 ili 10 više od 100. Ali sada, ako sam pokušati vidjeti jednakost, kao da odgovor 1 jednak odgovor 2, Možda to nije zapravo ide da se ista stvar. Dakle pluta su vrsta kao što je to. Oni su kao što radiš jednakost.