1 00:00:00,000 --> 00:00:12,410 >> [Prehrávanie hudby] 2 00:00:12,410 --> 00:00:12,830 >> DAVID Malan: Dobre. 3 00:00:12,830 --> 00:00:13,370 Vitaj späť. 4 00:00:13,370 --> 00:00:16,510 To je CS50, a to je Prvý týždeň, pokračovanie. 5 00:00:16,510 --> 00:00:20,050 Takže jeden z dôvodov, prečo sme sa zložiť okolo technológií, ako 6 00:00:20,050 --> 00:00:24,120 Google Sklo je, že prichádzajú s niečo známy ako API, 7 00:00:24,120 --> 00:00:25,980 Application Programming Interface. 8 00:00:25,980 --> 00:00:28,830 A čo to znamená, že sa správne súbory a so správnym 9 00:00:28,830 --> 00:00:32,850 dokumentáciu, môžete skutočne písať softvér aj pre zariadenia, ako sú tieto. 10 00:00:32,850 --> 00:00:36,200 >> A tak to, čo máme na mysli, k semestre koniec je, ak je projekt 11 00:00:36,200 --> 00:00:39,310 zahŕňajúce, povedzme, Google Sklo môže odvolanie, uvidíme, čo môžeme urobiť v 12 00:00:39,310 --> 00:00:42,220 podmienky hákovanie vás s niektorými loaner hardware, ako aj 13 00:00:42,220 --> 00:00:46,500 verejne prístupné API, takže môžete skutočne začať vytváraní softvéru 14 00:00:46,500 --> 00:00:48,630 ktoré beží na rovnakej sklo Google. 15 00:00:48,630 --> 00:00:51,710 >> Ďalšie zariadenia, ktoré hráme s dobou, že sme si mysleli, by mohla byť 16 00:00:51,710 --> 00:00:53,910 zábava na konci semestra je táto maličkosť tu. 17 00:00:53,910 --> 00:00:56,860 Je to tzv Leap Motion, a to, čo ste asi vidieť je technicky 18 00:00:56,860 --> 00:01:00,280 reklama na zariadenie, ale sa hovorí, čo to najmä 19 00:01:00,280 --> 00:01:01,240 Zariadenie je schopné. 20 00:01:01,240 --> 00:01:05,550 A je to tiež prichádza s API, pomocou ktorý môžete písať softvér 21 00:01:05,550 --> 00:01:10,545 ovládať svoj počítač takým spôsobom, Celkom sa mi páči tento minútu filmu nájdete TU. 22 00:01:10,545 --> 00:01:12,070 >> [PLAYBACK] 23 00:01:12,070 --> 00:02:08,002 24 00:02:08,002 --> 00:02:08,590 >> [END PLAYBACK] 25 00:02:08,590 --> 00:02:11,190 >> Takže teraz, tento prístroj sa stane byť realizované ako malý USB 26 00:02:11,190 --> 00:02:14,290 konektor, ktorý môžete pripojiť do vašej počítač, ale ja by som sa nečudoval 27 00:02:14,290 --> 00:02:17,930 keď onedlho máme tieto druhy technológie v budúcom šarže PC 28 00:02:17,930 --> 00:02:20,510 a Mac, takže môžete skutočne s ňou pracovať 29 00:02:20,510 --> 00:02:21,650 spôsobom, ako to. 30 00:02:21,650 --> 00:02:24,250 V skutočnosti to, čo som myslel, že to je tiež Zastavil som sa trochu demonštrácii 31 00:02:24,250 --> 00:02:25,860 program, ktorý je dodávaný s týmto softvérom. 32 00:02:25,860 --> 00:02:28,700 Tak som dal malý snímač v prednej časti môjho notebooku. 33 00:02:28,700 --> 00:02:32,420 >> A ako môžete vidieť, že už si uvedomuje, že moja ruka je tu 34 00:02:32,420 --> 00:02:33,400 ovládanie. 35 00:02:33,400 --> 00:02:37,900 A to všetko robí, je aplikácia hladko maličkosti, ako je tento. 36 00:02:37,900 --> 00:02:41,080 Ale vidíte, že skutočne Mám päť prstov tam. 37 00:02:41,080 --> 00:02:44,270 Ak sa nám podarí dostať to urobiť všetko, 10, môžete si predstaviť elegantné piano 38 00:02:44,270 --> 00:02:45,390 aplikácie alebo podobne. 39 00:02:45,390 --> 00:02:47,820 Takže ak by ste chceli prísť po hodine dnes a hrať s tým, ako 40 00:02:47,820 --> 00:02:49,720 dobre, ste vítaní. 41 00:02:49,720 --> 00:02:52,930 Tak o tom viac ku koncu semestra. 42 00:02:52,930 --> 00:02:54,420 >> Takže pár administratívne oznámenia. 43 00:02:54,420 --> 00:02:58,690 Raz, to vyrezať tento piatok napoludnie na cs60.net/section. 44 00:02:58,690 --> 00:03:01,260 To URL je na kurze je Domovská stránka rovnako. 45 00:03:01,260 --> 00:03:04,010 Do tej doby, aj keď, supersections bude mať premiéru túto nedeľu. 46 00:03:04,010 --> 00:03:07,800 Supersections sú jednorazová záležitosť, , Pretože to nám zaberie nejaký čas na prácu 47 00:03:07,800 --> 00:03:09,470 , Kto je v ktorej časti a kde. 48 00:03:09,470 --> 00:03:12,280 >> Takže Túto nedeľu, bude tam jeden sekcia pre tých menej pohodlné, 49 00:03:12,280 --> 00:03:14,040 jedna sekcia pre tých, pohodlnejšie. 50 00:03:14,040 --> 00:03:16,110 A tí z vás, niekde medzi vítaní ísť 51 00:03:16,110 --> 00:03:17,850 jeden alebo oba alebo žiadny. 52 00:03:17,850 --> 00:03:19,150 Obaja z nich bude natočený. 53 00:03:19,150 --> 00:03:22,740 Budú vo väčšom sále, než časť by za normálnych okolností sa dovnútra 54 00:03:22,740 --> 00:03:26,110 Ale cieľom je vybaviť vás niektoré komfort s problémom nastaviť jednu, 55 00:03:26,110 --> 00:03:29,910 s C, s CS50 zariadení, tento víkend, ešte predtým, než zistili, že vaša 56 00:03:29,910 --> 00:03:31,050 formálne priradenie sekcie. 57 00:03:31,050 --> 00:03:34,700 Takže budete splniť vaše TF a vaše menšie skupina sectionmates asi 58 00:03:34,700 --> 00:03:36,350 týždennú dobu. 59 00:03:36,350 --> 00:03:38,200 >> Úradné hodiny, zatiaľ, boli deje. 60 00:03:38,200 --> 00:03:41,020 Do využiť z nich dnes večer alebo zajtra večer, ak by ste chceli. 61 00:03:41,020 --> 00:03:43,460 Problém nastavenie 0 je splatná v piatok. 62 00:03:43,460 --> 00:03:46,680 Jedná sa o deň neskôr, než pravidelne plánovaným štvrtok. 63 00:03:46,680 --> 00:03:50,410 Ale problém sada 1, uvidíte že zahŕňa niektoré warm-up 64 00:03:50,410 --> 00:03:52,770 cvičenia, s ktorými si sami možné rozširovať 65 00:03:52,770 --> 00:03:54,660 Štvrtok termín do piatka. 66 00:03:54,660 --> 00:03:58,410 Problém sada 1, medzitým bude mať premiéru na ihrisku internetových stránkach to prichádza 67 00:03:58,410 --> 00:04:02,000 Piatok, ak by ste chceli schúliť to, ako som kedysi dávno neskoro 68 00:04:02,000 --> 00:04:04,370 V piatok večer vo svojej izbe. 69 00:04:04,370 --> 00:04:07,660 >> Takže cs50.net/appliance je miesto, kde môžete získať CS50 spotrebiče 70 00:04:07,660 --> 00:04:09,040 že sme začali používať v pondelok. 71 00:04:09,040 --> 00:04:10,140 Budeme používať trochu viac dnes. 72 00:04:10,140 --> 00:04:14,040 Ale buďte si istý, že problém nastaviť 1 Špecifikácie vás prevedie 73 00:04:14,040 --> 00:04:16,490 presne kroky, ktoré potrebujete sa dostať, že hore a beh. 74 00:04:16,490 --> 00:04:22,120 Takže nebojte sa o tom, že pred Pset 1, ak by ste radšej nie. 75 00:04:22,120 --> 00:04:22,660 >> Dobrá. 76 00:04:22,660 --> 00:04:27,180 Tak sme sa v pondelok na zdrojový kód, ale v súvislosti s novou 77 00:04:27,180 --> 00:04:30,895 programovací jazyk, a to C. A a C, Na rozdiel od nuly, nie je grafický. 78 00:04:30,895 --> 00:04:32,270 Nie je to skladačky. 79 00:04:32,270 --> 00:04:34,450 Je to skôr anglicky ako syntax. 80 00:04:34,450 --> 00:04:37,140 A je tu pár krokov zapojených v skutočnosti písomne ​​a beží 81 00:04:37,140 --> 00:04:41,650 Program v C, pretože okrem zdroja Kód takto, budete potrebovať niečo 82 00:04:41,650 --> 00:04:42,890 volal kompilátor. 83 00:04:42,890 --> 00:04:46,682 A Laicky povedané, to, čo nemá kompilátor urobiť pre nás? 84 00:04:46,682 --> 00:04:47,650 Jo. 85 00:04:47,650 --> 00:04:51,040 >> STUDENT: Prevádza 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 prevedie kód, ktorý píšeme 0s a 1s. 88 00:04:53,580 --> 00:04:57,730 Prevádza tzv zdrojový kód kód objektu, latter ktorý vyzerá 89 00:04:57,730 --> 00:04:59,140 Trochu niečo také. 90 00:04:59,140 --> 00:05:02,860 A je to váš procesor, mozog vnútorná časť počítač, že z dôvodu 91 00:05:02,860 --> 00:05:06,280 ľudí, ktorí vytvorili tieto počítače, vedieť, čo tieto sekvencie 92 00:05:06,280 --> 00:05:07,460 0s a 1s priemeru. 93 00:05:07,460 --> 00:05:08,640 >> Možno to znamená, že tlač. 94 00:05:08,640 --> 00:05:10,265 Možno to znamená, že naviac. 95 00:05:10,265 --> 00:05:11,610 Možno to znamená, že odčítanie. 96 00:05:11,610 --> 00:05:13,350 Možno to znamená, že zobrazenie grafiky. 97 00:05:13,350 --> 00:05:16,870 K dispozícii sú preddefinované vzory bitov že sa svet rozhodol znamenať 98 00:05:16,870 --> 00:05:17,700 určité veci. 99 00:05:17,700 --> 00:05:20,760 Ale z väčšej časti v tomto kurze, budeme pracovať na vyššej úrovni, a 100 00:05:20,760 --> 00:05:24,180 budeme brať za samozrejmosť, že existujú veci, ako kompilátory, ktoré môžu 101 00:05:24,180 --> 00:05:27,670 aby náš zdrojový kód funkcie tak, ako sme v úmysle. 102 00:05:27,670 --> 00:05:31,660 >> Takže programu sme napísali prvý posledný týždeň a potom začal do prístavu, tak 103 00:05:31,660 --> 00:05:33,920 hovoriť, C tento rok Pondelok, to bolo. 104 00:05:33,920 --> 00:05:35,700 Keď zelená vlajka kliknutí pozdraviť. 105 00:05:35,700 --> 00:05:37,430 To bolo, samozrejme, zapísaný Scratch. 106 00:05:37,430 --> 00:05:40,710 A ja som tvrdil, že ekvivalentné Program v C vyzeral trochu 107 00:05:40,710 --> 00:05:41,520 niečo také. 108 00:05:41,520 --> 00:05:45,050 >> Takže to, čo som myslel, že by som urobil je najprv, poďme srandista oddelene, čo vyzerá na prvý 109 00:05:45,050 --> 00:05:48,790 pohľad síce ako celkom tajomný syntax, ale začnete všímať 110 00:05:48,790 --> 00:05:50,160 vzory celkom rýchlo. 111 00:05:50,160 --> 00:05:53,770 Čo budeme robiť aj dnes, je poskytnúť tie s duševnou model pre niektoré 112 00:05:53,770 --> 00:05:57,280 kánonický niektoré štandardné konštrukcie v programovaní. 113 00:05:57,280 --> 00:06:00,420 A potom budeme skutočne dostať svoje ruky špinavé s niektorými príkladmi rovnako. 114 00:06:00,420 --> 00:06:04,140 >> Takže pre tých z vás pohodlnejšie, si uvedomiť, že tento týždeň a potom ďalšie 115 00:06:04,140 --> 00:06:05,940 týždeň môže veľmi dobre byť trochu preskúmania. 116 00:06:05,940 --> 00:06:08,810 Ale najmä pri hacker vydania problému set 1 zhasne 117 00:06:08,810 --> 00:06:12,330 Samozrejme web v piatok, ja si myslím, zistíte, že aj keď sa budete vyplniť 118 00:06:12,330 --> 00:06:15,390 niektoré medzery v budúcom týždni alebo dvoch, Začnete sa dostať stále viac 119 00:06:15,390 --> 00:06:18,410 napádal a stretnutia nové a novšie veci. 120 00:06:18,410 --> 00:06:21,310 >> Takže poďme dráždiť tento program seba niekoľko riadkov naraz. 121 00:06:21,310 --> 00:06:24,140 Na samom vrchole, máme to, čo je odborne nazýva 122 00:06:24,140 --> 00:06:25,950 direktíva preprocesoru. 123 00:06:25,950 --> 00:06:30,510 To je len riadok kódu, ktorý hovorí, zahrnúť do obsahu súboru, 124 00:06:30,510 --> 00:06:35,080 takzvané štandardné I / N, štandardný vstup - alebo, je mi ľúto, štandardné I / O, štandardné 125 00:06:35,080 --> 00:06:38,670 vstup / výstup,. h, vo vnútri môjho vlastného programu. 126 00:06:38,670 --> 00:06:41,670 >> Takže inými slovami, keď som to písal Program s jednoduchým textovým editorom, ako 127 00:06:41,670 --> 00:06:45,260 gedit je jednoduchší ekvivalent niečo ako Microsoft Word, ktoré 128 00:06:45,260 --> 00:06:50,970 inštrukcia # include stdio.h, je len chystá povedať kompilátora, uchopiť 129 00:06:50,970 --> 00:06:56,080 Obsah tohto iného súboru, stdio.h, a vložiť ich priamo tu. 130 00:06:56,080 --> 00:06:57,090 >> A teraz, prečo ma to zaujíma? 131 00:06:57,090 --> 00:07:01,850 Čo tvrdíme, že je vo vnútri tohto súboru tzv stdio.h, ktorý je uložený 132 00:07:01,850 --> 00:07:05,490 niekde na mojom pevnom disku alebo v tejto prípad, niekde v CS50 zariadení? 133 00:07:05,490 --> 00:07:06,635 Niekto ju tam pre mňa. 134 00:07:06,635 --> 00:07:09,910 Ale to, čo je v ňom? 135 00:07:09,910 --> 00:07:13,020 >> Jo, je to vyhlásenie volaná funkcia printf. 136 00:07:13,020 --> 00:07:17,400 Takže printf pripomína, že funkcia zobrazuje slová a znaky a 137 00:07:17,400 --> 00:07:20,160 čísla na obrazovke v mojej ponuky. 138 00:07:20,160 --> 00:07:21,220 Ale ja som to nenapísal. 139 00:07:21,220 --> 00:07:22,230 CS50 to nenapísal. 140 00:07:22,230 --> 00:07:26,990 Niekto rokmi napísal, a oni v podstate nám recept na to 141 00:07:26,990 --> 00:07:29,110 v súbore nazvanom stdio.h. 142 00:07:29,110 --> 00:07:33,240 Takže prvý riadok len mi dáva prístup na funkcie, ktoré niekto iný 143 00:07:33,240 --> 00:07:36,500 napísal pred rokmi, medzi ktoré sú printf. 144 00:07:36,500 --> 00:07:39,450 >> Teraz, ďalší riadok budem mávať moju dušu ruka s minimálne do budúceho týždňa. 145 00:07:39,450 --> 00:07:43,620 Ale teraz viem, že int main (void) je v podstate ekvivalent tejto 146 00:07:43,620 --> 00:07:46,310 žlté skladačky, kedy zelená vlajka klikli. 147 00:07:46,310 --> 00:07:49,510 Svet pred rokmi rozhodol, že ak píšete program 148 00:07:49,510 --> 00:07:53,150 jazyka C s názvom, môžete začať váš program s radom 149 00:07:53,150 --> 00:07:54,410 ktorá vyzerá takto. 150 00:07:54,410 --> 00:07:57,650 Za púhych asi za týždeň, bude to robiť zmysel pre to, čo je int, čo je neplatné. 151 00:07:57,650 --> 00:08:00,840 Ale teraz, len myslieť na to, ako tejto žltej puzzle. 152 00:08:00,840 --> 00:08:04,550 >> Teraz ďalšie, máme zložená zátvorka nasleduje ďalšie úzke zloženú zátvorku, 153 00:08:04,550 --> 00:08:05,240 aby som tak povedal. 154 00:08:05,240 --> 00:08:07,430 A uvidíme to po celú dobu programy v jazyku C, ako aj 155 00:08:07,430 --> 00:08:08,930 JavaScript a PHP. 156 00:08:08,930 --> 00:08:11,345 A to len zapouzdřit súvisiace riadky kódu. 157 00:08:11,345 --> 00:08:14,600 Otvorená zložená zátvorka v podstate hovorí, tu je nejaký kód. 158 00:08:14,600 --> 00:08:17,590 A uzavretá zložená zátvorka, ktorá je pod uhlom v opačnom smere, len 159 00:08:17,590 --> 00:08:19,920 znamená, že je to pre zodpovedajúci kód. 160 00:08:19,920 --> 00:08:22,970 >> Takže šťavnaté riadok v tejto prvej Program je posledná, printf, 161 00:08:22,970 --> 00:08:25,080 quote-koniec citátu, hello world. 162 00:08:25,080 --> 00:08:30,670 A ja som volal vec medzi cituje, čo minule? 163 00:08:30,670 --> 00:08:31,285 Takže je to reťazec. 164 00:08:31,285 --> 00:08:35,309 A reťazec je len techie termín pre postupnosť 165 00:08:35,309 --> 00:08:37,169 znaky, slovo, frázy. 166 00:08:37,169 --> 00:08:39,380 Dokonca aj jediný list by mohol byť dvakrát citovaný. 167 00:08:39,380 --> 00:08:41,840 Ale je to postupnosť nula alebo viac znakov. 168 00:08:41,840 --> 00:08:43,650 >> Spätné lomítko-n, aj keď vyzerá trochu divné. 169 00:08:43,650 --> 00:08:46,290 Ale je to proste niečo znamená jednoduchý k počítaču. 170 00:08:46,290 --> 00:08:48,060 Čo je spä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 len zvláštne sled znaky, ktoré sa svet rozhodol 173 00:08:52,490 --> 00:08:56,880 znamená, vloženie zalomenie riadku tam, pretože kompilátor bude skutočne mať 174 00:08:56,880 --> 00:09:02,280 zmätený, zvyčajne, ak ste veľmi pochopiteľne, ale nesprávne, stačí 175 00:09:02,280 --> 00:09:04,570 spustiť stlačením klávesu Enter, aby nové riadky v kóde. 176 00:09:04,570 --> 00:09:07,150 Musíte byť trochu viac explicitné spätným lomítkom-n. 177 00:09:07,150 --> 00:09:10,540 >> A uvidíme tú niekoľko ďalších, ako vzory pre špeciálne znaky. 178 00:09:10,540 --> 00:09:14,340 Napríklad, ak ste chceli, aby vaše myseľ blúdiť na rohový prípade, 179 00:09:14,340 --> 00:09:18,080 Predpokladám, že som chcel vytlačiť dvojité úvodzovky na obrazovke 180 00:09:18,080 --> 00:09:21,840 z akéhokoľvek dôvodu, že sa zdá, že byť trochu problematické, nie? 181 00:09:21,840 --> 00:09:24,990 Pretože keď som dal úvodzovky v uprostred "Hello, world", z akéhokoľvek 182 00:09:24,990 --> 00:09:30,120 Dôvodom, prečo sa zdá, že potenciálne problematické? 183 00:09:30,120 --> 00:09:32,180 Láme reťazec. 184 00:09:32,180 --> 00:09:34,700 >> Kompilátor je len program. 185 00:09:34,700 --> 00:09:37,210 Program ako kompilátor práve deje čítať svoje heslo zhora nadol, 186 00:09:37,210 --> 00:09:37,990 zľava doprava. 187 00:09:37,990 --> 00:09:41,850 A keď vidí tri úvodzovky miesto dvoch, že to nebude vedieť, 188 00:09:41,850 --> 00:09:45,210 ak máte na mysli, že tá vec vľavo by mal byť reťazec alebo vec 189 00:09:45,210 --> 00:09:46,570 právo, alebo celú vec. 190 00:09:46,570 --> 00:09:50,560 Je to nejednoznačné, a tak, ako typické kompilátor by urobiť, je len šalieť, 191 00:09:50,560 --> 00:09:53,710 a dá vám nejaké chybové hlásenie a aby sa vysporiadať s týmto problémom. 192 00:09:53,710 --> 00:09:58,120 >> Tak vzhľadom k tomu, lomítko, n znamená, že nový linka, čo by váš inštinkt teraz 193 00:09:58,120 --> 00:10:02,610 začnú byť, ak by ste chceli zahrnúť niečo neobvyklé, ako double 194 00:10:02,610 --> 00:10:06,210 citovať vnútri tohto inak citovaná string? 195 00:10:06,210 --> 00:10:07,640 Spätné lomítko-dvojité úvodzovky. 196 00:10:07,640 --> 00:10:09,630 A tak budeme vidieť druh vzoru tiež. 197 00:10:09,630 --> 00:10:12,490 >> Ak chcete urobiť niečo trochu divné, zistíte, že 198 00:10:12,490 --> 00:10:15,060 riešenie často nasleduje vzor, a spätným lomítkom 199 00:10:15,060 --> 00:10:17,150 označuje sekvenciu escape. 200 00:10:17,150 --> 00:10:20,320 A znamená to niečo špeciálne že musíme zastupovať vo 201 00:10:20,320 --> 00:10:21,060 odlišným spôsobom. 202 00:10:21,060 --> 00:10:23,830 Pokiaľ ide o tom, ako si predstavujú spätné lomítko, dobre, budeme 203 00:10:23,830 --> 00:10:24,550 vrátiť sa na to. 204 00:10:24,550 --> 00:10:26,930 Ale odpoveď je tiež v skutočnosti trochu zrejmé. 205 00:10:26,930 --> 00:10:31,080 >> Takže poďme sa predstaviť niektoré ďalšie programovací konštrukty 206 00:10:31,080 --> 00:10:31,915 ktoré ste videli v Scratch. 207 00:10:31,915 --> 00:10:34,790 Pravdepodobne ste už považovaná za samozrejmosť už pokiaľ ste už ponoril do 208 00:10:34,790 --> 00:10:36,060 Problém nastavenie 0. 209 00:10:36,060 --> 00:10:40,950 Ale poďme teraz predstaviť syntaxe C pre tieto inak pomerne intuitívne 210 00:10:40,950 --> 00:10:42,300 nápady, aspoň niektoré z nich. 211 00:10:42,300 --> 00:10:45,570 >> Takže táto predstava o stave, alebo vetva, zatiaľ čo predtým sme 212 00:10:45,570 --> 00:10:49,330 to pomocou kódu, ktorý vyzeral takhle vľavo v Scratch - 213 00:10:49,330 --> 00:10:52,200 ak x je menšie ako y, potom sa to tak povedať - 214 00:10:52,200 --> 00:10:56,760 namiesto toho sa v C - dovoľte mi, aby som zdokonaľovať v v najjednoduchšom prípade - 215 00:10:56,760 --> 00:11:01,235 sme proste hovoriť, ak otvoríte zátvorka, je niečo pravda - 216 00:11:01,235 --> 00:11:04,190 Logický výraz je ísť kde som povedal podmienku - 217 00:11:04,190 --> 00:11:08,170 zatvoriť zátvorka, potom to, čo je Vnútri týchto zložených zátvoriek. 218 00:11:08,170 --> 00:11:11,020 >> Takže aj tu, zložené zátvorky sú niečo ako Scratch je 219 00:11:11,020 --> 00:11:12,460 U tvaru skladačky. 220 00:11:12,460 --> 00:11:14,890 To, čo je vo vnútri týchto zložených zátvoriek. 221 00:11:14,890 --> 00:11:16,790 V tomto prípade, lomítko lomítko. 222 00:11:16,790 --> 00:11:19,720 A všimnite si, to je dopredu lomítko, nie spätné lomítko. 223 00:11:19,720 --> 00:11:21,440 Lomítko, lomítko, pre tých, ktorí si naprogramovaný 224 00:11:21,440 --> 00:11:23,370 predtým, jednoducho znamená - 225 00:11:23,370 --> 00:11:24,190 je to len komentár. 226 00:11:24,190 --> 00:11:26,630 Komentár nie je linka kódu, samo o sebe. 227 00:11:26,630 --> 00:11:30,200 Je to rad angličtiny, ktorý, človek, písali pre seba, aby 228 00:11:30,200 --> 00:11:33,540 možno pripomenie, že máte niečo urobiť, aby vysvetliť seba, vysvetľovať 229 00:11:33,540 --> 00:11:35,260 niekto iný, čo váš kód robí. 230 00:11:35,260 --> 00:11:37,050 Je to len opisný komentár. 231 00:11:37,050 --> 00:11:40,880 >> Teraz, samozrejme, môžeme mať dva-cesta rázcestí, len tým, že robí to, 232 00:11:40,880 --> 00:11:43,930 trojcestný rázcestí tým to, a ak budete pokračovať v tomto 233 00:11:43,930 --> 00:11:47,570 vzor, ​​môžete mať štyri-cesta, Päťsmerová, šesť-cesta vidličky v ceste, ak 234 00:11:47,570 --> 00:11:50,150 budete musieť zvládnuť, naozaj, že mnoho podmienok. 235 00:11:50,150 --> 00:11:52,010 A potom si všimnúť podobnosť tu - 236 00:11:52,010 --> 00:11:55,070 if (podmienka) else if (podmienka), a jediná, ktorá to trochu 237 00:11:55,070 --> 00:11:58,010 divné je posledný, ktorý je práve to inde. 238 00:11:58,010 --> 00:12:01,170 Ale opäť, to je rovnaký, koncepčne, s tým, čo sme urobili 239 00:12:01,170 --> 00:12:04,690 už, hoci syntaxe bude trvať trochu zvykať. 240 00:12:04,690 --> 00:12:07,730 >> Teraz, v tomto príklade, sú iné zvláštne syntaxe. 241 00:12:07,730 --> 00:12:11,220 Vidíme printf opäť otvorené zátvorky, a blízko zátvorky. 242 00:12:11,220 --> 00:12:13,190 A vo vnútri je reťazec v úvodzovkách. 243 00:12:13,190 --> 00:12:17,060 Zátvorky, v súvislosti printf, prejdite vľavo 244 00:12:17,060 --> 00:12:18,160 a právo na to, čo? 245 00:12:18,160 --> 00:12:22,190 Čo si popíšeme tie, ktoré boli string ako všeobecne? 246 00:12:22,190 --> 00:12:23,320 >> Takže je to argument. 247 00:12:23,320 --> 00:12:26,620 Kedykoľvek budete mať funkcie, ako je printf, a potom otvoriť zátvorka a 248 00:12:26,620 --> 00:12:30,330 zatvoriť zátvorka a niečo vo vnútri to, či je to reťazec alebo 249 00:12:30,330 --> 00:12:34,420 celé číslo, alebo čokoľvek iného, ​​čo v medzi tieto zátvorky sa nazýva 250 00:12:34,420 --> 00:12:35,110 argument. 251 00:12:35,110 --> 00:12:37,910 >> A argument, len ovplyvňuje Funkcie správanie. 252 00:12:37,910 --> 00:12:39,990 V tomto prípade, je to celkom jasné, ako. 253 00:12:39,990 --> 00:12:44,480 x 00:12:47,720 A printf bude vytlačiť presne tak. 255 00:12:47,720 --> 00:12:51,590 Pretože iste, osoba rokmi ktorí realizovaný printf nemal tušenie 256 00:12:51,590 --> 00:12:55,000 to, čo ľudské nástupcov bude používať pre printf. 257 00:12:55,000 --> 00:12:58,610 Takže to je dôvod, prečo argumenty existujú, vplyv na správanie po funkcia je 258 00:12:58,610 --> 00:12:59,450 bolo napísané. 259 00:12:59,450 --> 00:13:00,780 >> Teraz, Boolean výraz. 260 00:13:00,780 --> 00:13:02,470 Videli sme to ešte v začiatku. 261 00:13:02,470 --> 00:13:06,680 Ukazuje sa, že v C môžete i "alebo" dohromady, aby som tak povedal. 262 00:13:06,680 --> 00:13:10,930 Dve zvislé čiary znamená, že tento blok kódu, to to bude 263 00:13:10,930 --> 00:13:15,350 vykonať v prípade, že prvá podmienka je pravdivá alebo druhá podmienka je pravdivá. 264 00:13:15,350 --> 00:13:17,710 A aj keď by si to nemohol urobiť To Scratch, môžete skutočne 265 00:13:17,710 --> 00:13:20,580 to vo Scratch, a môžete tiež vyjadriť sám seba inak - 266 00:13:20,580 --> 00:13:25,300 v prípade, že prvá a druhá podmienka podmienka pravdivá, potom to, čo je 267 00:13:25,300 --> 00:13:27,160 vnútri zložených zátvoriek. 268 00:13:27,160 --> 00:13:31,210 >> A rovnako ako stranou, dôvodom je to dvojitý ampersand a dvojité 269 00:13:31,210 --> 00:13:34,610 zvislá čiara, uvidíme časom že jeden zvislý pruh a 270 00:13:34,610 --> 00:13:38,710 jediný ampersand vlastne majú rôzne čo znamená v C. Takže teraz, 271 00:13:38,710 --> 00:13:41,840 že zdvojenie symbolov je úmyselné. 272 00:13:41,840 --> 00:13:45,070 >> Takže poďme predstaviť, stručne, ten druhý trochu syntaxe. 273 00:13:45,070 --> 00:13:48,940 To nie je úplne preniesť do Scratch, ale tvrdím, že môžem 274 00:13:48,940 --> 00:13:55,190 realizovať predstavu, ak iný, ak inde, ak inde, ak else použitie 275 00:13:55,190 --> 00:13:56,760 niečo ako príkaz switch. 276 00:13:56,760 --> 00:14:00,820 A jediný dôvod, prečo je to naozaj existuje je len vám, programátor, 277 00:14:00,820 --> 00:14:05,470 trochu iné riešenie niektorých problém, a to aj napriek tomu, že logicky 278 00:14:05,470 --> 00:14:07,340 vám nedáva žiadne nové schopnosti. 279 00:14:07,340 --> 00:14:08,530 >> Tým mám na mysli toto. 280 00:14:08,530 --> 00:14:13,330 Keď hovoríte, že prepínač, a potom priestor, a potom pár zátvoriek, vnútorné 281 00:14:13,330 --> 00:14:14,570 ktorý ide výraz - 282 00:14:14,570 --> 00:14:18,010 a to by mohlo byť trochu non-zrejmé na prvý, ale to nie je dôvod, 283 00:14:18,010 --> 00:14:20,680 technicky, pretože spínač nie je funkcia. 284 00:14:20,680 --> 00:14:24,230 Takže teraz, len predpokladať, že sme pomocou Okrúhle zátvorky v rôznych miestach 285 00:14:24,230 --> 00:14:25,250 z rôznych dôvodov. 286 00:14:25,250 --> 00:14:29,310 >> Takže zapnite výraz znamená, že môžem dať premennú vnútri tých 287 00:14:29,310 --> 00:14:31,350 zátvorky, kde sa hovorí, že výraz. 288 00:14:31,350 --> 00:14:33,090 A potom, ak táto premenná - 289 00:14:33,090 --> 00:14:35,400 Predpokladám, že sa to volá x, a je to len číslo - 290 00:14:35,400 --> 00:14:38,900 Potom môžem vymenovat v mojom snímke tu niečo také. 291 00:14:38,900 --> 00:14:41,690 Je-li x premenná je môj a ja Chcete niečo urobiť, ak x 292 00:14:41,690 --> 00:14:43,480 sa rovná 1, to môžem urobiť. 293 00:14:43,480 --> 00:14:46,660 >> Keby som namiesto toho chcete urobiť niečo ak je x 2, to môžem urobiť. 294 00:14:46,660 --> 00:14:50,390 Inak, ak chcem robiť niečo iné úplne, môžem mať predvolený prípad 295 00:14:50,390 --> 00:14:52,750 tom prípade mám tú druhú vec. 296 00:14:52,750 --> 00:14:58,730 Takže v tomto zmysle, je to ekvivalent ak sa x rovná sa rovná 1, inak ak iný, 297 00:14:58,730 --> 00:15:01,150 Spomínam to, ale teraz len preto, uvidíme to znova. 298 00:15:01,150 --> 00:15:03,720 Ale teraz, len viem, ž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 zložité na prvý pohľad, ale robia 301 00:15:07,660 --> 00:15:09,385 niečo pomerne jednoduchá. 302 00:15:09,385 --> 00:15:14,410 Cyklus for v C je kus kódu, ktorý proste niečo robí znova a 303 00:15:14,410 --> 00:15:15,330 znova a znova. 304 00:15:15,330 --> 00:15:17,590 A len nepríjemné na tom je, to je, že je to trochu záhadný 305 00:15:17,590 --> 00:15:21,380 sa vyjadrovať v tejto cyklickej vzor, ​​ale svet ako štandard 306 00:15:21,380 --> 00:15:22,450 nasledujúcim spôsobom. 307 00:15:22,450 --> 00:15:25,760 >> Pri použití pre sláčiky, máte dvojica zátvoriek znova. 308 00:15:25,760 --> 00:15:27,570 A všimnite si dva bodkočiarkami tam. 309 00:15:27,570 --> 00:15:34,380 Tieto dva bodkočiarky oddelené tri rôzne výrazy vnútri 310 00:15:34,380 --> 00:15:35,020 zátvorky. 311 00:15:35,020 --> 00:15:37,170 Jedným z nich je tzv inicializácia. 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 aktualizácie. 314 00:15:40,210 --> 00:15:43,240 >> Pozrel sa na abstraktne, je to kompletne non-zrejmé, tak sa poďme pozrieť 315 00:15:43,240 --> 00:15:44,630 na konkrétnom príklade. 316 00:15:44,630 --> 00:15:46,720 V Scratch sme mali opakovanie bloku. 317 00:15:46,720 --> 00:15:50,670 A tento blok povedal opakovať 10 krát, povedzme "Hello, world". Dovoľte mi, aby som nárok na 318 00:15:50,670 --> 00:15:53,810 teraz, a vrátime sa k tomu, a aj to sa bližšie zoznámiť so 319 00:15:53,810 --> 00:15:57,345 budete onedlho ekvivalent C Kód môže byť povedal, aby bol tento - 320 00:15:57,345 --> 00:16:02,320 pre vyjadrenie a priestor, pár zátvorky, bodkočiarky v oznámení 321 00:16:02,320 --> 00:16:05,730 tam, ktoré oddeľujú tri odlišné veci, inicializácia 322 00:16:05,730 --> 00:16:07,320 stav, a aktualizácie. 323 00:16:07,320 --> 00:16:08,840 >> A hádajte, čo Prvý z nich je robí. 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 povedané, to, čo je že robí pre 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 deklarovaní premennej s názvom i, a to je dávať to, akú hodnotu? 328 00:16:19,630 --> 00:16:20,220 0. 329 00:16:20,220 --> 00:16:24,280 Takže to vytvára premennú s názvom i, skladovanie hodnotu 0 v ňom. 330 00:16:24,280 --> 00:16:26,420 To je tzv inicializácia. 331 00:16:26,420 --> 00:16:29,360 >> Dobre, teraz som tvrdil pred že stredná vec, aj 332 00:16:29,360 --> 00:16:31,760 <10, je stav. 333 00:16:31,760 --> 00:16:32,730 Takže to, čo robí? 334 00:16:32,730 --> 00:16:36,560 No, a čo robí, keď slučka pre Program sa pre slučky je spustený, je 335 00:16:36,560 --> 00:16:41,050 zakaždým, keď počítač beží cez Táto slučka, zhora nadol, zhora 336 00:16:41,050 --> 00:16:43,740 dno, rovnako ako vy robil, keď počítanie a sami sedieť, 337 00:16:43,740 --> 00:16:47,090 znova a znova a znova, Počítač sa deje 338 00:16:47,090 --> 00:16:48,560 skontrolovať túto podmienku. 339 00:16:48,560 --> 00:16:51,140 A keď som je menšia ako 10, to bude robiť to znova. 340 00:16:51,140 --> 00:16:53,100 Je-li i je menšia ako 10, to bude robiť to znova. 341 00:16:53,100 --> 00:16:55,030 Keby som je menšia ako desať, to bude robiť to znova. 342 00:16:55,030 --> 00:16:57,330 Takže to vyzerá, že navrhne, že dúfam, že sa mení. 343 00:16:57,330 --> 00:16:59,010 Inak by sme museli nekonečnú slučku. 344 00:16:59,010 --> 00:17:02,590 A skutočne, aj sa mení, pretože Posledná vec, ktorú za bodkočiarkou sa 345 00:17:02,590 --> 00:17:05,569 je trochu záhadné syntax i + +. 346 00:17:05,569 --> 00:17:07,630 Ale tí z vás, ktorí urobili to predtým, že jednoducho znamená, 347 00:17:07,630 --> 00:17:08,609 proste to, čo? 348 00:17:08,609 --> 00:17:09,730 >> ŠTUDENTI: [Prechodová Hlasy]. 349 00:17:09,730 --> 00:17:10,740 >> DAVID Malan: Pridať 1 až I. 350 00:17:10,740 --> 00:17:11,819 Prírastok i. 351 00:17:11,819 --> 00:17:13,910 Takže sme videli Scratch puzzle kus pre to, že v skutočnosti. 352 00:17:13,910 --> 00:17:18,230 Nevyzeralo to ako aj + +, ale to len znamená, jednoducho, zvýšiť 353 00:17:18,230 --> 00:17:24,040 cenia aj o 1 zakaždým, keď to urobíte. 354 00:17:24,040 --> 00:17:26,910 Takže doslova, môžete začať tým, inicializácia aj na 0. 355 00:17:26,910 --> 00:17:29,520 Potom skontrolovať stav. 356 00:17:29,520 --> 00:17:31,070 0 je menšia ako 10? 357 00:17:31,070 --> 00:17:31,730 Áno. 358 00:17:31,730 --> 00:17:32,910 Ideme cez slučku. 359 00:17:32,910 --> 00:17:35,150 >> Ďalšia vec, ktorú som sa tvrdí, že počítač je robiť, je, že to bude 360 00:17:35,150 --> 00:17:35,910 zvýšite i 361 00:17:35,910 --> 00:17:37,080 Tak som ich teraz jedno. 362 00:17:37,080 --> 00:17:37,940 Kontroluje stav. 363 00:17:37,940 --> 00:17:39,290 Je o 1 menej ako 10? 364 00:17:39,290 --> 00:17:39,930 Samozrejme. 365 00:17:39,930 --> 00:17:41,030 Tak sa to znova. 366 00:17:41,030 --> 00:17:43,580 Potom sa zvýši aj + + na 2. 367 00:17:43,580 --> 00:17:44,610 Je 2 menej ako 10? 368 00:17:44,610 --> 00:17:45,230 Áno. 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 nakoniec, pretože plus-plussing, dostaneme sa aj rovná 10. 371 00:17:50,070 --> 00:17:51,675 Je 10 menej než 10? 372 00:17:51,675 --> 00:17:52,990 No, samozrejme že nie. 373 00:17:52,990 --> 00:17:55,320 A to je bod, v ktorom pre slučku zastaví. 374 00:17:55,320 --> 00:17:58,320 A ak máte viac kódu na obrazovke dole, počítač 375 00:17:58,320 --> 00:18:01,620 výťažok spustiť tento kód miesto. 376 00:18:01,620 --> 00:18:05,380 >> Takže znovu, aj keď to bude vyzerať a cítiť trochu divne 377 00:18:05,380 --> 00:18:07,830 Prvý, určite pre tých z vás, ktorí Nikdy naprogramované, sa 378 00:18:07,830 --> 00:18:11,640 doslova znižuje koncepčne na to, čo je inak veľmi 379 00:18:11,640 --> 00:18:14,330 jednoduché puzzle kus Scratch. 380 00:18:14,330 --> 00:18:19,130 >> V poriadku, sľúbil som, že by som byť aj iné analógy vo Scratch. 381 00:18:19,130 --> 00:18:20,060 Tam je to taky. 382 00:18:20,060 --> 00:18:21,700 A videli sme to krátko minule. 383 00:18:21,700 --> 00:18:23,530 Ale pamätajte večne zablokovať v Scratch? 384 00:18:23,530 --> 00:18:25,490 Je to proste niečo robí navždy? 385 00:18:25,490 --> 00:18:27,470 Ja tvrdil, že by ste mohli realizovať to týmto spôsobom. 386 00:18:27,470 --> 00:18:29,740 A môžete skutočne realizovať tento na veľa rôznych spôsobov. 387 00:18:29,740 --> 00:18:34,260 >> Ale zatiaľ čo slučka je len iný spôsob, ako v C, ako vyjadriť sám seba. 388 00:18:34,260 --> 00:18:37,080 Na konci dňa, môžete to urobiť čokoľvek s slučky while, ktorý 389 00:18:37,080 --> 00:18:38,360 nemôže sa na slučke. 390 00:18:38,360 --> 00:18:41,430 Takže sú na konci deň funkčne rovnaké. 391 00:18:41,430 --> 00:18:43,840 Ale to vám umožní vyjadriť sám seba trochu inak 392 00:18:43,840 --> 00:18:44,850 nasledujúcim spôsobom. 393 00:18:44,850 --> 00:18:49,720 >> S while, je to, čo je v zátvorky, ktoré je znovu skontrolovaná a 394 00:18:49,720 --> 00:18:51,050 znova a znova. 395 00:18:51,050 --> 00:18:55,100 A akonáhle má výraz nepravdivý, potom slučka prestáva vykonávať, 396 00:18:55,100 --> 00:18:57,890 a počítač pokračuje prevádzkovať ktorýkoľvek iný kód, 397 00:18:57,890 --> 00:18:59,230 mať vo svojom súbore. 398 00:18:59,230 --> 00:19:02,180 >> Ale čo je zaujímavé je tu že som doslova napísal pravda. 399 00:19:02,180 --> 00:19:06,680 A pravda je typ Boolean hodnotu, hodnotu true alebo false. 400 00:19:06,680 --> 00:19:09,750 Mohli pravda niekedy stane false ak som doslova 401 00:19:09,750 --> 00:19:11,970 pevne ju do svojho programu? 402 00:19:11,970 --> 00:19:12,470 Tak nie. 403 00:19:12,470 --> 00:19:13,730 Je to trochu divné, že som to urobil. 404 00:19:13,730 --> 00:19:15,190 Ale pravda je pravda. 405 00:19:15,190 --> 00:19:16,320 Neexistuje žiadny plus-plussing. 406 00:19:16,320 --> 00:19:17,820 Nemá zmysel premenných v tu. 407 00:19:17,820 --> 00:19:22,740 Takže, pretože som pevne, zatiaľ čo pravda, to slučka je vždy bude hodnotiť 408 00:19:22,740 --> 00:19:24,090 znova a znova a znova. 409 00:19:24,090 --> 00:19:27,660 >> Takže koľkokrát je hello world do tlače na obrazovke? 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, kým sa vybitia batérie alebo iné externé 412 00:19:31,980 --> 00:19:32,730 udalosť stane. 413 00:19:32,730 --> 00:19:35,880 Takže to asi nie je najlepší program písať, pretože v prípade, že používateľ 414 00:19:35,880 --> 00:19:38,660 nikdy nemôže skončiť svoj program, je to asi nie je to, čo ste zamýšľali. 415 00:19:38,660 --> 00:19:41,070 >> Ale niekedy, by mali byť programy majú nekonečnú slučku. 416 00:19:41,070 --> 00:19:44,050 Napríklad, ak váš počítač má hodiny na to, že by bolo určite 417 00:19:44,050 --> 00:19:48,130 pekné, keby hodiny to priebežne aktualizovať sama o sebe navždy, aj keď raz 418 00:19:48,130 --> 00:19:50,500 Druhá alebo raz za minútu alebo niečo také. 419 00:19:50,500 --> 00:19:53,690 Takže aj nekonečnej slučky majú svoje miesto. 420 00:19:53,690 --> 00:19:54,360 >> Dobrá. 421 00:19:54,360 --> 00:19:55,190 Konečne, toto. 422 00:19:55,190 --> 00:19:57,770 A toto je trochu iný, funkčne a vrátime sa späť do 423 00:19:57,770 --> 00:19:59,460 to pravdepodobne v pset 1. 424 00:19:59,460 --> 00:20:02,370 Ale je tu iný typ slučky volal do while. 425 00:20:02,370 --> 00:20:07,100 A jediný rozdiel medzi robiť, kým slučka a, povedzme, while, 426 00:20:07,100 --> 00:20:11,120 je to, že podmienka je kontrolovaná nie pred spustením kódu, ale po 427 00:20:11,120 --> 00:20:12,080 spustenie kódu. 428 00:20:12,080 --> 00:20:15,380 Takže v hornej časti na dobu slučky, zatiaľ čo robiť, keď 429 00:20:15,380 --> 00:20:16,560 kontroly, ktoré v dolnej časti. 430 00:20:16,560 --> 00:20:21,370 >> A to len znamená, že cyklus while obvykle spustiť viackrát 431 00:20:21,370 --> 00:20:24,630 alebo menej krát ako slučky while? 432 00:20:24,630 --> 00:20:30,810 Potenciálne viackrát, pretože to while je jasne hovorí to, 433 00:20:30,810 --> 00:20:34,600 až po ktorom mieste by ste skontrolovať v prípade, že stav vo vnútri 434 00:20:34,600 --> 00:20:35,980 zátvorky, je pravda. 435 00:20:35,980 --> 00:20:37,940 >> Tak uvidíme to ešte raz pravdepodobne v pset 1. 436 00:20:37,940 --> 00:20:41,150 Ak ste niekedy chceli niečo urobiť aspoň raz a potom možno ešte viac 437 00:20:41,150 --> 00:20:43,350 krát, to je dobrá postaviť použiť. 438 00:20:43,350 --> 00:20:46,970 Ale zatiaľ čo slučka, naopak, bude skontrolovať jej stav ako prvý. 439 00:20:46,970 --> 00:20:50,660 A to je pre slučky v C, sa zatiaľ čo, keď, a slučky. 440 00:20:50,660 --> 00:20:54,700 A opäť, oni máp celkom pekne staré na začiatku, okrem toho, kto nemá 441 00:20:54,700 --> 00:20:57,350 úplne rovnaký analógové Scratch. 442 00:20:57,350 --> 00:20:58,880 >> No a čo teraz, premenné? 443 00:20:58,880 --> 00:21:02,600 Tak to je, ako som deklaroval premennú syntakticky druhý deň. 444 00:21:02,600 --> 00:21:06,440 Mal som int, čo som tvrdil, je celé číslo. 445 00:21:06,440 --> 00:21:09,690 Potom som premennú s názvom pult, a potom bodkočiarka. 446 00:21:09,690 --> 00:21:11,070 Takže čo je to riadok kódu robíš? 447 00:21:11,070 --> 00:21:14,540 To je proste, keď vyhlásil variabilné - 448 00:21:14,540 --> 00:21:17,940 to je, pýta počítač, daj mi pamäť, daj mi niektoré kúsky - v 449 00:21:17,940 --> 00:21:19,450 ktoré môžem uložiť čo? 450 00:21:19,450 --> 00:21:20,300 Int. 451 00:21:20,300 --> 00:21:23,570 A bodkočiarka jednoducho znamená, koniec riadku kódu. 452 00:21:23,570 --> 00:21:25,500 >> Teraz, druhý riadok je pravdepodobne docela odhalitelný. 453 00:21:25,500 --> 00:21:29,710 Čo je counter = 0; robíš? 454 00:21:29,710 --> 00:21:31,690 Je priradenie 0 proti. 455 00:21:31,690 --> 00:21:33,470 A tak to je ďalšia vec, je to trochu nepríjemné 456 00:21:33,470 --> 00:21:34,540 proti, povedzme, algebry. 457 00:21:34,540 --> 00:21:39,110 Kým v algebre, znamienko rovnosti znamená, rovná, tu v C, rovná 458 00:21:39,110 --> 00:21:40,470 znamienko znamená, že úloha. 459 00:21:40,470 --> 00:21:45,380 Takže to znamená, že dať to, čo je na pravej strane na to, čo je na ľavej strane. 460 00:21:45,380 --> 00:21:49,030 A uvidíme ďalší symbol, sa rovná rovná, keď chceme, aby skutočne otestovať 461 00:21:49,030 --> 00:21:50,570 kvality, trochu nepríjemne. 462 00:21:50,570 --> 00:21:52,590 >> Ale je to trochu neefektívne. 463 00:21:52,590 --> 00:21:55,090 Je to trochu nepríjemné, že mám deklarovať premennú a 464 00:21:55,090 --> 00:21:56,110 potom to hodnotu. 465 00:21:56,110 --> 00:21:59,380 Takže vlastne C nám umožňuje zjednodušiť tým, a jednoducho to urobiť všetko naraz. 466 00:21:59,380 --> 00:22:01,330 Môžete deklarovať premenné na ľavej strane. 467 00:22:01,330 --> 00:22:04,590 Stále môžete urobiť úlohu na právo tým, že znamienko rovnosti v 468 00:22:04,590 --> 00:22:05,030 prostredný. 469 00:22:05,030 --> 00:22:08,740 Takže na konci dňa, tieto dva sú ekvivalentné, ale táto, úprimne povedané, 470 00:22:08,740 --> 00:22:11,840 je pravdepodobne lepšia zvyk sa dostať do len preto, že je to trochu menej 471 00:22:11,840 --> 00:22:15,040 kód, je to trochu čitateľnejší, a to len sprísni 472 00:22:15,040 --> 00:22:17,470 váš kód, aby som tak povedal. 473 00:22:17,470 --> 00:22:22,120 >> Akékoľvek otázky doteraz na okruhu, na rôznych faktoroch, na podmienkach, na 474 00:22:22,120 --> 00:22:27,001 Booleovské operácie, buď technicky alebo koncepčne? 475 00:22:27,001 --> 00:22:28,010 Dobrá. 476 00:22:28,010 --> 00:22:30,690 Takže teraz to nabudúce dostane trochu zaujímavejšie. 477 00:22:30,690 --> 00:22:34,790 A to je príklad som dal do poslednej čas, ktorý práve mapuje Scratch príklad 478 00:22:34,790 --> 00:22:35,820 sa k C. 479 00:22:35,820 --> 00:22:36,580 >> Takže funkcie. 480 00:22:36,580 --> 00:22:38,110 Laicky povedané, čo je to funkcia? 481 00:22:38,110 --> 00:22:42,900 482 00:22:42,900 --> 00:22:44,350 Musím byť odvážnejší sa Vašej odpovede. 483 00:22:44,350 --> 00:22:45,020 Čo je to funkcia? 484 00:22:45,020 --> 00:22:46,320 >> STUDENT: Má niečo. 485 00:22:46,320 --> 00:22:46,780 >> DAVID Malan: Čo je to? 486 00:22:46,780 --> 00:22:48,000 >> STUDENT: Má niečo. 487 00:22:48,000 --> 00:22:48,710 >> DAVID Malan: Má niečo. 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 funkcia robí niečo. 491 00:22:51,270 --> 00:22:55,160 Takže je to kus kódu, ktorý je zásade realizované inde, že 492 00:22:55,160 --> 00:22:56,620 naozaj robí niečo. 493 00:22:56,620 --> 00:23:00,180 A teraz, čo je na tom zaujímavé funkcie je, že to môže trvať vstup, 494 00:23:00,180 --> 00:23:02,710 a to môže produkovať výstup. 495 00:23:02,710 --> 00:23:05,090 A poďme vlastne vziať Pozrite sa na toto. 496 00:23:05,090 --> 00:23:09,030 >> Ten muž za oponou bolo úmyselné pred chvíľou. 497 00:23:09,030 --> 00:23:10,320 Tu máme tabuľku. 498 00:23:10,320 --> 00:23:13,010 Ale predpokladám, že to v skutočnosti predstavuje veľkú krabicu. 499 00:23:13,010 --> 00:23:14,940 Tak to je tzv čierna skrinka. 500 00:23:14,940 --> 00:23:19,800 A vôbec, v dizajne, v počítači veda, čierne skrinky len na 501 00:23:19,800 --> 00:23:22,510 kúsky funkčnosti, že niekto zaviedla, a ty nie 502 00:23:22,510 --> 00:23:26,140 nutne vedieť, alebo jedno, ako je to realizovaný pod kapotou. 503 00:23:26,140 --> 00:23:28,960 Len pozor, aby to čierna skrinka, ktoré budeme teraz začať volať 504 00:23:28,960 --> 00:23:30,730 funkcie, robí niečo. 505 00:23:30,730 --> 00:23:34,710 >> Tak napríklad, ak je to čierna skrinka na etapa tu predstavuje printf, 506 00:23:34,710 --> 00:23:38,040 funkcie, viem z predchádzajúcich príkladoch printf, že sa jeden alebo viac 507 00:23:38,040 --> 00:23:40,910 argumenty, a prvý z nich argumenty by mali byť reťazec, ako je 508 00:23:40,910 --> 00:23:44,780 "Hello, world". No, keď som osoba písanie programu, a ja chcem 509 00:23:44,780 --> 00:23:50,460 použiť printf, ja, napríklad, môže vziať kus prázdneho papiera a tu 510 00:23:50,460 --> 00:23:55,060 čierny fix a na neho písať - 511 00:23:55,060 --> 00:23:56,580 Aj chybne "svet" - 512 00:23:56,580 --> 00:23:59,560 H-E-L-L-O. 513 00:23:59,560 --> 00:24:04,220 >> Tak som si vezmem čiernu značku a budem písať, aký veľký a čitateľne, ako len môžem na 514 00:24:04,220 --> 00:24:07,260 tento kus papiera, "ahoj, svet," A teraz vyhlasujú, že toto je môj argument. 515 00:24:07,260 --> 00:24:09,740 Toto je reťazec reprezentovaný kus bieleho papiera. 516 00:24:09,740 --> 00:24:13,030 A teraz môj vstup do funkcie printf bude to. 517 00:24:13,030 --> 00:24:18,250 Takže som volanie printf, prechádzajúcej tento argument ako vstup do neho. 518 00:24:18,250 --> 00:24:22,110 519 00:24:22,110 --> 00:24:26,740 >> A teraz, ja neviem, ako ten, kto napísal printf to urobil pred rokmi, ale 520 00:24:26,740 --> 00:24:31,110 Viem z jeho dokumentácie, ktorá jeho účel v živote je vytlačiť to, čo som 521 00:24:31,110 --> 00:24:34,410 poskytnúť k tomu ako vstup. 522 00:24:34,410 --> 00:24:40,630 A tak, aj keď táto implementácia je bez vedomia ma 523 00:24:40,630 --> 00:24:44,170 Pod kapotou sa Vidím, oh, sa to robí. 524 00:24:44,170 --> 00:24:45,740 Je vytlačená niečo na obrazovke. 525 00:24:45,740 --> 00:24:49,070 A teraz ovládajú programu, ak je bolo viac riadkov kódu, by 526 00:24:49,070 --> 00:24:51,070 sa teraz vrátila ku mne. 527 00:24:51,070 --> 00:24:52,290 A tak to, že Colton - 528 00:24:52,290 --> 00:24:55,370 požehnať jeho srdce, sa skrýva tu pod stôl pred vami všetkými - 529 00:24:55,370 --> 00:24:59,530 je zámerné v tom, že neviem, a je mi jedno, ako printf je 530 00:24:59,530 --> 00:25:00,100 vykonávaná. 531 00:25:00,100 --> 00:25:03,390 Viem len, že opäť z jeho dokumentácie, čo robí a ako sa 532 00:25:03,390 --> 00:25:05,040 som mal použiť. 533 00:25:05,040 --> 00:25:09,140 >> Teraz si pripomeňme, že printf mohol dostať trochu zložitejšie. 534 00:25:09,140 --> 00:25:12,220 Opäť sme sa rozprávali o ekvivalent Say bloku Scratch je. 535 00:25:12,220 --> 00:25:14,230 Ale tiež som to urobil minule. 536 00:25:14,230 --> 00:25:17,270 Chcel som, aby môj program, ahoj trochu viac dynamický a nie len ťažké 537 00:25:17,270 --> 00:25:19,740 Kód niečo ako "sveta" rozhodne nie je ťažké niečo kód 538 00:25:19,740 --> 00:25:22,520 ľubovoľná rovnako ako D-A-V-I-D do programu. 539 00:25:22,520 --> 00:25:27,510 Chcel som sa opýtať používateľa o jeho alebo jej meno, a potom niečo robiť 540 00:25:27,510 --> 00:25:29,720 že reťazec, ktorý poskytujú. 541 00:25:29,720 --> 00:25:32,690 >> Takže tam je niečo trochu iné tu. printf, pred chvíľou, 542 00:25:32,690 --> 00:25:35,860 sa skutočne niečo urobiť, ale je to nevrátil nič pre mňa. 543 00:25:35,860 --> 00:25:36,020 Je to tak? 544 00:25:36,020 --> 00:25:38,910 Colton nemal ruky mi nič späť, ani kus papiera. 545 00:25:38,910 --> 00:25:40,320 Tam bol len vedľajší efekt. 546 00:25:40,320 --> 00:25:44,510 Má poskytovať "Hello, world", ako argument Colton následok 547 00:25:44,510 --> 00:25:48,420 vedľajší účinok slová, niektoré slová, sa objaví na obrazovke. 548 00:25:48,420 --> 00:25:51,350 >> GetString, aj keď je trochu rôzne. GetString je tiež 549 00:25:51,350 --> 00:25:54,590 funkcie, ale vracia nejakú hodnotu. 550 00:25:54,590 --> 00:25:56,370 To nie je len estetický vedľajší efekt. 551 00:25:56,370 --> 00:26:00,230 Je to vlastne mi dáva, osoba volanie alebo použitie funkcie, 552 00:26:00,230 --> 00:26:01,320 niečo staré. 553 00:26:01,320 --> 00:26:05,740 Takže v tomto prípade, je GetString dorovnal s otvoreným GetString 554 00:26:05,740 --> 00:26:07,510 zátvorka, v blízkosti zátvorka. 555 00:26:07,510 --> 00:26:11,370 Má GetString, preto sa nejaké argumenty alebo vstup? 556 00:26:11,370 --> 00:26:12,340 No, zdá sa, nie je. 557 00:26:12,340 --> 00:26:14,460 Jeho cieľom v živote je len preto, aby reťazec. 558 00:26:14,460 --> 00:26:16,910 To nepotrebuje viac detailov než to. 559 00:26:16,910 --> 00:26:20,430 Tak ma nechaj ísť ďalej a predstierať, že znova, black box nie je printf, 560 00:26:20,430 --> 00:26:25,160 ale GetString, a dovoľte mi, aby som na osobu písania tohto programu, zavolajte alebo použite 561 00:26:25,160 --> 00:26:29,720 GetString len o písaní G-E-T-S-T-R-I-N-G, open paren, zavrieť 562 00:26:29,720 --> 00:26:32,170 zátvorka, GetString. 563 00:26:32,170 --> 00:26:36,920 >> Teraz nemám potuchy, ako sa CS50 zamestnancami realizovaný GetString, ale viem, že 564 00:26:36,920 --> 00:26:41,240 keď som čakať dosť dlho, bude to robiť svoju vec pod kapotou, možno pomocou 565 00:26:41,240 --> 00:26:44,940 niektoré premenné, možno pomocou niektorej podmienky, možno pomocou niektorých slučiek, 566 00:26:44,940 --> 00:26:48,170 Možno používanie niektorých funkcií, Možno použitie - 567 00:26:48,170 --> 00:26:52,290 Len sa snažím stánku - možná pomocou niektoré ďalšie programovacie funkcie. 568 00:26:52,290 --> 00:26:55,350 Ale keď som čakať dosť dlho - v skutočnosti, v počítači, sa tak stane 569 00:26:55,350 --> 00:26:56,270 super rýchly - 570 00:26:56,270 --> 00:26:59,910 keď som čakať dosť dlho, táto funkcia GetString dostane reťazec 571 00:26:59,910 --> 00:27:04,060 od používateľa, ktorý je pravdepodobne píšete že sa na ich klávesnici a 572 00:27:04,060 --> 00:27:08,090 potom, keď GetString ste sa vykonáva stále tieto znaky od užívateľa 573 00:27:08,090 --> 00:27:14,080 a ich uloženie do reťazca, ktorý funkcie, GetString, bude mať 574 00:27:14,080 --> 00:27:17,990 pripravený pre mňa nejaký výstup, ktorý ma bude získať prostredníctvom 575 00:27:17,990 --> 00:27:19,470 operátor priradenia. 576 00:27:19,470 --> 00:27:25,390 >> A keď odídem, naozaj, na výstupe tu Obosi má veľkoryso 577 00:27:25,390 --> 00:27:29,900 zúčastnil, bez toho aby to vedel v vopred, písomne ​​svoje meno na to 578 00:27:29,900 --> 00:27:33,100 premenná, ktorá zastupuje reťazec. 579 00:27:33,100 --> 00:27:35,640 Teraz je operátor priradenia znamená, že aj aj keď to môže cítiť trochu 580 00:27:35,640 --> 00:27:38,790 redundantné, ja vlastne potrebujem aby svoju vlastnú kópiu tohto. 581 00:27:38,790 --> 00:27:40,700 Vzhľadom k tomu, na ľavej strane strana - POZOR! - 582 00:27:40,700 --> 00:27:45,760 Všimnite si, že som v podstate majú reťazec meno na ľavej strane. 583 00:27:45,760 --> 00:27:48,280 Tak som tiež bude, aby sa moje vlastné kópie tohto. 584 00:27:48,280 --> 00:27:50,990 A to je trochu biele lži, pretože uvidíme za týždeň, alebo dve, 585 00:27:50,990 --> 00:27:54,100 čas, reťazce nie sú v skutočnosti aké sa zdajú byť. 586 00:27:54,100 --> 00:27:56,700 >> Ale teraz, tu je návratová hodnota. 587 00:27:56,700 --> 00:28:00,160 Tu je môj vlastný kópiu, ktorú po pomocou operátora priradenia. 588 00:28:00,160 --> 00:28:01,790 A teraz, čo chcem robiť ďalej? 589 00:28:01,790 --> 00:28:04,080 Máme teraz druhý dvoch riadkov kódu. 590 00:28:04,080 --> 00:28:05,640 Tak som teraz chcete zavolať printf. 591 00:28:05,640 --> 00:28:08,500 Poďme predstierať, že sa čierna box je zase späť k bytiu 592 00:28:08,500 --> 00:28:10,210 printf a nie GetString. 593 00:28:10,210 --> 00:28:12,200 >> Printf tentoraz bude sa, koľko argumenty? 594 00:28:12,200 --> 00:28:14,890 595 00:28:14,890 --> 00:28:16,770 Tak sa pozrite, je to ako dva. 596 00:28:16,770 --> 00:28:18,860 Existujú dva čiarky tam, ale jeden z tých čiarok, je to 597 00:28:18,860 --> 00:28:20,220 vnútri úvodzoviek. 598 00:28:20,220 --> 00:28:23,190 Takže prvý argument je doslova bude to. 599 00:28:23,190 --> 00:28:31,850 H-E-L-L-O, čiarka, percenta s, spätné lomítko-n. 600 00:28:31,850 --> 00:28:36,560 A teraz som poskytuje nie jeden argument, ale dva argumenty printf. 601 00:28:36,560 --> 00:28:39,530 >> A čo printf robiť sa Tieto dva vstupy po odovzdám im 602 00:28:39,530 --> 00:28:42,050 ako argumenty? 603 00:28:42,050 --> 00:28:45,360 Malo by to trvať sekundu je, ktoré som volal meno, takže 604 00:28:45,360 --> 00:28:48,660 Druhý kus papiera som napísal z Pred chvíľou sa nazýva menom. 605 00:28:48,660 --> 00:28:53,550 Bude to konektor hodnoty vnútri tejto premennej do vyhradeného miesta 606 00:28:53,550 --> 00:28:58,310 % S, takže znovu, len na chvíľu je čas, uvidíme vedľajší účinok 607 00:28:58,310 --> 00:29:04,180 zavolal printf, pričom teraz sa nevidí "Hello, world", ale "Dobrý deň, 608 00:29:04,180 --> 00:29:04,710 Obosi. " 609 00:29:04,710 --> 00:29:08,730 >> Tak veľký potlesk pre oba naši dobrovoľníci, iba jeden z nich vedel, 610 00:29:08,730 --> 00:29:12,010 by to byť pravda. 611 00:29:12,010 --> 00:29:12,990 Dobrá. 612 00:29:12,990 --> 00:29:16,480 Tak, možno, že je jednoduché, iste, ak ste už oboznámení 613 00:29:16,480 --> 00:29:20,190 s takými, dúfajme, že ste sa nikdy zabudnúť, že najmä vizuálne, ako 614 00:29:20,190 --> 00:29:21,220 funkcie pracujú. 615 00:29:21,220 --> 00:29:23,000 >> Takže tam je viac než len GetString. 616 00:29:23,000 --> 00:29:26,020 Vnútri CS50 knižnice, je tu Celý zväzok funkcií, z ktorých 617 00:29:26,020 --> 00:29:29,510 sú aktivované len aby bolo jasné, že sme napísali tieto funkcie. 618 00:29:29,510 --> 00:29:33,610 Typicky, v C, takmer každý druhý funkcie budete používať, je malá. 619 00:29:33,610 --> 00:29:36,190 Ale my sme zámerne používať veľké písmená len aby bolo jasné, že sa jedná 620 00:29:36,190 --> 00:29:39,880 budú školiace kolesá druhu, že budeme používať len na pár týždňov, ktoré 621 00:29:39,880 --> 00:29:42,890 zjednodušiť proces získavania vstup od užívateľa. 622 00:29:42,890 --> 00:29:46,740 >> Knižnica CS50 nič nerobí že vy sami nemohli robiť ani 623 00:29:46,740 --> 00:29:50,230 len pomocou kódu z C oldschool učebnice. 624 00:29:50,230 --> 00:29:53,310 Ale opäť použijeme ich ako tréning kolesá druhov len za pár 625 00:29:53,310 --> 00:29:57,250 týždňov, takže môžeme zbaviť zložitosti, že budete čoskoro pochopiť, 626 00:29:57,250 --> 00:30:00,460 sám robiť niečo tak pomerne jednoduché, ako dostať 627 00:30:00,460 --> 00:30:02,080 vstup od užívateľa. 628 00:30:02,080 --> 00:30:05,540 >> Takže viete, že budete mať prístup na getchar, GetDouble - 629 00:30:05,540 --> 00:30:06,050 zdvojnásobí. 630 00:30:06,050 --> 00:30:07,050 Whats - a potom GetFloat. 631 00:30:07,050 --> 00:30:07,600 Čo je to float? 632 00:30:07,600 --> 00:30:09,382 Začnime tam. 633 00:30:09,382 --> 00:30:10,600 >> STUDENT: [nepočuteľné]. 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 desatinnou čiarkou. 636 00:30:12,120 --> 00:30:15,930 Tak vzhľadom k tomu, int je celé číslo, ktoré je len číslo s 0 až 9, 637 00:30:15,930 --> 00:30:18,940 niektorí počet opakovaní tejto zmluvy, plavák je niečo, 638 00:30:18,940 --> 00:30:20,100 s desatinnou čiarkou. 639 00:30:20,100 --> 00:30:26,090 A dvojité, medzitým, je tiež číslo s desatinnou čiarkou, ale 640 00:30:26,090 --> 00:30:28,160 čísla za desatinnou čiarkou bod, potenciálne. 641 00:30:28,160 --> 00:30:30,040 >> Tak sme sa vrátim k tomu onedlho. 642 00:30:30,040 --> 00:30:34,560 Ale zvyčajne, každý z týchto typov údaje, každý z týchto typov premenných 643 00:30:34,560 --> 00:30:39,380 že knižnica ako je tá naša môže vrátiť do môžete použiť rôzny počet bitov na 644 00:30:39,380 --> 00:30:40,290 ukladanie informácií. 645 00:30:40,290 --> 00:30:43,910 Typicky, Char, čo jednoducho znamená, jeden znak, používa 8 bitov. 646 00:30:43,910 --> 00:30:47,490 A to je vlastne v súlade s našimi byte dobrovoľníkov, ktorí minulý týždeň 647 00:30:47,490 --> 00:30:50,410 prišiel a predstavuje jednu ASCII znak naraz. 648 00:30:50,410 --> 00:30:51,850 Takže Char je 8 bitov. 649 00:30:51,850 --> 00:30:54,430 >> Plavák sa stane, že je 32 bitov, typicky. 650 00:30:54,430 --> 00:30:59,230 A dvojité, ako asi tušíte, je v skutočnosti 64 bitov, čo je jednoducho viac, 651 00:30:59,230 --> 00:31:01,360 čo znamená, že môžete mať väčšiu čísla alebo väčšou presnosťou. 652 00:31:01,360 --> 00:31:03,000 Ale na druhú stranu, o tom až inokedy. 653 00:31:03,000 --> 00:31:06,550 GetLongLong, zatiaľ, ale hlúpo menoval, je naozaj len 654 00:31:06,550 --> 00:31:10,770 Celé číslo, ktoré je dvakrát väčšie, dvakrát dlho, prípadne, ako bežné 655 00:31:10,770 --> 00:31:12,940 celé číslo, 64 bitov namiesto 32. 656 00:31:12,940 --> 00:31:14,560 A GetString sme používali. 657 00:31:14,560 --> 00:31:18,870 >> Ale ako sa ukázalo, v CS50 knižnici ktorý sa vykonáva, ako uvidíme, v 658 00:31:18,870 --> 00:31:23,560 forme dvoch súborov, z ktorých sa nazýva cs50.h má ďalšie dva 659 00:31:23,560 --> 00:31:24,770 dátové typy v ňom. 660 00:31:24,770 --> 00:31:29,700 Booleovské neexistujú C. Zahrievanie môžete simulovať len pomocou 0s a 1s 661 00:31:29,700 --> 00:31:30,850 po celú dobu svojej programy. 662 00:31:30,850 --> 00:31:35,500 Ale my sme v knižnici CS50 vytvorili symboly "true" a "false" 663 00:31:35,500 --> 00:31:38,580 predstavuje 1 a 0, takže nemusíte majú na pevný kódu niečo 664 00:31:38,580 --> 00:31:39,810 doslova ako 1 a 0. 665 00:31:39,810 --> 00:31:40,980 Ale uvidíme ty znova. 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, prečo som sa zmienil, že je to trochu biele lži pre túto chvíľu. 668 00:31:44,520 --> 00:31:46,660 Ale budeme Zlúpnite tohto vrstva onedlho. 669 00:31:46,660 --> 00:31:49,540 Ale teraz je reťazec postupnosť znakov. 670 00:31:49,540 --> 00:31:51,790 >> Medzitým, v C, je v skutočnosti majú rôzne dátové typy. 671 00:31:51,790 --> 00:31:53,200 Všimnite si, to sú malé. 672 00:31:53,200 --> 00:31:56,960 Takže funkcie, ktoré videl pred chvíľou sú funkcie Napísal CS50 že 673 00:31:56,960 --> 00:32:02,310 vráti vám hodnotu, ktorá spadá do jednej z týchto kategórií. 674 00:32:02,310 --> 00:32:06,730 >> A pár listov podvádzať len zasadiť semeno tu. printf nie je len 675 00:32:06,730 --> 00:32:08,600 sa% s ako zástupné symboly. 676 00:32:08,600 --> 00:32:13,490 Trvá% d pre desiatkovej celé čísla, alebo% i bude fungovať rovnako. 677 00:32:13,490 --> 00:32:19,450 % F je plávajúca bodovej hodnoty. % C je pre char, ak chcete len pripojiť jeden 678 00:32:19,450 --> 00:32:23,510 znak do reťazca predformátovaného ako sme robili, môžete použiť% c 679 00:32:23,510 --> 00:32:28,490 >> A potom, trochu nechutne,% je LLD na dlhú desiatkové celé číslo, 680 00:32:28,490 --> 00:32:31,050 čo len znamená, že ak budete potrebovať naozaj veľké číslo, a používate niečo 681 00:32:31,050 --> 00:32:35,450 tzv long long, čo prídeme späť na pset, môžete použiť% LLD 682 00:32:35,450 --> 00:32:40,700 printf povedať, pripojte naozaj veľký integer tu ako svoje druhé alebo 683 00:32:40,700 --> 00:32:41,830 nejaký iný dôvod. 684 00:32:41,830 --> 00:32:45,700 >> A konečne, som sľúbil, že je tu niekoľko ďalších útek 685 00:32:45,700 --> 00:32:47,670 sekvencie, ktoré printf podporuje. 686 00:32:47,670 --> 00:32:49,160 Videli sme spätné lomítko-n. 687 00:32:49,160 --> 00:32:50,510 Spätné lomítko-r môžete vidieť. 688 00:32:50,510 --> 00:32:51,780 Je to niečo ako old-school vec. 689 00:32:51,780 --> 00:32:55,920 Ak ste niekedy používali skutočný písací stroj roky Pred a vytiahol na kľučky 690 00:32:55,920 --> 00:32:59,810 ktoré nielen otáčať kolieska presunúť lineup, ale tiež sa sťahoval 691 00:32:59,810 --> 00:33:03,730 Celá vec celú cestu späť k doľava, dobre, lomítko-r len 692 00:33:03,730 --> 00:33:06,480 v podstate sa pohybuje kurzor späť na začiatku riadku 693 00:33:06,480 --> 00:33:07,830 bez pohybu nadol. 694 00:33:07,830 --> 00:33:09,780 Ale na druhú stranu, o tom viac, možno v budúcnosti. 695 00:33:09,780 --> 00:33:13,670 >> Spätné lomítko úvodzovky, spätné lomítko, úvodzovky, spätné lomítko spätné lomítko je 696 00:33:13,670 --> 00:33:16,600 riešenie malinké hádanky Som spomínal predtým. 697 00:33:16,600 --> 00:33:18,920 A spätné lomítko-0 je vlastne celkom zaujímavé. 698 00:33:18,920 --> 00:33:21,470 Ale vrátime sa že onedlho. 699 00:33:21,470 --> 00:33:25,640 >> Tak ma nechaj ísť do teraz, CS50 spotrebič, a poďme skutočne 700 00:33:25,640 --> 00:33:28,930 rýchle zahriatie s jedným z príkladov sme sa už, a potom prejsť na 701 00:33:28,930 --> 00:33:31,160 niečo trochu zložitejšie. 702 00:33:31,160 --> 00:33:34,980 Takže keď otvorím 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ôžem to urobiť - 705 00:33:38,460 --> 00:33:39,820 dovoľ mi zavrieť to okno tam - 706 00:33:39,820 --> 00:33:42,720 prostredníctvom tejto ikony sa tu, gedit, v ľavom dolnom rohu 707 00:33:42,720 --> 00:33:44,170 rohu vedľa menu. 708 00:33:44,170 --> 00:33:48,670 >> Chystám sa ísť dopredu a rozvíjať, a uložiť tento príklad do, povedzme, John 709 00:33:48,670 --> 00:33:49,660 Harvard je zložka. 710 00:33:49,660 --> 00:33:52,690 John Harvard je zložka je len jeho domov adresár, kde všetky jeho súbory žije 711 00:33:52,690 --> 00:33:53,340 v predvolenom nastavení. 712 00:33:53,340 --> 00:33:58,410 A ja idem uložiť ako súbor s názvom ahoj-0.c. 713 00:33:58,410 --> 00:34:01,260 A ja som zvolil tento názov len tak, že zoradia sa ukážkový kód v 714 00:34:01,260 --> 00:34:04,210 Samozrejme WWW stránky a YouTube videá online. 715 00:34:04,210 --> 00:34:06,320 >> Takže teraz idem začať napísať svoj prvý program. 716 00:34:06,320 --> 00:34:08,469 Dovoľte mi priblížiť čitateľnosti. 717 00:34:08,469 --> 00:34:12,760 A ja idem ďalej a hovoria, int Hlavné void, čo je rovnako ako, že 718 00:34:12,760 --> 00:34:14,900 žltá puzzle kus, ktorý spustí program. 719 00:34:14,900 --> 00:34:18,290 Som sa dostal do zvyku cez rokov som otvoril zložená zátvorka, potom 720 00:34:18,290 --> 00:34:22,000 i zatvorenie a potom ísť späť do tam, kde chcem, aby môj kód len 721 00:34:22,000 --> 00:34:24,630 pretože mi to pomáha udržať všetko vyvážený, najmä moje 722 00:34:24,630 --> 00:34:25,880 program dostane dlho. 723 00:34:25,880 --> 00:34:29,239 >> A teraz, tu, ja idem do toho a povedal, printf, citovať Unquote, 724 00:34:29,239 --> 00:34:34,330 hello world, lomítko-n, v blízkosti citujem, zatvoriť zátvorka, bodkočiarku. 725 00:34:34,330 --> 00:34:38,100 Takže som len opakovať všetko, čo sme bral ako samozrejmosť tak ďaleko. 726 00:34:38,100 --> 00:34:39,270 Teraz idem oddialiť. 727 00:34:39,270 --> 00:34:43,030 >> A to okno terminálu tu, čo smiem robiť v tejto čiernej 728 00:34:43,030 --> 00:34:44,389 a biela okná? 729 00:34:44,389 --> 00:34:46,977 Čo môžem použiť pre? 730 00:34:46,977 --> 00:34:49,770 Tak toto je miesto, kde som spúšťať príkazy a kde by som mohol zostaviť veci. 731 00:34:49,770 --> 00:34:50,620 A budem držať to jednoduchý. 732 00:34:50,620 --> 00:34:52,780 Budem používať program tzv značka, ktorá nie je 733 00:34:52,780 --> 00:34:54,020 technicky kompilátor. 734 00:34:54,020 --> 00:34:56,360 Kompilátor sa volá zvonenie, ale vrátime sa k tomu v 735 00:34:56,360 --> 00:34:57,190 týždeň alebo dva čas. 736 00:34:57,190 --> 00:35:03,410 >> Pre túto chvíľu som len tak písať, aby ahoj-0, ale tí z vás, ktorí boli 737 00:35:03,410 --> 00:35:07,050 porovnanie vo vašich mysliach, čo som práve napísal, čo som mal napísané môžu 738 00:35:07,050 --> 00:35:10,180 už viete, že som to urobil niečo zle. 739 00:35:10,180 --> 00:35:12,160 Teraz, tam je zrejmé, že niektoré chyby. 740 00:35:12,160 --> 00:35:16,742 Než som sa ani pozrieť na to, čo oni sú, každý myšlienky na to, čo som urobil zle? 741 00:35:16,742 --> 00:35:18,590 >> ŠTUDENTI: [Prechodová Hlasy]. 742 00:35:18,590 --> 00:35:18,840 >> DAVID Malan: Jo. 743 00:35:18,840 --> 00:35:20,640 Chýba mi v knižnici je hlavičkový súbor. 744 00:35:20,640 --> 00:35:24,240 Každý z týchto súborov. H sa nazývajú záhlavie súbory, a tým, že spoločne 745 00:35:24,240 --> 00:35:25,680 patrí k veciam tzv knižnice. 746 00:35:25,680 --> 00:35:28,030 Knižnice sú len kusy kódu že ostatní ľudia písali. 747 00:35:28,030 --> 00:35:32,140 Takže štandard [? i?] Knižnica je kolekcia súborov, ktoré obsahujú kód 748 00:35:32,140 --> 00:35:33,330 že ostatní ľudia písali. 749 00:35:33,330 --> 00:35:34,820 >> Takže mi chýba, že. 750 00:35:34,820 --> 00:35:36,520 Tak prečo som stále ste chybu? 751 00:35:36,520 --> 00:35:40,840 No, dovoľte mi, aby som sa posunúť späť do moje okno terminálu tu. 752 00:35:40,840 --> 00:35:44,310 A bohužiaľ, v C, rovnako ako v mnohých programovacie jazyky, najmä 753 00:35:44,310 --> 00:35:47,830 ak je to pre vás nové, chyba správy sú presné, ale sú tiež 754 00:35:47,830 --> 00:35:48,620 veľmi tajomný. 755 00:35:48,620 --> 00:35:51,720 A chyba tu, v červenej farbe, je "Implicitne deklarovať funkcie knižnice 756 00:35:51,720 --> 00:35:57,660 printf s typom, "a potom to zvitky na ďalší riadok, "int const char *, 757 00:35:57,660 --> 00:36:00,220 ... "Len sa naozaj ohromujúci rýchlo. 758 00:36:00,220 --> 00:36:04,420 >> Ale to, čo by ste mali začať robiť, ak opäť nová k tomu všetkému, je len 759 00:36:04,420 --> 00:36:06,010 začať hľadať kľúčové slová. 760 00:36:06,010 --> 00:36:08,770 Jasne, mohol by som nerozumel polovice zo slov, som videl len zatiaľ. 761 00:36:08,770 --> 00:36:10,140 Budete však za týždeň č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 mala začať onedlho sa osviežiť pamäť v poriadku, printf. 764 00:36:14,310 --> 00:36:15,210 Niečo je zle s printf. 765 00:36:15,210 --> 00:36:16,580 Už som hláskovať zle? 766 00:36:16,580 --> 00:36:18,130 Nie, to nevyzerá ako - oh. 767 00:36:18,130 --> 00:36:21,350 Nemôžem používať, ak učím kompilátor, že to existuje. 768 00:36:21,350 --> 00:36:25,220 A tak opäť chodiť so svojimi inštinktami, aj keď nemáte skutočne pochopiť 769 00:36:25,220 --> 00:36:26,510 skutočné chybové správy. 770 00:36:26,510 --> 00:36:30,240 >> A skutočne, riešenie je tu len je to v hornej časti súboru 771 00:36:30,240 --> 00:36:34,340 ako to, že resaving môj súbor s Ovládanie-S alebo menu Súbor. 772 00:36:34,340 --> 00:36:36,730 A keď som sa teraz vrátiť sa sem, Chystám sa vyčistiť to. 773 00:36:36,730 --> 00:36:39,150 Control-L je len príjemný spôsob, vymazať obrazovku. 774 00:36:39,150 --> 00:36:44,870 A potom budem písať "aby ahoj 0 "Enter a teraz som ešte vidieť 775 00:36:44,870 --> 00:36:47,710 kryptických postupnosť symbolov, ale vrátime k tomu. 776 00:36:47,710 --> 00:36:49,230 To je to, čo urobiť, je robiť za vás. 777 00:36:49,230 --> 00:36:52,590 Je to automatizáciou procesu prijímania docela nepríjemné príkaz zahŕňajúce 778 00:36:52,590 --> 00:36:54,050 Zvonenia, vlastné kompilátor. 779 00:36:54,050 --> 00:36:57,460 Ale je fakt, že som žiadne chyby znamená, že táto vec by malo fungovať. 780 00:36:57,460 --> 00:37:00,630 >> Takže som teraz robiť - dovoľte mi priblížiť znova - 781 00:37:00,630 --> 00:37:07,070 ./hello-0 Enter, a naozaj, vidím "Hello, world". Takže poďme sa zlepšiť 782 00:37:07,070 --> 00:37:12,105 to niekedy tak trochu len na replikáciu Kroky, ktoré sme zamýšľali. 783 00:37:12,105 --> 00:37:15,370 Chystám sa premenovať to s Uložiť ako hello1.c. 784 00:37:15,370 --> 00:37:20,300 A teraz budem deklarovať premennú volal meno, takže string name, 785 00:37:20,300 --> 00:37:23,420 a ja idem dať v ňom hodnota citátom-Unquote 786 00:37:23,420 --> 00:37:27,030 D - V-I-D close-quote bodkočiarkou. 787 00:37:27,030 --> 00:37:31,150 A teraz idem nahradiť "svet" s tým, čo zástupný reťazec? 788 00:37:31,150 --> 00:37:32,200 % S. 789 00:37:32,200 --> 00:37:35,040 >> A teraz, ako by mnohí argumenty printf trvať tentoraz? 790 00:37:35,040 --> 00:37:35,700 Tak dva. 791 00:37:35,700 --> 00:37:37,090 Tak som sa ísť mimo úvodzoviek. 792 00:37:37,090 --> 00:37:39,330 Píšem "meno" po čiarkou. 793 00:37:39,330 --> 00:37:41,550 Ale ja som urobil niečo inak zle tentoraz. 794 00:37:41,550 --> 00:37:43,940 Ale predpokladajme, že som to neurobil Uvedomujeme si, že ešte. 795 00:37:43,940 --> 00:37:44,910 Nechaj ma ísť sem. 796 00:37:44,910 --> 00:37:48,850 >> A upozornenie, taky som už trochu nudí písanie ", aby ahoj 0" všetci 797 00:37:48,850 --> 00:37:50,180 čas, "make" a to všetko. 798 00:37:50,180 --> 00:37:53,270 Tak to dopadá, v Linus môžete často narazí na šípku nahor na vašom 799 00:37:53,270 --> 00:37:56,850 klávesnice a môžete skutočne prechádzať cez všetky príkazy, ktoré som 800 00:37:56,850 --> 00:37:58,830 vykonaný skôr práve teraz. 801 00:37:58,830 --> 00:38:02,040 Takže keď to urobím, hore, hore, je tu, aby ahoj 0. 802 00:38:02,040 --> 00:38:02,610 Nechcem to. 803 00:38:02,610 --> 00:38:05,450 Len chcem zmeniť na ahoj 1 tentoraz Enter. 804 00:38:05,450 --> 00:38:07,620 Nakoniec, bude to ušetrí nejaký čas. 805 00:38:07,620 --> 00:38:08,150 >> Dobrá. 806 00:38:08,150 --> 00:38:09,520 Bohužiaľ, je to ich chyba. 807 00:38:09,520 --> 00:38:10,980 Takže dovoľte mi posunúť nahor. 808 00:38:10,980 --> 00:38:13,120 Vyzerá to ako naozaj porážal tento program. 809 00:38:13,120 --> 00:38:16,530 Myslím, že môj bože, je to dva riadky kódu, a jeho 10 riadkov chýb. 810 00:38:16,530 --> 00:38:18,800 Ale pozrite sa na hornom prvý. 811 00:38:18,800 --> 00:38:21,640 Použitie nelegálnej identifikátora reťazca. 812 00:38:21,640 --> 00:38:23,270 Už som na mysli štandardné i n? 813 00:38:23,270 --> 00:38:23,930 Nie, ja nie. 814 00:38:23,930 --> 00:38:24,940 Myslel som reťazec. 815 00:38:24,940 --> 00:38:29,390 >> Ale kde je reťazcové premenné Typ vyhlásil, dd hovoríme? 816 00:38:29,390 --> 00:38:30,730 Takže je to v CS50 knižnice. 817 00:38:30,730 --> 00:38:33,740 Takže to nebude stačiť, a to ako prvý pár týždňov, stačí použiť 818 00:38:33,740 --> 00:38:34,860 čo C nám dáva. 819 00:38:34,860 --> 00:38:38,120 Som tiež ísť sem, a ja mohol dať nad alebo pod, ale budem 820 00:38:38,120 --> 00:38:40,340 len držať je abecedný udržať veci usporiadane. 821 00:38:40,340 --> 00:38:43,470 Chystám sa zahŕňajú cs50.h, ktorý je predinštalovaný na 822 00:38:43,470 --> 00:38:44,900 Ste na CS50 spotrebiča. 823 00:38:44,900 --> 00:38:47,640 A je to open source, takže aj ľudia na internete je možné ho použiť na ich 824 00:38:47,640 --> 00:38:48,450 vlastné počítače. 825 00:38:48,450 --> 00:38:50,700 Ale to príde s CS50 spotrebiča. 826 00:38:50,700 --> 00:38:55,320 >> Takže teraz mi dovoľte vrátiť sa a znova kompilujte to s make ahoj 1. 827 00:38:55,320 --> 00:38:55,710 Sakra. 828 00:38:55,710 --> 00:38:57,240 Ešte ďalšie chyba. 829 00:38:57,240 --> 00:38:59,370 Dovoľte mi, prejdite do prvej, hoci. 830 00:38:59,370 --> 00:39:00,630 To je trochu zložitejšie. 831 00:39:00,630 --> 00:39:03,830 Multi-znak znaková konštanta. 832 00:39:03,830 --> 00:39:04,890 To nie je mi pomáha. 833 00:39:04,890 --> 00:39:08,220 Ale oznámenia, zvonenie je aspoň trochu trochu slušný, čím sa trochu 834 00:39:08,220 --> 00:39:11,890 zelená strieška symbol, je to hovorí Tu je miesto, kde som to posral. 835 00:39:11,890 --> 00:39:16,160 Prečo sa ukazuje, že sa len málo zelená šípka, do jednoduchých úvodzoviek ďalšie 836 00:39:16,160 --> 00:39:18,290 na moje meno? 837 00:39:18,290 --> 00:39:20,880 >> Takže to je jedna z vecí, ktoré len zvyknúť, najmä ak ste boli 838 00:39:20,880 --> 00:39:23,980 programovania v Pythone, alebo JavaScript, alebo iných jazykoch, pokiaľ 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 Ak deklarovať reťazec, ktorý je sekvencie 0 alebo viac znakov, 842 00:39:29,520 --> 00:39:32,280 v skutočnosti je nutné použiť úvodzovky. 843 00:39:32,280 --> 00:39:36,670 Takže som vlastne potrebujete zmeniť toto späť otvorte ponuku, zatvorte ponuku, s 844 00:39:36,670 --> 00:39:37,800 dvojité úvodzovky. 845 00:39:37,800 --> 00:39:41,610 Jediné citácie majú svoje miesto, ale iba v prípade, že používate jednotlivca 846 00:39:41,610 --> 00:39:44,100 znakov, ale o tom až inokedy. 847 00:39:44,100 --> 00:39:46,550 Pre túto chvíľu, úvodzovky sú nevyhnutné. 848 00:39:46,550 --> 00:39:50,460 >> Takže teraz, nechaj ma ísť späť do môjho terminálu okná, aby ahoj 1. 849 00:39:50,460 --> 00:39:51,450 A kto verí? 850 00:39:51,450 --> 00:39:53,800 Je tento program teraz bude zostaviť správne? 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 tri z nás si myslia toto. 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 vlastne robil. 857 00:40:02,440 --> 00:40:05,130 Takže tam žiadne chyby tentoraz, a to aj aj keď tento program je dostal trochu 858 00:40:05,130 --> 00:40:05,840 zložitejšie. 859 00:40:05,840 --> 00:40:10,110 Keby som teraz robiť bodka lomka Dobrý deň, 1, Enter, to bude hovoriť "Ahoj, David." 860 00:40:10,110 --> 00:40:11,750 >> Ale poďme urobiť tretej iterácii z toho, kde 861 00:40:11,750 --> 00:40:13,380 Program je naozaj dynamický. 862 00:40:13,380 --> 00:40:16,770 Nechaj ma ísť ďalej a zmeniť súbor meno, len na súlad s 863 00:40:16,770 --> 00:40:20,410 súbory, ktoré budete mať k dispozícii Vám potom online. 864 00:40:20,410 --> 00:40:21,620 Enter. 865 00:40:21,620 --> 00:40:25,510 A teraz idem na, a nie uložiť "David" pevný kódované tu. 866 00:40:25,510 --> 00:40:28,826 Čo som mohol robiť veľmi jednoducho tento program zdokonaliť? 867 00:40:28,826 --> 00:40:30,520 >> Mohol by som zavolať GetString. 868 00:40:30,520 --> 00:40:33,240 To by mohlo byť trochu non-zrejmé, čo je sa stane, tak idem 869 00:40:33,240 --> 00:40:38,470 skutočne pridať ďalší riadok, printf, a hovoriť meno, hrubého čreva, v blízkosti ponuku, stačí 870 00:40:38,470 --> 00:40:40,790 dať užívateľovi výzva na obrazovke. 871 00:40:40,790 --> 00:40:42,980 A teraz idem sem, a ja som bude používať svoju klávesovú skratku. 872 00:40:42,980 --> 00:40:47,680 Chystám sa ísť hore, hore, a zmeniť ahoj ahoj 1 až 2, Enter. 873 00:40:47,680 --> 00:40:49,260 A našťastie, robím pokroky. 874 00:40:49,260 --> 00:40:52,720 >> A teraz idem hore na dot slash Dobrý deň, 875 00:40:52,720 --> 00:40:54,690 zmeniť na 2, Enter. 876 00:40:54,690 --> 00:40:55,650 A teraz môj program - 877 00:40:55,650 --> 00:40:57,700 Budem priblížiť - je stále trochu krajší. 878 00:40:57,700 --> 00:41:02,190 Názov bude, povedzme, že Rob Tentoraz, Enter, ahoj, Robe. 879 00:41:02,190 --> 00:41:03,260 Môžeme to urobiť znovu. 880 00:41:03,260 --> 00:41:05,360 Meno Lauren, Enter. 881 00:41:05,360 --> 00:41:07,820 Meno, Joseph, Enter. 882 00:41:07,820 --> 00:41:11,596 Meno, skúsme sa ťažké, Enter. 883 00:41:11,596 --> 00:41:12,410 Eh. 884 00:41:12,410 --> 00:41:14,680 V skutočnosti to nie je chyba. 885 00:41:14,680 --> 00:41:16,090 Takže je to trochu škaredé. 886 00:41:16,090 --> 00:41:18,640 Takže možno by sme mohli vyriešiť v budúcnosti, teraz nie. 887 00:41:18,640 --> 00:41:20,840 >> Ale ako by ste inštinktívne ísť o riešenie 888 00:41:20,840 --> 00:41:21,990 že konkrétna výzva? 889 00:41:21,990 --> 00:41:23,710 To len vyzerá hlúpo. 890 00:41:23,710 --> 00:41:27,320 Ako sa vyhnúť veci budete vyzerať hlúpo? 891 00:41:27,320 --> 00:41:29,890 Tak by sme mohli urobiť, OK, som počul pár vecí, stav a slučky. 892 00:41:29,890 --> 00:41:33,340 Mohli by sme použiť jednu, čo je podmienka, pre kontrolu čo je dĺžka reťazca 893 00:41:33,340 --> 00:41:34,190 Užívateľ nám dal? 894 00:41:34,190 --> 00:41:37,100 A či je to 0, je to len citovať Unquote, oni jednoducho stlačiť Enter, potom 895 00:41:37,100 --> 00:41:38,930 možno by som mal kričať na ne a vyzve ich znova. 896 00:41:38,930 --> 00:41:39,970 Ale ako výzvu znova? 897 00:41:39,970 --> 00:41:44,230 No, počul som tiež slučku, a ja som mohol urobiť to znova a znova a znova 898 00:41:44,230 --> 00:41:47,010 upozornenie užívateľa na rovnakú vec. 899 00:41:47,010 --> 00:41:48,880 >> Dobre, poďme urobiť jednu ďalšiu príklad pomocou rôznych 900 00:41:48,880 --> 00:41:50,620 funkcie v knižnici CS50. 901 00:41:50,620 --> 00:41:52,330 Dovoľte mi na záver tohto súboru. 902 00:41:52,330 --> 00:41:53,510 Dovoľte mi, aby som vytvoriť novú. 903 00:41:53,510 --> 00:41:58,510 A ja hovorím adder.c, len preto, že je to ľahké urobiť jednoduchú aritmetiku, 904 00:41:58,510 --> 00:42:00,890 aj keď to bude úplne neohromující s tým, čo by ste mohli urobiť 905 00:42:00,890 --> 00:42:02,250 s akýmkoľvek moderným počítačom. 906 00:42:02,250 --> 00:42:03,750 >> Ale nechajte ma ísť dopredu a teraz - 907 00:42:03,750 --> 00:42:10,680 Som sa poučil poslednej dobe - vrátane cs50.h, patrí stdio.h, int 908 00:42:10,680 --> 00:42:14,170 Hlavné void, čo teraz, budem len vziať na slepej viere, ale budeme predpokladať, 909 00:42:14,170 --> 00:42:16,380 že pochopí, čo to znamená, že onedlho. 910 00:42:16,380 --> 00:42:21,030 A ja som niečo povedať ako "daj mi int." 911 00:42:21,030 --> 00:42:22,140 >> A teraz, ako sa dostanem int? 912 00:42:22,140 --> 00:42:26,820 Chcem konečne deklarovať premennú volal x typu int a 913 00:42:26,820 --> 00:42:29,240 uložiť do nej celé číslo od užívateľa. 914 00:42:29,240 --> 00:42:29,970 Takže to bolo sústo. 915 00:42:29,970 --> 00:42:35,680 Ale ak niekto chce navrhnúť, ako môžem vyhlásiť celočíselnú názvom 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 naozaj tak jednoduché. 918 00:42:37,430 --> 00:42:38,240 Dajte mi int. 919 00:42:38,240 --> 00:42:39,070 Nazvime to x. 920 00:42:39,070 --> 00:42:40,580 Teraz som použiť operátoru priradenie. 921 00:42:40,580 --> 00:42:43,400 A ako mám uložiť od vľavo hodnotu pre užívateľa? 922 00:42:43,400 --> 00:42:47,310 Nechcem volať GetString, samozrejme, ale vezmi_int. 923 00:42:47,310 --> 00:42:49,060 Akékoľvek argumenty? 924 00:42:49,060 --> 00:42:49,350 Nie. 925 00:42:49,350 --> 00:42:51,870 Takže je to otvorené zátvorka, v blízkosti zátvorka okamžite, a potom 926 00:42:51,870 --> 00:42:53,440 bodkočiarka končí linku. 927 00:42:53,440 --> 00:42:54,930 >> Teraz mi dovoľte to znova. 928 00:42:54,930 --> 00:42:57,070 Daj mi ešte int. 929 00:42:57,070 --> 00:43:01,850 Tentoraz urobím int, poďme hovoria y, rovná vezmi_int. 930 00:43:01,850 --> 00:43:05,060 A teraz mi dovoľte niečo super-jednoduchý ako nejaký matematike. 931 00:43:05,060 --> 00:43:14,340 Takže printf, súčet% d je zástupný symbol pre int. 932 00:43:14,340 --> 00:43:20,030 A% d, obdobie, spä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 nie je vlastne matematika. 935 00:43:21,670 --> 00:43:25,500 Ale ak chcem povedať, súčet tohto hodnotu a táto hodnota je rovná tejto 936 00:43:25,500 --> 00:43:29,320 iná hodnota, koľko argumentov do Celkom by som mal dávať printf, 937 00:43:29,320 --> 00:43:30,520 nakoniec? 938 00:43:30,520 --> 00:43:31,420 Takže štyri, že jo? 939 00:43:31,420 --> 00:43:33,790 Tento reťazec a potom tri hodnoty. 940 00:43:33,790 --> 00:43:37,560 Takže x je prvá chcem byť zapojený ako prvý na% d 941 00:43:37,560 --> 00:43:39,270 y bude ďalej. 942 00:43:39,270 --> 00:43:42,030 >> A teraz som tak trochu chcel povedať z, ale z neexistuje. 943 00:43:42,030 --> 00:43:43,190 Ale to nie je veľký problém. 944 00:43:43,190 --> 00:43:45,440 Vzhľadom k tomu, čo by ste robili, inštinktívne, najmä ak ste mali 945 00:43:45,440 --> 00:43:47,820 grafickým kalkulátorom, čo píšete? 946 00:43:47,820 --> 00:43:48,760 Ako sa o X plus Y? 947 00:43:48,760 --> 00:43:50,200 Takže to nie je skutočný variabilné. 948 00:43:50,200 --> 00:43:51,820 Je to len súčtom dvoch ostatné premenné. 949 00:43:51,820 --> 00:43:53,170 A to je úplne legitímne. 950 00:43:53,170 --> 00:43:56,630 C iste chápe jednoduché aritmetický takhle. 951 00:43:56,630 --> 00:43:58,450 >> Bodkočiarka, zachrániť. 952 00:43:58,450 --> 00:44:02,080 Teraz ma nechaj ísť sem dole a Zadajte aby zmija, Enter. 953 00:44:02,080 --> 00:44:04,100 Žiadna chyba, tak to je pokrok príliš. 954 00:44:04,100 --> 00:44:04,890 Zadajte zmija. 955 00:44:04,890 --> 00:44:07,100 A ďalšie klávesové skratky, ak začnete nudiť 956 00:44:07,100 --> 00:44:08,760 so všetkými príkazy - 957 00:44:08,760 --> 00:44:12,650 ak začnete zadaním príkazu ako bodka lomítko reklamu, a to je, kde sa vaše 958 00:44:12,650 --> 00:44:16,020 nuda kopy, väčšinou je možné zasiahnuť Karta mať počítač dokončiť 959 00:44:16,020 --> 00:44:20,510 Zvyšok vety pre vás, ak to nie je nejednoznačné, čo by malo prísť po reklame. 960 00:44:20,510 --> 00:44:23,950 >> Tak nechaj ma ísť napred teraz a kliknite na tlačidlo Enter. 961 00:44:23,950 --> 00:44:27,490 Daj mi int, 1, 2, a Našťastie, je to 3. 962 00:44:27,490 --> 00:44:29,900 Ale ako vždy, programy testovania by nemali obmedziť na 963 00:44:29,900 --> 00:44:30,820 Len sa snažím raz. 964 00:44:30,820 --> 00:44:35,560 Skúsim rohovú prípad, ako negatívne 1, daj mi jedno, a že je 965 00:44:35,560 --> 00:44:36,210 kontroly sa tiež. 966 00:44:36,210 --> 00:44:38,870 A ja chcieť robiť viac dôkladného testovania, ale som si celkom 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, teraz poďme skúsiť iný program že tentoraz používa 969 00:44:43,110 --> 00:44:44,620 trochu iné syntaxe. 970 00:44:44,620 --> 00:44:46,100 Dovoľte mi, aby som vytvoriť nový súbor. 971 00:44:46,100 --> 00:44:51,050 Zavolám tento conditions0.c na linku s nejakým ukážkový kód on-line. 972 00:44:51,050 --> 00:44:55,550 A nechaj ma ísť ďalej a robiť zahŕňajú cs50.h, zahŕňajú 973 00:44:55,550 --> 00:45:00,320 stdio.h, v hlavnom prázdnoty - 974 00:45:00,320 --> 00:45:01,030 OK. 975 00:45:01,030 --> 00:45:01,850 Tam ideme. 976 00:45:01,850 --> 00:45:03,010 Máme štandardný štandardný text. 977 00:45:03,010 --> 00:45:08,170 >> A tentokrát budem hovoriť printf, "Rád by som int, prosím," len na 978 00:45:08,170 --> 00:45:10,030 aby sa výzva trochu priateľskejší. 979 00:45:10,030 --> 00:45:11,620 A teraz chcem, aby sa int od užívateľa. 980 00:45:11,620 --> 00:45:15,010 Budem hovoriť n tentoraz, len pretože n znie ako číslo. 981 00:45:15,010 --> 00:45:18,140 vezmi_int, a teraz, čo robiť Chcem s tým robiť? 982 00:45:18,140 --> 00:45:21,640 No, pokiaľ je n - a ja budem priblížiť - 983 00:45:21,640 --> 00:45:25,930 ak n je väčšie ako 0, chcem urobiť nasledovné - 984 00:45:25,930 --> 00:45:36,060 printf "Vybral si si kladné číslo." Inak, budem písať printf "Ty 985 00:45:36,060 --> 00:45:37,870 vybral negatívny 986 00:45:37,870 --> 00:45:39,650 číslo. "Dobre. 987 00:45:39,650 --> 00:45:44,410 Takže tento program, aj keď som to urobil rýchlo, vyzerá dobre syntakticky. 988 00:45:44,410 --> 00:45:45,010 Skúsim to. 989 00:45:45,010 --> 00:45:46,890 Skontrolujte stav 0. 990 00:45:46,890 --> 00:45:47,710 Zdá sa, že na spustenie. 991 00:45:47,710 --> 00:45:49,230 Stav 0, zadajte. 992 00:45:49,230 --> 00:45:51,910 Poďme dať mu INT 50. 993 00:45:51,910 --> 00:45:53,160 Vybral som si kladné číslo. 994 00:45:53,160 --> 00:45:54,230 Skúsme to znova. 995 00:45:54,230 --> 00:45:54,930 Stav 0. 996 00:45:54,930 --> 00:45:56,260 Negatívne 50. 997 00:45:56,260 --> 00:45:57,290 Vybral som si záporné číslo. 998 00:45:57,290 --> 00:46:00,350 >> Ale teraz mi dovoľte, aby som vybrať, čo budeme držať volanie rohovú prípadu, čo je viac 999 00:46:00,350 --> 00:46:04,702 Zaujímavý prípad, že si myslíte, že Môže vám nejaké ťažkosti, 0. 1000 00:46:04,702 --> 00:46:07,940 Teraz som si istý, že je to jedna z tie rohové prípady, keď nula je 1001 00:46:07,940 --> 00:46:12,330 ani pozitívne, ani negatívne, takže moja programu, aj keď v syntakticky 1002 00:46:12,330 --> 00:46:15,440 opraviť - to kompiluje to beží - nie je logicky správne. 1003 00:46:15,440 --> 00:46:21,050 Takže to, čo je jednoduché, oprava tu, ak chcem zistiť, či chcem zvládnuť n 1004 00:46:21,050 --> 00:46:23,840 rovná 0 samostatne? 1005 00:46:23,840 --> 00:46:32,980 >> Takže ak je n rovné 0, potom chcem povedať, niečo ako printf "Vybral si si 0". 1006 00:46:32,980 --> 00:46:33,990 Skúsim to teraz. 1007 00:46:33,990 --> 00:46:38,320 Nechaj ma ísť späť, zrušte moje okno a prekompilovať. 1008 00:46:38,320 --> 00:46:38,690 Hm. 1009 00:46:38,690 --> 00:46:39,770 Jedna chyba generovať. 1010 00:46:39,770 --> 00:46:41,630 Ale ja si chcete skontrolovať Ak n rovné 0. 1011 00:46:41,630 --> 00:46:44,230 1012 00:46:44,230 --> 00:46:47,720 >> Takže znova, ďalšie blbosť zvyknúť, znamienko rovná sa 1013 00:46:47,720 --> 00:46:48,910 operátor priradenia. 1014 00:46:48,910 --> 00:46:52,240 Takže je to vlastne chyba v tom, že technicky, aj keď kompilátor 1015 00:46:52,240 --> 00:46:56,450 ma ochránil sám pred sebou, mali by sme technicky kopírovanie 0 do n, ktorý 1016 00:46:56,450 --> 00:46:57,590 nie je to, čo chcem. 1017 00:46:57,590 --> 00:47:00,950 Chcem pre testovanie rovnosti sa rovná rovná. 1018 00:47:00,950 --> 00:47:03,390 A tak, že teraz môže byť moja lepšie riešenie. 1019 00:47:03,390 --> 00:47:07,810 >> Dovoľte mi, aby som v skutočnosti ho uložiť to ako, povedzme, podmínky1, aby nové a lepšie. 1020 00:47:07,810 --> 00:47:10,480 Takže teraz, keď som překompilovat to, že by podmienky - 1021 00:47:10,480 --> 00:47:16,960 Jejda - aby podmínky1 bodka lomka podmínky1, Enter, "Rád by som int, 1022 00:47:16,960 --> 00:47:18,760 prosím. "Ja idem Začnite písať 50. 1023 00:47:18,760 --> 00:47:19,660 Je to stále dobré. 1024 00:47:19,660 --> 00:47:21,200 Negatívne 50, stále dobrá. 1025 00:47:21,200 --> 00:47:24,920 0, a to skutočne zistené že som si vybral 0. 1026 00:47:24,920 --> 00:47:28,200 >> Takže čo viac môžem teraz s tým? 1027 00:47:28,200 --> 00:47:32,280 No, môžeme určite viac zložité veci. 1028 00:47:32,280 --> 00:47:37,240 Ale čo by som chcel navrhnúť, je že sme sa nakoniec na túto poznámku tu. 1029 00:47:37,240 --> 00:47:41,680 Ak sa vytiahnuť to, uvidíš, snáď, Obľúbený kreslený seriál tvoj 1030 00:47:41,680 --> 00:47:43,326 dodnes si možno nikdy pochopiť. 1031 00:47:43,326 --> 00:47:46,550 1032 00:47:46,550 --> 00:47:49,520 A to je o kvalite smiechu mali by ste si vtipy SK. 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 viac presvedčivo, som myslel, že nám trochu upútavku na pondelok. 1035 00:47:54,900 --> 00:47:56,430 Takže sme začali používať celé čísla. 1036 00:47:56,430 --> 00:47:57,510 Máme len plaváky. 1037 00:47:57,510 --> 00:48:00,120 Dokonca sme len štvorhre ktoré opäť vám čísla 1038 00:48:00,120 --> 00:48:01,390 Po desatinných miest. 1039 00:48:01,390 --> 00:48:04,230 >> Ale ukázalo sa, že pláva na hladine a dvojlôžkové a, naozaj, počítače, 1040 00:48:04,230 --> 00:48:08,470 zásadne nemôže vyjadriť niektoré hodnoty presne. 1041 00:48:08,470 --> 00:48:12,840 Vieme z matematickej triedy, ktoré môžete mať ľubovoľný počet čísel po 1042 00:48:12,840 --> 00:48:13,510 desatinná čiarka. 1043 00:48:13,510 --> 00:48:16,460 A dokonca môžete dať zvislý pruh povedať to trvať večne. 1044 00:48:16,460 --> 00:48:18,810 >> Bohužiaľ, nemôžete naozaj si, že v počítači. 1045 00:48:18,810 --> 00:48:20,400 A tak rohové prípadom dochádza. 1046 00:48:20,400 --> 00:48:23,120 Predpokladajme napríklad, že ste niečo robiť finančné. 1047 00:48:23,120 --> 00:48:25,700 Robíš matematiku s percentách, a 1048 00:48:25,700 --> 00:48:27,030 s dolármi a centy. 1049 00:48:27,030 --> 00:48:29,230 A ty centov nie nutne zostavu. 1050 00:48:29,230 --> 00:48:34,120 No, ukázalo sa, že zlomky haliere môžu začať sčítavať, ak 1051 00:48:34,120 --> 00:48:37,250 modelovaný s počítačovým systémom takým spôsobom, že šikovný 1052 00:48:37,250 --> 00:48:39,100 môžu ľudia využiť. 1053 00:48:39,100 --> 00:48:42,650 >> A tí z vás, ktorí nevideli, tak by som Páči sa vám 30 druhého teaser na 1054 00:48:42,650 --> 00:48:48,290 Prekrásny film známy ako kancelárske priestory, ktorá bude namaľovať obraz 1055 00:48:48,290 --> 00:48:51,205 Problém budeme riešiť Prvá vec, ktorú v pondelok. 1056 00:48:51,205 --> 00:48:53,960 Keby sa nám podarilo zvýšiť objem trochu, dám vám 30 1057 00:48:53,960 --> 00:48:55,495 sekúnd kancelárskych plôch. 1058 00:48:55,495 --> 00:48:55,770 >> [PLAYBACK] 1059 00:48:55,770 --> 00:48:59,000 >> -Myslím, že ste, že ste neboli ukazuje a dostanete, aby svoju prácu. 1060 00:48:59,000 --> 00:49:00,620 >> -Vlastne, som bol povýšený. 1061 00:49:00,620 --> 00:49:03,240 >> -Mohol by som naprogramovať vírus, ktorý by rip to miesto mimo veľký čas. 1062 00:49:03,240 --> 00:49:04,430 >> No, ako to funguje? 1063 00:49:04,430 --> 00:49:06,782 >> -Zakaždým, keď to bankovým prevodom kde je záujem počíta, a tam 1064 00:49:06,782 --> 00:49:10,160 sú tisíce denne, počítač končí s týmito zlomky percenta. 1065 00:49:10,160 --> 00:49:12,030 >> -Ale ja nemienim robiť nič nezákonného. 1066 00:49:12,030 --> 00:49:12,660 >> -Nelegálne? 1067 00:49:12,660 --> 00:49:15,075 Samir, toto je Amerika. 1068 00:49:15,075 --> 00:49:16,570 >> -Musíme prisahám Bohu. 1069 00:49:16,570 --> 00:49:19,070 >> -Pokiaľ nikto nevie o tom ale nám, v poriadku? 1070 00:49:19,070 --> 00:49:21,920 Žiadne rodinní príslušníci, žiadne priateľka, nikto. 1071 00:49:21,920 --> 00:49:22,700 >> -Samozrejme. 1072 00:49:22,700 --> 00:49:23,320 >> -Súhlas. 1073 00:49:23,320 --> 00:49:24,280 >> -Neboj sa, človeče. 1074 00:49:24,280 --> 00:49:25,640 Ja to nikomu nepoviem ani. 1075 00:49:25,640 --> 00:49:26,504 >> [END PLAYBACK] 1076 00:49:26,504 --> 00:49:30,030 >> DAVID Malan: Tak toto je teda CS50, to bolo Kancelárske priestory, a to bude všetko 1077 00:49:30,030 --> 00:49:31,465 zmysel v pondelok. 1078 00:49:31,465 --> 00:49:33,940 Uvidíme sa. 1079 00:49:33,940 --> 00:49:37,880 >> Rozprávač: Na ďalší CS50, Rob prispôsobí bol preč 1080 00:49:37,880 --> 00:49:39,130 Harvard stravovanie. 1081 00:49:39,130 --> 00:49:56,160