1 00:00:00,000 --> 00:00:11,050 2 00:00:11,050 --> 00:00:13,351 >> ROB BOWDEN: Dit is het comfortabeler sectie, 3 00:00:13,351 --> 00:00:16,309 maar dat betekent niet dat als je het gevoel dat je niet meer comfortabel 4 00:00:16,309 --> 00:00:18,420 je zult hier geen dingen te leren. 5 00:00:18,420 --> 00:00:20,600 Dus laten we beginnen. 6 00:00:20,600 --> 00:00:22,819 Heeft u dia's ga rechtsaf de dingen. 7 00:00:22,819 --> 00:00:24,360 Ben ik op het punt om gewoon het juiste moment? 8 00:00:24,360 --> 00:00:25,680 9 00:00:25,680 --> 00:00:26,450 Schakelen laptops. 10 00:00:26,450 --> 00:00:30,470 11 00:00:30,470 --> 00:00:32,950 >> Ann: Je wilt niet stel jezelf voor, Rob? 12 00:00:32,950 --> 00:00:34,090 >> ROB BOWDEN: Oh, ik ben Rob. 13 00:00:34,090 --> 00:00:35,182 14 00:00:35,182 --> 00:00:37,470 Dit is mijn vijfde jaar TF-ing CS50. 15 00:00:37,470 --> 00:00:38,760 16 00:00:38,760 --> 00:00:39,650 >> GABRIEL: Ik ben Gabriel. 17 00:00:39,650 --> 00:00:41,610 Ik ben hoofd TF van CS50. 18 00:00:41,610 --> 00:00:44,009 Ik TF was vorig jaar en dit jaar. 19 00:00:44,009 --> 00:00:46,675 Ann: En ik ben Alison, en dit is mijn tweede jaar TF-ing CS50. 20 00:00:46,675 --> 00:00:48,510 21 00:00:48,510 --> 00:00:50,825 >> ROB BOWDEN: Oke, dus dit ding aan de linkerkant, 22 00:00:50,825 --> 00:00:52,250 hopelijk heb je het eerder gezien. 23 00:00:52,250 --> 00:00:54,112 Zo niet, omdat u downloaden het voor jezelf, 24 00:00:54,112 --> 00:00:55,570 je had het moeten zien in collegezaal. 25 00:00:55,570 --> 00:00:56,590 26 00:00:56,590 --> 00:01:01,320 Dus dit is de CS50 apparaat, en hij heeft een enigszins een beschrijving ervan 27 00:01:01,320 --> 00:01:01,880 in collegezalen. 28 00:01:01,880 --> 00:01:06,890 Maar in principe is het gewoon je een besturingssysteem 29 00:01:06,890 --> 00:01:10,550 systeem binnen uw besturingssysteem systeem, zodat wij u kunnen geven 30 00:01:10,550 --> 00:01:12,540 programma zonder zorgen te maken, oh is dit 31 00:01:12,540 --> 00:01:15,989 gaan werken op zowel Windows en Mac, of als sommige van jullie 32 00:01:15,989 --> 00:01:17,280 zijn al gebruik van Linux, Linux. 33 00:01:17,280 --> 00:01:18,532 34 00:01:18,532 --> 00:01:20,240 Het is gewoon de bedoeling om zijn een gemeenschappelijke spelen 35 00:01:20,240 --> 00:01:23,010 gebied dus iedereen heeft de exact dezelfde omgeving. 36 00:01:23,010 --> 00:01:25,344 >> Dus als je niet gedownload dit al, 37 00:01:25,344 --> 00:01:28,510 je moet het downloaden, want je bent gaat het nodig hebben voor het probleem set. 38 00:01:28,510 --> 00:01:32,335 En het is een twee gigabyte downloaden, dus het een tijdje kan duren. 39 00:01:32,335 --> 00:01:33,780 Op de Harvard het zal snel gaan. 40 00:01:33,780 --> 00:01:35,870 41 00:01:35,870 --> 00:01:37,440 Dus CS50 apparaat. 42 00:01:37,440 --> 00:01:41,980 >> Nu in het begin, we gaan praten over gewoon een stelletje opdrachtregel 43 00:01:41,980 --> 00:01:46,880 stuff, en zo door dat, ik bedoel werken in deze kleine omgeving hier. 44 00:01:46,880 --> 00:01:53,230 En merk op alle dingen Ik hier zeggen nu 45 00:01:53,230 --> 00:01:56,900 gaat werken als je de binnenkant van een terminal binnenkant van het apparaat, 46 00:01:56,900 --> 00:02:00,790 of als je binnen van de gedit terminalvenster 47 00:02:00,790 --> 00:02:02,090 binnenkant van het apparaat. 48 00:02:02,090 --> 00:02:03,770 Dus die omgevingen zijn identiek. 49 00:02:03,770 --> 00:02:04,940 50 00:02:04,940 --> 00:02:07,270 >> Maar ik ga een derde route te gaan. 51 00:02:07,270 --> 00:02:12,200 En let hier dit neer weinig IP-adres hier. 52 00:02:12,200 --> 00:02:15,940 Dus je hoeft niet te dit doen, maar dit IP 53 00:02:15,940 --> 00:02:19,700 address-- nu als I-- behalve het wordt geblokkeerd door dat ding. 54 00:02:19,700 --> 00:02:22,790 55 00:02:22,790 --> 00:02:27,000 OK, zodat het IP-adres meer dan in een terminal 56 00:02:27,000 --> 00:02:31,090 hier-- zodat deze terminal boven Hier is een terminal in mijn Mac. 57 00:02:31,090 --> 00:02:34,540 Dus dit is op geen enkele wijze op dit moment geassocieerd met het apparaat helemaal. 58 00:02:34,540 --> 00:02:39,360 En als je op Windows, dan ben je gaat nodig hebben om iets te downloaden 59 00:02:39,360 --> 00:02:44,430 speciaal voor dit, met name mensen hebben de neiging te gebruiken Putty, P-U-T-T-Y. 60 00:02:44,430 --> 00:02:50,700 >> Dus wat ik ga doen is het type SSH en dan is dat IP-adres. 61 00:02:50,700 --> 00:02:54,030 Nou, jharvard op dat IP-adres. 62 00:02:54,030 --> 00:03:00,150 Dus 192.168.24.220. 63 00:03:00,150 --> 00:03:02,127 Deze enge bericht negeren. 64 00:03:02,127 --> 00:03:02,710 Typ gewoon ja. 65 00:03:02,710 --> 00:03:04,550 66 00:03:04,550 --> 00:03:06,030 Dit CS50 in een doos. 67 00:03:06,030 --> 00:03:07,460 Het vraagt ​​om uw wachtwoord. 68 00:03:07,460 --> 00:03:11,910 >> En dus in veel van deze contexten waar het vraagt ​​om het wachtwoord, [onverstaanbaar]. 69 00:03:11,910 --> 00:03:15,670 We hebben een heleboel vragen waar kreeg hij zegt dat het eigenlijk niet te typen. 70 00:03:15,670 --> 00:03:20,011 Het maakt je niet tonen de karakters van het wachtwoord terwijl u typt, als er iets, 71 00:03:20,011 --> 00:03:23,010 voor een beveiligingsfunctie, want als iemand kijkt over je schouder 72 00:03:23,010 --> 00:03:25,870 en ze zien star star ster ster, dan zijn ze 73 00:03:25,870 --> 00:03:28,640 weet dat uw wachtwoord is vier personages. 74 00:03:28,640 --> 00:03:32,660 Het idee is dus het zal vragen dank voor uw wachtwoord, type. 75 00:03:32,660 --> 00:03:34,490 Het gaat niet om aan te tonen je de personages, 76 00:03:34,490 --> 00:03:36,090 maar het is hen daadwerkelijk te accepteren. 77 00:03:36,090 --> 00:03:39,210 In dit geval, elke keer dat u ooit een wachtwoord prompt te zien 78 00:03:39,210 --> 00:03:42,280 het omgaan met het apparaat, de wachtwoord gaat karmozijn zijn. 79 00:03:42,280 --> 00:03:43,270 Dus karmozijnrood. 80 00:03:43,270 --> 00:03:44,730 81 00:03:44,730 --> 00:03:50,550 >> En nu hier binnenkant van deze venster dat is in mijn Mac, 82 00:03:50,550 --> 00:03:54,120 Ik ben in principe met exact dezelfde uitzicht 83 00:03:54,120 --> 00:03:57,040 als binnenkant van een terminal in het apparaat. 84 00:03:57,040 --> 00:03:58,470 Dus je hoeft niet om dit te doen. 85 00:03:58,470 --> 00:04:01,300 U kunt alles doen u willen binnenkant van het apparaat. 86 00:04:01,300 --> 00:04:05,140 Ik bijna nooit eigenlijk doen iets in het apparaat. 87 00:04:05,140 --> 00:04:09,440 Ik heb bijna altijd te minimaliseren dat en nu Ik ben bezig met SSH in het apparaat. 88 00:04:09,440 --> 00:04:11,480 89 00:04:11,480 --> 00:04:14,180 >> Als er iets, als je een langzamere computer, 90 00:04:14,180 --> 00:04:15,820 je zou een verschil merken. 91 00:04:15,820 --> 00:04:18,839 Ik doe dit omdat ik de voorkeur deze terminal venster. 92 00:04:18,839 --> 00:04:20,881 Het heeft een aantal functies, zoals Ik kan het venster te splitsen, 93 00:04:20,881 --> 00:04:22,672 en nu kan ik SSH in door het toestel. 94 00:04:22,672 --> 00:04:24,105 Ik kreeg twee SSH aan de hand is in een keer. 95 00:04:24,105 --> 00:04:28,030 96 00:04:28,030 --> 00:04:32,250 Als uw computer is bijzonder traag en je werkt in het toestel, 97 00:04:32,250 --> 00:04:35,200 en je realiseren dat dit echt laggy, wat dan ook. 98 00:04:35,200 --> 00:04:38,220 Heeft de neiging om veel sneller te zijn als je SSH-ed in. 99 00:04:38,220 --> 00:04:40,960 Maar anders kun je alle kanten op werken. 100 00:04:40,960 --> 00:04:42,388 >> Publiek: Wat doet SSH betekenen? 101 00:04:42,388 --> 00:04:43,820 102 00:04:43,820 --> 00:04:47,479 >> ROB BOWDEN: Secure schelpen, iets dergelijks? 103 00:04:47,479 --> 00:04:48,270 Wat betekent SSH betekenen? 104 00:04:48,270 --> 00:04:54,214 105 00:04:54,214 --> 00:04:55,130 GABRIEL: Secure shell. 106 00:04:55,130 --> 00:04:56,463 Ann: Het is gewoon secure shell. 107 00:04:56,463 --> 00:04:57,720 ROB BOWDEN: Secure shell. 108 00:04:57,720 --> 00:05:03,700 Het is een protocol dat u-- het is een beveiligd protocol, dus versleuteld. 109 00:05:03,700 --> 00:05:06,850 Mensen kunnen het netwerk niet snoop en zien wat je zegt om iets te 110 00:05:06,850 --> 00:05:08,120 je SSH-ed aan. 111 00:05:08,120 --> 00:05:12,900 En in feite, in de oude dagen van de CS50, zodat in 2009 112 00:05:12,900 --> 00:05:19,300 toen ik een eerstejaars, de manier waarop je werkte aan CS50 probleem sets, 113 00:05:19,300 --> 00:05:22,490 was je SSH-ed om enkele server dat gaven we u toegang tot, 114 00:05:22,490 --> 00:05:23,497 en je werkte op daar. 115 00:05:23,497 --> 00:05:25,330 Dus heb je dit niet hebt grafische apparaat. 116 00:05:25,330 --> 00:05:26,160 Je hoefde niet gedit. 117 00:05:26,160 --> 00:05:28,930 Je hebt niet al deze dingen hebben die kon je punt visueel en klik. 118 00:05:28,930 --> 00:05:30,346 Je moest werken in deze interface. 119 00:05:30,346 --> 00:05:31,580 120 00:05:31,580 --> 00:05:33,716 Ik geef de voorkeur om te werken in deze interface. 121 00:05:33,716 --> 00:05:36,090 Dus een deel van wat we gaan te gaan over nu 122 00:05:36,090 --> 00:05:39,560 zijn een stelletje van de commando's die je moet 123 00:05:39,560 --> 00:05:42,095 beginnen om vertrouwd te raken met zo krijgen je mee te gaan in de cursus. 124 00:05:42,095 --> 00:05:43,190 125 00:05:43,190 --> 00:05:45,790 En eerlijk gezegd, als je eenmaal wennen aan hen, het 126 00:05:45,790 --> 00:05:48,220 is zo veel sneller te werken in deze omgeving 127 00:05:48,220 --> 00:05:53,690 dan is te werken finder, slepen en klikken dingen. 128 00:05:53,690 --> 00:05:55,340 129 00:05:55,340 --> 00:05:57,210 >> Dus hier zijn we. 130 00:05:57,210 --> 00:06:01,779 Nu heb ik net SSH-ed in, en dus de standaard locatie-- u 131 00:06:01,779 --> 00:06:04,820 zag een aantal van deze opdrachten in de klas, maar we zullen weer gaan ze allemaal. 132 00:06:04,820 --> 00:06:08,060 De standaard locatie zijn we in de home directory. 133 00:06:08,060 --> 00:06:11,520 En directory, net een ander woord voor map. 134 00:06:11,520 --> 00:06:13,310 Dus we zijn in de home directory. 135 00:06:13,310 --> 00:06:15,889 Typ ls, een lijst van de bestanden in deze map. 136 00:06:15,889 --> 00:06:17,430 Blijkbaar heb ik een blah.c eerder. 137 00:06:17,430 --> 00:06:19,120 138 00:06:19,120 --> 00:06:20,472 Dus we hebben een desktop directory. 139 00:06:20,472 --> 00:06:21,930 Je merkt de syntax highlighting? 140 00:06:21,930 --> 00:06:27,400 141 00:06:27,400 --> 00:06:32,900 De licht blauwe markering geeft aan een directory en de rechte witte 142 00:06:32,900 --> 00:06:34,380 geeft enkel een duidelijke bestand. 143 00:06:34,380 --> 00:06:35,410 144 00:06:35,410 --> 00:06:37,690 Dus er zullen zijn sommige andere kleuren die je ziet. 145 00:06:37,690 --> 00:06:41,240 Een uitvoerbaar bestand is waarschijnlijk zal te groen of iets dergelijks. 146 00:06:41,240 --> 00:06:44,820 OK, dus we zijn in de home directory. 147 00:06:44,820 --> 00:06:48,970 >> Nu als ik wil naar een andere te gaan directory, cd is de opdracht die ik wil. 148 00:06:48,970 --> 00:06:52,720 Dus veranderen directory, en dan moet je passeren de naam van de directory 149 00:06:52,720 --> 00:06:54,020 dat u wilt in te gaan. 150 00:06:54,020 --> 00:06:55,780 Dus hier hebben we vier opties. 151 00:06:55,780 --> 00:07:03,397 Ik kan gaan in downloads, en nu zien we hier is het deze haakjes bijgewerkt 152 00:07:03,397 --> 00:07:04,480 om te zeggen ik ben in ~ / downloads. 153 00:07:04,480 --> 00:07:05,620 154 00:07:05,620 --> 00:07:06,800 >> Dus wat is tilde? 155 00:07:06,800 --> 00:07:10,640 Het is een afkorting voor je home directory. 156 00:07:10,640 --> 00:07:15,260 Dus bijna alles wat je doet gaat zijn met betrekking tot uw home directory, 157 00:07:15,260 --> 00:07:20,620 en pwd is gewoon een opdracht Ik heb een keer gebruiken in een jaar dat 158 00:07:20,620 --> 00:07:22,420 alleen drukt de huidige directory. 159 00:07:22,420 --> 00:07:25,730 En dus hier dat zien ~ / Downloads echt lost 160 00:07:25,730 --> 00:07:26,896 naar / home / jharvard / downloads. 161 00:07:26,896 --> 00:07:29,320 162 00:07:29,320 --> 00:07:32,230 Dus / home / jharvard is mijn home directory. 163 00:07:32,230 --> 00:07:33,700 164 00:07:33,700 --> 00:07:39,400 >> Dus we kunnen cd dot dot. 165 00:07:39,400 --> 00:07:47,800 Nu dot dot is een speciale map die altijd verwijst naar de ene directory omhoog. 166 00:07:47,800 --> 00:07:51,730 Dus als ik in ~ / downloads, dan cd dot dot gaat me brengen tot tilde. 167 00:07:51,730 --> 00:07:52,950 168 00:07:52,950 --> 00:07:55,490 Wat vinden we cd dot dot gaat me nu brengen? 169 00:07:55,490 --> 00:07:58,740 170 00:07:58,740 --> 00:08:00,570 Het zal me aan / naar huis te brengen. 171 00:08:00,570 --> 00:08:04,450 Dus tilde door middel van druk werkmap, Ik ben nu in / home / jharvard. 172 00:08:04,450 --> 00:08:06,060 173 00:08:06,060 --> 00:08:08,820 één directory omhoog van dat, nu hier staat / home. 174 00:08:08,820 --> 00:08:12,330 175 00:08:12,330 --> 00:08:17,180 >> Nu cd dot dot. 176 00:08:17,180 --> 00:08:20,910 Nu ben ik in de root directory, en je kan het niet nog een keer doen. 177 00:08:20,910 --> 00:08:23,340 Je moet gewoon blijven in de root directory altijd. 178 00:08:23,340 --> 00:08:26,700 De root-directory heeft een hele hoop dingen die, als je wilt kijken naar, 179 00:08:26,700 --> 00:08:27,410 je kunt. 180 00:08:27,410 --> 00:08:29,700 Bijvoorbeeld, als ik ga in bin, dat bevat 181 00:08:29,700 --> 00:08:35,789 al deze binaries, zoals ls, en cd, en al die dingen. 182 00:08:35,789 --> 00:08:38,630 Dus deze opdrachten moeten er ergens in het systeem, 183 00:08:38,630 --> 00:08:40,820 en het is in de / bin directory. 184 00:08:40,820 --> 00:08:44,530 Maar bijna alles wat je doet is gaat worden vanuit je home-directory. 185 00:08:44,530 --> 00:08:49,490 En cd zonder argumenten dan ook, je zou kunnen zeggen cd ~, hoeven niet te. 186 00:08:49,490 --> 00:08:51,810 cd gaat je brengen terug naar je home directory. 187 00:08:51,810 --> 00:08:53,170 188 00:08:53,170 --> 00:08:54,230 >> Een laatste vraag. 189 00:08:54,230 --> 00:09:00,200 cd - gaat u terug te brengen de laatste map die je in. 190 00:09:00,200 --> 00:09:04,080 Dus ik net twee keer cd'd op een rij, dus mijn laatste map was de home directory. 191 00:09:04,080 --> 00:09:11,520 Als ik naar bin slash, en nu laten we naar boven en naar de gebruiker gaan. 192 00:09:11,520 --> 00:09:12,550 193 00:09:12,550 --> 00:09:13,280 Gebruiker aandeel. 194 00:09:13,280 --> 00:09:14,840 195 00:09:14,840 --> 00:09:15,940 Laten we naar de gebruiker aandeel. 196 00:09:15,940 --> 00:09:17,140 Nu ben ik nu in user aandeel. 197 00:09:17,140 --> 00:09:19,320 cd -, terug in de bak. 198 00:09:19,320 --> 00:09:22,980 Dus dit wordt bijzonder bruikbaar wanneer je have-- en het zal schakelen. 199 00:09:22,980 --> 00:09:25,660 Dus aandeel gebruiker, terug bin, bin aandeel. 200 00:09:25,660 --> 00:09:27,250 >> Dus dit wordt nuttig. 201 00:09:27,250 --> 00:09:33,150 Het kan zijn dat je met velen, vele geneste directories. 202 00:09:33,150 --> 00:09:37,370 En wilt u iets doen echt snel in een bovenste directory. 203 00:09:37,370 --> 00:09:40,330 Je gaat naar die directory, maken veranderingen en dat soort dingen, 204 00:09:40,330 --> 00:09:42,400 en nu wil je gaan terug naar waar je was. 205 00:09:42,400 --> 00:09:43,660 cd -. 206 00:09:43,660 --> 00:09:47,320 Ik ben altijd gefrustreerd toen ik toevallig te gaan 207 00:09:47,320 --> 00:09:49,630 naar die directory I wilde aan het werk in te doen. 208 00:09:49,630 --> 00:09:52,670 Ik krijg altijd gefrustreerd toen ik dat deed in twee stappen plaats van één stap, 209 00:09:52,670 --> 00:09:55,715 want dat betekent dat de cd - gaat in die tussenliggende locatie te brengen 210 00:09:55,715 --> 00:09:57,010 in plaats van waar ik heen wil. 211 00:09:57,010 --> 00:09:59,350 212 00:09:59,350 --> 00:10:01,450 >> Zo zien we al de lijst van bestanden. 213 00:10:01,450 --> 00:10:03,300 We weten hoe ze rond zo ver te komen. 214 00:10:03,300 --> 00:10:09,900 Dus nu laten we praten over het bewerken van bestanden. 215 00:10:09,900 --> 00:10:18,790 Dus in deze cursus, je bent er bijna verwacht altijd gedit gebruiken. 216 00:10:18,790 --> 00:10:24,410 Als u wilt, kunt u de volgende stap te zetten en beginnen met het leren van een command line tekst 217 00:10:24,410 --> 00:10:25,240 editor. 218 00:10:25,240 --> 00:10:27,560 Dus verschillende opties bestaan. 219 00:10:27,560 --> 00:10:31,760 >> En degenen die waarschijnlijk ga u relevant zijn, 220 00:10:31,760 --> 00:10:35,340 we hebben Nano, Vim, en Emacs. 221 00:10:35,340 --> 00:10:40,196 Dus Nano is de beginners command line tekstverwerker. 222 00:10:40,196 --> 00:10:42,985 Dus Nano laten we gaan op blah.c ik al eerder gemaakt. 223 00:10:42,985 --> 00:10:44,030 224 00:10:44,030 --> 00:10:46,480 Het is gewoon deze standaard C-bestand. 225 00:10:46,480 --> 00:10:51,540 En je ziet een hele hoop spullen gaande onderaan het scherm, 226 00:10:51,540 --> 00:10:54,100 en blijkbaar blah.c bevat deze C-code. 227 00:10:54,100 --> 00:10:55,420 228 00:10:55,420 --> 00:11:00,330 >> Dus in dit editor, wat het zegt op de bottom-- 229 00:11:00,330 --> 00:11:06,290 nu dit dakje staat, zien we dit ^ G, ^ X, ^ O. 230 00:11:06,290 --> 00:11:10,310 Zodat in bijna alle context die je ziet, 231 00:11:10,310 --> 00:11:13,530 je zou dat dakje symbool zien in andere plaatsen online, op Stack Overflow, 232 00:11:13,530 --> 00:11:14,450 zoiets. 233 00:11:14,450 --> 00:11:16,970 Het verwijst bijna altijd te controleren. 234 00:11:16,970 --> 00:11:21,590 Dus om af te sluiten wil ik doen Controle X. Controle X, verlaat. 235 00:11:21,590 --> 00:11:22,750 236 00:11:22,750 --> 00:11:26,855 En ik kan mijn pijl gebruiken toetsen om te bewegen. 237 00:11:26,855 --> 00:11:28,010 238 00:11:28,010 --> 00:11:31,015 Let op, ik kan niet aanwijzen en klikken gemakkelijk. 239 00:11:31,015 --> 00:11:33,000 240 00:11:33,000 --> 00:11:35,010 Je moet gebruik maken van je pijl toetsen om te bewegen. 241 00:11:35,010 --> 00:11:36,950 Er kan een setting te wijzen en klikken. 242 00:11:36,950 --> 00:11:40,000 >> Maar laten we een aantal wijzigingen. 243 00:11:40,000 --> 00:11:42,100 Nu Controle X te gaan verlaten. 244 00:11:42,100 --> 00:11:44,120 Het gaat save gewijzigde buffer te zeggen. 245 00:11:44,120 --> 00:11:47,900 Nu de prompt, y voor ja, n voor nee. 246 00:11:47,900 --> 00:11:49,900 Controle C voor annuleren. 247 00:11:49,900 --> 00:11:50,780 Ik zal enkel zeggen ja. 248 00:11:50,780 --> 00:11:51,709 File naam te schrijven. 249 00:11:51,709 --> 00:11:53,500 De standaard is de file dat het al is. 250 00:11:53,500 --> 00:11:54,230 Drukt u op Enter. 251 00:11:54,230 --> 00:11:54,740 OK. 252 00:11:54,740 --> 00:11:58,580 Nu heb ik net bewerkt dat bestand, gered, en deze wordt gewijzigd. 253 00:11:58,580 --> 00:11:59,770 254 00:11:59,770 --> 00:12:03,000 >> Dus Nano is de makkelijkste teksteditor wennen. 255 00:12:03,000 --> 00:12:05,520 De alternatieven zijn Vim en Emacs. 256 00:12:05,520 --> 00:12:11,250 Die zijn hoger niveau tekstverwerkers dat een zeer steile leercurve hebben. 257 00:12:11,250 --> 00:12:13,740 Dus mijn persoonlijke voorkeur is Vim. 258 00:12:13,740 --> 00:12:17,175 En het heeft een groot aantal opties. 259 00:12:17,175 --> 00:12:18,210 260 00:12:18,210 --> 00:12:24,070 En als je eenmaal wennen om het, zult u nooit 261 00:12:24,070 --> 00:12:26,900 wil naar een andere tekstverwerker omdat je gewoon 262 00:12:26,900 --> 00:12:29,590 hebben zo veel dingen voor u beschikbaar in deze, 263 00:12:29,590 --> 00:12:31,690 maar het duurt een echt lange tijd om te leren. 264 00:12:31,690 --> 00:12:36,000 Dus misschien wil je gewoon dwingen uzelf nu om gebruikte om het te krijgen, 265 00:12:36,000 --> 00:12:38,130 maar ik zou zeggen dat het de moeite waard. 266 00:12:38,130 --> 00:12:39,660 Maar het is moeilijk. 267 00:12:39,660 --> 00:12:41,220 >> En dan Emacs. 268 00:12:41,220 --> 00:12:44,940 Ik altijd strijd in Emacs, omdat Ik weet hoe ik absoluut niets te doen. 269 00:12:44,940 --> 00:12:47,755 Blijkbaar Emacs is niet standaard geïnstalleerd op het apparaat. 270 00:12:47,755 --> 00:12:49,210 271 00:12:49,210 --> 00:12:51,720 We zullen waarschijnlijk aan toevoegen dat als een standaard installaties. 272 00:12:51,720 --> 00:12:59,620 273 00:12:59,620 --> 00:13:02,390 Zodra je een van leren Vim of Emacs, er is 274 00:13:02,390 --> 00:13:04,810 geen dwingende reden om ooit de ander te leren, 275 00:13:04,810 --> 00:13:07,570 maar het is een heel andere stijl. 276 00:13:07,570 --> 00:13:10,460 OK dus dat is het bewerken van tekstbestanden. 277 00:13:10,460 --> 00:13:13,374 >> PUBLIEK: Als u vastzaten in Vim op dit moment, hoe doe we-- 278 00:13:13,374 --> 00:13:18,840 279 00:13:18,840 --> 00:13:20,800 >> ROB BOWDEN: Er zijn meerdere modi in Vim, 280 00:13:20,800 --> 00:13:23,770 en er zijn hele tutorials op het leren van Vim. 281 00:13:23,770 --> 00:13:27,390 Dus als je toevallig te zijn in insert-modus om 282 00:13:27,390 --> 00:13:29,930 om tekst te typen, die u kunt Voer dat op verschillende manieren, 283 00:13:29,930 --> 00:13:31,610 maar ik is hoe je in insert-modus. 284 00:13:31,610 --> 00:13:34,780 In of uit een speciale modus die je in, net Escape. 285 00:13:34,780 --> 00:13:37,640 En je gewoon bash Escape te krijgen uit enige geneste modes je in. 286 00:13:37,640 --> 00:13:40,360 Gewoon OK, nu ben ik terug in de normale modus. 287 00:13:40,360 --> 00:13:43,790 >> En dus in de normale modus, een dubbele punt. 288 00:13:43,790 --> 00:13:45,160 Je ziet het verschijnen aan de onderkant. 289 00:13:45,160 --> 00:13:46,240 En dan q. 290 00:13:46,240 --> 00:13:52,600 Dus q zal stoppen als u wijzigingen heeft aangebracht, die I-- heb ik wijzigingen aangebracht? 291 00:13:52,600 --> 00:13:54,180 Ik heb veranderingen blijkbaar gemaakt. 292 00:13:54,180 --> 00:13:57,264 Dus als u wijzigingen heeft aangebracht, het zal zeggen dat je een uitroepteken zetten. 293 00:13:57,264 --> 00:13:58,430 Ik ga noemen het een knal. 294 00:13:58,430 --> 00:14:02,040 U kunt dus een verbod om te zetten net stoppen zonder iets te doen, 295 00:14:02,040 --> 00:14:04,520 of colon wq zal redden en stoppen. 296 00:14:04,520 --> 00:14:06,580 Dus w in het algemeen is te schrijven. 297 00:14:06,580 --> 00:14:08,300 Dus schrijf het bestand. 298 00:14:08,300 --> 00:14:09,810 Ik kan schrijven en af ​​te sluiten. 299 00:14:09,810 --> 00:14:13,606 Of je kan gewoon qx slam, q knal net 300 00:14:13,606 --> 00:14:16,230 om daar weg te gaan, ongeacht van eventuele wijzigingen die je hebt gemaakt. 301 00:14:16,230 --> 00:14:21,310 302 00:14:21,310 --> 00:14:28,940 >> Oke, dus nu laten we gaan-- we kunnen bestanden maken. 303 00:14:28,940 --> 00:14:30,890 Laten we beginnen met het verwijderen van bestanden. 304 00:14:30,890 --> 00:14:35,450 En ik zal gewoon gooien in één snel nieuwe commando, touch. 305 00:14:35,450 --> 00:14:38,200 Dus raken foo. 306 00:14:38,200 --> 00:14:39,340 Touch bar. 307 00:14:39,340 --> 00:14:40,220 Raak baz. 308 00:14:40,220 --> 00:14:42,810 Als ik ls, nu zien we dat deze bestanden bestaan. 309 00:14:42,810 --> 00:14:44,315 Ze zijn helemaal leeg. 310 00:14:44,315 --> 00:14:47,178 Dus touch is gewoon een makkelijke manier van het ene, [onverstaanbaar]. 311 00:14:47,178 --> 00:14:50,850 312 00:14:50,850 --> 00:14:54,640 Twee, technisch gewoon tot staat het, het werkt de timestamps. 313 00:14:54,640 --> 00:14:58,470 Dus elk bestand dat u maakt een tijdstempel die ermee verbonden zijn. 314 00:14:58,470 --> 00:15:01,330 Dus baz is gemaakt op 14 september bij 16:21. 315 00:15:01,330 --> 00:15:02,570 316 00:15:02,570 --> 00:15:06,670 Het is nu 16:22, dus als Ik weer raak baz, we 317 00:15:06,670 --> 00:15:11,420 zien dat baz was het meest onlangs gewijzigd om 16:22. 318 00:15:11,420 --> 00:15:17,680 Maar anders had ik bijna nooit kijk naar de timestamps op bestanden. 319 00:15:17,680 --> 00:15:20,490 Dus tintje, hier ben ik gewoon gebruik het aan een aantal snelle bestanden te maken. 320 00:15:20,490 --> 00:15:21,620 321 00:15:21,620 --> 00:15:27,400 >> Oke, dus nu rm is de opdracht die we de zorg over hier. 322 00:15:27,400 --> 00:15:28,665 En we kunnen rm boo. 323 00:15:28,665 --> 00:15:31,000 Zeggen verwijder regelmatig leeg bestand boo. 324 00:15:31,000 --> 00:15:34,070 En we kunnen het type y, en nu is het verwijdert. 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 Verwijder regelmatig leeg bestand baz en het type n voor nee. 328 00:15:38,620 --> 00:15:40,060 Nu is het niet verwijderd. 329 00:15:40,060 --> 00:15:41,240 Zo bar en baz bestaan ​​nog steeds. 330 00:15:41,240 --> 00:15:42,232 Foo is verdwenen. 331 00:15:42,232 --> 00:15:43,148 GABRIEL: Blijf praten. 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 Dus het vervelende bericht hier, verwijder regelmatig empty-- 336 00:15:50,370 --> 00:15:52,390 wat doe je daar beneden? 337 00:15:52,390 --> 00:15:54,030 Verwijder regelmatig leeg bestand. 338 00:15:54,030 --> 00:15:58,840 339 00:15:58,840 --> 00:16:01,610 Dus als we niet willen zijn last van dat bericht, 340 00:16:01,610 --> 00:16:05,340 we kunnen gooien in deze -f vlag, en dus dat is kracht. 341 00:16:05,340 --> 00:16:11,330 En nu als ik rm -f, het gaat niet om zeggen wilt u dit bestand te verwijderen. 342 00:16:11,330 --> 00:16:12,040 Het zal gewoon doen. 343 00:16:12,040 --> 00:16:13,720 En ls, zie ik niet meer de bar daar. 344 00:16:13,720 --> 00:16:14,810 345 00:16:14,810 --> 00:16:18,021 >> Nu is een potentieel gevaarlijke opdracht. 346 00:16:18,021 --> 00:16:19,020 Het heeft de neiging om niet te slecht. 347 00:16:19,020 --> 00:16:22,240 We komen terug in een tweede hoe het kan echt gevaarlijk. 348 00:16:22,240 --> 00:16:28,740 En kunnen we een temp directory. 349 00:16:28,740 --> 00:16:30,880 mkdir, een andere opdracht. 350 00:16:30,880 --> 00:16:34,880 Dus mkdir is een command dat maakt een directory. 351 00:16:34,880 --> 00:16:40,650 En nu door ls zien we dit mooi licht blauw gemarkeerd temp directory. 352 00:16:40,650 --> 00:16:42,295 Ik kan cd in temp. 353 00:16:42,295 --> 00:16:44,590 En ik kan subdirectory foo. 354 00:16:44,590 --> 00:16:46,330 cd in foo. mkdir bar. 355 00:16:46,330 --> 00:16:46,860 cd in de bar. 356 00:16:46,860 --> 00:16:49,400 357 00:16:49,400 --> 00:16:54,300 >> Dus we zien kunnen we gemakkelijk in een aantal mooie diepe nesten. 358 00:16:54,300 --> 00:16:56,385 Nu hoe kan ik een map verwijderen? 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 Dus als ik gewoon recht proberen te rm, zoals we hebben gedaan met een regulier bestand, 363 00:17:03,540 --> 00:17:06,420 rm bar gaat zeggen kan niet bar verwijderen. 364 00:17:06,420 --> 00:17:07,569 Het is een directory. 365 00:17:07,569 --> 00:17:10,619 Er is een speciaal commando voor het verwijderen van mappen, een soort van. 366 00:17:10,619 --> 00:17:12,900 Dus rmdir bar. 367 00:17:12,900 --> 00:17:13,710 Nu bar is verdwenen. 368 00:17:13,710 --> 00:17:14,980 369 00:17:14,980 --> 00:17:22,680 >> OK, dus rmdir ik vrijwel nooit gebruik. 370 00:17:22,680 --> 00:17:32,220 De reden being-- nu laten maak een regulier bestand bar in hier. 371 00:17:32,220 --> 00:17:34,780 Dus rmdir boo. 372 00:17:34,780 --> 00:17:35,760 rmdir. 373 00:17:35,760 --> 00:17:36,900 Verzuimd om foo te verwijderen. 374 00:17:36,900 --> 00:17:38,420 Directory niet leeg. 375 00:17:38,420 --> 00:17:43,420 Dus je kunt niet gebruik Verwijder dir op een directory die dingen in zich heeft. 376 00:17:43,420 --> 00:17:44,830 >> Dus heb je een aantal opties. 377 00:17:44,830 --> 00:17:49,780 U kunt gaan in die folder, verwijder alles handmatig, en dan naar buiten komen 378 00:17:49,780 --> 00:17:51,759 en rmdir de directory. 379 00:17:51,759 --> 00:17:53,050 Die duidelijk klinkt vervelend. 380 00:17:53,050 --> 00:17:55,000 Wat als er duizenden van bestanden daar? 381 00:17:55,000 --> 00:17:58,119 Nou, zou je rm *. 382 00:17:58,119 --> 00:17:59,410 We praten * in een tweede. 383 00:17:59,410 --> 00:18:00,870 Het betekent in feite alle dingen. 384 00:18:00,870 --> 00:18:02,030 385 00:18:02,030 --> 00:18:05,470 Maar beter nog, dus rm -r. 386 00:18:05,470 --> 00:18:10,220 Dus rm -r-- in veel contexten, -r betekent recursieve, 387 00:18:10,220 --> 00:18:13,810 waarin we praten over wat recursieve wijze in verscheidene weken. 388 00:18:13,810 --> 00:18:18,630 Maar het betekent in feite traverse het geheel van deze map 389 00:18:18,630 --> 00:18:20,190 en verwijder alles. 390 00:18:20,190 --> 00:18:24,420 >> Dus rm -r foo gaat zeggen afdalen in directory foo? 391 00:18:24,420 --> 00:18:25,210 Ja. 392 00:18:25,210 --> 00:18:26,800 Verwijder regelmatig leeg bestand foo / bar? 393 00:18:26,800 --> 00:18:27,880 394 00:18:27,880 --> 00:18:28,540 Ja. 395 00:18:28,540 --> 00:18:29,760 Verwijder directory foo? 396 00:18:29,760 --> 00:18:30,260 Ja. 397 00:18:30,260 --> 00:18:31,470 398 00:18:31,470 --> 00:18:35,020 Dus nu foo en alles daarin is verwijderd. 399 00:18:35,020 --> 00:18:42,370 >> Nu dat kan bijzonder vervelend when-- laten aanraken 1, Touch 2, touch 3. 400 00:18:42,370 --> 00:18:44,400 Zou hebben een hele hoop van bestanden. 401 00:18:44,400 --> 00:18:49,060 Als ik wilde, kon ik creëer duizenden bestanden in hier. 402 00:18:49,060 --> 00:18:53,340 En rm -r foo gaat erg vervelend. 403 00:18:53,340 --> 00:18:55,374 Ja, ja, ja, ja, ja, ja. 404 00:18:55,374 --> 00:18:57,540 Met veel meer bestanden die u snel zien hoeveel keer 405 00:18:57,540 --> 00:18:58,581 Ik zou hebben om ja te typen. 406 00:18:58,581 --> 00:19:02,265 Nou ja, we zagen eerder hoe we kunnen zich te ontdoen van hoeft te typen ja, -f. 407 00:19:02,265 --> 00:19:03,330 408 00:19:03,330 --> 00:19:07,020 Dus mkdir foo cd foo tintje 1 2 3. 409 00:19:07,020 --> 00:19:08,380 410 00:19:08,380 --> 00:19:17,190 OK, dus rm -rf foo gaat blindelings geheel verwijderen foo. 411 00:19:17,190 --> 00:19:17,960 Geen prompt. 412 00:19:17,960 --> 00:19:18,650 Nee niets. 413 00:19:18,650 --> 00:19:20,040 Foo is verdwenen. 414 00:19:20,040 --> 00:19:23,830 >> Dus heb ik de neiging om dit te gebruiken bevelen de hele tijd. 415 00:19:23,830 --> 00:19:25,120 416 00:19:25,120 --> 00:19:27,830 Dat gezegd hebbende, het is een zeer gevaarlijke opdracht, 417 00:19:27,830 --> 00:19:33,240 want als ik iets doe dit, het zal u niet gevraagd. 418 00:19:33,240 --> 00:19:34,730 Het zal worden gegaan. 419 00:19:34,730 --> 00:19:40,140 En het gebeurt vrij vaak, en zelfs in hogere mate CS cursussen. 420 00:19:40,140 --> 00:19:42,070 Soms zien we wel iets waar iemand 421 00:19:42,070 --> 00:19:48,360 zegt dat ik per ongeluk onze rm rf-ed mijn huis directory en al mijn P set is verdwenen. 422 00:19:48,360 --> 00:19:52,422 En het is verwoestende, maar er is geen prullenbak. 423 00:19:52,422 --> 00:19:54,380 Er is geen er is niets u kunt ophalen. 424 00:19:54,380 --> 00:19:55,330 Het is gewoon weg. 425 00:19:55,330 --> 00:19:56,529 426 00:19:56,529 --> 00:19:58,320 Nog erger zou zijn iets als rm-rf /. 427 00:19:58,320 --> 00:19:59,432 428 00:19:59,432 --> 00:20:01,140 Dus we zojuist besproken dat root directory. 429 00:20:01,140 --> 00:20:03,095 Het houdt alle van de bestanden op uw systeem. 430 00:20:03,095 --> 00:20:04,120 431 00:20:04,120 --> 00:20:07,380 Dingen hebben de neiging om behoorlijk rommelig als je dingen als ls verwijderen, 432 00:20:07,380 --> 00:20:10,280 en cd, en al die. 433 00:20:10,280 --> 00:20:15,467 >> Publiek: Wat is het verschil tussen rm, rf en rm * 434 00:20:15,467 --> 00:20:16,300 ROB BOWDEN: Dus rm * - 435 00:20:16,300 --> 00:20:17,700 436 00:20:17,700 --> 00:20:22,300 >> Ann: Vraag was wat is het verschil tussen rm, rf, en rm *. 437 00:20:22,300 --> 00:20:23,750 438 00:20:23,750 --> 00:20:25,950 >> ROB BOWDEN: Dus rm *. 439 00:20:25,950 --> 00:20:31,910 Star in de algemene middelen in alle de inhoud van deze map. 440 00:20:31,910 --> 00:20:33,540 441 00:20:33,540 --> 00:20:35,540 Proberen te denken aan andere manieren van het tonen ster. 442 00:20:35,540 --> 00:20:38,280 443 00:20:38,280 --> 00:20:44,780 Nou, ster eigenlijk algemeen betekent passende patroon. 444 00:20:44,780 --> 00:20:54,930 Dus als ik een bestand genaamd dog1, aanraken dog2, raakt cat1, raakt cat2. 445 00:20:54,930 --> 00:20:56,050 446 00:20:56,050 --> 00:21:02,110 Dus ls * 1 gaat cat1 drukken en dog1, want die ster kan worden gevuld 447 00:21:02,110 --> 00:21:06,270 in met-- de ene moet om daar te zijn, maar ster kan zowel kat of hond. 448 00:21:06,270 --> 00:21:07,247 Het is een wild card. 449 00:21:07,247 --> 00:21:08,580 Dat is het woord dat ik ben op zoek naar. 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 Of ik kon ls hond *, en Ik kreeg te dog1 zien, dog2. 453 00:21:13,960 --> 00:21:16,870 Dus dat zijn een opsomming van de bestanden dat overeenkomt met dat bepaald patroon. 454 00:21:16,870 --> 00:21:18,150 U kunt ls op deze manier gebruiken. 455 00:21:18,150 --> 00:21:19,350 456 00:21:19,350 --> 00:21:22,020 >> Ls * ster past alles. 457 00:21:22,020 --> 00:21:25,710 Dus het gaat om alle af te drukken de inhoud van deze map 458 00:21:25,710 --> 00:21:27,290 aangezien ze allemaal passen. 459 00:21:27,290 --> 00:21:30,130 Het gaat niet om iets af te drukken in bovenste niveau directories. 460 00:21:30,130 --> 00:21:38,680 Als ik een sub-directory, foo, en Raak 1 2 3-- dus nu als rm * sterren, 461 00:21:38,680 --> 00:21:41,450 verwijderen cat1, cat2, dog1, dog2. 462 00:21:41,450 --> 00:21:42,340 Kan niet verwijderen foo. 463 00:21:42,340 --> 00:21:43,090 Het is een directory. 464 00:21:43,090 --> 00:21:43,920 465 00:21:43,920 --> 00:21:50,340 >> Dus ster breidt uit naar alle bestanden in de directory. 466 00:21:50,340 --> 00:21:55,210 Dus technisch rm * is hetzelfde als zeggen rm cat1, cat2, dog1, dog2, foo. 467 00:21:55,210 --> 00:22:03,630 Overwegende rm -rf, technisch ster zou bereiken wat we willen, maar rm -rf-- 468 00:22:03,630 --> 00:22:06,090 als ik uit te gaan van deze directory, rm -rf temp, 469 00:22:06,090 --> 00:22:08,890 dat gaat in temp te gaan en recursief alles verwijderen. 470 00:22:08,890 --> 00:22:11,260 471 00:22:11,260 --> 00:22:21,060 >> Dus ster is apart in dat dat wordt begrepen by-- dus dit ding 472 00:22:21,060 --> 00:22:25,090 dat ik ben actief in, dit ding dat wordt gevraagd mij voor opdrachten 473 00:22:25,090 --> 00:22:28,770 en vervolgens het uitvoeren van en het doen van hen, ik noem dit mijn schelp. 474 00:22:28,770 --> 00:22:31,930 En dus is deze shell is zelf een programma. 475 00:22:31,930 --> 00:22:35,010 En als ik wilde, ik kon in / bin / bash lopen. 476 00:22:35,010 --> 00:22:36,930 De schelp heet bash. 477 00:22:36,930 --> 00:22:39,340 En nu iets merken we heeft iets veranderd, 478 00:22:39,340 --> 00:22:42,200 en dat komt omdat mijn instellingen voor de schelp zijn iets anders. 479 00:22:42,200 --> 00:22:45,415 >> Maar nu ben ik technisch running een shell in mijn originele shell, 480 00:22:45,415 --> 00:22:49,570 en ik kan dat shell verlaten, en nu Ik ben terug naar mijn topniveau shell. 481 00:22:49,570 --> 00:22:55,240 Het doel zeggen dat is-- de ster. 482 00:22:55,240 --> 00:22:59,020 Dus de ster is iets begrepen door bash. 483 00:22:59,020 --> 00:23:04,260 Dus rm-rf, rf vlag is begrijpen enkel rm. 484 00:23:04,260 --> 00:23:06,380 Het weet dat bij passeren een rf dat u 485 00:23:06,380 --> 00:23:09,520 wil dat het recursief verwijderen alle bestanden zonder waarschuwing. 486 00:23:09,520 --> 00:23:13,960 De ster is iets begrepen door bash dat wanneer je zegt rm *, 487 00:23:13,960 --> 00:23:16,890 bash is niet van plan om te zeggen hey rm * Verwijder ster. 488 00:23:16,890 --> 00:23:21,010 Bash gaat rm zeggen * verwijderen cat1, cat2, dog1, dog2. 489 00:23:21,010 --> 00:23:24,305 Het wordt automatisch gaat uitbreiden alle bestanden in de directory. 490 00:23:24,305 --> 00:23:29,100 491 00:23:29,100 --> 00:23:33,140 >> En evenzo is een tilde symbool dat bash begrijpt. 492 00:23:33,140 --> 00:23:37,130 Als je zegt cd ~, bash breidt die naar uw home directory. 493 00:23:37,130 --> 00:23:38,910 494 00:23:38,910 --> 00:23:40,210 Andere vragen tot nu toe? 495 00:23:40,210 --> 00:23:42,760 496 00:23:42,760 --> 00:23:46,060 OK dus we gaan om te beginnen snel gaan. 497 00:23:46,060 --> 00:23:47,700 498 00:23:47,700 --> 00:23:48,545 >> Tab-completion. 499 00:23:48,545 --> 00:23:49,670 Gewoon om het daar te gooien. 500 00:23:49,670 --> 00:23:51,530 Veel mensen doen niet beseffen dat dit bestaat. 501 00:23:51,530 --> 00:23:55,060 Dus als ik typ cd dow, I willen naar downloads te gaan. 502 00:23:55,060 --> 00:23:56,700 Ik hoef niet te nloads typen. 503 00:23:56,700 --> 00:23:57,960 504 00:23:57,960 --> 00:24:00,770 Ik kan gewoon op Tab. 505 00:24:00,770 --> 00:24:03,794 Dus dat herkent Dow is een voorvoegsel dat 506 00:24:03,794 --> 00:24:05,710 niet overeenkomt niets anders in deze map, 507 00:24:05,710 --> 00:24:07,520 dus het zal voltooien die voor u. 508 00:24:07,520 --> 00:24:08,610 Nu kan ik gaan. 509 00:24:08,610 --> 00:24:10,110 >> Ik dat doen ook recursief. 510 00:24:10,110 --> 00:24:11,205 Dus mkdir foo. 511 00:24:11,205 --> 00:24:12,480 512 00:24:12,480 --> 00:24:13,300 Laten we naar foo. 513 00:24:13,300 --> 00:24:14,830 mkdir bar. 514 00:24:14,830 --> 00:24:17,345 Dus ga terug naar mijn huis directory, kan ik downloads zien. 515 00:24:17,345 --> 00:24:19,040 516 00:24:19,040 --> 00:24:21,860 Nu weer toe kan slaan tab, automatisch gaan in foo te vullen. 517 00:24:21,860 --> 00:24:22,880 Het is de enige map. 518 00:24:22,880 --> 00:24:25,340 Hitting tabblad weer, automatisch gaan in de bar te vullen. 519 00:24:25,340 --> 00:24:26,798 Dus nu ben ik in (~ Downloads / foo / bar). 520 00:24:26,798 --> 00:24:27,310 521 00:24:27,310 --> 00:24:31,692 >> Dus dit tab-completion, telkens als ik naar kantoor uren, 522 00:24:31,692 --> 00:24:33,400 en ik sta boven iemands schouder, 523 00:24:33,400 --> 00:24:40,470 en ze gaan rm D-O-W-N-L-O-A-D-S, ik ga dood. 524 00:24:40,470 --> 00:24:41,990 Gewoon tab, tab, tab, tab. 525 00:24:41,990 --> 00:24:44,550 526 00:24:44,550 --> 00:24:45,630 Dus zeker gebruikt tabblad. 527 00:24:45,630 --> 00:24:47,890 528 00:24:47,890 --> 00:24:49,840 En evenzo en naar beneden, veel mensen 529 00:24:49,840 --> 00:24:51,930 alleen dat is er gebeurd met nooit hebben geraakt op en neer. 530 00:24:51,930 --> 00:24:54,870 Het zal gaan door de vorige commando's, dus als je net liep iets, 531 00:24:54,870 --> 00:24:58,300 en u wilt om het opnieuw uit te voeren, gewoon omhoog houden tot je bij het. 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 >> Zo snel, een aantal andere dingen. 536 00:25:03,585 --> 00:25:04,800 537 00:25:04,800 --> 00:25:05,930 Laten we terug gaan naar temp. 538 00:25:05,930 --> 00:25:06,976 539 00:25:06,976 --> 00:25:08,125 Laten we een aantal bestanden. 540 00:25:08,125 --> 00:25:10,480 541 00:25:10,480 --> 00:25:15,215 Dus hier, ik ben gewoon gaan naar de lijst een aantal woorden. 542 00:25:15,215 --> 00:25:18,460 543 00:25:18,460 --> 00:25:21,035 hond, kat, miauw. 544 00:25:21,035 --> 00:25:23,940 545 00:25:23,940 --> 00:25:26,040 Laten we het doen hond, vis. 546 00:25:26,040 --> 00:25:27,500 547 00:25:27,500 --> 00:25:32,320 Dus nu rep is een zeer nuttige commando's die u 548 00:25:32,320 --> 00:25:37,820 om overal zoeken bestanden voor een bepaalde tekst, 549 00:25:37,820 --> 00:25:40,910 en technisch kan je echt doen complexe expressies voor het aan te passen. 550 00:25:40,910 --> 00:25:44,830 >> Dus hier, als ik grep, en wat wil ik naar zoeken? 551 00:25:44,830 --> 00:25:49,130 Laten we zeggen dat ik ben op zoek naar katten, en Ik wil al deze bestanden te zoeken. 552 00:25:49,130 --> 00:25:50,650 Dus hoe kan ik al deze bestanden doen? 553 00:25:50,650 --> 00:25:51,900 Star. 554 00:25:51,900 --> 00:25:54,939 Dus in één bestand, heb ik de kat. 555 00:25:54,939 --> 00:25:56,980 Ik waarschijnlijk zou kunnen hebben noemde het iets beter, 556 00:25:56,980 --> 00:25:59,063 want dat lijkt op lijnnummers of zoiets. 557 00:25:59,063 --> 00:26:01,590 Maar in het dossier van één heb ik een lijn met de kat. 558 00:26:01,590 --> 00:26:04,160 In bestand twee heb ik een lijn met de kat. 559 00:26:04,160 --> 00:26:07,280 Dus nu kan ik kijken in het bestand één en zie oh ja, dat bestand had cat. 560 00:26:07,280 --> 00:26:10,210 Notice bestand drie werd niet geëvenaard omdat de kat is er niet in. 561 00:26:10,210 --> 00:26:13,882 Ik kan grep voor miauw. 562 00:26:13,882 --> 00:26:14,840 Alleen bestand twee heeft meow. 563 00:26:14,840 --> 00:26:16,120 564 00:26:16,120 --> 00:26:20,640 >> Dus dit kun je combineren, opnieuw, met -r, dat 565 00:26:20,640 --> 00:26:23,580 zoals ik al zei betekent vaak recursieve. 566 00:26:23,580 --> 00:26:29,800 En dus kan ik hier te komen, grep -r voor elk exemplaar van-- laten bewerken 567 00:26:29,800 --> 00:26:32,010 dit alleen maar om een ​​kat te gooien daar. 568 00:26:32,010 --> 00:26:38,800 Dus grep -r voor elke instantie van kat in deze directory. 569 00:26:38,800 --> 00:26:41,600 En het zal recursief naar elke subdirectory. 570 00:26:41,600 --> 00:26:43,940 Dus in baz, er is cat. 571 00:26:43,940 --> 00:26:45,570 In temp / 2, er is cat. 572 00:26:45,570 --> 00:26:47,960 En in temp / 1 er is cat. 573 00:26:47,960 --> 00:26:50,045 Dus dat is zoeken binnen bestanden. 574 00:26:50,045 --> 00:26:51,250 575 00:26:51,250 --> 00:26:55,090 >> Nu kunt u ook gebruik maken van een vondst. 576 00:26:55,090 --> 00:26:59,640 En dus zoek gaat specifiek over op zoek naar bestanden met een bepaalde naam. 577 00:26:59,640 --> 00:27:02,490 Dus laten we wat meer. 578 00:27:02,490 --> 00:27:03,660 Laten we naar downloads. 579 00:27:03,660 --> 00:27:04,680 580 00:27:04,680 --> 00:27:05,380 Raak dog1. 581 00:27:05,380 --> 00:27:06,840 582 00:27:06,840 --> 00:27:07,770 Raak cat2. 583 00:27:07,770 --> 00:27:09,290 584 00:27:09,290 --> 00:27:10,760 Raak cat_dog. 585 00:27:10,760 --> 00:27:14,550 586 00:27:14,550 --> 00:27:15,975 Raak Catcat. 587 00:27:15,975 --> 00:27:18,270 588 00:27:18,270 --> 00:27:23,810 >> Dus ik wil alles vinden Bestanden met de hond in de naam. 589 00:27:23,810 --> 00:27:28,060 Dus vinden, en de langste keer dat ik nooit onthouden 590 00:27:28,060 --> 00:27:33,760 hoe vind werkte, totdat ik eindelijk iets gelezen dat het zo duidelijk gemaakt. 591 00:27:33,760 --> 00:27:35,784 Dus vinden, automatisch recursieve. 592 00:27:35,784 --> 00:27:36,950 U hoeft niet naar een -r passeren. 593 00:27:36,950 --> 00:27:38,090 594 00:27:38,090 --> 00:27:39,110 Dus vind dot. 595 00:27:39,110 --> 00:27:40,750 We hebben nog niet gesproken over dot nog. 596 00:27:40,750 --> 00:27:44,800 Overwegende dot dot altijd betekent één directory omhoog. 597 00:27:44,800 --> 00:27:46,960 Dot betekent altijd de huidige directory. 598 00:27:46,960 --> 00:27:51,390 Dus kon ik -r stip in de RM dezelfde manier als ik kan rm-rf *. 599 00:27:51,390 --> 00:27:53,140 Uiteindelijk ze bereiken hetzelfde. 600 00:27:53,140 --> 00:27:56,040 rm -rf dot gaat verwijderen de gehele huidige directory. 601 00:27:56,040 --> 00:27:57,440 602 00:27:57,440 --> 00:27:59,680 >> OK, dat wil ik niet om daar te doen. 603 00:27:59,680 --> 00:28:01,490 604 00:28:01,490 --> 00:28:04,320 Maar vind dot. 605 00:28:04,320 --> 00:28:07,920 Dus recursief zoeken op het huidige directory, en nu alles 606 00:28:07,920 --> 00:28:14,125 na dit zijn een stelletje vlaggen die u gebruiken om dingen uit te sluiten van het rendement. 607 00:28:14,125 --> 00:28:17,250 Dus vind dot keert alles dat het kunnen vinden in de huidige directory. 608 00:28:17,250 --> 00:28:19,700 Dat zijn alle bestanden recursief zoeken. 609 00:28:19,700 --> 00:28:21,250 We zullen een aantal van degenen die in een seconde te zien. 610 00:28:21,250 --> 00:28:23,150 611 00:28:23,150 --> 00:28:27,140 >> Maar in het geval je je afvraagt ​​hoe ik het doe dat zo Command K, althans 612 00:28:27,140 --> 00:28:29,660 in mijn terminal in de Mac ontzette. 613 00:28:29,660 --> 00:28:34,660 Control L ontruimt algemeen het voor elk soort terminal. 614 00:28:34,660 --> 00:28:36,480 U kunt ook duidelijk. 615 00:28:36,480 --> 00:28:38,410 En mocht je ooit in een rare scenario-- 616 00:28:38,410 --> 00:28:42,790 het is mij overkomen een paar tijd-- waar de kleuren van uw herinneringen 617 00:28:42,790 --> 00:28:46,590 zijn helemaal in de war, of u zijn niet in staat om iets te zien 618 00:28:46,590 --> 00:28:51,232 wordt getypt wanneer je aan het typen bent, omdat soms als achtergrondkleur is ingesteld 619 00:28:51,232 --> 00:28:53,940 hetzelfde als de voorgrondkleur en nu kun je niet zien de fonts. 620 00:28:53,940 --> 00:28:55,110 621 00:28:55,110 --> 00:28:59,830 Reset is iets dat gewoon reset u de standaard zwarte achtergrond, 622 00:28:59,830 --> 00:29:01,840 wit voorzijde, of wat dan ook u ze op te zetten. 623 00:29:01,840 --> 00:29:03,390 624 00:29:03,390 --> 00:29:04,790 >> Dus waar waren we? 625 00:29:04,790 --> 00:29:05,930 Vinden dot. 626 00:29:05,930 --> 00:29:09,360 Dus nu is alles voorbij dit punt worden de resultaten beperkt 627 00:29:09,360 --> 00:29:11,450 iets wat overeenkomt het gegeven patroon. 628 00:29:11,450 --> 00:29:16,110 Dus hier ben wil zoeken alles wat met de naam van de kat. 629 00:29:16,110 --> 00:29:17,300 Ik heb niets. 630 00:29:17,300 --> 00:29:18,390 Waarom is dat het geval? 631 00:29:18,390 --> 00:29:21,230 Nou, ik ben gewoon op zoek naar iets met precies de naam van de kat. 632 00:29:21,230 --> 00:29:25,150 Als ik iets wil zoeken dat heeft een bepaald patroon, en cat-- 633 00:29:25,150 --> 00:29:28,890 de citaten technisch niet nodig zijn, maar ik ben gooien ze in daar. 634 00:29:28,890 --> 00:29:32,720 Dus nu het vindt Catcat omdat dat is het enige dat 635 00:29:32,720 --> 00:29:36,040 heeft een aantal willekeurige patroon gevolgd door kat. 636 00:29:36,040 --> 00:29:41,950 Ik kan de kat * zetten, en nu vinden Catcat, cat_dog, cat2, 637 00:29:41,950 --> 00:29:45,245 want dat zijn allemaal dingen met kat aan het begin, gevolgd door iets. 638 00:29:45,245 --> 00:29:46,120 U zou dit kunnen combineren. 639 00:29:46,120 --> 00:29:50,480 Als u wilt zoeken voor alle C-bestanden die je hebt, zou je doen * .c. 640 00:29:50,480 --> 00:29:51,960 We hebben hier blah.c. 641 00:29:51,960 --> 00:29:53,000 642 00:29:53,000 --> 00:29:55,020 Dus dat is een vondst werken. 643 00:29:55,020 --> 00:29:55,770 U kunt zoeken. 644 00:29:55,770 --> 00:29:58,270 Het heeft een hele hoop van vlaggen voor verdere beperkingen. 645 00:29:58,270 --> 00:30:00,960 En een op hen, laten we zeggen -d. 646 00:30:00,960 --> 00:30:02,110 647 00:30:02,110 --> 00:30:04,435 Dus deprecated. 648 00:30:04,435 --> 00:30:05,425 649 00:30:05,425 --> 00:30:06,550 Oh, dat is niet wat ik wil. 650 00:30:06,550 --> 00:30:07,730 Niet -d. 651 00:30:07,730 --> 00:30:08,860 Type d. 652 00:30:08,860 --> 00:30:13,820 Dus vind dot - het type d. 653 00:30:13,820 --> 00:30:17,760 Dus wat dat net deed is ik zoek voor alle bestanden in de huidige directory 654 00:30:17,760 --> 00:30:21,680 met a-- d staat voor directory-- directory type. 655 00:30:21,680 --> 00:30:24,430 Hiermee worden alle directories in de huidige directory. 656 00:30:24,430 --> 00:30:27,670 En type F is alle reguliere bestanden, alle niet directories. 657 00:30:27,670 --> 00:30:29,809 Dus dat is gewoon een voorbeeld van andere manieren waarop u 658 00:30:29,809 --> 00:30:32,350 kan de andere zoekopdracht beperken dan de naam van het bestand. 659 00:30:32,350 --> 00:30:34,126 660 00:30:34,126 --> 00:30:35,570 >> Het is al 30 minuten. 661 00:30:35,570 --> 00:30:36,848 Still going. 662 00:30:36,848 --> 00:30:38,132 >> Ann: Ik zal door middel van wind. 663 00:30:38,132 --> 00:30:39,670 Het komt wel goed. 664 00:30:39,670 --> 00:30:41,460 >> ROB BOWDEN: Dus een aantal andere dingen. 665 00:30:41,460 --> 00:30:45,700 Nu bang, uitroepteken. 666 00:30:45,700 --> 00:30:50,530 Zodat algemeen means-- Nou, laten we eens een voorbeeld bekijken. 667 00:30:50,530 --> 00:30:52,230 Dus! F, wat dat gaat doen? 668 00:30:52,230 --> 00:30:53,520 669 00:30:53,520 --> 00:30:57,810 Nou, het lijkt te hebben herhaalde vondst dot -type f. 670 00:30:57,810 --> 00:30:59,240 Hoe zit! G? 671 00:30:59,240 --> 00:31:00,760 Dat net grep -r kat *. 672 00:31:00,760 --> 00:31:02,010 673 00:31:02,010 --> 00:31:05,720 Dus bang je kunt gebruiken om te herhalen een recent vernieuwd commando. 674 00:31:05,720 --> 00:31:13,280 Dus als ik typ! Gre, het gaat om re-run de commando's die begonnen met gre meest 675 00:31:13,280 --> 00:31:14,060 onlangs. 676 00:31:14,060 --> 00:31:17,090 >> En u kunt al deze te zien commando's met de geschiedenis. 677 00:31:17,090 --> 00:31:17,880 Zo geschiedenis. 678 00:31:17,880 --> 00:31:19,630 Dit zijn alle commando's die ik heb lopen vandaag. 679 00:31:19,630 --> 00:31:21,089 680 00:31:21,089 --> 00:31:23,130 En tja, het is niet letterlijk beperkt is tot vandaag de dag, 681 00:31:23,130 --> 00:31:25,180 maar ik heb alleen deze gebruikt apparaat met ingang van vandaag. 682 00:31:25,180 --> 00:31:28,730 Het is uw geheel van de geschiedenis van uw bash shell, 683 00:31:28,730 --> 00:31:30,433 behalve dat het afsnijdt op een bepaald punt. 684 00:31:30,433 --> 00:31:33,474 Publiek: Wat gebeurt er als je dat doet geschiedenis [onverstaanbaar] commando en een fout 685 00:31:33,474 --> 00:31:35,430 in het resultaat zal nog steeds afdrukken the-- 686 00:31:35,430 --> 00:31:44,110 >> ROB BOWDEN: Ja, als er een fout in één van deze commands-- 687 00:31:44,110 --> 00:31:48,090 dus laten we zeggen, dat is een fout command not found. 688 00:31:48,090 --> 00:31:49,312 689 00:31:49,312 --> 00:31:50,520 Nog steeds wordt in de geschiedenis. 690 00:31:50,520 --> 00:31:52,620 691 00:31:52,620 --> 00:31:53,170 Prima. 692 00:31:53,170 --> 00:31:54,750 693 00:31:54,750 --> 00:31:56,040 Andere vragen over iets? 694 00:31:56,040 --> 00:31:58,760 695 00:31:58,760 --> 00:32:00,300 Dus dat is knal. 696 00:32:00,300 --> 00:32:04,230 >> Nu, echt nuttig commando, man. 697 00:32:04,230 --> 00:32:07,750 Zodat u de handleiding voor een bepaalde opdracht. 698 00:32:07,750 --> 00:32:11,640 Dus laten we zeggen man ls, dus Dit toont me ls. 699 00:32:11,640 --> 00:32:13,400 Het bevat inhoud directory. 700 00:32:13,400 --> 00:32:17,150 En dit is waar ik te zien dat er zijn deze verschillende vlaggen die er bestaan. 701 00:32:17,150 --> 00:32:21,340 Dus we zien dat ls -l bestaat als we lezen dat. ls -l 702 00:32:21,340 --> 00:32:26,150 geeft me dit volledig overzicht van de directory met die het bestand bezit, 703 00:32:26,150 --> 00:32:29,750 de grootte van het bestand, de de gemodificeerde timestamp. 704 00:32:29,750 --> 00:32:31,130 705 00:32:31,130 --> 00:32:34,980 Dus ls -a is een ander dat je misschien daadwerkelijk gebruik maken van wat vaak. 706 00:32:34,980 --> 00:32:38,130 -al is mijn meest voorkomende vlag afgelopen ls. 707 00:32:38,130 --> 00:32:42,520 >> Dus -a, merkt dat er veel meer bestanden dan alleen ls. 708 00:32:42,520 --> 00:32:44,170 ls -a. 709 00:32:44,170 --> 00:32:46,170 Wat is gemeen met al die files? 710 00:32:46,170 --> 00:32:47,790 Ze beginnen met een punt. 711 00:32:47,790 --> 00:32:54,710 Dus dit is een conventie in Linux dat bestanden die beginnen met een punt zijn verborgen. 712 00:32:54,710 --> 00:32:58,330 Dus het betekent alleen dat als we gewoon rechtdoor ls, 713 00:32:58,330 --> 00:33:04,170 of we zoekt deze map gebruiken de vinder equivalent, of het Windows 714 00:33:04,170 --> 00:33:07,250 Explorer equivalent, dat we niet willen deze dot bestanden te zien. 715 00:33:07,250 --> 00:33:09,680 Ze vervuilen enkel de kijk op de dingen. 716 00:33:09,680 --> 00:33:11,790 Dus ze zijn verborgen tenzij u specifiek 717 00:33:11,790 --> 00:33:14,250 verzoek hen met iets als -a. 718 00:33:14,250 --> 00:33:18,920 Dus ik kan cd in .local, en ik zie dat zelf een directory met 719 00:33:18,920 --> 00:33:22,220 een gedeelde map, en toepassingen, en blah blah blah. 720 00:33:22,220 --> 00:33:24,520 Dus dot, bestanden ze gewoon verborgen. 721 00:33:24,520 --> 00:33:26,250 722 00:33:26,250 --> 00:33:29,355 >> OK, dus andere belangrijke. 723 00:33:29,355 --> 00:33:30,490 724 00:33:30,490 --> 00:33:32,000 Ik heb een paar Ik kan overslaan. 725 00:33:32,000 --> 00:33:38,160 Laten we gewoon echt snel gepraat over het bestand redirection dingen. 726 00:33:38,160 --> 00:33:43,020 Dus er is een hele complexe reeks van dingen die je kunt doen met deze, 727 00:33:43,020 --> 00:33:47,204 maar gewoon om ze te zien, laten we zeggen, echo. 728 00:33:47,204 --> 00:33:47,870 Een andere opdracht. 729 00:33:47,870 --> 00:33:48,920 Echt dom commando. 730 00:33:48,920 --> 00:33:50,710 Alles wat het doet is het printen wat ik vertel het aan. 731 00:33:50,710 --> 00:33:52,070 Dus echo hello. 732 00:33:52,070 --> 00:33:53,850 Het klonk gewoon hallo tegen het scherm. 733 00:33:53,850 --> 00:33:55,170 734 00:33:55,170 --> 00:33:56,390 Hello world. 735 00:33:56,390 --> 00:33:57,890 Echoes hallo wereld. 736 00:33:57,890 --> 00:34:02,650 >> Dus één opdracht of een symbool dat bash begrijpt 737 00:34:02,650 --> 00:34:07,620 is deze groter dan symbool, en dat de uitvoer naar een bestand symbool. 738 00:34:07,620 --> 00:34:10,940 Dus als ik de uitgang dit aan foo, is er nu een bestand 739 00:34:10,940 --> 00:34:15,100 genaamd foo, de binnenkant van dat is Hello World. 740 00:34:15,100 --> 00:34:18,489 Dus merken dat wanneer ik echo hallo wereld buis in foo, 741 00:34:18,489 --> 00:34:19,980 het duurde niet echo hallo wereld. 742 00:34:19,980 --> 00:34:22,630 In plaats daarvan werd het in het bestand foo zetten. 743 00:34:22,630 --> 00:34:25,340 En een ander commando net om het naar je gooien, cat. 744 00:34:25,340 --> 00:34:29,191 Dat is een makkelijke manier om gewoon helemaal een lijst van de inhoud van het bestand 745 00:34:29,191 --> 00:34:31,440 zodat ik niet hoeft te openen een tekstverwerker om het te bekijken. 746 00:34:31,440 --> 00:34:34,159 Zodat de inhoud van de foo bestand zijn hallo wereld. 747 00:34:34,159 --> 00:34:38,460 En ik kon kat blah.c, de inhoud van deze. 748 00:34:38,460 --> 00:34:42,123 >> Nogmaals, dit zijn opdrachten die, niet verwachten dat je ze allemaal onthouden. 749 00:34:42,123 --> 00:34:43,860 Het idee is dat je hebt ze gezien. 750 00:34:43,860 --> 00:34:45,735 Misschien bent u bezig iets, en je bent 751 00:34:45,735 --> 00:34:47,230 zoals ik ben ziek van het openen van dit bestand. 752 00:34:47,230 --> 00:34:50,120 Ik wou dat ik kon alleen maar kijken op de inhoud echt snel. 753 00:34:50,120 --> 00:34:52,320 Je kon dat doen, dan terugkijken en zeggen oh ik 754 00:34:52,320 --> 00:34:55,250 herinner me iets als die er bestaat, en het is de kat. 755 00:34:55,250 --> 00:35:00,630 >> Dus dat gaat naar een bestand. 756 00:35:00,630 --> 00:35:06,639 Nu is er niet echt een goed Bijvoorbeeld lezen uit een bestand nog. 757 00:35:06,639 --> 00:35:08,930 Wat is iets dat neemt iets van standaard in? 758 00:35:08,930 --> 00:35:10,010 759 00:35:10,010 --> 00:35:11,544 Elke eenvoudige Linux command? 760 00:35:11,544 --> 00:35:13,480 761 00:35:13,480 --> 00:35:16,970 Als we bij het, in een paar weken alle piece-- goed, 762 00:35:16,970 --> 00:35:20,470 Deze week heb je een stuk waar je start met de input van de gebruiker. 763 00:35:20,470 --> 00:35:23,696 En dus meestal je typt die ingang naar het toetsenbord. 764 00:35:23,696 --> 00:35:25,570 In plaats van het typen van dat invoer via het toetsenbord, 765 00:35:25,570 --> 00:35:30,950 je kan in plaats pijp in uit een bestand zodat wanneer je dat doet Mario, ./mario, 766 00:35:30,950 --> 00:35:35,200 pijp in van een bepaald bestand, en dat gaat om de mario programma uit te voeren. 767 00:35:35,200 --> 00:35:37,300 Niet verwacht ingang aan het toetsenbord, maar het is 768 00:35:37,300 --> 00:35:39,650 gewoon naar de lezen lijnen van de foo-bestand. 769 00:35:39,650 --> 00:35:45,230 >> Dus groter dan foo zet het in de foo-bestand, en minder dan foo 770 00:35:45,230 --> 00:35:50,170 neemt spullen uit de foo-bestand en gebruikt deze als invoer voor het programma. 771 00:35:50,170 --> 00:35:51,520 772 00:35:51,520 --> 00:36:00,630 En alleen maar om het te zien, kunnen we ook de echo foo bar baz, en dan in plaats van één 773 00:36:00,630 --> 00:36:03,850 groter dan, laten we het doen twee tot foo. 774 00:36:03,850 --> 00:36:05,610 Wat doet dat? 775 00:36:05,610 --> 00:36:07,180 Het voegt alleen maar om het bestand. 776 00:36:07,180 --> 00:36:15,360 Dus in plaats opmerken als ik echo blah in foo en dan cat foo, het is gewoon blah. 777 00:36:15,360 --> 00:36:18,285 Dus als je uitvoer naar een bestand, het volledig overschreven dat bestand. 778 00:36:18,285 --> 00:36:19,330 779 00:36:19,330 --> 00:36:22,740 Als je gewoon wilt toevoegen, double [? grader. ?] 780 00:36:22,740 --> 00:36:24,080 >> En als laatste is pijp. 781 00:36:24,080 --> 00:36:29,590 Pijp Gets veel ingewikkelder, waar die de uitgang van een commando 782 00:36:29,590 --> 00:36:32,320 en deze stroom aan de volgende opdracht. 783 00:36:32,320 --> 00:36:36,140 Dus sommige gemeenschappelijke zaak, geschiedenis. 784 00:36:36,140 --> 00:36:37,920 Dus, ugh, ik wil niet om dit te bekijken. 785 00:36:37,920 --> 00:36:40,680 786 00:36:40,680 --> 00:36:44,485 Toon mij alle commando's in mijn geschiedenis waar ik grep-ed voor iets. 787 00:36:44,485 --> 00:36:45,360 Nee, dat is verwarrend. 788 00:36:45,360 --> 00:36:50,360 Toon mij alle commando's waar ik vind. 789 00:36:50,360 --> 00:36:52,360 Alle commando's vinden die ik ooit liep. 790 00:36:52,360 --> 00:36:55,050 >> Zo geschiedenis. 791 00:36:55,050 --> 00:36:59,017 Nu geschiedenis uitgangen aan op de screenen deze lijst van commando's, 792 00:36:59,017 --> 00:37:00,850 maar ik wil niet uit te voeren naar het scherm. 793 00:37:00,850 --> 00:37:03,445 In plaats daarvan ga ik pijp hem in grep. 794 00:37:03,445 --> 00:37:04,790 795 00:37:04,790 --> 00:37:07,830 Dus laten we grep voor alle instanties van vondst. 796 00:37:07,830 --> 00:37:09,550 797 00:37:09,550 --> 00:37:17,000 Dus nu in plaats van grep nemen de invoer plaats van-- 798 00:37:17,000 --> 00:37:24,360 grep is in staat om als input-- we behandelen met behulp van grep anders hier iets. 799 00:37:24,360 --> 00:37:29,550 Dus in plaats van het typen van de lijst van dingen die we wilden om te zoeken naar 800 00:37:29,550 --> 00:37:31,070 en zei grep neemt als input. 801 00:37:31,070 --> 00:37:34,810 Dus als ik gewoon grep te vinden, het wacht op mij om dingen te typen. 802 00:37:34,810 --> 00:37:37,661 Dus kat hello vinden. 803 00:37:37,661 --> 00:37:38,160 Hello. 804 00:37:38,160 --> 00:37:40,430 805 00:37:40,430 --> 00:37:40,930 Vinden. 806 00:37:40,930 --> 00:37:43,670 Let op elke keer als ik het type vinden wordt erkend dat ik typte vondst. 807 00:37:43,670 --> 00:37:44,880 808 00:37:44,880 --> 00:37:49,540 Dus in plaats van deze, zal search-bestanden te vinden. 809 00:37:49,540 --> 00:37:53,930 >> Dus geschiedenis gaat nu uitgang van een lijst van alle commando's. 810 00:37:53,930 --> 00:37:55,200 811 00:37:55,200 --> 00:37:58,100 We zetten dat de output, en we zijn dit naar grep, 812 00:37:58,100 --> 00:38:00,180 en dus het uitspugen alle exemplaren van vondst. 813 00:38:00,180 --> 00:38:02,170 814 00:38:02,170 --> 00:38:05,570 De reden dat ik zei dat het zou verwarrend zijn is als Ik-- het is nog steeds verwarrend. 815 00:38:05,570 --> 00:38:07,030 Als ik grep voor grep. 816 00:38:07,030 --> 00:38:08,755 817 00:38:08,755 --> 00:38:11,130 Let op het is vrij veel altijd waaruit het commando ik gewoon 818 00:38:11,130 --> 00:38:15,280 liep omdat dat commando zelf heeft grep binnenkant van het. 819 00:38:15,280 --> 00:38:16,580 820 00:38:16,580 --> 00:38:20,674 >> OK, dus vragen over iets? 821 00:38:20,674 --> 00:38:22,340 En ik zal het overdragen dan op dit punt. 822 00:38:22,340 --> 00:38:24,690 Hopelijk is dit een leuke overzicht van alle commando's 823 00:38:24,690 --> 00:38:30,100 dat je niet hoeft te hebben onthouden, maar deze maken 824 00:38:30,100 --> 00:38:32,950 een solide 95% van wat ik doen op de opdrachtregel. 825 00:38:32,950 --> 00:38:34,310 826 00:38:34,310 --> 00:38:39,140 Ook in gedachten houden dat de command line zelf, bash is een programmeertaal, 827 00:38:39,140 --> 00:38:43,070 en dus, als je naar beneden om het, je zou willen om echt complexe dingen te doen. 828 00:38:43,070 --> 00:38:47,522 En heeft dus dingen als loops en ifs, en al die 829 00:38:47,522 --> 00:38:50,230 dat je gaat om te wennen aan met programmeertalen. 830 00:38:50,230 --> 00:38:53,660 Maar dat is buiten de toepassingsgebied van deze afdeling. 831 00:38:53,660 --> 00:38:55,520 832 00:38:55,520 --> 00:38:56,985 OK, dus geen vragen? 833 00:38:56,985 --> 00:38:57,940 834 00:38:57,940 --> 00:38:58,523 Ann: Geen? 835 00:38:58,523 --> 00:38:59,450 GABRIEL: Gaat u to-- 836 00:38:59,450 --> 00:39:01,158 Ann: Ik kan het doen op de mijne als je wilt. 837 00:39:01,158 --> 00:39:02,626 We kunnen zien wat er gebeurt. 838 00:39:02,626 --> 00:39:03,750 ROB BOWDEN: Off to Allison. 839 00:39:03,750 --> 00:39:05,090 Ann: Woo. 840 00:39:05,090 --> 00:39:07,504 Je bent een moeilijk te evenaren, Rob. 841 00:39:07,504 --> 00:39:08,920 Wil je dat ik om te schakelen met je mee? 842 00:39:08,920 --> 00:39:10,246 Of je hebt, OK. 843 00:39:10,246 --> 00:39:13,590 844 00:39:13,590 --> 00:39:16,990 Ik ga proberen en niet zo lang te zijn daar. 845 00:39:16,990 --> 00:39:20,619 846 00:39:20,619 --> 00:39:22,660 Eens kijken of dit wil werken zoals ik het wil. 847 00:39:22,660 --> 00:39:26,170 848 00:39:26,170 --> 00:39:26,670 Misschien? 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 Ja. 852 00:39:28,796 --> 00:39:30,460 853 00:39:30,460 --> 00:39:34,066 >> Dus ik ga gewoon heel snel gaan door middel van variabelen, lussen, voorwaardelijke, 854 00:39:34,066 --> 00:39:35,440 en een beetje aan de compiler. 855 00:39:35,440 --> 00:39:38,570 Als je vragen bij hebben elk moment, dan kunt u stoppen met me. 856 00:39:38,570 --> 00:39:42,750 Deze jongens zullen me eraan te herinneren om te herhalen je vraag in het geval ik het vergeet, 857 00:39:42,750 --> 00:39:44,210 maar moet niet al te slecht. 858 00:39:44,210 --> 00:39:45,850 >> Dus variabelen, ja. 859 00:39:45,850 --> 00:39:48,060 We hebben geen een van uw Scratch stukken hier. 860 00:39:48,060 --> 00:39:50,440 Ik weet zeker dat de meesten van u, indien je een soort van spel had 861 00:39:50,440 --> 00:39:53,810 die u hebt gemaakt met Scratch, je had bij te houden van iets als score, 862 00:39:53,810 --> 00:39:55,870 of tijd, of iets dergelijks. 863 00:39:55,870 --> 00:39:58,080 Dus die fel oranje stukken die we daar te zien 864 00:39:58,080 --> 00:40:02,630 zijn slechts de Scratch vorm van variabelen, en je zal zeker 865 00:40:02,630 --> 00:40:04,640 worden met behulp van variabelen in uw programma's. 866 00:40:04,640 --> 00:40:07,350 Als je niet, ik ben niet echt zeker weet wat je aan het doen bent. 867 00:40:07,350 --> 00:40:09,000 868 00:40:09,000 --> 00:40:12,215 >> Maar goed, groot ding, definiëren variabelen. 869 00:40:12,215 --> 00:40:13,630 870 00:40:13,630 --> 00:40:16,970 Met C elke variabele om een ​​soort aangegeven, 871 00:40:16,970 --> 00:40:22,090 dus ik gaf je een zeer algemeen een aan de bovenkant. 872 00:40:22,090 --> 00:40:24,045 Dus je moet je typt en dan wat 873 00:40:24,045 --> 00:40:25,420 u besluit om uw variabele noemen. 874 00:40:25,420 --> 00:40:27,500 875 00:40:27,500 --> 00:40:29,680 Dus in dit geval, het type in uw variabele lijst. 876 00:40:29,680 --> 00:40:31,400 >> We hebben drie voorbeelden. 877 00:40:31,400 --> 00:40:34,439 Char van enkele rang, van een A, wat 878 00:40:34,439 --> 00:40:36,230 Ik weet zeker dat je alles wilt te krijgen in deze klasse. 879 00:40:36,230 --> 00:40:37,380 880 00:40:37,380 --> 00:40:40,670 U kunt meerdere definiëren variabelen op één regel 881 00:40:40,670 --> 00:40:43,880 zolang ze zijn allemaal hetzelfde type, dat is onze tweede voorbeeld is er 882 00:40:43,880 --> 00:40:46,409 waar u drie hebben variabelen, x, y en z. 883 00:40:46,409 --> 00:40:47,200 Ze zijn allemaal praalwagens. 884 00:40:47,200 --> 00:40:49,160 885 00:40:49,160 --> 00:40:53,250 En dan kun je ook in dit laatste Bijvoorbeeld met int score en het aantal 886 00:40:53,250 --> 00:40:56,510 van teams, kunt u initialiseren ze daar. 887 00:40:56,510 --> 00:41:01,270 >> Dus in het midden voorbeeld waarbij gewoon float van x, y, en z, 888 00:41:01,270 --> 00:41:02,730 deze zijn nog niet geïnitialiseerd. 889 00:41:02,730 --> 00:41:04,140 Ze hebben geen waarde. 890 00:41:04,140 --> 00:41:05,600 Of ze vuilnis waarden. 891 00:41:05,600 --> 00:41:07,370 892 00:41:07,370 --> 00:41:10,790 En als je het probeert en ze gebruiken, de compiler zal tegen je schreeuwen. 893 00:41:10,790 --> 00:41:14,727 Je moet beide verklaren en initialiseren van uw variabelen. 894 00:41:14,727 --> 00:41:16,310 Dus in dit laatste, zijn we allebei doen. 895 00:41:16,310 --> 00:41:19,320 We zijn te verklaren variabelen van scoren en het aantal teams, 896 00:41:19,320 --> 00:41:24,134 en we zijn hen initialiseren, het geven van ze hun oorspronkelijke waarden van 7 en 4 897 00:41:24,134 --> 00:41:24,675 respectievelijk. 898 00:41:24,675 --> 00:41:26,310 899 00:41:26,310 --> 00:41:27,190 Cool. 900 00:41:27,190 --> 00:41:28,550 Iedereen goed? 901 00:41:28,550 --> 00:41:29,470 Awesome. 902 00:41:29,470 --> 00:41:31,690 >> OK, dus een aantal conventies. 903 00:41:31,690 --> 00:41:35,965 Als jullie hebben gelezen door middel van stijl 50, deze 904 00:41:35,965 --> 00:41:39,510 zijn gewoon dingen die we willen voor u te implementeren in uw stijl. 905 00:41:39,510 --> 00:41:41,230 Dus betekenisvolle namen. 906 00:41:41,230 --> 00:41:45,700 Als je begint dingen te roepen gewoon x, y, en z, vooral 907 00:41:45,700 --> 00:41:47,902 als je in de langere programma's, je bent 908 00:41:47,902 --> 00:41:49,610 waarschijnlijk gaat om verwarren jezelf en wees 909 00:41:49,610 --> 00:41:52,930 zoals wat is deze variabele verwijst. 910 00:41:52,930 --> 00:41:55,880 Ik heb geen idee wat dit betekent. 911 00:41:55,880 --> 00:41:59,280 >> Dus als het is bedoeld om vast te houden een score, noem het scoren. 912 00:41:59,280 --> 00:42:05,720 Als het is bedoeld om een ​​aantal antwoorden te houden of leiden, geef het een naam als dat. 913 00:42:05,720 --> 00:42:09,920 Voor lussen, die we zullen krijgen in de volgende dia, 914 00:42:09,920 --> 00:42:12,985 enkele letter variabelen zijn prima. 915 00:42:12,985 --> 00:42:16,033 916 00:42:16,033 --> 00:42:18,449 ROB BOWDEN: I, j, en k gewoon conventies voor te lussen 917 00:42:18,449 --> 00:42:22,050 dat iedereen hen verwacht worden i genoemd, j en k. 918 00:42:22,050 --> 00:42:26,890 U kunt bellen them-- ik zie rij kolom of rij oproep soms 919 00:42:26,890 --> 00:42:29,450 twee geneste lussen, en dat is ook een soort van standaard. 920 00:42:29,450 --> 00:42:31,450 Maar i en j is volledig begrepen. 921 00:42:31,450 --> 00:42:33,670 >> Ann: Yeah, i en j je bent helemaal prima. 922 00:42:33,670 --> 00:42:36,250 Ter verduidelijking als in sommige van uw P sets, 923 00:42:36,250 --> 00:42:39,745 is het misschien zinvol om meer hebben beschrijvende dingen er gewoon 924 00:42:39,745 --> 00:42:40,920 bij te houden van het te houden. 925 00:42:40,920 --> 00:42:45,100 Maar ik denk dat i, j en k denk ik de overgrote meerderheid van ons allemaal gebruik. 926 00:42:45,100 --> 00:42:46,890 927 00:42:46,890 --> 00:42:50,340 >> ROB BOWDEN: Met deze conventies, zo stijl is belangrijk. 928 00:42:50,340 --> 00:42:53,520 Het is één van de vier assen waarop je ingedeeld bent, 929 00:42:53,520 --> 00:42:58,110 en het is zo gemakkelijk om gewoon over te gaan je P aan het einde en zorg ervoor dat 930 00:42:58,110 --> 00:42:59,770 dat er geen stilistische fouten. 931 00:42:59,770 --> 00:43:01,742 Dus zorg ervoor dat je goed bent tabben. 932 00:43:01,742 --> 00:43:03,200 Zorg ervoor dat uw variabelen worden genoemd. 933 00:43:03,200 --> 00:43:04,450 Laat een bericht achter. 934 00:43:04,450 --> 00:43:06,677 Het is heel gemakkelijk om die punten te krijgen. 935 00:43:06,677 --> 00:43:09,510 Je hoeft niet na te denken over iets om die punten te krijgen. 936 00:43:09,510 --> 00:43:11,093 Je hoeft niet om iets uit te zoeken. 937 00:43:11,093 --> 00:43:12,640 Het is gewoon waardoor het lijkt mooi. 938 00:43:12,640 --> 00:43:14,850 >> Ann: In feite zijn wij stijl 50, die 939 00:43:14,850 --> 00:43:17,920 zal u vertellen waar u het knoeien up als je verprutsen op stijl 940 00:43:17,920 --> 00:43:21,180 en zal u precies vertellen wat u moet oplossen en hoe je nodig hebt om het te repareren. 941 00:43:21,180 --> 00:43:23,900 Het is ook gewoon goed te noemen dat het natuurlijk beleid 942 00:43:23,900 --> 00:43:27,200 dat als je op het kantoor van uur en de code is een puinhoop, 943 00:43:27,200 --> 00:43:30,200 We kunnen weigeren om te helpen u totdat het ziet er mooier uit. 944 00:43:30,200 --> 00:43:34,310 Dus beginnen rechts, houden consistente stijl, 945 00:43:34,310 --> 00:43:37,100 je bent ook gewoon gaan maken uw leven een stuk makkelijker wanneer 946 00:43:37,100 --> 00:43:38,730 je probeert te gaan door debug. 947 00:43:38,730 --> 00:43:41,510 Als je probeert te achterhalen waar je mist een accolade 948 00:43:41,510 --> 00:43:44,890 en ze zijn all over the place, je bent alleen het maken van je eigen leven moeilijker. 949 00:43:44,890 --> 00:43:47,217 Dus in overeenstemming zijn met stijl. 950 00:43:47,217 --> 00:43:48,800 Ik beloof het zal uw leven gemakkelijker te maken. 951 00:43:48,800 --> 00:43:50,330 Het zal ons leven gemakkelijker te maken. 952 00:43:50,330 --> 00:43:51,869 Iedereen zal veel gelukkiger zijn. 953 00:43:51,869 --> 00:43:52,910 En dat is wat je wilt. 954 00:43:52,910 --> 00:43:54,192 955 00:43:54,192 --> 00:43:55,650 GABRIEL: Uw cijfer hoger zal zijn. 956 00:43:55,650 --> 00:43:56,858 Ann: Ja, en je cijfer. 957 00:43:56,858 --> 00:43:58,410 958 00:43:58,410 --> 00:44:01,930 Als uw TF is alsof je, meestal gunstig. 959 00:44:01,930 --> 00:44:02,940 960 00:44:02,940 --> 00:44:05,010 Oké, en dan gewoon het tweede punt hier. 961 00:44:05,010 --> 00:44:06,300 Consistent initialisaties. 962 00:44:06,300 --> 00:44:09,605 Dus zoals we zagen, kunt u verklaren en initialiseren dingen. 963 00:44:09,605 --> 00:44:10,750 964 00:44:10,750 --> 00:44:13,180 Meerdere variabelen op dezelfde lijn. 965 00:44:13,180 --> 00:44:17,930 Een ding willen we u vragen niet te doen is om een ​​aantal variabelen op te geven 966 00:44:17,930 --> 00:44:21,360 en ze niet initialiseren op dezelfde lijn die u initialiseren anderen. 967 00:44:21,360 --> 00:44:23,960 >> Dus in het geval dat gemaakt geen enkele zin, 968 00:44:23,960 --> 00:44:29,050 we hebben het voorbeeld hier waar we verklaren ints 969 00:44:29,050 --> 00:44:31,180 in variabelen van kwartalen dubbeltjes en stuivers, 970 00:44:31,180 --> 00:44:34,214 maar kwartalen en penningen hebben geen initiële waarde. 971 00:44:34,214 --> 00:44:36,630 We hebben ze niet geïnitialiseerd, maar in het midden is er 972 00:44:36,630 --> 00:44:38,600 we reeds geïnitialiseerd dubbeltjes tot 0. 973 00:44:38,600 --> 00:44:41,650 Dus ofwel doe kwartalen, dubbeltjes, stuivers. 974 00:44:41,650 --> 00:44:43,170 Of wil kwartalen gelijk 0. 975 00:44:43,170 --> 00:44:43,930 Dimes gelijk 0. 976 00:44:43,930 --> 00:44:46,810 Pennies gelijk 0, of wat dan ook deze initiële waarden zijn. 977 00:44:46,810 --> 00:44:49,800 >> Groot ding met stijl, consequent zijn. 978 00:44:49,800 --> 00:44:51,050 Bij twijfel, consequent zijn. 979 00:44:51,050 --> 00:44:52,129 980 00:44:52,129 --> 00:44:53,420 Maar volg onze stijlgids ook. 981 00:44:53,420 --> 00:44:54,710 982 00:44:54,710 --> 00:44:55,317 Cool. 983 00:44:55,317 --> 00:44:56,150 Iedereen goed daar? 984 00:44:56,150 --> 00:44:57,566 >> Publiek: Waar is de stijlgids? 985 00:44:57,566 --> 00:45:00,800 Ann: De stijlgids is on-- wat is de website? 986 00:45:00,800 --> 00:45:03,950 >> GABRIEL: Ik denk dat het manual.cs50.net/-- 987 00:45:03,950 --> 00:45:04,575 Ann: Style? 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 Yep. 991 00:45:06,920 --> 00:45:07,520 >> Ann: Ja. 992 00:45:07,520 --> 00:45:10,150 Dus de vraag, waar is de stijl 50. 993 00:45:10,150 --> 00:45:12,250 manual.cs50.net/style. 994 00:45:12,250 --> 00:45:13,639 Ja? 995 00:45:13,639 --> 00:45:16,880 >> PUBLIEK: Als we het definiëren variabelen, is het OK 996 00:45:16,880 --> 00:45:28,145 als we als [onverstaanbaar], zoals int score en dan int doel. 997 00:45:28,145 --> 00:45:29,873 998 00:45:29,873 --> 00:45:35,100 Dus zou je zeggen dat nu hebben we kreeg om ze samen te definiëren? 999 00:45:35,100 --> 00:45:37,640 >> Ann: Dus vraag moet je hebt redundante code 1000 00:45:37,640 --> 00:45:40,940 wanneer u definieert variabelen zoals int score en 1001 00:45:40,940 --> 00:45:43,239 op de volgende regel int spel? 1002 00:45:43,239 --> 00:45:46,030 ROB BOWDEN: Er zijn zeker gevallen waarbij redundante code is slecht. 1003 00:45:46,030 --> 00:45:47,738 Ik zou niet overwegen dat redundante code. 1004 00:45:47,738 --> 00:45:50,970 Ik bijna nooit verklaren meerdere variabelen op dezelfde lijn ooit. 1005 00:45:50,970 --> 00:45:53,736 En als er iets, dan is dat omdat meestal ben een soort van commentaar achter te laten 1006 00:45:53,736 --> 00:45:55,235 uit te leggen wat de variabele is voor. 1007 00:45:55,235 --> 00:45:57,582 Dus ik zal zeggen int score slash slash. 1008 00:45:57,582 --> 00:45:59,350 Houdt bij wat dan ook. 1009 00:45:59,350 --> 00:46:00,710 In totaal slash slash. 1010 00:46:00,710 --> 00:46:01,790 1011 00:46:01,790 --> 00:46:06,455 Dus het is veel grover op die manier ze allemaal op dezelfde lijn gezet. 1012 00:46:06,455 --> 00:46:08,080 Ik gewoon nooit zet ze op dezelfde lijn. 1013 00:46:08,080 --> 00:46:10,580 >> Ann: Ik heb het gevoel alsof het persoonlijke voorkeur op dit punt. 1014 00:46:10,580 --> 00:46:14,900 >> Publiek: Betekent dat gaan voor voor loops en dingen ook? 1015 00:46:14,900 --> 00:46:15,900 ROB BOWDEN: Net binnen? 1016 00:46:15,900 --> 00:46:18,282 Net als int i gelijk is aan 0 komma lengte gelijk aan iets? 1017 00:46:18,282 --> 00:46:19,490 Dat u niet beschikt over een keuze. 1018 00:46:19,490 --> 00:46:21,850 1019 00:46:21,850 --> 00:46:25,910 Met voor lussen de initialisatie part-- dus zou je alleen hebt gezien 1020 00:46:25,910 --> 00:46:31,520 int i gelijk is aan 0 puntkomma i minder dan wat puntkomma i plus plus. 1021 00:46:31,520 --> 00:46:33,820 Dat int i gelijk is aan 0, technisch kunt u ook 1022 00:46:33,820 --> 00:46:35,770 doen wat we eerder zagen de komma syntax. 1023 00:46:35,770 --> 00:46:39,790 int i gelijk is aan 0 komma j gelijk aan 3 komma k gelijk 5. 1024 00:46:39,790 --> 00:46:41,610 1025 00:46:41,610 --> 00:46:44,320 Je hoeft niet een keuze om te splitsen die in meerdere lijnen, 1026 00:46:44,320 --> 00:46:46,530 en dat is standaard. 1027 00:46:46,530 --> 00:46:47,780 Het zien van het daar is prima. 1028 00:46:47,780 --> 00:46:49,182 1029 00:46:49,182 --> 00:46:49,890 Ann: Awesome. 1030 00:46:49,890 --> 00:46:52,120 Nou, handig segue in lussen. 1031 00:46:52,120 --> 00:46:54,860 1032 00:46:54,860 --> 00:46:58,980 Dus ja, hier hebben we een aantal voorbeelden van loops die jullie zagen in Scratch. 1033 00:46:58,980 --> 00:47:01,550 En natuurlijk al die kan gewoon worden herschapen in C. 1034 00:47:01,550 --> 00:47:04,610 En ze eigenlijk u toestaan ​​dat om enkele sectie van code te herhalen 1035 00:47:04,610 --> 00:47:06,740 totdat een bepaalde voorwaarde wordt voldaan, die we zullen 1036 00:47:06,740 --> 00:47:09,198 krijgen in direct na het praten over loops met conditionals. 1037 00:47:09,198 --> 00:47:11,150 1038 00:47:11,150 --> 00:47:12,570 >> Dus hebben we drie belangrijke soorten. 1039 00:47:12,570 --> 00:47:17,500 Voor, tijdens, en te doen terwijl die we zullen allemaal door nu. 1040 00:47:17,500 --> 00:47:18,860 Dus eerste is voor lussen. 1041 00:47:18,860 --> 00:47:20,490 1042 00:47:20,490 --> 00:47:25,034 Dus voor sommigen staat, voer je dit blok code. 1043 00:47:25,034 --> 00:47:27,200 We hebben deze coole diagram hier onder. 1044 00:47:27,200 --> 00:47:28,230 1045 00:47:28,230 --> 00:47:32,310 Maar in principe heb je in je voor, dat de eerste lijn, 1046 00:47:32,310 --> 00:47:34,240 je gaat initialiseren van uw variabelen. 1047 00:47:34,240 --> 00:47:38,260 >> Dus als we het over, i is gelijk aan 0 of i gelijk aan 10. 1048 00:47:38,260 --> 00:47:40,010 Wat u ook nodig dat variabel het 1049 00:47:40,010 --> 00:47:43,970 gaan om daar te worden geïnitialiseerd, gedeclareerd en geïnitialiseerd op een bepaalde waarde. 1050 00:47:43,970 --> 00:47:46,760 Dus dan hebben we een aantal voorwaarde dat er aan de hand 1051 00:47:46,760 --> 00:47:48,900 te controleren onze variabele tegen iets. 1052 00:47:48,900 --> 00:47:55,220 Dus in het geval het typische geval misschien heb je dit deel van de code wilt 1053 00:47:55,220 --> 00:47:56,620 vijfmaal uitgevoerd. 1054 00:47:56,620 --> 00:48:02,380 Dus we zouden moeten int i gelijk is aan 0, en we wilt dat het is als ik minder dan 5. 1055 00:48:02,380 --> 00:48:04,940 Dus die voorwaarde is gewoon gaan om te controleren dat elke keer. 1056 00:48:04,940 --> 00:48:07,120 Als aan die voorwaarde true, het is 1057 00:48:07,120 --> 00:48:11,162 gaan naar de code, dat is precies draaien wat deze kleine diagram toont. 1058 00:48:11,162 --> 00:48:12,370 1059 00:48:12,370 --> 00:48:13,639 >> En zo voert het uit. 1060 00:48:13,639 --> 00:48:15,430 Het werkt een variabele, dat is wat we zien 1061 00:48:15,430 --> 00:48:21,020 in het laatste deel van onze voor lus initialisatie daar. 1062 00:48:21,020 --> 00:48:22,370 1063 00:48:22,370 --> 00:48:26,030 Dus het zal gewoon blijven doen tot die voorwaarde niet is voldaan, 1064 00:48:26,030 --> 00:48:28,010 en dan zal het af te sluiten de lus en doorgaan 1065 00:48:28,010 --> 00:48:29,960 verder te gaan met de rest van uw programma. 1066 00:48:29,960 --> 00:48:31,320 1067 00:48:31,320 --> 00:48:33,620 Iedereen goed daar? 1068 00:48:33,620 --> 00:48:34,440 Cool. 1069 00:48:34,440 --> 00:48:37,780 >> Dus hier is een voorbeeld, zeer vergelijkbaar om iets wat ik net over sprak. 1070 00:48:37,780 --> 00:48:42,030 Dus we willen gewoon om af te drukken dit CS50 10 keer. 1071 00:48:42,030 --> 00:48:44,540 Zo zie je maar hier hebben we ons voor, en dan hebben we 1072 00:48:44,540 --> 00:48:47,450 initialiseren van de variabele i gelijk is aan 0 zijn. 1073 00:48:47,450 --> 00:48:50,610 Onze conditie is het controleren dat het minder dan 10. 1074 00:48:50,610 --> 00:48:55,210 Dus evalueren op true wanneer we voor het eerst starten, en dan werkt onze variabele 1075 00:48:55,210 --> 00:48:58,985 elke keer dat het daadwerkelijk uitvoert en drukt dit is CS50. 1076 00:48:58,985 --> 00:49:00,510 1077 00:49:00,510 --> 00:49:02,180 En zal eindigen na 10 keer. 1078 00:49:02,180 --> 00:49:03,190 1079 00:49:03,190 --> 00:49:04,070 Cool. 1080 00:49:04,070 --> 00:49:07,130 >> Dus terwijl loops zijn de aankomende. 1081 00:49:07,130 --> 00:49:12,400 En zoals je hier ziet, hebben we gewoon sommige terwijl dit Staat- vraag? 1082 00:49:12,400 --> 00:49:15,238 >> Publiek: Hoe kan ik springen eigenlijk gewoon niet één nummer, 1083 00:49:15,238 --> 00:49:19,030 maar twee nummers [onverstaanbaar] i plus plus plus? 1084 00:49:19,030 --> 00:49:23,390 >> Ann: De vraag was dus hoe kun je update uw variabele door meer dan één 1085 00:49:23,390 --> 00:49:24,070 tegelijk. 1086 00:49:24,070 --> 00:49:26,860 Dus ik plus plus zal update via één per keer. 1087 00:49:26,860 --> 00:49:32,310 Als je wilde om het bij te werken door twee, zou je kunnen doen i plus is gelijk aan 2. 1088 00:49:32,310 --> 00:49:34,526 >> ROB BOWDEN: Heb je gezien plus evenaart in collegezaal nog? 1089 00:49:34,526 --> 00:49:35,442 >> Publiek: [onverstaanbaar]. 1090 00:49:35,442 --> 00:49:37,440 1091 00:49:37,440 --> 00:49:42,110 >> Ann: Het is in feite de hetzelfde als ik gelijk i plus 2. 1092 00:49:42,110 --> 00:49:46,130 Dus het gaat om het te nemen en bijwerken door twee per keer. 1093 00:49:46,130 --> 00:49:49,432 Plus is gelijk aan is gewoon iets we noemen syntactische suiker. 1094 00:49:49,432 --> 00:49:52,390 ROB BOWDEN: Ja, deze bestaan ​​voor vrijwel alle rekenkundige operatoren. 1095 00:49:52,390 --> 00:49:55,830 Dus ik keer gelijk aan zou het nummer verdubbelen. 1096 00:49:55,830 --> 00:50:02,590 j verdeel gelijk 3 is hetzelfde als j j gelijk gedeeld door 3. 1097 00:50:02,590 --> 00:50:07,399 >> Ann: of min is gelijk aan 2 zou decrement i door twee per keer. 1098 00:50:07,399 --> 00:50:08,565 ROB BOWDEN: Zelfs mod gelijken. 1099 00:50:08,565 --> 00:50:09,690 1100 00:50:09,690 --> 00:50:13,270 U hebt geen logische operatoren op te zien, maar dakje gelijken en ampersand gelijk, 1101 00:50:13,270 --> 00:50:14,560 al deze bestaan. 1102 00:50:14,560 --> 00:50:19,480 >> Ann: Dus een heleboel keer, in het bijzonder met uw eerste paar P sets, 1103 00:50:19,480 --> 00:50:22,527 je zult waarschijnlijk het verhogen van één, dus ik plus plus, j plus plus 1104 00:50:22,527 --> 00:50:24,610 zijn allemaal dingen die je gaat dat deze typisch gebruikt. 1105 00:50:24,610 --> 00:50:28,240 Maar die update voorwaarde is volledig binnen uw controle. 1106 00:50:28,240 --> 00:50:32,310 U kunt deze bijwerken met welke stappen of op welke wijze u beslist om. 1107 00:50:32,310 --> 00:50:33,389 1108 00:50:33,389 --> 00:50:35,680 Misschien heb je ook wilt dat het is een willekeurig getal soms. 1109 00:50:35,680 --> 00:50:37,180 1110 00:50:37,180 --> 00:50:39,580 Maar ja, er zijn veel dingen die je kunt doen met dat. 1111 00:50:39,580 --> 00:50:41,280 U bent niet beperkt tot i plus plus. 1112 00:50:41,280 --> 00:50:44,400 >> ROB BOWDEN: Just so you weten dat het bestaat, is het ook 1113 00:50:44,400 --> 00:50:46,960 bestaat in een andere vorm, plus plus i. 1114 00:50:46,960 --> 00:50:51,410 Dus als je ooit online zoeken en toevallig zien plus plus i, 1115 00:50:51,410 --> 00:50:52,870 vrij veel betekent hetzelfde. 1116 00:50:52,870 --> 00:50:54,377 1117 00:50:54,377 --> 00:50:54,960 Ann: Cool. 1118 00:50:54,960 --> 00:50:56,070 1119 00:50:56,070 --> 00:50:56,740 Goed? 1120 00:50:56,740 --> 00:50:57,240 Awesome. 1121 00:50:57,240 --> 00:50:59,190 1122 00:50:59,190 --> 00:50:59,990 Dus terwijl loops. 1123 00:50:59,990 --> 00:51:01,160 1124 00:51:01,160 --> 00:51:02,570 Zeer vergelijkbaar. 1125 00:51:02,570 --> 00:51:03,737 Je hebt een aantal aandoening. 1126 00:51:03,737 --> 00:51:05,820 Het belangrijkste ding om op te merken Hier is in plaats van 1127 00:51:05,820 --> 00:51:08,540 drie verschillende onderdelen op te zetten, hebben we één. 1128 00:51:08,540 --> 00:51:11,090 We hebben slechts enkele voorwaarde dat wordt gecontroleerd. 1129 00:51:11,090 --> 00:51:14,920 Op dezelfde wijze, zolang die voorwaarde true, 1130 00:51:14,920 --> 00:51:16,840 uw code is gaan lopen. 1131 00:51:16,840 --> 00:51:18,870 En als het is vals, het zal, move beëindigen 1132 00:51:18,870 --> 00:51:21,930 naar het volgende onderdeel van uw programma. 1133 00:51:21,930 --> 00:51:25,780 Dus dit is een soort van like-- wat een goed voorbeeld van het controleren 1134 00:51:25,780 --> 00:51:27,215 voor sommige normale toestand? 1135 00:51:27,215 --> 00:51:29,402 1136 00:51:29,402 --> 00:51:30,235 GABRIEL: Terwijl waar. 1137 00:51:30,235 --> 00:51:32,110 Ann: Je zou kunnen doen, terwijl waar. 1138 00:51:32,110 --> 00:51:33,510 Goed, 1 gelijk is aan 1. 1139 00:51:33,510 --> 00:51:34,970 1140 00:51:34,970 --> 00:51:37,642 >> ROB BOWDEN: U kunt while-- doen slechts plaats van een lus, 1141 00:51:37,642 --> 00:51:39,600 je kunt altijd coderen een lus in een while loop, 1142 00:51:39,600 --> 00:51:42,600 dus ik groter dan 0 of terwijl ik minder dan 10. 1143 00:51:42,600 --> 00:51:45,200 1144 00:51:45,200 --> 00:51:46,010 >> Ann: Awesome. 1145 00:51:46,010 --> 00:51:50,640 En dan hebben we het doen terwijl loops, die is zeer geschikt voor de gebruiker validatie, waar 1146 00:51:50,640 --> 00:51:55,370 je wilt iets uit te krijgen uw gebruiker, kijk of deze geldig is, 1147 00:51:55,370 --> 00:51:57,060 en dan verder vanaf daar. 1148 00:51:57,060 --> 00:52:04,000 Dus een van de dingen om te weten is met een doen terwijl is dat het gaat om uit te voeren, 1149 00:52:04,000 --> 00:52:08,000 en dan zal het opnieuw uitvoeren Als aan deze voorwaarde wordt voldaan. 1150 00:52:08,000 --> 00:52:11,240 >> Dus waarschijnlijk de beste manier om dit te doen is alleen maar om een ​​voorbeeld te zien hier. 1151 00:52:11,240 --> 00:52:14,620 Dus zoals ik zojuist noemde, gebruiker validatie is echt useful-- 1152 00:52:14,620 --> 00:52:17,520 of doe whiles zijn echt handig met gebruiksvriendelijke validatie. 1153 00:52:17,520 --> 00:52:19,730 Dus dit is gewoon om opnieuw te vragen wat de gebruiker 1154 00:52:19,730 --> 00:52:23,640 totdat ze in een positief getal, die nuttig zijn voor uw P set zou kunnen zijn 1155 00:52:23,640 --> 00:52:24,190 deze week. 1156 00:52:24,190 --> 00:52:25,850 1157 00:52:25,850 --> 00:52:29,480 Dus in dit geval, wanneer we aanvankelijk dit programma uit te voeren, 1158 00:52:29,480 --> 00:52:32,260 het gaat om af te drukken voer een positief getal. 1159 00:52:32,260 --> 00:52:34,810 Het gaat om wat te krijgen input van de gebruiker, 1160 00:52:34,810 --> 00:52:38,320 en dan gaat het te controleren dat invoer tegen de aandoening 1161 00:52:38,320 --> 00:52:39,500 dat u hebt ingesteld voor. 1162 00:52:39,500 --> 00:52:41,030 >> Dus in dit geval is dat het gaat om te controleren. 1163 00:52:41,030 --> 00:52:44,190 Het gaat om te zeggen, OK, is onze inbreng negatief, 1164 00:52:44,190 --> 00:52:47,175 of is het 0 of negatief is, die ongeldig zou zijn. 1165 00:52:47,175 --> 00:52:48,300 Dus dan zou het re-prompt. 1166 00:52:48,300 --> 00:52:50,280 1167 00:52:50,280 --> 00:52:50,780 Vraag? 1168 00:52:50,780 --> 00:52:54,720 >> Publiek: Is dit hetzelfde dan als een while loop als je gewoon gekopieerd die code 1169 00:52:54,720 --> 00:52:56,680 en zet het [onverstaanbaar] while loop? 1170 00:52:56,680 --> 00:52:59,620 1171 00:52:59,620 --> 00:53:05,160 >> Ann: Dus vraag was zou Dit is hetzelfde als enkel een tijdje 1172 00:53:05,160 --> 00:53:08,570 lus als we gewoon Kopieer de while lus boven. 1173 00:53:08,570 --> 00:53:12,440 Dus in dit geval, je while lus is gaan naar de toestand eerst controleren. 1174 00:53:12,440 --> 00:53:15,300 Dus in dit geval, als we probeerden om te schrijven als gewoon een while loop, 1175 00:53:15,300 --> 00:53:18,010 het zou tijdje zeggen ingang is minder dan één. 1176 00:53:18,010 --> 00:53:20,801 Maar we hebben niet een ingang voor. 1177 00:53:20,801 --> 00:53:24,238 >> PUBLIEK: Als u [onverstaanbaar] while loop met inbegrip van deze code, 1178 00:53:24,238 --> 00:53:28,166 maar dan moet je de code omgingen boven de while loop ook. 1179 00:53:28,166 --> 00:53:31,052 Je moest gewoon deze code [Onverstaanbaar] while lus. 1180 00:53:31,052 --> 00:53:32,760 Ann: Het zou hetzelfde, ja. 1181 00:53:32,760 --> 00:53:37,110 Dus je kon gewoon write-- plaats van een doen-- ja. 1182 00:53:37,110 --> 00:53:37,976 1183 00:53:37,976 --> 00:53:39,350 GABRIEL: Maar dat is meer elegant. 1184 00:53:39,350 --> 00:53:41,020 Ann: Ja, dat is meer elegant. 1185 00:53:41,020 --> 00:53:44,560 Je kunt krijgen in het ontwerp en wat al niet, maar ja, je kunt helemaal doen. 1186 00:53:44,560 --> 00:53:45,850 1187 00:53:45,850 --> 00:53:47,072 Een andere vragen? 1188 00:53:47,072 --> 00:53:49,240 1189 00:53:49,240 --> 00:53:50,250 OK, cool. 1190 00:53:50,250 --> 00:53:55,540 >> Dus hebben we veel gesproken over voorwaarden al deze lussen die we hebben, 1191 00:53:55,540 --> 00:53:58,615 dus we eigenlijk krijgen in omstandigheden in Booleaanse uitdrukkingen. 1192 00:53:58,615 --> 00:53:59,990 1193 00:53:59,990 --> 00:54:03,440 Nogmaals, deze gebruikt u C, dus gewoon een soort van overgang 1194 00:54:03,440 --> 00:54:06,050 uit meer grafische interface om daadwerkelijk te coderen. 1195 00:54:06,050 --> 00:54:07,480 1196 00:54:07,480 --> 00:54:09,100 >> Cool, zo groot een, als. 1197 00:54:09,100 --> 00:54:11,130 1198 00:54:11,130 --> 00:54:17,070 Eigenlijk gewoon laat ons toe om te introduceren enkele logica in ons programma en check 1199 00:54:17,070 --> 00:54:17,790 sys voorwaarden. 1200 00:54:17,790 --> 00:54:22,150 Dus in dit geval, OK, n is groter dan 0? 1201 00:54:22,150 --> 00:54:24,070 Ja het is, zodat u dit kunt uitvoeren. 1202 00:54:24,070 --> 00:54:28,060 Het is gewoon het controleren van enkele voorwaarde dat je hebt 1203 00:54:28,060 --> 00:54:33,565 ingesteld, waarvan ik denk dat we allemaal comfortabel met het controleren van omstandigheden. 1204 00:54:33,565 --> 00:54:35,975 1205 00:54:35,975 --> 00:54:36,475 Cool. 1206 00:54:36,475 --> 00:54:38,760 1207 00:54:38,760 --> 00:54:44,530 Dus als het andere is uw andere één, je kunt zeggen OK, als dit waar is, 1208 00:54:44,530 --> 00:54:46,150 Hiertoe dient u eerst ding. 1209 00:54:46,150 --> 00:54:48,720 Anders wil ik dat je standaard en iets anders doen. 1210 00:54:48,720 --> 00:54:51,977 1211 00:54:51,977 --> 00:54:55,060 Zoals in dit geval, je ofwel kies een positief getal of een negatief getal. 1212 00:54:55,060 --> 00:54:56,500 Je hebt maar twee opties. 1213 00:54:56,500 --> 00:54:59,550 Je hebt het nodig om uit te voeren, ongeacht van wat uw gebruikers-ingangen. 1214 00:54:59,550 --> 00:55:02,920 Dus je kunt zeggen goed, is het groter dan 0? 1215 00:55:02,920 --> 00:55:03,480 Cool. 1216 00:55:03,480 --> 00:55:04,480 Druk een positief getal. 1217 00:55:04,480 --> 00:55:06,153 Als het niet, druk dan een negatieve. 1218 00:55:06,153 --> 00:55:06,960 Iedereen goed? 1219 00:55:06,960 --> 00:55:14,920 >> En dan een ding te herkennen is dat indien de als voorwaarde wordt voldaan, 1220 00:55:14,920 --> 00:55:16,650 de andere zal nooit ook uitvoeren. 1221 00:55:16,650 --> 00:55:19,210 Slechts één van deze zal uitvoeren tegelijk. 1222 00:55:19,210 --> 00:55:20,410 Dus het is een afweging. 1223 00:55:20,410 --> 00:55:21,720 Je krijgt niet beide hebben. 1224 00:55:21,720 --> 00:55:23,566 Je hebt ofwel de eerste voorwaarde. 1225 00:55:23,566 --> 00:55:25,440 Je hebt ofwel de als of anders, niet beide. 1226 00:55:25,440 --> 00:55:26,849 1227 00:55:26,849 --> 00:55:28,890 Die dan dingen kan maken nog ingewikkelder, 1228 00:55:28,890 --> 00:55:31,060 want je kunt doen als, anders, en dan anders. 1229 00:55:31,060 --> 00:55:32,810 Dus in dit geval, we hebben drie voorwaarden. 1230 00:55:32,810 --> 00:55:34,830 1231 00:55:34,830 --> 00:55:38,370 En nogmaals, slechts één van deze is zal uiteindelijk worden uitgevoerd. 1232 00:55:38,370 --> 00:55:41,030 Dus u vraagt ​​zich misschien af nou ja, wat als je 1233 00:55:41,030 --> 00:55:45,510 hebben iets dat kan aan twee van deze. 1234 00:55:45,510 --> 00:55:49,520 Misschien wat u ook invoeren voldoet aan zowel de conditie 1235 00:55:49,520 --> 00:55:51,811 want als en de else if. 1236 00:55:51,811 --> 00:55:53,060 Enige wat er aan de hand te lopen 1237 00:55:53,060 --> 00:55:56,240 >> Ann: Zodra het iets vindt dat het voldoet aan de voorwaarde voor die 1238 00:55:56,240 --> 00:55:59,790 true, dat is wat het gaat lopen en niets anders. 1239 00:55:59,790 --> 00:56:04,440 Dus als je had is dit nummer tussen 0 en 5 voor uw eerste, 1240 00:56:04,440 --> 00:56:10,530 of is dit getal tussen 3 en 5 voor de anders indien een deel, 1241 00:56:10,530 --> 00:56:15,550 en je voer de number-- Ik zei 0 en 5 en-- 4. 1242 00:56:15,550 --> 00:56:18,110 Het gaat om de eerste hit. 1243 00:56:18,110 --> 00:56:20,960 Het gaat om te zeggen OK, dit getal is tussen 0 en 5. 1244 00:56:20,960 --> 00:56:22,480 Uitvoeren en vertrekken. 1245 00:56:22,480 --> 00:56:25,340 Het zal nooit raken die tweede optie. 1246 00:56:25,340 --> 00:56:26,394 Cool? 1247 00:56:26,394 --> 00:56:27,250 Awesome. 1248 00:56:27,250 --> 00:56:31,300 >> OK we hebben ook switch statements als je wilt zelfs more-- of spijt te krijgen, 1249 00:56:31,300 --> 00:56:31,965 schakelaar is de volgende. 1250 00:56:31,965 --> 00:56:33,540 1251 00:56:33,540 --> 00:56:34,990 Ik krijg voor mezelf hier. 1252 00:56:34,990 --> 00:56:36,370 1253 00:56:36,370 --> 00:56:39,210 Nogmaals, indien meerdere blokken waar, zoals ik net zei 1254 00:56:39,210 --> 00:56:45,600 is zodra je een voorwaarde vinden dat is voldaan en een if else if anders, 1255 00:56:45,600 --> 00:56:46,630 laat. 1256 00:56:46,630 --> 00:56:49,560 Als u nodig hebt om te controleren meerdere dingen, je bent 1257 00:56:49,560 --> 00:56:53,000 gaat willen dit omdat gebruik het zal elke keer hier te controleren. 1258 00:56:53,000 --> 00:56:58,060 Dus zal dit doorlopen en als Het is groter dan of gelijk aan 90, 1259 00:56:58,060 --> 00:56:59,160 het gaat om af te drukken dat. 1260 00:56:59,160 --> 00:57:00,530 1261 00:57:00,530 --> 00:57:03,600 En het zal doorlopen en Controleer elk van deze. 1262 00:57:03,600 --> 00:57:06,444 >> Publiek: Dus dit zou meer buggy dan [onverstaanbaar]. 1263 00:57:06,444 --> 00:57:07,735 Zou dit zijn als [onverstaanbaar]? 1264 00:57:07,735 --> 00:57:10,990 1265 00:57:10,990 --> 00:57:15,740 >> Ann: De vraag is zou dit zijn buggy of is dit te doen wat je wilt. 1266 00:57:15,740 --> 00:57:19,830 Het hangt af van wat U wilt van uw programma. 1267 00:57:19,830 --> 00:57:22,291 >> Publiek: Ik bedoel, als als je 90 in. 1268 00:57:22,291 --> 00:57:23,290 Ann: Als je 90-- 1269 00:57:23,290 --> 00:57:24,206 Publiek: [onverstaanbaar]. 1270 00:57:24,206 --> 00:57:25,584 1271 00:57:25,584 --> 00:57:27,250 GABRIEL: Je gaat om twee dingen te krijgen. 1272 00:57:27,250 --> 00:57:28,916 Ann: Je gaat om twee dingen te krijgen. 1273 00:57:28,916 --> 00:57:29,420 Ja, twee. 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 >> Ann: Nee. 1277 00:57:34,580 --> 00:57:35,288 >> ROB BOWDEN: Four. 1278 00:57:35,288 --> 00:57:37,070 1279 00:57:37,070 --> 00:57:40,070 Als je 90, het gaat om u te zeggen kreeg een A, je kreeg een B, je hebt een C, 1280 00:57:40,070 --> 00:57:40,545 je kreeg een D. 1281 00:57:40,545 --> 00:57:41,461 >> Publiek: [onverstaanbaar]. 1282 00:57:41,461 --> 00:57:42,196 1283 00:57:42,196 --> 00:57:42,820 Ann: Right. 1284 00:57:42,820 --> 00:57:44,778 Dus ik afhankelijk van wat je van je wil programma. 1285 00:57:44,778 --> 00:57:47,050 Soms moet je check meerdere dingen. 1286 00:57:47,050 --> 00:57:49,970 1287 00:57:49,970 --> 00:57:55,270 Je zult veel dieper in te krijgen wat goed ontwerp is als je gaat vooruit. 1288 00:57:55,270 --> 00:57:57,090 Het belangrijkste om te realiseren is dat deze 1289 00:57:57,090 --> 00:58:01,090 zal hier alle vier de voorwaarden te controleren. 1290 00:58:01,090 --> 00:58:05,860 Overwegende dat als dit een if else if anders indien anders, zou het dat eerste geval geraakt, 1291 00:58:05,860 --> 00:58:07,950 het zou afdrukken heb je een A en worden gedaan. 1292 00:58:07,950 --> 00:58:10,250 >> ROB BOWDEN: Zelfs als we besloten om dit te veranderen om zo 1293 00:58:10,250 --> 00:58:13,880 en groter dan of gelijk aan 90, indien en groter dan of gelijk aan 80, 1294 00:58:13,880 --> 00:58:19,710 en minder dan of gelijk aan 89, of n groter dan of gelijk aan 70, 1295 00:58:19,710 --> 00:58:23,830 en n kleiner is dan of gelijk aan 79, zodat correct zijn. 1296 00:58:23,830 --> 00:58:27,190 Dat zullen doen wat we willen, maar het nog steeds controleert ieder het. 1297 00:58:27,190 --> 00:58:34,050 >> Dus terwijl in het eerste scenario, als we voer 90 met slechts indien anders als anders als, 1298 00:58:34,050 --> 00:58:37,300 en we voeren 90, daarna het gaat om te corrigeren. 1299 00:58:37,300 --> 00:58:39,615 Het controleert de eerste één, afdrukken heb je een A, 1300 00:58:39,615 --> 00:58:42,590 skip alles, omdat het al een gevonden die werkt. 1301 00:58:42,590 --> 00:58:46,360 Alle gevallen zijn wederzijds exclusief op basis van dat else if else if. 1302 00:58:46,360 --> 00:58:48,630 Dus het zal voeren de eerst als, dan is het gedaan. 1303 00:58:48,630 --> 00:58:49,790 Het zal gaan tot het einde. 1304 00:58:49,790 --> 00:58:52,400 >> Terwijl als we veranderen dit om te zijn wat ik was 1305 00:58:52,400 --> 00:58:54,204 zeggen met minder dan of gelijk aan 89. 1306 00:58:54,204 --> 00:58:55,620 Het gaat om de eerste te controleren. 1307 00:58:55,620 --> 00:58:56,560 Het zal drukken. 1308 00:58:56,560 --> 00:58:58,010 Het zal de tweede controleren. 1309 00:58:58,010 --> 00:58:59,010 Het gaat niet om af te drukken. 1310 00:58:59,010 --> 00:58:59,910 Controleer de derde één. 1311 00:58:59,910 --> 00:59:00,620 Niet van plan om af te drukken. 1312 00:59:00,620 --> 00:59:01,495 Controleer de vierde. 1313 00:59:01,495 --> 00:59:02,420 Nu ter perse gaan. 1314 00:59:02,420 --> 00:59:05,380 Dus in dat geval, de else if versie, aangezien deze gevallen 1315 00:59:05,380 --> 00:59:09,120 sluiten elkaar uit, het is beter gebruik als else if else if, 1316 00:59:09,120 --> 00:59:12,970 want dat zal moeten minder controles van de voorwaarden 1317 00:59:12,970 --> 00:59:14,750 dan deze versie. 1318 00:59:14,750 --> 00:59:17,692 1319 00:59:17,692 --> 00:59:18,400 Ann: Awesome. 1320 00:59:18,400 --> 00:59:20,580 Dus een ander ding dat we kunnen doet is switch statements. 1321 00:59:20,580 --> 00:59:23,104 1322 00:59:23,104 --> 00:59:25,270 Eigenlijk een switch statement neemt in sommige variabele, 1323 00:59:25,270 --> 00:59:28,780 in dit geval is n, en bepaalt dat geval uit te voeren. 1324 00:59:28,780 --> 00:59:33,106 Dus dit is ook één waar je gevallen moet soort wederzijds exclusief zijn. 1325 00:59:33,106 --> 00:59:35,210 1326 00:59:35,210 --> 00:59:37,940 Dus in dit geval, als we krijgen we een één, het is 1327 00:59:37,940 --> 00:59:42,270 gaan passen wat dat variable-- ongeacht de waarde van n 1328 00:59:42,270 --> 00:59:48,700 is één van deze gevallen dus 1, 2, of 3, en een afdruk van de betreffende regel. 1329 00:59:48,700 --> 00:59:51,870 >> En dan als je hier ziet, hebben we ook een standaard, 1330 00:59:51,870 --> 00:59:54,670 die kun je van denken als je anders. 1331 00:59:54,670 --> 00:59:58,510 Dus als je een ander nummer te halen bovendien 1, 2 en 3 in dit geval 1332 00:59:58,510 --> 00:59:59,885 het is gewoon om ongeldige afdrukken. 1333 00:59:59,885 --> 01:00:03,690 1334 01:00:03,690 --> 01:00:08,390 Beslissen wanneer te ifs gebruiken versus indien elses versus switches gaat 1335 01:00:08,390 --> 01:00:12,590 iets te zijn dat je jongens zullen zie ontwerpen wijs als je begint te schrijven 1336 01:00:12,590 --> 01:00:15,270 meer ingewikkelde programma, en er is geen harde en snelle regels 1337 01:00:15,270 --> 01:00:16,330 van wanneer ze te gebruiken. 1338 01:00:16,330 --> 01:00:17,890 Het hangt af van uw context. 1339 01:00:17,890 --> 01:00:18,590 >> ROB BOWDEN: En net om het daar te gooien 1340 01:00:18,590 --> 01:00:20,131 aangezien het comfortabeler sectie. 1341 01:00:20,131 --> 01:00:20,920 1342 01:00:20,920 --> 01:00:25,053 Schakelaars, ze de neiging om be-- dus je bent beperkt 1343 01:00:25,053 --> 01:00:27,430 in het aantal manieren waarop je kunnen ze gebruiken, omdat ifs, 1344 01:00:27,430 --> 01:00:30,100 de aandoening kan behoorlijk zijn alles wat je wilt. 1345 01:00:30,100 --> 01:00:33,410 Met schakelt de gevallen moeten getallen, 1346 01:00:33,410 --> 01:00:37,770 of technisch kunnen ze chars, maar klusjes, zoals we zullen zien, zijn slechts getallen. 1347 01:00:37,770 --> 01:00:44,250 Dus ze hebben om nummers, maar schakelaars zijn echt efficiënter dan wanneer 1348 01:00:44,250 --> 01:00:50,060 anders als anders als, want zelfs nemen het voorbeeld before-- goed, 1349 01:00:50,060 --> 01:00:51,486 de rang voorbeeld lijkt goed. 1350 01:00:51,486 --> 01:00:52,550 1351 01:00:52,550 --> 01:00:57,080 >> Nou laten we zeggen hier, we in plaats daarvan doen dit als een if else if else if scenario. 1352 01:00:57,080 --> 01:01:00,930 Als n gelijk is gelijk aan 1, afdrukken u een laag aantal geplukt. 1353 01:01:00,930 --> 01:01:04,490 Indien anders als n gelijk gelijk is aan 2, u een medium aantal geplukt. 1354 01:01:04,490 --> 01:01:06,550 Anders als gelijken is gelijk aan 3, hoog. 1355 01:01:06,550 --> 01:01:08,060 Else ongeldig. 1356 01:01:08,060 --> 01:01:09,820 >> Dus laten we zeggen dat was onze scenario. 1357 01:01:09,820 --> 01:01:14,060 Dus laten we zeggen dat we in 4, dus we verwachten ongeldig. 1358 01:01:14,060 --> 01:01:17,410 De manier waarop indien anders als anders als benadering gaat werken is 1359 01:01:17,410 --> 01:01:18,740 controleert de eerste voorwaarde. 1360 01:01:18,740 --> 01:01:19,776 Het is niet tevreden. 1361 01:01:19,776 --> 01:01:21,150 Zo controleren we de tweede voorwaarde. 1362 01:01:21,150 --> 01:01:21,940 Het is niet tevreden. 1363 01:01:21,940 --> 01:01:23,023 Controleer de derde voorwaarde. 1364 01:01:23,023 --> 01:01:23,640 Niet tevreden. 1365 01:01:23,640 --> 01:01:26,650 Dus gaan we naar de ander en afdrukken ongeldig. 1366 01:01:26,650 --> 01:01:30,169 >> De manier waarop de schakelaar werkt is het compileert naar beneden 1367 01:01:30,169 --> 01:01:31,960 in wat we gaan om een ​​sprong tafel noemen. 1368 01:01:31,960 --> 01:01:33,180 1369 01:01:33,180 --> 01:01:37,120 Het belangrijkste idee wezen dat wanneer je 4 invoert, 1370 01:01:37,120 --> 01:01:39,090 het kan onmiddellijk naar de standaard. 1371 01:01:39,090 --> 01:01:41,460 Het hoeft niet te am I geval 1 te controleren? 1372 01:01:41,460 --> 01:01:42,350 Nope dat is het niet. 1373 01:01:42,350 --> 01:01:42,850 Case 2? 1374 01:01:42,850 --> 01:01:43,240 Nope. 1375 01:01:43,240 --> 01:01:43,770 Case 3? 1376 01:01:43,770 --> 01:01:44,270 Nope. 1377 01:01:44,270 --> 01:01:45,090 Default. 1378 01:01:45,090 --> 01:01:47,610 OK, dit moet waar zijn I willen, en uit te voeren dan dat. 1379 01:01:47,610 --> 01:01:49,590 Nee, het onmiddellijk springt naar de standaard. 1380 01:01:49,590 --> 01:01:51,900 Of het ik voer 2, het is onmiddellijk gaat naar de 2 1381 01:01:51,900 --> 01:01:54,060 zonder om te gaan door middel van case 1. 1382 01:01:54,060 --> 01:01:57,820 >> Dus op die manier, realistisch dat is tegenwoordig 1383 01:01:57,820 --> 01:02:00,250 niet zo veel van een efficiencywinst. 1384 01:02:00,250 --> 01:02:02,880 Meestal computers zijn vrij snel, en dat is niet zo geweldig. 1385 01:02:02,880 --> 01:02:07,270 Maar het is zo dat switches zijn sneller. 1386 01:02:07,270 --> 01:02:10,380 Als je echt proberen optimaliseren, gebruiken een schakelaar. 1387 01:02:10,380 --> 01:02:11,980 1388 01:02:11,980 --> 01:02:12,710 >> Ann: Cool. 1389 01:02:12,710 --> 01:02:15,270 En dan hebben we ternaire operator. 1390 01:02:15,270 --> 01:02:19,470 Dus ik weet dat ik al eerder zei het woord syntactische suiker. 1391 01:02:19,470 --> 01:02:24,160 Dus het is gewoon dingen die te maken uw code veel beknopter. 1392 01:02:24,160 --> 01:02:25,590 Dus dit is een van die gevallen. 1393 01:02:25,590 --> 01:02:31,430 >> Dus ternaire operator is vraagteken colon zoals we zien in de lijn snaar 1394 01:02:31,430 --> 01:02:35,810 s gelijk aan n groter is dan 100 vraagteken hoge colon laag. 1395 01:02:35,810 --> 01:02:41,800 Dus eigenlijk hoe dit werkt is dat het n groter dan 100 is een voorwaarde. 1396 01:02:41,800 --> 01:02:43,674 Dus ik denk dat het kan zinvol zijn. 1397 01:02:43,674 --> 01:02:44,840 Het is als het stellen van een vraag. 1398 01:02:44,840 --> 01:02:47,320 Het zegt oh, is n groter is dan 100. 1399 01:02:47,320 --> 01:02:48,340 Wie weet? 1400 01:02:48,340 --> 01:02:50,750 En als het evalueert tot waar is, het gaat om u 1401 01:02:50,750 --> 01:02:54,270 het eerste ding dat is er vermeld, dat is hoog. 1402 01:02:54,270 --> 01:02:55,840 Anders gaat je laag te geven. 1403 01:02:55,840 --> 01:03:01,210 Dus dit is gewoon een heel eenvoudige en efficiënte manier te doen als een of ander. 1404 01:03:01,210 --> 01:03:02,780 Dat is dit alles is. 1405 01:03:02,780 --> 01:03:07,450 >> En als we dit schrijven als indien anders voorwaardelijk, 1406 01:03:07,450 --> 01:03:12,480 het zou zijn als n groter dan 100, terug hoog. 1407 01:03:12,480 --> 01:03:14,220 Else, terug laag. 1408 01:03:14,220 --> 01:03:17,570 Dit is gewoon een veel meer beknopte manier van schrijven. 1409 01:03:17,570 --> 01:03:27,090 >> ROB BOWDEN: Dus dit specifieke voorbeeld is wanneer je iets te doen 1410 01:03:27,090 --> 01:03:30,190 als dit, dit is het patroon waar ik gebruik ternair heel vaak. 1411 01:03:30,190 --> 01:03:31,540 1412 01:03:31,540 --> 01:03:35,460 Dus we hebben niet gesproken over scope nog, maar ik haat het zien touwtje s puntkomma. 1413 01:03:35,460 --> 01:03:39,150 Als n groter is dan 100, s gelijk hoog. 1414 01:03:39,150 --> 01:03:40,660 Else, s is gelijk aan laag. 1415 01:03:40,660 --> 01:03:45,070 Dus dat patroon, die vijf lijnen code letterlijk 100% van de tijd 1416 01:03:45,070 --> 01:03:49,800 in wat kan worden overgedragen was daar met een ternair. 1417 01:03:49,800 --> 01:03:52,340 Dus de ternaire, een regel code. 1418 01:03:52,340 --> 01:03:54,640 De als anders, vijf. 1419 01:03:54,640 --> 01:03:56,910 Dat is een voorbeeld wijs ik out elke keer weer. 1420 01:03:56,910 --> 01:03:59,250 Dit zou geweldige plek een ternaire operator. 1421 01:03:59,250 --> 01:04:00,647 Het is zo schoon. 1422 01:04:00,647 --> 01:04:01,980 Maar mensen hebben de neiging om nooit gebruiken. 1423 01:04:01,980 --> 01:04:06,140 1424 01:04:06,140 --> 01:04:08,030 >> Ann: Neem het weg Gabe. 1425 01:04:08,030 --> 01:04:11,110 >> GABRIEL: Dus nu jullie allemaal geleerd in college deze week 1426 01:04:11,110 --> 01:04:13,420 dat alles in een computer is binair, toch? 1427 01:04:13,420 --> 01:04:14,570 Net als de lampen hier. 1428 01:04:14,570 --> 01:04:16,492 Je kan zowel in- en uitgeschakeld. 1429 01:04:16,492 --> 01:04:18,450 En door alles, ik bedoel letterlijk alles. 1430 01:04:18,450 --> 01:04:24,272 Enkele cijfers en tekens, en strijkers, en zelfs de code die je schrijft wanneer 1431 01:04:24,272 --> 01:04:26,480 het wordt gecompileerd naar machine code en dat soort dingen, 1432 01:04:26,480 --> 01:04:29,230 dus het komt allemaal neer op 0 en 1 '. 1433 01:04:29,230 --> 01:04:34,540 >> En dus wanneer we te maken hebben integers, welke 1434 01:04:34,540 --> 01:04:38,000 is iets dat is technisch zeer eenvoudige, moeten we in staat zijn om dingen te doen 1435 01:04:38,000 --> 01:04:40,630 als ze toe te voegen, dat is waarschijnlijk een van de eenvoudigste dingen 1436 01:04:40,630 --> 01:04:42,300 je kunt doen om twee gehele getallen, toch? 1437 01:04:42,300 --> 01:04:47,410 Dus optellen en aftrekken werkt gewoon als het werkt in decimale notatie, 1438 01:04:47,410 --> 01:04:50,780 behalve hier is het binaire, toch? 1439 01:04:50,780 --> 01:04:52,090 Dus het is in de basis twee. 1440 01:04:52,090 --> 01:04:54,070 Dus voeg 1 plus 1. 1441 01:04:54,070 --> 01:04:57,020 Dat geeft 0, en 1 aanreikt. 1442 01:04:57,020 --> 01:05:01,335 En gewoon blijven doen, dus nu komt de meer interessante vraag. 1443 01:05:01,335 --> 01:05:03,730 1444 01:05:03,730 --> 01:05:07,710 >> We weten hoe we alle vormen positieve gehele getallen in de computer, 1445 01:05:07,710 --> 01:05:09,870 maar laten we dit een oefening. 1446 01:05:09,870 --> 01:05:15,240 Doe alsof jullie zijn allemaal in 1960 of iets proberen om een ​​computer te maken, 1447 01:05:15,240 --> 01:05:19,950 en je moet komen van een manier van opslag minus 1, 1448 01:05:19,950 --> 01:05:22,554 bijvoorbeeld of minus integer voor die kwestie. 1449 01:05:22,554 --> 01:05:23,470 Hoe zou je dat doen? 1450 01:05:23,470 --> 01:05:27,820 1451 01:05:27,820 --> 01:05:29,220 Het even welke ideeën? 1452 01:05:29,220 --> 01:05:31,302 Gooi alles bij me. 1453 01:05:31,302 --> 01:05:32,264 Ja? 1454 01:05:32,264 --> 01:05:39,480 >> Publiek: [onverstaanbaar] wijzen een speciaal als uw [onverstaanbaar]. 1455 01:05:39,480 --> 01:05:42,590 >> GABRIEL: U kunt wijzen een speciale bit, die 0 of 1. 1456 01:05:42,590 --> 01:05:45,590 Laten we zeggen dat men als het positief en 0 als het negatief is. 1457 01:05:45,590 --> 01:05:48,171 En dan de rest van de bit is gewoon om het nummer op te slaan. 1458 01:05:48,171 --> 01:05:48,670 Cool. 1459 01:05:48,670 --> 01:05:49,990 Dus dat is een heel goed idee. 1460 01:05:49,990 --> 01:05:51,550 We hebben, ik weet het niet, 200. 1461 01:05:51,550 --> 01:05:54,720 En als de eerste bit ingeschakeld, dan is het plus 200. 1462 01:05:54,720 --> 01:05:57,270 Als het is uitgeschakeld, is het min 200. 1463 01:05:57,270 --> 01:05:58,380 Cool. 1464 01:05:58,380 --> 01:06:01,350 >> Er is slechts een klein probleem met deze, 1465 01:06:01,350 --> 01:06:05,370 dat is als we proberen om dingen te vatten. 1466 01:06:05,370 --> 01:06:18,910 Dus stel we hebben 11111 hier, en we optellen dit met 00100 wat dan ook. 1467 01:06:18,910 --> 01:06:21,630 Als die twee zijn positief, dat is prima. 1468 01:06:21,630 --> 01:06:24,470 Maar indien een van ze is negatief, net 1469 01:06:24,470 --> 01:06:27,410 laten we zeggen dat dit stukje hier is degene die verantwoordelijk is 1470 01:06:27,410 --> 01:06:31,390 voor-- Ik ga een separate-- maken dus dit betekent dat dit aantal hier 1471 01:06:31,390 --> 01:06:31,970 is positief. 1472 01:06:31,970 --> 01:06:34,450 Dit betekent dat deze nummer hier negatief is, toch? 1473 01:06:34,450 --> 01:06:37,010 >> Maar dan als je gaat ze samen te vatten, je 1474 01:06:37,010 --> 01:06:40,180 een if statement nodig zeggen oh als dit 0, 1475 01:06:40,180 --> 01:06:43,479 dan is mijn som zal zijn iets anders, toch? 1476 01:06:43,479 --> 01:06:45,270 Dus er is een iets meer slimme manier te doen 1477 01:06:45,270 --> 01:06:48,520 dat die twee-complement wordt genoemd. 1478 01:06:48,520 --> 01:06:52,350 Dus eigenlijk wat we doen is definiëren we min 1 1479 01:06:52,350 --> 01:06:57,250 om het ding te zijn dat als we optellen tot 1 geeft ons 0. 1480 01:06:57,250 --> 01:06:59,470 1481 01:06:59,470 --> 01:07:00,860 Laat me dat herhalen. 1482 01:07:00,860 --> 01:07:03,280 Dus laten we zeggen dat dit hier is 1. 1483 01:07:03,280 --> 01:07:08,110 1484 01:07:08,110 --> 01:07:13,570 Wat is het ding dat nature in positieve gehele getallen 1485 01:07:13,570 --> 01:07:15,570 toegevoegd dat geeft ons 0? 1486 01:07:15,570 --> 01:07:19,150 1487 01:07:19,150 --> 01:07:21,030 Wat als we proberen om het toe te voegen aan dit nummer? 1488 01:07:21,030 --> 01:07:22,830 1489 01:07:22,830 --> 01:07:28,032 We gaan have-- OK, dus laten we toe. 1490 01:07:28,032 --> 01:07:32,820 1491 01:07:32,820 --> 01:07:38,065 We gaan te hebben 1 plus 1 is 0, en dan aanreikt. 1492 01:07:38,065 --> 01:07:40,160 1493 01:07:40,160 --> 01:07:45,490 En dan gaan we weer krijgen 0. 1494 01:07:45,490 --> 01:07:47,730 1495 01:07:47,730 --> 01:07:48,820 Ik krijg de war. 1496 01:07:48,820 --> 01:07:51,670 En je gaat krijgen 0 en 0 en 0 en 0 en 0 en 0. 1497 01:07:51,670 --> 01:07:52,450 Veel 0's. 1498 01:07:52,450 --> 01:07:56,240 >> Op zijn laatste, zijn we niet gaat om te kunnen om het over te dragen, 1499 01:07:56,240 --> 01:07:59,614 want laten we zeggen dat we alleen te maken één byte, dus slechts 8 bits. 1500 01:07:59,614 --> 01:08:02,780 Dus wat doet de computer standaard is gewoon vergeet dat [onverstaanbaar], 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 Dus dit is wat wordt genoemd het twee-complement. 1504 01:08:06,880 --> 01:08:15,180 We hebben gewoon te definiëren minus 1 op de te ding hier dat als je die toevoegen aan 1 1505 01:08:15,180 --> 01:08:15,995 geef je aan 0. 1506 01:08:15,995 --> 01:08:17,609 1507 01:08:17,609 --> 01:08:20,180 En dat is wel cool omdat we niet echt 1508 01:08:20,180 --> 01:08:24,090 nodig laat om uit te voeren een ander type sum 1509 01:08:24,090 --> 01:08:26,590 afhankelijk van of dat een negatief of een positief getal. 1510 01:08:26,590 --> 01:08:27,465 Heeft dat zin? 1511 01:08:27,465 --> 01:08:28,740 1512 01:08:28,740 --> 01:08:32,370 >> Dus een ding dat we doen hier om te zetten 1513 01:08:32,370 --> 01:08:38,550 tussen een positieve en een negatieve integer is dan spiegelen we alles, 1514 01:08:38,550 --> 01:08:40,930 en dan voegen we 1 aan dat nummer. 1515 01:08:40,930 --> 01:08:43,140 Als u probeert om het zelf te doen op een stuk papier, 1516 01:08:43,140 --> 01:08:44,681 je gaat zien dat is logisch. 1517 01:08:44,681 --> 01:08:51,000 Maar als ik dit nummer hier, dit is vijf. 1518 01:08:51,000 --> 01:08:54,859 Dus als ik flip alles hier dus 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 En voeg ik 1 aan. 1522 01:09:00,130 --> 01:09:02,750 Ik ga precies minus 5 hebben. 1523 01:09:02,750 --> 01:09:03,250 OK? 1524 01:09:03,250 --> 01:09:06,220 >> Logisch soort omdat als u proberen om dit samen te vatten met het nummer 1525 01:09:06,220 --> 01:09:10,229 dat we eerder hadden, wat was-- laten we weer omdraaien dit. 1526 01:09:10,229 --> 01:09:12,999 Het was 101 en veel 0's. 1527 01:09:12,999 --> 01:09:13,795 1528 01:09:13,795 --> 01:09:15,670 Als u probeert om deze toe te voegen twee getallen elkaar, 1529 01:09:15,670 --> 01:09:16,961 je gaat precies 0 hebben. 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 Heeft u vragen? 1533 01:09:19,884 --> 01:09:20,759 >> Publiek: [onverstaanbaar] 1534 01:09:20,759 --> 01:09:25,790 1535 01:09:25,790 --> 01:09:27,280 >> GABRIEL: Wat bedoel je? 1536 01:09:27,280 --> 01:09:29,240 >> Publiek: Negatief aan positieve [onverstaanbaar]. 1537 01:09:29,240 --> 01:09:33,215 >> GABRIEL: Nee, je klep en je 1 altijd toevoegen. 1538 01:09:33,215 --> 01:09:34,081 1539 01:09:34,081 --> 01:09:34,580 Yeah. 1540 01:09:34,580 --> 01:09:36,910 1541 01:09:36,910 --> 01:09:39,680 OK, dus personages ook gecodeerd binaries. 1542 01:09:39,680 --> 01:09:42,649 We hebben ASCII-tabel, zoals u ook zag in collegezaal, toch? 1543 01:09:42,649 --> 01:09:45,040 Dus het is eigenlijk een mapping van de dingen. 1544 01:09:45,040 --> 01:09:50,960 En hier kan ik niet genoeg benadrukken dat voor een computer, en een 65 1545 01:09:50,960 --> 01:09:52,770 zijn letterlijk hetzelfde. 1546 01:09:52,770 --> 01:10:03,430 Dus als ik iets als char c schrijven gelijk aan een, kan ik tegelijkertijd 1547 01:10:03,430 --> 01:10:06,890 gewoon schrijven 65 hier, en het zou precies hetzelfde zijn, OK? 1548 01:10:06,890 --> 01:10:08,470 Er is geen enkel verschil. 1549 01:10:08,470 --> 01:10:12,420 >> We meestal de neiging om te zetten personages in variabelen van het type. 1550 01:10:12,420 --> 01:10:16,770 Char, niet omdat ze in wezen gemaakt, maar omdat 1551 01:10:16,770 --> 01:10:18,050 van menselijke conventie. 1552 01:10:18,050 --> 01:10:22,410 Maar je kunt gewoon gaan met gehele getallen in plaats van de variabelen van het type char, 1553 01:10:22,410 --> 01:10:23,490 en je komt wel goed. 1554 01:10:23,490 --> 01:10:28,410 Het enige werkelijke verschil tussen een char c en een int i 1555 01:10:28,410 --> 01:10:31,960 dat een int vier bytes in de meeste systemen, terwijl een char één byte. 1556 01:10:31,960 --> 01:10:33,070 1557 01:10:33,070 --> 01:10:35,460 Ze zijn in wezen de hetzelfde in termen van data. 1558 01:10:35,460 --> 01:10:36,990 1559 01:10:36,990 --> 01:10:37,990 Dus wat zal hier af te drukken? 1560 01:10:37,990 --> 01:10:43,780 Hier zijn we het afdrukken van een cijfer met behulp van printf met een plus 1, en net zoals integers, 1561 01:10:43,780 --> 01:10:46,240 chars kan worden samengevat, zodat karakters kunnen ook worden samengevat. 1562 01:10:46,240 --> 01:10:47,890 Dus dit is precies 65. 1563 01:10:47,890 --> 01:10:49,950 Dus er gaat worden 66, en hier hebben we 1564 01:10:49,950 --> 01:10:56,860 65 plus beetje een min grote A, die zal zijn, weet ik niet echt weten. 1565 01:10:56,860 --> 01:11:00,900 Maar het zal precies de kloof tussen de hoofdletters 1566 01:11:00,900 --> 01:11:07,800 en de kleine letters, dus we gaan om kleine een te krijgen, toch? 1567 01:11:07,800 --> 01:11:08,300 Yeah. 1568 01:11:08,300 --> 01:11:11,740 Dus dit gaat om een ​​af ​​te drukken karakter en dat is precies deze. 1569 01:11:11,740 --> 01:11:12,260 Goed? 1570 01:11:12,260 --> 01:11:12,860 Heeft u vragen? 1571 01:11:12,860 --> 01:11:16,320 1572 01:11:16,320 --> 01:11:19,430 >> Hier hebben we een heleboel verschillende types voor numerieke variabelen. 1573 01:11:19,430 --> 01:11:20,620 We praten nu al over int. 1574 01:11:20,620 --> 01:11:21,740 1575 01:11:21,740 --> 01:11:27,760 Float is gewoon een manier to-- dit is echt grappig, want toen ik voor het eerst leerde 1576 01:11:27,760 --> 01:11:32,320 om terug te programmeren in de dag met Python, het eerste programma dat ik ooit 1577 01:11:32,320 --> 01:11:37,480 geprobeerd om te schrijven, zag ik dat er een soort genoemd in en een type genaamd float. 1578 01:11:37,480 --> 01:11:39,800 En de float was voor alle reële getallen. 1579 01:11:39,800 --> 01:11:43,290 Dus toen vroeg ik waarom zou Ik ooit een int gebruiken dan? 1580 01:11:43,290 --> 01:11:45,590 Want als ik alles kan gebruiken reële getallen met een vlotter, 1581 01:11:45,590 --> 01:11:47,120 Ik zou gewoon stoppen met het gebruik ints, toch? 1582 01:11:47,120 --> 01:11:49,550 Omdat reële getallen zijn net als meer generiek. 1583 01:11:49,550 --> 01:11:51,820 1584 01:11:51,820 --> 01:11:54,060 >> Het blijkt dat dit niet het geval computers 1585 01:11:54,060 --> 01:11:58,480 omdat ze in wezen verschillende dingen. 1586 01:11:58,480 --> 01:12:01,470 Dus integers en floats, de handelingen die je doet om ze te 1587 01:12:01,470 --> 01:12:04,739 wezenlijk verschillend omdat van de manier waarop ze zijn opgeslagen, OK? 1588 01:12:04,739 --> 01:12:07,280 We gaan een beetje praten wat meer over dat in een tweede. 1589 01:12:07,280 --> 01:12:09,110 >> Dus dubbel is gewoon een groter float. 1590 01:12:09,110 --> 01:12:12,830 Meestal in de meeste systemen, een vlotter is vier bytes, net als een int. 1591 01:12:12,830 --> 01:12:15,440 En een dubbele is acht bytes. 1592 01:12:15,440 --> 01:12:21,450 Een lange lange is eigenlijk alleen maar een symbool dat u toevoegen aan een type als int. 1593 01:12:21,450 --> 01:12:24,040 U zegt long long int als deze. 1594 01:12:24,040 --> 01:12:28,550 Lang lang int x om het langer te maken. 1595 01:12:28,550 --> 01:12:32,310 Dus in de meeste systemen, dat zal geven acht bytes in plaats van de gebruikelijke vier. 1596 01:12:32,310 --> 01:12:35,620 En kun je eigenlijk laten vallen van de in, zodat het net lang lang kan zeggen, 1597 01:12:35,620 --> 01:12:37,240 en dat werkt ook, OK? 1598 01:12:37,240 --> 01:12:42,850 U kunt ook andere dingen doen, zoals unsigned int, of weer gewoon unsigned 1599 01:12:42,850 --> 01:12:43,680 ook zou werken. 1600 01:12:43,680 --> 01:12:49,370 En dat zou x zijn een variabele zoals alles is positief, 1601 01:12:49,370 --> 01:12:53,231 dus je kunt niet echt negatief nummers op de manier die we zagen hier. 1602 01:12:53,231 --> 01:12:56,484 1603 01:12:56,484 --> 01:12:58,650 Dus volgende prachtige floating point en precisie. 1604 01:12:58,650 --> 01:13:01,890 Dat is een van de redenen waarom u willen ints in plaats van praalwagens gebruiken, 1605 01:13:01,890 --> 01:13:04,370 omdat ints zijn 100% nauwkeurig, toch? 1606 01:13:04,370 --> 01:13:06,170 Het is precies dat nummer. 1607 01:13:06,170 --> 01:13:11,910 Voor drijvende punten, als je zeggen antwoord is gelijk aan 1 op 10-- 1608 01:13:11,910 --> 01:13:14,690 Ik ben toevallig deze exacte hebben programma hier, float.c. 1609 01:13:14,690 --> 01:13:16,390 1610 01:13:16,390 --> 01:13:19,420 Dat drukt tot 20 cijfers achter de komma. 1611 01:13:19,420 --> 01:13:23,270 1 gedeeld door 10, en dat meestal is 0,1, toch? 1612 01:13:23,270 --> 01:13:27,910 Maar hier, als we te maken zweven en dan lopen we het, 1613 01:13:27,910 --> 01:13:30,320 zien we dat het is precies 0.1 niet. 1614 01:13:30,320 --> 01:13:33,570 Het is 0,149 iets. 1615 01:13:33,570 --> 01:13:35,570 >> En waarom is dat? 1616 01:13:35,570 --> 01:13:40,390 Want je kunt niet echt elke vertegenwoordigen enkel mogelijk reëel getal in het geheugen 1617 01:13:40,390 --> 01:13:42,730 omdat er ontelbaar velen van hen. 1618 01:13:42,730 --> 01:13:48,360 We zijn dus technisch gezien alleen in staat om vormen een eindige hoeveelheid daarvan 1619 01:13:48,360 --> 01:13:50,470 met een beperkte hoeveelheid gegevens. 1620 01:13:50,470 --> 01:13:52,050 Maar het is echt interessant. 1621 01:13:52,050 --> 01:13:54,920 Nu dit roept de vraag hoe je dat zou 1622 01:13:54,920 --> 01:13:59,299 gaan vertegenwoordigen dit met bits, toch? 1623 01:13:59,299 --> 01:14:00,340 Dus hoe zijn praalwagens opgeslagen? 1624 01:14:00,340 --> 01:14:01,970 1625 01:14:01,970 --> 01:14:03,730 Met gehele getallen was het gemakkelijk. 1626 01:14:03,730 --> 01:14:06,690 Maar met praalwagens je wilt om het bereik te maximaliseren, 1627 01:14:06,690 --> 01:14:10,530 en je wilt in staat zijn om te vertegenwoordigen enorme aantallen en zeer kleine getallen zoals 1628 01:14:10,530 --> 01:14:14,210 0.000001 tegelijkertijd. 1629 01:14:14,210 --> 01:14:15,180 Dus nogmaals, hetzelfde spel. 1630 01:14:15,180 --> 01:14:20,470 Heeft iemand enig idee hoe we konden gaan vertegenwoordigen float in het geheugen? 1631 01:14:20,470 --> 01:14:26,820 1632 01:14:26,820 --> 01:14:27,970 Gooi alles. 1633 01:14:27,970 --> 01:14:29,930 1634 01:14:29,930 --> 01:14:30,856 Ja, graag. 1635 01:14:30,856 --> 01:14:33,552 >> Publiek: [onverstaanbaar] als als het was twee ints en één 1636 01:14:33,552 --> 01:14:36,890 zijnde de [onverstaanbaar] en één wezen alles na de komma. 1637 01:14:36,890 --> 01:14:37,640 GABRIEL: OK, cool. 1638 01:14:37,640 --> 01:14:40,300 Dus twee verschillende gehele getallen. 1639 01:14:40,300 --> 01:14:45,260 U kunt 12.45, dus dat is 12 en 45. 1640 01:14:45,260 --> 01:14:45,890 Nice. 1641 01:14:45,890 --> 01:14:46,973 Wat waren wondermooi ga je zeggen? 1642 01:14:46,973 --> 01:14:48,420 1643 01:14:48,420 --> 01:14:49,430 Het zelfde ding? 1644 01:14:49,430 --> 01:14:49,930 Yeah? 1645 01:14:49,930 --> 01:14:55,630 >> Publiek: [onverstaanbaar] notatie waar u scheiden de basis. 1646 01:14:55,630 --> 01:14:58,910 >> GABRIEL: De wetenschappelijke notatie, ja dat is meestal wat er gebeurt. 1647 01:14:58,910 --> 01:15:01,350 Dus dit is wat de mantisse genoemd. 1648 01:15:01,350 --> 01:15:06,490 Dat is wat is eigenlijk de nummer en de exponent 1649 01:15:06,490 --> 01:15:08,780 is precies waar de komma is, toch? 1650 01:15:08,780 --> 01:15:13,720 Dus dit gaat iets te zijn van de vorm 1, 2, 3, 4, 5 keer 10 1651 01:15:13,720 --> 01:15:15,000 de minus 4. 1652 01:15:15,000 --> 01:15:17,800 Ik besefte dat-- ja, precies. 1653 01:15:17,800 --> 01:15:23,372 En dan deze 10 tot de min 4 gaan bepalen waar de komma is, OK? 1654 01:15:23,372 --> 01:15:24,330 In Brazilië gebruiken we komma. 1655 01:15:24,330 --> 01:15:26,795 Hier gebruiken jullie een punt. 1656 01:15:26,795 --> 01:15:27,640 Dus een punt. 1657 01:15:27,640 --> 01:15:28,860 1658 01:15:28,860 --> 01:15:34,840 >> En dit is cool, want dan kun je richten veel van je stukjes op deze kerel 1659 01:15:34,840 --> 01:15:40,863 Hier, op de mantisse, en dan is dat gaat om uw daadwerkelijke precisie zijn. 1660 01:15:40,863 --> 01:15:41,920 1661 01:15:41,920 --> 01:15:47,175 En u kunt dit doen in decimale of in het binaire systeem. 1662 01:15:47,175 --> 01:15:49,781 Er zijn verschillende manieren om dit te implementeren. 1663 01:15:49,781 --> 01:15:50,280 Vragen? 1664 01:15:50,280 --> 01:15:55,918 1665 01:15:55,918 --> 01:15:56,418 Ja? 1666 01:15:56,418 --> 01:15:57,508 1667 01:15:57,508 --> 01:15:59,841 Publiek: Hoeveel plaatsen na de komma [onverstaanbaar]? 1668 01:15:59,841 --> 01:16:05,240 1669 01:16:05,240 --> 01:16:12,610 >> GABRIEL: Dat is een ingewikkelde vraag, want het is nooit echt 100% nauwkeurig, 1670 01:16:12,610 --> 01:16:15,680 want zoals u hier, voor zien sommige nummers is het 100% nauwkeurig. 1671 01:16:15,680 --> 01:16:20,350 Ik geloof dat als we 0,5 hier, het gaat 100% om precies te zijn. 1672 01:16:20,350 --> 01:16:22,220 Het gaat zijn 0,500000. 1673 01:16:22,220 --> 01:16:24,170 Dus in dat geval, is het perfect. 1674 01:16:24,170 --> 01:16:27,330 Maar in andere gevallen, het is veel minder perfect. 1675 01:16:27,330 --> 01:16:35,010 In mijn ervaring, zoals maximaal vier, vijf cijfers achter de komma is vrij nauwkeurig. 1676 01:16:35,010 --> 01:16:38,300 Als je een dubbel gebruik, het gaat om zijn manier nauwkeuriger dan dat, OK? 1677 01:16:38,300 --> 01:16:42,750 >> ROB BOWDEN: Dus gewoon om te gooien wat meer context op drijvers, 1678 01:16:42,750 --> 01:16:46,320 Ik herinner me nog nooit 100% hoe de spec van praalwagens echt werkt, 1679 01:16:46,320 --> 01:16:52,660 maar ik heb je altijd onthouden dat praalwagens begint steeds rommelig. 1680 01:16:52,660 --> 01:16:55,460 1681 01:16:55,460 --> 01:17:00,930 Dus het idee is dat als je echt, echt grote aantallen of echt, echt 1682 01:17:00,930 --> 01:17:03,470 kleine aantallen, we beginnen erger en erger 1683 01:17:03,470 --> 01:17:05,860 bij het differentiëren tussen twee dicht praalwagens. 1684 01:17:05,860 --> 01:17:09,180 >> Dus hoe ik te denken over is met floating point onnauwkeurigheid, 1685 01:17:09,180 --> 01:17:11,890 er zijn twee praalwagens die als ik probeer ze te specificeren 1686 01:17:11,890 --> 01:17:15,150 in C, hoewel ze verschillende nummers, 1687 01:17:15,150 --> 01:17:17,340 ze gaan worden opgevat als even, 1688 01:17:17,340 --> 01:17:19,006 want we kunnen ze niet anders op te slaan. 1689 01:17:19,006 --> 01:17:20,540 We moeten dezelfde stukjes gebruiken. 1690 01:17:20,540 --> 01:17:23,220 En dus als we in echt, echt grote aantallen, 1691 01:17:23,220 --> 01:17:28,460 praten als 10 op de 300 of iets, het op dat moment 1692 01:17:28,460 --> 01:17:33,240 dat 10 tot 300 of 5 maal 10 tot 300 1693 01:17:33,240 --> 01:17:37,020 kan niet worden onderscheiden 7 maal 10 tot 300. 1694 01:17:37,020 --> 01:17:39,660 Dus dat is een vrij groot verschil tussen de twee nummers. 1695 01:17:39,660 --> 01:17:43,830 >> Maar dan wanneer je naar beneden tot het normale bereik dingen, 1696 01:17:43,830 --> 01:17:45,770 je de neiging om behoorlijk te zijn goed in differentiëren. 1697 01:17:45,770 --> 01:17:49,020 En dan wanneer je naar beneden echt klein, je bent ook weer al behoorlijk slecht. 1698 01:17:49,020 --> 01:17:52,529 Dus net als een hele hoop 0.0000, wordt het behoorlijk slecht. 1699 01:17:52,529 --> 01:17:53,820 GABRIEL: Ja, dus een snelle notitie. 1700 01:17:53,820 --> 01:17:54,670 Dit doen nooit. 1701 01:17:54,670 --> 01:17:57,590 Probeer nooit om te vergelijken drijft met behulp van gelijken gelijken, 1702 01:17:57,590 --> 01:18:02,800 want zelfs als ze bijna de Hetzelfde bijna hetzelfde is niet hetzelfde. 1703 01:18:02,800 --> 01:18:06,360 Dus wat je meestal doen is je aftrekken ze neemt de absolute waarde van dat, 1704 01:18:06,360 --> 01:18:12,380 en kijk of dat is kleiner dan 0.0001 of iets dergelijks, OK? 1705 01:18:12,380 --> 01:18:12,880 En koel. 1706 01:18:12,880 --> 01:18:16,630 Ik weet dat veel mensen hebben wat achtergrond in Java, 1707 01:18:16,630 --> 01:18:19,700 vooral degenen die wel AP informatica, toch? 1708 01:18:19,700 --> 01:18:23,630 En Java is een taal die meestal gebaseerd op C, 1709 01:18:23,630 --> 01:18:26,570 het heeft een paar zeer grote verschillen. 1710 01:18:26,570 --> 01:18:31,430 Maar voor loops en ifs, en dat soort dingen dat, ze zijn allemaal hetzelfde syntax. 1711 01:18:31,430 --> 01:18:35,240 Ik heb een paar programma's hier om deze te tonen. 1712 01:18:35,240 --> 01:18:37,050 >> Dus bijvoorbeeld, een eenvoudige hello wereld. 1713 01:18:37,050 --> 01:18:43,140 1714 01:18:43,140 --> 01:18:46,600 Dit is hallo wereld in C, die u jongens zijn zeker vertrouwd met, 1715 01:18:46,600 --> 01:18:49,100 en deze en deze is in Java. 1716 01:18:49,100 --> 01:18:53,100 Dus in Java hebben we dit public class, hallo wereld, 1717 01:18:53,100 --> 01:18:57,050 en openbare static void belangrijkste, en string args. 1718 01:18:57,050 --> 01:18:59,665 De string args gaan te verschijnen in C zeer binnenkort. 1719 01:18:59,665 --> 01:19:00,740 1720 01:19:00,740 --> 01:19:01,990 Maar laten we er nog niet heen. 1721 01:19:01,990 --> 01:19:06,060 Op dit moment hebben we leegte hier, wat betekent dat hoofd is geen argumenten nemen. 1722 01:19:06,060 --> 01:19:09,220 En dan hebben we System.out.println, het en dat is 1723 01:19:09,220 --> 01:19:11,140 soort het equivalent voor printf. 1724 01:19:11,140 --> 01:19:17,150 Hier hebben we niet echt de backslash nodig n omdat afdruk ln dat voor je doet. 1725 01:19:17,150 --> 01:19:19,680 Het voegt de backslash n aan het einde van de regel. 1726 01:19:19,680 --> 01:19:22,540 1727 01:19:22,540 --> 01:19:30,415 >> Maar als je in zoiets als een voor u 1728 01:19:30,415 --> 01:19:32,590 kan zien dat ze vrij veel het zelfde ding. 1729 01:19:32,590 --> 01:19:37,390 Dus initialisatie, en de conditie, en de update 1730 01:19:37,390 --> 01:19:42,050 is-- Ik miste een ruimte hier-- ze vrijwel hetzelfde, behalve Java 1731 01:19:42,050 --> 01:19:44,430 heeft als een paar meer high level stuff. 1732 01:19:44,430 --> 01:19:46,010 1733 01:19:46,010 --> 01:19:49,610 Hier kunnen we doen plus ik en Java zal automatisch 1734 01:19:49,610 --> 01:19:52,730 maken dit ik hier, dat is een geheel getal in een reeks, 1735 01:19:52,730 --> 01:19:55,200 en voeg dan de twee strings samen. 1736 01:19:55,200 --> 01:19:57,570 Hier in C moeten we doen de &% d. 1737 01:19:57,570 --> 01:20:15,310 1738 01:20:15,310 --> 01:20:18,170 De lijn hier, de voor ziet er precies hetzelfde. 1739 01:20:18,170 --> 01:20:37,760 >> En als we kijken naar wanneer de ifs Ook zien er precies hetzelfde, toch? 1740 01:20:37,760 --> 01:20:39,290 1741 01:20:39,290 --> 01:20:44,650 Dus de echte grote verschillen zijn in die dingen die je hier ziet. 1742 01:20:44,650 --> 01:20:47,530 Public static, leegte, en vervolgens public class indien. 1743 01:20:47,530 --> 01:20:48,990 1744 01:20:48,990 --> 01:20:52,360 Dus Java heeft wat is zogenaamde virtuele machine. 1745 01:20:52,360 --> 01:20:53,560 1746 01:20:53,560 --> 01:21:00,150 En het is zeer sterk gebaseerd op wat heet object georiënteerd programmeren, 1747 01:21:00,150 --> 01:21:04,120 dat is een zeer, zeer vaak paradigma voor het programmeren tegenwoordig. 1748 01:21:04,120 --> 01:21:10,870 En deze klasse ding is wat je ziet, iets van object-oriëntatie, 1749 01:21:10,870 --> 01:21:14,214 wordt u een klasse te maken en dan moet je kunnen objecten uit die klasse ontlenen. 1750 01:21:14,214 --> 01:21:16,380 We gaan niet om te praten veel over dat in CS50, 1751 01:21:16,380 --> 01:21:18,213 maar dat is zeker iets echt cool, 1752 01:21:18,213 --> 01:21:21,440 vooral als je wilt in te gaan meer geavanceerde web development 1753 01:21:21,440 --> 01:21:24,050 aan het einde van de cursus als stuur je afstudeerproject 1754 01:21:24,050 --> 01:21:26,430 en een aantal leuke kaders en stuff. 1755 01:21:26,430 --> 01:21:31,250 >> Dus eigenlijk het idee is dat je wil niet opnieuw te implementeren iets, 1756 01:21:31,250 --> 01:21:36,330 zodat je iets dat te maken zeer generiek, zoals de vorm, 1757 01:21:36,330 --> 01:21:38,310 en dan heb je te maken verschillende vormen van het, 1758 01:21:38,310 --> 01:21:40,240 en dan uit elk van deze vormen, die u maakt 1759 01:21:40,240 --> 01:21:45,110 specifiekere vormen in drie afmetingen of iets dergelijks. 1760 01:21:45,110 --> 01:21:48,799 En ze hebben deze hiërarchie ze erven van de andere, zodat 1761 01:21:48,799 --> 01:21:51,840 alle functies en variabelen zijn die de grote vorm heeft hier, al deze 1762 01:21:51,840 --> 01:21:54,110 gaat hebben, en al deze zijn gaan, enzovoort, enzovoort hebben. 1763 01:21:54,110 --> 01:21:55,640 Dus dat is het basisidee. 1764 01:21:55,640 --> 01:21:59,170 >> C niet hebben dat, maar C ++ heeft dat soort functie. 1765 01:21:59,170 --> 01:22:02,710 En Java is sterk beïnvloed door object-oriëntatie, 1766 01:22:02,710 --> 01:22:05,310 dus dat is de reden waarom zie je klasse hier de hele tijd. 1767 01:22:05,310 --> 01:22:10,790 En de andere is Deze Java virtual machine. 1768 01:22:10,790 --> 01:22:13,790 Dus dit, denk ik, is een heel slim idee. 1769 01:22:13,790 --> 01:22:17,020 Dus wat de mensen die uitgevonden java deed is 1770 01:22:17,020 --> 01:22:19,630 ze wilde niet hun code tweemaal compileren 1771 01:22:19,630 --> 01:22:23,990 als ze het uit te voeren in een Windows, of een Mac, of Linux, dus wat ze doen 1772 01:22:23,990 --> 01:22:26,740 wordt ze letterlijk rennen iets als het apparaat, 1773 01:22:26,740 --> 01:22:29,630 maar je niet echt zien gebeuren. 1774 01:22:29,630 --> 01:22:32,430 Zodat ze een virtuele machine te laten draaien binnenkant van uw computer, die 1775 01:22:32,430 --> 01:22:34,940 is in principe net als een mini-besturingssysteem. 1776 01:22:34,940 --> 01:22:37,920 En dat besturingssysteem het doel van het systeem in het leven 1777 01:22:37,920 --> 01:22:41,430 is gewoon om te draaien wat byte code genoemd. 1778 01:22:41,430 --> 01:22:47,411 >> Dus in plaats van in C, de weg zouden we compileren is dit te maken als en voer 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 Ik vergat de backslash in. 1782 01:22:55,290 --> 01:23:00,240 In Java, zou je eerst doen Java C om het te compileren, if.c. 1783 01:23:00,240 --> 01:23:06,440 1784 01:23:06,440 --> 01:23:08,252 Het is niet C. Het is dot java. 1785 01:23:08,252 --> 01:23:09,460 1786 01:23:09,460 --> 01:23:12,140 En dan moet je rennen niet ./. 1787 01:23:12,140 --> 01:23:15,440 U krijgt dit nieuwe bestand if.class, maar je kunt niet echt 1788 01:23:15,440 --> 01:23:17,980 run if.class nu net zoals we voorheen. 1789 01:23:17,980 --> 01:23:19,440 Dit is niet uitvoerbaar. 1790 01:23:19,440 --> 01:23:20,630 Je moet rennen. 1791 01:23:20,630 --> 01:23:23,410 Je moet het worden meegenomen in een programma genaamd Java, 1792 01:23:23,410 --> 01:23:28,260 en dat programma de virtuele machine, en dan doe je if.class, of indien. 1793 01:23:28,260 --> 01:23:28,760 Ja. 1794 01:23:28,760 --> 01:23:30,890 En dan werkt het. 1795 01:23:30,890 --> 01:23:33,740 OK dus dit is een soort van de virtuele machine gebeurt. 1796 01:23:33,740 --> 01:23:37,700 C heeft dat niet, dus als ik zet dit programma op een Windows-machine, 1797 01:23:37,700 --> 01:23:40,516 het zou niet werken in C. In Java het doet. 1798 01:23:40,516 --> 01:23:41,015 Vragen? 1799 01:23:41,015 --> 01:23:43,430 1800 01:23:43,430 --> 01:23:44,030 Cool. 1801 01:23:44,030 --> 01:23:47,160 Dat is als voor de super sectie voor vandaag. 1802 01:23:47,160 --> 01:23:49,462