1 00:00:00,000 --> 00:00:00,493 2 00:00:00,493 --> 00:00:09,860 >> [Jwe mizik] 3 00:00:09,860 --> 00:00:13,520 >> ZAMYLA Chan: Èske ou ta pito resevwa $ 10 milyon dola kounye a oswa resevwa 4 00:00:13,520 --> 00:00:17,460 peni chak jou nan mwa a, kote chak jou ki vini apre, ou resevwa 5 00:00:17,460 --> 00:00:21,280 double kantite lajan an nan peni ou resevwa nan jou anvan an? 6 00:00:21,280 --> 00:00:24,010 Nan peni, nou pral pwouve poukisa ou ta dwe 7 00:00:24,010 --> 00:00:27,000 definitivman pran peni yo. 8 00:00:27,000 --> 00:00:29,130 Travay ou se ekri pennies.c-- 9 00:00:29,130 --> 00:00:33,330 yon pwogram ki premye mande itilizatè a ki jan pandan plizyè jou gen nan mwa a ak 10 00:00:33,330 --> 00:00:38,780 Lè sa a, mande ki jan anpil peni itilizatè a ap resevwa sou premye jou a. 11 00:00:38,780 --> 00:00:41,780 Pwogram nan ta dwe Lè sa a, kalkile la kantite lajan ki itilizatè a ap gen 12 00:00:41,780 --> 00:00:46,530 akimile nan fen a mwa epi montre li. 13 00:00:46,530 --> 00:00:49,670 >> Nou ka kraze pwogram sa a moute nan yon koup nan travay. 14 00:00:49,670 --> 00:00:52,830 Nou pral bezwen rapid pou entrain itilizatè miltip - 15 00:00:52,830 --> 00:00:55,510 jou ak mwa, ak peni sou premye jou. 16 00:00:55,510 --> 00:00:59,390 Nou bezwen kenbe tras nan konbyen lajan itilizatè a gen epi mete ajou li chak 17 00:00:59,390 --> 00:01:03,060 jou sa a, double kantite lajan an nan peni yo ke yo resevwa. 18 00:01:03,060 --> 00:01:06,710 E finalman, nou enprime yo final total, an dola. 19 00:01:06,710 --> 00:01:08,570 >> Se pou yo opinyon itilizatè atake an premye. 20 00:01:08,570 --> 00:01:11,560 Mwen pral louvri moute apples.c, kout pwogram ki kontra 21 00:01:11,560 --> 00:01:13,840 ak entrain yo ak kontribisyon. 22 00:01:13,840 --> 00:01:17,310 Nan tèt a isit la, mwen te enkli kèk nan bibliyotèk yo ki mwen bezwen - 23 00:01:17,310 --> 00:01:20,450 Bibliyotèk CS50 a ak pou yon estanda ki Mwen / bibliyotèk O. 24 00:01:20,450 --> 00:01:24,310 Mwen ekri ak lèt ​​detache yon èd memwa lè l sèvi avèk la printf fonksyon ki soti nan la 25 00:01:24,310 --> 00:01:25,660 estanda I / O bibliyotèk la. 26 00:01:25,660 --> 00:01:29,740 Men, aktyèl la ki pouse nan itilizatè a k ap pase nan liy nan pwochen ak sa-a 27 00:01:29,740 --> 00:01:33,650 Fonksyon GetInt nan bibliyotèk la CS50. 28 00:01:33,650 --> 00:01:38,300 >> GetInt jwenn enfòmasyon nan men itilizatè a ak asire ke D 'a se yon nonb antye ki pè. 29 00:01:38,300 --> 00:01:45,160 Se konsa, mwen sere D 'itilizatè a nan nonb antye ki pè mwen, fè soustraksyon 1 soti nan mwen, ak Lè sa a, 30 00:01:45,160 --> 00:01:47,610 enprime soti valè nan nouvo si mwen. 31 00:01:47,610 --> 00:01:53,050 Apre konpile apples.c lè l sèvi avèk la lòd "fè pòm," Mwen gen yon 32 00:01:53,050 --> 00:01:55,770 ègzèkutabl dosye pòm. 33 00:01:55,770 --> 00:01:58,760 Kouri ke, mwen pral opinyon 1. 34 00:01:58,760 --> 00:02:02,600 Pwogram la di m 'ki Mwen gen 0 pòm kite. 35 00:02:02,600 --> 00:02:05,480 Se konsa, ki te travay jan yo espere a. 36 00:02:05,480 --> 00:02:09,740 >> Se konsa, kite a kouri sa a ankò ak opinyon negatif 1. 37 00:02:09,740 --> 00:02:13,950 Koulye a, li te gen yon kantite lajan negatif nan pòm pa vrèman fè sans, men 38 00:02:13,950 --> 00:02:18,370 pwogram lan aksepte li, paske negatif 1, byen, li se yon nonb antye. 39 00:02:18,370 --> 00:02:22,740 Epi, koulye a pwogram lan oswa mons la andedan pwogram nan manje yon negatif 40 00:02:22,740 --> 00:02:26,250 pòm, epi kounye a mwen gen negatif 2 pòm. 41 00:02:26,250 --> 00:02:28,610 Hm, se konsa sa a, se yon leson - 42 00:02:28,610 --> 00:02:32,965 menm si GetInt fonksyon an ak fonksyon ki gen rapò ak, tankou GetFlow oswa 43 00:02:32,965 --> 00:02:38,100 GetString jwenn dwa done di ki kalite a, ou gen a asire w ke D 'a fè 44 00:02:38,100 --> 00:02:41,430 sans pou pwogram ou an. 45 00:02:41,430 --> 00:02:45,500 >> Nan peni, li pa pral fè jis yon èd memwa pou yon nonb antye ki pè, ou pral bezwen fè 46 00:02:45,500 --> 00:02:49,550 asire w ke itilizatè a entrain yon nonb antye relatif ki fè sans yo bay kontèks la. 47 00:02:49,550 --> 00:02:55,690 Mwa ka sèlman gen 28, 29, 30, oswa 31 jou. 48 00:02:55,690 --> 00:02:59,160 Nou vle kontinyèlman mande yon nonb antye ki pè ki valid. 49 00:02:59,160 --> 00:03:03,240 Si yo opinyon yon deyò nonb antye ki pè nan nou an limit akseptab, nou pral pouse yo 50 00:03:03,240 --> 00:03:07,190 ankò e ankò, jiskaske ou ba nou yon nonb antye ki pè ki valid. 51 00:03:07,190 --> 00:03:10,070 >> Sonje "repete la jiskaske" bloke nan grafouyen? 52 00:03:10,070 --> 00:03:13,070 Ou kapab fè yon édifice menm jan an nan C lè l sèvi avèk yon "pandan y ap" bouk 53 00:03:13,070 --> 00:03:14,830 oswa "fè-pandan y ap" bouk. 54 00:03:14,830 --> 00:03:18,280 Estrikti a bouk pandan y ap gen yon pwoblèm ki dwe rankontre pou la 55 00:03:18,280 --> 00:03:20,160 kò nan bouk la egzekite. 56 00:03:20,160 --> 00:03:23,080 >> Sa a ta dwe gade yon ti kras ki similè yo, paske kondisyon an se jis tankou nan 57 00:03:23,080 --> 00:03:25,970 Grafouyen blòk ak ang yo ak ale nan parantèz yo 58 00:03:25,970 --> 00:03:27,950 nan "pandan y ap" bouk la. 59 00:03:27,950 --> 00:03:30,600 Se konsa, ki kondisyon pral tcheke pou wè si wi ou non nonb antye ki pè a se nan 60 00:03:30,600 --> 00:03:32,680 limit ki apwopriye yo. 61 00:03:32,680 --> 00:03:36,620 Ou ka pouse nonb antye ki pè GetInt la lè l sèvi avèk ak Lè sa a egzekite "pandan y ap" ou 62 00:03:36,620 --> 00:03:41,030 bouk, repete èd memwa a ak enprime enstriksyon, pandan y ap D 'a 63 00:03:41,030 --> 00:03:43,470 se pa ki valid. 64 00:03:43,470 --> 00:03:47,610 >> Yon lòt fason asire kòrèk opinyon itilizatè se lè l sèvi avèk yon "fè-pandan y ap" bouk, 65 00:03:47,610 --> 00:03:50,400 ki se trè menm jan ak yon bouk Pandan ke. 66 00:03:50,400 --> 00:03:54,950 Nan "fè-pandan y ap" bouk ègzekutra kòd la andedan yo menm ki kò yo ak Lè sa a, chèk 67 00:03:54,950 --> 00:03:57,150 si kondisyon an satisfè oswa ou pa. 68 00:03:57,150 --> 00:04:00,590 Sa a se itil pou jwenn opinyon itilizatè, paske ou konnen ke ou bezwen 69 00:04:00,590 --> 00:04:02,980 pouse yo omwen yon fwa. 70 00:04:02,980 --> 00:04:07,200 Si kondisyon an pa te rankontre, pwogram lan ap egzekite liy lan apre yo fin 71 00:04:07,200 --> 00:04:08,530 ou "fè-pandan y ap" bouk. 72 00:04:08,530 --> 00:04:13,230 Si kondisyon an te rankontre menm si, bouk la ap repete 73 00:04:13,230 --> 00:04:17,490 >> A "fè-pandan y ap" bouk pou validation itilizatè D 'ap gade yon bagay tankou sa. 74 00:04:17,490 --> 00:04:24,530 Mwen deklare yon n varyab, GetInt, ak Lè sa a, repete jiskaske n se ki valid. 75 00:04:24,530 --> 00:04:28,040 Men, pwosesis sa a, mwen eksplike, yo te lè l sèvi avèk ki kalite nonb antye ki pè-done, ki 76 00:04:28,040 --> 00:04:29,820 ou pral itilize pou jou yo nan mwa a. 77 00:04:29,820 --> 00:04:33,560 Men, nou konnen ki kantite peni ap anpile byen vit, se konsa yo nan lòd yo 78 00:04:33,560 --> 00:04:39,160 magazen pi gwo nonb, sèvi ak kalite a done LongLong, men sonje menm bagay la tou 79 00:04:39,160 --> 00:04:42,590 prensip nan validation aplike. 80 00:04:42,590 --> 00:04:47,070 >> Awesome, se konsa yon fwa nou gen de valab entrain soti nan itilizatè a - 81 00:04:47,070 --> 00:04:49,530 jou nan mwa a ak peni yo sou premye jou a - 82 00:04:49,530 --> 00:04:52,870 nou ka deplase sou pwochen an yon pati nan pwogram nan. 83 00:04:52,870 --> 00:04:56,680 Premye jou a, itilizatè a kòmanse ak sepandan anpil peni yo espesifye 84 00:04:56,680 --> 00:05:00,370 ak kantite lajan nan peni yo ke yo resevwa jou kap vini an se double. 85 00:05:00,370 --> 00:05:03,130 Se konsa, li fè sans nan kenbe tras nan de montan sa yo - 86 00:05:03,130 --> 00:05:08,890 konbyen lajan itilizatè a gen ak ki jan peni anpil yo pral bay yo. 87 00:05:08,890 --> 00:05:13,760 >> Koulye a, fè yon bagay pou 28 rive 31 jou se repetitif, se konsa kite a sèvi ak yon "pou" 88 00:05:13,760 --> 00:05:18,220 bouk répétèr sou jou sa yo nan la mwa, à manm an ak pyès lajan 89 00:05:18,220 --> 00:05:21,010 monte chak fwa. 90 00:05:21,010 --> 00:05:23,550 "Pou" sentaks bouk gen sa ki annapre yo - 91 00:05:23,550 --> 00:05:27,510 yon inisyalizasyon, yon kondisyon, ak yon ajou. 92 00:05:27,510 --> 00:05:29,590 Ou "pou" bouk ap inisyalize yon varyab, lè li 93 00:05:29,590 --> 00:05:31,380 premye antre nan bouk la. 94 00:05:31,380 --> 00:05:34,860 Si kondisyon an te rankontre, kò a nan bouk la pral egzekite. 95 00:05:34,860 --> 00:05:36,860 Apre sa, aktyalizasyon a pral egzekite. 96 00:05:36,860 --> 00:05:40,900 Si kondisyon an toujou te rankontre, nan bouk ap egzekite epi mete ajou, epi 97 00:05:40,900 --> 00:05:45,820 repete, osi lontan ke eta sante ou evalye vre. 98 00:05:45,820 --> 00:05:51,080 >> Isit la nan yon "pou" bouk ki divize yon nonb antye ki pè p pa 2 yon total de 10 fwa. 99 00:05:51,080 --> 00:05:55,380 Remake byen ki jan mwen te deklare p la nonb antye ki pè deyò nan mwen "pou" bouk, se konsa ke nan 100 00:05:55,380 --> 00:05:59,850 nonb antye ki pè yo ka gen aksè deyò "pou" bouk la. 101 00:05:59,850 --> 00:06:03,620 Apre yo fin mwa a pase, li lè di itilizatè a konbyen lajan 102 00:06:03,620 --> 00:06:04,790 yo te vinn. 103 00:06:04,790 --> 00:06:08,740 Pou chak espèk a, ou bezwen di itilizatè a konbyen dola, pa konbyen 104 00:06:08,740 --> 00:06:10,780 peni yo, yo gen. 105 00:06:10,780 --> 00:06:14,620 Men, byen lwen tèlman, ou te kenbe tras nan la total ak peni yo lè l sèvi avèk LongLongs, 106 00:06:14,620 --> 00:06:16,640 ki se nonb antye. 107 00:06:16,640 --> 00:06:20,560 >> Gen yon peni 100 a $ 1, se konsa sòf si nimewo a nan peni se yon 108 00:06:20,560 --> 00:06:24,860 plizyè nan 100, ou pral bezwen reprezante kote desimal. 109 00:06:24,860 --> 00:06:28,060 Ototip a double pèmèt ou fè sa. 110 00:06:28,060 --> 00:06:32,790 Se konsa, kouman nou konvèti soti nan ki reprezante peni dola? 111 00:06:32,790 --> 00:06:35,330 >> Ann pran yon gade pi.c. 112 00:06:35,330 --> 00:06:41,690 Pwogram sa a pran yon big_pi LongLong ak divize li pa 100,000, ak simagri 113 00:06:41,690 --> 00:06:44,270 rezilta a nan senk kote desimal. 114 00:06:44,270 --> 00:06:48,560 Si nou te vle montre kat desimal kote, lè sa a nou kapab jis ranplase sa a 115 00:06:48,560 --> 00:06:49,760 nimewo isit la. 116 00:06:49,760 --> 00:06:58,370 Se konsa, kite a sove, konpile PI, ak Lè sa a, wè rezilta a, ki nou 117 00:06:58,370 --> 00:07:02,240 atann yo dwe 3,1415 - 118 00:07:02,240 --> 00:07:04,540 senk premye chif yo nan PI. 119 00:07:04,540 --> 00:07:06,300 >> Li se pa menm si. 120 00:07:06,300 --> 00:07:07,390 Epi pou kisa? 121 00:07:07,390 --> 00:07:11,920 Oke, paske big_pi se yon LongLong, ki se yon nonb antye, ki pral pa 122 00:07:11,920 --> 00:07:13,740 kenbe tras nan desimal. 123 00:07:13,740 --> 00:07:16,850 Modifikasyon nan mwen bezwen fè se nan divizyon an. 124 00:07:16,850 --> 00:07:23,300 Mwen bezwen jete nan yon doub isit la anvan divize, paske double pa kapab kenbe 125 00:07:23,300 --> 00:07:25,260 tras nan kote desimal. 126 00:07:25,260 --> 00:07:28,080 Men, mwen pral ajoute yon liy nouvo isit la pou pi bon fòma. 127 00:07:28,080 --> 00:07:33,090 128 00:07:33,090 --> 00:07:34,230 >> Ak isit la nou genyen li - 129 00:07:34,230 --> 00:07:37,660 3.1416. 130 00:07:37,660 --> 00:07:43,520 Ou kapab remake ke li simagri 3.1416 olye pou yo 3,1415 jan yo espere a. 131 00:07:43,520 --> 00:07:47,550 Sa a paske li jij pandan la pwosesis divizyon, kòm opoze a jis 132 00:07:47,550 --> 00:07:50,490 truncating valè an. 133 00:07:50,490 --> 00:07:53,710 Koulye a, ou ta dwe kapab ekri ak lèt ​​detache a final total manm yo kòrèkteman, ki fini 134 00:07:53,710 --> 00:07:54,870 pwogram lan. 135 00:07:54,870 --> 00:07:55,930 >> Konpliman. 136 00:07:55,930 --> 00:07:57,340 Non mwen se Zamyla. 137 00:07:57,340 --> 00:07:58,720 Lè sa a te peni. 138 00:07:58,720 --> 00:08:05,589 >> [Jwe mizik]