1 00:00:00,000 --> 00:00:12,510 2 00:00:12,510 --> 00:00:13,870 >> ROB: Dobře. 3 00:00:13,870 --> 00:00:16,770 Vítejte v první části. 4 00:00:16,770 --> 00:00:17,480 Jsem Rob. 5 00:00:17,480 --> 00:00:18,806 >> JOSEPH: Já jsem Josef. 6 00:00:18,806 --> 00:00:21,540 >> ROB: Takže budeme ponořit dovnitř 7 00:00:21,540 --> 00:00:23,420 První věc, mluvit o tom, Je zařízení. 8 00:00:23,420 --> 00:00:27,150 Takže doufejme, že většina z vás má stáhli již. 9 00:00:27,150 --> 00:00:37,180 Ale můžete vidět podle pokynů na cs50.net/appliance. 10 00:00:37,180 --> 00:00:38,430 Ach bože, teď jsem rozpačitý. 11 00:00:38,430 --> 00:00:44,590 12 00:00:44,590 --> 00:00:45,430 Pořád slyším. 13 00:00:45,430 --> 00:00:47,232 >> JOSEPH: Wow, to zní jako to je dezorientovaný. 14 00:00:47,232 --> 00:00:52,460 >> ROB: Takže někteří lidé mají problémy s ním, takže se nemusíte čekat, až 15 00:00:52,460 --> 00:00:54,940 last minute problému nastaven na pokusit vyřešit Appliance a 16 00:00:54,940 --> 00:00:56,320 zjistil, že to nefunguje. 17 00:00:56,320 --> 00:00:59,010 >> JOSEPH: A když něco nefunguje a budete potřebovat pomoc, můžete přejít na 18 00:00:59,010 --> 00:01:03,390 cs50.net/discussion kde jsme mít fórum, kde se 19 00:01:03,390 --> 00:01:04,110 můžete psát své dotazy. 20 00:01:04,110 --> 00:01:06,655 A my se k nim nakonec. 21 00:01:06,655 --> 00:01:07,490 >> ROB: Dobře. 22 00:01:07,490 --> 00:01:12,180 Tak tohle je to, co zařízení vypadá. 23 00:01:12,180 --> 00:01:15,480 Opět, je to jen zcela oddělené operační systém běží v rámci 24 00:01:15,480 --> 00:01:19,440 bez ohledu na operační systém běží na vašem notebooku. 25 00:01:19,440 --> 00:01:24,450 A hlavní věcí, které budete používat je gedit. 26 00:01:24,450 --> 00:01:28,050 Tak doufejme, že to má již 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 také spustit Chrome uvnitř spotřebiče. 29 00:01:31,890 --> 00:01:33,860 Tam bylo několik lidí, kteří 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 někteří z nich prostě předpokládat, že se nepředpokládá, že 32 00:01:38,090 --> 00:01:39,190 internet v Appliance. 33 00:01:39,190 --> 00:01:40,750 Ale ano, tam se předpokládá, být internet. 34 00:01:40,750 --> 00:01:44,000 35 00:01:44,000 --> 00:01:46,410 >> Řeknu to hned, ale to není opravdu nic neznamená. 36 00:01:46,410 --> 00:01:50,680 Pokud internet nefunguje, To je to, co mají tendenci potřebovat 37 00:01:50,680 --> 00:01:52,180 spustit ho opravit. 38 00:01:52,180 --> 00:01:55,602 Pokud máte problémy internetu, ne Pamatuju si to, stačí poslat ho na 39 00:01:55,602 --> 00:01:57,560 Diskutujte, a budeme říkat, že běží. 40 00:01:57,560 --> 00:02:00,420 Ale internet je třeba pracovat. 41 00:02:00,420 --> 00:02:06,650 >> Takže jediná věc - jo, nic jinak je opravdu důležité. 42 00:02:06,650 --> 00:02:08,979 Ale já jsem jen chtěl poukázat na to, že - 43 00:02:08,979 --> 00:02:13,290 viz v tomto pravém dolním rohu. 44 00:02:13,290 --> 00:02:16,530 Takže každý z vašich zařízení by mít IP adresu. 45 00:02:16,530 --> 00:02:22,350 A později v semestru, to IP adresa bude vhodnější, když 46 00:02:22,350 --> 00:02:27,230 pracujete na webové p-set, protože budete mít přístup 47 00:02:27,230 --> 00:02:32,310 Webové stránky, na kterém pracujete ze svého místní Chrome pomocí této IP adresy. 48 00:02:32,310 --> 00:02:35,400 >> Ale to, co jsem chtěl použít IP adresu pro - a nemusíte to dělat, jsem 49 00:02:35,400 --> 00:02:37,460 Jen chci poukázat na to - 50 00:02:37,460 --> 00:02:39,540 je tady. 51 00:02:39,540 --> 00:02:42,910 Tak tohle je okno terminálu na můj Mac, to není 52 00:02:42,910 --> 00:02:44,580 Spotřebič vůbec. 53 00:02:44,580 --> 00:02:47,190 A můžete se podívat do toho, co Tento příkaz dělá. 54 00:02:47,190 --> 00:02:51,855 Ale já jdu na SSH přímo k mému Appliance. 55 00:02:51,855 --> 00:02:53,410 Já nevím, co 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 jakmile jsem udělal s tím, přihlásit 59 00:02:59,950 --> 00:03:05,450 Nyní, v podstatě, to je totožný s okno terminálu v mém Appliance. 60 00:03:05,450 --> 00:03:10,280 Takže jsem skoro nikdy skutečně odpracované zevnitř spotřebiče samotného. 61 00:03:10,280 --> 00:03:12,550 Vždycky jsem si to běží v pozadí minimalizovaném 62 00:03:12,550 --> 00:03:15,890 a SSHed do něj. 63 00:03:15,890 --> 00:03:24,270 >> Problém s tímto je, že nebudete , aby bylo možné použít gedit snadno 64 00:03:24,270 --> 00:03:25,600 přímo z tohoto. 65 00:03:25,600 --> 00:03:31,500 Ale pokud chcete být opravdu v pohodě hacker, pak byste měli zvyknout na 66 00:03:31,500 --> 00:03:34,220 příkazového řádku, textový editor stejně. 67 00:03:34,220 --> 00:03:39,620 Takže Vim a Emacs a Nano, všechny z nich jsou různé alternativy. 68 00:03:39,620 --> 00:03:41,560 Nano má tendenci být nejjednodušší. 69 00:03:41,560 --> 00:03:45,006 A myslím, že to nemá žádný zvýrazňování syntaxe. 70 00:03:45,006 --> 00:03:47,620 Oh, ne, je to zcela dělá. 71 00:03:47,620 --> 00:03:49,870 Takže můžete použít Nano, protože že jeden je docela snadné. 72 00:03:49,870 --> 00:03:52,000 >> Vidíte všechny tyto příkazy ve spodní části. 73 00:03:52,000 --> 00:03:54,750 Tato malá mrkev symbol. 74 00:03:54,750 --> 00:03:57,620 Pokud jste ještě neviděli, budete si muset vybrat pravděpodobně vidět to teď hodně. 75 00:03:57,620 --> 00:04:02,350 To obecně znamená, že ovládací mrkev, jako dolní levé části klávesnice 76 00:04:02,350 --> 00:04:04,130 řídicí znak. 77 00:04:04,130 --> 00:04:07,260 Tak tady to mi říká, sem - 78 00:04:07,260 --> 00:04:08,710 oh, to není oříznut, jestliže jsem zoom palců 79 00:04:08,710 --> 00:04:11,040 Takže Control, X je, jak Chystám se ukončit. 80 00:04:11,040 --> 00:04:14,710 A to říká, že může zasáhnout Y pro Ano, pro ukládání, N pro Ne. 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í tendenci být o něco více složité a ohromující. 83 00:04:22,860 --> 00:04:28,840 Ale můžete se na to zvyknout, a pak se budete milovat. 84 00:04:28,840 --> 00:04:30,590 Tak to je to. 85 00:04:30,590 --> 00:04:31,720 >> JOSEPH: Není potřeba to udělat. 86 00:04:31,720 --> 00:04:31,840 >> ROB: Jo. 87 00:04:31,840 --> 00:04:37,510 Ty jsou zdarma k použití gedit pro Zbývající část semestru. 88 00:04:37,510 --> 00:04:40,630 Takže nějaké otázky spotřebič související? 89 00:04:40,630 --> 00:04:42,820 Nebo máte nějaké myšlenky na to, co jiného Je třeba mluví o 90 00:04:42,820 --> 00:04:43,610 spotřebič? 91 00:04:43,610 --> 00:04:43,996 Ano. 92 00:04:43,996 --> 00:04:47,720 >> SPEAKER 1: Když SSHed do své věc, bylo heslo Crimson? 93 00:04:47,720 --> 00:04:48,390 >> ROB: Jo. 94 00:04:48,390 --> 00:04:50,170 Heslo pro skoro všechno v přístroji se děje 95 00:04:50,170 --> 00:04:52,473 být Crimson. 96 00:04:52,473 --> 00:04:56,517 >> SPEAKER 2: Instalace jako skutečný IDE na zařízení, bude to fungovat? 97 00:04:56,517 --> 00:04:59,200 98 00:04:59,200 --> 00:05:07,290 >> ROB: Dovedu si představit, Eclipse má mít Fedora verze, v tom případě, ano, 99 00:05:07,290 --> 00:05:08,420 můžete to udělat. 100 00:05:08,420 --> 00:05:10,875 Je to asi není opravdu 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 jednodušší, když jsem chtěl, aby používat Eclipse, stačí použít nativní a 103 00:05:15,924 --> 00:05:17,646 pak nahrát do - 104 00:05:17,646 --> 00:05:21,090 >> ROB: Oh, to je také asi jednodušší. 105 00:05:21,090 --> 00:05:24,046 Ale můžete si to pracovat uvnitř spotřebiče. 106 00:05:24,046 --> 00:05:27,740 >> JOSEPH: A pro kameru, otázka bylo, můžete nainstalovat další 107 00:05:27,740 --> 00:05:29,490 IDE uvnitř spotřebiče? 108 00:05:29,490 --> 00:05:31,520 >> ROB: Eclipse je Příkladem IDE. 109 00:05:31,520 --> 00:05:34,800 110 00:05:34,800 --> 00:05:36,050 Nějaké další otázky spotřebičů? 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 nyní budeme pohybovat na příkazovém řádku věci rozhraní související, tak CLI. 114 00:05:44,920 --> 00:05:47,990 A opět, já jsem prostě jít do práce v zde, protože je totožný s 115 00:05:47,990 --> 00:05:52,780 práci v terminálovém okně uvnitř spotřebiče. 116 00:05:52,780 --> 00:05:54,160 Jak to, že písmo hledáte? 117 00:05:54,160 --> 00:05:55,970 Je to dost velká? 118 00:05:55,970 --> 00:05:57,000 Dobrá. 119 00:05:57,000 --> 00:06:02,480 >> Takže existuje mnoho příkazů, které měli byste si docela používá pro 120 00:06:02,480 --> 00:06:04,490 v průběhu semestru. 121 00:06:04,490 --> 00:06:09,480 Velký dva pro navigaci jsou ls, seznam Soubory v tomto adresáři, a 122 00:06:09,480 --> 00:06:11,380 cd, tak změňte adresář. 123 00:06:11,380 --> 00:06:18,390 Tak jsem se může změnit na plochu a pak velmi časté vzor je cd na 124 00:06:18,390 --> 00:06:22,550 adresáře a okamžitě ls to, co je v adresáři. 125 00:06:22,550 --> 00:06:25,540 >> Lidé také často neuvědomují, že dokončení Tab je věc. 126 00:06:25,540 --> 00:06:28,370 Tak jako CD, VH, a pak jsem narazila Tab. 127 00:06:28,370 --> 00:06:30,790 Téměř nikdy jsem psát z Celá věc. 128 00:06:30,790 --> 00:06:32,920 A pak když jsem držet bít Tab znovu, bude to automaticky 129 00:06:32,920 --> 00:06:33,670 spustit výpis na mě. 130 00:06:33,670 --> 00:06:37,000 Takže můžu cd vhosts, místního hostitele. 131 00:06:37,000 --> 00:06:39,880 A to jen tak - 132 00:06:39,880 --> 00:06:43,380 V případě, že jste slyšeli termín předtím, adresář je jen jiné slovo 133 00:06:43,380 --> 00:06:45,170 pro složku. 134 00:06:45,170 --> 00:06:49,930 Takže teď, pokud jste vidět - 135 00:06:49,930 --> 00:06:51,810 Pojďme přinést, že na vrchol. 136 00:06:51,810 --> 00:06:55,380 >> Takže teď, pokud vidíte v závorce, můžete vidět malé vlnovka, lomítko, vhost, 137 00:06:55,380 --> 00:06:56,810 lomítko, místního hostitele. 138 00:06:56,810 --> 00:07:00,040 Takže vlnovka, která se týká do mého domovského adresáře. 139 00:07:00,040 --> 00:07:03,090 Je to adresář, který jste , když jste SSH palců 140 00:07:03,090 --> 00:07:05,660 Je to adresář jsi, když můžete otevřít terminál. 141 00:07:05,660 --> 00:07:08,650 Je to místo, kde začnete. 142 00:07:08,650 --> 00:07:13,110 A tak jsem uvnitř mého domovského adresáře, a já jsem uvnitř VHOST 143 00:07:13,110 --> 00:07:14,475 adresář uvnitř mého domovského adresáře. 144 00:07:14,475 --> 00:07:19,670 A pak jsem uvnitř místní hostit adresář uvnitř, že. 145 00:07:19,670 --> 00:07:23,740 >> Takže některé další užitečné věci s cd - 146 00:07:23,740 --> 00:07:29,220 nebo dobře, obecně, tak dot vždy odkazuje na aktuální adresář. 147 00:07:29,220 --> 00:07:31,130 Cd, tečka je docela bezcenný příkaz. 148 00:07:31,130 --> 00:07:35,150 Ale to se mění na aktuální adresář. 149 00:07:35,150 --> 00:07:38,230 Užitečnější jedna, pokud jde o cd je tečka, tečka, což je 150 00:07:38,230 --> 00:07:40,220 stačí jít do jednoho adresáře. 151 00:07:40,220 --> 00:07:43,360 >> A všimněte si, že tyto - 152 00:07:43,360 --> 00:07:48,610 Chci říct, aliasy, ale tito symboly, tečka, a tečka, tečka, ty práce 153 00:07:48,610 --> 00:07:51,740 pro skoro jakýkoli příkaz, kterou jste bude myslet na běh. 154 00:07:51,740 --> 00:07:55,370 Tak jako cd je pravděpodobně, kde budete použití nejvíce, ale ty nejsou 155 00:07:55,370 --> 00:07:56,780 věci, které prostě cd rozumí. 156 00:07:56,780 --> 00:07:59,980 Je to v podstatě něco, co vaše celá příkazového řádku chápe. 157 00:07:59,980 --> 00:08:01,932 Mnoho programů pochopit tečka a tečka, tečka. 158 00:08:01,932 --> 00:08:04,830 159 00:08:04,830 --> 00:08:09,090 >> Takže další užitečné ty - CD, pomlčka. 160 00:08:09,090 --> 00:08:13,460 Tak, že se chystá přivést mě poslední adresář, který jsem dovnitř 161 00:08:13,460 --> 00:08:15,980 Takže někdy budu dělat něco jako, oh, já pracuji tady. 162 00:08:15,980 --> 00:08:21,110 A vidím nějakou chybu s něčím, a Já půjdu prozkoumat ji bude 163 00:08:21,110 --> 00:08:24,020 nějaký náhodný adresář někde. 164 00:08:24,020 --> 00:08:25,260 A mám dělat, když to nebudu vědět, dovolte mi, abych tam. 165 00:08:25,260 --> 00:08:25,720 To bude. 166 00:08:25,720 --> 00:08:27,615 Tak jsem dělat, co chci v tomto adresáři. 167 00:08:27,615 --> 00:08:28,950 Bla, bla, bla, bla, bla. 168 00:08:28,950 --> 00:08:31,770 A byl jsem rád, v pořádku, chci vrátit se na místo, kde jsem byl. 169 00:08:31,770 --> 00:08:34,490 cd, pomlčka, a to mě přivádí zpátky. 170 00:08:34,490 --> 00:08:39,970 >> Tak jdu hodit hodně z nich na vás dnes. 171 00:08:39,970 --> 00:08:43,730 Nemyslím, že budete pamatovat všechny z nich. 172 00:08:43,730 --> 00:08:46,170 Je to trochu jen vím, , že existují. 173 00:08:46,170 --> 00:08:48,690 A pak později, když jste jako, hmm, chci se vrátit do 174 00:08:48,690 --> 00:08:51,870 adresář, který jsem byl jen na, ach, počkejte, něco takového existuje. 175 00:08:51,870 --> 00:08:53,980 Nemusíte jen zadat celý znovu adresáři. 176 00:08:53,980 --> 00:08:56,090 >> JOSEPH: A nakonec budete jen používat znovu a znovu, a 177 00:08:56,090 --> 00:08:57,830 to bude stát svalové paměti. 178 00:08:57,830 --> 00:09:00,090 >> ROB: Jo. 179 00:09:00,090 --> 00:09:02,930 Tak, jak už jsem řekl dříve, že tilda je váš domovský adresář. 180 00:09:02,930 --> 00:09:04,820 Takže můžu cd, vlnovku. 181 00:09:04,820 --> 00:09:07,280 Ale já nemám ani na to, že když jsem - 182 00:09:07,280 --> 00:09:09,760 Vrátím se do adresáře, takže není to zbytečné příklad. 183 00:09:09,760 --> 00:09:14,560 Ale když jsem to CD, které je rovněž stejně jako, jít do mého domovského adresáře. 184 00:09:14,560 --> 00:09:18,380 185 00:09:18,380 --> 00:09:19,880 Já Command, K. 186 00:09:19,880 --> 00:09:24,015 >> JOSEPH: Můžete také zadat jasné, slovo, a měl by si ji pročistil. 187 00:09:24,015 --> 00:09:28,650 >> ROB: A myslím, že i ovládání, L také dělá. 188 00:09:28,650 --> 00:09:29,690 Takže mnoho různých způsobů. 189 00:09:29,690 --> 00:09:34,070 Myslím, že tam jsou některé rozdíly, pokud jasné a řízení, L bude jen 190 00:09:34,070 --> 00:09:37,280 Opravdu ji zatlačte na horní a Mohu stále posouvat zpět. 191 00:09:37,280 --> 00:09:40,580 Příkaz, K doslova ničí všechno, a vy 192 00:09:40,580 --> 00:09:42,960 Nelze rolovat zpět nahoru. 193 00:09:42,960 --> 00:09:45,530 Přinejmenším, to je jak to funguje v iTerm2. 194 00:09:45,530 --> 00:09:48,690 Nevím, jak ostatní věci - 195 00:09:48,690 --> 00:09:49,360 oh. 196 00:09:49,360 --> 00:09:55,450 >> S SSHing, takže pokud jste na Windows, budete muset stáhnout PuTTY 197 00:09:55,450 --> 00:10:02,360 aby se SSH, protože Windows není mají jako vestavěné SSH nástroje. 198 00:10:02,360 --> 00:10:06,150 Od Macs, můžete jen SSH přímo 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 něco si zvyknout u většiny z těchto příkazů je - 203 00:10:19,260 --> 00:10:20,060 dobře, budu jen dělat jeden. 204 00:10:20,060 --> 00:10:21,310 Kč, pomlčka, l. 205 00:10:21,310 --> 00:10:26,330 Takže pomlčka, l je to, co budeme volat vlajku ls. 206 00:10:26,330 --> 00:10:30,770 A mnoho z těchto příkazů mají vlajky které můžete předat na ně. 207 00:10:30,770 --> 00:10:35,020 Takže v tomto případě, pomlčka, l je vlajka , který říká to, aby mi v plné 208 00:10:35,020 --> 00:10:37,850 výpis všech informací z těchto souborů. 209 00:10:37,850 --> 00:10:44,790 >> Takže zde vidíme, že desktop je změněna 30. července v 12:54. 210 00:10:44,790 --> 00:10:47,160 Stažení byla změněna na 6. září. 211 00:10:47,160 --> 00:10:52,350 Jedná se o aktuální velikosti a bajtů těchto adresářů. 212 00:10:52,350 --> 00:10:54,412 Nemusíte rozumět To vše. 213 00:10:54,412 --> 00:11:00,380 >> Tohle na levé straně, tyto drwx to, že bude mnohem více relevantní 214 00:11:00,380 --> 00:11:02,290 později, když budete muset vypořádat s - 215 00:11:02,290 --> 00:11:05,900 že má co do činění s tím, kdo má oprávnění podívat se na tyto soubory. 216 00:11:05,900 --> 00:11:09,880 A tak pokud jste nebyli jediným uživatelem na tento počítač, měli byste být schopni 217 00:11:09,880 --> 00:11:13,345 řekněme, OK, já měla být jen jedna možnost podívat se na tento soubor, nebo jsem 218 00:11:13,345 --> 00:11:14,870 bude, aby všichni podívat se na tento soubor. 219 00:11:14,870 --> 00:11:17,710 Takže někdo jiný na mém počítači Můžete se podívat na tento soubor. 220 00:11:17,710 --> 00:11:22,190 221 00:11:22,190 --> 00:11:25,600 Já ani nevím, co to - co to dělat? 222 00:11:25,600 --> 00:11:26,840 >> JOSEPH: Nejsem si zcela jist, opravdu. 223 00:11:26,840 --> 00:11:27,705 >> ROB: No nápad. 224 00:11:27,705 --> 00:11:30,530 >> JOSEPH: Ale pokud nevíte, že je užitečné příkaz, který můžete použít 225 00:11:30,530 --> 00:11:31,680 aby ti, co výstup znamená. 226 00:11:31,680 --> 00:11:33,780 A pokud jste typ člověka před příkazem - 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 člověk je ještě jeden to je velmi užitečné. 229 00:11:37,690 --> 00:11:39,540 A člověk, ls. 230 00:11:39,540 --> 00:11:47,320 Takže manuálové stránky, které mají obě příkazy, které budete používat 231 00:11:47,320 --> 00:11:50,330 na příkazovém řádku, a mají také funkce, které budou relevantní 232 00:11:50,330 --> 00:11:52,530 s C. Takže si může člověk - 233 00:11:52,530 --> 00:11:53,720 a já jsem ignoroval 3. 234 00:11:53,720 --> 00:11:57,410 Ale člověk 3 printf se chystá přivést až C verze printf. 235 00:11:57,410 --> 00:12:01,030 Ale když jsem si to člověk printf, to je jít na vyvolání příkazu printf 236 00:12:01,030 --> 00:12:03,540 co se děje na příkazovém řádku. 237 00:12:03,540 --> 00:12:05,730 >> Takže člověk, ls. 238 00:12:05,730 --> 00:12:09,030 Manuálové stránky může být docela ohromující. 239 00:12:09,030 --> 00:12:12,770 Tady, když uvidíte tento zápis všech těchto příznaků, které ls 240 00:12:12,770 --> 00:12:14,300 chápe. 241 00:12:14,300 --> 00:12:17,876 Takže pokud půjdeme do pomlčka, l, a - 242 00:12:17,876 --> 00:12:19,300 Jdu hodit to na vás. 243 00:12:19,300 --> 00:12:23,050 Ale chcete-li hledat, chcete- první narazí na otázku 244 00:12:23,050 --> 00:12:24,780 Značka nebo tlačítko lomítko. 245 00:12:24,780 --> 00:12:26,040 Tak lomítko. 246 00:12:26,040 --> 00:12:29,000 >> A pak můžu hledat na co chci. 247 00:12:29,000 --> 00:12:33,780 Tak jdu na lomítko na přístrojovou, l. 248 00:12:33,780 --> 00:12:35,110 A bylo to. 249 00:12:35,110 --> 00:12:37,450 Takže použít dlouhý formát výpisu. 250 00:12:37,450 --> 00:12:40,060 To nepomůže mi přijít na to, co že konkrétní sloupec znamená, ale já 251 00:12:40,060 --> 00:12:44,480 Předpokládám, někde tady to by vysvětlovalo, že. 252 00:12:44,480 --> 00:12:48,740 Takže používat manuálové stránky pro všechny příkazu že nemusíte hned pochopit. 253 00:12:48,740 --> 00:12:51,080 >> Jsem si jistá, že je to možné, i člověk, člověk. 254 00:12:51,080 --> 00:12:53,070 Rozhraní na on-line referenční příručky. 255 00:12:53,070 --> 00:12:57,700 256 00:12:57,700 --> 00:13:03,570 Jo, ještě jedna poslední, že je to možná trochu je relevantní ls, pomlčka,. 257 00:13:03,570 --> 00:13:08,490 Takže výpovědní lhůty, pokud jsem to ls, Já si těchto pět souborů. 258 00:13:08,490 --> 00:13:11,480 Pokud se mi ls, pomlčka,, I získat mnohem více souborů. 259 00:13:11,480 --> 00:13:15,350 Takže společnou věc mezi všemi těmito Nové soubory je tečka předem. 260 00:13:15,350 --> 00:13:21,220 >> Takže konvence je, že soubor, který začíná se tečka skryty. 261 00:13:21,220 --> 00:13:25,300 Takže nechcete vidět, že soubor, Nechci, aby se to bordel s 262 00:13:25,300 --> 00:13:26,750 Váš výpis adresáře. 263 00:13:26,750 --> 00:13:30,020 Je to pouze tehdy, když výslovně požádat, v pořádku, ls, pomlčka,, ukaž mi. 264 00:13:30,020 --> 00:13:32,830 Platí pro všechny soubory, včetně skrytých ty. 265 00:13:32,830 --> 00:13:37,260 266 00:13:37,260 --> 00:13:39,270 Takže některé další příkazy. 267 00:13:39,270 --> 00:13:41,323 Oh, dotazy na tomto místě? 268 00:13:41,323 --> 00:13:41,746 Ano. 269 00:13:41,746 --> 00:13:45,914 >> SPEAKER 3: Když to uděláte ls, , co je tečka, tečka? 270 00:13:45,914 --> 00:13:46,870 >> ROB: Oh. 271 00:13:46,870 --> 00:13:48,780 Tak tohle je to, co jsem mluvil. 272 00:13:48,780 --> 00:13:50,890 Je to totéž, kde Můžu jako jsou CD, tečka, tečka. 273 00:13:50,890 --> 00:13:56,790 Takže technicky, tečka a tečka, tečka se soubory, které existují v každý 274 00:13:56,790 --> 00:14:03,620 adresář, kde je soubor tečka označuje do aktuálního adresáře. 275 00:14:03,620 --> 00:14:06,930 Takže když jsem cd, tečka, já jsem prostě jít zůstat v adresáři. 276 00:14:06,930 --> 00:14:10,870 A tečka, tečka vždy se odkazuje na předchozí adresář o úroveň výš. 277 00:14:10,870 --> 00:14:18,200 Takže když jsem se jít do protokolů a LS, pomlčka, al, Uvidím, tečka, tečka. cd do dot, dot 278 00:14:18,200 --> 00:14:20,390 mě přivádí do předchozího adresáře. 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 další dost důležité příkaz rm. 284 00:14:33,070 --> 00:14:35,650 Tak to je to, co budeme použít k odstranění. 285 00:14:35,650 --> 00:14:38,100 A dovolte mi, abych vlastně dělat další příkaz první. 286 00:14:38,100 --> 00:14:39,610 Tak mkdir. 287 00:14:39,610 --> 00:14:42,770 Mkdir je to, jak můžete vytvářet adresáře. 288 00:14:42,770 --> 00:14:47,530 A já vám vytvořit dočasný adresář a jděte do tohoto dočasného adresáře. 289 00:14:47,530 --> 00:14:49,590 A jak se očekávalo, je prázdný. 290 00:14:49,590 --> 00:14:53,680 Ale pokud ls I, pomlčka,, Stále mám tečku a tečka, tečka, tečka, protože odkazuje na 291 00:14:53,680 --> 00:14:54,480 aktuální adresář. 292 00:14:54,480 --> 00:14:56,170 A tečka, tečka označuje předchozí adresář. 293 00:14:56,170 --> 00:14:58,700 A ty budou vždy existovat bez ohledu na adresář, kde se nacházíte 294 00:14:58,700 --> 00:15:01,910 295 00:15:01,910 --> 00:15:09,010 >> A to je zcela zbytečné příkaz, ale dotek. 296 00:15:09,010 --> 00:15:11,880 Jen jsem ji používat, protože je to snadný způsob, jak vytvářet soubory. 297 00:15:11,880 --> 00:15:16,180 Takže dotek, dotek b, stiskněte c je jen bude vytvořit tři soubory s názvem, 298 00:15:16,180 --> 00:15:17,845 b, c, že ​​jsou úplně prázdné. 299 00:15:17,845 --> 00:15:20,450 300 00:15:20,450 --> 00:15:24,980 Takže místo mě vytvářet ty První místo je tak, že RM je 301 00:15:24,980 --> 00:15:26,250 jak je můžeme odstranit. 302 00:15:26,250 --> 00:15:27,850 Takže rm,. 303 00:15:27,850 --> 00:15:30,960 Bude to a zeptejte se mě, odstraňte pravidelné prázdný soubor? 304 00:15:30,960 --> 00:15:33,170 A pak řeknu ano. 305 00:15:33,170 --> 00:15:39,090 >> Takže když jsem si jistý, že chci, aby smazat tento soubor, aniž by museli být 306 00:15:39,090 --> 00:15:44,500 vyzvání vyjměte pravidelné prázdný soubor?, pak rm, pomlčka, f bude 307 00:15:44,500 --> 00:15:48,230 příznak, který říká, nutí odstranit bez mě ani výzvy, oh, jsi 308 00:15:48,230 --> 00:15:49,710 Opravdu chcete smazat soubor? 309 00:15:49,710 --> 00:15:50,810 Ano, jsem si jistý. 310 00:15:50,810 --> 00:15:56,050 Takže rm, pomlčka, fb bude jen to bez ptaní. 311 00:15:56,050 --> 00:15:57,950 >> Takže pojďme udělat nějaké další adresáře. 312 00:15:57,950 --> 00:16:03,670 mkdir, tmp2, cd, tmp2, dotknout, dotykové b. 313 00:16:03,670 --> 00:16:04,300 OK. 314 00:16:04,300 --> 00:16:08,180 Takže teď chci odstranit tmp2 jako adresář. 315 00:16:08,180 --> 00:16:10,316 Takže rm tmp2. 316 00:16:10,316 --> 00:16:12,920 Nemůžete odstranit tmp2, je adresář. 317 00:16:12,920 --> 00:16:21,370 Takže otázka je, že rm není okamžitě pracovat na adresáře. 318 00:16:21,370 --> 00:16:26,530 Je určen pouze pro soubory, jako jsou Soubory non-adresáře. 319 00:16:26,530 --> 00:16:30,800 >> A tak to, co můžeme udělat Zde je rm, pomlčka, r.. 320 00:16:30,800 --> 00:16:35,160 To znamená rekurzivně, které by mohly neznamená nic pro vás ještě. 321 00:16:35,160 --> 00:16:38,280 Ale když se dostanete do rekurze, to bude znamenat více. 322 00:16:38,280 --> 00:16:43,540 Takže rm, pomlčka, r, tmp2 se chystá rekurzivně jít do tohoto adresáře. 323 00:16:43,540 --> 00:16:45,540 Takže sestoupit do adresáře tmp2? 324 00:16:45,540 --> 00:16:47,330 Ano, pojďme do toho. 325 00:16:47,330 --> 00:16:49,360 Chceme odstranit tmp2 /? 326 00:16:49,360 --> 00:16:49,745 Ano. 327 00:16:49,745 --> 00:16:51,830 Chceme odstranit tmp2 / b? 328 00:16:51,830 --> 00:16:52,840 Ano. 329 00:16:52,840 --> 00:16:55,170 Nyní chceme odstranit adresář tmp2? 330 00:16:55,170 --> 00:16:56,040 Ano. 331 00:16:56,040 --> 00:16:58,410 A tak teď adresář a všechno uvnitř 332 00:16:58,410 --> 00:16:59,660 z toho odstranil. 333 00:16:59,660 --> 00:17:02,850 334 00:17:02,850 --> 00:17:07,250 >> Tam je technicky příkaz rmdir které můžete použít k odstranění 335 00:17:07,250 --> 00:17:11,670 adresářů, ale to funguje pouze na prázdných adresářů stejně. 336 00:17:11,670 --> 00:17:14,109 A vidět, že, řekněme, udělat znovu mkdir, tmp2. 337 00:17:14,109 --> 00:17:15,940 Tmp2, dotknout. 338 00:17:15,940 --> 00:17:16,800 OK. 339 00:17:16,800 --> 00:17:22,770 Takže když se snažím odstranit dirtmp2, bude to říci, adresář není prázdný. 340 00:17:22,770 --> 00:17:29,540 Takže jsem skoro nikdy nepoužívejte odstranit Příkaz dir tak jako tak, protože rm, pomlčka, 341 00:17:29,540 --> 00:17:35,140 r bude pracovat na prázdných adresářů a non-prázdné adresáře. 342 00:17:35,140 --> 00:17:37,760 >> A také, jestli nechci mít na projít, že celý proces 343 00:17:37,760 --> 00:17:40,720 sestupně do adresáře a vyjmutí každého jednotlivého souboru, rm, 344 00:17:40,720 --> 00:17:44,190 pomlčka, rf, tmp2. 345 00:17:44,190 --> 00:17:45,670 A teď je to pryč. 346 00:17:45,670 --> 00:17:51,220 >> Něco, co dávat pozor o je rm, pomlčka, rf. 347 00:17:51,220 --> 00:17:53,660 A to mě děsí ještě zadejte ho, protože když jsem omylem 348 00:17:53,660 --> 00:17:55,090 stiskněte klávesu Enter, nebo tak něco. 349 00:17:55,090 --> 00:18:02,735 Takže rm, pomlčka, rf, vlnovka by, aniž by mě výzva, f nevyzve 350 00:18:02,735 --> 00:18:05,670 mi, bude to automaticky odstranit celý můj domovský adresář a 351 00:18:05,670 --> 00:18:06,780 všechno v něm. 352 00:18:06,780 --> 00:18:11,460 Takže si může myslet, že je to hloupost. 353 00:18:11,460 --> 00:18:12,830 A dobře, že je. 354 00:18:12,830 --> 00:18:18,600 >> Ale to se může stát velmi snadno nehoda-li, řekněme, chtěl jsem se odstranit 355 00:18:18,600 --> 00:18:21,640 můj slash, vhost adresář. 356 00:18:21,640 --> 00:18:26,610 A právě v rychlém psaní, Omylem jsem to udělat. 357 00:18:26,610 --> 00:18:31,880 To bude odstranit rekurzivně i my domovský adresář a adresář vhost 358 00:18:31,880 --> 00:18:35,450 v tomto konkrétním adresáři, který právě stane se to právě teď neexistuje. 359 00:18:35,450 --> 00:18:39,520 Ale to by ještě odstranit celý můj domovský adresář. 360 00:18:39,520 --> 00:18:43,090 Alespoň tím, že má f, to by mě první výzvu. 361 00:18:43,090 --> 00:18:45,670 A já bych byl rád, oh, ne, já Nechci to udělat. 362 00:18:45,670 --> 00:18:50,570 Ale lidé, lomítko, včetně mě mají tendenci dostat se do 363 00:18:50,570 --> 00:18:53,090 zvyk vždy rf-Ing. 364 00:18:53,090 --> 00:18:58,713 Dokonce i pravidelné soubory, které mohu jen RM, c, mám tendenci jen rm, pomlčka, rf, c. 365 00:18:58,713 --> 00:19:01,330 Jen si dejte pozor, když jste rf-ing. 366 00:19:01,330 --> 00:19:03,160 >> SPEAKER 4: Co je C dělat? 367 00:19:03,160 --> 00:19:11,570 >> ROB: C je Mluvím o tomto souboru C v tomto adresáři, který rm, c. 368 00:19:11,570 --> 00:19:15,730 >> JOSEPH: A více nebezpečně, pokud používáte hvězda, to se odkazuje na vše v 369 00:19:15,730 --> 00:19:16,450 adresář. 370 00:19:16,450 --> 00:19:20,040 Takže to, co jsem obvykle mají tendenci dělat je, že bude jít do adresáře a já chci, aby 371 00:19:20,040 --> 00:19:21,510 odstranit všechny soubory tam. 372 00:19:21,510 --> 00:19:23,640 Takže rm, pomlčka, rf, hvězda. 373 00:19:23,640 --> 00:19:25,700 >> ROB: Jo. 374 00:19:25,700 --> 00:19:26,780 Rm, pomlčka, rf, hvězda. 375 00:19:26,780 --> 00:19:29,530 >> JOSEPH: A pokud si nejste opatrní co adresář jste v - 376 00:19:29,530 --> 00:19:33,340 Nebyl jsem v temp, ale byl jsem náhodou v mém domovském adresáři, 377 00:19:33,340 --> 00:19:35,450 pak budu odstranit vše v mém domovském adresáři. 378 00:19:35,450 --> 00:19:39,095 A já jsem vlastně udělal předtím, a Myslím, že jste to udělal předtím nebo 379 00:19:39,095 --> 00:19:40,640 Jay udělal dřív. 380 00:19:40,640 --> 00:19:42,480 >> ROB: Já jsem omylem odstraněn - 381 00:19:42,480 --> 00:19:44,480 tak ignorovat, že příkaz na chvíli. 382 00:19:44,480 --> 00:19:45,800 >> JOSEPH: Není legrace. 383 00:19:45,800 --> 00:19:52,650 >> ROB: Takže v adresáři bin lomítkem je banda binárních souborů, kde bude 384 00:19:52,650 --> 00:19:54,840 být dobře známá jako kovový zvuk. 385 00:19:54,840 --> 00:20:00,740 No, zvonit a v podstatě všichni z nich věci, které jsem běží na příkaz 386 00:20:00,740 --> 00:20:02,060 linka je v tomto lomítko adresáři bin. 387 00:20:02,060 --> 00:20:03,090 >> JOSEPH: Stejně jako ls, je tady. 388 00:20:03,090 --> 00:20:06,285 >> ROB: Tak tečka, lomítko, ls by seznam tohoto adresáře. 389 00:20:06,285 --> 00:20:08,120 >> JOSEPH: Rm je také v tomto adresáři. 390 00:20:08,120 --> 00:20:12,770 >> ROB: Omylem jsem rm, rf-ed bin, který odstraní libovolný příkaz, co jsem mohl 391 00:20:12,770 --> 00:20:14,380 možná někdy chtít. 392 00:20:14,380 --> 00:20:18,085 Což pak jsem přeinstalovat nové spotřebiče v tomto bodě. 393 00:20:18,085 --> 00:20:20,170 >> JOSEPH: Takže buďte velmi opatrní při můžete použít tento příkaz. 394 00:20:20,170 --> 00:20:21,120 >> DIVÁKŮ: [neslyšitelné]? 395 00:20:21,120 --> 00:20:22,640 >> ROB: Ano. 396 00:20:22,640 --> 00:20:24,135 To je také špatný zvyk se dostat do. 397 00:20:24,135 --> 00:20:27,920 398 00:20:27,920 --> 00:20:30,170 Pokud si všimnete, že jsem teď - 399 00:20:30,170 --> 00:20:33,580 dobře, můžete si toho nevšiml, ale můj zoom-in možná může. 400 00:20:33,580 --> 00:20:35,360 Takže jsem teď root @ spotřebiče. 401 00:20:35,360 --> 00:20:39,790 Takže jharvard je uživatel chceme abyste se vždy používat. 402 00:20:39,790 --> 00:20:43,820 Root je uživatel, který má oprávnění dělat absolutně nic. 403 00:20:43,820 --> 00:20:50,260 >> Takže všimnete, když jsem jharvard, když se pokusím cd - 404 00:20:50,260 --> 00:20:52,461 co je adresář, který? 405 00:20:52,461 --> 00:20:53,980 Oh, kořen je dobrý příklad. 406 00:20:53,980 --> 00:20:54,950 Takže cd, kořen. 407 00:20:54,950 --> 00:20:56,030 Permission denied. 408 00:20:56,030 --> 00:21:00,060 Vzhledem k tomu, podíváme-li se na tomto seznamu - 409 00:21:00,060 --> 00:21:02,410 a znovu, nemusíte se úplně pochopit. 410 00:21:02,410 --> 00:21:09,210 Ale tyto tři pomlčky říkají které nenechte jakýkoli jiný 411 00:21:09,210 --> 00:21:11,120 uživatel do tohoto adresáře. 412 00:21:11,120 --> 00:21:14,540 A adresář se stane být vlastněn uživatelem root. 413 00:21:14,540 --> 00:21:20,310 >> Takže fakt, že jsem jharvard a ne Ten, kdo není kořen je povoleno do 414 00:21:20,310 --> 00:21:23,490 tento adresář, to znamená, že jsem chystá se popřít, povolení, když jsem 415 00:21:23,490 --> 00:21:25,160 se snaží cd do něj. 416 00:21:25,160 --> 00:21:31,370 Takže když jsem kořen, mám oprávnění k dělat naprosto cokoliv, včetně 417 00:21:31,370 --> 00:21:34,660 vymazat důležité soubory k přístroji a 418 00:21:34,660 --> 00:21:36,640 zničit celou věc. 419 00:21:36,640 --> 00:21:41,240 >> Tak to je špatný zvyk se dostat do jen putování kolem 420 00:21:41,240 --> 00:21:43,650 operačního systému jako root. 421 00:21:43,650 --> 00:21:46,520 Dělám to tak jako tak. 422 00:21:46,520 --> 00:21:48,710 Otázky? 423 00:21:48,710 --> 00:21:52,230 A já ukončit kořen, zůstat jako jharvard. 424 00:21:52,230 --> 00:21:54,510 OK. 425 00:21:54,510 --> 00:21:55,820 >> Více příslušné příkazy. 426 00:21:55,820 --> 00:22:03,975 Takže jít zpátky do našeho temp, mv příkaz je zkratka pro pohyb. 427 00:22:03,975 --> 00:22:05,450 Můžete se pohybovat. 428 00:22:05,450 --> 00:22:07,610 Nyní chceme říkat b, tak teď se to jmenuje b. 429 00:22:07,610 --> 00:22:10,650 Nebo snad chceme přesunout b do jednoho adresáře. 430 00:22:10,650 --> 00:22:12,730 Takže teď prázdný tomto adresáři je. 431 00:22:12,730 --> 00:22:15,410 Vrátím se do svého domovského adresáře, a vidíme, že b je tady, protože 432 00:22:15,410 --> 00:22:19,230 domovský adresář byl o úroveň výš od adresář, který b bylo palců 433 00:22:19,230 --> 00:22:24,710 434 00:22:24,710 --> 00:22:26,580 >> K dispozici je také cp. 435 00:22:26,580 --> 00:22:33,210 Takže cp je kopírovat výborný část, tečka, textu. 436 00:22:33,210 --> 00:22:35,750 Můžu říkat to, tečka, textu. 437 00:22:35,750 --> 00:22:39,780 Nyní máme oba výborný část, tečka, textu a je, tečka, textu. 438 00:22:39,780 --> 00:22:41,340 To také pracuje na adresáře. 439 00:22:41,340 --> 00:22:44,040 440 00:22:44,040 --> 00:22:46,560 RF-ED jsem jeden soubor. 441 00:22:46,560 --> 00:22:48,200 Takže cp - 442 00:22:48,200 --> 00:22:51,710 dobře, první zkusme CP tmp, tmp2. 443 00:22:51,710 --> 00:22:53,220 Takže vynechání adresáře tmp. 444 00:22:53,220 --> 00:22:57,440 Takže podobně jako rm, výchozí chování je to pracovat v adresářích. 445 00:22:57,440 --> 00:23:01,570 >> A opět, podobně jako rm, výchozí chování - dobře, jak to funguje 446 00:23:01,570 --> 00:23:04,230 s adresářů je, pomlčka-r pryč. 447 00:23:04,230 --> 00:23:09,240 Takže kopírovat rekurzivně temp adresář do tmp2. 448 00:23:09,240 --> 00:23:13,700 A tak teď máme oba tmp a tmp2, a to není tak užitečné, protože tmp 449 00:23:13,700 --> 00:23:16,814 byla v první řadě prázdné. 450 00:23:16,814 --> 00:23:18,660 Tmp2. 451 00:23:18,660 --> 00:23:22,680 >> Nyní pojďme kopírovat tmp do tmp2. 452 00:23:22,680 --> 00:23:27,900 A vidíme, že tmp2 má také soubor , protože adresář a 453 00:23:27,900 --> 00:23:32,220 vše uvnitř, které Adresář byl zkopírován. 454 00:23:32,220 --> 00:23:36,000 A to může být poněkud užitečné pokud, řekněme, že pracujete 455 00:23:36,000 --> 00:23:38,860 o problému nastavit jednu - 456 00:23:38,860 --> 00:23:41,320 nebo skutečnosti, později problém sady ještě důležitější, protože tam 457 00:23:41,320 --> 00:23:43,660 bude celá parta souborů a věcí. 458 00:23:43,660 --> 00:23:47,010 >> Ale jen chcete, na zlomek Druhá, že jsi rád, v pořádku, já jsem 459 00:23:47,010 --> 00:23:50,210 jít zkusit něco jiného. 460 00:23:50,210 --> 00:23:57,860 Dovolte mi stačí zkopírovat celý můj pset1 adresář do zálohy pset1 tak, že pokud 461 00:23:57,860 --> 00:24:01,490 I skončí šroubování věci do pořádku, mohu vrátit se do svého záložního adresáře. 462 00:24:01,490 --> 00:24:07,340 Existuje vhodnější způsoby verzí zálohování kód, ale 463 00:24:07,340 --> 00:24:10,610 to je vždy rychlý způsob, jak jen se ujistěte, že máte kopii něčeho 464 00:24:10,610 --> 00:24:11,860 že se chystáte změnit. 465 00:24:11,860 --> 00:24:16,974 466 00:24:16,974 --> 00:24:27,090 >> Takže echo je také příkaz one-off, které druh sillily bude jen tisknout 467 00:24:27,090 --> 00:24:31,540 příkazový řádek přesně to, co co jste chtěli echo. 468 00:24:31,540 --> 00:24:32,680 Tak echo ahoj. 469 00:24:32,680 --> 00:24:35,420 Budeme jen vytisknout hi. 470 00:24:35,420 --> 00:24:38,030 Echo hello world. 471 00:24:38,030 --> 00:24:39,800 Budeme tisknout ahoj svět. 472 00:24:39,800 --> 00:24:44,350 Který přichází do užívání, pokud kdo kombinuje příkazy. 473 00:24:44,350 --> 00:24:48,300 >> A opět, nečekejte, že vám úplně pochopit to ještě, ale je to 474 00:24:48,300 --> 00:24:49,910 něco vidět. 475 00:24:49,910 --> 00:24:52,470 A pak, pokud jste Googling příklady nebo si uvědomíte, že chcete dělat 476 00:24:52,470 --> 00:24:55,030 něco, to může být užitečné. 477 00:24:55,030 --> 00:24:59,020 Tak pojďme, jako například takže ls, pomlčka, l. 478 00:24:59,020 --> 00:25:01,160 Takže tady vidím výstup LS, pomlčka, l. 479 00:25:01,160 --> 00:25:06,560 A já říkám, OK, chci, aby uložit, že do souboru. 480 00:25:06,560 --> 00:25:11,620 Všechny tohoto výstupu tady, chci dát do samostatného souboru. 481 00:25:11,620 --> 00:25:16,080 >> Takže to trochu větší než symbol je to, co budeme říkat. 482 00:25:16,080 --> 00:25:18,570 Jsme přesměrování výstup do souboru. 483 00:25:18,570 --> 00:25:21,680 Říkejme soubor bla, protože to je co mám tendenci vždy říkat. 484 00:25:21,680 --> 00:25:26,430 Takže teď vidíme, máme soubor bla tady. 485 00:25:26,430 --> 00:25:30,270 A když jsem ho otevřete, tak vidím, že je to přesně výstup z příkazu 486 00:25:30,270 --> 00:25:31,990 že jsem běžel. 487 00:25:31,990 --> 00:25:36,020 A podobně, můžete - 488 00:25:36,020 --> 00:25:41,260 jestli je to výstup do souboru, tento je získat vstup ze souboru. 489 00:25:41,260 --> 00:25:45,790 490 00:25:45,790 --> 00:25:47,050 Co je to příkaz, který jsem - 491 00:25:47,050 --> 00:25:49,620 >> JOSEPH: Myslím, že můžete použít více či méně, pravděpodobně. 492 00:25:49,620 --> 00:25:53,031 >> ROB: Ale jak se jen o méně bla? 493 00:25:53,031 --> 00:25:53,930 Nevím. 494 00:25:53,930 --> 00:25:57,870 Přijedete-li do tohoto scénáře, stejně jako tam je psets, že je to užitečné pro. 495 00:25:57,870 --> 00:25:59,950 >> JOSEPH: Můžete potrubí do echo. 496 00:25:59,950 --> 00:26:02,920 Pipe soubor do echo ji vidět. 497 00:26:02,920 --> 00:26:04,060 >> ROB: Je to potrubí. 498 00:26:04,060 --> 00:26:04,860 >> JOSEPH: Je mi líto. 499 00:26:04,860 --> 00:26:06,190 >> ROB: Dobře. 500 00:26:06,190 --> 00:26:12,720 Tak tohle je výstup do souboru. 501 00:26:12,720 --> 00:26:18,700 To je získat text ze souboru a předat ji do programu. 502 00:26:18,700 --> 00:26:20,560 A budete také vidět toho chlapa. 503 00:26:20,560 --> 00:26:24,410 Takže je to trochu dělá obojí najednou. 504 00:26:24,410 --> 00:26:28,310 A vlastně, budu představit dva nové Příkazy jen využít toho. 505 00:26:28,310 --> 00:26:33,060 >> Historie je šikovný příkaz, který je právě jít vytisknout výpis 506 00:26:33,060 --> 00:26:34,940 něco, co jsem kdy spustit příkazový řádek. 507 00:26:34,940 --> 00:26:38,290 Takže zde vidíme vše, co mám běží celou tuto dobu. 508 00:26:38,290 --> 00:26:39,540 Spousta ls let. 509 00:26:39,540 --> 00:26:41,570 510 00:26:41,570 --> 00:26:48,470 >> A další užitečný příkaz grep, že jeho účelem je vyhledávat přes 511 00:26:48,470 --> 00:26:52,060 text, hledá vzory, dobře, hledá cokoliv, co 512 00:26:52,060 --> 00:26:53,310 Chci, aby to vypadalo na. 513 00:26:53,310 --> 00:26:59,770 A tak šikovný použití zde je, řekněme chceme chytit historii. 514 00:26:59,770 --> 00:27:03,860 A chci se podívat na příkazy kde jsem - co je to 515 00:27:03,860 --> 00:27:05,000 užitečné kdo hledat? 516 00:27:05,000 --> 00:27:06,898 >> JOSEPH: [neslyšitelné]? 517 00:27:06,898 --> 00:27:09,710 >> ROB: Nebo pojďme se jen podívat na všechny dotýká, z jakéhokoli důvodu. 518 00:27:09,710 --> 00:27:13,850 Takže to je to, co to bude vypadat. 519 00:27:13,850 --> 00:27:15,560 A nemusíte se zcela pochopit, že. 520 00:27:15,560 --> 00:27:20,570 Ale myšlenka je zde, historie dává Stejný výkon je tady udělal 521 00:27:20,570 --> 00:27:25,030 kde je to tisk z celé Historie všeho, co jsem kdy běžet. 522 00:27:25,030 --> 00:27:27,030 My jsme pak mimochodem, že - 523 00:27:27,030 --> 00:27:30,230 takže místo toho, aby jej vytisknout na obrazovku, chceme projít, že na 524 00:27:30,230 --> 00:27:34,640 Příkaz grep, který hledá všechny instance slova dotek. 525 00:27:34,640 --> 00:27:40,280 >> A tak pomocí této kombinace Historie a grep nástrojů, vidím, OK, 526 00:27:40,280 --> 00:27:44,820 tady je všechny příkazy jsem kdy běh, a tady je to trochu obyčejný. 527 00:27:44,820 --> 00:27:45,510 Jsme na dně. 528 00:27:45,510 --> 00:27:47,930 A to mi také dává příkaz Jen jsem běžel, aby měl 529 00:27:47,930 --> 00:27:51,240 Slovo dotek v ní. 530 00:27:51,240 --> 00:27:58,500 Ale potrubí je docela užitečná věc pro kombinaci více programů. 531 00:27:58,500 --> 00:28:04,670 A skutečně, je to zkratka pro pronájmu me výstup historie do souboru bla, a 532 00:28:04,670 --> 00:28:10,190 dovolte mi, abych grep pomocí souboru bla jako to, co chci, aby se podívali na. 533 00:28:10,190 --> 00:28:13,460 Takže trubka je jen zkratka pro tyto dva příkazy. 534 00:28:13,460 --> 00:28:13,950 Ano. 535 00:28:13,950 --> 00:28:15,306 >> SPEAKER 4: [neslyšitelné]? 536 00:28:15,306 --> 00:28:16,556 >> ROB: Ano. 537 00:28:16,556 --> 00:28:20,142 538 00:28:20,142 --> 00:28:21,110 Co je to - 539 00:28:21,110 --> 00:28:21,858 Oh. 540 00:28:21,858 --> 00:28:24,820 Pojďme otestovat. 541 00:28:24,820 --> 00:28:29,170 Takže kočka, pes, ryba. 542 00:28:29,170 --> 00:28:33,770 Takže chci grep. 543 00:28:33,770 --> 00:28:37,680 Dash, r, znovu, bude rekurzivně, takže chci, aby sestoupil dolů 544 00:28:37,680 --> 00:28:38,870 všechny adresáře. 545 00:28:38,870 --> 00:28:43,210 Chci se rekurzivně grep pro všechny - a dovolte mi, abych dočasně dostat 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 Ignorovat mě. 549 00:28:50,740 --> 00:28:51,360 OK. 550 00:28:51,360 --> 00:28:56,740 >> Takže chci, aby dočasně grep pro všechny instance slova ryb. 551 00:28:56,740 --> 00:29:00,510 A tak zde to, co dělám, je grep rekurzivně pro slovo ryby. 552 00:29:00,510 --> 00:29:05,410 A hvězda znamená, že přes všechny tyto Soubory v tomto adresáři. 553 00:29:05,410 --> 00:29:08,930 A tak mi to dal oprávnění odepřen, protože to není dovoleno, aby četl, že 554 00:29:08,930 --> 00:29:10,060 konkrétní soubor. 555 00:29:10,060 --> 00:29:14,040 Ale to našel ryby v souboru, zkouška. 556 00:29:14,040 --> 00:29:18,450 >> Mohl bych také říci, konkrétně, jen jsem chci se podívat do souboru bla, v 557 00:29:18,450 --> 00:29:19,580 takovém případě to nebude nic najít. 558 00:29:19,580 --> 00:29:20,990 Chci se podívat do souboru, zkouška. 559 00:29:20,990 --> 00:29:22,240 To se najít ryby. 560 00:29:22,240 --> 00:29:25,980 561 00:29:25,980 --> 00:29:29,260 To je docela užitečné příkaz znát obecně. 562 00:29:29,260 --> 00:29:31,640 Tam jsou některé alternativy k grep , které mají být 563 00:29:31,640 --> 00:29:36,780 programátor přátelský, ale mám tendenci se ještě opřít 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í další příkazy? 568 00:29:42,520 --> 00:29:45,270 Oh. 569 00:29:45,270 --> 00:29:48,370 Jen jeden-off ten, který jsem vždycky zde bude legrace je ráže. 570 00:29:48,370 --> 00:29:55,610 Takže všimnete, když jsem v této krásné Režim celé obrazovky, nemám jako vrchol 571 00:29:55,610 --> 00:29:56,720 panelu nástrojů nebo tak něco. 572 00:29:56,720 --> 00:29:59,530 Takže cal jen mi dává pěknou Kalendář je to pravda 573 00:29:59,530 --> 00:30:02,380 Nyní odříznout, předpokládám. 574 00:30:02,380 --> 00:30:04,770 Ale pěkný malý příkaz. 575 00:30:04,770 --> 00:30:06,540 >> JOSEPH: Je [neslyšitelný]. 576 00:30:06,540 --> 00:30:09,170 Další příkazy, které by mohly mít Viděl patří řinčení a dělat. 577 00:30:09,170 --> 00:30:11,180 Půjdeme po nich více detailů později. 578 00:30:11,180 --> 00:30:13,400 Ale pokud jste pracovali na pset, měli byste být 579 00:30:13,400 --> 00:30:15,160 obeznámeni s těmi. 580 00:30:15,160 --> 00:30:16,640 >> ROB: Dobře. 581 00:30:16,640 --> 00:30:18,520 Dotazy na příkazové řádce, co? 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 pojďme se přesunout na některé C-související věci. 585 00:30:27,416 --> 00:30:28,666 Proměnné 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 stejně jako jsme měli matematiku ve Scratch, můžete také použít matematiku v C. 589 00:30:45,230 --> 00:30:49,270 >> Než se dostaneme k tomu úplně, tak proměnné. 590 00:30:49,270 --> 00:30:53,920 Pamatujte si, že vždy, když prohlašují, proměnné jako int x, nebo float y, vás 591 00:30:53,920 --> 00:30:56,710 musí jej zadat před název proměnné. 592 00:30:56,710 --> 00:31:03,020 Takže typy jsme viděli doposud jsou int, float, double, long long, který jsem 593 00:31:03,020 --> 00:31:06,150 vlastně nevím, jestli máme vidět, že tak daleko. 594 00:31:06,150 --> 00:31:07,700 >> Tam jsou některé ty ostatní. 595 00:31:07,700 --> 00:31:09,990 Jsme vidět char. 596 00:31:09,990 --> 00:31:13,920 K dispozici je krátká, což je jako by to Opakem long long, kde je to 597 00:31:13,920 --> 00:31:16,650 menší než celé číslo. 598 00:31:16,650 --> 00:31:18,580 Viděli jsme také řetězec. 599 00:31:18,580 --> 00:31:23,070 Takže to, co je zvláštního na provázku? 600 00:31:23,070 --> 00:31:25,350 Proč bych řekl, že je to ne tak docela jako int? 601 00:31:25,350 --> 00:31:27,030 >> SPEAKER 4: Je to ve skuteč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, proč máme řetězec Je tomu tak proto, když děláte 604 00:31:31,820 --> 00:31:33,215 hash, jsou cs50.h. 605 00:31:33,215 --> 00:31:36,530 606 00:31:36,530 --> 00:31:42,670 A uvidíme příklady později - oh, že nezpracovává, že dobře - 607 00:31:42,670 --> 00:31:46,160 kde je cs50.h něco dělat podél řad typu 608 00:31:46,160 --> 00:31:49,230 def, char hvězda, řetězec. 609 00:31:49,230 --> 00:31:53,280 >> A tak, že říká, že nemáme ani Víš, co char hvězda je ještě. 610 00:31:53,280 --> 00:31:56,770 Ale to se říká, chceme řetězec. 611 00:31:56,770 --> 00:32:00,250 Jakékoliv místo, které jste používali řetězec, můžete by byly pomocí char hvězda, 612 00:32:00,250 --> 00:32:04,670 , který je ve skutečnosti, že typ existuje v jazyce C. 613 00:32:04,670 --> 00:32:06,680 Ale k tomu se dostaneme. 614 00:32:06,680 --> 00:32:07,860 Jo, a jde zpátky. 615 00:32:07,860 --> 00:32:10,170 Neat. 616 00:32:10,170 --> 00:32:15,370 >> Takže to samé s bool kde true a false. 617 00:32:15,370 --> 00:32:22,510 To není opravdu vestavěný typ v jazyce C. Místo toho, to je prostě, to má 618 00:32:22,510 --> 00:32:23,740 Nulová hodnota? 619 00:32:23,740 --> 00:32:26,200 Pak budeme jen za to, že je falešný. 620 00:32:26,200 --> 00:32:27,350 Má to hodnotu - 621 00:32:27,350 --> 00:32:30,530 dobře, to má každá hodnota, která není nula? 622 00:32:30,530 --> 00:32:32,200 Pak budeme uvažovat, že je to pravda. 623 00:32:32,200 --> 00:32:35,940 Takže jeden je pravda, dva je pravda, něco nenulová, je pravda. 624 00:32:35,940 --> 00:32:38,710 625 00:32:38,710 --> 00:32:42,790 Takže to jsou ty. 626 00:32:42,790 --> 00:32:47,624 Otázky týkající se deklarování proměnných a typy proměnných a všechno, co? 627 00:32:47,624 --> 00:32:48,100 Jo. 628 00:32:48,100 --> 00:32:52,384 >> SPEAKER 4: Pro long long, v knize, to říkal, že to muselo být long long int. 629 00:32:52,384 --> 00:32:54,288 Ale jen na tak dlouho dlouho fungovat? 630 00:32:54,288 --> 00:32:58,210 631 00:32:58,210 --> 00:33:01,470 >> ROB: Takže tyto 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 říci, unsigned int x. 634 00:33:07,710 --> 00:33:09,640 Dá se říci, krátký int x. 635 00:33:09,640 --> 00:33:12,570 Dá se říci, long long int x. 636 00:33:12,570 --> 00:33:17,250 Ale skoro žádné z těch věcí, které jsem právě řekl, unsigned int, short int, 637 00:33:17,250 --> 00:33:21,480 long long int, můžete zbavit int, a to bude jen předpokládat, 638 00:33:21,480 --> 00:33:22,510 že jste měl na mysli int. 639 00:33:22,510 --> 00:33:26,045 Tak nepodepsané x, což prostě znamená - 640 00:33:26,045 --> 00:33:29,400 Víte, jak normálně s int, můžete říci, x se rovná negativní 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 ještě jednou, pro kameru, Otázkou bylo, jaký je rozdíl 643 00:33:34,480 --> 00:33:37,796 mezi long long int a jen long long? 644 00:33:37,796 --> 00:33:38,410 >> ROB: Jo. 645 00:33:38,410 --> 00:33:42,850 Tak jsem se skoro nikdy napsat dlouhé dlouhé int. 646 00:33:42,850 --> 00:33:44,100 Budu psát long long. 647 00:33:44,100 --> 00:33:47,770 648 00:33:47,770 --> 00:33:50,636 >> JOSEPH: Nějaké 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 hloupá připomínka, že to, jak deklarujeme proměnnou a inicializovat 652 00:34:02,390 --> 00:34:04,450 proměnné a deklarovat další proměnné a inicializovat 653 00:34:04,450 --> 00:34:05,870 to vše v jednom kroku. 654 00:34:05,870 --> 00:34:09,370 Takže deklarace proměnné a proměnná inicializace nemají 655 00:34:09,370 --> 00:34:11,120 se ale může být na stejném řádku. 656 00:34:11,120 --> 00:34:15,409 657 00:34:15,409 --> 00:34:20,060 >> Takže máme standardní operátory matematické které jste zvyklí - 658 00:34:20,060 --> 00:34:22,199 plus, minus, dělení, časy. 659 00:34:22,199 --> 00:34:24,389 K dispozici je také modulo, což uvidíme. 660 00:34:24,389 --> 00:34:29,060 Není, alespoň v C, vestavěný zdroj 661 00:34:29,060 --> 00:34:31,765 umocňování operátor stříška. 662 00:34:31,765 --> 00:34:33,770 No, tam je operátor stříška, ale to není moc. 663 00:34:33,770 --> 00:34:34,239 >> JOSEPH: Ale to není umocňování, Ano. 664 00:34:34,239 --> 00:34:36,210 >> ROB: Nepoužívejte stříška předpokládat, že to znamená, že 665 00:34:36,210 --> 00:34:39,980 jako hraněný nebo cokoliv jiného. 666 00:34:39,980 --> 00:34:42,289 Takže některé věci byste měli mít na nevadí o rozdělení. 667 00:34:42,289 --> 00:34:46,282 668 00:34:46,282 --> 00:34:48,880 Já budu stát. 669 00:34:48,880 --> 00:34:51,315 Tak prohlásil initialize odpověď. 670 00:34:51,315 --> 00:34:54,670 Takže říkáme float odpověď se rovná 1 děleno 10. 671 00:34:54,670 --> 00:34:57,500 Vytisknout odpověď na dvě desetinná místa. 672 00:34:57,500 --> 00:35:02,180 >> A to je jedna z těch věcí, které jsem by člověk printf přijít na to, že 673 00:35:02,180 --> 00:35:05,110 Co to sakra má%, tečka, 2f znamená? 674 00:35:05,110 --> 00:35:07,930 A to právě znamená, dobře, ignorování 0.2. 675 00:35:07,930 --> 00:35:10,420 A%, f je to, co používáme tisknout plavat. 676 00:35:10,420 --> 00:35:15,370 0.2 říká, že tisk plavat na dvě desetinná místa. 677 00:35:15,370 --> 00:35:19,600 Takže tento program má chybu, a ty by mohly viděli předtím v některých 678 00:35:19,600 --> 00:35:20,870 Před CS kurz. 679 00:35:20,870 --> 00:35:22,170 Ale co 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 když říkáme, odpověď se rovná 1 děleno 10, chceme 683 00:35:29,630 --> 00:35:31,610 odpovědět na 0,1. 684 00:35:31,610 --> 00:35:37,450 Ale 1 děleno 10, 1 je celé číslo, 10 je celé číslo. 685 00:35:37,450 --> 00:35:41,060 A tak, když budeme dělat celé číslo děleno číslo, budeme se dostat zpět 686 00:35:41,060 --> 00:35:42,190 celé číslo. 687 00:35:42,190 --> 00:35:43,660 So 1 děleno 10 je 0,1. 688 00:35:43,660 --> 00:35:46,760 >> Vzhledem k tomu, že je třeba, aby nám dal číslo, to jen tak zahodit, že 689 00:35:46,760 --> 00:35:49,410 desetinné místo, a tvrdí, že Odpověď je 0. 690 00:35:49,410 --> 00:35:55,314 A tak, když tiskneme odpověď zde, to bude tisknout 0.00. 691 00:35:55,314 --> 00:35:58,430 >> JOSEPH: A jen jako poznámku, že ve skutečnosti odhodí, co je po 692 00:35:58,430 --> 00:35:59,390 desetinná čárka. 693 00:35:59,390 --> 00:36:03,180 Takže pokud jste místo toho měl 6 děleno 10, si možná myslíte, že by vám 694 00:36:03,180 --> 00:36:05,200 0.6 a pak byste zaokrouhlit nahoru na 1. 695 00:36:05,200 --> 00:36:10,520 Ale ve skutečnosti to, co se stane, když to typ úkoly, to je to, že to, co je kapky 696 00:36:10,520 --> 00:36:11,470 za desetinnou čárkou. 697 00:36:11,470 --> 00:36:13,020 Takže 0.6 se stanou 0. 698 00:36:13,020 --> 00:36:13,370 >> ROB: Jo. 699 00:36:13,370 --> 00:36:15,160 A budeme říkat zkrátí za to. 700 00:36:15,160 --> 00:36:21,760 Takže pokaždé, když přetypovat na int, desetinná zkrácen. 701 00:36:21,760 --> 00:36:23,980 Takže oprava, která - je tu vlastně dva. 702 00:36:23,980 --> 00:36:27,890 A já budu dělat to druhé, protože tohle je mnohem jednodušší opravit. 703 00:36:27,890 --> 00:36:32,670 >> Takže jedna oprava je použít plováky v divizi. 704 00:36:32,670 --> 00:36:34,720 A opravdu, máte jen aby jeden z nich float. 705 00:36:34,720 --> 00:36:37,400 Ale je to trochu jasnější jen aby oba plováky. 706 00:36:37,400 --> 00:36:41,170 Tak 1,0 děleno 10,0 je dělení dvěma plováky. 707 00:36:41,170 --> 00:36:43,970 Takže odpověď bude skončit float, a tak budete 708 00:36:43,970 --> 00:36:48,050 správně vytisknout 0.10 zde. 709 00:36:48,050 --> 00:36:52,220 >> Něco, co nefunguje tak dobře o, že je dobře, jistě, to bylo snadné 710 00:36:52,220 --> 00:36:56,240 tak převést 1 až plavat tím, že 1.0. 711 00:36:56,240 --> 00:37:02,180 Ale co když místo toho jsme měli dvě celá čísla jako int x se rovná 1 a int y 712 00:37:02,180 --> 00:37:05,660 se rovná 10, a pak jsme chtěli Chcete-li x děleno y? 713 00:37:05,660 --> 00:37:10,420 Takže to není snadné jen dělat X.0, nebo tak něco. 714 00:37:10,420 --> 00:37:12,790 >> Takže oprava, která je casting. 715 00:37:12,790 --> 00:37:19,780 Takže lití je způsob, jak v C převést z jedné proměnné typu na jiný. 716 00:37:19,780 --> 00:37:22,320 Tak zde, 1 je celé číslo. 717 00:37:22,320 --> 00:37:27,050 A tím, že tento plovák před že jsme obsazení 1 až plováku. 718 00:37:27,050 --> 00:37:30,350 A tak to bude převádět 1 do 1,0. 719 00:37:30,350 --> 00:37:33,380 A to bude převádět 10 na 10,0. 720 00:37:33,380 --> 00:37:36,790 >> A pak, co se chovají podobně jako Předchozí verze se jen ukázalo, 721 00:37:36,790 --> 00:37:42,190 kde, jak se očekávalo, dostaneme 0,10 a to bude tisknout to. 722 00:37:42,190 --> 00:37:44,120 A můžeme to udělat s proměnné, taky. 723 00:37:44,120 --> 00:37:47,376 Takže můžeme říci, float x děleno float y. 724 00:37:47,376 --> 00:37:48,626 >> JOSEPH: Nějaké otázky? 725 00:37:48,626 --> 00:37:54,182 726 00:37:54,182 --> 00:38:00,090 >> ROB: Takže, stejně jako v běžném matematice, máme operátor přednost. 727 00:38:00,090 --> 00:38:06,960 Takže matiku, máte větší pravděpodobnost říkat pořadí operací. 728 00:38:06,960 --> 00:38:09,890 Zde je oficiální termín je operátor přednost. 729 00:38:09,890 --> 00:38:15,230 Ale operátor přednost, nebo většina operátoři, je, jak by se dalo očekávat. 730 00:38:15,230 --> 00:38:22,660 >> Takže stejně jako v matematice, 2 krát 10 je bude seskupeny blíže než 731 00:38:22,660 --> 00:38:25,410 Tento 10 děleno 2 a pak 2. 732 00:38:25,410 --> 00:38:29,745 Pořadí operací, bude to dělat 2 časy 10, 10 děleno 2, a poté 733 00:38:29,745 --> 00:38:32,720 to bude dělat 20 plus 5 plus 2. 734 00:38:32,720 --> 00:38:37,020 Takže je to, jak se očekávalo, a můžete použít závorky pro seskupení výrazů. 735 00:38:37,020 --> 00:38:41,063 Nelze použít hranaté závorky do skupiny výrazů. 736 00:38:41,063 --> 00:38:41,544 Jo? 737 00:38:41,544 --> 00:38:43,468 >> SPEAKER 5: Mohl byste vlastně stačí přejít zpět o jednu chvilku? 738 00:38:43,468 --> 00:38:47,316 Můžete obsadit int na řetězec? 739 00:38:47,316 --> 00:38:53,330 >> ROB: Tak v C, můžete obsadit cokoliv Chcete-li cokoliv chcete. 740 00:38:53,330 --> 00:38:55,600 To neznamená, že je to dobrá věc. 741 00:38:55,600 --> 00:38:59,760 Takže, když cast int na řetězec, to znamená, že - 742 00:38:59,760 --> 00:39:03,240 a my se do toho mnohem hlouběji - 743 00:39:03,240 --> 00:39:03,720 >> JOSEPH: Mnohem později. 744 00:39:03,720 --> 00:39:06,840 >> ROB: Nechtěl jsem říci mnohem později, tak jsem se snažil změnit svůj trest. 745 00:39:06,840 --> 00:39:13,370 Dostaneme se do něj mnohem důkladněji později, kdy opravdu, když máte 746 00:39:13,370 --> 00:39:14,810 Řetězec proměnné - 747 00:39:14,810 --> 00:39:17,160 takže řetězec může být libovolně dlouho, že jo? 748 00:39:17,160 --> 00:39:21,850 A my jsme říkali, že int je čtyři byty a dlouhé dlouhé osm 749 00:39:21,850 --> 00:39:23,620 bajtů a plovák je čtyři bajty. 750 00:39:23,620 --> 00:39:29,520 Takže řetězec, stejně jako int, má jen určitý počet bajtů k ní. 751 00:39:29,520 --> 00:39:31,800 A to bude čtyři bajty. 752 00:39:31,800 --> 00:39:34,750 >> Ale řetězec může být docela libovolně dlouho, že jo? 753 00:39:34,750 --> 00:39:40,190 Tak ahoj svět už, jestli je to 10 znaky nebo cokoliv, je to již 754 00:39:40,190 --> 00:39:42,670 bude v průběhu 4 bajty I vejde do řetězce. 755 00:39:42,670 --> 00:39:51,140 A tak, jak struny opravdu funguje, je, že jsou-li v paměti, že řetězec 756 00:39:51,140 --> 00:39:52,380 je zachována. 757 00:39:52,380 --> 00:39:57,290 >> A tak se sem, když řeknu, že řetězec x rovná Hello World, vnitřní x je 758 00:39:57,290 --> 00:40:01,840 Jen říkám, oh, ahoj svět je uložen v tomto konkrétním místě v paměti. 759 00:40:01,840 --> 00:40:07,060 Takže když se budeme snažit obsadit celé číslo ke řetězec, pak se snažíme interpretovat 760 00:40:07,060 --> 00:40:10,500 nějaký náhodný část paměti jako řetězec. 761 00:40:10,500 --> 00:40:14,465 A to téměř vždy zlomí věci. 762 00:40:14,465 --> 00:40:17,040 >> JOSEPH: Ale jestli to zaměňován vy, budeme se ho pokrývající 763 00:40:17,040 --> 00:40:17,550 více do hloubky později. 764 00:40:17,550 --> 00:40:17,850 >> ROB: Jo. 765 00:40:17,850 --> 00:40:20,540 To je místo, kde budete dostat se do ukazatelů. 766 00:40:20,540 --> 00:40:25,485 A to je významný kus dvou týdnů tohoto kurzu. 767 00:40:25,485 --> 00:40:28,275 >> SPEAKER 6: Má to fungovat jako objekty v jiných jazycích, nebo ani ne? 768 00:40:28,275 --> 00:40:34,050 >> ROB: Takže v jiných jazycích, objekty budou reprezentovat pomocí ukazatelů. 769 00:40:34,050 --> 00:40:37,070 770 00:40:37,070 --> 00:40:38,793 Není to totéž, ačkoli. 771 00:40:38,793 --> 00:40:42,110 772 00:40:42,110 --> 00:40:42,910 Jakékoliv myšlenky? 773 00:40:42,910 --> 00:40:43,760 >> JOSEPH: Ne 774 00:40:43,760 --> 00:40:44,185 Žádné myšlenky. 775 00:40:44,185 --> 00:40:44,980 >> ROB: OK. 776 00:40:44,980 --> 00:40:46,994 >> JOSEPH: Další. 777 00:40:46,994 --> 00:40:48,255 >> ROB: Jen jdi 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 Stejně jako máme plus, minus, dělit a násobit. 781 00:40:53,900 --> 00:40:56,720 Takže modulo je ten, který může být Není neviděli. 782 00:40:56,720 --> 00:40:59,540 A to jen říká, dát já zbytek. 783 00:40:59,540 --> 00:41:02,850 Takže 55% 10. 784 00:41:02,850 --> 00:41:06,840 Zbytek dělá 55 rozdělena 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 věc na vědomí s tím, Také je to nemusí fungovat podle očekávání 790 00:41:20,670 --> 00:41:22,700 Používáte-li záporné číslo. 791 00:41:22,700 --> 00:41:26,215 Takže negativní 5% 4, někteří lidé Možná si myslíte, že je - 792 00:41:26,215 --> 00:41:28,890 793 00:41:28,890 --> 00:41:33,808 co by si myslíte, že negativní 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 někteří lidé říkají jedno, Někteří lidé říkají, že negativní jednu. 796 00:41:37,920 --> 00:41:38,450 Ale co - 797 00:41:38,450 --> 00:41:40,820 >> ROB: Já bych ani řekl jeden z nich. 798 00:41:40,820 --> 00:41:42,370 >> JOSEPH: dva, je mi líto. 799 00:41:42,370 --> 00:41:43,240 Někteří lidé říkají - 800 00:41:43,240 --> 00:41:43,450 >> ROB: Three. 801 00:41:43,450 --> 00:41:43,800 >> JOSEPH: Tři? 802 00:41:43,800 --> 00:41:44,890 >> ROB: Negativní - 803 00:41:44,890 --> 00:41:45,950 co bylo - negativní pět - 804 00:41:45,950 --> 00:41:47,100 >> JOSEPH: Tři, tři, tři. 805 00:41:47,100 --> 00:41:48,450 Promiňte. 806 00:41:48,450 --> 00:41:51,910 Vzhledem k tomu, modulo, obvykle, když jste viděl jinde, obvykle to znamená, 807 00:41:51,910 --> 00:41:54,000 vrací kladné číslo, že jo? 808 00:41:54,000 --> 00:42:01,160 >> ROB: Takže když říkáme v matematice,% 10 je, mají tendenci chtít, aby vám - 809 00:42:01,160 --> 00:42:05,980 pokud budeme mod do 10., pak očekáváme, že získat číslo mezi 0 a 9. 810 00:42:05,980 --> 00:42:09,860 Ve zde, že není pravda, že jste Získáte záporná čísla se vrátil. 811 00:42:09,860 --> 00:42:15,898 >> JOSEPH: Tak negativní 5% 4 by byl negativní 1. 812 00:42:15,898 --> 00:42:19,325 >> ROB: Ale to je vzácné, že jsi mod-ing záporná čísla se začínají. 813 00:42:19,325 --> 00:42:25,490 814 00:42:25,490 --> 00:42:25,970 Přeskočit. 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í věc poukázat na to, o plováky je, že je to nebezpečné chování, 819 00:42:36,400 --> 00:42:39,850 ale plováky nejsou přesné zastoupení. 820 00:42:39,850 --> 00:42:46,190 Takže jít zpátky do bajtů znovu, nezapomeňte že int je vždy čtyři byty a 821 00:42:46,190 --> 00:42:47,830 plovák je vždy čtyři bajty. 822 00:42:47,830 --> 00:42:51,340 Takže Lucasova příkladem je docela dobrý. 823 00:42:51,340 --> 00:42:55,730 >> Takže myslíte, že z 1 děleno 3. 824 00:42:55,730 --> 00:42:57,800 Tak 0,3333333. 825 00:42:57,800 --> 00:43:03,540 Pokud mám jen 32 bitů, jak může I uložit 0,33333 přesně? 826 00:43:03,540 --> 00:43:07,250 A možná, z jakéhokoli důvodu, říkáte, v pořádku, no, řekněme, že 827 00:43:07,250 --> 00:43:13,210 že tento konkrétní 1011001, pojďme jen říct, že by měl být 0,333333. 828 00:43:13,210 --> 00:43:16,960 No, máte jen konečný počet ty bity, takže je nemožné, aby 829 00:43:16,960 --> 00:43:22,550 představují každý s plovoucí desetinnou čárkou vzhledem k jen 32 bitů hodnoty. 830 00:43:22,550 --> 00:43:25,580 >> No, to je nemožné reprezentovat některý plovoucí bodová hodnota dána nekonečná - 831 00:43:25,580 --> 00:43:28,480 dobře, vzhledem k tomu jakýkoliv konečný počet bitů. 832 00:43:28,480 --> 00:43:38,265 Takže otázkou je, dobře, když jsme použili tisknout na dvě desetinná místa, 833 00:43:38,265 --> 00:43:42,000 jsme správně dostat odpověď 0.10. 834 00:43:42,000 --> 00:43:47,510 Ale pod kapotou, je to opravdu jsou uloženy tak blízko, jak je to možné, aby 835 00:43:47,510 --> 00:43:51,790 0.10 jako ty kousky mohou představovat. 836 00:43:51,790 --> 00:43:53,200 Je to na další snímek? 837 00:43:53,200 --> 00:43:53,830 Nebo ne? 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é jen vytáhnout poznámky se trochu. 841 00:43:57,760 --> 00:43:59,700 >> ROB: Jdu pro zvětšení v na poslední na to. 842 00:43:59,700 --> 00:44:00,950 Ach můj bože, to je [neslyšitelný]. 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, co se bude tisknout pokud jsme se spustit tento program. 846 00:44:12,300 --> 00:44:20,340 A všimněte si, že to není opravdu velký problém pokud budeme jen starat o jako 847 00:44:20,340 --> 00:44:21,920 dvě až tři desetinná místa. 848 00:44:21,920 --> 00:44:26,700 Stejně jako my jen původně tištěný 0,10, a to je důvod, proč jsme neviděli nic špatného. 849 00:44:26,700 --> 00:44:31,380 Ale jakmile začneme dostat do přesný, přesný počet, že je to 850 00:44:31,380 --> 00:44:35,660 představuje, vidíme, že tomu tak není přesně představují 0,1. 851 00:44:35,660 --> 00:44:40,900 >> A část problému je zde jako, v pořádku, to je v pořádku, ale, no, 852 00:44:40,900 --> 00:44:46,120 První, co když jsme se snažili dělat, Odpověď rovná se rovná 0,1? 853 00:44:46,120 --> 00:44:49,200 Je to jít vrátit true nebo false? 854 00:44:49,200 --> 00:44:51,850 A tak to je těžké říct. 855 00:44:51,850 --> 00:44:53,330 Myslím, že to vlastně může vrátit true. 856 00:44:53,330 --> 00:44:55,265 Bude to první - 857 00:44:55,265 --> 00:44:56,180 Nevím. 858 00:44:56,180 --> 00:45:00,090 Odpověď je, jakmile začnete zabývat s plovoucí desetinnou čárkou hodnoty, jste docela 859 00:45:00,090 --> 00:45:05,150 e by se neměla používat rovnost kvůli této nepřesnosti. 860 00:45:05,150 --> 00:45:09,470 >> A za všechno, co vím, je to stý desetinné místo, 861 00:45:09,470 --> 00:45:13,670 s plovoucí desetinnou čárkou nebyl schopen správně zpracovat. 862 00:45:13,670 --> 00:45:18,180 A tak rovnost bude jen selhat i ačkoli číslo - pokud bylo 863 00:45:18,180 --> 00:45:24,450 pomocí přesných čísel, by čísla byly přesně stejné. 864 00:45:24,450 --> 00:45:27,790 Je to v průběhu asi 50 výpočty pomocí těchto plovoucí 865 00:45:27,790 --> 00:45:30,270 bodové hodnoty, chyba může stavět a výš a výš, a 866 00:45:30,270 --> 00:45:31,125 věci prostě něco pokazit. 867 00:45:31,125 --> 00:45:33,870 >> JOSEPH: A tam byly opravdu slavné příklady tohoto děje. 868 00:45:33,870 --> 00:45:37,190 Stejně jako inženýři NASA se dostali tento špatné, způsobuje rakety vybuchnout v 869 00:45:37,190 --> 00:45:38,665 vzduchu poté, co byla zahájena. 870 00:45:38,665 --> 00:45:41,490 A spousta otázek, jako je to. 871 00:45:41,490 --> 00:45:41,956 Tak jo. 872 00:45:41,956 --> 00:45:45,218 >> SPEAKER 6: Když se řekne 0,3 f, to zkrátit zbytek? 873 00:45:45,218 --> 00:45:46,468 Nebo to zaokrouhlit směrem nahoru nebo dolů? 874 00:45:46,468 --> 00:45:48,800 875 00:45:48,800 --> 00:45:50,200 >> ROB: Bude printf kolem něj? 876 00:45:50,200 --> 00:45:52,180 >> JOSEPH: Myslím, že printf zkrátí. 877 00:45:52,180 --> 00:45:52,640 >> ROB: OK. 878 00:45:52,640 --> 00:45:59,890 Takže můžeme podobně jít v opačném směr Tady, v tomto případě, 879 00:45:59,890 --> 00:46:03,320 Nejbližší to mohlo představovat 0.1 byl s tímto číslem. 880 00:46:03,320 --> 00:46:06,820 Nejbližší to by mohl být schopen představují 0,2 je v protikladu 881 00:46:06,820 --> 00:46:11,420 směr, ,199999996356 nebo tak něco. 882 00:46:11,420 --> 00:46:17,480 Takže když jsme šli v tomto směru věci, pak printf 0,3 f se vrátí 883 00:46:17,480 --> 00:46:20,866 1,99 místo 2,00. 884 00:46:20,866 --> 00:46:22,960 >> JOSEPH: A já nejsem úplně jisti, na které. 885 00:46:22,960 --> 00:46:25,430 Možná budete chtít napsat malé, malé Program jen zkontrolovat, že. 886 00:46:25,430 --> 00:46:29,370 >> ROB: I když to, co jsme si jisti, že pokud jste se pokusili obsadit, které se 887 00:46:29,370 --> 00:46:33,660 int, a lití na int bude způsobí, že se zkrátit desetinu, pokud 888 00:46:33,660 --> 00:46:38,140 pokusu o obsazení 1.9999999 na int, dostanete 1. 889 00:46:38,140 --> 00:46:41,440 A tak byste měli obvykle použít kolo funkce v matematické knihovně. 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ící se na podmínkách a logické výrazy. 895 00:46:54,000 --> 00:46:58,120 Takže jste viděl ty. 896 00:46:58,120 --> 00:47:07,420 A skutečně, dovolte mi, abych se ujistil, můj Počítač je ve správném formátu zde. 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 líto, budeme muset vypořádat trochu s cut-off na okrajích. 900 00:47:13,870 --> 00:47:15,830 >> Ale jo, vy jste viděli předtím v roce Scratch. 901 00:47:15,830 --> 00:47:19,930 Tak tohle tady je výrazem , který se používá v 902 00:47:19,930 --> 00:47:21,250 podmíněný příkaz. 903 00:47:21,250 --> 00:47:23,930 Takže odpověď větší než nula ti true nebo false. 904 00:47:23,930 --> 00:47:26,530 A to je velmi důležité, protože které nám umožňují představit 905 00:47:26,530 --> 00:47:28,670 logika do našeho kódu. 906 00:47:28,670 --> 00:47:32,820 >> Tak například, to je program, psaný v Scratch, který požádá uživatele 907 00:47:32,820 --> 00:47:36,980 pro celé číslo a řekne jim, ať číslo, které vám dal byla 908 00:47:36,980 --> 00:47:38,690 kladné nebo záporné číslo. 909 00:47:38,690 --> 00:47:42,980 A konverze sem vidět, je nejprve vytisknout prohlášení, 910 00:47:42,980 --> 00:47:43,870 dej mi číslo. 911 00:47:43,870 --> 00:47:45,980 A pak se jich zeptáte na celé číslo. 912 00:47:45,980 --> 00:47:49,870 >> A pak použít podmíněné logiky nad zde ověřit, zda toto číslo 913 00:47:49,870 --> 00:47:52,030 byl ve skutečnosti větší než nula, nebo ne. 914 00:47:52,030 --> 00:47:58,960 Takže tady máme logický výraz uvnitř podmíněné If. 915 00:47:58,960 --> 00:48:00,660 Je tam nějaké otázky? 916 00:48:00,660 --> 00:48:03,030 Existují nějaké 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 víc, než jen větší než, samozřejmě. 919 00:48:06,140 --> 00:48:10,385 Můžete vytvořit logických výrazů pomocí většiny druhů věcí, které 920 00:48:10,385 --> 00:48:11,150 by si myslel, ze v matematice. 921 00:48:11,150 --> 00:48:12,370 Tak větší než. 922 00:48:12,370 --> 00:48:13,740 To by mělo být menší než. 923 00:48:13,740 --> 00:48:14,990 Promiň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 chraň ji opustit. 927 00:48:22,971 --> 00:48:23,620 >> JOSEPH: Dobře. 928 00:48:23,620 --> 00:48:25,950 Takže větší než, menší než, větší než nebo rovno, menší 929 00:48:25,950 --> 00:48:27,070 než nebo rovno. 930 00:48:27,070 --> 00:48:31,980 Používáme dvojité rovná pro kontrolu rovnost, protože jeden se rovná prostředky 931 00:48:31,980 --> 00:48:32,810 úkol, že jo? 932 00:48:32,810 --> 00:48:33,140 Ano. 933 00:48:33,140 --> 00:48:37,130 A pak můžeme také nemají rovná podle pomocí vykřičník, rovná. 934 00:48:37,130 --> 00:48:41,530 >> A tento symbol vykřičník může také být rozšířena tak, aby v případě, že chcete 935 00:48:41,530 --> 00:48:44,050 k obrácení nějaký druh Boolean výraz, můžete to udělat. 936 00:48:44,050 --> 00:48:48,530 Takže to vyhodnotí na true pouze v případě, že odpověď je méně 937 00:48:48,530 --> 00:48:51,240 než nebo roven nule. 938 00:48:51,240 --> 00:48:53,950 Jakékoliv dotazy 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 také kombinovat tyto Výrazy používající 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 jen symbol A, který by měl být posun, 7.. 943 00:49:03,530 --> 00:49:07,720 A to je symbol trubka, která je není malá písmena L. Je to jedna 944 00:49:07,720 --> 00:49:09,440 To je přímo nad klávesou Enter. 945 00:49:09,440 --> 00:49:12,870 Takže můžete použít dva z nich symbolizuje logické a logické Or. 946 00:49:12,870 --> 00:49:18,180 >> Takže to bude vracet hodnotu true pouze tehdy, pokud odpověď je jeden, dva, tři, nebo čtyři. 947 00:49:18,180 --> 00:49:23,030 A to vrátí hodnotu true pouze tehdy, pokud odpověď Kromě toho je na obou stranách. 948 00:49:23,030 --> 00:49:26,190 Takže to není jeden, dva, tři, nebo čtyři. 949 00:49:26,190 --> 00:49:28,385 A jak byste použít že ve výrazu - 950 00:49:28,385 --> 00:49:29,990 >> ROB: Nebo nula nebo pět. 951 00:49:29,990 --> 00:49:32,200 >> JOSEPH: Zero nebo pět. 952 00:49:32,200 --> 00:49:32,380 Promiňte. 953 00:49:32,380 --> 00:49:33,320 Ano, ano, ano. 954 00:49:33,320 --> 00:49:34,180 OK. 955 00:49:34,180 --> 00:49:38,980 A tady teď, stejným způsobem, by se použít ten výraz, menší 956 00:49:38,980 --> 00:49:42,000 Výraz strana-li podmíněné prohlášení, měli byste také použít 957 00:49:42,000 --> 00:49:47,800 Stejným způsobem by jen uvedení uvnitř závorkách u příkazu If. 958 00:49:47,800 --> 00:49:54,020 Takže to printf bude jen oheň, pokud odpověď je jeden, dva, tři, nebo čtyři. 959 00:49:54,020 --> 00:49:56,002 Jakékoliv dotazy týkající se 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 další podmíněné konstrukt říkáme if / else. 962 00:50:04,240 --> 00:50:08,120 Takže v podstatě, to teď znamená, OK, Pokud něco, co jsem chtěl zkontrolovat nebyl 963 00:50:08,120 --> 00:50:11,600 pravda, pak jít do jiného a vykonávat tuto jinou akci. 964 00:50:11,600 --> 00:50:15,570 Takže v tomto konkrétním případě, zeptal jsem se uživatel na celé číslo. 965 00:50:15,570 --> 00:50:17,790 Je celé číslo větší než nula? 966 00:50:17,790 --> 00:50:18,310 Ano? 967 00:50:18,310 --> 00:50:20,100 No, pak se zvedl kladné číslo. 968 00:50:20,100 --> 00:50:22,320 Pokud ne, pak to musí mít byl negativní, nebo nula. 969 00:50:22,320 --> 00:50:27,530 Takže jste si vybral záporné číslo nebo nula v tomto případě. 970 00:50:27,530 --> 00:50:29,235 Ano. 971 00:50:29,235 --> 00:50:30,485 Nebo nula. 972 00:50:30,485 --> 00:50:36,320 973 00:50:36,320 --> 00:50:39,300 >> A pak tu máme také if / else, If a else. 974 00:50:39,300 --> 00:50:45,640 Tak to nám umožňuje provést posloupnost věci, pouze v případě, že jako první se nezdaří. 975 00:50:45,640 --> 00:50:49,540 Takže v tomto případě, teď děláme poslední si vyberete nulu. 976 00:50:49,540 --> 00:50:53,080 Takže pokud se ani vybral pozitivní, ani záporné číslo, pak se musí 977 00:50:53,080 --> 00:50:53,640 si vybral nulu. 978 00:50:53,640 --> 00:50:56,720 Tak to prostě chodí dolů řetěz takhle. 979 00:50:56,720 --> 00:50:59,960 >> Takže příklad toho, jak Pokud se liší od - 980 00:50:59,960 --> 00:51:02,590 if / else se liší od jen sled stability. 981 00:51:02,590 --> 00:51:07,680 A to je častá otázka, která lidé ptají se, no, pokud se dostanete jako 982 00:51:07,680 --> 00:51:11,265 95, CS50, co bude tento Program vám řekne? 983 00:51:11,265 --> 00:51:12,600 >> SPEAKER 5: Dostal jsi A. 984 00:51:12,600 --> 00:51:13,490 >> JOSEPH: Ano. 985 00:51:13,490 --> 00:51:14,960 Máš každý jeden z nich přímo. 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šichni z nich se hodnotí v pořadí. 988 00:51:19,770 --> 00:51:23,570 Takže zatímco 95 je větší než 90, je to Také větší než 80, je to také 989 00:51:23,570 --> 00:51:25,790 větší než 70, a to také vyšší než 60 let. 990 00:51:25,790 --> 00:51:27,620 Takže máš všechny ty stupňů. 991 00:51:27,620 --> 00:51:31,630 A předpokládám, že byste pouze chcete A. 992 00:51:31,630 --> 00:51:34,060 >> Způsob, jak opravit, že je nahradit ty s Else / li 's. 993 00:51:34,060 --> 00:51:37,540 Takže v tomto případě, že vidí, že 95 je větší než 90 °, a pak to dělá 994 00:51:37,540 --> 00:51:38,885 nehodnotí ostatní z výkazů. 995 00:51:38,885 --> 00:51:41,900 996 00:51:41,900 --> 00:51:43,150 Jakékoliv dotazy týkající se, že? 997 00:51:43,150 --> 00:51:48,580 998 00:51:48,580 --> 00:51:52,470 >> Takže je tu další podmíněné druh struktura, která se zde, které se 999 00:51:52,470 --> 00:51:53,390 volání příkazu switch. 1000 00:51:53,390 --> 00:51:57,390 Tak to umožňuje v podstatě kontrolovat co je hodnota čísla, které dal 1001 00:51:57,390 --> 00:51:59,000 do příkazu switch je. 1002 00:51:59,000 --> 00:52:03,200 Takže v tomto případě, jsme přepínání na n, a říkáme, oh, pokud n je 1003 00:52:03,200 --> 00:52:04,710 jeden, pak vytiskněte toto prohlášení. 1004 00:52:04,710 --> 00:52:07,910 A pak zlomit, což znamená, že výstup z příkazu switch. 1005 00:52:07,910 --> 00:52:12,670 >> Pokud to nebyl jeden, pak dobře, jen nakonec zkontrolovat všechny z těchto případů. 1006 00:52:12,670 --> 00:52:16,280 A tak se kontroluje, jestli je to jeden nebo dva nebo tři, a to vytiskne podle toho. 1007 00:52:16,280 --> 00:52:19,780 A co tady to default klíčové slovo dolů prostředky, je-li neměli zadávat jakákoli 1008 00:52:19,780 --> 00:52:21,690 z těch, řekněte Neplatné. 1009 00:52:21,690 --> 00:52:25,910 Takže řekněme, že jsem se požádat o n a uživatel dává mi čtyři. 1010 00:52:25,910 --> 00:52:29,470 No, to odpovídá žádný z těchto případů, tak to bude tisknout to, co je v 1011 00:52:29,470 --> 00:52:30,540 výchozí sekce. 1012 00:52:30,540 --> 00:52:31,180 Ano, otázka? 1013 00:52:31,180 --> 00:52:32,614 >> SPEAKER 5: Můžete použít Boolean výrazy místo 1014 00:52:32,614 --> 00:52:33,570 jeden, dva, nebo tři? 1015 00:52:33,570 --> 00:52:36,940 >> JOSEPH: Takže otázka je můžete použít Booleovské výrazy namísto jednoho, 1016 00:52:36,940 --> 00:52:37,940 dva, tři a? 1017 00:52:37,940 --> 00:52:40,520 A v C, věřím, že vám nemůže dělat, že. 1018 00:52:40,520 --> 00:52:44,320 Ale v jiných jazycích, které by mohly narazíte na konci roku 1019 00:52:44,320 --> 00:52:46,460 semestr jako JavaScript, můžete. 1020 00:52:46,460 --> 00:52:50,050 No, měli byste počítat první že hodnota a použít jej v 1021 00:52:50,050 --> 00:52:50,650 přepnout prohlášení. 1022 00:52:50,650 --> 00:52:50,930 Jo? 1023 00:52:50,930 --> 00:52:54,760 >> ROB: Takže část prospěch spínače prohlášení je, že na to, pokud jste to udělal 1024 00:52:54,760 --> 00:52:58,680 as if / else, tak jako v případě n se rovná se rovná jedné nebo cokoliv jiného. 1025 00:52:58,680 --> 00:53:00,300 Else / li n rovno rovná se dva, cokoliv. 1026 00:53:00,300 --> 00:53:01,960 Else / li n rovno rovná tři. 1027 00:53:01,960 --> 00:53:05,930 Takže jak by program spustit, je to by postupně jít dolů v tomto seznamu 1028 00:53:05,930 --> 00:53:07,500 a zkontrolujte, zda je n jeden? 1029 00:53:07,500 --> 00:53:08,040 Ne. 1030 00:53:08,040 --> 00:53:09,070 N dvě? 1031 00:53:09,070 --> 00:53:09,490 Ne. 1032 00:53:09,490 --> 00:53:10,940 Je n tři? 1033 00:53:10,940 --> 00:53:11,710 Jo. 1034 00:53:11,710 --> 00:53:12,610 Udělej to. 1035 00:53:12,610 --> 00:53:15,270 >> Vzhledem k tomu, s výroky spínač, je to skutečně schopen sestavit, aby to bylo 1036 00:53:15,270 --> 00:53:16,360 opravdu rychle. 1037 00:53:16,360 --> 00:53:19,550 A jakmile se říká, že spínač je říká, všechno v pořádku, n je dva, já jsem 1038 00:53:19,550 --> 00:53:23,060 bezprostředně chystá skočit tam, kde Já jsem měl začít provádění. 1039 00:53:23,060 --> 00:53:26,080 Nebudu se nejprve zkontrolujte, n je jedna, je n dva? 1040 00:53:26,080 --> 00:53:28,860 To může okamžitě začít dělat to, co má dělat. 1041 00:53:28,860 --> 00:53:33,830 >> A kvůli tomu, nemůže se booleovské podmínky. 1042 00:53:33,830 --> 00:53:36,480 Anebo to bude muset udělat, sekvenční, stejně jako, v pořádku, je n 1043 00:53:36,480 --> 00:53:37,820 větší než nula? 1044 00:53:37,820 --> 00:53:41,140 Jinak je n větší než 10, nebo cokoliv jiného. 1045 00:53:41,140 --> 00:53:44,780 >> JOSEPH: V tomto případě, pokud jste použili If / else, pak přepínač by-li to 1046 00:53:44,780 --> 00:53:47,792 běžet přibližně třikrát rychleji než if / else, pokud je. 1047 00:53:47,792 --> 00:53:53,060 1048 00:53:53,060 --> 00:53:56,040 Můžeme zorganizovat spínač v takové tak, že se neporušují 1049 00:53:56,040 --> 00:53:57,520 Po každém z těchto případů. 1050 00:53:57,520 --> 00:54:00,960 Takže v tomto případě, jsem rozdělení čísla, která se rozhodnou do jednoho a 1051 00:54:00,960 --> 00:54:04,250 dva být ne vysoká čísla a tři je vysoké číslo. 1052 00:54:04,250 --> 00:54:08,290 >> Takže v tomto případě, je-li n je jedna nebo dvě, to zasáhne případ a pak to bude 1053 00:54:08,290 --> 00:54:10,640 propadnout, protože není přestávka. 1054 00:54:10,640 --> 00:54:11,610 A to skončí tady. 1055 00:54:11,610 --> 00:54:15,360 Takže pokud si vybereme jeden, bude to dělat printf a pak zlomit tak, že žádný z 1056 00:54:15,360 --> 00:54:17,610 to je popraven. 1057 00:54:17,610 --> 00:54:21,870 A samozřejmě, pokud se vstoupit do třech nebo něco jiného, ​​pak to bude přeskakovat 1058 00:54:21,870 --> 00:54:25,320 ty, a ne tam, a to bude místo toho spustit 1059 00:54:25,320 --> 00:54:27,490 odpovídající řádek. 1060 00:54:27,490 --> 00:54:29,390 Existují nějaké otázky o tom? 1061 00:54:29,390 --> 00:54:29,780 Ano? 1062 00:54:29,780 --> 00:54:32,642 >> SPEAKER 4: Chtěli byste si chybu, pokud vám měl přestávku po případě, že jeden, ale to 1063 00:54:32,642 --> 00:54:34,550 neměl něco pro to udělat? 1064 00:54:34,550 --> 00:54:37,820 >> JOSEPH: Takže otázka je by vám chyba, pokud máte přestávku po 1065 00:54:37,820 --> 00:54:39,730 případě, že jeden, ale není nic, co dělat? 1066 00:54:39,730 --> 00:54:41,520 A odpověď je ne. 1067 00:54:41,520 --> 00:54:43,172 Nebudete ve skutečnosti dojde k chybě. 1068 00:54:43,172 --> 00:54:44,590 Jo, mm hmm. 1069 00:54:44,590 --> 00:54:54,540 >> Tak jako tak nějak malá změna tady, Chystám se dát printf zde. 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, co by to tisknout, pokud Dal jsem jeden v jako 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 se ti to netrvalo vysoký počet dvakrát, že jo? 1076 00:55:10,360 --> 00:55:13,500 Vzhledem k tomu, že by zasažen, že první případ, by to zlomit, a to by spadnout 1077 00:55:13,500 --> 00:55:15,730 až druhém případě. 1078 00:55:15,730 --> 00:55:16,950 Jakékoliv dotazy týkající se, že? 1079 00:55:16,950 --> 00:55:18,280 >> ROB: Už máte jiný dotaz? 1080 00:55:18,280 --> 00:55:20,840 >> JOSEPH: OK, v pohodě. 1081 00:55:20,840 --> 00:55:22,400 Dobrá. 1082 00:55:22,400 --> 00:55:25,780 Takže tam je něco jiného, ​​co nazýváme ternární operátor, který je v podstatě 1083 00:55:25,780 --> 00:55:29,010 alternativní syntaxe dělat Pokud i poté Else. 1084 00:55:29,010 --> 00:55:30,470 A to vám umožní dělat vše na jednom řádku. 1085 00:55:30,470 --> 00:55:34,110 Takže v tomto konkrétním programu, Ptám uživatele k n.. 1086 00:55:34,110 --> 00:55:37,190 A jestliže n je větší než 100, říkám je, že si vybral vysoký počet. 1087 00:55:37,190 --> 00:55:39,560 Jinak jsem jim říct, že vybral nízké číslo. 1088 00:55:39,560 --> 00:55:43,030 >> Takže můžeme použít to opravdu dlouhé syntaxi, řetězec, S, a pak zkontrolujte, zda n je 1089 00:55:43,030 --> 00:55:45,260 větší než 100 a přiřadit to podle toho. 1090 00:55:45,260 --> 00:55:49,450 Ale můžeme to mnohem stručnější pomocí této syntaxe ternární operátor 1091 00:55:49,450 --> 00:55:52,090 který zahrnuje otázku značka a tlustého střeva. 1092 00:55:52,090 --> 00:55:55,070 Takže otazník je v podstatě ptám, že jo? 1093 00:55:55,070 --> 00:55:56,625 >> ROB: Možná přiblížit na to. 1094 00:55:56,625 --> 00:55:57,372 >> JOSEPH: Ano. 1095 00:55:57,372 --> 00:56:00,210 Dobrý postřeh. 1096 00:56:00,210 --> 00:56:02,550 Tak tohle je ternární operátor. 1097 00:56:02,550 --> 00:56:06,100 Poprvé jsem se zeptat, n je větší než 100? 1098 00:56:06,100 --> 00:56:09,770 Pokud je, pak jsem se provést první část před dvojtečkou. 1099 00:56:09,770 --> 00:56:13,360 Pokud tomu tak není, pak jsem spustit Druhá část za dvojtečkou. 1100 00:56:13,360 --> 00:56:16,640 Takže, pokud n je větší než 100, pak se zvedne vysoko a klade 1101 00:56:16,640 --> 00:56:18,360 že do řetězce s. 1102 00:56:18,360 --> 00:56:22,170 Pokud n je menší než 100, se vybere low a pak se dává, že do řetězce s. 1103 00:56:22,170 --> 00:56:30,186 Tak, že bude kondenzovat tento velký kus dolů do právě tohoto jednoho řádku. 1104 00:56:30,186 --> 00:56:32,010 >> SPEAKER 5: Je to populární? 1105 00:56:32,010 --> 00:56:36,070 >> JOSEPH: Ano, to je docela populární pro věci, kde v podstatě chcete 1106 00:56:36,070 --> 00:56:38,700 se přiřazení na základě nějaký stavu. 1107 00:56:38,700 --> 00:56:43,110 A v tomto případě jsme se snažili přiřadit hodnotu na řetězec s. 1108 00:56:43,110 --> 00:56:44,840 Není to tak - 1109 00:56:44,840 --> 00:56:47,670 Myslím, že jsem to opravdu raději že v ostatních případech. 1110 00:56:47,670 --> 00:56:49,390 Ale to je zvláště užitečné pro tento úkol. 1111 00:56:49,390 --> 00:56:54,490 >> ROB: To je docela obyčejný vzor kde máte nějaké proměnné, které 1112 00:56:54,490 --> 00:56:58,200 budete říkat, jestli něco, nastavte tato proměnná na jednu hodnotu, jinak nastavte 1113 00:56:58,200 --> 00:56:59,810 tato proměnná na jinou hodnotu. 1114 00:56:59,810 --> 00:57:03,360 A to je scénář kde pomocí trojice. 1115 00:57:03,360 --> 00:57:05,220 >> JOSEPH: A ty úspory spousta linek, že jo? 1116 00:57:05,220 --> 00:57:08,090 A to právě dělá váš kód pravděpodobně trochu čitelnější. 1117 00:57:08,090 --> 00:57:08,635 Ano, otázka? 1118 00:57:08,635 --> 00:57:12,384 >> SPEAKER 6: U trojice, můžete jít, řetězec s rovni s, otazník? 1119 00:57:12,384 --> 00:57:15,280 A pak byste mohli mít, řekněme, pět různých možností. 1120 00:57:15,280 --> 00:57:18,310 A v závislosti na tom, co je počet n byl by si vybrat 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 udělat řetězec 1122 00:57:22,210 --> 00:57:25,910 s se rovná n, a pak mít více než dvě Možnosti po té otazníkem? 1123 00:57:25,910 --> 00:57:29,740 A jednoduchá odpověď je ne, že to není opravdu dobrý způsob, jak to udělat, že pokud 1124 00:57:29,740 --> 00:57:33,850 Chcete-li hnízdo vícenásobné trojice subjekty uvnitř každého jiný. 1125 00:57:33,850 --> 00:57:38,050 >> Dalo by se to jako n větší než 100, otazník, a pak další 1126 00:57:38,050 --> 00:57:41,850 ternární operátor, n větší než 50, otazník, a hnízdo to tak. 1127 00:57:41,850 --> 00:57:45,240 Ale v tomto případě, váš kód je dostat trochu nečitelný a chaotický, 1128 00:57:45,240 --> 00:57:47,920 a to by mohlo být lepší prostě jít na Pokud / Else v tomto bodě. 1129 00:57:47,920 --> 00:57:54,530 >> ROB: A také, jako okrajová poznámka, PHP nesprávně implementuje ternární 1130 00:57:54,530 --> 00:57:58,053 Operátor tak, aby vnořené ternaries ani fungovat jak by měly. 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 matoucí, zvláště, když jdete 1133 00:58:01,170 --> 00:58:02,145 do různých jazyků. 1134 00:58:02,145 --> 00:58:04,810 >> ROB: Je to matoucí dost, že jazyky jsou špatně o tom. 1135 00:58:04,810 --> 00:58:08,030 1136 00:58:08,030 --> 00:58:11,510 >> JOSEPH: Takže vlastně, jen objasnit, to všichni víme, co to 1137 00:58:11,510 --> 00:58:13,900 % S dělá tady? 1138 00:58:13,900 --> 00:58:15,650 Jakékoliv dotazy týkající se, že? 1139 00:58:15,650 --> 00:58:19,760 Myslím, že jen pro kameru,% s v podstatě nám umožňuje dát zástupný symbol 1140 00:58:19,760 --> 00:58:20,790 pro řetězce. 1141 00:58:20,790 --> 00:58:23,920 A pak na konci, jsme určit, že Proměnná chceme dát do toho 1142 00:58:23,920 --> 00:58:25,500 Držák místo je s. 1143 00:58:25,500 --> 00:58:27,730 Takže v podstatě se s a dá to sem. 1144 00:58:27,730 --> 00:58:32,130 A pak to bude tisknout, jste si vybral vysoké nebo jste si vybral nízké číslo. 1145 00:58:32,130 --> 00:58:33,770 OK. 1146 00:58:33,770 --> 00:58:36,970 >> Takže smyčky umožňují provádět věci krouživými pohyby, že jo? 1147 00:58:36,970 --> 00:58:40,300 Možná jste narazili na tuto Scratch ve formě Forever smyček 1148 00:58:40,300 --> 00:58:45,650 nebo Repeat Until nebo opakujte, zejména počet opakování. 1149 00:58:45,650 --> 00:58:47,540 Tak proč je to pro nás dobré? 1150 00:58:47,540 --> 00:58:51,500 No, v C, řekněme, že jsme to Píseň realizován v Scratch, že 1151 00:58:51,500 --> 00:58:53,450 zpívá, je to píseň který nikdy nekončí. 1152 00:58:53,450 --> 00:58:55,710 Je to prostě pokračuje dál a dál a věčně a navždy. 1153 00:58:55,710 --> 00:58:59,395 No, nemůžete opravdu program že má nekonečný počet printf 1154 00:58:59,395 --> 00:59:00,850 prohlášení v tom, že jo? 1155 00:59:00,850 --> 00:59:04,900 >> Takže v tomto případě, jeden způsob že byste mohli udělat tuto práci a 1156 00:59:04,900 --> 00:59:09,330 , aby se vytisklo navždy je místo toho použijte cyklus while. 1157 00:59:09,330 --> 00:59:13,640 Takže když smyčka bude provádět to, co je v těle dvou složených závorek, které 1158 00:59:13,640 --> 00:59:17,250 Patří k ní na základě toho, co Podmínkou je. 1159 00:59:17,250 --> 00:59:21,170 Takže v tomto konkrétním případě dříve, pokud Chceme-li tisknout na věky, co 1160 00:59:21,170 --> 00:59:23,590 můžeme dělat? 1161 00:59:23,590 --> 00:59:25,190 No jasně, že jo? 1162 00:59:25,190 --> 00:59:32,290 >> Tak to nějak v sobě spojuje myšlenku nějaký logický výraz 1163 00:59:32,290 --> 00:59:33,610 spolu se smyčkou. 1164 00:59:33,610 --> 00:59:35,780 A dozvěděli jsme se o logický výrazy dříve. 1165 00:59:35,780 --> 00:59:39,650 Takže pokaždé, když stav vnitřek že když zůstává pravdou, tato smyčka 1166 00:59:39,650 --> 00:59:41,480 bude provádět dál a dál a dál. 1167 00:59:41,480 --> 00:59:44,640 A v tomto případě, pokud budeme jen dodávat s pravdou, to způsobí nekonečný 1168 00:59:44,640 --> 00:59:49,310 smyčky, která vytiskne píseň dál a dál a jak jsme žádali dříve, aniž by 1169 00:59:49,310 --> 00:59:52,410 má program, který má nekonečný počet printf závěrce, která je 1170 00:59:52,410 --> 00:59:55,220 není možné. 1171 00:59:55,220 --> 00:59:57,810 >> Takže více přesvědčivě, i když, můžete použít s 1172 00:59:57,810 --> 00:59:59,710 variabilní a stav. 1173 00:59:59,710 --> 01:00:04,420 Takže řekněme, že chceme opakovat fráze, naprosto praštěné, 10 krát. 1174 01:00:04,420 --> 01:00:08,380 Takže, co můžete dělat s smyčky while je můžete nejprve inicializovat čítače 1175 01:00:08,380 --> 01:00:10,860 Proměnná mimo While do 10. 1176 01:00:10,860 --> 01:00:14,360 A pak se v podstatě pokaždé, když jdete pomocí smyčky while, můžete vytisknout 1177 01:00:14,360 --> 01:00:19,090 prohlášení a pak se sníží Počítadlo variabilní až na konci, 1178 01:00:19,090 --> 01:00:23,020 v určitém okamžiku, jakmile odečteme I dost krát, 1 od I dost dob ​​- 1179 01:00:23,020 --> 01:00:27,290 a jen vyjasnit, jsem mínus mínus znamená, že se rovná I minus 1. 1180 01:00:27,290 --> 01:00:31,280 >> To v podstatě přinese I až Místo, kde jsem kdysi hit nula, to 1181 01:00:31,280 --> 01:00:35,260 podmínka již není pravda a takže na výstupu ze smyčky. 1182 01:00:35,260 --> 01:00:37,045 Takže úplně praštěný pouze vytiskne 10 krát. 1183 01:00:37,045 --> 01:00:39,550 1184 01:00:39,550 --> 01:00:41,080 Jakékoliv dotazy týkající se chvíli smyč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 způsob, jak můžeme dělat to, co jsme právě dělal v výstižnější způsobem s 1188 01:00:50,550 --> 01:00:51,715 to, čemu říkáme Pro smyčky. 1189 01:00:51,715 --> 01:00:55,750 Takže pro smyčka se skládá z inicializace, stav, a 1190 01:00:55,750 --> 01:00:58,950 aktualizace, stejně jako jsme měli předtím V této smyčce while. 1191 01:00:58,950 --> 01:00:59,890 Takže pojďme se podívat. 1192 01:00:59,890 --> 01:01:02,900 V tomto cyklus while, měli jsme inicializace, pak jsme měli 1193 01:01:02,900 --> 01:01:04,260 za předpokladu, že budeme kontrolovat. 1194 01:01:04,260 --> 01:01:06,450 A pak jsme měli aktualizaci krok v horní části. 1195 01:01:06,450 --> 01:01:10,060 >> S smyčce for, to v podstatě trvá Tyto tři věci a sráží ji 1196 01:01:10,060 --> 01:01:11,370 se do jednoho řádku. 1197 01:01:11,370 --> 01:01:15,130 Takže první věc, která to dělá v Pro smyčky je inicializace. 1198 01:01:15,130 --> 01:01:19,090 A pak si to středník, a poté ty podmínky, které je I 1199 01:01:19,090 --> 01:01:22,200 větší než nula, jde tam, a pak aktualizovat krok. 1200 01:01:22,200 --> 01:01:26,470 Takže to dostane provádí na velmi konec těla smyčky. 1201 01:01:26,470 --> 01:01:28,790 Takže tyto dva programy jsou v podstatě rovnocenné. 1202 01:01:28,790 --> 01:01:31,960 1203 01:01:31,960 --> 01:01:33,870 >> Jakékoliv dotazy? 1204 01:01:33,870 --> 01:01:37,000 Takže to, co je rozdíl mezi těmito dvěma? 1205 01:01:37,000 --> 01:01:38,000 Může někdo poukázat na to? 1206 01:01:38,000 --> 01:01:40,480 To by mohlo být trochu jemnější. 1207 01:01:40,480 --> 01:01:41,930 Je to jen velmi malý rozdíl. 1208 01:01:41,930 --> 01:01:42,330 Ano? 1209 01:01:42,330 --> 01:01:49,008 >> SPEAKER 5: Nebudete moci používat Proměnná jsem mimo For smyčky 1210 01:01:49,008 --> 01:01:49,962 [Neslyšitelný]? 1211 01:01:49,962 --> 01:01:50,900 >> JOSEPH: Přesně tak. 1212 01:01:50,900 --> 01:01:53,550 Tak to je něco, co budeme mít na později volal variabilní rozsah. 1213 01:01:53,550 --> 01:01:56,610 Ale v podstatě to pravý život I mimo tento cyklus while. 1214 01:01:56,610 --> 01:01:59,800 Takže jakmile to while se provádí provádění, budu moci I pozdější použití 1215 01:01:59,800 --> 01:02:00,880 Na programu. 1216 01:02:00,880 --> 01:02:05,430 >> Vzhledem k tomu, s tím pro smyčce, to int I je rozsahem uvnitř to pro smyčce. 1217 01:02:05,430 --> 01:02:10,240 A proto, že je v této části FOR smyčky, která začíná 1218 01:02:10,240 --> 01:02:13,200 v závorce a končí složená závorka tam. 1219 01:02:13,200 --> 01:02:16,120 Cokoliv, co je prohlášen uvnitř zde nelze používat venku. 1220 01:02:16,120 --> 01:02:20,420 Takže když se snažím používat I mimo, je to řekni mi, nehlášené symbol. 1221 01:02:20,420 --> 01:02:22,420 A v podstatě, já bych to být schopni používat. 1222 01:02:22,420 --> 01:02:28,460 >> ROB: A dobře, před 10 lety, v roce doslova všechny případy, složené závorky jsou 1223 01:02:28,460 --> 01:02:31,140 to, co slouží k určení rozsah proměnné. 1224 01:02:31,140 --> 01:02:37,240 Takže tam, pravý jsem se rovná 10 je deklarována uvnitř této 1225 01:02:37,240 --> 01:02:38,520 sada složených závorek. 1226 01:02:38,520 --> 01:02:42,530 A tak tedy, pokud se pokusíte použít I před tímto složenou závorkou, je to v pořádku. 1227 01:02:42,530 --> 01:02:47,090 1228 01:02:47,090 --> 01:02:51,460 Můžete vidět, když zadáte, aby, vám viz pomlčka, pomlčka, STD, rovná, C99. 1229 01:02:51,460 --> 01:02:57,100 >> Takže to je novější verze C, který GCC zavedla, že také dává 1230 01:02:57,100 --> 01:02:58,740 tento zástupce. 1231 01:02:58,740 --> 01:03:03,505 Takže to používá k nemělo být dovoleno v C. A můžete vidět proč, protože to int 1232 01:03:03,505 --> 01:03:07,600 I mimo tohoto složenou závorkou, ale je to stále považováno za 1233 01:03:07,600 --> 01:03:09,750 Rozsah těchto složených závorek. 1234 01:03:09,750 --> 01:03:14,120 Ale to je velmi výhodné věc, a tak to je dobrý rozšíření. 1235 01:03:14,120 --> 01:03:15,370 >> JOSEPH: Nějaké 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, co je mnohem užitečnější je, že někdy Chcete-druh dynamiky v 1239 01:03:22,820 --> 01:03:23,410 vaše smyčky, ne? 1240 01:03:23,410 --> 01:03:26,350 Nechcete jen nutně vytisknout úplně praštěný po celou dobu, můžete 1241 01:03:26,350 --> 01:03:28,650 chcete odpočítávat od 10, nebo tak něco. 1242 01:03:28,650 --> 01:03:32,010 A tak můžete použít proměnnou counter uvnitř této smyčky stejně. 1243 01:03:32,010 --> 01:03:35,530 A v tomto případě, tento program pouze odpočítává od 10 po celou cestu dolů. 1244 01:03:35,530 --> 01:03:39,260 A co to netiskne? 1245 01:03:39,260 --> 01:03:42,790 To netiskne nula, pravdu, protože když - 1246 01:03:42,790 --> 01:03:45,460 Ano, je to také netiskne 11. 1247 01:03:45,460 --> 01:03:49,200 >> Takže to netiskne nula, protože při Já je nula, pamatujte si, že hodnotí 1248 01:03:49,200 --> 01:03:52,170 stav před tím, než jde na k provedení těla smyčky. 1249 01:03:52,170 --> 01:03:56,820 A když jsem je nula, to je nepravdivé, tak to netiskne se odpočítávat 1250 01:03:56,820 --> 01:04:00,200 nula, to prostě vytiskne počítání po 10 po celou cestu až do 1. 1251 01:04:00,200 --> 01:04:03,420 Pokud bychom skutečně chtěli, aby to tisknout na nulu, pak bychom dát rovnítko 1252 01:04:03,420 --> 01:04:04,750 poté, co tento znak větší 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 způsob, jak to udělat ověřování vstupu, které je, když se zeptáte uživateli dělat 1256 01:04:16,410 --> 01:04:18,620 něco, co budete chtít, aby se ujistil, že postupujte podle vašich pokynů, je použití 1257 01:04:18,620 --> 01:04:19,400 Zatímco smyčky, ne? 1258 01:04:19,400 --> 01:04:22,990 Takže v tomto konkrétním případě, ptám se pro kladným číslem a pak jsem 1259 01:04:22,990 --> 01:04:23,810 čekání na vstup. 1260 01:04:23,810 --> 01:04:28,210 >> A pak jsem zkontroloval když vstup je menší než nula, aby jim ptát. 1261 01:04:28,210 --> 01:04:32,100 Tak dlouho, jak oni mi dát číslo že není pozitivní, pořád ptají, 1262 01:04:32,100 --> 01:04:33,600 pořád ptají, pořád ptají. 1263 01:04:33,600 --> 01:04:35,860 Ale to, co je trochu divné o tom? 1264 01:04:35,860 --> 01:04:38,570 Nebo to, co se nezdá být optimální o Tato struktura přímo tady? 1265 01:04:38,570 --> 01:04:44,282 1266 01:04:44,282 --> 01:04:44,758 Každý, kdo? 1267 01:04:44,758 --> 01:04:45,234 Ano? 1268 01:04:45,234 --> 01:04:47,614 >> SPEAKER 6: Jste opakování instrukce dvakrát. 1269 01:04:47,614 --> 01:04:48,100 >> JOSEPH: Správně. 1270 01:04:48,100 --> 01:04:50,090 Takže máme dvě printf prohlášení tady, že jo? 1271 01:04:50,090 --> 01:04:53,440 Takže tam je způsob, jak se to mohlo dostat jen dolů na jeden, který by naši 1272 01:04:53,440 --> 01:04:57,170 kód čitelnější a snáze se trochu čistší. 1273 01:04:57,170 --> 01:05:00,180 A pak bychom nemuseli se dostat do dvakrát tak dobře. 1274 01:05:00,180 --> 01:05:03,740 A jeden způsob, jak to můžete udělat, je pomocí do-while smyčky. 1275 01:05:03,740 --> 01:05:07,670 >> A Do-while je v podstatě jiná forma smyčce while, kde 1276 01:05:07,670 --> 01:05:11,460 co je uvnitř složených závorek dostane vykonán alespoň jednou. 1277 01:05:11,460 --> 01:05:14,840 Takže tady prohlašuji, int vstup mimo první. 1278 01:05:14,840 --> 01:05:18,100 A pak jsem si řekl, to Instrukce při vstupu 1279 01:05:18,100 --> 01:05:19,140 je menší než nula. 1280 01:05:19,140 --> 01:05:20,530 Tak to dopadne jako první dělat. 1281 01:05:20,530 --> 01:05:24,190 To bude vždy provádět toto alespoň jednou, tak to bude vždy požádat uživatele 1282 01:05:24,190 --> 01:05:25,960 pro vstup alespoň jednou. 1283 01:05:25,960 --> 01:05:29,390 A pak se to vyhodnotí, že vstup, a to se děje v kruhu. 1284 01:05:29,390 --> 01:05:30,135 Ano, otázka? 1285 01:05:30,135 --> 01:05:32,602 >> SPEAKER 6: Existuje způsob, jak to udělat [Neslyšitelné] typy, jako když řeknete, 1286 01:05:32,602 --> 01:05:34,268 GetString, a někdo [neslyšitelný] 1287 01:05:34,268 --> 01:05:35,220 Je tam způsob, jak [neslyšitelný] 1288 01:05:35,220 --> 01:05:40,060 >> JOSEPH: Takže otázka je, je tam způsob, jak to udělat vstupní ověření, zda uživatel 1289 01:05:40,060 --> 01:05:41,850 neklade na pravé straně typ proměnné? 1290 01:05:41,850 --> 01:05:44,460 Takže pokud budeme žádat o int a nám řetězec místo. 1291 01:05:44,460 --> 01:05:49,110 A funkce, které se používají pro vás, vezmi_int, GetString ve všech 1292 01:05:49,110 --> 01:05:52,680 ty funkce, které skutečně již to, že jakýsi základní typ vstupu 1293 01:05:52,680 --> 01:05:54,120 validace pod kapotou. 1294 01:05:54,120 --> 01:05:57,390 Takže pokud používáte funkce, které jsme vám dal, nemáte opravdu muset. 1295 01:05:57,390 --> 01:06:01,380 >> Ale pokud chcete, aby vypadal na to, jak můžete skutečně udělat, můžete se podívat 1296 01:06:01,380 --> 01:06:03,360 pod kapotou v souboru I/O-- 1297 01:06:03,360 --> 01:06:07,990 není soubor, standardní I / O funkce jako čtení ze standardního vstupu a 1298 01:06:07,990 --> 01:06:08,580 standardní výstup. 1299 01:06:08,580 --> 01:06:10,630 A můžete získat lepší pocit o tom, jak byste mohli udělat. 1300 01:06:10,630 --> 01:06:13,670 >> ROB: Jeden problém, i když je specificky se například můžete 1301 01:06:13,670 --> 01:06:17,070 řekl, můžete očekávat řetězec a zadám int. 1302 01:06:17,070 --> 01:06:20,110 Jak by se vám poznat rozdíl mezi záměrně chtějí 1303 01:06:20,110 --> 01:06:23,130 string 123 proti chtít int 123? 1304 01:06:23,130 --> 01:06:29,230 Takže řetězec, je to skoro neexistuje validace, je to jen, co se jim 1305 01:06:29,230 --> 01:06:31,600 vstoupil budete interpretovat jako řetězec. 1306 01:06:31,600 --> 01:06:35,790 >> Int je jednodušší, protože bez ohledu na to, Vstup, který se od uživatele, budete 1307 01:06:35,790 --> 01:06:37,470 vždy s ohledem na řetězec. 1308 01:06:37,470 --> 01:06:40,650 A tak, že řetězec pak můžete zkontrolovat, jsou všechny tyto 1309 01:06:40,650 --> 01:06:44,218 vlastně číselné znaky? 1310 01:06:44,218 --> 01:06:45,170 >> JOSEPH: OK. 1311 01:06:45,170 --> 01:06:46,420 Jakékoliv dotazy týkající se do-while smyčky? 1312 01:06:46,420 --> 01:06:49,170 >> ROB: Jo, a to je také - 1313 01:06:49,170 --> 01:06:55,130 návrat do rozsahu, poněkud obyčejné chyba se snaží využít některé místní 1314 01:06:55,130 --> 01:06:59,540 variabilní v rámci této do-while smyčky uvnitř tohoto stavu. 1315 01:06:59,540 --> 01:07:02,850 A vlastně, kdybychom se zbavili to a řekl, int vstup se rovná 1316 01:07:02,850 --> 01:07:06,990 Vezmi_int, pak kompilátor bude křičet na us, protože neexistuje vstup 1317 01:07:06,990 --> 01:07:08,900 mimo oblast působnosti Tyto složené závorky. 1318 01:07:08,900 --> 01:07:10,792 >> JOSEPH: A to je důvod, proč jsme Potřebujeme zde 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 se můžete také dostat se z smyčka co nejdříve, pokud chcete. 1322 01:07:17,530 --> 01:07:21,240 Tak to je jiný způsob, jak , kterým se provádí to, co jsme právě prováděna. 1323 01:07:21,240 --> 01:07:24,340 A namísto použití stav v závorkách, jsme pomocí 1324 01:07:24,340 --> 01:07:26,920 Je-li prohlášení uvnitř těla z do-while smyčky. 1325 01:07:26,920 --> 01:07:30,000 >> A v podstatě, pokud je vstup konečně větší než nula, bude se 1326 01:07:30,000 --> 01:07:31,000 vymanit se ze smyčky. 1327 01:07:31,000 --> 01:07:33,420 A tak půjdeme všichni cesta sem. 1328 01:07:33,420 --> 01:07:37,920 A můžete vidět, že to by pravděpodobně výhodné v tomto 1329 01:07:37,920 --> 01:07:39,870 scénář, protože je to málo trochu čistší a trochu 1330 01:07:39,870 --> 01:07:41,380 bit čitelnější. 1331 01:07:41,380 --> 01:07:45,210 Vzhledem k tomu, to jste nějak mají zvláštní řádky v něm. 1332 01:07:45,210 --> 01:07:47,890 Je to jen trochu ošklivější, Myslím, že v jistém smyslu. 1333 01:07:47,890 --> 01:07:48,530 Ano, otázka? 1334 01:07:48,530 --> 01:07:52,178 >> SPEAKER 4: Budou zlomit jen získat můžete z jedné sady rovnátka? 1335 01:07:52,178 --> 01:07:53,080 >> JOSEPH: Správně. 1336 01:07:53,080 --> 01:07:58,100 Takže otázka je zlomí pouze vám z jedné smyčky? 1337 01:07:58,100 --> 01:07:59,280 A odpověď je ano. 1338 01:07:59,280 --> 01:08:04,290 Takže pokud jste vnořené cykly for, pro například, když mám pro int I rovná 0 1339 01:08:04,290 --> 01:08:09,040 do 10 a pak pro int J rovná 0 až 10, když jsem vymanit se z vnitřní 1340 01:08:09,040 --> 01:08:12,310 smyčky, budu i nadále pokračovat do vnější smyčky. 1341 01:08:12,310 --> 01:08:15,760 Takže to bude držet provedení operace na vnější straně. 1342 01:08:15,760 --> 01:08:17,640 Jakékoliv dotazy týkající se, že? 1343 01:08:17,640 --> 01:08:18,000 Ano? 1344 01:08:18,000 --> 01:08:21,760 >> SPEAKER 5: Ale zlomit pouze funkce pro složených závorek, ne pro ostatní 1345 01:08:21,760 --> 01:08:22,230 prohlášení? 1346 01:08:22,230 --> 01:08:22,700 [Neslyšitelný] 1347 01:08:22,700 --> 01:08:27,620 >> JOSEPH: Takže otázka je zlomí pouze funkce pro smyčky jsou na rozdíl od 1348 01:08:27,620 --> 01:08:29,014 další příkazy, jako kdyby? 1349 01:08:29,014 --> 01:08:32,950 A ano, je to tento případ, protože jste vypadla z smyčky, vpravo, 1350 01:08:32,950 --> 01:08:33,630 v jistém smyslu. 1351 01:08:33,630 --> 01:08:37,215 >> ROB: V drtivé většině případů je to to je druh, pokud se něco, 1352 01:08:37,215 --> 01:08:37,660 pak se zlomit. 1353 01:08:37,660 --> 01:08:41,580 Takže nemusíte rozbít se vztahují na Pokud tomu tak je obal kolem něj. 1354 01:08:41,580 --> 01:08:45,250 A také, že to není moc smyčky, ale pamatujte, že přepínače jsou také 1355 01:08:45,250 --> 01:08:46,340 členění z přestávkami. 1356 01:08:46,340 --> 01:08:48,390 Viděli jsme přestávky se používá s přepínači předtím. 1357 01:08:48,390 --> 01:08:52,189 >> JOSEPH: A můžete také použít ve while a pro smyčky. 1358 01:08:52,189 --> 01:08:54,560 Jakékoliv dotazy? 1359 01:08:54,560 --> 01:08:55,830 OK. 1360 01:08:55,830 --> 01:08:57,779 Takže příště až se funkce. 1361 01:08:57,779 --> 01:09:01,500 Takže jste mohli použít jeden z těchto BYOB bloky ve vašem Scratch projektu. 1362 01:09:01,500 --> 01:09:04,569 A to v podstatě umožňuje definovat sadu 1363 01:09:04,569 --> 01:09:05,680 pokyny je třeba dodržovat. 1364 01:09:05,680 --> 01:09:09,569 >> A co tím myslím, že je pojďme si zpět k matematice, vpravo, algebra. 1365 01:09:09,569 --> 01:09:13,370 Máte to, co nazýváme funkce x, některé proměnné, a řekněme, že to 1366 01:09:13,370 --> 01:09:16,080 funkce f na X je X plus 5. 1367 01:09:16,080 --> 01:09:20,410 Takže si můžete myslet f x, protože to černé box, který bere 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 obecně, funkce je něco, co trvá několik vstupů a 1370 01:09:26,630 --> 01:09:27,880 pak produkuje nějaké výstupy. 1371 01:09:27,880 --> 01:09:31,920 1372 01:09:31,920 --> 01:09:32,960 A proč jsou funkce dobré? 1373 01:09:32,960 --> 01:09:35,189 Jsou dobré z mnoha důvodů. 1374 01:09:35,189 --> 01:09:40,470 Takže může někdo chtít, aby se bodnout na to, co organizace znamená? 1375 01:09:40,470 --> 01:09:42,630 Pokud jde o důvod, proč funkce jsou užitečné? 1376 01:09:42,630 --> 01:09:43,090 Ano? 1377 01:09:43,090 --> 01:09:44,735 >> SPEAKER 4: To je vaše kód čitelnější. 1378 01:09:44,735 --> 01:09:45,399 >> JOSEPH: Správně. 1379 01:09:45,399 --> 01:09:47,670 Takže jedna z věcí, které je činí váš kód čitelnější, ne? 1380 01:09:47,670 --> 01:09:53,710 Místo toho, aby jako int x se rovná x krát x x x, můžu mít kostku x, 1381 01:09:53,710 --> 01:09:57,190 který je čitelnější a více srozumitelná pro čtenáře. 1382 01:09:57,190 --> 01:10:01,150 >> Organizace je také z hlediska rozdělit svůj kód do zvládnutelné 1383 01:10:01,150 --> 01:10:05,610 části, takže místo toho se snaží realizovat to vše v jednom dlouhém úseku 1384 01:10:05,610 --> 01:10:09,070 V hlavní, můžete nějak rozdělit do na jako, OK, pojďme napsat funkci 1385 01:10:09,070 --> 01:10:11,910 aby kostka něco, pojďme napsat fungovat na náměstí něco. 1386 01:10:11,910 --> 01:10:15,950 Tímto způsobem můžete rozdělit až na malé, malé díly, které můžete řešit 1387 01:10:15,950 --> 01:10:18,944 na rozdíl od snaží řešit velký problém najednou. 1388 01:10:18,944 --> 01:10:21,806 >> ROB: Nebo i drobné, malé části, které vy a partner může řešit. 1389 01:10:21,806 --> 01:10:22,283 >> JOSEPH: Jo. 1390 01:10:22,283 --> 01:10:23,855 >> ROB: Takže místo toho, aby oba Snažíte se implantovat jeden 1391 01:10:23,855 --> 01:10:27,170 fungovat ve stejnou dobu. 1392 01:10:27,170 --> 01:10:28,800 >> JOSEPH: Zjednodušení. 1393 01:10:28,800 --> 01:10:30,050 Každý, kdo chtějí, aby se hádat? 1394 01:10:30,050 --> 01:10:33,080 1395 01:10:33,080 --> 01:10:33,410 Ano? 1396 01:10:33,410 --> 01:10:34,675 >> SPEAKER 5: Více opakování. 1397 01:10:34,675 --> 01:10:35,260 >> JOSEPH: Správně. 1398 01:10:35,260 --> 01:10:39,210 Takže jedna věc, kterou můžete udělat s zjednodušení je, že je to něco na 1399 01:10:39,210 --> 01:10:42,520 ve stejném duchu jako opětovné použitelnosti je, že Jednou jsem se napsat funkci, krychle, mohu 1400 01:10:42,520 --> 01:10:45,410 stačí použít, aby znovu a znovu a znovu opět v mém programu namísto psaní 1401 01:10:45,410 --> 01:10:49,610 x x x x x nad a znovu a znovu. 1402 01:10:49,610 --> 01:10:52,980 A zjednodušení zde také jen znamená, že je váš kód druhu 1403 01:10:52,980 --> 01:10:55,900 snazší ladění, jakmile se rozdělit to se do funkce. 1404 01:10:55,900 --> 01:10:58,250 Protože pak můžete lokalizovat kdekoliv vaše problémy nějak je. 1405 01:10:58,250 --> 01:11:00,910 1406 01:11:00,910 --> 01:11:02,160 Jakékoliv dotazy? 1407 01:11:02,160 --> 01:11:04,200 1408 01:11:04,200 --> 01:11:06,540 >> Takže další nápad je abstrakce, ne? 1409 01:11:06,540 --> 01:11:07,390 Tato černá skříňka. 1410 01:11:07,390 --> 01:11:11,360 Jako víte, co dělá vezmi_int přijímat vstup od uživatele? 1411 01:11:11,360 --> 01:11:12,510 Jsme opravdu řekl, že jo? 1412 01:11:12,510 --> 01:11:15,670 Všechno, co jsem vám řekl, je vezmi_int dělá přesně to, co říká, že to dělá. 1413 01:11:15,670 --> 01:11:18,440 Takže i když to nemůžu říct, jak to funguje, budete stále vědět. 1414 01:11:18,440 --> 01:11:21,670 >> Takže v tomto konkrétním případě se jedná čtyřnásobný funkce, která dělá 1415 01:11:21,670 --> 01:11:24,520 různé věci na vstup pro vytváření výstupu. 1416 01:11:24,520 --> 01:11:28,050 A můžete čtyřnásobek čísla že se vynásobí čtyřmi. 1417 01:11:28,050 --> 01:11:30,790 Nebo můžete to, co nazýváme trochu posunout ji dvěma. 1418 01:11:30,790 --> 01:11:32,960 A budeme pokrývat to trochu později. 1419 01:11:32,960 --> 01:11:36,570 A není třeba vědět, jak to funkce vlastně funguje tak dlouho, jak to 1420 01:11:36,570 --> 01:11:37,640 funguje, jak je uvedeno. 1421 01:11:37,640 --> 01:11:40,740 >> Takže pod kapotou, mohl bych být jako, vrátí vstupní krát 1422 01:11:40,740 --> 01:11:41,690 osm děleno dvěma. 1423 01:11:41,690 --> 01:11:42,510 A vy byste nevěděl, že jo? 1424 01:11:42,510 --> 01:11:44,970 Vše, co potřebujete vědět, je, dělá to, co říká. 1425 01:11:44,970 --> 01:11:48,070 Tak to je užitečná věc o abstrakci. 1426 01:11:48,070 --> 01:11:52,910 >> A další věc je trochu tato myšlenka z lokalizace kód do jednoho 1427 01:11:52,910 --> 01:11:54,280 zejména část. 1428 01:11:54,280 --> 01:11:57,450 Takže pokud máte nějaký problém, vy ne jít celého kódu se snaží 1429 01:11:57,450 --> 01:11:58,730 opravit, kde je problém. 1430 01:11:58,730 --> 01:12:00,990 Takže v tomto případě, jsem implementoval kostka špatně. 1431 01:12:00,990 --> 01:12:02,820 Myslel jsem, že kostka byla vynásobením třemi. 1432 01:12:02,820 --> 01:12:05,760 >> Takže v tomto případě, je to jeden program že prostě se vynásobí třemi 1433 01:12:05,760 --> 01:12:06,750 všude. 1434 01:12:06,750 --> 01:12:10,910 A je tu další program, který má zapracovány kostka se do funkce. 1435 01:12:10,910 --> 01:12:14,040 A tak teď, když chci napravit svou chybu tady, musím opravit každý řádek 1436 01:12:14,040 --> 01:12:15,620 kódu v tomto programu. 1437 01:12:15,620 --> 01:12:19,190 Vzhledem k tomu, na druhé straně, pokud se používá funkce, jen jsem třeba změnit 1438 01:12:19,190 --> 01:12:20,650 co se děje na jednom místě. 1439 01:12:20,650 --> 01:12:25,330 1440 01:12:25,330 --> 01:12:28,730 >> Takže v informatice, jsme zavolejte vstupy a výstupy. 1441 01:12:28,730 --> 01:12:31,640 Vstupy se nazývají parametry nebo argumenty a výstupy se nazývají 1442 01:12:31,640 --> 01:12:32,950 návratové hodnoty. 1443 01:12:32,950 --> 01:12:39,000 A uvidíme, jak nám to pomůže trochu o definovat funkci ve vteřině. 1444 01:12:39,000 --> 01:12:41,430 Tak to je definice funkce pro Cubing. 1445 01:12:41,430 --> 01:12:45,110 Tak to trvá vstup, a pak to vrátí, že počet krát 1446 01:12:45,110 --> 01:12:47,020 sám třikrát. 1447 01:12:47,020 --> 01:12:48,020 Takže pojďme rozčlenit tento systém. 1448 01:12:48,020 --> 01:12:53,090 >> Takže máme hlavičku funkce, které v podstatě se skládá ze tří věcí. 1449 01:12:53,090 --> 01:12:56,050 Takže máme parametry, které jsou, jak jsem již řekl dříve, 1450 01:12:56,050 --> 01:12:57,680 vstupy do této funkce. 1451 01:12:57,680 --> 01:12:59,300 A pak dáme Funkci jméno. 1452 01:12:59,300 --> 01:13:00,740 V tomto případě, je to jen kostka. 1453 01:13:00,740 --> 01:13:03,860 A pak jsme se určit, jaký typ z návratová hodnota je. 1454 01:13:03,860 --> 01:13:06,760 >> Takže v tomto případě, můj kostka funkce bere na celé číslo, a to i 1455 01:13:06,760 --> 01:13:07,890 vrátí celé číslo. 1456 01:13:07,890 --> 01:13:11,510 Takže když jsem se projít ve dvou, dvou je celé číslo, se vrací osm ke mně, což 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 parametry název 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 pak návratová hodnota je ve skutečnosti je uvedeno na konci tím, návrat 1462 01:13:24,230 --> 01:13:27,540 a pak se vracet, co obsahuje návratovou hodnotu. 1463 01:13:27,540 --> 01:13:30,940 Takže v tomto případě, pokud bychom to všechno společně, funkce se v 1464 01:13:30,940 --> 01:13:35,100 parametry, je to jen něco, a vrátí něco, co je typ 1465 01:13:35,100 --> 01:13:36,350 že říkáme, že to bude. 1466 01:13:36,350 --> 01:13:39,830 1467 01:13:39,830 --> 01:13:41,080 Jakékoliv dotazy? 1468 01:13:41,080 --> 01:13:43,710 1469 01:13:43,710 --> 01:13:45,080 >> Tak jak jsme se použít funkci? 1470 01:13:45,080 --> 01:13:49,230 No, my napíšeme funkci a pak jsme ho používat v našem programu, ne? 1471 01:13:49,230 --> 01:13:51,565 Tak jsem to nazval krychle, a pak mohu použít kostku. 1472 01:13:51,565 --> 01:13:54,200 >> Ale to, co je důležité si uvědomit, je to, že objednávka záležitosti. 1473 01:13:54,200 --> 01:13:58,100 Pokud mám kostku pod hlavní, je to bude běžet do krychle. 1474 01:13:58,100 --> 01:14:00,360 A v tomto bodě, tam je nic volal kostka v programu, a to 1475 01:14:00,360 --> 01:14:02,550 Jen bude vypadat, mám žádný nápad, co krychle. 1476 01:14:02,550 --> 01:14:05,060 >> Tak to vám řekne, implicitní deklarace funkce. 1477 01:14:05,060 --> 01:14:06,690 To je chyba, která se objeví. 1478 01:14:06,690 --> 01:14:10,230 A tak v tomto případě, kostka je pod hlavní, takže to nebude 1479 01:14:10,230 --> 01:14:12,006 o tom vědět. 1480 01:14:12,006 --> 01:14:14,724 >> SPEAKER 5: Takže hlavní je obvykle poslední funkce definované? 1481 01:14:14,724 --> 01:14:17,290 >> JOSEPH: Takže otázka je, je hlavní obvykle poslední 1482 01:14:17,290 --> 01:14:18,170 věc, kterou byste definovat? 1483 01:14:18,170 --> 01:14:19,730 A no. 1484 01:14:19,730 --> 01:14:22,280 Je to proto, že jsme většinou rádi hlavním být na vrcholu, že jo? 1485 01:14:22,280 --> 01:14:24,640 Vzhledem k tomu, že je to první věc, kterou Chcete-otevření programátor 1486 01:14:24,640 --> 01:14:25,640 program viz. 1487 01:14:25,640 --> 01:14:29,950 A tak jak jsme se vyřešit tento problém my Chci hlavním být na vrcholu, ale 1488 01:14:29,950 --> 01:14:33,750 funkce, které chceme, chceme jim být pod hlavním ještě mohli používat 1489 01:14:33,750 --> 01:14:34,930 je uvnitř hlavní? 1490 01:14:34,930 --> 01:14:36,870 >> No, my používáme to, co nazýváme prototyp funkce. 1491 01:14:36,870 --> 01:14:40,830 Takže to, co prototyp funkce v podstatě je je to první, co se 1492 01:14:40,830 --> 01:14:45,060 podpis nebo záhlaví funkce o tom, co chceme realizovat dolů 1493 01:14:45,060 --> 01:14:47,420 tu, a dáme ji na v horní části programu. 1494 01:14:47,420 --> 01:14:51,400 >> Takže v tomto případě, můžeme říci, že dobře, později v našem programu, jedeme 1495 01:14:51,400 --> 01:14:55,010 aby slib zavést tento volání funkce int kostka, která se 1496 01:14:55,010 --> 01:14:56,260 číslo vstupu. 1497 01:14:56,260 --> 01:15:00,870 Takže teď, protože to je nad hlavní, hlavní, bude to říct, oh, dobře, 1498 01:15:00,870 --> 01:15:03,910 později v programu, který se bude tam, takže jsem si na něj odkazují, takže budu 1499 01:15:03,910 --> 01:15:05,230 nech to projít teď. 1500 01:15:05,230 --> 01:15:07,660 >> A pak ve spodní části, realizujeme kostku. 1501 01:15:07,660 --> 01:15:11,180 A pak hlavní bude jen říct, dobře, bude to jakýsi odkaz 1502 01:15:11,180 --> 01:15:12,250 Tyto dva symboly společně. 1503 01:15:12,250 --> 01:15:14,320 A budeme pokrývat, co to znamená, že později. 1504 01:15:14,320 --> 01:15:17,090 A tak to bude vědět, že je to Funkce kostka, že by měl používat. 1505 01:15:17,090 --> 01:15:19,630 1506 01:15:19,630 --> 01:15:23,383 >> ROB: [neslyšitelné] o chtějí Hlavní v dolní části 1507 01:15:23,383 --> 01:15:24,880 nahoru, viděl jsem jak. 1508 01:15:24,880 --> 01:15:28,630 Existují věci, které stejně jako , aby ve spodní části hlavní. 1509 01:15:28,630 --> 01:15:32,520 Ale jakmile se projekt dostane zejména velký, obvykle hlavní je v 1510 01:15:32,520 --> 01:15:34,290 soubor všech jeho vlastní. 1511 01:15:34,290 --> 01:15:38,170 A v tomto bodě, jako je int kostka linka by - 1512 01:15:38,170 --> 01:15:42,460 uvnitř stdio.h jsou banda řádků jen tak int 1513 01:15:42,460 --> 01:15:44,010 kostka int linkový vstup. 1514 01:15:44,010 --> 01:15:50,170 >> A tak ty prototypy jsou věci, které mají tendenci dát do hlavičkových souborů, na 1515 01:15:50,170 --> 01:15:52,140 které 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ždycky nahoře. 1518 01:15:56,070 --> 01:15:59,490 A pokud hlavní není soubor všech jeho vlastní, nemusíte se starat o uvedení 1519 01:15:59,490 --> 01:16:02,360 Jednotlivé funkční prototypy v souboru. 1520 01:16:02,360 --> 01:16:05,370 >> JOSEPH: A dostaneme se, že trochu Trochu později, když Rob začne mluvit 1521 01:16:05,370 --> 01:16:06,380 o kompilaci. 1522 01:16:06,380 --> 01:16:09,480 A tak je tu také rozdíl mezi parametrem a argumentem. 1523 01:16:09,480 --> 01:16:12,500 A parametr je právě to, co nazýváme tyto vstupy při 1524 01:16:12,500 --> 01:16:13,820 definujeme funkci. 1525 01:16:13,820 --> 01:16:16,950 A říkáme, že argument, když jsme ve skutečnosti se do ní funkce. 1526 01:16:16,950 --> 01:16:19,600 >> Takže v tomto případě se jedná o parametr, jak jsme řekli dříve. 1527 01:16:19,600 --> 01:16:24,130 A když jsme vlastně používat tam, kostka X, pak X je sám o sobě 1528 01:16:24,130 --> 01:16:25,910 to, co nazýváme argument, do funkce krychle. 1529 01:16:25,910 --> 01:16:28,150 >> ROB: Takže argumenty parametru jsou - 1530 01:16:28,150 --> 01:16:33,270 je tento rozdíl velmi zmatený zaměnitelně. 1531 01:16:33,270 --> 01:16:37,090 Na tomto místě, pro mě, je to jako jedna z tato slova, že když jsem ho vidět v 1532 01:16:37,090 --> 01:16:41,190 divoký, nemůžu si pomoct, ale hned otázka, zda se jeho použití v 1533 01:16:41,190 --> 01:16:44,120 správný kontext, protože Rozdíl je v tom dost subtilní, že právě 1534 01:16:44,120 --> 01:16:45,500 každý má tendenci - 1535 01:16:45,500 --> 01:16:48,530 Málem jsem vždycky říkám argument, bez ohledu na to, co mám na mysli. 1536 01:16:48,530 --> 01:16:51,230 1537 01:16:51,230 --> 01:16:54,630 >> JOSEPH: A funkce jsou také užitečné za to, co nazýváme vedlejší účinky. 1538 01:16:54,630 --> 01:16:59,230 Takže funkce může mít žádné vstupy, a to může také produkovat žádné výstupy. 1539 01:16:59,230 --> 01:17:03,280 Takže v tomto konkrétním případě jsem definovat podprogram, který nemá žádný 1540 01:17:03,280 --> 01:17:03,970 vrátí hodnotu. 1541 01:17:03,970 --> 01:17:07,730 A aby se stanovilo, že používáme to, co nazýváme mezeru sem. 1542 01:17:07,730 --> 01:17:10,890 A tak vedlejší efekt této funkce je, že to prostě vytiskne věci 1543 01:17:10,890 --> 01:17:11,920 ven na stránku. 1544 01:17:11,920 --> 01:17:13,840 To není ve skutečnosti se některý vstupy, a to není 1545 01:17:13,840 --> 01:17:15,360 vlastně produkovat žádné výstupy. 1546 01:17:15,360 --> 01:17:18,230 >> Ale to by mohlo být užitečné v tom smyslu, Chcete-li, například, ladění 1547 01:17:18,230 --> 01:17:21,530 něco, co ve svém programu, pokud chcete napsat trochu podprogram, který 1548 01:17:21,530 --> 01:17:25,160 vytiskne, řekněme, obsah paměti, nebo tak něco. 1549 01:17:25,160 --> 01:17:29,800 A tak se tyto nežádoucí účinky jsou někdy užitečné mimo rámec 1550 01:17:29,800 --> 01:17:33,010 o stejně jako vstupy a výstupy. 1551 01:17:33,010 --> 01:17:34,260 Jakékoliv dotazy? 1552 01:17:34,260 --> 01:17:37,270 1553 01:17:37,270 --> 01:17:44,240 >> A na konec tohoto konkrétního segmentu, co tento program dělat? 1554 01:17:44,240 --> 01:17:47,420 Dám ti kluci pár sekund číst přes to. 1555 01:17:47,420 --> 01:17:52,720 1556 01:17:52,720 --> 01:17:56,880 Na velmi základní úrovni, to, co chceme říci, je to, že vymění x a y, ne? 1557 01:17:56,880 --> 01:18:00,090 >> Tak kolik z vás skutečně myslíte to vymění x a y? 1558 01:18:00,090 --> 01:18:02,160 Zvedněte ruku. 1559 01:18:02,160 --> 01:18:02,760 Nikdo. 1560 01:18:02,760 --> 01:18:03,070 OK. 1561 01:18:03,070 --> 01:18:06,720 Kdo si myslí, že to bude Není zaměnit x a y? 1562 01:18:06,720 --> 01:18:09,120 A suma, která byla není celá místnost. 1563 01:18:09,120 --> 01:18:10,440 Takže někteří lidé nejsou jisti. 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 pojďme se projít, co se stane, když jste vlastně volat funkce první 1567 01:18:16,450 --> 01:18:18,320 Abychom mohli odpovědět na tuto otázku. 1568 01:18:18,320 --> 01:18:21,430 Tak tohle je to, co paměť trochu vypadá. 1569 01:18:21,430 --> 01:18:23,860 To je něco jako zjednodušený model co paměť vypadá, když 1570 01:18:23,860 --> 01:18:24,800 spuštění programu. 1571 01:18:24,800 --> 01:18:27,270 Takže je tu něco, co nazývá zásobník tady dole a 1572 01:18:27,270 --> 01:18:28,330 něco, co se nazývá haldy. 1573 01:18:28,330 --> 01:18:30,950 A ty rostou směrem střední paměti. 1574 01:18:30,950 --> 01:18:33,860 >> Takže v tomto konkrétním případě, kdy voláte funkci, 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 pak, co je obsaženo v tom, že funkce zůstává v tom, co říkáme, že 1577 01:18:38,900 --> 01:18:40,550 Funkce stack frame. 1578 01:18:40,550 --> 01:18:44,500 A tak si pěkné vizualizaci to, let's - například jsme měli 1579 01:18:44,500 --> 01:18:45,960 programu main dříve. 1580 01:18:45,960 --> 01:18:47,820 A uvnitř hlavní, říkali jsme kostku. 1581 01:18:47,820 --> 01:18:50,650 Takže hlavní by nejprve jít na stack rám, protože je to první funkce 1582 01:18:50,650 --> 01:18:51,640 tomu se říká. 1583 01:18:51,640 --> 01:18:55,740 >> A pak, když kostka se nazývá vnitřek hlavní, dostane kladen na horní části hlavní 1584 01:18:55,740 --> 01:18:57,790 vnitřní paměti. 1585 01:18:57,790 --> 01:19:02,090 Takže to, co si všimnete, je, že kostka má své vlastní parametry a jeho 1586 01:19:02,090 --> 01:19:02,950 vlastní místní obyvatelé. 1587 01:19:02,950 --> 01:19:06,720 Takže, když jste vlastně složit něco funkce, parametry, které se 1588 01:19:06,720 --> 01:19:09,910 dostane se kopie toho, co bylo prošel od hlavní. 1589 01:19:09,910 --> 01:19:14,140 >> A nějak vysvětlit, pojďme projít program. 1590 01:19:14,140 --> 01:19:16,960 Takže máme hromadu, což je jen zásobník část. 1591 01:19:16,960 --> 01:19:21,240 A to, co děláme, je, že jsme nejprve inicializovat x a y na jeden a dva. 1592 01:19:21,240 --> 01:19:22,400 Takže máme tyto malé krabičky. 1593 01:19:22,400 --> 01:19:25,310 Oni sedí v hlavní 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 >> Teď říkáme swapu. 1596 01:19:28,820 --> 01:19:33,940 Co se stane, je, že jsme projít x a y do swap a swap vytváří své vlastní kopie 1597 01:19:33,940 --> 01:19:36,520 o tyto proměnné používat uvnitř z jeho rámce zásobníku. 1598 01:19:36,520 --> 01:19:39,920 Takže teď tam máme, což obsahuje hodnotu, která měla x, b, 1599 01:19:39,920 --> 01:19:41,620 který obsahuje hodnotu, která měla y. 1600 01:19:41,620 --> 01:19:42,670 Tak jeden, dva. 1601 01:19:42,670 --> 01:19:47,130 >> A všimněte si, že je to samostatný z x a y uvnitř z hlavní. 1602 01:19:47,130 --> 01:19:51,390 Tak jsme se vytvořit dočasný proměnná obsahovat. 1603 01:19:51,390 --> 01:19:56,100 Vydali jsme se rovná b, takže změny z jednoho na dva. 1604 01:19:56,100 --> 01:19:59,340 A pak jsme se vydali b rovné na teplotě, což je jeden. 1605 01:19:59,340 --> 01:20:01,640 >> A pak se můžeme ukončit ven této funkce. 1606 01:20:01,640 --> 01:20:04,310 1607 01:20:04,310 --> 01:20:07,410 Když ukončíte z funkce, stack frame dostane vyskočila off zásobníku. 1608 01:20:07,410 --> 01:20:08,270 Říkáme, že tlačit. 1609 01:20:08,270 --> 01:20:12,750 Můžete tlačit rámeček zásobníku do zásobníku a pop, jestliže mimo zásobníku. 1610 01:20:12,750 --> 01:20:16,080 A tak to, co se stane, je vše, co byl v tomto zásobníku rámu druhu jen 1611 01:20:16,080 --> 01:20:17,280 jde v plamenech. 1612 01:20:17,280 --> 01:20:19,180 A tak, že již neexistuje. 1613 01:20:19,180 --> 01:20:20,470 >> Ale co jsme si všimli? 1614 01:20:20,470 --> 01:20:23,690 Nikdy jsme se vlastně změnilo hodnoty x a y, ne? 1615 01:20:23,690 --> 01:20:26,530 Takže ti zůstali místní hlavní. 1616 01:20:26,530 --> 01:20:29,900 A předáním věci do swapu, se vlastně nikdy nezměnil těchto hodnot. 1617 01:20:29,900 --> 01:20:31,260 A co nazýváme to? 1618 01:20:31,260 --> 01:20:33,040 Nazýváme to kolem hodnoty. 1619 01:20:33,040 --> 01:20:36,860 >> Takže v C, při předání věci do funkce, předává jim hodnoty a 1620 01:20:36,860 --> 01:20:40,160 vytvoří kopii nich funkci použít. 1621 01:20:40,160 --> 01:20:43,980 A dozvíme se o něco, co nazývá předávání odkazem později, ale to je 1622 01:20:43,980 --> 01:20:45,390 způsob, jak lze tento problém vyřešit. 1623 01:20:45,390 --> 01:20:47,080 Ale nebudeme bát že až později. 1624 01:20:47,080 --> 01:20:52,200 >> ROB: A ve skutečnosti, že termín, procházející odkazem, takže C ani nemá 1625 01:20:52,200 --> 01:20:54,270 předávání odkazem. 1626 01:20:54,270 --> 01:20:56,760 C výhradně se kolem hodnoty. 1627 01:20:56,760 --> 01:20:59,630 Bez ohledu na to, co děláte, jste vždy předáním kopie něčeho. 1628 01:20:59,630 --> 01:21:03,395 Je to jen, že, jak jsem trochu zmínil že předtím, než se ukazatele 1629 01:21:03,395 --> 01:21:07,690 a že řetězec je opravdu jen čtyři bytů ukázal někam do paměti. 1630 01:21:07,690 --> 01:21:11,890 >> No, pokud mám tento řetězec, a to mi říká, že je místo, kde řetězec - 1631 01:21:11,890 --> 01:21:15,470 dobře, když mám tento ukazatel na tuto místo v paměti, pak jsem si projít 1632 01:21:15,470 --> 01:21:19,160 Kopii tohoto ukazatele na funkce, a že funkce ještě ví, kde v 1633 01:21:19,160 --> 01:21:19,780 paměť je. 1634 01:21:19,780 --> 01:21:22,950 Tak jsou oba tyto ukazatele směřující na stejné místo v paměti, a 1635 01:21:22,950 --> 01:21:26,460 že to, jak budeme moci změnit věci nad rámec 1636 01:21:26,460 --> 01:21:29,852 aktuální stack frame. 1637 01:21:29,852 --> 01:21:31,040 >> JOSEPH: Chcete udělat kompilaci? 1638 01:21:31,040 --> 01:21:31,820 >> ROB: Ne, 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 se budeme zabývat sestavování Myslím, že v další část, nebo váš sekce 1643 01:21:39,280 --> 01:21:42,795 vůdce bude v tomto bodě. 1644 01:21:42,795 --> 01:21:43,272 A - 1645 01:21:43,272 --> 01:21:44,630 >> ROB: Nějaké otázky? 1646 01:21:44,630 --> 01:21:46,760 >> JOSEPH: Nějaké otázky? 1647 01:21:46,760 --> 01:21:47,150 Ano? 1648 01:21:47,150 --> 01:21:52,469 >> SPEAKER 5: Použití řetězce z CS50, každá funkce, které chceme použít pro 1649 01:21:52,469 --> 01:21:53,880 ti, že to bude jako C funkce. 1650 01:21:53,880 --> 01:21:59,050 CS50 nebyl pryč a z jakékoliv další. 1651 01:21:59,050 --> 01:22:01,850 >> ROB: Správně. 1652 01:22:01,850 --> 01:22:08,155 Každý z C jako [neslyšitelné], můžete by se používat ty na našich řetězcích. 1653 01:22:08,155 --> 01:22:12,400 >> JOSEPH: A ještě jedna poslední věc, kterou chci zmínka je, že máme průvodce stylu 1654 01:22:12,400 --> 01:22:13,130 pro tuto třídu. 1655 01:22:13,130 --> 01:22:13,360 >> ROB: Jo, jo. 1656 01:22:13,360 --> 01:22:15,270 >> JOSEPH: Takže pokud jste přišel z Před naprogramováním pozadí, můžete 1657 01:22:15,270 --> 01:22:17,750 může mít určité konvence, kdy píšete kód, jako je uvedení 1658 01:22:17,750 --> 01:22:20,950 šle na stejném řádku nebo zejména způsoby odsazení 1659 01:22:20,950 --> 01:22:22,240 nebo pojmenování proměnných. 1660 01:22:22,240 --> 01:22:26,870 V této třídě, chceme následovat specifický styl průvodce jen proto, 1661 01:22:26,870 --> 01:22:31,100 dobře, když jdete ven a pracovat v průmysl, budete očekávat, 1662 01:22:31,100 --> 01:22:34,780 následovat průvodce stylu společnost, ve které jdete. 1663 01:22:34,780 --> 01:22:38,040 >> Stejně jako například Facebook myslím, že má zvláštní druh pojmenování 1664 01:22:38,040 --> 01:22:38,760 konvence. 1665 01:22:38,760 --> 01:22:42,570 A tam je rozdíl mezi velbloudem opláštění proměnné a, stejně jako 1666 01:22:42,570 --> 01:22:44,610 oddělte je podtržítek. 1667 01:22:44,610 --> 01:22:52,170 A také si myslím, že je nejdůležitější, stejně jako například odsazení, že jo? 1668 01:22:52,170 --> 01:22:56,440 >> Nemáme složené závorky začít tam, kde podmínkou je, a oni 1669 01:22:56,440 --> 01:22:57,730 jsou na dalším řádku. 1670 01:22:57,730 --> 01:23:01,230 A my jsme také dát složené závorky v i když je to jen jeden řádek. 1671 01:23:01,230 --> 01:23:06,100 A hodně krát, existují způsoby, jak dělat to, kde si můžete nechat tyto rovnátka 1672 01:23:06,100 --> 01:23:08,380 vypnout, pokud je to jen jeden řádek v rámci příkazu If. 1673 01:23:08,380 --> 01:23:12,070 Ale v této třídě, chceme následovat specifický styl průvodce jen tak dostanete 1674 01:23:12,070 --> 01:23:13,550 používá k takové věci. 1675 01:23:13,550 --> 01:23:16,410 >> ROB: Jo, a Style 50 se chystá prosazování tohoto stylu průvodce, a my jsme 1676 01:23:16,410 --> 01:23:18,080 bude používat styl 50 do platové třídy kódu. 1677 01:23:18,080 --> 01:23:25,150 Tak to dělá věci pro nás jednodušší a doufejme, že by neměl dělat věci, které 1678 01:23:25,150 --> 01:23:30,120 mnohem horší pro vás vzhledem k standardizovaný způsob by neměl být, že 1679 01:23:30,120 --> 01:23:31,460 nereálné. 1680 01:23:31,460 --> 01:23:36,000 >> JOSEPH: A konečně, najít styl průvodce, jdě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áš se prosadit všechny znaky na řádek? 1683 01:23:40,575 --> 01:23:42,480 >> ROB: Ano. 1684 01:23:42,480 --> 01:23:45,405 >> JOSEPH: Je nám líto, kluci. 1685 01:23:45,405 --> 01:23:47,680 >> ROB: To je jako jeden z mála ty. 1686 01:23:47,680 --> 01:23:50,420 V tomto bodě, jsem OK s 120. 1687 01:23:50,420 --> 01:23:52,460 Jsem OK se říká 120 znaků na řádek. 1688 01:23:52,460 --> 01:23:53,830 Chápu, že je nějaké omezení. 1689 01:23:53,830 --> 01:23:57,130 Myslím, že 80 je tak malý, ale budeme prosazovat ji. 1690 01:23:57,130 --> 01:24:00,260 >> JOSEPH: Osobně si myslím, že se C, 80 znaků je v pořádku. 1691 01:24:00,260 --> 01:24:04,160 Jakmile začnete dostat do další jazyky, jako je JavaScript a PHP, ne 1692 01:24:04,160 --> 01:24:08,860 tak rozumné jen omezit je 80 znaků. 1693 01:24:08,860 --> 01:24:09,260 OK. 1694 01:24:09,260 --> 01:24:12,780 No, to bylo super sekce. 1695 01:24:12,780 --> 01:24:14,750 Má někdo chtěl cukroví? 1696 01:24:14,750 --> 01:24:16,000 >> SPEAKER 4: Ano. 1697 01:24:16,000 --> 01:24:18,667