1 00:00:00,000 --> 00:00:02,742 >> [Přehrávání hudby] 2 00:00:02,742 --> 00:00:05,030 3 00:00:05,030 --> 00:00:09,090 >> ANDI PENG: Toto je CS50, a vítejte na týden dva oddílu. 4 00:00:09,090 --> 00:00:11,740 To je ve skutečnosti, zatímco týden dva z našich class-- Vlastně, 5 00:00:11,740 --> 00:00:14,550 První týden jsme měli bod. 6 00:00:14,550 --> 00:00:18,897 Show rukou, kolik z vás všech přišel se do super sekce minulý týden? 7 00:00:18,897 --> 00:00:19,480 OK, to je v pořádku. 8 00:00:19,480 --> 00:00:20,020 To je v pohodě. 9 00:00:20,020 --> 00:00:23,110 Jak mnozí z vás sledoval Super část minulý týden? 10 00:00:23,110 --> 00:00:23,610 DOBŘE. 11 00:00:23,610 --> 00:00:25,702 A vy jste udělali v pohodě Na problém nastavit jednu? 12 00:00:25,702 --> 00:00:28,660 Takže budu brát tak, že máme parta opravdu inteligentních dětí 13 00:00:28,660 --> 00:00:32,310 V této třídě a věci bude v pořádku. 14 00:00:32,310 --> 00:00:33,180 DOBŘE. 15 00:00:33,180 --> 00:00:33,980 Tak first-- 16 00:00:33,980 --> 00:00:37,900 17 00:00:37,900 --> 00:00:41,090 >> Za prvé, jsme jen tak krátce jít přes agendu na dnešek. 18 00:00:41,090 --> 00:00:42,700 Promluvíme si o kurzu logistice. 19 00:00:42,700 --> 00:00:45,480 Mnoho z vás asi S dotazy týkajícími se 20 00:00:45,480 --> 00:00:46,920 , jak to běží v tomto kurzu. 21 00:00:46,920 --> 00:00:47,897 Budeme na ně odpovědět. 22 00:00:47,897 --> 00:00:49,730 Chystáme se krátce projít smyčky v případě, 23 00:00:49,730 --> 00:00:51,410 některý z vás minul Super sekci. 24 00:00:51,410 --> 00:00:53,240 Promluvíme si o mapování ASCII. 25 00:00:53,240 --> 00:00:56,180 Promluvíme si o polích, funkce, argumenty příkazového řádku. 26 00:00:56,180 --> 00:01:00,210 A konečně, co vy asi všichni Opravdu chci být zde a dozvíte se o, 27 00:01:00,210 --> 00:01:01,270 je vaše pset2. 28 00:01:01,270 --> 00:01:04,209 Budeme mít nějaké pěkné triky a tipy na to, jak to udělat. 29 00:01:04,209 --> 00:01:07,910 30 00:01:07,910 --> 00:01:08,690 >> DOBŘE. 31 00:01:08,690 --> 00:01:11,450 Také, za druhé, máme spousta cukroví zde. 32 00:01:11,450 --> 00:01:13,583 Každý, kdo má rád cukroví, jen přijít sem. 33 00:01:13,583 --> 00:01:14,430 Chyť některé z nich. 34 00:01:14,430 --> 00:01:15,100 Mám spoustu. 35 00:01:15,100 --> 00:01:16,390 Máme tunu v kanceláři. 36 00:01:16,390 --> 00:01:18,230 Já opravdu nechci jíst sladkosti celý den. 37 00:01:18,230 --> 00:01:20,300 Měli byste sníst všechny sladkosti, Vzhledem k tomu, přinesl jsem tu pro vás. 38 00:01:20,300 --> 00:01:20,990 Jen jíst sladkosti. 39 00:01:20,990 --> 00:01:24,080 Bude tam cukroví každá část. 40 00:01:24,080 --> 00:01:25,330 >> Takže nejprve, kdo jsem? 41 00:01:25,330 --> 00:01:27,080 Jmenuji se Andi Peng. 42 00:01:27,080 --> 00:01:30,270 Já jsem hlava TA CS50 tady v Yale. 43 00:01:30,270 --> 00:01:32,540 A kromě že budu také be-- 44 00:01:32,540 --> 00:01:35,600 pokud by se někdo jako-- běžícího kamaráde, vaše rameno k pláči na. 45 00:01:35,600 --> 00:01:39,140 V případě, že noc před Due vašeho pset je, Máte tušení, co se děje, 46 00:01:39,140 --> 00:01:40,080 prašti mě. 47 00:01:40,080 --> 00:01:42,770 Budeme spolu politovat, et cetera. 48 00:01:42,770 --> 00:01:46,100 Jen vím, že jsem tady jako zdroj pro vás jako přední linii 49 00:01:46,100 --> 00:01:51,830 který vám pomůže zjistit, jak kluci k řešení problémů v CS50 a mimo něj. 50 00:01:51,830 --> 00:01:54,590 >> Můj email je andi.peng@yale.edu. 51 00:01:54,590 --> 00:01:58,390 Budu také vyslat jednotlivce e-mail se svým telefonním číslem v něm 52 00:01:58,390 --> 00:02:01,860 takže ne každý na internet můžete podívat na moje telefonní číslo. 53 00:02:01,860 --> 00:02:03,640 Neváhejte mi zavolat kdykoli. 54 00:02:03,640 --> 00:02:07,510 Vážně, můj telefon je obvykle se vázal k ruce. 55 00:02:07,510 --> 00:02:10,240 I nemusí odpovídat během pár minut. 56 00:02:10,240 --> 00:02:11,984 I nesmí reagovat do pár hodin. 57 00:02:11,984 --> 00:02:14,400 Ale můžu vám zaručit, je-li jste mi e-mail, pokud se mi říkat, 58 00:02:14,400 --> 00:02:17,404 textové mě, budu reagovat do 24 hodin. 59 00:02:17,404 --> 00:02:19,820 Častokrát, budu reagovat dříve že, protože chápu, 60 00:02:19,820 --> 00:02:23,900 že každý má nějaké problémy, a chcete, aby vaše odpovědi 61 00:02:23,900 --> 00:02:26,110 třeba zodpovědět velmi rychle. 62 00:02:26,110 --> 00:02:28,945 >> Nicméně, pokud zavoláte me 30 minut před 63 00:02:28,945 --> 00:02:31,570 že kus, který je kvůli čtvrtek night-- být jako, Andi, pomozte mi, 64 00:02:31,570 --> 00:02:35,380 Nemám started-- mohu dát vám, že rameno k pláči na. 65 00:02:35,380 --> 00:02:41,520 Ale to může být čas přemýšlet o tom, Jak to udělat, že příště. 66 00:02:41,520 --> 00:02:44,040 DOBŘE. 67 00:02:44,040 --> 00:02:44,944 Chybička se vloudila. 68 00:02:44,944 --> 00:02:45,850 Jak se mohu vrátit? 69 00:02:45,850 --> 00:02:48,140 Tam jedeme. 70 00:02:48,140 --> 00:02:52,310 >> Takže v tomto kurzu, máme ton podpory pro každého. 71 00:02:52,310 --> 00:02:54,640 Kromě právě sekce, která sem vás 72 00:02:54,640 --> 00:02:57,000 každý týden trávit 90 nádherné minut se mnou, 73 00:02:57,000 --> 00:02:58,330 máme také úřední hodiny. 74 00:02:58,330 --> 00:03:01,021 Kolik z vás má již byl na pracovní dobu o pomoc? 75 00:03:01,021 --> 00:03:01,520 Skvělý. 76 00:03:01,520 --> 00:03:05,700 To je opravdu dobré vidět, protože jsme má tým více než 45 TA a CAS 77 00:03:05,700 --> 00:03:11,780 trénoval na tento kurz, který se zde za pomoc vám kluci s vašimi psets. 78 00:03:11,780 --> 00:03:14,580 >> Mondays, že jsou drženy v TEAL třída v 17. Hill House zde 79 00:03:14,580 --> 00:03:15,350 na Yale. 80 00:03:15,350 --> 00:03:17,349 Úterý a ve čtvrtek, oni se konala v commons. 81 00:03:17,349 --> 00:03:20,010 8:00 do 11:00 skoro každý všední den. 82 00:03:20,010 --> 00:03:21,620 Pojď, pojď ven. 83 00:03:21,620 --> 00:03:24,030 Jakýkoliv problém, ne problem-- Jen pojď, 84 00:03:24,030 --> 00:03:26,650 a pak budeme vám pomohl ven s tím. 85 00:03:26,650 --> 00:03:31,640 >> Za druhé, kromě úředních hodinách a profily, máme také šortky. 86 00:03:31,640 --> 00:03:35,930 Má někdo někdy viděl pár z šortky nebo návody ve videích 87 00:03:35,930 --> 00:03:36,750 na internetových stránkách? 88 00:03:36,750 --> 00:03:37,250 DOBŘE. 89 00:03:37,250 --> 00:03:39,510 Takže jsou opravdu, opravdu užitečná. 90 00:03:39,510 --> 00:03:42,470 Naše krásná produkce Harvard tým tamhle na té škole 91 00:03:42,470 --> 00:03:47,910 up na sever, oni natočili a produkoval Tyto neuvěřitelné Walkthrough videa. 92 00:03:47,910 --> 00:03:52,290 >> Budou vás krok za krokem jak jít o řešení problému. 93 00:03:52,290 --> 00:03:56,340 Častokrát, pokud jste zmateni o jednoduchý koncept, ojedinělá koncepce, 94 00:03:56,340 --> 00:03:59,780 se podívat, protože jsme pravděpodobně krátká na to někde na našich webových stránkách. 95 00:03:59,780 --> 00:04:03,800 A je to obvykle skvělý zdroj hledat, když jste poprvé 96 00:04:03,800 --> 00:04:06,510 ztratil o tom, jak zvládnout problém. 97 00:04:06,510 --> 00:04:09,750 >> Za třetí, máme také study50 a reference50. 98 00:04:09,750 --> 00:04:15,650 Tak studie 50 na webové stránky je jen odkaz. 99 00:04:15,650 --> 00:04:21,500 To je, myslím, study.cs50.net nebo něco takového. 100 00:04:21,500 --> 00:04:22,860 Jen to google. 101 00:04:22,860 --> 00:04:24,229 Máme spoustu snímků připravených. 102 00:04:24,229 --> 00:04:26,770 Máme spoustu šortky a walkthroughs-- věci všechny sestavené 103 00:04:26,770 --> 00:04:31,070 velmi pěkný a čistý pro vás všechny procházet, vidět žádné koncepty 104 00:04:31,070 --> 00:04:32,860 že jste zmatená o. 105 00:04:32,860 --> 00:04:35,920 To by pravděpodobně pokryt tamhle study50. 106 00:04:35,920 --> 00:04:37,640 >> Reference50-- podobné. 107 00:04:37,640 --> 00:04:41,510 Máme spoustu různých poznámek snadno dostupné pro dispozici. 108 00:04:41,510 --> 00:04:44,450 A konečně, máme to, co je volal CS50 Diskutovat, 109 00:04:44,450 --> 00:04:48,082 fórem, na kterém, v případě, že noc před děláte vaše problémy, říkají, 110 00:04:48,082 --> 00:04:49,880 máte nějakou otázku. 111 00:04:49,880 --> 00:04:52,340 Přihlaste se do CS50 diskutovat. 112 00:04:52,340 --> 00:04:53,190 Zašlete svůj dotaz. 113 00:04:53,190 --> 00:04:55,820 A pak jeden z hundreds-- Možná, thousands-- vrstevníků 114 00:04:55,820 --> 00:04:57,960 přičemž této třídy on-line se přihlásit. 115 00:04:57,960 --> 00:05:01,182 A možná někdo může dostat vaše odpověď před TA. 116 00:05:01,182 --> 00:05:03,390 Je to v podstatě jen on-line fórum, které můžeme všichni 117 00:05:03,390 --> 00:05:04,556 použít diskutovat o naše problémy. 118 00:05:04,556 --> 00:05:06,483 To je hustý. 119 00:05:06,483 --> 00:05:10,660 120 00:05:10,660 --> 00:05:11,550 >> DOBŘE. 121 00:05:11,550 --> 00:05:13,220 Takže problém sady. 122 00:05:13,220 --> 00:05:17,840 Chystáme se přímo v tlustý problému set dva. 123 00:05:17,840 --> 00:05:20,570 Mnozí z nás již se snažil prostřednictvím problému nastavit jeden. 124 00:05:20,570 --> 00:05:24,460 Již víme, že snad čekají na poslední noc, aby se váš pset 125 00:05:24,460 --> 00:05:28,170 není nejchytřejší věc v CS50. 126 00:05:28,170 --> 00:05:32,380 >> Tipy a tipy v podstatě pro Úspěch je přečíst celý spec. 127 00:05:32,380 --> 00:05:36,270 Kolik z vás má již číst spec pro pset 2? 128 00:05:36,270 --> 00:05:36,770 DOBŘE. 129 00:05:36,770 --> 00:05:39,840 To je pevná částka. 130 00:05:39,840 --> 00:05:43,210 Vím, že vy jste pravděpodobně uznáno teď jsou specifikace jsou opravdu dlouhé. 131 00:05:43,210 --> 00:05:45,700 Jsou to opravdu, opravdu dlouho. 132 00:05:45,700 --> 00:05:49,630 >> Je to opravdu těžké číst každý řádek tohoto pečlivě slovo za slovem. 133 00:05:49,630 --> 00:05:52,780 Chcete-li jen sbírat tam, kde to vám řekne, abyste něco udělali. 134 00:05:52,780 --> 00:05:54,459 Mohu vám zaručit, nedělej to. 135 00:05:54,459 --> 00:05:56,750 Pokud to uděláte, budete pravděpodobně bude chybět někam 136 00:05:56,750 --> 00:05:58,458 kde to vám řekne jak začít problém 137 00:05:58,458 --> 00:06:01,140 nebo vám to řekne, co má jméno váš problém nebo to vám řekne, 138 00:06:01,140 --> 00:06:03,720 To je pravděpodobně nejlepší způsob, začít dělat váš problém. 139 00:06:03,720 --> 00:06:05,050 A pak budeš ztracen. 140 00:06:05,050 --> 00:06:08,219 >> Při pokusu o čtení vašich spec v polovině, 141 00:06:08,219 --> 00:06:10,510 hodně důležité information-- v tom, že nejste 142 00:06:10,510 --> 00:06:12,260 bude moci opravdu přístupem. 143 00:06:12,260 --> 00:06:13,219 Tak si přečtěte celý spec. 144 00:06:13,219 --> 00:06:15,468 Zkuste si přečíst celý spec Než přijdete do oddílu, 145 00:06:15,468 --> 00:06:17,360 proto, že potom, když jsme mluvit o pset, 146 00:06:17,360 --> 00:06:21,070 my všichni můžeme mít představu o tom, co se děje. 147 00:06:21,070 --> 00:06:25,169 >> Za druhé, to je pojem že budu rád odkaz 148 00:06:25,169 --> 00:06:26,710 hodně průběhu semestru. 149 00:06:26,710 --> 00:06:30,070 Ale v podstatě, sejdeme na půli cesty, je to tak? 150 00:06:30,070 --> 00:06:33,970 Já, jako TA a Jason jako kurz Manažer a Scaz jako profesor 151 00:06:33,970 --> 00:06:37,120 a David jako profesor a všichni ostatní krásné TA v tomto kurzu, 152 00:06:37,120 --> 00:06:39,830 asistenti v tomto course-- budeme v našich silách, 153 00:06:39,830 --> 00:06:42,965 aby bylo zajištěno, že jsou nastaveny až uspět v tomto kurzu. 154 00:06:42,965 --> 00:06:43,840 Budeme se držet oddíl. 155 00:06:43,840 --> 00:06:44,870 Budeme se držet úřední hodiny. 156 00:06:44,870 --> 00:06:47,087 Budeme odpovídat na váš telefon hovory, odpovědět na vaše e-maily, 157 00:06:47,087 --> 00:06:49,670 udělat vše, co je v našich silách, aby se že vaše otázky jsou zodpovězeny. 158 00:06:49,670 --> 00:06:51,460 >> Nicméně, pomáhají nám příliš. 159 00:06:51,460 --> 00:06:52,450 Seznamte se nás na půli cesty. 160 00:06:52,450 --> 00:06:56,040 Přijedete-li do úřední hodiny ne mít uplynulý k bodu, ne 161 00:06:56,040 --> 00:07:02,060 mít viděný přednášek,, které nemají představu, co se děje, bude jako, pomoz mi. 162 00:07:02,060 --> 00:07:04,350 Já budu rád, dobře, je mi líto. 163 00:07:04,350 --> 00:07:06,410 To může být čas, aby půjčovat že rameno k pláči na, 164 00:07:06,410 --> 00:07:08,959 protože si nejsem jistý, co mohu udělat, aby vám pomohl 165 00:07:08,959 --> 00:07:12,000 pokud nechcete zkusit alespoň pomoc si trochu na začátku. 166 00:07:12,000 --> 00:07:12,910 Seznamte se nás na půli cesty. 167 00:07:12,910 --> 00:07:15,020 Víte, přijďte připraveni odpovědět a získat 168 00:07:15,020 --> 00:07:16,353 připraveni se zapojit do materiálu. 169 00:07:16,353 --> 00:07:19,342 To dělá věci tak moc jednodušší pro všechny zúčastněné. 170 00:07:19,342 --> 00:07:22,970 Jo, to je docela hodně to. 171 00:07:22,970 --> 00:07:23,720 >> Třídění. 172 00:07:23,720 --> 00:07:29,250 Takže na osnovy, je to docela do hloubky o tom, jak třídy. 173 00:07:29,250 --> 00:07:32,440 Ale v podstatě, členění v tomto je 50% z vaší třídy 174 00:07:32,440 --> 00:07:34,530 budou psets, které je krásné, protože to je 175 00:07:34,530 --> 00:07:37,400 kde trávíte drtivá většinu svého času na kurzu. 176 00:07:37,400 --> 00:07:39,854 Kvízy 40%, a vaše závěrečný projekt bude 10%. 177 00:07:39,854 --> 00:07:42,520 Dvě budou kvízy celé Průběh semestru. 178 00:07:42,520 --> 00:07:47,050 Myslím si, že časy a data jsou také uvedeny na osnovy. 179 00:07:47,050 --> 00:07:49,210 >> Způsob, jakým budeme být třídění své psets 180 00:07:49,210 --> 00:07:53,930 je to, že mají v podstatě čtyři hodnoty, které jsme přiřadit každé platové třídě. 181 00:07:53,930 --> 00:07:57,250 Máme hodnotu rozsahu, správnost, design a styl. 182 00:07:57,250 --> 00:08:01,530 Takže jak vidíte, že je to druh naší Vzorec pro výpočet psets. 183 00:08:01,530 --> 00:08:03,640 Tři dáváme nejvíce hmotnost na správnost, 184 00:08:03,640 --> 00:08:06,140 protože samozřejmě svým trenérem by mělo být testování pro případy 185 00:08:06,140 --> 00:08:08,480 že chceme, aby testování. 186 00:08:08,480 --> 00:08:11,000 >> Vy všichni mají check50 k dispozici. 187 00:08:11,000 --> 00:08:13,730 Je to velmi užitečná funkce že vy můžete vše 188 00:08:13,730 --> 00:08:17,560 nahrát svůj kód na naše servery, kde budeme kontrolovat to za vás. 189 00:08:17,560 --> 00:08:20,800 A jste viděli ty, zamračený tváře, smajlíky. 190 00:08:20,800 --> 00:08:22,119 Jsou to opravdu, opravdu užitečné. 191 00:08:22,119 --> 00:08:23,910 Prosím, být student, který rád pokusů 192 00:08:23,910 --> 00:08:26,230 hardcode všechny odpovědi na ně. 193 00:08:26,230 --> 00:08:30,050 Určitě jsem viděl pset kde někdo viděl všechny hodnoty check50 194 00:08:30,050 --> 00:08:33,429 a oni jen pevně dáno, pokud in-- toto číslo, tisknout toto číslo. 195 00:08:33,429 --> 00:08:35,080 Je-li tento počet, vytiskněte tohoto čísla. 196 00:08:35,080 --> 00:08:36,090 Nedělej to. 197 00:08:36,090 --> 00:08:39,360 >> I když technicky check50 je správné, 198 00:08:39,360 --> 00:08:41,809 váš způsob řešení Problém je, není správné. 199 00:08:41,809 --> 00:08:45,770 Takže stačí použít check50 střídmě. 200 00:08:45,770 --> 00:08:48,497 Ale také ujistit, že jste pochopit, jak to funguje, 201 00:08:48,497 --> 00:08:50,580 program funguje kromě check50, 202 00:08:50,580 --> 00:08:53,120 protože nemůžeme testovat každý možný případ check50. 203 00:08:53,120 --> 00:08:55,440 Budeme testovat některé z nich. 204 00:08:55,440 --> 00:09:00,390 >> Design je v podstatě, jak dobře navržená je váš kód? 205 00:09:00,390 --> 00:09:04,150 Jste-li copy-vložení násobek řádků kódu mnohokrát. 206 00:09:04,150 --> 00:09:06,960 Možná, že nemáte dost nejlepší design v kódu. 207 00:09:06,960 --> 00:09:09,470 Možná je na čase, aby dodat, že smyčky. 208 00:09:09,470 --> 00:09:12,090 V podstatě, tady je to prostě všechno o snaze udělat svůj kód, 209 00:09:12,090 --> 00:09:17,010 se snaží napsat svůj kód, jak efektivně jak je možné, aby váš program běží 210 00:09:17,010 --> 00:09:19,630 co nejrychleji. 211 00:09:19,630 --> 00:09:20,996 >> A konečně, máme styl. 212 00:09:20,996 --> 00:09:24,360 Takže styl je trochu libovolná, subjektivní pojem. 213 00:09:24,360 --> 00:09:27,470 Vím, že jsme oficiálně mít styl 50 průvodce pro CS50, 214 00:09:27,470 --> 00:09:30,050 kde to vám řekne, ach, ty by měl mít prostor zde. 215 00:09:30,050 --> 00:09:32,220 Měli byste jaký formát váš kód tímto způsobem. 216 00:09:32,220 --> 00:09:34,070 Ty by měly jmenovat věci tímto způsobem. 217 00:09:34,070 --> 00:09:38,180 >> Nemám opravdu jedno, samo o sobě, jak zvolíte styl svůj kód, 218 00:09:38,180 --> 00:09:39,840 tak dlouho, jak si pobyt v souladu. 219 00:09:39,840 --> 00:09:43,732 Například, pokud chcete zanechat mezeru po svém čtyřech 220 00:09:43,732 --> 00:09:45,690 před čtyřmi smyčky, jen to, že pokaždé. 221 00:09:45,690 --> 00:09:46,523 Nepoužívejte druh dělat. 222 00:09:46,523 --> 00:09:47,730 Nedělej to jindy. 223 00:09:47,730 --> 00:09:51,046 Pokud si chcete udržet kudrnaté šle prostor určitým způsobem, 224 00:09:51,046 --> 00:09:52,170 Vždycky to udělat takhle. 225 00:09:52,170 --> 00:09:54,628 Nepoužívejte druh to někde tu a tam někde ne. 226 00:09:54,628 --> 00:09:57,010 Když jsme třídění, je to opravdu těžké 227 00:09:57,010 --> 00:09:59,420 když mám tušení, jak jste formátování kódu, 228 00:09:59,420 --> 00:10:02,064 věci jsou šílený a na místě. 229 00:10:02,064 --> 00:10:04,980 Máte-li jen držet to konzistentní, je to mnohem jednodušší pro mě jako větší 230 00:10:04,980 --> 00:10:06,310 aby bylo možné přečíst váš kód. 231 00:10:06,310 --> 00:10:09,393 Je to mnohem jednodušší pro vás jako student aby bylo možné prohlédnout kódu 232 00:10:09,393 --> 00:10:11,720 a vidět, co je špatného to lomítko proč tam problémy. 233 00:10:11,720 --> 00:10:15,740 Styl je jedna z nejjednodušších věcí, vy můžete udělat, aby se plný skóre. 234 00:10:15,740 --> 00:10:18,770 V podstatě, pokud jste právě jedno, pokud platíte pět minut pozornosti 235 00:10:18,770 --> 00:10:22,760 aby váš kód každý týden, měli byste se dostat plný styl bodů. 236 00:10:22,760 --> 00:10:26,020 >> A konečně, máme to, co se nazývá multiplikátor rozsah. 237 00:10:26,020 --> 00:10:28,890 Scope-- Vím, že je to velký slovo, a to zejména v této třídě. 238 00:10:28,890 --> 00:10:31,030 Ale rozsah, všechno to znamená je to, že se snažíte 239 00:10:31,030 --> 00:10:33,670 se psets, jak nejlépe své schopnosti. 240 00:10:33,670 --> 00:10:37,180 Pokud zapnete ve třech out z vašich čtyř problémů 241 00:10:37,180 --> 00:10:39,460 a ani pokus o poslední z nich, budete pravděpodobně 242 00:10:39,460 --> 00:10:41,630 prohraje nějaké body na rozsahu. 243 00:10:41,630 --> 00:10:44,560 >> Dokonce i když si jen začít problém, dělat to nejlepší, jít přes něj. 244 00:10:44,560 --> 00:10:47,691 I když to nefunguje, zapněte jej v, protože to ukazuje a dokazuje, 245 00:10:47,691 --> 00:10:50,190 nám, že se snažíte, aby jste se pokusili problém set 246 00:10:50,190 --> 00:10:51,430 jak nejlépe své schopnosti. 247 00:10:51,430 --> 00:10:53,800 A pak vám můžeme dát plný počet bodů pro oblast působnosti. 248 00:10:53,800 --> 00:10:58,715 >> Rozsah je také velmi důležité, když jsme my mluvit o nejnižším pset skóre poklesem. 249 00:10:58,715 --> 00:11:02,010 Takže v průběhu z semestr, vy kluci mají devět psets. 250 00:11:02,010 --> 00:11:05,340 A my bude skutečně klesá nejnižší výsledek z těch devíti, 251 00:11:05,340 --> 00:11:07,670 ale pouze pokud máte plné šíři bodů. 252 00:11:07,670 --> 00:11:11,120 >> Takže pokud se dáte v neúplné pset, bohužel, nemůžeme klesnout, že jeden, 253 00:11:11,120 --> 00:11:13,540 Protože váš rozsah body nebyly dokončeny. 254 00:11:13,540 --> 00:11:16,570 Takže i když máte hrozný týden kam umírání a jste nemocná 255 00:11:16,570 --> 00:11:20,040 nebo Váš pes zemře, vaše kočka zemře, a vy jste přetížené s domácími úkoly, 256 00:11:20,040 --> 00:11:21,074 Jen pokus o pset. 257 00:11:21,074 --> 00:11:22,490 Udělej to, jak nejlépe své schopnosti. 258 00:11:22,490 --> 00:11:23,840 Pokud to nefunguje, na tom nezáleží. 259 00:11:23,840 --> 00:11:24,506 Stačí zapnout ji. 260 00:11:24,506 --> 00:11:26,590 Přinejmenším můžeme dát vám body za snahu. 261 00:11:26,590 --> 00:11:28,510 >> A pro úsilí v této třídě. 262 00:11:28,510 --> 00:11:30,170 V nejméně nejnižšího bodového pádu pro úsilí. 263 00:11:30,170 --> 00:11:32,354 Tak jo. 264 00:11:32,354 --> 00:11:33,270 To je docela hodně to. 265 00:11:33,270 --> 00:11:36,521 Má někdo nějaké dotazy tak, daleko na tom, jak ročníku ve třídě? 266 00:11:36,521 --> 00:11:37,187 Nebo některý z nich? 267 00:11:37,187 --> 00:11:41,220 Některé z nich tak far-- profily, úřední hodiny? 268 00:11:41,220 --> 00:11:41,720 Bezva. 269 00:11:41,720 --> 00:11:46,720 270 00:11:46,720 --> 00:11:47,800 DOBŘE. 271 00:11:47,800 --> 00:11:51,260 >> Tak to je téma, které není člověk opravdu rád mluvit. 272 00:11:51,260 --> 00:11:53,084 Nemám opravdu rád o tom mluvit. 273 00:11:53,084 --> 00:11:55,250 Vy jste opravdu nechceme slyšet mě mluvit o tom. 274 00:11:55,250 --> 00:11:57,690 Ale bohužel, my všichni musí o tom mluvit. 275 00:11:57,690 --> 00:12:00,110 David strávil 20 minut přednáška o tom mluví. 276 00:12:00,110 --> 00:12:02,580 A to je předmětem akademické poctivosti. 277 00:12:02,580 --> 00:12:08,110 >> Takže jsme všichni tady pravděpodobně psaný esej někdy v našem Yale kariéře. 278 00:12:08,110 --> 00:12:11,800 Jsme pravděpodobně dostali rozhovor, kde jsme bylo řečeno, že nebude napodobit svou esej, 279 00:12:11,800 --> 00:12:13,940 protože práce není naše. 280 00:12:13,940 --> 00:12:18,109 Ve vědě o počítačích, máme stejný druh konceptu. 281 00:12:18,109 --> 00:12:20,150 Veškeré práce, které odešlete, vše kód, který napíšete 282 00:12:20,150 --> 00:12:21,900 by měl být kód, který jste napsali. 283 00:12:21,900 --> 00:12:24,280 Nemělo by to být kód, který jste si zkopírován z někde jinde. 284 00:12:24,280 --> 00:12:26,777 Nemělo by to být kód, který jste googled a svalil na 285 00:12:26,777 --> 00:12:28,360 a nemáte opravdu vědět, jestli to funguje. 286 00:12:28,360 --> 00:12:32,440 Ty druh mít smysl co to dělá, ale ne tak docela. 287 00:12:32,440 --> 00:12:36,562 Pokud si nejste jisti, v podstatě, je to jen být rozumná. 288 00:12:36,562 --> 00:12:38,520 Na našich osnov, máme celý seznam věcí, 289 00:12:38,520 --> 00:12:40,560 vidíme za přiměřenou oproti není rozumné. 290 00:12:40,560 --> 00:12:43,820 >> Například, rozumný je vy a váš přítel 291 00:12:43,820 --> 00:12:47,360 o tom, co je nejlepší způsob, jak jít o logicky řešení problému. 292 00:12:47,360 --> 00:12:48,910 To je docela rozumné. 293 00:12:48,910 --> 00:12:53,244 To, co by nebylo rozumné, je, pokud vás kluci se dali dohromady, zadali stejný kód, 294 00:12:53,244 --> 00:12:54,410 a obrátil se ve stejném kódu. 295 00:12:54,410 --> 00:12:56,302 To není rozumné. 296 00:12:56,302 --> 00:12:57,510 Totéž, druh eseje. 297 00:12:57,510 --> 00:12:59,290 Pokud chcete diskutovat se svým přítelem, hej, 298 00:12:59,290 --> 00:13:00,220 To je to, co chci psát. 299 00:13:00,220 --> 00:13:02,500 To jsou kroky, které jsem si chtějí trvat, než psát o tom, skvělé. 300 00:13:02,500 --> 00:13:03,208 To je nádherné. 301 00:13:03,208 --> 00:13:04,790 Prosím, navzájem mezi sebou spolupracují. 302 00:13:04,790 --> 00:13:06,540 Pokud vy začít píše totéž, 303 00:13:06,540 --> 00:13:10,020 otáčet ve stejném eseji, to je méně v pořádku. 304 00:13:10,020 --> 00:13:13,200 Takže v případě pochybností, prostě nedělejte to. 305 00:13:13,200 --> 00:13:16,940 >> Zde jsme v CS50, máme skripty že běh automatizovat testování 306 00:13:16,940 --> 00:13:21,740 nejen správnost kódu, ale i jedinečnost kódu. 307 00:13:21,740 --> 00:13:25,920 Takže prosím, nedávejte nám v poloze aby musel postoupit svůj případ k EXCOMM. 308 00:13:25,920 --> 00:13:31,110 Prosím, jen tak pro každého, ať to prostě aby to nádherný zážitek. 309 00:13:31,110 --> 00:13:33,600 Každý, kdo se učí lépe, my všichni jsou šťastnější, 310 00:13:33,600 --> 00:13:37,926 a my jsme všichni nastaven tak, aby uspět v tomto kurzu. 311 00:13:37,926 --> 00:13:39,800 Něco, co je to velmi jedinečné o této třídě 312 00:13:39,800 --> 00:13:42,660 že Myslím, že každý by měl opravdu věnovat pozornost, je, že máme 313 00:13:42,660 --> 00:13:44,930 co se nazývá lítost klauzule v našich osnov. 314 00:13:44,930 --> 00:13:50,010 Takže v podstatě, do 72 hodin, v případě, si myslíte, že jste udělali něco 315 00:13:50,010 --> 00:13:53,240 si nejste úplně jistý byl vhodné, prosím, pojď k nám. 316 00:13:53,240 --> 00:13:57,220 Slibujeme vám, že do 72 hodin budeme zpracovávat případ sami 317 00:13:57,220 --> 00:13:59,820 bez odkazu na vyšší autorita v administraci. 318 00:13:59,820 --> 00:14:03,100 >> Takže pokud jste přišel ke mně a řekl: Andi, hej, je mi opravdu líto, 319 00:14:03,100 --> 00:14:07,620 ale myslím, že je pár řádků v My Kód včera v noci, že jsem tak trochu googled, 320 00:14:07,620 --> 00:14:10,120 vystoupil z Stack Overflow, kopírovat a vložit, 321 00:14:10,120 --> 00:14:13,680 a já jsem opravdu, opravdu líto o tom, dejte mi vědět. 322 00:14:13,680 --> 00:14:16,900 Prosím tě, nech to hnisat a jen doufám, že jsem to chytit. 323 00:14:16,900 --> 00:14:17,784 Budeme ho chytit. 324 00:14:17,784 --> 00:14:18,450 Stačí přijít ke mně. 325 00:14:18,450 --> 00:14:20,520 Dejte mi vědět do 72 hodin. 326 00:14:20,520 --> 00:14:22,240 Budeme vymyslet řešení. 327 00:14:22,240 --> 00:14:26,679 A slibujeme, že nebudeme odkazovat na univerzitní orgány v podstatě. 328 00:14:26,679 --> 00:14:29,220 Takže je to ve vašem nejlepším zájmu jen být upřímný s každým 329 00:14:29,220 --> 00:14:31,720 jež se podílejí na průběhu. 330 00:14:31,720 --> 00:14:34,630 >> DOBŘE. 331 00:14:34,630 --> 00:14:35,240 DOBŘE. 332 00:14:35,240 --> 00:14:37,800 Takže teď, rychle, než I dál, má někdo 333 00:14:37,800 --> 00:14:42,670 S dotazy týkajícími se logistiky o tom, jak kurzech budeme provozovat, 334 00:14:42,670 --> 00:14:45,982 jak úseky jdou spustit, něco z toho? 335 00:14:45,982 --> 00:14:46,711 DOBŘE. 336 00:14:46,711 --> 00:14:47,210 To jo. 337 00:14:47,210 --> 00:14:48,126 >> Diváků: [Neslyšitelné]? 338 00:14:48,126 --> 00:14:50,414 339 00:14:50,414 --> 00:14:51,080 ANDI PENG: Jo. 340 00:14:51,080 --> 00:14:54,850 Tak quizzes--, jak mnozí z vás jsou v sekci pondělí / středa? 341 00:14:54,850 --> 00:14:56,700 Jak mnozí z vás jsou v úterý / čtvrtek? 342 00:14:56,700 --> 00:14:58,550 OK, tak je to solidní rozkol zde. 343 00:14:58,550 --> 00:15:00,900 Takže způsob, jakým jsme se spustit je to na Yale je, že jsme 344 00:15:00,900 --> 00:15:04,040 budou mít dva oddělené quizzes-- jeden pro každou section-- že 345 00:15:04,040 --> 00:15:06,160 budou přijata během vyučování. 346 00:15:06,160 --> 00:15:09,310 Myslím, že je říjen, konec října, něco takového, jako jeden týden 347 00:15:09,310 --> 00:15:10,794 v kvízu. 348 00:15:10,794 --> 00:15:11,960 Jo, takže stačí přijít do třídy. 349 00:15:11,960 --> 00:15:13,920 Na tomto pondělí nebo ve středu, budete mít kvíz. 350 00:15:13,920 --> 00:15:16,336 Na tomto úterý nebo ve čtvrtek, budete mít jiný kvíz. 351 00:15:16,336 --> 00:15:18,570 Ale stejný materiál se bude vztahovat. 352 00:15:18,570 --> 00:15:19,160 To jo. 353 00:15:19,160 --> 00:15:20,660 Dobrá otázka. 354 00:15:20,660 --> 00:15:21,160 To jo. 355 00:15:21,160 --> 00:15:23,260 >> Diváků: Kam jít na kontrolu našich známky? 356 00:15:23,260 --> 00:15:23,926 >> ANDI PENG: Jo. 357 00:15:23,926 --> 00:15:28,420 Tak jsem se Rozeslat e-mail, co každý týden 358 00:15:28,420 --> 00:15:31,460 když kvízy jsou graded-- nebo, Omlouvám se, pokud psets jsou odstupňovány. 359 00:15:31,460 --> 00:15:34,120 Psets jsou obvykle se v poledne nebo v pátek. 360 00:15:34,120 --> 00:15:37,540 Tak jsem slíbit, že budu pokusit se dostat zpět k vám 361 00:15:37,540 --> 00:15:40,000 podle poledne následujícího pátek. 362 00:15:40,000 --> 00:15:44,950 >> Kdykoliv jsem Grade A pset, pošlu out oznámení na stupni knize 363 00:15:44,950 --> 00:15:47,070 že vám řekne své skóre si můžete prohlédnout on-line. 364 00:15:47,070 --> 00:15:52,022 Takže hned tento týden poté, co jsem dokončit třídění minulého týdne psets, 365 00:15:52,022 --> 00:15:54,230 vy dostanete e-mail Oznámení ti, 366 00:15:54,230 --> 00:15:55,870 hej je to kde na vás go zobrazit své třídy. 367 00:15:55,870 --> 00:15:57,680 A můžete vidět každý rozpis svých tříd. 368 00:15:57,680 --> 00:15:58,555 Můžete vidět připomínky. 369 00:15:58,555 --> 00:16:00,360 Oh, rychlá věc také. 370 00:16:00,360 --> 00:16:03,060 Komentář Sekce v velký kniha je místo, kde budu asi 371 00:16:03,060 --> 00:16:05,300 tráví většinu svého času třídění. 372 00:16:05,300 --> 00:16:07,094 Takže jedna věc, která je opravdu důležité, když 373 00:16:07,094 --> 00:16:09,010 kluci prohlížíte Vaše stupně na vašem psets 374 00:16:09,010 --> 00:16:11,400 není jen hledá na fyzické skóre 375 00:16:11,400 --> 00:16:14,630 ale také, že čas na opravdu číst mé komentáře. 376 00:16:14,630 --> 00:16:17,820 >> Často, který vám dává zpětnou vazbu o tom, jak jste řešení problému. 377 00:16:17,820 --> 00:16:20,480 Pokud potřebujete udělat, něco, co trochu lepší, 378 00:16:20,480 --> 00:16:24,080 konstruktivní kritika je obvykle nejlépe podat v těchto komentáři části. 379 00:16:24,080 --> 00:16:26,950 Takže, prosím, prosím, já jdu trávit čas psát komentáře. 380 00:16:26,950 --> 00:16:30,440 Prosím, bych opravdu si toho vážím jestli vy by četl tyto připomínky. 381 00:16:30,440 --> 00:16:31,170 DOBŘE. 382 00:16:31,170 --> 00:16:34,150 Bezva. 383 00:16:34,150 --> 00:16:34,680 >> Dobře. 384 00:16:34,680 --> 00:16:40,680 Tak jsme se chystáte začít mluvit a jen přezkoumání rychle 385 00:16:40,680 --> 00:16:45,040 některé z materiálu z týden nula jen tak jsme 386 00:16:45,040 --> 00:16:48,760 na pravé straně pro začínající problémy tento týden. 387 00:16:48,760 --> 00:16:52,600 Takže zatímco smyčka je jeden ze tří druhů smyček 388 00:16:52,600 --> 00:16:54,510 jsme diskutovali dříve v této třídě. 389 00:16:54,510 --> 00:16:57,060 >> Smyčka while nezbytně je psán v syntaxi 390 00:16:57,060 --> 00:17:00,666 kde, zatímco určité stavu, to opakovaně, že jo? 391 00:17:00,666 --> 00:17:02,040 Myslete na to v této grafice zde. 392 00:17:02,040 --> 00:17:04,780 Budete začínat ve určitý bod v kódu. 393 00:17:04,780 --> 00:17:09,030 Budeš vstoupit do stavu smyčky if-- Nemám víš-- x je menší než jedna. 394 00:17:09,030 --> 00:17:11,677 >> Pokud je to pravda, budete k provedení těla smyčky. 395 00:17:11,677 --> 00:17:14,010 A budete dál dělat že opět, znovu, 396 00:17:14,010 --> 00:17:17,900 nad a over-- což je důvod, proč je to loop-- dokud se váš stav se stává 397 00:17:17,900 --> 00:17:19,079 false. 398 00:17:19,079 --> 00:17:22,140 Takže tímto způsobem, while je jedním ze způsobů, jak jednodušších 399 00:17:22,140 --> 00:17:25,619 psát nějaký druh podmínky, že je třeba opakovat znovu a znovu a znovu. 400 00:17:25,619 --> 00:17:28,109 Jen si dejte pozor, kdykoli píšete nějaký druh smyčky 401 00:17:28,109 --> 00:17:32,140 že máte stav výstupních stejně jako aktualizaci bez ohledu na to 402 00:17:32,140 --> 00:17:36,714 je tak, aby vaše smyčka není jen spustit znovu a znovu donekonečna. 403 00:17:36,714 --> 00:17:38,630 V každém případě, budete se chcete ujistit, 404 00:17:38,630 --> 00:17:42,670 že měníte nějaký aspekt kódu nebo na konci smyčky 405 00:17:42,670 --> 00:17:46,680 jen aby se ujistil, že máte způsob, pro pokrok v dosahování stavu 406 00:17:46,680 --> 00:17:48,400 že chcete setkat na konec. 407 00:17:48,400 --> 00:17:50,239 Znamená to, že smysl pro všechny? 408 00:17:50,239 --> 00:17:52,530 My prostě nechci být zmítá v této spirále kde 409 00:17:52,530 --> 00:17:55,710 jdeme dokola a dokola a neexistuje žádný způsob, jak prolomit smyčky. 410 00:17:55,710 --> 00:17:58,844 A každý v podstatě smyčka má způsob, jak dělat to. 411 00:17:58,844 --> 00:17:59,344 DOBŘE. 412 00:17:59,344 --> 00:18:03,030 413 00:18:03,030 --> 00:18:06,060 >> Za druhé, mnozí z vás ve vašich Mario psets 414 00:18:06,060 --> 00:18:08,910 pravděpodobně musel zaměstnat tento typ smyčky. 415 00:18:08,910 --> 00:18:11,802 To je nazýváno dělat, zatímco smyčka. 416 00:18:11,802 --> 00:18:14,510 Za prvé, může mi někdo říct, jaký je rozdíl mezi úkoly 417 00:18:14,510 --> 00:18:16,586 while a když je smyčka? 418 00:18:16,586 --> 00:18:17,086 To jo. 419 00:18:17,086 --> 00:18:21,030 >> Diváků: Kutil while běží na prvním [neslyšitelných]. 420 00:18:21,030 --> 00:18:22,120 >> ANDI PENG: Jo, přesně tak. 421 00:18:22,120 --> 00:18:27,130 Takže dělat, zatímco smyčka vždy dělá, co je uvnitř úkolů, v závorkách 422 00:18:27,130 --> 00:18:30,520 tam a dělá, že podmínka před kontrolou the-- líto, 423 00:18:30,520 --> 00:18:32,940 Znamená to, že kód před kontrola pro podmínku. 424 00:18:32,940 --> 00:18:37,200 A to je zvláště důležité pro nás zde v této třídě, protože většina časy 425 00:18:37,200 --> 00:18:41,450 budeme chtít vyzvat uživatel na nějaký vstup. 426 00:18:41,450 --> 00:18:43,520 A pak, v závislosti na vstupní dávají nám, 427 00:18:43,520 --> 00:18:46,150 pak můžeme hodnotit, oh, dělat musíme je znovu výzvu? 428 00:18:46,150 --> 00:18:49,930 >> Takže Mario, pokud uživatel vám dal negativní výška, například, 429 00:18:49,930 --> 00:18:52,990 budete na první řádek a dělat, co je uvnitř. 430 00:18:52,990 --> 00:18:54,820 Pak budete kontrolovat chvíli. 431 00:18:54,820 --> 00:18:57,570 Víte, je negativní 1, je skutečnost, že kladné číslo? 432 00:18:57,570 --> 00:19:00,680 Pokud to není, já jdu dozadu a opakujte dělat a opakování 433 00:19:00,680 --> 00:19:03,950 a opakovat a opakovat, dokud nebudou Nakonec vám číslo, které se vám líbí, 434 00:19:03,950 --> 00:19:07,002 že všichni můžeme použít v našem kódu. 435 00:19:07,002 --> 00:19:09,210 Je to docela důležité, v podstatě žádný vstup uživatele. 436 00:19:09,210 --> 00:19:11,760 Mohu vám zaručit, jakýkoliv tentokrát v pset kde 437 00:19:11,760 --> 00:19:15,070 Vás žádáme o vstupu nějaký druh kódu, my jsme 438 00:19:15,070 --> 00:19:17,540 pravděpodobně bude, aby vám test případ, ve kterém jsme 439 00:19:17,540 --> 00:19:21,200 dám ti něco špatného, ​​že je to pokusí zlomit váš kód. 440 00:19:21,200 --> 00:19:25,044 >> Pokusíme-li se vás zeptat na vstupní an integer, můžeme jen dát řetězec 441 00:19:25,044 --> 00:19:26,460 a uvidíte, jak byste zvládnout. 442 00:19:26,460 --> 00:19:30,610 Pokud bychom vás požádat, abyste zaměstnat věku, vám může dát záporné číslo 443 00:19:30,610 --> 00:19:32,340 vidět, jak byste zvládnout. 444 00:19:32,340 --> 00:19:37,260 Jen se ujistěte, vy jste testováním případy, ve kterých se nechcete dostat to nejlepší 445 00:19:37,260 --> 00:19:38,590 vstup, řekněme. 446 00:19:38,590 --> 00:19:40,510 A dělat, zatímco smyčka je často nejlepší 447 00:19:40,510 --> 00:19:45,260 způsob, jak navrhnout svůj kód tak, že splňuje tento obor. 448 00:19:45,260 --> 00:19:45,760 DOBŘE. 449 00:19:45,760 --> 00:19:48,930 450 00:19:48,930 --> 00:19:49,470 >> DOBŘE. 451 00:19:49,470 --> 00:19:53,270 Takže to je pravděpodobně nejvíce Komplex smyčka ze tří 452 00:19:53,270 --> 00:19:54,990 že jsme se podíval na tak daleko. 453 00:19:54,990 --> 00:19:56,689 A zdá se, velmi děsivé na prvním místě. 454 00:19:56,689 --> 00:19:59,730 Ale já vám zaručit, jakmile vámi dostanete na kloub, jak používat pro smyčce, 455 00:19:59,730 --> 00:20:03,320 je to jedna z nejužitečnějších věcí, nejužitečnějších nástrojů ve vašem arzenálu 456 00:20:03,320 --> 00:20:05,300 pro posun vpřed v této třídě. 457 00:20:05,300 --> 00:20:09,920 >> Tak například, v Scratch, měli jsme tento velmi jednoduchý blok 458 00:20:09,920 --> 00:20:13,180 že právě řekl zopakovat jisté věty určitý počet opakování. 459 00:20:13,180 --> 00:20:16,260 Mimochodem, SAJ-- to je Scaz Andi Jason. 460 00:20:16,260 --> 00:20:18,740 My často podepsat naše e-maily Saj. 461 00:20:18,740 --> 00:20:20,360 Říkáme-li, Saj, nenechte se zmást. 462 00:20:20,360 --> 00:20:22,630 To jen my. 463 00:20:22,630 --> 00:20:28,600 >> Takže Scratch, jsme byli schopni mít blok, který řekl, opakuji Miluji Saj! 464 00:20:28,600 --> 00:20:29,430 10 krát. 465 00:20:29,430 --> 00:20:30,130 Velmi jednoduché. 466 00:20:30,130 --> 00:20:32,302 Logika, že je velmi, velmi jednoduše, že? 467 00:20:32,302 --> 00:20:35,260 Chci nejprve projít první čas a vidím, podruhé 468 00:20:35,260 --> 00:20:38,510 a vidím, potřetí, tak dále a tak dále, dokud nenarazíte na 10. 469 00:20:38,510 --> 00:20:41,960 >> A tak, jak bychom si představovat, že v kód je jen pomocí jednoduchého pro smyčky. 470 00:20:41,960 --> 00:20:45,440 Takže, budete deklarovat Váš variabilní tady, v tomto případě, 471 00:20:45,440 --> 00:20:46,349 s int. 472 00:20:46,349 --> 00:20:47,390 Budeme se jmenovat to i. 473 00:20:47,390 --> 00:20:49,500 Chystáme se inicializovat ji na hodnotu 0. 474 00:20:49,500 --> 00:20:52,490 A zastavení vydání je bude i je menší než 10. 475 00:20:52,490 --> 00:20:54,622 A aktualizace bude i ++. 476 00:20:54,622 --> 00:20:57,750 >> A v rámci smyčky, bude to vykonat až nakonec ji 477 00:20:57,750 --> 00:21:01,490 narazí na konec condition--, ve kterém případ, že to bude přerušení smyčky. 478 00:21:01,490 --> 00:21:04,600 Tam by měly být věci, které vás kluci mají všechny druhy neviděli 479 00:21:04,600 --> 00:21:07,270 a musel udělat pro váš problém nastavit jeden. 480 00:21:07,270 --> 00:21:12,310 Má někdo nějaké otázky, pokud jde o smyčky právě teď? 481 00:21:12,310 --> 00:21:12,930 DOBŘE. 482 00:21:12,930 --> 00:21:13,430 Skvělý. 483 00:21:13,430 --> 00:21:17,520 484 00:21:17,520 --> 00:21:18,620 >> DOBŘE. 485 00:21:18,620 --> 00:21:22,270 Takže pro ty z vás, kteří mají přečtěte pset spec pro tento týden 486 00:21:22,270 --> 00:21:27,690 víme, že budeme muset zaměstnávat něco, co nazývá ASCII a ASCII tabulky. 487 00:21:27,690 --> 00:21:32,380 David v přednášce přešel krátce jak počítače essentially-- všechno 488 00:21:32,380 --> 00:21:35,410 je kódován v počítači binární, v nul a jedniček. 489 00:21:35,410 --> 00:21:39,740 A tak, že počítače jsou schopny ukládat různé hodnoty navíc 490 00:21:39,740 --> 00:21:44,360 se nul a jedniček jsou prostřednictvím mapování tato čísla reprezentovat další číslice 491 00:21:44,360 --> 00:21:47,220 nebo v podstatě jiné znaky. 492 00:21:47,220 --> 00:21:49,810 >> Takže v tomto případě ASCII table-- vše, co dělá 493 00:21:49,810 --> 00:21:53,600 je mapa znaků nebo znaků, na čísla. 494 00:21:53,600 --> 00:21:57,385 Takže souboru zdrojového kódu v Váš computer-- to vidí, 495 00:21:57,385 --> 00:22:00,010 hej, parta nul a jedniček, nuly a jedničky, nuly a jedničky. 496 00:22:00,010 --> 00:22:02,350 To je to, co se skladuje v skutečné paměti vašeho počítače. 497 00:22:02,350 --> 00:22:04,750 >> Ale když my lidé chtějí komunikovat s počítačem, 498 00:22:04,750 --> 00:22:08,249 my want-- říkat, například, pokud chci velká písmena A, 499 00:22:08,249 --> 00:22:10,540 Budu potřebovat nějaký způsob, vyprávění počítač, oh, 500 00:22:10,540 --> 00:22:16,300 když jsem typ s velkým písmenem A, mám na mysli toto zastoupení v binární. 501 00:22:16,300 --> 00:22:22,260 >> A tak způsob, jak to udělat, je hodil libovolná, čemu se říká tabulku ASCII, 502 00:22:22,260 --> 00:22:25,020 kde jsme, jako lidé, as programátoři, před nějakým časem, 503 00:22:25,020 --> 00:22:28,660 jsme se rozhodli, že svévolně se chystá přiřadit tyto čísla 504 00:22:28,660 --> 00:22:30,960 Hodnoty těchto znaků. 505 00:22:30,960 --> 00:22:32,720 >> Takže vy můžete google tento online. 506 00:22:32,720 --> 00:22:37,120 Myslím si, že je tu odkaz na něj ve vašem pset-- jen mapa ASCII tabulky, ASCII 507 00:22:37,120 --> 00:22:37,720 stůl. 508 00:22:37,720 --> 00:22:40,722 Prostě to překládá binární Čísla do znaků. 509 00:22:40,722 --> 00:22:42,930 A to bude velmi užitečné pro váš problém set 510 00:22:42,930 --> 00:22:45,470 kdykoli budete chtít spočítat něco, nebo pokud vás 511 00:22:45,470 --> 00:22:47,880 chcete zobrazit určitý znaky nebo celá čísla 512 00:22:47,880 --> 00:22:50,327 nebo manipulovat určité znaky. 513 00:22:50,327 --> 00:22:52,160 Bude to velmi důležité, že jste všichni 514 00:22:52,160 --> 00:22:55,140 vědět, jak se orientovat tabulku ASCII. 515 00:22:55,140 --> 00:23:01,260 >> Tak například na velká písmena A je reprezentována počtem 65. 516 00:23:01,260 --> 00:23:04,207 A malá je zastoupen 97. 517 00:23:04,207 --> 00:23:07,040 Proto je důležité vědět, že Rozdíl mezi těmito dvěma hodnotami 518 00:23:07,040 --> 00:23:08,320 je 32. 519 00:23:08,320 --> 00:23:13,210 Častokrát, pokud potřebujete převést z vzájemně k sobě, je rozdíl 32. 520 00:23:13,210 --> 00:23:15,710 A nebojte se, pokud jste typ zmatený o tom na prvním místě. 521 00:23:15,710 --> 00:23:20,230 Půjdeme nad tím, jak bychom zaměstnávají to ve skutečném kódu. 522 00:23:20,230 --> 00:23:24,700 523 00:23:24,700 --> 00:23:26,380 >> DOBŘE. 524 00:23:26,380 --> 00:23:30,770 Takže pro ty z vás, s notebooky ven, neváhejte a vytáhnout tabulku ASCII, 525 00:23:30,770 --> 00:23:36,030 proto, že tyto budou pravděpodobně vyžadují vy odkazovat 526 00:23:36,030 --> 00:23:38,100 jaké postavy jsou. 527 00:23:38,100 --> 00:23:38,640 DOBŘE. 528 00:23:38,640 --> 00:23:42,840 >> Tak s vědomím, že určitá Pro znaky na určitá čísla, 529 00:23:42,840 --> 00:23:47,240 kdybych běžet jen první řádek, který code-- printf A, 530 00:23:47,240 --> 00:23:50,900 malá písmena a, minus velká písmena A. Má někdo 531 00:23:50,900 --> 00:23:55,880 mají hádat o tom, co by bylo vytisknout z obrazovky právě teď? 532 00:23:55,880 --> 00:23:58,190 >> Tak v první řadě, co dělá Malá písmena představují? 533 00:23:58,190 --> 00:24:00,990 To, co je to číslo zakódován v tabulce ASCII. 534 00:24:00,990 --> 00:24:01,490 Litovat? 535 00:24:01,490 --> 00:24:02,630 >> Diváků: 97? 536 00:24:02,630 --> 00:24:03,630 >> ANDI PENG: 97, velký. 537 00:24:03,630 --> 00:24:05,077 A co je s velkým písmenem A? 538 00:24:05,077 --> 00:24:06,330 >> Diváků: 65. 539 00:24:06,330 --> 00:24:08,255 >> ANDI PENG: Takže to, co je 97 mínus 65? 540 00:24:08,255 --> 00:24:09,227 >> Diváků: 32. 541 00:24:09,227 --> 00:24:09,810 ANDI PENG: OK. 542 00:24:09,810 --> 00:24:13,530 Tak co vy na to bude stane, když vstup, který řádek kódu 543 00:24:13,530 --> 00:24:14,670 do mého počítače? 544 00:24:14,670 --> 00:24:17,981 545 00:24:17,981 --> 00:24:19,896 >> Diváků: [Neslyšitelné]. 546 00:24:19,896 --> 00:24:21,020 ANDI PENG: Je nám líto, ozvěte se. 547 00:24:21,020 --> 00:24:22,520 Bez obav. 548 00:24:22,520 --> 00:24:25,750 Jedná se o velmi bezpečný životní prostředí, bez fotoaparátu. 549 00:24:25,750 --> 00:24:27,550 Všichni budeme to-- bez starostí. 550 00:24:27,550 --> 00:24:30,940 Jen my všichni budeme předstírat, že je to jen my zchlazení v této místnosti. 551 00:24:30,940 --> 00:24:31,480 Bez obav. 552 00:24:31,480 --> 00:24:33,410 No otázka je příliš hloupý. 553 00:24:33,410 --> 00:24:35,300 Žádná odpověď je hloupá odpověď. 554 00:24:35,300 --> 00:24:38,260 Jsem asi bude dělat chyby V průběhu mého učení. 555 00:24:38,260 --> 00:24:40,740 Vážně, chlapi, jen rychle odpovědět na to. 556 00:24:40,740 --> 00:24:43,092 Buďte si jisti, v sobě, víš? 557 00:24:43,092 --> 00:24:43,800 Tak co to bylo? 558 00:24:43,800 --> 00:24:47,990 Kdo řekl, že poslední odpověď? 559 00:24:47,990 --> 00:24:48,540 DOBŘE. 560 00:24:48,540 --> 00:24:50,380 Shout, že pěkné a jasné. 561 00:24:50,380 --> 00:24:51,220 >> Diváků: 32? 562 00:24:51,220 --> 00:24:51,850 >> ANDI PENG: 32. 563 00:24:51,850 --> 00:24:54,141 OK, pojďme spustit tento kód a uvidíme, jestli to je to, co se stane. 564 00:24:54,141 --> 00:25:00,260 565 00:25:00,260 --> 00:25:00,760 DOBŘE. 566 00:25:00,760 --> 00:25:03,300 567 00:25:03,300 --> 00:25:06,360 Tak jako vy můžete druh vidět, typické notaci jsem 568 00:25:06,360 --> 00:25:12,250 nastavit zde, jak bychom zaměstnáváme nějaký druh programu v našem počítači. 569 00:25:12,250 --> 00:25:14,770 Máme hlavní funkci v naší hlavní funkce. 570 00:25:14,770 --> 00:25:17,265 Já jsem prostě jít ke kopírování a vložte tento řádek kódu. 571 00:25:17,265 --> 00:25:21,082 572 00:25:21,082 --> 00:25:23,540 Rovněž buďte opatrní, když kluci kopírování a vkládání kódu. 573 00:25:23,540 --> 00:25:28,750 Někdy se některé subjekty nemají vložit přes správně. 574 00:25:28,750 --> 00:25:31,397 V tomto případě je minus znamení byl vlastně pomlčka. 575 00:25:31,397 --> 00:25:32,980 A tak se počítač ani si to vyzvednout. 576 00:25:32,980 --> 00:25:35,870 Takže jsem se musel vrátit a fyzicky přepište to. 577 00:25:35,870 --> 00:25:37,846 Jen si dejte pozor, když vy děláte to. 578 00:25:37,846 --> 00:25:41,178 579 00:25:41,178 --> 00:25:42,660 >> DOBŘE. 580 00:25:42,660 --> 00:25:43,980 Chystáme se spustit tohle. 581 00:25:43,980 --> 00:25:45,670 Takže jdeme na CD do našeho section2. 582 00:25:45,670 --> 00:25:50,470 583 00:25:50,470 --> 00:25:52,030 Svolal jsem tento program asciimath. 584 00:25:52,030 --> 00:25:55,690 Takže pamatujte, že když jsme se spustit některý Program, chceme nejprve zkompilovat 585 00:25:55,690 --> 00:25:57,150 spuštěním to prostřednictvím naší značce. 586 00:25:57,150 --> 00:26:00,030 A pak chceme skutečně spustit Program tím, že dělá DOT-lomítko. 587 00:26:00,030 --> 00:26:01,280 Takže budeme ./asciimath. 588 00:26:01,280 --> 00:26:05,780 589 00:26:05,780 --> 00:26:06,590 >> Dobře, jdeme tam. 590 00:26:06,590 --> 00:26:07,410 A vidíme, 32. 591 00:26:07,410 --> 00:26:07,930 Výborně. 592 00:26:07,930 --> 00:26:10,340 Zasloužíte si bonbon. 593 00:26:10,340 --> 00:26:11,160 Candy pro vás. 594 00:26:11,160 --> 00:26:11,900 Litovat. 595 00:26:11,900 --> 00:26:13,100 Dobře. 596 00:26:13,100 --> 00:26:13,670 DOBŘE. 597 00:26:13,670 --> 00:26:18,070 Takže se můžeme vrátit k našemu příkladu zde. 598 00:26:18,070 --> 00:26:23,530 599 00:26:23,530 --> 00:26:24,345 Aah, no. 600 00:26:24,345 --> 00:26:29,147 601 00:26:29,147 --> 00:26:31,090 Aah. 602 00:26:31,090 --> 00:26:32,490 DOBŘE. 603 00:26:32,490 --> 00:26:34,610 Já jsem prostě jít, aby to takhle. 604 00:26:34,610 --> 00:26:48,520 605 00:26:48,520 --> 00:26:51,240 DOBŘE. 606 00:26:51,240 --> 00:26:51,740 DOBŘE. 607 00:26:51,740 --> 00:26:55,340 Tak jako vy můžete vidět, můžeme to udělat spousta velmi zajímavých věcí, 608 00:26:55,340 --> 00:26:58,880 spousta velmi cool věcí, hodně velmi komplikované věci zahrnující 609 00:26:58,880 --> 00:27:02,720 Znaky a čísla ASCII. 610 00:27:02,720 --> 00:27:05,890 Jakmile se dostanete dolů na linku pět, to je hodně sledovat spolu. 611 00:27:05,890 --> 00:27:07,640 Nebudeme jít prostřednictvím sekce. 612 00:27:07,640 --> 00:27:10,720 Neváhejte a, pokud je to možné, Důvod, proč na papír 613 00:27:10,720 --> 00:27:14,750 nejprve o tom, co by mělo být děje, když zadáte takový řetězec hodnot. 614 00:27:14,750 --> 00:27:19,720 Například, v tomto posledním řádku, máme Z-, která představuje určitý number-- 615 00:27:19,720 --> 00:27:24,740 je-- což také představuje některé number-- navíc 1 módulos 26 616 00:27:24,740 --> 00:27:26,750 a malá písmena a. 617 00:27:26,750 --> 00:27:29,220 >> Pokud jste kluci číst dál Přes tyto, vám 618 00:27:29,220 --> 00:27:34,009 může vidět vzor přijít v Jak jsme manipulaci kód. 619 00:27:34,009 --> 00:27:36,050 Velmi, velmi naznačují po část vy všichni 620 00:27:36,050 --> 00:27:38,160 kluci do toho pusťte a vstup Všichni, kdo ve vašem počítači 621 00:27:38,160 --> 00:27:40,060 a uvidíte, jaký druh Čísla jsou coming out 622 00:27:40,060 --> 00:27:43,090 a úvaha, proč přes to jsou děje, protože pro vaše psets 623 00:27:43,090 --> 00:27:45,060 bude to opravdu důležité, abyste pochopili 624 00:27:45,060 --> 00:27:47,132 proč některé věci se dějí. 625 00:27:47,132 --> 00:27:48,590 Všechny tyto diapozitivů bude on-line. 626 00:27:48,590 --> 00:27:51,510 Takže žádné obavy o snaze fyzicky kopírovat si poznámky. 627 00:27:51,510 --> 00:27:52,510 Všechno je online. 628 00:27:52,510 --> 00:27:54,050 To samo o sobě část bude on-line. 629 00:27:54,050 --> 00:27:57,500 Celý můj zdrojový kód, který Běžím bude on-line. 630 00:27:57,500 --> 00:27:58,180 To jo. 631 00:27:58,180 --> 00:27:59,430 Věděli jste stále máte dotaz? 632 00:27:59,430 --> 00:28:00,587 Diváků: Co je módulos? 633 00:28:00,587 --> 00:28:01,170 ANDI PENG: OK. 634 00:28:01,170 --> 00:28:05,620 Takže modulo je operátor, který to bude být dost důležité pset vašich kluci Dětské 635 00:28:05,620 --> 00:28:06,690 sem. 636 00:28:06,690 --> 00:28:12,280 Takže způsob, že provozovatelé v C a v programování práci 637 00:28:12,280 --> 00:28:16,360 je to, že jste to, co se nazývá Divize symbol a symbol modul, 638 00:28:16,360 --> 00:28:18,350 což je stejně jako znak procent. 639 00:28:18,350 --> 00:28:24,840 >> Tak v C, když budeš dělat celé číslo děleno celé číslo s lomítkem, 640 00:28:24,840 --> 00:28:27,720 C má tendenci chcete snížit off všechny desetinných míst, 641 00:28:27,720 --> 00:28:30,290 proto, že celé číslo chce převést na celé číslo. 642 00:28:30,290 --> 00:28:33,550 To nebude chtít být double s partou desetinná všechno po něm. 643 00:28:33,550 --> 00:28:39,322 >> Takže pokud mám 3 děleno 2, bude to odříznout 0,5 a jen dát 1. 644 00:28:39,322 --> 00:28:41,530 Tak to je něco, co bude velmi opatrní, když jste 645 00:28:41,530 --> 00:28:45,294 dělá nějaký druh matematiky v programování, je to, že čísla dostanete 646 00:28:45,294 --> 00:28:47,210 nemusí být čísla že jste si mysleli, 647 00:28:47,210 --> 00:28:50,190 což je důvod, proč zaokrouhlování ve vašem Poslední pset je tak důležité. 648 00:28:50,190 --> 00:28:51,980 >> Modulo vám dává zbytek. 649 00:28:51,980 --> 00:28:56,200 Tak například, pokud jsem udělal 3 modulo 2-- tak 3 procenta znamení 2-- 650 00:28:56,200 --> 00:28:58,020 to by vám na zbytek tohoto. 651 00:28:58,020 --> 00:29:00,460 Takže 3 děleno 2 je 1.5. 652 00:29:00,460 --> 00:29:01,410 Je to 1 Zbývající část 1. 653 00:29:01,410 --> 00:29:04,600 To by vám na 1, který je na zbytek tohoto. 654 00:29:04,600 --> 00:29:07,361 >> Takže když vy jste v pohybu ze stolu ASCII, 655 00:29:07,361 --> 00:29:09,735 modulo skončí na něco, co je velmi důležité, 656 00:29:09,735 --> 00:29:11,240 a budeme diskutovat, že později. 657 00:29:11,240 --> 00:29:17,750 658 00:29:17,750 --> 00:29:19,040 >> DOBŘE. 659 00:29:19,040 --> 00:29:27,300 Takže něco, co je hezká, docela nový a dost jedinečné 660 00:29:27,300 --> 00:29:31,920 že jsme o tom mluvili týden koncept toho, co je pole. 661 00:29:31,920 --> 00:29:34,370 Takže pole je první druh datové struktury 662 00:29:34,370 --> 00:29:36,320 že budeme setkávají v této třídě. 663 00:29:36,320 --> 00:29:40,010 Všechna datová struktura je, je nějaký svévolný, 664 00:29:40,010 --> 00:29:43,370 doslova věci, jako je struktura že my jako programátoři vytvořili, 665 00:29:43,370 --> 00:29:47,890 že jsme vložili do našeho kódu, který může obsahovat další kusy kódu. 666 00:29:47,890 --> 00:29:51,090 >> Takže v tomto smyslu, array-- myslet na to jako kartotéce, 667 00:29:51,090 --> 00:29:53,470 kde pokud otevřete jiný police z vašeho kartotéce, 668 00:29:53,470 --> 00:29:55,630 máte přístup různé věci. 669 00:29:55,630 --> 00:29:58,630 V paměti, pole je jen to, totéž na vašem počítači. 670 00:29:58,630 --> 00:30:01,730 Můžete mít různé blocks-- my nazývají indices-- z pole. 671 00:30:01,730 --> 00:30:04,210 Je to stejně jako blok, polici paměti 672 00:30:04,210 --> 00:30:07,580 že jsme vytvořili v rámci svých počítač, který můžete zadat 673 00:30:07,580 --> 00:30:10,270 některé věci v různých prostorech. 674 00:30:10,270 --> 00:30:18,000 >> Takže s množstvím, vy vždy musí specify-- 675 00:30:18,000 --> 00:30:22,360 musíte zadat deklarování pole v následujícím formátu. 676 00:30:22,360 --> 00:30:24,290 Budeš jako první určit typ dat 677 00:30:24,290 --> 00:30:25,831 že chcete vytvořit z pole. 678 00:30:25,831 --> 00:30:28,870 Pokud chci pole celých čísel, Já dám int právě tam. 679 00:30:28,870 --> 00:30:32,079 Pokud chci pole řetězců, Chystám se dát řetězce tam, 680 00:30:32,079 --> 00:30:34,995 jméno vašeho pole, a poté budete mít hranaté závorky. 681 00:30:34,995 --> 00:30:39,580 A uvnitř hranatých závorek, že jste bude mít velikost vašeho pole. 682 00:30:39,580 --> 00:30:42,900 >> Něco, co je opravdu důležité, mějte na paměti při vytváření polí je 683 00:30:42,900 --> 00:30:46,530 to, že jakmile se vytvořit pole, se tato velikost nezmění. 684 00:30:46,530 --> 00:30:50,180 Takže pokud víte, že právě teď Máte pole o velikosti 10, 685 00:30:50,180 --> 00:30:54,550 víte, že budu mít 10 buněk během nebo 10 ukazatelů v rámci tohoto pole, 686 00:30:54,550 --> 00:30:56,830 a to nikdy rozšířit nebo zmenšit 687 00:30:56,830 --> 00:30:59,850 bez ohledu na to, a že je tu v současné době jen 10 bloků prostoru 688 00:30:59,850 --> 00:31:04,490 přidělené v paměti, která může uložit do 10 věcí, o co jste dal. 689 00:31:04,490 --> 00:31:08,790 >> Takže tímto způsobem, typ dat pole, datová struktura, která je pole 690 00:31:08,790 --> 00:31:13,392 je velmi odlišná od některých jiných budeme pokrývat později v tomto kurzu. 691 00:31:13,392 --> 00:31:15,170 To jo. 692 00:31:15,170 --> 00:31:20,080 Například, pokud jste chtěli vytvoření pole o velikosti 3, které 693 00:31:20,080 --> 00:31:23,670 obsažené proměnné integer-- oh, promiň, z temperature-- 694 00:31:23,670 --> 00:31:25,640 a teploty, z Samozřejmě, že je celé číslo. 695 00:31:25,640 --> 00:31:28,710 >> Takže bychom vytvářet int, což je datový typ, co chceme uložit. 696 00:31:28,710 --> 00:31:32,680 Budeme volat toto teplotám kvůli nomenklatury pojmenování 697 00:31:32,680 --> 00:31:34,200 něco, co jsme všichni pochopili. 698 00:31:34,200 --> 00:31:35,900 A budeme mít hranaté závorky. 699 00:31:35,900 --> 00:31:37,200 A chceme tři čísla. 700 00:31:37,200 --> 00:31:39,000 Takže jdeme dát Tři uvnitř ní. 701 00:31:39,000 --> 00:31:41,041 >> Něco, co je opravdu důležité mít na paměti, 702 00:31:41,041 --> 00:31:43,530 je to, že pole jsou indexovány nulu. 703 00:31:43,530 --> 00:31:46,410 Vše, co znamená, že vás začít s indexem 0, 704 00:31:46,410 --> 00:31:49,800 a můžete spustit nejvýše prostřednictvím Velikost pole minus 1. 705 00:31:49,800 --> 00:31:52,730 Tak například zde, jsme mají celou řadu velikosti 3. 706 00:31:52,730 --> 00:31:54,680 Bude to být schopni držet tři hodnoty. 707 00:31:54,680 --> 00:31:57,450 Ale čísla, které themselves-- číslo, pole, že index, 708 00:31:57,450 --> 00:32:00,271 pole, jsou 0 až 2. 709 00:32:00,271 --> 00:32:03,520 Tak kluci, být opravdu, ale opravdu opatrný, když jdete do vašich problémů stanovených 710 00:32:03,520 --> 00:32:06,500 a vytvořit nějaký druh pole, protože mnoho časů to je 711 00:32:06,500 --> 00:32:08,490 opravdu, ale opravdu snadné zapomenout, že. 712 00:32:08,490 --> 00:32:11,840 Já vlastně nemám index 3, a to v současné době právě já 713 00:32:11,840 --> 00:32:13,130 mají index 2. 714 00:32:13,130 --> 00:32:16,046 A pokud se pokusíte Přístup třetí index, 715 00:32:16,046 --> 00:32:18,170 že to bude to, co je volal null zakončení. 716 00:32:18,170 --> 00:32:19,990 Nebude to ve skutečnosti existují v matici. 717 00:32:19,990 --> 00:32:21,781 A je počítač nebude líbit, že. 718 00:32:21,781 --> 00:32:24,570 Takže buďte opatrní, kdykoli máte přístup k věci, jen 719 00:32:24,570 --> 00:32:28,070 aby zajistily, že si pamatujete že pole jsou nula-indexovány. 720 00:32:28,070 --> 00:32:28,880 >> DOBŘE. 721 00:32:28,880 --> 00:32:34,030 Takže první příklad je jen Jeden způsob, jak vytvořit pole. 722 00:32:34,030 --> 00:32:36,790 Druhý příklad mám Níže je jen samostatný způsob 723 00:32:36,790 --> 00:32:40,210 vytvoření toho, co je stejná data struktura, která jsme právě zadává. 724 00:32:40,210 --> 00:32:44,347 Takže místo toho, fyzicky běží až do konce a uvedení teploty 0 725 00:32:44,347 --> 00:32:47,180 rovná cokoliv, teplota 1 odpovídá za jakýchkoliv, teplotní 2 rovná 726 00:32:47,180 --> 00:32:50,950 cokoliv, mohl jsem vlastně jen přímo vytvořit to všechno na jednom řádku 727 00:32:50,950 --> 00:32:53,010 do teplotních hranatých závorek rovná. 728 00:32:53,010 --> 00:32:56,536 >> A upozornění v tomto případě nepotřebujete určit, jak velký je váš pole je, 729 00:32:56,536 --> 00:32:59,160 protože počítač to bude projít a vidět, že je tu 730 00:32:59,160 --> 00:33:01,570 tři prvky v těchto složených závorkách. 731 00:33:01,570 --> 00:33:04,000 A že to bude vědět, OK, Potřebuji pole o velikosti 3. 732 00:33:04,000 --> 00:33:07,440 Nebudete muset Vstup to následujícím způsobem. 733 00:33:07,440 --> 00:33:10,170 >> A také, jo, že cesta. 734 00:33:10,170 --> 00:33:12,610 Má někdo otázky o tom, jak děláme pole 735 00:33:12,610 --> 00:33:17,391 nebo jak struktura pole funguje? 736 00:33:17,391 --> 00:33:17,890 To jo. 737 00:33:17,890 --> 00:33:18,806 >> Diváků: [Neslyšitelné]? 738 00:33:18,806 --> 00:33:21,649 739 00:33:21,649 --> 00:33:22,690 ANDI PENG: Jo, přesně tak. 740 00:33:22,690 --> 00:33:26,150 Takže pokud jste byli deklarovat a inicializovat pole následující metoda, 741 00:33:26,150 --> 00:33:28,477 což je druhý způsob, můžete jen nechat ty. 742 00:33:28,477 --> 00:33:30,310 A počítač automaticky ví, že 743 00:33:30,310 --> 00:33:33,950 je třeba počítat, kolik prvků jsou v těchto složených závorek, oddělená 744 00:33:33,950 --> 00:33:34,930 čárkami. 745 00:33:34,930 --> 00:33:37,517 >> Tak tady vidí 65, 87, 30. 746 00:33:37,517 --> 00:33:39,600 Takže počítač ví, oh, tam tři celá čísla. 747 00:33:39,600 --> 00:33:45,960 Vím, že vytvořit název pole Teplota se třemi prvky v něm. 748 00:33:45,960 --> 00:33:46,590 Dobrá otázka. 749 00:33:46,590 --> 00:33:47,090 To jo. 750 00:33:47,090 --> 00:33:51,590 >> Diváků: Není to možné vytvořit pole s různými typy dat 751 00:33:51,590 --> 00:33:53,021 které by mohly být zapsány do něj? 752 00:33:53,021 --> 00:33:56,746 Například, s celými čísly [neslyšitelných]? 753 00:33:56,746 --> 00:33:59,120 ANDI PENG: Pro účely této třídy, ne, právě teď. 754 00:33:59,120 --> 00:34:03,070 Při vytváření dat strukturu jako pole, 755 00:34:03,070 --> 00:34:04,990 mluvíte počítač, hej, potřebuju tě 756 00:34:04,990 --> 00:34:08,159 na tolik přidělit paměť v mém pevném disku, 757 00:34:08,159 --> 00:34:10,690 se každá buňka být určitý počet bitů. 758 00:34:10,690 --> 00:34:13,429 >> Nezapomeňte, jsme se naučili v týdnu nula, že různé údaje 759 00:34:13,429 --> 00:34:15,300 typy mají různé velikosti? 760 00:34:15,300 --> 00:34:17,630 Tak například řetězec je do různé míry 761 00:34:17,630 --> 00:34:20,719 prostoru než char, který je jiný množství prostoru 762 00:34:20,719 --> 00:34:21,830 z celé číslo. 763 00:34:21,830 --> 00:34:25,534 A tak pokud nechcete specifikovat a vy kombinovat, jaké druhy proměnných 764 00:34:25,534 --> 00:34:27,659 Máte počítač se bude velmi zmatený. 765 00:34:27,659 --> 00:34:29,950 A to nebude vědět, kolik paměti dát. 766 00:34:29,950 --> 00:34:32,480 Takže pro účely práva Nyní mohou pouze počítače 767 00:34:32,480 --> 00:34:36,120 rozpoznat jeden typ pole. 768 00:34:36,120 --> 00:34:37,940 Dobrá otázka. 769 00:34:37,940 --> 00:34:38,440 DOBŘE. 770 00:34:38,440 --> 00:34:45,179 771 00:34:45,179 --> 00:34:47,120 >> Tak přirozeně se Druhá otázka, máme 772 00:34:47,120 --> 00:34:50,760 Je dobře, teď, když jsme vytvořen pole a my jsme dát všechny tyto věci 773 00:34:50,760 --> 00:34:54,190 v poli, jak jsme bude mít přístup? 774 00:34:54,190 --> 00:34:59,710 Tak typická struktura, že vždy přístup pole je naše milá pro smyčce. 775 00:34:59,710 --> 00:35:03,830 Slibuji vám, hoši, že budeme vidět hodně tohohle chlapíka tady. 776 00:35:03,830 --> 00:35:06,470 >> V podstatě, kdykoliv budete chtít vložit hodnoty do pole 777 00:35:06,470 --> 00:35:09,940 nebo chcete-li přístup k nim je Nejlepší způsob, jak to je pro smyčce, 778 00:35:09,940 --> 00:35:13,730 proto, že v cyklu for, ty vím, kolikrát jste 779 00:35:13,730 --> 00:35:17,290 bude chtít projít pole, proto, že máte stop vydání, ne? 780 00:35:17,290 --> 00:35:19,680 A pokaždé, když spustíte pomocí můžete přistupovat 781 00:35:19,680 --> 00:35:21,310 jiný prvek pole. 782 00:35:21,310 --> 00:35:26,920 >> A také, to je důvod, proč typicky začneme dotazy pro smyčky na hodnotu 0, 783 00:35:26,920 --> 00:35:30,080 protože při přístupu polí, můžete přistupovat k nulové index. 784 00:35:30,080 --> 00:35:32,070 A tak se vyrovná velmi pěkně. 785 00:35:32,070 --> 00:35:35,295 Vy mohou chtěli psát pro int i = 1. 786 00:35:35,295 --> 00:35:37,330 i je menší než nebo roven 3. 787 00:35:37,330 --> 00:35:39,890 >> Ale to by nefungovalo úplně as Tak tady, protože jste jen 788 00:35:39,890 --> 00:35:42,010 mají prvky 0, 1 a 2. 789 00:35:42,010 --> 00:35:45,815 A tak pokud jste se začít Váš i na prvku 1, 2, a 3, 790 00:35:45,815 --> 00:35:48,440 budete skončit běh mimo hranice svého pole, 791 00:35:48,440 --> 00:35:50,440 a špatné věci se bude dít. 792 00:35:50,440 --> 00:35:54,480 >> Takže doufám, že vy vidět segue proč v předchozích třídách 793 00:35:54,480 --> 00:35:58,560 jsme učili vám kluci, jak spustit a Formátování pro smyčce tak, že jsme byli. 794 00:35:58,560 --> 00:36:01,900 Je to proto, že nyní máme přešla do polí, 795 00:36:01,900 --> 00:36:06,760 můžete vidět, proč 0 propůjčuje sama o sobě velmi pěkně k přístupu. 796 00:36:06,760 --> 00:36:09,880 >> Takže způsob, jak to udělat, je, že jsem that-- stačí vytisknout to tady kvůli 797 00:36:09,880 --> 00:36:10,830 tisku to. 798 00:36:10,830 --> 00:36:13,750 Ale já mám svou zástupnou, čárka. 799 00:36:13,750 --> 00:36:15,645 A skutečný přistupující část se děje. 800 00:36:15,645 --> 00:36:17,520 Název pole byl nazýván teplota. 801 00:36:17,520 --> 00:36:21,570 Takže je to teplota a i-tý prvek pole. 802 00:36:21,570 --> 00:36:24,400 >> Tak jako pro smyčka prochází, to bude začínat na 0 ° C. 803 00:36:24,400 --> 00:36:27,640 Bude to pro vytištění 0. index tohoto pole. 804 00:36:27,640 --> 00:36:29,599 Pak to bude tisknout out prvního prvku. 805 00:36:29,599 --> 00:36:31,431 Pak to bude tisknout z druhé. 806 00:36:31,431 --> 00:36:32,880 A pak budeme zlomit. 807 00:36:32,880 --> 00:36:36,718 Je jasné, na každý jak se to děje? 808 00:36:36,718 --> 00:36:37,217 Skvělý. 809 00:36:37,217 --> 00:36:43,230 810 00:36:43,230 --> 00:36:44,100 >> Dobře. 811 00:36:44,100 --> 00:36:47,270 Takže tady máme způsob, jak řka, pokud bychom nechtěli 812 00:36:47,270 --> 00:36:50,020 na hard-kódu mě in-- jako programátor. 813 00:36:50,020 --> 00:36:53,320 Nechtěl jsem, aby skutečně fyzicky dal v každém jednotlivém prvku 814 00:36:53,320 --> 00:36:54,020 tohoto pole. 815 00:36:54,020 --> 00:36:56,500 Kdybych chtěl, aby místo toho mají vstupní uživatelské hodnoty, 816 00:36:56,500 --> 00:36:58,100 to, co je nejlepší způsob, jak to udělat? 817 00:36:58,100 --> 00:37:00,920 >> No, tady jsem vytvořil tento krásný funkce, 818 00:37:00,920 --> 00:37:03,560 , ve kterém mohu prohlásit pole. 819 00:37:03,560 --> 00:37:06,210 Tak int scores-- pojďme jen říct, chceme, aby se 820 00:37:06,210 --> 00:37:10,660 polem, které držel jakostí všechny 18 studentů zde v této části. 821 00:37:10,660 --> 00:37:12,670 Myslím si, že máme trochu více než 18 dětí dnes. 822 00:37:12,670 --> 00:37:16,460 Ale například příčinu, pojďme se jen předpokládat, jsme měli 18. 823 00:37:16,460 --> 00:37:21,580 Chtěl bych vytvořit název pole skóre s typu int, protože skóre, samozřejmě, 824 00:37:21,580 --> 00:37:22,987 jsou čísla. 825 00:37:22,987 --> 00:37:24,820 A já budu mít 18 v hranatých závorkách, 826 00:37:24,820 --> 00:37:29,900 protože to je to, kolik studentů I chtějí mít možnost ukládat skóre. 827 00:37:29,900 --> 00:37:32,206 >> A jak já bych naplnit pole je, že bych 828 00:37:32,206 --> 00:37:35,572 spusťte jej přes smyčky for, ze Samozřejmě, kde 0 je mým 0. index. 829 00:37:35,572 --> 00:37:38,030 A pak s 18 být mým zastavení vydání, protože tam je 830 00:37:38,030 --> 00:37:39,690 18 prvků v poli. 831 00:37:39,690 --> 00:37:44,620 A pak budu dělat printf, Enter skóre pro student-- bla tlachy. 832 00:37:44,620 --> 00:37:51,171 >> Může mi někdo říct, proč tady jsem si tisk i plus 1, a ne já? 833 00:37:51,171 --> 00:37:52,920 Je to trochu trik otázka, opravdu ne. 834 00:37:52,920 --> 00:37:56,020 To není ve skutečnosti fyzicky ovlivňují chod kódu. 835 00:37:56,020 --> 00:37:56,520 To jo. 836 00:37:56,520 --> 00:37:57,909 >> Diváků: [Neslyšitelné] 0? 837 00:37:57,909 --> 00:37:58,950 ANDI PENG: Jo, přesně tak. 838 00:37:58,950 --> 00:38:02,620 Je to trochu trapné říkat, hej, jste 0. studentka v této třídě. 839 00:38:02,620 --> 00:38:03,780 Je to trochu divné. 840 00:38:03,780 --> 00:38:08,340 Takže nás, jako lidé, to opravdu jako přemýšlet o tom, jak počítače myslet. 841 00:38:08,340 --> 00:38:10,930 Takže i když v počítač, je to ukládání hodnot 842 00:38:10,930 --> 00:38:13,310 v 0-tého indexu, kdy Jsme lidé, my opravdu 843 00:38:13,310 --> 00:38:15,520 Líbí se odkazovat na sebe jako nula. 844 00:38:15,520 --> 00:38:18,119 Takže když jsem se stačí vytisknout to, Jdu k tisku a přidat 845 00:38:18,119 --> 00:38:19,410 1 jen z důvodu jasnosti. 846 00:38:19,410 --> 00:38:22,447 Takže když jsem tisknout, já budu schopna vytisknout studenty 1 až 18. 847 00:38:22,447 --> 00:38:24,530 To není ve skutečnosti vliv běh kódu 848 00:38:24,530 --> 00:38:27,110 jakýmkoliv způsobem, jak vytisknout. 849 00:38:27,110 --> 00:38:30,380 >> Ale pozor, když jste ve skutečnosti přístup pole. 850 00:38:30,380 --> 00:38:32,780 Když vidíte skóre i, Všimněte si, že jsem vlastně 851 00:38:32,780 --> 00:38:38,200 přístupu k 0. index a ne 1 plus 0-- nebo 1 plus 1, 852 00:38:38,200 --> 00:38:45,530 v tomto případě, tak index že je to vlastně jasné. 853 00:38:45,530 --> 00:38:48,870 Jsou všichni trochu OK na jak to běží přes 854 00:38:48,870 --> 00:38:51,470 a s každým indexem Jsem uvedení hodnoty do pole 855 00:38:51,470 --> 00:38:55,340 a vytvoření pole s 18 čísel že uživatel bude vstup? 856 00:38:55,340 --> 00:38:58,780 857 00:38:58,780 --> 00:38:59,821 DOBŘE. 858 00:38:59,821 --> 00:39:00,321 Bezva. 859 00:39:00,321 --> 00:39:05,380 860 00:39:05,380 --> 00:39:07,400 >> DOBŘE. 861 00:39:07,400 --> 00:39:12,220 Nyní přejdeme na něco, co je docela relevantní pro tento kus nastavena stejně. 862 00:39:12,220 --> 00:39:15,020 Vím, že v přednášce, David-- Omlouvám se, jste měli dotaz? 863 00:39:15,020 --> 00:39:16,840 >> Diváků: Můžeš to zvětšit? 864 00:39:16,840 --> 00:39:18,080 >> ANDI PENG: Jo, tak jsem se snažil. 865 00:39:18,080 --> 00:39:18,788 Ale já nevím. 866 00:39:18,788 --> 00:39:21,437 Z nějakého důvodu, to verze aplikace PowerPoint 867 00:39:21,437 --> 00:39:23,270 je opravdu nefunguje dobře s displejem. 868 00:39:23,270 --> 00:39:25,260 Takže jsme jen tak aby to takhle. 869 00:39:25,260 --> 00:39:27,280 Všechny tyto budou odeslány online. 870 00:39:27,280 --> 00:39:28,218 Omlouváme se, chlapi. 871 00:39:28,218 --> 00:39:30,090 To jo. 872 00:39:30,090 --> 00:39:30,980 DOBŘE. 873 00:39:30,980 --> 00:39:35,530 >> Takže můžeme mít i řetězce. 874 00:39:35,530 --> 00:39:39,320 Takže pokud vy skutečně notice-- I vím, Rob šel přes to v této přednášce 875 00:39:39,320 --> 00:39:43,652 že did-- řetězec je ve skutečnosti jen pole znaků, 876 00:39:43,652 --> 00:39:44,860 pokud si myslíte o tom, že jo? 877 00:39:44,860 --> 00:39:47,500 Řetězec je název nebo věta nebo slovo, že jo? 878 00:39:47,500 --> 00:39:52,975 >> Pokud bych měl vytvořit řetězec s názvem Andi-- jen moje jméno, A-N-D-I. 879 00:39:52,975 --> 00:39:55,460 Myslíte si, že o tom, jak jen jedné proměnné. 880 00:39:55,460 --> 00:39:58,630 Ale ve skutečnosti, je to v členění do pouhých pole znaků. 881 00:39:58,630 --> 00:40:01,910 Takže to dostal charakter uložené v hodnotě pole. 882 00:40:01,910 --> 00:40:05,420 Má to charakter n uloženou ve druhý index, a tak dále a tak dále. 883 00:40:05,420 --> 00:40:08,660 >> Tak takovým způsobem, jsme ve skutečnosti tento druh 884 00:40:08,660 --> 00:40:10,970 struktury nastavena místo pro naše řetězce. 885 00:40:10,970 --> 00:40:14,660 Tak tady, když jsem byl na vstup do Slovo "jíst" - takže řetězec slovo rovno 886 00:40:14,660 --> 00:40:15,540 dostat řetězec. 887 00:40:15,540 --> 00:40:19,260 Pokud bych měl zadat slovo "jíst", že je fyzicky tak, že můj počítač 888 00:40:19,260 --> 00:40:21,870 ukládá tento řetězec v mé paměti. 889 00:40:21,870 --> 00:40:27,140 >> A když jsem chtěl běžet přes to a tisku, že out-- takže i do 890 00:40:27,140 --> 00:40:30,890 se rovná nule, pamatujte, že na přednášce jsme vztahuje něco, co nazývá strlen, 891 00:40:30,890 --> 00:40:32,990 nebo délku řetězce. 892 00:40:32,990 --> 00:40:36,520 Protože nemám vlastně vědět, jak velký je pole 893 00:40:36,520 --> 00:40:38,210 v jakékoliv inputting-- uživatele 894 00:40:38,210 --> 00:40:40,370 >> Například jsem zadány slovo "jíst," a já vím, 895 00:40:40,370 --> 00:40:41,870 To je dlouhá tři znaky, je to tak? 896 00:40:41,870 --> 00:40:44,700 Takže jsem mohl dát do tří tam a všechno bude v pořádku. 897 00:40:44,700 --> 00:40:49,290 Ale pokud vstupního uživatel něco to je jiný počet hodnot, 898 00:40:49,290 --> 00:40:52,760 budete mít potíže s opravdu vím, že když naprogramujete váš kód. 899 00:40:52,760 --> 00:40:56,040 >> Takže způsob, jakým nakládáme s testovací případy takhle je to, že máme něco 900 00:40:56,040 --> 00:41:00,070 volal strlen, což je jen funkce že vám řekne, jak dlouho je řetězec. 901 00:41:00,070 --> 00:41:02,080 Takže strlen slova. 902 00:41:02,080 --> 00:41:03,470 Mé slovo je jíst. 903 00:41:03,470 --> 00:41:05,990 n se rovná strlen Word. 904 00:41:05,990 --> 00:41:08,930 Může mi někdo říct, co to hodnota vlastně je tady? 905 00:41:08,930 --> 00:41:12,550 Co n představující právo Nyní, v tomto případě, kdybych měl jíst? 906 00:41:12,550 --> 00:41:13,530 >> Diváků: 3. 907 00:41:13,530 --> 00:41:14,520 >> ANDI PENG: 3, přesně tak. 908 00:41:14,520 --> 00:41:18,820 Takže máme za int i rovná nula, n je rovno 3, v podstatě. 909 00:41:18,820 --> 00:41:22,355 A i bude běžet dokud je to méně než 3i ++. 910 00:41:22,355 --> 00:41:24,980 A to bude v podstatě jít až do konce a udělat to samé. 911 00:41:24,980 --> 00:41:26,979 Bude to vytisknout všechny hodnoty a dá vám 912 00:41:26,979 --> 00:41:29,700 JÍST. Je to jen naznačovat jiný způsob psaní. 913 00:41:29,700 --> 00:41:31,170 To bude velmi užitečné. 914 00:41:31,170 --> 00:41:31,670 To jo. 915 00:41:31,670 --> 00:41:35,174 Diváků: Co je výhody uvedení n se rovná strlen slovo uvnitř, že 916 00:41:35,174 --> 00:41:36,894 pro smyčce [neslyšitelných]? 917 00:41:36,894 --> 00:41:37,560 ANDI PENG: Jo. 918 00:41:37,560 --> 00:41:44,880 Takže když jsem byl to-- říkat, například, kdybych to udělat, a poté 919 00:41:44,880 --> 00:41:51,935 do-- oop--, že v mém kódu, to by skutečně dělá rád stejné věci. 920 00:41:51,935 --> 00:41:55,060 Nicméně způsob, jakým, že David je vysvětleno to během přednášky, jestli někdo z vás kluci 921 00:41:55,060 --> 00:41:57,854 pamatovat, bylo to, že, jak je lidé, jako programátoři, 922 00:41:57,854 --> 00:42:00,270 opravdu snažit programu Naši kód tak, že náš počítač má 923 00:42:00,270 --> 00:42:04,070 pracovat co nejmenší, tak že náš kód je velmi efektivní. 924 00:42:04,070 --> 00:42:06,850 >> Takže když jsem měl, že tam, co by se stalo, přes můj pro smyčku 925 00:42:06,850 --> 00:42:10,790 je, že jsem se poprvé prohlásit proměnná pojmenovaná i bude 0. 926 00:42:10,790 --> 00:42:13,350 Jdu zkontrolovat, oh, co je strlen aplikace Word? 927 00:42:13,350 --> 00:42:15,000 Ach, ta strlen je 3. 928 00:42:15,000 --> 00:42:16,191 Takže je i méně než tři? 929 00:42:16,191 --> 00:42:16,690 Ano je. 930 00:42:16,690 --> 00:42:17,870 Jdu běhat. 931 00:42:17,870 --> 00:42:21,130 >> A pak podruhé se zpátky smyčky, budu zvyšovat i. 932 00:42:21,130 --> 00:42:22,550 i bude jeden. 933 00:42:22,550 --> 00:42:25,600 A já se chystá kontrolovat, oh, ale co je to strlen slova? 934 00:42:25,600 --> 00:42:26,839 Oh, to je tři. 935 00:42:26,839 --> 00:42:29,880 A dělá, že se zdá trochu zbytečné, pokaždé, když spustíte přes smyčku, 936 00:42:29,880 --> 00:42:33,340 , které mají být kontrolu funkce, i přesto, že strlen slova 937 00:42:33,340 --> 00:42:35,490 Nikdy se právě mění? 938 00:42:35,490 --> 00:42:38,590 >> Takže je to navíc moc pro počítač. 939 00:42:38,590 --> 00:42:42,180 Když začnete mluvit o věcech, že jsou miliardy a miliardy 940 00:42:42,180 --> 00:42:44,431 a miliardy míst dlouhá, představte si svůj počítač 941 00:42:44,431 --> 00:42:47,430 museli fyzicky projít a zkontrolovat všechny, že každý jednotlivý čas. 942 00:42:47,430 --> 00:42:53,170 To je důvod, proč dělat jen v zájmu efektivity, 943 00:42:53,170 --> 00:42:57,620 máme tendenci to prostě udělat, protože tímto způsobem, že jsme jen 944 00:42:57,620 --> 00:42:59,850 volání funkce jednou na začátku, 945 00:42:59,850 --> 00:43:01,766 a že pokaždé to prochází to jde 946 00:43:01,766 --> 00:43:03,789 který bude ukládat hodnotu 3 tam, že nemáte 947 00:43:03,789 --> 00:43:05,330 muset neustále kontrolovat pokaždé. 948 00:43:05,330 --> 00:43:05,743 To jo. 949 00:43:05,743 --> 00:43:06,409 >> Diváků: Omlouvám se. 950 00:43:06,409 --> 00:43:09,070 Jen [neslyšitelný]. 951 00:43:09,070 --> 00:43:13,985 Mohl byste to v pravý n rovná strlen a dal že nad vnější straně pro smyčky 952 00:43:13,985 --> 00:43:15,364 také? 953 00:43:15,364 --> 00:43:16,030 ANDI PENG: Jo. 954 00:43:16,030 --> 00:43:17,100 Dalo by se to udělat, absolutně. 955 00:43:17,100 --> 00:43:19,970 Důvod, proč to máme tady je protože způsob, jakým cyklu for práce 956 00:43:19,970 --> 00:43:23,500 je, že to říká lokální proměnná v tom smyslu, 957 00:43:23,500 --> 00:43:26,150 že všechno, co jste vytváří uvnitř smyčky for 958 00:43:26,150 --> 00:43:27,890 existuje pouze uvnitř cyklu for. 959 00:43:27,890 --> 00:43:31,530 >> Takže proměnná i jediný existuje v těchto závorkách. 960 00:43:31,530 --> 00:43:35,260 A tady proměnné n i existuje pouze v těch závorkách. 961 00:43:35,260 --> 00:43:39,350 Takže pokud jste měli používat strlen z Slovo několikrát dole pod námi, 962 00:43:39,350 --> 00:43:42,230 absolutně nejlepší způsob, jak to udělat by bylo prohlásit ji na vrchol 963 00:43:42,230 --> 00:43:43,563 takže nemusíte dělat to jednou. 964 00:43:43,563 --> 00:43:45,420 To jo. 965 00:43:45,420 --> 00:43:47,670 Diváků: Proč máte nový řádek po procent 966 00:43:47,670 --> 00:43:51,300 vidět, pokud chcete, aby všechny dopisy vedle oddělit to? 967 00:43:51,300 --> 00:43:54,140 >> ANDI PENG: Oh, chtěl jsem se vytisknout všechny na každém řádku. 968 00:43:54,140 --> 00:43:54,890 Nezáleží na tom. 969 00:43:54,890 --> 00:43:55,890 Jo, je to formátování. 970 00:43:55,890 --> 00:43:57,181 To je dobrá otázka, ačkoli. 971 00:43:57,181 --> 00:43:59,360 Jo, kdybych chtěl vytisknout to vše na jediném řádku, 972 00:43:59,360 --> 00:44:02,731 Já bych neměla pomlčku. 973 00:44:02,731 --> 00:44:03,230 DOBŘE. 974 00:44:03,230 --> 00:44:06,880 Všichni dobře? 975 00:44:06,880 --> 00:44:07,500 DOBŘE. 976 00:44:07,500 --> 00:44:08,000 Bezva. 977 00:44:08,000 --> 00:44:12,080 978 00:44:12,080 --> 00:44:14,750 >> Takže myslím, že jsem mluvil dost. 979 00:44:14,750 --> 00:44:20,040 Vy jste na řadě, aby projít kód a řekni mi, co je špatně. 980 00:44:20,040 --> 00:44:21,560 Kde je chyba? 981 00:44:21,560 --> 00:44:26,920 Takže jak vidíte, já jsem deklaroval nová pole typu string s názvem třídy. 982 00:44:26,920 --> 00:44:30,220 A já jsem zadaná Sam, Jess, a Kim se do něj. 983 00:44:30,220 --> 00:44:33,400 A já jsem se snaží vytisknout všechny prvky pole. 984 00:44:33,400 --> 00:44:36,796 Může mi někdo říct, proč to se chystá dát mi problémy? 985 00:44:36,796 --> 00:44:39,320 Dám vám kluci 10 sekund přemýšlet o tom. 986 00:44:39,320 --> 00:44:55,490 987 00:44:55,490 --> 00:44:56,619 >> DOBŘE. 988 00:44:56,619 --> 00:44:57,118 To jo? 989 00:44:57,118 --> 00:45:01,972 >> Diváků: Je levý střed rovno 3 nebo [neslyšitelných]? 990 00:45:01,972 --> 00:45:02,680 ANDI PENG: Správně. 991 00:45:02,680 --> 00:45:06,784 Takže kolikrát je to vlastně bude projít této smyčky? 992 00:45:06,784 --> 00:45:07,620 >> Publikum: Čtyři. 993 00:45:07,620 --> 00:45:08,070 >> ANDI PENG: Přesně tak. 994 00:45:08,070 --> 00:45:09,445 Bude to přes čtyři krát. 995 00:45:09,445 --> 00:45:12,250 Bude to projít při 0 ° C, 1, 2, a 3, 996 00:45:12,250 --> 00:45:15,200 protože jejich prvkem je i je menší než nebo rovno 3. 997 00:45:15,200 --> 00:45:16,960 Nebude to zastavit, když je to 2. 998 00:45:16,960 --> 00:45:18,800 Bude to mít děje, dokud nenarazí 3. 999 00:45:18,800 --> 00:45:21,720 A jak víme, je tu jen tři prvky v naší aktuální poli. 1000 00:45:21,720 --> 00:45:27,260 >> Pokud se pokusíte o přístup čtvrtý prvek nebo index 3, 1001 00:45:27,260 --> 00:45:30,357 budete hit někam v paměti, že neexistuje. 1002 00:45:30,357 --> 00:45:31,690 Jmenuje se null zakončení. 1003 00:45:31,690 --> 00:45:32,856 Nic se tam bude. 1004 00:45:32,856 --> 00:45:35,324 Počítač nebude být s tebou velmi spokojený. 1005 00:45:35,324 --> 00:45:36,170 To jo. 1006 00:45:36,170 --> 00:45:38,430 Má někdo otázky o tom, proč, co se děje? 1007 00:45:38,430 --> 00:45:39,679 To je společný prostor, aby se zabránilo. 1008 00:45:39,679 --> 00:45:40,712 To jo. 1009 00:45:40,712 --> 00:45:45,777 >> Diváků: Does not první posuňte také řetězec 2? 1010 00:45:45,777 --> 00:45:46,360 ANDI PENG: Ne. 1011 00:45:46,360 --> 00:45:49,610 Takže v podstatě, pokud děláš pole, 1012 00:45:49,610 --> 00:45:51,540 že držák pravý tam, že všechny number-- 1013 00:45:51,540 --> 00:45:53,480 je to, že musíte, je, jak mnoho prvků mám. 1014 00:45:53,480 --> 00:45:55,840 Není to vlastně říká me indexy cokoliv. 1015 00:45:55,840 --> 00:45:58,760 Takže v tomto případě, vím, že chci psát třech místech, 1016 00:45:58,760 --> 00:46:02,690 se třemi místy do fyzické držet co chci držet. 1017 00:46:02,690 --> 00:46:04,510 Takže to je důvod, proč je tam číslo tři. 1018 00:46:04,510 --> 00:46:06,560 Nicméně, pokud jsem chtěl skutečně přístup, 1019 00:46:06,560 --> 00:46:11,220 pokud jsem chtěl říci, printf třídy číslo konzola, pak 1020 00:46:11,220 --> 00:46:14,560 budete skutečně dát fyzická index tam. 1021 00:46:14,560 --> 00:46:16,330 Jo, dobrá otázka. 1022 00:46:16,330 --> 00:46:20,065 >> Diváků: Takže je fyzická index měl být [neslyšitelných]? 1023 00:46:20,065 --> 00:46:20,940 ANDI PENG: Je mi to líto. 1024 00:46:20,940 --> 00:46:21,500 Můžeš mluvit trochu? 1025 00:46:21,500 --> 00:46:24,208 >> Diváků: Takže je fyzický index [Neslyšitelný] každé z krabic? 1026 00:46:24,208 --> 00:46:25,260 [Neslyšitelných]? 1027 00:46:25,260 --> 00:46:26,040 >> ANDI PENG: Jo. 1028 00:46:26,040 --> 00:46:28,970 Takže já půjdu zpátky do právě zde. 1029 00:46:28,970 --> 00:46:31,120 Myslete na přímo tady. 1030 00:46:31,120 --> 00:46:32,820 Máme pole o velikosti 3. 1031 00:46:32,820 --> 00:46:35,540 Je tu tři místa, jako je, fyzikální zástupné symboly tady. 1032 00:46:35,540 --> 00:46:37,620 Ale oni s názvem 0, 1 a 2. 1033 00:46:37,620 --> 00:46:40,700 Takže když jsem chtěl pro přístup k nim, tak, že jsem se k nim 1034 00:46:40,700 --> 00:46:43,480 je printf všeho, co jsem chtěl tady. 1035 00:46:43,480 --> 00:46:45,485 Budete muset vytisknout se jménem toho, 1036 00:46:45,485 --> 00:46:47,610 protože pak v počítači ví, oh, musím se podívat 1037 00:46:47,610 --> 00:46:51,391 V tomto poli pro 0TH indexu. 1038 00:46:51,391 --> 00:46:51,890 To jo. 1039 00:46:51,890 --> 00:46:53,306 Ale velikost se nemění. 1040 00:46:53,306 --> 00:46:55,492 Velikost je 3, bez ohledu na to na to, jak je popsat. 1041 00:46:55,492 --> 00:46:58,321 1042 00:46:58,321 --> 00:46:58,820 DOBŘE. 1043 00:46:58,820 --> 00:47:01,387 Všichni dobře? 1044 00:47:01,387 --> 00:47:02,970 Diváků: Takže pokaždé, když jsem [neslyšitelných]? 1045 00:47:02,970 --> 00:47:06,357 1046 00:47:06,357 --> 00:47:06,940 ANDI PENG: OK. 1047 00:47:06,940 --> 00:47:13,270 Takže v tomto případě jsme opravdu nemám dostat se do toho teď v kurzu. 1048 00:47:13,270 --> 00:47:16,760 Ale vím, že string-- jako já řekl dříve, řetězec je v podstatě 1049 00:47:16,760 --> 00:47:18,440 řada znaků. 1050 00:47:18,440 --> 00:47:21,430 Takže když jsem vytvořit pole, řetězců, druh I 1051 00:47:21,430 --> 00:47:24,430 mají celou řadu pole znaků, že jo? 1052 00:47:24,430 --> 00:47:27,720 >> Takže v tomto případě, protože jsem mají pole řetězců, 1053 00:47:27,720 --> 00:47:31,340 pokud jste byli na vstup opravdu dlouhé slovo, že stále zabírá pouze jeden prostor, 1054 00:47:31,340 --> 00:47:33,230 protože to je jeden řetězec. 1055 00:47:33,230 --> 00:47:37,492 Ale pokud byste měli myslet na znaky tohoto pole, 1056 00:47:37,492 --> 00:47:40,450 Pak je to brát spoustu více znaky než kterýkoli z Jinými slovy, 1057 00:47:40,450 --> 00:47:41,372 jsou. 1058 00:47:41,372 --> 00:47:42,830 Ne opravdu důležité právě teď. 1059 00:47:42,830 --> 00:47:44,921 Ale to je jen obecně jak to funguje. 1060 00:47:44,921 --> 00:47:49,750 1061 00:47:49,750 --> 00:47:50,560 >> DOBŘE. 1062 00:47:50,560 --> 00:47:55,840 Takže to je něco, co tě nechám dělat hodně v průběhu semestru. 1063 00:47:55,840 --> 00:47:57,500 Musím si odpočinout můj hlas. 1064 00:47:57,500 --> 00:47:59,530 Vy potřebujete stimulovat sami. 1065 00:47:59,530 --> 00:48:02,300 Mnoho z vás asi spát právě teď. 1066 00:48:02,300 --> 00:48:05,960 Jsem zadání náhodné problémy kde jsme jako třída nebo 1067 00:48:05,960 --> 00:48:09,480 s partnerem vedle vás jdou strávit pár minut diskutovat 1068 00:48:09,480 --> 00:48:14,980 na tom, jak by šlo o řešení nebo vytvoření programu, jako je tento. 1069 00:48:14,980 --> 00:48:17,100 >> Takže teď, chceme vytvořit program-- 1070 00:48:17,100 --> 00:48:19,560 budeme nazývat upper.c-- že konvertité 1071 00:48:19,560 --> 00:48:24,787 malé písmeno slovo horní třídy string-- velká písmena, je mi líto. 1072 00:48:24,787 --> 00:48:26,370 Word v řetězcích, sorry, je synonymem. 1073 00:48:26,370 --> 00:48:28,370 Chystám se je změnit znamenat totéž. 1074 00:48:28,370 --> 00:48:32,270 1075 00:48:32,270 --> 00:48:33,499 >> To jo. 1076 00:48:33,499 --> 00:48:34,540 Vezměte pár minut. 1077 00:48:34,540 --> 00:48:37,130 Nemusí to být napsán v jakémkoli jazyce. 1078 00:48:37,130 --> 00:48:39,890 Právě v pseudokódu kódu nebo logicky, jak bychom dokonce 1079 00:48:39,890 --> 00:48:42,083 jít dělat takový problém. 1080 00:48:42,083 --> 00:48:42,583 To jo. 1081 00:48:42,583 --> 00:48:49,881 1082 00:48:49,881 --> 00:48:52,780 >> [SIDE ROZHOVOR] 1083 00:48:52,780 --> 00:49:18,680 1084 00:49:18,680 --> 00:49:22,130 >> Také jsem si všiml, že vy can-- Druh já vidět už program. 1085 00:49:22,130 --> 00:49:24,600 Myslím, že můj nedostatek Režim moderátorka je problém. 1086 00:49:24,600 --> 00:49:27,410 Ale to je v pořádku. 1087 00:49:27,410 --> 00:49:30,410 >> [SIDE ROZHOVOR] 1088 00:49:30,410 --> 00:50:03,589 1089 00:50:03,589 --> 00:50:04,380 Ano, prosím, chlapi. 1090 00:50:04,380 --> 00:50:05,400 Pojďte si bonbón. 1091 00:50:05,400 --> 00:50:06,372 Pojďte si bonbón. 1092 00:50:06,372 --> 00:50:07,698 >> Hlediště: Ano! 1093 00:50:07,698 --> 00:50:09,958 >> [SIDE ROZHOVOR] 1094 00:50:09,958 --> 00:50:16,101 1095 00:50:16,101 --> 00:50:18,100 ANDI PENG: Také, jo, Začnu házet cukroví 1096 00:50:18,100 --> 00:50:20,280 na lidi, kteří nemají odpověděl na otázky. 1097 00:50:20,280 --> 00:50:22,260 Takže byste měli všechny odpovědi na otázky. 1098 00:50:22,260 --> 00:50:24,895 Nebo Myslím, že lidi, kteří se odpovídat na otázky. 1099 00:50:24,895 --> 00:50:26,070 Jo, jiná cesta kolem. 1100 00:50:26,070 --> 00:50:28,570 >> [SIDE ROZHOVOR] 1101 00:50:28,570 --> 00:51:13,399 1102 00:51:13,399 --> 00:51:14,274 Diváků: [Neslyšitelné] 1103 00:51:14,274 --> 00:51:17,300 1104 00:51:17,300 --> 00:51:18,340 >> ANDI PENG: Jo. 1105 00:51:18,340 --> 00:51:19,340 To jo. 1106 00:51:19,340 --> 00:51:22,840 >> [SIDE ROZHOVOR] 1107 00:51:22,840 --> 00:51:40,700 1108 00:51:40,700 --> 00:51:41,590 >> Dobře, chlapi. 1109 00:51:41,590 --> 00:51:44,731 Vezměte, jako, 10 vteřin. 1110 00:51:44,731 --> 00:51:48,210 >> [SIDE ROZHOVOR] 1111 00:51:48,210 --> 00:52:10,600 1112 00:52:10,600 --> 00:52:11,750 >> OK, chlapi. 1113 00:52:11,750 --> 00:52:14,920 Takže než začneme se snaží vlastně fyzicky psát kód, 1114 00:52:14,920 --> 00:52:20,650 dobrý zvyk rozvíjet je, že Chceme prvního druhu rozumu 1115 00:52:20,650 --> 00:52:22,737 logicky, jak bychom to udělat. 1116 00:52:22,737 --> 00:52:24,570 Chcete, aby se ujistil, před vámi fyzicky 1117 00:52:24,570 --> 00:52:27,210 začít se snaží kód V Mario, že uděláte 1118 00:52:27,210 --> 00:52:28,870 jisti, že máte pseudocode. 1119 00:52:28,870 --> 00:52:31,235 To znamená, že vás jimi to, co potřebujete vytvořit tak 1120 00:52:31,235 --> 00:52:33,360 , že když vás fyzicky napsat svůj program později, 1121 00:52:33,360 --> 00:52:36,640 budete schopni lépe zachytit chyby v kódu a podobné věci. 1122 00:52:36,640 --> 00:52:40,460 >> Takže budeme jen začít by-- v angličtině, v pseudokódu, 1123 00:52:40,460 --> 00:52:43,320 někdo chce dát mi obecný výklad 1124 00:52:43,320 --> 00:52:46,250 o tom, jak bychom jít asi dělá? 1125 00:52:46,250 --> 00:52:48,102 To jo. 1126 00:52:48,102 --> 00:52:49,664 >> Diváků: [Neslyšitelné]. 1127 00:52:49,664 --> 00:52:50,830 ANDI PENG: Jasně, žádný strach. 1128 00:52:50,830 --> 00:52:57,233 Diváků: Můžeš to zeptat nebo požádat někdo se dostat řetězec 1-- jo, řetězec, 1129 00:52:57,233 --> 00:52:58,160 a pak-- 1130 00:52:58,160 --> 00:52:59,826 >> ANDI PENG: Ano, takže je to dobrý začátek. 1131 00:52:59,826 --> 00:53:01,972 Začnu psát, je mi líto, jak mluvíte. 1132 00:53:01,972 --> 00:53:02,471 Tak-- 1133 00:53:02,471 --> 00:53:05,698 >> Publikum: --the malá písmena Čísla jsou vyšší, ne? 1134 00:53:05,698 --> 00:53:08,519 Nebo malá písmena vysoký počet? 1135 00:53:08,519 --> 00:53:09,310 ANDI PENG: Přesně tak. 1136 00:53:09,310 --> 00:53:16,156 Diváků: Takže my odečteme 32 od toho, co [neslyšitelných]. 1137 00:53:16,156 --> 00:53:28,600 1138 00:53:28,600 --> 00:53:29,870 >> ANDI PENG: Skvělé. 1139 00:53:29,870 --> 00:53:35,020 Takže jsme druh má všeobecný pocit o tom, jak pro práci o tomto problému. 1140 00:53:35,020 --> 00:53:40,060 S vědomím, že jsme se trochu naučil fyzický tak, že struny 1141 00:53:40,060 --> 00:53:43,320 jsou uloženy v paměti, Co si již 1142 00:53:43,320 --> 00:53:45,920 vím, že budete pravděpodobně muset psát v kódu 1143 00:53:45,920 --> 00:53:48,288 aby se pohybovat řetězce? 1144 00:53:48,288 --> 00:53:49,259 >> Obecenstvo: pro smyčce. 1145 00:53:49,259 --> 00:53:50,550 ANDI PENG: A pro smyčce, přesně tak. 1146 00:53:50,550 --> 00:53:56,540 1147 00:53:56,540 --> 00:53:57,220 Skvělý. 1148 00:53:57,220 --> 00:54:00,539 A tak jsme trochu mít obecný pseudokód napsáno 1149 00:54:00,539 --> 00:54:02,330 tento druh dává bere na vědomí, jste na tom, jak 1150 00:54:02,330 --> 00:54:03,900 by se pohybovala o řešení tohoto problému. 1151 00:54:03,900 --> 00:54:06,150 Nyní, když máte tento, ty může odkazovat na později 1152 00:54:06,150 --> 00:54:08,233 o tom, kdy se snažíte vlastně napsat svůj kód. 1153 00:54:08,233 --> 00:54:10,240 Takže můžeme skutečně jít sem. 1154 00:54:10,240 --> 00:54:25,130 A já mám funkci nazvanou upper.c-- tam to je-- toho jen prázdným vzorem 1155 00:54:25,130 --> 00:54:28,510 právě teď, že vy se chystáte pomozte mi zjistit, o tom, jak psát 1156 00:54:28,510 --> 00:54:30,430 tato řada code-- není řádek kódu. 1157 00:54:30,430 --> 00:54:32,890 Bude to více řádků kódu. 1158 00:54:32,890 --> 00:54:35,710 >> Při spuštění žádný druh prázdného pset, co je 1159 00:54:35,710 --> 00:54:37,418 První věc, kterou musím pamatovat na dělat? 1160 00:54:37,418 --> 00:54:39,290 >> Diváků: [Neslyšitelné]. 1161 00:54:39,290 --> 00:54:41,000 >> ANDI PENG: Velká Jo. 1162 00:54:41,000 --> 00:54:41,500 Zahrnout. 1163 00:54:41,500 --> 00:54:44,850 1164 00:54:44,850 --> 00:54:47,130 stdio.h. 1165 00:54:47,130 --> 00:54:49,640 Často se jedná o jeden z nejvíce jednoduché chyby lidé 1166 00:54:49,640 --> 00:54:51,598 bude dělat, když jsou psaní, je to, že budete 1167 00:54:51,598 --> 00:54:54,180 zapomněl pro zahrnutí důležité knihovna, co potřebují. 1168 00:54:54,180 --> 00:54:57,689 Takže pokud je to úřední hodiny a jste jako, Já nevím, proč můj kód nefunguje. 1169 00:54:57,689 --> 00:54:59,230 Můžeš mi říct, proč to nefunguje? 1170 00:54:59,230 --> 00:55:00,730 Chystáme se říct, jste #include? 1171 00:55:00,730 --> 00:55:02,520 Měli byste ho #include. 1172 00:55:02,520 --> 00:55:03,270 DOBŘE. 1173 00:55:03,270 --> 00:55:07,230 >> Takže máme standard I / O zde. 1174 00:55:07,230 --> 00:55:10,740 Je to jediná knihovna budeme potřebovat tu? 1175 00:55:10,740 --> 00:55:12,681 Co jiného se budeme dělat? 1176 00:55:12,681 --> 00:55:13,180 Litovat. 1177 00:55:13,180 --> 00:55:14,562 Někdo prostě ječet to? 1178 00:55:14,562 --> 00:55:15,666 >> Diváků: [Neslyšitelné]. 1179 00:55:15,666 --> 00:55:16,666 ANDI PENG: Tady to je. 1180 00:55:16,666 --> 00:55:20,320 1181 00:55:20,320 --> 00:55:21,440 DOBŘE. 1182 00:55:21,440 --> 00:55:26,070 A jak mám jít o zahájení žádný druh funkce, nějaký druh hlavní funkce 1183 00:55:26,070 --> 00:55:28,760 v rámci našeho programu? 1184 00:55:28,760 --> 00:55:30,020 Int main. 1185 00:55:30,020 --> 00:55:34,531 1186 00:55:34,531 --> 00:55:35,030 DOBŘE. 1187 00:55:35,030 --> 00:55:35,970 Co jsem dal sem dovnitř? 1188 00:55:35,970 --> 00:55:37,640 Co je první věc, kterou chcete udělat? 1189 00:55:37,640 --> 00:55:39,910 Pokud chceme získat řetězec od uživatele, 1190 00:55:39,910 --> 00:55:43,870 co s tím budeme mít dělat na této první linii? 1191 00:55:43,870 --> 00:55:46,120 Omlouváme se, ale vy jste prostě pocit zatím mluvit a nahlas. 1192 00:55:46,120 --> 00:55:47,123 Jen křičet cokoliv. 1193 00:55:47,123 --> 00:55:48,772 >> Diváků: Požádejte uživatele? 1194 00:55:48,772 --> 00:55:49,980 ANDI PENG: Jak to uděláme? 1195 00:55:49,980 --> 00:55:51,873 Ask-- budu psát "požádat uživatele"? 1196 00:55:51,873 --> 00:55:52,600 >> Diváků: printf. 1197 00:55:52,600 --> 00:55:54,341 >> ANDI PENG: OK. 1198 00:55:54,341 --> 00:55:54,840 Printf. 1199 00:55:54,840 --> 00:55:57,372 Co chci, aby printf? 1200 00:55:57,372 --> 00:55:58,776 >> Diváků: Zadejte něco. 1201 00:55:58,776 --> 00:56:02,760 1202 00:56:02,760 --> 00:56:03,840 >> ANDI PENG: Jako, že? 1203 00:56:03,840 --> 00:56:05,430 Chlapi, předstírat, že jsem počítač. 1204 00:56:05,430 --> 00:56:08,475 Fyzicky mi na každém kroku že musím psát sem? 1205 00:56:08,475 --> 00:56:09,600 Dělám něco špatně? 1206 00:56:09,600 --> 00:56:10,743 Měl jsem napsal něco? 1207 00:56:10,743 --> 00:56:11,690 >> Diváků: Potřebujete uvozovek. 1208 00:56:11,690 --> 00:56:12,380 >> ANDI PENG: Potřebuji uvozovky? 1209 00:56:12,380 --> 00:56:12,880 DOBŘE. 1210 00:56:12,880 --> 00:56:15,520 1211 00:56:15,520 --> 00:56:16,297 DOBŘE. 1212 00:56:16,297 --> 00:56:17,698 >> Diváků: A pak nový řádek. 1213 00:56:17,698 --> 00:56:21,434 1214 00:56:21,434 --> 00:56:22,465 Středník. 1215 00:56:22,465 --> 00:56:23,340 ANDI PENG: středníkem? 1216 00:56:23,340 --> 00:56:24,060 DOBŘE. 1217 00:56:24,060 --> 00:56:24,560 Dobrý. 1218 00:56:24,560 --> 00:56:27,060 >> Diváků: A možná specifikovat že to chceš malými písmeny? 1219 00:56:27,060 --> 00:56:30,120 1220 00:56:30,120 --> 00:56:31,415 >> ANDI PENG: Skvělé. 1221 00:56:31,415 --> 00:56:33,540 Vy jste mi smát zapomněl dát středník. 1222 00:56:33,540 --> 00:56:36,350 Já vám zaručit, někde v průběhu této třídy, 1223 00:56:36,350 --> 00:56:38,260 zapomeneš dát středník, a to 1224 00:56:38,260 --> 00:56:41,116 bude trvat tři hodiny přijít proč váš kód nefunguje. 1225 00:56:41,116 --> 00:56:42,240 Stalo se to pro všechny z nás. 1226 00:56:42,240 --> 00:56:43,950 To bude pravděpodobně se vám nestane. 1227 00:56:43,950 --> 00:56:46,352 Buďte v dobrém zvyku používat středníky. 1228 00:56:46,352 --> 00:56:46,852 DOBŘE. 1229 00:56:46,852 --> 00:56:49,010 >> Diváků: Chcete udělat zpětné lomítko v? 1230 00:56:49,010 --> 00:56:50,398 >> ANDI PENG: Jistě. 1231 00:56:50,398 --> 00:56:51,856 Chcete udělat zpětné lomítko v? 1232 00:56:51,856 --> 00:56:53,020 >> Diváků: Ano. 1233 00:56:53,020 --> 00:56:54,330 >> ANDI PENG: Skvělé. 1234 00:56:54,330 --> 00:56:54,830 DOBŘE. 1235 00:56:54,830 --> 00:56:57,872 Co mám dělat dál? 1236 00:56:57,872 --> 00:56:58,964 >> Diváků: Získat řetězec. 1237 00:56:58,964 --> 00:56:59,880 ANDI PENG: Získat řetězec. 1238 00:56:59,880 --> 00:57:03,080 1239 00:57:03,080 --> 00:57:03,830 Tak co mám psát? 1240 00:57:03,830 --> 00:57:04,233 Někdo? 1241 00:57:04,233 --> 00:57:05,040 >> Diváků: String s. 1242 00:57:05,040 --> 00:57:05,873 >> ANDI PENG: String s. 1243 00:57:05,873 --> 00:57:07,251 Diváků: GetString. 1244 00:57:07,251 --> 00:57:09,000 ANDI PENG: Někdo, můžete mi říct, kde 1245 00:57:09,000 --> 00:57:12,000 tato funkce GetString přichází z? 1246 00:57:12,000 --> 00:57:13,660 >> Diváků: string.h. 1247 00:57:13,660 --> 00:57:15,256 >> ANDI PENG: string.h? 1248 00:57:15,256 --> 00:57:16,715 Myslíte si, že je to z string.h? 1249 00:57:16,715 --> 00:57:17,830 >> Diváků: [Neslyšitelné]. 1250 00:57:17,830 --> 00:57:18,830 >> ANDI PENG: Tady to je. 1251 00:57:18,830 --> 00:57:21,280 Je to od CS50.h. 1252 00:57:21,280 --> 00:57:24,530 Pokud jste stále zmateni na kde Soubor knihovny je nebo soubor záhlaví je, 1253 00:57:24,530 --> 00:57:28,450 satelitní doslova string.h, a já ti řeknu, 1254 00:57:28,450 --> 00:57:30,450 jaké jsou všechny funkce které jsou v string.h. 1255 00:57:30,450 --> 00:57:31,340 DOBŘE. 1256 00:57:31,340 --> 00:57:35,210 >> Takže teď, že jsem vytvořil řetězec A já jsem vyzve uživatele pro to, 1257 00:57:35,210 --> 00:57:38,770 Já jsem uložen v proměnné pojmenované s, co musím udělat teď? 1258 00:57:38,770 --> 00:57:40,652 >> Diváků: Zkontrolujte, zda je malými písmeny. 1259 00:57:40,652 --> 00:57:41,360 ANDI PENG: Sorry? 1260 00:57:41,360 --> 00:57:42,545 Diváků: Zkontrolujte, zda je malými písmeny. 1261 00:57:42,545 --> 00:57:44,045 ANDI PENG: Dobře, pojďme to udělat. 1262 00:57:44,045 --> 00:57:45,857 Jak to mám udělat? 1263 00:57:45,857 --> 00:57:47,940 Ve skutečnosti, pro účely třídy právě teď, 1264 00:57:47,940 --> 00:57:50,330 my jen tak předpokládat, že vše, 1265 00:57:50,330 --> 00:57:52,620 že vstup je již malými písmeny. 1266 00:57:52,620 --> 00:57:55,430 Pokud byste chtěli zkontrolovat, že ne stačí přidat podmíněného příkazu 1267 00:57:55,430 --> 00:57:59,640 že zkontroloval, že proběhl každý prvek pole 1268 00:57:59,640 --> 00:58:02,540 a kontrolovat, jestli je to mezi určitými hodnotami. 1269 00:58:02,540 --> 00:58:05,627 Zapomněl jsem, co se počet hodnot malá písmena jsou. 1270 00:58:05,627 --> 00:58:07,210 Můžete to najít na stole ASCII. 1271 00:58:07,210 --> 00:58:08,800 Ale jo, to je opravdu dobrý bod. 1272 00:58:08,800 --> 00:58:11,758 Ale právě teď, budeme jen tak předpokládat, že všechny řetězce jsme vstup 1273 00:58:11,758 --> 00:58:13,130 jsou malými písmeny. 1274 00:58:13,130 --> 00:58:13,870 DOBŘE. 1275 00:58:13,870 --> 00:58:18,069 >> Tak jak bych jít o tento problém bude dál? 1276 00:58:18,069 --> 00:58:18,860 Obecenstvo: pro smyčce. 1277 00:58:18,860 --> 00:58:19,340 ANDI PENG: Pro smyčku? 1278 00:58:19,340 --> 00:58:19,839 DOBŘE. 1279 00:58:19,839 --> 00:58:20,847 Řekni mi, co mám psát. 1280 00:58:20,847 --> 00:58:25,230 >> Obecenstvo: pro int i = 0. 1281 00:58:25,230 --> 00:58:27,230 >> ANDI PENG: OK. 1282 00:58:27,230 --> 00:58:36,350 >> Publikum: Oh, vlastně, a pak vás udělat čárku a dělat n rovná strlen. 1283 00:58:36,350 --> 00:58:38,940 >> ANDI PENG: So Důležité že si myslím, že je tady všimla 1284 00:58:38,940 --> 00:58:42,936 je to, že jsme neměli říkat int n podruhé jsme to udělali. 1285 00:58:42,936 --> 00:58:45,060 Jen vím, že v pro smyčka, když jste deklarování, 1286 00:58:45,060 --> 00:58:47,934 jste skutečně nepotřebujete INT podruhé, co udělat proměnnou. 1287 00:58:47,934 --> 00:58:51,202 Můžete říci n strlen. 1288 00:58:51,202 --> 00:58:52,620 >> Diváků: S. 1289 00:58:52,620 --> 00:58:53,510 >> ANDI PENG: s. 1290 00:58:53,510 --> 00:58:54,706 DOBŘE. 1291 00:58:54,706 --> 00:58:58,370 >> Diváků: Pak středník. 1292 00:58:58,370 --> 00:59:00,130 >> ANDI PENG: Jistě. 1293 00:59:00,130 --> 00:59:04,050 >> Diváků: A pak [neslyšitelný] n. 1294 00:59:04,050 --> 00:59:07,480 1295 00:59:07,480 --> 00:59:09,460 Pak jsem ++. 1296 00:59:09,460 --> 00:59:11,780 >> ANDI PENG: Skvělé. 1297 00:59:11,780 --> 00:59:12,280 Dobře. 1298 00:59:12,280 --> 00:59:14,690 Co chceme dovnitř z toho pro smyčky teď? 1299 00:59:14,690 --> 00:59:17,820 Pamatujte, že pokud budeme projít řetězec a běh přes pole, 1300 00:59:17,820 --> 00:59:19,287 Chceme, aby zkontrolovat věci v něm. 1301 00:59:19,287 --> 00:59:20,370 Co budeme potřebovat? 1302 00:59:20,370 --> 00:59:23,070 1303 00:59:23,070 --> 00:59:26,900 To je tak trochu choulostivé části teď. 1304 00:59:26,900 --> 00:59:27,960 Každý, kdo má hádat? 1305 00:59:27,960 --> 00:59:34,160 1306 00:59:34,160 --> 00:59:34,690 >> DOBŘE. 1307 00:59:34,690 --> 00:59:37,830 Takže nejprve, jak jsme se dokonce přistupovat? 1308 00:59:37,830 --> 00:59:41,610 Jak jsme se i první kontrola, nebo přístup k prvku v poli? 1309 00:59:41,610 --> 00:59:42,920 Jak to uděláme? 1310 00:59:42,920 --> 00:59:47,120 Co je to notace používáme k tomu, že? 1311 00:59:47,120 --> 00:59:50,920 Jaký je název tohoto pole jmenuje? 1312 00:59:50,920 --> 00:59:52,400 Jmenuje se to, jo? 1313 00:59:52,400 --> 00:59:54,850 >> Pamatujte si, že libovolný řetězec je vždy pole. 1314 00:59:54,850 --> 00:59:58,210 Takže s držák i, že jo? 1315 00:59:58,210 --> 01:00:01,360 Vzhledem k tomu, že je aktuální hodnota nebo hodnota indexu jsme kontrolu. 1316 01:00:01,360 --> 01:00:05,156 A budeme se nastavit, že rovné to-- chceme malá písmena hodnotu, je to tak? 1317 01:00:05,156 --> 01:00:07,530 Chceme se obrátit, že lower-- Omlouváme se, chceme velkými písmeny. 1318 01:00:07,530 --> 01:00:10,014 Chceme otočit malými písmeny hodnota do velká písmena. 1319 01:00:10,014 --> 01:00:11,805 A tak jako-- Je mi to líto, jak se jmenuješ? 1320 01:00:11,805 --> 01:00:12,580 >> Diváků: Heidi. 1321 01:00:12,580 --> 01:00:12,940 >> ANDI PENG: Sorry? 1322 01:00:12,940 --> 01:00:13,280 >> Diváků: Heidi. 1323 01:00:13,280 --> 01:00:13,988 >> ANDI PENG: Heidi. 1324 01:00:13,988 --> 01:00:15,850 Jako řekla Heidi zpočátku, my jsme nejspíš 1325 01:00:15,850 --> 01:00:20,330 bude potřebovat the-- jsme pravděpodobně bude muset odečíst 1326 01:00:20,330 --> 01:00:22,630 32 z jakéhokoli charc to je, že jo? 1327 01:00:22,630 --> 01:00:24,680 Vzhledem k tomu, na ASCII stůl, rozdíl 1328 01:00:24,680 --> 01:00:27,790 mezi malým písmenem a velké písmeno je 32. 1329 01:00:27,790 --> 01:00:31,290 Takže, když to děláme, jsme nejspíš bude chtít odečíst 32, ne? 1330 01:00:31,290 --> 01:00:33,910 >> Takže budeme dělat S i. 1331 01:00:33,910 --> 01:00:37,590 1332 01:00:37,590 --> 01:00:41,200 Má každý pochopit, proč jsem to udělal? 1333 01:00:41,200 --> 01:00:45,760 Protože právě teď, v našem poli, jsme kontrolu 0. index, že jo? 1334 01:00:45,760 --> 01:00:49,190 A v 0. indexu řetězec, to je první znak. 1335 01:00:49,190 --> 01:00:51,820 A že postava jedeme předpokládat, že je to malá písmena. 1336 01:00:51,820 --> 01:00:55,980 Pokud chceme, aby to velká písmena, my muset odečíst 32 z jeho hodnoty, 1337 01:00:55,980 --> 01:00:58,620 proto, že v naší ASCII stůl, to je, jak jsme si to 1338 01:00:58,620 --> 01:01:01,600 na další odpovídající hodnota, která dělá to velká. 1339 01:01:01,600 --> 01:01:03,714 Rozumějí, že? 1340 01:01:03,714 --> 01:01:04,213 To jo. 1341 01:01:04,213 --> 01:01:06,530 >> Diváků: Mohl byste také to malá písmena a minus-- 1342 01:01:06,530 --> 01:01:08,080 >> ANDI PENG: Jo, tak to je ve skutečnosti opravdu dobře. 1343 01:01:08,080 --> 01:01:10,455 Chystám se vrátit k tomu Otázka poté, co jsme udělat. 1344 01:01:10,455 --> 01:01:11,060 To jo. 1345 01:01:11,060 --> 01:01:13,940 A pak, když chci zjistit, co se děje, 1346 01:01:13,940 --> 01:01:16,180 Já nejspíš chcete vytisknout, ne? 1347 01:01:16,180 --> 01:01:19,930 Někdo mi řekl, co Chci vytisknout zde. 1348 01:01:19,930 --> 01:01:29,160 >> Publikum: printf procent c zpětné lomítko [neslyšitelných]. 1349 01:01:29,160 --> 01:01:33,570 To je hodnota [neslyšitelný] s i. 1350 01:01:33,570 --> 01:01:34,614 >> ANDI PENG: s i, omlouvám? 1351 01:01:34,614 --> 01:01:35,530 Diváků: [Neslyšitelné]. 1352 01:01:35,530 --> 01:01:38,550 1353 01:01:38,550 --> 01:01:39,550 ANDI PENG: Já nevím. 1354 01:01:39,550 --> 01:01:40,600 Co myslíš? 1355 01:01:40,600 --> 01:01:44,016 >> Publikum: No, já wouldn't-- Myslím, že by nebylo bring-- 1356 01:01:44,016 --> 01:01:46,944 Vzal bych ji z dovnitř, protože [neslyšitelný]. 1357 01:01:46,944 --> 01:01:49,726 1358 01:01:49,726 --> 01:01:51,392 ANDI PENG: Oh, bys udělal? 1359 01:01:51,392 --> 01:01:53,867 Diváků: Jo. 1360 01:01:53,867 --> 01:01:56,700 ANDI PENG: Nechme to tak, jak to je, a já ti to vysvětlím, proč později. 1361 01:01:56,700 --> 01:01:58,533 Pamatujte si, že i když mají zástupnou, 1362 01:01:58,533 --> 01:02:00,701 Chcete-li vložit závorky kolem něj. 1363 01:02:00,701 --> 01:02:01,200 Dobře. 1364 01:02:01,200 --> 01:02:04,810 Tak by to mělo být solidní funkci zde. 1365 01:02:04,810 --> 01:02:06,370 Pojďme jej spustíme a uvidíme, jestli to přeloží. 1366 01:02:06,370 --> 01:02:08,750 Udělat horní. 1367 01:02:08,750 --> 01:02:09,250 Uh-oh. 1368 01:02:09,250 --> 01:02:12,030 1369 01:02:12,030 --> 01:02:13,340 To nevypadá moc dobře. 1370 01:02:13,340 --> 01:02:14,507 Proč se to děje? 1371 01:02:14,507 --> 01:02:17,340 Stejně jako u jakékoli chyby, chceš jít zpět a začít s první, 1372 01:02:17,340 --> 01:02:20,630 neboť obvykle jednou příčin chyb spousta jiných chyb po něm. 1373 01:02:20,630 --> 01:02:26,700 Zde vidíme upper.c: 18: 25, který říká, mě v tomto programu s názvem upper.c, 1374 01:02:26,700 --> 01:02:33,800 na lince 18, error implicitně deklarovat knihovna funkcí strlen s typem 1375 01:02:33,800 --> 01:02:36,330 unassigned-- blah, nevím co se děje po tom. 1376 01:02:36,330 --> 01:02:39,990 >> Vše, co to je mi říct, teď je že se něco děje na strlen. 1377 01:02:39,990 --> 01:02:43,520 A počítač je zmatená, protože je to jako, já nevím, co je strlen? 1378 01:02:43,520 --> 01:02:45,520 Co to asi řeknu vám chybí? 1379 01:02:45,520 --> 01:02:46,490 >> Diváků: Ty chybí [neslyšitelných]. 1380 01:02:46,490 --> 01:02:47,630 >> ANDI PENG: Máš pravdu. 1381 01:02:47,630 --> 01:02:49,510 Přesně tak. 1382 01:02:49,510 --> 01:02:52,140 Takže tohle je místo, kde je to důležité se ujistit, 1383 01:02:52,140 --> 01:02:56,970 že každá funkce, kterou používáte ve vašem kód má správnou hlavičku 1384 01:02:56,970 --> 01:02:59,660 soubor pro knihovnu, nebo jinak budete mít spoustu chyb 1385 01:02:59,660 --> 01:03:01,150 a váš kód nebude vědět, co se děje. 1386 01:03:01,150 --> 01:03:03,050 Takže budeme tu zahrnout string.h. 1387 01:03:03,050 --> 01:03:06,270 >> Teď, když se snažíme sestavit horní. 1388 01:03:06,270 --> 01:03:08,410 Kompilace správně. 1389 01:03:08,410 --> 01:03:09,960 Pojďme tento program spustit. 1390 01:03:09,960 --> 01:03:12,000 Takže psát něco malými písmeny. 1391 01:03:12,000 --> 01:03:14,920 Co si kluci chcete psát? 1392 01:03:14,920 --> 01:03:16,546 Shout něco. 1393 01:03:16,546 --> 01:03:17,920 Dobře, Charly právě vešel. 1394 01:03:17,920 --> 01:03:18,990 Budeme psát Charly jméno. 1395 01:03:18,990 --> 01:03:21,670 1396 01:03:21,670 --> 01:03:22,840 >> Charly malými písmeny. 1397 01:03:22,840 --> 01:03:27,742 A doufejme, doufejme, že to je jít vykřiknout a vyplivnout 1398 01:03:27,742 --> 01:03:28,575 Charly velkými písmeny. 1399 01:03:28,575 --> 01:03:30,830 Hurá! 1400 01:03:30,830 --> 01:03:33,430 to všichni pochopili, jak Šel jsem o řešení, že? 1401 01:03:33,430 --> 01:03:36,190 Tak, že mohu manipulovat pomocí celých čísel 1402 01:03:36,190 --> 01:03:39,410 vyřešit něco, Chci dělat v řetězcích, 1403 01:03:39,410 --> 01:03:44,390 proto, že postavy a celá čísla mohou odkazovat stejným způsobem, protože 1404 01:03:44,390 --> 01:03:45,540 mapování ASCII. 1405 01:03:45,540 --> 01:03:52,890 >> Takže jít zpět do bodu, když jsem chtěl dát tu namísto 32 1406 01:03:52,890 --> 01:03:58,959 velká mínus malá písmena spravedlivý jako že, že bude fungovat stejně i, 1407 01:03:58,959 --> 01:04:01,750 protože to je prostě jen Rozdíl mezi těmito dvěma hodnotami. 1408 01:04:01,750 --> 01:04:09,570 Pokud chci, aby tento again-- Charly. 1409 01:04:09,570 --> 01:04:10,320 Ale ne. 1410 01:04:10,320 --> 01:04:11,820 Myslím si, že jsme se vydali špatným směrem, jo? 1411 01:04:11,820 --> 01:04:13,260 >> Diváků: [Neslyšitelné] malá písmena a. 1412 01:04:13,260 --> 01:04:14,260 >> ANDI PENG: Tady to je. 1413 01:04:14,260 --> 01:04:22,380 1414 01:04:22,380 --> 01:04:22,880 Jo. 1415 01:04:22,880 --> 01:04:24,920 A z plive Charly. 1416 01:04:24,920 --> 01:04:28,020 Takže buďte opatrní při jste odečtením hodnoty 1417 01:04:28,020 --> 01:04:30,400 mít na paměti, který z nich je větší než druhý. 1418 01:04:30,400 --> 01:04:35,220 Například, tady jsem zapomněl že malá a je ve skutečnosti 1419 01:04:35,220 --> 01:04:38,540 větší než velká písmena A. takže když jsem se Snažil se jim odečíst na druhou stranu 1420 01:04:38,540 --> 01:04:40,600 kolem, mám negativní 32. 1421 01:04:40,600 --> 01:04:42,800 A můj počítač byl rád, Já nevím, co to je. 1422 01:04:42,800 --> 01:04:45,810 Je to pravděpodobnost, jen nějaký náhodný hodnota, která není moc dobré. 1423 01:04:45,810 --> 01:04:48,760 A tak se ujistěte, že jste se odečte ve správné délce 1424 01:04:48,760 --> 01:04:52,831 najít požadovaný znak. 1425 01:04:52,831 --> 01:04:53,330 DOBŘE. 1426 01:04:53,330 --> 01:04:58,550 Je někdo zmatený o tom, jak šlo o psaní této funkce? 1427 01:04:58,550 --> 01:04:59,180 DOBŘE. 1428 01:04:59,180 --> 01:05:04,830 Takže ve skutečnosti, funkce již existuje v knihovně s názvem ctype.h. 1429 01:05:04,830 --> 01:05:06,417 Knihovně se jmenuje ctype.h. 1430 01:05:06,417 --> 01:05:08,500 Tato funkce je ve skutečnosti již napsán pro vás. 1431 01:05:08,500 --> 01:05:10,820 Je to jen na horní. 1432 01:05:10,820 --> 01:05:13,027 >> A tak pro účely tento pset, budete 1433 01:05:13,027 --> 01:05:15,860 zjistíte, že opravdu chcete použít mnoho funkcí obsahovala 1434 01:05:15,860 --> 01:05:17,390 v knihovně CType. 1435 01:05:17,390 --> 01:05:21,040 Chcete-li horní, snížit, je horní, je lower-- ty jsou všechny funkce 1436 01:05:21,040 --> 01:05:24,914 že budete moci používat velmi, velmi rychle ve vlastním kódu, který 1437 01:05:24,914 --> 01:05:26,080 dělá přesně to, co to dělá. 1438 01:05:26,080 --> 01:05:28,941 Napsali jsme na to, jak převést řetězec na velká písmena. 1439 01:05:28,941 --> 01:05:31,440 To je však ve skutečnosti kód že někdo jiný napsal 1440 01:05:31,440 --> 01:05:33,800 a že můžete přistupovat přes jinou funkci. 1441 01:05:33,800 --> 01:05:34,300 To jo? 1442 01:05:34,300 --> 01:05:39,570 >> Diváků: Takže stačí zkopírovat je tam a to pro každou dopis? 1443 01:05:39,570 --> 01:05:42,070 >> ANDI PENG: Jo, protože se mi nelíbí péče o hodnotách a. 1444 01:05:42,070 --> 01:05:44,540 Jen mě to zajímá, že rozdíl mezi nimi je 32, ne? 1445 01:05:44,540 --> 01:05:48,210 Rozdíl mezi malými písmeny b a velká písmena B, je také 32. 1446 01:05:48,210 --> 01:05:50,860 A rozdíl mezi C a velká písmena C je vždy 32. 1447 01:05:50,860 --> 01:05:53,235 >> Jen jsem se starat o rozdíl mezi těmito dvěma, 1448 01:05:53,235 --> 01:05:56,666 protože všechny dopisy následovat stejný vzor, ​​je to tak? 1449 01:05:56,666 --> 01:05:58,540 Mám-li rozdíl mezi jedním z nich, 1450 01:05:58,540 --> 01:06:01,050 Vím, jaký je rozdíl mezi všemi z nich je. 1451 01:06:01,050 --> 01:06:01,740 Dobrá otázka. 1452 01:06:01,740 --> 01:06:04,090 To jo. 1453 01:06:04,090 --> 01:06:06,660 Všichni dobře? 1454 01:06:06,660 --> 01:06:09,080 DOBŘE. 1455 01:06:09,080 --> 01:06:09,580 OOP. 1456 01:06:09,580 --> 01:06:14,380 1457 01:06:14,380 --> 01:06:15,270 >> DOBŘE. 1458 01:06:15,270 --> 01:06:20,310 Takže další koncept, který je Bude velmi užitečné jako vy 1459 01:06:20,310 --> 01:06:22,570 pokračovat ve vývoji váš kód je tento nápad, 1460 01:06:22,570 --> 01:06:25,430 vytváření funkcí nebo abstrakci. 1461 01:06:25,430 --> 01:06:28,479 Takže teď jsme všichni vzít algebry. 1462 01:06:28,479 --> 01:06:31,770 V algebře, budete se učí, že existuje to úžasná věc s názvem funkce 1463 01:06:31,770 --> 01:06:35,300 Stroj, kde pokud jste vstup jednoho druhu čísla, 1464 01:06:35,300 --> 01:06:38,720 to projde této nádherné funkce a se objeví jiný výstup, ne? 1465 01:06:38,720 --> 01:06:42,220 V kódu, totéž se děje v nějakém druhu funkce. 1466 01:06:42,220 --> 01:06:48,230 >> Tak jsem mohl fyzicky napsat v mém těle mém kódu 1467 01:06:48,230 --> 01:06:52,357 hlavní prohlášení, že vlastně dělá bez ohledu na tělo kódu dělá. 1468 01:06:52,357 --> 01:06:54,940 Ale mimo to, že mohu také napsat mnoho různých funkcí, 1469 01:06:54,940 --> 01:06:56,320 že dělat mnoho různých věcí. 1470 01:06:56,320 --> 01:06:58,570 Například, máme již začali používat některé z nich. 1471 01:06:58,570 --> 01:07:00,610 Printf--, že je Funkce, že někdo jiný 1472 01:07:00,610 --> 01:07:02,870 již napsal, že můžeme zavolat našeho kódu. 1473 01:07:02,870 --> 01:07:05,410 K upper-- v tomto případě, upper-- je další funkce 1474 01:07:05,410 --> 01:07:07,330 psali jsme, že my může zavolat našeho kódu. 1475 01:07:07,330 --> 01:07:09,520 A tak myslím proč máme dokonce funkce? 1476 01:07:09,520 --> 01:07:12,100 Proč ne my jen plop to vše ve stejném řádku kódu? 1477 01:07:12,100 --> 01:07:13,730 To usnadňuje pro každého. 1478 01:07:13,730 --> 01:07:19,200 >> No, důvody, které je v první řadě, organizace. 1479 01:07:19,200 --> 01:07:21,880 Je to opravdu nepříjemné jít prostřednictvím kódu něčí 1480 01:07:21,880 --> 01:07:25,110 a jednu funkci, jako printf. 1481 01:07:25,110 --> 01:07:28,570 Pokud vy vlastně ví, co Funkce printf znamenalo psát, 1482 01:07:28,570 --> 01:07:30,530 je to, jako, 1000 řádků kódu. 1483 01:07:30,530 --> 01:07:32,357 >> Pokud pokaždé, když jsem chtěl printf na něco, 1484 01:07:32,357 --> 01:07:35,440 Musel jsem psát 1000 řádků kódu, to by bylo opravdu otravné číst, 1485 01:07:35,440 --> 01:07:36,290 v pořádku? 1486 01:07:36,290 --> 01:07:38,860 To je důvod, proč jsme právě vytvořil tento abstraktní funkce 1487 01:07:38,860 --> 01:07:41,670 že máme už někoho jiný napsal někde jinde. 1488 01:07:41,670 --> 01:07:44,920 A pokaždé, když musíme použít v náš kód, budeme muset říci printf. 1489 01:07:44,920 --> 01:07:48,070 A to je schopen používat funkci někdo jiný něco napsal do našeho kódu. 1490 01:07:48,070 --> 01:07:51,020 To usnadňuje organizačně přečíst kód. 1491 01:07:51,020 --> 01:07:53,460 >> Za druhé, je to zjednodušení. 1492 01:07:53,460 --> 01:07:56,750 To zjednodušuje kroky, které máme aby k vyřešení náš problém. 1493 01:07:56,750 --> 01:07:59,300 Printf, funkce jako printf, funkce, jako na horním 1494 01:07:59,300 --> 01:08:03,560 jsou všechno věci, které nám umožňují, aby zjednodušit náš kód dolů, takže je to jednodušší. 1495 01:08:03,560 --> 01:08:05,830 A poslední věc, kterou je znovupoužitelnost. 1496 01:08:05,830 --> 01:08:08,710 >> Takže k tomu, že máme funkce nazvaná printf 1497 01:08:08,710 --> 01:08:11,990 které můžeme nazvat mnoho různých časy a umožňuje, aby byly znovu použitelné. 1498 01:08:11,990 --> 01:08:14,980 Pokud bych měl napsat printf, Jen jsem jednou napsat. 1499 01:08:14,980 --> 01:08:16,439 Existuje pouze v tomto jednom místě. 1500 01:08:16,439 --> 01:08:19,890 Kdybych chtěl udělat znovu, udělala bych to muset zkopírovat a vložit všechno 1501 01:08:19,890 --> 01:08:21,760 do můj druhý řádek kódu. 1502 01:08:21,760 --> 01:08:24,880 To je důvod, proč, když jsme vytvořit funkci že existuje mimo naše hlavní, 1503 01:08:24,880 --> 01:08:26,880 můžeme jen vyzýváme to a znovu použít kdykoli 1504 01:08:26,880 --> 01:08:29,604 Potřebujeme tak, že je to mnohem snazší pro nás jako programy psát. 1505 01:08:29,604 --> 01:08:32,220 1506 01:08:32,220 --> 01:08:35,549 >> Takže tak, že bychom vlastně napsat funkce je velmi podobná, ne? 1507 01:08:35,549 --> 01:08:37,590 To je tak trochu jako první případ, kdy jsme vám 1508 01:08:37,590 --> 01:08:42,830 viz funkci Vezměte na stylu jiný než naše int main prázdnoty. 1509 01:08:42,830 --> 01:08:46,779 V tomto případě, pokud jsem chtěl napsat funkci nazvanou q, že jo? 1510 01:08:46,779 --> 01:08:49,370 >> A hodnota tady int vše je mi říct, 1511 01:08:49,370 --> 01:08:51,649 Co chci to fungují tak, že se ke mně? 1512 01:08:51,649 --> 01:08:54,484 Pokud chci, aby kostka celé číslo, Budu chtít, aby vstup. 1513 01:08:54,484 --> 01:08:55,525 Jedná se o parametry. 1514 01:08:55,525 --> 01:08:58,490 Chystám se vstupy hodnotu typu int. 1515 01:08:58,490 --> 01:09:01,300 A já se vrátit jiný typ hodnota int. 1516 01:09:01,300 --> 01:09:03,050 A tady, jako vy vidíte, všechno dělám 1517 01:09:03,050 --> 01:09:07,300 je Cubing co můj vstup je jako můj výstup a vrácením. 1518 01:09:07,300 --> 01:09:10,790 >> Takže všechno je tato funkce dělá, je zabere nějaký celé číslo. 1519 01:09:10,790 --> 01:09:14,979 Dvakrát to násobí to samo o sobě tak, že se kostky v platnosti. 1520 01:09:14,979 --> 01:09:17,729 A pak se to vrátí co to výstup je. 1521 01:09:17,729 --> 01:09:20,540 Takže v tomto případě, je to dva řádky kód, který jsme museli psát navíc. 1522 01:09:20,540 --> 01:09:22,880 Ale pokud jsme chtěli zavolat na těchto vícekrát, 1523 01:09:22,880 --> 01:09:26,210 je to mnohem jednodušší psát, že jeden linka tady to je v krychli, než 1524 01:09:26,210 --> 01:09:28,830 muset projít vícekrát. 1525 01:09:28,830 --> 01:09:34,180 >> Takže tak, že v podstatě jakákoliv formátování pro nějaký druh funkce 1526 01:09:34,180 --> 01:09:36,420 bude existovat jako je sem. 1527 01:09:36,420 --> 01:09:38,659 Takže máme název funkce. 1528 01:09:38,659 --> 01:09:39,950 V tomto případě, je to jen kostka. 1529 01:09:39,950 --> 01:09:42,033 A my to jméno krychli z následujících důvodů je to snadno zapamatovatelné. 1530 01:09:42,033 --> 01:09:44,220 Můžete pojmenovat je a náměstí to může být ve skutečnosti cubed. 1531 01:09:44,220 --> 01:09:45,500 Nezáleží na tom. 1532 01:09:45,500 --> 01:09:48,020 Jen jméno, které jste přiřazení svou funkci. 1533 01:09:48,020 --> 01:09:51,660 >> Toto právo je zde, int, je typ parametru, který potřebujete. 1534 01:09:51,660 --> 01:09:54,149 Takže to, co dělá tuto funkci je třeba, aby fungoval? 1535 01:09:54,149 --> 01:09:55,990 No, musí na to mít vstup. 1536 01:09:55,990 --> 01:09:56,704 Pojmenoval jsem ji vstupu. 1537 01:09:56,704 --> 01:09:58,120 Můžete pojmenovat to, co chcete. 1538 01:09:58,120 --> 01:10:00,500 Ale já potřebuji něco typu int. 1539 01:10:00,500 --> 01:10:03,730 Bude to vlastně vykonat co je uvnitř tady, 1540 01:10:03,730 --> 01:10:04,990 tělo funkce. 1541 01:10:04,990 --> 01:10:07,847 A pak návratový typ tady, to int-- 1542 01:10:07,847 --> 01:10:09,680 vše, co mi říká, je že tato funkce je 1543 01:10:09,680 --> 01:10:11,250 vracet ke mně v int. 1544 01:10:11,250 --> 01:10:14,460 Takže to bude trvat do int, a to bude vám zpět int. 1545 01:10:14,460 --> 01:10:17,750 Má každý pochopit, jak formátování tohoto druhu funguje? 1546 01:10:17,750 --> 01:10:18,250 Bezva. 1547 01:10:18,250 --> 01:10:24,690 1548 01:10:24,690 --> 01:10:25,740 >> DOBŘE. 1549 01:10:25,740 --> 01:10:31,770 Takže nemusíte mít strach, pokud se to zdá trochu abstraktní teď hned. 1550 01:10:31,770 --> 01:10:33,450 To je něco, co budeme mluvit. 1551 01:10:33,450 --> 01:10:36,310 Budeme ponořit hlouběji později v kurzu. 1552 01:10:36,310 --> 01:10:41,170 Způsob, jakým nějaký druh vyšší úrovně abstrakce z těchto věcí práce 1553 01:10:41,170 --> 01:10:43,530 je to, že v paměti, v počítač, všechno 1554 01:10:43,530 --> 01:10:47,660 je uložen v tomto typu ze zásobníku, mám říct. 1555 01:10:47,660 --> 01:10:49,070 >> Takže tam nahoře. 1556 01:10:49,070 --> 01:10:50,861 Já nevím, jestli vás lidi vidět, že dobře. 1557 01:10:50,861 --> 01:10:52,590 Pokusím se přiblížit. 1558 01:10:52,590 --> 01:10:55,111 Zde v horní části, jsme mají fyzikální textu 1559 01:10:55,111 --> 01:10:57,860 z toho, co je počítač interpreting-- všechny nuly a ty, které 1560 01:10:57,860 --> 01:10:59,540 existují v našem počítači. 1561 01:10:59,540 --> 01:11:03,390 A pak máme inicializaci datových a neinicializované dat, 1562 01:11:03,390 --> 01:11:05,340 to, čemu říkáme globální proměnné. 1563 01:11:05,340 --> 01:11:08,200 Takže proměnných, které existují ve všech programech 1564 01:11:08,200 --> 01:11:11,815 a přes vaše celokrajné, v podstatě, kód. 1565 01:11:11,815 --> 01:11:13,940 Žádné starosti, jestli vy jste druh nejasný na toto téma. 1566 01:11:13,940 --> 01:11:16,060 Právě teď nezáleží. 1567 01:11:16,060 --> 01:11:18,680 >> A pak máme to, co je volal haldy v zásobníku. 1568 01:11:18,680 --> 01:11:21,140 Myslete na zásobníku doslova jako stejně jako hromadu věcí, 1569 01:11:21,140 --> 01:11:23,098 hromadu jiný věci, tlačí na vrchol 1570 01:11:23,098 --> 01:11:27,870 na sobě, že ukládat různé proměnné a syntax v rámci vašeho kódu. 1571 01:11:27,870 --> 01:11:31,460 A pak tady na samém dně, máme proměnné prostředí 1572 01:11:31,460 --> 01:11:35,480 na to, co se v rámci provádění Jen váš malý řádek kódu. 1573 01:11:35,480 --> 01:11:40,510 >> A my jsme jen tak pro zvětšení v na skutečné části zásobníku. 1574 01:11:40,510 --> 01:11:43,880 Tak tady, když jsme byli na zvětšení v jen na tuto oblast stohu, 1575 01:11:43,880 --> 01:11:45,140 to je to, co to vypadá. 1576 01:11:45,140 --> 01:11:48,590 A to je vlastně docela důležitá když kluci mluví o funkcích, 1577 01:11:48,590 --> 01:11:52,330 protože oznámení, že paměti počítače 1578 01:11:52,330 --> 01:11:55,600 ukládá proměnné a funkce 1579 01:11:55,600 --> 01:11:58,790 a parametry obou vašich funkce a vaše hlavní proměnné 1580 01:11:58,790 --> 01:12:00,190 na různých místech. 1581 01:12:00,190 --> 01:12:03,390 >> Takže teď, hlavní je skutečné funkce 1582 01:12:03,390 --> 01:12:04,780 že jste vykonávající v kódu. 1583 01:12:04,780 --> 01:12:08,050 Vy jste jeho parametry uloženy zde a její lokální proměnné uloženy zde. 1584 01:12:08,050 --> 01:12:12,270 Místní proměnná prostě znamená jakékoliv proměnné že existují pouze v rámci této funkce. 1585 01:12:12,270 --> 01:12:15,610 A na vrcholu toho, máte to samostatná funkce nazývá krychle. 1586 01:12:15,610 --> 01:12:18,240 Máte to parametry stejně jako ty místní. 1587 01:12:18,240 --> 01:12:21,540 >> A důvod, proč můžete vidíte, je to, co 1588 01:12:21,540 --> 01:12:25,030 se stane, když kostka má v Hodnota z vaší hlavní funkce 1589 01:12:25,030 --> 01:12:27,640 je, že ve skutečnosti je to, že více než kopírování. 1590 01:12:27,640 --> 01:12:31,470 Takže když jsem chtěl krychle 2 a vrátí 8, že 2 1591 01:12:31,470 --> 01:12:33,730 je vlastně zadaná jako parametr, a to 1592 01:12:33,730 --> 01:12:37,690 zkopírovány tak, že máte to stávající ve dvou různých místech v paměti. 1593 01:12:37,690 --> 01:12:40,520 A vy musíte být velmi opatrní na zapamatování, který z těch, 1594 01:12:40,520 --> 01:12:42,520 jste skutečně manipulaci. 1595 01:12:42,520 --> 01:12:47,170 A příklad toho, co se stalo že by bylo velmi, velmi špatný 1596 01:12:47,170 --> 01:12:48,050 Existuje tady. 1597 01:12:48,050 --> 01:12:50,760 1598 01:12:50,760 --> 01:12:58,650 >> Tak tady, mám, teoreticky, program tady, hlavní funkce 1599 01:12:58,650 --> 01:13:02,180 že jsem deklarovat int x = 1. 1600 01:13:02,180 --> 01:13:04,505 Jsem deklarovat další int y rovná 2. 1601 01:13:04,505 --> 01:13:06,380 A pak jsem to běh Pomocí této funkce 1602 01:13:06,380 --> 01:13:09,647 volal odkládacím prostorem, kde předpokládám, že je to vymění dvě hodnoty. 1603 01:13:09,647 --> 01:13:11,480 A pak budu vytisknout je, že jo? 1604 01:13:11,480 --> 01:13:13,220 To je to, co chci tento program dělat. 1605 01:13:13,220 --> 01:13:15,180 >> Takže pojďme se přijít dolů a podívat se. 1606 01:13:15,180 --> 01:13:18,200 Takže když jsem vlastně psát jiný funkce, jak můžete vidět, 1607 01:13:18,200 --> 01:13:19,750 máme hlavní funkce zde. 1608 01:13:19,750 --> 01:13:22,860 A pak Máme druhá funkce zde. 1609 01:13:22,860 --> 01:13:24,520 Void swapu. 1610 01:13:24,520 --> 01:13:27,090 Void prostě znamená, že je to nebude vracet nic. 1611 01:13:27,090 --> 01:13:28,930 Jméno funkce je volal swapu, a to je 1612 01:13:28,930 --> 01:13:33,730 jít na příjmu dvě proměnné, int a a int b, z vašeho [neslyšitelný] funkce. 1613 01:13:33,730 --> 01:13:39,010 >> Takže v podstatě tady, my jsme kolem x a y do této funkce. 1614 01:13:39,010 --> 01:13:40,760 A kdybychom se vytvořit tohle-- takže chceme 1615 01:13:40,760 --> 01:13:42,420 vytvořit dočasný hodnotu, je to tak? 1616 01:13:42,420 --> 01:13:43,930 Budeme přiřadit, že pro a. 1617 01:13:43,930 --> 01:13:45,388 A pak bude nyní rovné b. 1618 01:13:45,388 --> 01:13:47,660 A b bude zpátky kde byla hodnota temp, 1619 01:13:47,660 --> 01:13:51,070 což je, protože když Chcete-li vyměnit věci, 1620 01:13:51,070 --> 01:13:52,320 můžete nejen rád je vyměnit. 1621 01:13:52,320 --> 01:13:54,360 >> Musíte mít jeden ven tady tak, že si pamatuje 1622 01:13:54,360 --> 01:13:56,485 co to je, protože jakmile zaměňovat jedno, jste zapomněl 1623 01:13:56,485 --> 01:13:58,200 co to původní hodnota byla, že jo? 1624 01:13:58,200 --> 01:14:00,990 Takže v teorii, tento program by měly fungovat, ne? 1625 01:14:00,990 --> 01:14:03,630 Kdybych chtěl prohodit dva, by měly vyměnit. 1626 01:14:03,630 --> 01:14:05,490 Takže pojďme spustit, a uvidíme, jestli to funguje. 1627 01:14:05,490 --> 01:14:11,130 1628 01:14:11,130 --> 01:14:16,940 >> Tak jako vy můžete vidět, x byl kdysi 1 a Y byl jednou 2. 1629 01:14:16,940 --> 01:14:21,475 A když jsem vytisknout, x je stále 1 a y je 2. 1630 01:14:21,475 --> 01:14:25,970 Hmm, tento program se nezdá být pracuje tak, že chci, aby to fungovat. 1631 01:14:25,970 --> 01:14:29,950 Má někdo chtěl mít šanci na hádat, proč se to dělo? 1632 01:14:29,950 --> 01:14:34,430 To má co do činění s tím, jak že různé věci jsou 1633 01:14:34,430 --> 01:14:38,172 uloženy na různých místech v paměti. 1634 01:14:38,172 --> 01:14:39,377 >> DOBŘE. 1635 01:14:39,377 --> 01:14:41,960 Takže vy nemusíte mít strach příliš mnoho o tom právě teď. 1636 01:14:41,960 --> 01:14:46,610 Ale vím, že kostka je místní proměnné byly a a b, 1637 01:14:46,610 --> 01:14:49,230 protože tady v naší funkci, jsme prohlásil, A a B 1638 01:14:49,230 --> 01:14:53,570 jako proměnné, které existují uvnitř krychle, že funkce. 1639 01:14:53,570 --> 01:14:59,490 Ale jak vidíte, parametry, které je to přičemž v tu byly uloženy. 1640 01:14:59,490 --> 01:15:01,370 Ale byli jsme vlastně vracet nic. 1641 01:15:01,370 --> 01:15:03,120 Nebyli jsme skutečně mění, x a y. 1642 01:15:03,120 --> 01:15:04,440 Jen jsme si změnu a a b. 1643 01:15:04,440 --> 01:15:08,340 >> Měli jsme zkopírovali x a y do takzvaný a b. 1644 01:15:08,340 --> 01:15:11,092 Ale my jsme vlastně nikdy manipulovat x a y sami. 1645 01:15:11,092 --> 01:15:12,800 Vy jste kluci vidí jak se to děje? 1646 01:15:12,800 --> 01:15:16,140 Je, že jsme prostě zkopírován u konce, ale my jsme vlastně stále 1647 01:15:16,140 --> 01:15:18,030 trať, kde byli v paměti. 1648 01:15:18,030 --> 01:15:20,127 >> A tak teď počítač hledá, oh, jsem 1649 01:15:20,127 --> 01:15:21,960 spustit tuto věc prostřednictvím tento krásný funkce. 1650 01:15:21,960 --> 01:15:23,690 Ale x a y jsou stále x a y. 1651 01:15:23,690 --> 01:15:26,240 Nic se nestalo, aby je vzhledem k tomu, 1652 01:15:26,240 --> 01:15:28,340 že těchto parametrů a lokální proměnné 1653 01:15:28,340 --> 01:15:30,150 jsou uloženy v jiném místo v paměti. 1654 01:15:30,150 --> 01:15:32,030 A to je na vyšší úrovni Koncept, že budeme 1655 01:15:32,030 --> 01:15:34,300 začnete vidět později v kurzu. 1656 01:15:34,300 --> 01:15:36,950 Ale vím, že je to o problém, který se může stát 1657 01:15:36,950 --> 01:15:41,400 a že budeme vymyslet způsoby, jak na to, jak se s tím později v kurzu. 1658 01:15:41,400 --> 01:15:41,900 DOBŘE. 1659 01:15:41,900 --> 01:15:47,750 1660 01:15:47,750 --> 01:15:48,250 Dobře. 1661 01:15:48,250 --> 01:15:51,780 Takže poslední koncept jsme opravdu pokrýt 1662 01:15:51,780 --> 01:15:53,880 že to bude užitečné, pro pset tento týden 1663 01:15:53,880 --> 01:15:56,060 jsou, co se nazývá argumenty příkazového řádku. 1664 01:15:56,060 --> 01:16:00,820 Tak Rob ve své přednášce prošel druh krátce na to, jak tyto práce. 1665 01:16:00,820 --> 01:16:02,770 V podstatě víme, že když píšete 1666 01:16:02,770 --> 01:16:06,280 jako hlavní funkci, kdy jsme napsal funkcí předtím, než v minulosti, 1667 01:16:06,280 --> 01:16:07,804 jsme měli int main neplatné. 1668 01:16:07,804 --> 01:16:10,470 A důvod, proč jsme měli tam void bylo proto, že naše programy, není 1669 01:16:10,470 --> 01:16:12,520 je třeba, aby vstupní hodnoty pro spuštění, je to tak? 1670 01:16:12,520 --> 01:16:16,020 Když jsem běžel Mario, nepotřeboval jsem skutečně stačí napsat do něčeho 1671 01:16:16,020 --> 01:16:16,970 když jsem běžel Mario. 1672 01:16:16,970 --> 01:16:20,170 Mohl bych vyzvat uživatele později. 1673 01:16:20,170 --> 01:16:22,450 Ale to není tak být vždy. 1674 01:16:22,450 --> 01:16:24,980 >> Například, v tomto týden problém soupravy, 1675 01:16:24,980 --> 01:16:28,365 budete dotázáni, že v Kromě spuštění vašeho programu, 1676 01:16:28,365 --> 01:16:30,990 budete chtít vstup některé věci v přímé, jak budete 1677 01:16:30,990 --> 01:16:32,050 spusťte program. 1678 01:16:32,050 --> 01:16:34,720 Takže způsob, jak to udělat, je nazýván příkazového řádku argument, který 1679 01:16:34,720 --> 01:16:37,280 je jako argument můžete zadat přímo 1680 01:16:37,280 --> 01:16:39,260 jak se snažíte spustit program. 1681 01:16:39,260 --> 01:16:44,680 >> Takže zápis pro to, je to docela složité vypadající, 1682 01:16:44,680 --> 01:16:47,320 ale je to opravdu není tak obtížné. Tak int main-- 1683 01:16:47,320 --> 01:16:48,910 to je jen vaše hlavní funkce. 1684 01:16:48,910 --> 01:16:52,110 Do argc čárkou řetězec argv závorkách. 1685 01:16:52,110 --> 01:16:56,040 Takže vše, co říká, je, že to int argc-- vše, co říkám 1686 01:16:56,040 --> 01:17:00,560 je to, že to jsou počet argumenty počítač by měl očekávat. 1687 01:17:00,560 --> 01:17:03,130 >> Takže jedna věc, která je opravdu důležité sledovat 1688 01:17:03,130 --> 01:17:07,080 je fyzický název vašeho programu se počítá jako jeden z těchto argumentů. 1689 01:17:07,080 --> 01:17:11,080 Takže když jsem chtěl mít svůj program spustit a ještě jeden další příkazový řádek 1690 01:17:11,080 --> 01:17:13,310 Argument, že jsem vlastně bude mít dva. 1691 01:17:13,310 --> 01:17:15,080 Argc to vlastně bude dva. 1692 01:17:15,080 --> 01:17:18,010 A pak řetězec argv bracket-- vše, co dělá, 1693 01:17:18,010 --> 01:17:20,410 to dává mi Pole řetězců, které je 1694 01:17:20,410 --> 01:17:24,870 bude jen zobrazovat a ukládat co všechny tyto argumenty příkazového řádku jsou. 1695 01:17:24,870 --> 01:17:34,090 >> Tak například, když jsem chtěl, aby to Program, ./copy vstupní-soubor výstupní-soubor, je to tak? 1696 01:17:34,090 --> 01:17:37,330 To je jen typický příkaz Linux. 1697 01:17:37,330 --> 01:17:38,830 Co je to vlastně argc? 1698 01:17:38,830 --> 01:17:41,320 Kolik argumenty příkazového řádku jsou tam vlastně v tom? 1699 01:17:41,320 --> 01:17:45,130 To vše dělá, je vytvořit kopii infile názvu jednoho souboru 1700 01:17:45,130 --> 01:17:47,070 a zkopíruje jej do jiný soubor, že jo? 1701 01:17:47,070 --> 01:17:48,700 To je všechno tohle dělá. 1702 01:17:48,700 --> 01:17:53,080 Jak můžete vidět, dělám to na jeden řádek aniž by ve skutečnosti potřebovat program. 1703 01:17:53,080 --> 01:17:55,380 >> Jaká je naše argc v tomto případě? 1704 01:17:55,380 --> 01:17:58,968 Kolik argumenty máme? 1705 01:17:58,968 --> 01:17:59,634 Publikum: Tři? 1706 01:17:59,634 --> 01:18:01,200 ANDI PENG: Máme tři, přesně tak. 1707 01:18:01,200 --> 01:18:05,030 Takže je to velmi intuitivní Jen si myslím, že je to jen 1708 01:18:05,030 --> 01:18:06,290 infile a outfile. 1709 01:18:06,290 --> 01:18:10,190 Ale ví, že fyzikální název z Program vedete počítá jako jeden. 1710 01:18:10,190 --> 01:18:13,220 Takže v tomto případě, argc je vlastně tři. 1711 01:18:13,220 --> 01:18:15,860 Jak o tom, co je argv 0? 1712 01:18:15,860 --> 01:18:18,180 Pamatujte si, že všechny argumenty příkazového řádku 1713 01:18:18,180 --> 01:18:20,500 byly uloženy v pole řetězců. 1714 01:18:20,500 --> 01:18:24,140 Takže když se snažím přistupovat to, co by argv držák 0 mi dal? 1715 01:18:24,140 --> 01:18:25,364 >> Diváků: [Neslyšitelné]. 1716 01:18:25,364 --> 01:18:26,155 ANDI PENG: Přesně tak. 1717 01:18:26,155 --> 01:18:28,550 Bylo by mi tečku lomítko kopii, protože to je 1718 01:18:28,550 --> 01:18:31,070 0. prvek se První prvek mé pole. 1719 01:18:31,070 --> 01:18:33,236 Co argv 1? 1720 01:18:33,236 --> 01:18:33,945 >> Diváků: INFILE. 1721 01:18:33,945 --> 01:18:35,070 ANDI PENG: INFILE, přesně tak. 1722 01:18:35,070 --> 01:18:36,272 Co argv 2? 1723 01:18:36,272 --> 01:18:37,022 Diváků: outfile. 1724 01:18:37,022 --> 01:18:38,190 ANDI PENG: outfile. 1725 01:18:38,190 --> 01:18:39,290 To je nyní trochu složitější. 1726 01:18:39,290 --> 01:18:42,630 Co vy na to argv 3 se bude mi dávat 1727 01:18:42,630 --> 01:18:45,522 když jsem se snažil vytisknout to přišel? 1728 01:18:45,522 --> 01:18:48,260 >> Diváků: [Neslyšitelné]? 1729 01:18:48,260 --> 01:18:50,164 >> ANDI PENG: Měli jste ruku? 1730 01:18:50,164 --> 01:18:50,663 To jo. 1731 01:18:50,663 --> 01:18:51,550 >> Diváků: Alternativní. 1732 01:18:51,550 --> 01:18:52,341 >> ANDI PENG: Přesně tak. 1733 01:18:52,341 --> 01:18:55,440 Takže pamatujte na přednášce, že jsme mají na konci závodní něco 1734 01:18:55,440 --> 01:18:56,640 volal null terminátor? 1735 01:18:56,640 --> 01:18:58,890 Dostaneme se do toho také dále ve třídě. 1736 01:18:58,890 --> 01:19:02,472 Ale vím, že v zápisu, jak váš počítač 1737 01:19:02,472 --> 01:19:04,430 ví, že je to konec matice je to, že jí 1738 01:19:04,430 --> 01:19:07,310 dá něco, co nazývá null terminátor nebo pomlčka nula. 1739 01:19:07,310 --> 01:19:12,047 >> Takže pokud se pokusíte o přístup argv 3, budete hit tohoto pomlčku 0. 1740 01:19:12,047 --> 01:19:13,630 To je ještě o chyták. 1741 01:19:13,630 --> 01:19:17,020 Co argv 4? 1742 01:19:17,020 --> 01:19:20,920 Tak tohle je minulost null terminátor, kolem hranice naší nabídku. 1743 01:19:20,920 --> 01:19:24,380 Co myslíš, že se chystá stane, když se snažíme dělat, že? 1744 01:19:24,380 --> 01:19:25,842 >> Diváků: [Neslyšitelné]? 1745 01:19:25,842 --> 01:19:26,550 ANDI PENG: Sorry? 1746 01:19:26,550 --> 01:19:28,025 Řekněme, že to trochu hlasitěji? 1747 01:19:28,025 --> 01:19:29,086 >> Diváků: [Neslyšitelné]. 1748 01:19:29,086 --> 01:19:29,710 ANDI PENG: Ano. 1749 01:19:29,710 --> 01:19:32,420 To je jméno z Oblast, budete s největší pravděpodobností dostat. 1750 01:19:32,420 --> 01:19:36,610 Ale vím, že argv 4-- který vám umožní přístup 1751 01:19:36,610 --> 01:19:38,610 místa počítače paměť, která vás opravdu 1752 01:19:38,610 --> 01:19:41,650 nesmí dotýkat, protože teď víte, co argv je. 1753 01:19:41,650 --> 01:19:46,220 Víte, že je to pole velikosti 3 která má dot kopírovat, INFILE a outfile. 1754 01:19:46,220 --> 01:19:50,200 >> Pokusíte-li se jít tak daleko za tím že jste v minulosti null zakončení, 1755 01:19:50,200 --> 01:19:53,050 váš počítač má pravděpodobně uloženo něco v argv 4. 1756 01:19:53,050 --> 01:19:55,790 A opravdu by neměl být povolen vstup do argv 4, 1757 01:19:55,790 --> 01:19:58,130 protože máte soubor skříň a vy jste jen 1758 01:19:58,130 --> 01:19:59,790 umožněn přístup k těmto třem policemi. 1759 01:19:59,790 --> 01:20:02,870 Ale pokud se pokusíte dostat daleko za police na to, kde jsou povoleny, 1760 01:20:02,870 --> 01:20:04,930 se chystáte začít hrát s další věci v paměti počítače. 1761 01:20:04,930 --> 01:20:06,690 To bude opravdu, ale opravdu špatné. 1762 01:20:06,690 --> 01:20:07,440 Takže jen vím, že. 1763 01:20:07,440 --> 01:20:10,370 Buďte velmi opatrní, abyste nejsou jen náhodně spustit 1764 01:20:10,370 --> 01:20:14,772 přístup k prvků v poli, které nebyli v tom, co jste chtěli vytvořit. 1765 01:20:14,772 --> 01:20:17,114 Jo. 1766 01:20:17,114 --> 01:20:18,430 >> DOBŘE. 1767 01:20:18,430 --> 01:20:26,360 Takže budeme dělat další terminál příklad zde. 1768 01:20:26,360 --> 01:20:27,300 DOBŘE. 1769 01:20:27,300 --> 01:20:29,900 Tak Rob rychle v přednášce druhý den šel 1770 01:20:29,900 --> 01:20:35,040 prostřednictvím tohoto příkladu, kde měl int main int argc řetězec argv 1771 01:20:35,040 --> 01:20:39,090 konzoly, který mi říká, že jsem bude mít argumenty příkazového řádku. 1772 01:20:39,090 --> 01:20:41,860 >> Má-li argc rovná rovná 2-- pamatovat, 1773 01:20:41,860 --> 01:20:45,070 rovná se rovná znamená srovnání. 1774 01:20:45,070 --> 01:20:47,980 Pokud je roven 2, pak jsem do tisku ahoj, 1775 01:20:47,980 --> 01:20:51,190 bez ohledu na prvním prvek pole je. 1776 01:20:51,190 --> 01:20:54,100 Else tisk, hello world. 1777 01:20:54,100 --> 01:20:56,300 Co to bude se stalo v podstatě? 1778 01:20:56,300 --> 01:21:00,570 Může někdo vysvětlit, jen v Angličtina, co tento program dělá? 1779 01:21:00,570 --> 01:21:01,272 To jo. 1780 01:21:01,272 --> 01:21:08,160 >> Diváků: Pokud někdo zadali v příkazu a že jejich jméno a příjmení, 1781 01:21:08,160 --> 01:21:12,096 to nebude jen vytisknout První a říkají, ahoj, 1782 01:21:12,096 --> 01:21:14,090 bez ohledu na vaše křestní jméno je. 1783 01:21:14,090 --> 01:21:15,410 >> ANDI PENG: OK, pojďme spusťte jej. 1784 01:21:15,410 --> 01:21:22,470 Tak například, pokud bych měl dělat tento soubor, aby ahoj to-- ahoj 1785 01:21:22,470 --> 01:21:24,500 to-- to, co chceš, abych na vstup? 1786 01:21:24,500 --> 01:21:25,900 >> Diváků: Jméno a příjmení. 1787 01:21:25,900 --> 01:21:27,280 >> ANDI PENG: Jméno a příjmení? 1788 01:21:27,280 --> 01:21:28,180 Prostory? 1789 01:21:28,180 --> 01:21:29,690 >> Diváků: Jo. 1790 01:21:29,690 --> 01:21:33,490 >> ANDI PENG: Může někdo říct, mě právě teď, co je argc? 1791 01:21:33,490 --> 01:21:35,630 Právě tam? 1792 01:21:35,630 --> 01:21:36,290 Jejda, promiň. 1793 01:21:36,290 --> 01:21:37,920 Nech mě jít zpátky. 1794 01:21:37,920 --> 01:21:40,740 Kolik argumenty příkazového řádku are-- vy nemůžete opravdu vidět. 1795 01:21:40,740 --> 01:21:43,760 Ale budu se snažit přiblížit. 1796 01:21:43,760 --> 01:21:44,290 Snažím se. 1797 01:21:44,290 --> 01:21:45,414 Jo, je tu tři, ne? 1798 01:21:45,414 --> 01:21:48,750 Je to tečka lomítko ahoj, to je Andi, a to je Peng. 1799 01:21:48,750 --> 01:21:51,870 >> Tak co si vy myslíte, že to Program se bude tisknout ven? 1800 01:21:51,870 --> 01:21:55,550 1801 01:21:55,550 --> 01:21:56,060 Aha. 1802 01:21:56,060 --> 01:21:57,120 Promiň. 1803 01:21:57,120 --> 01:21:57,810 Nesprávný název. 1804 01:21:57,810 --> 01:22:03,630 1805 01:22:03,630 --> 01:22:06,130 Je to vytisknout, hello world. 1806 01:22:06,130 --> 01:22:09,603 Má někdo chtěl vysvětlit Proto, že se to děje? 1807 01:22:09,603 --> 01:22:10,103 To jo? 1808 01:22:10,103 --> 01:22:11,019 >> Diváků: [Neslyšitelné]. 1809 01:22:11,019 --> 01:22:14,439 1810 01:22:14,439 --> 01:22:15,230 ANDI PENG: Přesně tak. 1811 01:22:15,230 --> 01:22:19,940 Tak tady, jsou podmíněné je, je-li argc rovná se rovná 2. 1812 01:22:19,940 --> 01:22:23,650 Takže pouze v případě, že je tu dva argumenty příkazového řádku. 1813 01:22:23,650 --> 01:22:25,850 Pak jdu k tisku, Dobrý den, ať je to cokoliv. 1814 01:22:25,850 --> 01:22:28,210 Ale jinak, budu vytisknout pouze, hello world. 1815 01:22:28,210 --> 01:22:30,040 Takže to někdo bude chtít dát mi příklad 1816 01:22:30,040 --> 01:22:35,050 o tom, jak budu moci skutečně si to vytisknout hodnotu argv 1? 1817 01:22:35,050 --> 01:22:38,600 >> Co bych musel vstup tady? 1818 01:22:38,600 --> 01:22:39,840 Jen jedna věc, že ​​jo? 1819 01:22:39,840 --> 01:22:42,900 Vzhledem k tomu, tečka hello to již se počítá jako první argument. 1820 01:22:42,900 --> 01:22:43,930 Mám ještě jeden jediný. 1821 01:22:43,930 --> 01:22:46,470 Takže dot ahoj když jsem prostě Andi. 1822 01:22:46,470 --> 01:22:47,270 Dobrý den, Andi. 1823 01:22:47,270 --> 01:22:49,186 Rozumějí Proto, že se to děje? 1824 01:22:49,186 --> 01:22:49,602 To jo. 1825 01:22:49,602 --> 01:22:52,500 >> Diváků: Takže prostor mezi Příkaz line-- je to [neslyšitelný]? 1826 01:22:52,500 --> 01:22:56,247 1827 01:22:56,247 --> 01:22:56,830 ANDI PENG: Ne. 1828 01:22:56,830 --> 01:23:03,810 Tak prostoru v příkazovém řádku Argument, x, říci svůj počítač 1829 01:23:03,810 --> 01:23:06,820 že se jedná o začátek nového řetězce. 1830 01:23:06,820 --> 01:23:11,130 Takže string argv here-- ukládá všechny vaše příkazy řádku argumenty 1831 01:23:11,130 --> 01:23:13,110 v řetězcích. 1832 01:23:13,110 --> 01:23:17,420 A tak se prostor v příkazovém řádku argument-- vše, co dělá, je říci vám, 1833 01:23:17,420 --> 01:23:21,030 to je na konci jednoho řetězce a je čas přejít na jiný. 1834 01:23:21,030 --> 01:23:21,990 >> To jo. 1835 01:23:21,990 --> 01:23:23,530 To je docela důležité pro Váš pset, protože jsi 1836 01:23:23,530 --> 01:23:24,613 bude testování těchto. 1837 01:23:24,613 --> 01:23:29,300 Takže má někdo jakékoliv dotazy na to? 1838 01:23:29,300 --> 01:23:30,016 OK v pohodě. 1839 01:23:30,016 --> 01:23:30,515 To jo? 1840 01:23:30,515 --> 01:23:35,008 >> Diváků: Takže důvod, proč byste místo toho dát argument celého čísla Calc 1841 01:23:35,008 --> 01:23:40,059 ze dne [neslyšitelný] bude, když budete chtít zadejte doplňující informace 1842 01:23:40,059 --> 01:23:41,030 [Neslyšitelných]? 1843 01:23:41,030 --> 01:23:42,090 >> ANDI PENG: Jo, přesně tak. 1844 01:23:42,090 --> 01:23:45,370 Některé programy budou vyžadovat, abyste vložit argument příkazového řádku 1845 01:23:45,370 --> 01:23:47,732 že prochází, a který používá, které. 1846 01:23:47,732 --> 01:23:49,035 To jo. 1847 01:23:49,035 --> 01:23:50,410 Diváků: Takže co když [neslyšitelných]? 1848 01:23:50,410 --> 01:23:55,440 1849 01:23:55,440 --> 01:23:58,870 >> ANDI PENG: No, co mám do té doby změnit v mém programu? 1850 01:23:58,870 --> 01:23:59,870 >> Diváků: Just 3. 1851 01:23:59,870 --> 01:24:12,460 1852 01:24:12,460 --> 01:24:15,020 >> ANDI PENG: Proč je to, že děje, myslíš, že? 1853 01:24:15,020 --> 01:24:18,940 >> Diváků: Vzhledem k tomu, [neslyšitelných]. 1854 01:24:18,940 --> 01:24:22,370 >> Diváků: Musel bys změňte ji na 2 [neslyšitelný]. 1855 01:24:22,370 --> 01:24:23,484 >> Publikum: 1 a 2. 1856 01:24:23,484 --> 01:24:24,650 ANDI PENG: 1 a 2, přesně tak. 1857 01:24:24,650 --> 01:24:29,150 Takže v tomto případě, byste nejspíš Chcete mít dvou printf statements-- 1858 01:24:29,150 --> 01:24:32,601 ten, který tištěný argv 1 a ten, že tištěný argv 2. 1859 01:24:32,601 --> 01:24:33,100 Here. 1860 01:24:33,100 --> 01:24:34,516 Já si skutečně udělat opravdu rychle. 1861 01:24:34,516 --> 01:24:46,720 1862 01:24:46,720 --> 01:24:47,320 Tady máš. 1863 01:24:47,320 --> 01:24:48,287 Aha. 1864 01:24:48,287 --> 01:24:49,370 Ne tak docela, co jste chtěli. 1865 01:24:49,370 --> 01:24:52,590 Ale pokud vy nepořádek kolem s formátování, bude to vyjde. 1866 01:24:52,590 --> 01:24:54,981 To jo. 1867 01:24:54,981 --> 01:24:55,480 Bezva. 1868 01:24:55,480 --> 01:24:57,670 Vím, že jsme trochu málo času. 1869 01:24:57,670 --> 01:25:02,469 Ale já jsem prostě jít rychle strávit pár minut procházejí helpful-- 1870 01:25:02,469 --> 01:25:03,760 Diváků: Máte dvě minuty. 1871 01:25:03,760 --> 01:25:05,010 ANDI PENG: Mám dvě minuty? 1872 01:25:05,010 --> 01:25:06,340 Děkuji. 1873 01:25:06,340 --> 01:25:09,180 Některé rychlé tipy pset. 1874 01:25:09,180 --> 01:25:13,100 Takže pro tuto pset, vřele doporučuji, jak jsem řekl, všichni číst spec. 1875 01:25:13,100 --> 01:25:16,804 Budete psát tři programs-- jeden volal initials.c, jeden s názvem caesar.c, 1876 01:25:16,804 --> 01:25:17,720 jeden s názvem vigenere.c. 1877 01:25:17,720 --> 01:25:20,465 1878 01:25:20,465 --> 01:25:22,340 Některé důležité tipů, které vy opravdu chcete 1879 01:25:22,340 --> 01:25:25,040 udržovat v mind-- tak je tato funkce 1880 01:25:25,040 --> 01:25:27,770 volal atoi-- jak jsem chtěl říci, je trois. 1881 01:25:27,770 --> 01:25:29,520 Nejasné pokud je to ve skutečnosti, jak to říct. 1882 01:25:29,520 --> 01:25:32,510 Ale všechno to dělá, je to zadáním. 1883 01:25:32,510 --> 01:25:34,320 To převádí řetězec na int. 1884 01:25:34,320 --> 01:25:37,490 Takže představuje ASCII i celé číslo. 1885 01:25:37,490 --> 01:25:40,310 Je to jen konverze ASCII hodnoty na celé číslo hodnoty. 1886 01:25:40,310 --> 01:25:44,510 Takže pamatujte argv, pole, který ukládá všechny vaše příkazy řádku arguments-- 1887 01:25:44,510 --> 01:25:46,300 uloží je všechny jako řetězce. 1888 01:25:46,300 --> 01:25:50,010 A tak pokud chcete být schopni mají jeden z nich stane celé číslo, 1889 01:25:50,010 --> 01:25:52,750 budete mít použít zde tuto hodnotu. 1890 01:25:52,750 --> 01:25:56,690 >> Modulo, jako bychom se vztahuje dříve ve třídě dnes, 1891 01:25:56,690 --> 01:25:59,550 vám umožní mít Zbytek, co máte. 1892 01:25:59,550 --> 01:26:03,620 Takže pokud máme opravdu, opravdu hojném počtu Caesar, 1893 01:26:03,620 --> 01:26:06,117 co když budeme mít na konci z řetězce Vigenère? 1894 01:26:06,117 --> 01:26:08,450 Jak se vám bude moci se dostat, že na obal kolem? 1895 01:26:08,450 --> 01:26:11,330 Pokud bych hit z a já chci to se vrátit do A, 1896 01:26:11,330 --> 01:26:13,650 Jak to mám dostat že na obal kolem? 1897 01:26:13,650 --> 01:26:15,960 Pravděpodobně chcete použít modulo tam někde. 1898 01:26:15,960 --> 01:26:19,190 >> Za druhé, procházet kolem vaše knihovna. ctype.h. 1899 01:26:19,190 --> 01:26:20,680 To je nová knihovna, co máme. 1900 01:26:20,680 --> 01:26:25,270 Zde najdete spoustu opravdu, ale opravdu užitečné functions-- isupper, islower, 1901 01:26:25,270 --> 01:26:27,681 toupper, tolower, IsAlpha, et cetera. 1902 01:26:27,681 --> 01:26:30,680 Všechny funkce, které budou velmi užitečné když se snažíte přijít na to, 1903 01:26:30,680 --> 01:26:33,780 je to znak malé písmeno? 1904 01:26:33,780 --> 01:26:35,730 Jak mohu převést tuto string na velká písmena? 1905 01:26:35,730 --> 01:26:38,146 Všechny tyto věci budou velmi, velmi užitečné pro vaše pset. 1906 01:26:38,146 --> 01:26:42,720 1907 01:26:42,720 --> 01:26:45,500 DOBŘE. 1908 01:26:45,500 --> 01:26:49,644 >> Úřední hodiny jsou od 8:00 do dnes večer 11:00 v TEAL třídě zítra 1909 01:26:49,644 --> 01:26:51,310 stejně jako ve středu a ve čtvrtek v noci. 1910 01:26:51,310 --> 01:26:53,280 Úřední hodiny jsou ve sněmovně. 1911 01:26:53,280 --> 01:26:56,180 Vysoce navrhnout vám kluci všechny začít hned, 1912 01:26:56,180 --> 01:27:00,490 protože nechcete, aby se stát, že kluk, který ve čtvrtek v noci má problémy 1913 01:27:00,490 --> 01:27:03,870 Odesláním pset a je jako, já nevím, co mám dělat. 1914 01:27:03,870 --> 01:27:05,870 Začal, já jsem skončil, jsem předložil. 1915 01:27:05,870 --> 01:27:09,737 Snažte se dát si nějaký prostor, protože vždy dojde k potížím kód. 1916 01:27:09,737 --> 01:27:11,570 Chcete, aby se ujistil, že dáváš 1917 01:27:11,570 --> 01:27:14,810 hodně času, aby bylo možné dokončit psets. 1918 01:27:14,810 --> 01:27:15,310 Bezva. 1919 01:27:15,310 --> 01:27:16,720 Budu viset tady. 1920 01:27:16,720 --> 01:27:18,226 >> Diváků: už je to on-line? 1921 01:27:18,226 --> 01:27:20,850 ANDI PENG: Já nevím, jestli je to on-line již, ale bude to. 1922 01:27:20,850 --> 01:27:23,500 Jsem se, jestli někdo budu poflakovat tady má již nějaké otázky. 1923 01:27:23,500 --> 01:27:25,390 Díky, že jsi přišel. 1924 01:27:25,390 --> 01:27:27,105