1 00:00:00,000 --> 00:00:10,940 2 00:00:10,940 --> 00:00:13,060 >> DAVID J Malan: Të gjitha e drejtë, kështu që kjo është CS50. 3 00:00:13,060 --> 00:00:15,040 Dhe kjo është e qartë se një e premte. 4 00:00:15,040 --> 00:00:16,850 Dhe kjo është fundi i javës një. 5 00:00:16,850 --> 00:00:21,020 Kështu që ju mund të kujtojnë se ne e kemi lënë jashtë, Herën e fundit, me një cliffhanger në terezi. 6 00:00:21,020 --> 00:00:25,020 Ku ne vë në dukje këtë gënjeshtër, që asnjë marrë parasysh atë që ju keni qenë mësuar në rritje 7 00:00:25,020 --> 00:00:31,610 up, 1 ndarë nga 10 nuk është, në fakt, 0.1 ose 0.100 ose 0,10000. 8 00:00:31,610 --> 00:00:35,270 Në fakt, në qoftë se ne përpilojnë këtë program, siç bëmë dje, me, 9 00:00:35,270 --> 00:00:39,770 bëjnë pasaktësi, dhe pastaj bëj dot, çaj, pasaktësi, 10 00:00:39,770 --> 00:00:43,600 ne kemi mësuar se kjo është ajo që është 1 ndarë nga 10 në fakt është. 11 00:00:43,600 --> 00:00:46,140 Pra, kjo nuk është me të vërtetë mjaft rasti. 12 00:00:46,140 --> 00:00:49,014 Por kjo e bën aluzion në disa Kufizimi themelore e kompjuterëve. 13 00:00:49,014 --> 00:00:50,930 Dhe me të vërtetë, në mesin e gjëra ne jemi duke shkuar për të bërë 14 00:00:50,930 --> 00:00:55,130 sot është të marrë një vështrim në pse kjo ka ndodhi, çfarë implikimesh ka, 15 00:00:55,130 --> 00:00:58,430 sa njerëzimi ka dështuar për të kuptuar këtë në disa shumë 16 00:00:58,430 --> 00:01:00,410 situations-- serioze rezultat i së cilës 17 00:01:00,410 --> 00:01:03,141 ka qenë mjaft tragjike dhe expensive-- dhe gjithashtu 18 00:01:03,141 --> 00:01:04,849 hidhini një sy se si ne në fakt mund të mbrojë 19 00:01:04,849 --> 00:01:06,530 kundër këtyre llojeve të kufizimeve. 20 00:01:06,530 --> 00:01:10,940 Pra intuitive, ndoshta, pse është e ndarë 1 me 10, 21 00:01:10,940 --> 00:01:15,480 sipas kompjuterin tim këtu, jo vetëm 1/10, 0,10? 22 00:01:15,480 --> 00:01:15,980 Po. 23 00:01:15,980 --> 00:01:16,530 Çfarë mendoni ju? 24 00:01:16,530 --> 00:01:17,860 >> AUDIENCA ANËTAR: Burim është e ndryshme? 25 00:01:17,860 --> 00:01:18,550 >> DAVID J Malan: The çfarë është? 26 00:01:18,550 --> 00:01:19,730 Oh, Burim është e ndryshme? 27 00:01:19,730 --> 00:01:20,720 Pra, nuk është mjaft. 28 00:01:20,720 --> 00:01:23,200 Kjo është në fakt më shumë themelore për hardware. 29 00:01:23,200 --> 00:01:23,980 Mendimet e tjera? 30 00:01:23,980 --> 00:01:24,584 Po. 31 00:01:24,584 --> 00:01:26,750 AUDIENCA ANËTAR: Ata përfaqësojnë numrat ndryshe? 32 00:01:26,750 --> 00:01:27,880 DAVID J Malan: Pra, they-- drejta. 33 00:01:27,880 --> 00:01:29,338 Ata përfaqësojnë numra ndryshe. 34 00:01:29,338 --> 00:01:30,700 Të pasaktë, me sa duket. 35 00:01:30,700 --> 00:01:33,190 Kështu që is-- pra, ndryshe nga çfarë? 36 00:01:33,190 --> 00:01:34,490 Ose nga kush? 37 00:01:34,490 --> 00:01:35,050 Nga ne? 38 00:01:35,050 --> 00:01:35,966 AUDIENCA ANËTAR: Po. 39 00:01:35,966 --> 00:01:38,930 Ata nuk përdorin decimal sistem të [e padëgjueshme]. 40 00:01:38,930 --> 00:01:39,680 DAVID J Malan: OK. 41 00:01:39,680 --> 00:01:41,560 Pra, në një kuptim, ata nuk e bëjnë përdorin sistemin decimal. 42 00:01:41,560 --> 00:01:43,720 Nën kapuç, çdo gjë është, me të vërtetë, binar, 43 00:01:43,720 --> 00:01:45,510 dhe kjo është e lidhur, në fakt. 44 00:01:45,510 --> 00:01:48,135 Por kjo është edhe një të thjeshtë shpjegim se kaq. 45 00:01:48,135 --> 00:01:48,635 Po. 46 00:01:48,635 --> 00:01:49,970 >> AUDIENCA ANËTAR: Ata vetëm kanë kaq shumë bit. 47 00:01:49,970 --> 00:01:52,370 Ata vetëm mund të ruajë deri në një farë mase, ashtu si me decimale. 48 00:01:52,370 --> 00:01:52,780 >> DAVID J Malan: Po. 49 00:01:52,780 --> 00:01:54,420 Kjo është ajo që është me të vërtetë duke marrë atë. 50 00:01:54,420 --> 00:01:57,180 Ajo rezulton se kompjuterët në mënyrë tipike, gjithmonë do të vetëm 51 00:01:57,180 --> 00:01:59,690 përdorin një sasi e fundme të informacionit për të përfaqësuar diçka. 52 00:01:59,690 --> 00:01:59,870 E drejtë? 53 00:01:59,870 --> 00:02:02,110 Pas të gjitha, ne vetëm kemi një fikse Shuma e hard disk space. 54 00:02:02,110 --> 00:02:04,210 Ne kemi vetëm një sasi të caktuar RAM, ose kujtesën e kompjuterit. 55 00:02:04,210 --> 00:02:06,251 Dhe në qoftë se ju keni vetëm një Shuma fikse për diçka, 56 00:02:06,251 --> 00:02:09,611 me siguri ju nuk mund të vërtetë të llogarisin deri në pafundësi ose ndonjë numër që ju dëshironi. 57 00:02:09,611 --> 00:02:11,610 Ju, lloj, duhet të vini dhe të zgjedhin se çfarë varg 58 00:02:11,610 --> 00:02:13,220 i vlerave të jeni duke shkuar për të mbështetur. 59 00:02:13,220 --> 00:02:18,100 >> Dhe kështu për shembull, një javë ose dy më parë, kur kemi biseduar për ASCII, 60 00:02:18,100 --> 00:02:21,610 dhe kemi biseduar rreth 8 bit, ose një bajt, kështu që të flasin, 61 00:02:21,610 --> 00:02:26,360 numri më i madh që ne mund të paraqesin me 8 bit ishte ajo? 62 00:02:26,360 --> 00:02:28,350 255. 63 00:02:28,350 --> 00:02:31,850 Dhe ne mund të përfaqësojë vlerat totale 256 por jo nëse kalojmë një prej tyre 64 00:02:31,850 --> 00:02:34,190 në 0-- pra, por nëse ne shpenzojnë një prej tyre në 0, 65 00:02:34,190 --> 00:02:36,830 atëherë numri më i madh është, natyrisht, 255. 66 00:02:36,830 --> 00:02:39,410 >> Pra, ajo rezulton, se kjo është rasti tepër, në këtë kontekst. 67 00:02:39,410 --> 00:02:42,350 Ne kemi filluar duke folur, për herë të fundit, për numra floating-point, që 68 00:02:42,350 --> 00:02:44,640 janë të ndryshëm nga numrat e plotë, në se ata kanë një pikë dhjetore 69 00:02:44,640 --> 00:02:47,056 dhe, me shpresë, disa numra pas kësaj, por ata janë shumë. 70 00:02:47,056 --> 00:02:51,730 Një kompjuter është vetëm në mënyrë tipike do për të përdorur 32 bit, ndoshta 64 bit 71 00:02:51,730 --> 00:02:53,497 për të përfaqësuar një vlerë lundrues pikë. 72 00:02:53,497 --> 00:02:56,080 Pra, edhe pse ne kemi rritur matematikë të mësuarit dhe duke e ditur 73 00:02:56,080 --> 00:02:58,750 që ju mund absolutisht duhet një numër të pafund të numrave të 74 00:02:58,750 --> 00:03:01,650 pas presjes dhjetore, jo në qoftë se ju keni kujtesë të fundme. 75 00:03:01,650 --> 00:03:03,930 Ju, lloj, duhet të rrumbullakët, ose të vini dhe zgjidhni 76 00:03:03,930 --> 00:03:05,346 Numrat ju jeni duke shkuar për të përfaqësuar. 77 00:03:05,346 --> 00:03:08,710 Dhe kështu që ju mund të mendoni, në një kuptim, kjo duke qenë kompjuter të afërt 78 00:03:08,710 --> 00:03:14,050 përafrimi me vlerën 1/10 që ajo mund të merrni, me vetëm 32 apo më shumë copa. 79 00:03:14,050 --> 00:03:15,300 Dhe kjo nuk është vetëm 1/10. 80 00:03:15,300 --> 00:03:19,820 >> Për shembull, në qoftë se unë të ndryshojë kjo në 1/3, që ne mendojmë se është edhe më e thjeshtë. 81 00:03:19,820 --> 00:03:21,300 Pra, 1 ndarë nga 3. 82 00:03:21,300 --> 00:03:22,355 Më lejoni të ruajtur kartelën. 83 00:03:22,355 --> 00:03:24,680 Më lejoni të shkoj përpara dhe të përpiluar atë. 84 00:03:24,680 --> 00:03:25,820 Dhe më lejoni të ri-drejtuar atë. 85 00:03:25,820 --> 00:03:30,000 Edhe këtu, me sa duket, 1/3 nuk është 0.3 dhe pastaj një numër të pafund të 3-ta 86 00:03:30,000 --> 00:03:30,770 pas kësaj. 87 00:03:30,770 --> 00:03:32,540 Ju e keni këtë pasaktësi në fund. 88 00:03:32,540 --> 00:03:35,544 Pra, ne njerëzit janë të sakta, dhe çfarë keni mësuar është, në fakt, i saktë, 89 00:03:35,544 --> 00:03:37,460 por ne jemi bumping deri kundër disa kufizime. 90 00:03:37,460 --> 00:03:39,420 >> Dhe çfarë kam menduar ne do të bëjmë sot, është të fillojë 91 00:03:39,420 --> 00:03:42,190 duke shikuar në, sinqerisht, Pasojat tragjike të kësaj 92 00:03:42,190 --> 00:03:45,490 ndonjëherë, kur njerëzimi nuk mjaft të zbatojë 93 00:03:45,490 --> 00:03:48,460 për këtë realitet dhe këto kufizime. 94 00:03:48,460 --> 00:03:52,360 Dhe ne do të shohim një seri të vignettes nga Channel Historia që merr 95 00:03:52,360 --> 00:03:53,950 një sy se si gjërat kanë shkuar keq. 96 00:03:53,950 --> 00:03:56,340 Është rreth 8 minuta të gjatë, dhe ne do të kthehem pas kësaj 97 00:03:56,340 --> 00:03:59,439 dhe për të marrë një vështrim në pikërisht çfarë tjetër mund të shkojnë keq. 98 00:03:59,439 --> 00:04:00,605 Në qoftë se ne mund të zbehtë lights-- 99 00:04:00,605 --> 00:04:02,350 >> [VIDEO rishikim] 100 00:04:02,350 --> 00:04:06,310 >> -Computers, Ne kemi ardhur të gjithë për të pranuar problemet shpesh frustruese që 101 00:04:06,310 --> 00:04:07,750 shko me ta. 102 00:04:07,750 --> 00:04:11,370 Bugs, viruset, dhe software glitches janë çmimet të vogla 103 00:04:11,370 --> 00:04:13,230 për të paguar për lehtësi. 104 00:04:13,230 --> 00:04:17,519 Por në të teknologjisë së lartë dhe me shpejtësi të lartë Aplikimet program hapësirë ​​ushtarake dhe, 105 00:04:17,519 --> 00:04:22,130 problemi më i vogël mund të të madhërohet në fatkeqësi. 106 00:04:22,130 --> 00:04:27,750 Më 4 qershor, 1996, shkencëtarët i përgatitur për të nisur një pilot Ariane 5 raketa. 107 00:04:27,750 --> 00:04:29,890 Ajo mbante shkencor satelitët projektuar 108 00:04:29,890 --> 00:04:33,030 për të përcaktuar saktësisht se si Ndërvepron magnetike të Tokës në terren 109 00:04:33,030 --> 00:04:35,600 me erërat diellore. 110 00:04:35,600 --> 00:04:37,930 Raketa ishte ndërtuar për Agjencia Evropiane e Hapësirës 111 00:04:37,930 --> 00:04:41,620 dhe ngriti jashtë nga objekti i saj në bregdetin e French Guiana. 112 00:04:41,620 --> 00:04:44,924 >> -Dhe Rreth 30 sekonda në fluturimi, ata së pari 113 00:04:44,924 --> 00:04:46,340 diçka vënë re ishte duke shkuar gabim. 114 00:04:46,340 --> 00:04:49,280 Se nozzles u swiveling në një mënyrë që ata me të vërtetë nuk duhet. 115 00:04:49,280 --> 00:04:53,042 Rreth 40 sekonda në fluturim, në mënyrë të qartë se automjeti ishte në telashe, 116 00:04:53,042 --> 00:04:55,250 dhe kjo është kur ata bënë vendimi për ta shkatërruar atë. 117 00:04:55,250 --> 00:04:58,970 Zyrtari Siguria Gama me guxim jashtëzakonshme shtypur butonin, 118 00:04:58,970 --> 00:05:03,940 shpërtheu raketa para se ajo mund të të bëhet një rrezik për sigurinë publike. 119 00:05:03,940 --> 00:05:06,600 >> -Kjo Ishte vajzë fluturim e 5 Ariane, 120 00:05:06,600 --> 00:05:09,270 dhe shkatërrimi i saj mori vendin për shkak të një krisje 121 00:05:09,270 --> 00:05:10,992 ngulitur në software raketa së. 122 00:05:10,992 --> 00:05:12,700 -The Problemi mbi Ariane ishte se aty 123 00:05:12,700 --> 00:05:15,370 ishte një numër që kërkohet 64 bit për të shprehur, 124 00:05:15,370 --> 00:05:18,150 dhe ai donte për të kthyer kjo për një numër të 16 bit. 125 00:05:18,150 --> 00:05:21,160 Ata supozohet se numri i kurrë nuk do të ishte shumë i madh, 126 00:05:21,160 --> 00:05:25,020 se shumica e këtyre shifrave në numri 64 bit ishin të 0-së. 127 00:05:25,020 --> 00:05:26,310 Ata e kishin gabim. 128 00:05:26,310 --> 00:05:28,680 >> -The Paaftësia e një program software për të pranuar 129 00:05:28,680 --> 00:05:32,820 lloji i numrit të gjeneruara nga një tjetër ishte në rrënjë të dështimit. 130 00:05:32,820 --> 00:05:37,190 Software zhvillimit ishte bërë një pjesë shumë e kushtueshme të teknologjisë së re. 131 00:05:37,190 --> 00:05:40,760 Ariane 4 raketa kishte qenë shumë i suksesshëm, aq shumë të softuerit 132 00:05:40,760 --> 00:05:43,990 krijuar sepse ishte edhe të përdorura në Ariane 5. 133 00:05:43,990 --> 00:05:49,750 >> -The Problemi themelor ishte se Ariane 5 ishte më i shpejtë, më të shpejtë përshpejtuar. 134 00:05:49,750 --> 00:05:53,000 Dhe software nuk kishte llogariten për këtë. 135 00:05:53,000 --> 00:05:56,330 >> -The Shkatërrimin e raketa ishte një fatkeqësi e madhe financiare, 136 00:05:56,330 --> 00:05:59,670 të gjitha për shkak të një gabimi minutë software. 137 00:05:59,670 --> 00:06:01,990 Por kjo nuk ishte parë kohë probleme të dhënat e konvertimit 138 00:06:01,990 --> 00:06:05,310 kishte pllakosur teknologji moderne raketa. 139 00:06:05,310 --> 00:06:08,300 >> -Në 1991, me fillimin e Luftës së parë të Gjirit, 140 00:06:08,300 --> 00:06:10,650 raketa Patriot përjetuar një lloj i ngjashëm 141 00:06:10,650 --> 00:06:12,650 e problemit numër konvertimit. 142 00:06:12,650 --> 00:06:15,620 Si rezultat, 28 njerëz, 28 ushtarë amerikanë 143 00:06:15,620 --> 00:06:18,440 u vranë dhe rreth 100 të tjerë janë plagosur, 144 00:06:18,440 --> 00:06:21,900 kur Patriot, e cila është dashur për të mbrojtur kundër scuds hyrje, 145 00:06:21,900 --> 00:06:24,630 nuk arriti të zjarrit një raketë. 146 00:06:24,630 --> 00:06:29,440 >> -Kur Iraku pushtoi Kuvajtin dhe Amerikën nisur Desert Storm në fillim të vitit 1991, 147 00:06:29,440 --> 00:06:33,800 Bateritë e raketave Patriot u vendosën për të mbrojtur Arabinë Saudite dhe Izraelin 148 00:06:33,800 --> 00:06:37,000 nga sulmet me raketa Skud Irakut. 149 00:06:37,000 --> 00:06:40,610 Patriot është një amerikan, të mesme-varg sipërfaqja-ajër të sistemit 150 00:06:40,610 --> 00:06:43,010 të prodhuara nga kompania Raytheon. 151 00:06:43,010 --> 00:06:49,080 >> -The Madhësia e interceptorëve Patriot, në vetvete, është rreth, rreth 20 këmbë të gjatë. 152 00:06:49,080 --> 00:06:51,250 Dhe peshon rreth 2000 paund. 153 00:06:51,250 --> 00:06:55,195 Dhe ajo mbart një kokë rakete të? Për Unë mendoj se është afërsisht 150 £. 154 00:06:55,195 --> 00:06:59,500 Dhe mbushje, vetë, është një eksploziv i lartë, 155 00:06:59,500 --> 00:07:02,570 e cila ka fragmente rreth tij. 156 00:07:02,570 --> 00:07:06,890 Zorrë e mbushje është projektuar për të vepruar si buckshot. 157 00:07:06,890 --> 00:07:09,130 >> -The Raketa janë kryer, 4 për enë, 158 00:07:09,130 --> 00:07:12,080 dhe janë transportuar nga një gjysmë-rimorkio. 159 00:07:12,080 --> 00:07:19,100 >> -The Patriot sistem anti raketave shkon prapa të paktën 20 vjet tani. 160 00:07:19,100 --> 00:07:22,320 Ajo ishte projektuar në fillim si një raketë e mbrojtjes ajrore 161 00:07:22,320 --> 00:07:24,180 për të shuar avionët e armikut. 162 00:07:24,180 --> 00:07:27,860 Në Luftën e parë të Gjirit, kur erdhi se lufta së bashku, 163 00:07:27,860 --> 00:07:32,745 Ushtria donte të përdorin atë për të xhiruar poshtë scuds, jo aeroplanë. 164 00:07:32,745 --> 00:07:36,150 Forca e Irakut nuk ishte aq shumë e një problemi, 165 00:07:36,150 --> 00:07:39,110 por ushtria u shqetësuar për scuds. 166 00:07:39,110 --> 00:07:42,340 Dhe kështu ata u përpoqën të përmirësuar Patriot. 167 00:07:42,340 --> 00:07:44,760 >> -Intercepting Një armik raketave udhëtojnë në mach pesë 168 00:07:44,760 --> 00:07:47,250 do të ishte sfiduese të mjaftueshme. 169 00:07:47,250 --> 00:07:50,000 Por kur Patriot u nxituan në shërbim, 170 00:07:50,000 --> 00:07:54,030 Ushtria nuk ishte në dijeni të një Modifikim Irakut që e bëri 171 00:07:54,030 --> 00:07:56,840 scuds e tyre gati e pamundur për të goditur. 172 00:07:56,840 --> 00:08:01,020 >> -Çfarë Ndodhi, është scuds që vinin në, ishin të paqëndrueshme, 173 00:08:01,020 --> 00:08:02,310 ata ishin hapa të pasigurt. 174 00:08:02,310 --> 00:08:05,140 Arsyeja për këtë, ishte irakianët, në mënyrë 175 00:08:05,140 --> 00:08:09,450 për të marrë 600 kilometra nga një varg raketë 300 kilometër, 176 00:08:09,450 --> 00:08:12,930 mori peshë nga mbushje para dhe e bëri mbushje lehta. 177 00:08:12,930 --> 00:08:17,710 Deri tani, atdhetari e duke u përpjekur për të ardhur në vrapoj me vrull, dhe shumicën e kohës, 178 00:08:17,710 --> 00:08:21,700 shumica dërrmuese e kohë, ai do të fluturojnë vetëm nga vrapoj me vrull. 179 00:08:21,700 --> 00:08:25,700 >> -Pasi Operatorët e sistemit Patriot realizuar Patriot humbi objektivin e saj, 180 00:08:25,700 --> 00:08:29,790 ata shpërtheu mbushje patriotit së, për të shmangur viktima të mundshme nëse ajo 181 00:08:29,790 --> 00:08:32,380 u lejohet të bjerë në tokë. 182 00:08:32,380 --> 00:08:36,340 >> -Kjo Ishte ajo që shumica e njerëzve e pa, këto fireballs mëdha në qiell, 183 00:08:36,340 --> 00:08:41,289 dhe keqkuptuar si Përgjimet e raketave Skud. 184 00:08:41,289 --> 00:08:43,590 Edhe pse në natën Qielli, Patriots shfaq 185 00:08:43,590 --> 00:08:47,020 të jenë të suksesshme shkatërruar scuds, në Dhahran, 186 00:08:47,020 --> 00:08:49,730 nuk mund të ketë gabim në lidhje me performancën e saj. 187 00:08:49,730 --> 00:08:53,990 Atje, sistemi i patriotit të radar humbur gjurmët e një Skud në hyrje, 188 00:08:53,990 --> 00:08:56,650 dhe kurrë nuk filloi, për shkak të një krisje software. 189 00:08:56,650 --> 00:08:59,650 190 00:08:59,650 --> 00:09:04,100 Ajo ishte izraelitët që së pari të zbuluara se sa më gjatë sistemi ishte në, 191 00:09:04,100 --> 00:09:07,510 aq më i madh koha mospërputhje u bë, për shkak të një orë ngulitur 192 00:09:07,510 --> 00:09:09,490 në kompjuterin e sistemit. 193 00:09:09,490 --> 00:09:12,670 >> -Rreth 2 javë më parë tragjedia në Dhahran, 194 00:09:12,670 --> 00:09:15,010 izraelitët raportuar Departamenti i Mbrojtjes, 195 00:09:15,010 --> 00:09:17,940 se sistemi është humbur kohë, se pas rreth 8 orë në punë, 196 00:09:17,940 --> 00:09:21,410 ata vënë re se sistemi ishte duke u bërë dukshëm më pak i saktë. 197 00:09:21,410 --> 00:09:25,290 Departamenti i Mbrojtjes u përgjigj duke thënë të gjitha baterive Patriot 198 00:09:25,290 --> 00:09:28,070 për të mos i lënë sistemet në për një kohë të gjatë. 199 00:09:28,070 --> 00:09:29,960 Ata kurrë nuk tha atë që një kohë të gjatë ishte. 200 00:09:29,960 --> 00:09:30,460 8 orë? 201 00:09:30,460 --> 00:09:30,960 10 orë? 202 00:09:30,960 --> 00:09:31,870 1000 orë? 203 00:09:31,870 --> 00:09:33,734 Askush nuk e dinte. 204 00:09:33,734 --> 00:09:35,650 -The Bateri Patriot stacionuar në kazermën 205 00:09:35,650 --> 00:09:40,410 në Dhahran, dhe e brendshme e saj me të meta ora, kishte qenë në më shumë se 100 orë 206 00:09:40,410 --> 00:09:43,041 në natën e 25 shkurtit. 207 00:09:43,041 --> 00:09:47,416 >> -Ajo Gjurmuar kohë për një saktësi rreth 1/10 e një të dytë. 208 00:09:47,416 --> 00:09:49,290 Tani 1/10 e sekondës një numër interesante 209 00:09:49,290 --> 00:09:52,700 sepse ajo nuk mund të jetë shprehur në binar, pikërisht. 210 00:09:52,700 --> 00:09:54,820 Që do të thotë, ajo nuk mund të të shprehet, pikërisht, 211 00:09:54,820 --> 00:09:57,420 në çdo kompjuter moderne digjitale. 212 00:09:57,420 --> 00:10:01,460 Është e vështirë të besohet, por përdorin këtë si një shembull. 213 00:10:01,460 --> 00:10:03,520 Le të marrin numrin, 1/3. 214 00:10:03,520 --> 00:10:07,110 03/01 nuk mund të shprehet në decimal, pikërisht. 215 00:10:07,110 --> 00:10:11,490 1/3 është 0,333 në vazhdim e sipër për pafundësi. 216 00:10:11,490 --> 00:10:15,486 Nuk ka asnjë mënyrë për të bërë këtë, me saktësi absolute, në decimal. 217 00:10:15,486 --> 00:10:18,360 Kjo është pikërisht e njëjta lloj i Problemi që ka ndodhur në Patriot. 218 00:10:18,360 --> 00:10:22,510 Sa më gjatë që sistemi vrapoi, The më keq herë gabim u bë. 219 00:10:22,510 --> 00:10:28,420 >> -Pas 100 orë të punës, gabim në kohë ishte vetëm rreth 1/3 e një të dytë. 220 00:10:28,420 --> 00:10:31,830 Por në aspektin e synimeve të dhënësit një raketave udhëtojnë në mach 5, 221 00:10:31,830 --> 00:10:35,890 kjo ka rezultuar në një ndjekja Gabimi i mbi 600 metra. 222 00:10:35,890 --> 00:10:38,970 Ajo do të jetë një gabim fatal për ushtarët në Dhahran. 223 00:10:38,970 --> 00:10:45,035 >> -Çfarë Ndodhi, është një fillojë Skud ishte zbuluar nga satelitët e paralajmërimit të hershëm, 224 00:10:45,035 --> 00:10:48,930 dhe ata i ri që ishte Skud që vijnë në drejtim të tyre të përgjithshëm. 225 00:10:48,930 --> 00:10:51,170 Ata nuk e dinë se ku ai po vinte. 226 00:10:51,170 --> 00:10:53,990 >> -Ishte Tani deri në radar komponent i sistemit Patriot, 227 00:10:53,990 --> 00:10:58,520 mbrojtur Dhahran, për të gjetur dhe për të mbajtur gjurmët e raketave armikut në hyrje. 228 00:10:58,520 --> 00:10:59,690 >> -The Radar ishte shumë i zgjuar. 229 00:10:59,690 --> 00:11:01,710 Ajo do të ndjekur në fakt pozicioni i Skud 230 00:11:01,710 --> 00:11:04,040 dhe pastaj parashikojnë ku kjo ndoshta do të jetë, 231 00:11:04,040 --> 00:11:06,140 herën tjetër, radar dërguar një impuls jashtë. 232 00:11:06,140 --> 00:11:07,660 Që u quajt porta varg. 233 00:11:07,660 --> 00:11:11,870 >> -Pastaj, Dikur Patriot vendos kohë të mjaftueshme ka 234 00:11:11,870 --> 00:11:16,280 kaluar për të shkuar mbrapa dhe të kontrolloni të ardhshëm Lokacioni për këtë objekt zbuluar, 235 00:11:16,280 --> 00:11:17,280 ajo shkon prapa. 236 00:11:17,280 --> 00:11:21,690 Pra, kur ai u kthye të gabuar vend, ajo pastaj sheh ndonjë objekt 237 00:11:21,690 --> 00:11:25,230 dhe ajo vendos se nuk kishte asnjë objekt, ajo ishte një zbulimin e rreme, 238 00:11:25,230 --> 00:11:26,650 dhe bie udhë. 239 00:11:26,650 --> 00:11:29,690 Skud hyrje zhdukur nga ekrani i radarit, 240 00:11:29,690 --> 00:11:32,670 dhe sekonda më vonë, atë përplas në fortesë. 241 00:11:32,670 --> 00:11:38,100 Skud vrarë 28 dhe ishte e fundit një gjuajtur gjatë Luftës së parë të Gjirit. 242 00:11:38,100 --> 00:11:43,460 Tragjikisht, software updated arriti në Dhahran një ditë më pas. 243 00:11:43,460 --> 00:11:46,150 Software metë kishte qenë fikse, mbyllja 244 00:11:46,150 --> 00:11:48,940 një kapitull në trazuar Historia e raketave Patriot. 245 00:11:48,940 --> 00:11:50,220 >> [END rishikim] 246 00:11:50,220 --> 00:11:54,340 >> DAVID J Malan: Pra, ne do të hedhim një vështrim në disa kufizime të ngjashme në vetëm pak. 247 00:11:54,340 --> 00:11:58,470 Por së pari, le të kalimi në disa FYI është. 248 00:11:58,470 --> 00:12:01,575 Pra one-- këtë fundjavë, aty do të jetë seksione super, 249 00:12:01,575 --> 00:12:04,200 të cilat janë të destinuara për të zënë vendin seksione të planifikuara rregullisht, të cilat 250 00:12:04,200 --> 00:12:05,460 do të fillojnë deri një javë që këtej. 251 00:12:05,460 --> 00:12:08,204 Hidhni një sy në faqen e internetit të CS50 e për më shumë informacion mbi ato. 252 00:12:08,204 --> 00:12:11,120 Ata gjithashtu do të jenë të filmuar dhe Transmetuar të jetojë për ato gjendje të marrin pjesë. 253 00:12:11,120 --> 00:12:12,980 Problemi vendosur 1 është mbi Faqja e internetit kurs të tashmë, 254 00:12:12,980 --> 00:12:15,105 dhe ne do të hedhim një vështrim në që në vetëm pak. 255 00:12:15,105 --> 00:12:18,350 Dhe orarit të punës gjithashtu, do të marrë vendosni këtë hëna deri të enjten. 256 00:12:18,350 --> 00:12:20,960 >> Pra, kjo ishte më kanonik Programi i kemi shikuar në kohën e fundit. 257 00:12:20,960 --> 00:12:23,590 Është si të thjeshtë program ju mund të shkruani në C, 258 00:12:23,590 --> 00:12:25,250 dhe madje edhe kjo është pak e një kërkesë të guximshme. 259 00:12:25,250 --> 00:12:25,750 E drejtë? 260 00:12:25,750 --> 00:12:28,070 Sepse ka një shumë të gjoja kompleksitetin për këtë. 261 00:12:28,070 --> 00:12:30,445 Pra, le të marrin një vështrim të shpejtë në atë që disa nga këto elemente 262 00:12:30,445 --> 00:12:33,080 ishin dhe pastaj të përpiqet për të siguruar një model mendor për sa 263 00:12:33,080 --> 00:12:35,710 këto thjeshtë e programeve punë, dhe pastaj ne do të fillojmë 264 00:12:35,710 --> 00:12:38,050 duke kërkuar në gjëra gjithnjë e më komplekse. 265 00:12:38,050 --> 00:12:41,280 Pra, kjo vijë këtu, theksoi tani, në të verdhë, çfarë të themi për herë të fundit, 266 00:12:41,280 --> 00:12:43,200 se kjo e bën për ne? 267 00:12:43,200 --> 00:12:45,220 Cili është qëllimi i shërben? 268 00:12:45,220 --> 00:12:46,984 Çdokush nga larg prapa? 269 00:12:46,984 --> 00:12:47,483 Po. 270 00:12:47,483 --> 00:12:48,649 >> AUDIENCA ANËTAR: [padëgjueshme] 271 00:12:48,649 --> 00:12:50,871 272 00:12:50,871 --> 00:12:51,704 DAVID J Malan: Mirë. 273 00:12:51,704 --> 00:12:53,537 Pra, kjo ju jep juve akses ndaj urdhrave, apo le të 274 00:12:53,537 --> 00:12:56,750 thirrje atyre funksioneve, që dikush tjetër shkroi, që janë deklaruar, 275 00:12:56,750 --> 00:12:58,350 mënyrë që të flasin, në disa fotografi të tjera. 276 00:12:58,350 --> 00:13:02,370 Pra, ne do të shohim saktësisht se çfarë një file .H është kundrejt një skedar .c, përfundimisht. 277 00:13:02,370 --> 00:13:04,710 Por tani për tani, vetëm e di që printf, për shembull, 278 00:13:04,710 --> 00:13:08,370 është ndër funksionet që kanë qenë deklaruar në disa dosje të tjera, diku 279 00:13:08,370 --> 00:13:12,930 tjetër në hard drive e cloud që na lejon për të hyrë printf dhe e përdorin atë 280 00:13:12,930 --> 00:13:15,240 pa pasur nevojë për të reinvent se timon veten. 281 00:13:15,240 --> 00:13:16,930 Ndërkohë, kryesore. 282 00:13:16,930 --> 00:13:19,690 Cili ishte analog i kryesor, javën e kaluar? 283 00:13:19,690 --> 00:13:20,190 Po. 284 00:13:20,190 --> 00:13:21,460 >> AUDIENCA ANËTAR: flamuri gjelbër është klikuar. 285 00:13:21,460 --> 00:13:21,740 >> DAVID J Malan: Po. 286 00:13:21,740 --> 00:13:23,490 Scratch-së, kur flamuri gjelbër klikuar. 287 00:13:23,490 --> 00:13:25,560 Është si copë mister që nis gjërat off. 288 00:13:25,560 --> 00:13:28,306 Dhe kështu në mënyrë të ngjashme, e bëri botën vendosur disa vjet më parë se në C, 289 00:13:28,306 --> 00:13:30,930 dhe një bandë e gjuhëve të tjera, në qoftë se ju dëshironi të shkruani një program, 290 00:13:30,930 --> 00:13:33,410 Funksioni juaj e parë ka të quhet, kryesor. 291 00:13:33,410 --> 00:13:34,641 Dhe ajo ka për të parë si kjo. 292 00:13:34,641 --> 00:13:36,640 Por ne do të kthehen, Një herë tjetër, për çfarë, int, 293 00:13:36,640 --> 00:13:38,690 dhe, i pavlefshëm, do të thotë në këtë kontekst. 294 00:13:38,690 --> 00:13:42,860 Tani për tani, formatimin e teksteve kaçurrel janë lloj e si formë copë mister e para së 295 00:13:42,860 --> 00:13:45,080 që encapsulates disa numrin e linjave. 296 00:13:45,080 --> 00:13:47,070 Dhe në mesin mbi linjat këtu, është kjo këtu. 297 00:13:47,070 --> 00:13:51,610 printf është një funksion qëllimi i të cilit në jeta është për të shtypur një varg formatuar. 298 00:13:51,610 --> 00:13:55,010 Dhe nga formatuar, unë do të thotë të mund të vihet në prizë vlerat placeholder, 299 00:13:55,010 --> 00:13:58,360 dhe ju mund të specifikoni se sa decimal pikë, sa numra për të shtypur 300 00:13:58,360 --> 00:14:00,040 pas një presjes dhjetore dhe si. 301 00:14:00,040 --> 00:14:05,040 Dhe printf, natyrisht, merr një ose argumente ose parametra më shumë, 302 00:14:05,040 --> 00:14:06,770 njihet ndryshe, më thjesht, si inpute. 303 00:14:06,770 --> 00:14:09,230 >> Pra printf, si një shumë të funksionet, merr inputeve. 304 00:14:09,230 --> 00:14:12,730 Dhe këto inputet janë përqafuar nga dy kllapa këtu. 305 00:14:12,730 --> 00:14:15,180 Dhe brenda nga ato është një input. 306 00:14:15,180 --> 00:14:18,600 Kjo është një varg, siç e kemi quajtur atë, e cila është vetëm një sekuencë e karaktereve, 307 00:14:18,600 --> 00:14:22,310 si një fjalë apo një frazë të, ose në tërësi ese edhe, në mes thonjëza dyshe. 308 00:14:22,310 --> 00:14:25,712 Dhe kjo është ajo që do të ndikojnë në Sjellja e printf, sepse, natyrisht, 309 00:14:25,712 --> 00:14:27,170 kjo është vetëm një funksion të shtypura gjenerike. 310 00:14:27,170 --> 00:14:29,600 Kjo nuk do të dini se çfarë për të shtypur, përveç nëse ju tregoni atë. 311 00:14:29,600 --> 00:14:31,000 Dhe pastaj, disa imtësira. 312 00:14:31,000 --> 00:14:34,056 Çfarë të themi kjo çuditshëm Sekuenca e simboleve është? 313 00:14:34,056 --> 00:14:34,556 Po. 314 00:14:34,556 --> 00:14:35,410 >> AUDIENCA ANËTAR: Linja e re. 315 00:14:35,410 --> 00:14:35,990 >> DAVID J Malan: Linja e re. 316 00:14:35,990 --> 00:14:39,340 Pra, ajo rezulton, ju nuk mund të goditur vetëm, të hyjë, kur ju jeni duke shkruar programin. 317 00:14:39,340 --> 00:14:42,590 Në përgjithësi, përpiluesit do të marrë pak të hutuar se çfarë ju thotë. 318 00:14:42,590 --> 00:14:45,340 Përkundrazi, ju duhet të vërtetë them, më jep mua një linjë të re këtu. 319 00:14:45,340 --> 00:14:49,506 Dhe kështu / n është ajo që ne në përgjithësi thërrisni një karakter të shpëtojnë. 320 00:14:49,506 --> 00:14:50,870 Pra n, për linjë të re. 321 00:14:50,870 --> 00:14:53,810 Dhe përpiluesit e di se kur ajo e sheh / N, 322 00:14:53,810 --> 00:14:57,420 ajo duhet të vërtetë të shkaktoj në kompjuter, në fund të fundit, ose printf, në këtë rast, 323 00:14:57,420 --> 00:15:00,260 të shtypura nga një re aktuale line, si goditur, të hyjë, 324 00:15:00,260 --> 00:15:01,480 kyç në tastierën tuaj. 325 00:15:01,480 --> 00:15:05,620 Dhe së fundi, çfarë bëri themi kjo pjesë e sintaksës është për? 326 00:15:05,620 --> 00:15:06,591 Çfarë përfaqëson? 327 00:15:06,591 --> 00:15:07,090 Po. 328 00:15:07,090 --> 00:15:07,490 >> AUDIENCA ANËTAR: [padëgjueshme] 329 00:15:07,490 --> 00:15:08,660 >> DAVID J Malan: Është vetëm fundi i linjës. 330 00:15:08,660 --> 00:15:09,909 Është fundi i deklaratës. 331 00:15:09,909 --> 00:15:11,890 Dhe të kuptojë se ne nuk bëjmë vënë ato kudo. 332 00:15:11,890 --> 00:15:13,900 Ne sigurisht nuk e vënë ato në skajet e çdo linjë. 333 00:15:13,900 --> 00:15:16,680 Për shembull, nuk ka asnjë mbi Linja e parë, nuk ka asnjë në linjë 334 00:15:16,680 --> 00:15:18,680 me, kryesor, nuk ka asnjë pas formatimin e teksteve kaçurrel, 335 00:15:18,680 --> 00:15:21,740 por ju do të fillojnë për të parë dhe për të marrë të njohur me të, ku është quajtur për të. 336 00:15:21,740 --> 00:15:26,014 Dhe kjo është pothuajse gjithmonë pas një funksion telefononi ose një deklaratë, disa veprime 337 00:15:26,014 --> 00:15:27,180 se ju jeni në të vërtetë duke marrë. 338 00:15:27,180 --> 00:15:29,520 >> Dhe e di tani, veçanërisht nëse në mesin e atyre më pak të rehatshme, 339 00:15:29,520 --> 00:15:32,540 këto janë llojet e gjërave idiote që ju do të përfundojë aksidentalisht banging 340 00:15:32,540 --> 00:15:33,873 kokën tuaj kundër murit mbi. 341 00:15:33,873 --> 00:15:36,107 Sepse ju do të jetë logjikisht besim në disa probleme 342 00:15:36,107 --> 00:15:38,440 ju keni zgjidhur një problem për vendosur, dhe gjëja e mallkuar vetëm 343 00:15:38,440 --> 00:15:40,187 nuk do të përpilojnë apo edhe të drejtuar. 344 00:15:40,187 --> 00:15:43,270 Dhe aq shpesh, në fillim, ajo do të të jetë për shkak se keni humbur një parantezë, 345 00:15:43,270 --> 00:15:44,455 apo keni humbur një pikëpresje. 346 00:15:44,455 --> 00:15:46,547 Dhe kështu që vetëm të jenë të ndërgjegjshëm këto llojet e gjërave, 347 00:15:46,547 --> 00:15:49,380 dhe nuk përpiqen për të marrë të frustruar nga ata, sepse shumë shpejt e bën këtë 348 00:15:49,380 --> 00:15:50,640 bëhen të vjetruar. 349 00:15:50,640 --> 00:15:53,910 Por është shumë e lehtë për të marrë frustruar herët, si rezultat i kësaj. 350 00:15:53,910 --> 00:15:57,020 >> Deri tani, le të marrin një sy se si Kjo linjë është në të vërtetë punon 351 00:15:57,020 --> 00:15:59,170 dhe pastaj të shohim në një pak një më shumë e komplikuar. 352 00:15:59,170 --> 00:16:02,017 Pra, ne kemi mbi Këtu, Aftësia për të nxjerrë në këtë ekran. 353 00:16:02,017 --> 00:16:04,100 Dhe le të supozojmë se kjo është ekranin e kompjuterit tim, 354 00:16:04,100 --> 00:16:08,589 por unë jam i shkruar, Hello programin, dhe unë nuk e kanë zbatuar, printf. 355 00:16:08,589 --> 00:16:10,130 Dikush tjetër ka zbatuar, printf. 356 00:16:10,130 --> 00:16:12,420 Kush do të donte të pretendojnë të kanë zbatuar, printf? 357 00:16:12,420 --> 00:16:12,920 Në qoftë se ne mund? 358 00:16:12,920 --> 00:16:13,830 Të gjithë të drejtë, çfarë është emri juaj? 359 00:16:13,830 --> 00:16:14,155 >> STUDENT 1: [? Copal. ?] 360 00:16:14,155 --> 00:16:15,529 >> DAVID J Malan: Copal, eja lart. 361 00:16:15,529 --> 00:16:16,430 Eja up. 362 00:16:16,430 --> 00:16:17,070 Dakord. 363 00:16:17,070 --> 00:16:22,260 Pra, ne kemi, këtu, disa tags emrin, pasi ne do të bëjë një lojë të vogël të kësaj. 364 00:16:22,260 --> 00:16:26,270 Dhe ne do t'ju thërrasë, printf. 365 00:16:26,270 --> 00:16:30,170 Dhe në qoftë se ju doni të vijnë gjatë këtu, ajo që unë kam vizatuar vetëm në ekran, 366 00:16:30,170 --> 00:16:32,340 kjo është mjaft e thjesht, nuk ka më, kjo. 367 00:16:32,340 --> 00:16:35,550 >> Të gjithë të drejtë, kështu që, Hello emri im është, printf, në qoftë se ju dëshironi për të vënë atë në. 368 00:16:35,550 --> 00:16:35,740 Dakord. 369 00:16:35,740 --> 00:16:37,360 Dhe në qoftë se ju mund të shkoni të qëndrojë nga ekranin e kompjuterit 370 00:16:37,360 --> 00:16:39,730 sikur ju jeni funksion që erdhi me këtë sistem kompjuterik. 371 00:16:39,730 --> 00:16:42,063 Dhe qëllimi juaj në jetë është që në fakt të shkruar diçka. 372 00:16:42,063 --> 00:16:44,560 Por, ashtu si e programit ne vetëm kishte në ekran, këtu, 373 00:16:44,560 --> 00:16:47,060 ne do të duhet të në të vërtetë ju jap disa të dhëna. 374 00:16:47,060 --> 00:16:51,810 >> Dhe kështu, në qoftë se input tim, këtu, është me sa duket, ajo që është miratuar në printf, 375 00:16:51,810 --> 00:16:53,730 le të lloj tallen atë si kjo. 376 00:16:53,730 --> 00:16:58,720 Unë jam duke shkuar për të shkruar fjalë për fjalë në një copë letër, "Hello, World" 377 00:16:58,720 --> 00:17:03,020 backslash N. Dhe të jetë i qartë, çfarë Unë e kam tërhequr vetëm në këtë copë letre, 378 00:17:03,020 --> 00:17:04,020 duket si kjo. 379 00:17:04,020 --> 00:17:08,730 Kështu që, kur unë të drejtuar këtë program, dhe kjo vija e verdhë e kodit merr ekzekutohet, 380 00:17:08,730 --> 00:17:12,970 kjo është sikur unë, programi Përshëndetje, jam dorëzimin disa të dhëna jashtë për një funksion 381 00:17:12,970 --> 00:17:13,970 që dikush tjetër ka shkruar. 382 00:17:13,970 --> 00:17:16,595 >> Dhe në qoftë se ju, me gishtin tuaj, mund në fakt, me gishtin tuaj, 383 00:17:16,595 --> 00:17:21,520 barazim në ekran çfarëdo ajo është e ju keni qenë dorëzuar, 384 00:17:21,520 --> 00:17:27,465 efekti, në fund të fundit, është që të shikoni saktësisht se, në ekran. 385 00:17:27,465 --> 00:17:29,140 Dhe një rast pak qoshe këtu. 386 00:17:29,140 --> 00:17:31,540 Dhe të mirë, ne nuk duhet të shohim , linjë e re, në këtë pikë. 387 00:17:31,540 --> 00:17:33,900 Ajo do të jetë i pasaktë për ju për të nxjerrë në mënyrë eksplicite newline. 388 00:17:33,900 --> 00:17:36,810 Por në qoftë se ne kemi mbajtur duke shkruar fjalët në ekran, ata do të përfundojnë më poshtë se. 389 00:17:36,810 --> 00:17:39,560 >> Pra, ju faleminderit shumë, por të rrinë këtu rreth e rrotull për vetëm një moment. 390 00:17:39,560 --> 00:17:42,860 Ne tani duhet një tjetër vullnetar, në qoftë se ne mund të, 391 00:17:42,860 --> 00:17:46,830 që do të duhet të luajnë rolin of-- Është vetëm njerëzit në orkestër 392 00:17:46,830 --> 00:17:47,355 tani. 393 00:17:47,355 --> 00:17:47,980 Si? Për OK. 394 00:17:47,980 --> 00:17:48,480 Të drejtë këtu. 395 00:17:48,480 --> 00:17:49,180 Eja up. 396 00:17:49,180 --> 00:17:49,955 Si e keni emrin? 397 00:17:49,955 --> 00:17:50,922 >> STUDENT 2: [? Ivay. ?] 398 00:17:50,922 --> 00:17:51,796 DAVID J Malan: Na vjen keq? 399 00:17:51,796 --> 00:17:52,990 STUDENT 2: [? Ivay. ?] 400 00:17:52,990 --> 00:17:55,320 DAVID J Malan: Ethan, eja lart. 401 00:17:55,320 --> 00:17:55,820 Nuk ka? 402 00:17:55,820 --> 00:17:58,390 A e kam marrë atë gabim, madje edhe pasi ju tha atë dy herë? 403 00:17:58,390 --> 00:17:58,890 Eja up. 404 00:17:58,890 --> 00:18:00,030 Është e vështirë për të dëgjuar deri këtu. 405 00:18:00,030 --> 00:18:05,240 406 00:18:05,240 --> 00:18:05,740 OK. 407 00:18:05,740 --> 00:18:07,190 Dhe unë jam i keq, çfarë është emri juaj? 408 00:18:07,190 --> 00:18:07,680 >> STUDENT 2: [? Ivay. ?] 409 00:18:07,680 --> 00:18:08,790 >> [? DAVID J Malan: Ivay. ?] OK. 410 00:18:08,790 --> 00:18:10,430 Tani për tani, në qoftë se ju nuk e bëni Mendja, ju jeni getString. 411 00:18:10,430 --> 00:18:11,013 >> STUDENT 2: OK. 412 00:18:11,013 --> 00:18:11,797 Ftohtë. 413 00:18:11,797 --> 00:18:14,630 DAVID J Malan: Pra, nëse ju do të donte të qëndrojë këtu për vetëm një moment, 414 00:18:14,630 --> 00:18:17,100 le të marrin një vështrim në një pak Programi më komplekse, që 415 00:18:17,100 --> 00:18:18,670 tani ka tre rreshta të kodit. 416 00:18:18,670 --> 00:18:24,080 Pra, ne kemi, një, emrin tuaj duke përdorur printf; dy, një thirrje për getString, 417 00:18:24,080 --> 00:18:28,060 e ndjekur nga një detyrë në një ndryshueshme quajtur, string s, ose i quajtur s; 418 00:18:28,060 --> 00:18:31,260 dhe pastaj një tjetër thirrje për të, printf, por këtë herë me dy inpute. 419 00:18:31,260 --> 00:18:33,646 >> Shtet kështu që ne kemi bërë tashmë emri juaj, ose më mirë, ne kemi 420 00:18:33,646 --> 00:18:34,770 bërë tashmë një telefonatë printf. 421 00:18:34,770 --> 00:18:38,960 Kështu që unë jam duke shkuar për të shkruar, Shteti emrin tuaj. 422 00:18:38,960 --> 00:18:42,089 Dhe kështu, çfarë unë jam duke shkuar për kalojë, printf, në vetëm një moment, 423 00:18:42,089 --> 00:18:43,005 është mjaft e thjesht, kjo. 424 00:18:43,005 --> 00:18:47,760 Pra, nëse ju doni të shkoni përpara dhe të tërheqë këtë në ekran, që është input tuaj tani. 425 00:18:47,760 --> 00:18:48,260 Dakord. 426 00:18:48,260 --> 00:18:51,160 Dhe të harrojmë varg, ne tani kemi linjën tonë të kodit këtu. 427 00:18:51,160 --> 00:18:54,470 Pra në, getString, ne kemi nevojë që në fakt të thirrur, getString. 428 00:18:54,470 --> 00:18:57,920 Pra, qëllimi juaj në jetë është që të ecin vetëm jashtë në orkestër, në qoftë se ju mund të, 429 00:18:57,920 --> 00:18:58,980 dhe për të marrë emrin e dikujt. 430 00:18:58,980 --> 00:19:00,860 Por le të ju jap diçka për të vënë atë në. 431 00:19:00,860 --> 00:19:02,908 Nëse ju doni të, të shkojnë përpara dhe për të marrë një varg, 432 00:19:02,908 --> 00:19:05,241 të marrë emrin e dikujt në atë copë letër, në qoftë se ju mund të. 433 00:19:05,241 --> 00:19:12,940 434 00:19:12,940 --> 00:19:13,530 >> Dakord. 435 00:19:13,530 --> 00:19:15,250 Dhe ne do të shohim, në vetëm një moment, emri i të cilit ne jemi duke marrë. 436 00:19:15,250 --> 00:19:17,630 Ndërkohë, ajo që unë jam duke shkuar për kanë gati, është një pjesë bosh 437 00:19:17,630 --> 00:19:21,340 e letrës, në të cilën, unë jam duke shkuar për të ruajtur çfarëdo vlerë atë 438 00:19:21,340 --> 00:19:25,752 është që getString po kthehet në mua, Unë, duke qenë një variabël string quajtur, s. 439 00:19:25,752 --> 00:19:26,252 Dakord. 440 00:19:26,252 --> 00:19:27,293 Pra, çfarë ke ti këtu? 441 00:19:27,293 --> 00:19:27,950 Nik. 442 00:19:27,950 --> 00:19:28,450 Dakord. 443 00:19:28,450 --> 00:19:30,910 Pra, ne kemi emrin Nik këtu. 444 00:19:30,910 --> 00:19:33,750 Pra, kjo është ajo fjalë për fjalë ka qenë i kthyer 445 00:19:33,750 --> 00:19:35,810 për mua, kështu që të flasin, nga getString. 446 00:19:35,810 --> 00:19:38,720 >> Unë, tani, jam duke shkuar për ekzekutuar anën e majte 447 00:19:38,720 --> 00:19:43,440 e kësaj shprehje, ku unë thjesht kopje poshtë, për qëllime të sotme, Nik. 448 00:19:43,440 --> 00:19:46,470 Deri tani, unë kam një ndryshore quajtur, s, ruajtjen emrin Nik-së. 449 00:19:46,470 --> 00:19:49,520 Unë e kam dorëzuar tashmë në printf, një argument i mëparshëm. 450 00:19:49,520 --> 00:19:52,800 Por në linjë tonë të tretë dhe të fundit të Kodi, unë në fakt duhet të printf dorë 451 00:19:52,800 --> 00:19:58,500 diçka different-- pak "hello,% s", backslash n. 452 00:19:58,500 --> 00:20:01,510 >> Dhe kështu vija e fundit unë jam duke shkuar për send-- gjëja e fundit unë jam 453 00:20:01,510 --> 00:20:03,060 duke shkuar për të shkruar tani, është kjo. 454 00:20:03,060 --> 00:20:06,310 Pra, dy rreshta të kodit, ose më tepër rreshtin e fundit të kodit, 455 00:20:06,310 --> 00:20:10,690 bën thirrje për dy inputs-- një, kjo, dhe dy, kjo. 456 00:20:10,690 --> 00:20:13,330 Pra, nëse funksioni ynë printf tani mund të marrin këto si input, 457 00:20:13,330 --> 00:20:16,000 më lejoni të qartë në ekran për ju. 458 00:20:16,000 --> 00:20:17,250 Në fakt jo, ju mund të shkoni përpara. 459 00:20:17,250 --> 00:20:19,333 Ne do të lënë atë, pasi kjo është në të njëjtin program. 460 00:20:19,333 --> 00:20:21,760 461 00:20:21,760 --> 00:20:27,380 Ne duhet të shohim, përshëndetje, Nik. 462 00:20:27,380 --> 00:20:27,880 Dakord. 463 00:20:27,880 --> 00:20:29,670 Pra, kjo ishte mjaft hoops të kërcejnë përmes, vetëm 464 00:20:29,670 --> 00:20:31,620 për të shkruar, shteti juaj emrin, dhe, përshëndetje, Nik. 465 00:20:31,620 --> 00:20:37,210 Por kjo ide e thjeshtë e mesazhit kalimit, e input kalimit dhe marrjen e prodhimit, 466 00:20:37,210 --> 00:20:40,430 është pikërisht modeli që ne do të kemi edhe për funksionet më komplekse. 467 00:20:40,430 --> 00:20:41,804 Pra, thank you so much për ju të dy. 468 00:20:41,804 --> 00:20:43,730 Ne kemi një stres bukur top këtu për ju. 469 00:20:43,730 --> 00:20:48,890 Dhe ju falënderoj për getString tonë dhe vullnetarët printf njësoj. 470 00:20:48,890 --> 00:20:49,551 Falemnderit. 471 00:20:49,551 --> 00:20:50,050 Dakord. 472 00:20:50,050 --> 00:20:50,966 Faleminderit për ju të dy. 473 00:20:50,966 --> 00:20:56,640 474 00:20:56,640 --> 00:21:00,430 >> Pra, ne kemi qenë duke folur për deri më tani, kryesisht për vargjet. 475 00:21:00,430 --> 00:21:06,550 Dhe kjo rezulton se C në fakt mund të kuptoj disa lloje të ndryshme të të dhënave. 476 00:21:06,550 --> 00:21:08,860 Në fakt, le të marrin një sy në këto këtu. 477 00:21:08,860 --> 00:21:12,490 Pra C, dhe shumë gjuhë, kuptojnë gjërat quajtur chars. 478 00:21:12,490 --> 00:21:16,852 Një char është përgjithësisht një bajt vetme, ose tetë bit. 479 00:21:16,852 --> 00:21:19,810 Dhe kjo paraqet një karakter të vetëm, si germa a, ose kapitalit 480 00:21:19,810 --> 00:21:21,990 Një letër, ose me shkronja të vogla A, ose një pikë thirrje, 481 00:21:21,990 --> 00:21:25,440 ose çdo karakter që ju mund të shtypni në tastierë tuaj, dhe ndonjëherë edhe më shumë. 482 00:21:25,440 --> 00:21:26,795 Ne gjithashtu ndodh të shohim gjithandej. 483 00:21:26,795 --> 00:21:31,160 Një noton është, në përgjithësi, një 32-bit vlera, ose katër bytes 484 00:21:31,160 --> 00:21:33,660 sepse përsëri, një bajt është tetë bit. 485 00:21:33,660 --> 00:21:36,675 >> Pra, një noton është një vlerë lundrues pikë, diçka me një pikë dhjetore. 486 00:21:36,675 --> 00:21:38,550 Dhe me të vërtetë, kjo është ajo filmi ishte duke folur 487 00:21:38,550 --> 00:21:42,240 kur ata folën rreth lundrues Vlerat pikë, disa numër të caktuar të bit 488 00:21:42,240 --> 00:21:43,940 duke u përdorur për të përfaqësojnë një numër të vërtetë. 489 00:21:43,940 --> 00:21:45,740 Por ka edhe gjëra të quajtur dyshe. 490 00:21:45,740 --> 00:21:47,860 Këto ekzistojnë në Java, në qoftë se ju keni marrë APCs, 491 00:21:47,860 --> 00:21:51,540 dhe një të dyfishtë, si emri fatmirësisht sugjeron, është dy herë më e madhe sa një noton. 492 00:21:51,540 --> 00:21:54,540 Është ende një numër i vërtetë, ajo vetëm ka më shumë bit 493 00:21:54,540 --> 00:21:58,390 me të cilin do të jetë gjithnjë e më të saktë, apo për të ruajtur një numër edhe më të mëdha. 494 00:21:58,390 --> 00:21:58,890 int është e lehtë. 495 00:21:58,890 --> 00:22:00,181 Ne biseduam në lidhje me atë herë të fundit. 496 00:22:00,181 --> 00:22:01,160 Kjo është vetëm një numër të plotë. 497 00:22:01,160 --> 00:22:03,980 Dhe kjo është në përgjithësi 32 bit, ose katër bytes. 498 00:22:03,980 --> 00:22:07,850 >> Dhe kështu, në qoftë se ju keni, le të shohim tani, 32 bits-- dhe ne e bëmë këtë në javë 0, 499 00:22:07,850 --> 00:22:10,820 ndonjëherë kështu briefly-- nëse keni 32 bit, çfarë është më e madhe 500 00:22:10,820 --> 00:22:13,580 Numri ju mund të përfaqësojë si një numër i plotë? 501 00:22:13,580 --> 00:22:16,080 Japë ose të marrë? 502 00:22:16,080 --> 00:22:18,380 Është si 4 miliardë, dhe kjo është vetëm në qoftë se ne jemi 503 00:22:18,380 --> 00:22:20,690 përfaqëson numra pozitiv vetëm. 504 00:22:20,690 --> 00:22:23,930 Nëse keni 32 bit, dhe ju doni të paraqesin numrat negative, si dhe, 505 00:22:23,930 --> 00:22:27,100 varg juaj është, në thelb, negative 2 miliard deri pozitiv 2 miliard. 506 00:22:27,100 --> 00:22:29,250 Por në përgjithësi, ne do të fillojmë në 0 shkojnë deri në 4 miliardë. 507 00:22:29,250 --> 00:22:32,400 >> Ju nuk duhet të dini saktësisht, por ne mund të shohim këtë, në fakt, në qoftë se unë vetëm 508 00:22:32,400 --> 00:22:36,400 hapur një makinë llogaritëse të vogël, këtu. 509 00:22:36,400 --> 00:22:41,070 Unë mund të bëj 2 e 32, dhe kjo është pikërisht se si i madh, 510 00:22:41,070 --> 00:22:43,190 sa vlera shumë ju mund të përfaqësojnë, me 32 bit. 511 00:22:43,190 --> 00:22:44,442 Dhe kjo është afërsisht 4 miliardë. 512 00:22:44,442 --> 00:22:46,900 Pra, ne do të vazhdojmë të shohim se numri në disa vende të ndryshme. 513 00:22:46,900 --> 00:22:48,890 Por në qoftë se keni nevojë për më shumë Numrat se kaq, 514 00:22:48,890 --> 00:22:51,670 rezulton se ka diçka që quhet një kohë të gjatë të gjatë. 515 00:22:51,670 --> 00:22:54,005 Dhe një kohë të gjatë të gjatë është në përgjithësi 64 bit, e cila 516 00:22:54,005 --> 00:22:56,380 do të thotë se është një urdhër të magnitudë edhe më të mëdha se sa një int. 517 00:22:56,380 --> 00:22:59,510 >> Kështu që unë nuk mund të shpallë më i madh numër që ju mund të përfaqësojë, 518 00:22:59,510 --> 00:23:01,340 por kjo është dukshëm më e madhe. 519 00:23:01,340 --> 00:23:05,190 Tani si një mënjanë, historikisht, nëse një int është 32 bit, 520 00:23:05,190 --> 00:23:12,780 dhe një kohë të gjatë të gjatë është 64 bit, si madh është një i gjatë, jo një kohë të gjatë kohë të gjatë? 521 00:23:12,780 --> 00:23:16,500 522 00:23:16,500 --> 00:23:20,330 Ju do të mendoni se është më shumë se një int por ndoshta më pak i gjatë se një kohë të gjatë të gjatë, 523 00:23:20,330 --> 00:23:21,400 por në fakt ajo varet. 524 00:23:21,400 --> 00:23:23,400 >> Dhe kështu kjo rezulton një e frustrimet shumë, 525 00:23:23,400 --> 00:23:26,830 me shkrim kodin në sisteme të caktuara, është se jo të gjitha këto lloje të të dhënave 526 00:23:26,830 --> 00:23:28,440 kanë vlera të paracaktuara. 527 00:23:28,440 --> 00:23:29,771 Ndonjëherë është e këtë shumë bit. 528 00:23:29,771 --> 00:23:31,020 Ndonjëherë kjo është se copa shumë. 529 00:23:31,020 --> 00:23:32,750 Kështu që ju në të vërtetë duhet të dini, ndonjëherë, çfarë hardware 530 00:23:32,750 --> 00:23:34,083 ju jeni drejtimin e software tuaj në. 531 00:23:34,083 --> 00:23:36,960 Fatmirësisht, gjuhë të tjera dhe lloje të tjera të të dhënave që tani ekzistojnë, 532 00:23:36,960 --> 00:23:38,400 lejojë që të jenë më të saktë. 533 00:23:38,400 --> 00:23:41,220 E pra, ne pamë varg, dhe pamë bool, gjithashtu, 534 00:23:41,220 --> 00:23:43,960 por ajo rezulton ata vijnë vetëm me bibliotekën CS50. 535 00:23:43,960 --> 00:23:46,240 Pra, ata që nuk janë ndërtuar në C. Ata që në vend të kësaj, 536 00:23:46,240 --> 00:23:49,340 vijnë në këtë dosje të quajtur CS50.h, se ne do të përfundimisht 537 00:23:49,340 --> 00:23:51,831 zhvishem mbrapa shtresat e. 538 00:23:51,831 --> 00:23:53,830 Por tani për tani, ata janë vetëm lloje të tjera të të dhënave. 539 00:23:53,830 --> 00:23:57,060 Një bool është një e vërtetë apo e rreme, dhe një string është një sekuencë e karaktereve, 540 00:23:57,060 --> 00:23:57,970 si një fjalë. 541 00:23:57,970 --> 00:24:01,690 Tani printf, ne kemi parë, ka placeholders,% s është një. 542 00:24:01,690 --> 00:24:05,430 Dhe ju mund të jetë në gjendje, tani, konkludoj nga këta shembuj të tjerë, si 543 00:24:05,430 --> 00:24:07,720 ju mund të ketë një placeholder për lloje të ndryshme të të dhënave. 544 00:24:07,720 --> 00:24:11,150 Për shembull, të marrë me mend, në qoftë se ju donte për të shtypur nga një char të vetme duke përdorur 545 00:24:11,150 --> 00:24:15,270 printf, The placeholder është ndoshta% c. 546 00:24:15,270 --> 00:24:19,650 Dhe në qoftë se ju doni të shtypura nga një numër i plotë me placeholder,% i. 547 00:24:19,650 --> 00:24:25,150 % LLD është një vlerë e gjatë gjatë dhjetore, por gjatë të gjatë, në mënyrë që harta për atë. 548 00:24:25,150 --> 00:24:28,640 Dhe pastaj% f për lundrues Vlera pikë ose për një të dyfishtë, 549 00:24:28,640 --> 00:24:31,270 kështu që nganjëherë ata janë të ri-përdoren në kontekste të ndryshme. 550 00:24:31,270 --> 00:24:33,350 Pra, ne do të shohim dhe të përdorni disa prej tyre me kalimin e kohës. 551 00:24:33,350 --> 00:24:36,420 Dhe printf dhe funksione të tjera edhe sekuenca shpëtuar mbështesin edhe të tjerë, 552 00:24:36,420 --> 00:24:38,080 dhe nganjëherë, këto janë të nevojshme. 553 00:24:38,080 --> 00:24:39,770 Pra, n backslash është një linjë e re. 554 00:24:39,770 --> 00:24:42,886 Backslash t, bën askujt duan të marrin një goditje me thikë? 555 00:24:42,886 --> 00:24:43,760 AUDIENCA ANËTAR: Tab. 556 00:24:43,760 --> 00:24:44,551 DAVID J Malan: Tab. 557 00:24:44,551 --> 00:24:46,810 Pra, nëse ju doni të vërtetë për të shtypur nga një skedë, nuk 558 00:24:46,810 --> 00:24:49,940 një numër të caktuar të hapësirave, por një aktuale tab karakter, ju nuk e goditi tuaj, 559 00:24:49,940 --> 00:24:53,490 tab, kyç në tastierë, në përgjithësi, në të vërtetë ju bëni backslash t. 560 00:24:53,490 --> 00:24:57,750 Quote backslash dyfishtë, pse unë do të ndonjëherë të dëshironi këtë? 561 00:24:57,750 --> 00:24:58,250 E drejtë? 562 00:24:58,250 --> 00:25:00,417 Pse nuk mundem të vetëm një lloj të japin kuotën e dyfishtë në tastierën e mia? 563 00:25:00,417 --> 00:25:02,124 AUDIENCA ANËTAR: Sepse, përndryshe, është e 564 00:25:02,124 --> 00:25:04,830 do të mendoj se është fundi i pëlqen të shtypura tuaj [? teksti. ?] 565 00:25:04,830 --> 00:25:05,420 >> DAVID J Malan: Pikërisht. 566 00:25:05,420 --> 00:25:07,211 Mbani mend, me tona Shembuj printf, kur ne 567 00:25:07,211 --> 00:25:10,075 po kalonin të printf në të dhëna, në të majtë të atij string input 568 00:25:10,075 --> 00:25:12,950 dhe në të djathtë të atij të dhëna pranverë, sigurisht, ishte një kuotë të dyfishtë. 569 00:25:12,950 --> 00:25:16,270 Në qoftë se input juaj ka një të dyfishtë të japin kuotën e në mes të kësaj, 570 00:25:16,270 --> 00:25:18,920 kompjuteri fuqi potencialisht merrni hutuar, si për të, 571 00:25:18,920 --> 00:25:20,760 e bën këtë citim të dyfishtë takojnë në mes? 572 00:25:20,760 --> 00:25:22,150 A do të përkasin me atë të majtë? 573 00:25:22,150 --> 00:25:23,566 A do të takojnë me një të drejtë? 574 00:25:23,566 --> 00:25:26,780 Dhe kështu, në qoftë se ju doni të bëni atë super i qartë, ju bëni backslash kuotë të dyfishtë, 575 00:25:26,780 --> 00:25:30,480 kështu që është e shpëtoi, kështu që të flasin, dhe kjo nuk është e lidhi për diçka tjetër. 576 00:25:30,480 --> 00:25:34,400 Dhe ka disa të tjerë këtu, r backslash, kuotat e vetme, 0, 577 00:25:34,400 --> 00:25:36,510 që ne ta shohim me kalimin e kohës, si edhe. 578 00:25:36,510 --> 00:25:37,760 Dhe tani, çfarë lidhje funksionet? 579 00:25:37,760 --> 00:25:41,630 >> Pra, veprimet që ne mund të marrë deri tani në këtë gjuhë, C, mirë, ne kemi parë, 580 00:25:41,630 --> 00:25:44,320 printf, natyrisht, dhe të gjithë të tjerët në ekran, 581 00:25:44,320 --> 00:25:47,140 këtu, që ne do të përdorim për Sigurisht e disa vetëm javët e para, 582 00:25:47,140 --> 00:25:48,485 të vijë kur bibliotekën CS50. 583 00:25:48,485 --> 00:25:51,850 Dhe ata e bëjnë atë shumë më të lehtë, në C, në fakt të marrë të dhëna përdoruesi. 584 00:25:51,850 --> 00:25:54,200 Ajo rezulton se në C, dhe sinqerisht në disa gjuhëve, 585 00:25:54,200 --> 00:25:57,450 kjo është një dhimbje e vërtetë në qafë për të bërë diçka e thjeshtë, si të menjëhershëm të përdoruesit 586 00:25:57,450 --> 00:26:01,310 për tastierë, për kontributin e tij ose të saj. 587 00:26:01,310 --> 00:26:03,240 Dhe kështu këto funksione bëjë më të lehtë. 588 00:26:03,240 --> 00:26:05,472 >> Dhe ajo gjithashtu ka gabim kontrolluar të gjithë, 589 00:26:05,472 --> 00:26:07,180 kështu që, kur t'ju kujtojnë të mërkurën, ne 590 00:26:07,180 --> 00:26:09,740 panë, rigjykuar, paralajmërim, kur unë nuk bashkëpunojnë, 591 00:26:09,740 --> 00:26:11,700 dhe unë shtypur një fjalë, në vend të një numri? 592 00:26:11,700 --> 00:26:15,402 Ne e kemi bërë punën e rëndë në fillim në për të siguruar përdorues bashkëpunon. 593 00:26:15,402 --> 00:26:17,860 Por këto janë vetëm të trajnimit rrota që ne do të përfundimisht, 594 00:26:17,860 --> 00:26:19,640 dhe shpejt, të marrë off. 595 00:26:19,640 --> 00:26:22,630 >> Pra, për radhitje, pastaj, le të marrin një vështrim të shpejtë, 596 00:26:22,630 --> 00:26:26,620 ashtu si ne e bëmë me Scratch, në disa ndërton kanonike në C. 597 00:26:26,620 --> 00:26:28,580 Kjo ka për qëllim të, lloj e, të jetë një turne shakullinë, 598 00:26:28,580 --> 00:26:30,990 vetëm kështu që ju keni një referencë dhe që e keni parë gjëra në fillim. 599 00:26:30,990 --> 00:26:34,100 Por atëherë ne do të shikojmë coding aktuale përdorin disa prej këtyre blloqeve të ndërtimit. 600 00:26:34,100 --> 00:26:36,710 Aq shumë si në Scratch, kur ne kishim deklarata pëlqen, 601 00:26:36,710 --> 00:26:41,570 thonë ose të presë, në C, ne kemi funksionon si edhe, si printf. 602 00:26:41,570 --> 00:26:45,350 >> Në qoftë se ne duam të shprehim një kusht në C, është e ngjashme, në shpirt, 603 00:26:45,350 --> 00:26:47,840 për atë pjesë mister që dukej si kjo në Scratch. 604 00:26:47,840 --> 00:26:49,850 Por në vend të kësaj, ne fjalë për fjalë vetëm shkruaj, nëse. 605 00:26:49,850 --> 00:26:51,830 Dhe pastaj, në kllapa, ne kemi vënë një kusht, 606 00:26:51,830 --> 00:26:54,807 ku se gjendja është ajo që ne do të telefononi, përsëri, një shprehje Boolean. 607 00:26:54,807 --> 00:26:56,390 Dhe përsëri, kjo është lloj i pseudokod. 608 00:26:56,390 --> 00:26:58,830 Dhe, në fakt, // është një koment. 609 00:26:58,830 --> 00:27:00,550 Kjo është vetëm fjalë angleze për veten time. 610 00:27:00,550 --> 00:27:03,000 Por kjo është e përgjithshme Struktura e një, nëse, kusht. 611 00:27:03,000 --> 00:27:05,220 Por ne do të shohim konkrete Shembujt në një moment të vetëm. 612 00:27:05,220 --> 00:27:07,960 >> Në qoftë se ju dëshironi të keni një dy rrugë pirun në rrugë, 613 00:27:07,960 --> 00:27:11,740 ashtu si ne e bëmë me vullnetarë tonë mbi E mërkurë, ju mund të ketë një, tjetër rast. 614 00:27:11,740 --> 00:27:16,020 Dhe në qoftë se ju dëshironi që të ketë një të tretë dhe gjendja e fundit, ose situata parazgjedhur, 615 00:27:16,020 --> 00:27:19,006 ju mund të keni vetëm një bllok tjetër, aty. 616 00:27:19,006 --> 00:27:21,880 Dhe në mënyrë të ngjashme, me shprehje boolean, ju mund të, dhe, ato së bashku. 617 00:27:21,880 --> 00:27:24,296 Dhe ne pamë të mërkurën, se kjo nuk është një simbol i vetëm, 618 00:27:24,296 --> 00:27:28,220 është dy, për arsye të nivelit më të ulët se ne përfundimisht do të shohim dhe të luajnë me të. 619 00:27:28,220 --> 00:27:30,410 Ose-ing gjëra së bashku është 2 bare vertikale. 620 00:27:30,410 --> 00:27:32,240 Në një tastierë amerikane, kjo në përgjithësi është një kyç 621 00:27:32,240 --> 00:27:35,730 me kyç Shift mësipërm tuaj Enter ose Return kyç. 622 00:27:35,730 --> 00:27:38,620 >> Pastaj ka këto gjëra që ne do të përdorim ndoshta një herë apo dy herë. 623 00:27:38,620 --> 00:27:42,570 Ata janë funksionalisht ekuivalente me çfarë mund të bëni me një, në qoftë se, në qoftë se tjetër, 624 00:27:42,570 --> 00:27:44,950 tjetër në qoftë se tjetër, ndërtimin, por ata janë quajtur një kaloni. 625 00:27:44,950 --> 00:27:48,020 Ata duken shumë të ndryshme, por ne do të shohim në disa prej kodin tonë të shpërndarjes, 626 00:27:48,020 --> 00:27:51,890 për një grup të ardhmen e problemeve, ka shumë të ngjarë, se kjo është nganjëherë vetëm një prettier 627 00:27:51,890 --> 00:27:54,060 mënyrë për të shprehur një tërësi bandë e kushteve, 628 00:27:54,060 --> 00:27:57,590 pa pasur një shumë të formatimin e teksteve kaçurrel dhe një shumë e kllapa dhe vulë. 629 00:27:57,590 --> 00:28:01,910 Por ata na japin më pushtet se ne kemi tashmë. 630 00:28:01,910 --> 00:28:02,550 Dhe tani sythe. 631 00:28:02,550 --> 00:28:05,020 Dhe kjo, ne do të shikojmë në një pak më ngadalë. 632 00:28:05,020 --> 00:28:08,470 Por atëherë, ne do të fillojnë të përdorin këto, veçanërisht për ata që tashmë të njohur. 633 00:28:08,470 --> 00:28:13,830 Kjo është rruga kanonik, nëse tepër mënyrë misterioze, për të shkruar një lak në C. 634 00:28:13,830 --> 00:28:15,896 >> Tani një lak në Scratch ishte shumë i thjeshtë. 635 00:28:15,896 --> 00:28:17,020 Ju keni një, përgjithmonë, bllok. 636 00:28:17,020 --> 00:28:19,760 Ju keni një, të përsëritur, bllok me vetëm një numër që ju duhet të shkruani në. 637 00:28:19,760 --> 00:28:22,220 Dhe me, për lak, ju mund të zbatojë të dyja këto ide, 638 00:28:22,220 --> 00:28:23,595 por kjo është pak më shumë teknik. 639 00:28:23,595 --> 00:28:25,994 Por sinqerisht, është edhe relativisht e thjeshtë. 640 00:28:25,994 --> 00:28:28,160 Pasi ju e dini rendin e operacionet, ju fjalë për fjalë 641 00:28:28,160 --> 00:28:30,910 janë vetëm do të vihet në prizë vlerat dhe thoni kompjuter çfarë duhet të bëjë. 642 00:28:30,910 --> 00:28:32,800 Kështu që këtu është një shembull. 643 00:28:32,800 --> 00:28:38,040 Kjo është një lak që, mjaft thjesht, numëron nga një numër deri 644 00:28:38,040 --> 00:28:40,187 përmes një tjetër. 645 00:28:40,187 --> 00:28:42,020 Dhe vetëm nga glancing në atë, edhe në qoftë se ju keni 646 00:28:42,020 --> 00:28:44,660 asnjë përvojë të mëparshme me kjo gjuhë, çfarë numri 647 00:28:44,660 --> 00:28:46,920 e bën ndoshta të fillojë numërimi në? 648 00:28:46,920 --> 00:28:47,730 OK, 0. 649 00:28:47,730 --> 00:28:50,240 Dhe unë jam guessing se kjo është për shkak se ju të shihni se ka një int dhe një unë, 650 00:28:50,240 --> 00:28:51,073 i cili është një ndryshueshme. 651 00:28:51,073 --> 00:28:52,390 Është initialized në 0. 652 00:28:52,390 --> 00:28:55,670 >> Dhe pastaj më vonë, ajo duket si ne jemi duke kaluar printf, një vlerë. 653 00:28:55,670 --> 00:28:58,000 Dhe, në fakt, unë bëra një typo vogël këtu. 654 00:28:58,000 --> 00:28:59,850 Por që është fikse lehtë. 655 00:28:59,850 --> 00:29:02,390 Më lejoni të shtoj në, unë këtu. 656 00:29:02,390 --> 00:29:06,150 Ne tani e kemi printf qenien kaluar atë vlerë placeholder. 657 00:29:06,150 --> 00:29:08,299 Dhe çfarë do të të numëruar deri me? 658 00:29:08,299 --> 00:29:08,840 Audienca: 50. 659 00:29:08,840 --> 00:29:09,340 50. 660 00:29:09,340 --> 00:29:10,160 49. 661 00:29:10,160 --> 00:29:10,910 DAVID J Malan: 49. 662 00:29:10,910 --> 00:29:13,340 Pra 50, në shikim të parë, duket e drejtë. 663 00:29:13,340 --> 00:29:16,990 Por se, ajo rezulton, do të jetë gjendja jonë që ne të mbajtur kontrollin. 664 00:29:16,990 --> 00:29:21,740 Dhe ne jemi duke shkuar për të ndaluar një herë Unë nuk është më pak se 50. 665 00:29:21,740 --> 00:29:24,920 Pra kjo loop, anasjelltas, duhet ekzekutuar, për aq kohë sa unë është më pak se 50. 666 00:29:24,920 --> 00:29:28,891 Por, sa më shpejt që ajo të bëhet 50, apo 51, apo më keq, ajo duhet të ndalet automatikisht. 667 00:29:28,891 --> 00:29:29,390 Dakord. 668 00:29:29,390 --> 00:29:31,200 >> Pra, çfarë në të vërtetë ndodh këtu? 669 00:29:31,200 --> 00:29:33,160 Pra, kjo është e rendit të Operacionet për një lak. 670 00:29:33,160 --> 00:29:35,440 Një, ju keni ashtuquajtura initialization. 671 00:29:35,440 --> 00:29:38,264 Kjo copë e verdhë theksuar e kodit të ekzekutohet për herë të parë, 672 00:29:38,264 --> 00:29:40,930 dhe ka efektin që, per E mërkurë, ju ndoshta imagjinoni. 673 00:29:40,930 --> 00:29:45,500 Ajo krijon një variabël i kërkova dhe atë dyqane në atë variabël vlera 0. 674 00:29:45,500 --> 00:29:47,560 Pra, i është 0 në këtë pikë në histori. 675 00:29:47,560 --> 00:29:49,680 >> Gjë tjetër që ndodh në këtë ndërtimin, 676 00:29:49,680 --> 00:29:51,540 është se gjendja merr kontrolluar. 677 00:29:51,540 --> 00:29:54,325 Kështu që unë kontrolloni menjëherë, është i më pak se 50? 678 00:29:54,325 --> 00:29:57,700 Dhe sigurisht, përgjigje tani për tani është, me siguri, po. 679 00:29:57,700 --> 00:30:00,710 Po, sepse unë është 0, dhe kjo është me siguri më pak se 50. 680 00:30:00,710 --> 00:30:03,866 Atëherë çfarë ndodh, është se kjo linjë e kodit merr ekzekutohet. 681 00:30:03,866 --> 00:30:06,740 Dhe në fakt, në qoftë se ka të shumta rreshta të kodit në ato formatimin e teksteve kaçurrel, 682 00:30:06,740 --> 00:30:09,020 ata të gjithë të ekzekutuar njëri pas tjetrit. 683 00:30:09,020 --> 00:30:11,450 >> Dhe në fakt këtu, është me sa duket, të shtypura nga 684 00:30:11,450 --> 00:30:15,365 numri i, e cila do të jetë 0, dhe pastaj 1, dhe pastaj 2. 685 00:30:15,365 --> 00:30:15,865 Por, pse? 686 00:30:15,865 --> 00:30:17,410 Pse e bën atë të incremented? 687 00:30:17,410 --> 00:30:20,680 E pra, gjëja e katërt që ndodh është se këtë sintaksë 688 00:30:20,680 --> 00:30:22,610 merr ekzekutuar, pas pikëpresje. 689 00:30:22,610 --> 00:30:27,506 Unë ++ është një mënyrë stenografi për të thënë; të marrë vlerën e I, dhe shtoni 1 me të; 690 00:30:27,506 --> 00:30:30,380 dhe pastaj herën tjetër përreth, shtoni 1 të; dhe herën tjetër përreth, 691 00:30:30,380 --> 00:30:31,330 shtuar 1 për të. 692 00:30:31,330 --> 00:30:33,640 >> Pra, nëse ne do të mbajë, çfarë do të ndodhë 693 00:30:33,640 --> 00:30:35,890 tjetër është që unë nuk jam duke shkuar për nisja kam përsëri. 694 00:30:35,890 --> 00:30:38,290 Nëse unë mbajtur Initializing Unë në 0, ky shembull 695 00:30:38,290 --> 00:30:41,110 kurrë nuk do të përfundojë për shkak Unë do të mbërthyer në 0. 696 00:30:41,110 --> 00:30:43,870 Por ajo që do të ndodhë është se gjendja do të kontrollohen, 697 00:30:43,870 --> 00:30:54,280 linja e kodit do të ekzekutohet, Mbaj do të incremented, 698 00:30:54,280 --> 00:30:56,970 kusht do të kontrollohen, Kodi do të merrni ekzekutohet. 699 00:30:56,970 --> 00:30:59,790 Dhe kjo mbajtur çiklizmit përsëri, dhe përsëri, dhe përsëri, 700 00:30:59,790 --> 00:31:03,340 Deri sa unë ++ shkakton një vlerë prej 50. 701 00:31:03,340 --> 00:31:05,870 >> Kushti pastaj thotë: është 50 me pak se 50? 702 00:31:05,870 --> 00:31:09,360 Përgjigja, natyrisht, nuk është, dhe kështu tërë kodi ndalon ekzekutimin. 703 00:31:09,360 --> 00:31:13,020 Dhe në qoftë se ju keni më shumë kod në ekran poshtë, kjo është ajo që ndodh më pas. 704 00:31:13,020 --> 00:31:17,530 Ajo pops jashtë këtyre formatimin e teksteve kaçurrel dhe vazhdon për të shtypur më pas kësaj. 705 00:31:17,530 --> 00:31:20,470 >> Pra, një shaka tani, nga foks, që ju do të ndoshta tani e kuptojnë. 706 00:31:20,470 --> 00:31:30,810 707 00:31:30,810 --> 00:31:31,560 Është gjithmonë qesharake. 708 00:31:31,560 --> 00:31:34,110 Është si të nënqesh lloj i hapet, 709 00:31:34,110 --> 00:31:38,370 dhe pastaj ti e kupton se ju nuk duhet të të jetë duke qeshur me humor si kjo. 710 00:31:38,370 --> 00:31:41,160 Por ka disa takeaway këtu, pedagogjike, too. 711 00:31:41,160 --> 00:31:43,577 Pra, del se unë jam mungon një pjesë të sintaksës, 712 00:31:43,577 --> 00:31:45,410 ose Foks është zhdukur një copë sintaksë këtu. 713 00:31:45,410 --> 00:31:48,076 Çfarë është zhdukur, që ne kemi pasur në çdo shembull tjetër, deri më tani? 714 00:31:48,076 --> 00:31:51,599 715 00:31:51,599 --> 00:31:53,390 Kthimi, është atje, kështu që kjo është diçka tjetër, 716 00:31:53,390 --> 00:31:54,440 se ne do të kthehen në para se të gjatë. 717 00:31:54,440 --> 00:31:55,398 Çfarë është zhdukur, edhe pse? 718 00:31:55,398 --> 00:31:55,908 Po. 719 00:31:55,908 --> 00:31:58,150 >> AUDIENCA ANËTAR: The initialization e [e padëgjueshme]. 720 00:31:58,150 --> 00:31:58,470 >> DAVID J Malan: OK. 721 00:31:58,470 --> 00:31:58,980 Pra, vërtet. 722 00:31:58,980 --> 00:32:03,210 Pra, në fakt, kjo is-- pra, dhe numërimin inicializohet 723 00:32:03,210 --> 00:32:05,470 lart, ose më mirë, ka deklaruar deri më lart. 724 00:32:05,470 --> 00:32:06,960 Pra, kjo është një tjetër mënyrë për të bërë atë. 725 00:32:06,960 --> 00:32:08,685 Por jo në një linjë është i vlefshëm edhe pse. 726 00:32:08,685 --> 00:32:09,310 Si për këtu? 727 00:32:09,310 --> 00:32:10,196 >> AUDIENCA ANËTAR: A është formatimin e teksteve kaçurrel? 728 00:32:10,196 --> 00:32:10,640 >> DAVID J Malan: Po. 729 00:32:10,640 --> 00:32:12,080 Pra, formatimin e teksteve kaçurrel mungojnë. 730 00:32:12,080 --> 00:32:15,495 Por ky kod, dua të them, në kredi e tyre, është në fakt, sintaksore të vlefshme. 731 00:32:15,495 --> 00:32:17,610 Ajo rezulton, ju nuk e bëni nevojë për formatimin e teksteve kaçurrel 732 00:32:17,610 --> 00:32:21,691 në qoftë se ju keni vetëm një linjë të kodit që ju doni për të ekzekutuar brenda lak. 733 00:32:21,691 --> 00:32:24,190 Tani ne gjithmonë, në klasë dhe në të gjithë e kodit tonë të shpërndarjes, 734 00:32:24,190 --> 00:32:26,730 përfshijnë formatimin e teksteve kaçurrel gjithsesi, vetëm për hir të qartësisë së. 735 00:32:26,730 --> 00:32:29,010 Por e kuptojnë se në tekstet shkollore dhe shembuj në internet, 736 00:32:29,010 --> 00:32:31,300 ju shumë mirë mund të shihni kaçurrel formatimin e teksteve të humbur diku. 737 00:32:31,300 --> 00:32:34,850 Dhe kjo është në rregull, në qoftë se atë që ju kanë prerë dhe të destinuara 738 00:32:34,850 --> 00:32:38,650 është vetëm një linjë të vetme të kodit, dhe jo linjat e shumta të kodit, potencialisht. 739 00:32:38,650 --> 00:32:39,150 Dakord. 740 00:32:39,150 --> 00:32:44,500 Pra, lidhur me çështjen e pasaktësi, është një çështje e del nga shtrati, 741 00:32:44,500 --> 00:32:48,560 në kuptimin që, në mënyrë të ngjashme, nuk integers kanë kufij ndaj tyre 742 00:32:48,560 --> 00:32:49,970 ashtu si lundrues vlerat pikë? 743 00:32:49,970 --> 00:32:53,120 Në botë një pikë lundrues vlerat, ne mund të jetë vetëm aq i saktë, 744 00:32:53,120 --> 00:32:55,710 pas së cilës, nganjëherë gjëra të këqija mund të ndodhë, 745 00:32:55,710 --> 00:32:57,760 dhe programet tona mund të jetë buggy dhe gabim. 746 00:32:57,760 --> 00:33:00,050 Tani edhe me integers, ju mund të kandidojë në probleme. 747 00:33:00,050 --> 00:33:03,820 Tani një numër i plotë nuk ka një pikë dhjetore ose numra pas saj. 748 00:33:03,820 --> 00:33:07,130 Është vetëm një numër natyror, në mënyrë tipike. 749 00:33:07,130 --> 00:33:09,430 Pra, çfarë mund të shkojnë keq me një int? 750 00:33:09,430 --> 00:33:12,210 Në qoftë se unë jam duke përdorur një int për numërimin, çfarë mund të shkojnë keq? 751 00:33:12,210 --> 00:33:13,230 Duket një shumë të thjeshtë. 752 00:33:13,230 --> 00:33:13,873 Po. 753 00:33:13,873 --> 00:33:16,240 >> AUDIENCA ANËTAR: Nëse Numri i merr [e padëgjueshme] 754 00:33:16,240 --> 00:33:17,073 >> DAVID J Malan: Po. 755 00:33:17,073 --> 00:33:20,820 Çfarë nëse ju numërimin aq e lartë, që ju nuk mund të shprehin atë numër me të vërtetë i madh. 756 00:33:20,820 --> 00:33:21,320 E drejtë? 757 00:33:21,320 --> 00:33:23,910 Në një moment, ju do të jeni të tejkalojnë kufijtë 758 00:33:23,910 --> 00:33:27,077 me një vlerë 32-bit ose një vlerë 64-bit. 759 00:33:27,077 --> 00:33:29,410 Tani përsëri, unë nuk jam i sigurt se si të shpallë një vlerë 64-bit, 760 00:33:29,410 --> 00:33:32,230 por unë e di se me një numër të plotë 32-bit, vlera më e madhe ajo mund të jetë, 761 00:33:32,230 --> 00:33:35,490 nëse kjo është vetëm pozitive Vlerat, është afërsisht 4 miliardë. 762 00:33:35,490 --> 00:33:39,000 Pra, nëse unë të përpiqet për të numëruar në 5 miliardë, diçka do të ndodhë. 763 00:33:39,000 --> 00:33:41,050 Por le të shohim se çfarë, në fakt, mund të ndodhë. 764 00:33:41,050 --> 00:33:44,570 Në botën e integer del nga shtrati, ku, në një kuptim, 765 00:33:44,570 --> 00:33:48,270 përmbytin kapacitetin e një numër i plotë, çfarë mund të ndodhë? 766 00:33:48,270 --> 00:33:51,190 >> Kështu që këtu është një numër binar, kjo është një rikthim në 0. 767 00:33:51,190 --> 00:33:54,630 Kjo është e gjitha 1-së, dhe placeholders atje, janë kompetencat e 2, 768 00:33:54,630 --> 00:33:55,980 kështu që kjo është binar. 769 00:33:55,980 --> 00:33:59,416 Pra, këto janë 8, 1 bit në ekran. 770 00:33:59,416 --> 00:34:01,290 Dhe në qoftë se ju kujtohet apo ju shpejt të bëjë matematikë, 771 00:34:01,290 --> 00:34:06,074 çfarë vlere është duke u përfaqësuar këtu me këto tetë 1 bit? 772 00:34:06,074 --> 00:34:06,950 255. 773 00:34:06,950 --> 00:34:09,260 Dhe edhe në qoftë se ju nuk ishin mjaft të sigurt i math, ju mund të bëni atë. 774 00:34:09,260 --> 00:34:10,550 Ose ju mund vetëm lloj i arsyes nëpërmjet saj, 775 00:34:10,550 --> 00:34:12,633 prit një minutë, në qoftë se unë jam i që përfaqëson një vlerë 8 bit, 776 00:34:12,633 --> 00:34:17,750 dhe unë kam marrë 256 vlerat e mundshme, por e parë e cila është 0, 777 00:34:17,750 --> 00:34:19,909 Unë vetëm e di se më i madh do të jetë 255, 778 00:34:19,909 --> 00:34:21,510 dhe kjo është ajo që mund të jetë kjo një. 779 00:34:21,510 --> 00:34:26,060 >> Kështu që mendoj unë të përpiqet për të shtuar 1 për këtë vlerë. 780 00:34:26,060 --> 00:34:28,750 Çfarë do të bëni në klasën Shkolla kur duke shtuar një 1, dhe kjo 781 00:34:28,750 --> 00:34:31,139 nuk ka të vërtetë i aftë për shkak ju keni për të kryer 1? 782 00:34:31,139 --> 00:34:34,380 Çfarë është ky numër shkon të bëhet kur ju të shtoni 1? 783 00:34:34,380 --> 00:34:37,030 Ajo do të bëhet 0. 784 00:34:37,030 --> 00:34:37,530 E drejtë? 785 00:34:37,530 --> 00:34:41,139 Sepse në qoftë se keni pasur më bits-- dhe unë do të përpiqen për të, lloj, shkruani atë here-- 786 00:34:41,139 --> 00:34:44,710 nëse do të kishim më shumë bit, ajo që ne mund të bëjë këtu është shtuar 1, 787 00:34:44,710 --> 00:34:47,370 dhe pastaj ne do të merrni këtë. 788 00:34:47,370 --> 00:34:48,739 Uh. 789 00:34:48,739 --> 00:34:52,250 Ne do të kemi një 1 bit gjithë rrugës mbi këtu. 790 00:34:52,250 --> 00:34:55,530 >> Por në qoftë se kjo është një i caktuar vlera, kjo është vetëm 8 bit, 791 00:34:55,530 --> 00:34:57,480 dhe kjo është e para-përcaktuar nga kompjuteri, 792 00:34:57,480 --> 00:34:59,370 se 1 është efektivisht nuk është atje. 793 00:34:59,370 --> 00:35:00,980 Ajo thjesht lloj i bie nga një shkëmb. 794 00:35:00,980 --> 00:35:05,480 Dhe kështu që në qoftë se ju shtoni 1 në 255, çfarë vlerën e ju me sa duket të merrni? 795 00:35:05,480 --> 00:35:06,180 0. 796 00:35:06,180 --> 00:35:09,700 Dhe kështu numrat aksidentalisht dhe ndoshta, pa dashje, 797 00:35:09,700 --> 00:35:12,040 përfundojnë mbështjellës rreth si kjo. 798 00:35:12,040 --> 00:35:14,079 Pra, çfarë mund të jetë implikimi i kësaj? 799 00:35:14,079 --> 00:35:15,620 E pra, ka disa gjëra të ndryshme. 800 00:35:15,620 --> 00:35:18,751 Pra, një, kjo do të përfundojë në kërkim si 0, pa dashje, 801 00:35:18,751 --> 00:35:20,750 por ju mund të lloj të shihni, edhe në botën e vërtetë, 802 00:35:20,750 --> 00:35:23,416 për mirë apo për keq, manifestime të kësaj ideje të një afati. 803 00:35:23,416 --> 00:35:26,630 Për shembull, ndonjë prej jush që kanë luajtur ndonjëherë Lego Star Wars, 804 00:35:26,630 --> 00:35:28,880 does anyone ndodhë që të dini numri maksimal i monedhave 805 00:35:28,880 --> 00:35:32,032 ju mund të mbledhë në Lego Star Wars? 806 00:35:32,032 --> 00:35:35,640 Merrni një mend të bazuar në Pyetjet kryesore e sotme. 807 00:35:35,640 --> 00:35:39,140 Kjo është më e madhe se 256 ose 255. 808 00:35:39,140 --> 00:35:40,330 Është e 4 miliardë. 809 00:35:40,330 --> 00:35:42,080 Pra, ajo rezulton, dhe ka disa people-- 810 00:35:42,080 --> 00:35:46,080 disa googling konfirmuar night-- fundit kanë marrë 4 miliardë monedha ari, 811 00:35:46,080 --> 00:35:47,730 apo gjësend, në Lego Star Wars. 812 00:35:47,730 --> 00:35:49,860 Edhe pse me sa duket, nuk ka një mënyrë për mashtrim të lojës, 813 00:35:49,860 --> 00:35:53,222 ka një bug apo tipar që ju lejon të vetëm rritet shumë dhe shumë e pikave. 814 00:35:53,222 --> 00:35:54,930 Por më e madhe të jetë e mundur Vlera, sipas 815 00:35:54,930 --> 00:35:58,360 në këtë ekran e shtënë e dikujt I gjendet online, është me të vërtetë, 4 miliardë. 816 00:35:58,360 --> 00:35:59,240 >> Tani pse është kjo? 817 00:35:59,240 --> 00:36:03,040 Është pikërisht 4 miliardë, ndoshta për shkak se dikush ka vendosur, 818 00:36:03,040 --> 00:36:05,500 i cili ishte shkruar këtë lojë, se ata mund të bëjnë 4 miliardë, 819 00:36:05,500 --> 00:36:07,340 diçka, diçka, diçka, si vlerën e kam vënë 820 00:36:07,340 --> 00:36:10,256 me kalkulator më herët, por kjo është vetëm një pastruese pak për njerëzit 821 00:36:10,256 --> 00:36:12,610 për të thënë numrin maksimal i coins-- apo studs, 822 00:36:12,610 --> 00:36:14,860 siç e quajnë ata, porsi që ju mund të mbledhë është 4 miliardë. 823 00:36:14,860 --> 00:36:16,290 Dhe kështu, pse është kjo? 824 00:36:16,290 --> 00:36:20,310 Sa është lojë Lego zbatimin counter 825 00:36:20,310 --> 00:36:23,420 që është mbajtja e të Numri i monedhave që ju keni? 826 00:36:23,420 --> 00:36:24,266 Ata janë duke përdorur atë? 827 00:36:24,266 --> 00:36:26,390 AUDIENCA ANËTAR: Ajo ndalon numërimi pas 4 miliardë. 828 00:36:26,390 --> 00:36:27,720 DAVID J Malan: Ajo ndalon numërimi pas 4 miliardë, 829 00:36:27,720 --> 00:36:29,525 që do të thotë ju mund të tregoj, si një programues, 830 00:36:29,525 --> 00:36:31,960 se ata janë ndoshta duke përdorur një numër i plotë 32 bit. 831 00:36:31,960 --> 00:36:35,380 Ashtu si programues fjalë për fjalë vetëm typed, int, në kodin e tij ose të saj, 832 00:36:35,380 --> 00:36:39,620 dhe kjo është lloji i variablit që ata janë duke përdorur për të ruajtur kodin dikujt. 833 00:36:39,620 --> 00:36:42,230 Kështu që nuk ka manifestime të tjera i këtyre llojeve të kufijve. 834 00:36:42,230 --> 00:36:45,063 >> Kështu që unë nuk kam luajtur këtë game-- dhe unë u lexuar deri në historinë 835 00:36:45,063 --> 00:36:48,470 për të konfirmuar si much-- por në Versioni origjinal i Qytetërimit, ku 836 00:36:48,470 --> 00:36:53,240 ju duket ndërveprojnë me njëri të tjera dhe mund të bësh luftën, ose të kem paqe, 837 00:36:53,240 --> 00:36:56,590 Gandi ishte menduar të jetë një nga personazhet më paqësore, si unë 838 00:36:56,590 --> 00:36:59,280 kuptojnë atë, në radhë të parë version i qytetërimit. 839 00:36:59,280 --> 00:37:03,250 Dhe në të vërtetë, në një shkallë nga 1 deri në 10, agresivitetin e tij ishte vetëm një 1. 840 00:37:03,250 --> 00:37:05,620 Pra, ndonjëherë në mënyrë të butë agresive, me sa duket. 841 00:37:05,620 --> 00:37:11,590 >> Por në një moment, ju mund të me sa duket instaluar demokracinë në gjeografi tuaj. 842 00:37:11,590 --> 00:37:14,900 Dhe në qoftë se ju të instaluar demokracinë në versionin tuaj të lojës, 843 00:37:14,900 --> 00:37:17,320 atëherë niveli juaj agresioni shkon poshtë. 844 00:37:17,320 --> 00:37:18,460 Kjo është një gjë e mirë. 845 00:37:18,460 --> 00:37:20,890 Njerëzit janë më të qetë me sa duket, në atë situatë. 846 00:37:20,890 --> 00:37:23,190 Por me sa duket, dikush e bëri nuk kanë një, nëse, kusht 847 00:37:23,190 --> 00:37:24,780 në versionin origjinal të kodit. 848 00:37:24,780 --> 00:37:30,650 >> Pra, niveli i Gandit agresion shkoi nga pozitiv 1, minus 2, në negativ 1, 849 00:37:30,650 --> 00:37:33,840 por loja nuk ka kuptojnë numrat negative. 850 00:37:33,840 --> 00:37:38,680 Pra, ajo që ndodhi ishte agresioni Gandit Niveli u nga 1, me 0, 1 deri negative, 851 00:37:38,680 --> 00:37:40,900 e cila kishte efektin e mbështjellës rreth për të qenë 852 00:37:40,900 --> 00:37:44,690 personazhi më agresive në lojë, me një vlerë prej 255, 853 00:37:44,690 --> 00:37:46,630 në një shkallë nga 1 deri në 10. 854 00:37:46,630 --> 00:37:49,887 Dhe që atëherë, ka pasur më shumë incarnations e kësaj loje, 855 00:37:49,887 --> 00:37:51,720 dhe ata kanë mbajtur atë si një lloj vezë Pashkëve, 856 00:37:51,720 --> 00:37:53,870 se Gandi është me sa duket aq tmerrësisht agresive. 857 00:37:53,870 --> 00:37:56,740 Por kjo ishte rezultat i një gabim programimi shumë e thjeshtë 858 00:37:56,740 --> 00:37:58,630 në këtë version shumë të hershme të lojës. 859 00:37:58,630 --> 00:38:02,860 >> Tani më shqetësuese, më shumë kohët e fundit, Boeing 787 860 00:38:02,860 --> 00:38:05,720 është dokumentuar si të paturit e një bug, jo lloji i pajisjes 861 00:38:05,720 --> 00:38:07,340 ju veçanërisht dëshironi të keni një bug. 862 00:38:07,340 --> 00:38:10,130 Dhe simptomat, që unë do të lexoj këtu, nga një artikull në internet, 863 00:38:10,130 --> 00:38:13,840 ishte ky, një model 787 aeroplan që është mundësuar vazhdimisht 864 00:38:13,840 --> 00:38:18,030 për 248 ditë mund të humbasin të gjithë alternating aktuale, AC, 865 00:38:18,030 --> 00:38:20,850 energjisë elektrike, për shkak të Njësitë e kontrollit gjenerator, 866 00:38:20,850 --> 00:38:23,330 GCUs, njëkohësisht duke shkuar në mënyrë të dështojnë-të sigurt. 867 00:38:23,330 --> 00:38:26,790 Pra, kjo ishte një paralajmërim të lëshuar kur u zbulua ky problem. 868 00:38:26,790 --> 00:38:28,750 Kjo gjendje është shkaktuar nga një software kundër, 869 00:38:28,750 --> 00:38:32,230 brendshme të GCUs, kështu një numër të plotë ose një variabël, 870 00:38:32,230 --> 00:38:36,850 që do të përmbytin pas 248 ditët e pushtetit të vazhdueshme. 871 00:38:36,850 --> 00:38:40,350 Boeing është në proces të zhvillimin e një upgrade software GCU se 872 00:38:40,350 --> 00:38:42,350 do të korrigjuar gjendjen pasigurt. 873 00:38:42,350 --> 00:38:44,226 >> Aq shumë si të raketave skenar, ku 874 00:38:44,226 --> 00:38:46,850 ata kishin një lloj të variable që ishte numëruar, dhe duke numëruar, 875 00:38:46,850 --> 00:38:50,720 dhe duke numëruar, por gradualisht tejmbushur kufijtë e aftësive të saj, 876 00:38:50,720 --> 00:38:54,890 në mënyrë të ngjashme bëri aeroplan mallkuar kanë një overflow ndryshueshme 877 00:38:54,890 --> 00:38:56,410 pas kohë të mjaftueshme të rrjedhshëm. 878 00:38:56,410 --> 00:38:59,240 Dhe kështu mënyra e gjuhë-in-faqe për të punuar rreth kësaj çështje 879 00:38:59,240 --> 00:39:04,400 është me të vërtetë, reboot, avioni juaj çdo 247 ditë, kështu që kujtesa merr fshihen 880 00:39:04,400 --> 00:39:06,100 dhe variabli shkon prapa në 0. 881 00:39:06,100 --> 00:39:09,410 Por e kuptojnë, kjo është një shumë mishërim i madh i programeve, 882 00:39:09,410 --> 00:39:14,070 por sidomos si ne dëgjojmë për Apple sistemet operative shkon në makina, 883 00:39:14,070 --> 00:39:18,030 dhe makina të vetë-ngarje nga Google, dhe çdo numër i incarnations të softuerit 884 00:39:18,030 --> 00:39:21,000 në jetën e përditshme tona, TV dhe watches, dhe më shumë, 885 00:39:21,000 --> 00:39:24,950 realizojnë ishin të rrethuar nga software, të gjithë nga të cilat është shkruar nga ne njerëzit. 886 00:39:24,950 --> 00:39:28,150 >> Dhe si ne do të zbuloni të gjithë së shpejti, kjo është shumë e lehtë dhe shumë tipike 887 00:39:28,150 --> 00:39:30,250 për të bërë gabime kur shkrim software. 888 00:39:30,250 --> 00:39:32,745 Dhe në qoftë se ju nuk e kapur ata, disa gjëra të këqija mund të ndodhë. 889 00:39:32,745 --> 00:39:35,400 Tani nganjëherë, disa gjëra qesharake mund të ndodhë, 890 00:39:35,400 --> 00:39:38,280 ose të paktën ndonjëherë ne dinë të presin disa keqen. 891 00:39:38,280 --> 00:39:41,550 Pra, 0 ndarë nga 0, nga klasa e shkollë, në përgjithësi është një gjë e keqe. 892 00:39:41,550 --> 00:39:43,050 Është e padefinuar. 893 00:39:43,050 --> 00:39:46,440 Dhe kjo rezulton out-- dhe le të shohim nëse mic ime mund të marr këtë up-- se Apple 894 00:39:46,440 --> 00:39:47,790 pasur disa fun me këtë kohët e fundit. 895 00:39:47,790 --> 00:39:48,850 Kështu që unë kam një iPhone këtu. 896 00:39:48,850 --> 00:39:54,160 Unë jam duke shkuar për të folur në Siri dhe ta pyesim atë për të më jepni përgjigje për 0 ndarë nga 0. 897 00:39:54,160 --> 00:39:55,850 Çfarë 0 ndarë me 0? 898 00:39:55,850 --> 00:39:59,350 899 00:39:59,350 --> 00:40:02,230 >> SIRI: Paramendoni se ju keni 0 biskota, dhe ti ndarë ato në mënyrë të barabartë 900 00:40:02,230 --> 00:40:03,540 midis 0 miqve. 901 00:40:03,540 --> 00:40:05,810 Sa Cookies ka çdo person për të marrë? 902 00:40:05,810 --> 00:40:06,350 Shih? 903 00:40:06,350 --> 00:40:07,660 Kjo nuk ka kuptim. 904 00:40:07,660 --> 00:40:10,540 Dhe Cookie përbindësh është e trishtuar se nuk ka biskota. 905 00:40:10,540 --> 00:40:13,987 Dhe ju jeni të trishtuar se ju nuk keni miq. 906 00:40:13,987 --> 00:40:15,570 DAVID J Malan: Kjo është lloj i padurueshëm. 907 00:40:15,570 --> 00:40:17,550 Pra, kjo është ajo që ishte vetëm tha se ka. 908 00:40:17,550 --> 00:40:21,380 Është e pacaktuar, ajo nuk është e përcaktuar, Dhe vërtet, shumë gjuhë programimi 909 00:40:21,380 --> 00:40:24,950 ose, me të vërtetë, hartuesit do të zbuluar kur, në një program, 910 00:40:24,950 --> 00:40:27,050 përpiqen për të ndarë 0 me 0. 911 00:40:27,050 --> 00:40:29,830 Më shumë argëtim sesa kjo megjithatë, është që me sa duket, Cookie përbindësh 912 00:40:29,830 --> 00:40:31,270 është në Twitter këto ditë. 913 00:40:31,270 --> 00:40:37,610 Dhe ai u përgjigj kësaj, me këtë, e cila është absolutisht adorable. 914 00:40:37,610 --> 00:40:40,110 Por le të marrin një vështrim të shpejtë një çift i ndërton të tjera, 915 00:40:40,110 --> 00:40:43,459 dhe pastaj të vënë disa prej kësaj Kodi për t'u përdorur, në mënyra të mira. 916 00:40:43,459 --> 00:40:45,250 Pra, ajo rezulton, përveç për sythe, nuk ka 917 00:40:45,250 --> 00:40:49,174 diçka që quhet një lak, ndërsa, që duket ndryshe dhe është zbatuar 918 00:40:49,174 --> 00:40:51,590 një differently-- pak dhe ne përfundimisht do të shohim examples-- 919 00:40:51,590 --> 00:40:53,500 por në një kuptim, kjo është thjeshtë sepse ajo 920 00:40:53,500 --> 00:40:56,670 nuk lejon që të nisja dhe rinovuar brenda kufirit të lak. 921 00:40:56,670 --> 00:40:57,794 Ju ende mund të zbatojë atë. 922 00:40:57,794 --> 00:41:01,219 Kështu që ju mund të bëni të njëjtat gjëra saktë me një lak, ndërsa, si me një për lak, 923 00:41:01,219 --> 00:41:03,260 por sintaksë juaj, ultimately-- si ne do të përfundimisht 924 00:41:03,260 --> 00:41:04,551 see-- do të jenë të ndryshme. 925 00:41:04,551 --> 00:41:07,450 Ka edhe një të bërë, ndërsa loop, e cila është në fakt një pak më ndryshe, 926 00:41:07,450 --> 00:41:09,640 në atë, ndërsa një për lak dhe një lak, ndërsa gjithmonë 927 00:41:09,640 --> 00:41:13,005 kontrolloni gjendjen e tyre të parë, në qoftë se ju lexoni këtë gjë nga lart poshtë, 928 00:41:13,005 --> 00:41:16,440 ai lloj i duket si ajo do të kontrolloni atë për gjendjen e kaluar, sepse kjo është 929 00:41:16,440 --> 00:41:17,910 vërtet vija e fundit e kodit. 930 00:41:17,910 --> 00:41:20,580 Dhe me të vërtetë, kjo do të jetë e dobishme në disa programe që kemi shkruar, 931 00:41:20,580 --> 00:41:23,746 në qoftë se ju doni të vetëm verbërisht të bërë diçka dhe përfundimisht të kontrolluar gjendjen. 932 00:41:23,746 --> 00:41:25,205 Kjo nuk është domosdoshmërisht një gjë e keqe. 933 00:41:25,205 --> 00:41:27,912 Në qoftë se ne duam variabla, ne mund të bëjmë në disa mënyra të ndryshme. 934 00:41:27,912 --> 00:41:30,290 Dhe ne pamë në foks cartoon, një mënyrë për të bërë atë, 935 00:41:30,290 --> 00:41:33,400 ku ju të deklarojë ndryshore tuaj, si int kundër pikëpresje, 936 00:41:33,400 --> 00:41:36,570 dhe pastaj later-- ndoshta e ardhshme line, ndoshta 10 linjat later-- 937 00:41:36,570 --> 00:41:37,800 ju në fakt nisja atë. 938 00:41:37,800 --> 00:41:42,230 Pra këto 2 rreshta të kodit të deklarojë një ndryshore të tipit int 939 00:41:42,230 --> 00:41:44,930 dhe e quajti atë kundër, kështu që i jep Me mjaft bit për të mbajtur një int. 940 00:41:44,930 --> 00:41:48,230 Dhe pastaj në fund, ajo e vë vlera 0 në atë variabël. 941 00:41:48,230 --> 00:41:51,250 Ajo rregullon SË 0 dhe 1 në një model, se ne e dimë nga java e kaluar, 942 00:41:51,250 --> 00:41:53,260 paraqet numrin ne e dimë si 0. 943 00:41:53,260 --> 00:41:56,920 Ose sinqerisht, ju mund ta bëni këtë shumë më shumë shkurtimisht, ashtu si kjo. 944 00:41:56,920 --> 00:41:59,390 >> Tani ne gjithashtu kemi Aftësia për të thirrur funksione. 945 00:41:59,390 --> 00:42:03,070 Dhe në fakt, këtu është një linjë e 2 program, ose nje fragment te tij, 946 00:42:03,070 --> 00:42:06,157 që na lejon të vërtetë të shkruani disa kodin që 947 00:42:06,157 --> 00:42:08,990 merr një varg nga user-- shumë si vullnetar tonë një moment ago-- 948 00:42:08,990 --> 00:42:11,320 ruajtjen rezultatin në një variabël e quajti, 949 00:42:11,320 --> 00:42:15,470 dhe then-- ashtu si me vullnetarë tonë me printf-- printime jashtë këtyre vlerave 950 00:42:15,470 --> 00:42:19,180 duke kaluar në dy argumente, string, e ndjekur nga variabël 951 00:42:19,180 --> 00:42:20,781 quajtur, emrin, vetë. 952 00:42:20,781 --> 00:42:23,155 Pra, le të marrin një vështrim, para se të kemi ardhur përsëri në Mario atje, 953 00:42:23,155 --> 00:42:26,010 në një çift të tani, shembuj të kësaj. 954 00:42:26,010 --> 00:42:30,537 >> Unë jam duke shkuar për të shkuar përpara dhe të hapur lart, le të themi, funksion-0.c. 955 00:42:30,537 --> 00:42:33,120 Dhe si gjithmonë, ky kod është në dispozicion në faqen e internetit të kursit, 956 00:42:33,120 --> 00:42:35,660 kështu që ju mund të luajnë së bashku në shtëpi dhe të shikojnë atë më vonë. 957 00:42:35,660 --> 00:42:40,400 Por këtu është programi në është thelbi, nga linjë 17 deri 22. 958 00:42:40,400 --> 00:42:43,270 Programi kryesor është ku Programi është gjithmonë do të fillojë. 959 00:42:43,270 --> 00:42:46,980 Ky program, me sa duket, po shkon për të shtypur emrin tuaj, zorrës së trashë. 960 00:42:46,980 --> 00:42:50,320 Ajo pastaj do të thërrasë getString, ashtu si ne e bëmë me vullnetarët tanë. 961 00:42:50,320 --> 00:42:53,365 Dhe pastaj, kjo është interesante, ajo do të thërrasë PrintName. 962 00:42:53,365 --> 00:42:56,490 Ajo rezulton, të gjithë këtë kohë, nuk ka duket të jetë një funksion i quajtur PrintName. 963 00:42:56,490 --> 00:42:57,614 Që printon emrin e dikujt. 964 00:42:57,614 --> 00:43:01,210 Ne nuk duhet të përdorin printf nga vitin e kaluar, ka PrintName. 965 00:43:01,210 --> 00:43:03,500 >> Por kjo është mashtruese sepse PrintName nuk ka 966 00:43:03,500 --> 00:43:06,760 vijnë me C. Njerëzit nuk e bëri trilloni atë rreth 40 apo 50 vjet më parë, 967 00:43:06,760 --> 00:43:07,990 Unë e bëri, në vend. 968 00:43:07,990 --> 00:43:10,330 Dhe në fakt, nëse unë lëvizni poshtë të mëtejshëm, njoftimin 969 00:43:10,330 --> 00:43:14,200 se si unë mund të shkruaj mi funksionon në C. Ne do të përfundimisht 970 00:43:14,200 --> 00:43:16,319 të shpjegojë pse ne vazhdojmë duke thënë: pavlefshëm, në disa vende, 971 00:43:16,319 --> 00:43:18,110 por për sot, le të vetëm shikoni në emër. 972 00:43:18,110 --> 00:43:20,905 >> On line 24, në qoftë se ju doni të krijuar funksionin tuaj, 973 00:43:20,905 --> 00:43:22,780 ju fjalë për fjalë shkruani emri i funksionit. 974 00:43:22,780 --> 00:43:24,340 Unë zgjodha PrintName. 975 00:43:24,340 --> 00:43:26,159 Në kllapa, ju atëherë specifikoni çfarë lloj 976 00:43:26,159 --> 00:43:28,450 i inputeve, dhe sa ju duan këtë funksion për të marrë. 977 00:43:28,450 --> 00:43:31,906 Në këtë rast, unë dua të të marrë 1 ndryshueshme quajtur, emrin, 978 00:43:31,906 --> 00:43:34,030 dhe ajo do të jetë e llojin, string, kështu që ajo do 979 00:43:34,030 --> 00:43:35,780 të jetë një rend prej karaktereve. 980 00:43:35,780 --> 00:43:39,170 Dhe pastaj, kjo program-- ashtu si në Scratch, 981 00:43:39,170 --> 00:43:42,590 ju mund të keni mister porosi pieces-- do të ketë këtë sjellje porosi. 982 00:43:42,590 --> 00:43:46,760 Ajo do të thërrasë printf duke kaluar në, përshëndetje, placeholder, 983 00:43:46,760 --> 00:43:49,110 dhe pastaj ajo do të plug në çfarëdo përdoruesi të quajtur. 984 00:43:49,110 --> 00:43:51,450 >> Pra, ky është një shembull i asaj që një shkencëtar kompjuteri do të 985 00:43:51,450 --> 00:43:55,090 Nxjerrja telefonatë apo funksional dekompozimi, të cilat janë vetëm 986 00:43:55,090 --> 00:43:58,110 mënyra dashuroj e saying-- është në qoftë se ju pëlqen kjo ide të nivelit të lartë, 987 00:43:58,110 --> 00:44:01,569 si unë dua funksionalitetin që printon emrin e dikujt, absolutisht ju 988 00:44:01,569 --> 00:44:04,360 fjalë për fjalë mund të shkruani printf dhe pastaj të kalojë në argumentet që ju doni, 989 00:44:04,360 --> 00:44:07,340 dhe programi do të punojë, pasi ka që nga e mërkura. 990 00:44:07,340 --> 00:44:10,510 Por ju mund të filloni për të abstrakte larg nocioni i shtypjes një emër. 991 00:44:10,510 --> 00:44:13,270 Ju mund t'i jepte një emër, si PrintName, dhe kjo 992 00:44:13,270 --> 00:44:15,280 është kjo ide e layering nga javës 0. 993 00:44:15,280 --> 00:44:19,910 >> Tani e tutje, unë dhe ju nuk duhet të dini ose intereson sa PrintName është zbatuar. 994 00:44:19,910 --> 00:44:22,470 Po ajo përdor printf, ndoshta ajo nuk ka, kush e di çfarë përdor? 995 00:44:22,470 --> 00:44:23,410 Kush kujdeset? 996 00:44:23,410 --> 00:44:26,034 Tani unë jam duke folur deri këtu, në vend të poshtë këtu. 997 00:44:26,034 --> 00:44:28,700 Dhe me të vërtetë, si programet tona të merrni më të avancuar dhe sofistikuar, 998 00:44:28,700 --> 00:44:32,550 ne jemi duke shkuar për të mbajtur të marrë për të dhënë se copa më të ulëta puzzle nivel ekzistojnë. 999 00:44:32,550 --> 00:44:34,780 Sepse kemi shkruar ato apo dikush tjetër e ka, kështu 1000 00:44:34,780 --> 00:44:36,910 që ne atëherë mund të ndërtojmë në krye të tyre. 1001 00:44:36,910 --> 00:44:39,430 Le të bëjmë një vështrim në këtë variant, një funksion. 1002 00:44:39,430 --> 00:44:41,780 >> Pra, kjo është pak më shumë avancuar, por rezulton 1003 00:44:41,780 --> 00:44:44,570 që në bibliotekën CS50 e, ka vetëm një funksion GetInt. 1004 00:44:44,570 --> 00:44:47,720 Ne nuk mendojmë, vite më parë, në zbatojë një funksion GetPositiveInt. 1005 00:44:47,720 --> 00:44:50,970 Dhe kjo është pak i bezdisshëm, sepse nëse ju djema duke shkruar një program ne te cilen 1006 00:44:50,970 --> 00:44:53,325 ju doni të merrni një pozitiv numër i plotë nga ana e përdoruesit, 1007 00:44:53,325 --> 00:44:55,010 ju mund të përdorni absolutisht GetInt. 1008 00:44:55,010 --> 00:44:57,840 Dhe ju mund të kontrolloni absolutisht me gjendja dhe ndoshta një lak 1009 00:44:57,840 --> 00:45:00,320 nëse kjo int është më i madh se 0 dhe bërtas në përdoruesit 1010 00:45:00,320 --> 00:45:02,699 nëse ai ose ajo nuk i jep ju një numër pozitiv. 1011 00:45:02,699 --> 00:45:04,740 Por le të ndërtojmë këtë Ndërtimi Blloku veten, një, 1012 00:45:04,740 --> 00:45:06,555 me porosi pjesë Scratch, nëse ju do. 1013 00:45:06,555 --> 00:45:08,680 Unë do të ketë një program të këtu se në fund të fundit, unë 1014 00:45:08,680 --> 00:45:11,780 duan të jenë në gjendje për të thirrur GetPositiveInt, dhe unë dua të jem 1015 00:45:11,780 --> 00:45:14,200 gjendje për të shtypur jashtë çfarëdo që është e int. 1016 00:45:14,200 --> 00:45:16,240 Por ky është i përhumbur larg tani. 1017 00:45:16,240 --> 00:45:19,050 Ka qenë vetëm dhënë një nivel të lartë emër që thotë atë që bën, 1018 00:45:19,050 --> 00:45:21,780 e cila është e mrekullueshme, sepse kjo është shumë intuitiv tani për të lexuar. 1019 00:45:21,780 --> 00:45:24,710 Dhe në qoftë se unë bëj kujdes atë që është nën individualitet, më lejoni të lëvizni poshtë. 1020 00:45:24,710 --> 00:45:27,140 Dhe kjo është pak frikësuese në fillim, veçanërisht 1021 00:45:27,140 --> 00:45:29,470 në qoftë se ky është programi juaj e parë, por le të marrin një sy. 1022 00:45:29,470 --> 00:45:32,860 >> Unë nuk jam duke thënë, i pavlefshëm, sepse ajo rezulton e funksioneve, 1023 00:45:32,860 --> 00:45:34,777 shumë si getString, mund kthehen një vlerë për mua. 1024 00:45:34,777 --> 00:45:36,610 Ata nuk kanë vetëm për të shtypur në ekran, 1025 00:45:36,610 --> 00:45:38,410 ata në fakt mund të dorëzojë mua diçka mbrapa. 1026 00:45:38,410 --> 00:45:41,535 Dhe ndërsa para PrintName, Unë nuk kanë nevojë për asgjë prapa. 1027 00:45:41,535 --> 00:45:44,160 Kam nevojë për efekt anësor i diçka duke treguar deri në ekran, 1028 00:45:44,160 --> 00:45:46,570 por unë nuk kam nevojë për një njeri të më dorëzojë diçka mbrapa. 1029 00:45:46,570 --> 00:45:48,840 Këtu, me GetPositiveInt, si me GetInt, 1030 00:45:48,840 --> 00:45:50,640 Unë dua të jenë të dorëzohet diçka mbrapa. 1031 00:45:50,640 --> 00:45:53,220 Kështu që unë jam duke thënë jo, e pavlefshme, on line 23, por int, 1032 00:45:53,220 --> 00:45:55,570 i cili thotë: ky funksion se unë jam i shkruar, 1033 00:45:55,570 --> 00:45:58,860 quajtur GetPositiveInt do të dorëzojnë mua mbrapa një numër të plotë, jo asgjë, 1034 00:45:58,860 --> 00:45:59,890 nuk i pavlefshëm. 1035 00:45:59,890 --> 00:46:03,280 >> Ndërkohë, ajo do të marrë asnjë inputet, kështu që unë kam, lloj, përmbyset atë. 1036 00:46:03,280 --> 00:46:08,280 Unë nuk jam duke i dhënë GetPositiveInt ndonjë input, unë dua që ajo të më jepni prodhimin e saj. 1037 00:46:08,280 --> 00:46:09,800 Dhe pastaj çfarë ndodh tani? 1038 00:46:09,800 --> 00:46:11,640 Kështu që këtu është se si unë mund të deklarojë një ndryshore. 1039 00:46:11,640 --> 00:46:15,090 Unë e kam bërë atë jashtë lak, për arsye ne përfundimisht do të shohim, 1040 00:46:15,090 --> 00:46:17,700 por kjo vetëm i jep Më 32 bit të quajtur, n, 1041 00:46:17,700 --> 00:46:20,952 dhe unë kam para-përcaktuar ata për të ruajtur integer. 1042 00:46:20,952 --> 00:46:23,660 Dhe këtu është se, ndërsa bëjnë ndërtimin, dhe kjo është arsyeja pse ajo është e dobishme. 1043 00:46:23,660 --> 00:46:26,700 Fjalë për fjalë ta bërë këtë, ndërkohë që n është më pak se 1. 1044 00:46:26,700 --> 00:46:28,030 Pra, le të shohim se çfarë ndodh. 1045 00:46:28,030 --> 00:46:30,760 Unë të shtypura jashtë, ju lutem më jepni një int pozitive. 1046 00:46:30,760 --> 00:46:34,300 Unë pastaj të marrë një int, duke përdorur CS50-së funksionojnë dhe ruhen në n. 1047 00:46:34,300 --> 00:46:38,990 >> Dhe pastaj, çfarë linjë e kodit ndoshta merr ekzekutohet tjetër, logjikisht? 1048 00:46:38,990 --> 00:46:41,890 Të cilat linja numër? 1049 00:46:41,890 --> 00:46:42,571 Yeah, kështu që 31. 1050 00:46:42,571 --> 00:46:45,320 Ju nuk do të dinë këtë deri sa ju keni është thënë ose lloj të konkludoj atë, 1051 00:46:45,320 --> 00:46:45,986 por kjo është e vërtetë. 1052 00:46:45,986 --> 00:46:48,280 Ajo shkon lart poshtë dhe pastaj e mban përsëritur. 1053 00:46:48,280 --> 00:46:55,840 Pra, nëse unë kam shtypur në të themi, numrin e negative 1, n është më pak se 1 negative? 1054 00:46:55,840 --> 00:46:56,340 Po. 1055 00:46:56,340 --> 00:46:58,470 Për shkak negative 1 është më pak se 1. 1056 00:46:58,470 --> 00:46:59,510 Pra, çfarë duhet të ndodhë? 1057 00:46:59,510 --> 00:47:03,260 Unë jam duke shkuar për të bërë këtë ndërkohë që n është më pak se 1, 1058 00:47:03,260 --> 00:47:05,760 kështu që unë jam duke shkuar për të shkuar mbrapa në linjë 28. 1059 00:47:05,760 --> 00:47:09,530 >> Dhe secili time-- dhe le të kandidojë this-- bëjnë Funksioni 1 për të hartuar atë, 1060 00:47:09,530 --> 00:47:11,340 dhe tani dot çaj funksionit 1. 1061 00:47:11,340 --> 00:47:14,280 Nëse unë lloji negativ 1, është shkuar për të mbajtur yelling në mua 1062 00:47:14,280 --> 00:47:17,530 deri sa unë të bashkëpunojnë, sepse çdo e inputeve të mi është më pak se 1 1063 00:47:17,530 --> 00:47:20,070 dhe në qoftë se kjo është ndërsa më pak se 1, Unë do të vazhdojmë të bëjmë këtë. 1064 00:47:20,070 --> 00:47:24,240 Në qoftë se unë më në fund t'i jepte një numër si 50, fatmirësisht, ai thotë, faleminderit për 50. 1065 00:47:24,240 --> 00:47:24,970 Përse? 1066 00:47:24,970 --> 00:47:30,640 Sepse sa më shpejt që n është jo më pak se 1, I ndaluar duke u mbërthyer në këtë lak, 1067 00:47:30,640 --> 00:47:33,840 dhe kjo fjalen ri sot, kthimi, fjalë për fjalë e bën këtë. 1068 00:47:33,840 --> 00:47:36,800 Kështu që unë kam realizuar vetëm, në një kuptim, ekuivalenti i getString, 1069 00:47:36,800 --> 00:47:40,590 ku unë jam dorëzuar përsëri në kush është duke përdorur mua, disa vlera. 1070 00:47:40,590 --> 00:47:42,820 Ajo nuk duhet të jetë një varg, kjo është një int. 1071 00:47:42,820 --> 00:47:44,990 Pra, një të thjeshtë, të shpejtë shembull, por ne do të së shpejti 1072 00:47:44,990 --> 00:47:47,930 të shihni disa më të sofistikuar Versione ende. 1073 00:47:47,930 --> 00:47:53,882 Në fakt, le të marrin një vështrim në një një numerike, e cila është quajtur return.c. 1074 00:47:53,882 --> 00:47:55,590 Dhe kjo është në fakt pak të thjeshtë. 1075 00:47:55,590 --> 00:47:59,010 Pra, qëllimi i këtij programi në life-- le të përpilojnë dhe drejtuar atë, 1076 00:47:59,010 --> 00:48:03,090 kështu që të bëjë kthimin, dot Slash, njoftim return-- 1077 00:48:03,090 --> 00:48:05,530 programi thjesht cubes vlerën 2. 1078 00:48:05,530 --> 00:48:08,410 Është shumë e trashë, është e vështirë kod, ajo nuk ka marrë asnjë inputeve, 1079 00:48:08,410 --> 00:48:12,220 por ajo ka demonstruar një tjetër funksion që unë kam shkruar vetë. 1080 00:48:12,220 --> 00:48:15,760 Kështu që këtu, unë kam deklaruar një variabël, i quajtur X, e tipit int, 1081 00:48:15,760 --> 00:48:17,840 barabartë me numrin 2, krejtësisht arbitrare. 1082 00:48:17,840 --> 00:48:19,530 Kjo është vetëm disa shtypje me gëzof. 1083 00:48:19,530 --> 00:48:23,070 Ajo thotë se x është tani, i tillë dhe të tilla, cubing dot dot dot. 1084 00:48:23,070 --> 00:48:26,390 Dhe magjia është me sa duket në linjë 21. 1085 00:48:26,390 --> 00:48:30,120 Unë jam duke e quajtur një funksion të quajtur, kubike, Unë jam dorëzimin atë një fletë letre 1086 00:48:30,120 --> 00:48:32,890 me numër të 2 shkruar në të, dhe çfarë vlere, matematikisht, 1087 00:48:32,890 --> 00:48:34,860 dua të marrë nga ajo? 1088 00:48:34,860 --> 00:48:36,570 Ashtu si një kontroll mendje e shëndoshë? 1089 00:48:36,570 --> 00:48:37,070 8. 1090 00:48:37,070 --> 00:48:37,570 E drejtë? 1091 00:48:37,570 --> 00:48:40,160 Unë dua 2 Cubed prapa, 2 në fuqia e 3, kështu 8 prapa. 1092 00:48:40,160 --> 00:48:42,570 >> Pra, ku është zbatuar kubike? 1093 00:48:42,570 --> 00:48:44,349 E pra, kjo është zbatuar njoftim poshtë këtu. 1094 00:48:44,349 --> 00:48:47,140 Dhe ashtu si më parë, logjikisht, edhe pse sintaksa është ndoshta 1095 00:48:47,140 --> 00:48:49,320 shumë i ri për shumë prej jush, Unë dua këtë funksion 1096 00:48:49,320 --> 00:48:51,780 për të dorëzuar përsëri një fletë e letër me një int mbi të. 1097 00:48:51,780 --> 00:48:53,990 Kështu që unë kam një int, e emri është në mënyrë arbitrare, 1098 00:48:53,990 --> 00:48:55,530 por të përshtatshme quajtur kubike. 1099 00:48:55,530 --> 00:48:58,430 Inputi të saj, është i n lloji numër i plotë, kështu që kjo është 1100 00:48:58,430 --> 00:49:00,800 se si unë mund të kalojë në numrin 2 në një fletë letre. 1101 00:49:00,800 --> 00:49:03,910 Dhe pastaj del C mbështet matematikë, kështu që ju nuk keni për x-së për herë, 1102 00:49:03,910 --> 00:49:06,680 ju vetëm përdorni yll për shumëzim. 1103 00:49:06,680 --> 00:49:11,070 Dhe kjo kthehet herë NN herë n, e cila është një vlerë thjesht cubed. 1104 00:49:11,070 --> 00:49:12,840 >> Pra, ku jemi duke shkuar me të gjithë këtë? 1105 00:49:12,840 --> 00:49:14,570 Kjo është padyshim një turne shakullinë, pjesa tjetër e siguroi, 1106 00:49:14,570 --> 00:49:16,410 që në seksionet super dhe në problemin vendosur 1, 1107 00:49:16,410 --> 00:49:18,368 ju do të ecte përmes gjithë kjo edhe më tepër. 1108 00:49:18,368 --> 00:49:22,490 Dhe në problemin vendosur 1, ne do të tranzicionit nga bota grafike e Scratch 1109 00:49:22,490 --> 00:49:25,640 për diçka më shumë command line në C. Por ne do të marrin frymëzim 1110 00:49:25,640 --> 00:49:27,680 nga kjo lojë këtu nga kaluar, ku 1111 00:49:27,680 --> 00:49:31,591 duke përdorur C dhe edicionin standard të p grup ju do të zbatojë piramidë Mario. 1112 00:49:31,591 --> 00:49:34,340 Dhe në edicionin e hacker e p grup, nëse kështu zgjedhin për të zgjedhur, 1113 00:49:34,340 --> 00:49:38,280 ju do të zbatojë një pak më shumë sfiduese piramidë me dy maja. 1114 00:49:38,280 --> 00:49:41,239 Ju gjithashtu do të zbatojë një algorithm, një algoritmi babëzitur. 1115 00:49:41,239 --> 00:49:43,030 Ajo rezulton se ka disa logjikë interesante 1116 00:49:43,030 --> 00:49:45,640 pas proces drejtimin stacionin një turp 1117 00:49:45,640 --> 00:49:47,410 dhe në fakt dorëzimin dikush ndryshim përsëri. 1118 00:49:47,410 --> 00:49:50,410 Nuk është një algoritëm që është mjaft drejtpërdrejtë, që ju mund edhe 1119 00:49:50,410 --> 00:49:53,576 kuptojnë intuitivisht kur ju lexoni për herë të parë it-- e kuptuar kjo është ajo që unë kam gjithmonë 1120 00:49:53,576 --> 00:49:57,110 bërë çdo herë që unë kam dhënë disa dikë back-- paratë që ju lejon të gjithmonë 1121 00:49:57,110 --> 00:50:00,679 minimizuar numrin e shënime letër ose monedhat metalike 1122 00:50:00,679 --> 00:50:02,220 se ju jeni të dorëzuar përsëri për përdoruesit. 1123 00:50:02,220 --> 00:50:04,610 Dhe kjo, sigurisht, është bindëse sepse në qoftë se ju shkoni në CVS apo gjësend, 1124 00:50:04,610 --> 00:50:06,430 ju nuk doni të jetë duar një bandë e tërë e atyre 1125 00:50:06,430 --> 00:50:07,596 ose një bandë e tërë e pennies. 1126 00:50:07,596 --> 00:50:10,120 Ju dëshironi fewest monedha, ndoshta, të jetë e mundur. 1127 00:50:10,120 --> 00:50:13,070 >> Së fundi, ju gjithashtu do të sfidohet të ujit në botën e ujit 1128 00:50:13,070 --> 00:50:17,220 dhe në fakt të marrë një vlerësim për një hartë midis normave të rrjedhës, 1129 00:50:17,220 --> 00:50:19,890 i pëlqen, ujë në një dush, vetëm se sa ujë është përdorur. 1130 00:50:19,890 --> 00:50:22,640 Dhe aluzion aty, do të jetë ky klip këtu, 1131 00:50:22,640 --> 00:50:24,840 të cilat ne do të përfundojë në për vetëm 60 sekonda, që 1132 00:50:24,840 --> 00:50:29,070 një foto me ngjyra ulët-rrjedhës dush kokat. 1133 00:50:29,070 --> 00:50:30,886 >> [VIDEO rishikim] 1134 00:50:30,886 --> 00:50:31,385 -Të Gjitha të drejtë. 1135 00:50:31,385 --> 00:50:32,774 Kam gjithçka këtu. 1136 00:50:32,774 --> 00:50:35,800 I kam Cyclone F Seria, Hydra, Jetflow, Stokholm 1137 00:50:35,800 --> 00:50:37,660 Supersteam, ju atë emër. 1138 00:50:37,660 --> 00:50:39,265 >> -Dhe Çfarë ju rekomandojmë? 1139 00:50:39,265 --> 00:50:40,460 >> -Çfarë Po kërkoni? 1140 00:50:40,460 --> 00:50:41,300 >> Njeri -Fuqia. 1141 00:50:41,300 --> 00:50:42,285 Pushtet. 1142 00:50:42,285 --> 00:50:42,910 -Si Silkwood. 1143 00:50:42,910 --> 00:50:44,520 -Kjo Është për rrezatimit. 1144 00:50:44,520 --> 00:50:46,335 -Kjo Është e drejtë. 1145 00:50:46,335 --> 00:50:48,275 -Tani Çfarë është kjo? 1146 00:50:48,275 --> 00:50:49,704 -Kjo Është Komando 450. 1147 00:50:49,704 --> 00:50:50,620 Unë nuk e shesin se një. 1148 00:50:50,620 --> 00:50:51,700 >> -Por Kjo është ajo që ne duam. 1149 00:50:51,700 --> 00:50:52,680 Kjo është një komando 450. 1150 00:50:52,680 --> 00:50:53,882 >> -Jo Më besoni. 1151 00:50:53,882 --> 00:50:55,090 Është përdorur vetëm në cirk. 1152 00:50:55,090 --> 00:50:56,512 Është për elefantët. 1153 00:50:56,512 --> 00:50:59,356 >> -I'll Paguani asgjë. 1154 00:50:59,356 --> 00:51:01,252 >> -Si Për Jerry? 1155 00:51:01,252 --> 00:51:02,760 >> -Ai Nuk mund të trajtojë atë. 1156 00:51:02,760 --> 00:51:04,910 Ai është delikate. 1157 00:51:04,910 --> 00:51:05,750 Oh yeah. 1158 00:51:05,750 --> 00:51:36,737 1159 00:51:36,737 --> 00:51:37,320 [END rishikim] 1160 00:51:37,320 --> 00:51:37,700 DAVID J Malan: Në rregull. 1161 00:51:37,700 --> 00:51:38,820 Kjo është nëse për CS50. 1162 00:51:38,820 --> 00:51:40,050 Ne do të shihemi javën e ardhshme. 1163 00:51:40,050 --> 00:51:45,910 1164 00:51:45,910 --> 00:51:49,029 >> SPEAKER 1: [? Scully?], [? Ian,?] sa i përket këtij projekti Outro, 1165 00:51:49,029 --> 00:51:50,362 çfarë keni djema të dalë me? 1166 00:51:50,362 --> 00:51:51,990 >> SPEAKER 2: E pra, ne kemi dhënë atë një shumëllojshmëri të mendimit, 1167 00:51:51,990 --> 00:51:53,250 dhe ne mendojmë se mënyra më e mirë to-- 1168 00:51:53,250 --> 00:51:53,660 >> SPEAKER 3: Maj unë? 1169 00:51:53,660 --> 00:51:54,326 >> SPEAKER 2: Po. 1170 00:51:54,326 --> 00:51:56,360 Me të gjitha mjetet, në të vërtetë. 1171 00:51:56,360 --> 00:51:59,425 >> SPEAKER 3: Kështu që unë mendoj ne mund të përmbledhur idenë tonë 1172 00:51:59,425 --> 00:52:05,450 për outros me një asgjë word--. 1173 00:52:05,450 --> 00:52:08,950 1174 00:52:08,950 --> 00:52:10,409 >> DAVID J Malan: Asgjë? 1175 00:52:10,409 --> 00:52:11,200 SPEAKER 3: Asgjë. 1176 00:52:11,200 --> 00:52:12,990 DAVID J Malan: Çfarë do të thotë kjo? 1177 00:52:12,990 --> 00:52:16,260 SPEAKER 3: outros jeni gati asgjë. 1178 00:52:16,260 --> 00:52:21,720 SPEAKER 2: E pra, unë të them, në filozofi, Unë do të thotë, asgjë nuk është gjithmonë diçka. 1179 00:52:21,720 --> 00:52:24,200 SPEAKER 1: Pra what's-- çfarë është premisë? 1180 00:52:24,200 --> 00:52:25,720 SPEAKER 3: Pra, kjo është si jeta. 1181 00:52:25,720 --> 00:52:26,680 OK. 1182 00:52:26,680 --> 00:52:28,294 Çfarë keni bërë sot? 1183 00:52:28,294 --> 00:52:31,811 >> DAVID J Malan: u ngrita, kishte mëngjes, dhe erdhi për të punuar. 1184 00:52:31,811 --> 00:52:34,056 >> SPEAKER 3: Kjo është një Outro. 1185 00:52:34,056 --> 00:52:36,806 SPEAKER 2: Por, dua të them, nuk duhet diçka të ndodhë me atë në the-- 1186 00:52:36,806 --> 00:52:37,889 SPEAKER 3: Jo, jo, jo, jo. 1187 00:52:37,889 --> 00:52:40,220 Asgjë nuk ndodh. 1188 00:52:40,220 --> 00:52:42,910 >> SPEAKER 1: Pra, pse jemi të shikuar? 1189 00:52:42,910 --> 00:52:46,956 >> SPEAKER 3: Sepse është një Outro për CS50. 1190 00:52:46,956 --> 00:52:48,652 >> DAVID J Malan: Ende. 1191 00:52:48,652 --> 00:52:49,151