1 00:00:00,000 --> 00:00:10,920 >> [Mūzikas atskaņošanas] 2 00:00:10,920 --> 00:00:14,680 >> DAVID J Malan: Labi, welcome atpakaļ uz CS50. 3 00:00:14,680 --> 00:00:16,500 Tas ir sākums no divu nedēļu. 4 00:00:16,500 --> 00:00:18,940 Vārds no viena no mūsu draugi par universitātes pilsētiņā - 5 00:00:18,940 --> 00:00:22,620 Ja Jums ir interese, iespējams, vai nu tagad vai kādā turpmākajā laikā 6 00:00:22,620 --> 00:00:25,670 pat tad, kad ērtāk, mācību vidusskolā skolēni maz 7 00:00:25,670 --> 00:00:27,680 kaut ko par datorzinātņu, do galvu uz šo URL. 8 00:00:27,680 --> 00:00:32,360 Tie ir īpaši nepieciešams tieši tagad ir skolotāji, jo īpaši, ja jums ir 9 00:00:32,360 --> 00:00:34,700 bija daži pakļaušanu datorzinātnēs. 10 00:00:34,700 --> 00:00:38,060 >> Tāpēc atgādinām, ka pēdējo reizi, mēs iepazīstinājām daži datu tipi in C, un 11 00:00:38,060 --> 00:00:40,590 Jums var būt sākās, lai saņemtu savu rokas netīras ar tiem līdz šim 12 00:00:40,590 --> 00:00:41,940 jo problēma iestatīt vienu. 13 00:00:41,940 --> 00:00:43,230 Un mums bija char. 14 00:00:43,230 --> 00:00:49,100 Tātad nedaudz tehniskā ziņā, kas ir char, kā jūs to pazīstam šodien? 15 00:00:49,100 --> 00:00:51,050 >> Tātad, tas ir raksturs, bet pieņemsim precīzāk tagad. 16 00:00:51,050 --> 00:00:53,735 Ko mēs saprotam ar raksturu vai individuālo char? 17 00:00:53,735 --> 00:00:56,700 18 00:00:56,700 --> 00:00:59,500 Ne-ciparu raksturs - 19 00:00:59,500 --> 00:01:00,670 tāpēc ne vienmēr. 20 00:01:00,670 --> 00:01:04,580 Izrādās, ka pat numurus, pat interpunkcijas un vēstules 21 00:01:04,580 --> 00:01:06,980 pārstāvji ar šiem datiem rakstiet pazīstams kā char. 22 00:01:06,980 --> 00:01:09,440 Tātad, tas ne vienmēr ir alfabēta. 23 00:01:09,440 --> 00:01:11,100 Yeah? 24 00:01:11,100 --> 00:01:12,275 >> Tātad, tas ir ASCII rakstzīmju. 25 00:01:12,275 --> 00:01:15,510 Tātad, ja jūs domājat, ka atpakaļ uz nulles nedēļā, kad mums bija mūsu baitu brīvprātīgajiem 26 00:01:15,510 --> 00:01:19,150 nākt klajā un vai nu turēt rokas uz augšu vai nav viss, viņi pārstāv bitiem. 27 00:01:19,150 --> 00:01:22,450 Bet kopā kā grupa, astoņi, viņi pārstāvēja baitu. 28 00:01:22,450 --> 00:01:26,030 Un mēs ieviesām jēdzienu ASCII šajā lekcijā, kas vienkārši ir 29 00:01:26,030 --> 00:01:28,170 kartēšana starp ciparu un burtu. 30 00:01:28,170 --> 00:01:32,010 Un ASCII lietojums, kā tiem cilvēkiem netieši, astoņi biti 31 00:01:32,010 --> 00:01:33,660 pārstāvēt raksturs. 32 00:01:33,660 --> 00:01:36,890 >> Līdz ar to, ja ir astoņi biti var katrs veikt uz vienu no divām vērtībām - 33 00:01:36,890 --> 00:01:38,010 nulle vai viens - 34 00:01:38,010 --> 00:01:40,280 tas nozīmē, ka pastāv divas iespējas par šo personu, - 35 00:01:40,280 --> 00:01:41,230 nulle vai viens - 36 00:01:41,230 --> 00:01:44,070 divi par šo personu, divi šīs Persona, divi par šo vienu. 37 00:01:44,070 --> 00:01:47,450 Tātad kopā divas reizes divas reizes divas reizes divas reizes divas - 38 00:01:47,450 --> 00:01:49,700 tāpēc divi astoto kopumā. 39 00:01:49,700 --> 00:01:54,320 Tātad tur ir kopējais skaits rakstzīmju 256 Iespējams, ka jūs varat 40 00:01:54,320 --> 00:01:55,750 pārstāvēt ar astoņiem bitiem. 41 00:01:55,750 --> 00:01:59,210 >> Tagad, tiem no jums, kas runā Āzijas valodas, varbūt zināt, ka tur ir vairāk 42 00:01:59,210 --> 00:02:02,620 rakstzīmes pasaulē nekā tikai Kā un Bs un Cs un DS. 43 00:02:02,620 --> 00:02:06,130 Un tiešām, ASCII, nav pietiekams, lai daudz pasaules valodās. 44 00:02:06,130 --> 00:02:07,760 Bet vairāk par šo citā laikā. 45 00:02:07,760 --> 00:02:11,240 Tagad zinu, ka C, ja vēlaties pārstāvēt vēstuli, gabals 46 00:02:11,240 --> 00:02:15,780 pieturzīmes, vai vienkārši kaut ko rakstzīmju dabā, mēs izmantojam char. 47 00:02:15,780 --> 00:02:18,240 Un tas ir viens baits vai astoņi biti. 48 00:02:18,240 --> 00:02:19,690 >> Kā par int? 49 00:02:19,690 --> 00:02:20,780 Nu, int ir vesels skaitlis. 50 00:02:20,780 --> 00:02:23,175 Cik bitus, ja jūs atceraties, ir vesels skaitlis, kas parasti? 51 00:02:23,175 --> 00:02:25,930 52 00:02:25,930 --> 00:02:27,512 Ikviens atcerēties? 53 00:02:27,512 --> 00:02:29,600 Tātad, tas ir parasti 32. 54 00:02:29,600 --> 00:02:32,120 Tas patiesībā ir atkarīgs no datora ka jūs izmantojat. 55 00:02:32,120 --> 00:02:35,770 Bet iekārtā, un ir daudz datoriem, tas ir 32 bitu vai četriem 56 00:02:35,770 --> 00:02:37,140 baiti - astoņas reizes četras. 57 00:02:37,140 --> 00:02:39,790 Un Ints ir tikai izmanto, lai uzglabātu numurus, gan negatīvs, 58 00:02:39,790 --> 00:02:41,610 pozitīvs vai nulle. 59 00:02:41,610 --> 00:02:45,250 >> Un, ja jums ir 32 bitu un jums ir tikai rūpējas par pozitīviem skaitļiem, var 60 00:02:45,250 --> 00:02:48,960 ikviens ballpark, cik iespējams veseli dators var pārstāvēt no 61 00:02:48,960 --> 00:02:51,820 nullei uz augšu? 62 00:02:51,820 --> 00:02:56,130 Tātad tas varētu būt divas līdz 32, kas ir aptuveni četrus miljardus. 63 00:02:56,130 --> 00:02:59,720 Tātad šie divi pilnvaras būs atkārtojas tēmas datorzinātnēs. 64 00:02:59,720 --> 00:03:03,930 Kā mēs redzēsim, viņi diezgan ērts strādāt ar, pat ja tas nav gluži 65 00:03:03,930 --> 00:03:05,790 viegli darīt to math, kas savu galvu. 66 00:03:05,790 --> 00:03:07,000 >> Tāpēc mēs teikt aptuveni četrus miljardus. 67 00:03:07,000 --> 00:03:08,620 Tagad, ilgi ilgi - 68 00:03:08,620 --> 00:03:09,770 Jūs varat veida minējums. 69 00:03:09,770 --> 00:03:10,480 Tas ir garāks nekā int. 70 00:03:10,480 --> 00:03:12,440 Cik bitus? 71 00:03:12,440 --> 00:03:14,250 Tātad, 64 bitu vai astoņi baiti. 72 00:03:14,250 --> 00:03:17,480 Tas tikai nozīmē, ka jūs varat pārstāvēt pat lielāki skaitļi, lielāka pozitīva vai 73 00:03:17,480 --> 00:03:19,160 Lielāki negatīvie skaitļi. 74 00:03:19,160 --> 00:03:20,060 >> Un kā par peldēt? 75 00:03:20,060 --> 00:03:22,260 Tas ir peldošā komata vērtība no 32 bitiem. 76 00:03:22,260 --> 00:03:25,180 Tas ir tikai reāls skaitlis, kaut ar komatu. 77 00:03:25,180 --> 00:03:30,100 Bet, ja jūs, nevis nepieciešams vairāk vietas aiz komata, vai vēlaties 78 00:03:30,100 --> 00:03:33,720 pārstāv lielāku numuru, ar kādu frakcija pēc tam, jūs varat izmantot 79 00:03:33,720 --> 00:03:36,260 double, kas ir 64 biti. 80 00:03:36,260 --> 00:03:38,240 >> Bet tur ir interesants takeaway šeit. 81 00:03:38,240 --> 00:03:42,890 Tātad, ja Ints ir ierobežota ar 32 bitiem un pat ilgi garie ir ierobežota ar 64 82 00:03:42,890 --> 00:03:46,180 biti, ka veida Rodas jautājums, Ko darīt, ja jūs tiešām vēlaties, lai saskaitītu 83 00:03:46,180 --> 00:03:48,790 augstāka par 4 miljardiem int? 84 00:03:48,790 --> 00:03:50,330 Nu, jūs vienkārši izmantot ilgi ilgi. 85 00:03:50,330 --> 00:03:54,200 Bet ko tad, ja jūs vēlaties saskaitīt augstāka nekā divas 64, sniegt vai pieņemt? 86 00:03:54,200 --> 00:03:55,810 >> Tagad tas ir milzīgs skaits. 87 00:03:55,810 --> 00:03:59,250 Bet galu galā, jūs varētu faktiski rūpēties par šiem vērtībām veidiem, 88 00:03:59,250 --> 00:04:03,070 it īpaši, ja jūs izmantojat datu bāzi un sāk vākt daudz un daudz 89 00:04:03,070 --> 00:04:06,190 un daudz datu un piešķirot unikālu numurus katru gabalu šo datu. 90 00:04:06,190 --> 00:04:07,430 Tātad, mēs veida ir problēma. 91 00:04:07,430 --> 00:04:10,700 Un līdzīgi, ar peldošo punktu vērtībām - pludiņi vai divvietīgi - 92 00:04:10,700 --> 00:04:14,290 ja jūs esat tikai got ierobežots skaits biti, cik kopējais skaits varētu jums 93 00:04:14,290 --> 00:04:16,980 iespējams, pārstāv? 94 00:04:16,980 --> 00:04:19,540 >> Nu, tas ir mazāk skaidrs, kad jūs saistīta ar komatu. 95 00:04:19,540 --> 00:04:20,899 Bet tas, protams, ierobežots. 96 00:04:20,899 --> 00:04:24,390 Ja jums ir ierobežots bitu skaits ierobežots skaits cilvēku, ierobežots 97 00:04:24,390 --> 00:04:27,350 skaits spuldžu, protams, jūs varat veido tikai ierobežots skaits 98 00:04:27,350 --> 00:04:28,510 peldošā punkta vērtības. 99 00:04:28,510 --> 00:04:33,170 Bet cik reāli skaitļi ir viņu pasaulē? 100 00:04:33,170 --> 00:04:33,680 Tur ir bezgalīgs. 101 00:04:33,680 --> 00:04:37,280 Tātad tas ir sava veida problēmu, jo mēs nav bezgalīgu daudzumu 102 00:04:37,280 --> 00:04:39,970 atmiņa vai iekšpusē mūsu datoriem RAM. 103 00:04:39,970 --> 00:04:41,780 Tāpēc daži izaicinājumu lietas var notikt. 104 00:04:41,780 --> 00:04:43,900 >> Tāpēc iesim uz priekšu un mēģināt izteikt šo šeit. 105 00:04:43,900 --> 00:04:46,240 Ļaujiet man iet uz priekšu un atvērt gedit. 106 00:04:46,240 --> 00:04:50,360 Es iešu uz priekšu un saglabājiet failu sauc par "floats0.c", tikai, lai būtu 107 00:04:50,360 --> 00:04:54,630 savienojams ar piemēru, kas ir pieejami tiešsaistē, ja vēlaties. 108 00:04:54,630 --> 00:04:58,080 Un es iešu uz priekšu un definēt to šādi - 109 00:04:58,080 --> 00:05:01,540 Es iešu uz priekšu un saka, int Galvenais spēkā neesošu, jo mēs bieži vien darām. 110 00:05:01,540 --> 00:05:07,190 >> Un tad šajā programmā, es esmu gatavojas atzīt sevi, apgrozāmos līdzekļus, lai 32 bitu 111 00:05:07,190 --> 00:05:09,700 mainīgo sauc par f, patvaļīgi. 112 00:05:09,700 --> 00:05:13,910 Un tad es esmu gatavojas glabāt tajā Es nezinu, vienu desmitdaļu, 0.1 tā. 113 00:05:13,910 --> 00:05:16,590 Tāpēc es esmu gatavojas paust, ka par vienu dala ar 10, kas ir pilnīgi 114 00:05:16,590 --> 00:05:17,790 likumīgi C. 115 00:05:17,790 --> 00:05:20,460 >> Un pēc tam otrajā līnijā, es vienkārši vēlaties izdrukāt šo vērtību. 116 00:05:20,460 --> 00:05:22,950 Tāpēc atgādinām, ka mēs varam izmantot pazīstami printf. 117 00:05:22,950 --> 00:05:25,420 Mēs nevēlamies, lai izmantotu% i par int. 118 00:05:25,420 --> 00:05:28,360 Mēs vēlamies izmantot% F apgrozāmos līdzekļus. 119 00:05:28,360 --> 00:05:33,080 Un tad es esmu gatavojas darīt slīpsvītru n, aizvērt citēju, komats, f, semikols. 120 00:05:33,080 --> 00:05:34,400 >> Tātad, šeit ir mana programma. 121 00:05:34,400 --> 00:05:35,820 Tur jau ir viena kļūda. 122 00:05:35,820 --> 00:05:38,640 Vai kāds, kam tas uzklikšķināt jau vēlos norādīt vismaz 123 00:05:38,640 --> 00:05:40,220 viens bug es esat veikuši? 124 00:05:40,220 --> 00:05:42,470 Yeah? 125 00:05:42,470 --> 00:05:42,800 Jā. 126 00:05:42,800 --> 00:05:47,860 Es aizmirsu "# ietver" at augšu, viņi simptoms, kas, ja es mēģinātu 127 00:05:47,860 --> 00:05:50,490 apkopot tas būs, ka kompilators gatavojas kliegt uz mani, 128 00:05:50,490 --> 00:05:52,770 sakot undefined simbolu vai kaut kas šajā sakarā. 129 00:05:52,770 --> 00:05:55,360 Tā nesaprot kaut ko patīk printf. 130 00:05:55,360 --> 00:05:59,380 >> Tāpēc es esmu gatavojas darīt, "# ietvert ", Saglabājiet failu. 131 00:05:59,380 --> 00:06:00,400 Un tagad tas ir labāks. 132 00:06:00,400 --> 00:06:02,690 Bet es esmu arī gatavojas uzsvērt veic vienu jaunu detaļu šodien. 133 00:06:02,690 --> 00:06:08,620 Papildus norādot vietu turētājiem, piemēram,% f% i% s, jūs varat 134 00:06:08,620 --> 00:06:12,320 dažreiz ietekmē uzvedību šī vietturī. 135 00:06:12,320 --> 00:06:15,540 Tā, piemēram, attiecībā uz peldoša punkta vērtība, ja es tikai gribu 136 00:06:15,540 --> 00:06:22,200 lai parādītu vienu zīmi aiz komata pēc periodā, es patiesībā var darīt 0.1F. 137 00:06:22,200 --> 00:06:26,830 Tātad, citiem vārdiem sakot, es atdalīt f un procentu zīme ar 0,1, tikai 138 00:06:26,830 --> 00:06:30,200 stāsta printf, jums varētu būt visai ķekars numuriem pēc decimālzīmes 139 00:06:30,200 --> 00:06:30,930 punktu par mani. 140 00:06:30,930 --> 00:06:32,870 Bet es tikai gribu redzēt vienu no tiem. 141 00:06:32,870 --> 00:06:36,280 >> Tāpēc es esmu gatavojas iet uz priekšu tūlīt un ietaupiet šī programma, iedziļināties manā termināls 142 00:06:36,280 --> 00:06:41,870 logu, un es esmu gatavojas iet uz priekšu un tips padarīt float 0, ievadiet. 143 00:06:41,870 --> 00:06:44,930 Es redzu, ka nedaudz mistisks līniju, kas sāks daudz lietderīgāk, kā mēs 144 00:06:44,930 --> 00:06:46,900 ķircināt to nošķir šonedēļ un nākamo. 145 00:06:46,900 --> 00:06:50,480 Tagad es esmu gatavojas iet uz priekšu un palaist float nullei. 146 00:06:50,480 --> 00:06:52,020 Un, damn. 147 00:06:52,020 --> 00:06:54,880 >> Tātad tur ir vēl viens bug šeit, kāda iemesla dēļ. 148 00:06:54,880 --> 00:07:02,490 Es esmu diezgan pārliecināts, ka viena desmitā daļa, vai viens dala ar 10, ir ne 0.0. 149 00:07:02,490 --> 00:07:04,590 Varbūt es esmu tikai nav meklējat pie pietiekami cipariem. 150 00:07:04,590 --> 00:07:08,580 Tātad, kāpēc nav es saku divus .2 redzēt divus zīmēm aiz komata, nevis tikai vienu. 151 00:07:08,580 --> 00:07:11,810 Ļaujiet man iet atpakaļ uz manu termināļa logā šeit un hit up pāris reizes, lai 152 00:07:11,810 --> 00:07:12,840 skatīt manu vēsturi. 153 00:07:12,840 --> 00:07:15,910 Vai padarīt peldēt nulle atkal, un pēc tam atkal. 154 00:07:15,910 --> 00:07:17,730 Un tagad ieiet. 155 00:07:17,730 --> 00:07:20,000 >> Un tagad es esmu diezgan pārliecināts, ka tas ir nepareizi. 156 00:07:20,000 --> 00:07:23,030 Un es varētu darīt, trīs un četri, un es esmu iespējams, gatavojas glabāt redzēt nullēm. 157 00:07:23,030 --> 00:07:24,880 Tātad, kur ir kļūda? 158 00:07:24,880 --> 00:07:27,910 Viens dala ar 10 vajadzētu būt 0.1. 159 00:07:27,910 --> 00:07:30,310 Kāds vēlas pieņemt stab pie kādiem pamatjautājums ir? 160 00:07:30,310 --> 00:07:32,400 Yeah? 161 00:07:32,400 --> 00:07:33,420 Viņi abi ir veseli skaitļi. 162 00:07:33,420 --> 00:07:33,920 Tātad, ko? 163 00:07:33,920 --> 00:07:37,820 Tātad ar vienu dalīts ar 10, kas ir ko es daru aritmētisko. 164 00:07:37,820 --> 00:07:41,185 Un man 0.1. 165 00:07:41,185 --> 00:07:41,660 >> Jā. 166 00:07:41,660 --> 00:07:43,240 Un tā tas tiešām ir, ka jautājums. 167 00:07:43,240 --> 00:07:46,700 Kad jūs veikt veselu skaitli datorā un jūs sadalīt to ar citu skaitlim, 168 00:07:46,700 --> 00:07:50,430 pēc noklusējuma dators ir gatavojas pieņemam, ka jūs vēlaties skaitli. 169 00:07:50,430 --> 00:07:54,620 Problēma, lai gan, protams, ir ka 0,1 nav vesels skaitlis. 170 00:07:54,620 --> 00:07:55,680 Tas ir reāls skaitlis. 171 00:07:55,680 --> 00:07:59,610 Un tā, ko dators dara ar noklusējuma tas ir tikai met prom 172 00:07:59,610 --> 00:08:01,070 viss aiz komata. 173 00:08:01,070 --> 00:08:03,380 Tas nav noapaļot uz leju vai uz augšu per se. 174 00:08:03,380 --> 00:08:06,480 Tas vienkārši met prom visu aiz komata. 175 00:08:06,480 --> 00:08:07,430 Un tagad, ka ir jēga. 176 00:08:07,430 --> 00:08:09,740 Jo tagad mēs esam skaidri kreisi ar nulli. 177 00:08:09,740 --> 00:08:10,250 >> Bet pagaidiet minūti. 178 00:08:10,250 --> 00:08:11,840 Es neesmu redzēt int nulli. 179 00:08:11,840 --> 00:08:14,910 Es tiešām redzēt 0.00. 180 00:08:14,910 --> 00:08:16,340 Tātad, kā es varu savienot šo tagad? 181 00:08:16,340 --> 00:08:22,850 Ja viens dalīts ar 10 ir nulle, bet es esmu redzot 0.00, ja tas kļūst 182 00:08:22,850 --> 00:08:24,250 konvertē atpakaļ uz reālu skaitli? 183 00:08:24,250 --> 00:08:25,500 Jā. 184 00:08:25,500 --> 00:08:29,850 185 00:08:29,850 --> 00:08:30,630 Tieši tā. 186 00:08:30,630 --> 00:08:35,600 >> Tātad, šeit ir pieci līniju, kad es faktiski uzglabāt ka 0,1, kas ir pēc tam 187 00:08:35,600 --> 00:08:39,549 saīsināts līdz nullei, iekšpusē pludiņa, kas ir vienlīdz efektīvs 188 00:08:39,549 --> 00:08:42,100 uzglabājot to nevis kā int, bet, tiešām, kā apgrozāmos līdzekļus. 189 00:08:42,100 --> 00:08:46,540 Turklāt es esmu, tad, izmantojot printf skaidri drukāt šo numuru uz divām 190 00:08:46,540 --> 00:08:49,740 zīmēm aiz komata, lai gan tur iespējams, nav faktiski nekāda. 191 00:08:49,740 --> 00:08:51,020 >> Tātad šāda veida sucks, vai ne? 192 00:08:51,020 --> 00:08:53,640 Acīmredzot jūs nevarat darīt math, vismaz šajā līmenī 193 00:08:53,640 --> 00:08:55,600 precizitāte, ar datoru. 194 00:08:55,600 --> 00:08:56,930 Bet, protams, tur ir risinājums. 195 00:08:56,930 --> 00:09:00,410 Kas ir vienkāršākais noteikt mēs varētu varbūt darīt, pat tikai intuitīvi šeit 196 00:09:00,410 --> 00:09:01,130 atrisināt šo? 197 00:09:01,130 --> 00:09:02,380 Yeah? 198 00:09:02,380 --> 00:09:04,700 199 00:09:04,700 --> 00:09:06,574 Savukārt veselos skaitļus par - 200 00:09:06,574 --> 00:09:06,976 yeah. 201 00:09:06,976 --> 00:09:10,420 Pat ja es neesmu pilnīgi pārliecināts, kas ir īsti notiek šeit, ja tas 202 00:09:10,420 --> 00:09:13,440 būtībā ir jādara ar šiem abiem ir Ints, labi, kāpēc ne es 203 00:09:13,440 --> 00:09:18,230 darīt, ka 10,0, padarot šo 1.0 atkārtoti saglabāt failu. 204 00:09:18,230 --> 00:09:20,990 Ļaujiet man iet atpakaļ uz leju, lai grunts un pārkompilācija. 205 00:09:20,990 --> 00:09:23,030 Ļaujiet man tagad atkārto. 206 00:09:23,030 --> 00:09:23,420 Un tur - 207 00:09:23,420 --> 00:09:27,690 Tagad, es esam ieguvuši savu vienu desmito pārstāvēja 0,10. 208 00:09:27,690 --> 00:09:28,420 >> Labi. 209 00:09:28,420 --> 00:09:29,220 Tātad, tas nav slikti. 210 00:09:29,220 --> 00:09:31,730 Un ļaujiet man norādīt uz kādu citu veidu, mēs varētu atrisināt šo. 211 00:09:31,730 --> 00:09:35,580 Ļaujiet man faktiski roll atpakaļ laikā , kad mums bija kā vienu 212 00:09:35,580 --> 00:09:36,680 desmitais pirms brīža. 213 00:09:36,680 --> 00:09:40,800 Un ļaujiet man iet uz priekšu un atkārtoti saglabāt šo failu kā citu faila nosaukumu, tikai uz 214 00:09:40,800 --> 00:09:41,750 ir maz kontrolpunkts. 215 00:09:41,750 --> 00:09:43,450 Tā, ka ir viens variants. 216 00:09:43,450 --> 00:09:45,520 Un tagad ļaujiet man iet uz priekšu un darīt vēl vienu versiju. 217 00:09:45,520 --> 00:09:48,540 Mēs saucam šo versiju divi nulle indeksēti. 218 00:09:48,540 --> 00:09:51,280 >> Un es esmu gatavojas, nevis darīt šo - jūs zināt, ko? 219 00:09:51,280 --> 00:09:54,400 Pievienojot dot nulles strādā šajā lietā. 220 00:09:54,400 --> 00:09:56,060 Bet pieņemsim, ka viens bija mainīgs. 221 00:09:56,060 --> 00:09:57,680 Vajadzēja 10 bija mainīgs. 222 00:09:57,680 --> 00:10:00,680 Citiem vārdiem sakot, pieņemsim, ka es nevarēju tikai grūti-kods .0 beigās 223 00:10:00,680 --> 00:10:02,340 Šī aritmētiskas izteiksmes. 224 00:10:02,340 --> 00:10:05,820 Nu, es patiesībā var darīt kaut ko iekavās sauc liešana. 225 00:10:05,820 --> 00:10:11,920 Es varu nodot šo skaitli 10 ar pludiņa, un es varu nodot šo veselo vienu 226 00:10:11,920 --> 00:10:12,800 peldēt, kā arī. 227 00:10:12,800 --> 00:10:17,190 Tad math, kas notiek, kas jādara efektīvi 1,0 dalīts ar 10,0, 228 00:10:17,190 --> 00:10:19,250 rezultāts, kas iet in f kā iepriekš. 229 00:10:19,250 --> 00:10:26,130 Tātad, ja es recompile to kā padarīt pludiņi 2, un tagad peld 2, man tas pats 230 00:10:26,130 --> 00:10:27,020 atbildēt, kā arī. 231 00:10:27,020 --> 00:10:29,640 >> Tātad tas ir diezgan izdomāts piemērs, lai atrisinātu šo problēmu 232 00:10:29,640 --> 00:10:31,400 ieviešot liešana. 233 00:10:31,400 --> 00:10:34,410 Bet kopumā, liešana būs spēcīgs lieta, jo īpaši 234 00:10:34,410 --> 00:10:38,180 problēma, kas divas nedēļas laikā, kad Jūs vēlaties, lai pārvērstu vienu datu veidu, lai 235 00:10:38,180 --> 00:10:41,800 vēl viens, ka beigās, dienā ir pārstāvēti tajā pašā veidā. 236 00:10:41,800 --> 00:10:44,970 Beigās, dienā, katru lieta, ko mēs esam runājuši par līdz šim ir 237 00:10:44,970 --> 00:10:46,710 tikai Ints zem motora pārsega. 238 00:10:46,710 --> 00:10:48,950 Vai, ja tas ir pārāk zema līmenis tu, viņi vienkārši numuri 239 00:10:48,950 --> 00:10:49,750 zem motora pārsega. 240 00:10:49,750 --> 00:10:52,850 Pat rakstzīmes, atkal atgādināt No nedēļu nulles, ir skaitļi 241 00:10:52,850 --> 00:10:53,990 zem motora pārsega. 242 00:10:53,990 --> 00:10:57,240 >> Kas nozīmē, mēs varam konvertēt starp dažādu veidu numuriem, ja 243 00:10:57,240 --> 00:10:58,060 viņi vienkārši biti. 244 00:10:58,060 --> 00:11:01,020 Mēs varam konvertēt starp numuriem un vēstules, ja viņi vienkārši 245 00:11:01,020 --> 00:11:02,580 biti, un otrādi. 246 00:11:02,580 --> 00:11:07,170 Un liešanas šādā veidā ir mehānisms programmēšanā, kas ļauj piespiedu kārtā 247 00:11:07,170 --> 00:11:10,970 mainīt vienu datu tipu uz citu. 248 00:11:10,970 --> 00:11:14,570 Diemžēl, tas nav tik vienkāršs, kā es varētu būt patika. 249 00:11:14,570 --> 00:11:19,220 >> Es esmu gatavojas doties atpakaļ uz pludiņiem 1, kas ir vienkāršāka, vairāk 250 00:11:19,220 --> 00:11:22,830 vienkārši viens ar 0,0 pievienots, lai katrs. 251 00:11:22,830 --> 00:11:25,260 Un tikpat ātri celšanas, ļaujiet man iet uz priekšu un recompile 252 00:11:25,260 --> 00:11:27,670 tas, padara pludiņi 2 - 253 00:11:27,670 --> 00:11:30,300 sorry, tas ir padarīt pludiņi 1. 254 00:11:30,300 --> 00:11:32,050 Un tagad pieņemsim darboties pludiņi 1. 255 00:11:32,050 --> 00:11:34,810 Un apakšpusē, paziņojums ka es tiešām saņem 0.1. 256 00:11:34,810 --> 00:11:36,165 Tātad, problēma atrisināta. 257 00:11:36,165 --> 00:11:37,280 >> Bet vēl nav. 258 00:11:37,280 --> 00:11:40,000 Es esmu tagad gatavojas saņemt mazliet ziņkārīgs, un es iešu atpakaļ manā 259 00:11:40,000 --> 00:11:41,620 printf pārskats un teiksim, jūs zināt, ko? 260 00:11:41,620 --> 00:11:44,090 Es gribētu, lai apstiprinātu, ka šī ir tiešām viena desmitdaļa. 261 00:11:44,090 --> 00:11:47,890 Un es esmu gatavojas vēlaties redzēt šo , teiksim, piecas zīmēm aiz komata. 262 00:11:47,890 --> 00:11:48,570 Tā nav problēma. 263 00:11:48,570 --> 00:11:52,020 Es mainīt 2-5 ar, Es recompile ar darīt. 264 00:11:52,020 --> 00:11:53,770 Es atkārto to kā pludiņi 1. 265 00:11:53,770 --> 00:11:54,990 Meklē diezgan laba. 266 00:11:54,990 --> 00:11:58,570 Mana veselība pārbaudes varētu nonākt tur, bet Es saņemu nedaudz vairāk piedzīvojumu. 267 00:11:58,570 --> 00:12:00,330 Es esmu gatavojas mainīt 0,5-0,10. 268 00:12:00,330 --> 00:12:03,440 Es gribu redzēt 10 cipariem aiz zīmi aiz komata. 269 00:12:03,440 --> 00:12:09,060 >> Un es iešu uz priekšu un recompile šo un atkārto pludiņi 1. 270 00:12:09,060 --> 00:12:13,060 Es veida nožēlu, kam pārbauda šo tālāk, jo mana matemātika nav tik 271 00:12:13,060 --> 00:12:14,320 labot vairs, šķiet. 272 00:12:14,320 --> 00:12:15,630 Bet pagaidiet minūti, varbūt tas ir tikai parazīts. 273 00:12:15,630 --> 00:12:17,810 Varbūt dators darbojas mazliet dīvaini. 274 00:12:17,810 --> 00:12:21,810 Ļaujiet man iet uz priekšu un darīt 20 aiz punktiem un pārliecināt sevi, ka es zinu, 275 00:12:21,810 --> 00:12:22,540 kā to izdarīt math. 276 00:12:22,540 --> 00:12:23,460 Es zinu, kā programma. 277 00:12:23,460 --> 00:12:26,960 Padarīt pludiņi 1, kompilējiet, un nopelt to. 278 00:12:26,960 --> 00:12:31,110 Tas ir patiešām, patiešām kļūst tālu no zīmes. 279 00:12:31,110 --> 00:12:32,490 >> Tātad, kas notiek šeit? 280 00:12:32,490 --> 00:12:36,050 Intuitīvi, balstoties uz mūsu pieņēmumiem agrāk par lielumu datu tipu, 281 00:12:36,050 --> 00:12:38,040 kas ir noticis šeit zem pārsega? 282 00:12:38,040 --> 00:12:39,290 Yeah? 283 00:12:39,290 --> 00:12:43,000 284 00:12:43,000 --> 00:12:43,590 Tieši tā. 285 00:12:43,590 --> 00:12:46,480 Ja jūs vēlaties tik daudz precizitāti, un kas ir heck par daudz precizitāti - 286 00:12:46,480 --> 00:12:48,770 20 skaitļi aiz komata. 287 00:12:48,770 --> 00:12:51,990 Jūs nav iespējams pārstāvēt patvaļīgs skaitlis, ja jums ir 288 00:12:51,990 --> 00:12:52,930 patvaļīgs bitu skaits. 289 00:12:52,930 --> 00:12:54,190 Bet mums nav. 290 00:12:54,190 --> 00:12:57,200 Par pludiņa, mums ir tikai 32 bitus. 291 00:12:57,200 --> 00:13:02,260 >> Tātad, ja 32 biti var tikai permutēts ar veids - tāpat kā mūsu cilvēkiem uz, skatuve 292 00:13:02,260 --> 00:13:05,780 rokas uz augšu vai uz leju - ar noteiktu skaitu veidi, tur ir tikai ierobežots skaits 293 00:13:05,780 --> 00:13:08,640 reāliem skaitļiem, jūs varat pārstāvēt ar šiem bitiem. 294 00:13:08,640 --> 00:13:10,500 Un tā dators beidzot ir nāksies 295 00:13:10,500 --> 00:13:11,730 sākt griešana stūriem. 296 00:13:11,730 --> 00:13:15,500 Dators var slēpt šo informāciju no mums mazliet laika. 297 00:13:15,500 --> 00:13:18,880 Bet, ja mēs sāktu poking uz skaitļiem un meklē tālāk un tālāk pie 298 00:13:18,880 --> 00:13:23,220 trailing skaitu vesels skaitlis, tad mēs sākam redzēt, ka tas ir 299 00:13:23,220 --> 00:13:26,480 faktiski tuvināšana Ideja par vienu desmito daļu. 300 00:13:26,480 --> 00:13:29,860 >> Un tā izrādās, traģiski, tur ir bezgalīgi daudz skaitļu 301 00:13:29,860 --> 00:13:35,060 mēs nevaram pārstāvēt precīzi dators, vismaz ar ierobežotu 302 00:13:35,060 --> 00:13:38,030 bitu skaits, ierobežots summa RAM. 303 00:13:38,030 --> 00:13:41,210 Tagad diemžēl, tas dažreiz ir reālās pasaules sekas. 304 00:13:41,210 --> 00:13:45,980 Ja cilvēki nav īsti novērtēt to vai veida pieņemt par pašsaprotamu faktu 305 00:13:45,980 --> 00:13:48,310 ka viņu dators būs tikai darīt to, ko viņi pateiks to darīt, un nav 306 00:13:48,310 --> 00:13:51,430 izprast šīs bāzes pārstāvniecības detaļas - 307 00:13:51,430 --> 00:13:55,290 kas, atklāti sakot, dažās valodās ir slēpta no lietotāja, atšķirībā no C - 308 00:13:55,290 --> 00:13:56,500 dažas sliktas lietas var notikt. 309 00:13:56,500 --> 00:13:58,650 >> Un ko es domāju, ka mēs gribētu darīt ir veikt soli atpakaļ. 310 00:13:58,650 --> 00:14:00,420 Un tas ir par astoņu minūšu video. 311 00:14:00,420 --> 00:14:04,200 Tā izskanējuši pirms dažiem gadiem, un tas dod ieskatu faktiski ko var aiziet 312 00:14:04,200 --> 00:14:09,290 nepareizi, ja jūs nepietiekami novērtēt šos veida informāciju, kas ir ļoti visi pārāk 313 00:14:09,290 --> 00:14:10,080 reālo pasauli. 314 00:14:10,080 --> 00:14:12,965 Ja mēs varētu tuvās gaismas uz dažām minūtēm. 315 00:14:12,965 --> 00:14:14,360 >> SPEAKER 1: Mums tagad atgriežas inženierija 316 00:14:14,360 --> 00:14:17,160 katastrofas uz mūsdienu brīnumiem. 317 00:14:17,160 --> 00:14:18,680 >> Datori - 318 00:14:18,680 --> 00:14:21,340 mēs visi esam ieradušies pieņemt bieži nomākta problēmas 319 00:14:21,340 --> 00:14:23,170 , kas iet kopā ar viņiem. 320 00:14:23,170 --> 00:14:27,570 Bugs, vīrusi un programmatūras glitches ir mazas cenas, lai samaksātu par 321 00:14:27,570 --> 00:14:28,960 ērtības. 322 00:14:28,960 --> 00:14:32,040 Bet augsto tehnoloģiju un ātrgaitas militārās un kosmosa programma 323 00:14:32,040 --> 00:14:38,650 lietojumprogrammas, mazākā problēma var tikt palielināts par katastrofu. 324 00:14:38,650 --> 00:14:44,480 >> 4.jūnijā 1996 zinātnieki gatavs uzsākt bezpilota Ariane 5 raķeti. 325 00:14:44,480 --> 00:14:48,700 Tas nesa zinātniskos satelītus paredzēti, lai precīzi noskaidrotu, kā 326 00:14:48,700 --> 00:14:53,250 Zemes magnētiskais lauks mijiedarbojas ar saules vēju. 327 00:14:53,250 --> 00:14:57,540 Raķete tika uzbūvēta Eiropas Kosmosa aģentūru un jāpaceļ no tās 328 00:14:57,540 --> 00:14:59,906 mehānisms krastā Franču Gviānā. 329 00:14:59,906 --> 00:15:03,660 >> JACK GANSSLE: Aptuveni 37 sekundes uz lidojums, viņi pirmo reizi pamanīju 330 00:15:03,660 --> 00:15:04,910 kaut kas notiek nepareizi. 331 00:15:04,910 --> 00:15:08,130 Sprauslas tika grozot ar kā viņi tiešām nevajadzētu. 332 00:15:08,130 --> 00:15:12,380 Ap 40 lidojuma sekundē, skaidri transportlīdzeklis bija nepatikšanas. 333 00:15:12,380 --> 00:15:14,400 Un tas ir tad, kad viņi lēmums to iznīcināt. 334 00:15:14,400 --> 00:15:18,520 Diapazons drošības virsnieks, ar milzīgs iekšām, piespiež pogu, 335 00:15:18,520 --> 00:15:23,900 uzspridzināja raķešu pirms tā varētu kļūt apdraudēt sabiedrisko drošību. 336 00:15:23,900 --> 00:15:27,810 >> SPEAKER 1: Tas bija pirmajā braucienā no Ariane 5, un to iznīcināšanu 337 00:15:27,810 --> 00:15:32,020 notika tāpēc, ka iegulto plaisāt kas Rocket programmatūru. 338 00:15:32,020 --> 00:15:33,980 >> JACK GANSSLE: Problēma uz Ariane bija tas, ka numurs 339 00:15:33,980 --> 00:15:36,390 bija nepieciešami 64 biti izteikt. 340 00:15:36,390 --> 00:15:39,420 Un viņi gribēja, lai pārvērstu līdz 16-bit skaitu. 341 00:15:39,420 --> 00:15:43,130 Viņi pieņem, ka skaits bija nekad nav būs ļoti liels, ka lielākā daļa 342 00:15:43,130 --> 00:15:46,810 šie cipari ir 64-bit numurs bija nulles. 343 00:15:46,810 --> 00:15:48,270 Viņi bija nepareizi. 344 00:15:48,270 --> 00:15:51,380 >> SPEAKER 1: nespēja vienu programmatūru Programma pieņemt veida 345 00:15:51,380 --> 00:15:55,350 numurs, ko vēl bija saknē neveiksmes. 346 00:15:55,350 --> 00:15:59,970 Programmatūras izstrāde ir kļuvusi ļoti dārga daļa no jaunās tehnoloģijas. 347 00:15:59,970 --> 00:16:03,980 Ariane 4 raķete bija ļoti veiksmīga, tik daudz programmatūras 348 00:16:03,980 --> 00:16:07,480 radīti tas bija arī izmanto Ariane 5. 349 00:16:07,480 --> 00:16:11,980 >> PHILIP COYLE: Galvenā problēma bija ka Ariane 5 bija ātrāks, 350 00:16:11,980 --> 00:16:13,720 paātrināta ātrāk. 351 00:16:13,720 --> 00:16:17,250 Un programmatūra nebija jāatskaitās par to. 352 00:16:17,250 --> 00:16:20,770 >> SPEAKER 1: iznīcināšana raķešu bija milzīgs finanšu katastrofa, 353 00:16:20,770 --> 00:16:24,200 viss, pateicoties minūti programmatūras kļūdas. 354 00:16:24,200 --> 00:16:27,820 Bet tas nebija pirmā reize dati pārveides problēmas bija norisinās mūsdienu 355 00:16:27,820 --> 00:16:30,620 raķešu tehnoloģijas. 356 00:16:30,620 --> 00:16:34,480 >> JACK GANSSLE: 1991, ar startu no pirmā Persijas līča kara, Patriot 357 00:16:34,480 --> 00:16:38,610 raķešu piedzīvoja līdzīga veida no numura konversijas problēmu. 358 00:16:38,610 --> 00:16:44,910 Tā rezultātā 28 amerikāņu karavīri nogalināti un aptuveni 100 citi ievainoti 359 00:16:44,910 --> 00:16:48,600 kad Patriot, kas bija paredzēts lai aizsargātu pret ienākošo Scuds, 360 00:16:48,600 --> 00:16:51,630 neizdevās, lai šautu raķeti. 361 00:16:51,630 --> 00:16:55,110 >> SPEAKER 1: kad Irāka iebruka Kuveitā un Amerikā sāka Desert Storm 362 00:16:55,110 --> 00:17:00,570 Jau 1991 Patriot raķešu baterijas tika izvietoti, lai aizsargātu Saūda Arābija 363 00:17:00,570 --> 00:17:04,760 un Izraēlu no Irākas traukties raķešu uzbrukumiem. 364 00:17:04,760 --> 00:17:09,720 Patriot ir ASV vidēja rādiusa zeme-gaiss sistēmu, ko ražo 365 00:17:09,720 --> 00:17:11,569 Raytheon uzņēmums. 366 00:17:11,569 --> 00:17:16,410 >> THEODORE POSTOL: lielums Patriot aizturētāja pati par sevi ir aptuveni 367 00:17:16,410 --> 00:17:17,710 20-pēdu garš. 368 00:17:17,710 --> 00:17:20,800 Un tas sver aptuveni 2000 mārciņas. 369 00:17:20,800 --> 00:17:22,940 Un tā veic kaujas galviņu aptuveni - 370 00:17:22,940 --> 00:17:24,905 Es domāju, ka tas ir apmēram £ 150. 371 00:17:24,905 --> 00:17:31,030 Un kaujas galviņu pati par sevi ir augsts sprāgstviela, kas ir 372 00:17:31,030 --> 00:17:33,270 fragmenti ap to. 373 00:17:33,270 --> 00:17:37,490 No kaujas galviņu korpuss ir paredzēts rīkoties kā Buckshot. 374 00:17:37,490 --> 00:17:40,720 >> SPEAKER 1: The raķetes tiek veiktas četras uz konteinera un tiek transportēti 375 00:17:40,720 --> 00:17:43,050 ar puspiekabi piekabe. 376 00:17:43,050 --> 00:17:47,490 >> PHILIP COYLE: Patriot pretraķešu Sistēma iet atpakaļ 377 00:17:47,490 --> 00:17:50,710 vismaz 20 gadus. 378 00:17:50,710 --> 00:17:54,350 Tā sākotnēji tika veidota kā pretgaisa aizsardzības raķešu, lai 379 00:17:54,350 --> 00:17:56,190 atvašu nosaka ienaidnieks lidmašīnas. 380 00:17:56,190 --> 00:18:02,490 Pirmajā Persijas līča kara, kad, ka karš nāca kopā, armija vēlējās, lai to izmantotu 381 00:18:02,490 --> 00:18:05,535 nošaut Scuds, nevis lidmašīnas. 382 00:18:05,535 --> 00:18:09,310 Irākas gaisa spēku nebija tik daudz problēmu. 383 00:18:09,310 --> 00:18:12,450 Bet armija bija noraizējies par Scuds. 384 00:18:12,450 --> 00:18:15,950 Un tā viņi centās, lai uzlabotu Patriot. 385 00:18:15,950 --> 00:18:18,750 >> SPEAKER 1: pārtvērēja ienaidnieka raķetes ceļo piecās mach bija 386 00:18:18,750 --> 00:18:20,890 būs grūti pietiekami. 387 00:18:20,890 --> 00:18:25,590 Bet, kad Patriot tika metās pakalpojums, armija nebija zināms 388 00:18:25,590 --> 00:18:31,710 Irākas izmaiņas, kas padarīja viņu Scuds gandrīz neiespējami, lai sasniegtu. 389 00:18:31,710 --> 00:18:35,240 >> THEODORE POSTOL: Kas notika ir Scuds, kas bija 390 00:18:35,240 --> 00:18:36,570 nāk bija nestabila. 391 00:18:36,570 --> 00:18:37,532 Viņi bija wobbling. 392 00:18:37,532 --> 00:18:43,220 Iemesls tam bija irākiešu, kas Lai iegūtu 600 kilometru no 393 00:18:43,220 --> 00:18:47,530 300 kilometru diapazona raķešu, ņēma svars no priekšējā warhead. 394 00:18:47,530 --> 00:18:49,290 Viņi kaujas galviņu vieglāks. 395 00:18:49,290 --> 00:18:53,110 Tāpēc tagad Patriot mēģina nākt pie traukties. 396 00:18:53,110 --> 00:18:56,470 Un lielāko daļu laika, milzīgs lielāko daļu laika, tas būtu vienkārši 397 00:18:56,470 --> 00:18:58,730 lidot ar traukties. 398 00:18:58,730 --> 00:19:01,760 >> SPEAKER 1: Kad Patriot sistēma uzņēmēji saprata Patriot garām 399 00:19:01,760 --> 00:19:06,690 tās mērķis, tās uzsprāgt Patriots kaujas galviņu, lai izvairītos no iespējama 400 00:19:06,690 --> 00:19:10,300 negadījumu, ja tas ir atļauts krist uz zemes. 401 00:19:10,300 --> 00:19:14,540 >> THEODORE POSTOL: Tas bija tas, ko lielākā daļa cilvēki redzēja, kā lielie fireballs, kas debesīs 402 00:19:14,540 --> 00:19:20,350 un pārprast kā pārtver no Scud kaujas galviņām. 403 00:19:20,350 --> 00:19:23,320 >> SPEAKER 1: Lai gan nakts debesis Patrioti izrādījās veiksmīgi 404 00:19:23,320 --> 00:19:27,530 iznīcinot Scuds pēc Dhahran tur varētu būt kļūda par tās 405 00:19:27,530 --> 00:19:29,140 veiktspēju. 406 00:19:29,140 --> 00:19:34,180 Tur, ka Patriot radaru sistēma zaudēja līdzi ienākošo traukties un nekad 407 00:19:34,180 --> 00:19:36,380 uzsākta sakarā ar programmatūras plaisāt. 408 00:19:36,380 --> 00:19:39,890 409 00:19:39,890 --> 00:19:42,700 >> Tas bija izraēlieši, kurš pirmais atklāja ka garāks sistēma 410 00:19:42,700 --> 00:19:48,020 bija, lielāks laiks neatbilstība kļuva sakarā ar pulksteni 411 00:19:48,020 --> 00:19:50,470 iestrādāta sistēmas datorā. 412 00:19:50,470 --> 00:19:54,640 >> JACK GANSSLE: Aptuveni divas nedēļas pirms traģēdija Dhahran, izraēlieši 413 00:19:54,640 --> 00:19:58,440 ziņots Aizsardzības departaments ka sistēma zaudēt laiku. 414 00:19:58,440 --> 00:20:01,280 Pēc apmēram astoņas stundas darba, viņi pamanīja, ka sistēma ir 415 00:20:01,280 --> 00:20:03,530 kļūst ievērojami mazāk precīza. 416 00:20:03,530 --> 00:20:07,710 Aizsardzības departaments atbildēja, stāsta visi Patriot baterijas 417 00:20:07,710 --> 00:20:10,500 lai neatstāj sistēmas uz ilgu laiku. 418 00:20:10,500 --> 00:20:12,430 Viņi nekad nav teicis, kas ilgu laiku bija. 419 00:20:12,430 --> 00:20:13,330 Astoņas stundas? 420 00:20:13,330 --> 00:20:13,810 10 stundas? 421 00:20:13,810 --> 00:20:14,990 1000 stundas? 422 00:20:14,990 --> 00:20:17,150 Neviens nezināja. 423 00:20:17,150 --> 00:20:20,220 >> SPEAKER 1: Patriot akumulators izvietoti pie kazarmām pie Dhahran 424 00:20:20,220 --> 00:20:24,660 un tās trūkumi iekšējais pulkstenis bija par vairāk nekā 100 stundas naktī 425 00:20:24,660 --> 00:20:27,470 25 februāris. 426 00:20:27,470 --> 00:20:31,770 >> JACK GANSSLE: Tas kāpurķēžu laiks precizitāte no aptuveni desmito daļu no otrā. 427 00:20:31,770 --> 00:20:34,480 Tagad, par sekundes desmitdaļu ir interesanti numurs, jo tas nevar būt 428 00:20:34,480 --> 00:20:39,940 izteikta bināro precīzi, kas nozīmē, tas nevar izteikt tieši 429 00:20:39,940 --> 00:20:42,500 jebkurš mūsdienu digitālo datoru. 430 00:20:42,500 --> 00:20:46,920 Ir grūti noticēt, bet izmantot kā piemēru. 431 00:20:46,920 --> 00:20:49,000 Paņemsim numur vienu trešdaļu. 432 00:20:49,000 --> 00:20:53,150 Viena trešdaļa nevar izteikt decimālā tieši. 433 00:20:53,150 --> 00:20:57,500 Viena trešdaļa ir 0,333 notiek on bezgalību. 434 00:20:57,500 --> 00:21:02,270 Nav veids, kā to darīt, ka ar absolūtā precizitāte aiz komata. 435 00:21:02,270 --> 00:21:05,370 Tas ir tieši tas pats veida problēma kas notika Patriot. 436 00:21:05,370 --> 00:21:09,880 Ilgāk sistēma skrēja, sliktākais laika kļūda kļuva. 437 00:21:09,880 --> 00:21:13,840 >> SPEAKER 1: Pēc 100 darba stundām, laikā kļūda bija tikai 438 00:21:13,840 --> 00:21:16,140 aptuveni trešdaļa no otrās. 439 00:21:16,140 --> 00:21:20,800 Bet attiecībā uz mērķa raķešu ceļo piecu Mach, tā rezultātā 440 00:21:20,800 --> 00:21:24,410 uzskaites kļūda vairāk nekā 600 metrus. 441 00:21:24,410 --> 00:21:27,670 Tas būtu fatāla kļūda karavīri pie Dhahran. 442 00:21:27,670 --> 00:21:33,450 >> THEODORE POSTOL: Kas noticis, ir Scud uzsākšanu tika konstatēti agrāk 443 00:21:33,450 --> 00:21:34,280 brīdinājuma satelīti. 444 00:21:34,280 --> 00:21:38,550 Un viņi zināja, ka dzīšanās bija nāk to vispārējā virzienā. 445 00:21:38,550 --> 00:21:41,000 Viņi nezināja, kur tas nāk. 446 00:21:41,000 --> 00:21:43,900 >> SPEAKER 1: Tagad bija līdz pat radara sastāvdaļa Patriot sistēmas 447 00:21:43,900 --> 00:21:48,910 aizstāvot Dhahran, lai atrastu un saglabātu līdzi ienākošo ienaidnieka raķešu. 448 00:21:48,910 --> 00:21:50,580 >> JACK GANSSLE: radaru bija ļoti gudri. 449 00:21:50,580 --> 00:21:53,770 Tas faktiski sliežu ceļa stāvoklis Scud un tad paredzēt, kur tas 450 00:21:53,770 --> 00:21:57,160 iespējams, būs nākamreiz radara nosūtīja impulsu out. 451 00:21:57,160 --> 00:21:58,870 Ka sauca diapazonā vārtiem. 452 00:21:58,870 --> 00:22:04,020 >> THEODORE POSTOL: Pēc tam, kad Patriot nolemj pietiekami daudz laika ir pagājis, lai dotos 453 00:22:04,020 --> 00:22:09,420 atpakaļ un pārbaudiet nākamo vietu šis atklāti objektu, tas iet atpakaļ. 454 00:22:09,420 --> 00:22:14,450 Tad, kad tas devās atpakaļ uz nepareizu vietā, tad tas neredz objektu. 455 00:22:14,450 --> 00:22:18,200 Un tā nolemj, ka nav objektu, tas bija viltus atklāšanas, un 456 00:22:18,200 --> 00:22:19,680 pilieni dziesmu. 457 00:22:19,680 --> 00:22:22,970 >> SPEAKER 1: ienākošo dzīšanās pazudusi no radara ekrāna, un 458 00:22:22,970 --> 00:22:26,050 sekundes vēlāk tas slammed uz kazarmām. 459 00:22:26,050 --> 00:22:31,950 Scud nogalināti 28 un bija pēdējais atlaists pirmajā Persijas līča karā. 460 00:22:31,950 --> 00:22:37,700 Traģiski, atjaunināta programmatūra ieradušies pie Dhahran nākamajā dienā. 461 00:22:37,700 --> 00:22:41,800 Programmatūra trūkums tika noteikts, slēdz vienu nodaļu nemierīgajā 462 00:22:41,800 --> 00:22:43,690 vēsture Patriot raķešu. 463 00:22:43,690 --> 00:22:46,780 464 00:22:46,780 --> 00:22:50,710 >> Patriots ir faktiski akronīms Pakāpeniskas Array izsekošana 465 00:22:50,710 --> 00:22:51,960 Pārtvert Target. 466 00:22:51,960 --> 00:22:54,650 467 00:22:54,650 --> 00:23:00,840 >> DAVID J Malan: Labi, tāpēc sobering piemērs, lai pārliecinātos. 468 00:23:00,840 --> 00:23:03,430 Un, par laimi, šie zemākā līmenī bugs nav kaut kas, mēs 469 00:23:03,430 --> 00:23:06,220 parasti ir novērtēt, protams, ne ar kādu no mūsu 470 00:23:06,220 --> 00:23:07,360 Agrākais programmu. 471 00:23:07,360 --> 00:23:10,450 Drīzāk, lielākā daļa no bugs jūs saskarties būs loģiska rakstura, 472 00:23:10,450 --> 00:23:12,900 sintaktisko dabā, saskaņā ar kuru kods, vienkārši nedarbojas pareizi. 473 00:23:12,900 --> 00:23:14,140 Un jūs zināt, tas diezgan ātri. 474 00:23:14,140 --> 00:23:16,850 >> Bet, jo īpaši, kad mēs nokļūt beigās semestra, tas notiek 475 00:23:16,850 --> 00:23:20,620 arvien vairāk un vairāk iespēju tiešām jādomā par dizainu 476 00:23:20,620 --> 00:23:22,960 no savas programmas un pakārtoto pārstāvība 477 00:23:22,960 --> 00:23:24,520 tur, too, no datiem. 478 00:23:24,520 --> 00:23:28,010 Piemēram, mēs ieviest MySQL, kas ir populārs datu bāzes 479 00:23:28,010 --> 00:23:30,850 ka jūs varat izmantot ar tīmekļa vietnes, lai uzglabātu datus par atpakaļ beigās. 480 00:23:30,850 --> 00:23:34,630 Un jums ir, lai sāktu nolemt beigās semestra ne tikai to, kas 481 00:23:34,630 --> 00:23:38,790 datu veidiem gar šo līniju, lai izmantotu bet tieši tā, cik bitus izmantot, 482 00:23:38,790 --> 00:23:42,740 vai jūs vēlaties saglabāt datus par datumu un laiku, kā vienmēr, un arī 483 00:23:42,740 --> 00:23:46,890 lietas, piemēram, cik liels jūs vēlaties unikālu ID, lai būt, teiksim, izmantotājiem 484 00:23:46,890 --> 00:23:47,680 savā datu bāzē. 485 00:23:47,680 --> 00:23:51,210 >> Faktiski, ja daži no jums ir bijusi Facebook veido ilgu laiku, 486 00:23:51,210 --> 00:23:53,680 un jūs zināt, kā piekļūt ar savu lietotāja ID - 487 00:23:53,680 --> 00:23:57,930 kas dažreiz parādās jūsu Profila URL, ja esat izvēlējies 488 00:23:57,930 --> 00:24:02,070 iesauka URL, vai, ja jūs esat Lietota Facebook Graph API, 489 00:24:02,070 --> 00:24:05,510 publiski pieejamu API, ar kuru jūs var lūgt Facebook par izejas datiem - 490 00:24:05,510 --> 00:24:07,580 Jūs varat redzēt, kas jūsu ciparu ID ir. 491 00:24:07,580 --> 00:24:10,880 Un pirms dažiem gadiem, Facebook galvenokārt nācās pāriet no 492 00:24:10,880 --> 00:24:15,980 ekvivalents ints, izmantojot ilgtermiņa ilgi, jo laika gaitā, kā lietotāji nāk 493 00:24:15,980 --> 00:24:19,780 un iet, un radīt daudz kontiem un viltus konti, pat viņi ir ļoti viegli 494 00:24:19,780 --> 00:24:24,630 varēja izplūdes kaut ko līdzīgu 4 a miljardiem iespējamā vērtība, piemēram, int. 495 00:24:24,630 --> 00:24:28,340 >> Tātad vairāk par tiem jautājumiem, veidiem nosaka ceļu, kā arī. 496 00:24:28,340 --> 00:24:30,750 Labi, tā ka bija liešana. 497 00:24:30,750 --> 00:24:31,670 Tas bija neprecizitāte. 498 00:24:31,670 --> 00:24:32,730 Pāris ātri paziņojumiem. 499 00:24:32,730 --> 00:24:35,710 Tātad sekcijas oficiāli sākt šo nāk Svētdiena, pirmdiena, otrdiena. 500 00:24:35,710 --> 00:24:39,080 Jūs dzirdat pa e-pastu vēlāk šajā nedēļā par savu sadaļu uzdevumu. 501 00:24:39,080 --> 00:24:42,570 Un jūs arī šeit, šajā brīdī, kā , lai mainītu savu nodaļu, ja jūsu 502 00:24:42,570 --> 00:24:45,660 grafiks tagad ir mainījies, vai jūsu komforta līmenis tagad ir mainījies. 503 00:24:45,660 --> 00:24:49,380 Tikmēr P-set vienu un hakeru viens ir dēļ šo ceturtdien, izmantojot iespēju 504 00:24:49,380 --> 00:24:52,450 pagarināt šo termiņu par vienu specifikācijas līdz piektdienai 505 00:24:52,450 --> 00:24:53,830 ir tipisks veidā. 506 00:24:53,830 --> 00:24:57,500 >> Saprast, kas iekļauts ar problēmu komplekts specifikācijas ir instrukcijas par 507 00:24:57,500 --> 00:25:02,770 kā izmantot CS50 ierīci, veikt, kā arī daži CS50 īpaši instrumenti 508 00:25:02,770 --> 00:25:06,540 piemēram, 50 stils, kas var sniegt jums ar atgriezenisko saiti dinamiski 509 00:25:06,540 --> 00:25:10,230 Jūsu koda stila kvalitāti, kā arī pārbauda 50, kas var nodrošināt jūs ar 510 00:25:10,230 --> 00:25:13,160 dinamiska atgriezenisko saiti par jūsu kodeksa pareizību. 511 00:25:13,160 --> 00:25:16,850 Piedod, ka mēs joprojām esam gludināmais veic dažas Kinks ar 50 pārbaudes. 512 00:25:16,850 --> 00:25:21,490 Daži no jūsu klasesbiedriem, kuri bija jāsāk ap 04:00 piektdienas vakarā, kad 513 00:25:21,490 --> 00:25:25,130 spec piegāja ir pamanījuši, kopš tā laika dažas kļūdas, ka mēs strādājam 514 00:25:25,130 --> 00:25:29,010 cauri, un atvainojos ikvienam, kas ir piedzīvojusi nepamatoti neapmierinātību. 515 00:25:29,010 --> 00:25:30,340 Vaina ir mans. 516 00:25:30,340 --> 00:25:34,080 Bet mēs sekot līdzi CS50 to apspriest, kad tas ir atrisināts. 517 00:25:34,080 --> 00:25:35,700 >> Tātad vārdu par rādītājus sevi. 518 00:25:35,700 --> 00:25:38,990 Tātad tas būs nedēļu vai divas pirms jums sāk saņemt atgriezenisko saiti par problemātisko komplekti 519 00:25:38,990 --> 00:25:40,640 jo jums vēl nav mācību puisis. 520 00:25:40,640 --> 00:25:44,510 Un pat tad, mēs sāksim izvērtēt C problēma noteikti pirms mēs 521 00:25:44,510 --> 00:25:46,970 doties atpakaļ un izvērtēt scratch tā ka jūs saņemsiet vairāk piemēroti 522 00:25:46,970 --> 00:25:48,150 atsauksmes ātrāk. 523 00:25:48,150 --> 00:25:51,870 Bet kopumā vienu mācību, CS50 problēmu kopas tiek vērtēti kopā 524 00:25:51,870 --> 00:25:53,580 pēc četrām asīm - 525 00:25:53,580 --> 00:25:55,760 jomu, pareizību, dizains un stils. 526 00:25:55,760 --> 00:25:59,210 >> Joma būs vairāki tipiski no nulles līdz pieciem, kas 527 00:25:59,210 --> 00:26:01,830 atspoguļo, cik daudz gabals, kas jūs mazliet off. 528 00:26:01,830 --> 00:26:03,750 Parasti, jūs vēlaties, lai tas būtu pieci. 529 00:26:03,750 --> 00:26:05,300 Jūs vismaz mēģinājis viss. 530 00:26:05,300 --> 00:26:09,330 Un pamanāt, ka tas ir multiplikatīvo faktors tāpēc, ka, veicot tikai daļu 531 00:26:09,330 --> 00:26:12,520 Problēma kas nav labākā stratēģija. 532 00:26:12,520 --> 00:26:15,610 >> Tikmēr vairāk acīmredzama nozīme pareizību - 533 00:26:15,610 --> 00:26:18,620 vienkārši ir jūsu programma pareizs ar ievērot ar specifikāciju? 534 00:26:18,620 --> 00:26:21,510 Tas ir svērtā apzināti vairāk mērā nekā pārējās divas asis, ko 535 00:26:21,510 --> 00:26:24,450 koeficientu trīs, jo mēs apzināmies, ka parasti jūs gatavojas tērēt 536 00:26:24,450 --> 00:26:28,600 Daudz vairāk laika pakaļdzīšanās nosaka dažus bugs, kļūst jūsu kodu uz darbu, tad jums 537 00:26:28,600 --> 00:26:31,540 indenting to un izvēloties atbilstošas ​​mainīgo nosaukumi un 538 00:26:31,540 --> 00:26:33,800 , piemēram, kas ir uz otru galu spektra stilu. 539 00:26:33,800 --> 00:26:36,160 >> Tas nav teikt, stils nav svarīgas, un mēs sludinām to vairāk 540 00:26:36,160 --> 00:26:37,920 laiks gan lekcijās un sadaļās. 541 00:26:37,920 --> 00:26:40,520 Stils attiecas uz estētiku Jūsu kodu. 542 00:26:40,520 --> 00:26:43,980 Vai esat izvēlējies arī nosaukts mainīgie kas ir īss, bet nedaudz 543 00:26:43,980 --> 00:26:44,680 aprakstošs? 544 00:26:44,680 --> 00:26:47,840 Vai jūsu kods izrobota, kā jūs esat redzējis lekciju un tādā veidā, kas atbilst 545 00:26:47,840 --> 00:26:49,070 ar 50 stilu? 546 00:26:49,070 --> 00:26:51,220 >> Visbeidzot ir dizaina tiesības tur vidū. 547 00:26:51,220 --> 00:26:54,090 Dizains ir grūtāk viena likt pirkstu, jo tas ir daudz vairāk 548 00:26:54,090 --> 00:26:55,000 subjektīvi. 549 00:26:55,000 --> 00:26:58,610 Bet tas ir iespējams, vissvarīgākā trīs asis attiecībā uz pedagoģiskās 550 00:26:58,610 --> 00:27:02,050 vērtība laika gaitā, un ka šis būs mācīšanu kolēģiem ir iespēja 551 00:27:02,050 --> 00:27:04,110 nodrošināt jūs ar kvalitatīvu atgriezenisko saiti. 552 00:27:04,110 --> 00:27:08,100 Patiešām, CS50 lai gan mums ir šīs formulas un partitūras beigās 553 00:27:08,100 --> 00:27:11,350 no dienas tie ir ļoti apzināti ļoti mazi kausi - punkts vērtības 554 00:27:11,350 --> 00:27:13,460 no nulles līdz trim un nulles un pieci. 555 00:27:13,460 --> 00:27:17,800 Mums nav mēģināt izdarīt ļoti rupjš līnijas starp problemātiskajām kopām vai starp 556 00:27:17,800 --> 00:27:21,490 studentiem, bet drīzāk jākoncentrējas tik daudz kā mēs varam uz kvalitatīviem, parastais raksts 557 00:27:21,490 --> 00:27:25,490 atgriezeniskā saite, vai nu mašīnrakstā vai mutiski no jūsu īpaši mācību kolēģi, 558 00:27:25,490 --> 00:27:27,050 jūs iepazīt diezgan labi. 559 00:27:27,050 --> 00:27:32,340 >> Bet vispār, tie ir svari ka dažādās asis būs. 560 00:27:32,340 --> 00:27:35,480 Tajā pašā laikā pārāk, ir vērts paturēt prātā, ka jums nevajadzētu pieņemt, ka 561 00:27:35,480 --> 00:27:38,870 trīs no pieciem ir 60%, un Tādējādi aptuveni nedarot. 562 00:27:38,870 --> 00:27:41,410 Trīs ir apzināti domāts, lai būtu veida ceļa vidū labas. 563 00:27:41,410 --> 00:27:43,480 Ja saņemat trijiem pie sākumā semestra, kas ir 564 00:27:43,480 --> 00:27:46,340 patiešām ir domāts, lai būtu labs vieta, kur sākt. 565 00:27:46,340 --> 00:27:50,510 Ja saņemat pāriem, izstādes, tur ir noteikti kādu darbu, lai maksāt nedaudz 566 00:27:50,510 --> 00:27:53,250 vairāk uzmanības, lai izmantotu Sadaļu un biroja stundām. 567 00:27:53,250 --> 00:27:54,590 >> Ja saņemat četrinieki un piecinieki, lieliski. 568 00:27:54,590 --> 00:27:57,430 Bet tiešām, mēs ceram redzēt trajektorijas studentu vidū - ļoti 569 00:27:57,430 --> 00:28:00,575 individualizēta vienu studentu, bet, sākot semestris šeit veida 570 00:28:00,575 --> 00:28:04,100 divi līdz trīs diapazonā, bet beidzas šeit augšā 4-5 diapazonā. 571 00:28:04,100 --> 00:28:05,440 Tas, ko mēs patiesībā meklējam. 572 00:28:05,440 --> 00:28:09,590 Un mums jāpatur prātā delta ka Jums piemīt starp nedēļu nulles un nedēļas 573 00:28:09,590 --> 00:28:12,170 12, kad es esmu dara atzīmes. 574 00:28:12,170 --> 00:28:16,380 Tas nav svarīgi, lai mums absolūti kā Jums godīgi sākumā, ja Jūsu 575 00:28:16,380 --> 00:28:19,330 trajektorija ir patiešām augšu un spēcīga. 576 00:28:19,330 --> 00:28:24,000 >> Akadēmiskais godīgums - tāpēc ļaujiet man likts uz manu nopietnākas balss tikai brīdi. 577 00:28:24,000 --> 00:28:28,510 Tātad šis kurss ir atšķirība sūtīt vairāk studentu, nekā jebkura cita 578 00:28:28,510 --> 00:28:30,950 vēsturē ar reklāmu kuģa, es uzskatu. 579 00:28:30,950 --> 00:28:34,220 Mums ir sava veida zaudētā skaits šajā punktu, cik bieži tas notiek. 580 00:28:34,220 --> 00:28:37,090 Un tas nav tāpēc, ka studenti, kas 50 Ir vairāk negodīgi, nekā viņu 581 00:28:37,090 --> 00:28:38,690 klasesbiedru citur. 582 00:28:38,690 --> 00:28:42,800 Bet saprast arī to, ka mēs esam ļoti labi ir atklāt šāda veida lieta. 583 00:28:42,800 --> 00:28:45,920 >> Un tas ir priekšrocība, ka datorzinātnes klase ir ar to, ka mēs 584 00:28:45,920 --> 00:28:49,110 var un mēs salīdzināt visus skolēnus Problēma noteikti pa pāriem pret katru 585 00:28:49,110 --> 00:28:51,470 cits, ne tikai šogad bet visiem iepriekšējiem gadiem. 586 00:28:51,470 --> 00:28:55,080 Mums ir iespēja, piemēram, studentiem klasē, Google un atrast kodu 587 00:28:55,080 --> 00:28:57,440 vietnēs, piemēram, GitHub un diskusiju forumos. 588 00:28:57,440 --> 00:29:00,840 Ir absolūti risinājumi CS50 s p-komplekti peldošs apmēram tur. 589 00:29:00,840 --> 00:29:02,710 Bet, ja jūs varat atrast tos, mēs varam atrast tos. 590 00:29:02,710 --> 00:29:07,130 Un tas viss ir ļoti automatizēta un viegli, un skumji, lai mēs varētu atrast. 591 00:29:07,130 --> 00:29:10,990 >> Bet es gribu uzsvērt arī to, ka Protams, akadēmiskais godīgums politika 592 00:29:10,990 --> 00:29:13,960 ļoti daudz domāts, lai būtu ļoti daudz pretējs šajā garā. 593 00:29:13,960 --> 00:29:17,506 Patiešām, šogad mēs esam pārfrāzēts lietas šajā mācību programmā būtu tas, dot 594 00:29:17,506 --> 00:29:19,790 dot dot, ar sīkāk mācību. 595 00:29:19,790 --> 00:29:22,860 Bet galvenais temats gaitā tiešām, ir jābūt saprātīgam. 596 00:29:22,860 --> 00:29:26,160 Mēs apzināmies, ka ir nozīmīgs daudzums pedagoģiskās 597 00:29:26,160 --> 00:29:30,550 vērtība sadarbojoties, zināmā mērā, ar klasesbiedriem, ar kuru jūs 598 00:29:30,550 --> 00:29:33,700 divas vai jūs trīs vai jums vairāk ir stāvot pie baltās tāfeles 599 00:29:33,700 --> 00:29:35,670 whiteboarding, tāpēc, lai runā, savas idejas - 600 00:29:35,670 --> 00:29:39,480 rakstot no pseudocode attēlos, shēmu, kas būtu Mario būt, ja 601 00:29:39,480 --> 00:29:41,350 jums bija rakstīt to vispirms in pseudocode. 602 00:29:41,350 --> 00:29:43,240 Kas būtu mantkārīgs algoritms - 603 00:29:43,240 --> 00:29:46,100 kā to vajadzētu izturēties vienam Problēma nosaka vienu? 604 00:29:46,100 --> 00:29:50,440 >> Un tā saprotam, ka uzvedība ka mēs aicinām ir ļoti 605 00:29:50,440 --> 00:29:51,470 daudz kas pa šo līniju. 606 00:29:51,470 --> 00:29:53,890 Un mācību, jūs redzēsiet viss ķekars lodes saskaņā 607 00:29:53,890 --> 00:29:57,740 saprātīgu kategorija un nav saprātīga kategorija, kas palīdz mums palīdzēt 608 00:29:57,740 --> 00:30:00,740 jūs wrap savas domas ap kur mēs izdarīt šo līniju. 609 00:30:00,740 --> 00:30:04,340 Un vispār, pienācīgas īkšķis ir tas, ka, ja jūs cīnās, lai atrisinātu 610 00:30:04,340 --> 00:30:07,990 dažas bug, un jūsu draugs vai klasesbiedrs sēž blakus jums, tā ir 611 00:30:07,990 --> 00:30:11,530 saprātīgi, lai jūs parādītu viņam vai viņai savu kodu un teikt, hey, jūs varat palīdzēt 612 00:30:11,530 --> 00:30:13,700 man izdomāt, kas notiek nepareizi šeit? 613 00:30:13,700 --> 00:30:17,110 >> Mums nav parasti apskāviens pretējā pusē. 614 00:30:17,110 --> 00:30:20,730 Tas ir nav pareizs atbilde uz jūsu draugs vai klasesbiedrs šeit teikt, ak, 615 00:30:20,730 --> 00:30:22,510 paskatieties raktuves un skaitlis to ārā no tā. 616 00:30:22,510 --> 00:30:24,400 Tas ir sava veida nesaprātīgs. 617 00:30:24,400 --> 00:30:27,750 Bet kam kāds cits, vēl smadzeņu, vēl viens acu pāris apskatīt 618 00:30:27,750 --> 00:30:31,620 Jūsu ekrāna vai apskatīt savu kodu un teikt, jūs esat pārliecināts, ka vēlaties 619 00:30:31,620 --> 00:30:32,760 lai būtu cilpa šeit? 620 00:30:32,760 --> 00:30:34,800 Vai jūs esat pārliecināts, ka vēlaties ka semikolu šeit? 621 00:30:34,800 --> 00:30:37,090 Vai ak, tas kļūdas paziņojums nozīmē to. 622 00:30:37,090 --> 00:30:39,580 Tie ir ļoti saprātīgs, un jāmudina uzvedību. 623 00:30:39,580 --> 00:30:44,010 >> Gadījumi, uz kuru man bija atsaucoties uz agrāk vārīties uz leju, kad studenti ir 624 00:30:44,010 --> 00:30:47,350 vēlu naktī padarīt sliktu spriedumu lēmumiem un pasta vēstuļu sūtīšanas savu kodu 625 00:30:47,350 --> 00:30:50,130 kāds cits, vai vienkārši sakot, šeit, tas ir Dropbox vai 626 00:30:50,130 --> 00:30:51,610 Googling vēlu naktī. 627 00:30:51,610 --> 00:30:54,880 Un tāpēc es aicinu un izlūgties no jums, ja jums ir kas neizbēgami 628 00:30:54,880 --> 00:30:58,450 brīži stresa, jūs mutuļošana uz augšu pret termiņa, jums nav par vēlu 629 00:30:58,450 --> 00:31:01,490 dienu, jo tas ir jau piektdien plkst ka punkts, e-pastu kurss ir galvas vai 630 00:31:01,490 --> 00:31:02,330 pats tieši. 631 00:31:02,330 --> 00:31:04,790 Teiksim, klausīties, es esmu pie mana lūzuma punkts šeit. 632 00:31:04,790 --> 00:31:06,660 Let 's ir saruna un skaitlis tas. 633 00:31:06,660 --> 00:31:10,400 Atsaukšanās uz web, vai kādu citu ne saprātīga rīcība nekad 634 00:31:10,400 --> 00:31:13,070 risinājumu, un pārāk daudzi no jūsu klasesbiedru vairs nav šeit 635 00:31:13,070 --> 00:31:15,150 Campus tāpēc, ka slikta spriedumu. 636 00:31:15,150 --> 00:31:17,840 Bet tas ir ļoti viegli svārki šīs līnijas. 637 00:31:17,840 --> 00:31:22,950 >> Un šeit ir maz attēlu, lai uzmundrināt Jūs pat no Reddit tā, ka tagad 638 00:31:22,950 --> 00:31:25,720 viss būs OK. 639 00:31:25,720 --> 00:31:30,210 >> Tik ātri Atgādinājums, tad, , kur mēs left off. 640 00:31:30,210 --> 00:31:33,690 Tāpēc pagājušajā nedēļā, atgādināt, ka mēs ieviešam apstākļiem, nevis Scratch 641 00:31:33,690 --> 00:31:34,880 bet C šis laiks. 642 00:31:34,880 --> 00:31:38,300 Un tur bija dažas jaunas sintaksi, bet tiešām nav jaunu ideju par sevi. 643 00:31:38,300 --> 00:31:42,630 Mums bija Būla izteiksmes, ka mēs varētu vai kopā ar divām vertikālām 644 00:31:42,630 --> 00:31:46,490 bāri vai un kopā ar divām ampersands, sakot, ka gan pa kreisi 645 00:31:46,490 --> 00:31:49,990 un tiesības ir taisnība par to izpildīt. 646 00:31:49,990 --> 00:31:53,150 Tad mums bija slēdži, ko mēs skatījāmies uz īsu brīdi, bet es ierosinu, ir patiešām 647 00:31:53,150 --> 00:31:56,830 tikai atšķirīga sintakse, lai sasniegtu Paša veida mērķi, ja jūs zināt, 648 00:31:56,830 --> 00:31:59,270 iepriekš, kādas ir jūsu gadījumi gribam būt. 649 00:31:59,270 --> 00:32:00,160 >> Mēs paskatījās cilpas. 650 00:32:00,160 --> 00:32:03,340 Cilpa varbūt visbiežāk, vai vismaz viens, ka cilvēki 651 00:32:03,340 --> 00:32:05,330 parasti sasniegt instinktīvi. 652 00:32:05,330 --> 00:32:08,240 Pat ja tas izskatās mazliet noslēpumains, jūs redzēsiet daudzus, daudzus piemērus 653 00:32:08,240 --> 00:32:11,590 pirms ilgi, jo jums ir jau vēlu pagājušajā nedēļā. 654 00:32:11,590 --> 00:32:14,280 Kaut cilpas var līdzīgi sasniegtu to pašu. 655 00:32:14,280 --> 00:32:17,550 Bet, ja jūs vēlaties darīt kādu incrementation vai atjaunināšanu 656 00:32:17,550 --> 00:32:20,230 mainīgā vērtībām, jums ir darīt vairāk, manuāli nekā 657 00:32:20,230 --> 00:32:22,440 lai cilpa pirms atļauj. 658 00:32:22,440 --> 00:32:25,310 Un tad tur ir do-kamēr cilpa, kas ļauj mums darīt kaut ko 659 00:32:25,310 --> 00:32:28,460 Vismaz vienu reizi, bet kaut kas pārējais ir taisnība. 660 00:32:28,460 --> 00:32:31,550 Un tas ir īpaši labs programmām vai spēlēm, kur vēlaties 661 00:32:31,550 --> 00:32:33,810 pamudinājusi lietotājam kaut ko vismaz vienu reizi. 662 00:32:33,810 --> 00:32:37,110 Un tad, ja viņš vai viņa nevēlas sadarboties, Jūs varētu vēlēties, lai to izdarītu 663 00:32:37,110 --> 00:32:38,420 atkal un atkal. 664 00:32:38,420 --> 00:32:41,270 >> Ar mainīgajiem, tikmēr mums bija līnijas koda, piemēram, tas, kas varētu 665 00:32:41,270 --> 00:32:41,950 ir divas līnijas. 666 00:32:41,950 --> 00:32:44,830 Jūs varētu pasludināt sauc par int skaitītājs, semikols. 667 00:32:44,830 --> 00:32:47,660 Vai arī varat vienkārši paziņot un definēt, lai runāt. 668 00:32:47,660 --> 00:32:49,950 Arī tā vērtība, tajā pašā laikā. 669 00:32:49,950 --> 00:32:51,890 >> Un tad visbeidzot, mēs runājām par funkciju. 670 00:32:51,890 --> 00:32:54,270 Un tas bija jauks piemērs sajūta, ka tas parāda, 671 00:32:54,270 --> 00:32:55,840 divu veidu funkcijas. 672 00:32:55,840 --> 00:32:59,030 Viens ir GetString (), kas, atkal, izpaužas string no lietotāja. 673 00:32:59,030 --> 00:33:02,040 Bet GetString () ir sava veida interesanta, Ciktāl mēs esam to izmanto, 674 00:33:02,040 --> 00:33:05,620 jo mēs esam vienmēr to izmanto ar kaut kreisajā pusē 675 00:33:05,620 --> 00:33:06,600 vienādības zīmi. 676 00:33:06,600 --> 00:33:09,830 Tas ir teikt, ka GetString () atgriež vērtību. 677 00:33:09,830 --> 00:33:11,970 Tā atgriež, protams, virkne. 678 00:33:11,970 --> 00:33:15,130 Un pēc tam kreisajā pusē, mēs esam vienkārši saglabājot, kas virknē iekšpusē no 679 00:33:15,130 --> 00:33:16,580 mainīgā sauc vārdu. 680 00:33:16,580 --> 00:33:21,100 >> Tas atšķiras, kas nozīmē, no printf jo printf, vismaz mūsu 681 00:33:21,100 --> 00:33:23,540 izmantošana šeit, neatgriež neko. 682 00:33:23,540 --> 00:33:24,960 Kā malā, tas atgriešanās kaut ko. 683 00:33:24,960 --> 00:33:26,380 Mums vienkārši nav vienalga, kas tas ir. 684 00:33:26,380 --> 00:33:29,090 Bet tas ir to, kas ir sauc blakusparādība. 685 00:33:29,090 --> 00:33:31,840 Un kas ir tas, ka blakus efekts katrā gadījumā mēs esam redzējuši līdz šim? 686 00:33:31,840 --> 00:33:34,720 Kāda printf darīt? 687 00:33:34,720 --> 00:33:37,780 Tas drukā kaut ko uz ekrāna, displeji teksts vai skaitļi, vai kaut ko 688 00:33:37,780 --> 00:33:38,380 uz ekrāna. 689 00:33:38,380 --> 00:33:41,170 Un tas ir tikai uzskatāms blakusparādība tāpēc, ka tas nav īsti nododot 690 00:33:41,170 --> 00:33:41,900 tas atpakaļ uz mani. 691 00:33:41,900 --> 00:33:44,770 Tā nav atbilde iekšpusē melnā kaste, ka es varu, tad 692 00:33:44,770 --> 00:33:46,130 sasniegt vērā un paķert. 693 00:33:46,130 --> 00:33:49,160 Tas ir vienkārši darīt to par savu, daudz piemēram Colton tika pieslēgts šis 694 00:33:49,160 --> 00:33:52,560 melnā kaste pagājušajā nedēļā, un viņš kaut kā maģiski tuvojās uz kuģa 695 00:33:52,560 --> 00:33:54,500 bez manis faktiski iesaistīti. 696 00:33:54,500 --> 00:33:55,560 Tas būtu blakusparādība. 697 00:33:55,560 --> 00:33:59,100 Bet, ja man tiešām bija jānonāk atpakaļ šeit un teikt, ak, šeit ir virkne 698 00:33:59,100 --> 00:34:02,040 no lietotāja, ka būtu būt atgriešanās vērtību. 699 00:34:02,040 --> 00:34:05,650 >> Un līdz šim mēs esam tikai izmanto funkcijas , ka citi cilvēki ir uzrakstījuši. 700 00:34:05,650 --> 00:34:09,219 Bet mēs varam reāli darīt šos veida lietas sevi. 701 00:34:09,219 --> 00:34:12,730 Tāpēc es esmu gatavojas iedziļināties CS50 ierīces vēlreiz. 702 00:34:12,730 --> 00:34:16,020 Ļaujiet man aizvērt cilni, ka mēs bija atvērts pirms brīža. 703 00:34:16,020 --> 00:34:18,530 Un ļaujiet man iet uz priekšu un izveidot jaunu failu. 704 00:34:18,530 --> 00:34:22,400 Un es iešu uz priekšu un nosaukt šo vienu positive.c. 705 00:34:22,400 --> 00:34:24,770 Tāpēc es gribu darīt kaut ko ar pozitīviem skaitļiem šeit. 706 00:34:24,770 --> 00:34:27,219 Tāpēc es esmu gatavojas iet uz priekšu un darīt int - 707 00:34:27,219 --> 00:34:28,000 sorry - 708 00:34:28,000 --> 00:34:31,840 # Ietvert. 709 00:34:31,840 --> 00:34:34,280 Let 's nav darīt, ka pats kļūda, jo pirms tam. 710 00:34:34,280 --> 00:34:40,020 Int galvenais (spēkā neesošs), atklāts cirtaini lencēm, slēgta cirtaini lencēm. 711 00:34:40,020 --> 00:34:41,639 >> Un tagad es gribu darīt turpmāk. 712 00:34:41,639 --> 00:34:44,600 Es gribu uzrakstīt programmu, kas uzstāj, ka lietotājiem sniedz 713 00:34:44,600 --> 00:34:46,770 man pozitīvs skaitlis. 714 00:34:46,770 --> 00:34:50,969 Tāpēc nav GetPositiveInt funkcija ar CS50 bibliotēkā. 715 00:34:50,969 --> 00:34:52,610 Tur ir tikai GetInt (). 716 00:34:52,610 --> 00:34:55,790 Bet tas ir OK, jo man ir konstrukcijas, ar kuru es varu uzlikt 717 00:34:55,790 --> 00:34:59,360 nedaudz vairāk ierobežojums šīs vērtības. 718 00:34:59,360 --> 00:35:00,990 Es varētu darīt kaut kas līdzīgs šim. 719 00:35:00,990 --> 00:35:02,780 >> Tātad, int n - 720 00:35:02,780 --> 00:35:04,920 un, ja jūs rakstāt kopā, tikai saprotam Es iešu atpakaļ un 721 00:35:04,920 --> 00:35:06,430 mainīt dažas lietas, uz brīdi - 722 00:35:06,430 --> 00:35:09,960 tāpēc int n ir vienāds GetInt (). 723 00:35:09,960 --> 00:35:11,780 Un tas ir gatavojas nodot int iekšpusē no n. 724 00:35:11,780 --> 00:35:13,830 Un ļaujiet man būt vairāk aprakstošs. 725 00:35:13,830 --> 00:35:23,270 Ļaujiet man teikt kaut ko līdzīgu, es pieprasu, ka jūs varētu man vesels pozitīvs skaitlis. 726 00:35:23,270 --> 00:35:23,550 >> Labi. 727 00:35:23,550 --> 00:35:25,250 Tik vienkārši mazliet norādījumiem. 728 00:35:25,250 --> 00:35:26,270 Un tagad ko es varu darīt? 729 00:35:26,270 --> 00:35:29,840 Nu, es jau zinu no manu vienkāršu nosacījumus vai filiāles, tāpat kā es 730 00:35:29,840 --> 00:35:36,100 bija nulles, es varētu teikt kaut ko , piemēram, ja n ir mazāks par vai vienāds ar 731 00:35:36,100 --> 00:35:44,460 nulle, tad es gribu darīt kaut ko , piemēram, kas ir ne pozitīvs. 732 00:35:44,460 --> 00:35:45,560 Un tad es varētu darīt - 733 00:35:45,560 --> 00:35:47,310 OK, bet es tiešām gribu, lai iegūtu, ka int. 734 00:35:47,310 --> 00:35:52,020 Lai es varētu iet uz augšu šeit, un es varētu veida eksemplāru šo un ievilkumā to. 735 00:35:52,020 --> 00:35:52,570 Un tad, OK. 736 00:35:52,570 --> 00:35:56,990 Tātad, ja n ir mazāks nekā vai vienāds ar nulli izdarīt. 737 00:35:56,990 --> 00:35:58,900 >> Tagad, kas notiks, ja lietotājs nesadarbojas? 738 00:35:58,900 --> 00:36:01,560 Nu, tad es esmu gatavojas aizņemties šo šeit. 739 00:36:01,560 --> 00:36:03,130 Un tad es iet šeit un šeit un šeit. 740 00:36:03,130 --> 00:36:06,420 Tātad tas, protams, nav risinājums, vai ne? 741 00:36:06,420 --> 00:36:07,810 Jo tur nav redzams gals. 742 00:36:07,810 --> 00:36:13,100 Ja es gribu prasīt, lietotājs dod man pozitīvs skaitlis, es varu 743 00:36:13,100 --> 00:36:14,150 faktiski iegūtu int. 744 00:36:14,150 --> 00:36:15,620 Es pēc tam var pārbaudīt šo int. 745 00:36:15,620 --> 00:36:18,570 Bet tad es gribu, lai pārbaudītu to atkal un pārbaudiet to vēlreiz, un to pārbaudīt vēlreiz. 746 00:36:18,570 --> 00:36:21,680 Tātad, protams, kas ir labāks būvēt, ir, izmantojot šeit? 747 00:36:21,680 --> 00:36:22,840 Labi, tāpēc daži veida cilpas. 748 00:36:22,840 --> 00:36:25,430 >> Tāpēc es esmu gatavojas atbrīvoties par gandrīz visu. 749 00:36:25,430 --> 00:36:27,320 Un es gribu, lai iegūtu šo int vismaz vienu reizi. 750 00:36:27,320 --> 00:36:28,890 Tāpēc es esmu gatavojas teikt darīt - 751 00:36:28,890 --> 00:36:32,110 un es ņemšu atgriezties bet tikai brīdi - 752 00:36:32,110 --> 00:36:33,050 tagad darīt? 753 00:36:33,050 --> 00:36:35,860 Es esmu gatavojas darīt, int n izpaužas GetInt (). 754 00:36:35,860 --> 00:36:36,080 Labi. 755 00:36:36,080 --> 00:36:37,250 Tātad tas ir diezgan laba. 756 00:36:37,250 --> 00:36:39,750 Un tagad, cik bieži Es gribu darīt? 757 00:36:39,750 --> 00:36:45,770 >> Ļaujiet man nodot printf iekšpusē cilpa lai es varētu pieprasīt atkal un atkal, 758 00:36:45,770 --> 00:36:46,740 ja tas būtu nepieciešams. 759 00:36:46,740 --> 00:36:49,720 Un ko es gribu šo bet nosacījums darīt? 760 00:36:49,720 --> 00:36:53,870 Es gribu, lai saglabātu to izdarīt bet kāda tā ir? 761 00:36:53,870 --> 00:36:54,125 Jā. 762 00:36:54,125 --> 00:36:55,390 N ir mazāks par vai vienāds ar nulli. 763 00:36:55,390 --> 00:36:58,180 Tāpēc jau mēs esam ievērojami iztīrīt šo kodu uz augšu. 764 00:36:58,180 --> 00:37:00,700 Mēs esam aizņēmušies ļoti vienkāršs būvēt - do-kamēr cilpa. 765 00:37:00,700 --> 00:37:04,690 Es esmu nozagts tikai svarīgus līnijas kods, kas es sāku kopēšanas un 766 00:37:04,690 --> 00:37:05,960 līmēšana, kas nebija gudri. 767 00:37:05,960 --> 00:37:09,790 Un tāpēc tagad es esmu gatavojas faktiski ielīmētu tā šeit un vienkārši darīt to vienu reizi. 768 00:37:09,790 --> 00:37:12,990 >> Un tagad to, ko vēlos darīt ļoti gals no šīs programmas? 769 00:37:12,990 --> 00:37:16,810 Es ņemšu tikai teikt kaut ko vienkāršu patīk, paldies - un 770 00:37:16,810 --> 00:37:18,980 Es darīšu% i par int - 771 00:37:18,980 --> 00:37:23,270 slīpsvītru n, komats, un pēc tam plug n, semikols. 772 00:37:23,270 --> 00:37:23,910 >> Labi. 773 00:37:23,910 --> 00:37:27,290 Tātad, pieņemsim redzēt, kas notiek tagad kad es palaist šo programmu. 774 00:37:27,290 --> 00:37:30,600 Es iešu uz priekšu un darīsim pozitīvi. 775 00:37:30,600 --> 00:37:30,880 Damn. 776 00:37:30,880 --> 00:37:31,600 Dažas kļūdas. 777 00:37:31,600 --> 00:37:32,960 Tātad, ļaujiet man ritiniet atpakaļ uz augšu uz pirmo. 778 00:37:32,960 --> 00:37:34,020 Nestrādā caur tiem atpakaļ. 779 00:37:34,020 --> 00:37:37,000 Darbs caur tiem no augšas uz leju lai tie kaskādes un tikai 780 00:37:37,000 --> 00:37:38,630 viena lieta ir nepareizi. 781 00:37:38,630 --> 00:37:42,532 Netieši deklarācija funkcija GetInt (). 782 00:37:42,532 --> 00:37:43,020 Jā. 783 00:37:43,020 --> 00:37:44,420 Tātad tas nebija pietiekami. 784 00:37:44,420 --> 00:37:46,760 Es veida, kas to pašu kļūdu, bet nedaudz atšķirīgs šoreiz. 785 00:37:46,760 --> 00:37:51,940 Man vajag, lai ne tikai iekļaut stdio.h, bet arī cs50.h, kas ietver 786 00:37:51,940 --> 00:37:56,770 ts deklarācijas iegūt int, kas mācīt ierīci, vai arī māca 787 00:37:56,770 --> 00:37:58,760 C, kas GetInt () ir. 788 00:37:58,760 --> 00:37:59,550 >> Tātad, ļaujiet man atkārtoti saglabāt. 789 00:37:59,550 --> 00:38:02,040 Es esmu gatavojas ignorēt citas kļūdas jo es esmu gatavojas cerēt, ka viņi 790 00:38:02,040 --> 00:38:05,210 kaut kā saistīts ar kļūdu Es jau noteikti. 791 00:38:05,210 --> 00:38:08,710 Tātad, ļaujiet man iet uz priekšu un recompile ar padarīt pozitīvu, Enter. 792 00:38:08,710 --> 00:38:09,020 Damn. 793 00:38:09,020 --> 00:38:09,985 Trīs kļūdas, tomēr. 794 00:38:09,985 --> 00:38:12,650 Ļaujiet man ritiniet līdz pirmās. 795 00:38:12,650 --> 00:38:14,320 Neizmantotās mainīgo n. 796 00:38:14,320 --> 00:38:15,850 Mēs esam nav redzējis to pirms tam. 797 00:38:15,850 --> 00:38:17,200 Un tas arī ir nedaudz noslēpumains. 798 00:38:17,200 --> 00:38:18,850 Tas ir izejas kompilatoru. 799 00:38:18,850 --> 00:38:23,610 Un ko tas uzsvērts līnija tur - positive.c :9:13 - 800 00:38:23,610 --> 00:38:28,960 saka, tas saka par deviņu līnijas positive.c, pie 13 raksturu, 801 00:38:28,960 --> 00:38:31,510 13 kolonna, jūs veicāt šo kļūdu. 802 00:38:31,510 --> 00:38:34,230 >> Un jo īpaši tā stāsta man neizmantots mainīgo n. 803 00:38:34,230 --> 00:38:35,790 Tātad, pieņemsim redzēt - 804 00:38:35,790 --> 00:38:37,150 līnija deviņi. 805 00:38:37,150 --> 00:38:40,430 Es esmu, izmantojot n tādā ziņā, ka Es esmu, piešķirot tam vērtību. 806 00:38:40,430 --> 00:38:44,200 Bet ko kompilators nepatīk, ir ka es neesmu šķietami to izmanto. 807 00:38:44,200 --> 00:38:45,560 Bet pagaidiet minūti, es esmu, izmantojot to. 808 00:38:45,560 --> 00:38:48,170 11 rindā, es esmu, izmantojot to šeit. 809 00:38:48,170 --> 00:38:52,430 Bet, ja es ritiniet uz leju tālāk at :11 positive.c - 810 00:38:52,430 --> 00:38:56,230 tā pie līnija 11, raksturs 12, kompilators stāsta man, izmantošanu 811 00:38:56,230 --> 00:38:58,670 nedeklarētu identifikators n. 812 00:38:58,670 --> 00:39:02,760 >> Tāpēc nedeklarētas nozīmē, ka es nav norādīts tā kā 813 00:39:02,760 --> 00:39:04,970 mainīgo ar datu tipu. 814 00:39:04,970 --> 00:39:05,500 Bet pagaidiet minūti. 815 00:39:05,500 --> 00:39:09,150 Man bija tieši tā, ka deviņi rindā. 816 00:39:09,150 --> 00:39:11,100 Tātad, kāds ir patiešām sajaukt šeit. 817 00:39:11,100 --> 00:39:14,900 Tas ir vai nu man, vai kompilatoru, jo deviņās rindā, atkal, es esmu deklarējot 818 00:39:14,900 --> 00:39:18,650 int n, un es esmu, piešķirot tai atgriezties vērtību GetInt (). 819 00:39:18,650 --> 00:39:22,930 Tad es esmu, izmantojot šo mainīgo n rindā 11, un pārbaudīt, ja tā vērtība ir mazāka 820 00:39:22,930 --> 00:39:24,050 par vai vienāds ar nulli. 821 00:39:24,050 --> 00:39:27,430 Bet tas acīmredzot ir slikts un šķelto kāpēc? 822 00:39:27,430 --> 00:39:30,630 823 00:39:30,630 --> 00:39:32,490 Saka to vēlreiz? 824 00:39:32,490 --> 00:39:35,690 >> Ah, man ir atzīt n pirms ienāk cilpa. 825 00:39:35,690 --> 00:39:36,370 Bet kāpēc? 826 00:39:36,370 --> 00:39:39,830 Es domāju, mēs vienkārši ierosināja nedaudz atpakaļ, ka tas ir naudas sods deklarēt mainīgos 827 00:39:39,830 --> 00:39:43,600 visi uz vienas līnijas, un pēc tam piešķirt viņiem kādu vērtību. 828 00:39:43,600 --> 00:39:46,790 Globālo mainīgo - pieņemsim atgriezties ar šo ideju, tikai brīdi. 829 00:39:46,790 --> 00:39:48,690 Kāpēc jūs vēlaties, lai es tā ārpus no cilpas? 830 00:39:48,690 --> 00:40:03,170 831 00:40:03,170 --> 00:40:03,830 Tas ir. 832 00:40:03,830 --> 00:40:06,780 Tieši tā. 833 00:40:06,780 --> 00:40:09,610 >> Tātad, lai gan, nedaudz counterintuitive, ļaujiet man apkopot. 834 00:40:09,610 --> 00:40:13,510 Kad jūs atzīt n iekšā no do bloka tur - 835 00:40:13,510 --> 00:40:16,320 īpaši iekšpusē no šie cirtaini bikšturi - 836 00:40:16,320 --> 00:40:19,210 ka mainīgo n ir to, kas ir sauc joma - 837 00:40:19,210 --> 00:40:23,210 kas nav saistīti ar mūsu vērtēšanas sistēmu kurss - bet ir joma, kas ir 838 00:40:23,210 --> 00:40:25,190 tikai tie cirtaini lencēm. 839 00:40:25,190 --> 00:40:28,460 Citiem vārdiem sakot, parasti, ja jūs atzīt mainīgs iekšpusē kopumu 840 00:40:28,460 --> 00:40:33,370 cirtaini bikšturi, ka mainīga pastāv tikai iekšpusē no tiem cirtaini lencēm. 841 00:40:33,370 --> 00:40:37,320 Tātad, šīs loģikas vien, lai gan Es esmu deklarēta n deviņās rindā, tas 842 00:40:37,320 --> 00:40:41,910 būtībā pazūd no darbības jomas, pazūd no atmiņas, tā teikt, 843 00:40:41,910 --> 00:40:43,370 līdz brīdim, kad es hit līniju 11. 844 00:40:43,370 --> 00:40:47,370 Jo 11 līnija, diemžēl, ir ārpus šīm cirtaini lencēm. 845 00:40:47,370 --> 00:40:51,540 >> Tāpēc es diemžēl nevaru noteikt šo, dodas atpakaļ uz to, ko es darīju to pirms tam. 846 00:40:51,540 --> 00:40:53,370 Jūs, iespējams, sākumā to izdarītu. 847 00:40:53,370 --> 00:40:56,370 Bet ko jūs tagad nav dara cikliski? 848 00:40:56,370 --> 00:40:58,260 Jūs esat acīmredzot nesaņemu int cikliski. 849 00:40:58,260 --> 00:41:01,320 Tātad, mēs varam atstāt GetInt (), un mēs jāatstāj GetInt () iekšienē 850 00:41:01,320 --> 00:41:04,420 cilpa, jo tas, ko mēs vēlamies, lai apgrūtināt lietotājam, lai atkal un atkal. 851 00:41:04,420 --> 00:41:08,660 Bet tas nav pietiekami, lai dotos līdz līnijas, teiksim, seši. 852 00:41:08,660 --> 00:41:10,150 Int n, semikols. 853 00:41:10,150 --> 00:41:12,990 Nedod tai vērtību vēl jo Jums nav nepieciešams, lai tikai vēl. 854 00:41:12,990 --> 00:41:16,220 >> Bet tagad šeit lejā, paziņojums - tas būtu ļoti viegli kļūda. 855 00:41:16,220 --> 00:41:19,440 Es nevēlos, lai ēnot manu iepriekšējo deklarācija n. 856 00:41:19,440 --> 00:41:22,830 Es vēlos izmantot šo n, ka faktiski pastāv. 857 00:41:22,830 --> 00:41:25,780 Un tā tagad 10 līniju, Es piešķirt n vērtību. 858 00:41:25,780 --> 00:41:28,580 Bet sešu rindā, es apliecinu n. 859 00:41:28,580 --> 00:41:32,940 Un tā es varu, vai es varu ne izmantot to 12 līniju tagad? 860 00:41:32,940 --> 00:41:37,120 Es varu, jo, starp kurām cirtaini breketes ir n deklarēta tagad? 861 00:41:37,120 --> 00:41:38,770 Viens šeit uz pieciem rindā. 862 00:41:38,770 --> 00:41:40,330 Ar vienu te uz 14 līnijas. 863 00:41:40,330 --> 00:41:49,770 Tātad, ja es tagad tālināt, saglabājiet šo failu, dodieties atpakaļ un palaist lai pozitīvi, to 864 00:41:49,770 --> 00:41:50,820 apkopoti šo laiku. 865 00:41:50,820 --> 00:41:51,940 Tātad tas jau ir progress. 866 00:41:51,940 --> 00:41:53,640 Slash. . / Pozitīvs, Enter. 867 00:41:53,640 --> 00:41:56,060 >> Es pieprasu, ka jūs varētu man pozitīvs skaitlis. 868 00:41:56,060 --> 00:41:57,750 Negatīvs 1. 869 00:41:57,750 --> 00:41:59,020 Negatīvs 2. 870 00:41:59,020 --> 00:42:00,680 Negatīvs 3. 871 00:42:00,680 --> 00:42:01,760 Nulle. 872 00:42:01,760 --> 00:42:03,000 Vienu. 873 00:42:03,000 --> 00:42:05,130 Un paldies par kādu ir to, kas tagad izdrukāt. 874 00:42:05,130 --> 00:42:07,400 >> Ļaujiet man mēģināt kaut ko citu, aiz ziņkārības. 875 00:42:07,400 --> 00:42:09,600 Es esmu to teicis ievadi veselam skaitlim. 876 00:42:09,600 --> 00:42:12,870 Bet ko tad es, nevis rakstīt jēru? 877 00:42:12,870 --> 00:42:14,460 Tātad jūs tagad redzēt dažādas ātru - 878 00:42:14,460 --> 00:42:15,350 mēģiniet vēlreiz. 879 00:42:15,350 --> 00:42:17,670 Bet nekur manā kodu tomēr es rakstīt vēlreiz. 880 00:42:17,670 --> 00:42:22,320 Tātad, ja, iespējams, ir tas mēģiniet vēlreiz ātru nāk no, vai Jūs teiktu? 881 00:42:22,320 --> 00:42:23,540 Jā, no GetInt () pati. 882 00:42:23,540 --> 00:42:26,650 Tātad viena no lietām, CS50 darbinieki dara jums, vismaz uz šiem pirmais maz 883 00:42:26,650 --> 00:42:30,400 nedēļām, ir mēs esam uzrakstījuši kādu summu no kļūdu pārbaude, lai nodrošinātu, ka tad, ja 884 00:42:30,400 --> 00:42:34,260 zvanāt GetInt (), jūs vismaz nokļūt atpakaļ int no lietotāja. 885 00:42:34,260 --> 00:42:35,460 Jums nav iegūt virkni. 886 00:42:35,460 --> 00:42:36,440 Jums nav iegūt char. 887 00:42:36,440 --> 00:42:39,660 Jums nav iegūt kaut ko cits vispār. 888 00:42:39,660 --> 00:42:40,510 Jūs saņemsiet int. 889 00:42:40,510 --> 00:42:41,890 >> Tagad tas varētu būt pozitīva. 890 00:42:41,890 --> 00:42:42,770 Tas varētu būt negatīva. 891 00:42:42,770 --> 00:42:44,550 Mums nav nekādas garantijas ap to. 892 00:42:44,550 --> 00:42:48,960 Bet mēs apgrūtināt lietotājam vēlreiz, retry, retry, kamēr viņš vai viņa patiesībā 893 00:42:48,960 --> 00:42:49,810 sadarbojas. 894 00:42:49,810 --> 00:42:53,085 Tāpat, ja man 1.23, kas ir ne int. 895 00:42:53,085 --> 00:42:58,400 Bet, ja es rakstīt, teiksim, 50, ka dod man vērtību, ko es gribēju. 896 00:42:58,400 --> 00:42:59,050 >> Labi. 897 00:42:59,050 --> 00:43:01,380 Tātad nav slikti. 898 00:43:01,380 --> 00:43:04,780 Visus jautājumus par to, ko mēs esam tikko veikts? 899 00:43:04,780 --> 00:43:07,930 Galvenais takeaway ir, lai būtu skaidrs, ne tik daudz cilpa, ko mēs esam redzējuši 900 00:43:07,930 --> 00:43:10,880 Pirms kaut arī mums nav īsti to izmanto, bet gan jautājums par darbības jomu, kurā 901 00:43:10,880 --> 00:43:17,045 mainīgie lielumi var tikai tad, var izmantot tikai ietvaros kādā noteiktā jomā. 902 00:43:17,045 --> 00:43:19,830 >> Labi, ļaujiet man pievērsties ierosinājumu veicāt agrāk, ka 903 00:43:19,830 --> 00:43:20,860 globālo mainīgo. 904 00:43:20,860 --> 00:43:24,880 Kā malā, izrādās, ka cita risinājums šai problēmai, bet, 905 00:43:24,880 --> 00:43:28,880 parasti nepareizu risinājumu vai slikti izstrādāts risinājums, ir līdz 906 00:43:28,880 --> 00:43:31,670 atzīt savu mainīgo, kā to, kas ir sauc globālo mainīgo. 907 00:43:31,670 --> 00:43:34,610 Tagad es esmu veida aizskart manu definīciju jomas, jo ir 908 00:43:34,610 --> 00:43:37,680 Nav cirtaini bikšturi pie ļoti top un ļoti apakšā failu. 909 00:43:37,680 --> 00:43:40,190 Bet nozīmē arī, ka ir tā, ka tagad četrās līniju, 910 00:43:40,190 --> 00:43:41,710 n ir pasaules mainīgais. 911 00:43:41,710 --> 00:43:44,460 Un, kā norāda nosaukums, tā ir vienkārši pieejami visur. 912 00:43:44,460 --> 00:43:45,790 >> Scratch patiesībā ir tiem. 913 00:43:45,790 --> 00:43:48,650 Ja tu izmanto mainīgo, jūs varētu atcerēties jums bija izvēlēties, ja tas ir par 914 00:43:48,650 --> 00:43:50,780 šī elfa vai visiem sprites. 915 00:43:50,780 --> 00:43:54,270 Nu, visas sprites ir tikai skaidrāks veids, kā pateikt pasaules. 916 00:43:54,270 --> 00:43:55,520 Yeah? 917 00:43:55,520 --> 00:44:09,690 918 00:44:09,690 --> 00:44:10,990 Ak, tiešām labs jautājums. 919 00:44:10,990 --> 00:44:14,310 >> Tāpēc atgādina, ka jau pirmajā versijā par manu kodu, kad es nepareizi 920 00:44:14,310 --> 00:44:17,700 deklarētie un noteikti n deviņās līnijas - 921 00:44:17,700 --> 00:44:19,980 Es to pasludināja par mainīgo un man deva to vērtību ar 922 00:44:19,980 --> 00:44:21,160 uzdevums operators - 923 00:44:21,160 --> 00:44:22,520 tas deva man divas kļūdas. 924 00:44:22,520 --> 00:44:26,560 Viens, tas, ka n nav izmantots, un divi, ka līnija 11 925 00:44:26,560 --> 00:44:27,770 tas vienkārši nav deklarēta. 926 00:44:27,770 --> 00:44:31,120 Tātad, pirmais man nebija adrese brīdī. 927 00:44:31,120 --> 00:44:35,130 Tas nav stingri kļūda deklarēt mainīgs, bet neizmanto to. 928 00:44:35,130 --> 00:44:38,540 Bet viena no lietām, ko mēs esam darījuši, kas CS50 ierīces, apzināti, 929 00:44:38,540 --> 00:44:43,340 pedagoģiski, ir, mēs esam izliekts uz augšu cerības kompilatoru, lai 930 00:44:43,340 --> 00:44:46,970 pārliecinieties, ka jūs darāt lietas ne tikai pareizi, bet īsti pareizi. 931 00:44:46,970 --> 00:44:51,520 >> Jo, ja jūs deklarē mainīgo piemēram, n un nekad to izmanto, vai arī izmantojot to 932 00:44:51,520 --> 00:44:53,700 pareizi, tad to, kas tas dara tur? 933 00:44:53,700 --> 00:44:55,650 Tas patiesi kalpo mērķim. 934 00:44:55,650 --> 00:44:58,980 Un tas ir ļoti viegli laika gaitā, ja jūs nav konfigurēt savu datoru 935 00:44:58,980 --> 00:45:01,960 šādā veidā, vienkārši ir kods, kas ir maz paliekas šeit, paliekas tur. 936 00:45:01,960 --> 00:45:04,390 Un tad mēnešus vēlāk paskatās atpakaļ un jūs, piemēram, kāpēc tas ir līnija 937 00:45:04,390 --> 00:45:05,060 kods tur? 938 00:45:05,060 --> 00:45:07,940 Un, ja nav labs iemesls, tas nedod labumu jums vai jūsu kolēģiem 939 00:45:07,940 --> 00:45:10,650 nosaka ceļu, lai būtu paklupt pār to pēc tam. 940 00:45:10,650 --> 00:45:12,540 >> Kā malā, kur ir kas nāk no? 941 00:45:12,540 --> 00:45:16,410 Nu, atgādināt, ka katru reizi, kad mēs apkopotu programma, tas viss stuff ir 942 00:45:16,410 --> 00:45:17,380 tiek drukāts. 943 00:45:17,380 --> 00:45:18,350 Tātad, mēs būsim atpakaļ uz to. 944 00:45:18,350 --> 00:45:22,230 Bet atkal, lai ir lietderība, kas automatizē apkopošanas procesu, ko 945 00:45:22,230 --> 00:45:24,830 rādīt faktisko kompilators sauc šķindoņa. 946 00:45:24,830 --> 00:45:27,650 Šī lieta, mēs galu galā redzēt, ir darīt ar atkļūdošanu ar īpašu 947 00:45:27,650 --> 00:45:29,060 Programma sauc atkļūdotājs. 948 00:45:29,060 --> 00:45:32,150 Tas ir saistīts ar optimizējot kods - vairāk par to nākotnē. 949 00:45:32,150 --> 00:45:33,620 Std = C99 - 950 00:45:33,620 --> 00:45:37,870 tas tikai nozīmē izmantot 1999 versiju C. C ir bijis apmēram pat ilgāk, nekā 951 00:45:37,870 --> 00:45:40,830 tas, bet viņi kādu jauku Izmaiņas 10 plus gadus atpakaļ. 952 00:45:40,830 --> 00:45:42,690 >> Un šeit ir attiecīgās ones. 953 00:45:42,690 --> 00:45:45,880 Mēs sakām, darīt visu, kas agrāk būtu bijis brīdinājums 954 00:45:45,880 --> 00:45:48,560 kļūda novērst students no sastādīšanas. 955 00:45:48,560 --> 00:45:51,400 Un sienu nozīmē to izdarītu viss ķekars lietas, kas nav 956 00:45:51,400 --> 00:45:53,060 tikai saistībā ar mainīgajiem. 957 00:45:53,060 --> 00:45:54,700 Un tad ļaujiet man atrodiet beigām, šīs līnijas. 958 00:45:54,700 --> 00:45:56,430 Un arī tas, mēs galu galā atgriezties. 959 00:45:56,430 --> 00:45:59,040 Tas ir acīmredzami nosaukums failu, es esmu sastādīšanas. 960 00:45:59,040 --> 00:46:02,160 Tas atgādina par faila nosaukumu Es esmu outputting kā nosaukums 961 00:46:02,160 --> 00:46:04,070 mana skrienams programmas. 962 00:46:04,070 --> 00:46:08,970 Šī-lcs50 tikai nozīmē izmantot CS50 bibliotēka, un visi nullēm un tiem, ka 963 00:46:08,970 --> 00:46:12,390 personāls rakstīja un apkopoti agrāk šogad, integrēt 964 00:46:12,390 --> 00:46:13,490 tos manā programmā. 965 00:46:13,490 --> 00:46:16,130 >> Un kāds zina, kas-lm ir? 966 00:46:16,130 --> 00:46:18,150 Tas ir math bibliotēka, kas ir tikai tur, pat ja jūs esat 967 00:46:18,150 --> 00:46:19,320 nav darot jebkuru math. 968 00:46:19,320 --> 00:46:22,620 Tas ir vienkārši automātiski sniedz ko mums darīt. 969 00:46:22,620 --> 00:46:26,540 >> Nu, ļaujiet man darīt vienu citu piemēru Šeit atverot jaunu failu. 970 00:46:26,540 --> 00:46:30,560 Un ļaujiet man saglabāt šo vienu, kā string.c. 971 00:46:30,560 --> 00:46:37,980 Izrādās, ka, kā mēs runājam par datiem veidiem šodien, tur ir vēl vairāk 972 00:46:37,980 --> 00:46:40,630 notiek zem motora pārsega nekā mēs esam redzējuši līdz šim. 973 00:46:40,630 --> 00:46:42,290 Tātad, ļaujiet man ātri darīt ātri programmu. 974 00:46:42,290 --> 00:46:44,510 Iekļaut stdio.h. 975 00:46:44,510 --> 00:46:45,730 Un es glābt to. 976 00:46:45,730 --> 00:46:48,110 Un jūs zināt, ļaujiet man nepadara pašu kļūdu atkal un atkal. 977 00:46:48,110 --> 00:46:50,540 Iekļaut cs50.h. 978 00:46:50,540 --> 00:46:54,870 Un ļaujiet man iet uz priekšu tagad un darīt int galvenais (spēkā neesošs). 979 00:46:54,870 --> 00:46:58,790 >> Un tagad es vienkārši gribu darīt programmu ka tas - atzīt virkni 980 00:46:58,790 --> 00:47:03,610 sauc s un saņemt virkni no lietotāja. 981 00:47:03,610 --> 00:47:05,820 Un ļaujiet man darīt nedaudz instrukcijas šeit - 982 00:47:05,820 --> 00:47:09,960 lūdzu, iedodiet man virkni - tā lietotājs zina, ko darīt. 983 00:47:09,960 --> 00:47:13,190 Un tad šeit lejā zem šīs, Es gribu darīt šādi - 984 00:47:13,190 --> 00:47:16,060 par int i kļūst nulle. 985 00:47:16,060 --> 00:47:18,580 Atkal, datorzinātnieku parasti sākt skaitīšanu no nulles, bet mēs varētu 986 00:47:18,580 --> 00:47:20,340 veiktu šo vienu, ja mēs patiešām vēlējās. 987 00:47:20,340 --> 00:47:27,240 Tagad es esmu gatavojas darīt, man ir mazāka nekā virknes garumu s. 988 00:47:27,240 --> 00:47:28,430 Tātad 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 atkal, tas ir īss, jo tā ir vieglāk rakstīt, pat ja tas ir 991 00:47:31,650 --> 00:47:32,590 maz mistisks. 992 00:47:32,590 --> 00:47:35,290 >> Tā ir funkcija, mēs esam nav izmantoti agrāk, bet burtiski tas, ka - 993 00:47:35,290 --> 00:47:37,810 atgriezties pie manis uz skaitli, kas apzīmē garums string 994 00:47:37,810 --> 00:47:38,690 ka lietotājs drukāti. 995 00:47:38,690 --> 00:47:41,740 Ja viņi drukāti sveiki, tas atgriezīsies Piecu jo tur ir pieci 996 00:47:41,740 --> 00:47:42,890 burti sveiki. 997 00:47:42,890 --> 00:47:45,390 Tad uz katru atkārtojuma Šī cilpa, es plus plus. 998 00:47:45,390 --> 00:47:49,170 Tātad vēlreiz, standarta būvēt, pat tad, ja jūs neesat pilnīgi pārāk ērti vai 999 00:47:49,170 --> 00:47:50,420 pazīstams ar to vēl. 1000 00:47:50,420 --> 00:47:53,220 >> Bet tagad par katru atkārtojuma šīs cilpas, paziņojums, ko es esmu gatavojas darīt. 1001 00:47:53,220 --> 00:47:56,690 Es gribu iet uz priekšu un izdrukāt veic vienu rakstzīmi - 1002 00:47:56,690 --> 00:47:59,940 tāpēc% c slīpsvītru n jaunā rindā. 1003 00:47:59,940 --> 00:48:00,990 Un tad, jūs zināt, ko es gribu darīt? 1004 00:48:00,990 --> 00:48:05,090 Neatkarīgi vārds ir tas, ka lietotājs jo, piemēram, sveiki, es gribu izdrukāt 1005 00:48:05,090 --> 00:48:09,530 H-E-L-L-O, viens raksturs uz līnijas. 1006 00:48:09,530 --> 00:48:13,080 Citiem vārdiem sakot, es vēlos saņemt pie individuālās rakstzīmes virknes, 1007 00:48:13,080 --> 00:48:16,770 saskaņā ar kuru līdz šim string ir tikko bijis rakstzīmju secība. 1008 00:48:16,770 --> 00:48:21,690 >> Un izrādās es varu darīt s, kronšteinu, i, netālu kronšteins, aizveriet 1009 00:48:21,690 --> 00:48:23,580 iekavas, semikols. 1010 00:48:23,580 --> 00:48:25,640 Un man ir jādara vēl viena lieta. 1011 00:48:25,640 --> 00:48:30,570 Tas ir failā ar nosaukumu string.h ka strlen ir deklarēti. 1012 00:48:30,570 --> 00:48:33,190 Tātad, ja es vēlos izmantot šo funkciju, Man vajag pateikt kompilatoru, 1013 00:48:33,190 --> 00:48:34,450 gaidīt, lai izmantotu to. 1014 00:48:34,450 --> 00:48:37,040 Tagad ļaujiet man iet uz priekšu un darīt programmu, ko sauc virkne. 1015 00:48:37,040 --> 00:48:39,150 Dot, slīpsvītra, stīgu. 1016 00:48:39,150 --> 00:48:40,130 >> Lūdzu, iedodiet man virkni. 1017 00:48:40,130 --> 00:48:40,900 Es iešu uz priekšu un ierakstiet to. 1018 00:48:40,900 --> 00:48:43,040 Sveiki, visiem vāciņiem, Enter. 1019 00:48:43,040 --> 00:48:47,390 Un tagad paziņojums es esmu iespiests šo viens raksturs pēc otra. 1020 00:48:47,390 --> 00:48:51,450 Tātad jaunais papildinājums šeit ir tas, ka virkne, beigās, dienā, var būt 1021 00:48:51,450 --> 00:48:54,810 piekļūt, kā tās personas zīmes, ieviešot laukumā 1022 00:48:54,810 --> 00:48:55,840 kronšteins notācija. 1023 00:48:55,840 --> 00:48:59,090 Un tas ir tāpēc, ka virkne zem pārsegs ir patiešām secība 1024 00:48:59,090 --> 00:48:59,810 rakstzīmes. 1025 00:48:59,810 --> 00:49:02,010 Bet kas ir veikls par tām ir jūsu datora RAM - 1026 00:49:02,010 --> 00:49:05,300 Mac, kāds tas ir - viņi burtiski atpakaļ atpakaļ atpakaļ - 1027 00:49:05,300 --> 00:49:06,225 H-E-L-L-O - 1028 00:49:06,225 --> 00:49:09,920 individuālā, blakus baiti atmiņā. 1029 00:49:09,920 --> 00:49:13,210 >> Tātad, ja jūs vēlaties saņemt pie astotais šāds baits, kas šajā cilpas būtu 1030 00:49:13,210 --> 00:49:16,900 kronšteins nulle, viens bracket, bracket divi, kronšteins trīs, četru bracket - 1031 00:49:16,900 --> 00:49:18,890 kas ir nulle indeksētas līdz pieciem - 1032 00:49:18,890 --> 00:49:23,330 ka izdrukās H-E-L-L-O savā rindā. 1033 00:49:23,330 --> 00:49:26,320 >> Tagad, kā teaser, ļaujiet man parādīs veidu lietas, jūs, iespējams, būs 1034 00:49:26,320 --> 00:49:31,950 varētu saprast, vismaz ar kādu tuvu meklē. 1035 00:49:31,950 --> 00:49:35,610 Attiecībā uz vienu, ko mēs iekļauts šodienas piemēru, ja vēlaties, ir faktiski 1036 00:49:35,610 --> 00:49:38,300 viens no pašiem pirmajiem jailbreaks par iPhone. 1037 00:49:38,300 --> 00:49:40,800 Jailbreaking ir plaisas tālruni lai jūs varētu faktiski izmantot to 1038 00:49:40,800 --> 00:49:43,380 atšķirīgas pārvadātājam vai instalēt savu programmatūru. 1039 00:49:43,380 --> 00:49:45,660 Un jūs pamanīsiet, tas izskatās pilnīgi mistisks, visticamāk. 1040 00:49:45,660 --> 00:49:46,520 Bet paskaties uz to. 1041 00:49:46,520 --> 00:49:50,420 IPhone tika acīmredzot sašķelts ar uz cilpas, ja nosacījums, cits 1042 00:49:50,420 --> 00:49:52,580 nosacījums, ķekars funkcijas mēs esam nav redzējis. 1043 00:49:52,580 --> 00:49:54,230 >> Un atkal, jums nav pie pirmā acu uzmetiena, iespējams, 1044 00:49:54,230 --> 00:49:55,620 saprast, kā tas darbojas. 1045 00:49:55,620 --> 00:49:58,940 Bet viss, ko mēs veida uzņemties par pašsaprotamu mūsu mūsdienu dzīvē 1046 00:49:58,940 --> 00:50:02,040 faktiski ir tendence samazināt pat dažus no šiem pamatiem mēs esam bijuši 1047 00:50:02,040 --> 00:50:02,820 meklē. 1048 00:50:02,820 --> 00:50:06,680 Ļaujiet man iet uz priekšu un atvērt vienu cita programma, holloway.c. 1049 00:50:06,680 --> 00:50:08,970 Tātad tas arī ir kaut kas jums nav īsti zināt. 1050 00:50:08,970 --> 00:50:12,440 Pat darbinieku neviens, vai es varētu iespējams izrēķināt to, ko meklē 1051 00:50:12,440 --> 00:50:15,450 tas tāpēc, ka tas bija kāds kods , kas tika iesniegts, kas ir 1052 00:50:15,450 --> 00:50:19,630 vēsturiski pazīstama kā obfuscated C konkurss, kur uzrakstīt programmu 1053 00:50:19,630 --> 00:50:24,670 kas apkopo un iet, bet ir tik nopelt mistisks neviens cilvēks nevar saprast, ko 1054 00:50:24,670 --> 00:50:27,530 tā gatavojas darīt, kamēr tie faktiski palaist to. 1055 00:50:27,530 --> 00:50:29,940 >> Tātad, protams, ja paskatās uz to kods, es redzu slēdzi. 1056 00:50:29,940 --> 00:50:30,870 Es redzu galvenais. 1057 00:50:30,870 --> 00:50:33,800 Es redzu šīs kvadrātiekavas norādot sava veida masīva. 1058 00:50:33,800 --> 00:50:35,970 Vai kāds vēlas uzminēt, ko šī programma faktiski 1059 00:50:35,970 --> 00:50:37,220 tomēr, ja man palaist Holloway? 1060 00:50:37,220 --> 00:50:39,940 1061 00:50:39,940 --> 00:50:40,750 Jā. 1062 00:50:40,750 --> 00:50:43,050 Labi. 1063 00:50:43,050 --> 00:50:44,690 Labi darīts. 1064 00:50:44,690 --> 00:50:48,090 Tātad tikai darbinieki, un es nevaru izdomāt , ko šīs lietas darīt. 1065 00:50:48,090 --> 00:50:51,670 >> Un tagad visbeidzot, ļaujiet man iet uz priekšu un atvērt vēl vienu programmu. 1066 00:50:51,670 --> 00:50:53,440 Šis ir viens - 1067 00:50:53,440 --> 00:50:55,550 atkal, mēs veiksim pirmkodu pieejami tiešsaistē - tas viens ir tikai 1068 00:50:55,550 --> 00:50:57,480 veida diezgan apskatīt. 1069 00:50:57,480 --> 00:50:59,750 Visi viņi ir hit starpdevējs pavisam nedaudz. 1070 00:50:59,750 --> 00:51:01,320 Bet tas ir reāls kods. 1071 00:51:01,320 --> 00:51:04,790 Tātad, ja jūs domājat, ka ir diezgan, ja mēs kursēt šo pie ātru, 1072 00:51:04,790 --> 00:51:08,970 galu galā jūs redzēsiet, kā mēs varētu darīt lietas, kā šis. 1073 00:51:08,970 --> 00:51:14,008 >> Tāpēc mēs ņemšu atvaļinājumu jums šī piezīme un redzēt jūs trešdien. 1074 00:51:14,008 --> 00:51:18,440 >> [Mūzikas atskaņošanas] 1075 00:51:18,440 --> 00:51:23,380 >> SPEAKER 2: Nākamajā CS50, uz TFS skatuves dumpoties. 1076 00:51:23,380 --> 00:51:24,112 >> SPEAKER 3 Tur viņš ir. 1077 00:51:24,112 --> 00:51:25,362 Saņemt viņam! 1078 00:51:25,362 --> 00:51:29,912 1079 00:51:29,912 --> 00:51:32,074 >> [Mūzikas atskaņošanas]