1 00:00:00,000 --> 00:00:12,410 >> [Přehrávání hudby] 2 00:00:12,410 --> 00:00:12,830 >> DAVID Malan: Dobře. 3 00:00:12,830 --> 00:00:13,370 Vítej zpátky. 4 00:00:13,370 --> 00:00:16,510 To je CS50, a to je První týden, pokračování. 5 00:00:16,510 --> 00:00:20,050 Takže jeden z důvodů, proč jsme se složit kolem technologií, jako 6 00:00:20,050 --> 00:00:24,120 Google Sklo je, že přicházejí s něco známý jako API, 7 00:00:24,120 --> 00:00:25,980 Application Programming Interface. 8 00:00:25,980 --> 00:00:28,830 A co to znamená, že se správné soubory a se správným 9 00:00:28,830 --> 00:00:32,850 dokumentaci, můžete skutečně psát software i pro zařízení, jako jsou tyto. 10 00:00:32,850 --> 00:00:36,200 >> A tak to, co máme na mysli, k semestry konec je, pokud je projekt 11 00:00:36,200 --> 00:00:39,310 zahrnující, řekněme, Google Sklo může odvolání, uvidíme, co můžeme udělat v 12 00:00:39,310 --> 00:00:42,220 podmínky hákování vás s některými loaner hardware, jakož i 13 00:00:42,220 --> 00:00:46,500 veřejně přístupné API, takže můžete skutečně začít vytváření softwaru 14 00:00:46,500 --> 00:00:48,630 které běží na stejné sklo Google. 15 00:00:48,630 --> 00:00:51,710 >> Další zařízení, které hrajeme s dobou, že jsme si mysleli, by mohla být 16 00:00:51,710 --> 00:00:53,910 zábava na konci semestru je tato maličkost tady. 17 00:00:53,910 --> 00:00:56,860 Je to tzv. Leap Motion, a to, co jste asi vidět je technicky 18 00:00:56,860 --> 00:01:00,280 reklama na zařízení, ale se mluví, co to zejména 19 00:01:00,280 --> 00:01:01,240 Zařízení je schopné. 20 00:01:01,240 --> 00:01:05,550 A je to také přichází s API, pomocí který můžete psát software 21 00:01:05,550 --> 00:01:10,545 ovládat svůj počítač takovým způsobem, Docela se mi líbí tento minutu filmu najdete ZDE. 22 00:01:10,545 --> 00:01:12,070 >> [PŘEHRÁVÁNÍ] 23 00:01:12,070 --> 00:02:08,002 24 00:02:08,002 --> 00:02:08,590 >> [END PŘEHRÁVÁNÍ] 25 00:02:08,590 --> 00:02:11,190 >> Takže teď, tento přístroj se stane být realizovány jako malý USB 26 00:02:11,190 --> 00:02:14,290 konektor, který můžete připojit do vaší počítač, ale já bych se nedivil 27 00:02:14,290 --> 00:02:17,930 když zanedlouho máme tyto druhy technologie v příštím šarže PC 28 00:02:17,930 --> 00:02:20,510 a Mac, takže můžete skutečně s ní pracovat 29 00:02:20,510 --> 00:02:21,650 způsobem, jako to. 30 00:02:21,650 --> 00:02:24,250 Ve skutečnosti to, co jsem myslel, že to je také Zastavil jsem se trochu demonstraci 31 00:02:24,250 --> 00:02:25,860 program, který je dodáván s tímto softwarem. 32 00:02:25,860 --> 00:02:28,700 Tak jsem dal malý snímač v přední části mého notebooku. 33 00:02:28,700 --> 00:02:32,420 >> A jak můžete vidět, že už si uvědomuje, že moje ruka je zde 34 00:02:32,420 --> 00:02:33,400 ovládání. 35 00:02:33,400 --> 00:02:37,900 A to všechno dělá, je aplikace hladce maličkosti, jako je tento. 36 00:02:37,900 --> 00:02:41,080 Ale vidíte, že skutečně Mám pět prstů tam. 37 00:02:41,080 --> 00:02:44,270 Pokud se nám podaří dostat to udělat vše, 10, můžete si představit elegantní piano 38 00:02:44,270 --> 00:02:45,390 aplikace nebo podobně. 39 00:02:45,390 --> 00:02:47,820 Takže pokud byste chtěli přijít po hodině dnes a hrát s tím, jak 40 00:02:47,820 --> 00:02:49,720 dobře, jste vítáni. 41 00:02:49,720 --> 00:02:52,930 Tak o tom více ke konci semestru. 42 00:02:52,930 --> 00:02:54,420 >> Takže pár administrativní oznámení. 43 00:02:54,420 --> 00:02:58,690 Jednou, to Výřezem tento pátek v poledne na cs60.net/section. 44 00:02:58,690 --> 00:03:01,260 To URL je na kurzu je Domovská stránka stejně. 45 00:03:01,260 --> 00:03:04,010 Do té doby, i když, supersections bude mít premiéru tuto neděli. 46 00:03:04,010 --> 00:03:07,800 Supersections jsou jednorázová záležitost, , protože to nám zabere nějaký čas na práci 47 00:03:07,800 --> 00:03:09,470 , kdo je v které části a kde. 48 00:03:09,470 --> 00:03:12,280 >> Takže Tuto neděli, bude tam jeden sekce pro ty méně pohodlné, 49 00:03:12,280 --> 00:03:14,040 jedna sekce pro ty, pohodlnější. 50 00:03:14,040 --> 00:03:16,110 A ti z vás, někde mezi vítáni jít 51 00:03:16,110 --> 00:03:17,850 jeden nebo oba nebo žádný. 52 00:03:17,850 --> 00:03:19,150 Oba z nich bude natočen. 53 00:03:19,150 --> 00:03:22,740 Budou ve větším sále, než část by za normálních okolností se dovnitř 54 00:03:22,740 --> 00:03:26,110 Ale cílem je vybavit vás některé komfort s problémem nastavit jednu, 55 00:03:26,110 --> 00:03:29,910 s C, s CS50 zařízení, tento víkend, ještě předtím, než zjistili, že vaše 56 00:03:29,910 --> 00:03:31,050 formální přiřazení sekce. 57 00:03:31,050 --> 00:03:34,700 Takže budete splnit vaše TF a vaše menší skupina sectionmates asi 58 00:03:34,700 --> 00:03:36,350 týdenní dobu. 59 00:03:36,350 --> 00:03:38,200 >> Úřední hodiny, zatím, byly děje. 60 00:03:38,200 --> 00:03:41,020 Do využít z nich dnes večer nebo zítra večer, pokud byste chtěli. 61 00:03:41,020 --> 00:03:43,460 Problém nastavení 0 je splatná v pátek. 62 00:03:43,460 --> 00:03:46,680 Jedná se o den později, než pravidelně plánovaným čtvrtek. 63 00:03:46,680 --> 00:03:50,410 Ale problém sada 1, uvidíte že zahrnuje některé warm-up 64 00:03:50,410 --> 00:03:52,770 cvičení, se kterými si sami lze rozšiřovat 65 00:03:52,770 --> 00:03:54,660 Čtvrtek termín do pátku. 66 00:03:54,660 --> 00:03:58,410 Problém sada 1, mezitím bude mít premiéru na hřišti internetových stránkách to přichází 67 00:03:58,410 --> 00:04:02,000 Pátek, pokud byste chtěli schoulit to, jak jsem kdysi dávno pozdě 68 00:04:02,000 --> 00:04:04,370 V pátek večer ve svém pokoji. 69 00:04:04,370 --> 00:04:07,660 >> Takže cs50.net/appliance je místo, kde můžete získat CS50 spotřebiče 70 00:04:07,660 --> 00:04:09,040 že jsme začali používat v pondělí. 71 00:04:09,040 --> 00:04:10,140 Budeme používat trochu více dnes. 72 00:04:10,140 --> 00:04:14,040 Ale buďte ujištěni, že problém nastavit 1 Specifikace vás provede 73 00:04:14,040 --> 00:04:16,490 přesně kroky, které potřebujete se dostat, že nahoru a běh. 74 00:04:16,490 --> 00:04:22,120 Takže nebojte se o tom, že před Pset 1, pokud byste raději ne. 75 00:04:22,120 --> 00:04:22,660 >> Dobrá. 76 00:04:22,660 --> 00:04:27,180 Tak jsme se v pondělí na zdrojový kód, ale v souvislosti s novou 77 00:04:27,180 --> 00:04:30,895 programovací jazyk, a to C. A a C, Na rozdíl od nuly, není grafický. 78 00:04:30,895 --> 00:04:32,270 Není to skládačky. 79 00:04:32,270 --> 00:04:34,450 Je to spíš anglicky jako syntax. 80 00:04:34,450 --> 00:04:37,140 A je tu pár kroků zapojených ve skutečnosti písemně a běží 81 00:04:37,140 --> 00:04:41,650 Program v C, protože kromě zdroje Kód takhle, budete potřebovat něco 82 00:04:41,650 --> 00:04:42,890 volal kompilátor. 83 00:04:42,890 --> 00:04:46,682 A Laicky řečeno, to, co nemá kompilátor udělat pro nás? 84 00:04:46,682 --> 00:04:47,650 Jo. 85 00:04:47,650 --> 00:04:51,040 >> STUDENT: Převádí kód že píšete na 0s a 1s. 86 00:04:51,040 --> 00:04:51,151 >> DAVID Malan: Dobrý. 87 00:04:51,151 --> 00:04:53,580 Tak to převede kód, který píšeme 0s a 1s. 88 00:04:53,580 --> 00:04:57,730 Převádí tzv. zdrojový kód kód objektu, latter který vypadá 89 00:04:57,730 --> 00:04:59,140 Trochu něco takového. 90 00:04:59,140 --> 00:05:02,860 A je to váš procesor, mozek vnitřní část počítač, že z důvodu 91 00:05:02,860 --> 00:05:06,280 lidi, kteří vytvořili tyto počítače, vědět, co tyto sekvence 92 00:05:06,280 --> 00:05:07,460 0s a 1s průměru. 93 00:05:07,460 --> 00:05:08,640 >> Možná to znamená, že tisk. 94 00:05:08,640 --> 00:05:10,265 Možná to znamená, že navíc. 95 00:05:10,265 --> 00:05:11,610 Možná to znamená, že odčítání. 96 00:05:11,610 --> 00:05:13,350 Možná to znamená, že zobrazení grafiky. 97 00:05:13,350 --> 00:05:16,870 K dispozici jsou předem definované vzory bitů že se svět rozhodl znamenat 98 00:05:16,870 --> 00:05:17,700 určité věci. 99 00:05:17,700 --> 00:05:20,760 Ale z větší části v tomto kurzu, budeme pracovat na vyšší úrovni, a 100 00:05:20,760 --> 00:05:24,180 budeme brát za samozřejmost, že existují věci, jako kompilátory, které mohou 101 00:05:24,180 --> 00:05:27,670 aby náš zdrojový kód funkce tak, jak jsme v úmyslu. 102 00:05:27,670 --> 00:05:31,660 >> Takže programu jsme napsali první poslední týden a pak začal do přístavu, tak 103 00:05:31,660 --> 00:05:33,920 mluvit, C letos Pondělí, to bylo. 104 00:05:33,920 --> 00:05:35,700 Když zelená vlajka kliknutí pozdravit. 105 00:05:35,700 --> 00:05:37,430 To bylo, samozřejmě, zapsaný Scratch. 106 00:05:37,430 --> 00:05:40,710 A já jsem tvrdil, že ekvivalentní Program v C vypadal trochu 107 00:05:40,710 --> 00:05:41,520 něco takového. 108 00:05:41,520 --> 00:05:45,050 >> Takže to, co jsem myslel, že bych udělal je nejprve, pojďme šprýmaři odděleně, co vypadá na první 109 00:05:45,050 --> 00:05:48,790 pohled sice jako docela tajemný syntax, ale začnete všímat 110 00:05:48,790 --> 00:05:50,160 vzory docela rychle. 111 00:05:50,160 --> 00:05:53,770 Co budeme dělat i dnes, je poskytnout ty s duševní model pro některé 112 00:05:53,770 --> 00:05:57,280 kanonický některé standardní konstrukce v programování. 113 00:05:57,280 --> 00:06:00,420 A pak budeme skutečně dostat své ruce špinavé s některými příklady stejně. 114 00:06:00,420 --> 00:06:04,140 >> Takže pro ty z vás pohodlnější, si uvědomit, že tento týden a pak další 115 00:06:04,140 --> 00:06:05,940 týden může velmi dobře být trochu přezkumu. 116 00:06:05,940 --> 00:06:08,810 Ale zejména při hacker vydání problému set 1 zhasne 117 00:06:08,810 --> 00:06:12,330 Samozřejmě web v pátek, já si myslím, zjistíte, že i když se budete vyplnit 118 00:06:12,330 --> 00:06:15,390 některé mezery v příštím týdnu nebo dvou, Začnete se dostat stále více 119 00:06:15,390 --> 00:06:18,410 napadal a setkání nové a novější věci. 120 00:06:18,410 --> 00:06:21,310 >> Takže pojďme dráždit tento program sebe několik řádků najednou. 121 00:06:21,310 --> 00:06:24,140 Na samém vrcholu, máme to, co je odborně nazývá 122 00:06:24,140 --> 00:06:25,950 direktiva preprocesoru. 123 00:06:25,950 --> 00:06:30,510 To je jen řádek kódu, který říká, zahrnout do obsahu souboru, 124 00:06:30,510 --> 00:06:35,080 takzvané standardní I / N, standardní vstup - nebo, je mi líto, standardní I / O, standardní 125 00:06:35,080 --> 00:06:38,670 vstup / výstup,. h, uvnitř mého vlastního programu. 126 00:06:38,670 --> 00:06:41,670 >> Takže jinými slovy, když jsem to psal Program s jednoduchým textovým editorem, jako 127 00:06:41,670 --> 00:06:45,260 gedit je jednodušší ekvivalent něco jako Microsoft Word, které 128 00:06:45,260 --> 00:06:50,970 instrukce # include stdio.h, je jen chystá říci kompilátoru, uchopit 129 00:06:50,970 --> 00:06:56,080 Obsah tohoto jiného souboru, stdio.h, a vložit je přímo tady. 130 00:06:56,080 --> 00:06:57,090 >> A teď, proč mě to zajímá? 131 00:06:57,090 --> 00:07:01,850 Co tvrdíme, že je uvnitř tohoto souboru tzv. stdio.h, který je uložen 132 00:07:01,850 --> 00:07:05,490 někde na mém pevném disku nebo v této případ, někde v CS50 zařízení? 133 00:07:05,490 --> 00:07:06,635 Někdo ji tam pro mě. 134 00:07:06,635 --> 00:07:09,910 Ale to, co je v něm? 135 00:07:09,910 --> 00:07:13,020 >> Jo, je to prohlášení volána funkce printf. 136 00:07:13,020 --> 00:07:17,400 Takže printf připomíná, že funkce zobrazuje slova a znaky a 137 00:07:17,400 --> 00:07:20,160 čísla na obrazovce v mé nabídky. 138 00:07:20,160 --> 00:07:21,220 Ale já jsem to nenapsal. 139 00:07:21,220 --> 00:07:22,230 CS50 to nenapsal. 140 00:07:22,230 --> 00:07:26,990 Někdo lety napsal, a oni v podstatě nám recept na to 141 00:07:26,990 --> 00:07:29,110 v souboru nazvaném stdio.h. 142 00:07:29,110 --> 00:07:33,240 Takže první řádek jen mi dává přístup na funkce, které někdo jiný 143 00:07:33,240 --> 00:07:36,500 napsal před lety, mezi které jsou printf. 144 00:07:36,500 --> 00:07:39,450 >> Teď, další řádek budu mávat moji duši ruka s minimálně do příštího týdne. 145 00:07:39,450 --> 00:07:43,620 Ale teď vím, že int main (void) je v podstatě ekvivalent této 146 00:07:43,620 --> 00:07:46,310 žluté skládačky, kdy zelená vlajka klikli. 147 00:07:46,310 --> 00:07:49,510 Svět před lety rozhodl, že pokud píšete program 148 00:07:49,510 --> 00:07:53,150 jazyka C s názvem, můžete začít váš program s řadou 149 00:07:53,150 --> 00:07:54,410 která vypadá takhle. 150 00:07:54,410 --> 00:07:57,650 Za pouhých asi za týden, bude to dělat smysl pro to, co je int, co je neplatné. 151 00:07:57,650 --> 00:08:00,840 Ale teď, jen myslet na to, jak této žluté puzzle. 152 00:08:00,840 --> 00:08:04,550 >> Teď další, máme složená závorka následuje další úzké složenou závorku, 153 00:08:04,550 --> 00:08:05,240 abych tak řekl. 154 00:08:05,240 --> 00:08:07,430 A uvidíme to po celou dobu programy v jazyce C, jakož i 155 00:08:07,430 --> 00:08:08,930 JavaScript a PHP. 156 00:08:08,930 --> 00:08:11,345 A to jen zapouzdřit související řádky kódu. 157 00:08:11,345 --> 00:08:14,600 Otevřená složená závorka v podstatě říká, tady je nějaký kód. 158 00:08:14,600 --> 00:08:17,590 A uzavřená složená závorka, která je pod úhlem v opačném směru, jen 159 00:08:17,590 --> 00:08:19,920 znamená, že je to pro odpovídající kód. 160 00:08:19,920 --> 00:08:22,970 >> Takže šťavnaté řádek v této první Program je poslední, printf, 161 00:08:22,970 --> 00:08:25,080 quote-konec citátu, hello world. 162 00:08:25,080 --> 00:08:30,670 A já jsem volal věc mezi cituje, co minule? 163 00:08:30,670 --> 00:08:31,285 Takže je to řetězec. 164 00:08:31,285 --> 00:08:35,309 A řetězec je jen techie termín pro posloupnost 165 00:08:35,309 --> 00:08:37,169 znaky, slovo, fráze. 166 00:08:37,169 --> 00:08:39,380 Dokonce i jediný dopis by mohl být dvakrát citován. 167 00:08:39,380 --> 00:08:41,840 Ale je to posloupnost nula nebo více znaků. 168 00:08:41,840 --> 00:08:43,650 >> Zpětné lomítko-n, i když vypadá trochu divné. 169 00:08:43,650 --> 00:08:46,290 Ale je to prostě něco znamená jednoduchý k počítači. 170 00:08:46,290 --> 00:08:48,060 Co je zpětné lomítko, n? 171 00:08:48,060 --> 00:08:48,570 Nová linka. 172 00:08:48,570 --> 00:08:52,490 Tak to je jen zvláštní sled znaky, které se svět rozhodl 173 00:08:52,490 --> 00:08:56,880 znamená, vložení zalomení řádku tam, protože kompilátor bude skutečně mít 174 00:08:56,880 --> 00:09:02,280 zmatený, obvykle, pokud jste velmi pochopitelně, ale nesprávně, stačí 175 00:09:02,280 --> 00:09:04,570 začít klávesy Enter, aby nové řádky v kódu. 176 00:09:04,570 --> 00:09:07,150 Musíte být trochu víc explicitní zpětným lomítkem-n. 177 00:09:07,150 --> 00:09:10,540 >> A uvidíme tu několik dalších, jako vzory pro speciální znaky. 178 00:09:10,540 --> 00:09:14,340 Například, pokud jste chtěli, aby vaše mysl bloudit na rohový případě, 179 00:09:14,340 --> 00:09:18,080 Předpokládám, že jsem chtěl vytisknout dvojité uvozovky na obrazovce 180 00:09:18,080 --> 00:09:21,840 z jakéhokoli důvodu, že se zdá, že být trochu problematické, ne? 181 00:09:21,840 --> 00:09:24,990 Protože když jsem dal uvozovky v uprostřed "Hello, world", z jakéhokoliv 182 00:09:24,990 --> 00:09:30,120 Důvodem, proč se zdá, že potenciálně problematické? 183 00:09:30,120 --> 00:09:32,180 Láme řetězec. 184 00:09:32,180 --> 00:09:34,700 >> Kompilátor je jen program. 185 00:09:34,700 --> 00:09:37,210 Program jako kompilátor právě děje číst své heslo shora dolů, 186 00:09:37,210 --> 00:09:37,990 zleva doprava. 187 00:09:37,990 --> 00:09:41,850 A když vidí tři uvozovky místo dvou, že to nebude vědět, 188 00:09:41,850 --> 00:09:45,210 pokud máte na mysli, že ta věc vlevo by měl být řetězec nebo věc 189 00:09:45,210 --> 00:09:46,570 právo, nebo celou věc. 190 00:09:46,570 --> 00:09:50,560 Je to nejednoznačné, a tak, jak typické kompilátor by udělat, je jen šílet, 191 00:09:50,560 --> 00:09:53,710 a dá vám nějaké chybové hlášení a aby se vypořádat s tímto problémem. 192 00:09:53,710 --> 00:09:58,120 >> Tak vzhledem k tomu, lomítko, n znamená, že nový linka, co by váš instinkt nyní 193 00:09:58,120 --> 00:10:02,610 začnou být, pokud byste chtěli zahrnout něco neobvyklého, jako double 194 00:10:02,610 --> 00:10:06,210 citovat uvnitř tohoto jinak citovaná string? 195 00:10:06,210 --> 00:10:07,640 Zpětné lomítko-dvojité uvozovky. 196 00:10:07,640 --> 00:10:09,630 A tak budeme vidět druh vzoru také. 197 00:10:09,630 --> 00:10:12,490 >> Pokud chcete udělat něco trochu divné, zjistíte, že 198 00:10:12,490 --> 00:10:15,060 řešení často následuje vzor, a zpětným lomítkem 199 00:10:15,060 --> 00:10:17,150 označuje sekvenci escape. 200 00:10:17,150 --> 00:10:20,320 A znamená to něco speciálního že musíme zastupovat ve 201 00:10:20,320 --> 00:10:21,060 odlišným způsobem. 202 00:10:21,060 --> 00:10:23,830 Pokud jde o tom, jak si představují zpětné lomítko, dobře, budeme 203 00:10:23,830 --> 00:10:24,550 vrátit se na to. 204 00:10:24,550 --> 00:10:26,930 Ale odpověď je také ve skutečnosti trochu zřejmé. 205 00:10:26,930 --> 00:10:31,080 >> Takže pojďme se představit některé další programovací konstrukty 206 00:10:31,080 --> 00:10:31,915 které jste viděli v Scratch. 207 00:10:31,915 --> 00:10:34,790 Pravděpodobně jste již považována za samozřejmost již pokud jste již ponořil do 208 00:10:34,790 --> 00:10:36,060 Problém nastavení 0. 209 00:10:36,060 --> 00:10:40,950 Ale pojďme teď představit syntaxe C pro tyto jinak poměrně intuitivní 210 00:10:40,950 --> 00:10:42,300 nápady, alespoň některé z nich. 211 00:10:42,300 --> 00:10:45,570 >> Takže tato představa o stavu, nebo větev, zatímco dříve jsme 212 00:10:45,570 --> 00:10:49,330 to pomocí kódu, který vypadal takhle vlevo v Scratch - 213 00:10:49,330 --> 00:10:52,200 pokud x je menší než y, pak se to tak říct - 214 00:10:52,200 --> 00:10:56,760 místo toho se v C - dovolte mi, abych zdokonalovat v v nejjednodušším případě - 215 00:10:56,760 --> 00:11:01,235 jsme prostě říkat, pokud otevřete závorka, je něco pravda - 216 00:11:01,235 --> 00:11:04,190 Logický výraz je jít kde jsem řekl podmínku - 217 00:11:04,190 --> 00:11:08,170 zavřít závorka, pak to, co je Uvnitř těchto složených závorek. 218 00:11:08,170 --> 00:11:11,020 >> Takže i zde, složené závorky jsou něco jako Scratch je 219 00:11:11,020 --> 00:11:12,460 U tvaru skládačky. 220 00:11:12,460 --> 00:11:14,890 To, co je uvnitř těchto složených závorek. 221 00:11:14,890 --> 00:11:16,790 V tomto případě, lomítko lomítko. 222 00:11:16,790 --> 00:11:19,720 A všimněte si, to je dopředu lomítko, nikoli zpětné lomítko. 223 00:11:19,720 --> 00:11:21,440 Lomítko, lomítko, pro ty, kteří si naprogramovaný 224 00:11:21,440 --> 00:11:23,370 předtím, prostě znamená - 225 00:11:23,370 --> 00:11:24,190 je to jen komentář. 226 00:11:24,190 --> 00:11:26,630 Komentář není linka kódu, samo o sobě. 227 00:11:26,630 --> 00:11:30,200 Je to řada angličtiny, který, člověk, psali pro sebe, aby 228 00:11:30,200 --> 00:11:33,540 možná připomene, že máte něco udělat, aby vysvětlit sebe, vysvětlovat 229 00:11:33,540 --> 00:11:35,260 někdo jiný, co váš kód dělá. 230 00:11:35,260 --> 00:11:37,050 Je to jen popisný komentář. 231 00:11:37,050 --> 00:11:40,880 >> Teď, samozřejmě, můžeme mít dva-cesta rozcestí, jen tím, že dělá to, 232 00:11:40,880 --> 00:11:43,930 třícestný rozcestí tím to, a pokud budete pokračovat v tomto 233 00:11:43,930 --> 00:11:47,570 vzor, ​​můžete mít čtyři-cesta, Pětisměrná, šest-cesta vidličky v cestě, pokud 234 00:11:47,570 --> 00:11:50,150 budete muset zvládnout, opravdu, že mnoho podmínek. 235 00:11:50,150 --> 00:11:52,010 A pak si všimnout podobnost zde - 236 00:11:52,010 --> 00:11:55,070 if (podmínka) else if (podmínka), a jediná, která to trochu 237 00:11:55,070 --> 00:11:58,010 divné je poslední, který je právě to jinde. 238 00:11:58,010 --> 00:12:01,170 Ale opět, to je stejný, koncepčně, s tím, co jsme udělali 239 00:12:01,170 --> 00:12:04,690 již, přestože syntaxe bude trvat trochu zvykat. 240 00:12:04,690 --> 00:12:07,730 >> Nyní, v tomto příkladu, jsou jiné zvláštní syntaxe. 241 00:12:07,730 --> 00:12:11,220 Vidíme printf opět otevřené závorky, a blízko závorky. 242 00:12:11,220 --> 00:12:13,190 A uvnitř je řetězec v uvozovkách. 243 00:12:13,190 --> 00:12:17,060 Závorky, v souvislosti printf, přejděte vlevo 244 00:12:17,060 --> 00:12:18,160 a právo na to, co? 245 00:12:18,160 --> 00:12:22,190 Co si popíšeme ty, které byly string jako obecně? 246 00:12:22,190 --> 00:12:23,320 >> Takže je to argument. 247 00:12:23,320 --> 00:12:26,620 Kdykoliv budete mít funkce, jako je printf, a pak otevřít závorka a 248 00:12:26,620 --> 00:12:30,330 zavřít závorka a něco uvnitř to, zda je to řetězec nebo 249 00:12:30,330 --> 00:12:34,420 celé číslo, nebo cokoliv jiného, ​​co v mezi tyto závorky se nazývá 250 00:12:34,420 --> 00:12:35,110 argument. 251 00:12:35,110 --> 00:12:37,910 >> A argument, jen ovlivňuje Funkce chování. 252 00:12:37,910 --> 00:12:39,990 V tomto případě, je to docela jasné, jak. 253 00:12:39,990 --> 00:12:44,480 x 00:12:47,720 A printf bude vytisknout přesně tak. 255 00:12:47,720 --> 00:12:51,590 Protože jistě, osoba lety kteří realizován printf neměl tušení 256 00:12:51,590 --> 00:12:55,000 to, co lidské nástupců bude používat pro printf. 257 00:12:55,000 --> 00:12:58,610 Takže to je důvod, proč argumenty existují, vliv na chování po funkce je 258 00:12:58,610 --> 00:12:59,450 bylo napsáno. 259 00:12:59,450 --> 00:13:00,780 >> Nyní, Boolean výraz. 260 00:13:00,780 --> 00:13:02,470 Viděli jsme to ještě v začátku. 261 00:13:02,470 --> 00:13:06,680 Ukazuje se, že v C můžete i "nebo" dohromady, abych tak řekl. 262 00:13:06,680 --> 00:13:10,930 Dvě svislé čáry znamená, že tento blok kódu, to to bude 263 00:13:10,930 --> 00:13:15,350 provést v případě, že první podmínka je pravdivá nebo druhá podmínka je pravdivá. 264 00:13:15,350 --> 00:13:17,710 A i když by si to nemohl udělat To Scratch, můžete skutečně 265 00:13:17,710 --> 00:13:20,580 to ve Scratch, a můžete také vyjádřit sám sebe jinak - 266 00:13:20,580 --> 00:13:25,300 v případě, že první a druhá podmínka podmínka pravdivá, pak to, co je 267 00:13:25,300 --> 00:13:27,160 uvnitř složených závorek. 268 00:13:27,160 --> 00:13:31,210 >> A stejně jako stranou, důvodem je to dvojitý ampersand a dvojité 269 00:13:31,210 --> 00:13:34,610 svislá čára, uvidíme časem že jeden svislý pruh a 270 00:13:34,610 --> 00:13:38,710 jediný ampersand vlastně mají různé což znamená v C. Takže teď, 271 00:13:38,710 --> 00:13:41,840 že zdvojení symbolů je úmyslné. 272 00:13:41,840 --> 00:13:45,070 >> Takže pojďme představit, stručně, ten druhý trochu syntaxe. 273 00:13:45,070 --> 00:13:48,940 To není úplně přenést do Scratch, ale tvrdím, že mohu 274 00:13:48,940 --> 00:13:55,190 realizovat představu, pokud jiný, jestliže jinde, pokud jinde, pokud else použití 275 00:13:55,190 --> 00:13:56,760 něco jako příkaz switch. 276 00:13:56,760 --> 00:14:00,820 A jediný důvod, proč je to opravdu existuje je jen vám, programátor, 277 00:14:00,820 --> 00:14:05,470 trochu jiné řešení některých problém, a to i přesto, že logicky 278 00:14:05,470 --> 00:14:07,340 vám nedává žádné nové schopnosti. 279 00:14:07,340 --> 00:14:08,530 >> Tím mám na mysli tohle. 280 00:14:08,530 --> 00:14:13,330 Když říkáte, že přepínač, a pak prostor, a pak pár závorek, vnitřní 281 00:14:13,330 --> 00:14:14,570 který jde výraz - 282 00:14:14,570 --> 00:14:18,010 a to by mohlo být trochu non-zřejmé na první, ale to není důvod, 283 00:14:18,010 --> 00:14:20,680 technicky, protože spínač není funkce. 284 00:14:20,680 --> 00:14:24,230 Takže teď, jen předpokládat, že jsme pomocí Kulaté závorky v různých místech 285 00:14:24,230 --> 00:14:25,250 z různých důvodů. 286 00:14:25,250 --> 00:14:29,310 >> Takže zapněte výraz znamená, že mohu dát proměnnou uvnitř těch 287 00:14:29,310 --> 00:14:31,350 závorky, kde se říká, že výraz. 288 00:14:31,350 --> 00:14:33,090 A pak, pokud tato proměnná - 289 00:14:33,090 --> 00:14:35,400 Předpokládám, že se to jmenuje x, a je to jen číslo - 290 00:14:35,400 --> 00:14:38,900 Pak mohu vyjmenovat v mém snímku tady něco takového. 291 00:14:38,900 --> 00:14:41,690 Je-li x proměnná je můj a já Chcete něco udělat, pokud x 292 00:14:41,690 --> 00:14:43,480 se rovná 1, to můžu udělat. 293 00:14:43,480 --> 00:14:46,660 >> Kdybych místo toho chcete udělat něco je-li x 2, to můžu udělat. 294 00:14:46,660 --> 00:14:50,390 Jinak, pokud chci dělat něco jiného úplně, můžu mít výchozí případ 295 00:14:50,390 --> 00:14:52,750 tom případě mám tu druhou věc. 296 00:14:52,750 --> 00:14:58,730 Takže v tomto smyslu, je to ekvivalent pokud se x rovná se rovná 1, jinak pokud jiný, 297 00:14:58,730 --> 00:15:01,150 Zmiňuji se o tom, ale teď jen proto, uvidíme to znovu. 298 00:15:01,150 --> 00:15:03,720 Ale teď, jen vím, že to existuje. 299 00:15:03,720 --> 00:15:04,220 >> Dobrá. 300 00:15:04,220 --> 00:15:07,660 Tak to poslední pár je trochu složité na první pohled, ale dělají 301 00:15:07,660 --> 00:15:09,385 něco poměrně jednoduchá. 302 00:15:09,385 --> 00:15:14,410 Cyklus for v C je kus kódu, který prostě něco dělá znovu a 303 00:15:14,410 --> 00:15:15,330 znovu a znovu. 304 00:15:15,330 --> 00:15:17,590 A jen nepříjemné na tom je, to je, že je to trochu záhadný 305 00:15:17,590 --> 00:15:21,380 se vyjadřovat v této cyklické vzor, ​​ale svět jako standard 306 00:15:21,380 --> 00:15:22,450 následujícím způsobem. 307 00:15:22,450 --> 00:15:25,760 >> Při použití pro smyčce, máte dvojice závorek znovu. 308 00:15:25,760 --> 00:15:27,570 A všimněte si dva středníky tam. 309 00:15:27,570 --> 00:15:34,380 Tyto dva středníky oddělené tři různé výrazy uvnitř 310 00:15:34,380 --> 00:15:35,020 závorky. 311 00:15:35,020 --> 00:15:37,170 Jedním z nich je tzv. inicializace. 312 00:15:37,170 --> 00:15:38,830 Jedním z nich je tzv. stav. 313 00:15:38,830 --> 00:15:40,210 A jeden je tzv. aktualizace. 314 00:15:40,210 --> 00:15:43,240 >> Podíval se na abstraktně, je to kompletně non-zřejmé, tak se pojďme podívat 315 00:15:43,240 --> 00:15:44,630 na konkrétním příkladu. 316 00:15:44,630 --> 00:15:46,720 V Scratch jsme měli opakování bloku. 317 00:15:46,720 --> 00:15:50,670 A tento blok řekl opakovat 10 krát, řekněme "Hello, world". Dovolte mi, abych nárok na 318 00:15:50,670 --> 00:15:53,810 teď, a vrátíme se k tomu, a i to se blíže seznámit se 319 00:15:53,810 --> 00:15:57,345 budete zanedlouho ekvivalent C Kód může být řekl, aby byl tento - 320 00:15:57,345 --> 00:16:02,320 pro vyjádření a prostor, pár závorky, středníky v oznámení 321 00:16:02,320 --> 00:16:05,730 tam, které oddělují tři odlišné věci, inicializace 322 00:16:05,730 --> 00:16:07,320 stav, a aktualizace. 323 00:16:07,320 --> 00:16:08,840 >> A hádejte, co První z nich je dělá. 324 00:16:08,840 --> 00:16:10,690 Int i = 0. 325 00:16:10,690 --> 00:16:15,120 V hrubých Laicky řečeno, to, co je že dělá pro nás, asi? 326 00:16:15,120 --> 00:16:15,590 Tak jo. 327 00:16:15,590 --> 00:16:19,630 Je to deklarování proměnné s názvem i, a to je dávat to, jakou hodnotu? 328 00:16:19,630 --> 00:16:20,220 0. 329 00:16:20,220 --> 00:16:24,280 Takže to vytváří proměnnou s názvem i, skladování hodnotu 0 v něm. 330 00:16:24,280 --> 00:16:26,420 To je tzv. inicializace. 331 00:16:26,420 --> 00:16:29,360 >> Dobře, teď jsem tvrdil před že střední věc, i 332 00:16:29,360 --> 00:16:31,760 <10, je stav. 333 00:16:31,760 --> 00:16:32,730 Takže to, co dělá? 334 00:16:32,730 --> 00:16:36,560 No, a co dělá, když smyčka pro Program se pro smyčky je spuštěn, je 335 00:16:36,560 --> 00:16:41,050 pokaždé, když počítač běží přes Tato smyčka, shora dolů, shora 336 00:16:41,050 --> 00:16:43,740 dno, stejně jako vy dělal, když počítání a sami sedět, 337 00:16:43,740 --> 00:16:47,090 znovu a znovu a znovu, Počítač se děje 338 00:16:47,090 --> 00:16:48,560 zkontrolovat tuto podmínku. 339 00:16:48,560 --> 00:16:51,140 A když jsem je menší než 10, to bude dělat to znovu. 340 00:16:51,140 --> 00:16:53,100 Je-li i je menší než 10, to bude dělat to znovu. 341 00:16:53,100 --> 00:16:55,030 Kdybych je menší než deset, to bude dělat to znovu. 342 00:16:55,030 --> 00:16:57,330 Takže to vypadá, že navrhne, že doufám, že se mění. 343 00:16:57,330 --> 00:16:59,010 Jinak bychom museli nekonečnou smyčku. 344 00:16:59,010 --> 00:17:02,590 A skutečně, i se mění, protože Poslední věc, kterou za středníkem se 345 00:17:02,590 --> 00:17:05,569 je poněkud záhadné syntax i + +. 346 00:17:05,569 --> 00:17:07,630 Ale ti z vás, kteří udělali to předtím, že prostě znamená, 347 00:17:07,630 --> 00:17:08,609 prostě to, co? 348 00:17:08,609 --> 00:17:09,730 >> STUDENTI: [Přechodová Hlasy]. 349 00:17:09,730 --> 00:17:10,740 >> DAVID Malan: Přidat 1 až I. 350 00:17:10,740 --> 00:17:11,819 Přírůstek i.. 351 00:17:11,819 --> 00:17:13,910 Takže jsme viděli Scratch puzzle kus pro to, že ve skutečnosti. 352 00:17:13,910 --> 00:17:18,230 Nevypadalo to jako i + +, ale to jen znamená, jednoduše, zvýšit 353 00:17:18,230 --> 00:17:24,040 cení i o 1 pokaždé, když to uděláte. 354 00:17:24,040 --> 00:17:26,910 Takže doslova, můžete začít tím, inicializace i na 0. 355 00:17:26,910 --> 00:17:29,520 Potom zkontrolovat stav. 356 00:17:29,520 --> 00:17:31,070 0 je menší než 10? 357 00:17:31,070 --> 00:17:31,730 Ano. 358 00:17:31,730 --> 00:17:32,910 Jdeme přes smyčku. 359 00:17:32,910 --> 00:17:35,150 >> Další věc, kterou jsem se tvrdí, že počítač je dělat, je, že to bude 360 00:17:35,150 --> 00:17:35,910 zvýšíte i. 361 00:17:35,910 --> 00:17:37,080 Tak jsem je teď jedno. 362 00:17:37,080 --> 00:17:37,940 Kontroluje stav. 363 00:17:37,940 --> 00:17:39,290 Je o 1 méně než 10? 364 00:17:39,290 --> 00:17:39,930 Samozřejmě. 365 00:17:39,930 --> 00:17:41,030 Tak se to znovu. 366 00:17:41,030 --> 00:17:43,580 Pak se zvýší i + + na 2. 367 00:17:43,580 --> 00:17:44,610 Je 2 méně než 10? 368 00:17:44,610 --> 00:17:45,230 Ano. 369 00:17:45,230 --> 00:17:46,670 A znovu a znovu a znovu. 370 00:17:46,670 --> 00:17:50,070 A nakonec, protože plus-plussing, dostaneme se i rovná 10. 371 00:17:50,070 --> 00:17:51,675 Je 10 méně než 10? 372 00:17:51,675 --> 00:17:52,990 No, samozřejmě že ne. 373 00:17:52,990 --> 00:17:55,320 A to je bod, ve kterém pro smyčku zastaví. 374 00:17:55,320 --> 00:17:58,320 A pokud máte více kódu na obrazovce dole, počítač 375 00:17:58,320 --> 00:18:01,620 výtěžek spustit tento kód místo. 376 00:18:01,620 --> 00:18:05,380 >> Takže znovu, i když to bude vypadat a cítit trochu divně 377 00:18:05,380 --> 00:18:07,830 První, určitě pro ty z vás, kteří Nikdy naprogramováno, se 378 00:18:07,830 --> 00:18:11,640 doslova snižuje koncepčně na to, co je jinak velmi 379 00:18:11,640 --> 00:18:14,330 jednoduché puzzle kus Scratch. 380 00:18:14,330 --> 00:18:19,130 >> V pořádku, slíbil jsem, že bych být i jiné analogy ve Scratch. 381 00:18:19,130 --> 00:18:20,060 Tam je to taky. 382 00:18:20,060 --> 00:18:21,700 A viděli jsme to krátce minule. 383 00:18:21,700 --> 00:18:23,530 Ale pamatujte věčně zablokovat v Scratch? 384 00:18:23,530 --> 00:18:25,490 Je to prostě něco dělá navždy? 385 00:18:25,490 --> 00:18:27,470 Já tvrdil, že byste mohli realizovat to tímto způsobem. 386 00:18:27,470 --> 00:18:29,740 A můžete skutečně realizovat tento na spoustu různých způsobů. 387 00:18:29,740 --> 00:18:34,260 >> Ale zatímco smyčka je jen jiný způsob, jak v C, jak vyjádřit sám sebe. 388 00:18:34,260 --> 00:18:37,080 Na konci dne, můžete to udělat cokoliv s smyčky while, který 389 00:18:37,080 --> 00:18:38,360 nemůže se na smyčce. 390 00:18:38,360 --> 00:18:41,430 Takže jsou na konci den funkčně stejné. 391 00:18:41,430 --> 00:18:43,840 Ale to vám umožní vyjádřit sám sebe trochu jinak 392 00:18:43,840 --> 00:18:44,850 následujícím způsobem. 393 00:18:44,850 --> 00:18:49,720 >> S while, je to, co je v závorky, které je znovu zkontrolována a 394 00:18:49,720 --> 00:18:51,050 znovu a znovu. 395 00:18:51,050 --> 00:18:55,100 A jakmile má výraz nepravdivý, pak smyčka přestává vykonávat, 396 00:18:55,100 --> 00:18:57,890 a počítač pokračuje provozovat kterýkoliv jiný kód, 397 00:18:57,890 --> 00:18:59,230 mít ve svém souboru. 398 00:18:59,230 --> 00:19:02,180 >> Ale co je zajímavé je zde že jsem doslova napsal pravda. 399 00:19:02,180 --> 00:19:06,680 A pravda je typ Boolean hodnotu, hodnotu true nebo false. 400 00:19:06,680 --> 00:19:09,750 Mohli pravda někdy stane false pokud jsem doslova 401 00:19:09,750 --> 00:19:11,970 pevně ji do svého programu? 402 00:19:11,970 --> 00:19:12,470 Tak ne. 403 00:19:12,470 --> 00:19:13,730 Je to trochu divné, že jsem to udělal. 404 00:19:13,730 --> 00:19:15,190 Ale pravda je pravda. 405 00:19:15,190 --> 00:19:16,320 Neexistuje žádný plus-plussing. 406 00:19:16,320 --> 00:19:17,820 Nemá smysl proměnných v zde. 407 00:19:17,820 --> 00:19:22,740 Takže, protože jsem pevně, zatímco pravda, to smyčka je vždy bude hodnotit 408 00:19:22,740 --> 00:19:24,090 znovu a znovu a znovu. 409 00:19:24,090 --> 00:19:27,660 >> Takže kolikrát je hello world do tisku na obrazovce? 410 00:19:27,660 --> 00:19:28,170 Forever. 411 00:19:28,170 --> 00:19:31,980 Nekonečný počet krát, dokud se vybití baterie nebo jiné externí 412 00:19:31,980 --> 00:19:32,730 událost stane. 413 00:19:32,730 --> 00:19:35,880 Takže to asi není nejlepší program psát, protože v případě, že uživatel 414 00:19:35,880 --> 00:19:38,660 nikdy nemůže skončit svůj program, je to asi není to, co jste zamýšleli. 415 00:19:38,660 --> 00:19:41,070 >> Ale někdy, by měly být programy mají nekonečnou smyčku. 416 00:19:41,070 --> 00:19:44,050 Například, pokud váš počítač má hodiny na to, že by bylo jistě 417 00:19:44,050 --> 00:19:48,130 hezké, kdyby hodiny to průběžně aktualizovat sama o sobě navždy, i když jednou 418 00:19:48,130 --> 00:19:50,500 Druhá nebo jednou za minutu nebo něco takového. 419 00:19:50,500 --> 00:19:53,690 Takže i nekonečné smyčky mají své místo. 420 00:19:53,690 --> 00:19:54,360 >> Dobrá. 421 00:19:54,360 --> 00:19:55,190 Konečně, tohle. 422 00:19:55,190 --> 00:19:57,770 A tohle je trochu jiný, funkčně a vrátíme se zpět do 423 00:19:57,770 --> 00:19:59,460 to pravděpodobně v Pset 1. 424 00:19:59,460 --> 00:20:02,370 Ale je tu jiný typ smyčky volal do while. 425 00:20:02,370 --> 00:20:07,100 A jediný rozdíl mezi dělat, zatímco smyčka a, řekněme, while, 426 00:20:07,100 --> 00:20:11,120 je to, že podmínka je kontrolována není před spuštěním kódu, ale po 427 00:20:11,120 --> 00:20:12,080 spuštění kódu. 428 00:20:12,080 --> 00:20:15,380 Takže v horní části na dobu smyčky, zatímco dělat, když 429 00:20:15,380 --> 00:20:16,560 kontroly, které v dolní části. 430 00:20:16,560 --> 00:20:21,370 >> A to jen znamená, že cyklus while obvykle spustit vícekrát 431 00:20:21,370 --> 00:20:24,630 nebo méně krát než smyčky while? 432 00:20:24,630 --> 00:20:30,810 Potenciálně vícekrát, protože to while je jasně říká to, 433 00:20:30,810 --> 00:20:34,600 teprve po kterém místě byste zkontrolovat v případě, že stav uvnitř 434 00:20:34,600 --> 00:20:35,980 závorky, je pravda. 435 00:20:35,980 --> 00:20:37,940 >> Tak uvidíme to ještě jednou pravděpodobně v Pset 1. 436 00:20:37,940 --> 00:20:41,150 Pokud jste někdy chtěli něco udělat alespoň jednou a pak možná ještě víc 437 00:20:41,150 --> 00:20:43,350 krát, to je dobrá postavit použít. 438 00:20:43,350 --> 00:20:46,970 Ale zatímco smyčka, naopak, bude zkontrolovat její stav jako první. 439 00:20:46,970 --> 00:20:50,660 A to je pro smyčky v C, se zatímco, když, a smyčky. 440 00:20:50,660 --> 00:20:54,700 A opět, oni map docela pěkně zpátky na začátku, kromě toho, kdo nemá 441 00:20:54,700 --> 00:20:57,350 zcela stejný analogové Scratch. 442 00:20:57,350 --> 00:20:58,880 >> No a co teď, proměnné? 443 00:20:58,880 --> 00:21:02,600 Tak to je, jak jsem deklaroval proměnnou syntakticky druhý den. 444 00:21:02,600 --> 00:21:06,440 Měl jsem int, což jsem tvrdil, je celé číslo. 445 00:21:06,440 --> 00:21:09,690 Pak jsem proměnnou s názvem pult, a pak středník. 446 00:21:09,690 --> 00:21:11,070 Takže co je to řádek kódu děláš? 447 00:21:11,070 --> 00:21:14,540 To je prostě, když prohlásil variabilní - 448 00:21:14,540 --> 00:21:17,940 to je, ptá počítač, dej mi paměť, dej mi některé kousky - v 449 00:21:17,940 --> 00:21:19,450 které mohu uložit co? 450 00:21:19,450 --> 00:21:20,300 Int. 451 00:21:20,300 --> 00:21:23,570 A středník prostě znamená, konec řádku kódu. 452 00:21:23,570 --> 00:21:25,500 >> Nyní, druhý řádek je pravděpodobně docela odhalitelný. 453 00:21:25,500 --> 00:21:29,710 Co je counter = 0; děláš? 454 00:21:29,710 --> 00:21:31,690 Je přiřazení 0 proti. 455 00:21:31,690 --> 00:21:33,470 A tak to je další věc, je to trochu nepříjemné 456 00:21:33,470 --> 00:21:34,540 proti, řekněme, algebry. 457 00:21:34,540 --> 00:21:39,110 Zatímco v algebře, rovnítko znamená, rovná, tady v C, rovná 458 00:21:39,110 --> 00:21:40,470 znaménko znamená, že úkol. 459 00:21:40,470 --> 00:21:45,380 Takže to znamená, že dát to, co je na pravé straně na to, co je na levé straně. 460 00:21:45,380 --> 00:21:49,030 A uvidíme další symbol, se rovná rovná, když chceme, aby skutečně otestovat 461 00:21:49,030 --> 00:21:50,570 kvality, poněkud nepříjemně. 462 00:21:50,570 --> 00:21:52,590 >> Ale je to trochu neefektivní. 463 00:21:52,590 --> 00:21:55,090 Je to trochu nepříjemné, že mám deklarovat proměnnou a 464 00:21:55,090 --> 00:21:56,110 pak to hodnotu. 465 00:21:56,110 --> 00:21:59,380 Takže vlastně C nám umožňuje zjednodušit tím, a prostě to udělat všechno najednou. 466 00:21:59,380 --> 00:22:01,330 Můžete deklarovat proměnné na levé straně. 467 00:22:01,330 --> 00:22:04,590 Stále můžete udělat úkol na právo tím, že rovnítko v 468 00:22:04,590 --> 00:22:05,030 prostřední. 469 00:22:05,030 --> 00:22:08,740 Takže na konci dne, tyto dva jsou ekvivalentní, ale tahle, upřímně řečeno, 470 00:22:08,740 --> 00:22:11,840 je pravděpodobně lepší zvyk se dostat do jen proto, že je to trochu méně 471 00:22:11,840 --> 00:22:15,040 kód, je to trochu čitelnější, a to jen zpřísní 472 00:22:15,040 --> 00:22:17,470 váš kód, abych tak řekl. 473 00:22:17,470 --> 00:22:22,120 >> Jakékoliv dotazy dosud na okruhu, na různých faktorech, na podmínkách, na 474 00:22:22,120 --> 00:22:27,001 Booleovské operace, buď technicky nebo koncepčně? 475 00:22:27,001 --> 00:22:28,010 Dobrá. 476 00:22:28,010 --> 00:22:30,690 Takže teď to příště dostane trochu zajímavější. 477 00:22:30,690 --> 00:22:34,790 A to je příklad jsem dal do poslední čas, který právě mapuje Scratch příklad 478 00:22:34,790 --> 00:22:35,820 se k C. 479 00:22:35,820 --> 00:22:36,580 >> Takže funkce. 480 00:22:36,580 --> 00:22:38,110 Laicky řečeno, co je to funkce? 481 00:22:38,110 --> 00:22:42,900 482 00:22:42,900 --> 00:22:44,350 Musím být odvážnější se Vaší odpovědi. 483 00:22:44,350 --> 00:22:45,020 Co je to funkce? 484 00:22:45,020 --> 00:22:46,320 >> STUDENT: Má něco. 485 00:22:46,320 --> 00:22:46,780 >> DAVID Malan: Co je to? 486 00:22:46,780 --> 00:22:48,000 >> STUDENT: Má něco. 487 00:22:48,000 --> 00:22:48,710 >> DAVID Malan: Má něco. 488 00:22:48,710 --> 00:22:49,000 OK. 489 00:22:49,000 --> 00:22:49,590 Začneme tam. 490 00:22:49,590 --> 00:22:51,270 Takže funkce dělá něco. 491 00:22:51,270 --> 00:22:55,160 Takže je to kus kódu, který je zásadě realizovány jinde, že 492 00:22:55,160 --> 00:22:56,620 opravdu dělá něco. 493 00:22:56,620 --> 00:23:00,180 A teď, co je na tom zajímavé funkce je, že to může trvat vstup, 494 00:23:00,180 --> 00:23:02,710 a to může produkovat výstup. 495 00:23:02,710 --> 00:23:05,090 A pojďme vlastně vzít Podívejte se na tohle. 496 00:23:05,090 --> 00:23:09,030 >> Ten muž za oponou bylo úmyslné před chvílí. 497 00:23:09,030 --> 00:23:10,320 Zde máme tabulku. 498 00:23:10,320 --> 00:23:13,010 Ale předpokládám, že to ve skutečnosti představuje velkou krabici. 499 00:23:13,010 --> 00:23:14,940 Tak to je tzv. černá skříňka. 500 00:23:14,940 --> 00:23:19,800 A vůbec, v designu, v počítači věda, černé skříňky jen na 501 00:23:19,800 --> 00:23:22,510 kousky funkčnosti, že někdo zavedla, a ty ne 502 00:23:22,510 --> 00:23:26,140 nutně vědět, nebo jedno, jak je to realizován pod kapotou. 503 00:23:26,140 --> 00:23:28,960 Jenom pozor, aby to černá skříňka, které budeme nyní začít volat 504 00:23:28,960 --> 00:23:30,730 funkce, dělá něco. 505 00:23:30,730 --> 00:23:34,710 >> Tak například, pokud je to černá skříňka na etapa zde představuje printf, 506 00:23:34,710 --> 00:23:38,040 funkce, vím z předchozích příkladech printf, že se jeden nebo více 507 00:23:38,040 --> 00:23:40,910 argumenty, a první z nich argumenty by měly být řetězec, jako je 508 00:23:40,910 --> 00:23:44,780 "Hello, world". No, když jsem osoba psaní programu, a já chci 509 00:23:44,780 --> 00:23:50,460 použít printf, já, například, může vzít kus prázdného papíru a tady 510 00:23:50,460 --> 00:23:55,060 černý fix a na něj psát - 511 00:23:55,060 --> 00:23:56,580 I chybně "svět" - 512 00:23:56,580 --> 00:23:59,560 H-E-L-L-O. 513 00:23:59,560 --> 00:24:04,220 >> Tak jsem si vezmu černou značku a budu psát, jak velký a čitelně, jak jen mohu na 514 00:24:04,220 --> 00:24:07,260 tento kus papíru, "ahoj, svět," A teď prohlašují, že toto je můj argument. 515 00:24:07,260 --> 00:24:09,740 Toto je řetězec reprezentován kus bílého papíru. 516 00:24:09,740 --> 00:24:13,030 A teď můj vstup do funkce printf bude to. 517 00:24:13,030 --> 00:24:18,250 Takže jsem volání printf, procházející tento argument jako vstup do něj. 518 00:24:18,250 --> 00:24:22,110 519 00:24:22,110 --> 00:24:26,740 >> A teď, já nevím, jak ten, kdo napsal printf to udělal před lety, ale 520 00:24:26,740 --> 00:24:31,110 Vím z jeho dokumentace, která jeho účel v životě je vytisknout to, co jsem 521 00:24:31,110 --> 00:24:34,410 poskytnout k tomu jako vstup. 522 00:24:34,410 --> 00:24:40,630 A tak, i když tato implementace je bez vědomí mě 523 00:24:40,630 --> 00:24:44,170 Pod kapotou se Vidím, oh, se to dělá. 524 00:24:44,170 --> 00:24:45,740 Je vytištěna něco na obrazovce. 525 00:24:45,740 --> 00:24:49,070 A nyní ovládají programu, je-li bylo více řádků kódu, by 526 00:24:49,070 --> 00:24:51,070 se nyní vrátila ke mně. 527 00:24:51,070 --> 00:24:52,290 A tak to, že Colton - 528 00:24:52,290 --> 00:24:55,370 požehnat jeho srdce, se skrývá tady pod stůl před vámi všemi - 529 00:24:55,370 --> 00:24:59,530 je záměrné v tom, že nevím, a je mi jedno, jak printf je 530 00:24:59,530 --> 00:25:00,100 prováděna. 531 00:25:00,100 --> 00:25:03,390 Vím jen, že opět z jeho dokumentace, co dělá a jak se 532 00:25:03,390 --> 00:25:05,040 jsem měl použít. 533 00:25:05,040 --> 00:25:09,140 >> Nyní si připomeňme, že printf mohl dostat trochu složitější. 534 00:25:09,140 --> 00:25:12,220 Opět jsme si povídali o ekvivalent Say bloku Scratch je. 535 00:25:12,220 --> 00:25:14,230 Ale také jsem to udělal minule. 536 00:25:14,230 --> 00:25:17,270 Chtěl jsem, aby můj program, ahoj trochu více dynamický a ne jen těžké 537 00:25:17,270 --> 00:25:19,740 Kód něco jako "světa" rozhodně není těžké něco kód 538 00:25:19,740 --> 00:25:22,520 libovolná stejně jako D-A-V-I-D do programu. 539 00:25:22,520 --> 00:25:27,510 Chtěl jsem se zeptat uživatele o jeho nebo její jméno, a pak něco dělat 540 00:25:27,510 --> 00:25:29,720 že řetězec, který poskytují. 541 00:25:29,720 --> 00:25:32,690 >> Takže tam je něco trochu jiného zde. printf, před chvílí, 542 00:25:32,690 --> 00:25:35,860 se skutečně něco udělat, ale je to nevrátil nic pro mě. 543 00:25:35,860 --> 00:25:36,020 Je to tak? 544 00:25:36,020 --> 00:25:38,910 Colton neměl ruce mi nic zpět, ani kus papíru. 545 00:25:38,910 --> 00:25:40,320 Tam byl jen vedlejší efekt. 546 00:25:40,320 --> 00:25:44,510 Má poskytovat "Hello, world", jak argument Colton následek 547 00:25:44,510 --> 00:25:48,420 vedlejší účinek slova, některá slova, se objeví na obrazovce. 548 00:25:48,420 --> 00:25:51,350 >> GetString, i když je trochu různé. GetString je také 549 00:25:51,350 --> 00:25:54,590 funkce, ale vrací nějakou hodnotu. 550 00:25:54,590 --> 00:25:56,370 To není jen estetický vedlejší efekt. 551 00:25:56,370 --> 00:26:00,230 Je to vlastně mi dává, osoba volání nebo použití funkce, 552 00:26:00,230 --> 00:26:01,320 něco zpátky. 553 00:26:01,320 --> 00:26:05,740 Takže v tomto případě, je GetString dorovnal s otevřeným GetString 554 00:26:05,740 --> 00:26:07,510 závorka, v blízkosti závorka. 555 00:26:07,510 --> 00:26:11,370 Má GetString, proto se nějaké argumenty nebo vstup? 556 00:26:11,370 --> 00:26:12,340 No, zdá se, není. 557 00:26:12,340 --> 00:26:14,460 Jeho cílem v životě je jen proto, aby řetězec. 558 00:26:14,460 --> 00:26:16,910 To nepotřebuje více detailů než to. 559 00:26:16,910 --> 00:26:20,430 Tak mě nech jít dál a předstírat, že znovu, black box není printf, 560 00:26:20,430 --> 00:26:25,160 ale GetString, a dovolte mi, abych na osobu psaní tohoto programu, zavolejte nebo použijte 561 00:26:25,160 --> 00:26:29,720 GetString jen o psaní G-E-T-S-T-R-I-N-G, open paren, zavřít 562 00:26:29,720 --> 00:26:32,170 závorka, GetString. 563 00:26:32,170 --> 00:26:36,920 >> Teď nemám ponětí, jak se CS50 zaměstnanci realizován GetString, ale vím, že 564 00:26:36,920 --> 00:26:41,240 když jsem čekat dost dlouho, bude to dělat svou věc pod kapotou, možná pomocí 565 00:26:41,240 --> 00:26:44,940 některé proměnné, možná pomocí některé podmínky, možná pomocí některých smyček, 566 00:26:44,940 --> 00:26:48,170 Možná používání některých funkcí, Možná použití - 567 00:26:48,170 --> 00:26:52,290 Jen se snažím stánku - možná pomocí některé další programovací funkce. 568 00:26:52,290 --> 00:26:55,350 Ale když jsem čekat dost dlouho - ve skutečnosti, v počítači, se tak stane 569 00:26:55,350 --> 00:26:56,270 super rychlý - 570 00:26:56,270 --> 00:26:59,910 když jsem čekat dost dlouho, tato funkce GetString dostane řetězec 571 00:26:59,910 --> 00:27:04,060 od uživatele, který je pravděpodobně píšete že se na jejich klávesnici a 572 00:27:04,060 --> 00:27:08,090 pak, když GetString jste se provádí stále tyto znaky od uživatele 573 00:27:08,090 --> 00:27:14,080 a jejich uložení do řetězce, který funkce, GetString, bude mít 574 00:27:14,080 --> 00:27:17,990 připraven pro mě nějaký výstup, který mne bude získat prostřednictvím 575 00:27:17,990 --> 00:27:19,470 operátor přiřazení. 576 00:27:19,470 --> 00:27:25,390 >> A když odejdu, opravdu, na výstupu zde Obosi má velkoryse 577 00:27:25,390 --> 00:27:29,900 účastnil, aniž by to věděl v předem, písemně své jméno na to 578 00:27:29,900 --> 00:27:33,100 proměnná, která zastupuje řetězec. 579 00:27:33,100 --> 00:27:35,640 Nyní je operátor přiřazení znamená, že i i když to může cítit trochu 580 00:27:35,640 --> 00:27:38,790 redundantní, já vlastně potřebuju aby svou vlastní kopii tohoto. 581 00:27:38,790 --> 00:27:40,700 Vzhledem k tomu, na levé straně strana - POZOR! - 582 00:27:40,700 --> 00:27:45,760 Všimněte si, že jsem v podstatě mají řetězec jméno na levé straně. 583 00:27:45,760 --> 00:27:48,280 Tak jsem také bude, aby se moje vlastní kopie tohoto. 584 00:27:48,280 --> 00:27:50,990 A to je trochu bílé lži, protože uvidíme za týden, nebo dvě, 585 00:27:50,990 --> 00:27:54,100 čas, řetězce nejsou ve skutečnosti jaké se zdají být. 586 00:27:54,100 --> 00:27:56,700 >> Ale teď, tady je návratová hodnota. 587 00:27:56,700 --> 00:28:00,160 Tady je můj vlastní kopii, kterou po pomocí operátoru přiřazení. 588 00:28:00,160 --> 00:28:01,790 A teď, co chci dělat dál? 589 00:28:01,790 --> 00:28:04,080 Máme nyní druhý dvou řádků kódu. 590 00:28:04,080 --> 00:28:05,640 Tak jsem teď chcete zavolat printf. 591 00:28:05,640 --> 00:28:08,500 Pojďme předstírat, že se černá box je zase zpátky k bytí 592 00:28:08,500 --> 00:28:10,210 printf a ne GetString. 593 00:28:10,210 --> 00:28:12,200 >> Printf tentokrát bude se, kolik argumenty? 594 00:28:12,200 --> 00:28:14,890 595 00:28:14,890 --> 00:28:16,770 Tak se podívejte, je to jako dva. 596 00:28:16,770 --> 00:28:18,860 Existují dva čárky tam, ale jeden z těch čárek, je to 597 00:28:18,860 --> 00:28:20,220 uvnitř uvozovek. 598 00:28:20,220 --> 00:28:23,190 Takže první argument je doslova bude to. 599 00:28:23,190 --> 00:28:31,850 H-E-L-L-O, čárka, procenta s, zpětné lomítko-n. 600 00:28:31,850 --> 00:28:36,560 A teď jsem poskytuje ne jeden argument, ale dva argumenty printf. 601 00:28:36,560 --> 00:28:39,530 >> A co printf dělat se Tyto dva vstupy po předám jim 602 00:28:39,530 --> 00:28:42,050 jako argumenty? 603 00:28:42,050 --> 00:28:45,360 Mělo by to trvat sekundu je, které jsem volal jméno, takže 604 00:28:45,360 --> 00:28:48,660 Druhý kus papíru jsem napsal z Před chvílí se nazývá jménem. 605 00:28:48,660 --> 00:28:53,550 Bude to konektor hodnoty uvnitř této proměnné do vyhrazeného místa 606 00:28:53,550 --> 00:28:58,310 % S, takže znovu, jen na chvíli je čas, uvidíme vedlejší účinek 607 00:28:58,310 --> 00:29:04,180 povolav printf, přičemž nyní se nevidí "Hello, world", ale "Dobrý den, 608 00:29:04,180 --> 00:29:04,710 Obosi. " 609 00:29:04,710 --> 00:29:08,730 >> Tak velký potlesk pro oba naši dobrovolníci, pouze jeden z nich věděl, 610 00:29:08,730 --> 00:29:12,010 by to být pravda. 611 00:29:12,010 --> 00:29:12,990 Dobrá. 612 00:29:12,990 --> 00:29:16,480 Tak, možná, že je jednoduché, jistě, pokud jste již obeznámeni 613 00:29:16,480 --> 00:29:20,190 s takovými, doufejme, že jste se nikdy zapomenout, že zejména vizuální, jak 614 00:29:20,190 --> 00:29:21,220 funkce pracují. 615 00:29:21,220 --> 00:29:23,000 >> Takže tam je víc než jen GetString. 616 00:29:23,000 --> 00:29:26,020 Uvnitř CS50 knihovny, je tu Celý svazek funkcí, z nichž 617 00:29:26,020 --> 00:29:29,510 jsou aktivovány jen aby bylo jasné, že jsme napsali tyto funkce. 618 00:29:29,510 --> 00:29:33,610 Typicky, v C, téměř každý druhý funkce budete používat, je malá. 619 00:29:33,610 --> 00:29:36,190 Ale my jsme záměrně používat velká písmena jen aby bylo jasné, že se jedná 620 00:29:36,190 --> 00:29:39,880 jsou školicí kola druhu, že budeme používat jen na pár týdnů, které 621 00:29:39,880 --> 00:29:42,890 zjednodušit proces získávání vstup od uživatele. 622 00:29:42,890 --> 00:29:46,740 >> Knihovna CS50 nic nedělá že vy sami nemohli dělat ani 623 00:29:46,740 --> 00:29:50,230 jen pomocí kódu z C oldschool učebnice. 624 00:29:50,230 --> 00:29:53,310 Ale opět použijeme je jako trénink kola druhů jen za pár 625 00:29:53,310 --> 00:29:57,250 týdnů, takže můžeme zbavit složitosti, že budete brzy pochopit, 626 00:29:57,250 --> 00:30:00,460 sám dělat něco tak poměrně jednoduché, jak dostat 627 00:30:00,460 --> 00:30:02,080 vstup od uživatele. 628 00:30:02,080 --> 00:30:05,540 >> Takže víte, že budete mít přístup na GetChar, GetDouble - 629 00:30:05,540 --> 00:30:06,050 zdvojnásobí. 630 00:30:06,050 --> 00:30:07,050 What's - a pak GetFloat. 631 00:30:07,050 --> 00:30:07,600 Co je to float? 632 00:30:07,600 --> 00:30:09,382 Začněme tam. 633 00:30:09,382 --> 00:30:10,600 >> STUDENT: [neslyšitelné]. 634 00:30:10,600 --> 00:30:10,790 >> DAVID Malan: Jo. 635 00:30:10,790 --> 00:30:12,120 Je to číslo s desetinnou čárkou. 636 00:30:12,120 --> 00:30:15,930 Tak vzhledem k tomu, int je celé číslo, které je jen číslo s 0 až 9, 637 00:30:15,930 --> 00:30:18,940 někteří počet opakování této smlouvy, plovák je něco, 638 00:30:18,940 --> 00:30:20,100 s desetinnou čárkou. 639 00:30:20,100 --> 00:30:26,090 A dvojité, mezitím, je také číslo s desetinnou čárkou, ale 640 00:30:26,090 --> 00:30:28,160 čísla za desetinnou čárkou bod, potenciálně. 641 00:30:28,160 --> 00:30:30,040 >> Tak jsme se vrátím k tomu zanedlouho. 642 00:30:30,040 --> 00:30:34,560 Ale obvykle, každý z těchto typů údaje, každý z těchto typů proměnných 643 00:30:34,560 --> 00:30:39,380 že knihovna jako je ta naše může vrátit do můžete použít různý počet bitů na 644 00:30:39,380 --> 00:30:40,290 ukládání informací. 645 00:30:40,290 --> 00:30:43,910 Typicky, Char, což prostě znamená, jeden znak, používá 8 bitů. 646 00:30:43,910 --> 00:30:47,490 A to je vlastně v souladu s našimi byte dobrovolníků, kteří minulý týden 647 00:30:47,490 --> 00:30:50,410 přišel a představuje jednu ASCII znak najednou. 648 00:30:50,410 --> 00:30:51,850 Takže Char je 8 bitů. 649 00:30:51,850 --> 00:30:54,430 >> Plovák se stane, že je 32 bitů, typicky. 650 00:30:54,430 --> 00:30:59,230 A dvojité, jak asi tušíte, je ve skutečnosti 64 bitů, což je prostě víc, 651 00:30:59,230 --> 00:31:01,360 což znamená, že můžete mít větší čísla nebo větší přesností. 652 00:31:01,360 --> 00:31:03,000 Ale na druhou stranu, o tom až jindy. 653 00:31:03,000 --> 00:31:06,550 GetLongLong, zatím, ale hloupě jmenoval, je opravdu jen 654 00:31:06,550 --> 00:31:10,770 Celé číslo, které je dvakrát větší, dvakrát dlouho, případně, jako běžné 655 00:31:10,770 --> 00:31:12,940 celé číslo, 64 bitů místo 32. 656 00:31:12,940 --> 00:31:14,560 A GetString jsme používali. 657 00:31:14,560 --> 00:31:18,870 >> Ale jak se ukázalo, v CS50 knihovně který se provádí, jak uvidíme, v 658 00:31:18,870 --> 00:31:23,560 formě dvou souborů, z nichž se nazývá cs50.h má další dva 659 00:31:23,560 --> 00:31:24,770 datové typy v něm. 660 00:31:24,770 --> 00:31:29,700 Booleovské neexistují C. Zahřívání můžete simulovat jen pomocí 0s a 1s 661 00:31:29,700 --> 00:31:30,850 po celou dobu své programy. 662 00:31:30,850 --> 00:31:35,500 Ale my jsme v knihovně CS50 vytvořili symboly "true" a "false" 663 00:31:35,500 --> 00:31:38,580 představuje 1 a 0, takže nemusíte mají na pevný kódu něco 664 00:31:38,580 --> 00:31:39,810 doslova jako 1 a 0. 665 00:31:39,810 --> 00:31:40,980 Ale uvidíme ty znovu. 666 00:31:40,980 --> 00:31:42,330 >> String, taky neexistuje. 667 00:31:42,330 --> 00:31:44,520 A to je důvod, proč jsem se zmínil, že je to trochu bílé lži pro tuto chvíli. 668 00:31:44,520 --> 00:31:46,660 Ale budeme Sloupněte tohoto vrstva zanedlouho. 669 00:31:46,660 --> 00:31:49,540 Ale teď je řetězec posloupnost znaků. 670 00:31:49,540 --> 00:31:51,790 >> Mezitím, v C, je ve skutečnosti mají různé datové typy. 671 00:31:51,790 --> 00:31:53,200 Všimněte si, to jsou malá. 672 00:31:53,200 --> 00:31:56,960 Takže funkce, které viděl před chvílí jsou funkce Napsal CS50 že 673 00:31:56,960 --> 00:32:02,310 vrátí vám hodnotu, která spadá do jedné z těchto kategorií. 674 00:32:02,310 --> 00:32:06,730 >> A pár listů podvádět jen zasadit semeno zde. printf není jen 675 00:32:06,730 --> 00:32:08,600 se% s jako zástupné symboly. 676 00:32:08,600 --> 00:32:13,490 Trvá% d pro desítkové celá čísla, nebo% i bude fungovat stejně. 677 00:32:13,490 --> 00:32:19,450 % F je plovoucí bodové hodnoty. % C je pro char, pokud chcete jen připojit jeden 678 00:32:19,450 --> 00:32:23,510 znak do řetězce předformátovaného jako jsme dělali, můžete použít% c. 679 00:32:23,510 --> 00:32:28,490 >> A pak, poněkud nechutně,% je LLD na dlouhou desítkové celé číslo, 680 00:32:28,490 --> 00:32:31,050 což jen znamená, že pokud budete potřebovat opravdu velké číslo, a používáte něco 681 00:32:31,050 --> 00:32:35,450 tzv. long long, což přijdeme zpět na Pset, můžete použít% odboru LLD 682 00:32:35,450 --> 00:32:40,700 printf říct, připojte opravdu velký integer zde jako své druhé nebo 683 00:32:40,700 --> 00:32:41,830 nějaký jiný důvod. 684 00:32:41,830 --> 00:32:45,700 >> A konečně, jsem slíbil, že je tu několik dalších útěk 685 00:32:45,700 --> 00:32:47,670 sekvence, které printf podporuje. 686 00:32:47,670 --> 00:32:49,160 Viděli jsme zpětné lomítko-n. 687 00:32:49,160 --> 00:32:50,510 Zpětné lomítko-r můžete vidět. 688 00:32:50,510 --> 00:32:51,780 Je to něco jako old-school věc. 689 00:32:51,780 --> 00:32:55,920 Pokud jste někdy používali skutečný psací stroj roky Před a vytáhl na kliky 690 00:32:55,920 --> 00:32:59,810 které nejen otáčet kolečka přesunout lineup, ale také se stěhoval 691 00:32:59,810 --> 00:33:03,730 Celá věc celou cestu zpátky k doleva, dobře, lomítko-r jen 692 00:33:03,730 --> 00:33:06,480 v podstatě se pohybuje kurzor zpět na začátku řádku 693 00:33:06,480 --> 00:33:07,830 bez pohybu dolů. 694 00:33:07,830 --> 00:33:09,780 Ale na druhou stranu, o tom více, možná v budoucnu. 695 00:33:09,780 --> 00:33:13,670 >> Zpětné lomítko uvozovky, zpětné lomítko, uvozovky, zpětné lomítko zpětné lomítko je 696 00:33:13,670 --> 00:33:16,600 řešení malinké hádanky Jsem zmiňoval dříve. 697 00:33:16,600 --> 00:33:18,920 A zpětné lomítko-0 je vlastně docela zajímavé. 698 00:33:18,920 --> 00:33:21,470 Ale vrátíme se že zanedlouho. 699 00:33:21,470 --> 00:33:25,640 >> Tak mě nech jít do teď, CS50 spotřebič, a pojďme skutečně 700 00:33:25,640 --> 00:33:28,930 rychlé zahřátí s jedním z příkladů jsme se již, a pak přejít na 701 00:33:28,930 --> 00:33:31,160 něco trochu složitější. 702 00:33:31,160 --> 00:33:34,980 Takže když otevřu můj program volal gedit - 703 00:33:34,980 --> 00:33:36,840 toto je můj grafický editor. 704 00:33:36,840 --> 00:33:38,460 A můžu to udělat - 705 00:33:38,460 --> 00:33:39,820 dovol mi zavřít to okno tam - 706 00:33:39,820 --> 00:33:42,720 prostřednictvím této ikony se zde, gedit, v levém dolním rohu 707 00:33:42,720 --> 00:33:44,170 rohu vedle menu. 708 00:33:44,170 --> 00:33:48,670 >> Chystám se jít dopředu a rozvíjet, a uložit tento příklad do, řekněme, Johne 709 00:33:48,670 --> 00:33:49,660 Harvard je složka. 710 00:33:49,660 --> 00:33:52,690 John Harvard je složka je jen jeho domov adresář, kde všechny jeho soubory žije 711 00:33:52,690 --> 00:33:53,340 ve výchozím nastavení. 712 00:33:53,340 --> 00:33:58,410 A já jdu uložit jako soubor s názvem ahoj-0.c. 713 00:33:58,410 --> 00:34:01,260 A já jsem zvolil tento název jen tak, že seřadí se ukázkový kód v 714 00:34:01,260 --> 00:34:04,210 Samozřejmě WWW stránky a YouTube videa online. 715 00:34:04,210 --> 00:34:06,320 >> Takže teď jdu začít napsat svůj první program. 716 00:34:06,320 --> 00:34:08,469 Dovolte mi přiblížit čitelnosti. 717 00:34:08,469 --> 00:34:12,760 A já jdu dál a říkají, int Hlavní void, což je stejně jako, že 718 00:34:12,760 --> 00:34:14,900 žlutá puzzle kus, který spustí program. 719 00:34:14,900 --> 00:34:18,290 Jsem se dostal do zvyku přes let jsem otevřel složená závorka, pak 720 00:34:18,290 --> 00:34:22,000 i zavření a pak jít zpět do tam, kde chci, aby můj kód jen 721 00:34:22,000 --> 00:34:24,630 protože mi to pomáhá udržet vše vyvážený, zejména mé 722 00:34:24,630 --> 00:34:25,880 program dostane dlouho. 723 00:34:25,880 --> 00:34:29,239 >> A teď, tady, já jdu do toho a řekl, printf, citovat unquote, 724 00:34:29,239 --> 00:34:34,330 hello world, lomítko-n, v blízkosti cituji, zavřít závorka, středník. 725 00:34:34,330 --> 00:34:38,100 Takže jsem jen opakovat vše, co jsme bral jako samozřejmost tak daleko. 726 00:34:38,100 --> 00:34:39,270 Teď jdu oddálit. 727 00:34:39,270 --> 00:34:43,030 >> A to okno terminálu tady, co smím dělat v této černé 728 00:34:43,030 --> 00:34:44,389 a bílá okna? 729 00:34:44,389 --> 00:34:46,977 Co mohu použít pro? 730 00:34:46,977 --> 00:34:49,770 Tak tohle je místo, kde jsem spouštět příkazy a kde bych mohl sestavit věci. 731 00:34:49,770 --> 00:34:50,620 A budu držet to jednoduchý. 732 00:34:50,620 --> 00:34:52,780 Budu používat program tzv. značka, která není 733 00:34:52,780 --> 00:34:54,020 technicky kompilátor. 734 00:34:54,020 --> 00:34:56,360 Kompilátor se jmenuje zvonění, ale vrátíme se k tomu v 735 00:34:56,360 --> 00:34:57,190 týden nebo dva čas. 736 00:34:57,190 --> 00:35:03,410 >> Pro tuto chvíli jsem jen tak psát, aby ahoj-0, ale ti z vás, kteří byli 737 00:35:03,410 --> 00:35:07,050 srovnání ve vašich myslích, co jsem právě napsal, co jsem měl napsáno mohou 738 00:35:07,050 --> 00:35:10,180 už víte, že jsem to udělal něco špatně. 739 00:35:10,180 --> 00:35:12,160 Nyní, tam je zřejmé, že některé chyby. 740 00:35:12,160 --> 00:35:16,742 Než jsem se ani podívat na to, co oni jsou, každý myšlenky na to, co jsem udělal špatně? 741 00:35:16,742 --> 00:35:18,590 >> STUDENTI: [Přechodová Hlasy]. 742 00:35:18,590 --> 00:35:18,840 >> DAVID Malan: Jo. 743 00:35:18,840 --> 00:35:20,640 Chybí mi v knihovně je hlavičkový soubor. 744 00:35:20,640 --> 00:35:24,240 Každý z těchto souborů. H se nazývají záhlaví soubory, a tím, že společně 745 00:35:24,240 --> 00:35:25,680 patří k věcem tzv. knihovny. 746 00:35:25,680 --> 00:35:28,030 Knihovny jsou jen kusy kódu že ostatní lidé psali. 747 00:35:28,030 --> 00:35:32,140 Takže standard [? i?] Knihovna je kolekce souborů, které obsahují kód 748 00:35:32,140 --> 00:35:33,330 že ostatní lidé psali. 749 00:35:33,330 --> 00:35:34,820 >> Takže mi chybí, že. 750 00:35:34,820 --> 00:35:36,520 Tak proč jsem stále jste chybu? 751 00:35:36,520 --> 00:35:40,840 No, dovolte mi, abych se posunout zpět do moje okno terminálu zde. 752 00:35:40,840 --> 00:35:44,310 A bohužel, v C, stejně jako v mnoha programovací jazyky, zejména 753 00:35:44,310 --> 00:35:47,830 pokud je to pro vás nové, chyba zprávy jsou přesné, ale jsou také 754 00:35:47,830 --> 00:35:48,620 velmi tajemný. 755 00:35:48,620 --> 00:35:51,720 A chyba tady, v červené barvě, je "Implicitně deklarovat funkce knihovny 756 00:35:51,720 --> 00:35:57,660 printf s typem, "a pak to svitky na další řádek, "int const char *, 757 00:35:57,660 --> 00:36:00,220 ... "Jen se opravdu ohromující rychle. 758 00:36:00,220 --> 00:36:04,420 >> Ale to, co byste měli začít dělat, pokud opět nová k tomu všemu, je jen 759 00:36:04,420 --> 00:36:06,010 začít hledat klíčová slova. 760 00:36:06,010 --> 00:36:08,770 Jasně, mohl bych nerozuměl poloviny ze slov, jsem viděl jen zatím. 761 00:36:08,770 --> 00:36:10,140 Budete však za týden času. 762 00:36:10,140 --> 00:36:11,230 Ale vidím, že printf. 763 00:36:11,230 --> 00:36:14,310 A to by měla začít zanedlouho se osvěžit paměť v pořádku, printf. 764 00:36:14,310 --> 00:36:15,210 Něco je špatně s printf. 765 00:36:15,210 --> 00:36:16,580 Už jsem hláskovat špatně? 766 00:36:16,580 --> 00:36:18,130 Ne, to nevypadá jako - oh. 767 00:36:18,130 --> 00:36:21,350 Nemohu používat, pokud učím kompilátor, že to existuje. 768 00:36:21,350 --> 00:36:25,220 A tak opět chodit se svými instinkty, i když nemáte skutečně pochopit 769 00:36:25,220 --> 00:36:26,510 skutečné chybové zprávy. 770 00:36:26,510 --> 00:36:30,240 >> A skutečně, řešení je zde jen je to v horní části souboru 771 00:36:30,240 --> 00:36:34,340 jako to, že resaving můj soubor s Ovládání-S nebo menu Soubor. 772 00:36:34,340 --> 00:36:36,730 A když jsem se teď vrátit se sem, Chystám se vyčistit to. 773 00:36:36,730 --> 00:36:39,150 Control-L je jen příjemný způsob, vymazat obrazovku. 774 00:36:39,150 --> 00:36:44,870 A pak budu psát "aby ahoj 0 "Enter a teď jsem ještě vidět 775 00:36:44,870 --> 00:36:47,710 kryptických posloupnost symbolů, ale vrátíme k tomu. 776 00:36:47,710 --> 00:36:49,230 To je to, co udělat, je dělat za vás. 777 00:36:49,230 --> 00:36:52,590 Je to automatizací procesu přijímání docela nepříjemné příkaz zahrnující 778 00:36:52,590 --> 00:36:54,050 Zvonění, vlastní kompilátor. 779 00:36:54,050 --> 00:36:57,460 Ale je fakt, že jsem žádné chyby znamená, že tato věc by mělo fungovat. 780 00:36:57,460 --> 00:37:00,630 >> Takže jsem teď dělat - dovolte mi přiblížit znovu - 781 00:37:00,630 --> 00:37:07,070 ./hello-0 Enter, a opravdu, vidím "Hello, world". Takže pojďme se zlepšit 782 00:37:07,070 --> 00:37:12,105 to někdy tak trochu jen k replikaci Kroky, které jsme zamýšleli. 783 00:37:12,105 --> 00:37:15,370 Chystám se přejmenovat to s Uložit jako hello1.c. 784 00:37:15,370 --> 00:37:20,300 A teď budu deklarovat proměnnou volal jméno, takže string name, 785 00:37:20,300 --> 00:37:23,420 a já jdu dát v něm hodnota citátem-unquote 786 00:37:23,420 --> 00:37:27,030 D--V-I-D close-quote středníkem. 787 00:37:27,030 --> 00:37:31,150 A teď jdu nahradit "svět" s tím, co zástupný řetězec? 788 00:37:31,150 --> 00:37:32,200 % S. 789 00:37:32,200 --> 00:37:35,040 >> A teď, jak by mnozí argumenty printf trvat tentokrát? 790 00:37:35,040 --> 00:37:35,700 Tak dva. 791 00:37:35,700 --> 00:37:37,090 Tak jsem se jít mimo uvozovek. 792 00:37:37,090 --> 00:37:39,330 Píšu "jméno" po čárkou. 793 00:37:39,330 --> 00:37:41,550 Ale já jsem udělal něco jinak špatně tentokrát. 794 00:37:41,550 --> 00:37:43,940 Ale předpokládejme, že jsem to neudělal Uvědomujeme si, že ještě. 795 00:37:43,940 --> 00:37:44,910 Nech mě jít sem. 796 00:37:44,910 --> 00:37:48,850 >> A upozornění, taky jsem už trochu nudí psaní ", aby ahoj 0" všichni 797 00:37:48,850 --> 00:37:50,180 čas, "make" a to všechno. 798 00:37:50,180 --> 00:37:53,270 Tak to dopadá, v Linus můžete často narazí na šipku nahoru na vašem 799 00:37:53,270 --> 00:37:56,850 klávesnice a můžete skutečně procházet přes všechny příkazy, které jsem 800 00:37:56,850 --> 00:37:58,830 proveden dříve právě teď. 801 00:37:58,830 --> 00:38:02,040 Takže když to udělám, nahoru, nahoru, je tu, aby ahoj 0. 802 00:38:02,040 --> 00:38:02,610 Nechci to. 803 00:38:02,610 --> 00:38:05,450 Jen chci změnit na ahoj 1 tentokrát Enter. 804 00:38:05,450 --> 00:38:07,620 Nakonec, bude to ušetří nějaký čas. 805 00:38:07,620 --> 00:38:08,150 >> Dobrá. 806 00:38:08,150 --> 00:38:09,520 Bohužel, je to je chyba. 807 00:38:09,520 --> 00:38:10,980 Takže dovolte mi posunout nahoru. 808 00:38:10,980 --> 00:38:13,120 Vypadá to jako opravdu porážel tento program. 809 00:38:13,120 --> 00:38:16,530 Myslím, že můj bože, je to dva řádky kódu, a jeho 10 řádků chyb. 810 00:38:16,530 --> 00:38:18,800 Ale podívejte se na horním první. 811 00:38:18,800 --> 00:38:21,640 Použití nehlášené identifikátoru řetězce. 812 00:38:21,640 --> 00:38:23,270 Už jsem na mysli standardní i n? 813 00:38:23,270 --> 00:38:23,930 Ne, já ne. 814 00:38:23,930 --> 00:38:24,940 Myslel jsem řetězec. 815 00:38:24,940 --> 00:38:29,390 >> Ale kde je řetězcové proměnné Typ prohlásil, dd říkáme? 816 00:38:29,390 --> 00:38:30,730 Takže je to v CS50 knihovny. 817 00:38:30,730 --> 00:38:33,740 Takže to nebude stačit, a to jako první pár týdnů, stačí použít 818 00:38:33,740 --> 00:38:34,860 co C nám dává. 819 00:38:34,860 --> 00:38:38,120 Jsem také jít sem, a já mohl dát nad nebo pod, ale budu 820 00:38:38,120 --> 00:38:40,340 jen držet je abecední udržet věci spořádaně. 821 00:38:40,340 --> 00:38:43,470 Chystám se zahrnují cs50.h, který je předinstalován na 822 00:38:43,470 --> 00:38:44,900 Jste na CS50 spotřebiče. 823 00:38:44,900 --> 00:38:47,640 A je to open source, takže i lidé na internetu lze ho použít na jejich 824 00:38:47,640 --> 00:38:48,450 vlastní počítače. 825 00:38:48,450 --> 00:38:50,700 Ale to přijde s CS50 spotřebiče. 826 00:38:50,700 --> 00:38:55,320 >> Takže teď mi dovolte vrátit se a znovu zkompilujte to s make ahoj 1. 827 00:38:55,320 --> 00:38:55,710 Sakra. 828 00:38:55,710 --> 00:38:57,240 Ještě další chyba. 829 00:38:57,240 --> 00:38:59,370 Dovolte mi, přejděte do první, ačkoli. 830 00:38:59,370 --> 00:39:00,630 To je trochu složitější. 831 00:39:00,630 --> 00:39:03,830 Multi-znak znaková konstanta. 832 00:39:03,830 --> 00:39:04,890 To není mi pomáhá. 833 00:39:04,890 --> 00:39:08,220 Ale oznámení, zvonění je alespoň trochu trochu slušný, čímž se trochu 834 00:39:08,220 --> 00:39:11,890 zelená stříška symbol, je to říká Zde je místo, kde jsem to zvoral. 835 00:39:11,890 --> 00:39:16,160 Proč se ukazuje, že se jen málo zelená šipka, do jednoduchých uvozovek další 836 00:39:16,160 --> 00:39:18,290 na mé jméno? 837 00:39:18,290 --> 00:39:20,880 >> Takže to je jedna z věcí, které jen zvyknout, zvláště pokud jste byli 838 00:39:20,880 --> 00:39:23,980 programování v Pythonu, nebo JavaScript, nebo jiných jazycích, pokud to detail 839 00:39:23,980 --> 00:39:24,560 nezáleží. 840 00:39:24,560 --> 00:39:25,740 V C, záleží na tom. 841 00:39:25,740 --> 00:39:29,520 Pokud deklarovat řetězec, který je sekvence 0 nebo více znaků, 842 00:39:29,520 --> 00:39:32,280 ve skutečnosti je nutné použít uvozovky. 843 00:39:32,280 --> 00:39:36,670 Takže jsem vlastně potřebujete změnit toto zpět otevřete nabídku, zavřete nabídku, s 844 00:39:36,670 --> 00:39:37,800 dvojité uvozovky. 845 00:39:37,800 --> 00:39:41,610 Jediné citace mají své místo, ale pouze v případě, že používáte jednotlivce 846 00:39:41,610 --> 00:39:44,100 znaků, ale o tom až jindy. 847 00:39:44,100 --> 00:39:46,550 Pro tuto chvíli, uvozovky jsou nezbytné. 848 00:39:46,550 --> 00:39:50,460 >> Takže teď, nech mě jít zpátky do mého terminálu okna, aby ahoj 1. 849 00:39:50,460 --> 00:39:51,450 A kdo věří? 850 00:39:51,450 --> 00:39:53,800 Je tento program nyní bude sestavit správně? 851 00:39:53,800 --> 00:39:58,250 852 00:39:58,250 --> 00:39:58,540 OK. 853 00:39:58,540 --> 00:39:59,780 Takže tři z nás si myslí tohle. 854 00:39:59,780 --> 00:40:00,280 Dobrá. 855 00:40:00,280 --> 00:40:01,190 Enter. 856 00:40:01,190 --> 00:40:02,440 A to vlastně dělal. 857 00:40:02,440 --> 00:40:05,130 Takže tam žádné chyby tentokrát, a to i i když tento program je dostal trochu 858 00:40:05,130 --> 00:40:05,840 složitější. 859 00:40:05,840 --> 00:40:10,110 Kdybych teď dělat tečka lomítko Dobrý den, 1, Enter, to bude říkat "Ahoj, Davide." 860 00:40:10,110 --> 00:40:11,750 >> Ale pojďme udělat třetí iteraci z toho, kde 861 00:40:11,750 --> 00:40:13,380 Program je opravdu dynamický. 862 00:40:13,380 --> 00:40:16,770 Nech mě jít dál a změnit soubor jméno, jen na soulad s 863 00:40:16,770 --> 00:40:20,410 soubory, které budete mít k dispozici Vám potom online. 864 00:40:20,410 --> 00:40:21,620 Enter. 865 00:40:21,620 --> 00:40:25,510 A teď jdu na, a ne uložit "David" pevný kódované zde. 866 00:40:25,510 --> 00:40:28,826 Co jsem mohl dělat velmi jednoduše tento program zdokonalit? 867 00:40:28,826 --> 00:40:30,520 >> Mohl bych zavolat GetString. 868 00:40:30,520 --> 00:40:33,240 To by mohlo být trochu non-zřejmé, co je se stane, tak jdu 869 00:40:33,240 --> 00:40:38,470 skutečně přidat další řádek, printf, a říkat jméno, tlustého střeva, v blízkosti nabídku, stačí 870 00:40:38,470 --> 00:40:40,790 dát uživateli výzva na obrazovce. 871 00:40:40,790 --> 00:40:42,980 A teď jdu sem, a já jsem bude používat svou klávesovou zkratku. 872 00:40:42,980 --> 00:40:47,680 Chystám se jít nahoru, nahoru, a změnit ahoj ahoj 1 až 2, Enter. 873 00:40:47,680 --> 00:40:49,260 A naštěstí, dělám pokroky. 874 00:40:49,260 --> 00:40:52,720 >> A teď jdu nahoru na dot slash Dobrý den, 875 00:40:52,720 --> 00:40:54,690 změnit na 2, Enter. 876 00:40:54,690 --> 00:40:55,650 A teď můj program - 877 00:40:55,650 --> 00:40:57,700 Budu přiblížit - je stále trochu hezčí. 878 00:40:57,700 --> 00:41:02,190 Název bude, řekněme, že Rob Tentokrát, Enter, ahoj, Robe. 879 00:41:02,190 --> 00:41:03,260 Můžeme to udělat znovu. 880 00:41:03,260 --> 00:41:05,360 Jméno Lauren, Enter. 881 00:41:05,360 --> 00:41:07,820 Jméno, Joseph, Enter. 882 00:41:07,820 --> 00:41:11,596 Jméno, zkusme se těžké, Enter. 883 00:41:11,596 --> 00:41:12,410 Eh. 884 00:41:12,410 --> 00:41:14,680 Ve skutečnosti to není chyba. 885 00:41:14,680 --> 00:41:16,090 Takže je to trochu ošklivé. 886 00:41:16,090 --> 00:41:18,640 Takže možná bychom mohli vyřešit v budoucnu, teď ne. 887 00:41:18,640 --> 00:41:20,840 >> Ale jak byste instinktivně jít o řešení 888 00:41:20,840 --> 00:41:21,990 že konkrétní výzva? 889 00:41:21,990 --> 00:41:23,710 To jen vypadá hloupě. 890 00:41:23,710 --> 00:41:27,320 Jak se vyhnout věci budete vypadat hloupě? 891 00:41:27,320 --> 00:41:29,890 Tak bychom mohli udělat, OK, jsem slyšel pár věcí, stav a smyčky. 892 00:41:29,890 --> 00:41:33,340 Mohli bychom použít jednu, což je podmínka, pro kontrolu co je délka řetězce 893 00:41:33,340 --> 00:41:34,190 Uživatel nám dal? 894 00:41:34,190 --> 00:41:37,100 A jestli je to 0, je to jen citovat unquote, oni prostě zmáčknout Enter, pak 895 00:41:37,100 --> 00:41:38,930 možná bych měl křičet na ně a vyzve je znovu. 896 00:41:38,930 --> 00:41:39,970 Ale jak výzvu znovu? 897 00:41:39,970 --> 00:41:44,230 No, slyšel jsem také smyčku, a já jsem mohl udělat to znovu a znovu a znovu 898 00:41:44,230 --> 00:41:47,010 upozornění uživatele na stejnou věc. 899 00:41:47,010 --> 00:41:48,880 >> Dobře, pojďme udělat jednu další příklad pomocí různých 900 00:41:48,880 --> 00:41:50,620 funkce v knihovně CS50. 901 00:41:50,620 --> 00:41:52,330 Dovolte mi na závěr tohoto souboru. 902 00:41:52,330 --> 00:41:53,510 Dovolte mi, abych vytvořit novou. 903 00:41:53,510 --> 00:41:58,510 A já říkám adder.c, jen proto, že je to snadné udělat jednoduchou aritmetiku, 904 00:41:58,510 --> 00:42:00,890 i když to bude zcela neohromující s tím, co byste mohli udělat 905 00:42:00,890 --> 00:42:02,250 s jakýmkoliv moderním počítačem. 906 00:42:02,250 --> 00:42:03,750 >> Ale nechte mě jít dopředu a teď - 907 00:42:03,750 --> 00:42:10,680 Jsem se poučil poslední době - ​​včetně cs50.h, patří stdio.h, int 908 00:42:10,680 --> 00:42:14,170 Hlavní void, což teď, budu jen vzít na slepé víře, ale budeme předpokládat, 909 00:42:14,170 --> 00:42:16,380 že pochopí, co to znamená, že zanedlouho. 910 00:42:16,380 --> 00:42:21,030 A já jsem něco říct jako "dej mi int." 911 00:42:21,030 --> 00:42:22,140 >> A teď, jak se dostanu int? 912 00:42:22,140 --> 00:42:26,820 Chci konečně deklarovat proměnnou volal x typu int a 913 00:42:26,820 --> 00:42:29,240 uložit do ní celé číslo od uživatele. 914 00:42:29,240 --> 00:42:29,970 Takže to bylo sousto. 915 00:42:29,970 --> 00:42:35,680 Ale pokud někdo chce navrhnout, jak mohu prohlásit celočíselnou názvem x? 916 00:42:35,680 --> 00:42:36,310 Int x. 917 00:42:36,310 --> 00:42:37,430 >> Takže je to opravdu tak jednoduché. 918 00:42:37,430 --> 00:42:38,240 Dejte mi int. 919 00:42:38,240 --> 00:42:39,070 Nazvěme to x. 920 00:42:39,070 --> 00:42:40,580 Teď jsem použít operátoru přiřazení. 921 00:42:40,580 --> 00:42:43,400 A jak mám uložit od vlevo hodnotu pro uživatele? 922 00:42:43,400 --> 00:42:47,310 Nechci volat GetString, samozřejmě, ale vezmi_int. 923 00:42:47,310 --> 00:42:49,060 Jakékoliv argumenty? 924 00:42:49,060 --> 00:42:49,350 Ne. 925 00:42:49,350 --> 00:42:51,870 Takže je to otevřené závorka, v blízkosti závorka okamžitě, a pak 926 00:42:51,870 --> 00:42:53,440 středník končí linku. 927 00:42:53,440 --> 00:42:54,930 >> Nyní mi dovolte to znovu. 928 00:42:54,930 --> 00:42:57,070 Dej mi ještě int. 929 00:42:57,070 --> 00:43:01,850 Tentokrát udělám int, pojďme říkají y, rovná vezmi_int. 930 00:43:01,850 --> 00:43:05,060 A teď mi dovolte něco super-jednoduchý jako nějaký matematice. 931 00:43:05,060 --> 00:43:14,340 Takže printf, součet% d je zástupný symbol pro int. 932 00:43:14,340 --> 00:43:20,030 A% d, období, zpětné lomítko-n. 933 00:43:20,030 --> 00:43:20,360 >> Dobrá. 934 00:43:20,360 --> 00:43:21,670 Takže to není vlastně matematika. 935 00:43:21,670 --> 00:43:25,500 Ale pokud chci říct, součet tohoto hodnotu a tato hodnota je rovna této 936 00:43:25,500 --> 00:43:29,320 jiná hodnota, kolik argumentů do Celkem bych měl dávat printf, 937 00:43:29,320 --> 00:43:30,520 nakonec? 938 00:43:30,520 --> 00:43:31,420 Takže čtyři, že jo? 939 00:43:31,420 --> 00:43:33,790 Tento řetězec a pak tři hodnoty. 940 00:43:33,790 --> 00:43:37,560 Takže x je první chci být zapojen jako první na% d. 941 00:43:37,560 --> 00:43:39,270 y bude dál. 942 00:43:39,270 --> 00:43:42,030 >> A teď jsem tak trochu chtěl říci z, ale z neexistuje. 943 00:43:42,030 --> 00:43:43,190 Ale to není velký problém. 944 00:43:43,190 --> 00:43:45,440 Vzhledem k tomu, co byste dělali, instinktivně, zejména pokud jste měli 945 00:43:45,440 --> 00:43:47,820 grafickým kalkulátorem, co píšete? 946 00:43:47,820 --> 00:43:48,760 Jak se o X plus Y? 947 00:43:48,760 --> 00:43:50,200 Takže to není skutečný variabilní. 948 00:43:50,200 --> 00:43:51,820 Je to jen součtem dvou ostatní proměnné. 949 00:43:51,820 --> 00:43:53,170 A to je naprosto legitimní. 950 00:43:53,170 --> 00:43:56,630 C jistě chápe jednoduché aritmetický takhle. 951 00:43:56,630 --> 00:43:58,450 >> Středník, zachránit. 952 00:43:58,450 --> 00:44:02,080 Teď mě nech jít sem dolů a Zadejte aby zmije, Enter. 953 00:44:02,080 --> 00:44:04,100 Žádná chyba, tak to je pokrok příliš. 954 00:44:04,100 --> 00:44:04,890 Zadejte zmije. 955 00:44:04,890 --> 00:44:07,100 A další klávesové zkratky, pokud začnete nudit 956 00:44:07,100 --> 00:44:08,760 se všemi příkazy - 957 00:44:08,760 --> 00:44:12,650 pokud začnete zadáním příkazu jako tečka lomítko reklamu, a to je, kde se vaše 958 00:44:12,650 --> 00:44:16,020 nuda kopy, většinou je možné zasáhnout Karta mít počítač dokončit 959 00:44:16,020 --> 00:44:20,510 Zbytek věty pro vás, pokud to není nejednoznačné, co by mělo přijít po reklamě. 960 00:44:20,510 --> 00:44:23,950 >> Tak nech mě jít napřed nyní a klepněte na tlačítko Enter. 961 00:44:23,950 --> 00:44:27,490 Dej mi int, 1, 2, a Naštěstí, je to 3. 962 00:44:27,490 --> 00:44:29,900 Ale jako vždy, programy testování by neměly omezit na 963 00:44:29,900 --> 00:44:30,820 Jen se snažím jednou. 964 00:44:30,820 --> 00:44:35,560 Zkusím rohovou případ, jako negativní 1, dej mi jedno, a že je 965 00:44:35,560 --> 00:44:36,210 kontroly se také. 966 00:44:36,210 --> 00:44:38,870 A já chtít dělat víc důkladného testování, ale jsem si docela 967 00:44:38,870 --> 00:44:40,630 komfortní tam, kde je to na. 968 00:44:40,630 --> 00:44:43,110 >> No, teď pojďme zkusit jiný program že tentokrát používá 969 00:44:43,110 --> 00:44:44,620 trochu jiné syntaxe. 970 00:44:44,620 --> 00:44:46,100 Dovolte mi, abych vytvořit nový soubor. 971 00:44:46,100 --> 00:44:51,050 Zavolám tento conditions0.c na linku s nějakým ukázkový kód on-line. 972 00:44:51,050 --> 00:44:55,550 A nech mě jít dál a dělat zahrnují cs50.h, zahrnují 973 00:44:55,550 --> 00:45:00,320 stdio.h, v hlavním prázdnoty - 974 00:45:00,320 --> 00:45:01,030 OK. 975 00:45:01,030 --> 00:45:01,850 Tam jdeme. 976 00:45:01,850 --> 00:45:03,010 Máme standardní standardní text. 977 00:45:03,010 --> 00:45:08,170 >> A tentokrát budu říkat printf, "Rád bych int, prosím," jen na 978 00:45:08,170 --> 00:45:10,030 aby se výzva trochu přátelštější. 979 00:45:10,030 --> 00:45:11,620 A teď chci, aby se int od uživatele. 980 00:45:11,620 --> 00:45:15,010 Budu říkat n tentokrát, jen protože n zní jako číslo. 981 00:45:15,010 --> 00:45:18,140 vezmi_int, a teď, co dělat Chci s tím dělat? 982 00:45:18,140 --> 00:45:21,640 No, pokud je n - a já budu přiblížit - 983 00:45:21,640 --> 00:45:25,930 jestliže n je větší než 0, chci udělat následující - 984 00:45:25,930 --> 00:45:36,060 printf "Vybral sis kladné číslo." Jinak, budu psát printf "Ty 985 00:45:36,060 --> 00:45:37,870 vybral negativní 986 00:45:37,870 --> 00:45:39,650 číslo. "Dobře. 987 00:45:39,650 --> 00:45:44,410 Takže tento program, i když jsem to udělal rychle, vypadá dobře syntakticky. 988 00:45:44,410 --> 00:45:45,010 Zkusím to. 989 00:45:45,010 --> 00:45:46,890 Zkontrolujte stav 0. 990 00:45:46,890 --> 00:45:47,710 Zdá se, že ke spuštění. 991 00:45:47,710 --> 00:45:49,230 Stav 0, zadejte. 992 00:45:49,230 --> 00:45:51,910 Pojďme dát mu INT 50. 993 00:45:51,910 --> 00:45:53,160 Vybral jsem si kladné číslo. 994 00:45:53,160 --> 00:45:54,230 Zkusme to znovu. 995 00:45:54,230 --> 00:45:54,930 Stav 0. 996 00:45:54,930 --> 00:45:56,260 Negativní 50. 997 00:45:56,260 --> 00:45:57,290 Vybral jsem si záporné číslo. 998 00:45:57,290 --> 00:46:00,350 >> Ale teď mi dovolte, abych vybrat, co budeme držet volání rohovou případu, což je více 999 00:46:00,350 --> 00:46:04,702 Zajímavý případ, že si myslíte, že Může vám nějaké potíže, 0. 1000 00:46:04,702 --> 00:46:07,940 Teď jsem si jistý, že je to jedna z ty rohové případy, kdy nula je 1001 00:46:07,940 --> 00:46:12,330 ani pozitivní, ani negativní, takže moje programu, i když v syntakticky 1002 00:46:12,330 --> 00:46:15,440 opravit - to kompiluje to běží - není logicky správně. 1003 00:46:15,440 --> 00:46:21,050 Takže to, co je jednoduché, oprava zde, pokud chci zjistit, jestli chci zvládnout n 1004 00:46:21,050 --> 00:46:23,840 rovná 0 samostatně? 1005 00:46:23,840 --> 00:46:32,980 >> Takže pokud je n rovno 0, pak chci říct, něco jako printf "Vybral sis 0". 1006 00:46:32,980 --> 00:46:33,990 Zkusím to teď. 1007 00:46:33,990 --> 00:46:38,320 Nech mě jít zpátky, zrušte moje okno a překompilovat. 1008 00:46:38,320 --> 00:46:38,690 Hm. 1009 00:46:38,690 --> 00:46:39,770 Jedna chyba generovat. 1010 00:46:39,770 --> 00:46:41,630 Ale já si chcete zkontrolovat li n rovno 0. 1011 00:46:41,630 --> 00:46:44,230 1012 00:46:44,230 --> 00:46:47,720 >> Takže znovu, další blbost zvyknout, znaménko rovná se 1013 00:46:47,720 --> 00:46:48,910 operátor přiřazení. 1014 00:46:48,910 --> 00:46:52,240 Takže je to vlastně chyba v tom, že technicky, i když kompilátor 1015 00:46:52,240 --> 00:46:56,450 mě ochránil sám před sebou, měli bychom technicky kopírování 0 do n, který 1016 00:46:56,450 --> 00:46:57,590 není to, co chci. 1017 00:46:57,590 --> 00:47:00,950 Chci pro testování rovnosti se rovná rovná. 1018 00:47:00,950 --> 00:47:03,390 A tak, že nyní může být moje lepší řešení. 1019 00:47:03,390 --> 00:47:07,810 >> Dovolte mi, abych ve skutečnosti jej uložit to jako, řekněme, podmínky1, aby nové a lepší. 1020 00:47:07,810 --> 00:47:10,480 Takže teď, když jsem překompilovat to, že by podmínky - 1021 00:47:10,480 --> 00:47:16,960 Jejda - aby podmínky1 tečka lomítko podmínky1, Enter, "Rád bych int, 1022 00:47:16,960 --> 00:47:18,760 prosím. "Já jdu Začněte psát 50. 1023 00:47:18,760 --> 00:47:19,660 Je to stále dobré. 1024 00:47:19,660 --> 00:47:21,200 Negativní 50, stále dobrá. 1025 00:47:21,200 --> 00:47:24,920 0, a to skutečně zjištěno že jsem si vybral 0. 1026 00:47:24,920 --> 00:47:28,200 >> Takže co víc můžu teď s tím? 1027 00:47:28,200 --> 00:47:32,280 No, můžeme určitě více složité věci. 1028 00:47:32,280 --> 00:47:37,240 Ale co bych chtěl navrhnout, je že jsme se nakonec na tuto poznámku zde. 1029 00:47:37,240 --> 00:47:41,680 Pokud se vytáhnout to, uvidíš, snad, Oblíbený kreslený seriál tvůj 1030 00:47:41,680 --> 00:47:43,326 dodnes si možná nikdy pochopit. 1031 00:47:43,326 --> 00:47:46,550 1032 00:47:46,550 --> 00:47:49,520 A to je o kvalitě smíchu měli byste si vtipy CS. 1033 00:47:49,520 --> 00:47:51,060 Takže to je asi pravda. 1034 00:47:51,060 --> 00:47:54,900 >> Ale více přesvědčivě, jsem myslel, že nám trochu upoutávku na pondělí. 1035 00:47:54,900 --> 00:47:56,430 Takže jsme začali používat celá čísla. 1036 00:47:56,430 --> 00:47:57,510 Máme jen plováky. 1037 00:47:57,510 --> 00:48:00,120 Dokonce jsme jen čtyřhře které opět vám čísla 1038 00:48:00,120 --> 00:48:01,390 Po desetinných míst. 1039 00:48:01,390 --> 00:48:04,230 >> Ale ukázalo se, že plave na hladině a dvoulůžkové a, opravdu, počítače, 1040 00:48:04,230 --> 00:48:08,470 zásadně nemůže vyjádřit některé hodnoty přesně. 1041 00:48:08,470 --> 00:48:12,840 Víme z matematické třídy, které můžete mít libovolný počet čísel po 1042 00:48:12,840 --> 00:48:13,510 desetinná čárka. 1043 00:48:13,510 --> 00:48:16,460 A dokonce můžete dát svislý pruh říci to trvat věčně. 1044 00:48:16,460 --> 00:48:18,810 >> Bohužel, nemůžete opravdu si, že v počítači. 1045 00:48:18,810 --> 00:48:20,400 A tak rohové případům dochází. 1046 00:48:20,400 --> 00:48:23,120 Předpokládejme například, že jste něco dělat finanční. 1047 00:48:23,120 --> 00:48:25,700 Děláš matematiku s procentech, a 1048 00:48:25,700 --> 00:48:27,030 s dolary a centy. 1049 00:48:27,030 --> 00:48:29,230 A ty centů ne nutně sestavu. 1050 00:48:29,230 --> 00:48:34,120 No, ukázalo se, že zlomky haléře mohou začít sčítat, pokud 1051 00:48:34,120 --> 00:48:37,250 modelován s počítačovým systémem takovým způsobem, že chytrý 1052 00:48:37,250 --> 00:48:39,100 mohou lidé využít. 1053 00:48:39,100 --> 00:48:42,650 >> A ti z vás, kteří neviděli, tak bych Líbí se vám 30 druhého teaser na 1054 00:48:42,650 --> 00:48:48,290 Překrásný film známý jako kancelářské prostory, která bude namalovat obraz 1055 00:48:48,290 --> 00:48:51,205 Problém budeme řešit První věc, kterou v pondělí. 1056 00:48:51,205 --> 00:48:53,960 Kdyby se nám podařilo zvýšit objem trochu, dám vám 30 1057 00:48:53,960 --> 00:48:55,495 sekund kancelářských ploch. 1058 00:48:55,495 --> 00:48:55,770 >> [PŘEHRÁVÁNÍ] 1059 00:48:55,770 --> 00:48:59,000 >> -Myslím, že jste, že jste nebyli ukazuje a dostanete, aby svou práci. 1060 00:48:59,000 --> 00:49:00,620 >> -Vlastně, jsem byl povýšen. 1061 00:49:00,620 --> 00:49:03,240 >> -Mohl bych naprogramovat virus, který by rip to místo mimo velký čas. 1062 00:49:03,240 --> 00:49:04,430 >> No, jak to funguje? 1063 00:49:04,430 --> 00:49:06,782 >> -Pokaždé, když to bankovním převodem kde je zájem počítá, a tam 1064 00:49:06,782 --> 00:49:10,160 jsou tisíce denně, počítač končí s těmito zlomky procenta. 1065 00:49:10,160 --> 00:49:12,030 >> -Ale já nehodlám dělat nic nezákonného. 1066 00:49:12,030 --> 00:49:12,660 >> -Nelegální? 1067 00:49:12,660 --> 00:49:15,075 Samir, tohle je Amerika. 1068 00:49:15,075 --> 00:49:16,570 >> -Musíme přísahám Bohu. 1069 00:49:16,570 --> 00:49:19,070 >> -Pokud nikdo neví o tom ale nám, v pořádku? 1070 00:49:19,070 --> 00:49:21,920 Žádné rodinní příslušníci, žádné přítelkyně, nikdo. 1071 00:49:21,920 --> 00:49:22,700 >> -Samozřejmě. 1072 00:49:22,700 --> 00:49:23,320 >> -Souhlas. 1073 00:49:23,320 --> 00:49:24,280 >> -Neboj se, člověče. 1074 00:49:24,280 --> 00:49:25,640 Já to nikomu neřeknu ani. 1075 00:49:25,640 --> 00:49:26,504 >> [END PŘEHRÁVÁNÍ] 1076 00:49:26,504 --> 00:49:30,030 >> DAVID Malan: Tak tohle je tedy CS50, to bylo Kancelářské prostory, a to bude vše 1077 00:49:30,030 --> 00:49:31,465 smysl v pondělí. 1078 00:49:31,465 --> 00:49:33,940 Uvidíme se. 1079 00:49:33,940 --> 00:49:37,880 >> Vypravěč: Na další CS50, Rob přizpůsobí byl pryč 1080 00:49:37,880 --> 00:49:39,130 Harvard stravování. 1081 00:49:39,130 --> 00:49:56,160