>> [Predvajanja glasbe]
>> ZAMYLA CHAN: Bi raje prejemajo 10.000.000 $ zdaj ali prejemanje
penijev vsak dan v mesecu, če je to vsak naslednji dan, boste prejeli
dvojno količino penijev vas prejeli dan pred?
V penijev, bomo dokazati, zakaj bi morali
zagotovo sprejela penijev.
Vaša naloga je, da napišete pennies.c--
program, ki najprej vpraša uporabnika, kako veliko dni je v mesecu in
nato vpraša, koliko penijev uporabnik bodo prejeli na prvi dan.
Program je treba nato izračuna znesek, ki ga bo uporabnik
nabrali na koncu mesec in ga prikažete.
>> Mi lahko prekinil ta program gor v nekaj nalog.
Bomo potrebovali, da zahteva več vhodi uporabnikov -
dnevi in ​​meseci in penijev na prvi dan.
Moramo slediti, koliko denarja uporabnik in ga dopolni vsak
dan, podvoji penijev, ki jih prejmejo.
In končno, tiskamo svoje končno skupaj, v dolarjih.
>> Prvi Oglejmo uporabnik vložek dosti.
Bom odprla apples.c, kratek program, ki se ukvarja
z vhodi in izhodi.
Na vrhu tukaj, sem vključila nekatere od knjižnic, ki sem jih -
Knjižnica CS50 in standardni I / O knjižnici.
Tiskam uren uporabo printf funkcijo od
Standard I / O knjižnici.
Toda dejansko česar uporabnika zgodi v naslednjem skladu s tem
Funkcija GetInt v knjižnici CS50.
>> GetInt pridobi prispevek od uporabnika in zagotavlja, da je vložek celo število.
Tako sem shranite vnos uporabnika v celo i, odštejemo od 1 i, nato
izpisal novo vrednost, če bom.
Po zbiranju apples.c uporabo ukaz "make jabolka," imam
izvršljiva datoteka jabolka.
Tek, da bom vhod 1.
Program mi je povedal, da Imam 0 jabolk levo.
In tako, da je delal kot je bilo pričakovano.
>> Torej, kaj je to spet teči in vnos negativna 1.
Sedaj negativno količino jabolk ne res smiselno, vendar
Program sprejme, saj negativno 1, pa je celo število.
In zdaj programu ali pošast znotraj programa poje negativno
jabolko, zdaj pa imam Negativni 2 jabolki.
Hm, tako da je ena lekcija -
čeprav funkcija GetInt in sorodne funkcije, kot so GetFlow ali
GetString dobili pravo vrsto podatkov, si se prepričajte, da vhod omogoča
Občutek za vaš program.
>> V penijev, da ne bo naredil samo poziv za celo število, boste morali, da bi
prepričajte, da uporabnik vhodi celo število to smiselno glede na kontekst.
Mesec lahko samo 28, 29, 30 ali 31 dni.
Želimo, da nenehno zahtevajo veljavno celo število.
Če se vložek celo število zunaj naše sprejete meje, jih bomo hitro
znova in znova, dokler ne boste nam veljavno celo število.
>> Spomnimo "ponavljajte, dokler" blok v nič?
Lahko naredite podoben konstrukt v C z uporabo ", medtem ko" zanka
ali "naredi, medtem ko" zanka.
Zanka struktura, medtem ko je stanje ki morajo biti izpolnjeni
Telo zanke izvršitve.
>> To je treba videti malo podoben, ker je stanje tako kot
Scratch bloki z kotov in gre v oklepajih
o ", medtem ko" zanko.
Tako da bo ta pogoj preveriti, ali celo število je v
ustrezne meje.
Lahko hitro celo število z GetInt in nato izvršiti vaš ", medtem ko"
zanka, ponavljanje in hitro tiskanje Navodila, ko je vhodni
ni veljavna.
>> Drug način, da se zagotovi pravilen vnos uporabnika je z uporabo "do-while" zanko,
ki je zelo podobna, medtem ko zanke.
"Naredi, medtem ko" zanka izvaja kodo telesu tiste in nato preveri
ali je pogoj izpolnjen ali ne.
To je koristno za pridobitev vhodnih podatkov, saj veste, da morate
da jih vsaj enkrat poziv.
Če pogoj ni izpolnjen, program izvršim črto po
tvoj "ne-pa" zanka.
Če je pogoj izpolnjen, čeprav, zanka se bo ponovil
>> "Naredi, medtem ko" zanka za potrjevanje uporabnika Vhod bo izgledal nekako takole.
Izjavljam spremenljivo n, GetInt in ponovite, dokler je n veljavna.
In ta proces, sem pojasnil, je bil z uporabo celo število, vrsto podatkov, ki
boste uporabljali za dneve v mesecu.
Vendar vemo, da se je število penijev se kopičijo hitro, tako da bi
shranjevanje večjih številk, uporabite podatkovni tip LongLong, vendar ne pozabite, enako
velja načelo potrditve.
>> Super, tako da, ko imamo dva veljavna vložki od uporabnika -
dni v mesecu in penijev prvi dan -
se lahko premaknemo na naslednji del programa.
Prvi dan, uporabnik začne z pa veliko penijev so navedeni
in količina drobiža da prejeli naslednji dan se podvoji.
Zato je smiselno, da bi spremljali teh dveh zneskov -
koliko denarja ima uporabnik in kako veliko penijev boste morali imeti.
>> Zdaj, delaš nekaj za 28 do 31 dni se ponavlja, tako da je uporaba "za"
Zanka za ponovitev čez dneve v mesec, posodabljanje skupaj in peni
pomenilo vsakič.
"Za" sintaksa zanka vsebuje naslednja -
inicializacijo, pogoj, in posodobitev.
Vaš "za" zanka bo inicializacijo spremenljivka, ko
prvič vstopi v zanko.
Če je pogoj izpolnjen, telo v zanki bodo izvajale.
Zatem bo posodobitev izvesti.
Če je pogoj vedno izpolnjene, zanka se bo izvajanje in posodabljanje in
Ponavljam, dokler vaše stanje ovrednoten kot resničen.
>> Tukaj je "za" zanka, ki ločuje celo p po 2 skupaj 10-krat.
Opazujte, kako sem razglasila celo število p zunaj moje "za" zanko, tako da
celo lahko dostopne zunaj "za" zanko.
Potem, ko je minilo mesec, je čas, povedati uporabniku, koliko denarja
oni 'gotten.
Na spec, morate povedal uporabnik koliko dolarjev, ne koliko
penijev, ki jih imajo.
Ampak sedaj, ko ste redno spremljate skupaj in penijev uporabo LongLongs,
ki so cela števila.
>> Obstaja 100 penijev za $ 1, tako da če število drobiža je
večkratnik 100, boste morali predstavljajo decimalki.
Podvojila autotype omogoča , da to storijo.
Torej, kako spremeniti zastopanje penijev na dolarjev?
>> Oglejmo si pi.c.
Ta program traja LongLong big_pi in jo deli s 100.000 in natisne
rezultat na pet decimalnih mest.
Če smo želeli prikazati štiri decimalna mesta, potem lahko samo zamenjati to
Številka tukaj.
Torej, kaj je varčevanje, zbiranje pi, in potem videli rezultat, ki smo ga
pričakujejo, da bodo 3,1415 -
prvih pet številk pi.
>> Ni čeprav.
In zakaj?
No, saj big_pi je LongLong, ki je celo število, ki ne bo
slediti decimalk.
Sprememba moram da je v delitev.
Moram oddati do dvojnega tukaj tako, saj dvojice ne morejo slediti
Spremljajte decimalnih mest.
In bom dodati novo vrstico tukaj za boljše oblikovanje.
>> In tukaj ga imamo -
3,1416.
Morda boste opazili, da se natisne 3,1416 Namesto 3,1415, kot je bilo pričakovano.
To je zato, ker rund Postopek delitev, v nasprotju s samo
krčenjem vrednost.
Sedaj bi morali imeti možnost, da natisnete končni skupni pravilno, ki konča
Program.
>> Čestitam.
Moje ime je Zamyla.
In to je bil penijev.
>> [Predvajanja glasbe]