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