1 00:00:00,000 --> 00:00:11,280 2 00:00:11,280 --> 00:00:13,650 >> GARSIAKALBIS 1: Gerai. 3 00:00:13,650 --> 00:00:14,390 Sveiki sugrįžę. 4 00:00:14,390 --> 00:00:19,260 Tai CS50 dviejų savaičių, ir mes turime iki šiol naudoja funkcijas, bet 5 00:00:19,260 --> 00:00:20,830 daugiausia į juos savaime suprantamu dalyku. 6 00:00:20,830 --> 00:00:23,430 Mes naudojome printf kuris turi šalutinis poveikis spausdinimas 7 00:00:23,430 --> 00:00:24,110 viskas ekrane. 8 00:00:24,110 --> 00:00:25,790 Mes naudojome get-int gauti plaukti. 9 00:00:25,790 --> 00:00:29,230 >> Bet kas, jei jūs tikrai norite sukurti jūsų pačių funkcijų, kaip kai kurie 10 00:00:29,230 --> 00:00:31,740 galbūt jau pradėjo padaryti problemą, One, nors 11 00:00:31,740 --> 00:00:33,140 nėra griežtai reikalaujama? 12 00:00:33,140 --> 00:00:37,150 Na, eikime į priekį ir dar kartą peržiūrėti, kad problema tiesiog klausia vartotoją, 13 00:00:37,150 --> 00:00:40,660 jų pavadinimas ir spausdinimo kažkas ant ekranas, bet pabandyti veiksnys out kai 14 00:00:40,660 --> 00:00:44,000 iš bendrumo, kad mes matyti mūsų kodekse iki šiol. 15 00:00:44,000 --> 00:00:45,120 Taigi, kad aš tai taip. 16 00:00:45,120 --> 00:00:47,315 >> Aš ruošiuosi eiti į priekį ir sukurti Nauja programa, tiesiog paskambinkite 17 00:00:47,315 --> 00:00:49,320 tai hello.c kaip įprasta. 18 00:00:49,320 --> 00:00:53,730 Aš ruošiuosi eiti į priekį ir atsiduoti įtraukti standartinę io.h viršuje. 19 00:00:53,730 --> 00:00:57,040 Aš ruošiuosi taip pat atsiduoti Preemptively CS50 biblioteka taip, kad 20 00:00:57,040 --> 00:00:59,080 Aš negaunu sušuko sudarytojas. 21 00:00:59,080 --> 00:01:02,400 Ir dabar aš ruošiuosi eiti į priekį ir pripažinti INT, pagrindinį, negaliojančiu. 22 00:01:02,400 --> 00:01:09,020 >> Ir tada čia, tai kur aš noriu pradėti perduoti funkcionalumą 23 00:01:09,020 --> 00:01:12,090 kai kitas funkcijas, kad aš pats esu ketina rašyti, bet, kad nėra 24 00:01:12,090 --> 00:01:13,820 šiuo metu egzistuoja. 25 00:01:13,820 --> 00:01:19,210 Pavyzdžiui, tarkime, kad aš norėjau parašyti funkciją, kuri leidžia man 26 00:01:19,210 --> 00:01:23,830 spausdinti Sveiki, kablelis, ir tada kai vartotojo vardas. 27 00:01:23,830 --> 00:01:29,010 Užuot toliau daryti printf Sveiki,% s, ar nebūtų malonu, jei 28 00:01:29,010 --> 00:01:33,380 ten buvo tik funkcija vadinama ne printf bet spausdinimo vardas? 29 00:01:33,380 --> 00:01:36,600 >> Taigi, kitaip tariant, aš noriu, kad būtų galima Parašykite programą, kuri veikia tiek 30 00:01:36,600 --> 00:01:37,710 kažkas panašaus į tai. 31 00:01:37,710 --> 00:01:42,070 Pirma, aš ruošiuosi pasakyti printf savo vardas, taip paskatino vartotoją 32 00:01:42,070 --> 00:01:46,150 duok man jo ar jos vardą ir tada aš ketinate naudoti žinomus string s į 33 00:01:46,150 --> 00:01:47,290 paskelbti eilutę. 34 00:01:47,290 --> 00:01:50,420 Duok man tipo kintamąjį eilutę skambinti ji s, ir laikyti, kad 35 00:01:50,420 --> 00:01:52,120 sukelti, iš kurios skambinama gauti eilutę. 36 00:01:52,120 --> 00:01:56,060 Bet dabar savaičių anksčiau, būčiau šiek tiek nuobodžiai padaryta Sveiki,% s / n. 37 00:01:56,060 --> 00:01:58,630 38 00:01:58,630 --> 00:02:02,570 >> Ir Kitaip tariant, mes matėme tai pavyzdys kartų krūva, ir tai 39 00:02:02,570 --> 00:02:05,280 trivialus pavyzdys, nes ten tik vienas linija kodą, tai tikrai ne 40 00:02:05,280 --> 00:02:06,860 baisi, kad rašyti dar kartą. 41 00:02:06,860 --> 00:02:09,990 Bet tarkime, kad šis kodo eilutę iš tikrųjų tapdavo našta ir 42 00:02:09,990 --> 00:02:12,900 tai ne viena eilutė kodo, bet tai 10 eilučių kodo pora savaičių nuo dabar, 43 00:02:12,900 --> 00:02:15,190 ir jūs tiesiog pavargę, kopijuoti ir įklijuoti arba 44 00:02:15,190 --> 00:02:17,180 įvesti iš naujo tą patį kodą. 45 00:02:17,180 --> 00:02:22,100 Ar nebūtų puiku, užuot printf Sveiki,% s, ir tt, 46 00:02:22,100 --> 00:02:26,500 Ar nebūtų puiku, jei ten buvo tik funkcija vadinama spausdinimo pavadinimas, 47 00:02:26,500 --> 00:02:27,560 mano argumentas - 48 00:02:27,560 --> 00:02:29,120 Kitaip tariant, reikia įvestį - 49 00:02:29,120 --> 00:02:30,620 ir tada kabliataškis. 50 00:02:30,620 --> 00:02:33,240 Taigi, kad funkcija, ar ne būtų malonu, jei kuri egzistavo? 51 00:02:33,240 --> 00:02:36,690 Tada aš ne nerimauti kas printf yra kas% s ir visi 52 00:02:36,690 --> 00:02:39,400 Šie sudėtingumo, kurie yra ne visi, kad įdomus. 53 00:02:39,400 --> 00:02:40,570 Jos yra naudingos. 54 00:02:40,570 --> 00:02:44,700 >> Taigi, vardas, pavardė spausdintinėmis, deja, nebuvo išrado kai 40 plius metų. 55 00:02:44,700 --> 00:02:45,980 Niekas manoma, kad rašyti. 56 00:02:45,980 --> 00:02:48,300 Bet tai turėti grožis programavimo kalba, kaip ir 57 00:02:48,300 --> 00:02:52,930 Scratch galite apibrėžti pasirinktinius blokus, todėl į C ir dauguma bet kalba, jūs galite 58 00:02:52,930 --> 00:02:57,260 apibrėžti savo funkcijas, gali jums apibrėžti savo funkcijas. 59 00:02:57,260 --> 00:03:01,710 Taigi, nors mes gauname pagrindinis pagal automatiškai nemokamai, mes galime paskelbti 60 00:03:01,710 --> 00:03:02,730 mūsų pačių funkcijų. 61 00:03:02,730 --> 00:03:05,670 >> Taigi, aš ruošiuosi padaryti kai kambaryje čia iki viršaus, ir aš norėčiau paskelbti mano 62 00:03:05,670 --> 00:03:08,210 savo funkcija, kuri ketina ieškoti šiek tiek keista, ne pirmas, bet mes ateis 63 00:03:08,210 --> 00:03:09,400 atgal į prieš tai ilgai. 64 00:03:09,400 --> 00:03:12,310 Aš ruošiuosi pasakyti negaliojančiu, tokiu būdu nurodant šią funkciją nėra 65 00:03:12,310 --> 00:03:16,040 kažkas turi šalutinį poveikį, tačiau jis negrąžina kažką man 66 00:03:16,040 --> 00:03:18,810 taip pat, kad gauti int arba gauti eilutę savaime. 67 00:03:18,810 --> 00:03:22,450 Ir aš norėčiau duoti šia funkcija pavadinimas spausdinimo vardu, ir aš ruošiuosi 68 00:03:22,450 --> 00:03:26,470 nurodo, kad šis vaikinas ketina imtis eilutę, ir aš ruošiuosi skambinti, kad 69 00:03:26,470 --> 00:03:27,600 Styginių pavadinimas. 70 00:03:27,600 --> 00:03:32,100 Galėčiau vadinti ką noriu, bet aš noriu, kad mano kodas turi būti savarankiškai dokumentuoti. 71 00:03:32,100 --> 00:03:34,770 Kitaip tariant, vienas iš jūsų, jei buvo atidaryti šį failą ir jį skaityti, galite 72 00:03:34,770 --> 00:03:39,020 rūšiuoti teigti, kad remiantis pavadinimu, įėjimas, kokį vaidmenį jis turėjo žaisti. 73 00:03:39,020 --> 00:03:42,270 >> Ir dabar yra mažesnis nei, kad aš ruošiuosi atidaryti garbanotas petnešomis ir uždarus garbanotas petnešomis, 74 00:03:42,270 --> 00:03:47,140 ir taip pastebėti aš po tą patį modelis linijomis keturių per septynias kaip 75 00:03:47,140 --> 00:03:51,622 Aš jau po geros savaitės plius dabar tarp, tarkim, linijų devynių ir 76 00:03:51,622 --> 00:03:53,400 14, iš kurių sudaryta pagrindinė. 77 00:03:53,400 --> 00:03:56,160 Kitaip tariant, spausdinti vardą yra kita funkcija. 78 00:03:56,160 --> 00:03:58,990 Dabar sudarytojas nesiruošia žinoti skambinti šį dalyką automatiškai 79 00:03:58,990 --> 00:04:02,670 nes aš tiesiog tik sugalvojo, bet jis žinos dar skambinti Pagrindinis 80 00:04:02,670 --> 00:04:08,710 automatiškai, o tada, žinoma, į linija 13, Raginu mano paties funkciją. 81 00:04:08,710 --> 00:04:12,805 Ir todėl aš pareiškė, kad funkcija ant prieš keturias pagrindines linijos, 82 00:04:12,805 --> 00:04:16,579 tai ketinama mokyti sudarytojas kas citata, citatos, "vardas, pavardė spausdintinėmis" 83 00:04:16,579 --> 00:04:18,140 reiškia ir ką ji turėtų daryti. 84 00:04:18,140 --> 00:04:22,700 Taigi, aš tarsi suteikiant jam naują užsakymą blokuoti kontekste, tarkim, nulio. 85 00:04:22,700 --> 00:04:27,240 >> Taigi, čia aš galiu įdėti, kad labai dažni ar pasikartojančius modelis kodo aš nuolat 86 00:04:27,240 --> 00:04:32,300 raštu klasėje, printf % S Sveiki,% s / n "- 87 00:04:32,300 --> 00:04:36,720 88 00:04:36,720 --> 00:04:37,590 ką aš noriu įdėti čia? 89 00:04:37,590 --> 00:04:39,200 S? 90 00:04:39,200 --> 00:04:41,420 Taigi aš noriu įdėti vardą šioje srityje. 91 00:04:41,420 --> 00:04:43,440 Taigi pastebėsite pasidalijimu į dvi dalis šiek tiek čia. 92 00:04:43,440 --> 00:04:47,680 Nes aš esu skelbiantis savo paties funkciją ir aš šiek tiek savavališkai vadinamas 93 00:04:47,680 --> 00:04:50,880 tai spausdinti vardą, ir dėl to aš nurodyta skliausteliuose, kad šis 94 00:04:50,880 --> 00:04:55,035 Funkcija priima vieną argumentą, tipą kuris yra eilutė - todėl žodis 95 00:04:55,035 --> 00:05:00,010 ar frazė ar kažkas panašaus - ir Vadinu šis argumentas vardą, kad 96 00:05:00,010 --> 00:05:04,770 tai tik kintamąjį,'S apimtis, taip sakant, yra vardas. 97 00:05:04,770 --> 00:05:07,780 >> S egzistuoja tik tarp to, kas dvi garbanotas petnešos, žinoma? 98 00:05:07,780 --> 00:05:12,990 Na tikrai, kaip ir 10 eilutės per 14, taip pat kaip pirmadienį negali naudotis 99 00:05:12,990 --> 00:05:17,650 S, bet ką aš galiu padaryti, tai perduoti S į spausdinimo vardą. 100 00:05:17,650 --> 00:05:21,030 Spausdinti pavadinimas tiesiog taip atsitinka, kad jį pseudonimas, sinonimas, slapyvardį, 101 00:05:21,030 --> 00:05:24,400 vadiname tai pavadinimas, o dabar naudojant jį šioje eilutėje. 102 00:05:24,400 --> 00:05:26,840 Taigi dabar leiskite man išsaugoti tai, nutolinti. 103 00:05:26,840 --> 00:05:31,250 >> Leiskite man eiti į priekį ir padaryti hello. 104 00:05:31,250 --> 00:05:32,400 Gerai atrodo. 105 00:05:32,400 --> 00:05:36,110 Ar ne išspjauti visas klaidas. . / Apie Enter. 106 00:05:36,110 --> 00:05:37,020 Koks mano vardas? 107 00:05:37,020 --> 00:05:38,060 Davidas. 108 00:05:38,060 --> 00:05:39,270 Ir Apie Davidas. 109 00:05:39,270 --> 00:05:41,820 Taigi ne visi, kad įdomus, bet tiesiog manau, kad dabar. 110 00:05:41,820 --> 00:05:44,310 Dabar jūs turite tą patį ingredientas kaip mes padarė nulio 111 00:05:44,310 --> 00:05:45,420 kad mūsų savo funkcijas. 112 00:05:45,420 --> 00:05:46,770 >> Bet yra iš kabliuko tiek. 113 00:05:46,770 --> 00:05:50,620 Tarkime, kad aš ne tikrai maniau tai per ir aš iš tikrųjų be 114 00:05:50,620 --> 00:05:54,250 tikrai galvoti apie tai rašė kad funkcija čia. 115 00:05:54,250 --> 00:05:55,420 Jaučiasi visiškai pagrįstas. 116 00:05:55,420 --> 00:05:58,440 Be nulio nėra sąvoka nuo vietos savo scenarijus. 117 00:05:58,440 --> 00:06:00,670 Jūs galite įdėti vieną čia vienas čia, vienas čia, ir jis gali pradėti 118 00:06:00,670 --> 00:06:03,310 ieškoti šiek tiek nepatogus, jei jūs neturite nustatyti jį tvarkingai, tačiau taip nėra 119 00:06:03,310 --> 00:06:05,910 Nesvarbu, kur fiziškai scenarijus buvo ekrane. 120 00:06:05,910 --> 00:06:09,660 Deja C - ir tai yra skirtingai kalbos, pavyzdžiui, Java ir Python 121 00:06:09,660 --> 00:06:13,600 ir kitiems, kad jums gali būti susipažinę su - deja, C, kad veikia 122 00:06:13,600 --> 00:06:15,830 klausimas, nes žiūrėti kas nutiks dabar. 123 00:06:15,830 --> 00:06:19,010 >> Numatytoji funkcija, kuri vyksta vykdyti, žinoma, pagrindinis. 124 00:06:19,010 --> 00:06:22,290 Pagrindinis ketina skambinti spausdinimo pavadinimą linija aštuoneri, bet, deja, 125 00:06:22,290 --> 00:06:26,660 sudarytojas nebus net žinoti, kad spausdinimo vardą egzistuoja tol, kol ji tampa į eilutę 11 126 00:06:26,660 --> 00:06:28,520 kuri, deja, bus per vėlu. 127 00:06:28,520 --> 00:06:30,660 Taigi darykime padaryti hello. 128 00:06:30,660 --> 00:06:32,950 Ir dabar nusispjauti, dvi klaidas sukurtas. 129 00:06:32,950 --> 00:06:36,050 Taigi dabar leiskite pereiti iki labai pirma, kaip mes visada turėtų daryti, ir 130 00:06:36,050 --> 00:06:39,560 pastebėsite, kad ji šaukiantį į mane, "Numanoma deklaracija funkcija 131 00:06:39,560 --> 00:06:40,540 spausdinti pavadinimą. " 132 00:06:40,540 --> 00:06:43,860 >> Taigi mes matėme šį pranešimą anksčiau, numanoma deklaracija funkcija. 133 00:06:43,860 --> 00:06:48,080 Kai mes pamatėme, kad klaidų natūra? 134 00:06:48,080 --> 00:06:49,180 Kai aš neįtraukė biblioteką. 135 00:06:49,180 --> 00:06:53,470 Jei aš pamiršau cs50.h ir aš norėčiau gauti sušuko ir gauti eilutę arba gauti int. 136 00:06:53,470 --> 00:06:56,880 Tačiau šiuo atveju, ši funkcija spausdinti pavadinimas nėra bibliotekoje, tiesa? 137 00:06:56,880 --> 00:07:00,230 Tai tiesiog šį failą, todėl kas tikrai problema? 138 00:07:00,230 --> 00:07:04,660 >> Na, deja, C, pateksite taip neįtikėtinai tiesiog, kad jei 139 00:07:04,660 --> 00:07:08,640 noriu funkcija vadinama spausdinimo pavadinimas egzistuoja, jūs arba turi įgyvendinti 140 00:07:08,640 --> 00:07:11,940 kad labai viršuje savo funkcija kodas, kad tai prieinama sumažinti 141 00:07:11,940 --> 00:07:15,070 funkcijos, bet atvirai, tai tampa aplaistytas labai greitai. 142 00:07:15,070 --> 00:07:18,160 Asmeniškai aš lyg pagrindinė sritis nes tada tai labai aišku, ką tai 143 00:07:18,160 --> 00:07:19,890 Programa veikia iš pirmo žvilgsnio. 144 00:07:19,890 --> 00:07:23,290 Ir plius, galite patekti į keistą kampe Tais atvejais, kai jei x nori skambinti 145 00:07:23,290 --> 00:07:27,530 m, bet y galima pavadinti x, jūs tiesiog fiziškai negali iš tikrųjų pateikė vienas 146 00:07:27,530 --> 00:07:28,540 virš kito. 147 00:07:28,540 --> 00:07:31,230 >> Tačiau paaiškėja, C, galime išspręsti šią problemą labai paprastai. 148 00:07:31,230 --> 00:07:34,010 Aš ruošiuosi įdėti šiek tiek vietos čia, ir aš tik ketina 149 00:07:34,010 --> 00:07:38,170 Preemptively, nors ir šiek tiek Gausiai, kurios ketinama mokyti 150 00:07:38,170 --> 00:07:42,320 sudarytojas, kad egzistuoja funkcija vadinamas spausdinimo vardą, ji užima eilutę, 151 00:07:42,320 --> 00:07:46,330 ir aš ruošiuosi skambinti tai pavadinti kabliataškiu. 152 00:07:46,330 --> 00:07:50,220 >> Taigi tai dabar atitinka keturių, kurį mes dar nematėte anksčiau, yra deklaracija 153 00:07:50,220 --> 00:07:53,940 iš funkcijos spausdinimo vardu, bet tai tik pažadas, kad ši funkcija bus 154 00:07:53,940 --> 00:07:56,620 galiausiai bus nustatyta, galiausiai būti įgyvendintos. 155 00:07:56,620 --> 00:08:00,180 Tai dabar galiu palikti vieni, nes dabar tai yra apibrėžimas, 156 00:08:00,180 --> 00:08:04,090 įgyvendinimą, tarsi "paskutinės mylios" iš šios direktyvos įgyvendinimą, 157 00:08:04,090 --> 00:08:05,130 konkrečią funkciją. 158 00:08:05,130 --> 00:08:08,450 Taigi atvirai tai kvaila, tai erzina, bet tai yra būdas C, ir tai 159 00:08:08,450 --> 00:08:12,050 nes jis nukelia jus labai pažodžiui ir, kaip kompiuteris atvirai turėtų 160 00:08:12,050 --> 00:08:16,020 tik neturi ką pasakyti, kad ji padaryti, ir kad galima užsisakyti svarbus. 161 00:08:16,020 --> 00:08:18,940 >> Taigi, turėkite tai galvoje ir vėl pradėti pranešimas apie modelius pasikartojimo. 162 00:08:18,940 --> 00:08:21,850 Šansai yra jūs, jei turite ne jau pradeda susidurti pranešimus 163 00:08:21,850 --> 00:08:24,700 kaip tai, kad iš pirmo žvilgsnio atrodo visiškai paslaptingas, bet jei pradėsite 164 00:08:24,700 --> 00:08:29,000 ieškoti šių reikšminių žodžių, pavyzdžiui, "Numanoma deklaracija" paminėti 165 00:08:29,000 --> 00:08:32,380 funkcija šiuo atveju - ir atvirai, jūs kartais net gauti šiek tiek žalia 166 00:08:32,380 --> 00:08:35,010 morkų simbolis, kuris pasakys, kur problema tikriausiai yra - 167 00:08:35,010 --> 00:08:40,980 galite pradėti dirbti savo kelią per dar nematytas klaidas. 168 00:08:40,980 --> 00:08:45,860 Bet apie tai raštu klausimai jūsų savo funkciją tokiu būdu? 169 00:08:45,860 --> 00:08:47,540 >> Darykime kažką, kad šiek tiek daugiau įtikinamos. 170 00:08:47,540 --> 00:08:51,760 Užuot tiesiog padaryti kažką, kad turi šalutinis poveikis spauda, ​​leiskite man eiti 171 00:08:51,760 --> 00:08:55,340 į priekį ir išsaugoti naują failą, ir mes skambinti šiuo positive.c, nors tai 172 00:08:55,340 --> 00:08:57,600 bus šiek tiek kitoks prieš paskutinį kartą. 173 00:08:57,600 --> 00:09:01,910 Ir šį kartą, aš noriu pakartotinai įgyvendinti Paskutinį kartą yra positive.C pavyzdys, kuris 174 00:09:01,910 --> 00:09:04,430 yra priversti vartotoją duoti man teigiamas sveikasis skaičius. 175 00:09:04,430 --> 00:09:07,280 Bet man teko naudoti gauti int paskutinį kartą. 176 00:09:07,280 --> 00:09:10,780 Ar nebūtų buvę malonu, jei ten buvo funkcija vadinama gauti teigiamą int 177 00:09:10,780 --> 00:09:13,610 kad galėčiau tiesiog perduoti tai gabalas funkcionalumą? 178 00:09:13,610 --> 00:09:16,480 Taigi skirtumas yra tas, mes atsiųsime įgyvendinti gauti teigiamą int, tačiau skirtingai nei 179 00:09:16,480 --> 00:09:20,330 Spausdinti pavadinimas, kuris turėjo šalutinį poveikį - negrįžo kažką man patinka 180 00:09:20,330 --> 00:09:21,710 numeris arba eilutė - 181 00:09:21,710 --> 00:09:25,510 gauti teigiami int yra, žinoma, vyksta į grįžti, tikiuosi, teigiamai int. 182 00:09:25,510 --> 00:09:26,170 >> Taigi galime tai padaryti. 183 00:09:26,170 --> 00:09:30,840 Įtraukti cs50.h, įtraukti standartines io.h. 184 00:09:30,840 --> 00:09:33,520 Int main negaliojančiu. 185 00:09:33,520 --> 00:09:42,160 Ir dabar čia, aš ruošiuosi eiti į priekį ir tarkim int jį vadiname n yra lygi 186 00:09:42,160 --> 00:09:44,270 gauti teigiamą int. 187 00:09:44,270 --> 00:09:49,080 Ir kaip gauti int jau egzistuoja nes darbuotojai ją parašė, aš ruošiuosi 188 00:09:49,080 --> 00:09:53,950 daryti prielaidą, kad šiuo metu gauti Žiniasklaida pozityviai egzistuoja, ir dabar aš ruošiuosi 189 00:09:53,950 --> 00:09:57,730 eiti į priekį ir pasakyti printf, Ačiū už% i / n "n. 190 00:09:57,730 --> 00:10:02,940 191 00:10:02,940 --> 00:10:07,770 >> Taigi dabar, jei aš surinkti šią programą, kas nutiks mano terminalo 192 00:10:07,770 --> 00:10:09,075 langas ties ekrano apačioje? 193 00:10:09,075 --> 00:10:11,580 194 00:10:11,580 --> 00:10:13,900 Aš tikriausiai gauti, kad pati klaida kaip ir anksčiau. 195 00:10:13,900 --> 00:10:14,570 Taigi pabandykime tai. 196 00:10:14,570 --> 00:10:16,450 Padaryti teigiamas. 197 00:10:16,450 --> 00:10:19,900 Ir vėl, išvestinė deklaracija Funkcijų, gauti teigiamą int. 198 00:10:19,900 --> 00:10:21,970 Taigi, mes galime išspręsti šią problemą ir keliais būdais. 199 00:10:21,970 --> 00:10:27,310 Aš ruošiuosi laikyti jį paprasta ir tiesiog įdėti savo deklaraciją čia ir gauti 200 00:10:27,310 --> 00:10:28,120 Žiniasklaida pozityviai. 201 00:10:28,120 --> 00:10:29,720 Turiu vadinamąjį parašą. 202 00:10:29,720 --> 00:10:32,410 Parašas tiesiog tai su estetika 203 00:10:32,410 --> 00:10:34,090 Pirmoje eilutėje programą. 204 00:10:34,090 --> 00:10:37,420 Taigi, kas turėtų gauti teigiami LC grąža? 205 00:10:37,420 --> 00:10:37,970 >> Taigi int. 206 00:10:37,970 --> 00:10:41,540 Aš turiu galvoje, idealiu atveju, būtų grąžinti kažkas panašaus į teigiamą int, bet 207 00:10:41,540 --> 00:10:42,160 neegzistuoja. 208 00:10:42,160 --> 00:10:45,280 Mes nemačiau, kad tarp mūsų duomenų tipų, todėl mes turime elgtis su 209 00:10:45,280 --> 00:10:47,170 Faktas, kad mes turime labai mažai duomenų tipai dirbti. 210 00:10:47,170 --> 00:10:50,360 Tačiau mes galime grįžti int ir tik tikiu, kad jis bus teigiamas. 211 00:10:50,360 --> 00:10:52,690 Jis bus vadinamas gauti teigiamą int. 212 00:10:52,690 --> 00:10:55,122 >> Ir dabar, kaip apie savo argumentuose? 213 00:10:55,122 --> 00:10:56,440 Ar jis visas žaliavas? 214 00:10:56,440 --> 00:10:58,280 Ar reikia visas žaliavas? 215 00:10:58,280 --> 00:11:00,900 Taigi nereikia žinoti iš anksto nieko. 216 00:11:00,900 --> 00:11:03,220 Gauk eilutėje nėra, gauti int nėra. 217 00:11:03,220 --> 00:11:06,430 Printf nėra - reikia turėti tam tikrą įėjimas pateko į jį - ir spausdinimo vardas 218 00:11:06,430 --> 00:11:09,020 reikia šiek tiek prisidėti, bet ir gauti Žiniasklaida pozityviai nėra. 219 00:11:09,020 --> 00:11:11,530 Taigi, aš ruošiuosi aiškiai pasakyti sudarytojas negaliojančiu. 220 00:11:11,530 --> 00:11:13,470 Tuštuma yra apie ką nors nebuvimas. 221 00:11:13,470 --> 00:11:17,990 Taigi negaliojantis reiškia nieko vyksta viduje tų skliausteliuose, kabliataškis. 222 00:11:17,990 --> 00:11:20,840 >> Ir dabar ne mano failo apačioje - ir vėl, aš tiesiog yra rūšies analinis 223 00:11:20,840 --> 00:11:23,640 čia išleisti pagrindinis viršuje, kuris yra gera praktika, nes tokiu būdu, 224 00:11:23,640 --> 00:11:26,220 kada Jūs ar kas kitas atidaro savo failą, 225 00:11:26,220 --> 00:11:27,400 funkcionalumas yra teisus ten. 226 00:11:27,400 --> 00:11:29,660 Galite pasinerti nuo Square One. 227 00:11:29,660 --> 00:11:34,190 Taigi, dabar aš ruošiuosi kartoti tai, gauti teigiamą int negaliojančiu, tačiau aš nesu 228 00:11:34,190 --> 00:11:35,430 ketina hit kabliataškį dabar. 229 00:11:35,430 --> 00:11:38,280 Aš ruošiuosi atidaryti garbanotas petnešos, ir dabar man reikia skolintis 230 00:11:38,280 --> 00:11:39,700 kai nuo pirmadienio idėjas. 231 00:11:39,700 --> 00:11:44,450 >> Taigi, kaip jūs žinote, mes padarėme kažką kaip atlikti šiuos veiksmus, o 232 00:11:44,450 --> 00:11:45,830 kažkas buvo tiesa. 233 00:11:45,830 --> 00:11:46,630 Ir ką man daryti? 234 00:11:46,630 --> 00:11:51,540 Aš kažką panašaus duoti man teigiamas sveikasis skaičius, 235 00:11:51,540 --> 00:11:52,430 šiek tiek eilutę. 236 00:11:52,430 --> 00:11:53,540 Aš galėtų naudoti jokių žodžių noriu. 237 00:11:53,540 --> 00:11:54,960 Ir tada aš ką? 238 00:11:54,960 --> 00:11:59,530 Žiniasklaida n lygus gauti int jokių argumentų į jį. 239 00:11:59,530 --> 00:12:00,550 >> Ir pastebėsite skirtumą. 240 00:12:00,550 --> 00:12:04,680 Kai Jūs skambinate funkciją, kai jūs naudojate funkcija, jums nereikia įdėti į tuštumą. 241 00:12:04,680 --> 00:12:08,570 Jums tik padaryti, kad, deklaruojant funkcija, mokymo sudarytojas kas 242 00:12:08,570 --> 00:12:09,780 ji turėtų tikėtis. 243 00:12:09,780 --> 00:12:11,650 Taigi jums nereikia įdėti netekti ten sau. 244 00:12:11,650 --> 00:12:12,940 >> O dabar, kas buvo mano būklė? 245 00:12:12,940 --> 00:12:19,670 Na, n yra nelygus teigiamas, bet tai tik pseudo-kodas. 246 00:12:19,670 --> 00:12:22,530 Taigi, kaip aš galiu išreikšti tai daugiau švariai? 247 00:12:22,530 --> 00:12:24,090 Taigi yra mažesnė arba lygi nuliui. 248 00:12:24,090 --> 00:12:26,250 Taigi dar kartą, pastebėsite, jūs galite padaryti mažesnis arba lygus. 249 00:12:26,250 --> 00:12:28,100 Nors tai du atskiri simboliai, galite tai padaryti 250 00:12:28,100 --> 00:12:29,350 klaviatūra kaip toks. 251 00:12:29,350 --> 00:12:33,950 >> Tačiau vis dar klaida, Aš įsukus paskutinį kartą taip pat. 252 00:12:33,950 --> 00:12:36,950 Turiu pripažinti - 253 00:12:36,950 --> 00:12:37,460 tiksliai. 254 00:12:37,460 --> 00:12:39,640 Turiu pripažinti, n už iš kilpą. 255 00:12:39,640 --> 00:12:44,180 Taigi man reikia įdėti n čia, o aš ne norite iš naujo jį deklaruoti čia 256 00:12:44,180 --> 00:12:46,480 eisite, aš gauti naują kintamąjį. 257 00:12:46,480 --> 00:12:48,860 Aš tik noriu priskirti reikšmę čia. 258 00:12:48,860 --> 00:12:54,320 >> Ir dabar aš ne visai padaryta čia. 259 00:12:54,320 --> 00:12:57,290 Leiskite gauti prieš save ir apsimesti, aš padaryti. 260 00:12:57,290 --> 00:13:01,220 Padaryti teigiamas, o dabar atsirado nauja klaida. 261 00:13:01,220 --> 00:13:04,550 Valdymo pasiekia galą ne negaliojančiu funkcija. 262 00:13:04,550 --> 00:13:07,760 Taigi naujos klaidos pranešimą, tačiau jei rūšis iš erzinti išskyrus kiekvieno tariant, 263 00:13:07,760 --> 00:13:09,620 tikriausiai užsimenama, kas yra negerai. 264 00:13:09,620 --> 00:13:11,240 >> Kontroliuoti. 265 00:13:11,240 --> 00:13:14,250 Kontrolė reiškia tiesiog tvarka veiklos programoje. 266 00:13:14,250 --> 00:13:16,510 Kompiuterio kontrolės ir kažkas negerai. 267 00:13:16,510 --> 00:13:18,510 Taigi jis pasiekia galą ne negaliojančiu funkcija. 268 00:13:18,510 --> 00:13:21,760 Ką veikti tai, matyt, omenyje? 269 00:13:21,760 --> 00:13:24,790 Ką funkcija yra ne tuštuma? 270 00:13:24,790 --> 00:13:27,400 Taigi gauti teigiamą int, ir tiek klaidinantis, kad gerai, 271 00:13:27,400 --> 00:13:29,010 tai tipo tuščia. 272 00:13:29,010 --> 00:13:33,070 Ji turi tuštumos specifikacijos jos argumentai, tačiau jos produkcija vyksta 273 00:13:33,070 --> 00:13:34,540 būti N tipo. 274 00:13:34,540 --> 00:13:37,260 Taigi kairėje žodis vadinamasis grįžimo tipo. 275 00:13:37,260 --> 00:13:40,320 Viduje žodis čia yra turi būti nustatomos nulinio ar daugiau argumentų 276 00:13:40,320 --> 00:13:41,970 kad funkcija užtrunka. 277 00:13:41,970 --> 00:13:44,060 >> Taigi, ką man reikia daryti? 278 00:13:44,060 --> 00:13:47,650 Šiuo mano kodas taškas, linija 21, kur mirksi greitai dabar, aš 279 00:13:47,650 --> 00:13:51,430 turėti teigiamą int viduje iš kintamojo vadinamas n. 280 00:13:51,430 --> 00:13:55,200 Kaip aš galiu duoti Grįžti į pagrindinį? 281 00:13:55,200 --> 00:13:55,960 Pažodžiui. 282 00:13:55,960 --> 00:13:59,320 Grįžti n kabliataškiu. 283 00:13:59,320 --> 00:14:04,090 >> Taigi, kaip Colton grąžino gabalas popierius su atsakymo į man nuleisti 284 00:14:04,090 --> 00:14:07,020 kad popieriaus gabalas Little Black dėžutė ant stalo, padaryti, kad 285 00:14:07,020 --> 00:14:10,100 kodas, jūs tiesiog tiesiog parašyti, grąžinkite n, ir tai kaip nors Colton buvo 286 00:14:10,100 --> 00:14:12,140 pernešimo man kažką fizinės atgal. 287 00:14:12,140 --> 00:14:15,870 Tokiu atveju, kas vyksta, tai gauti Žiniasklaida pozityviai ketina perduoti atgal 288 00:14:15,870 --> 00:14:19,220 kas turbūt teigiamas sveikasis kam? 289 00:14:19,220 --> 00:14:21,380 Kur ši vertė galų gale? 290 00:14:21,380 --> 00:14:29,080 Tai galų gale į šį kintamąjį rodiklį n, ir tada mes pradėti su linija devyni. 291 00:14:29,080 --> 00:14:31,920 >> Taigi, kitaip tariant, kad iš veikla, ši programa pradeda 292 00:14:31,920 --> 00:14:34,430 vykdyti, ir kompiliatorius supranta, O, jūs norite į biblioteką? 293 00:14:34,430 --> 00:14:36,310 Leiskite man eiti patraukti viską, kas viduje, kad. 294 00:14:36,310 --> 00:14:37,750 O, jūs norite standartinę IO bibliotekoje? 295 00:14:37,750 --> 00:14:39,660 Leiskite man eiti patraukti viską, kas viduje, kad. 296 00:14:39,660 --> 00:14:44,510 Ką sudarytojas sako sau kai jis hitai linijos keturis? 297 00:14:44,510 --> 00:14:47,980 O, jūs pažadėjo įgyvendinti funkcija vadinama gauti teigiamas, tačiau 298 00:14:47,980 --> 00:14:50,820 grįšime į tą vėliau, kažkas palei tas linijas. 299 00:14:50,820 --> 00:14:53,450 >> Int main negaliojančiu tiesiog reiškia čia kad mano programos viduriai. 300 00:14:53,450 --> 00:14:54,990 Linija septynetas yra tik garbanotas petnešomis. 301 00:14:54,990 --> 00:14:59,540 Linija aštuonių sako kairėje, suteikti me 32 grąžtai sveikasis skaičius, tai vadiname n. 302 00:14:59,540 --> 00:15:02,160 Dešinėje pusėje, tai sakydamas gauti teigiamą int. 303 00:15:02,160 --> 00:15:07,120 Dabar galime pristabdyti, kad istorija, nes dabar Nemanau, nuolat juda pelės mygtuką žemyn. 304 00:15:07,120 --> 00:15:11,720 Mano žymeklis dabar krinta, nes čia dabar gauti teigiami LC vykdo. 305 00:15:11,720 --> 00:15:13,100 Žiniasklaida n deklaruoti. 306 00:15:13,100 --> 00:15:14,040 Atlikite šiuos veiksmus. 307 00:15:14,040 --> 00:15:16,090 Printf suteikia man teigiamą sveikąjį skaičių. 308 00:15:16,090 --> 00:15:19,740 >> Gauk int nuo vartotojo, laikykite jį n, o gal tai padaryti vėl ir vėl. 309 00:15:19,740 --> 00:15:23,010 Šis ciklas reiškia, kad šis kodas galėtų vykdyti aukštyn ir žemyn, kaip tai dar kartą 310 00:15:23,010 --> 00:15:25,810 ir vėl, bet kai vartotojo pagaliau bendradarbiauja ir suteikia man teigiamas 311 00:15:25,810 --> 00:15:31,750 int I hit linija 21, tuomet skaičius grąžino, ir kurių vienas 312 00:15:31,750 --> 00:15:34,280 turėčiau pabrėžti dabar? 313 00:15:34,280 --> 00:15:35,070 Devyni. 314 00:15:35,070 --> 00:15:39,010 Kontrolė, taip sakant, grįžta išsirikiuoti devynis. 315 00:15:39,010 --> 00:15:40,650 Tai linija, kuri dabar atsakingas. 316 00:15:40,650 --> 00:15:43,250 >> Štai kas buvo daroma viskas tai po gaubtu laikas, bet 317 00:15:43,250 --> 00:15:46,480 kai mes naudojamas funkcijas kaip printf ar net gauti eilutę, kad kažkas 318 00:15:46,480 --> 00:15:50,600 parašė jums, kontrolė buvo jų įteikimo ne į kažkieno kodas linija 319 00:15:50,600 --> 00:15:51,290 pagal kiekvieną eilutę. 320 00:15:51,290 --> 00:15:53,770 Tai tiesiog mes negalėjome matyti ir mes tikrai negalėjo pavaizduoti jį tai 321 00:15:53,770 --> 00:15:57,620 programa, nes jis yra kai kurių kitų failą į kietąjį diską 322 00:15:57,620 --> 00:16:00,000 nežinant mums. 323 00:16:00,000 --> 00:16:02,100 Taigi, galime iš tikrųjų sudaryti ir paleisti šį dabar. 324 00:16:02,100 --> 00:16:03,890 >> Padaryti teigiamas. 325 00:16:03,890 --> 00:16:05,260 Kaupti, kad yra progresas. 326 00:16:05,260 --> 00:16:06,650 . / Teigiamas. 327 00:16:06,650 --> 00:16:08,020 Duok man teigiamas sveikasis skaičius. 328 00:16:08,020 --> 00:16:08,800 Būkime sunku. 329 00:16:08,800 --> 00:16:10,430 Neigiamas 1. 330 00:16:10,430 --> 00:16:11,360 Nulis. 331 00:16:11,360 --> 00:16:13,370 Leiskite duoti jai 50. 332 00:16:13,370 --> 00:16:18,100 Ačiū už 50, ir tt kontrolės dabar grįžo. 333 00:16:18,100 --> 00:16:21,750 Turite klausimų, tuomet apie tai? 334 00:16:21,750 --> 00:16:23,180 Taip? 335 00:16:23,180 --> 00:16:25,630 >> [Nesigirdi]. 336 00:16:25,630 --> 00:16:26,130 >> Pasakykite dar kartą. 337 00:16:26,130 --> 00:16:27,860 O, geras klausimas. 338 00:16:27,860 --> 00:16:31,100 Taigi galite pastebėti paralelę čia Aš tipo pjovimo skyrelis. 339 00:16:31,100 --> 00:16:35,420 Atsižvelgiant į 12, aš sakau, gauti teigiamą int grąžina int, bet tas pats 340 00:16:35,420 --> 00:16:39,660 logika, tai dabar suprantama, kad linija šešių, aš sakau, kad pagrindiniai grįžta 341 00:16:39,660 --> 00:16:44,040 int, bet ko mes niekada turėjo bet mūsų programas? 342 00:16:44,040 --> 00:16:46,470 Mes niekada paminėti tai pagrindinis žodis grąža. 343 00:16:46,470 --> 00:16:49,970 >> Taigi paaiškėja, kad C, ne mažiau kaip jos versija, kad mes naudojame 344 00:16:49,970 --> 00:16:55,750 pagamintas 1999 metais, techniškai, tai yra vyksta automatiškai. 345 00:16:55,750 --> 00:16:59,300 Bet kuriuo metu galite įdiegti programą ir jums įgyvendinti funkcija vadinama pagrindinė, 346 00:16:59,300 --> 00:17:04,230 kad funkcija grąžins nulio pagal nutylėjimą, jei jūs neturite pasakyti kitaip, 347 00:17:04,230 --> 00:17:05,849 ir nulis yra tik konvencija. 348 00:17:05,849 --> 00:17:09,430 Pasaulis grįžta nulio tuo būdu rodo, kad viskas yra gerai, 349 00:17:09,430 --> 00:17:13,040 efektyviai palieka mus su keturis milijardus galimų dalykų, kurie gali eiti 350 00:17:13,040 --> 00:17:17,530 ne taip, kad jei mes grįžtame vieną, kad gali reikšti kodą, kuris reiškia, kad tai 351 00:17:17,530 --> 00:17:18,310 dalykas nutiko. 352 00:17:18,310 --> 00:17:20,589 Mes galime grįžti du, o tai reiškia, tai kitas dalykas nutiko. 353 00:17:20,589 --> 00:17:23,440 Mes galime grįžti keturis milijardus, o reiškia tai kitas dalykas nutiko. 354 00:17:23,440 --> 00:17:27,170 >> Ir jei dabar galvoti apie savo PC arba Mac, galite prisiminti, kad 355 00:17:27,170 --> 00:17:29,610 kartais jums paslaptingas klaidų pranešimus nuo programinės įrangos, kad jūs 356 00:17:29,610 --> 00:17:32,650 naudojant, o kartais ji turi žmogaus draugiškas aprašymas, bet ten 357 00:17:32,650 --> 00:17:35,265 dažnai kodas arba numeris ekrane? 358 00:17:35,265 --> 00:17:37,800 Jei tai neateina į galvą, tiesiog stebėkite jį. 359 00:17:37,800 --> 00:17:40,790 Tai paprastai kas tai kodai yra nuoroda į. 360 00:17:40,790 --> 00:17:44,200 Jie įtraukti į "Microsoft Word" ir kitos programos taip, kad jei jums failą 361 00:17:44,200 --> 00:17:48,850 pranešimas apie klaidą su bendrove, galite pasakykite jiems, oi, aš klaidos numeris 45. 362 00:17:48,850 --> 00:17:51,750 Ir kai programuotojas atgal į įmonės gali atrodyti, kad iki jo ar jos 363 00:17:51,750 --> 00:17:54,940 kodas ir sako, oi, tai todėl, kad aš padariau šią klaidą ir tai, kodėl vartotojas 364 00:17:54,940 --> 00:17:56,240 gavo šį pranešimą. 365 00:17:56,240 --> 00:17:59,490 >> Bet tiesą sakant, tai tik šiek tiek blaško dėmesį ir šiek tiek varginantis 366 00:17:59,490 --> 00:18:02,130 išvadą, kad, bent jau mūsų Pirmieji keletas programų, todėl mes 367 00:18:02,130 --> 00:18:02,970 buvo praleidžiant jį. 368 00:18:02,970 --> 00:18:07,450 Tačiau visą šį laiką kiekvienas iš jūsų funkcijos Pagrindinis slapta turėjo tai 369 00:18:07,450 --> 00:18:11,600 linija automatiškai pridėta jums sudarytojas, tiesiog pagal susitarimą 370 00:18:11,600 --> 00:18:13,172 sutaupyti šiek tiek laiko. 371 00:18:13,172 --> 00:18:14,620 >> [Nesigirdi]. 372 00:18:14,620 --> 00:18:16,250 >> Jums nereikia įtraukti jį į Main. 373 00:18:16,250 --> 00:18:16,700 Tai gerai. 374 00:18:16,700 --> 00:18:20,260 Jūs turite jį įtraukti, jei buvo įgyvendinant panašaus funkciją. 375 00:18:20,260 --> 00:18:22,850 Priešingu atveju funkcija butas iš neveiks. 376 00:18:22,850 --> 00:18:24,480 Bet pagrindinis, tai nėra būtina. 377 00:18:24,480 --> 00:18:28,450 Per savaitę ar dvi, mes pradėsime gauti į tą įprotį, kai mes norime pradėti 378 00:18:28,450 --> 00:18:29,690 reiškiantis klaidų. 379 00:18:29,690 --> 00:18:32,550 Tikrai geras klausimas. 380 00:18:32,550 --> 00:18:36,880 >> Taigi greitai žodinis pertrauka paminėti, kad Šį penktadienį, mes negali būti pietauja 381 00:18:36,880 --> 00:18:39,980 per se, bet mes bus pietauja su kai studentai ir dėstytojai. 382 00:18:39,980 --> 00:18:42,940 Jei norite prisijungti prie mūsų, jausti laisvai eiti į cs50.net/rsvp. 383 00:18:42,940 --> 00:18:45,030 06:00 šį penktadienį. 384 00:18:45,030 --> 00:18:47,990 Erdvė, kaip visada, ribotas, bet mes toliau daryti tai ant beveik 385 00:18:47,990 --> 00:18:51,420 kas savaitę, jei vietos baigsis šią savaitę. 386 00:18:51,420 --> 00:18:56,160 >> Taigi Įspūdingos filmą, kad mes baigėte Pirmadienis buvo, kad stygos gali iš tikrųjų 387 00:18:56,160 --> 00:19:00,520 būti indeksuojami į, kuris tiesiog reiškia, kad jūs galite gauti pirmojo ženklus 388 00:19:00,520 --> 00:19:03,770 Antroji raidė, trečiasis simbolis ir tt, nes galite 389 00:19:03,770 --> 00:19:07,860 efektyviai galvoti apie eilutę, pavyzdžiui, labas, kaip šiuo atveju penkių 390 00:19:07,860 --> 00:19:09,670 raidės viduje dėžės. 391 00:19:09,670 --> 00:19:13,370 Ir jūs galite gauti kiekviename iš tų dėžės su tuo, ką sintaksė ar mes 392 00:19:13,370 --> 00:19:15,230 pristatyti pirmadienį? 393 00:19:15,230 --> 00:19:16,760 Šie Kvadrātiekavas klaviatūroje. 394 00:19:16,760 --> 00:19:18,980 Tai tiesiog reiškia eiti į vietą nulio. 395 00:19:18,980 --> 00:19:22,840 >> Mes pradedame skaičiuoti nuo nulio, todėl laikiklis nulis reiškia H, laikiklis vienas 396 00:19:22,840 --> 00:19:25,170 reiškia, E ir kt. 397 00:19:25,170 --> 00:19:28,490 Ir taip visą laiką, kai buvome naudojant styginiams ir rašyti "labas" 398 00:19:28,490 --> 00:19:31,250 ir "pasaulis" ir kitų dalykų, apie ekranas, jis buvo laikomas 399 00:19:31,250 --> 00:19:32,820 į dėžutes, kaip šis. 400 00:19:32,820 --> 00:19:33,370 Ir atsižvelgti į tai atspėti. 401 00:19:33,370 --> 00:19:37,470 Ką kiekvienas langelis atstovauti fiziškai viduje kompiuterio? 402 00:19:37,470 --> 00:19:38,250 >> [Nesigirdi]. 403 00:19:38,250 --> 00:19:39,150 >> Atsiprašome? 404 00:19:39,150 --> 00:19:39,580 >> Charakteriai. 405 00:19:39,580 --> 00:19:44,760 >> Taigi simbolis, žinoma tuo atveju, eilučių ir simbolių yra tik 406 00:19:44,760 --> 00:19:46,800 Aštuoni bitai arba vienas baitas. 407 00:19:46,800 --> 00:19:49,550 Taigi, jūs tikriausiai yra bent miglotai susipažinęs su tuo, kad jūsų 408 00:19:49,550 --> 00:19:50,500 Kompiuteris turi atmintį. 409 00:19:50,500 --> 00:19:52,110 Jis turi dviejų tipų atminties bent. 410 00:19:52,110 --> 00:19:54,810 Vienas iš jų yra kietajame diske, kur išsaugoti Daiktai nuolat, ir tai 411 00:19:54,810 --> 00:19:57,400 paprastai didelės, todėl jūs galite turėti filmus ir muzika ir kt. 412 00:19:57,400 --> 00:20:04,010 >> Tada jūs turite kitą atminties tipą vadinama RAM, R-M Operatyvioji 413 00:20:04,010 --> 00:20:07,510 Atmintis, ir tai yra atminties tipas , kuris yra naudojamas, kai jūsų kompiuteris yra 414 00:20:07,510 --> 00:20:11,520 veikia, tačiau, jei jūs prarasti valdžią ar jūsų baterija miršta, nieko, kad saugomas 415 00:20:11,520 --> 00:20:15,300 RAM dingsta, jei jūs prarasti valdžią apskritai, nes tai nėra 416 00:20:15,300 --> 00:20:16,060 patvarus. 417 00:20:16,060 --> 00:20:19,120 Jūs paprastai turi šių dienų, koncertas tai, du koncertai, o gal ir daugiau. 418 00:20:19,120 --> 00:20:23,490 Ir RAM aukštyn, kad tai daug daug, daug greičiau nei kietieji diskai 419 00:20:23,490 --> 00:20:27,390 ar net kietojo kūno diskai šių dienų, bet tai paprastai brangesnis, todėl 420 00:20:27,390 --> 00:20:28,480 jūs turite mažiau. 421 00:20:28,480 --> 00:20:32,400 >> Taigi šiandienos pokalbis tikrai reiškia į RAM, kad atminties tipo, kad 422 00:20:32,400 --> 00:20:35,270 egzistuoja tik tada, kai ten galia šeriami į kompiuterį. 423 00:20:35,270 --> 00:20:40,530 Taigi, kai įvedate H-E-L-L-O, "Enter" klaviatūra, H vyksta vienoje 424 00:20:40,530 --> 00:20:44,550 baitų RAM, E vyksta kitas RAM baitų, kaip 425 00:20:44,550 --> 00:20:45,800 žodžio poilsio. 426 00:20:45,800 --> 00:20:49,010 Taigi prisiminti, kas mes galėjome padaryti paskutinį kartą buvo toks. 427 00:20:49,010 --> 00:20:53,940 Leiskite man eiti į priekį ir atverti failą kad mes vadinami string.c, ir prisiminti 428 00:20:53,940 --> 00:20:56,860 kad jis atrodė šiek tiek kažkas panašaus į tai. 429 00:20:56,860 --> 00:20:59,860 Leiskite man iš tikrųjų įvirsta ir keisti tai tiksliai kaip ji atrodė, 430 00:20:59,860 --> 00:21:02,654 eilutės ilgis S. 431 00:21:02,654 --> 00:21:04,560 >> Taigi, pažvelgti į programą čia. 432 00:21:04,560 --> 00:21:08,530 Mes įtraukti CS50 biblioteką pan kad mes galime naudoti gauti eilutę. 433 00:21:08,530 --> 00:21:11,400 Mes apima standartinį io.h todėl mes galime naudoti printf. 434 00:21:11,400 --> 00:21:13,580 Kodėl mes taip pat string.h? 435 00:21:13,580 --> 00:21:16,980 Tai buvo nauja pirmadienį. 436 00:21:16,980 --> 00:21:18,230 Taigi mes norėjome eilutės ilgis. 437 00:21:18,230 --> 00:21:19,090 G leng. 438 00:21:19,090 --> 00:21:21,470 Žmonės nusprendė metų, tegul tiesiog būti trumpas. 439 00:21:21,470 --> 00:21:24,290 Vietoj to, vadindami jį "eilutės ilgis" tegul ją vadina "g Leng" ir leiskite 440 00:21:24,290 --> 00:21:28,540 pasaulis rodiklis, kad iš, ir todėl tai ką mes gauti prieigą prie su string.h. 441 00:21:28,540 --> 00:21:29,390 >> Tai žinoma. 442 00:21:29,390 --> 00:21:30,320 Tai žinoma. 443 00:21:30,320 --> 00:21:31,450 Tai žinoma. 444 00:21:31,450 --> 00:21:32,370 Tai šiek tiek naujų. 445 00:21:32,370 --> 00:21:35,420 Atsižvelgiant į 22 - ir mes grįžti to, bet dabar žinau - 446 00:21:35,420 --> 00:21:37,880 ir jums bus tik žinau, tai gražu skaityti dokumentus, arba jei 447 00:21:37,880 --> 00:21:39,010 jūs žinojo C jau - 448 00:21:39,010 --> 00:21:41,510 gauti styginių kartais gali susukti. 449 00:21:41,510 --> 00:21:45,130 Jei vartotojas tikrai rungimosi arba nenoro ir jis arba ji tiesiog 450 00:21:45,130 --> 00:21:49,450 nėra įrašykite nieko prie klaviatūros arba rūšių tiek daug klaviatūroje, kad 451 00:21:49,450 --> 00:21:53,760 ji užvaldo kompiuterio atmintį, teoriškai gauti eilutė gali sugrįžti 452 00:21:53,760 --> 00:21:56,270 kažkas kita, nei simbolių eilutė. 453 00:21:56,270 --> 00:22:01,930 Tai gali grąžinti ypatingą vertę, vadinamą NULL visais dangteliais, N-U-L-L, ir tai yra 454 00:22:01,930 --> 00:22:03,390 tik vadinamasis kontrolinių vertė. 455 00:22:03,390 --> 00:22:08,010 Tai speciali reikšmė, kuri reiškia, kažkas blogo atsitiko ir šiuo atveju. 456 00:22:08,010 --> 00:22:10,520 Tai eilutę nebuvimas. 457 00:22:10,520 --> 00:22:16,190 >> Taigi nulis aš tikrinant tiesiog todėl, kad Trumpai tariant, g leng ir 458 00:22:16,190 --> 00:22:20,230 kitos funkcijos, kad ateis su C temperatūroje, jei jie tikisi eilutę, bet jums perduoti juos 459 00:22:20,230 --> 00:22:23,630 iš eilutės nėra, jei pereisite juos NULL, kompiuteris arba programa 460 00:22:23,630 --> 00:22:25,000 tiesiog sustos visiškai. 461 00:22:25,000 --> 00:22:25,610 Tai bus pakabinti. 462 00:22:25,610 --> 00:22:27,250 Tai bus mesti kai klaidos pranešimą. 463 00:22:27,250 --> 00:22:28,690 Blogi dalykai įvyks. 464 00:22:28,690 --> 00:22:31,130 Taigi, nors tai vis dar nėra gerai apibrėžta - 465 00:22:31,130 --> 00:22:33,730 tai bus daugiau prasmės per savaitę ar du - atsižvelgiant į 22, tai tik 466 00:22:33,730 --> 00:22:38,790 pavyzdys savarankiškai gynybinės klaidų tikrinimas tik tuo atveju, vieną kartą iš 467 00:22:38,790 --> 00:22:42,040 mln kažkas negerai, bent bent mano programa nebus avariją. 468 00:22:42,040 --> 00:22:45,960 >> Taigi, jei ų nėra lygus kažką blogo, Aš tai už linijos, ir tai buvo 469 00:22:45,960 --> 00:22:47,710 kur mes turėjome, kad kita Naujas kūrinys sintaksė. 470 00:22:47,710 --> 00:22:51,580 Turiu už linijos Iteracja nuo nuliui, iki s ilgio. 471 00:22:51,580 --> 00:22:56,140 Ir tada čia, aš buvau iš S Spausdinimo laikiklis aš, bet kodėl aš naudoju% C visi 472 00:22:56,140 --> 00:23:00,770 vietoj% s staiga net nors s eilutę? 473 00:23:00,770 --> 00:23:02,110 Tai simbolis, tiesa? 474 00:23:02,110 --> 00:23:06,560 S yra eilutė, bet ai laikiklis kažkas, ų laikiklis i kur i yra nulis 475 00:23:06,560 --> 00:23:10,380 arba vienas ar du, tai individualus simbolių į eilutę, ir todėl už 476 00:23:10,380 --> 00:23:14,970 kad printf turi būti informuojami, kad tai iš tiesų simbolis tikėtis. 477 00:23:14,970 --> 00:23:18,096 >> Ir tada prisimenu, kas tai padarė programa iš tikrųjų daryti? 478 00:23:18,096 --> 00:23:19,848 >> Atspausdinta jį skiltyse. 479 00:23:19,848 --> 00:23:21,120 >> Taip, tiksliai. 480 00:23:21,120 --> 00:23:24,990 Jis tiesiog atspausdinti žodį, kad aš tipo kolona, ​​vieną simbolį eilutėje. 481 00:23:24,990 --> 00:23:26,190 Taigi pažiūrėkime, tai dar kartą. 482 00:23:26,190 --> 00:23:27,810 Taigi, kad eilutę. 483 00:23:27,810 --> 00:23:30,200 Parengė Gerai. . / Eilutė. 484 00:23:30,200 --> 00:23:35,560 Leiskite man įvesti H-E-L-L-O, "Enter", ir iš tikrųjų aš jį gauti, po vieną eilutėje. 485 00:23:35,560 --> 00:23:37,280 >> Taigi leiskite man padaryti vieną optimizavimas čia. 486 00:23:37,280 --> 00:23:40,240 Jei jūs manote apie tai, ypač jei jūs užprogramuotas anksčiau, nėra 487 00:23:40,240 --> 00:23:43,340 be abejo, atitinka 24 neefektyvumas. 488 00:23:43,340 --> 00:23:46,160 Kitaip tariant, tai nebūtinai geriausią dizainą. 489 00:23:46,160 --> 00:23:50,200 Paprasta, bent kartą jums prisiminti, kas g Leng yra, bet tai 490 00:23:50,200 --> 00:23:52,640 kažką kvailas potencialiai. 491 00:23:52,640 --> 00:23:54,863 Kas gali būti? 492 00:23:54,863 --> 00:23:56,280 >> [Nesigirdi]. 493 00:23:56,280 --> 00:23:56,800 >> Būtent. 494 00:23:56,800 --> 00:24:00,340 Tai patikrinti dėl jo ilgio kiekvieną kartą, nors 495 00:24:00,340 --> 00:24:02,980 H-El-L-L-O visada vyksta būti penki ženklai. 496 00:24:02,980 --> 00:24:05,490 Kiekvienas per šį kilpa laikas, penkių nesikeičia. 497 00:24:05,490 --> 00:24:08,750 Galėčiau būti incrementing i, bet ką yra s ilgis apie kiekvieną 498 00:24:08,750 --> 00:24:09,690 iteracija šios linijos? 499 00:24:09,690 --> 00:24:15,810 Tai penkių, tai penkių, tai penkerių metų, ir dar aš vis klausia tai 500 00:24:15,810 --> 00:24:18,320 klausimas vėl ir vėl ir vėl. 501 00:24:18,320 --> 00:24:20,750 Dabar tiesą sakant, kompiuteris yra taip velniškai greitai, niekas manimi ketina pranešimas 502 00:24:20,750 --> 00:24:23,780 skirtumas šiuo atveju, tačiau šių rūšių prastos dizaino sprendimus gali 503 00:24:23,780 --> 00:24:28,330 pradėti pridėti, jei kompiliatorius pats nesistengia išspręsti šią problemą už jus, kurie 504 00:24:28,330 --> 00:24:30,630 jis paprastai nebūtų, bent jau prietaisą. 505 00:24:30,630 --> 00:24:31,540 >> Taigi, aš ruošiuosi tai padaryti. 506 00:24:31,540 --> 00:24:34,580 Aš ruošiuosi įdėti kablelis po mano pirmasis kintamasis, aš. 507 00:24:34,580 --> 00:24:37,310 Aš ruošiuosi suteikti sau kitą kintamasis, vadiname tai n, tiesiog 508 00:24:37,310 --> 00:24:41,330 konvencija numerių, ir tada aš ketina priskirti n styginių vertę 509 00:24:41,330 --> 00:24:42,530 ilgis s. 510 00:24:42,530 --> 00:24:46,060 Ir tada aš ruošiuosi keisti mano sąlyga, kad būtų ką? 511 00:24:46,060 --> 00:24:51,960 Aš ruošiuosi pakeisti savo būklę į, o aš yra mažesnis nei n. 512 00:24:51,960 --> 00:24:55,700 >> Taigi, dabar, kiek kartų aš tikrinti s ilgis? 513 00:24:55,700 --> 00:25:00,110 Vieną kartą, bet viskas OK patikrinti i nuo n vėl ir vėl, nes dabar tie 514 00:25:00,110 --> 00:25:03,170 vertės ne iš tikrųjų keičiasi. 515 00:25:03,170 --> 00:25:06,020 Dabar dabar, tiesiog žinau, kad bet kuriuo metu jus skambinti funkciją, yra tiek 516 00:25:06,020 --> 00:25:09,930 važtaraščius, nepakanka nepataria jums tikrai nuo kada naudojant funkcijas, bet 517 00:25:09,930 --> 00:25:12,750 tikrai kai ten kodo eilutę patinka - ir linijos gaus 518 00:25:12,750 --> 00:25:15,490 įdomiau prieš ilgas - kai yra galimybė galvoti, jei aš 519 00:25:15,490 --> 00:25:18,320 įveskite šį kodą, kiek kartus ji atlikti? 520 00:25:18,320 --> 00:25:20,950 Jūs pradėsite matyti laikui bėgant atlikimas jūsų programas galima 521 00:25:20,950 --> 00:25:21,660 iš tikrųjų pasikeisti. 522 00:25:21,660 --> 00:25:24,110 >> Iš tiesų, vienas iš problemos nustato mes daroma ankstesniais metais apima 523 00:25:24,110 --> 00:25:27,600 įgyvendinimo, kaip jūs galite prisiminti iš savaitę nulis, rašybos tikrintuvas, bet 524 00:25:27,600 --> 00:25:31,380 Rašybos tikrintuvas, kad sukurta siekiant remti 150000 žodynas plius 525 00:25:31,380 --> 00:25:32,860 žodžiai, kad mes jums vaikinai. 526 00:25:32,860 --> 00:25:37,100 Jums reikės rašyti kodą, kad kroviniai tos į RAM žodžiai, todėl į 527 00:25:37,100 --> 00:25:40,700 dėžės, kaip matėme ekrane akimirką prieš, o tada taip pat greitai, kaip jūs 528 00:25:40,700 --> 00:25:43,740 gali, ko jums reikia, kad būtų galima atsakyti į Klausimas į formą, yra šis žodis 529 00:25:43,740 --> 00:25:44,280 su klaidomis? 530 00:25:44,280 --> 00:25:45,420 Ar šis žodis su klaidomis? 531 00:25:45,420 --> 00:25:46,770 Ar šis žodis su klaidomis? 532 00:25:46,770 --> 00:25:49,525 >> O kažką panašaus į tai, ką mes daroma ankstesniais metais yra pavertė ją, 533 00:25:49,525 --> 00:25:53,500 nors ir opt-in savanoriškai, konkurencijos dvasia, kuria 534 00:25:53,500 --> 00:25:59,470 studentai, kurie naudoja mažiau RAM ir mažiau laikas, mažiau procesoriaus ciklus, galų gale 535 00:25:59,470 --> 00:26:02,640 burbuliuoja iki tiek viršuje lyderis lenta ar rango, kad mes įdėti 536 00:26:02,640 --> 00:26:04,770 Kursas oficiali svetainė kaip mes daroma ankstesniais metais. 537 00:26:04,770 --> 00:26:08,100 Taigi dar kartą, visiškai nebūtina, tačiau tai kalba projektavimo galimybes 538 00:26:08,100 --> 00:26:11,250 kad yra į priekį, kai mes pradėti statybos ant kai kurių iš jų 539 00:26:11,250 --> 00:26:14,010 blokai. 540 00:26:14,010 --> 00:26:16,780 >> Taigi leiskite man grįžti prie šio schema tik akimirką ir atskleisti tiek 541 00:26:16,780 --> 00:26:17,610 kažkas daugiau. 542 00:26:17,610 --> 00:26:21,400 Tai iš tiesų yra eilutė, o mes atlikome privalumas keletą bibliotekų, 543 00:26:21,400 --> 00:26:25,150 standartas io.h kuris - 544 00:26:25,150 --> 00:26:26,110 >> Printf. 545 00:26:26,110 --> 00:26:27,860 >> Printf, be kitų dalykų. 546 00:26:27,860 --> 00:26:31,540 cs50.h, kuri gauti int ir gauti eilutę ir tt, string.h, kuris 547 00:26:31,540 --> 00:26:32,570 turėjo g Leng. 548 00:26:32,570 --> 00:26:34,800 Tačiau paaiškėja, kad tai dar vienas. 549 00:26:34,800 --> 00:26:38,540 Atvirai kalbant, yra daug ir daug antraštės failus, kurie deklaruoja funkcijas 550 00:26:38,540 --> 00:26:43,320 bibliotekoms, tačiau tai ctype.h yra iš tikrųjų bus šiek tiek 551 00:26:43,320 --> 00:26:46,900 naudingas, nes aš ruošiuosi eiti į priekį ir įgyvendinti vieną 552 00:26:46,900 --> 00:26:48,120 kita programa čia. 553 00:26:48,120 --> 00:26:52,420 >> Leiskite man eiti į priekį ir pradėti kažką Parašiau iš anksto vadinamas 554 00:26:52,420 --> 00:26:55,750 capitalize.c, ir galime imtis tuo, kaip tai veikia išvaizdą. 555 00:26:55,750 --> 00:27:00,340 Atkreipkite dėmesį, kad aš naudoju, šioje versijoje jo, trys pažįstami failai. 556 00:27:00,340 --> 00:27:04,110 Atkreipkite dėmesį, kad atsižvelgiant į 18, aš gauti teksto eilutė. 557 00:27:04,110 --> 00:27:07,660 Pranešimas atitinka 21, aš teigdamas, kad šis kodas ketina 558 00:27:07,660 --> 00:27:12,170 pasinaudoti s, nepriklausomai vartotojas turi įvesti į, ir kaip aš darau, kad? 559 00:27:12,170 --> 00:27:13,300 Na, aš paimsiu - 560 00:27:13,300 --> 00:27:14,750 pasimokyta iš paskutinį kartą - 561 00:27:14,750 --> 00:27:18,370 Aš skelbiantis i ir n ir Iteracja per daugelį eilutės simbolių. 562 00:27:18,370 --> 00:27:22,720 Ir tada kas tai yra blokas kodas per 27 24 eilutėje 563 00:27:22,720 --> 00:27:24,550 tai profanas sąlygomis? 564 00:27:24,550 --> 00:27:27,766 565 00:27:27,766 --> 00:27:29,730 >> Mažosios laišką atgal. 566 00:27:29,730 --> 00:27:30,430 >> Būtent. 567 00:27:30,430 --> 00:27:35,920 Jei s laikiklis aš - taigi, jei i-asis pobūdis s, kuri yra konkretus 568 00:27:35,920 --> 00:27:40,220 char string, yra didesnė nei arba lygus mažosiomis ir - 569 00:27:40,220 --> 00:27:42,670 Primename, kad dvigubo ampersendo reiškia ir - 570 00:27:42,670 --> 00:27:46,810 ir tas pats simbolis, s laikiklis i yra mažesnis arba lygus mažosiomis raidėmis Z, 571 00:27:46,810 --> 00:27:50,600 tai reiškia, kad ji arba b arba c arba taškas, taškas, taškas, ar Z, o tai reiškia, 572 00:27:50,600 --> 00:27:51,340 tai mažosios. 573 00:27:51,340 --> 00:27:52,900 Ką aš noriu daryti tokiu atveju? 574 00:27:52,900 --> 00:27:55,010 Na, aš galiu tai padaryti šiek tiek cryptically, bet 575 00:27:55,010 --> 00:27:56,160 tegul erzinti tai atskirai. 576 00:27:56,160 --> 00:28:00,210 >> Aš ruošiuosi skambinti printf spausdina% C nes noriu atspausdinti šį 577 00:28:00,210 --> 00:28:01,580 simbolis ekrane. 578 00:28:01,580 --> 00:28:06,650 Aš tada truks s laikiklis Aš, I-asis simbolis s, tada kodėl 579 00:28:06,650 --> 00:28:12,330 aš darau tai mažai triukas čia mažosiomis minuso sostinę? 580 00:28:12,330 --> 00:28:16,352 Kas yra, kad ketina suteikti man apskritai? 581 00:28:16,352 --> 00:28:18,600 >> [Nesigirdi]. 582 00:28:18,600 --> 00:28:19,390 >> Būtent. 583 00:28:19,390 --> 00:28:20,860 Aš tikrai ne prisiminti - 584 00:28:20,860 --> 00:28:24,390 ji buvo 65 mirties A. Aš tikrai ne prisiminti, kas mažosiomis yra 585 00:28:24,390 --> 00:28:25,540 bet nesvarbu. 586 00:28:25,540 --> 00:28:26,580 Kompiuteris nežino. 587 00:28:26,580 --> 00:28:30,380 Taigi, sakydamas mažosiomis minuso kapitalas, tai keista, kad 588 00:28:30,380 --> 00:28:33,530 atimant vieną char nuo kito, bet kas yra simbolių po gaubtu? 589 00:28:33,530 --> 00:28:34,520 Jie tiesiog skaičiai. 590 00:28:34,520 --> 00:28:36,980 Taigi, ką tie skaičiai, tegul kompiuteryje prisiminti 591 00:28:36,980 --> 00:28:38,240 o už mane žmonių. 592 00:28:38,240 --> 00:28:41,710 >> Taigi mažosiomis minuso kapitalą yra ketina duoti man skirtumą. 593 00:28:41,710 --> 00:28:45,370 Tai atsitinka taip, 32, ir kad būtų už mažosiomis b ir kapitalo B atvejis 594 00:28:45,370 --> 00:28:45,930 ir kt. 595 00:28:45,930 --> 00:28:47,710 Jis lieka nuoseklūs, laimei. 596 00:28:47,710 --> 00:28:51,930 Taigi, aš iš esmės sakydamas, imtis mažosiomis laišką, atimti išjungti, kad 597 00:28:51,930 --> 00:28:55,340 standartas skirtumas, ir kad iš tiesų pakeičia s laikiklis i nuo 598 00:28:55,340 --> 00:28:59,400 mažąsias ir, žinoma, didžiąsias, be mano tikrai nereikės galvoti 599 00:28:59,400 --> 00:29:03,040 apie ar prisiminti, kokie buvo tie, numeriai mes kalbėjome apie kai aštuonių 600 00:29:03,040 --> 00:29:04,800 savanoriai atėjo ant scenos? 601 00:29:04,800 --> 00:29:08,800 Dabar Tuo tarpu kitur, jei tai nėra mažoji raidė, kaip nustatyta 602 00:29:08,800 --> 00:29:10,400 po eilutės 24, tiesiog atspausdinti jį. 603 00:29:10,400 --> 00:29:12,590 Aš tik noriu paliesti ženklai, kurie buvo 604 00:29:12,590 --> 00:29:14,410 iš tikrųjų iš pradžių mažosiomis raidėmis. 605 00:29:14,410 --> 00:29:15,150 >> Taigi pažiūrėkime tai. 606 00:29:15,150 --> 00:29:17,400 Padaryti didžiosiomis raidėmis. 607 00:29:17,400 --> 00:29:18,470 Parengė, Gerai. 608 00:29:18,470 --> 00:29:19,730 . / Didžiosiomis raidėmis. 609 00:29:19,730 --> 00:29:23,530 Ir leiskite man įvesti H-E-L-L-O mažosiomis raidėmis, "Enter". 610 00:29:23,530 --> 00:29:26,370 Ir pastebėsite, kad jis konvertuojamas į didžiąsias. 611 00:29:26,370 --> 00:29:27,940 Leiskite tai padaryti dar kartą skiriasi žodį. 612 00:29:27,940 --> 00:29:32,720 Kaip apie D-A-V-I-D su pirmąja D kapitalizuojamos kaip pavadinimas paprastai yra? 613 00:29:32,720 --> 00:29:33,560 Įveskite. 614 00:29:33,560 --> 00:29:34,870 Pranešimas vis dar teisinga. 615 00:29:34,870 --> 00:29:40,250 Jis tiesiog išvedamas kad pirmasis D nepakito per tą dar statyti. 616 00:29:40,250 --> 00:29:42,170 >> Taigi reikia nepamiršti, tada, pora dalykų čia. 617 00:29:42,170 --> 00:29:45,060 Vienas iš jų, jei Jums kada nors norėsite patikrinti du sąlygas iš karto, galite ir juos 618 00:29:45,060 --> 00:29:46,500 kartu, kaip mes prognozuojama. 619 00:29:46,500 --> 00:29:49,900 Galite palyginti simbolius tokiu būdu ir veiksmingai gydyti charakteriai 620 00:29:49,900 --> 00:29:53,050 numerius, bet atvirai, tai taip velniškai paslaptingas aš niekada prisiminti 621 00:29:53,050 --> 00:29:56,510 kaip sugalvoti tai nuo nulio be motyvų per jį gana 622 00:29:56,510 --> 00:29:57,140 šiek tiek laiko. 623 00:29:57,140 --> 00:30:00,590 >> Ar nebūtų buvę malonu, jei kas nors ten rašė funkcija vadinama yra 624 00:30:00,590 --> 00:30:05,390 sumažinti, kad galėtų atsakyti man tiesa arba klaidinga, šis personažas yra mažoji? 625 00:30:05,390 --> 00:30:09,350 Na, laimei, kas rašė ctype.h darė būtent tai. 626 00:30:09,350 --> 00:30:15,540 Leiskite man eiti čia ir pridėti ctype už a rūšys, o dabar leiskite man eiti čia ir 627 00:30:15,540 --> 00:30:18,820 perrašyti ši eilutė taip. 628 00:30:18,820 --> 00:30:27,510 >> Taigi, jei tai vadinama yra mažesnis, galiu reikalauti, s laikiklis aš, tada aš ruošiuosi ištrinti 629 00:30:27,510 --> 00:30:29,400 Šios dvi eilutės iš viso. 630 00:30:29,400 --> 00:30:32,570 Taigi dabar kažkas, aš tikiuosi, rašė funkcija vadinama yra mažesnis, ir tai 631 00:30:32,570 --> 00:30:36,250 Pasirodo, jie padarė ir jie pareiškė, ji viduje ctype.h. 632 00:30:36,250 --> 00:30:39,480 Ir dabar aš ruošiuosi palikti 27 eilutėje vieni, aš ruošiuosi palikti Line 31 633 00:30:39,480 --> 00:30:41,890 vienas, bet pastebėsite, kiek aš sugriežtino savo kodą. 634 00:30:41,890 --> 00:30:42,690 Tai dabar švaresnis. 635 00:30:42,690 --> 00:30:47,250 Tai mažiau sunku ieškoti per nes dabar funkcija, be to, yra 636 00:30:47,250 --> 00:30:50,080 taip nuostabiai pavadino jį tiesiog ką ji sako. 637 00:30:50,080 --> 00:30:51,520 >> Taigi, dabar aš ruošiuosi tai išsaugoti. 638 00:30:51,520 --> 00:30:52,930 Aš ruošiuosi nutolinti. 639 00:30:52,930 --> 00:30:56,650 Ir tik kaip scratch galite turėti Loginę, Būlio reikšmės true arba 640 00:30:56,650 --> 00:31:01,530 klaidinga, tai yra būtent tai, kas yra sumažinti veiksmingai grąžą. 641 00:31:01,530 --> 00:31:02,960 Leiskite perkompiliuoti. 642 00:31:02,960 --> 00:31:04,500 Leiskite man pakartoti. 643 00:31:04,500 --> 00:31:07,350 O dabar pabandykime dar kartą, H-El-L-L-O Enter. 644 00:31:07,350 --> 00:31:07,970 Tai gana geras. 645 00:31:07,970 --> 00:31:10,150 Ir pabandyti dar kartą, įsitikinkite, kad aš nebuvo prisukti kažką daugiau. 646 00:31:10,150 --> 00:31:11,670 Tai kapitalizuojamos kaip gerai. 647 00:31:11,670 --> 00:31:14,190 >> Bet tai nėra pakankamai gera, nes Kitas dalykas, kad aš niekada 648 00:31:14,190 --> 00:31:19,090 prisiminsite, nebent aš dirbu per jį tikrai atsargiai, tarkim, popierius 649 00:31:19,090 --> 00:31:19,920 tai velniškai linija. 650 00:31:19,920 --> 00:31:23,450 Ar nebūtų puiku, jei ten buvo funkcija vadinama aukštesniojo? 651 00:31:23,450 --> 00:31:26,930 Na tai pasirodo ten yra ctype.h taip pat. 652 00:31:26,930 --> 00:31:30,150 Aš ruošiuosi eiti į priekį, o tipas - 653 00:31:30,150 --> 00:31:31,340 leiskite man pareikšti, kad linija atgal. 654 00:31:31,340 --> 00:31:36,430 Vietoj to čia, leiskite man eiti į priekį ir pasakyti, pavaduoti% C 655 00:31:36,430 --> 00:31:42,110 rezultatas, iš kurios skambinama šią funkciją viršutinė nurodo i-ojo požymio s. 656 00:31:42,110 --> 00:31:45,430 Ir dabar pastebėsite, kad jis darosi tiek subalansuota. 657 00:31:45,430 --> 00:31:48,870 Turiu sekti, kiek skliausteliuose aš atidaryti ir uždaryti. 658 00:31:48,870 --> 00:31:50,050 >> Taigi, dabar net švaresnis. 659 00:31:50,050 --> 00:31:53,460 Dabar ši programa yra vis geriau ir geriau skirti tikriausiai, nes jis 660 00:31:53,460 --> 00:31:56,450 daug, daug lengviau skaityti, bet Tai ne tegul ištaisyti. 661 00:31:56,450 --> 00:31:57,600 Padaryti didžiosiomis raidėmis. 662 00:31:57,600 --> 00:31:58,930 . / Didžiosiomis raidėmis. 663 00:31:58,930 --> 00:32:03,220 H-El-L-L-O. Leiskite paleisti jį dar kartą, D-V-aš-D. Gerai, kad mes vis dar 664 00:32:03,220 --> 00:32:04,250 gana geros formos. 665 00:32:04,250 --> 00:32:06,030 >> Bet dabar priekis. 666 00:32:06,030 --> 00:32:09,720 Siūlau, kad yra dar vienas tobulinimas, mes galime padaryti, kad būtų 667 00:32:09,720 --> 00:32:12,820 tikrai gražus, kad tikrai galėjo sugriežtinti iki šio kodekso ir tikrai mums penkis 668 00:32:12,820 --> 00:32:15,150 iš penkių projektavimo, pavyzdžiui. 669 00:32:15,150 --> 00:32:16,510 Kas būtų malonu atsikratyti? 670 00:32:16,510 --> 00:32:20,770 Na, atrodo kaip velniškai ilgą šį bloką kodas yra tiesiog padaryti ką nors paprasto. 671 00:32:20,770 --> 00:32:23,850 >> Dabar, kaip panaikinti, kaip jūs galite turėti matyti super skyriuje praėjusį 672 00:32:23,850 --> 00:32:27,570 savaitgalį, jūs neturite griežtai reikia garbanotas petnešos, kai jūs tik vieną 673 00:32:27,570 --> 00:32:32,180 eilutėje kodas, nors mes pasiūlėme išlaikyti juos taip, kad tai daro daug 674 00:32:32,180 --> 00:32:36,190 labiau aišku, kaip ir nulio yra U formos blokai, kas viduje filialo. 675 00:32:36,190 --> 00:32:40,170 Bet ar nebūtų malonu, jei prie viršutinės , kai atsižvelgiant į jos indėlį, pasuko jį į 676 00:32:40,170 --> 00:32:44,730 didžiąsias, jei ne, o kas būtų nuostabu priešingu atveju, jei 677 00:32:44,730 --> 00:32:47,210 tai jau didžiosios? 678 00:32:47,210 --> 00:32:49,620 Tiesiog perduoti jį per ir palikite jį ramybėje. 679 00:32:49,620 --> 00:32:50,660 >> Taigi, gal tai daro. 680 00:32:50,660 --> 00:32:52,990 Galėčiau pabandyti ir tiesiog tikiuosi, kad ji, bet leiskite man 681 00:32:52,990 --> 00:32:54,450 pristatyti dar vieną dalyką. 682 00:32:54,450 --> 00:32:57,440 Vietoj to, naudojant šį įmontuotą terminalą langas žemyn čia, priminti, kad 683 00:32:57,440 --> 00:33:01,130 šioje aikštėje juoda piktograma suteikia jums didesnis terminalo langą, kad galėčiau pilnas 684 00:33:01,130 --> 00:33:02,260 ekraną, jei aš noriu? 685 00:33:02,260 --> 00:33:05,820 Taigi paaiškėja, kad jie tarsi keistai pavadintas, bet ten šie dalykai vadinami 686 00:33:05,820 --> 00:33:10,970 vyras puslapiai, vadovo puslapius, ir vyras trumpam, ir aš galiu prieiti prie šių projektų 687 00:33:10,970 --> 00:33:14,515 įvedę vyras - 688 00:33:14,515 --> 00:33:15,570 ką aš noriu tipui? 689 00:33:15,570 --> 00:33:17,830 Žmogus upper. 690 00:33:17,830 --> 00:33:21,090 >> Ir dabar pastebėsite, jei egzistuoja veikti viduje kompiuterio, į 691 00:33:21,090 --> 00:33:23,970 Šiuo atveju prietaisas, kuris yra tik operacinė sistema "Linux", jis ketina 692 00:33:23,970 --> 00:33:27,920 duoti man šiek tiek paslaptingas rinkinį galia, bet jūs rasite daugiau nei kartą, kad 693 00:33:27,920 --> 00:33:31,720 ji visada yra suformatuotas gana daug tas pats, kad jūs pradėti priprasti prie jo. 694 00:33:31,720 --> 00:33:35,130 Pranešimas viršuje didžiosiomis raidėmis, ir matyt, yra ta pati dokumentacija 695 00:33:35,130 --> 00:33:35,680 už sumažinti. 696 00:33:35,680 --> 00:33:38,740 Kas rašė jis pjovimo kai kampai ir padėkite jį visi ant vieno lapo. 697 00:33:38,740 --> 00:33:40,720 Šie dalykai "paskirtis gyvenimas yra konvertuoti 698 00:33:40,720 --> 00:33:42,780 laišką viršutinė arba mažosiomis raidėmis. 699 00:33:42,780 --> 00:33:46,290 >> Atkreipkite dėmesį, kad pagal Anotacija, vyras puslapis moko mane, kas tai per failas Turiu 700 00:33:46,290 --> 00:33:48,130 įtraukti naudoti šį dalyką. 701 00:33:48,130 --> 00:33:51,320 Tai suteikia man Šių parašų funkcijos, jie abu, net 702 00:33:51,320 --> 00:33:53,510 nors mes dabar tik rūpintis vienas. 703 00:33:53,510 --> 00:33:54,730 Štai dabar aprašymą. 704 00:33:54,730 --> 00:33:58,800 Norėdami viršutinė paverčia laišką c į didžiąsias, jei įmanoma. 705 00:33:58,800 --> 00:34:02,280 >> Dar nereiškia, kad pamokantis, bet leiskite man dabar atrodo pagal sugrįžimo vertę, dalykas 706 00:34:02,280 --> 00:34:03,520 tai grąžino. 707 00:34:03,520 --> 00:34:08,600 Taigi, grąžinta reikšmė yra ta, kad konvertuojami raidė arba C, jei 708 00:34:08,600 --> 00:34:09,870 konversija buvo neįmanoma. 709 00:34:09,870 --> 00:34:11,202 Kas yra c? 710 00:34:11,202 --> 00:34:12,560 >> Savitumą. 711 00:34:12,560 --> 00:34:15,370 >> Savitumą ir mes žinome, kad vėl einame į 712 00:34:15,370 --> 00:34:19,179 santrauką, ir kas parašė šią funkcija tiesiog nusprendė, kad įėjimas 713 00:34:19,179 --> 00:34:22,909 į į viršutinę ir mažesnės, yra tik savavališkai bus vadinamas a. 714 00:34:22,909 --> 00:34:24,909 Jie galėjo pavadino jį labiausiai nieko jie nori, bet jie laikė jį 715 00:34:24,909 --> 00:34:26,270 paprasta, kaip a. 716 00:34:26,270 --> 00:34:27,880 Taigi, aš kreipėsi į žinyno puslapį. 717 00:34:27,880 --> 00:34:31,870 Šis sakinys ramina mane, kad jei tai ne mažoji raidė, tai 718 00:34:31,870 --> 00:34:34,969 vyksta tiesiog duoti man atgal C, kuris yra tobula, o tai reiškia, aš galiu atsikratyti 719 00:34:34,969 --> 00:34:36,199 mano kita sąlyga. 720 00:34:36,199 --> 00:34:39,679 >> Taigi leiskite man grįžti į gedit ir Dabar leiskite man tiesiog tai padaryti. 721 00:34:39,679 --> 00:34:41,960 Aš ruošiuosi kopijuoti mano printf. 722 00:34:41,960 --> 00:34:45,969 Aš ruošiuosi eiti į priekį ir tiesiai kilpos spaudoje, kad iš, ir gauti 723 00:34:45,969 --> 00:34:48,760 atsikratyti dabar visas šis jei konstruktas. 724 00:34:48,760 --> 00:34:51,860 Nebuvo bloga idėja, ir tai buvo labai daug teisinga ir atitinka 725 00:34:51,860 --> 00:34:54,100 viskas mes skelbė, bet tiesiog nėra būtina. 726 00:34:54,100 --> 00:34:57,070 Kai tik jūs suprasite, kai biblioteką funkcija yra, kad kažkas 727 00:34:57,070 --> 00:35:01,340 rašė: o gal rašėte kitur failą, galite jį naudoti ir tikrai 728 00:35:01,340 --> 00:35:02,690 pradėti sugriežtinti kodą. 729 00:35:02,690 --> 00:35:06,080 >> Ir kai aš sakau dalykų, pavyzdžiui, gero stiliaus, tai, kad šis asmuo vadinamas 730 00:35:06,080 --> 00:35:11,490 veikti aukštesniojo arba anksčiau yra žemesnis yra nuostabiai naudinga, nes 731 00:35:11,490 --> 00:35:12,900 jie labai aprašomasis. 732 00:35:12,900 --> 00:35:16,120 Jūs nenorėtų skambinti savo funkcijas x ir y ir z, kurie turi 733 00:35:16,120 --> 00:35:19,620 daug, daug mažiau reikšmės. 734 00:35:19,620 --> 00:35:25,160 Visi tos serijos klausimai patobulinimų? 735 00:35:25,160 --> 00:35:28,010 >> Taigi pakanka pasakyti vieną takeaways net kaip savo problemą 736 00:35:28,010 --> 00:35:30,960 rinkinys - gal problema nustatyti vieną, bet tikrai P, nustatyti du ir toliau, net 737 00:35:30,960 --> 00:35:34,380 kai jie teisingi nebūtinai reiškia, kad jie yra puikus tiesiog 738 00:35:34,380 --> 00:35:36,155 ar dar ypač gerai parengta. 739 00:35:36,155 --> 00:35:38,420 Štai kitas ašis pradėti galvoti apie. 740 00:35:38,420 --> 00:35:41,730 Taigi tai buvo eilutė viduje jūsų kompiuterio atminties, bet jei turite 741 00:35:41,730 --> 00:35:46,180 visa krūva simbolių kaip H-E-L-L-O viduje RAM, ir manyti, 742 00:35:46,180 --> 00:35:51,330 kad jūs savo programą vadina gauti eilutę kelis kartus, pavyzdžiui, kad jūs 743 00:35:51,330 --> 00:35:54,200 skambinti gauti eilutę vieną kartą, tada jūs skambinti gauti eilutę dar kartą. 744 00:35:54,200 --> 00:35:55,880 Na, kas vyksta įvykti per tam tikrą laiką? 745 00:35:55,880 --> 00:35:59,170 >> Kitaip tariant, jei turite liniją kodas, nors iš konteksto, pavyzdžiui, 746 00:35:59,170 --> 00:36:02,120 styginių ai gauna - 747 00:36:02,120 --> 00:36:02,960 darykime tai. 748 00:36:02,960 --> 00:36:05,270 Styginių pavadinimas yra gauti eilutę. 749 00:36:05,270 --> 00:36:08,590 Taigi tarkime, kad kodo eilutę reiškia paklausti jo ar jos vardą vartotoją. 750 00:36:08,590 --> 00:36:14,580 Tai naujos eilutėje kodas yra skirtas paklausti jo ar jos mokyklos vartotojas, ir 751 00:36:14,580 --> 00:36:15,920 tai kitą eilutę, ir kt. 752 00:36:15,920 --> 00:36:18,150 Tarkime, kad mes nuolat klausia kito vartotojo ir 753 00:36:18,150 --> 00:36:19,750 kitą, ir kitą eilutę. 754 00:36:19,750 --> 00:36:22,390 Jie ketina likti atmintyje tuo pačiu metu. 755 00:36:22,390 --> 00:36:24,280 Vienas nesiruošia Bylų kitą. 756 00:36:24,280 --> 00:36:26,420 Mokykla yra ne perrašyti kitos. 757 00:36:26,420 --> 00:36:28,520 Bet kur jie visi galų gale atmintį? 758 00:36:28,520 --> 00:36:32,030 >> Na, jei mes pradedame piešti ant ekrano kuriuos mes galime naudoti šį dalyką 759 00:36:32,030 --> 00:36:35,800 čia kaip lentos, jei tai juoda stačiakampis yra mano kompiuterio 760 00:36:35,800 --> 00:36:39,800 atminties, aš ruošiuosi savavališkai pradėti dalijant jį į mažai kvadratų, 761 00:36:39,800 --> 00:36:42,120 kurių kiekvienas atstovauja Vieno baito atminties. 762 00:36:42,120 --> 00:36:46,560 Atvirai kalbant, jei turite RAM gigabaito šių dienų, jūs turite milijardas baitų 763 00:36:46,560 --> 00:36:49,540 atminties į savo kompiuterį, todėl Šių kvadratų mlrd. 764 00:36:49,540 --> 00:36:52,110 Taigi pakanka pasakyti, tai tikrai ne pagal mastelį. 765 00:36:52,110 --> 00:36:58,250 >> Bet mes galime išlaikyti piešimo visi šie aiškiai ne pagal mastelį kvadratų, o tai 766 00:36:58,250 --> 00:37:01,260 kartu sudaro mano kompiuterio atminties. 767 00:37:01,260 --> 00:37:03,136 Dabar mes tiesiog daryti dot, dot, dot. 768 00:37:03,136 --> 00:37:06,260 Taigi, kitaip tariant, kai aš dabar greitai vartotojas su get eilutę man 769 00:37:06,260 --> 00:37:07,350 eilutę, kas atsitiks? 770 00:37:07,350 --> 00:37:14,270 Jei vartotojas įveda į "labas", kuris baigiasi iki H-E L-L-O. Bet tarkime, 771 00:37:14,270 --> 00:37:15,720 Tada vartotojas tipai - 772 00:37:15,720 --> 00:37:17,250 Tiesą sakant, aš nepadarė Apie nes mes klausia 773 00:37:17,250 --> 00:37:18,330 už jų pavadinimų. 774 00:37:18,330 --> 00:37:20,580 Taigi eikime atgal, jei aš galiu tai padaryti. 775 00:37:20,580 --> 00:37:26,130 >> Taigi, jei aš tipo D-A-V-I-D mano vardui, tačiau primena, kad antroje eilutėje 776 00:37:26,130 --> 00:37:29,220 kodas buvo gauti eilutę vėl gauti savo mokykloje. 777 00:37:29,220 --> 00:37:32,090 Kur yra tas žodis, kad vartotojas tipai ketina eiti toliau? 778 00:37:32,090 --> 00:37:38,290 Na, gal jis ketina eiti į H-R-V-R-D. Taigi, nors aš 779 00:37:38,290 --> 00:37:41,560 sudarytas kaip dviejų eilių, tai tik visa krūva baitų jūsų 780 00:37:41,560 --> 00:37:42,710 kompiuterio RAM. 781 00:37:42,710 --> 00:37:46,560 Yra problema dabar, nes dabar, jei aš naudojant RAM tai labai protinga 782 00:37:46,560 --> 00:37:49,910 bet tarsi naivus Beje, ką tu gali akivaizdžiai nėra atskirti? 783 00:37:49,910 --> 00:37:52,640 784 00:37:52,640 --> 00:37:54,680 Kai vienas pradeda ir kur vienas baigiasi, tiesa? 785 00:37:54,680 --> 00:37:55,860 Jie rūšies nyksta kartu. 786 00:37:55,860 --> 00:37:57,920 >> Taigi paaiškėja, kad kompiuteris to nedaro. 787 00:37:57,920 --> 00:38:04,720 Leiskite man iš tikrųjų slinkti atgal laiku į Keli ženklai, o vietoj Harvardo 788 00:38:04,720 --> 00:38:09,570 vyksta iš karto po vartotojo vardu, vartotojas iš tikrųjų gauna, už 789 00:38:09,570 --> 00:38:12,000 scenos, specialus simbolis įterptas 790 00:38:12,000 --> 00:38:13,885 kompiuteris jam ar jai. 791 00:38:13,885 --> 00:38:19,470 / 0, kitaip žinoma kaip nul pobūdžio įkyriai vadinamas N-U-L, o ne 792 00:38:19,470 --> 00:38:22,190 N-U L-L, bet rašote kaip / 0. 793 00:38:22,190 --> 00:38:27,130 Tai tiesiog visi nuliui bitai yra žymeniu tarp pirmojo žodžio, kad vartotojo 794 00:38:27,130 --> 00:38:28,290 atspausdinti ir sekundę. 795 00:38:28,290 --> 00:38:33,020 >> Taigi Harvardo tikrųjų dabar baigiasi nes tai simbolių seka 796 00:38:33,020 --> 00:38:36,110 ir dar vienas / 0. 797 00:38:36,110 --> 00:38:41,690 Taigi, kitaip tariant, turėdami jų kontroliniai dydžiai, aštuonių artimos nulinės 798 00:38:41,690 --> 00:38:45,220 bitai, dabar galite pradėti atskirti vieną simbolį nuo kito. 799 00:38:45,220 --> 00:38:49,720 Taigi visą šį laiką, kas buvo "labas" yra iš tikrųjų "labas" su / 0, ir 800 00:38:49,720 --> 00:38:53,580 tuo tarpu, gali labai gerai būti gana šiek tiek daugiau RAM 801 00:38:53,580 --> 00:38:56,400 viduje kompiuterio. 802 00:38:56,400 --> 00:38:57,810 >> Leiskite man padaryti vienas kitas dalykas dabar. 803 00:38:57,810 --> 00:39:01,800 Pasirodo, kad visi šie kvadratų mes buvo piešimo, jie, taip, 804 00:39:01,800 --> 00:39:06,140 stygos, bet apskritai, šie dalykai yra matricos. 805 00:39:06,140 --> 00:39:10,590 Masyvas yra tik atminties riekė tai atgal atgal atgal į nugaros, 806 00:39:10,590 --> 00:39:15,130 ir jūs paprastai naudoja masyvą būdu Šio kvadratinį laikiklis notacijos. 807 00:39:15,130 --> 00:39:18,210 Taigi, mes ketiname pamatyti šiuos gana didelis per tam tikrą laiką, bet leiskite man eiti į priekį ir 808 00:39:18,210 --> 00:39:21,160 atverti, tegul jį vadiname amžiaus. 809 00:39:21,160 --> 00:39:23,920 Ir pastebėsite, ką mes galime padaryti su tie patys triukai, mažai 810 00:39:23,920 --> 00:39:25,750 šiek tiek daugiau sintaksė čia. 811 00:39:25,750 --> 00:39:29,270 >> Taigi šios programos 17 eilutėje - Tiesą sakant, leiskite man paleisti programą pirmą kartą 812 00:39:29,270 --> 00:39:30,770 todėl mes galime pamatyti, ką šis dalykas veikia. 813 00:39:30,770 --> 00:39:33,530 Leiskite man skambinti, kad amžinybę sudaryti šią programą. 814 00:39:33,530 --> 00:39:34,950 . / Amžiaus. 815 00:39:34,950 --> 00:39:36,480 Kiek žmonių yra kambaryje? 816 00:39:36,480 --> 00:39:38,020 Pavadinkite tai trys. 817 00:39:38,020 --> 00:39:39,575 Amžius pirmojo asmens? 818 00:39:39,575 --> 00:39:42,710 18, 19 ir 20. 819 00:39:42,710 --> 00:39:46,770 O dabar šiek tiek juokingai, aš tiesiog padarė programą, kuri amžių tuos 820 00:39:46,770 --> 00:39:47,740 trys žmonės. 821 00:39:47,740 --> 00:39:50,390 >> Taigi ten aiškiai galimybė tam tikrą įdomus aritmetika čia. 822 00:39:50,390 --> 00:39:51,560 Laimei, matematika yra teisinga. 823 00:39:51,560 --> 00:39:54,720 18 išvyko į 19, 19 buvo iki 20 ir kt. 824 00:39:54,720 --> 00:39:58,510 Bet ką iš tikrųjų reiškia būti iliustracinio čia yra kaip mes saugoti 825 00:39:58,510 --> 00:40:00,190 šių trijų žmonių amžiaus. 826 00:40:00,190 --> 00:40:02,370 Leiskite man padidinti ne kas čia vyksta. 827 00:40:02,370 --> 00:40:06,240 >> Taigi, pirma, šių pirmųjų eilučių turėtų būti gauti gana pažįstamas. 828 00:40:06,240 --> 00:40:08,770 Aš tiesiog paskatino vartotojui žmonių skaičius kambaryje. 829 00:40:08,770 --> 00:40:11,490 Tada aš naudoju gauti int ir daryti, o į tai padaryti ir vėl ir vėl ir vėl. 830 00:40:11,490 --> 00:40:15,780 Mes matėme, kad modelis ir anksčiau, bet 27 eilutėje yra nauja ir tikrai gana 831 00:40:15,780 --> 00:40:18,160 naudinga, ir bus labiau naudinga. 832 00:40:18,160 --> 00:40:21,620 Atkreipkite dėmesį, kad tai, kas skiriasi pagal 27 tai, kad aš, atrodo, skelbiantis 833 00:40:21,620 --> 00:40:23,960 int vadinamas amžiaus, tačiau palaukti. 834 00:40:23,960 --> 00:40:27,140 Tai ne tik int amžiaus. 835 00:40:27,140 --> 00:40:30,130 Yra šie laužtiniuose skliaustuose, kurio viduje yra n. 836 00:40:30,130 --> 00:40:35,150 >> Taigi laikiklis n šiame kontekste, o ne viduje printf čia, bet 837 00:40:35,150 --> 00:40:44,370 šiuo vieninteliu linijos 27, ši eilutė yra sakydama: 'Leisk man n int, kurių kiekvienas 838 00:40:44,370 --> 00:40:46,080 yra tipo int. 839 00:40:46,080 --> 00:40:49,870 Taigi tai yra kaušas, taip sakant,, šiuo atveju, trys sveikieji skaičiai atgal į 840 00:40:49,870 --> 00:40:52,770 atgal atgal, kad galėčiau efektyviai turi tris kintamuosius. 841 00:40:52,770 --> 00:40:54,890 Alternatyva, kad būtų aišku, būtų tai. 842 00:40:54,890 --> 00:40:57,400 >> Jei aš norėjau pirmą studento amžiaus, galiu tai padaryti. 843 00:40:57,400 --> 00:40:59,520 Jei aš norėjau antra studento Amžius galėčiau tai padaryti. 844 00:40:59,520 --> 00:41:01,860 Jei aš norėjau trečioji studento amžiaus, galiu tai padaryti. 845 00:41:01,860 --> 00:41:04,320 Ir neduok Dieve mums reikia kiekvieno žmogaus amžiaus šiame kambaryje - 846 00:41:04,320 --> 00:41:07,670 Aš turiu galvoje, tai yra iš kopijos daug gi, įdėti vėl ir vėl ir vėl. 847 00:41:07,670 --> 00:41:10,870 Ir plius kai aš sudaryti šią programą, jei kitas studentas eina per iš 848 00:41:10,870 --> 00:41:14,200 tos duris, dabar mano numeris kintamųjų yra neteisinga. 849 00:41:14,200 --> 00:41:17,450 >> Taigi, kas yra malonu apie masyvo yra kaip Kai tik pradėsite jausti save 850 00:41:17,450 --> 00:41:20,190 kopijuoti ir įklijuoti, šansai yra, kad tai ne geriausias būdas. 851 00:41:20,190 --> 00:41:22,240 Masyvas yra dinamiškas potencialiai. 852 00:41:22,240 --> 00:41:24,610 Aš nežinau, iš anksto, kiek žmonių ketinate būti patalpoje, 853 00:41:24,610 --> 00:41:28,670 bet aš žinau, man reikia n iš jų, ir aš išsiaiškinti, n, kai ateis laikas. 854 00:41:28,670 --> 00:41:35,500 Šis kodo eilutę dabar reiškia, duok man riekė atmintis, kuri atrodo taip 855 00:41:35,500 --> 00:41:40,380 kur dėžių skaičius ekrane visiškai priklauso nuo n, kad 856 00:41:40,380 --> 00:41:42,010 vartotojas turi įvesti in 857 00:41:42,010 --> 00:41:44,850 >> Taigi dabar šios programos dalis yra iš tikrųjų labai panašus į tai, ką mes 858 00:41:44,850 --> 00:41:46,860 tiesiog padariau su simbolių. 859 00:41:46,860 --> 00:41:49,970 Pranešimas turiu už linijos pradedant 30 eilutėje. 860 00:41:49,970 --> 00:41:54,920 Taigi iškart po Gaunu masyvas, aš kartoti nuo m lygus nuliui ne daugiau kaip n. 861 00:41:54,920 --> 00:41:58,890 Turiu tik tai pamokantis printf pranešimą tiesiog pasakyti, duok amžių 862 00:41:58,890 --> 00:42:03,690 asmens #% aš, todėl numeris vienas, numeris du, skaičius trys. 863 00:42:03,690 --> 00:42:04,730 Ir kodėl man tai padaryti? 864 00:42:04,730 --> 00:42:08,870 Atvirai kalbant, žmonės nori skaičiuoti nuo vieno On Up kadangi kompiuterių mokslininkų, 865 00:42:08,870 --> 00:42:09,620 nulio iki. 866 00:42:09,620 --> 00:42:11,700 kompiuterių mokslininkai nesiruošia naudoti tokio pobūdžio programa, todėl mes 867 00:42:11,700 --> 00:42:13,990 vyksta tiesiog pradėti skaičiuoti bent vienas, kaip įprasta žmonėms. 868 00:42:13,990 --> 00:42:17,630 >> Ir dabar atitinka 33, pastebėti šiek tiek kitoks gabalas sintaksė. 869 00:42:17,630 --> 00:42:23,710 I-ojo amžiaus toje tipo kintamasis masyvas ketinate gauti int. 870 00:42:23,710 --> 00:42:25,770 Ir dabar, galiausiai, tai tik aritmetinis čia. 871 00:42:25,770 --> 00:42:29,200 Aš nusprendžiau atskirame kilpa reikalauti kai laikas eina, o dabar tai 872 00:42:29,200 --> 00:42:31,400 atskiras kilpa, šios eilutės vykdyti. 873 00:42:31,400 --> 00:42:35,810 >> O per metus, asmuo būsiu aš metai, bet pranešimas, tai nėra 874 00:42:35,810 --> 00:42:36,500 kintamąjį i. 875 00:42:36,500 --> 00:42:38,390 Tai dabar% I int. 876 00:42:38,390 --> 00:42:43,210 Ir pranešimas pirmuoju vietos rezervavimo ženklą, aš prijungti i plius 1, taigi tikimės kaip 877 00:42:43,210 --> 00:42:44,250 normalus žmogus. 878 00:42:44,250 --> 00:42:49,190 Ir tada dėl jų amžiaus verte, jei i metai, aš amžiaus laikiklis 879 00:42:49,190 --> 00:42:52,980 i - ir kodėl aš darau plius vienas čia? 880 00:42:52,980 --> 00:42:53,760 Jie tiesiog metų. 881 00:42:53,760 --> 00:42:55,030 Tai mano kvailas pasirinkimas programas. 882 00:42:55,030 --> 00:42:56,810 Jie tiesiog metų vienerių metų laikotarpiui. 883 00:42:56,810 --> 00:42:59,770 Galėčiau įvesti bet kokį skaičių šio Aš iš tikrųjų noriu ten. 884 00:42:59,770 --> 00:43:02,430 >> Taigi, kas iš tikrųjų visi aktualumas čia? 885 00:43:02,430 --> 00:43:07,610 Na, leiskite man iš tikrųjų pereikite atgal čia ir dažų paveikslėlį 886 00:43:07,610 --> 00:43:10,830 apie tai, kas laukia priekyje. 887 00:43:10,830 --> 00:43:15,720 Ką mes daryti su mūsų kita Problema nustatyti du yra žymėjimą 888 00:43:15,720 --> 00:43:17,070 pasaulis kriptografija. 889 00:43:17,070 --> 00:43:22,500 Taigi tai yra simbolių eilutė, todėl seka daug simbolių, ir ką 890 00:43:22,500 --> 00:43:23,750 tai sako? 891 00:43:23,750 --> 00:43:28,530 892 00:43:28,530 --> 00:43:30,600 Tai ne internetinis variantas skaidres. 893 00:43:30,600 --> 00:43:35,880 >> Taigi, aš teigia, kad tai sudaro tai, kvaila reklama iš daug metų 894 00:43:35,880 --> 00:43:39,950 prieš, kad iš tiesų gali priminti vienas iš jos kilmę. 895 00:43:39,950 --> 00:43:42,740 Taigi tai yra šifravimo pavyzdys arba kriptografija. 896 00:43:42,740 --> 00:43:46,150 Pasirodo, kad jei norite iš tikrųjų siųsti informaciją ar dalintis 897 00:43:46,150 --> 00:43:49,310 informacija su žmogumi saugiai kaip, pavyzdžiui, šį pranešimą, galite 898 00:43:49,310 --> 00:43:50,500 peštynės raides. 899 00:43:50,500 --> 00:43:53,170 Tačiau paprastai žodžiai yra ne plakta atsitiktinai. 900 00:43:53,170 --> 00:43:56,365 Jie išgrynintas vienaip ar pasikeitė tam tikru būdu, kad: - Oi. 901 00:43:56,365 --> 00:43:59,040 Tai įdomus spoileris kitą kartą. 902 00:43:59,040 --> 00:44:04,390 >> Taigi galite map kas, matyt, O B. pranešimą, kad linijos iki 903 00:44:04,390 --> 00:44:05,420 kapitalizacijos išmintingas. 904 00:44:05,420 --> 00:44:07,960 Matyt r tampa el. 905 00:44:07,960 --> 00:44:14,000 Matyt F-H-E-R tampa S-U-R-El. Taip Pasirodo, ten kartografavimo ir 906 00:44:14,000 --> 00:44:18,720 Šiuo atveju yra gana kvailas kartografavimo, jei kas nors suprato jį? 907 00:44:18,720 --> 00:44:21,440 Tai yra kažkas, vadinamas Burna 13 Sukite 13. 908 00:44:21,440 --> 00:44:24,760 Tai šifravimo stupidest mechanizmai, nes jis tiesiog tik 909 00:44:24,760 --> 00:44:29,160 į raides po vieną kas 13 priduria: kvaila ta prasme, kad jei jūs tiesiog 910 00:44:29,160 --> 00:44:31,890 turi daug laisvo laiko tiek ant rankų ir pieštuku, arba jūs tiesiog manau, kad 911 00:44:31,890 --> 00:44:35,260 per galvą, galite pabandyti visi galimi atnaujinimai - Vienas, du, 912 00:44:35,260 --> 00:44:38,470 trijų, taškas, taškas, taškas, 25 tiesiog pasukite visą abėcėlę, o 913 00:44:38,470 --> 00:44:40,860 galų gale, jums išsiaiškinti, ką šis pranešimas. 914 00:44:40,860 --> 00:44:43,700 Taigi, jei jums padarė kažką panašaus į tai pradinėje mokykloje artimųjų laiškus į jūsų 915 00:44:43,700 --> 00:44:46,830 geriausias draugas, jei jūsų pradinėje mokykloje mokytojas tiesiog perskaitykite 916 00:44:46,830 --> 00:44:50,320 pranešimą ir brutalia privertė sprendimą, galite Dotarłeś 917 00:44:50,320 --> 00:44:52,550 Kadangi šis atsakymas. 918 00:44:52,550 --> 00:44:54,970 >> Dabar, žinoma, realiame pasaulyje, kriptografija yra daug sudėtingesnės. 919 00:44:54,970 --> 00:45:00,120 Tai fragmentus kompiuterinė sistema, kuri turi vardus ir 920 00:45:00,120 --> 00:45:03,630 slaptažodžius, nes beveik visi mūsų daryti, ir tai, ką jūsų slaptažodis galia 921 00:45:03,630 --> 00:45:07,260 atrodys, jei saugomi kietajame vairuoti bet užšifruota. 922 00:45:07,260 --> 00:45:11,050 Tai ne tik raidžių rotacija, Yra B ir B yra C, tai 923 00:45:11,050 --> 00:45:15,620 daug sudėtingas, tačiau jis naudoja kas paprastai žinomas kaip slapto rakto 924 00:45:15,620 --> 00:45:16,690 kriptografija. 925 00:45:16,690 --> 00:45:20,210 Ši nuotrauka pasako taip istorija su kelių piktogramos. 926 00:45:20,210 --> 00:45:22,250 >> Kairėje pusėje, mes turime tai, ką mes paskambinsime paprastojo teksto. 927 00:45:22,250 --> 00:45:25,420 Atsižvelgiant į kriptografiją, paprasto pasaulyje tekstas yra tik pradinis pranešimas 928 00:45:25,420 --> 00:45:29,050 parašyta anglų arba prancūzų kalba ar kita kalba apskritai. 929 00:45:29,050 --> 00:45:32,405 Jei norite užšifruoti ją, mes pereiti tai pavaizduotomis piktogramo per Spynos, todėl 930 00:45:32,405 --> 00:45:35,580 kai rūšies algoritmą, kai funkcija ar programa, kad kažkas rašė 931 00:45:35,580 --> 00:45:39,880 kad scrambles raidės tikiuosi daugiau complicatedly nei tiesiog pridedant 13 932 00:45:39,880 --> 00:45:40,980 į kiekvieną iš jų. 933 00:45:40,980 --> 00:45:43,780 >> Ką jūs gaunate iš minėto proceso viduryje yra vadinamas cyphertext. 934 00:45:43,780 --> 00:45:44,850 Taigi, kokios sexy žodį. 935 00:45:44,850 --> 00:45:47,630 Tai tiesiog reiškia, kad ji užkoduota portalo paprastąjį tekstą. 936 00:45:47,630 --> 00:45:52,570 Ir tik tada, jei tą pačią paslaptį, 13 ar minus 13, tu gali 937 00:45:52,570 --> 00:45:54,970 iššifruoti kaip tokia žinutė. 938 00:45:54,970 --> 00:45:57,770 >> Taigi problema nustatyti du, tarp dalykų, jums tai padaryti, jei į Hacker 939 00:45:57,770 --> 00:46:01,860 Leidimas, jums teks rašyti kodą kreko šiuos slaptažodžius, suprasti, 940 00:46:01,860 --> 00:46:05,170 ką jie ir kaip jie buvo užkoduota, nors mes duoti jums šiek tiek 941 00:46:05,170 --> 00:46:06,460 Vadovavimo pakeliui. 942 00:46:06,460 --> 00:46:09,320 Be Standard Edition, mes pristatome iš šifrai pora, šifravimo 943 00:46:09,320 --> 00:46:12,400 mechanizmai, vienas vadinamas Cezaris, vienas vadinamas Vigenere, kad vis dar 944 00:46:12,400 --> 00:46:16,100 keičiančiuose šifrai, kur tampa kažkas, B tampa kažkas, bet 945 00:46:16,100 --> 00:46:18,820 turite tai padaryti programiškai nes ten tikrai bus paslaptis 946 00:46:18,820 --> 00:46:22,840 Pagrindinis dalyvauja kuris paprastai skaičius arba raktinį žodį, kad tik 947 00:46:22,840 --> 00:46:26,420 siuntėjas ir jų gavėjas pranešimai turėtų suprasti. 948 00:46:26,420 --> 00:46:28,660 >> Dabar, tai iš tikrųjų turi įsikūnijimų realiame pasaulyje. 949 00:46:28,660 --> 00:46:32,910 Tai, pavyzdžiui, yra mažai našlaičių Annie paslaptis dekoderis žiedas, ir jūs 950 00:46:32,910 --> 00:46:35,180 iš tikrųjų gali įgyvendinti šias keičiančiuose šifrai - 951 00:46:35,180 --> 00:46:37,930 Tampa kažkas, B tampa kažkas - su ratų poros 952 00:46:37,930 --> 00:46:40,840 vienas iš išorės, vienas viduje toks, kad jei jūs pasukite ratuką arba 953 00:46:40,840 --> 00:46:44,170 žiedas, jūs iš tikrųjų galite liniją iki laiškai su skirtingomis raidėmis, 954 00:46:44,170 --> 00:46:45,430 gauti slaptą kodą. 955 00:46:45,430 --> 00:46:48,110 Ir taip kaip šiandienos Įspūdingos filmą, ką aš maniau aš padaryti, tai tiek 956 00:46:48,110 --> 00:46:52,170 Perjungimas, kad jei jūs įjungtumėte TV gruodžio 24 d, galite žiūrėti 957 00:46:52,170 --> 00:46:55,390 filmas skelbimą nauseum už 24 valandas iš eilės. 958 00:46:55,390 --> 00:47:06,030 Bet šiandien, aš jį atidaryti čia ir mums tik dvi minutes 959 00:47:06,030 --> 00:47:13,493 pedagogiškai svarbūs Kalėdų istorija su šiek tiek kolegos pavadino Ralphie. 960 00:47:13,493 --> 00:47:14,400 >> [VIDEO PLAYBACK] 961 00:47:14,400 --> 00:47:17,420 >> , Tai būtų žinoma, kad visi kartu ir kiekvienas, kad Robertas Parkeris skiriamas 962 00:47:17,420 --> 00:47:20,650 narys Little Orphan Annie paslaptis ratas ir turi teisę visi 963 00:47:20,650 --> 00:47:23,460 su pagyrimu ir nauda vyksta tuo. 964 00:47:23,460 --> 00:47:25,990 >> -Pasirašyta Little Retųjų Annie. 965 00:47:25,990 --> 00:47:30,100 Parašu, Pierre Andre rašalu. 966 00:47:30,100 --> 00:47:34,270 Garbės ir nauda jau tuo devynerių metų. 967 00:47:34,270 --> 00:47:39,440 >> [Šaukė per radiją] 968 00:47:39,440 --> 00:47:40,770 >> Nagi, tegul grįžti į ją. 969 00:47:40,770 --> 00:47:44,965 Man nereikia viską, kad džiazo apie kontrabandininkai ir piratai. 970 00:47:44,965 --> 00:47:48,270 >> -Klausyk rytoj naktį sudaryti nuotykių juoda 971 00:47:48,270 --> 00:47:49,650 piratų laivas. 972 00:47:49,650 --> 00:47:53,320 Dabar atėjo laikas Annie Secret Žinutė jūsų, nariai 973 00:47:53,320 --> 00:47:55,720 apie slaptą ratą. 974 00:47:55,720 --> 00:47:56,580 Atminkite, kad vaikų. 975 00:47:56,580 --> 00:48:01,720 Tik nariai Annie Secret Circle gali iškoduoti Annie slaptą žinutę. 976 00:48:01,720 --> 00:48:05,872 Atminkite, Annie priklauso nuo jūsų. 977 00:48:05,872 --> 00:48:08,670 Nustatykite savo smeigtukai B2. 978 00:48:08,670 --> 00:48:11,000 Čia yra žinutė. 979 00:48:11,000 --> 00:48:12,335 12, 11, 2 - 980 00:48:12,335 --> 00:48:14,670 >> -Aš esu savo pirmąjį slaptam pasitarimui. 981 00:48:14,670 --> 00:48:19,720 >> -25, 14, 11, 18, 16 - 982 00:48:19,720 --> 00:48:21,650 >> -Pierre buvo puikia garso vakarą. 983 00:48:21,650 --> 00:48:24,830 Galėčiau pasakyti, kad šio vakaro pranešimą buvo tikrai svarbus. 984 00:48:24,830 --> 00:48:26,400 >> -3, 25. 985 00:48:26,400 --> 00:48:28,540 Štai nuo Annie pati žinutė. 986 00:48:28,540 --> 00:48:30,086 Atminkite, kad nereikia niekam. 987 00:48:30,086 --> 00:48:34,370 988 00:48:34,370 --> 00:48:38,710 >> -90 Sekundžių vėliau, aš būnu tik kambarį name, kuriame iš devynių berniukas 989 00:48:38,710 --> 00:48:42,668 gali sėdėti privatumo ir iššifruoti. 990 00:48:42,668 --> 00:48:47,628 Aha, B. nuėjau į kitą. 991 00:48:47,628 --> 00:48:53,060 E. pirmasis žodis yra "būti". S. Tai buvo dar lengviau dabar. 992 00:48:53,060 --> 00:48:54,980 U. 25. 993 00:48:54,980 --> 00:48:55,940 Štai R. 994 00:48:55,940 --> 00:48:56,900 >> -Nagi, Ralphie. 995 00:48:56,900 --> 00:48:57,860 Aš turiu eiti. 996 00:48:57,860 --> 00:48:59,780 >> -I'll būti, nustatančio teisę Ma. 997 00:48:59,780 --> 00:49:01,030 Gee nusišvilpti. 998 00:49:01,030 --> 00:49:04,300 999 00:49:04,300 --> 00:49:08,220 >> -T tinklą. O. Būtinai. 1000 00:49:08,220 --> 00:49:09,500 Būtinai ką? 1001 00:49:09,500 --> 00:49:11,660 Koks buvo Mažasis Retųjų Annie bando pasakyti? 1002 00:49:11,660 --> 00:49:12,844 Būtinai ką? 1003 00:49:12,844 --> 00:49:14,732 >> -Ralphie Randy gavo eiti. 1004 00:49:14,732 --> 00:49:16,148 Ar galite išeiti? 1005 00:49:16,148 --> 00:49:17,092 >> -Gerai, Ma. 1006 00:49:17,092 --> 00:49:18,510 Aš būsiu tiesiai iš. 1007 00:49:18,510 --> 00:49:20,270 >> -Aš vis arčiau dabar. 1008 00:49:20,270 --> 00:49:21,823 Įtampa buvo baisi. 1009 00:49:21,823 --> 00:49:23,045 Kokia ji buvo? 1010 00:49:23,045 --> 00:49:26,510 Planetos likimas gali pakabinti ant plauko. 1011 00:49:26,510 --> 00:49:28,985 >> -Ralphie, Randy Gotta Go ". 1012 00:49:28,985 --> 00:49:32,680 >> -I'll būti teisūs už šaukė garsiai. 1013 00:49:32,680 --> 00:49:33,956 >> -Beveik ten. 1014 00:49:33,956 --> 00:49:35,140 Mano pirštai nuskrido. 1015 00:49:35,140 --> 00:49:36,880 Mano protas buvo plieno spąstai. 1016 00:49:36,880 --> 00:49:38,010 Kiekvienas porų vibruoja. 1017 00:49:38,010 --> 00:49:39,878 Tai buvo beveik aiškus. 1018 00:49:39,878 --> 00:49:43,210 Taip, taip, taip, taip, taip. 1019 00:49:43,210 --> 00:49:49,030 >> -Būtinai gerkite Ovaltine. 1020 00:49:49,030 --> 00:49:50,280 Ovaltine? 1021 00:49:50,280 --> 00:49:53,980 1022 00:49:53,980 --> 00:49:55,230 Prastas komercinis? 1023 00:49:55,230 --> 00:49:58,572 1024 00:49:58,572 --> 00:50:00,694 Šunsnukis. 1025 00:50:00,694 --> 00:50:01,900 >> [PABAIGA VIDEO PLAYBACK] 1026 00:50:01,900 --> 00:50:04,260 >> GARSIAKALBIS 1: Tai CS50, ir kad bus problema nustatyti du. 1027 00:50:04,260 --> 00:50:06,305 Pasimatysime kitą savaitę. 1028 00:50:06,305 --> 00:50:08,800 >> SPEAKER 2: Tuo Kitas CS50, tai atsitinka. 1029 00:50:08,800 --> 00:50:11,060 >> GARSIAKALBIS 1: Taigi viena tema turime ne pažvelgė į iki šiol yra 1030 00:50:11,060 --> 00:50:12,220 kad funkcijos rodyklės. 1031 00:50:12,220 --> 00:50:14,540 Dabar funkcija rodyklė yra tik iš visuomenės adresas 1032 00:50:14,540 --> 00:50:17,000 funkcija, tačiau panašiai kaip - 1033 00:50:17,000 --> 00:50:18,250 sūnus - 1034 00:50:18,250 --> 00:50:19,670