1 00:00:00,000 --> 00:00:00,493 2 00:00:00,493 --> 00:00:09,860 >> [Musika jotzen] 3 00:00:09,860 --> 00:00:13,520 >> ZAMYLA CHAN: Nahi al duzu jaso beharrean $ 10 milioi oraintxe edo jaso 4 00:00:13,520 --> 00:00:17,460 pennies hilaren egunero, non ondorengo egun bakoitzean, jasotzen dituzun 5 00:00:17,460 --> 00:00:21,280 bikoitza pennies zenbatekoa duzu jaso eguna baino lehen? 6 00:00:21,280 --> 00:00:24,010 Pennies, nahi dugu zergatik frogatu beharko 7 00:00:24,010 --> 00:00:27,000 behin betiko hartu pennies du. 8 00:00:27,000 --> 00:00:29,130 Zure lana da idazteko pennies.c-- 9 00:00:29,130 --> 00:00:33,330 duen programaren lehenengo erabiltzaileari galdetzen dio nola egun ez dago hilabete dira, eta 10 00:00:33,330 --> 00:00:38,780 ondoren, zenbat pennies erabiltzaileari eskatu dio izango dira lehen egunean jasoko du. 11 00:00:38,780 --> 00:00:41,780 Programa behar du, ondoren, kalkulatu Zenbateko erabiltzaileak egingo dute 12 00:00:41,780 --> 00:00:46,530 horren amaieran metatutako hilaren aldean, eta erakutsi. 13 00:00:46,530 --> 00:00:49,670 >> Programa honen apurtu dezakegu sortu zereginak pare batean. 14 00:00:49,670 --> 00:00:52,830 Behar egiteko eskatuko dizugu Erabiltzaile sarrera - 15 00:00:52,830 --> 00:00:55,510 egun eta hilabeteetan, eta pennies lehendabiziko egunean. 16 00:00:55,510 --> 00:00:59,390 Segimendua egiteko behar ditugu, zenbat diru erabiltzaileak eguneratu eta behin 17 00:00:59,390 --> 00:01:03,060 eguna, zenbatekoa bikoiztu egin da pennies jasoko dutela. 18 00:01:03,060 --> 00:01:06,710 Eta, azkenik, beren dugu inprimatu final guztira, dolarretan. 19 00:01:06,710 --> 00:01:08,570 >> Dezagun aparailua erabiltzailearen sarrera lehen. 20 00:01:08,570 --> 00:01:11,560 Ireki apples.c noa, labur-programa lantzen 21 00:01:11,560 --> 00:01:13,840 sarrera eta irteera. 22 00:01:13,840 --> 00:01:17,310 Goiko hemen sartzen ditut - liburutegiak behar dut 23 00:01:17,310 --> 00:01:20,450 CS50 liburutegia eta estandar bat I / O liburutegia. 24 00:01:20,450 --> 00:01:24,310 Gonbit bat erabiliz inprimatu dut funtzio printf 25 00:01:24,310 --> 00:01:25,660 standard I / O liburutegia. 26 00:01:25,660 --> 00:01:29,740 Baina benetako galdetu erabiltzailearen honekin hurrengo lerroan gertatzen 27 00:01:29,740 --> 00:01:33,650 GetInt CS50 liburutegian funtzioa. 28 00:01:33,650 --> 00:01:38,300 >> GetInt erabiltzailearen sarrera eta lortzen bermatzen duen sarrera oso bat da. 29 00:01:38,300 --> 00:01:45,160 Beraz, erabiltzailearen sarrera gorde dut osokoa sartu kendu i 1 i, eta, ondoren, 30 00:01:45,160 --> 00:01:47,610 inprimatu i galtzen balio berria. 31 00:01:47,610 --> 00:01:53,050 Apples.c biltzeko erabiliz, ondoren komandoa "egiteko, sagarrak," bat dut 32 00:01:53,050 --> 00:01:55,770 fitxategi exekutagarria sagarrak. 33 00:01:55,770 --> 00:01:58,760 Duten carrera, sarrera-1 dut. 34 00:01:58,760 --> 00:02:02,600 Programa kontatzen me 0 sagarrak utzi dut. 35 00:02:02,600 --> 00:02:05,480 Eta, beraz, espero bezala lan egin zuen. 36 00:02:05,480 --> 00:02:09,740 >> Hargatik exekutatu berriro sarrera eta negatiboak 1. 37 00:02:09,740 --> 00:02:13,950 Orain, sagarrak zenbatekoa negatiboa edukitzea ez du benetan zentzua, baina 38 00:02:13,950 --> 00:02:18,370 programa onartzen da, negatiboa delako 1, ondo, oso bat da. 39 00:02:18,370 --> 00:02:22,740 Eta, orain, programa edo munstroa programa jaten negatibo baten barruan 40 00:02:22,740 --> 00:02:26,250 sagarra, eta orain daukat negatiboa 2 sagarrak. 41 00:02:26,250 --> 00:02:28,610 Hm, beraz, ikasgai bat - 42 00:02:28,610 --> 00:02:32,965 nahiz GetInt funtzioa eta lotutako funtzioak, GetFlow bezala edo 43 00:02:32,965 --> 00:02:38,100 Lortu GetString eskuineko datu-mota, duzu izan ziur sarrera egiten dituen egiteko 44 00:02:38,100 --> 00:02:41,430 Zure programa zentzua. 45 00:02:41,430 --> 00:02:45,500 >> Pennies, berriz, ez da besterik egin galdetzeko zenbaki oso bat da, behar dituzun 46 00:02:45,500 --> 00:02:49,550 Ziur erabiltzaileak sarrera oso bat dagoela duten zentzua ematen testuinguruan. 47 00:02:49,550 --> 00:02:55,690 Hilabetea besterik ezin da izan 28, 29, 30 edo 31 egun. 48 00:02:55,690 --> 00:02:59,160 Etengabe exijitu nahi dugu baliozko zenbaki oso bat. 49 00:02:59,160 --> 00:03:03,240 Gure kanpo osokoa sarrera badute onartutako mugetatik, horietako galdetuko dugu 50 00:03:03,240 --> 00:03:07,190 behin eta berriro, arte ematen baliozko zenbaki oso bat. 51 00:03:07,190 --> 00:03:10,070 >> Gogora "errepikatu arte" Scratch bloke? 52 00:03:10,070 --> 00:03:13,070 Antzeko eraikuntza bat egin dezakezu C bat ", berriz," begizta erabiliz 53 00:03:13,070 --> 00:03:14,830 edo "do-, berriz," begizta. 54 00:03:14,830 --> 00:03:18,280 Bitartean begizta egitura baldintza bat du hori lortzeko bete behar 55 00:03:18,280 --> 00:03:20,160 Begizta exekutatu gorputza. 56 00:03:20,160 --> 00:03:23,080 >> Hau apur bat antzekoa izan beharko luke, baldintza besterik ez bezalakoa da, zeren 57 00:03:23,080 --> 00:03:25,970 Scratch angelu bloke eta parentesi artean doa 58 00:03:25,970 --> 00:03:27,950 eta "bitartean" begizta. 59 00:03:27,950 --> 00:03:30,600 Beraz, baldintza hori egiaztatu den ala ez osokoa da, barruan 60 00:03:30,600 --> 00:03:32,680 egokiak mugetatik. 61 00:03:32,680 --> 00:03:36,620 Osoko erabiliz GetInt gonbita dezakezu eta, ondoren, exekutatu zure "bitartean" 62 00:03:36,620 --> 00:03:41,030 begizta, errepikatuz gonbita eta inprimatzeko argibideak, berriz, sarrera 63 00:03:41,030 --> 00:03:43,470 ez da zuzena. 64 00:03:43,470 --> 00:03:47,610 >> Beste modu bat, erabiltzailearen sarrera zuzena ziurtatzeko bat "egin-, berriz," begizta erabiltzen da, 65 00:03:47,610 --> 00:03:50,400 Oso bitartean begizta baten antzekoa da. 66 00:03:50,400 --> 00:03:54,950 "Do-while" begizta kodea exekutatzen gorputzaren direnak eta, gero, txekeak barruan 67 00:03:54,950 --> 00:03:57,150 baldintza betetzen den edo ez. 68 00:03:57,150 --> 00:04:00,590 Hau da, erabiltzaileak sarrera lortzeko erabilgarria Ezagutzen al duzu behar duzulako 69 00:04:00,590 --> 00:04:02,980 Horietako gonbita gutxienez behin. 70 00:04:02,980 --> 00:04:07,200 Baldintza ez bada betetzen, programa lerroa exekutatu egingo ondoren 71 00:04:07,200 --> 00:04:08,530 zure "do-, berriz," begizta. 72 00:04:08,530 --> 00:04:13,230 Baldintza betetzen bada, nahiz eta, begizta egingo errepikatu 73 00:04:13,230 --> 00:04:17,490 >> A "do-, berriz," erabiltzailea balioztatzeko for begizta sarrerako zerbait itxura hau izango du. 74 00:04:17,490 --> 00:04:24,530 Aldakorra n, GetInt deklaratzen dut, eta n ondoren, errepikatu da baliozko arte. 75 00:04:24,530 --> 00:04:28,040 Eta prozesu honetan, I azaldu zen, erabiliz osoko datu-mota, eta horrek 76 00:04:28,040 --> 00:04:29,820 Hilabete egunetan erabili ahal izango duzu. 77 00:04:29,820 --> 00:04:33,560 Baina jakin badakigu pennies kopurua gora pilatzen azkar, beraz, ordena 78 00:04:33,560 --> 00:04:39,160 gorde handiagoa zenbakiak, datu-mota LongLong, baina gogoratu bera 79 00:04:39,160 --> 00:04:42,590 baliozkotze-printzipioa aplikatzen da. 80 00:04:42,590 --> 00:04:47,070 >> Awesome, beraz, behin bi baliozko dugu Erabiltzaile sarrera - 81 00:04:47,070 --> 00:04:49,530 hilabete eta egun pennies du lehenengo egunean - 82 00:04:49,530 --> 00:04:52,870 hurrengo gainean mugitu ahal izango dugu programaren barruan. 83 00:04:52,870 --> 00:04:56,680 Lehenengo egunean, erabiltzaileak hasten Hala ere, asko dira pennies zehaztu 84 00:04:56,680 --> 00:05:00,370 eta pennies zenbatekoa dute jasotzeko hurrengo egunean bikoiztu egin da. 85 00:05:00,370 --> 00:05:03,130 Beraz, zentzuzkoa da segimendua egiteko Bi kopuruen - 86 00:05:03,130 --> 00:05:08,890 zenbat diru erabiltzaileak eta nola asko dira pennies eman behar duzu. 87 00:05:08,890 --> 00:05:13,760 >> Orain, 28 eta 31 egunetan gauza errepikakorra da, eta, beraz, erabil dezagun "for" bat 88 00:05:13,760 --> 00:05:18,220 begizta baino gehiago da, batetik bestera joateko egun duen hilabetea, guztira eta Penny eguneratzeko 89 00:05:18,220 --> 00:05:21,010 zenbatekoa den bakoitzean. 90 00:05:21,010 --> 00:05:23,550 Begizta sintaxia dauka "lortzeko" honako hau - 91 00:05:23,550 --> 00:05:27,510 Hasieratzea bat, baldintza bat, eta eguneraketa. 92 00:05:27,510 --> 00:05:29,590 Zure "for" begizta egingo abiarazi aldagai bat, noiz 93 00:05:29,590 --> 00:05:31,380 lehen begizta sartzen da. 94 00:05:31,380 --> 00:05:34,860 Baldintza betetzen bada, gorputza begiztaren egingo exekutatu. 95 00:05:34,860 --> 00:05:36,860 Ondoren, eguneratu egingo exekutatu. 96 00:05:36,860 --> 00:05:40,900 Baldintza betetzen bada, oraindik ere, eta begizta exekutatuko da eguneratu, eta 97 00:05:40,900 --> 00:05:45,820 errepikatu, beti ere zure egoera gisa Egia ebaluatzen. 98 00:05:45,820 --> 00:05:51,080 >> Hona hemen "" nahi duten banatzen begizta bat osokoa 2 10 aldiz, guztira by p. 99 00:05:51,080 --> 00:05:55,380 Kontuan nola osokoa p deklaratu dut nire "for" begizta kanpo, beraz, 100 00:05:55,380 --> 00:05:59,850 zenbaki oso bat eskuragarria izan daiteke eta "for" begizta kanpo. 101 00:05:59,850 --> 00:06:03,620 Hilabete igaro ondoren, denbora da Erabiltzaile esateko zenbat diru 102 00:06:03,620 --> 00:06:04,790 ahaztuak dut dute. 103 00:06:04,790 --> 00:06:08,740 Zehaztutako bakoitzeko, erabiltzaileak kontatu behar duzu zenbat dolar, ez zenbat 104 00:06:08,740 --> 00:06:10,780 pennies, dute. 105 00:06:10,780 --> 00:06:14,620 Baina, orain arte, mantendu duzu pista guztira eta pennies du LongLongs erabiliz, 106 00:06:14,620 --> 00:06:16,640 diren zenbaki osoak. 107 00:06:16,640 --> 00:06:20,560 >> Daude, $ 1 pennies 100 bat, beraz, ez bada behintzat pennies kopurua da bat 108 00:06:20,560 --> 00:06:24,860 100 bat baino gehiago behar duzu irudikatzeko hamartar lekuak. 109 00:06:24,860 --> 00:06:28,060 Bikoiztu autotype ahalbidetzen Hau egin beharko duzu. 110 00:06:28,060 --> 00:06:32,790 Beraz, nola bihurtu ordezkari dugu to dolar pennies? 111 00:06:32,790 --> 00:06:35,330 >> Ikus dezagun bat pi.c. 112 00:06:35,330 --> 00:06:41,690 Programa hau bat hartzen LongLong big_pi eta banatzen da, 100.000 dira, eta grabatuak 113 00:06:41,690 --> 00:06:44,270 bost hamartarrekin bat emaitza. 114 00:06:44,270 --> 00:06:48,560 Nahi izan dugu, lau hamartar erakutsi nahi izanez gero, lekuak, eta, ondoren, besterik gabe, ezin dugu ordezkatu honetan 115 00:06:48,560 --> 00:06:49,760 zenbakia hemen. 116 00:06:49,760 --> 00:06:58,370 Hargatik gorde, pi bildu, eta gero emaitza gara, 117 00:06:58,370 --> 00:07:02,240 espero 3,1415 izan - 118 00:07:02,240 --> 00:07:04,540 pi du lehenengo bost digituak. 119 00:07:04,540 --> 00:07:06,300 >> Ez da erraza izan. 120 00:07:06,300 --> 00:07:07,390 Eta zergatik? 121 00:07:07,390 --> 00:07:11,920 Beno, big_pi LongLong bat delako, den zenbaki osoa da, eta horrek ez du 122 00:07:11,920 --> 00:07:13,740 mantentzeko hamarren jarraipena. 123 00:07:13,740 --> 00:07:16,850 Aldaketa behar dut egiteko mantenduko da. 124 00:07:16,850 --> 00:07:23,300 Ra bikoitza bota aurretik, hemen behar dut , zatituz bikoitzak ezin duelako mantendu 125 00:07:23,300 --> 00:07:25,260 hamarrenekin jarraipena. 126 00:07:25,260 --> 00:07:28,080 Eta linea berri bat gehitu nahi dut Hemen formateatzeko hobeto. 127 00:07:28,080 --> 00:07:33,090 128 00:07:33,090 --> 00:07:34,230 >> Eta hemen dugu - 129 00:07:34,230 --> 00:07:37,660 3,1416. 130 00:07:37,660 --> 00:07:43,520 Nabarituko bistaratzen dela 3.1416 ahal izango duzu ordez 3,1415 du espero bezala. 131 00:07:43,520 --> 00:07:47,550 Hori zehar it errondak delako zatiketa prozesu gisa, besterik aurka 132 00:07:47,550 --> 00:07:50,490 balioa truncating. 133 00:07:50,490 --> 00:07:53,710 Orain gai izan inprimatzeko behar duzu azken osoaren bezala, eta hori bukatzen 134 00:07:53,710 --> 00:07:54,870 programa. 135 00:07:54,870 --> 00:07:55,930 >> Zorionak. 136 00:07:55,930 --> 00:07:57,340 Nire izena Zamyla da. 137 00:07:57,340 --> 00:07:58,720 Eta hau pennies zen. 138 00:07:58,720 --> 00:08:05,589 >> [Musika jotzen]