1 00:00:00,000 --> 00:00:11,050 2 00:00:11,050 --> 00:00:13,351 >> ROB BOWDEN: Aceasta este secțiune mai confortabil, 3 00:00:13,351 --> 00:00:16,309 dar asta nu înseamnă că, dacă simt ca nu esti mai confortabil 4 00:00:16,309 --> 00:00:18,420 nu vei învăța lucruri aici. 5 00:00:18,420 --> 00:00:20,600 Deci, să începem. 6 00:00:20,600 --> 00:00:22,819 Ai diapozitive merge drept în lucruri. 7 00:00:22,819 --> 00:00:24,360 Sunt eu pe cale să-l ia doar acum? 8 00:00:24,360 --> 00:00:25,680 9 00:00:25,680 --> 00:00:26,450 Trecerea de laptop-uri. 10 00:00:26,450 --> 00:00:30,470 11 00:00:30,470 --> 00:00:32,950 >> ALLISON: Nu vrei sa te prezinti, Rob? 12 00:00:32,950 --> 00:00:34,090 >> ROB BOWDEN: Oh, eu sunt Rob. 13 00:00:34,090 --> 00:00:35,182 14 00:00:35,182 --> 00:00:37,470 Acesta este al meu al cincilea an TF-ing CS50. 15 00:00:37,470 --> 00:00:38,760 16 00:00:38,760 --> 00:00:39,650 >> GABRIEL: Eu sunt Gabriel. 17 00:00:39,650 --> 00:00:41,610 Sunt TF șef al CS50. 18 00:00:41,610 --> 00:00:44,009 Am fost TF anul trecut, și în acest an. 19 00:00:44,009 --> 00:00:46,675 ALLISON: Și eu sunt Alison, iar acest lucru este meu al doilea an TF-ing CS50. 20 00:00:46,675 --> 00:00:48,510 21 00:00:48,510 --> 00:00:50,825 >> ROB BOWDEN: Bine, așa acest lucru pe partea stângă, 22 00:00:50,825 --> 00:00:52,250 sperăm că le-ați văzut-o înainte. 23 00:00:52,250 --> 00:00:54,112 Dacă nu pentru că descarcati-l pentru tine, 24 00:00:54,112 --> 00:00:55,570 ar fi văzut în curs. 25 00:00:55,570 --> 00:00:56,590 26 00:00:56,590 --> 00:01:01,320 Deci, aceasta este aparatul CS50, și el a făcut o oarecum de o descriere a acesteia 27 00:01:01,320 --> 00:01:01,880 în curs. 28 00:01:01,880 --> 00:01:06,890 Dar de fapt e doar tu se execută o exploatare 29 00:01:06,890 --> 00:01:10,550 sistemul de operare în ta sistem, astfel încât să vă putem oferi 30 00:01:10,550 --> 00:01:12,540 programe, fără a fi nevoie să vă faceți griji, oh este aceasta 31 00:01:12,540 --> 00:01:15,989 va lucra atât pe Windows și Mac, sau dacă unii dintre voi 32 00:01:15,989 --> 00:01:17,280 sunt deja folosind Linux, Linux. 33 00:01:17,280 --> 00:01:18,532 34 00:01:18,532 --> 00:01:20,240 E doar ar trebui să fie un joc comun 35 00:01:20,240 --> 00:01:23,010 câmp astfel încât toată lumea are același mediu exact. 36 00:01:23,010 --> 00:01:25,344 >> Deci, dacă nu aveți descărcat deja acest lucru, 37 00:01:25,344 --> 00:01:28,510 trebuie să-l descărcați, pentru că ești avea nevoie de el pentru setul de problemă. 38 00:01:28,510 --> 00:01:32,335 Și este de două gigabyte descarcati, așa că ar putea dura ceva timp. 39 00:01:32,335 --> 00:01:33,780 Pe Harvard că va merge repede. 40 00:01:33,780 --> 00:01:35,870 41 00:01:35,870 --> 00:01:37,440 Aparat așa CS50. 42 00:01:37,440 --> 00:01:41,980 >> Acum, la început, vom vorbim despre doar o adunatura de linie de comandă 43 00:01:41,980 --> 00:01:46,880 lucruri, și astfel prin faptul că, vreau să spun de lucru în acest mediu ceva mai mult de aici. 44 00:01:46,880 --> 00:01:53,230 Și observați toate lucrurile Eu spun chiar aici, chiar acum 45 00:01:53,230 --> 00:01:56,900 sunt de gând să lucreze, dacă ești în interiorul un terminal în interiorul aparatului, 46 00:01:56,900 --> 00:02:00,790 sau dacă sunteți în interiorul fereastra terminalului gedit 47 00:02:00,790 --> 00:02:02,090 în interiorul aparatului. 48 00:02:02,090 --> 00:02:03,770 Deci, aceste medii sunt identice. 49 00:02:03,770 --> 00:02:04,940 50 00:02:04,940 --> 00:02:07,270 >> Dar am de gând să merg un al treilea traseu. 51 00:02:07,270 --> 00:02:12,200 Și observați jos aici puțin adresă IP aici. 52 00:02:12,200 --> 00:02:15,940 Deci, nu trebuie să face acest lucru, dar acest IP 53 00:02:15,940 --> 00:02:19,700 address-- acum dacă Eu-- cu excepția este blocat de acest lucru. 54 00:02:19,700 --> 00:02:22,790 55 00:02:22,790 --> 00:02:27,000 OK, astfel încât adresa IP peste într-un terminal 56 00:02:27,000 --> 00:02:31,090 here-- astfel încât acest terminal peste aici este un terminal în Mac-ul meu. 57 00:02:31,090 --> 00:02:34,540 Deci, acest lucru este în nici un fel în prezent asociat cu aparatul deloc. 58 00:02:34,540 --> 00:02:39,360 Și dacă sunteți pe Windows, atunci ești Va trebui să descărcați ceva 59 00:02:39,360 --> 00:02:44,430 în mod special pentru acest lucru, în special, oamenii au tendinta de a utiliza Putty, P-U-T-T-Y. 60 00:02:44,430 --> 00:02:50,700 >> Deci, ce am de gând să fac este de tip SSH și apoi că adresa IP. 61 00:02:50,700 --> 00:02:54,030 Ei bine, jharvard la acea adresa IP. 62 00:02:54,030 --> 00:03:00,150 Așa 192.168.24.220. 63 00:03:00,150 --> 00:03:02,127 Acest mesaj înfricoșător, ignora-l. 64 00:03:02,127 --> 00:03:02,710 Trebuie doar să tastați da. 65 00:03:02,710 --> 00:03:04,550 66 00:03:04,550 --> 00:03:06,030 Acest lucru este CS50 într-o cutie. 67 00:03:06,030 --> 00:03:07,460 Se cere parola. 68 00:03:07,460 --> 00:03:11,910 >> Și așa într-o mulțime de aceste contexte în cazul în care se cere parola, [inaudibil]. 69 00:03:11,910 --> 00:03:15,670 Avem o mulțime de întrebări în cazul în care se spune că nu este de fapt tastarea. 70 00:03:15,670 --> 00:03:20,011 Nu te arata caracterele parola pe măsură ce tastați, dacă ceva, 71 00:03:20,011 --> 00:03:23,010 pentru o caracteristică de securitate, pentru că în cazul în care cineva este în căutarea peste umăr 72 00:03:23,010 --> 00:03:25,870 și văd star star stea stea, atunci ei 73 00:03:25,870 --> 00:03:28,640 știu că parola este de patru caractere. 74 00:03:28,640 --> 00:03:32,660 Deci, ideea este că va cere te pentru parola, de tip. 75 00:03:32,660 --> 00:03:34,490 Nu va pentru a arăta tu personajele, 76 00:03:34,490 --> 00:03:36,090 dar este de fapt de a le accepta. 77 00:03:36,090 --> 00:03:39,210 În acest caz, de fiecare dată când vezi vreodată un prompt de parolă 78 00:03:39,210 --> 00:03:42,280 care se ocupă cu aparatul, Parola va fi roșu. 79 00:03:42,280 --> 00:03:43,270 Așa Crimson. 80 00:03:43,270 --> 00:03:44,730 81 00:03:44,730 --> 00:03:50,550 >> Și acum, aici, în interiorul acestui fereastră care este în Mac-ul meu, 82 00:03:50,550 --> 00:03:54,120 Sunt, practic, având în aceeași părere exact 83 00:03:54,120 --> 00:03:57,040 ca în interiorul unui terminal în aparat. 84 00:03:57,040 --> 00:03:58,470 Deci, nu trebuie să faci asta. 85 00:03:58,470 --> 00:04:01,300 Puteți face tot ce ai doresc în interiorul aparatului. 86 00:04:01,300 --> 00:04:05,140 N-am făcut aproape de fapt nimic în aparat. 87 00:04:05,140 --> 00:04:09,440 Aproape am reduce la minimum întotdeauna că și acum Sunt SSH de lucru în aparat. 88 00:04:09,440 --> 00:04:11,480 89 00:04:11,480 --> 00:04:14,180 >> În orice caz, dacă au un calculator mai lent, 90 00:04:14,180 --> 00:04:15,820 s-ar putea observa o diferenta. 91 00:04:15,820 --> 00:04:18,839 Fac acest lucru pentru că-mi place această fereastră terminal. 92 00:04:18,839 --> 00:04:20,881 Ea are unele caracteristici, cum ar fi Eu pot împărți fereastra, 93 00:04:20,881 --> 00:04:22,672 iar acum pot SSH la prin aparatul. 94 00:04:22,672 --> 00:04:24,105 Am doi SSH se întâmplă dintr-o dată. 95 00:04:24,105 --> 00:04:28,030 96 00:04:28,030 --> 00:04:32,250 În cazul în care computerul este deosebit de lent și lucrați în aparat, 97 00:04:32,250 --> 00:04:35,200 și îți dai seama acest lucru este într-adevăr laggy, indiferent de. 98 00:04:35,200 --> 00:04:38,220 Tinde să fie mult mai rapid daca esti SSH-ed în. 99 00:04:38,220 --> 00:04:40,960 Dar altfel se poate lucra, fie un fel. 100 00:04:40,960 --> 00:04:42,388 >> Audiența: Ce SSH înseamnă? 101 00:04:42,388 --> 00:04:43,820 102 00:04:43,820 --> 00:04:47,479 >> ROB BOWDEN: scoici Secure, ceva de genul asta? 103 00:04:47,479 --> 00:04:48,270 Ce înseamnă SSH? 104 00:04:48,270 --> 00:04:54,214 105 00:04:54,214 --> 00:04:55,130 GABRIEL: coajă Secure. 106 00:04:55,130 --> 00:04:56,463 ALLISON: E coajă doar securizat. 107 00:04:56,463 --> 00:04:57,720 ROB BOWDEN: coajă Secure. 108 00:04:57,720 --> 00:05:03,700 Este un protocol care Tu-- e un protocol securizat, așa criptate. 109 00:05:03,700 --> 00:05:06,850 Oamenii nu pot spiona rețea și vezi ce spui la nimic 110 00:05:06,850 --> 00:05:08,120 ești SSH-ed a. 111 00:05:08,120 --> 00:05:12,900 Și, de fapt, în Olden de zile de la CS50, astfel încât în ​​anul 2009 112 00:05:12,900 --> 00:05:19,300 atunci când am fost un student în anul întâi, modul în care ai lucrat pe seturi de probleme CS50, 113 00:05:19,300 --> 00:05:22,490 Tu ai fost SSH-ed la câteva servere pe care le-a dat acces la, 114 00:05:22,490 --> 00:05:23,497 și ai lucrat pe acolo. 115 00:05:23,497 --> 00:05:25,330 Deci, nu ai avea această aparat grafic. 116 00:05:25,330 --> 00:05:26,160 Nu ai avut gedit. 117 00:05:26,160 --> 00:05:28,930 Tu nu au avut toate aceste lucruri pe care ai putea vizuală pentru punct și faceți clic. 118 00:05:28,930 --> 00:05:30,346 Ai avut de a lucra în această interfață. 119 00:05:30,346 --> 00:05:31,580 120 00:05:31,580 --> 00:05:33,716 Prefer să lucrez în această interfață. 121 00:05:33,716 --> 00:05:36,090 Deci, o parte din ceea ce vom pentru a merge la peste chiar acum 122 00:05:36,090 --> 00:05:39,560 sunt o grămadă de Comenzi că ar trebui 123 00:05:39,560 --> 00:05:42,095 începe să se familiarizeze cu ca te duci de-a lungul în curs. 124 00:05:42,095 --> 00:05:43,190 125 00:05:43,190 --> 00:05:45,790 Și sincer, odată ce ați te obișnuiești cu ei, 126 00:05:45,790 --> 00:05:48,220 este atât de mult mai rapid la lucrează în acest mediu 127 00:05:48,220 --> 00:05:53,690 decât este de a lucra cu căutare, glisare și făcând clic pe lucruri. 128 00:05:53,690 --> 00:05:55,340 129 00:05:55,340 --> 00:05:57,210 >> Deci, aici suntem. 130 00:05:57,210 --> 00:06:01,779 Acum am doar SSH-ed în, și așa implicit ai location-- 131 00:06:01,779 --> 00:06:04,820 a văzut unele dintre aceste comenzi din clasa, dar vom trece peste toate din nou. 132 00:06:04,820 --> 00:06:08,060 Locația implicită suntem in este directorul acasă. 133 00:06:08,060 --> 00:06:11,520 Și director, doar un alt cuvânt pentru dosar. 134 00:06:11,520 --> 00:06:13,310 Deci, suntem în directorul home. 135 00:06:13,310 --> 00:06:15,889 Tastați ls, lista de fișiere în acest director. 136 00:06:15,889 --> 00:06:17,430 Evident am creat un blah.c mai devreme. 137 00:06:17,430 --> 00:06:19,120 138 00:06:19,120 --> 00:06:20,472 Deci, avem un director desktop. 139 00:06:20,472 --> 00:06:21,930 Ai observat evidențierea sintaxei? 140 00:06:21,930 --> 00:06:27,400 141 00:06:27,400 --> 00:06:32,900 Evidențierea albastru deschis indică un director și albul drept 142 00:06:32,900 --> 00:06:34,380 indică doar un fișier simplu. 143 00:06:34,380 --> 00:06:35,410 144 00:06:35,410 --> 00:06:37,690 Deci nu vor fi alte culori pe care le vedeți. 145 00:06:37,690 --> 00:06:41,240 Un fișier executabil este, probabil, va a fi verde sau ceva de genul asta. 146 00:06:41,240 --> 00:06:44,820 OK, deci suntem în directorul home. 147 00:06:44,820 --> 00:06:48,970 >> Acum, dacă eu vreau să merg într-un alt director, cd este comanda vreau. 148 00:06:48,970 --> 00:06:52,720 Așa că schimbă director, și apoi treci numele directorului 149 00:06:52,720 --> 00:06:54,020 pe care doriti sa mergeti in. 150 00:06:54,020 --> 00:06:55,780 Deci, aici avem patru opțiuni. 151 00:06:55,780 --> 00:07:03,397 Pot intra în descărcări, iar acum vom vedea aici și-a actualizat acest paranteză 152 00:07:03,397 --> 00:07:04,480 să spun că sunt în ~ / descărcări. 153 00:07:04,480 --> 00:07:05,620 154 00:07:05,620 --> 00:07:06,800 >> Deci, ce este tilda? 155 00:07:06,800 --> 00:07:10,640 E o prescurtare pentru directorul tau de casa. 156 00:07:10,640 --> 00:07:15,260 Deci, aproape tot ceea ce faci este de gând să fie cu privire la directorul tau de casa, 157 00:07:15,260 --> 00:07:20,620 și cu handicap este doar o comandă Eu folosesc o dată într-un an, care 158 00:07:20,620 --> 00:07:22,420 doar imprimă directorul curent. 159 00:07:22,420 --> 00:07:25,730 Și așa veți vedea aici că ~ / Descărcări rezolvă într-adevăr 160 00:07:25,730 --> 00:07:26,896 la / home / jharvard / descărcări. 161 00:07:26,896 --> 00:07:29,320 162 00:07:29,320 --> 00:07:32,230 Deci, / home / jharvard este directorul meu acasă. 163 00:07:32,230 --> 00:07:33,700 164 00:07:33,700 --> 00:07:39,400 >> Deci, putem cd dot dot. 165 00:07:39,400 --> 00:07:47,800 Acum punct punct este un director special care întotdeauna se referă la un director în sus. 166 00:07:47,800 --> 00:07:51,730 Deci, dacă eu sunt în ~ / descărcări, apoi cd dot punct este de gând să-mi aducă la tilda. 167 00:07:51,730 --> 00:07:52,950 168 00:07:52,950 --> 00:07:55,490 Ce credem cd punct punct este de gând să-mi aducă acum? 169 00:07:55,490 --> 00:07:58,740 170 00:07:58,740 --> 00:08:00,570 O să-mi aducă la / home. 171 00:08:00,570 --> 00:08:04,450 Deci, tilda de director de lucru de imprimare, Sunt acum / home / jharvard. 172 00:08:04,450 --> 00:08:06,060 173 00:08:06,060 --> 00:08:08,820 un director de la faptul că, acum se spune aici / home. 174 00:08:08,820 --> 00:08:12,330 175 00:08:12,330 --> 00:08:17,180 >> Acum, cd punct punct. 176 00:08:17,180 --> 00:08:20,910 Acum sunt în directorul rădăcină, și nu se poate face din nou. 177 00:08:20,910 --> 00:08:23,340 Vei rămâne doar în Director rădăcină pentru totdeauna. 178 00:08:23,340 --> 00:08:26,700 Directorul rădăcină are o grămadă de lucruri pe care, dacă doriți să se uite în, 179 00:08:26,700 --> 00:08:27,410 poți. 180 00:08:27,410 --> 00:08:29,700 De exemplu, dacă mă duc în bin, care conține 181 00:08:29,700 --> 00:08:35,789 toate aceste binare, cum ar fi ls, și CD, și toate aceste lucruri. 182 00:08:35,789 --> 00:08:38,630 Deci, aceste comenzi trebuie să există undeva în sistem, 183 00:08:38,630 --> 00:08:40,820 și este în directorul / bin. 184 00:08:40,820 --> 00:08:44,530 Dar aproape tot ceea ce faci este va fi de la directorul tau de casa. 185 00:08:44,530 --> 00:08:49,490 Și cd fără nici un fel de argumente, ai putea spune cd ~, nu trebuie să. 186 00:08:49,490 --> 00:08:51,810 cd este de gând să vă aducă înapoi la directorul tau de casa. 187 00:08:51,810 --> 00:08:53,170 188 00:08:53,170 --> 00:08:54,230 >> Un ultim unul. 189 00:08:54,230 --> 00:09:00,200 cd - este de gând să vă aducă înapoi la ultima directorul care ai fost în. 190 00:09:00,200 --> 00:09:04,080 Așa că am cd'd de două ori la rând, așa meu Ultima director a fost directorul de acasă. 191 00:09:04,080 --> 00:09:11,520 Dacă mă duc să reducă bin, iar acum Să mergem în sus și în utilizare. 192 00:09:11,520 --> 00:09:12,550 193 00:09:12,550 --> 00:09:13,280 Cota de utilizator. 194 00:09:13,280 --> 00:09:14,840 195 00:09:14,840 --> 00:09:15,940 Să mergem la cota de utilizator. 196 00:09:15,940 --> 00:09:17,140 Acum sunt acum în acțiune utilizator. 197 00:09:17,140 --> 00:09:19,320 CD -, înapoi în bin. 198 00:09:19,320 --> 00:09:22,980 Deci, aceasta devine deosebit de utile atunci când have-- și că va comuta. 199 00:09:22,980 --> 00:09:25,660 Deci, cota de utilizator, înapoi bin, cota de bin. 200 00:09:25,660 --> 00:09:27,250 >> Deci, aceasta devine util. 201 00:09:27,250 --> 00:09:33,150 Ați putea găsi te având în mulți, multe, multe directoare imbricate. 202 00:09:33,150 --> 00:09:37,370 Și tu vrei să faci ceva foarte repede într-un director superior. 203 00:09:37,370 --> 00:09:40,330 Te duci la acel director, face modificările și chestii de genul asta, 204 00:09:40,330 --> 00:09:42,400 iar acum vrei să mergi înapoi de unde ai fost. 205 00:09:42,400 --> 00:09:43,660 cd -. 206 00:09:43,660 --> 00:09:47,320 Sunt mereu frustrat atunci când se întâmplă să merg 207 00:09:47,320 --> 00:09:49,630 pentru că directorul I a vrut să facă muncă în. 208 00:09:49,630 --> 00:09:52,670 Intotdeauna mi-am primi frustrat atunci când am făcut- o în două etape în loc de o singură etapă, 209 00:09:52,670 --> 00:09:55,715 pentru că asta înseamnă că cd - se întâmplă pentru a aduce în acea locație intermediar 210 00:09:55,715 --> 00:09:57,010 în loc de unde vreau să merg. 211 00:09:57,010 --> 00:09:59,350 212 00:09:59,350 --> 00:10:01,450 >> Deci, vedem toate fișierele listă. 213 00:10:01,450 --> 00:10:03,300 Știm cum să obțineți în jurul valorii de până acum. 214 00:10:03,300 --> 00:10:09,900 Deci, acum hai sa vorbim despre editarea fișierelor. 215 00:10:09,900 --> 00:10:18,790 Deci, în acest curs, ești aproape întotdeauna de așteptat să utilizeze gedit. 216 00:10:18,790 --> 00:10:24,410 Dacă doriți, puteți lua următorul pas și începe învățarea unui text linie de comandă 217 00:10:24,410 --> 00:10:25,240 editor. 218 00:10:25,240 --> 00:10:27,560 Deci, există diverse opțiuni. 219 00:10:27,560 --> 00:10:31,760 >> Și cele care sunt, probabil, O să fie relevante pentru tine, 220 00:10:31,760 --> 00:10:35,340 avem Nano, Vim, și Emacs. 221 00:10:35,340 --> 00:10:40,196 Deci, Nano este începători linie de comandă editor de text. 222 00:10:40,196 --> 00:10:42,985 Deci, Nano hai să mergem pe blah.c am creat mai devreme. 223 00:10:42,985 --> 00:10:44,030 224 00:10:44,030 --> 00:10:46,480 E doar acest fișier C standard. 225 00:10:46,480 --> 00:10:51,540 Și veți vedea o grămadă de chestii întâmplă în partea de jos a ecranului, 226 00:10:51,540 --> 00:10:54,100 și aparent blah.c conține acest cod C. 227 00:10:54,100 --> 00:10:55,420 228 00:10:55,420 --> 00:11:00,330 >> Deci, în acest editor special, ceea ce se spune la bottom-- 229 00:11:00,330 --> 00:11:06,290 acum acest simbol caret, vom vedea acest lucru ^ G, ^ X, ^ O. 230 00:11:06,290 --> 00:11:10,310 Astfel că, în aproape toate context pe care le vezi, 231 00:11:10,310 --> 00:11:13,530 s-ar putea vedea ca simbol caret în alte locuri on-line, de pe Stack Overflow, 232 00:11:13,530 --> 00:11:14,450 ceva de genul asta. 233 00:11:14,450 --> 00:11:16,970 Ea se referă aproape întotdeauna de controlat. 234 00:11:16,970 --> 00:11:21,590 Deci, pentru a ieși vreau să fac De control X. control X, iese. 235 00:11:21,590 --> 00:11:22,750 236 00:11:22,750 --> 00:11:26,855 Și eu pot folosi săgeată meu chei pentru a se deplasa. 237 00:11:26,855 --> 00:11:28,010 238 00:11:28,010 --> 00:11:31,015 Observați că nu pot punct și faceți clic cu ușurință. 239 00:11:31,015 --> 00:11:33,000 240 00:11:33,000 --> 00:11:35,010 Ai nevoie de a utiliza săgeata chei pentru a se deplasa. 241 00:11:35,010 --> 00:11:36,950 Ar putea fi o setare la punct și faceți clic. 242 00:11:36,950 --> 00:11:40,000 >> Dar să facă unele schimbări. 243 00:11:40,000 --> 00:11:42,100 Acum, de control X pentru a merge ieșire. 244 00:11:42,100 --> 00:11:44,120 Se va spune Salvați tampon modificată. 245 00:11:44,120 --> 00:11:47,900 Acum prompte, y pentru da, n pentru nr. 246 00:11:47,900 --> 00:11:49,900 De control C pentru a anula. 247 00:11:49,900 --> 00:11:50,780 Voi spune doar da. 248 00:11:50,780 --> 00:11:51,709 File name pentru a scrie. 249 00:11:51,709 --> 00:11:53,500 Valoarea implicită este fișierul care este deja. 250 00:11:53,500 --> 00:11:54,230 A lovi Enter. 251 00:11:54,230 --> 00:11:54,740 OK. 252 00:11:54,740 --> 00:11:58,580 Acum am doar editat acest fișier, a salvat-o, iar ea este schimbat. 253 00:11:58,580 --> 00:11:59,770 254 00:11:59,770 --> 00:12:03,000 >> Deci, Nano este cea mai ușoară editor de text te obișnuiești. 255 00:12:03,000 --> 00:12:05,520 Alternativele sunt Vim și Emacs. 256 00:12:05,520 --> 00:12:11,250 Acestea sunt editoare de text de nivel superior care au o curbă de învățare foarte abrupt. 257 00:12:11,250 --> 00:12:13,740 Deci, preferința mea personală este Vim. 258 00:12:13,740 --> 00:12:17,175 Și are o mare varietate de opțiuni. 259 00:12:17,175 --> 00:12:18,210 260 00:12:18,210 --> 00:12:24,070 Și odată ce te obișnuiești să-l, nu vei 261 00:12:24,070 --> 00:12:26,900 vreau să merg la orice alt editor de text pentru că pur și simplu 262 00:12:26,900 --> 00:12:29,590 au atât de multe lucruri disponibil pentru tine în aceste, 263 00:12:29,590 --> 00:12:31,690 dar este nevoie de un adevărat lungă perioadă de timp pentru a învăța. 264 00:12:31,690 --> 00:12:36,000 Deci, poate vrei doar pentru a forța te chiar acum să te obișnuiești cu ea, 265 00:12:36,000 --> 00:12:38,130 dar aș spune că merită. 266 00:12:38,130 --> 00:12:39,660 Dar este greu. 267 00:12:39,660 --> 00:12:41,220 >> Și apoi Emacs. 268 00:12:41,220 --> 00:12:44,940 Ma lupt mereu în Emacs, deoarece Știu cum să fac absolut nimic. 269 00:12:44,940 --> 00:12:47,755 Se pare că Emacs nu este în mod implicit instalat pe aparatul. 270 00:12:47,755 --> 00:12:49,210 271 00:12:49,210 --> 00:12:51,720 Probabil, vom adăuga că ca un instalații implicite. 272 00:12:51,720 --> 00:12:59,620 273 00:12:59,620 --> 00:13:02,390 Odată ce ați învăța unul de Vim sau Emacs, nu e 274 00:13:02,390 --> 00:13:04,810 nici un motiv convingător pentru învăța vreodată de altă parte, 275 00:13:04,810 --> 00:13:07,570 dar este un stil complet diferit. 276 00:13:07,570 --> 00:13:10,460 OK așa că e editarea fișierelor de text. 277 00:13:10,460 --> 00:13:13,374 >> Audiența: Dacă ați fost blocat în Vim chiar acum, cum fac we-- 278 00:13:13,374 --> 00:13:18,840 279 00:13:18,840 --> 00:13:20,800 >> ROB BOWDEN: Nu sunt mai multe moduri în Vim, 280 00:13:20,800 --> 00:13:23,770 și există întreg tutoriale despre învățare Vim. 281 00:13:23,770 --> 00:13:27,390 Deci, dacă se întâmplă să fie în modul de inserare în ordine 282 00:13:27,390 --> 00:13:29,930 de introducere a textului, pe care le puteți introduceți că în diferite moduri, 283 00:13:29,930 --> 00:13:31,610 dar i este cum ajungi în modul insert. 284 00:13:31,610 --> 00:13:34,780 În sau ieși din orice speciale Modul in care va aflati, doar de evacuare. 285 00:13:34,780 --> 00:13:37,640 Și doar tu bash de evacuare pentru a obține din orice moduri imbricate în dumneavoastră. 286 00:13:37,640 --> 00:13:40,360 Doar OK, acum m-am întors în modul normal. 287 00:13:40,360 --> 00:13:43,790 >> Și astfel în modul normal, un colon. 288 00:13:43,790 --> 00:13:45,160 Tu vezi aceasta apare în partea de jos. 289 00:13:45,160 --> 00:13:46,240 Și apoi q. 290 00:13:46,240 --> 00:13:52,600 Deci, q va părăsi dacă ați efectuat modificări, care Eu---am făcut schimbări? 291 00:13:52,600 --> 00:13:54,180 Am făcut modificări aparent. 292 00:13:54,180 --> 00:13:57,264 Deci, dacă ați efectuat modificări, se va spune puteți pune un semn de exclamare. 293 00:13:57,264 --> 00:13:58,430 Am de gând să-l numesc un bang. 294 00:13:58,430 --> 00:14:02,040 Astfel, puteți pune un ban la doar a ieși fără a face nimic, 295 00:14:02,040 --> 00:14:04,520 sau WQ colon vor salvați și ieșiți. 296 00:14:04,520 --> 00:14:06,580 Deci, w, în general, este de a scrie. 297 00:14:06,580 --> 00:14:08,300 Deci, scrie fișierul. 298 00:14:08,300 --> 00:14:09,810 Pot să scriu și ieși. 299 00:14:09,810 --> 00:14:13,606 Sau ai putea avea doar slam QX, q bang doar 300 00:14:13,606 --> 00:14:16,230 pentru a ieși de acolo, indiferent orice modificări pe care le-ați făcut. 301 00:14:16,230 --> 00:14:21,310 302 00:14:21,310 --> 00:14:28,940 >> Bine, deci acum hai go-- putem crea fișiere. 303 00:14:28,940 --> 00:14:30,890 Să începem eliminarea fișierelor. 304 00:14:30,890 --> 00:14:35,450 Și voi arunca doar într-o singură nouă comandă rapidă, atingeți. 305 00:14:35,450 --> 00:14:38,200 Deci, atingeți foo. 306 00:14:38,200 --> 00:14:39,340 Bar Touch. 307 00:14:39,340 --> 00:14:40,220 Atingeți Baz. 308 00:14:40,220 --> 00:14:42,810 Dacă aș ls, acum vom vedea că există acele fișiere. 309 00:14:42,810 --> 00:14:44,315 Sunt complet gol. 310 00:14:44,315 --> 00:14:47,178 Deci, rămâne este doar un simplu mod de unul, [inaudibil]. 311 00:14:47,178 --> 00:14:50,850 312 00:14:50,850 --> 00:14:54,640 Doi, punct de vedere tehnic doar la stat ea, se actualizează marcajele de timp. 313 00:14:54,640 --> 00:14:58,470 Deci, orice fișier pe care îl creați are un marcaj de timp asociat cu ea. 314 00:14:58,470 --> 00:15:01,330 Deci, Baz a fost creat pe 14 septembrie, la 16:21. 315 00:15:01,330 --> 00:15:02,570 316 00:15:02,570 --> 00:15:06,670 Acum este 16:22, așa că, dacă Eu ating din nou Baz, ne-am 317 00:15:06,670 --> 00:15:11,420 a se vedea că Baz a fost cel mai recent modificat la 16:22. 318 00:15:11,420 --> 00:15:17,680 Dar altfel eu aproape niciodată uita-te la marcajele de timp cu privire la fișiere. 319 00:15:17,680 --> 00:15:20,490 Deci, rămâne, aici eu sunt doar folosind pentru a crea unele fișiere rapid. 320 00:15:20,490 --> 00:15:21,620 321 00:15:21,620 --> 00:15:27,400 >> Bine, asa ca acum este rm comandă care ne pasă de aici. 322 00:15:27,400 --> 00:15:28,665 Și putem rm boo. 323 00:15:28,665 --> 00:15:31,000 Spune elimina regulat fișier boo gol. 324 00:15:31,000 --> 00:15:34,070 Și putem de tip Y, iar acum se indeparteaza. 325 00:15:34,070 --> 00:15:34,850 rm Baz. 326 00:15:34,850 --> 00:15:35,910 327 00:15:35,910 --> 00:15:38,620 Scoateți fișier gol regulat Baz și tastați n pentru nr. 328 00:15:38,620 --> 00:15:40,060 Acum nu este eliminat. 329 00:15:40,060 --> 00:15:41,240 Deci, bar și Baz încă mai există. 330 00:15:41,240 --> 00:15:42,232 Foo este plecat. 331 00:15:42,232 --> 00:15:43,148 GABRIEL: Continuă să vorbești. 332 00:15:43,148 --> 00:15:43,970 333 00:15:43,970 --> 00:15:44,720 ROB BOWDEN: Great. 334 00:15:44,720 --> 00:15:45,800 335 00:15:45,800 --> 00:15:50,370 Deci, mesajul enervant aici, scoateți empty-- regulat 336 00:15:50,370 --> 00:15:52,390 ce faci acolo? 337 00:15:52,390 --> 00:15:54,030 Scoateți fișier gol regulat. 338 00:15:54,030 --> 00:15:58,840 339 00:15:58,840 --> 00:16:01,610 Deci, dacă nu vrem să fie deranjat de acest mesaj, 340 00:16:01,610 --> 00:16:05,340 putem arunca în acest -f pavilion, și așa că e forța. 341 00:16:05,340 --> 00:16:11,330 Și acum, dacă eu -f rm, nu e de gând să spune vrei să eliminați acest fișier. 342 00:16:11,330 --> 00:16:12,040 O să o facem. 343 00:16:12,040 --> 00:16:13,720 Și ls, nu văd mai bar acolo. 344 00:16:13,720 --> 00:16:14,810 345 00:16:14,810 --> 00:16:18,021 >> Acum, că este un potențial comandă periculos. 346 00:16:18,021 --> 00:16:19,020 Ea tinde să nu prea rău. 347 00:16:19,020 --> 00:16:22,240 Ne vom întoarce într-un al doilea modul se poate obține cu adevărat periculos. 348 00:16:22,240 --> 00:16:28,740 Și să creeze un director temp. 349 00:16:28,740 --> 00:16:30,880 mkdir, o altă comandă. 350 00:16:30,880 --> 00:16:34,880 Deci, mkdir este o comandă care face un director. 351 00:16:34,880 --> 00:16:40,650 Iar acum prin E vedem această lumină frumoasă albastru subliniat directorul temp. 352 00:16:40,650 --> 00:16:42,295 Nu pot cd în temp. 353 00:16:42,295 --> 00:16:44,590 Și pot mkdir foo. 354 00:16:44,590 --> 00:16:46,330 cd în foo. bar mkdir. 355 00:16:46,330 --> 00:16:46,860 cd în bar. 356 00:16:46,860 --> 00:16:49,400 357 00:16:49,400 --> 00:16:54,300 >> Deci, vom vedea, putem obține cu ușurință în unele cuiburi destul de adânc. 358 00:16:54,300 --> 00:16:56,385 Acum, cum pot elimina un director? 359 00:16:56,385 --> 00:16:57,020 360 00:16:57,020 --> 00:16:57,520 rmdir. 361 00:16:57,520 --> 00:16:59,030 362 00:16:59,030 --> 00:17:03,540 Deci, dacă am încerca direct la rm, cum am făcut cu un fișier obișnuit, 363 00:17:03,540 --> 00:17:06,420 bar rm se va spune nu se poate elimina bar. 364 00:17:06,420 --> 00:17:07,569 Este un director. 365 00:17:07,569 --> 00:17:10,619 E o comandă specială pentru eliminarea directoare, un fel de. 366 00:17:10,619 --> 00:17:12,900 Bar așa rmdir. 367 00:17:12,900 --> 00:17:13,710 Acum bar este plecat. 368 00:17:13,710 --> 00:17:14,980 369 00:17:14,980 --> 00:17:22,680 >> OK, deci rmdir am destul de mult nu folositi niciodata. 370 00:17:22,680 --> 00:17:32,220 Motivul being-- permite acum lui face un bar fișier obișnuit aici. 371 00:17:32,220 --> 00:17:34,780 Boo așa rmdir. 372 00:17:34,780 --> 00:17:35,760 rmdir. 373 00:17:35,760 --> 00:17:36,900 Nu a reușit pentru a elimina foo. 374 00:17:36,900 --> 00:17:38,420 Director nu este gol. 375 00:17:38,420 --> 00:17:43,420 Deci, nu puteți utiliza elimina dir pe o director, care are lucruri in ea. 376 00:17:43,420 --> 00:17:44,830 >> Deci, aveți câteva opțiuni. 377 00:17:44,830 --> 00:17:49,780 Puteți merge în acel director, eliminați tot manual, iar apoi ieși 378 00:17:49,780 --> 00:17:51,759 și rmdir director. 379 00:17:51,759 --> 00:17:53,050 Care, evident, sună enervant. 380 00:17:53,050 --> 00:17:55,000 Ce se întâmplă dacă există mii de de fișiere în acolo? 381 00:17:55,000 --> 00:17:58,119 Ei bine, ai putea rm *. 382 00:17:58,119 --> 00:17:59,410 Vom vorbi despre * într-o secundă. 383 00:17:59,410 --> 00:18:00,870 Aceasta înseamnă de fapt toate lucrurile. 384 00:18:00,870 --> 00:18:02,030 385 00:18:02,030 --> 00:18:05,470 Dar mai bine, r așa rm. 386 00:18:05,470 --> 00:18:10,220 Deci, rm -r-- într-o mulțime de contexte, -r înseamnă recursiv, 387 00:18:10,220 --> 00:18:13,810 care vom vorbi despre ceea ce mijloace recursive în câteva săptămâni. 388 00:18:13,810 --> 00:18:18,630 Dar aceasta înseamnă în esență deplasare totalitatea acestui director 389 00:18:18,630 --> 00:18:20,190 și scoateți tot. 390 00:18:20,190 --> 00:18:24,420 >> Foo -r astfel rm va spune coborî în directorul foo? 391 00:18:24,420 --> 00:18:25,210 Da. 392 00:18:25,210 --> 00:18:26,800 Îndepărtați regulat gol fișier foo / bar? 393 00:18:26,800 --> 00:18:27,880 394 00:18:27,880 --> 00:18:28,540 Da. 395 00:18:28,540 --> 00:18:29,760 Scoateți director foo? 396 00:18:29,760 --> 00:18:30,260 Da. 397 00:18:30,260 --> 00:18:31,470 398 00:18:31,470 --> 00:18:35,020 Deci, acum foo și totul în cadrul acestuia a fost eliminat. 399 00:18:35,020 --> 00:18:42,370 >> Acum, că pot obține deosebit de enervant when-- să atingă 1, apăsați 2, atingeți 3. 400 00:18:42,370 --> 00:18:44,400 Ar putea avea o grămadă de fișiere. 401 00:18:44,400 --> 00:18:49,060 Dacă aș fi vrut, aș putea crea mii de fișiere de aici. 402 00:18:49,060 --> 00:18:53,340 Și foo -r rm se întâmplă a fi destul de enervant. 403 00:18:53,340 --> 00:18:55,374 Da, da, da, da, da, da. 404 00:18:55,374 --> 00:18:57,540 Cu mult mai multe fișiere vă a se vedea cât de repede de mai multe ori 405 00:18:57,540 --> 00:18:58,581 Mi-ar fi de tip da. 406 00:18:58,581 --> 00:19:02,265 Ei bine, tocmai am văzut mai înainte cum putem scăpa de care au nevoie să tastați da, -f. 407 00:19:02,265 --> 00:19:03,330 408 00:19:03,330 --> 00:19:07,020 Deci, mkdir foo foo cd rămâne 1 2 3. 409 00:19:07,020 --> 00:19:08,380 410 00:19:08,380 --> 00:19:17,190 OK, foo -rf așa rm este de gând să elimina orbește foo în întregime. 411 00:19:17,190 --> 00:19:17,960 Nici un prompt. 412 00:19:17,960 --> 00:19:18,650 Nici nimic. 413 00:19:18,650 --> 00:19:20,040 Foo este plecat. 414 00:19:20,040 --> 00:19:23,830 >> Așa că am tendința de a utiliza acest comanda tot timpul. 415 00:19:23,830 --> 00:19:25,120 416 00:19:25,120 --> 00:19:27,830 Acestea fiind spuse, este o comandă foarte periculos, 417 00:19:27,830 --> 00:19:33,240 pentru că dacă fac ceva de genul acest lucru, nu va mai solicita. 418 00:19:33,240 --> 00:19:34,730 Acesta va fi plecat. 419 00:19:34,730 --> 00:19:40,140 Și se întâmplă destul de frecvent, și chiar la cursuri de nivel superior CS. 420 00:19:40,140 --> 00:19:42,070 Uneori, vom vedea ceva în cazul în care cineva 421 00:19:42,070 --> 00:19:48,360 spune că accidental nostru rm rf-ed casa mea director și tot setul meu P este plecat. 422 00:19:48,360 --> 00:19:52,422 Și e devastator, dar nu exista nici coș de gunoi. 423 00:19:52,422 --> 00:19:54,380 Nu e nici nu e nimic pentru tine pentru a prelua. 424 00:19:54,380 --> 00:19:55,330 E doar dus. 425 00:19:55,330 --> 00:19:56,529 426 00:19:56,529 --> 00:19:58,320 Chiar mai rău ar fi ceva de genul rm -rf /. 427 00:19:58,320 --> 00:19:59,432 428 00:19:59,432 --> 00:20:01,140 Așa că ne-am discutat că directorul rădăcină. 429 00:20:01,140 --> 00:20:03,095 Ea deține toate fișierele de pe sistemul dumneavoastră. 430 00:20:03,095 --> 00:20:04,120 431 00:20:04,120 --> 00:20:07,380 Lucrurile au tendința de a obține destul de murdar când scoateți lucruri cum ar fi ls, 432 00:20:07,380 --> 00:20:10,280 și CD-uri, precum și toți cei. 433 00:20:10,280 --> 00:20:15,467 >> Audiența: Care este diferența între rm, rf, și rm * 434 00:20:15,467 --> 00:20:16,300 ROB BOWDEN: Deci rm * - 435 00:20:16,300 --> 00:20:17,700 436 00:20:17,700 --> 00:20:22,300 >> ALLISON: Întrebarea a fost ceea ce este diferență între rm, rf, și rm *. 437 00:20:22,300 --> 00:20:23,750 438 00:20:23,750 --> 00:20:25,950 >> ROB BOWDEN: Deci rm *. 439 00:20:25,950 --> 00:20:31,910 Stea, în general, mijloace toate conținutul acestui director. 440 00:20:31,910 --> 00:20:33,540 441 00:20:33,540 --> 00:20:35,540 Încerc să mă gândesc la alte moduri de a arata stele. 442 00:20:35,540 --> 00:20:38,280 443 00:20:38,280 --> 00:20:44,780 Ei bine, a juca de fapt, în general, înseamnă a se potrivi orice model. 444 00:20:44,780 --> 00:20:54,930 Deci, dacă am un fișier numit dog1, atingeți dog2, atingeți cat1, atingeți cat2. 445 00:20:54,930 --> 00:20:56,050 446 00:20:56,050 --> 00:21:02,110 Deci, ls * 1 se va imprima cat1 și dog1, pentru că stele este umplut 447 00:21:02,110 --> 00:21:06,270 în aplice: cea trebuie să fie acolo, dar stele poate fi pisică sau de câine. 448 00:21:06,270 --> 00:21:07,247 E un wild card. 449 00:21:07,247 --> 00:21:08,580 Asta e cuvântul caut. 450 00:21:08,580 --> 00:21:09,120 Wild card. 451 00:21:09,120 --> 00:21:10,180 452 00:21:10,180 --> 00:21:13,960 Sau aș putea ls câine *, și Am luat pentru a vedea dog1, dog2. 453 00:21:13,960 --> 00:21:16,870 Deci, acestea sunt listarea fișierele care se potrivesc cu acel model special. 454 00:21:16,870 --> 00:21:18,150 Puteți utiliza ls în acest fel. 455 00:21:18,150 --> 00:21:19,350 456 00:21:19,350 --> 00:21:22,020 >> Ls * stele Meciuri nimic. 457 00:21:22,020 --> 00:21:25,710 Deci, o să imprimați toate conținutul acestui director 458 00:21:25,710 --> 00:21:27,290 din moment ce toate se potrivesc. 459 00:21:27,290 --> 00:21:30,130 Nu va pentru a imprima nimic în directoare de nivel superior. 460 00:21:30,130 --> 00:21:38,680 Dacă am un sub-director, foo, și atingeți 1 2 3-- așa că acum, dacă rm * stele, 461 00:21:38,680 --> 00:21:41,450 elimina cat1, cat2, dog1, dog2. 462 00:21:41,450 --> 00:21:42,340 Nu se poate elimina foo. 463 00:21:42,340 --> 00:21:43,090 Este un director. 464 00:21:43,090 --> 00:21:43,920 465 00:21:43,920 --> 00:21:50,340 >> Deci, stele și se extinde la toate fișierele din directorul. 466 00:21:50,340 --> 00:21:55,210 Deci, punct de vedere tehnic rm * este ca și cum spune cat1 rm, cat2, dog1, dog2, foo. 467 00:21:55,210 --> 00:22:03,630 Întrucât -rf rm, tehnic stea ar fi realiza ceea ce ne dorim, dar rm -rf-- 468 00:22:03,630 --> 00:22:06,090 dacă am ieși din această director, temp -rf rm, 469 00:22:06,090 --> 00:22:08,890 care va intra în temp și elimina recursiv totul. 470 00:22:08,890 --> 00:22:11,260 471 00:22:11,260 --> 00:22:21,060 >> Deci, stele și este separată prin aceea că acel Se înțelege by-- astfel încât acest lucru 472 00:22:21,060 --> 00:22:25,090 că eu sunt rulează în acest lucru care ma determinat pentru comenzi 473 00:22:25,090 --> 00:22:28,770 și apoi de executare și de a face ei, eu numesc acest cochilia mea. 474 00:22:28,770 --> 00:22:31,930 Și astfel acest shell este ea însăși un program. 475 00:22:31,930 --> 00:22:35,010 Și dacă am vrut, am ar putea rula în / bin / bash. 476 00:22:35,010 --> 00:22:36,930 Shell-ul se numește bash. 477 00:22:36,930 --> 00:22:39,340 Și acum am observat ceva sa schimbat ușor, 478 00:22:39,340 --> 00:22:42,200 si asta pentru ca setările mele pentru coajă sunt oarecum diferite. 479 00:22:42,200 --> 00:22:45,415 >> Dar acum am tehnic de funcționare o coajă în coajă meu original, 480 00:22:45,415 --> 00:22:49,570 și eu pot ieși din asta coajă, și acum M-am întors la cochilie nivel superior. 481 00:22:49,570 --> 00:22:55,240 Scopul de a spune că este-- steaua. 482 00:22:55,240 --> 00:22:59,020 Deci, steaua este ceva de înțeles de către bash. 483 00:22:59,020 --> 00:23:04,260 Deci, rm -rf, pavilion -rf este înțeleasă doar prin rm. 484 00:23:04,260 --> 00:23:06,380 Se știe că, atunci când trece un -rf pe care le 485 00:23:06,380 --> 00:23:09,520 doriți să-l eliminați recursiv toate fișierele fără a întreba. 486 00:23:09,520 --> 00:23:13,960 Vedeta se înțelege ceva de bash că atunci când spui rm *, 487 00:23:13,960 --> 00:23:16,890 bash nu este de gând să spun hei rm *, eliminați stele. 488 00:23:16,890 --> 00:23:21,010 Bash va spune rm * elimina cat1, cat2, dog1, dog2. 489 00:23:21,010 --> 00:23:24,305 Va mod automat pentru a extinde toate fișierele din directorul. 490 00:23:24,305 --> 00:23:29,100 491 00:23:29,100 --> 00:23:33,140 >> Și în mod similar tilda este un alt simbol că bash înțelege. 492 00:23:33,140 --> 00:23:37,130 Când spui cd ~, bash extinde care a directorul tau de casa. 493 00:23:37,130 --> 00:23:38,910 494 00:23:38,910 --> 00:23:40,210 Alte întrebări până acum? 495 00:23:40,210 --> 00:23:42,760 496 00:23:42,760 --> 00:23:46,060 OK așa că vom începe să mergi repede. 497 00:23:46,060 --> 00:23:47,700 498 00:23:47,700 --> 00:23:48,545 >> Finalizare Tab. 499 00:23:48,545 --> 00:23:49,670 Doar să-l arunce acolo. 500 00:23:49,670 --> 00:23:51,530 O mulțime de oameni nu realiza aceasta există. 501 00:23:51,530 --> 00:23:55,060 Deci, dacă am de tip CD dow, I vreau să merg în descărcări. 502 00:23:55,060 --> 00:23:56,700 Nu am nevoie să tastați nloads. 503 00:23:56,700 --> 00:23:57,960 504 00:23:57,960 --> 00:24:00,770 Eu pot lovi doar Tab. 505 00:24:00,770 --> 00:24:03,794 Deci, recunoaște că Dow este un prefix care 506 00:24:03,794 --> 00:24:05,710 nu se potrivește cu nimic altceva în acest director, 507 00:24:05,710 --> 00:24:07,520 asa ca va finaliza asta pentru tine. 508 00:24:07,520 --> 00:24:08,610 Acum pot intra. 509 00:24:08,610 --> 00:24:10,110 >> De asemenea, am face asta recursiv. 510 00:24:10,110 --> 00:24:11,205 Foo așa mkdir. 511 00:24:11,205 --> 00:24:12,480 512 00:24:12,480 --> 00:24:13,300 Să mergem în foo. 513 00:24:13,300 --> 00:24:14,830 bar mkdir. 514 00:24:14,830 --> 00:24:17,345 Deci, merge înapoi la casa mea director, eu pot vedea descărcări. 515 00:24:17,345 --> 00:24:19,040 516 00:24:19,040 --> 00:24:21,860 Acum, fila lovit din nou, merge în mod automat pentru a umple în foo. 517 00:24:21,860 --> 00:24:22,880 E singurul director. 518 00:24:22,880 --> 00:24:25,340 Tab lovind din nou, în mod automat de gând să umple în bar. 519 00:24:25,340 --> 00:24:26,798 Așa că acum sunt în (~ Downloads / foo / bar). 520 00:24:26,798 --> 00:24:27,310 521 00:24:27,310 --> 00:24:31,692 >> Deci, această completare tab, ori de câte ori am ajuns la ore de birou, 522 00:24:31,692 --> 00:24:33,400 și stau peste umărul cuiva, 523 00:24:33,400 --> 00:24:40,470 și se duc rm D-O-W-N-L-O-A-D-S, eu sunt pe moarte. 524 00:24:40,470 --> 00:24:41,990 Tab doar, tab, tab, tab. 525 00:24:41,990 --> 00:24:44,550 526 00:24:44,550 --> 00:24:45,630 Deci, tab folosit cu siguranta. 527 00:24:45,630 --> 00:24:47,890 528 00:24:47,890 --> 00:24:49,840 Și în mod similar și jos, o mulțime de oameni 529 00:24:49,840 --> 00:24:51,930 doar că sa întâmplat nu s-au lovit în sus și în jos. 530 00:24:51,930 --> 00:24:54,870 Va trece prin cea anterioară comenzi, asa ca daca ai fugit pur și simplu ceva, 531 00:24:54,870 --> 00:24:58,300 și doriți să-l rulați din nou, țineți doar până ajungi la ea. 532 00:24:58,300 --> 00:24:59,870 533 00:24:59,870 --> 00:25:00,370 OK. 534 00:25:00,370 --> 00:25:01,460 535 00:25:01,460 --> 00:25:03,585 >> Atât de rapid, alte lucruri. 536 00:25:03,585 --> 00:25:04,800 537 00:25:04,800 --> 00:25:05,930 Să ne întoarcem în temp. 538 00:25:05,930 --> 00:25:06,976 539 00:25:06,976 --> 00:25:08,125 Să crea unele fișiere. 540 00:25:08,125 --> 00:25:10,480 541 00:25:10,480 --> 00:25:15,215 Deci, aici, eu sunt doar O să enumera câteva cuvinte. 542 00:25:15,215 --> 00:25:18,460 543 00:25:18,460 --> 00:25:21,035 câine, pisică, miau. 544 00:25:21,035 --> 00:25:23,940 545 00:25:23,940 --> 00:25:26,040 Să facem câine, pește. 546 00:25:26,040 --> 00:25:27,500 547 00:25:27,500 --> 00:25:32,320 Deci, acum rep este un foarte comenzi utile pe care le 548 00:25:32,320 --> 00:25:37,820 utilizați pentru a căuta de-a lungul fișierele pentru un anumit text, 549 00:25:37,820 --> 00:25:40,910 și tehnic poți să faci cu adevărat expresii complexe pentru o pentru a se potrivi. 550 00:25:40,910 --> 00:25:44,830 >> Deci, aici, dacă am grep, și ce vreau să cauți? 551 00:25:44,830 --> 00:25:49,130 Să spunem că eu sunt în căutarea pentru pisici, și Vreau să caute toate aceste fișiere. 552 00:25:49,130 --> 00:25:50,650 Deci, cum fac toate aceste fișiere? 553 00:25:50,650 --> 00:25:51,900 Star. 554 00:25:51,900 --> 00:25:54,939 Deci, într-un fișier, am pisică. 555 00:25:54,939 --> 00:25:56,980 Eu, probabil, ar putea avea a numit-o ceva mai bine, 556 00:25:56,980 --> 00:25:59,063 pentru că arată ca numerele de linie sau ceva. 557 00:25:59,063 --> 00:26:01,590 Dar într-un fișier am o linie cu pisica. 558 00:26:01,590 --> 00:26:04,160 În fișier doi am o linie cu pisica. 559 00:26:04,160 --> 00:26:07,280 Așa că acum pot privi in ​​interiorul dosar, și a se vedea Oh, da, că fișierul a avut pisică. 560 00:26:07,280 --> 00:26:10,210 Notă dosar trei nu a fost compensată pentru că pisica nu este acolo. 561 00:26:10,210 --> 00:26:13,882 Pot grep pentru miau. 562 00:26:13,882 --> 00:26:14,840 Fișier Numai doi are miau. 563 00:26:14,840 --> 00:26:16,120 564 00:26:16,120 --> 00:26:20,640 >> Deci, acest lucru poate combina, din nou, cu -r, care 565 00:26:20,640 --> 00:26:23,580 așa cum am spus mai înainte înseamnă adesea recursiv. 566 00:26:23,580 --> 00:26:29,800 Și așa că am putea veni aici, grep r pentru orice exemplu de-- să editați 567 00:26:29,800 --> 00:26:32,010 aceasta doar pentru a arunca o pisica acolo. 568 00:26:32,010 --> 00:26:38,800 Deci, grep -r de orice instanță de pisică de-a lungul acest director. 569 00:26:38,800 --> 00:26:41,600 Și se va recursiv cauta subdirectoare. 570 00:26:41,600 --> 00:26:43,940 Deci, în Baz, nu e pisica. 571 00:26:43,940 --> 00:26:45,570 În temp / 2, nu e pisica. 572 00:26:45,570 --> 00:26:47,960 Și în temp / 1 nu e pisica. 573 00:26:47,960 --> 00:26:50,045 Deci, asta e căutarea în fișiere. 574 00:26:50,045 --> 00:26:51,250 575 00:26:51,250 --> 00:26:55,090 >> Acum puteți utiliza, de asemenea, o descoperire. 576 00:26:55,090 --> 00:26:59,640 Și așa a găsi este în mod specific despre Cautati fișiere cu un nume dat. 577 00:26:59,640 --> 00:27:02,490 Așa că hai să facem ceva mai mult. 578 00:27:02,490 --> 00:27:03,660 Să mergem în descărcări. 579 00:27:03,660 --> 00:27:04,680 580 00:27:04,680 --> 00:27:05,380 Atingeți dog1. 581 00:27:05,380 --> 00:27:06,840 582 00:27:06,840 --> 00:27:07,770 Atingeți cat2. 583 00:27:07,770 --> 00:27:09,290 584 00:27:09,290 --> 00:27:10,760 Atingeți cat_dog. 585 00:27:10,760 --> 00:27:14,550 586 00:27:14,550 --> 00:27:15,975 Atingeți catcat. 587 00:27:15,975 --> 00:27:18,270 588 00:27:18,270 --> 00:27:23,810 >> Deci, vreau să găsesc toate fișiere cu câine în numele. 589 00:27:23,810 --> 00:27:28,060 Deci, gasiti, iar pentru cea mai lungă timpul nu mi-am amintit 590 00:27:28,060 --> 00:27:33,760 cum găsi lucrat, până în final, am citește ceva care a făcut-o atât de clar. 591 00:27:33,760 --> 00:27:35,784 Deci, gasiti, recursiv în mod automat. 592 00:27:35,784 --> 00:27:36,950 Nu aveți nevoie să treacă un -r. 593 00:27:36,950 --> 00:27:38,090 594 00:27:38,090 --> 00:27:39,110 Deci, gasiti punct. 595 00:27:39,110 --> 00:27:40,750 Nu am vorbit despre punct încă. 596 00:27:40,750 --> 00:27:44,800 Întrucât dot dot mereu înseamnă un director în sus. 597 00:27:44,800 --> 00:27:46,960 Dot înseamnă întotdeauna directorul curent. 598 00:27:46,960 --> 00:27:51,390 Așa că am putut rm -r punct în același mod în care pot rm -rf *. 599 00:27:51,390 --> 00:27:53,140 În cele din urmă ei realiza acelasi lucru. 600 00:27:53,140 --> 00:27:56,040 rm -rf punct se va îndepărta Întreg directorul curent. 601 00:27:56,040 --> 00:27:57,440 602 00:27:57,440 --> 00:27:59,680 >> OK, pe care nu vreau să fac acolo. 603 00:27:59,680 --> 00:28:01,490 604 00:28:01,490 --> 00:28:04,320 Dar găsi punct. 605 00:28:04,320 --> 00:28:07,920 Deci, recursiv căutare de curent director, iar acum totul 606 00:28:07,920 --> 00:28:14,125 după ce aceasta sunt o grămadă de steaguri pe care le utilizați pentru a exclude lucruri de la revenirea. 607 00:28:14,125 --> 00:28:17,250 Deci, gasiti punct întoarce tot ceea ce Puteți găsi din directorul curent. 608 00:28:17,250 --> 00:28:19,700 Acestea sunt toate fișierele recursiv căutare. 609 00:28:19,700 --> 00:28:21,250 Vom vedea unele dintre cele dintr-un al doilea. 610 00:28:21,250 --> 00:28:23,150 611 00:28:23,150 --> 00:28:27,140 >> Dar, în caz că vă întrebați cum fac că, așa Command K, cel puțin 612 00:28:27,140 --> 00:28:29,660 în terminalul meu în Mac reuseste sa respinga. 613 00:28:29,660 --> 00:28:34,660 De control L, în general, reușește aceasta pentru orice tip de terminal. 614 00:28:34,660 --> 00:28:36,480 Puteți introduce, de asemenea, clar. 615 00:28:36,480 --> 00:28:38,410 Și dacă vreodată te într-o scenario-- ciudat 616 00:28:38,410 --> 00:28:42,790 aceasta mi sa întâmplat un cuplu time-- în cazul în care culorile solicitările dumneavoastră 617 00:28:42,790 --> 00:28:46,590 sunt toate incurcat, sau nu sunt capabili să vadă nimic 618 00:28:46,590 --> 00:28:51,232 fiind introdus atunci când tastați, pentru că uneori cum ar fi culoarea de fundal este setată 619 00:28:51,232 --> 00:28:53,940 la fel ca și culoarea planului frontal iar acum nu poti vedea fonturile. 620 00:28:53,940 --> 00:28:55,110 621 00:28:55,110 --> 00:28:59,830 De resetare este ceva care pur și simplu resetează să fundalul negru implicit, 622 00:28:59,830 --> 00:29:01,840 față alb, sau orice setați-le la. 623 00:29:01,840 --> 00:29:03,390 624 00:29:03,390 --> 00:29:04,790 >> Deci, unde rămăsesem? 625 00:29:04,790 --> 00:29:05,930 Gaseste punct. 626 00:29:05,930 --> 00:29:09,360 Deci, acum totul singur cu această Punct limitează rezultatele 627 00:29:09,360 --> 00:29:11,450 a ceva care se potrivește modelul dat. 628 00:29:11,450 --> 00:29:16,110 Deci, aici vreau să căutare tot cu pisica numele. 629 00:29:16,110 --> 00:29:17,300 N-am nimic. 630 00:29:17,300 --> 00:29:18,390 De ce este că acest caz? 631 00:29:18,390 --> 00:29:21,230 Ei bine, eu sunt doar în căutarea ceva cu exact pisica numele. 632 00:29:21,230 --> 00:29:25,150 Dacă vreau să caute ceva că are ceva de model, și cat-- 633 00:29:25,150 --> 00:29:28,890 ghilimelele punct de vedere tehnic nu sunt necesare, dar eu le-aruncat acolo. 634 00:29:28,890 --> 00:29:32,720 Deci, acum se constată că catcat asta e singurul lucru care 635 00:29:32,720 --> 00:29:36,040 are ceva arbitrar model urmat de pisică. 636 00:29:36,040 --> 00:29:41,950 Pot pune pisica *, iar acum găsi catcat, cat_dog, cat2, 637 00:29:41,950 --> 00:29:45,245 pentru că cei care sunt toate lucrurile cu pisica la început, urmat de nimic. 638 00:29:45,245 --> 00:29:46,120 Puteți combina acest lucru. 639 00:29:46,120 --> 00:29:50,480 Dacă doriți să căutați toate fișierele C pe care le ai, s-ar putea face * .c. 640 00:29:50,480 --> 00:29:51,960 Am blah.c aici. 641 00:29:51,960 --> 00:29:53,000 642 00:29:53,000 --> 00:29:55,020 Deci, asta e o fabrică găsi. 643 00:29:55,020 --> 00:29:55,770 Puteti sa cautati. 644 00:29:55,770 --> 00:29:58,270 Ea are o grămadă de steaguri pentru restricții suplimentare. 645 00:29:58,270 --> 00:30:00,960 Și unul pe ele, să spunem -d. 646 00:30:00,960 --> 00:30:02,110 647 00:30:02,110 --> 00:30:04,435 Așa depreciat. 648 00:30:04,435 --> 00:30:05,425 649 00:30:05,425 --> 00:30:06,550 Oh, asta nu e ceea ce vreau. 650 00:30:06,550 --> 00:30:07,730 Nu -d. 651 00:30:07,730 --> 00:30:08,860 Tip d. 652 00:30:08,860 --> 00:30:13,820 Deci, gasiti dot - tip d. 653 00:30:13,820 --> 00:30:17,760 Deci, ceea ce a făcut ca tocmai eu caut pentru toate fișierele din directorul curent 654 00:30:17,760 --> 00:30:21,680 cu un-- d standuri pentru Tipul de director directory--. 655 00:30:21,680 --> 00:30:24,430 Aceasta returnează toate directoarele în directorul curent. 656 00:30:24,430 --> 00:30:27,670 Și de tip F este tot regulat fișiere, toate non-directoare. 657 00:30:27,670 --> 00:30:29,809 Așa că e doar o exemplu de alte modalități în care 658 00:30:29,809 --> 00:30:32,350 pot restricționa căutarea celălalt decât doar numele fișierului. 659 00:30:32,350 --> 00:30:34,126 660 00:30:34,126 --> 00:30:35,570 >> Au trecut 30 de minute. 661 00:30:35,570 --> 00:30:36,848 Încă în desfășurare. 662 00:30:36,848 --> 00:30:38,132 >> ALLISON: Voi briza prin. 663 00:30:38,132 --> 00:30:39,670 Va fi bine. 664 00:30:39,670 --> 00:30:41,460 >> ROB BOWDEN: Deci alte lucruri. 665 00:30:41,460 --> 00:30:45,700 Acum bang, semn al exclamării. 666 00:30:45,700 --> 00:30:50,530 Așa că, în general, means-- bine, să vedem un exemplu. 667 00:30:50,530 --> 00:30:52,230 Astfel! F, ceea ce este că de gând să faci? 668 00:30:52,230 --> 00:30:53,520 669 00:30:53,520 --> 00:30:57,810 Ei bine, se pare a avea repetă descoperire punct de tip f. 670 00:30:57,810 --> 00:30:59,240 Ce zici! G? 671 00:30:59,240 --> 00:31:00,760 Că grep doar pisică r *. 672 00:31:00,760 --> 00:31:02,010 673 00:31:02,010 --> 00:31:05,720 Deci, bang, puteți utiliza pentru a repeta o comandă recent facut. 674 00:31:05,720 --> 00:31:13,280 Deci, dacă scriu! Gre, se va re-run comenzile care au inceput cu cele mai multe gre 675 00:31:13,280 --> 00:31:14,060 recent. 676 00:31:14,060 --> 00:31:17,090 >> Și puteți vedea toate acestea Comenzi cu istoria. 677 00:31:17,090 --> 00:31:17,880 Așa istorie. 678 00:31:17,880 --> 00:31:19,630 Acestea sunt toate Comenzile am dat azi. 679 00:31:19,630 --> 00:31:21,089 680 00:31:21,089 --> 00:31:23,130 Și bine, nu e literalmente limitat la ziua de astazi, 681 00:31:23,130 --> 00:31:25,180 dar am folosit numai acest aparat de astăzi. 682 00:31:25,180 --> 00:31:28,730 E întregime de către dumneavoastră a antecedente de shell bash, 683 00:31:28,730 --> 00:31:30,433 cu excepția faptului că taie la un moment dat. 684 00:31:30,433 --> 00:31:33,474 Audiența: Ce se întâmplă dacă faci Istoria [inaudibil] comandă și o eroare 685 00:31:33,474 --> 00:31:35,430 în rezultatul va imprima the-- 686 00:31:35,430 --> 00:31:44,110 >> ROB BOWDEN: Da, în cazul în care există o eroare într-una din aceste commands-- 687 00:31:44,110 --> 00:31:48,090 Să spunem, că este un comandă eroare nu a fost găsit. 688 00:31:48,090 --> 00:31:49,312 689 00:31:49,312 --> 00:31:50,520 Încă apare în istorie. 690 00:31:50,520 --> 00:31:52,620 691 00:31:52,620 --> 00:31:53,170 Bine. 692 00:31:53,170 --> 00:31:54,750 693 00:31:54,750 --> 00:31:56,040 Alte întrebări cu privire la nimic? 694 00:31:56,040 --> 00:31:58,760 695 00:31:58,760 --> 00:32:00,300 Așa că e Bang. 696 00:32:00,300 --> 00:32:04,230 >> Acum, comandă într-adevăr util, omule. 697 00:32:04,230 --> 00:32:07,750 Astfel că vă oferă Ghid pentru o anumită comandă. 698 00:32:07,750 --> 00:32:11,640 Deci, haideți să spunem ls om, așa aceasta dă dovadă mă ls. 699 00:32:11,640 --> 00:32:13,400 Listeaza continutul director. 700 00:32:13,400 --> 00:32:17,150 Și acest lucru este în cazul în care eu văd că acolo sunt aceste diferite steaguri care există. 701 00:32:17,150 --> 00:32:21,340 Deci, vom vedea că ls -l există dacă ar fi să citim că. ls -l 702 00:32:21,340 --> 00:32:26,150 dă-mi această listare completă a Director cu care detine dosarul, 703 00:32:26,150 --> 00:32:29,750 dimensiunea fișierului, amprenta de timp modificate. 704 00:32:29,750 --> 00:32:31,130 705 00:32:31,130 --> 00:32:34,980 Deci, ls -a este un alt una care s-ar putea de fapt folosesc oarecum frecvent. 706 00:32:34,980 --> 00:32:38,130 -Al este steagul meu cel mai frecvent acest ls trecut. 707 00:32:38,130 --> 00:32:42,520 >> Deci, -a, observa există o mulțime mai multe fișiere decât doar ls. 708 00:32:42,520 --> 00:32:44,170 ls -a. 709 00:32:44,170 --> 00:32:46,170 Ce e în comun cu toate aceste fișiere? 710 00:32:46,170 --> 00:32:47,790 Ei încep cu un punct. 711 00:32:47,790 --> 00:32:54,710 Deci, aceasta este o convenție în Linux, care fișierele care încep cu un punct sunt ascunse. 712 00:32:54,710 --> 00:32:58,330 Deci, aceasta înseamnă pur și simplu că Când ne-am doar ls drepte, 713 00:32:58,330 --> 00:33:04,170 sau suntem în căutarea acestui director utilizând echivalentul finder, sau Windows 714 00:33:04,170 --> 00:33:07,250 Explorer echivalent, pe care le Nu vreau să văd aceste fișiere dot. 715 00:33:07,250 --> 00:33:09,680 Ei poluează doar punctul de vedere al lucrurilor. 716 00:33:09,680 --> 00:33:11,790 Deci, ele sunt ascunse dacă nu în mod special 717 00:33:11,790 --> 00:33:14,250 le solicită cu ceva de genul -a. 718 00:33:14,250 --> 00:33:18,920 Deci, eu pot CD în .local, și văd care care este ea însăși un director cu 719 00:33:18,920 --> 00:33:22,220 un director partajat, și aplicații, și bla bla bla. 720 00:33:22,220 --> 00:33:24,520 Deci, dot, fisiere ei doar ascunse. 721 00:33:24,520 --> 00:33:26,250 722 00:33:26,250 --> 00:33:29,355 >> OK, deci altele importante. 723 00:33:29,355 --> 00:33:30,490 724 00:33:30,490 --> 00:33:32,000 Am un cuplu pot sări. 725 00:33:32,000 --> 00:33:38,160 Să real, vorbesc repede despre lucrurile fișier de redirecționare. 726 00:33:38,160 --> 00:33:43,020 Deci, există o serie întreagă complex de lucruri pe care le puteți face cu acestea, 727 00:33:43,020 --> 00:33:47,204 ci doar să-i văd, să zicem, ecou. 728 00:33:47,204 --> 00:33:47,870 O altă comandă. 729 00:33:47,870 --> 00:33:48,920 Comandă într-adevăr prost. 730 00:33:48,920 --> 00:33:50,710 Tot ce face este de imprimare ceea ce am spus la. 731 00:33:50,710 --> 00:33:52,070 Deci, ecou salut. 732 00:33:52,070 --> 00:33:53,850 Este doar un ecou salut pe ecran. 733 00:33:53,850 --> 00:33:55,170 734 00:33:55,170 --> 00:33:56,390 Bună ziua lume. 735 00:33:56,390 --> 00:33:57,890 Ecouri salut lume. 736 00:33:57,890 --> 00:34:02,650 >> Deci, o comandă sau o simbol că bash înțelege 737 00:34:02,650 --> 00:34:07,620 este mai mare de acest simbol, și că este de ieșire într-un simbol fișier. 738 00:34:07,620 --> 00:34:10,940 Deci, dacă am ieșire asta foo, există acum un fișier 739 00:34:10,940 --> 00:34:15,100 numit foo, în interiorul care este salut lume. 740 00:34:15,100 --> 00:34:18,489 Astfel observa că atunci când am ecou Suntem pe punctul de țeavă lume în foo, 741 00:34:18,489 --> 00:34:19,980 nu a ecou salut lume. 742 00:34:19,980 --> 00:34:22,630 În schimb, a fost pus în fișier foo. 743 00:34:22,630 --> 00:34:25,340 Și o altă comandă doar să-l arunce la tine, cat. 744 00:34:25,340 --> 00:34:29,191 Asta-i o modalitate ușoară de doar complet lista conținutul fișierului 745 00:34:29,191 --> 00:34:31,440 așa că nu trebuie să deschideți un editor de text pentru ao vizualiza. 746 00:34:31,440 --> 00:34:34,159 Astfel încât conținutul de fișier foo sunt hello world. 747 00:34:34,159 --> 00:34:38,460 Și aș putea pisică blah.c, conținutul este aceasta. 748 00:34:38,460 --> 00:34:42,123 >> Din nou, acestea sunt comenzi care, nu fac aștepta aveți-le pe toate memorat. 749 00:34:42,123 --> 00:34:43,860 Ideea este le-ai văzut. 750 00:34:43,860 --> 00:34:45,735 Poate că lucrați la ceva, și tu ești 751 00:34:45,735 --> 00:34:47,230 ca și cum m-am săturat de a deschide acest fișier. 752 00:34:47,230 --> 00:34:50,120 Aș vrea să pot privi doar la conținutul foarte repede. 753 00:34:50,120 --> 00:34:52,320 Ai putea face asta, atunci privi înapoi și spune oh I 754 00:34:52,320 --> 00:34:55,250 amintesc ceva de genul că există, și e pisica. 755 00:34:55,250 --> 00:35:00,630 >> Astfel că este de gând să-un fișier. 756 00:35:00,630 --> 00:35:06,639 Acum, nu există cu adevărat nici bun exemplu de citire dintr-un fișier încă. 757 00:35:06,639 --> 00:35:08,930 Ce-i ceva care să ceva de la standard? 758 00:35:08,930 --> 00:35:10,010 759 00:35:10,010 --> 00:35:11,544 Orice comandă simplu Linux? 760 00:35:11,544 --> 00:35:13,480 761 00:35:13,480 --> 00:35:16,970 Când vom ajunge la ea, într-un cuplu săptămâna toate piece-- bine, 762 00:35:16,970 --> 00:35:20,470 în această săptămână aveți o piesă în cazul în care începe să luați de intrare de la utilizator. 763 00:35:20,470 --> 00:35:23,696 Și așa, de obicei, ce tastați că de intrare de la tastatura. 764 00:35:23,696 --> 00:35:25,570 În loc să tastați care de intrare de la tastatura, 765 00:35:25,570 --> 00:35:30,950 în schimb poți țeavă într dintr-un fișier astfel încât atunci când faci Mario, ./mario, 766 00:35:30,950 --> 00:35:35,200 țeavă de orice fișier dat, și care va rula programul mario. 767 00:35:35,200 --> 00:35:37,300 Nu așteaptă de intrare la tastatura, în schimb e 768 00:35:37,300 --> 00:35:39,650 doar de gând să citiți linii din fișierul foo. 769 00:35:39,650 --> 00:35:45,230 >> Deci, mai mare decât foo-l pune în fișierul foo, și mai puțin de alim 770 00:35:45,230 --> 00:35:50,170 ia lucruri din dosar foo și folosește care ca intrare la acest program. 771 00:35:50,170 --> 00:35:51,520 772 00:35:51,520 --> 00:36:00,630 Și doar să-l văd, am putea, de asemenea, ecou foo bar Baz, și apoi în loc de una 773 00:36:00,630 --> 00:36:03,850 mai mare decât, să facem două în foo. 774 00:36:03,850 --> 00:36:05,610 Ce are asta face? 775 00:36:05,610 --> 00:36:07,180 Pur și simplu adaugă la dosar. 776 00:36:07,180 --> 00:36:15,360 Deci, în loc să observați dacă eu ecou bla în foo și apoi pisică foo, e doar bla. 777 00:36:15,360 --> 00:36:18,285 Așa că, atunci când ieșire într-un fișier ea, rescrie complet acel fișier. 778 00:36:18,285 --> 00:36:19,330 779 00:36:19,330 --> 00:36:22,740 Dacă doriți doar să adăugați, dublu [? greder. ?] 780 00:36:22,740 --> 00:36:24,080 >> Și ultima este țeavă. 781 00:36:24,080 --> 00:36:29,590 Țeavă devine mult mai complicată, în cazul în care este nevoie de ieșire de o singură comandă 782 00:36:29,590 --> 00:36:32,320 și se hraneste in urmatoarea comanda. 783 00:36:32,320 --> 00:36:36,140 Deci, ceva comun, istorie. 784 00:36:36,140 --> 00:36:37,920 Așa că, uf, nu vreau să se uite la asta. 785 00:36:37,920 --> 00:36:40,680 786 00:36:40,680 --> 00:36:44,485 Arătați-mi toate comenzile din istoria mea unde am grep-ed pentru ceva. 787 00:36:44,485 --> 00:36:45,360 Nu, e confuz. 788 00:36:45,360 --> 00:36:50,360 Arătați-mi toate comenzile în cazul în care mi se pare. 789 00:36:50,360 --> 00:36:52,360 Toate găsi comenzile am fugit vreodată. 790 00:36:52,360 --> 00:36:55,050 >> Așa istorie. 791 00:36:55,050 --> 00:36:59,017 Acum ieșiri istorie pentru a ecran această listă de comenzi, 792 00:36:59,017 --> 00:37:00,850 dar nu vreau să ieșire se la ecranul. 793 00:37:00,850 --> 00:37:03,445 În schimb am de gând să-l țeavă în grep. 794 00:37:03,445 --> 00:37:04,790 795 00:37:04,790 --> 00:37:07,830 Deci, haideți să grep pentru toate instanțele de descoperire. 796 00:37:07,830 --> 00:37:09,550 797 00:37:09,550 --> 00:37:17,000 Deci, acum, în loc să grep intrare, în loc de-- 798 00:37:17,000 --> 00:37:24,360 grep este capabil să se ocupe ca input-- suntem folosind grep ușor diferit aici. 799 00:37:24,360 --> 00:37:29,550 Deci, în loc de a tasta pe lista lucruri ne-am dorit pentru a căuta 800 00:37:29,550 --> 00:37:31,070 și a zis: grep este de a lua ca intrare. 801 00:37:31,070 --> 00:37:34,810 Deci, dacă eu nu găsesc doar grep, aceasta așteaptă pentru mine să tastați lucruri. 802 00:37:34,810 --> 00:37:37,661 Deci, pisica salut găsi. 803 00:37:37,661 --> 00:37:38,160 Buna ziua. 804 00:37:38,160 --> 00:37:40,430 805 00:37:40,430 --> 00:37:40,930 Găsi. 806 00:37:40,930 --> 00:37:43,670 Observați de fiecare dată când tastați găsi se recunoaște faptul că am scris descoperire. 807 00:37:43,670 --> 00:37:44,880 808 00:37:44,880 --> 00:37:49,540 Deci, în loc de aceasta, va Fișierele de căutare pentru descoperire. 809 00:37:49,540 --> 00:37:53,930 >> Deci, istoria este acum de gând să ieșire o listă cu toate comenzile. 810 00:37:53,930 --> 00:37:55,200 811 00:37:55,200 --> 00:37:58,100 Suntem inscrie că producția, și noi te alimentandu-l la grep, 812 00:37:58,100 --> 00:38:00,180 și așa se scuipa toate cazurile de descoperire. 813 00:38:00,180 --> 00:38:02,170 814 00:38:02,170 --> 00:38:05,570 Motivul pentru care am spus că ar fi confuz este dacă Eu-- este încă confuz. 815 00:38:05,570 --> 00:38:07,030 Dacă aș grep pentru grep. 816 00:38:07,030 --> 00:38:08,755 817 00:38:08,755 --> 00:38:11,130 Observă că e destul de mult mereu arătând comanda Tocmai am 818 00:38:11,130 --> 00:38:15,280 primeste pentru că comandă în sine are grep interiorul acestuia. 819 00:38:15,280 --> 00:38:16,580 820 00:38:16,580 --> 00:38:20,674 >> OK, deci orice întrebări cu privire la ceva? 821 00:38:20,674 --> 00:38:22,340 Și o voi transfera la peste acest moment. 822 00:38:22,340 --> 00:38:24,690 Sperăm că acest lucru este un frumos imagine de ansamblu asupra tuturor comenzilor 823 00:38:24,690 --> 00:38:30,100 care nu aveți nevoie pentru a avea memorat, dar acestea se completează până 824 00:38:30,100 --> 00:38:32,950 un solid de 95% din ceea ce am face la linia de comandă. 825 00:38:32,950 --> 00:38:34,310 826 00:38:34,310 --> 00:38:39,140 De asemenea, ține cont de faptul că linia de comandă în sine, bash este un limbaj de programare, 827 00:38:39,140 --> 00:38:43,070 si asa ca atunci cand ajungi la el, ar putea dori să facă lucruri cu adevărat complexe. 828 00:38:43,070 --> 00:38:47,522 Și deci are lucruri cum ar fi bucle, și FI, precum și toți cei 829 00:38:47,522 --> 00:38:50,230 care ai de gând să te obișnuiești cu limbaje de programare. 830 00:38:50,230 --> 00:38:53,660 Dar asta este dincolo de domeniul de aplicare al acestei secțiuni. 831 00:38:53,660 --> 00:38:55,520 832 00:38:55,520 --> 00:38:56,985 OK, deci nici o întrebare? 833 00:38:56,985 --> 00:38:57,940 834 00:38:57,940 --> 00:38:58,523 ALLISON: Nici unul? 835 00:38:58,523 --> 00:38:59,450 GABRIEL: Ai de gând sa-- 836 00:38:59,450 --> 00:39:01,158 ALLISON: Pot să o fac pe a mea, dacă doriți. 837 00:39:01,158 --> 00:39:02,626 Putem vedea ce se întâmplă. 838 00:39:02,626 --> 00:39:03,750 ROB BOWDEN: Off la Allison. 839 00:39:03,750 --> 00:39:05,090 ALLISON: Woo. 840 00:39:05,090 --> 00:39:07,504 Ești un act greu de urmat, Rob. 841 00:39:07,504 --> 00:39:08,920 Vrei să comutați cu tine? 842 00:39:08,920 --> 00:39:10,246 Sau ai, OK. 843 00:39:10,246 --> 00:39:13,590 844 00:39:13,590 --> 00:39:16,990 Am de gând să încerc și nu destul de fi la fel de lungă durată acolo. 845 00:39:16,990 --> 00:39:20,619 846 00:39:20,619 --> 00:39:22,660 Să vedem dacă această voință lucra așa cum doriți. 847 00:39:22,660 --> 00:39:26,170 848 00:39:26,170 --> 00:39:26,670 Poate? 849 00:39:26,670 --> 00:39:27,760 850 00:39:27,760 --> 00:39:28,296 Haha! 851 00:39:28,296 --> 00:39:28,796 Da. 852 00:39:28,796 --> 00:39:30,460 853 00:39:30,460 --> 00:39:34,066 >> Deci, eu sunt doar de gând să meargă foarte repede prin variabile, bucle, condiționale, 854 00:39:34,066 --> 00:39:35,440 și un pic de compilator. 855 00:39:35,440 --> 00:39:38,570 Dacă aveți întrebări la orice moment, vă rog să mă opresc. 856 00:39:38,570 --> 00:39:42,750 Tipii ăștia mă va reaminti să repet întrebarea dumneavoastră în cazul în care am uitat, 857 00:39:42,750 --> 00:39:44,210 dar nu trebuie să fie prea rău. 858 00:39:44,210 --> 00:39:45,850 >> Deci, variabile, da. 859 00:39:45,850 --> 00:39:48,060 Nu avem nici unul dintre dumneavoastră Piese răzuibile aici. 860 00:39:48,060 --> 00:39:50,440 Sunt sigur că majoritatea dintre voi, dacă ai avut un fel de joc 861 00:39:50,440 --> 00:39:53,810 pe care ați creat cu Scratch, ai avut pentru a urmări ceva de genul scor, 862 00:39:53,810 --> 00:39:55,870 sau timp, sau ceva de genul asta. 863 00:39:55,870 --> 00:39:58,080 Astfel, cei portocaliu strălucitor piese pe care le vedem acolo 864 00:39:58,080 --> 00:40:02,630 sunt doar sub formă de Scratch variabile, și veți siguranta 865 00:40:02,630 --> 00:40:04,640 fie folosind variabile de-a lungul programele. 866 00:40:04,640 --> 00:40:07,350 Dacă nu sunteți, nu sunt într-adevăr sigur ce faci. 867 00:40:07,350 --> 00:40:09,000 868 00:40:09,000 --> 00:40:12,215 >> Dar oricum, mare lucru, definirea variabilelor. 869 00:40:12,215 --> 00:40:13,630 870 00:40:13,630 --> 00:40:16,970 Cu C fiecare variabilă are pentru a avea un tip declarat, 871 00:40:16,970 --> 00:40:22,090 așa că am dat o foarte una generală în partea de sus. 872 00:40:22,090 --> 00:40:24,045 Deci, veți avea dumneavoastră tipul și apoi orice 873 00:40:24,045 --> 00:40:25,420 vă decideți pentru a apela variabila. 874 00:40:25,420 --> 00:40:27,500 875 00:40:27,500 --> 00:40:29,680 Deci, în acest caz, tip în lista de variabile. 876 00:40:29,680 --> 00:40:31,400 >> Avem trei exemple. 877 00:40:31,400 --> 00:40:34,439 Char de unele de calitate, de un A, care este ceea 878 00:40:34,439 --> 00:40:36,230 Sunt sigur că toți vrem pentru a obține în această clasă. 879 00:40:36,230 --> 00:40:37,380 880 00:40:37,380 --> 00:40:40,670 Puteți defini mai multe variabile pe o singură linie 881 00:40:40,670 --> 00:40:43,880 atâta timp cât acestea sunt toate de același tip, care este a doua exemplul nostru acolo 882 00:40:43,880 --> 00:40:46,409 în cazul în care aveți trei variabile, x, y și z. 883 00:40:46,409 --> 00:40:47,200 Sunt toate flotoare. 884 00:40:47,200 --> 00:40:49,160 885 00:40:49,160 --> 00:40:53,250 Și apoi puteți, de asemenea, în acest ultim exemplu cu scorul int și numărul 886 00:40:53,250 --> 00:40:56,510 de echipe, puteți le-a inițializa chiar acolo. 887 00:40:56,510 --> 00:41:01,270 >> Deci, în exemplul de mijloc în care ne-am Trebuie doar float de x, y și z, 888 00:41:01,270 --> 00:41:02,730 cei care nu sunt inițializate încă. 889 00:41:02,730 --> 00:41:04,140 Ei nu au nici o valoare. 890 00:41:04,140 --> 00:41:05,600 Sau ei au valori de gunoi. 891 00:41:05,600 --> 00:41:07,370 892 00:41:07,370 --> 00:41:10,790 Și dacă încerci și să le utilizeze, compilatorul va striga la tine. 893 00:41:10,790 --> 00:41:14,727 Trebuie să declare atât și inițializa variabilele. 894 00:41:14,727 --> 00:41:16,310 Deci, în acest ultim este de ce facem amândoi. 895 00:41:16,310 --> 00:41:19,320 Suntem de declarare a variabilelor de scor și numărul de echipe, 896 00:41:19,320 --> 00:41:24,134 iar noi suntem initializarea lor, oferindu- le valorile lor inițiale de 7 și 4 897 00:41:24,134 --> 00:41:24,675 respectiv. 898 00:41:24,675 --> 00:41:26,310 899 00:41:26,310 --> 00:41:27,190 Rece. 900 00:41:27,190 --> 00:41:28,550 Toată lumea bine? 901 00:41:28,550 --> 00:41:29,470 Minunat. 902 00:41:29,470 --> 00:41:31,690 >> OK, deci unele convenții. 903 00:41:31,690 --> 00:41:35,965 Dacă voi ați citit prin stilul de 50, acestea 904 00:41:35,965 --> 00:41:39,510 sunt doar lucruri pe care le-ar dori pentru să pună în aplicare în stilul tău. 905 00:41:39,510 --> 00:41:41,230 Nume atât de semnificative. 906 00:41:41,230 --> 00:41:45,700 Dacă începeți de asteptare lucruri doar x, y și z, în special 907 00:41:45,700 --> 00:41:47,902 cum intri în mai lunga programe, ești 908 00:41:47,902 --> 00:41:49,610 probabil, va confunda tine și să fie 909 00:41:49,610 --> 00:41:52,930 ca ceea ce este această variabilă referindu-se la. 910 00:41:52,930 --> 00:41:55,880 Nu am nici o idee ce înseamnă asta. 911 00:41:55,880 --> 00:41:59,280 >> Deci, dacă este menit să dețină un scor, numesc în plasă. 912 00:41:59,280 --> 00:42:05,720 Dacă este menit să dețină unele răspuns sau ca rezultat, dau un nume de genul asta. 913 00:42:05,720 --> 00:42:09,920 Pentru bucle, pe care le va intra in slide-ul urmator, 914 00:42:09,920 --> 00:42:12,985 variabile scrisoare sunt bine. 915 00:42:12,985 --> 00:42:16,033 916 00:42:16,033 --> 00:42:18,449 ROB BOWDEN: I, J, K și sunt doar convenții pentru pentru bucle 917 00:42:18,449 --> 00:42:22,050 că toată lumea le așteaptă să fie numit i, j, și k. 918 00:42:22,050 --> 00:42:26,890 Puteți apela them-- văd rând coloană sau apel rând, uneori, 919 00:42:26,890 --> 00:42:29,450 pentru două bucle imbricate, și care este, de asemenea, un fel de standard. 920 00:42:29,450 --> 00:42:31,450 Dar i și j este pe deplin elucidat. 921 00:42:31,450 --> 00:42:33,670 >> ALLISON: Da, am și j ești cu totul în regulă. 922 00:42:33,670 --> 00:42:36,250 Pentru claritate ca în unele seturi P, 923 00:42:36,250 --> 00:42:39,745 s-ar putea face sens pentru a avea mai mult lucruri descriptive acolo doar 924 00:42:39,745 --> 00:42:40,920 pentru a ține evidența ea. 925 00:42:40,920 --> 00:42:45,100 Dar cred că i, j, k și cred că marea majoritate dintre noi toți utilizare. 926 00:42:45,100 --> 00:42:46,890 927 00:42:46,890 --> 00:42:50,340 >> ROB BOWDEN: Cu aceste convenții, astfel încât stilul este important. 928 00:42:50,340 --> 00:42:53,520 Este una dintre cele patru axe pe care ești clasificate, 929 00:42:53,520 --> 00:42:58,110 și este atât de ușor pentru a merge peste P-ul stabilit, la sfârșitul și asigurați-vă că 930 00:42:58,110 --> 00:42:59,770 că nu există greșeli stilistice. 931 00:42:59,770 --> 00:43:01,742 Deci, asigurați-vă că sunteți tab corect. 932 00:43:01,742 --> 00:43:03,200 Asigurați-vă că variabilele sunt numite. 933 00:43:03,200 --> 00:43:04,450 Lasă unele comentarii. 934 00:43:04,450 --> 00:43:06,677 Este foarte ușor pentru a obține aceste puncte. 935 00:43:06,677 --> 00:43:09,510 Nu trebuie să ne gândim la nimic în scopul de a obține aceste puncte. 936 00:43:09,510 --> 00:43:11,093 Nu trebuie să dau nimic. 937 00:43:11,093 --> 00:43:12,640 E doar ceea ce face arata destul. 938 00:43:12,640 --> 00:43:14,850 >> ALLISON: De fapt, ne-am au stil 50, care 939 00:43:14,850 --> 00:43:17,920 vă va spune unde te pui în sus dacă te pui pe stil 940 00:43:17,920 --> 00:43:21,180 și vă va spune exact ceea ce ai Trebuie să se stabilească și modul în care trebuie să-l repara. 941 00:43:21,180 --> 00:43:23,900 Este, de asemenea, doar bine să menționăm asta e politica de curs 942 00:43:23,900 --> 00:43:27,200 că, dacă sunteți la birou ore și codul dvs. este o mizerie, 943 00:43:27,200 --> 00:43:30,200 putem refuza să ajute dvs. până când se pare mai frumos. 944 00:43:30,200 --> 00:43:34,310 Deci, începe dreaptă, păstra stil consistent, 945 00:43:34,310 --> 00:43:37,100 te, de asemenea, doar de gând să facă viețile voastre un întreg mult mai ușor atunci când 946 00:43:37,100 --> 00:43:38,730 sunteți încercarea de a trece prin depanare. 947 00:43:38,730 --> 00:43:41,510 Dacă încercați să dau seama în cazul în care vă lipsește o acoladă 948 00:43:41,510 --> 00:43:44,890 și ei sunt peste tot, ești doar face viața ta mai greu. 949 00:43:44,890 --> 00:43:47,217 Astfel încât să fie în concordanță cu stil. 950 00:43:47,217 --> 00:43:48,800 Îți promit că va face viața mai ușoară. 951 00:43:48,800 --> 00:43:50,330 Va face viața mai ușoară. 952 00:43:50,330 --> 00:43:51,869 Toată lumea va fi mult mai fericit. 953 00:43:51,869 --> 00:43:52,910 Și asta e ceea ce vrei. 954 00:43:52,910 --> 00:43:54,192 955 00:43:54,192 --> 00:43:55,650 GABRIEL: Grad ta va fi mai mare. 956 00:43:55,650 --> 00:43:56,858 ALLISON: Da, și gradul dumneavoastră. 957 00:43:56,858 --> 00:43:58,410 958 00:43:58,410 --> 00:44:01,930 Dacă TF ta e ca tine, tinde să fie favorabil. 959 00:44:01,930 --> 00:44:02,940 960 00:44:02,940 --> 00:44:05,010 Bine, și apoi doar al doilea punct aici. 961 00:44:05,010 --> 00:44:06,300 Initializations consistente. 962 00:44:06,300 --> 00:44:09,605 Deci, așa cum am văzut, puteți declara și inițializa lucruri. 963 00:44:09,605 --> 00:44:10,750 964 00:44:10,750 --> 00:44:13,180 Variabile multiple pe aceeași linie. 965 00:44:13,180 --> 00:44:17,930 Un lucru ne-ar nu vă place să faci este să declare unele variabile 966 00:44:17,930 --> 00:44:21,360 și nu le inițializa pe aceeași line pe care le inițializarea alții. 967 00:44:21,360 --> 00:44:23,960 >> Deci, în cazul în care a făcut nici un fel de sens, 968 00:44:23,960 --> 00:44:29,050 avem exemplul aici în cazul în care suntem de declarare a int 969 00:44:29,050 --> 00:44:31,180 în variabilele de sferturi Dimes și mărunțiș, 970 00:44:31,180 --> 00:44:34,214 dar trimestre și mărunțiș nu au nici o valoare inițială. 971 00:44:34,214 --> 00:44:36,630 Noi nu le-am inițializat, dar chiar în mijloc acolo 972 00:44:36,630 --> 00:44:38,600 am deja inițializate Dimes la 0. 973 00:44:38,600 --> 00:44:41,650 Deci, fie face sferturi, Dimes, mărunțiș. 974 00:44:41,650 --> 00:44:43,170 Sau sferturi egale cu 0. 975 00:44:43,170 --> 00:44:43,930 Dimes egal cu 0. 976 00:44:43,930 --> 00:44:46,810 Mărunțiș egală cu 0, sau orice aceste valori initiale sunt. 977 00:44:46,810 --> 00:44:49,800 >> Mare lucru cu stil, fie consecvente. 978 00:44:49,800 --> 00:44:51,050 Dacă aveți dubii, să fie coerente. 979 00:44:51,050 --> 00:44:52,129 980 00:44:52,129 --> 00:44:53,420 Dar urmați ghidul nostru de stil prea. 981 00:44:53,420 --> 00:44:54,710 982 00:44:54,710 --> 00:44:55,317 Rece. 983 00:44:55,317 --> 00:44:56,150 Toată lumea bine acolo? 984 00:44:56,150 --> 00:44:57,566 >> Audiența: Unde e ghidul de stil? 985 00:44:57,566 --> 00:45:00,800 ALLISON: Ghidul de stil este on-- ceea ce este site-ul? 986 00:45:00,800 --> 00:45:03,950 >> GABRIEL: Cred că e manual.cs50.net/-- 987 00:45:03,950 --> 00:45:04,575 ALLISON: Stil? 988 00:45:04,575 --> 00:45:05,610 989 00:45:05,610 --> 00:45:06,390 >> GABRIEL: Style. 990 00:45:06,390 --> 00:45:06,920 Da. 991 00:45:06,920 --> 00:45:07,520 >> ALLISON: Da. 992 00:45:07,520 --> 00:45:10,150 Deci, întrebarea, în cazul în care este stilul de 50. 993 00:45:10,150 --> 00:45:12,250 manual.cs50.net/style. 994 00:45:12,250 --> 00:45:13,639 Da? 995 00:45:13,639 --> 00:45:16,880 >> Audiența: Dacă suntem de definire variabile, este în regulă 996 00:45:16,880 --> 00:45:28,145 dacă ne-am pus ca [inaudibil] ca scor int și apoi int poartă. 997 00:45:28,145 --> 00:45:29,873 998 00:45:29,873 --> 00:45:35,100 Deci, ați spune că acum ne-am Trebuie să-i definească împreună? 999 00:45:35,100 --> 00:45:37,640 >> ALLISON: Deci întrebarea, ar trebui aveți cod redundant 1000 00:45:37,640 --> 00:45:40,940 atunci când sunt definitorii variabile, cum ar fi scor int și 1001 00:45:40,940 --> 00:45:43,239 pe următoarea linie int joc? 1002 00:45:43,239 --> 00:45:46,030 ROB BOWDEN: Nu sunt sigur cazurile în care codul redundant este rău. 1003 00:45:46,030 --> 00:45:47,738 Nu aș lua în considerare codul redundant. 1004 00:45:47,738 --> 00:45:50,970 N-am declara aproape multiplu variabile pe aceeași linie vreodată. 1005 00:45:50,970 --> 00:45:53,736 Și dacă ceva, este pentru că Eu de obicei lăsa un fel de comentariu 1006 00:45:53,736 --> 00:45:55,235 explica ce variabila este pentru. 1007 00:45:55,235 --> 00:45:57,582 Așa că voi spune scor int slash slash. 1008 00:45:57,582 --> 00:45:59,350 Ține evidența indiferent. 1009 00:45:59,350 --> 00:46:00,710 În total slash slash. 1010 00:46:00,710 --> 00:46:01,790 1011 00:46:01,790 --> 00:46:06,455 Deci, este mult mai grosolană în acest fel sa-i pune pe aceeași linie. 1012 00:46:06,455 --> 00:46:08,080 Eu doar nu le-a pus pe aceeași linie. 1013 00:46:08,080 --> 00:46:10,580 >> ALLISON: Mă simt ca și cum ar preferință personală în acest moment. 1014 00:46:10,580 --> 00:46:14,900 >> Audiența: Asta merge pentru pentru bucle și alte chestii prea? 1015 00:46:14,900 --> 00:46:15,900 ROB BOWDEN: Ca în interiorul? 1016 00:46:15,900 --> 00:46:18,282 La fel ca int i este egal cu 0 virgulă lungime este egală cu ceva? 1017 00:46:18,282 --> 00:46:19,490 Că nu ai de ales. 1018 00:46:19,490 --> 00:46:21,850 1019 00:46:21,850 --> 00:46:25,910 Cu bucle pentru inițializarea part-- deci ați putea fi văzut numai 1020 00:46:25,910 --> 00:46:31,520 int i este egal cu 0 și virgulă i mai puțin decât orice punct și virgulă i, plus, plus. 1021 00:46:31,520 --> 00:46:33,820 Că int i este egal cu 0, punct de vedere tehnic puteți, de asemenea 1022 00:46:33,820 --> 00:46:35,770 face ceea ce am văzut mai înainte cu sintaxa virgulă. 1023 00:46:35,770 --> 00:46:39,790 int i este egal cu 0 virgulă j este egal cu 3 virgulă k este egal cu 5. 1024 00:46:39,790 --> 00:46:41,610 1025 00:46:41,610 --> 00:46:44,320 Nu aveți o alegere de a împărți că până în mai multe rânduri, 1026 00:46:44,320 --> 00:46:46,530 și asta e standard. 1027 00:46:46,530 --> 00:46:47,780 Văzându-l acolo este bine. 1028 00:46:47,780 --> 00:46:49,182 1029 00:46:49,182 --> 00:46:49,890 ALLISON: Awesome. 1030 00:46:49,890 --> 00:46:52,120 Ei bine, segue convenabil în bucle. 1031 00:46:52,120 --> 00:46:54,860 1032 00:46:54,860 --> 00:46:58,980 Deci da, aici avem câteva exemple de bucle care voi a văzut în Scratch. 1033 00:46:58,980 --> 00:47:01,550 Și, desigur, toate acestea doar poate fi recreat în C. 1034 00:47:01,550 --> 00:47:04,610 Și ei practic vă permite să repete unele secțiuni de cod 1035 00:47:04,610 --> 00:47:06,740 până la o anumită condiție este îndeplinită, pe care le vom 1036 00:47:06,740 --> 00:47:09,198 intra in dreapta dupa ce vorbesc despre buclele cu condiționale. 1037 00:47:09,198 --> 00:47:11,150 1038 00:47:11,150 --> 00:47:12,570 >> Deci, avem trei tipuri principale. 1039 00:47:12,570 --> 00:47:17,500 Pentru, în timp ce, și de a face în timp ce, ceea ce vom merge tot prin chiar acum. 1040 00:47:17,500 --> 00:47:18,860 Deci, în primul rând unul este pentru bucle. 1041 00:47:18,860 --> 00:47:20,490 1042 00:47:20,490 --> 00:47:25,034 Deci, pentru unii stare, executa acest bloc de cod. 1043 00:47:25,034 --> 00:47:27,200 Avem acest mic misto diagrama aici în partea de jos. 1044 00:47:27,200 --> 00:47:28,230 1045 00:47:28,230 --> 00:47:32,310 Dar, practic ai în pentru dumneavoastră, ca primă linie, 1046 00:47:32,310 --> 00:47:34,240 ai de gând să inițializa variabilele. 1047 00:47:34,240 --> 00:47:38,260 >> Deci, ca am vorbit despre, i este egal cu 0 sau i este egal cu 10. 1048 00:47:38,260 --> 00:47:40,010 Orice ai nevoie ca variabilă a fi e 1049 00:47:40,010 --> 00:47:43,970 va fi inițializat acolo, a declarat si initializat la o anumită valoare. 1050 00:47:43,970 --> 00:47:46,760 Deci, atunci avem o Stare ce se intampla 1051 00:47:46,760 --> 00:47:48,900 să fie verificarea noastră variabilă împotriva ceva. 1052 00:47:48,900 --> 00:47:55,220 Deci, în cazul în cazul tipic în care poate vrei această secțiune de cod 1053 00:47:55,220 --> 00:47:56,620 să execute cinci ori. 1054 00:47:56,620 --> 00:48:02,380 Deci, vom avea int i este egal cu 0, și noi vrei sa fie, atunci când i este mai mică de 5. 1055 00:48:02,380 --> 00:48:04,940 Deci, această condiție este doar O să verificați de fiecare dată. 1056 00:48:04,940 --> 00:48:07,120 În cazul în care această condiție evaluează la true, este 1057 00:48:07,120 --> 00:48:11,162 de gând să ruleze cod, care este exact ce această diagramă mic este afișat. 1058 00:48:11,162 --> 00:48:12,370 1059 00:48:12,370 --> 00:48:13,639 >> Și așa îl execută. 1060 00:48:13,639 --> 00:48:15,430 Se actualizează o variabilă, care este ceea ce vedem 1061 00:48:15,430 --> 00:48:21,020 în ultima parte a noastră pentru buclă de inițializare acolo. 1062 00:48:21,020 --> 00:48:22,370 1063 00:48:22,370 --> 00:48:26,030 Deci, o să continui să faci asta până la această condiție nu este îndeplinită, 1064 00:48:26,030 --> 00:48:28,010 și apoi va ieși bucla si continua 1065 00:48:28,010 --> 00:48:29,960 se deplasează pe cu restul de programul tău. 1066 00:48:29,960 --> 00:48:31,320 1067 00:48:31,320 --> 00:48:33,620 Toată lumea bine acolo? 1068 00:48:33,620 --> 00:48:34,440 Rece. 1069 00:48:34,440 --> 00:48:37,780 >> Deci, aici e un exemplu, foarte asemănător la ceva doar am vorbit despre. 1070 00:48:37,780 --> 00:48:42,030 Deci, vrem doar să le imprimați acest lucru este CS50 10 ori. 1071 00:48:42,030 --> 00:48:44,540 Deci, vedeți, aici avem pentru noastră, și apoi ne-am 1072 00:48:44,540 --> 00:48:47,450 inițializa variabila i să fie egal cu 0. 1073 00:48:47,450 --> 00:48:50,610 Stare nostru este de verificare că este mai mic de 10. 1074 00:48:50,610 --> 00:48:55,210 Deci, evaluează la adevărat atunci când am primul începe, iar apoi actualizează variabila nostru 1075 00:48:55,210 --> 00:48:58,985 de fiecare dată când se execută de fapt și printuri out acest lucru este CS50. 1076 00:48:58,985 --> 00:49:00,510 1077 00:49:00,510 --> 00:49:02,180 Și se va termina după 10 de ori. 1078 00:49:02,180 --> 00:49:03,190 1079 00:49:03,190 --> 00:49:04,070 Rece. 1080 00:49:04,070 --> 00:49:07,130 >> Deci, în timp ce buclele sunt de până următoare. 1081 00:49:07,130 --> 00:49:12,400 Și, după cum vedeți aici, tocmai am unii în timp ce această întrebare condition--? 1082 00:49:12,400 --> 00:49:15,238 >> Audiența: Cum pot sări de fapt, doar nu un singur număr, 1083 00:49:15,238 --> 00:49:19,030 dar două numere [inaudibil] i, plus, plus, plus? 1084 00:49:19,030 --> 00:49:23,390 >> ALLISON: Deci, întrebarea a fost cum puteți actualizați variabila cu mai mult de un 1085 00:49:23,390 --> 00:49:24,070 la un moment dat. 1086 00:49:24,070 --> 00:49:26,860 Deci, eu, plus, plus va modificare de unul de fiecare dată. 1087 00:49:26,860 --> 00:49:32,310 Dacă ați fi dorit pentru actualizare de doi, ai putea face i este egal cu plus 2. 1088 00:49:32,310 --> 00:49:34,526 >> ROB BOWDEN: Ai văzut plus este egal în curs încă? 1089 00:49:34,526 --> 00:49:35,442 >> Audiența: [inaudibil]. 1090 00:49:35,442 --> 00:49:37,440 1091 00:49:37,440 --> 00:49:42,110 >> ALLISON: Este eficient același lucru ca i egal i plus 2. 1092 00:49:42,110 --> 00:49:46,130 Deci, o să-l ia și actualizare prin două de fiecare dată. 1093 00:49:46,130 --> 00:49:49,432 Plus echivalează este doar ceva numim zahăr sintactic. 1094 00:49:49,432 --> 00:49:52,390 ROB BOWDEN: Da, cei care există pentru destul de mult toți operatorii aritmetici. 1095 00:49:52,390 --> 00:49:55,830 Ori asa ca am egală cu ar dubla numărul. 1096 00:49:55,830 --> 00:50:02,590 j divide egal 3 este la fel cum j este egal cu j împărțit la 3. 1097 00:50:02,590 --> 00:50:07,399 >> ALLISON: Or minus este egal cu 2 ar fi decrementa i de două de fiecare dată. 1098 00:50:07,399 --> 00:50:08,565 ROB BOWDEN: Chiar egali Ministerului Apărării. 1099 00:50:08,565 --> 00:50:09,690 1100 00:50:09,690 --> 00:50:13,270 Nu ati vazut operatori la nivel de bit, dar caret egal și ampersand egal, 1101 00:50:13,270 --> 00:50:14,560 toți cei exista. 1102 00:50:14,560 --> 00:50:19,480 >> ALLISON: Deci, o mulțime de ori, în special împreună cu prima pereche de seturi P, 1103 00:50:19,480 --> 00:50:22,527 veți fi probabil incrementare de unul, așa că am, plus, plus, plus, plus j 1104 00:50:22,527 --> 00:50:24,610 sunt toate lucrurile ai de gând a fi în mod tipic folosind. 1105 00:50:24,610 --> 00:50:28,240 Dar această condiție actualizare este complet sub controlul tău. 1106 00:50:28,240 --> 00:50:32,310 Puteți să-l actualizați, prin orice creșteri sau în orice mod a vă decide să. 1107 00:50:32,310 --> 00:50:33,389 1108 00:50:33,389 --> 00:50:35,680 Poate tu chiar vrei sa fie un număr aleatoriu uneori. 1109 00:50:35,680 --> 00:50:37,180 1110 00:50:37,180 --> 00:50:39,580 Dar da, există o mulțime de lucruri pe care le puteți face cu asta. 1111 00:50:39,580 --> 00:50:41,280 Tu nu ești limitat la i, plus, plus. 1112 00:50:41,280 --> 00:50:44,400 >> ROB BOWDEN: Doar așa vei Știu că există, de asemenea, 1113 00:50:44,400 --> 00:50:46,960 există într-o altă formă, plus plus i. 1114 00:50:46,960 --> 00:50:51,410 Deci, dacă sunteți vreodată căutarea online și se întâmplă pentru a vedea, plus, plus i, 1115 00:50:51,410 --> 00:50:52,870 destul de mult înseamnă același lucru. 1116 00:50:52,870 --> 00:50:54,377 1117 00:50:54,377 --> 00:50:54,960 ALLISON: cool. 1118 00:50:54,960 --> 00:50:56,070 1119 00:50:56,070 --> 00:50:56,740 Bun? 1120 00:50:56,740 --> 00:50:57,240 Minunat. 1121 00:50:57,240 --> 00:50:59,190 1122 00:50:59,190 --> 00:50:59,990 Deci, în timp ce bucle. 1123 00:50:59,990 --> 00:51:01,160 1124 00:51:01,160 --> 00:51:02,570 Foarte asemănătoare. 1125 00:51:02,570 --> 00:51:03,737 Ai niște condiții. 1126 00:51:03,737 --> 00:51:05,820 Principalul lucru pentru a observa aici este loc de a avea 1127 00:51:05,820 --> 00:51:08,540 trei părți diferite să înființeze, avem unul. 1128 00:51:08,540 --> 00:51:11,090 Tocmai am niște condiții care fiind verificat. 1129 00:51:11,090 --> 00:51:14,920 Și în același mod, atâta timp cât această condiție se evaluează la true, 1130 00:51:14,920 --> 00:51:16,840 codul este de gând să ruleze. 1131 00:51:16,840 --> 00:51:18,870 Și dacă e falsă, ea se va termina, mutare 1132 00:51:18,870 --> 00:51:21,930 pe următoarea parte a programului dumneavoastră. 1133 00:51:21,930 --> 00:51:25,780 Deci, aceasta este un fel de like-- ceea ce este un bun exemplu de verificare 1134 00:51:25,780 --> 00:51:27,215 pentru a putea condiții normale? 1135 00:51:27,215 --> 00:51:29,402 1136 00:51:29,402 --> 00:51:30,235 GABRIEL: În timp ce adevărat. 1137 00:51:30,235 --> 00:51:32,110 ALLISON: Ai putea face în timp ce adevărat. 1138 00:51:32,110 --> 00:51:33,510 Ei bine, 1 este egal cu 1. 1139 00:51:33,510 --> 00:51:34,970 1140 00:51:34,970 --> 00:51:37,642 >> ROB BOWDEN: Puteți face o while-- doar loc de a folosi o buclă, 1141 00:51:37,642 --> 00:51:39,600 puteți codul întotdeauna o pentru buclă într-o buclă în timp ce, 1142 00:51:39,600 --> 00:51:42,600 așa că am mai mare decât 0 sau în timp ce am mai puțin de 10. 1143 00:51:42,600 --> 00:51:45,200 1144 00:51:45,200 --> 00:51:46,010 >> ALLISON: Awesome. 1145 00:51:46,010 --> 00:51:50,640 Și apoi ne-am face în timp ce buclele, care este mare pentru validare de utilizare, în cazul în care 1146 00:51:50,640 --> 00:51:55,370 doriți să obțineți ceva de la dvs. de utilizator, a se vedea dacă e valabil, 1147 00:51:55,370 --> 00:51:57,060 si apoi continua de acolo. 1148 00:51:57,060 --> 00:52:04,000 Deci, unul dintre lucrurile să știe este cu un face în timp ce este asta o să execute, 1149 00:52:04,000 --> 00:52:08,000 iar apoi se va re-executa în cazul în care această condiție este îndeplinită. 1150 00:52:08,000 --> 00:52:11,240 >> Deci, probabil, cel mai bun mod de a face acest lucru este doar pentru a vedea un exemplu aici. 1151 00:52:11,240 --> 00:52:14,620 Deci, după cum am menționat, de folosire Validarea este într-adevăr useful-- 1152 00:52:14,620 --> 00:52:17,520 sau de a face whiles sunt într-adevăr util cu validarea utilizator. 1153 00:52:17,520 --> 00:52:19,730 Deci, aceasta este doar de gând de a re-solicita unele utilizator 1154 00:52:19,730 --> 00:52:23,640 până când introduceți un număr pozitiv, care ar putea fi utile pentru set P 1155 00:52:23,640 --> 00:52:24,190 în această săptămână. 1156 00:52:24,190 --> 00:52:25,850 1157 00:52:25,850 --> 00:52:29,480 Și astfel, în acest caz, atunci când ne rula inițial acest program, 1158 00:52:29,480 --> 00:52:32,260 se va imprima introduceți un număr pozitiv. 1159 00:52:32,260 --> 00:52:34,810 O să obține unele de intrare de la utilizator, 1160 00:52:34,810 --> 00:52:38,320 și apoi se va verifica că intrarea împotriva condiției 1161 00:52:38,320 --> 00:52:39,500 care le-ați stabilit pentru aceasta. 1162 00:52:39,500 --> 00:52:41,030 >> Deci, în acest caz, se va verifica. 1163 00:52:41,030 --> 00:52:44,190 Se va spune, OK, este de intrare noastră negativă, 1164 00:52:44,190 --> 00:52:47,175 sau este 0 sau negativ, care ar fi invalid. 1165 00:52:47,175 --> 00:52:48,300 Deci, atunci s-ar re-prompt. 1166 00:52:48,300 --> 00:52:50,280 1167 00:52:50,280 --> 00:52:50,780 Întrebare? 1168 00:52:50,780 --> 00:52:54,720 >> Audiența: Este același lucru atunci ca un în timp ce bucla dacă tocmai ați copiat codul 1169 00:52:54,720 --> 00:52:56,680 și a pus-o [inaudibil] în timp ce buclă? 1170 00:52:56,680 --> 00:52:59,620 1171 00:52:59,620 --> 00:53:05,160 >> ALLISON: Deci, întrebarea a fost ar fi aceasta să fie aceeași ca doar un timp 1172 00:53:05,160 --> 00:53:08,570 buclă, dacă ar fi să pur și simplu copiați bucla în timp ce mai sus. 1173 00:53:08,570 --> 00:53:12,440 Deci, în acest caz, buclă în timp ce este O să verificați starea întâi. 1174 00:53:12,440 --> 00:53:15,300 Deci, în acest caz, dacă am încercat pentru a scrie ca doar o buclă în timp ce, 1175 00:53:15,300 --> 00:53:18,010 s-ar spune în timp ce de intrare este mai mică de un. 1176 00:53:18,010 --> 00:53:20,801 Dar nu avem o intrare pentru ea. 1177 00:53:20,801 --> 00:53:24,238 >> Audiența: Dacă [inaudibil] în timp ce buclă inclusiv acest cod, 1178 00:53:24,238 --> 00:53:28,166 dar apoi ai făcut față codul de mai sus bucla in timp ce, de asemenea. 1179 00:53:28,166 --> 00:53:31,052 Tocmai ai avut acest cod [Inaudibil] în timp ce buclă. 1180 00:53:31,052 --> 00:53:32,760 ALLISON: Ar fi același lucru, da. 1181 00:53:32,760 --> 00:53:37,110 Deci, ai putea write-- doar în loc de a avea un da do--. 1182 00:53:37,110 --> 00:53:37,976 1183 00:53:37,976 --> 00:53:39,350 GABRIEL: Dar asta e mai elegant. 1184 00:53:39,350 --> 00:53:41,020 ALLISON: Da, e mai elegant. 1185 00:53:41,020 --> 00:53:44,560 Aveți posibilitatea să obțineți în proiectarea și fleacuri, dar da, poți să faci asta în totalitate. 1186 00:53:44,560 --> 00:53:45,850 1187 00:53:45,850 --> 00:53:47,072 Orice alte intrebari? 1188 00:53:47,072 --> 00:53:49,240 1189 00:53:49,240 --> 00:53:50,250 OK, rece. 1190 00:53:50,250 --> 00:53:55,540 >> Deci, am vorbit foarte mult despre condiții cu toate aceste bucle pe care le avem, 1191 00:53:55,540 --> 00:53:58,615 așa că de fapt asistent în Condiții în expresii booleene. 1192 00:53:58,615 --> 00:53:59,990 1193 00:53:59,990 --> 00:54:03,440 Din nou, voi utiliza în C, astfel încât doar un fel de tranzitia 1194 00:54:03,440 --> 00:54:06,050 de mai mult interfață grafică de fapt de codificare. 1195 00:54:06,050 --> 00:54:07,480 1196 00:54:07,480 --> 00:54:09,100 >> Rece o, atât de mare, în cazul în care. 1197 00:54:09,100 --> 00:54:11,130 1198 00:54:11,130 --> 00:54:17,070 Practic doar ne permite să introducă o anumită logică în programul nostru și verificare 1199 00:54:17,070 --> 00:54:17,790 Condiții sys. 1200 00:54:17,790 --> 00:54:22,150 Deci, în acest caz, OK, este n mai mare decât 0? 1201 00:54:22,150 --> 00:54:24,070 Da, este, astfel încât să puteți executa acest lucru. 1202 00:54:24,070 --> 00:54:28,060 E doar verificarea unele condiție pe care le-am 1203 00:54:28,060 --> 00:54:33,565 set, pe care cred că toți suntem confortabil cu verificarea condițiilor. 1204 00:54:33,565 --> 00:54:35,975 1205 00:54:35,975 --> 00:54:36,475 Rece. 1206 00:54:36,475 --> 00:54:38,760 1207 00:54:38,760 --> 00:54:44,530 Deci, dacă mai este celălalt ta, vă pot spune OK, dacă acest lucru este adevărat, 1208 00:54:44,530 --> 00:54:46,150 face acest lucru în primul rând. 1209 00:54:46,150 --> 00:54:48,720 În caz contrar, te vreau să implicit și de a face altceva. 1210 00:54:48,720 --> 00:54:51,977 1211 00:54:51,977 --> 00:54:55,060 Ca și în acest caz, voi alege fie o număr pozitiv sau un număr negativ. 1212 00:54:55,060 --> 00:54:56,500 Ai doar două opțiuni. 1213 00:54:56,500 --> 00:54:59,550 Aveți nevoie de ea pentru a executa indiferent de ce intrările dvs. de utilizator. 1214 00:54:59,550 --> 00:55:02,920 Astfel încât să puteți spune de bine, este mai mare decât 0? 1215 00:55:02,920 --> 00:55:03,480 Rece. 1216 00:55:03,480 --> 00:55:04,480 Tipărește un număr pozitiv. 1217 00:55:04,480 --> 00:55:06,153 În cazul în care nu este, imprimați un negativ. 1218 00:55:06,153 --> 00:55:06,960 Toată lumea bine? 1219 00:55:06,960 --> 00:55:14,920 >> Și apoi un lucru să recunoaștem este că, dacă în cazul în care condiția este îndeplinită, 1220 00:55:14,920 --> 00:55:16,650 else nu va executa, de asemenea. 1221 00:55:16,650 --> 00:55:19,210 Doar una dintre acestea va executa la un moment dat. 1222 00:55:19,210 --> 00:55:20,410 Deci, este un compromis. 1223 00:55:20,410 --> 00:55:21,720 Tu nu te pentru a avea atât. 1224 00:55:21,720 --> 00:55:23,566 Fie avea prima condiție. 1225 00:55:23,566 --> 00:55:25,440 Ori avea în cazul în care sau altceva, nu ambele. 1226 00:55:25,440 --> 00:55:26,849 1227 00:55:26,849 --> 00:55:28,890 Care apoi pot face lucruri chiar mai complicat, 1228 00:55:28,890 --> 00:55:31,060 pentru că poți să faci în cazul în care, altceva, și apoi altceva. 1229 00:55:31,060 --> 00:55:32,810 Deci, în acest caz, ne vom au trei condiții. 1230 00:55:32,810 --> 00:55:34,830 1231 00:55:34,830 --> 00:55:38,370 Și din nou, numai unul dintre acestea este O să sfârșesc prin a fi executat. 1232 00:55:38,370 --> 00:55:41,030 Deci, s-ar putea fi mirat Ei bine, ce dacă 1233 00:55:41,030 --> 00:55:45,510 ceva ce se pot întâlni două dintre acestea. 1234 00:55:45,510 --> 00:55:49,520 Poate că indiferent ce introducere îndeplinește atât condiția 1235 00:55:49,520 --> 00:55:51,811 căci dacă și else if. 1236 00:55:51,811 --> 00:55:53,060 Singurul lucru care va rula 1237 00:55:53,060 --> 00:55:56,240 >> ALLISON: De îndată ce constată ceva că îndeplinește condiția pentru care 1238 00:55:56,240 --> 00:55:59,790 evaluează la adevărat, asta e ceea ce aceasta va rula și nimic altceva. 1239 00:55:59,790 --> 00:56:04,440 Deci, dacă ai avut este acest număr între 0 și 5 pentru o prima dvs., 1240 00:56:04,440 --> 00:56:10,530 sau este acest număr între 3 și 5 pentru else if parte, 1241 00:56:10,530 --> 00:56:15,550 și tu de intrare number-- I-am spus 0 și 5 si-- 4. 1242 00:56:15,550 --> 00:56:18,110 Se va lovi primul. 1243 00:56:18,110 --> 00:56:20,960 O să spun OK, acest număr este cuprins între 0 și 5. 1244 00:56:20,960 --> 00:56:22,480 Executa și se lasă. 1245 00:56:22,480 --> 00:56:25,340 Acesta nu va lovi această a doua opțiune. 1246 00:56:25,340 --> 00:56:26,394 Rece? 1247 00:56:26,394 --> 00:56:27,250 Minunat. 1248 00:56:27,250 --> 00:56:31,300 >> OK, avem, de asemenea, declarații comutator dacă doriți să obțineți chiar more-- sau rău, 1249 00:56:31,300 --> 00:56:31,965 comutator este următorul. 1250 00:56:31,965 --> 00:56:33,540 1251 00:56:33,540 --> 00:56:34,990 Primesc înainte de mine aici. 1252 00:56:34,990 --> 00:56:36,370 1253 00:56:36,370 --> 00:56:39,210 Din nou, multiplu în cazul în blocuri în cazul în care așa cum am spus 1254 00:56:39,210 --> 00:56:45,600 Este, de îndată ce veți găsi o condiție care este întâlnit și în cazul în care o altfel dacă altceva, 1255 00:56:45,600 --> 00:56:46,630 lasă. 1256 00:56:46,630 --> 00:56:49,560 Dacă aveți nevoie pentru a verifica mai multe lucruri, ești 1257 00:56:49,560 --> 00:56:53,000 de gând să doriți să utilizați acest lucru pentru că se va verifica de fiecare dată aici. 1258 00:56:53,000 --> 00:56:58,060 Deci, acest lucru va rula prin intermediul și în cazul în care e mai mare sau egal cu 90, 1259 00:56:58,060 --> 00:56:59,160 se va imprima asta. 1260 00:56:59,160 --> 00:57:00,530 1261 00:57:00,530 --> 00:57:03,600 Și se va desfășura prin intermediul și verifica fiecare dintre acestea. 1262 00:57:03,600 --> 00:57:06,444 >> Audiența: Deci, acest lucru ar fi mai mult de buggy [inaudibil]. 1263 00:57:06,444 --> 00:57:07,735 Ar fi ca și cum această [inaudibil]? 1264 00:57:07,735 --> 00:57:10,990 1265 00:57:10,990 --> 00:57:15,740 >> ALLISON: Întrebarea este ar fi aceasta buggy sau face acest lucru face ceea ce vrei. 1266 00:57:15,740 --> 00:57:19,830 Este într-adevăr depinde de ceea ce ce vrei de la programul tău. 1267 00:57:19,830 --> 00:57:22,291 >> Audiența: Vreau să spun ca daca ai pus 90 în. 1268 00:57:22,291 --> 00:57:23,290 ALLISON: Dacă ați pus 90-- 1269 00:57:23,290 --> 00:57:24,206 Audiența: [inaudibil]. 1270 00:57:24,206 --> 00:57:25,584 1271 00:57:25,584 --> 00:57:27,250 GABRIEL: Vei obține două lucruri. 1272 00:57:27,250 --> 00:57:28,916 ALLISON: Vei obține două lucruri. 1273 00:57:28,916 --> 00:57:29,420 Da, două. 1274 00:57:29,420 --> 00:57:32,420 1275 00:57:32,420 --> 00:57:33,920 >> ROB BOWDEN: Two? 1276 00:57:33,920 --> 00:57:34,580 >> ALLISON: Nu. 1277 00:57:34,580 --> 00:57:35,288 >> ROB BOWDEN: Patru. 1278 00:57:35,288 --> 00:57:37,070 1279 00:57:37,070 --> 00:57:40,070 Dacă ați pus 90, o să spui a primit un A, ai un B, ai o C, 1280 00:57:40,070 --> 00:57:40,545 ai un D. 1281 00:57:40,545 --> 00:57:41,461 >> Audiența: [inaudibil]. 1282 00:57:41,461 --> 00:57:42,196 1283 00:57:42,196 --> 00:57:42,820 ALLISON: Corect. 1284 00:57:42,820 --> 00:57:44,778 Asa ca am depinde de ceea ce vreau de la tine de program. 1285 00:57:44,778 --> 00:57:47,050 Uneori trebuie să verifica mai multe lucruri. 1286 00:57:47,050 --> 00:57:49,970 1287 00:57:49,970 --> 00:57:55,270 Veți obține mult mai adânc în ceea ce design bun este ca te duci mai departe. 1288 00:57:55,270 --> 00:57:57,090 Cel mai important lucru pentru realizeaza este faptul că acest 1289 00:57:57,090 --> 00:58:01,090 va verifica toate cele patru condiții aici. 1290 00:58:01,090 --> 00:58:05,860 Întrucât în ​​cazul în care aceasta ar fi o dacă altcineva dacă altcineva în cazul în care altfel, s-ar lovi ca prim caz, 1291 00:58:05,860 --> 00:58:07,950 s-ar imprima ai un A și făcut. 1292 00:58:07,950 --> 00:58:10,250 >> ROB BOWDEN: Chiar dacă ne-am a decis să schimbe acest lucru în cazul în care 1293 00:58:10,250 --> 00:58:13,880 si mai mare sau egală cu 90, dacă si mai mare sau egală cu 80, 1294 00:58:13,880 --> 00:58:19,710 și mai mică sau egală cu 89, dacă n mai mare sau egal cu 70, 1295 00:58:19,710 --> 00:58:23,830 și n mai mic sau egal cu 79, astfel că va fi corect. 1296 00:58:23,830 --> 00:58:27,190 Că va face ceea ce ne dorim, dar încă verifică fiecare ea. 1297 00:58:27,190 --> 00:58:34,050 >> Deci, în timp ce în primul scenariu, dacă ne-am introduceți 90 cu doar dacă altfel dacă altcineva dacă, 1298 00:58:34,050 --> 00:58:37,300 și intrăm 90, atunci se va corecta. 1299 00:58:37,300 --> 00:58:39,615 Se va verifica primul unul, print ai un A, 1300 00:58:39,615 --> 00:58:42,590 skip totul, pentru că a constatat deja unul care funcționează. 1301 00:58:42,590 --> 00:58:46,360 Toate cazurile se exclud reciproc bazat pe dacă altcineva dacă altcineva dacă. 1302 00:58:46,360 --> 00:58:48,630 Deci, acesta va executa în primul rând, dacă, atunci se face. 1303 00:58:48,630 --> 00:58:49,790 Va merge până la capăt. 1304 00:58:49,790 --> 00:58:52,400 >> Întrucât, dacă vom schimba acest lucru este ceea ce am fost 1305 00:58:52,400 --> 00:58:54,204 spunând cu mai mică sau egală cu 89. 1306 00:58:54,204 --> 00:58:55,620 Se va verifica prima. 1307 00:58:55,620 --> 00:58:56,560 Va imprima. 1308 00:58:56,560 --> 00:58:58,010 Va verifica cea de a doua. 1309 00:58:58,010 --> 00:58:59,010 Nu va pentru a imprima. 1310 00:58:59,010 --> 00:58:59,910 Verificați treia. 1311 00:58:59,910 --> 00:59:00,620 Nu merge pentru a imprima. 1312 00:59:00,620 --> 00:59:01,495 Verificați patra. 1313 00:59:01,495 --> 00:59:02,420 Acum merge pentru a imprima. 1314 00:59:02,420 --> 00:59:05,380 Deci, în acest caz, else if versiune, deoarece aceste cazuri, 1315 00:59:05,380 --> 00:59:09,120 se exclud reciproc, este o mai bună utilizare în cazul în care altcineva dacă altcineva dacă, 1316 00:59:09,120 --> 00:59:12,970 pentru că va avea mai puține controale ale condițiilor 1317 00:59:12,970 --> 00:59:14,750 decât această versiune. 1318 00:59:14,750 --> 00:59:17,692 1319 00:59:17,692 --> 00:59:18,400 ALLISON: Awesome. 1320 00:59:18,400 --> 00:59:20,580 Deci, un alt lucru pe care îl putem faceți este să declaratii de comutare. 1321 00:59:20,580 --> 00:59:23,104 1322 00:59:23,104 --> 00:59:25,270 Practic o declarație comutator ia în unele variabile, 1323 00:59:25,270 --> 00:59:28,780 în acest caz este n, și determină caz ​​în care să execute. 1324 00:59:28,780 --> 00:59:33,106 Deci, aceasta este, de asemenea, una în care cazurile tale ar trebui să fie un fel de reciproc exclusive. 1325 00:59:33,106 --> 00:59:35,210 1326 00:59:35,210 --> 00:59:37,940 Deci, în acest caz, în cazul în care noi avem una, e 1327 00:59:37,940 --> 00:59:42,270 O să se potrivească indiferent de faptul că variable-- indiferent de valoarea lui n 1328 00:59:42,270 --> 00:59:48,700 este la unul din aceste cazuri, deci 1, 2, sau 3, și imprima linia corespunzătoare. 1329 00:59:48,700 --> 00:59:51,870 >> Și apoi dacă observați aici, Avem, de asemenea, un implicit, 1330 00:59:51,870 --> 00:59:54,670 care vă puteți gândi de a ca altfel tale. 1331 00:59:54,670 --> 00:59:58,510 Deci, dacă vă alege orice alt număr în afară de 1, 2, și 3, în acest caz 1332 00:59:58,510 --> 00:59:59,885 este doar de gând pentru a imprima invalid. 1333 00:59:59,885 --> 01:00:03,690 1334 01:00:03,690 --> 01:00:08,390 Decide când să folosească FI față de dacă elses față de switch-uri se întâmplă 1335 01:00:08,390 --> 01:00:12,590 să fie ceva ce voi va a se vedea de proiectare înțelept ca tine începe să scrie 1336 01:00:12,590 --> 01:00:15,270 programe mai complicate, și nu exista nici reguli greu și rapid 1337 01:00:15,270 --> 01:00:16,330 de când să le folosească. 1338 01:00:16,330 --> 01:00:17,890 Este într-adevăr depinde de context ta. 1339 01:00:17,890 --> 01:00:18,590 >> ROB BOWDEN: Și doar să-l arunce acolo 1340 01:00:18,590 --> 01:00:20,131 deoarece este secțiunea mai confortabil. 1341 01:00:20,131 --> 01:00:20,920 1342 01:00:20,920 --> 01:00:25,053 Switch-uri, ele tind să be-- deci esti limitat 1343 01:00:25,053 --> 01:00:27,430 în numărul de moduri în care le pot folosi, pentru că FI, 1344 01:00:27,430 --> 01:00:30,100 condiție poate fi destul de de mult tot ce vrei. 1345 01:00:30,100 --> 01:00:33,410 Cu switch-uri din cazuri trebuie să fie numere, 1346 01:00:33,410 --> 01:00:37,770 sau tehnic pot fi caractere, dar de caractere, așa cum vom vedea, sunt numere doar. 1347 01:00:37,770 --> 01:00:44,250 Așa că trebuie să fie numere, dar switch-uri sunt într-adevăr mai eficiente decât în ​​cazul în care 1348 01:00:44,250 --> 01:00:50,060 altfel dacă altcineva dacă, pentru că chiar luând exemplul before-- bine, 1349 01:00:50,060 --> 01:00:51,486 exemplul de calitate pare a fi bun. 1350 01:00:51,486 --> 01:00:52,550 1351 01:00:52,550 --> 01:00:57,080 >> Ei bine, să spunem aici, să facem în schimb acest lucru ca pe o dacă altfel dacă altcineva dacă scenariu. 1352 01:00:57,080 --> 01:01:00,930 Deci, dacă n este egal egal cu 1, imprimați ai ales un număr mic. 1353 01:01:00,930 --> 01:01:04,490 În cazul în care altcineva dacă n este egal este egal cu 2, ai ales un număr mediu. 1354 01:01:04,490 --> 01:01:06,550 Altfel dacă egali este egal cu 3, mare. 1355 01:01:06,550 --> 01:01:08,060 Altceva invalid. 1356 01:01:08,060 --> 01:01:09,820 >> Deci, haideți să spunem că a fost scenariul nostru. 1357 01:01:09,820 --> 01:01:14,060 Deci, haideți să spunem că introduceți 4, astfel încât ne așteptăm invalid. 1358 01:01:14,060 --> 01:01:17,410 Modul în care, dacă altfel, dacă altceva în cazul în care abordare este de gând să lucreze este 1359 01:01:17,410 --> 01:01:18,740 verifică prima condiție. 1360 01:01:18,740 --> 01:01:19,776 Nu e mulțumit. 1361 01:01:19,776 --> 01:01:21,150 Deci, vom verifica a doua condiție. 1362 01:01:21,150 --> 01:01:21,940 Nu e mulțumit. 1363 01:01:21,940 --> 01:01:23,023 Verificați treia condiție. 1364 01:01:23,023 --> 01:01:23,640 Nu sunt îndeplinite. 1365 01:01:23,640 --> 01:01:26,650 Deci, vom merge la altcineva și imprima invalid. 1366 01:01:26,650 --> 01:01:30,169 >> Modul în care lucrările de comutare este compilează jos 1367 01:01:30,169 --> 01:01:31,960 în ceea ce vom pentru a apela un tabel de salt. 1368 01:01:31,960 --> 01:01:33,180 1369 01:01:33,180 --> 01:01:37,120 Principalul idee fiind că atunci când introduceți 4, 1370 01:01:37,120 --> 01:01:39,090 se poate merge imediat la valorile implicite. 1371 01:01:39,090 --> 01:01:41,460 Ea nu are nevoie să verifice am caz I 1? 1372 01:01:41,460 --> 01:01:42,350 Nope nu e asta. 1373 01:01:42,350 --> 01:01:42,850 Cazul 2? 1374 01:01:42,850 --> 01:01:43,240 Nope. 1375 01:01:43,240 --> 01:01:43,770 Cazul 3? 1376 01:01:43,770 --> 01:01:44,270 Nope. 1377 01:01:44,270 --> 01:01:45,090 Implicit. 1378 01:01:45,090 --> 01:01:47,610 OK, aceasta trebuie să fie în cazul în care I doresc, iar apoi executa asta. 1379 01:01:47,610 --> 01:01:49,590 Nu, sare imediat la valorile implicite. 1380 01:01:49,590 --> 01:01:51,900 Sau intru 2, e imediat de gând să meargă la 2 1381 01:01:51,900 --> 01:01:54,060 fără a fi nevoie să treacă prin caz 1. 1382 01:01:54,060 --> 01:01:57,820 >> Deci, în acest fel, realist în zilele noastre e 1383 01:01:57,820 --> 01:02:00,250 nu atât de mult de un câștig de eficiență. 1384 01:02:00,250 --> 01:02:02,880 De obicei, calculatoarele sunt destul de rapid, iar asta nu e frumoasa. 1385 01:02:02,880 --> 01:02:07,270 Dar este adevărat că switch-uri sunt mai rapide. 1386 01:02:07,270 --> 01:02:10,380 Dacă sunteți într-adevăr încerci pentru a optimiza, utilizați un comutator. 1387 01:02:10,380 --> 01:02:11,980 1388 01:02:11,980 --> 01:02:12,710 >> ALLISON: cool. 1389 01:02:12,710 --> 01:02:15,270 Și apoi ne-am operatorului ternar. 1390 01:02:15,270 --> 01:02:19,470 Asa ca stiu am menționat mai devreme cuvântul de zahăr sintactic. 1391 01:02:19,470 --> 01:02:24,160 Deci e doar lucruri care fac codul mult mai concis. 1392 01:02:24,160 --> 01:02:25,590 Deci, aceasta este una dintre acele cazuri. 1393 01:02:25,590 --> 01:02:31,430 >> Deci, operatorul ternar este semn de întrebare colon așa cum vom vedea în șir linie 1394 01:02:31,430 --> 01:02:35,810 s este egal cu n mai mare de 100 semn de întrebare scăzut ridicat de colon. 1395 01:02:35,810 --> 01:02:41,800 Deci, practic cum functioneaza acest lucru este e n mai mare decât 100 este o condiție. 1396 01:02:41,800 --> 01:02:43,674 Deci, eu cred că se poate face sens. 1397 01:02:43,674 --> 01:02:44,840 E ca și cum pune o întrebare. 1398 01:02:44,840 --> 01:02:47,320 Se spune oh, este n mai mare de 100. 1399 01:02:47,320 --> 01:02:48,340 Cine știe? 1400 01:02:48,340 --> 01:02:50,750 Și dacă se evaluează la adevărat, o să vă dau 1401 01:02:50,750 --> 01:02:54,270 primul lucru pe care-i enumerate acolo, ceea ce este mare. 1402 01:02:54,270 --> 01:02:55,840 În caz contrar, va da scăzute. 1403 01:02:55,840 --> 01:03:01,210 Deci, aceasta este doar o foarte simplu și modalitate eficientă de a face ca o dacă altcineva. 1404 01:03:01,210 --> 01:03:02,780 Asta e tot ce acest lucru este. 1405 01:03:02,780 --> 01:03:07,450 >> Și dacă ar fi să scrie această ca în cazul în care altfel condiționate, 1406 01:03:07,450 --> 01:03:12,480 ar fi dacă n este mai mare 100, întoarce mare. 1407 01:03:12,480 --> 01:03:14,220 Altfel, randamentul scăzut. 1408 01:03:14,220 --> 01:03:17,570 Aceasta este doar o mult mai mod concis de scris-o. 1409 01:03:17,570 --> 01:03:27,090 >> ROB BOWDEN: Deci acest exemplu particular este de fiecare dată când faci ceva 1410 01:03:27,090 --> 01:03:30,190 ca aceasta, aceasta este modelul în cazul în care am folosi ternar foarte frecvent. 1411 01:03:30,190 --> 01:03:31,540 1412 01:03:31,540 --> 01:03:35,460 Deci, nu am vorbit despre domeniul de aplicare încă, dar eu urăsc văd punct și virgulă șir s. 1413 01:03:35,460 --> 01:03:39,150 Dacă n mai mare de 100, s egal mare. 1414 01:03:39,150 --> 01:03:40,660 Altfel, s egal redus. 1415 01:03:40,660 --> 01:03:45,070 Astfel încât model, cele cinci linii de cod literal 100% din timp 1416 01:03:45,070 --> 01:03:49,800 pot fi transferate în ceea ce a fost acolo sus cu un ternar. 1417 01:03:49,800 --> 01:03:52,340 Deci, ternar, o linie de cod. 1418 01:03:52,340 --> 01:03:54,640 FI altceva, cinci. 1419 01:03:54,640 --> 01:03:56,910 Asta e un exemplu I punctul out de fiecare dată. 1420 01:03:56,910 --> 01:03:59,250 Acest lucru ar fi loc minunat pentru un operator ternar. 1421 01:03:59,250 --> 01:04:00,647 E atât de curat. 1422 01:04:00,647 --> 01:04:01,980 Dar oamenii au tendința de a nu-l folosească. 1423 01:04:01,980 --> 01:04:06,140 1424 01:04:06,140 --> 01:04:08,030 >> ALLISON: Ia-o departe Gabe. 1425 01:04:08,030 --> 01:04:11,110 >> GABRIEL: Deci, acum voi toți aflat în curs în această săptămână 1426 01:04:11,110 --> 01:04:13,420 că totul într-o calculator este binar, nu? 1427 01:04:13,420 --> 01:04:14,570 La fel ca lămpile de aici. 1428 01:04:14,570 --> 01:04:16,492 Puteți fi fie pornit și oprit. 1429 01:04:16,492 --> 01:04:18,450 Și de tot ceea ce, vreau sa spun literalmente totul. 1430 01:04:18,450 --> 01:04:24,272 Unele numere și caractere, și siruri de caractere, și chiar codul pe care scrie, atunci când 1431 01:04:24,272 --> 01:04:26,480 acesta se compilat pentru mașină cod și chestii de genul asta, 1432 01:04:26,480 --> 01:04:29,230 așa că totul se reduce la 0 și 1 ". 1433 01:04:29,230 --> 01:04:34,540 >> Și așa că atunci când am de-a face cu numere întregi, care 1434 01:04:34,540 --> 01:04:38,000 este ceva care este foarte tehnic simplu, ar trebui să fim capabili să facă lucruri 1435 01:04:38,000 --> 01:04:40,630 cum ar fi adăugarea ei, care este probabil unul dintre cele mai simple lucruri 1436 01:04:40,630 --> 01:04:42,300 puteți face pentru a două numere întregi, nu? 1437 01:04:42,300 --> 01:04:47,410 Deci, adunare și scădere funcționează la fel ca functioneaza in notație zecimală, 1438 01:04:47,410 --> 01:04:50,780 cu excepția aici e binar, nu? 1439 01:04:50,780 --> 01:04:52,090 Deci, este în baza doi. 1440 01:04:52,090 --> 01:04:54,070 Deci, se adaugă 1 plus 1. 1441 01:04:54,070 --> 01:04:57,020 Care dă 0, 1 și poartă peste. 1442 01:04:57,020 --> 01:05:01,335 Și doar continui sa faci asta, asa ca acum vine mai interesant întrebare. 1443 01:05:01,335 --> 01:05:03,730 1444 01:05:03,730 --> 01:05:07,710 >> Știm cum să reprezinte toate numere întregi pozitive în calculator, 1445 01:05:07,710 --> 01:05:09,870 dar hai să facem acest exercițiu. 1446 01:05:09,870 --> 01:05:15,240 Prefă voi sunt toate în 1960 sau ceva încercarea de a crea un calculator, 1447 01:05:15,240 --> 01:05:19,950 și va trebui să vină de o modalitate de stocare minus 1, 1448 01:05:19,950 --> 01:05:22,554 de exemplu, sau minus orice întreg pentru care contează. 1449 01:05:22,554 --> 01:05:23,470 Cum ai face asta? 1450 01:05:23,470 --> 01:05:27,820 1451 01:05:27,820 --> 01:05:29,220 Orice idei? 1452 01:05:29,220 --> 01:05:31,302 Doar arunca ceva la mine. 1453 01:05:31,302 --> 01:05:32,264 Da? 1454 01:05:32,264 --> 01:05:39,480 >> Audiența: [inaudibil] desemnează un special în cazul în care dumneavoastră [inaudibil]. 1455 01:05:39,480 --> 01:05:42,590 >> GABRIEL: Puteți desemna un bit special, care va fi 0 sau 1. 1456 01:05:42,590 --> 01:05:45,590 Să spunem că o daca este pozitiv și 0 dacă este negativ. 1457 01:05:45,590 --> 01:05:48,171 Apoi restul de biți este doar pentru a stoca numărul. 1458 01:05:48,171 --> 01:05:48,670 Rece. 1459 01:05:48,670 --> 01:05:49,990 Deci, asta este o idee foarte bună. 1460 01:05:49,990 --> 01:05:51,550 Avem, eu nu știu, 200. 1461 01:05:51,550 --> 01:05:54,720 Și dacă primul bit este pornit, atunci e plus 200. 1462 01:05:54,720 --> 01:05:57,270 Dacă este oprit, acesta este de minus 200. 1463 01:05:57,270 --> 01:05:58,380 Rece. 1464 01:05:58,380 --> 01:06:01,350 >> Există doar un singur mic problemă cu acest lucru, 1465 01:06:01,350 --> 01:06:05,370 care este în cazul în care vom încerca să rezuma lucrurile. 1466 01:06:05,370 --> 01:06:18,910 Deci, imaginați-vă, avem 11,111 aici, și suntem însumarea acest lucru cu 00,100 orice. 1467 01:06:18,910 --> 01:06:21,630 În cazul în care cei doi sunt pozitive, e în regulă. 1468 01:06:21,630 --> 01:06:24,470 Dar, apoi, dacă unul dintre le este negativ, cum ar fi 1469 01:06:24,470 --> 01:06:27,410 să spunem că acest bit aici este cel care este responsabil 1470 01:06:27,410 --> 01:06:31,390 for-- am de gând să fac o separate-- deci asta înseamnă că acest număr aici 1471 01:06:31,390 --> 01:06:31,970 este pozitiv. 1472 01:06:31,970 --> 01:06:34,450 Acesta înseamnă că această Numărul de aici este negativ, nu? 1473 01:06:34,450 --> 01:06:37,010 >> Dar atunci când ești O să le rezuma, tu 1474 01:06:37,010 --> 01:06:40,180 nevoie de un if spunând oh dacă acest lucru este 0, 1475 01:06:40,180 --> 01:06:43,479 atunci sumă meu va fi ceva diferit, nu? 1476 01:06:43,479 --> 01:06:45,270 Deci, există un ușor mod mai inteligent de a face 1477 01:06:45,270 --> 01:06:48,520 că, în ceea ce se numește complement față de doi. 1478 01:06:48,520 --> 01:06:52,350 Deci, practic ceea ce am faceți este să definim minus 1 1479 01:06:52,350 --> 01:06:57,250 pentru a fi un lucru care, dacă am adăuga până la 1 ne dă 0. 1480 01:06:57,250 --> 01:06:59,470 1481 01:06:59,470 --> 01:07:00,860 Permiteți-mi să repet acest lucru. 1482 01:07:00,860 --> 01:07:03,280 Deci, haideți să spunem că asta aici este 1. 1483 01:07:03,280 --> 01:07:08,110 1484 01:07:08,110 --> 01:07:13,570 Care este lucrul care în mod natural în numere întregi pozitive 1485 01:07:13,570 --> 01:07:15,570 adăugat pentru că ne dă 0? 1486 01:07:15,570 --> 01:07:19,150 1487 01:07:19,150 --> 01:07:21,030 Ce dacă am încerca să-l adăugați la acest număr? 1488 01:07:21,030 --> 01:07:22,830 1489 01:07:22,830 --> 01:07:28,032 Mergem la have-- OK, deci hai să adăugați. 1490 01:07:28,032 --> 01:07:32,820 1491 01:07:32,820 --> 01:07:38,065 Vom avea 1 plus 1 este 0, iar apoi își desfășoară peste. 1492 01:07:38,065 --> 01:07:40,160 1493 01:07:40,160 --> 01:07:45,490 Și apoi vom obține 0 din nou. 1494 01:07:45,490 --> 01:07:47,730 1495 01:07:47,730 --> 01:07:48,820 Primesc confuz. 1496 01:07:48,820 --> 01:07:51,670 Și ai de gând pentru a obține 0 și 0 și 0 și 0 și 0 și 0. 1497 01:07:51,670 --> 01:07:52,450 O mulțime de 0 lui. 1498 01:07:52,450 --> 01:07:56,240 >> La foarte ultima, nu suntem va fi capabil să-l transporta peste, 1499 01:07:56,240 --> 01:07:59,614 pentru că să zicem avem de-a face doar cu un octet, deci numai 8 biți. 1500 01:07:59,614 --> 01:08:02,780 Deci, ce computerul face în mod implicit este doar a uitat despre asta [inaudibil], 1501 01:08:02,780 --> 01:08:03,279 OK? 1502 01:08:03,279 --> 01:08:04,530 1503 01:08:04,530 --> 01:08:06,880 Deci, aceasta este ceea ce se numește complement cei doi a. 1504 01:08:06,880 --> 01:08:15,180 Noi pur și simplu defini minus 1 să fie lucru aici că dacă adaug că la 1 1505 01:08:15,180 --> 01:08:15,995 s-ar da 0. 1506 01:08:15,995 --> 01:08:17,609 1507 01:08:17,609 --> 01:08:20,180 Și asta e destul de cool pentru că noi nu prea 1508 01:08:20,180 --> 01:08:24,090 Trebuie târziu să pună în aplicare un alt tip de sumă 1509 01:08:24,090 --> 01:08:26,590 în funcție de care este un negativ sau un număr pozitiv. 1510 01:08:26,590 --> 01:08:27,465 Asta face sens? 1511 01:08:27,465 --> 01:08:28,740 1512 01:08:28,740 --> 01:08:32,370 >> Deci, un lucru pe care o facem aici, în scopul de a converti 1513 01:08:32,370 --> 01:08:38,550 între pozitiv și negativ întreg este apoi ne-am răsturna totul, 1514 01:08:38,550 --> 01:08:40,930 iar apoi adăugăm 1 la acest număr. 1515 01:08:40,930 --> 01:08:43,140 Dacă încercați să-l faci singur pe o bucată de hârtie, 1516 01:08:43,140 --> 01:08:44,681 vei vedea că are sens. 1517 01:08:44,681 --> 01:08:51,000 Dar dacă iau acest număr aici, aceasta este de cinci. 1518 01:08:51,000 --> 01:08:54,859 Deci, dacă am răsturna totul aici, așa 1, 1, 1, 1, 1. 1519 01:08:54,859 --> 01:08:55,880 1520 01:08:55,880 --> 01:08:57,830 Flip, flip, flip-. 1521 01:08:57,830 --> 01:09:00,130 Și apoi m-am adăuga 1 la acesta. 1522 01:09:00,130 --> 01:09:02,750 Am de gând să aibă exact minus 5. 1523 01:09:02,750 --> 01:09:03,250 OK? 1524 01:09:03,250 --> 01:09:06,220 >> Acest tip de are sens, deoarece în cazul în care încercați pentru a rezuma acest lucru cu numărul 1525 01:09:06,220 --> 01:09:10,229 că am avut înainte, care asta-- să întoarceți din nou. 1526 01:09:10,229 --> 01:09:12,999 Acesta a fost de 101 și o mulțime de 0 lui. 1527 01:09:12,999 --> 01:09:13,795 1528 01:09:13,795 --> 01:09:15,670 Dacă încercați să adăugați aceste două numere împreună, 1529 01:09:15,670 --> 01:09:16,961 ai de gând să aibă exact 0. 1530 01:09:16,961 --> 01:09:18,920 1531 01:09:18,920 --> 01:09:19,460 OK. 1532 01:09:19,460 --> 01:09:19,884 Orice întrebări? 1533 01:09:19,884 --> 01:09:20,759 >> Audiența: [inaudibil] 1534 01:09:20,759 --> 01:09:25,790 1535 01:09:25,790 --> 01:09:27,280 >> GABRIEL: Ce vrei să spui? 1536 01:09:27,280 --> 01:09:29,240 >> Audiența: Negativ pentru pozitiv [inaudibil]. 1537 01:09:29,240 --> 01:09:33,215 >> GABRIEL: Nu, flip- și adăugați 1 mereu. 1538 01:09:33,215 --> 01:09:34,081 1539 01:09:34,081 --> 01:09:34,580 Da. 1540 01:09:34,580 --> 01:09:36,910 1541 01:09:36,910 --> 01:09:39,680 OK, deci de caractere codificate de asemenea binare. 1542 01:09:39,680 --> 01:09:42,649 Avem tabel ASCII, în timp ce De asemenea, a văzut în curs, nu? 1543 01:09:42,649 --> 01:09:45,040 Deci, este de fapt o cartografiere a lucrurilor. 1544 01:09:45,040 --> 01:09:50,960 Și aici eu nu pot sublinia suficient că pentru un calculator, o și 65 1545 01:09:50,960 --> 01:09:52,770 sunt literalmente același lucru. 1546 01:09:52,770 --> 01:10:03,430 Deci, dacă am scrie ceva de genul char c este egal cu o, am putut, în același timp 1547 01:10:03,430 --> 01:10:06,890 doar scrie 65 aici, și-l ar fi exact la fel, OK? 1548 01:10:06,890 --> 01:10:08,470 Nu e nici un fel de diferență. 1549 01:10:08,470 --> 01:10:12,420 >> Noi, de obicei tendința de a pune de caractere in variabile de tip. 1550 01:10:12,420 --> 01:10:16,770 Char, nu pentru că sunt, în esență, făcut pentru asta, ci pentru că 1551 01:10:16,770 --> 01:10:18,050 de convenție umană. 1552 01:10:18,050 --> 01:10:22,410 Dar puteți face pur și simplu cu numere întregi în loc de variabile de tip char, 1553 01:10:22,410 --> 01:10:23,490 și vei fi bine. 1554 01:10:23,490 --> 01:10:28,410 Singura diferență reală între un char c și un i int 1555 01:10:28,410 --> 01:10:31,960 este ca un întreg are patru octeți în mai sisteme, în timp ce un char are un octet. 1556 01:10:31,960 --> 01:10:33,070 1557 01:10:33,070 --> 01:10:35,460 Sunt, în esență, același lucru în ceea ce privește datele. 1558 01:10:35,460 --> 01:10:36,990 1559 01:10:36,990 --> 01:10:37,990 Deci, ce se va imprima aici? 1560 01:10:37,990 --> 01:10:43,780 Aici suntem imprimarea unei cifre cu ajutorul printf cu un plus de 1, și la fel ca numere întregi, 1561 01:10:43,780 --> 01:10:46,240 caractere pot fi rezumate astfel de caractere pot fi, de asemenea, însumate. 1562 01:10:46,240 --> 01:10:47,890 Deci, aceasta este exact 65 de ani. 1563 01:10:47,890 --> 01:10:49,950 Deci nu va fi 66, și aici avem 1564 01:10:49,950 --> 01:10:56,860 65 plus minus un pic mai mare A, care va fi, eu nu prea știu. 1565 01:10:56,860 --> 01:11:00,900 Dar va fi exact diferența între literele mari 1566 01:11:00,900 --> 01:11:07,800 și și literele mici, astfel vom obține un mic, nu? 1567 01:11:07,800 --> 01:11:08,300 Da. 1568 01:11:08,300 --> 01:11:11,740 Deci, acest lucru se întâmplă pentru a imprima o personaj care este exact acesta. 1569 01:11:11,740 --> 01:11:12,260 Bun? 1570 01:11:12,260 --> 01:11:12,860 Orice întrebări? 1571 01:11:12,860 --> 01:11:16,320 1572 01:11:16,320 --> 01:11:19,430 >> Aici avem o grămadă de diferit Tipuri de variabile numerice. 1573 01:11:19,430 --> 01:11:20,620 Vorbim deja despre int. 1574 01:11:20,620 --> 01:11:21,740 1575 01:11:21,740 --> 01:11:27,760 Float este doar un mod sa-- acest lucru este într-adevăr amuzant, pentru că atunci când am aflat pentru prima dată 1576 01:11:27,760 --> 01:11:32,320 pentru a programa înapoi în ziua cu Python, primul program am vreodată 1577 01:11:32,320 --> 01:11:37,480 a încercat să scrie, am văzut că a existat o tip numit și un tip numit float. 1578 01:11:37,480 --> 01:11:39,800 Și float a fost pentru toate numerele reale. 1579 01:11:39,800 --> 01:11:43,290 Deci, apoi m-am întrebat de ce ar trebui să Eu folosesc vreodată un int atunci? 1580 01:11:43,290 --> 01:11:45,590 Pentru că dacă pot folosi toate numere reale, cu un flotor, 1581 01:11:45,590 --> 01:11:47,120 Mi-ar opri doar folosind int, nu? 1582 01:11:47,120 --> 01:11:49,550 Pentru ca numere reale sunt la fel ca mai generic. 1583 01:11:49,550 --> 01:11:51,820 1584 01:11:51,820 --> 01:11:54,060 >> Se pare că acest lucru este nu este cazul în computere 1585 01:11:54,060 --> 01:11:58,480 pentru că sunt, în esență, diferite lucruri. 1586 01:11:58,480 --> 01:12:01,470 Deci, valori întregi și reale, operațiunile pe care le face pentru a le 1587 01:12:01,470 --> 01:12:04,739 sunt esențial diferite, deoarece de modul în care acestea sunt depozitate, OK? 1588 01:12:04,739 --> 01:12:07,280 Mergem să vorbim un pic pic mai mult despre faptul că într-o secundă. 1589 01:12:07,280 --> 01:12:09,110 >> Deci, dublu este doar un float mai mare. 1590 01:12:09,110 --> 01:12:12,830 De obicei, în cele mai multe sisteme, un flotor este de patru bytes, la fel ca un întreg. 1591 01:12:12,830 --> 01:12:15,440 Și o dublă este de opt bytes. 1592 01:12:15,440 --> 01:12:21,450 Un lung lung este de fapt doar un simbol pe care le adăugați la un tip ca int. 1593 01:12:21,450 --> 01:12:24,040 Tu spui lung lung int ca aceasta. 1594 01:12:24,040 --> 01:12:28,550 Lung int lungime x pentru a face mai mult. 1595 01:12:28,550 --> 01:12:32,310 Deci, în cele mai multe sisteme, care vor da opt bytes loc de obicei patru. 1596 01:12:32,310 --> 01:12:35,620 Și puteți picătură de fapt, in, astfel încât se poate spune doar mult timp lung, 1597 01:12:35,620 --> 01:12:37,240 și care funcționează asemenea, OK? 1598 01:12:37,240 --> 01:12:42,850 Puteți face, de asemenea, alte lucruri, cum ar fi int nesemnate, sau pur și simplu din nou nesemnate 1599 01:12:42,850 --> 01:12:43,680 ar lucra, de asemenea. 1600 01:12:43,680 --> 01:12:49,370 Și care ar face x fi o variabilă ca totul este pozitiv, 1601 01:12:49,370 --> 01:12:53,231 așa că nu poți avea într-adevăr negativ numere în modul în care am văzut aici. 1602 01:12:53,231 --> 01:12:56,484 1603 01:12:56,484 --> 01:12:58,650 Deci, în urma minunat Punct și de precizie plutitoare. 1604 01:12:58,650 --> 01:13:01,890 Acesta este unul dintre motivele pentru care doriți să utilizați int loc de flotoare, 1605 01:13:01,890 --> 01:13:04,370 pentru că int sunt 100% precise, nu? 1606 01:13:04,370 --> 01:13:06,170 Este exact acel număr. 1607 01:13:06,170 --> 01:13:11,910 Pentru puncte plutitoare, dacă spune răspuns egal cu 1 pe 10-- 1608 01:13:11,910 --> 01:13:14,690 Se întâmplă să am această exact program de aici, float.c. 1609 01:13:14,690 --> 01:13:16,390 1610 01:13:16,390 --> 01:13:19,420 Care imprimă la 20 de zecimale. 1611 01:13:19,420 --> 01:13:23,270 1 împărțit la 10, și că De obicei este de 0,1, nu? 1612 01:13:23,270 --> 01:13:27,910 Dar aici dacă facem float și apoi l-am alerga, 1613 01:13:27,910 --> 01:13:30,320 vom vedea că nu e chiar 0,1. 1614 01:13:30,320 --> 01:13:33,570 E ceva 0,149. 1615 01:13:33,570 --> 01:13:35,570 >> Și de ce e asta? 1616 01:13:35,570 --> 01:13:40,390 Pentru că nu poți reprezenta într-adevăr fiecare posibil număr real unic în memorie 1617 01:13:40,390 --> 01:13:42,730 pentru că există uncountably mulți dintre ei. 1618 01:13:42,730 --> 01:13:48,360 Deci, suntem capabili punct de vedere tehnic doar pentru a reprezintă o cantitate finită de ele 1619 01:13:48,360 --> 01:13:50,470 cu o cantitate finită de date. 1620 01:13:50,470 --> 01:13:52,050 Dar e foarte interesant. 1621 01:13:52,050 --> 01:13:54,920 Acum, acest lucru îl imploră Întrebarea de modul în care ar fi 1622 01:13:54,920 --> 01:13:59,299 du-te despre reprezentând acest lucru cu biți, nu? 1623 01:13:59,299 --> 01:14:00,340 Deci, cum sunt stocate flotoare? 1624 01:14:00,340 --> 01:14:01,970 1625 01:14:01,970 --> 01:14:03,730 Cu numere întregi a fost ușor. 1626 01:14:03,730 --> 01:14:06,690 Dar cu flotoare vrei pentru a maximiza domeniul, 1627 01:14:06,690 --> 01:14:10,530 și doriți să fie în măsură să reprezinte un număr foarte mare și un număr foarte mici, cum ar fi 1628 01:14:10,530 --> 01:14:14,210 0.000001, în același timp. 1629 01:14:14,210 --> 01:14:15,180 Deci, din nou, același joc. 1630 01:14:15,180 --> 01:14:20,470 Are cineva vreo idee cum am putea du-te cu privire la reprezentarea pluti în memorie? 1631 01:14:20,470 --> 01:14:26,820 1632 01:14:26,820 --> 01:14:27,970 Doar arunca nimic. 1633 01:14:27,970 --> 01:14:29,930 1634 01:14:29,930 --> 01:14:30,856 Da, vă rog. 1635 01:14:30,856 --> 01:14:33,552 >> Audiența: [inaudibil] ca în cazul în care a fost de două int și o 1636 01:14:33,552 --> 01:14:36,890 fiind [inaudibil] și o ființă totul după virgulă. 1637 01:14:36,890 --> 01:14:37,640 GABRIEL: OK, rece. 1638 01:14:37,640 --> 01:14:40,300 Deci, două numere întregi diferite. 1639 01:14:40,300 --> 01:14:45,260 Puteți avea 12,45, așa că e 12 și 45. 1640 01:14:45,260 --> 01:14:45,890 Frumos. 1641 01:14:45,890 --> 01:14:46,973 Ce ere ai de gând să spui? 1642 01:14:46,973 --> 01:14:48,420 1643 01:14:48,420 --> 01:14:49,430 Același lucru? 1644 01:14:49,430 --> 01:14:49,930 Da? 1645 01:14:49,930 --> 01:14:55,630 >> Audiența: [inaudibil] notație în cazul în care vă separă de bază. 1646 01:14:55,630 --> 01:14:58,910 >> GABRIEL: notația științifică, Da, asta e, de obicei, ceea ce se întâmplă. 1647 01:14:58,910 --> 01:15:01,350 Deci, aceasta este ceea ce se numeste mantisa. 1648 01:15:01,350 --> 01:15:06,490 Asta e ceea ce este de fapt număr și apoi exponentul 1649 01:15:06,490 --> 01:15:08,780 este doar în cazul în care virgula e, nu? 1650 01:15:08,780 --> 01:15:13,720 Deci, aceasta va fi ceva ale formularului 1, 2, 3, 4, 5 ori 10 1651 01:15:13,720 --> 01:15:15,000 la 4 minus. 1652 01:15:15,000 --> 01:15:17,800 Tocmai am dat seama that-- da, exact. 1653 01:15:17,800 --> 01:15:23,372 Apoi acest 10 la minus 4 este de gând să definească în cazul în care virgula este, în regulă? 1654 01:15:23,372 --> 01:15:24,330 În Brazilia, vom folosi virgula. 1655 01:15:24,330 --> 01:15:26,795 Aici voi folosi un punct. 1656 01:15:26,795 --> 01:15:27,640 Deci, un punct. 1657 01:15:27,640 --> 01:15:28,860 1658 01:15:28,860 --> 01:15:34,840 >> Și acest lucru este cool, pentru că atunci poți concentreze o mulțime de biți pe acest tip 1659 01:15:34,840 --> 01:15:40,863 aici, pe mantisa, iar apoi e va fi de precizie dumneavoastră actuale. 1660 01:15:40,863 --> 01:15:41,920 1661 01:15:41,920 --> 01:15:47,175 Și puteți face acest lucru fie în zecimal sau în sistemul bazat binar. 1662 01:15:47,175 --> 01:15:49,781 Există diferite modalități de a pune în aplicare acest lucru. 1663 01:15:49,781 --> 01:15:50,280 Întrebări? 1664 01:15:50,280 --> 01:15:55,918 1665 01:15:55,918 --> 01:15:56,418 Da? 1666 01:15:56,418 --> 01:15:57,508 1667 01:15:57,508 --> 01:15:59,841 Audiența: Câte locuri după zecimal [inaudibil]? 1668 01:15:59,841 --> 01:16:05,240 1669 01:16:05,240 --> 01:16:12,610 >> GABRIEL: Aceasta este o întrebare complicată, pentru că niciodată nu e într-adevăr de 100% precise, 1670 01:16:12,610 --> 01:16:15,680 pentru că așa cum vedeți aici, pentru unele numere este 100% precis. 1671 01:16:15,680 --> 01:16:20,350 Cred că dacă am pus 0,5 aici, aceasta va fi de 100% precis. 1672 01:16:20,350 --> 01:16:22,220 O să fie 0.500000. 1673 01:16:22,220 --> 01:16:24,170 Deci, în acest caz, e perfect. 1674 01:16:24,170 --> 01:16:27,330 Dar în alte cazuri, este mult mai puțin perfectă. 1675 01:16:27,330 --> 01:16:35,010 În experiența mea, ca pana la patru, cinci zecimale este destul de precisă. 1676 01:16:35,010 --> 01:16:38,300 Dacă utilizați un dublu, o să fi mult mai precis decât atât, OK? 1677 01:16:38,300 --> 01:16:42,750 >> ROB BOWDEN: Deci, doar pentru a arunca unele mai multe context la flotoare, 1678 01:16:42,750 --> 01:16:46,320 Nu-mi amintesc 100% cum spec de flotoare de lucrări, de fapt, 1679 01:16:46,320 --> 01:16:52,660 dar eu nu voi aminti mereu care pluteste începe să obtinerea murdar. 1680 01:16:52,660 --> 01:16:55,460 1681 01:16:55,460 --> 01:17:00,930 Deci, ideea este că atunci când vei ajunge într-adevăr, într-adevăr numere mari sau foarte, foarte 1682 01:17:00,930 --> 01:17:03,470 un număr mic, vom începe înrăutățește și mai rău 1683 01:17:03,470 --> 01:17:05,860 la diferențierea între două flotoare apropiate. 1684 01:17:05,860 --> 01:17:09,180 >> Deci, cum îmi place să mă gândesc este cu virgulă mobilă imprecizie, 1685 01:17:09,180 --> 01:17:11,890 există două flotoare care dacă am încerca să le preciza 1686 01:17:11,890 --> 01:17:15,150 în C, în ciuda faptului că sunt numere diferite, 1687 01:17:15,150 --> 01:17:17,340 ei vor fi interpretat în același număr, 1688 01:17:17,340 --> 01:17:19,006 pentru că nu le putem stoca în mod diferit. 1689 01:17:19,006 --> 01:17:20,540 Avem nevoie de a utiliza aceleași biți. 1690 01:17:20,540 --> 01:17:23,220 Și așa că atunci când vom ajunge la într-adevăr, un număr într-adevăr mare, 1691 01:17:23,220 --> 01:17:28,460 vorbesc ca 10 la 300 sau ceva, e la acel moment 1692 01:17:28,460 --> 01:17:33,240 că 10 la 300 sau 5 ori 10 la 300 1693 01:17:33,240 --> 01:17:37,020 nu pot fi diferențiate de la de 7 ori 10 la 300. 1694 01:17:37,020 --> 01:17:39,660 Așa că e un destul de mare diferență între cele două numere. 1695 01:17:39,660 --> 01:17:43,830 >> Dar atunci când ajungi jos la lucrurile limite normale, 1696 01:17:43,830 --> 01:17:45,770 ai tendința de a fi destul de bun la diferențierea. 1697 01:17:45,770 --> 01:17:49,020 Și apoi când ajungi jos foarte mic, te, de asemenea, asistent din nou destul de rău. 1698 01:17:49,020 --> 01:17:52,529 Deci, ca o grămadă de 0.0000, devine destul de rău. 1699 01:17:52,529 --> 01:17:53,820 GABRIEL: Da, așa o notă de rapid. 1700 01:17:53,820 --> 01:17:54,670 Nu face acest lucru. 1701 01:17:54,670 --> 01:17:57,590 Nu încercați niciodată să compare plutește folosind egali egali, 1702 01:17:57,590 --> 01:18:02,800 pentru că chiar dacă acestea sunt aproape același, aproape la fel, nu este același lucru. 1703 01:18:02,800 --> 01:18:06,360 Deci, ceea ce face de obicei este scădeți ei, să ia valoarea absolută a că, 1704 01:18:06,360 --> 01:18:12,380 și a vedea dacă acesta este mai mic decât 0,0001 sau ceva de genul asta, OK? 1705 01:18:12,380 --> 01:18:12,880 Și se răcește. 1706 01:18:12,880 --> 01:18:16,630 Știu o mulțime de oameni au unele de fundal în Java, 1707 01:18:16,630 --> 01:18:19,700 în special cele care au făcut AP informatică, nu? 1708 01:18:19,700 --> 01:18:23,630 Și Java este un limbaj de că pe baza C cea mai mare parte, 1709 01:18:23,630 --> 01:18:26,570 are un cuplu diferențe foarte mari. 1710 01:18:26,570 --> 01:18:31,430 Dar pentru bucle, și FI, și chestii de genul că, ei sunt toți aceeași sintaxă. 1711 01:18:31,430 --> 01:18:35,240 Am câteva programe aici pentru a arăta acest lucru. 1712 01:18:35,240 --> 01:18:37,050 >> Deci, de exemplu, o lume simplă salut. 1713 01:18:37,050 --> 01:18:43,140 1714 01:18:43,140 --> 01:18:46,600 Acest lucru este salut lume în C, care baieti sunt cu siguranta familiarizat cu, 1715 01:18:46,600 --> 01:18:49,100 și acest lucru și acesta este în Java. 1716 01:18:49,100 --> 01:18:53,100 Deci, în Java, avem această clasa publica, salut lume, 1717 01:18:53,100 --> 01:18:57,050 și public void static args principal, și de coarde. 1718 01:18:57,050 --> 01:18:59,665 Args șir de gând să apară în C foarte scurt timp. 1719 01:18:59,665 --> 01:19:00,740 1720 01:19:00,740 --> 01:19:01,990 Dar să nu mergem acolo încă. 1721 01:19:01,990 --> 01:19:06,060 Chiar acum avem anulate aici, ceea ce înseamnă că principala nu este să ia nici un argument. 1722 01:19:06,060 --> 01:19:09,220 Și apoi ne-am System.out.println, și asta e 1723 01:19:09,220 --> 01:19:11,140 un fel de echivalent pentru printf. 1724 01:19:11,140 --> 01:19:17,150 Aici nu avem cu adevărat nevoie backslash n deoarece ln imprimare face asta pentru tine. 1725 01:19:17,150 --> 01:19:19,680 Se adaugă backslash n la capătul liniei. 1726 01:19:19,680 --> 01:19:22,540 1727 01:19:22,540 --> 01:19:30,415 >> Dar dacă te duci în ceva de genul o pentru, tine 1728 01:19:30,415 --> 01:19:32,590 se poate observa că acestea sunt destul de mult același lucru. 1729 01:19:32,590 --> 01:19:37,390 Deci inițializare, și condiție, și actualizarea 1730 01:19:37,390 --> 01:19:42,050 este-- am ratat un spațiu here-- sunt destul de mult același lucru, cu excepția Java 1731 01:19:42,050 --> 01:19:44,430 are un nivel ridicat mai multe lucruri puține. 1732 01:19:44,430 --> 01:19:46,010 1733 01:19:46,010 --> 01:19:49,610 Aici putem face plus I și Java va automat 1734 01:19:49,610 --> 01:19:52,730 face acest lucru i aici, care este un număr întreg, într-un șir de caractere, 1735 01:19:52,730 --> 01:19:55,200 și apoi adăugați două șiruri împreună. 1736 01:19:55,200 --> 01:19:57,570 Aici, în C trebuie să facem &% d. 1737 01:19:57,570 --> 01:20:15,310 1738 01:20:15,310 --> 01:20:18,170 Linia aici, pentru arată exact la fel. 1739 01:20:18,170 --> 01:20:37,760 >> Și dacă ne uităm la cazul în care, IS De asemenea, arata exact la fel, nu? 1740 01:20:37,760 --> 01:20:39,290 1741 01:20:39,290 --> 01:20:44,650 Deci reale diferențele mari sunt în acele lucruri pe care le vezi aici. 1742 01:20:44,650 --> 01:20:47,530 Static publice, gol, și apoi public class dacă. 1743 01:20:47,530 --> 01:20:48,990 1744 01:20:48,990 --> 01:20:52,360 Deci, Java a ceea ce este numit o mașină virtuală. 1745 01:20:52,360 --> 01:20:53,560 1746 01:20:53,560 --> 01:21:00,150 Și este foarte puternic bazat pe ceea ce este numit programării orientate pe obiecte, 1747 01:21:00,150 --> 01:21:04,120 care este un foarte, foarte frecvente paradigmă de programare în zilele noastre. 1748 01:21:04,120 --> 01:21:10,870 Și acest lucru clase este ceea ce vezi, ceva de orientare obiect, 1749 01:21:10,870 --> 01:21:14,214 este să creați o clasă și apoi pot obține obiecte din acea clasă. 1750 01:21:14,214 --> 01:21:16,380 Noi nu vom vorbi prea mult despre faptul că, în CS50, 1751 01:21:16,380 --> 01:21:18,213 dar asta e cu siguranta ceva foarte cool, 1752 01:21:18,213 --> 01:21:21,440 mai ales dacă vrei să mergi în dezvoltare web mai sofisticate 1753 01:21:21,440 --> 01:21:24,050 la sfârșitul cursului, ca să prezinte proiectul final 1754 01:21:24,050 --> 01:21:26,430 și unele cadre frumoase și alte chestii. 1755 01:21:26,430 --> 01:21:31,250 >> Deci, practic ideea este că Nu vreau să re-pune în aplicare ceva, 1756 01:21:31,250 --> 01:21:36,330 astfel încât să creeze ceva care este foarte generic, cum ar fi forma, 1757 01:21:36,330 --> 01:21:38,310 și apoi să creați forme diferite de ea, 1758 01:21:38,310 --> 01:21:40,240 și apoi de la fiecare din aceste forme, să creați 1759 01:21:40,240 --> 01:21:45,110 unele forme mai specifice în trei dimensiuni sau ceva de genul asta. 1760 01:21:45,110 --> 01:21:48,799 Și ei au această ierarhie ei moștenesc de celelalte, așa 1761 01:21:48,799 --> 01:21:51,840 toate funcțiile și toate variabilele care forma mare are aici, toate acestea 1762 01:21:51,840 --> 01:21:54,110 vor avea, și toate acestea sunt Va trebui, și așa mai departe și așa mai departe. 1763 01:21:54,110 --> 01:21:55,640 Deci, asta e ideea de bază. 1764 01:21:55,640 --> 01:21:59,170 >> C nu are asta, dar C ++ are acest tip de facilitate. 1765 01:21:59,170 --> 01:22:02,710 Și Java este puternic influențată de orientare obiect, 1766 01:22:02,710 --> 01:22:05,310 asa ca asta e motivul pentru care vezi Clasa de aici tot timpul. 1767 01:22:05,310 --> 01:22:10,790 Și alt lucru este această mașină virtuală Java. 1768 01:22:10,790 --> 01:22:13,790 Așa că, cred, este o idee foarte inteligentă. 1769 01:22:13,790 --> 01:22:17,020 Deci, ce oameni care java inventat făcut este 1770 01:22:17,020 --> 01:22:19,630 ei nu au vrut să compila codul lor de două ori 1771 01:22:19,630 --> 01:22:23,990 dacă ar trebui să-l ruleze într-un Windows, sau un Mac, sau Linux, asa ca ceea ce fac ei 1772 01:22:23,990 --> 01:22:26,740 Se aleargă literalmente ceva de genul aparatul, 1773 01:22:26,740 --> 01:22:29,630 dar nu veți vedea într-adevăr se întâmplă. 1774 01:22:29,630 --> 01:22:32,430 Deci, se execută o mașină virtuală în interiorul computerului, care 1775 01:22:32,430 --> 01:22:34,940 este de fapt ca un sistem de operare mini. 1776 01:22:34,940 --> 01:22:37,920 Și că de operare Scopul sistemului în viață 1777 01:22:37,920 --> 01:22:41,430 este doar pentru a rula ceea ce se numește byte code. 1778 01:22:41,430 --> 01:22:47,411 >> Deci, în loc de C, modul în care ne-ar compila acest lucru este în cazul în care face, și apoi executați 1779 01:22:47,411 --> 01:22:47,910 ./if. 1780 01:22:47,910 --> 01:22:53,510 1781 01:22:53,510 --> 01:22:55,290 Am uitat backslash în. 1782 01:22:55,290 --> 01:23:00,240 In Java, v-ar face în primul rând Java C pentru a compila, if.c. 1783 01:23:00,240 --> 01:23:06,440 1784 01:23:06,440 --> 01:23:08,252 Nu e C. lui dot java. 1785 01:23:08,252 --> 01:23:09,460 1786 01:23:09,460 --> 01:23:12,140 Și atunci trebuie să nu rula ./. 1787 01:23:12,140 --> 01:23:15,440 Veți obține acest nou dosar if.class, dar nu poți într-adevăr 1788 01:23:15,440 --> 01:23:17,980 rula if.class acum doar așa cum am făcut-o înainte. 1789 01:23:17,980 --> 01:23:19,440 Acesta nu este un executabil. 1790 01:23:19,440 --> 01:23:20,630 Trebuie să fugi. 1791 01:23:20,630 --> 01:23:23,410 Trebuie să-l hrănească în un program numit Java, 1792 01:23:23,410 --> 01:23:28,260 și că programul este mașina virtuală, și apoi faci if.class, sau în cazul în care. 1793 01:23:28,260 --> 01:23:28,760 Da. 1794 01:23:28,760 --> 01:23:30,890 Și apoi funcționează. 1795 01:23:30,890 --> 01:23:33,740 OK deci acesta este un fel de mașină virtuală se întâmplă. 1796 01:23:33,740 --> 01:23:37,700 C nu are că, deci, dacă ar fi să a pus acest program într-un calculator Windows, 1797 01:23:37,700 --> 01:23:40,516 aceasta nu ar funcționa în C. În Java o face. 1798 01:23:40,516 --> 01:23:41,015 Întrebări? 1799 01:23:41,015 --> 01:23:43,430 1800 01:23:43,430 --> 01:23:44,030 Rece. 1801 01:23:44,030 --> 01:23:47,160 Asta în cazul în care pentru secțiunea de super pentru ziua de azi. 1802 01:23:47,160 --> 01:23:49,462