1 00:00:00,000 --> 00:00:12,510 2 00:00:12,510 --> 00:00:13,870 >> ROB: Dobre. 3 00:00:13,870 --> 00:00:16,770 Vitajte v prvej časti. 4 00:00:16,770 --> 00:00:17,480 Som Rob. 5 00:00:17,480 --> 00:00:18,806 >> JOSEPH: Ja som Jozef. 6 00:00:18,806 --> 00:00:21,540 >> ROB: Takže budeme ponoriť dovnútra 7 00:00:21,540 --> 00:00:23,420 Prvá vec, hovoriť o tom, Je zariadenie. 8 00:00:23,420 --> 00:00:27,150 Takže dúfajme, že väčšina z vás má stiahli už. 9 00:00:27,150 --> 00:00:37,180 Ale môžete vidieť podľa pokynov na cs50.net/appliance. 10 00:00:37,180 --> 00:00:38,430 Ach bože, teraz som rozpačitý. 11 00:00:38,430 --> 00:00:44,590 12 00:00:44,590 --> 00:00:45,430 Stále počujem. 13 00:00:45,430 --> 00:00:47,232 >> JOSEPH: Wow, to znie ako to je dezorientovaný. 14 00:00:47,232 --> 00:00:52,460 >> ROB: Takže niektorí ľudia majú problémy s ním, takže sa nemusíte čakať, až 15 00:00:52,460 --> 00:00:54,940 last minute problému nastavený na pokúsiť vyriešiť Appliance a 16 00:00:54,940 --> 00:00:56,320 zistil, že to nefunguje. 17 00:00:56,320 --> 00:00:59,010 >> JOSEPH: A keď niečo nefunguje a budete potrebovať pomoc, môžete prejsť na 18 00:00:59,010 --> 00:01:03,390 cs50.net/discussion kde sme mať fórum, kde sa 19 00:01:03,390 --> 00:01:04,110 môžete písať svoje otázky. 20 00:01:04,110 --> 00:01:06,655 A my sa k nim nakoniec. 21 00:01:06,655 --> 00:01:07,490 >> ROB: Dobre. 22 00:01:07,490 --> 00:01:12,180 Tak toto je to, čo zariadenie vyzerá. 23 00:01:12,180 --> 00:01:15,480 Opäť, je to len úplne oddelené operačný systém beží v rámci 24 00:01:15,480 --> 00:01:19,440 bez ohľadu na operačný systém beží na vašom notebooku. 25 00:01:19,440 --> 00:01:24,450 A hlavné vecí, ktoré budete používať je gedit. 26 00:01:24,450 --> 00:01:28,050 Tak dúfajme, že to má už stala známou stránky. 27 00:01:28,050 --> 00:01:29,470 Terminál. 28 00:01:29,470 --> 00:01:31,890 >> A môžete tiež spustiť Chrome vnútri spotrebiča. 29 00:01:31,890 --> 00:01:33,860 Tam bolo niekoľko ľudí, ktorí hlásili k internetu 30 00:01:33,860 --> 00:01:35,390 nefunguje v Appliance. 31 00:01:35,390 --> 00:01:38,090 A niektorí z nich jednoducho predpokladať, že sa nepredpokladá, že 32 00:01:38,090 --> 00:01:39,190 internet v Appliance. 33 00:01:39,190 --> 00:01:40,750 Ale áno, tam sa predpokladá, byť internet. 34 00:01:40,750 --> 00:01:44,000 35 00:01:44,000 --> 00:01:46,410 >> Poviem to hneď, ale to nie je naozaj nič neznamená. 36 00:01:46,410 --> 00:01:50,680 Ak internet nefunguje, To je to, čo majú tendenciu potrebovať 37 00:01:50,680 --> 00:01:52,180 spustiť ho opraviť. 38 00:01:52,180 --> 00:01:55,602 Ak máte problémy internete, nie Pamätám si to, stačí poslať ho na 39 00:01:55,602 --> 00:01:57,560 Diskutujte, a budeme hovoriť, že beží. 40 00:01:57,560 --> 00:02:00,420 Ale internet je potrebné pracovať. 41 00:02:00,420 --> 00:02:06,650 >> Takže jediná vec - jo, nič inak je naozaj dôležité. 42 00:02:06,650 --> 00:02:08,979 Ale ja som len chcel poukázať na to, že - 43 00:02:08,979 --> 00:02:13,290 pozri v tomto pravom dolnom rohu. 44 00:02:13,290 --> 00:02:16,530 Takže každý z vašich zariadení by mať IP adresu. 45 00:02:16,530 --> 00:02:22,350 A neskôr v semestri, to IP adresa bude vhodnejšie, keď 46 00:02:22,350 --> 00:02:27,230 pracujete na webovej p-set, pretože budete mať prístup 47 00:02:27,230 --> 00:02:32,310 Webové stránky, na ktorom pracujete zo svojho miestnej Chrome pomocou tejto IP adresy. 48 00:02:32,310 --> 00:02:35,400 >> Ale to, čo som chcel použiť IP adresu pre - a nemusíte to robiť, som 49 00:02:35,400 --> 00:02:37,460 Len chcem poukázať na to - 50 00:02:37,460 --> 00:02:39,540 je tu. 51 00:02:39,540 --> 00:02:42,910 Tak toto je okno terminálu na môj Mac, to nie je 52 00:02:42,910 --> 00:02:44,580 Spotrebič vôbec. 53 00:02:44,580 --> 00:02:47,190 A môžete sa pozrieť do toho, čo Tento príkaz robí. 54 00:02:47,190 --> 00:02:51,855 Ale ja idem na SSH priamo k môjmu Appliance. 55 00:02:51,855 --> 00:02:53,410 Ja neviem, čo je IP. 56 00:02:53,410 --> 00:02:54,300 >> JOSEPH: 168 - 57 00:02:54,300 --> 00:02:56,080 >> 168.224.1.0. 58 00:02:56,080 --> 00:02:59,950 >> ROB: Takže akonáhle som urobil s tým, prihlásiť 59 00:02:59,950 --> 00:03:05,450 Teraz, v podstate, to je totožný s okno terminálu v mojom Appliance. 60 00:03:05,450 --> 00:03:10,280 Takže som skoro nikdy skutočne odpracované zvnútra spotrebiča samotného. 61 00:03:10,280 --> 00:03:12,550 Vždy som si to beží v pozadí minimalizovanom 62 00:03:12,550 --> 00:03:15,890 a SSHed do neho. 63 00:03:15,890 --> 00:03:24,270 >> Problém s týmto je, že nebudete , Aby bolo možné použiť gedit ľahko 64 00:03:24,270 --> 00:03:25,600 priamo z tohto. 65 00:03:25,600 --> 00:03:31,500 Ale ak chcete byť naozaj v pohode hacker, potom by ste mali zvyknúť na 66 00:03:31,500 --> 00:03:34,220 príkazového riadku, textový editor rovnako. 67 00:03:34,220 --> 00:03:39,620 Takže Vim a Emacs a Nano, všetky z nich sú rôzne alternatívy. 68 00:03:39,620 --> 00:03:41,560 Nano má tendenciu byť najjednoduchšie. 69 00:03:41,560 --> 00:03:45,006 A myslím, že to nemá žiadny zvýrazňovanie syntaxe. 70 00:03:45,006 --> 00:03:47,620 Oh, nie, je to úplne robí. 71 00:03:47,620 --> 00:03:49,870 Takže môžete použiť Nano, pretože že jeden je celkom jednoduché. 72 00:03:49,870 --> 00:03:52,000 >> Vidíte všetky tieto príkazy v spodnej časti. 73 00:03:52,000 --> 00:03:54,750 Táto malá mrkva symbol. 74 00:03:54,750 --> 00:03:57,620 Ak ste ešte nevideli, budete si musieť vybrať pravdepodobne vidieť to teraz veľa. 75 00:03:57,620 --> 00:04:02,350 To všeobecne znamená, že ovládacie mrkva, ako dolnej ľavej časti klávesnice 76 00:04:02,350 --> 00:04:04,130 riadiaci znak. 77 00:04:04,130 --> 00:04:07,260 Tak tu to mi hovorí, sem - 78 00:04:07,260 --> 00:04:08,710 oh, to nie je orezaný, ak som zoom palcov 79 00:04:08,710 --> 00:04:11,040 Takže Control, X je, ako Chystám sa ukončiť. 80 00:04:11,040 --> 00:04:14,710 A to hovorí, že môže zasiahnuť Y pre Áno, pre ukladanie, N pre Nie. 81 00:04:14,710 --> 00:04:17,190 Tak to je Nano. 82 00:04:17,190 --> 00:04:22,860 >> Vim a Emacs majú tendenciu byť o niečo viac zložité a ohromujúci. 83 00:04:22,860 --> 00:04:28,840 Ale môžete sa na to zvyknúť, a potom sa budete milovať. 84 00:04:28,840 --> 00:04:30,590 Tak to je to. 85 00:04:30,590 --> 00:04:31,720 >> JOSEPH: Nie je potreba to urobiť. 86 00:04:31,720 --> 00:04:31,840 >> ROB: Jo. 87 00:04:31,840 --> 00:04:37,510 Tie sú zadarmo k použitie gedit pre Zostávajúca časť semestra. 88 00:04:37,510 --> 00:04:40,630 Takže nejaké otázky spotrebič súvisiace? 89 00:04:40,630 --> 00:04:42,820 Alebo máte nejaké myšlienky na to, čo iného Treba hovorí o 90 00:04:42,820 --> 00:04:43,610 spotrebič? 91 00:04:43,610 --> 00:04:43,996 Áno. 92 00:04:43,996 --> 00:04:47,720 >> SPEAKER 1: Keď SSHed do svojej vec, bolo heslo Crimson? 93 00:04:47,720 --> 00:04:48,390 >> ROB: Jo. 94 00:04:48,390 --> 00:04:50,170 Heslo pre skoro všetko v prístroji sa deje 95 00:04:50,170 --> 00:04:52,473 byť Crimson. 96 00:04:52,473 --> 00:04:56,517 >> SPEAKER 2: Inštalácia ako skutočný IDE na zariadenie, bude to fungovať? 97 00:04:56,517 --> 00:04:59,200 98 00:04:59,200 --> 00:05:07,290 >> ROB: Viem si predstaviť, Eclipse má mať Fedora verzia, v tom prípade, áno, 99 00:05:07,290 --> 00:05:08,420 môžete to urobiť. 100 00:05:08,420 --> 00:05:10,875 Je to asi nie je naozaj stojí za to. 101 00:05:10,875 --> 00:05:11,742 >> SPEAKER 2: OK. 102 00:05:11,742 --> 00:05:15,924 Takže je to asi jednoduchšie, keď som chcel, aby používať Eclipse, stačí použiť natívne a 103 00:05:15,924 --> 00:05:17,646 potom nahrať do - 104 00:05:17,646 --> 00:05:21,090 >> ROB: Oh, to je tiež asi jednoduchšie. 105 00:05:21,090 --> 00:05:24,046 Ale môžete si to pracovať vnútri spotrebiča. 106 00:05:24,046 --> 00:05:27,740 >> JOSEPH: A pre kameru, otázka bolo, môžete nainštalovať ďalšie 107 00:05:27,740 --> 00:05:29,490 IDE vnútri spotrebiča? 108 00:05:29,490 --> 00:05:31,520 >> ROB: Eclipse je Príkladom IDE. 109 00:05:31,520 --> 00:05:34,800 110 00:05:34,800 --> 00:05:36,050 Nejaké ďalšie otázky spotrebičov? 111 00:05:36,050 --> 00:05:38,250 112 00:05:38,250 --> 00:05:38,680 Dobrá. 113 00:05:38,680 --> 00:05:44,920 >> Takže teraz budeme pohybovať na príkazovom riadku veci rozhrania súvisiace, tak CLI. 114 00:05:44,920 --> 00:05:47,990 A opäť, ja som jednoducho ísť do práce v tu, pretože je totožný s 115 00:05:47,990 --> 00:05:52,780 prácu v terminálovom okne vnútri spotrebiča. 116 00:05:52,780 --> 00:05:54,160 Ako to, že písmo hľadáte? 117 00:05:54,160 --> 00:05:55,970 Je to dosť veľká? 118 00:05:55,970 --> 00:05:57,000 Dobrá. 119 00:05:57,000 --> 00:06:02,480 >> Takže existuje veľa príkazov, ktoré mali by ste si celkom používa pre 120 00:06:02,480 --> 00:06:04,490 v priebehu semestra. 121 00:06:04,490 --> 00:06:09,480 Veľký dva pre navigáciu sú ls, zoznam Súbory v tomto adresári, a 122 00:06:09,480 --> 00:06:11,380 cd, tak zmeňte adresár. 123 00:06:11,380 --> 00:06:18,390 Tak som sa môže zmeniť na plochu a potom veľmi časté vzor je cd na 124 00:06:18,390 --> 00:06:22,550 adresára a okamžite ls to, čo je v adresári. 125 00:06:22,550 --> 00:06:25,540 >> Ľudia tiež často neuvedomujú, že dokončenie Tab je vec. 126 00:06:25,540 --> 00:06:28,370 Tak ako CD, VH, a potom som narazila Tab. 127 00:06:28,370 --> 00:06:30,790 Takmer nikdy som písať z Celá vec. 128 00:06:30,790 --> 00:06:32,920 A potom keď som držať biť Tab znovu, bude to automaticky 129 00:06:32,920 --> 00:06:33,670 spustiť výpis na mňa. 130 00:06:33,670 --> 00:06:37,000 Takže môžem cd vhosts, miestneho hostiteľa. 131 00:06:37,000 --> 00:06:39,880 A to len tak - 132 00:06:39,880 --> 00:06:43,380 V prípade, že ste počuli termín predtým, adresár je len iné slovo 133 00:06:43,380 --> 00:06:45,170 pre zložku. 134 00:06:45,170 --> 00:06:49,930 Takže teraz, ak ste vidieť - 135 00:06:49,930 --> 00:06:51,810 Poďme priniesť, že na vrchol. 136 00:06:51,810 --> 00:06:55,380 >> Takže teraz, ak vidíte v zátvorke, môžete vidieť malé vlnovka, lomítko, vhost, 137 00:06:55,380 --> 00:06:56,810 lomka, miestneho hostiteľa. 138 00:06:56,810 --> 00:07:00,040 Takže vlnovka, ktorá sa týka do môjho domovského adresára. 139 00:07:00,040 --> 00:07:03,090 Je to adresár, ktorý ste , Keď ste SSH palcov 140 00:07:03,090 --> 00:07:05,660 Je to adresár si, keď môžete otvoriť terminál. 141 00:07:05,660 --> 00:07:08,650 Je to miesto, kde začnete. 142 00:07:08,650 --> 00:07:13,110 A tak som vo vnútri môjho domovského adresára, a ja som vnútri vhost 143 00:07:13,110 --> 00:07:14,475 adresár vnútri môjho domovského adresára. 144 00:07:14,475 --> 00:07:19,670 A potom som vnútri miestnej hostiť adresár vnútri, že. 145 00:07:19,670 --> 00:07:23,740 >> Takže niektoré ďalšie užitočné veci s cd - 146 00:07:23,740 --> 00:07:29,220 alebo dobre, všeobecne, tak dot vždy odkazuje na aktuálny adresár. 147 00:07:29,220 --> 00:07:31,130 Cd, bodka je celkom bezcenný príkaz. 148 00:07:31,130 --> 00:07:35,150 Ale to sa mení na aktuálny adresár. 149 00:07:35,150 --> 00:07:38,230 Užitočnejšie jedna, pokiaľ ide o cd je bodka, bodka, čo je 150 00:07:38,230 --> 00:07:40,220 stačí ísť do jedného adresára. 151 00:07:40,220 --> 00:07:43,360 >> A všimnite si, že tieto - 152 00:07:43,360 --> 00:07:48,610 Chcem povedať, aliasy, ale títo symboly, bodka, a bodka, bodka, tie práce 153 00:07:48,610 --> 00:07:51,740 pre skoro akýkoľvek príkaz, ktorú ste bude myslieť na beh. 154 00:07:51,740 --> 00:07:55,370 Tak ako cd je pravdepodobne, kde budete použitie najviac, ale tie nie sú 155 00:07:55,370 --> 00:07:56,780 veci, ktoré jednoducho cd rozumie. 156 00:07:56,780 --> 00:07:59,980 Je to v podstate niečo, čo vaša celá príkazového riadku chápe. 157 00:07:59,980 --> 00:08:01,932 Mnoho programov pochopiť bodka a bodka, bodka. 158 00:08:01,932 --> 00:08:04,830 159 00:08:04,830 --> 00:08:09,090 >> Takže ďalšie užitočné ty - CD, pomlčka. 160 00:08:09,090 --> 00:08:13,460 Tak, že sa chystá priviesť ma posledný adresár, ktorý som dovnútra 161 00:08:13,460 --> 00:08:15,980 Takže niekedy budem robiť niečo ako, oh, ja pracujem tu. 162 00:08:15,980 --> 00:08:21,110 A vidím nejakú chybu s niečím, a Ja pôjdem preskúmať ju bude 163 00:08:21,110 --> 00:08:24,020 nejaký náhodný adresár niekde. 164 00:08:24,020 --> 00:08:25,260 A mám robiť, keď to nebudem vedieť, dovoľte mi, aby som tam. 165 00:08:25,260 --> 00:08:25,720 To bude. 166 00:08:25,720 --> 00:08:27,615 Tak som robiť, čo chcem v tomto adresári. 167 00:08:27,615 --> 00:08:28,950 Bla, bla, bla, bla, bla. 168 00:08:28,950 --> 00:08:31,770 A bol som rád, v poriadku, chcem vrátiť sa na miesto, kde som bol. 169 00:08:31,770 --> 00:08:34,490 cd, pomlčka, a to ma privádza späť. 170 00:08:34,490 --> 00:08:39,970 >> Tak idem hodiť veľa z nich na vás dnes. 171 00:08:39,970 --> 00:08:43,730 Nemyslím, že budete pamätať všetky z nich. 172 00:08:43,730 --> 00:08:46,170 Je to trochu len viem, , Že existujú. 173 00:08:46,170 --> 00:08:48,690 A potom neskôr, keď ste ako, hmm, chcem sa vrátiť do 174 00:08:48,690 --> 00:08:51,870 adresár, ktorý som bol len na, ach, počkajte, niečo také existuje. 175 00:08:51,870 --> 00:08:53,980 Nemusíte len zadať celý znova adresári. 176 00:08:53,980 --> 00:08:56,090 >> JOSEPH: A nakoniec budete len používať znovu a znovu, a 177 00:08:56,090 --> 00:08:57,830 to bude stáť svalovej pamäte. 178 00:08:57,830 --> 00:09:00,090 >> ROB: Jo. 179 00:09:00,090 --> 00:09:02,930 Tak, ako som už povedal skôr, že tilda je váš domovský adresár. 180 00:09:02,930 --> 00:09:04,820 Takže môžem cd, vlnovku. 181 00:09:04,820 --> 00:09:07,280 Ale ja nemám ani na to, že keď som - 182 00:09:07,280 --> 00:09:09,760 Vrátim sa do adresára, takže nie je to zbytočné príklad. 183 00:09:09,760 --> 00:09:14,560 Ale keď som to CD, ktoré je tiež rovnako ako, ísť do môjho domovského adresára. 184 00:09:14,560 --> 00:09:18,380 185 00:09:18,380 --> 00:09:19,880 Ja Command, K. 186 00:09:19,880 --> 00:09:24,015 >> JOSEPH: Môžete tiež zadať jasné, slovo, a mal by si ju vyčistil. 187 00:09:24,015 --> 00:09:28,650 >> ROB: A myslím, že aj ovládanie, L tiež robí. 188 00:09:28,650 --> 00:09:29,690 Takže mnoho rôznych spôsobov. 189 00:09:29,690 --> 00:09:34,070 Myslím, že tam sú niektoré rozdiely, pokiaľ jasné a riadenie, L bude len 190 00:09:34,070 --> 00:09:37,280 Naozaj ju zatlačte na hornej a Môžem stále posúvať späť. 191 00:09:37,280 --> 00:09:40,580 Príkaz, K doslova ničí všetko, a vy 192 00:09:40,580 --> 00:09:42,960 Nemožno rolovať späť hore. 193 00:09:42,960 --> 00:09:45,530 Prinajmenšom, to je ako to funguje v iTerm2. 194 00:09:45,530 --> 00:09:48,690 Neviem, ako ostatné veci - 195 00:09:48,690 --> 00:09:49,360 oh. 196 00:09:49,360 --> 00:09:55,450 >> S SSHing, takže ak ste na Windows, budete musieť stiahnuť PuTTY 197 00:09:55,450 --> 00:10:02,360 aby sa SSH, pretože Windows nie je majú ako vstavané SSH nástroja. 198 00:10:02,360 --> 00:10:06,150 Od Macs, môžete len SSH priamo z terminálového okna. 199 00:10:06,150 --> 00:10:08,755 200 00:10:08,755 --> 00:10:09,690 OK. 201 00:10:09,690 --> 00:10:11,840 Otázky? 202 00:10:11,840 --> 00:10:19,260 >> S ls, takže niečo si zvyknúť u väčšiny z týchto príkazov je - 203 00:10:19,260 --> 00:10:20,060 dobre, budem len robiť jeden. 204 00:10:20,060 --> 00:10:21,310 Sk, pomlčka, l 205 00:10:21,310 --> 00:10:26,330 Takže pomlčka, l je to, čo budeme volať vlajku ls. 206 00:10:26,330 --> 00:10:30,770 A mnoho z týchto príkazov majú vlajky ktoré môžete odovzdať na ne. 207 00:10:30,770 --> 00:10:35,020 Takže v tomto prípade, pomlčka, l je vlajka , Ktorý hovorí to, aby mi v plnej 208 00:10:35,020 --> 00:10:37,850 výpis všetkých informácií z týchto súborov. 209 00:10:37,850 --> 00:10:44,790 >> Takže tu vidíme, že desktop je zmenená 30. júla v 12:54. 210 00:10:44,790 --> 00:10:47,160 Stiahnutie bola zmenená na 6. septembra. 211 00:10:47,160 --> 00:10:52,350 Jedná sa o aktuálnej veľkosti a bajtov týchto adresárov. 212 00:10:52,350 --> 00:10:54,412 Nemusíte rozumieť To všetko. 213 00:10:54,412 --> 00:11:00,380 >> Tohle na ľavej strane, tieto drwx to, že bude oveľa viac relevantné 214 00:11:00,380 --> 00:11:02,290 neskôr, keď budete musieť vysporiadať s - 215 00:11:02,290 --> 00:11:05,900 že má čo do činenia s tým, kto má oprávnenie pozrieť sa na tieto súbory. 216 00:11:05,900 --> 00:11:09,880 A tak ak ste neboli jediným používateľom na tento počítač, mali by ste byť schopní 217 00:11:09,880 --> 00:11:13,345 povedzme, OK, ja som mala byť len jedna možnosť pozrieť sa na tento súbor, alebo som 218 00:11:13,345 --> 00:11:14,870 bude, aby všetci pozrieť sa na tento súbor. 219 00:11:14,870 --> 00:11:17,710 Takže niekto iný na mojom počítači Môžete sa pozrieť na tento súbor. 220 00:11:17,710 --> 00:11:22,190 221 00:11:22,190 --> 00:11:25,600 Ja ani neviem, čo to - čo to robiť? 222 00:11:25,600 --> 00:11:26,840 >> JOSEPH: Nie som si úplne istý, naozaj. 223 00:11:26,840 --> 00:11:27,705 >> ROB: No nápad. 224 00:11:27,705 --> 00:11:30,530 >> JOSEPH: Ale ak neviete, že je užitočné príkaz, ktorý môžete použiť 225 00:11:30,530 --> 00:11:31,680 aby tí, čo výstup znamená. 226 00:11:31,680 --> 00:11:33,780 A ak ste typ človeka pred príkazom - 227 00:11:33,780 --> 00:11:35,000 takže M-A-N. ROB: Man. 228 00:11:35,000 --> 00:11:37,690 Takže človek je ešte jeden to je veľmi užitočné. 229 00:11:37,690 --> 00:11:39,540 A človek, ls. 230 00:11:39,540 --> 00:11:47,320 Takže manuálové stránky, ktoré majú obe príkazy, ktoré budete používať 231 00:11:47,320 --> 00:11:50,330 na príkazovom riadku, a majú tiež funkcie, ktoré budú relevantné 232 00:11:50,330 --> 00:11:52,530 s C. Takže si môže človek - 233 00:11:52,530 --> 00:11:53,720 a ja som ignoroval 3. 234 00:11:53,720 --> 00:11:57,410 Ale človek 3 printf sa chystá priviesť až C verzie printf. 235 00:11:57,410 --> 00:12:01,030 Ale keď som si to človek printf, to je ísť na vyvolanie príkazu printf 236 00:12:01,030 --> 00:12:03,540 čo sa deje na príkazovom riadku. 237 00:12:03,540 --> 00:12:05,730 >> Takže človek, ls. 238 00:12:05,730 --> 00:12:09,030 Manuálové stránky môže byť docela ohromujúci. 239 00:12:09,030 --> 00:12:12,770 Tu, keď uvidíte tento zápis všetkých týchto príznakov, ktoré ls 240 00:12:12,770 --> 00:12:14,300 chápe. 241 00:12:14,300 --> 00:12:17,876 Takže ak pôjdeme do pomlčka, l, a - 242 00:12:17,876 --> 00:12:19,300 Idem hodiť to na vás. 243 00:12:19,300 --> 00:12:23,050 Ale ak chcete hľadať, chcete- prvý narazí na otázku 244 00:12:23,050 --> 00:12:24,780 Značka alebo tlačidlo lomítko. 245 00:12:24,780 --> 00:12:26,040 Tak lomítko. 246 00:12:26,040 --> 00:12:29,000 >> A potom môžem hľadať na čo chcem. 247 00:12:29,000 --> 00:12:33,780 Tak idem na lomítko na prístrojovú, l 248 00:12:33,780 --> 00:12:35,110 A bolo to. 249 00:12:35,110 --> 00:12:37,450 Takže použiť dlhý formát výpisu. 250 00:12:37,450 --> 00:12:40,060 To nepomôže mi prísť na to, čo že konkrétny stĺpec znamená, ale ja 251 00:12:40,060 --> 00:12:44,480 Predpokladám, niekde tu to by vysvetľovalo, že. 252 00:12:44,480 --> 00:12:48,740 Takže používať manuálové stránky pre všetky príkazu že nemusíte hneď pochopiť. 253 00:12:48,740 --> 00:12:51,080 >> Som si istá, že je to možné, aj človek, človek. 254 00:12:51,080 --> 00:12:53,070 Rozhranie na on-line referenčné príručky. 255 00:12:53,070 --> 00:12:57,700 256 00:12:57,700 --> 00:13:03,570 Jo, ešte jedna posledná, že je to možno trochu je relevantný ls, pomlčka,. 257 00:13:03,570 --> 00:13:08,490 Takže výpovednej lehoty, ak som to ls, Ja si týchto päť súborov. 258 00:13:08,490 --> 00:13:11,480 Ak sa mi ls, pomlčka,, Aj získať oveľa viac súborov. 259 00:13:11,480 --> 00:13:15,350 Takže spoločnú vec medzi všetkými týmito Nové súbory je bodka dopredu. 260 00:13:15,350 --> 00:13:21,220 >> Takže konvencie je, že súbor, ktorý začína sa bodka skryté. 261 00:13:21,220 --> 00:13:25,300 Takže nechcete vidieť, že súbor, Nechcem, aby sa to bordel s 262 00:13:25,300 --> 00:13:26,750 Váš výpis adresára. 263 00:13:26,750 --> 00:13:30,020 Je to len vtedy, keď výslovne požiadať, v poriadku, ls, pomlčka,, ukáž mi. 264 00:13:30,020 --> 00:13:32,830 Platí pre všetky súbory, vrátane skrytých ty. 265 00:13:32,830 --> 00:13:37,260 266 00:13:37,260 --> 00:13:39,270 Takže niektoré ďalšie príkazy. 267 00:13:39,270 --> 00:13:41,323 Oh, otázky na tomto mieste? 268 00:13:41,323 --> 00:13:41,746 Áno. 269 00:13:41,746 --> 00:13:45,914 >> SPEAKER 3: Keď to urobíte ls, , Čo je bodka, bodka? 270 00:13:45,914 --> 00:13:46,870 >> ROB: Oh. 271 00:13:46,870 --> 00:13:48,780 Tak toto je to, čo som hovoril. 272 00:13:48,780 --> 00:13:50,890 Je to to isté, kde Môžem ako sú CD, bodka, bodka. 273 00:13:50,890 --> 00:13:56,790 Takže technicky, bodka a bodka, bodka sa súbory, ktoré existujú v každý 274 00:13:56,790 --> 00:14:03,620 adresár, kde je súbor bodka označuje do aktuálneho adresára. 275 00:14:03,620 --> 00:14:06,930 Takže keď som cd, bodka, ja som jednoducho ísť zostať v adresári. 276 00:14:06,930 --> 00:14:10,870 A bodka, bodka vždy sa odkazuje na predchádzajúci adresár o úroveň vyššie. 277 00:14:10,870 --> 00:14:18,200 Takže keď som sa ísť do protokolov a LS, pomlčka, al, Uvidím, bodka, bodka. cd do dot, dot 278 00:14:18,200 --> 00:14:20,390 ma privádza do predchádzajúceho adresára. 279 00:14:20,390 --> 00:14:24,530 280 00:14:24,530 --> 00:14:25,780 Jo. 281 00:14:25,780 --> 00:14:27,160 282 00:14:27,160 --> 00:14:28,110 OK. 283 00:14:28,110 --> 00:14:33,070 >> Takže ďalší dosť dôležité príkaz rm. 284 00:14:33,070 --> 00:14:35,650 Tak to je to, čo budeme použiť na odstránenie. 285 00:14:35,650 --> 00:14:38,100 A dovoľte mi, aby som vlastne robiť ďalšie príkaz prvý. 286 00:14:38,100 --> 00:14:39,610 Tak mkdir. 287 00:14:39,610 --> 00:14:42,770 Mkdir je to, ako môžete vytvárať adresáre. 288 00:14:42,770 --> 00:14:47,530 A ja vám vytvoriť dočasný adresár a choďte do tohto dočasného adresára. 289 00:14:47,530 --> 00:14:49,590 A ako sa očakávalo, je prázdny. 290 00:14:49,590 --> 00:14:53,680 Ale ak ls Aj, pomlčka,, Stále mám bodku a bodka, bodka, bodka, pretože odkazuje na 291 00:14:53,680 --> 00:14:54,480 aktuálny adresár. 292 00:14:54,480 --> 00:14:56,170 A bodka, bodka označuje predchádzajúci adresár. 293 00:14:56,170 --> 00:14:58,700 A tie budú vždy existovať bez ohľadu na adresár, kde sa nachádzate 294 00:14:58,700 --> 00:15:01,910 295 00:15:01,910 --> 00:15:09,010 >> A to je úplne zbytočné príkaz, ale dotyk. 296 00:15:09,010 --> 00:15:11,880 Len som ju používať, pretože je to jednoduchý spôsob, ako vytvárať súbory. 297 00:15:11,880 --> 00:15:16,180 Takže dotyk, dotyk b, stlačte c je len bude vytvoriť tri súbory s názvom, 298 00:15:16,180 --> 00:15:17,845 b, c, že ​​sú úplne prázdne. 299 00:15:17,845 --> 00:15:20,450 300 00:15:20,450 --> 00:15:24,980 Takže miesto ma vytvárať tie Prvé miesto je tak, že RM je 301 00:15:24,980 --> 00:15:26,250 ako ich môžeme odstrániť. 302 00:15:26,250 --> 00:15:27,850 Takže rm,. 303 00:15:27,850 --> 00:15:30,960 Bude to a opýtajte sa ma, odstráňte pravidelné prázdny súbor? 304 00:15:30,960 --> 00:15:33,170 A potom poviem áno. 305 00:15:33,170 --> 00:15:39,090 >> Takže keď som si istý, že chcem, aby zmazať tento súbor, bez toho aby museli byť 306 00:15:39,090 --> 00:15:44,500 vyzvanie vyberte pravidelné prázdny súbor?, potom rm, pomlčka, f bude 307 00:15:44,500 --> 00:15:48,230 príznak, ktorý hovorí, núti odstrániť bez ma ani výzvy, oh, si 308 00:15:48,230 --> 00:15:49,710 Naozaj chcete zmazať súbor? 309 00:15:49,710 --> 00:15:50,810 Áno, som si istý. 310 00:15:50,810 --> 00:15:56,050 Takže rm, pomlčka, fb bude len to bez pýtania. 311 00:15:56,050 --> 00:15:57,950 >> Takže poďme urobiť nejaké ďalšie adresáre. 312 00:15:57,950 --> 00:16:03,670 mkdir, tmp2, cd, tmp2, dotknúť, dotykové b 313 00:16:03,670 --> 00:16:04,300 OK. 314 00:16:04,300 --> 00:16:08,180 Takže teraz chcem odstrániť tmp2 ako adresár. 315 00:16:08,180 --> 00:16:10,316 Takže rm tmp2. 316 00:16:10,316 --> 00:16:12,920 Nemôžete odstrániť tmp2, je adresár. 317 00:16:12,920 --> 00:16:21,370 Takže otázka je, že rm nie je okamžite pracovať na adresára. 318 00:16:21,370 --> 00:16:26,530 Je určený len pre súbory, ako sú Súbory non-adresára. 319 00:16:26,530 --> 00:16:30,800 >> A tak to, čo môžeme urobiť Tu je rm, pomlčka, r. 320 00:16:30,800 --> 00:16:35,160 To znamená rekurzívne, ktoré by mohli neznamená nič pre vás ešte. 321 00:16:35,160 --> 00:16:38,280 Ale keď sa dostanete do rekurzia, to bude znamenať viac. 322 00:16:38,280 --> 00:16:43,540 Takže rm, pomlčka, r, tmp2 sa chystá rekurzívne ísť do tohto adresára. 323 00:16:43,540 --> 00:16:45,540 Takže zostúpiť do adresára tmp2? 324 00:16:45,540 --> 00:16:47,330 Áno, poďme do toho. 325 00:16:47,330 --> 00:16:49,360 Chceme odstrániť tmp2 /? 326 00:16:49,360 --> 00:16:49,745 Áno. 327 00:16:49,745 --> 00:16:51,830 Chceme odstrániť tmp2 / b? 328 00:16:51,830 --> 00:16:52,840 Áno. 329 00:16:52,840 --> 00:16:55,170 Teraz chceme odstrániť adresár tmp2? 330 00:16:55,170 --> 00:16:56,040 Áno. 331 00:16:56,040 --> 00:16:58,410 A tak teraz adresár a všetko vo vnútri 332 00:16:58,410 --> 00:16:59,660 z toho odstránil. 333 00:16:59,660 --> 00:17:02,850 334 00:17:02,850 --> 00:17:07,250 >> Tam je technicky príkaz rmdir ktoré môžete použiť na odstránenie 335 00:17:07,250 --> 00:17:11,670 adresárov, ale to funguje iba na prázdnych adresárov rovnako. 336 00:17:11,670 --> 00:17:14,109 A vidieť, že, povedzme, urobiť znovu mkdir, tmp2. 337 00:17:14,109 --> 00:17:15,940 Tmp2, dotknúť. 338 00:17:15,940 --> 00:17:16,800 OK. 339 00:17:16,800 --> 00:17:22,770 Takže keď sa snažím odstrániť dirtmp2, bude to povedať, adresár nie je prázdny. 340 00:17:22,770 --> 00:17:29,540 Takže som skoro nikdy nepoužívajte odstrániť Príkaz dir tak ako tak, pretože rm, pomlčka, 341 00:17:29,540 --> 00:17:35,140 r bude pracovať na prázdnych adresárov a non-prázdne adresáre. 342 00:17:35,140 --> 00:17:37,760 >> A tiež, či nechcem mať na prejsť, že celý proces 343 00:17:37,760 --> 00:17:40,720 zostupne do adresára a vybratie každého jednotlivého súboru, rm, 344 00:17:40,720 --> 00:17:44,190 pomlčka, rf, tmp2. 345 00:17:44,190 --> 00:17:45,670 A teraz je to preč. 346 00:17:45,670 --> 00:17:51,220 >> Niečo, čo dávať pozor o je rm, pomlčka, rf. 347 00:17:51,220 --> 00:17:53,660 A to ma desí ešte zadajte ho, pretože keď som omylom 348 00:17:53,660 --> 00:17:55,090 stlačte klávesu Enter, alebo tak niečo. 349 00:17:55,090 --> 00:18:02,735 Takže rm, pomlčka, rf, vlnovka by bez toho, aby mňa výzva, f nevyzve 350 00:18:02,735 --> 00:18:05,670 mi, bude to automaticky odstrániť celý môj domovský adresár a 351 00:18:05,670 --> 00:18:06,780 všetko v ňom. 352 00:18:06,780 --> 00:18:11,460 Takže si môže myslieť, že je to hlúposť. 353 00:18:11,460 --> 00:18:12,830 A dobre, že je. 354 00:18:12,830 --> 00:18:18,600 >> Ale to sa môže stať veľmi ľahko nehoda-li, povedzme, chcel som sa odstrániť 355 00:18:18,600 --> 00:18:21,640 môj slash, vhost adresár. 356 00:18:21,640 --> 00:18:26,610 A práve v rýchlom písaní, Omylom som to urobiť. 357 00:18:26,610 --> 00:18:31,880 To bude odstrániť rekurzívne aj my domovský adresár a adresár vhost 358 00:18:31,880 --> 00:18:35,450 v tomto konkrétnom adresári, ktorý práve stane sa to práve teraz neexistuje. 359 00:18:35,450 --> 00:18:39,520 Ale to by ešte odstrániť celý môj domovský adresár. 360 00:18:39,520 --> 00:18:43,090 Aspoň tým, že má f, to by ma prvú výzvu. 361 00:18:43,090 --> 00:18:45,670 A ja by som bol rád, oh, nie, ja Nechcem to urobiť. 362 00:18:45,670 --> 00:18:50,570 Ale ľudia, lomítko, vrátane ma majú tendenciu dostať sa do 363 00:18:50,570 --> 00:18:53,090 zvyk vždy rf-Ing. 364 00:18:53,090 --> 00:18:58,713 Dokonca aj pravidelné súbory, ktoré môžem len RM, c, mám tendenciu len rm, pomlčka, rf, c 365 00:18:58,713 --> 00:19:01,330 Len si dajte pozor, keď ste rf-ing. 366 00:19:01,330 --> 00:19:03,160 >> SPEAKER 4: Čo je C robiť? 367 00:19:03,160 --> 00:19:11,570 >> ROB: C je Hovorím o tomto súbore C v tomto adresári, ktorý rm, c 368 00:19:11,570 --> 00:19:15,730 >> JOSEPH: A viac nebezpečne, ak používate hviezda, to sa odkazuje na všetko v 369 00:19:15,730 --> 00:19:16,450 adresár. 370 00:19:16,450 --> 00:19:20,040 Takže to, čo som zvyčajne majú tendenciu robiť je, že bude ísť do adresára a ja chcem, aby 371 00:19:20,040 --> 00:19:21,510 odstrániť všetky súbory tam. 372 00:19:21,510 --> 00:19:23,640 Takže rm, pomlčka, rf, hviezda. 373 00:19:23,640 --> 00:19:25,700 >> ROB: Jo. 374 00:19:25,700 --> 00:19:26,780 Rm, pomlčka, rf, hviezda. 375 00:19:26,780 --> 00:19:29,530 >> JOSEPH: A ak si nie ste opatrní čo adresár ste v - 376 00:19:29,530 --> 00:19:33,340 Nebol som v temp, ale bol som náhodou v mojom domovskom adresári, 377 00:19:33,340 --> 00:19:35,450 potom budem odstrániť všetko v mojom domovskom adresári. 378 00:19:35,450 --> 00:19:39,095 A ja som vlastne urobil predtým, a Myslím, že ste to urobil predtým alebo 379 00:19:39,095 --> 00:19:40,640 Jay urobil skôr. 380 00:19:40,640 --> 00:19:42,480 >> ROB: Ja som omylom odstránený - 381 00:19:42,480 --> 00:19:44,480 tak ignorovať, že príkaz na chvíľu. 382 00:19:44,480 --> 00:19:45,800 >> JOSEPH: Nie je legrace. 383 00:19:45,800 --> 00:19:52,650 >> ROB: Takže v adresári bin lomítkom je banda binárnych súborov, kde bude 384 00:19:52,650 --> 00:19:54,840 byť dobre známa ako kovový zvuk. 385 00:19:54,840 --> 00:20:00,740 No, zvoniť a v podstate všetci z nich veci, ktoré som beží na príkaz 386 00:20:00,740 --> 00:20:02,060 linka je v tomto lomítko adresári bin. 387 00:20:02,060 --> 00:20:03,090 >> JOSEPH: Rovnako ako ls, je tu. 388 00:20:03,090 --> 00:20:06,285 >> ROB: Tak bodka, lomítko, ls by zoznam tohto adresára. 389 00:20:06,285 --> 00:20:08,120 >> JOSEPH: Rm je tiež v tomto adresári. 390 00:20:08,120 --> 00:20:12,770 >> ROB: Omylom som rm, rf-ed bin, ktorý odstráni ľubovoľný príkaz, čo som mohol 391 00:20:12,770 --> 00:20:14,380 možno niekedy chcieť. 392 00:20:14,380 --> 00:20:18,085 Čo potom som preinštalovať nové spotrebiče v tomto bode. 393 00:20:18,085 --> 00:20:20,170 >> JOSEPH: Takže buďte veľmi opatrní pri môžete použiť tento príkaz. 394 00:20:20,170 --> 00:20:21,120 >> DIVÁKOV: [nepočuteľné]? 395 00:20:21,120 --> 00:20:22,640 >> ROB: Áno. 396 00:20:22,640 --> 00:20:24,135 To je tiež zlý zvyk sa dostať do. 397 00:20:24,135 --> 00:20:27,920 398 00:20:27,920 --> 00:20:30,170 Ak si všimnete, že som teraz - 399 00:20:30,170 --> 00:20:33,580 dobre, môžete si to nevšimol, ale môj zoom-in možno môže. 400 00:20:33,580 --> 00:20:35,360 Takže som teraz root @ spotrebiča. 401 00:20:35,360 --> 00:20:39,790 Takže jharvard je užívateľ chceme aby ste sa vždy používať. 402 00:20:39,790 --> 00:20:43,820 Root je užívateľ, ktorý má oprávnenie robiť absolútne nič. 403 00:20:43,820 --> 00:20:50,260 >> Takže všimnete, keď som jharvard, keď sa pokúsim cd - 404 00:20:50,260 --> 00:20:52,461 čo je adresár, ktorý? 405 00:20:52,461 --> 00:20:53,980 Oh, koreň je dobrý príklad. 406 00:20:53,980 --> 00:20:54,950 Takže cd, koreň. 407 00:20:54,950 --> 00:20:56,030 Permission denied. 408 00:20:56,030 --> 00:21:00,060 Vzhľadom k tomu, ak sa pozrieme na tomto zozname - 409 00:21:00,060 --> 00:21:02,410 a znova, nemusíte sa úplne pochopiť. 410 00:21:02,410 --> 00:21:09,210 Ale tieto tri pomlčky hovoria ktoré nenechajte akýkoľvek iný 411 00:21:09,210 --> 00:21:11,120 užívateľ do tohto adresára. 412 00:21:11,120 --> 00:21:14,540 A adresár sa stane byť vlastnený užívateľom root. 413 00:21:14,540 --> 00:21:20,310 >> Takže fakt, že som jharvard a nie Ten, kto nie je koreň je povolené do 414 00:21:20,310 --> 00:21:23,490 tento adresár, to znamená, že som chystá sa poprieť, povolenie, keď som 415 00:21:23,490 --> 00:21:25,160 sa snaží cd do neho. 416 00:21:25,160 --> 00:21:31,370 Takže keď som koreň, mám oprávnenie k robiť úplne čokoľvek, vrátane 417 00:21:31,370 --> 00:21:34,660 vymazať dôležité súbory k prístroju a 418 00:21:34,660 --> 00:21:36,640 zničiť celú vec. 419 00:21:36,640 --> 00:21:41,240 >> Tak to je zlý zvyk sa dostať do len putovanie okolo 420 00:21:41,240 --> 00:21:43,650 operačného systému ako root. 421 00:21:43,650 --> 00:21:46,520 Robím to tak ako tak. 422 00:21:46,520 --> 00:21:48,710 Otázky? 423 00:21:48,710 --> 00:21:52,230 A ja ukončiť koreň, zostať ako jharvard. 424 00:21:52,230 --> 00:21:54,510 OK. 425 00:21:54,510 --> 00:21:55,820 >> Viac príslušné príkazy. 426 00:21:55,820 --> 00:22:03,975 Takže ísť späť do nášho temp, mv príkaz je skratka pre pohyb. 427 00:22:03,975 --> 00:22:05,450 Môžete sa pohybovať. 428 00:22:05,450 --> 00:22:07,610 Teraz chceme hovoriť b, tak teraz sa to volá b 429 00:22:07,610 --> 00:22:10,650 Alebo snáď chceme presunúť b do jedného adresára. 430 00:22:10,650 --> 00:22:12,730 Takže teraz prázdny tomto adresári je. 431 00:22:12,730 --> 00:22:15,410 Vrátim sa do svojho domovského adresára, a vidíme, že b je tu, pretože 432 00:22:15,410 --> 00:22:19,230 domovský adresár bol o úroveň vyššie od adresár, ktorý b bolo palcov 433 00:22:19,230 --> 00:22:24,710 434 00:22:24,710 --> 00:22:26,580 >> K dispozícii je tiež cp. 435 00:22:26,580 --> 00:22:33,210 Takže cp je kopírovať výborný časť, bodka, textu. 436 00:22:33,210 --> 00:22:35,750 Môžem hovoriť to, bodka, textu. 437 00:22:35,750 --> 00:22:39,780 Teraz máme obaja výborný časť, bodka, textu a je, bodka, textu. 438 00:22:39,780 --> 00:22:41,340 To tiež pracuje na adresára. 439 00:22:41,340 --> 00:22:44,040 440 00:22:44,040 --> 00:22:46,560 RF-ED som jeden súbor. 441 00:22:46,560 --> 00:22:48,200 Takže cp - 442 00:22:48,200 --> 00:22:51,710 dobre, prvý skúsme CP tmp, tmp2. 443 00:22:51,710 --> 00:22:53,220 Takže vynechanie adresára tmp. 444 00:22:53,220 --> 00:22:57,440 Takže podobne ako rm, predvolené správanie je to pracovať v adresároch. 445 00:22:57,440 --> 00:23:01,570 >> A opäť, podobne ako rm, predvolené správanie - dobre, ako to funguje 446 00:23:01,570 --> 00:23:04,230 s adresárov je, pomlčka-r preč. 447 00:23:04,230 --> 00:23:09,240 Takže kopírovať rekurzívne temp adresár do tmp2. 448 00:23:09,240 --> 00:23:13,700 A tak teraz máme obaja tmp a tmp2, a to nie je tak užitočné, pretože tmp 449 00:23:13,700 --> 00:23:16,814 bola v prvom rade prázdne. 450 00:23:16,814 --> 00:23:18,660 Tmp2. 451 00:23:18,660 --> 00:23:22,680 >> Teraz poďme kopírovať tmp do tmp2. 452 00:23:22,680 --> 00:23:27,900 A vidíme, že tmp2 má tiež súbor , Pretože adresár a 453 00:23:27,900 --> 00:23:32,220 všetko vo vnútri, ktoré Adresár bol skopírovaný. 454 00:23:32,220 --> 00:23:36,000 A to môže byť trochu užitočné ak, povedzme, že pracujete 455 00:23:36,000 --> 00:23:38,860 o probléme nastaviť jednu - 456 00:23:38,860 --> 00:23:41,320 alebo skutočnosti, neskôr problém sady ešte dôležitejšie, pretože tam 457 00:23:41,320 --> 00:23:43,660 bude celá partia súborov a vecí. 458 00:23:43,660 --> 00:23:47,010 >> Ale len chcete, na zlomok Druhá, že si rád, v poriadku, ja som 459 00:23:47,010 --> 00:23:50,210 ísť skúsiť niečo iné. 460 00:23:50,210 --> 00:23:57,860 Dovoľte mi stačí skopírovať celý môj pset1 adresár do zálohy pset1 tak, že ak 461 00:23:57,860 --> 00:24:01,490 Aj skončí skrutkovanie veci do poriadku, môžem vrátiť sa do svojho záložného adresára. 462 00:24:01,490 --> 00:24:07,340 Existuje vhodnejšie spôsoby verzií zálohovanie kód, ale 463 00:24:07,340 --> 00:24:10,610 to je vždy rýchly spôsob, ako len sa uistite, že máte kópiu niečoho 464 00:24:10,610 --> 00:24:11,860 že sa chystáte zmeniť. 465 00:24:11,860 --> 00:24:16,974 466 00:24:16,974 --> 00:24:27,090 >> Takže echo je tiež príkaz one-off, ktoré druh sillily bude len tlačiť 467 00:24:27,090 --> 00:24:31,540 príkazový riadok presne to, čo čo ste chceli echo. 468 00:24:31,540 --> 00:24:32,680 Tak echo ahoj. 469 00:24:32,680 --> 00:24:35,420 Budeme len vytlačiť hi. 470 00:24:35,420 --> 00:24:38,030 Echo hello world. 471 00:24:38,030 --> 00:24:39,800 Budeme tlačiť ahoj svet. 472 00:24:39,800 --> 00:24:44,350 Ktorý prichádza do užívania, ak kto kombinuje príkazy. 473 00:24:44,350 --> 00:24:48,300 >> A opäť, nečakajte, že vám úplne pochopiť to ešte, ale je to 474 00:24:48,300 --> 00:24:49,910 niečo vidieť. 475 00:24:49,910 --> 00:24:52,470 A potom, ak ste Googling príklady alebo si uvedomíte, že chcete robiť 476 00:24:52,470 --> 00:24:55,030 niečo, to môže byť užitočné. 477 00:24:55,030 --> 00:24:59,020 Tak poďme, ako napríklad takže ls, pomlčka, l 478 00:24:59,020 --> 00:25:01,160 Takže tu vidím výstup LS, pomlčka, l 479 00:25:01,160 --> 00:25:06,560 A ja hovorím, OK, chcem, aby uložiť, že do súboru. 480 00:25:06,560 --> 00:25:11,620 Všetky tohto výstupu tu, chcem dať do samostatného súboru. 481 00:25:11,620 --> 00:25:16,080 >> Takže to trochu väčšie ako symbol je to, čo budeme hovoriť. 482 00:25:16,080 --> 00:25:18,570 Sme presmerovanie výstup do súboru. 483 00:25:18,570 --> 00:25:21,680 Hovorme súbor bla, pretože to je čo mám tendenciu vždy hovoriť. 484 00:25:21,680 --> 00:25:26,430 Takže teraz vidíme, máme súbor bla tu. 485 00:25:26,430 --> 00:25:30,270 A keď som ho otvoríte, tak vidím, že je to presne výstup z príkazu 486 00:25:30,270 --> 00:25:31,990 že som bežal. 487 00:25:31,990 --> 00:25:36,020 A podobne, môžete - 488 00:25:36,020 --> 00:25:41,260 či je to výstup do súboru, tento je získať vstup zo súboru. 489 00:25:41,260 --> 00:25:45,790 490 00:25:45,790 --> 00:25:47,050 Čo je to príkaz, ktorý som - 491 00:25:47,050 --> 00:25:49,620 >> JOSEPH: Myslím, že môžete použiť viac či menej, pravdepodobne. 492 00:25:49,620 --> 00:25:53,031 >> ROB: Ale ako sa len o menej bla? 493 00:25:53,031 --> 00:25:53,930 Neviem. 494 00:25:53,930 --> 00:25:57,870 Ak prídete do tohto scenára, rovnako ako tam je psets, že je to užitočné pre. 495 00:25:57,870 --> 00:25:59,950 >> JOSEPH: Môžete potrubia do echo. 496 00:25:59,950 --> 00:26:02,920 Pipe súbor do echo ju vidieť. 497 00:26:02,920 --> 00:26:04,060 >> ROB: Je to potrubie. 498 00:26:04,060 --> 00:26:04,860 >> JOSEPH: Je mi ľúto. 499 00:26:04,860 --> 00:26:06,190 >> ROB: Dobre. 500 00:26:06,190 --> 00:26:12,720 Tak toto je výstup do súboru. 501 00:26:12,720 --> 00:26:18,700 To je získať text zo súboru a odovzdať ju do programu. 502 00:26:18,700 --> 00:26:20,560 A budete tiež vidieť toho chlapa. 503 00:26:20,560 --> 00:26:24,410 Takže je to trochu robí oboje naraz. 504 00:26:24,410 --> 00:26:28,310 A vlastne, budem predstaviť dva nové Príkazy len využiť toho. 505 00:26:28,310 --> 00:26:33,060 >> História je šikovný príkaz, ktorý je práve ísť vytlačiť výpis 506 00:26:33,060 --> 00:26:34,940 niečo, čo som kedy spustiť príkazový riadok. 507 00:26:34,940 --> 00:26:38,290 Takže tu vidíme všetko, čo mám beží celú túto dobu. 508 00:26:38,290 --> 00:26:39,540 Veľa ls rokov. 509 00:26:39,540 --> 00:26:41,570 510 00:26:41,570 --> 00:26:48,470 >> A ďalší užitočný príkaz grep, že jeho účelom je vyhľadávať cez 511 00:26:48,470 --> 00:26:52,060 text, hľadá vzory, dobre, hľadá čokoľvek, čo 512 00:26:52,060 --> 00:26:53,310 Chcem, aby to vyzeralo na. 513 00:26:53,310 --> 00:26:59,770 A tak šikovný použitie tu je, povedzme chceme chytiť históriu. 514 00:26:59,770 --> 00:27:03,860 A chcem sa pozrieť na príkazy kde som - čo je to 515 00:27:03,860 --> 00:27:05,000 užitočné kto hľadať? 516 00:27:05,000 --> 00:27:06,898 >> JOSEPH: [nepočuteľné]? 517 00:27:06,898 --> 00:27:09,710 >> ROB: Alebo poďme sa len pozrieť na všetky dotýka, z akéhokoľvek dôvodu. 518 00:27:09,710 --> 00:27:13,850 Takže to je to, čo to bude vyzerať. 519 00:27:13,850 --> 00:27:15,560 A nemusíte sa úplne pochopiť, že. 520 00:27:15,560 --> 00:27:20,570 Ale myšlienka je tu, história dáva Rovnaký výkon je tu urobil 521 00:27:20,570 --> 00:27:25,030 kde je to tlač z celej História všetkého, čo som kedy bežať. 522 00:27:25,030 --> 00:27:27,030 My sme potom mimochodom, že - 523 00:27:27,030 --> 00:27:30,230 takže namiesto toho, aby ho vytlačiť na obrazovku, chceme prejsť, že na 524 00:27:30,230 --> 00:27:34,640 Príkaz grep, ktorý hľadá všetky inštancie slová dotyk. 525 00:27:34,640 --> 00:27:40,280 >> A tak pomocou tejto kombinácie Histórie a grep nástrojov, vidím, OK, 526 00:27:40,280 --> 00:27:44,820 tu je všetky príkazy som kedy beh, a tu je to trochu obyčajný. 527 00:27:44,820 --> 00:27:45,510 Sme na dne. 528 00:27:45,510 --> 00:27:47,930 A to mi tiež dáva príkaz Len som bežal, aby mal 529 00:27:47,930 --> 00:27:51,240 Slovo dotyk v nej. 530 00:27:51,240 --> 00:27:58,500 Ale potrubie je celkom užitočná vec pre kombináciu viacerých programov. 531 00:27:58,500 --> 00:28:04,670 A skutočne, je to skratka pre prenájmu me výstup histórie do súboru bla, a 532 00:28:04,670 --> 00:28:10,190 dovoľte mi, aby som grep pomocou súboru bla ako to, čo chcem, aby sa pozreli na. 533 00:28:10,190 --> 00:28:13,460 Takže rúrka je len skratka pre tieto dva príkazy. 534 00:28:13,460 --> 00:28:13,950 Áno. 535 00:28:13,950 --> 00:28:15,306 >> SPEAKER 4: [nepočuteľné]? 536 00:28:15,306 --> 00:28:16,556 >> ROB: Áno. 537 00:28:16,556 --> 00:28:20,142 538 00:28:20,142 --> 00:28:21,110 Čo je to - 539 00:28:21,110 --> 00:28:21,858 Oh. 540 00:28:21,858 --> 00:28:24,820 Poďme otestovať. 541 00:28:24,820 --> 00:28:29,170 Takže mačka, pes, ryba. 542 00:28:29,170 --> 00:28:33,770 Takže chcem grep. 543 00:28:33,770 --> 00:28:37,680 Dash, r, znovu, bude rekurzívne, takže chcem, aby zostúpil dole 544 00:28:37,680 --> 00:28:38,870 všetky adresáre. 545 00:28:38,870 --> 00:28:43,210 Chcem sa rekurzívne grep pre všetkých - a dovoľte mi, aby som dočasne dostať 546 00:28:43,210 --> 00:28:44,460 to z cesty. 547 00:28:44,460 --> 00:28:48,650 548 00:28:48,650 --> 00:28:50,740 Ignorovať ma. 549 00:28:50,740 --> 00:28:51,360 OK. 550 00:28:51,360 --> 00:28:56,740 >> Takže chcem, aby dočasne grep pre všetky inštancie slová rýb. 551 00:28:56,740 --> 00:29:00,510 A tak tu to, čo robím, je grep rekurzívne pre slovo ryby. 552 00:29:00,510 --> 00:29:05,410 A hviezda znamená, že cez všetky tieto Súbory v tomto adresári. 553 00:29:05,410 --> 00:29:08,930 A tak mi to dal oprávnenie odmietnutý, pretože to nie je dovolené, aby čítal, že 554 00:29:08,930 --> 00:29:10,060 konkrétny súbor. 555 00:29:10,060 --> 00:29:14,040 Ale to našiel ryby v súbore, skúška. 556 00:29:14,040 --> 00:29:18,450 >> Mohol by som tiež povedať, konkrétne, len som chcem sa pozrieť do súboru bla, v 557 00:29:18,450 --> 00:29:19,580 takom prípade to nebude nič nájsť. 558 00:29:19,580 --> 00:29:20,990 Chcem sa pozrieť do súboru, skúška. 559 00:29:20,990 --> 00:29:22,240 To sa nájsť ryby. 560 00:29:22,240 --> 00:29:25,980 561 00:29:25,980 --> 00:29:29,260 To je celkom užitočné príkaz poznať všeobecne. 562 00:29:29,260 --> 00:29:31,640 Tam sú niektoré alternatívy k grep , Ktoré majú byť 563 00:29:31,640 --> 00:29:36,780 programátor priateľský, ale mám tendenciu sa ešte oprieť o grep. 564 00:29:36,780 --> 00:29:38,030 Otázky? 565 00:29:38,030 --> 00:29:39,965 566 00:29:39,965 --> 00:29:40,919 OK. 567 00:29:40,919 --> 00:29:42,520 >> Existujú ďalšie príkazy? 568 00:29:42,520 --> 00:29:45,270 Oh. 569 00:29:45,270 --> 00:29:48,370 Len jeden-off ten, ktorý som vždy tu bude legrace je kalibru. 570 00:29:48,370 --> 00:29:55,610 Takže všimnete, keď som v tejto krásnej Režim celej obrazovky, nemám ako vrchol 571 00:29:55,610 --> 00:29:56,720 paneli nástrojov alebo tak niečo. 572 00:29:56,720 --> 00:29:59,530 Takže cal len mi dáva peknú Kalendár je to pravda 573 00:29:59,530 --> 00:30:02,380 Teraz odrezať, predpokladám. 574 00:30:02,380 --> 00:30:04,770 Ale pekný malý príkaz. 575 00:30:04,770 --> 00:30:06,540 >> JOSEPH: Je [nepočuteľný]. 576 00:30:06,540 --> 00:30:09,170 Ďalšie príkazy, ktoré by mohli mať Videl patrí rinčanie a robiť. 577 00:30:09,170 --> 00:30:11,180 Pôjdeme po nich viac detailov neskôr. 578 00:30:11,180 --> 00:30:13,400 Ale ak ste pracovali na pset, mali by ste byť 579 00:30:13,400 --> 00:30:15,160 oboznámení s tými. 580 00:30:15,160 --> 00:30:16,640 >> ROB: Dobre. 581 00:30:16,640 --> 00:30:18,520 Otázky na príkazovom riadku, čo? 582 00:30:18,520 --> 00:30:22,450 583 00:30:22,450 --> 00:30:23,260 Dobrá. 584 00:30:23,260 --> 00:30:27,416 Takže poďme sa presunúť na niektoré C-súvisiace veci. 585 00:30:27,416 --> 00:30:28,666 Premenné matematika. 586 00:30:28,666 --> 00:30:39,078 587 00:30:39,078 --> 00:30:40,060 OK. 588 00:30:40,060 --> 00:30:45,230 Takže rovnako ako sme mali matematiku vo Scratch, môžete tiež použiť matematiku v C. 589 00:30:45,230 --> 00:30:49,270 >> Než sa dostaneme k tomu úplne, tak premenné. 590 00:30:49,270 --> 00:30:53,920 Pamätajte si, že vždy, keď vyhlasujú, premenné ako int x, alebo float y, vás 591 00:30:53,920 --> 00:30:56,710 musí ho zadať pred názov premennej. 592 00:30:56,710 --> 00:31:03,020 Takže typy sme videli doteraz sú int, float, double, long long, ktorý som 593 00:31:03,020 --> 00:31:06,150 vlastne neviem, či máme vidieť, že tak ďaleko. 594 00:31:06,150 --> 00:31:07,700 >> Tam sú niektoré tie ostatné. 595 00:31:07,700 --> 00:31:09,990 Sme vidieť char. 596 00:31:09,990 --> 00:31:13,920 K dispozícii je krátka, čo je ako by to Opakom long long, kde je to 597 00:31:13,920 --> 00:31:16,650 menšie ako celé číslo. 598 00:31:16,650 --> 00:31:18,580 Videli sme tiež reťazec. 599 00:31:18,580 --> 00:31:23,070 Takže to, čo je zvláštne na povrázku? 600 00:31:23,070 --> 00:31:25,350 Prečo by som povedal, že je to nie tak celkom ako int? 601 00:31:25,350 --> 00:31:27,030 >> SPEAKER 4: Je to v skutočnosti neexistuje. 602 00:31:27,030 --> 00:31:27,990 >> ROB: Jo. 603 00:31:27,990 --> 00:31:31,820 Takže jediný dôvod, prečo máme reťazec Je tomu tak preto, keď robíte 604 00:31:31,820 --> 00:31:33,215 hash, sú cs50.h. 605 00:31:33,215 --> 00:31:36,530 606 00:31:36,530 --> 00:31:42,670 A uvidíme príklady neskôr - oh, že nespracováva, že dobre - 607 00:31:42,670 --> 00:31:46,160 kde je cs50.h niečo robiť pozdĺž radov typu 608 00:31:46,160 --> 00:31:49,230 def, char hviezda, reťazec. 609 00:31:49,230 --> 00:31:53,280 >> A tak, že hovorí, že nemáme ani Vieš, čo char hviezda je ešte. 610 00:31:53,280 --> 00:31:56,770 Ale to sa hovorí, chceme reťazec. 611 00:31:56,770 --> 00:32:00,250 Akékoľvek miesto, ktoré ste používali reťazec, môžete by boli pomocou char hviezda, 612 00:32:00,250 --> 00:32:04,670 , Ktorý je v skutočnosti, že typ existuje v jazyku C. 613 00:32:04,670 --> 00:32:06,680 Ale k tomu sa dostaneme. 614 00:32:06,680 --> 00:32:07,860 Jo, a ide naspäť. 615 00:32:07,860 --> 00:32:10,170 Neat. 616 00:32:10,170 --> 00:32:15,370 >> Takže to isté s bool kde true a false. 617 00:32:15,370 --> 00:32:22,510 To nie je naozaj vstavaný typ v jazyku C. Namiesto toho, to je jednoducho, to má 618 00:32:22,510 --> 00:32:23,740 Nulová hodnota? 619 00:32:23,740 --> 00:32:26,200 Potom budeme len za to, že je falošný. 620 00:32:26,200 --> 00:32:27,350 Má to hodnotu - 621 00:32:27,350 --> 00:32:30,530 dobre, to má každá hodnota, ktorá nie je nula? 622 00:32:30,530 --> 00:32:32,200 Potom budeme uvažovať, že je to pravda. 623 00:32:32,200 --> 00:32:35,940 Takže jeden je pravda, dva je pravda, niečo nenulové, je pravda. 624 00:32:35,940 --> 00:32:38,710 625 00:32:38,710 --> 00:32:42,790 Takže to sú tie. 626 00:32:42,790 --> 00:32:47,624 Otázky týkajúce sa deklarovaní premenných a typy premenných a všetko, čo? 627 00:32:47,624 --> 00:32:48,100 Jo. 628 00:32:48,100 --> 00:32:52,384 >> SPEAKER 4: Pre long long, v knihe, to hovoril, že to muselo byť long long int. 629 00:32:52,384 --> 00:32:54,288 Ale len na tak dlho dlho fungovať? 630 00:32:54,288 --> 00:32:58,210 631 00:32:58,210 --> 00:33:01,470 >> ROB: Takže tieto modifikátory typu. 632 00:33:01,470 --> 00:33:04,170 Tak int x. 633 00:33:04,170 --> 00:33:07,710 Takže môžeme povedať, unsigned int x. 634 00:33:07,710 --> 00:33:09,640 Dá sa povedať, krátky int x. 635 00:33:09,640 --> 00:33:12,570 Dá sa povedať, long long int x. 636 00:33:12,570 --> 00:33:17,250 Ale skoro žiadne z tých vecí, ktoré som práve povedal, unsigned int, short int, 637 00:33:17,250 --> 00:33:21,480 long long int, môžete zbaviť int, a to bude len predpokladať, 638 00:33:21,480 --> 00:33:22,510 že ste mal na mysli int. 639 00:33:22,510 --> 00:33:26,045 Tak nepodpísané x, čo jednoducho znamená - 640 00:33:26,045 --> 00:33:29,400 Viete, ako normálne s int, môžete povedať, x sa rovná negatívna 3? 641 00:33:29,400 --> 00:33:31,636 S unsigned int, to nemôžeš. 642 00:33:31,636 --> 00:33:34,480 >> JOSEPH: A ešte raz, pre kameru, Otázkou bolo, aký je rozdiel 643 00:33:34,480 --> 00:33:37,796 medzi long long int a len long long? 644 00:33:37,796 --> 00:33:38,410 >> ROB: Jo. 645 00:33:38,410 --> 00:33:42,850 Tak som sa skoro nikdy napísať dlhé dlhé int. 646 00:33:42,850 --> 00:33:44,100 Budem písať long long. 647 00:33:44,100 --> 00:33:47,770 648 00:33:47,770 --> 00:33:50,636 >> JOSEPH: Nejaké otázky? 649 00:33:50,636 --> 00:33:51,886 >> ROB: OK. 650 00:33:51,886 --> 00:33:56,180 651 00:33:56,180 --> 00:34:02,390 Tak hlúpa pripomienka, že to, ako deklarujeme premennú a inicializovať 652 00:34:02,390 --> 00:34:04,450 premenné a deklarovať ďalšie premenné a inicializovať 653 00:34:04,450 --> 00:34:05,870 to všetko v jednom kroku. 654 00:34:05,870 --> 00:34:09,370 Takže deklarácie premenné a premenná inicializácia nemajú 655 00:34:09,370 --> 00:34:11,120 sa ale môže byť na rovnakom riadku. 656 00:34:11,120 --> 00:34:15,409 657 00:34:15,409 --> 00:34:20,060 >> Takže máme štandardné operátormi matematické ktoré ste zvyknutí - 658 00:34:20,060 --> 00:34:22,199 plus, mínus, delenie, časy. 659 00:34:22,199 --> 00:34:24,389 K dispozícii je tiež modulo, čo uvidíme. 660 00:34:24,389 --> 00:34:29,060 Nie je, aspoň v C, vstavaný zdroj 661 00:34:29,060 --> 00:34:31,765 umocňovanie operátor strieška. 662 00:34:31,765 --> 00:34:33,770 No, tam je operátor strieška, ale to nie je moc. 663 00:34:33,770 --> 00:34:34,239 >> JOSEPH: Ale to nie je umocňovanie, Áno. 664 00:34:34,239 --> 00:34:36,210 >> ROB: Nepoužívajte strieška predpokladať, že to znamená, že 665 00:34:36,210 --> 00:34:39,980 ako otesaný, alebo čokoľvek iného. 666 00:34:39,980 --> 00:34:42,289 Takže niektoré veci by ste mali mať na nevadí o rozdelení. 667 00:34:42,289 --> 00:34:46,282 668 00:34:46,282 --> 00:34:48,880 Ja budem stáť. 669 00:34:48,880 --> 00:34:51,315 Tak vyhlásil initialize odpoveď. 670 00:34:51,315 --> 00:34:54,670 Takže hovoríme float odpoveď sa rovná 1 delené 10. 671 00:34:54,670 --> 00:34:57,500 Vytlačiť odpoveď na dve desatinné miesta. 672 00:34:57,500 --> 00:35:02,180 >> A to je jedna z tých vecí, ktoré som by človek printf prísť na to, že 673 00:35:02,180 --> 00:35:05,110 Čo to sakra má%, bodka, 2f znamená? 674 00:35:05,110 --> 00:35:07,930 A to práve znamená, dobre, ignorovanie 0.2. 675 00:35:07,930 --> 00:35:10,420 A%, f je to, čo používame tlačiť plávať. 676 00:35:10,420 --> 00:35:15,370 0.2 hovorí, že tlač plávať na dve desatinné miesta. 677 00:35:15,370 --> 00:35:19,600 Takže tento program má chybu, a tie by mohli videli predtým v niektorých 678 00:35:19,600 --> 00:35:20,870 Pred CS kurz. 679 00:35:20,870 --> 00:35:22,170 Ale čo je to chyba? 680 00:35:22,170 --> 00:35:23,050 >> SPEAKER 5: Zero. 681 00:35:23,050 --> 00:35:24,130 >> ROB: Jo. 682 00:35:24,130 --> 00:35:29,630 Takže keď hovoríme, odpoveď sa rovná 1 delené 10, chceme 683 00:35:29,630 --> 00:35:31,610 odpovedať na 0,1. 684 00:35:31,610 --> 00:35:37,450 Ale 1 delené 10, 1 je celé číslo, 10 je celé číslo. 685 00:35:37,450 --> 00:35:41,060 A tak, keď budeme robiť celé číslo delené číslo, budeme sa dostať späť 686 00:35:41,060 --> 00:35:42,190 celé číslo. 687 00:35:42,190 --> 00:35:43,660 So 1 delené 10 je 0,1. 688 00:35:43,660 --> 00:35:46,760 >> Vzhľadom k tomu, že je potrebné, aby nám dal číslo, to len tak zahodiť, že 689 00:35:46,760 --> 00:35:49,410 desatinné miesto, a tvrdia, že Odpoveď je 0. 690 00:35:49,410 --> 00:35:55,314 A tak, keď tlačíme odpoveď tu, to bude tlačiť 0.00. 691 00:35:55,314 --> 00:35:58,430 >> JOSEPH: A len ako poznámku, že v skutočnosti odhodí, čo je po 692 00:35:58,430 --> 00:35:59,390 desatinná čiarka. 693 00:35:59,390 --> 00:36:03,180 Takže ak ste namiesto toho mal 6 delené 10, si možno myslíte, že by vám 694 00:36:03,180 --> 00:36:05,200 0.6 a potom by ste zaokrúhliť nahor na 1. 695 00:36:05,200 --> 00:36:10,520 Ale v skutočnosti to, čo sa stane, keď to typ úlohy, to je to, že to, čo je kvapky 696 00:36:10,520 --> 00:36:11,470 za desatinnou čiarkou. 697 00:36:11,470 --> 00:36:13,020 Takže 0.6 sa stanú 0. 698 00:36:13,020 --> 00:36:13,370 >> ROB: Jo. 699 00:36:13,370 --> 00:36:15,160 A budeme hovoriť skráti za to. 700 00:36:15,160 --> 00:36:21,760 Takže zakaždým, keď pretypovať na int, desatinná skrátený. 701 00:36:21,760 --> 00:36:23,980 Takže oprava, ktorá - je tu vlastne dva. 702 00:36:23,980 --> 00:36:27,890 A ja budem robiť to druhé, pretože toto je oveľa jednoduchšie opraviť. 703 00:36:27,890 --> 00:36:32,670 >> Takže jedna oprava je použiť plaváky v divízii. 704 00:36:32,670 --> 00:36:34,720 A naozaj, máte len aby jeden z nich float. 705 00:36:34,720 --> 00:36:37,400 Ale je to trochu jasnejšie len aby oba plaváky. 706 00:36:37,400 --> 00:36:41,170 Tak 1,0 delené 10,0 je delenie dvoma plaváky. 707 00:36:41,170 --> 00:36:43,970 Takže odpoveď bude skončiť float, a tak budete 708 00:36:43,970 --> 00:36:48,050 správne vytlačiť 0.10 tu. 709 00:36:48,050 --> 00:36:52,220 >> Niečo, čo nefunguje tak dobre o, že je dobre, iste, to bolo jednoduché 710 00:36:52,220 --> 00:36:56,240 tak previesť 1 až plávať tým, že 1.0. 711 00:36:56,240 --> 00:37:02,180 Ale čo keď namiesto toho sme mali dve celé čísla ako int x sa rovná 1 a int y 712 00:37:02,180 --> 00:37:05,660 sa rovná 10, a potom sme chceli Ak chcete x delené y? 713 00:37:05,660 --> 00:37:10,420 Takže to nie je ľahké len robiť X.0, alebo tak niečo. 714 00:37:10,420 --> 00:37:12,790 >> Takže oprava, ktorá je casting. 715 00:37:12,790 --> 00:37:19,780 Takže liatie je spôsob, ako v C previesť z jednej premennej typu na iný. 716 00:37:19,780 --> 00:37:22,320 Tak tu, 1 je celé číslo. 717 00:37:22,320 --> 00:37:27,050 A tým, že tento plavák pred že sme obsadení 1 až plaváku. 718 00:37:27,050 --> 00:37:30,350 A tak to bude prevádzať 1 do 1,0. 719 00:37:30,350 --> 00:37:33,380 A to bude prevádzať 10 na 10,0. 720 00:37:33,380 --> 00:37:36,790 >> A potom, čo sa správajú podobne ako Predchádzajúce verzie sa len ukázalo, 721 00:37:36,790 --> 00:37:42,190 kde, ako sa očakávalo, dostaneme 0,10 a to bude tlačiť to. 722 00:37:42,190 --> 00:37:44,120 A môžeme to urobiť s premenné, taky. 723 00:37:44,120 --> 00:37:47,376 Takže môžeme povedať, float x delené float y. 724 00:37:47,376 --> 00:37:48,626 >> JOSEPH: Nejaké otázky? 725 00:37:48,626 --> 00:37:54,182 726 00:37:54,182 --> 00:38:00,090 >> ROB: Takže, rovnako ako v bežnom matematike, máme operátor prednosť. 727 00:38:00,090 --> 00:38:06,960 Takže matiku, máte väčšiu pravdepodobnosť hovoriť poradí operácií. 728 00:38:06,960 --> 00:38:09,890 Tu je oficiálny termín je operátor prednosť. 729 00:38:09,890 --> 00:38:15,230 Ale operátor prednosť, alebo väčšina operátori, je, ako by sa dalo očakávať. 730 00:38:15,230 --> 00:38:22,660 >> Takže rovnako ako v matematike, 2 krát 10 je bude zoskupené bližšie ako 731 00:38:22,660 --> 00:38:25,410 Tento 10 deleno 2 a potom 2. 732 00:38:25,410 --> 00:38:29,745 Poradie operácií, bude to robiť 2 časy 10, 10 deleno 2, a potom 733 00:38:29,745 --> 00:38:32,720 to bude robiť 20 plus 5 plus 2. 734 00:38:32,720 --> 00:38:37,020 Takže je to, ako sa očakávalo, a môžete použiť zátvorky pre zoskupenie výrazov. 735 00:38:37,020 --> 00:38:41,063 Nemožno použiť hranaté zátvorky do skupiny výrazov. 736 00:38:41,063 --> 00:38:41,544 Jo? 737 00:38:41,544 --> 00:38:43,468 >> SPEAKER 5: Mohli by ste vlastne stačí prejsť späť o jednu chvíľku? 738 00:38:43,468 --> 00:38:47,316 Môžete obsadiť int na reťazec? 739 00:38:47,316 --> 00:38:53,330 >> ROB: Tak v C, môžete obsadiť čokoľvek Ak chcete čokoľvek chcete. 740 00:38:53,330 --> 00:38:55,600 To neznamená, že je to dobrá vec. 741 00:38:55,600 --> 00:38:59,760 Takže, keď cast int na reťazec, to znamená, že - 742 00:38:59,760 --> 00:39:03,240 a my sa do toho oveľa hlbšie - 743 00:39:03,240 --> 00:39:03,720 >> JOSEPH: Oveľa neskôr. 744 00:39:03,720 --> 00:39:06,840 >> ROB: Nechcel som povedať oveľa neskôr, tak som sa snažil zmeniť svoj trest. 745 00:39:06,840 --> 00:39:13,370 Dostaneme sa do neho oveľa dôkladnejšie neskôr, kedy naozaj, keď máte 746 00:39:13,370 --> 00:39:14,810 Reťazec premenné - 747 00:39:14,810 --> 00:39:17,160 takže reťazec môže byť ľubovoľne dlho, že jo? 748 00:39:17,160 --> 00:39:21,850 A my sme hovorili, že int je štyri byty a dlhé dlhé osem 749 00:39:21,850 --> 00:39:23,620 bajtov a plavák je štyri bajty. 750 00:39:23,620 --> 00:39:29,520 Takže reťazec, rovnako ako int, má len určitý počet bajtov k nej. 751 00:39:29,520 --> 00:39:31,800 A to bude štyri bajty. 752 00:39:31,800 --> 00:39:34,750 >> Ale reťazec môže byť docela ľubovoľne dlho, že jo? 753 00:39:34,750 --> 00:39:40,190 Tak ahoj svet už, či je to 10 znaky alebo čokoľvek, je to už 754 00:39:40,190 --> 00:39:42,670 bude v priebehu 4 bajty Aj vojde do reťazca. 755 00:39:42,670 --> 00:39:51,140 A tak, ako struny naozaj funguje, je, že ak sú v pamäti, že reťazec 756 00:39:51,140 --> 00:39:52,380 je zachovaná. 757 00:39:52,380 --> 00:39:57,290 >> A tak sa sem, keď poviem, že reťazec x rovná Hello World, vnútorný x je 758 00:39:57,290 --> 00:40:01,840 Len hovorím, oh, ahoj svet je uložený v tomto konkrétnom mieste v pamäti. 759 00:40:01,840 --> 00:40:07,060 Takže keď sa budeme snažiť obsadiť celé číslo k reťazec, potom sa snažíme interpretovať 760 00:40:07,060 --> 00:40:10,500 nejaký náhodný časť pamäte ako reťazec. 761 00:40:10,500 --> 00:40:14,465 A to takmer vždy zlomí veci. 762 00:40:14,465 --> 00:40:17,040 >> JOSEPH: Ale či to zamieňaný vy, budeme sa ho pokrývajúci 763 00:40:17,040 --> 00:40:17,550 viac do hĺbky neskôr. 764 00:40:17,550 --> 00:40:17,850 >> ROB: Jo. 765 00:40:17,850 --> 00:40:20,540 To je miesto, kde budete dostať sa do ukazovateľov. 766 00:40:20,540 --> 00:40:25,485 A to je významný kus dvoch týždňov tohto kurzu. 767 00:40:25,485 --> 00:40:28,275 >> SPEAKER 6: Má to fungovať ako objekty v iných jazykoch, alebo ani nie? 768 00:40:28,275 --> 00:40:34,050 >> ROB: Takže v iných jazykoch, objekty budú reprezentovať pomocou ukazovateľov. 769 00:40:34,050 --> 00:40:37,070 770 00:40:37,070 --> 00:40:38,793 Nie je to to isté, hoci. 771 00:40:38,793 --> 00:40:42,110 772 00:40:42,110 --> 00:40:42,910 Akékoľvek myšlienky? 773 00:40:42,910 --> 00:40:43,760 >> JOSEPH: Nie 774 00:40:43,760 --> 00:40:44,185 Žiadne myšlienky. 775 00:40:44,185 --> 00:40:44,980 >> ROB: OK. 776 00:40:44,980 --> 00:40:46,994 >> JOSEPH: Ďalšie. 777 00:40:46,994 --> 00:40:48,255 >> ROB: Len choď s tým. 778 00:40:48,255 --> 00:40:48,670 Dobrá. 779 00:40:48,670 --> 00:40:51,120 Tak modulo. 780 00:40:51,120 --> 00:40:53,900 Rovnako ako máme plus, mínus, deliť a násobiť. 781 00:40:53,900 --> 00:40:56,720 Takže modulo je ten, ktorý môže byť Niet nevideli. 782 00:40:56,720 --> 00:40:59,540 A to len hovorí, dať ja zvyšok. 783 00:40:59,540 --> 00:41:02,850 Takže 55% 10. 784 00:41:02,850 --> 00:41:06,840 Zvyšok robí 55 rozdelená od 10 by 5. 785 00:41:06,840 --> 00:41:09,630 Takže 55% 10 je 5. 786 00:41:09,630 --> 00:41:12,260 A 3% 5 bude 3. 787 00:41:12,260 --> 00:41:14,180 8% 8 bude 0. 788 00:41:14,180 --> 00:41:15,903 16% 15 bude 1. 789 00:41:15,903 --> 00:41:20,670 >> JOSEPH: Jedna vec na vedomie s tým, Tiež je to nemusí fungovať podľa očakávania 790 00:41:20,670 --> 00:41:22,700 Ak používate záporné číslo. 791 00:41:22,700 --> 00:41:26,215 Takže negatívne 5% 4, niektorí ľudia Možno si myslíte, že je - 792 00:41:26,215 --> 00:41:28,890 793 00:41:28,890 --> 00:41:33,808 čo by si myslíte, že negatívne 5% 4 bude? 794 00:41:33,808 --> 00:41:34,792 >> SPEAKER 5: One. 795 00:41:34,792 --> 00:41:37,920 >> JOSEPH: Takže niektorí ľudia hovoria jedno, Niektorí ľudia hovoria, že negatívne jednu. 796 00:41:37,920 --> 00:41:38,450 Ale čo - 797 00:41:38,450 --> 00:41:40,820 >> ROB: Ja by som ani povedal jeden z nich. 798 00:41:40,820 --> 00:41:42,370 >> JOSEPH: dva, je mi ľúto. 799 00:41:42,370 --> 00:41:43,240 Niektorí ľudia hovoria - 800 00:41:43,240 --> 00:41:43,450 >> ROB: Three. 801 00:41:43,450 --> 00:41:43,800 >> JOSEPH: Tri? 802 00:41:43,800 --> 00:41:44,890 >> ROB: Negatívne - 803 00:41:44,890 --> 00:41:45,950 čo bolo - negatívne päť - 804 00:41:45,950 --> 00:41:47,100 >> JOSEPH: Tri, tri, tri. 805 00:41:47,100 --> 00:41:48,450 Prepáčte. 806 00:41:48,450 --> 00:41:51,910 Vzhľadom k tomu, modulo, zvyčajne, keď ste videl inde, zvyčajne to znamená, 807 00:41:51,910 --> 00:41:54,000 vracia kladné číslo, že jo? 808 00:41:54,000 --> 00:42:01,160 >> ROB: Takže keď hovoríme v matematike,% 10 je, majú tendenciu chcieť, aby vám - 809 00:42:01,160 --> 00:42:05,980 ak budeme mod do 10., potom očakávame, že získať číslo medzi 0 a 9. 810 00:42:05,980 --> 00:42:09,860 Vo tu, že nie je pravda, že ste Získate záporné čísla sa vrátil. 811 00:42:09,860 --> 00:42:15,898 >> JOSEPH: Tak negatívne 5% 4 by bol negatívny 1. 812 00:42:15,898 --> 00:42:19,325 >> ROB: Ale to je zriedkavé, že si mod-ing záporné čísla sa začínajú. 813 00:42:19,325 --> 00:42:25,490 814 00:42:25,490 --> 00:42:25,970 Preskočiť. 815 00:42:25,970 --> 00:42:27,314 >> JOSEPH: Jo. 816 00:42:27,314 --> 00:42:29,420 >> ROB: Meh. 817 00:42:29,420 --> 00:42:29,990 OK. 818 00:42:29,990 --> 00:42:36,400 Takže posledná vec poukázať na to, o plaváky je, že je to nebezpečné správanie, 819 00:42:36,400 --> 00:42:39,850 ale plaváky nie sú presné zastúpenie. 820 00:42:39,850 --> 00:42:46,190 Takže ísť späť do bajtov znova, nezabudnite že int je vždy štyri byty a 821 00:42:46,190 --> 00:42:47,830 plavák je vždy štyri bajty. 822 00:42:47,830 --> 00:42:51,340 Takže Lucasova príkladom je celkom dobrý. 823 00:42:51,340 --> 00:42:55,730 >> Takže myslíte, že z 1 delené 3. 824 00:42:55,730 --> 00:42:57,800 Tak 0,3333333. 825 00:42:57,800 --> 00:43:03,540 Ak mám len 32 bitov, ako môže Aj uložiť 0,33333 presne? 826 00:43:03,540 --> 00:43:07,250 A možno, z akéhokoľvek dôvodu, hovoríte, v poriadku, no, povedzme, že 827 00:43:07,250 --> 00:43:13,210 že tento konkrétny 1011001, poďme len povedať, že by mal byť 0,333333. 828 00:43:13,210 --> 00:43:16,960 No, máte len konečný počet tie bity, takže je nemožné, aby 829 00:43:16,960 --> 00:43:22,550 predstavujú každý s plávajúcou desatinnou čiarkou vzhľadom k len 32 bitov hodnoty. 830 00:43:22,550 --> 00:43:25,580 >> No, to je nemožné reprezentovať niektorý plávajúce bodová hodnota daná nekonečná - 831 00:43:25,580 --> 00:43:28,480 dobre, vzhľadom k tomu akýkoľvek konečný počet bitov. 832 00:43:28,480 --> 00:43:38,265 Takže otázkou je, dobre, keď sme použili tlačiť na dve desatinné miesta, 833 00:43:38,265 --> 00:43:42,000 sme správne dostať odpoveď 0.10. 834 00:43:42,000 --> 00:43:47,510 Ale pod kapotou, je to naozaj sú uložené tak blízko, ako je to možné, aby 835 00:43:47,510 --> 00:43:51,790 0.10 ako tie kúsky môžu predstavovať. 836 00:43:51,790 --> 00:43:53,200 Je to na ďalšiu snímku? 837 00:43:53,200 --> 00:43:53,830 Alebo nie? 838 00:43:53,830 --> 00:43:54,660 >> JOSEPH: Jo, je to tak. 839 00:43:54,660 --> 00:43:55,750 >> ROB: Blegh, blegh. 840 00:43:55,750 --> 00:43:57,760 >> JOSEPH: Jo, je to možné len vytiahnuť poznámky sa trochu. 841 00:43:57,760 --> 00:43:59,700 >> ROB: Idem pre zväčšenie v na posledný na to. 842 00:43:59,700 --> 00:44:00,950 Ach môj bože, to je [nepočuteľný]. 843 00:44:00,950 --> 00:44:06,089 844 00:44:06,089 --> 00:44:08,300 Takže číslo. 845 00:44:08,300 --> 00:44:12,300 To je to, čo sa bude tlačiť ak sme sa spustiť tento program. 846 00:44:12,300 --> 00:44:20,340 A všimnite si, že to nie je naozaj veľký problém ak budeme len starať o ako 847 00:44:20,340 --> 00:44:21,920 dve až tri desatinné miesta. 848 00:44:21,920 --> 00:44:26,700 Rovnako ako my len pôvodne tlačený 0,10, a to je dôvod, prečo sme nevideli nič zlé. 849 00:44:26,700 --> 00:44:31,380 Ale akonáhle začneme dostať do presný, presný počet, že je to 850 00:44:31,380 --> 00:44:35,660 predstavuje, vidíme, že to tak nie je presne predstavujú 0,1. 851 00:44:35,660 --> 00:44:40,900 >> A časť problému je tu ako, v poriadku, to je v poriadku, ale, no, 852 00:44:40,900 --> 00:44:46,120 Prvé, čo keď sme sa snažili robiť, Odpoveď rovná sa rovná 0,1? 853 00:44:46,120 --> 00:44:49,200 Je to ísť vrátiť true alebo false? 854 00:44:49,200 --> 00:44:51,850 A tak to je ťažké povedať. 855 00:44:51,850 --> 00:44:53,330 Myslím, že to vlastne môže vrátiť true. 856 00:44:53,330 --> 00:44:55,265 Bude to prvý - 857 00:44:55,265 --> 00:44:56,180 Neviem. 858 00:44:56,180 --> 00:45:00,090 Odpoveď je, akonáhle začnete zaoberať s plávajúcou desatinnou čiarkou hodnoty, ste celkom 859 00:45:00,090 --> 00:45:05,150 e by sa nemala používať rovnosť kvôli tejto nepresnosti. 860 00:45:05,150 --> 00:45:09,470 >> A za všetko, čo viem, je to stý desatinné miesto, 861 00:45:09,470 --> 00:45:13,670 s plávajúcou desatinnou čiarkou nebol schopný správne spracovať. 862 00:45:13,670 --> 00:45:18,180 A tak rovnosť bude len zlyhať aj hoci číslo - ak bolo 863 00:45:18,180 --> 00:45:24,450 pomocou presných čísel, by čísla boli presne rovnaké. 864 00:45:24,450 --> 00:45:27,790 Je to v priebehu asi 50 výpočty pomocou týchto plávajúce 865 00:45:27,790 --> 00:45:30,270 bodové hodnoty, chyba môže stavať a vyššie a vyššie, a 866 00:45:30,270 --> 00:45:31,125 veci proste niečo pokaziť. 867 00:45:31,125 --> 00:45:33,870 >> JOSEPH: A tam boli naozaj slávne príklady tohto deja. 868 00:45:33,870 --> 00:45:37,190 Rovnako ako inžinieri NASA sa dostali tento zlé, spôsobuje rakety vybuchnúť v 869 00:45:37,190 --> 00:45:38,665 vzduchu potom, čo bola zahájená. 870 00:45:38,665 --> 00:45:41,490 A veľa otázok, ako je to. 871 00:45:41,490 --> 00:45:41,956 Tak jo. 872 00:45:41,956 --> 00:45:45,218 >> SPEAKER 6: Keď sa povie 0,3 f, to skrátiť zvyšok? 873 00:45:45,218 --> 00:45:46,468 Alebo to zaokrúhliť smerom nahor alebo nadol? 874 00:45:46,468 --> 00:45:48,800 875 00:45:48,800 --> 00:45:50,200 >> ROB: Bude printf okolo neho? 876 00:45:50,200 --> 00:45:52,180 >> JOSEPH: Myslím, že printf skráti. 877 00:45:52,180 --> 00:45:52,640 >> ROB: OK. 878 00:45:52,640 --> 00:45:59,890 Takže môžeme podobne ísť v opačnom smer Tu, v tomto prípade, 879 00:45:59,890 --> 00:46:03,320 Najbližšie to mohlo predstavovať 0.1 bol s týmto číslom. 880 00:46:03,320 --> 00:46:06,820 Najbližšie to by mohol byť schopný predstavujú 0,2 je v protiklade 881 00:46:06,820 --> 00:46:11,420 smer,, 199999996356 alebo tak niečo. 882 00:46:11,420 --> 00:46:17,480 Takže keď sme išli v tomto smere veci, potom printf 0,3 f sa vráti 883 00:46:17,480 --> 00:46:20,866 1,99 namiesto 2,00. 884 00:46:20,866 --> 00:46:22,960 >> JOSEPH: A ja nie som úplne istí, na ktoré. 885 00:46:22,960 --> 00:46:25,430 Možno budete chcieť napísať malé, malé Program len skontrolovať, že. 886 00:46:25,430 --> 00:46:29,370 >> ROB: Aj keď to, čo sme si istí, že ak ste sa pokúsili obsadiť, ktoré sa 887 00:46:29,370 --> 00:46:33,660 int, a liatie na int bude spôsobí, že sa skrátiť desatinu, ak 888 00:46:33,660 --> 00:46:38,140 pokuse o obsadenie 1.9999999 na int, dostanete 1. 889 00:46:38,140 --> 00:46:41,440 A tak by ste mali obvykle použiť kolo funkcie v matematickej knižnici. 890 00:46:41,440 --> 00:46:44,190 891 00:46:44,190 --> 00:46:45,440 Otázky? 892 00:46:45,440 --> 00:46:47,660 893 00:46:47,660 --> 00:46:48,982 OK. 894 00:46:48,982 --> 00:46:54,000 >> JOSEPH: Tak pohybujúce sa na podmienkach a logické výrazy. 895 00:46:54,000 --> 00:46:58,120 Takže ste videl tie. 896 00:46:58,120 --> 00:47:07,420 A skutočne, dovoľte mi, aby som sa uistil, môj Počítač je v správnom formáte tu. 897 00:47:07,420 --> 00:47:08,670 Space. 898 00:47:08,670 --> 00:47:10,630 899 00:47:10,630 --> 00:47:13,870 Je nám ľúto, budeme musieť vysporiadať trochu s cut-off na okrajoch. 900 00:47:13,870 --> 00:47:15,830 >> Ale jo, vy ste videli predtým v roku Scratch. 901 00:47:15,830 --> 00:47:19,930 Tak toto tu je výrazom , Ktorý sa používa v 902 00:47:19,930 --> 00:47:21,250 podmienený príkaz. 903 00:47:21,250 --> 00:47:23,930 Takže odpoveď väčšie ako nula ti true alebo false. 904 00:47:23,930 --> 00:47:26,530 A to je veľmi dôležité, pretože ktoré nám umožňujú predstaviť 905 00:47:26,530 --> 00:47:28,670 logika do nášho kódu. 906 00:47:28,670 --> 00:47:32,820 >> Tak napríklad, to je program, písaný v Scratch, ktorý požiada užívateľa 907 00:47:32,820 --> 00:47:36,980 pre celé číslo a povie im, nech číslo, ktoré vám dal bola 908 00:47:36,980 --> 00:47:38,690 kladné alebo záporné číslo. 909 00:47:38,690 --> 00:47:42,980 A konverzia sem vidieť, je najprv vytlačiť vyhlásenie, 910 00:47:42,980 --> 00:47:43,870 daj mi číslo. 911 00:47:43,870 --> 00:47:45,980 A potom sa ich spýtate na celé číslo. 912 00:47:45,980 --> 00:47:49,870 >> A potom použiť podmienené logiky nad tu overiť, či toto číslo 913 00:47:49,870 --> 00:47:52,030 bol v skutočnosti väčší ako nula, alebo nie. 914 00:47:52,030 --> 00:47:58,960 Takže tu máme logický výraz vnútri podmienené If. 915 00:47:58,960 --> 00:48:00,660 Je tam nejaké otázky? 916 00:48:00,660 --> 00:48:03,030 Existujú nejaké otázky o tom? 917 00:48:03,030 --> 00:48:03,950 OK. 918 00:48:03,950 --> 00:48:06,140 >> Takže tam je viac, než len väčšie ako, samozrejme. 919 00:48:06,140 --> 00:48:10,385 Môžete vytvoriť logických výrazov pomocou väčšiny druhov vecí, ktoré 920 00:48:10,385 --> 00:48:11,150 by si myslel, ze v matematike. 921 00:48:11,150 --> 00:48:12,370 Tak väčšia ako. 922 00:48:12,370 --> 00:48:13,740 To by malo byť menšie ako. 923 00:48:13,740 --> 00:48:14,990 Prepáčte. 924 00:48:14,990 --> 00:48:18,520 925 00:48:18,520 --> 00:48:19,760 A odstup. 926 00:48:19,760 --> 00:48:22,971 >> ROB: Bože chráň ju opustiť. 927 00:48:22,971 --> 00:48:23,620 >> JOSEPH: Dobre. 928 00:48:23,620 --> 00:48:25,950 Takže väčšie ako, menšie ako, väčšie alebo rovné, menšie 929 00:48:25,950 --> 00:48:27,070 alebo rovné. 930 00:48:27,070 --> 00:48:31,980 Používame dvojité rovná pre kontrolu rovnosť, pretože jeden sa rovná prostriedky 931 00:48:31,980 --> 00:48:32,810 úloha, že jo? 932 00:48:32,810 --> 00:48:33,140 Áno. 933 00:48:33,140 --> 00:48:37,130 A potom môžeme tiež nemajú rovná podľa pomocou výkričník, rovná. 934 00:48:37,130 --> 00:48:41,530 >> A tento symbol výkričník môže tiež byť rozšírená tak, aby v prípade, že chcete 935 00:48:41,530 --> 00:48:44,050 k obráteniu nejaký druh Boolean výraz, môžete to urobiť. 936 00:48:44,050 --> 00:48:48,530 Takže to bude hodnotiť na hodnotu true iba v prípade, že odpoveď je menej 937 00:48:48,530 --> 00:48:51,240 než alebo sa rovná nule. 938 00:48:51,240 --> 00:48:53,950 Akékoľvek otázky na to? 939 00:48:53,950 --> 00:48:55,180 OK. 940 00:48:55,180 --> 00:48:58,840 >> Takže si môžete tiež kombinovať tieto Výrazy používajúce logické A a 941 00:48:58,840 --> 00:48:59,790 logické Or. 942 00:48:59,790 --> 00:49:03,530 Takže je to len symbol A, ktorý by mal byť posun, 7.. 943 00:49:03,530 --> 00:49:07,720 A to je symbol rúrka, ktorá je nie je malá písmena L. Je to jedna 944 00:49:07,720 --> 00:49:09,440 To je priamo nad klávesou Enter. 945 00:49:09,440 --> 00:49:12,870 Takže môžete použiť dva z nich symbolizuje logické a logické Or. 946 00:49:12,870 --> 00:49:18,180 >> Takže to bude vracať hodnotu true iba vtedy, ak odpoveď je jeden, dva, tri, alebo štyri. 947 00:49:18,180 --> 00:49:23,030 A to vráti hodnotu true iba vtedy, ak odpoveď Okrem toho je na oboch stranách. 948 00:49:23,030 --> 00:49:26,190 Takže to nie je jeden, dva, tri, alebo štyri. 949 00:49:26,190 --> 00:49:28,385 A ako by ste použiť že vo výraze - 950 00:49:28,385 --> 00:49:29,990 >> ROB: Alebo nula alebo päť. 951 00:49:29,990 --> 00:49:32,200 >> JOSEPH: Zero alebo päť. 952 00:49:32,200 --> 00:49:32,380 Prepáčte. 953 00:49:32,380 --> 00:49:33,320 Áno, áno, áno. 954 00:49:33,320 --> 00:49:34,180 OK. 955 00:49:34,180 --> 00:49:38,980 A tu teraz, rovnakým spôsobom, by sa použiť ten výraz, menšie 956 00:49:38,980 --> 00:49:42,000 Výraz strana Ak podmienené vyhlásenie, mali by ste tiež použiť 957 00:49:42,000 --> 00:49:47,800 Rovnakým spôsobom by len uvedenie vnútri zátvorkách u príkazu If. 958 00:49:47,800 --> 00:49:54,020 Takže to printf bude len oheň, ak odpoveď je jeden, dva, tri, alebo štyri. 959 00:49:54,020 --> 00:49:56,002 Akékoľvek otázky týkajúce sa kombinuje výrazy? 960 00:49:56,002 --> 00:50:00,450 961 00:50:00,450 --> 00:50:04,240 >> Takže je tu ďalší podmienené konštrukt hovoríme if / else. 962 00:50:04,240 --> 00:50:08,120 Takže v podstate, to teraz znamená, OK, Ak niečo, čo som chcel skontrolovať nebol 963 00:50:08,120 --> 00:50:11,600 pravda, potom ísť do iného a vykonávať túto inú akciu. 964 00:50:11,600 --> 00:50:15,570 Takže v tomto konkrétnom prípade, spýtal som sa užívateľ na celé číslo. 965 00:50:15,570 --> 00:50:17,790 Je celé číslo väčšie ako nula? 966 00:50:17,790 --> 00:50:18,310 Áno? 967 00:50:18,310 --> 00:50:20,100 No, potom sa zdvihol kladné číslo. 968 00:50:20,100 --> 00:50:22,320 Ak nie, potom to musí mať bol negatívny, alebo nula. 969 00:50:22,320 --> 00:50:27,530 Takže ste si vybral záporné číslo alebo nula v tomto prípade. 970 00:50:27,530 --> 00:50:29,235 Áno. 971 00:50:29,235 --> 00:50:30,485 Alebo nula. 972 00:50:30,485 --> 00:50:36,320 973 00:50:36,320 --> 00:50:39,300 >> A potom tu máme tiež if / else, If a else. 974 00:50:39,300 --> 00:50:45,640 Tak to nám umožňuje vykonať postupnosť veci, iba v prípade, že ako prvá sa zlyhá. 975 00:50:45,640 --> 00:50:49,540 Takže v tomto prípade, teraz robíme posledný si vyberiete nulu. 976 00:50:49,540 --> 00:50:53,080 Takže ak sa ani vybral pozitívne, ani záporné číslo, potom sa musí 977 00:50:53,080 --> 00:50:53,640 si vybral nulu. 978 00:50:53,640 --> 00:50:56,720 Tak to proste chodí dole reťaz takto. 979 00:50:56,720 --> 00:50:59,960 >> Takže príklad toho, ako Ak sa líši od - 980 00:50:59,960 --> 00:51:02,590 if / else sa líši od len sled stability. 981 00:51:02,590 --> 00:51:07,680 A to je častá otázka, ktorá ľudia pýtajú sa, no, ak sa dostanete ako 982 00:51:07,680 --> 00:51:11,265 95, CS50, čo bude tento Program vám povie? 983 00:51:11,265 --> 00:51:12,600 >> SPEAKER 5: Dostal si A. 984 00:51:12,600 --> 00:51:13,490 >> JOSEPH: Áno. 985 00:51:13,490 --> 00:51:14,960 Máš každý jeden z nich priamo. 986 00:51:14,960 --> 00:51:17,130 Máš jedničku, máš B, budete dostal C a D, že jo? 987 00:51:17,130 --> 00:51:19,770 Takže všetci z nich sa hodnotí v poradí. 988 00:51:19,770 --> 00:51:23,570 Takže zatiaľ čo 95 je väčší ako 90, je to Tiež väčšie než 80, je to tiež 989 00:51:23,570 --> 00:51:25,790 väčšie ako 70, a to tiež vyšší ako 60 rokov. 990 00:51:25,790 --> 00:51:27,620 Takže máš všetky tie stupňov. 991 00:51:27,620 --> 00:51:31,630 A predpokladám, že by ste iba chcete A. 992 00:51:31,630 --> 00:51:34,060 >> Spôsob, ako opraviť, že je nahradiť tie s Else / li 's 993 00:51:34,060 --> 00:51:37,540 Takže v tomto prípade, že vidí, že 95 je väčší ako 90 °, a potom to robí 994 00:51:37,540 --> 00:51:38,885 nehodnotí ostatné z výkazov. 995 00:51:38,885 --> 00:51:41,900 996 00:51:41,900 --> 00:51:43,150 Akékoľvek otázky týkajúce sa, že? 997 00:51:43,150 --> 00:51:48,580 998 00:51:48,580 --> 00:51:52,470 >> Takže je tu ďalší podmienené druh štruktúra, ktorá sa tu, ktoré sa 999 00:51:52,470 --> 00:51:53,390 volanie príkazu switch. 1000 00:51:53,390 --> 00:51:57,390 Tak to umožňuje v podstate kontrolovať čo je hodnota čísla, ktoré dal 1001 00:51:57,390 --> 00:51:59,000 do príkazu switch je. 1002 00:51:59,000 --> 00:52:03,200 Takže v tomto prípade, sme prepínanie na n, a hovoríme, oh, ak n je 1003 00:52:03,200 --> 00:52:04,710 jeden, potom vytlačte toto vyhlásenie. 1004 00:52:04,710 --> 00:52:07,910 A potom zlomiť, čo znamená, že výstup z príkazu switch. 1005 00:52:07,910 --> 00:52:12,670 >> Ak to nebol jeden, potom dobre, len nakoniec skontrolovať všetky z týchto prípadov. 1006 00:52:12,670 --> 00:52:16,280 A tak sa kontroluje, či je to jeden alebo dva alebo tri, a to vytlačí podľa toho. 1007 00:52:16,280 --> 00:52:19,780 A čo tu to default kľúčové slovo dole prostriedky, ak nemali zadávať akákoľvek 1008 00:52:19,780 --> 00:52:21,690 z tých, povedzte Neplatné. 1009 00:52:21,690 --> 00:52:25,910 Takže povedzme, že som sa požiadať o n a užívateľ dáva mi štyri. 1010 00:52:25,910 --> 00:52:29,470 No, to zodpovedá žiadny z týchto prípadov, tak to bude tlačiť to, čo je v 1011 00:52:29,470 --> 00:52:30,540 predvolené sekcie. 1012 00:52:30,540 --> 00:52:31,180 Áno, otázka? 1013 00:52:31,180 --> 00:52:32,614 >> SPEAKER 5: Môžete použiť Boolean výrazy miesto 1014 00:52:32,614 --> 00:52:33,570 jeden, dva, alebo tri? 1015 00:52:33,570 --> 00:52:36,940 >> JOSEPH: Takže otázka je môžete použiť Booleovské výrazy namiesto jedného, 1016 00:52:36,940 --> 00:52:37,940 dva, tri a? 1017 00:52:37,940 --> 00:52:40,520 A v C, verím, že vám nemôže robiť, že. 1018 00:52:40,520 --> 00:52:44,320 Ale v iných jazykoch, ktoré by mohli narazíte na konci roka 1019 00:52:44,320 --> 00:52:46,460 semester ako JavaScript, môžete. 1020 00:52:46,460 --> 00:52:50,050 No, mali by ste počítať prvý že hodnota a použiť ho v 1021 00:52:50,050 --> 00:52:50,650 prepnúť vyhlásenie. 1022 00:52:50,650 --> 00:52:50,930 Jo? 1023 00:52:50,930 --> 00:52:54,760 >> ROB: Takže časť prospech spínača vyhlásenie je, že na to, ak ste to urobil 1024 00:52:54,760 --> 00:52:58,680 as if / else, tak ako v prípade n sa rovná sa rovná jednej alebo čokoľvek iného. 1025 00:52:58,680 --> 00:53:00,300 Else / li n rovné rovná sa dva, čokoľvek. 1026 00:53:00,300 --> 00:53:01,960 Else / li n rovné rovná tri. 1027 00:53:01,960 --> 00:53:05,930 Takže ako by program spustiť, je to by postupne ísť dole v tomto zozname 1028 00:53:05,930 --> 00:53:07,500 a skontrolujte, či je n jeden? 1029 00:53:07,500 --> 00:53:08,040 Nie. 1030 00:53:08,040 --> 00:53:09,070 N dve? 1031 00:53:09,070 --> 00:53:09,490 Nie. 1032 00:53:09,490 --> 00:53:10,940 Je n tri? 1033 00:53:10,940 --> 00:53:11,710 Jo. 1034 00:53:11,710 --> 00:53:12,610 Urob to. 1035 00:53:12,610 --> 00:53:15,270 >> Vzhľadom k tomu, s výrokmi spínač, je to skutočne schopný zostaviť, aby to bolo 1036 00:53:15,270 --> 00:53:16,360 naozaj rýchlo. 1037 00:53:16,360 --> 00:53:19,550 A akonáhle sa hovorí, že spínač je hovorí, všetko v poriadku, n je dva, ja som 1038 00:53:19,550 --> 00:53:23,060 bezprostredne chystá skočiť tam, kde Ja som mal začať vykonávanie. 1039 00:53:23,060 --> 00:53:26,080 Nebudem sa najprv skontrolujte, n je jedna, je n dva? 1040 00:53:26,080 --> 00:53:28,860 To môže okamžite začať robiť to, čo má robiť. 1041 00:53:28,860 --> 00:53:33,830 >> A kvôli tomu, nemôže sa booleovské podmienky. 1042 00:53:33,830 --> 00:53:36,480 Alebo to bude musieť urobiť, sekvenčné, rovnako ako, v poriadku, je n 1043 00:53:36,480 --> 00:53:37,820 väčšie ako nula? 1044 00:53:37,820 --> 00:53:41,140 Inak je n väčšie ako 10, alebo čokoľvek iného. 1045 00:53:41,140 --> 00:53:44,780 >> JOSEPH: V tomto prípade, ak ste použili If / else, potom prepínač by ak to 1046 00:53:44,780 --> 00:53:47,792 bežať približne trikrát rýchlejšie než if / else, ak je. 1047 00:53:47,792 --> 00:53:53,060 1048 00:53:53,060 --> 00:53:56,040 Môžeme zorganizovať spínač v takej tak, že sa neporušujú 1049 00:53:56,040 --> 00:53:57,520 Po každom z týchto prípadov. 1050 00:53:57,520 --> 00:54:00,960 Takže v tomto prípade, som rozdelenie čísla, ktoré sa rozhodnú do jedného a 1051 00:54:00,960 --> 00:54:04,250 dva byť nie vysoké čísla a tri je vysoké číslo. 1052 00:54:04,250 --> 00:54:08,290 >> Takže v tomto prípade, ak je n je jedna alebo dve, to zasiahne prípad a potom to bude 1053 00:54:08,290 --> 00:54:10,640 prepadnúť, pretože nie je prestávka. 1054 00:54:10,640 --> 00:54:11,610 A to skončí tu. 1055 00:54:11,610 --> 00:54:15,360 Takže ak si vyberieme jeden, bude to robiť printf a potom zlomiť tak, že žiadny z 1056 00:54:15,360 --> 00:54:17,610 to je popravený. 1057 00:54:17,610 --> 00:54:21,870 A samozrejme, ak sa vstúpiť do troch alebo niečo iné, potom to bude preskakovať 1058 00:54:21,870 --> 00:54:25,320 tie, a nie tam, a to bude namiesto toho spustiť 1059 00:54:25,320 --> 00:54:27,490 zodpovedajúci riadok. 1060 00:54:27,490 --> 00:54:29,390 Existujú nejaké otázky o tom? 1061 00:54:29,390 --> 00:54:29,780 Áno? 1062 00:54:29,780 --> 00:54:32,642 >> SPEAKER 4: Chceli by ste si chybu, ak vám mal prestávku po prípade, že jeden, ale to 1063 00:54:32,642 --> 00:54:34,550 nemal niečo pre to urobiť? 1064 00:54:34,550 --> 00:54:37,820 >> JOSEPH: Takže otázka je by vám chyba, ak máte prestávku po 1065 00:54:37,820 --> 00:54:39,730 prípade, že jeden, ale nie je nič, čo robiť? 1066 00:54:39,730 --> 00:54:41,520 A odpoveď je nie. 1067 00:54:41,520 --> 00:54:43,172 Nič v skutočnosti dôjde k chybe. 1068 00:54:43,172 --> 00:54:44,590 Jo, mm hmm. 1069 00:54:44,590 --> 00:54:54,540 >> Tak ako tak nejako malá zmena tu, Chystám sa dať printf tu. 1070 00:54:54,540 --> 00:54:55,790 Jejda. 1071 00:54:55,790 --> 00:55:00,994 1072 00:55:00,994 --> 00:55:04,880 Takže to, čo by to tlačiť, ak Dal som jeden v ako vstup? 1073 00:55:04,880 --> 00:55:07,530 1074 00:55:07,530 --> 00:55:07,770 Jo. 1075 00:55:07,770 --> 00:55:10,360 To by sa ti to netrvalo vysoký počet dvakrát, že jo? 1076 00:55:10,360 --> 00:55:13,500 Vzhľadom k tomu, že by zasiahnutý, že prvý prípad, by to zlomiť, a to by spadnúť 1077 00:55:13,500 --> 00:55:15,730 až druhom prípade. 1078 00:55:15,730 --> 00:55:16,950 Akékoľvek otázky týkajúce sa, že? 1079 00:55:16,950 --> 00:55:18,280 >> ROB: Už máte iný dotaz? 1080 00:55:18,280 --> 00:55:20,840 >> JOSEPH: OK, v pohode. 1081 00:55:20,840 --> 00:55:22,400 Dobrá. 1082 00:55:22,400 --> 00:55:25,780 Takže tam je niečo iné, čo nazývame ternárnu operátor, ktorý je v podstate 1083 00:55:25,780 --> 00:55:29,010 alternatívne syntaxe robiť Ak aj potom Else. 1084 00:55:29,010 --> 00:55:30,470 A to vám umožní robiť všetko na jednom riadku. 1085 00:55:30,470 --> 00:55:34,110 Takže v tomto konkrétnom programe, Pýtam užívateľa k n. 1086 00:55:34,110 --> 00:55:37,190 A ak n je väčšie ako 100, hovorím je, že si vybral vysoký počet. 1087 00:55:37,190 --> 00:55:39,560 Inak som im povedať, že vybral nízke číslo. 1088 00:55:39,560 --> 00:55:43,030 >> Takže môžeme použiť to naozaj dlhé syntax, reťazec, S, a potom skontrolujte, či n je 1089 00:55:43,030 --> 00:55:45,260 väčšie ako 100 a priradiť to podľa toho. 1090 00:55:45,260 --> 00:55:49,450 Ale môžeme to oveľa stručnejšia pomocou tejto syntaxe ternárnu operátor 1091 00:55:49,450 --> 00:55:52,090 ktorý zahŕňa otázku značka a hrubého čreva. 1092 00:55:52,090 --> 00:55:55,070 Takže otáznik je v podstate pýtam, že jo? 1093 00:55:55,070 --> 00:55:56,625 >> ROB: Možno priblížiť na to. 1094 00:55:56,625 --> 00:55:57,372 >> JOSEPH: Áno. 1095 00:55:57,372 --> 00:56:00,210 Dobrý postreh. 1096 00:56:00,210 --> 00:56:02,550 Tak toto je ternárnu operátor. 1097 00:56:02,550 --> 00:56:06,100 Prvýkrát som sa opýtať, n je väčšie ako 100? 1098 00:56:06,100 --> 00:56:09,770 Ak je, potom som sa urobiť prvý časť pred dvojbodkou. 1099 00:56:09,770 --> 00:56:13,360 Ak tomu tak nie je, potom som spustiť Druhá časť za dvojbodkou. 1100 00:56:13,360 --> 00:56:16,640 Takže, ak n je väčšie ako 100, potom sa zdvihne vysoko a kladie 1101 00:56:16,640 --> 00:56:18,360 že do reťazca s 1102 00:56:18,360 --> 00:56:22,170 Ak n je menšie ako 100, sa vyberie low a potom sa dáva, že do reťazca s 1103 00:56:22,170 --> 00:56:30,186 Tak, že bude kondenzovať tento veľký kus dole do práve tohto jedného riadku. 1104 00:56:30,186 --> 00:56:32,010 >> SPEAKER 5: Je to populárne? 1105 00:56:32,010 --> 00:56:36,070 >> JOSEPH: Áno, to je docela populárny pre veci, kde v podstate chcete 1106 00:56:36,070 --> 00:56:38,700 sa priradenie na základe nejaký stave. 1107 00:56:38,700 --> 00:56:43,110 A v tomto prípade sme sa snažili priradiť hodnotu na reťazec s 1108 00:56:43,110 --> 00:56:44,840 Nie je to tak - 1109 00:56:44,840 --> 00:56:47,670 Myslím, že som to naozaj radšej že v ostatných prípadoch. 1110 00:56:47,670 --> 00:56:49,390 Ale to je obzvlášť užitočné pre túto úlohu. 1111 00:56:49,390 --> 00:56:54,490 >> ROB: To je celkom obyčajný vzor kde máte nejaké premenné, ktoré 1112 00:56:54,490 --> 00:56:58,200 budete hovoriť, či niečo, nastavte táto premenná na jednu hodnotu, inak nastavte 1113 00:56:58,200 --> 00:56:59,810 táto premenná na inú hodnotu. 1114 00:56:59,810 --> 00:57:03,360 A to je scenár kde pomocou trojice. 1115 00:57:03,360 --> 00:57:05,220 >> JOSEPH: A ty úspory veľa liniek, že jo? 1116 00:57:05,220 --> 00:57:08,090 A to práve robí váš kód pravdepodobne trochu čitateľnejšie. 1117 00:57:08,090 --> 00:57:08,635 Áno, otázka? 1118 00:57:08,635 --> 00:57:12,384 >> SPEAKER 6: U trojice, môžete ísť, reťazec s rovní s, otáznik? 1119 00:57:12,384 --> 00:57:15,280 A potom by ste mohli mať, povedzme, päť rôznych možností. 1120 00:57:15,280 --> 00:57:18,310 A v závislosti na tom, čo je počet n bol by si vybrať jeden z nich? 1121 00:57:18,310 --> 00:57:22,210 >> JOSEPH: Takže otázka je, je tam druh syntaxe, kde si môžete urobiť reťazec 1122 00:57:22,210 --> 00:57:25,910 s sa rovná n, a potom mať viac ako dve Možnosti po tej otáznikom? 1123 00:57:25,910 --> 00:57:29,740 A jednoduchá odpoveď je nie, že to nie je naozaj dobrý spôsob, ako to urobiť, že ak 1124 00:57:29,740 --> 00:57:33,850 Ak chcete hniezdo viacnásobné trojica subjekty vnútri každého iný. 1125 00:57:33,850 --> 00:57:38,050 >> Dalo by sa to ako n väčšie ako 100, otáznik, a potom ďalšie 1126 00:57:38,050 --> 00:57:41,850 ternárnu operátor, n väčšie ako 50, otáznik, a hniezdo to tak. 1127 00:57:41,850 --> 00:57:45,240 Ale v tomto prípade, váš kód je dostať trochu nečitateľný a chaotický, 1128 00:57:45,240 --> 00:57:47,920 a to by mohlo byť lepšie jednoducho ísť na Ak / Else v tomto bode. 1129 00:57:47,920 --> 00:57:54,530 >> ROB: A tiež, ako okrajová poznámka, PHP nesprávne implementuje ternárnu 1130 00:57:54,530 --> 00:57:58,053 Operátor tak, aby vnorené ternaries ani fungovať ako by mali. 1131 00:57:58,053 --> 00:57:58,840 >> JOSEPH: Jo. 1132 00:57:58,840 --> 00:58:01,170 Takže to bude trochu mätúce, zvlášť, keď idete 1133 00:58:01,170 --> 00:58:02,145 do rôznych jazykov. 1134 00:58:02,145 --> 00:58:04,810 >> ROB: Je to mätúce dosť, že jazyky sú zle o tom. 1135 00:58:04,810 --> 00:58:08,030 1136 00:58:08,030 --> 00:58:11,510 >> JOSEPH: Takže vlastne, len objasniť, to všetci vieme, čo to 1137 00:58:11,510 --> 00:58:13,900 % S robí tu? 1138 00:58:13,900 --> 00:58:15,650 Akékoľvek otázky týkajúce sa, že? 1139 00:58:15,650 --> 00:58:19,760 Myslím, že len pre kameru,% s v podstate nám umožňuje dať zástupný symbol 1140 00:58:19,760 --> 00:58:20,790 pre reťazca. 1141 00:58:20,790 --> 00:58:23,920 A potom na konci, sme určiť, že Premenná chceme dať do toho 1142 00:58:23,920 --> 00:58:25,500 Držiak miesto je s 1143 00:58:25,500 --> 00:58:27,730 Takže v podstate sa s a dá to sem. 1144 00:58:27,730 --> 00:58:32,130 A potom to bude tlačiť, ste si vybral vysokej alebo ste si vybral nízke číslo. 1145 00:58:32,130 --> 00:58:33,770 OK. 1146 00:58:33,770 --> 00:58:36,970 >> Takže slučky umožňujú vykonávať veci krúživými pohybmi, že jo? 1147 00:58:36,970 --> 00:58:40,300 Možno ste narazili na túto Scratch vo forme Forever slučiek 1148 00:58:40,300 --> 00:58:45,650 alebo Repeat Until alebo opakujte, najmä počet opakovaní. 1149 00:58:45,650 --> 00:58:47,540 Tak prečo je to pre nás dobré? 1150 00:58:47,540 --> 00:58:51,500 No, v C, povedzme, že sme to Pieseň realizovaný v Scratch, že 1151 00:58:51,500 --> 00:58:53,450 spieva, je to pieseň ktorý nikdy nekončí. 1152 00:58:53,450 --> 00:58:55,710 Je to proste pokračuje ďalej a ďalej a večne a navždy. 1153 00:58:55,710 --> 00:58:59,395 No, nemôžete naozaj program že má nekonečný počet printf 1154 00:58:59,395 --> 00:59:00,850 vyhlásenie v tom, že jo? 1155 00:59:00,850 --> 00:59:04,900 >> Takže v tomto prípade, jeden spôsob že by ste mohli urobiť túto prácu a 1156 00:59:04,900 --> 00:59:09,330 , Aby sa vytlačilo navždy je namiesto toho použite cyklus while. 1157 00:59:09,330 --> 00:59:13,640 Takže keď slučka bude vykonávať to, čo je v tele dvoch zložených zátvoriek, ktoré 1158 00:59:13,640 --> 00:59:17,250 Patrí k nej na základe toho, čo Podmienkou je. 1159 00:59:17,250 --> 00:59:21,170 Takže v tomto konkrétnom prípade skôr, ak Ak chceme tlačiť na veky, čo 1160 00:59:21,170 --> 00:59:23,590 môžeme robiť? 1161 00:59:23,590 --> 00:59:25,190 No jasne, že jo? 1162 00:59:25,190 --> 00:59:32,290 >> Tak to nejako v sebe spája myšlienku nejaký logický výraz 1163 00:59:32,290 --> 00:59:33,610 spolu so slučkou. 1164 00:59:33,610 --> 00:59:35,780 A dozvedeli sme sa o logický výrazy skôr. 1165 00:59:35,780 --> 00:59:39,650 Takže zakaždým, keď stav vnútro že keď zostáva pravdou, táto slučka 1166 00:59:39,650 --> 00:59:41,480 bude vykonávať ďalej a ďalej a ďalej. 1167 00:59:41,480 --> 00:59:44,640 A v tomto prípade, ak budeme len dodávať s pravdou, to spôsobí nekonečný 1168 00:59:44,640 --> 00:59:49,310 slučky, ktorá vytlačí pieseň ďalej a ďalej a ako sme žiadali skôr, bez toho, aby 1169 00:59:49,310 --> 00:59:52,410 má program, ktorý má nekonečný počet printf závierke, ktorá je 1170 00:59:52,410 --> 00:59:55,220 nie je možné. 1171 00:59:55,220 --> 00:59:57,810 >> Takže viac presvedčivo, aj keď, môžete použiť s 1172 00:59:57,810 --> 00:59:59,710 variabilný a stav. 1173 00:59:59,710 --> 01:00:04,420 Takže povedzme, že chceme opakovať frázy, šialené, 10 krát. 1174 01:00:04,420 --> 01:00:08,380 Takže, čo môžete robiť s slučky while je môžete najprv inicializovať čítače 1175 01:00:08,380 --> 01:00:10,860 Premenná mimo While do 10. 1176 01:00:10,860 --> 01:00:14,360 A potom sa v podstate zakaždým, keď idete pomocou slučky while, môžete vytlačiť 1177 01:00:14,360 --> 01:00:19,090 vyhlásenie a potom sa zníži Počítadlo variabilný až na konci, 1178 01:00:19,090 --> 01:00:23,020 v určitom okamihu, akonáhle odpočítame Aj dosť krát, 1 od Aj dosť čias - 1179 01:00:23,020 --> 01:00:27,290 a len objasniť, som mínus mínus znamená, že sa rovná Aj mínus 1. 1180 01:00:27,290 --> 01:00:31,280 >> To v podstate prinesie I až Miesto, kde som kedysi hit nula, to 1181 01:00:31,280 --> 01:00:35,260 podmienka už nie je pravda a takže na výstupe zo slučky. 1182 01:00:35,260 --> 01:00:37,045 Takže úplne praštěná len vytlačí 10 krát. 1183 01:00:37,045 --> 01:00:39,550 1184 01:00:39,550 --> 01:00:41,080 Akékoľvek otázky týkajúce sa chvíľu slučky? 1185 01:00:41,080 --> 01:00:44,580 1186 01:00:44,580 --> 01:00:46,790 OK. 1187 01:00:46,790 --> 01:00:50,550 >> Takže tam je spôsob, ako môžeme robiť to, čo sme práve robil v výstižnejší spôsobom s 1188 01:00:50,550 --> 01:00:51,715 to, čomu hovoríme Pre slučky. 1189 01:00:51,715 --> 01:00:55,750 Takže pre slučka sa skladá z inicializácia, stav, a 1190 01:00:55,750 --> 01:00:58,950 aktualizácie, rovnako ako sme mali predtým V tejto slučke while. 1191 01:00:58,950 --> 01:00:59,890 Takže poďme sa pozrieť. 1192 01:00:59,890 --> 01:01:02,900 V tomto cyklus while, mali sme inicializácia, potom sme mali 1193 01:01:02,900 --> 01:01:04,260 za predpokladu, že budeme kontrolovať. 1194 01:01:04,260 --> 01:01:06,450 A potom sme mali aktualizáciu krok v hornej časti. 1195 01:01:06,450 --> 01:01:10,060 >> S slučke for, to v podstate trvá Tieto tri veci a zráža ju 1196 01:01:10,060 --> 01:01:11,370 sa do jedného riadku. 1197 01:01:11,370 --> 01:01:15,130 Takže prvá vec, ktorá to robí v Pre slučky je inicializácia. 1198 01:01:15,130 --> 01:01:19,090 A potom si to bodkočiarku, a potom tie podmienky, ktoré je Aj 1199 01:01:19,090 --> 01:01:22,200 väčší ako nula, ide tam, a potom aktualizovať krok. 1200 01:01:22,200 --> 01:01:26,470 Takže to dostane vykonáva na veľmi koniec tela slučky. 1201 01:01:26,470 --> 01:01:28,790 Takže tieto dva programy sú v podstate rovnocenné. 1202 01:01:28,790 --> 01:01:31,960 1203 01:01:31,960 --> 01:01:33,870 >> Akékoľvek otázky? 1204 01:01:33,870 --> 01:01:37,000 Takže to, čo je rozdiel medzi týmito dvoma? 1205 01:01:37,000 --> 01:01:38,000 Môže niekto poukázať na to? 1206 01:01:38,000 --> 01:01:40,480 To by mohlo byť trochu jemnejšie. 1207 01:01:40,480 --> 01:01:41,930 Je to len veľmi malý rozdiel. 1208 01:01:41,930 --> 01:01:42,330 Áno? 1209 01:01:42,330 --> 01:01:49,008 >> SPEAKER 5: Nebudete môcť používať Premenná som mimo For slučky 1210 01:01:49,008 --> 01:01:49,962 [Nepočuteľný]? 1211 01:01:49,962 --> 01:01:50,900 >> JOSEPH: Presne tak. 1212 01:01:50,900 --> 01:01:53,550 Tak to je niečo, čo budeme mať na neskôr volal variabilný rozsah. 1213 01:01:53,550 --> 01:01:56,610 Ale v podstate to pravý život Aj mimo tento cyklus while. 1214 01:01:56,610 --> 01:01:59,800 Takže akonáhle to while sa vykonáva vykonávanie, budem môcť Aj neskoršie použitie 1215 01:01:59,800 --> 01:02:00,880 Na programe. 1216 01:02:00,880 --> 01:02:05,430 >> Vzhľadom k tomu, s tým pre sláčiky, to int Aj je rozsahom vnútri to pre sláčiky. 1217 01:02:05,430 --> 01:02:10,240 A preto, že je v tejto časti FOR slučky, ktorá začína 1218 01:02:10,240 --> 01:02:13,200 v zátvorke a končí zložená zátvorka tam. 1219 01:02:13,200 --> 01:02:16,120 Čokoľvek, čo je vyhlásený vnútri tu nemožno používať vonku. 1220 01:02:16,120 --> 01:02:20,420 Takže keď sa snažím používať Aj mimo, je to povedz mi, nelegálnej symbol. 1221 01:02:20,420 --> 01:02:22,420 A v podstate, ja by som to byť schopní používať. 1222 01:02:22,420 --> 01:02:28,460 >> ROB: A dobre, pred 10 rokmi, v roku doslova všetky prípady, zložené zátvorky sú 1223 01:02:28,460 --> 01:02:31,140 to, čo slúži na určenie rozsah ukazovateľa. 1224 01:02:31,140 --> 01:02:37,240 Takže tam, pravý som sa rovná 10 je deklarovaná vnútri tejto 1225 01:02:37,240 --> 01:02:38,520 sada zložených zátvoriek. 1226 01:02:38,520 --> 01:02:42,530 A tak teda, ak sa pokúsite použiť Aj pred týmto zloženú zátvorkou, je to v poriadku. 1227 01:02:42,530 --> 01:02:47,090 1228 01:02:47,090 --> 01:02:51,460 Môžete vidieť, keď zadáte, aby, vám pozri pomlčka, pomlčka, STD, rovná, C99. 1229 01:02:51,460 --> 01:02:57,100 >> Takže to je novšia verzia C, ktorý GCC zaviedla, že tiež dáva 1230 01:02:57,100 --> 01:02:58,740 tento zástupca. 1231 01:02:58,740 --> 01:03:03,505 Takže to používa k nemalo byť dovolené v C. A môžete vidieť prečo, pretože to int 1232 01:03:03,505 --> 01:03:07,600 Aj mimo tohto zloženou zátvorkou, ale je to stále považované za 1233 01:03:07,600 --> 01:03:09,750 Rozsah týchto zložených zátvoriek. 1234 01:03:09,750 --> 01:03:14,120 Ale to je veľmi výhodné vec, a tak to je dobrý rozšírenie. 1235 01:03:14,120 --> 01:03:15,370 >> JOSEPH: Nejaké otázky? 1236 01:03:15,370 --> 01:03:17,550 1237 01:03:17,550 --> 01:03:19,260 OK. 1238 01:03:19,260 --> 01:03:22,820 Takže to, čo je oveľa užitočnejšie je, že niekedy Ak druh dynamiky v 1239 01:03:22,820 --> 01:03:23,410 vaše slučky, nie? 1240 01:03:23,410 --> 01:03:26,350 Nechcete len nutne vytlačiť úplne praštěná po celú dobu, môžete 1241 01:03:26,350 --> 01:03:28,650 chcete odpočítavať od 10, alebo tak niečo. 1242 01:03:28,650 --> 01:03:32,010 A tak môžete použiť premennú counter vnútri tejto slučky rovnako. 1243 01:03:32,010 --> 01:03:35,530 A v tomto prípade, tento program iba odpočítava od 10 po celú cestu dole. 1244 01:03:35,530 --> 01:03:39,260 A čo to netlačí? 1245 01:03:39,260 --> 01:03:42,790 To netlačí nula, pravdu, pretože keď - 1246 01:03:42,790 --> 01:03:45,460 Áno, je to tiež netlačí 11. 1247 01:03:45,460 --> 01:03:49,200 >> Takže to netlačí nula, pretože pri Ja je nula, pamätajte si, že hodnotí 1248 01:03:49,200 --> 01:03:52,170 stav pred tým, než ide na na vykonanie tela slučky. 1249 01:03:52,170 --> 01:03:56,820 A keď som ich nula, to je nepravdivé, tak to netlačí sa odpočítavať 1250 01:03:56,820 --> 01:04:00,200 nula, to jednoducho vytlačí počítanie po 10 po celú cestu až do 1. 1251 01:04:00,200 --> 01:04:03,420 Ak by sme skutočne chceli, aby to tlačiť na nulu, potom by sme dať znamienko rovnosti 1252 01:04:03,420 --> 01:04:04,750 potom, čo tento znak väčší než. 1253 01:04:04,750 --> 01:04:09,400 1254 01:04:09,400 --> 01:04:10,130 OK. 1255 01:04:10,130 --> 01:04:16,410 >> Takže jeden spôsob, ako to urobiť overovanie vstupu, ktoré je, keď sa spýtate užívateľovi robiť 1256 01:04:16,410 --> 01:04:18,620 niečo, čo budete chcieť, aby sa ubezpečil, že postupujte podľa vašich pokynov, je použitie 1257 01:04:18,620 --> 01:04:19,400 Kým slučky, nie? 1258 01:04:19,400 --> 01:04:22,990 Takže v tomto konkrétnom prípade, pýtam sa pre kladným číslom a potom som 1259 01:04:22,990 --> 01:04:23,810 čakanie na vstup. 1260 01:04:23,810 --> 01:04:28,210 >> A potom som skontroloval keď vstup je menšie ako nula, aby im pýtať. 1261 01:04:28,210 --> 01:04:32,100 Tak dlho, ako oni mi dať číslo že nie je pozitívny, stále pýtajú, 1262 01:04:32,100 --> 01:04:33,600 stále pýtajú, stále pýtajú. 1263 01:04:33,600 --> 01:04:35,860 Ale to, čo je trochu divné o tom? 1264 01:04:35,860 --> 01:04:38,570 Alebo to, čo sa nezdá byť optimálna o Táto štruktúra priamo tu? 1265 01:04:38,570 --> 01:04:44,282 1266 01:04:44,282 --> 01:04:44,758 Každý, kto? 1267 01:04:44,758 --> 01:04:45,234 Áno? 1268 01:04:45,234 --> 01:04:47,614 >> SPEAKER 6: Ste opakovaní inštrukcie dvakrát. 1269 01:04:47,614 --> 01:04:48,100 >> JOSEPH: Správne. 1270 01:04:48,100 --> 01:04:50,090 Takže máme dve printf vyhlásenia tu, že jo? 1271 01:04:50,090 --> 01:04:53,440 Takže tam je spôsob, ako sa to mohlo dostať len dole na jeden, ktorý by našu 1272 01:04:53,440 --> 01:04:57,170 kód čitateľnejší a ľahšie sa trochu čistejšie. 1273 01:04:57,170 --> 01:05:00,180 A potom by sme nemuseli sa dostať do dvakrát tak dobre. 1274 01:05:00,180 --> 01:05:03,740 A jeden spôsob, ako to môžete urobiť, je pomocou do-while slučky. 1275 01:05:03,740 --> 01:05:07,670 >> A Do-while je v podstate iná forma slučke while, kde 1276 01:05:07,670 --> 01:05:11,460 čo je vo vnútri zložených zátvoriek dostane vykonaný aspoň raz. 1277 01:05:11,460 --> 01:05:14,840 Takže tu prehlasujem, int vstup mimo prvý. 1278 01:05:14,840 --> 01:05:18,100 A potom som si povedal, to Inštrukcie pri vstupe 1279 01:05:18,100 --> 01:05:19,140 je menšia ako nula. 1280 01:05:19,140 --> 01:05:20,530 Tak to dopadne ako prvý robiť. 1281 01:05:20,530 --> 01:05:24,190 To bude vždy vykonávať toto aspoň raz, tak to bude vždy požiadať užívateľa 1282 01:05:24,190 --> 01:05:25,960 pre vstup aspoň raz. 1283 01:05:25,960 --> 01:05:29,390 A potom sa to vyhodnotí, že vstup, a to sa deje v kruhu. 1284 01:05:29,390 --> 01:05:30,135 Áno, otázka? 1285 01:05:30,135 --> 01:05:32,602 >> SPEAKER 6: Existuje spôsob, ako to urobiť [Nepočuteľné] typy, ako keď poviete, 1286 01:05:32,602 --> 01:05:34,268 GetString, a niekto [nepočuteľný] 1287 01:05:34,268 --> 01:05:35,220 Je tam spôsob, ako [nepočuteľný] 1288 01:05:35,220 --> 01:05:40,060 >> JOSEPH: Takže otázka je, je tam spôsob, ako to urobiť vstupné overenie, či užívateľ 1289 01:05:40,060 --> 01:05:41,850 nekladie na pravej strane typ premennej? 1290 01:05:41,850 --> 01:05:44,460 Takže ak budeme žiadať o int a nám reťazec miesto. 1291 01:05:44,460 --> 01:05:49,110 A funkcie, ktoré sa používajú pre vás, vezmi_int, GetString vo všetkých 1292 01:05:49,110 --> 01:05:52,680 tie funkcie, ktoré skutočne už to, že akýsi základný typ vstupu 1293 01:05:52,680 --> 01:05:54,120 validácia pod kapotou. 1294 01:05:54,120 --> 01:05:57,390 Takže ak používate funkcie, ktoré sme vám dal, nemáte naozaj musieť. 1295 01:05:57,390 --> 01:06:01,380 >> Ale ak chcete, aby vyzeral na to, ako môžete skutočne urobiť, môžete sa pozrieť 1296 01:06:01,380 --> 01:06:03,360 pod kapotou v súbore I/O-- 1297 01:06:03,360 --> 01:06:07,990 nie je súbor, štandardné I / O funkcie ako čítanie zo štandardného vstupu a 1298 01:06:07,990 --> 01:06:08,580 štandardný výstup. 1299 01:06:08,580 --> 01:06:10,630 A môžete získať lepší pocit o tom, ako by ste mohli urobiť. 1300 01:06:10,630 --> 01:06:13,670 >> ROB: Jeden problém, aj keď je špecificky sa napríklad môžete 1301 01:06:13,670 --> 01:06:17,070 povedal, môžete očakávať reťazec a zadám int. 1302 01:06:17,070 --> 01:06:20,110 Ako by sa vám spoznať rozdiel medzi zámerne chcú 1303 01:06:20,110 --> 01:06:23,130 string 123 proti chcieť int 123? 1304 01:06:23,130 --> 01:06:29,230 Takže reťazec, je to skoro neexistuje validácia, je to len, čo sa im 1305 01:06:29,230 --> 01:06:31,600 vstúpil budete interpretovať ako reťazec. 1306 01:06:31,600 --> 01:06:35,790 >> Int je jednoduchšie, pretože bez ohľadu na to, Vstup, ktorý sa od užívateľa, budete 1307 01:06:35,790 --> 01:06:37,470 vždy s ohľadom na reťazec. 1308 01:06:37,470 --> 01:06:40,650 A tak, že reťazec potom môžete skontrolovať, sú všetky tieto 1309 01:06:40,650 --> 01:06:44,218 vlastne číselné znaky? 1310 01:06:44,218 --> 01:06:45,170 >> JOSEPH: OK. 1311 01:06:45,170 --> 01:06:46,420 Akékoľvek otázky týkajúce sa do-while slučky? 1312 01:06:46,420 --> 01:06:49,170 >> ROB: Jo, a to je tiež - 1313 01:06:49,170 --> 01:06:55,130 návrat do rozsahu, trochu obyčajné chyba sa snažia využiť niektoré miestne 1314 01:06:55,130 --> 01:06:59,540 variabilné v rámci tejto do-while slučky vnútri tohto stavu. 1315 01:06:59,540 --> 01:07:02,850 A vlastne, keby sme sa zbavili to a povedal, int vstup sa rovná 1316 01:07:02,850 --> 01:07:06,990 Vezmi_int, potom kompilátor bude kričať na us, pretože neexistuje vstup 1317 01:07:06,990 --> 01:07:08,900 mimo oblasť pôsobnosti Tieto zložené zátvorky. 1318 01:07:08,900 --> 01:07:10,792 >> JOSEPH: A to je dôvod, prečo sme Potrebujeme tu tento lineup. 1319 01:07:10,792 --> 01:07:13,620 1320 01:07:13,620 --> 01:07:14,630 OK. 1321 01:07:14,630 --> 01:07:17,530 Takže sa môžete tiež dostať sa z slučka čo najskôr, ak chcete. 1322 01:07:17,530 --> 01:07:21,240 Tak to je iný spôsob, ako , Ktorým sa vykonáva to, čo sme práve vykonávaná. 1323 01:07:21,240 --> 01:07:24,340 A namiesto použitia stav v zátvorkách, sme pomocou 1324 01:07:24,340 --> 01:07:26,920 Ak je vyhlásenie vnútri tela z do-while slučky. 1325 01:07:26,920 --> 01:07:30,000 >> A v podstate, ak je vstup konečne väčší ako nula, bude sa 1326 01:07:30,000 --> 01:07:31,000 vymaniť sa zo slučky. 1327 01:07:31,000 --> 01:07:33,420 A tak pôjdeme všetci cesta sem. 1328 01:07:33,420 --> 01:07:37,920 A môžete vidieť, že to by pravdepodobne výhodné v tomto 1329 01:07:37,920 --> 01:07:39,870 scenár, pretože je to málo trochu čistejšie a trochu 1330 01:07:39,870 --> 01:07:41,380 bit čitateľnejší. 1331 01:07:41,380 --> 01:07:45,210 Vzhľadom k tomu, to ste nejako majú zvláštne riadky v ňom. 1332 01:07:45,210 --> 01:07:47,890 Je to len trochu škaredšie, Myslím, že v istom zmysle. 1333 01:07:47,890 --> 01:07:48,530 Áno, otázka? 1334 01:07:48,530 --> 01:07:52,178 >> SPEAKER 4: Budú zlomiť len získať môžete z jednej sady rovnátka? 1335 01:07:52,178 --> 01:07:53,080 >> JOSEPH: Správne. 1336 01:07:53,080 --> 01:07:58,100 Takže otázka je zlomí iba vám z jednej slučky? 1337 01:07:58,100 --> 01:07:59,280 A odpoveď je áno. 1338 01:07:59,280 --> 01:08:04,290 Takže ak ste vnorené cykly for, pre napríklad, keď mám pre int Aj rovná 0 1339 01:08:04,290 --> 01:08:09,040 do 10 a potom pre int J rovná 0 až 10, keď som vymaniť sa z vnútornej 1340 01:08:09,040 --> 01:08:12,310 slučky, budem aj naďalej pokračovať do vonkajšej slučky. 1341 01:08:12,310 --> 01:08:15,760 Takže to bude držať prevedení operácie na vonkajšej strane. 1342 01:08:15,760 --> 01:08:17,640 Akékoľvek otázky týkajúce sa, že? 1343 01:08:17,640 --> 01:08:18,000 Áno? 1344 01:08:18,000 --> 01:08:21,760 >> SPEAKER 5: Ale zlomiť iba funkcie pre zložených zátvoriek, nie pre ostatné 1345 01:08:21,760 --> 01:08:22,230 vyhlásenie? 1346 01:08:22,230 --> 01:08:22,700 [Nepočuteľný] 1347 01:08:22,700 --> 01:08:27,620 >> JOSEPH: Takže otázka je zlomí iba funkcie pre slučky sú na rozdiel od 1348 01:08:27,620 --> 01:08:29,014 ďalšie príkazy, ako keby? 1349 01:08:29,014 --> 01:08:32,950 A áno, je to tento prípad, pretože ste vypadla z slučky, vpravo, 1350 01:08:32,950 --> 01:08:33,630 v istom zmysle. 1351 01:08:33,630 --> 01:08:37,215 >> ROB: V drvivej väčšine prípadov je to to je druh, ak sa niečo, 1352 01:08:37,215 --> 01:08:37,660 potom sa zlomiť. 1353 01:08:37,660 --> 01:08:41,580 Takže nemusíte rozbiť sa vzťahujú na Ak tomu tak je obal okolo neho. 1354 01:08:41,580 --> 01:08:45,250 A tiež, že to nie je moc slučky, ale pamätajte, že prepínače sú tiež 1355 01:08:45,250 --> 01:08:46,340 členenie z prestávkami. 1356 01:08:46,340 --> 01:08:48,390 Videli sme prestávky sa používa s prepínačmi predtým. 1357 01:08:48,390 --> 01:08:52,189 >> JOSEPH: A môžete tiež použiť vo while a pre slučky. 1358 01:08:52,189 --> 01:08:54,560 Akékoľvek otázky? 1359 01:08:54,560 --> 01:08:55,830 OK. 1360 01:08:55,830 --> 01:08:57,779 Takže nabudúce až sa funkcie. 1361 01:08:57,779 --> 01:09:01,500 Takže ste mohli použiť jeden z týchto BYOB bloky vo vašom Scratch projektu. 1362 01:09:01,500 --> 01:09:04,569 A to v podstate umožňuje definovať sadu 1363 01:09:04,569 --> 01:09:05,680 pravidlá treba dodržiavať. 1364 01:09:05,680 --> 01:09:09,569 >> A čo tým myslím, že je poďme si späť k matematike, vpravo, algebra. 1365 01:09:09,569 --> 01:09:13,370 Máte to, čo nazývame funkcie x, niektoré premenné, a povedzme, že to 1366 01:09:13,370 --> 01:09:16,080 funkcia f na X je X plus 5. 1367 01:09:16,080 --> 01:09:20,410 Takže si môžete myslieť f x, pretože to čierne box, ktorý berie 15, a potom 1368 01:09:20,410 --> 01:09:22,590 produkuje 20. 1369 01:09:22,590 --> 01:09:26,630 >> Takže všeobecne, funkcia je niečo, čo trvá niekoľko vstupov a 1370 01:09:26,630 --> 01:09:27,880 potom produkuje nejaké výstupy. 1371 01:09:27,880 --> 01:09:31,920 1372 01:09:31,920 --> 01:09:32,960 A prečo sú funkcie dobré? 1373 01:09:32,960 --> 01:09:35,189 Sú dobré z mnohých dôvodov. 1374 01:09:35,189 --> 01:09:40,470 Takže môže niekto chcieť, aby sa bodnúť na to, čo organizácia znamená? 1375 01:09:40,470 --> 01:09:42,630 Pokiaľ ide o dôvod, prečo funkcie sú užitočné? 1376 01:09:42,630 --> 01:09:43,090 Áno? 1377 01:09:43,090 --> 01:09:44,735 >> SPEAKER 4: To je vaša kód čitateľnejší. 1378 01:09:44,735 --> 01:09:45,399 >> JOSEPH: Správne. 1379 01:09:45,399 --> 01:09:47,670 Takže jedna z vecí, ktoré ich robia váš kód čitateľnejší, nie? 1380 01:09:47,670 --> 01:09:53,710 Namiesto toho, aby ako int x sa rovná x krát x x x, môžem mať kocku x, 1381 01:09:53,710 --> 01:09:57,190 ktorý je čitateľnejší a viac zrozumiteľná pre čitateľa. 1382 01:09:57,190 --> 01:10:01,150 >> Organizácie je tiež z hľadiska rozdeliť svoj kód do zvládnuteľné 1383 01:10:01,150 --> 01:10:05,610 časti, takže namiesto toho sa snažia realizovať to všetko v jednom dlhom úseku 1384 01:10:05,610 --> 01:10:09,070 V hlavnej, môžete nejako rozdeliť do na ako, OK, poďme napísať funkciu 1385 01:10:09,070 --> 01:10:11,910 aby kocka niečo, poďme napísať fungovať na námestí niečo. 1386 01:10:11,910 --> 01:10:15,950 Týmto spôsobom môžete rozdeliť až na malé, malé diely, ktoré môžete riešiť 1387 01:10:15,950 --> 01:10:18,944 na rozdiel od snažia riešiť veľký problém naraz. 1388 01:10:18,944 --> 01:10:21,806 >> ROB: Alebo aj drobné, malé časti, ktoré vy a partner môže riešiť. 1389 01:10:21,806 --> 01:10:22,283 >> JOSEPH: Jo. 1390 01:10:22,283 --> 01:10:23,855 >> ROB: Takže namiesto toho, aby oba Snažíte sa implantovať jeden 1391 01:10:23,855 --> 01:10:27,170 fungovať v rovnakom čase. 1392 01:10:27,170 --> 01:10:28,800 >> JOSEPH: Zjednodušenie. 1393 01:10:28,800 --> 01:10:30,050 Každý, kto chcú, aby sa hádať? 1394 01:10:30,050 --> 01:10:33,080 1395 01:10:33,080 --> 01:10:33,410 Áno? 1396 01:10:33,410 --> 01:10:34,675 >> SPEAKER 5: Viac opakovaní. 1397 01:10:34,675 --> 01:10:35,260 >> JOSEPH: Správne. 1398 01:10:35,260 --> 01:10:39,210 Takže jedna vec, ktorú môžete urobiť s zjednodušenie je, že je to niečo na 1399 01:10:39,210 --> 01:10:42,520 v rovnakom duchu ako opätovné použiteľnosti je, že Raz som sa napísať funkciu, kocky, môžem 1400 01:10:42,520 --> 01:10:45,410 stačí použiť, aby znovu a znovu a znovu opäť v mojom programe namiesto písania 1401 01:10:45,410 --> 01:10:49,610 x x x x x nad a znova a znova. 1402 01:10:49,610 --> 01:10:52,980 A zjednodušenie tu tiež len znamená, že je váš kód druhu 1403 01:10:52,980 --> 01:10:55,900 ľahšie ladenie, akonáhle sa rozdeliť to sa do funkcie. 1404 01:10:55,900 --> 01:10:58,250 Pretože potom môžete lokalizovať kdekoľvek vaše problémy nejako je. 1405 01:10:58,250 --> 01:11:00,910 1406 01:11:00,910 --> 01:11:02,160 Akékoľvek otázky? 1407 01:11:02,160 --> 01:11:04,200 1408 01:11:04,200 --> 01:11:06,540 >> Takže ďalší nápad je abstrakcia, nie? 1409 01:11:06,540 --> 01:11:07,390 Táto čierna skrinka. 1410 01:11:07,390 --> 01:11:11,360 Ako viete, čo robí vezmi_int prijímať vstup od používateľa? 1411 01:11:11,360 --> 01:11:12,510 Sme naozaj povedal, že jo? 1412 01:11:12,510 --> 01:11:15,670 Všetko, čo som vám povedal, je vezmi_int robí presne to, čo hovorí, že to robí. 1413 01:11:15,670 --> 01:11:18,440 Takže aj keď to nemôžem povedať, ako to funguje, budete stále vedieť. 1414 01:11:18,440 --> 01:11:21,670 >> Takže v tomto konkrétnom prípade sa jedná štvornásobný funkcia, ktorá robí 1415 01:11:21,670 --> 01:11:24,520 rôzne veci na vstup pre vytváranie výstupu. 1416 01:11:24,520 --> 01:11:28,050 A môžete štvornásobok čísla že sa vynásobí štyrmi. 1417 01:11:28,050 --> 01:11:30,790 Alebo môžete to, čo nazývame trochu posunúť ju dvoma. 1418 01:11:30,790 --> 01:11:32,960 A budeme pokrývať to trochu neskôr. 1419 01:11:32,960 --> 01:11:36,570 A nie je potrebné vedieť, ako to funkcia vlastne funguje tak dlho, ako to 1420 01:11:36,570 --> 01:11:37,640 funguje, ako je uvedené. 1421 01:11:37,640 --> 01:11:40,740 >> Takže pod kapotou, mohol by som byť ako, vráti vstupné krát 1422 01:11:40,740 --> 01:11:41,690 osem delené dvoma. 1423 01:11:41,690 --> 01:11:42,510 A vy by ste nevedel, že jo? 1424 01:11:42,510 --> 01:11:44,970 Všetko, čo potrebujete vedieť, je, robí to, čo hovorí. 1425 01:11:44,970 --> 01:11:48,070 Tak to je užitočná vec o abstrakciu. 1426 01:11:48,070 --> 01:11:52,910 >> A ďalšia vec je trochu táto myšlienka z lokalizácie kód do jedného 1427 01:11:52,910 --> 01:11:54,280 najmä časť. 1428 01:11:54,280 --> 01:11:57,450 Takže ak máte problém, vy nie ísť celého kódu sa snaží 1429 01:11:57,450 --> 01:11:58,730 opraviť, kde je problém. 1430 01:11:58,730 --> 01:12:00,990 Takže v tomto prípade, som implementoval kocka zle. 1431 01:12:00,990 --> 01:12:02,820 Myslel som, že kocka bola vynásobením tromi. 1432 01:12:02,820 --> 01:12:05,760 >> Takže v tomto prípade, je to jeden program že jednoducho sa vynásobí tromi 1433 01:12:05,760 --> 01:12:06,750 všade. 1434 01:12:06,750 --> 01:12:10,910 A je tu ďalší program, ktorý má zapracované kocka sa do funkcie. 1435 01:12:10,910 --> 01:12:14,040 A tak teraz, keď chcem napraviť svoju chybu tu, musím opraviť každý riadok 1436 01:12:14,040 --> 01:12:15,620 kódu v tomto programe. 1437 01:12:15,620 --> 01:12:19,190 Vzhľadom k tomu, na druhej strane, ak sa používa funkcie, len som potrebné zmeniť 1438 01:12:19,190 --> 01:12:20,650 čo sa deje na jednom mieste. 1439 01:12:20,650 --> 01:12:25,330 1440 01:12:25,330 --> 01:12:28,730 >> Takže v informatike, sme zavolajte vstupy a výstupy. 1441 01:12:28,730 --> 01:12:31,640 Vstupy sa nazývajú parametre alebo argumenty a výstupy sa nazývajú 1442 01:12:31,640 --> 01:12:32,950 návratovej hodnoty. 1443 01:12:32,950 --> 01:12:39,000 A uvidíme, ako nám to pomôže trochu o definovať funkciu v sekunde. 1444 01:12:39,000 --> 01:12:41,430 Tak to je definícia funkcie pre Cubing. 1445 01:12:41,430 --> 01:12:45,110 Tak to trvá vstup, a potom to vráti, že počet krát 1446 01:12:45,110 --> 01:12:47,020 samo o sebe trikrát. 1447 01:12:47,020 --> 01:12:48,020 Takže poďme rozčleniť tento systém. 1448 01:12:48,020 --> 01:12:53,090 >> Takže máme hlavičku funkcie, ktoré v podstate sa skladá z troch vecí. 1449 01:12:53,090 --> 01:12:56,050 Takže máme parametre, ktoré sú, ako som už povedal skôr, 1450 01:12:56,050 --> 01:12:57,680 vstupy do tejto funkcie. 1451 01:12:57,680 --> 01:12:59,300 A potom dáme Funkciu meno. 1452 01:12:59,300 --> 01:13:00,740 V tomto prípade, je to len kocka. 1453 01:13:00,740 --> 01:13:03,860 A potom sme sa určiť, aký typ z návratová hodnota je. 1454 01:13:03,860 --> 01:13:06,760 >> Takže v tomto prípade, môj kocka funkcie berie na celé číslo, a to aj 1455 01:13:06,760 --> 01:13:07,890 vráti celé číslo. 1456 01:13:07,890 --> 01:13:11,510 Takže keď som sa prejsť v dvoch, dvoch je celé číslo, sa vracia osem ku mne, čo 1457 01:13:11,510 --> 01:13:13,250 je celé číslo. 1458 01:13:13,250 --> 01:13:15,420 Takže návrat parametre názov typu. 1459 01:13:15,420 --> 01:13:16,670 Otázky o tom? 1460 01:13:16,670 --> 01:13:19,440 1461 01:13:19,440 --> 01:13:24,230 >> A potom návratová hodnota je v skutočnosti je uvedené na konci tým, návrat 1462 01:13:24,230 --> 01:13:27,540 a potom sa vracať, čo obsahuje návratovú hodnotu. 1463 01:13:27,540 --> 01:13:30,940 Takže v tomto prípade, ak by sme to všetko spoločne, funkcia sa v 1464 01:13:30,940 --> 01:13:35,100 parametre, je to len niečo, a vráti niečo, čo je typ 1465 01:13:35,100 --> 01:13:36,350 že hovoríme, že to bude. 1466 01:13:36,350 --> 01:13:39,830 1467 01:13:39,830 --> 01:13:41,080 Akékoľvek otázky? 1468 01:13:41,080 --> 01:13:43,710 1469 01:13:43,710 --> 01:13:45,080 >> Tak ako sme sa použiť funkciu? 1470 01:13:45,080 --> 01:13:49,230 No, my napíšeme funkciu a potom sme ho používať v našom programe, nie? 1471 01:13:49,230 --> 01:13:51,565 Tak som to nazval kocky, a potom môžem použiť kocku. 1472 01:13:51,565 --> 01:13:54,200 >> Ale to, čo je dôležité si uvedomiť, je to, že objednávka záležitosti. 1473 01:13:54,200 --> 01:13:58,100 Ak mám kocku pod hlavnou, je to bude bežať do kocky. 1474 01:13:58,100 --> 01:14:00,360 A v tomto bode, tam je nič volal kocka v programe, a to 1475 01:14:00,360 --> 01:14:02,550 Len bude vyzerať, mám žiadny nápad, čo kocky. 1476 01:14:02,550 --> 01:14:05,060 >> Tak to vám povie, implicitné deklarácie funkcie. 1477 01:14:05,060 --> 01:14:06,690 To je chyba, ktorá sa objaví. 1478 01:14:06,690 --> 01:14:10,230 A tak v tomto prípade, kocka je pod hlavné, takže to nebude 1479 01:14:10,230 --> 01:14:12,006 o tom vedieť. 1480 01:14:12,006 --> 01:14:14,724 >> SPEAKER 5: Takže hlavné je zvyčajne posledný funkcie definované? 1481 01:14:14,724 --> 01:14:17,290 >> JOSEPH: Takže otázka je, je hlavný zvyčajne posledný 1482 01:14:17,290 --> 01:14:18,170 vec, ktorú by ste definovať? 1483 01:14:18,170 --> 01:14:19,730 A no. 1484 01:14:19,730 --> 01:14:22,280 Je to preto, že sme väčšinou radi hlavným byť na vrchole, že jo? 1485 01:14:22,280 --> 01:14:24,640 Vzhľadom k tomu, že je to prvá vec, ktorú Chcete-otvorenie programátor 1486 01:14:24,640 --> 01:14:25,640 program viď. 1487 01:14:25,640 --> 01:14:29,950 A tak ako sme sa vyriešiť tento problém my Chcem hlavným byť na vrchole, ale 1488 01:14:29,950 --> 01:14:33,750 funkcie, ktoré chceme, chceme im byť pod hlavným ešte mohli používať 1489 01:14:33,750 --> 01:14:34,930 je vo vnútri hlavnej? 1490 01:14:34,930 --> 01:14:36,870 >> No, my používame to, čo nazývame prototyp funkcie. 1491 01:14:36,870 --> 01:14:40,830 Takže to, čo prototyp funkcie v podstate je je to prvé, čo sa 1492 01:14:40,830 --> 01:14:45,060 podpis alebo záhlavie funkcie o tom, čo chceme realizovať dole 1493 01:14:45,060 --> 01:14:47,420 tú, a dáme ju na v hornej časti programu. 1494 01:14:47,420 --> 01:14:51,400 >> Takže v tomto prípade, môžeme povedať, že dobre, neskôr v našom programe, ideme 1495 01:14:51,400 --> 01:14:55,010 aby sľub zaviesť tento volanie funkcie int kocka, ktorá sa 1496 01:14:55,010 --> 01:14:56,260 číslo vstupu. 1497 01:14:56,260 --> 01:15:00,870 Takže teraz, pretože to je nad hlavnou, hlavné, bude to povedať, oh, dobre, 1498 01:15:00,870 --> 01:15:03,910 neskôr v programe, ktorý sa bude tam, takže som si na neho odkazujú, takže budem 1499 01:15:03,910 --> 01:15:05,230 nechaj to prejsť teraz. 1500 01:15:05,230 --> 01:15:07,660 >> A potom v dolnej časti, realizujeme kocku. 1501 01:15:07,660 --> 01:15:11,180 A potom hlavný bude len povedať, dobre, bude to akýsi odkaz 1502 01:15:11,180 --> 01:15:12,250 Tieto dva symboly spoločne. 1503 01:15:12,250 --> 01:15:14,320 A budeme pokrývať, čo to znamená, že neskôr. 1504 01:15:14,320 --> 01:15:17,090 A tak to bude vedieť, že je to Funkcie kocka, že by mal používať. 1505 01:15:17,090 --> 01:15:19,630 1506 01:15:19,630 --> 01:15:23,383 >> ROB: [nepočuteľné] o chcú Hlavné v dolnej časti 1507 01:15:23,383 --> 01:15:24,880 hore, videl som ako. 1508 01:15:24,880 --> 01:15:28,630 Existujú veci, ktoré rovnako ako , Aby v spodnej časti hlavnej. 1509 01:15:28,630 --> 01:15:32,520 Ale akonáhle sa projekt dostane najmä veľký, zvyčajne hlavné je v 1510 01:15:32,520 --> 01:15:34,290 súbor všetkých jeho vlastné. 1511 01:15:34,290 --> 01:15:38,170 A v tomto bode, ako je int kocka linka by - 1512 01:15:38,170 --> 01:15:42,460 vnútri stdio.h sú banda riadkov len tak int 1513 01:15:42,460 --> 01:15:44,010 kocka int linkový vstup. 1514 01:15:44,010 --> 01:15:50,170 >> A tak tie prototypy sú veci, ktoré majú tendenciu dať do hlavičkových súborov, na 1515 01:15:50,170 --> 01:15:52,140 ktoré ukazujú, že nezáleží na tom. 1516 01:15:52,140 --> 01:15:54,700 No, na tom nezáleží. 1517 01:15:54,700 --> 01:15:56,070 Ti vždy hore. 1518 01:15:56,070 --> 01:15:59,490 A ak hlavná nie je súbor všetkých jeho vlastné, nemusíte sa starať o uvedenie 1519 01:15:59,490 --> 01:16:02,360 Jednotlivé funkčné prototypy v súbore. 1520 01:16:02,360 --> 01:16:05,370 >> JOSEPH: A dostaneme sa, že trochu Trochu neskôr, keď Rob začne hovoriť 1521 01:16:05,370 --> 01:16:06,380 o kompiláciu. 1522 01:16:06,380 --> 01:16:09,480 A tak je tu tiež rozdiel medzi parametrom a argumentom. 1523 01:16:09,480 --> 01:16:12,500 A parameter je práve to, čo nazývame tieto vstupy pri 1524 01:16:12,500 --> 01:16:13,820 definujeme funkciu. 1525 01:16:13,820 --> 01:16:16,950 A hovoríme, že argument, keď sme v skutočnosti sa do nej funkcie. 1526 01:16:16,950 --> 01:16:19,600 >> Takže v tomto prípade sa jedná o parameter, ako sme povedali skôr. 1527 01:16:19,600 --> 01:16:24,130 A keď sme vlastne používať tam, kocka X, potom X je sám o sebe 1528 01:16:24,130 --> 01:16:25,910 to, čo nazývame argument, do funkcie kocky. 1529 01:16:25,910 --> 01:16:28,150 >> ROB: Takže argumenty parametra sú - 1530 01:16:28,150 --> 01:16:33,270 je tento rozdiel veľmi zmätený zamieňajú. 1531 01:16:33,270 --> 01:16:37,090 Na tomto mieste, pre mňa, je to ako jedna z tieto slová, že keď som ho vidieť v 1532 01:16:37,090 --> 01:16:41,190 divoký, nemôžem si pomôcť, ale hneď otázka, či sa jeho použitie v 1533 01:16:41,190 --> 01:16:44,120 správny kontext, pretože Rozdiel je v tom dosť subtílne, že práve 1534 01:16:44,120 --> 01:16:45,500 každý má tendenciu - 1535 01:16:45,500 --> 01:16:48,530 Skoro som vždy hovorím argument, bez ohľadu na to, čo mám na mysli. 1536 01:16:48,530 --> 01:16:51,230 1537 01:16:51,230 --> 01:16:54,630 >> JOSEPH: A funkcie sú tiež užitočné za to, čo nazývame vedľajšie účinky. 1538 01:16:54,630 --> 01:16:59,230 Takže funkcia môže mať žiadne vstupy, a to môže tiež produkovať žiadne výstupy. 1539 01:16:59,230 --> 01:17:03,280 Takže v tomto konkrétnom prípade som definovať podprogram, ktorý nemá žiadny 1540 01:17:03,280 --> 01:17:03,970 vráti hodnotu. 1541 01:17:03,970 --> 01:17:07,730 A aby sa stanovilo, že používame to, čo nazývame medzeru sem. 1542 01:17:07,730 --> 01:17:10,890 A tak vedľajší efekt tejto funkcie je, že to jednoducho vytlačí veci 1543 01:17:10,890 --> 01:17:11,920 von na stránku. 1544 01:17:11,920 --> 01:17:13,840 To nie je v skutočnosti sa niektorý vstupy, a to nie je 1545 01:17:13,840 --> 01:17:15,360 vlastne produkovať žiadne výstupy. 1546 01:17:15,360 --> 01:17:18,230 >> Ale to by mohlo byť užitočné v tom zmysle, Ak chcete, napríklad, ladenie 1547 01:17:18,230 --> 01:17:21,530 niečo, čo vo svojom programe, ak chcete napísať trochu podprogram, ktorý 1548 01:17:21,530 --> 01:17:25,160 vytlačí, povedzme, obsah pamäte, alebo tak niečo. 1549 01:17:25,160 --> 01:17:29,800 A tak sa tieto nežiaduce účinky sú niekedy užitočné mimo rámec 1550 01:17:29,800 --> 01:17:33,010 o rovnako ako vstupy a výstupy. 1551 01:17:33,010 --> 01:17:34,260 Akékoľvek otázky? 1552 01:17:34,260 --> 01:17:37,270 1553 01:17:37,270 --> 01:17:44,240 >> A na koniec tohto konkrétneho segmentu, čo tento program robiť? 1554 01:17:44,240 --> 01:17:47,420 Dám ti chalani pár sekúnd čítať cez to. 1555 01:17:47,420 --> 01:17:52,720 1556 01:17:52,720 --> 01:17:56,880 Na veľmi základnej úrovni, to, čo chceme povedať, je to, že vymení x a y, nie? 1557 01:17:56,880 --> 01:18:00,090 >> Tak koľko z vás skutočne myslíte to vymení x a y? 1558 01:18:00,090 --> 01:18:02,160 Zdvihnite ruku. 1559 01:18:02,160 --> 01:18:02,760 Nikto. 1560 01:18:02,760 --> 01:18:03,070 OK. 1561 01:18:03,070 --> 01:18:06,720 Kto si myslí, že to bude Nie je zameniť x a y? 1562 01:18:06,720 --> 01:18:09,120 A suma, ktorá bola nie je celá miestnosť. 1563 01:18:09,120 --> 01:18:10,440 Takže niektorí ľudia nie sú istí. 1564 01:18:10,440 --> 01:18:10,920 OK. 1565 01:18:10,920 --> 01:18:11,630 To je rozumné. 1566 01:18:11,630 --> 01:18:16,450 >> Takže poďme sa prejsť, čo sa stane, keď ste vlastne volať funkcie prvý 1567 01:18:16,450 --> 01:18:18,320 Aby sme mohli odpovedať na túto otázku. 1568 01:18:18,320 --> 01:18:21,430 Tak toto je to, čo pamäť trochu vyzerá. 1569 01:18:21,430 --> 01:18:23,860 To je niečo ako zjednodušený model čo pamäť vyzerá, keď 1570 01:18:23,860 --> 01:18:24,800 spustenie programu. 1571 01:18:24,800 --> 01:18:27,270 Takže je tu niečo, čo nazýva zásobník tu dole a 1572 01:18:27,270 --> 01:18:28,330 niečo, čo sa nazýva haldy. 1573 01:18:28,330 --> 01:18:30,950 A tie rastú smerom stredná pamäti. 1574 01:18:30,950 --> 01:18:33,860 >> Takže v tomto konkrétnom prípade, kedy voláte funkciu, 1575 01:18:33,860 --> 01:18:35,680 dostane kladený na zásobníku. 1576 01:18:35,680 --> 01:18:38,900 A potom, čo je obsiahnuté v tom, že funkcia zostáva v tom, čo hovoríme, že 1577 01:18:38,900 --> 01:18:40,550 Funkcie stack frame. 1578 01:18:40,550 --> 01:18:44,500 A tak si pekné vizualizáciu to, let 's - napríklad sme mali 1579 01:18:44,500 --> 01:18:45,960 programu main skôr. 1580 01:18:45,960 --> 01:18:47,820 A vnútri hlavnej, hovorili sme kocku. 1581 01:18:47,820 --> 01:18:50,650 Takže hlavné by najprv ísť na stack rám, pretože je to prvá funkcia 1582 01:18:50,650 --> 01:18:51,640 tomu sa hovorí. 1583 01:18:51,640 --> 01:18:55,740 >> A potom, keď kocka sa nazýva vnútro hlavné, dostane kladený na hornej časti hlavnej 1584 01:18:55,740 --> 01:18:57,790 vnútornej pamäte. 1585 01:18:57,790 --> 01:19:02,090 Takže to, čo si všimnete, je, že kocka má svoje vlastné parametre a jeho 1586 01:19:02,090 --> 01:19:02,950 vlastné miestni obyvatelia. 1587 01:19:02,950 --> 01:19:06,720 Takže, keď ste vlastne zložiť niečo funkcie, parametre, ktoré sa 1588 01:19:06,720 --> 01:19:09,910 dostane sa kópia toho, čo bolo prešiel od hlavnej. 1589 01:19:09,910 --> 01:19:14,140 >> A nejako vysvetliť, poďme prejsť program. 1590 01:19:14,140 --> 01:19:16,960 Takže máme hromadu, čo je len zásobník časť. 1591 01:19:16,960 --> 01:19:21,240 A to, čo robíme, je, že sme najprv inicializovať x a y na jeden a dva. 1592 01:19:21,240 --> 01:19:22,400 Takže máme tieto malé krabičky. 1593 01:19:22,400 --> 01:19:25,310 Oni sedia v hlavnej stacku rám na zásobníku. 1594 01:19:25,310 --> 01:19:26,580 Obsahujú jeden a dva. 1595 01:19:26,580 --> 01:19:28,820 >> Teraz hovoríme swapu. 1596 01:19:28,820 --> 01:19:33,940 Čo sa stane, je, že sme prejsť x a y do swap a swap vytvára svoje vlastné kópie 1597 01:19:33,940 --> 01:19:36,520 o tieto premenné používať vnútri z jeho rámca zásobníka. 1598 01:19:36,520 --> 01:19:39,920 Takže teraz tam máme, čo obsahuje hodnotu, ktorá mala x, b, 1599 01:19:39,920 --> 01:19:41,620 ktorý obsahuje hodnotu, ktorá mala y. 1600 01:19:41,620 --> 01:19:42,670 Tak jeden, dva. 1601 01:19:42,670 --> 01:19:47,130 >> A všimnite si, že je to samostatný z x a y vnútri z hlavnej. 1602 01:19:47,130 --> 01:19:51,390 Tak sme sa vytvoriť dočasný premenná obsahovať. 1603 01:19:51,390 --> 01:19:56,100 Vydali sme sa rovná b, takže zmeny z jedného na dva. 1604 01:19:56,100 --> 01:19:59,340 A potom sme sa vydali b rovné na teplote, čo je jeden. 1605 01:19:59,340 --> 01:20:01,640 >> A potom sa môžeme ukončiť von tejto funkcie. 1606 01:20:01,640 --> 01:20:04,310 1607 01:20:04,310 --> 01:20:07,410 Keď ukončíte z funkcie, stack frame dostane vyskočila off zásobníka. 1608 01:20:07,410 --> 01:20:08,270 Hovoríme, že tlačiť. 1609 01:20:08,270 --> 01:20:12,750 Môžete tlačiť rámček zásobníka do zásobníka a pop, ak mimo zásobníka. 1610 01:20:12,750 --> 01:20:16,080 A tak to, čo sa stane, je všetko, čo bol v tomto zásobníku ráme druhu len 1611 01:20:16,080 --> 01:20:17,280 ide v plameňoch. 1612 01:20:17,280 --> 01:20:19,180 A tak, že už neexistuje. 1613 01:20:19,180 --> 01:20:20,470 >> Ale čo sme si všimli? 1614 01:20:20,470 --> 01:20:23,690 Nikdy sme sa vlastne zmenilo hodnoty x a y, nie? 1615 01:20:23,690 --> 01:20:26,530 Takže tí ostali miestnej hlavnej. 1616 01:20:26,530 --> 01:20:29,900 A odovzdaním veci do swapu, sa vlastne nikdy nezmenil týchto hodnôt. 1617 01:20:29,900 --> 01:20:31,260 A čo nazývame to? 1618 01:20:31,260 --> 01:20:33,040 Nazývame to okolo hodnoty. 1619 01:20:33,040 --> 01:20:36,860 >> Takže v C, pri odovzdaní veci do funkcie, odovzdáva im hodnoty a 1620 01:20:36,860 --> 01:20:40,160 vytvorí kópiu nich funkciu použiť. 1621 01:20:40,160 --> 01:20:43,980 A dozvieme sa o niečo, čo nazýva odovzdávanie odkazom neskôr, ale to je 1622 01:20:43,980 --> 01:20:45,390 spôsob, ako možno tento problém vyriešiť. 1623 01:20:45,390 --> 01:20:47,080 Ale nebudeme báť že až neskôr. 1624 01:20:47,080 --> 01:20:52,200 >> ROB: A v skutočnosti, že termín, prechádzajúce odkazom, takže C ani nemá 1625 01:20:52,200 --> 01:20:54,270 odovzdávanie odkazom. 1626 01:20:54,270 --> 01:20:56,760 C výhradne sa okolo hodnoty. 1627 01:20:56,760 --> 01:20:59,630 Bez ohľadu na to, čo robíte, ste vždy odovzdaním kópie niečoho. 1628 01:20:59,630 --> 01:21:03,395 Je to len, že, ako som trochu zmienil že predtým, než sa ukazovatele 1629 01:21:03,395 --> 01:21:07,690 a že reťazec je naozaj len štyri bytov ukázal niekam do pamäte. 1630 01:21:07,690 --> 01:21:11,890 >> No, ak mám tento reťazec, a to mi hovorí, že je miesto, kde reťazec - 1631 01:21:11,890 --> 01:21:15,470 dobre, keď mám tento ukazovateľ na túto miesto v pamäti, potom som si prejsť 1632 01:21:15,470 --> 01:21:19,160 Kópiu tohto ukazovateľa na funkcie, a že funkcie ešte vie, kde v 1633 01:21:19,160 --> 01:21:19,780 pamäť je. 1634 01:21:19,780 --> 01:21:22,950 Tak sú oba tieto ukazovatele smerujúce na rovnaké miesto v pamäti, a 1635 01:21:22,950 --> 01:21:26,460 že to, ako budeme môcť zmeniť veci nad rámec 1636 01:21:26,460 --> 01:21:29,852 aktuálny stack frame. 1637 01:21:29,852 --> 01:21:31,040 >> JOSEPH: Chcete urobiť kompiláciu? 1638 01:21:31,040 --> 01:21:31,820 >> ROB: Nie, to je 05:30. 1639 01:21:31,820 --> 01:21:32,910 >> JOSEPH: OK. 1640 01:21:32,910 --> 01:21:35,040 Je 5:30. 1641 01:21:35,040 --> 01:21:35,360 OK. 1642 01:21:35,360 --> 01:21:39,280 Takže sa budeme zaoberať zostavovaní Myslím, že v ďalšiu časť, alebo váš sekcie 1643 01:21:39,280 --> 01:21:42,795 vodca bude v tomto bode. 1644 01:21:42,795 --> 01:21:43,272 A - 1645 01:21:43,272 --> 01:21:44,630 >> ROB: Nejaké otázky? 1646 01:21:44,630 --> 01:21:46,760 >> JOSEPH: Nejaké otázky? 1647 01:21:46,760 --> 01:21:47,150 Áno? 1648 01:21:47,150 --> 01:21:52,469 >> SPEAKER 5: Použitie reťazca z CS50, každá funkcie, ktoré chceme použiť pre 1649 01:21:52,469 --> 01:21:53,880 ti, že to bude ako C funkcie. 1650 01:21:53,880 --> 01:21:59,050 CS50 nebol preč a z akejkoľvek ďalšej. 1651 01:21:59,050 --> 01:22:01,850 >> ROB: Správne. 1652 01:22:01,850 --> 01:22:08,155 Každý z C ako [nepočuteľné], môžete by sa používať tie na našich reťazcoch. 1653 01:22:08,155 --> 01:22:12,400 >> JOSEPH: A ešte jedna posledná vec, ktorú chcem zmienka je, že máme sprievodca štýlu 1654 01:22:12,400 --> 01:22:13,130 pre túto triedu. 1655 01:22:13,130 --> 01:22:13,360 >> ROB: Jo, jo. 1656 01:22:13,360 --> 01:22:15,270 >> JOSEPH: Takže ak ste prišiel z Pred naprogramovaním pozadia, môžete 1657 01:22:15,270 --> 01:22:17,750 môže mať určité konvencie, kedy píšete kód, ako je uvedenie 1658 01:22:17,750 --> 01:22:20,950 traky na rovnakom riadku alebo najmä spôsoby odsadenie 1659 01:22:20,950 --> 01:22:22,240 alebo pomenovanie premenných. 1660 01:22:22,240 --> 01:22:26,870 V tejto triede, chceme nasledovať špecifický štýl sprievodca len preto, 1661 01:22:26,870 --> 01:22:31,100 dobre, keď idete von a pracovať v priemysel, budete očakávať, 1662 01:22:31,100 --> 01:22:34,780 nasledovať sprievodca štýlu spoločnosť, v ktorej idete. 1663 01:22:34,780 --> 01:22:38,040 >> Rovnako ako napríklad Facebook myslím, že má zvláštny druh pomenovanie 1664 01:22:38,040 --> 01:22:38,760 konvencie. 1665 01:22:38,760 --> 01:22:42,570 A tam je rozdiel medzi ťavou opláštenie premenné a, rovnako ako 1666 01:22:42,570 --> 01:22:44,610 oddeľte ich podčiarkovníkov. 1667 01:22:44,610 --> 01:22:52,170 A tiež si myslím, že je najdôležitejšie, rovnako ako napríklad odsadenie, že jo? 1668 01:22:52,170 --> 01:22:56,440 >> Nemáme zložené zátvorky začať tam, kde podmienkou je, a oni 1669 01:22:56,440 --> 01:22:57,730 sú na ďalšom riadku. 1670 01:22:57,730 --> 01:23:01,230 A my sme tiež dať zložené zátvorky v aj keď je to len jeden riadok. 1671 01:23:01,230 --> 01:23:06,100 A veľa krát, existujú spôsoby, ako robiť to, kde si môžete nechať tieto rovnátka 1672 01:23:06,100 --> 01:23:08,380 vypnúť, ak je to len jeden riadok v rámci príkazu If. 1673 01:23:08,380 --> 01:23:12,070 Ale v tejto triede, chceme nasledovať špecifický štýl sprievodca len tak dostanete 1674 01:23:12,070 --> 01:23:13,550 používa na také veci. 1675 01:23:13,550 --> 01:23:16,410 >> ROB: Jo, a Style 50 sa chystá presadzovanie tohto štýlu sprievodca, a my sme 1676 01:23:16,410 --> 01:23:18,080 bude používať štýl 50 do platovej triedy kódu. 1677 01:23:18,080 --> 01:23:25,150 Tak to robí veci pre nás jednoduchšie a dúfajme, že by nemal robiť veci, ktoré 1678 01:23:25,150 --> 01:23:30,120 oveľa horšie pre vás vzhľadom k štandardizovaný spôsob by nemal byť, že 1679 01:23:30,120 --> 01:23:31,460 nereálne. 1680 01:23:31,460 --> 01:23:36,000 >> JOSEPH: A konečne, nájsť štýl sprievodca, choďte na manual.cs50.net/style. 1681 01:23:36,000 --> 01:23:37,725 A jo. 1682 01:23:37,725 --> 01:23:40,575 >> SPEAKER 4: Chystáš sa presadiť všetky znaky na riadok? 1683 01:23:40,575 --> 01:23:42,480 >> ROB: Áno. 1684 01:23:42,480 --> 01:23:45,405 >> JOSEPH: Je nám ľúto, chlapci. 1685 01:23:45,405 --> 01:23:47,680 >> ROB: To je ako jeden z mála tých. 1686 01:23:47,680 --> 01:23:50,420 V tomto bode, som OK s 120. 1687 01:23:50,420 --> 01:23:52,460 Som OK sa hovorí 120 znakov na riadok. 1688 01:23:52,460 --> 01:23:53,830 Chápem, že je nejaké obmedzenie. 1689 01:23:53,830 --> 01:23:57,130 Myslím, že 80 je tak malý, ale budeme presadzovať ju. 1690 01:23:57,130 --> 01:24:00,260 >> JOSEPH: Osobne si myslím, že sa C, 80 znakov je v poriadku. 1691 01:24:00,260 --> 01:24:04,160 Akonáhle začnete dostať do ďalšej jazyky, ako je JavaScript a PHP, nie 1692 01:24:04,160 --> 01:24:08,860 tak rozumné len obmedziť je 80 znakov. 1693 01:24:08,860 --> 01:24:09,260 OK. 1694 01:24:09,260 --> 01:24:12,780 No, to bolo super sekcie. 1695 01:24:12,780 --> 01:24:14,750 Má niekto chcel pečivo? 1696 01:24:14,750 --> 01:24:16,000 >> SPEAKER 4: Áno. 1697 01:24:16,000 --> 01:24:18,667