1 00:00:00,000 --> 00:00:02,880 >> [Glazbom] 2 00:00:02,880 --> 00:00:10,580 3 00:00:10,580 --> 00:00:13,500 >> SPEAKER 1: Ovo je CS50 i ovo je početak tjedna dva. 4 00:00:13,500 --> 00:00:18,400 Dakle, neka je roniti pravo u nešto da je lud, da tako kažemo. 5 00:00:18,400 --> 00:00:24,015 Dakle, ovdje je CS50 IDE i imam zaustavio unaprijed ovo screen-- prokleto 6 00:00:24,015 --> 00:00:25,070 to. 7 00:00:25,070 --> 00:00:25,760 Spojler alert. 8 00:00:25,760 --> 00:00:26,260 U redu. 9 00:00:26,260 --> 00:00:29,060 Ja sam se zaustavio ovaj zaslon ovdje, koji ima vrlo jednostavan program. 10 00:00:29,060 --> 00:00:32,659 Ako svitak dolje, većina to je samo komentira, 11 00:00:32,659 --> 00:00:36,730 ali ovdje u redovima 13 do 17 imamo program. 12 00:00:36,730 --> 00:00:40,580 >> To je sintaktički vrijede, što znači da ako Ja ga sastaviti, to će sastaviti i trčanje, 13 00:00:40,580 --> 00:00:41,920 ali je lud. 14 00:00:41,920 --> 00:00:47,330 Ovaj program tvrdi u komentarima do vrha da bi trebalo ispisati 10 zvijezda, 15 00:00:47,330 --> 00:00:48,870 ali to ne čini. 16 00:00:48,870 --> 00:00:53,290 I na temelju svog iskustva, ili će uskoro biti iskustvo s C, 17 00:00:53,290 --> 00:00:56,820 može li logično razabrati zašto se to, zapravo, lud? 18 00:00:56,820 --> 00:00:57,804 Da? 19 00:00:57,804 --> 00:00:59,220 PUBLIKA: To ide od nula do 10. 20 00:00:59,220 --> 00:01:01,884 To je 11 iteracija. 21 00:01:01,884 --> 00:01:02,550 SPEAKER 1: Da. 22 00:01:02,550 --> 00:01:06,030 Dakle, to se događa od nule kroz te jednak 10, 23 00:01:06,030 --> 00:01:08,140 što je naravno 11 ponavljanja. 24 00:01:08,140 --> 00:01:10,020 Dakle, to će ispisa, doista, 11 zvjezdica. 25 00:01:10,020 --> 00:01:13,040 Dakle, informatika konvencije u većini programskih jezika 26 00:01:13,040 --> 00:01:15,270 je, doista, samo da početi brojati od nule, 27 00:01:15,270 --> 00:01:18,800 ali brojati do, ali ne preko Vrijednost da zapravo stalo. 28 00:01:18,800 --> 00:01:21,216 >> Sada, to je jedna stvar koja Potrebno je malo koristi za dobivanje 29 00:01:21,216 --> 00:01:25,350 pa ispočetka, osmišljen kao što je to za ne programere ili ne računalo 30 00:01:25,350 --> 00:01:28,070 Znanstvenici i za djecu uglavnom, je dizajniran da ima 31 00:01:28,070 --> 00:01:29,570 počnete brojati općenito na jedan. 32 00:01:29,570 --> 00:01:30,277 I to je u redu. 33 00:01:30,277 --> 00:01:33,110 Vi apsolutno može početi brojati na jednom ako je to udobnije. 34 00:01:33,110 --> 00:01:37,210 I brojati do i preko 10, ali shvatit ćete posebno ovaj tjedan 35 00:01:37,210 --> 00:01:39,950 i dalje da je samo tako mnoge stvari u programiranju 36 00:01:39,950 --> 00:01:42,465 Pretpostavljam da je 0 je prvi znamenkasti s kojom ste strani, 37 00:01:42,465 --> 00:01:45,590 da ćeš biti lakše samo da se u ovom naviku paljenja 38 00:01:45,590 --> 00:01:49,490 od nule i brojanje do vrijednosti vam je stalo do sada od 39 00:01:49,490 --> 00:01:49,990 dobiti ići. 40 00:01:49,990 --> 00:01:50,990 >> Dakle, to je fiksna to. 41 00:01:50,990 --> 00:01:53,670 Promijenili smo manje ili jednak samo manje od. 42 00:01:53,670 --> 00:01:56,050 Idemo pogledati drugi primjer ovdje. 43 00:01:56,050 --> 00:01:59,585 >> Dakle, ovaj program također tvrdi u svojoj Komentari na vrhu koji bi trebao ispisati 44 00:01:59,585 --> 00:02:02,260 deset zvijezde, ali to ne čini. 45 00:02:02,260 --> 00:02:05,540 Što je bug ovdje? 46 00:02:05,540 --> 00:02:07,930 >> Dakle, what-- i ispričavam se, budimo jasni. 47 00:02:07,930 --> 00:02:08,610 10 zvjezdica. 48 00:02:08,610 --> 00:02:11,644 Jedan po retku, ali to ne čini. 49 00:02:11,644 --> 00:02:14,810 Dakle, u stvari, neka mi ići naprijed i sastaviti ovo zato što je nešto manje 50 00:02:14,810 --> 00:02:16,900 jasno na temelju tog opisa. 51 00:02:16,900 --> 00:02:18,720 Pusti me u naš izvor imenik. 52 00:02:18,720 --> 00:02:25,110 Napravite Buggy jednu točku Slash, lud jedan. 53 00:02:25,110 --> 00:02:28,680 OK, vidim 11 zvijezde, koje je još uvijek problematično, 54 00:02:28,680 --> 00:02:30,090 ali oni su također sve u jednoj liniji. 55 00:02:30,090 --> 00:02:31,500 Što je problem ovdje? 56 00:02:31,500 --> 00:02:32,339 Da. 57 00:02:32,339 --> 00:02:33,255 PUBLIKA: [nečujan]. 58 00:02:33,255 --> 00:02:36,194 59 00:02:36,194 --> 00:02:36,860 SPEAKER 1: Da. 60 00:02:36,860 --> 00:02:40,210 Dakle, ovo je suptilnost koju svibanj podsjećaju me što ukratko spomenuti. 61 00:02:40,210 --> 00:02:42,793 Iako sve izgleda lijepa, i to lijepo je razvedena, 62 00:02:42,793 --> 00:02:45,850 i to vrsta izgleda Scratch-poput u toj liniji 16 i 17, 63 00:02:45,850 --> 00:02:47,600 Doista, razvedena pod kako za petlju. 64 00:02:47,600 --> 00:02:48,400 To je nebitno. 65 00:02:48,400 --> 00:02:50,460 Računalo ne znaju ili vide bijeli prostor. 66 00:02:50,460 --> 00:02:52,910 Bijeli prostor je samo za nas ljude, stilski. 67 00:02:52,910 --> 00:02:57,010 Računalo ne znate kada imate vitičastih zagrada, što bi, doista, 68 00:02:57,010 --> 00:02:58,280 riješili ovaj problem. 69 00:02:58,280 --> 00:03:02,350 >> Dakle, ako smo zapravo otišli i izrijekom stavio u tim vitičastih zagrada 70 00:03:02,350 --> 00:03:05,220 kako bi riješili ovaj problem što jasno kompilator 71 00:03:05,220 --> 00:03:07,930 da sam zapravo žele izvršiti dvije linije koda opet, 72 00:03:07,930 --> 00:03:09,220 i opet, i opet. 73 00:03:09,220 --> 00:03:11,680 No, ono što je temeljno objašnjenje? 74 00:03:11,680 --> 00:03:12,180 Pravo? 75 00:03:12,180 --> 00:03:15,260 Mi ne strogo potrebno vitičastih zagrada svih vremena, 76 00:03:15,260 --> 00:03:18,210 iako je vjerojatno najbolje praksa da se u tu naviku svejedno 77 00:03:18,210 --> 00:03:20,878 iako dodaje dva likovi na kodu. zašto? 78 00:03:20,878 --> 00:03:22,380 >> PUBLIKA: [nečujan]? 79 00:03:22,380 --> 00:03:24,630 SPEAKER 1: Da, tako je to drugo rješenje uopce. 80 00:03:24,630 --> 00:03:25,130 Pravo? 81 00:03:25,130 --> 00:03:28,250 Pogotovo ako se na prvi pogled ne znate stvarno poštovati ono što se događa. 82 00:03:28,250 --> 00:03:31,070 Pa, sigurno smo mogli samo učiniti dvije stvari odjednom 83 00:03:31,070 --> 00:03:32,710 i samo bi se izbjeglo problem uopce. 84 00:03:32,710 --> 00:03:36,080 I to je u redu, ali sada, za današnje potrebe, što 85 00:03:36,080 --> 00:03:38,200 je objašnjenje za bug? 86 00:03:38,200 --> 00:03:39,810 Zašto su svi ti zvijezde na jednoj liniji? 87 00:03:39,810 --> 00:03:40,806 Da? 88 00:03:40,806 --> 00:03:43,296 >> PUBLIKA: Čini se da, ako imate jednu liniju koda, 89 00:03:43,296 --> 00:03:46,649 možete to učiniti bez njih. 90 00:03:46,649 --> 00:03:47,440 SPEAKER 1: Točno. 91 00:03:47,440 --> 00:03:48,750 Ovo je samo ljudska konvencija. 92 00:03:48,750 --> 00:03:50,750 Ljudi shvaćaju da je to malo neugodno ili dosadan 93 00:03:50,750 --> 00:03:53,470 morati staviti vitičastih zagrada sve vremena, ako sve što želite učiniti 94 00:03:53,470 --> 00:03:55,090 je izvršiti jednu liniju koda. 95 00:03:55,090 --> 00:03:57,660 Dakle, ljudi odlučili neke Vrijeme prije da je to u redu. 96 00:03:57,660 --> 00:04:01,180 Ako želite staviti sve svoje petlje na samo taj jedan redak kao što je ovaj, 97 00:04:01,180 --> 00:04:04,030 to je u redu s jednim točka-zarez na kraju. 98 00:04:04,030 --> 00:04:07,210 Ali možete učiniti samo jedan takav crta bez vitičastih zagrada. 99 00:04:07,210 --> 00:04:09,900 >> Dakle, kada je CS50 stil vodič kao što će vam ukazati na, 100 00:04:09,900 --> 00:04:11,980 vidjet ćete da se općenito to je dobar običaj 101 00:04:11,980 --> 00:04:14,920 da se u ovo dok ste vrlo udobna lutanja 102 00:04:14,920 --> 00:04:17,404 od tih vrsta konvencija i radiš svoj vlastiti stvar. 103 00:04:17,404 --> 00:04:18,820 Tako dugo dok ste sebi dosljedan. 104 00:04:18,820 --> 00:04:21,540 A mi ćemo govoriti više o stil malo kasnije danas. 105 00:04:21,540 --> 00:04:23,200 >> Dakle, neka mi se otvori jedan drugi program. 106 00:04:23,200 --> 00:04:24,930 Naravno, trebamo popraviti da 10 kao dobro. 107 00:04:24,930 --> 00:04:32,470 Dopustite mi ići naprijed i pisati pravi Brzo program koji ću nazvati, 108 00:04:32,470 --> 00:04:38,140 recimo, loop točke C. Dakle, petlje dot C. A u petlji dot C ću imati, 109 00:04:38,140 --> 00:04:41,970 uključuju standardni I / O točka H int glavni prazninu. 110 00:04:41,970 --> 00:04:44,020 I sada neka je samo to, doista, petlja. 111 00:04:44,020 --> 00:04:46,020 Dakle, 4 int sam dobiva nula. 112 00:04:46,020 --> 00:04:48,660 I je manje od, recimo, 50 godina. 113 00:04:48,660 --> 00:04:49,950 I plus, plus. 114 00:04:49,950 --> 00:04:53,350 I onda ovdje neka je ići naprijed i učiniti ispis F. 115 00:04:53,350 --> 00:04:56,400 A onda želim ispisati I a nova linija, točka i zarez. 116 00:04:56,400 --> 00:05:00,015 >> A to bi trebalo ispisati sve brojevi od nula do 50? 117 00:05:00,015 --> 00:05:02,900 118 00:05:02,900 --> 00:05:03,680 Nekoliko glava kima glavom. 119 00:05:03,680 --> 00:05:04,270 Nekoliko br. 120 00:05:04,270 --> 00:05:05,339 Što je već bug? 121 00:05:05,339 --> 00:05:06,630 Što je jednostavna pogreška sam napravio? 122 00:05:06,630 --> 00:05:07,170 Da. 123 00:05:07,170 --> 00:05:08,544 >> PUBLIKA: [nečujan]. 124 00:05:08,544 --> 00:05:09,210 SPEAKER 1: Da. 125 00:05:09,210 --> 00:05:11,520 Dakle, iako izgleda kao što je to ono što ja namjeravam, 126 00:05:11,520 --> 00:05:13,920 podsjetiti da je i samo ASCII znakova. 127 00:05:13,920 --> 00:05:14,955 >> Dakle, ako ja kažem, print "I." 128 00:05:14,955 --> 00:05:16,670 To doslovno će I. ispis Dakle, ako sam 129 00:05:16,670 --> 00:05:20,030 žele plug-in rezervirano mjesto Vrijednost sam zapravo trebate učiniti 130 00:05:20,030 --> 00:05:22,630 a zatim plug-u Vrijednost I. dinamički. 131 00:05:22,630 --> 00:05:25,200 Inače Samo ću se dobivate 50 I je na zaslonu. 132 00:05:25,200 --> 00:05:28,140 >> Dakle, neka mi ići naprijed i čine ovu petlju, pokrenite ga, 133 00:05:28,140 --> 00:05:30,650 i, doista, ćemo imati sve put kroz 49 godina. 134 00:05:30,650 --> 00:05:34,140 A ako sam pomicanje natrag u vrijeme vidim broj nula na početku. 135 00:05:34,140 --> 00:05:36,050 >> Pa, što ako ja vrsta zeznuo? 136 00:05:36,050 --> 00:05:37,800 Što ako sam to učiniti? 137 00:05:37,800 --> 00:05:40,120 Samo zato što ja ne razmišljam. 138 00:05:40,120 --> 00:05:40,970 Što je ovaj program. 139 00:05:40,970 --> 00:05:43,970 Nakon što ponovno sastaviti i trčanje, učiniti logično? 140 00:05:43,970 --> 00:05:44,870 >> PUBLIKA: Ništa. 141 00:05:44,870 --> 00:05:45,661 >> SPEAKER 1: Ništa. 142 00:05:45,661 --> 00:05:47,156 Zašto je to? 143 00:05:47,156 --> 00:05:49,124 >> PUBLIKA: Ja dizajniran za nulu. 144 00:05:49,124 --> 00:05:51,899 Dakle, uvjet je lažna. 145 00:05:51,899 --> 00:05:52,940 SPEAKER 1: Da, točno. 146 00:05:52,940 --> 00:05:55,110 Sve kod je ispravan, sintaktički. 147 00:05:55,110 --> 00:05:57,310 To će sastaviti, ovaj kod će raditi, ali to nije 148 00:05:57,310 --> 00:06:00,110 učiniti ništa korisno jer ja sam inicijalizirati na nulu. 149 00:06:00,110 --> 00:06:02,240 Zatim smo provjeriti je sam veći od 50? 150 00:06:02,240 --> 00:06:03,810 Očito, ne, to nije. 151 00:06:03,810 --> 00:06:05,760 Tako se petlja nikad ne izvršava na sve. 152 00:06:05,760 --> 00:06:09,580 >> Što ako smo nešto učiniti malo osvrće? 153 00:06:09,580 --> 00:06:12,890 Dakle, što ako mi se sviđa int sam dobiva nula. 154 00:06:12,890 --> 00:06:15,640 I sada neka mi koristiti dok petlje, što je još jedan uvjet. 155 00:06:15,640 --> 00:06:21,810 I dok sam rekao, dok sam je veći od ili jednak nuli, a onda u Ovdje sam 156 00:06:21,810 --> 00:06:26,070 ići naprijed i spremiti datoteku, napravite petlju. 157 00:06:26,070 --> 00:06:27,070 I ja sam o tome da ga pokrenuti. 158 00:06:27,070 --> 00:06:30,230 Što ću vidjeti Vrijeme u while petlji? 159 00:06:30,230 --> 00:06:30,852 Da. 160 00:06:30,852 --> 00:06:32,120 >> PUBLIKA: beskonačnu petlju? 161 00:06:32,120 --> 00:06:35,360 >> SPEAKER 1: beskonačnu petlju? 162 00:06:35,360 --> 00:06:36,662 Da, i zašto? 163 00:06:36,662 --> 00:06:38,120 PUBLIKA: Zato što je to uvijek nula. 164 00:06:38,120 --> 00:06:38,786 SPEAKER 1: Da. 165 00:06:38,786 --> 00:06:40,100 Dakle, ja se inicijalizira kao nula. 166 00:06:40,100 --> 00:06:44,470 Naravno da je uvijek veća od ili jednak 0, kao rezultat. 167 00:06:44,470 --> 00:06:46,460 Dakle, ja samo idem vidjeti beskonačno. 168 00:06:46,460 --> 00:06:49,850 I sad, ovaj je došao do jednom ili dvaput na glavama tijeku je. 169 00:06:49,850 --> 00:06:52,417 Što se događa kada ima beskonačnu petlju? 170 00:06:52,417 --> 00:06:53,314 >> PUBLIKA: Kontrola C 171 00:06:53,314 --> 00:06:53,980 SPEAKER 1: Da. 172 00:06:53,980 --> 00:06:56,250 Dakle Kontrola C na kraju će odgovoriti. 173 00:06:56,250 --> 00:06:59,520 Nažalost, mi smo ispisati milijuni i milijuni nule već 174 00:06:59,520 --> 00:07:01,520 pa računalo ima vrsta dobio ispred mene. 175 00:07:01,520 --> 00:07:03,394 Dakle, to će ignorirati mi za malo. 176 00:07:03,394 --> 00:07:06,560 Ali ako samo pritisnite Upravljačka Ci malo puta na vašem Mac ili PC tipkovnice, 177 00:07:06,560 --> 00:07:08,790 na kraju bi trebao, zaista, prekinuti. 178 00:07:08,790 --> 00:07:11,770 A ako ne, mi ćemo vam pokazati neke Tehnike Nedugo gdje vas 179 00:07:11,770 --> 00:07:14,850 može zapravo prisilno ubiti programe, nalik na Windows i Mac OS, 180 00:07:14,850 --> 00:07:15,562 ako je potrebno. 181 00:07:15,562 --> 00:07:16,770 No, pokušajmo nešto drugo. 182 00:07:16,770 --> 00:07:19,895 Idemo zapravo povećajte I. Je to još uvijek će biti beskonačan? 183 00:07:19,895 --> 00:07:22,870 184 00:07:22,870 --> 00:07:25,140 Dopustite mi da to trčanje. 185 00:07:25,140 --> 00:07:27,090 A sada možete vrsta vidjeti što se događa. 186 00:07:27,090 --> 00:07:30,140 To je, također, beskonačnu petlju. 187 00:07:30,140 --> 00:07:33,080 Ali ovo je malo trik pitanje. 188 00:07:33,080 --> 00:07:35,460 Hoće li ovo ispisati brojeve zauvijek? 189 00:07:35,460 --> 00:07:36,647 >> PUBLIKA: Ne 190 00:07:36,647 --> 00:07:37,230 SPEAKER 1: Ne 191 00:07:37,230 --> 00:07:37,620 Zašto? 192 00:07:37,620 --> 00:07:38,820 Čuo sam neke br ovamo. 193 00:07:38,820 --> 00:07:41,859 Someone-- Da. 194 00:07:41,859 --> 00:07:44,275 PUBLIKA: Nemate dovoljno bitovi stvarno zadržati ide. 195 00:07:44,275 --> 00:07:44,730 SPEAKER 1: U redu. 196 00:07:44,730 --> 00:07:46,000 Dakle, nemam dovoljno bitovi zadržati ide. 197 00:07:46,000 --> 00:07:47,124 Dakle, što će se dogoditi? 198 00:07:47,124 --> 00:07:49,320 To jednostavno će prestati? 199 00:07:49,320 --> 00:07:52,542 >> PUBLIKA: U nekom trenutku to će zatvoriti the-- 200 00:07:52,542 --> 00:07:54,500 SPEAKER 1: To će zatvorena petlje prema dolje, ali zašto? 201 00:07:54,500 --> 00:07:57,950 Što će se dogoditi na Vrlo kraj svojih granica? 202 00:07:57,950 --> 00:07:58,479 Da? 203 00:07:58,479 --> 00:08:00,520 PUBLIKA: To će ciklus natrag na negativne brojeve. 204 00:08:00,520 --> 00:08:02,900 SPEAKER 1: negativne brojeve, ili ako smo bili samo liječenje pozitivni, 205 00:08:02,900 --> 00:08:03,570 nula najmanje. 206 00:08:03,570 --> 00:08:04,550 Tako da, apsolutno. 207 00:08:04,550 --> 00:08:08,059 Sjetite se da smo vidjeli posljednji put da ako povećajte vaš bita previše puta, 208 00:08:08,059 --> 00:08:10,225 a vi Tu prije overflow kapacitet vašeg int 209 00:08:10,225 --> 00:08:13,058 ili što god tip podataka je, ti si će zaokrenuti, vjerojatno, 210 00:08:13,058 --> 00:08:14,020 Dva negativnih brojeva. 211 00:08:14,020 --> 00:08:16,644 Ili, ako ste naveli da je vaš Raspon bi trebao biti pozitivan samo 212 00:08:16,644 --> 00:08:18,560 što možete učiniti, ali nismo vidjeli da ipak, 213 00:08:18,560 --> 00:08:21,420 možda ćete završiti barem vratiti na nulu. 214 00:08:21,420 --> 00:08:22,410 Iako, zapravo da. 215 00:08:22,410 --> 00:08:24,320 U tom slučaju, negativni brojevi, u kojem slučaju 216 00:08:24,320 --> 00:08:26,870 petlje će se prekinuti jer ja ne, u stvari, 217 00:08:26,870 --> 00:08:29,220 veća od ili jednaka nula ako je negativan. 218 00:08:29,220 --> 00:08:31,780 >> Dakle, na žalost, kako je dugo će mi morati čekati? 219 00:08:31,780 --> 00:08:35,490 Sada smo do ono, 2 milijuna-ish? 220 00:08:35,490 --> 00:08:37,705 Mi smo kao 2 milijarde, ćemo morati pričekati 221 00:08:37,705 --> 00:08:39,330 dok zapravo možemo vidjeti ovaj simptom. 222 00:08:39,330 --> 00:08:46,200 Ali možemo ga vidjeti malo brže, maybe-- neka je vidjeti ako mi može prekinuti. 223 00:08:46,200 --> 00:08:46,700 Ajde. 224 00:08:46,700 --> 00:08:49,500 225 00:08:49,500 --> 00:08:51,331 Čak su i izbornici su se polako pojavljuju. 226 00:08:51,331 --> 00:08:51,830 U redu. 227 00:08:51,830 --> 00:08:54,270 Dakle, mi ćemo se vratiti na to prije dugo. 228 00:08:54,270 --> 00:08:56,320 To je dobra time-- ga osuditi, štenci. 229 00:08:56,320 --> 00:08:58,280 >> To je dobro vrijeme za neke najave. 230 00:08:58,280 --> 00:09:01,225 Dakle, ako ste možda željeli da se uključe u YHack, 231 00:09:01,225 --> 00:09:03,600 koji je događaj bio sponzoriran od strane naših prijatelja na Yaleu. 232 00:09:03,600 --> 00:09:05,990 I doista, neki od kolegija je TFS na Yaleu su uključeni s tim. 233 00:09:05,990 --> 00:09:08,610 YHack je međunarodna hack-a-Thon domaćin i održava 234 00:09:08,610 --> 00:09:12,395 na Yaleu, okupiti 1.500 kao nepristran hakera i kreativaca svih 235 00:09:12,395 --> 00:09:13,120 diljem svijeta. 236 00:09:13,120 --> 00:09:14,610 Ako je to od interesa, pogledati ovdje. 237 00:09:14,610 --> 00:09:17,401 Ako je ovo previše kratko na zaslon, pogledajte današnje slajdova 238 00:09:17,401 --> 00:09:19,622 za URL za yhack.org. 239 00:09:19,622 --> 00:09:21,080 Dakle, i nekoliko brzih najave. 240 00:09:21,080 --> 00:09:24,410 Dakle, službeno će započeti dijelovi sljedeći tjedan i ovdje iu New Haven. 241 00:09:24,410 --> 00:09:27,660 Imajte na umu da ćete biti uzimajući jedan e kasnije ovaj vikend najvjerojatnije. 242 00:09:27,660 --> 00:09:29,390 Potrebno je dugo vremena za CS50 Odlomak, 243 00:09:29,390 --> 00:09:32,080 s obzirom na sve ljude u klasa i svi kretanje. 244 00:09:32,080 --> 00:09:34,871 I svi Nastava Fellows ' rasporedi su uvijek kruto, 245 00:09:34,871 --> 00:09:38,110 ali Stay tuned za e-mail i ako je potrebno biti, možete ponovno odjeljak tamo nakon. 246 00:09:38,110 --> 00:09:39,580 >> Study.cs50.net. 247 00:09:39,580 --> 00:09:43,280 Dakle, čak i ako ste stalni sudionik na dijelove, shvatiti da su gotovo svi 248 00:09:43,280 --> 00:09:46,786 od resursa koristimo u dijelovima javno su dostupni na CS50 249 00:09:46,786 --> 00:09:48,460 Studija na adresi ovdje. 250 00:09:48,460 --> 00:09:51,630 Dakle, ako ste ikada željeli ponovo pregled materijal iz sekcije, ili čitati unaprijed, 251 00:09:51,630 --> 00:09:54,170 ili ne može učiniti neki tjedan, shvatiti da uzorak slajdova, 252 00:09:54,170 --> 00:09:58,210 i problema, i definicije, i još su svi tamo kao dobro. 253 00:09:58,210 --> 00:10:00,645 >> Radno vrijeme nastaviti i danas, i sutra, srijeda, 254 00:10:00,645 --> 00:10:03,020 i četvrtak provjerili tečaj je Web stranica za raspored. 255 00:10:03,020 --> 00:10:05,690 >> I također, sada pokreće Danas je CS50 Raspravite. 256 00:10:05,690 --> 00:10:09,230 Dakle, ako i kada imate pitanja za međusobno ili za osoblje tijeku je, 257 00:10:09,230 --> 00:10:12,099 i općenito rade na neki problem setu, 258 00:10:12,099 --> 00:10:15,015 shvatite da to nije nužno moraju okrenuti na čovjeka sljedeći vas. 259 00:10:15,015 --> 00:10:17,810 Ako nema nikoga, možete doprijeti do nas i kolege 260 00:10:17,810 --> 00:10:19,890 online putem CS50 Raspravite. 261 00:10:19,890 --> 00:10:22,600 Dakle, ovo je rasprava odbora za tečaj, 262 00:10:22,600 --> 00:10:24,550 i shvatiti da je to je možda najbolji 263 00:10:24,550 --> 00:10:28,480 mjesto za početak kada imate Pitanja kada je izvan radnog vremena 264 00:10:28,480 --> 00:10:29,470 posebno. 265 00:10:29,470 --> 00:10:31,070 >> Paketi će se pokrenuti ovaj tjedan previše. 266 00:10:31,070 --> 00:10:33,170 Na Vatra i led U New Havenu [nečujan]. 267 00:10:33,170 --> 00:10:35,379 Bacite pogled na tečaj a web stranice kako bi RSVP. 268 00:10:35,379 --> 00:10:36,753 Prvi došao, prvi služiti za to. 269 00:10:36,753 --> 00:10:39,380 Ako ne dobijete u ovom tjednu ćemo učiniti te je većina svakog petka 270 00:10:39,380 --> 00:10:40,400 tijekom trajanja. 271 00:10:40,400 --> 00:10:41,830 >> U redu, a sada riječ o ocjenjivanju. 272 00:10:41,830 --> 00:10:44,690 Osobito što ulazimo problema postavljen jedan, koji je ovaj tjedan, 273 00:10:44,690 --> 00:10:46,670 i bez problema postaviti dva i nakon toga. 274 00:10:46,670 --> 00:10:51,680 Kako idemo o ocjenjivanju P seta i ocjenjivanje kvalitete istih? 275 00:10:51,680 --> 00:10:55,560 Dakle, to je četiri sjekirama koje koristimo u CS50, a oni su to četiri ovdje. 276 00:10:55,560 --> 00:10:59,200 >> Opseg, koji bilježi na numeričkom Osnova koliko je P skup 277 00:10:59,200 --> 00:10:59,860 si se borila. 278 00:10:59,860 --> 00:11:02,890 To otprilike odgovara se truda, a to je naš način snimanja 279 00:11:02,890 --> 00:11:05,190 Jeste li isprobati pola P set, sve skupa P. 280 00:11:05,190 --> 00:11:08,860 Ovo je jednostavan jedan dobiti savršen rezultati na ako ništa, dapače, 281 00:11:08,860 --> 00:11:11,020 pokušajte svaki aspekt P skupa. 282 00:11:11,020 --> 00:11:12,010 Dakle, imajte to na umu. 283 00:11:12,010 --> 00:11:13,420 >> Ispravnost je upravo to. 284 00:11:13,420 --> 00:11:17,760 Je li vaš kod rada kao specifikaciji kao i otopine uzorka štabove ' 285 00:11:17,760 --> 00:11:19,730 ukazuju na to da je vaš broj treba, u stvari, radi. 286 00:11:19,730 --> 00:11:23,260 Provjerite 50, ako niste susreli Još je u P postaviti jednu specifikaciju 287 00:11:23,260 --> 00:11:25,060 i općenito će vam dati da / ne odgovore 288 00:11:25,060 --> 00:11:26,518 je li tvoj broj je ispravan. 289 00:11:26,518 --> 00:11:30,680 Barem tako daleko idemo Da bi se procijenila je na temelju ispitivanja 290 00:11:30,680 --> 00:11:32,430 kako smo pokrenuti u tom programu. 291 00:11:32,430 --> 00:11:33,850 >> Dizajn je puno više subjektivna. 292 00:11:33,850 --> 00:11:35,994 Ovo je način kako dobro napisan je vaš broj. 293 00:11:35,994 --> 00:11:38,410 A to je nešto što ćete dobiti bolje s vremenom, 294 00:11:38,410 --> 00:11:41,201 i to je nešto što ćemo pružiti više kvalitativne povratne informacije o. 295 00:11:41,201 --> 00:11:43,350 I po dizajnu mogao bih znači prije dugo 296 00:11:43,350 --> 00:11:47,650 Možda ćete biti u iskušenju u nekom P postavljen učiniti nešto loopingly, 297 00:11:47,650 --> 00:11:51,590 ali da možda tri ili četiri, ili pet ugniježđena Fore petlje ili ugniježđena a 298 00:11:51,590 --> 00:11:52,090 petlje. 299 00:11:52,090 --> 00:11:54,130 To bi općenito trebalo početi da vas dodvoravanje 300 00:11:54,130 --> 00:11:56,070 i općenito će biti smatra lošeg dizajna. 301 00:11:56,070 --> 00:11:59,490 A vi ćete početi vidjeti u razredu i iz klase dobrih načina stvari, 302 00:11:59,490 --> 00:12:02,920 loše načine obavljanja stvari koje Možda svi biti točne, ali ne i 303 00:12:02,920 --> 00:12:04,304 nužno dobro osmišljen. 304 00:12:04,304 --> 00:12:05,220 Kao pisanje eseja. 305 00:12:05,220 --> 00:12:08,100 Možda ćete biti u mogućnosti staviti riječi na stranica koje su gramatički ispravan, 306 00:12:08,100 --> 00:12:10,016 ali esej ili Teza da su u samo 307 00:12:10,016 --> 00:12:11,810 potpuno nesuvislo ili unpersuasive. 308 00:12:11,810 --> 00:12:15,930 I tako da bi mogli biti analogni u napisano svijet lošeg ili dobrog dizajna. 309 00:12:15,930 --> 00:12:18,490 >> I stil, također, prilično subjektivan. 310 00:12:18,490 --> 00:12:20,060 Ali barem očekujemo dosljednost. 311 00:12:20,060 --> 00:12:21,480 Ovo je način kako lijepa je tvoj broj. 312 00:12:21,480 --> 00:12:22,840 Stvari su lijepo razvedena? 313 00:12:22,840 --> 00:12:26,600 Jesu li vaše varijable dobro imenovan / Jesu li svi Vaše zagradi i vitičastih zagrada 314 00:12:26,600 --> 00:12:27,920 usklađeni kao što bi trebao biti? 315 00:12:27,920 --> 00:12:31,490 Mi nemamo CS50 stil vodič kao problem Skup će vas uputiti na. 316 00:12:31,490 --> 00:12:33,730 Oni su udobnije dobrodošli zalutao od onoga 317 00:12:33,730 --> 00:12:35,771 tako dugo dok ste sebi dosljedan. 318 00:12:35,771 --> 00:12:38,020 I to je, također, je pouka ćemo pojačati u odjeljku. 319 00:12:38,020 --> 00:12:40,990 Dakle, ako je sve to bilo malo brzo, shvatite P set i dijelovi 320 00:12:40,990 --> 00:12:42,900 će ići u više dubine prije dugo. 321 00:12:42,900 --> 00:12:45,490 >> No, općenito imamo vrlo malo kante za CS50. 322 00:12:45,490 --> 00:12:48,170 Rezultati su uglavnom na skali od jedan do tri, ili jedan do pet. 323 00:12:48,170 --> 00:12:50,836 Mi smo literally--, a ja ne mogu reći to je dovoljno u prvom tjednu. 324 00:12:50,836 --> 00:12:51,582 Tri je dobro. 325 00:12:51,582 --> 00:12:54,290 Dakle, iako, da, tri iz pet normalno, matematički, 326 00:12:54,290 --> 00:12:57,240 može biti 60 posto ili poput D minus. 327 00:12:57,240 --> 00:12:58,840 Tri je, u stvari, dobro. 328 00:12:58,840 --> 00:13:01,050 A, u stvari, očekujemo većina učenika u razredu 329 00:13:01,050 --> 00:13:04,280 krenuti termin oko dvojke i trojke i četvorke. 330 00:13:04,280 --> 00:13:05,510 Vjerojatno ne toliko petice. 331 00:13:05,510 --> 00:13:06,661 One ne previše. 332 00:13:06,661 --> 00:13:08,910 Ali općenito započeti u kako slatko mjesto u krivulje 333 00:13:08,910 --> 00:13:11,694 tako da kako vrijeme napreduje, tu je zapravo prostor za, 334 00:13:11,694 --> 00:13:13,360 i mogućnosti za napredovanje. gornji 335 00:13:13,360 --> 00:13:15,810 Dakle, nemojte ravnati tri sa 60%. 336 00:13:15,810 --> 00:13:17,410 To je mnogo više od toga apstraktno. 337 00:13:17,410 --> 00:13:20,160 Formula s kojima smo izračunali razreda se ponderiraju se kako slijedi. 338 00:13:20,160 --> 00:13:21,610 Ispravnost vrijedi najviše. 339 00:13:21,610 --> 00:13:23,010 Dizajn je vrijedan nešto manje. 340 00:13:23,010 --> 00:13:24,490 Stil vrijedi malo manje. 341 00:13:24,490 --> 00:13:26,950 A to je općenito bilježi količinu vremena 342 00:13:26,950 --> 00:13:29,800 koji ide u dobivanju svake tih osi samo pravo. 343 00:13:29,800 --> 00:13:31,810 Stil je super jednostavno, treba biti super brzi, 344 00:13:31,810 --> 00:13:33,657 ali to je jednostavno navika dobiti lijen oko. 345 00:13:33,657 --> 00:13:35,490 Ispravnost moglo potrajati što većinu vremena. 346 00:13:35,490 --> 00:13:38,990 Chasing dolje neki bug moć uzeti da je dodatni sat ili više, 347 00:13:38,990 --> 00:13:41,737 i tako, bodovanja konačnici snima to. 348 00:13:41,737 --> 00:13:43,070 I tako, sada ozbiljnije riječ. 349 00:13:43,070 --> 00:13:45,240 Budući CS50 ima razlika, za bolje 350 00:13:45,240 --> 00:13:47,440 ili još gore, da su možda i bolje upoznati 351 00:13:47,440 --> 00:13:50,065 s pitanjima akademske iskrenost od većine bilo koje druge naravno. 352 00:13:50,065 --> 00:13:53,720 I doista, to je moje znanje koje šaljemo više studenata, na žalost, 353 00:13:53,720 --> 00:13:56,690 za disciplinske svrhe svake godine, kao rezultat. Dakle, 354 00:13:56,690 --> 00:13:59,040 u interesu pune objavljivanje, neka je kratko razgovarati 355 00:13:59,040 --> 00:14:02,820 o tome što se događa u CS50, a ono što vam može učiniti, i što možete biti svjesni. 356 00:14:02,820 --> 00:14:05,530 >> Dakle, ovdje od 2007. godine, kada je Sam naslijedio tečaj, 357 00:14:05,530 --> 00:14:07,870 je broj slučajeva oglasa odbora. 358 00:14:07,870 --> 00:14:10,690 Oglas Uprava je Harvard stegovni tijelo, odnosno sada sude savjetnik, 359 00:14:10,690 --> 00:14:13,790 na koje se odnosi slučajevi kada studenti učiniti nešto da se tečaj je 360 00:14:13,790 --> 00:14:15,470 Nastavni plan smatra nerazumnim. 361 00:14:15,470 --> 00:14:17,220 Nema realnom obrazac ovdje, rekao bih. 362 00:14:17,220 --> 00:14:19,530 To mijenja preko godine, ali općenito 363 00:14:19,530 --> 00:14:22,262 to je broj slučajevima koji su navedeni. 364 00:14:22,262 --> 00:14:23,970 Broj studenata koji su uključeni? 365 00:14:23,970 --> 00:14:25,290 To također varira. 366 00:14:25,290 --> 00:14:27,930 Tipično, prošle godine Primjerice, 29 studenata na Harvardu 367 00:14:27,930 --> 00:14:29,740 bili oglasa ukrcali, da se tako izrazim. 368 00:14:29,740 --> 00:14:32,670 29 od njih sadašnjih studenata, Dvije od njih prije učenika, 369 00:14:32,670 --> 00:14:35,610 koji su u suradnji na neki način nepoželjinih. 370 00:14:35,610 --> 00:14:38,400 A onda u smislu postotak, to je obično oko 3% 371 00:14:38,400 --> 00:14:41,360 klase koja, na žalost, čini takve odluke. 372 00:14:41,360 --> 00:14:44,470 >> Dakle, prošle godine bilo je 3,5% od CS50 studentskog tijela 373 00:14:44,470 --> 00:14:46,820 da je oglas ukrcali, da se tako izrazim. 374 00:14:46,820 --> 00:14:48,490 >> Dakle, što se sve ovo znači? 375 00:14:48,490 --> 00:14:49,660 A što mi zapravo radimo? 376 00:14:49,660 --> 00:14:52,930 >> Dakle, za punu objavu, mi apsolutno, kao računalnih znanstvenika, 377 00:14:52,930 --> 00:14:57,620 imaju softverskih alata na raspolaganju i to je vrlo lako za nas, u pravednosti, 378 00:14:57,620 --> 00:15:00,980 da ostali prijatelji i kolege koji nisu prijelaz ove retke prijeći usporedbu 379 00:15:00,980 --> 00:15:04,570 svaki podnesak ove godine protiv svakoga podnošenje za proteklih osam godina. 380 00:15:04,570 --> 00:15:05,445 Softver čini. 381 00:15:05,445 --> 00:15:07,440 I na kraju je ljudske oči da odluče 382 00:15:07,440 --> 00:15:11,410 da li ili ne da se odnosi neki važno za daljnje rješavanje, 383 00:15:11,410 --> 00:15:12,737 ali softver svakako pomaže. 384 00:15:12,737 --> 00:15:15,820 A to, iskreno, zato što mislim imamo takve velike brojeve u CS50. 385 00:15:15,820 --> 00:15:18,540 To nije zato što CS50 studenti ili CS studenti više 386 00:15:18,540 --> 00:15:20,840 općenito bilo manje iskreni od svih drugih učenika, 387 00:15:20,840 --> 00:15:22,340 to je samo imamo alati i tehnike 388 00:15:22,340 --> 00:15:24,095 s kojima bi se ovaj prvi proći. 389 00:15:24,095 --> 00:15:25,960 >> Ali mi pripazi na sve ove stvari 390 00:15:25,960 --> 00:15:30,340 kao i, opet, u interesu priznajući posao koji je se stavi 391 00:15:30,340 --> 00:15:32,397 u po super većinom klasi. 392 00:15:32,397 --> 00:15:34,230 A politika tečaja u o akademskom poštenju, 393 00:15:34,230 --> 00:15:37,021 iako je gomila stavaka dugo s hrpom metaka 394 00:15:37,021 --> 00:15:40,490 koji su nadamo se vrlo čitljiva, to stvarno ne svode biti razumna. 395 00:15:40,490 --> 00:15:44,000 A najbolje pravilo da nudimo unutar nastavnog plana i programa 396 00:15:44,000 --> 00:15:46,020 je to, suština svih radova koji vam 397 00:15:46,020 --> 00:15:47,850 dostaviti ovaj tečaj moraju biti svoj vlastiti. 398 00:15:47,850 --> 00:15:51,510 I doista, u gotovo svim onima slučajevi iz za disciplinski postupak 399 00:15:51,510 --> 00:15:55,640 to je zbog nekog studenta kasno jedne Noć obično okrenuo svoju šifru 400 00:15:55,640 --> 00:15:58,130 više izravno na kolega, koji je zatim usvojen 401 00:15:58,130 --> 00:16:00,840 u cijelosti ili značajno istih. 402 00:16:00,840 --> 00:16:02,680 >> Ali stvarno, to je u redu. 403 00:16:02,680 --> 00:16:04,684 I doista, u uredu sati, gaćice od papira 404 00:16:04,684 --> 00:16:07,850 ste uručio ako dođe po uredu sati prošlog tjedna potiče koliko. 405 00:16:07,850 --> 00:16:09,710 Apsolutno si pozdravio i ohrabrio 406 00:16:09,710 --> 00:16:12,340 kako bi razgovarali o problemima seta s kolegama. 407 00:16:12,340 --> 00:16:14,461 Pomoći jedni drugima kada je kamen. 408 00:16:14,461 --> 00:16:17,710 No, općenito pravilo trebalo biti ovaj, "kada se traži pomoć, 409 00:16:17,710 --> 00:16:20,412 možete prikazati svoj kôd drugima, ali ne smijete vidjeti svoje. " 410 00:16:20,412 --> 00:16:22,620 Dakle, drugim riječima, ako sam bori sa nekim P set 411 00:16:22,620 --> 00:16:25,290 a ja sam sjedio u blagovaonici, ili u knjižnici, 412 00:16:25,290 --> 00:16:28,470 ili u učionici pokušavajući pronaći neku grešku, 413 00:16:28,470 --> 00:16:30,340 Ja sigurno mogu pokazati moj broj na mom zaslonu 414 00:16:30,340 --> 00:16:32,590 za osobu koja sjedi pored za mene, sigurno osoblje, 415 00:16:32,590 --> 00:16:33,600 ali i kolega. 416 00:16:33,600 --> 00:16:36,580 Ali ako je rješenje koje moj kolega ima je, oh, 417 00:16:36,580 --> 00:16:39,200 ovdje samo pogledati ono Ja sam, da prelazi granicu. 418 00:16:39,200 --> 00:16:43,120 >> I ja bih se usudio reći da je općenito razumna stvar za većinu ljudi 419 00:16:43,120 --> 00:16:45,030 vrlo lako uočiti liniju. 420 00:16:45,030 --> 00:16:47,195 I tako, vidjeti plan i program za više detalja. 421 00:16:47,195 --> 00:16:49,070 A sada jedan od više kontroverzne aspekte 422 00:16:49,070 --> 00:16:52,529 od CS50 nastavni plan i program koji sam mislio će govoriti u zaključku ovdje 423 00:16:52,529 --> 00:16:53,820 je tzv žaljenje klauzula. 424 00:16:53,820 --> 00:16:55,340 Dakle, ovdje je sve fine print. 425 00:16:55,340 --> 00:16:58,090 No, u cjelini smo vidjeli tijekom posljednjih 8 godina plus 426 00:16:58,090 --> 00:17:01,510 da, doista, gotovo sve CS50-a slučajeva akademskog nepoštenja 427 00:17:01,510 --> 00:17:04,390 bio rezultat samo loša odlučivanje kasno u noć. 428 00:17:04,390 --> 00:17:07,144 Rezultat stresa, rezultat nedostatka prehrane, nedostatak sna, 429 00:17:07,144 --> 00:17:09,560 Previše P setovi, previše rokovi, previše obveza. 430 00:17:09,560 --> 00:17:13,520 Stres izgradnji u 2:00, 3:00 AM, 04:00, uz rok nazire. 431 00:17:13,520 --> 00:17:17,020 Većina učenika u ovim slučajevima Upravo su loše odluke 432 00:17:17,020 --> 00:17:20,619 da bi jako dobro požaliti Sljedećeg jutra, ako ne minuta kasnije, 433 00:17:20,619 --> 00:17:25,490 ali do prošle godine nije bilo puštanje ventila da su ti učenici mogli 434 00:17:25,490 --> 00:17:29,140 zapravo otvaraju se zapravo obraćaju Problem na glavu bez straha od 435 00:17:29,140 --> 00:17:30,850 dignut s koledža uopce. 436 00:17:30,850 --> 00:17:33,260 >> I, doista, smo uveli ovo žaljenje klauzula prošle godine, 437 00:17:33,260 --> 00:17:35,970 koji kaže da ako u roku 72 sata, tri dana, 438 00:17:35,970 --> 00:17:37,970 prelaska neke linije propisane u nastavnom planu 439 00:17:37,970 --> 00:17:41,178 što se jave na jedan od kolegija je glava pa ćemo popričati o tome. 440 00:17:41,178 --> 00:17:43,720 Još uvijek su se neki ishod, suprotno onome što je 441 00:17:43,720 --> 00:17:44,990 je izvijestila da je suprotno. 442 00:17:44,990 --> 00:17:49,190 Još uvijek ima ishod koji je djelotvoran je, naravno, 443 00:17:49,190 --> 00:17:51,611 uglavnom nula p set ili uzimanje neke druge akcije, 444 00:17:51,611 --> 00:17:53,610 ali mi ćemo, doista, nositi ga sami i ne 445 00:17:53,610 --> 00:17:58,460 odnose se veći su rezultat bi moglo biti puno teža. 446 00:17:58,460 --> 00:18:01,810 I, doista, podijeliti ono što se dogodilo prošle godine, u osam godina, a sada 447 00:18:01,810 --> 00:18:04,950 devet godina, poučavanja ovaj tečaj a nakon petljaju s raznim kvržicama, 448 00:18:04,950 --> 00:18:07,866 okrećući razne brojčanika tijekom prošlosti nekoliko godina na akademske iskrenosti, 449 00:18:07,866 --> 00:18:11,920 i vidim po podacima bez ikakvog utjecaj, čak i govora kao što je ovaj, 450 00:18:11,920 --> 00:18:15,490 ovo je ruke dolje najbolje stvari uveli smo pedagoški 451 00:18:15,490 --> 00:18:18,090 u osam godina zajedno ove linije u CS50. 452 00:18:18,090 --> 00:18:21,010 >> 19 studenata je došao naprijed na temelju ovog klauzulu prošle godine. 453 00:18:21,010 --> 00:18:23,389 Uzeli smo nikakvu akciju za sedam od tih studenata, 454 00:18:23,389 --> 00:18:25,430 utvrđivanja da su nepotrebno zabrinuti. 455 00:18:25,430 --> 00:18:27,304 Oni ne, u stvari, prešla crtu, ali to 456 00:18:27,304 --> 00:18:28,960 Bio je to dobar razgovor da svejedno. 457 00:18:28,960 --> 00:18:31,190 Nulu smo 11 od rezultata koje su podnijeli. 458 00:18:31,190 --> 00:18:33,840 I u jednom slučaju smo pitao Student napraviti problem postaviti. 459 00:18:33,840 --> 00:18:36,370 Ali još uvjerljiviji, iskreno, s tim 19 razgovore, 460 00:18:36,370 --> 00:18:39,020 što je daleko više od mene Očekuje se da su, svaki od njih 461 00:18:39,020 --> 00:18:41,370 10 minuta do možda jednom sat vremena, također je donio 462 00:18:41,370 --> 00:18:44,920 na vidjelo niz pitanja u vezi obiteljske probleme, prijatelju pitanja, 463 00:18:44,920 --> 00:18:46,940 mentalno zdravstvene probleme da smo tada se bavi, 464 00:18:46,940 --> 00:18:50,200 s studenta blagoslov, stanovnik dekan, ili prijateljima, ili bilo koji drugi broj 465 00:18:50,200 --> 00:18:51,450 potpornih sredstava. 466 00:18:51,450 --> 00:18:54,454 Tako da je to daleko jedan od najboljih koristi od našeg vremena 467 00:18:54,454 --> 00:18:55,870 i jedan od najboljih intervencija. 468 00:18:55,870 --> 00:18:58,870 >> Sa taj je rekao, to nije imalo ulaz na stopu detekcije 469 00:18:58,870 --> 00:19:00,909 akademskog nepoštenja općenito. 470 00:19:00,909 --> 00:19:02,950 I usudio bih se reći, ovaj podskup studenata prošle godine 471 00:19:02,950 --> 00:19:06,350 bio demografske da smo prethodno nije identificiran prije 472 00:19:06,350 --> 00:19:08,140 i nikad nije povezan s prije. 473 00:19:08,140 --> 00:19:10,020 I tako, to su bili divne priče o uspjehu 474 00:19:10,020 --> 00:19:13,390 iako su donijeli na vidjelo manje od optimalnim uvjetima. 475 00:19:13,390 --> 00:19:15,640 Dakle, imajte to na umu kao što bi, možda, 476 00:19:15,640 --> 00:19:17,390 neke loše odluke sami kasno noću, 477 00:19:17,390 --> 00:19:20,151 da je pribjegavanje tako dugo kao student u toj situaciji 478 00:19:20,151 --> 00:19:23,400 Posjedujemo i istupiti, tako da možemo ima tu vrstu razgovora i nositi se s njom 479 00:19:23,400 --> 00:19:27,310 na način da je obrazovna, a zatim možemo ga staviti iza nas sljedeći dan. 480 00:19:27,310 --> 00:19:30,335 >> Dakle, bez dodatnih teškoća, uzeti rub od ovog razgovora, 481 00:19:30,335 --> 00:19:35,080 razlog štenci su do jest samo probiti led na trenutak. 482 00:19:35,080 --> 00:19:39,560 I na žalost, oni su svi spavaju, ali ono što je trebalo da se desi ovdje 483 00:19:39,560 --> 00:19:41,760 je svatko trebao do divljenja i vrsta opuštanje 484 00:19:41,760 --> 00:19:43,910 nakon toga vrlo teških razgovora. 485 00:19:43,910 --> 00:19:46,930 Ali očito sam stavio štenci na spavanje. 486 00:19:46,930 --> 00:19:50,070 Ali ako idete na CS50-a web stranice SLASH štenci, 487 00:19:50,070 --> 00:19:51,610 možete ih gledati cijeli dan. 488 00:19:51,610 --> 00:19:55,280 Posebno možda 02:00, ili 03:00, ili 04:00 po noći 489 00:19:55,280 --> 00:19:57,480 vidjeti malo stresno djelovanje tamo. 490 00:19:57,480 --> 00:19:58,805 Tako da je slash štenaca. 491 00:19:58,805 --> 00:20:01,700 492 00:20:01,700 --> 00:20:02,200 U redu. 493 00:20:02,200 --> 00:20:03,020 Nije li to zabavno? 494 00:20:03,020 --> 00:20:04,200 U REDU. 495 00:20:04,200 --> 00:20:07,140 Dakle, natrag na nekom računalu znanost, ako smijem. 496 00:20:07,140 --> 00:20:10,600 >> Dakle, podsjetiti da je zadnji put smo započeli gleda ne samo na glavni, što 497 00:20:10,600 --> 00:20:13,930 je zadana funkcija je kada zelena zastava kliknuli ekvivalent, 498 00:20:13,930 --> 00:20:16,999 ali mi smo također započeli ukratko pisanje neke od naših vlastitih funkcija. 499 00:20:16,999 --> 00:20:20,040 I do sada nitko od tih funkcija bio osobito velik ili mesnati. 500 00:20:20,040 --> 00:20:24,570 Vi ćete dobiti na one veće Funkcije vjerojatno, P postaviti 2, P postaviti 3, 501 00:20:24,570 --> 00:20:26,410 definitivno P postaviti 4 i dalje. 502 00:20:26,410 --> 00:20:29,340 Upravo sada većinu svojih programa, ako ne i sve od njih, sigurno za P 503 00:20:29,340 --> 00:20:31,550 Set 1 može biti učinjeno u cijelosti u glavni. 504 00:20:31,550 --> 00:20:33,810 Ako je vaš program je samo pet linija, 10 redaka, 505 00:20:33,810 --> 00:20:37,070 čak 20 redova, savršeno razumno napisati 506 00:20:37,070 --> 00:20:40,930 sve u glavni i ne pretjerano komplicirati Vaš kod, ali ono što mi radimo danas 507 00:20:40,930 --> 00:20:44,360 i dalje pokušava također uvesti neke dobre tehnikama 508 00:20:44,360 --> 00:20:48,660 tako da je vaš broj dobiva više komplicirani i kao problema 509 00:20:48,660 --> 00:20:51,690 želite riješiti dobiti teže i više zanimljiv imate, vrsta, 510 00:20:51,690 --> 00:20:55,850 alati u vašem alatni s kojima dizajn dobra rješenja za njih. 511 00:20:55,850 --> 00:21:01,210 >> Dakle, neka je uzeti brzo pogledati unatrag na Ovaj program iz mog prošlog tjedna, što 512 00:21:01,210 --> 00:21:06,550 je funkcija nula točka C A primijetiti da, jednostavno, 513 00:21:06,550 --> 00:21:10,310 to izgleda ovako s dva funkcije, glavni i naziv ispisa. 514 00:21:10,310 --> 00:21:13,160 I razmišljajući ili možda obrnuti inženjering i danas, 515 00:21:13,160 --> 00:21:16,880 što je motivacija za uvođenje funkcija u skladu 28 naziva, 516 00:21:16,880 --> 00:21:18,180 Naziv ispisa? 517 00:21:18,180 --> 00:21:21,745 Ili što je to primjer u Uvjeti principa ili takeaway, 518 00:21:21,745 --> 00:21:22,605 ako bi. 519 00:21:22,605 --> 00:21:26,560 520 00:21:26,560 --> 00:21:27,300 Neki mrmljanje. 521 00:21:27,300 --> 00:21:28,830 Što? 522 00:21:28,830 --> 00:21:32,210 >> Da tako Funkcionalna raspadanja je vrsta fancy način govoreći, 523 00:21:32,210 --> 00:21:34,690 razložiti svoj program na sastavne dijelove 524 00:21:34,690 --> 00:21:37,530 a zatim koristiti one dijelove sastaviti cjelinu. 525 00:21:37,530 --> 00:21:39,620 Dakle, to je također samo vrsta od zalogaj već, 526 00:21:39,620 --> 00:21:42,050 ali to je možda čak i bolji primjer nečega 527 00:21:42,050 --> 00:21:43,081 Samo nazvao apstrakcija. 528 00:21:43,081 --> 00:21:43,580 Pravo? 529 00:21:43,580 --> 00:21:46,950 Apstrakcija će biti jedno od ponavljajućih tema u CS50 530 00:21:46,950 --> 00:21:49,085 i informatika općenito jer je 531 00:21:49,085 --> 00:21:53,060 tehnika kojom se mogu riješiti Problemi učinkovitije jer vas 532 00:21:53,060 --> 00:21:56,807 može pisati rješenja više intuitivno i na način da vage 533 00:21:56,807 --> 00:21:58,390 i razumljivo je od strane drugih ljudi. 534 00:21:58,390 --> 00:21:59,860 Što mislim pod tim? 535 00:21:59,860 --> 00:22:04,340 >> Dakle, vjerojatno je puno više čitati pogledati program kao što je ovaj, 536 00:22:04,340 --> 00:22:05,990 super kratko iako je. 537 00:22:05,990 --> 00:22:10,050 Kada vidite na liniji 22 koji ima funkcija zove, naziv ispisa. 538 00:22:10,050 --> 00:22:12,620 To ime sama govori ono što čini. 539 00:22:12,620 --> 00:22:15,780 To je funkcija očito traje ulazna između svojih zagrada, 540 00:22:15,780 --> 00:22:18,600 i očito se nešto, vjerojatno ispisuje ime. 541 00:22:18,600 --> 00:22:20,880 I tako, iako smo apsolutno može imati 542 00:22:20,880 --> 00:22:25,280 učiniti ono što smo učinili prije tjedan dana, što je samo uzeti ovaj stvarni liniju koda, 543 00:22:25,280 --> 00:22:28,710 dobili osloboditi od toga, i dobiti riješiti sve ovo zajedno, 544 00:22:28,710 --> 00:22:31,436 smo nekako sažeto daleko pojam ispis ime. 545 00:22:31,436 --> 00:22:33,060 Ne zanima me ako koristite ispis def. 546 00:22:33,060 --> 00:22:35,601 Ne zanima me ako imate posto S i N. backslash To 547 00:22:35,601 --> 00:22:37,270 su nevjerojatno Arcane detalje. 548 00:22:37,270 --> 00:22:40,090 Ono što me je briga kao programer ispisuje naziv. 549 00:22:40,090 --> 00:22:43,414 I tako, što bolji način za to nego pozivom funkcije, naziv ispisa? 550 00:22:43,414 --> 00:22:46,330 I tako, da je bio jedan od motiva za nešto ovakvo. 551 00:22:46,330 --> 00:22:50,370 Izrada kod više čitati, više ponovno koristiti, a također samo opisno. 552 00:22:50,370 --> 00:22:52,120 Sada, neka je pogledati u još jednom primjeru, 553 00:22:52,120 --> 00:22:56,220 što je funkcija jedan, koje smo imali ovdje. 554 00:22:56,220 --> 00:23:00,367 >> Dakle, ovo je možda čak i više uvjerljiv zato što, u ovom slučaju, 555 00:23:00,367 --> 00:23:01,700 Ne želim samo dobiti int. 556 00:23:01,700 --> 00:23:03,320 Želim dobiti pozitivan int. 557 00:23:03,320 --> 00:23:06,470 I ispada da se pozitivan int što morate učiniti hrpa trčkaranje. 558 00:23:06,470 --> 00:23:06,969 Pravo? 559 00:23:06,969 --> 00:23:09,600 To nije jednostavna crta pozvati kao naziv ispisa je, 560 00:23:09,600 --> 00:23:11,480 što je doduše manje uvjerljiv. 561 00:23:11,480 --> 00:23:16,000 >> Da biste dobili pozitivan int, logically-- neka mi pomaknite natrag sakriti to. 562 00:23:16,000 --> 00:23:18,887 Što trebate učiniti? 563 00:23:18,887 --> 00:23:20,720 Poput svih alata smo ima u ovom trenutku su 564 00:23:20,720 --> 00:23:24,440 stvari kao što su ispis def iz Standarda Knjižnica i od CS50 knjižnici 565 00:23:24,440 --> 00:23:26,990 imamo Get Int, i dobiti Float, Nabavite Long Long, Get String, 566 00:23:26,990 --> 00:23:29,260 ali samo jedan, zameci, sada je dobiti Int. 567 00:23:29,260 --> 00:23:32,970 Dakle, ako je samo alat imate u svom alat okvir je dobiti Int, 568 00:23:32,970 --> 00:23:35,505 kako ćemo ići o provedbi da bi dobili pozitivnu int? 569 00:23:35,505 --> 00:23:35,929 >> PUBLIKA: Napravite dnevnik i provjeriti o tome je li ulaz koji su dali 570 00:23:35,929 --> 00:23:36,762 bio pozitivan ili ne. 571 00:23:36,762 --> 00:23:39,390 572 00:23:39,390 --> 00:23:40,640 >> SPEAKER 1: Savršeno. 573 00:23:40,640 --> 00:23:41,200 Točno. 574 00:23:41,200 --> 00:23:43,950 Još jedan alat imamo u našem alatni od prije tjedan dana ili dva 575 00:23:43,950 --> 00:23:45,419 samo je petlje konstrukt. 576 00:23:45,419 --> 00:23:48,210 I tako, da, ako koristimo vrijeme petlje, ili do while petlja, ili prije 577 00:23:48,210 --> 00:23:50,850 Petlja se vjerojatno mogao izvući bilo koji od onih koji u nekom obliku. 578 00:23:50,850 --> 00:23:55,140 Možemo provesti pojam GET Pozitivan int korištenjem samo dobiti Int, 579 00:23:55,140 --> 00:23:57,830 i onda samo držati ga zvati i opet bi gnjaviti korisnika 580 00:23:57,830 --> 00:24:00,320 dok on ili ona zapravo daje nam ono što želimo. 581 00:24:00,320 --> 00:24:03,260 >> I tako sada, to apstrakcija procesa 582 00:24:03,260 --> 00:24:05,680 dobivanja pozitivnog int u funkciju pod nazivom 583 00:24:05,680 --> 00:24:08,930 Nabavite Pozitivan Int je malo više uvjerljiv jer pogledajte ovo. 584 00:24:08,930 --> 00:24:10,990 To su kao 10 plus linija koda koji 585 00:24:10,990 --> 00:24:15,090 su uključeni u dobivanje pozitivnog int, a ja stvarno ne zanima me kako to učiniti. 586 00:24:15,090 --> 00:24:17,850 Sve što je stalo da vas mogu to učiniti i tako da sam 587 00:24:17,850 --> 00:24:21,660 skrivene svi ti detalji iza funkcija zove Get Pozitivan int koji, 588 00:24:21,660 --> 00:24:23,430 Doista, ima tu do while petlja. 589 00:24:23,430 --> 00:24:27,660 >> I prošli tjedan za sintaksu tamo, ali to samo izjavljuje N, 590 00:24:27,660 --> 00:24:29,800 i ispiše uputu za korisnika. 591 00:24:29,800 --> 00:24:33,330 Ona poziva Get Int a onda provjerava opet ovo stanje, i opet, 592 00:24:33,330 --> 00:24:35,230 i opet sve dok korisnik ne surađuje. 593 00:24:35,230 --> 00:24:38,000 >> Tako sada, nekoliko razum provjere. 594 00:24:38,000 --> 00:24:40,370 Za one koji možda upoznati s nekim programiranje, 595 00:24:40,370 --> 00:24:46,410 zašto je N proglašena, zašto sam stvoriti N izvan do while petlja? 596 00:24:46,410 --> 00:24:50,370 Zašto je to na liniji 29, a ne na poput 33, na primjer. 597 00:24:50,370 --> 00:24:53,529 >> PUBLIKA: jer kada proglasiti ga van, to neka vrsta 598 00:24:53,529 --> 00:24:56,688 veće, veći scope-- 599 00:24:56,688 --> 00:24:58,146 >> SPEAKER 1: Dobro. 600 00:24:58,146 --> 00:24:59,604 >> PUBLIKA: --and ako izjavite je unutar petlje, [nečujan] 601 00:24:59,604 --> 00:25:00,979 jer ne zna o tome. 602 00:25:00,979 --> 00:25:02,819 603 00:25:02,819 --> 00:25:03,610 SPEAKER 1: Točno. 604 00:25:03,610 --> 00:25:06,330 Ako ja mogu simplify-- to je pitanje opsega. 605 00:25:06,330 --> 00:25:11,530 I opseg odnosi na kontekst u koja varijabla postoji ili je korisna. 606 00:25:11,530 --> 00:25:15,050 A lijepo pravilo je da obično kad proglasiti ili stvoriti 607 00:25:15,050 --> 00:25:21,642 varijabla možete ga koristiti samo unutar od najbliže grli vitičastih zagrada. 608 00:25:21,642 --> 00:25:22,600 Dakle, što to znači? 609 00:25:22,600 --> 00:25:26,551 Ako sam, umjesto toga, poništiti i ići s nešto što se osjeća malo jednostavnije. 610 00:25:26,551 --> 00:25:27,050 Pravo? 611 00:25:27,050 --> 00:25:29,360 >> Linija 32 samo izgleda čišće mi sada. 612 00:25:29,360 --> 00:25:31,500 Radim obje stvari jednom i onda dodjeljivanje 613 00:25:31,500 --> 00:25:33,070 desna ruka na lijevoj ruci. 614 00:25:33,070 --> 00:25:35,180 Problem je sada na temelju da definicija opsega 615 00:25:35,180 --> 00:25:41,130 da je N može se koristiti u linijama 31 i 32 unutar ove petlje, 616 00:25:41,130 --> 00:25:45,100 ali gdje po toj definiciji može se ne može koristiti? 617 00:25:45,100 --> 00:25:45,660 U skladu što? 618 00:25:45,660 --> 00:25:46,160 Da. 619 00:25:46,160 --> 00:25:47,490 >> PUBLIKA: 35. 620 00:25:47,490 --> 00:25:49,180 >> SPEAKER 1: 35. 621 00:25:49,180 --> 00:25:50,480 Definitivno ne 35. 622 00:25:50,480 --> 00:25:52,349 I također gdje drugdje? 623 00:25:52,349 --> 00:25:52,890 PUBLIKA: 34. 624 00:25:52,890 --> 00:25:55,040 SPEAKER 1: Čak 34 problematično jer je 625 00:25:55,040 --> 00:25:56,450 izvan vitičastih zagrada. 626 00:25:56,450 --> 00:25:58,200 I tako, u stvari, da vidimo što se događa. 627 00:25:58,200 --> 00:25:58,700 Pravo? 628 00:25:58,700 --> 00:26:00,722 To se može činiti malo intuitivno ili ne može, 629 00:26:00,722 --> 00:26:02,680 ali vidjet ćemo što prevodilac ima za reći kada 630 00:26:02,680 --> 00:26:04,730 idemo u današnjem izvornog kataloga. 631 00:26:04,730 --> 00:26:08,950 Napravite funkciju jedan. 632 00:26:08,950 --> 00:26:11,231 O moj Bože. 633 00:26:11,231 --> 00:26:12,980 Pa, napokon sam završio da, usput. 634 00:26:12,980 --> 00:26:14,030 U redu. 635 00:26:14,030 --> 00:26:15,510 A što je problem ovdje? 636 00:26:15,510 --> 00:26:17,430 Vrlo arcane pogledati. 637 00:26:17,430 --> 00:26:19,570 No, ovdje je ono što sam typed-- napraviti funkciju jedan. 638 00:26:19,570 --> 00:26:21,640 Evo što bi izazvana, koji je zapravo 639 00:26:21,640 --> 00:26:23,705 pomoću prevodilac zveket s nekim od tih zastava 640 00:26:23,705 --> 00:26:25,080 da ćemo ponovno vidjeti prije dugo. 641 00:26:25,080 --> 00:26:26,829 I opet, uvijek gledati na prvom pogreškom, 642 00:26:26,829 --> 00:26:30,540 jer to može imati kaskadno besmisleno učinak na drugim linijama. 643 00:26:30,540 --> 00:26:34,410 >> Dakle, što to znači da je Problem je u funkciji 1.c. 644 00:26:34,410 --> 00:26:36,890 To je na liniji 32. 645 00:26:36,890 --> 00:26:39,712 I to je u koloni, ili karaktera, 13. 646 00:26:39,712 --> 00:26:42,670 Dakle, kada vaš tekst editor koji može će vam pomoći identificirati gdje je problem. 647 00:26:42,670 --> 00:26:47,079 Dakle, ako sam pomicanje gore, što je linija 32? 648 00:26:47,079 --> 00:26:49,120 To je uistinu ova koji je već istaknuo 649 00:26:49,120 --> 00:26:50,607 Pravo here-- neiskorištena varijabla n. 650 00:26:50,607 --> 00:26:51,440 Ali to nije neiskorišten. 651 00:26:51,440 --> 00:26:52,320 Ja sam ga koristiti. 652 00:26:52,320 --> 00:26:56,110 No, prevodilac je zbunjen, jer je postoji samo unutar tog opsega. 653 00:26:56,110 --> 00:26:57,727 I tako ja ne mogu ga koristiti ovdje. 654 00:26:57,727 --> 00:26:58,560 Ne mogu ga koristiti ovdje. 655 00:26:58,560 --> 00:27:01,320 I prevodilac, dakle, ni ne briga što pokušavam. 656 00:27:01,320 --> 00:27:03,940 Čini se da je neiskorišten u okviru svojih stvarnih dosega. 657 00:27:03,940 --> 00:27:08,854 >> Tako možemo proširiti opseg radeći upravo ono što smo započeli with-- int n. 658 00:27:08,854 --> 00:27:11,020 I iako to ne izgledaju kao elegantan, možda, 659 00:27:11,020 --> 00:27:15,110 a mi smo uzimajući dodatni liniju Ovdje, sada je u okviru posvuda. 660 00:27:15,110 --> 00:27:15,970 Tako ćemo pokušati ponovno. 661 00:27:15,970 --> 00:27:19,040 Tako bi funkciju jedan. 662 00:27:19,040 --> 00:27:19,610 Lijepo. 663 00:27:19,610 --> 00:27:23,370 A sada, ako sam, ako sam pokrenuti funkciju jedan, neka je dati negativan 10, 664 00:27:23,370 --> 00:27:27,170 negativna 1, 0, 1, i to doista radi. 665 00:27:27,170 --> 00:27:28,610 >> Dakle, postoji drugo rješenje ovdje. 666 00:27:28,610 --> 00:27:29,280 Znaš što? 667 00:27:29,280 --> 00:27:31,230 Što ako stvarno sam hrvanje s ovim? 668 00:27:31,230 --> 00:27:33,140 Ne znam gdje je n je trebao ići. 669 00:27:33,140 --> 00:27:33,723 Znaš što? 670 00:27:33,723 --> 00:27:39,220 Samo ću ga staviti sve Način na vrhu moje datoteke ovdje. 671 00:27:39,220 --> 00:27:42,835 Što bi to učinili, što mislite? 672 00:27:42,835 --> 00:27:43,335 Da? 673 00:27:43,335 --> 00:27:44,251 >> PUBLIKA: [nečujan]. 674 00:27:44,251 --> 00:27:47,964 675 00:27:47,964 --> 00:27:48,630 SPEAKER 1: Da. 676 00:27:48,630 --> 00:27:50,560 Tako sam napravio to globalno, da se tako izrazim. 677 00:27:50,560 --> 00:27:54,430 Ako imate varijablu koja je izvan sve svoje funkcije koje je dopušteno, 678 00:27:54,430 --> 00:27:58,780 a broj bi trebao sastaviti, i n sada će biti dostupni ne samo u GET 679 00:27:58,780 --> 00:28:02,490 Pozitivan int, ali iu kojoj main-- je malo zabrinjavajuće, jer postoji 680 00:28:02,490 --> 00:28:04,864 već n u glavnom, tako da više na to u samo moment-- 681 00:28:04,864 --> 00:28:06,530 ali to će se smatrati loš dizajn. 682 00:28:06,530 --> 00:28:06,910 U redu. 683 00:28:06,910 --> 00:28:08,570 Ako morate posegnuti za nešto kao, oh, ja ću 684 00:28:08,570 --> 00:28:10,125 samo ga staviti ovdje jer šifra čini se sastaviti 685 00:28:10,125 --> 00:28:12,180 općenito nije najbolje prakse. 686 00:28:12,180 --> 00:28:14,590 Umjesto da želite odabrati najuži mogući opseg 687 00:28:14,590 --> 00:28:18,720 za varijable, što bi značilo ide s našim početnim dizajnom, koji 688 00:28:18,720 --> 00:28:19,920 je upravo ovdje. 689 00:28:19,920 --> 00:28:24,400 >> Sada kao stranu, ako imalo identično nazivom varijabla ovdje 690 00:28:24,400 --> 00:28:27,750 onako c će nositi this-- iako to neće dogoditi previše often-- 691 00:28:27,750 --> 00:28:30,150 je da je to još uvijek savršeno u redu ovdje. 692 00:28:30,150 --> 00:28:35,000 Ali ova definicija n u skladu 22 će sjene globalnu jedan. 693 00:28:35,000 --> 00:28:38,190 Dakle, to će raditi u Glavni i globalan 694 00:28:38,190 --> 00:28:41,670 zapravo će se primjenjuju kada ste u dobili pozitivan int Ali više o tome 695 00:28:41,670 --> 00:28:43,890 drugi put, ali jednostavno za one znatiželjan. 696 00:28:43,890 --> 00:28:45,970 >> Dakle ukratko, možemo riješiti ovo ovdje. 697 00:28:45,970 --> 00:28:49,220 Sada zafrkavati osim dvije druge dijelove prije nego što izgleda na posljednji redak koda 698 00:28:49,220 --> 00:28:50,170 u ovom programu. 699 00:28:50,170 --> 00:28:52,170 Dobiti pozitivan int. 700 00:28:52,170 --> 00:28:54,450 Na lijevoj strani od njegova riječ je riječ int. 701 00:28:54,450 --> 00:28:56,860 Što to znači misliš? 702 00:28:56,860 --> 00:28:58,900 Do sada smo uglavnom vidio nevažeće. 703 00:28:58,900 --> 00:28:59,400 Da? 704 00:28:59,400 --> 00:29:01,810 >> PUBLIKA: To je vrsta varijabla da pitate o tome. 705 00:29:01,810 --> 00:29:04,550 >> SPEAKER 1: Da to je vrsta, neka me Ne kažem promjenjiva, ali tip vrijednosti 706 00:29:04,550 --> 00:29:05,990 da tražim natrag za. 707 00:29:05,990 --> 00:29:08,070 I doista, to je intuitivno ovdje, nadam se. 708 00:29:08,070 --> 00:29:08,200 Pravo? 709 00:29:08,200 --> 00:29:10,250 Ako želite dobiti pozitivno int, što je to što 710 00:29:10,250 --> 00:29:12,920 želite function-- poput naših dobrovoljci iz prošlog tjedna 711 00:29:12,920 --> 00:29:15,720 da ti ruku natrag komad papira s int o njemu? 712 00:29:15,720 --> 00:29:19,190 I tako smo je navedeno da je Takozvani povratak vrsta ove funkcije 713 00:29:19,190 --> 00:29:20,450 je dobiti pozitivnu int. 714 00:29:20,450 --> 00:29:22,990 Ako to nije htio vratiti ništa, kažeš nevažeće. 715 00:29:22,990 --> 00:29:25,270 Ako želite da se vrate niz, kažeš niz. 716 00:29:25,270 --> 00:29:27,310 Ako želite da se vrate plovak, kažeš plutaju. 717 00:29:27,310 --> 00:29:30,440 Ali jedina koja vrijedi i ovdje logično, jer ja sam koristeći get int, 718 00:29:30,440 --> 00:29:34,130 iako sam ga ograničava na pozitivne vrijednosti, jest vratiti int. 719 00:29:34,130 --> 00:29:38,380 >> Dakle obrnuto, što to znači da postoji praznina u zagradi? 720 00:29:38,380 --> 00:29:40,130 Što zagrada općenito definirati? 721 00:29:40,130 --> 00:29:40,588 Da? 722 00:29:40,588 --> 00:29:42,880 >> PUBLIKA: To znači da je funkcija a zapravo ne uzimajući. 723 00:29:42,880 --> 00:29:44,650 >> SPEAKER 1: To znači da je funkcija a zapravo ne uzimajući ono? 724 00:29:44,650 --> 00:29:45,430 >> PUBLIKA: ulaza. 725 00:29:45,430 --> 00:29:46,763 >> SPEAKER 1: ulaza, god. 726 00:29:46,763 --> 00:29:49,870 Dakle, istina, ako zagradu Ovdje možete navesti praznina, 727 00:29:49,870 --> 00:29:51,650 to samo znači da ne želim nikakav unos. 728 00:29:51,650 --> 00:29:53,269 Ja ću se bave problemom sebe. 729 00:29:53,269 --> 00:29:55,810 I doista, ne morate se reci dobiti pozitivnu int ništa. 730 00:29:55,810 --> 00:29:59,630 Vi samo reći, dobili pozitivan int, i to Funkcija će otići i raditi svoj stvar. 731 00:29:59,630 --> 00:30:02,970 >> No, tu je bio mali trik imam igrao ovdje cijelo vrijeme 732 00:30:02,970 --> 00:30:04,970 kako bi bili sigurni ovaj kod sastavlja. 733 00:30:04,970 --> 00:30:09,620 Obavijest da int-- dobili pozitivan int void-- je na liniji 27. 734 00:30:09,620 --> 00:30:14,530 No, iz nekog čudnog razloga naizgled to je također ovdje na liniji 16. 735 00:30:14,530 --> 00:30:18,530 I samo za dobru mjeru ću ponoviti to tako da je potpuno identični. 736 00:30:18,530 --> 00:30:21,640 I sam je rekao prototip s Malo komentar jednog retka. 737 00:30:21,640 --> 00:30:28,850 Što se događa ako izbrisali, i Sada ponovno pokrenite bi Funkcija 1, enter. 738 00:30:28,850 --> 00:30:29,350 Ups. 739 00:30:29,350 --> 00:30:32,527 740 00:30:32,527 --> 00:30:33,110 Čekaj malo. 741 00:30:33,110 --> 00:30:34,764 Gdje je moja kartica? 742 00:30:34,764 --> 00:30:35,263 Ha? 743 00:30:35,263 --> 00:30:37,969 744 00:30:37,969 --> 00:30:39,620 Pričekaj. 745 00:30:39,620 --> 00:30:41,570 Napravite funkciju 1. 746 00:30:41,570 --> 00:30:42,150 Idemo tamo. 747 00:30:42,150 --> 00:30:42,310 U REDU. 748 00:30:42,310 --> 00:30:43,400 Nije ga spasio ispravno. 749 00:30:43,400 --> 00:30:45,220 Dakle, mislim da je malo bug ovdje gdje ja nisam 750 00:30:45,220 --> 00:30:46,636 vidim naziv kartice u ovom trenutku. 751 00:30:46,636 --> 00:30:47,940 Dakle, ono što se ovdje događa? 752 00:30:47,940 --> 00:30:52,210 Implicitna izjava o funkciji dobili pozitivan int nevažeća u C99. 753 00:30:52,210 --> 00:30:53,940 Pa opet zbunjujući. 754 00:30:53,940 --> 00:30:55,200 Pa što je ovo indikativno? 755 00:30:55,200 --> 00:30:57,287 Pa, ispada da C je prilično glupo. 756 00:30:57,287 --> 00:30:59,912 Pa, to je programiranje jezik, odnosno prevodilac je. 757 00:30:59,912 --> 00:31:02,940 To zna samo ono što imate ga učio, a to je samo 758 00:31:02,940 --> 00:31:05,640 će znati nešto ako ga je učio prije. 759 00:31:05,640 --> 00:31:07,960 Drugim riječima, u Glavni u ovom trenutku, ja sam 760 00:31:07,960 --> 00:31:10,900 pokušava nazvati funkciju zove dobili pozitivan int. 761 00:31:10,900 --> 00:31:14,120 Ali prevodilac ne ide primijetiti da biste dobili pozitivan int 762 00:31:14,120 --> 00:31:16,500 postoji sve linije 26. 763 00:31:16,500 --> 00:31:21,360 I tako ono što prevodilac ne samo pogreške čim dobije na liniji 17, 764 00:31:21,360 --> 00:31:23,700 govoreći implicitnu izjavu od dobiti pozitivnu int, što 765 00:31:23,700 --> 00:31:27,740 je samo fancy način govoreći, ja ne znate što dobijete pozitivan int još. 766 00:31:27,740 --> 00:31:31,240 >> Ostali jezici poput Jave i Python i Ruby mogla gledati naprijed. 767 00:31:31,240 --> 00:31:32,240 C ne. 768 00:31:32,240 --> 00:31:35,110 I tako je način na koji smo riješili ovo je jedan od dva načina. 769 00:31:35,110 --> 00:31:40,160 Ili on, ako je problem je da biste dobili Pozitivan int nije vidio prije, 770 00:31:40,160 --> 00:31:42,150 dobro, neka mi samo premjestiti na vrh. 771 00:31:42,150 --> 00:31:43,650 To bi riješili ovaj problem. 772 00:31:43,650 --> 00:31:46,790 Ali općenito, to je smatra bolju tehniku 773 00:31:46,790 --> 00:31:50,220 staviti svoj glavnu funkciju na samom vrhu, tako da čovjek čita svoj kod 774 00:31:50,220 --> 00:31:52,710 zna što program radi, jer glavna nije sahranjen sve 775 00:31:52,710 --> 00:31:53,960 način na dnu ili u sredini. 776 00:31:53,960 --> 00:31:55,130 To je na samom vrhu. 777 00:31:55,130 --> 00:31:56,410 Tako da se ne osjeća idealno. 778 00:31:56,410 --> 00:31:58,326 A zapravo možete dobiti u situacijama gdje 779 00:31:58,326 --> 00:32:00,820 ako jedna funkcija poziva drugi, koji poziva drugi, 780 00:32:00,820 --> 00:32:04,630 možete dobiti u pitanju, gdje ne može ići iznad drugoga, logično. 781 00:32:04,630 --> 00:32:05,920 To jednostavno nije moguće. 782 00:32:05,920 --> 00:32:09,290 >> I tako je način rada okolo ovaj je samo uzeti 783 00:32:09,290 --> 00:32:13,200 Funkcija potpis, tako da speak-- prva linija u kojoj je declared-- 784 00:32:13,200 --> 00:32:16,850 i samo kopirati, zalijepiti ga na vrh, ali ne s kovrčavom braces-- 785 00:32:16,850 --> 00:32:17,980 Samo sa zarezom. 786 00:32:17,980 --> 00:32:20,840 To je kao mali savjet onoga što će doći. 787 00:32:20,840 --> 00:32:26,630 A u stvari, sve ovo vrijeme, kad smo Vidjeli stvari poput standardnog io.h 788 00:32:26,630 --> 00:32:33,040 i cs50.h, Isto tako, u tih točaka h datoteke su tamo ostali prototipovi. 789 00:32:33,040 --> 00:32:35,250 I vidjet ćemo da je prije dugo. 790 00:32:35,250 --> 00:32:39,340 >> Dakle ukratko, kada imate program u datoteci s više funkcija 791 00:32:39,340 --> 00:32:42,300 osim glavna, gotovo uvijek žele da ih proglasi 792 00:32:42,300 --> 00:32:45,360 samo način njihova prva linija, nakon čega slijedi zarez, 793 00:32:45,360 --> 00:32:48,410 na samom vrhu datoteke. 794 00:32:48,410 --> 00:32:50,460 To je puno odjednom. 795 00:32:50,460 --> 00:32:53,130 Ima li pitanja? 796 00:32:53,130 --> 00:32:53,920 Ima li pitanja? 797 00:32:53,920 --> 00:32:54,530 U redu. 798 00:32:54,530 --> 00:32:59,760 >> Pa krenimo na tada na nešto poput kašlja. 799 00:32:59,760 --> 00:33:00,260 Oh. 800 00:33:00,260 --> 00:33:00,570 Kako dolikuje. 801 00:33:00,570 --> 00:33:01,220 U redu. 802 00:33:01,220 --> 00:33:02,260 Kašalj. 803 00:33:02,260 --> 00:33:05,080 Dakle, ovdje je c provedba programa 804 00:33:05,080 --> 00:33:07,560 smo neki dan u Scratch koji je vrlo jednostavno samo 805 00:33:07,560 --> 00:33:08,691 kaže kašalj, kašalj, kašalj. 806 00:33:08,691 --> 00:33:09,190 U redu. 807 00:33:09,190 --> 00:33:11,136 A netko je rekao neke dana da postoji 808 00:33:11,136 --> 00:33:12,760 način čišćenja ovaj kod gore već. 809 00:33:12,760 --> 00:33:12,880 U redu? 810 00:33:12,880 --> 00:33:15,440 Čim ste kopiranje i lijepljenje vjerojatno lošeg dizajna. 811 00:33:15,440 --> 00:33:18,725 Barem jednom smo dobili četiri ili pet ili 20 kašlja, ona se osjeća loše prakse. 812 00:33:18,725 --> 00:33:19,850 Mi samo zadržati kopiju, lijepljenje. 813 00:33:19,850 --> 00:33:22,213 Što je očito rješenje za čišćenje ovaj program gore? 814 00:33:22,213 --> 00:33:23,120 >> PUBLIKA: Petlja. 815 00:33:23,120 --> 00:33:23,350 >> SPEAKER 1: Da. 816 00:33:23,350 --> 00:33:24,070 Dakle, koristite petlju. 817 00:33:24,070 --> 00:33:27,697 I možemo koristiti za petlje, neko vrijeme petlje, bilo koji broj pristupa. 818 00:33:27,697 --> 00:33:29,780 I doista, to je ono što radimo u verziji ovdje. 819 00:33:29,780 --> 00:33:32,250 Ja umjesto da sam ga prepisivati u verziji jednog od cough.c 820 00:33:32,250 --> 00:33:35,170 da se samo kašalj unutar za petlje. 821 00:33:35,170 --> 00:33:38,240 U redu, ali postoji Prilika sada vrsti početka 822 00:33:38,240 --> 00:33:41,630 dizajnirati to malo više kao pouka smo učili prije nekoliko trenutaka, 823 00:33:41,630 --> 00:33:46,190 što je this-- pretpostavljam da sam htjela stvoriti funkciju zove kašalj, 824 00:33:46,190 --> 00:33:49,730 uzmimo samo na trenutak ono što će izgledati. 825 00:33:49,730 --> 00:33:51,900 Dakle, ako želim nešto kašljati, samo mi treba 826 00:33:51,900 --> 00:33:53,800 koristiti za ispis f unutar funkcije. 827 00:33:53,800 --> 00:33:55,030 I doista sam. 828 00:33:55,030 --> 00:33:56,990 A u stvari, sve je to Vrijeme, svaki put kad si 829 00:33:56,990 --> 00:33:59,000 ispis nešto zaslon, programer 830 00:33:59,000 --> 00:34:00,610 bi to nazvao nuspojava. 831 00:34:00,610 --> 00:34:02,990 Nije mi predaje natrag netko vrijednost. 832 00:34:02,990 --> 00:34:06,170 To mi je da neke akcije koji bi mogli biti vizualno očite. 833 00:34:06,170 --> 00:34:10,672 No, ova funkcija kašalj, to povratak sve se temelji na prvoj liniji? 834 00:34:10,672 --> 00:34:12,880 Ne, jer te vrste povratka je praznina, što samo znači 835 00:34:12,880 --> 00:34:14,250 to nije mi ništa vraćajući. 836 00:34:14,250 --> 00:34:16,791 To bi se moglo raditi nešto vizualno, ali to me ne predaje 837 00:34:16,791 --> 00:34:18,639 natrag komad papira kao i prošlog tjedna. 838 00:34:18,639 --> 00:34:21,310 >> Da li je potrebna bilo ulaz? 839 00:34:21,310 --> 00:34:21,810 Ne. 840 00:34:21,810 --> 00:34:23,134 I tako je ništavan ovdje. 841 00:34:23,134 --> 00:34:25,600 Dakle, to je također vrsta nad-inženjering ovaj problem. 842 00:34:25,600 --> 00:34:26,099 Pravo? 843 00:34:26,099 --> 00:34:28,820 Napravio sam program više složene, više linija koda, 844 00:34:28,820 --> 00:34:31,889 Nisam to napravio bilo više funkcionalna, ali to 845 00:34:31,889 --> 00:34:34,210 bi biti odskočna daska, možda, za šire 846 00:34:34,210 --> 00:34:36,830 kontekst s više komplicirano koda. 847 00:34:36,830 --> 00:34:38,150 Ali što je ovo? 848 00:34:38,150 --> 00:34:42,050 Što sam upravo done-- pogledavši to bez gledanja na komentar 849 00:34:42,050 --> 00:34:46,076 na samom vrhu file-- što imaju Ja temeljno učinio ovdje s mojim kašalj 850 00:34:46,076 --> 00:34:47,409 Provedba je to drugačije? 851 00:34:47,409 --> 00:34:48,327 Da, u leđima? 852 00:34:48,327 --> 00:34:51,384 >> PUBLIKA: Učinite to tako da možete imaju karakter isključiti. 853 00:34:51,384 --> 00:34:52,050 SPEAKER 1: Da. 854 00:34:52,050 --> 00:34:53,270 Dakle, to se osjeća vrsta lijepo. 855 00:34:53,270 --> 00:34:53,389 Pravo? 856 00:34:53,389 --> 00:34:56,600 To je kao dodavanje značajka na vaš Program ili vaša funkcija, u ovom slučaju. 857 00:34:56,600 --> 00:34:57,830 Još uvijek se vraća ništa. 858 00:34:57,830 --> 00:35:00,538 To bi moglo imati vizualni nuspojava, jer zove ispis f. 859 00:35:00,538 --> 00:35:02,800 Ali sada sam parametrizirana funkcija koja 860 00:35:02,800 --> 00:35:06,470 znači da ste naveli uzeti ulaz tipa int i nazvati nje, 861 00:35:06,470 --> 00:35:08,510 ali ja bi se moglo nazvati nešto što želim. 862 00:35:08,510 --> 00:35:11,550 U stvari, to samo može biti puta biti još jasniji. 863 00:35:11,550 --> 00:35:13,310 A onda sam samo mogao promijeniti ovo ovdje. 864 00:35:13,310 --> 00:35:16,450 No, poanta je da je to kako sam stvoriti funkciju koja uzima ulaz. 865 00:35:16,450 --> 00:35:19,530 A ako se sjećate flipping kroz možda online u jednom 866 00:35:19,530 --> 00:35:23,000 od walk-provodnike je Četvrti i posljednji kašalj primjer, 867 00:35:23,000 --> 00:35:27,150 primijetit ćete ovdje sam generalizirati moj broj further-- vrsta rastresen 868 00:35:27,150 --> 00:35:27,690 što dalje. 869 00:35:27,690 --> 00:35:31,390 Kao kašalj i kihanje, oba su o kao što je rekao nešto ili stvaranje 870 00:35:31,390 --> 00:35:32,330 nekakav zvuk. 871 00:35:32,330 --> 00:35:34,725 Spremi će biti odgovara Scratch blok. 872 00:35:34,725 --> 00:35:37,350 I tako ono što sam učinio u ovoj verziji, koje možemo samo pogled na, 873 00:35:37,350 --> 00:35:43,170 je kašalj je samo kao što je rekao, [Kašalj], kašalj, au međuvremenu, kihanje je 874 00:35:43,170 --> 00:35:44,570 kao što je rekao, [ACHOO]. 875 00:35:44,570 --> 00:35:46,900 I tako sam generalizirati provedbu tih 876 00:35:46,900 --> 00:35:48,970 do sada provedbu to generički funkcija, 877 00:35:48,970 --> 00:35:51,490 kažu, što je zanimljivo za današnje potrebe 878 00:35:51,490 --> 00:35:54,300 samo zbog toga još nema povratnu tip. 879 00:35:54,300 --> 00:35:56,398 No, koliko ulaza ima? 880 00:35:56,398 --> 00:35:56,981 PUBLIKA: Dva. 881 00:35:56,981 --> 00:35:57,430 SPEAKER 1: Two. 882 00:35:57,430 --> 00:35:59,263 I tako, ako želite uzeti u dva argumenta, 883 00:35:59,263 --> 00:36:00,710 Samo ih odvojite zarezom. 884 00:36:00,710 --> 00:36:03,110 A ako želite onda nazvati tu funkciju, 885 00:36:03,110 --> 00:36:05,800 primijetiti da ste upravo zvati recimo, citat, citat, 886 00:36:05,800 --> 00:36:09,090 prvi argument, zajedničko nje, za drugi argument. 887 00:36:09,090 --> 00:36:12,130 Pa opet, upravo smo sada građevnih blokova, tako da možemo zapravo 888 00:36:12,130 --> 00:36:15,686 provesti neke od naših vlastitih funkcija. 889 00:36:15,686 --> 00:36:16,570 U redu. 890 00:36:16,570 --> 00:36:19,690 Bilo kakva pitanja o njima? 891 00:36:19,690 --> 00:36:22,400 >> Dakle, sada ćemo guliti natrag sloj ako je tako. 892 00:36:22,400 --> 00:36:24,840 A cilj, u konačnici, je sljedeći tjedan Problem skup 893 00:36:24,840 --> 00:36:27,710 će biti na cryptogrophy-- umjetnost remećenje podatke. 894 00:36:27,710 --> 00:36:30,640 A posebno, informacije će vam šifriranje ili dešifriranje 895 00:36:30,640 --> 00:36:31,605 će biti tekst. 896 00:36:31,605 --> 00:36:33,980 I tako ta vrsta pozivnica Pitanje je danas kao dobro, 897 00:36:33,980 --> 00:36:38,480 što se događa ispod haube s tekstom izvan ASCII od tjedan nula, 898 00:36:38,480 --> 00:36:40,730 A kako smo zapravo početi manipulirati? 899 00:36:40,730 --> 00:36:43,070 Dakle, ovdje je Zamyla ime. 900 00:36:43,070 --> 00:36:47,380 A u tekstu, koji bi mogli biti unesene u kao GET niza funkcija. 901 00:36:47,380 --> 00:36:52,540 A počevši sada, kada vidite string kao this-- Z-A-M-Y-L-A- 902 00:36:52,540 --> 00:36:56,550 početi razmišljati o njemu kao da je svaki od tih likova je u kutiji njegova 903 00:36:56,550 --> 00:36:57,050 vlastite. 904 00:36:57,050 --> 00:36:59,460 I doista, u tjedan dana ili tako je vrijeme, svaki od tih kutija 905 00:36:59,460 --> 00:37:04,280 će predstavljati vrlo konkretno blok memory-- zalogaj memorije. 906 00:37:04,280 --> 00:37:07,050 Dakle, svaki od tih pisama, u konačnici, predstavljat će 8 bitova. 907 00:37:07,050 --> 00:37:10,560 A mi ćemo zapravo vidjeti što se događa na ispod haube u mom računalu. 908 00:37:10,560 --> 00:37:13,440 >> Ali ne dovoljno samo pogledajte Zamyla 909 00:37:13,440 --> 00:37:17,520 kroz ovaj objektiv, pri čemu svaki od ova pisma je u vlastitoj kutiji. 910 00:37:17,520 --> 00:37:22,697 A dovoljno je lijepo u C možemo pristup svakom od tih kutija izravno. 911 00:37:22,697 --> 00:37:25,530 Dakle, ako želite da biste dobili prvo slovo svog imena, super jednostavno u C. 912 00:37:25,530 --> 00:37:28,410 Ako želite dobiti posljednji pismo, super jednostavno i 913 00:37:28,410 --> 00:37:30,240 komadom nove sintakse. 914 00:37:30,240 --> 00:37:36,250 >> Tako ću ići naprijed u CS50 IDE i otvoriti string nultu točku C. 915 00:37:36,250 --> 00:37:40,270 I u ovom primjeru ovdje, postoje par novih stvari događa. 916 00:37:40,270 --> 00:37:44,360 Dakle, prvi u redu 19, mi smo vidi ovo before-- get niz. 917 00:37:44,360 --> 00:37:49,840 Dakle, baš kao brzo provjeriti zdravlje, ako bi netko mogao ponuditi verbalno 918 00:37:49,840 --> 00:37:52,662 laik objašnjenje što se događa u redu 19. 919 00:37:52,662 --> 00:37:55,370 Kao samo prevesti ovo u Engleski da cimerica ne CS50 920 00:37:55,370 --> 00:37:56,416 mogli razumjeti. 921 00:37:56,416 --> 00:37:56,916 Da. 922 00:37:56,916 --> 00:37:59,749 >> PUBLIKA: Jeste korisnički unos string i pohraniti ga u promjenjivom s. 923 00:37:59,749 --> 00:38:01,934 924 00:38:01,934 --> 00:38:02,600 SPEAKER 1: Dobro. 925 00:38:02,600 --> 00:38:05,579 Jeste korisničkog ulaznog niz i pohraniti ga u promjenjivom s. 926 00:38:05,579 --> 00:38:06,120 To je odlično. 927 00:38:06,120 --> 00:38:08,090 Dakle, na desnog strana, zovemo GET niz. 928 00:38:08,090 --> 00:38:10,340 To vraća vrijednost koji nisu dobili dodijeljena 929 00:38:10,340 --> 00:38:14,230 iz desne strane na lijevu ruku strana u varijablu zove s koji je 930 00:38:14,230 --> 00:38:15,950 dizajniran za pohranu niz. 931 00:38:15,950 --> 00:38:16,800 Točno. 932 00:38:16,800 --> 00:38:20,000 >> Tako sada postroje 22, po komentar na liniji 21, 933 00:38:20,000 --> 00:38:22,780 Očito ispisuje taj string jedan znak po retku. 934 00:38:22,780 --> 00:38:23,740 Ali kako? 935 00:38:23,740 --> 00:38:27,040 Dakle, prije svega, što inicijalizirati ja na 0. 936 00:38:27,040 --> 00:38:31,061 I onda kako ćemo doći do kraj Zamyla ime? 937 00:38:31,061 --> 00:38:32,810 Pa, na kraju Zamyla ime, što sam mogao 938 00:38:32,810 --> 00:38:38,151 ručno upisati u posljednjem karakter nekako joj je ime ili broj od toga. 939 00:38:38,151 --> 00:38:38,650 Pravo? 940 00:38:38,650 --> 00:38:43,500 Ako se vratimo here-- Z-A-M-L-- Y-l-A- tako da sam mogao upisati. 941 00:38:43,500 --> 00:38:47,340 Što je indeks Zamyla posljednji pismo? 942 00:38:47,340 --> 00:38:52,517 Ako je ovo 0-- govorio poput programmer-- 0, 1, 2, 3, 4, 5, 943 00:38:52,517 --> 00:38:56,570 Ja heard-- tako doista, posljednje pismo u Zamyla ime je šesti, 944 00:38:56,570 --> 00:38:58,890 ali ako računamo od 0, to će biti broj 5. 945 00:38:58,890 --> 00:39:01,320 Pa imajte to na umu ovdje. 946 00:39:01,320 --> 00:39:04,929 >> Ispada postoji funkcija u C zove strlen, i natrag u dan 947 00:39:04,929 --> 00:39:06,720 i do danas još uvijek, dosta programera 948 00:39:06,720 --> 00:39:09,524 odabrati za sinkronizaciju imena za njihovo Funkcije koje zvuče kao riječi 949 00:39:09,524 --> 00:39:10,440 oni pokušavaju reći. 950 00:39:10,440 --> 00:39:12,590 Dakle strlen je duljina niza. 951 00:39:12,590 --> 00:39:18,168 I tako što bi duljina niza S vratiti kada Zamyla je ulaz? 952 00:39:18,168 --> 00:39:19,569 >> PUBLIKA: Pet. 953 00:39:19,569 --> 00:39:22,090 >> Zvučnik 1: Z-A-M-Y-l. Šest. 954 00:39:22,090 --> 00:39:22,590 Pravo? 955 00:39:22,590 --> 00:39:23,940 Što je duljina Zamyla ime? 956 00:39:23,940 --> 00:39:24,440 Pravo? 957 00:39:24,440 --> 00:39:26,240 I samo u stvarnosti, šest slova. 958 00:39:26,240 --> 00:39:26,740 Pravo? 959 00:39:26,740 --> 00:39:28,940 I tako, što to znači za našu petlju? 960 00:39:28,940 --> 00:39:32,130 Idemo ići od 0 do šest, koji 961 00:39:32,130 --> 00:39:33,650 će nam dati pet ponavljanja. 962 00:39:33,650 --> 00:39:34,890 Što nam je činiti na svakoj iteraciji? 963 00:39:34,890 --> 00:39:36,870 Pa, posto C, netko pogađate drugi dan, 964 00:39:36,870 --> 00:39:38,710 znači rezervirano mjesto za što? 965 00:39:38,710 --> 00:39:39,335 >> PUBLIKA: Char. 966 00:39:39,335 --> 00:39:40,293 SPEAKER 1: Samo char. 967 00:39:40,293 --> 00:39:42,877 Dakle, jedan character-- ne više likovi poput niza. 968 00:39:42,877 --> 00:39:45,251 I onda ovdje je nova linija da smo dobili ispis. 969 00:39:45,251 --> 00:39:46,580 A onda tu je novi sintakse. 970 00:39:46,580 --> 00:39:51,130 Ako želite ispisati i-tog znak u nizu S, da tako kažemo, 971 00:39:51,130 --> 00:39:54,060 možete jednostavno reći naziv string S, 972 00:39:54,060 --> 00:39:58,230 a zatim otvorite uglata zagrada, i zatim zatvorena uglata zagrada, s I 973 00:39:58,230 --> 00:39:58,780 sredina. 974 00:39:58,780 --> 00:40:01,430 I to je vrsta lijepo u tome To je vrsta izgleda kao kvadrat 975 00:40:01,430 --> 00:40:06,210 baš kao i trgova u kojima Zamyla a likovi postoje na toj slici tamo. 976 00:40:06,210 --> 00:40:09,970 >> Dakle, ako sam zapravo pokrenuti ovo Sada, neka je vidjeti što se događa. 977 00:40:09,970 --> 00:40:15,190 Napravite string 0 dot crta string 0, a onda sam 978 00:40:15,190 --> 00:40:16,720 će upisati Zamyla ime. 979 00:40:16,720 --> 00:40:19,428 Nema brz, jer nisam koristiti za ispis f, ali to je u redu. 980 00:40:19,428 --> 00:40:20,660 Ja samo znam što da radim. 981 00:40:20,660 --> 00:40:23,240 I doista, ona ispisuje Zamyla ime, jedan po retku. 982 00:40:23,240 --> 00:40:25,760 >> Sada ćemo se malo osvrće. 983 00:40:25,760 --> 00:40:28,461 Pretpostavimo da nisam znao o strlen i ja shvatio, 984 00:40:28,461 --> 00:40:31,460 Sve je u redu, nitko se neće imati ime veći od kao 50 znakova. 985 00:40:31,460 --> 00:40:36,360 Idemo naprijed i ponovno ovu i ponovno ga, a zatim upišite u Zamyla 986 00:40:36,360 --> 00:40:37,160 ponovo. 987 00:40:37,160 --> 00:40:40,850 Logično, što je Program će pokušati ispisati? 988 00:40:40,850 --> 00:40:49,545 Z-A-M-Y-L-A kao što su zatim 45 nepoznate bajta memorije. 989 00:40:49,545 --> 00:40:51,670 I doista, mi ćemo se vratiti ovoj ideji memorije. 990 00:40:51,670 --> 00:40:54,180 Ali samo logično, ako Zamyla ime je to dugo, 991 00:40:54,180 --> 00:40:56,450 po slici ovdje, što mi govori 992 00:40:56,450 --> 00:40:59,810 se držati tisak, držati ispis, zadržati tisak, držati ispis, držati ispis, 993 00:40:59,810 --> 00:41:03,781 sve do 50. karaktera, koji tko zna što će se dogoditi. 994 00:41:03,781 --> 00:41:05,030 Tako ćemo zapravo pogledati. 995 00:41:05,030 --> 00:41:06,720 Idemo upisati Zamyla. 996 00:41:06,720 --> 00:41:07,250 Zanimljivo. 997 00:41:07,250 --> 00:41:08,190 Mi se posrećilo. 998 00:41:08,190 --> 00:41:09,700 Samo cijela hrpa bijelog prostora. 999 00:41:09,700 --> 00:41:09,930 Oh. 1000 00:41:09,930 --> 00:41:11,120 Postoji jedan funky znak. 1001 00:41:11,120 --> 00:41:14,577 Izgleda vrsta kao čudan pitanje označiti postoji, ali postoji Zamyla ime. 1002 00:41:14,577 --> 00:41:15,660 Idemo stvarno ne osvrće. 1003 00:41:15,660 --> 00:41:20,000 Kako bi bilo da ispis 500 blokovi u nepoznato? 1004 00:41:20,000 --> 00:41:24,380 Idemo naprijed i čine ovaj kao i onda ponovno pokrenuti. 1005 00:41:24,380 --> 00:41:27,980 I neka je cijelog zaslona, ​​jer moramo vidjeti više prostora. 1006 00:41:27,980 --> 00:41:30,460 Zamyla. 1007 00:41:30,460 --> 00:41:31,830 Posrećilo opet. 1008 00:41:31,830 --> 00:41:33,070 >> Dare smo dobili više osvrće? 1009 00:41:33,070 --> 00:41:36,070 Idemo više ne osvrće. 1010 00:41:36,070 --> 00:41:39,350 50.000 znakova. 1011 00:41:39,350 --> 00:41:41,390 To je većina sigurno nije dobra ideja. 1012 00:41:41,390 --> 00:41:41,890 U redu. 1013 00:41:41,890 --> 00:41:42,990 Napravite niz 0. 1014 00:41:42,990 --> 00:41:44,720 To će biti naš posljednji demo. 1015 00:41:44,720 --> 00:41:47,261 Zamyla. 1016 00:41:47,261 --> 00:41:48,632 Uh. 1017 00:41:48,632 --> 00:41:50,010 Uh. 1018 00:41:50,010 --> 00:41:50,680 U REDU. 1019 00:41:50,680 --> 00:41:54,407 Dakle, moja memorija stvarno prazna upravo sada, koja je zapravo vrsta povoljno. 1020 00:41:54,407 --> 00:41:55,990 Ono što pokušavam dobiti to-- redu. 1021 00:41:55,990 --> 00:41:57,614 I sada sam samo ću dobiti osvrće. 1022 00:41:57,614 --> 00:41:58,570 500.000. 1023 00:41:58,570 --> 00:42:03,860 Make-- idemo punom zaslonu ga. 1024 00:42:03,860 --> 00:42:04,990 Unesite. 1025 00:42:04,990 --> 00:42:05,490 Zamyla. 1026 00:42:05,490 --> 00:42:12,050 1027 00:42:12,050 --> 00:42:13,390 Idemo tamo. 1028 00:42:13,390 --> 00:42:15,610 Ja nemam pojma što je to je, ali to zvuči loše. 1029 00:42:15,610 --> 00:42:16,110 U redu. 1030 00:42:16,110 --> 00:42:20,322 A u stvari, uskoro, ako ste među sretan par u uredovno vrijeme 1031 00:42:20,322 --> 00:42:22,780 au problemu postaviti jedno, ti može vrlo dobro susresti ovo. 1032 00:42:22,780 --> 00:42:25,490 Segmentacija krivnja zapravo radi imaju dobro definirano značenje. 1033 00:42:25,490 --> 00:42:28,450 To znači nekakvu grešku se odnosi na segment memorije. 1034 00:42:28,450 --> 00:42:30,490 A u laik uvjete, to znači da je dotaknuo 1035 00:42:30,490 --> 00:42:34,780 memory-- koristili smo RAM-a na računalu da ne bi trebali imati pristup. 1036 00:42:34,780 --> 00:42:37,050 I to je ono što je i moćan i opasan također 1037 00:42:37,050 --> 00:42:39,910 o C je da ste zapravo ima neometan pristup 1038 00:42:39,910 --> 00:42:45,910 na cjelinu programu memorije ili bajtova ili RAM-a, točnije. 1039 00:42:45,910 --> 00:42:49,510 >> Dakle, iako Zamyla ime je duga samo šest znakova, 1040 00:42:49,510 --> 00:42:51,450 Ja još uvijek mogu otići nigdje u spomen želim. 1041 00:42:51,450 --> 00:42:53,491 I usput, ako ste ikad pročitao neki članak 1042 00:42:53,491 --> 00:42:55,610 tijekom godina o nekim poslužitelj ili neki program 1043 00:42:55,610 --> 00:42:58,654 uzimajući napuknut ili sjeckan to uzeti prednost nečemu 1044 00:42:58,654 --> 00:43:00,820 zove buffer overflow iskoristiti da ćemo zapravo 1045 00:43:00,820 --> 00:43:04,970 govoriti o nekoliko tjedana, to je uglavnom se odnosi na neki način prevariti 1046 00:43:04,970 --> 00:43:09,090 računalo u ide dobro izvan granica memorije 1047 00:43:09,090 --> 00:43:11,410 da bi trebali imati i pronalaženje nešto sočno 1048 00:43:11,410 --> 00:43:13,530 u tome memory-- lozinku, možda, način 1049 00:43:13,530 --> 00:43:16,990 od zaobilazi neki serijski broj ček, ili samo općenito mogućnosti 1050 00:43:16,990 --> 00:43:20,360 izigrati računalo izvršava Kod koji nije bio namijenjen. 1051 00:43:20,360 --> 00:43:22,360 Ali neka se vratiti stvarnost za samo trenutak 1052 00:43:22,360 --> 00:43:24,550 gdje je ovaj program bio provodi uz strlen, 1053 00:43:24,550 --> 00:43:26,110 i uvesti jednu stvar ovdje. 1054 00:43:26,110 --> 00:43:30,030 Što je novo među tim top tri linije? 1055 00:43:30,030 --> 00:43:30,910 >> Dakle niz točkica h. 1056 00:43:30,910 --> 00:43:35,490 Ispada da postoji ova knjižnica zove Gudački Dot H, ili Gudački knjižnica, 1057 00:43:35,490 --> 00:43:38,490 čiji je zaglavlje datoteke, takoreći, je niz točkica h da mi daje 1058 00:43:38,490 --> 00:43:40,860 Pristup ovom strlen funkciju. 1059 00:43:40,860 --> 00:43:43,841 Ako sam propustio da, prevodilac je će vikati na mene u nekom obliku. 1060 00:43:43,841 --> 00:43:44,590 Ali znate što? 1061 00:43:44,590 --> 00:43:46,090 Sada se stvarno nijansiranim. 1062 00:43:46,090 --> 00:43:50,820 U skladu 22, nešto vrsta od inefficient-- loše osmišljen, 1063 00:43:50,820 --> 00:43:53,990 arguably-- o ovom liniju koda. 1064 00:43:53,990 --> 00:43:56,280 Razmislite o tome kako za-petlje provode 1065 00:43:56,280 --> 00:44:00,140 a što korake dogoditi opet i opet again-- inicijalizacije, 1066 00:44:00,140 --> 00:44:04,110 stanje, kod koje dobiva izvršiti zatim prirast 1067 00:44:04,110 --> 00:44:07,880 ili promjena, onda je stanje, zatim kod, zatim promjene, a zatim 1068 00:44:07,880 --> 00:44:11,280 uvjet, onda je broj, zatim promjene, i tako dalje. 1069 00:44:11,280 --> 00:44:15,320 Dakle, ono što bi moglo biti malo zabrinjavajuće ili loše učinio ovdje? 1070 00:44:15,320 --> 00:44:16,387 Da, u plavom. 1071 00:44:16,387 --> 00:44:18,220 PUBLIKA: Strlen je pozvao mnogo, mnogo puta. 1072 00:44:18,220 --> 00:44:20,654 1073 00:44:20,654 --> 00:44:21,320 SPEAKER 1: Da. 1074 00:44:21,320 --> 00:44:23,700 Dakle strlen naziva mnogo puta, ali ono što je 1075 00:44:23,700 --> 00:44:27,113 duljina Zamyla ime na Prvi put se petlja izvršava? 1076 00:44:27,113 --> 00:44:27,860 >> PUBLIKA: Šest. 1077 00:44:27,860 --> 00:44:28,110 >> SPEAKER 1: Šest. 1078 00:44:28,110 --> 00:44:30,976 Pa, što je duljina njenog imena drugi put kod izvršava? 1079 00:44:30,976 --> 00:44:31,432 >> PUBLIKA: Šest. 1080 00:44:31,432 --> 00:44:31,890 >> SPEAKER 1: U redu. 1081 00:44:31,890 --> 00:44:32,720 To je još šest. 1082 00:44:32,720 --> 00:44:33,220 Pravo? 1083 00:44:33,220 --> 00:44:35,260 Zarla ime nema promjene, čak i ako tražim 1084 00:44:35,260 --> 00:44:38,240 na samo dio slova u njeno ime. 1085 00:44:38,240 --> 00:44:41,349 I tako je činjenica da sam uspješno pita to pitanje, što je 1086 00:44:41,349 --> 00:44:44,640 duljina Zamyla, što je duljina od Zamyla, što je duljina Zamyla, 1087 00:44:44,640 --> 00:44:47,990 šest zasebnih puta, ili sedam čak, samo je glupo, 1088 00:44:47,990 --> 00:44:50,390 jer to je nepromjenjiv da odgovor. 1089 00:44:50,390 --> 00:44:53,550 I što sam mogao zapravo to je this-- u nizu jednom 1090 00:44:53,550 --> 00:44:55,680 Imam marginalno bolju verziju ovdje. 1091 00:44:55,680 --> 00:45:00,110 There-- whoops-- niz dvije Imam marginalno bolje verziju u kojoj 1092 00:45:00,110 --> 00:45:05,010 Ja this-- umjesto samo inicijalizacije I na 0, ja zarezom 1093 00:45:05,010 --> 00:45:07,990 proglasiti drugu varijablu nazvanu n- ja ne moram opet reći int. 1094 00:45:07,990 --> 00:45:09,220 Ne treba, zapravo. 1095 00:45:09,220 --> 00:45:10,380 Ali kažem nje. 1096 00:45:10,380 --> 00:45:13,610 A onda sam inicijalizirati n strlen n, tako da je sada 1097 00:45:13,610 --> 00:45:17,110 koliko puta se strlen se izvršava u ukupno? 1098 00:45:17,110 --> 00:45:17,610 Samo jednom. 1099 00:45:17,610 --> 00:45:20,257 I tako to je ono što mislimo ranije o boljem dizajnu. 1100 00:45:20,257 --> 00:45:23,090 Zapravo jednom je vaš broj je ispravan, ide natrag i razmišljanja kroz, 1101 00:45:23,090 --> 00:45:26,820 sam koristeći samo memorije ili kao par sekundi 1102 00:45:26,820 --> 00:45:30,409 ili milisekundi vremena računalo kao moguće provesti neki problem? 1103 00:45:30,409 --> 00:45:32,200 A ja ću za pomicanje i upravo spomenuti 1104 00:45:32,200 --> 00:45:34,283 da je ovo spominjanje od null u ovoj verziji, 1105 00:45:34,283 --> 00:45:36,390 ali ćemo se vratiti na to prije dugo. 1106 00:45:36,390 --> 00:45:41,010 Jer za sada, neka je pogledati na kojoj će ovo nas vodi. 1107 00:45:41,010 --> 00:45:44,110 Dakle, jedan, ispada da sada kada imamo mogućnost 1108 00:45:44,110 --> 00:45:46,860 gledati na pojedine znakove, možemo iskoristiti nešto 1109 00:45:46,860 --> 00:45:50,807 iz tjedna 0 da je vrlo kompliciranih i vrsta nezanimljiva u to vrijeme. 1110 00:45:50,807 --> 00:45:53,390 Ali sada, a pogotovo kad smo doći do Kriptografija u tjedan dana, 1111 00:45:53,390 --> 00:45:54,820 to će biti prilično snažan. 1112 00:45:54,820 --> 00:45:57,450 Ispada da s nekim Podaci types-- Ints i pluta 1113 00:45:57,450 --> 00:46:00,300 i znakova i žice i Drugi things-- neki od njih 1114 00:46:00,300 --> 00:46:02,800 može se vrlo jednostavno pretvoriti u drugu. 1115 00:46:02,800 --> 00:46:05,840 >> Na primjer, kada smo razgovarali o ASCII neko vrijeme ago-- evo 1116 00:46:05,840 --> 00:46:07,796 velika slova putem M, točka, točka, 1117 00:46:07,796 --> 00:46:12,530 dot-- rekao mi da postoji mapiranje između tih slova i brojeva. 1118 00:46:12,530 --> 00:46:14,970 A u stvari, to vrijedi za velika slova, kao dobro. 1119 00:46:14,970 --> 00:46:17,470 Mala je a 97, kapital je a 65. 1120 00:46:17,470 --> 00:46:20,860 I tu je broj u ASCII, što je upravo to mapiranje 1121 00:46:20,860 --> 00:46:23,240 sustav za sve one drugih pisama. 1122 00:46:23,240 --> 00:46:25,030 Dakle, što to znači? 1123 00:46:25,030 --> 00:46:28,390 Pa, ja ću ići naprijed i otvoriti se u realnom brzo nešto što se zove 1124 00:46:28,390 --> 00:46:31,240 ASCII 0, od kojih je većina je komentari. 1125 00:46:31,240 --> 00:46:33,860 I opet online možete uvijek Pogled kroz komentare. 1126 00:46:33,860 --> 00:46:36,180 >> A pogledajte što je to će učiniti. 1127 00:46:36,180 --> 00:46:38,410 Tako da je dobio glavnu ulogu. 1128 00:46:38,410 --> 00:46:41,490 Ja sam hard-coded brojeve samo za Sada, jer znam što radim. 1129 00:46:41,490 --> 00:46:42,950 Znam što želim vidjeti ovdje. 1130 00:46:42,950 --> 00:46:45,220 I ja sam inicijalizacije do 65. 1131 00:46:45,220 --> 00:46:48,490 I ja sam brojati do kroz 26 slova ukupno. 1132 00:46:48,490 --> 00:46:52,990 A što ću ispisati jednu liniju na vrijeme 1133 00:46:52,990 --> 00:46:54,930 ako može protumačiti istaknute linije? 1134 00:46:54,930 --> 00:46:55,970 Što dobiva tiskani? 1135 00:46:55,970 --> 00:46:56,797 Da. 1136 00:46:56,797 --> 00:46:57,264 >> PUBLIKA: Hoćete ispisati pismo koje 1137 00:46:57,264 --> 00:46:59,805 odgovara karti Pismo vrijednost i broj vrijednosti? 1138 00:46:59,805 --> 00:47:01,199 1139 00:47:01,199 --> 00:47:01,990 SPEAKER 1: Točno. 1140 00:47:01,990 --> 00:47:04,740 Idem ispisali pismo odgovara cjelobrojna vrijednost, 1141 00:47:04,740 --> 00:47:06,131 i obrnuto, kao što slijedi. 1142 00:47:06,131 --> 00:47:08,880 Pa ovo je netko rekao ranije, je samo rezervirano mjesto za char. 1143 00:47:08,880 --> 00:47:09,490 Još uvijek je. 1144 00:47:09,490 --> 00:47:12,280 To, naravno, je rezervirano mjesto ima li int-- nije nova linija. 1145 00:47:12,280 --> 00:47:18,140 A sada primijetiti, moj prvi vrijednost koja Ja sam plugging u za to rezervirano mjesto 1146 00:47:18,140 --> 00:47:22,320 ne samo ja govorim, u zagradama, char ja, 1147 00:47:22,320 --> 00:47:26,700 koje je usputna char je govori prevodilac, liječiti I 1148 00:47:26,700 --> 00:47:28,490 ne kao što je to, što je broj. 1149 00:47:28,490 --> 00:47:30,490 Tretirajte ga kao stvarnog karaktera. 1150 00:47:30,490 --> 00:47:34,490 Dok druge vrijednosti sam plugging in-- I-- samo treba biti broj. 1151 00:47:34,490 --> 00:47:38,140 >> Dakle, ako sam sastaviti ovaj program-- tako da je ovo napraviti ASCII 0, 1152 00:47:38,140 --> 00:47:41,720 dot Slash ASCII 0-- sam samo dobiti ovo zgodan mali grafikon koji 1153 00:47:41,720 --> 00:47:44,950 mi pokazuje sve moguće preslikavanja bez da ga misle 1154 00:47:44,950 --> 00:47:46,450 kroz ili to shvatiti na moj posjedovati. 1155 00:47:46,450 --> 00:47:48,783 I ja sam također ispis, primijetiti mala slova, 1156 00:47:48,783 --> 00:47:51,410 jer nekoliko redaka kasnije, sam Također ispisati ovu mapiranje 1157 00:47:51,410 --> 00:47:53,737 kao i, što je samo kažu da kad jednom shvatiti 1158 00:47:53,737 --> 00:47:55,570 što se događa ispod napa, možeš 1159 00:47:55,570 --> 00:47:57,111 automatski pretvoriti natrag i naprijed. 1160 00:47:57,111 --> 00:48:00,160 A u stvari, ako bilo koji od vas sve je to učinio u osnovnoj školi 1161 00:48:00,160 --> 00:48:03,490 ili čuo o nekome mitski uzimanje bilješke 1162 00:48:03,490 --> 00:48:05,620 i to prolazi na njegov ili njezina prijateljica u razredu, 1163 00:48:05,620 --> 00:48:08,300 ali kodiran pisama poput postaje B, 1164 00:48:08,300 --> 00:48:11,240 i B postaje c, ili nešto složeniji od toga, dobro, 1165 00:48:11,240 --> 00:48:13,410 Kako bi vam ići oko provedbenih da kao dijete? 1166 00:48:13,410 --> 00:48:16,340 Pa, samo vrsta znali Postaje B, B postaje C, 1167 00:48:16,340 --> 00:48:19,700 ali matematički, Što je to dijete radi? 1168 00:48:19,700 --> 00:48:22,050 Što ste dodajući da svako slovo? 1169 00:48:22,050 --> 00:48:23,340 Efektivno, 1. 1170 00:48:23,340 --> 00:48:27,740 >> Dakle, kada promijenite A do točke B, to je vrsta kao što su mijenjanje 65 do 66, 1171 00:48:27,740 --> 00:48:29,590 što matematički znači samo dodajte 1. 1172 00:48:29,590 --> 00:48:33,300 I tako, ako ste bili na provedbu da je malo varljiv tehnika 1173 00:48:33,300 --> 00:48:36,380 za svog učitelja u kodu, što može učiniti upravo to upravo 1174 00:48:36,380 --> 00:48:38,552 dodavanjem jednog slova zajedno. 1175 00:48:38,552 --> 00:48:40,260 Dakle, prije nego dugo, smo će vidjeti kako ćemo 1176 00:48:40,260 --> 00:48:43,300 mogu iskoristiti da se zapravo iskreno otimati i dešifrirati 1177 00:48:43,300 --> 00:48:43,991 Informacije. 1178 00:48:43,991 --> 00:48:47,240 U međuvremenu, znamo da smo započeli uvesti par drugih knjižnica 1179 00:48:47,240 --> 00:48:48,990 here-- string jedan danas. 1180 00:48:48,990 --> 00:48:51,180 I vrlo korisna stranica nadamo se da ćete pronaći 1181 00:48:51,180 --> 00:48:55,010 naziva reference.cs50.net, koji nastavno osoblje su sastavili, 1182 00:48:55,010 --> 00:48:57,510 tako da ako želite gledati kako strlen djela, 1183 00:48:57,510 --> 00:48:59,300 možete početi tipkati Ime funkciju a, 1184 00:48:59,300 --> 00:49:02,890 kliknite strlen tamo, a zatim manje ugodno objašnjenje 1185 00:49:02,890 --> 00:49:03,700 će se pojaviti. 1186 00:49:03,700 --> 00:49:06,880 Ili, ako želite službeni Linux-based objašnjenje, 1187 00:49:06,880 --> 00:49:08,945 možete kliknuti više udoban u gornjem desnom kutu, i to 1188 00:49:08,945 --> 00:49:12,070 predstavit će iste informacije, ali u složenijim uvjetima. 1189 00:49:12,070 --> 00:49:15,070 To je koristan resurs zapravo znam što sve ne. 1190 00:49:15,070 --> 00:49:17,320 >> Sljedeći put ćemo pogledajte Ovaltine 1191 00:49:17,320 --> 00:49:20,070 i više, i predstaviti sebe u svijet kriptografije. 1192 00:49:20,070 --> 00:49:21,930 Prije toga, vidjet ćemo kasnije ovaj tjedan. 1193 00:49:21,930 --> 00:49:23,390 I sad, Colton Ogden. 1194 00:49:23,390 --> 00:49:26,730 Vidimo se u srijedu. 1195 00:49:26,730 --> 00:49:30,216 >> [Glazbom] 1196 00:49:30,216 --> 00:49:33,702 >> [Glazbom] 1197 00:49:33,702 --> 00:49:38,682 1198 00:49:38,682 --> 00:49:42,200 >> SPEAKER 1: Što [Bleep] radiš? 1199 00:49:42,200 --> 00:49:45,720 >> SPEAKER 1: Ja sam jeo moj desert? 1200 00:49:45,720 --> 00:49:47,160 Kako ćete ga jesti? 1201 00:49:47,160 --> 00:49:47,860 Sa svojim rukama? 1202 00:49:47,860 --> 00:49:54,050 1203 00:49:54,050 --> 00:49:57,940 >> [Glazbom] 1204 00:49:57,940 --> 00:50:03,453