1 00:00:00,000 --> 00:00:02,742 >> [Glazbom] 2 00:00:02,742 --> 00:00:05,030 3 00:00:05,030 --> 00:00:09,090 >> ANDI PENG: Ovo je CS50 i dobrodošli na tjedan-dva odjeljka. 4 00:00:09,090 --> 00:00:11,740 To je zapravo, a tjedan dva od naših class-- Zapravo, 5 00:00:11,740 --> 00:00:14,550 prvi tjedan smo imali dio. 6 00:00:14,550 --> 00:00:18,897 Pokaži ruku, koliko vas sve došao u super poglavlju prošli tjedan? 7 00:00:18,897 --> 00:00:19,480 U redu, to je u redu. 8 00:00:19,480 --> 00:00:20,020 To je u redu. 9 00:00:20,020 --> 00:00:23,110 Kako mnogi od vas gledao super poglavlje prošli tjedan? 10 00:00:23,110 --> 00:00:23,610 U REDU. 11 00:00:23,610 --> 00:00:25,702 I vi učinili u redu o problemu postaviti jedan? 12 00:00:25,702 --> 00:00:28,660 Tako ću ga da imamo hrpa stvarno inteligentnih djecu 13 00:00:28,660 --> 00:00:32,310 u ovoj klasi i stvari će biti u redu. 14 00:00:32,310 --> 00:00:33,180 U REDU. 15 00:00:33,180 --> 00:00:33,980 Dakle first-- 16 00:00:33,980 --> 00:00:37,900 17 00:00:37,900 --> 00:00:41,090 >> Prvo, mi samo ide na kratko ići preko dnevnog reda za danas. 18 00:00:41,090 --> 00:00:42,700 Razgovarat ćemo o naravno logistike. 19 00:00:42,700 --> 00:00:45,480 Puno vas vjerojatno imate pitanja u vezi 20 00:00:45,480 --> 00:00:46,920 kako se stvari pokreću na ovom tečaju. 21 00:00:46,920 --> 00:00:47,897 Mi ćemo odgovoriti na njih. 22 00:00:47,897 --> 00:00:49,730 Idemo ukratko ići preko petlje u slučaju 23 00:00:49,730 --> 00:00:51,410 bilo od vas propustili super odjeljak. 24 00:00:51,410 --> 00:00:53,240 Razgovarat ćemo o ASCII mapiranje. 25 00:00:53,240 --> 00:00:56,180 Razgovarat ćemo o polja, funkcije, argumente naredbenog retka. 26 00:00:56,180 --> 00:01:00,210 I na kraju, ono što ti dečki vjerojatno sve stvarno želim biti ovdje kako bi saznali o, 27 00:01:00,210 --> 00:01:01,270 je vaš pset2. 28 00:01:01,270 --> 00:01:04,209 Mi ćemo imati neke lijepe trikove i savjeta kako to učiniti. 29 00:01:04,209 --> 00:01:07,910 30 00:01:07,910 --> 00:01:08,690 >> U REDU. 31 00:01:08,690 --> 00:01:11,450 Također, kao drugo, imamo puno slatkiša ovdje. 32 00:01:11,450 --> 00:01:13,583 Svatko tko voli slatkiše, samo doći ovdje. 33 00:01:13,583 --> 00:01:14,430 Grab neke. 34 00:01:14,430 --> 00:01:15,100 Imam hrpu. 35 00:01:15,100 --> 00:01:16,390 Imamo tonu u uredu. 36 00:01:16,390 --> 00:01:18,230 Ja stvarno ne želim jesti slatkiše cijeli dan. 37 00:01:18,230 --> 00:01:20,300 Vi bi trebali jesti sve slatkiše, jer sam ga doveo ovdje za vas momci. 38 00:01:20,300 --> 00:01:20,990 Samo jedu slatkiše. 39 00:01:20,990 --> 00:01:24,080 Tu će biti bombona svaki odjeljak. 40 00:01:24,080 --> 00:01:25,330 >> Tako je prvi, tko sam ja? 41 00:01:25,330 --> 00:01:27,080 Moje ime je Andi Peng. 42 00:01:27,080 --> 00:01:30,270 Ja sam šef PU od CS50 ovdje na Yaleu. 43 00:01:30,270 --> 00:01:32,540 I pored da, i ja ću be-- 44 00:01:32,540 --> 00:01:35,600 ako bi netko volimo-članovima vaše trčanje prijatelj, tvoj rame za plakanje. 45 00:01:35,600 --> 00:01:39,140 Ako je noć prije svoga pset je to zbog, nemate pojma što se događa, 46 00:01:39,140 --> 00:01:40,080 javi mi se. 47 00:01:40,080 --> 00:01:42,770 Mi ćemo suosjećati zajedno, i tako dalje. 48 00:01:42,770 --> 00:01:46,100 Samo znam da sam ovdje kao resurs za vas kao bojišnici 49 00:01:46,100 --> 00:01:51,830 u pomoći da dečki shvatiti kako za rješavanje problema u CS50 i šire. 50 00:01:51,830 --> 00:01:54,590 >> Moj e-mail je andi.peng@yale.edu. 51 00:01:54,590 --> 00:01:58,390 Ja ću također poslati pojedinca e-mail s mojim telefonskim brojem na njoj 52 00:01:58,390 --> 00:02:01,860 tako da nisu svi na Internet može vidjeti moj broj telefona. 53 00:02:01,860 --> 00:02:03,640 Slobodno me zvati u bilo koje vrijeme. 54 00:02:03,640 --> 00:02:07,510 Ozbiljno, moj telefon je Obično priključen na mojoj ruci. 55 00:02:07,510 --> 00:02:10,240 Ja ne mogu odgovoriti u roku od par minuta. 56 00:02:10,240 --> 00:02:11,984 Ja ne mogu odgovoriti u roku od par sati. 57 00:02:11,984 --> 00:02:14,400 Ali mogu vam jamčiti, ako što e-mail me, ako me zovu, 58 00:02:14,400 --> 00:02:17,404 tekst me, ja ću odgovoriti u roku od 24 sata. 59 00:02:17,404 --> 00:02:19,820 Često, ja ću odgovoriti prije da, jer ja razumijem 60 00:02:19,820 --> 00:02:23,900 da svatko ima neke probleme, i želite svoje odgovore 61 00:02:23,900 --> 00:02:26,110 da se odgovori vrlo brzo. 62 00:02:26,110 --> 00:02:28,945 >> Međutim, ako poziv mene 30 minuta prije 63 00:02:28,945 --> 00:02:31,570 da komad koji je zbog četvrtak night-- biti, Andi, pomozi mi, 64 00:02:31,570 --> 00:02:35,380 Nisam started-- mogu dati li da je rame za plakanje. 65 00:02:35,380 --> 00:02:41,520 Ali to može biti vrijeme da razmislite o kako da ne učiniti sljedeći put. 66 00:02:41,520 --> 00:02:44,040 U REDU. 67 00:02:44,040 --> 00:02:44,944 Ups. 68 00:02:44,944 --> 00:02:45,850 Kako vratiti? 69 00:02:45,850 --> 00:02:48,140 Idemo tamo. 70 00:02:48,140 --> 00:02:52,310 >> Tako je u ovom tečaju, imamo tona podrškom za sve. 71 00:02:52,310 --> 00:02:54,640 Uz jednostavno sekcije ovdje, što vam 72 00:02:54,640 --> 00:02:57,000 svaki tjedan se provesti 90 divni minuta sa mnom, 73 00:02:57,000 --> 00:02:58,330 imamo i radno vrijeme. 74 00:02:58,330 --> 00:03:01,021 Koliko od vas već bio u uredovno vrijeme za pomoć? 75 00:03:01,021 --> 00:03:01,520 Veliki. 76 00:03:01,520 --> 00:03:05,700 To je stvarno dobro vidjeti, jer mi imaju osoblje od preko 45 Tas i CA 77 00:03:05,700 --> 00:03:11,780 osposobljeni za ovaj tečaj koji su ovdje za pomoć dečki sa svojim psets. 78 00:03:11,780 --> 00:03:14,580 >> Ponedjeljkom oni održani u Teal učionica u 17 Hill House ovdje 79 00:03:14,580 --> 00:03:15,350 na Yaleu. 80 00:03:15,350 --> 00:03:17,349 Utorkom i četvrtkom, oni su održana u blagovaonici. 81 00:03:17,349 --> 00:03:20,010 08:00 do 11:00 sati ljepušan velik dio svaki radni dan. 82 00:03:20,010 --> 00:03:21,620 Uđite, izaći. 83 00:03:21,620 --> 00:03:24,030 Bilo je problem, ne problem-- Samo uđi, 84 00:03:24,030 --> 00:03:26,650 a onda ćemo vam pomoći u tome. 85 00:03:26,650 --> 00:03:31,640 >> Drugo, osim radnog vremena i dijelovi, imamo i gaćice. 86 00:03:31,640 --> 00:03:35,930 Je li itko ikada vidio par od gaćice ili Walkthroughs u videozapisima 87 00:03:35,930 --> 00:03:36,750 na web stranici? 88 00:03:36,750 --> 00:03:37,250 U REDU. 89 00:03:37,250 --> 00:03:39,510 Dakle, oni su jako, jako korisno. 90 00:03:39,510 --> 00:03:42,470 Naš lijepi proizvodnja Harvarda tim tamo na toj školi 91 00:03:42,470 --> 00:03:47,910 do sjevera, oni su snimili i producirao ove nevjerojatne prohod videa. 92 00:03:47,910 --> 00:03:52,290 >> Oni će vas odvesti korak po korak kroz kako to ide o rješavanju problema. 93 00:03:52,290 --> 00:03:56,340 Često, ako ste zbunjeni o tome jednostavan koncept, jedinstvenog koncepta, 94 00:03:56,340 --> 00:03:59,780 pogledati, jer mi vjerojatno imati kratki na njega negdje na našoj web stranici. 95 00:03:59,780 --> 00:04:03,800 I to je obično veliki resurs tražiti kada ste prvi put 96 00:04:03,800 --> 00:04:06,510 izgubio na tome da obrađuju problem. 97 00:04:06,510 --> 00:04:09,750 >> Treće, mi također imaju study50 i reference50. 98 00:04:09,750 --> 00:04:15,650 Dakle, studija 50 Na web stranica je samo link. 99 00:04:15,650 --> 00:04:21,500 To je, mislim, study.cs50.net ili nešto slično. 100 00:04:21,500 --> 00:04:22,860 Samo je Google. 101 00:04:22,860 --> 00:04:24,229 Imamo puno slajdova pripremili. 102 00:04:24,229 --> 00:04:26,770 Imamo puno gaćice i walkthroughs-- stvari sve sastavio 103 00:04:26,770 --> 00:04:31,070 vrlo lijepo i uredno za vas momci sve za pregledavanje, vidim nikakve koncepte 104 00:04:31,070 --> 00:04:32,860 da ste zbunjeni o tome. 105 00:04:32,860 --> 00:04:35,920 To bih vjerojatno biti obuhvaćeni tamo u study50. 106 00:04:35,920 --> 00:04:37,640 >> Reference50-- slično. 107 00:04:37,640 --> 00:04:41,510 Imamo mnogo različitih bilješke dostupne za vam na raspolaganju. 108 00:04:41,510 --> 00:04:44,450 I na kraju, imamo ono što je zove CS50 Raspravite, 109 00:04:44,450 --> 00:04:48,082 forum u kojem, ako je noć prije radite svoje probleme, recimo, 110 00:04:48,082 --> 00:04:49,880 imate pitanje. 111 00:04:49,880 --> 00:04:52,340 Prijavite se na CS50 Raspravite. 112 00:04:52,340 --> 00:04:53,190 Postavite pitanje. 113 00:04:53,190 --> 00:04:55,820 A onda je jedan od hundreds-- možda, thousands-- vršnjaka 114 00:04:55,820 --> 00:04:57,960 uzimajući ovaj tečaj online će se prijaviti. 115 00:04:57,960 --> 00:05:01,182 A možda netko može dobiti Vaš odgovor prije TA može. 116 00:05:01,182 --> 00:05:03,390 To je u biti samo online forum koji svi možemo 117 00:05:03,390 --> 00:05:04,556 koristiti kako bi razgovarali o našim problemima. 118 00:05:04,556 --> 00:05:06,483 To je super. 119 00:05:06,483 --> 00:05:10,660 120 00:05:10,660 --> 00:05:11,550 >> U REDU. 121 00:05:11,550 --> 00:05:13,220 Tako je problem postavlja. 122 00:05:13,220 --> 00:05:17,840 Mi smo o pravu na debeli problema postaviti dva. 123 00:05:17,840 --> 00:05:20,570 Mnogi od nas već borili problema postaviti jednu. 124 00:05:20,570 --> 00:05:24,460 Mi već znamo da je možda čeka za sinoć učiniti vaš pset 125 00:05:24,460 --> 00:05:28,170 nije najpametnije učiniti u CS50. 126 00:05:28,170 --> 00:05:32,380 >> Savjeti i savjete bitno za Uspjeh su pročitali cijelu spec. 127 00:05:32,380 --> 00:05:36,270 Kako mnogi od vas već pročitati spec za pset 2? 128 00:05:36,270 --> 00:05:36,770 U REDU. 129 00:05:36,770 --> 00:05:39,840 To je solidan iznos. 130 00:05:39,840 --> 00:05:43,210 Znam da dečki vjerojatno prepoznali do sada su naočale su jako dugo. 131 00:05:43,210 --> 00:05:45,700 Oni su stvarno, stvarno dugo. 132 00:05:45,700 --> 00:05:49,630 >> To je stvarno teško čitati svaki red te pažljivo riječ po riječ. 133 00:05:49,630 --> 00:05:52,780 Želite samo obrano gdje to vam govori nešto učiniti. 134 00:05:52,780 --> 00:05:54,459 Mogu vam jamčiti, nemojte to raditi. 135 00:05:54,459 --> 00:05:56,750 Ako to učinite, vjerojatno ste će propustiti negdje 136 00:05:56,750 --> 00:05:58,458 gdje vam govori kako započeti problem 137 00:05:58,458 --> 00:06:01,140 ili što vam govori što ime vaš problem ili vam govori, 138 00:06:01,140 --> 00:06:03,720 ovo je vjerojatno najbolji način početi raditi svoj problem. 139 00:06:03,720 --> 00:06:05,050 A onda ćete biti izgubljeni. 140 00:06:05,050 --> 00:06:08,219 >> Kada pokušate pročitati vaše spec pola puta, 141 00:06:08,219 --> 00:06:10,510 dosta važno information-- u koji niste 142 00:06:10,510 --> 00:06:12,260 će biti u mogućnosti da se stvarno pristupa. 143 00:06:12,260 --> 00:06:13,219 Pa pročitajte cijeli spec. 144 00:06:13,219 --> 00:06:15,468 Pokušajte pročitati cijeli spec prije nego što dođe do odjeljka, 145 00:06:15,468 --> 00:06:17,360 jer tada, kad smo govoriti o pset, 146 00:06:17,360 --> 00:06:21,070 svi mi možemo imati ideju onoga što se događa. 147 00:06:21,070 --> 00:06:25,169 >> Drugo, to je koncept da ću željeli referentnim 148 00:06:25,169 --> 00:06:26,710 puno tijekom semestra kolegija. 149 00:06:26,710 --> 00:06:30,070 Ali u biti, u susret nam pola puta, zar ne? 150 00:06:30,070 --> 00:06:33,970 Mene, kao TA i Jasona kao naravno Voditelj i Scaz kao profesor 151 00:06:33,970 --> 00:06:37,120 i David kao profesor i svi ostale lijepe TAS u ovom tečaju, 152 00:06:37,120 --> 00:06:39,830 asistenti u ovom course-- mi ćemo se potruditi 153 00:06:39,830 --> 00:06:42,965 kako bi se osiguralo da ste postavili do uspjeti u ovom tečaju. 154 00:06:42,965 --> 00:06:43,840 Mi ćemo održati odjeljak. 155 00:06:43,840 --> 00:06:44,870 Mi ćemo držati radnog vremena. 156 00:06:44,870 --> 00:06:47,087 Mi ćemo odgovoriti na vaš telefon pozivi, odgovoriti na e-mailove, 157 00:06:47,087 --> 00:06:49,670 učiniti sve što možemo kako bi da vaši pitanja su odgovori. 158 00:06:49,670 --> 00:06:51,460 >> Međutim, pomozi nam se previše. 159 00:06:51,460 --> 00:06:52,450 Upoznajte nas na pola puta. 160 00:06:52,450 --> 00:06:56,040 Ako ste došli do radnog vremena što nije otišao u odjeljku, ne 161 00:06:56,040 --> 00:07:02,060 nakon što su vidjeli predavanja, nemajući pojma što se događa, biti kao, pomozi mi. 162 00:07:02,060 --> 00:07:04,350 Ja ću biti kao, dobro, žao mi je. 163 00:07:04,350 --> 00:07:06,410 To može biti vrijeme za posuditi da rame za plakanje, 164 00:07:06,410 --> 00:07:08,959 jer nisam siguran što mogu učiniti kako bi vam pomoći 165 00:07:08,959 --> 00:07:12,000 ako ne pokušati barem pomoći se malo u početku. 166 00:07:12,000 --> 00:07:12,910 Upoznajte nas na pola puta. 167 00:07:12,910 --> 00:07:15,020 Znate, molim Vas, došli spreman odgovoriti i dobiti 168 00:07:15,020 --> 00:07:16,353 spremni da se uključe u materijalu. 169 00:07:16,353 --> 00:07:19,342 To čini stvari toliko lakše za sve uključene. 170 00:07:19,342 --> 00:07:22,970 Da, to je prilično zadovoljni. 171 00:07:22,970 --> 00:07:23,720 >> Ocjenjivanje. 172 00:07:23,720 --> 00:07:29,250 Tako se na nastavnom planu, to je prilično u dubini vezi kako smo razred. 173 00:07:29,250 --> 00:07:32,440 Ali u biti, slom u to je 50% od vaše ocjene 174 00:07:32,440 --> 00:07:34,530 će biti psets koje je lijep, jer to je 175 00:07:34,530 --> 00:07:37,400 gdje ste potrošnje velika Većina vremena vaš kolegij na. 176 00:07:37,400 --> 00:07:39,854 Kvizovi 40%, a svoj Završni projekt će biti 10%. 177 00:07:39,854 --> 00:07:42,520 Tu će biti dva kvizovi tijekom tijek semestra. 178 00:07:42,520 --> 00:07:47,050 Mislim da će vrijeme i datum su Također navedeni na nastavni plan i program. 179 00:07:47,050 --> 00:07:49,210 >> Način na koji ćemo biti ocjenjivanja vaše psets 180 00:07:49,210 --> 00:07:53,930 je da smo u biti četiri vrijednosti koje smo dodijeliti svakom razredu. 181 00:07:53,930 --> 00:07:57,250 Imamo vrijednost opsega, ispravnost, dizajn i stil. 182 00:07:57,250 --> 00:08:01,530 Dakle, kao što vidite, to je vrsta naših Formula za izračunavanje psets. 183 00:08:01,530 --> 00:08:03,640 Tri dajemo najviše masa za ispravnost, 184 00:08:03,640 --> 00:08:06,140 jer očito svojim trenerom Treba testiranje za slučajeve 185 00:08:06,140 --> 00:08:08,480 da želimo da se testirati. 186 00:08:08,480 --> 00:08:11,000 >> Vi svi imaju check50 na raspolaganju. 187 00:08:11,000 --> 00:08:13,730 To je vrlo korisna funkcija da ti dečki mogu sve 188 00:08:13,730 --> 00:08:17,560 upload tvoj kod na našim poslužiteljima, gdje ćemo to provjeriti za vas. 189 00:08:17,560 --> 00:08:20,800 A ste vidjeli one frowny lica, smješko lica. 190 00:08:20,800 --> 00:08:22,119 Oni su stvarno, stvarno korisno. 191 00:08:22,119 --> 00:08:23,910 Molim vas, nemojte biti student koji vole pokušaja 192 00:08:23,910 --> 00:08:26,230 da hardcode u svim odgovorima na njih. 193 00:08:26,230 --> 00:08:30,050 Ja definitivno nisam vidio pset gdje netko vidio sve vrijednosti check50 194 00:08:30,050 --> 00:08:33,429 a oni samo teško kodirana in-- ako taj broj, ispisati taj broj. 195 00:08:33,429 --> 00:08:35,080 Ako taj broj, ispisati taj broj. 196 00:08:35,080 --> 00:08:36,090 Nemojte to učiniti. 197 00:08:36,090 --> 00:08:39,360 >> Iako tehnički check50 točna, 198 00:08:39,360 --> 00:08:41,809 Vaš način rješavanja problem nije točno. 199 00:08:41,809 --> 00:08:45,770 Dakle, samo koristiti check50 rijetko. 200 00:08:45,770 --> 00:08:48,497 No, također bi bili sigurni da ste Razumijem kako se to radi, 201 00:08:48,497 --> 00:08:50,580 program radi osim check50, 202 00:08:50,580 --> 00:08:53,120 jer ne možemo testirati svaki Moguće slučaj check50. 203 00:08:53,120 --> 00:08:55,440 Mi ćemo se testiranje neke od njih. 204 00:08:55,440 --> 00:09:00,390 >> Dizajn je bitno, kako dobro osmišljen je tvoj broj? 205 00:09:00,390 --> 00:09:04,150 Ako ste copy-lijepljenje višestruki linija koda mnogo, mnogo puta. 206 00:09:04,150 --> 00:09:06,960 Možda nemate dosta najbolji dizajn u kodu. 207 00:09:06,960 --> 00:09:09,470 Možda je vrijeme da dodate tu petlju. 208 00:09:09,470 --> 00:09:12,090 U biti, ovdje je baš sve o pokušavate napraviti svoj kôd, 209 00:09:12,090 --> 00:09:17,010 pokušavam napisati svoj kod kako učinkovito što je više moguće, tako da je vaš program radi 210 00:09:17,010 --> 00:09:19,630 što je prije moguće. 211 00:09:19,630 --> 00:09:20,996 >> Konačno, imamo stil. 212 00:09:20,996 --> 00:09:24,360 Dakle, stil je neka vrsta proizvoljan, subjektivan pojam. 213 00:09:24,360 --> 00:09:27,470 Znam da smo i službeno se stil 50 Vodič za CS50, 214 00:09:27,470 --> 00:09:30,050 gdje vam kaže, oh, treba imati prostor ovdje. 215 00:09:30,050 --> 00:09:32,220 Trebali bi vrsta formatu Vaš broj na ovaj način. 216 00:09:32,220 --> 00:09:34,070 Trebali imenovati stvari na ovaj način. 217 00:09:34,070 --> 00:09:38,180 >> Ja stvarno ne briga, samo po sebi, kako odlučite stil kôd, 218 00:09:38,180 --> 00:09:39,840 kao čeznuti kao te ostati dosljedni. 219 00:09:39,840 --> 00:09:43,732 Na primjer, ako želite nakon što četiri ostaviti prostora 220 00:09:43,732 --> 00:09:45,690 prije četiri petlje, Samo to svaki put. 221 00:09:45,690 --> 00:09:46,523 Ne vrsta to učiniti. 222 00:09:46,523 --> 00:09:47,730 Nemojte to raditi druge puta. 223 00:09:47,730 --> 00:09:51,046 Ako želite zadržati Kovrčava aparatić prostora na određeni način, 224 00:09:51,046 --> 00:09:52,170 Samo uvijek je na taj način učiniti. 225 00:09:52,170 --> 00:09:54,628 Ne vrsta to negdje tu i negdje ne postoji. 226 00:09:54,628 --> 00:09:57,010 Kad smo ocjenjivanja, to je stvarno teško 227 00:09:57,010 --> 00:09:59,420 ako ja nemam pojma kako ste oblikovanje svoj kôd, 228 00:09:59,420 --> 00:10:02,064 stvari otkačeno i izvan mjesta. 229 00:10:02,064 --> 00:10:04,980 Ako ste upravo ga zadržati dosljedan, to je puno lakše za mene kao veće 230 00:10:04,980 --> 00:10:06,310 biti u mogućnosti da čitaju vaš broj. 231 00:10:06,310 --> 00:10:09,393 To je puno lakše za vas kao student da bi mogli gledati kroz kodu 232 00:10:09,393 --> 00:10:11,720 i vidjeti što nije u redu s to slash zašto je pitanja. 233 00:10:11,720 --> 00:10:15,740 Stil je jedan od najlakših stvari vi možete učiniti da biste dobili punu rezultate. 234 00:10:15,740 --> 00:10:18,770 U osnovi, ako baš briga, ako plaćate pet minuta pažnje 235 00:10:18,770 --> 00:10:22,760 da svoj kod svakog tjedna, trebali biti uzimajući punu stil bodova. 236 00:10:22,760 --> 00:10:26,020 >> Konačno, imamo ono što se zove množitelj opsega. 237 00:10:26,020 --> 00:10:28,890 Scope-- Znam da je velika Riječ, pogotovo u ovoj klasi. 238 00:10:28,890 --> 00:10:31,030 Ali opseg, sve to znači je da ste pokušaja 239 00:10:31,030 --> 00:10:33,670 su psets na najbolji vaše sposobnosti. 240 00:10:33,670 --> 00:10:37,180 Ako uključite u tri Vaše četiri problema 241 00:10:37,180 --> 00:10:39,460 i uopće ne pokušavati posljednja, vjerojatno ste 242 00:10:39,460 --> 00:10:41,630 će izgubiti neke bodove na opsegu. 243 00:10:41,630 --> 00:10:44,560 >> Čak i ako ste tek početak problema, učiniti svoje najbolje hodati kroz njega. 244 00:10:44,560 --> 00:10:47,691 Čak i ako to ne uspije, okrenuti ga u, jer to pokazuje i demonstrira 245 00:10:47,691 --> 00:10:50,190 nam je da ste pokušavate, da ste pokušali problem postaviti 246 00:10:50,190 --> 00:10:51,430 na najbolji vaše sposobnosti. 247 00:10:51,430 --> 00:10:53,800 A onda možemo vam dati puna boda za opsegu. 248 00:10:53,800 --> 00:10:58,715 >> Područje je također vrlo važno kada smo govoriti o najnižoj pad pset rezultat. 249 00:10:58,715 --> 00:11:02,010 Dakle, tijekom od semestar, ti dečki imaju devet psets. 250 00:11:02,010 --> 00:11:05,340 A mi zapravo će biti ispuštanje najniža ocjena od onih devet, 251 00:11:05,340 --> 00:11:07,670 ali samo ako imate puni opseg bodova. 252 00:11:07,670 --> 00:11:11,120 >> Dakle, ako ste pretvoriti u nepotpunom pset, na žalost, ne možemo ispustiti tu jednu, 253 00:11:11,120 --> 00:11:13,540 jer vaš opseg Točke nisu završeni. 254 00:11:13,540 --> 00:11:16,570 Pa čak i ako imate grozan tjedan gdje ste umire i da ste bolesni 255 00:11:16,570 --> 00:11:20,040 ili vaš pas umre, tvoj mačka umire, a ti preopterećena s domaće zadaće, 256 00:11:20,040 --> 00:11:21,074 Samo pokušaj pset. 257 00:11:21,074 --> 00:11:22,490 Učinite to na najbolji vaše sposobnosti. 258 00:11:22,490 --> 00:11:23,840 Ako to ne uspije, to ne smeta. 259 00:11:23,840 --> 00:11:24,506 Samo ga uključite u. 260 00:11:24,506 --> 00:11:26,590 Najmanje što možemo dati što ukazuje na trud. 261 00:11:26,590 --> 00:11:28,510 >> A tijekom napora u ovoj klasi. 262 00:11:28,510 --> 00:11:30,170 Barem najniži rezultat pada za trud. 263 00:11:30,170 --> 00:11:32,354 Pa da. 264 00:11:32,354 --> 00:11:33,270 To je prilično zadovoljni. 265 00:11:33,270 --> 00:11:36,521 Se bilo tko imati pitanja pa sada o tome kako smo razred u razredu? 266 00:11:36,521 --> 00:11:37,187 Ili bilo koji od ovih? 267 00:11:37,187 --> 00:11:41,220 Svaka od tih tako far-- sekcije, radno vrijeme? 268 00:11:41,220 --> 00:11:41,720 Cool. 269 00:11:41,720 --> 00:11:46,720 270 00:11:46,720 --> 00:11:47,800 U REDU. 271 00:11:47,800 --> 00:11:51,260 >> Dakle, to je tema koja nema jedan stvarno voli razgovarati. 272 00:11:51,260 --> 00:11:53,084 Ja stvarno ne volim govoriti o tome. 273 00:11:53,084 --> 00:11:55,250 Vi ne stvarno želite čuti da ja razgovaram o tome. 274 00:11:55,250 --> 00:11:57,690 No, na žalost, svi smo razgovarati o tome. 275 00:11:57,690 --> 00:12:00,110 David je proveo 20 minuta predavanje govori o tome. 276 00:12:00,110 --> 00:12:02,580 I to je predmet akademskog poštenja. 277 00:12:02,580 --> 00:12:08,110 >> Tako smo svi ovdje, vjerojatno ste napisali esej negdje u našem Yale karijere. 278 00:12:08,110 --> 00:12:11,800 Vjerojatno dobivši razgovor gdje smo je rekao da ne plagirati naš esej, 279 00:12:11,800 --> 00:12:13,940 jer rad nije naše. 280 00:12:13,940 --> 00:12:18,109 U računalnoj znanosti, imamo ista vrsta koncepta. 281 00:12:18,109 --> 00:12:20,150 Svi radovi koje podnosi, sve kod koji ste napisali 282 00:12:20,150 --> 00:12:21,900 treba biti kod koji ste napisali. 283 00:12:21,900 --> 00:12:24,280 Ne bi trebalo biti kod koji ste kopira od negdje drugdje. 284 00:12:24,280 --> 00:12:26,777 Ne bi trebalo biti kod koji ste googled i ubacio u 285 00:12:26,777 --> 00:12:28,360 i ti stvarno ne znam je li to radi. 286 00:12:28,360 --> 00:12:32,440 Vi vrsta ima osjećaj što to radiš, ali zapravo nije. 287 00:12:32,440 --> 00:12:36,562 Kada su u nedoumici, u biti, to je samo biti razuman. 288 00:12:36,562 --> 00:12:38,520 Na našem nastavnom planu, imamo cijeli popis stvari 289 00:12:38,520 --> 00:12:40,560 vidimo kako je razumna odnosu nije razumno. 290 00:12:40,560 --> 00:12:43,820 >> Na primjer, razumna je li i tvoj prijatelj 291 00:12:43,820 --> 00:12:47,360 raspravlja što je najbolji način da ide O logično rješavanje problema. 292 00:12:47,360 --> 00:12:48,910 To je prilično razumno. 293 00:12:48,910 --> 00:12:53,244 Ono što ne bi bilo razumno je li vama dečki dobili zajedno, upisali isti kod, 294 00:12:53,244 --> 00:12:54,410 i pretvorio je u istom kodu. 295 00:12:54,410 --> 00:12:56,302 To nije razumno. 296 00:12:56,302 --> 00:12:57,510 Ista stvar, vrsta eseja. 297 00:12:57,510 --> 00:12:59,290 Ako želite raspravljati o sa svojim prijateljem, hej, 298 00:12:59,290 --> 00:13:00,220 to je ono što ja želim pisati o tome. 299 00:13:00,220 --> 00:13:02,500 To su koraci želim uzeti pisati o tome, super. 300 00:13:02,500 --> 00:13:03,208 To je divno. 301 00:13:03,208 --> 00:13:04,790 Molimo surađuju jedni s drugima. 302 00:13:04,790 --> 00:13:06,540 Ako vi počnete pisanje istu stvar, 303 00:13:06,540 --> 00:13:10,020 okrenuti u istom eseju, to je manje u redu. 304 00:13:10,020 --> 00:13:13,200 Pa kad ste u nedoumici, samo ne to učiniti. 305 00:13:13,200 --> 00:13:16,940 >> Ovdje smo u CS50, imamo skripte koji rade za automatizaciju za testiranje 306 00:13:16,940 --> 00:13:21,740 ne samo ispravnost vašeg koda, ali i jedinstvenost vašeg koda. 307 00:13:21,740 --> 00:13:25,920 Dakle, nemojte nas staviti u položaj vlasništvo uputiti svoj slučaj EXCOMM. 308 00:13:25,920 --> 00:13:31,110 Molim vas za sve, neka je samo čine ovaj prekrasan doživljaj. 309 00:13:31,110 --> 00:13:33,600 Svatko uči bolje, svi smo sretniji, 310 00:13:33,600 --> 00:13:37,926 i svi smo se postavili na uspjeti u ovom tečaju. 311 00:13:37,926 --> 00:13:39,800 Nešto što je vrlo Jedinstveni o ovom razredu 312 00:13:39,800 --> 00:13:42,660 mislim da bi svatko trebao stvarno obratite pozornost na to da imamo 313 00:13:42,660 --> 00:13:44,930 ono što se zove žaljenje klauzula u našem planu. 314 00:13:44,930 --> 00:13:50,010 Pa u biti, u roku od 72 sata, ako je mislite da ste učinili nešto 315 00:13:50,010 --> 00:13:53,240 nisi baš siguran je prikladno, dođite k nama. 316 00:13:53,240 --> 00:13:57,220 Mi vam obećati da u roku od 72 sata ćemo obraditi slučaj sami 317 00:13:57,220 --> 00:13:59,820 bez pozivanja na višu tijelo u upravi. 318 00:13:59,820 --> 00:14:03,100 >> Dakle, ako ste došli k meni i reći, Andi, hej, stvarno mi je žao, 319 00:14:03,100 --> 00:14:07,620 ali mislim da postoji par redaka u mom kod sinoć da sam vrsta googled, 320 00:14:07,620 --> 00:14:10,120 dobio off stog Overflow, kopirati i zalijepiti, 321 00:14:10,120 --> 00:14:13,680 i ja sam jako, jako žao o tome, javite mi. 322 00:14:13,680 --> 00:14:16,900 Molimo vas da ne samo neka to zagnojiti i samo se nadam da ću ga uhvatiti. 323 00:14:16,900 --> 00:14:17,784 Mi ćemo ga uhvatiti. 324 00:14:17,784 --> 00:14:18,450 Samo dođite k meni. 325 00:14:18,450 --> 00:14:20,520 Javite mi u roku od 72 sata. 326 00:14:20,520 --> 00:14:22,240 Mi ćemo shvatiti rješenje. 327 00:14:22,240 --> 00:14:26,679 A mi obećati da nećemo se odnose na sveučilišnih tijela u osnovi. 328 00:14:26,679 --> 00:14:29,220 Dakle, to je u vašem najboljem interesu samo biti iskren sa svima 329 00:14:29,220 --> 00:14:31,720 uključen u tijeku. 330 00:14:31,720 --> 00:14:34,630 >> U REDU. 331 00:14:34,630 --> 00:14:35,240 U REDU. 332 00:14:35,240 --> 00:14:37,800 Tako sada, brzo prije I dalje, bilo tko 333 00:14:37,800 --> 00:14:42,670 Za sva pitanja u vezi logistike o tome kako tečajeva ćemo pokrenuti, 334 00:14:42,670 --> 00:14:45,982 kako dijelovi idu izvoditi, bilo što od toga? 335 00:14:45,982 --> 00:14:46,711 U REDU. 336 00:14:46,711 --> 00:14:47,210 Da. 337 00:14:47,210 --> 00:14:48,126 >> PUBLIKA: [nečujan]? 338 00:14:48,126 --> 00:14:50,414 339 00:14:50,414 --> 00:14:51,080 ANDI PENG: Da. 340 00:14:51,080 --> 00:14:54,850 Dakle quizzes-- koliko vas je u odjeljku ponedjeljak / srijeda? 341 00:14:54,850 --> 00:14:56,700 Koliko vas je u utorak / četvrtak? 342 00:14:56,700 --> 00:14:58,550 U redu, tako da je solidan Split ovdje. 343 00:14:58,550 --> 00:15:00,900 Dakle, način na koji smo pokrenuti to na Yaleu je da smo 344 00:15:00,900 --> 00:15:04,040 će imati dva odvojena quizzes-- jedan za svaku section-- da 345 00:15:04,040 --> 00:15:06,160 će se tijekom nastave. 346 00:15:06,160 --> 00:15:09,310 Mislim da je listopad kraj listopada, nešto slično kao jedan tjedan 347 00:15:09,310 --> 00:15:10,794 iz kviza. 348 00:15:10,794 --> 00:15:11,960 Da, pa samo dolaze na nastavu. 349 00:15:11,960 --> 00:15:13,920 Na tom ponedjeljak ili srijedu, ćete uzeti kviz. 350 00:15:13,920 --> 00:15:16,336 Na taj utorak ili četvrtak, ćete uzeti drugačiji kviz. 351 00:15:16,336 --> 00:15:18,570 No, isti materijal će biti pokriveni. 352 00:15:18,570 --> 00:15:19,160 Da. 353 00:15:19,160 --> 00:15:20,660 Dobro pitanje. 354 00:15:20,660 --> 00:15:21,160 Da. 355 00:15:21,160 --> 00:15:23,260 >> PUBLIKA: Gdje smo to ići provjeriti naše ocjene? 356 00:15:23,260 --> 00:15:23,926 >> ANDI PENG: Da. 357 00:15:23,926 --> 00:15:28,420 Dakle, ja ću biti poslane iz E-mail god svaki tjedan 358 00:15:28,420 --> 00:15:31,460 kada kvizovi su graded-- ili, Žao mi je, kada psets ocjenjuju. 359 00:15:31,460 --> 00:15:34,120 Psets obično okrenuo u podne ili u petak. 360 00:15:34,120 --> 00:15:37,540 Dakle, obećavam da ću pokušati ih dobiti natrag na vas 361 00:15:37,540 --> 00:15:40,000 od podneva slijedećeg petka. 362 00:15:40,000 --> 00:15:44,950 >> Kad god sam Grade pset, poslat ću iz obavijesti o Grade knjige 363 00:15:44,950 --> 00:15:47,070 koji vam govori vaš rezultat može se pogledati na mreži. 364 00:15:47,070 --> 00:15:52,022 Pa zar ovaj tjedan, nakon što sam završiti ocjenjivanje prošlotjedne psets, 365 00:15:52,022 --> 00:15:54,230 vi ćete dobiti na e-mail Obavijest ti, 366 00:15:54,230 --> 00:15:55,870 hej ovo je mjesto gdje vas ići vidjeti svoje ocjene. 367 00:15:55,870 --> 00:15:57,680 I možete vidjeti sve slom vaše ocjene. 368 00:15:57,680 --> 00:15:58,555 Možete vidjeti komentare. 369 00:15:58,555 --> 00:16:00,360 Oh, brzo stvar također. 370 00:16:00,360 --> 00:16:03,060 Komentar poglavlje u velikom Knjiga je gdje vjerojatno ću 371 00:16:03,060 --> 00:16:05,300 provesti većinu svog vremena ocjenjivanja. 372 00:16:05,300 --> 00:16:07,094 Dakle, jedna stvar koja je jako važno kada 373 00:16:07,094 --> 00:16:09,010 vi gledate Vaše ocjene na svojim psets 374 00:16:09,010 --> 00:16:11,400 ne samo da gleda na fizičkoj rezultat 375 00:16:11,400 --> 00:16:14,630 ali i uzimanje vremena za stvarno čitati moje komentare. 376 00:16:14,630 --> 00:16:17,820 >> Često koja vam daje povratnu informaciju o tome kako ste rješavanju problema. 377 00:16:17,820 --> 00:16:20,480 Ako trebate napraviti nešto malo bolje, 378 00:16:20,480 --> 00:16:24,080 konstruktivna kritika je obično Najbolji dan u tim komentarima odjeljku. 379 00:16:24,080 --> 00:16:26,950 Dakle molim vas, molim vas, ja ću provesti vrijeme pisanja komentara. 380 00:16:26,950 --> 00:16:30,440 Molimo, ja stvarno će poštovati ako ti dečki će čitati te komentare. 381 00:16:30,440 --> 00:16:31,170 U REDU. 382 00:16:31,170 --> 00:16:34,150 Cool. 383 00:16:34,150 --> 00:16:34,680 >> U redu. 384 00:16:34,680 --> 00:16:40,680 Tako ćemo početi govoriti i samo pregledavanje brzo 385 00:16:40,680 --> 00:16:45,040 neke od materijala iz tjedan nula samo tako da smo 386 00:16:45,040 --> 00:16:48,760 na desnoj strani za počinju problemi ovotjedne. 387 00:16:48,760 --> 00:16:52,600 Tako je while petlja je jedno od tri vrste petlje 388 00:16:52,600 --> 00:16:54,510 smo ranije u ovoj klasi. 389 00:16:54,510 --> 00:16:57,060 >> While petlji bitno je zapisano u sintaksi 390 00:16:57,060 --> 00:17:00,666 gdje je, dok je određeni uvjet, to više puta, zar ne? 391 00:17:00,666 --> 00:17:02,040 Razmislite o tome u ovom grafički ovdje. 392 00:17:02,040 --> 00:17:04,780 Ti ćeš početi na određena točka u kodu. 393 00:17:04,780 --> 00:17:09,030 Vi ćete ući u stanje petlje if-- Ne know-- x je manji od jedan. 394 00:17:09,030 --> 00:17:11,677 >> Ako je to istina, ti ćeš izvršiti petlje tijelo. 395 00:17:11,677 --> 00:17:14,010 I ti ćeš nastaviti raditi opet, opet, opet, 396 00:17:14,010 --> 00:17:17,900 više i over-- što je razlog zašto je to loop-- dok se stanje postaje 397 00:17:17,900 --> 00:17:19,079 lažna. 398 00:17:19,079 --> 00:17:22,140 Dakle, na ovaj način, while petlji jedan od načina jednostavnije 399 00:17:22,140 --> 00:17:25,619 napisati bilo kakav uvjet da treba ponoviti iznova i iznova i iznova. 400 00:17:25,619 --> 00:17:28,109 Samo budite oprezni kada god pišete bilo kakve petlje 401 00:17:28,109 --> 00:17:32,140 imate li izlaz stanje kao i ažurirati na ono što 402 00:17:32,140 --> 00:17:36,714 tako da je vaš petlje ne samo pregaziti i preko beskonačno. 403 00:17:36,714 --> 00:17:38,630 U svakom slučaju, ti ćeš da želite biti sigurni 404 00:17:38,630 --> 00:17:42,670 da ste mijenjaju neki aspekt Vaš broj ili na kraju petlje 405 00:17:42,670 --> 00:17:46,680 samo da bi bili sigurni da ćete imati način napredovanja prema stanju 406 00:17:46,680 --> 00:17:48,400 da želite ispuniti kako bi kraj. 407 00:17:48,400 --> 00:17:50,239 Znači li to da smisla svima? 408 00:17:50,239 --> 00:17:52,530 Mi jednostavno ne želimo biti uhvaćen u ovoj spirali gdje 409 00:17:52,530 --> 00:17:55,710 idemo okolo i okolo i ne postoji način da se prekinuti petlju. 410 00:17:55,710 --> 00:17:58,844 I svaki petlje bitno je način da radi. 411 00:17:58,844 --> 00:17:59,344 U REDU. 412 00:17:59,344 --> 00:18:03,030 413 00:18:03,030 --> 00:18:06,060 >> Drugo, mnogi od vas u svojim Mario psets 414 00:18:06,060 --> 00:18:08,910 Vjerojatno je morao zaposliti Ovaj tip petlje. 415 00:18:08,910 --> 00:18:11,802 To se zove do while petlja. 416 00:18:11,802 --> 00:18:14,510 Prije svega, može bilo tko reći mene što je razlika između obveza 417 00:18:14,510 --> 00:18:16,586 while petlja i while petlja je? 418 00:18:16,586 --> 00:18:17,086 Da. 419 00:18:17,086 --> 00:18:21,030 >> PUBLIKA: DO while petlja radi na prvi [nečujan]. 420 00:18:21,030 --> 00:18:22,120 >> ANDI PENG: Da, točno. 421 00:18:22,120 --> 00:18:27,130 Dakle, do while petlja uvijek radi ono je unutar obveza, unutar zagrada 422 00:18:27,130 --> 00:18:30,520 postoji i radi taj uvjet Prije provjere the-- žao, 423 00:18:30,520 --> 00:18:32,940 ti to kod prije provjere stanja. 424 00:18:32,940 --> 00:18:37,200 A to je posebno važno za nas ovdje u ovoj klasi, jer je najviše puta 425 00:18:37,200 --> 00:18:41,450 ćemo žele potaknuti korisnik nekakvu ulaz. 426 00:18:41,450 --> 00:18:43,520 A onda, ovisno o ulazni nam daju, 427 00:18:43,520 --> 00:18:46,150 onda možemo procijeniti, oh, ne moramo ih ponovno potaknuti? 428 00:18:46,150 --> 00:18:49,930 >> Tako je u Mario, ako korisnik vam je dao negativna visine, na primjer, 429 00:18:49,930 --> 00:18:52,990 ti si idući u prvom retku i učiniti sve što je unutra. 430 00:18:52,990 --> 00:18:54,820 Onda ideš provjeriti vrijeme. 431 00:18:54,820 --> 00:18:57,570 Znate, negativna 1, je da je pozitivan broj? 432 00:18:57,570 --> 00:19:00,680 Ako to nije, ja ću otići natrag i ponovite učiniti i ponoviti 433 00:19:00,680 --> 00:19:03,950 i ponoviti i ponavljati dok ne napokon vam dati broj koji vam se sviđa, 434 00:19:03,950 --> 00:19:07,002 da svi mogu zaposliti u našem kodu. 435 00:19:07,002 --> 00:19:09,210 To je prilično važno za u biti bilo koji korisnik ulaz. 436 00:19:09,210 --> 00:19:11,760 Ja vam mogu jamčiti bilo Vrijeme u pset gdje 437 00:19:11,760 --> 00:19:15,070 molimo Vas da unos bilo kakav kod, mi smo 438 00:19:15,070 --> 00:19:17,540 Vjerojatno će ti dati test slučaj u kojem smo 439 00:19:17,540 --> 00:19:21,200 će vam dati nešto loše to je će pokušati razbiti svoj kod. 440 00:19:21,200 --> 00:19:25,044 >> Ako ćemo pokušati vas da ulazni broj, možemo samo dati niz 441 00:19:25,044 --> 00:19:26,460 i vidjeti kako će nositi. 442 00:19:26,460 --> 00:19:30,610 Ako vas pitati zaposliti dob, možemo vam dati negativan broj 443 00:19:30,610 --> 00:19:32,340 vidjeti kako će nositi. 444 00:19:32,340 --> 00:19:37,260 Samo pazite da dečki testiranje slučajevi u kojima se ne dobijete najbolje 445 00:19:37,260 --> 00:19:38,590 ulaz, neka je samo reći. 446 00:19:38,590 --> 00:19:40,510 I do while petlja je često najbolji 447 00:19:40,510 --> 00:19:45,260 način da dizajn vaše kôd tako da ispunjava taj opseg. 448 00:19:45,260 --> 00:19:45,760 U REDU. 449 00:19:45,760 --> 00:19:48,930 450 00:19:48,930 --> 00:19:49,470 >> U REDU. 451 00:19:49,470 --> 00:19:53,270 Dakle, to je vjerojatno Kompleks petlje iz tri 452 00:19:53,270 --> 00:19:54,990 da smo pogledao dosad. 453 00:19:54,990 --> 00:19:56,689 A čini se vrlo zastrašujuće na prvi. 454 00:19:56,689 --> 00:19:59,730 Ali ja vam jamčim, nakon što dečki naviknete na kako koristiti for petlje, 455 00:19:59,730 --> 00:20:03,320 to je jedan od najkorisnijih stvari, najkorisnijih alata u svoj arsenal 456 00:20:03,320 --> 00:20:05,300 za kretanje naprijed u ovoj klasi. 457 00:20:05,300 --> 00:20:09,920 >> Tako, na primjer, u nule, imali smo ovaj vrlo jednostavan blok 458 00:20:09,920 --> 00:20:13,180 da je samo rekao ponoviti to sigurno fraze određeni broj puta. 459 00:20:13,180 --> 00:20:16,260 Usput, SAJ-- to je Scaz Andi Jason. 460 00:20:16,260 --> 00:20:18,740 Mi često potpisati našu e-pošte Saj. 461 00:20:18,740 --> 00:20:20,360 Ako kažemo Saj, nemojte biti zbunjeni. 462 00:20:20,360 --> 00:20:22,630 To je samo nas. 463 00:20:22,630 --> 00:20:28,600 >> Tako je u nule, bili smo u mogućnosti da imaju blok koji je, ponavljam volim Saj! 464 00:20:28,600 --> 00:20:29,430 10 puta. 465 00:20:29,430 --> 00:20:30,130 Vrlo jednostavno. 466 00:20:30,130 --> 00:20:32,302 Logika da je Vrlo, vrlo jednostavno, zar ne? 467 00:20:32,302 --> 00:20:35,260 Želim prvi proći kroz prvi Vrijeme i vidjeti da je, po drugi put 468 00:20:35,260 --> 00:20:38,510 i vidjeti da je, po treći put, itd i tako dalje, sve dok ne dosegnete do 10. 469 00:20:38,510 --> 00:20:41,960 >> A način na koji bi predstavljao da je u kod je samo putem jednostavnog za petlju. 470 00:20:41,960 --> 00:20:45,440 Tako, ti ćeš proglasiti Vaša varijabla ovdje, u ovom slučaju, 471 00:20:45,440 --> 00:20:46,349 sa int. 472 00:20:46,349 --> 00:20:47,390 Idemo to sam ime. 473 00:20:47,390 --> 00:20:49,500 Ćemo ga inicijalizirati na 0. 474 00:20:49,500 --> 00:20:52,490 Te zaustavljanje izdanje će biti i manji od 10. 475 00:20:52,490 --> 00:20:54,622 I ažuriranje će biti i ++. 476 00:20:54,622 --> 00:20:57,750 >> A unutar petlje, to će izvršiti sve dok na kraju ga 477 00:20:57,750 --> 00:21:01,490 pogađa kraj condition-- u kojoj slučaj, to će prekinuti petlju. 478 00:21:01,490 --> 00:21:04,600 Tu bi trebao biti stvari koje vas Dečki su sve vrste prije vidio 479 00:21:04,600 --> 00:21:07,270 i morao učiniti za vaš problem postaviti jedan. 480 00:21:07,270 --> 00:21:12,310 Se bilo tko imati bilo kakvih pitanja vezano za petlje sada? 481 00:21:12,310 --> 00:21:12,930 U REDU. 482 00:21:12,930 --> 00:21:13,430 Veliki. 483 00:21:13,430 --> 00:21:17,520 484 00:21:17,520 --> 00:21:18,620 >> U REDU. 485 00:21:18,620 --> 00:21:22,270 Dakle, za one od vas koji imaju pročitajte pset spec za ovaj tjedan 486 00:21:22,270 --> 00:21:27,690 znam da ćemo morati zaposliti nešto što se zove ASCII i ASCII tablici. 487 00:21:27,690 --> 00:21:32,380 Tako je David u predavanju otišao kratko Kako računala essentially-- sve 488 00:21:32,380 --> 00:21:35,410 je kodiran u računalu binarna, u nula i jedinica. 489 00:21:35,410 --> 00:21:39,740 A način na koji su računala u stanju pohraniti različite vrijednosti osim 490 00:21:39,740 --> 00:21:44,360 na nula i jedinica su kroz mapiranje ti brojevi za zastupanje druge znamenke 491 00:21:44,360 --> 00:21:47,220 ili bitno drugih znakova. 492 00:21:47,220 --> 00:21:49,810 >> Tako je u ovom slučaju, ASCII table-- sve to radi 493 00:21:49,810 --> 00:21:53,600 je karta znakova ili znakova, brojeva. 494 00:21:53,600 --> 00:21:57,385 Dakle izvornog koda datoteke u Vaš computer-- vidi, 495 00:21:57,385 --> 00:22:00,010 hej, hrpa nula i jedinica, nula i jedinica, nula i jedinica. 496 00:22:00,010 --> 00:22:02,350 To je ono što pohranjeni u stvarna sjećanje na računalu. 497 00:22:02,350 --> 00:22:04,750 >> Ali kada mi ljudi žele komunicirati s računalom, 498 00:22:04,750 --> 00:22:08,249 što want-- reći, na primjer, ako želim na veliko A, 499 00:22:08,249 --> 00:22:10,540 Idem u potreba neki način reći računalo, oh, 500 00:22:10,540 --> 00:22:16,300 kada sam tip veliko A, mislim to zastupanje u binarnom. 501 00:22:16,300 --> 00:22:22,260 >> I tako je način na koji smo to je bacio proizvoljna stvar zove ASCII tablicu, 502 00:22:22,260 --> 00:22:25,020 gdje smo, kao ljudi, kao što je programeri, prije nekog vremena, 503 00:22:25,020 --> 00:22:28,660 mi samovoljno odlučio da mi su idući dodijeliti ove broj 504 00:22:28,660 --> 00:22:30,960 Vrijednosti ovih znakova. 505 00:22:30,960 --> 00:22:32,720 >> Dakle, vi možete google online. 506 00:22:32,720 --> 00:22:37,120 Mislim da postoji link na ga u pset-- samo tablica ASCII karta, ASCII 507 00:22:37,120 --> 00:22:37,720 stol. 508 00:22:37,720 --> 00:22:40,722 To samo znači binarna brojeve u slova. 509 00:22:40,722 --> 00:22:42,930 I to će biti vrlo korisno za vaš problem set 510 00:22:42,930 --> 00:22:45,470 kad god želite izračunati ništa ili ako 511 00:22:45,470 --> 00:22:47,880 želite prikazati određeni znakova ili cijeli brojevi 512 00:22:47,880 --> 00:22:50,327 ili manipulirati određene znakove. 513 00:22:50,327 --> 00:22:52,160 To će biti vrlo važno da svi 514 00:22:52,160 --> 00:22:55,140 Znaš kako se kretati ASCII tablicu. 515 00:22:55,140 --> 00:23:01,260 >> Tako na primjer, verzalnog A predstavljen brojem 65. 516 00:23:01,260 --> 00:23:04,207 I mala zastupa 97. 517 00:23:04,207 --> 00:23:07,040 Dakle, važno je znati da je Razlika između te dvije vrijednosti 518 00:23:07,040 --> 00:23:08,320 je 32. 519 00:23:08,320 --> 00:23:13,210 Često, ako je potrebno pretvoriti iz jedna na drugu, razlika je 32. 520 00:23:13,210 --> 00:23:15,710 I ne brinite, ako ste ljubazni od zbunjeni o tome na prvom mjestu. 521 00:23:15,710 --> 00:23:20,230 Mi ćemo ići preko kako bi zaposliti to u stvarnoj koda. 522 00:23:20,230 --> 00:23:24,700 523 00:23:24,700 --> 00:23:26,380 >> U REDU. 524 00:23:26,380 --> 00:23:30,770 Dakle, za one od vas s laptopa istaknuti slobodno podići ASCII tablicu, 525 00:23:30,770 --> 00:23:36,030 jer to će vjerojatno zahtijevaju vi referenca 526 00:23:36,030 --> 00:23:38,100 što su likovi. 527 00:23:38,100 --> 00:23:38,640 U REDU. 528 00:23:38,640 --> 00:23:42,840 >> Dakle, znajući da sigurno likovi kartu na određene brojeve, 529 00:23:42,840 --> 00:23:47,240 ako su pokrenuti tek prvi linija koja code-- na printf A, 530 00:23:47,240 --> 00:23:50,900 mala slova a, minus veliko A. li itko 531 00:23:50,900 --> 00:23:55,880 ima jedan pogodak na ono što će biti ispis zaslona sada? 532 00:23:55,880 --> 00:23:58,190 >> Dakle, prije svega, što se mala, predstavljaju? 533 00:23:58,190 --> 00:24:00,990 Koji je broj koji kodirana u ASCII tablici. 534 00:24:00,990 --> 00:24:01,490 Žao nam je? 535 00:24:01,490 --> 00:24:02,630 >> PUBLIKA: 97? 536 00:24:02,630 --> 00:24:03,630 >> ANDI PENG: 97, super. 537 00:24:03,630 --> 00:24:05,077 A što je veliko A 538 00:24:05,077 --> 00:24:06,330 >> PUBLIKA: 65. 539 00:24:06,330 --> 00:24:08,255 >> ANDI PENG: Dakle, što je 97 minus 65? 540 00:24:08,255 --> 00:24:09,227 >> PUBLIKA: 32. 541 00:24:09,227 --> 00:24:09,810 ANDI PENG: U redu. 542 00:24:09,810 --> 00:24:13,530 Pa što vi mislite ide dogoditi kad sam ulaz koji redak koda 543 00:24:13,530 --> 00:24:14,670 u moje računalo? 544 00:24:14,670 --> 00:24:17,981 545 00:24:17,981 --> 00:24:19,896 >> PUBLIKA: [nečujan]. 546 00:24:19,896 --> 00:24:21,020 ANDI PENG: Žao nam je, progovoriti. 547 00:24:21,020 --> 00:24:22,520 Bez brige. 548 00:24:22,520 --> 00:24:25,750 To je vrlo siguran okoliš, minus kamera. 549 00:24:25,750 --> 00:24:27,550 Svi ćemo to-- bez brige. 550 00:24:27,550 --> 00:24:30,940 Samo ćemo svi praviti kao to je samo nas chilling u ovoj sobi. 551 00:24:30,940 --> 00:24:31,480 Bez brige. 552 00:24:31,480 --> 00:24:33,410 Nema sumnje je previše glup. 553 00:24:33,410 --> 00:24:35,300 Bez odgovora je glupo odgovor. 554 00:24:35,300 --> 00:24:38,260 Ja sam vjerojatno će napraviti pogrešku u toku mog nastave. 555 00:24:38,260 --> 00:24:40,740 Ozbiljno, ljudi, samo ga izbrbljati. 556 00:24:40,740 --> 00:24:43,092 Budite sigurni u sebe, znaš? 557 00:24:43,092 --> 00:24:43,800 Dakle, što je to? 558 00:24:43,800 --> 00:24:47,990 Tko je rekao da je zadnji odgovor? 559 00:24:47,990 --> 00:24:48,540 U REDU. 560 00:24:48,540 --> 00:24:50,380 Vikati da je lijepo i jasno. 561 00:24:50,380 --> 00:24:51,220 >> PUBLIKA: 32? 562 00:24:51,220 --> 00:24:51,850 >> ANDI PENG: 32. 563 00:24:51,850 --> 00:24:54,141 OK, neka je pokrenuti ovaj kod i vidjeti ako je to ono što se događa. 564 00:24:54,141 --> 00:25:00,260 565 00:25:00,260 --> 00:25:00,760 U REDU. 566 00:25:00,760 --> 00:25:03,300 567 00:25:03,300 --> 00:25:06,360 Dakle, kao što vi možete vrsta vidi, tipičnu zapis sam 568 00:25:06,360 --> 00:25:12,250 postaviti ovdje kako bismo zaposliti bilo kakve programa u naše računalo. 569 00:25:12,250 --> 00:25:14,770 Mi imamo glavnu ulogu unutar naše glavne funkcije. 570 00:25:14,770 --> 00:25:17,265 Samo ću kopirati i zalijepite ovaj redak koda. 571 00:25:17,265 --> 00:25:21,082 572 00:25:21,082 --> 00:25:23,540 Također budite oprezni kada dečki kopirate i zalijepite kôd. 573 00:25:23,540 --> 00:25:28,750 Ponekad neki operateri ne zalijepite preko ispravno. 574 00:25:28,750 --> 00:25:31,397 U tom slučaju, minus Znak je zapravo crtica. 575 00:25:31,397 --> 00:25:32,980 I tako se računalo nije ga pokupiti. 576 00:25:32,980 --> 00:25:35,870 Zato sam se morao vratiti i fizički upisivati ​​to. 577 00:25:35,870 --> 00:25:37,846 Samo budite oprezni kada ti dečki rade to. 578 00:25:37,846 --> 00:25:41,178 579 00:25:41,178 --> 00:25:42,660 >> U REDU. 580 00:25:42,660 --> 00:25:43,980 Idemo pokrenuti ovo ovdje. 581 00:25:43,980 --> 00:25:45,670 Tako ćemo cd u naš Odjeljku 2. 582 00:25:45,670 --> 00:25:50,470 583 00:25:50,470 --> 00:25:52,030 Ja sam nazvao ovaj program asciimath. 584 00:25:52,030 --> 00:25:55,690 Tako zapamtite, kada smo pokrenuti bilo Program, želimo ga prvi sastaviti 585 00:25:55,690 --> 00:25:57,150 ga prikazuju kroz naše marke. 586 00:25:57,150 --> 00:26:00,030 A onda želimo zapravo pokrenuti Program na taj dot-crta. 587 00:26:00,030 --> 00:26:01,280 Tako ćemo ./asciimath. 588 00:26:01,280 --> 00:26:05,780 589 00:26:05,780 --> 00:26:06,590 >> Točno, tamo idemo. 590 00:26:06,590 --> 00:26:07,410 I vidimo 32. 591 00:26:07,410 --> 00:26:07,930 Dobro napravljeno. 592 00:26:07,930 --> 00:26:10,340 Vi zaslužujete komad slatkiša. 593 00:26:10,340 --> 00:26:11,160 Candy za vas. 594 00:26:11,160 --> 00:26:11,900 Oprostite. 595 00:26:11,900 --> 00:26:13,100 U redu. 596 00:26:13,100 --> 00:26:13,670 U REDU. 597 00:26:13,670 --> 00:26:18,070 Dakle, možemo se vratiti u naš primjer ovdje. 598 00:26:18,070 --> 00:26:23,530 599 00:26:23,530 --> 00:26:24,345 Aah, br. 600 00:26:24,345 --> 00:26:29,147 601 00:26:29,147 --> 00:26:31,090 Aah. 602 00:26:31,090 --> 00:26:32,490 U REDU. 603 00:26:32,490 --> 00:26:34,610 Samo ću ga zadržati kao što je to. 604 00:26:34,610 --> 00:26:48,520 605 00:26:48,520 --> 00:26:51,240 U REDU. 606 00:26:51,240 --> 00:26:51,740 U REDU. 607 00:26:51,740 --> 00:26:55,340 Dakle, kao što vi vidite, možemo napraviti puno vrlo zanimljivih stvari, 608 00:26:55,340 --> 00:26:58,880 mnogo vrlo dobrih stvari, puno vrlo komplicirane stvari koje uključuju 609 00:26:58,880 --> 00:27:02,720 ASCII znakova i brojeva. 610 00:27:02,720 --> 00:27:05,890 Nakon što se dolje da se postroje pet, to je puno slijediti zajedno. 611 00:27:05,890 --> 00:27:07,640 Nećemo ići kroz odjeljak. 612 00:27:07,640 --> 00:27:10,720 Slobodno, ako možete, Stoga na papiru 613 00:27:10,720 --> 00:27:14,750 najprije na ono što bi trebao biti događa kada unesete kao niz vrijednosti. 614 00:27:14,750 --> 00:27:19,720 Na primjer, u tom posljednjem retku imamo z-- što predstavlja određenu number-- 615 00:27:19,720 --> 00:27:24,740 A- koji također predstavlja određene number-- plus 1 modulos 26 616 00:27:24,740 --> 00:27:26,750 plus mala slova a. 617 00:27:26,750 --> 00:27:29,220 >> Ako dečki držati čitanje po njima, te 618 00:27:29,220 --> 00:27:34,009 mogu vidjeti uzorak doći u kako ćemo manipulira kôd. 619 00:27:34,009 --> 00:27:36,050 Ja visoko, visoko predlažemo Nakon poglavlje svima vama 620 00:27:36,050 --> 00:27:38,160 dečki samo naprijed i ulaz one sve u računalu 621 00:27:38,160 --> 00:27:40,060 i vidjeti što vrste Brojevi su izlazili 622 00:27:40,060 --> 00:27:43,090 i rasuđivanje kroz zašto su to događa, jer za psets 623 00:27:43,090 --> 00:27:45,060 to će biti jako važan za vas da razumijete 624 00:27:45,060 --> 00:27:47,132 zašto se neke stvari događaju. 625 00:27:47,132 --> 00:27:48,590 Sve ove slajdove će biti online. 626 00:27:48,590 --> 00:27:51,510 Tako da nema brige oko pokušava fizički kopirati bilješke. 627 00:27:51,510 --> 00:27:52,510 Sve je na internetu. 628 00:27:52,510 --> 00:27:54,050 To samo po sebi dio će biti online. 629 00:27:54,050 --> 00:27:57,500 Sve moje izvorni kod koji Ja sam trčanje će biti online. 630 00:27:57,500 --> 00:27:58,180 Da. 631 00:27:58,180 --> 00:27:59,430 Jeste li još uvijek imate pitanja? 632 00:27:59,430 --> 00:28:00,587 PUBLIKA: Što je modulos? 633 00:28:00,587 --> 00:28:01,170 ANDI PENG: U redu. 634 00:28:01,170 --> 00:28:05,620 Dakle modulo je operator koji će biti prilično važno da vaš dečki ¡ť pset 635 00:28:05,620 --> 00:28:06,690 ovdje. 636 00:28:06,690 --> 00:28:12,280 Tako način da operatori u C i programiranja rada 637 00:28:12,280 --> 00:28:16,360 je da imate ono što se zove Podjela simbol i simbol modul, 638 00:28:16,360 --> 00:28:18,350 koji je kao postotak znak. 639 00:28:18,350 --> 00:28:24,840 >> Tako je u C, kada to učinite cijeli broj podijeljena cijeli broj sa kosom crtom, 640 00:28:24,840 --> 00:28:27,720 C ima tendenciju da žele smanjiti off sve decimalnih mjesta, 641 00:28:27,720 --> 00:28:30,290 jer cijeli želi pretvoriti u cijeli broj. 642 00:28:30,290 --> 00:28:33,550 To neće htjeti biti dvostruko s hrpom decimala sve nakon njega. 643 00:28:33,550 --> 00:28:39,322 >> Dakle, ako ja 3 podijeljeno sa 2, to se događa da odsiječe 0.5 i samo vam dati 1. 644 00:28:39,322 --> 00:28:41,530 Dakle, to je nešto što se vrlo oprezni kada ste 645 00:28:41,530 --> 00:28:45,294 radite bilo kakve matematike u programiranju, je da su brojevi koje dobijete 646 00:28:45,294 --> 00:28:47,210 ne mogu biti brojevi da su mislili, 647 00:28:47,210 --> 00:28:50,190 zbog čega je zaokruživanje na svoj Posljednji pset je tako važno. 648 00:28:50,190 --> 00:28:51,980 >> Modulo vam daje ostatak. 649 00:28:51,980 --> 00:28:56,200 Tako na primjer, ako jesam 3 modulo 2-- tako 3 posto znak 2-- 650 00:28:56,200 --> 00:28:58,020 to će vam dati ostatak toga. 651 00:28:58,020 --> 00:29:00,460 Dakle 3 podijeljeno s 2 je 1,5. 652 00:29:00,460 --> 00:29:01,410 To je 1 ostatak 1. 653 00:29:01,410 --> 00:29:04,600 To bi vam dati 1, koji je ostatak toga. 654 00:29:04,600 --> 00:29:07,361 >> Dakle, kada ti dečki su se kreće kroz ASCII tablice, 655 00:29:07,361 --> 00:29:09,735 modulo će završiti kao nešto što je vrlo važno, 656 00:29:09,735 --> 00:29:11,240 a mi ćemo raspravljati o tome kasnije. 657 00:29:11,240 --> 00:29:17,750 658 00:29:17,750 --> 00:29:19,040 >> U REDU. 659 00:29:19,040 --> 00:29:27,300 Dakle, nešto što je lijepo, prilično nova i prilično jedinstven 660 00:29:27,300 --> 00:29:31,920 da smo razgovarali ovaj tjedan se koncept što niz je. 661 00:29:31,920 --> 00:29:34,370 Dakle, niz je prvi vrsta strukture podataka 662 00:29:34,370 --> 00:29:36,320 kako ćemo susresti u ovoj klasi. 663 00:29:36,320 --> 00:29:40,010 Sve struktura podataka je nekakva proizvoljna, 664 00:29:40,010 --> 00:29:43,370 doslovno stvari kao što su struktura da mi kao programeri stvorili, 665 00:29:43,370 --> 00:29:47,890 da smo stavili u naše kôd koji može sadržavati i druge dijelove koda. 666 00:29:47,890 --> 00:29:51,090 >> Dakle, u tom smislu, u array-- mislim da je to kao ormar za kartoteku, 667 00:29:51,090 --> 00:29:53,470 gdje ako otvorite drugačije police vašem ormaru, 668 00:29:53,470 --> 00:29:55,630 možete pristupiti različite stvari. 669 00:29:55,630 --> 00:29:58,630 U spomen, niz je samo radi ista stvar na vašem računalu. 670 00:29:58,630 --> 00:30:01,730 Možete imati različite blocks-- mi ih nazvati indices-- od niza. 671 00:30:01,730 --> 00:30:04,210 To je samo kao blok, polica memorije 672 00:30:04,210 --> 00:30:07,580 koje smo stvorili u svoj računalo koje možete unijeti 673 00:30:07,580 --> 00:30:10,270 određene stvari u različitim prostorima. 674 00:30:10,270 --> 00:30:18,000 >> Tako je s nizom, što uvijek moraju specify-- 675 00:30:18,000 --> 00:30:22,360 morate odrediti proglašena niz u sljedećem obliku. 676 00:30:22,360 --> 00:30:24,290 Ti ćeš prvo navesti vrstu podataka 677 00:30:24,290 --> 00:30:25,831 koji želite stvoriti od polja. 678 00:30:25,831 --> 00:30:28,870 Ako želim niz brojeva, Ja ću staviti int pravo postoji. 679 00:30:28,870 --> 00:30:32,079 Ako želim niz žice, Idem staviti žice tamo, 680 00:30:32,079 --> 00:30:34,995 naziv vaše polje, a zatim ti si idući u morati uglate zagrade. 681 00:30:34,995 --> 00:30:39,580 A unutar uglatih zagrada, ti si će imati veličinu vaše polje. 682 00:30:39,580 --> 00:30:42,900 >> Nešto što je stvarno važno imajte na umu prilikom izrade polja je 683 00:30:42,900 --> 00:30:46,530 da, nakon što stvorite niz, da veličina ne može promijeniti. 684 00:30:46,530 --> 00:30:50,180 Dakle, ako znate da upravo sada imate niz veličine 10, 685 00:30:50,180 --> 00:30:54,550 znaš da ću imati 10 stanica unutar ili 10 indeksa unutar ovog polja, 686 00:30:54,550 --> 00:30:56,830 i to nikad ne događa proširiti ili smanjiti 687 00:30:56,830 --> 00:30:59,850 bez obzira na sve, i da je Trenutno samo 10 blokova prostora 688 00:30:59,850 --> 00:31:04,490 dodijeljen u sjećanju da može pohraniti do 10 stvari bez obzira što ste stavili. 689 00:31:04,490 --> 00:31:08,790 >> Tako je u ovom način, tip podataka niz, struktura podataka koja je niz 690 00:31:08,790 --> 00:31:13,392 je vrlo različita od nekih drugih ćemo se pokrivaju kasnije u ovom tečaju. 691 00:31:13,392 --> 00:31:15,170 Da. 692 00:31:15,170 --> 00:31:20,080 Na primjer, ako ste htjeli stvoriti niz veličine 3 koji 693 00:31:20,080 --> 00:31:23,670 sadržane varijable integer-- Oh, ispričavam se, od temperature-- 694 00:31:23,670 --> 00:31:25,640 i temperature, u Naravno, cijeli broj. 695 00:31:25,640 --> 00:31:28,710 >> Tako bismo stvorili int, koji je Tip podataka što želimo pohraniti. 696 00:31:28,710 --> 00:31:32,680 Ćemo nazvati ovu temperature radi nomenklaturi imenovanja 697 00:31:32,680 --> 00:31:34,200 nešto što smo svi razumjeli. 698 00:31:34,200 --> 00:31:35,900 I mi ćemo imati uglate zagrade. 699 00:31:35,900 --> 00:31:37,200 I mi želimo tri broja. 700 00:31:37,200 --> 00:31:39,000 Tako ćemo staviti tri unutar nje. 701 00:31:39,000 --> 00:31:41,041 >> Nešto što je stvarno važno je imati na umu 702 00:31:41,041 --> 00:31:43,530 je da su nizovi nula indeksiraju. 703 00:31:43,530 --> 00:31:46,410 Sve to znači da vas početi s indeksom 0, 704 00:31:46,410 --> 00:31:49,800 i ti izvoditi kroz veličina polja minus 1. 705 00:31:49,800 --> 00:31:52,730 Tako ovdje primjer, imaju niz veličine 3. 706 00:31:52,730 --> 00:31:54,680 To će biti u mogućnosti održati tri vrijednosti. 707 00:31:54,680 --> 00:31:57,450 Ali brojevi sobom, da broj, niz, taj je indeks, 708 00:31:57,450 --> 00:32:00,271 Niz su 0 do 2. 709 00:32:00,271 --> 00:32:03,520 Dakle dečki, biti jako, jako oprezni kada idete kroz vaše probleme postavljene 710 00:32:03,520 --> 00:32:06,500 i stvaranje bilo kakve ponude, jer mnogo je puta to je 711 00:32:06,500 --> 00:32:08,490 jako, jako lako zaboraviti. 712 00:32:08,490 --> 00:32:11,840 Ja zapravo nemam indeks 3, kako sam trenutno samo 713 00:32:11,840 --> 00:32:13,130 imaju indeks 2. 714 00:32:13,130 --> 00:32:16,046 A ako pokušate pristup treće indeks, 715 00:32:16,046 --> 00:32:18,170 to će biti ono što je zove null terminator. 716 00:32:18,170 --> 00:32:19,990 To neće zapravo postoje u nizu. 717 00:32:19,990 --> 00:32:21,781 A računalo neće svidjeti. 718 00:32:21,781 --> 00:32:24,570 Dakle, budite oprezni kada god vi pristupate stvari jednostavno 719 00:32:24,570 --> 00:32:28,070 kako bi se osiguralo da se sjetite da su nizovi nula klauzulom. 720 00:32:28,070 --> 00:32:28,880 >> U REDU. 721 00:32:28,880 --> 00:32:34,030 Dakle, prvi primjer je samo jedan od načina stvaranja niz. 722 00:32:34,030 --> 00:32:36,790 Drugi primjer imam u nastavku je samo poseban način 723 00:32:36,790 --> 00:32:40,210 stvaranja što je isti podaci struktura koja smo upravo unesene. 724 00:32:40,210 --> 00:32:44,347 Dakle, umjesto da fizički radi kroz i stavljanja u temperaturi od 0 725 00:32:44,347 --> 00:32:47,180 jednako god, Temperatura 1 jednako što god, temperature 2 jednako 726 00:32:47,180 --> 00:32:50,950 sve što sam mogla zapravo samo izravno sve stvoriti u jednom retku 727 00:32:50,950 --> 00:32:53,010 u temperaturnim uglatih zagrada jednaka. 728 00:32:53,010 --> 00:32:56,536 >> I obavijest u ovom slučaju, ne trebate odrediti koliko je velika vaša polje je 729 00:32:56,536 --> 00:32:59,160 jer računalo će proći i vidjeti da postoji 730 00:32:59,160 --> 00:33:01,570 tri elementa u tim vitičastih zagrada. 731 00:33:01,570 --> 00:33:04,000 I to će znati, u redu, Trebam niz veličine 3. 732 00:33:04,000 --> 00:33:07,440 Nećeš se morati ulaz je na sljedeći način. 733 00:33:07,440 --> 00:33:10,170 >> I također, da, na taj način. 734 00:33:10,170 --> 00:33:12,610 Se bilo tko imati pitanja o tome kako ćemo napraviti polja 735 00:33:12,610 --> 00:33:17,391 ili kako struktura niz radova? 736 00:33:17,391 --> 00:33:17,890 Da. 737 00:33:17,890 --> 00:33:18,806 >> PUBLIKA: [nečujan]? 738 00:33:18,806 --> 00:33:21,649 739 00:33:21,649 --> 00:33:22,690 ANDI PENG: Da, točno. 740 00:33:22,690 --> 00:33:26,150 Dakle, ako ste bili da proglasi i inicijalizirati niz sljedećih metoda, 741 00:33:26,150 --> 00:33:28,477 što je na drugi način, možete jednostavno ostaviti one. 742 00:33:28,477 --> 00:33:30,310 I računalo automatski zna da to 743 00:33:30,310 --> 00:33:33,950 treba prebrojati koliko elemenata su u tim vitičastih zagrada, odvojena 744 00:33:33,950 --> 00:33:34,930 zarezima. 745 00:33:34,930 --> 00:33:37,517 >> Dakle, ovdje se vidi 65, 87, 30. 746 00:33:37,517 --> 00:33:39,600 Tako se računalo ne zna, oh, postoji tri prirodna broja. 747 00:33:39,600 --> 00:33:45,960 Znam stvoriti ime array Temperatura s tri elementa u njoj. 748 00:33:45,960 --> 00:33:46,590 Dobro pitanje. 749 00:33:46,590 --> 00:33:47,090 Da. 750 00:33:47,090 --> 00:33:51,590 >> PUBLIKA: Nije bilo moguće stvoriti niz s različitim vrstama podataka 751 00:33:51,590 --> 00:33:53,021 koja bi mogla biti upisana u nju? 752 00:33:53,021 --> 00:33:56,746 Na primjer, s brojeva [nečujan]? 753 00:33:56,746 --> 00:33:59,120 ANDI PENG: U svrhe ove klase, ne, upravo sada. 754 00:33:59,120 --> 00:34:03,070 Kada stvorite podatke strukturirati kao niz, 755 00:34:03,070 --> 00:34:04,990 vi govorite računalo, hej, trebam te 756 00:34:04,990 --> 00:34:08,159 izdvojiti toliko memorije u mom hard disk, 757 00:34:08,159 --> 00:34:10,690 s svaka stanica bude određeni broj bitova. 758 00:34:10,690 --> 00:34:13,429 >> Zapamti smo naučili u tjednu nula da različiti podaci 759 00:34:13,429 --> 00:34:15,300 vrste imaju različite veličine? 760 00:34:15,300 --> 00:34:17,630 Tako na primjer, niz je drugačiji iznos 761 00:34:17,630 --> 00:34:20,719 prostora nego char, koja je drugačiji iznos prostor 762 00:34:20,719 --> 00:34:21,830 od cijelog broja. 763 00:34:21,830 --> 00:34:25,534 I tako, ako ne odredite i vi miješati i odgovaraju što vrste varijabli 764 00:34:25,534 --> 00:34:27,659 imate, računalo je će biti vrlo zbunjeni. 765 00:34:27,659 --> 00:34:29,950 A to neće znati koliko memorije da ti daju. 766 00:34:29,950 --> 00:34:32,480 Dakle, za svrhu prava Sada, računala mogu samo 767 00:34:32,480 --> 00:34:36,120 prepoznaje jednu vrstu polje. 768 00:34:36,120 --> 00:34:37,940 Dobro pitanje. 769 00:34:37,940 --> 00:34:38,440 U REDU. 770 00:34:38,440 --> 00:34:45,179 771 00:34:45,179 --> 00:34:47,120 >> Pa naravno, Drugo pitanje imamo 772 00:34:47,120 --> 00:34:50,760 je, dobro, sad kad smo stvorio polja i mi smo stavili sve te stvari 773 00:34:50,760 --> 00:34:54,190 u nizu, kako ćemo će biti u mogućnosti to pristup? 774 00:34:54,190 --> 00:34:59,710 Dakle, tipična struktura koja uvijek pristupiti niz je naš lijepi za petlju. 775 00:34:59,710 --> 00:35:03,830 Obećavam vam dečki da ćemo biti vidim dosta ovog momka ovdje. 776 00:35:03,830 --> 00:35:06,470 >> U biti, kad god želite za unos vrijednosti u niz 777 00:35:06,470 --> 00:35:09,940 ili ih želite pristupiti je Najbolji način da to učinite je za petlje, 778 00:35:09,940 --> 00:35:13,730 jer u for petlji, što znam koliko puta ste 779 00:35:13,730 --> 00:35:17,290 će htjeti pokrenuti kroz polje, jer imate stop izdanje, zar ne? 780 00:35:17,290 --> 00:35:19,680 I svaki put kada pokrenete kroz, možete pristupiti 781 00:35:19,680 --> 00:35:21,310 različit element polja. 782 00:35:21,310 --> 00:35:26,920 >> I također, to je razlog zašto se obično započinjemo za petlje na 0 vrijednosti, 783 00:35:26,920 --> 00:35:30,080 jer kad pristupate polja, možete pristupiti indeks nula. 784 00:35:30,080 --> 00:35:32,070 I tako je to paralela vrlo lijepo. 785 00:35:32,070 --> 00:35:35,295 Vi možda željeli pisati za int i jednak 1. 786 00:35:35,295 --> 00:35:37,330 i manji od ili jednak 3. 787 00:35:37,330 --> 00:35:39,890 >> Ali to ne bi išlo baš tako i ovdje, samo zato što vas 788 00:35:39,890 --> 00:35:42,010 imaju elemente 0, 1 ili 2. 789 00:35:42,010 --> 00:35:45,815 I tako, ako ste bili na početak Vaš sam elementa 1, 2 i 3, 790 00:35:45,815 --> 00:35:48,440 ti si idući u kraj gore trčanje iz granica svoje polje, 791 00:35:48,440 --> 00:35:50,440 i loše stvari će se dogoditi. 792 00:35:50,440 --> 00:35:54,480 >> Dakle, nadam se da ćete vi vidjeti segue zašto u ranijim razredima 793 00:35:54,480 --> 00:35:58,560 smo podučavanje ti dečki kako pokrenuti i format for petlje na način na koji smo bili. 794 00:35:58,560 --> 00:36:01,900 To je zato, sada smo prebačen u polja, 795 00:36:01,900 --> 00:36:06,760 možete vidjeti zašto je 0 posuđuje Sam vrlo lijepo za pristupanje. 796 00:36:06,760 --> 00:36:09,880 >> Dakle, način na koji smo to je that-- sam samo ga ispisujete ovdje radi 797 00:36:09,880 --> 00:36:10,830 ga ispišete. 798 00:36:10,830 --> 00:36:13,750 Ali imam rezerviranog mjesta, zarez. 799 00:36:13,750 --> 00:36:15,645 A stvarni Pristup Dio se događa. 800 00:36:15,645 --> 00:36:17,520 Naziv polja zvao temperatura. 801 00:36:17,520 --> 00:36:21,570 Dakle, to je temperatura i ja-ti element niza. 802 00:36:21,570 --> 00:36:24,400 >> Dakle, kao što je za petlju prolazi kroz, to će započeti u 0. 803 00:36:24,400 --> 00:36:27,640 To će ispisati 0. indeks tog polja. 804 00:36:27,640 --> 00:36:29,599 Onda to će ispisati iz prvog elementa. 805 00:36:29,599 --> 00:36:31,431 Onda to će ispisati iz druge. 806 00:36:31,431 --> 00:36:32,880 A onda ćemo razbiti. 807 00:36:32,880 --> 00:36:36,718 Jesu li svi jasno kako se to događa? 808 00:36:36,718 --> 00:36:37,217 Veliki. 809 00:36:37,217 --> 00:36:43,230 810 00:36:43,230 --> 00:36:44,100 >> U redu. 811 00:36:44,100 --> 00:36:47,270 Dakle, ovdje imamo način govoreći, ako nismo htjeli 812 00:36:47,270 --> 00:36:50,020 na hard-kod mene in-- kao programer. 813 00:36:50,020 --> 00:36:53,320 Nisam htio da se zapravo fizički staviti u svaki pojedinačni element koji 814 00:36:53,320 --> 00:36:54,020 ovog polja. 815 00:36:54,020 --> 00:36:56,500 Da sam htio, umjesto imaju korisnički ulazne vrijednosti, 816 00:36:56,500 --> 00:36:58,100 što je najbolji način za to? 817 00:36:58,100 --> 00:37:00,920 >> Pa, ovdje sam stvoren ovu lijepu funkcija, 818 00:37:00,920 --> 00:37:03,560 u kojem mogu proglasiti niz. 819 00:37:03,560 --> 00:37:06,210 Dakle int scores-- neka je samo reći želimo napraviti 820 00:37:06,210 --> 00:37:10,660 niz koji održava ocjene svih 18 odavde u ovom poglavlju studenata. 821 00:37:10,660 --> 00:37:12,670 Mislim da imamo malo više od 18 djece danas. 822 00:37:12,670 --> 00:37:16,460 No, zbog primjer je, neka je samo pretpostaviti da je imao 18 godina. 823 00:37:16,460 --> 00:37:21,580 Ja bi imenovati niz rezultate sa Vrsta int, jer rezultate, naravno, 824 00:37:21,580 --> 00:37:22,987 su brojevi. 825 00:37:22,987 --> 00:37:24,820 I ja ću imati 18 uglatim zagradama, 826 00:37:24,820 --> 00:37:29,900 jer to je koliko sam studentima žele biti u mogućnosti pohraniti rezultate. 827 00:37:29,900 --> 00:37:32,206 >> I onako sam popuniti Niz je da bih 828 00:37:32,206 --> 00:37:35,572 pokrenite ga kroz for petlje, od Naravno, s 0 što mi 0. indeks. 829 00:37:35,572 --> 00:37:38,030 A onda sa 18 bio moj zaustavljanja izdanje, jer je 830 00:37:38,030 --> 00:37:39,690 18 elemenata u nizu. 831 00:37:39,690 --> 00:37:44,620 A onda ću napraviti printf, Enter bodova za student-- BLA naklapanje. 832 00:37:44,620 --> 00:37:51,171 >> Može bilo tko reći mene zašto sam ovdje tiskanje I plus 1, a ne ja? 833 00:37:51,171 --> 00:37:52,920 To je vrsta trik Pitanje, zapravo i nije. 834 00:37:52,920 --> 00:37:56,020 To zapravo ne fizički utjecati na tijek koda. 835 00:37:56,020 --> 00:37:56,520 Da. 836 00:37:56,520 --> 00:37:57,909 >> PUBLIKA: [nečujan] 0? 837 00:37:57,909 --> 00:37:58,950 ANDI PENG: Da, točno. 838 00:37:58,950 --> 00:38:02,620 To je malo nezgodno reći, hej, ti si 0. student u ovoj klasi. 839 00:38:02,620 --> 00:38:03,780 To je malo čudno. 840 00:38:03,780 --> 00:38:08,340 Tako nas, kao ljudi, ne stvarno poput razmišljati o tome kako računala misle. 841 00:38:08,340 --> 00:38:10,930 Dakle, iako se u računalo, to je pohranjivanje vrijednosti 842 00:38:10,930 --> 00:38:13,310 u 0-og indeksa, pri mi smo ljudi, mi ne stvarno 843 00:38:13,310 --> 00:38:15,520 vole da se odnosi na sebe kao nula. 844 00:38:15,520 --> 00:38:18,119 Dakle, kada sam samo ispisati to, Idem za ispis i dodati 845 00:38:18,119 --> 00:38:19,410 1 samo radi jasnoće. 846 00:38:19,410 --> 00:38:22,447 Dakle, kada sam ispisati, ja ću biti mogućnosti ispisati učenike od 1 do 18 godina. 847 00:38:22,447 --> 00:38:24,530 To zapravo ne utječe Utrka koda 848 00:38:24,530 --> 00:38:27,110 na bilo koji način, način na koji sam ispisati. 849 00:38:27,110 --> 00:38:30,380 >> Ali budite oprezni kada ste zapravo pristupu polje. 850 00:38:30,380 --> 00:38:32,780 Kada vidite rezultate i, obavijest ovdje sam zapravo 851 00:38:32,780 --> 00:38:38,200 Pristupom 0th indeks i nije 1 plus 0-- ili 1 plus 1, 852 00:38:38,200 --> 00:38:45,530 u ovom slučaju, indeks tako da je to zapravo jasno. 853 00:38:45,530 --> 00:38:48,870 Jesu li svi vrsta OK na kako se to radi kroz 854 00:38:48,870 --> 00:38:51,470 i sa svakim indeksa sam stavljajući vrijednost u nizu 855 00:38:51,470 --> 00:38:55,340 i stvaranje niz sa 18 brojeva da korisnik ide na ulaz? 856 00:38:55,340 --> 00:38:58,780 857 00:38:58,780 --> 00:38:59,821 U REDU. 858 00:38:59,821 --> 00:39:00,321 Cool. 859 00:39:00,321 --> 00:39:05,380 860 00:39:05,380 --> 00:39:07,400 >> U REDU. 861 00:39:07,400 --> 00:39:12,220 Sada se presele u nešto što je lijepo relevantne za ovaj komad postavljen kao dobro. 862 00:39:12,220 --> 00:39:15,020 Znam da u predavanju, David-- Nažalost, imao pitanje? 863 00:39:15,020 --> 00:39:16,840 >> PUBLIKA: Možete li to povećanje? 864 00:39:16,840 --> 00:39:18,080 >> ANDI PENG: Da, pa sam pokušao. 865 00:39:18,080 --> 00:39:18,788 Ali ja ne znam. 866 00:39:18,788 --> 00:39:21,437 Iz nekog razloga, to verzija PowerPoint 867 00:39:21,437 --> 00:39:23,270 stvarno ne radi dobro zaslonu. 868 00:39:23,270 --> 00:39:25,260 Dakle, samo ćemo da bi ga ovako. 869 00:39:25,260 --> 00:39:27,280 Sve to će se prenijeti na internetu. 870 00:39:27,280 --> 00:39:28,218 Žao nam je, momci. 871 00:39:28,218 --> 00:39:30,090 Da. 872 00:39:30,090 --> 00:39:30,980 U REDU. 873 00:39:30,980 --> 00:39:35,530 >> Dakle, mi također mogu imati konce. 874 00:39:35,530 --> 00:39:39,320 Dakle, ako vi zapravo notice-- I. Znaš Rob je otišao preko ovaj u tom predavanju 875 00:39:39,320 --> 00:39:43,652 da did-- niz je zapravo samo niz znakova, 876 00:39:43,652 --> 00:39:44,860 ako mislite o tome, zar ne? 877 00:39:44,860 --> 00:39:47,500 Niz je ime ili rečenica ili riječ, zar ne? 878 00:39:47,500 --> 00:39:52,975 >> Ako mi je stvoriti string imenu Andi-- samo moje ime, A-N-D-ja. 879 00:39:52,975 --> 00:39:55,460 Misliš na to što je samo jedna varijabla. 880 00:39:55,460 --> 00:39:58,630 Ali zapravo, to je oborio u samo niz znakova. 881 00:39:58,630 --> 00:40:01,910 Dakle, to je dobio karakter pohranjene u vrijednosti polja. 882 00:40:01,910 --> 00:40:05,420 To je dobio karakter n pohranjene u Drugi indeks i tako dalje i tako dalje. 883 00:40:05,420 --> 00:40:08,660 >> Tako je na takav način, da zapravo imaju ovu vrstu 884 00:40:08,660 --> 00:40:10,970 strukture postavljena u mjesto za naše žice. 885 00:40:10,970 --> 00:40:14,660 Dakle ovdje, ako su za ulaz u Riječ "pojesti" - tako niz riječi jednak 886 00:40:14,660 --> 00:40:15,540 dobili niz. 887 00:40:15,540 --> 00:40:19,260 Da mi je ulaz riječ "jesti", koje fizički način da moje računalo 888 00:40:19,260 --> 00:40:21,870 pohranjuje taj niz u mom sjećanju. 889 00:40:21,870 --> 00:40:27,140 >> I ako sam htjela pokrenuti kroz to i print koji out-- tako da za u I. 890 00:40:27,140 --> 00:40:30,890 jednaka nuli, ne zaboravite, u predavanju smo pokriveno nešto što se zove strlen, 891 00:40:30,890 --> 00:40:32,990 ili duljina niza. 892 00:40:32,990 --> 00:40:36,520 Jer ja zapravo ne znati koliko je velika niz je 893 00:40:36,520 --> 00:40:38,210 od bilo kojeg korisnika inputting-- 894 00:40:38,210 --> 00:40:40,370 >> Na primjer, ja uneseni riječ "jesti", a ja znam 895 00:40:40,370 --> 00:40:41,870 to je duga tri znaka, zar ne? 896 00:40:41,870 --> 00:40:44,700 Tako sam mogao staviti u tri tamo i sve će biti u redu. 897 00:40:44,700 --> 00:40:49,290 Ali, ako vaš korisnički ulazni nešto to je različit broj vrijednosti, 898 00:40:49,290 --> 00:40:52,760 idete neće moći stvarno znam da kad programirate svoj kôd. 899 00:40:52,760 --> 00:40:56,040 >> Dakle, način na koji ćemo obraditi test slučajeva kao što je to da imamo nešto 900 00:40:56,040 --> 00:41:00,070 zove strlen, što je samo funkcija koji vam govori koliko dugo niz je. 901 00:41:00,070 --> 00:41:02,080 Dakle strlen od riječi. 902 00:41:02,080 --> 00:41:03,470 Moj riječ jesti. 903 00:41:03,470 --> 00:41:05,990 n = strlen od riječi. 904 00:41:05,990 --> 00:41:08,930 Može mi netko reći što je to vrijednost zapravo je upravo tamo? 905 00:41:08,930 --> 00:41:12,550 Što je n ne predstavlja pravu Sada, u ovom primjeru, ako sam imao jesti? 906 00:41:12,550 --> 00:41:13,530 >> PUBLIKA: 3. 907 00:41:13,530 --> 00:41:14,520 >> ANDI PENG: 3, točno. 908 00:41:14,520 --> 00:41:18,820 Tako smo za int ja jednako nula, n = 3, u biti. 909 00:41:18,820 --> 00:41:22,355 I ja će se izvoditi dok je manje od 3i ++. 910 00:41:22,355 --> 00:41:24,980 I to će bitno ići kroz i učiniti istu stvar. 911 00:41:24,980 --> 00:41:26,979 To će ispisati svaka vrijednost i dati vam 912 00:41:26,979 --> 00:41:29,700 E-A-T. To je samo označava drugačiji način pisanja. 913 00:41:29,700 --> 00:41:31,170 To će biti vrlo korisno. 914 00:41:31,170 --> 00:41:31,670 Da. 915 00:41:31,670 --> 00:41:35,174 PUBLIKA: Što je prednosti stavljanja n jednaka strlen riječ unutar koje 916 00:41:35,174 --> 00:41:36,894 za petlju [nečujan]? 917 00:41:36,894 --> 00:41:37,560 ANDI PENG: Da. 918 00:41:37,560 --> 00:41:44,880 Dakle, ako sam ja to-- reći, na primjer, ako su za to, a zatim 919 00:41:44,880 --> 00:41:51,935 do-- oop-- da, u mom kodu, to bi Zapravo se radi kao ista stvar. 920 00:41:51,935 --> 00:41:55,060 Međutim, način na koji, objasnio je David to tijekom predavanja, ako bilo koji od vas dečki 921 00:41:55,060 --> 00:41:57,854 sjećam, bio je da, kao što je ljudi, kao programera, 922 00:41:57,854 --> 00:42:00,270 mi stvarno pokušati programiraju kod tako da naše računalo ima 923 00:42:00,270 --> 00:42:04,070 raditi kao minimalan što je više moguće, tako da da je naš kod je jako učinkovit. 924 00:42:04,070 --> 00:42:06,850 >> Dakle, ako sam imao da postoji, što će se dogoditi kroz moje za petlju 925 00:42:06,850 --> 00:42:10,790 je da sam prvi put bih proglasiti varijabla zove ja će biti 0. 926 00:42:10,790 --> 00:42:13,350 Ja ću provjeriti, oh, što je strlen riječi? 927 00:42:13,350 --> 00:42:15,000 O, strlen je 3. 928 00:42:15,000 --> 00:42:16,191 Tako je i manje od tri? 929 00:42:16,191 --> 00:42:16,690 Da, jest. 930 00:42:16,690 --> 00:42:17,870 Idem raditi. 931 00:42:17,870 --> 00:42:21,130 >> A onda drugi put natrag oko petlje, idem ja prirast. 932 00:42:21,130 --> 00:42:22,550 ja će biti jedan. 933 00:42:22,550 --> 00:42:25,600 I ja se ide provjeriti, oh, ali ono što je strlen od riječi? 934 00:42:25,600 --> 00:42:26,839 Oh, to je tri. 935 00:42:26,839 --> 00:42:29,880 A ne da izgledaju vrsta razoran, svaki put kada pokrenete kroz petlju, 936 00:42:29,880 --> 00:42:33,340 da se provjere funkciju, iako je strlen od riječi 937 00:42:33,340 --> 00:42:35,490 nikad zapravo mijenja? 938 00:42:35,490 --> 00:42:38,590 >> Dakle, to je dodatna snaga za računalo. 939 00:42:38,590 --> 00:42:42,180 Kada početi govoriti o stvarima da su milijarde i milijarde 940 00:42:42,180 --> 00:42:44,431 i milijarde mjesta dugo, zamislite računalo 941 00:42:44,431 --> 00:42:47,430 da se fizički proći i provjerite sve to svaki put. 942 00:42:47,430 --> 00:42:53,170 Zato, da bi samo zbog učinkovitosti, 943 00:42:53,170 --> 00:42:57,620 skloni smo upravo to učinili, jer je to način na koji smo samo 944 00:42:57,620 --> 00:42:59,850 pozivom funkcije jednom u početku, 945 00:42:59,850 --> 00:43:01,766 i da svako vrijeme prolazi kroz to ide 946 00:43:01,766 --> 00:43:03,789 pohraniti vrijednost 3 tamo, a ne da to učinite 947 00:43:03,789 --> 00:43:05,330 moraju neprestano provjeravati svaki put. 948 00:43:05,330 --> 00:43:05,743 Da. 949 00:43:05,743 --> 00:43:06,409 >> PUBLIKA: Žao mi je. 950 00:43:06,409 --> 00:43:09,070 Samo [nečujan]. 951 00:43:09,070 --> 00:43:13,985 Možete li to int n = strlen i staviti gore izvan za petlju 952 00:43:13,985 --> 00:43:15,364 kao? 953 00:43:15,364 --> 00:43:16,030 ANDI PENG: Da. 954 00:43:16,030 --> 00:43:17,100 Ti bi mogao učiniti, apsolutno. 955 00:43:17,100 --> 00:43:19,970 Razlog zbog kojeg smo ga u ovdje jer način na koji se za radove petlje 956 00:43:19,970 --> 00:43:23,500 je da se zove Lokalni varijabla u smislu 957 00:43:23,500 --> 00:43:26,150 da je sve što si stvarajući unutrašnjost za petlju 958 00:43:26,150 --> 00:43:27,890 postoji samo unutar za petlju. 959 00:43:27,890 --> 00:43:31,530 >> Tako je varijabla ja samo postoji u onim zagradama. 960 00:43:31,530 --> 00:43:35,260 I ovdje su varijable n također postoji samo u onim zagradama. 961 00:43:35,260 --> 00:43:39,350 Dakle, ako ste bili na korištenje od strlen Riječ više puta dolje, 962 00:43:39,350 --> 00:43:42,230 Apsolutno najbolji način za to bio bi to proglasi se na vrh 963 00:43:42,230 --> 00:43:43,563 tako da ne morate to učiniti jednom. 964 00:43:43,563 --> 00:43:45,420 Da. 965 00:43:45,420 --> 00:43:47,670 PUBLIKA: Zašto imate Nova linija nakon posto 966 00:43:47,670 --> 00:43:51,300 vidim, ako želite staviti sve slova uz to odvojeno? 967 00:43:51,300 --> 00:43:54,140 >> ANDI PENG: Oh, ja sam htjela ispisati ih na svakoj liniji. 968 00:43:54,140 --> 00:43:54,890 Nije važno. 969 00:43:54,890 --> 00:43:55,890 Da, to je oblikovanje. 970 00:43:55,890 --> 00:43:57,181 To je dobro pitanje, ipak. 971 00:43:57,181 --> 00:43:59,360 Da, ako sam htjela ispisati sve to na samo jednoj liniji, 972 00:43:59,360 --> 00:44:02,731 Ne bi crticu u. 973 00:44:02,731 --> 00:44:03,230 U REDU. 974 00:44:03,230 --> 00:44:06,880 Svatko dobro? 975 00:44:06,880 --> 00:44:07,500 U REDU. 976 00:44:07,500 --> 00:44:08,000 Cool. 977 00:44:08,000 --> 00:44:12,080 978 00:44:12,080 --> 00:44:14,750 >> Pa mislim da sam govorio dovoljno. 979 00:44:14,750 --> 00:44:20,040 Ti dečki red pokrenuti kroz broj i recite mi što je krivo ovdje. 980 00:44:20,040 --> 00:44:21,560 Gdje je bug? 981 00:44:21,560 --> 00:44:26,920 Dakle, kao što možete vidjeti, ja sam proglašen Novi niz tipa string imenu klase. 982 00:44:26,920 --> 00:44:30,220 I ja sam ulaznog Sam, Jess, i Kim u nju. 983 00:44:30,220 --> 00:44:33,400 I ja sam pokušavao ispisati svi elementi polja. 984 00:44:33,400 --> 00:44:36,796 Može netko reći mene zašto se to će mi dati problema? 985 00:44:36,796 --> 00:44:39,320 Dat ću ti dečki 10 sekunde razmišljati o tome. 986 00:44:39,320 --> 00:44:55,490 987 00:44:55,490 --> 00:44:56,619 >> U REDU. 988 00:44:56,619 --> 00:44:57,118 Da? 989 00:44:57,118 --> 00:45:01,972 >> PUBLIKA: Jeli lijevi centar jednak 3 ili [nečujan]? 990 00:45:01,972 --> 00:45:02,680 ANDI PENG: Tako je. 991 00:45:02,680 --> 00:45:06,784 Pa koliko puta je to zapravo će se izvoditi kroz ovaj petlju? 992 00:45:06,784 --> 00:45:07,620 >> PUBLIKA: Četiri. 993 00:45:07,620 --> 00:45:08,070 >> ANDI PENG: Točno. 994 00:45:08,070 --> 00:45:09,445 To će kroz četiri puta. 995 00:45:09,445 --> 00:45:12,250 To će se izvoditi kroz u 0, 1, 2, i 3, 996 00:45:12,250 --> 00:45:15,200 jer je njihov element ja manji ili jednak 3. 997 00:45:15,200 --> 00:45:16,960 To neće prestati kada je 2. 998 00:45:16,960 --> 00:45:18,800 To će zadržati ide dok ne udari 3. 999 00:45:18,800 --> 00:45:21,720 A kao što znamo, postoji samo tri elementi u našem stvarnom polje. 1000 00:45:21,720 --> 00:45:27,260 >> Ako pokušamo pristupiti četvrti element ili indeks od 3, 1001 00:45:27,260 --> 00:45:30,357 ideš pogoditi negdje u memoriji koja ne postoji. 1002 00:45:30,357 --> 00:45:31,690 To se zove null terminator. 1003 00:45:31,690 --> 00:45:32,856 Ništa će biti tamo. 1004 00:45:32,856 --> 00:45:35,324 Vaše računalo ne ide biti vrlo sretna s tobom. 1005 00:45:35,324 --> 00:45:36,170 Da. 1006 00:45:36,170 --> 00:45:38,430 Se bilo tko imati pitanja zašto da se događa? 1007 00:45:38,430 --> 00:45:39,679 To je zajednički prostor kako bi se izbjeglo. 1008 00:45:39,679 --> 00:45:40,712 Da. 1009 00:45:40,712 --> 00:45:45,777 >> PUBLIKA: Zar prvi slajd također imaju niz od 2? 1010 00:45:45,777 --> 00:45:46,360 ANDI PENG: Ne 1011 00:45:46,360 --> 00:45:49,610 Pa u biti, kad radite niz, 1012 00:45:49,610 --> 00:45:51,540 koji nosač pravo postoji, da je sve number-- 1013 00:45:51,540 --> 00:45:53,480 to je priča koju je, kako mnogi elementi imam. 1014 00:45:53,480 --> 00:45:55,840 Nije zapravo govori mene su indeksi ništa. 1015 00:45:55,840 --> 00:45:58,760 Dakle, u ovom slučaju, ja znam što želim pisati s tri mjesta, 1016 00:45:58,760 --> 00:46:02,690 s tri fizičkih mjesta do držite sve što želim zadržati. 1017 00:46:02,690 --> 00:46:04,510 Dakle, to je razlog zašto je broj tri je tu. 1018 00:46:04,510 --> 00:46:06,560 Međutim, ako sam htjela zapravo pristupiti, 1019 00:46:06,560 --> 00:46:11,220 ako sam htjela reći, printf Klasa broj zagrada, a zatim 1020 00:46:11,220 --> 00:46:14,560 idete zapravo staviti fizička indeks tamo. 1021 00:46:14,560 --> 00:46:16,330 Da, dobro pitanje. 1022 00:46:16,330 --> 00:46:20,065 >> PUBLIKA: Tako je fizički Indeks trebao biti [nečujan]? 1023 00:46:20,065 --> 00:46:20,940 ANDI PENG: Žao mi je. 1024 00:46:20,940 --> 00:46:21,500 Možete li govoriti malo? 1025 00:46:21,500 --> 00:46:24,208 >> PUBLIKA: Tako je indeks fizičkog [Nečujan] svaki od kutije? 1026 00:46:24,208 --> 00:46:25,260 [Nečujan]? 1027 00:46:25,260 --> 00:46:26,040 >> ANDI PENG: Da. 1028 00:46:26,040 --> 00:46:28,970 Dakle, ja ću se vratiti na ovdje. 1029 00:46:28,970 --> 00:46:31,120 Razmislite o upravo ovdje. 1030 00:46:31,120 --> 00:46:32,820 Imamo niz veličine 3. 1031 00:46:32,820 --> 00:46:35,540 Ima tri mjesta, kao što su, fizičke rezerviranih mjesta ovdje. 1032 00:46:35,540 --> 00:46:37,620 Ali oni su nazvali 0, 1 i 2. 1033 00:46:37,620 --> 00:46:40,700 Dakle, ako sam htjela da ih koristiti, način na koji sam im pristupiti 1034 00:46:40,700 --> 00:46:43,480 printf je od god sam htio ovdje. 1035 00:46:43,480 --> 00:46:45,485 Ti bi ispisati izvan ime njega, 1036 00:46:45,485 --> 00:46:47,610 jer tada računalo zna, oh, moram pogledati 1037 00:46:47,610 --> 00:46:51,391 u ovom nizu za 0th indeksa. 1038 00:46:51,391 --> 00:46:51,890 Da. 1039 00:46:51,890 --> 00:46:53,306 No, veličina se ne mijenja. 1040 00:46:53,306 --> 00:46:55,492 Veličina je 3, bez obzira na kako ih označiti. 1041 00:46:55,492 --> 00:46:58,321 1042 00:46:58,321 --> 00:46:58,820 U REDU. 1043 00:46:58,820 --> 00:47:01,387 Svatko dobro? 1044 00:47:01,387 --> 00:47:02,970 PUBLIKA: Dakle, svaki put sam [nečujan]? 1045 00:47:02,970 --> 00:47:06,357 1046 00:47:06,357 --> 00:47:06,940 ANDI PENG: U redu. 1047 00:47:06,940 --> 00:47:13,270 Dakle, u ovom slučaju, mi ne stvarno ući u njega upravo sada u tijeku. 1048 00:47:13,270 --> 00:47:16,760 Ali znam da je string-- kao ja rekao prije, niz je bitno 1049 00:47:16,760 --> 00:47:18,440 niz znakova. 1050 00:47:18,440 --> 00:47:21,430 Dakle, ako sam stvoriti niz žice, ja vrsta 1051 00:47:21,430 --> 00:47:24,430 imaju niz polja znakova, zar ne? 1052 00:47:24,430 --> 00:47:27,720 >> Dakle, u ovom slučaju, jer sam imaju niz žice, 1053 00:47:27,720 --> 00:47:31,340 ako ste bili na ulazu stvarno dugo riječ, koji još uvijek zauzima samo jedan prostor, 1054 00:47:31,340 --> 00:47:33,230 jer to je jedan niz. 1055 00:47:33,230 --> 00:47:37,492 Ali, ako ste bili razmišljati o likovi tog polja, 1056 00:47:37,492 --> 00:47:40,450 onda je to da se puno više likovi od bilo koje druge riječi 1057 00:47:40,450 --> 00:47:41,372 su. 1058 00:47:41,372 --> 00:47:42,830 Nije jako važno za sada. 1059 00:47:42,830 --> 00:47:44,921 Ali to je samo općenito kako se to radi. 1060 00:47:44,921 --> 00:47:49,750 1061 00:47:49,750 --> 00:47:50,560 >> U REDU. 1062 00:47:50,560 --> 00:47:55,840 Dakle, to je nešto što ću vam učiniti puno tijekom semestra. 1063 00:47:55,840 --> 00:47:57,500 Moram odmoriti glas. 1064 00:47:57,500 --> 00:47:59,530 Vi trebate sami stimuliraju. 1065 00:47:59,530 --> 00:48:02,300 Puno vas vjerojatno moraju spavati sada. 1066 00:48:02,300 --> 00:48:05,960 Ja unosom slučajnim probleme gdje smo kao klasa ili 1067 00:48:05,960 --> 00:48:09,480 s partnerom pored tebe idu provesti nekoliko minuta raspravljajući 1068 00:48:09,480 --> 00:48:14,980 kako bismo ići oko rješavanja ili stvaranje programa kao što je ovaj. 1069 00:48:14,980 --> 00:48:17,100 >> Tako sada, želimo stvoriti program-- 1070 00:48:17,100 --> 00:48:19,560 ćemo nazvati upper.c-- koji pretvara 1071 00:48:19,560 --> 00:48:24,787 malim slovom riječi na gornje klase string-- veliko, ispričavam se. 1072 00:48:24,787 --> 00:48:26,370 Riječ je u nizovima, ispričavam se, je sinonim. 1073 00:48:26,370 --> 00:48:28,370 Ja ću ih promijeniti znači istu stvar. 1074 00:48:28,370 --> 00:48:32,270 1075 00:48:32,270 --> 00:48:33,499 >> Da. 1076 00:48:33,499 --> 00:48:34,540 Potrajati nekoliko minuta. 1077 00:48:34,540 --> 00:48:37,130 Ona ne mora biti napisan na bilo kojem jeziku. 1078 00:48:37,130 --> 00:48:39,890 Samo u pseudokod koda ili logično kako bismo još 1079 00:48:39,890 --> 00:48:42,083 ići oko radiš takav problem. 1080 00:48:42,083 --> 00:48:42,583 Da. 1081 00:48:42,583 --> 00:48:49,881 1082 00:48:49,881 --> 00:48:52,780 >> [SIDE RAZGOVOR] 1083 00:48:52,780 --> 00:49:18,680 1084 00:49:18,680 --> 00:49:22,130 >> Također sam primijetio da ti dečki can-- Nekako sam vidjeti već program. 1085 00:49:22,130 --> 00:49:24,600 Mislim da moj nedostatak voditelj način je problem. 1086 00:49:24,600 --> 00:49:27,410 Ali to je u redu. 1087 00:49:27,410 --> 00:49:30,410 >> [SIDE RAZGOVOR] 1088 00:49:30,410 --> 00:50:03,589 1089 00:50:03,589 --> 00:50:04,380 Da, molim vas, dečki. 1090 00:50:04,380 --> 00:50:05,400 Dođite dobili slatkiše. 1091 00:50:05,400 --> 00:50:06,372 Dođite dobili slatkiše. 1092 00:50:06,372 --> 00:50:07,698 >> PUBLIKA: Da! 1093 00:50:07,698 --> 00:50:09,958 >> [SIDE RAZGOVOR] 1094 00:50:09,958 --> 00:50:16,101 1095 00:50:16,101 --> 00:50:18,100 ANDI PENG: Također, da, Ja ću početi bacanje bombona 1096 00:50:18,100 --> 00:50:20,280 na ljude koji ne odgovara na pitanja. 1097 00:50:20,280 --> 00:50:22,260 Tako da bi trebao sve odgovoriti na pitanja. 1098 00:50:22,260 --> 00:50:24,895 Ili pretpostavljam ljudi koji odgovorili na pitanja. 1099 00:50:24,895 --> 00:50:26,070 Da, obrnuto. 1100 00:50:26,070 --> 00:50:28,570 >> [SIDE RAZGOVOR] 1101 00:50:28,570 --> 00:51:13,399 1102 00:51:13,399 --> 00:51:14,274 PUBLIKA: [nečujan] 1103 00:51:14,274 --> 00:51:17,300 1104 00:51:17,300 --> 00:51:18,340 >> ANDI PENG: Da. 1105 00:51:18,340 --> 00:51:19,340 Da. 1106 00:51:19,340 --> 00:51:22,840 >> [SIDE RAZGOVOR] 1107 00:51:22,840 --> 00:51:40,700 1108 00:51:40,700 --> 00:51:41,590 >> U redu, dečki. 1109 00:51:41,590 --> 00:51:44,731 Uzmi, kao, više od 10 sekundi. 1110 00:51:44,731 --> 00:51:48,210 >> [SIDE RAZGOVOR] 1111 00:51:48,210 --> 00:52:10,600 1112 00:52:10,600 --> 00:52:11,750 >> U redu, dečki. 1113 00:52:11,750 --> 00:52:14,920 Dakle, prije nego što počnete pokušavate zapravo fizički pisati kod, 1114 00:52:14,920 --> 00:52:20,650 dobar običaj da se razvije da želimo prve vrste razuma 1115 00:52:20,650 --> 00:52:22,737 iz logično kako će to učiniti. 1116 00:52:22,737 --> 00:52:24,570 Vi želite biti sigurni, pred vama fizički 1117 00:52:24,570 --> 00:52:27,210 početi pokušava da kod u Mario, da bi 1118 00:52:27,210 --> 00:52:28,870 sigurni da imate svoj pseudokod. 1119 00:52:28,870 --> 00:52:31,235 To je vodeći vas kroz što vam je potrebno za stvaranje tako 1120 00:52:31,235 --> 00:52:33,360 da, kad vas fizički napisati svoj program kasnije, 1121 00:52:33,360 --> 00:52:36,640 vi ste bolje mogli uhvatiti pogreške u kodu i slične stvari. 1122 00:52:36,640 --> 00:52:40,460 >> Tako ćemo samo početak by-- na engleskom jeziku, u pseudokod, 1123 00:52:40,460 --> 00:52:43,320 se bilo tko želi dati ja općenito objašnjenje 1124 00:52:43,320 --> 00:52:46,250 kako bismo ići o događaj ovaj? 1125 00:52:46,250 --> 00:52:48,102 Da. 1126 00:52:48,102 --> 00:52:49,664 >> PUBLIKA: [nečujan]. 1127 00:52:49,664 --> 00:52:50,830 ANDI PENG: Naravno, nema brige. 1128 00:52:50,830 --> 00:52:57,233 PUBLIKA: Možete li ga zamoliti da ili pitajte netko dobiti niz 1-- Da, string, 1129 00:52:57,233 --> 00:52:58,160 i onda-- 1130 00:52:58,160 --> 00:52:59,826 >> ANDI PENG: Da, pa to je dobar početak. 1131 00:52:59,826 --> 00:53:01,972 Ja ću početi tipkati, ispričavam se, kao što govore. 1132 00:53:01,972 --> 00:53:02,471 So-- 1133 00:53:02,471 --> 00:53:05,698 >> PUBLIKA: --the mala slova brojevi su veći, zar ne? 1134 00:53:05,698 --> 00:53:08,519 Ili mala slova imaju visoke brojeve? 1135 00:53:08,519 --> 00:53:09,310 ANDI PENG: Točno. 1136 00:53:09,310 --> 00:53:16,156 PUBLIKA: Pa onda mi oduzeti 32 iz bilo kojeg [nečujan]. 1137 00:53:16,156 --> 00:53:28,600 1138 00:53:28,600 --> 00:53:29,870 >> ANDI PENG: Veliki. 1139 00:53:29,870 --> 00:53:35,020 Tako smo vrsta imati opći osjećaj kako raditi o ovom problemu. 1140 00:53:35,020 --> 00:53:40,060 Znajući da smo vrsta naučili fizički način na koji žice 1141 00:53:40,060 --> 00:53:43,320 pohranjuju se u memoriji, što vam je činiti već 1142 00:53:43,320 --> 00:53:45,920 znam da ćeš vjerojatno napisati u kodu 1143 00:53:45,920 --> 00:53:48,288 kako bi se kretati kroz niz? 1144 00:53:48,288 --> 00:53:49,259 >> PUBLIKA: Za petlje. 1145 00:53:49,259 --> 00:53:50,550 ANDI PENG: for petlji, točno. 1146 00:53:50,550 --> 00:53:56,540 1147 00:53:56,540 --> 00:53:57,220 Veliki. 1148 00:53:57,220 --> 00:54:00,539 Tako smo vrsta ima generički pseudokod zapisano 1149 00:54:00,539 --> 00:54:02,330 takav je davanje vam bilješke o tome kako 1150 00:54:02,330 --> 00:54:03,900 će se kretati rješavanju problema. 1151 00:54:03,900 --> 00:54:06,150 Sada kada ste ovo, može referenca za kasnije 1152 00:54:06,150 --> 00:54:08,233 kad pokušavate zapravo pisati svoj kod. 1153 00:54:08,233 --> 00:54:10,240 Tako smo zapravo može ići ovdje. 1154 00:54:10,240 --> 00:54:25,130 I ja sam dobio funkciju pod nazivom upper.c-- tamo is-- od samo prazan predložak 1155 00:54:25,130 --> 00:54:28,510 odmah da su ti dečki će mi pomogne shvatiti kako napisati 1156 00:54:28,510 --> 00:54:30,430 ova linija code-- ne liniju koda. 1157 00:54:30,430 --> 00:54:32,890 To će biti više linija koda. 1158 00:54:32,890 --> 00:54:35,710 >> Prilikom pokretanja bilo kakve praznog pset, što je 1159 00:54:35,710 --> 00:54:37,418 prva stvar koju trebate zapamtiti da radim? 1160 00:54:37,418 --> 00:54:39,290 >> PUBLIKA: [nečujan]. 1161 00:54:39,290 --> 00:54:41,000 >> ANDI PENG: Veliki Aha. 1162 00:54:41,000 --> 00:54:41,500 Uključite. 1163 00:54:41,500 --> 00:54:44,850 1164 00:54:44,850 --> 00:54:47,130 stdio.h. 1165 00:54:47,130 --> 00:54:49,640 Često je to jedan od najviše jednostavan grešaka ljudi 1166 00:54:49,640 --> 00:54:51,598 će kada su pisanja, je da će 1167 00:54:51,598 --> 00:54:54,180 zaboravite uključiti važno knjižnica im je potrebno. 1168 00:54:54,180 --> 00:54:57,689 Dakle, ako je radno vrijeme i da ste kao, Ne znam zašto je moj broj ne radi. 1169 00:54:57,689 --> 00:54:59,230 Možete li mi reći zašto to ne radi? 1170 00:54:59,230 --> 00:55:00,730 Idemo reći si #include? 1171 00:55:00,730 --> 00:55:02,520 Trebali bi ga #include. 1172 00:55:02,520 --> 00:55:03,270 U REDU. 1173 00:55:03,270 --> 00:55:07,230 >> Dakle, imamo standard I / O Ovdje. 1174 00:55:07,230 --> 00:55:10,740 Je li to jedina knjižnica ćemo morati ovdje? 1175 00:55:10,740 --> 00:55:12,681 Što još možemo učiniti? 1176 00:55:12,681 --> 00:55:13,180 Oprostite. 1177 00:55:13,180 --> 00:55:14,562 Netko ga samo kriknuti? 1178 00:55:14,562 --> 00:55:15,666 >> PUBLIKA: [nečujan]. 1179 00:55:15,666 --> 00:55:16,666 ANDI PENG: Postoji li ići. 1180 00:55:16,666 --> 00:55:20,320 1181 00:55:20,320 --> 00:55:21,440 U REDU. 1182 00:55:21,440 --> 00:55:26,070 A kako mogu ići o počevši bilo kakve funkcije, bilo kakve glavna funkcija 1183 00:55:26,070 --> 00:55:28,760 unutar našeg programa? 1184 00:55:28,760 --> 00:55:30,020 Int glavna. 1185 00:55:30,020 --> 00:55:34,531 1186 00:55:34,531 --> 00:55:35,030 U REDU. 1187 00:55:35,030 --> 00:55:35,970 Što sam stavio unutra ovdje? 1188 00:55:35,970 --> 00:55:37,640 Što je prva stvar koju želite učiniti? 1189 00:55:37,640 --> 00:55:39,910 Ako želimo dobiti Niz od korisnika, 1190 00:55:39,910 --> 00:55:43,870 što ćemo imati raditi na tom prvom retku? 1191 00:55:43,870 --> 00:55:46,120 Žao nam je, vi jednostavno osjećate slobodno govoriti i glasno. 1192 00:55:46,120 --> 00:55:47,123 Samo vikati god. 1193 00:55:47,123 --> 00:55:48,772 >> PUBLIKA: Pitajte korisnik? 1194 00:55:48,772 --> 00:55:49,980 ANDI PENG: Kako ćemo to učiniti? 1195 00:55:49,980 --> 00:55:51,873 Ask-- ću upišete "pitati korisnik"? 1196 00:55:51,873 --> 00:55:52,600 >> PUBLIKA: printf. 1197 00:55:52,600 --> 00:55:54,341 >> ANDI PENG: U redu. 1198 00:55:54,341 --> 00:55:54,840 Printf. 1199 00:55:54,840 --> 00:55:57,372 Što želim printf? 1200 00:55:57,372 --> 00:55:58,776 >> PUBLIKA: Upišite nešto. 1201 00:55:58,776 --> 00:56:02,760 1202 00:56:02,760 --> 00:56:03,840 >> ANDI PENG: Kao da je? 1203 00:56:03,840 --> 00:56:05,430 Dečki, praviti se kao da sam na računalu. 1204 00:56:05,430 --> 00:56:08,475 Fizički recite mi svaki korak da trebam upisati ovdje? 1205 00:56:08,475 --> 00:56:09,600 Ja radim nešto krivo? 1206 00:56:09,600 --> 00:56:10,743 Trebam li upisali nešto? 1207 00:56:10,743 --> 00:56:11,690 >> PUBLIKA: Morate citati. 1208 00:56:11,690 --> 00:56:12,380 >> ANDI PENG: trebam citati? 1209 00:56:12,380 --> 00:56:12,880 U REDU. 1210 00:56:12,880 --> 00:56:15,520 1211 00:56:15,520 --> 00:56:16,297 U REDU. 1212 00:56:16,297 --> 00:56:17,698 >> PUBLIKA: A onda nova linija. 1213 00:56:17,698 --> 00:56:21,434 1214 00:56:21,434 --> 00:56:22,465 Točka i zarez. 1215 00:56:22,465 --> 00:56:23,340 ANDI PENG: zarezom? 1216 00:56:23,340 --> 00:56:24,060 U REDU. 1217 00:56:24,060 --> 00:56:24,560 Dobra. 1218 00:56:24,560 --> 00:56:27,060 >> PUBLIKA: A možda navesti da je htio malim slovima? 1219 00:56:27,060 --> 00:56:30,120 1220 00:56:30,120 --> 00:56:31,415 >> ANDI PENG: Veliki. 1221 00:56:31,415 --> 00:56:33,540 Vi mi se smijati zaboravljajući staviti zarez. 1222 00:56:33,540 --> 00:56:36,350 Jamčim ti negdje u tijeku ove klase, 1223 00:56:36,350 --> 00:56:38,260 zaboravit ćete staviti točka-zarez, a 1224 00:56:38,260 --> 00:56:41,116 će vam uzeti tri sata za shvatiti zašto je vaš broj ne radi. 1225 00:56:41,116 --> 00:56:42,240 To se dogodilo na sve nas. 1226 00:56:42,240 --> 00:56:43,950 To će vjerojatno dogoditi. 1227 00:56:43,950 --> 00:56:46,352 Uzmite u dobrom naviku korištenja zarezom. 1228 00:56:46,352 --> 00:56:46,852 U REDU. 1229 00:56:46,852 --> 00:56:49,010 >> PUBLIKA: Želite li učiniti kosu crticu u? 1230 00:56:49,010 --> 00:56:50,398 >> ANDI PENG: Naravno. 1231 00:56:50,398 --> 00:56:51,856 Želite li napraviti obrnutu kosu crtu u? 1232 00:56:51,856 --> 00:56:53,020 >> PUBLIKA: Da. 1233 00:56:53,020 --> 00:56:54,330 >> ANDI PENG: Veliki. 1234 00:56:54,330 --> 00:56:54,830 U REDU. 1235 00:56:54,830 --> 00:56:57,872 Što trebam učiniti sljedeće? 1236 00:56:57,872 --> 00:56:58,964 >> PUBLIKA: Dobiti niz. 1237 00:56:58,964 --> 00:56:59,880 ANDI PENG: Dobiti niz. 1238 00:56:59,880 --> 00:57:03,080 1239 00:57:03,080 --> 00:57:03,830 Pa što sam tip? 1240 00:57:03,830 --> 00:57:04,233 Netko? 1241 00:57:04,233 --> 00:57:05,040 >> PUBLIKA: String s. 1242 00:57:05,040 --> 00:57:05,873 >> ANDI PENG: String s. 1243 00:57:05,873 --> 00:57:07,251 PUBLIKA: GetString. 1244 00:57:07,251 --> 00:57:09,000 ANDI PENG: Netko, Možete li mi reći gdje je 1245 00:57:09,000 --> 00:57:12,000 ova funkcija GetString dolazi iz? 1246 00:57:12,000 --> 00:57:13,660 >> PUBLIKA: String.h. 1247 00:57:13,660 --> 00:57:15,256 >> ANDI PENG: String.h? 1248 00:57:15,256 --> 00:57:16,715 Misliš da je od string.h? 1249 00:57:16,715 --> 00:57:17,830 >> PUBLIKA: [nečujan]. 1250 00:57:17,830 --> 00:57:18,830 >> ANDI PENG: Postoji li ići. 1251 00:57:18,830 --> 00:57:21,280 To je od CS50.h. 1252 00:57:21,280 --> 00:57:24,530 Ako ste uvijek zbunjeni na kojoj Knjižnica datoteka ili zaglavlje datoteke, 1253 00:57:24,530 --> 00:57:28,450 google doslovno string.h, a ja ću ti reći 1254 00:57:28,450 --> 00:57:30,450 što su sve funkcije koji su u string.h. 1255 00:57:30,450 --> 00:57:31,340 U REDU. 1256 00:57:31,340 --> 00:57:35,210 >> Pa sada da sam stvorio niz i imam brz korisnik za to, 1257 00:57:35,210 --> 00:57:38,770 Ja sam ga pohraniti u varijablu imenovani s, što trebam učiniti sada? 1258 00:57:38,770 --> 00:57:40,652 >> PUBLIKA: Provjerite ako je malim slovima. 1259 00:57:40,652 --> 00:57:41,360 ANDI PENG: Žao nam je? 1260 00:57:41,360 --> 00:57:42,545 PUBLIKA: Provjerite ako je malim slovima. 1261 00:57:42,545 --> 00:57:44,045 ANDI PENG: Dobro, neka je učiniti. 1262 00:57:44,045 --> 00:57:45,857 Kako ću to učiniti? 1263 00:57:45,857 --> 00:57:47,940 U stvari, za svrhe klase sada, 1264 00:57:47,940 --> 00:57:50,330 samo ćemo se Pretpostavljam da je sve 1265 00:57:50,330 --> 00:57:52,620 da mi je unos već u mala slova. 1266 00:57:52,620 --> 00:57:55,430 Ako ste htjeli provjeriti, što bi jednostavno dodajte uvjet 1267 00:57:55,430 --> 00:57:59,640 to provjeriti, da je vodio kroz svaki element niza 1268 00:57:59,640 --> 00:58:02,540 i provjerio je li to između pojedinih vrijednosti. 1269 00:58:02,540 --> 00:58:05,627 Zaboravio sam što je broj od vrijednosti mala slova su. 1270 00:58:05,627 --> 00:58:07,210 Možete ga pogledati na ASCII tablice. 1271 00:58:07,210 --> 00:58:08,800 Ali da, to je stvarno dobra stvar. 1272 00:58:08,800 --> 00:58:11,758 Ali sada, samo smo si idući u Pretpostavljam da je sve konce smo ulaz 1273 00:58:11,758 --> 00:58:13,130 su malim slovima. 1274 00:58:13,130 --> 00:58:13,870 U REDU. 1275 00:58:13,870 --> 00:58:18,069 >> Pa kako bi ja ići oko ovaj problem je sljedeće? 1276 00:58:18,069 --> 00:58:18,860 PUBLIKA: Za petlje. 1277 00:58:18,860 --> 00:58:19,340 ANDI PENG: Za petlju? 1278 00:58:19,340 --> 00:58:19,839 U REDU. 1279 00:58:19,839 --> 00:58:20,847 Reci mi što da upišete. 1280 00:58:20,847 --> 00:58:25,230 >> PUBLIKA: Za int i jednak 0. 1281 00:58:25,230 --> 00:58:27,230 >> ANDI PENG: U redu. 1282 00:58:27,230 --> 00:58:36,350 >> PUBLIKA: Oh, zapravo, onda vam napraviti zarez i to n jednaka strlen. 1283 00:58:36,350 --> 00:58:38,940 >> ANDI PENG: Dakle važna stvar mislim da je ona primijetila ovdje 1284 00:58:38,940 --> 00:58:42,936 je da nismo imali za reći int n drugi put smo to učinili. 1285 00:58:42,936 --> 00:58:45,060 Samo znam da u za petlje kada izjavljuje, 1286 00:58:45,060 --> 00:58:47,934 što zapravo ne treba int o drugi put vi varijablu. 1287 00:58:47,934 --> 00:58:51,202 Možete reći n strlen. 1288 00:58:51,202 --> 00:58:52,620 >> PUBLIKA: od S. 1289 00:58:52,620 --> 00:58:53,510 >> ANDI PENG: s. 1290 00:58:53,510 --> 00:58:54,706 U REDU. 1291 00:58:54,706 --> 00:58:58,370 >> PUBLIKA: Onda zarezom. 1292 00:58:58,370 --> 00:59:00,130 >> ANDI PENG: Naravno. 1293 00:59:00,130 --> 00:59:04,050 >> PUBLIKA: I onda [nečujan] n. 1294 00:59:04,050 --> 00:59:07,480 1295 00:59:07,480 --> 00:59:09,460 Onda i ++. 1296 00:59:09,460 --> 00:59:11,780 >> ANDI PENG: Veliki. 1297 00:59:11,780 --> 00:59:12,280 U redu. 1298 00:59:12,280 --> 00:59:14,690 Što želimo unutra to za petlju sada? 1299 00:59:14,690 --> 00:59:17,820 Zapamtite, ako ćemo pokrenuti kroz niz i prođite kroz niz, 1300 00:59:17,820 --> 00:59:19,287 želimo provjeriti stvari u njemu. 1301 00:59:19,287 --> 00:59:20,370 Što ćemo morati? 1302 00:59:20,370 --> 00:59:23,070 1303 00:59:23,070 --> 00:59:26,900 To je vrsta lukav dio sada. 1304 00:59:26,900 --> 00:59:27,960 Svatko ima pogađati? 1305 00:59:27,960 --> 00:59:34,160 1306 00:59:34,160 --> 00:59:34,690 >> U REDU. 1307 00:59:34,690 --> 00:59:37,830 Prvo, kako ćemo još pristupiti? 1308 00:59:37,830 --> 00:59:41,610 Kako smo i prvi ček ili pristupiti element u nizu? 1309 00:59:41,610 --> 00:59:42,920 Kako ćemo to učiniti? 1310 00:59:42,920 --> 00:59:47,120 Što je zapis koristimo za to? 1311 00:59:47,120 --> 00:59:50,920 Što je ime tog polja zove? 1312 00:59:50,920 --> 00:59:52,400 To se zove s, zar ne? 1313 00:59:52,400 --> 00:59:54,850 >> Zapamtite, svaki string je uvijek niz. 1314 00:59:54,850 --> 00:59:58,210 Tako je nosač ja, zar ne? 1315 00:59:58,210 --> 01:00:01,360 Budući da je trenutna vrijednost ili indeks vrijednosti ćemo provjeru. 1316 01:00:01,360 --> 01:00:05,156 A mi ćemo postaviti da jednako to-- želimo malim slovom vrijednost, zar ne? 1317 01:00:05,156 --> 01:00:07,530 Želimo skrenuti da lower-- Žao nam je, želimo se velikim slovima. 1318 01:00:07,530 --> 01:00:10,014 Želimo okrenuti malim slovima vrijednost u velika slova. 1319 01:00:10,014 --> 01:00:11,805 I tako volimo-članovima Žao mi je, kako se zoveš? 1320 01:00:11,805 --> 01:00:12,580 >> PUBLIKA: Heidi. 1321 01:00:12,580 --> 01:00:12,940 >> ANDI PENG: Žao nam je? 1322 01:00:12,940 --> 01:00:13,280 >> PUBLIKA: Heidi. 1323 01:00:13,280 --> 01:00:13,988 >> ANDI PENG: Heidi. 1324 01:00:13,988 --> 01:00:15,850 Kao Heidi rekao u početku, mi smo vjerojatno 1325 01:00:15,850 --> 01:00:20,330 Trebat će the-- smo Vjerojatno će morati oduzeti 1326 01:00:20,330 --> 01:00:22,630 32 od bilo charc koji je, zar ne? 1327 01:00:22,630 --> 01:00:24,680 Jer na ASCII stol, razlika 1328 01:00:24,680 --> 01:00:27,790 između malo slovo i veliko slovo je 32. 1329 01:00:27,790 --> 01:00:31,290 Dakle, kada smo to, mi smo vjerojatno će htjeti oduzeti 32, zar ne? 1330 01:00:31,290 --> 01:00:33,910 >> Tako ćemo napraviti S i. 1331 01:00:33,910 --> 01:00:37,590 1332 01:00:37,590 --> 01:00:41,200 Da li svatko razumjeti zašto sam to učinio? 1333 01:00:41,200 --> 01:00:45,760 Jer upravo sada, u našem polju, ćemo provjeru 0th indeks, zar ne? 1334 01:00:45,760 --> 01:00:49,190 I u 0th indeksa string, to je prvi znak. 1335 01:00:49,190 --> 01:00:51,820 A taj lik ćemo pretpostaviti da je mala. 1336 01:00:51,820 --> 01:00:55,980 Ako želimo da bude velika slova, mi moraju oduzmite 32 od svoje vrijednosti, 1337 01:00:55,980 --> 01:00:58,620 jer u našoj ASCII stol, to je kako smo ga dobili 1338 01:00:58,620 --> 01:01:01,600 na sljedeći odgovara vrijednost koja ga čini velikim slovima. 1339 01:01:01,600 --> 01:01:03,714 Da li su svi razumiju da? 1340 01:01:03,714 --> 01:01:04,213 Da. 1341 01:01:04,213 --> 01:01:06,530 >> PUBLIKA: Možete li također ne mala slova u minus-- 1342 01:01:06,530 --> 01:01:08,080 >> ANDI PENG: Da, tako da je zapravo jako dobar. 1343 01:01:08,080 --> 01:01:10,455 Idem se vratiti na to Pitanje nakon što smo to učinili. 1344 01:01:10,455 --> 01:01:11,060 Da. 1345 01:01:11,060 --> 01:01:13,940 A onda, ako želim vidjeti što se događa, 1346 01:01:13,940 --> 01:01:16,180 Ja sam vjerojatno idući u želite ispisati, zar ne? 1347 01:01:16,180 --> 01:01:19,930 Netko mi reći što Želim ispisati ovdje. 1348 01:01:19,930 --> 01:01:29,160 >> PUBLIKA: printf posto c backslash [nečujan]. 1349 01:01:29,160 --> 01:01:33,570 To je vrijednost [nečujan] e i. 1350 01:01:33,570 --> 01:01:34,614 >> ANDI PENG: s ja, žao? 1351 01:01:34,614 --> 01:01:35,530 PUBLIKA: [nečujan]. 1352 01:01:35,530 --> 01:01:38,550 1353 01:01:38,550 --> 01:01:39,550 ANDI PENG: Ne znam. 1354 01:01:39,550 --> 01:01:40,600 Što misliš? 1355 01:01:40,600 --> 01:01:44,016 >> PUBLIKA: Pa, ja wouldn't-- Mislim da ne bih bring-- 1356 01:01:44,016 --> 01:01:46,944 Ja bih ga izvadite unutra, jer se [nečujan]. 1357 01:01:46,944 --> 01:01:49,726 1358 01:01:49,726 --> 01:01:51,392 ANDI PENG: Oh, što bi učinio? 1359 01:01:51,392 --> 01:01:53,867 PUBLIKA: Da. 1360 01:01:53,867 --> 01:01:56,700 ANDI PENG: Ostavimo to na način je, i ja ću objasniti zašto kasnije. 1361 01:01:56,700 --> 01:01:58,533 Zapamtite, čak i kada imaju držač mjesta, 1362 01:01:58,533 --> 01:02:00,701 želite staviti zagrade oko nje. 1363 01:02:00,701 --> 01:02:01,200 U redu. 1364 01:02:01,200 --> 01:02:04,810 Dakle, to bi trebao biti solidan funkciju ovdje. 1365 01:02:04,810 --> 01:02:06,370 Idemo ga pokrenuti i vidjeti ako to izrađuje. 1366 01:02:06,370 --> 01:02:08,750 Provjerite gornji. 1367 01:02:08,750 --> 01:02:09,250 Uh oh. 1368 01:02:09,250 --> 01:02:12,030 1369 01:02:12,030 --> 01:02:13,340 To ne izgleda previše dobro. 1370 01:02:13,340 --> 01:02:14,507 Zašto se to događa? 1371 01:02:14,507 --> 01:02:17,340 Kao i kod bilo koje pogreške, želite ići natrag i početi s prvom, 1372 01:02:17,340 --> 01:02:20,630 jer obično uzrokuje jednu pogrešku mnoge druge pogreške nakon njega. 1373 01:02:20,630 --> 01:02:26,700 Ovdje vidimo upper.c: 18: 25, koji govori ja u ovom programu pod nazivom upper.c, 1374 01:02:26,700 --> 01:02:33,800 na liniji 18, greška implicitno progla Knjižnica funkcija strlen s tipom 1375 01:02:33,800 --> 01:02:36,330 unassigned-- bla, ne znam što se događa nakon toga. 1376 01:02:36,330 --> 01:02:39,990 >> Sve to mi govori upravo sada je da se nešto događa na strlen. 1377 01:02:39,990 --> 01:02:43,520 A računalo je zbunjen, jer je To je kao, ne znam što je strlen? 1378 01:02:43,520 --> 01:02:45,520 Što to vjerojatno kažem vam da ste nedostaje? 1379 01:02:45,520 --> 01:02:46,490 >> PUBLIKA: Vi ste nedostaje [nečujan]. 1380 01:02:46,490 --> 01:02:47,630 >> ANDI PENG: U pravu si. 1381 01:02:47,630 --> 01:02:49,510 Točno. 1382 01:02:49,510 --> 01:02:52,140 Dakle, ovo je mjesto gdje je važno kako bi bili sigurni 1383 01:02:52,140 --> 01:02:56,970 da svaka funkcija koristite u svom broj ima ispravan zaglavlje 1384 01:02:56,970 --> 01:02:59,660 datoteka za knjižnicu, inače ti si idući u dobiti puno pogrešaka 1385 01:02:59,660 --> 01:03:01,150 i vaš broj ne ide znati što se događa. 1386 01:03:01,150 --> 01:03:03,050 Tako ćemo uključiti string.h ovdje. 1387 01:03:03,050 --> 01:03:06,270 >> Sada kada smo pokušati sastaviti gornju. 1388 01:03:06,270 --> 01:03:08,410 Ispravno sastaviti. 1389 01:03:08,410 --> 01:03:09,960 Idemo pokrenuti ovaj program. 1390 01:03:09,960 --> 01:03:12,000 Tako upišete nešto u mala slova. 1391 01:03:12,000 --> 01:03:14,920 Što dečki žele upisati? 1392 01:03:14,920 --> 01:03:16,546 Vikati nešto. 1393 01:03:16,546 --> 01:03:17,920 U redu, Charly upravo ušao. 1394 01:03:17,920 --> 01:03:18,990 Mi ćemo upisati Charly ime. 1395 01:03:18,990 --> 01:03:21,670 1396 01:03:21,670 --> 01:03:22,840 >> Charly malim slovima. 1397 01:03:22,840 --> 01:03:27,742 I nadam se, nadam se, ovo je će vikati i ispljunuti 1398 01:03:27,742 --> 01:03:28,575 Charly u velika slova. 1399 01:03:28,575 --> 01:03:30,830 Jej! 1400 01:03:30,830 --> 01:03:33,430 nema svatko razumjeti kako Otišao sam o rješavanju toga? 1401 01:03:33,430 --> 01:03:36,190 Način na koji ja mogu manipulirati pomoću prirodnih brojeva 1402 01:03:36,190 --> 01:03:39,410 riješiti nešto što Želim raditi u nizovima, 1403 01:03:39,410 --> 01:03:44,390 jer likovi i cijeli brojevi mogu se pozivaju na isti način, jer 1404 01:03:44,390 --> 01:03:45,540 ASCII mapiranje. 1405 01:03:45,540 --> 01:03:52,890 >> Dakle, da se vrati na svoju točku, ako sam htio staviti ovdje, umjesto od 32 1406 01:03:52,890 --> 01:03:58,959 veliko minus mala slova pravedan poput da, to će raditi jednako dobro, 1407 01:03:58,959 --> 01:04:01,750 jer to je jednostavno samo Razlika između te dvije vrijednosti. 1408 01:04:01,750 --> 01:04:09,570 Ako želim da ovo again-- Charly. 1409 01:04:09,570 --> 01:04:10,320 O ne. 1410 01:04:10,320 --> 01:04:11,820 Mislim da smo otišli na pogrešan način, zar ne? 1411 01:04:11,820 --> 01:04:13,260 >> PUBLIKA: [nečujan] mala slova a. 1412 01:04:13,260 --> 01:04:14,260 >> ANDI PENG: Postoji li ići. 1413 01:04:14,260 --> 01:04:22,380 1414 01:04:22,380 --> 01:04:22,880 Yep. 1415 01:04:22,880 --> 01:04:24,920 A kako pljuje Charly. 1416 01:04:24,920 --> 01:04:28,020 Dakle, budite oprezni kada ste oduzimanjem vrijednosti 1417 01:04:28,020 --> 01:04:30,400 zapamtiti koje je veća od druge. 1418 01:04:30,400 --> 01:04:35,220 Na primjer, ovdje sam zaboravio kako mala je a zapravo 1419 01:04:35,220 --> 01:04:38,540 veći od verzalnog A. Dakle, kada sam Pokušao im oduzeti na drugu stranu 1420 01:04:38,540 --> 01:04:40,600 oko, dobio sam negativan 32. 1421 01:04:40,600 --> 01:04:42,800 A moj računalo je kao, Ne znam što je to. 1422 01:04:42,800 --> 01:04:45,810 To je vjerojatnost samo neki slučajni vrijednost koja nije baš dobra. 1423 01:04:45,810 --> 01:04:48,760 A kako bi bili sigurni da ste oduzimanjem u ispravnom duljine 1424 01:04:48,760 --> 01:04:52,831 pronaći lik koji želite. 1425 01:04:52,831 --> 01:04:53,330 U REDU. 1426 01:04:53,330 --> 01:04:58,550 Je li netko zbunjeni o tome kako otišao o pisanju ove funkcije? 1427 01:04:58,550 --> 01:04:59,180 U REDU. 1428 01:04:59,180 --> 01:05:04,830 Pa zapravo, funkcija već postoji u knjižnici pod nazivom ctype.h. 1429 01:05:04,830 --> 01:05:06,417 Knjižnice zove ctype.h. 1430 01:05:06,417 --> 01:05:08,500 Ova funkcija je zapravo već napisana za vas. 1431 01:05:08,500 --> 01:05:10,820 To se zove na gornji. 1432 01:05:10,820 --> 01:05:13,027 >> I tako za potrebe ovo pset, idete 1433 01:05:13,027 --> 01:05:15,860 da otkrijete da li doista želite koristiti puno funkcija sadržane 1434 01:05:15,860 --> 01:05:17,390 u ctype knjižnici. 1435 01:05:17,390 --> 01:05:21,040 Za gornji, na niže, je gornja, je lower-- to su sve funkcije 1436 01:05:21,040 --> 01:05:24,914 da ćete biti u mogućnosti koristiti vrlo, vrlo brzo u svoj kod koji 1437 01:05:24,914 --> 01:05:26,080 radi upravo ono što ovaj radi. 1438 01:05:26,080 --> 01:05:28,941 Pisali smo kako to pretvoriti niz u velika slova. 1439 01:05:28,941 --> 01:05:31,440 No, to je zapravo šifra da je netko drugi napisao 1440 01:05:31,440 --> 01:05:33,800 i da možete pristupiti putem različitih funkcija. 1441 01:05:33,800 --> 01:05:34,300 Da? 1442 01:05:34,300 --> 01:05:39,570 >> PUBLIKA: Pa vi samo kopirate je unutra i to za svaku riječ? 1443 01:05:39,570 --> 01:05:42,070 >> ANDI PENG: Da, jer ja ne briga o vrijednostima. 1444 01:05:42,070 --> 01:05:44,540 Ja samo briga da je razlika između njih je 32, zar ne? 1445 01:05:44,540 --> 01:05:48,210 Razlika između malih slova b i veliko B je 32. 1446 01:05:48,210 --> 01:05:50,860 A razlika između c i veliko C je uvijek 32. 1447 01:05:50,860 --> 01:05:53,235 >> Samo moram brinuti o Razlika između ta dva, 1448 01:05:53,235 --> 01:05:56,666 jer sve od slova slijede isti obrazac, zar ne? 1449 01:05:56,666 --> 01:05:58,540 Ako imam razliku između jednog od njih, 1450 01:05:58,540 --> 01:06:01,050 Ja znam što je razlika između svih njih je. 1451 01:06:01,050 --> 01:06:01,740 Dobro pitanje. 1452 01:06:01,740 --> 01:06:04,090 Da. 1453 01:06:04,090 --> 01:06:06,660 Svatko dobro? 1454 01:06:06,660 --> 01:06:09,080 U REDU. 1455 01:06:09,080 --> 01:06:09,580 OOP. 1456 01:06:09,580 --> 01:06:14,380 1457 01:06:14,380 --> 01:06:15,270 >> U REDU. 1458 01:06:15,270 --> 01:06:20,310 Dakle, još jedan koncept koji je će biti vrlo koristan kao ti 1459 01:06:20,310 --> 01:06:22,570 nastaviti razvijati Vaš kod je ova ideja 1460 01:06:22,570 --> 01:06:25,430 stvaranja funkcije ili apstrakciju. 1461 01:06:25,430 --> 01:06:28,479 Tako sada, svi smo uzeli algebra. 1462 01:06:28,479 --> 01:06:31,770 U algebra, što su učili da postoji Ova prekrasna stvar zove funkciju 1463 01:06:31,770 --> 01:06:35,300 Stroj, gdje ako vas ulazna jedna vrsta broja, 1464 01:06:35,300 --> 01:06:38,720 teče kroz ovaj prekrasan funkciju i iz pops drugačiji izlaz, zar ne? 1465 01:06:38,720 --> 01:06:42,220 U kodu, ista stvar se događa u bilo kakve funkcije. 1466 01:06:42,220 --> 01:06:48,230 >> Tako sam mogao fizički pisanje u mom tijelu mog koda 1467 01:06:48,230 --> 01:06:52,357 glavni izjavu da zapravo ne bez obzira na tijelo koda radi. 1468 01:06:52,357 --> 01:06:54,940 Ali izvan toga, mi također može pisati različite funkcije 1469 01:06:54,940 --> 01:06:56,320 kako napraviti različite stvari. 1470 01:06:56,320 --> 01:06:58,570 Na primjer, mi smo već počeli koristiti neke od njih. 1471 01:06:58,570 --> 01:07:00,610 Printf-- da je funkcija koja je netko drugi 1472 01:07:00,610 --> 01:07:02,870 napisao je da je već možemo nazvati u našem kodu. 1473 01:07:02,870 --> 01:07:05,410 Za upper-- u ovom slučaju, upper-- je još jedna funkcija 1474 01:07:05,410 --> 01:07:07,330 smo napisao da mi može nazvati u našem kodu. 1475 01:07:07,330 --> 01:07:09,520 I tako mislim zašto čak imamo funkcije? 1476 01:07:09,520 --> 01:07:12,100 Zašto ne bismo samo buć sve u istoj liniji koda? 1477 01:07:12,100 --> 01:07:13,730 To ga čini lako za svakoga. 1478 01:07:13,730 --> 01:07:19,200 >> Pa, obrazloženje da je, prije svega, organizacije. 1479 01:07:19,200 --> 01:07:21,880 To je stvarno neugodno događa kroz nečije koda 1480 01:07:21,880 --> 01:07:25,110 i jedna funkcija kao printf. 1481 01:07:25,110 --> 01:07:28,570 Ako vi zapravo znao što Funkcija printf podrazumijevalo pisati, 1482 01:07:28,570 --> 01:07:30,530 to je, kao, 1000 linija koda. 1483 01:07:30,530 --> 01:07:32,357 >> Ako svaki put kad sam htjela da printf nešto, 1484 01:07:32,357 --> 01:07:35,440 Morao sam napisati 1000 linija koda, to bi bilo jako neugodno čitati, 1485 01:07:35,440 --> 01:07:36,290 zar ne? 1486 01:07:36,290 --> 01:07:38,860 To je razlog zašto smo upravo stvorio ovu apstraktnu funkciju 1487 01:07:38,860 --> 01:07:41,670 da smo već neko ostalo je zapisano negdje drugdje. 1488 01:07:41,670 --> 01:07:44,920 I svaki put moramo ga koristiti u naš broj, mi samo reći printf. 1489 01:07:44,920 --> 01:07:48,070 I to je u mogućnosti koristiti funkciju netko je napisao u našem kodu. 1490 01:07:48,070 --> 01:07:51,020 To ga čini lakšim organizacijski pročitati kod. 1491 01:07:51,020 --> 01:07:53,460 >> Drugo, to je pojednostavljenje. 1492 01:07:53,460 --> 01:07:56,750 To pojednostavljuje korake imamo poduzeti da se riješi naš problem. 1493 01:07:56,750 --> 01:07:59,300 Printf, djeluje kao printf, djeluje kao da se gornja 1494 01:07:59,300 --> 01:08:03,560 su sve stvari koje nam omogućuju da pojednostaviti našu kôd dolje tako da je lakše. 1495 01:08:03,560 --> 01:08:05,830 I posljednja stvar je višekratnog. 1496 01:08:05,830 --> 01:08:08,710 >> Dakle činjenica da imamo funkcija zove printf 1497 01:08:08,710 --> 01:08:11,990 koje možemo nazvati mnogo različitih vrijeme i omogućuje da se ponovno koristiti. 1498 01:08:11,990 --> 01:08:14,980 Da sam pisati printf, Ja samo napisati jednom. 1499 01:08:14,980 --> 01:08:16,439 To postoji samo u tom jednom mjestu. 1500 01:08:16,439 --> 01:08:19,890 Ako sam htjela to učiniti opet, ja bih morati kopirati i zalijepiti sve to 1501 01:08:19,890 --> 01:08:21,760 u moju drugu liniju koda. 1502 01:08:21,760 --> 01:08:24,880 Zato, ako smo stvorili funkciju koja postoji izvan naše glavno, 1503 01:08:24,880 --> 01:08:26,880 možemo samo pozvati to i ponovno ga kad god 1504 01:08:26,880 --> 01:08:29,604 trebamo tako da je puno lakše za nas i programe za pisanje. 1505 01:08:29,604 --> 01:08:32,220 1506 01:08:32,220 --> 01:08:35,549 >> Dakle, način na koji smo zapravo će pisati funkcija je vrlo sličan, zar ne? 1507 01:08:35,549 --> 01:08:37,590 To je vrsta prvi instanca u kojoj ćete 1508 01:08:37,590 --> 01:08:42,830 vidjeti funkciju preuzeti na stil razlikuje od našeg int main prazninu. 1509 01:08:42,830 --> 01:08:46,779 U tom slučaju, ako sam htjela napisati funkciju zove q, zar ne? 1510 01:08:46,779 --> 01:08:49,370 >> A int vrijednost ovdje sve se mi govori, 1511 01:08:49,370 --> 01:08:51,649 ono što želim to raditi za povratak u meni? 1512 01:08:51,649 --> 01:08:54,484 Ako želim kocke cijeli broj, Idem želite ulaz. 1513 01:08:54,484 --> 01:08:55,525 To su parametri. 1514 01:08:55,525 --> 01:08:58,490 Idem ulazi vrijednost tipa int. 1515 01:08:58,490 --> 01:09:01,300 I ja ću se vratiti drugi tip vrijednost int. 1516 01:09:01,300 --> 01:09:03,050 I ovdje, kao i vi možete vidjeti, sve radim 1517 01:09:03,050 --> 01:09:07,300 je rotacije god moj ulaz kao moj izlaz i povratka. 1518 01:09:07,300 --> 01:09:10,790 >> Dakle, sve je to funkcija radi se Potrebno nekakvu cijeli broj. 1519 01:09:10,790 --> 01:09:14,979 To ga umnožava samo po sebi dva puta tako da se kocke na snazi. 1520 01:09:14,979 --> 01:09:17,729 A onda se vrati što god da je izlaz. 1521 01:09:17,729 --> 01:09:20,540 Dakle, u ovom slučaju, to je dvije linije kod koje smo morali pisati više. 1522 01:09:20,540 --> 01:09:22,880 Ali, ako smo htjeli nazvati na ovaj više puta, 1523 01:09:22,880 --> 01:09:26,210 to je puno lakše upisati da je jedan crta ovdje to u kocki od 1524 01:09:26,210 --> 01:09:28,830 morati proći kroz više puta. 1525 01:09:28,830 --> 01:09:34,180 >> Dakle, način na koji u biti bilo formatiranje za bilo kakve funkcije 1526 01:09:34,180 --> 01:09:36,420 će postojati je kao ovdje. 1527 01:09:36,420 --> 01:09:38,659 Tako imamo ime funkcija. 1528 01:09:38,659 --> 01:09:39,950 U ovom slučaju, to se zove Cube. 1529 01:09:39,950 --> 01:09:42,033 I ime mu kocku jer to je lako za zapamtiti. 1530 01:09:42,033 --> 01:09:44,220 Možete ga imenovati trg i to zapravo može biti kubu. 1531 01:09:44,220 --> 01:09:45,500 Nije važno. 1532 01:09:45,500 --> 01:09:48,020 Samo ime koje ste Dodjela funkcije. 1533 01:09:48,020 --> 01:09:51,660 >> Ovo ovdje, int, je vrsta parametra vam je potrebno. 1534 01:09:51,660 --> 01:09:54,149 Dakle, što se tu funkciju potrebno kako bi se raditi? 1535 01:09:54,149 --> 01:09:55,990 Pa, to treba ulaz. 1536 01:09:55,990 --> 01:09:56,704 Nazvao sam ga ulaza. 1537 01:09:56,704 --> 01:09:58,120 Možete ga nazvati što god želite. 1538 01:09:58,120 --> 01:10:00,500 Ali moram nešto tipa int. 1539 01:10:00,500 --> 01:10:03,730 To će zapravo izvršiti ono što je unutar ovdje 1540 01:10:03,730 --> 01:10:04,990 tijelo funkcije. 1541 01:10:04,990 --> 01:10:07,847 A onda je tip povratak upravo ovdje, ovo int-- 1542 01:10:07,847 --> 01:10:09,680 Sve to mi govori se da je ova funkcija 1543 01:10:09,680 --> 01:10:11,250 će se vratiti k meni u int. 1544 01:10:11,250 --> 01:10:14,460 Tako da će uzeti u int, i to će vam vratiti int. 1545 01:10:14,460 --> 01:10:17,750 Da li su svi razumjeti kako Oblikovanje ove vrste radi? 1546 01:10:17,750 --> 01:10:18,250 Cool. 1547 01:10:18,250 --> 01:10:24,690 1548 01:10:24,690 --> 01:10:25,740 >> U REDU. 1549 01:10:25,740 --> 01:10:31,770 Dakle, nemojte se zabrinuti ako to čini malo apstraktno upravo sada. 1550 01:10:31,770 --> 01:10:33,450 To je nešto što ćemo razgovarati o tome. 1551 01:10:33,450 --> 01:10:36,310 Mi ćemo roniti dublje kasnije u tijeku. 1552 01:10:36,310 --> 01:10:41,170 Način na koji bilo koja vrsta višoj razini apstrakcija tih stvari raditi 1553 01:10:41,170 --> 01:10:43,530 je da je, u spomen, u računalo, sve 1554 01:10:43,530 --> 01:10:47,660 je pohranjena u tom tipu dimnjaka, kažem. 1555 01:10:47,660 --> 01:10:49,070 >> Dakle, tamo na vrhu. 1556 01:10:49,070 --> 01:10:50,861 Ne znam je li vama dečki mogu vidjeti da je dobro. 1557 01:10:50,861 --> 01:10:52,590 Pokušat ću za uvećanje. 1558 01:10:52,590 --> 01:10:55,111 Ovdje na vrhu, mi imaju fizičke tekst 1559 01:10:55,111 --> 01:10:57,860 onoga što je računalo interpreting-- sve nule i one koje 1560 01:10:57,860 --> 01:10:59,540 postoje u našoj računala. 1561 01:10:59,540 --> 01:11:03,390 I onda imamo inicijalizacije podataka i nepokrenute podataka, 1562 01:11:03,390 --> 01:11:05,340 ono što nazivamo globalnim varijablama. 1563 01:11:05,340 --> 01:11:08,200 Tako varijable koje postoje na svim programima 1564 01:11:08,200 --> 01:11:11,815 i preko cijelu svoju, uglavnom, kod. 1565 01:11:11,815 --> 01:11:13,940 Bez brige, ako ti dečki su vrsta nejasno o tome. 1566 01:11:13,940 --> 01:11:16,060 To ne stvarno obzira sada. 1567 01:11:16,060 --> 01:11:18,680 >> I onda imamo ono što je zove gomila u stog. 1568 01:11:18,680 --> 01:11:21,140 Razmislite o stog doslovce kao baš kao stog stvari, 1569 01:11:21,140 --> 01:11:23,098 snop drugačiji stvari guraju na vrhu 1570 01:11:23,098 --> 01:11:27,870 jedan od drugoga da pohraniti razne varijable i sintaksa unutar kôda. 1571 01:11:27,870 --> 01:11:31,460 I onda ovdje na samom dnu, imamo varijable okruženja 1572 01:11:31,460 --> 01:11:35,480 onoga što se izvršavaju u roku samo tvoja mala linija koda. 1573 01:11:35,480 --> 01:11:40,510 >> I samo ćemo za uvećanje u na stvarnoj stog dijelu. 1574 01:11:40,510 --> 01:11:43,880 Dakle ovdje, ako smo bili za uvećanje u na samo ovom području dimnjaka, 1575 01:11:43,880 --> 01:11:45,140 to je ono što izgleda. 1576 01:11:45,140 --> 01:11:48,590 A to je zapravo prilično važno kad dečki govore o funkcijama, 1577 01:11:48,590 --> 01:11:52,330 jer obavijest da je Sjećanje na računalu 1578 01:11:52,330 --> 01:11:55,600 je spremanje varijabli i funkcije 1579 01:11:55,600 --> 01:11:58,790 a parametri su vaših funkcija i vaše glavne varijable 1580 01:11:58,790 --> 01:12:00,190 na različitim mjestima. 1581 01:12:00,190 --> 01:12:03,390 >> Tako sada, glavna je stvarna funkcija 1582 01:12:03,390 --> 01:12:04,780 da ste izvršavanju u kodu. 1583 01:12:04,780 --> 01:12:08,050 Vi ste njegovi parametri pohranjene ovdje i njegove lokalne varijable pohranjene ovdje. 1584 01:12:08,050 --> 01:12:12,270 Lokalni varijabla samo znači nikakvu varijablu koje postoje samo u toj funkciji. 1585 01:12:12,270 --> 01:12:15,610 A na vrhu, što ste to zasebna funkcija zove kocke. 1586 01:12:15,610 --> 01:12:18,240 Imaš to parametri kao i onih mještana. 1587 01:12:18,240 --> 01:12:21,540 >> A razlog što možete vidim ovdje je da ono 1588 01:12:21,540 --> 01:12:25,030 događa kada kocka uzima u vrijednost iz vaše glavne funkcije 1589 01:12:25,030 --> 01:12:27,640 je da je zapravo to da je tijekom kopiranja. 1590 01:12:27,640 --> 01:12:31,470 Dakle, ako sam htjela kocke 2 i 8 vrati, kako 2 1591 01:12:31,470 --> 01:12:33,730 zapravo unosi kao parametar i to je 1592 01:12:33,730 --> 01:12:37,690 kopirana tako da ga postojeći na dva različita mjesta u memoriji. 1593 01:12:37,690 --> 01:12:40,520 I morate biti vrlo oprezni na spomen kojoj jedan od onih 1594 01:12:40,520 --> 01:12:42,520 ste zapravo manipulira. 1595 01:12:42,520 --> 01:12:47,170 A primjer onoga što se dogodilo to bi bilo jako, jako loše 1596 01:12:47,170 --> 01:12:48,050 postoji upravo ovdje. 1597 01:12:48,050 --> 01:12:50,760 1598 01:12:50,760 --> 01:12:58,650 >> Dakle ovdje sam dobio, u teoriji, program ovdje, glavni funkcija 1599 01:12:58,650 --> 01:13:02,180 da sam proglašena int x jednak 1. 1600 01:13:02,180 --> 01:13:04,505 Ja sam proglasio još int y jednak 2. 1601 01:13:04,505 --> 01:13:06,380 A onda sam ga prikazuju kroz ovu funkciju 1602 01:13:06,380 --> 01:13:09,647 zove swap, gdje pretpostavljam da to je zamjene dvije vrijednosti. 1603 01:13:09,647 --> 01:13:11,480 A onda ću ispisati ih, zar ne? 1604 01:13:11,480 --> 01:13:13,220 To je ono što želim ovaj program učiniti. 1605 01:13:13,220 --> 01:13:15,180 >> Tako ćemo doći i pogledati. 1606 01:13:15,180 --> 01:13:18,200 Dakle, ako sam zapravo napisati drugačiji funkcija, kao što možete vidjeti, 1607 01:13:18,200 --> 01:13:19,750 Ovdje imamo našu glavnu funkciju. 1608 01:13:19,750 --> 01:13:22,860 I onda mi imamo Druga funkcija ovdje. 1609 01:13:22,860 --> 01:13:24,520 Praznina zamjena. 1610 01:13:24,520 --> 01:13:27,090 Praznina samo znači da je neće vratiti ništa. 1611 01:13:27,090 --> 01:13:28,930 Ime je funkcija zove swap, i to je 1612 01:13:28,930 --> 01:13:33,730 će usisnih dvije varijable, int a, i int b, iz svog [nečujan] funkciju. 1613 01:13:33,730 --> 01:13:39,010 >> Dakle, u biti ovdje, mi smo prolazeći X i Y u ovu funkciju. 1614 01:13:39,010 --> 01:13:40,760 A ako bismo stvoriti this-- tako želimo 1615 01:13:40,760 --> 01:13:42,420 stvoriti privremene vrijednosti, zar ne? 1616 01:13:42,420 --> 01:13:43,930 Idemo dodijeliti to do. 1617 01:13:43,930 --> 01:13:45,388 A onda će se sada jednake b. 1618 01:13:45,388 --> 01:13:47,660 Ib će se vratiti gdje je temp vrijednost bila, 1619 01:13:47,660 --> 01:13:51,070 koji je, jer kad želite mijenjati stvari, 1620 01:13:51,070 --> 01:13:52,320 ne možete baš kao i mijenjati ih. 1621 01:13:52,320 --> 01:13:54,360 >> Morate držati jedan od njih ovdje tako da se pamti 1622 01:13:54,360 --> 01:13:56,485 što je to, jer jednom swap jedan, zaboravite 1623 01:13:56,485 --> 01:13:58,200 što je izvorna vrijednost je, zar ne? 1624 01:13:58,200 --> 01:14:00,990 Dakle, u teoriji, ovaj program treba raditi, zar ne? 1625 01:14:00,990 --> 01:14:03,630 Ako sam želio mijenjati dva, oni bi trebali zamijeniti. 1626 01:14:03,630 --> 01:14:05,490 Tako ćemo ga pokrenuti i vidjeti ako to radi. 1627 01:14:05,490 --> 01:14:11,130 1628 01:14:11,130 --> 01:14:16,940 >> Dakle, kao što vi vidite, x je nekad 1, a Y je nekad 2. 1629 01:14:16,940 --> 01:14:21,475 A ako sam ga ispisati, x je 1, a y i dalje je 2. 1630 01:14:21,475 --> 01:14:25,970 Hmm, ovaj program ne čini se da raditi na način na koji ja to želim raditi. 1631 01:14:25,970 --> 01:14:29,950 Se bilo tko ištanje to uzeti pucao na nagađanje zašto se to događa? 1632 01:14:29,950 --> 01:14:34,430 To ima veze s načinom da različite stvari 1633 01:14:34,430 --> 01:14:38,172 pohranjeni u različitim mjestima u memoriji. 1634 01:14:38,172 --> 01:14:39,377 >> U REDU. 1635 01:14:39,377 --> 01:14:41,960 Pa vi ne morate brinuti previše o tome sada. 1636 01:14:41,960 --> 01:14:46,610 Ali znam da kocka je lokalna varijable su a i b, 1637 01:14:46,610 --> 01:14:49,230 jer ovdje u našoj funkciji, smo proglasili su a i b 1638 01:14:49,230 --> 01:14:53,570 kao varijable koje postoje unutar kocke, koje funkcioniraju. 1639 01:14:53,570 --> 01:14:59,490 Ali, kao što možete vidjeti, parametre koji to je da u su se pohranjuju ovdje. 1640 01:14:59,490 --> 01:15:01,370 Ali nismo bili zapravo povratku ništa. 1641 01:15:01,370 --> 01:15:03,120 Nismo zapravo mijenja X i Y. 1642 01:15:03,120 --> 01:15:04,440 Mi smo samo mijenja aib. 1643 01:15:04,440 --> 01:15:08,340 >> Imali smo kopirati X i Y u nešto zove i b. 1644 01:15:08,340 --> 01:15:11,092 Ali mi zapravo nikada manipulirati X i Y sami. 1645 01:15:11,092 --> 01:15:12,800 Jeste li vi viđenje kako se to događa? 1646 01:15:12,800 --> 01:15:16,140 Je li to jednostavno sam ga kopirati više, ali nismo zapravo čuva 1647 01:15:16,140 --> 01:15:18,030 staza gdje su bili u memoriji. 1648 01:15:18,030 --> 01:15:20,127 >> I tako sada računalo gleda, oh, imam 1649 01:15:20,127 --> 01:15:21,960 pokrenuti ovu stvar do ovu lijepu funkcija. 1650 01:15:21,960 --> 01:15:23,690 Ali X i Y su dalje x i y. 1651 01:15:23,690 --> 01:15:26,240 Ništa se dogodilo ih zbog činjenice 1652 01:15:26,240 --> 01:15:28,340 da tih parametara i lokalne varijable 1653 01:15:28,340 --> 01:15:30,150 su pohranjeni u različite mjesto u memoriji. 1654 01:15:30,150 --> 01:15:32,030 A to je viša razina Koncept da ćemo 1655 01:15:32,030 --> 01:15:34,300 početi dobivati ​​kasnije u tijeku. 1656 01:15:34,300 --> 01:15:36,950 Ali samo znam da je to problem koji se može dogoditi 1657 01:15:36,950 --> 01:15:41,400 i da ćemo shvatiti načine kako da nositi s tim kasnije u tijeku. 1658 01:15:41,400 --> 01:15:41,900 U REDU. 1659 01:15:41,900 --> 01:15:47,750 1660 01:15:47,750 --> 01:15:48,250 U redu. 1661 01:15:48,250 --> 01:15:51,780 Tako posljednji koncept smo stvarno će pokriti 1662 01:15:51,780 --> 01:15:53,880 koja će biti korisna za pset ovog tjedna 1663 01:15:53,880 --> 01:15:56,060 su ono što se zove argumente naredbenog retka. 1664 01:15:56,060 --> 01:16:00,820 Dakle, Rob je u svom predavanju prošli kroz vrsta kratko o tome kako se ta rada. 1665 01:16:00,820 --> 01:16:02,770 U biti znam da kada pišete 1666 01:16:02,770 --> 01:16:06,280 kao glavnu funkciju, kada smo napisao funkcije prije u prošlosti, 1667 01:16:06,280 --> 01:16:07,804 imali smo int glavni prazninu. 1668 01:16:07,804 --> 01:16:10,470 A razlog zbog kojeg smo imali praznina tamo bilo zato što su naši programi nisu 1669 01:16:10,470 --> 01:16:12,520 trebate ulaznim vrijednostima pokrenuti, zar ne? 1670 01:16:12,520 --> 01:16:16,020 Kada sam trčao Mario, nisam potrebna zapravo samo upišite u nešto 1671 01:16:16,020 --> 01:16:16,970 kad sam trčao Mario. 1672 01:16:16,970 --> 01:16:20,170 Mogao sam brz korisnik kasnije. 1673 01:16:20,170 --> 01:16:22,450 Ali to neće uvijek biti slučaj. 1674 01:16:22,450 --> 01:16:24,980 >> Na primjer, u ovom Tjedan problem postavlja, 1675 01:16:24,980 --> 01:16:28,365 ti si idući u biti zatraženo da u dodatak izvodi svoj program, 1676 01:16:28,365 --> 01:16:30,990 ti si idući u ištanje to ulaz određene stvari u ravno kao što 1677 01:16:30,990 --> 01:16:32,050 pokrenuti program. 1678 01:16:32,050 --> 01:16:34,720 Dakle, način na koji se to zove naredbenog retka argument a, koji 1679 01:16:34,720 --> 01:16:37,280 je kao argument možete unijeti izravno 1680 01:16:37,280 --> 01:16:39,260 kao što pokušavaš pokrenuti vaš program. 1681 01:16:39,260 --> 01:16:44,680 >> Tako je zapis za to, to je prilično složena izgleda, 1682 01:16:44,680 --> 01:16:47,320 ali to je stvarno ne da teško. Dakle int main-- 1683 01:16:47,320 --> 01:16:48,910 to je samo tvoja glavna funkcija. 1684 01:16:48,910 --> 01:16:52,110 U argc zarezom niz argv parova. 1685 01:16:52,110 --> 01:16:56,040 Dakle, sve što je rekao je da je ova int argc-- sve što je vam govorim 1686 01:16:56,040 --> 01:17:00,560 je da su to broj argumenti računalo treba očekivati. 1687 01:17:00,560 --> 01:17:03,130 >> Dakle, jedna stvar koja je stvarno važno pratiti 1688 01:17:03,130 --> 01:17:07,080 je fizička naziv vašeg programa broji kao jedan od onih argumenata. 1689 01:17:07,080 --> 01:17:11,080 Dakle, ako sam htjela da moj program pokrenuti plus jednu dodatnu komandne linije 1690 01:17:11,080 --> 01:17:13,310 Argument, ja sam zapravo će imati dva. 1691 01:17:13,310 --> 01:17:15,080 Argc zapravo će biti dva. 1692 01:17:15,080 --> 01:17:18,010 A onda niz argv bracket-- sve što radi, 1693 01:17:18,010 --> 01:17:20,410 to me je davanje niz žice to je 1694 01:17:20,410 --> 01:17:24,870 ide samo prikaz i pohranu ono sve te argumente naredbenog retka su. 1695 01:17:24,870 --> 01:17:34,090 >> Tako na primjer, ako sam htjela da se ovaj Program, ./copy infile outfile, zar ne? 1696 01:17:34,090 --> 01:17:37,330 To je samo tipičan Linux naredbe. 1697 01:17:37,330 --> 01:17:38,830 Što je zapravo argc? 1698 01:17:38,830 --> 01:17:41,320 Koliko argumente naredbenog retka postoje zapravo u tome? 1699 01:17:41,320 --> 01:17:45,130 Sve to ipak napraviti kopiju infile o imenu jedne datoteke 1700 01:17:45,130 --> 01:17:47,070 I to kopija u jedna datoteka, zar ne? 1701 01:17:47,070 --> 01:17:48,700 To je sve ovo radi. 1702 01:17:48,700 --> 01:17:53,080 Kao što možete vidjeti, ja sam to na jednoj liniji zapravo bez potrebe programa. 1703 01:17:53,080 --> 01:17:55,380 >> Što je naša argc u ovom slučaju? 1704 01:17:55,380 --> 01:17:58,968 Koliko argumenti imamo? 1705 01:17:58,968 --> 01:17:59,634 PUBLIKA: Tri? 1706 01:17:59,634 --> 01:18:01,200 ANDI PENG: Imamo tri, točno. 1707 01:18:01,200 --> 01:18:05,030 Dakle, to je vrlo intuitivan za samo mislim da je to samo 1708 01:18:05,030 --> 01:18:06,290 infile i outfile. 1709 01:18:06,290 --> 01:18:10,190 Ali znam da je fizički ime za Program radite broji kao jedan. 1710 01:18:10,190 --> 01:18:13,220 Dakle, u ovom slučaju, argc je zapravo tri. 1711 01:18:13,220 --> 01:18:15,860 Kako o, što je argv 0? 1712 01:18:15,860 --> 01:18:18,180 Zapamtite, sve od argumente naredbenog retka 1713 01:18:18,180 --> 01:18:20,500 pohranjeni su u niz žice. 1714 01:18:20,500 --> 01:18:24,140 Dakle, ako sam pokušati pristupiti, što bi argv nosač 0 daju mi? 1715 01:18:24,140 --> 01:18:25,364 >> PUBLIKA: [nečujan]. 1716 01:18:25,364 --> 01:18:26,155 ANDI PENG: Točno. 1717 01:18:26,155 --> 01:18:28,550 Bilo bi mi dati točku slash primjerak, jer je to 1718 01:18:28,550 --> 01:18:31,070 0. element, Prvi element mog polja. 1719 01:18:31,070 --> 01:18:33,236 Što je argv 1? 1720 01:18:33,236 --> 01:18:33,945 >> PUBLIKA: infile. 1721 01:18:33,945 --> 01:18:35,070 ANDI PENG: infile točno. 1722 01:18:35,070 --> 01:18:36,272 Što je argv 2? 1723 01:18:36,272 --> 01:18:37,022 PUBLIKA: outfile. 1724 01:18:37,022 --> 01:18:38,190 ANDI PENG: outfile. 1725 01:18:38,190 --> 01:18:39,290 To je malo zeznuto sada. 1726 01:18:39,290 --> 01:18:42,630 Što vi mislite argv 3 će biti davanje mene 1727 01:18:42,630 --> 01:18:45,522 ako sam pokušao ispisati kako van? 1728 01:18:45,522 --> 01:18:48,260 >> PUBLIKA: [nečujan]? 1729 01:18:48,260 --> 01:18:50,164 >> ANDI PENG: Jesi li ruku? 1730 01:18:50,164 --> 01:18:50,663 Da. 1731 01:18:50,663 --> 01:18:51,550 >> PUBLIKA: Alternativa. 1732 01:18:51,550 --> 01:18:52,341 >> ANDI PENG: Točno. 1733 01:18:52,341 --> 01:18:55,440 Dakle, ne zaboravite na predavanje koje smo su na kraju utrke nečega 1734 01:18:55,440 --> 01:18:56,640 zove null terminator? 1735 01:18:56,640 --> 01:18:58,890 Mi ćemo doći u ovo također dalje u klasi. 1736 01:18:58,890 --> 01:19:02,472 Ali znam da je u zapisu, način vaše računalo 1737 01:19:02,472 --> 01:19:04,430 zna da je kraj od niza je da to 1738 01:19:04,430 --> 01:19:07,310 stavlja nešto zove null Terminator ili crtica nula. 1739 01:19:07,310 --> 01:19:12,047 >> Dakle, ako pokušate pristupiti argv 3, ideš pogoditi ovu crticu 0. 1740 01:19:12,047 --> 01:19:13,630 To je čak i više od trik pitanje. 1741 01:19:13,630 --> 01:19:17,020 Što je argv 4? 1742 01:19:17,020 --> 01:19:20,920 Dakle, to je prošlost null terminator, prošlosti granica naše ponude. 1743 01:19:20,920 --> 01:19:24,380 Što mislite će dogoditi kada pokušavamo učiniti? 1744 01:19:24,380 --> 01:19:25,842 >> PUBLIKA: [nečujan]? 1745 01:19:25,842 --> 01:19:26,550 ANDI PENG: Žao nam je? 1746 01:19:26,550 --> 01:19:28,025 Recimo da je malo glasniji? 1747 01:19:28,025 --> 01:19:29,086 >> PUBLIKA: [nečujan]. 1748 01:19:29,086 --> 01:19:29,710 ANDI PENG: Da. 1749 01:19:29,710 --> 01:19:32,420 To je naziv Područje ćete najvjerojatnije dobiti. 1750 01:19:32,420 --> 01:19:36,610 Ali znam da argv 4-- koja vam omogućuje da pristup 1751 01:19:36,610 --> 01:19:38,610 mjesta u vašem računalu memorije da stvarno 1752 01:19:38,610 --> 01:19:41,650 ne bi trebao biti dirljiv, jer sada znate što argv je. 1753 01:19:41,650 --> 01:19:46,220 Vi znate da je to niz veličine 3 koja ima točkica kopiranja, infile i outfile. 1754 01:19:46,220 --> 01:19:50,200 >> Ako pokušate ići tako daleko iznad toga da ste pokraj null Terminatora, 1755 01:19:50,200 --> 01:19:53,050 vaše računalo ima vjerojatno pohranjuju nešto u argv 4. 1756 01:19:53,050 --> 01:19:55,790 A ti stvarno ne bi trebalo biti dopušten pristup u argv 4, 1757 01:19:55,790 --> 01:19:58,130 jer imate datoteku Vlada i da ste samo 1758 01:19:58,130 --> 01:19:59,790 dozvoljen pristup tim trima policama. 1759 01:19:59,790 --> 01:20:02,870 Ali ako pokušate doći način izvan polici gdje su dopušteni, 1760 01:20:02,870 --> 01:20:04,930 ti ćeš početi petljaju druge stvari u memoriji računala. 1761 01:20:04,930 --> 01:20:06,690 To će biti jako, jako loše. 1762 01:20:06,690 --> 01:20:07,440 Dakle, samo znam da. 1763 01:20:07,440 --> 01:20:10,370 Budite vrlo oprezni da vas ne samo slučajno početi 1764 01:20:10,370 --> 01:20:14,772 Pristupom elemenata u niz koji nisu bili u ono što je želio stvoriti. 1765 01:20:14,772 --> 01:20:17,114 Yep. 1766 01:20:17,114 --> 01:20:18,430 >> U REDU. 1767 01:20:18,430 --> 01:20:26,360 Tako ćemo napraviti još jedan terminala primjer ovdje. 1768 01:20:26,360 --> 01:20:27,300 U REDU. 1769 01:20:27,300 --> 01:20:29,900 Dakle, Rob brzo u predavanju drugi dan otišao 1770 01:20:29,900 --> 01:20:35,040 po ovom primjeru, gdje je imali int int glavna argc niz argv 1771 01:20:35,040 --> 01:20:39,090 zagrade, što mi govori da sam će imati argumente naredbenog retka. 1772 01:20:39,090 --> 01:20:41,860 >> On je, ako argc jednaka jednako 2-- zapamtite, 1773 01:20:41,860 --> 01:20:45,070 jednako jednaki znači usporedbu. 1774 01:20:45,070 --> 01:20:47,980 Ako je jednaka 2, a onda sam tiskanja Pozdrav, 1775 01:20:47,980 --> 01:20:51,190 bilo prvo element niza je. 1776 01:20:51,190 --> 01:20:54,100 Inače ispisa, Hello World. 1777 01:20:54,100 --> 01:20:56,300 Što se to događa na dogoditi u biti? 1778 01:20:56,300 --> 01:21:00,570 Može li netko jednostavno objasniti Engleski što ovaj program radi? 1779 01:21:00,570 --> 01:21:01,272 Da. 1780 01:21:01,272 --> 01:21:08,160 >> PUBLIKA: Ako netko upisali u naredbi i rekao im ime i prezime, 1781 01:21:08,160 --> 01:21:12,096 to neće samo print Prvi i reći, zdravo, 1782 01:21:12,096 --> 01:21:14,090 bez obzira na ime je. 1783 01:21:14,090 --> 01:21:15,410 >> ANDI PENG: OK, neka ga pokrenuti. 1784 01:21:15,410 --> 01:21:22,470 Tako na primjer, ako bih napraviti Ova datoteka napraviti Pozdrav to-- Pozdrav 1785 01:21:22,470 --> 01:21:24,500 to-- što želiš unijeti? 1786 01:21:24,500 --> 01:21:25,900 >> PUBLIKA: ime i prezime. 1787 01:21:25,900 --> 01:21:27,280 >> ANDI PENG: Ime i prezime? 1788 01:21:27,280 --> 01:21:28,180 Prostori? 1789 01:21:28,180 --> 01:21:29,690 >> PUBLIKA: Da. 1790 01:21:29,690 --> 01:21:33,490 >> ANDI PENG: Može li netko reći ja upravo sada, što je argc? 1791 01:21:33,490 --> 01:21:35,630 Samo upravo tamo? 1792 01:21:35,630 --> 01:21:36,290 Ups, ispričavam se. 1793 01:21:36,290 --> 01:21:37,920 Dopustite mi da se vrati. 1794 01:21:37,920 --> 01:21:40,740 Koliko argumente naredbenog retka are-- vi stvarno ne možete vidjeti. 1795 01:21:40,740 --> 01:21:43,760 Ali ja ću pokušati povećavanje. 1796 01:21:43,760 --> 01:21:44,290 Pokušavam. 1797 01:21:44,290 --> 01:21:45,414 Da, ima tri, zar ne? 1798 01:21:45,414 --> 01:21:48,750 To je točka Slash Pozdrav, to je Andi, i to je Peng. 1799 01:21:48,750 --> 01:21:51,870 >> Dakle, što vi mislite da je ovo Program će se ispis? 1800 01:21:51,870 --> 01:21:55,550 1801 01:21:55,550 --> 01:21:56,060 Oh. 1802 01:21:56,060 --> 01:21:57,120 O oprosti. 1803 01:21:57,120 --> 01:21:57,810 Pogrešno ime. 1804 01:21:57,810 --> 01:22:03,630 1805 01:22:03,630 --> 01:22:06,130 To je ispis, Hello World. 1806 01:22:06,130 --> 01:22:09,603 Se bilo tko želi objasniti zašto se to događa? 1807 01:22:09,603 --> 01:22:10,103 Da? 1808 01:22:10,103 --> 01:22:11,019 >> PUBLIKA: [nečujan]. 1809 01:22:11,019 --> 01:22:14,439 1810 01:22:14,439 --> 01:22:15,230 ANDI PENG: Točno. 1811 01:22:15,230 --> 01:22:19,940 Dakle ovdje su uvjetno je, ako argc jednaka jednaka 2. 1812 01:22:19,940 --> 01:22:23,650 Dakle, samo u slučaju da postoji Dva argumente naredbenog retka. 1813 01:22:23,650 --> 01:22:25,850 Onda ću ispisati, Pozdrav, što god to bilo. 1814 01:22:25,850 --> 01:22:28,210 Ali drugi, ja ću ispisivati ​​samo, Hello World. 1815 01:22:28,210 --> 01:22:30,040 Tako se netko želi mi dati primjer 1816 01:22:30,040 --> 01:22:35,050 kako bih biti u mogućnosti da se zapravo dobiti to ispisati vrijednost argv 1? 1817 01:22:35,050 --> 01:22:38,600 >> Što bi ja moram ulaz ovdje? 1818 01:22:38,600 --> 01:22:39,840 Samo jedna stvar, zar ne? 1819 01:22:39,840 --> 01:22:42,900 Budući da je točka pozdravi već računa kao prvi argument. 1820 01:22:42,900 --> 01:22:43,930 Imam samo još jedno. 1821 01:22:43,930 --> 01:22:46,470 Dakle dot Pozdrav, ako sam samo učiniti Andi. 1822 01:22:46,470 --> 01:22:47,270 Pozdrav, Andi. 1823 01:22:47,270 --> 01:22:49,186 Da li su svi razumiju zašto se to događa? 1824 01:22:49,186 --> 01:22:49,602 Da. 1825 01:22:49,602 --> 01:22:52,500 >> PUBLIKA: Tako je prostor između Naredba line-- je to [nečujan]? 1826 01:22:52,500 --> 01:22:56,247 1827 01:22:56,247 --> 01:22:56,830 ANDI PENG: Ne 1828 01:22:56,830 --> 01:23:03,810 Dakle, prostor u naredbenom retku Argument, x, reći svoje računalo 1829 01:23:03,810 --> 01:23:06,820 da je ovo početak novog niza. 1830 01:23:06,820 --> 01:23:11,130 Dakle niz argv ga here-- trgovinama sve vaše naredbe retka argumente 1831 01:23:11,130 --> 01:23:13,110 u žice. 1832 01:23:13,110 --> 01:23:17,420 I tako se prostor u naredbenom retku argument-- sve što radi je da vam kažem, 1833 01:23:17,420 --> 01:23:21,030 To je na kraju jednog niza i da je vrijeme za prelazak na drugu. 1834 01:23:21,030 --> 01:23:21,990 >> Da. 1835 01:23:21,990 --> 01:23:23,530 To je prilično važno za Vaša pset, jer si 1836 01:23:23,530 --> 01:23:24,613 će se testiranje tih. 1837 01:23:24,613 --> 01:23:29,300 Dakle, bilo tko imati bilo kakvih pitanja o ovome? 1838 01:23:29,300 --> 01:23:30,016 OK super. 1839 01:23:30,016 --> 01:23:30,515 Da? 1840 01:23:30,515 --> 01:23:35,008 >> PUBLIKA: Dakle, ti bi razlog staviti cjelobrojne argument kamenac umjesto 1841 01:23:35,008 --> 01:23:40,059 od [nečujan] će biti kada želite upisati dodatne informacije 1842 01:23:40,059 --> 01:23:41,030 [Nečujan]? 1843 01:23:41,030 --> 01:23:42,090 >> ANDI PENG: Da, točno. 1844 01:23:42,090 --> 01:23:45,370 Neki programi će zahtijevati od vas za unos naredbenog retka argument 1845 01:23:45,370 --> 01:23:47,732 da prolazi i koja koristi taj. 1846 01:23:47,732 --> 01:23:49,035 Da. 1847 01:23:49,035 --> 01:23:50,410 PUBLIKA: Pa što ako [nečujan]? 1848 01:23:50,410 --> 01:23:55,440 1849 01:23:55,440 --> 01:23:58,870 >> ANDI PENG: Pa, ono što imam mijenjati onda u svom programu? 1850 01:23:58,870 --> 01:23:59,870 >> PUBLIKA: Samo 3. 1851 01:23:59,870 --> 01:24:12,460 1852 01:24:12,460 --> 01:24:15,020 >> ANDI PENG: Zašto je to događa, što mislite? 1853 01:24:15,020 --> 01:24:18,940 >> PUBLIKA: Budući da je [nečujan]. 1854 01:24:18,940 --> 01:24:22,370 >> PUBLIKA: Morao bi ga promijeniti 2 [nečujan]. 1855 01:24:22,370 --> 01:24:23,484 >> PUBLIKA: 1 i 2. 1856 01:24:23,484 --> 01:24:24,650 ANDI PENG: 1 i 2, točno. 1857 01:24:24,650 --> 01:24:29,150 Dakle, u ovom slučaju, što bi vjerojatno Želite imati dva printf statements-- 1858 01:24:29,150 --> 01:24:32,601 onaj koji tiskani argv 1 i onaj koji ispisuju argv 2. 1859 01:24:32,601 --> 01:24:33,100 Ovdje. 1860 01:24:33,100 --> 01:24:34,516 Ja zapravo mogu učiniti vrlo brzo. 1861 01:24:34,516 --> 01:24:46,720 1862 01:24:46,720 --> 01:24:47,320 Izvoli. 1863 01:24:47,320 --> 01:24:48,287 Oh. 1864 01:24:48,287 --> 01:24:49,370 Nije baš ono što ste htjeli. 1865 01:24:49,370 --> 01:24:52,590 Ali ako vi zabrljati okolo sa formatiranje, to će izaći. 1866 01:24:52,590 --> 01:24:54,981 Da. 1867 01:24:54,981 --> 01:24:55,480 Cool. 1868 01:24:55,480 --> 01:24:57,670 Znam da smo malo kratki s vremenom. 1869 01:24:57,670 --> 01:25:02,469 Ali ja sam samo ide da se brzo provesti par minuta prolaze kroz helpful-- 1870 01:25:02,469 --> 01:25:03,760 PUBLIKA: Imate dvije minute. 1871 01:25:03,760 --> 01:25:05,010 ANDI PENG: Imam dvije minute? 1872 01:25:05,010 --> 01:25:06,340 Hvala. 1873 01:25:06,340 --> 01:25:09,180 Neke brze savjete pset. 1874 01:25:09,180 --> 01:25:13,100 Tako je za ovaj pset, ja visoko preporučiti, kao što sam rekao, svatko pročitati spec. 1875 01:25:13,100 --> 01:25:16,804 Vi ćete biti pisanje tri programs-- jedan zove initials.c, jedan se zove caesar.c, 1876 01:25:16,804 --> 01:25:17,720 jedan se zove vigenere.c. 1877 01:25:17,720 --> 01:25:20,465 1878 01:25:20,465 --> 01:25:22,340 Neke važne savjete koji ti dečki zapravo žele 1879 01:25:22,340 --> 01:25:25,040 držati u mind-- tako tu je ova funkcija 1880 01:25:25,040 --> 01:25:27,770 nazvao atoi-- kao što sam želio reći, à trois. 1881 01:25:27,770 --> 01:25:29,520 Jasno je li to zapravo kako se to kaže. 1882 01:25:29,520 --> 01:25:32,510 No, sve to radi, to je unosom. 1883 01:25:32,510 --> 01:25:34,320 Ona pretvara niz u int. 1884 01:25:34,320 --> 01:25:37,490 Dakle predstavlja ASCII na sam cijeli broj. 1885 01:25:37,490 --> 01:25:40,310 To je samo pretvoriti ASCII Vrijednosti na cjelobrojne vrijednosti. 1886 01:25:40,310 --> 01:25:44,510 Tako zapamtite argv, na niz tu trgovinama sve svoje naredbe linija arguments-- 1887 01:25:44,510 --> 01:25:46,300 što ih sve pohranjuje kao žice. 1888 01:25:46,300 --> 01:25:50,010 I tako, ako želite biti u mogućnosti imaju jedan od njih postati broj, 1889 01:25:50,010 --> 01:25:52,750 ti si idući u morati koristiti ovu vrijednost ovdje. 1890 01:25:52,750 --> 01:25:56,690 >> Modulo, kao što smo pokriveno ranije u klasi danas, 1891 01:25:56,690 --> 01:25:59,550 omogućuje vam da imaju Ostatak god imate. 1892 01:25:59,550 --> 01:26:03,620 Dakle, ako imamo jako, jako velikom broju u cara, 1893 01:26:03,620 --> 01:26:06,117 što ako smo kraj od niza Vigenere? 1894 01:26:06,117 --> 01:26:08,450 Kako ćete biti u mogućnosti da se to zaokrenuti? 1895 01:26:08,450 --> 01:26:11,330 Ako sam pogodio z i želim ga vratiti na, 1896 01:26:11,330 --> 01:26:13,650 kako ću dobiti da bi zaokrenuti? 1897 01:26:13,650 --> 01:26:15,960 Vjerojatno želite koristiti modulo tu negdje. 1898 01:26:15,960 --> 01:26:19,190 >> Drugo, pregledavati oko Vaša knjižnica. ctype.h. 1899 01:26:19,190 --> 01:26:20,680 To je nova knjižnica imamo. 1900 01:26:20,680 --> 01:26:25,270 Naći ćete mnogo jako, jako korisne functions-- isupper, islower, 1901 01:26:25,270 --> 01:26:27,681 toupper, tolower, isalpha, i tako dalje. 1902 01:26:27,681 --> 01:26:30,680 Sve funkcije koje će biti vrlo korisno kada pokušavate shvatiti, 1903 01:26:30,680 --> 01:26:33,780 je ovaj lik malo slovo? 1904 01:26:33,780 --> 01:26:35,730 Kako pretvoriti ovo string na velika slova? 1905 01:26:35,730 --> 01:26:38,146 Sve ove stvari će biti vrlo, vrlo korisno za svoj pset. 1906 01:26:38,146 --> 01:26:42,720 1907 01:26:42,720 --> 01:26:45,500 U REDU. 1908 01:26:45,500 --> 01:26:49,644 >> Radno vrijeme od 8.00 do večeras 11:00 u učionici TEAL sutra 1909 01:26:49,644 --> 01:26:51,310 kao srijedu i četvrtak navečer. 1910 01:26:51,310 --> 01:26:53,280 Radno vrijeme u blagovaonici. 1911 01:26:53,280 --> 01:26:56,180 Visoko predlažemo vam dečki Sve početi odmah, 1912 01:26:56,180 --> 01:27:00,490 jer ne želim da se taj klinac koji četvrtak navečer ima problema 1913 01:27:00,490 --> 01:27:03,870 Slanjem pset a kao, ne znam što da radim. 1914 01:27:03,870 --> 01:27:05,870 Počeo sam, što sam završio, podnio sam. 1915 01:27:05,870 --> 01:27:09,737 Pokušajte dati sebi malo prostora, jer u kod problema uvijek dogoditi. 1916 01:27:09,737 --> 01:27:11,570 Vi želite biti sigurni koje se daju 1917 01:27:11,570 --> 01:27:14,810 puno vremena da bi mogli za dovršetak psets. 1918 01:27:14,810 --> 01:27:15,310 Cool. 1919 01:27:15,310 --> 01:27:16,720 Ja ću objesiti ovdje oko. 1920 01:27:16,720 --> 01:27:18,226 >> PUBLIKA: Je li to on-line već? 1921 01:27:18,226 --> 01:27:20,850 ANDI PENG: Ne znam je li to Već na internetu, ali to će biti. 1922 01:27:20,850 --> 01:27:23,500 Ja ću objesiti oko ovdje ako bilo tko ima kakvih pitanja već. 1923 01:27:23,500 --> 01:27:25,390 Hvala što ste došli. 1924 01:27:25,390 --> 01:27:27,105