1 00:00:00,000 --> 00:00:00,940 2 00:00:00,940 --> 00:00:05,440 >> [Musika jotzen] 3 00:00:05,440 --> 00:00:11,577 4 00:00:11,577 --> 00:00:12,660 DAVID J. MALAN: Ondo da. 5 00:00:12,660 --> 00:00:15,590 Hau CS50 da, eta hau astean bi hasiera da. 6 00:00:15,590 --> 00:00:19,120 Hargatik, gaur hasiko bug batekin digu. 7 00:00:19,120 --> 00:00:20,974 Bug bat, noski, da a programa batean akats, 8 00:00:20,974 --> 00:00:22,890 eta oso jasoko duzu Kontzeptu hau ezagutzen 9 00:00:22,890 --> 00:00:26,050 Nik inoiz programatutako bada aurretik. pset0 eta orain pset1. 10 00:00:26,050 --> 00:00:29,280 Baina kontuan hartu dezagun zerbait Hasieran erraza da apur bat. 11 00:00:29,280 --> 00:00:32,189 Programa hau hemen dut batera bota, aldez aurretik, 12 00:00:32,189 --> 00:00:37,280 eta hori izan behar inprimatu aldarrikatzen dut Pantailan printf erabiliz on 10 puntuak, 13 00:00:37,280 --> 00:00:41,020 baina nolabait buggy itxuraz. 14 00:00:41,020 --> 00:00:45,370 >> Zehaztapen hori eman duen 10 puntuak inprimatu behar da, 15 00:00:45,370 --> 00:00:50,230 baina ez du, itxuraz, zer litzateke erreklamatzeko duzu akatsen da? 16 00:00:50,230 --> 00:00:52,004 Bai? 17 00:00:52,004 --> 00:00:54,420 Beraz error banan-off bat da, eta zer esan nahi duzu? 18 00:00:54,420 --> 00:01:00,991 19 00:01:00,991 --> 00:01:01,490 Ados. 20 00:01:01,490 --> 00:01:09,820 21 00:01:09,820 --> 00:01:10,410 Bikain. 22 00:01:10,410 --> 00:01:13,930 Beraz, zehaztu dugu bat hasteko zero balioa i, 23 00:01:13,930 --> 00:01:18,399 eta n 10 balioa bat zehaztu dugu, baina berdina edo gutxiago erabili dugu. 24 00:01:18,399 --> 00:01:21,190 Eta honen arrazoia bi da pertsonaiak eta ez sinbolo bat besterik ez, 25 00:01:21,190 --> 00:01:22,630 matematikako liburu batean bezala, da ez duzula dute 26 00:01:22,630 --> 00:01:24,880 adierazteko modu bat pertsonaia baliokide bat. 27 00:01:24,880 --> 00:01:28,450 >> Beraz, hori baino gutxiago esan nahi du, baina zerotik kontatzen hasten bazara, 28 00:01:28,450 --> 00:01:31,690 baina modu guztiak zenbatu dituzu bidez gora eta 10 berdinak, 29 00:01:31,690 --> 00:01:34,170 Oraindik ikastaro joan 11 guztira, gauzak kontatzea. 30 00:01:34,170 --> 00:01:35,900 Eta hain zu 11 izar inprimatu. 31 00:01:35,900 --> 00:01:37,990 Beraz, zer fix bat izan liteke? 32 00:01:37,990 --> 00:01:39,970 Bai? 33 00:01:39,970 --> 00:01:43,980 >> Beraz, besterik gabe, doi baino gutxiago edo berdina izan nahiko luke baino gutxiago, 34 00:01:43,980 --> 00:01:46,250 eta ez dago, nik diotenez, agian beste irtenbide bat, gehiegi. 35 00:01:46,250 --> 00:01:47,210 Zer liteke, bestela, egin nahi duzu? 36 00:01:47,210 --> 00:01:48,590 Bai? 37 00:01:48,590 --> 00:01:53,660 >> Beraz, hasi da berdinduz 1, eta berdina edo gutxiago utzi. 38 00:01:53,660 --> 00:01:56,187 Eta Egia litzateke aldarrikatzen dut dela, giza tipiko bat, 39 00:01:56,187 --> 00:01:57,770 hau da, ziurrenik, gehiago zuzenean. 40 00:01:57,770 --> 00:02:00,280 Hasi 1ean kontatuta eta zenbatu arte 10 bidez. 41 00:02:00,280 --> 00:02:01,690 Funtsean, zer esan nahi duzu. 42 00:02:01,690 --> 00:02:04,010 >> Baina errealitatea da programazioa, Nik ikusi dugun bezala, 43 00:02:04,010 --> 00:02:07,598 informatikariak eta programatzaileak oro har, ez hasten zerotik kontatzen. 44 00:02:07,598 --> 00:02:09,389 Eta, beraz, hori da isuna behin ohitu egiten zara. 45 00:02:09,389 --> 00:02:12,640 Zure baldintza izango da, oro har, baino gutxiago antzeko zerbait izango. 46 00:02:12,640 --> 00:02:14,910 Beraz, besterik gabe, logikoa error orain ezin izan dugu 47 00:02:14,910 --> 00:02:17,990 konpondu eta, azken finean, konpilatu hau eta 10 besterik ez. 48 00:02:17,990 --> 00:02:19,610 >> Beno, nola bug hau hemen? 49 00:02:19,610 --> 00:02:24,200 Hemen, berriz ere, I izan dela aldarrikatzen dut 10 stars-- inprimatzeko helburua 50 00:02:24,200 --> 00:02:28,140 line oraingoan bakoitzeko bat, baina ez da. 51 00:02:28,140 --> 00:02:30,940 Proposatzen dugu aurretik zer konpondu da, zer du honek 52 00:02:30,940 --> 00:02:34,640 inprimatu ikusmen Konpilatuko banintz eta exekutatu programa hau deritzozu? 53 00:02:34,640 --> 00:02:35,140 Bai? 54 00:02:35,140 --> 00:02:38,360 55 00:02:38,360 --> 00:02:38,860 >> Star. 56 00:02:38,860 --> 00:02:41,690 Beraz, izar guztiak lerro berean dago zer entzun dut, 57 00:02:41,690 --> 00:02:43,391 eta, ondoren, lerro pertsonaia berria. 58 00:02:43,391 --> 00:02:44,140 Hargatik saiatu direla. 59 00:02:44,140 --> 00:02:48,710 Beraz, buggy-1, sartu, eta clang komandoa ikusten dut 60 00:02:48,710 --> 00:02:50,090 Hitz egin dugun azken aldiz buruz. 61 00:02:50,090 --> 00:02:55,180 ./buggy-1, eta halaxe ikusten dut 10 puntuak guztiak lerro bera aldarrikatzen dut, nahiz eta on 62 00:02:55,180 --> 00:02:58,690 Nire zehaztapena besterik gainean iruzkin bat kodea duten per bat egiteko asmoa dut 63 00:02:58,690 --> 00:02:59,230 lerroa. 64 00:02:59,230 --> 00:03:00,580 Baina hau begiratzen eskubidea. 65 00:03:00,580 --> 00:03:04,620 >> Orain 15 lerro badirudi naiz bezalako izar bat inprimatzeko, eta, ondoren, 16 linea 66 00:03:04,620 --> 00:03:06,620 badirudi inprimatzeko naiz bezala linea berri pertsonaia bat, 67 00:03:06,620 --> 00:03:09,560 eta zu bai koska dute beraz Naiz begizta argi barruan dut. 68 00:03:09,560 --> 00:03:13,610 Beraz, behar ez den izarra egiten dut, berria line, star, linea berria, star, linea berria? 69 00:03:13,610 --> 00:03:14,110 Bai? 70 00:03:14,110 --> 00:03:18,430 71 00:03:18,430 --> 00:03:21,240 >> Bai, hizkuntza bat bezala bezala Python, Oraindik ezagutzen bada, 72 00:03:21,240 --> 00:03:23,540 koska ez du ordenagailua axola. 73 00:03:23,540 --> 00:03:25,280 Giza izateko bakarrik da garrantzitsua. 74 00:03:25,280 --> 00:03:29,860 Beraz, hemen, berriz, ez dut asmatu lerroak 15 eta saioa 16 itxura ederra, 75 00:03:29,860 --> 00:03:31,330 baina ordenagailua ez zaintzeko. 76 00:03:31,330 --> 00:03:34,640 Ordenagailua buruz zaintzen benetan kizkur giltza izatea 77 00:03:34,640 --> 00:03:36,310 Kode lerro hauen inguruan. 78 00:03:36,310 --> 00:03:39,520 >> Beraz, clear-- besterik ez bezalakoa da Scratch-- bi kode lerro horiek direla 79 00:03:39,520 --> 00:03:40,450 exekutatu behar da. 80 00:03:40,450 --> 00:03:44,390 Horiek horia Scratch, puzzle bat bezala piezak eta behin eta berriro berriro. 81 00:03:44,390 --> 00:03:50,920 >> Beraz, orain badut berriz abiarazi programa ./buggy-2-- Hm. 82 00:03:50,920 --> 00:03:51,770 Errore bat daukat orain. 83 00:03:51,770 --> 00:03:54,212 Zer ahaztu nuen egin? 84 00:03:54,212 --> 00:03:55,420 Yeah, beraz, ez nuen konpilatu. 85 00:03:55,420 --> 00:03:56,740 Beraz, buggy-2. 86 00:03:56,740 --> 00:03:59,840 Ez dago horrelako fitxategi ez nuen delako benetan konpilatu bigarren bertsioa. 87 00:03:59,840 --> 00:04:04,860 Beraz, orain interesgarria undeclared ez aldagai 2. 88 00:04:04,860 --> 00:04:05,510 Ari gara 1. 89 00:04:05,510 --> 00:04:11,050 Egin buggy-1-- ./buggy-1-- eta orain horietako bakoitza lerro berean dago. 90 00:04:11,050 --> 00:04:13,880 >> Orain ez dago salbuespen bat da ustezko nirea erreklamazio honetan 91 00:04:13,880 --> 00:04:15,520 kizkur giltza horien behar duzula. 92 00:04:15,520 --> 00:04:20,160 Noiz da benetan OK dut baduzu atalean edo textbooks-- nabaritu 93 00:04:20,160 --> 00:04:22,130 kizkur giltza kendu? 94 00:04:22,130 --> 00:04:22,630 Bai? 95 00:04:22,630 --> 00:04:26,290 96 00:04:26,290 --> 00:04:26,870 >> Zehazki. 97 00:04:26,870 --> 00:04:28,940 Noiz ez da bakarra izan Kode-lerro duzula 98 00:04:28,940 --> 00:04:32,830 etorri behar elkartuak nahi begizta gure lehen adibidean bezala. 99 00:04:32,830 --> 00:04:36,380 Guztiz zilegia da kizkur giltza kendu 100 00:04:36,380 --> 00:04:40,310 besterik onerako moduko gisa duzu konpiladorea from. 101 00:04:40,310 --> 00:04:40,810 Bai? 102 00:04:40,810 --> 00:04:43,347 103 00:04:43,347 --> 00:04:43,930 Ona galdera. 104 00:04:43,930 --> 00:04:45,500 Litzateke kontuan hartu behar da estilo error bat? 105 00:04:45,500 --> 00:04:49,340 CS50 bezala promote-- genuke Bizimodua, URL horretarako, 106 00:04:49,340 --> 00:04:51,926 pset1-- da beti erabili kizkur giltza. 107 00:04:51,926 --> 00:04:53,550 Zalantzarik Oraindik programazio berria bada. 108 00:04:53,550 --> 00:04:56,800 Errealitatea da, ez gara you debekatzeko joan 109 00:04:56,800 --> 00:04:58,680 erosotasun horiek egiten. 110 00:04:58,680 --> 00:05:00,846 Baina ari zaren besterik ez bada lortzean gauza swing sartu, 111 00:05:00,846 --> 00:05:04,020 Erabat besterik beti kizkur erabili giltza da delta lortuko duzu arte. 112 00:05:04,020 --> 00:05:04,640 Ona galdera. 113 00:05:04,640 --> 00:05:05,320 >> Guztiak eskubidea. 114 00:05:05,320 --> 00:05:07,660 Beraz, ondoren, akats bat zuen. 115 00:05:07,660 --> 00:05:09,190 Zerbait nahiko erraza da, gutxienez. 116 00:05:09,190 --> 00:05:11,260 Eta, hala ere hau uste duzu agian nahiko baldarra, ezta? 117 00:05:11,260 --> 00:05:13,635 Hau lehenengo astean moduko da hizkuntzari begira 118 00:05:13,635 --> 00:05:14,890 bezala, ikus zure bugs bertan. 119 00:05:14,890 --> 00:05:17,250 Baina errealitatea hauek dira benetan ordezkaria 120 00:05:17,250 --> 00:05:20,310 Nahiko beldurgarria arazo batzuen daiteke mundu errealean sortzen diren. 121 00:05:20,310 --> 00:05:23,530 >> Beraz, batzuk gogora ekarri ditzake teknologiako albisteak jarraitzen badituzu, 122 00:05:23,530 --> 00:05:25,740 edo agian harrapatu honen haize otsailean 123 00:05:25,740 --> 00:05:29,434 azken urte honetan Apple zuela Akats bat pixka bat egin bai iOS, 124 00:05:29,434 --> 00:05:31,350 sistema eragilearen beren telefono, eta, gainera, 125 00:05:31,350 --> 00:05:34,220 Mac OS, sistema eragilea beren mahaigainen eta ordenagailu eramangarriak. 126 00:05:34,220 --> 00:05:36,480 Eta titularrak horrelako ikusi duzu. 127 00:05:36,480 --> 00:05:41,120 Eta hortik aurrera, Apple Akats hau zuzentzeko agindu, 128 00:05:41,120 --> 00:05:45,950 eta oso azkar egin konpondu iOS, baina gero azken finean konpondu Mac OS-en 129 00:05:45,950 --> 00:05:46,810 baita. 130 00:05:46,810 --> 00:05:50,370 >> Orain titularrak horiek ez bakarrik, benetan agerian azpiko arazoa zein zen, 131 00:05:50,370 --> 00:05:55,640 baina bug azken batean murriztu zen SSL akats bat, Secure Sockets Layer. 132 00:05:55,640 --> 00:05:57,390 Eta ipuin luze, hau da, softwarea 133 00:05:57,390 --> 00:06:01,030 beste, gure nabigatzaile eta erabili software zer egin? 134 00:06:01,030 --> 00:06:04,090 135 00:06:04,090 --> 00:06:06,860 >> SSL dela esan badut inplikatuta, direnean 136 00:06:06,860 --> 00:06:13,920 bisitatzen duten HTTPS batekin hasten URL bat, zer ondoren, SSL egon agertutako? 137 00:06:13,920 --> 00:06:14,580 Enkriptatzea. 138 00:06:14,580 --> 00:06:16,470 Beraz, buruz hitz egingo dugu hau datozen egunetan. 139 00:06:16,470 --> 00:06:18,750 Encryption, artea informazio scrambling. 140 00:06:18,750 --> 00:06:22,200 >> Baina ipuin luze, Apple noizbait ago zuen akats bat egin 141 00:06:22,200 --> 00:06:25,970 beren SSL, ezartzeko ere azken finean, inplementatzen software 142 00:06:25,970 --> 00:06:30,120 HTTPS edo max bezala URLs konexioak han ere. 143 00:06:30,120 --> 00:06:32,850 Horren emaitza dela zure konexioak potentzialki Could 144 00:06:32,850 --> 00:06:33,920 lor daitezke. 145 00:06:33,920 --> 00:06:37,130 Eta zure konexioak ziren ez derrigorrez enkriptatutako 146 00:06:37,130 --> 00:06:40,350 txarra lasaia batzuk bazenu arteko Zu eta helmuga webgunea nor 147 00:06:40,350 --> 00:06:42,170 zekien nola aprobetxatu honen. 148 00:06:42,170 --> 00:06:45,090 >> Orain Apple azken finean argitaratua a honetarako konpondu azkenik, 149 00:06:45,090 --> 00:06:46,920 eta deskribapena beren fix zen hau. 150 00:06:46,920 --> 00:06:49,878 Garraio segurua huts balioztatzeko konexioa benetakotasuna. 151 00:06:49,878 --> 00:06:52,920 Alea heldu validation urratsak falta berrezartzeko. 152 00:06:52,920 --> 00:06:57,250 >> Beraz, hau oso eskuko Wavy azalpen bat da besterik gabe izorratu egiten dugula esaten da. 153 00:06:57,250 --> 00:07:00,920 Ez dago literalki bat duten buggy zen kode-lerro 154 00:07:00,920 --> 00:07:05,130 beren SSL ezartzeko, eta in joan online eta bilatu honetarako bada 155 00:07:05,130 --> 00:07:07,210 benetan jakin dezakezu jatorrizko iturburu-kodea. 156 00:07:07,210 --> 00:07:11,960 Esate baterako, pantaila jaurtiketa bat da besterik fitxategia nahiko handi baten zati bat, 157 00:07:11,960 --> 00:07:15,965 baina hori itxuraz izeneko funtzio bat da SSL ikurra zerbitzari gako aldaketa egiaztatzeko. 158 00:07:15,965 --> 00:07:17,840 Eta mordo bat hartzen du argudioak eta inputak. 159 00:07:17,840 --> 00:07:20,298 Eta ez gabiltza ardatz too minutia han askoz, 160 00:07:20,298 --> 00:07:24,390 baina barrutik kodea du ardatz baduzu goreneko duten utzi funtzio hamarkadetako 161 00:07:24,390 --> 00:07:25,590 Handiagotzeko horretan. 162 00:07:25,590 --> 00:07:28,140 Dagoeneko Susmoa dezakezu zer errorea gerta daiteke 163 00:07:28,140 --> 00:07:31,230 izan ideia ez duzu, nahiz eta azken finean, zer bilatzen ari zaren. 164 00:07:31,230 --> 00:07:35,924 Ez dago anomalia mota hemen, hau da, zer? 165 00:07:35,924 --> 00:07:38,940 >> Bai, ez benetan gustatzen zait bi goto itxura huts egin. 166 00:07:38,940 --> 00:07:42,060 Egia, ez dakit zer goto huts bitartez, baina horietako bi izatea 167 00:07:42,060 --> 00:07:42,810 atzera itzuli. 168 00:07:42,810 --> 00:07:45,290 Hori besterik rubs mota me intelektualki okerreko bidea, 169 00:07:45,290 --> 00:07:48,910 eta handiagotzeko dugu, hain zuzen ere bada an lerro horiek besterik ez, hau da C. 170 00:07:48,910 --> 00:07:52,220 >> Beraz Apple kode asko Idatzizko C, berez, 171 00:07:52,220 --> 00:07:55,780 eta honek, antza denez, benetan equivalent-- 172 00:07:55,780 --> 00:07:59,060 Ez koska polit hori bertsioan, baina ezagutzen baduzu, hain zuzen, 173 00:07:59,060 --> 00:08:02,560 baina ez dago giltza kizkur, zer Apple benetan idatzi zela itxura kodea 174 00:08:02,560 --> 00:08:03,540 Hau atsegin. 175 00:08:03,540 --> 00:08:07,080 Beraz handitutako dut out eta I just zentzuan koska finkoak 176 00:08:07,080 --> 00:08:10,690 duten ez dago giltza kizkur, hori bada Bigarren goto huts hori da horiz 177 00:08:10,690 --> 00:08:12,500 da axola zer exekutatu behar. 178 00:08:12,500 --> 00:08:15,540 Ez da lotutako Gainean duen baldintza bada ere. 179 00:08:15,540 --> 00:08:19,590 >> Beraz, nahiz eta, berriro ere, ez baduzu nahiko ulertzen zer izan ziurrenik 180 00:08:19,590 --> 00:08:23,230 izan egiten, jakin horietako bakoitzak lerro hauen bakoitzean conditions-- 181 00:08:23,230 --> 00:08:26,180 Urrats hau oso garrantzitsua da egiaztatzeko prozesuan 182 00:08:26,180 --> 00:08:28,350 zure datuak, hain zuzen ere bada enkriptatuko. 183 00:08:28,350 --> 00:08:31,710 Beraz, horietako bat alde batetara uzten urrats, ez da ideia onena. 184 00:08:31,710 --> 00:08:34,840 >> Baina hori dugulako Bigarren goto huts horiz, 185 00:08:34,840 --> 00:08:36,840 eta delako dugu behin Ordena estetikoki 186 00:08:36,840 --> 00:08:40,480 mugitu ezkerrera bertan logikoki une da, zer 187 00:08:40,480 --> 00:08:43,230 esan nahi du horrek linea Bigarren goto azpitik duten kodearen 188 00:08:43,230 --> 00:08:46,480 huts egin dela uste duzu? 189 00:08:46,480 --> 00:08:48,860 Bera beti saltatu egingo da. 190 00:08:48,860 --> 00:08:52,100 Beraz gotos, oro har, frowned arrazoiengatik ezin izango dugu benetan sartu da, 191 00:08:52,100 --> 00:08:54,940 eta, hain zuzen CS50 Ez ohi dugu adierazpen goto hau irakasteko, 192 00:08:54,940 --> 00:08:58,130 baina goto uste dezakezu esanahia go jauzi gisa huts 193 00:08:58,130 --> 00:08:59,600 bestelako kodearen zati batzuk. 194 00:08:59,600 --> 00:09:03,120 >> Hitz beste gainetik salto azken lerro hau guztiz, 195 00:09:03,120 --> 00:09:07,420 eta hain ergel horren emaitza Akats sinplea besterik ez zen 196 00:09:07,420 --> 00:09:10,330 Ziurrenik norbaitek ondorioz kopiatzea eta bat itsasten too 197 00:09:10,330 --> 00:09:14,150 askotan osoa zela iOS eta Mac OS segurtasuna 198 00:09:14,150 --> 00:09:18,240 zaurgarria atzematea zen denbora luzez guys txarra. 199 00:09:18,240 --> 00:09:19,940 Apple Azkenean konpondu hau. 200 00:09:19,940 --> 00:09:23,100 >> Orain baduzu batzuk, egia esan, iOS edo Mac OS bertsio zaharra exekutatzen, 201 00:09:23,100 --> 00:09:27,250 gotofail.com dezakezu joan eta bertan Web orri bat norbait dela eratu da 202 00:09:27,250 --> 00:09:29,190 funtsean zehazteko programazioaren 203 00:09:29,190 --> 00:09:30,980 Zure ordenagailuan zaurgarria da, oraindik ere bada. 204 00:09:30,980 --> 00:09:33,600 Eta Egia, bada, seguruenik ideia ona 205 00:09:33,600 --> 00:09:36,870 Telefonoa eguneratzeko edo Zure Mac puntu honetan. 206 00:09:36,870 --> 00:09:40,120 Baina ez dago, besterik gabe, testamentuan nola beheko maila horietan guztietan aipagarrienak 207 00:09:40,120 --> 00:09:42,400 xehetasunak eta nahiko ideia simple benetan ahal 208 00:09:42,400 --> 00:09:44,590 erabakiak itzultzeko eta arazoak 209 00:09:44,590 --> 00:09:47,320 kasu honetan affected-- milioika pertsona. 210 00:09:47,320 --> 00:09:49,107 >> Orain baten administrazioa on hitza. 211 00:09:49,107 --> 00:09:50,690 Artikulua datozen igande honetan hasiko da. 212 00:09:50,690 --> 00:09:53,360 Email bat jasoko duzu arabera atalean buruz asteburuan, eta amaitzen da 213 00:09:53,360 --> 00:09:55,290 resectioning prozesua dut baduzu hasiko da 214 00:09:55,290 --> 00:09:56,998 konturatu orain duzu gatazken berri batzuk. 215 00:09:56,998 --> 00:10:00,180 Beraz, hau da urtero gertatzen da, eta guk izango egunetan egokitzeko etorri. 216 00:10:00,180 --> 00:10:02,430 >> Bulegoko bat mantendu hours-- egin begi ordutegia hau hemen. 217 00:10:02,430 --> 00:10:05,100 Pixka bat aste honetan aldatzen du, bereziki ordua 218 00:10:05,100 --> 00:10:08,180 eta kokalekua, beraz, kontsultatu , bulegoko ordu heading aurretik 219 00:10:08,180 --> 00:10:09,520 Hurrengo lau gau edozein. 220 00:10:09,520 --> 00:10:12,680 Eta orain balorazio hitz bat, murgiltze duzu batez ere arazo bilakatu 221 00:10:12,680 --> 00:10:14,350 bat eta urrunago ezartzen du. 222 00:10:14,350 --> 00:10:17,070 >> Beraz zehaztapen bakoitzeko, horiek, oro har 223 00:10:17,070 --> 00:10:20,360 Ardatz horrek batera zure lana ebaluatzen da. 224 00:10:20,360 --> 00:10:23,170 Aplikazio-eremua aipatzen zer hein zure kodea lanabesak 225 00:10:23,170 --> 00:10:25,690 ezaugarriak eskatutako gure zehaztapen arabera. 226 00:10:25,690 --> 00:10:28,290 Beste era batera esanda, nola askoz pieza multzo bat egin off hozka duzu. 227 00:10:28,290 --> 00:10:30,440 Ba hirugarren bat hura egin duzu, erdia da,% 100. 228 00:10:30,440 --> 00:10:33,000 Ez da zuzena bada ere, zenbat saiatuko zenuen? 229 00:10:33,000 --> 00:10:35,290 Beraz, maila harrapatzen ahalegina eta zenbatekoaren 230 00:10:35,290 --> 00:10:38,260 horrek off bit duzu Arazo multzo horrek arazoak. 231 00:10:38,260 --> 00:10:40,690 >> Ko hau Correctness--, to zein neurritan, zure kodea da 232 00:10:40,690 --> 00:10:43,150 koherentea gure zehaztapenak eta bugs doan. 233 00:10:43,150 --> 00:10:44,770 Beraz, ez da behar bezala ibiliko da? 234 00:10:44,770 --> 00:10:48,700 Sarrera batzuk eman diogu, bada, ez da ematen diguten irteera espero dugun hori? 235 00:10:48,700 --> 00:10:52,570 Design-- orain, hau da, lehena bereziki kualitatiboak, 236 00:10:52,570 --> 00:10:56,180 edo giza epaia eskatzen direnak. 237 00:10:56,180 --> 00:10:59,690 Eta hain zuzen ere, horregatik langile bat behar dugu irakaskuntza bekadun hainbeste eta, jakina, 238 00:10:59,690 --> 00:11:00,350 laguntzaileak. 239 00:11:00,350 --> 00:11:03,480 Zer neurritan zure dago kodea idatzizko ondo? 240 00:11:03,480 --> 00:11:05,810 >> Eta berriro oso bat ebaluazio kualitatiboa 241 00:11:05,810 --> 00:11:09,100 egingo duzu lan on asteetan bi norabidetan etorri. 242 00:11:09,100 --> 00:11:12,060 Beraz, hori ez denean lortuko duzu zenbakizko partiturak ezik, 243 00:11:12,060 --> 00:11:16,682 idatzitako partiturak, edo idatzitako feedback, edo idatzitako feedback English hitzetan. 244 00:11:16,682 --> 00:11:19,640 Horixe duzu gidatzeko erabiliko dugu benetan kodea idatziz hobeto aldera. 245 00:11:19,640 --> 00:11:23,320 Eta hitzaldi eta sekzioan, saiatuko gara out-- seinalatu bezala askotan can-- dugun bezala 246 00:11:23,320 --> 00:11:26,420 zer programa bat egiten du, ez bakarrik zuzena eta funtzionalki ona, 247 00:11:26,420 --> 00:11:28,200 baina baita ondo diseinatuta. 248 00:11:28,200 --> 00:11:31,850 Eraginkorrena zein izan zitekeen, edo nahiz eta ederrena ahal izango da. 249 00:11:31,850 --> 00:11:33,100 >> Zein garamatza estilo. 250 00:11:33,100 --> 00:11:36,876 Style, azken finean, epai estetiko bat. 251 00:11:36,876 --> 00:11:38,750 Ba ona aukeratu duzun zure aldagai izenak? 252 00:11:38,750 --> 00:11:40,330 Zure kodea behar bezala koska duzu? 253 00:11:40,330 --> 00:11:44,010 Ez du itxura ona, eta, beraz, da beste gizaki erraza 254 00:11:44,010 --> 00:11:46,550 Zure dagozkien irakurtzeko berau zuzena. 255 00:11:46,550 --> 00:11:50,300 >> Orain, oro har, curriculumaren arabera, puntuazio dugu bost puntuko eskala batean gauza horiek. 256 00:11:50,300 --> 00:11:53,640 Eta utzi hasiera Hammer me puntua Hiru bat da, hain zuzen ona. 257 00:11:53,640 --> 00:11:55,550 Oso azkar egin folks hasteko aritmetika egiten. 258 00:11:55,550 --> 00:11:58,133 Noiz hiru out bat lortzen dute bost pset batzuk zuzentasuna an 259 00:11:58,133 --> 00:12:02,040 eta madarikatua uste dute, joan% 60 I hau da, funtsean D edo E bat 260 00:12:02,040 --> 00:12:03,980 >> Hori ez da horrela egiten dugu Zenbaki horiek uste. 261 00:12:03,980 --> 00:12:06,880 Hiru bat da, hain zuzen ona, eta zer garen oro har, hasieran espero 262 00:12:06,880 --> 00:12:09,820 terminoaren duzula bada ari three's-- mordo bat, agian, pare bat 263 00:12:09,820 --> 00:12:12,540 azoka, fours-- pare bat edo pare twos, fours-- pare bat 264 00:12:12,540 --> 00:12:13,748 duten leku ona hasiko da. 265 00:12:13,748 --> 00:12:16,320 Eta hain luze bat ikusiko dugu denboran zehar goranzko ibilbidea, 266 00:12:16,320 --> 00:12:18,540 Oraindik leku bereziki ona izan duzula. 267 00:12:18,540 --> 00:12:20,752 >> Formula erabili dugu pisua gauza da, funtsean, 268 00:12:20,752 --> 00:12:22,710 hau curriculumaren arabera, besterik gabe esan nahi dugu, 269 00:12:22,710 --> 00:12:24,750 Pisu gehiago zuzentasun emateko. 270 00:12:24,750 --> 00:12:27,930 Oso maiz da zuzentasun delako duten denbora gehien hartzen. 271 00:12:27,930 --> 00:12:28,760 Fidatu orain me. 272 00:12:28,760 --> 00:12:31,190 Egingo gutxienez find-- duzu pset-- batean duzula 273 00:12:31,190 --> 00:12:36,790 zure denbora% 90 Arazo guztien% 10 lanean ari da. 274 00:12:36,790 --> 00:12:39,320 >> Eta guztia ordenatzeko obrak bugs bat edo bi izan ezik, 275 00:12:39,320 --> 00:12:41,570 eta horiek dira bugs duten mantendu nahi izanez gero, gauez berandu. 276 00:12:41,570 --> 00:12:43,380 Horiek dira direnak Ordena ihes duzu. 277 00:12:43,380 --> 00:12:45,560 Baina bertan lo egin ondoren, edo bulego orduetan bertaratu 278 00:12:45,560 --> 00:12:48,844 edo galderak eginez konektatuta, da denean lortu% 100 gol duzula, 279 00:12:48,844 --> 00:12:50,760 eta horregatik dugu pisua zuzentasuna gehien. 280 00:12:50,760 --> 00:12:54,102 Diseinatzea apur bat gutxiago, eta estilo hori baino apur bat gutxiago. 281 00:12:54,102 --> 00:12:56,060 Baina mind-- style hartu da, agian, errazena 282 00:12:56,060 --> 00:12:58,890 horien off hozka estilo-gida arabera. 283 00:12:58,890 --> 00:13:01,580 >> Eta orain, gehiago larria zintzotasuna akademikoa ohartu. 284 00:13:01,580 --> 00:13:05,000 CS50 Penagarria bereizketa du Ad Kontseiluko ekoizle handiena izateaz 285 00:13:05,000 --> 00:13:07,330 Kasu ia urtero historikoki. 286 00:13:07,330 --> 00:13:11,012 Hau ez da, ikasleak ere iruzur delako CS50 gehiago hain beste edozein klase baino, 287 00:13:11,012 --> 00:13:13,720 baina lanaren izaera delako, Izan ere elektronikoen dela, 288 00:13:13,720 --> 00:13:16,636 Izan ere, bilatzen dugun, eta Izan ere, informatikariak garenez, 289 00:13:16,636 --> 00:13:20,570 Esan dezaket, zoritxarrez gara oso detektatzeko ona. 290 00:13:20,570 --> 00:13:22,710 >> Beraz, zer esan nahi du horrek balio errealetan? 291 00:13:22,710 --> 00:13:24,820 Beraz, curriculumaren arabera, Ikastaro horrek filosofia 292 00:13:24,820 --> 00:13:28,090 benetan irakiten du behera arrazoizkoa izan. 293 00:13:28,090 --> 00:13:31,684 Badira arteko lerroa hau da: norberaren lan egiten norbera 294 00:13:31,684 --> 00:13:34,100 eta pixka bat lortzean arrazoizkoa lagun baten laguntzaz, 295 00:13:34,100 --> 00:13:38,020 eta zaie lan hori egiteko, zure laguna, edo bere zure kodea bidaliz 296 00:13:38,020 --> 00:13:41,080 berak, besterik gabe, ahal dela, beraz, hartu edo maileguan ezazu eskuineko. 297 00:13:41,080 --> 00:13:43,580 Eta hori lerroa zeharkatzen zozketatu dugun klasea. 298 00:13:43,580 --> 00:13:45,410 >> Ikusi, curriculumaren lineak egiteko, azken finean, 299 00:13:45,410 --> 00:13:48,209 arrazoizkoa ari, marraztu dugun eta arrazoizkoa portaera, 300 00:13:48,209 --> 00:13:50,000 baina ez benetan irakiten esentzia behera 301 00:13:50,000 --> 00:13:53,980 Zure lanaren beharrik Zeure amaieran izango da. 302 00:13:53,980 --> 00:13:56,230 Orain dela esan du, ez heuristiko bat da. 303 00:13:56,230 --> 00:13:58,980 Duzu agian imagine-- bezala delako bulego orduetan eta bisualen etatik 304 00:13:58,980 --> 00:14:01,060 eta bideoak dugu agerian horrela urrun CS50 305 00:14:01,060 --> 00:14:04,530 hain zuzen ere, ondorioz, parte hartze gisa izan eta gisa kooperatiba eta gizarte gisa 306 00:14:04,530 --> 00:14:06,450 ahalik. 307 00:14:06,450 --> 00:14:08,570 Parte hartze gisa zorrotza baita. 308 00:14:08,570 --> 00:14:11,314 >> Baina honekin esan, heuristiko, curriculumaren en ikusi ahal izango duzu, 309 00:14:11,314 --> 00:14:12,980 dela arazo batzuk badituzu. 310 00:14:12,980 --> 00:14:16,470 Zure kodea akats batzuk duzu duzula ezin konpondu, zuretzat arrazoizkoa da 311 00:14:16,470 --> 00:14:18,039 Zure kodea beste norbaiti erakusteko. 312 00:14:18,039 --> 00:14:21,080 Lagun batek nahiz klasean, lagun bat duzu ondoan eserita bulegoko ordu, 313 00:14:21,080 --> 00:14:22,680 edo taldeko kide batek. 314 00:14:22,680 --> 00:14:25,810 Baina ez dute euren kodea erakusten duzun arte. 315 00:14:25,810 --> 00:14:27,710 >> Beste era batera esanda, antolaketa Zure question-- erantzun 316 00:14:27,710 --> 00:14:29,940 Behar dut help-- ez oh, hemen nire kodea. 317 00:14:29,940 --> 00:14:32,440 Take begirada bat eta bertatik ondorioztatu duzuna izango da. 318 00:14:32,440 --> 00:14:34,580 Baina, noski, ez da modu bat, argi-jokoa 319 00:14:34,580 --> 00:14:37,760 sistema horren bidez erakutsi dut Nire kodea galdera bat izatea aurretik. 320 00:14:37,760 --> 00:14:40,150 Erakutsiko al didazu nire zure kodea galdera bat izatea aurretik. 321 00:14:40,150 --> 00:14:45,870 Baina, berriro ikusi curriculumaren aldeko non lerro hau da xehetasunak finagoa. 322 00:14:45,870 --> 00:14:50,606 >> Just orain irudi margotu eta gisa gardenki ahalik partekatu 323 00:14:50,606 --> 00:14:53,480 non daude azken urte hauetan dugu, honen Ad Kontseiluko kasuen kopurua da 324 00:14:53,480 --> 00:14:56,260 CS50 izan duen gorako azken zazpi urteetan. 325 00:14:56,260 --> 00:14:58,717 14 berrienak jaitsiera hau kasu. 326 00:14:58,717 --> 00:15:01,300 Hartzen duten ikasleei dagokienez, 20 Zenbait ikasle bakoitiak izan zen 327 00:15:01,300 --> 00:15:02,490 Iraganeko jaitsiera honetan. 328 00:15:02,490 --> 00:15:05,670 Ez zen 33 gailurra ikasle duela urte batzuk. 329 00:15:05,670 --> 00:15:08,830 Horietatik askok, zoritxarrez dira ez da gehiago hemen campusean. 330 00:15:08,830 --> 00:15:13,100 >> Portzentaje gisa parte hartzen duten ikasleak class historikoki 0% urrutira 331 00:15:13,100 --> 00:15:17,300 % 5,3, hau da, bakarrik esan nahi hau da, urtero erronka bat. 332 00:15:17,300 --> 00:15:20,390 Eta hacia, zer egin behar da helarazi nahi dugu 333 00:15:20,390 --> 00:15:24,310 dd-- garela besterik FYI-- at konparatu ikasle horiek zuzentasuna batek 334 00:15:24,310 --> 00:15:26,520 lerro horren arabera honako hauek dira. 335 00:15:26,520 --> 00:15:29,620 Egungo alderatu egiten dugu iragana misioak guztiak aurka bidalketak 336 00:15:29,620 --> 00:15:30,840 iragan urte asko. 337 00:15:30,840 --> 00:15:33,620 >> Gehiegi ezagutzen dugu nola inguruan Google-i eta kodea repositories aurkitu 338 00:15:33,620 --> 00:15:36,360 online, eztabaida foroak online, lan-guneak online. 339 00:15:36,360 --> 00:15:41,580 Ikaslea bazara aurki daitezke, ziur aski ahal dugu egin damututa dugun bezain beste aurkitu. 340 00:15:41,580 --> 00:15:45,330 Beraz, zer curriculumaren ikusiko dituzu nahiz eta damua klausula hau. 341 00:15:45,330 --> 00:15:47,500 Zalantzarik gabe, ezin dut balioetsi, eta denok ditu 342 00:15:47,500 --> 00:15:50,870 langileek bezala ikastaroa egin izana hau, edo hau bera bat denboran zehar, 343 00:15:50,870 --> 00:15:53,997 zalantzarik gabe jakin zer ekarriko denean bezala bizitza modu duzunean lortzen 344 00:15:53,997 --> 00:15:56,080 Gauean berandu batzuk deadline-- Ez bakarrik klase honetan, 345 00:15:56,080 --> 00:15:58,660 baina another-- zaudenean erabat agortu, azpimarratu, 346 00:15:58,660 --> 00:16:00,659 inordinate zenbakia izan beste gauza egin. 347 00:16:00,659 --> 00:16:03,660 Uneren batean egin ahal izango duzu bizitza zalantzarik txarra, agian berandu 348 00:16:03,660 --> 00:16:04,620 Gau erabakia. 349 00:16:04,620 --> 00:16:06,520 >> Beraz, curriculumaren arabera, han klausula hau da, 350 00:16:06,520 --> 00:16:10,629 besteak beste, horren barruan bada 72 hartzeko orduak Erabaki batzuk pobreak, sortu duzu jabea bertara 351 00:16:10,629 --> 00:16:12,670 eta iristea me eta ikastaro buru bat 352 00:16:12,670 --> 00:16:14,300 eta elkarrizketa bat izango dugu. 353 00:16:14,300 --> 00:16:16,220 Gauzak maneiatu ahal izango dugu barrutik itxaropenak 354 00:16:16,220 --> 00:16:18,770 ren bat gehiago bilakatu da irakaskuntza une edo bizitza ikasgaia, 355 00:16:18,770 --> 00:16:22,120 eta ez zerbait Adar askoko bereziki zorrotzak 356 00:16:22,120 --> 00:16:24,570 grafiko horiek hemen dezakezun bezala. 357 00:16:24,570 --> 00:16:26,540 >> Beraz, tonu oso larria da. 358 00:16:26,540 --> 00:16:29,960 Dezagun, besterik gabe, batzuk gelditu gurekin segundo tentsioa hausteko. 359 00:16:29,960 --> 00:16:34,442 >> [Musika jotzen] 360 00:16:34,442 --> 00:17:17,768 361 00:17:17,768 --> 00:17:20,250 >> DAVID J. MALAN: Ondo da, beraz, nola izan zela segue bat? 362 00:17:20,250 --> 00:17:22,059 Gaur egungo lehen gairik. 363 00:17:22,059 --> 00:17:23,859 Horietatik lehena abstrakzioa da. 364 00:17:23,859 --> 00:17:26,900 Horietako beste bat da izango da datuak, Egia ordezkaritza 365 00:17:26,900 --> 00:17:31,640 esaten nola modu benetan lehor bat dugun ahal arazoak konpontzeko eta pentsatzen joan 366 00:17:31,640 --> 00:17:33,250 arazoak konpontzeko zer? 367 00:17:33,250 --> 00:17:37,285 Beraz, Scratch ikusi duzun, eta duzun agian dagoeneko ikusi pset1 ere C-rekin 368 00:17:37,285 --> 00:17:39,930 ez hori bakarrik erabili ahal izango duzu funtzio, printf bezala, 369 00:17:39,930 --> 00:17:42,770 beste jende urte iragan zuretzat idatzi zuen. 370 00:17:42,770 --> 00:17:45,340 Ere egin dezakezu zure funtzioak idatzi. 371 00:17:45,340 --> 00:17:48,440 >> Eta nahiz eta ez duzu nahikoa Egin C, eta Egia pset1 saioa 372 00:17:48,440 --> 00:17:51,866 ez benetan den idatzi behar duzu zure egin funtzio arazoaren delako 373 00:17:51,866 --> 00:17:53,990 agian at gogorra bitartean Lehenengo glance-- ikusiko duzu 374 00:17:53,990 --> 00:17:57,910 ahal izango da, azken finean konpondu Ez kode lerro guztiak, asko. 375 00:17:57,910 --> 00:18:01,140 Baina, esan zuen, termino Zeure funtzioa idazteko, 376 00:18:01,140 --> 00:18:03,570 konturatzen C duela eman you gaitasun hau. 377 00:18:03,570 --> 00:18:06,940 >> Gaur egungo iturri-kodea ere joan naiz, bertan eskuragarri dago dagoeneko konektatuta, 378 00:18:06,940 --> 00:18:10,900 eta aurrera, eta irekia joan noa Funtzio 0.c izeneko programa bat sortu, 379 00:18:10,900 --> 00:18:14,620 eta zero funtzioa ere gauza batzuk ikusiko ditugu. 380 00:18:14,620 --> 00:18:19,160 Lehenengo lineak 18 bidez In 23 nire funtzio nagusia da. 381 00:18:19,160 --> 00:18:22,414 Eta orain dela irakurtzen hasten ari gara Oraindik ez dugu hegan kodea idatziz, 382 00:18:22,414 --> 00:18:25,080 baizik eta ez dut aldez aurretik idatzizko edo arazo bat ere ezarri duzun 383 00:18:25,080 --> 00:18:27,910 beharrik jaso dezake dira, aldez aurretik idatzita. 384 00:18:27,910 --> 00:18:30,040 Hasteko modu ona norbaiten kodea irakurtzean 385 00:18:30,040 --> 00:18:31,400 da funtzio nagusia bilatzeko. 386 00:18:31,400 --> 00:18:34,420 Irudikatu non sarrera Puntu programa martxan da, 387 00:18:34,420 --> 00:18:36,580 eta, ondoren, jarraitu ezazu logikoki bertatik. 388 00:18:36,580 --> 00:18:40,190 >> Beraz, programa hau, itxuraz, grabatuak zure izena eta ondoren bi puntu. 389 00:18:40,190 --> 00:18:42,490 Erabili dugu GetString CS50 liburutegia 390 00:18:42,490 --> 00:18:46,050 kate bat, edo hitz edo esaldi bat lortzeko teklatua erabiltzaileari. 391 00:18:46,050 --> 00:18:48,390 Eta gero, ez da hau Gauza hemen PrintName. 392 00:18:48,390 --> 00:18:51,420 >> Orain PrintName ez da bat duten C. dator funtzio 393 00:18:51,420 --> 00:18:52,970 Ez io.h. da 394 00:18:52,970 --> 00:18:55,570 Ez cs50.h. It 395 00:18:55,570 --> 00:18:57,880 Izan beharrean fitxategi berean. 396 00:18:57,880 --> 00:19:01,000 Iragarki joan I behera bada a bit-lerroak eta 25 27-- bakoitza euro 397 00:19:01,000 --> 00:19:05,330 komentatuz modu polit bat besterik ez da Zure kodea izarrak eta barrak erabiliz. 398 00:19:05,330 --> 00:19:07,320 Hau-line multi da komentatzeko, eta hau besterik ez 399 00:19:07,320 --> 00:19:10,570 Nire deskribapen urdinez Funtzio honek duenaren. 400 00:19:10,570 --> 00:19:14,530 >> Zeren eta, lineak 28 31 bidez; Funtzio super sinple bat idatzi dut 401 00:19:14,530 --> 00:19:16,280 horren izena PrintName da. 402 00:19:16,280 --> 00:19:19,560 Hartzen du zenbat argudioak esango zenuke? 403 00:19:19,560 --> 00:19:25,120 Beraz, argumentu bat ez da bat delako Argumentu parentesi barruan zerrendatu. 404 00:19:25,120 --> 00:19:27,000 Zein motatakoa den String da. 405 00:19:27,000 --> 00:19:30,240 Zein da PrintName esateko kutxa beltz hau bezalakoa da 406 00:19:30,240 --> 00:19:32,910 edo hori hartzen funtzioa kate bat sarrera gisa. 407 00:19:32,910 --> 00:19:35,730 >> Eta katea izenarekin erosoan izena izango da. 408 00:19:35,730 --> 00:19:37,840 Ez da S, ez N, baina izena. 409 00:19:37,840 --> 00:19:41,090 Beraz, zer egiten du PrintName? 410 00:19:41,090 --> 00:19:42,210 Polita erraza da. 411 00:19:42,210 --> 00:19:45,390 Just kode lerro bat bezala printf du, baina, antza, 412 00:19:45,390 --> 00:19:47,950 grabatuak out "Kaixo", beraz, eta abar. 413 00:19:47,950 --> 00:19:50,070 Non da beraz, eta, beraz, Argumentu dator. 414 00:19:50,070 --> 00:19:52,300 >> Orain hori ez da berrikuntza handi bat hemen. 415 00:19:52,300 --> 00:19:56,710 Egia esan, hori ezin izan programa bat hartu dut idatzitakoak dira kode-lerro batekin 416 00:19:56,710 --> 00:20:00,190 hau hemen jarri arabera, eta aldatu den zerbait 417 00:20:00,190 --> 00:20:04,920 dakar batzuetan sei edo zazpi edo beraz, Kode lerro modu guztiak behera hemen. 418 00:20:04,920 --> 00:20:08,190 >> Baina baten praktikatzen da Printzipioz abstrakzioa bezala ezagutzen. 419 00:20:08,190 --> 00:20:12,550 Kind of laburtzen berri baten barnean den izena dutenak funtzioa, eta hobeto 420 00:20:12,550 --> 00:20:14,590 oraindik izen hori literalki dio zer egiten duen. 421 00:20:14,590 --> 00:20:16,880 Printf ez da hori esan nahi dut bereziki deskriptiboa. 422 00:20:16,880 --> 00:20:18,932 Bat sortu nahi badut puzzle pieza, edo badut 423 00:20:18,932 --> 00:20:21,140 funtzio bat sortu nahi duen norbaiten izena bistaratzen, 424 00:20:21,140 --> 00:20:23,230 Hau egiten edertasuna da, benetan ahal izango dut 425 00:20:23,230 --> 00:20:27,170 funtzioa duen izen bat eman dela zer egiten duen azaltzen du. 426 00:20:27,170 --> 00:20:29,844 >> Orain hartzen sarrera bat egiten duten Arbitrarioki dut izeneko izen-abizenak, 427 00:20:29,844 --> 00:20:32,760 baina hori ere ez da wonderfully deskriptibo ordez apur bat gehiago izatearen 428 00:20:32,760 --> 00:20:36,140 S. Eta atsegin generic hutsunea, oraingoz, besterik gabe esan nahi 429 00:20:36,140 --> 00:20:38,330 duten funtzio honek ez du entregatu me back ezer. 430 00:20:38,330 --> 00:20:41,127 Ez da GetString gustatzen literalki nirekin kate bat 431 00:20:41,127 --> 00:20:43,960 atsegin zuen paper zatiak egiten dugu Zure ikaskideekin azken aste batera, 432 00:20:43,960 --> 00:20:45,990 baizik eta, besterik gabe, bigarren mailako efektu bat du. 433 00:20:45,990 --> 00:20:48,080 Pantaila zerbait bistaratzen da. 434 00:20:48,080 --> 00:20:53,880 >> Beraz, egunaren amaieran, badut ez egin funtzio-0, ./function-0, 435 00:20:53,880 --> 00:20:55,450 ikusi nire izena galdetzen dela ikus dezakegu. 436 00:20:55,450 --> 00:20:58,150 David idatzi dut, eta mota my name out. 437 00:20:58,150 --> 00:21:01,080 Berriro egin dut bada, Rob, nik esan du "Hello, Rob". 438 00:21:01,080 --> 00:21:04,280 Beraz, ideia sinple bat, baina agian honek adimen etatik estrapolatu 439 00:21:04,280 --> 00:21:06,750 zure programak lortu duen apur bat zailagoa, 440 00:21:06,750 --> 00:21:10,290 eta pusketa bat idatzi nahi duzun kodea eta dei hori kode invoke 441 00:21:10,290 --> 00:21:13,270 deskriptibo batzuk kode dagoela PrintName bezala izendatzeko, 442 00:21:13,270 --> 00:21:15,600 C ez du ordaindu digu gaitasun hau. 443 00:21:15,600 --> 00:21:17,660 >> Hona hemen beste adibide erraza da. 444 00:21:17,660 --> 00:21:22,940 Adibidez, sortu bat irekitzen badut return.c izeneko gaurtik fitxategia, 445 00:21:22,940 --> 00:21:24,270 konturatu hemen zer egin dut. 446 00:21:24,270 --> 00:21:26,330 Funtzio nagusia honen gehienak printf da. 447 00:21:26,330 --> 00:21:30,360 I lehen arbitrarioki hasieratu bat aldagai kopurua 2 x deitu. 448 00:21:30,360 --> 00:21:34,110 I ondoren, inprimatu "x da gaur % I "x balioa pasatuz. 449 00:21:34,110 --> 00:21:35,500 Beraz, besterik ez dut zer den esaten. 450 00:21:35,500 --> 00:21:37,208 >> Orain besterik boldly naiz printf batera jarriz. 451 00:21:37,208 --> 00:21:42,050 Balioa x duten cubing naiz, eta ez naiz Horrela eginez funtzio bat deituz 452 00:21:42,050 --> 00:21:45,590 Kubo pasatuz izeneko x argudio gisa, 453 00:21:45,590 --> 00:21:49,300 eta, ondoren, irteera aurreztea aldagai bera ere, x. 454 00:21:49,300 --> 00:21:51,340 Beraz, x balioa clobbering naiz. 455 00:21:51,340 --> 00:21:53,380 Etorri naiz gainidazteko x-ren balioa edozein dela 456 00:21:53,380 --> 00:21:56,510 deituz emaitza kubo funtzioa hau da. 457 00:21:56,510 --> 00:21:59,530 Eta gero, besterik ez dut inprimatu batzuk fluffy gauzak hemen zer egin nuen esaten. 458 00:21:59,530 --> 00:22:01,600 >> Beraz, zer ondoren kubo da? 459 00:22:01,600 --> 00:22:03,510 Ohartu zer da, funtsean, desberdinak hemen. 460 00:22:03,510 --> 00:22:05,540 Funtzioa ematen dut Izen bat, lehen bezala. 461 00:22:05,540 --> 00:22:08,270 Izen bat zehaztu dut argudio bat da. 462 00:22:08,270 --> 00:22:11,650 Oraingoan deitzen n izenaren ordez, baina ez dut ezer nahi dut deitu daiteke. 463 00:22:11,650 --> 00:22:12,650 Baina hau desberdina da. 464 00:22:12,650 --> 00:22:14,080 Ezkerreko gauza hau. 465 00:22:14,080 --> 00:22:16,290 Aurretik zer keyword izan da? 466 00:22:16,290 --> 00:22:16,870 Boys. 467 00:22:16,870 --> 00:22:18,580 Orain, jakina, int da. 468 00:22:18,580 --> 00:22:20,630 >> Beraz, zer agian hartuko da kanpoan? 469 00:22:20,630 --> 00:22:24,090 Void ondorioztatzen Berriz Ordena ezereza, eta hori horrela izan zen. 470 00:22:24,090 --> 00:22:25,970 PrintName ezer itzuli. 471 00:22:25,970 --> 00:22:27,942 Zerbait egin zen, baina ez zuen entregatu me back 472 00:22:27,942 --> 00:22:30,650 duen gainean jarri ahal izan dut zerbait ezkerreko eskua zeinu bera izan baitzen alde 473 00:22:30,650 --> 00:22:32,460 bezala egin dut hemen on line 22. 474 00:22:32,460 --> 00:22:36,780 >> Beraz, esan nuen on line 30 sartu bada, zer da hori ziurrenik ulertuta 475 00:22:36,780 --> 00:22:38,610 zer kubo inguru niretzat ez? 476 00:22:38,610 --> 00:22:41,110 Bai? 477 00:22:41,110 --> 00:22:42,310 Zenbaki oso bat itzultzen du. 478 00:22:42,310 --> 00:22:44,590 Beraz, me eskuak atzera, alde Esate baterako, paper zati bat 479 00:22:44,590 --> 00:22:46,580 horren gainean erantzuna idatzi ditu bertan. 480 00:22:46,580 --> 00:22:50,130 2 cubed, edo 3 cubed, edo 4 cubed-- edozein dela ere pasa nuen, 481 00:22:50,130 --> 00:22:51,540 eta nola bete nuen hau? 482 00:22:51,540 --> 00:22:54,810 Beno, n aldiz n aldiz n dagoen balio bat nola kubo dut agian. 483 00:22:54,810 --> 00:22:57,110 Beraz, berriro ere, super simple ideia, baina erakusleak 484 00:22:57,110 --> 00:23:00,100 orain nola funtzio idatzi ahal izango dugu dela benetan izan gaituena 485 00:23:00,100 --> 00:23:02,380 agian interesgarri izan baloreak. 486 00:23:02,380 --> 00:23:05,740 >> Dezagun azken adibide batean Hemen funtzio bat deitzen. 487 00:23:05,740 --> 00:23:08,530 Adibide honetan, hasiera- gehiago sinesgarria lortzeko. 488 00:23:08,530 --> 00:23:12,400 Beraz, funtzio bat ere, hau programa oharra, azken finean, 489 00:23:12,400 --> 00:23:14,920 GetPositiveInt izeneko funtzio bat deitzen. 490 00:23:14,920 --> 00:23:17,800 GetPositiveInt ez da bat CS50 liburutegia funtzioa, 491 00:23:17,800 --> 00:23:20,400 baina guk erabaki genuen nahi existitzen da. 492 00:23:20,400 --> 00:23:24,550 >> Beraz, behera joan gara geroago fitxategian badago, nabarituko nola gauzatzeko buruz joan nintzen 493 00:23:24,550 --> 00:23:26,560 int positiboa lortzeko, eta I Esan gehiago sinesgarria da 494 00:23:26,560 --> 00:23:28,992 hau da duina delako Kode lerro kopurua. 495 00:23:28,992 --> 00:23:30,700 Ez besterik ez da silly little jostailu programa. 496 00:23:30,700 --> 00:23:33,870 Benetan lortu error egiaztapena batzuk eta zerbait gehiago erabilgarria. 497 00:23:33,870 --> 00:23:38,470 >> Beraz ez dituzun gidatua ikusten bada pset1 hasi garela barneratua dute bideoak, 498 00:23:38,470 --> 00:23:42,350 jakin hori mota bat da C begizta, espiritua antzekoak 499 00:23:42,350 --> 00:23:44,270 Gauzak Scratch mota egin daiteke. 500 00:23:44,270 --> 00:23:46,320 Eta egiten dio hori egin. 501 00:23:46,320 --> 00:23:47,500 Bidali out. 502 00:23:47,500 --> 00:23:51,860 Ondoren, aurrera eta n-- Int bat lortu eta gorde n, 503 00:23:51,860 --> 00:23:55,760 eta mantentzeko honetan, behin eta berriro, eta egiten ari Berriro hain luze n bezala, bat baino txikiagoa da. 504 00:23:55,760 --> 00:23:58,720 >> Beraz, n da bat baino gutxiago izango da humanoa ez lankideen bada bakarrik. 505 00:23:58,720 --> 00:24:01,980 Zuen gero edo zuen idazten da 0 edo -1 edo -50 ere, 506 00:24:01,980 --> 00:24:04,790 begizta hau da, mantendu egingo behin eta berriro exekutatzean. 507 00:24:04,790 --> 00:24:07,549 Eta azken finean, nabarituko, I Besterik gabe, balioa itzultzeko. 508 00:24:07,549 --> 00:24:09,590 Beraz, gaur egun funtzio bat dugu duten polita egon zen 509 00:24:09,590 --> 00:24:14,040 CS50 ezarriko balitz CS50.h eta CS50.c zuretzat, 510 00:24:14,040 --> 00:24:16,520 baina hemen orain ahal dugun hau ezartzeko geure buruari. 511 00:24:16,520 --> 00:24:19,230 >> Baina gakoa xehetasun batzuek bi iruzkinak. 512 00:24:19,230 --> 00:24:24,390 One-- zergatik int deklaratzeko I n, uste duzu, on line 29 513 00:24:24,390 --> 00:24:27,139 ordez egiteko hau hemen, hau da, 514 00:24:27,139 --> 00:24:28,930 gehiago koherentea joan den astean zer egin dugu? 515 00:24:28,930 --> 00:24:29,430 Bai? 516 00:24:29,430 --> 00:24:34,485 517 00:24:34,485 --> 00:24:35,110 Pentsamendu A ona. 518 00:24:35,110 --> 00:24:37,080 Hala bada, jarri ginen Hemen, hori bezain larria da 519 00:24:37,080 --> 00:24:39,110 mantentzeko, behin eta berriro deklaratzen. 520 00:24:39,110 --> 00:24:42,000 Eta bera Alegia ez problematikoa, per se, 521 00:24:42,000 --> 00:24:43,940 bakarrik behar dugulako balioa behin eta, ondoren, 522 00:24:43,940 --> 00:24:45,330 berri bat, hala ere lortu dugu. 523 00:24:45,330 --> 00:24:45,940 Baina pentsamendu onak. 524 00:24:45,940 --> 00:24:46,440 Bai? 525 00:24:46,440 --> 00:24:52,770 526 00:24:52,770 --> 00:24:53,330 >> Itxi. 527 00:24:53,330 --> 00:24:59,030 Beraz, I n deklaratu delako line 29 Begizta kanpo, 528 00:24:59,030 --> 00:25:01,390 osoan eskuragarria da Funtzio hau guztia. 529 00:25:01,390 --> 00:25:05,400 Ez du beste funtzio delako n dago oraindik kizkur horiek barruan 530 00:25:05,400 --> 00:25:06,470 hemen giltza. 531 00:25:06,470 --> 00:25:07,940 So ziur. 532 00:25:07,940 --> 00:25:12,430 533 00:25:12,430 --> 00:25:12,940 >> Zehazki. 534 00:25:12,940 --> 00:25:14,356 Beraz, hau da, nahiz eta puntu gehiago. 535 00:25:14,356 --> 00:25:18,600 Ordez deklaratu badugu n hementxe on line 32, 536 00:25:18,600 --> 00:25:22,340 problematikoa etxebizitza delako non bestela sartzeko behar dut? 537 00:25:22,340 --> 00:25:25,620 Linea 34, eta on- Thumb arau sinplea da 538 00:25:25,620 --> 00:25:30,060 zuk bakarrik erabili ahal izango duten aldagai bat berrienak giltza kizkur barruan 539 00:25:30,060 --> 00:25:31,420 bertan deklaratu duzu. 540 00:25:31,420 --> 00:25:35,230 >> Zoritxarrez, line 34 lerro bat da beranduegi, 541 00:25:35,230 --> 00:25:38,560 Nik dagoeneko delako itxia on line 33 kizkur giltza 542 00:25:38,560 --> 00:25:41,220 duten dagokio on line 30 kizkur giltza. 543 00:25:41,220 --> 00:25:44,180 Eta, beraz, hau esateko modu bat da aldagai int hori scoped da, 544 00:25:44,180 --> 00:25:46,970 nolabait esateko, barruan soilik horiek kizkur giltza. 545 00:25:46,970 --> 00:25:48,910 Ez besterik ez du haiekin kanpo existitzen. 546 00:25:48,910 --> 00:25:51,580 >> Beraz, egia esan, ez dut hau oker, utzi kodea gorde me 547 00:25:51,580 --> 00:25:53,530 gaizki is-- da idatzita bezala. 548 00:25:53,530 --> 00:25:57,990 Dezagun aurrera eta ez egin Funtzio-1, eta abisua error. 549 00:25:57,990 --> 00:26:03,502 Of undeclared identifikatzailea n Erabilera on line 35, hau da, hemen. 550 00:26:03,502 --> 00:26:05,210 Eta gora joan gara aurrerago, beste bat. 551 00:26:05,210 --> 00:26:08,750 Undeclared erabilera Identifikatzaile on line 34 n. 552 00:26:08,750 --> 00:26:11,200 >> Beraz, konpiladorea, Clang, da ohartu dela besterik 553 00:26:11,200 --> 00:26:13,720 existitzen ez den arren argi eta garbi, ez da ikusmen. 554 00:26:13,720 --> 00:26:16,090 Beraz fix sinple bat geratuko da han. 555 00:26:16,090 --> 00:26:18,790 >> Orain utzi korrituko me fitxategia goialdean. 556 00:26:18,790 --> 00:26:21,080 Zer joango duzu hainbat bezala apur bat desberdina izatea 557 00:26:21,080 --> 00:26:23,070 gauzak tik begiratu astetik dugu? 558 00:26:23,070 --> 00:26:26,990 Ez bakarrik ez daukat izena, ez bakarrik egin Zorrotz batzuk sartzen dira, goiko sortu behar dut, 559 00:26:26,990 --> 00:26:29,340 Zerbait naiz daukat prototipoa deituz. 560 00:26:29,340 --> 00:26:36,100 Orain dela awfully antzekoa zer besterik ez duela une bat ikusi genuen on line 27. 561 00:26:36,100 --> 00:26:39,230 >> Hargatik ondoriozta batetik en Errore mezua zergatik egin dut. 562 00:26:39,230 --> 00:26:42,050 Dezagun aurrera eta lerro hauek ezabatu ez. 563 00:26:42,050 --> 00:26:44,240 Eta beraz, prototipoa buruz ezer ez dakigu. 564 00:26:44,240 --> 00:26:45,430 Fitxategi hau remake. 565 00:26:45,430 --> 00:26:46,890 Egin funtzio bat. 566 00:26:46,890 --> 00:26:48,090 Eta orain, madarikatua, lau akatsak. 567 00:26:48,090 --> 00:26:50,220 Dezagun joan lehena izateko. 568 00:26:50,220 --> 00:26:55,070 >> Inplizituak funtzioa deklarazioa int positiboa lortu C99 in baliogabea da. 569 00:26:55,070 --> 00:26:57,780 C99 besterik 1999 esan nahi du hizkuntza-bertsio 570 00:26:57,780 --> 00:26:59,710 C, eta hori da, hain zuzen ere ari gara erabiliz. 571 00:26:59,710 --> 00:27:01,050 Beraz, zer esan nahi du horrek? 572 00:27:01,050 --> 00:27:05,250 Beno C eta zehatzago C pretty muda programak compilers-- dira. 573 00:27:05,250 --> 00:27:07,420 Zer duzun bakarrik ezagutzen dute esan zien, eta hori da, 574 00:27:07,420 --> 00:27:08,960 benetan gaikako astetik. 575 00:27:08,960 --> 00:27:12,910 >> Arazoa da, I joan bada hemen izena ezartzeko up buruz, 576 00:27:12,910 --> 00:27:17,640 eta izeneko funtzio bat deitzen dut GetPositiveInt hemen on line 20, 577 00:27:17,640 --> 00:27:22,520 funtzio hori teknikoki ez du existitzen konpiladorea line 27 ikusten duen arte. 578 00:27:22,520 --> 00:27:25,450 Zoritxarrez, konpiladorea da Gauzak Gora, behera, ezkerrera, eskuinera eginez, 579 00:27:25,450 --> 00:27:29,580 ez delako ikusten, beraz, GetPositiveInt ezartzeko, 580 00:27:29,580 --> 00:27:32,400 baina zuk nahian ikusten da Hemen da erabili ahal izateko sortu, 581 00:27:32,400 --> 00:27:35,810 besterik Yell bail-- joan errore batekin duzu agian message-- 582 00:27:35,810 --> 00:27:38,440 críptica, eta ez benetan fitxategia konpilatu. 583 00:27:38,440 --> 00:27:41,940 >> Prototipoa deiturikoak sortu a So Hemen da admittedly erredundantea. 584 00:27:41,940 --> 00:27:47,870 Literalki, behera joan nintzen eta hemen ditut kopiatzen eta itsatsi hau, eta bertan jarri dut hemen. 585 00:27:47,870 --> 00:27:51,020 Void gehiago egokia izango litzateke, beraz zaitugu literalki kopiatu eta itsatsi oraingoan. 586 00:27:51,020 --> 00:27:52,854 Literalki kopiatzen eta itsatsi. 587 00:27:52,854 --> 00:27:54,270 Benetan, besterik gabe, ogi mamia bat bezala bezala. 588 00:27:54,270 --> 00:27:56,260 >> Konpiladorera Argibide txiki bat. 589 00:27:56,260 --> 00:27:58,860 Ez dakit zer honek oraindik, baina zuk zin naiz 590 00:27:58,860 --> 00:28:00,260 azkenean dela existitzen izango da. 591 00:28:00,260 --> 00:28:04,010 Eta faktore hau ere lerroan lerro saioa 16 puntu eta komaz bukatzen. 592 00:28:04,010 --> 00:28:05,486 Diseinuaren arabera erredundantea da. 593 00:28:05,486 --> 00:28:05,986 Bai? 594 00:28:05,986 --> 00:28:11,340 595 00:28:11,340 --> 00:28:14,360 >> Ez duzu lotzeko zure liburutegian bada the-- to oh, galdera ona. 596 00:28:14,360 --> 00:28:17,350 Sharp sartzen dira goiburu fitxategi inklusio. 597 00:28:17,350 --> 00:28:20,040 Ia beharko lukete jolasten behar Beti oso goian izango 598 00:28:20,040 --> 00:28:23,270 for similar-- baterako Fitxategiaren zehazki arrazoi bera, bai. 599 00:28:23,270 --> 00:28:26,430 Estandarra delako io.h da, hitzez hitz, lerro bat 600 00:28:26,430 --> 00:28:30,560 Hau atsegin, baina hitza printf batera, eta bere argudioak eta bere itzulera mota batekin. 601 00:28:30,560 --> 00:28:33,310 Eta, beraz, zorrotzak eginez, besteak sortu hemen, zer ari zaren literalki egiten 602 00:28:33,310 --> 00:28:36,380 kopiatu eta testua itsasteko norbaitek goiko beste idatzi zuen gora. 603 00:28:36,380 --> 00:28:39,660 Horrela, zure kodea cluing egin ahal izateko Izan ere, funtzio horiek egiten existitzen. 604 00:28:39,660 --> 00:28:40,160 Bai? 605 00:28:40,160 --> 00:28:47,520 606 00:28:47,520 --> 00:28:48,260 >> Inolaz ere. 607 00:28:48,260 --> 00:28:51,690 Beraz, oso argia eta zuzena konponbidea litzateke, zer ezagutzen duzu? 608 00:28:51,690 --> 00:28:53,760 Ez dakit zer bat prototipoa da, baina badakit 609 00:28:53,760 --> 00:28:56,390 ulertzen dut C hori besterik ez bada muda eta goi birpentsatu behera. 610 00:28:56,390 --> 00:28:57,820 Beno dezagun ematen zer nahi. 611 00:28:57,820 --> 00:29:01,650 Dezagun moztu kodea duten, itsatsi sortu goian, eta orain bultza behera beheko nagusiak. 612 00:29:01,650 --> 00:29:03,470 Hori ere arazoa konponduko litzateke. 613 00:29:03,470 --> 00:29:07,409 >> Baina ezin duzu oso erraz asmatu dituzten Agertoki horretan, A B deitu behar, 614 00:29:07,409 --> 00:29:10,075 eta, agian, B deiak atzera A. Hau errekurtsio zerbait deitzen da, 615 00:29:10,075 --> 00:29:11,370 eta etorri egingo dela itzuliko gara. 616 00:29:11,370 --> 00:29:13,911 Eta hori daiteke edo ez izan ona Gauza da, baina zalantzarik gabe, ahal duzun 617 00:29:13,911 --> 00:29:15,110 apurtu irtenbide hau. 618 00:29:15,110 --> 00:29:17,690 >> Eta gainera, nuke diotenez, estilistikoki, 619 00:29:17,690 --> 00:29:20,760 batez ere, zure programak luze honetan eta epe hau bihurtu da, 620 00:29:20,760 --> 00:29:23,064 besterik super erosoa da nagusiak jarri goialdean 621 00:29:23,064 --> 00:29:25,730 gauza delako gehien programatzaileak dira zaintzeko buruz joan. 622 00:29:25,730 --> 00:29:28,150 Eta horrela garbiago txiki bat da, dudarik gabe, egin behar den bidea 623 00:29:28,150 --> 00:29:30,380 Jatorriz egin dut Prototipo batekin nahiz 624 00:29:30,380 --> 00:29:33,396 pixka bat ikusten da, nahiz Lehen begiratuan erredundantea. 625 00:29:33,396 --> 00:29:33,895 Bai? 626 00:29:33,895 --> 00:29:36,472 627 00:29:36,472 --> 00:29:37,680 Barkatu, ezin da ozenago esan duzu? 628 00:29:37,680 --> 00:29:45,650 629 00:29:45,650 --> 00:29:49,580 >> Kokapenak aldatzen baduzu ezarpena eta prototipoa? 630 00:29:49,580 --> 00:29:51,270 Beraz, galdera ona da. 631 00:29:51,270 --> 00:29:53,780 Baduzu hau berriro aldarrikatu behera Hemen, ikus dezagun zer gertatzen den. 632 00:29:53,780 --> 00:29:55,530 Behera hau jartzen dut, hala bada Hemen, esaten ari zaren. 633 00:29:55,530 --> 00:29:57,860 634 00:29:57,860 --> 00:29:58,360 Oh, barkatu. 635 00:29:58,360 --> 00:29:58,859 Ozenago? 636 00:29:58,859 --> 00:30:02,000 637 00:30:02,000 --> 00:30:04,011 Nahiz eta ozenago. 638 00:30:04,011 --> 00:30:04,760 Oh, galdera ona. 639 00:30:04,760 --> 00:30:05,860 Litzateke baliogabe da funtzioa? 640 00:30:05,860 --> 00:30:08,901 Badakizu, urte hauetan guztietan ondoren, I sekula jarri prototipoa gutxira dute. 641 00:30:08,901 --> 00:30:13,810 Beraz, egin funtzio-1 egin dezagun duten egiten ondoren. 642 00:30:13,810 --> 00:30:15,279 >> [Marmarka] 643 00:30:15,279 --> 00:30:16,320 DAVID J. MALAN: Oh, itxaron. 644 00:30:16,320 --> 00:30:17,944 Oraindik guztia jarri goiko sortu ditugu. 645 00:30:17,944 --> 00:30:21,400 Beraz, egin dezagun hemen, naiz bada utzi Zure galderari behar bezala ulertzeko. 646 00:30:21,400 --> 00:30:24,700 Dena jartzen ari naiz, besteak beste, nagusiaren gainetik prototipoa, 647 00:30:24,700 --> 00:30:28,180 baina prototipoa naiz jarriz ezarpena azpian. 648 00:30:28,180 --> 00:30:33,190 >> Beraz, bat egiten badut, dut back bat errore unused aldakorreko n. 649 00:30:33,190 --> 00:30:37,280 650 00:30:37,280 --> 00:30:37,860 Oh, ez. 651 00:30:37,860 --> 00:30:38,360 Eskerrik asko. 652 00:30:38,360 --> 00:30:39,430 Ikus dezagun, hori lortu dugu kentzeko. 653 00:30:39,430 --> 00:30:41,304 Hori desberdina bug bat da, beraz, utzi alde batetara utzi. 654 00:30:41,304 --> 00:30:43,910 Dezagun azkar remake hau benetan. 655 00:30:43,910 --> 00:30:48,100 >> Ados, beraz, datuak argumentua ez formatu String erabilitako 656 00:30:48,100 --> 00:30:52,310 n-- oh, hori delako Aldatu horiei dut hemen. 657 00:30:52,310 --> 00:30:55,885 Ondo da, badakigu zer erantzuna da zaie guztiak ondo joan, hemen dugu. 658 00:30:55,885 --> 00:31:00,560 Ah, positibo esker. 659 00:31:00,560 --> 00:31:03,430 Ondo da, kode hau konpondu egingo dut after-- bug zehatz honetan alde batetara 660 00:31:03,430 --> 00:31:08,300 hau was-- funtzionatzen duen zenetik erantzuna da. 661 00:31:08,300 --> 00:31:11,560 >> Beraz, ez du gainidatziko zer besterik ez duzun egin. 662 00:31:11,560 --> 00:31:14,800 Konpiladoreak susmoa dut hau da, besteak beste, modu batean idatzita 663 00:31:14,800 --> 00:31:18,420 dela zure prototipoa jaramonik da gorputza delako, nolabait esateko, 664 00:31:18,420 --> 00:31:20,922 funtzioa dauka dagoeneko ezarri dira gorago. 665 00:31:20,922 --> 00:31:23,380 Benetan kontsultatu behar nuke konpiladoreak eskuliburua 666 00:31:23,380 --> 00:31:26,171 ulertzeko, ez da beste edozein bada inplikazioa, baina, lehen begiratuan 667 00:31:26,171 --> 00:31:29,290 besterik nahian eta probatuz, ez dirudi eraginik ez izateko. 668 00:31:29,290 --> 00:31:30,730 Ona galdera. 669 00:31:30,730 --> 00:31:33,660 >> Hargatik burdinola aurretik orain, mugitzen Bigarren mailako efektuak kanpoan zein 670 00:31:33,660 --> 00:31:36,660 dira antzeko zerbait egin duten funtzioak ikusmen printf batera pantailan, 671 00:31:36,660 --> 00:31:38,090 baina ez dute baliorik itzuli. 672 00:31:38,090 --> 00:31:41,550 Eta funtzio duten bueltan dugun bezala balioak besterik ikusi batzuk. 673 00:31:41,550 --> 00:31:45,350 Dagoeneko esparrua nozioa ikusi dugu, eta hau ikusiko behin eta berriro diogu. 674 00:31:45,350 --> 00:31:47,210 Baina orain, berriz ere, Thumb araua erabili 675 00:31:47,210 --> 00:31:51,410 aldagai bat besterik ezin da erabili Azkenekoz irekitako barruan 676 00:31:51,410 --> 00:31:54,350 eta giltza kizkur itxiak dugun bezala Adibide jakin horretan ikusi. 677 00:31:54,350 --> 00:31:56,910 >> Eta adierazi duzun bezala, ez ability-- da 678 00:31:56,910 --> 00:32:00,040 Arazo horietako batzuk konpondu ahal izango duzu aldagai bat orokorrean jarriz 679 00:32:00,040 --> 00:32:01,290 fitxategi baten hasieran zenbait. 680 00:32:01,290 --> 00:32:03,630 Baina ia kasu guztietan haren genuke frown, 681 00:32:03,630 --> 00:32:06,170 eta hain zuzen ere, ez baita joan oraingoz konponbide horretan. 682 00:32:06,170 --> 00:32:09,890 Beraz, oraingoz, eramateko dela aldagai esparrua nozioa dute. 683 00:32:09,890 --> 00:32:13,430 >> Baina orain, dezagun begiratu bestean benetan begiratzeko modu lehorra 684 00:32:13,430 --> 00:32:15,810 batzuk nahiko interesgarria at ezartzeko xehetasunak. 685 00:32:15,810 --> 00:32:17,810 Nola informazioa adierazten dugu, agian. 686 00:32:17,810 --> 00:32:20,370 Eta dagoeneko honetan jakin nahi izan dugu klaseko lehen astean. 687 00:32:20,370 --> 00:32:23,320 Bitarrak begira, eta geure buruari gogoraraziz hamarrenekin. 688 00:32:23,320 --> 00:32:28,310 >> Baina astetik gogoratzen C duela Datu mota eta sortak gehiago ezberdinetan, 689 00:32:28,310 --> 00:32:30,600 baina gehien erabilgarria direnak oraingoz horiek izan daiteke. 690 00:32:30,600 --> 00:32:36,030 A char, edo pertsonaia, eta hori gertatzen byte bat, edo zortzi bit guztira izateko. 691 00:32:36,030 --> 00:32:40,060 Eta hori da, haren neurria dela esan char byte bat besterik ez da. 692 00:32:40,060 --> 00:32:45,370 Byte A zortzi bit dituenez, horrek esan nahi du karaktere zenbat ordezkatzen dezakegu. 693 00:32:45,370 --> 00:32:47,320 Zenbat gutun edo Teklatuko sinboloak 694 00:32:47,320 --> 00:32:49,210 byte bat edo zortzi bit daukagu ​​bada. 695 00:32:49,210 --> 00:32:51,546 Think astean zero itzuli. 696 00:32:51,546 --> 00:32:53,420 Zortzi bit bada, zenbat balio osoa 697 00:32:53,420 --> 00:32:55,503 ahal ordezkatzen dituzun zeroen eta bai eredu? 698 00:32:55,503 --> 00:32:58,170 699 00:32:58,170 --> 00:33:00,260 Hau baino gehiago One--. 700 00:33:00,260 --> 00:33:03,490 Beraz, guztira 256 baduzu hasteko zero hasita. 701 00:33:03,490 --> 00:33:07,120 Beraz baldin baduzu zortzi bit beraz badugu up hemen berriro gure bonbillak bitarra izan, 702 00:33:07,120 --> 00:33:12,180 bonbilla horiek piztu genezake eta 256 ereduak berezia edozeinetan off. 703 00:33:12,180 --> 00:33:13,640 >> Orain hau da, pixka bat problematikoa. 704 00:33:13,640 --> 00:33:16,857 Ez da, beraz ingelesez eta askoz hizkuntza erromantzeen, baina, zalantzarik gabe, 705 00:33:16,857 --> 00:33:19,190 denean aurkezten duzu, Esate baterako, Asian hizkuntzatan, eta horrek 706 00:33:19,190 --> 00:33:22,580 bezalako baino sinboloak askoz dute 26 alfabetoaren hizkiak. 707 00:33:22,580 --> 00:33:24,390 Benetan behar dugu agian byte bat baino gehiago. 708 00:33:24,390 --> 00:33:28,240 Eta zorionez in Azken urteotan ditu gizartean 709 00:33:28,240 --> 00:33:31,040 erabiltzen duten beste diren estandar karga bakoitzeko byte bat baino gehiago. 710 00:33:31,040 --> 00:33:34,210 >> Baina orain C, lehenetsia byte bat edo zortzi bit besterik ez da. 711 00:33:34,210 --> 00:33:38,195 Zenbaki oso bat, bere aldetik, lau da byte, bestela, 32 bit bezala ezagutzen. 712 00:33:38,195 --> 00:33:41,320 Horrek esan nahi du, zer da posible handienetako zenbakia dugu int batekin adierazten ahal 713 00:33:41,320 --> 00:33:41,820 itxuraz? 714 00:33:41,820 --> 00:33:44,426 715 00:33:44,426 --> 00:33:45,050 Milioi batekin. 716 00:33:45,050 --> 00:33:46,760 Beraz, lau milioi eman edo hartu da. 717 00:33:46,760 --> 00:33:49,840 2 32th boterera, badugu suposatuko zenbaki negatiboak ez 718 00:33:49,840 --> 00:33:52,530 eta besterik gabe erabili positibo guztiak zenbakiak, lau mila milioi da 719 00:33:52,530 --> 00:33:53,730 eman edo posibilitate hartu. 720 00:33:53,730 --> 00:33:57,890 Karroza, bere aldetik, mota bat da Datu mota C. da zenbaki bat oraindik, 721 00:33:57,890 --> 00:33:58,990 baina zenbaki erreal bat da. 722 00:33:58,990 --> 00:34:00,660 Dezimal batekin zerbait. 723 00:34:00,660 --> 00:34:03,000 Eta bihurtzen da C Ere lau byte erabiltzen 724 00:34:03,000 --> 00:34:05,340 puntu mugikorreko balioak adierazteko. 725 00:34:05,340 --> 00:34:09,420 >> Zenbat Zoritxarrez flotatzen puntu balio daude munduan? 726 00:34:09,420 --> 00:34:11,582 Zenbat benetako zenbakiak daude? 727 00:34:11,582 --> 00:34:13,540 Ez dago infinitua zenbakia, eta gai horren 728 00:34:13,540 --> 00:34:15,164 ez osokoak kopurua infinitua da. 729 00:34:15,164 --> 00:34:18,070 Beraz, dagoeneko ari gara motatako geure burua Jaurlaritzak zulo bat aurkitu. 730 00:34:18,070 --> 00:34:21,780 Horren bidez, itxuraz computers-- at C idatzitako them-- an gutxienez programak 731 00:34:21,780 --> 00:34:24,110 bakarra bezala handiko gisa zenbatu ahal lau milioi eman edo hartu, 732 00:34:24,110 --> 00:34:26,260 eta puntu balio flotatzen itxuraz soilik 733 00:34:26,260 --> 00:34:28,330 doitasun kopuru finitu batzuk. 734 00:34:28,330 --> 00:34:30,810 Digituak hainbeste Only ondoren beren dezimal. 735 00:34:30,810 --> 00:34:32,822 >> Zeren eta, noski, bada 32 bit besterik ez duzu, 736 00:34:32,822 --> 00:34:36,030 Ez dakit nola ari gara buruz joango gara benetako zenbaki ziurrenik ordezkari 737 00:34:36,030 --> 00:34:37,409 ereduak mota ezberdinak dituzten. 738 00:34:37,409 --> 00:34:40,030 Baina ez dago ziur finitua ereduak, besteak beste, zenbaki, 739 00:34:40,030 --> 00:34:41,830 beraz, hemen ere, hau problematikoa da. 740 00:34:41,830 --> 00:34:43,710 >> Orain arazoa zertxobait saihestu ahal izango dugu. 741 00:34:43,710 --> 00:34:45,710 Ez baduzu mugikor bat erabili, bikoitz bat erabili ahal izango duzu 742 00:34:45,710 --> 00:34:50,230 C, eta horrek zortzi byte, ematen dizuten zeroen ereduak ahalik eta modu gehiago dagoen 743 00:34:50,230 --> 00:34:50,730 eta direnak. 744 00:34:50,730 --> 00:34:55,199 Baina oraindik finituen, que va arazo batzuk software idatzi baduzu 745 00:34:55,199 --> 00:34:57,670 grafiko edo fancy formula matematikoak. 746 00:34:57,670 --> 00:35:00,410 Beraz, benetan dezakezu nahi sortu baino handiagoa zenbatu. 747 00:35:00,410 --> 00:35:05,640 Luze long-- stupidly named-- da, halaber, zortzi byte edo 64 bit, 748 00:35:05,640 --> 00:35:10,260 eta hau da, bi aldiz denbora int gisa, eta osoko balio luze bat da. 749 00:35:10,260 --> 00:35:15,655 >> Fun fact-- bada int lau byte da, zenbat denbora da C normalean luze bat? 750 00:35:15,655 --> 00:35:18,290 751 00:35:18,290 --> 00:35:21,560 Era berean, lau byte, baina a luze zortzi byte da, 752 00:35:21,560 --> 00:35:23,050 eta hau arrazoi historiko da. 753 00:35:23,050 --> 00:35:26,450 >> Baina eramateko orain besterik ez da datu hori du 754 00:35:26,450 --> 00:35:29,625 ordenagailuan bat hori da aztertu nahi den elektrizitatez gailu fisiko bat, 755 00:35:29,625 --> 00:35:32,190 Da, oro har, gidatzeko zero horiek eta ones-- 756 00:35:32,190 --> 00:35:34,320 doitasun-kopuru finitu batekin. 757 00:35:34,320 --> 00:35:35,620 Beraz, zein da arazoa orduan? 758 00:35:35,620 --> 00:35:37,480 >> Beno arazo bat da zenbaki oso gainezkatze-ko. 759 00:35:37,480 --> 00:35:39,780 Ez bakarrik C, baina ere oro har, ordenagailuak. 760 00:35:39,780 --> 00:35:42,590 Esate baterako, hori bada byte bat merezi bit bat 761 00:35:42,590 --> 00:35:45,120 beraz, hau da, zortzi bit guztiak galtzen horietatik zenbaki bat daude. 762 00:35:45,120 --> 00:35:47,300 Zein zenbaki da hau onartzen baldin badugu ordezkari 763 00:35:47,300 --> 00:35:50,730 bitarretan balioak positibo da? 764 00:35:50,730 --> 00:35:54,410 >> 255, eta ez da 256, delako zero kopuru txikiena da. 765 00:35:54,410 --> 00:35:56,760 Beraz, 255 altuena da bat, baina arazoa 766 00:35:56,760 --> 00:36:00,330 Suposatzen da nahi dut Kontatzailea aldagai hau 767 00:36:00,330 --> 00:36:04,030 erabiliz zortzi bit osotara da Kontatzailea nahi badut. 768 00:36:04,030 --> 00:36:07,160 >> Beno I gehitu bezain laster batean direnak horien guztien artean, 769 00:36:07,160 --> 00:36:10,500 duzu agian imajinatu ahal visually-- besterik Bat decimals-- erabiliz egitea bezalako 770 00:36:10,500 --> 00:36:12,300 zerbait nahi duzun joko luke egingo. 771 00:36:12,300 --> 00:36:15,590 Eta hain zuzen ere, kopurua gehitu badut gainera batek, zer bitarretan gertatzen 772 00:36:15,590 --> 00:36:17,670 da zero itzuli gainezka zela. 773 00:36:17,670 --> 00:36:21,730 >> Beraz, ez bakarrik dituzu, erabili bada int bat, baina byte bakar bat osokoak zenbatzeko 774 00:36:21,730 --> 00:36:27,170 programa batean, ahalik eta azkarren lehenespenez lor 250 to you, 251, 252, 253, 254, 775 00:36:27,170 --> 00:36:32,710 255-- 0 255 ondoren dator, eta litekeena da zer 776 00:36:32,710 --> 00:36:34,790 Erabiltzaile bat espero da joan. 777 00:36:34,790 --> 00:36:39,620 >> Orain berriz puntu mundu mugikorrean lan egitean, halaber, antzeko arazo bat duzu. 778 00:36:39,620 --> 00:36:42,670 Ez da, beraz, zenbaki handiena duten askoz nahiz eta hori da oraindik arazo bat. 779 00:36:42,670 --> 00:36:45,360 Baina zehaztasun zenbatekoa ditzakezun irudikatzeko. 780 00:36:45,360 --> 00:36:49,490 Beraz, dezagun begirada bat adibide honetan hemen ere, gaur egungo iturri kode-tik 781 00:36:49,490 --> 00:36:52,070 karroza-0.c. 782 00:36:52,070 --> 00:36:54,280 >> Eta konturatu super bat da programa sinple duten 783 00:36:54,280 --> 00:36:56,580 itxuraz inprimatu behar zer balio? 784 00:36:56,580 --> 00:37:00,777 785 00:37:00,777 --> 00:37:04,110 Zer da hau inprimatzeko joan apustua ez da sintaxia berriak pixka bat nahiz 786 00:37:04,110 --> 00:37:05,540 hemen? 787 00:37:05,540 --> 00:37:06,700 Beraz, espero 0,1. 788 00:37:06,700 --> 00:37:10,000 Beraz hamarren baliokidea egiten ari naiz 1 10 arabera banatzen delako. 789 00:37:10,000 --> 00:37:12,430 Erantzuna gordetzeko naiz aldagai batean izeneko f. 790 00:37:12,430 --> 00:37:15,850 Aldagai hori mota karroza, dena bertan proposatu besterik ez dut keyword bat existitu da. 791 00:37:15,850 --> 00:37:18,910 >> Ez dugu ikusi aurretik, baina hau da printf modu txukun bat mota 792 00:37:18,910 --> 00:37:22,110 digituak zenbat zehaztu behar duzu nahi dezimal baten ondoren ikusi. 793 00:37:22,110 --> 00:37:25,020 Beraz, idazkera hori esan nahi hemen leku-marka bat da. 794 00:37:25,020 --> 00:37:27,900 Puntu mugikorreko bat da balioa, eta oh, bide batez, 795 00:37:27,900 --> 00:37:31,389 erakutsi berarekin dezimal batera dezimal ondoren zenbaki bat. 796 00:37:31,389 --> 00:37:33,180 Beraz, kopurua da digituak esanguratsuak, 797 00:37:33,180 --> 00:37:34,650 nolabait esateko, agian nahi duzula. 798 00:37:34,650 --> 00:37:40,450 >> Beraz, aurrera eta egin ninduen karroza-0, ./float-0, 799 00:37:40,450 --> 00:37:46,660 eta itxuraz 1 10 arabera banatzen 0,0 da. 800 00:37:46,660 --> 00:37:47,760 Orain zergatik da hau? 801 00:37:47,760 --> 00:37:51,380 >> Beno, berriro ere, ordenagailua hartzen ari da me literalki, eta idatzi dut 1 802 00:37:51,380 --> 00:37:56,680 eta idatzia dut 10, eta etxebizitza bat hartu zer Datu gain hartu mota bi horientzat da 803 00:37:56,680 --> 00:37:58,440 baloreak? 804 00:37:58,440 --> 00:38:00,970 Int bat, teknikoki Zerbait ezberdina. 805 00:38:00,970 --> 00:38:04,150 Da normalean luze bat, baina hemen azken finean, balio integrala. 806 00:38:04,150 --> 00:38:06,030 Ez da koma mugikorreko balio. 807 00:38:06,030 --> 00:38:09,456 >> Hots, hori bada Int bat da eta hau int bat da, 808 00:38:09,456 --> 00:38:11,830 arazoa ordenagailua dela ek ez dute gaitasuna 809 00:38:11,830 --> 00:38:13,680 hamartar puntu hori, nahiz eta gordetzeko. 810 00:38:13,680 --> 00:38:16,430 Beraz, ez duzu 1 banatuta 10 osokoak erabiliz 811 00:38:16,430 --> 00:38:20,950 bai zenbakitzailea eta for izendatzaile, erantzuna 0,1 izan behar du. 812 00:38:20,950 --> 00:38:24,930 Baina delako ordenagailua horiek dira zenbaki osoen 813 00:38:24,930 --> 00:38:27,430 ez daki zer den 0,1 zerikusirik. 814 00:38:27,430 --> 00:38:30,010 >> Beraz, zer da argi eta garbi egiten du? 815 00:38:30,010 --> 00:38:33,120 Da, besterik ez bota, eta azken finean, zer ikusten dut 816 00:38:33,120 --> 00:38:38,830 0,0 da azpimarratu dut bakarrik delako printf erakutsi hamarren bat. 817 00:38:38,830 --> 00:38:41,740 Baina arazoa dela, duzu bada zatitzea zenbaki oso bat zenbaki oso bat, 818 00:38:41,740 --> 00:38:44,347 egingo definizioz get-- duzu osoko C. 819 00:38:44,347 --> 00:38:46,680 Eta hori egingo ez dutena zerbait polita eta erosoan 820 00:38:46,680 --> 00:38:49,040 biribiltzeko erabakitzen ditu bezalakoa hurbilenera bat gora edo behera. 821 00:38:49,040 --> 00:38:51,860 Honez moztu joan dena hamartar ondoren. 822 00:38:51,860 --> 00:38:54,030 >> Beraz, besterik gabe, intuizioa, zer da ziurrenik konponketa bat? 823 00:38:54,030 --> 00:38:55,351 Zer da errazena fix hemen? 824 00:38:55,351 --> 00:38:55,850 Bai? 825 00:38:55,850 --> 00:39:00,570 826 00:39:00,570 --> 00:39:01,100 Zehazki. 827 00:39:01,100 --> 00:39:04,200 Zergatik ez dugunean ere, besterik gabe, horiek bezala puntu balio flotatzen eraginkortasunez 828 00:39:04,200 --> 00:39:05,860 horiek inflexio karroza edo bikoitzak sartu. 829 00:39:05,860 --> 00:39:10,500 Eta orain egin egiten badut karroza-0, edo karroza-1 konpilatzen badut, 830 00:39:10,500 --> 00:39:12,570 hau da, berdin- zer besterik proposatu zen. 831 00:39:12,570 --> 00:39:16,400 Eta orain egin dudan karroza-0, orain nire 0.1 zait. 832 00:39:16,400 --> 00:39:17,234 >> Orain hau harrigarria da. 833 00:39:17,234 --> 00:39:19,441 Baina orain ez dut egingo Zerbait ezberdina. 834 00:39:19,441 --> 00:39:22,280 Bitxia naiz, zer da benetan ikusi dut den gertatzen kanpaia azpian, 835 00:39:22,280 --> 00:39:26,050 eta hau inprimatu noa out 28 hamartarrekin. 836 00:39:26,050 --> 00:39:29,730 Benetan ikusi nahi dut 0.1000-- infinite-- bat 837 00:39:29,730 --> 00:39:32,710 [INAUDIBLE] 27 zeroen 0,1 ondoren. 838 00:39:32,710 --> 00:39:34,740 >> Beno, ikus dezagun hori bada zer, hain zuzen ere lortu dut. 839 00:39:34,740 --> 00:39:39,430 Egin karroza-0 fitxategi berean. 840 00:39:39,430 --> 00:39:41,150 ./floats-0. 841 00:39:41,150 --> 00:39:44,380 Dezagun zoom erantzun dramatikoa. 842 00:39:44,380 --> 00:39:49,980 Denbora horretan guztian, egon zaren pentsatzen 1 10 arabera banatzen da:% 10, edo 0,1 da. 843 00:39:49,980 --> 00:39:50,810 Ez da. 844 00:39:50,810 --> 00:39:53,210 Gutxienez, orain arte bezala, ordenagailuaren kezkatuta. 845 00:39:53,210 --> 00:39:57,060 >> Orain why-- Ados, hori bukatuta gezur 1 10 arabera banatzen 0,1 da. 846 00:39:57,060 --> 00:39:59,710 Baina why-- ez dela gaur takeaway. 847 00:39:59,710 --> 00:40:04,010 Beraz, zergatik nahi du ordenagailua, guztiok gela batean ez bezala, 848 00:40:04,010 --> 00:40:06,870 duela 1 10 arabera banatzen da benetan crazy balio hori? 849 00:40:06,870 --> 00:40:10,620 Zer da ordenagailua itxuraz egiten? 850 00:40:10,620 --> 00:40:12,490 Zer da hori? 851 00:40:12,490 --> 00:40:13,785 >> Ez da gainezkatzea, per se. 852 00:40:13,785 --> 00:40:15,910 Overflow normalean denean balio bat inguruan biltzeko duzu. 853 00:40:15,910 --> 00:40:18,970 Imprecision ale hau da koma mugikorreko balio saioa 854 00:40:18,970 --> 00:40:22,220 non bakarrik 32 duzu edo agian 64 bit. 855 00:40:22,220 --> 00:40:25,230 Baina ez da infinitua bada benetako zenbakien kopurua 856 00:40:25,230 --> 00:40:27,940 hamarren dituzten zenbakiak eta zenbakiak hortik aurrera ziur aski 857 00:40:27,940 --> 00:40:29,380 Ezin duzu adierazten denak. 858 00:40:29,380 --> 00:40:32,870 Beraz, ordenagailua eman Gurekin partidaren hurbileneko 859 00:40:32,870 --> 00:40:37,090 balioari, hori erabiliz adierazten ahal balioa benetan nahi dut bit asko, 860 00:40:37,090 --> 00:40:38,690 horietatik 0,1 da. 861 00:40:38,690 --> 00:40:40,685 >> Zoritxarrez, nahi baduzue hasten math egiten, edo 862 00:40:40,685 --> 00:40:44,360 hasteko flotatzen mota hauek parte hartuko dute point programak garrantzitsuak diren balioak 863 00:40:44,360 --> 00:40:46,770 software finantza, militar software-- ezer 864 00:40:46,770 --> 00:40:49,090 non pertzepzioa da seguruenik nahiko garrantzitsua. 865 00:40:49,090 --> 00:40:51,520 Eta gehituz hasten zara Honen antzeko zenbakiak, eta hasiera 866 00:40:51,520 --> 00:40:54,050 software exekutatzen Sarrerek benetan handiak 867 00:40:54,050 --> 00:40:56,890 edo ordu edo asko asko egiteko egun edo asko urte dituen, 868 00:40:56,890 --> 00:41:01,060 apur akats txiki-txiki horiek ziur asko gehi daitezke denboran zehar. 869 00:41:01,060 --> 00:41:04,252 >> Orain alde batera utzita, duzun inoiz bada ikusi Superman 3 edo Office Space 870 00:41:04,252 --> 00:41:05,960 eta agian gogoratzen duzu nola guys horiek lapurtu 871 00:41:05,960 --> 00:41:08,668 Diru asko bere ordenagailutik puntu mugikorreko-balioak erabiliz 872 00:41:08,668 --> 00:41:11,290 eta gutxi gora gehituz hondakinak, zorionez, film horretan 873 00:41:11,290 --> 00:41:12,390 orain gehiago zentzuzkoa. 874 00:41:12,390 --> 00:41:14,930 Hau da, zer izan ziren film horretan aipamenak. 875 00:41:14,930 --> 00:41:16,710 Izan ere, gehienek enpresek ez lukete begiratu 876 00:41:16,710 --> 00:41:18,600 kopuru jakin baten ondoren hamartarren, 877 00:41:18,600 --> 00:41:20,009 baina horiek zentimo frakzioa. 878 00:41:20,009 --> 00:41:22,550 Beraz, horiek gehituz hasten zara up, Diru asko egiten hasten zara 879 00:41:22,550 --> 00:41:23,424 Zure banku-kontuan. 880 00:41:23,424 --> 00:41:25,160 Beraz, Office Space azaldu. 881 00:41:25,160 --> 00:41:28,220 >> Orain zoritxarrez haratago Office Space, han 882 00:41:28,220 --> 00:41:31,794 hemen batzuk legitimoa troubling eta eragin esanguratsuak 883 00:41:31,794 --> 00:41:33,710 mota horiek Diseinu azpiko erabakiak, 884 00:41:33,710 --> 00:41:35,990 eta hain zuzen ere, arrazoi bat C erabiltzen ditugu ikastaroan 885 00:41:35,990 --> 00:41:39,640 dago, beraz, benetan lurrean hori duzun ordenagailuak nola lan ulertzeko sortu, 886 00:41:39,640 --> 00:41:42,440 nola software lan egiten du, eta ez ezer ematen. 887 00:41:42,440 --> 00:41:45,820 >> Eta hain zuzen ere, tamalez, are gehiago, oinarrizko ulermena dela, 888 00:41:45,820 --> 00:41:47,370 dugu gizakiak akatsak egin. 889 00:41:47,370 --> 00:41:51,310 Eta zer partekatu dut pentsatu nuen da Zortzi minutuko bideo hau hemen hartu 890 00:41:51,310 --> 00:41:56,980 Marvels Modern pasarte bat, hau da bertatik gauzak nola lan buruzko hezkuntza-programa baten 891 00:41:56,980 --> 00:42:00,370 duten bi irudiak margotzen of bidegabeko erabilera bat denean 892 00:42:00,370 --> 00:42:02,540 eta ulertzeko puntu balio flotatzen 893 00:42:02,540 --> 00:42:05,610 esanguratsu batzuk ekarri emaitzak zorigaiztoko. 894 00:42:05,610 --> 00:42:06,363 Ikus dezagun begirada bat. 895 00:42:06,363 --> 00:42:07,029 [Bideo-erreprodukzioa] 896 00:42:07,029 --> 00:42:11,290 -Gu Orain "Ingeniaritza itzultzeko Hondamendi "Marvels Modern. 897 00:42:11,290 --> 00:42:12,940 Informatika. 898 00:42:12,940 --> 00:42:15,580 Dugu onartzeko askotan frustrating arazoak 899 00:42:15,580 --> 00:42:20,960 them-- bugs, birusak lortu, eta software prezioak txikiak glitches-- 900 00:42:20,960 --> 00:42:23,100 to erosotasuna ordaintzeko. 901 00:42:23,100 --> 00:42:27,770 Baina maila handiko eta abiadura handiko aplikazio militar eta espazioa programa, 902 00:42:27,770 --> 00:42:32,780 txikiena ahal arazoa daiteke Hondamendi sartu magnified. 903 00:42:32,780 --> 00:42:38,880 >> Ekaina 4, 1996, zientzialari prestatu gidatu gabeko Ariane 5 suziri bat abiarazteko. 904 00:42:38,880 --> 00:42:41,190 Zientifiko zen egitea sateliteak diseinatu 905 00:42:41,190 --> 00:42:44,570 hain zuzen, nola eratzen, Lurraren eremu magnetikoaren elkarreraginean 906 00:42:44,570 --> 00:42:47,380 haize eguzki. 907 00:42:47,380 --> 00:42:50,580 Suziria eraiki zen Europako Espazio Agentziak, 908 00:42:50,580 --> 00:42:54,400 eta altxatzen off bere instalazioak from Frantziar Guyana kostaldean. 909 00:42:54,400 --> 00:42:57,520 >> 37 segundotan sartu ohi duen hegaldia, dute lehen 910 00:42:57,520 --> 00:42:59,070 nabaritu zerbait oker joan zen. 911 00:42:59,070 --> 00:43:02,240 Pitak biraketa ziren modu bat, benetan behar ez badute. 912 00:43:02,240 --> 00:43:06,550 40 segundotan sartu hegaldia, argi eta garbi, ibilgailuaren arazoak izan zen, 913 00:43:06,550 --> 00:43:08,820 eta orduan egin zuten erabakia suntsitu arte. 914 00:43:08,820 --> 00:43:12,370 The sorta segurtasun ofizial, batera izugarria tripak, sakatzen botoia 915 00:43:12,370 --> 00:43:18,030 eta nintzen suziria baino lehen herritarren segurtasunerako arrisku bat bihurtu da. 916 00:43:18,030 --> 00:43:21,010 >> -Honek Dontzeila zen of Ariane 5 bidaia, 917 00:43:21,010 --> 00:43:23,920 eta bere suntsitzea tuvo jarri delako flaw 918 00:43:23,920 --> 00:43:25,932 suziria softwarea barneratua. 919 00:43:25,932 --> 00:43:27,640 Buruzko arazo -The Ariane zela han 920 00:43:27,640 --> 00:43:30,500 Eskatzen zenbaki bat izan zen 64 bit, adierazteko 921 00:43:30,500 --> 00:43:33,560 eta bihurtzeko nahi zuten 16-bit kopuru bat behar da. 922 00:43:33,560 --> 00:43:36,820 Bere gain hartu kopuruan dutela ez zen inoiz oso handia izango da. 923 00:43:36,820 --> 00:43:40,940 Hori digituak horietako gehienetan 64-bit kopuruaren zeroen ziren. 924 00:43:40,940 --> 00:43:42,450 Oker ziren. 925 00:43:42,450 --> 00:43:45,000 >> Bat imposibilidad -The software programa onartu 926 00:43:45,000 --> 00:43:49,460 sortutako zenbaki mota porrota erro at beste izan zen. 927 00:43:49,460 --> 00:43:54,260 Software garapena asko bihurtu bat teknologia berrien oso garestia. 928 00:43:54,260 --> 00:43:57,060 Ariane 4 suziria Oso arrakastatsua izan da. 929 00:43:57,060 --> 00:44:01,600 Beraz, sortutako software askoz gainera, Ariane 5 erabili zen. 930 00:44:01,600 --> 00:44:04,790 >> Oinarrizko arazoa -The Ariane 5 zela. 931 00:44:04,790 --> 00:44:11,200 Zen faster-- bizkortu azkarrago, eta software ez zuen hori kontuan. 932 00:44:11,200 --> 00:44:14,910 >> Suziria suntsitu -The finantza hondamendia izugarria izan zen. 933 00:44:14,910 --> 00:44:18,630 Guztiak ondorioz minutuko software error. 934 00:44:18,630 --> 00:44:21,160 Baina hau ez zen lehen aldia datuak bihurketa arazoak 935 00:44:21,160 --> 00:44:24,770 izan beteta teknologia modernoa suziria. 936 00:44:24,770 --> 00:44:28,020 >> Ezizenen 1991 hasierarekin batera Lehenengo Golkoko Gerra, 937 00:44:28,020 --> 00:44:30,540 Patriot misil mota antzeko bizitako 938 00:44:30,540 --> 00:44:32,465 zenbakia bihurtze arazo bat. 939 00:44:32,465 --> 00:44:36,760 Eta ondorioz 28 jendeak 28 American soldiers-- hil ziren, 940 00:44:36,760 --> 00:44:39,010 eta beste batzuk, ehun bat zauritu. 941 00:44:39,010 --> 00:44:42,830 Noiz Patriot izan zen ustezko sarrerako Scuds aurka babesteko, 942 00:44:42,830 --> 00:44:45,780 huts misil bat su. 943 00:44:45,780 --> 00:44:51,610 >> -Noiz Irak inbaditu Kuwait eta Amerikako abian jarri Desert Storm 1991 hasieran, 944 00:44:51,610 --> 00:44:55,720 Patriot misil bateriak ziren zabaldutako Saudi Arabia eta Israel babesteko 945 00:44:55,720 --> 00:44:59,180 Irakeko Scud misil erasoak. 946 00:44:59,180 --> 00:45:03,080 Patriot AEBetako gama ertaineko bat da azalera-aire sistema 947 00:45:03,080 --> 00:45:06,530 Raytheon enpresa manufakturak. 948 00:45:06,530 --> 00:45:09,500 >> Patriot tamaina -The interceptor bera 949 00:45:09,500 --> 00:45:14,705 buruz gutxi gorabehera 20 oinak luze da, eta 2.000 kilo pisatzen ditu. 950 00:45:14,705 --> 00:45:19,090 Eta buruz warhead bat egiten da, Uste dut gutxi gorabehera 150 kilo. 951 00:45:19,090 --> 00:45:23,880 Eta warhead bera da lehergai altua da, 952 00:45:23,880 --> 00:45:26,700 bere inguruan zatiak ditu. 953 00:45:26,700 --> 00:45:31,630 Beraz Warhead, karterra da Buckshot bezala jarduteko diseinatuta. 954 00:45:31,630 --> 00:45:34,040 >> Misil -The egiten dira edukiontzi bakoitzeko lau, 955 00:45:34,040 --> 00:45:37,170 eta erdi trailer garraiatzen. 956 00:45:37,170 --> 00:45:44,880 >> -The Patriot misil anti-sistema doa, gutxienez 20 urte. 957 00:45:44,880 --> 00:45:48,380 Jatorriz diseinatu zen aire defentsa misil gisa 958 00:45:48,380 --> 00:45:50,810 tiro behera hegazkinak etsaia. 959 00:45:50,810 --> 00:45:54,410 Golkoko Lehen Gerran denean gerra iritsi zen, 960 00:45:54,410 --> 00:45:59,650 Army erabili nahi nahi izan tiro behera Scuds, hegazkinak ez. 961 00:45:59,650 --> 00:46:03,580 Irakeko Air Force zen ez da hain arazo bat askoz, 962 00:46:03,580 --> 00:46:06,590 baina Armadak Scuds kezkatzen. 963 00:46:06,590 --> 00:46:10,120 Eta, beraz, saiatu behar dute Patriot berritzea. 964 00:46:10,120 --> 00:46:12,740 >> Etsai bat -Intercepting misil Mach 5 bidaiatzen 965 00:46:12,740 --> 00:46:15,670 zen joan ahal nahikoa erronka. 966 00:46:15,670 --> 00:46:18,440 Baina Patriot zerbitzua rushed, 967 00:46:18,440 --> 00:46:22,580 Armada ez zen jakitun Irakeko aldaketa bat dagoela 968 00:46:22,580 --> 00:46:25,880 beren Scuds egin ia da ezinezkoa. 969 00:46:25,880 --> 00:46:30,690 >> -Zer gertatu da Scuds dela ziren buruturiko ezegonkorrak ziren. 970 00:46:30,690 --> 00:46:32,000 Bobbly ziren. 971 00:46:32,000 --> 00:46:37,210 Horren arrazoia Iraqis-- zen Ordena 600 kilometro ateratzeko 972 00:46:37,210 --> 00:46:41,680 300 kilometroko barrutia missile-- baten hartu pisua aurrean warhead daudelarik, 973 00:46:41,680 --> 00:46:43,340 eta egin warhead, arinagoa. 974 00:46:43,340 --> 00:46:48,490 Beraz, gaur egun Patriot-en, joaten ari Scud da, eta time-- gehienak 975 00:46:48,490 --> 00:46:52,880 the gehienek time-- besterik ez litzateke Scud bidez hegan. 976 00:46:52,880 --> 00:46:57,120 >> Patriot sistema operadore -once konturatu Patriot galdutako, helburua, 977 00:46:57,120 --> 00:47:01,630 Patriot warhead detonated dute Biktimak posible balitz saihesteko 978 00:47:01,630 --> 00:47:04,440 zen lurrera erortzen onartzen. 979 00:47:04,440 --> 00:47:08,700 >> Pertsona gehienek zer ikusi zen -Hori gisa zerua fireballs handiak, 980 00:47:08,700 --> 00:47:14,180 eta gisa ulertua Scud warheads atzematen. 981 00:47:14,180 --> 00:47:18,020 >> Gaueko zeruak, Patriots in -baina agertu ahal izango arrakastaz suntsitu 982 00:47:18,020 --> 00:47:23,280 Scuds, Dhahran han izan daiteke bere errendimendua buruz gola. 983 00:47:23,280 --> 00:47:27,930 Badira Patriot radar sistema sarrerako Scud baten pista galdu 984 00:47:27,930 --> 00:47:30,260 eta inoiz ez direla abian jarri software akats bat da. 985 00:47:30,260 --> 00:47:34,060 986 00:47:34,060 --> 00:47:38,880 >> Israeldarrek lehen aurkitu nor izan zen duen sistema luzeagoa izan zen, 987 00:47:38,880 --> 00:47:41,130 denbora desadostasun handiagoa bihurtu zen. 988 00:47:41,130 --> 00:47:44,770 Dela kapsulatutako erloju bat sistema informatikoan. 989 00:47:44,770 --> 00:47:48,190 >> -Ezagutu Bi aste lehenago Dhahran tragedia, 990 00:47:48,190 --> 00:47:50,720 Israeldarrek nahi du Defentsa Sailak 991 00:47:50,720 --> 00:47:52,410 dela sistema denbora galdu zuten. 992 00:47:52,410 --> 00:47:54,410 Zortzi ordu inguru ondoren exekutatzen, ohartu ziren 993 00:47:54,410 --> 00:47:57,690 duen sistema bihurtuz nabarmen zehaztasun gutxiago. 994 00:47:57,690 --> 00:48:01,850 Defensa Sailak erantzun Patriot bateriak guztiak kontatzea 995 00:48:01,850 --> 00:48:04,800 sistemak ez uztea denbora luzez gainean. 996 00:48:04,800 --> 00:48:06,980 Sekula esan dute denbora luze bat izan zen. 997 00:48:06,980 --> 00:48:09,140 8 ordu, 10 ordu, mila ordu. 998 00:48:09,140 --> 00:48:11,300 Inork ez zekien. 999 00:48:11,300 --> 00:48:13,320 >> Patriot bateria -The kuartel geldirik 1000 00:48:13,320 --> 00:48:18,310 Dhahran eta bere flawed barneko at erloju polita ari buruzko 100 ordu baino gehiago 1001 00:48:18,310 --> 00:48:21,520 Otsailak 25 gauean. 1002 00:48:21,520 --> 00:48:25,792 >> Denbora arloak zehaztasun bat -It of segundo hamarren bat inguru. 1003 00:48:25,792 --> 00:48:27,950 Orain bat segundo hamarren zenbaki bat interesgarria 1004 00:48:27,950 --> 00:48:31,850 ezin da adierazi duelako bitarretan, zehazki, zein 1005 00:48:31,850 --> 00:48:36,500 esan nahi du, ezin da zehazki adierazi edozein ordenagailu digital modernoak. 1006 00:48:36,500 --> 00:48:41,070 Zaila dela uste da, baina erabili hau adibide gisa. 1007 00:48:41,070 --> 00:48:43,420 >> Ikus dezagun hirugarren zenbaki bat. 1008 00:48:43,420 --> 00:48:47,330 Hirugarren batek ezin izango hamartarrean adierazten zehazki. 1009 00:48:47,330 --> 00:48:52,060 One hirugarren 0,333 da gertatzen ari da infinitua da. 1010 00:48:52,060 --> 00:48:56,420 Ez da nahi duten egin, inola ere ez hamartar bat zehaztasun osoz. 1011 00:48:56,420 --> 00:48:59,530 Hori da zehazki arazo mota dela Patriot gertatu. 1012 00:48:59,530 --> 00:49:04,040 Sistema luzeagoa ran, okerragoa denbora error bihurtu zen. 1013 00:49:04,040 --> 00:49:08,840 >> Eragiketa 100 ordu egin ondoren, etorri denboran error hirugarren bat bakarrik izan zen 1014 00:49:08,840 --> 00:49:10,440 segundo baten. 1015 00:49:10,440 --> 00:49:14,150 Baina bat targeting dagokionez misil Mach 5 bidaiatzen, 1016 00:49:14,150 --> 00:49:18,560 segimendua batean 600 metro baino gehiagoko error. 1017 00:49:18,560 --> 00:49:21,870 Errore larri bat izango litzateke Dhahran soldaduak da. 1018 00:49:21,870 --> 00:49:28,455 >> Gertatu-Zer da Scud launch zen abisua hasieran detektatu sateliteen dira, 1019 00:49:28,455 --> 00:49:32,710 eta Scud bat zetorrela bazekiten bere norabidea, oro har. 1020 00:49:32,710 --> 00:49:35,150 Ez dakite non datozen zen. 1021 00:49:35,150 --> 00:49:38,210 Izan da radar erabakitzen ditu Patriot sistemaren osagai 1022 00:49:38,210 --> 00:49:43,150 Dhahran defendatzeko lokalizatu eta mantentzeko sarrerako etsaiaren misil pista. 1023 00:49:43,150 --> 00:49:44,561 >> Radar -The oso argia zen. 1024 00:49:44,561 --> 00:49:46,560 Benetan litzateke jarraipena Scud, posizioa 1025 00:49:46,560 --> 00:49:48,930 eta, ondoren, iragartzeko non seguruenik, izango da 1026 00:49:48,930 --> 00:49:51,380 hurrengo ordua radar pultsu bat bidaltzen. 1027 00:49:51,380 --> 00:49:53,040 Hori izeneko gama atea zen. 1028 00:49:53,040 --> 00:49:57,620 >> Patriot behin -Ondoren erabakitzen du denbora nahikoa du 1029 00:49:57,620 --> 00:50:02,400 pasa atzera joan eta egiaztatu ondoan antzemandako objektu honen kokapena 1030 00:50:02,400 --> 00:50:03,550 atzera egingo du. 1031 00:50:03,550 --> 00:50:07,820 Beraz, atzera joan oker du! lekuan, objektu gabea ikusten da. 1032 00:50:07,820 --> 00:50:10,360 Eta ez zela objektu ez erabakitzen du. 1033 00:50:10,360 --> 00:50:13,630 Ez zela Detektatzeko bat faltsua eta pista jaisten da. 1034 00:50:13,630 --> 00:50:16,970 >> -The Sarrerako Scud desagertu radar pantaila, 1035 00:50:16,970 --> 00:50:20,200 eta segundo geroago, kuartel sartu danbateko. 1036 00:50:20,200 --> 00:50:22,570 Scud The 28 lagun hil dira. 1037 00:50:22,570 --> 00:50:26,110 Zen azkena marrazainak Lehenengo Golkoko Gerran. 1038 00:50:26,110 --> 00:50:31,920 Tragikoki, eguneratu software egunsentian iritsi zen biharamunean. 1039 00:50:31,920 --> 00:50:34,870 Software flaw izan izan finkoak, itxiera 1040 00:50:34,870 --> 00:50:39,150 nahasia kapitulu bat Patriot misil historia. 1041 00:50:39,150 --> 00:50:40,030 >> [END bideo-erreprodukzioa] 1042 00:50:40,030 --> 00:50:41,488 >> DAVID J. MALAN: Hau CS50 da. 1043 00:50:41,488 --> 00:50:42,820 Asteazkenean ikusiko dugu. 1044 00:50:42,820 --> 00:50:46,420 1045 00:50:46,420 --> 00:50:50,370 >> [Musika jotzen] 1046 00:50:50,370 --> 00:54:23,446