1 00:00:00,000 --> 00:00:02,742 >> [MUSIC JOC] 2 00:00:02,742 --> 00:00:05,030 3 00:00:05,030 --> 00:00:09,090 >> ANDI Peng: Acest lucru este CS50, și Bine ati venit la doua saptamani de la punctul. 4 00:00:09,090 --> 00:00:11,740 Aceasta este, de fapt în timp ce săptămâna doi dintre class-- noastre de fapt, 5 00:00:11,740 --> 00:00:14,550 prima săptămână am avut secțiune. 6 00:00:14,550 --> 00:00:18,897 Spectacol de mâini, cât de multe dintre voi toți a venit la sectiunea Super săptămâna trecută? 7 00:00:18,897 --> 00:00:19,480 OK, e OK. 8 00:00:19,480 --> 00:00:20,020 Asta e ok. 9 00:00:20,020 --> 00:00:23,110 Câți dintre voi urmărit super-sectiunea de săptămâna trecută? 10 00:00:23,110 --> 00:00:23,610 BINE. 11 00:00:23,610 --> 00:00:25,702 Și voi a făcut bine pe probleme stabilit o? 12 00:00:25,702 --> 00:00:28,660 Deci, am de gând să-l ia pe care o avem o grămadă de copii într-adevăr inteligente 13 00:00:28,660 --> 00:00:32,310 în această clasă și lucrurile vor fi bine. 14 00:00:32,310 --> 00:00:33,180 BINE. 15 00:00:33,180 --> 00:00:33,980 Deci first-- 16 00:00:33,980 --> 00:00:37,900 17 00:00:37,900 --> 00:00:41,090 >> În primul rând, vom merge la scurt doar du-te peste ordinea de zi de astăzi. 18 00:00:41,090 --> 00:00:42,700 Vom vorbi despre logistica de curs. 19 00:00:42,700 --> 00:00:45,480 O mulțime dintre voi, probabil, au întrebări cu privire la 20 00:00:45,480 --> 00:00:46,920 se pare ca lucrurile se execută în acest curs. 21 00:00:46,920 --> 00:00:47,897 O să-i răspundem. 22 00:00:47,897 --> 00:00:49,730 Vom scurt du-te peste bucle în cazul 23 00:00:49,730 --> 00:00:51,410 oricare dintre voi a ratat punctul de super. 24 00:00:51,410 --> 00:00:53,240 Vom vorbi despre cartografiere ASCII. 25 00:00:53,240 --> 00:00:56,180 Vom vorbi despre tablouri, funcții, argumente în linia de comandă. 26 00:00:56,180 --> 00:01:00,210 Și, în sfârșit, ceea ce voi, probabil, toate doresc cu adevărat să fie aici pentru a afla mai multe despre, 27 00:01:00,210 --> 00:01:01,270 este pset2 ta. 28 00:01:01,270 --> 00:01:04,209 Vom avea câteva trucuri frumos si sfaturi pentru cum să faci asta. 29 00:01:04,209 --> 00:01:07,910 30 00:01:07,910 --> 00:01:08,690 >> BINE. 31 00:01:08,690 --> 00:01:11,450 De asemenea, în al doilea rând, ne-am o mulțime de bomboane aici. 32 00:01:11,450 --> 00:01:13,583 Oricine îi place bomboane, doar vin aici. 33 00:01:13,583 --> 00:01:14,430 Prinde unele. 34 00:01:14,430 --> 00:01:15,100 Am o grămadă. 35 00:01:15,100 --> 00:01:16,390 Avem o tona la birou. 36 00:01:16,390 --> 00:01:18,230 Nu vreau cu adevărat să mănânce bomboane toata ziua. 37 00:01:18,230 --> 00:01:20,300 Voi ar trebui să mănânce toate bomboane, pentru că l-am adus aici pentru voi. 38 00:01:20,300 --> 00:01:20,990 Mananca doar bomboane. 39 00:01:20,990 --> 00:01:24,080 Vor fi bomboane fiecare secțiune. 40 00:01:24,080 --> 00:01:25,330 >> Deci în primul rând, cine sunt eu? 41 00:01:25,330 --> 00:01:27,080 Numele meu este Andi Peng. 42 00:01:27,080 --> 00:01:30,270 Eu sunt șeful TA de CS50 aici la Yale. 43 00:01:30,270 --> 00:01:32,540 Și în plus față de că, voi, de asemenea, be-- 44 00:01:32,540 --> 00:01:35,600 dacă cineva ar like-- funcționare amice, umărul să plângi pe. 45 00:01:35,600 --> 00:01:39,140 În cazul în care cu o noapte înainte, datorită PSET dumneavoastră, aveți nici o idee ce se întâmplă, 46 00:01:39,140 --> 00:01:40,080 ma lovit în sus. 47 00:01:40,080 --> 00:01:42,770 Vom compătimi împreună, etc.. 48 00:01:42,770 --> 00:01:46,100 Știu doar că eu sunt aici ca resurse pentru tine, ca în prima linie 49 00:01:46,100 --> 00:01:51,830 în ajutându-vă voi da seama cum pentru a rezolva problemele din CS50 și dincolo. 50 00:01:51,830 --> 00:01:54,590 >> E-mail meu este andi.peng@yale.edu. 51 00:01:54,590 --> 00:01:58,390 Voi trimite, de asemenea, o persoană din e-mail cu numărul meu de telefon în ea 52 00:01:58,390 --> 00:02:01,860 astfel încât nu toată lumea de pe internet se poate vedea numărul meu de telefon. 53 00:02:01,860 --> 00:02:03,640 Simțiți-vă liber să mă suni în orice moment. 54 00:02:03,640 --> 00:02:07,510 Serios, telefonul meu este de obicei atașat la mâna mea. 55 00:02:07,510 --> 00:02:10,240 Eu nu pot răspunde în termen de câteva minute. 56 00:02:10,240 --> 00:02:11,984 Eu nu pot răspunde în termen de câteva ore. 57 00:02:11,984 --> 00:02:14,400 Dar vă pot garanta, în cazul în care vă e-mail-mă, dacă mă suni, 58 00:02:14,400 --> 00:02:17,404 textul mine, voi răspunde în termen de 24 de ore. 59 00:02:17,404 --> 00:02:19,820 Deseori, o să răspund în fața asta, pentru că am înțeles 60 00:02:19,820 --> 00:02:23,900 că toată lumea are unele probleme, si doriti raspunsurile 61 00:02:23,900 --> 00:02:26,110 trebuie să se răspundă foarte repede. 62 00:02:26,110 --> 00:02:28,945 >> Cu toate acestea, în cazul în care te sun mi 30 de minute înainte de 63 00:02:28,945 --> 00:02:31,570 că piesa care este joi datorează night-- fi ca, Andi, ajută-mă, 64 00:02:31,570 --> 00:02:35,380 N-am started---ar putea da vă că umăr pe care să plângă pe. 65 00:02:35,380 --> 00:02:41,520 Dar acesta poate fi timp să se gândească la cum să nu faci asta data viitoare. 66 00:02:41,520 --> 00:02:44,040 BINE. 67 00:02:44,040 --> 00:02:44,944 Oops. 68 00:02:44,944 --> 00:02:45,850 Cum pot să mă întorc? 69 00:02:45,850 --> 00:02:48,140 Nu mergem. 70 00:02:48,140 --> 00:02:52,310 >> Deci, în acest curs, avem o tona de sprijin pentru toată lumea. 71 00:02:52,310 --> 00:02:54,640 In plus fata de doar secțiuni aici, pe care le 72 00:02:54,640 --> 00:02:57,000 în fiecare săptămână ajunge să-și petreacă 90 minute minunate cu mine, 73 00:02:57,000 --> 00:02:58,330 avem, de asemenea ore de birou. 74 00:02:58,330 --> 00:03:01,021 Câți dintre voi au deja fost la ore de birou pentru ajutor? 75 00:03:01,021 --> 00:03:01,520 Grozav. 76 00:03:01,520 --> 00:03:05,700 Asta e foarte bine pentru a vedea, pentru că am au un personal de peste 45 de AT și AC 77 00:03:05,700 --> 00:03:11,780 antrenat pentru acest curs, care sunt aici pentru a ajuta voi cu psets tale. 78 00:03:11,780 --> 00:03:14,580 >> Lunea ei a avut loc în TEAL clasă în 17 Hill House aici 79 00:03:14,580 --> 00:03:15,350 la Yale. 80 00:03:15,350 --> 00:03:17,349 Marțea și joia, ei a avut loc în Comunelor. 81 00:03:17,349 --> 00:03:20,010 08:00 - 11:00 destul de mult în fiecare zi. 82 00:03:20,010 --> 00:03:21,620 Intră, ies. 83 00:03:21,620 --> 00:03:24,030 Orice problemă, nu problem-- doar vin pe la, 84 00:03:24,030 --> 00:03:26,650 și apoi te vom ajuta cu asta. 85 00:03:26,650 --> 00:03:31,640 >> În al doilea rând, în plus față de orele de birou și secțiuni, avem, de asemenea pantaloni scurți. 86 00:03:31,640 --> 00:03:35,930 A văzut cineva vreodată o pereche de pantaloni scurți sau walkthroughs în videoclipuri 87 00:03:35,930 --> 00:03:36,750 pe site-ul? 88 00:03:36,750 --> 00:03:37,250 BINE. 89 00:03:37,250 --> 00:03:39,510 Astfel încât acestea sunt foarte, foarte util. 90 00:03:39,510 --> 00:03:42,470 Productia noastra minunat Harvard echipa acolo pe care scoala 91 00:03:42,470 --> 00:03:47,910 în nord, care le-au filmat și a produs aceste filme de revizuire incredibile. 92 00:03:47,910 --> 00:03:52,290 >> Vor lua pas cu pas prin cum de a merge despre rezolvarea unei probleme. 93 00:03:52,290 --> 00:03:56,340 Deseori, daca esti confuz despre un concept simplu, un concept singular, 94 00:03:56,340 --> 00:03:59,780 aruncăm o privire, pentru că, probabil, ne-am un scurt pe undeva pe site-ul nostru. 95 00:03:59,780 --> 00:04:03,800 Și este, de obicei, o mare resursa să caute atunci când ești primul 96 00:04:03,800 --> 00:04:06,510 a pierdut cu privire la modul să se ocupe de o problemă. 97 00:04:06,510 --> 00:04:09,750 >> În al treilea rând, avem, de asemenea study50 și reference50. 98 00:04:09,750 --> 00:04:15,650 Deci studia 50 cu privire la site-ul este doar un link. 99 00:04:15,650 --> 00:04:21,500 Este, cred, study.cs50.net sau asa ceva. 100 00:04:21,500 --> 00:04:22,860 Doar Google. 101 00:04:22,860 --> 00:04:24,229 Avem o mulțime de diapozitive preparate. 102 00:04:24,229 --> 00:04:26,770 Avem o mulțime de pantaloni scurți și lucruri walkthroughs-- toate compilate 103 00:04:26,770 --> 00:04:31,070 foarte frumos și elegant pentru toate voi pentru a naviga prin, a se vedea orice concepte 104 00:04:31,070 --> 00:04:32,860 ca esti confuz despre. 105 00:04:32,860 --> 00:04:35,920 Ar fi, probabil, acoperite acolo în study50. 106 00:04:35,920 --> 00:04:37,640 >> Reference50-- similare. 107 00:04:37,640 --> 00:04:41,510 Avem o mulțime de diferite note disponibile pentru dispoziția dumneavoastră. 108 00:04:41,510 --> 00:04:44,450 Și, în fine, avem ceea ce este numit CS50 Discutați, 109 00:04:44,450 --> 00:04:48,082 un forum în care, în cazul în care cu o noapte inainte faci problemele tale, spune, 110 00:04:48,082 --> 00:04:49,880 aveți o întrebare. 111 00:04:49,880 --> 00:04:52,340 Conectați-vă la CS50 Discuta. 112 00:04:52,340 --> 00:04:53,190 Postează-ți întrebarea. 113 00:04:53,190 --> 00:04:55,820 Și apoi una din hundreds-- probabil, thousands-- de colegii 114 00:04:55,820 --> 00:04:57,960 luând această clasă on-line va autentifica. 115 00:04:57,960 --> 00:05:01,182 Și poate cineva poate obține răspunsul dumneavoastră înainte de o cutie TA. 116 00:05:01,182 --> 00:05:03,390 Este, în esență, doar o forum online care putem toți 117 00:05:03,390 --> 00:05:04,556 utilizați pentru a discuta despre problemele noastre. 118 00:05:04,556 --> 00:05:06,483 Asta e tare. 119 00:05:06,483 --> 00:05:10,660 120 00:05:10,660 --> 00:05:11,550 >> BINE. 121 00:05:11,550 --> 00:05:13,220 Deci, problema seturi. 122 00:05:13,220 --> 00:05:17,840 Suntem pe cale chiar în gros de problemă set doi. 123 00:05:17,840 --> 00:05:20,570 O mulțime de noi au deja luptat prin problemă stabilit o. 124 00:05:20,570 --> 00:05:24,460 Știm deja că, probabil, de așteptare pentru ultima noapte de a face PSET dvs. 125 00:05:24,460 --> 00:05:28,170 nu este cel mai inteligent lucru de făcut în CS50. 126 00:05:28,170 --> 00:05:32,380 >> Sfaturi și sfaturi, în esență, pentru Succesul se citi întreaga spec. 127 00:05:32,380 --> 00:05:36,270 Câți dintre voi au deja citeste spec pentru PSET 2? 128 00:05:36,270 --> 00:05:36,770 BINE. 129 00:05:36,770 --> 00:05:39,840 Asta-i o sumă solid. 130 00:05:39,840 --> 00:05:43,210 Știu că voi ați recunoscut, probabil, de acum specificatiile sunt foarte lung. 131 00:05:43,210 --> 00:05:45,700 Sunt foarte, foarte mult timp. 132 00:05:45,700 --> 00:05:49,630 >> E foarte greu de citit fiecare linie din cuvânt cu cuvânt cu atenție. 133 00:05:49,630 --> 00:05:52,780 Vrei să răsfoiesc doar acolo unde se spune să faci ceva. 134 00:05:52,780 --> 00:05:54,459 Eu vă pot garanta, nu face asta. 135 00:05:54,459 --> 00:05:56,750 Dacă faci asta, esti, probabil, O să dor de undeva 136 00:05:56,750 --> 00:05:58,458 în cazul în care vă spune cum să înceapă o problemă 137 00:05:58,458 --> 00:06:01,140 sau iti spune ce sa nume problema sau va spune, 138 00:06:01,140 --> 00:06:03,720 aceasta este, probabil, cel mai bun mod pentru a începe a face problema ta. 139 00:06:03,720 --> 00:06:05,050 Și apoi veți fi pierdut. 140 00:06:05,050 --> 00:06:08,219 >> Când încercați să citiți dumneavoastră spec jumătatea, 141 00:06:08,219 --> 00:06:10,510 o mulțime de importante information-- în care nu ești 142 00:06:10,510 --> 00:06:12,260 O să fie în măsură să într-adevăr acces. 143 00:06:12,260 --> 00:06:13,219 Deci citeste tot spec. 144 00:06:13,219 --> 00:06:15,468 Încercați să citiți întregul spec înainte de a veni la secțiune, 145 00:06:15,468 --> 00:06:17,360 pentru că atunci, când ne-am vorbesc despre PSET, 146 00:06:17,360 --> 00:06:21,070 putem avea toate o idee de ce se întâmplă. 147 00:06:21,070 --> 00:06:25,169 >> În al doilea rând, aceasta este o noțiune că voi dori să referință 148 00:06:25,169 --> 00:06:26,710 o mulțime de-a lungul semestrului curs. 149 00:06:26,710 --> 00:06:30,070 Dar, în esență, să ne întâlnim la jumătatea drumului, nu? 150 00:06:30,070 --> 00:06:33,970 Me, ca AT și Jason ca cursul manager și Scaz ca profesor dvs. 151 00:06:33,970 --> 00:06:37,120 și David ca profesor și toate alte tas minunat în acest curs, 152 00:06:37,120 --> 00:06:39,830 asistenți în acest course-- vom face tot posibilul 153 00:06:39,830 --> 00:06:42,965 pentru a vă asigura că sunt stabilite până pentru a reuși în acest curs. 154 00:06:42,965 --> 00:06:43,840 Vom organiza secțiune. 155 00:06:43,840 --> 00:06:44,870 Vom organiza ore de birou. 156 00:06:44,870 --> 00:06:47,087 Vom răspunde la telefon solicită, răspunde dvs. de e-mail-uri, 157 00:06:47,087 --> 00:06:49,670 facem tot ce putem pentru a face Sigur sunt răspuns la întrebările dumneavoastră. 158 00:06:49,670 --> 00:06:51,460 >> Cu toate acestea, ne ajuta sa prea. 159 00:06:51,460 --> 00:06:52,450 Faceți cunoștință cu noi la jumătatea drumului. 160 00:06:52,450 --> 00:06:56,040 Dacă ați ajuns la orelor de program nu au dus la secție, nu 161 00:06:56,040 --> 00:07:02,060 au văzut prelegeri, care nu au idee ce se întâmplă, fie ca, ajută-mă. 162 00:07:02,060 --> 00:07:04,350 Am de gând să fie ca, de bine, îmi pare rău. 163 00:07:04,350 --> 00:07:06,410 Acesta poate fi timp pentru a împrumuta care umăr să plângă pe, 164 00:07:06,410 --> 00:07:08,959 pentru că eu nu sunt sigur ce pot face pentru a te ajuta 165 00:07:08,959 --> 00:07:12,000 dacă nu încercați să cel puțin ajutor te un pic la început. 166 00:07:12,000 --> 00:07:12,910 Faceți cunoștință cu noi la jumătatea drumului. 167 00:07:12,910 --> 00:07:15,020 Știi, va rugam sa pregătite pentru a răspunde și de a lua 168 00:07:15,020 --> 00:07:16,353 gata să se angajeze în materialul. 169 00:07:16,353 --> 00:07:19,342 Se face lucruri atât de mult mai ușor pentru toți cei implicați. 170 00:07:19,342 --> 00:07:22,970 Da, asta e destul de mult. 171 00:07:22,970 --> 00:07:23,720 >> Clasificare. 172 00:07:23,720 --> 00:07:29,250 Deci, pe programa, e destul de în profunzime cu privire la modul în care clasa. 173 00:07:29,250 --> 00:07:32,440 Dar, în esență, defalcarea în acest sens este de 50% din nota 174 00:07:32,440 --> 00:07:34,530 vor fi psets, care este minunat, pentru că este 175 00:07:34,530 --> 00:07:37,400 în cazul în care sunteți de cheltuieli marea majoritate majoritatea timp desigur mai departe. 176 00:07:37,400 --> 00:07:39,854 Teste de 40%, și dumneavoastră Proiectul final va fi de 10%. 177 00:07:39,854 --> 00:07:42,520 Vor exista două concursuri în întreaga cursul semestrului. 178 00:07:42,520 --> 00:07:47,050 Cred că orele și datele sunt de asemenea, listate pe programa. 179 00:07:47,050 --> 00:07:49,210 >> Modul în care vom fi clasificare psets dvs. 180 00:07:49,210 --> 00:07:53,930 este că avem, în esență, patru Valorile pe care le atribuie la fiecare grad. 181 00:07:53,930 --> 00:07:57,250 Avem o valoare a domeniului de aplicare, corectitudine, design, si stil. 182 00:07:57,250 --> 00:08:01,530 Deci, după cum vedeți, e un fel de noastre formula de calcul psets. 183 00:08:01,530 --> 00:08:03,640 Trei noi da cel mai mult greutate la corectitudine, 184 00:08:03,640 --> 00:08:06,140 pentru că, evident, antrenorul ar trebui să fie de testare pentru cazurile 185 00:08:06,140 --> 00:08:08,480 că vrem pentru a testa. 186 00:08:08,480 --> 00:08:11,000 >> Voi toți trebuie check50 la dispoziția dumneavoastră. 187 00:08:11,000 --> 00:08:13,730 Este o functie foarte utila că voi putea tot 188 00:08:13,730 --> 00:08:17,560 încărcați codul pe serverele noastre, unde vom verifica pentru tine. 189 00:08:17,560 --> 00:08:20,800 Și le-ați văzut pe cei fețe tristă, smiley. 190 00:08:20,800 --> 00:08:22,119 Sunt foarte, foarte util. 191 00:08:22,119 --> 00:08:23,910 Vă rugăm să nu fie elev care încearcă place 192 00:08:23,910 --> 00:08:26,230 la hardcode în toate răspunsurile la ele. 193 00:08:26,230 --> 00:08:30,050 Am văzut cu siguranta un PSET unde cineva a văzut toate valorile check50 194 00:08:30,050 --> 00:08:33,429 și au doar greu codificate in-- dacă acest număr, imprima acest număr. 195 00:08:33,429 --> 00:08:35,080 Dacă acest număr, imprima acest număr. 196 00:08:35,080 --> 00:08:36,090 Nu face asta. 197 00:08:36,090 --> 00:08:39,360 >> Chiar dacă tehnic check50 este corectă, 198 00:08:39,360 --> 00:08:41,809 calea ta de a rezolva problemă nu este corect. 199 00:08:41,809 --> 00:08:45,770 Deci, trebuie doar să utilizați check50 cumpătat. 200 00:08:45,770 --> 00:08:48,497 Dar, de asemenea asigurați-vă că înțeleagă cum se funcționare, 201 00:08:48,497 --> 00:08:50,580 programul funcționează în plus față de check50, 202 00:08:50,580 --> 00:08:53,120 pentru că nu putem testa fiecare posibil caz de check50. 203 00:08:53,120 --> 00:08:55,440 Vom testa unele dintre ele. 204 00:08:55,440 --> 00:09:00,390 >> Design-ul este, în esență, cum bine conceput este codul? 205 00:09:00,390 --> 00:09:04,150 Dacă sunteți copy-paste multiple linii de cod multe, multe ori. 206 00:09:04,150 --> 00:09:06,960 Poate că nu au destul cel mai bun design din codul. 207 00:09:06,960 --> 00:09:09,470 Poate e timpul să adaug că bucla. 208 00:09:09,470 --> 00:09:12,090 În esență, aici e doar tot despre încercarea de a face codul, 209 00:09:12,090 --> 00:09:17,010 încercarea de a scrie codul cât mai eficient posibil, astfel încât programul ruleaza 210 00:09:17,010 --> 00:09:19,630 cât mai repede posibil. 211 00:09:19,630 --> 00:09:20,996 >> În cele din urmă, ne-am stil. 212 00:09:20,996 --> 00:09:24,360 Deci stil este un fel de , termen subiectiv arbitrar. 213 00:09:24,360 --> 00:09:27,470 Știu că avem în mod oficial un ghid de stil de 50 de CS50, 214 00:09:27,470 --> 00:09:30,050 în cazul în care vă spune, oh tu, ar trebui să aibă un spațiu aici. 215 00:09:30,050 --> 00:09:32,220 Ar trebui să fel de format codul acest fel. 216 00:09:32,220 --> 00:09:34,070 Tu ar trebui să numească lucrurile în acest fel. 217 00:09:34,070 --> 00:09:38,180 >> Nu-mi pasă cu adevărat, în sine, cum alegeți să stilul codul, 218 00:09:38,180 --> 00:09:39,840 atâta timp cât stai consecvent. 219 00:09:39,840 --> 00:09:43,732 De exemplu, dacă doriți să lăsați un spațiu după patru tau 220 00:09:43,732 --> 00:09:45,690 înainte de patru bucla ta, nu doar că de fiecare dată. 221 00:09:45,690 --> 00:09:46,523 Nu un fel de a face acest lucru. 222 00:09:46,523 --> 00:09:47,730 Nu o fac alte vremuri. 223 00:09:47,730 --> 00:09:51,046 Dacă vă place să țineți cret spațiu bretele-un anumit fel, 224 00:09:51,046 --> 00:09:52,170 doar întotdeauna așa fac. 225 00:09:52,170 --> 00:09:54,628 Nu fel de a face acest lucru undeva aici și acolo undeva nu. 226 00:09:54,628 --> 00:09:57,010 Când suntem clasificare, e foarte dificil 227 00:09:57,010 --> 00:09:59,420 dacă nu am nici o idee cum te formatare codul, 228 00:09:59,420 --> 00:10:02,064 lucrurile sunt Wacky și din loc. 229 00:10:02,064 --> 00:10:04,980 Dacă vă păstrați doar consecvent, e mult mai ușor pentru mine, ca cea mai mare 230 00:10:04,980 --> 00:10:06,310 pentru a fi capabil să citească codul. 231 00:10:06,310 --> 00:10:09,393 Este mult mai ușor pentru tine, ca un student pentru a putea să se uite prin codul 232 00:10:09,393 --> 00:10:11,720 și să vedem ce e în neregulă cu se reduce de ce nu e probleme. 233 00:10:11,720 --> 00:10:15,740 Stilul este unul dintre cele mai simple lucruri voi puteți face pentru a obține scoruri complete. 234 00:10:15,740 --> 00:10:18,770 În esență, dacă doar pasă, dacă plătiți cinci minute de atentie 235 00:10:18,770 --> 00:10:22,760 pentru codul în fiecare săptămână, ar trebui să fie obtinerea de puncte de stil complete. 236 00:10:22,760 --> 00:10:26,020 >> În cele din urmă, avem ceea ce se numește multiplicatorul de domeniul de aplicare. 237 00:10:26,020 --> 00:10:28,890 Scope-- Știu că e un mare cuvânt, mai ales în această clasă. 238 00:10:28,890 --> 00:10:31,030 Dar domeniul de aplicare, tot ceea ce înseamnă este că sunteți încercarea 239 00:10:31,030 --> 00:10:33,670 de psets la cele mai bune de capacitatea dumneavoastră. 240 00:10:33,670 --> 00:10:37,180 Dacă activați în trei din de cele patru probleme 241 00:10:37,180 --> 00:10:39,460 și nici măcar nu încercați ultima, esti, probabil, 242 00:10:39,460 --> 00:10:41,630 va pierde anumite puncte de pe domeniul de aplicare. 243 00:10:41,630 --> 00:10:44,560 >> Chiar dacă începeți doar problema, face cele mai bune dvs. de a merge prin ea. 244 00:10:44,560 --> 00:10:47,691 Chiar dacă aceasta nu funcționează, porniți-l în, pentru că arată și demonstrează 245 00:10:47,691 --> 00:10:50,190 să ne că sunteți încercarea de, că ai încercat problema set 246 00:10:50,190 --> 00:10:51,430 la cele mai bune de capacitatea dumneavoastră. 247 00:10:51,430 --> 00:10:53,800 Și apoi ne puteți da Puncte Full pentru domeniul de aplicare. 248 00:10:53,800 --> 00:10:58,715 >> Domeniul de aplicare este, de asemenea, foarte important pentru noi, atunci când vorbesc despre cel mai mic scor meniurile PSET. 249 00:10:58,715 --> 00:11:02,010 Deci pe parcursul semestru, voi avea nouă psets. 250 00:11:02,010 --> 00:11:05,340 Și vom fi de fapt în scădere cel mai mic scor din cele nouă, 251 00:11:05,340 --> 00:11:07,670 dar numai dacă aveți puncte Domeniul de aplicare complete. 252 00:11:07,670 --> 00:11:11,120 >> Deci, dacă te întorci într-o PSET incomplet, Din păcate, nu putem scădea ca unul, 253 00:11:11,120 --> 00:11:13,540 deoarece domeniul de aplicare dvs. puncte nu au fost finalizate. 254 00:11:13,540 --> 00:11:16,570 Deci, chiar dacă aveți săptămânii îngrozitor în cazul în care ești pe moarte și ești bolnav 255 00:11:16,570 --> 00:11:20,040 sau cainele moare, pisica ta moare, si tu esti supraîncărcat cu teme, 256 00:11:20,040 --> 00:11:21,074 doar încerca PSET. 257 00:11:21,074 --> 00:11:22,490 Fa-o la cele mai bune de capacitatea dumneavoastră. 258 00:11:22,490 --> 00:11:23,840 În cazul în care nu funcționează, nu contează. 259 00:11:23,840 --> 00:11:24,506 Doar rândul său, în. 260 00:11:24,506 --> 00:11:26,590 Cel puțin putem da te puncte pentru efort. 261 00:11:26,590 --> 00:11:28,510 >> A pentru efort în această clasă. 262 00:11:28,510 --> 00:11:30,170 Cel puțin cel mai mic scor picătură de efort. 263 00:11:30,170 --> 00:11:32,354 Deci da. 264 00:11:32,354 --> 00:11:33,270 Asta e destul de mult. 265 00:11:33,270 --> 00:11:36,521 Are cineva întrebări atât de departe de modul în care clasa in clasa? 266 00:11:36,521 --> 00:11:37,187 Sau oricare dintre acestea? 267 00:11:37,187 --> 00:11:41,220 Oricare dintre aceste așa far-- secțiuni, ore de birou? 268 00:11:41,220 --> 00:11:41,720 Misto. 269 00:11:41,720 --> 00:11:46,720 270 00:11:46,720 --> 00:11:47,800 BINE. 271 00:11:47,800 --> 00:11:51,260 >> Deci, acesta este un subiect care nu o într-adevăr îi place să vorbească despre. 272 00:11:51,260 --> 00:11:53,084 Nu-mi place cu adevărat să vorbesc despre asta. 273 00:11:53,084 --> 00:11:55,250 Voi nu doresc cu adevărat să mă audă vorbesc despre asta. 274 00:11:55,250 --> 00:11:57,690 Dar, din păcate, noi toți Trebuie să vorbesc despre asta. 275 00:11:57,690 --> 00:12:00,110 David a petrecut 20 de minute pe prelegeri vorbesc despre asta. 276 00:12:00,110 --> 00:12:02,580 Și care face obiectul de onestitate academică. 277 00:12:02,580 --> 00:12:08,110 >> Deci, noi toți de aici au scris, probabil, o cândva eseu în cariera noastră Yale. 278 00:12:08,110 --> 00:12:11,800 Am ajuns, probabil, o discuție în care ne-am sa spus să nu plagia eseu nostru, 279 00:12:11,800 --> 00:12:13,940 pentru că locul de muncă nu este al nostru. 280 00:12:13,940 --> 00:12:18,109 În informatică, avem același tip de concept. 281 00:12:18,109 --> 00:12:20,150 Toate lucrările pe care le prezintă, tot codul pe care le scrie 282 00:12:20,150 --> 00:12:21,900 ar trebui să fie de cod pe care le-ați scris. 283 00:12:21,900 --> 00:12:24,280 Nu ar trebui să fie de cod care le-ați copiate din altă parte. 284 00:12:24,280 --> 00:12:26,777 Nu ar trebui să fie un cod care ai googled și plopped în 285 00:12:26,777 --> 00:12:28,360 și nu știu cu adevărat dacă funcționează. 286 00:12:28,360 --> 00:12:32,440 Sunteți un fel de un sentiment de ceea ce face, dar nu chiar. 287 00:12:32,440 --> 00:12:36,562 Dacă aveți dubii, în esență, e doar fi rezonabil. 288 00:12:36,562 --> 00:12:38,520 Pe programa noastră, ne-am o întreagă listă de lucruri 289 00:12:38,520 --> 00:12:40,560 vom vedea ca rezonabil versus nu rezonabilă. 290 00:12:40,560 --> 00:12:43,820 >> De exemplu, rezonabil este tu și prietenul tău 291 00:12:43,820 --> 00:12:47,360 discuta ceea ce cel mai bun mod de a merge despre rezolvarea unei probleme logic. 292 00:12:47,360 --> 00:12:48,910 Asta e destul de rezonabil. 293 00:12:48,910 --> 00:12:53,244 Ceea ce nu ar fi rezonabil dacă este băieți s-au reunit, tastat același cod, 294 00:12:53,244 --> 00:12:54,410 și se întoarse în același cod. 295 00:12:54,410 --> 00:12:56,302 Asta nu e rezonabil. 296 00:12:56,302 --> 00:12:57,510 Același lucru, un fel de eseu. 297 00:12:57,510 --> 00:12:59,290 Dacă doriți, pentru a discuta cu prietenul tău, hei, 298 00:12:59,290 --> 00:13:00,220 aceasta este ceea ce vreau sa scriu despre. 299 00:13:00,220 --> 00:13:02,500 Acestea sunt pașii pe care vreau să lua pentru a scrie despre el, mare. 300 00:13:02,500 --> 00:13:03,208 Asta e minunat. 301 00:13:03,208 --> 00:13:04,790 Vă rugăm să colaboreze unii cu alții. 302 00:13:04,790 --> 00:13:06,540 Dacă voi începe scris același lucru, 303 00:13:06,540 --> 00:13:10,020 rândul său, în aceeași eseu, e mai puțin OK. 304 00:13:10,020 --> 00:13:13,200 Deci, atunci când în dubiu, pur și simplu nu o fac. 305 00:13:13,200 --> 00:13:16,940 >> Aici, noi, în CS50, avem scripturi care alerga pentru a automatiza de a testa 306 00:13:16,940 --> 00:13:21,740 nu numai corectitudinea codului, dar, de asemenea, unicitatea codului. 307 00:13:21,740 --> 00:13:25,920 Deci, vă rugăm să nu ne pune în poziția de a avea pentru a se referi la cazul dumneavoastră EXCOMM. 308 00:13:25,920 --> 00:13:31,110 Vă rugăm doar pentru toată lumea, hai să face acest lucru o experienta minunata. 309 00:13:31,110 --> 00:13:33,600 Toată lumea învață mai bine, Noi toți sunt fericiți, 310 00:13:33,600 --> 00:13:37,926 și suntem gata până la reuși în acest curs. 311 00:13:37,926 --> 00:13:39,800 Ceva care este foarte unic despre această clasă 312 00:13:39,800 --> 00:13:42,660 că eu cred că toată lumea ar trebui într-adevăr să acorde o atenție pentru a se că avem 313 00:13:42,660 --> 00:13:44,930 ceea ce se numește regretul Clauza în programa noastră. 314 00:13:44,930 --> 00:13:50,010 Deci, în esență, în termen de 72 de ore, în cazul în care crezi că ai făcut ceva 315 00:13:50,010 --> 00:13:53,240 nu esti foarte sigur a fost caz, vă rugăm să vin la noi. 316 00:13:53,240 --> 00:13:57,220 Vă promit că în termen de 72 de ore vom ocupa de caz ne 317 00:13:57,220 --> 00:13:59,820 fără a face referire la o mai mare autoritate în administrația. 318 00:13:59,820 --> 00:14:03,100 >> Deci, dacă ai venit la mine și să spună, Andi, hei, îmi pare foarte rău, 319 00:14:03,100 --> 00:14:07,620 dar cred că există câteva linii în mea cod aseară că am un fel de googled, 320 00:14:07,620 --> 00:14:10,120 coborât de stivă Preaplin, copiați și lipite, 321 00:14:10,120 --> 00:14:13,680 și eu sunt foarte, foarte rău despre asta, lasă-mă să știu. 322 00:14:13,680 --> 00:14:16,900 Vă rugăm să nu lăsați pur și simplu se agraveze și doar speranța că am prins. 323 00:14:16,900 --> 00:14:17,784 Vom prinde. 324 00:14:17,784 --> 00:14:18,450 Vino la mine. 325 00:14:18,450 --> 00:14:20,520 Lasă-mă să știu în termen de 72 de ore. 326 00:14:20,520 --> 00:14:22,240 Vom descoperi o soluție. 327 00:14:22,240 --> 00:14:26,679 Si va promitem ca nu vom referi la Autoritățile universitare în esență. 328 00:14:26,679 --> 00:14:29,220 Deci, este în interesul dumneavoastră să fie doar sincer cu toată lumea 329 00:14:29,220 --> 00:14:31,720 implicat în curs. 330 00:14:31,720 --> 00:14:34,630 >> BINE. 331 00:14:34,630 --> 00:14:35,240 BINE. 332 00:14:35,240 --> 00:14:37,800 Deci, acum, repede înainte Am muta pe, nimeni nu 333 00:14:37,800 --> 00:14:42,670 au întrebări cu privire la logistică cu privire la modul de cursuri vom pentru a rula, 334 00:14:42,670 --> 00:14:45,982 cum secțiuni merg pentru a rula, nimic din toate astea? 335 00:14:45,982 --> 00:14:46,711 BINE. 336 00:14:46,711 --> 00:14:47,210 Da. 337 00:14:47,210 --> 00:14:48,126 >> Audiența: [inaudibil]? 338 00:14:48,126 --> 00:14:50,414 339 00:14:50,414 --> 00:14:51,080 ANDI Peng: Da. 340 00:14:51,080 --> 00:14:54,850 Deci quizzes-- Câți dintre voi sunteți în partea de luni / miercuri? 341 00:14:54,850 --> 00:14:56,700 Câți dintre voi sunt în marți / joi? 342 00:14:56,700 --> 00:14:58,550 OK, deci este o ruptură solid aici. 343 00:14:58,550 --> 00:15:00,900 Deci modul în care vom rula o la Yale este ca ne 344 00:15:00,900 --> 00:15:04,040 vor avea două separate, quizzes-- unul pentru fiecare section-- care 345 00:15:04,040 --> 00:15:06,160 vor fi luate în timpul clasa. 346 00:15:06,160 --> 00:15:09,310 Cred că e luna octombrie, la sfârșitul lunii octombrie, ceva de genul asta, de o saptamana 347 00:15:09,310 --> 00:15:10,794 din testul. 348 00:15:10,794 --> 00:15:11,960 Da, așa vin doar la clasa. 349 00:15:11,960 --> 00:15:13,920 Pe care luni sau miercuri, veți lua testul. 350 00:15:13,920 --> 00:15:16,336 Pe care marți sau joi, veți lua un test diferit. 351 00:15:16,336 --> 00:15:18,570 Dar același material va fi acoperit. 352 00:15:18,570 --> 00:15:19,160 Da. 353 00:15:19,160 --> 00:15:20,660 Buna intrebare. 354 00:15:20,660 --> 00:15:21,160 Da. 355 00:15:21,160 --> 00:15:23,260 >> Audiența: Unde ne du-te pentru a verifica clasele noastre? 356 00:15:23,260 --> 00:15:23,926 >> ANDI Peng: Da. 357 00:15:23,926 --> 00:15:28,420 Așa că va fi trimiterea de o e-mail, indiferent de fiecare săptămână 358 00:15:28,420 --> 00:15:31,460 când teste sunt graded-- sau, Ne pare rău, atunci când psets sunt clasificate. 359 00:15:31,460 --> 00:15:34,120 Psets sunt de obicei transformat de către prânz sau vineri. 360 00:15:34,120 --> 00:15:37,540 Așa că am promit că voi încerca să-i mă întorc la tine 361 00:15:37,540 --> 00:15:40,000 de prânz de vinerea următoare. 362 00:15:40,000 --> 00:15:44,950 >> Ori de câte ori am de grad o PSET, voi trimite o notificare cu privire la cartea de grad 363 00:15:44,950 --> 00:15:47,070 care vă spune scorul pot fi vizualizate on-line. 364 00:15:47,070 --> 00:15:52,022 Deci, chiar în această săptămână, după ce am duce clasificare psets săptămâna trecută, 365 00:15:52,022 --> 00:15:54,230 voi va primi un e-mail notificare vă spun, 366 00:15:54,230 --> 00:15:55,870 hei acest lucru este în cazul în care du-te pentru a vedea notele. 367 00:15:55,870 --> 00:15:57,680 Și puteți vedea în fiecare defalcare a notele. 368 00:15:57,680 --> 00:15:58,555 Puteți vedea comentariile. 369 00:15:58,555 --> 00:16:00,360 Oh, lucru rapid, de asemenea,. 370 00:16:00,360 --> 00:16:03,060 De comentariu Secțiunea în mare carte este în cazul în care probabil voi 371 00:16:03,060 --> 00:16:05,300 petrece cea mai mare parte a timpului meu de notare. 372 00:16:05,300 --> 00:16:07,094 Deci, un lucru care este foarte important, atunci când 373 00:16:07,094 --> 00:16:09,010 Sunteți de vizionare clasele dvs. pe psets tale 374 00:16:09,010 --> 00:16:11,400 nu este numai în căutarea La scorul fizic 375 00:16:11,400 --> 00:16:14,630 dar, de asemenea lua timp pentru a citește într-adevăr comentariile mele. 376 00:16:14,630 --> 00:16:17,820 >> De multe ori, care vă oferă un feedback pe cum te rezolvarea unei probleme. 377 00:16:17,820 --> 00:16:20,480 Dacă aveți nevoie pentru a face ceva un pic mai bine, 378 00:16:20,480 --> 00:16:24,080 critici constructive, de obicei, este cel mai bun dat în aceste comentarii secțiune. 379 00:16:24,080 --> 00:16:26,950 Deci, vă rugăm, vă rog, am de gând să-și petreacă timpul scriind comentarii. 380 00:16:26,950 --> 00:16:30,440 Vă rugăm, mi-ar aprecia cu adevărat dacă voi ar citi aceste comentarii. 381 00:16:30,440 --> 00:16:31,170 BINE. 382 00:16:31,170 --> 00:16:34,150 Misto. 383 00:16:34,150 --> 00:16:34,680 >> In regula. 384 00:16:34,680 --> 00:16:40,680 Deci, vom să începem să discutăm și doar revizuirea rapid 385 00:16:40,680 --> 00:16:45,040 o parte din materialul din săptămână zero, așa că suntem 386 00:16:45,040 --> 00:16:48,760 pe pagina bună pentru începând problemele din această săptămână. 387 00:16:48,760 --> 00:16:52,600 Deci bucla în timp ce este un dintre cele trei tipuri de bucle 388 00:16:52,600 --> 00:16:54,510 am discutat mai devreme în această clasă. 389 00:16:54,510 --> 00:16:57,060 >> O buclă în timp ce, în esență, este scris în sintaxa 390 00:16:57,060 --> 00:17:00,666 în cazul în care, în timp ce o anumită condiție, face acest lucru în mod repetat, nu? 391 00:17:00,666 --> 00:17:02,040 Gândiți-vă la ea în acest grafic aici. 392 00:17:02,040 --> 00:17:04,780 Vei să înceapă la o anumit punct în cod. 393 00:17:04,780 --> 00:17:09,030 Ai de gând să intre în stare de buclă if-- Nu stiu-- x este mai mică de un. 394 00:17:09,030 --> 00:17:11,677 >> Dacă acest lucru este adevărat, te duci pentru a executa corpul buclei. 395 00:17:11,677 --> 00:17:14,010 Și ai de gând să continuăm să facem care din nou, din nou, din nou, 396 00:17:14,010 --> 00:17:17,900 peste si over-- care este de ce este un loop-- până când starea dumneavoastră devine 397 00:17:17,900 --> 00:17:19,079 fals. 398 00:17:19,079 --> 00:17:22,140 Deci, în acest fel, o buclă în timp ce este una dintre modalitățile simple 399 00:17:22,140 --> 00:17:25,619 pentru a scrie orice fel de condiții care trebuie să se repete de peste si peste si peste. 400 00:17:25,619 --> 00:17:28,109 Doar fii atent de fiecare dată când scrii orice fel de buclă 401 00:17:28,109 --> 00:17:32,140 că aveți o condiție de ieșire ca precum și o actualizare a tot ce este 402 00:17:32,140 --> 00:17:36,714 este astfel încât bucla dvs. nu doar alerga peste si peste infinit. 403 00:17:36,714 --> 00:17:38,630 În orice caz, te duci să doriți să vă asigurați 404 00:17:38,630 --> 00:17:42,670 pe care îl schimbați unele aspecte ale codul sau la sfârșitul buclei 405 00:17:42,670 --> 00:17:46,680 doar pentru a vă asigura că aveți un fel de progrese față de starea 406 00:17:46,680 --> 00:17:48,400 pe care doriți să îndeplinească până la sfârșitul. 407 00:17:48,400 --> 00:17:50,239 Asta face sens pentru toată lumea? 408 00:17:50,239 --> 00:17:52,530 Noi pur și simplu nu vreau să fiu prinși în această spirală în care 409 00:17:52,530 --> 00:17:55,710 mergem în jurul valorii de și în jurul și nu exista nici o modalitate de a rupe bucla. 410 00:17:55,710 --> 00:17:58,844 Și fiecare buclă, în esență, are un mod de a face asta. 411 00:17:58,844 --> 00:17:59,344 BINE. 412 00:17:59,344 --> 00:18:03,030 413 00:18:03,030 --> 00:18:06,060 >> În al doilea rând, mulți dintre voi în psets tale Mario 414 00:18:06,060 --> 00:18:08,910 probabil a trebuit să angajeze acest tip de buclă. 415 00:18:08,910 --> 00:18:11,802 Este numit un do în timp ce buclă. 416 00:18:11,802 --> 00:18:14,510 Mai întâi de toate, poate cineva să-mi spui ceea ce diferența dintre un do 417 00:18:14,510 --> 00:18:16,586 în timp ce buclă și o buclă în timp ce este? 418 00:18:16,586 --> 00:18:17,086 Da. 419 00:18:17,086 --> 00:18:21,030 >> AUDIENTA: a face în timp ce bucla ruleaza la prima [neauzit]. 420 00:18:21,030 --> 00:18:22,120 >> ANDI Peng: Da, exact. 421 00:18:22,120 --> 00:18:27,130 Deci, un do în timp ce buclă face întotdeauna tot ce este în interiorul do, în interiorul paranteze 422 00:18:27,130 --> 00:18:30,520 acolo și nu că starea înainte de a verifica pentru the-- rău, 423 00:18:30,520 --> 00:18:32,940 nu înainte de acest cod verificarea pentru starea. 424 00:18:32,940 --> 00:18:37,200 Și acest lucru este în special relevant pentru noi aici, în această clasă, pentru că cele mai multe ori 425 00:18:37,200 --> 00:18:41,450 vom dori să solicite utilizatorul pentru un fel de intrare. 426 00:18:41,450 --> 00:18:43,520 Și apoi, în funcție de intrarea ei ne dau, 427 00:18:43,520 --> 00:18:46,150 atunci putem evalua, oh, nu trebuie să le solicita din nou? 428 00:18:46,150 --> 00:18:49,930 >> Deci, în Mario, în cazul în care utilizatorul ți-a dat o înălțime negativ, de exemplu, 429 00:18:49,930 --> 00:18:52,990 ai de gând să primul prompte și face tot ce este în interiorul. 430 00:18:52,990 --> 00:18:54,820 Atunci ai de gând să verifice în timp ce. 431 00:18:54,820 --> 00:18:57,570 Știi, este negativ de 1, este faptul că un număr pozitiv? 432 00:18:57,570 --> 00:19:00,680 Dacă nu e, am de gând să merg înapoi și repetați facă și repeta 433 00:19:00,680 --> 00:19:03,950 și se repetă și se repetă până când În cele din urmă să vă dau un număr care vă place, 434 00:19:03,950 --> 00:19:07,002 pe care le putem folosi toate în codul nostru. 435 00:19:07,002 --> 00:19:09,210 Este destul de important pentru în esență, orice date introduse de utilizator. 436 00:19:09,210 --> 00:19:11,760 Eu vă pot garanta orice timp într-un PSET unde 437 00:19:11,760 --> 00:19:15,070 vă rugăm să introduceți orice fel de cod, suntem 438 00:19:15,070 --> 00:19:17,540 probabil voi da un caz test în care suntem 439 00:19:17,540 --> 00:19:21,200 O să-ți dau ceva de rău că e O să încerc să rupă codul. 440 00:19:21,200 --> 00:19:25,044 >> Dacă vom încerca să vă rog să o intrare întreg, vă putem oferi doar un șir 441 00:19:25,044 --> 00:19:26,460 și vezi cum te-ar descurca cu asta. 442 00:19:26,460 --> 00:19:30,610 Dacă vă cerem să angajeze o vârstă, vă poate da un număr negativ 443 00:19:30,610 --> 00:19:32,340 pentru a vedea cum v-ar descurca cu asta. 444 00:19:32,340 --> 00:19:37,260 Doar asigurați-vă că voi sunt de testare pentru cazurile în care nu obține cele mai bune 445 00:19:37,260 --> 00:19:38,590 de intrare, să zicem. 446 00:19:38,590 --> 00:19:40,510 Și o face în timp ce buclă este deseori cel mai bun 447 00:19:40,510 --> 00:19:45,260 mod de a proiecta codul dvs., astfel încât că îndeplinește că domeniul de aplicare. 448 00:19:45,260 --> 00:19:45,760 BINE. 449 00:19:45,760 --> 00:19:48,930 450 00:19:48,930 --> 00:19:49,470 >> BINE. 451 00:19:49,470 --> 00:19:53,270 Deci aceasta este, probabil cel mai bucla complex din trei 452 00:19:53,270 --> 00:19:54,990 pe care le-am uitat la până în prezent. 453 00:19:54,990 --> 00:19:56,689 Și se pare foarte infricosator la inceput. 454 00:19:56,689 --> 00:19:59,730 Dar te-am garanta, o dată voi prinde de modul de utilizare a unui pentru buclă, 455 00:19:59,730 --> 00:20:03,320 este unul dintre lucrurile cele mai utile, cele mai multe instrumente utile în arsenalul dvs. 456 00:20:03,320 --> 00:20:05,300 pentru a progresa în această clasă. 457 00:20:05,300 --> 00:20:09,920 >> Deci, de exemplu, în Scratch, am avut acest bloc foarte simplu 458 00:20:09,920 --> 00:20:13,180 care tocmai a spus repeta acest anumită fraze anumit număr de ori. 459 00:20:13,180 --> 00:20:16,260 Apropo, SAJ-- asta e Scaz Andi Jason. 460 00:20:16,260 --> 00:20:18,740 Semnăm deseori e-mailurile noastre SAJ. 461 00:20:18,740 --> 00:20:20,360 Dacă spunem SAJ, nu fi confundate. 462 00:20:20,360 --> 00:20:22,630 Asta e doar noi. 463 00:20:22,630 --> 00:20:28,600 >> Deci, în Scratch, am fost capabili de a avea un bloc care a spus, repet iubesc SAJ! 464 00:20:28,600 --> 00:20:29,430 10 ori. 465 00:20:29,430 --> 00:20:30,130 Foarte simplu. 466 00:20:30,130 --> 00:20:32,302 Logica din spatele, care este o foarte, foarte simplu, nu? 467 00:20:32,302 --> 00:20:35,260 Vreau să merg în primul rând prin primul timp și vezi că, a doua oară 468 00:20:35,260 --> 00:20:38,510 și vezi că, a treia oară, așa mai departe și așa mai departe, până când te-a lovit la 10. 469 00:20:38,510 --> 00:20:41,960 >> Și modul în care ar reprezenta că în Codul este doar printr-un simplu pentru buclă. 470 00:20:41,960 --> 00:20:45,440 Deci, pentru, ai de gând să declare variabila aici, în acest caz, 471 00:20:45,440 --> 00:20:46,349 cu un întreg. 472 00:20:46,349 --> 00:20:47,390 Vom numele acesta i. 473 00:20:47,390 --> 00:20:49,500 Vom inițializa la 0. 474 00:20:49,500 --> 00:20:52,490 Și ediția de oprire este Va fi i este mai mică de 10. 475 00:20:52,490 --> 00:20:54,622 Și actualizarea va fi i ++. 476 00:20:54,622 --> 00:20:57,750 >> Și în cadrul buclei, va pentru a executa până în cele din urmă 477 00:20:57,750 --> 00:21:01,490 spectaculos la sfârșitul condition-- în care caz, se va rupe bucla. 478 00:21:01,490 --> 00:21:04,600 Ar trebui să existe lucruri pe care le baieti au tot felul de văzut înainte 479 00:21:04,600 --> 00:21:07,270 și a trebuit să fac pentru problema ta setat unul. 480 00:21:07,270 --> 00:21:12,310 Are cineva întrebări în ceea ce privește pentru bucle chiar acum? 481 00:21:12,310 --> 00:21:12,930 BINE. 482 00:21:12,930 --> 00:21:13,430 Grozav. 483 00:21:13,430 --> 00:21:17,520 484 00:21:17,520 --> 00:21:18,620 >> BINE. 485 00:21:18,620 --> 00:21:22,270 Deci, pentru cei dintre voi care au citeste spec PSET pentru această săptămână 486 00:21:22,270 --> 00:21:27,690 Știu că vom avea de a angaja ceva numit ASCII și masă ASCII. 487 00:21:27,690 --> 00:21:32,380 David în curs a trecut pe scurt cum computerele essentially-- tot 488 00:21:32,380 --> 00:21:35,410 este codificat într-un calculator în binar, în zerouri și cele. 489 00:21:35,410 --> 00:21:39,740 Și modul în care computerele sunt capabili pentru a stoca valori diferite, în plus 490 00:21:39,740 --> 00:21:44,360 la zero și sunt cele prin cartografierea aceste numere pentru a reprezenta alte cifre 491 00:21:44,360 --> 00:21:47,220 sau în esență alte caractere. 492 00:21:47,220 --> 00:21:49,810 >> Deci, în acest caz, un ASCII table-- tot ce face 493 00:21:49,810 --> 00:21:53,600 este de caractere hartă, sau caractere, către numerele. 494 00:21:53,600 --> 00:21:57,385 Astfel încât fișierul sursă în cod dvs. computer-- vede, 495 00:21:57,385 --> 00:22:00,010 hei, o grămadă de zerouri și cele, zerouri și cele, zerouri și cele. 496 00:22:00,010 --> 00:22:02,350 Asta e ceea ce stocate în Memoria reală a computerului. 497 00:22:02,350 --> 00:22:04,750 >> Dar când noi, oamenii doresc să comunica cu computerul, 498 00:22:04,750 --> 00:22:08,249 am o doresti spunem, de exemplu, dacă vreau majuscule A, 499 00:22:08,249 --> 00:22:10,540 Am de gând să nevoie de un fel de a spune calculatorului, oh, 500 00:22:10,540 --> 00:22:16,300 atunci când am tip majuscule A, vreau să spun această reprezentare în binar. 501 00:22:16,300 --> 00:22:22,260 >> Și astfel modul în care facem asta este aruncat un lucru arbitrar numit un tabel ASCII, 502 00:22:22,260 --> 00:22:25,020 în cazul în care noi, ca oameni, ca programatori, ceva timp în urmă, 503 00:22:25,020 --> 00:22:28,660 am decis arbitrar că au fost de gând să atribui aceste număr 504 00:22:28,660 --> 00:22:30,960 Valorile acestor caractere. 505 00:22:30,960 --> 00:22:32,720 >> Deci, voi poate Google acest on-line. 506 00:22:32,720 --> 00:22:37,120 Cred că e un link la acesta în ta pset-- doar un tabel hartă ASCII, ASCII 507 00:22:37,120 --> 00:22:37,720 masa. 508 00:22:37,720 --> 00:22:40,722 Doar traduce binar numere în caractere. 509 00:22:40,722 --> 00:22:42,930 Si va fi foarte util pentru set problemă 510 00:22:42,930 --> 00:22:45,470 ori de câte ori doriți să calcula ceva sau dacă 511 00:22:45,470 --> 00:22:47,880 doriți să se afișeze anumite caractere sau numere întregi 512 00:22:47,880 --> 00:22:50,327 sau de a manipula anumite caractere. 513 00:22:50,327 --> 00:22:52,160 O să fie foarte important să tot 514 00:22:52,160 --> 00:22:55,140 știu cum să mergeți un tabel ASCII. 515 00:22:55,140 --> 00:23:01,260 >> Astfel de exemplu, majuscule A este reprezentată de numărul 65. 516 00:23:01,260 --> 00:23:04,207 Și minuscule A este reprezentată de 97. 517 00:23:04,207 --> 00:23:07,040 Deci, este important de știut că diferență între cele două valori 518 00:23:07,040 --> 00:23:08,320 este 32. 519 00:23:08,320 --> 00:23:13,210 Deseori, în cazul în care aveți nevoie se convertesc la unul la celălalt, diferența este 32. 520 00:23:13,210 --> 00:23:15,710 Și nu vă faceți griji dacă sunteți un fel de confuz cu privire la acest la început. 521 00:23:15,710 --> 00:23:20,230 Vom trece peste cum ne-ar folosesc acest cod in real. 522 00:23:20,230 --> 00:23:24,700 523 00:23:24,700 --> 00:23:26,380 >> BINE. 524 00:23:26,380 --> 00:23:30,770 Deci, pentru cei dintre voi cu laptop-uri din, nu ezitați să trageți în sus un tabel ASCII, 525 00:23:30,770 --> 00:23:36,030 pentru că, probabil, acestea vor necesită voi de referință 526 00:23:36,030 --> 00:23:38,100 care sunt personajele. 527 00:23:38,100 --> 00:23:38,640 BINE. 528 00:23:38,640 --> 00:23:42,840 >> Deci, știind că anumite caractere hartă pentru anumite numere, 529 00:23:42,840 --> 00:23:47,240 dacă aș fi de a rula doar primul linie de care code-- printf A, 530 00:23:47,240 --> 00:23:50,900 litere mici a, minus majuscule A. Are cineva 531 00:23:50,900 --> 00:23:55,880 au o bănuială asupra a ceea ce ar fi imprimarea a ecranului chiar acum? 532 00:23:55,880 --> 00:23:58,190 >> Deci, în primul rând, ceea ce face mici o reprezintă? 533 00:23:58,190 --> 00:24:00,990 Ce număr este că codificată în tabelul ASCII. 534 00:24:00,990 --> 00:24:01,490 Ne pare rău? 535 00:24:01,490 --> 00:24:02,630 >> Audiența: 97? 536 00:24:02,630 --> 00:24:03,630 >> ANDI Peng: 97, mare. 537 00:24:03,630 --> 00:24:05,077 Și ceea ce este majuscule A? 538 00:24:05,077 --> 00:24:06,330 >> Audiența: 65. 539 00:24:06,330 --> 00:24:08,255 >> ANDI Peng: Deci, ce este de 97 minus 65? 540 00:24:08,255 --> 00:24:09,227 >> Audiența: 32. 541 00:24:09,227 --> 00:24:09,810 ANDI Peng: OK. 542 00:24:09,810 --> 00:24:13,530 Deci, ce voi cred că este de gând să se întâmplă atunci când am de intrare care linie de cod 543 00:24:13,530 --> 00:24:14,670 în computerul meu? 544 00:24:14,670 --> 00:24:17,981 545 00:24:17,981 --> 00:24:19,896 >> Audiența: [neauzit]. 546 00:24:19,896 --> 00:24:21,020 ANDI Peng: Îmi pare rău, vorbi. 547 00:24:21,020 --> 00:24:22,520 Fără griji. 548 00:24:22,520 --> 00:24:25,750 Acesta este un foarte sigur mediu, minus camera. 549 00:24:25,750 --> 00:24:27,550 Suntem toți o sa-- nu vă faceți griji. 550 00:24:27,550 --> 00:24:30,940 Doar suntem toți o să pretindem ca Suntem doar noi refrigerare în această cameră. 551 00:24:30,940 --> 00:24:31,480 Fără griji. 552 00:24:31,480 --> 00:24:33,410 Nicio întrebare este prea prost. 553 00:24:33,410 --> 00:24:35,300 Nici un răspuns este un răspuns stupid. 554 00:24:35,300 --> 00:24:38,260 Sunt, probabil, de gând să facă greșeli în cursul învățătura mea. 555 00:24:38,260 --> 00:24:40,740 Serios, băieți, doar divulga fără să vrea. 556 00:24:40,740 --> 00:24:43,092 Fii încrezător în tine, știi? 557 00:24:43,092 --> 00:24:43,800 Deci, ce a fost asta? 558 00:24:43,800 --> 00:24:47,990 Cine a spus că ultima răspuns? 559 00:24:47,990 --> 00:24:48,540 BINE. 560 00:24:48,540 --> 00:24:50,380 Striga că frumos și clar. 561 00:24:50,380 --> 00:24:51,220 >> Audiența: 32? 562 00:24:51,220 --> 00:24:51,850 >> ANDI Peng: 32. 563 00:24:51,850 --> 00:24:54,141 OK, hai să executați acest cod și vezi dacă asta se întâmplă. 564 00:24:54,141 --> 00:25:00,260 565 00:25:00,260 --> 00:25:00,760 BINE. 566 00:25:00,760 --> 00:25:03,300 567 00:25:03,300 --> 00:25:06,360 Deci, ca voi poate un fel de vezi, notația tipic Am 568 00:25:06,360 --> 00:25:12,250 înființat aici pentru modul în care ne-ar angaja orice fel de program de la calculatorul nostru. 569 00:25:12,250 --> 00:25:14,770 Avem funcție nostru principal în funcție de principalul nostru. 570 00:25:14,770 --> 00:25:17,265 Mă duc să copiați și inserați acest linie de cod. 571 00:25:17,265 --> 00:25:21,082 572 00:25:21,082 --> 00:25:23,540 De asemenea, fiți atenți atunci când voi sunt copierea și lipirea codul. 573 00:25:23,540 --> 00:25:28,750 Uneori anumitor operatori Nu lipiți peste corect. 574 00:25:28,750 --> 00:25:31,397 În acest caz, minus semn a fost de fapt o liniuță. 575 00:25:31,397 --> 00:25:32,980 Și astfel computerul nu-l ridic. 576 00:25:32,980 --> 00:25:35,870 Așa că a trebuit să mă întorc și Reintroduceți fizic asta. 577 00:25:35,870 --> 00:25:37,846 Doar fii atent atunci când voi fac asta. 578 00:25:37,846 --> 00:25:41,178 579 00:25:41,178 --> 00:25:42,660 >> BINE. 580 00:25:42,660 --> 00:25:43,980 Vom rula acest aici. 581 00:25:43,980 --> 00:25:45,670 Deci vom CD în section2 nostru. 582 00:25:45,670 --> 00:25:50,470 583 00:25:50,470 --> 00:25:52,030 Am numit acest asciimath programului. 584 00:25:52,030 --> 00:25:55,690 Deci ține minte, când vom rula orice Programul, dorim în primul rând să-l compilați 585 00:25:55,690 --> 00:25:57,150 prin rularea-l prin make nostru. 586 00:25:57,150 --> 00:26:00,030 Și apoi ne-o dorim pentru a rula de fapt, programul de a face dot-slash. 587 00:26:00,030 --> 00:26:01,280 Așa că am de gând să ./asciimath. 588 00:26:01,280 --> 00:26:05,780 589 00:26:05,780 --> 00:26:06,590 >> Dreapta, acolo mergem. 590 00:26:06,590 --> 00:26:07,410 Si vom vedea 32. 591 00:26:07,410 --> 00:26:07,930 Bine făcut. 592 00:26:07,930 --> 00:26:10,340 Meriți o bucată de bomboane. 593 00:26:10,340 --> 00:26:11,160 Bomboane pentru tine. 594 00:26:11,160 --> 00:26:11,900 Scuze. 595 00:26:11,900 --> 00:26:13,100 In regula. 596 00:26:13,100 --> 00:26:13,670 BINE. 597 00:26:13,670 --> 00:26:18,070 Deci, ne putem întoarce la exemplul nostru aici. 598 00:26:18,070 --> 00:26:23,530 599 00:26:23,530 --> 00:26:24,345 Aah, nu. 600 00:26:24,345 --> 00:26:29,147 601 00:26:29,147 --> 00:26:31,090 Aah. 602 00:26:31,090 --> 00:26:32,490 BINE. 603 00:26:32,490 --> 00:26:34,610 Mă duc să-l păstrați așa. 604 00:26:34,610 --> 00:26:48,520 605 00:26:48,520 --> 00:26:51,240 BINE. 606 00:26:51,240 --> 00:26:51,740 BINE. 607 00:26:51,740 --> 00:26:55,340 Deci, ca voi poate vedea, putem face o mulțime de lucruri foarte interesante, 608 00:26:55,340 --> 00:26:58,880 o mulțime de lucruri foarte cool, o mulțime de lucruri foarte complicate care implică 609 00:26:58,880 --> 00:27:02,720 ASCII și numere. 610 00:27:02,720 --> 00:27:05,890 Odată ce ai ajuns jos la linia de cinci, care este o mulțime de urmat de-a lungul. 611 00:27:05,890 --> 00:27:07,640 Noi nu merge prin secțiunea. 612 00:27:07,640 --> 00:27:10,720 Simțiți-vă liber să, dacă puteți, Expunere de motive pe hârtie 613 00:27:10,720 --> 00:27:14,750 în primul rând pe ceea ce ar trebui să se întâmple atunci când ați introdus un astfel de șir de valori. 614 00:27:14,750 --> 00:27:19,720 De exemplu, în ultima linie, avem z-- care reprezintă o anumită number-- 615 00:27:19,720 --> 00:27:24,740 un-- care reprezintă, de asemenea, o anumite number-- plus 1 modulos 26 616 00:27:24,740 --> 00:27:26,750 plus litere mici a. 617 00:27:26,750 --> 00:27:29,220 >> Dacă voi ține de lectură prin acestea, 618 00:27:29,220 --> 00:27:34,009 poate vedea un model veni în cum suntem manipularea codului. 619 00:27:34,009 --> 00:27:36,050 Am foarte, foarte sugerează după secțiunea toți 620 00:27:36,050 --> 00:27:38,160 băieți mergeți mai departe și de intrare cei toate în calculatorul dumneavoastră 621 00:27:38,160 --> 00:27:40,060 și a vedea ce fel de Numerele ies 622 00:27:40,060 --> 00:27:43,090 și raționamentul prin ce acestea sunt întâmplă, deoarece pentru psets dvs. 623 00:27:43,090 --> 00:27:45,060 va fi foarte important pentru tine de a înțelege 624 00:27:45,060 --> 00:27:47,132 de ce anumite lucruri se întâmplă. 625 00:27:47,132 --> 00:27:48,590 Toate aceste diapozitive va fi on-line. 626 00:27:48,590 --> 00:27:51,510 Deci nu vă faceți griji despre încercarea de a copia fizic notițe. 627 00:27:51,510 --> 00:27:52,510 Totul online. 628 00:27:52,510 --> 00:27:54,050 Această secțiune se va fi on-line. 629 00:27:54,050 --> 00:27:57,500 Toate codul sursă care Sunt rulează va fi online. 630 00:27:57,500 --> 00:27:58,180 Da. 631 00:27:58,180 --> 00:27:59,430 Ai încă o întrebare? 632 00:27:59,430 --> 00:28:00,587 Audiența: Ce este modulos? 633 00:28:00,587 --> 00:28:01,170 ANDI Peng: OK. 634 00:28:01,170 --> 00:28:05,620 Deci modulo este un operator care va fie destul de important pentru PSET baieti tăi 635 00:28:05,620 --> 00:28:06,690 Aici. 636 00:28:06,690 --> 00:28:12,280 Deci modul în care operatorii în C și în activitatea de programare 637 00:28:12,280 --> 00:28:16,360 este că veți avea ceea ce se numește simbol diviziune și simbolul modul, 638 00:28:16,360 --> 00:28:18,350 care este la fel ca semnul sută. 639 00:28:18,350 --> 00:28:24,840 >> Deci, în C, atunci când faci un număr întreg împărțită la un întreg cu o bară oblică, 640 00:28:24,840 --> 00:28:27,720 C are o tendinta de a vrea să taie off toate punctele zecimale, 641 00:28:27,720 --> 00:28:30,290 deoarece un număr întreg dorește pentru a converti la un întreg. 642 00:28:30,290 --> 00:28:33,550 Nu va vrea să fie un dublu cu un buchet de zecimale toate după el. 643 00:28:33,550 --> 00:28:39,322 >> Deci, dacă fac 3 împărțit la 2, aceasta va să taie 0,5 și doar vă dau o. 644 00:28:39,322 --> 00:28:41,530 Așa că e ceva să fie foarte atent de când ești 645 00:28:41,530 --> 00:28:45,294 a face orice fel de matematica in programare, este că numerele pe care le obține 646 00:28:45,294 --> 00:28:47,210 nu poate fi numerele care te gândeai, 647 00:28:47,210 --> 00:28:50,190 care este motivul pentru rotunjire în ta Ultima PSET este atât de important. 648 00:28:50,190 --> 00:28:51,980 >> Modulo vă oferă restul. 649 00:28:51,980 --> 00:28:56,200 Deci, de exemplu, dacă am făcut 3 modulo astfel 2-- 3 la sută semn 2-- 650 00:28:56,200 --> 00:28:58,020 v-ar da restul de care. 651 00:28:58,020 --> 00:29:00,460 Deci 3 împărțit la 2 este 1.5. 652 00:29:00,460 --> 00:29:01,410 E 1 restul de 1. 653 00:29:01,410 --> 00:29:04,600 Acesta vă va oferi 1, care este restul care. 654 00:29:04,600 --> 00:29:07,361 >> Deci, atunci când sunt în mișcare voi prin masa ASCII, 655 00:29:07,361 --> 00:29:09,735 modulo va sfârși prin a fi ceva care este foarte important, 656 00:29:09,735 --> 00:29:11,240 și vom discuta asta mai târziu. 657 00:29:11,240 --> 00:29:17,750 658 00:29:17,750 --> 00:29:19,040 >> BINE. 659 00:29:19,040 --> 00:29:27,300 Deci ceva care este destul de, destul de nou și destul de unic 660 00:29:27,300 --> 00:29:31,920 că am discutat în această săptămână este conceptul de o matrice este. 661 00:29:31,920 --> 00:29:34,370 Deci matrice este primul tip de structură de date 662 00:29:34,370 --> 00:29:36,320 că vom întâlni în această clasă. 663 00:29:36,320 --> 00:29:40,010 Toate datele sunt este structura un fel de arbitrare, 664 00:29:40,010 --> 00:29:43,370 literalmente, cum ar fi structura lucruri că noi, ca programatori au creat, 665 00:29:43,370 --> 00:29:47,890 care le-am pus în codul nostru că poate conține alte piese de cod. 666 00:29:47,890 --> 00:29:51,090 >> Deci, în acest sens, un array-- cred că de ea ca un dulap, 667 00:29:51,090 --> 00:29:53,470 în cazul în care dacă deschideți diferite rafturi de cabinetul dumneavoastră de fișiere, 668 00:29:53,470 --> 00:29:55,630 puteți accesa lucruri diferite. 669 00:29:55,630 --> 00:29:58,630 În memoria, o serie se face doar același lucru pe computer. 670 00:29:58,630 --> 00:30:01,730 Puteți avea diferite ne blocks-- le numesc indices-- de o matrice. 671 00:30:01,730 --> 00:30:04,210 E la fel ca un bloc, un raft de memorie 672 00:30:04,210 --> 00:30:07,580 că am creat în ta computer care puteți introduce 673 00:30:07,580 --> 00:30:10,270 anumite lucruri în spații diferite. 674 00:30:10,270 --> 00:30:18,000 >> Deci, cu o serie, te trebuie întotdeauna să specify-- 675 00:30:18,000 --> 00:30:22,360 trebuie să specificați declararea unui matrice în formatul următor. 676 00:30:22,360 --> 00:30:24,290 Ai de gând să primul specifica tipul de date 677 00:30:24,290 --> 00:30:25,831 pe care doriți să creați de matrice. 678 00:30:25,831 --> 00:30:28,870 Dacă vreau o serie de numere întregi, Am de gând să pună Int chiar acolo. 679 00:30:28,870 --> 00:30:32,079 Dacă vreau o serie de siruri de caractere, Am de gând să pună siruri de caractere acolo, 680 00:30:32,079 --> 00:30:34,995 numele matrice, apoi ai de gând să aibă între paranteze drepte. 681 00:30:34,995 --> 00:30:39,580 Și în interiorul paranteze pătrate, ești va avea dimensiunea de matrice dumneavoastră. 682 00:30:39,580 --> 00:30:42,900 >> Ceva care este foarte important pentru păstra în minte atunci când crearea de rețele este 683 00:30:42,900 --> 00:30:46,530 că, odată ce ați crea un matrice, ca marimea nu se poate schimba. 684 00:30:46,530 --> 00:30:50,180 Deci, dacă știți că acum aveți o serie de dimensiuni 10, 685 00:30:50,180 --> 00:30:54,550 știi că am de gând să aibă 10 celule în cadrul sau în 10 indici în această matrice, 686 00:30:54,550 --> 00:30:56,830 și niciodată nu se va pentru a extinde sau diminua 687 00:30:56,830 --> 00:30:59,850 indiferent de ce, și că nu există In prezent, doar 10 blocuri de spațiu 688 00:30:59,850 --> 00:31:04,490 alocate în memorie care poate stoca până la 10 lucruri de orice le-ați pus. 689 00:31:04,490 --> 00:31:08,790 >> În acest fel, un tip de date matrice, structura de date, care este o matrice 690 00:31:08,790 --> 00:31:13,392 este foarte diferit de alții, vom se acoperă mai târziu în acest curs. 691 00:31:13,392 --> 00:31:15,170 Da. 692 00:31:15,170 --> 00:31:20,080 De exemplu, dacă ai vrut să a crea o serie de dimensiuni 3 care 693 00:31:20,080 --> 00:31:23,670 conținute variabile de integer-- oh, îmi pare rău, de temperature-- 694 00:31:23,670 --> 00:31:25,640 și temperatură, de Desigur, este un număr întreg. 695 00:31:25,640 --> 00:31:28,710 >> Deci ne-ar crea Int, care este tip de date de ceea ce vrem pentru a stoca. 696 00:31:28,710 --> 00:31:32,680 Vom numi aceasta temperaturi de dragul de nomenclatură de numire 697 00:31:32,680 --> 00:31:34,200 ceva ce înțelegem cu toții. 698 00:31:34,200 --> 00:31:35,900 Și vom avea între paranteze drepte. 699 00:31:35,900 --> 00:31:37,200 Și vrem trei numere. 700 00:31:37,200 --> 00:31:39,000 Deci vom pune trei interiorul ei. 701 00:31:39,000 --> 00:31:41,041 >> Ceva care într-adevăr important să se țină cont de 702 00:31:41,041 --> 00:31:43,530 este faptul că matrice sunt zero indexate. 703 00:31:43,530 --> 00:31:46,410 Tot ce înseamnă că începe cu indicele de la 0, 704 00:31:46,410 --> 00:31:49,800 și executați până prin Dimensiunea de matrice minus 1. 705 00:31:49,800 --> 00:31:52,730 Deci, de exemplu aici, au o serie de dimensiuni 3. 706 00:31:52,730 --> 00:31:54,680 O să fie în măsură să dețină trei valori. 707 00:31:54,680 --> 00:31:57,450 Dar numerele themselves-- care număr, matrice, care index, 708 00:31:57,450 --> 00:32:00,271 matrice, sunt de la 0 la 2. 709 00:32:00,271 --> 00:32:03,520 Deci băieți, să fie foarte, foarte atenți atunci când te duci prin problemele tale stabilite 710 00:32:03,520 --> 00:32:06,500 și crearea orice fel de matrice, pentru că o mulțime de ori este 711 00:32:06,500 --> 00:32:08,490 foarte, foarte ușor să uităm că. 712 00:32:08,490 --> 00:32:11,840 Eu de fapt nu au index de 3, pe care am în prezent, doar 713 00:32:11,840 --> 00:32:13,130 au indicele de 2. 714 00:32:13,130 --> 00:32:16,046 Și dacă încerci să accesa treilea indice, 715 00:32:16,046 --> 00:32:18,170 se va fi ceea ce este numit terminatorul nul. 716 00:32:18,170 --> 00:32:19,990 Nu va efectiv există în matrice. 717 00:32:19,990 --> 00:32:21,781 Și computerul este nu o să-i placă asta. 718 00:32:21,781 --> 00:32:24,570 Deci, fii atent de fiecare dată când te accesarea lucrurile 719 00:32:24,570 --> 00:32:28,070 pentru a se asigura că vă amintiți că matrice sunt zero-indexate. 720 00:32:28,070 --> 00:32:28,880 >> BINE. 721 00:32:28,880 --> 00:32:34,030 Deci, primul exemplu este doar o modalitate de a crea un tablou. 722 00:32:34,030 --> 00:32:36,790 Al doilea exemplu am de mai jos este doar un mod separat 723 00:32:36,790 --> 00:32:40,210 de a crea ceea ce este același date structură care tocmai am introdus. 724 00:32:40,210 --> 00:32:44,347 Deci, în loc de fizic de funcționare prin și punerea în temperatură de la 0 725 00:32:44,347 --> 00:32:47,180 este egal cu ceea ce, temperatura 1 este egal cu orice, de temperatură 2 egali 726 00:32:47,180 --> 00:32:50,950 orice, aș putea de fapt doar totul a crea direct într-o singură linie 727 00:32:50,950 --> 00:32:53,010 în paranteze pătrate de temperatură egal. 728 00:32:53,010 --> 00:32:56,536 >> Și o notificare în acest caz, nu aveți nevoie de pentru a specifica cât de mare matrice este, 729 00:32:56,536 --> 00:32:59,160 deoarece computerul va du-te prin și a vedea că nu există 730 00:32:59,160 --> 00:33:01,570 trei elemente în aceste acolade. 731 00:33:01,570 --> 00:33:04,000 Și o să știe, OK, Am nevoie de o serie de dimensiuni 3. 732 00:33:04,000 --> 00:33:07,440 Nu vei avea nevoie de la intrare l modul următor. 733 00:33:07,440 --> 00:33:10,170 >> Și, de asemenea, da, în acest fel. 734 00:33:10,170 --> 00:33:12,610 Are cineva întrebări în ceea ce privește modul în care facem tablouri 735 00:33:12,610 --> 00:33:17,391 sau cum funcționează structura o serie? 736 00:33:17,391 --> 00:33:17,890 Da. 737 00:33:17,890 --> 00:33:18,806 >> Audiența: [inaudibil]? 738 00:33:18,806 --> 00:33:21,649 739 00:33:21,649 --> 00:33:22,690 ANDI Peng: Da, exact. 740 00:33:22,690 --> 00:33:26,150 Deci, dacă ați fost de a declara și inițializa o serie următoarea metodă, 741 00:33:26,150 --> 00:33:28,477 care este al doilea modul, puteți lăsa doar cele. 742 00:33:28,477 --> 00:33:30,310 Și computerul știe în mod automat că 743 00:33:30,310 --> 00:33:33,950 trebuie să conta cât de multe elemente sunt în aceste acolade, separate 744 00:33:33,950 --> 00:33:34,930 prin virgula. 745 00:33:34,930 --> 00:33:37,517 >> Deci, aici văd 65, 87, 30. 746 00:33:37,517 --> 00:33:39,600 Astfel încât computerul stie, oh, există trei numere întregi. 747 00:33:39,600 --> 00:33:45,960 Știu pentru a crea un nume de tablou temperaturii cu trei elemente în ea. 748 00:33:45,960 --> 00:33:46,590 Buna intrebare. 749 00:33:46,590 --> 00:33:47,090 Da. 750 00:33:47,090 --> 00:33:51,590 >> Audiența: Nu este posibil să se creeze un tablou cu diferite tipuri de date 751 00:33:51,590 --> 00:33:53,021 care ar putea fi introduse în ea? 752 00:33:53,021 --> 00:33:56,746 De exemplu, cu numere întregi [Inaudibil]? 753 00:33:56,746 --> 00:33:59,120 ANDI Peng: În sensul din această clasă, nu, chiar acum. 754 00:33:59,120 --> 00:34:03,070 Când creați un date structura ca o matrice, 755 00:34:03,070 --> 00:34:04,990 spui calculator, hei, am nevoie de tine 756 00:34:04,990 --> 00:34:08,159 să aloce atât de mult memorie în hard-disk, 757 00:34:08,159 --> 00:34:10,690 cu fiecare celulă fiind un anumit număr de biți. 758 00:34:10,690 --> 00:34:13,429 >> Amintiți-vă am învățat în săptămâna zero, că datele diferite 759 00:34:13,429 --> 00:34:15,300 tipuri au diferite dimensiuni? 760 00:34:15,300 --> 00:34:17,630 Deci, de exemplu, un șir este o sumă diferită 761 00:34:17,630 --> 00:34:20,719 de spațiu decât un char, care este o sumă diferită de spațiu 762 00:34:20,719 --> 00:34:21,830 dintr-un număr întreg. 763 00:34:21,830 --> 00:34:25,534 Și așa, dacă nu se specifică și amestecă și se potrivesc ce tipuri de variabile 764 00:34:25,534 --> 00:34:27,659 aveți, computerul anii va fi foarte confuz. 765 00:34:27,659 --> 00:34:29,950 Și nu va sti cât de mult de memorie pentru a vă oferi. 766 00:34:29,950 --> 00:34:32,480 Deci, în scopul de dreapta acum, calculatoarele pot numai 767 00:34:32,480 --> 00:34:36,120 recunosc un singur tip de o matrice. 768 00:34:36,120 --> 00:34:37,940 Buna intrebare. 769 00:34:37,940 --> 00:34:38,440 BINE. 770 00:34:38,440 --> 00:34:45,179 771 00:34:45,179 --> 00:34:47,120 >> , Desigur, o a doua întrebare am 772 00:34:47,120 --> 00:34:50,760 este, ei bine, acum că am creat o matrice și am pus toate aceste lucruri 773 00:34:50,760 --> 00:34:54,190 în matrice, cum suntem noi va fi capabil să-l acces? 774 00:34:54,190 --> 00:34:59,710 Deci structura tipică pe care am mereu accesa o serie este minunat nostru pentru bucla. 775 00:34:59,710 --> 00:35:03,830 Promit că voi vom fi văzând o mulțime de acest individ aici. 776 00:35:03,830 --> 00:35:06,470 >> În esență, oricând doriți pentru a introduce valorile într-o matrice 777 00:35:06,470 --> 00:35:09,940 sau vrei sa le acceseze, The cel mai bun mod de a face acest lucru este o pentru bucla, 778 00:35:09,940 --> 00:35:13,730 pentru că într-o buclă pentru, tine știu de câte ori sunteți 779 00:35:13,730 --> 00:35:17,290 gând să doriți să rulați prin matrice, pentru că aveți o ediție de oprire, nu? 780 00:35:17,290 --> 00:35:19,680 Și de fiecare dată când executați prin, puteți accesa 781 00:35:19,680 --> 00:35:21,310 un element diferit de matrice. 782 00:35:21,310 --> 00:35:26,920 >> Și, de asemenea, acesta este un motiv pentru care de obicei vom începe nostru pentru bucle la valoarea 0, 783 00:35:26,920 --> 00:35:30,080 pentru că atunci când accesați tablouri, puteți accesa indexul zero. 784 00:35:30,080 --> 00:35:32,070 Și așa paralelă foarte frumos. 785 00:35:32,070 --> 00:35:35,295 Voi putea fi vrut să scrie pentru int i egal cu 1. 786 00:35:35,295 --> 00:35:37,330 i este mai mică sau egală cu 3. 787 00:35:37,330 --> 00:35:39,890 >> Dar nu ar funcționa la fel de Ei bine, aici, pentru că numai 788 00:35:39,890 --> 00:35:42,010 au elemente de 0, 1, și 2. 789 00:35:42,010 --> 00:35:45,815 Și așa dacă ar fi să începeți Am la elementul 1, 2, 3 și, 790 00:35:45,815 --> 00:35:48,440 vei ajunge de funcționare din limitele matrice dvs., 791 00:35:48,440 --> 00:35:50,440 și lucruri rele se va întâmpla. 792 00:35:50,440 --> 00:35:54,480 >> Așa că sper ca voi vedea Segue de ce în clasele anterioare 793 00:35:54,480 --> 00:35:58,560 am fost de predare voi cum a rula și formata o buclă pentru modul în care am fost. 794 00:35:58,560 --> 00:36:01,900 Este pentru că, acum am a trecut în matrice, 795 00:36:01,900 --> 00:36:06,760 puteți vedea de ce împrumută 0 se foarte bine la accesarea. 796 00:36:06,760 --> 00:36:09,880 >> Deci modul în care face acest lucru este that-- eu sunt doar imprimarea aici de dragul 797 00:36:09,880 --> 00:36:10,830 de imprimare-l. 798 00:36:10,830 --> 00:36:13,750 Dar am substituent meu, virgulă. 799 00:36:13,750 --> 00:36:15,645 Și accesarea efectivă parte se întâmplă. 800 00:36:15,645 --> 00:36:17,520 Numele de matrice a fost numit de temperatură. 801 00:36:17,520 --> 00:36:21,570 Deci, este temperatura și i-lea element al tabloului. 802 00:36:21,570 --> 00:36:24,400 >> Deci, ca pentru bucla Runs Through, se va începe de la 0. 803 00:36:24,400 --> 00:36:27,640 Se va imprima Indicele 0th de această matrice. 804 00:36:27,640 --> 00:36:29,599 Apoi, va imprima în primul element. 805 00:36:29,599 --> 00:36:31,431 Apoi, va imprima în al doilea. 806 00:36:31,431 --> 00:36:32,880 Și apoi vom rupe. 807 00:36:32,880 --> 00:36:36,718 Este toată lumea clar pe cum ce se întâmplă? 808 00:36:36,718 --> 00:36:37,217 Grozav. 809 00:36:37,217 --> 00:36:43,230 810 00:36:43,230 --> 00:36:44,100 >> In regula. 811 00:36:44,100 --> 00:36:47,270 Deci, aici avem un mod de zicând: dacă nu am dori 812 00:36:47,270 --> 00:36:50,020 pe hard-cod-mi in-- ca programator. 813 00:36:50,020 --> 00:36:53,320 Nu am vrut să de fapt, fizic pune în fiecare element individual 814 00:36:53,320 --> 00:36:54,020 din această matrice. 815 00:36:54,020 --> 00:36:56,500 Dacă am vrut să schimb au valorile introduse de utilizator, 816 00:36:56,500 --> 00:36:58,100 ceea ce este cel mai bun mod de a face asta? 817 00:36:58,100 --> 00:37:00,920 >> Ei bine, aici am creat Această funcție minunat, 818 00:37:00,920 --> 00:37:03,560 în care pot declara o matrice. 819 00:37:03,560 --> 00:37:06,210 Deci, Int scores-- să spune doar vrem să facem 820 00:37:06,210 --> 00:37:10,660 o matrice care a avut loc notele tuturor 18 dintre elevii de aici în această secțiune. 821 00:37:10,660 --> 00:37:12,670 Cred că avem un pic mai mult de 18 de copii de azi. 822 00:37:12,670 --> 00:37:16,460 Dar de dragul lui exemplu, hai să presupunem am avut 18. 823 00:37:16,460 --> 00:37:21,580 Mi-ar crea un înscris nume matrice cu tip int, din cauza scorurile, desigur, 824 00:37:21,580 --> 00:37:22,987 sunt numere. 825 00:37:22,987 --> 00:37:24,820 Și am de gând să aibă 18 între paranteze drepte, 826 00:37:24,820 --> 00:37:29,900 pentru că câți studenți I doresc să fie capabil de a stoca zeci de. 827 00:37:29,900 --> 00:37:32,206 >> Și modul în care mi-ar popula matrice este că mi-ar 828 00:37:32,206 --> 00:37:35,572 rulați-l printr-o buclă de, de Desigur, cu 0 fiind indicele meu 0th. 829 00:37:35,572 --> 00:37:38,030 Și apoi cu 18 fiind mea oprire ediție, pentru că există 830 00:37:38,030 --> 00:37:39,690 18 elemente în matrice. 831 00:37:39,690 --> 00:37:44,620 Și apoi am de gând să fac printf, Enter înscrie pentru student-- bla bla bla. 832 00:37:44,620 --> 00:37:51,171 >> Poate cineva sa-mi spui de ce sunt aici imprimarea I plus 1 și nu eu? 833 00:37:51,171 --> 00:37:52,920 E un fel de un truc întrebare, nu chiar. 834 00:37:52,920 --> 00:37:56,020 Ea nu, de fapt fizic afectează funcționarea a codului. 835 00:37:56,020 --> 00:37:56,520 Da. 836 00:37:56,520 --> 00:37:57,909 >> Audiența: [inaudibil] 0? 837 00:37:57,909 --> 00:37:58,950 ANDI Peng: Da, exact. 838 00:37:58,950 --> 00:38:02,620 E un pic ciudat să spun, hei, esti student 0th în această clasă. 839 00:38:02,620 --> 00:38:03,780 E un pic cam ciudat. 840 00:38:03,780 --> 00:38:08,340 Deci noi, ca oameni, nu place foarte mult să se gândească la modul în care computerele cred. 841 00:38:08,340 --> 00:38:10,930 Deci, chiar dacă în calculator, e valori stocarea 842 00:38:10,930 --> 00:38:13,310 în 0-lea index, atunci când suntem oameni, noi nu prea 843 00:38:13,310 --> 00:38:15,520 dori să mă refer la noi înșine ca zero. 844 00:38:15,520 --> 00:38:18,119 Așa că atunci când am de imprimare, Am de gând pentru a imprima și se adaugă 845 00:38:18,119 --> 00:38:19,410 1 doar pentru motive de claritate. 846 00:38:19,410 --> 00:38:22,447 Așa că atunci când am imprima, am de gând să fie posibilitatea de a imprima studenți 1 prin 18. 847 00:38:22,447 --> 00:38:24,530 Ea nu are impact asupra efectiv funcționare a codului 848 00:38:24,530 --> 00:38:27,110 în nici un fel, așa cum a imprima. 849 00:38:27,110 --> 00:38:30,380 >> Dar fii atent atunci când sunteți accesarea fapt matrice. 850 00:38:30,380 --> 00:38:32,780 Când vedeți scorurile I, Observații Aici Sunt de fapt 851 00:38:32,780 --> 00:38:38,200 accesarea indicele 0th și nu 1 plus 0-- sau 1 plus 1, 852 00:38:38,200 --> 00:38:45,530 În acest caz, indicele așa că este de fapt clar. 853 00:38:45,530 --> 00:38:48,870 Este toată lumea fel de OK pe cum se execută prin 854 00:38:48,870 --> 00:38:51,470 și cu fiecare index sunt punerea în valoare a matrice 855 00:38:51,470 --> 00:38:55,340 și crearea unui tablou cu 18 numere că utilizatorul va intrare? 856 00:38:55,340 --> 00:38:58,780 857 00:38:58,780 --> 00:38:59,821 BINE. 858 00:38:59,821 --> 00:39:00,321 Misto. 859 00:39:00,321 --> 00:39:05,380 860 00:39:05,380 --> 00:39:07,400 >> BINE. 861 00:39:07,400 --> 00:39:12,220 Trecem acum în ceva care este destul de relevante pentru această piesă stabilit, de asemenea. 862 00:39:12,220 --> 00:39:15,020 Știu în curs, David-- Ne pare rău, ai avut o întrebare? 863 00:39:15,020 --> 00:39:16,840 >> Audiența: Poți mări? 864 00:39:16,840 --> 00:39:18,080 >> ANDI Peng: Da, așa că am încercat. 865 00:39:18,080 --> 00:39:18,788 Dar eu nu știu. 866 00:39:18,788 --> 00:39:21,437 Din anumite motive, acest versiune de PowerPoint 867 00:39:21,437 --> 00:39:23,270 este într-adevăr nu funcționează bine cu display. 868 00:39:23,270 --> 00:39:25,260 Deci, noi suntem doar de gând să-l păstrați așa. 869 00:39:25,260 --> 00:39:27,280 Toate acestea vor fi încărcate online,. 870 00:39:27,280 --> 00:39:28,218 Îmi pare rău, băieți. 871 00:39:28,218 --> 00:39:30,090 Da. 872 00:39:30,090 --> 00:39:30,980 BINE. 873 00:39:30,980 --> 00:39:35,530 >> Astfel încât să putem avea, de asemenea siruri de caractere. 874 00:39:35,530 --> 00:39:39,320 Deci, dacă voi de fapt notice-- I știu Rob a trecut peste acest lucru în care prelegere 875 00:39:39,320 --> 00:39:43,652 că el did-- un șir este de fapt doar o serie de caractere, 876 00:39:43,652 --> 00:39:44,860 dacă stai să te gândești, nu? 877 00:39:44,860 --> 00:39:47,500 Un șir este un nume sau un propoziție sau un cuvânt, nu? 878 00:39:47,500 --> 00:39:52,975 >> Daca as fi fost de a crea un șir de nume Andi-- doar numele meu, A-N-D-I. 879 00:39:52,975 --> 00:39:55,460 Crezi că de cum doar o variabilă. 880 00:39:55,460 --> 00:39:58,630 Dar, de fapt, este defalcate în doar o serie de caractere. 881 00:39:58,630 --> 00:40:01,910 Așa că are un caracter de o stocate într-o valoare matrice. 882 00:40:01,910 --> 00:40:05,420 Are un caracter de n stocate în al doilea index și așa mai departe și așa mai departe. 883 00:40:05,420 --> 00:40:08,660 >> Deci, într-un mod, am de fapt, acest tip 884 00:40:08,660 --> 00:40:10,970 structurii stabilit în loc pentru siruri de caractere noastre. 885 00:40:10,970 --> 00:40:14,660 Deci, aici, dacă aș fi pentru a introduce Cuvântul "mananca" - așa string cuvânt este egal 886 00:40:14,660 --> 00:40:15,540 obține șir. 887 00:40:15,540 --> 00:40:19,260 Daca as fi fost pentru a introduce cuvântul "mananca", care este fizic modul în care computerul meu 888 00:40:19,260 --> 00:40:21,870 este stocarea că șir în memoria mea. 889 00:40:21,870 --> 00:40:27,140 >> Și dacă am vrut să curgă prin care și de imprimare care out-- atât pentru în I 890 00:40:27,140 --> 00:40:30,890 este egal cu zero,, amintiți-vă, în curs, ne-am ceva acoperit care se numește strlen, 891 00:40:30,890 --> 00:40:32,990 sau lungimea șirului. 892 00:40:32,990 --> 00:40:36,520 Pentru că nu de fapt știu cât de mare matrice este 893 00:40:36,520 --> 00:40:38,210 indiferent inputting-- utilizatorului 894 00:40:38,210 --> 00:40:40,370 >> De exemplu, am introdus cuvântul "mananca", și știu 895 00:40:40,370 --> 00:40:41,870 asta e trei caractere, nu? 896 00:40:41,870 --> 00:40:44,700 Așa că am putea pune într-o perioadă de trei acolo și totul va fi bine. 897 00:40:44,700 --> 00:40:49,290 Dar dacă ceva de intrare de utilizator asta e un număr diferit de valori, 898 00:40:49,290 --> 00:40:52,760 vei nu fie în măsură să într-adevăr Știu că atunci când programați codul. 899 00:40:52,760 --> 00:40:56,040 >> Deci felul în care ne ocupăm de cazuri de testare de genul asta este că avem ceva 900 00:40:56,040 --> 00:41:00,070 numit strlen, care este doar o funcție care vă spune cât de mult un șir este. 901 00:41:00,070 --> 00:41:02,080 Deci, strlen de cuvânt. 902 00:41:02,080 --> 00:41:03,470 Cuvântul meu este mânca. 903 00:41:03,470 --> 00:41:05,990 n este egal cu strlen de cuvânt. 904 00:41:05,990 --> 00:41:08,930 Poate cineva să-mi spui despre ce Valoarea de fapt este chiar acolo? 905 00:41:08,930 --> 00:41:12,550 Ce n reprezentând dreapta acum, în acest exemplu, dacă am avut mânca? 906 00:41:12,550 --> 00:41:13,530 >> Audiența: 3. 907 00:41:13,530 --> 00:41:14,520 >> ANDI Peng: 3, exact. 908 00:41:14,520 --> 00:41:18,820 Deci avem de int i egal la zero, n = 3, în esență. 909 00:41:18,820 --> 00:41:22,355 Și i este de gând să ruleze până când mai puțin de 3i ++. 910 00:41:22,355 --> 00:41:24,980 Și o să meargă, în esență, prin și de a face același lucru. 911 00:41:24,980 --> 00:41:26,979 O să imprima fiecare valoare și vă va oferi 912 00:41:26,979 --> 00:41:29,700 E-A-T. E doar o denotă alt mod de a scris-o. 913 00:41:29,700 --> 00:41:31,170 Asta va fi de foarte mare ajutor. 914 00:41:31,170 --> 00:41:31,670 Da. 915 00:41:31,670 --> 00:41:35,174 Audiența: Care este beneficiile punere n este egal cu cuvântul strlen în interiorul că 916 00:41:35,174 --> 00:41:36,894 pentru bucla [Inaudibil]? 917 00:41:36,894 --> 00:41:37,560 ANDI Peng: Da. 918 00:41:37,560 --> 00:41:44,880 Deci, dacă aș fi sa-- spun, de exemplu, dacă ar fi să fac asta și apoi 919 00:41:44,880 --> 00:41:51,935 do-- oop-- că, în codul meu, s-ar fi de fapt face ca același lucru. 920 00:41:51,935 --> 00:41:55,060 Cu toate acestea, modul în care a explicat David IT în timpul prelegere, dacă oricare dintre voi 921 00:41:55,060 --> 00:41:57,854 amintiți-vă, a fost că, în calitate de om, ca programatori, 922 00:41:57,854 --> 00:42:00,270 suntem cu adevărat încerca la programul nostru cod astfel încât calculatorul nostru are 923 00:42:00,270 --> 00:42:04,070 pentru a lucra ca minim posibil, astfel încât că codul nostru este foarte eficient. 924 00:42:04,070 --> 00:42:06,850 >> Deci, dacă am avut că există, ceea ce s-ar întâmpla prin bucla mea pentru 925 00:42:06,850 --> 00:42:10,790 este că aș declara mai întâi o variabilă numit I va fi 0. 926 00:42:10,790 --> 00:42:13,350 Am de gând să verifice, oh, ceea ce este strlen de cuvânt? 927 00:42:13,350 --> 00:42:15,000 Oh, strlen este 3. 928 00:42:15,000 --> 00:42:16,191 Deci este i mai mică de trei? 929 00:42:16,191 --> 00:42:16,690 Da, este. 930 00:42:16,690 --> 00:42:17,870 Mă duc pentru a rula. 931 00:42:17,870 --> 00:42:21,130 >> Și apoi a doua oară în jurul valorii de spate bucla, am de gând să i incrementa. 932 00:42:21,130 --> 00:42:22,550 Am va fi una. 933 00:42:22,550 --> 00:42:25,600 Și am de gând să verifice este, oh, dar ceea ce este strlen de cuvânt? 934 00:42:25,600 --> 00:42:26,839 Oh, e trei. 935 00:42:26,839 --> 00:42:29,880 Și face asta par un fel de risipă, de fiecare dată când trec prin bucla, 936 00:42:29,880 --> 00:42:33,340 să fie verificarea funcției, chiar dacă strlen de cuvânt 937 00:42:33,340 --> 00:42:35,490 Nu, de fapt se schimbă? 938 00:42:35,490 --> 00:42:38,590 >> Deci, este un plus de putere pentru un computer. 939 00:42:38,590 --> 00:42:42,180 Când începem să vorbim despre lucruri că sunt miliarde și miliarde 940 00:42:42,180 --> 00:42:44,431 și miliarde de locuri lung, imaginați-vă computerul 941 00:42:44,431 --> 00:42:47,430 având pentru a merge fizic prin și verifica toate că de fiecare dată. 942 00:42:47,430 --> 00:42:53,170 De aceea, pentru a face doar pentru motive de eficiență, 943 00:42:53,170 --> 00:42:57,620 avem tendința de a face doar asta, pentru că în acest fel suntem numai 944 00:42:57,620 --> 00:42:59,850 apelul funcției o dată la început, 945 00:42:59,850 --> 00:43:01,766 și că de fiecare dată când trece prin ea se va 946 00:43:01,766 --> 00:43:03,789 pentru a stoca valoarea de 3 acolo, că nu 947 00:43:03,789 --> 00:43:05,330 trebuie să verifice în permanență de fiecare dată. 948 00:43:05,330 --> 00:43:05,743 Da. 949 00:43:05,743 --> 00:43:06,409 >> Audiența: Îmi pare rău. 950 00:43:06,409 --> 00:43:09,070 Doar [neauzit]. 951 00:43:09,070 --> 00:43:13,985 Ai putea să te int n este egal cu strlen și a pus că de mai sus în afara de bucla 952 00:43:13,985 --> 00:43:15,364 deasemenea? 953 00:43:15,364 --> 00:43:16,030 ANDI Peng: Da. 954 00:43:16,030 --> 00:43:17,100 Ai putea face asta, absolut. 955 00:43:17,100 --> 00:43:19,970 Motivul pentru care avea aici este pentru că modul în care A pentru lucrări buclă 956 00:43:19,970 --> 00:43:23,500 este că se numește un variabile locale în sensul 957 00:43:23,500 --> 00:43:26,150 că tot ceea ce crearea în interiorul pentru bucla 958 00:43:26,150 --> 00:43:27,890 există doar în interiorul pentru bucla. 959 00:43:27,890 --> 00:43:31,530 >> Deci, numai variabila i există în aceste paranteze. 960 00:43:31,530 --> 00:43:35,260 Și aici, variabilele n, de asemenea, există numai în acele paranteze. 961 00:43:35,260 --> 00:43:39,350 Deci, dacă ar fi să utilizați strlen de cuvânt de mai multe ori jos, 962 00:43:39,350 --> 00:43:42,230 absolut cel mai bun mod de a face acest lucru ar fi să-l declare la partea de sus 963 00:43:42,230 --> 00:43:43,563 astfel încât să nu trebuie să o faci o dată. 964 00:43:43,563 --> 00:43:45,420 Da. 965 00:43:45,420 --> 00:43:47,670 Audiența: De ce ai o linie nouă după procentul 966 00:43:47,670 --> 00:43:51,300 văzând dacă doriți pentru a pune toate literele lângă ea separate? 967 00:43:51,300 --> 00:43:54,140 >> ANDI Peng: Oh, am vrut să le pe toate imprima pe fiecare linie. 968 00:43:54,140 --> 00:43:54,890 Nu contează. 969 00:43:54,890 --> 00:43:55,890 Da, e un formatare. 970 00:43:55,890 --> 00:43:57,181 Asta-i o întrebare bună, totuși. 971 00:43:57,181 --> 00:43:59,360 Da, dacă aș fi vrut să imprimați totul doar pe o singură linie, 972 00:43:59,360 --> 00:44:02,731 Nu aș avea bord în. 973 00:44:02,731 --> 00:44:03,230 BINE. 974 00:44:03,230 --> 00:44:06,880 Toată lumea bună? 975 00:44:06,880 --> 00:44:07,500 BINE. 976 00:44:07,500 --> 00:44:08,000 Misto. 977 00:44:08,000 --> 00:44:12,080 978 00:44:12,080 --> 00:44:14,750 >> Deci, eu cred că am vorbit destul. 979 00:44:14,750 --> 00:44:20,040 Rândul său, voi pentru a rula prin intermediul Codul și spune-mi ce nu e bine. 980 00:44:20,040 --> 00:44:21,560 Unde e bug-ul? 981 00:44:21,560 --> 00:44:26,920 Deci, după cum puteți vedea, am declarat o nou tablou de tipul String nume de clasă. 982 00:44:26,920 --> 00:44:30,220 Și am introdus Sam, Jess, și Kim în ea. 983 00:44:30,220 --> 00:44:33,400 Și eu încercarea de a imprima toate elementele matricei. 984 00:44:33,400 --> 00:44:36,796 Poate cineva să-mi spui de ce acest este de gând să-mi dea probleme? 985 00:44:36,796 --> 00:44:39,320 Îți dau 10 baieti secunde să se gândească la acest lucru. 986 00:44:39,320 --> 00:44:55,490 987 00:44:55,490 --> 00:44:56,619 >> BINE. 988 00:44:56,619 --> 00:44:57,118 Da? 989 00:44:57,118 --> 00:45:01,972 >> Audiența: Este centru stânga egală cu 3 sau [Inaudibil]? 990 00:45:01,972 --> 00:45:02,680 ANDI Peng: dreapta. 991 00:45:02,680 --> 00:45:06,784 Deci, cum de multe ori este aceasta de fapt de gând să ruleze prin această buclă? 992 00:45:06,784 --> 00:45:07,620 >> Audiența: Patru. 993 00:45:07,620 --> 00:45:08,070 >> ANDI Peng: Exact. 994 00:45:08,070 --> 00:45:09,445 Se va prin intermediul a patru ori. 995 00:45:09,445 --> 00:45:12,250 O să ruleze prin la 0, 1, 2, și 3, 996 00:45:12,250 --> 00:45:15,200 pentru că elementul lor este i este mai mică sau egală cu 3. 997 00:45:15,200 --> 00:45:16,960 Nu se va opri atunci când este 2. 998 00:45:16,960 --> 00:45:18,800 O să păstreze merge până când se lovește 3. 999 00:45:18,800 --> 00:45:21,720 Și, după cum știm, nu există decât trei elemente în oferta noastră actuale. 1000 00:45:21,720 --> 00:45:27,260 >> Dacă vom încerca să acceseze a patra Element sau indicele de 3, 1001 00:45:27,260 --> 00:45:30,357 ai de gând să lovi undeva în memorie care nu există. 1002 00:45:30,357 --> 00:45:31,690 Se numește terminatorul nul. 1003 00:45:31,690 --> 00:45:32,856 Nimic nu va fi acolo. 1004 00:45:32,856 --> 00:45:35,324 Calculatorul dumneavoastră nu se va a fi foarte fericit cu tine. 1005 00:45:35,324 --> 00:45:36,170 Da. 1006 00:45:36,170 --> 00:45:38,430 Are cineva întrebări pe de ce se întâmplă? 1007 00:45:38,430 --> 00:45:39,679 Asta-i o zonă comună, pentru a evita. 1008 00:45:39,679 --> 00:45:40,712 Da. 1009 00:45:40,712 --> 00:45:45,777 >> Audiența: nu Are primul glisați, de asemenea, au un șir de 2? 1010 00:45:45,777 --> 00:45:46,360 ANDI Peng: Nu. 1011 00:45:46,360 --> 00:45:49,610 Deci, în esență, atunci când faci o matrice, 1012 00:45:49,610 --> 00:45:51,540 acest drept suport acolo, că number-- toate 1013 00:45:51,540 --> 00:45:53,480 e spune tu cum multe elemente Am. 1014 00:45:53,480 --> 00:45:55,840 Nu e de fapt spune mi indicii nimic. 1015 00:45:55,840 --> 00:45:58,760 Deci, în acest caz, știu că vreau a scrie cu trei locuri, 1016 00:45:58,760 --> 00:46:02,690 cu trei locuri fizice țineți tot ce vreau să dețină. 1017 00:46:02,690 --> 00:46:04,510 Deci, de aceea numărul trei este acolo. 1018 00:46:04,510 --> 00:46:06,560 Cu toate acestea, în cazul în care mi-am dorit a le accesa de fapt, 1019 00:46:06,560 --> 00:46:11,220 dacă aș vrea să spun, printf Numărul suport de clasă, apoi 1020 00:46:11,220 --> 00:46:14,560 ai de gând pentru a pune de fapt, indicele fizic acolo. 1021 00:46:14,560 --> 00:46:16,330 Da, bine întrebarea. 1022 00:46:16,330 --> 00:46:20,065 >> Audiența: Deci este fizic index ar trebui să fie [auzite]? 1023 00:46:20,065 --> 00:46:20,940 ANDI Peng: Îmi pare rău. 1024 00:46:20,940 --> 00:46:21,500 Poți vorbi un pic? 1025 00:46:21,500 --> 00:46:24,208 >> Audiența: Deci este indicele fizic [Abia auzit] fiecare dintre casetele? 1026 00:46:24,208 --> 00:46:25,260 [Inaudibil]? 1027 00:46:25,260 --> 00:46:26,040 >> ANDI Peng: Da. 1028 00:46:26,040 --> 00:46:28,970 Deci, am de gând să mă întorc la dreapta aici. 1029 00:46:28,970 --> 00:46:31,120 Gândiți-vă de aici. 1030 00:46:31,120 --> 00:46:32,820 Avem o serie de dimensiuni 3. 1031 00:46:32,820 --> 00:46:35,540 Există trei locuri, cum ar fi, substituenți fizice aici. 1032 00:46:35,540 --> 00:46:37,620 Dar ei numit 0, 1, 2 și. 1033 00:46:37,620 --> 00:46:40,700 Deci, dacă am vrut să le accesa, modul în care le-am acces 1034 00:46:40,700 --> 00:46:43,480 este printf de orice am vrut aici. 1035 00:46:43,480 --> 00:46:45,485 Tu ar trebui să imprimați din numele de ea, 1036 00:46:45,485 --> 00:46:47,610 deoarece atunci calculatorul stie, oh, am nevoie să se uite 1037 00:46:47,610 --> 00:46:51,391 în această matrice pentru indicele 0th. 1038 00:46:51,391 --> 00:46:51,890 Da. 1039 00:46:51,890 --> 00:46:53,306 Dar dimensiunea de ea nu se schimbă. 1040 00:46:53,306 --> 00:46:55,492 Dimensiunea este de 3, indiferent de modul în care le etichetați. 1041 00:46:55,492 --> 00:46:58,321 1042 00:46:58,321 --> 00:46:58,820 BINE. 1043 00:46:58,820 --> 00:47:01,387 Toată lumea bună? 1044 00:47:01,387 --> 00:47:02,970 Audiența: Deci, de fiecare dată când am [Inaudibil]? 1045 00:47:02,970 --> 00:47:06,357 1046 00:47:06,357 --> 00:47:06,940 ANDI Peng: OK. 1047 00:47:06,940 --> 00:47:13,270 Deci, în acest caz, noi nu prea intra in ea chiar acum în curs. 1048 00:47:13,270 --> 00:47:16,760 Dar să știi că o string-- ca am a declarat înainte, un șir este, în esență 1049 00:47:16,760 --> 00:47:18,440 o serie de caractere. 1050 00:47:18,440 --> 00:47:21,430 Deci, dacă am crea un array de siruri de caractere, am un fel de 1051 00:47:21,430 --> 00:47:24,430 au o serie de matrice de caractere, nu? 1052 00:47:24,430 --> 00:47:27,720 >> Deci, în acest caz, pentru că am au o serie de siruri de caractere, 1053 00:47:27,720 --> 00:47:31,340 dacă ar fi să introduceți un cuvânt foarte lung, care încă ocupă un singur spațiu, 1054 00:47:31,340 --> 00:47:33,230 pentru că asta e un șir. 1055 00:47:33,230 --> 00:47:37,492 Dar dacă ar fi să se gândească la caracterele de care matrice, 1056 00:47:37,492 --> 00:47:40,450 atunci asta e inițierea mult mai mult caractere decât oricare dintre celelalte cuvinte 1057 00:47:40,450 --> 00:47:41,372 sunt. 1058 00:47:41,372 --> 00:47:42,830 Nu este foarte important pentru acum. 1059 00:47:42,830 --> 00:47:44,921 Dar asta e doar în general, cum se lucrează. 1060 00:47:44,921 --> 00:47:49,750 1061 00:47:49,750 --> 00:47:50,560 >> BINE. 1062 00:47:50,560 --> 00:47:55,840 Deci acest lucru este ceva voi lăsa să faci mult pe parcursul semestrului. 1063 00:47:55,840 --> 00:47:57,500 Am nevoie de odihnă vocea mea. 1064 00:47:57,500 --> 00:47:59,530 Aveți nevoie să vă stimula. 1065 00:47:59,530 --> 00:48:02,300 O mulțime dintre voi, probabil, trebuie să dorm acum. 1066 00:48:02,300 --> 00:48:05,960 Am introducerea probleme aleatoare în cazul în care noi, ca o clasă sau 1067 00:48:05,960 --> 00:48:09,480 cu un partener de lângă aveți de gând să-și petreacă câteva minute discutând 1068 00:48:09,480 --> 00:48:14,980 de modul în care s-ar merge cu privire la rezolvarea sau crearea unui program, cum ar fi aceasta. 1069 00:48:14,980 --> 00:48:17,100 >> Deci, chiar acum, vrem pentru a crea un program-- 1070 00:48:17,100 --> 00:48:19,560 vom numi upper.c-- care convertește 1071 00:48:19,560 --> 00:48:24,787 un cuvânt minuscule la un clasa superioară majuscule string--, îmi pare rău. 1072 00:48:24,787 --> 00:48:26,370 Cuvânt în siruri de caractere, îmi pare rău, este sinonim. 1073 00:48:26,370 --> 00:48:28,370 Am de gând să le schimbe să însemne același lucru. 1074 00:48:28,370 --> 00:48:32,270 1075 00:48:32,270 --> 00:48:33,499 >> Da. 1076 00:48:33,499 --> 00:48:34,540 Ia-o câteva minute. 1077 00:48:34,540 --> 00:48:37,130 Aceasta nu trebuie să fie scris în orice limbă. 1078 00:48:37,130 --> 00:48:39,890 Doar în cod pseudocod sau logic cum ne-ar mai 1079 00:48:39,890 --> 00:48:42,083 du-te despre a face o astfel de problemă. 1080 00:48:42,083 --> 00:48:42,583 Da. 1081 00:48:42,583 --> 00:48:49,881 1082 00:48:49,881 --> 00:48:52,780 >> [SIDE CONVERSAȚII] 1083 00:48:52,780 --> 00:49:18,680 1084 00:49:18,680 --> 00:49:22,130 >> Am observat, de asemenea, că voi can-- Am facut un fel de a vedea deja programul. 1085 00:49:22,130 --> 00:49:24,600 Cred că lipsa mea de Modul prezentator este o problemă. 1086 00:49:24,600 --> 00:49:27,410 Dar este ok. 1087 00:49:27,410 --> 00:49:30,410 >> [SIDE CONVERSAȚII] 1088 00:49:30,410 --> 00:50:03,589 1089 00:50:03,589 --> 00:50:04,380 Da, te rog, băieți. 1090 00:50:04,380 --> 00:50:05,400 Vino primi bomboane. 1091 00:50:05,400 --> 00:50:06,372 Vino primi bomboane. 1092 00:50:06,372 --> 00:50:07,698 >> Audiența: Da! 1093 00:50:07,698 --> 00:50:09,958 >> [SIDE CONVERSAȚII] 1094 00:50:09,958 --> 00:50:16,101 1095 00:50:16,101 --> 00:50:18,100 ANDI Peng: De asemenea, da, Voi începe arunca bomboane 1096 00:50:18,100 --> 00:50:20,280 la oameni care nu răspunde la întrebări. 1097 00:50:20,280 --> 00:50:22,260 Deci ar trebui să la toate întrebările răspuns. 1098 00:50:22,260 --> 00:50:24,895 Sau Presupun oameni care Nu răspunde la întrebări. 1099 00:50:24,895 --> 00:50:26,070 Da, invers. 1100 00:50:26,070 --> 00:50:28,570 >> [SIDE CONVERSAȚII] 1101 00:50:28,570 --> 00:51:13,399 1102 00:51:13,399 --> 00:51:14,274 Audiența: [inaudibil] 1103 00:51:14,274 --> 00:51:17,300 1104 00:51:17,300 --> 00:51:18,340 >> ANDI Peng: Da. 1105 00:51:18,340 --> 00:51:19,340 Da. 1106 00:51:19,340 --> 00:51:22,840 >> [SIDE CONVERSAȚII] 1107 00:51:22,840 --> 00:51:40,700 1108 00:51:40,700 --> 00:51:41,590 >> Bine, băieți. 1109 00:51:41,590 --> 00:51:44,731 Ia, cum ar fi, mai mult de 10 secunde. 1110 00:51:44,731 --> 00:51:48,210 >> [SIDE CONVERSAȚII] 1111 00:51:48,210 --> 00:52:10,600 1112 00:52:10,600 --> 00:52:11,750 >> OK, băieți. 1113 00:52:11,750 --> 00:52:14,920 Deci, înainte de a începe încercarea de a de fapt, scrie fizic cod, 1114 00:52:14,920 --> 00:52:20,650 un obicei bun pentru a dezvolta este că vrem să primul fel de motiv 1115 00:52:20,650 --> 00:52:22,737 out logic cum ar face-o. 1116 00:52:22,737 --> 00:52:24,570 Doriți să vă asigurați, înainte de a fizic 1117 00:52:24,570 --> 00:52:27,210 începe încercarea de a codifica în Mario, pe care le face 1118 00:52:27,210 --> 00:52:28,870 vă că aveți pseudocod ta. 1119 00:52:28,870 --> 00:52:31,235 Care este de a lua tu prin ceea ce ai nevoie pentru a crea astfel 1120 00:52:31,235 --> 00:52:33,360 că, atunci când fizic scrie programul mai târziu, 1121 00:52:33,360 --> 00:52:36,640 sunteți mai în măsură de a prinde erori în codul dvs. și lucruri de genul asta. 1122 00:52:36,640 --> 00:52:40,460 >> Deci vom începe doar by-- în limba engleză, în pseudocod, 1123 00:52:40,460 --> 00:52:43,320 nimeni nu vrea să dea mi o explicație generic 1124 00:52:43,320 --> 00:52:46,250 de modul în care ne-ar merge despre a face acest lucru? 1125 00:52:46,250 --> 00:52:48,102 Da. 1126 00:52:48,102 --> 00:52:49,664 >> Audiența: [neauzit]. 1127 00:52:49,664 --> 00:52:50,830 ANDI Peng: Sigur, nu vă faceți griji. 1128 00:52:50,830 --> 00:52:57,233 Audiența: Poți să-l rog să ceară sau cineva pentru a obține șir 1-- Da, șir, 1129 00:52:57,233 --> 00:52:58,160 si atunci-- 1130 00:52:58,160 --> 00:52:59,826 >> ANDI Peng: Da, astfel încât acesta este un început bun. 1131 00:52:59,826 --> 00:53:01,972 Voi începe să tastați, îmi pare rău, așa cum vorbiți. 1132 00:53:01,972 --> 00:53:02,471 Asa ca-- 1133 00:53:02,471 --> 00:53:05,698 >> Audiența: --Discutii litere mici Numerele sunt mai mari, nu? 1134 00:53:05,698 --> 00:53:08,519 Sau litere mici au un număr mare? 1135 00:53:08,519 --> 00:53:09,310 ANDI Peng: Exact. 1136 00:53:09,310 --> 00:53:16,156 Audiența: Atunci ne scade 32 din orice [neauzit]. 1137 00:53:16,156 --> 00:53:28,600 1138 00:53:28,600 --> 00:53:29,870 >> ANDI Peng: Great. 1139 00:53:29,870 --> 00:53:35,020 Deci, avem un fel de un sentiment general de de modul de a lucra cu privire la această problemă. 1140 00:53:35,020 --> 00:53:40,060 Știind că am un fel de învățat modul în care siruri de caractere fizice 1141 00:53:40,060 --> 00:53:43,320 sunt stocate în memorie, ce părere aveți deja 1142 00:53:43,320 --> 00:53:45,920 Știu că ai de gând să probabil trebuie să scrie în codul 1143 00:53:45,920 --> 00:53:48,288 în scopul de a vă deplasa prin șirul? 1144 00:53:48,288 --> 00:53:49,259 >> Audiența: Pentru buclă. 1145 00:53:49,259 --> 00:53:50,550 ANDI Peng: A pentru buclă, exact. 1146 00:53:50,550 --> 00:53:56,540 1147 00:53:56,540 --> 00:53:57,220 Grozav. 1148 00:53:57,220 --> 00:54:00,539 Deci, avem un fel de un generic pseudocod scrise 1149 00:54:00,539 --> 00:54:02,330 acest tip de este da vă note de modul în care 1150 00:54:02,330 --> 00:54:03,900 s-ar muta despre rezolvarea problemei. 1151 00:54:03,900 --> 00:54:06,150 Acum, că aveți asta, se poate de referință pentru mai târziu 1152 00:54:06,150 --> 00:54:08,233 pe când sunteți încercarea de a de fapt, scrie codul. 1153 00:54:08,233 --> 00:54:10,240 Deci, putem merge de fapt aici. 1154 00:54:10,240 --> 00:54:25,130 Și am o funcție numită upper.c-- acolo este-- de doar o șablon gol 1155 00:54:25,130 --> 00:54:28,510 acum că voi o să ajută-mă dau seama despre cum să scrie 1156 00:54:28,510 --> 00:54:30,430 această linie nu code-- linie de cod. 1157 00:54:30,430 --> 00:54:32,890 Va fi mai multe linii de cod. 1158 00:54:32,890 --> 00:54:35,710 >> Când începe orice fel de PSET gol, ceea ce este 1159 00:54:35,710 --> 00:54:37,418 primul lucru pe care am nevoie să-și amintească de a face? 1160 00:54:37,418 --> 00:54:39,290 >> Audiența: [neauzit]. 1161 00:54:39,290 --> 00:54:41,000 >> ANDI Peng: Great Da. 1162 00:54:41,000 --> 00:54:41,500 Include. 1163 00:54:41,500 --> 00:54:44,850 1164 00:54:44,850 --> 00:54:47,130 stdio.h. 1165 00:54:47,130 --> 00:54:49,640 Deseori aceasta este unul dintre cel mai ușor greseli oameni 1166 00:54:49,640 --> 00:54:51,598 va face atunci când acestea sunt scris, este că vor 1167 00:54:51,598 --> 00:54:54,180 uitați să includeți o bibliotecă importantă de care au nevoie. 1168 00:54:54,180 --> 00:54:57,689 Deci, dacă e de ore de birou și ești ca, Nu știu de ce codul meu nu funcționează. 1169 00:54:57,689 --> 00:54:59,230 Poți să-mi spui de ce nu este de lucru? 1170 00:54:59,230 --> 00:55:00,730 Vom spune ai #include? 1171 00:55:00,730 --> 00:55:02,520 Ar trebui să-l #include. 1172 00:55:02,520 --> 00:55:03,270 BINE. 1173 00:55:03,270 --> 00:55:07,230 >> Deci avem standardul I / O aici. 1174 00:55:07,230 --> 00:55:10,740 Este că singura biblioteca vom avea nevoie de aici? 1175 00:55:10,740 --> 00:55:12,681 Ce altceva vom face? 1176 00:55:12,681 --> 00:55:13,180 Scuze. 1177 00:55:13,180 --> 00:55:14,562 Cineva doar striga afară? 1178 00:55:14,562 --> 00:55:15,666 >> Audiența: [neauzit]. 1179 00:55:15,666 --> 00:55:16,666 ANDI Peng: Nu te duci. 1180 00:55:16,666 --> 00:55:20,320 1181 00:55:20,320 --> 00:55:21,440 BINE. 1182 00:55:21,440 --> 00:55:26,070 Și cum pot să merg despre incepand orice fel funcției, orice fel de funcție principală 1183 00:55:26,070 --> 00:55:28,760 în cadrul programului nostru? 1184 00:55:28,760 --> 00:55:30,020 Int main. 1185 00:55:30,020 --> 00:55:34,531 1186 00:55:34,531 --> 00:55:35,030 BINE. 1187 00:55:35,030 --> 00:55:35,970 Ce am pus în interiorul aici? 1188 00:55:35,970 --> 00:55:37,640 Care e primul lucru pe care doriți să faceți? 1189 00:55:37,640 --> 00:55:39,910 Dacă vrem să obțineți un șir de la utilizator, 1190 00:55:39,910 --> 00:55:43,870 ce vom avea pentru a face pe aceasta primă linie? 1191 00:55:43,870 --> 00:55:46,120 Ne pare rău, voi doar se simt libertatea de a vorbi și cu voce tare. 1192 00:55:46,120 --> 00:55:47,123 Doar striga orice. 1193 00:55:47,123 --> 00:55:48,772 >> Audiența: Adresați-vă utilizatorului? 1194 00:55:48,772 --> 00:55:49,980 ANDI Peng: Cum facem asta? 1195 00:55:49,980 --> 00:55:51,873 Ask-- sunt eu de gând să tastați "solicite utilizatorului"? 1196 00:55:51,873 --> 00:55:52,600 >> Audiența: printf. 1197 00:55:52,600 --> 00:55:54,341 >> ANDI Peng: OK. 1198 00:55:54,341 --> 00:55:54,840 Printf. 1199 00:55:54,840 --> 00:55:57,372 Ce vreau să printf? 1200 00:55:57,372 --> 00:55:58,776 >> Audiența: Introduceti ceva. 1201 00:55:58,776 --> 00:56:02,760 1202 00:56:02,760 --> 00:56:03,840 >> ANDI Peng: așa? 1203 00:56:03,840 --> 00:56:05,430 Băieți, pretind ca sunt un calculator. 1204 00:56:05,430 --> 00:56:08,475 Fizic spune-mi fiecare pas că am nevoie să tastați aici? 1205 00:56:08,475 --> 00:56:09,600 Fac ceva în neregulă? 1206 00:56:09,600 --> 00:56:10,743 Ar trebui să am scris ceva? 1207 00:56:10,743 --> 00:56:11,690 >> Audiența: Ai nevoie de citate. 1208 00:56:11,690 --> 00:56:12,380 >> ANDI Peng: Am nevoie de citate? 1209 00:56:12,380 --> 00:56:12,880 BINE. 1210 00:56:12,880 --> 00:56:15,520 1211 00:56:15,520 --> 00:56:16,297 BINE. 1212 00:56:16,297 --> 00:56:17,698 >> Audiența: Și apoi nouă linie. 1213 00:56:17,698 --> 00:56:21,434 1214 00:56:21,434 --> 00:56:22,465 Punct și virgulă. 1215 00:56:22,465 --> 00:56:23,340 ANDI Peng: punct și virgulă? 1216 00:56:23,340 --> 00:56:24,060 BINE. 1217 00:56:24,060 --> 00:56:24,560 Bine. 1218 00:56:24,560 --> 00:56:27,060 >> Audiența: Și poate specifica pe care o vrei in litere mici? 1219 00:56:27,060 --> 00:56:30,120 1220 00:56:30,120 --> 00:56:31,415 >> ANDI Peng: Great. 1221 00:56:31,415 --> 00:56:33,540 Voi râde de mine uitând pentru a pune punct și virgulă. 1222 00:56:33,540 --> 00:56:36,350 Îți garantez undeva în cursul acestei clase, 1223 00:56:36,350 --> 00:56:38,260 va uitați să puneți punct și virgulă, și 1224 00:56:38,260 --> 00:56:41,116 vă va duce trei ore să dau de ce codul dvs. nu este de lucru. 1225 00:56:41,116 --> 00:56:42,240 Sa întâmplat pentru noi toți. 1226 00:56:42,240 --> 00:56:43,950 Se va întâmpla, probabil, la tine. 1227 00:56:43,950 --> 00:56:46,352 Obține un bun obicei de a folosi punct și virgulă. 1228 00:56:46,352 --> 00:56:46,852 BINE. 1229 00:56:46,852 --> 00:56:49,010 >> Audiența: Vrei pentru a face backslash in? 1230 00:56:49,010 --> 00:56:50,398 >> ANDI Peng: Sigur. 1231 00:56:50,398 --> 00:56:51,856 Nu vrei sa faci backslash in? 1232 00:56:51,856 --> 00:56:53,020 >> Audiența: Da. 1233 00:56:53,020 --> 00:56:54,330 >> ANDI Peng: Great. 1234 00:56:54,330 --> 00:56:54,830 BINE. 1235 00:56:54,830 --> 00:56:57,872 Ce trebuie să fac în continuare? 1236 00:56:57,872 --> 00:56:58,964 >> Audiența: Ia șir. 1237 00:56:58,964 --> 00:56:59,880 ANDI Peng: Get string. 1238 00:56:59,880 --> 00:57:03,080 1239 00:57:03,080 --> 00:57:03,830 Deci, ce pot să tastați? 1240 00:57:03,830 --> 00:57:04,233 Cineva? 1241 00:57:04,233 --> 00:57:05,040 >> Audiența: String s. 1242 00:57:05,040 --> 00:57:05,873 >> ANDI Peng: String s. 1243 00:57:05,873 --> 00:57:07,251 Audiența: getString. 1244 00:57:07,251 --> 00:57:09,000 ANDI Peng: Cineva, poti sa-mi spui unde 1245 00:57:09,000 --> 00:57:12,000 Această funcție getString vine de la? 1246 00:57:12,000 --> 00:57:13,660 >> Audiența: string.h. 1247 00:57:13,660 --> 00:57:15,256 >> ANDI Peng: string.h? 1248 00:57:15,256 --> 00:57:16,715 Crezi că e de la string.h? 1249 00:57:16,715 --> 00:57:17,830 >> Audiența: [neauzit]. 1250 00:57:17,830 --> 00:57:18,830 >> ANDI Peng: Nu te duci. 1251 00:57:18,830 --> 00:57:21,280 E de la CS50.h. 1252 00:57:21,280 --> 00:57:24,530 Dacă sunteți mereu confuz pe care un fișier bibliotecă este sau un fișier antet este, 1253 00:57:24,530 --> 00:57:28,450 Google literalmente string.h, și să-ți spun 1254 00:57:28,450 --> 00:57:30,450 care sunt toate funcțiile care sunt în string.h. 1255 00:57:30,450 --> 00:57:31,340 BINE. 1256 00:57:31,340 --> 00:57:35,210 >> Deci, acum că am creat un șir Și am cere utilizatorului pentru ea, 1257 00:57:35,210 --> 00:57:38,770 Am stocate într-o variabilă numite s, ce trebuie să fac acum? 1258 00:57:38,770 --> 00:57:40,652 >> Audiența: Verificați dacă este cu litere mici. 1259 00:57:40,652 --> 00:57:41,360 ANDI Peng: Îmi pare rău? 1260 00:57:41,360 --> 00:57:42,545 Audiența: Verificați dacă este cu litere mici. 1261 00:57:42,545 --> 00:57:44,045 ANDI Peng: Bine, hai să facem asta. 1262 00:57:44,045 --> 00:57:45,857 Cum să fac asta? 1263 00:57:45,857 --> 00:57:47,940 De fapt, în sensul din clasa acum, 1264 00:57:47,940 --> 00:57:50,330 noi suntem doar de gând să presupune că tot ceea ce 1265 00:57:50,330 --> 00:57:52,620 că de intrare ne este deja în litere mici. 1266 00:57:52,620 --> 00:57:55,430 Dacă ați fi dorit să verifice, v-ar trebuie doar să adăugați o declarație condițională 1267 00:57:55,430 --> 00:57:59,640 că verificat, care a fugit prin fiecare element matrice singur 1268 00:57:59,640 --> 00:58:02,540 și verificat dacă este între anumite valori. 1269 00:58:02,540 --> 00:58:05,627 Am uitat ce numărul valorilor de litere mici sunt. 1270 00:58:05,627 --> 00:58:07,210 Puteți să-l căuta pe masă ASCII. 1271 00:58:07,210 --> 00:58:08,800 Dar da, asta e un punct foarte bun. 1272 00:58:08,800 --> 00:58:11,758 Dar acum, noi suntem doar de gând să presupune că toate siruri de caractere de intrare ne 1273 00:58:11,758 --> 00:58:13,130 sunt în litere mici. 1274 00:58:13,130 --> 00:58:13,870 BINE. 1275 00:58:13,870 --> 00:58:18,069 >> Deci, cum să mă duc despre această problemă următor? 1276 00:58:18,069 --> 00:58:18,860 Audiența: Pentru buclă. 1277 00:58:18,860 --> 00:58:19,340 ANDI Peng: Pentru bucla? 1278 00:58:19,340 --> 00:58:19,839 BINE. 1279 00:58:19,839 --> 00:58:20,847 Spune-mi ce să tastați. 1280 00:58:20,847 --> 00:58:25,230 >> Audiența: Pentru int i este egal cu 0. 1281 00:58:25,230 --> 00:58:27,230 >> ANDI Peng: OK. 1282 00:58:27,230 --> 00:58:36,350 >> Audiența: Oh, de fapt, atunci face o virgulă și de a face n = strlen. 1283 00:58:36,350 --> 00:58:38,940 >> ANDI Peng: lucru atât de important care cred ca ea a observat aici 1284 00:58:38,940 --> 00:58:42,936 este că noi nu trebuie să spun Int n a doua oară am făcut asta. 1285 00:58:42,936 --> 00:58:45,060 Știu doar că într-un timp buclă atunci când sunteți declararea, 1286 00:58:45,060 --> 00:58:47,934 de fapt nu au nevoie de int de a doua oară când faci o variabilă. 1287 00:58:47,934 --> 00:58:51,202 Puteți spune n strlen. 1288 00:58:51,202 --> 00:58:52,620 >> Audiența: S. 1289 00:58:52,620 --> 00:58:53,510 >> ANDI Peng: s. 1290 00:58:53,510 --> 00:58:54,706 BINE. 1291 00:58:54,706 --> 00:58:58,370 >> Audiența: Atunci punct și virgulă. 1292 00:58:58,370 --> 00:59:00,130 >> ANDI Peng: Sigur. 1293 00:59:00,130 --> 00:59:04,050 >> Audiența: Și apoi [neauzit] n. 1294 00:59:04,050 --> 00:59:07,480 1295 00:59:07,480 --> 00:59:09,460 Apoi m-am ++. 1296 00:59:09,460 --> 00:59:11,780 >> ANDI Peng: Great. 1297 00:59:11,780 --> 00:59:12,280 In regula. 1298 00:59:12,280 --> 00:59:14,690 Ce ne dorim în interiorul de acest lucru pentru bucla acum? 1299 00:59:14,690 --> 00:59:17,820 Amintiți-vă, dacă vom rula prin intermediul un șir și a alerga printr-o serie, 1300 00:59:17,820 --> 00:59:19,287 vrem să verificați lucruri în ea. 1301 00:59:19,287 --> 00:59:20,370 Ce vom nevoie? 1302 00:59:20,370 --> 00:59:23,070 1303 00:59:23,070 --> 00:59:26,900 Aceasta este un fel de o parte complicat acum. 1304 00:59:26,900 --> 00:59:27,960 Oricine are o presupunere? 1305 00:59:27,960 --> 00:59:34,160 1306 00:59:34,160 --> 00:59:34,690 >> BINE. 1307 00:59:34,690 --> 00:59:37,830 Deci în primul rând, cum putem chiar accesa? 1308 00:59:37,830 --> 00:59:41,610 Cum ne-am chiar primul cec sau accesa un element în matrice? 1309 00:59:41,610 --> 00:59:42,920 Cum facem asta? 1310 00:59:42,920 --> 00:59:47,120 Care este notația le folosim pentru a face asta? 1311 00:59:47,120 --> 00:59:50,920 Care este numele acestei matrice numit? 1312 00:59:50,920 --> 00:59:52,400 Se numește s, corect? 1313 00:59:52,400 --> 00:59:54,850 >> Amintiți-vă, orice sir este întotdeauna o matrice. 1314 00:59:54,850 --> 00:59:58,210 Deci, s suport i, nu? 1315 00:59:58,210 --> 01:00:01,360 Pentru că este valoarea curentă sau valoarea indicelui suntem de verificare. 1316 01:00:01,360 --> 01:00:05,156 Și vom stabili că egalitatea sa-- dorim o valoare litere mici, nu? 1317 01:00:05,156 --> 01:00:07,530 Vrem să rândul său, că lower-- Ne pare rău, ne dorim o majuscule. 1318 01:00:07,530 --> 01:00:10,014 Vrem să transforme minuscule Valoarea într-o majuscule. 1319 01:00:10,014 --> 01:00:11,805 Și așa like-- îmi pare rău, Cum te numești? 1320 01:00:11,805 --> 01:00:12,580 >> Audiența: Heidi. 1321 01:00:12,580 --> 01:00:12,940 >> ANDI Peng: Îmi pare rău? 1322 01:00:12,940 --> 01:00:13,280 >> Audiența: Heidi. 1323 01:00:13,280 --> 01:00:13,988 >> ANDI Peng: Heidi. 1324 01:00:13,988 --> 01:00:15,850 Ca Heidi a spus inițial, suntem probabil 1325 01:00:15,850 --> 01:00:20,330 avea nevoie de the-- suntem probabil va trebui, pentru a scădea 1326 01:00:20,330 --> 01:00:22,630 32 din orice charc care este, nu? 1327 01:00:22,630 --> 01:00:24,680 Deoarece pe o ASCII tabel, diferența 1328 01:00:24,680 --> 01:00:27,790 între o literă mică și o majusculă este de 32. 1329 01:00:27,790 --> 01:00:31,290 Așa că atunci când facem asta, noi suntem, probabil, de gând să doriți pentru a scădea 32, nu? 1330 01:00:31,290 --> 01:00:33,910 >> Așa că am de gând să faci s i. 1331 01:00:33,910 --> 01:00:37,590 1332 01:00:37,590 --> 01:00:41,200 Are toată lumea înțelege de ce am făcut asta? 1333 01:00:41,200 --> 01:00:45,760 Pentru că acum, în oferta noastră, suntem verificarea indicele 0th, nu? 1334 01:00:45,760 --> 01:00:49,190 Și în indicele 0th a șir, asta e primul caracter. 1335 01:00:49,190 --> 01:00:51,820 Iar caracterul vom să-și asume că e minuscule. 1336 01:00:51,820 --> 01:00:55,980 Dacă vrem să facă majuscule, ne Trebuie să scădea 32 de valoarea sa, 1337 01:00:55,980 --> 01:00:58,620 pentru că în ASCII nostru de masă, așa ne-am înțeles 1338 01:00:58,620 --> 01:01:01,600 la următoarea corespunzătoare valoare care face majuscule. 1339 01:01:01,600 --> 01:01:03,714 Nu toată lumea înțelege asta? 1340 01:01:03,714 --> 01:01:04,213 Da. 1341 01:01:04,213 --> 01:01:06,530 >> Audiența: Ați putea, de asemenea, nu litere mici un minus-- 1342 01:01:06,530 --> 01:01:08,080 >> ANDI Peng: Da, așa că e de fapt foarte bine. 1343 01:01:08,080 --> 01:01:10,455 Am de gând să se întoarcă la care întrebare după ce am face acest lucru. 1344 01:01:10,455 --> 01:01:11,060 Da. 1345 01:01:11,060 --> 01:01:13,940 Și apoi, dacă vreau să vezi ce se întâmplă, 1346 01:01:13,940 --> 01:01:16,180 Sunt, probabil, de gând să doriți să imprimați, nu? 1347 01:01:16,180 --> 01:01:19,930 Cineva spune-mi ce Vreau să imprimați aici. 1348 01:01:19,930 --> 01:01:29,160 >> Audiența: printf la sută c backslash [neauzit]. 1349 01:01:29,160 --> 01:01:33,570 Asta e valoarea [neauzit] s i. 1350 01:01:33,570 --> 01:01:34,614 >> ANDI Peng: s i, îmi pare rău? 1351 01:01:34,614 --> 01:01:35,530 Audiența: [neauzit]. 1352 01:01:35,530 --> 01:01:38,550 1353 01:01:38,550 --> 01:01:39,550 ANDI Peng: Nu știu. 1354 01:01:39,550 --> 01:01:40,600 Ce crezi? 1355 01:01:40,600 --> 01:01:44,016 >> Audiența: Ei bine, am wouldn't-- Cred că nu ar bring-- 1356 01:01:44,016 --> 01:01:46,944 Mi-ar scoate interior, pentru că [neauzit]. 1357 01:01:46,944 --> 01:01:49,726 1358 01:01:49,726 --> 01:01:51,392 ANDI Peng: Oh, ai fi făcut asta? 1359 01:01:51,392 --> 01:01:53,867 Audiența: Da. 1360 01:01:53,867 --> 01:01:56,700 ANDI Peng: Să lăsați modul este, și voi explica de ce mai târziu. 1361 01:01:56,700 --> 01:01:58,533 Amintiți-vă, chiar și atunci când au un loc de titular, 1362 01:01:58,533 --> 01:02:00,701 vrei să paranteze în jurul ei. 1363 01:02:00,701 --> 01:02:01,200 In regula. 1364 01:02:01,200 --> 01:02:04,810 Deci, acest lucru ar trebui să fie o funcție de solid aici. 1365 01:02:04,810 --> 01:02:06,370 Să-l rulați și a vedea dacă acesta compilează. 1366 01:02:06,370 --> 01:02:08,750 Face sus. 1367 01:02:08,750 --> 01:02:09,250 Uh-oh. 1368 01:02:09,250 --> 01:02:12,030 1369 01:02:12,030 --> 01:02:13,340 Asta nu arata prea bine. 1370 01:02:13,340 --> 01:02:14,507 De ce se întâmplă acest lucru? 1371 01:02:14,507 --> 01:02:17,340 Ca în cazul oricărui eroare, vrei să mergi înapoi și să înceapă cu primul, 1372 01:02:17,340 --> 01:02:20,630 pentru că de obicei cauze o eroare o mulțime de alte erori după el. 1373 01:02:20,630 --> 01:02:26,700 Aici vedem upper.c: 18: 25, care spune mă în acest program numit upper.c, 1374 01:02:26,700 --> 01:02:33,800 pe linia 18, eroare implicit declarând Biblioteca de funcții strlen cu tipul 1375 01:02:33,800 --> 01:02:36,330 bla unassigned--, nu știu ce se întâmplă după aceea. 1376 01:02:36,330 --> 01:02:39,990 >> Tot ce îmi spune acum este că ceva se întâmplă pe strlen. 1377 01:02:39,990 --> 01:02:43,520 Și computerului confuz, pentru că E ca și cum, nu știu ce strlen este? 1378 01:02:43,520 --> 01:02:45,520 Ce face ca, probabil, să vă spun vă lipsește? 1379 01:02:45,520 --> 01:02:46,490 >> Audiența: Pierzi [neauzit]. 1380 01:02:46,490 --> 01:02:47,630 >> ANDI Peng: Ai dreptate. 1381 01:02:47,630 --> 01:02:49,510 Exact. 1382 01:02:49,510 --> 01:02:52,140 Deci acest lucru este în cazul în care este important să vă asigurați 1383 01:02:52,140 --> 01:02:56,970 că fiecare funcție vă folosească în dvs. Codul are antet corect 1384 01:02:56,970 --> 01:02:59,660 fișier pentru biblioteca, sau ai de gând pentru a obține o mulțime de erori 1385 01:02:59,660 --> 01:03:01,150 și codul nu se va să știe ce se întâmplă. 1386 01:03:01,150 --> 01:03:03,050 Deci vom includă string.h aici. 1387 01:03:03,050 --> 01:03:06,270 >> Acum când am încercați să compilați superior. 1388 01:03:06,270 --> 01:03:08,410 Compila corect. 1389 01:03:08,410 --> 01:03:09,960 Să rula acest program. 1390 01:03:09,960 --> 01:03:12,000 Deci, de tip ceva cu litere mici. 1391 01:03:12,000 --> 01:03:14,920 Ce vreți să tastați? 1392 01:03:14,920 --> 01:03:16,546 Strige ceva. 1393 01:03:16,546 --> 01:03:17,920 Bine, Charly tocmai a intrat în. 1394 01:03:17,920 --> 01:03:18,990 Vom tastați numele Charly lui. 1395 01:03:18,990 --> 01:03:21,670 1396 01:03:21,670 --> 01:03:22,840 >> Charly cu litere mici. 1397 01:03:22,840 --> 01:03:27,742 Și, sperăm, să sperăm, aceasta este O să strige și scuipat 1398 01:03:27,742 --> 01:03:28,575 Charly în majuscule. 1399 01:03:28,575 --> 01:03:30,830 Ura! 1400 01:03:30,830 --> 01:03:33,430 nu toată lumea înțelege cum M-am dus despre rezolvarea asta? 1401 01:03:33,430 --> 01:03:36,190 Modul în care pot manipula folosind numere întregi 1402 01:03:36,190 --> 01:03:39,410 pentru a rezolva ceva ce Vreau să fac în siruri de caractere, 1403 01:03:39,410 --> 01:03:44,390 pentru că personajele și numere întregi pot se face referire în același mod, deoarece 1404 01:03:44,390 --> 01:03:45,540 de cartografiere ASCII. 1405 01:03:45,540 --> 01:03:52,890 >> Deci, pentru a reveni la punctul de vedere, dacă am a vrut să pună aici, în loc de 32 1406 01:03:52,890 --> 01:03:58,959 majuscule Un minus minuscule un fel ca care, care ar funcționa la fel de bine ca, 1407 01:03:58,959 --> 01:04:01,750 pentru că pur și simplu doar diferența dintre cele două valori. 1408 01:04:01,750 --> 01:04:09,570 Dacă vreau să fac acest Charly again--. 1409 01:04:09,570 --> 01:04:10,320 Oh nu. 1410 01:04:10,320 --> 01:04:11,820 Cred că ne-am dus pe un drum greșit, da? 1411 01:04:11,820 --> 01:04:13,260 >> Audiența: [inaudibil] minuscule o. 1412 01:04:13,260 --> 01:04:14,260 >> ANDI Peng: Nu te duci. 1413 01:04:14,260 --> 01:04:22,380 1414 01:04:22,380 --> 01:04:22,880 Da. 1415 01:04:22,880 --> 01:04:24,920 Și din scuipă Charly. 1416 01:04:24,920 --> 01:04:28,020 Deci, fiți atenți atunci când te valorile scăzând 1417 01:04:28,020 --> 01:04:30,400 să ne amintim care este unul mai mare decât celălalt. 1418 01:04:30,400 --> 01:04:35,220 De exemplu, aici am uitat că este, de fapt o litere mici 1419 01:04:35,220 --> 01:04:38,540 mai mare decât A. majuscule Deci, când am a încercat să-i scădea în altă parte 1420 01:04:38,540 --> 01:04:40,600 în jurul valorii de, am negativ 32. 1421 01:04:40,600 --> 01:04:42,800 Și computerul meu a fost ca, Nu știu ce e asta. 1422 01:04:42,800 --> 01:04:45,810 E doar o întâmplare probabilitate valoare care nu este foarte bun. 1423 01:04:45,810 --> 01:04:48,760 Și asigurați-vă că sunteți scăzând în lungimea corectă 1424 01:04:48,760 --> 01:04:52,831 pentru a găsi caracterul dorit. 1425 01:04:52,831 --> 01:04:53,330 BINE. 1426 01:04:53,330 --> 01:04:58,550 Este cineva confuz cu privire la modul ne a mers despre scrierea această funcție? 1427 01:04:58,550 --> 01:04:59,180 BINE. 1428 01:04:59,180 --> 01:05:04,830 Deci, de fapt, o funcție deja există în bibliotecă numit ctype.h. 1429 01:05:04,830 --> 01:05:06,417 Biblioteca se numește ctype.h. 1430 01:05:06,417 --> 01:05:08,500 Această funcție este de fapt deja scris pentru tine. 1431 01:05:08,500 --> 01:05:10,820 Se numește de sus. 1432 01:05:10,820 --> 01:05:13,027 >> Și astfel, în scopul acest PSET, te duci 1433 01:05:13,027 --> 01:05:15,860 pentru a găsi că într-adevăr doriți să utilizați o mulțime de funcții conținute 1434 01:05:15,860 --> 01:05:17,390 în cadrul bibliotecii ctype. 1435 01:05:17,390 --> 01:05:21,040 Pentru superioară, pentru a reduce, este superioară, este lower-- acestea sunt toate functiile 1436 01:05:21,040 --> 01:05:24,914 care va fi capabil de a utiliza foarte, foarte repede în propriul cod care 1437 01:05:24,914 --> 01:05:26,080 face exact ceea ce face acest lucru. 1438 01:05:26,080 --> 01:05:28,941 Am scris cum de a converti un șir în majuscule. 1439 01:05:28,941 --> 01:05:31,440 Dar acest lucru este de fapt codul că altcineva a scris 1440 01:05:31,440 --> 01:05:33,800 și pe care le puteți accesa printr-un regim diferit. 1441 01:05:33,800 --> 01:05:34,300 Da? 1442 01:05:34,300 --> 01:05:39,570 >> Audiența: Deci, doar copiați un e acolo și o fac pentru fiecare literă? 1443 01:05:39,570 --> 01:05:42,070 >> ANDI Peng: Da, pentru că eu nu fac pasă de valorile unei. 1444 01:05:42,070 --> 01:05:44,540 Am grijă ca diferența între ele este de 32, nu? 1445 01:05:44,540 --> 01:05:48,210 Diferența dintre litere mici b și majuscule B este, de asemenea, 32. 1446 01:05:48,210 --> 01:05:50,860 Și diferența dintre C și majuscule C este întotdeauna 32. 1447 01:05:50,860 --> 01:05:53,235 >> Trebuie doar să le pese de diferență între cele două, 1448 01:05:53,235 --> 01:05:56,666 deoarece toate scrisorile urmează același model, nu? 1449 01:05:56,666 --> 01:05:58,540 Dacă am diferența între unul dintre ei, 1450 01:05:58,540 --> 01:06:01,050 Știu în ce constă diferența între toate dintre ele este. 1451 01:06:01,050 --> 01:06:01,740 Buna intrebare. 1452 01:06:01,740 --> 01:06:04,090 Da. 1453 01:06:04,090 --> 01:06:06,660 Toată lumea bună? 1454 01:06:06,660 --> 01:06:09,080 BINE. 1455 01:06:09,080 --> 01:06:09,580 Oop. 1456 01:06:09,580 --> 01:06:14,380 1457 01:06:14,380 --> 01:06:15,270 >> BINE. 1458 01:06:15,270 --> 01:06:20,310 Deci un alt concept care este va fi foarte util ca tine 1459 01:06:20,310 --> 01:06:22,570 continua să se dezvolte codul este această idee 1460 01:06:22,570 --> 01:06:25,430 de a crea funcții sau de abstractizare. 1461 01:06:25,430 --> 01:06:28,479 Deci, chiar acum, ne-am luat toate algebra. 1462 01:06:28,479 --> 01:06:31,770 În algebră, vă sunt învățați că nu există acest lucru minunat numit în funcție 1463 01:06:31,770 --> 01:06:35,300 mașină, în cazul în care, dacă intrare un fel de număr, 1464 01:06:35,300 --> 01:06:38,720 se trece prin această funcție minunat și din apare un alt ieșire, nu? 1465 01:06:38,720 --> 01:06:42,220 În cod, același lucru se întâmplă în orice fel de funcție. 1466 01:06:42,220 --> 01:06:48,230 >> Așa că am putut fizic scrie în corpul meu de codul meu 1467 01:06:48,230 --> 01:06:52,357 o declarație care de fapt nu principal indiferent de organismul de cod este de a face. 1468 01:06:52,357 --> 01:06:54,940 Dar in afara de asta, am poate, de asemenea scrie mai multe funcții diferite 1469 01:06:54,940 --> 01:06:56,320 că face multe lucruri diferite. 1470 01:06:56,320 --> 01:06:58,570 De exemplu, am deja au inceput sa foloseasca o parte din ele. 1471 01:06:58,570 --> 01:07:00,610 Printf-- că este o funcție care altcineva 1472 01:07:00,610 --> 01:07:02,870 a scris deja că putem apela în codul nostru. 1473 01:07:02,870 --> 01:07:05,410 Pentru a upper-- în acest caz, upper-- este o altă funcție 1474 01:07:05,410 --> 01:07:07,330 am scris că pot apela în codul nostru. 1475 01:07:07,330 --> 01:07:09,520 Și așa cred că de ce avem chiar funcții? 1476 01:07:09,520 --> 01:07:12,100 De ce nu doar Plop toate în aceeași linie de cod? 1477 01:07:12,100 --> 01:07:13,730 Se face mai ușor pentru toată lumea. 1478 01:07:13,730 --> 01:07:19,200 >> Ei bine, raționamentul din spatele care este, în primul rând, organizarea. 1479 01:07:19,200 --> 01:07:21,880 Este foarte enervant merge prin codul cuiva 1480 01:07:21,880 --> 01:07:25,110 și o funcție ca printf. 1481 01:07:25,110 --> 01:07:28,570 Dacă voi de fapt știa ce Funcția printf determinat să scrie, 1482 01:07:28,570 --> 01:07:30,530 e, cum ar fi, de 1.000 de linii de cod. 1483 01:07:30,530 --> 01:07:32,357 >> Dacă de fiecare dată mi-am dorit la printf ceva, 1484 01:07:32,357 --> 01:07:35,440 A trebuit să scrie 1.000 de linii de cod, care ar fi foarte enervant pentru a citi, 1485 01:07:35,440 --> 01:07:36,290 dreapta? 1486 01:07:36,290 --> 01:07:38,860 Acesta este motivul pentru care am doar a creat această funcție abstract 1487 01:07:38,860 --> 01:07:41,670 că avem deja pe cineva altceva a scris în altă parte. 1488 01:07:41,670 --> 01:07:44,920 Și de fiecare dată trebuie să-l folosească în codul nostru, trebuie doar să spun printf. 1489 01:07:44,920 --> 01:07:48,070 Și care este capabil de a utiliza funcția altcineva a scris în codul nostru. 1490 01:07:48,070 --> 01:07:51,020 Se face mai ușor organizatoric pentru a citi codul. 1491 01:07:51,020 --> 01:07:53,460 >> În al doilea rând, e simplificare. 1492 01:07:53,460 --> 01:07:56,750 Acesta simplifică pașii pe care le avem pentru a lua pentru a rezolva problema noastră. 1493 01:07:56,750 --> 01:07:59,300 Printf, funcții cum ar fi printf, funcții cum ar fi la partea superioară 1494 01:07:59,300 --> 01:08:03,560 sunt toate lucrurile care ne permit să simplifica codul nostru în jos, astfel că este mai ușor. 1495 01:08:03,560 --> 01:08:05,830 Și ultimul lucru este reutilizare. 1496 01:08:05,830 --> 01:08:08,710 >> Deci, faptul că avem o funcție numită printf 1497 01:08:08,710 --> 01:08:11,990 că putem apela multe diferite ori și îi permite să fie reutilizabile. 1498 01:08:11,990 --> 01:08:14,980 Dacă ar fi să scrie printf, Am doar o dată scrie. 1499 01:08:14,980 --> 01:08:16,439 Ea există numai în acest un singur loc. 1500 01:08:16,439 --> 01:08:19,890 Dacă am vrut să o fac din nou, aș face- Trebuie să copiați și inserați toate astea 1501 01:08:19,890 --> 01:08:21,760 în a doua linia mea de cod. 1502 01:08:21,760 --> 01:08:24,880 De aceea, dacă vom crea o functie care există în afara principal noastre, 1503 01:08:24,880 --> 01:08:26,880 putem apela doar la ea și reutilizarea l ori de câte ori 1504 01:08:26,880 --> 01:08:29,604 avem nevoie de astfel că este mult mai ușor pentru noi, ca să scrie programe. 1505 01:08:29,604 --> 01:08:32,220 1506 01:08:32,220 --> 01:08:35,549 >> Deci felul în care ne-ar scrie de fapt o functie este foarte asemănătoare, nu? 1507 01:08:35,549 --> 01:08:37,590 Aceasta este un fel de prima caz în care am vom 1508 01:08:37,590 --> 01:08:42,830 vezi o funcție ia pe un stil diferit de void nostru int main. 1509 01:08:42,830 --> 01:08:46,779 În acest caz, dacă am vrut să scrie o funcție numită Q, nu? 1510 01:08:46,779 --> 01:08:49,370 >> Și valoarea int aici este tot mi-a spus, 1511 01:08:49,370 --> 01:08:51,649 ce vreau acest funcționează pentru a reveni la mine? 1512 01:08:51,649 --> 01:08:54,484 Dacă vreau să cub un număr întreg, Am de gând să doriți să intrare. 1513 01:08:54,484 --> 01:08:55,525 Acestea sunt parametrii. 1514 01:08:55,525 --> 01:08:58,490 Am de gând să intrări o valoare de tip int. 1515 01:08:58,490 --> 01:09:01,300 Și am de gând să se întoarcă un alt tip de valoare Int. 1516 01:09:01,300 --> 01:09:03,050 Și aici, în timp ce pot vedea, toate fac 1517 01:09:03,050 --> 01:09:07,300 este cubaj orice intrare meu este ca ieșire meu și-l întoarce. 1518 01:09:07,300 --> 01:09:10,790 >> Deci, toate această funcție nu este ia un fel de întreg. 1519 01:09:10,790 --> 01:09:14,979 Îl înmulțește de la sine de două ori astfel încât să cuburile din vigoare. 1520 01:09:14,979 --> 01:09:17,729 Și apoi se întoarce indiferent că producția este. 1521 01:09:17,729 --> 01:09:20,540 Deci, în acest caz, este de două linii cod care a trebuit să scrie în plus. 1522 01:09:20,540 --> 01:09:22,880 Dar dacă ne-am dorit pentru a apela Pe acest de mai multe ori, 1523 01:09:22,880 --> 01:09:26,210 este mult mai ușor să tastați ca unul line aici care este în cub decât 1524 01:09:26,210 --> 01:09:28,830 trebuie să treacă prin mai multe ori. 1525 01:09:28,830 --> 01:09:34,180 >> Deci modul în care, în esență, orice formatare pentru orice fel de funcție 1526 01:09:34,180 --> 01:09:36,420 va exista este ca aici. 1527 01:09:36,420 --> 01:09:38,659 Deci avem numele funcției. 1528 01:09:38,659 --> 01:09:39,950 În acest caz, se numește cub. 1529 01:09:39,950 --> 01:09:42,033 Și numim aceasta cub pentru că este ușor să vă amintiți. 1530 01:09:42,033 --> 01:09:44,220 Puteți denumi-l pătrat și acesta poate fi de fapt cubed. 1531 01:09:44,220 --> 01:09:45,500 Nu contează. 1532 01:09:45,500 --> 01:09:48,020 Doar un nume pe care esti atribuirea funcția. 1533 01:09:48,020 --> 01:09:51,660 >> Acest drept aici, Int, este tip de parametrul care aveți nevoie. 1534 01:09:51,660 --> 01:09:54,149 Deci, ceea ce face această funcție nevoie pentru a funcționa? 1535 01:09:54,149 --> 01:09:55,990 Ei bine, are nevoie de o intrare. 1536 01:09:55,990 --> 01:09:56,704 Am numit-o intrare. 1537 01:09:56,704 --> 01:09:58,120 Puteți să-l nume ce vrei. 1538 01:09:58,120 --> 01:10:00,500 Dar am nevoie de ceva de tip int. 1539 01:10:00,500 --> 01:10:03,730 O să execute efectiv tot ce este în interiorul de aici, 1540 01:10:03,730 --> 01:10:04,990 corpul funcției. 1541 01:10:04,990 --> 01:10:07,847 Și apoi tipul de retur chiar aici, acest int-- 1542 01:10:07,847 --> 01:10:09,680 tot ce mi-a spune este că această funcție este 1543 01:10:09,680 --> 01:10:11,250 O să se întoarcă la mine în Int. 1544 01:10:11,250 --> 01:10:14,460 Deci o să ia într-un Int, și este de gând să vă dau înapoi un int. 1545 01:10:14,460 --> 01:10:17,750 Are toată lumea înțelege modul în care formatare de acest fel funcționează? 1546 01:10:17,750 --> 01:10:18,250 Misto. 1547 01:10:18,250 --> 01:10:24,690 1548 01:10:24,690 --> 01:10:25,740 >> BINE. 1549 01:10:25,740 --> 01:10:31,770 Deci, nu fi îngrijorat dacă acest lucru pare un pic chiar abstract acum. 1550 01:10:31,770 --> 01:10:33,450 Acest lucru este ceva ce vom vorbi despre. 1551 01:10:33,450 --> 01:10:36,310 Vom arunca cu capul în mai profundă mai târziu, în cursul. 1552 01:10:36,310 --> 01:10:41,170 Modul în care orice fel de nivel superior abstracție de aceste lucruri de muncă 1553 01:10:41,170 --> 01:10:43,530 este faptul că, în memorie, în computer, totul 1554 01:10:43,530 --> 01:10:47,660 este stocată în acest tip de stivă, va spun. 1555 01:10:47,660 --> 01:10:49,070 >> Deci, acolo în partea de sus. 1556 01:10:49,070 --> 01:10:50,861 Nu știu dacă ați baieti poate vedea că de bine. 1557 01:10:50,861 --> 01:10:52,590 Voi încerca pentru a mări. 1558 01:10:52,590 --> 01:10:55,111 Aici, la partea de sus, ne-am au textul fizic 1559 01:10:55,111 --> 01:10:57,860 de ce computerul este interpreting-- toate zerouri și cele care 1560 01:10:57,860 --> 01:10:59,540 există în calculatorul nostru. 1561 01:10:59,540 --> 01:11:03,390 Și apoi avem inițializat Date de date și neinițializate, 1562 01:11:03,390 --> 01:11:05,340 ceea ce noi numim variabile globale. 1563 01:11:05,340 --> 01:11:08,200 Deci variabile care există în toate programele 1564 01:11:08,200 --> 01:11:11,815 și în întreaga ta, în esență, cod. 1565 01:11:11,815 --> 01:11:13,940 Nu vă faceți griji dacă voi sunt un fel de neclar în această privință. 1566 01:11:13,940 --> 01:11:16,060 Nu contează cu adevărat chiar acum. 1567 01:11:16,060 --> 01:11:18,680 >> Și apoi ne-am ce-i numit o grămadă într-o stivă. 1568 01:11:18,680 --> 01:11:21,140 Gândiți-vă la o stivă literalmente ca la fel ca un teanc de lucruri, 1569 01:11:21,140 --> 01:11:23,098 un teanc de diferit lucruri fiind împins pe partea de sus 1570 01:11:23,098 --> 01:11:27,870 față de cealaltă care stoca diferitele variabile și sintaxă în codul. 1571 01:11:27,870 --> 01:11:31,460 Și apoi aici, la foarte partea de jos, avem variabilele de mediu 1572 01:11:31,460 --> 01:11:35,480 de ceea ce se execută în termen de doar dvs. linie de cod mic. 1573 01:11:35,480 --> 01:11:40,510 >> Și vom merge pentru a mări doar de pe partea reală stivă. 1574 01:11:40,510 --> 01:11:43,880 Deci aici, dacă ar fi să zoom în doar pe acest domeniu de stiva, 1575 01:11:43,880 --> 01:11:45,140 asta este ceea ce pare. 1576 01:11:45,140 --> 01:11:48,590 Și acest lucru este, de fapt destul de importantă când voi vorbi despre funcții, 1577 01:11:48,590 --> 01:11:52,330 deoarece notificare că memoria computerului 1578 01:11:52,330 --> 01:11:55,600 stochează variabilele și funcțiile 1579 01:11:55,600 --> 01:11:58,790 și parametrii atât dumneavoastră Funcția și principalele tale variabile 1580 01:11:58,790 --> 01:12:00,190 în locuri diferite. 1581 01:12:00,190 --> 01:12:03,390 >> Deci acum, principal este funcția propriu-zisă 1582 01:12:03,390 --> 01:12:04,780 că sunteți de executare într-un cod. 1583 01:12:04,780 --> 01:12:08,050 Ați parametrii stocate aici și variabilele locale stocate aici. 1584 01:12:08,050 --> 01:12:12,270 Variabile locale înseamnă orice fel de variabile care există numai în această funcție. 1585 01:12:12,270 --> 01:12:15,610 Și pe partea de sus a acesteia, aveți acest functie separata numita cub. 1586 01:12:15,610 --> 01:12:18,240 Aveți e parametri precum și acele localnici. 1587 01:12:18,240 --> 01:12:21,540 >> Și motivul pentru care se poate vezi aici este că ceea ce 1588 01:12:21,540 --> 01:12:25,030 se întâmplă atunci când cub ia într-o valoare din funcția principală 1589 01:12:25,030 --> 01:12:27,640 este că, de fapt este copierea că peste. 1590 01:12:27,640 --> 01:12:31,470 Deci, dacă am vrut să cub 2 și a reveni 8, că 2 1591 01:12:31,470 --> 01:12:33,730 este, de fapt introdus ca un parametru și este 1592 01:12:33,730 --> 01:12:37,690 copiate, asa vei avea o existentă în două locuri diferite în memorie. 1593 01:12:37,690 --> 01:12:40,520 Și trebuie să fie foarte atent pe amintirea care unul dintre cei 1594 01:12:40,520 --> 01:12:42,520 esti de fapt manipularea. 1595 01:12:42,520 --> 01:12:47,170 Și un exemplu de ceea ce sa întâmplat că ar fi foarte, foarte rău 1596 01:12:47,170 --> 01:12:48,050 există chiar aici. 1597 01:12:48,050 --> 01:12:50,760 1598 01:12:50,760 --> 01:12:58,650 >> Deci aici, am luat, teoretic, un program de aici, o funcție principală 1599 01:12:58,650 --> 01:13:02,180 că eu sunt declararea unui int x este egal cu 1. 1600 01:13:02,180 --> 01:13:04,505 Am declarând un alt y Int este egal cu 2. 1601 01:13:04,505 --> 01:13:06,380 Și apoi eu o funcționare prin această funcție 1602 01:13:06,380 --> 01:13:09,647 numit de swap, în cazul în care presupun că este schimbarea cele două valori. 1603 01:13:09,647 --> 01:13:11,480 Și apoi am de gând să printeaza-le, nu? 1604 01:13:11,480 --> 01:13:13,220 Asta e ceea ce vreau să fac acest program. 1605 01:13:13,220 --> 01:13:15,180 >> Așa că haideți să coboare și să ia o privire. 1606 01:13:15,180 --> 01:13:18,200 Deci, dacă de fapt am scrie un alt funcție, după cum puteți vedea, 1607 01:13:18,200 --> 01:13:19,750 avem functia nostru principal aici. 1608 01:13:19,750 --> 01:13:22,860 Și apoi ne-am nostru a doua funcție aici. 1609 01:13:22,860 --> 01:13:24,520 De swap nule. 1610 01:13:24,520 --> 01:13:27,090 Void înseamnă doar că este nu o să se întoarcă nimic. 1611 01:13:27,090 --> 01:13:28,930 Numele funcției este numit de swap, și este 1612 01:13:28,930 --> 01:13:33,730 O să admisie două variabile, int un și int b, de la [neauzit] funcția. 1613 01:13:33,730 --> 01:13:39,010 >> Deci, în esență, aici, suntem trecere a lui x și y în această funcție. 1614 01:13:39,010 --> 01:13:40,760 Și dacă ar fi să crea astea-- așa ne-o dorim 1615 01:13:40,760 --> 01:13:42,420 pentru a crea o valoare temporar, nu? 1616 01:13:42,420 --> 01:13:43,930 Vom atribui asta o. 1617 01:13:43,930 --> 01:13:45,388 Și apoi un va acum egal b. 1618 01:13:45,388 --> 01:13:47,660 Și b va fi din nou în cazul în care valoarea temp fost, 1619 01:13:47,660 --> 01:13:51,070 care este un, deoarece atunci când doriți să schimb lucrurile, 1620 01:13:51,070 --> 01:13:52,320 nu se poate ca doar le schimba. 1621 01:13:52,320 --> 01:13:54,360 >> Va trebui să țină unul aici, astfel încât să își amintește 1622 01:13:54,360 --> 01:13:56,485 ceea ce, care este, pentru că o dată ai schimba o, ati uitat 1623 01:13:56,485 --> 01:13:58,200 ce această valoare inițială a fost, nu? 1624 01:13:58,200 --> 01:14:00,990 Deci, în teorie, acest program ar trebui să lucreze, nu? 1625 01:14:00,990 --> 01:14:03,630 Dacă aș fi vrut să schimbe două, acestea ar trebui să schimb. 1626 01:14:03,630 --> 01:14:05,490 Deci, haideți să-l rulați și a vedea dacă funcționează. 1627 01:14:05,490 --> 01:14:11,130 1628 01:14:11,130 --> 01:14:16,940 >> Deci, ca voi poate vedea, X a fost o dată 1 și y 2 a fost o dată. 1629 01:14:16,940 --> 01:14:21,475 Și dacă l-am imprima, x este încă 1 și Y este 2. 1630 01:14:21,475 --> 01:14:25,970 Hmm, acest program nu pare a fi de lucru modul în care vreau să lucreze. 1631 01:14:25,970 --> 01:14:29,950 Vrea cineva să ia o lovitură de la ghicitul de ce acest lucru a fost întâmplă? 1632 01:14:29,950 --> 01:14:34,430 Ea are de a face cu modul în care că lucruri diferite sunt 1633 01:14:34,430 --> 01:14:38,172 depozitate în diferite locuri din memorie. 1634 01:14:38,172 --> 01:14:39,377 >> BINE. 1635 01:14:39,377 --> 01:14:41,960 Deci, voi nu trebuie să vă faceți griji prea mult despre asta acum. 1636 01:14:41,960 --> 01:14:46,610 Dar să știi că cub de locale Variabilele au fost a și b, 1637 01:14:46,610 --> 01:14:49,230 pentru că aici, în funcția noastră, am declarat și b 1638 01:14:49,230 --> 01:14:53,570 ca variabilele care există în cub, această funcție. 1639 01:14:53,570 --> 01:14:59,490 Dar, după cum puteți vedea, parametrii care se ia în au fost depozitate aici. 1640 01:14:59,490 --> 01:15:01,370 Dar nu am fost de fapt revenind nimic. 1641 01:15:01,370 --> 01:15:03,120 Noi nu s-au schimbat de fapt x și y. 1642 01:15:03,120 --> 01:15:04,440 Am fost schimbarea doar a și b. 1643 01:15:04,440 --> 01:15:08,340 >> Ne-am copiat și y în x ceva numit a și b. 1644 01:15:08,340 --> 01:15:11,092 Dar noi nu, de fapt manipulat x și y se. 1645 01:15:11,092 --> 01:15:12,800 Sunt băieți văd cum ce se întâmplă? 1646 01:15:12,800 --> 01:15:16,140 Este că ne-am copiat pur și simplu peste, dar nu am de fapt păstrat 1647 01:15:16,140 --> 01:15:18,030 evidența în cazul în care acestea au fost în memorie. 1648 01:15:18,030 --> 01:15:20,127 >> Și așa acum computerul este în căutarea, oh, am 1649 01:15:20,127 --> 01:15:21,960 rula acest lucru prin Această funcție minunat. 1650 01:15:21,960 --> 01:15:23,690 Dar x și y sunt încă x și y. 1651 01:15:23,690 --> 01:15:26,240 Nimic nu sa întâmplat lor din cauza faptului 1652 01:15:26,240 --> 01:15:28,340 că acești parametri și variabile locale 1653 01:15:28,340 --> 01:15:30,150 sunt stocate într-un alt punere în memorie. 1654 01:15:30,150 --> 01:15:32,030 Și aceasta este o de nivel superior Conceptul că vom 1655 01:15:32,030 --> 01:15:34,300 începe să vedeți mai târziu, în cursul. 1656 01:15:34,300 --> 01:15:36,950 Dar știu doar că acest lucru este o problemă care se poate intampla 1657 01:15:36,950 --> 01:15:41,400 și că vom dau seama moduri despre cum să se ocupe de acest lucru mai târziu, în cursul. 1658 01:15:41,400 --> 01:15:41,900 BINE. 1659 01:15:41,900 --> 01:15:47,750 1660 01:15:47,750 --> 01:15:48,250 In regula. 1661 01:15:48,250 --> 01:15:51,780 Deci ultima conceptul suntem întâmplă cu adevărat pentru a acoperi 1662 01:15:51,780 --> 01:15:53,880 care va fi util pentru PSET în această săptămână 1663 01:15:53,880 --> 01:15:56,060 sunt ceea ce se numesc argumente în linia de comandă. 1664 01:15:56,060 --> 01:16:00,820 Deci, Rob în prelegerea sa a trecut prin un fel de scurt cu privire la modul aceste lucru. 1665 01:16:00,820 --> 01:16:02,770 În esență știu că când scrii 1666 01:16:02,770 --> 01:16:06,280 ca o funcție principală, atunci când ne a scris funcții înainte în trecut, 1667 01:16:06,280 --> 01:16:07,804 am avut void main Int. 1668 01:16:07,804 --> 01:16:10,470 Și motivul pentru care am avut nule acolo a fost că programele noastre nu au 1669 01:16:10,470 --> 01:16:12,520 Trebuie să valori de intrare pentru a rula, nu? 1670 01:16:12,520 --> 01:16:16,020 Când am fugit Mario, nu am nevoie de a de fapt doar de tip în ceva 1671 01:16:16,020 --> 01:16:16,970 când am fugit Mario. 1672 01:16:16,970 --> 01:16:20,170 Aș putea cere utilizatorului mai târziu. 1673 01:16:20,170 --> 01:16:22,450 Dar asta nu va fi întotdeauna cazul. 1674 01:16:22,450 --> 01:16:24,980 >> De exemplu, în acest Seturile de problema saptamana, 1675 01:16:24,980 --> 01:16:28,365 ai de gând să fie cerut ca, în plus față de funcționare programul, 1676 01:16:28,365 --> 01:16:30,990 ai de gând să doriți să introduceți anumite lucruri în drept ca tine 1677 01:16:30,990 --> 01:16:32,050 rula programul. 1678 01:16:32,050 --> 01:16:34,720 Deci modul în care facem asta este numit un argument linie de comandă, care 1679 01:16:34,720 --> 01:16:37,280 este ca un argument puteți introduce direct 1680 01:16:37,280 --> 01:16:39,260 ca esti încercarea de a rula programul. 1681 01:16:39,260 --> 01:16:44,680 >> Deci, notația pentru acest lucru, e destul de complex cu aspect, 1682 01:16:44,680 --> 01:16:47,320 dar nu este chiar așa de dificil. Deci Int main-- 1683 01:16:47,320 --> 01:16:48,910 asta e doar funcția principală. 1684 01:16:48,910 --> 01:16:52,110 În argc virgulă între paranteze șir argv. 1685 01:16:52,110 --> 01:16:56,040 Deci tot ce spune este că acest Int argc-- tot ce vă spune 1686 01:16:56,040 --> 01:17:00,560 este că acestea sunt numărul de argumente computerul ar trebui să se aștepte. 1687 01:17:00,560 --> 01:17:03,130 >> Deci, un lucru care într-adevăr important să se țină evidența 1688 01:17:03,130 --> 01:17:07,080 este numele fizic al programului dumneavoastră conteaza ca unul dintre aceste argumente. 1689 01:17:07,080 --> 01:17:11,080 Deci, dacă am vrut să am programul meu rula plus o linie de comandă suplimentară 1690 01:17:11,080 --> 01:17:13,310 argument, de fapt, eu sunt va avea două. 1691 01:17:13,310 --> 01:17:15,080 Argc de fapt va fi de două. 1692 01:17:15,080 --> 01:17:18,010 Și apoi string argv bracket-- tot ce este de a face, 1693 01:17:18,010 --> 01:17:20,410 este un da-mi matrice de siruri de caractere care este 1694 01:17:20,410 --> 01:17:24,870 va doar pentru a afișa și stoca ceea ce toate aceste argumente în linia de comandă sunt. 1695 01:17:24,870 --> 01:17:34,090 >> Deci, de exemplu, în cazul în care am vrut să am această Programul, ./copy INFILE outfile, nu? 1696 01:17:34,090 --> 01:17:37,330 Asta e doar o comandă tipic Linux. 1697 01:17:37,330 --> 01:17:38,830 Ce este de fapt argc? 1698 01:17:38,830 --> 01:17:41,320 Cât de multe argumente în linia de comandă există de fapt în asta? 1699 01:17:41,320 --> 01:17:45,130 Toate acestea nu este de a face o copie a o INFILE a numelui unui fișier 1700 01:17:45,130 --> 01:17:47,070 și o copie in un alt fișier, nu? 1701 01:17:47,070 --> 01:17:48,700 Asta-i tot acest este de a face. 1702 01:17:48,700 --> 01:17:53,080 După cum puteți vedea, eu o fac pe o singură linie fără a avea nevoie de fapt programul. 1703 01:17:53,080 --> 01:17:55,380 >> Ce este argc noastră în acest caz? 1704 01:17:55,380 --> 01:17:58,968 Câte argumente avem? 1705 01:17:58,968 --> 01:17:59,634 Audiența: Trei? 1706 01:17:59,634 --> 01:18:01,200 ANDI Peng: Avem trei, exact. 1707 01:18:01,200 --> 01:18:05,030 Deci, este foarte intuitiv pentru a doar cred că e doar 1708 01:18:05,030 --> 01:18:06,290 infile și outfile. 1709 01:18:06,290 --> 01:18:10,190 Dar știu că numele fizic al Programul rulați conteaza ca unul. 1710 01:18:10,190 --> 01:18:13,220 Deci, în acest caz, argc este de fapt trei. 1711 01:18:13,220 --> 01:18:15,860 Ce zici, ce este argv 0? 1712 01:18:15,860 --> 01:18:18,180 Amintiți-vă, tot de la argumente în linia de comandă 1713 01:18:18,180 --> 01:18:20,500 au fost depozitate într-o matrice de siruri de caractere. 1714 01:18:20,500 --> 01:18:24,140 Deci, dacă am încerca să-l accesa, ce ar argv suport 0-mi dai? 1715 01:18:24,140 --> 01:18:25,364 >> Audiența: [neauzit]. 1716 01:18:25,364 --> 01:18:26,155 ANDI Peng: Exact. 1717 01:18:26,155 --> 01:18:28,550 Mi-ar da punctul slash copie, pentru că asta e 1718 01:18:28,550 --> 01:18:31,070 elementul 0th, primul element al matrice mea. 1719 01:18:31,070 --> 01:18:33,236 Ce zici de argv 1? 1720 01:18:33,236 --> 01:18:33,945 >> Audiența: INFILE. 1721 01:18:33,945 --> 01:18:35,070 ANDI Peng: INFILE, exact. 1722 01:18:35,070 --> 01:18:36,272 Ce zici de argv 2? 1723 01:18:36,272 --> 01:18:37,022 Audiența: outfile. 1724 01:18:37,022 --> 01:18:38,190 ANDI Peng: outfile. 1725 01:18:38,190 --> 01:18:39,290 Acesta este un pic complicat acum. 1726 01:18:39,290 --> 01:18:42,630 Ce voi că argv 3 va fi să-mi dai 1727 01:18:42,630 --> 01:18:45,522 dacă am încercat să imprimați asta? 1728 01:18:45,522 --> 01:18:48,260 >> Audiența: [inaudibil]? 1729 01:18:48,260 --> 01:18:50,164 >> ANDI Peng: Ai avut o mână în sus? 1730 01:18:50,164 --> 01:18:50,663 Da. 1731 01:18:50,663 --> 01:18:51,550 >> Audiența: O alternativă. 1732 01:18:51,550 --> 01:18:52,341 >> ANDI Peng: Exact. 1733 01:18:52,341 --> 01:18:55,440 Deci, amintiți-vă în curs pe care le au, la sfârșitul unei curse ceva 1734 01:18:55,440 --> 01:18:56,640 numit terminator nul? 1735 01:18:56,640 --> 01:18:58,890 Vom ajunge în această, de asemenea, mai departe în clasa. 1736 01:18:58,890 --> 01:19:02,472 Dar să știi că, în notație, modul în care computerul 1737 01:19:02,472 --> 01:19:04,430 știe că este sfârșitul de matrice este faptul că 1738 01:19:04,430 --> 01:19:07,310 pune ceva numit un nul terminator sau o liniuță zero. 1739 01:19:07,310 --> 01:19:12,047 >> Deci, dacă încercați să accesați argv 3, ai de gând să lovit acest bord 0. 1740 01:19:12,047 --> 01:19:13,630 Acest lucru este chiar mai mult de o întrebare capcană. 1741 01:19:13,630 --> 01:19:17,020 Ce zici de argv 4? 1742 01:19:17,020 --> 01:19:20,920 Deci, aceasta este terminator nul trecut, dincolo de limitele gama noastră. 1743 01:19:20,920 --> 01:19:24,380 Ce crezi că se va se întâmplă atunci când încercăm să facem acest lucru? 1744 01:19:24,380 --> 01:19:25,842 >> Audiența: [inaudibil]? 1745 01:19:25,842 --> 01:19:26,550 ANDI Peng: Îmi pare rău? 1746 01:19:26,550 --> 01:19:28,025 Spune că un pic mai tare? 1747 01:19:28,025 --> 01:19:29,086 >> Audiența: [neauzit]. 1748 01:19:29,086 --> 01:19:29,710 ANDI Peng: Da. 1749 01:19:29,710 --> 01:19:32,420 Acesta este numele Zona vei primi cel mai probabil. 1750 01:19:32,420 --> 01:19:36,610 Dar să știi că argv 4-- care vă permite să acces 1751 01:19:36,610 --> 01:19:38,610 locuri în a computerului de memorie pe care într-adevăr 1752 01:19:38,610 --> 01:19:41,650 nu ar trebui să fie ating, deoarece acum știi ce argv este. 1753 01:19:41,650 --> 01:19:46,220 Știi că este o matrice de dimensiune 3 care are copie punct, infile și outfile. 1754 01:19:46,220 --> 01:19:50,200 >> Dacă încercați să meargă atât de departe dincolo de faptul că că ești trecut terminatorul nul, 1755 01:19:50,200 --> 01:19:53,050 computerul are, probabil, stocate ceva în argv 4. 1756 01:19:53,050 --> 01:19:55,790 Și tu chiar nu ar trebui să fie permis accesul în argv 4, 1757 01:19:55,790 --> 01:19:58,130 pentru că aveți un fișier dulap si ai doar 1758 01:19:58,130 --> 01:19:59,790 permis accesul la aceste trei rafturi. 1759 01:19:59,790 --> 01:20:02,870 Dar dacă încerci să ajungă dincolo de raftul de cazul în care vă sunt permise, 1760 01:20:02,870 --> 01:20:04,930 ai de gând să înceapă încurcați cu alte lucruri în memoria computerului. 1761 01:20:04,930 --> 01:20:06,690 Asta va fi foarte, foarte rău. 1762 01:20:06,690 --> 01:20:07,440 Deci, știu doar că. 1763 01:20:07,440 --> 01:20:10,370 Fii foarte atent pe care le Nu doar începe întâmplare 1764 01:20:10,370 --> 01:20:14,772 accesarea elemente într-o matrice care nu au fost în ceea ce a vrut să creeze. 1765 01:20:14,772 --> 01:20:17,114 Da. 1766 01:20:17,114 --> 01:20:18,430 >> BINE. 1767 01:20:18,430 --> 01:20:26,360 Așa că am de gând să faci un alt exemplu terminale aici. 1768 01:20:26,360 --> 01:20:27,300 BINE. 1769 01:20:27,300 --> 01:20:29,900 Deci, Rob rapid în curs de altă zi a mers 1770 01:20:29,900 --> 01:20:35,040 prin acest exemplu, unde a avut int main int string argv argc 1771 01:20:35,040 --> 01:20:39,090 paranteze, care îmi spune că eu sunt Va trebui argumente linia de comandă. 1772 01:20:39,090 --> 01:20:41,860 >> El are, în cazul în care este egal cu argc este egal cu 2-- amintiți-vă, 1773 01:20:41,860 --> 01:20:45,070 este egal cu egali înseamnă comparație. 1774 01:20:45,070 --> 01:20:47,980 În cazul în care este egal cu 2, atunci eu sunt va pentru a imprima salut, 1775 01:20:47,980 --> 01:20:51,190 indiferent primul elementul de matrice este. 1776 01:20:51,190 --> 01:20:54,100 Print altceva, salut lume. 1777 01:20:54,100 --> 01:20:56,300 Ce se întâmplă acest lucru pentru a se întâmplă în esență? 1778 01:20:56,300 --> 01:21:00,570 Poate cineva doar explica în Engleză ce acest program este de a face? 1779 01:21:00,570 --> 01:21:01,272 Da. 1780 01:21:01,272 --> 01:21:08,160 >> Audiența: Dacă cineva tastat într-o comandă și a zis: prima și ultima lor nume, 1781 01:21:08,160 --> 01:21:12,096 nu va imprima doar Primul și spun, salut, 1782 01:21:12,096 --> 01:21:14,090 indiferent de numele tau este prima. 1783 01:21:14,090 --> 01:21:15,410 >> ANDI Peng: OK, hai să-l rulați. 1784 01:21:15,410 --> 01:21:22,470 Deci, de exemplu, dacă ar fi să fac acest fișier face salut sa-- salut 1785 01:21:22,470 --> 01:21:24,500 sa-- ce vrei să intrare? 1786 01:21:24,500 --> 01:21:25,900 >> Audiența: Numele și prenumele. 1787 01:21:25,900 --> 01:21:27,280 >> ANDI Peng: Numele și prenumele? 1788 01:21:27,280 --> 01:21:28,180 Spatii? 1789 01:21:28,180 --> 01:21:29,690 >> Audiența: Da. 1790 01:21:29,690 --> 01:21:33,490 >> ANDI Peng: Poate cineva spune mine acum, ceea ce este argc? 1791 01:21:33,490 --> 01:21:35,630 Doar acolo? 1792 01:21:35,630 --> 01:21:36,290 Hopa, îmi pare rău. 1793 01:21:36,290 --> 01:21:37,920 Lasă-mă să mă întorc. 1794 01:21:37,920 --> 01:21:40,740 Cât de multe argumente în linia de comandă tu are-- voi nu se poate vedea cu adevărat. 1795 01:21:40,740 --> 01:21:43,760 Dar voi încerca pentru a mări. 1796 01:21:43,760 --> 01:21:44,290 Incerc. 1797 01:21:44,290 --> 01:21:45,414 Da, nu e trei, nu? 1798 01:21:45,414 --> 01:21:48,750 E slash punct salut, e Andi și e Peng. 1799 01:21:48,750 --> 01:21:51,870 >> Deci, ce voi cred că acest lucru Programul va fi de imprimare afară? 1800 01:21:51,870 --> 01:21:55,550 1801 01:21:55,550 --> 01:21:56,060 Oh. 1802 01:21:56,060 --> 01:21:57,120 Oh, scuze. 1803 01:21:57,120 --> 01:21:57,810 Numele greșit. 1804 01:21:57,810 --> 01:22:03,630 1805 01:22:03,630 --> 01:22:06,130 E imprimarea, salut lume. 1806 01:22:06,130 --> 01:22:09,603 Vrea cineva să explice de ce se întâmplă? 1807 01:22:09,603 --> 01:22:10,103 Da? 1808 01:22:10,103 --> 01:22:11,019 >> Audiența: [neauzit]. 1809 01:22:11,019 --> 01:22:14,439 1810 01:22:14,439 --> 01:22:15,230 ANDI Peng: Exact. 1811 01:22:15,230 --> 01:22:19,940 Deci, aici, sunt condiționate este, în cazul în care este egal cu argc este egal cu 2. 1812 01:22:19,940 --> 01:22:23,650 Deci, numai în cazul în care nu există două argumente în linia de comandă. 1813 01:22:23,650 --> 01:22:25,850 Apoi am de gând să imprima, salut, orice ar fi. 1814 01:22:25,850 --> 01:22:28,210 Dar altceva, am de gând să imprima doar, salut lume. 1815 01:22:28,210 --> 01:22:30,040 Deci, cineva vrea să-mi dea un exemplu 1816 01:22:30,040 --> 01:22:35,050 de cum mi-ar fi în măsură să efectiv a lua it pentru a imprima valoarea argv 1? 1817 01:22:35,050 --> 01:22:38,600 >> Ce mi-ar trebui pentru a introduce aici? 1818 01:22:38,600 --> 01:22:39,840 Doar un singur lucru, nu? 1819 01:22:39,840 --> 01:22:42,900 Deoarece Hello punct de deja conteaza ca primul argument. 1820 01:22:42,900 --> 01:22:43,930 Am doar una mai mult. 1821 01:22:43,930 --> 01:22:46,470 Deci, dot salut dacă am face Andi. 1822 01:22:46,470 --> 01:22:47,270 Buna ziua, Andi. 1823 01:22:47,270 --> 01:22:49,186 Nu toată lumea înțelege de ce se întâmplă? 1824 01:22:49,186 --> 01:22:49,602 Da. 1825 01:22:49,602 --> 01:22:52,500 >> Audiența: Deci spațiul dintre line-- comanda este [neauzit]? 1826 01:22:52,500 --> 01:22:56,247 1827 01:22:56,247 --> 01:22:56,830 ANDI Peng: Nu. 1828 01:22:56,830 --> 01:23:03,810 Deci, spațiul într-o linie de comandă argument, X, pentru a spune computer 1829 01:23:03,810 --> 01:23:06,820 că acesta este începutul unui nou șir. 1830 01:23:06,820 --> 01:23:11,130 Deci, string argv aceasta here-- magazine toate argumentele rând comenzi 1831 01:23:11,130 --> 01:23:13,110 în siruri de caractere. 1832 01:23:13,110 --> 01:23:17,420 Și astfel spațiul în linia de comandă argument-- tot ce face este să-ți spun, 1833 01:23:17,420 --> 01:23:21,030 aceasta este la capătul unui șir și e timpul pentru a trece la un alt. 1834 01:23:21,030 --> 01:23:21,990 >> Da. 1835 01:23:21,990 --> 01:23:23,530 Acest lucru este destul de important pentru PSET ta, pentru că ești 1836 01:23:23,530 --> 01:23:24,613 va fi testarea acestora. 1837 01:23:24,613 --> 01:23:29,300 Deci, nimeni nu are orice întrebări cu privire la asta? 1838 01:23:29,300 --> 01:23:30,016 Bine, in regula. 1839 01:23:30,016 --> 01:23:30,515 Da? 1840 01:23:30,515 --> 01:23:35,008 >> Audiența: Deci tu motivul ar fi pune întreg calc argument în loc 1841 01:23:35,008 --> 01:23:40,059 de [inaudibil] ar fi atunci când doriți pentru a introduce informații suplimentare 1842 01:23:40,059 --> 01:23:41,030 [Inaudibil]? 1843 01:23:41,030 --> 01:23:42,090 >> ANDI Peng: Da, exact. 1844 01:23:42,090 --> 01:23:45,370 Unele programe veți avea nevoie de pentru a introduce un argument linie de comandă 1845 01:23:45,370 --> 01:23:47,732 că trece și care utilizează acest lucru. 1846 01:23:47,732 --> 01:23:49,035 Da. 1847 01:23:49,035 --> 01:23:50,410 Audiența: Și ce dacă [Inaudibil]? 1848 01:23:50,410 --> 01:23:55,440 1849 01:23:55,440 --> 01:23:58,870 >> ANDI Peng: Ei bine, ceea ce fac am pentru a schimba apoi in programul meu? 1850 01:23:58,870 --> 01:23:59,870 >> Audiența: Doar 3. 1851 01:23:59,870 --> 01:24:12,460 1852 01:24:12,460 --> 01:24:15,020 >> ANDI Peng: De ce este faptul că întâmplă, crezi? 1853 01:24:15,020 --> 01:24:18,940 >> Audiența: Deoarece [neauzit]. 1854 01:24:18,940 --> 01:24:22,370 >> Audiența: Ar trebui să schimba-l la 2 [neauzit]. 1855 01:24:22,370 --> 01:24:23,484 >> Audiența: 1 și 2. 1856 01:24:23,484 --> 01:24:24,650 ANDI Peng: 1 și 2, exact. 1857 01:24:24,650 --> 01:24:29,150 Deci, în acest caz, ar fi, probabil doresc să aibă două printf statements-- 1858 01:24:29,150 --> 01:24:32,601 una care tipărite argv 1 și cel care imprimă argv 2. 1859 01:24:32,601 --> 01:24:33,100 Aici. 1860 01:24:33,100 --> 01:24:34,516 Pot să fac asta, de fapt foarte repede. 1861 01:24:34,516 --> 01:24:46,720 1862 01:24:46,720 --> 01:24:47,320 Nu te duci. 1863 01:24:47,320 --> 01:24:48,287 Oh. 1864 01:24:48,287 --> 01:24:49,370 Nu este destul de ceea ce ai vrut. 1865 01:24:49,370 --> 01:24:52,590 Dar dacă voi mizerie în jurul valorii de cu formatarea, se va ieși. 1866 01:24:52,590 --> 01:24:54,981 Da. 1867 01:24:54,981 --> 01:24:55,480 Misto. 1868 01:24:55,480 --> 01:24:57,670 Știu că suntem un pic cam scurt la timp. 1869 01:24:57,670 --> 01:25:02,469 Dar eu sunt doar de gând să-și petreacă rapid o câteva minute trec prin helpful-- 1870 01:25:02,469 --> 01:25:03,760 Audiența: Aveți două minute. 1871 01:25:03,760 --> 01:25:05,010 ANDI Peng: Am două minute? 1872 01:25:05,010 --> 01:25:06,340 Multumesc. 1873 01:25:06,340 --> 01:25:09,180 Câteva sfaturi rapide. PSET 1874 01:25:09,180 --> 01:25:13,100 Deci, pentru aceasta PSET, am foarte recomanda, cum am spus, toată lumea pentru a citi spec. 1875 01:25:13,100 --> 01:25:16,804 Vei fi scris trei una programs-- numit initials.c, unul numit caesar.c, 1876 01:25:16,804 --> 01:25:17,720 unul numit vigenere.c. 1877 01:25:17,720 --> 01:25:20,465 1878 01:25:20,465 --> 01:25:22,340 Câteva sfaturi importante care Vreți cu adevărat 1879 01:25:22,340 --> 01:25:25,040 să păstreze în mind-- astfel există această funcție 1880 01:25:25,040 --> 01:25:27,770 numit atoi-- cum îmi place să spun, a trois. 1881 01:25:27,770 --> 01:25:29,520 Neclar dacă e de fapt, cum o spui. 1882 01:25:29,520 --> 01:25:32,510 Dar tot ce face, e introducerea. 1883 01:25:32,510 --> 01:25:34,320 Acesta convertește un șir la un int. 1884 01:25:34,320 --> 01:25:37,490 Deci, o reprezinta ASCII la i întreg. 1885 01:25:37,490 --> 01:25:40,310 E doar de conversie ASCII Valorile la număr întreg valori. 1886 01:25:40,310 --> 01:25:44,510 Deci amintesc argv, matrice care stochează toate comenzile linia arguments-- 1887 01:25:44,510 --> 01:25:46,300 le toate magazinele ca siruri de caractere. 1888 01:25:46,300 --> 01:25:50,010 Și deci, dacă doriți să fie în măsură să au una dintre ele să devină un număr întreg, 1889 01:25:50,010 --> 01:25:52,750 ai de gând să aibă pentru a folosi această valoare aici. 1890 01:25:52,750 --> 01:25:56,690 >> Modulo, ca și cum am acoperit mai devreme în clasa de astăzi, 1891 01:25:56,690 --> 01:25:59,550 vă permite să aibă restul de tot ce au. 1892 01:25:59,550 --> 01:26:03,620 Deci, dacă avem într-adevăr, într-adevăr un număr mare de Caesar, 1893 01:26:03,620 --> 01:26:06,117 Ce se întâmplă dacă avem la sfârșitul de un șir de Vigenere? 1894 01:26:06,117 --> 01:26:08,450 Cum ai de gând să fie în măsură pentru a ajunge să-și încheie în jurul valorii de care? 1895 01:26:08,450 --> 01:26:11,330 Dacă am lovit z și vreau l să se întoarcă la un, 1896 01:26:11,330 --> 01:26:13,650 cum am de gând pentru a obține care să-și încheie în jurul valorii de? 1897 01:26:13,650 --> 01:26:15,960 Probabil doriți să utilizați modulo acolo undeva. 1898 01:26:15,960 --> 01:26:19,190 >> În al doilea rând, în jurul valorii de a căuta bibliotecă. ctype.h. 1899 01:26:19,190 --> 01:26:20,680 Asta e un nou bibliotecă avem. 1900 01:26:20,680 --> 01:26:25,270 Veți găsi o mulțime de foarte, foarte isupper functions-- util, islower, 1901 01:26:25,270 --> 01:26:27,681 toupper, tolower, isalpha, etc.. 1902 01:26:27,681 --> 01:26:30,680 Toate funcțiile care vor fi foarte utile atunci când sunteți încercat să dau seama, 1903 01:26:30,680 --> 01:26:33,780 este acest personaj o literă mică? 1904 01:26:33,780 --> 01:26:35,730 Cum pot converti acest string la un majuscule? 1905 01:26:35,730 --> 01:26:38,146 Toate aceste lucruri vor fi foarte, foarte util pentru PSET ta. 1906 01:26:38,146 --> 01:26:42,720 1907 01:26:42,720 --> 01:26:45,500 BINE. 1908 01:26:45,500 --> 01:26:49,644 >> Orelor de seara asta sunt la 08:00 11:00 în sala de clasă TEAL mâine 1909 01:26:49,644 --> 01:26:51,310 precum și miercuri și joi seara. 1910 01:26:51,310 --> 01:26:53,280 Programul de lucru este în Comunelor. 1911 01:26:53,280 --> 01:26:56,180 Foarte sugerezi baieti toate începe imediat, 1912 01:26:56,180 --> 01:27:00,490 pentru că nu vrei să fie ca copil care are probleme joi seara 1913 01:27:00,490 --> 01:27:03,870 depunerea PSET și este cum ar fi, eu nu știu ce să fac. 1914 01:27:03,870 --> 01:27:05,870 Am început, am terminat, m-am prezentat. 1915 01:27:05,870 --> 01:27:09,737 Încercați să vă faceți unele camere, pentru că în probleme de cod apar mereu. 1916 01:27:09,737 --> 01:27:11,570 Doriți să vă asigurați că te dau 1917 01:27:11,570 --> 01:27:14,810 o mulțime de timp pentru a putea pentru a finaliza psets. 1918 01:27:14,810 --> 01:27:15,310 Misto. 1919 01:27:15,310 --> 01:27:16,720 Voi stea în jurul valorii de aici. 1920 01:27:16,720 --> 01:27:18,226 >> Audiența: Este on-line deja? 1921 01:27:18,226 --> 01:27:20,850 ANDI Peng: Nu știu dacă e on-line deja, dar va fi. 1922 01:27:20,850 --> 01:27:23,500 Voi închide în jurul valorii de aici, dacă cineva are deja întrebări. 1923 01:27:23,500 --> 01:27:25,390 Mulțumesc pentru vizită. 1924 01:27:25,390 --> 01:27:27,105