[Glazba svira] ZAMYLA Chan: Biste li radije dobiti 10 milijuna dolara upravo sada ili primati penija svaki dan u mjesecu, gdje svaki sljedeći dan, primite udvostručiti količinu novčića vas primio dan prije? U penija, idemo na dokazati zašto biste trebali Definitivno se novčana jedinica. Vaš je zadatak napisati pennies.c-- Prvi program koji traži od korisnika kako mnogo dana ima u mjesecu, a onda pita koliko penija korisnik dobit će prvog dana. Program zatim treba izračunati iznos koji korisnik će imati skupljati na kraju mjeseca te ga prikazati. Mi možemo razbiti ovaj program gore u nekoliko zadataka. Mi ćemo morati zatražiti više korisničkih ulaza - dani i mjeseci, a novčana jedinica Na prvi dan. Moramo pratiti koliko novca Korisnik ima i ažurira svake dan, udvostručenje količinu penija da oni primaju. I na kraju, možemo ispisati svoje konačni rezultat, u dolarima. Idemo latiti ulaz korisnik prvi put. Idem otvoriti apples.c, kratki program koji se bavi s ulaza i izlaza. Na vrhu ovdje, ja sam uključen neki od knjižnica da mi treba - CS50 knjižnica i standardni I / O biblioteka. Ja ispisati redak koristeći printf funkciju s standardni I / O biblioteka. No, stvarna poticaje korisnika dogoditi u sljedećem skladu s tim GetInt funkcija u CS50 knjižnici. GetInt dobiva informacije od korisnika i osigurava da ulaz je cijeli broj. Tako sam pohraniti korisnikov unos u cijeli i, oduzimanje 1 od ja, a zatim ispisati novu vrijednost ako ja. Nakon sastavljanja apples.c pomoću Naredba "bi jabuke," Imam Izvršna datoteka jabuke. Trčanje da, ja ću ulaz 1. Program mi kaže da Imam 0 jabuke lijevo. I da je radio kako treba. Tako ćemo pokrenuti ovaj opet i unos negativna 1. Sada, nakon što je negativan iznos od jabuka zapravo ne smisla, ali Program ga prihvati, jer je negativna 1, dobro, to je cijeli broj. A sad program ili čudovište unutar programa jede negativna jabuke, a sada imam Negativni 2 jabuke. Hm, pa to je jedan sat - iako GetInt funkcija i povezane funkcije, kao što su GetFlow ili GetString dobijete pravu vrstu podataka, što kako bi bili sigurni da je ulaz čini Osjećaj za svoj program. U novčana jedinica, to neće učiniti upravo upit za cijeli broj, morat ćete napraviti sigurni da korisnik unese cijeli broj to ima smisla s obzirom na kontekst. Mjesec može imati samo 28, 29, 30 ili 31 dana. Želimo kontinuirano zahtijevaju neispravan. Ako im se cijeli ulaz izvan naše prihvaćenih granica, mi ćemo ih zatražiti opet i opet, sve dok ne nam dati ispravan cijeli. Sjetite se "ponavljati dok se" blokirati u nule? Možete napraviti sličan konstrukt u C pomoću "dok" petlju ili "ne-a" petlje. Struktura while petlja ima uvjet koji moraju biti ispunjeni za Tijelo petlje se izvršava. To bi trebao izgledati pomalo slična, jer stanje je isto kao Scratch blokovi s kutom i odlazi u zagradi o "dok" petlje. Tako da je stanje će provjeriti je li broj je u odgovarajuće granice. Možete zatražiti cijeli broj koristeći GetInt i tada izvršiti svoj ", dok" petlje, ponavlja i brz ispis uporabu, dok je ulazni ne vrijedi. Drugi način da se osigura ispravan unos korisnika je pomoću "uradi dok" petlju, koji je vrlo sličan while petlji. "Napraviti-a" petlje izvršava kôd unutar tijela jedinica i onda provjerava li je zadovoljen uvjet ili ne. To je korisno za dobivanje korisničkog unosa, jer znate da trebate da ih zatražiti barem jednom. Ako uvjet nije zadovoljen, Program će izvršiti liniju nakon tvoj "ne-a" petlje. Ako je zadovoljen uvjet da, petlje će se ponoviti "Napraviti-a" petlje za provjeru korisnika Ulaz će izgledati nešto poput ovoga. Ja deklarirati varijablu n, GetInt, a a zatim ponovite sve dok n vrijedi. I taj proces, objasnio sam, bio koristeći cijeli-tip podataka, koji ćete koristiti za dane u mjesecu. Ali mi znamo da je broj penija će nagomilati brzo, tako da bi se pohraniti veće brojeve, koristite vrstu podataka LongLong, ali sjetite se ista Načelo valjanosti odnosi. Strašan, tako da kada imamo dvije valjane podacima dobivenim od korisnika - dana u mjesecu i novčana jedinica Na prvi dan - možemo premjestiti na sljedeći dio programa. Prvi dan, korisnik počne s Međutim, mnogi su navedeni penija i iznos novčića da dobivaju sljedeći dan je udvostručen. Dakle, ima smisla pratiti od ta dva iznosa - koliko novaca ima i koliko korisnik mnogi penija oni će se dati. Sada, radiš nešto za 28 do 31 dan je repetitivna, tako da ćemo koristiti "za" Petlja se ponoviti tijekom dana u mjeseca, ažuriranje i ukupni denar iznositi svaki put. "Za" loop sintakse sadrži sljedeće - inicijalizacije, stanje, i ažuriranje. Vaš "za" petlja će započeti varijabla, kada je Prvi ulazi u petlju. Ako je uvjet zadovoljen, tijelo od petlje će se izvršiti. Nakon toga, ažuriranje će izvršavati. Ako je uvjet još uvijek zadovoljen, petlje će se izvršiti i ažurirati, a Ponavljam, sve dok vaš stanju true. Ovdje je "za" petlja koja dijeli cijeli p po 2 ukupno 10 puta. Napomena kako sam proglasio broj P izvan moga "za" petlje, tako da cijeli broj može biti dostupna izvan "za" petlje. Nakon što je prošlo mjesec dana, vrijeme je reći korisnički koliko novca što ste stečen. Po spec., morate reći korisniku koliko dolara, a ne koliko penija, oni imaju. No, do sada, da si pratila Ukupna novčana jedinica, a koriste LongLongs, koji su cijeli brojevi. Postoji 100 penija za jedan dolar, tako da osim broj novčana jedinica je višekratnik broja 100, morat ćete predstavljaju decimalnih mjesta. Udvostručio autotip omogućuje da to učinite. Pa kako ćemo pretvoriti iz zastupanje novčana jedinica na dolar? Idemo pogledati pi.c. Ovaj program traje LongLong big_pi i ga dijeli od 100.000, a ispisuje Rezultat na pet decimalnih mjesta. Ako smo htjeli prikazati četiri decimale mjesta, onda mi samo može zamijeniti broj ovdje. Tako ćemo uštedjeti, sastaviti pi, a onda vidjeti rezultat, što smo Očekujemo da ćemo biti 3,1415 - prvih pet znamenki broja pi. Nije ipak. A zašto? Pa, zato što je big_pi LongLong, koji je cijeli broj, koji neće pratiti decimala. Modifikacije trebam napraviti je u podjeli. Moram baciti bračni ovdje dijeljenjem, jer parovi ne mogu imati praćenje decimalnih mjesta. A ja ću dodati novu liniju Ovdje za bolje oblikovanje. I ovdje ćemo ga imati - 3,1416. Možda ćete primijetiti da ispisuje 3,1416 umjesto 3,1415 kao što se očekuje. To je zato što kola tijekom Podjela proces, za razliku od samo skraćivanjem vrijednost. Sada biste trebali biti u mogućnosti ispisati konačni rezultat točno, koji završi Program. Čestitamo. Moje ime je Zamyla. A to je novčana jedinica. [Glazba svira]