1 00:00:00,000 --> 00:00:02,880 >> [MUSIC JOC] 2 00:00:02,880 --> 00:00:10,580 3 00:00:10,580 --> 00:00:13,500 >> SPEAKER 1: Aceasta este CS50 și acesta este începutul săptămânii două. 4 00:00:13,500 --> 00:00:18,400 Deci, să intrăm direct în ceva care este buggy, ca să spunem așa. 5 00:00:18,400 --> 00:00:24,015 Deci, aici este IDE CS50 si am tras în sus în avans acest screen-- naibii 6 00:00:24,015 --> 00:00:25,070 aceasta. 7 00:00:25,070 --> 00:00:25,760 Alertă spoiler. 8 00:00:25,760 --> 00:00:26,260 In regula. 9 00:00:26,260 --> 00:00:29,060 Am tras în sus acest ecran de aici, care are un program foarte simplu. 10 00:00:29,060 --> 00:00:32,659 Dacă vom derula în jos, cel mai de acest lucru este doar comentarii, 11 00:00:32,659 --> 00:00:36,730 Dar aici, în linii 13, prin 17 avem un program. 12 00:00:36,730 --> 00:00:40,580 >> Este punct de vedere sintactic valabil, ceea ce înseamnă că dacă Am compila, se va compila și rula, 13 00:00:40,580 --> 00:00:41,920 dar e buggy. 14 00:00:41,920 --> 00:00:47,330 Acest program susține în comentariile până sus că ar trebui să imprime 10 de stele, 15 00:00:47,330 --> 00:00:48,870 dar nu este așa. 16 00:00:48,870 --> 00:00:53,290 Și se bazează pe experiența dumneavoastră, sau în curând să fie o experiență cu C, 17 00:00:53,290 --> 00:00:56,820 poți discerne logic de ce acest lucru este, de fapt, buggy? 18 00:00:56,820 --> 00:00:57,804 Da? 19 00:00:57,804 --> 00:00:59,220 Audiența: Se merge de la zero la 10. 20 00:00:59,220 --> 00:01:01,884 Asta e 11 iterații. 21 00:01:01,884 --> 00:01:02,550 SPEAKER 1: Da. 22 00:01:02,550 --> 00:01:06,030 Deci, se va la zero up prin intermediul și egal cu 10, 23 00:01:06,030 --> 00:01:08,140 care, desigur, este de 11 iterații. 24 00:01:08,140 --> 00:01:10,020 Deci, o să print, într-adevăr, 11 stele. 25 00:01:10,020 --> 00:01:13,040 Deci, convenția informatică în cele mai multe limbaje de programare 26 00:01:13,040 --> 00:01:15,270 este, într-adevăr, doar pentru a începe numărarea de la zero, 27 00:01:15,270 --> 00:01:18,800 dar conta până la, dar nu prin valoare care de fapt pasă. 28 00:01:18,800 --> 00:01:21,216 >> Acum, acest lucru este un lucru care nevoie de un pic folosit pentru obtinerea 29 00:01:21,216 --> 00:01:25,350 și chiar Scratch, conceput ca este pentru non programatori sau non calculator 30 00:01:25,350 --> 00:01:28,070 oameni de stiinta si pentru copii în mare parte, este conceput pentru a avea 31 00:01:28,070 --> 00:01:29,570 începe numărarea în general, la o. 32 00:01:29,570 --> 00:01:30,277 Și asta e bine. 33 00:01:30,277 --> 00:01:33,110 Puteți începe numărarea absolut la o dacă e mai confortabil. 34 00:01:33,110 --> 00:01:37,210 Și conta până la la 10, dar iti vei da seama mai ales în această săptămână 35 00:01:37,210 --> 00:01:39,950 și dincolo de care tocmai așa multe lucruri în programare 36 00:01:39,950 --> 00:01:42,465 presupunem că 0 este primul cifre cu care puteți conta, 37 00:01:42,465 --> 00:01:45,590 care ai de gând să găsească mai ușor doar pentru a ajunge în acest obicei de pornire 38 00:01:45,590 --> 00:01:49,490 de la zero și de numărare până la valoarea îți pasă acum de la 39 00:01:49,490 --> 00:01:49,990 obține merge. 40 00:01:49,990 --> 00:01:50,990 >> Deci, care a stabilit că. 41 00:01:50,990 --> 00:01:53,670 Am schimbat mai puțin decât sau este egal cu doar mai puțin. 42 00:01:53,670 --> 00:01:56,050 Să aruncăm o privire la un al doilea exemplu aici. 43 00:01:56,050 --> 00:01:59,585 >> Deci, acest program prea susține în ei comentarii până sus că ar trebui să imprime 44 00:01:59,585 --> 00:02:02,260 zece stele, dar nu. 45 00:02:02,260 --> 00:02:05,540 Care este bug-ul aici? 46 00:02:05,540 --> 00:02:07,930 >> Deci, what-- și îmi pare rău, să fie clar. 47 00:02:07,930 --> 00:02:08,610 10 stele. 48 00:02:08,610 --> 00:02:11,644 Câte unul pe linie, dar nu. 49 00:02:11,644 --> 00:02:14,810 Deci, de fapt, lasă-mă să merg mai departe și compila aceasta pentru că este un pic mai puțin 50 00:02:14,810 --> 00:02:16,900 clar pe baza acestei descriere. 51 00:02:16,900 --> 00:02:18,720 Lasă-mă să intru în directorul nostru sursă. 52 00:02:18,720 --> 00:02:25,110 Asigurați-buggy un slash punct, un buggy. 53 00:02:25,110 --> 00:02:28,680 OK, am vedea 11 stele, care este încă problematică, 54 00:02:28,680 --> 00:02:30,090 dar sunt, de asemenea, toate într-o singură linie. 55 00:02:30,090 --> 00:02:31,500 Care este problema aici? 56 00:02:31,500 --> 00:02:32,339 Da. 57 00:02:32,339 --> 00:02:33,255 Audiența: [neauzit]. 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 Deci, aceasta este o subtilitate care s-ar putea amintesc mă face scurtă mențiune. 61 00:02:40,210 --> 00:02:42,793 Chiar dacă totul pare destul de, și este frumos indentat, 62 00:02:42,793 --> 00:02:45,850 și un fel de pare-Scratch ca în care linia 16 și 17 sunt, 63 00:02:45,850 --> 00:02:47,600 într-adevăr, indentate sub care pentru bucla. 64 00:02:47,600 --> 00:02:48,400 Asta e imaterial. 65 00:02:48,400 --> 00:02:50,460 Computerul nu știu sau vezi spațiu alb. 66 00:02:50,460 --> 00:02:52,910 Spațiu alb este doar pentru noi, oamenii, stilistic. 67 00:02:52,910 --> 00:02:57,010 Computerul știe când aveți acolade, care ar putea, într-adevăr, 68 00:02:57,010 --> 00:02:58,280 rezolva această problemă. 69 00:02:58,280 --> 00:03:02,350 >> Deci, dacă ne-am dus de fapt și pune în mod explicit în aceste acolade 70 00:03:02,350 --> 00:03:05,220 care ar rezolva această problemă prin ceea ce face clar pentru compilatorul 71 00:03:05,220 --> 00:03:07,930 că de fapt, doresc să execute două linii de cod din nou, 72 00:03:07,930 --> 00:03:09,220 și din nou, și din nou. 73 00:03:09,220 --> 00:03:11,680 Dar ceea ce este explicația fundamental? 74 00:03:11,680 --> 00:03:12,180 Dreapta? 75 00:03:12,180 --> 00:03:15,260 Noi nu strict necesar cret bretele tot timpul, 76 00:03:15,260 --> 00:03:18,210 chiar dacă este probabil cel mai practică pentru a intra în acest obicei, oricum 77 00:03:18,210 --> 00:03:20,878 chiar dacă se adaugă două caractere codul. Ce? 78 00:03:20,878 --> 00:03:22,380 >> Audiența: [inaudibil]? 79 00:03:22,380 --> 00:03:24,630 SPEAKER 1: Da, așa că e o altă soluție cu totul. 80 00:03:24,630 --> 00:03:25,130 Dreapta? 81 00:03:25,130 --> 00:03:28,250 Mai ales în cazul în care la prima vedere nu aveți Apreciez ce se întâmplă. 82 00:03:28,250 --> 00:03:31,070 Ei bine, cu siguranță am putea doar face două lucruri deodată 83 00:03:31,070 --> 00:03:32,710 și doar a evita problema cu totul. 84 00:03:32,710 --> 00:03:36,080 Și asta e bine, dar acum, în scopuri de astăzi, ceea ce 85 00:03:36,080 --> 00:03:38,200 este explicația pentru bug-ul? 86 00:03:38,200 --> 00:03:39,810 De ce au fost toate aceste stele de pe o linie? 87 00:03:39,810 --> 00:03:40,806 Da? 88 00:03:40,806 --> 00:03:43,296 >> Audiența: Se pare că în cazul în care aveți o linie de cod, 89 00:03:43,296 --> 00:03:46,649 o poti face fara ele. 90 00:03:46,649 --> 00:03:47,440 SPEAKER 1: Exact. 91 00:03:47,440 --> 00:03:48,750 Aceasta este doar o convenție umană. 92 00:03:48,750 --> 00:03:50,750 Oamenii dau seama că este un puțin enervant sau plictisitor 93 00:03:50,750 --> 00:03:53,470 de a avea pentru a pune acolade toate din timp, dacă tot vrei să faci 94 00:03:53,470 --> 00:03:55,090 este executa o linie de cod. 95 00:03:55,090 --> 00:03:57,660 Deci, oamenii au decis unele timp în urmă că e bine. 96 00:03:57,660 --> 00:04:01,180 Dacă doriți pentru a pune toate de bucla dvs. pe care doar o linie de genul asta, 97 00:04:01,180 --> 00:04:04,030 asta e bine cu single- punct și virgulă la sfârșitul anului. 98 00:04:04,030 --> 00:04:07,210 Dar poți să faci un singur astfel de line fără acolade. 99 00:04:07,210 --> 00:04:09,900 >> Deci, atunci când ghidul de stil CS50 cum va indica, 100 00:04:09,900 --> 00:04:11,980 veți vedea că, în general, este bun obicei 101 00:04:11,980 --> 00:04:14,920 pentru a obține în acest lucru până când sunteți rătăcirea destul de confortabil 102 00:04:14,920 --> 00:04:17,404 din aceste tipuri de convenții și de a face treaba ta. 103 00:04:17,404 --> 00:04:18,820 Atâta timp cât ești de sine consistent. 104 00:04:18,820 --> 00:04:21,540 Și vom vorbi mai mult despre stil un pic mai târziu astăzi. 105 00:04:21,540 --> 00:04:23,200 >> Deci, lasă-mă să deschid un alt program. 106 00:04:23,200 --> 00:04:24,930 Desigur, ar trebui să ne stabilească faptul că 10 la fel de bine. 107 00:04:24,930 --> 00:04:32,470 Lasă-mă să mergeți mai departe și scrie o reală program de repede ca voi suna, 108 00:04:32,470 --> 00:04:38,140 să zicem, bucla dot C. Deci, bucla dot C. Și în buclă dot C am de gând să aibă, 109 00:04:38,140 --> 00:04:41,970 includ I Standard / O dot H int void main. 110 00:04:41,970 --> 00:04:44,020 Și acum hai să facem, într-adevăr, o buclă. 111 00:04:44,020 --> 00:04:46,020 Deci, 4 int i devine zero. 112 00:04:46,020 --> 00:04:48,660 I este mai puțin decât, să spunem, 50. 113 00:04:48,660 --> 00:04:49,950 I plus, plus. 114 00:04:49,950 --> 00:04:53,350 Și apoi aici să mergeți mai departe și se imprimă F. 115 00:04:53,350 --> 00:04:56,400 Și apoi vreau să imprimați I și o nouă linie de, punct și virgulă. 116 00:04:56,400 --> 00:05:00,015 >> Și aceasta ar trebui să imprima toate Numerele de la zero, până la 50? 117 00:05:00,015 --> 00:05:02,900 118 00:05:02,900 --> 00:05:03,680 Câteva cap da din cap. 119 00:05:03,680 --> 00:05:04,270 Câteva nr. 120 00:05:04,270 --> 00:05:05,339 Care este bug-ul deja? 121 00:05:05,339 --> 00:05:06,630 Care este greșeala ușor am făcut? 122 00:05:06,630 --> 00:05:07,170 Da. 123 00:05:07,170 --> 00:05:08,544 >> Audiența: [neauzit]. 124 00:05:08,544 --> 00:05:09,210 SPEAKER 1: Da. 125 00:05:09,210 --> 00:05:11,520 Deci, chiar dacă se pare ca acest lucru este ceea ce am de gând, 126 00:05:11,520 --> 00:05:13,920 Amintim că eu, de asemenea, doar un caracter ASCII. 127 00:05:13,920 --> 00:05:14,955 >> Deci, dacă eu spun, de imprimare "I." 128 00:05:14,955 --> 00:05:16,670 Se întâmplă literalmente pentru a imprima I. Deci, dacă am 129 00:05:16,670 --> 00:05:20,030 doresc să plug-in un substituent Valoarea de fapt am nevoie pentru a face acest lucru 130 00:05:20,030 --> 00:05:22,630 și apoi conectați lung în valoarea I dinamic. 131 00:05:22,630 --> 00:05:25,200 În caz contrar, eu sunt doar de gând să obține 50 I de pe ecran. 132 00:05:25,200 --> 00:05:28,140 >> Deci, lasă-mă să merg mai departe și face această buclă, rula, 133 00:05:28,140 --> 00:05:30,650 și, într-adevăr, avem toate drumul până prin 49. 134 00:05:30,650 --> 00:05:34,140 Și dacă derulați înapoi în timp văd numărul zero la început. 135 00:05:34,140 --> 00:05:36,050 >> Ei bine, ce dacă am un fel de bară? 136 00:05:36,050 --> 00:05:37,800 Ce se întâmplă dacă fac acest lucru? 137 00:05:37,800 --> 00:05:40,120 Doar pentru că nu mă gândesc. 138 00:05:40,120 --> 00:05:40,970 Ce-i acest program. 139 00:05:40,970 --> 00:05:43,970 După re compilat și a alerga, de gând să faci în mod logic? 140 00:05:43,970 --> 00:05:44,870 >> Audiența: Nimic. 141 00:05:44,870 --> 00:05:45,661 >> SPEAKER 1: Nimic. 142 00:05:45,661 --> 00:05:47,156 De ce este asta? 143 00:05:47,156 --> 00:05:49,124 >> Audiența: I este conceput pentru zero. 144 00:05:49,124 --> 00:05:51,899 Deci, condiția este falsă. 145 00:05:51,899 --> 00:05:52,940 SPEAKER 1: Da, exact. 146 00:05:52,940 --> 00:05:55,110 Tot codul este corect, punct de vedere sintactic. 147 00:05:55,110 --> 00:05:57,310 Acest lucru va compila, acest cod va rula, dar nu este 148 00:05:57,310 --> 00:06:00,110 de gând să faci ceva util pentru că am inițializa I la zero. 149 00:06:00,110 --> 00:06:02,240 Apoi am verifica, este ca eu mai mare de 50? 150 00:06:02,240 --> 00:06:03,810 În mod evident, nu, nu e. 151 00:06:03,810 --> 00:06:05,760 Deci bucla nu execută deloc. 152 00:06:05,760 --> 00:06:09,580 >> Ce se întâmplă dacă facem ceva un pic mai mult nesăbuit? 153 00:06:09,580 --> 00:06:12,890 Deci, ce se întâmplă dacă facem ca int i devine zero. 154 00:06:12,890 --> 00:06:15,640 Și acum să-mi folosesc în timp ce buclă, care a fost o altă condiție. 155 00:06:15,640 --> 00:06:21,810 Și în timp ce am spus, în timp ce eu este mai mare decât sau egale cu zero, iar apoi aici am 156 00:06:21,810 --> 00:06:26,070 mergeți mai departe și de a salva fișierul, face bucla. 157 00:06:26,070 --> 00:06:27,070 Și sunt pe cale să-l rulați. 158 00:06:27,070 --> 00:06:30,230 Ce am de gând să văd acest timp cu o buclă în timp ce? 159 00:06:30,230 --> 00:06:30,852 Da. 160 00:06:30,852 --> 00:06:32,120 >> Audiența: o buclă infinită? 161 00:06:32,120 --> 00:06:35,360 >> SPEAKER 1: o buclă infinită? 162 00:06:35,360 --> 00:06:36,662 Da, și de ce? 163 00:06:36,662 --> 00:06:38,120 Audiența: Pentru că e mereu zero. 164 00:06:38,120 --> 00:06:38,786 SPEAKER 1: Da. 165 00:06:38,786 --> 00:06:40,100 Deci, eu este inițializată ca zero. 166 00:06:40,100 --> 00:06:44,470 Bineînțeles că este întotdeauna mai mare mică sau egală cu 0 ca urmare. 167 00:06:44,470 --> 00:06:46,460 Deci, eu doar de gând să aceasta infinit. 168 00:06:46,460 --> 00:06:49,850 Și acum, aceasta a venit o dată sau de două ori pentru a capetelor cursului. 169 00:06:49,850 --> 00:06:52,417 Ce se întâmplă atunci când au o buclă infinită? 170 00:06:52,417 --> 00:06:53,314 >> Audiența: Controlul C. 171 00:06:53,314 --> 00:06:53,980 SPEAKER 1: Da. 172 00:06:53,980 --> 00:06:56,250 Deci, de control C va răspunde în cele din urmă. 173 00:06:56,250 --> 00:06:59,520 Din păcate, ne-am imprimate milioane și milioane de zerouri deja 174 00:06:59,520 --> 00:07:01,520 și așa computerul are un fel de ajuns înaintea mea. 175 00:07:01,520 --> 00:07:03,394 Deci, o să ignore mă un pic. 176 00:07:03,394 --> 00:07:06,560 Dar, dacă a lovit doar de control C câteva ori pe tastaturii Mac sau PC, 177 00:07:06,560 --> 00:07:08,790 în cele din urmă ar trebui să, într-adevăr, să rezilieze. 178 00:07:08,790 --> 00:07:11,770 Și dacă nu, vă vom arăta unele tehnici înainte de mult timp în cazul în care 179 00:07:11,770 --> 00:07:14,850 de fapt, poate ucide cu forța de programe, la fel ca în Windows și Mac OS, 180 00:07:14,850 --> 00:07:15,562 dacă este necesar. 181 00:07:15,562 --> 00:07:16,770 Dar hai să încercăm altceva. 182 00:07:16,770 --> 00:07:19,895 Să fapt incrementa I. Este acest lucru încă o să fie infinit? 183 00:07:19,895 --> 00:07:22,870 184 00:07:22,870 --> 00:07:25,140 Lasă-mă să rulați acest. 185 00:07:25,140 --> 00:07:27,090 Iar acum puteți fel de vezi ce se întâmplă. 186 00:07:27,090 --> 00:07:30,140 Acest lucru, de asemenea, este o buclă infinită. 187 00:07:30,140 --> 00:07:33,080 Dar acest lucru este un pic de o întrebare capcană. 188 00:07:33,080 --> 00:07:35,460 Se întâmplă acest lucru pentru a imprima numere pentru totdeauna? 189 00:07:35,460 --> 00:07:36,647 >> Audiența: Nu. 190 00:07:36,647 --> 00:07:37,230 SPEAKER 1: Nu 191 00:07:37,230 --> 00:07:37,620 Ce? 192 00:07:37,620 --> 00:07:38,820 Am auzit niște nr aici. 193 00:07:38,820 --> 00:07:41,859 Someone-- Da. 194 00:07:41,859 --> 00:07:44,275 Audiența: Nu aveți suficient biți pentru a menține într-adevăr merge. 195 00:07:44,275 --> 00:07:44,730 SPEAKER 1: Bine. 196 00:07:44,730 --> 00:07:46,000 Așa că nu au suficient biți pentru a continua. 197 00:07:46,000 --> 00:07:47,124 Deci, ce se va întâmpla? 198 00:07:47,124 --> 00:07:49,320 E doar de gând să se oprească? 199 00:07:49,320 --> 00:07:52,542 >> Audiența: La un moment dat se va închide the-- 200 00:07:52,542 --> 00:07:54,500 SPEAKER 1: Se va închide bucla în jos, dar de ce? 201 00:07:54,500 --> 00:07:57,950 Ce se va întâmpla la foarte sfârșitul granițele sale? 202 00:07:57,950 --> 00:07:58,479 Da? 203 00:07:58,479 --> 00:08:00,520 Audiența: Acesta va ciclu Înapoi la numere negative. 204 00:08:00,520 --> 00:08:02,900 SPEAKER 1: Pentru numere negative, sau dacă am fost doar tratarea pozitivă, 205 00:08:02,900 --> 00:08:03,570 zero, cel puțin. 206 00:08:03,570 --> 00:08:04,550 Deci, da, absolut. 207 00:08:04,550 --> 00:08:08,059 Amintiți-vă că am văzut ultima dată că, dacă incrementa biți dvs. de prea multe ori, 208 00:08:08,059 --> 00:08:10,225 și acolo Fore de preaplin capacitatea Int dvs. 209 00:08:10,225 --> 00:08:13,058 sau indiferent de tipul de date este, ești O să încheie în jurul, probabil, 210 00:08:13,058 --> 00:08:14,020 două numere negative. 211 00:08:14,020 --> 00:08:16,644 Sau dacă ați specifica faptul că dvs. Gama ar trebui să fie numai pozitiv, 212 00:08:16,644 --> 00:08:18,560 pe care le puteți face, dar noi nu am văzut asta încă, 213 00:08:18,560 --> 00:08:21,420 s-ar putea ajunge cel puțin înapoi la zero. 214 00:08:21,420 --> 00:08:22,410 Deși, de fapt, da. 215 00:08:22,410 --> 00:08:24,320 În acest caz, negativ numere, caz în care 216 00:08:24,320 --> 00:08:26,870 bucla este de gând să pună capăt pentru că eu nu este, de fapt, 217 00:08:26,870 --> 00:08:29,220 mai mare sau egală cu zero, dacă este negativ. 218 00:08:29,220 --> 00:08:31,780 >> Deci, din păcate, cum timp ar trebui să ne așteptăm? 219 00:08:31,780 --> 00:08:35,490 Chiar acum suntem de până la ceea ce, de 2 milioane de-ish? 220 00:08:35,490 --> 00:08:37,705 Suntem ca 2 miliarde de, vom trebui să aștepte 221 00:08:37,705 --> 00:08:39,330 până când vom putea vedea de fapt, acest simptom. 222 00:08:39,330 --> 00:08:46,200 Dar putem vedea un pic mai repede, maybe-- să vedem dacă putem întrerupe. 223 00:08:46,200 --> 00:08:46,700 Haide. 224 00:08:46,700 --> 00:08:49,500 225 00:08:49,500 --> 00:08:51,331 Chiar și meniurile apar lent. 226 00:08:51,331 --> 00:08:51,830 In regula. 227 00:08:51,830 --> 00:08:54,270 Deci, ne vom întoarce la asta înainte de mult timp. 228 00:08:54,270 --> 00:08:56,320 Este un bun time-- la naiba, pui. 229 00:08:56,320 --> 00:08:58,280 >> Este un moment bun pentru unele anunțuri. 230 00:08:58,280 --> 00:09:01,225 Deci, dacă s-ar putea plăcea să se angajeze în YHack, 231 00:09:01,225 --> 00:09:03,600 care este un eveniment fiind sponsorizat de prietenii noștri de la Yale. 232 00:09:03,600 --> 00:09:05,990 Și, într-adevăr, o parte din cursului TFS la Yale sunt implicate cu aceasta. 233 00:09:05,990 --> 00:09:08,610 YHack este un internațional hack-a-thon găzduit de și a avut loc 234 00:09:08,610 --> 00:09:12,395 la Yale, reunind 1.500 cum ar fi hackeri minte și reclamele toate 235 00:09:12,395 --> 00:09:13,120 peste lume. 236 00:09:13,120 --> 00:09:14,610 Dacă acest lucru este de interes, să ia o privire aici. 237 00:09:14,610 --> 00:09:17,401 Dacă acest lucru este prea scurt pe ecran, să ia o privire la diapozitive de astăzi 238 00:09:17,401 --> 00:09:19,622 pentru URL-ul pentru yhack.org. 239 00:09:19,622 --> 00:09:21,080 Deci, de asemenea, o câteva anunțuri rapide. 240 00:09:21,080 --> 00:09:24,410 Deci, în mod oficial secțiuni va începe săptămână atât aici, cât și New Haven următoare. 241 00:09:24,410 --> 00:09:27,660 Păstrați în minte veți fi obtinerea unui e-mail mai târziu în acest weekend, cel mai probabil. 242 00:09:27,660 --> 00:09:29,390 Este nevoie de o lungă perioadă de timp pentru CS50 la secțiuni, 243 00:09:29,390 --> 00:09:32,080 având în vedere toți oamenii în clasă și toată lumea se deplasează în jurul. 244 00:09:32,080 --> 00:09:34,871 Și toate Fellows de predare " programe sunt, de asemenea, încă solidificarea, 245 00:09:34,871 --> 00:09:38,110 dar Stay tuned pentru un e-mail și, dacă este nevoie fi, puteți re-secțiune după. 246 00:09:38,110 --> 00:09:39,580 >> Study.cs50.net. 247 00:09:39,580 --> 00:09:43,280 Deci, chiar dacă ești un participant constant la secțiuni, își dau seama că aproape toate 248 00:09:43,280 --> 00:09:46,786 din resursele pe care le folosesc în secțiunile sunt disponibile publicului la CS50 249 00:09:46,786 --> 00:09:48,460 Studia la acest URL aici. 250 00:09:48,460 --> 00:09:51,630 Deci, dacă doriți vreodată să re revizuire material din secțiune, sau de a citi mai departe, 251 00:09:51,630 --> 00:09:54,170 sau nu se poate face ceva saptamana, dau seama că slide-uri de propoziții, 252 00:09:54,170 --> 00:09:58,210 și probleme, și definiții, și mai sunt toate acolo, de asemenea. 253 00:09:58,210 --> 00:10:00,645 >> Orelor relua astăzi, și mâine, și miercuri, 254 00:10:00,645 --> 00:10:03,020 și joi verifica cursului site-ul pentru programul. 255 00:10:03,020 --> 00:10:05,690 >> Și, de asemenea, acum lansarea astăzi este CS50 Discutați. 256 00:10:05,690 --> 00:10:09,230 Deci, dacă și atunci când aveți întrebări pentru reciproc sau pentru personalul cursului, 257 00:10:09,230 --> 00:10:12,099 și, în general, de lucru sunt pe un anumit set problemă, 258 00:10:12,099 --> 00:10:15,015 dau seama că nu neapărat trebuie să apeleze la omul următoarea. 259 00:10:15,015 --> 00:10:17,810 Dacă nu e nimeni acolo, puteți ajunge la noi și colegii 260 00:10:17,810 --> 00:10:19,890 online prin intermediul CS50 Discutați. 261 00:10:19,890 --> 00:10:22,600 Deci, aceasta este o discuție bord pentru curs, 262 00:10:22,600 --> 00:10:24,550 și să realizeze că acest este, probabil, cel mai bun 263 00:10:24,550 --> 00:10:28,480 loc pentru a începe atunci când aveți întrebări atunci când în afara orelor de program 264 00:10:28,480 --> 00:10:29,470 în special. 265 00:10:29,470 --> 00:10:31,070 >> Prânz va începe în această săptămână prea. 266 00:10:31,070 --> 00:10:33,170 La Fire and Ice [Inaudibil] în New Haven. 267 00:10:33,170 --> 00:10:35,379 Aruncati o privire la cursului site-ul web pentru a RSVP. 268 00:10:35,379 --> 00:10:36,753 Primul venit, primul servit pentru asta. 269 00:10:36,753 --> 00:10:39,380 Dacă nu obține în această săptămână vom face aceste mai în fiecare vineri 270 00:10:39,380 --> 00:10:40,400 durata. 271 00:10:40,400 --> 00:10:41,830 >> OK, și acum un cuvânt despre clasificare. 272 00:10:41,830 --> 00:10:44,690 În special în intrăm problemă stabili un, care este în această săptămână, 273 00:10:44,690 --> 00:10:46,670 și problema set de două și după aceea. 274 00:10:46,670 --> 00:10:51,680 Cum vom merge despre evaluarea seturi P și evaluarea calității acestora? 275 00:10:51,680 --> 00:10:55,560 Deci, e de patru axe pe care le folosim în CS50, și sunt acestea patru aici. 276 00:10:55,560 --> 00:10:59,200 >> Domeniu de aplicare, care surprinde într-o numeric bază doar cât de mult a setului P 277 00:10:59,200 --> 00:10:59,860 ai aborda. 278 00:10:59,860 --> 00:11:02,890 Este aproximativ corespunde cu efort, și este modul nostru de a captura 279 00:11:02,890 --> 00:11:05,190 ai încercat jumătate P set, toate setului P. 280 00:11:05,190 --> 00:11:08,860 Aceasta este una ușor pentru a obține perfectă scorurile dacă faci, într-adevăr, 281 00:11:08,860 --> 00:11:11,020 încercați fiecare aspect al setului P. 282 00:11:11,020 --> 00:11:12,010 Deci, ține minte asta. 283 00:11:12,010 --> 00:11:13,420 >> Corectitudinea este exact acest lucru. 284 00:11:13,420 --> 00:11:17,760 Are munca ta cod ca caietul de sarcini și sub formă de soluție de probă personalul " 285 00:11:17,760 --> 00:11:19,730 sugerează că codul ar trebui, de fapt, locul de muncă. 286 00:11:19,730 --> 00:11:23,260 Verificați 50, dacă nu ați sa întâlnit totuși, este în P stabilit o specificație 287 00:11:23,260 --> 00:11:25,060 și, în general, va vă dau da / nu răspunsuri 288 00:11:25,060 --> 00:11:26,518 dacă codul este corect. 289 00:11:26,518 --> 00:11:30,680 Cel puțin până acum ca vom Pentru a evalua aceasta pe baza testelor 290 00:11:30,680 --> 00:11:32,430 că vom rula în acest program. 291 00:11:32,430 --> 00:11:33,850 >> Design-ul este mult mai subiectiv. 292 00:11:33,850 --> 00:11:35,994 Acest lucru este cât de bine scris este codul. 293 00:11:35,994 --> 00:11:38,410 Și acest lucru este ceva ce veți obține mai bine la timp, 294 00:11:38,410 --> 00:11:41,201 și este ceva că vom oferă mai mult feedback-ul de calitate pe. 295 00:11:41,201 --> 00:11:43,350 Și de proiectare aș putea Adică, înainte de mult vă 296 00:11:43,350 --> 00:11:47,650 ar putea fi ispitit în unele P setat pentru a face ceva loopingly, 297 00:11:47,650 --> 00:11:51,590 dar să aibă poate trei, sau patru, sau cinci bucle imbricate prim-plan sau în timp ce imbricate 298 00:11:51,590 --> 00:11:52,090 bucle. 299 00:11:52,090 --> 00:11:54,130 Asta în general ar trebui începe de a te face piti 300 00:11:54,130 --> 00:11:56,070 și ar fi, în general, Design rău luate în considerare. 301 00:11:56,070 --> 00:11:59,490 Și veți începe să vedeți în clasă și din moduri de clasă bune de a face lucrurile, 302 00:11:59,490 --> 00:12:02,920 modalități rele de a face lucruri pe care ar putea fi toate corecte, dar nu 303 00:12:02,920 --> 00:12:04,304 neapărat bine conceput. 304 00:12:04,304 --> 00:12:05,220 Ca scrierea unui eseu. 305 00:12:05,220 --> 00:12:08,100 S-ar putea fi capabil de a pune cuvintele pe o Pagina că sunt corect gramatical, 306 00:12:08,100 --> 00:12:10,016 dar eseul sau Teza sunt în este doar 307 00:12:10,016 --> 00:12:11,810 complet incoerent sau neconvingator. 308 00:12:11,810 --> 00:12:15,930 Și astfel încât ar putea fi analogul în THE lume scris de un design rău sau bun. 309 00:12:15,930 --> 00:12:18,490 >> Și stil, de asemenea, este destul de subiectiv. 310 00:12:18,490 --> 00:12:20,060 Dar cel puțin ne așteptăm consecvență. 311 00:12:20,060 --> 00:12:21,480 Acesta este modul în care destul de este codul. 312 00:12:21,480 --> 00:12:22,840 Sunt lucruri frumos indentate? 313 00:12:22,840 --> 00:12:26,600 Sunt variabile vă bine pe nume / Sunt toate de paranteze dumneavoastră și acolade 314 00:12:26,600 --> 00:12:27,920 aliniate așa cum ar trebui să fie? 315 00:12:27,920 --> 00:12:31,490 Avem un ghid de stil CS50 ca setul problemă pe care va indica la. 316 00:12:31,490 --> 00:12:33,730 Cei mai confortabil sunt bun venit să se abată de la acea 317 00:12:33,730 --> 00:12:35,771 atâta timp cât ești de sine coerente. 318 00:12:35,771 --> 00:12:38,020 Și acest lucru, de asemenea, este o lecție vom consolida în secțiune. 319 00:12:38,020 --> 00:12:40,990 Deci, dacă toate acestea a fost un pic rapid, realiza setul P și secțiunile 320 00:12:40,990 --> 00:12:42,900 va intra în mai multă profunzime, înainte de mult timp. 321 00:12:42,900 --> 00:12:45,490 >> Dar, în general, avem foarte puține cupe pentru CS50. 322 00:12:45,490 --> 00:12:48,170 Scorurile sunt, în general, pe o scară de la unu la trei, sau unul până la cinci. 323 00:12:48,170 --> 00:12:50,836 Suntem literally-- și eu nu pot spune acest lucru suficient în prima săptămână. 324 00:12:50,836 --> 00:12:51,582 Trei este bun. 325 00:12:51,582 --> 00:12:54,290 Deci, chiar dacă, da, trei din de cinci mod normal, matematic, 326 00:12:54,290 --> 00:12:57,240 ar putea fi un 60 la suta sau ca un minus D. 327 00:12:57,240 --> 00:12:58,840 Trei este, de fapt, bine. 328 00:12:58,840 --> 00:13:01,050 Și, de fapt, ne așteptăm cei mai mulți studenți din clasa 329 00:13:01,050 --> 00:13:04,280 pentru a începe termenul în jurul valorii de câte două, câte trei și, și patru labe. 330 00:13:04,280 --> 00:13:05,510 Probabil că nu atât de multe de cinci. 331 00:13:05,510 --> 00:13:06,661 Nu prea multe. Cele 332 00:13:06,661 --> 00:13:08,910 Dar, în general pentru a începe în la fața locului că dulce în curba 333 00:13:08,910 --> 00:13:11,694 astfel că, timp progreseaza, există de fapt o cameră pentru, 334 00:13:11,694 --> 00:13:13,360 și oportunități de progresie de sus. 335 00:13:13,360 --> 00:13:15,810 Deci, vă rugăm să nu echivalează cu trei de 60%. 336 00:13:15,810 --> 00:13:17,410 Este mult mai abstract decât atât. 337 00:13:17,410 --> 00:13:20,160 Formula cu care se calculează clasele se ponderează după cum urmează. 338 00:13:20,160 --> 00:13:21,610 Corectitudinea este în valoare de cel mai. 339 00:13:21,610 --> 00:13:23,010 Design este în valoare de un pic mai puțin. 340 00:13:23,010 --> 00:13:24,490 Stilul este în valoare de un pic mai puțin. 341 00:13:24,490 --> 00:13:26,950 Și, în general, acest surprinde cantitatea de timp 342 00:13:26,950 --> 00:13:29,800 care merge în obținerea fiecare din aceste axe doar dreapta. 343 00:13:29,800 --> 00:13:31,810 Stilul este foarte ușor, ar trebui să fie foarte rapid, 344 00:13:31,810 --> 00:13:33,657 dar este un obicei usor pentru a obține leneș despre. 345 00:13:33,657 --> 00:13:35,490 Corectitudinea ar putea să ia ai cele mai multe ori. 346 00:13:35,490 --> 00:13:38,990 Chasing jos unii ar putea bug ia acea oră în plus sau mai mult, 347 00:13:38,990 --> 00:13:41,737 și așa mai departe, de notare în cele din urmă că surprinde. 348 00:13:41,737 --> 00:13:43,070 Și așa, acum un cuvânt mai grave. 349 00:13:43,070 --> 00:13:45,240 Deoarece CS50 are distincție, pentru o mai bună 350 00:13:45,240 --> 00:13:47,440 sau pentru mai rău, de a fi poate mai bine familiarizat 351 00:13:47,440 --> 00:13:50,065 cu problemele academice onestitate decât cele mai multe orice alt curs. 352 00:13:50,065 --> 00:13:53,720 Și într-adevăr, este de cunoștințele mele, care trimitem mai mulți elevi, din păcate, 353 00:13:53,720 --> 00:13:56,690 în scopuri disciplinare în fiecare an, ca urmare. Asa ca, 354 00:13:56,690 --> 00:13:59,040 în interesul complet divulgarea, hai să vorbim pe scurt 355 00:13:59,040 --> 00:14:02,820 despre ceea ce se întâmplă în CS50, și ceea ce poate face, și ceea ce poate fi conștient de. 356 00:14:02,820 --> 00:14:05,530 >> Deci, aici din 2007, atunci când Am moștenit cursului, 357 00:14:05,530 --> 00:14:07,870 este numărul de cazuri Ad Board. 358 00:14:07,870 --> 00:14:10,690 Ad Board este disciplinare Harvard corp, sau acum Onoare sfat, 359 00:14:10,690 --> 00:14:13,790 la care se face referire cazuri cînd elevii fac ceva care cursului 360 00:14:13,790 --> 00:14:15,470 programa consideră nerezonabil. 361 00:14:15,470 --> 00:14:17,220 Nu e nici un model real, aici, aș spune. 362 00:14:17,220 --> 00:14:19,530 Acesta variază de-a lungul ani, dar, în general, 363 00:14:19,530 --> 00:14:22,262 acesta este numărul de cazuri care sunt menționate. 364 00:14:22,262 --> 00:14:23,970 Numărul de studenți care sunt implicate? 365 00:14:23,970 --> 00:14:25,290 Prea variază. 366 00:14:25,290 --> 00:14:27,930 De obicei, anul trecut, pentru exemplu, 29 de studenți de la Harvard 367 00:14:27,930 --> 00:14:29,740 au fost Ad urcat, ca să spunem așa. 368 00:14:29,740 --> 00:14:32,670 29 dintre ei actualii studenți, Doi dintre ei studenți anterioare, 369 00:14:32,670 --> 00:14:35,610 care au fost colaboreaza într-un fel nocivă. 370 00:14:35,610 --> 00:14:38,400 Și apoi, în ceea ce privește procent, de obicei, aproximativ 3% 371 00:14:38,400 --> 00:14:41,360 de clasa care, din păcate, face ca aceste tipuri de decizii. 372 00:14:41,360 --> 00:14:44,470 >> Deci, anul trecut a fost de 3,5% de corp student CS50 lui 373 00:14:44,470 --> 00:14:46,820 care a fost Ad urcat, ca să spunem așa. 374 00:14:46,820 --> 00:14:48,490 >> Deci, ce înseamnă toate acestea înseamnă? 375 00:14:48,490 --> 00:14:49,660 Și ce facem de fapt, nu? 376 00:14:49,660 --> 00:14:52,930 >> Deci, pentru divulgarea completa, am absolut, ca oameni de stiinta de calculator, 377 00:14:52,930 --> 00:14:57,620 au instrumente software la dispoziția noastră și este foarte ușor pentru noi, în echitate, 378 00:14:57,620 --> 00:15:00,980 că alte lui colegi care nu sunt trecerea aceste linii să treacă compara 379 00:15:00,980 --> 00:15:04,570 fiecare depunere in acest an împotriva fiecărui depunere în ultimii opt ani. 380 00:15:04,570 --> 00:15:05,445 Software-ul face acest lucru. 381 00:15:05,445 --> 00:15:07,440 Și în final este ochii omului care decid 382 00:15:07,440 --> 00:15:11,410 dacă sau nu să se refere unele contează pentru adjudecare în continuare, 383 00:15:11,410 --> 00:15:12,737 dar software-ul cu siguranță vă ajută. 384 00:15:12,737 --> 00:15:15,820 Și aceasta, sincer, este de ce cred Avem astfel un număr mare în CS50. 385 00:15:15,820 --> 00:15:18,540 Nu e din cauza CS50 studenți sau elevi CS mai mult 386 00:15:18,540 --> 00:15:20,840 în general, sunt mai puțin cinstit decât orice alți studenți, 387 00:15:20,840 --> 00:15:22,340 e doar avem instrumente și tehnici 388 00:15:22,340 --> 00:15:24,095 cu care să ia această primă trecere. 389 00:15:24,095 --> 00:15:25,960 >> Dar ce facem cu ochii pe toate aceste lucruri 390 00:15:25,960 --> 00:15:30,340 De asemenea, din nou, în interesul recunoscând munca pe care a fi puse 391 00:15:30,340 --> 00:15:32,397 în cu o majoritate super clasa. 392 00:15:32,397 --> 00:15:34,230 Și politica cursului pe onestitate academică, 393 00:15:34,230 --> 00:15:37,021 chiar dacă este o grămadă de paragrafe lung, cu o grămadă de gloanțe 394 00:15:37,021 --> 00:15:40,490 că sunt destul de ușor de citit sperăm, aceasta într-adevăr nu se reduc să fie rezonabilă. 395 00:15:40,490 --> 00:15:44,000 Și cel mai bun regula de degetul mare, care oferim în cadrul programei 396 00:15:44,000 --> 00:15:46,020 este acest lucru, esența de toate lucrările pe care le 397 00:15:46,020 --> 00:15:47,850 prezenta la acest curs trebuie să fie a ta. 398 00:15:47,850 --> 00:15:51,510 Și într-adevăr, în aproape toate cele cazurile menționate pentru măsuri disciplinare 399 00:15:51,510 --> 00:15:55,640 a fost din cauza cineva târziu elev noapte transformat de obicei cod sale 400 00:15:55,640 --> 00:15:58,130 peste pur și simplu la un coleg de clasa, care apoi a adoptat 401 00:15:58,130 --> 00:16:00,840 în totalitate sau semnificativ al acestuia. 402 00:16:00,840 --> 00:16:02,680 >> Dar, de fapt, acest lucru este în regulă. 403 00:16:02,680 --> 00:16:04,684 Și într-adevăr, la sediul ore, bucăți de hârtie 404 00:16:04,684 --> 00:16:07,850 te-ai dat, dacă ai venit de birou ore săptămâna trecută încurajează la fel de mult. 405 00:16:07,850 --> 00:16:09,710 Ești absolut a salutat și încurajat 406 00:16:09,710 --> 00:16:12,340 pentru a discuta despre seturi de probleme cu colegii de clasă. 407 00:16:12,340 --> 00:16:14,461 Pentru a ajuta reciproc, atunci când poticnire. 408 00:16:14,461 --> 00:16:17,710 Dar, în general a statului de degetul mare ar trebui să fi aceasta, "atunci când vi se cere ajutorul, 409 00:16:17,710 --> 00:16:20,412 s-ar putea arăta codul pentru alții, dar nu a lor ar putea vedea. " 410 00:16:20,412 --> 00:16:22,620 Deci, cu alte cuvinte, în cazul în care sunt se luptă cu un anumit set P 411 00:16:22,620 --> 00:16:25,290 și eu stau acolo, în mese sala, sau în bibliotecă, 412 00:16:25,290 --> 00:16:28,470 sau în sala de clasă încercarea de a găsi unele vina, 413 00:16:28,470 --> 00:16:30,340 Eu pot arăta cu siguranță codul meu pe ecran 414 00:16:30,340 --> 00:16:32,590 la persoana care sta langa pentru mine, cu siguranță personalul, 415 00:16:32,590 --> 00:16:33,600 dar, de asemenea un coleg de clasa. 416 00:16:33,600 --> 00:16:36,580 Dar dacă soluția care colegul meu oferă este, oh, 417 00:16:36,580 --> 00:16:39,200 aici să ia doar o privire la ceea ce Am făcut-o, care traversează linia. 418 00:16:39,200 --> 00:16:43,120 >> Și aș îndrăzni să spun că, în general, un lucru rezonabil pentru cei mai mulți oameni 419 00:16:43,120 --> 00:16:45,030 la fața locului, foarte usor de linia de. 420 00:16:45,030 --> 00:16:47,195 Și astfel, a se vedea programa pentru mai multe detalii. 421 00:16:47,195 --> 00:16:49,070 Și acum unul dintre mai mult aspecte controversate 422 00:16:49,070 --> 00:16:52,529 de CS50 programa pe care am m-am gândit ar vorbi la concluzie aici 423 00:16:52,529 --> 00:16:53,820 este așa-numita clauză regret. 424 00:16:53,820 --> 00:16:55,340 Deci, aici e tot amenda de imprimare. 425 00:16:55,340 --> 00:16:58,090 Dar, în general, am văzut în ultimii 8 ani, plus 426 00:16:58,090 --> 00:17:01,510 că, într-adevăr, aproape toate lui CS50 cazuri de necinste academice 427 00:17:01,510 --> 00:17:04,390 au fost rezultatul a doar săraci ceea ce face noaptea târziu decizie. 428 00:17:04,390 --> 00:17:07,144 Rezultatul stres, rezultatul de lipsa de a manca, lipsa de somn, 429 00:17:07,144 --> 00:17:09,560 prea multe seturi P, prea multe termene, prea multe angajamente. 430 00:17:09,560 --> 00:17:13,520 Stres construirea într-un AM 02:00, 03:00 AM, 04:00, cu un termen limită profilează la orizont. 431 00:17:13,520 --> 00:17:17,020 Cei mai mulți studenți în aceste cazuri tocmai am luat decizii proaste 432 00:17:17,020 --> 00:17:20,619 că s-ar putea regreta foarte bine dimineața următoare dacă nu minute mai târziu, 433 00:17:20,619 --> 00:17:25,490 dar pana anul trecut nu a existat nici supapă de eliberare că acești studenți ar putea 434 00:17:25,490 --> 00:17:29,140 de fapt, deschide pentru a aborda, de fapt, cap de problemă pe fără teama de a fi 435 00:17:29,140 --> 00:17:30,850 pornit de la colegiu cu totul. 436 00:17:30,850 --> 00:17:33,260 >> Și, într-adevăr, am introdus această clauză regret, anul trecut, 437 00:17:33,260 --> 00:17:35,970 care spune că, dacă în termen de 72 ore, trei zile, 438 00:17:35,970 --> 00:17:37,970 de trecere o linie prevăzute în programa 439 00:17:37,970 --> 00:17:41,178 ai venit cu nerăbdare să-unul din cursului capete și vom avea o discuție cu privire la aceasta. 440 00:17:41,178 --> 00:17:43,720 Nu sunt încă fi unele rezultat, contrar a ceea ce este 441 00:17:43,720 --> 00:17:44,990 fost raportate în sens contrar. 442 00:17:44,990 --> 00:17:49,190 Există încă unele rezultat care este o actiune de curs, 443 00:17:49,190 --> 00:17:51,611 reducerea la zero, în general, un set P sau de a lua alte măsuri, 444 00:17:51,611 --> 00:17:53,610 dar vom, într-adevăr, mâner noi înșine și nu 445 00:17:53,610 --> 00:17:58,460 consultați-l mai mare au fost rezultatul ar putea fi mult mai grave. 446 00:17:58,460 --> 00:18:01,810 Și, într-adevăr, de a împărtăși ceea ce sa întâmplat anul trecut, în cei opt ani, iar acum 447 00:18:01,810 --> 00:18:04,950 nouă ani, de predare acest curs și după tinkering cu diverse butoane, 448 00:18:04,950 --> 00:18:07,866 cotitură diferite cadrane în ultimii de mai mulți ani pe onestitate academic, 449 00:18:07,866 --> 00:18:11,920 și văzând pe datele nu aparente impact, chiar de discursuri de acest gen, 450 00:18:11,920 --> 00:18:15,490 aceasta a fost mâinile în jos cel mai bun lucru am introdus pedagogic 451 00:18:15,490 --> 00:18:18,090 în opt ani de-a lungul aceste linii în CS50. 452 00:18:18,090 --> 00:18:21,010 >> 19 de studenți s-au prezentat în conformitate cu această clauză, anul trecut. 453 00:18:21,010 --> 00:18:23,389 Am luat nici o acțiune pentru șapte dintre acei studenți, 454 00:18:23,389 --> 00:18:25,430 stabilind că acestea au fost inutil îngrijorat. 455 00:18:25,430 --> 00:18:27,304 Ei nu aveau, în fapt, trecut o linie, dar 456 00:18:27,304 --> 00:18:28,960 a fost un bun de chat pentru a avea toate acestea. 457 00:18:28,960 --> 00:18:31,190 Am adus la zero 11 de scorurile care au fost depuse. 458 00:18:31,190 --> 00:18:33,840 Și într-un caz am cerut o elev de a face o problemă set. 459 00:18:33,840 --> 00:18:36,370 Dar mai convingătoare, sincer, cu aceste 19 chat-uri, 460 00:18:36,370 --> 00:18:39,020 care a fost mult mai mult decât am așteptat să aibă, fiecare dintre ele 461 00:18:39,020 --> 00:18:41,370 10 minute la o poate oră, de asemenea, a adus 462 00:18:41,370 --> 00:18:44,920 la lumină o serie de probleme în ceea ce privește probleme familiale, probleme de prieten, 463 00:18:44,920 --> 00:18:46,940 probleme de sanatate mintala pe care le apoi angajat, 464 00:18:46,940 --> 00:18:50,200 cu elevului binecuvântare, rezident decan, sau prieteni, sau orice alt număr 465 00:18:50,200 --> 00:18:51,450 resurselor de sprijin. 466 00:18:51,450 --> 00:18:54,454 Astfel că aceasta a fost de departe una din cele mai bune utilizări ale timpului nostru 467 00:18:54,454 --> 00:18:55,870 și unul dintre cele mai bune intervențiilor. 468 00:18:55,870 --> 00:18:58,870 >> Cu care a spus, nu a avut nici intrare de pe rata de detecție 469 00:18:58,870 --> 00:19:00,909 de necinste academice în general. 470 00:19:00,909 --> 00:19:02,950 Și îndrăznesc să spun, acest subset de studenți de anul trecut 471 00:19:02,950 --> 00:19:06,350 a fost un demografică pe care le nu identificate anterior, înainte de 472 00:19:06,350 --> 00:19:08,140 și nu au legătură cu înainte. 473 00:19:08,140 --> 00:19:10,020 Și astfel, acestea au fost povești de succes minunate 474 00:19:10,020 --> 00:19:13,390 chiar dacă acestea au fost aduse la lumină în mai puțin de circumstanțe optime. 475 00:19:13,390 --> 00:19:15,640 Deci, ține minte acest lucru așa cum ați face, probabil, 476 00:19:15,640 --> 00:19:17,390 unele decizii proaste vă târziu în noapte, 477 00:19:17,390 --> 00:19:20,151 că există recurs atât de mult timp ca studentul în această situație 478 00:19:20,151 --> 00:19:23,400 proprii și să prezinte astfel încât să putem au acest tip de chat-ul și să se ocupe cu ea 479 00:19:23,400 --> 00:19:27,310 într-un mod care este de învățământ, și apoi putem pune în spatele nostru a doua zi. 480 00:19:27,310 --> 00:19:30,335 >> Deci, fără alte formalități, să ia marginea de pe această conversație, 481 00:19:30,335 --> 00:19:35,080 motivul pentru care puii sunt de până este doar pentru a sparge gheața pentru o clipă. 482 00:19:35,080 --> 00:19:39,560 Și, din păcate, toate sunt de somn, dar ceea ce trebuia să se întâmple aici 483 00:19:39,560 --> 00:19:41,760 a fost toată lumea trebuia respectului si fel de relaxați-vă 484 00:19:41,760 --> 00:19:43,910 după acea conversație foarte grele. 485 00:19:43,910 --> 00:19:46,930 Dar se pare mi-am pus pui de somn. 486 00:19:46,930 --> 00:19:50,070 Dar dacă te duci la a CS50 pui site-ul slash, 487 00:19:50,070 --> 00:19:51,610 le puteți viziona pe tot parcursul zilei. 488 00:19:51,610 --> 00:19:55,280 În special, poate 2:00, sau 03:00, sau 4:00 noaptea 489 00:19:55,280 --> 00:19:57,480 pentru a vedea un pic detensionare acolo. 490 00:19:57,480 --> 00:19:58,805 Deci care este slash pui. 491 00:19:58,805 --> 00:20:01,700 492 00:20:01,700 --> 00:20:02,200 In regula. 493 00:20:02,200 --> 00:20:03,020 Nu a fost distractiv? 494 00:20:03,020 --> 00:20:04,200 BINE. 495 00:20:04,200 --> 00:20:07,140 Deci, înapoi la unele calculator știință, dacă îmi permiteți. 496 00:20:07,140 --> 00:20:10,600 >> Deci, amintim că ultima dată când am început nu cauta doar la principal, care 497 00:20:10,600 --> 00:20:13,930 a fost funcția implicit, atunci când pavilion verde apasat echivalent, 498 00:20:13,930 --> 00:20:16,999 dar am început, de asemenea pe scurt scris unele dintre propriile noastre funcții. 499 00:20:16,999 --> 00:20:20,040 Și până acum nici una dintre aceste funcții au fost deosebit de mare sau miez. 500 00:20:20,040 --> 00:20:24,570 Veți primi în cele mai mari funcții probabil, P set 2, P set 3, 501 00:20:24,570 --> 00:20:26,410 cu siguranta P set de 4 și mai departe. 502 00:20:26,410 --> 00:20:29,340 Chiar acum cele mai multe dintre programele, dacă nu toate dintre ele, cu siguranță pentru P 503 00:20:29,340 --> 00:20:31,550 set 1 se poate face în întregime în principal. 504 00:20:31,550 --> 00:20:33,810 În cazul în care programul este numai cinci linii, 10 de linii, 505 00:20:33,810 --> 00:20:37,070 chiar 20 de linii de mult, perfect rezonabil să-l scrie 506 00:20:37,070 --> 00:20:40,930 toate în principal și să nu complica peste codul, dar ce facem astăzi 507 00:20:40,930 --> 00:20:44,360 și mai departe, de asemenea, încearcă să introducerea unor tehnici de proiectare bune 508 00:20:44,360 --> 00:20:48,660 așa că, codul devine mai complicat și ca problemele 509 00:20:48,660 --> 00:20:51,690 vrei să rezolve mai greu și mai mai interesant aveți, un fel de, 510 00:20:51,690 --> 00:20:55,850 instrumentele din caseta de instrumente cu care pentru a proiecta soluții bune pentru cei. 511 00:20:55,850 --> 00:21:01,210 >> Deci, haideți să aruncăm o privire rapidă înapoi la acest program de la meu de săptămâna trecută, care 512 00:21:01,210 --> 00:21:06,550 a fost zero, funcții dot C și observați că, pur și simplu, 513 00:21:06,550 --> 00:21:10,310 se pare ca acest lucru cu două funcții, principală și numele de imprimare. 514 00:21:10,310 --> 00:21:13,160 Și gândire înapoi sau poate inginerie inversă astăzi, 515 00:21:13,160 --> 00:21:16,880 ceea ce a fost motivația pentru introducerea o funcție în linie 28 numit, 516 00:21:16,880 --> 00:21:18,180 imprima nume? 517 00:21:18,180 --> 00:21:21,745 Sau ceea ce a fost un exemplu de acest din termeni de principiu sau Takeaway, 518 00:21:21,745 --> 00:21:22,605 dacă ar fi. 519 00:21:22,605 --> 00:21:26,560 520 00:21:26,560 --> 00:21:27,300 Unele murmure. 521 00:21:27,300 --> 00:21:28,830 Ce? 522 00:21:28,830 --> 00:21:32,210 >> Da descompunere atât de funcțional este un fel de modul fantezist de a spune, 523 00:21:32,210 --> 00:21:34,690 descompune programul în părțile sale componente 524 00:21:34,690 --> 00:21:37,530 și apoi utilizați acele părți pentru a asambla un întreg. 525 00:21:37,530 --> 00:21:39,620 Deci, asta este doar un fel de o gura deja, 526 00:21:39,620 --> 00:21:42,050 dar acest lucru este, probabil, chiar o exemplu mai bun de ceva 527 00:21:42,050 --> 00:21:43,081 sunat abstracție. 528 00:21:43,081 --> 00:21:43,580 Dreapta? 529 00:21:43,580 --> 00:21:46,950 Abstractizare va fi unul dintre temele recurente în CS50 530 00:21:46,950 --> 00:21:49,085 și, de asemenea, informatică mai mult, în general, din moment ce este 531 00:21:49,085 --> 00:21:53,060 o tehnica cu care puteți rezolva probleme mai eficient pentru că 532 00:21:53,060 --> 00:21:56,807 pot scrie mai multe soluții intuitiv și într-un mod care cântare 533 00:21:56,807 --> 00:21:58,390 și este de înțeles de către alte persoane. 534 00:21:58,390 --> 00:21:59,860 Ce vreau să spun cu asta? 535 00:21:59,860 --> 00:22:04,340 >> Deci, fără îndoială, este mult mai ușor de citit să se uite la un program de acest fel, 536 00:22:04,340 --> 00:22:05,990 super-scurt deși este. 537 00:22:05,990 --> 00:22:10,050 Când vedeți pe linia 22 că există o funcție numită, nume de imprimare. 538 00:22:10,050 --> 00:22:12,620 Acest nume singur spune ceea ce face. 539 00:22:12,620 --> 00:22:15,780 Această funcție aparent ia intrare între paranteze sale, 540 00:22:15,780 --> 00:22:18,600 și se pare că face ceva, imprimă probabil numele. 541 00:22:18,600 --> 00:22:20,880 Și astfel, chiar dacă am absolut ar putea avea 542 00:22:20,880 --> 00:22:25,280 făcut ceea ce am făcut în urmă cu o săptămână, care a fost ia doar această linie reală de cod, 543 00:22:25,280 --> 00:22:28,710 Scapa de acest lucru, și să obțină scăpa de toate astea împreună, 544 00:22:28,710 --> 00:22:31,436 am un fel de captate departe noțiunea de imprimarea unui nume. 545 00:22:31,436 --> 00:22:33,060 Nu-mi pasă dacă utilizați def imprimare. 546 00:22:33,060 --> 00:22:35,601 Nu-mi pasă dacă ai o sută S și un N. backslash Acestea 547 00:22:35,601 --> 00:22:37,270 sunt detalii incredibil de arcane. 548 00:22:37,270 --> 00:22:40,090 Ce îmi pasă ca programator imprimă un nume. 549 00:22:40,090 --> 00:22:43,414 Și astfel, ce modalitate mai bună de a face acest lucru decât prin apelarea unei funcții, nume de imprimare? 550 00:22:43,414 --> 00:22:46,330 Și așa, asta a fost una din motivațiile pentru a face ceva de genul asta. 551 00:22:46,330 --> 00:22:50,370 Ceea ce face codul mai ușor de citit, mai mult reutilizabile, și, de asemenea, auto-descriptiv. 552 00:22:50,370 --> 00:22:52,120 Acum, haideți să aruncăm o privire la un alt exemplu, 553 00:22:52,120 --> 00:22:56,220 care era funcții unul, care am avut aici. 554 00:22:56,220 --> 00:23:00,367 >> Deci, aceasta este, probabil, chiar mai convingătoare, deoarece, în acest caz, 555 00:23:00,367 --> 00:23:01,700 Nu doriți să obțineți doar un int. 556 00:23:01,700 --> 00:23:03,320 Vreau să ajung un Int pozitiv. 557 00:23:03,320 --> 00:23:06,470 Și se pare că pentru a obține un rezultat pozitiv int ce trebuie să faci o grămadă de legwork. 558 00:23:06,470 --> 00:23:06,969 Dreapta? 559 00:23:06,969 --> 00:23:09,600 Nu e un simplu o linie suna cum ar fi numele de imprimare a fost, 560 00:23:09,600 --> 00:23:11,480 care este, desigur, mai puțin convingătoare. 561 00:23:11,480 --> 00:23:16,000 >> Pentru a obține un Int pozitiv, logically-- lasă-mă să derulați înapoi pentru a ascunde acest lucru. 562 00:23:16,000 --> 00:23:18,887 Ce ai de facut? 563 00:23:18,887 --> 00:23:20,720 La fel ca toate instrumentele pe care le in acest moment sunt 564 00:23:20,720 --> 00:23:24,440 lucruri cum ar fi imprimare def de la Standard Bibliotecă și, de asemenea, de la biblioteca CS50 565 00:23:24,440 --> 00:23:26,990 avem Ia Int, și Ia Float, Ia lung lung, obține String, 566 00:23:26,990 --> 00:23:29,260 dar singurul, Germane, acum este de a lua Int. 567 00:23:29,260 --> 00:23:32,970 Deci, în cazul în care singurul instrument aveți în caseta de instrument este Ia Int, 568 00:23:32,970 --> 00:23:35,505 cum vom merge despre punerea în aplicare a l pentru a obține Int pozitiv? 569 00:23:35,505 --> 00:23:35,929 >> Audiența: Creați un jurnal și verificați dacă intrarea pe care au dat 570 00:23:35,929 --> 00:23:36,762 a fost pozitiv sau nu. 571 00:23:36,762 --> 00:23:39,390 572 00:23:39,390 --> 00:23:40,640 >> SPEAKER 1: Perfect. 573 00:23:40,640 --> 00:23:41,200 Exact. 574 00:23:41,200 --> 00:23:43,950 Un alt instrument avem în nostru set de instrumente de la o săptămână sau două în urmă 575 00:23:43,950 --> 00:23:45,419 este doar construcția looping. 576 00:23:45,419 --> 00:23:48,210 Și astfel, da, dacă vom folosi un timp buclă, sau o face în timp ce buclă, sau o înainte 577 00:23:48,210 --> 00:23:50,850 bucla probabil am putea obține departe cu oricare din cele într-o formă. 578 00:23:50,850 --> 00:23:55,140 Putem pune în aplicare noțiunea de get Int pozitiv prin doar folosind Get Int, 579 00:23:55,140 --> 00:23:57,830 și apoi chiar a păstra numindu-l din nou și să păstreze bat la cap de utilizator 580 00:23:57,830 --> 00:24:00,320 până când ea de fapt sau ne oferă ceea ce ne dorim. 581 00:24:00,320 --> 00:24:03,260 >> Și așa acum, acest abstracție de procesul de 582 00:24:03,260 --> 00:24:05,680 de a obține un Int pozitiv într-o funcție numită 583 00:24:05,680 --> 00:24:08,930 Obțineți pozitiv Int este un pic mai mult convingatoare pentru ca uita-te la asta. 584 00:24:08,930 --> 00:24:10,990 Acestea sunt ca 10 plus linii de cod care 585 00:24:10,990 --> 00:24:15,090 sunt implicate în obținerea unui Int pozitiv, și nu-mi pasă cu adevărat cum o faci. 586 00:24:15,090 --> 00:24:17,850 Tot mă interesează este că poate face acest lucru, și așa am 587 00:24:17,850 --> 00:24:21,660 ascunse toate aceste detalii din spatele unui funcție numită Ia pozitiv Int că, 588 00:24:21,660 --> 00:24:23,430 într-adevăr, are acest do în timp ce bucla. 589 00:24:23,430 --> 00:24:27,660 >> Și a vedea săptămâna trecută pentru sintaxa acolo, dar pur si simplu declară N, 590 00:24:27,660 --> 00:24:29,800 și se imprimă afară instrucțiuni pentru utilizator. 591 00:24:29,800 --> 00:24:33,330 Solicită Ia Int și apoi verifică această condiție din nou, și din nou, 592 00:24:33,330 --> 00:24:35,230 și din nou până când utilizatorul cooperează. 593 00:24:35,230 --> 00:24:38,000 >> Deci, acum, câteva teste de corectitudine. 594 00:24:38,000 --> 00:24:40,370 Pentru cei familiarizați probabil cu unele de programare, 595 00:24:40,370 --> 00:24:46,410 de ce este declarat N, de ce creez N afara face în timp ce bucla? 596 00:24:46,410 --> 00:24:50,370 De ce este pe linia 29, și nu pe 33 ca, de exemplu. 597 00:24:50,370 --> 00:24:53,529 >> Audiența: Pentru că atunci când declare exterior, un fel 598 00:24:53,529 --> 00:24:56,688 de mult, scope-- mare 599 00:24:56,688 --> 00:24:58,146 >> SPEAKER 1: Bun. 600 00:24:58,146 --> 00:24:59,604 >> Audiența: --and dacă declara se în interiorul buclei, [neauzit] 601 00:24:59,604 --> 00:25:00,979 deoarece nu știu despre el. 602 00:25:00,979 --> 00:25:02,819 603 00:25:02,819 --> 00:25:03,610 SPEAKER 1: Exact. 604 00:25:03,610 --> 00:25:06,330 Dacă pot simplify-- este o chestiune de domeniul de aplicare. 605 00:25:06,330 --> 00:25:11,530 Și domeniul de aplicare se referă la contextul în care există o variabilă sau este utilizabil. 606 00:25:11,530 --> 00:25:15,050 Și a statului de degetul mare frumos aici este faptul că în general, atunci când declara sau de a crea 607 00:25:15,050 --> 00:25:21,642 o variabilă îl puteți folosi numai în interiorul din cel mai aproape de îmbrățișând acolade. 608 00:25:21,642 --> 00:25:22,600 Deci, ce înseamnă asta? 609 00:25:22,600 --> 00:25:26,551 Dacă am, în schimb, anula acest lucru și du-te cu ceva care se simte un pic mai simplu. 610 00:25:26,551 --> 00:25:27,050 Dreapta? 611 00:25:27,050 --> 00:25:29,360 >> Linia 32 doar arata mai curat pentru mine acum. 612 00:25:29,360 --> 00:25:31,500 Fac ambele lucruri la o dată și apoi atribuirea 613 00:25:31,500 --> 00:25:33,070 mâna dreaptă la mâna stângă. 614 00:25:33,070 --> 00:25:35,180 Problema bazează acum pe această definiție a domeniului de aplicare 615 00:25:35,180 --> 00:25:41,130 Se care N poate fi utilizat în conducte 31 și 32 în interiorul această buclă, 616 00:25:41,130 --> 00:25:45,100 dar în cazul în care prin această definiție nu se poate fi folosit? 617 00:25:45,100 --> 00:25:45,660 În conformitate ce? 618 00:25:45,660 --> 00:25:46,160 Da. 619 00:25:46,160 --> 00:25:47,490 >> Audiența: 35. 620 00:25:47,490 --> 00:25:49,180 >> SPEAKER 1: 35. 621 00:25:49,180 --> 00:25:50,480 Categoric nu 35. 622 00:25:50,480 --> 00:25:52,349 Și, de asemenea unde altundeva? 623 00:25:52,349 --> 00:25:52,890 Audiența: 34. 624 00:25:52,890 --> 00:25:55,040 SPEAKER 1: Chiar este 34 problematic pentru că este 625 00:25:55,040 --> 00:25:56,450 in afara de acolade. 626 00:25:56,450 --> 00:25:58,200 Și astfel, de fapt, să vedem ce se întâmplă. 627 00:25:58,200 --> 00:25:58,700 Dreapta? 628 00:25:58,700 --> 00:26:00,722 Acest lucru ar putea părea un pic intuitiv sau nu s-ar putea, 629 00:26:00,722 --> 00:26:02,680 dar haideți să vedem ce compilator are de spus atunci când 630 00:26:02,680 --> 00:26:04,730 vom merge în directorul sursă de astăzi. 631 00:26:04,730 --> 00:26:08,950 Face o funcție. 632 00:26:08,950 --> 00:26:11,231 Oh, Doamne. 633 00:26:11,231 --> 00:26:12,980 Ei bine, în cele din urmă am terminat că, prin modul în care. 634 00:26:12,980 --> 00:26:14,030 In regula. 635 00:26:14,030 --> 00:26:15,510 Și ceea ce este problema aici? 636 00:26:15,510 --> 00:26:17,430 Foarte arcane să se uite la. 637 00:26:17,430 --> 00:26:19,570 Dar aici e ceea ce am typed-- face o funcție. 638 00:26:19,570 --> 00:26:21,640 Iată ce face induse, care este de fapt 639 00:26:21,640 --> 00:26:23,705 folosind zăngănitul compilator cu unele dintre aceste steaguri 640 00:26:23,705 --> 00:26:25,080 că vom vedea din nou, înainte de mult timp. 641 00:26:25,080 --> 00:26:26,829 Și din nou, uita-te întotdeauna la Prima a fost atunci, 642 00:26:26,829 --> 00:26:30,540 pentru că aceasta ar putea avea doar o cascadă efect de sens pe alte linii. 643 00:26:30,540 --> 00:26:34,410 >> Deci, ce înseamnă acest lucru este că problemă este în funcție 1.c. 644 00:26:34,410 --> 00:26:36,890 Este pe linia 32. 645 00:26:36,890 --> 00:26:39,712 Și e la coloană, sau caracter, 13. 646 00:26:39,712 --> 00:26:42,670 Deci, atunci când editorul de text care poate ajuta să identificați unde problema este. 647 00:26:42,670 --> 00:26:47,079 Deci, dacă am defila în sus, ceea ce este linia 32? 648 00:26:47,079 --> 00:26:49,120 Asta e într-adevăr asta care este deja evidențiat 649 00:26:49,120 --> 00:26:50,607 n variabile dreapta here-- neutilizate. 650 00:26:50,607 --> 00:26:51,440 Dar nu e nefolosit. 651 00:26:51,440 --> 00:26:52,320 Sunt, folosind. 652 00:26:52,320 --> 00:26:56,110 Dar compilatorului confuz, pentru că ea există doar în interiorul acestui domeniu. 653 00:26:56,110 --> 00:26:57,727 Și deci nu se poate folosi aici. 654 00:26:57,727 --> 00:26:58,560 Nu pot folosi aici. 655 00:26:58,560 --> 00:27:01,320 Și compilator, prin urmare, chiar nu-i pasă că eu încerc. 656 00:27:01,320 --> 00:27:03,940 Se pare a fi neutilizate în domeniul său de aplicare actuale. 657 00:27:03,940 --> 00:27:08,854 >> Deci, putem extinde domeniul de aplicare de a face exact ceea ce am început aplice: int n. 658 00:27:08,854 --> 00:27:11,020 Și chiar dacă nu arata la fel de elegant, poate, 659 00:27:11,020 --> 00:27:15,110 și vom lua o linie în plus aici, acum e în domeniul de aplicare peste tot. 660 00:27:15,110 --> 00:27:15,970 Deci, hai să încercăm din nou. 661 00:27:15,970 --> 00:27:19,040 Deci, asigurați-o funcție. 662 00:27:19,040 --> 00:27:19,610 Nisa. 663 00:27:19,610 --> 00:27:23,370 Și acum dacă am dacă am alerga funcție o, hai să-l dau negativ 10, 664 00:27:23,370 --> 00:27:27,170 negativ 1, 0, 1, și într-adevăr funcționează. 665 00:27:27,170 --> 00:27:28,610 >> Deci nu e altă soluție aici. 666 00:27:28,610 --> 00:27:29,280 Știi ce? 667 00:27:29,280 --> 00:27:31,230 Ce se întâmplă dacă într-adevăr sunt lupte cu asta? 668 00:27:31,230 --> 00:27:33,140 Nu știu în cazul în care n-ar trebui să meargă. 669 00:27:33,140 --> 00:27:33,723 Știi ce? 670 00:27:33,723 --> 00:27:39,220 Mă duc să-l puneți toate mod în partea de sus a dosarul meu aici. 671 00:27:39,220 --> 00:27:42,835 Ce s-ar face acest lucru, nu crezi? 672 00:27:42,835 --> 00:27:43,335 Da? 673 00:27:43,335 --> 00:27:44,251 >> Audiența: [neauzit]. 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 Așa că am făcut-o la nivel mondial, ca să spunem așa. 677 00:27:50,560 --> 00:27:54,430 Dacă aveți o variabilă care este în afara toate funcțiile care este permis, 678 00:27:54,430 --> 00:27:58,780 și codul ar trebui să compileze și n va fi acum accesibile, nu numai în get 679 00:27:58,780 --> 00:28:02,490 Int pozitiv, dar, de asemenea, în main-- care este un pic îngrijorătoare, deoarece există 680 00:28:02,490 --> 00:28:04,864 deja un n în principal, cu atât mai mult pe care, în doar moment-- 681 00:28:04,864 --> 00:28:06,530 dar acest lucru ar fi considerat de design rău. 682 00:28:06,530 --> 00:28:06,910 In regula. 683 00:28:06,910 --> 00:28:08,570 Dacă aveți să recurgă la ceva de genul, oh, voi 684 00:28:08,570 --> 00:28:10,125 doar a pus aici pentru că codul pare a compila 685 00:28:10,125 --> 00:28:12,180 nu este, în general cea mai bună practică. 686 00:28:12,180 --> 00:28:14,590 Mai degrabă doriți să alegeți mai îngust domeniul de aplicare posibil 687 00:28:14,590 --> 00:28:18,720 pentru variabilele, ceea ce ar însemna merge cu un design noastră inițială, care 688 00:28:18,720 --> 00:28:19,920 este chiar aici. 689 00:28:19,920 --> 00:28:24,400 >> Acum ca o paranteza, daca au avut un identic cu numele de variabilă aici, 690 00:28:24,400 --> 00:28:27,750 Astfel, c-ar ocupa de asta: deși acest lucru nu se va întâmpla prea often-- 691 00:28:27,750 --> 00:28:30,150 este că aceasta este încă foarte bine aici. 692 00:28:30,150 --> 00:28:35,000 Dar această definiție a n, în conformitate 22 va umbra cea globală. 693 00:28:35,000 --> 00:28:38,190 Deci, acesta va funcționa în cadrul principal, iar cea globală 694 00:28:38,190 --> 00:28:41,670 se vor aplica, de fapt, atunci când vă aflați în obține Int pozitiv, dar mai mult pe faptul că 695 00:28:41,670 --> 00:28:43,890 un alt timp, ci doar pentru cei curiosi. 696 00:28:43,890 --> 00:28:45,970 >> Deci, pe scurt, ne-am rezolva această aici. 697 00:28:45,970 --> 00:28:49,220 Acum, haideți să tachineze pe langa alte două piese înainte de a ne uităm la un ultim linie de cod 698 00:28:49,220 --> 00:28:50,170 în acest program. 699 00:28:50,170 --> 00:28:52,170 Obțineți Int pozitiv. 700 00:28:52,170 --> 00:28:54,450 Pe partea stângă a Cuvântul său este int cuvântul. 701 00:28:54,450 --> 00:28:56,860 Ce înseamnă asta crezi? 702 00:28:56,860 --> 00:28:58,900 Până acum am văzut cea mai mare parte gol. 703 00:28:58,900 --> 00:28:59,400 Da? 704 00:28:59,400 --> 00:29:01,810 >> Audiența: Este tipul de variabilă care te întrebat despre. 705 00:29:01,810 --> 00:29:04,550 >> SPEAKER 1: Da, e tipul de, permiteți-mi nu spun variabil, dar tipul de valoare 706 00:29:04,550 --> 00:29:05,990 că eu cer înapoi pentru. 707 00:29:05,990 --> 00:29:08,070 Și într-adevăr, asta e intuitiv aici, sperăm. 708 00:29:08,070 --> 00:29:08,200 Dreapta? 709 00:29:08,200 --> 00:29:10,250 Dacă doriți să obțineți un Int pozitiv, ceea ce este tu 710 00:29:10,250 --> 00:29:12,920 doresc function-- ca nostru voluntari din săptămâna trecută 711 00:29:12,920 --> 00:29:15,720 să vă restituie o bucată de hârtie cu un int pe ea? 712 00:29:15,720 --> 00:29:19,190 Și așa ne-am specificat că așa-numitele tip de returnare a acestei funcții 713 00:29:19,190 --> 00:29:20,450 este de a lua Int pozitiv. 714 00:29:20,450 --> 00:29:22,990 Dacă nu l-am vrea să întoarce nimic, spui nule. 715 00:29:22,990 --> 00:29:25,270 Dacă doriți să-l să se întoarcă un șir de caractere, spui șir. 716 00:29:25,270 --> 00:29:27,310 Dacă doriți să-l să se întoarcă un flotor, spui float. 717 00:29:27,310 --> 00:29:30,440 Dar singurul care se aplică aici În mod logic, pentru că eu sunt, folosind get Int, 718 00:29:30,440 --> 00:29:34,130 chiar dacă eu o să limitarea valori pozitive, este de a reveni un int. 719 00:29:34,130 --> 00:29:38,380 >> Deci invers, ceea ce înseamnă că există un gol în paranteze? 720 00:29:38,380 --> 00:29:40,130 Ce paranteze în general, să definească? 721 00:29:40,130 --> 00:29:40,588 Da? 722 00:29:40,588 --> 00:29:42,880 >> Audiența: Aceasta înseamnă funcția de anii nu sunt de fapt de asistent. 723 00:29:42,880 --> 00:29:44,650 >> SPEAKER 1: Aceasta înseamnă funcția de anii nu de fapt ceea ce a obține? 724 00:29:44,650 --> 00:29:45,430 >> Audiența: O intrare. 725 00:29:45,430 --> 00:29:46,763 >> SPEAKER 1: O intrare, un fel de. 726 00:29:46,763 --> 00:29:49,870 Deci, într-adevăr, în cazul în care paranteză Aici specificați nule, 727 00:29:49,870 --> 00:29:51,650 Asta înseamnă că nu vreau nici o intrare. 728 00:29:51,650 --> 00:29:53,269 Voi rezolva problema mine. 729 00:29:53,269 --> 00:29:55,810 Și într-adevăr, nu trebuie să spune obține ceva pozitiv Int. 730 00:29:55,810 --> 00:29:59,630 Trebuie doar spui, pentru a primi Int pozitiv, și că Funcția se va stinge și de a face treaba. 731 00:29:59,630 --> 00:30:02,970 >> Dar acolo a fost un mic truc Am jucat aici tot acest timp 732 00:30:02,970 --> 00:30:04,970 să vă asigurați că acest cod compilează. 733 00:30:04,970 --> 00:30:09,620 Observați că int-- obține pozitiv Int void-- este pe linia de 27. 734 00:30:09,620 --> 00:30:14,530 Dar din anumite motive aparent ciudat este, de asemenea, aici pe linia 16. 735 00:30:14,530 --> 00:30:18,530 Și doar pentru o bună măsură Voi repeta acest lucru pentru ca este perfect identice. 736 00:30:18,530 --> 00:30:21,640 Și am spus prototip cu un pic de comentariu-o linie. 737 00:30:21,640 --> 00:30:28,850 Ce se întâmplă dacă șterg asta, și acum rulați din nou face funcția 1, introduceți. 738 00:30:28,850 --> 00:30:29,350 Hopa. 739 00:30:29,350 --> 00:30:32,527 740 00:30:32,527 --> 00:30:33,110 Asteapta un minut. 741 00:30:33,110 --> 00:30:34,764 Unde e contul meu? 742 00:30:34,764 --> 00:30:35,263 Nu? 743 00:30:35,263 --> 00:30:37,969 744 00:30:37,969 --> 00:30:39,620 Așteptare. 745 00:30:39,620 --> 00:30:41,570 Face funcția 1. 746 00:30:41,570 --> 00:30:42,150 Nu mergem. 747 00:30:42,150 --> 00:30:42,310 BINE. 748 00:30:42,310 --> 00:30:43,400 Dacă nu ar fi salvat în mod corespunzător. 749 00:30:43,400 --> 00:30:45,220 Deci, cred că e un pic bug aici, unde nu sunt 750 00:30:45,220 --> 00:30:46,636 văzând numele tab în acest moment. 751 00:30:46,636 --> 00:30:47,940 Deci, ce se întâmplă aici? 752 00:30:47,940 --> 00:30:52,210 Declarația implicită a funcției obține Int pozitiv este nul în C99. 753 00:30:52,210 --> 00:30:53,940 Atât de confuz din nou. 754 00:30:53,940 --> 00:30:55,200 Deci, ce este acest indicativ de? 755 00:30:55,200 --> 00:30:57,287 Ei bine, se pare că C este destul de stupid. 756 00:30:57,287 --> 00:30:59,912 Ei bine, e programarea limbă, sau mai degrabă compilatorul este. 757 00:30:59,912 --> 00:31:02,940 Se știe doar ceea ce ai a învățat-o, și e doar 758 00:31:02,940 --> 00:31:05,640 O să știe ceva dacă învățat înainte. 759 00:31:05,640 --> 00:31:07,960 Cu alte cuvinte, în principal în acest moment, eu sunt 760 00:31:07,960 --> 00:31:10,900 încercarea de a apela o funcție numit obține Int pozitiv. 761 00:31:10,900 --> 00:31:14,120 Dar compilatorul nu se va pentru a observa că obține Int pozitiv 762 00:31:14,120 --> 00:31:16,500 există până la linia 26. 763 00:31:16,500 --> 00:31:21,360 Și așa mai departe ceea ce face compilator este doar erori de îndată ce ajunge la linia 17, 764 00:31:21,360 --> 00:31:23,700 spunând declarație implicit de a lua Int pozitiv, care 765 00:31:23,700 --> 00:31:27,740 este doar un mod fantezist de a spune, eu nu știu ce obține int pozitiv este încă. 766 00:31:27,740 --> 00:31:31,240 >> Alte limbi, cum ar fi Java și Python și Ruby s-ar putea privi înainte. 767 00:31:31,240 --> 00:31:32,240 C nu. 768 00:31:32,240 --> 00:31:35,110 Și astfel modul în care repara aceasta este una din cele două moduri. 769 00:31:35,110 --> 00:31:40,160 Fie unul, în cazul în care problema este că obține Int pozitiv nu a mai fost văzut înainte, 770 00:31:40,160 --> 00:31:42,150 Ei bine, permiteți-mi să-l muta în partea de sus. 771 00:31:42,150 --> 00:31:43,650 Asta ar rezolva această problemă. 772 00:31:43,650 --> 00:31:46,790 Dar, în general, e considerate tehnica mai bine 773 00:31:46,790 --> 00:31:50,220 pentru a pune funcția principală de la foarte top astfel încât un om citit codul 774 00:31:50,220 --> 00:31:52,710 știe ce face programul, deoarece principală nu este îngropat toate 775 00:31:52,710 --> 00:31:53,960 modul în partea de jos sau la mijloc. 776 00:31:53,960 --> 00:31:55,130 Este la foarte de sus. 777 00:31:55,130 --> 00:31:56,410 Așa că nu se simte ideal. 778 00:31:56,410 --> 00:31:58,326 Și puteți obține de fapt, în situații în care 779 00:31:58,326 --> 00:32:00,820 Dacă apelurile o funcție un altul, în care se solicită un alt, 780 00:32:00,820 --> 00:32:04,630 puteți obține într-o problemă în cazul în nici poate merge mai sus de altă parte, în mod logic. 781 00:32:04,630 --> 00:32:05,920 Nu este doar posibil. 782 00:32:05,920 --> 00:32:09,290 >> Și astfel mod de a lucra în jurul valorii de acest lucru este de a lua doar 783 00:32:09,290 --> 00:32:13,200 semnătura funcția, astfel încât să speak-- prima linie în cazul în care este declared-- 784 00:32:13,200 --> 00:32:16,850 și doar copia, lipiți-l la top, dar nu cu braces-- buclat 785 00:32:16,850 --> 00:32:17,980 doar cu un punct și virgulă. 786 00:32:17,980 --> 00:32:20,840 E ca și cum un mic indiciu de ceea ce este de a veni. 787 00:32:20,840 --> 00:32:26,630 Și, de fapt, tot acest timp când am am văzut lucruri, cum ar fi io.h standard de 788 00:32:26,630 --> 00:32:33,040 și, în mod similar, cs50.h în acele puncte h fișiere sunt acolo alte prototipuri. 789 00:32:33,040 --> 00:32:35,250 Și vom vedea că înainte de mult timp. 790 00:32:35,250 --> 00:32:39,340 >> Deci, pe scurt, atunci când aveți un program de într-un fișier cu mai multe funcții 791 00:32:39,340 --> 00:32:42,300 în afară de principal, ai aproape întotdeauna vrea să le declare 792 00:32:42,300 --> 00:32:45,360 doar cu titlu de prima lor linie, urmat de un punct și virgulă, 793 00:32:45,360 --> 00:32:48,410 la foarte de sus a fișierului. 794 00:32:48,410 --> 00:32:50,460 Asta a fost o mulțime dintr-o dată. 795 00:32:50,460 --> 00:32:53,130 Alte intrebari? 796 00:32:53,130 --> 00:32:53,920 Alte intrebari? 797 00:32:53,920 --> 00:32:54,530 In regula. 798 00:32:54,530 --> 00:32:59,760 >> Deci, haideți să mergem mai departe, atunci la ceva de genul tuse. 799 00:32:59,760 --> 00:33:00,260 Oh. 800 00:33:00,260 --> 00:33:00,570 Cât de potrivit. 801 00:33:00,570 --> 00:33:01,220 In regula. 802 00:33:01,220 --> 00:33:02,260 Tuse. 803 00:33:02,260 --> 00:33:05,080 Deci, aici este o C punerea în aplicare a unui program 804 00:33:05,080 --> 00:33:07,560 am făcut de altă zi în Scratch că foarte simplu doar 805 00:33:07,560 --> 00:33:08,691 spune tuse, tuse, tuse. 806 00:33:08,691 --> 00:33:09,190 In regula. 807 00:33:09,190 --> 00:33:11,136 Și cineva a spus câteva zile în urmă că există 808 00:33:11,136 --> 00:33:12,760 un mod de curățare deja acest cod în sus. 809 00:33:12,760 --> 00:33:12,880 In regula? 810 00:33:12,880 --> 00:33:15,440 De îndată ce te copierea și lipirea de design, probabil, rău. 811 00:33:15,440 --> 00:33:18,725 Cel puțin o dată ajungem la patru sau cinci sau 20 tuse, se simte rău practică. 812 00:33:18,725 --> 00:33:19,850 Tocmai am păstra copie, lipire. 813 00:33:19,850 --> 00:33:22,213 Care este soluția evidentă la curățarea acest program până? 814 00:33:22,213 --> 00:33:23,120 >> Audiența: Buclă. 815 00:33:23,120 --> 00:33:23,350 >> SPEAKER 1: Da. 816 00:33:23,350 --> 00:33:24,070 Deci, utilizarea o buclă. 817 00:33:24,070 --> 00:33:27,697 Și putem folosi o pentru buclă, un timp bucla, orice număr de abordări. 818 00:33:27,697 --> 00:33:29,780 Și într-adevăr, asta e ceea ce facem în versiunea de aici. 819 00:33:29,780 --> 00:33:32,250 Am rescris loc în versiunea unul dintre cough.c 820 00:33:32,250 --> 00:33:35,170 să fie tuse doar într-o buclă de-. 821 00:33:35,170 --> 00:33:38,240 Bine, dar există o posibilitatea de acum să fel de start 822 00:33:38,240 --> 00:33:41,630 pentru a proiecta acest lucru un pic mai mult ca lecția am predat acum o clipă, 823 00:33:41,630 --> 00:33:46,190 care este asta: să presupunem că am vrut pentru a crea o funcție numită tuse, 824 00:33:46,190 --> 00:33:49,730 să considerăm pentru o clipă ce se va arata. 825 00:33:49,730 --> 00:33:51,900 Deci, dacă vreau ceva la tuse, doar am nevoie de 826 00:33:51,900 --> 00:33:53,800 pentru a folosi imprimare f interiorul functiei. 827 00:33:53,800 --> 00:33:55,030 Și într-adevăr sunt. 828 00:33:55,030 --> 00:33:56,990 Și, de fapt, toate acestea timp, în orice moment ești 829 00:33:56,990 --> 00:33:59,000 imprimare ceva la ecranul, un programator 830 00:33:59,000 --> 00:34:00,610 ar numi asta un efect secundar. 831 00:34:00,610 --> 00:34:02,990 Nu mă predarea înapoi cineva o valoare. 832 00:34:02,990 --> 00:34:06,170 Mi-a ia anumite acțiuni care ar putea fi vizual evident. 833 00:34:06,170 --> 00:34:10,672 Dar această funcție tuse, nu-l întoarce pe baza prima sa linie ceva? 834 00:34:10,672 --> 00:34:12,880 Nu, pentru că tipul său de retur este nulă, ceea ce înseamnă doar 835 00:34:12,880 --> 00:34:14,250 nu ma preda nimic înapoi. 836 00:34:14,250 --> 00:34:16,791 S-ar putea face ceva vizual, dar nu mi-e predarea 837 00:34:16,791 --> 00:34:18,639 spate o bucată de hârtie ca saptamana trecuta. 838 00:34:18,639 --> 00:34:21,310 >> Are nevoie de nici o intrare? 839 00:34:21,310 --> 00:34:21,810 Nu. 840 00:34:21,810 --> 00:34:23,134 Și așa e gol aici. 841 00:34:23,134 --> 00:34:25,600 Deci acest prea este un fel de peste-inginerie această problemă. 842 00:34:25,600 --> 00:34:26,099 Dreapta? 843 00:34:26,099 --> 00:34:28,820 Am făcut programul mai complexe, mai multe linii de cod, 844 00:34:28,820 --> 00:34:31,889 Nu am făcut nici o mai funcțional, dar aceasta 845 00:34:31,889 --> 00:34:34,210 ar fi o piatră de temelie, probabil, pentru o mai largă 846 00:34:34,210 --> 00:34:36,830 context cu codul mai complicat. 847 00:34:36,830 --> 00:34:38,150 Dar ce zici de asta? 848 00:34:38,150 --> 00:34:42,050 Ce am done-- doar uitându-se la acest fără să se uite la comentariu 849 00:34:42,050 --> 00:34:46,076 la foarte de sus a ceea ce au file-- Am făcut fundamental aici cu tuse mea 850 00:34:46,076 --> 00:34:47,409 de punere în aplicare care este diferit? 851 00:34:47,409 --> 00:34:48,327 Da, in spate? 852 00:34:48,327 --> 00:34:51,384 >> Audiența: Fă-l astfel încât să puteți au un caracter opriți. 853 00:34:51,384 --> 00:34:52,050 SPEAKER 1: Da. 854 00:34:52,050 --> 00:34:53,270 Deci, acest lucru se simte un fel de frumos. 855 00:34:53,270 --> 00:34:53,389 Dreapta? 856 00:34:53,389 --> 00:34:56,600 E ca și cum adăugarea o caracteristică a ta program sau funcția, în acest caz. 857 00:34:56,600 --> 00:34:57,830 Încă întoarce nimic. 858 00:34:57,830 --> 00:35:00,538 S-ar putea avea un efect secundar vizual, pentru că sună imprimare f. 859 00:35:00,538 --> 00:35:02,800 Dar acum am parametrizat funcția, care 860 00:35:02,800 --> 00:35:06,470 înseamnă că ați specificat luat intrare de tip int și o numesc n, 861 00:35:06,470 --> 00:35:08,510 dar am putea spune orice vreau. 862 00:35:08,510 --> 00:35:11,550 De fapt, ar putea fi doar ori pentru a fi chiar mai explicit. 863 00:35:11,550 --> 00:35:13,310 Și apoi m-am putut schimba doar asta aici. 864 00:35:13,310 --> 00:35:16,450 Dar ideea este că acest lucru este modul în care am a crea o funcție care ia de intrare. 865 00:35:16,450 --> 00:35:19,530 Și dacă vă amintiți flipping prin, probabil, online, într-un singur 866 00:35:19,530 --> 00:35:23,000 de mers pe jos-throughs, The al patrulea și ultim exemplu tuse, 867 00:35:23,000 --> 00:35:27,150 veți observa aici am generalizat codul meu fel de further-- captată 868 00:35:27,150 --> 00:35:27,690 mai departe. 869 00:35:27,690 --> 00:35:31,390 Ca tuse și strănut, ambele sunt despre cum ar spune ceva sau de a face 870 00:35:31,390 --> 00:35:32,330 un fel de sunet. 871 00:35:32,330 --> 00:35:34,725 Salvează ar fi corespunzătoare bloc Scratch. 872 00:35:34,725 --> 00:35:37,350 Și ce am făcut în această versiune, care putem doar scurt la, 873 00:35:37,350 --> 00:35:43,170 este tusea este la fel ca a spune, [TUSE], tuse, și între timp, strănut este 874 00:35:43,170 --> 00:35:44,570 cum ai spune, [ACHOO]. 875 00:35:44,570 --> 00:35:46,900 Și așa am generalizat punerea în aplicare a celor 876 00:35:46,900 --> 00:35:48,970 de punere în aplicare acum Această funcție generic, 877 00:35:48,970 --> 00:35:51,490 spun, ceea ce este interesant în scopuri de astăzi 878 00:35:51,490 --> 00:35:54,300 numai pentru că încă nu are un tip de întoarcere. 879 00:35:54,300 --> 00:35:56,398 Dar câți intrări are? 880 00:35:56,398 --> 00:35:56,981 Audiența: Doi. 881 00:35:56,981 --> 00:35:57,430 SPEAKER 1: Doi. 882 00:35:57,430 --> 00:35:59,263 Și deci, dacă doriți să ia în două argumente, 883 00:35:59,263 --> 00:36:00,710 doar le separă cu o virgulă. 884 00:36:00,710 --> 00:36:03,110 Și, dacă doriți să atunci apel această funcție, 885 00:36:03,110 --> 00:36:05,800 observați că tocmai ați apel zicem, citat, citatul, 886 00:36:05,800 --> 00:36:09,090 pentru primul argument, comun n, pentru al doilea argument. 887 00:36:09,090 --> 00:36:12,130 Deci, din nou, doar avem acum blocuri astfel încât să putem, de fapt 888 00:36:12,130 --> 00:36:15,686 punerea în aplicare a unora dintre propriile noastre funcții. 889 00:36:15,686 --> 00:36:16,570 In regula. 890 00:36:16,570 --> 00:36:19,690 Orice întrebări cu privire la aceste? 891 00:36:19,690 --> 00:36:22,400 >> Deci, acum să coaja înapoi un strat dacă acest lucru. 892 00:36:22,400 --> 00:36:24,840 Și scopul, în cele din urmă, este problema set de săptămâna viitoare 893 00:36:24,840 --> 00:36:27,710 va fi pe cryptogrophy-- arta de a codare informații. 894 00:36:27,710 --> 00:36:30,640 Și exact, informațiile va avea tu cripta sau decripta 895 00:36:30,640 --> 00:36:31,605 va fi text. 896 00:36:31,605 --> 00:36:33,980 Și astfel acest tip de invitatii întrebarea de astăzi ca bine, 897 00:36:33,980 --> 00:36:38,480 ceea ce se întâmplă pe sub capota cu text ASCII dincolo de săptămână la zero, 898 00:36:38,480 --> 00:36:40,730 și cum o putem de fapt începe să-l manipuleze? 899 00:36:40,730 --> 00:36:43,070 Deci, aici este numele Zamyla lui. 900 00:36:43,070 --> 00:36:47,380 Și în text, ar putea fi introdus ca în ca funcția șir get. 901 00:36:47,380 --> 00:36:52,540 Și începând de acum, atunci când vezi o string ca asta: Z-A-M-Y-L-un-- 902 00:36:52,540 --> 00:36:56,550 incepe sa te gandesti de ea ca și cum fiecare de aceste caractere este într-o cutie de sale 903 00:36:56,550 --> 00:36:57,050 propriu. 904 00:36:57,050 --> 00:36:59,460 Și într-adevăr, într-o săptămână sau așa e timp, fiecare dintre aceste cutii 905 00:36:59,460 --> 00:37:04,280 va reprezenta foarte special un bloc de memory-- o muscatura de memorie. 906 00:37:04,280 --> 00:37:07,050 Deci, fiecare dintre aceste scrisori, în cele din urmă, va reprezenta 8 biți. 907 00:37:07,050 --> 00:37:10,560 Și vom vedea de fapt ce se întâmplă pe sub capota în calculatorul meu. 908 00:37:10,560 --> 00:37:13,440 >> Dar pentru că nu este suficient doar să se uite la Zamyla 909 00:37:13,440 --> 00:37:17,520 prin acest obiectiv, prin care fiecare dintre aceste scrisori este în propria cutie. 910 00:37:17,520 --> 00:37:22,697 Și destul de frumos în C putem accesa fiecare din aceste cutii direct. 911 00:37:22,697 --> 00:37:25,530 Deci, dacă doriți să obțineți primul scrisoare de numele ei, foarte ușor în C. 912 00:37:25,530 --> 00:37:28,410 Dacă doriți să obțineți ultima scrisoare, foarte ușor, precum și 913 00:37:28,410 --> 00:37:30,240 cu o bucată de noi sintaxă. 914 00:37:30,240 --> 00:37:36,250 >> Deci, am de gând să merg mai departe în CS50 IDE și deschide șirul de zero puncte C. 915 00:37:36,250 --> 00:37:40,270 Și în acest exemplu aici, există o serie de lucruri noi se întâmplă. 916 00:37:40,270 --> 00:37:44,360 Deci, în primul rând în linia 19, ne-am văzut acest șir get before--. 917 00:37:44,360 --> 00:37:49,840 Deci, doar ca o verificare rapidă bun-simț, dacă cineva ar putea oferi până verbal 918 00:37:49,840 --> 00:37:52,662 explicația un laic de ce se întâmplă în linia 19. 919 00:37:52,662 --> 00:37:55,370 Ca doar traduce aceasta în Engleză că un coleg de cameră nu este în CS50 920 00:37:55,370 --> 00:37:56,416 s-ar putea înțelege. 921 00:37:56,416 --> 00:37:56,916 Da. 922 00:37:56,916 --> 00:37:59,749 >> Audiența: Au intrare Un utilizator șir și se păstrează într-o s variabilă. 923 00:37:59,749 --> 00:38:01,934 924 00:38:01,934 --> 00:38:02,600 SPEAKER 1: Bun. 925 00:38:02,600 --> 00:38:05,579 Au intrare utilizator un șir și se păstrează într-o s variabilă. 926 00:38:05,579 --> 00:38:06,120 Grozav. 927 00:38:06,120 --> 00:38:08,090 Deci pe-dreapta parte, numim șir get. 928 00:38:08,090 --> 00:38:10,340 Care returnează o valoare care nu sa atribuit 929 00:38:10,340 --> 00:38:14,230 din partea dreaptă a stânga parte într-o variabilă numită s asta e 930 00:38:14,230 --> 00:38:15,950 proiectat pentru a stoca un șir. 931 00:38:15,950 --> 00:38:16,800 Exact. 932 00:38:16,800 --> 00:38:20,000 >> Deci, linia de acum 22, pe comentariul in linie 21, 933 00:38:20,000 --> 00:38:22,780 evident că imprimă șir un personaj pe linie. 934 00:38:22,780 --> 00:38:23,740 Dar cum? 935 00:38:23,740 --> 00:38:27,040 Deci, în primul rând, ne-am inițializa I la 0. 936 00:38:27,040 --> 00:38:31,061 Și atunci cum ajungem la la sfârșitul numelui Zamyla lui? 937 00:38:31,061 --> 00:38:32,810 Ei bine, la sfârșitul Numele Zamyla, am putea 938 00:38:32,810 --> 00:38:38,151 manual tip în ultimul caracter de numele ei într-un fel, sau numărul de ea. 939 00:38:38,151 --> 00:38:38,650 Dreapta? 940 00:38:38,650 --> 00:38:43,500 Dacă ne întoarcem here-- Z-A-M-L-- Y-L-un-- așa că am putut de tip în. 941 00:38:43,500 --> 00:38:47,340 Care este indicele de Ultima scrisoare Zamyla lui? 942 00:38:47,340 --> 00:38:52,517 Dacă acest lucru este 0-- vorbind ca un programmer-- 0, 1, 2, 3, 4, 5, 943 00:38:52,517 --> 00:38:56,570 Am heard-- așa, într-adevăr, ultima literă în numele Zamyla este al șaselea, 944 00:38:56,570 --> 00:38:58,890 dar dacă socotim de la 0, se va fi numărul 5. 945 00:38:58,890 --> 00:39:01,320 Deci, ține minte asta aici. 946 00:39:01,320 --> 00:39:04,929 >> Se pare că este o funcție în C numit strlen, și înapoi în ziua 947 00:39:04,929 --> 00:39:06,720 și la această zi încă, o mulțime de programatori 948 00:39:06,720 --> 00:39:09,524 Alegeți să sincronizați nume pentru lor funcții care suna ca cuvintele 949 00:39:09,524 --> 00:39:10,440 ei încearcă să spună. 950 00:39:10,440 --> 00:39:12,590 Deci strlen este de lungime șir. 951 00:39:12,590 --> 00:39:18,168 Și ce ar fi lungimea șir de S reveni atunci când Zamyla este de intrare? 952 00:39:18,168 --> 00:39:19,569 >> Audiența: Cinci. 953 00:39:19,569 --> 00:39:22,090 >> DIFUZOR 1: Z-A-M-Y-L. Șase. 954 00:39:22,090 --> 00:39:22,590 Dreapta? 955 00:39:22,590 --> 00:39:23,940 Care este lungimea numelui Zamyla lui? 956 00:39:23,940 --> 00:39:24,440 Dreapta? 957 00:39:24,440 --> 00:39:26,240 Și în realitate, șase litere. 958 00:39:26,240 --> 00:39:26,740 Dreapta? 959 00:39:26,740 --> 00:39:28,940 Și ce înseamnă asta pentru bucla nostru? 960 00:39:28,940 --> 00:39:32,130 Vom merge de la 0 până la șase, care 961 00:39:32,130 --> 00:39:33,650 este de gând să ne dea cinci iterații. 962 00:39:33,650 --> 00:39:34,890 Ce facem pe fiecare iteratie? 963 00:39:34,890 --> 00:39:36,870 Ei bine, la sută C, cineva ghicit de altă zi, 964 00:39:36,870 --> 00:39:38,710 înseamnă un substituent pentru ce? 965 00:39:38,710 --> 00:39:39,335 >> Audiența: Char. 966 00:39:39,335 --> 00:39:40,293 SPEAKER 1: Doar un char. 967 00:39:40,293 --> 00:39:42,877 Deci, un singur character-- nu mai multe caractere, cum ar fi un șir. 968 00:39:42,877 --> 00:39:45,251 Și apoi aici e noua linie că avem imprimarea. 969 00:39:45,251 --> 00:39:46,580 Și apoi aici este noul sintaxa. 970 00:39:46,580 --> 00:39:51,130 Dacă doriți să imprimați i-lea de caractere în șir S, ca să spunem așa, 971 00:39:51,130 --> 00:39:54,060 Poți spune pur și simplu Numele șir S, 972 00:39:54,060 --> 00:39:58,230 și apoi deschideți suport pătrat, și apoi închis suport pătrat, cu un i 973 00:39:58,230 --> 00:39:58,780 mijlocul. 974 00:39:58,780 --> 00:40:01,430 Și e un fel de frumos în care un fel de arata ca un pătrat 975 00:40:01,430 --> 00:40:06,210 la fel ca pătrate în care lui Zamyla Există personaje pe care poza acolo. 976 00:40:06,210 --> 00:40:09,970 >> Deci, dacă I ​​a alerga de fapt, acest acum, să vedem ce se întâmplă. 977 00:40:09,970 --> 00:40:15,190 Face șir 0 dot slash șir 0, și atunci eu sunt 978 00:40:15,190 --> 00:40:16,720 O să tastați în numele Zamyla lui. 979 00:40:16,720 --> 00:40:19,428 Nu e nici o promptă, pentru că nu am utilizați imprimare f, dar asta e bine. 980 00:40:19,428 --> 00:40:20,660 Știu doar ce să fac. 981 00:40:20,660 --> 00:40:23,240 Și într-adevăr, se afiseaza Numele Zamyla lui, câte unul pe linie. 982 00:40:23,240 --> 00:40:25,760 >> Acum hai să fim un pic mai nesăbuit. 983 00:40:25,760 --> 00:40:28,461 Să presupunem că nu știam despre strlen și m-am gândit, 984 00:40:28,461 --> 00:40:31,460 Bine, nimeni nu va avea un nume mai mare decât la fel ca 50 de caractere. 985 00:40:31,460 --> 00:40:36,360 Să mergem mai departe și să recompilați acest și rulați din nou, apoi tastați în Zamyla 986 00:40:36,360 --> 00:40:37,160 din nou. 987 00:40:37,160 --> 00:40:40,850 În mod logic, ceea ce este Programul va încerca să imprimați? 988 00:40:40,850 --> 00:40:49,545 Z-A-M-Y-L-O apoi ca 45 bytes necunoscute de memorie. 989 00:40:49,545 --> 00:40:51,670 Și într-adevăr, ne vom întoarce la această idee de memorie. 990 00:40:51,670 --> 00:40:54,180 Dar doar logic, dacă Numele Zamyla este atât de mult, 991 00:40:54,180 --> 00:40:56,450 conform imaginea aici, ce spunem 992 00:40:56,450 --> 00:40:59,810 este să păstreze imprimare, ține de imprimare, ține imprimare, ține de imprimare, ține de imprimare, 993 00:40:59,810 --> 00:41:03,781 tot drumul la caracterul 50, care cine știe ce se va întâmpla. 994 00:41:03,781 --> 00:41:05,030 Deci, haideți să aruncăm o privire de fapt. 995 00:41:05,030 --> 00:41:06,720 Să introduceți Zamyla. 996 00:41:06,720 --> 00:41:07,250 Interesant. 997 00:41:07,250 --> 00:41:08,190 Am avut noroc. 998 00:41:08,190 --> 00:41:09,700 Doar o grămadă de spatiu alb. 999 00:41:09,700 --> 00:41:09,930 Oh. 1000 00:41:09,930 --> 00:41:11,120 Există un caracter funky. 1001 00:41:11,120 --> 00:41:14,577 Se pare ca un fel de întrebare ciudată marca acolo, dar nu există nume Zamyla lui. 1002 00:41:14,577 --> 00:41:15,660 Să ne într-adevăr nesăbuit. 1003 00:41:15,660 --> 00:41:20,000 Cum despre noi imprima 500 blocuri în necunoscut? 1004 00:41:20,000 --> 00:41:24,380 Să mergem mai departe și să facă acest lucru precum și apoi re-run. 1005 00:41:24,380 --> 00:41:27,980 Și să ecran complet, pentru că avem nevoie pentru a vedea mai mult spațiu. 1006 00:41:27,980 --> 00:41:30,460 Zamyla. 1007 00:41:30,460 --> 00:41:31,830 A primit din nou noroc. 1008 00:41:31,830 --> 00:41:33,070 >> Dare vom obține mai mult nesăbuit? 1009 00:41:33,070 --> 00:41:36,070 Să ne mai nesăbuit. 1010 00:41:36,070 --> 00:41:39,350 50.000 de caractere. 1011 00:41:39,350 --> 00:41:41,390 Acest lucru este cel mai sigur nu este o idee bună. 1012 00:41:41,390 --> 00:41:41,890 In regula. 1013 00:41:41,890 --> 00:41:42,990 Face șir 0. 1014 00:41:42,990 --> 00:41:44,720 Aceasta va fi ultima noastră demo. 1015 00:41:44,720 --> 00:41:47,261 Zamyla. 1016 00:41:47,261 --> 00:41:48,632 Ugh. 1017 00:41:48,632 --> 00:41:50,010 Ugh. 1018 00:41:50,010 --> 00:41:50,680 BINE. 1019 00:41:50,680 --> 00:41:54,407 Deci memoria mea este într-adevăr gol, chiar acum, care este de fapt un fel de convenabil. 1020 00:41:54,407 --> 00:41:55,990 Ceea ce am încercarea de a obține sa-- bine. 1021 00:41:55,990 --> 00:41:57,614 Și acum am doar mergi la a lua nesăbuit. 1022 00:41:57,614 --> 00:41:58,570 500.000. 1023 00:41:58,570 --> 00:42:03,860 Make-- să full-screen-l. 1024 00:42:03,860 --> 00:42:04,990 Enter. 1025 00:42:04,990 --> 00:42:05,490 Zamyla. 1026 00:42:05,490 --> 00:42:12,050 1027 00:42:12,050 --> 00:42:13,390 Nu mergem. 1028 00:42:13,390 --> 00:42:15,610 Nu am nici o idee despre ce este, dar se pare rău. 1029 00:42:15,610 --> 00:42:16,110 In regula. 1030 00:42:16,110 --> 00:42:20,322 Și, de fapt, în curând, dacă ești printre puținele norocos în ore de birou 1031 00:42:20,322 --> 00:42:22,780 și în probleme stabilit unul, s-ar putea foarte bine întâlni acest lucru. 1032 00:42:22,780 --> 00:42:25,490 Segmentarea vina nu de fapt au un sens bine definit. 1033 00:42:25,490 --> 00:42:28,450 Aceasta înseamnă un fel de greșeală referitoare la un segment de memorie. 1034 00:42:28,450 --> 00:42:30,490 Și în termeni de nespecialist, aceasta înseamnă că a atins 1035 00:42:30,490 --> 00:42:34,780 memory-- am folosit RAM în calculatorul meu că nu ar trebui să fi avut acces la. 1036 00:42:34,780 --> 00:42:37,050 Și asta e ceea ce este atât puternic și, de asemenea, periculos 1037 00:42:37,050 --> 00:42:39,910 despre C este că de fapt au acces neîngrădit 1038 00:42:39,910 --> 00:42:45,910 la totalitatea memorie de program dumneavoastră sau octeți sau RAM, mai precis. 1039 00:42:45,910 --> 00:42:49,510 >> Deci, chiar dacă numele lui Zamyla este de numai șase caractere, 1040 00:42:49,510 --> 00:42:51,450 Eu pot merge în continuare oriunde în memorie vreau. 1041 00:42:51,450 --> 00:42:53,491 Și, ca o paranteza, dacă ați citit vreodata ceva articol 1042 00:42:53,491 --> 00:42:55,610 a lungul anilor despre unele server sau unele programe 1043 00:42:55,610 --> 00:42:58,654 obtinerea crăpate sau tocat care este profitat de ceva 1044 00:42:58,654 --> 00:43:00,820 numit un buffer overflow exploata că vom fapt 1045 00:43:00,820 --> 00:43:04,970 vorbesc despre în câteva săptămâni, asta e în general, referindu-se la un fel pacalind 1046 00:43:04,970 --> 00:43:09,090 un calculator în merge bine dincolo de granițele memoriei 1047 00:43:09,090 --> 00:43:11,410 că ar trebui să aibă, și găsi ceva suculent 1048 00:43:11,410 --> 00:43:13,530 în memory-- o parola, probabil, un mod 1049 00:43:13,530 --> 00:43:16,990 de a eluda unele numărul de serie verifica, sau pur și simplu, în general, în stare 1050 00:43:16,990 --> 00:43:20,360 pentru a pacali computerul se execută cod care nu a fost destinat. 1051 00:43:20,360 --> 00:43:22,360 Dar să revenim la realitate pentru o clipă 1052 00:43:22,360 --> 00:43:24,550 în cazul în care acest program a fost puse în aplicare cu strlen, 1053 00:43:24,550 --> 00:43:26,110 și să introducă un lucru aici. 1054 00:43:26,110 --> 00:43:30,030 Ce este nou între aceste primele trei linii? 1055 00:43:30,030 --> 00:43:30,910 >> Deci șir punct h. 1056 00:43:30,910 --> 00:43:35,490 Se pare că este această bibliotecă numit String Dot H, sau Biblioteca șir, 1057 00:43:35,490 --> 00:43:38,490 a cărui fișier antet, ca să spunem așa, este șir dot h care îmi dă 1058 00:43:38,490 --> 00:43:40,860 acces la această funcție strlen. 1059 00:43:40,860 --> 00:43:43,841 Dacă aș omite că, compilatorul este O să țipi la mine într-o formă. 1060 00:43:43,841 --> 00:43:44,590 Dar știi ce? 1061 00:43:44,590 --> 00:43:46,090 Acum hai să ne foarte nuanțată. 1062 00:43:46,090 --> 00:43:50,820 În linia 22, nu e ceva gen de inefficient-- prost concepute, 1063 00:43:50,820 --> 00:43:53,990 arguably-- despre această linie de cod. 1064 00:43:53,990 --> 00:43:56,280 Gandeste-te la modul în care sunt puse în aplicare pentru buclă 1065 00:43:56,280 --> 00:44:00,140 și ce măsuri se întâmple din nou și din nou și again-- inițializarea, 1066 00:44:00,140 --> 00:44:04,110 starea, codul care este executat, atunci incrementul 1067 00:44:04,110 --> 00:44:07,880 sau schimbarea, atunci condiția, apoi codul, atunci schimbarea, atunci 1068 00:44:07,880 --> 00:44:11,280 starea, atunci codul, atunci schimbarea, și așa mai departe. 1069 00:44:11,280 --> 00:44:15,320 Deci, ceea ce ar putea fi un pic ingrijoratoare sau prost făcut aici? 1070 00:44:15,320 --> 00:44:16,387 Da, în albastru. 1071 00:44:16,387 --> 00:44:18,220 Audiența: strlen este numit de multe, multe ori. 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 Deci, strlen este numit de multe ori, dar ceea ce este 1075 00:44:23,700 --> 00:44:27,113 lungimea numelui Zamyla The Prima dată bucla execută? 1076 00:44:27,113 --> 00:44:27,860 >> Audiența: Șase. 1077 00:44:27,860 --> 00:44:28,110 >> SPEAKER 1: Six. 1078 00:44:28,110 --> 00:44:30,976 Ei bine, ceea ce este lungimea numele ei a doua oară codul executa? 1079 00:44:30,976 --> 00:44:31,432 >> Audiența: Șase. 1080 00:44:31,432 --> 00:44:31,890 >> SPEAKER 1: Bine. 1081 00:44:31,890 --> 00:44:32,720 E încă șase. 1082 00:44:32,720 --> 00:44:33,220 Dreapta? 1083 00:44:33,220 --> 00:44:35,260 Numele Zarla nu are sa schimbat, chiar dacă caut 1084 00:44:35,260 --> 00:44:38,240 la doar o parte din literele din numele ei. 1085 00:44:38,240 --> 00:44:41,349 Și astfel faptul că eu sunt în mod eficient această întrebare, ceea ce este 1086 00:44:41,349 --> 00:44:44,640 lungimea de Zamyla, ceea ce este lungimea de Zamyla, ceea ce este lungimea Zamyla, 1087 00:44:44,640 --> 00:44:47,990 de șase ori separate sau șapte chiar, este doar prost, 1088 00:44:47,990 --> 00:44:50,390 pentru că asta e neschimbat răspunsul. 1089 00:44:50,390 --> 00:44:53,550 Și ce am putut de fapt faci este asta: în șir unul 1090 00:44:53,550 --> 00:44:55,680 Am o versiune marginal mai bine aici. 1091 00:44:55,680 --> 00:45:00,110 There-- string whoops-- două am o versiune mai bună, în care marginal 1092 00:45:00,110 --> 00:45:05,010 Fac asta: în loc de doar inițializarea I la 0, am, de asemenea, cu o virgulă 1093 00:45:05,010 --> 00:45:07,990 declara o variabilă numită al doilea N- Nu am să spun din nou Int. 1094 00:45:07,990 --> 00:45:09,220 Nu ar trebui, de fapt,. 1095 00:45:09,220 --> 00:45:10,380 Dar eu spun n. 1096 00:45:10,380 --> 00:45:13,610 Și apoi am inițializa la n strlen de n, astfel încât acum 1097 00:45:13,610 --> 00:45:17,110 De câte ori nu strlen se executa în total? 1098 00:45:17,110 --> 00:45:17,610 Doar odata. 1099 00:45:17,610 --> 00:45:20,257 Și astfel încât aceasta este ceea ce ne referim mai devreme despre design mai bun. 1100 00:45:20,257 --> 00:45:23,090 De fapt, o dată codul este corect, merge înapoi și de gândire prin, 1101 00:45:23,090 --> 00:45:26,820 sunt eu, folosind cât mai puțin memorie sau ca câteva secunde 1102 00:45:26,820 --> 00:45:30,409 sau milisecunde de timp de calculator ca posibil să pună în aplicare unele probleme? 1103 00:45:30,409 --> 00:45:32,200 Și am de gând pentru a defila și doar menționa 1104 00:45:32,200 --> 00:45:34,283 că există această mențiune de nul în această versiune, 1105 00:45:34,283 --> 00:45:36,390 dar vom reveni la asta înainte de mult timp. 1106 00:45:36,390 --> 00:45:41,010 Pentru că, pentru moment, haideți să aruncăm o privire la în cazul în care acest lucru se întâmplă să ne conducă. 1107 00:45:41,010 --> 00:45:44,110 Deci o, se pare că Acum, că avem capacitatea de 1108 00:45:44,110 --> 00:45:46,860 să se uite la caractere individuale, putem parghie ceva 1109 00:45:46,860 --> 00:45:50,807 din saptamana 0, care a fost foarte arcane și un fel de neinteresant la momentul respectiv. 1110 00:45:50,807 --> 00:45:53,390 Dar acum, și mai ales atunci când ajunge în criptografie într-o săptămână, 1111 00:45:53,390 --> 00:45:54,820 se va fi destul de puternic. 1112 00:45:54,820 --> 00:45:57,450 Se pare că, cu unele int și plutește de date types-- 1113 00:45:57,450 --> 00:46:00,300 și caractere și șiruri și alte lucruri-- unele dintre ele 1114 00:46:00,300 --> 00:46:02,800 pot fi foarte ușor convertite la altul. 1115 00:46:02,800 --> 00:46:05,840 >> De exemplu, atunci când am vorbit despre ASCII ceva timp ago-- aici e 1116 00:46:05,840 --> 00:46:07,796 literele de capital A prin M, punct, punct, 1117 00:46:07,796 --> 00:46:12,530 dot-- am spus că există o mapare între aceste litere și cifre. 1118 00:46:12,530 --> 00:46:14,970 Și, de fapt, ea este valabil pentru litere mici, precum și. 1119 00:46:14,970 --> 00:46:17,470 Litere mici a este de 97, capitalul este de 65 o. 1120 00:46:17,470 --> 00:46:20,860 Și există un număr în ASCII, care este doar acest cartografiere 1121 00:46:20,860 --> 00:46:23,240 Sistem pentru toate celelalte litere. 1122 00:46:23,240 --> 00:46:25,030 Deci, ce înseamnă asta? 1123 00:46:25,030 --> 00:46:28,390 Ei bine, am de gând să merg mai departe și deschis up reală repede ceva numit 1124 00:46:28,390 --> 00:46:31,240 ASCII 0, dintre care cel mai mult este un comentariu. 1125 00:46:31,240 --> 00:46:33,860 Și din nou online, puteți oricând privire prin comentarii. 1126 00:46:33,860 --> 00:46:36,180 >> Și să ia o privire ce acest lucru se va face. 1127 00:46:36,180 --> 00:46:38,410 Așa că are o funcție principală. 1128 00:46:38,410 --> 00:46:41,490 Am codificate hard numerele doar pentru acum, pentru că știu ce fac. 1129 00:46:41,490 --> 00:46:42,950 Știu ce vreau să văd aici. 1130 00:46:42,950 --> 00:46:45,220 Și am initializat I la 65 de ani. 1131 00:46:45,220 --> 00:46:48,490 Și Contez sus prin 26 de litere total. 1132 00:46:48,490 --> 00:46:52,990 Și ce am de gând să imprima o linie la un moment dat 1133 00:46:52,990 --> 00:46:54,930 dacă poate interpreta această linie subliniat? 1134 00:46:54,930 --> 00:46:55,970 Ce se tipărite? 1135 00:46:55,970 --> 00:46:56,797 Da. 1136 00:46:56,797 --> 00:46:57,264 >> Audiența: Ai de gând pentru a imprima litera care 1137 00:46:57,264 --> 00:46:59,805 corespunde harta Valoarea scrisoare și valoare întreagă? 1138 00:46:59,805 --> 00:47:01,199 1139 00:47:01,199 --> 00:47:01,990 SPEAKER 1: Exact. 1140 00:47:01,990 --> 00:47:04,740 Am de gând să imprima scrisoarea corespunzătoare valoarea întreagă, 1141 00:47:04,740 --> 00:47:06,131 și invers, după cum urmează. 1142 00:47:06,131 --> 00:47:08,880 Ei bine, acest, cineva a spus mai devreme, este doar un substituent pentru un char. 1143 00:47:08,880 --> 00:47:09,490 Încă mai este. 1144 00:47:09,490 --> 00:47:12,280 Acest lucru, desigur, este un substituent pentru o nu int-- o nouă linie. 1145 00:47:12,280 --> 00:47:18,140 Și acum observați, prima mea valoare care Sunt conectarea pentru substituent 1146 00:47:18,140 --> 00:47:22,320 nu este doar eu vreau să spun, în paranteze, char I, 1147 00:47:22,320 --> 00:47:26,700 care char paranteză este spune compilator, am trata 1148 00:47:26,700 --> 00:47:28,490 nu ca ceea ce este, ceea ce este un număr. 1149 00:47:28,490 --> 00:47:30,490 Trata ca pe un personaj real. 1150 00:47:30,490 --> 00:47:34,490 Întrucât a doua valoare am conectarea in-- Eu-- ar trebui să fie doar un număr. 1151 00:47:34,490 --> 00:47:38,140 >> Deci, dacă am compila acest program-- astfel încât acesta este face ASCII 0, 1152 00:47:38,140 --> 00:47:41,720 dot ASCII slash 0-- doar mă acest grafic la îndemână mic care 1153 00:47:41,720 --> 00:47:44,950 imi arata tot a posibilului mapările fără să-l cred 1154 00:47:44,950 --> 00:47:46,450 prin sau dau seama pe cont propriu. 1155 00:47:46,450 --> 00:47:48,783 Și eu sunt, de asemenea, imprimarea, observați litere mici, 1156 00:47:48,783 --> 00:47:51,410 deoarece câteva linii mai târziu, am De asemenea, imprima acest cartografiere 1157 00:47:51,410 --> 00:47:53,737 precum și, ceea ce este doar de a spune că, odată ce ați înțeles 1158 00:47:53,737 --> 00:47:55,570 ce se întâmplă dedesubt capota, poți să 1159 00:47:55,570 --> 00:47:57,111 converti automat înainte și înapoi. 1160 00:47:57,111 --> 00:48:00,160 Și, de fapt, dacă vreunul dintre voi a făcut vreodată acest lucru în școala primară 1161 00:48:00,160 --> 00:48:03,490 sau auzit despre cineva a lua o notă mitic 1162 00:48:03,490 --> 00:48:05,620 și trecerea la lui sau prietenul ei în clasă, 1163 00:48:05,620 --> 00:48:08,300 dar tu bruiat scrisori de ca A devine B, 1164 00:48:08,300 --> 00:48:11,240 și B devine C, sau ceva mai complicat decât atât, ei bine, 1165 00:48:11,240 --> 00:48:13,410 cum te-ai duce despre punere în aplicare a ca un copil? 1166 00:48:13,410 --> 00:48:16,340 Ei bine, doar un fel de știu A devine B, B devine C, 1167 00:48:16,340 --> 00:48:19,700 dar matematic, ceea ce a fost făcut copilul ăla? 1168 00:48:19,700 --> 00:48:22,050 Ce ai fost adăugarea la fiecare literă? 1169 00:48:22,050 --> 00:48:23,340 Efectiv, 1. 1170 00:48:23,340 --> 00:48:27,740 >> Deci, atunci când vă schimbați de la A la B, care este un fel de schimbare 65-66, 1171 00:48:27,740 --> 00:48:29,590 ceea ce înseamnă matematic doar adăugați 1. 1172 00:48:29,590 --> 00:48:33,300 Și așa că, dacă ar fi să pună în aplicare că puțin tehnica înșelătoare 1173 00:48:33,300 --> 00:48:36,380 pentru profesorul în codul, voi s-ar putea face exact acest lucru doar 1174 00:48:36,380 --> 00:48:38,552 prin adăugarea o singură literă împreună. 1175 00:48:38,552 --> 00:48:40,260 Deci, înainte de mult timp, suntem O să vedem cum putem 1176 00:48:40,260 --> 00:48:43,300 pot profita de asta de fapt scramble adevărat și Unscramble 1177 00:48:43,300 --> 00:48:43,991 informații. 1178 00:48:43,991 --> 00:48:47,240 În același timp, știu că am început să introducă un cuplu alte biblioteci 1179 00:48:47,240 --> 00:48:48,990 here-- șir unul azi. 1180 00:48:48,990 --> 00:48:51,180 Și un site foarte util sperăm că vă veți găsi 1181 00:48:51,180 --> 00:48:55,010 este numit reference.cs50.net, care cadrele didactice au pregătit, 1182 00:48:55,010 --> 00:48:57,510 astfel încât, dacă doriți să căuta lucrări cum strlen, 1183 00:48:57,510 --> 00:48:59,300 puteți începe să tastați numele functiei, 1184 00:48:59,300 --> 00:49:02,890 faceți clic pe strlen acolo, și apoi o explicație mai puțin confortabil 1185 00:49:02,890 --> 00:49:03,700 este de gând să apară. 1186 00:49:03,700 --> 00:49:06,880 Sau, dacă doriți oficial Explicație bazat pe Linux, 1187 00:49:06,880 --> 00:49:08,945 puteți să faceți clic mai confortabil la dreapta sus, și 1188 00:49:08,945 --> 00:49:12,070 va prezenta aceleași informații, dar în termeni mai complexe. 1189 00:49:12,070 --> 00:49:15,070 Aceasta este o resursă utilă pentru știu de fapt ce face totul. 1190 00:49:15,070 --> 00:49:17,320 >> Data viitoare vom aruncăm o privire la Ovaltine 1191 00:49:17,320 --> 00:49:20,070 și mai mult, și să introducă noi înșine la lumea de criptografie. 1192 00:49:20,070 --> 00:49:21,930 Înainte de atunci, vom vedea mai târziu în această săptămână. 1193 00:49:21,930 --> 00:49:23,390 Și acum, Colton Ogden. 1194 00:49:23,390 --> 00:49:26,730 Ne vedem miercuri. 1195 00:49:26,730 --> 00:49:30,216 >> [MUSIC JOC] 1196 00:49:30,216 --> 00:49:33,702 >> [MUSIC JOC] 1197 00:49:33,702 --> 00:49:38,682 1198 00:49:38,682 --> 00:49:42,200 >> SPEAKER 1: Ce [BLEEP] faci? 1199 00:49:42,200 --> 00:49:45,720 >> SPEAKER 1: Sunt mananca desert meu? 1200 00:49:45,720 --> 00:49:47,160 Cum îl mănânci? 1201 00:49:47,160 --> 00:49:47,860 Cu mâinile? 1202 00:49:47,860 --> 00:49:54,050 1203 00:49:54,050 --> 00:49:57,940 >> [MUSIC JOC] 1204 00:49:57,940 --> 00:50:03,453