>> [Mūzikas atskaņošanas]
>> ZAMYLA Chan: Vai Jūs drīzāk saņemt $ 10000000 tagad vai saņemt
pennies katru dienu mēneša, kur katru nākamo dienu, jūs saņemat
divkāršā apmērā pennies jums saņēma dienu pirms?
Jo pennies, mēs spēsim pierādīt, kāpēc jums vajadzētu
noteikti veikt pennies.
Tavs uzdevums ir rakstīt pennies.c, -
programma, kas vispirms prasa lietotājam, kā vairākas dienas tur ir mēneša un
tad jautā, cik daudz pennies lietotājs saņem pirmajā dienā.
Programma pēc tam aprēķina summa, kas lietotājam būs
uzkrāto beigās mēnesi, un parādīt to.
>> Mēs varam pārtraukt šo programmu, nepārsniedzot uz pāris uzdevumus.
Mums būs nepieciešams vaicāt vairāku lietotāju ieejas -
dienas un mēnešus, un pennies gada pirmajā dienā.
Mums ir nepieciešams, lai sekotu, cik daudz naudas lietotājam ir, un to atjaunina ik
diena, dubultojot apjomu pennies, ka viņi saņem.
Un visbeidzot, mēs drukāt to Galīgais kopējais, dolāros.
>> Let 's risināt lietotāja ievadi pirmās.
Es esmu gatavojas atvērt apples.c, īsa programma, kas nodarbojas
ar ieejas un izejas.
Augšpusē šeit, es esmu iekļauts dažus no bibliotēkām, kas man ir nepieciešams -
CS50 bibliotēka un standarta I / O bibliotēka.
Es izdrukāt ātru, izmantojot printf funkciju no
standarta I / O bibliotēka.
Bet faktiskā pamudinot no lietotāja notiek nākamajā Saskaņā ar šo
GetInt funkcija CS50 bibliotēkā.
>> GetInt saņem no lietotāja ievadi un nodrošina, ka izejviela ir vesels skaitlis.
Tāpēc es glabāt lietotāja ieguldījumu skaitlim i, atņem 1 no I, un pēc tam
izdrukāt jauno vērtību, ja es.
Pēc apkopošanas apples.c, izmantojot komandu "padarīt ābolus," Man ir
izpildāmo failu āboli.
Rādīt, ka es ieeja 1.
Programma man saka, ka Man ir 0 ābolus pa kreisi.
Un tā, kas strādāja kā gaidīts.
>> Tātad, pieņemsim palaist to atkal un ieejas negatīvs 1.
Tagad, kam ir negatīva summa ābolu nav īsti jēgas, bet
Programmas pieņem to, jo negatīvā 1, labi, tas ir vesels skaitlis.
Un tagad programma vai briesmonis iekšā programma ēd negatīvs
ābolu, un tagad man ir negatīvās 2 āboli.
Hm, tā ir viena mācība -
kaut GetInt funkciju un saistītās funkcijas, piemēram, GetFlow vai
GetString iegūtu pareizo datu tipu, ir jāpārliecinās, ka ieejas padara
sajūtu par savu programmu.
>> Jo pennies, tas nav jādara, tikai ātri par skaitlim, jums būs nepieciešams veikt
pārliecinieties, ka lietotājs izejvielas veselam skaitlim ka jēgas, ņemot vērā kontekstu.
Mēnesis var būt tikai 28, 29, 30, 31 vai dienās.
Mēs vēlamies, lai nepārtraukti pieprasīt derīgs skaitlim.
Ja viņi ieejas veselu ārpus mūsu pieņemtās robežas, mēs ātri viņiem
atkal un atkal, līdz jūs dod mums derīgu skaitli.
>> Atsaukt "atkārtot līdz" bloķē nulles?
Jūs varat veikt līdzīgu konstrukciju C, izmantojot ", bet" cilpa
vai "do-kamēr" cilpa.
Kamēr cilpa struktūra ir nosacījums, , kas ir jāizpilda,
ķermenis no cilpas izpildīt.
>> Tam vajadzētu izskatīties mazliet līdzīgi, jo nosacījums ir tāpat kā
Scratch bloki ar leņķi un tērēta iekavās
par ", bet" cilpa.
Tā, ka nosacījums būs pārbaudīt, vai vesels skaitlis ir robežās
attiecīgās robežas.
Jūs varat ātri veselu izmantojot GetInt un tad izpildīt savu "laiku"
cilpa, atkārtojot ātru un poligrāfijas instrukciju, bet ieejas
nav derīga.
>> Vēl viens veids, kā nodrošināt pareizu lietotāja ievadi ir, izmantojot "do-kamēr" cilpa,
, kas ir ļoti līdzīgs, kamēr cilpa.
"Do-kamēr" cilpa izpilda kodu iekšpusē ķermeņa tiem, un tad pārbaudes
vai nosacījums ir izpildīts vai nav.
Tas ir noderīgi, lai iegūtu lietotāja ievadi, jo jūs zināt, ka jums ir nepieciešams
lai ātri viņiem vismaz vienu reizi.
Ja nosacījums nav izpildīts, programma veiks līniju pēc
jūsu "do-kamēr" cilpa.
Ja nosacījums ir izpildīts, lai gan, cilpa atkārtos
>> "Do-bet" cilpa apstiprināšanai lietotāju ieeja izskatās kaut kas līdzīgs šim.
Es apliecinu, mainīgo n, GetInt, un Pēc tam atkārto, līdz n ir spēkā.
Un šis process, man paskaidroja, bija, izmantojot skaitlim-datu tips, kas
jūs izmantojat, lai mēneša dienām.
Bet mēs zinām, ka skaits pennies būs uzkrāt ātri, tā, lai
uzglabāt lielāku skaitu, izmantojiet datu tipu LongLong, bet atcerieties pats
princips apstiprināšanas piemērojams.
>> Awesome, tāpēc, kad mums ir divas derīgas izejvielas no lietotāja -
dienas mēnesī un pennies pirmajā dienā -
mēs varam virzīties uz nākamo daļa no programmas.
Pirmā diena, lietotājs sākas ar tomēr daudzi pennies tie noteikti
un summu pennies, ka viņi saņemt nākamajā dienā ir dubultojies.
Tātad, tas ir jēga, lai sekotu no šīm divām summām -
cik daudz naudas lietotājs ir un cik daudzi pennies tie būs dota.
>> Tagad, darot kaut ko uz 28 līdz 31 dienu atkārtojas, tāpēc pieņemsim izmantot "par"
cilpa atkārtot pār dienas, mēnesi, atjauninot kopējā un graša
sasniegt katru reizi.
"Par" cilpa sintakse satur punktu -
inicializācijas, nosacījums, un atjaunināšana.
Jūsu "par" cilpa būs sāktu mainīga, kad tas
pirmo reizi nonāk cilpa.
Ja nosacījums ir izpildīts, ķermeņa no cilpas būs izpildīt.
Pēc tam, atjauninājums izpildīt.
Ja nosacījums ir joprojām izpildīti, cilpa izpildīt un atjaunināt, un
atkārtot, kamēr jūsu stāvokli novērtē kā patiess.
>> Šeit ir "par" cilpa, kas sadala skaitlis p ar 2 pavisam 10 reizes.
Ņemiet vērā, cik man paziņoja skaitlim p ārpus mana "par" cilpa, tā ka
vesels skaitlis var būt pieejams ārpus "par" cilpa.
Pēc mēnesi ir pagājis, ir pienācis laiks pateikt lietotājam, cik daudz naudas
tie esam gotten.
Per spec, jums ir nepieciešams, lai pastāstītu lietotāju cik daudz dolāru, nevis cik daudz
pennies, viņi ir.
Bet līdz šim, jūs esat tur līdzi kopā un pennies, izmantojot LongLongs,
, kas ir veseli skaitļi.
>> Ir 100 pennies līdz 1 $, tāpēc, ja pennies skaits ir
dalās ar 100, jums ir nepieciešams, lai pārstāvēt zīmēm aiz komata.
Dubultojies autotipija pieļauj jums to darīt.
Tātad, kā mēs pārvērst pārstāvēt pennies dolāru?
>> Pieņemsim to apskatīt pi.c.
Šī programma aizņem LongLong big_pi un dala to ar 100,000, un izdrukas
rezultāts piecām zīmēm aiz komata.
Ja mēs vēlējāmies, lai parādītu četrām zīmēm vietas, tad mēs varam vienkārši aizstāt šo
numuru šeit.
Tā ļauj saglabāt, apkopo pi, un tad redzēt rezultātu, ko mēs
gaida, lai 3,1415 -
pirmie pieci cipari pi.
>> Tas ir nav, lai gan.
Un kāpēc?
Nu, jo big_pi ir LongLong, kas ir vesels skaitlis, kas nav
sekot līdzi aiz komata.
Izmaiņas man ir nepieciešams, lai izdarīt ir sadalīšanu.
Man vajag, lai nodoto dubultā šeit pirms dalot, jo dubultspēlē nevar saglabāt
līdzi aiz komata.
Un es esmu gatavojas pievienot jaunu rindu šeit labāk formatēšanu.
>> Un šeit mums ir tā -
3,1416.
Jūs ievērosiet, ka tas drukā 3,1416 vietā 3,1415, kā gaidīts.
Tas ir tāpēc, ka tas kārtās laikā sadalīšana process, nevis tikai
truncating vērtību.
Tagad jums vajadzētu būt iespējai drukāt Galīgais kopējais pareizi, kas pabeidz
programmu.
>> Apsveicu.
Mans vārds ir Zamyla.
Un tas bija pennies.
>> [Mūzikas atskaņošanas]