1 00:00:00,000 --> 00:00:07,070 [Powered by Google Translate] [♪ ♪ zumzet] 2 00:00:07,070 --> 00:00:10,380 Deci, să introducă vă la ceea ce am pe ecran; 3 00:00:10,380 --> 00:00:12,710 este unul dintre instrumentele pe care le dezvoltate in timpul verii; 4 00:00:12,710 --> 00:00:15,530 se numește CS50 Spatii, 5 00:00:15,530 --> 00:00:18,860 și e de aplicație colaborativă de codificare 6 00:00:18,860 --> 00:00:20,180 că am de gând să folosească în secțiunile. 7 00:00:20,180 --> 00:00:22,470 E destul de cool. 8 00:00:22,470 --> 00:00:26,040 Au văzut vreunul din voi alerga încă CS50? 9 00:00:26,040 --> 00:00:29,760 Permiteți-mi să trag, care într-o altă filă. 10 00:00:29,760 --> 00:00:33,440 Run.cs50.net 11 00:00:33,440 --> 00:00:36,230 Astfel 12 00:00:36,230 --> 00:00:39,700 daca te duci la run.cs50.net, 13 00:00:39,700 --> 00:00:43,030 puteți vedea acest lucru este un mod în browser-ul dvs. pentru a 14 00:00:43,030 --> 00:00:45,940 de fapt, cod - scrie cod C, 15 00:00:45,940 --> 00:00:47,460 și apoi rulați-l, 16 00:00:47,460 --> 00:00:50,960 așa că atât ea, cât compilează, se ruleaza, apoi returnează de ieșire pentru tine, 17 00:00:50,960 --> 00:00:53,350 astfel încât acesta este un fel de mod de a experimenta rece 18 00:00:53,350 --> 00:00:56,060 cu unele dintre cod care merge peste David, în prelegeri 19 00:00:56,060 --> 00:00:58,640 și ne dau pe tine pe seturi cu probleme 20 00:00:58,640 --> 00:01:01,900 fără a avea de fapt pentru a porni aparatul. 21 00:01:01,900 --> 00:01:04,489 >> Deci, ce face Spațiile care este diferit de cel 22 00:01:04,489 --> 00:01:07,450 daca am reveni la această filă, 23 00:01:07,450 --> 00:01:11,580 Spatii este administrat de CS50, cum ai vedea chiar aici, 24 00:01:11,580 --> 00:01:15,380 dar dacă vom defila peste si uita-te la cealaltă parte a ferestrei, 25 00:01:15,380 --> 00:01:18,130 vezi dreapta eu sunt singura persoană din acest spațiu, 26 00:01:18,130 --> 00:01:21,030 dar ce am de gând să faceți este să ceară voi să se alăture acestui spațiu cu mine 27 00:01:21,030 --> 00:01:24,590 și vom lua toate la cod în fereastra mica aceeași, 28 00:01:24,590 --> 00:01:26,070 code share cu ele, 29 00:01:26,070 --> 00:01:28,900 și vorbesc despre diferențele dintre codul nostru. 30 00:01:28,900 --> 00:01:31,530 Deci e un fel de un lucru cool - 31 00:01:31,530 --> 00:01:35,770 astfel încât să se alăture, în cazul în care v-ați putea vizita acest link chiar aici, la partea de sus 32 00:01:35,770 --> 00:01:38,980 care le-am subliniat, 33 00:01:38,980 --> 00:01:53,860 aveți posibilitatea să tastați doar în apps.cs50.net/spaces/vqcspSnO. 34 00:01:53,860 --> 00:01:56,610 >> În regulă, deci pentru a începe off, 35 00:01:56,610 --> 00:01:59,720 Am de gând să vă dau un pic de un tur de asta. 36 00:01:59,720 --> 00:02:01,720 Vom face unele de codificare stupide mici cu ea la început, 37 00:02:01,720 --> 00:02:06,200 așa că toată lumea se cam un simt pentru ceea ce e ca, 38 00:02:06,200 --> 00:02:09,000 dar ceea ce am făcut - 39 00:02:09,000 --> 00:02:11,830 sau ceea ce sunt pe cale să fac aici este - 40 00:02:11,830 --> 00:02:13,480 Mă duc să iau codul pe care l-am scris aici, 41 00:02:13,480 --> 00:02:15,800 care, după cum vedeți acum este gol; 42 00:02:15,800 --> 00:02:17,090 nu face nimic. 43 00:02:17,090 --> 00:02:21,080 E doar placa de cod cazanului, ne vom numi. 44 00:02:21,080 --> 00:02:23,820 Cu un pic de to-do comentariu. 45 00:02:23,820 --> 00:02:27,850 Am de gând să-l salvați prin apăsarea acestui buton Salvare. 46 00:02:27,850 --> 00:02:30,190 Și ce face este 47 00:02:30,190 --> 00:02:34,400 evidențiat-o aici, pe scurt - ca caseta de revizuire verde salvare, 48 00:02:34,400 --> 00:02:37,570 și acum, dacă veți căuta pentru mine în spațiu, 49 00:02:37,570 --> 00:02:40,340 faceți clic pe numele meu, 50 00:02:40,340 --> 00:02:43,370 puteți vedea că am această revizuire chiar aici, 51 00:02:43,370 --> 00:02:45,490 și dacă faceți clic pe această revizuire, 52 00:02:45,490 --> 00:02:48,240 vom încărca acest cod în spațiul vostru, de asemenea. 53 00:02:50,510 --> 00:02:54,160 >> Deci, toată lumea a încărcat acest cod în spațiu lor? 54 00:02:54,160 --> 00:02:57,810 În regulă, dacă nu aveți încă, mergeți mai departe și de a face asta, 55 00:02:57,810 --> 00:03:01,120 și apoi ceea ce vreau ca voi să faceți în această mică secțiune de-a face 56 00:03:01,120 --> 00:03:05,940 se scrie un pic folosind printf despre tine, 57 00:03:05,940 --> 00:03:08,310 Deci, de exemplu, mi-as scrie 58 00:03:08,310 --> 00:03:12,270 printf ("Numele meu este Nate"); 59 00:03:15,140 --> 00:03:17,700 și apoi aș scrie 60 00:03:17,700 --> 00:03:21,660 "Am absolvit în 2009 61 00:03:21,660 --> 00:03:24,440 de la Stanford " 62 00:03:26,050 --> 00:03:28,390 și mi-ar plăcea să aud despre 63 00:03:28,390 --> 00:03:30,270 ce an ești la școală, 64 00:03:30,270 --> 00:03:33,910 chiar daca esti la facultate sau scoala de afaceri 65 00:03:33,910 --> 00:03:36,130 sau un alt Harvard școală, 66 00:03:36,130 --> 00:03:39,200 ceea ce studiază dacă se cunoaște încă; 67 00:03:39,200 --> 00:03:41,290 în cazul în care acesta nu este cunoscut, asta e mișto. 68 00:03:41,290 --> 00:03:45,170 Nu am decid, până când am fost în anul al doilea de studentie târziu mea. 69 00:03:46,910 --> 00:03:49,210 și apoi mi-ar place, de asemenea, să știu 70 00:03:49,210 --> 00:03:51,610 ceva nebunesc vrei să-mi spui sau 71 00:03:51,610 --> 00:03:54,790 ceva despre clasa sau doar orice altceva. 72 00:03:56,930 --> 00:04:00,370 Când ați terminat de scris, cu printf mica ta, 73 00:04:00,370 --> 00:04:03,480 în cazul în care veți salva de revizuire sau, mai degrabă 74 00:04:03,480 --> 00:04:06,080 întâi asigurați-vă că puteți rula 75 00:04:06,080 --> 00:04:10,640 și că se imprimă exact ceea ce vrei tu să imprimați, 76 00:04:14,050 --> 00:04:16,399 și apoi, dacă te duci mai departe și salva acea revizuire 77 00:04:16,399 --> 00:04:21,600 folosind butonul Revizia Salvare, acest tip prima puțin peste aici, 78 00:04:24,080 --> 00:04:27,340 și vom merge cam printr și de a face o mica introducere in acest fel. 79 00:04:27,340 --> 00:04:30,150 Deci, ar trebui să aveți doar pentru a lovi butonul Play, 80 00:04:30,150 --> 00:04:32,550 care este aici în stânga sus, 81 00:04:32,550 --> 00:04:35,340 astfel încât acest buton Joacă pe stânga sus va 82 00:04:35,340 --> 00:04:39,050 trimite codul de pe serverul nostru pentru a în cazul în care acesta devine compilate și apoi executați. 83 00:04:40,600 --> 00:04:43,300 Deci, ce e cam nebun despre acest lucru este 84 00:04:43,300 --> 00:04:46,550 de fapt, acest cod nu se execută pe computer; 85 00:04:46,550 --> 00:04:49,290 este de fapt a fi trimise pe Internet. 86 00:04:49,290 --> 00:04:51,240 >> Cum merge, Charlotte? 87 00:04:51,240 --> 00:04:54,810 I >> - bine. Eu - Cred că sunt 88 00:04:54,810 --> 00:04:57,330 care au dificultăți, economisind 89 00:04:57,330 --> 00:05:00,530 pe serverul astfel încât se poate - Eu pot rula programul. 90 00:05:02,090 --> 00:05:05,780 Și atunci când am încerca să-l executați, se spune că există o eroare. 91 00:05:05,780 --> 00:05:08,850 Declarată ca un virus, care nu este acolo mai. 92 00:05:08,850 --> 00:05:11,860 Oh, hai să vedem, poate te-a lovit Salvare din nou? 93 00:05:11,860 --> 00:05:13,770 O văd pe ecran. 94 00:05:13,770 --> 00:05:15,120 Corect >>, bine, deci asta e ceea ce am. 95 00:05:15,120 --> 00:05:19,430 Și nu știu de ce nu ma lasa sa-l ruleze. 96 00:05:22,990 --> 00:05:24,990 Oh, bine, îmi pare rău. 97 00:05:27,930 --> 00:05:31,220 Poți explica de ce - ceea ce a fost greșit - ceea ce nu a fost de lucru cu el? 98 00:05:31,220 --> 00:05:34,760 >> Da, pentru că nu am văzut că exista o ultima linie unde există încă o variabilă 99 00:05:34,760 --> 00:05:37,700 că nu am declarat, pe care nu am intenția de a fi acolo. 100 00:05:37,700 --> 00:05:38,730 Da, perfect! 101 00:05:38,730 --> 00:05:40,390 Acum, dacă am >> ao salva, cred că ar trebui să funcționeze. 102 00:05:40,390 --> 00:05:42,970 Acum, că l-ai salvat, acesta funcționează; minunat. 103 00:05:42,970 --> 00:05:44,570 >> Deci da, cum am trece prin - 104 00:05:44,570 --> 00:05:46,690 Deci, ce se întâmplă, 105 00:05:46,690 --> 00:05:49,130 Mă duc să repet acest lucru pentru aparatul foto. 106 00:05:49,130 --> 00:05:51,760 Ceea ce sa întâmplat a fost că această variabilă e 107 00:05:51,760 --> 00:05:54,310 a fost lăsat în urma - Presupun că ai șters alte chestii 108 00:05:54,310 --> 00:05:56,670 în cazul în care ați declarat ca, 109 00:05:56,670 --> 00:05:59,560 și astfel acest lucru a fost aruncat lucrurile off și nu a fost permițându-vă să-l rulați. 110 00:05:59,560 --> 00:06:02,540 Deci, asta este exact ceea ce vrem să facem în secțiunea 111 00:06:02,540 --> 00:06:05,690 Se au oamenii încearcă să scrii piese diferite de cod, 112 00:06:05,690 --> 00:06:08,490 compila, a se vedea ce funcționează, ce nu se vedea, 113 00:06:08,490 --> 00:06:10,730 și apoi vorbi cam despre aceste lucruri, deoarece acestea sunt puncte de declanșare care 114 00:06:10,730 --> 00:06:12,850 Eu încă mai întâlni, 115 00:06:12,850 --> 00:06:15,470 Eu încă - să fac o mulțime de lucruri stupide tot timpul, 116 00:06:15,470 --> 00:06:17,820 si nu stiu de ce nu merge, 117 00:06:17,820 --> 00:06:22,960 așa că hai să trageți în sus de revizuire a lui Charlotte 3, 118 00:06:23,980 --> 00:06:25,380 iar noi vom fugi. 119 00:06:25,380 --> 00:06:28,950 >> Așa că atunci când am alerga, acum că am codul ei aici, 120 00:06:28,950 --> 00:06:31,450 Eu pot mări, a lovit butonul Run, 121 00:06:31,450 --> 00:06:33,680 Încărcări aceasta, ea construiește, se execută, 122 00:06:33,680 --> 00:06:36,980 spune că a rulat cu succes, și dacă aș defila în jos, 123 00:06:36,980 --> 00:06:39,440 vezi Charlotte este un junior la Casa Adams, 124 00:06:39,440 --> 00:06:42,720 psihologie, secundar în economie; minunat. 125 00:06:42,720 --> 00:06:44,310 Mă bucur să te cunosc! 126 00:06:44,310 --> 00:06:46,550 Minunat. 127 00:06:46,550 --> 00:06:49,670 Bine, se deplasează, să mergem la Daniel, 128 00:06:49,670 --> 00:06:52,710 du-te la revizia 3, 129 00:06:52,710 --> 00:06:54,180 compila, executați; 130 00:06:54,180 --> 00:06:56,680 de ce nu ne spui ceva despre tine, Daniel? 131 00:06:56,680 --> 00:06:59,380 Sună-mă >> Dan. 132 00:06:59,380 --> 00:07:01,920 Mă duc la școală de afaceri vizavi de voi, 133 00:07:01,920 --> 00:07:05,020 și am fost în Marină înainte de aici, 134 00:07:05,020 --> 00:07:08,020 și acest lucru este cu totul nou pentru mine, asa da. 135 00:07:08,020 --> 00:07:11,060 Nu te simți rău, eu sunt 30 și nu știu nici de chestiile astea. 136 00:07:11,060 --> 00:07:13,800 Minunat, mulțumesc, Dan! 137 00:07:13,800 --> 00:07:17,300 În regulă, avem un alt Daniel. 138 00:07:17,300 --> 00:07:20,930 Tu du-te de Daniel - te vei prezenta, Daniel? 139 00:07:20,930 --> 00:07:22,260 >> Sigur >>, eu sunt Daniel. 140 00:07:22,260 --> 00:07:24,330 Sunt un al doilea de studentie la Mather chiar acum. 141 00:07:24,330 --> 00:07:25,840 Eu mă concentrez asupra guvernului, 142 00:07:25,840 --> 00:07:28,760 dar am vrut sa iau CS50 pentru ca am auzit comentarii avantajos despre clasa 143 00:07:28,760 --> 00:07:30,750 și niciodată nu am încercat CS înainte. 144 00:07:30,750 --> 00:07:34,680 Derulați în jos aici și arată acest lucru - se răcească. 145 00:07:36,330 --> 00:07:39,090 Mutarea pe, Jared. 146 00:07:39,090 --> 00:07:41,990 Cum merge? 147 00:07:41,990 --> 00:07:43,430 Bine >>, ce mai faci? 148 00:07:43,430 --> 00:07:47,520 După cum puteți vedea, eu sunt un concentrator de filosofie junior în Eliot, 149 00:07:47,520 --> 00:07:50,260 originar din sudul Californiei, 150 00:07:50,260 --> 00:07:53,100 si eu sunt interesat în a lua CS50 pentru că îmi place logica de ea, 151 00:07:53,100 --> 00:07:57,420 și se pare foarte cool să faci lucruri pe calculator, așa. 152 00:07:57,420 --> 00:07:59,570 Minunat, în cazul în care, în sudul Californiei ești? 153 00:07:59,570 --> 00:08:02,340 >> Despre o oră de la [inaudibil], un oraș mic [neauzit]. 154 00:08:02,340 --> 00:08:04,850 Oh, da, tatăl meu e de la Redlands. 155 00:08:04,850 --> 00:08:07,060 Misto chestii. 156 00:08:07,060 --> 00:08:12,130 >> În regulă, Jimmy, cum merge, Jimmy? 157 00:08:12,130 --> 00:08:15,130 Bine >>, ce mai faci? 158 00:08:15,130 --> 00:08:16,040 Fac destul de bine! 159 00:08:16,040 --> 00:08:17,710 Spune-ne despre tine. 160 00:08:17,710 --> 00:08:20,840 >> Sunt un student în anul întâi, iar eu nu sunt în totalitate sigur ce am majoring în 161 00:08:20,840 --> 00:08:22,820 dar eu sunt cam înclinat spre economie. 162 00:08:22,820 --> 00:08:25,680 Ca Daniel înaintea mea, n-am făcut nici CS, dar sună cam rece. 163 00:08:25,680 --> 00:08:28,120 Sunt originar din Chicago. 164 00:08:28,120 --> 00:08:31,640 Minunat. Deci, a verifica afară imprimarea lui aici. 165 00:08:31,640 --> 00:08:34,630 Am vrut să întreb, a făcut acest lucru de imprimare ca v-ați așteptat? 166 00:08:34,630 --> 00:08:37,650 Nu >>, am uitat pentru a imprima o linie nouă. 167 00:08:37,650 --> 00:08:41,270 De fapt am uitat că, atunci când am scris chestia mea 168 00:08:41,270 --> 00:08:43,090 pentru prima dată, de asemenea. 169 00:08:43,090 --> 00:08:46,330 E un fel de durere să vă amintiți să afișezi cele din manual. 170 00:08:46,330 --> 00:08:50,560 Ar fi frumos dacă doar știu că e ceea ce ai vrut. 171 00:08:50,560 --> 00:08:53,630 >> Bine, Kelly. 172 00:08:53,630 --> 00:08:56,050 Wow, avem 2 Kellys; 2 Daniels, 2 Kellys. 173 00:08:56,050 --> 00:09:00,490 Deci, Kelly - te duci de Kelly Ren? 174 00:09:00,490 --> 00:09:03,870 Bine, minunat. 175 00:09:03,870 --> 00:09:07,270 Sau Kelly, vreau să spun. 176 00:09:07,270 --> 00:09:10,260 Deci da >>, așa că eu sunt Kelly. 177 00:09:10,260 --> 00:09:12,930 Sunt un al doilea de studentie in Pfoho. 178 00:09:12,930 --> 00:09:17,000 Am primit un e-mail astăzi că eu încă mai au 7 saptamani pentru a declara concentrarea mea, 179 00:09:17,000 --> 00:09:20,940 Așa că încerc să nu mă gândesc la asta, 180 00:09:20,940 --> 00:09:24,090 si imi place de coacere, de funcționare, și Craisins. 181 00:09:24,090 --> 00:09:29,110 Nu am experiență cu cele mai multe dintre CS; 182 00:09:29,110 --> 00:09:32,700 M-am învățat să construiască site-uri web atunci când am fost foarte tineri, 183 00:09:32,700 --> 00:09:35,750 dar cred că am învățat eu, probabil, greșit de multe ori. 184 00:09:35,750 --> 00:09:39,260 Să sperăm că voi învăța un pic mai mult 185 00:09:39,260 --> 00:09:41,450 și - da. 186 00:09:41,450 --> 00:09:44,100 >> Minunat, bine, mulțumesc. 187 00:09:44,100 --> 00:09:47,190 Să mergem la alte Kelly; 188 00:09:47,190 --> 00:09:48,880 Eu nu am nimic - ai spus ceva aici? 189 00:09:48,880 --> 00:09:51,880 >> [Fără sunet] 190 00:09:51,880 --> 00:09:56,180 Uite-l! 191 00:09:56,180 --> 00:09:58,120 Dulce! 192 00:09:58,120 --> 00:10:01,400 >> Regulă, așa că eu sunt Kelly. 193 00:10:01,400 --> 00:10:03,980 Sunt un student in primul an de absolvent. 194 00:10:03,980 --> 00:10:05,560 Sunt majoring în minte, creier, și educație. 195 00:10:05,560 --> 00:10:07,940 Am absolvit în Franklin & Marshall College în 2008 196 00:10:07,940 --> 00:10:10,840 cu specializări în psihologie și sociologie 197 00:10:10,840 --> 00:10:13,120 și un minor în limba franceză. 198 00:10:13,120 --> 00:10:15,330 Iau CS50 199 00:10:15,330 --> 00:10:18,080 pentru că eu sunt interesat în obținerea unui doctorat în Neuroștiințe 200 00:10:18,080 --> 00:10:21,220 și mă simt ca și cum asta mă va ajuta să înțeleg tehnologiile folosite. 201 00:10:21,220 --> 00:10:23,150 Minunat. 202 00:10:26,980 --> 00:10:29,390 Mutarea pe, Mikaela. 203 00:10:29,390 --> 00:10:31,640 Este că pronunția corectă? 204 00:10:31,640 --> 00:10:32,990 Bine, minunat. 205 00:10:32,990 --> 00:10:34,640 >> Sunt >> Mikhaila. 206 00:10:34,640 --> 00:10:36,870 Sunt un al doilea de studentie in Kirkland House, 207 00:10:36,870 --> 00:10:39,950 și eu mă concentrez în Inginerie Mecanică. 208 00:10:39,950 --> 00:10:43,180 Îmi place foarte mult cu bicicleta, a construit o bicicleta in aceasta vara. 209 00:10:43,180 --> 00:10:46,140 Iau CS, de fapt, 210 00:10:46,140 --> 00:10:48,350 ca o cerință de concentrare, 211 00:10:48,350 --> 00:10:52,550 dar știi, eu cred că e încă un fel de misto clasa de inginerie. 212 00:10:52,550 --> 00:10:55,150 Awesome - ai construit o bicicletă în această vară? 213 00:10:55,150 --> 00:10:56,730 Da >>. 214 00:10:56,730 --> 00:10:58,900 Wow, cum ar fi rama si toate astea? 215 00:10:58,900 --> 00:11:00,120 Uh-hunh >> (afirmativ). 216 00:11:00,120 --> 00:11:01,530 Wow, asta e foarte misto. 217 00:11:01,530 --> 00:11:06,370 >> [Fără sunet off-camera de chat] 218 00:11:06,370 --> 00:11:10,000 [Râsete] 219 00:11:12,640 --> 00:11:14,200 Da, a trecut atât de mult timp. 220 00:11:14,200 --> 00:11:16,730 Nu se știe niciodată, nu? 221 00:11:16,730 --> 00:11:19,420 Ei bine, rece, grație bine, Mikhaila. 222 00:11:19,420 --> 00:11:21,390 >> În regulă, Missy. 223 00:11:21,390 --> 00:11:23,280 >> Numele meu este Missy, eu sunt un student în anul întâi, 224 00:11:23,280 --> 00:11:25,500 si asta inseamna ca nu stiu nimic! 225 00:11:25,500 --> 00:11:29,180 Vreau să se concentreze în astrofizică. 226 00:11:29,180 --> 00:11:31,220 În CS50, 227 00:11:31,220 --> 00:11:33,350 Mă simt ca va ajuta cu siguranta cu asta. 228 00:11:33,350 --> 00:11:37,750 Un fapt ciudat despre mine este ca eu sunt un pompier la nivel național certificat. 229 00:11:37,750 --> 00:11:39,960 Wow! 230 00:11:39,960 --> 00:11:42,440 Cum sa întâmplat asta? 231 00:11:42,440 --> 00:11:45,570 >> Am participat o academie 232 00:11:45,570 --> 00:11:49,000 și a trecut prin iad pentru o mulțime de săptămâni 233 00:11:49,000 --> 00:11:51,200 și a luat de certificare meu. 234 00:11:51,200 --> 00:11:54,090 Uau, felicitări! 235 00:11:54,090 --> 00:11:57,280 Acesta este un pas mare, pentru sigur. 236 00:11:57,280 --> 00:11:59,070 Ok, deci acum vom mă pe mine. 237 00:11:59,070 --> 00:12:01,290 Eu sunt cel următor în rândul. 238 00:12:01,290 --> 00:12:04,510 Eu - a alerga it. 239 00:12:04,510 --> 00:12:07,580 >> Deci, numele meu este Nate. 240 00:12:07,580 --> 00:12:11,160 Am fost clasa a anului 2009, la Stanford. 241 00:12:11,160 --> 00:12:13,840 Am fost un sisteme simbolice majore, 242 00:12:13,840 --> 00:12:17,370 care este similar cu Mind, Brain Behavior concentrare, aici, 243 00:12:17,370 --> 00:12:19,300 dar e un fel de amestec de 244 00:12:19,300 --> 00:12:22,350 informatică, lingvistică, psihologie, filosofie și. 245 00:12:22,350 --> 00:12:26,600 Un fel de - Da, o mulțime de lucruri ciudate, dar a fost grozav, 246 00:12:26,600 --> 00:12:29,880 și apoi am făcut meu de master in Informatica acolo, de asemenea. 247 00:12:29,880 --> 00:12:33,250 Deci, eu sunt nou la Harvard în acest an. 248 00:12:33,250 --> 00:12:35,750 Chiar am vrut să intru în predare. 249 00:12:35,750 --> 00:12:39,860 Mi-am petrecut ultimii 4 ani la Stanford TA-ING orele de informatică 250 00:12:39,860 --> 00:12:43,370 și așa mai lasă-mă să vin David pe, 251 00:12:43,370 --> 00:12:45,550 și eu voi fi ajutat cu CS50, 252 00:12:45,550 --> 00:12:47,890 așa că am face acest lucru cu normă întreagă, eu nu sunt la școală grad. 253 00:12:47,890 --> 00:12:50,330 A fost distractiv. 254 00:12:50,330 --> 00:12:53,130 Să sperăm că va continua să fie distractiv, eu sunt sigur că va fi. 255 00:12:53,130 --> 00:12:56,040 >> În regulă, Sam. 256 00:13:01,910 --> 00:13:05,470 >> Numele meu este Sam, eu sunt un al doilea de studentie la facultate, în dreptul specific. 257 00:13:05,470 --> 00:13:10,110 Majoră mea va fi istorie a științei, probabil, și VES secundar, 258 00:13:10,110 --> 00:13:13,240 si culoarea mea preferata este galben. 259 00:13:18,790 --> 00:13:21,100 Nu este nevoie să treacă judecata sau ceva, dar e un bun culoare! 260 00:13:21,100 --> 00:13:24,780 Și Stella. 261 00:13:24,780 --> 00:13:26,980 >> Bună, eu sunt Stella, eu sunt un boboc în Grays. 262 00:13:26,980 --> 00:13:30,070 Nu am nici o idee despre ceea ce am concentrat în încă, 263 00:13:30,070 --> 00:13:32,500 astfel CS50 a fost doar un fel de întâmplare, 264 00:13:32,500 --> 00:13:34,220 care este interesant. 265 00:13:34,220 --> 00:13:36,080 Fapt amuzant, Jimmy a fost primul prieten de-al meu la Harvard, 266 00:13:36,080 --> 00:13:38,360 pentru că suntem amândoi de la Chicago. 267 00:13:38,360 --> 00:13:42,450 Rece, și Grace - care ar trebui sa fie unul cu adevarat frumos, nu? 268 00:13:42,450 --> 00:13:45,220 M-am gândit >> [neauzit]. 269 00:13:45,220 --> 00:13:46,690 Oh, da. 270 00:13:46,690 --> 00:13:51,210 [Nu se aude / off-camera de chat] 271 00:13:51,210 --> 00:13:54,420 Bine, eu sunt încă de învățare, încă de învățare. 272 00:13:54,420 --> 00:13:57,800 >> Deci avem ceva care e un fel de interesant aici. 273 00:13:59,600 --> 00:14:02,870 Da, mă întrebam doar, ai o idee ce se intampla pe aici? 274 00:14:02,870 --> 00:14:05,890 Știi cum să interpreteze acest lucru? 275 00:14:05,890 --> 00:14:13,340 >> Am fost trebuia să fie pus punct și virgulă după fiecare linie. 276 00:14:13,340 --> 00:14:16,370 Asta e un fel de durere. 277 00:14:16,370 --> 00:14:19,100 Uneori aceste semne punct și virgulă poate fi o adevarata durere pentru a urmări în jos. 278 00:14:19,100 --> 00:14:21,420 Deci, se dovedește că 279 00:14:21,420 --> 00:14:22,820 programul special suntem folosirea acestui an pentru a 280 00:14:22,820 --> 00:14:26,670 compila codul nostru C este numit zăngănit, 281 00:14:26,670 --> 00:14:29,460 și motivul pentru care am început să utilizeze zăngănit în acest an - 282 00:14:29,460 --> 00:14:32,030 pentru că nu am folosit acest program în trecut; 283 00:14:32,030 --> 00:14:35,710 am folosit o alta numita CCG, care este foarte popular - 284 00:14:35,710 --> 00:14:38,420 Zăngănit de fapt, vă oferă mesaje de eroare, care fac sens. 285 00:14:38,420 --> 00:14:41,420 Aceasta se spune "așteaptă", "după expresia", 286 00:14:41,420 --> 00:14:45,260 și chiar vă spune expresia după care ai nevoie de un punct și virgulă. 287 00:14:45,260 --> 00:14:47,830 Deci ai de stabilire? 288 00:14:47,830 --> 00:14:48,930 Da >>, chiar acum. 289 00:14:48,930 --> 00:14:52,040 Minunat; să-mi spuneți și vom trage în sus, iar noi îl vom rula. 290 00:14:52,040 --> 00:14:55,830 Dar da, punând punct și virgulă în aceste este un fel de durere. 291 00:14:55,830 --> 00:14:59,580 L-am fixat >>, deci cred că ar trebui să funcționeze. 292 00:14:59,580 --> 00:15:02,760 Awesome - revizia 3. 293 00:15:02,760 --> 00:15:05,250 Care arata ca ea. 294 00:15:05,250 --> 00:15:08,580 În regulă, așa că acum, dacă am alerga, 295 00:15:08,580 --> 00:15:11,020 acolo se duce. 296 00:15:11,020 --> 00:15:13,830 Misto chestii. 297 00:15:13,830 --> 00:15:15,340 >> Bine. 298 00:15:15,340 --> 00:15:18,230 Asa ca va multumesc pentru a face asta. 299 00:15:18,230 --> 00:15:20,210 E minunat să vă cunosc, băieți. 300 00:15:20,210 --> 00:15:22,880 Ce-o să facem acum este petreacă următorul bit mica 301 00:15:22,880 --> 00:15:24,740 cam scufundări în problemele secțiune 302 00:15:24,740 --> 00:15:27,550 care provin de la problema stabilită din această săptămână 303 00:15:27,550 --> 00:15:29,920 și vom face acest lucru pentru majoritatea secțiunilor 304 00:15:29,920 --> 00:15:32,110 pentru restul termenului, 305 00:15:32,110 --> 00:15:35,580 si apoi vom salva ultimii 15, 20 de minute sau cam asa ceva 306 00:15:35,580 --> 00:15:38,490 pentru a vorbi despre problema în sine setat 307 00:15:38,490 --> 00:15:41,420 și apoi doar orice alte întrebări aveți, în general, cu privire la clasa. 308 00:15:43,380 --> 00:15:45,670 Asta a spus, ceea ce vrei să faci cu adevărat 309 00:15:45,670 --> 00:15:49,390 este toată lumea s-au participă 310 00:15:49,390 --> 00:15:51,500 folosind chestii Spatii, 311 00:15:51,500 --> 00:15:53,500 aruncarea în cod, aruncarea în traduceri, 312 00:15:53,500 --> 00:15:56,500 și vorbesc despre atunci când lucrurile place acest pauza 313 00:15:56,500 --> 00:15:58,360 sau nu funcționează, doar pentru că acestea sunt lucruri care 314 00:15:58,360 --> 00:16:00,870 Știu că am dat peste 315 00:16:00,870 --> 00:16:03,180 atunci când am început de codificare, 316 00:16:03,180 --> 00:16:05,490 și au fost într-adevăr cam frustrant uneori 317 00:16:05,490 --> 00:16:08,690 pentru ca daca e ca si cum am 2 înainte de setul de problema ta se datorează, 318 00:16:08,690 --> 00:16:11,330 așa - doar pentru divulgarea, 319 00:16:11,330 --> 00:16:14,590 Nu am pornit de programare, până când am fost un student în anul doi la facultate. 320 00:16:14,590 --> 00:16:17,360 Acesta a fost un fel de acest lucru ciudat, necunoscut 321 00:16:17,360 --> 00:16:20,360 Am auzit că a fost cam rece 322 00:16:20,360 --> 00:16:23,590 și am auzit, de asemenea, că ar putea fi o adevarata durere în fund 323 00:16:23,590 --> 00:16:27,610 dacă ți-e dor o virgulă și că e singura eroare de păstrarea programului de lucru de la 324 00:16:27,610 --> 00:16:30,890 și ținându-vă de la a merge la culcare, 325 00:16:30,890 --> 00:16:32,650 asa cu siguranta, 326 00:16:32,650 --> 00:16:34,020 în cazul în care aveți întrebări, cum ar fi faptul că, 327 00:16:34,020 --> 00:16:37,060 dacă aveți probleme de genul asta, lasă-mă să știu, 328 00:16:37,060 --> 00:16:40,050 pentru că vreau să fac asta o experiență bună pentru voi. 329 00:16:40,050 --> 00:16:44,620 >> Deci, s-au descărcat voi tot problema stabilit încă? 330 00:16:44,620 --> 00:16:47,160 Cam știu unde este? Bine. 331 00:16:47,160 --> 00:16:51,490 Deci, vom merge la cs50.net, pentru că eu nu-l am pe acest cont, 332 00:16:51,490 --> 00:16:54,110 trageți în sus seturi de probleme, 333 00:16:54,110 --> 00:16:57,940 trageți în sus set de probleme 2, și ne vom uita la ediția standard de astăzi. 334 00:16:57,940 --> 00:17:01,190 Vom trage în sus caietul de sarcini aici. 335 00:17:02,640 --> 00:17:04,420 Derulați în jos. 336 00:17:06,790 --> 00:17:11,109 Deci, vom începe căutarea de la această secțiune de întrebări. 337 00:17:14,069 --> 00:17:16,710 Au privit aceste voi pantaloni scurți încă? 338 00:17:16,710 --> 00:17:18,329 Bine. 339 00:17:18,329 --> 00:17:21,329 Deci, există pantaloni scurți pe bucle, 340 00:17:21,329 --> 00:17:24,700 care se face de Tommy, unul dintre cele semenilor didactice cap. 341 00:17:24,700 --> 00:17:27,230 E unul pe domeniul de aplicare, 342 00:17:27,230 --> 00:17:30,530 Cred că face de către un alt coleg de predare pe nume David 343 00:17:30,530 --> 00:17:33,400 și apoi unul pe Cezar Cifrul, de asemenea, efectuată de către David. 344 00:17:33,400 --> 00:17:35,550 Sunt destul de mișto. 345 00:17:35,550 --> 00:17:37,770 Au fost voi uitam pantaloni scurți lor de până acum? 346 00:17:37,770 --> 00:17:39,270 How've au fost? 347 00:17:39,270 --> 00:17:41,490 Utill? Bine, bine de știut. 348 00:17:41,490 --> 00:17:44,210 Dacă acestea nu sunt, se poate spune așa. 349 00:17:46,290 --> 00:17:49,870 Dar, înainte de a face, 350 00:17:49,870 --> 00:17:52,600 s-au uitat la voi aceste întrebări 351 00:17:52,600 --> 00:17:55,430 la toate? 352 00:17:55,430 --> 00:17:57,480 >> Hai să vorbim despre asta un pic. 353 00:17:57,480 --> 00:18:00,600 Deci, am introdus in ultimele saptamani 354 00:18:00,600 --> 00:18:02,480 în curs 355 00:18:02,480 --> 00:18:04,910 un număr de bucle diferite. 356 00:18:04,910 --> 00:18:06,140 Nu e pentru bucla, 357 00:18:06,140 --> 00:18:09,570 buclă în timp ce, iar apoi bucla do-timp, 358 00:18:09,570 --> 00:18:13,100 și în curs, am vorbit foarte mult despre 359 00:18:13,100 --> 00:18:16,010 modul în care aceste bucle sunt toate 360 00:18:16,010 --> 00:18:18,320 destul de similar într-o mulțime de feluri, 361 00:18:18,320 --> 00:18:21,210 si puteti face mult din aceleași lucruri, cu o buclă în timp ce 362 00:18:21,210 --> 00:18:23,260 că poți, cu o buclă pentru. 363 00:18:23,260 --> 00:18:26,300 Trebuie doar să utilizeze un fel de combinații potrivite ale variabilelor și astfel. 364 00:18:26,300 --> 00:18:28,680 și într-adevăr așa 365 00:18:28,680 --> 00:18:31,200 distincție reală între toate buclele care este 366 00:18:31,200 --> 00:18:33,620 uneori acestea sunt mai utile 367 00:18:33,620 --> 00:18:36,930 pentru a le folosi la un moment dat decât într-un alt timp. 368 00:18:36,930 --> 00:18:39,340 >> Deci, de exemplu, 369 00:18:39,340 --> 00:18:42,260 bucla in timp ce diferă de la o bucla do-timp. 370 00:18:42,260 --> 00:18:45,680 Are toată lumea simt ca au un mâner bună atunci când 371 00:18:45,680 --> 00:18:48,650 un do-while este mai 372 00:18:48,650 --> 00:18:50,990 utilă sau ceea ce este diferența? 373 00:18:50,990 --> 00:18:53,410 >> Cred ca diferenta este o buclă în timp ce do- 374 00:18:53,410 --> 00:18:56,960 ruleaza - Nu știu destul de ceea ce este terminologia, 375 00:18:56,960 --> 00:18:59,750 dar serie de funcții în cadrul buclei. 376 00:18:59,750 --> 00:19:02,020 Ei au în mod automat - ea nu se execută sale, cel puțin 377 00:19:02,020 --> 00:19:05,390 înainte de a verifica starea, sau bucla in timp ce va rula doar atunci când 378 00:19:05,390 --> 00:19:08,290 în mod continuu funcționează - dacă este sau nu condiție este îndeplinită. 379 00:19:08,290 --> 00:19:11,010 Da, asta nu face sens? 380 00:19:11,010 --> 00:19:14,200 >> Să aruncăm o privire la un pic de cod. 381 00:19:14,200 --> 00:19:16,930 Deci, doar să repete întrebarea, 382 00:19:16,930 --> 00:19:19,230 sau răspunsul, mai degrabă; 383 00:19:19,230 --> 00:19:22,050 Răspunsul a fost că 384 00:19:22,050 --> 00:19:25,850 o buclă în timp ce se va verifica pentru a vedea dacă starea 385 00:19:25,850 --> 00:19:27,440 pe care le specificați este îndeplinită 386 00:19:27,440 --> 00:19:31,320 înainte de a conduce corpul buclei pentru prima dată, 387 00:19:31,320 --> 00:19:35,000 întrucât do-while va rula automat corpul buclei, 388 00:19:35,000 --> 00:19:38,450 este ceea ce noi numim - e ciudat terminologia, 389 00:19:38,450 --> 00:19:41,460 dar dacă spun vreodată ceva care nu are sens, lasă-mă să știu - 390 00:19:41,460 --> 00:19:45,360 corpul buclei este că lucrurile pe care le pune în între acolade. 391 00:19:45,360 --> 00:19:47,840 Și într-o buclă do-timp, 392 00:19:47,840 --> 00:19:50,220 acest organism se executa cel puțin o dată, 393 00:19:50,220 --> 00:19:54,460 și apoi starea se verifică înainte de a se execută de fiecare dată succesivă. 394 00:19:54,460 --> 00:19:56,580 >> Deci, de fapt, Sam, 395 00:19:56,580 --> 00:20:00,820 te superi scris un simplu buclă în timp ce 396 00:20:00,820 --> 00:20:02,840 în Spatii? 397 00:20:02,840 --> 00:20:05,600 >> Ce părere aveți un fel de 398 00:20:05,600 --> 00:20:07,060 face un nou ...? 399 00:20:07,060 --> 00:20:09,220 Eu pur și simplu ștergeți orice ai acolo. 400 00:20:09,220 --> 00:20:11,300 Da, clar doar afară. 401 00:20:11,300 --> 00:20:14,510 >> Ei bine, eu cred că am avut această - 402 00:20:14,510 --> 00:20:16,640 care o vrei, o vreme, sau vrei ...? 403 00:20:16,640 --> 00:20:19,350 Da, doar nu o vreme adevărat, imprima ceva. 404 00:20:21,050 --> 00:20:23,140 Și hai să vedem. 405 00:20:23,140 --> 00:20:25,850 Alexandru, ne-am dat seama nu ai introdus. 406 00:20:25,850 --> 00:20:27,510 Oh >>, e în regulă. 407 00:20:27,510 --> 00:20:30,760 Ai - poti coda o buclă do-în timp ce pentru noi? 408 00:20:30,760 --> 00:20:32,520 Da >>, voi încerca. 409 00:20:32,520 --> 00:20:34,370 În regulă, vom trage pur și simplu acestea pe ecran, 410 00:20:34,370 --> 00:20:38,240 astfel încât să aveți un fel de un maner asupra a ceea ce diferențele sunt. 411 00:20:38,240 --> 00:20:41,280 >> Deci, aici e ceea ce a făcut Sam. 412 00:20:41,280 --> 00:20:44,460 Are un întreg numit i 413 00:20:44,460 --> 00:20:47,480 că el initializat la 17. 414 00:20:47,480 --> 00:20:51,570 Apoi, spune el în timp ce (int i = 17) 415 00:20:51,570 --> 00:20:54,230 printf ("Numele meu este Sam."); 416 00:20:54,230 --> 00:20:57,300 Deci, ce se întâmplă atunci când vom rula acest cod? 417 00:20:57,300 --> 00:21:00,340 E o eroare; ceea ce nu spune eroare? 418 00:21:00,340 --> 00:21:02,890 Să-l trage în sus și să vorbească despre asta. 419 00:21:02,890 --> 00:21:05,040 O eroare a avut loc, se spune. 420 00:21:05,040 --> 00:21:07,400 Să defilați în jos. 421 00:21:07,400 --> 00:21:09,460 Deci, ne-a dat această eroare, și a spus, 422 00:21:09,460 --> 00:21:12,690 "Hei, m-am așteptat o expresie." 423 00:21:12,690 --> 00:21:16,180 Asta e cam criptic. 424 00:21:19,160 --> 00:21:23,140 Da, așa exact - și, din nou, 425 00:21:23,140 --> 00:21:27,140 va fi un alt bug mai mici pe care le va prinde în doar o secundă. 426 00:21:27,140 --> 00:21:31,800 Dar acesta este un alt unul dintre acele lucruri ciudate terminologice, 427 00:21:31,800 --> 00:21:36,150 astfel încât această int i = 17 428 00:21:36,150 --> 00:21:39,290 nu este o expresie. 429 00:21:39,290 --> 00:21:41,220 Cum se pare ca se face este că e 430 00:21:41,220 --> 00:21:43,410 declararea unui număr întreg numit i 431 00:21:43,410 --> 00:21:45,540 și stabilirea-l la egal la 17 432 00:21:45,540 --> 00:21:48,780 sau, mai degrabă, punând în care 17 int am sunat. 433 00:21:50,560 --> 00:21:53,350 Și asta nu are sens 434 00:21:53,350 --> 00:21:55,790 în contextul acestei buclă în timp ce. 435 00:21:55,790 --> 00:21:58,190 Aceasta nu face sens, după cum vom vedea, 436 00:21:58,190 --> 00:22:01,250 în cadrul unei bucle pentru, deoarece pentru declarațiile bucla se începe 437 00:22:01,250 --> 00:22:05,800 cu faptul că pentru int i este egal cu ceva 438 00:22:05,800 --> 00:22:07,830 și merge mai departe. 439 00:22:07,830 --> 00:22:09,500 >> Deci, ai - 440 00:22:09,500 --> 00:22:12,630 repari ceva, bine. 441 00:22:12,630 --> 00:22:15,270 Aici se duce; minunat. 442 00:22:15,270 --> 00:22:17,920 Asa ca acum lucrurile arata un pic diferit. 443 00:22:17,920 --> 00:22:19,030 Un tânăr de lucrurile s-au schimbat. 444 00:22:19,030 --> 00:22:21,300 Poți să ne spui ce lucrurile s-au schimbat? 445 00:22:21,300 --> 00:22:24,950 >> Am scos int, deci nu e nici o declarație [neauzit] în loc de o misiune. 446 00:22:24,950 --> 00:22:28,770 Semnul un egal, am pus 2 semne egale, ceea ce înseamnă un egal. 447 00:22:28,770 --> 00:22:30,560 Minunat. 448 00:22:30,560 --> 00:22:33,320 Da, deci ce Sam a fost el scos int 449 00:22:33,320 --> 00:22:35,770 care a fost aici mai devreme, 450 00:22:35,770 --> 00:22:39,340 așa că, dacă am uita-te la asta - asta este ceea ce a fost mai devreme, a spus int, 451 00:22:39,340 --> 00:22:41,970 care a fost acesta declara - asa ca am scos de tip. 452 00:22:41,970 --> 00:22:44,710 Nu e int, char sir,, scurt, 453 00:22:44,710 --> 00:22:47,380 acestea sunt numite tipuri. 454 00:22:47,380 --> 00:22:49,510 Deci ai scos de tip 455 00:22:49,510 --> 00:22:51,580 și apoi anterior, 456 00:22:51,580 --> 00:22:54,190 el a avut doar un singur semnul egal 457 00:22:54,190 --> 00:22:57,300 și ceea ce a spus a fost problematică despre acest lucru a fost 458 00:22:57,300 --> 00:22:59,580 atunci când aveți un semnul egalității, 459 00:22:59,580 --> 00:23:01,780 asta e un operator de atribuire. 460 00:23:01,780 --> 00:23:04,930 Asta nu e de testare sau nu 2 lucruri sunt egale. 461 00:23:04,930 --> 00:23:07,920 Asta e de fapt ceva stabilirea egală cu ceva. 462 00:23:07,920 --> 00:23:11,110 Ne pune numarul 17 in variabila i. 463 00:23:11,110 --> 00:23:13,850 Deci, pentru a face acest tip de comparație, 464 00:23:13,850 --> 00:23:16,430 va trebui să utilizați dublu egal, 465 00:23:16,430 --> 00:23:19,640 care este un fel de un lucru ciudat 466 00:23:19,640 --> 00:23:22,760 dar este o eroare destul de comune. 467 00:23:23,980 --> 00:23:27,830 Deci, un alt lucru eu subliniez, dacă nu te superi, 468 00:23:27,830 --> 00:23:30,610 este faptul că, în 469 00:23:30,610 --> 00:23:33,210 Funcția noastră de aici, în principal int, 470 00:23:33,210 --> 00:23:36,740 vedeți că corpul nostru funcției 471 00:23:36,740 --> 00:23:39,810 este compensat din partea stângă 472 00:23:39,810 --> 00:23:42,400 de 4 spatii sau un tabulator. 473 00:23:42,400 --> 00:23:44,730 Motivul pentru care face acest lucru 474 00:23:44,730 --> 00:23:47,000 este doar pentru lizibilitate. 475 00:23:47,000 --> 00:23:51,620 După cum puteți vedea în buclă în timp ce lui Sam aici, 476 00:23:51,620 --> 00:23:53,120 el nu a liniuță, la toate, 477 00:23:53,120 --> 00:23:55,390 și care nu afectează funcționalitatea cod. 478 00:23:55,390 --> 00:23:57,860 Acesta va rula exact aceeași. 479 00:23:57,860 --> 00:24:00,950 >> Deci, de exemplu, dacă am ajuns până la partea de sus aici 480 00:24:00,950 --> 00:24:02,680 și apăsați butonul Joacă nostru, acesta va construi, 481 00:24:02,680 --> 00:24:04,470 acesta va rula, 482 00:24:04,470 --> 00:24:06,700 și ceea ce se va întâmpla? 483 00:24:06,700 --> 00:24:08,360 De ce nu-l mai spun de funcționare? 484 00:24:08,360 --> 00:24:10,560 >> Pentru că voi păstra repeta hi. 485 00:24:10,560 --> 00:24:12,900 Exact, și de ce nu-l repeta hi? 486 00:24:12,900 --> 00:24:15,850 Deoarece >> întregi nu se schimbă niciodată, așa că e întotdeauna 17. 487 00:24:15,850 --> 00:24:18,030 Da, exact, asa 488 00:24:18,030 --> 00:24:20,970 Să vedem, după ce - mi amintesc de numele tău din nou? 489 00:24:20,970 --> 00:24:24,020 Jimmy. Deci, Jimmy a spus că 490 00:24:24,020 --> 00:24:27,340 motivul pentru care acest repetă hi de peste si peste din nou 491 00:24:27,340 --> 00:24:30,510 se datorează faptului că această condiție este întotdeauna adevărat. 492 00:24:30,510 --> 00:24:33,270 Noi nu schimba valoarea lui i. 493 00:24:33,270 --> 00:24:36,170 Noi nu schimba conținutul a ceea ce este stocat în variabila. 494 00:24:36,170 --> 00:24:39,180 Deci, la acest moment avem această eroare, care 495 00:24:39,180 --> 00:24:42,170 programul a generat prea mult de ieșire, 496 00:24:42,170 --> 00:24:45,100 și dacă vom defila în jos și un fel de privire la ceea ce se întâmplă pe aici, 497 00:24:45,100 --> 00:24:49,160 puteți vedea că este hi, hi, hi, hi, hi, hi, hi tot drumul prin. 498 00:24:49,160 --> 00:24:51,200 Minunat. 499 00:24:51,200 --> 00:24:53,750 >> Deci, un fel de înapoi la punctul de plecare 500 00:24:53,750 --> 00:24:57,020 că având amprentei aici 501 00:24:57,020 --> 00:25:00,110 în corpul buclei în timp ce nu a afectat nimic. 502 00:25:00,110 --> 00:25:03,050 Programul a fugit încă foarte bine. 503 00:25:03,050 --> 00:25:06,790 De obicei pentru stilul bună - 504 00:25:06,790 --> 00:25:10,210 și acest lucru este ceva ce ne uităm la seturi problema ta - 505 00:25:10,210 --> 00:25:13,930 vă rugăm să liniuță acest lucru prin 4 spatii, pe care le puteți face 506 00:25:13,930 --> 00:25:16,440 apăsând tasta tabulator doar 507 00:25:16,440 --> 00:25:18,860 sau prin punerea manual în 4 spații tine. 508 00:25:21,880 --> 00:25:25,050 Rece, bine așa că hai să mergem înapoi și uită-te la 509 00:25:25,050 --> 00:25:30,460 Lui Alexandru do-timp. 510 00:25:30,460 --> 00:25:32,980 Doar >> având cam o mică problemă. 511 00:25:32,980 --> 00:25:34,390 Bine, hai să lucrăm și prin ea. 512 00:25:34,390 --> 00:25:36,400 E bine? 513 00:25:36,400 --> 00:25:37,430 Da >>. 514 00:25:37,430 --> 00:25:39,200 >> Bine, așa că aici vom merge. 515 00:25:39,200 --> 00:25:41,010 Acesta este codul pe care Alexandru a scris. 516 00:25:41,010 --> 00:25:43,410 Nu te duci de Alex - bine. 517 00:25:43,410 --> 00:25:46,380 Deci, aici e codul care Alex a scris. 518 00:25:46,380 --> 00:25:50,500 Deci, avem declarația noastră de principal chiar aici, 519 00:25:50,500 --> 00:25:54,410 și apoi ne-am luat acest variabila integer numit i 520 00:25:54,410 --> 00:25:57,320 fiind declarate chiar aici. 521 00:25:57,320 --> 00:26:01,060 Avem o declarație do 522 00:26:01,060 --> 00:26:04,600 și apoi din nou organismul cu aceste bretele, 523 00:26:04,600 --> 00:26:06,520 astfel încât acesta este trupul do-timp - 524 00:26:06,520 --> 00:26:09,210 permiteți-mi să zoom in pe acest lucru pentru că este mai ușor de citit - 525 00:26:09,210 --> 00:26:12,730 și în corp, noi încercăm să imprimați "acesta este trupul", 526 00:26:12,730 --> 00:26:14,300 i + +, 527 00:26:14,300 --> 00:26:17,710 incrementa astfel încât conținutul de i și face acest lucru 528 00:26:17,710 --> 00:26:19,470 până când am ajunge să fie de 3, 529 00:26:19,470 --> 00:26:22,440 și apoi se termină programul nostru. 530 00:26:22,440 --> 00:26:24,680 >> Deci, ce se întâmplă atunci când vom rula acest program? 531 00:26:24,680 --> 00:26:27,580 Am așteptat >> un identificator. 532 00:26:27,580 --> 00:26:32,070 Ok, deci construi, a alerga, eroare. 533 00:26:32,070 --> 00:26:34,820 Ce se întâmplă? 534 00:26:34,820 --> 00:26:37,060 Am defilați în jos aici, 535 00:26:37,060 --> 00:26:40,260 am obține acest lucru oarecum criptic cautati, 536 00:26:40,260 --> 00:26:43,930 de așteptat punct și virgulă după declarația de la nivel de top. 537 00:26:43,930 --> 00:26:46,620 Asta e cam ciudat. 538 00:26:46,620 --> 00:26:50,990 Are cineva o idee de ceea ce s-ar putea intampla? 539 00:26:53,080 --> 00:26:54,640 Cam ciudat, da. 540 00:26:54,640 --> 00:26:57,640 >> [Nu se aude] fie declarate în afara parantezelor? 541 00:26:57,640 --> 00:27:03,480 , Astfel că nu se aplică atunci când utilizați paranteze? 542 00:27:03,480 --> 00:27:07,390 Deci, el a declarat acest tip afara care paranteze? 543 00:27:09,670 --> 00:27:12,240 Oh, tipii ăștia - cu acolade? 544 00:27:12,240 --> 00:27:13,850 Da >>. 545 00:27:13,850 --> 00:27:15,310 Da, exact. 546 00:27:15,310 --> 00:27:17,120 Deci, se dovedește că 547 00:27:17,120 --> 00:27:21,550 nu se poate declara o variabila de fapt, chiar aici, la fel ca asta. 548 00:27:23,750 --> 00:27:26,690 Ce v-ar fi încercat să facă a fost - 549 00:27:26,690 --> 00:27:30,110 taie-l de acolo - 550 00:27:30,110 --> 00:27:34,330 Puteți fie să-l în acolade chiar aici 551 00:27:34,330 --> 00:27:37,400 sau o altă alternativă 552 00:27:37,400 --> 00:27:40,350 este de a pune-l complet în afara. 553 00:27:42,480 --> 00:27:46,610 Și astfel încât acestea - în funcție de locul în care ați pus de fapt, declarația 554 00:27:46,610 --> 00:27:48,550 de faptul că variabila integer, 555 00:27:48,550 --> 00:27:53,540 puteți obține 2 tipuri foarte diferite de variabile; 556 00:27:53,540 --> 00:27:55,100 atunci când e în afara principal, 557 00:27:55,100 --> 00:27:58,240 E ceea ce noi numim o variabila globala. 558 00:27:58,240 --> 00:28:00,070 E în afara domeniului de aplicare al oricărei funcții - 559 00:28:00,070 --> 00:28:03,420 nu e într-o funcție - 560 00:28:03,420 --> 00:28:07,050 întrucât, în cazul în care l-am pus în interiorul principal, 561 00:28:07,050 --> 00:28:10,000 ca aici, atunci se numește o variabilă locală, 562 00:28:10,000 --> 00:28:13,830 deoarece este local domeniul de aplicare al principal. 563 00:28:13,830 --> 00:28:16,720 Și vom vorbi un pic mai mult despre ceea ce diferențele sunt 564 00:28:16,720 --> 00:28:20,970 între cele 2 tipuri și de ce să utilizați diferite tipuri de variabile, 565 00:28:20,970 --> 00:28:23,040 dar pentru acum, 566 00:28:23,040 --> 00:28:25,070 puteți să vă păstrați doar toate variabilele locale, 567 00:28:25,070 --> 00:28:28,320 pentru că nu avem nici o nevoie de variabile globale. 568 00:28:28,320 --> 00:28:31,390 >> Ok, deci asta e un lucru chiar acolo. 569 00:28:31,390 --> 00:28:34,680 Să încercați să rulați din nou, să vedem ce se întâmplă. 570 00:28:37,420 --> 00:28:40,270 Run, obține o altă eroare. 571 00:28:40,270 --> 00:28:43,320 Mări într-un pic, ce avem? 572 00:28:45,110 --> 00:28:50,000 Primim această paranteză de așteptat după ce face / timp. 573 00:28:53,660 --> 00:28:55,260 Orice idei ce se întâmplă? Dan? 574 00:28:55,260 --> 00:28:58,880 Este >> timp, apoi paranteza si apoi - 575 00:28:58,880 --> 00:29:01,990 Nu știu dacă aveți nevoie pentru a redeclare int, 576 00:29:01,990 --> 00:29:04,980 dar face în timp ce (i <3). 577 00:29:04,980 --> 00:29:06,930 Exact, da. 578 00:29:06,930 --> 00:29:08,830 Deci, se dovedește că Dan e exact dreapta. 579 00:29:08,830 --> 00:29:11,230 Nu avem nevoie pentru a pune acest tip de aici din nou. 580 00:29:11,230 --> 00:29:14,440 Ne putem ucide, în loc de tip 581 00:29:14,440 --> 00:29:17,220 și de a face doar asta. 582 00:29:19,270 --> 00:29:21,640 Bine. 583 00:29:21,640 --> 00:29:24,950 Voi zoom înapoi, încercați să-l încă o dată. 584 00:29:26,360 --> 00:29:29,580 Uită-te la asta, se execută cu succes. 585 00:29:29,580 --> 00:29:33,260 Dacă vom defila în jos, "acesta este trupul" imprimat de 3 ori. 586 00:29:33,260 --> 00:29:35,820 Asta e destul de dulce. 587 00:29:35,820 --> 00:29:38,670 Bine făcut, bine făcut, băieți. 588 00:29:38,670 --> 00:29:41,080 Bine făcut. 589 00:29:41,080 --> 00:29:43,250 Cum această merge atât de departe? 590 00:29:43,250 --> 00:29:46,200 Ritm decent? 591 00:29:46,200 --> 00:29:49,200 Bine, bine. 592 00:29:49,200 --> 00:29:52,590 >> Deci, așa cum am un fel de înapoi la întrebarea inițială, 593 00:29:52,590 --> 00:29:55,430 ne - și acum, dacă vom vedea diferenta, 594 00:29:55,430 --> 00:29:58,240 veți vedea că, în această buclă do-timp, 595 00:29:58,240 --> 00:30:00,030 condiție vine ultima. 596 00:30:00,030 --> 00:30:02,530 Deci, ca computerul citește programul 597 00:30:02,530 --> 00:30:06,050 Deoarece programele C sunt executate fel de în această ordine secvențială, 598 00:30:06,050 --> 00:30:09,450 în cazul în care acestea literalmente începe cu prima linie de principal, 599 00:30:09,450 --> 00:30:13,450 și apoi executați linia 6, linia 7, linia 8, linia 9, 600 00:30:13,450 --> 00:30:16,150 linia 10, linia 11, 601 00:30:16,150 --> 00:30:18,440 toate chestiile astea în partea de sus dreapta aici 602 00:30:18,440 --> 00:30:20,020 este de gând să execute o dată 603 00:30:20,020 --> 00:30:23,350 înainte de a ne testa vreodată această condiție pentru a vedea 604 00:30:23,350 --> 00:30:26,240 dacă sunt sau nu - sau conținutul de i, mai degrabă - 605 00:30:26,240 --> 00:30:29,750 sunt mai mici decât numărul 3. 606 00:30:29,750 --> 00:30:33,300 Și numai dacă, odată ce vom ajunge la linia 12, 607 00:30:33,300 --> 00:30:36,260 conținutul de i sunt mai puțin de 3 608 00:30:36,260 --> 00:30:39,150 ne sari de fapt, înapoi până la linia 7 609 00:30:39,150 --> 00:30:41,140 și apoi repetați procesul, 610 00:30:41,140 --> 00:30:44,620 și apoi vom testa starea din nou și din nou și din nou. 611 00:30:44,620 --> 00:30:47,440 >> Astfel încât să putem să contrasteze acest 612 00:30:47,440 --> 00:30:50,240 cu - zoom înapoi, 613 00:30:50,240 --> 00:30:56,500 defilați în jos la versiunea lui Sam, 614 00:30:56,500 --> 00:31:00,760 ne vom uita la asta, ușor schimbat în așa fel încât să nu mai este o buclă infinită - 615 00:31:00,760 --> 00:31:03,570 în cazul în care, dacă am mări, 616 00:31:03,570 --> 00:31:06,300 vedem că, în acest program execute, 617 00:31:06,300 --> 00:31:09,120 se va declara prima int i, 618 00:31:09,120 --> 00:31:12,030 setat, conținutul de i fie la 0, 619 00:31:12,030 --> 00:31:15,820 și apoi lovește starea de buclă în timp ce primul, 620 00:31:15,820 --> 00:31:19,210 astfel încât, în acest caz, acest organism, această printf ("hi") și i + + 621 00:31:19,210 --> 00:31:21,630 nu va executa nici 622 00:31:21,630 --> 00:31:24,310 cu excepția cazului în i este de fapt mai mică sau egală cu 2. 623 00:31:24,310 --> 00:31:26,750 Deci, în cazul în care i este 3, de exemplu, 624 00:31:26,750 --> 00:31:28,840 dacă ne-am stabilit acest drept aici 625 00:31:28,840 --> 00:31:32,160 egală cu 4 - sau voi face 3, pentru că am spus 3 - 626 00:31:32,160 --> 00:31:34,890 și apoi rulați-l, 627 00:31:34,890 --> 00:31:38,320 că va construi, acesta va rula total bine, 628 00:31:38,320 --> 00:31:40,530 dar nu va imprima de fapt, nimic, 629 00:31:40,530 --> 00:31:43,030 deoarece nu a reușit acest test pentru primul caz. 630 00:31:44,780 --> 00:31:47,530 Deci, în clasă, am un fel de vorbit despre motivele pentru care aceste bucle do-timp 631 00:31:47,530 --> 00:31:49,800 sunt utile, uneori, 632 00:31:49,800 --> 00:31:53,140 și de ce ne-ar folosi, spre deosebire de o buclă în timp ce. 633 00:31:53,140 --> 00:31:56,450 >> Sunt acolo - nu voi avea nici o traduceri 634 00:31:56,450 --> 00:31:59,090 de ce un do-while ar putea fi mai util? 635 00:31:59,090 --> 00:32:02,560 >> Ei bine, eu cred că nu-buclele în timp ce este, dacă doriți introduse de utilizator, 636 00:32:02,560 --> 00:32:05,020 pentru că în acest fel le puteți lăsa 637 00:32:05,020 --> 00:32:07,780 a pus ceva în timp; dacă e corect, 638 00:32:07,780 --> 00:32:09,300 ne putem trece la restul programului, 639 00:32:09,300 --> 00:32:11,250 dar dacă nu este corectă, atunci vă păstrați pe determinând utilizatorul 640 00:32:11,250 --> 00:32:13,250 până când veți introduce de intrare dreapta. 641 00:32:13,250 --> 00:32:14,260 Da, exact - exact, 642 00:32:14,260 --> 00:32:16,840 astfel încât un do-while este util 643 00:32:16,840 --> 00:32:18,930 pentru că atunci când ia determinat pentru introduse de utilizator 644 00:32:18,930 --> 00:32:23,000 pentru că aveți nevoie pentru a obține intrarea utilizatorului înainte de a vă puteți verifica de fapt. 645 00:32:23,000 --> 00:32:27,330 Deci, în PSET 1, în PSET 2, 646 00:32:27,330 --> 00:32:29,650 în cazul în care sunteți determinat pentru introduse de utilizator foarte mult, 647 00:32:29,650 --> 00:32:31,200 asta e un lucru la îndemână pentru a utiliza 648 00:32:31,200 --> 00:32:33,740 spre deosebire de doar o buclă în timp ce simplu. 649 00:32:33,740 --> 00:32:36,780 Dacă utilizați o buclă în timp, puteți face același lucru - 650 00:32:36,780 --> 00:32:38,750 poti sa faci acelasi lucru cu o buclă în timp ce 651 00:32:38,750 --> 00:32:40,580 cum faci cu o buclă do-timp. 652 00:32:40,580 --> 00:32:43,380 Tu trebuie doar să aibă un fel de acest proces duplicat 653 00:32:43,380 --> 00:32:47,010 în cazul în care veți obține prima intrare și apoi începe bucla în timp ce. 654 00:32:47,010 --> 00:32:49,800 Întrucât un do-while, trebuie doar să-l scrie o dată 655 00:32:49,800 --> 00:32:52,430 si este un detergent foarte mult. 656 00:32:52,430 --> 00:32:54,650 >> Bine. 657 00:32:55,970 --> 00:32:57,330 Alte întrebări? 658 00:32:59,350 --> 00:33:01,380 Asigurați-simț? 659 00:33:01,380 --> 00:33:06,200 >> Retur 0 - asta e doar un fel de stand sau este -? 660 00:33:06,200 --> 00:33:08,960 Da, astfel încât să putem - 661 00:33:08,960 --> 00:33:11,960 ei bine, vom acoperi acest lucru un pic mai târziu 662 00:33:11,960 --> 00:33:13,290 dar se pare că 663 00:33:13,290 --> 00:33:15,720 această întoarcere 0 pe care am pus 664 00:33:15,720 --> 00:33:19,090 la sfârșitul principal tot timpul - 665 00:33:19,090 --> 00:33:21,980 poti lua cam la fel ca pe ceva ce facem 666 00:33:21,980 --> 00:33:24,930 pentru moment. 667 00:33:24,930 --> 00:33:28,860 Ceea ce am început să vorbim despre cu funcții 668 00:33:28,860 --> 00:33:31,600 un fel de la sfârșitul săptămânii trecute și apoi din nou în această săptămână 669 00:33:31,600 --> 00:33:33,550 este faptul că o funcție 670 00:33:33,550 --> 00:33:37,680 ia intrări care sunt aceste lucruri în cadrul paranteze; 671 00:33:37,680 --> 00:33:41,690 Acestea sunt 2 intrări, argumentele noastre sau parametri, 672 00:33:41,690 --> 00:33:44,540 ceea ce ei sunt, de asemenea chemat să funcționeze nostru principal, 673 00:33:44,540 --> 00:33:48,510 și apoi o funcție produce o putere 674 00:33:48,510 --> 00:33:51,290 pe care noi o numim o valoare de retur. 675 00:33:51,290 --> 00:33:56,260 Și valoarea returnata în cazul principală este aceasta int, 676 00:33:56,260 --> 00:33:58,320 acest număr întreg, 677 00:33:58,320 --> 00:34:01,160 și modul în care să vă spun o funcție, "Hei, asta este ceea ce de ieșire 678 00:34:01,160 --> 00:34:05,840 va fi, "este cu acest cuvânt" întoarcere ", 679 00:34:05,840 --> 00:34:07,960 acel cuvânt cheie, mai degrabă, 680 00:34:07,960 --> 00:34:11,000 și așa mai departe principal revenind 0 681 00:34:11,000 --> 00:34:13,389 sau principal scoate 0 682 00:34:13,389 --> 00:34:15,139 este standard în programe C 683 00:34:15,139 --> 00:34:18,110 pentru că se întoarce de la 0 principalele mijloace care 684 00:34:18,110 --> 00:34:21,600 "Hei, totul executat cu programul meu foarte bine." 685 00:34:21,600 --> 00:34:24,639 Dacă ar fi să afișezi altceva decât 0, 686 00:34:24,639 --> 00:34:27,440 cum ar fi 1, de exemplu, 687 00:34:27,440 --> 00:34:31,080 care este folosit pentru a spune cine a condus acest program de 688 00:34:31,080 --> 00:34:33,540 că ceva a mers prost. 689 00:34:35,739 --> 00:34:39,989 Deci, ca ne se implice mai mult cu lucruri pe semestru, 690 00:34:39,989 --> 00:34:42,670 dacă sunteți vreodată nevoie să spun, 691 00:34:42,670 --> 00:34:46,650 "Hopa, știi, ceva a mers în neregulă cu acest program," 692 00:34:46,650 --> 00:34:49,409 , mai degrabă decât având în accident de programul meu, vreau să notifice 693 00:34:49,409 --> 00:34:52,310 alergător de programul meu că ceva nu a mers bine, 694 00:34:52,310 --> 00:34:54,530 puteți utiliza valoarea de returnare, 695 00:34:54,530 --> 00:34:57,230 așa cum l-am numi, că nu e 0. 696 00:35:00,180 --> 00:35:02,240 >> Deci, vom acoperi faptul că un pic mai mult 697 00:35:02,240 --> 00:35:05,480 odată ce vom ajunge în funcții. 698 00:35:05,480 --> 00:35:09,030 Acest fel de logic? 699 00:35:09,030 --> 00:35:11,240 Bine. 700 00:35:11,240 --> 00:35:13,530 Funcțiile sunt un fel de bizar - 701 00:35:13,530 --> 00:35:17,270 Cred că pentru persoanele care au o mulțime de fundal matematica, 702 00:35:17,270 --> 00:35:20,100 este vorba de un pic mai ușor, 703 00:35:20,100 --> 00:35:22,540 mai ales dacă aveți un pic de fundal matematica mai abstract 704 00:35:22,540 --> 00:35:24,240 și v-ați obișnuit să vorbim despre funcții 705 00:35:24,240 --> 00:35:27,370 și tot ce fel de lucruri. 706 00:35:28,590 --> 00:35:30,610 Dar vom încerca să le acopere 707 00:35:30,610 --> 00:35:33,280 și du-te frumos și lent ca au venit. 708 00:35:34,730 --> 00:35:37,870 De asemenea, acest argc int întreg, 709 00:35:37,870 --> 00:35:41,090 char * argv [], 710 00:35:41,090 --> 00:35:44,960 pentru acum, puteți lua, de asemenea, că, în placa de cazan. 711 00:35:46,650 --> 00:35:49,050 Am început să acopere cele pic un pic în curs 712 00:35:49,050 --> 00:35:53,060 atunci când vorbim despre argumente care se trecut în programele de pe linia de comandă, 713 00:35:53,060 --> 00:35:55,700 dar în seturi de probleme și programelor dvs., 714 00:35:55,700 --> 00:35:58,760 E total bine doar pentru a scrie nule și păstrați-l simplu. 715 00:35:58,760 --> 00:36:01,490 Și ce înseamnă acest vid este faptul că 716 00:36:01,490 --> 00:36:04,630 "Hei, principal nu este de gând să accepte orice intrări; 717 00:36:04,630 --> 00:36:07,440 aceasta este doar un program de noi o să fugi. 718 00:36:07,440 --> 00:36:09,320 Noi nu vom da orice informații suplimentare 719 00:36:09,320 --> 00:36:12,420 de fiecare dată când l-am porni de funcționare. " 720 00:36:14,730 --> 00:36:16,600 Deci, pentru moment, puteți face acest lucru; 721 00:36:16,600 --> 00:36:19,710 puteți, de asemenea, omite chiar 0 retur 722 00:36:19,710 --> 00:36:22,650 la sfârșitul programelor de dvs. și ei vor alerga bine, 723 00:36:22,650 --> 00:36:26,150 dar eu recomand doar ca să țină inch 724 00:36:26,150 --> 00:36:28,320 În câteva săptămâni, vom începe să fel de 725 00:36:28,320 --> 00:36:31,340 trageți înapoi capacul un pic și să înțeleagă mai mult despre 726 00:36:31,340 --> 00:36:34,380 toate acele mici diferite piese în mișcare. 727 00:36:34,380 --> 00:36:38,160 >> În regulă, acum să vorbim despre a doua întrebare aici. 728 00:36:38,160 --> 00:36:43,190 Deci, ce înseamnă "identificator nedeclarat" indică, de obicei, 729 00:36:43,190 --> 00:36:46,040 în cazul în care scoase de zăngănit? 730 00:36:46,040 --> 00:36:49,290 Cred că ne-am fi văzut că deja astăzi. 731 00:36:51,170 --> 00:36:54,370 Poate cineva da o recapitulare a ceea ce inseamna? 732 00:36:54,370 --> 00:36:57,680 Să vedem, Kelly - unul din cele Kellys. 733 00:37:02,580 --> 00:37:05,300 Deci, >> - 734 00:37:05,300 --> 00:37:07,080 Da, ceea ce face - 735 00:37:07,080 --> 00:37:10,140 >> Cred că atunci când, la fel ca, nu declară variabilele și încercați să-l folosească. 736 00:37:10,140 --> 00:37:13,310 Da, exact, exact. 737 00:37:13,310 --> 00:37:15,250 Deci, dacă ați văzut vreodată această ieșire 738 00:37:15,250 --> 00:37:17,690 atunci când încercați să compilați și programul tău, 739 00:37:17,690 --> 00:37:19,470 la fel ca Kelly a spus, 740 00:37:19,470 --> 00:37:24,210 aceasta înseamnă că ai folosit o variabilă care nu ai declara, 741 00:37:24,210 --> 00:37:28,460 așa că, dacă mă duc înapoi la spațiul nostru, 742 00:37:28,460 --> 00:37:31,150 si eu fac ceva de genul 743 00:37:31,150 --> 00:37:34,800 printf ( 744 00:37:34,800 --> 00:37:38,260 "Hello% s") 745 00:37:40,070 --> 00:37:42,440 și să încerce și să completeze în% s 746 00:37:42,440 --> 00:37:45,640 cu o variabila care nu am declarat nicăieri 747 00:37:45,640 --> 00:37:48,330 și am încerca să-l executați, 748 00:37:48,330 --> 00:37:51,330 veți vedea ce ajung jos la acest din dreapta jos aici: 749 00:37:51,330 --> 00:37:54,010 "Utilizarea de identificator nedeclarate 's'"; 750 00:37:54,010 --> 00:37:57,710 Asta înseamnă că nu ați declara variabila. 751 00:37:57,710 --> 00:38:00,750 Același lucru se întâmplă în cazul în care 752 00:38:00,750 --> 00:38:05,240 aveți x și încercați și să stocați 7 în ea 753 00:38:05,240 --> 00:38:08,720 și nu am declara X. 754 00:38:08,720 --> 00:38:10,200 I a lua această eroare aceeași: 755 00:38:10,200 --> 00:38:13,480 "Utilizarea" x "identificator nedeclarat". 756 00:38:16,390 --> 00:38:18,250 >> În regulă, 757 00:38:18,250 --> 00:38:21,720 astfel Cipher Cezar, nu sunt foarte sigur, 758 00:38:21,720 --> 00:38:24,590 Voi lasa voi viziona acest tip scurt, de înțeles de ce, 759 00:38:24,590 --> 00:38:27,590 și, sperăm, după ce face probleme pentru această săptămână stabilite 760 00:38:27,590 --> 00:38:29,270 în cazul în care ați scrie de fapt, un cifru Cezar, vei înțelege un pic mai mult 761 00:38:29,270 --> 00:38:32,600 despre ce înseamnă a fi un sigur și nesigur - 762 00:38:36,180 --> 00:38:38,960 sau nu este sigur, cred - nesigură este ușor diferită. 763 00:38:40,560 --> 00:38:43,140 Un alt lucru era avem aceste alte întrebări aici 764 00:38:43,140 --> 00:38:45,470 despre funcții 765 00:38:45,470 --> 00:38:47,330 și ceea ce este o funcție, 766 00:38:47,330 --> 00:38:52,820 și am un fel de vorbit despre asta pe scurt atunci când am vorbit despre valorile de returnare; 767 00:38:52,820 --> 00:38:54,560 pentru cineva care a fost la prelegere, 768 00:38:54,560 --> 00:38:57,790 puteți recapitulare, care a fost la prelegeri azi? 769 00:38:57,790 --> 00:38:59,670 Bine. 770 00:39:01,210 --> 00:39:04,320 Să vedem, să aibă - poate cineva ne spune ce este o funcție? 771 00:39:04,320 --> 00:39:06,060 Kelly? 772 00:39:07,800 --> 00:39:11,260 >> Practic >> ceva ce recurge la ceva ce este scris în biblioteca în care este 773 00:39:11,260 --> 00:39:14,460 mai complicat acolo, si apoi scrii doar o formă scurtă a acesteia, 774 00:39:14,460 --> 00:39:17,360 asa ca te referi înapoi la bibliotecă, utilizând 775 00:39:17,360 --> 00:39:19,650 tot ce cod lung și [neauzit]. 776 00:39:19,650 --> 00:39:22,680 Da, exact, iar apoi să adăugați ceva la asta? 777 00:39:22,680 --> 00:39:27,050 >> Da, cred că la asta ca fiind similar cu conceptul de o formulă matematică, în 778 00:39:27,050 --> 00:39:30,130 în cazul în care ați scrie doar o formulă și apoi puteți conecta variabile în 779 00:39:30,130 --> 00:39:32,660 și asta e ceea ce o funcție este [neauzit]. 780 00:39:32,660 --> 00:39:35,390 >> Da, așa că am luat o pereche de răspunsuri aici 781 00:39:35,390 --> 00:39:38,080 că sunt atât foarte bine si chiar pe. 782 00:39:38,080 --> 00:39:43,040 Nu e referindu-se la cod care a fost scrisă în bibliotecă undeva 783 00:39:43,040 --> 00:39:45,390 care este mult mai complicat 784 00:39:45,390 --> 00:39:47,130 și apoi puteți recurge la acest cod 785 00:39:47,130 --> 00:39:50,480 și utilizeze în mod efectiv de scris doar forma scurta a acesteia - 786 00:39:50,480 --> 00:39:54,060 sau, mai degrabă, numele său - 787 00:39:54,060 --> 00:39:57,590 și apoi există, de asemenea, această comparație cu o formulă matematică, în 788 00:39:57,590 --> 00:40:00,400 sau fizica, tot ce fel de lucruri 789 00:40:00,400 --> 00:40:02,980 în cazul în care aveți o formulă 790 00:40:02,980 --> 00:40:05,690 și vă puteți conecta apoi în 791 00:40:05,690 --> 00:40:08,100 variabilele pentru care formula 792 00:40:08,100 --> 00:40:11,130 pentru a ajunge apoi rezultatul formulei, 793 00:40:11,130 --> 00:40:14,580 deci te gândești la asta ca la fel ca ecuația pătratică. 794 00:40:14,580 --> 00:40:17,690 Imaginați-vă dacă, mai degrabă decât a fi nevoie să învețe despre 795 00:40:17,690 --> 00:40:21,310 ce formula pătratică este în clasa de matematică, 796 00:40:21,310 --> 00:40:24,610 ai avut doar un program de calculator mic care a făcut-o pentru tine. 797 00:40:24,610 --> 00:40:28,930 Credeți utilizarea programelor de calculator cineva în clase de matematica in liceu? 798 00:40:28,930 --> 00:40:31,020 Da, clase de fizica? 799 00:40:31,020 --> 00:40:34,670 În cazul în care vă pot spune doar, "Hei, formula pătratică. 800 00:40:34,670 --> 00:40:37,740 Acestea sunt variabilele care doresc să de intrare. 801 00:40:37,740 --> 00:40:40,250 Acum, dă-mi un răspuns. " 802 00:40:40,250 --> 00:40:42,170 Asta e un fel de ceea ce este o funcție. 803 00:40:42,170 --> 00:40:44,850 E o modalitate pentru noi de a 804 00:40:44,850 --> 00:40:47,720 un fel de scriere, cum ar fi un mic program mic sub 805 00:40:47,720 --> 00:40:51,700 în cadrul programului nostru de mare 806 00:40:51,700 --> 00:40:55,090 și-l utilizați de peste si peste din nou 807 00:40:55,090 --> 00:40:58,380 astfel încât să nu trebuie să copiați și să inserați codul, 808 00:40:58,380 --> 00:41:04,220 putem da intrari diferite și obțineți rezultate diferite, 809 00:41:04,220 --> 00:41:07,090 e super la îndemână 810 00:41:07,090 --> 00:41:11,420 atunci când sunteți încercarea de a scrie programe diferite la momente diferite. 811 00:41:11,420 --> 00:41:14,580 >> Deci, de exemplu, o funcție pe care am fost folosind peste si peste si peste din nou 812 00:41:14,580 --> 00:41:17,310 de-a lungul cursului este printf. 813 00:41:17,310 --> 00:41:19,680 Printf este ea însăși o funcție 814 00:41:19,680 --> 00:41:23,360 și se pare că este de fapt o destul de lung și complicat, 815 00:41:23,360 --> 00:41:26,420 urât în ​​căutarea, funcționează pentru a scrie. 816 00:41:26,420 --> 00:41:29,590 Deci, la fel de simplu precum pare la noi 817 00:41:29,590 --> 00:41:31,810 pentru a imprima lucruri pentru a ecran, 818 00:41:31,810 --> 00:41:34,820 pentru că suntem cu toții de făcut doar că, la începutul secțiunii de astăzi, 819 00:41:34,820 --> 00:41:36,870 se dovedește că de fapt, știi, 820 00:41:36,870 --> 00:41:39,900 un cuplu bun sute de linii de cod. 821 00:41:42,030 --> 00:41:45,620 Nu e ceva ce mi-aș dori vreodată să scriu, pentru că, 822 00:41:45,620 --> 00:41:47,480 dar vom ajunge să-l folosească în fiecare zi, că e un fel de misto, 823 00:41:47,480 --> 00:41:49,020 astfel vom ajunge să-l împărtășească unul cu celălalt, 824 00:41:49,020 --> 00:41:51,790 cu diferite programe, 825 00:41:51,790 --> 00:41:54,520 deci vom fi mai scufundări în funcții; 826 00:41:54,520 --> 00:41:56,090 pentru moment, nu suntem - 827 00:41:56,090 --> 00:41:59,150 singura funcție vom fi scris este principal. 828 00:41:59,150 --> 00:42:01,570 Principal în sine este, de asemenea, o funcție, 829 00:42:01,570 --> 00:42:04,270 și puteți vedea că are producția, 830 00:42:04,270 --> 00:42:06,610 intrările sale, cum ar fi despre care am vorbit, 831 00:42:06,610 --> 00:42:08,930 și apoi numele său, care este principalul. 832 00:42:08,930 --> 00:42:11,800 Principal este un fel de - este o funcție specială acolo. 833 00:42:11,800 --> 00:42:14,800 În programul tău C, trebuie să existe o funcție principală, 834 00:42:14,800 --> 00:42:17,900 și așa mai departe de acum, am cam scris omis 835 00:42:17,900 --> 00:42:21,400 prototip, sau declarația de, principale. 836 00:42:21,400 --> 00:42:23,050 Am dat fiind faptul că pentru tine, 837 00:42:23,050 --> 00:42:25,650 si tocmai am avut veți completa în natură a matrițelor. 838 00:42:25,650 --> 00:42:29,120 >> Deci, pentru >> set de doua problemă, nu avem nevoie să 839 00:42:29,120 --> 00:42:31,350 scrie-l în funcția de secunde? 840 00:42:31,350 --> 00:42:34,200 Eu nu cred acest lucru. 841 00:42:34,200 --> 00:42:37,600 Cred că totul e aici. 842 00:42:37,600 --> 00:42:41,710 Da, așa Cezar Cipher, 843 00:42:41,710 --> 00:42:45,000 nu trebuie sa, aceasta nu arata ca, 844 00:42:48,740 --> 00:42:53,150 și Vigenere, tu nu fie, 845 00:42:53,150 --> 00:42:56,400 așa - și se pare că nu au de fapt niciodată să scrie 846 00:42:56,400 --> 00:42:58,250 o functie, nu? 847 00:42:58,250 --> 00:43:01,950 Ai sunat pune întotdeauna toate codului în cadrul principal, 848 00:43:01,950 --> 00:43:04,500 și mulți programatori face asta. 849 00:43:04,500 --> 00:43:07,130 Așa cum am merge mai departe, 850 00:43:07,130 --> 00:43:09,480 vom începe introducerea funcții ca o modalitate de 851 00:43:09,480 --> 00:43:11,530 pentru a curăța codul, 852 00:43:11,530 --> 00:43:13,380 pentru a face mai elegant, 853 00:43:13,380 --> 00:43:16,890 în cazul în care aveți sarcini - un fel de ca și atunci când am vorbit despre bucle, 854 00:43:16,890 --> 00:43:20,400 cum, uneori, există lucruri pe care doriți să le faci din nou și din nou și din nou, 855 00:43:20,400 --> 00:43:23,510 și aveți un fel de mod naiv - 856 00:43:23,510 --> 00:43:26,360 sau ceea ce numim adesea "om de paie" soluție, 857 00:43:26,360 --> 00:43:29,390 este de a copia și lipi doar peste si peste din nou - 858 00:43:29,390 --> 00:43:31,000 poti sa faci acelasi lucru cu funcții în cazul în care copiați și lipiți doar 859 00:43:31,000 --> 00:43:33,360 același cod de peste si peste, din nou, 860 00:43:33,360 --> 00:43:35,750 dar că bloats codul - 861 00:43:35,750 --> 00:43:38,550 se termină în sus codul dvs. de a face foarte mult timp - 862 00:43:38,550 --> 00:43:41,550 și, de asemenea, devine un pic confuz, 863 00:43:41,550 --> 00:43:43,470 și atunci înseamnă că nu sunt în măsură să-mi placă - 864 00:43:43,470 --> 00:43:45,250 dacă vrei vreodată să utilizați acest cod din nou într-un alt program, 865 00:43:45,250 --> 00:43:48,610 te, de asemenea, blocat copierea și lipirea-l din nou, 866 00:43:48,610 --> 00:43:51,170 astfel unul dintre lucrurile pe care le vom vorbi despre este 867 00:43:51,170 --> 00:43:54,960 un fel de design și stil de programele, 868 00:43:54,960 --> 00:43:57,010 și așa că atunci când are sens să fel de 869 00:43:57,010 --> 00:43:59,800 Pachetul ceva și a pus-o ca o funcție separată, 870 00:43:59,800 --> 00:44:02,080 vă încurajăm să faci asta, 871 00:44:02,080 --> 00:44:04,700 și că este ceva care, din nou, 872 00:44:04,700 --> 00:44:07,790 nu e nici o regulă greu și rapid. 873 00:44:07,790 --> 00:44:11,540 Noi foarte rar spunem că trebuie să scrie o funcție numită aceasta, 874 00:44:12,870 --> 00:44:16,320 dar e mai mult de unul din acele lucruri pe care le dezvolta doar în timp 875 00:44:16,320 --> 00:44:19,470 cum scrii mai multe programe și mai mult. 876 00:44:21,940 --> 00:44:24,790 >> Orice mai multe întrebări? 877 00:44:26,340 --> 00:44:30,610 Bine, asa ca hai sa acum 878 00:44:30,610 --> 00:44:34,750 Du-te înapoi până la tipul ăsta de aici, 879 00:44:34,750 --> 00:44:37,800 așa că eu sunt încă în această secțiune de întrebări. 880 00:44:37,800 --> 00:44:39,900 Am vorbit despre toate acestea diferite, 881 00:44:39,900 --> 00:44:42,050 ceea ce este o funcție, de ce să scrie funcții, 882 00:44:42,050 --> 00:44:44,700 atunci puteți să copiați și să lipiți? 883 00:44:44,700 --> 00:44:47,700 Sperăm că v-am convins că a scrie funcții este un lucru bun. 884 00:44:47,700 --> 00:44:50,870 Deci, acum să trecem la acest program MySpace, 885 00:44:50,870 --> 00:44:53,080 și vom petrece un pic de timp face acest lucru. 886 00:44:54,600 --> 00:44:56,480 >> Deci, să vedem, 887 00:44:56,480 --> 00:45:00,230 Am pe cineva pot citit asta pentru mine? 888 00:45:02,640 --> 00:45:04,660 Hai să Mikhaila - vă va citi asta pentru noi? 889 00:45:07,660 --> 00:45:08,890 Vrei să spui >> înapoi, atunci când MySpace - 890 00:45:08,890 --> 00:45:10,920 Pe vremea când MySpace a fost cool. 891 00:45:10,920 --> 00:45:12,070 >> "Pe vremea când era MySpace rece, 892 00:45:12,070 --> 00:45:14,900 totul a fost furia la tipul de acest gen. 893 00:45:14,900 --> 00:45:17,320 Poate că încă mai este? Nu sunt foarte sigur. 894 00:45:17,320 --> 00:45:19,990 În orice caz, de a folosi aparatul CS50, 895 00:45:19,990 --> 00:45:22,600 CS50 Run, sau CS50 Spatii, 896 00:45:22,600 --> 00:45:25,370 scrie un program care solicită utilizatorului un mesaj 897 00:45:25,370 --> 00:45:29,350 și scoate apoi mesajul cu prima scrisoare capitalizate, 898 00:45:29,350 --> 00:45:31,800 cu toate celelalte litere, în caz alternativ, 899 00:45:31,800 --> 00:45:34,010 ca pe un exemplu de ieșire de mai jos, 900 00:45:34,010 --> 00:45:37,060 Textul boldfaced în care reprezintă o parte de intrare utilizatorului. 901 00:45:37,060 --> 00:45:39,800 Pentru simplitate, se poate presupune că utilizatorul 902 00:45:39,800 --> 00:45:42,810 va numai litere mici și spații de intrare. 903 00:45:42,810 --> 00:45:45,900 Luați în considerare această problemă o oportunitate de a practica; 904 00:45:45,900 --> 00:45:48,640 nu vi se va cere să prezinte acest program. " 905 00:45:48,640 --> 00:45:51,640 >> Minunat, mulțumesc. 906 00:45:51,640 --> 00:45:54,750 Deci, ca Mikhaila spus, 907 00:45:54,750 --> 00:45:58,850 vom scrie un program care MySpaces codul. 908 00:45:58,850 --> 00:46:02,230 Deci, am oricare dintre voi folosesc MySpace? 909 00:46:02,230 --> 00:46:04,100 Oricare dintre voi aveți conturi MySpace? 910 00:46:04,100 --> 00:46:05,920 Oh, da, da! 911 00:46:05,920 --> 00:46:08,300 A fost destul de cool. 912 00:46:08,300 --> 00:46:09,950 [Râsete] 913 00:46:09,950 --> 00:46:12,060 Știu. 914 00:46:12,060 --> 00:46:14,500 Dating mine. 915 00:46:15,490 --> 00:46:18,300 Deci, ceea ce încercăm să facem este scrie un program 916 00:46:18,300 --> 00:46:21,110 care trece prin 917 00:46:21,110 --> 00:46:24,490 și valorifică prima literă 918 00:46:24,490 --> 00:46:27,140 și apoi, ulterior, la fiecare literă - 919 00:46:27,140 --> 00:46:29,350 sau orice altă scrisoare, ulterior, îmi pare rău. 920 00:46:29,350 --> 00:46:32,910 >> Deci - și puteți vedea în acest exemplu, 921 00:46:32,910 --> 00:46:35,260 acest lucru este modul în care vom rula programul, 922 00:46:35,260 --> 00:46:38,780 și astfel aceasta este doar spune, "Nu mai avem un program numit a.out. 923 00:46:41,490 --> 00:46:44,630 Intrare pe care am de gând să dându-i 924 00:46:44,630 --> 00:46:47,090 este de gând să vi se solicite. 925 00:46:47,090 --> 00:46:51,150 Nu vom furniza de intrare de pe linia de comandă. " 926 00:46:51,150 --> 00:46:54,100 Dacă ați fost în urma tuturor prelegeri 927 00:46:54,100 --> 00:46:56,710 iar auzirea despre argumentele de linie de comandă, 928 00:46:57,810 --> 00:47:00,080 asta e un fel de unde cei - care sintaxa Funky 929 00:47:00,080 --> 00:47:04,530 la principala vine cu argc int, toate lucrurile astea, 930 00:47:04,530 --> 00:47:07,630 așa că aici nu suntem folosind ca, nu ne-a face cu nimic din toate astea. 931 00:47:09,400 --> 00:47:12,650 Suntem doar să obține acest dactilografiată de către utilizator, 932 00:47:12,650 --> 00:47:15,700 și apoi această linie a doua cu capitalizare Funky 933 00:47:15,700 --> 00:47:18,550 este ceea ce ne dorim programul nostru de la ieșire. 934 00:47:19,790 --> 00:47:22,860 >> Deci, mai degrabă decât folosind aparatul sau Run, vom folosi spațiile, 935 00:47:22,860 --> 00:47:25,360 pentru ca avem Spatii, 936 00:47:25,360 --> 00:47:28,640 și, deci, dacă voi ar fi 937 00:47:28,640 --> 00:47:32,380 obtine codul tau sa arate ceva de genul asta, 938 00:47:32,380 --> 00:47:35,930 așa că am de gând să salveze această revizuire 939 00:47:35,930 --> 00:47:38,390 doar ca ai placa cazanului chiar aici 940 00:47:38,390 --> 00:47:42,840 care arata ca aceasta, int main (void), nimic în ea. 941 00:47:44,480 --> 00:47:48,460 De fapt, ceea ce vom face este că vom șterge doar totul împreună. 942 00:47:48,460 --> 00:47:50,330 Ne dorim o tabula rasa, 943 00:47:50,330 --> 00:47:52,470 pentru că nu vom începe să scrie cod; 944 00:47:52,470 --> 00:47:55,380 mai degrabă, vom încerca scris unele pseudocod 945 00:47:55,380 --> 00:47:58,580 care de fapt înseamnă doar că vom scrie ceva ce nu e codul 946 00:47:58,580 --> 00:48:01,010 acest tip de descrie ceea ce vrem să facem, 947 00:48:01,010 --> 00:48:05,180 cam ca David a făcut în prima zi de curs, 948 00:48:05,180 --> 00:48:08,310 sau cred că a fost a doua zi de curs atunci când a făcut toată demo șosete. 949 00:48:08,310 --> 00:48:10,990 Voi aminti că - văzând șosete? 950 00:48:10,990 --> 00:48:13,300 Iosif era acolo un fel de tastarea în limba engleză? 951 00:48:13,300 --> 00:48:16,300 Deci, o să facem același lucru. 952 00:48:16,300 --> 00:48:18,380 >> Asa ca atunci cand am începeți să scrieți pseudocod, 953 00:48:18,380 --> 00:48:22,640 Îmi place să încep prin a uita la ceea ce de intrare este de gând să fie. 954 00:48:22,640 --> 00:48:24,950 Și-mi face un caz eșantion, 955 00:48:24,950 --> 00:48:28,780 așa cum ar fi "thanks for the add!" 956 00:48:35,030 --> 00:48:38,010 Și apoi scriu ce vreau, de asemenea, de ieșire să fie, 957 00:48:38,010 --> 00:48:42,210 care în acest caz este ceva de genul asta. 958 00:48:53,790 --> 00:48:56,050 Și asta îmi dă un fel de un loc bun, cum ar fi, încep să cred despre, 959 00:48:56,050 --> 00:48:59,730 "Bine, vreau să iau linia 1 960 00:48:59,730 --> 00:49:03,560 și vreau să-l transforme într-linia 2, " 961 00:49:03,560 --> 00:49:06,570 și că un fel de ghid ajută gândirea mea. 962 00:49:06,570 --> 00:49:09,990 Acesta este un loc bun pentru a începe. 963 00:49:09,990 --> 00:49:12,190 Un alt mod de a gândi, de asemenea, așa cum am cam muta pe 964 00:49:12,190 --> 00:49:15,020 și în timp ce face acest lucru în programele proprii, este de a 965 00:49:15,020 --> 00:49:18,530 gândiți ce fel de cazuri sunt la muchie la asta? 966 00:49:18,530 --> 00:49:20,740 Ce sunt un fel de scenarii ciudate? 967 00:49:20,740 --> 00:49:23,660 Care sunt intrări ciudate pe care le-ar putea obține? 968 00:49:23,660 --> 00:49:26,550 Și ce ar trebui să arate ca și cum aceste realizări? 969 00:49:26,550 --> 00:49:29,670 De exemplu, o ciudat de intrare 970 00:49:29,670 --> 00:49:33,200 ar fi aceasta, 971 00:49:33,200 --> 00:49:35,630 crearea de absolut nimic, 972 00:49:35,630 --> 00:49:37,840 ca ceea ce ar trebui să ne transmite în acest caz? 973 00:49:37,840 --> 00:49:40,530 Ceva vrem să ne gândim, de asemenea. 974 00:49:40,530 --> 00:49:44,450 >> Deci, doar ca o întrebare, 975 00:49:44,450 --> 00:49:46,870 ceea ce s-ar putea să vrem de ieșire? 976 00:49:46,870 --> 00:49:50,740 Dacă nu vom lua nicio intrare, la toate, ceea ce ar trebui să fie programul nostru scoate? 977 00:49:53,740 --> 00:49:54,860 Nimic >>. 978 00:49:54,860 --> 00:49:57,340 Nimic? Sună grozav. 979 00:49:57,340 --> 00:49:59,280 Așa că vrem să ne asigurăm că nu scrii nimic 980 00:49:59,280 --> 00:50:01,500 daca nu primim nimic inch 981 00:50:01,500 --> 00:50:04,320 Mișto. Bine. 982 00:50:04,320 --> 00:50:07,370 Astfel 983 00:50:07,370 --> 00:50:09,380 Am de gând să apeleze la un cuplu de oameni ca trecem prin 984 00:50:09,380 --> 00:50:12,790 și dau doar din ceea ce fel de algoritm general este 985 00:50:12,790 --> 00:50:15,250 și vom începe lucrul fel prin asta împreună. 986 00:50:16,240 --> 00:50:19,710 >> Deci, să vedem. Missy. 987 00:50:19,710 --> 00:50:21,220 Cum crezi că ne-am incepe? 988 00:50:21,220 --> 00:50:24,830 Ceea ce ar fi un loc bun pentru a începe aici 989 00:50:24,830 --> 00:50:27,900 dacă dorim să se transforme, să zicem, linia 1 990 00:50:27,900 --> 00:50:29,440 în linia 2? 991 00:50:29,440 --> 00:50:32,650 Poți fel de doar să-mi explicați, în limba engleză, ceea ce te gândești? 992 00:50:32,650 --> 00:50:34,770 Nu-ți face griji cod. 993 00:50:34,770 --> 00:50:38,250 Lucru >> În primul rând aș face ar fi să 994 00:50:38,250 --> 00:50:41,170 un fel de directă utilizatorului sa le spui ce vrei. 995 00:50:41,170 --> 00:50:44,730 Ok, deci, să zicem, 996 00:50:44,730 --> 00:50:47,450 "Hei, ghidul. Vreau 997 00:50:47,450 --> 00:50:50,560 un șir "- minunat. 998 00:50:50,560 --> 00:50:52,990 Deci, hai sa scriu asta. 999 00:50:52,990 --> 00:50:56,140 Prompt de utilizator pentru un sir. 1000 00:50:56,140 --> 00:50:59,270 Asta sună ca un început bun. 1001 00:51:03,920 --> 00:51:06,460 Bine. 1002 00:51:06,460 --> 00:51:09,750 Să cerem Kelly Ren de data asta. 1003 00:51:09,750 --> 00:51:11,580 Ceea ce am vrea apoi să facă în continuare? 1004 00:51:11,580 --> 00:51:14,220 Ce e un fel de lângă noi -? 1005 00:51:14,220 --> 00:51:18,080 Colecta >> de intrare a acestora și depozitați-l ca o variabilă. 1006 00:51:18,080 --> 00:51:20,470 Mare. 1007 00:51:20,470 --> 00:51:24,280 Colecta Deci șir, 1008 00:51:25,450 --> 00:51:27,880 depozitați-l într-o variabilă. 1009 00:51:34,840 --> 00:51:36,460 Deci, este ceva special vrem să facem aici? 1010 00:51:36,460 --> 00:51:39,700 Nu vrem să verificați de intrare a acestora 1011 00:51:39,700 --> 00:51:42,260 înainte de a -? 1012 00:51:42,260 --> 00:51:43,790 Da >>. 1013 00:51:43,790 --> 00:51:46,330 Ce am putea dori pentru a verifica? 1014 00:51:46,330 --> 00:51:48,980 Ei bine >>, ai spus că nu trebuie să verifice dacă e un număr, nu? 1015 00:51:48,980 --> 00:51:52,400 Pentru că vom presupune că e cu litere mici? 1016 00:51:52,400 --> 00:51:55,650 Da. 1017 00:51:56,380 --> 00:51:58,920 >> Deci, se dovedește că - da. 1018 00:51:58,920 --> 00:52:01,850 Deci, getString este garantat pentru a reveni ne un șir. 1019 00:52:01,850 --> 00:52:05,050 Acesta nu va returna un număr de la noi sau ceva de genul asta. 1020 00:52:05,050 --> 00:52:09,140 S-ar putea să fie caractere numerice în șir că, deși. 1021 00:52:09,140 --> 00:52:13,460 Iar cei, putem ignora așa cum am făcut de capitalizare. 1022 00:52:13,460 --> 00:52:16,620 Dar un șir gol este total bine, 1023 00:52:16,620 --> 00:52:19,900 așa caz chiar aici pe linia 4 și 5, 1024 00:52:19,900 --> 00:52:22,020 Bine, în cazul în care nu există nici o intrare, 1025 00:52:22,020 --> 00:52:25,190 si am pus nimic ca producția noastră. 1026 00:52:25,190 --> 00:52:28,730 Noi nu trebuie să vă faceți griji despre a face-vă că nu e ceva în șir 1027 00:52:28,730 --> 00:52:31,840 sau că șirul este de cel puțin 4 caractere; 1028 00:52:31,840 --> 00:52:34,190 ceva este bine. 1029 00:52:34,190 --> 00:52:38,270 Deci, acest lucru este în contrast, de exemplu, la fel ca în programele penny pe care le-a scris 1030 00:52:38,270 --> 00:52:42,340 în cazul în care ați avut să vă asigurați că au fost obtinerea non-negative numere; 1031 00:52:42,340 --> 00:52:46,430 că a trebuit să vă asigurați că ați fost obtinerea numărul corect de zile într-o lună. 1032 00:52:46,430 --> 00:52:49,630 Și cum voi face asta? 1033 00:52:49,630 --> 00:52:51,470 Cum ti-ar face acest test? 1034 00:52:51,470 --> 00:52:54,090 Ce-care vă solicită să utilizați? 1035 00:52:54,090 --> 00:52:55,650 >> Do-în timp ce buclele. 1036 00:52:55,650 --> 00:53:00,840 Do-in timp ce buclele; alte tipuri de bucle, de asemenea, da. 1037 00:53:02,190 --> 00:53:04,520 Deci, se dovedește că nu avem de a utiliza o buclă în acest caz, 1038 00:53:04,520 --> 00:53:07,360 atunci când suntem determinat de un șir de caractere, care este un fel de frumos. 1039 00:53:08,280 --> 00:53:10,620 >> În regulă, se deplasează pe. 1040 00:53:12,410 --> 00:53:14,270 Deci, Stella. 1041 00:53:14,270 --> 00:53:17,530 Poți să ne spui un pic despre ceea ce ar trebui să facem în continuare? 1042 00:53:17,530 --> 00:53:20,270 Deci, acum avem șir, ne-am luat-o stocată într-o variabilă; 1043 00:53:20,270 --> 00:53:23,360 ceea ce avem nevoie pentru a face cu șirul? 1044 00:53:26,790 --> 00:53:33,530 Trebuie să >> - 1045 00:53:33,530 --> 00:53:36,550 identifică 2 - 1046 00:53:36,550 --> 00:53:39,290 Da, spun doar în limba engleză, asta e minunat. 1047 00:53:39,290 --> 00:53:42,670 Identificarea >> a [] fără sunet capitale - sau, cu majuscule. 1048 00:53:44,420 --> 00:53:48,130 Da, deci ai identifica pe cele care sunt scrise cu majuscule și minuscule. 1049 00:53:50,020 --> 00:53:54,180 Noi nu putem mari sau mici le până când ne-am identificat care sunt acestea. 1050 00:54:03,790 --> 00:54:06,350 Deci, vom pune asta aici. 1051 00:54:06,350 --> 00:54:10,210 >> Deci, doar gandindu-se acest proces, 1052 00:54:10,210 --> 00:54:13,200 cum facem această identificare? 1053 00:54:13,200 --> 00:54:15,050 Știi, Dan? 1054 00:54:15,050 --> 00:54:18,120 Un fel de ceea ce am - ceea ce ne-ar instrument trebuie să folosim din setul de instrumente noastre? 1055 00:54:18,120 --> 00:54:22,500 Aș >> pus-o în cumva în matrice sau ca un fiecare linie 1056 00:54:22,500 --> 00:54:24,240 este propria sa casetă mică, 1057 00:54:24,240 --> 00:54:27,240 și majuscule apoi de acolo sau nu. 1058 00:54:27,240 --> 00:54:30,440 Ok, deci un instrument putem folosi este o matrice. 1059 00:54:30,440 --> 00:54:33,760 Ce trebuie să privim puțin în șir, 1060 00:54:33,760 --> 00:54:36,680 deși, să ne dăm seama - a trebuit sa se uite la caracterele. 1061 00:54:36,680 --> 00:54:40,890 >> Deci ai să te uiți la lungimea șirului? 1062 00:54:40,890 --> 00:54:43,880 Da, astfel o parte din care este obtinerea lungimea șirului. 1063 00:54:50,450 --> 00:54:54,150 Doar din curiozitate, ce vom folosi pentru a obține lungimea unui șir? 1064 00:54:54,150 --> 00:54:58,080 Strlen >>? 1065 00:54:58,080 --> 00:55:02,870 Da, strlen, noi numim acest "strlen" 1066 00:55:04,180 --> 00:55:08,620 Toate aceste funcții șir, deci strlen este o funcție, 1067 00:55:08,620 --> 00:55:10,670 și e foarte la îndemână, pentru că putem folosi pentru a spune doar, 1068 00:55:10,670 --> 00:55:13,430 Hei, strlen: Iată un șir de caractere, spune-mi cat timp este. 1069 00:55:13,430 --> 00:55:17,350 În prelegerea de astăzi, David a vorbit foarte mult despre modul în care este pusă în aplicare strlen, 1070 00:55:17,350 --> 00:55:20,370 ceea ce se întâmplă de fapt în spatele scenei. 1071 00:55:20,370 --> 00:55:25,450 Dar aceasta este una dintre cele foarte la îndemână super-. 1072 00:55:25,450 --> 00:55:29,170 Există altele care sunt, de asemenea, în biblioteca șir, 1073 00:55:29,170 --> 00:55:34,690 cum ar fi strcmp, care este scris "strcmp", 1074 00:55:34,690 --> 00:55:38,010 care este folosit pentru a compara șirurile reciproc. 1075 00:55:41,220 --> 00:55:45,020 Altele va folosi ca strstr, 1076 00:55:45,020 --> 00:55:48,770 care este bun pentru a găsi șiruri sub și așa mai departe. 1077 00:55:48,770 --> 00:55:53,380 Pentru cea mai mare parte, acestea toate încep cu str. si apoi du-te pentru a fi altceva. 1078 00:55:53,380 --> 00:55:57,080 Motivul pentru care nu scrie ca de fapt le șir și așa mai departe 1079 00:55:57,080 --> 00:56:00,260 se datorează faptului că din nou în ca primele zile ale C, 1080 00:56:00,260 --> 00:56:04,100 atunci când oamenii au fost scris în primul rând că, 1081 00:56:04,100 --> 00:56:07,580 au avut limitări privind numărul de caractere pe care le-ar putea folosi 1082 00:56:07,580 --> 00:56:09,950 pentru numele de funcții și nume de variabile, 1083 00:56:09,950 --> 00:56:12,620 deci totul este ca super-condensat. 1084 00:56:12,620 --> 00:56:15,750 Dar oricând veți vedea ceva care începe cu str., 1085 00:56:15,750 --> 00:56:18,600 ca de obicei, înseamnă acest lucru are ceva de-a face cu un șir. 1086 00:56:20,990 --> 00:56:23,350 >> Bine, deci ai pentru a obține lungimea șirului, 1087 00:56:23,350 --> 00:56:27,110 si apoi, ce facem cu personajele? 1088 00:56:27,110 --> 00:56:29,020 Știi, Sam? 1089 00:56:29,020 --> 00:56:32,410 >> Nu am nici o idee, am încercat să-mi dau seama. 1090 00:56:32,410 --> 00:56:35,410 Eu chiar nu știu - As vrea sa o modalitate de a - 1091 00:56:35,410 --> 00:56:38,990 Adică, mi-ar gândesc că poate am putea face ceva cu cote și uniformizează, 1092 00:56:38,990 --> 00:56:40,860 dar nu știu de nici o funcție de genul asta. 1093 00:56:40,860 --> 00:56:42,240 Da. 1094 00:56:43,160 --> 00:56:45,200 Dar asta >> - nu ar funcționa în mod necesar, 1095 00:56:45,200 --> 00:56:48,690 pentru că atunci v-ar lua spațiile să fie - 1096 00:56:48,690 --> 00:56:51,130 va trebui să aibă spațiu pentru a obține sfaturi cu privire la modul în care - 1097 00:56:51,130 --> 00:56:54,310 Bine. 1098 00:56:54,310 --> 00:56:56,490 >> Nu stiu - Sunt un fel de pierdere în acest moment. 1099 00:56:56,490 --> 00:56:58,120 Da - Nu, nu, nu, acestea sunt puncte bune. 1100 00:56:58,120 --> 00:57:00,420 Deci, ceea ce trebuie să facem este, ca Sam a spus, 1101 00:57:00,420 --> 00:57:02,970 avem nevoie pentru a urmări care sunt litere literele impare, 1102 00:57:02,970 --> 00:57:05,540 și care sunt cele literele chiar. 1103 00:57:06,650 --> 00:57:09,090 Dar vrem să ne asigurăm că nu suntem doar în căutarea 1104 00:57:09,090 --> 00:57:12,110 la ciudat și chiar 1105 00:57:12,110 --> 00:57:14,030 Indicii în șir, 1106 00:57:14,030 --> 00:57:17,660 ci mai degrabă se uită la literele pare și impare în șir, 1107 00:57:17,660 --> 00:57:20,190 așa că trebuie să avem cam această distincție între 1108 00:57:20,190 --> 00:57:25,190 Scrisori - ca ceea ce este de fapt A, B, C, D, sau așa mai departe, 1109 00:57:25,190 --> 00:57:29,090 si ce lucruri nu sunt litere, dar încă în șir noastră. 1110 00:57:29,090 --> 00:57:32,390 De exemplu aici, ca acest semn de exclamare nu este o scrisoare, 1111 00:57:32,390 --> 00:57:36,060 dar este încă parte din șirul nostru, e încă un char. 1112 00:57:36,060 --> 00:57:38,820 De asemenea, toate aceste spatii - 1113 00:57:38,820 --> 00:57:41,710 aceasta nu are sens să valorifice un spațiu, nu? 1114 00:57:41,710 --> 00:57:46,160 Așa că vrem să ne asigurăm că sări într-un fel pe cei 1115 00:57:46,160 --> 00:57:49,410 în timp ce înregistrează încă cote și echilibreaza. 1116 00:57:50,900 --> 00:57:54,990 >> Deci, un fel de set de instrumente de programare în nostru 1117 00:57:54,990 --> 00:57:57,270 până în prezent, dacă vreți, 1118 00:57:57,270 --> 00:58:01,310 avem un număr de instrumente diferite, pe care le-am vorbit despre. 1119 00:58:01,310 --> 00:58:04,640 Deci unul, de exemplu, sunt variabile, 1120 00:58:04,640 --> 00:58:07,120 ca și cum am vorbit despre aici. 1121 00:58:07,120 --> 00:58:10,730 Un alt instrument care le-am vorbit despre funcții sunt. 1122 00:58:10,730 --> 00:58:15,800 Deci, am vorbit despre variabile în pseudocod nostru aici 1123 00:58:15,800 --> 00:58:19,760 ca ceea ce am de gând să folosească pentru a stoca șirul nostru. 1124 00:58:19,760 --> 00:58:24,630 Am vorbit despre funcții pentru a obține lungimea unui șir, cum ar fi strlen. 1125 00:58:28,510 --> 00:58:31,170 Am vorbit despre altceva, și am vorbit despre asta 1126 00:58:31,170 --> 00:58:34,850 pentru o mult mai devreme în secțiunea azi: bucle. 1127 00:58:39,390 --> 00:58:42,030 >> Ce părere aveți despre utilizarea o buclă în acest program? 1128 00:58:42,030 --> 00:58:44,110 Jared, ce crezi? 1129 00:58:47,150 --> 00:58:50,030 Ne-ar folosi o buclă în acest program? 1130 00:58:50,030 --> 00:58:52,500 >> Probabil că nu, nu, pentru că nu trebuie să treacă printr-o mai mult decât o dată. 1131 00:58:52,500 --> 00:58:55,260 Bine, nu trebuie să treacă prin ceea ce de mai multe ori? 1132 00:58:55,260 --> 00:58:57,190 >> Întregul șir. 1133 00:58:57,190 --> 00:59:00,660 Corect, așa că nu trebuie să treacă prin întregul șir dată. 1134 00:59:00,660 --> 00:59:03,330 Îmi pare rău că a făcut absolut nici un sens! 1135 00:59:03,330 --> 00:59:06,360 Nu trebuie să treacă prin întregul șir de mai multe ori. 1136 00:59:06,360 --> 00:59:08,660 Bine. 1137 00:59:09,790 --> 00:59:11,920 Ce părere ai? 1138 00:59:11,920 --> 00:59:14,110 >> Cred că e mai bine să le folosească 1139 00:59:14,110 --> 00:59:16,640 astfel încât să putem face ca valorifica în timp ce 1140 00:59:16,640 --> 00:59:19,750 locația este [neauzit] număr. 1141 00:59:19,750 --> 00:59:22,940 Mare, și de a valorifica și ce dacă? 1142 00:59:22,940 --> 00:59:25,200 Ok, deci suntem spunând că 1143 00:59:25,200 --> 00:59:28,130 ar trebui să folosim o buclă pentru că vrem să 1144 00:59:28,130 --> 00:59:32,550 o literă în majusculă, deși nu e un număr. 1145 00:59:35,130 --> 00:59:37,140 Deci - Îmi pare rău, ai vrut să adăugați? 1146 00:59:37,140 --> 00:59:39,340 >> Voiam să spun că modul în care tratează șirul 1147 00:59:39,340 --> 00:59:42,290 și [neauzit] separată [neauzit] cu privire la personajele? 1148 00:59:42,290 --> 00:59:43,710 Da. 1149 00:59:43,710 --> 00:59:45,850 >> Si apoi putem aloca numere - 1150 00:59:45,850 --> 00:59:47,780 sau pe baza locației de litere din șirul? 1151 00:59:47,780 --> 00:59:49,720 Da. 1152 00:59:49,720 --> 00:59:53,640 Și >> stabili dacă aceasta e ciudat sau chiar și pentru a valorifica scrisoarea în sine 1153 00:59:53,640 --> 00:59:57,750 în timp ce locația scrisorii este [neauzit] - Îmi pare rău. 1154 00:59:57,750 --> 01:00:00,150 Mare. 1155 01:00:00,150 --> 01:00:03,430 >> Deci, doar o recapitulare. 1156 01:00:03,430 --> 01:00:05,840 Poți să-mi amintesc de numele tău din nou - Îmi pare rău. 1157 01:00:05,840 --> 01:00:06,900 Charlotte >>. 1158 01:00:06,900 --> 01:00:08,490 Charlotte, bine. 1159 01:00:08,490 --> 01:00:11,130 Deci, ceea ce Charlotte se spune, 1160 01:00:11,130 --> 01:00:14,950 care este total dreapta - Doamne, asta îi place să auto liniuță pe mine - 1161 01:00:14,950 --> 01:00:17,770 este că, dacă ne uităm la un șir de caractere 1162 01:00:17,770 --> 01:00:19,160 cum ar fi aceasta în partea de sus - 1163 01:00:19,160 --> 01:00:21,590 "Thanks for the add" - 1164 01:00:21,590 --> 01:00:24,790 ca o secvență de caractere 1165 01:00:24,790 --> 01:00:29,010 în cazul în care este în poziția 0, 1166 01:00:29,010 --> 01:00:32,260 h este la poziția 1. 1167 01:00:32,260 --> 01:00:36,880 A este la 2, apoi am luat 3, 4, 5; 1168 01:00:36,880 --> 01:00:40,830 spatiul este în poziția 6. 1169 01:00:42,380 --> 01:00:45,300 Întrucât - care e poziția lui f? 1170 01:00:45,300 --> 01:00:47,610 7! 1171 01:00:47,610 --> 01:00:49,300 O? 8. 1172 01:00:49,300 --> 01:00:52,070 R? 9. 1173 01:00:52,070 --> 01:00:54,340 Și apoi ne-am luat 10, iar apoi eu nu pot scrie cu adevărat fără ea 1174 01:00:54,340 --> 01:00:57,430 obtinerea cam murdar pe ecran. 1175 01:00:57,430 --> 01:01:02,340 Dar acest lucru este, de fapt modul în care putem vorbi despre șiruri în memorie. 1176 01:01:02,340 --> 01:01:04,660 Este un șir de caractere 1177 01:01:04,660 --> 01:01:07,920 este o secvență de caractere, 1178 01:01:07,920 --> 01:01:12,430 și atunci când ne referim la un caracter individual într-un șir, 1179 01:01:12,430 --> 01:01:15,280 de multe ori am face acest lucru prin trimitere la poziția pe care personajul lui 1180 01:01:15,280 --> 01:01:17,620 în cadrul șir, 1181 01:01:17,620 --> 01:01:19,910 probabil același fel în care vorbim despre septembrie 1182 01:01:19,910 --> 01:01:22,870 fiind a noua lună a anului 1183 01:01:22,870 --> 01:01:27,730 sau luni fiind prima zi a săptămânii. 1184 01:01:29,280 --> 01:01:33,070 Deci, aceasta ne oferă o modalitate de a 1185 01:01:33,070 --> 01:01:37,030 dau seama care sunt cele ciudat față de chiar 1186 01:01:37,030 --> 01:01:39,540 pentru că puteți vedea aici, 1187 01:01:39,540 --> 01:01:43,640 dacă îl potrivesc cu acest T, 1188 01:01:46,310 --> 01:01:49,360 puteți vedea că toate cele capitalizate 1189 01:01:49,360 --> 01:01:53,040 sunt la chiar poziții, 1190 01:01:53,040 --> 01:01:55,880 cel puțin pentru primul cuvânt, 1191 01:01:55,880 --> 01:01:59,080 și apoi lucrurile sa aruncat de pe o dată ne-am lovit acel spațiu, 1192 01:01:59,080 --> 01:02:02,460 pentru că nu se iau în considerare acest spațiu ca o scrisoare, 1193 01:02:02,460 --> 01:02:05,150 așa că e ca și cum am început 1194 01:02:05,150 --> 01:02:08,930 și a mers 0, 1, 2, 3, 4, 5, 1195 01:02:08,930 --> 01:02:12,600 spațiu, 6, 7, 8, spațiu, 1196 01:02:12,600 --> 01:02:16,440 9, și apoi 10, 11, 12, și așa mai departe. 1197 01:02:19,300 --> 01:02:22,910 >> Rece, așa că cu siguranță va dori să folosească un fel de buclă 1198 01:02:22,910 --> 01:02:27,760 pentru a trece peste fiecare dintre personajele la rândul său. 1199 01:02:31,330 --> 01:02:34,580 Deci, la acest punct, 1200 01:02:36,490 --> 01:02:38,360 ne vom întoarce la vechiul nostru pseudocod aici. 1201 01:02:40,970 --> 01:02:42,650 Ca parte a acestei identificare a celor care 1202 01:02:42,650 --> 01:02:45,350 sunt scrise cu majuscule și cele care sunt mici, 1203 01:02:45,350 --> 01:02:48,340 vom dori să facă acest lucru într-un fel de buclă. 1204 01:02:51,080 --> 01:02:53,390 Buclă, de colon. 1205 01:02:55,070 --> 01:03:01,220 Ce fel de buclă, din tipurile de bucle pe care le avem, 1206 01:03:01,220 --> 01:03:03,670 pare a fi unul bun pentru a utiliza in acest caz? 1207 01:03:03,670 --> 01:03:05,610 Mă gândeam >> pentru bucla. 1208 01:03:05,610 --> 01:03:07,500 Și de ce te gândești la bucla? 1209 01:03:07,500 --> 01:03:10,000 Deoarece >> începe de la zero, iar apoi 1210 01:03:10,000 --> 01:03:13,000 când vom ajunge la lungimea șirului, 1211 01:03:13,000 --> 01:03:16,170 și apoi la fiecare iteratie poți [inaudibil], de asemenea? 1212 01:03:16,170 --> 01:03:18,260 Da, exact. 1213 01:03:18,260 --> 01:03:21,490 Deci, din cele opțiuni diferite de bucle, 1214 01:03:21,490 --> 01:03:25,350 avem pentru bucle, bucle timp, și de a face în timp ce-bucle. 1215 01:03:25,350 --> 01:03:28,550 În cazul în care un pentru buclă este deosebit de util 1216 01:03:28,550 --> 01:03:32,120 este atunci când doriți să știți 1217 01:03:32,120 --> 01:03:34,940 un fel de unde ești puțin în buclă, 1218 01:03:34,940 --> 01:03:38,520 de câte ori a fost executata bucla până în prezent. 1219 01:03:38,520 --> 01:03:42,490 Care este exact ceea ce vrem să știm în această situație, 1220 01:03:42,490 --> 01:03:44,640 Kelly a spus ca, 1221 01:03:44,640 --> 01:03:47,400 bazează off de comentariul anterior lui Charlotte că vrem să știm poziția 1222 01:03:47,400 --> 01:03:49,900 a caracterului în cadrul șir, 1223 01:03:49,900 --> 01:03:51,750 și pentru bucla ne va da doar că, 1224 01:03:51,750 --> 01:03:54,680 pentru că, dacă vom începe un fel de a privi înapoi la șirul nostru, 1225 01:03:54,680 --> 01:03:57,140 în cazul în care vom începe bucla nostru pentru la 0, 1226 01:03:57,140 --> 01:04:00,350 și vom merge până prin lungimea întregul șir, 1227 01:04:00,350 --> 01:04:04,740 atunci putem asocia litera T 1228 01:04:04,740 --> 01:04:08,110 cu 0 în nostru de buclă, 1229 01:04:09,950 --> 01:04:13,080 H scrisoare cu 1 în nostru de buclă, și așa mai departe, 1230 01:04:13,080 --> 01:04:16,600 merge tot drumul până la sfârșitul șir. 1231 01:04:18,810 --> 01:04:21,890 >> Așa că hai să începem această codificare doar un pic 1232 01:04:21,890 --> 01:04:24,930 Doar așa voi obține o simt pentru ceea ce acest lucru arata ca. 1233 01:04:24,930 --> 01:04:27,980 Am de gând să salveze acest lucru, 1234 01:04:27,980 --> 01:04:31,230 deci avem codul nostru pseudo aici, 1235 01:04:33,490 --> 01:04:38,120 și am de gând să ștergeți totul. 1236 01:04:38,120 --> 01:04:42,210 Deci, am o tabula rasa. 1237 01:04:42,210 --> 01:04:45,910 Voi începe prin a scrie int main (void) 1238 01:04:45,910 --> 01:04:48,440 { 1239 01:04:48,440 --> 01:04:51,380 Voi pune 0 în retur 1240 01:04:51,380 --> 01:04:53,320 si apoi.} 1241 01:04:53,320 --> 01:04:56,130 Așa că, de obicei, atunci când am început să programul, asta este ceea ce am început. 1242 01:04:56,130 --> 01:04:59,370 Voi economisi, astfel încât voi avea. 1243 01:05:06,290 --> 01:05:08,440 Deci, unul din primele lucruri pe care am vorbit despre a fost 1244 01:05:08,440 --> 01:05:10,920 obtinerea de intrare de la utilizator 1245 01:05:10,920 --> 01:05:13,740 și stocarea într-un șir. 1246 01:05:13,740 --> 01:05:16,420 Cum ajungem de intrare de la un utilizator? 1247 01:05:16,420 --> 01:05:19,640 GetString >>. 1248 01:05:19,640 --> 01:05:21,870 GetString, în regulă. 1249 01:05:23,150 --> 01:05:26,820 Deci, dacă tip I getString () 1250 01:05:26,820 --> 01:05:32,150 și un punct și virgulă. 1251 01:05:32,150 --> 01:05:36,630 Să încercați să rulați acest lucru; vor alerga această, în primul rând? 1252 01:05:36,630 --> 01:05:38,430 Și de ce nu va rula acest? 1253 01:05:38,430 --> 01:05:40,090 >> Trebuie sa declare variabila. 1254 01:05:40,090 --> 01:05:43,040 Am să declare o variabilă. Bine. 1255 01:05:43,040 --> 01:05:45,700 >> Deci, cum fac asta? 1256 01:05:45,700 --> 01:05:48,400 Te superi scris ceva, împărtășind-o? 1257 01:05:48,400 --> 01:05:51,270 Și apoi putem trage în sus. 1258 01:05:51,270 --> 01:05:54,630 Să vedem, Dan, dreapta, bine. 1259 01:05:54,630 --> 01:05:59,100 Sau Daniel. Copiați că, în, intrare string = getString (). 1260 01:05:59,100 --> 01:06:01,340 Minunat. 1261 01:06:01,340 --> 01:06:02,890 Aceasta va rula? 1262 01:06:02,890 --> 01:06:05,210 Hai să încercăm. 1263 01:06:05,210 --> 01:06:08,890 Hit termen, codul sursă încărcarea, cladire, a apărut o eroare. 1264 01:06:08,890 --> 01:06:11,040 Bine. 1265 01:06:11,040 --> 01:06:14,950 Deci, ce se întâmplă aici? 1266 01:06:14,950 --> 01:06:18,700 Utilizarea "string" identificator nedeclarat. 1267 01:06:18,700 --> 01:06:22,840 >> Trebuie să includă bibliotecile? 1268 01:06:22,840 --> 01:06:25,130 Da, așa că Dan spune că avem de a include biblioteci. 1269 01:06:25,130 --> 01:06:28,270 Este că ceea ce ați fost de gând să spun, Stella? Minunat. 1270 01:06:29,450 --> 01:06:31,430 Asta e minunat, asa Stella, poți 1271 01:06:31,430 --> 01:06:34,800 copiați acest cod de spațiu lui Daniel? 1272 01:06:34,800 --> 01:06:37,580 Dacă faceți clic pe Daniel Roland Ki, copiați, 1273 01:06:37,580 --> 01:06:41,360 si apoi va voi pune linia includ în, și apoi salvați-l afară? 1274 01:06:46,580 --> 01:06:49,360 Lasă-mă să știu când ești gata. 1275 01:06:57,160 --> 01:06:59,490 Deci, această sintaxă se numără, de asemenea, este un fel de funky,; 1276 01:06:59,490 --> 01:07:02,210 nu e ca și cum faptul că tag-ul hash, 1277 01:07:02,210 --> 01:07:05,760 și nu există includ, și apoi sunt aceste paranteze unghiulare. 1278 01:07:12,490 --> 01:07:15,360 Îți amintești cum functioneaza acest, sau ar trebui să-l pun pe acest cod chiar aici? 1279 01:07:15,360 --> 01:07:17,850 >> Sunt bine. 1280 01:07:17,850 --> 01:07:19,810 Bine. 1281 01:07:19,810 --> 01:07:23,260 Am tipărit >> - Eu nu am fost sigur care biblioteca, totuși. 1282 01:07:23,260 --> 01:07:25,570 Oh, ok - Da, așa că e biblioteca CS50. 1283 01:07:25,570 --> 01:07:27,660 >> Oh, mi-am pus biblioteca stdio. 1284 01:07:27,660 --> 01:07:30,950 >> Oh, am înțeles - Da, nu, asta - 1285 01:07:30,950 --> 01:07:34,380 astfel se dovedește că șirul este de fapt ceva ce este special la CS50. 1286 01:07:36,590 --> 01:07:41,240 Nu există, de fapt, nu este un tip de șir adevărat 1287 01:07:41,240 --> 01:07:45,000 deoarece chiar aici, sir este în poziția de tip, - 1288 01:07:45,000 --> 01:07:49,140 suntem de declarare a unei variabile de intrare numit de tipul String - 1289 01:07:49,140 --> 01:07:53,320 și punem înăuntru de intrare 1290 01:07:53,320 --> 01:07:58,440 valoarea care devine returnate la noi: ieșirea din această apelare de funcție getString. 1291 01:07:58,440 --> 01:08:02,910 Vă pot spune acest lucru este un apel de funcție, pentru că are paranteze, la fel ca printf face, 1292 01:08:02,910 --> 01:08:05,920 la fel ca strlen face. 1293 01:08:05,920 --> 01:08:09,860 Dar șirul nu este de fapt un tip de reală 1294 01:08:09,860 --> 01:08:11,760 în limbajul C. 1295 01:08:11,760 --> 01:08:15,710 Ne-am făcut într-un tip, și vom lua mai multe despre ceea ce este de fapt 1296 01:08:15,710 --> 01:08:19,000 în C, pentru că nu există o modalitate de a lucra cu siruri de caractere; 1297 01:08:19,000 --> 01:08:22,479 am făcut ceva pentru a face să arate un pic mai frumos. 1298 01:08:22,479 --> 01:08:25,240 >> Deci, aici vom merge. 1299 01:08:25,240 --> 01:08:28,439 Aici este codul lui Stella. 1300 01:08:28,439 --> 01:08:32,470 Are # include . 1301 01:08:32,470 --> 01:08:36,390 Alte persoane vor numi asta ca un hash includ, uneori, sau un obiect ascuțit includ. 1302 01:08:36,390 --> 01:08:39,580 Acum putem porni, executați-l, 1303 01:08:39,580 --> 01:08:43,649 și am obține încă o eroare. 1304 01:08:43,649 --> 01:08:46,290 Să vedem ce se întâmplă. 1305 01:08:48,069 --> 01:08:50,569 "Variabila Neutilizat" intrare "." 1306 01:08:50,569 --> 01:08:53,350 Bine, pentru ca e cool, e cool. 1307 01:08:53,350 --> 01:08:55,859 Adică, nu e foarte misto, 1308 01:08:55,859 --> 01:08:57,930 pentru ca ne apropiem o eroare și nu se execută, 1309 01:08:57,930 --> 01:09:00,410 dar ceea ce acest lucru este să spun este că 1310 01:09:00,410 --> 01:09:03,130 nu ne-am folosit variabila noastră, ceea ce face sens. 1311 01:09:03,130 --> 01:09:06,090 Nu am incercat sa fac nimic cu ea. 1312 01:09:07,819 --> 01:09:10,490 Acesta este un mod care 1313 01:09:10,490 --> 01:09:14,170 Zăngănit încearcă să ne ajute să ne asigurăm că nu suntem doar folosind variabile 1314 01:09:14,170 --> 01:09:18,819 și apoi din neatentie numindu-le ceva mai târziu, în codul nostru, 1315 01:09:18,819 --> 01:09:21,649 ajutându-ne să evite erorile în acest fel. 1316 01:09:23,130 --> 01:09:28,810 >> În regulă, deci avem de intrare de la utilizator, 1317 01:09:28,810 --> 01:09:31,910 l-am depozitat într-o variabilă. 1318 01:09:31,910 --> 01:09:34,569 Următorul pas a fost să atunci 1319 01:09:34,569 --> 01:09:37,609 începe căutarea de la toate caracterele din șirul 1320 01:09:37,609 --> 01:09:41,830 Identificarea și cele care urmează să fie majuscule 1321 01:09:41,830 --> 01:09:44,600 și care sunt cele de a fi cu litere mici. 1322 01:09:44,600 --> 01:09:49,439 Și cum ar fi Kelly și Charlotte adus, 1323 01:09:49,439 --> 01:09:52,340 facem acest lucru, folosind un pentru buclă. 1324 01:09:52,340 --> 01:09:55,520 Deci, nu amintește cineva sintaxa unei bucle de 1325 01:09:55,520 --> 01:09:58,670 și ar dori să ia o lovitură de cuțit la doar scris 1326 01:09:58,670 --> 01:10:03,170 prima linie a buclei pentru, doar pentru biți? 1327 01:10:05,740 --> 01:10:07,330 Kelly, vrei să încerci? 1328 01:10:07,330 --> 01:10:10,300 Da >>, deci va trebui să inițializați prima, 1329 01:10:10,300 --> 01:10:13,170 așa că am pus i = 0, 1330 01:10:13,170 --> 01:10:15,390 si apoi am facut i 01:10:18,570 Este în spațiu - pot trage în sus? 1332 01:10:18,570 --> 01:10:21,330 >> Da, am stricat un pic, dar da. 1333 01:10:21,330 --> 01:10:24,180 >> Bine, hai să-l trage în sus. 1334 01:10:24,180 --> 01:10:26,490 Minunat. 1335 01:10:26,490 --> 01:10:29,510 Dar apoi m-am >> nu știu dacă ați avut că - 1336 01:10:29,510 --> 01:10:32,180 Da, bine. 1337 01:10:33,020 --> 01:10:36,030 Deci, aici e ceea ce Kelly are: să ne uităm la ea repede. 1338 01:10:36,030 --> 01:10:40,290 Deci ea este inclus biblioteca CS50 în partea de sus. 1339 01:10:40,290 --> 01:10:44,790 Ea este inclus standard de bibliotecă IO în partea de sus, 1340 01:10:45,550 --> 01:10:48,990 și IO standard are functii ca printf, 1341 01:10:48,990 --> 01:10:51,690 așa că, dacă vrei vreodată să utilizați printf, ai nevoie de acea linie. 1342 01:10:53,060 --> 01:10:56,140 Și apoi, ea a inclus bibliotecă șir, 1343 01:10:56,140 --> 01:10:58,200 pe care le vom avea nevoie de, 1344 01:10:58,200 --> 01:11:01,010 deoarece biblioteca șirul are funcția strlen, 1345 01:11:01,010 --> 01:11:04,320 pe care vom ajunge la doar un pic. 1346 01:11:04,320 --> 01:11:07,560 Deci, dacă ne uităm la ceea ce Kelly a făcut aici, 1347 01:11:07,560 --> 01:11:10,260 ne puteți plimba prin ce-ai făcut? 1348 01:11:10,260 --> 01:11:13,600 Da >>, asa - vreau să spun, m-am erorile, așa - 1349 01:11:13,600 --> 01:11:15,380 Da, nu, este - 1350 01:11:15,380 --> 01:11:18,580 Așa că am vrut >> pentru a apela șir pe care am primit doar "string". 1351 01:11:18,580 --> 01:11:22,230 Am vrut să imprime șirul 1352 01:11:22,230 --> 01:11:25,640 si apoi am - 1353 01:11:27,450 --> 01:11:30,930 Am vrut să-mi placă seta ca șir ca o serie de fiecare caracter 1354 01:11:30,930 --> 01:11:33,170 fiind diferit [inaudibil], nu? 1355 01:11:33,170 --> 01:11:38,080 Și apoi am vrut să înceapă de la poziția 0 1356 01:11:38,080 --> 01:11:40,630 și apoi la fiecare 2 spatii, 1357 01:11:40,630 --> 01:11:42,580 Am fost de gând să valorifice, 1358 01:11:42,580 --> 01:11:45,680 așa că am descris-o ca 23, pentru că mă uitam la masa ASCII. 1359 01:11:45,680 --> 01:11:48,730 Deci, asta e ceea ce mă gândeam - Știu că nu e bine. 1360 01:11:48,730 --> 01:11:50,920 >> Am prins-o, astfel încât acesta este un start bun. 1361 01:11:50,920 --> 01:11:54,120 Cred că o mulțime de cadru este în loc aici. 1362 01:11:54,120 --> 01:11:57,500 Să mergem prin fel de linie cu linie și vezi ce se întâmplă. 1363 01:11:57,500 --> 01:12:01,040 Deci, modul în care am dori să fac acest lucru este doar începutul, prin compilarea codului 1364 01:12:01,040 --> 01:12:04,300 și permițându-mi spui ca compilatorul ce e în neregulă cu codul meu, 1365 01:12:04,300 --> 01:12:07,450 deoarece compilatorul este foarte bun la ceea ce vă spun este în neregulă cu codul. 1366 01:12:09,790 --> 01:12:12,780 Deci, dacă am juca, construirea, și nu construim. 1367 01:12:12,780 --> 01:12:14,860 Se spune că a fost o eroare, 1368 01:12:14,860 --> 01:12:17,320 așa că, dacă vom defila în jos și uită-te la prima eroare, 1369 01:12:17,320 --> 01:12:20,960 a spus - 1370 01:12:20,960 --> 01:12:22,040 ne derulați înapoi până la partea de sus, 1371 01:12:22,040 --> 01:12:26,070 putem vedea, există 5 erori generate aici, la partea de jos. 1372 01:12:26,070 --> 01:12:30,180 Hopa, care este într-adevăr tăiat. 1373 01:12:31,810 --> 01:12:35,790 Cred că e nu doar mergi la a lua orice mai bine. 1374 01:12:36,970 --> 01:12:38,500 >> Aici vom merge. 1375 01:12:39,790 --> 01:12:42,530 Deci, există 5 erori totale generate. 1376 01:12:42,530 --> 01:12:45,140 Aici am putea vedea doar primele 2, 1377 01:12:45,140 --> 01:12:49,100 așa că am putea muta asta un pic și apoi un fel de pana de parcurgere. 1378 01:12:49,100 --> 01:12:53,220 Aceasta este comanda care a fost executați pentru a compila codul, 1379 01:12:53,220 --> 01:12:59,030 si apoi prima eroare a fost în file.c aici: 1380 01:12:59,030 --> 01:13:03,300 "Așteptat să identifice sau" ("", si a fost pe această linie 1381 01:13:03,300 --> 01:13:06,680 în cazul în care am spus string = getString (). 1382 01:13:07,660 --> 01:13:12,920 Puteti vedea chiar aici că a fost pe linia 8 din file.c, 1383 01:13:12,920 --> 01:13:17,230 și apoi cred că acest lucru este personaj 12 - asta e eroarea. 1384 01:13:17,230 --> 01:13:20,390 Deci, ce se întâmplă greșit pe linia 8 - Kelly? 1385 01:13:20,390 --> 01:13:22,810 >> Trebuie doar să-l sun, ca, o scrisoare sau ceva, 1386 01:13:22,810 --> 01:13:24,400 cum ar fi sirul s sau ceva de genul? 1387 01:13:24,400 --> 01:13:28,250 Da, așa se pare că aceste denumiri speciale de tip, 1388 01:13:28,250 --> 01:13:31,770 astfel șir, int, char scurt,, 1389 01:13:31,770 --> 01:13:35,740 acestea sunt toate cuvintele cheie speciale, 1390 01:13:35,740 --> 01:13:38,940 și nu puteți folosi de fapt le ca nume de variabile voastre, 1391 01:13:38,940 --> 01:13:41,430 deoarece compilatorul se uită la asta și spune, 1392 01:13:41,430 --> 01:13:43,680 "Oh, știu că e un tip," 1393 01:13:43,680 --> 01:13:46,530 astfel încât să nu poate avea de fapt, o variabilă șir numit string, 1394 01:13:46,530 --> 01:13:50,800 ca și cum am încerca să facem aici, acest lucru nu va funcționa. 1395 01:13:52,610 --> 01:13:58,250 Dar, în loc, o putem numi ceva de genul e sau ST sau Str. 1396 01:13:58,250 --> 01:14:01,540 De asemenea, nu a putut numi int. 1397 01:14:01,540 --> 01:14:03,740 Nu putem avea un șir numit int. 1398 01:14:03,740 --> 01:14:06,740 Nu putem avea un șir numit char; nici unul dintre cei care vor lucra. 1399 01:14:06,740 --> 01:14:09,420 >> Deci, vom numi doar e pentru moment. 1400 01:14:10,630 --> 01:14:13,170 Minunat. 1401 01:14:13,170 --> 01:14:17,500 Deci, ce urmează se întâmplă în această linie? 1402 01:14:21,390 --> 01:14:24,350 String - această linie arata destul de bine? 1403 01:14:24,350 --> 01:14:27,830 Să dau un alt încerca, hai să-l rulați. 1404 01:14:27,830 --> 01:14:30,360 Ok, deci avem în continuare erori. 1405 01:14:30,360 --> 01:14:32,080 De data aceasta, suntem în jos la 4 erori. 1406 01:14:32,080 --> 01:14:34,350 Deci avem una dintre ele. 1407 01:14:34,350 --> 01:14:36,130 Să mergem sus. 1408 01:14:36,130 --> 01:14:38,890 "Tip nume neașteptat" șir ": expresie așteptat," da? 1409 01:14:38,890 --> 01:14:41,780 >> Da, asta e pentru că am încercat să numească șir. 1410 01:14:41,780 --> 01:14:44,270 Da, așa se pare ca acum avem, de asemenea, pentru a merge fix 1411 01:14:44,270 --> 01:14:46,560 toate aceste trimiteri la șir. 1412 01:14:46,560 --> 01:14:50,070 Puteți vedea acolo este o trimitere la șir aici, unul aici, unul aici, 1413 01:14:50,070 --> 01:14:53,440 astfel încât să putem muta toate acestea pentru a s.. 1414 01:14:56,040 --> 01:15:00,930 Mare. Bine, executați-l din nou. 1415 01:15:00,930 --> 01:15:03,260 Clădire - un alt eroare a avut loc. 1416 01:15:03,260 --> 01:15:06,900 >> Bine, acum suntem în jos pentru a o eroare, 1417 01:15:06,900 --> 01:15:11,090 astfel int i = e și apoi între paranteze drepte. 1418 01:15:11,090 --> 01:15:14,880 Deci, pot să vă spun ne un pic despre ceea ce făceai aici, Kelly? 1419 01:15:14,880 --> 01:15:17,120 Da >>. 1420 01:15:17,120 --> 01:15:19,410 Acesta a fost pe linia 10. 1421 01:15:19,410 --> 01:15:22,760 Eu >> Nu știu dacă avem nevoie de tot, 1422 01:15:22,760 --> 01:15:25,560 dar cred că am fost încercarea de a - 1423 01:15:25,560 --> 01:15:27,580 Voi salva astfel încât să puteți urmări de-a lungul. 1424 01:15:27,580 --> 01:15:30,470 >> Cred că am fost 1425 01:15:30,470 --> 01:15:33,150 încearcă să-l spun pentru a începe de la poziția 0 1426 01:15:33,150 --> 01:15:35,030 de la începutul mea pentru buclă, 1427 01:15:35,030 --> 01:15:38,370 deci cred că poate spune a fost inutilă. 1428 01:15:39,690 --> 01:15:41,350 Deci, doar pentru a recapitula, 1429 01:15:41,350 --> 01:15:44,850 ai spune că acest lucru - ai incercat pentru a începe acest lucru la poziția 0 1430 01:15:44,850 --> 01:15:47,030 și a obține acest lucru - Da, 1431 01:15:47,030 --> 01:15:50,460 deci cred ca mai devreme, de asemenea, atunci când s-au mers pe jos prin codul, 1432 01:15:50,460 --> 01:15:54,070 ai vorbit despre modul în care a vrut să trateze șir ca o matrice 1433 01:15:54,070 --> 01:15:57,440 astfel încât să putem accesa fiecare caracter individual. 1434 01:15:57,440 --> 01:16:00,660 Cred ca matrice Dan menționate, de asemenea, încercarea de a converti siruri de caractere în matrice. 1435 01:16:01,400 --> 01:16:03,300 >> Se pare că astfel de sub capotă, 1436 01:16:03,300 --> 01:16:06,060 un șir este, de fapt stocată ca o matrice deja, 1437 01:16:06,060 --> 01:16:08,060 și puteți accesa ca pe o matrice; 1438 01:16:08,060 --> 01:16:12,390 nu exista nici o conversie pe care le au de a face. 1439 01:16:12,390 --> 01:16:15,770 Un șir isn't - așa - 1440 01:16:15,770 --> 01:16:18,200 un string nu este cu adevărat o matrice, 1441 01:16:18,200 --> 01:16:21,940 dar îl puteți accesa ca atare, deoarece toate caracterele sunt stocate 1442 01:16:21,940 --> 01:16:25,160 chiar lângă reciproc în memorie, 1443 01:16:25,160 --> 01:16:28,310 așa că, dacă doriți să obțineți primul caracter din șir, 1444 01:16:28,310 --> 01:16:31,910 e la fel ca obtinerea întreg prima într-o matrice întreg. 1445 01:16:31,910 --> 01:16:35,010 Deci, de multe ori am - Vom 1446 01:16:35,010 --> 01:16:36,360 se referă la 2 ca 1447 01:16:36,360 --> 01:16:38,590 oh, ca fiind un șir, ca fiind o matrice, 1448 01:16:38,590 --> 01:16:40,830 chiar dacă într-adevăr - Sunt pe lucruri foarte diferite, 1449 01:16:40,830 --> 01:16:43,410 dar le puteți trata foarte mult la fel. 1450 01:16:44,700 --> 01:16:47,400 Deci, se dovedește că această linie, de fapt - 1451 01:16:47,400 --> 01:16:51,270 nu avem nevoie de a face orice conversie, 1452 01:16:51,270 --> 01:16:53,500 și, de fapt, 1453 01:16:53,500 --> 01:16:56,790 acest fapt nu este o expresie validă, 1454 01:16:56,790 --> 01:16:59,040 care este ceea ce compilator nostru ne spune. 1455 01:16:59,040 --> 01:17:01,290 Se spune, "Hei, așteaptă o expresie, 1456 01:17:01,290 --> 01:17:04,610 și ceea ce am aici este ceva care nu e o expresie. " 1457 01:17:04,610 --> 01:17:07,310 Pentru a declara o matrice, 1458 01:17:07,310 --> 01:17:11,780 tot ce trebuie să faci este ceva de genul asta cu un punct și virgulă, 1459 01:17:11,780 --> 01:17:15,080 și apoi să vă spun matrice cât timp doriți să fie, 1460 01:17:15,080 --> 01:17:18,370 cum ar fi 5, astfel încât acest linia 10 1461 01:17:18,370 --> 01:17:23,880 va declara o matrice numita i cu 5 numere întregi în ea. 1462 01:17:23,880 --> 01:17:26,540 >> Aceasta este o parte, acest lucru nu este necesar pentru codul, 1463 01:17:26,540 --> 01:17:30,970 dar acest lucru este - aceasta este un fel de ceea ce arata ca declarației. 1464 01:17:30,970 --> 01:17:35,310 Cum ar fi să nu >> ai folosi char i [strlen (s)]? 1465 01:17:35,310 --> 01:17:38,500 Char i [strlen (s)]? 1466 01:17:38,500 --> 01:17:41,500 Char >> I, iar apoi în interiorul paranteze, strlen (s). 1467 01:17:43,900 --> 01:17:47,710 Da, așa că am putea - 1468 01:17:47,710 --> 01:17:49,460 am putea face acest lucru, 1469 01:17:49,460 --> 01:17:52,160 iar acest lucru ar declara - ceea ce ar face asta? 1470 01:17:52,160 --> 01:17:55,900 >> Cred că ar declara o matrice 1471 01:17:55,900 --> 01:18:01,780 de, cum ar fi - de - 1472 01:18:01,780 --> 01:18:04,540 oh, nu aveți nevoie de i - oh, 1473 01:18:04,540 --> 01:18:06,420 Da, cu siguranta nu au nevoie de i.. 1474 01:18:06,420 --> 01:18:10,250 Ai declara un tablou de caractere 1475 01:18:10,250 --> 01:18:13,150 de s lungime. 1476 01:18:14,680 --> 01:18:16,770 Și deci ce lui Sam spune este că 1477 01:18:16,770 --> 01:18:20,660 această linie 10 - lasă-mă să pun niște spațiu între ea și restul astfel încât să putem izola - 1478 01:18:20,660 --> 01:18:23,440 această linie 10 ar declara o matrice 1479 01:18:23,440 --> 01:18:28,520 de caractere, strlen (s) în valoare de ele, 1480 01:18:28,520 --> 01:18:32,270 dar noi de fapt avem nevoie I, 1481 01:18:32,270 --> 01:18:35,710 și motivul pentru care am nevoie de i este că avem nevoie pentru a da un nume matrice; 1482 01:18:35,710 --> 01:18:38,900 în caz contrar, nu ne-ar trebui o modalitate de a face referire la matrice mai târziu, în cod. 1483 01:18:38,900 --> 01:18:41,180 >> Deci, acest drept aici este numele matrice 1484 01:18:41,180 --> 01:18:43,420 și în interiorul este lungimea. 1485 01:18:43,420 --> 01:18:45,010 Acest lucru ne va da o matrice, 1486 01:18:45,010 --> 01:18:47,430 dar asta este - din nou, aceasta este o declarație. 1487 01:18:47,430 --> 01:18:50,380 Nu este o misiune, nu este o initializare. 1488 01:18:50,380 --> 01:18:52,330 Dacă ne pronunțăm această matrice ca aceasta, 1489 01:18:52,330 --> 01:18:54,490 nu e de fapt nimic în conținutul matrice. 1490 01:18:54,490 --> 01:18:57,490 E doar gunoaie - tot ce este acolo. 1491 01:18:57,490 --> 01:18:59,780 Și așa cum am spus, 1492 01:18:59,780 --> 01:19:01,340 noi de fapt, nici nu trebuie să facă această conversie, 1493 01:19:01,340 --> 01:19:04,810 pentru că putem trata deja șir e ca un tablou. 1494 01:19:06,750 --> 01:19:09,170 Știu că mai avem un pic cam lung la timp, 1495 01:19:09,170 --> 01:19:12,330 dar vreau să doar foarte rapid pentru a ajunge la această buclă 1496 01:19:12,330 --> 01:19:14,850 și vă arată cum să accesați caracterele individuale din matrice, 1497 01:19:14,850 --> 01:19:17,170 pentru că asta e cheia pentru misiune nostru. 1498 01:19:17,170 --> 01:19:20,790 Și apoi vom lăsa să pleci de acolo. 1499 01:19:20,790 --> 01:19:24,610 >> Deci, aici, avem o buclă de 1500 01:19:24,610 --> 01:19:28,310 care arata aproape bine. 1501 01:19:28,310 --> 01:19:30,960 Ceea ce nu e destul de aproape acolo? 1502 01:19:30,960 --> 01:19:33,240 What's - ceea ce nu e chiar corect despre acest lucru pentru bucla? 1503 01:19:33,240 --> 01:19:36,010 Nu >> acolade? 1504 01:19:36,010 --> 01:19:38,420 Nu există acolade, pentru unul. 1505 01:19:38,420 --> 01:19:42,580 Vrei să asigurați-vă că avem corpul buclei cu acolade. 1506 01:19:42,580 --> 01:19:45,240 Hopa, nu bretele pătrat! 1507 01:19:45,240 --> 01:19:48,660 Și ceea ce este urmatorul lucru de care avem nevoie pentru a face cu această buclă? 1508 01:19:48,660 --> 01:19:52,640 Dacă am încerca și rulați-l, 1509 01:19:52,640 --> 01:19:56,740 whats această eroare pe care le primesc? 1510 01:19:56,740 --> 01:20:00,990 I a lua toate aceste erori - Trebuie să am inițializa. 1511 01:20:00,990 --> 01:20:03,610 Mare. 1512 01:20:03,610 --> 01:20:05,770 Deci, acest lucru va fi o buclă - acest lucru nu este destul de acolo, 1513 01:20:05,770 --> 01:20:08,680 dar este din ce în ce foarte aproape. 1514 01:20:08,680 --> 01:20:11,260 Acest cod ne poate rula acum, 1515 01:20:11,260 --> 01:20:14,620 construi, o eroare inca apare. 1516 01:20:17,960 --> 01:20:19,800 De ce este inca plange, 1517 01:20:19,800 --> 01:20:22,030 spunând expresie este neutilizat, 1518 01:20:22,030 --> 01:20:24,600 și asta pentru că această linie nu face nimic. 1519 01:20:24,600 --> 01:20:27,620 Noi nu l-am păstrează nicăieri, nu am salva rezultatul. 1520 01:20:27,620 --> 01:20:30,210 În cazul în care ar trebui să fim salva acest rezultat? 1521 01:20:30,210 --> 01:20:32,920 >> E sau i? 1522 01:20:32,920 --> 01:20:35,990 Exact, iar acest lucru Funky sintaxă, 1523 01:20:35,990 --> 01:20:38,550 acest e cu paranteze drepte 1524 01:20:38,550 --> 01:20:41,500 înseamnă accesa caracterul i-lea al lui. 1525 01:20:41,500 --> 01:20:45,650 Asta o să fie ceva care este foarte important pentru misiune. 1526 01:20:45,650 --> 01:20:48,070 Din păcate, vom trebui să ne oprim aici, 1527 01:20:48,070 --> 01:20:50,550 astfel încât partea de Sebastian poate veni în, 1528 01:20:50,550 --> 01:20:53,980 dar eu sunt fericit sa stau dupa afară și va lua orice întrebări. 1529 01:20:53,980 --> 01:20:56,680 Deci, vă mulțumesc pentru că ați venit voi. 1530 01:20:56,680 --> 01:20:59,730 Acest lucru ar trebui să încărcați acum, să construiască, fugi. 1531 01:21:01,570 --> 01:21:04,320 Putem introduce un șir cum ar fi "hello" 1532 01:21:06,570 --> 01:21:08,730 și se imprimă "QOX". 1533 01:21:08,730 --> 01:21:11,030 [Râsete] 1534 01:21:11,030 --> 01:21:14,640 >> Deci, nu destul de acolo, dar se deplasează, obtinerea față de aceste bucle! 1535 01:21:14,640 --> 01:21:18,640 Mulțumesc că ai venit, iar eu voi fi în afara.