1 00:00:00,000 --> 00:00:10,920 >> [Duke luajtur muzikë] 2 00:00:10,920 --> 00:00:14,680 >> DAVID J Malan: Të gjithë të drejtë, mirëpritur mbrapa për CS50. 3 00:00:14,680 --> 00:00:16,500 Ky është fillimi i javës së dytë. 4 00:00:16,500 --> 00:00:18,940 Një fjalë nga njëri prej tonë miq në kampus - 5 00:00:18,940 --> 00:00:22,620 nëse jeni të interesuar, ndoshta, qoftë tani apo në ndonjë afat të ardhmen 6 00:00:22,620 --> 00:00:25,670 madje, herë më të rehatshme, mësimdhënia Nxënësit e shkollave të mesme një pak 7 00:00:25,670 --> 00:00:27,680 diçka në lidhje me shkenca kompjuterike, të bëjë kokën për këtë URL. 8 00:00:27,680 --> 00:00:32,360 Ata janë në nevojë të veçantë të drejtë tani i mësuesit, veçanërisht nëse ju keni 9 00:00:32,360 --> 00:00:34,700 kishte disa ekspozimit ndaj shkencës kompjuterike. 10 00:00:34,700 --> 00:00:38,060 >> Pra, kujtojnë se herën e fundit, ne kemi prezantuar disa lloje të të dhënave në C, dhe 11 00:00:38,060 --> 00:00:40,590 ju mund të keni filluar të marrë tuaj duart e pista me këto deri më tani 12 00:00:40,590 --> 00:00:41,940 në një problem të caktuar. 13 00:00:41,940 --> 00:00:43,230 Dhe ne kishim një char. 14 00:00:43,230 --> 00:00:49,100 Pra, në terma disi teknike, çfarë është një char si ju e dini atë sot? 15 00:00:49,100 --> 00:00:51,050 >> Pra, kjo është një karakter, por le të jetë më e saktë tani. 16 00:00:51,050 --> 00:00:53,735 Çka nënkuptojmë me karakter apo individ char? 17 00:00:53,735 --> 00:00:56,700 18 00:00:56,700 --> 00:00:59,500 Një jo-numerike karakter - 19 00:00:59,500 --> 00:01:00,670 kështu që jo domosdoshmërisht. 20 00:01:00,670 --> 00:01:04,580 Ajo rezulton se numrat e madje, edhe shenjat e pikësimit dhe letra janë 21 00:01:04,580 --> 00:01:06,980 përfaqësuar me këto të dhëna lloji i njohur si një char. 22 00:01:06,980 --> 00:01:09,440 Pra, kjo nuk është domosdoshmërisht alfabetik. 23 00:01:09,440 --> 00:01:11,100 Po? 24 00:01:11,100 --> 00:01:12,275 >> Pra, kjo është një simbol ASCII. 25 00:01:12,275 --> 00:01:15,510 Pra, nëse ju mendoni përsëri në javë zero, kur ne kishim bajt tonë të vullnetarëve 26 00:01:15,510 --> 00:01:19,150 të dalë dhe as të mbajë duart e tyre deri apo jo të gjithë, ata përfaqësuara bit. 27 00:01:19,150 --> 00:01:22,450 Por, kolektivisht si një grup prej tetë, ata përfaqësonin një bajt. 28 00:01:22,450 --> 00:01:26,030 Dhe kemi futur nocionin e ASCII në atë leksion, e cila thjesht eshte nje 29 00:01:26,030 --> 00:01:28,170 hartë ndërmjet numrave dhe shkronjave. 30 00:01:28,170 --> 00:01:32,010 Dhe përdor ASCII, si ato që njerëzit nënkuptuara, tetë BITS 31 00:01:32,010 --> 00:01:33,660 për të përfaqësuar një karakter. 32 00:01:33,660 --> 00:01:36,890 >> Pra, në përputhje me rrethanat, në qoftë se tetë BITS mundeni secili merr mbi njërën nga dy vlera - 33 00:01:36,890 --> 00:01:38,010 zero ose një - 34 00:01:38,010 --> 00:01:40,280 do të thotë se ka pasur dy mundësi për këtë person - 35 00:01:40,280 --> 00:01:41,230 zero ose një - 36 00:01:41,230 --> 00:01:44,070 dy për këtë person, dy për këtë Personi, dy për këtë një të tillë. 37 00:01:44,070 --> 00:01:47,450 Pra, një total prej dy herë dy herë dy herë dy herë dy - 38 00:01:47,450 --> 00:01:49,700 kështu që dy teti në total. 39 00:01:49,700 --> 00:01:54,320 Pra, ka një numër total të karaktereve të 256 e mundur që ju mund të 40 00:01:54,320 --> 00:01:55,750 përfaqësuar me tetë BITS. 41 00:01:55,750 --> 00:01:59,210 >> Tani, ata prej jush të cilët flasin aziatike gjuhë mund të dini se ka më shumë 42 00:01:59,210 --> 00:02:02,620 karaktere në botë se vetëm Si dhe BS dhe Cs dhe DS. 43 00:02:02,620 --> 00:02:06,130 Dhe me të vërtetë, ASCII nuk do të mjaftojë për një shumë prej gjuhëve të botës. 44 00:02:06,130 --> 00:02:07,760 Por më shumë në atë kohë tjetër. 45 00:02:07,760 --> 00:02:11,240 Tani për tani, e di se në qoftë se ju doni C për të përfaqësuar një letër, një pjesë e 46 00:02:11,240 --> 00:02:15,780 shenjat e pikësimit, apo vetëm karakter diçka në natyrë, ne përdorim një char. 47 00:02:15,780 --> 00:02:18,240 Dhe kjo është një bajt apo tetë BITS. 48 00:02:18,240 --> 00:02:19,690 >> Si në lidhje me një int? 49 00:02:19,690 --> 00:02:20,780 Mirë, një int eshte nje numer i plote. 50 00:02:20,780 --> 00:02:23,175 Sa bit, nëse ju kujtohet, ishte një numër i plotë në mënyrë tipike? 51 00:02:23,175 --> 00:02:25,930 52 00:02:25,930 --> 00:02:27,512 Çdokush risjell? 53 00:02:27,512 --> 00:02:29,600 Pra, kjo është zakonisht 32. 54 00:02:29,600 --> 00:02:32,120 Ajo në fakt varet në kompjuter se ju jeni duke përdorur. 55 00:02:32,120 --> 00:02:35,770 Por ne aplikim, dhe në një shumë prej kompjutera, është 32 bit apo katër 56 00:02:35,770 --> 00:02:37,140 - bytes tetë herë katër. 57 00:02:37,140 --> 00:02:39,790 Dhe ints janë përdorur vetëm për magazinimin e Numrat, qoftë negative, 58 00:02:39,790 --> 00:02:41,610 pozitive, ose zero. 59 00:02:41,610 --> 00:02:45,250 >> Dhe në qoftë se ju keni marrë 32bits dhe ju vetëm kujdes në lidhje me numrat pozitive, mund të 60 00:02:45,250 --> 00:02:48,960 ballpark dikush sa të jetë e mundur integers një kompjuter mund të përfaqësojnë nga 61 00:02:48,960 --> 00:02:51,820 zero në dorë? 62 00:02:51,820 --> 00:02:56,130 Kështu që kjo do të jetë dy te te 32, e cila është afërsisht katër miliard më. 63 00:02:56,130 --> 00:02:59,720 Pra, këto kompetenca të dy do të jenë të Temat e përsëritura në shkenca kompjuterike. 64 00:02:59,720 --> 00:03:03,930 Siç do të shohim, ata janë mjaft të përshtatshëm për të punuar me të edhe në qoftë se ajo nuk është mjaft 65 00:03:03,930 --> 00:03:05,790 lehtë për të bërë matematikë në kokën e dikujt. 66 00:03:05,790 --> 00:03:07,000 >> Pra, ne do të themi pothuajse katër miliardë dollarë. 67 00:03:07,000 --> 00:03:08,620 Tani, një kohë të gjatë - 68 00:03:08,620 --> 00:03:09,770 ju mund të lloj i guess. 69 00:03:09,770 --> 00:03:10,480 Kjo është më shumë se një int. 70 00:03:10,480 --> 00:03:12,440 Sa bit? 71 00:03:12,440 --> 00:03:14,250 Pra, 64 bit ose tetë bytes. 72 00:03:14,250 --> 00:03:17,480 Kjo thjesht do të thotë që ju mund të përfaqësojë edhe Numrat më të mëdha, më të mëdha pozitive apo 73 00:03:17,480 --> 00:03:19,160 Numrat e mëdha negative. 74 00:03:19,160 --> 00:03:20,060 >> Dhe si për të nxjerr në shitje? 75 00:03:20,060 --> 00:03:22,260 Kjo është një pikë lundrues Vlera e 32 bit. 76 00:03:22,260 --> 00:03:25,180 Kjo është vetëm një numër real, diçka me një pikë dhjetore. 77 00:03:25,180 --> 00:03:30,100 Por në qoftë se keni nevojë për më shumë vende në vend pas presjes dhjetore, ose ju dëshironi të 78 00:03:30,100 --> 00:03:33,720 përfaqësojnë një numër më të madh me disa fraksion pas saj, ju mund të përdorni një 79 00:03:33,720 --> 00:03:36,260 të dyfishtë, e cila është 64 bit. 80 00:03:36,260 --> 00:03:38,240 >> Por ka një interesante takeaway këtu. 81 00:03:38,240 --> 00:03:42,890 Pra, nëse ints janë të kufizuara nga 32 bit dhe edhe longs të gjata janë të kufizuara nga 64 82 00:03:42,890 --> 00:03:46,180 bit, se lloj i ngre pyetje, çfarë nëse ju në të vërtetë doni për të numëruar 83 00:03:46,180 --> 00:03:48,790 më i lartë se 4 miliardë për një int? 84 00:03:48,790 --> 00:03:50,330 E pra, ju vetëm përdorni një kohë të gjatë. 85 00:03:50,330 --> 00:03:54,200 Por, çfarë nëse ju doni për të numëruar të larta se dy në 64, të japë ose të marrë? 86 00:03:54,200 --> 00:03:55,810 >> Tani, që është një numër shumë i madh. 87 00:03:55,810 --> 00:03:59,250 Por përfundimisht, ju mund të vërtetë kujdesen për këto lloje të vlerave, 88 00:03:59,250 --> 00:04:03,070 veçanërisht nëse ju jeni duke përdorur një bazë të dhënash dhe duke filluar për të mbledhur shumë dhe shumë 89 00:04:03,070 --> 00:04:06,190 dhe shumë të dhëna dhe caktimin unike Numrat në çdo copë të dhëna. 90 00:04:06,190 --> 00:04:07,430 Pra, ne kemi një lloj i problemit. 91 00:04:07,430 --> 00:04:10,700 Dhe në mënyrë të ngjashme, me pikë lundrues Vlerat - gjithandej apo dyshe - 92 00:04:10,700 --> 00:04:14,290 në qoftë se ju keni marrë vetëm një numër i caktuar i bit, se sa numra total mund të ju 93 00:04:14,290 --> 00:04:16,980 ndoshta përfaqësojnë? 94 00:04:16,980 --> 00:04:19,540 >> E pra, kjo është më pak e qartë kur ju të përfshijë një pikë dhjetore. 95 00:04:19,540 --> 00:04:20,899 Por kjo është me siguri fundme. 96 00:04:20,899 --> 00:04:24,390 Nëse ju keni një numër i caktuar i bit, një numër i caktuar i njerëzve, një fundme 97 00:04:24,390 --> 00:04:27,350 Numri i poqat, me siguri ju mund të përfaqësojnë vetëm një numër i caktuar i 98 00:04:27,350 --> 00:04:28,510 lundrues vlerat pikë. 99 00:04:28,510 --> 00:04:33,170 Por si shumë numra reale tyre janë në botë? 100 00:04:33,170 --> 00:04:33,680 Ka një infinit. 101 00:04:33,680 --> 00:04:37,280 Pra, kjo është lloj i një problemi, sepse ne nuk kanë një sasi të pafund të 102 00:04:37,280 --> 00:04:39,970 memorie RAM ose brenda kompjuterat tanë. 103 00:04:39,970 --> 00:04:41,780 Pra, disa gjëra mund të ndodhë sfiduese. 104 00:04:41,780 --> 00:04:43,900 >> Pra, le të shkojnë përpara dhe përpiqen për të shprehur këtë këtu. 105 00:04:43,900 --> 00:04:46,240 Më lejoni të shkojnë përpara dhe të hapur deri Gedit. 106 00:04:46,240 --> 00:04:50,360 Unë jam duke shkuar për të shkuar përpara dhe për të shpëtuar një skedar quajtur "floats0.c" vetëm të jetë 107 00:04:50,360 --> 00:04:54,630 në përputhje me një shembull që është në dispozicion online, në qoftë se ju do të donte. 108 00:04:54,630 --> 00:04:58,080 Dhe unë jam duke shkuar për të shkuar përpara dhe define atë si vijon - 109 00:04:58,080 --> 00:05:01,540 Unë jam duke shkuar për të shkuar përpara dhe të thonë, int void kryesore, si ne shpesh bëjmë. 110 00:05:01,540 --> 00:05:07,190 >> Dhe pastaj në këtë program, unë jam duke shkuar për të deklarojë veten një noton, kështu që një 32-bit 111 00:05:07,190 --> 00:05:09,700 i quajtur variabël f, në mënyrë arbitrare. 112 00:05:09,700 --> 00:05:13,910 Dhe atëherë unë jam duke shkuar për të ruajtur në atë Unë nuk e di, një të dhjetën, kështu 0.1. 113 00:05:13,910 --> 00:05:16,590 Kështu që unë jam duke shkuar për të shprehur se si një ndare me 10, e cila eshte perfekte 114 00:05:16,590 --> 00:05:17,790 legjitim në C. 115 00:05:17,790 --> 00:05:20,460 >> Dhe pastaj në rreshtin e dytë, unë thjesht doni të shtypura jashtë atë vlerë. 116 00:05:20,460 --> 00:05:22,950 Pra, kujtojnë se ne mund të përdorim printf njohur. 117 00:05:22,950 --> 00:05:25,420 Ne nuk duam që të përdorni% Unë për një int. 118 00:05:25,420 --> 00:05:28,360 Ne duam që të përdorni% f për një noton. 119 00:05:28,360 --> 00:05:33,080 Dhe atëherë unë jam duke shkuar për të bërë backslash N, quote ngushtë, presje, f, pikëpresje. 120 00:05:33,080 --> 00:05:34,400 >> Kështu që këtu është programi im. 121 00:05:34,400 --> 00:05:35,820 Ka tashmë një bug. 122 00:05:35,820 --> 00:05:38,640 A ka dikush për të cilët ky klikuar tashmë duan të tregojnë së paku 123 00:05:38,640 --> 00:05:40,220 një bug kam bërë? 124 00:05:40,220 --> 00:05:42,470 Po? 125 00:05:42,470 --> 00:05:42,800 Po. 126 00:05:42,800 --> 00:05:47,860 I harruar "# include" në top, ata simptomë e cila në qoftë se unë të përpiqet të 127 00:05:47,860 --> 00:05:50,490 përpilojnë kjo do të jetë që compiler do të bërtas në mua, 128 00:05:50,490 --> 00:05:52,770 duke thënë simbol i padefinuar apo diçka për këtë qëllim. 129 00:05:52,770 --> 00:05:55,360 Ajo nuk e kupton diçka printf pëlqen. 130 00:05:55,360 --> 00:05:59,380 >> Kështu që unë jam duke shkuar për të bërë "# përfshijnë ", Ruani skedarin. 131 00:05:59,380 --> 00:06:00,400 Dhe tani kjo është në formë të mirë. 132 00:06:00,400 --> 00:06:02,690 Por unë jam gjithashtu do të theksojnë nga një detaj të ri sot. 133 00:06:02,690 --> 00:06:08,620 Përveç specifikuar vendin mbajtësit si f%% i% s, ju mund të 134 00:06:08,620 --> 00:06:12,320 nganjëherë ndikojnë në sjelljen e asaj placeholder. 135 00:06:12,320 --> 00:06:15,540 Për shembull, në rastin e një lundrues Pika vlerë, në qoftë se unë vetëm dua 136 00:06:15,540 --> 00:06:22,200 për të shfaqur një vend decimal pas periudhë, unë mund të bëjë në fakt 0.1f. 137 00:06:22,200 --> 00:06:26,830 Pra, me fjalë të tjera, unë të ndarë dhe të f shenjë me 0.1 për qind, vetëm 138 00:06:26,830 --> 00:06:30,200 printf thënë, ju mund të keni një të tërë bandë e numrave pas presjes dhjetore, 139 00:06:30,200 --> 00:06:30,930 pikë për mua. 140 00:06:30,930 --> 00:06:32,870 Por unë vetëm dua të shoh një prej tyre. 141 00:06:32,870 --> 00:06:36,280 >> Kështu që unë jam duke shkuar për të shkuar përpara tani dhe për të shpëtuar ky program, shkoni në terminal time 142 00:06:36,280 --> 00:06:41,870 dritare, dhe unë jam duke shkuar për të shkuar përpara dhe tipi bëjnë 0 noton, të hyjë. 143 00:06:41,870 --> 00:06:44,930 Unë shoh atë linjë disi të paqartë që do të fillojë të bëjë më shumë kuptim si ne 144 00:06:44,930 --> 00:06:46,900 vë në lojë atë përveç kësaj jave dhe të ardhshëm. 145 00:06:46,900 --> 00:06:50,480 Tani unë jam duke shkuar për të shkuar përpara dhe të drejtuar zero noton. 146 00:06:50,480 --> 00:06:52,020 Dhe, mallkuar. 147 00:06:52,020 --> 00:06:54,880 >> Pra, ka një tjetër bug këtu për disa arsye. 148 00:06:54,880 --> 00:07:02,490 Unë jam goxha i sigurt se një e dhjeta, ose njëri ndarë nga 10, nuk është 0.0. 149 00:07:02,490 --> 00:07:04,590 Ndoshta unë nuk jam vetëm në kërkim në shifra mjaft. 150 00:07:04,590 --> 00:07:08,580 Pra, pse të mos them dy .2 për të parë dy numra pas presjes dhjetore vend të vetëm një. 151 00:07:08,580 --> 00:07:11,810 Më lejoni të kthehem në dritaren time terminal këtu dhe goditur disa herë për të 152 00:07:11,810 --> 00:07:12,840 shihni historinë time. 153 00:07:12,840 --> 00:07:15,910 Mos bëni noton zero përsëri, dhe pastaj përsëri. 154 00:07:15,910 --> 00:07:17,730 Dhe tani të hyjë. 155 00:07:17,730 --> 00:07:20,000 >> Dhe tani unë jam goxha i sigurt se kjo është e gabuar. 156 00:07:20,000 --> 00:07:23,030 Dhe unë mund të bëj tre dhe katër, dhe unë jam ndoshta do të mbaj shohim zero. 157 00:07:23,030 --> 00:07:24,880 Pra, ku është bug? 158 00:07:24,880 --> 00:07:27,910 Një ndarë nga 10 duhet të jetë 0.1. 159 00:07:27,910 --> 00:07:30,310 Dikush duan të marrin një goditje me thikë në çfarë Çështja themelore është? 160 00:07:30,310 --> 00:07:32,400 Po? 161 00:07:32,400 --> 00:07:33,420 Ata janë të dy integers. 162 00:07:33,420 --> 00:07:33,920 Pra, çfarë? 163 00:07:33,920 --> 00:07:37,820 Pra, me një pjesëtuar me 10, që është çfarë të bëj në aritmetikë. 164 00:07:37,820 --> 00:07:41,185 Dhe unë të marrë 0,1. 165 00:07:41,185 --> 00:07:41,660 >> Po. 166 00:07:41,660 --> 00:07:43,240 Dhe kështu që ajo është me të vërtetë që çështja. 167 00:07:43,240 --> 00:07:46,700 Kur ju merrni një numër të plotë në një kompjuter dhe ju ndani atë me një numër të plotë, 168 00:07:46,700 --> 00:07:50,430 kompjuteri by default do të supozojmë se ju doni një numër të plotë. 169 00:07:50,430 --> 00:07:54,620 Problem edhe pse, natyrisht, është se 0.1 nuk eshte nje numer i plote. 170 00:07:54,620 --> 00:07:55,680 Kjo është një numër real. 171 00:07:55,680 --> 00:07:59,610 Dhe kështu që çfarë e bën nga kompjuteri default është ai thjesht hedh larg 172 00:07:59,610 --> 00:08:01,070 gjithçka pas presjes dhjetore. 173 00:08:01,070 --> 00:08:03,380 Ajo nuk raundin e poshtë apo lart në vetvete. 174 00:08:03,380 --> 00:08:06,480 Ajo thjesht hedh larg çdo gjë pas presjes dhjetore. 175 00:08:06,480 --> 00:08:07,430 Dhe tani që e bën kuptim. 176 00:08:07,430 --> 00:08:09,740 Sepse tani ne jemi në mënyrë të qartë u largua me zero. 177 00:08:09,740 --> 00:08:10,250 >> Por, prit një minutë. 178 00:08:10,250 --> 00:08:11,840 Unë nuk jam duke parë një zero int. 179 00:08:11,840 --> 00:08:14,910 Unë jam në të vërtetë duke parë 0,00. 180 00:08:14,910 --> 00:08:16,340 Pra, si mund ta pajtojë këtë tani? 181 00:08:16,340 --> 00:08:22,850 Nëse dikush e ndarë nga 10 është zero, por unë jam i duke parë 0,00, ku ajo bëhet 182 00:08:22,850 --> 00:08:24,250 konvertuar përsëri në një numër real? 183 00:08:24,250 --> 00:08:25,500 Po. 184 00:08:25,500 --> 00:08:29,850 185 00:08:29,850 --> 00:08:30,630 Saktësisht. 186 00:08:30,630 --> 00:08:35,600 >> Pra, deri këtu në linjë pesë, kur unë në fakt ruajtur se 0.1, i cili është atëherë 187 00:08:35,600 --> 00:08:39,549 prerë në zero, në brendësi të një float, kjo është në mënyrë efektive ekuivalente me 188 00:08:39,549 --> 00:08:42,100 magazinimin e jo atë si një int, por, me të vërtetë, si një noton. 189 00:08:42,100 --> 00:08:46,540 Për më tepër, unë jam pastaj duke përdorur printf për në mënyrë eksplicite të shtypura atë numër për dy 190 00:08:46,540 --> 00:08:49,740 numra pas presjes dhjetore, edhe pse ka mund të mos jetë në fakt asnjë. 191 00:08:49,740 --> 00:08:51,020 >> Pra, ky lloj i sucks, e drejtë? 192 00:08:51,020 --> 00:08:53,640 Me sa duket ju nuk mund të bëjë matematikë, të paktën në këtë nivel të 193 00:08:53,640 --> 00:08:55,600 saktësi, në një kompjuter. 194 00:08:55,600 --> 00:08:56,930 Por me siguri ka një zgjidhje. 195 00:08:56,930 --> 00:09:00,410 Çfarë është fix thjeshtë që ne ndoshta mund të bëni, madje edhe vetëm intuitive këtu për 196 00:09:00,410 --> 00:09:01,130 zgjidhur këtë? 197 00:09:01,130 --> 00:09:02,380 Po? 198 00:09:02,380 --> 00:09:04,700 199 00:09:04,700 --> 00:09:06,574 Kthejeni integers në - 200 00:09:06,574 --> 00:09:06,976 vërtet. 201 00:09:06,976 --> 00:09:10,420 Edhe në qoftë se unë nuk jam mjaft i sigurt se çfarë është ndodh në të vërtetë këtu, në qoftë se ajo 202 00:09:10,420 --> 00:09:13,440 thelb ka të bëjë me këto të dyja duke qenë ints, edhe, pse nuk kam 203 00:09:13,440 --> 00:09:18,230 bërë që 10.0, duke e bërë këtë 1.0, resave file. 204 00:09:18,230 --> 00:09:20,990 Më lejoni të kthehemi poshtë për të fund dhe përpilim. 205 00:09:20,990 --> 00:09:23,030 Më lejoni tani përsëritje. 206 00:09:23,030 --> 00:09:23,420 Dhe atje - 207 00:09:23,420 --> 00:09:27,690 tani, unë kam marrë një të dhjetën e mia të përfaqësuara si 0,10. 208 00:09:27,690 --> 00:09:28,420 >> Dakord. 209 00:09:28,420 --> 00:09:29,220 Kështu që nuk është e keqe. 210 00:09:29,220 --> 00:09:31,730 Dhe më lejoni të theksoj një rrugë tjetër ne mund të kemi zgjidhur këtë. 211 00:09:31,730 --> 00:09:35,580 Më lejoni të vërtetë rrokulliset prapa në kohë kur kemi pasur këtë si një 212 00:09:35,580 --> 00:09:36,680 dhjeta një moment më parë. 213 00:09:36,680 --> 00:09:40,800 Dhe më lejoni të shkoj përpara dhe të resave këtë skedë si një emër të ndryshëm file, vetëm për të 214 00:09:40,800 --> 00:09:41,750 kanë një postbllok pak. 215 00:09:41,750 --> 00:09:43,450 Kështu që ishte një version. 216 00:09:43,450 --> 00:09:45,520 Dhe tani më lejoni të shkoj përpara dhe të të bëjë një version më. 217 00:09:45,520 --> 00:09:48,540 Ne do të quajmë këtë version dy zero indeksuar. 218 00:09:48,540 --> 00:09:51,280 >> Dhe unë jam duke shkuar për të bërë në vend kjo - ju e dini se çfarë? 219 00:09:51,280 --> 00:09:54,400 Shtimi dot zero punon në këtë rast. 220 00:09:54,400 --> 00:09:56,060 Por supozoj se dikush ishin një ndryshore. 221 00:09:56,060 --> 00:09:57,680 10 supozuar ishin një ndryshore. 222 00:09:57,680 --> 00:10:00,680 Me fjalë të tjera, unë mendoj se nuk mund të vetëm hard-Kodi 0,0 në fund 223 00:10:00,680 --> 00:10:02,340 i kësaj shprehje aritmetike. 224 00:10:02,340 --> 00:10:05,820 E pra, unë në fakt mund të bëjë diçka në kllapa quajtur hedh. 225 00:10:05,820 --> 00:10:11,920 Unë mund të hedhin atë në një numër të plotë 10 noton, dhe unë mund të hedhin se një numër i plotë për një 226 00:10:11,920 --> 00:10:12,800 shket, si edhe. 227 00:10:12,800 --> 00:10:17,190 Pastaj math që po ndodh për të bërë është 1.0 efektivisht ndarë nga 10.0, 228 00:10:17,190 --> 00:10:19,250 rezultati i të cilës shkon në f si më parë. 229 00:10:19,250 --> 00:10:26,130 Pra, nëse unë recompile këtë si të bëjë gjithandej 2, dhe tani gjithandej 2, unë të marrë të njëjtën 230 00:10:26,130 --> 00:10:27,020 përgjigjen, si edhe. 231 00:10:27,020 --> 00:10:29,640 >> Pra, kjo është një shembull mjaft i sajuar, për të zgjidhur këtë problem 232 00:10:29,640 --> 00:10:31,400 duke futur hedh. 233 00:10:31,400 --> 00:10:34,410 Por në përgjithësi, hedh do të jetë një gjë e fuqishme, veçanërisht për 234 00:10:34,410 --> 00:10:38,180 Problemi vendosur dy në një javë kohë, kur ju doni të konvertohet në një lloj të dhënave për 235 00:10:38,180 --> 00:10:41,800 një tjetër që në fund të ditës janë të përfaqësuara në të njëjtën mënyrë. 236 00:10:41,800 --> 00:10:44,970 Në fund të ditës, çdo të vetme gjë që ne kemi biseduar rreth deri tani është 237 00:10:44,970 --> 00:10:46,710 vetëm ints nën kapuç. 238 00:10:46,710 --> 00:10:48,950 Ose në qoftë se është tepër i nivelit të ulët për ju, ata janë vetëm numra 239 00:10:48,950 --> 00:10:49,750 nën kapuç. 240 00:10:49,750 --> 00:10:52,850 Edhe karaktere, përsëri, kujtojnë nga zero javë, janë numrat 241 00:10:52,850 --> 00:10:53,990 nën kapuç. 242 00:10:53,990 --> 00:10:57,240 >> Cila është të thuhet, ne mund të konvertohet në mes të lloje të ndryshme të numrave nëse 243 00:10:57,240 --> 00:10:58,060 ata janë vetëm bit. 244 00:10:58,060 --> 00:11:01,020 Ne mund të konvertohet në mes të numrave dhe letra në qoftë se ata janë vetëm 245 00:11:01,020 --> 00:11:02,580 bit, dhe anasjelltas. 246 00:11:02,580 --> 00:11:07,170 Dhe hedh në këtë mënyrë është një mekanizëm në programimin që ju lejon forcë 247 00:11:07,170 --> 00:11:10,970 ndryshojë një lloj të dhënave në një tjetër. 248 00:11:10,970 --> 00:11:14,570 Për fat të keq, kjo nuk është aq e drejtpërdrejtë si unë mund të ketë pëlqyer. 249 00:11:14,570 --> 00:11:19,220 >> Unë jam duke shkuar për të shkuar mbrapa në gjithandej 1, e cila është më e thjeshtë, më 250 00:11:19,220 --> 00:11:22,830 njëri i drejtpërdrejtë me .0 Shtuar më secilit. 251 00:11:22,830 --> 00:11:25,260 Dhe vetëm si një përmendore të shpejtë, më lejoni të shkoj përpara dhe të recompile 252 00:11:25,260 --> 00:11:27,670 këtë, e bëjnë gjithandej 2 - 253 00:11:27,670 --> 00:11:30,300 keq, kjo është bërë gjithandej 1. 254 00:11:30,300 --> 00:11:32,050 Dhe tani le të kandidojë gjithandej 1. 255 00:11:32,050 --> 00:11:34,810 Dhe në fund, vini re që unë me të vërtetë të marrë 0,1. 256 00:11:34,810 --> 00:11:36,165 Pra, problemi zgjidhet. 257 00:11:36,165 --> 00:11:37,280 >> Por jo ende. 258 00:11:37,280 --> 00:11:40,000 Unë tani jam duke shkuar për të marrë një pak kurioz, dhe unë jam duke shkuar për të shkuar mbrapa në tim 259 00:11:40,000 --> 00:11:41,620 Deklarata printf dhe Thuaj, ju e dini se çfarë? 260 00:11:41,620 --> 00:11:44,090 Dua të konfirmoj se ky është me të vërtetë një e dhjeta. 261 00:11:44,090 --> 00:11:47,890 Dhe unë jam duke shkuar për të duan të shohin këtë me, të themi, pesë numra pas presjes dhjetore. 262 00:11:47,890 --> 00:11:48,570 Kjo nuk është një problem. 263 00:11:48,570 --> 00:11:52,020 Unë të ndryshojë dy për një pesë, I përpiluar me të bërë. 264 00:11:52,020 --> 00:11:53,770 Unë ribërjen atë si gjithandej 1. 265 00:11:53,770 --> 00:11:54,990 Kërkoj goxha e mirë. 266 00:11:54,990 --> 00:11:58,570 Kontrollet e mia mendje e shëndoshë mund të përfundojë atje, por Unë jam duke marrë një pak më shumë aventureske. 267 00:11:58,570 --> 00:12:00,330 Unë jam duke shkuar për të ndryshuar 0,5-,10. 268 00:12:00,330 --> 00:12:03,440 Unë dua të shoh 10 shifra pas vendi decimal. 269 00:12:03,440 --> 00:12:09,060 >> Dhe unë jam duke shkuar për të shkuar përpara dhe recompile këtë dhe ribërjen gjithandej 1. 270 00:12:09,060 --> 00:12:13,060 I lloj keqardhje ka testuar këtë më tej, sepse matematika ime nuk është aq e 271 00:12:13,060 --> 00:12:14,320 korrigjuar më, ajo duket. 272 00:12:14,320 --> 00:12:15,630 Por prisni një minutë, ndoshta kjo është vetëm një pikë për shans. 273 00:12:15,630 --> 00:12:17,810 Ndoshta kompjuteri është duke vepruar pak e çuditshme. 274 00:12:17,810 --> 00:12:21,810 Më lejoni të shkojnë përpara dhe të bëjë 20 pikë decimale dhe të siguroj veten se unë e di 275 00:12:21,810 --> 00:12:22,540 se si të bëjë matematikë. 276 00:12:22,540 --> 00:12:23,460 Unë e di se si të programit. 277 00:12:23,460 --> 00:12:26,960 Bëni gjithandej 1, përpilim dhe mallkonte atë. 278 00:12:26,960 --> 00:12:31,110 Kjo është me të vërtetë, me të vërtetë duke marrë larg nga të shënojë. 279 00:12:31,110 --> 00:12:32,490 >> Pra, çfarë po ndodh këtu? 280 00:12:32,490 --> 00:12:36,050 Intuitivisht, bazuar në supozimet tona më herët në lidhje me madhësinë e llojeve të të dhënave, 281 00:12:36,050 --> 00:12:38,040 çfarë duhet të ndodh këtu nën kapuç? 282 00:12:38,040 --> 00:12:39,290 Po? 283 00:12:39,290 --> 00:12:43,000 284 00:12:43,000 --> 00:12:43,590 Saktësisht. 285 00:12:43,590 --> 00:12:46,480 Nëse dëshironi që kjo saktësi shumë, dhe kjo është një dreq e një shumë të saktësi - 286 00:12:46,480 --> 00:12:48,770 20 numra pas presjes dhjetore. 287 00:12:48,770 --> 00:12:51,990 Ju nuk mund të përfaqësojnë një numër arbitrar nëse keni një 288 00:12:51,990 --> 00:12:52,930 Numri i bit arbitrare. 289 00:12:52,930 --> 00:12:54,190 Por ne nuk bëjmë. 290 00:12:54,190 --> 00:12:57,200 Për një float, ne vetëm kemi 32 bit. 291 00:12:57,200 --> 00:13:02,260 >> Pra, në qoftë se 32 bit mund të jetë vetëm në një permuted mënyrë - ashtu si njerëzit tanë në, fazë 292 00:13:02,260 --> 00:13:05,780 duart lart ose poshtë - në një numër i caktuar i mënyra, ka vetëm një numër i caktuar 293 00:13:05,780 --> 00:13:08,640 e numrave reale që ju mund të përfaqësojë me ato copëza. 294 00:13:08,640 --> 00:13:10,500 Dhe kështu që kompjuteri përfundimisht do të ketë të 295 00:13:10,500 --> 00:13:11,730 të fillojë prerja qoshet. 296 00:13:11,730 --> 00:13:15,500 Kompjuteri mund të fshehin ato detaje nga ne për një grimë të vogël të kohës. 297 00:13:15,500 --> 00:13:18,880 Por në qoftë se ne fillojmë poking në numrat dhe duke kërkuar më larg dhe më larg në 298 00:13:18,880 --> 00:13:23,220 zvarritës numrat në numrin e tërë, atëherë ne fillojmë të shohim se ajo është 299 00:13:23,220 --> 00:13:26,480 në fakt përafrimit Ideja e një të dhjetën. 300 00:13:26,480 --> 00:13:29,860 >> Dhe kështu kjo rezulton, tragjikisht, nuk ka një numër të pafund të numrave të 301 00:13:29,860 --> 00:13:35,060 ne nuk mund të përfaqësojnë pikërisht në një kompjuter, te pakten me nje fundme 302 00:13:35,060 --> 00:13:38,030 Numri i bit, një fundme sasia e RAM. 303 00:13:38,030 --> 00:13:41,210 Tani për fat të keq, kjo nganjëherë ka të vërtetë të botës pasojat. 304 00:13:41,210 --> 00:13:45,980 Nëse njerëzit nuk e mjaft të vlerësojmë këtë ose lloj i marrë për të dhënë faktin 305 00:13:45,980 --> 00:13:48,310 se kompjuteri i tyre do vetëm të bëjë atë ata tregojnë atë për të bërë dhe nuk 306 00:13:48,310 --> 00:13:51,430 kuptojnë këto themelor Detajet e reprezentacionit - 307 00:13:51,430 --> 00:13:55,290 i cili, sinqerisht, në disa gjuhë janë fshehur nga përdoruesit, ndryshe në C - 308 00:13:55,290 --> 00:13:56,500 disa gjëra të këqija mund të ndodhë. 309 00:13:56,500 --> 00:13:58,650 >> Dhe çfarë kam menduar ne do të bëjmë është të marrë një hap prapa. 310 00:13:58,650 --> 00:14:00,420 Dhe kjo është në lidhje me një tetë-minutësh Video. 311 00:14:00,420 --> 00:14:04,200 Ajo transmetuar disa vjet më parë, dhe kjo i jep njohuri në të vërtetë ajo që mund të shkojnë 312 00:14:04,200 --> 00:14:09,290 gabuar kur ju vlerësojmë këto nën- llojet e detaje në shumë e shumë të gjithë- 313 00:14:09,290 --> 00:14:10,080 bota reale. 314 00:14:10,080 --> 00:14:12,965 Nëse ne mund të zbehtë dritat për disa minuta. 315 00:14:12,965 --> 00:14:14,360 >> Kryetari 1: Ne tani kthehet për inxhinieri 316 00:14:14,360 --> 00:14:17,160 Fatkeqësitë në mrekulli moderne. 317 00:14:17,160 --> 00:14:18,680 >> Kompjuter - 318 00:14:18,680 --> 00:14:21,340 ne kemi ardhur të gjithë të pranojnë probleme shpesh frustruese 319 00:14:21,340 --> 00:14:23,170 që të shkojë me ta. 320 00:14:23,170 --> 00:14:27,570 Bugs, viruset, dhe glitches software janë çmimet vogël për të paguar për 321 00:14:27,570 --> 00:14:28,960 komoditet. 322 00:14:28,960 --> 00:14:32,040 Por në të teknologjisë së lartë dhe me shpejtësi të lartë ushtarak dhe programi hapësirë 323 00:14:32,040 --> 00:14:38,650 aplikacione, problemi më i vogël mund të zmadhohen në fatkeqësi. 324 00:14:38,650 --> 00:14:44,480 >> Më 4 qershor 1996, shkencëtarët të përgatitur për të të nisë një raketë pa pilot Ariane 5. 325 00:14:44,480 --> 00:14:48,700 Ajo mbante satelitë shkencore projektuar për të krijuar pikërisht si 326 00:14:48,700 --> 00:14:53,250 Fusha magnetike e Tokës bashkëvepron me erërat diellore. 327 00:14:53,250 --> 00:14:57,540 Raketa u ndërtua për Evropian Agjencia hapësirë ​​dhe ngriti off saj nga 328 00:14:57,540 --> 00:14:59,906 objektit në bregdet i French Guiana. 329 00:14:59,906 --> 00:15:03,660 >> JACK GANSSLE: Në rreth 37 sekonda në fluturimit, ata së pari vënë re 330 00:15:03,660 --> 00:15:04,910 diçka ishte duke shkuar gabuar. 331 00:15:04,910 --> 00:15:08,130 Nozzles janë swiveling në një mënyrë për ata me të vërtetë nuk duhet. 332 00:15:08,130 --> 00:15:12,380 Rreth 40 sekonda në fluturimin, qartë automjeti ishte në telashe. 333 00:15:12,380 --> 00:15:14,400 Dhe se kur ata bënë një Vendimi për ta shkatërruar atë. 334 00:15:14,400 --> 00:15:18,520 Siguria varg oficer, me guxim të jashtëzakonshme, presion butonin, 335 00:15:18,520 --> 00:15:23,900 shpërtheu raketa para se ajo mund të të bëhet një rrezik për sigurinë publike. 336 00:15:23,900 --> 00:15:27,810 >> Kryetari 1: Kjo ishte lundrim i parë i Ariane 5, dhe shkatërrimin e saj 337 00:15:27,810 --> 00:15:32,020 ka ndodhur për shkak të një krisje të ngulitura në softuer me raketa-së. 338 00:15:32,020 --> 00:15:33,980 >> JACK GANSSLE: Problemi në Ariane ishte se kishte një numër 339 00:15:33,980 --> 00:15:36,390 që kërkonte 64 bit për të shprehur. 340 00:15:36,390 --> 00:15:39,420 Dhe ata donin të kthyer për një numër të 16-bit. 341 00:15:39,420 --> 00:15:43,130 Ata supozohet se numri nuk ishte do të jetë shumë i madh, se shumica e 342 00:15:43,130 --> 00:15:46,810 këto shifra në 64-bit Numri ishin zero. 343 00:15:46,810 --> 00:15:48,270 Ata ishin gabuar. 344 00:15:48,270 --> 00:15:51,380 >> Kryetari 1: Pamundësia e një software Programi për të pranuar llojin e 345 00:15:51,380 --> 00:15:55,350 numri i gjeneruar nga një tjetër ishte në të rrënjës së të dështimit. 346 00:15:55,350 --> 00:15:59,970 Software zhvillimit kishte bërë një shumë të Pjesa e kushtueshme e teknologjisë së re. 347 00:15:59,970 --> 00:16:03,980 4 Raketa Ariane kishte qenë shumë i suksesshme, aq shumë e softuerit 348 00:16:03,980 --> 00:16:07,480 krijuar sepse ajo ishte gjithashtu përdoret në Ariane 5. 349 00:16:07,480 --> 00:16:11,980 >> Philip Coyle: Problemi themelor ishte se Ariane 5 ishte shpejt, 350 00:16:11,980 --> 00:16:13,720 përshpejtuar të shpejtë. 351 00:16:13,720 --> 00:16:17,250 Dhe software nuk ka pasur llogariten për këtë. 352 00:16:17,250 --> 00:16:20,770 >> Kryetari 1: shkatërrimi i raketave ishte një fatkeqësi e madhe financiare, 353 00:16:20,770 --> 00:16:24,200 të gjitha për shkak të një gabimi minutë software. 354 00:16:24,200 --> 00:16:27,820 Por kjo nuk ishte hera e parë e të dhënave Problemet konvertimit kishte pllakosur moderne 355 00:16:27,820 --> 00:16:30,620 Teknologji raketa. 356 00:16:30,620 --> 00:16:34,480 >> JACK GANSSLE: Në vitin 1991, me fillimin i Luftës së parë të Gjirit, Patriot 357 00:16:34,480 --> 00:16:38,610 raketave përjetuar një lloj i ngjashëm e një problemi konvertimit numrave. 358 00:16:38,610 --> 00:16:44,910 Si rezultat, 28 ushtarë amerikanë ishin vrarë dhe rreth 100 të tjerë u plagosën 359 00:16:44,910 --> 00:16:48,600 kur Patriot, e cila ishte menduar për të mbrojtur kundër Scuds hyrëse, 360 00:16:48,600 --> 00:16:51,630 dështuar të zjarrit një raketë. 361 00:16:51,630 --> 00:16:55,110 >> Kryetari 1: Kur Iraku pushtoi Kuvajtin dhe Amerika nisur Desert Storm në 362 00:16:55,110 --> 00:17:00,570 në fillim të 1991, bateri të tjera raketash Patriot ishin të vendosur për të mbrojtur Arabinë Saudite 363 00:17:00,570 --> 00:17:04,760 dhe Izraeli, nga Skud Irakut Sulmet e raketave. 364 00:17:04,760 --> 00:17:09,720 Patriot SHBA është një medium-varg tokë-ajër sistemi i prodhuar nga 365 00:17:09,720 --> 00:17:11,569 Kompania Raytheon. 366 00:17:11,569 --> 00:17:16,410 >> THEODORE POSTOL: Madhësia e Patriot interceptuese në vetvete është afërsisht 367 00:17:16,410 --> 00:17:17,710 20-metra të gjatë. 368 00:17:17,710 --> 00:17:20,800 Dhe ajo peshon rreth 2000 £. 369 00:17:20,800 --> 00:17:22,940 Dhe ajo mbart një kokë rakete prej rreth - 370 00:17:22,940 --> 00:17:24,905 Unë mendoj se është rreth 150 £. 371 00:17:24,905 --> 00:17:31,030 Dhe kokë rakete në vetvete është një shpërthyese të lartë e cila ka 372 00:17:31,030 --> 00:17:33,270 fragmente rreth tij. 373 00:17:33,270 --> 00:17:37,490 Zorrë e mbushje është projektuar për të vepruar si buckshot. 374 00:17:37,490 --> 00:17:40,720 >> Kryetari 1: Raketat janë kryer katër për enë dhe janë transportuar 375 00:17:40,720 --> 00:17:43,050 nga një gjysmë rimorkio. 376 00:17:43,050 --> 00:17:47,490 >> Philip Coyle: Patriot anti-raketë Sistemi i shkon prapa në 377 00:17:47,490 --> 00:17:50,710 paktën 20 vjet. 378 00:17:50,710 --> 00:17:54,350 Ajo ishte projektuar fillimisht si një ajër të mbrojtjes nga raketat 379 00:17:54,350 --> 00:17:56,190 xhiruar poshtë aeroplanë të armikut. 380 00:17:56,190 --> 00:18:02,490 Në Luftën e Gjirit të parë, kur se lufta erdhi së bashku, Ushtria donte të përdorin atë 381 00:18:02,490 --> 00:18:05,535 për të xhiruar poshtë Scuds jo, aeroplanët. 382 00:18:05,535 --> 00:18:09,310 Forca ajrore e Irakut nuk ishte aq shumë e një problemi. 383 00:18:09,310 --> 00:18:12,450 Por ushtria ishte i shqetësuar në lidhje me Scuds. 384 00:18:12,450 --> 00:18:15,950 Dhe kështu ata u përpoqën për të përmirësuar Patriot. 385 00:18:15,950 --> 00:18:18,750 >> Kryetari 1: ndërprejnë një raketë armik udhëtojnë në mach ishte pesë 386 00:18:18,750 --> 00:18:20,890 do të jetë mjaft sfiduese. 387 00:18:20,890 --> 00:18:25,590 Por kur Patriot u nxituan në shërbimit, ushtria nuk ishte në dijeni të një 388 00:18:25,590 --> 00:18:31,710 Modifikim Irakut që e bëri të tyre Scuds gati e pamundur për të goditur. 389 00:18:31,710 --> 00:18:35,240 >> THEODORE POSTOL: Çfarë ndodhi është Scuds që ishin 390 00:18:35,240 --> 00:18:36,570 vijnë në ishin të paqëndrueshme. 391 00:18:36,570 --> 00:18:37,532 Ata ishin hapa të pasigurt. 392 00:18:37,532 --> 00:18:43,220 Arsyeja për këtë ishte irakenët, në mënyrë që të merrni 600 kilometra nga një 393 00:18:43,220 --> 00:18:47,530 300-kilometër-varg raketat, mori pesha nga mbushje përparme. 394 00:18:47,530 --> 00:18:49,290 Ata bënë mbushjen lehta. 395 00:18:49,290 --> 00:18:53,110 Pra, tani është duke u përpjekur Patriot që vijnë në Skud. 396 00:18:53,110 --> 00:18:56,470 Dhe shumica e kohës, dërrmuese Shumica e kohës, ajo vetëm do 397 00:18:56,470 --> 00:18:58,730 fluturojnë nga Skud. 398 00:18:58,730 --> 00:19:01,760 >> Kryetari 1: Pasi sistemi i Patriot Operatorët e kuptoi Patriot humbura 399 00:19:01,760 --> 00:19:06,690 objektivi i saj, ata shpërthyer patriotë Mbushja e mundur për të shmangur 400 00:19:06,690 --> 00:19:10,300 viktima në qoftë se ajo u lejohen të bjerë në tokë. 401 00:19:10,300 --> 00:19:14,540 >> THEODORE POSTOL: Kjo ishte ajo që më njerëzit e panë si fireballs mëdha në qiell 402 00:19:14,540 --> 00:19:20,350 dhe keqkuptuar si përgjimet i mbushjet e raketave Skud. 403 00:19:20,350 --> 00:19:23,320 >> Kryetari 1: Edhe pse në qiell natën Patriots duk të jetë sukses 404 00:19:23,320 --> 00:19:27,530 shkatërrimin Scuds, atje në Dhahran mund të ketë asnjë gabim saj në lidhje me 405 00:19:27,530 --> 00:19:29,140 performancës. 406 00:19:29,140 --> 00:19:34,180 Atje, sistemi Patriot-së radari humbi gjurmët e një Skud hyrëse dhe kurrë nuk 407 00:19:34,180 --> 00:19:36,380 nisur për shkak të një krisje software. 408 00:19:36,380 --> 00:19:39,890 409 00:19:39,890 --> 00:19:42,700 >> Ajo ishte izraelitët që zbuloi i pari se më me sistemin 410 00:19:42,700 --> 00:19:48,020 ishte në, më i madh mospërputhja koha u bë shkak për një orë 411 00:19:48,020 --> 00:19:50,470 ngulitur në kompjuterin e sistemit. 412 00:19:50,470 --> 00:19:54,640 >> JACK GANSSLE: Rreth dy javë para Tragjedia në Dhahran, izraelitët 413 00:19:54,640 --> 00:19:58,440 raportuar të Departamentit të Mbrojtjes se sistemi ishte duke humbur kohë. 414 00:19:58,440 --> 00:20:01,280 Pas rreth tetë orë të rrjedhshëm, ata re se sistemi eshte 415 00:20:01,280 --> 00:20:03,530 bëhet dukshëm më pak të saktë. 416 00:20:03,530 --> 00:20:07,710 Departamenti i Mbrojtjes u përgjigj duke thënë të gjitha baterive Patriot 417 00:20:07,710 --> 00:20:10,500 për të mos i lënë sistemet e për një kohë të gjatë. 418 00:20:10,500 --> 00:20:12,430 Ata kurrë nuk tha se çfarë ishte një kohë të gjatë. 419 00:20:12,430 --> 00:20:13,330 Tetë orë? 420 00:20:13,330 --> 00:20:13,810 10 orë? 421 00:20:13,810 --> 00:20:14,990 1,000 orë? 422 00:20:14,990 --> 00:20:17,150 Askush nuk e dinte. 423 00:20:17,150 --> 00:20:20,220 >> Kryetari 1: bateri Patriot stacionuar në kazermat në Dhahran 424 00:20:20,220 --> 00:20:24,660 dhe ora meta e saj të brendshme kishin qenë në më shumë se 100 orë në natën e 425 00:20:24,660 --> 00:20:27,470 25 shkurt. 426 00:20:27,470 --> 00:20:31,770 >> JACK GANSSLE: Është një kohë për të gjurmuar Saktësia e rreth një të dhjetën e një të dytë. 427 00:20:31,770 --> 00:20:34,480 Tani, një të dhjetën e një të dytë është një Numri interesante, sepse ajo nuk mund të jetë 428 00:20:34,480 --> 00:20:39,940 shprehur ne binar saktësisht, që do të thotë ajo nuk mund të shprehet saktësisht në 429 00:20:39,940 --> 00:20:42,500 çdo kompjuter moderne dixhitale. 430 00:20:42,500 --> 00:20:46,920 Është e vështirë të besohet, por përdorin këtë si një shembull. 431 00:20:46,920 --> 00:20:49,000 Le të marrë numrin një të tretën. 432 00:20:49,000 --> 00:20:53,150 Një e treta nuk mund të shprehet pikërisht në decimal. 433 00:20:53,150 --> 00:20:57,500 Një e treta e 0,333 është duke shkuar on for pafundësi. 434 00:20:57,500 --> 00:21:02,270 Nuk ka asnjë mënyrë për të bërë këtë me saktësinë absolute në decimal. 435 00:21:02,270 --> 00:21:05,370 Kjo është saktësisht të njëjtin lloj të problemit se ndodhur ne patriotin. 436 00:21:05,370 --> 00:21:09,880 Më sistemi vrapoi, keq gabim kohë u bë. 437 00:21:09,880 --> 00:21:13,840 >> Kryetari 1: Pas 100 orësh operacion, gabim në atë kohë ishte vetëm 438 00:21:13,840 --> 00:21:16,140 rreth një e treta e një të dytë. 439 00:21:16,140 --> 00:21:20,800 Por në drejtim të synimeve të dhënësit të një raketë udhëtojnë në mach pesë, kjo ka rezultuar në 440 00:21:20,800 --> 00:21:24,410 një gabim ndjekja e mbi 600 metra. 441 00:21:24,410 --> 00:21:27,670 Ajo do të jetë një gabim fatal për ushtarët në Dhahran. 442 00:21:27,670 --> 00:21:33,450 >> THEODORE POSTOL: Çfarë ka ndodhur është një Fillimin Skud u zbulua nga herët 443 00:21:33,450 --> 00:21:34,280 Satelitët paralajmëruese. 444 00:21:34,280 --> 00:21:38,550 Dhe ata e dinin se Skud u vjen në drejtim të tyre të përgjithshëm. 445 00:21:38,550 --> 00:21:41,000 Ata nuk e dinë se ku ai po vinte. 446 00:21:41,000 --> 00:21:43,900 >> Kryetari 1: Ajo tani ishte deri në radar komponent i sistemit Patriot 447 00:21:43,900 --> 00:21:48,910 mbrojtur Dhahran për të gjetur dhe për të mbajtur ndjekur nga raketat e armikut në hyrje. 448 00:21:48,910 --> 00:21:50,580 >> JACK GANSSLE: radar ishte shumë i zgjuar. 449 00:21:50,580 --> 00:21:53,770 Kjo në fakt do të ndjekur pozicionin e Skud dhe pastaj të parashikohet se ku ajo 450 00:21:53,770 --> 00:21:57,160 ndoshta do të jetë koha e ardhshme radar dërguar një impuls jashtë. 451 00:21:57,160 --> 00:21:58,870 Kjo u quajt porta varg. 452 00:21:58,870 --> 00:22:04,020 >> THEODORE POSTOL: Pastaj një herë Patriot vendos ka kaluar kohë të mjaftueshme për të shkuar 453 00:22:04,020 --> 00:22:09,420 mbështesë dhe të kontrollojë vendndodhjen e ardhshëm për ky objekt zbuluar, ajo shkon prapa. 454 00:22:09,420 --> 00:22:14,450 Pra, kur ai u kthye për të gabuar vend, atëherë ajo nuk sheh ndonjë objekt. 455 00:22:14,450 --> 00:22:18,200 Dhe ajo vendos se nuk kishte asnjë objekt, ajo ishte një zbulim të rreme, dhe 456 00:22:18,200 --> 00:22:19,680 bie pista. 457 00:22:19,680 --> 00:22:22,970 >> Kryetari 1: Skud hyrje zhdukur nga ekrani i radarit, dhe 458 00:22:22,970 --> 00:22:26,050 sekonda më vonë ai u përplas në fortesë. 459 00:22:26,050 --> 00:22:31,950 Skud vrarë dhe 28 ishte e fundit gjuajtur gjatë Luftës së parë të Gjirit. 460 00:22:31,950 --> 00:22:37,700 Tragjikisht, software updated mbërritën në Dhahran nesërmen. 461 00:22:37,700 --> 00:22:41,800 Metë software kishin qenë të fiksuara, mbyllur një kapitull në trazuar 462 00:22:41,800 --> 00:22:43,690 Historia e raketave Patriot. 463 00:22:43,690 --> 00:22:46,780 464 00:22:46,780 --> 00:22:50,710 >> Patriot është në fakt një akronim për ndjekjen faza Array 465 00:22:50,710 --> 00:22:51,960 Ndërpres e objektivit. 466 00:22:51,960 --> 00:22:54,650 467 00:22:54,650 --> 00:23:00,840 >> DAVID J Malan: Të gjithë të drejtë, kështu që një kthjellta shembull, të jetë i sigurt. 468 00:23:00,840 --> 00:23:03,430 Dhe për fat të mirë, këto Niveli më i ulët mete nuk janë diçka që ne do të 469 00:23:03,430 --> 00:23:06,220 zakonisht duhet të vlerësojmë, sigurisht jo me disa prej tonë 470 00:23:06,220 --> 00:23:07,360 hershme e programeve. 471 00:23:07,360 --> 00:23:10,450 Përkundrazi, shumica e mete ju do të Takimi do të jetë logjik në natyrë, 472 00:23:10,450 --> 00:23:12,900 sintaksore në natyrë ku Kodi thjesht nuk punojnë drejtë. 473 00:23:12,900 --> 00:23:14,140 Dhe ju e dini se goxha shpejt. 474 00:23:14,140 --> 00:23:16,850 >> Por, veçanërisht kur kemi të fundi i semestrit, ajo do të 475 00:23:16,850 --> 00:23:20,620 bëhen gjithnjë e më shumë një mundësi për të të vërtetë të mendojnë shumë rreth dizajnit 476 00:23:20,620 --> 00:23:22,960 nga programet tuaja dhe themelore përfaqësim 477 00:23:22,960 --> 00:23:24,520 atje, gjithashtu, e të dhënave. 478 00:23:24,520 --> 00:23:28,010 Për shembull, ne do të prezantoj MySQL, e cila është një bazë të dhënash motor popullarizuar 479 00:23:28,010 --> 00:23:30,850 që ju mund të përdorni me faqet e internetit për të të ruajtur të dhënat në fund mbrapa. 480 00:23:30,850 --> 00:23:34,630 Dhe ju do të duhet të fillojnë të vendosin në fundi i semestrit jo vetëm atë 481 00:23:34,630 --> 00:23:38,790 lloje të të dhënave përgjatë këtyre linjave për të përdorur por saktësisht se sa bit për t'u përdorur, 482 00:23:38,790 --> 00:23:42,740 ose nëse nuk ju duan të ruajtur datat si datat dhe herë si herë dhe gjithashtu 483 00:23:42,740 --> 00:23:46,890 gjëra të tilla si sa i madh nuk ju duan ID unike që të jetë për, të themi, përdoruesit 484 00:23:46,890 --> 00:23:47,680 në bazën e të dhënave tuaja. 485 00:23:47,680 --> 00:23:51,210 >> Në fakt, në qoftë se disa prej jush kanë pasur Facebook përgjegjëse për mjaft kohë, 486 00:23:51,210 --> 00:23:53,680 dhe ju e dini se si të merrni qasje të ID tuaj të përdoruesit - 487 00:23:53,680 --> 00:23:57,930 të cilat nganjëherë tregon deri në tuaj URL s Profile nëse ju keni zgjedhur një 488 00:23:57,930 --> 00:24:02,070 Mbyll për URL, ose në qoftë se ju keni API Grafiku përdoren Facebook-ut, 489 00:24:02,070 --> 00:24:05,510 API publikisht në dispozicion nga të cilat ju Facebook mund të kërkoni për të dhënat e papërpunuara - 490 00:24:05,510 --> 00:24:07,580 ju mund të shihni se çfarë ID juaj është numerike. 491 00:24:07,580 --> 00:24:10,880 Dhe disa vjet më parë, në thelb Facebook kishte për të ndryshuar nga përdorimi 492 00:24:10,880 --> 00:24:15,980 ekuivalent i ints për të përdorur gjatë gjatë, sepse me kalimin e kohës si përdorues të vijnë 493 00:24:15,980 --> 00:24:19,780 dhe shkojnë dhe për të krijuar shumë të llogarive dhe llogaritë e rreme, edhe ata shumë lehtë 494 00:24:19,780 --> 00:24:24,630 ishin në gjendje të shter diçka si një 4 miliard dollarë vlera e mundur si një int. 495 00:24:24,630 --> 00:24:28,340 >> Pra, më shumë në ato llojet e çështjeve poshtë rrugës, si edhe. 496 00:24:28,340 --> 00:24:30,750 Të gjithë të drejtë, kështu që u hedh. 497 00:24:30,750 --> 00:24:31,670 Kjo ishte pasaktësi. 498 00:24:31,670 --> 00:24:32,730 Një çift i njoftimeve të shpejtë. 499 00:24:32,730 --> 00:24:35,710 Pra, seksionet zyrtarisht fillojnë këtë që vjen E diel, e hënë, e martë. 500 00:24:35,710 --> 00:24:39,080 Ju do të dëgjoni me email më vonë këtë javë si për të caktimit tuaj seksion. 501 00:24:39,080 --> 00:24:42,570 Dhe ju do të edhe këtu në atë pikë sa për të ndryshuar seksionin tuaj nëse 502 00:24:42,570 --> 00:24:45,660 Orari tani ka ndryshuar ose partneri juaj Niveli rehati tani ka ndryshuar. 503 00:24:45,660 --> 00:24:49,380 Ndërkohë P-set një dhe një haker janë për shkak këtë të enjte me opsionin për të 504 00:24:49,380 --> 00:24:52,450 zgjasë afatin kohor për Specifikimet deri të premten 505 00:24:52,450 --> 00:24:53,830 në një mënyrë tipike. 506 00:24:53,830 --> 00:24:57,500 >> Kuptojë se përfshihet me problemin specifikimet e përcaktuara janë udhëzime 507 00:24:57,500 --> 00:25:02,770 se si të përdorin pajisjen CS50, të bëjë, si dhe disa mjete specifike CS50 508 00:25:02,770 --> 00:25:06,540 si stil 50, të cilat mund t'ju japin me reagime dinamike në 509 00:25:06,540 --> 00:25:10,230 cilësia e stilit tuaj të kodit dhe gjithashtu kontrolloni 50, e cila mund të sigurojë që ju me të 510 00:25:10,230 --> 00:25:13,160 reagime dinamike si për të tuaj Korrektësia KODI së. 511 00:25:13,160 --> 00:25:16,850 Fal se ne jemi ende hekurosje një Kinks pak me kontroll 50. 512 00:25:16,850 --> 00:25:21,490 Disa prej shokëve tuaj që ka filluar rreth 04:00 në natën e premte, kur 513 00:25:21,490 --> 00:25:25,130 spekulim ngjitej kanë vënë re që atëherë një mete pak se ne jemi duke punuar 514 00:25:25,130 --> 00:25:29,010 përmes, dhe keqardhjet për këdo që ka përjetuar frustrimet e panevojshme. 515 00:25:29,010 --> 00:25:30,340 Faji është i imi. 516 00:25:30,340 --> 00:25:34,080 Por, ne do të ndjekë deri në CS50 diskutuar se kur është zgjidhur. 517 00:25:34,080 --> 00:25:35,700 >> Pra, një fjalë në rezultatet vetë. 518 00:25:35,700 --> 00:25:38,990 Pra, kjo do të jetë një javë ose dy para jush të fillojë të marrë reagime në grupe problematike 519 00:25:38,990 --> 00:25:40,640 sepse ju ende nuk e kanë një shoku mësimdhënies. 520 00:25:40,640 --> 00:25:44,510 Dhe, edhe atëherë, ne do të fillojnë të vlerësojnë Problemi C vendos para se ne 521 00:25:44,510 --> 00:25:46,970 të shkuar mbrapa dhe vlerësuar kështu zeroja që ju të merrni më të rëndësishme 522 00:25:46,970 --> 00:25:48,150 reagime më shpejt. 523 00:25:48,150 --> 00:25:51,870 Por në përgjithësi per planin mësimor, CS50 grupe problematike janë vlerësuar së bashku 524 00:25:51,870 --> 00:25:53,580 pas katër akseve - 525 00:25:53,580 --> 00:25:55,760 , fushëveprimi korrektësisë, dizajn, dhe stil. 526 00:25:55,760 --> 00:25:59,210 >> Fusha do të jetë një numër në mënyrë tipike mes zero dhe se pesë 527 00:25:59,210 --> 00:26:01,830 kap sa i copë që ju kafshonin off. 528 00:26:01,830 --> 00:26:03,750 Në mënyrë tipike, ju dëshironi që kjo të jetë pesë. 529 00:26:03,750 --> 00:26:05,300 Ju të paktën u përpoq çdo gjë. 530 00:26:05,300 --> 00:26:09,330 Dhe vini re kjo është një faktor multiplikativ kështu që duke bërë vetëm një pjesë të 531 00:26:09,330 --> 00:26:12,520 set problemi nuk është strategjia më e mirë. 532 00:26:12,520 --> 00:26:15,610 >> Ndërkohë, më e dukshme është Rëndësia e korrektësisë - 533 00:26:15,610 --> 00:26:18,620 vetëm programi juaj është e saktë me respektojnë të specifikimit? 534 00:26:18,620 --> 00:26:21,510 Kjo është peshuar qëllimisht më shumë shumë se dy akset e tjera nga një 535 00:26:21,510 --> 00:26:24,450 faktor i tre sepse ne njohim se zakonisht ju do të jeni për të shpenzuar një 536 00:26:24,450 --> 00:26:28,600 kohë shumë më tepër përpjekje për të kapur poshtë disa bugs, marrë kodin tuaj për të punuar, atëherë ju 537 00:26:28,600 --> 00:26:31,540 jemi indenting atë dhe duke zgjedhur Emrat e duhura ndryshueshme dhe 538 00:26:31,540 --> 00:26:33,800 pëlqen, e cila është në fund të tjera i spektrit te stilit. 539 00:26:33,800 --> 00:26:36,160 >> Kjo nuk do të thotë stil nuk është i rëndësishme, dhe ne do të predikojnë atë mbi 540 00:26:36,160 --> 00:26:37,920 Ora si në ligjërata dhe në seksione. 541 00:26:37,920 --> 00:26:40,520 Style referohet estetikë e kodit tuaj. 542 00:26:40,520 --> 00:26:43,980 A keni zgjedhur mirë me emrin variabla që janë të shkurtër, por disi 543 00:26:43,980 --> 00:26:44,680 përshkrues? 544 00:26:44,680 --> 00:26:47,840 Është kodi juaj prerë si ju kam parë në Ligjërata dhe në mënyrë konsistente 545 00:26:47,840 --> 00:26:49,070 me stilin e 50? 546 00:26:49,070 --> 00:26:51,220 >> Së fundi është e projektimit të drejtë atje në mes. 547 00:26:51,220 --> 00:26:54,090 Design është një e vështirë për të vënë një gisht në për shkak se ajo është shumë më e 548 00:26:54,090 --> 00:26:55,000 subjektive. 549 00:26:55,000 --> 00:26:58,610 Por kjo është ndoshta më e rëndësishme e tre akset në drejtim të pedagogjike 550 00:26:58,610 --> 00:27:02,050 vlera me kalimin e kohës dhe se kjo do të jetë mundësi shokët e mësimdhënies për 551 00:27:02,050 --> 00:27:04,110 ju japin me reagime cilësore. 552 00:27:04,110 --> 00:27:08,100 Në të vërtetë, në CS50 edhe pse ne nuk kemi këto formula dhe pikët, në fund 553 00:27:08,100 --> 00:27:11,350 të ditës këto janë shumë qëllimisht kova shumë të vogla - vlerat pikë 554 00:27:11,350 --> 00:27:13,460 në mes të zeros dhe tre dhe zero dhe pesë. 555 00:27:13,460 --> 00:27:17,800 Ne nuk do të përpiqet për të nxjerrë linja shumë të ashpra mes grupe probleme ose midis 556 00:27:17,800 --> 00:27:21,490 Nxënësit por më tepër përqendrohet aq sa ne mundemi më cilësore, shkrim i zakonshëm 557 00:27:21,490 --> 00:27:25,490 reagimet, qoftë shtypen ose verbale nga shokët tuaj të veçantë mësimore, 558 00:27:25,490 --> 00:27:27,050 ju do të merrni të dini mjaft mirë. 559 00:27:27,050 --> 00:27:32,340 >> Por në përgjithësi, ato janë peshat se akset e ndryshme do të ketë. 560 00:27:32,340 --> 00:27:35,480 Ndërkohë, gjithashtu, ia vlen të mbajtur në mend se ju nuk duhet të supozojmë se një 561 00:27:35,480 --> 00:27:38,870 tre nga pesë është një 60% dhe pra afërsisht dështuar. 562 00:27:38,870 --> 00:27:41,410 Tre është menduar të jetë qëllimisht lloj mes të rrugës të mirë. 563 00:27:41,410 --> 00:27:43,480 Nëse ju jeni duke marrë në threes fillim të semestrit, që është 564 00:27:43,480 --> 00:27:46,340 për qëllim të vërtetë të jetë një e mirë vendosni për të filluar. 565 00:27:46,340 --> 00:27:50,510 Nëse jeni duke marrë twos, panaire, nuk ka patjetër disa punë për të paguar pak 566 00:27:50,510 --> 00:27:53,250 më shumë vëmendje, për të përfituar e seksioneve dhe të orarit të punës. 567 00:27:53,250 --> 00:27:54,590 >> Nëse jeni duke marrë katër këmbë tre dhe pesë sosh, e madhe. 568 00:27:54,590 --> 00:27:57,430 Por me të vërtetë, ne shpresojmë për të parë trajektoret ndërmjet nxënësve - shumë 569 00:27:57,430 --> 00:28:00,575 individualizuar për student, por duke filluar semestri këtu në lloj të 570 00:28:00,575 --> 00:28:04,100 dy të gamë të tre, por duke i dhënë fund deri këtu në varg 4-5. 571 00:28:04,100 --> 00:28:05,440 Kjo është ajo që ne jemi me të vërtetë duke kërkuar për të. 572 00:28:05,440 --> 00:28:09,590 Dhe ne do të mbajë në mend se deltën ju shfaqin në mes të zeros jave dhe javës 573 00:28:09,590 --> 00:28:12,170 12 kur unë jam duke bërë nota. 574 00:28:12,170 --> 00:28:16,380 Kjo nuk ka rëndësi për ne absolutisht si ju të drejtë në fillim, nëse tuaj 575 00:28:16,380 --> 00:28:19,330 Trajektorja është me të vërtetë lart dhe të fortë. 576 00:28:19,330 --> 00:28:24,000 >> Ndershmëria akademik - aq më lejoni të vënë në tim zëri më serioz për vetëm një moment. 577 00:28:24,000 --> 00:28:28,510 Pra, ky kurs ka dallimin e dërgimin studentë më shumë se çdo tjetër 578 00:28:28,510 --> 00:28:30,950 në histori të bordit ad, unë besoj. 579 00:28:30,950 --> 00:28:34,220 Ne kemi lloj numërimin e humbur në këtë Pika e sa shpesh ndodh kjo. 580 00:28:34,220 --> 00:28:37,090 Dhe kjo nuk është Nxënësit sepse në 50 janë më të pandershëm se tyre 581 00:28:37,090 --> 00:28:38,690 Shokët e klasës gjetkë. 582 00:28:38,690 --> 00:28:42,800 Por e kuptojnë, gjithashtu, se ne jemi shumë të mirë në zbulimin këtë gjë e tillë. 583 00:28:42,800 --> 00:28:45,920 >> Dhe qe eshte avantazh që një klasë shkenca kompjuterike ka në atë që ne 584 00:28:45,920 --> 00:28:49,110 dhe ne nuk mund të krahasohen të gjithë nxënësit Problemi përcakton palë-e mençur kundër çdo 585 00:28:49,110 --> 00:28:51,470 të tjera, jo vetëm këtë vit por të gjitha viteve të kaluara. 586 00:28:51,470 --> 00:28:55,080 Ne kemi aftësinë, si studentë në klasë, për të Google dhe për të gjetur kodin 587 00:28:55,080 --> 00:28:57,440 në faqet si Github dhe Forume diskutim. 588 00:28:57,440 --> 00:29:00,840 Nuk ka absolutisht zgjidhje për të CS50 p-vendos lundrues rreth atje. 589 00:29:00,840 --> 00:29:02,710 Por në qoftë se ju mund të gjeni ato, ne mund të gjeni ato. 590 00:29:02,710 --> 00:29:07,130 Dhe e gjithë kjo është shumë e automatizuar dhe të lehtë dhe të trishtuar për ne për të gjetur. 591 00:29:07,130 --> 00:29:10,990 >> Por unë dua të theksoj, gjithashtu, se Politika akademik sigurisht e ndershmëria është 592 00:29:10,990 --> 00:29:13,960 shumë për qëllim të jetë shumë e kundërta e atij shpirti. 593 00:29:13,960 --> 00:29:17,506 Në të vërtetë, këtë vit ne kemi gjëra të riformulohet në planin mësimor të jetë ky, dot 594 00:29:17,506 --> 00:29:19,790 dot dot, me më shumë detaje në syllabus. 595 00:29:19,790 --> 00:29:22,860 Por tema dominuese në kurs është me të vërtetë të jenë të arsyeshme. 596 00:29:22,860 --> 00:29:26,160 Ne e pranojmë se ka një të rëndësishëm Shuma e pedagogjike 597 00:29:26,160 --> 00:29:30,550 vlera në bashkëpunim, në një farë mase, me shokët e klasës, ku ju 598 00:29:30,550 --> 00:29:33,700 dy ose tre ose ju jeni më shumë duke qëndruar në një bord të bardhë 599 00:29:33,700 --> 00:29:35,670 whiteboarding, në mënyrë që të flasin, idetë tuaja - 600 00:29:35,670 --> 00:29:39,480 shkrim nga pseudokod në foto, diagramimin se çfarë duhet të jetë në qoftë se Mario 601 00:29:39,480 --> 00:29:41,350 ju ishit për të shkruar atë më parë në pseudokod. 602 00:29:41,350 --> 00:29:43,240 Çfarë duhet algorithm pangopur - 603 00:29:43,240 --> 00:29:46,100 si duhet të sillen në Problemi përcakton një? 604 00:29:46,100 --> 00:29:50,440 >> Dhe kështu të kuptojë se sjellja që ne inkurajojmë është shumë e 605 00:29:50,440 --> 00:29:51,470 më shumë përgjatë këtyre linjave. 606 00:29:51,470 --> 00:29:53,890 Dhe në planin mësimor, ju do të shihni një bandë e tërë e plumbave nën një 607 00:29:53,890 --> 00:29:57,740 Kategoria e arsyeshme dhe një jo të arsyeshme kategori që na ndihmon të ndihmojë 608 00:29:57,740 --> 00:30:00,740 ju përfundojë mendjen tuaj rreth ku ne do të tërheqë atë linjë. 609 00:30:00,740 --> 00:30:04,340 Dhe në përgjithësi, një rregull i mirë i gishtit është se në qoftë se ju jeni duke luftuar për të zgjidhur 610 00:30:04,340 --> 00:30:07,990 disa bug dhe shoku juaj apo shok klase është ulur tjetër për ju, ajo është 611 00:30:07,990 --> 00:30:11,530 arsyeshme për ju për të treguar atë apo të saj kodin tuaj dhe të thonë, hej, mund të ju ndihmojë 612 00:30:11,530 --> 00:30:13,700 mua të kuptoj se çfarë po ndodh gabuar këtu? 613 00:30:13,700 --> 00:30:17,110 >> Ne zakonisht nuk përqafojnë anën e kundërt. 614 00:30:17,110 --> 00:30:20,730 Kjo nuk është një përgjigje e saktë për tuaja mik apo shok klase këtu për të thënë, oh, 615 00:30:20,730 --> 00:30:22,510 vetëm shikoni në minierë dhe figura nga ajo se. 616 00:30:22,510 --> 00:30:24,400 Kjo është lloj i paarsyeshëm. 617 00:30:24,400 --> 00:30:27,750 Por, duke pasur dikë tjetër, një tjetër të trurit, një palë sy të shikojmë në 618 00:30:27,750 --> 00:30:31,620 ekranin tuaj apo të shikoni në kodin tuaj Dhe thuaj, a jeni te sigurte qe doni 619 00:30:31,620 --> 00:30:32,760 që të ketë një lak këtu? 620 00:30:32,760 --> 00:30:34,800 Apo jeni te sigurte qe doni se pikëpresje këtu? 621 00:30:34,800 --> 00:30:37,090 Ose oh, se mesazhi gabimi do të thotë kjo. 622 00:30:37,090 --> 00:30:39,580 Ata janë shumë të arsyeshme dhe Sjelljet e inkurajuar. 623 00:30:39,580 --> 00:30:44,010 >> Rastet për të cilat unë kam qenë duke aluduar në herët valoj poshtë për të, kur nxënësit janë 624 00:30:44,010 --> 00:30:47,350 natën vonë duke e bërë gjykimin e dobët Vendimet dhe emailing kodin e tyre për të 625 00:30:47,350 --> 00:30:50,130 dikush tjetër, ose vetëm duke thënë, këtu, kjo është në Dropbox ose 626 00:30:50,130 --> 00:30:51,610 Googling natën vonë. 627 00:30:51,610 --> 00:30:54,880 Dhe kështu që unë do të inkurajojë dhe të lypin prej jush, në qoftë se ju keni ato të pashmangshme 628 00:30:54,880 --> 00:30:58,450 momentet e stresit, ju jeni bumping deri kundër afatit, ju nuk keni vonë 629 00:30:58,450 --> 00:31:01,490 ditë pasi ajo është tashmë e premte në se pikë, email kokat e kursit ose 630 00:31:01,490 --> 00:31:02,330 veten direkt. 631 00:31:02,330 --> 00:31:04,790 Thuaj, dëgjoni, unë jam në tim thyer pikë këtu. 632 00:31:04,790 --> 00:31:06,660 Le të ketë një bisedë të dhe të kuptoj atë. 633 00:31:06,660 --> 00:31:10,400 Përdorur për web ose disa të tjera jo Sjellja e arsyeshme nuk është kurrë 634 00:31:10,400 --> 00:31:13,070 zgjidhje, dhe shumë prej tuaj shokët e klasës nuk janë më këtu në 635 00:31:13,070 --> 00:31:15,150 Kampusi shkak të asaj gjykim të dobët. 636 00:31:15,150 --> 00:31:17,840 Por kjo është shumë e lehtë për fund që linjë. 637 00:31:17,840 --> 00:31:22,950 >> Dhe këtu është një foto pak për të pirë e të ngrënë ju deri nga Reddit kështu që tani 638 00:31:22,950 --> 00:31:25,720 gjithçka do të jetë OK. 639 00:31:25,720 --> 00:31:30,210 >> Pra, një radhitje të shpejtë, atëherë, e ku ne e kemi lënë jashtë. 640 00:31:30,210 --> 00:31:33,690 Pra, javën e kaluar, kujtoj se ne kemi prezantuar kushtet jo në Scratch 641 00:31:33,690 --> 00:31:34,880 C por në këtë kohë. 642 00:31:34,880 --> 00:31:38,300 Dhe aty ishte një sintaksë e re, por të vërtetë nuk ka ide të reja në vetvete. 643 00:31:38,300 --> 00:31:42,630 Ne kishim shprehje boolean që ne të mund ose së bashku me dy vertikale 644 00:31:42,630 --> 00:31:46,490 bare apo dhe së bashku me dy ampersands, duke thënë se të dyja majtë 645 00:31:46,490 --> 00:31:49,990 dhe e drejtë duhet të jetë e vërtetë për këtë të ekzekutuar. 646 00:31:49,990 --> 00:31:53,150 Pastaj kemi pasur çelsin, i cili kemi shikuar në një kohë të shkurtër, por unë propozoj janë me të vërtetë 647 00:31:53,150 --> 00:31:56,830 vetëm sintaksë të ndryshme për arritjen e njëjtin lloj e qëllimit në qoftë se ju e dini se në 648 00:31:56,830 --> 00:31:59,270 avancojë çfarë raste tuaja do të jenë. 649 00:31:59,270 --> 00:32:00,160 >> Ne shikuar në sythe. 650 00:32:00,160 --> 00:32:03,340 Një për lak është ndoshta më e zakonshme, ose të paktën njëri që njerëzit 651 00:32:03,340 --> 00:32:05,330 zakonisht arrijnë për instinktivisht. 652 00:32:05,330 --> 00:32:08,240 Edhe pse kjo duket pak e fshehtë, ju do të shihni shumë, shumë shembuj të kësaj 653 00:32:08,240 --> 00:32:11,590 para se të gjatë, si ju kanë tashmë javën e kaluar. 654 00:32:11,590 --> 00:32:14,280 Ndërsa sythe mundeni të ngjashme të arritur të njëjtën gjë. 655 00:32:14,280 --> 00:32:17,550 Por në qoftë se ju doni të bëni ndonjë incrementation ose përditësimin e 656 00:32:17,550 --> 00:32:20,230 vlerat e ndryshueshme, ju keni për të bëjë atë më shumë se sa me dorë 657 00:32:20,230 --> 00:32:22,440 për lak para se të lejon. 658 00:32:22,440 --> 00:32:25,310 Dhe pastaj nuk ka për ta bërë, ndërsa loop, e cila na lejon që të bëjmë diçka në 659 00:32:25,310 --> 00:32:28,460 paktën një herë, ndërsa diçka tjetër është e vërtetë. 660 00:32:28,460 --> 00:32:31,550 Dhe kjo është veçanërisht i mirë për programe apo për lojëra ku ju doni 661 00:32:31,550 --> 00:32:33,810 të menjëhershëm të përdoruesit për diçka të paktën një herë. 662 00:32:33,810 --> 00:32:37,110 Dhe pastaj, nëse ai ose ajo nuk bashkëpunon, ju mund të dëshironi të bëni atë 663 00:32:37,110 --> 00:32:38,420 përsëri dhe përsëri. 664 00:32:38,420 --> 00:32:41,270 >> Me variablave, ndërkohë, ne kishim linja e kodit si kjo, e cila mund të 665 00:32:41,270 --> 00:32:41,950 të ketë dy linja. 666 00:32:41,950 --> 00:32:44,830 Ju mund të deklarojë një int quajtur counter, pikëpresje. 667 00:32:44,830 --> 00:32:47,660 Ose ju mund vetëm të deklarojnë dhe define atë, kështu që të flasin. 668 00:32:47,660 --> 00:32:49,950 Give it një vlerë në të njëjtën kohë. 669 00:32:49,950 --> 00:32:51,890 >> Dhe pastaj së fundi, kemi biseduar rreth funksioneve. 670 00:32:51,890 --> 00:32:54,270 Dhe ky ishte një shembull i mirë në Ndjenja që ajo ilustron 671 00:32:54,270 --> 00:32:55,840 dy lloje të funksioneve. 672 00:32:55,840 --> 00:32:59,030 Një është getString (), e cila, përsëri, merr një varg nga përdoruesi. 673 00:32:59,030 --> 00:33:02,040 Por getString () është lloj i interesante, , aq sa ne kemi përdorur atë 674 00:33:02,040 --> 00:33:05,620 sepse ne kemi përdorur gjithmonë atë me diçka në anën e majtë të një 675 00:33:05,620 --> 00:33:06,600 shenjë të barabartë. 676 00:33:06,600 --> 00:33:09,830 Kjo do të thotë se getString () kthen një vlerë. 677 00:33:09,830 --> 00:33:11,970 Ajo kthen, natyrisht, një varg. 678 00:33:11,970 --> 00:33:15,130 Dhe pastaj në anën e majtë, ne jemi thjesht duke kursyer atë varg në brendësi të një 679 00:33:15,130 --> 00:33:16,580 ndryshore të quajtur emrin. 680 00:33:16,580 --> 00:33:21,100 >> Kjo është e ndryshme, ne nje sens, nga printf shkak printf, të paktën në tonë 681 00:33:21,100 --> 00:33:23,540 përdorimi këtu, nuk ka kthim asgjë. 682 00:33:23,540 --> 00:33:24,960 Si një mënjanë, ajo bën diçka të kthimit. 683 00:33:24,960 --> 00:33:26,380 Ne thjesht nuk e kujdesit çfarë është ajo. 684 00:33:26,380 --> 00:33:29,090 Por kjo do të ketë çfarë është quhet një efekt anësor. 685 00:33:29,090 --> 00:33:31,840 Dhe çfarë është që në çdo efekt anësor Rasti ne kemi parë deri më tani? 686 00:33:31,840 --> 00:33:34,720 Çfarë do të bëni printf? 687 00:33:34,720 --> 00:33:37,780 Kjo kopje diçka në ekran, tregon tekst ose numra ose diçka 688 00:33:37,780 --> 00:33:38,380 në ekran. 689 00:33:38,380 --> 00:33:41,170 Dhe kjo është konsideruar thjesht një efekt anësor për shkak se ajo nuk është me të vërtetë dorëzimin 690 00:33:41,170 --> 00:33:41,900 atë përsëri për mua. 691 00:33:41,900 --> 00:33:44,770 Kjo nuk është një përgjigje brenda një kuti e zezë që unë pastaj mund të 692 00:33:44,770 --> 00:33:46,130 arrijnë në dhe kapje. 693 00:33:46,130 --> 00:33:49,160 Ajo është vetëm duke bërë atë vetë, shumë si Colton u mbyllën në këtë 694 00:33:49,160 --> 00:33:52,560 Kutia e zezë javën e kaluar, dhe ai disi magjike u tërhequr në bord 695 00:33:52,560 --> 00:33:54,500 pa mua përfshirë në të vërtetë. 696 00:33:54,500 --> 00:33:55,560 Kjo do të jetë një efekt anësor. 697 00:33:55,560 --> 00:33:59,100 Por në qoftë se unë në fakt duhej të arrijë përsëri në këtu dhe thonë, oh, këtu është string 698 00:33:59,100 --> 00:34:02,040 nga përdoruesit, që do të të jetë një vlerë e kthimit. 699 00:34:02,040 --> 00:34:05,650 >> Dhe deri tani ne kemi përdorur vetëm funksione që njerëzit e tjerë kanë shkruar. 700 00:34:05,650 --> 00:34:09,219 Por ne fakt mund të bëjë këto llojet e gjërave veten. 701 00:34:09,219 --> 00:34:12,730 Kështu që unë jam duke shkuar për të shkuar në CS50 aplikim përsëri. 702 00:34:12,730 --> 00:34:16,020 Më lejoni të ngushtë tab që ne kishte hapur një moment më parë. 703 00:34:16,020 --> 00:34:18,530 Dhe më lejoni të shkoj përpara dhe të të krijojë një skedar të ri. 704 00:34:18,530 --> 00:34:22,400 Dhe unë jam duke shkuar për të shkuar përpara dhe positive.c quajnë këtë një. 705 00:34:22,400 --> 00:34:24,770 Kështu që unë dua të bëj diçka me të Numrat pozitivë këtu. 706 00:34:24,770 --> 00:34:27,219 Kështu që unë jam duke shkuar për të shkuar përpara dhe të bëjë int - 707 00:34:27,219 --> 00:34:28,000 Na vjen keq - 708 00:34:28,000 --> 00:34:31,840 # Include. 709 00:34:31,840 --> 00:34:34,280 Le të mos bëjë që të njëjtën gabim si më parë. 710 00:34:34,280 --> 00:34:40,020 Kryesore int (i pavlefshëm), të hapur kaçurrel shtrëngoj, mbyll Brace kaçurrel. 711 00:34:40,020 --> 00:34:41,639 >> Dhe tani unë dua të bëjë të mëposhtme. 712 00:34:41,639 --> 00:34:44,600 Unë dua të shkruaj një program që insiston se përdoruesi i jep 713 00:34:44,600 --> 00:34:46,770 mua një numër i plotë pozitiv. 714 00:34:46,770 --> 00:34:50,969 Pra, nuk ka asnjë funksion GetPositiveInt në të bibliotekës CS50. 715 00:34:50,969 --> 00:34:52,610 Ka vetëm GetInt (). 716 00:34:52,610 --> 00:34:55,790 Por kjo është në rregull, sepse unë kam ndërton me të cilin unë mund të imponojë një 717 00:34:55,790 --> 00:34:59,360 kufizim pak më shumë në atë vlerë. 718 00:34:59,360 --> 00:35:00,990 Unë mund të bëjë diçka si kjo. 719 00:35:00,990 --> 00:35:02,780 >> Pra, n int - 720 00:35:02,780 --> 00:35:04,920 dhe në qoftë se ju jeni të shtypni së bashku, vetëm të kuptojë Unë jam duke shkuar për të shkuar mbrapa dhe 721 00:35:04,920 --> 00:35:06,430 të ndryshojë disa gjëra në një moment - 722 00:35:06,430 --> 00:35:09,960 kështu që është e barabartë me GetInt n int (). 723 00:35:09,960 --> 00:35:11,780 Dhe kjo po ndodh për të vënë nje brendësi int prej n. 724 00:35:11,780 --> 00:35:13,830 Dhe më lejoni të jetë një më përshkrues. 725 00:35:13,830 --> 00:35:23,270 Më lejoni të them diçka si unë kërkojë që ju jepni një numër i plotë pozitiv. 726 00:35:23,270 --> 00:35:23,550 >> Dakord. 727 00:35:23,550 --> 00:35:25,250 Pra, vetëm pak e udhëzimeve. 728 00:35:25,250 --> 00:35:26,270 Dhe tani çfarë mund të bëj? 729 00:35:26,270 --> 00:35:29,840 E pra, unë tashmë e di nga e thjeshtë ime kushtet ose degët, ashtu si unë 730 00:35:29,840 --> 00:35:36,100 kishte në Scratch, unë mund të them diçka doja nëse n është më pak se ose e barabartë me 731 00:35:36,100 --> 00:35:44,460 zero, atëherë unë dua të bëj diçka pëlqen, se nuk është pozitiv. 732 00:35:44,460 --> 00:35:45,560 Dhe pastaj unë mund të bëj - 733 00:35:45,560 --> 00:35:47,310 OK, por unë me të vërtetë doni të merrni atë int. 734 00:35:47,310 --> 00:35:52,020 Kështu që unë mund të shkojnë deri këtu dhe unë mund të lloj i kopjes këtë dhe porosit këtë. 735 00:35:52,020 --> 00:35:52,570 Dhe pastaj, OK. 736 00:35:52,570 --> 00:35:56,990 Pra, nëse n është më pak se ose e barabartë me zero bëni këtë. 737 00:35:56,990 --> 00:35:58,900 >> Tani, çfarë nëse përdoruesi nuk bashkëpunojnë? 738 00:35:58,900 --> 00:36:01,560 E pra, atëherë unë jam duke shkuar për huazoni këtë këtu. 739 00:36:01,560 --> 00:36:03,130 Dhe pastaj do të shkoj në këtu dhe këtu dhe këtu. 740 00:36:03,130 --> 00:36:06,420 Pra, kjo nuk është e qartë zgjidhje, e drejtë? 741 00:36:06,420 --> 00:36:07,810 Sepse nuk ka asnjë zgjidhje në horizont. 742 00:36:07,810 --> 00:36:13,100 Nëse unë dua të kërkojë që i jep përdoruesit mua një numër i plotë pozitiv, unë mund të 743 00:36:13,100 --> 00:36:14,150 në fakt të merrni int. 744 00:36:14,150 --> 00:36:15,620 Unë pastaj mund të shikoni për atë int. 745 00:36:15,620 --> 00:36:18,570 Por pastaj unë dua të kontrolloni atë përsëri dhe kontrolloni atë përsëri dhe kontrolloni atë përsëri. 746 00:36:18,570 --> 00:36:21,680 Pra, natyrisht, çfarë është më e mirë ndërtuar për t'u përdorur këtu? 747 00:36:21,680 --> 00:36:22,840 Të gjithë të drejtë, kështu që disa lloj lak. 748 00:36:22,840 --> 00:36:25,430 >> Kështu që unë jam duke shkuar për të hequr qafe i pothuajse të gjithë këtë. 749 00:36:25,430 --> 00:36:27,320 Dhe unë dua të të marrë këtë int së paku një herë. 750 00:36:27,320 --> 00:36:28,890 Kështu që unë jam duke shkuar për të thonë se të bëni - 751 00:36:28,890 --> 00:36:32,110 dhe unë do të kthehem për të ndërsa në një moment të vetëm - 752 00:36:32,110 --> 00:36:33,050 tani, çfarë bëjnë? 753 00:36:33,050 --> 00:36:35,860 Unë jam duke shkuar për të bërë GetInt int n merr (). 754 00:36:35,860 --> 00:36:36,080 OK. 755 00:36:36,080 --> 00:36:37,250 Pra, kjo është goxha e mirë. 756 00:36:37,250 --> 00:36:39,750 Dhe tani sa shpesh bëjnë Unë dua të bëj këtë? 757 00:36:39,750 --> 00:36:45,770 >> Më lejoni të vënë brenda printf e lak kështu që unë mund të kërkojë përsëri dhe përsëri, 758 00:36:45,770 --> 00:36:46,740 në qoftë se duhet të jetë. 759 00:36:46,740 --> 00:36:49,720 Dhe çfarë unë dua që kjo ndërsa kusht për të bërë? 760 00:36:49,720 --> 00:36:53,870 Unë dua të vazhdojmë të bëjmë këtë ndërsa ajo që është rasti? 761 00:36:53,870 --> 00:36:54,125 Po. 762 00:36:54,125 --> 00:36:55,390 N është më pak se ose e barabartë me zero. 763 00:36:55,390 --> 00:36:58,180 Pra, tashmë, ne kemi në mënyrë të konsiderueshme pastruar këtë kod up. 764 00:36:58,180 --> 00:37:00,700 Ne kemi huazuar një shumë e thjeshtë ndërtojnë - ta bërë, ndërsa loop. 765 00:37:00,700 --> 00:37:04,690 Unë e kam vjedhur vetëm linjat e rëndësishme të kodit që kam filluar kopjimi dhe 766 00:37:04,690 --> 00:37:05,960 pasting, e cila nuk ishte e mençur. 767 00:37:05,960 --> 00:37:09,790 Dhe kështu që tani unë jam duke shkuar për të ngjitur në të vërtetë ajo në këtu dhe vetëm të bëjë atë një herë. 768 00:37:09,790 --> 00:37:12,990 >> Dhe tani çfarë unë dua të bëj në Fundi shumë i këtij programi? 769 00:37:12,990 --> 00:37:16,810 Unë do të them vetëm diçka e thjeshtë pëlqen, thanks for - dhe 770 00:37:16,810 --> 00:37:18,980 Unë do të bëj unë për int% - 771 00:37:18,980 --> 00:37:23,270 backslash n, presje, dhe pastaj vihet në prizë n, pikëpresje. 772 00:37:23,270 --> 00:37:23,910 >> Dakord. 773 00:37:23,910 --> 00:37:27,290 Pra, le të shohim se çfarë ndodh tani kur kam drejtuar këtë program. 774 00:37:27,290 --> 00:37:30,600 Unë jam duke shkuar për të shkuar përpara dhe bëjnë pozitive. 775 00:37:30,600 --> 00:37:30,880 Damn. 776 00:37:30,880 --> 00:37:31,600 Një disa gabime. 777 00:37:31,600 --> 00:37:32,960 Pra më lejoni të lëviz mbrapa deri në të parë. 778 00:37:32,960 --> 00:37:34,020 Mos punoni nëpërmjet tyre prapa. 779 00:37:34,020 --> 00:37:37,000 Puna me anë të tyre nga lart poshtë mos ujëvarë dhe vetëm 780 00:37:37,000 --> 00:37:38,630 një gjë të jetë i gabuar. 781 00:37:38,630 --> 00:37:42,532 Deklarata implicit i GetInt function (). 782 00:37:42,532 --> 00:37:43,020 Po. 783 00:37:43,020 --> 00:37:44,420 Pra, ajo nuk ishte e mjaftueshme. 784 00:37:44,420 --> 00:37:46,760 Unë lloj i bëri të njëjtin gabim, por pak më ndryshe këtë herë. 785 00:37:46,760 --> 00:37:51,940 Unë duhet të përfshijë jo vetëm stdio.h por gjithashtu cs50.h, i cili përfshin 786 00:37:51,940 --> 00:37:56,770 Deklaratat e ashtuquajtur të merrni int, e cila mësojnë pajisjen, ose mëson 787 00:37:56,770 --> 00:37:58,760 C çfarë GetInt () është. 788 00:37:58,760 --> 00:37:59,550 >> Pra më lejoni të resave. 789 00:37:59,550 --> 00:38:02,040 Unë jam duke shkuar për të injorojë gabimet tjera sepse unë jam duke shkuar për të shpresojmë se ata janë 790 00:38:02,040 --> 00:38:05,210 deridiku i lidhur me gabimin I fiksuar tashmë. 791 00:38:05,210 --> 00:38:08,710 Pra më lejoni të shkoj përpara dhe të recompile me make pozitive, Enter. 792 00:38:08,710 --> 00:38:09,020 Damn. 793 00:38:09,020 --> 00:38:09,985 Tre gabime, ende. 794 00:38:09,985 --> 00:38:12,650 Më lejoni të lëviz deri në të parë. 795 00:38:12,650 --> 00:38:14,320 N papërdorura ndryshueshme. 796 00:38:14,320 --> 00:38:15,850 Ne nuk e kam parë këtë më parë. 797 00:38:15,850 --> 00:38:17,200 Dhe kjo, gjithashtu, është pak fshehtë. 798 00:38:17,200 --> 00:38:18,850 Ky është prodhimi i përpiluesit. 799 00:38:18,850 --> 00:38:23,610 Dhe ajo që linjë theksuar atje - positive.c :9:13 - 800 00:38:23,610 --> 00:38:28,960 është thënë, është thënë on line nëntë të positive.c, në karakterin e 13-të, 801 00:38:28,960 --> 00:38:31,510 13 kolona, ​​keni bërë këtë gabim. 802 00:38:31,510 --> 00:38:34,230 >> Dhe në veçanti, është thënë me n papërdorura ndryshueshme. 803 00:38:34,230 --> 00:38:35,790 Pra, le të shohim - 804 00:38:35,790 --> 00:38:37,150 Linja nëntë. 805 00:38:37,150 --> 00:38:40,430 Unë jam duke përdorur n në kuptimin që Unë jam duke i dhënë asaj një vlerë. 806 00:38:40,430 --> 00:38:44,200 Por ajo që përpiluesi nuk më pëlqen është se unë nuk jam në dukje duke e përdorur atë. 807 00:38:44,200 --> 00:38:45,560 Por prisni një minutë, unë jam duke e përdorur atë. 808 00:38:45,560 --> 00:38:48,170 Në linjë 11, unë jam duke e përdorur atë këtu. 809 00:38:48,170 --> 00:38:52,430 Por në qoftë se unë lëviz poshtë më tej në positive.c :11 - 810 00:38:52,430 --> 00:38:56,230 kështu në linjë 11, karakteri 12, Përpiluesi është thënë mua, përdorimin e 811 00:38:56,230 --> 00:38:58,670 pashpallur identifikues n. 812 00:38:58,670 --> 00:39:02,760 >> Pra, do të thotë unë kam padeklaruar ajo nuk është e specifikuar si 813 00:39:02,760 --> 00:39:04,970 variabël me një lloj të të dhënave. 814 00:39:04,970 --> 00:39:05,500 Por, prit një minutë. 815 00:39:05,500 --> 00:39:09,150 Unë e bëri pikërisht që në përputhje nëntë. 816 00:39:09,150 --> 00:39:11,100 Pra, dikush është i hutuar me të vërtetë këtu. 817 00:39:11,100 --> 00:39:14,900 Kjo është ose mua ose përpiluesit për shkak në përputhje nëntë, përsëri, unë jam deklaruar një 818 00:39:14,900 --> 00:39:18,650 int n, dhe unë jam caktimin ajo kthejë vlerën e GetInt (). 819 00:39:18,650 --> 00:39:22,930 Pastaj unë jam duke e përdorur atë n ndryshueshme në linjë 11 dhe duke kontrolluar, nëse vlera e saj është më pak 820 00:39:22,930 --> 00:39:24,050 se ose e barabartë me zero. 821 00:39:24,050 --> 00:39:27,430 Por kjo me sa duket është e keqe dhe të thyera pse? 822 00:39:27,430 --> 00:39:30,630 823 00:39:30,630 --> 00:39:32,490 Thuaj atë përsëri? 824 00:39:32,490 --> 00:39:35,690 >> Ah, unë duhet të deklaroj n para hyjnë në lak. 825 00:39:35,690 --> 00:39:36,370 Por, pse? 826 00:39:36,370 --> 00:39:39,830 Unë do të thotë, ne vetëm propozuar një pak më parë se kjo është në rregull për të deklaruar variablave 827 00:39:39,830 --> 00:39:43,600 të gjitha në një rresht dhe pastaj caktojë atyre disa vlera. 828 00:39:43,600 --> 00:39:46,790 Një variabël globale - le të kthehem për këtë ide në një moment të vetëm. 829 00:39:46,790 --> 00:39:48,690 Pse nuk ju duan mua për të vënë ajo jashtë lak? 830 00:39:48,690 --> 00:40:03,170 831 00:40:03,170 --> 00:40:03,830 Ajo është. 832 00:40:03,830 --> 00:40:06,780 Saktësisht. 833 00:40:06,780 --> 00:40:09,610 >> Pra, megjithëse, disi counterintuitive, Më lejoni të përmbledh. 834 00:40:09,610 --> 00:40:13,510 Kur ju të deklarojë n brenda i bllokut bërë atje - 835 00:40:13,510 --> 00:40:16,320 posaçërisht brenda ato formatimin e teksteve kaçurrel - 836 00:40:16,320 --> 00:40:19,210 se n ndryshueshme ka se çfarë është Shtrirja e quajtur - 837 00:40:19,210 --> 00:40:23,210 palidhur me sistemin tonë të pikëve në Kursi - por ka një fushë që është 838 00:40:23,210 --> 00:40:25,190 kufizohet në ato formatimin e teksteve kaçurrel. 839 00:40:25,190 --> 00:40:28,460 Me fjalë të tjera, në mënyrë tipike në qoftë se ju të deklarojë një variabël brenda një sërë 840 00:40:28,460 --> 00:40:33,370 formatimin e teksteve kaçurrel, që ekziston vetëm ndryshueshme brenda këtyre formatimin e teksteve kaçurrel. 841 00:40:33,370 --> 00:40:37,320 Pra, nga se logjika vetëm, edhe pse Unë e kam deklaruar n në përputhje nëntë, ajo 842 00:40:37,320 --> 00:40:41,910 thelb zhduket nga objekti, zhduket nga kujtesa, në mënyrë që të flasin, 843 00:40:41,910 --> 00:40:43,370 nga koha që kam goditur vijën e 11. 844 00:40:43,370 --> 00:40:47,370 Sepse linjë 11, për fat të keq, është jashtë këtyre formatimin e teksteve kaçurrel. 845 00:40:47,370 --> 00:40:51,540 >> Kështu që unë për fat të keq nuk mund të rregullojmë këtë duke duke shkuar prapa në atë që unë e bëri atë më parë. 846 00:40:51,540 --> 00:40:53,370 Ju mund ta bëni këtë në fillim. 847 00:40:53,370 --> 00:40:56,370 Por ajo që ju nuk jeni tani ciklikisht duke bërë? 848 00:40:56,370 --> 00:40:58,260 Ju nuk jeni padyshim duke marrë int ciklikisht. 849 00:40:58,260 --> 00:41:01,320 Pra, ne mund të largohet nga GetInt (), dhe ne duhet të largohen nga GetInt () brenda 850 00:41:01,320 --> 00:41:04,420 lak, sepse kjo është ajo që ne duam të mërzit përdoruesit për përsëri dhe përsëri. 851 00:41:04,420 --> 00:41:08,660 Por kjo nuk mjafton për të shkuar deri në vijë, të themi, gjashtë. 852 00:41:08,660 --> 00:41:10,150 Int n, pikëpresje. 853 00:41:10,150 --> 00:41:12,990 Mos jepte një vlerë akoma sepse ju nuk keni nevojë për të vetëm ende. 854 00:41:12,990 --> 00:41:16,220 >> Por tani këtu poshtë, njoftim - kjo do të jetë një gabim shumë të lehtë. 855 00:41:16,220 --> 00:41:19,440 Unë nuk dua të hije e mëparshme e mia Shpallja e n. 856 00:41:19,440 --> 00:41:22,830 Unë dua që të përdorin n se në fakt ekziston. 857 00:41:22,830 --> 00:41:25,780 Dhe kështu që tani në rreshtin 10, Unë n caktojë një vlerë. 858 00:41:25,780 --> 00:41:28,580 Por në linjë gjashtë, unë deklaroj n. 859 00:41:28,580 --> 00:41:32,940 Dhe kështu që unë mund ose nuk mund të unë përdorin atë në përputhje 12 tani? 860 00:41:32,940 --> 00:41:37,120 Unë mund, sepse në mes të cilave kaçurrel Formatimin e teksteve është n deklaruar tani? 861 00:41:37,120 --> 00:41:38,770 Një deri këtu në linjë pesë. 862 00:41:38,770 --> 00:41:40,330 Dikujt këtu on line 14. 863 00:41:40,330 --> 00:41:49,770 Pra, nëse unë tani zoom out, ruani këtë file, shkoni prapa në dhe të bëjë të kandidojë pozitive, atë 864 00:41:49,770 --> 00:41:50,820 hartuar këtë kohë. 865 00:41:50,820 --> 00:41:51,940 Pra, kjo është tashmë përparim. 866 00:41:51,940 --> 00:41:53,640 Slash. . / Pozitive, Enter. 867 00:41:53,640 --> 00:41:56,060 >> Unë të kërkojë që ju të jepni një numër i plotë pozitiv. 868 00:41:56,060 --> 00:41:57,750 Negativ 1. 869 00:41:57,750 --> 00:41:59,020 Negativ 2. 870 00:41:59,020 --> 00:42:00,680 Negativ 3. 871 00:42:00,680 --> 00:42:01,760 Zero. 872 00:42:01,760 --> 00:42:03,000 Një. 873 00:42:03,000 --> 00:42:05,130 Dhe në sajë për një është çfarë po shtypura tani. 874 00:42:05,130 --> 00:42:07,400 >> Më lejoni të provoni diçka tjetër, nga kurioziteti. 875 00:42:07,400 --> 00:42:09,600 Unë jam duke u tha që input një numër të plotë. 876 00:42:09,600 --> 00:42:12,870 Por, çfarë nëse unë në vend të shkruani në qengjit? 877 00:42:12,870 --> 00:42:14,460 Kështu që ju tani shihni një të shpejtë të ndryshme - 878 00:42:14,460 --> 00:42:15,350 rigjykuar. 879 00:42:15,350 --> 00:42:17,670 Por askund në kodin tim kam shkruar rigjykuar. 880 00:42:17,670 --> 00:42:22,320 Pra, ku, me sa duket, kjo është rigjykuar menjëhershëm që vjen nga, do të thoni? 881 00:42:22,320 --> 00:42:23,540 Yeah, nga GetInt () vetë. 882 00:42:23,540 --> 00:42:26,650 Pra, një nga gjërat që e bën stafi CS50 per ti, të paktën në këto pak pare 883 00:42:26,650 --> 00:42:30,400 javë, është që ne kemi shkruar disa shuma i gabimit të kontrolluar për të siguruar se në qoftë se 884 00:42:30,400 --> 00:42:34,260 ju telefononi GetInt (), ju do të paktën kthehet një int nga përdoruesit. 885 00:42:34,260 --> 00:42:35,460 Ju nuk do të merrni një string. 886 00:42:35,460 --> 00:42:36,440 Ju nuk do të merrni një char. 887 00:42:36,440 --> 00:42:39,660 Ju nuk do të merrni diçka krejt tjetër. 888 00:42:39,660 --> 00:42:40,510 Ju do të merrni një int. 889 00:42:40,510 --> 00:42:41,890 >> Tani, ajo nuk mund të jetë pozitiv. 890 00:42:41,890 --> 00:42:42,770 Ajo nuk mund të jetë negativ. 891 00:42:42,770 --> 00:42:44,550 Ne bëjmë asnjë garanci rreth se. 892 00:42:44,550 --> 00:42:48,960 Por ne do të mërzit përdoruesit për të rigjykuar, rigjykuar, rigjykuar derisa ai ose ajo në të vërtetë 893 00:42:48,960 --> 00:42:49,810 bashkëpunon. 894 00:42:49,810 --> 00:42:53,085 Në mënyrë të ngjashme, në qoftë se unë bëj 1.23, se nuk eshte nje int. 895 00:42:53,085 --> 00:42:58,400 Por në qoftë se unë nuk shkruani në, të themi, 50, që më jep një vlerë që kam kërkuar. 896 00:42:58,400 --> 00:42:59,050 >> Dakord. 897 00:42:59,050 --> 00:43:01,380 Pra, jo i keq. 898 00:43:01,380 --> 00:43:04,780 Çdo pyetje mbi atë që ne kemi bërë vetëm? 899 00:43:04,780 --> 00:43:07,930 Takeaway kyç të qenit, të mos jetë i qartë, aq shumë loop, të cilat ne kemi parë 900 00:43:07,930 --> 00:43:10,880 para se edhe pse ne nuk kemi me të vërtetë përdorur atë, por çështja e fushës, ku 901 00:43:10,880 --> 00:43:17,045 variablat mund të jetë vetëm mund të përdoren vetëm brenda disa fushëveprimit të caktuar. 902 00:43:17,045 --> 00:43:19,830 >> Të gjithë të drejtë, më lejoni të trajtojë sugjerimin keni bërë më herët, atë të një 903 00:43:19,830 --> 00:43:20,860 ndryshore globale. 904 00:43:20,860 --> 00:43:24,880 Si një mënjanë, rezulton se një tjetër zgjidhje për këtë problem, por 905 00:43:24,880 --> 00:43:28,880 zakonisht një zgjidhje të gabuar ose një zgjidhje të dizajnuar dobët, është të 906 00:43:28,880 --> 00:43:31,670 deklarojnë ndryshore tuaj si ajo që është quajtur një ndryshore globale. 907 00:43:31,670 --> 00:43:34,610 Tani unë jam lloji i shkeljes definicionin tim e fushës, sepse atje janë 908 00:43:34,610 --> 00:43:37,680 nuk ka formatimin e teksteve kaçurrel në krye dhe në fund shumë e një skedar. 909 00:43:37,680 --> 00:43:40,190 Por implikimi i që është se tani në përputhje katër, 910 00:43:40,190 --> 00:43:41,710 n eshte nje variabli globale. 911 00:43:41,710 --> 00:43:44,460 Dhe, si emri nënkupton, ajo është vetëm arritshme kudo. 912 00:43:44,460 --> 00:43:45,790 >> Scratch fakt ka këto. 913 00:43:45,790 --> 00:43:48,650 Nëse keni përdorur një ndryshore, ju mund të kujtojnë keni pasur për të zgjedhur nëse kjo është për 914 00:43:48,650 --> 00:43:50,780 këtë sprite ose për të gjitha sprites. 915 00:43:50,780 --> 00:43:54,270 E pra, të gjitha sprites është vetëm e qartë mënyrë për të thënë globale. 916 00:43:54,270 --> 00:43:55,520 Po? 917 00:43:55,520 --> 00:44:09,690 918 00:44:09,690 --> 00:44:10,990 Ah, pyetje me të vërtetë mirë. 919 00:44:10,990 --> 00:44:14,310 >> Pra, kujtojmë se në versionin e parë e kodit tim, kur unë gabimisht 920 00:44:14,310 --> 00:44:17,700 n deklaruara dhe të përcaktuara në përputhje nëntë - 921 00:44:17,700 --> 00:44:19,980 I shpallur atë si një variabël dhe unë i dha asaj një vlerë me 922 00:44:19,980 --> 00:44:21,160 Operatori caktimi - 923 00:44:21,160 --> 00:44:22,520 kjo më dha dy gabime. 924 00:44:22,520 --> 00:44:26,560 Një, fakti se n nuk është përdorur, dhe dy, se në linjë 11 925 00:44:26,560 --> 00:44:27,770 ai thjesht nuk ishte shpallur. 926 00:44:27,770 --> 00:44:31,120 Pra, i pari unë nuk e bëri Adresa në atë kohë. 927 00:44:31,120 --> 00:44:35,130 Kjo nuk është rreptësisht një gabim të deklarojë një ndryshore, por nuk e përdorin atë. 928 00:44:35,130 --> 00:44:38,540 Por një nga gjërat që ne kemi bërë në CS50 aplikim, qëllimisht, 929 00:44:38,540 --> 00:44:43,340 pedagogjike, po ne kemi cranked up Pritjet e përpiluesit për të bërë 930 00:44:43,340 --> 00:44:46,970 Sigurohuni që ju jeni duke bërë gjëra jo vetëm saktë, por me të vërtetë të saktë. 931 00:44:46,970 --> 00:44:51,520 >> Sepse në qoftë se ju jeni duke deklaruar një ndryshore si n dhe kurrë nuk e përdorur atë, ose duke e përdorur atë 932 00:44:51,520 --> 00:44:53,700 saktë, atëherë çfarë ajo është bërë atje? 933 00:44:53,700 --> 00:44:55,650 Është me të vërtetë i shërben asnjë qëllimi. 934 00:44:55,650 --> 00:44:58,980 Dhe kjo është shumë e lehtë me kalimin e kohës, në qoftë se ju nuk konfigurosh kompjuterin tuaj në 935 00:44:58,980 --> 00:45:01,960 në këtë mënyrë, që të ketë vetëm kodin që ka mbetjet pak këtu, mbetjet atje. 936 00:45:01,960 --> 00:45:04,390 Dhe pastaj muaj më vonë ju shikoni mbrapa dhe ju jeni si, pse është kjo linjë e 937 00:45:04,390 --> 00:45:05,060 Kodi atje? 938 00:45:05,060 --> 00:45:07,940 Dhe në qoftë se nuk ka asnjë arsye të mirë, ajo nuk përfitojnë ju apo kolegët tuaj 939 00:45:07,940 --> 00:45:10,650 poshtë rrugës që të ketë për pengohem mbi atë, atëherë. 940 00:45:10,650 --> 00:45:12,540 >> Si një mënjanë, ku është që vijnë nga? 941 00:45:12,540 --> 00:45:16,410 E pra, kujtojnë se çdo herë që ne hartojmë Programi, të gjitha të këtij stuff është 942 00:45:16,410 --> 00:45:17,380 duke u shtypur. 943 00:45:17,380 --> 00:45:18,350 Pra, ne do të vijnë përsëri në këtë. 944 00:45:18,350 --> 00:45:22,230 Por përsëri, të bëjë është një instrument që automatizojnë procesin e përpilimit nga 945 00:45:22,230 --> 00:45:24,830 drejtimin përpilues aktuale quajtur tingëllimë. 946 00:45:24,830 --> 00:45:27,650 Kjo gjë, ne do të shohim përfundimisht, ka të bëjë me debugging me një të veçantë 947 00:45:27,650 --> 00:45:29,060 Programi quhet Rregullues. 948 00:45:29,060 --> 00:45:32,150 Kjo ka të bëjë me optimizmin Kodi - më shumë se në të ardhmen. 949 00:45:32,150 --> 00:45:33,620 Std = c99 - 950 00:45:33,620 --> 00:45:37,870 kjo thjesht do të thotë të përdornit versionin e 1999 të C. C ka qenë rreth e rrotull edhe më shumë se 951 00:45:37,870 --> 00:45:40,830 se, por ata bënë disa bukur Ndryshimet plus 10 vjet më parë. 952 00:45:40,830 --> 00:45:42,690 >> Dhe këtu është ato përkatëse. 953 00:45:42,690 --> 00:45:45,880 Ne jemi duke thënë të bëjë çdo gjë që më parë do të kishte qenë një paralajmërim 954 00:45:45,880 --> 00:45:48,560 një gabim parandalimin nxënësin nga hartimin. 955 00:45:48,560 --> 00:45:51,400 Dhe mjetet mur të bëjë që për një bandë e tërë e gjërave, jo 956 00:45:51,400 --> 00:45:53,060 të lidhura vetëm për të variablave. 957 00:45:53,060 --> 00:45:54,700 Dhe atëherë më lejoni që të lëvizni fundi i kësaj linje. 958 00:45:54,700 --> 00:45:56,430 Dhe kjo, gjithashtu, ne përfundimisht do të kthehen. 959 00:45:56,430 --> 00:45:59,040 Ky është padyshim emri i Unë jam hartimin fotografinë. 960 00:45:59,040 --> 00:46:02,160 Kjo kujton emrin e dosjes Unë jam kompjuteri si emër 961 00:46:02,160 --> 00:46:04,070 e programit tim runnable. 962 00:46:04,070 --> 00:46:08,970 Kjo thjesht do të thotë-lcs50 përdorni CS50 bibliotekë, dhe çdo zero dhe ato që 963 00:46:08,970 --> 00:46:12,390 Stafi i shkroi dhe përpiluar më herët këtë vit, të integrohen 964 00:46:12,390 --> 00:46:13,490 ato në programin tim. 965 00:46:13,490 --> 00:46:16,130 >> Dhe dikush e di se çfarë-lm është? 966 00:46:16,130 --> 00:46:18,150 Kjo është biblioteka e matematikës, e cila është vetëm atje edhe në qoftë se ju jeni 967 00:46:18,150 --> 00:46:19,320 nuk ka bërë ndonjë matematikë. 968 00:46:19,320 --> 00:46:22,620 Ajo është vetëm me kusht automatikisht për të na bërë. 969 00:46:22,620 --> 00:46:26,540 >> E pra, më lejoni të bëj një shembull tjetër këtu duke hapur një skedë të re. 970 00:46:26,540 --> 00:46:30,560 Dhe më lejoni të shpëtuar këtë njeri si string.c. 971 00:46:30,560 --> 00:46:37,980 Ajo rezulton se si ne flasim rreth të dhënave Llojet Sot, ka edhe më shumë 972 00:46:37,980 --> 00:46:40,630 ndodh nën kapuç se sa kemi parë deri tani. 973 00:46:40,630 --> 00:46:42,290 Pra më lejoni të shpejt të bëjë një program të shpejtë. 974 00:46:42,290 --> 00:46:44,510 Përfshi stdio.h. 975 00:46:44,510 --> 00:46:45,730 Dhe unë do të të shpëtuar atë. 976 00:46:45,730 --> 00:46:48,110 Dhe ju e dini, më lejoni të mos bëjë njëjtin gabim përsëri dhe përsëri. 977 00:46:48,110 --> 00:46:50,540 Përfshini cs50.h. 978 00:46:50,540 --> 00:46:54,870 Dhe më lejoni të shkoj përpara tani dhe të bëjë int kryesor (i pavlefshëm). 979 00:46:54,870 --> 00:46:58,790 >> Dhe tani unë thjesht dua të bëj një program që e bën këtë - të deklarojë një varg 980 00:46:58,790 --> 00:47:03,610 quajtur s dhe për të marrë një varg nga e perdoruesit. 981 00:47:03,610 --> 00:47:05,820 Dhe më lejoni të bëjë pak udhëzime këtu - 982 00:47:05,820 --> 00:47:09,960 ju lutem jepni një varg - kështu që përdoruesit e di se çfarë të bëni. 983 00:47:09,960 --> 00:47:13,190 Dhe pastaj poshtë këtu poshtë këtë, Unë dua të bëj në vijim - 984 00:47:13,190 --> 00:47:16,060 për int i merr zero. 985 00:47:16,060 --> 00:47:18,580 Përsëri, shkencëtarët kompjuter tipike të fillojë numërimi në zero, por ne mund të 986 00:47:18,580 --> 00:47:20,340 të bëjë që një në qoftë se ne me të vërtetë të kërkuar. 987 00:47:20,340 --> 00:47:27,240 Tani unë jam duke shkuar për të bërë unë është më pak se gjatësia e fijes s. 988 00:47:27,240 --> 00:47:28,430 Pra strlen - 989 00:47:28,430 --> 00:47:29,510 S-T-R-L-E-N - 990 00:47:29,510 --> 00:47:31,650 përsëri, kjo është konciz, sepse kjo është më e lehtë të tipit, edhe pse kjo është një 991 00:47:31,650 --> 00:47:32,590 pak fshehtë. 992 00:47:32,590 --> 00:47:35,290 >> Kjo është një funksion që nuk e kam përdorur para, por bën fjalë për fjalë se - 993 00:47:35,290 --> 00:47:37,810 kthehen tek unë një numër që përfaqëson gjatësia e vargut 994 00:47:37,810 --> 00:47:38,690 se përdoruesi typed. 995 00:47:38,690 --> 00:47:41,740 Në qoftë se ata shtypen në hello, ajo do të kthehet pesë sepse ka pesë 996 00:47:41,740 --> 00:47:42,890 letra në Hello. 997 00:47:42,890 --> 00:47:45,390 Pastaj, në çdo përsëritje e kjo loop, unë plus plus. 998 00:47:45,390 --> 00:47:49,170 Pra, përsëri, një standard të ndërtuar edhe në qoftë se ju nuk jeni mjaft shumë të rehatshme ose 999 00:47:49,170 --> 00:47:50,420 familjarizuar me atë ende. 1000 00:47:50,420 --> 00:47:53,220 >> Por tani në çdo përsëritje të këtij lak, njoftim se çfarë unë jam duke shkuar për të bërë. 1001 00:47:53,220 --> 00:47:56,690 Unë dua të shkoj përpara dhe të shtypura nga një karakter të vetëm - 1002 00:47:56,690 --> 00:47:59,940 kështu% c backslash n në një linjë të re. 1003 00:47:59,940 --> 00:48:00,990 Dhe pastaj, ju e dini se çfarë dua të bëj? 1004 00:48:00,990 --> 00:48:05,090 Çfarëdo që fjala është se përdoruesi lloje në, si hello, unë dua të shtypura 1005 00:48:05,090 --> 00:48:09,530 H-E-L-L-O, nje karakter per line. 1006 00:48:09,530 --> 00:48:13,080 Me fjalë të tjera, unë dua të të marrë në karaktere individuale në një varg, 1007 00:48:13,080 --> 00:48:16,770 ku deri tani ka vetëm një varg qenë një sekuencë e karaktere. 1008 00:48:16,770 --> 00:48:21,690 >> Dhe kjo rezulton që unë mund të bëj s, parantezë, Unë, simboli i ngushtë, të ngushtë 1009 00:48:21,690 --> 00:48:23,580 parantezë, pikëpresje. 1010 00:48:23,580 --> 00:48:25,640 Dhe unë kam për të bërë një gjë më shumë. 1011 00:48:25,640 --> 00:48:30,570 Është në një skedar të quajtur string strlen që është deklaruar. 1012 00:48:30,570 --> 00:48:33,190 Pra, nëse unë dua të përdorni këtë funksion, Unë kam nevojë për të të treguar përpiluesit, 1013 00:48:33,190 --> 00:48:34,450 presin që të përdorin atë. 1014 00:48:34,450 --> 00:48:37,040 Tani më lejoni të shkoj përpara dhe të bëjë program të quajtur string. 1015 00:48:37,040 --> 00:48:39,150 Dot, plagë, string. 1016 00:48:39,150 --> 00:48:40,130 >> Ju lutem jepni një varg. 1017 00:48:40,130 --> 00:48:40,900 Unë do të shkoj përpara dhe të shkruani atë. 1018 00:48:40,900 --> 00:48:43,040 Hello, në të gjitha shkronja kapitale, Enter. 1019 00:48:43,040 --> 00:48:47,390 Dhe tani vini re unë kam shtypur këtë një karakter pas tjetrit. 1020 00:48:47,390 --> 00:48:51,450 Pra detaj i ri këtu është se një string, ne fund te ditës, mund të jenë 1021 00:48:51,450 --> 00:48:54,810 arrihen me anë të tij individi karaktere duke e futur në shesh 1022 00:48:54,810 --> 00:48:55,840 simbol kllapa. 1023 00:48:55,840 --> 00:48:59,090 Dhe kjo është për shkak se një varg nën individualitet është me të vërtetë një sekuencë e 1024 00:48:59,090 --> 00:48:59,810 karaktere. 1025 00:48:59,810 --> 00:49:02,010 Por ajo që është i zoti për ta është në RAM kompjuterit tuaj - 1026 00:49:02,010 --> 00:49:05,300 Mac, PC, çfarëdo qoftë ajo është - ata janë fjalë për fjalë të kthehet prapa për të mbështetur - 1027 00:49:05,300 --> 00:49:06,225 H-E-L-L-O - 1028 00:49:06,225 --> 00:49:09,920 në, ngjitur individuale byte në kujtesë. 1029 00:49:09,920 --> 00:49:13,210 >> Pra, nëse ju doni të merrni në të tilla teta bajt, e cila në këtë lak do të jetë 1030 00:49:13,210 --> 00:49:16,900 parantezë zero, simboli i një, dy kllapa, parantezë tre, katër kllapa - 1031 00:49:16,900 --> 00:49:18,890 që është indeksuar zero deri në pesë - 1032 00:49:18,890 --> 00:49:23,330 që do të shtypur nga H-E-L-L-O në linjën e vet. 1033 00:49:23,330 --> 00:49:26,320 >> Tani, si një ngacmues, më lejoni të ju tregojnë llojet e gjërave që ju do të jetë përfundimisht 1034 00:49:26,320 --> 00:49:31,950 gjendje te kuptuar, të paktën me disa të afërta kërkim. 1035 00:49:31,950 --> 00:49:35,610 Për një, të përfshira në atë që ne sot shembuj, në qoftë se ju dëshironi, është në të vërtetë 1036 00:49:35,610 --> 00:49:38,300 njëri prej Jailbreaks shumë para per iPhone. 1037 00:49:38,300 --> 00:49:40,800 Jailbreaking thotë plasaritje telefonin kështu që ju mund të vërtetë e përdorin atë në një 1038 00:49:40,800 --> 00:49:43,380 bartës të ndryshme ose instalojnë software tuaj. 1039 00:49:43,380 --> 00:49:45,660 Dhe ju do të vëreni kjo duket plotësisht fshehtë, ka shumë të ngjarë. 1040 00:49:45,660 --> 00:49:46,520 Por shikoni në këtë. 1041 00:49:46,520 --> 00:49:50,420 IPhone ishte plasaritur me sa duket me një për lak, në qoftë se një kusht, një tjetër 1042 00:49:50,420 --> 00:49:52,580 kusht, një bandë e funksioneve ne nuk kemi parë. 1043 00:49:52,580 --> 00:49:54,230 >> Dhe përsëri, ju nuk do të shikim të parë ndoshta 1044 00:49:54,230 --> 00:49:55,620 kuptuar se si kjo është duke punuar. 1045 00:49:55,620 --> 00:49:58,940 Por çdo gjë që ne lloj i marrë për të dhënë në jetën tonë moderne 1046 00:49:58,940 --> 00:50:02,040 në fakt ka tendencë për të reduktuar edhe për disa Prej këtyre themeleve ne kemi qenë 1047 00:50:02,040 --> 00:50:02,820 duke kërkuar në. 1048 00:50:02,820 --> 00:50:06,680 Më lejoni të shkojnë përpara dhe të hapur një program tjetër, holloway.c. 1049 00:50:06,680 --> 00:50:08,970 Pra, kjo, gjithashtu, është diçka që ju nuk duhet të vërtetë e di. 1050 00:50:08,970 --> 00:50:12,440 Edhe askush nga stafi ose unë mund të ndoshta kuptoj këtë, duke shikuar në 1051 00:50:12,440 --> 00:50:15,450 kjo për shkak se ky ishte kodi dikujt që ishte dorëzuar për çfarë është 1052 00:50:15,450 --> 00:50:19,630 njohur historikisht si një C turbulluara Konkursi, ku ju shkruani një program 1053 00:50:19,630 --> 00:50:24,670 që harton dhe shkon, por është aq damn fshehtë asnjë njeri nuk mund të kuptojë se çfarë 1054 00:50:24,670 --> 00:50:27,530 ajo do të bëjë deri në ata në të vërtetë të drejtuar atë. 1055 00:50:27,530 --> 00:50:29,940 >> Pra, me të vërtetë, në qoftë se ju shikoni në këtë Kodi, unë shoh një switch. 1056 00:50:29,940 --> 00:50:30,870 Unë shoh kryesore. 1057 00:50:30,870 --> 00:50:33,800 Unë po të shoh këto kllapa katrore duke nënkuptuar disa lloj i një rrjet. 1058 00:50:33,800 --> 00:50:35,970 A ka dikush doni të me mend se çfarë ky program të vërtetë 1059 00:50:35,970 --> 00:50:37,220 bën në qoftë se unë të drejtuar Holloway? 1060 00:50:37,220 --> 00:50:39,940 1061 00:50:39,940 --> 00:50:40,750 Po. 1062 00:50:40,750 --> 00:50:43,050 OK. 1063 00:50:43,050 --> 00:50:44,690 Well done. 1064 00:50:44,690 --> 00:50:48,090 Pra, vetëm stafi dhe unë nuk mund ta kuptoj se çfarë bëjnë këto gjëra. 1065 00:50:48,090 --> 00:50:51,670 >> Dhe tani së fundi, më lejoni të shkoj përpara dhe do të hapë një program tjetër. 1066 00:50:51,670 --> 00:50:53,440 Kjo - 1067 00:50:53,440 --> 00:50:55,550 përsëri, ne do të bëjnë kodin burimor në dispozicion online - kjo është vetëm 1068 00:50:55,550 --> 00:50:57,480 lloj i bukur për të parë. 1069 00:50:57,480 --> 00:50:59,750 Të gjithë ata bënë është goditur bar hapësirë ​​mjaft pak. 1070 00:50:59,750 --> 00:51:01,320 Por ky është kodi i vërtetë. 1071 00:51:01,320 --> 00:51:04,790 Pra, nëse ju mendoni se është mjaft, në qoftë se ne të vërtetë të drejtuar këtë në të shpejtë, 1072 00:51:04,790 --> 00:51:08,970 përfundimisht të ju do të shihni se si ne mund të bëjë gjëra të tilla si kjo. 1073 00:51:08,970 --> 00:51:14,008 >> Pra, ne do të largohet nga ju në këtë shënim dhe shihemi të mërkurën. 1074 00:51:14,008 --> 00:51:18,440 >> [Duke luajtur muzikë] 1075 00:51:18,440 --> 00:51:23,380 >> 2 Gjuha: Në CS50 ardhshëm, TFS të organizonte një kryengritje. 1076 00:51:23,380 --> 00:51:24,112 >> Kryetari 3: Nuk është ai. 1077 00:51:24,112 --> 00:51:25,362 Merrni atë! 1078 00:51:25,362 --> 00:51:29,912 1079 00:51:29,912 --> 00:51:32,074 >> [Duke luajtur muzikë]