>> [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]