1 00:00:00,000 --> 00:00:02,880 >> [Mūzikas atskaņošanai] 2 00:00:02,880 --> 00:00:10,580 3 00:00:10,580 --> 00:00:13,500 >> SPEAKER 1: Tas ir CS50 un šis ir sākums nedēļas divas. 4 00:00:13,500 --> 00:00:18,400 Tātad, pieņemsim nirt labi kaut ko tas ir buggy, lai runāt. 5 00:00:18,400 --> 00:00:24,015 Tātad, nekā šeit ir CS50 IDE, un es esmu velk up iepriekš šī screen-- nopelt 6 00:00:24,015 --> 00:00:25,070 tā. 7 00:00:25,070 --> 00:00:25,760 Spoileris brīdinājuma. 8 00:00:25,760 --> 00:00:26,260 Viss kārtībā. 9 00:00:26,260 --> 00:00:29,060 Esmu velk šo ekrānu šeit, kas ir ļoti vienkāršu programmu. 10 00:00:29,060 --> 00:00:32,659 Ja mēs ritiniet uz leju, visvairāk tas ir tikai komentāri, 11 00:00:32,659 --> 00:00:36,730 bet šeit rindās 13 ar 17 mums ir programma. 12 00:00:36,730 --> 00:00:40,580 >> Tas ir sintaktiski spēkā, kas nozīmē, ja Es sastādīt tā, tas būs apkopot un palaist, 13 00:00:40,580 --> 00:00:41,920 bet tas ir buggy. 14 00:00:41,920 --> 00:00:47,330 Šī programma apgalvo komentāriem up augšu, ka tai vajadzētu drukāt 10 zvaigznes, 15 00:00:47,330 --> 00:00:48,870 bet tā nav. 16 00:00:48,870 --> 00:00:53,290 Un, pamatojoties uz savu pieredzi, vai drīz būs pieredze ar C, 17 00:00:53,290 --> 00:00:56,820 Jūs varat loģiski saskatīt kāpēc tas ir, faktiski, buggy? 18 00:00:56,820 --> 00:00:57,804 Yeah? 19 00:00:57,804 --> 00:00:59,220 Mērķauditorija: Pats no nulles līdz 10. 20 00:00:59,220 --> 00:01:01,884 Tas ir 11 atkārtojumiem. 21 00:01:01,884 --> 00:01:02,550 SPEAKER 1: Jā. 22 00:01:02,550 --> 00:01:06,030 Tātad, tas būs no nulles augšup caur un vienāds ar 10, 23 00:01:06,030 --> 00:01:08,140 kas, protams, ir 11 atkārtojumiem. 24 00:01:08,140 --> 00:01:10,020 Tātad, tas notiek, lai drukāt, protams, 11 zvaigznes. 25 00:01:10,020 --> 00:01:13,040 Tātad, datorzinātnes konvencija vairumā programmēšanas valodas 26 00:01:13,040 --> 00:01:15,270 Ir, protams, tikai lai sākt skaitīšanas nulles līmenī, 27 00:01:15,270 --> 00:01:18,800 bet skaitīt līdz, bet ne caur vērtība, ka jūs faktiski rūp. 28 00:01:18,800 --> 00:01:21,216 >> Tagad tas ir viena lieta, kas aizņem mazliet kļūst izmantoti, lai 29 00:01:21,216 --> 00:01:25,350 un pat Scratch, veidota kā tas ir viesiem programmētājiem vai bez datora 30 00:01:25,350 --> 00:01:28,070 zinātnieki un bērniem lielā mērā, ir paredzēts, lai būtu 31 00:01:28,070 --> 00:01:29,570 sākat parasti skaitīšanas vienā. 32 00:01:29,570 --> 00:01:30,277 Un tas ir jauki. 33 00:01:30,277 --> 00:01:33,110 Jūs varat absolūti sākt skaitīšanas pie viena, ja tas ir ērtāk. 34 00:01:33,110 --> 00:01:37,210 Un saskaitīt uz un caur 10, bet jūs apzināties īpaši šonedēļ 35 00:01:37,210 --> 00:01:39,950 un tālāk, ka tikai tā daudzas lietas programmēšana 36 00:01:39,950 --> 00:01:42,465 pieņemu, ka 0 ir pirmais cipars, ar kuru jūs rēķināties, 37 00:01:42,465 --> 00:01:45,590 ka jūs gatavojas vieglāk tikai, lai iegūtu šajā ieradums palaišanas 38 00:01:45,590 --> 00:01:49,490 no nulles un skaitot līdz vērtībai jums rūp tieši tagad no 39 00:01:49,490 --> 00:01:49,990 get iet. 40 00:01:49,990 --> 00:01:50,990 >> Tātad, kas ir noteikts, ka. 41 00:01:50,990 --> 00:01:53,670 Mēs mainījies mazāks vai vienāds, lai tikai mazāk nekā. 42 00:01:53,670 --> 00:01:56,050 Pieņemsim to apskatīt Otrs piemērs šeit. 43 00:01:56,050 --> 00:01:59,585 >> Tātad, šī programma arī apgalvo tās komentāri up top ka tai vajadzētu drukāt 44 00:01:59,585 --> 00:02:02,260 desmit zvaigznes, bet tā nav. 45 00:02:02,260 --> 00:02:05,540 Kas ir bug šeit? 46 00:02:05,540 --> 00:02:07,930 >> Tātad, what-- un piedodiet, pieņemsim skaidrs. 47 00:02:07,930 --> 00:02:08,610 10 zvaigznes. 48 00:02:08,610 --> 00:02:11,644 Viens vienu līniju, bet tā nav. 49 00:02:11,644 --> 00:02:14,810 Tātad, faktiski, ļaujiet man iet uz priekšu un apkopo tas viens, jo tas ir nedaudz mazāk 50 00:02:14,810 --> 00:02:16,900 skaidrs, pamatojoties uz šo aprakstu. 51 00:02:16,900 --> 00:02:18,720 Ļaujiet man iet uz mūsu avots direktorijā. 52 00:02:18,720 --> 00:02:25,110 Padarīt Buggy vienu dot slīpsvītra buggy vienu. 53 00:02:25,110 --> 00:02:28,680 Labi, es redzu 11 zvaigznes, kas joprojām ir problemātiska, 54 00:02:28,680 --> 00:02:30,090 bet viņi arī visi vienā rindā. 55 00:02:30,090 --> 00:02:31,500 Kāda ir problēma šeit? 56 00:02:31,500 --> 00:02:32,339 Jā. 57 00:02:32,339 --> 00:02:33,255 Mērķauditorija: [nedzirdama]. 58 00:02:33,255 --> 00:02:36,194 59 00:02:36,194 --> 00:02:36,860 SPEAKER 1: Jā. 60 00:02:36,860 --> 00:02:40,210 Tātad šī ir smalkums, ka Jums varētu atgādināt mani padarot īsi pieminēts. 61 00:02:40,210 --> 00:02:42,793 Pat ja viss izskatās diezgan, un tas ir labi atkāpi, 62 00:02:42,793 --> 00:02:45,850 un tā veida izskatās Scratch līdzīgu Šajā rindā 16. un 17., 63 00:02:45,850 --> 00:02:47,600 tiešām, atkāpi saskaņā ka cilpa. 64 00:02:47,600 --> 00:02:48,400 Tas ir nebūtisks. 65 00:02:48,400 --> 00:02:50,460 Dators nav zināt vai redzēt balto laukumu. 66 00:02:50,460 --> 00:02:52,910 White telpa ir tikai Mums, cilvēkiem, stilistiski. 67 00:02:52,910 --> 00:02:57,010 Dators zina, kad jums ir cirtaini bikšturi, kas, protams, 68 00:02:57,010 --> 00:02:58,280 atrisinātu šo problēmu. 69 00:02:58,280 --> 00:03:02,350 >> Tātad, ja mēs tiešām gāja un skaidri likt šajos cirtaini lencēm 70 00:03:02,350 --> 00:03:05,220 kas varētu novērst šo problēmu, padarot skaidrs kompilators 71 00:03:05,220 --> 00:03:07,930 ka es tiešām gribu, lai izpildītu divas rindiņas kodu vēlreiz, 72 00:03:07,930 --> 00:03:09,220 un atkal, un atkal. 73 00:03:09,220 --> 00:03:11,680 Bet kas ir būtisks izskaidrojums? 74 00:03:11,680 --> 00:03:12,180 Tiesības? 75 00:03:12,180 --> 00:03:15,260 Mums nav strikti nepieciešams cirtaini bikšturi visu laiku, 76 00:03:15,260 --> 00:03:18,210 pat ja tas ir iespējams, vislabāk prakse nokļūt šajā ieradums vienalga 77 00:03:18,210 --> 00:03:20,878 pat ja tas pievieno divus rakstzīmes kodu. kāpēc? 78 00:03:20,878 --> 00:03:22,380 >> Mērķauditorija: [dzirdams]? 79 00:03:22,380 --> 00:03:24,630 SPEAKER 1: Jā tā, ka ir cits risinājums pavisam. 80 00:03:24,630 --> 00:03:25,130 Tiesības? 81 00:03:25,130 --> 00:03:28,250 It īpaši, ja pēc pirmā acu uzmetiena jums nav patiešām novērtējam to, kas notiek. 82 00:03:28,250 --> 00:03:31,070 Nu, protams, mēs varētu vienkārši darīt divas lietas uzreiz 83 00:03:31,070 --> 00:03:32,710 un vienkārši izvairīties no problēmu vispār. 84 00:03:32,710 --> 00:03:36,080 Un tas ir labi, bet tagad, šodienas vajadzībām, ko 85 00:03:36,080 --> 00:03:38,200 ir izskaidrojums bug? 86 00:03:38,200 --> 00:03:39,810 Kāpēc bija visi šie zvaigznes vienā rindā? 87 00:03:39,810 --> 00:03:40,806 Yeah? 88 00:03:40,806 --> 00:03:43,296 >> Mērķauditorija: Šķiet, ka tad, ja Jums ir vienu rindiņu kodu, 89 00:03:43,296 --> 00:03:46,649 jūs varat darīt to bez tiem. 90 00:03:46,649 --> 00:03:47,440 SPEAKER 1: Tieši tā. 91 00:03:47,440 --> 00:03:48,750 Tas ir tikai cilvēka konvencija. 92 00:03:48,750 --> 00:03:50,750 Cilvēki saprot, ka tas ir mazliet kaitinošas vai garlaicīgs 93 00:03:50,750 --> 00:03:53,470 lai būtu likt cirtaini bikšturi visu no laika, ja viss, ko vēlaties darīt 94 00:03:53,470 --> 00:03:55,090 ir izpildīt vienu rindiņu kodu. 95 00:03:55,090 --> 00:03:57,660 Tātad, cilvēki nolēma daži laiku atpakaļ, ka tas ir jauki. 96 00:03:57,660 --> 00:04:01,180 Ja jūs vēlaties, lai visas jūsu cilpas uz tikai šajā vienā rindā, kā šis, 97 00:04:01,180 --> 00:04:04,030 tas ir jauki ar vienoto Semikolu beigās. 98 00:04:04,030 --> 00:04:07,210 Bet jūs varat darīt tikai viena šāda line bez cirtaini lencēm. 99 00:04:07,210 --> 00:04:09,900 >> Tātad, kad CS50 stila rokasgrāmata kā būs punkts jums, 100 00:04:09,900 --> 00:04:11,980 Jūs redzēsiet, ka parasti tas ir labs ieradums 101 00:04:11,980 --> 00:04:14,920 iekļūt šo darbību, līdz jūs esat diezgan ērti klaiņojošus 102 00:04:14,920 --> 00:04:17,404 No šiem konvencijām veidu un dara savu lietu. 103 00:04:17,404 --> 00:04:18,820 Tik ilgi, kamēr jūs esat sevi konsekventi. 104 00:04:18,820 --> 00:04:21,540 Un mēs runājam vairāk par stils mazliet vēlāk šodien. 105 00:04:21,540 --> 00:04:23,200 >> Tātad, ļaujiet man atvērt vēl vienu programmu. 106 00:04:23,200 --> 00:04:24,930 Protams, mums vajadzētu noteikt, ka 10, kā arī. 107 00:04:24,930 --> 00:04:32,470 Ļaujiet man iet uz priekšu un rakstīt īsta ātra programma, kas es saukšu, 108 00:04:32,470 --> 00:04:38,140 teiksim, cilpa dot C. Tātad, cilpa dot C. Un cilpa dot C es esmu nāksies, 109 00:04:38,140 --> 00:04:41,970 ietver standarta I / O dot H int galvenais tukšumu. 110 00:04:41,970 --> 00:04:44,020 Un tagad pieņemsim tikai darīt, tiešām ir cilpa. 111 00:04:44,020 --> 00:04:46,020 Tātad, 4 int es izpaužas nulle. 112 00:04:46,020 --> 00:04:48,660 Man ir mazāk nekā, teiksim, 50. 113 00:04:48,660 --> 00:04:49,950 Es plus, plus. 114 00:04:49,950 --> 00:04:53,350 Un tad šeit pieņemsim iet uz priekšu un darīt izdrukāt F. 115 00:04:53,350 --> 00:04:56,400 Un tad es gribu, lai drukātu I un jauna līnija, semikols. 116 00:04:56,400 --> 00:05:00,015 >> Un tas būtu drukāt visu skaitļi no nulles līdz 50? 117 00:05:00,015 --> 00:05:02,900 118 00:05:02,900 --> 00:05:03,680 Daži galvu pamāj. 119 00:05:03,680 --> 00:05:04,270 Daži nos. 120 00:05:04,270 --> 00:05:05,339 Kas ir bug jau? 121 00:05:05,339 --> 00:05:06,630 Kāda ir viegli kļūda es? 122 00:05:06,630 --> 00:05:07,170 Jā. 123 00:05:07,170 --> 00:05:08,544 >> Mērķauditorija: [nedzirdama]. 124 00:05:08,544 --> 00:05:09,210 SPEAKER 1: Jā. 125 00:05:09,210 --> 00:05:11,520 Tātad, pat ja tas izskatās piemēram, tas ir tas, ko es plānoju, 126 00:05:11,520 --> 00:05:13,920 atceros, ka man ir arī tikai ASCII raksturs. 127 00:05:13,920 --> 00:05:14,955 >> Tātad, ja es saku, print "I." 128 00:05:14,955 --> 00:05:16,670 Tas burtiski notiek drukāt I. Tātad, ja es 129 00:05:16,670 --> 00:05:20,030 vēlas plug-in vietturi vērtība man tiešām ir nepieciešams, lai to paveiktu 130 00:05:20,030 --> 00:05:22,630 un pēc tam plug-in I vērtība dinamiski. 131 00:05:22,630 --> 00:05:25,200 Pretējā gadījumā es esmu tikai gatavojas saņemsiet 50 I ir uz ekrāna. 132 00:05:25,200 --> 00:05:28,140 >> Tātad, ļaujiet man iet uz priekšu un padara šo cilpa, palaist to, 133 00:05:28,140 --> 00:05:30,650 un, protams, mēs visi esam ceļu augšup pa 49. 134 00:05:30,650 --> 00:05:34,140 Un, ja es ritināt atpakaļ laikā es redzu numurs nulle sākumā. 135 00:05:34,140 --> 00:05:36,050 >> Nu, ko tad, ja es veida screw up? 136 00:05:36,050 --> 00:05:37,800 Ko darīt, ja man darīt? 137 00:05:37,800 --> 00:05:40,120 Tikai tāpēc, ka es neesmu domājis. 138 00:05:40,120 --> 00:05:40,970 Kas ir šī programma. 139 00:05:40,970 --> 00:05:43,970 Kad atkal apkopoti un palaist, gatavojas darīt loģiski? 140 00:05:43,970 --> 00:05:44,870 >> Mērķauditorija: Nekas. 141 00:05:44,870 --> 00:05:45,661 >> SPEAKER 1: Nekas. 142 00:05:45,661 --> 00:05:47,156 Kāpēc ir tā, ka? 143 00:05:47,156 --> 00:05:49,124 >> AUDITORIJA: Man ir paredzēta nulles. 144 00:05:49,124 --> 00:05:51,899 Tātad, šis nosacījums ir nepatiess. 145 00:05:51,899 --> 00:05:52,940 SPEAKER 1: Jā, tieši tā. 146 00:05:52,940 --> 00:05:55,110 Visi kods ir pareizs, sintaktiski. 147 00:05:55,110 --> 00:05:57,310 Tas apkopo, šis kods darbosies, bet tas nav 148 00:05:57,310 --> 00:06:00,110 gatavojas kaut ko noderīgu darīt jo es sāktu es līdz nullei. 149 00:06:00,110 --> 00:06:02,240 Tad mēs pārbaudām, ir man lielāks par 50? 150 00:06:02,240 --> 00:06:03,810 Acīmredzot, nē, tā nav. 151 00:06:03,810 --> 00:06:05,760 Tātad cilpa nekad izpilda vispār. 152 00:06:05,760 --> 00:06:09,580 >> Ko darīt, ja mēs kaut ko darīt nedaudz vairāk neapdomāti? 153 00:06:09,580 --> 00:06:12,890 Tātad, ko tad, ja mēs, piemēram, int man kļūst nulle. 154 00:06:12,890 --> 00:06:15,640 Un tagad ļaujiet man izmantot šo laiku cilpa, kas bija vēl viens nosacījums. 155 00:06:15,640 --> 00:06:21,810 Un, kamēr es saku, bet es ir lielāks nekā vai vienāds ar nulli, un pēc tam, kas šeit es 156 00:06:21,810 --> 00:06:26,070 iet uz priekšu un saglabāt failu, veikt cilpa. 157 00:06:26,070 --> 00:06:27,070 Un es esmu par, lai palaistu to. 158 00:06:27,070 --> 00:06:30,230 Kas es esmu gatavojas, lai redzētu šo laiks ar kamēr cilpa? 159 00:06:30,230 --> 00:06:30,852 Jā. 160 00:06:30,852 --> 00:06:32,120 >> Mērķauditorija: Infinite loop? 161 00:06:32,120 --> 00:06:35,360 >> SPEAKER 1: Infinite loop? 162 00:06:35,360 --> 00:06:36,662 Jā, un kāpēc? 163 00:06:36,662 --> 00:06:38,120 Mērķauditorija: Tā tas vienmēr ir nulle. 164 00:06:38,120 --> 00:06:38,786 SPEAKER 1: Jā. 165 00:06:38,786 --> 00:06:40,100 Tātad, es ir inicializēts kā nulle. 166 00:06:40,100 --> 00:06:44,470 Protams, es vienmēr ir lielāks par vai vienāds ar 0, kā rezultātā. 167 00:06:44,470 --> 00:06:46,460 Tātad, es esmu tikai gatavojas redzēt šo bezgalīgi. 168 00:06:46,460 --> 00:06:49,850 Un tagad, tas ir jānāk klajā pēc tam, kad vai divreiz, lai kursa galvām. 169 00:06:49,850 --> 00:06:52,417 Kas notiek, ja jūs ir bezgalīgs cilpa? 170 00:06:52,417 --> 00:06:53,314 >> Mērķauditorija: Control C. 171 00:06:53,314 --> 00:06:53,980 SPEAKER 1: Jā. 172 00:06:53,980 --> 00:06:56,250 Tātad Control C būs iespējams atbildēt. 173 00:06:56,250 --> 00:06:59,520 Diemžēl, mēs esam izdrukāt miljoniem un miljoniem nulles jau 174 00:06:59,520 --> 00:07:01,520 un tāpēc dators ir veida ieguva pirms manis. 175 00:07:01,520 --> 00:07:03,394 Tātad, tas notiek, lai ignorēt mani par mazliet. 176 00:07:03,394 --> 00:07:06,560 Bet, ja jūs vienkārši hit kontrolēt C daži reizes uz jūsu Mac vai PC tastatūru, 177 00:07:06,560 --> 00:07:08,790 galu galā tas būtu patiešām izbeigt. 178 00:07:08,790 --> 00:07:11,770 Un, ja ne, mēs jums parādīsim dažus paņēmieni pirms ilgi, kur jūs 179 00:07:11,770 --> 00:07:14,850 var faktiski varu nogalināt programmas, līdzīgi kā Windows un Mac OS, 180 00:07:14,850 --> 00:07:15,562 ja tas būtu nepieciešams. 181 00:07:15,562 --> 00:07:16,770 Bet pamēģināsim kaut ko citu. 182 00:07:16,770 --> 00:07:19,895 Pieņemsim faktiski pieauguma I. Vai tas joprojām būs bezgalīgs? 183 00:07:19,895 --> 00:07:22,870 184 00:07:22,870 --> 00:07:25,140 Ļaujiet man palaist šo. 185 00:07:25,140 --> 00:07:27,090 Un tagad jūs varat veida redzētu, kas notiek. 186 00:07:27,090 --> 00:07:30,140 Arī tas ir bezgalīgs cilpa. 187 00:07:30,140 --> 00:07:33,080 Bet tas ir mazliet āķīgs jautājums. 188 00:07:33,080 --> 00:07:35,460 Vai tas notiek, lai drukātu numuru uz visiem laikiem? 189 00:07:35,460 --> 00:07:36,647 >> Mērķauditorija: Nē. 190 00:07:36,647 --> 00:07:37,230 SPEAKER 1: Nē. 191 00:07:37,230 --> 00:07:37,620 Kāpēc? 192 00:07:37,620 --> 00:07:38,820 Es dzirdēju dažas nos nekā šeit. 193 00:07:38,820 --> 00:07:41,859 Someone-- Jā. 194 00:07:41,859 --> 00:07:44,275 Mērķauditorija: Jums nav pietiekami daudz biti tiešām saglabātu turpinās. 195 00:07:44,275 --> 00:07:44,730 SPEAKER 1: Nu labi. 196 00:07:44,730 --> 00:07:46,000 Tāpēc man nav pietiekami daudz biti, lai saglabātu turpinās. 197 00:07:46,000 --> 00:07:47,124 Tātad, kas notiek varētu notikt? 198 00:07:47,124 --> 00:07:49,320 Tas ir tikai gatavojas pārtraukt? 199 00:07:49,320 --> 00:07:52,542 >> Mērķauditorija: Kādā brīdī tas būs slēgtas the-- 200 00:07:52,542 --> 00:07:54,500 SPEAKER 1: Tas būs slēgtas cilpa uz leju, bet kāpēc? 201 00:07:54,500 --> 00:07:57,950 Kas notiks pie Ļoti beigām tās robežām? 202 00:07:57,950 --> 00:07:58,479 Yeah? 203 00:07:58,479 --> 00:08:00,520 Mērķauditorija: Tas būs cikls atpakaļ uz negatīviem skaitļiem. 204 00:08:00,520 --> 00:08:02,900 SPEAKER 1: Lai negatīviem skaitļiem, vai ja mēs bijām tikai ārstē pozitīvs, 205 00:08:02,900 --> 00:08:03,570 nulle vismaz. 206 00:08:03,570 --> 00:08:04,550 Tātad, jā, absolūti. 207 00:08:04,550 --> 00:08:08,059 Atgādināt, ka mēs redzējām pēdējo reizi, ka, ja pieauguma jūsu bits viens pārāk daudz reižu, 208 00:08:08,059 --> 00:08:10,225 un tu tur Fore pārplūdes jauda jūsu int 209 00:08:10,225 --> 00:08:13,058 vai kāds datu veids ir, jūs esat gatavojas wrap ap, iespējams, 210 00:08:13,058 --> 00:08:14,020 divi negatīvi skaitļi. 211 00:08:14,020 --> 00:08:16,644 Vai, ja jūs esat norādīt, lai diapazons ir tikai pozitīvi, 212 00:08:16,644 --> 00:08:18,560 ko jūs varat darīt, bet mēs esam nav redzējuši, ka vēl, 213 00:08:18,560 --> 00:08:21,420 jūs varētu nonākt vismaz atpakaļ uz nulli. 214 00:08:21,420 --> 00:08:22,410 Lai gan, patiesībā jā. 215 00:08:22,410 --> 00:08:24,320 Šajā gadījumā, negatīvs skaitļi, un tādā gadījumā 216 00:08:24,320 --> 00:08:26,870 cilpa gatavojas izbeigt jo man nav, faktiski, 217 00:08:26,870 --> 00:08:29,220 lielāks par vai vienāds ar nulle, ja tas ir negatīvs. 218 00:08:29,220 --> 00:08:31,780 >> Tātad, diemžēl, kā sen būtu mums ir jāgaida? 219 00:08:31,780 --> 00:08:35,490 Tieši tagad mēs esam līdz ko, 2 miljoni-ish? 220 00:08:35,490 --> 00:08:37,705 Mēs esam kā 2 miljardus, mēs esam nāksies gaidīt 221 00:08:37,705 --> 00:08:39,330 kamēr mēs faktiski var redzēt šis simptoms. 222 00:08:39,330 --> 00:08:46,200 Bet mēs varam redzēt to nedaudz ātrāk, maybe-- pieņemsim redzēt, ja mēs varam pārtraukt. 223 00:08:46,200 --> 00:08:46,700 Nāc šurp. 224 00:08:46,700 --> 00:08:49,500 225 00:08:49,500 --> 00:08:51,331 Pat izvēlnes parādās lēni. 226 00:08:51,331 --> 00:08:51,830 Viss kārtībā. 227 00:08:51,830 --> 00:08:54,270 Tātad, mēs atgriezīsimies pie ka pirms ilgi. 228 00:08:54,270 --> 00:08:56,320 Tā ir laba LAIKU_ nopelt to, kucēni. 229 00:08:56,320 --> 00:08:58,280 >> Tas ir labs laiks, lai dažiem paziņojumiem. 230 00:08:58,280 --> 00:09:01,225 Tātad, ja jūs vēlētos iesaistīties YHack, 231 00:09:01,225 --> 00:09:03,600 kas ir notikums tiek sponsorēja mūsu draugiem pie Yale. 232 00:09:03,600 --> 00:09:05,990 Un, protams, daži protams s TFS at Yale ir saistītas ar šo. 233 00:09:05,990 --> 00:09:08,610 YHack ir starptautiska kapāt-a-thon vadīs un tur 234 00:09:08,610 --> 00:09:12,395 at Yale, apvienojot 1500 līdzīgi domājošiem hakeriem un radošās visu 235 00:09:12,395 --> 00:09:13,120 visā pasaulē. 236 00:09:13,120 --> 00:09:14,610 Ja šis ir interese, apskatīt šeit. 237 00:09:14,610 --> 00:09:17,401 Ja tas ir pārāk īsi par ekrāns, ieskatieties šodienas slaidiem 238 00:09:17,401 --> 00:09:19,622 par URL yhack.org. 239 00:09:19,622 --> 00:09:21,080 Tātad, arī daži ātri paziņojumi. 240 00:09:21,080 --> 00:09:24,410 Tātad, oficiāli sekcijas sāks nākamnedēļ gan šeit, gan New Haven. 241 00:09:24,410 --> 00:09:27,660 Paturiet prātā, jums tiks iegūt e-pasts vēlāk šajā nedēļas nogalē, visticamāk. 242 00:09:27,660 --> 00:09:29,390 Tas aizņem ilgu laiku par CS50 nodaļu, 243 00:09:29,390 --> 00:09:32,080 Ņemot vērā visas cilvēkus klases un visi pārvietojas. 244 00:09:32,080 --> 00:09:34,871 Un visi Mācību Fellows " grafiki ir arī joprojām solidifying, 245 00:09:34,871 --> 00:09:38,110 bet sekojiet līdzi e-pastu, un, ja nepieciešams, ir, jūs varat atkārtoti sadaļu tur pēc. 246 00:09:38,110 --> 00:09:39,580 >> Study.cs50.net. 247 00:09:39,580 --> 00:09:43,280 Tātad, pat ja jums ir pastāvīgs dalībnieks pie sadaļām, saprotam, ka gandrīz visi 248 00:09:43,280 --> 00:09:46,786 no līdzekļiem, mēs izmantojam sadaļās ir publiski pieejami CS50 249 00:09:46,786 --> 00:09:48,460 Studēt šo URL šeit. 250 00:09:48,460 --> 00:09:51,630 Tātad, ja jūs kādreiz vēlētos vēlreiz atsauksmi materiāls no sadaļas, vai lasīt priekšā, 251 00:09:51,630 --> 00:09:54,170 vai jūs nevarat veikt to dažas nedēļas, saprast, ka izlases slaidi, 252 00:09:54,170 --> 00:09:58,210 un problēmas, un definīcijas, un vēl visi tur kā labi. 253 00:09:58,210 --> 00:10:00,645 >> Darba laiks atsākt šodien, un rīt, un trešdien, 254 00:10:00,645 --> 00:10:03,020 un ceturtdien pārbaudīt kurss ir mājaslapa grafiku. 255 00:10:03,020 --> 00:10:05,690 >> Un arī tagad uzsākot šodien ir CS50 Apspriest. 256 00:10:05,690 --> 00:10:09,230 Tātad, ja un kad jums ir jautājumi par otru vai par kursu personālam, 257 00:10:09,230 --> 00:10:12,099 un parasti strādā par kādu problēmu kopumu, 258 00:10:12,099 --> 00:10:15,015 saprotam, ka jums nav obligāti ir vērsties pie cilvēka nākamo jums. 259 00:10:15,015 --> 00:10:17,810 Ja tur neviens tur, jūs varat aizsniegt mums un klasesbiedriem 260 00:10:17,810 --> 00:10:19,890 tiešsaistē, izmantojot CS50 Apspriest. 261 00:10:19,890 --> 00:10:22,600 Tātad, šī ir diskusija valde par kursu, 262 00:10:22,600 --> 00:10:24,550 un saprast, ka šis ir iespējams, vislabāk 263 00:10:24,550 --> 00:10:28,480 vieta, kur sākt, ja esat Jautājumi, kad ārpus darba laika 264 00:10:28,480 --> 00:10:29,470 IT īpaši. 265 00:10:29,470 --> 00:10:31,070 >> Pakas sāks up šonedēļ too. 266 00:10:31,070 --> 00:10:33,170 Pēc uguns un ledus [Dzirdams] New Haven. 267 00:10:33,170 --> 00:10:35,379 Veikt apskatīt kurss ir mājas lapā, lai RSVP. 268 00:10:35,379 --> 00:10:36,753 Pirmais brauc, pirmais kalpot par to. 269 00:10:36,753 --> 00:10:39,380 Ja jūs nesaņemat šajā nedēļā mēs darīsim tie visvairāk katru piektdienu 270 00:10:39,380 --> 00:10:40,400 termiņa laikā. 271 00:10:40,400 --> 00:10:41,830 >> OK, un tagad vārds par šķirošanu. 272 00:10:41,830 --> 00:10:44,690 Īpaši, kad mēs ieiesim problēma noteikts viens, kas ir ārpus šī nedēļa, 273 00:10:44,690 --> 00:10:46,670 un problēma noteikti divi un pēc tam. 274 00:10:46,670 --> 00:10:51,680 Kā mēs iet par P komplekti izvērtējot un novērtējot to kvalitāti? 275 00:10:51,680 --> 00:10:55,560 Tātad, tas ir četras asis, ko mēs izmantojam CS50, un viņi šos četrus šeit. 276 00:10:55,560 --> 00:10:59,200 >> Darbības joma, kas atspoguļo uz ciparu pamatojums, cik daudz no P komplekta 277 00:10:59,200 --> 00:10:59,860 jūs risināt. 278 00:10:59,860 --> 00:11:02,890 Tas ir aptuveni atbilst pūles, un tas ir mūsu veids, kā saglabāt 279 00:11:02,890 --> 00:11:05,190 Jūs mēģināt puse P noteikts, visi no P komplekta. 280 00:11:05,190 --> 00:11:08,860 Tas ir viegli viens iegūt perfektu rādītāji, ja jūs darāt, patiešām, 281 00:11:08,860 --> 00:11:11,020 izmēģināt katru no P komplekta aspektu. 282 00:11:11,020 --> 00:11:12,010 Tātad, paturiet to prātā. 283 00:11:12,010 --> 00:11:13,420 >> Pareizība ir tieši tā. 284 00:11:13,420 --> 00:11:17,760 Vai jūsu kods darbojas kā specifikācijai un kā personāls "parauga šķīduma 285 00:11:17,760 --> 00:11:19,730 liek domāt, ka jūsu kods būtu faktiski strādā. 286 00:11:19,730 --> 00:11:23,260 Pārbaudiet 50, ja jums nav tikušies to tomēr, ir P noteikt vienu specifikācija 287 00:11:23,260 --> 00:11:25,060 un parasti dot jums ir / nav atbildes 288 00:11:25,060 --> 00:11:26,518 par to, vai jūsu kods ir pareizs. 289 00:11:26,518 --> 00:11:30,680 Vismaz tiktāl, cik mēs ejam novērtēt to, pamatojoties uz testiem 290 00:11:30,680 --> 00:11:32,430 ka mēs palaist šo programmu ietvaros. 291 00:11:32,430 --> 00:11:33,850 >> Dizains ir daudz subjektīva. 292 00:11:33,850 --> 00:11:35,994 Tas ir, cik labi uzrakstīts ir jūsu kods. 293 00:11:35,994 --> 00:11:38,410 Un tas ir kaut kas jūs saņemsiet labāk laika gaitā, 294 00:11:38,410 --> 00:11:41,201 un tas ir kaut kas, mēs sniegt vairāk kvalitatīvu atgriezenisko saiti par. 295 00:11:41,201 --> 00:11:43,350 Un dizains es varētu nozīmēt pirms ilgi jūs 296 00:11:43,350 --> 00:11:47,650 varētu būt kārdinājums kādā P noteikti kaut ko darīt loopingly, 297 00:11:47,650 --> 00:11:51,590 bet ir varbūt trīs vai četri, vai pieci ligzdotu priekšējās cilpas vai ligzdotu kamēr 298 00:11:51,590 --> 00:11:52,090 cilpas. 299 00:11:52,090 --> 00:11:54,130 Tas parasti vajadzētu sākt veikt jums verdziskums 300 00:11:54,130 --> 00:11:56,070 un kopumā būtu uzskatīts par sliktu dizainu. 301 00:11:56,070 --> 00:11:59,490 Un jūs sākat redzēt klasē un no klases labas veidus, kā darīt lietas, 302 00:11:59,490 --> 00:12:02,920 slikti veidus, kā darīt lietas, kas varētu visi būt pareizs, bet ne 303 00:12:02,920 --> 00:12:04,304 vienmēr ir labi izstrādāta. 304 00:12:04,304 --> 00:12:05,220 Tāpat rakstot eseju. 305 00:12:05,220 --> 00:12:08,100 Jūs varētu likt vārdus lapa, kas ir gramatiski pareizs, 306 00:12:08,100 --> 00:12:10,016 bet eseja vai Darbā viņi ir, ir tikai 307 00:12:10,016 --> 00:12:11,810 pilnīgi nesakarīgi vai unpersuasive. 308 00:12:11,810 --> 00:12:15,930 Un tā, ka var būt analog In rakstisks pasaule sliktu vai labu dizainu. 309 00:12:15,930 --> 00:12:18,490 >> Un stils, arī ir diezgan subjektīva. 310 00:12:18,490 --> 00:12:20,060 Bet vismaz mēs sagaidām konsekvenci. 311 00:12:20,060 --> 00:12:21,480 Tas ir kā diezgan ir jūsu kods. 312 00:12:21,480 --> 00:12:22,840 Ir lietas, labi atkāpi? 313 00:12:22,840 --> 00:12:26,600 Vai jūsu mainīgie labi nosaukts / Vai visi Sava iekavās un cirtaini lencēm 314 00:12:26,600 --> 00:12:27,920 jāsaskaņo, jo tie būtu? 315 00:12:27,920 --> 00:12:31,490 Mums patiešām ir CS50 stila ceļvedis, kā problēma komplekts būs punkts jums. 316 00:12:31,490 --> 00:12:33,730 Tie, ērtāk ir laipni nomaldījies no ka 317 00:12:33,730 --> 00:12:35,771 tik ilgi, cik jūs esat sevi konsekventi. 318 00:12:35,771 --> 00:12:38,020 Un tas arī ir mācība mēs pastiprināt sadaļā. 319 00:12:38,020 --> 00:12:40,990 Tātad, ja tas viss bija nedaudz ātrs, realizēt P kopa un sekcijas 320 00:12:40,990 --> 00:12:42,900 stāsies padziļināti pirms ilgi. 321 00:12:42,900 --> 00:12:45,490 >> Bet vispār mums ir ļoti maz kausu CS50. 322 00:12:45,490 --> 00:12:48,170 Rādītājus parasti atzīmi no viena līdz trim, vai viena līdz pieciem. 323 00:12:48,170 --> 00:12:50,836 Mēs esam literally--, un es nevaru teikt Tas ir pietiekami pirmajā nedēļā. 324 00:12:50,836 --> 00:12:51,582 Trīs ir labs. 325 00:12:51,582 --> 00:12:54,290 Tātad, pat ja, jā, trīs no pieci normāli, matemātiski, 326 00:12:54,290 --> 00:12:57,240 varētu būt 60 procenti vai kā D mīnusu. 327 00:12:57,240 --> 00:12:58,840 Trīs ir, faktiski, labi. 328 00:12:58,840 --> 00:13:01,050 Un, patiesībā, mēs sagaidām lielākā daļa studentu klasē 329 00:13:01,050 --> 00:13:04,280 lai sāktu terminu apkārt twos, un trijiem, un četrrāpus. 330 00:13:04,280 --> 00:13:05,510 Droši vien ne tik daudz Fives. 331 00:13:05,510 --> 00:13:06,661 Ne pārāk daudz ones. 332 00:13:06,661 --> 00:13:08,910 Bet vispār sākt ka sweet spot in līknes 333 00:13:08,910 --> 00:13:11,694 tā ka laika gaitā, tur tiešām telpa, 334 00:13:11,694 --> 00:13:13,360 un iespējas augšējo progresēšanu. 335 00:13:13,360 --> 00:13:15,810 Tātad, lūdzu, nav pielīdzināmi trīs ar 60%. 336 00:13:15,810 --> 00:13:17,410 Tas ir daudz vairāk abstrakts, nekā. 337 00:13:17,410 --> 00:13:20,160 Formula, ar kuru mēs aprēķinām pakāpes tiek vērtē šādi. 338 00:13:20,160 --> 00:13:21,610 Pareizība ir vērts visvairāk. 339 00:13:21,610 --> 00:13:23,010 Dizains ir vērts nedaudz mazāk. 340 00:13:23,010 --> 00:13:24,490 Stils ir vērts nedaudz mazāk. 341 00:13:24,490 --> 00:13:26,950 Un tas parasti uztver laiku 342 00:13:26,950 --> 00:13:29,800 kas tērēta kļūst katrs Šo asīm tikai labi. 343 00:13:29,800 --> 00:13:31,810 Stils ir super viegli, jābūt super ātri, 344 00:13:31,810 --> 00:13:33,657 bet tas ir viegli ieradums saņemt slinks par. 345 00:13:33,657 --> 00:13:35,490 Pareizība varētu veikt jūs lielāko daļu laika. 346 00:13:35,490 --> 00:13:38,990 Pakaļdzīšanās nosaka dažas bug varenību pieņemt, ka papildu stundu vai vairāk, 347 00:13:38,990 --> 00:13:41,737 un tā, vērtēšanas galu galā uztver to. 348 00:13:41,737 --> 00:13:43,070 Un tā, tagad daudz nopietnu vārdu. 349 00:13:43,070 --> 00:13:45,240 Tā CS50 ir tāda atšķirība, jo labāk 350 00:13:45,240 --> 00:13:47,440 vai sliktāk, būt varbūt labāk iepazītos 351 00:13:47,440 --> 00:13:50,065 ar jautājumiem par akadēmisko godīgums nekā lielākā daļa jebkuru citu kursu. 352 00:13:50,065 --> 00:13:53,720 Un tiešām, tas ir man zināms, ka mēs sūtīt vairāk studentu, diemžēl, 353 00:13:53,720 --> 00:13:56,690 disciplinārā nolūkā katru gadu, kā rezultātā. Tātad, 354 00:13:56,690 --> 00:13:59,040 interesēs pilna atklāšana, pieņemsim runāt īsi 355 00:13:59,040 --> 00:14:02,820 par to, kas notiek CS50, un tas, ko jūs var darīt, un ko jūs varat būt uzmanīgiem. 356 00:14:02,820 --> 00:14:05,530 >> Tātad, šeit kopš 2007. gada, kad Es mantojis kursu, 357 00:14:05,530 --> 00:14:07,870 ir vairāki Ad valdes gadījumiem. 358 00:14:07,870 --> 00:14:10,690 Ad Board ir Hārvarda ir disciplinārs ķermenis, vai tagad Honor Counsel, 359 00:14:10,690 --> 00:14:13,790 uz kuru tiek minētas gadījumi, kad skolēni kaut ko darīt, ka kurss ir 360 00:14:13,790 --> 00:14:15,470 programma uzskata par nepamatotu. 361 00:14:15,470 --> 00:14:17,220 Nav īsta modelis šeit, es teiktu. 362 00:14:17,220 --> 00:14:19,530 Tā svārstās pār gadiem, bet parasti 363 00:14:19,530 --> 00:14:22,262 tas ir skaitlis no gadījumi, kas ir minēti. 364 00:14:22,262 --> 00:14:23,970 Studējošo skaits kas ir iesaistīti? 365 00:14:23,970 --> 00:14:25,290 Tas arī ir atšķirīga. 366 00:14:25,290 --> 00:14:27,930 Raksturīgi, ka pagājušajā gadā Piemēram, 29 studenti Harvard 367 00:14:27,930 --> 00:14:29,740 bija Ad iekāpuši, lai runāt. 368 00:14:29,740 --> 00:14:32,670 29 no tiem pašreizējiem studentiem, Divi no tiem iepriekšējiem studentiem, 369 00:14:32,670 --> 00:14:35,610 kurš tika sadarbojas kaut kādā veidā nelabvēlīgs. 370 00:14:35,610 --> 00:14:38,400 Un pēc tam, pēc darbības procents, tas parasti ir apmēram 3% 371 00:14:38,400 --> 00:14:41,360 no klases, kas, diemžēl, padara šos lēmumus veidus. 372 00:14:41,360 --> 00:14:44,470 >> Tātad, pagājušajā gadā tas bija 3,5% no CS50 ir studentu organizācijas 373 00:14:44,470 --> 00:14:46,820 tas bija Ad aizturētajam, lai runāt. 374 00:14:46,820 --> 00:14:48,490 >> Tātad, ko tas viss nozīmē? 375 00:14:48,490 --> 00:14:49,660 Un ko mēs faktiski darīt? 376 00:14:49,660 --> 00:14:52,930 >> Tātad, par pilnīgu atklātību, mēs pilnīgi, kā datorzinātnieku, 377 00:14:52,930 --> 00:14:57,620 ir programmatūras rīkus mūsu rīcībā un tas ir ļoti viegli, lai mēs, taisnīgumu, 378 00:14:57,620 --> 00:15:00,980 ka citi klasesbiedri, kuri nav šķērsojot šo līniju šķērsot salīdzinātu 379 00:15:00,980 --> 00:15:04,570 katru iesniegšana šogad pret katru iesniegums par pēdējo astoņu gadu laikā. 380 00:15:04,570 --> 00:15:05,445 Software dara. 381 00:15:05,445 --> 00:15:07,440 Un galu galā tas ir cilvēka acīm, kas nolemj 382 00:15:07,440 --> 00:15:11,410 vai nodot vai nenodot kādu jautājums tālākai iztiesāšanai, 383 00:15:11,410 --> 00:15:12,737 bet programmatūra noteikti palīdz. 384 00:15:12,737 --> 00:15:15,820 Un tas, atklāti sakot, ir iemesls, kāpēc, ka es domāju, ka mums ir tik lielā skaitā CS50. 385 00:15:15,820 --> 00:15:18,540 Tas nav tāpēc, ka CS50 studenti vai CS studenti vairāk 386 00:15:18,540 --> 00:15:20,840 parasti ir kāds mazāk godīgi nekā jebkuriem citiem studentiem, 387 00:15:20,840 --> 00:15:22,340 tas ir tikai mums ir instrumenti un metodes 388 00:15:22,340 --> 00:15:24,095 ar kuriem veikt šo pirmo piespēli. 389 00:15:24,095 --> 00:15:25,960 >> Bet mēs paturēt acīs par visas šīs lietas 390 00:15:25,960 --> 00:15:30,340 kā arī, atkal, jo intereses atzīstot darbu, kas ir tiek likts 391 00:15:30,340 --> 00:15:32,397 in ar super vairākumu klasē. 392 00:15:32,397 --> 00:15:34,230 Un protams politika par akadēmisko godīgumu, 393 00:15:34,230 --> 00:15:37,021 pat ja tas ir ķekars punktā ilgi ar ķekars lodes 394 00:15:37,021 --> 00:15:40,490 ka ir cerams diezgan lasāma, tā tiešām vārīties uz leju, lai būtu pamatoti. 395 00:15:40,490 --> 00:15:44,000 Un labākais noteikums īkšķis, ka mēs piedāvājam ietvaros mācību programmas 396 00:15:44,000 --> 00:15:46,020 ir tas, būtība visu darbu, kas jums 397 00:15:46,020 --> 00:15:47,850 iesniedz šo kursu, ir jābūt savu. 398 00:15:47,850 --> 00:15:51,510 Un tiešām, jo ​​gandrīz visi no tiem minētajos gadījumos par disciplināratbildības 399 00:15:51,510 --> 00:15:55,640 tas bija tāpēc, ka daži studentu vēlu nakts parasti kļuva viņa vai viņas kodu 400 00:15:55,640 --> 00:15:58,130 vairāk tieši uz klasesbiedrene, kurš tad to pieņēma 401 00:15:58,130 --> 00:16:00,840 pilnībā vai būtiski to. 402 00:16:00,840 --> 00:16:02,680 >> Bet tiešām, tas ir OK. 403 00:16:02,680 --> 00:16:04,684 Un tiešām, birojā stundām lapiņām 404 00:16:04,684 --> 00:16:07,850 jums ir nodota, ja jūs nāca birojs stundas pagājušajā nedēļā rosina tik daudz. 405 00:16:07,850 --> 00:16:09,710 Jūs esat absolūti apsveica un mudināja 406 00:16:09,710 --> 00:16:12,340 apspriest problēmu kopas ar klasesbiedriem. 407 00:16:12,340 --> 00:16:14,461 Lai palīdzētu viens otram, kad klupšanas. 408 00:16:14,461 --> 00:16:17,710 Bet parasti īkšķis būtu būt tas, "kad jūs lūdz palīdzību, 409 00:16:17,710 --> 00:16:20,412 jūs varat parādīt savu kodu, lai citiem, bet jūs nevar apskatīt savējo. " 410 00:16:20,412 --> 00:16:22,620 Tātad, citiem vārdiem sakot, ja es esmu cīnās ar kādu P komplektu 411 00:16:22,620 --> 00:16:25,290 un es esmu sēžot tur ēdamzālē, vai bibliotēkā, 412 00:16:25,290 --> 00:16:28,470 vai klasē mēģinot atrast kādu vainu, 413 00:16:28,470 --> 00:16:30,340 Es, protams, var parādīt mans kods uz mana ekrāna 414 00:16:30,340 --> 00:16:32,590 lai persona sēž blakus man, protams, darbinieki, 415 00:16:32,590 --> 00:16:33,600 bet arī klasesbiedrs. 416 00:16:33,600 --> 00:16:36,580 Bet, ja risinājums, kas mans klases biedrs piedāvā ir, ak, 417 00:16:36,580 --> 00:16:39,200 šeit tikai to apskatīt to, ko Es tā, kas šķērso robežu. 418 00:16:39,200 --> 00:16:43,120 >> Un es vēlētos uzdrošinos teikt, ka ir vispār saprātīgs lieta vairumam cilvēku 419 00:16:43,120 --> 00:16:45,030 ļoti viegli pamanīt līniju. 420 00:16:45,030 --> 00:16:47,195 Un tā, redzēt to mācību programmu lai sīkāk. 421 00:16:47,195 --> 00:16:49,070 Un tagad viens no vairāk pretrunīgi aspekti 422 00:16:49,070 --> 00:16:52,529 no CS50 mācību, ka es domāju, ka varētu runāt ar Nobeigumā šeit 423 00:16:52,529 --> 00:16:53,820 ir tā sauktā nožēlu klauzula. 424 00:16:53,820 --> 00:16:55,340 Tātad, šeit ir viss fine print. 425 00:16:55,340 --> 00:16:58,090 Bet kopumā mēs esam redzējuši pēdējo 8 gadu laikā, kā arī 426 00:16:58,090 --> 00:17:01,510 kas, protams, gandrīz visi no CS50 s gadījumi akadēmisko negodīgumu 427 00:17:01,510 --> 00:17:04,390 ir rezultāts tikai slikts lēmumu pieņemšanas vēlu naktī. 428 00:17:04,390 --> 00:17:07,144 No stresa, rezultāts rezultāts trūkuma ēšanas, miega trūkums, 429 00:17:07,144 --> 00:17:09,560 pārāk daudz P komplekti, pārāk daudz termiņi, pārāk daudz saistības. 430 00:17:09,560 --> 00:17:13,520 Stress veidojot ar 2:00, 3:00 AM, 04:00, ar termiņu draudošo. 431 00:17:13,520 --> 00:17:17,020 Lielākā daļa studentu šajos gadījumos tikko veikts slikti lēmumi 432 00:17:17,020 --> 00:17:20,619 ka viņi varētu ļoti labi žēl Nākamajā rītā, ja ne minūtes vēlāk, 433 00:17:20,619 --> 00:17:25,490 bet līdz pagājušā gada nebija izlaišanas vārsts, ka šie skolēni varētu 434 00:17:25,490 --> 00:17:29,140 faktiski atvērt faktiski risināt Problēma galvu bez baidoties, ka 435 00:17:29,140 --> 00:17:30,850 booted no koledžas vispār. 436 00:17:30,850 --> 00:17:33,260 >> Un, protams, mēs iepazīstinājām šis nožēlu klauzula pagājušajā gadā, 437 00:17:33,260 --> 00:17:35,970 kurā teikts, ka, ja laikā 72 stundas, trīs dienas, 438 00:17:35,970 --> 00:17:37,970 šķērso dažas līnijas noteikts mācību programmu 439 00:17:37,970 --> 00:17:41,178 jūs nākt klajā ar vienu no kursa s galvas un mēs patērzēt par to. 440 00:17:41,178 --> 00:17:43,720 Ir vēl daži iznākums, pretēji tam, ko ir 441 00:17:43,720 --> 00:17:44,990 Ziņots par pretējo. 442 00:17:44,990 --> 00:17:49,190 Ir vēl daži rezultāts, kas ir ierosināt, ko, protams, 443 00:17:49,190 --> 00:17:51,611 parasti reducēšana līdz nullei P komplektu vai veikt kādu citu darbību, 444 00:17:51,611 --> 00:17:53,610 bet mēs, protams, rīkoties ar to sevi un nav 445 00:17:53,610 --> 00:17:58,460 atsaukties tas augstāks bija rezultāts varētu būt daudz smagākas. 446 00:17:58,460 --> 00:18:01,810 Un, protams, lai dalītos, kas notika pagājušajā gadā, astoņu gadu laikā, un tagad 447 00:18:01,810 --> 00:18:04,950 deviņus gadus, mācīšanas šo kursu un pēc tinkering ar dažādām pogām, 448 00:18:04,950 --> 00:18:07,866 pagrieziena dažādus ciparnīcas Pēdējo vairākus gadus par akadēmisko godīgumu, 449 00:18:07,866 --> 00:18:11,920 un redzēt vienu datiem bez redzama ietekme, pat runas, piemēram, tas, 450 00:18:11,920 --> 00:18:15,490 tas bija roku paredz vislabāko lieta mēs esam ieviesuši pedagoģiski 451 00:18:15,490 --> 00:18:18,090 Astoņos gados kopā šīs līnijas CS50. 452 00:18:18,090 --> 00:18:21,010 >> 19 skolēni nāca klajā saskaņā ar pagājušā gada šo klauzulu. 453 00:18:21,010 --> 00:18:23,389 Mēs neveica nekādas darbības, lai septiņi no tiem studentiem, 454 00:18:23,389 --> 00:18:25,430 nosakot, ka tie bija nevajadzīgi uztrauc. 455 00:18:25,430 --> 00:18:27,304 Viņiem nebija, patiesībā, šķērsoja līniju, bet tas 456 00:18:27,304 --> 00:18:28,960 bija labs tērzēšana ir tomēr. 457 00:18:28,960 --> 00:18:31,190 Mēs nulli 11. punktu skaitu kas tika iesniegti. 458 00:18:31,190 --> 00:18:33,840 Un vienā gadījumā mēs lūdzām students darīt problēmu iestatītu. 459 00:18:33,840 --> 00:18:36,370 Bet vēl pārliecinoši, godīgi, ar šiem 19 tērzēšanu, 460 00:18:36,370 --> 00:18:39,020 kas bija daudz vairāk nekā es sagaidāms, ka, katrs no tiem 461 00:18:39,020 --> 00:18:41,370 10 minūtes līdz varbūt stundu garš, arī cēla 462 00:18:41,370 --> 00:18:44,920 iedegt vairākus jautājumus attiecībā ģimenisko jautājumi, draugs jautājumi, 463 00:18:44,920 --> 00:18:46,940 garīgās veselības jautājumi ka mēs tad nodarbojas, 464 00:18:46,940 --> 00:18:50,200 ar studenta svētību, rezidents dekāns, vai draugi, vai jebkuru citu numuru 465 00:18:50,200 --> 00:18:51,450 no atbalsta resursiem. 466 00:18:51,450 --> 00:18:54,454 Tā, ka tas bija līdz šim viens no labākajiem lietojumu mūsu laika 467 00:18:54,454 --> 00:18:55,870 un viens no labākajiem iejaukšanās. 468 00:18:55,870 --> 00:18:58,870 >> Ar to teica, tas nebija ieeja par likmi atklāšanas 469 00:18:58,870 --> 00:19:00,909 Akadēmiskā negodīgums kopumā. 470 00:19:00,909 --> 00:19:02,950 Un es uzdrošinos teikt, šo apakšgrupu Studentu pērn 471 00:19:02,950 --> 00:19:06,350 bija demogrāfisko ka mēs iepriekš nekad identificēti pirms 472 00:19:06,350 --> 00:19:08,140 un nekad nav bijis saistīts ar agrāk. 473 00:19:08,140 --> 00:19:10,020 Un tā, tie bija brīnišķīgi veiksmes stāsti 474 00:19:10,020 --> 00:19:13,390 pat ja tie tika celta gaismā mazāk nekā optimālos apstākļos. 475 00:19:13,390 --> 00:19:15,640 Tātad, paturēt to prātā kā jūs veicat, iespējams, 476 00:19:15,640 --> 00:19:17,390 daži slikts lēmums yourself vēlu naktī, 477 00:19:17,390 --> 00:19:20,151 ka tur ir izmantot tik ilgi kā students šajā situācijā 478 00:19:20,151 --> 00:19:23,400 pieder up un nākt klajā, lai mēs varētu ir šāda veida tērzēšana un rīkoties ar to 479 00:19:23,400 --> 00:19:27,310 tādā veidā, kas ir izglītības, un pēc tam mēs varam nodot to aiz mums nākamajā dienā. 480 00:19:27,310 --> 00:19:30,335 >> Tātad bez papildu ADO, veikt malu pie šīs sarunas, 481 00:19:30,335 --> 00:19:35,080 iemesls kucēni ir up ir tikai, lai lauztu ledu uz brīdi. 482 00:19:35,080 --> 00:19:39,560 Un diemžēl, viņi visi gulēt, bet to, kas bija paredzēts notikt šeit 483 00:19:39,560 --> 00:19:41,760 bija visi bija paredzēts ar bijību un veida atpūsties 484 00:19:41,760 --> 00:19:43,910 pēc šī ļoti smagā saruna. 485 00:19:43,910 --> 00:19:46,930 Bet acīmredzot man kucēni gulēt. 486 00:19:46,930 --> 00:19:50,070 Bet, ja jums iet uz CS50 s mājas lapa slīpsvītra kucēni, 487 00:19:50,070 --> 00:19:51,610 Jūs varat skatīties tos visas dienas garumā. 488 00:19:51,610 --> 00:19:55,280 Īpaši varbūt 02:00, vai 3:00, vai 4:00 naktī 489 00:19:55,280 --> 00:19:57,480 lai redzētu mazliet stresa atvieglojums tur. 490 00:19:57,480 --> 00:19:58,805 Tātad, kas ir slīpsvītra kucēni. 491 00:19:58,805 --> 00:20:01,700 492 00:20:01,700 --> 00:20:02,200 Viss kārtībā. 493 00:20:02,200 --> 00:20:03,020 Nebija tik jautri? 494 00:20:03,020 --> 00:20:04,200 LABI. 495 00:20:04,200 --> 00:20:07,140 Tātad, atpakaļ uz kādu datoru zinātne, ja es drīkstu. 496 00:20:07,140 --> 00:20:10,600 >> Tātad, atgādināt, ka pēdējo reizi mēs sākām meklē ne tikai galvenais, kas 497 00:20:10,600 --> 00:20:13,930 bija noklusējuma funkciju, kad zaļais karogs uzklikšķināt ekvivalents, 498 00:20:13,930 --> 00:20:16,999 bet mēs arī īsi sākām rakstiski daži no mūsu pašu funkciju. 499 00:20:16,999 --> 00:20:20,040 Un līdz šim neviena no šīm funkcijām ir bijuši īpaši liels vai saturīgs. 500 00:20:20,040 --> 00:20:24,570 Jūs saņemsiet uz tiem lielāks funkcijas, iespējams, P, kas 2, P, kas 3, 501 00:20:24,570 --> 00:20:26,410 noteikti P noteikts 4. un tālāk. 502 00:20:26,410 --> 00:20:29,340 Tieši tagad lielākā daļa no jūsu programmas, ja ne visi no tiem, protams, P 503 00:20:29,340 --> 00:20:31,550 komplekts 1 var izdarīt pilnīgi galvenais. 504 00:20:31,550 --> 00:20:33,810 Ja jūsu programma ir tikai piecas līnijas, 10 līnijas, 505 00:20:33,810 --> 00:20:37,070 pat 20 līnijas ilgi, perfekti saprātīgi rakstīt to 506 00:20:37,070 --> 00:20:40,930 viss galvenais un ne vairāk sarežģīt savu kodu, bet tas, ko mēs darām šodien 507 00:20:40,930 --> 00:20:44,360 un tālāk mēģina arī ieviest dažas labas projektēšanas metodes 508 00:20:44,360 --> 00:20:48,660 tā ka jūsu kods kļūst vairāk sarežģīta un kā problēmu 509 00:20:48,660 --> 00:20:51,690 Jūs vēlaties, lai atrisinātu grūtāk un vairāk interesanti jums ir, veida, 510 00:20:51,690 --> 00:20:55,850 rīkus jūsu kompleksa, ar kuru izstrādāt labus risinājumus tiem. 511 00:20:55,850 --> 00:21:01,210 >> Tātad, pieņemsim ātri apskatīt atpakaļ Šī programma no mana pagājušajā nedēļā, kas 512 00:21:01,210 --> 00:21:06,550 bija funkcijas nulle dot C. Un paziņojums, ka, gluži vienkārši, 513 00:21:06,550 --> 00:21:10,310 tas izskatās šādi ar diviem funkcijas, galvenais un drukāt nosaukums. 514 00:21:10,310 --> 00:21:13,160 Un domāšana atpakaļ vai varbūt reverse engineering šodien, 515 00:21:13,160 --> 00:21:16,880 kāda bija motivācija ieviest funkcija rindā 28 sauc, 516 00:21:16,880 --> 00:21:18,180 print nosaukums? 517 00:21:18,180 --> 00:21:21,745 Vai kāds bija šis piemērs in noteikumi princips vai takeaway, 518 00:21:21,745 --> 00:21:22,605 ja jūs būtu. 519 00:21:22,605 --> 00:21:26,560 520 00:21:26,560 --> 00:21:27,300 Daži murmina. 521 00:21:27,300 --> 00:21:28,830 Ko? 522 00:21:28,830 --> 00:21:32,210 >> Yeah tik Funkcionālā Sadalīšanās ir sava veida iedomātā veids, kā pateikt, 523 00:21:32,210 --> 00:21:34,690 sadalīties savu programmu par tā sastāvdaļu 524 00:21:34,690 --> 00:21:37,530 un pēc tam izmantot tās daļas apkopot visu. 525 00:21:37,530 --> 00:21:39,620 Tātad, tas arī ir tikai veida kumoss jau, 526 00:21:39,620 --> 00:21:42,050 bet tas ir iespējams, pat labāks piemērs par kaut ko 527 00:21:42,050 --> 00:21:43,081 vienkārši sauc abstrakcijas. 528 00:21:43,081 --> 00:21:43,580 Tiesības? 529 00:21:43,580 --> 00:21:46,950 Abstrakcija būs viens no periodiskiem tēmām CS50 530 00:21:46,950 --> 00:21:49,085 un arī datorzinātne vispār, jo tas ir 531 00:21:49,085 --> 00:21:53,060 tehnika, ar kuru jūs varat atrisināt problēmas efektīvāk, jo jums 532 00:21:53,060 --> 00:21:56,807 var rakstīt risinājumus vairāk intuitīvi un tādā veidā, ka svari 533 00:21:56,807 --> 00:21:58,390 un ir saprotams, ko citiem cilvēkiem. 534 00:21:58,390 --> 00:21:59,860 Ko es domāju ar šo? 535 00:21:59,860 --> 00:22:04,340 >> Tātad, varbūt tas ir daudz vairāk lasāms apskatīt programmu, piemēram, tas, 536 00:22:04,340 --> 00:22:05,990 super īss, lai gan tas ir. 537 00:22:05,990 --> 00:22:10,050 Kad jūs redzēt uz līnijas 22, kas tur ir funkcija sauc, drukāt nosaukums. 538 00:22:10,050 --> 00:22:12,620 Šis nosaukums vien saka to, ko tā dara. 539 00:22:12,620 --> 00:22:15,780 Šī funkcija acīmredzot notiek input starp tās iekavās, 540 00:22:15,780 --> 00:22:18,600 un acīmredzot kaut ko dara, domājams drukā vārdu. 541 00:22:18,600 --> 00:22:20,880 Un tā, lai gan mēs pilnīgi varētu būt 542 00:22:20,880 --> 00:22:25,280 darījuši to, ko mēs darījām pirms nedēļas, kas bija vienkārši izmantot šo faktisko koda rindu, 543 00:22:25,280 --> 00:22:28,710 atbrīvoties no šīs, kā arī iegūt atbrīvoties no šo visu kopā, 544 00:22:28,710 --> 00:22:31,436 mēs veida paņemts prom jēdziens drukāšanas nosaukumu. 545 00:22:31,436 --> 00:22:33,060 Man vienalga, ja jūs izmantojat drukas Def. 546 00:22:33,060 --> 00:22:35,601 Man vienalga, ja jums ir procenti S un slīpsvītru N. Šie 547 00:22:35,601 --> 00:22:37,270 ir neticami Arcane informācija. 548 00:22:37,270 --> 00:22:40,090 Kas man rūp kā programmētājs drukā vārdu. 549 00:22:40,090 --> 00:22:43,414 Un tā, ko labāks veids, kā to darīt, nekā zvanot funkciju, drukas vārdu? 550 00:22:43,414 --> 00:22:46,330 Un tā, ka bija viens no motivācijas darot kaut kas līdzīgs šim. 551 00:22:46,330 --> 00:22:50,370 Padarīt kods vieglāk lasāmu, vairāk atkārtoti, un arī sevi aprakstošs. 552 00:22:50,370 --> 00:22:52,120 Tagad, pieņemsim to apskatīt citā Piemēram, 553 00:22:52,120 --> 00:22:56,220 kas bija viens funkcijas, kas mums bija vairāk nekā šeit. 554 00:22:56,220 --> 00:23:00,367 >> Tātad, šī ir varbūt pat vairāk piespiest jo, šajā gadījumā, 555 00:23:00,367 --> 00:23:01,700 Es nevēlos, lai tikai iegūtu int. 556 00:23:01,700 --> 00:23:03,320 Es vēlos saņemt pozitīvu int. 557 00:23:03,320 --> 00:23:06,470 Un izrādās, lai saņemtu pozitīvu int, kas Jums jādara ķekars legwork. 558 00:23:06,470 --> 00:23:06,969 Tiesības? 559 00:23:06,969 --> 00:23:09,600 Tas nav vienkāršs līnija zvanīt tāpat print vārds bija, 560 00:23:09,600 --> 00:23:11,480 kas ir, protams, mazāk pārliecinoši. 561 00:23:11,480 --> 00:23:16,000 >> Lai iegūtu pozitīvu int, logically-- ļaujiet man ritiniet atpakaļ uz leju, lai slēptu to. 562 00:23:16,000 --> 00:23:18,887 Kas jums ir jādara? 563 00:23:18,887 --> 00:23:20,720 Tāpat kā visiem instrumentiem mēs ir šobrīd tiek 564 00:23:20,720 --> 00:23:24,440 lietas, piemēram, drukas DEF no standarta Bibliotēka un arī no CS50 bibliotēkā 565 00:23:24,440 --> 00:23:26,990 mums ir Get Int, un Get peldēt, Get Long Long, Get String, 566 00:23:26,990 --> 00:23:29,260 bet vienīgais, Germane, tieši tagad, ir iegūt Int. 567 00:23:29,260 --> 00:23:32,970 Tātad, ja vienīgais līdzeklis, jums ir Jūsu instrumentu kaste, ir iegūt Int, 568 00:23:32,970 --> 00:23:35,505 kā mēs iet par īstenojot tā, lai iegūtu pozitīvu int? 569 00:23:35,505 --> 00:23:35,929 >> Mērķauditorija: Izveidot žurnālu un pārbaudiet par to, vai ieejas ka tie deva 570 00:23:35,929 --> 00:23:36,762 bija pozitīvs vai nav. 571 00:23:36,762 --> 00:23:39,390 572 00:23:39,390 --> 00:23:40,640 >> SPEAKER 1: Perfect. 573 00:23:40,640 --> 00:23:41,200 Tieši tā. 574 00:23:41,200 --> 00:23:43,950 Vēl viens instruments, kas mums ir mūsu toolbox no nedēļas vai divām atpakaļ 575 00:23:43,950 --> 00:23:45,419 ir tikai looping būvēt. 576 00:23:45,419 --> 00:23:48,210 Un tā, jā, ja mēs izmantojam laiku cilpa, vai darīt, kamēr cilpa, vai priekšgalā 577 00:23:48,210 --> 00:23:50,850 cilpa mēs droši vien varētu aizmukt ar kādu no tiem, kas kaut kādā veidā. 578 00:23:50,850 --> 00:23:55,140 Mēs varam ieviest jēdzienu get pozitīvs int, tikai izmantojot Saņemt Int, 579 00:23:55,140 --> 00:23:57,830 un tad tikai glabāt aicinot to atkal un saglabāt pestering lietotāju 580 00:23:57,830 --> 00:24:00,320 kamēr viņš vai viņa patiešām dod mums to, ko mēs gribam. 581 00:24:00,320 --> 00:24:03,260 >> Un tāpēc tagad, šo abstrakcija procesa 582 00:24:03,260 --> 00:24:05,680 iegūt pozitīvu int par funkciju sauc 583 00:24:05,680 --> 00:24:08,930 Saņemt Pozitīvs Int ir nedaudz vairāk pārliecinoši jo apskatīt šo. 584 00:24:08,930 --> 00:24:10,990 Tie ir, piemēram, 10 plus rindiņas kodu, kas 585 00:24:10,990 --> 00:24:15,090 ir iesaistīti iegūt pozitīvu int, un man nav īsti aprūpi, kā jūs to darīt. 586 00:24:15,090 --> 00:24:17,850 Viss, ko es vienalga ir tas, ka jums var darīt, un tāpēc es esmu 587 00:24:17,850 --> 00:24:21,660 slēptās visi šie dati aiz funkcija sauc Get Pozitīvi int ka, 588 00:24:21,660 --> 00:24:23,430 Patiešām, ir šī darīt, kamēr cilpa. 589 00:24:23,430 --> 00:24:27,660 >> Un redzēt pagājušajā nedēļā sintaksi tur, bet tas tikai apliecina, N, 590 00:24:27,660 --> 00:24:29,800 un tas drukā out norādījums uz lietotājam. 591 00:24:29,800 --> 00:24:33,330 Tā aicina Get Int, un pēc tam tā pārbauda šis nosacījums atkal, un atkal, 592 00:24:33,330 --> 00:24:35,230 un atkal, līdz lietotājs sadarbojas. 593 00:24:35,230 --> 00:24:38,000 >> Tāpēc tagad, daži vesels saprāts pārbaudes. 594 00:24:38,000 --> 00:24:40,370 Tiem varbūt pazīstami ar dažiem plānošanu, 595 00:24:40,370 --> 00:24:46,410 kāpēc N deklarēta, kāpēc es izveidot N ārpus darīt, kamēr cilpa? 596 00:24:46,410 --> 00:24:50,370 Kāpēc ir tā, on line 29 un ne par, piemēram, 33, piemēram. 597 00:24:50,370 --> 00:24:53,529 >> Mērķauditorija: Jo, kad jūs atzīt to ārā, to veida 598 00:24:53,529 --> 00:24:56,688 par pilnu, jo lielāks scope-- 599 00:24:56,688 --> 00:24:58,146 >> SPEAKER 1: Labi. 600 00:24:58,146 --> 00:24:59,604 >> Mērķauditorija: --and ja jums paziņot, tā iekšpusē cilpas, [nedzirdama] 601 00:24:59,604 --> 00:25:00,979 jo tas nezina par to. 602 00:25:00,979 --> 00:25:02,819 603 00:25:02,819 --> 00:25:03,610 SPEAKER 1: Tieši tā. 604 00:25:03,610 --> 00:25:06,330 Ja es varētu simplify-- tas ir jautājums par darbības jomu. 605 00:25:06,330 --> 00:25:11,530 Un darbības joma attiecas uz konteksta kuru mainīgais pastāv vai ir lietojams. 606 00:25:11,530 --> 00:25:15,050 Un jauki īkšķis šeit ir tas, ka Parasti, kad jūs atzīt vai izveidot 607 00:25:15,050 --> 00:25:21,642 mainīgs jūs varat izmantot tikai to iekšpusē no vistuvāk aptver cirtaini lencēm. 608 00:25:21,642 --> 00:25:22,600 Tātad, ko tas nozīmē? 609 00:25:22,600 --> 00:25:26,551 Ja es, tā vietā, atsaukt šo un iet ar kaut kas jūtas nedaudz vienkāršāka. 610 00:25:26,551 --> 00:25:27,050 Tiesības? 611 00:25:27,050 --> 00:25:29,360 >> Line 32 tikai izskatās tīrāka man tagad. 612 00:25:29,360 --> 00:25:31,500 Es esmu darot abas lietas vienreiz un pēc tam piešķirot 613 00:25:31,500 --> 00:25:33,070 labā roka uz kreisās rokas. 614 00:25:33,070 --> 00:25:35,180 Problēma tagad, pamatojoties uz ka definīcija jomas 615 00:25:35,180 --> 00:25:41,130 ir tā, ka N var izmantot līnijās 31 un 32 iekšpusē šīs cilpas, 616 00:25:41,130 --> 00:25:45,100 bet kur šī definīcija vai to nevar izmantot? 617 00:25:45,100 --> 00:25:45,660 Saskaņā ko? 618 00:25:45,660 --> 00:25:46,160 Jā. 619 00:25:46,160 --> 00:25:47,490 >> Mērķauditorija: 35. 620 00:25:47,490 --> 00:25:49,180 >> SPEAKER 1: 35. 621 00:25:49,180 --> 00:25:50,480 Noteikti ne 35. 622 00:25:50,480 --> 00:25:52,349 Un arī kur citur? 623 00:25:52,349 --> 00:25:52,890 Mērķauditorija: 34. 624 00:25:52,890 --> 00:25:55,040 SPEAKER 1: Pat 34 ir problemātiska, jo tas ir 625 00:25:55,040 --> 00:25:56,450 ārpus cirtaini lencēm. 626 00:25:56,450 --> 00:25:58,200 Un tā patiesībā, pieņemsim redzēt, kas notiek. 627 00:25:58,200 --> 00:25:58,700 Tiesības? 628 00:25:58,700 --> 00:26:00,722 Tas varētu likties nedaudz intuitīva vai nevarētu, 629 00:26:00,722 --> 00:26:02,680 bet pieņemsim redzēt, kas kompilators ir ko teikt, kad 630 00:26:02,680 --> 00:26:04,730 mēs iedziļināties mūsdienu avota direktorijā. 631 00:26:04,730 --> 00:26:08,950 Padarīt funkciju vienu. 632 00:26:08,950 --> 00:26:11,231 Ak, mans Dievs. 633 00:26:11,231 --> 00:26:12,980 Nu, es beidzot pabeigts ka, starp citu. 634 00:26:12,980 --> 00:26:14,030 Viss kārtībā. 635 00:26:14,030 --> 00:26:15,510 Un kāda ir problēma šeit? 636 00:26:15,510 --> 00:26:17,430 Ļoti arcane apskatīt. 637 00:26:17,430 --> 00:26:19,570 Bet šeit ir tas, ko es typed-- veikt funkciju vienu. 638 00:26:19,570 --> 00:26:21,640 Lūk, ko darīt izraisītas, kas ir faktiski 639 00:26:21,640 --> 00:26:23,705 izmantojot kompilators šķindēt ar dažiem no šiem karogiem 640 00:26:23,705 --> 00:26:25,080 ka mēs redzēsim atkal pirms ilgi. 641 00:26:25,080 --> 00:26:26,829 Un atkal, vienmēr izskatās pie pirmās kļūdu, 642 00:26:26,829 --> 00:26:30,540 jo tas var tikai būt kaskādes bezjēdzīgs ietekme uz citām līnijām. 643 00:26:30,540 --> 00:26:34,410 >> Tātad, ko tas nozīmē, ka Problēma ir tā funkciju 1.c 644 00:26:34,410 --> 00:26:36,890 Tas ir uz 32 līniju. 645 00:26:36,890 --> 00:26:39,712 Un tas ir pie kolonnas, vai raksturu, 13. 646 00:26:39,712 --> 00:26:42,670 Tātad, ja jūsu teksta redaktoru, kas var palīdzēs jums noteikt, kur jautājums ir. 647 00:26:42,670 --> 00:26:47,079 Tātad, ja es ritiniet uz augšu, kas ir 32 līnijas? 648 00:26:47,079 --> 00:26:49,120 Tas ir patiešām tas viens kas jau iezīmēts 649 00:26:49,120 --> 00:26:50,607 Tiesības here-- neizmantota mainīgs n. 650 00:26:50,607 --> 00:26:51,440 Bet tas vēl nav izmantotas. 651 00:26:51,440 --> 00:26:52,320 Es esmu, izmantojot to. 652 00:26:52,320 --> 00:26:56,110 Bet kompilators ir sajaukt, jo tas pastāv tikai iekšpusē šo jomu. 653 00:26:56,110 --> 00:26:57,727 Un tāpēc es nevaru izmantot to šeit. 654 00:26:57,727 --> 00:26:58,560 Es nevaru to izmantot šeit. 655 00:26:58,560 --> 00:27:01,320 Un kompilators, tādēļ, nav pat vienalga, ka es cenšos. 656 00:27:01,320 --> 00:27:03,940 Tas, šķiet, ir neizmantota tās faktisko darbības jomu. 657 00:27:03,940 --> 00:27:08,854 >> Tātad, mēs varam paplašināt darot tieši tas, ko mēs sākām with-- int n. 658 00:27:08,854 --> 00:27:11,020 Un, pat ja tas nav izskatās kā elegants, iespējams, 659 00:27:11,020 --> 00:27:15,110 un mēs esam ņemot papildu līnija šeit, tagad tas ir joma visur. 660 00:27:15,110 --> 00:27:15,970 Tātad, pieņemsim, mēģiniet vēlreiz. 661 00:27:15,970 --> 00:27:19,040 Tātad, lai funkciju vienu. 662 00:27:19,040 --> 00:27:19,610 Nice. 663 00:27:19,610 --> 00:27:23,370 Un tagad, ja man, ja es palaistu funkciju viens, pieņemsim arī tā negatīvā 10, 664 00:27:23,370 --> 00:27:27,170 negatīvs 1, 0, 1, un tas patiešām darbojas. 665 00:27:27,170 --> 00:27:28,610 >> Tātad tur ir cits risinājums šeit. 666 00:27:28,610 --> 00:27:29,280 Tu zini ko? 667 00:27:29,280 --> 00:27:31,230 Ko darīt, ja es tiešām esmu cīnās ar šo? 668 00:27:31,230 --> 00:27:33,140 Es nezinu, kur n ir vajadzēja iet. 669 00:27:33,140 --> 00:27:33,723 Tu zini ko? 670 00:27:33,723 --> 00:27:39,220 Es esmu tikai gatavojas nodot to visu veids augšpusē manu failu šeit. 671 00:27:39,220 --> 00:27:42,835 Kas būtu tas darīt, jūs domājat? 672 00:27:42,835 --> 00:27:43,335 Yeah? 673 00:27:43,335 --> 00:27:44,251 >> Mērķauditorija: [nedzirdama]. 674 00:27:44,251 --> 00:27:47,964 675 00:27:47,964 --> 00:27:48,630 SPEAKER 1: Jā. 676 00:27:48,630 --> 00:27:50,560 Tāpēc es esmu padarīja pasaules, lai runāt. 677 00:27:50,560 --> 00:27:54,430 Ja jums ir mainīgais, kas ir ārpus visas jūsu funkcijas, kas ir atļauta, 678 00:27:54,430 --> 00:27:58,780 un kods būtu jāapkopo, un n tagad būs pieejams ne tikai get 679 00:27:58,780 --> 00:28:02,490 pozitīvs int, bet arī main-- kas ir nedaudz satraucoša, jo tur ir 680 00:28:02,490 --> 00:28:04,864 jau ir n ir galvenais, lai vairāk par ka tikai moment-- 681 00:28:04,864 --> 00:28:06,530 bet tas būtu uzskatīts par sliktu dizainu. 682 00:28:06,530 --> 00:28:06,910 Viss kārtībā. 683 00:28:06,910 --> 00:28:08,570 Ja jums ir jāizmanto kaut kas līdzīgs, ak, es ņemšu 684 00:28:08,570 --> 00:28:10,125 vienkārši ielieciet to šeit, jo kodu, šķiet, lai apkopotu 685 00:28:10,125 --> 00:28:12,180 parasti nav labākā prakse. 686 00:28:12,180 --> 00:28:14,590 Drīzāk jūs vēlaties, lai izvēlētos visšaurākā iespējams joma 687 00:28:14,590 --> 00:28:18,720 Jūsu mainīgajiem, kas nozīmētu notiek ar mūsu sākotnējo dizainu, kas 688 00:28:18,720 --> 00:28:19,920 ir tepat. 689 00:28:19,920 --> 00:28:24,400 >> Tagad kā malā, ja jums tomēr ir identiski nosauktā mainīgo šeit, 690 00:28:24,400 --> 00:28:27,750 veids c varētu rīkoties this-- lai gan tas nenotiks pārāk often-- 691 00:28:27,750 --> 00:28:30,150 ir tā, ka tas joprojām ir perfekti labi šeit. 692 00:28:30,150 --> 00:28:35,000 Bet šī definīcija n saskaņā 22 būs ēna globālo vienu. 693 00:28:35,000 --> 00:28:38,190 Tātad tas viens būs jāstrādā galvenais, un pasaules viens 694 00:28:38,190 --> 00:28:41,670 faktiski piemēros, kad tu esi saņemt pozitīvu int bet vairāk par to 695 00:28:41,670 --> 00:28:43,890 citā laikā, bet tikai tiem, ziņkārīgs. 696 00:28:43,890 --> 00:28:45,970 >> Tātad īsumā, mēs noteikt to šeit. 697 00:28:45,970 --> 00:28:49,220 Tagad pieņemsim kaitināt intervālu divus citus Pirms mēs apskatīt vienu pēdējo rindiņu kodu 698 00:28:49,220 --> 00:28:50,170 šajā programmā. 699 00:28:50,170 --> 00:28:52,170 Iegūt pozitīvu int. 700 00:28:52,170 --> 00:28:54,450 No kreisajā pusē tā vārds ir vārds int. 701 00:28:54,450 --> 00:28:56,860 Ko tas iezīmēs jūs domājat? 702 00:28:56,860 --> 00:28:58,900 Līdz šim mēs esam redzējuši galvenokārt par spēkā neesošu. 703 00:28:58,900 --> 00:28:59,400 Yeah? 704 00:28:59,400 --> 00:29:01,810 >> Mērķauditorija: Tas ir par veidu mainīgais, ka jūs esat jautā par. 705 00:29:01,810 --> 00:29:04,550 >> SPEAKER 1: Jā, tas ir par veidu, ļaujiet man nesaka mainīgs, bet vērtības tips 706 00:29:04,550 --> 00:29:05,990 ka es esmu lūdzot atpakaļ. 707 00:29:05,990 --> 00:29:08,070 Un tiešām, tas ir intuitīvs šeit, cerams. 708 00:29:08,070 --> 00:29:08,200 Tiesības? 709 00:29:08,200 --> 00:29:10,250 Ja jūs vēlaties saņemt pozitīvs int, kas tas ir jūs 710 00:29:10,250 --> 00:29:12,920 gribu līdzīgu function-- mūsu brīvprātīgie no pagājušajā nedēļā 711 00:29:12,920 --> 00:29:15,720 atdot jums atpakaļ gabals papīra ar int par to? 712 00:29:15,720 --> 00:29:19,190 Un tāpēc mēs esam norādīts, ka tā sauktais atgriešanās tips šīs funkcijas 713 00:29:19,190 --> 00:29:20,450 ir iegūt pozitīvu int. 714 00:29:20,450 --> 00:29:22,990 Ja mēs negribējām to atgriezties kaut ko, jūs sakāt par spēkā neesošu. 715 00:29:22,990 --> 00:29:25,270 Ja jūs vēlaties, lai atgrieztos string, jūs sakāt virkni. 716 00:29:25,270 --> 00:29:27,310 Ja jūs vēlaties, lai atgrieztos pludiņš, tu saki peldēt. 717 00:29:27,310 --> 00:29:30,440 Bet vienīgais, kas attiecas šeit loģiski, jo es esmu, izmantojot get int, 718 00:29:30,440 --> 00:29:34,130 kaut gan es esmu ierobežojot to pozitīvās vērtības, ir atgriezties int. 719 00:29:34,130 --> 00:29:38,380 >> Tātad pretēji, ko tas nozīmē ka tur ir spēkā neesošu iekavās? 720 00:29:38,380 --> 00:29:40,130 Ko darīt iekavās vispār definēt? 721 00:29:40,130 --> 00:29:40,588 Yeah? 722 00:29:40,588 --> 00:29:42,880 >> Mērķauditorija: Tas nozīmē, ka funkcija ir faktiski nav panākt, lai to. 723 00:29:42,880 --> 00:29:44,650 >> SPEAKER 1: Tas nozīmē, ka funkcija ir faktiski nav iegūt to, ko? 724 00:29:44,650 --> 00:29:45,430 >> Mērķauditorija: ieejas. 725 00:29:45,430 --> 00:29:46,763 >> SPEAKER 1: ieejas, whatsoever. 726 00:29:46,763 --> 00:29:49,870 Tātad tiešām, ja iekavas Šeit norādiet spēkā neesošu, 727 00:29:49,870 --> 00:29:51,650 tas nozīmē tikai to, es negribu nevienu ievadi. 728 00:29:51,650 --> 00:29:53,269 Es galā ar šo problēmu pats. 729 00:29:53,269 --> 00:29:55,810 Un tiešām, jums nav pastāstīt saņemt pozitīvu int neko. 730 00:29:55,810 --> 00:29:59,630 Jūs vienkārši teikt, iegūt pozitīvu int, un ka funkcija nodzisīs un darīt lieta. 731 00:29:59,630 --> 00:30:02,970 >> Bet tur ir bijis maz triks es esmu spēlē šeit šo visu laiku 732 00:30:02,970 --> 00:30:04,970 lai pārliecinātos, ka šo kodu apkopo. 733 00:30:04,970 --> 00:30:09,620 Ievērojiet, ka int-- saņemt pozitīvs int void-- ir uz līnijas 27. 734 00:30:09,620 --> 00:30:14,530 Bet kādu šķietami dīvainu iemeslu dēļ tas ir arī šeit uz 16 līnijas. 735 00:30:14,530 --> 00:30:18,530 Un tikai labu pasākumu es atkārtoju tas tāpēc tas ir pilnīgi identiski. 736 00:30:18,530 --> 00:30:21,640 Un es esmu teica prototips ar maz viena līnija komentārs. 737 00:30:21,640 --> 00:30:28,850 Kas notiks, ja es izdzēst ka, un Tagad atkārto veikt funkcijas 1, ievadiet. 738 00:30:28,850 --> 00:30:29,350 Whoops. 739 00:30:29,350 --> 00:30:32,527 740 00:30:32,527 --> 00:30:33,110 Uzgaidi minūti. 741 00:30:33,110 --> 00:30:34,764 Kur ir mana tab? 742 00:30:34,764 --> 00:30:35,263 Huh? 743 00:30:35,263 --> 00:30:37,969 744 00:30:37,969 --> 00:30:39,620 Stāvēt. 745 00:30:39,620 --> 00:30:41,570 Padarīt funkciju 1. 746 00:30:41,570 --> 00:30:42,150 Tur mēs ejam. 747 00:30:42,150 --> 00:30:42,310 LABI. 748 00:30:42,310 --> 00:30:43,400 Nebija saglabātas to pareizi. 749 00:30:43,400 --> 00:30:45,220 Tātad, es domāju, ka tur ir maz bug šeit, kur es neesmu 750 00:30:45,220 --> 00:30:46,636 redzot cilnes nosaukumu brīdī. 751 00:30:46,636 --> 00:30:47,940 Tātad, kas notiek šeit? 752 00:30:47,940 --> 00:30:52,210 Netieši deklarācija funkcijas saņemt pozitīvu int nav spēkā C99. 753 00:30:52,210 --> 00:30:53,940 Tik mulsinoši vēlreiz. 754 00:30:53,940 --> 00:30:55,200 Tātad, kas ir tas liecina par? 755 00:30:55,200 --> 00:30:57,287 Nu, izrādās, ka C ir diezgan stulba. 756 00:30:57,287 --> 00:30:59,912 Nu, tas ir programmēšana valoda, vai drīzāk kompilators ir. 757 00:30:59,912 --> 00:31:02,940 Tas tikai zina, kas jums ir māca to, un tas ir tikai 758 00:31:02,940 --> 00:31:05,640 gatavojas zināt kaut ko ja jūs mācīja to pirms tam. 759 00:31:05,640 --> 00:31:07,960 Citiem vārdiem, kas Galvenais šobrīd, es esmu 760 00:31:07,960 --> 00:31:10,900 mēģinot zvanīt funkciju sauc iegūt pozitīvu int. 761 00:31:10,900 --> 00:31:14,120 Bet kompilators nav dodas pamanīt, ka iegūt pozitīvu int 762 00:31:14,120 --> 00:31:16,500 pastāv līdz līniju 26. 763 00:31:16,500 --> 00:31:21,360 Un tā, ko kompilators dara, ir tikai kļūdas, tiklīdz tā kļūst pozīcijā 17, 764 00:31:21,360 --> 00:31:23,700 sakot netieši deklarāciju no iegūt pozitīvu INT, kas 765 00:31:23,700 --> 00:31:27,740 ir tikai iedomātā veids, kā pateikt, man nav zināt, ko saņemt pozitīvas int vēl. 766 00:31:27,740 --> 00:31:31,240 >> Citas valodas, piemēram, Java un Python un Ruby varētu raudzīties nākotnē. 767 00:31:31,240 --> 00:31:32,240 C nav. 768 00:31:32,240 --> 00:31:35,110 Un tā kā mēs noteikt šis ir viens no diviem veidiem. 769 00:31:35,110 --> 00:31:40,160 Vai nu viens, ja problēma ir tā, ka nokļūt pozitīvs int nav redzējis, 770 00:31:40,160 --> 00:31:42,150 labi, ļaujiet man vienkārši pārvietot to uz augšu. 771 00:31:42,150 --> 00:31:43,650 Tas atrisinātu šo problēmu. 772 00:31:43,650 --> 00:31:46,790 Bet vispār, tas ir uzskatīt labāku tehniku 773 00:31:46,790 --> 00:31:50,220 lai jūsu galvenā funkcija ir ļoti top, lai cilvēks lasa jūsu kodu 774 00:31:50,220 --> 00:31:52,710 zina, ko programma dara, jo galvenais nav aprakti visi 775 00:31:52,710 --> 00:31:53,960 veids, apakšā vai vidū. 776 00:31:53,960 --> 00:31:55,130 Tas ir pašā augšā. 777 00:31:55,130 --> 00:31:56,410 Tā, ka nejūtas ideāls. 778 00:31:56,410 --> 00:31:58,326 Un jūs faktiski var iegūt uz situācijām, kad 779 00:31:58,326 --> 00:32:00,820 ja viena funkcija zvani vēl viens, kas aicina citu, 780 00:32:00,820 --> 00:32:04,630 jūs varat saņemt par jautājumiem, ja neviena no var iet virs otra, loģiski. 781 00:32:04,630 --> 00:32:05,920 Tas vienkārši nav iespējams. 782 00:32:05,920 --> 00:32:09,290 >> Un tā veids, kā strādāt ap šo ir tikai ņemt 783 00:32:09,290 --> 00:32:13,200 Funkcija paraksts, tā speak-- pirmajā rindā, kur tas ir declared-- 784 00:32:13,200 --> 00:32:16,850 un tikai kopēt, ielīmēt pie top, bet ne ar cirtaini braces-- 785 00:32:16,850 --> 00:32:17,980 tikai ar semikolu. 786 00:32:17,980 --> 00:32:20,840 Tas ir kā mazs mājienu par to, kas nāk. 787 00:32:20,840 --> 00:32:26,630 Un patiesībā, visu šo laiku, kad mēs esmu redzējis lietas, piemēram, standarta io.h 788 00:32:26,630 --> 00:32:33,040 un cs50.h, līdzīgi, jo tie dot h faili ir tur citi prototipi. 789 00:32:33,040 --> 00:32:35,250 Un mēs redzam, ka pirms ilgi. 790 00:32:35,250 --> 00:32:39,340 >> Tātad īsumā, ja jums ir programma failā ar vairākām funkcijām 791 00:32:39,340 --> 00:32:42,300 turklāt galvenais, jūs gandrīz vienmēr vēlas deklarēt tos 792 00:32:42,300 --> 00:32:45,360 tikai ceļā viņu pirmais līnija, kam seko semikolu, 793 00:32:45,360 --> 00:32:48,410 pašā augšā faila. 794 00:32:48,410 --> 00:32:50,460 Tas bija daudz visu uzreiz. 795 00:32:50,460 --> 00:32:53,130 Kādi jautājumi? 796 00:32:53,130 --> 00:32:53,920 Kādi jautājumi? 797 00:32:53,920 --> 00:32:54,530 Viss kārtībā. 798 00:32:54,530 --> 00:32:59,760 >> Tātad, pieņemsim pāriet uz tam lai kaut ko līdzīgu klepus. 799 00:32:59,760 --> 00:33:00,260 Oh. 800 00:33:00,260 --> 00:33:00,570 Kā montāžu. 801 00:33:00,570 --> 00:33:01,220 Viss kārtībā. 802 00:33:01,220 --> 00:33:02,260 Klepus. 803 00:33:02,260 --> 00:33:05,080 Tātad, šeit ir c programmas īstenošanu 804 00:33:05,080 --> 00:33:07,560 mēs darījām citu dienu Scratch ka ļoti vienkārši tikai 805 00:33:07,560 --> 00:33:08,691 saka klepus, klepus, klepus. 806 00:33:08,691 --> 00:33:09,190 Viss kārtībā. 807 00:33:09,190 --> 00:33:11,136 Un kāds teica daži dienas atpakaļ, ka tur ir 808 00:33:11,136 --> 00:33:12,760 veids tīrīšanas šo kodu up jau. 809 00:33:12,760 --> 00:33:12,880 Viss kārtībā? 810 00:33:12,880 --> 00:33:15,440 Tiklīdz jūs esat kopēšana un līmēšana, iespējams, slikti dizainu. 811 00:33:15,440 --> 00:33:18,725 Vismaz reizi mēs nokļūt līdz četriem vai pieciem vai 20 klepus, tā uzskata sliktu praksi. 812 00:33:18,725 --> 00:33:19,850 Mēs tikai glabāt kopiju, līmēšana. 813 00:33:19,850 --> 00:33:22,213 Kas ir acīmredzams risinājums tīrīšanas šo programmu up? 814 00:33:22,213 --> 00:33:23,120 >> Mērķauditorija: Loop. 815 00:33:23,120 --> 00:33:23,350 >> SPEAKER 1: Jā. 816 00:33:23,350 --> 00:33:24,070 Tātad izmantot cilpu. 817 00:33:24,070 --> 00:33:27,697 Un mēs varam izmantot, lai cilpa, kamēr cilpa, jebkurš no pieejas numurs. 818 00:33:27,697 --> 00:33:29,780 Un tiešām, tas, ko mēs versijā vienā šeit. 819 00:33:29,780 --> 00:33:32,250 Esmu vietā pārrakstīt to no cough.c versijā viena 820 00:33:32,250 --> 00:33:35,170 būt tikai klepus laikā pēc cilpas. 821 00:33:35,170 --> 00:33:38,240 Labi, bet tur ir iespēja tagad veida sākumu 822 00:33:38,240 --> 00:33:41,630 izstrādāt šo nedaudz vairāk kā mācība mums mācīja pirms brīža, 823 00:33:41,630 --> 00:33:46,190 kas ir this-- domāju, ka es gribēju lai izveidotu funkciju sauc klepus, 824 00:33:46,190 --> 00:33:49,730 pieņemsim apsvērt tikai brīdi kas tas notiek, lai izskatās. 825 00:33:49,730 --> 00:33:51,900 Tātad, ja es gribu kaut ko klepus, es vienkārši vajag 826 00:33:51,900 --> 00:33:53,800 izmantot drukas f iekšpusē funkciju. 827 00:33:53,800 --> 00:33:55,030 Un tiešām es esmu. 828 00:33:55,030 --> 00:33:56,990 Un patiesībā, tas viss laikā, jebkurā laikā jūs esat 829 00:33:56,990 --> 00:33:59,000 drukājot kaut ko ekrāns, programmētājs 830 00:33:59,000 --> 00:34:00,610 sauktu ka blakusparādība. 831 00:34:00,610 --> 00:34:02,990 Tas nav man nododot atpakaļ kāds vērtība. 832 00:34:02,990 --> 00:34:06,170 Tas mani veikt kādu darbību kas varētu būt vizuāli acīmredzama. 833 00:34:06,170 --> 00:34:10,672 Bet šī funkcija klepus, tas atgriezīsies kaut kas, pamatojoties uz tās pirmajā rindā? 834 00:34:10,672 --> 00:34:12,880 Nē, jo tā atgriešanās veidam nav spēkā, kas nozīmē tikai to, 835 00:34:12,880 --> 00:34:14,250 tas nav nododot man neko atpakaļ. 836 00:34:14,250 --> 00:34:16,791 To varētu darīt kaut ko vizuāli, bet tas nav nododot mani 837 00:34:16,791 --> 00:34:18,639 atpakaļ papīra gabaliņu, piemēram, pagājušajā nedēļā. 838 00:34:18,639 --> 00:34:21,310 >> Vai tas nepieciešams kādu ievadi? 839 00:34:21,310 --> 00:34:21,810 Nē. 840 00:34:21,810 --> 00:34:23,134 Un tā tas ir spēkā neesošs arī šeit. 841 00:34:23,134 --> 00:34:25,600 Tātad tas arī ir sava veida pār-engineering šo problēmu. 842 00:34:25,600 --> 00:34:26,099 Tiesības? 843 00:34:26,099 --> 00:34:28,820 Esmu veikusi programmu vairāk sarežģītas, vairāk koda rindiņas, 844 00:34:28,820 --> 00:34:31,889 Man nav padarījusi jebkādu funkcionālāku, bet tas 845 00:34:31,889 --> 00:34:34,210 būtu pakāpiens, varbūt, plašāks 846 00:34:34,210 --> 00:34:36,830 konteksts ar vairāk sarežģītu kodu. 847 00:34:36,830 --> 00:34:38,150 Bet ko par šo? 848 00:34:38,150 --> 00:34:42,050 Ko es esmu done-- tikko glancing Tas bez apskatot komentāru 849 00:34:42,050 --> 00:34:46,076 pašā augšā file-- Ko Es pilnīgi darīts šeit ar manu klepu 850 00:34:46,076 --> 00:34:47,409 īstenošana, kas ir atšķirīgs? 851 00:34:47,409 --> 00:34:48,327 Jā, muguras? 852 00:34:48,327 --> 00:34:51,384 >> Mērķauditorija: Padariet to, lai jūs varētu ir raksturs izslēgt. 853 00:34:51,384 --> 00:34:52,050 SPEAKER 1: Jā. 854 00:34:52,050 --> 00:34:53,270 Tātad tas jūtas veida jauki. 855 00:34:53,270 --> 00:34:53,389 Tiesības? 856 00:34:53,389 --> 00:34:56,600 Tas ir tāpat kā pievienojot funkciju, lai jūsu Programma vai jūsu funkcija, šajā gadījumā. 857 00:34:56,600 --> 00:34:57,830 Tas joprojām atgriež neko. 858 00:34:57,830 --> 00:35:00,538 Tas varētu būt vizuāli blakusparādība, jo tas zvana drukas f. 859 00:35:00,538 --> 00:35:02,800 Bet tagad man ir parametrized funkcija, kas 860 00:35:02,800 --> 00:35:06,470 nozīmē, ka es esmu norādītais pieņemts ievade int tipa un to sauc par n, 861 00:35:06,470 --> 00:35:08,510 bet es varētu to nosaukt kaut ko es gribu. 862 00:35:08,510 --> 00:35:11,550 Faktiski, tas varētu vienkārši reizes, lai būtu vēl skaidrāks. 863 00:35:11,550 --> 00:35:13,310 Un tad es varētu vienkārši mainīt šeit. 864 00:35:13,310 --> 00:35:16,450 Bet jautājums ir, ka tas ir tas, kā es izveidot funkciju, kas ņem ievadi. 865 00:35:16,450 --> 00:35:19,530 Un, ja jūs atceraties flipping caur varbūt online vienā 866 00:35:19,530 --> 00:35:23,000 no staigāt pievadiem, tad Ceturtais un pēdējais klepus piemērs, 867 00:35:23,000 --> 00:35:27,150 Jūs pamanīsiet šeit es esmu vispārināt mans kods further-- veida nošķirts 868 00:35:27,150 --> 00:35:27,690 tā tālāk. 869 00:35:27,690 --> 00:35:31,390 Tāpat kā klepus un šķaudīt, abi ir par, piemēram, sakot, kaut vai veicot 870 00:35:31,390 --> 00:35:32,330 sava veida skaņu. 871 00:35:32,330 --> 00:35:34,725 Saglabāt būtu atbilst Scratch bloku. 872 00:35:34,725 --> 00:35:37,350 Un tā, ko es darīju šajā versijā, kuru mēs varam tikai skatienu, 873 00:35:37,350 --> 00:35:43,170 ir klepus ir tāpat kā sakot, [klepus], klepus, un tikmēr, šķaudīšana ir 874 00:35:43,170 --> 00:35:44,570 tāpat kā teikt, [ACHOO]. 875 00:35:44,570 --> 00:35:46,900 Un tāpēc es esmu vispārināt īstenot šos 876 00:35:46,900 --> 00:35:48,970 ko tagad īstenojot Tas generic funkcija, 877 00:35:48,970 --> 00:35:51,490 teikt, kas ir interesanti šodienas vajadzībām 878 00:35:51,490 --> 00:35:54,300 tikai tāpēc, ka tas joprojām nav atgriezes tipa. 879 00:35:54,300 --> 00:35:56,398 Bet cik ieejas tas ir? 880 00:35:56,398 --> 00:35:56,981 Mērķauditorija: Two. 881 00:35:56,981 --> 00:35:57,430 SPEAKER 1: Two. 882 00:35:57,430 --> 00:35:59,263 Un tā, ja jūs vēlaties, lai uzņemt diviem argumentiem, 883 00:35:59,263 --> 00:36:00,710 vienkārši atdaliet tās ar komatu. 884 00:36:00,710 --> 00:36:03,110 Un, ja jūs vēlaties, lai pēc tam aicinu šo funkciju, 885 00:36:03,110 --> 00:36:05,800 ievērosiet, ka jūs vienkārši zvaniet teiksim, quote, likt pēdiņas beigās, 886 00:36:05,800 --> 00:36:09,090 par pirmo argumentu, kopējā n, par otro argumentu. 887 00:36:09,090 --> 00:36:12,130 Tātad atkal, mums vienkārši ir tagad celtniecības bloki, lai mēs varētu reāli 888 00:36:12,130 --> 00:36:15,686 īstenotu dažus no mūsu pašu funkciju. 889 00:36:15,686 --> 00:36:16,570 Viss kārtībā. 890 00:36:16,570 --> 00:36:19,690 Visus jautājumus par šo? 891 00:36:19,690 --> 00:36:22,400 >> Tāpēc tagad pieņemsim mizu atpakaļ slāni, ja tā. 892 00:36:22,400 --> 00:36:24,840 Un mērķis, galu galā, ir nākamās nedēļas problēma komplekts 893 00:36:24,840 --> 00:36:27,710 būs par cryptogrophy-- māksla šifrēšanas informāciju. 894 00:36:27,710 --> 00:36:30,640 Un konkrēti, informācija būs jums šifrēt vai atšifrēt 895 00:36:30,640 --> 00:36:31,605 būs teksts. 896 00:36:31,605 --> 00:36:33,980 Un tā, ka veida ielūgumiem jautājums šodien, piemēram, labi, 897 00:36:33,980 --> 00:36:38,480 kas notiek zem motora pārsega ar tekstu ārpus ASCII no nedēļas nulles, 898 00:36:38,480 --> 00:36:40,730 un kā mēs varam reāli sākt manipulēt ar to? 899 00:36:40,730 --> 00:36:43,070 Tātad, šeit ir Zamyla vārds. 900 00:36:43,070 --> 00:36:47,380 Un tekstā, kas varētu būt ievadīts uz kā get virknes funkciju. 901 00:36:47,380 --> 00:36:52,540 Un sākas tagad, kad jūs redzat stīgu tāpat this-- Z-A-M-Y-L-A-- 902 00:36:52,540 --> 00:36:56,550 sāk domāt par to, it kā katrs no šiem burtiem ir kastē no tās 903 00:36:56,550 --> 00:36:57,050 pašu. 904 00:36:57,050 --> 00:36:59,460 Un tiešām, pēc nedēļas, vai arī tā ir laiks, katrs no šiem kastes 905 00:36:59,460 --> 00:37:04,280 gatavojas pārstāvēt ļoti konkrēti bloks memory-- BITE atmiņas. 906 00:37:04,280 --> 00:37:07,050 Tātad katrs no šiem burtiem, galu galā, pārstāvēs 8 biti. 907 00:37:07,050 --> 00:37:10,560 Un mēs patiešām redzam, kas notiek par zem motora pārsega manā datorā. 908 00:37:10,560 --> 00:37:13,440 >> Bet ne pietiek tikai apskatīt Zamyla 909 00:37:13,440 --> 00:37:17,520 caur šo objektīvu, ar kuru katram no šie burti ir savā kastē. 910 00:37:17,520 --> 00:37:22,697 Un labi pietiekami C mēs varam piekļūt katrai no šīm kastēm tieši. 911 00:37:22,697 --> 00:37:25,530 Tātad, ja jūs vēlaties, lai iegūtu pirmo vēstule viņas vārdu, super viegli C. 912 00:37:25,530 --> 00:37:28,410 Ja vēlaties saņemt pēdējo vēstule, super viegli, kā arī 913 00:37:28,410 --> 00:37:30,240 ar kādu jaunu sintaksi. 914 00:37:30,240 --> 00:37:36,250 >> Tāpēc es esmu gatavojas iet uz priekšu uz CS50 IDE un atvērt stīgu nulles dot C. 915 00:37:36,250 --> 00:37:40,270 Un šajā piemērā šeit, tur ir pāris jaunas lietas notiek. 916 00:37:40,270 --> 00:37:44,360 Tātad pirmais pēc kārtas 19., mēs esam redzējis šo before-- get virkni. 917 00:37:44,360 --> 00:37:49,840 Tik vienkārši kā ātri veselība pārbaudītu, ja kāds varētu piedāvāt līdz mutiski 918 00:37:49,840 --> 00:37:52,662 lajs skaidrojums kas notiek saskaņā 19. 919 00:37:52,662 --> 00:37:55,370 Tāpat vienkārši tulkot to vērā Angļu, ka kaimiņiem nav CS50 920 00:37:55,370 --> 00:37:56,416 varētu saprast. 921 00:37:56,416 --> 00:37:56,916 Jā. 922 00:37:56,916 --> 00:37:59,749 >> Mērķauditorija: Vai lietotāja ievade stīgu un uzglabāt to mainīgā s. 923 00:37:59,749 --> 00:38:01,934 924 00:38:01,934 --> 00:38:02,600 SPEAKER 1: Labi. 925 00:38:02,600 --> 00:38:05,579 Ir lietotāja ievadi virkni un uzglabāt to mainīgā s. 926 00:38:05,579 --> 00:38:06,120 Tas ir lieliski. 927 00:38:06,120 --> 00:38:08,090 Tātad uz labās rokas pusē, mēs saucam get string. 928 00:38:08,090 --> 00:38:10,340 Kas atgriež vērtību kas nesaņēma piešķirts 929 00:38:10,340 --> 00:38:14,230 no labās puses uz kreiso, roku side uz mainīgo sauc s, kas ir 930 00:38:14,230 --> 00:38:15,950 projektēta, lai saglabātu virkni. 931 00:38:15,950 --> 00:38:16,800 Tieši tā. 932 00:38:16,800 --> 00:38:20,000 >> Tāpēc tagad līnija 22, per komentārs rindā 21, 933 00:38:20,000 --> 00:38:22,780 protams, izdrukā šo string viena rakstzīme katrā rindiņā. 934 00:38:22,780 --> 00:38:23,740 Bet kā? 935 00:38:23,740 --> 00:38:27,040 Tātad pirmkārt, mēs sāktu I 0. 936 00:38:27,040 --> 00:38:31,061 Un tad kā mēs nokļūt beigas Zamyla vārda? 937 00:38:31,061 --> 00:38:32,810 Labi, beigās Zamyla vārds, es varētu 938 00:38:32,810 --> 00:38:38,151 manuāli ierakstiet pēdējā raksturs viņas vārds kaut kā, vai skaits no tā. 939 00:38:38,151 --> 00:38:38,650 Tiesības? 940 00:38:38,650 --> 00:38:43,500 Ja mēs ejam atpakaļ here-- Z-A-M-L-- Y-L-A--, lai es varētu rakstīt. 941 00:38:43,500 --> 00:38:47,340 Kas ir indekss Zamyla pēdējā vēstule? 942 00:38:47,340 --> 00:38:52,517 Ja tas ir 0-- runā Like programmer-- 0, 1, 2, 3, 4, 5, 943 00:38:52,517 --> 00:38:56,570 Es heard-- tik tiešām, pēdējais burts in Zamyla vārda ir sestais, 944 00:38:56,570 --> 00:38:58,890 bet, ja mēs paļaujamies no 0, tas būs skaitlis 5. 945 00:38:58,890 --> 00:39:01,320 Lai saglabātu, ka prātā šeit. 946 00:39:01,320 --> 00:39:04,929 >> Izrādās, tur ir funkcija C sauc strlen, un atpakaļ dienā 947 00:39:04,929 --> 00:39:06,720 un līdz pat šai dienai joprojām, daudz programmētāju 948 00:39:06,720 --> 00:39:09,524 izvēlēties sinhronizēt vārdus par viņu funkcijas, kas izklausīsies vārdiem 949 00:39:09,524 --> 00:39:10,440 viņi cenšas pateikt. 950 00:39:10,440 --> 00:39:12,590 Tātad strlen ir virknes garums. 951 00:39:12,590 --> 00:39:18,168 Un tā, kādi būtu virknes garums S atgriešanās kad Zamyla ir ieejas? 952 00:39:18,168 --> 00:39:19,569 >> Mērķauditorija: Five. 953 00:39:19,569 --> 00:39:22,090 >> SPEAKER 1: Z-A-M-Y-L. Six. 954 00:39:22,090 --> 00:39:22,590 Tiesības? 955 00:39:22,590 --> 00:39:23,940 Kas garums Zamyla vārda? 956 00:39:23,940 --> 00:39:24,440 Tiesības? 957 00:39:24,440 --> 00:39:26,240 Un tikai patiesībā, seši burti. 958 00:39:26,240 --> 00:39:26,740 Tiesības? 959 00:39:26,740 --> 00:39:28,940 Un tā, ko tas nozīmē mūsu cilpa? 960 00:39:28,940 --> 00:39:32,130 Mēs ejam, lai iet no 0 līdz sešiem, kas 961 00:39:32,130 --> 00:39:33,650 gatavojas sniegt mums piecas atkārtojumiem. 962 00:39:33,650 --> 00:39:34,890 Ko mēs darām katru atkārtojuma? 963 00:39:34,890 --> 00:39:36,870 Nu, C procenti, kāds uzminējāt citu dienu, 964 00:39:36,870 --> 00:39:38,710 ir vietturis ko? 965 00:39:38,710 --> 00:39:39,335 >> Mērķauditorija: Char. 966 00:39:39,335 --> 00:39:40,293 SPEAKER 1: Tikai char. 967 00:39:40,293 --> 00:39:42,877 Tātad viena character-- nav vairākas rakstzīmes, piemēram, virknes. 968 00:39:42,877 --> 00:39:45,251 Un tad šeit ir jaunu līniju ka mēs esam ieguvuši drukā. 969 00:39:45,251 --> 00:39:46,580 Un tad šeit ir jauns sintakse. 970 00:39:46,580 --> 00:39:51,130 Ja vēlaties izdrukāt i- varonis stīgu S, tā sakot, 971 00:39:51,130 --> 00:39:54,060 Jūs varat vienkārši teikt Nosaukums stīgu S, 972 00:39:54,060 --> 00:39:58,230 un tad atveriet kvadrātveida kronšteinu, un tad slēgts kvadrātveida kronšteinu, ar i 973 00:39:58,230 --> 00:39:58,780 vidus. 974 00:39:58,780 --> 00:40:01,430 Un tas ir sava veida jauki, ka tā veida izskatās kā kvadrāts 975 00:40:01,430 --> 00:40:06,210 tāpat kā kvadrātu, kurā Zamyla s rakstzīmes pastāvēt uz šo attēlu tur. 976 00:40:06,210 --> 00:40:09,970 >> Tātad, ja es tiešām palaist šo Tagad, pieņemsim redzēt, kas notiek. 977 00:40:09,970 --> 00:40:15,190 Padarīt stīgu 0 dot slīpsvītru stīgu 0, un tad es esmu 978 00:40:15,190 --> 00:40:16,720 gatavojas rakstīt Zamyla vārda. 979 00:40:16,720 --> 00:40:19,428 Nav ātru, jo man nav izmantot drukas f, bet tas ir jauki. 980 00:40:19,428 --> 00:40:20,660 Es tikai zinu, ko darīt. 981 00:40:20,660 --> 00:40:23,240 Un tiešām, tas izdrukā Zamyla vārds, pa vienam katrā rindā. 982 00:40:23,240 --> 00:40:25,760 >> Tagad pieņemsim būt nedaudz neapdomīgi. 983 00:40:25,760 --> 00:40:28,461 Pieņemsim, ka es nezināju par strlen un es sapratu, 984 00:40:28,461 --> 00:40:31,460 viss labi, neviens gatavojas, lai būtu nosaukt lielāks nekā, piemēram, 50 rakstzīmes. 985 00:40:31,460 --> 00:40:36,360 Iesim uz priekšu un recompile šis un atkārto to, un pēc tam ierakstiet Zamyla 986 00:40:36,360 --> 00:40:37,160 vēlreiz. 987 00:40:37,160 --> 00:40:40,850 Loģiski, kāda ir Programma gatavojas izmēģināt drukāt? 988 00:40:40,850 --> 00:40:49,545 Z-A-M-Y-L-A pēc tam, piemēram, 45 nezināmi baiti atmiņas. 989 00:40:49,545 --> 00:40:51,670 Un tiešām, mēs atgriezīsimies šo ideju atmiņas. 990 00:40:51,670 --> 00:40:54,180 Bet tikai loģiski, ja Zamyla vārds ir tas garš, 991 00:40:54,180 --> 00:40:56,450 kā vienu attēlu šeit, ko mēs esam sakot 992 00:40:56,450 --> 00:40:59,810 ir saglabāt drukāšanu, saglabāt drukāšanu, saglabāt apdruka, saglabāt drukāšanu, saglabāt drukāšanu, 993 00:40:59,810 --> 00:41:03,781 visu ceļu līdz 50. raksturu, kas, kurš zina, kas notiek varētu notikt. 994 00:41:03,781 --> 00:41:05,030 Tātad pieņemsim faktiski to apskatīt. 995 00:41:05,030 --> 00:41:06,720 Pieņemsim ierakstiet Zamyla. 996 00:41:06,720 --> 00:41:07,250 Interesanti. 997 00:41:07,250 --> 00:41:08,190 Mums palaimējies. 998 00:41:08,190 --> 00:41:09,700 Tikai visu ķekars atstarpēm. 999 00:41:09,700 --> 00:41:09,930 Oh. 1000 00:41:09,930 --> 00:41:11,120 Tur ir viens bailīgs raksturs. 1001 00:41:11,120 --> 00:41:14,577 Tas izskatās veida, piemēram, dīvaini jautājums atzīmēt tur, bet ir Zamyla vārds. 1002 00:41:14,577 --> 00:41:15,660 Iesim patiešām neapdomāti. 1003 00:41:15,660 --> 00:41:20,000 Kā par mums izdrukāt 500 bloķē pretī nezināmajam? 1004 00:41:20,000 --> 00:41:24,380 Iesim uz priekšu un padarīt šo kā arī un pēc tam atkal palaist. 1005 00:41:24,380 --> 00:41:27,980 Un pieņemsim pilnu ekrānu tā, jo mums ir nepieciešams, lai redzētu vairāk vietas. 1006 00:41:27,980 --> 00:41:30,460 Zamyla. 1007 00:41:30,460 --> 00:41:31,830 Palaimējies vēlreiz. 1008 00:41:31,830 --> 00:41:33,070 >> Uzdrīkstēties mēs iegūtu vairāk neapdomāti? 1009 00:41:33,070 --> 00:41:36,070 Iesim vairāk neapdomāti. 1010 00:41:36,070 --> 00:41:39,350 50000 rakstzīmes. 1011 00:41:39,350 --> 00:41:41,390 Tas pats, protams, nav laba ideja. 1012 00:41:41,390 --> 00:41:41,890 Viss kārtībā. 1013 00:41:41,890 --> 00:41:42,990 Padarīt virkni 0. 1014 00:41:42,990 --> 00:41:44,720 Tas būs mūsu pēdējais demo. 1015 00:41:44,720 --> 00:41:47,261 Zamyla. 1016 00:41:47,261 --> 00:41:48,632 Ugh. 1017 00:41:48,632 --> 00:41:50,010 Ugh. 1018 00:41:50,010 --> 00:41:50,680 LABI. 1019 00:41:50,680 --> 00:41:54,407 Tātad mana atmiņa ir ļoti tukša tieši tagad, kas ir faktiski veida ērti. 1020 00:41:54,407 --> 00:41:55,990 Ko es cenšos iegūt kuri paredzēti, visas tiesības. 1021 00:41:55,990 --> 00:41:57,614 Un tagad es esmu tikai gatavojas saņemt neapdomāti. 1022 00:41:57,614 --> 00:41:58,570 500,000. 1023 00:41:58,570 --> 00:42:03,860 Make-- pieņemsim pilnekrāna to. 1024 00:42:03,860 --> 00:42:04,990 Enter. 1025 00:42:04,990 --> 00:42:05,490 Zamyla. 1026 00:42:05,490 --> 00:42:12,050 1027 00:42:12,050 --> 00:42:13,390 Tur mēs ejam. 1028 00:42:13,390 --> 00:42:15,610 Man nav ne jausmas, ko tas ir, bet tas izklausās slikti. 1029 00:42:15,610 --> 00:42:16,110 Viss kārtībā. 1030 00:42:16,110 --> 00:42:20,322 Un patiesībā, drīz, ja tu esi viens paveicies maz darba laika 1031 00:42:20,322 --> 00:42:22,780 un problēmu noteikt vienu, jūs varētu ļoti labi saskarties šo. 1032 00:42:22,780 --> 00:42:25,490 Segmentācija vaina tiešām ir labi definētā nozīmē. 1033 00:42:25,490 --> 00:42:28,450 Tas nozīmē, kādu kļūdas kas attiecas uz segmentu atmiņas. 1034 00:42:28,450 --> 00:42:30,490 Un lajs izteiksmē, tas nozīmē, ka mēs pieskārās 1035 00:42:30,490 --> 00:42:34,780 memory-- mēs izmantojām RAM manā datorā ka man nebūtu bijusi pieeja. 1036 00:42:34,780 --> 00:42:37,050 Un tas, ko ir gan spēcīgs un arī bīstams 1037 00:42:37,050 --> 00:42:39,910 par C ir tas, ka jūs faktiski ir neierobežota pieeja 1038 00:42:39,910 --> 00:42:45,910 uz visu jūsu programmas atmiņā vai baiti vai RAM, precīzāk. 1039 00:42:45,910 --> 00:42:49,510 >> Tātad, pat ja Zamyla nosaukuma ir tikai sešas rakstzīmes, 1040 00:42:49,510 --> 00:42:51,450 Es vēl joprojām var iet visur atmiņā es gribu. 1041 00:42:51,450 --> 00:42:53,491 Un kā malā, ja esat kādreiz lasīt kādu rakstu 1042 00:42:53,491 --> 00:42:55,610 gadu gaitā par kādu servera vai kādu programma 1043 00:42:55,610 --> 00:42:58,654 kļūst ieplaisājusi vai hacked, kas ir ņem priekšrocība kaut 1044 00:42:58,654 --> 00:43:00,820 sauc bufera pārpildes izmantot ka mēs faktiski 1045 00:43:00,820 --> 00:43:04,970 runāt par pāris nedēļām, tas ir parasti atsaucoties uz kaut tricking 1046 00:43:04,970 --> 00:43:09,090 dators uz iet labi ārpus robežām atmiņas 1047 00:43:09,090 --> 00:43:11,410 ka tai vajadzētu būt, un atrast kaut ko sulīgu 1048 00:43:11,410 --> 00:43:13,530 jo memory-- parole, iespējams, ir veids, 1049 00:43:13,530 --> 00:43:16,990 apiešanas dažas sērijas numuru pārbaudiet, vai vienkārši parasti spēj 1050 00:43:16,990 --> 00:43:20,360 triks dators ir izpildes kodu, kas nebija paredzēta. 1051 00:43:20,360 --> 00:43:22,360 Bet pieņemsim atgriezties realitāte tikai brīdi 1052 00:43:22,360 --> 00:43:24,550 ja šī programma bija īstenots ar strlen, 1053 00:43:24,550 --> 00:43:26,110 un ieviest viena lieta šeit. 1054 00:43:26,110 --> 00:43:30,030 Kas jauns starp šiem trim līnijām? 1055 00:43:30,030 --> 00:43:30,910 >> Tātad stīgu dot h. 1056 00:43:30,910 --> 00:43:35,490 Izrādās, tur ir šis bibliotēka sauc String Dot H, vai String Library, 1057 00:43:35,490 --> 00:43:38,490 kura header failu, tā sakot, Ir virkne dot h, kas dod man 1058 00:43:38,490 --> 00:43:40,860 piekļuve šai strlen funkciju. 1059 00:43:40,860 --> 00:43:43,841 Ja es izlaist, ka kompilators ir gatavojas kliegt uz mani kaut kādā veidā. 1060 00:43:43,841 --> 00:43:44,590 Bet jūs zināt, ko? 1061 00:43:44,590 --> 00:43:46,090 Tagad pieņemsim nokļūt tiešām niansēts. 1062 00:43:46,090 --> 00:43:50,820 Atbilstoši 22, tur ir kaut kas labs no inefficient-- slikti izstrādāti, 1063 00:43:50,820 --> 00:43:53,990 arguably-- par šo līniju kodu. 1064 00:43:53,990 --> 00:43:56,280 Domāju, ka atpakaļ uz to, kā for-cilpa tiek īstenoti 1065 00:43:56,280 --> 00:44:00,140 un kādi pasākumi notikt atkal, un atkal un again-- inicializācijas, 1066 00:44:00,140 --> 00:44:04,110 nosacījums, kods, kas izpaužas izpildīts, tad pieaugumu 1067 00:44:04,110 --> 00:44:07,880 vai izmaiņas, tad nosacījums, tad kods, tad izmaiņas, tad 1068 00:44:07,880 --> 00:44:11,280 nosacījums, tad kods, tad izmaiņas, un tā tālāk. 1069 00:44:11,280 --> 00:44:15,320 Tātad, kādi varētu būt nedaudz satraucoša vai slikti darīts šeit? 1070 00:44:15,320 --> 00:44:16,387 Jā, zilā krāsā. 1071 00:44:16,387 --> 00:44:18,220 Mērķauditorija: strlen ir sauc daudzas, daudzas reizes. 1072 00:44:18,220 --> 00:44:20,654 1073 00:44:20,654 --> 00:44:21,320 SPEAKER 1: Jā. 1074 00:44:21,320 --> 00:44:23,700 Tātad strlen sauc daudzas reizes, bet to, kas ir 1075 00:44:23,700 --> 00:44:27,113 garums Zamyla vārda par Pirmo reizi cilpa izpilda? 1076 00:44:27,113 --> 00:44:27,860 >> Mērķauditorija: Six. 1077 00:44:27,860 --> 00:44:28,110 >> SPEAKER 1: Six. 1078 00:44:28,110 --> 00:44:30,976 Nu, kas ir garums viņas vārdu otrā reize, kad kods izpilda? 1079 00:44:30,976 --> 00:44:31,432 >> Mērķauditorija: Six. 1080 00:44:31,432 --> 00:44:31,890 >> SPEAKER 1: Nu labi. 1081 00:44:31,890 --> 00:44:32,720 Tas joprojām ir seši. 1082 00:44:32,720 --> 00:44:33,220 Tiesības? 1083 00:44:33,220 --> 00:44:35,260 Zarla vārds ir ne mainījies, pat ja es esmu meklē 1084 00:44:35,260 --> 00:44:38,240 ir tikai daļa no vēstulēm viņas vārdu. 1085 00:44:38,240 --> 00:44:41,349 Un tā tas, ka es esmu efektīvi jautā šo jautājumu, kas ir 1086 00:44:41,349 --> 00:44:44,640 garums Zamyla, kāda ir garums no Zamyla, kas ir garums Zamyla, 1087 00:44:44,640 --> 00:44:47,990 sešas atsevišķas reizes, vai septiņi pat, ir tikai stulba, 1088 00:44:47,990 --> 00:44:50,390 jo tas ir nemainīgs, ka atbilde. 1089 00:44:50,390 --> 00:44:53,550 Un tā, ko es patiešām varētu darīt, ir this-- virknē vienā 1090 00:44:53,550 --> 00:44:55,680 Man ir nedaudz labāka versiju šeit. 1091 00:44:55,680 --> 00:45:00,110 There-- whoops-- string divi man ir pavisam nedaudz labāks variants, kur 1092 00:45:00,110 --> 00:45:05,010 Man this-- nevis tikai inicializēšana i 0, es arī ar komatu 1093 00:45:05,010 --> 00:45:07,990 atzīt otru mainīgo sauc N- Man nav ko teikt int vēlreiz. 1094 00:45:07,990 --> 00:45:09,220 Man nevajadzētu, patiesībā. 1095 00:45:09,220 --> 00:45:10,380 Bet es saku n. 1096 00:45:10,380 --> 00:45:13,610 Un tad es sāktu n strlen no n, lai tagad 1097 00:45:13,610 --> 00:45:17,110 cik reizes tas strlen get izpildīts kopā? 1098 00:45:17,110 --> 00:45:17,610 Tikai vienu reizi. 1099 00:45:17,610 --> 00:45:20,257 Un tā tas ir tas, ko mēs domājam agrāk par labāku dizainu. 1100 00:45:20,257 --> 00:45:23,090 Patiesībā, kad jūsu kods ir pareizs, atgriežās un domāšanas veidu, 1101 00:45:23,090 --> 00:45:26,820 es esmu tik maz, izmantojot atmiņa vai kā dažas sekundes 1102 00:45:26,820 --> 00:45:30,409 vai no datora laiku milisekundes kā iespējams īstenot kādu problēmu? 1103 00:45:30,409 --> 00:45:32,200 Un es esmu gatavojas, lai ritinātu augšup un tikai pieminēt 1104 00:45:32,200 --> 00:45:34,283 ka tur ir šis pieminēt no null šajā versijā, 1105 00:45:34,283 --> 00:45:36,390 bet mēs atgriezīsimies pie ka pirms ilgi. 1106 00:45:36,390 --> 00:45:41,010 Jo tagad, pieņemsim to apskatīt at, kur tas notiek, lai mūs vadīt. 1107 00:45:41,010 --> 00:45:44,110 Tātad viena, izrādās, ka Tagad, kad mums ir iespēja 1108 00:45:44,110 --> 00:45:46,860 apskatīt atsevišķas rakstzīmes, mēs varam kaut ko sviras 1109 00:45:46,860 --> 00:45:50,807 no 0. nedēļā, kas bija ļoti arcane un kārtot neinteresanti laikā. 1110 00:45:50,807 --> 00:45:53,390 Bet tagad, un jo īpaši, ja mēs nokļūt Kriptogrāfija nedēļā, 1111 00:45:53,390 --> 00:45:54,820 tas būs diezgan spēcīgs. 1112 00:45:54,820 --> 00:45:57,450 Izrādās, ka ar dažiem dati types-- Ints un pludiņi 1113 00:45:57,450 --> 00:46:00,300 un chars un stīgas un cits things-- daži no tiem 1114 00:46:00,300 --> 00:46:02,800 var ļoti viegli pārvērš citu. 1115 00:46:02,800 --> 00:46:05,840 >> Piemēram, kad mēs runājām par ASCII kādu laiku ago-- šeit 1116 00:46:05,840 --> 00:46:07,796 Lielie burti caur M, dot, dot, 1117 00:46:07,796 --> 00:46:12,530 dot-- mēs teicām, ka tur ir kartēšana starp šiem burtiem un cipariem. 1118 00:46:12,530 --> 00:46:14,970 Un patiesībā, tas sakāms uz mazajiem burtiem, kā arī. 1119 00:46:14,970 --> 00:46:17,470 Mazie a ir 97, kapitāls a ir 65. 1120 00:46:17,470 --> 00:46:20,860 Un tur ir vairāki ASCII, kas ir tikai šis kartēšana 1121 00:46:20,860 --> 00:46:23,240 sistēma attiecībā uz visiem šiem citiem burtiem. 1122 00:46:23,240 --> 00:46:25,030 Tātad, ko tas nozīmē? 1123 00:46:25,030 --> 00:46:28,390 Nu, es esmu gatavojas iet uz priekšu un atvērt up reālā ātri kaut ko sauc 1124 00:46:28,390 --> 00:46:31,240 ASCII 0, no kuriem lielākā daļa ir komentāri. 1125 00:46:31,240 --> 00:46:33,860 Un atkal online jūs vienmēr varat skatiens caur komentāriem. 1126 00:46:33,860 --> 00:46:36,180 >> Un to apskatīt to, ko tas būs jādara. 1127 00:46:36,180 --> 00:46:38,410 Tātad tas ir ieguvuši galveno funkciju. 1128 00:46:38,410 --> 00:46:41,490 Esmu iekodēts numurus tikai tagad, jo es zinu, ko es daru. 1129 00:46:41,490 --> 00:46:42,950 Es zinu, ko es gribu redzēt šeit. 1130 00:46:42,950 --> 00:46:45,220 Un es esmu inicializēts I-65. 1131 00:46:45,220 --> 00:46:48,490 Un es esmu skaitīs ar 26 burtiem kopā. 1132 00:46:48,490 --> 00:46:52,990 Un ko es esmu gatavojas izdrukāt vienu līniju laikā 1133 00:46:52,990 --> 00:46:54,930 ja jūs varat interpretēt Tas uzsvērts līnijas? 1134 00:46:54,930 --> 00:46:55,970 Kas izpaužas drukāts? 1135 00:46:55,970 --> 00:46:56,797 Jā. 1136 00:46:56,797 --> 00:46:57,264 >> Mērķauditorija: Vai jūs plānojat izdrukāt vēstuli, 1137 00:46:57,264 --> 00:46:59,805 atbilst kartes no vēstule vērtība un veselais skaitlis? 1138 00:46:59,805 --> 00:47:01,199 1139 00:47:01,199 --> 00:47:01,990 SPEAKER 1: Tieši tā. 1140 00:47:01,990 --> 00:47:04,740 Es esmu gatavojas, lai drukātu vēstuli atbilst veselam skaitlim, 1141 00:47:04,740 --> 00:47:06,131 un otrādi, kā šādi. 1142 00:47:06,131 --> 00:47:08,880 Nu tas, kāds teica agrāk, ir tikai vietturis char. 1143 00:47:08,880 --> 00:47:09,490 Tas joprojām ir. 1144 00:47:09,490 --> 00:47:12,280 Tas, protams, ir vietturis For an int-- nav jauna līnija. 1145 00:47:12,280 --> 00:47:18,140 Un tagad paziņojums, manu pirmo vērtību, Es esmu tapām šim viettura 1146 00:47:18,140 --> 00:47:22,320 ir ne tikai I. es saku, iekavās, char es, 1147 00:47:22,320 --> 00:47:26,700 kuru Parenthetical char ir stāsta kompilators, ārstēt I 1148 00:47:26,700 --> 00:47:28,490 ne, kādi tie ir, kas ir skaitlis. 1149 00:47:28,490 --> 00:47:30,490 Uzskatīt to par faktisko raksturu. 1150 00:47:30,490 --> 00:47:34,490 Savukārt otrā vērtību es esmu tapām in-- I-- vajadzētu būt tikai skaitlis. 1151 00:47:34,490 --> 00:47:38,140 >> Tātad, ja es apkopot šo program-- tāpēc tas ir padarīt ASCII 0, 1152 00:47:38,140 --> 00:47:41,720 dot slash ASCII 0-- es tikai iegūt Šī parocīgiem maz diagramma, kas 1153 00:47:41,720 --> 00:47:44,950 rāda man visu iespējamo samērošanai bez domāt to 1154 00:47:44,950 --> 00:47:46,450 izmantojot vai skaitlis tas par savu. 1155 00:47:46,450 --> 00:47:48,783 Un es esmu arī izdrukāt, paziņojums mazos burtus, 1156 00:47:48,783 --> 00:47:51,410 jo dažas rindiņas vēlāk, es arī izdrukāt šo kartēšanu 1157 00:47:51,410 --> 00:47:53,737 kā arī, kas ir tikai uz saka, ka tad, kad jūs saprotat 1158 00:47:53,737 --> 00:47:55,570 Kas notiek zem ar kapuci, jūs varat 1159 00:47:55,570 --> 00:47:57,111 automātiski konvertēt uz priekšu un atpakaļ. 1160 00:47:57,111 --> 00:48:00,160 Un patiesībā, ja kāds no jums kādreiz darīja pakāpē skolā 1161 00:48:00,160 --> 00:48:03,490 vai dzirdējis par kādu mythically ņemot vērā 1162 00:48:03,490 --> 00:48:05,620 un iet to viņa vai viņas draugs klasē, 1163 00:48:05,620 --> 00:48:08,300 bet tu scrambled Letters Tāpat kā kļūst B, 1164 00:48:08,300 --> 00:48:11,240 un B kļūst par C, vai kaut ko sarežģītāka nekā tas, labi, 1165 00:48:11,240 --> 00:48:13,410 kā jūs iet par Īstenojot kas kā mazulis? 1166 00:48:13,410 --> 00:48:16,340 Nu, jūs vienkārši veida zināt Kļūst B, B kļūst C, 1167 00:48:16,340 --> 00:48:19,700 bet matemātiski, Kas tas bija mazulis dara? 1168 00:48:19,700 --> 00:48:22,050 Ko jūs pievienojot katram burtam? 1169 00:48:22,050 --> 00:48:23,340 Efektīvi, 1. 1170 00:48:23,340 --> 00:48:27,740 >> Tātad, kad jūs maināt A uz punktu B, kas ir veida, piemēram, mainot 65 līdz 66, 1171 00:48:27,740 --> 00:48:29,590 kas matemātiski nozīmē vienkārši pievienojiet 1. 1172 00:48:29,590 --> 00:48:33,300 Un tādēļ, ja jums bija, lai īstenotu ka maz maldinošs paņēmiens 1173 00:48:33,300 --> 00:48:36,380 Jūsu skolotājs kodu, jūs varētu darīt tieši to tikko 1174 00:48:36,380 --> 00:48:38,552 pievienojot vienu burtu kopā. 1175 00:48:38,552 --> 00:48:40,260 Tātad, pirms ilgi, mēs esam gatavojas redzēt, kā mēs 1176 00:48:40,260 --> 00:48:43,300 var izmantot, ka, lai reāli patiesi motokross un atšifrēt 1177 00:48:43,300 --> 00:48:43,991 informācija. 1178 00:48:43,991 --> 00:48:47,240 Pa to laiku, zina, ka mēs esam sākuši ieviest pāris citām bibliotēkām 1179 00:48:47,240 --> 00:48:48,990 here-- virkni vienu šodien. 1180 00:48:48,990 --> 00:48:51,180 Un ļoti noderīga vietne cerams, jūs atradīsiet 1181 00:48:51,180 --> 00:48:55,010 sauc reference.cs50.net, kas mācībspēki ir salikti kopā, 1182 00:48:55,010 --> 00:48:57,510 tā ka, ja jūs vēlaties, lai uzmeklēt cik strlen darbus, 1183 00:48:57,510 --> 00:48:59,300 Jūs varat sākt rakstīt Funkcija vārds, 1184 00:48:59,300 --> 00:49:02,890 noklikšķiniet strlen tur, un tad mazāk ērts izskaidrojums 1185 00:49:02,890 --> 00:49:03,700 gatavojas parādīties. 1186 00:49:03,700 --> 00:49:06,880 Vai, ja jūs vēlaties amatpersonu Linux bāzes paskaidrojums, 1187 00:49:06,880 --> 00:49:08,945 Jūs varat noklikšķināt vairāk comfy pie augšējā labajā stūrī, un to 1188 00:49:08,945 --> 00:49:12,070 sniegs to pašu informāciju, bet sarežģītākos ziņā. 1189 00:49:12,070 --> 00:49:15,070 Tas ir noderīgs resurss, lai tiešām zina, ko dara viss. 1190 00:49:15,070 --> 00:49:17,320 >> Nākamreiz mēs spēsim ieskatieties Ovaltine 1191 00:49:17,320 --> 00:49:20,070 un vēl, un iepazīstināt sevi uz pasaules kriptogrāfiju. 1192 00:49:20,070 --> 00:49:21,930 Pirms tam, mēs redzēsim Jūs vēlāk šonedēļ. 1193 00:49:21,930 --> 00:49:23,390 Un tagad, Colton Ogden. 1194 00:49:23,390 --> 00:49:26,730 Tiekamies trešdien. 1195 00:49:26,730 --> 00:49:30,216 >> [Mūzikas atskaņošanai] 1196 00:49:30,216 --> 00:49:33,702 >> [Mūzikas atskaņošanai] 1197 00:49:33,702 --> 00:49:38,682 1198 00:49:38,682 --> 00:49:42,200 >> SPEAKER 1: Kas [Bleep] tu dari? 1199 00:49:42,200 --> 00:49:45,720 >> SPEAKER 1: Es esmu ēšanas manu desertu? 1200 00:49:45,720 --> 00:49:47,160 Kā jūs ēst? 1201 00:49:47,160 --> 00:49:47,860 Ar rokām? 1202 00:49:47,860 --> 00:49:54,050 1203 00:49:54,050 --> 00:49:57,940 >> [Mūzikas atskaņošanai] 1204 00:49:57,940 --> 00:50:03,453