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