1 00:00:00,000 --> 00:00:03,353 >> [Prehrávanie hudby] 2 00:00:03,353 --> 00:00:04,842 3 00:00:04,842 --> 00:00:06,050 DAVID Malan: Ahoj, všetci. 4 00:00:06,050 --> 00:00:07,777 To je CS50 je supersection. 5 00:00:07,777 --> 00:00:09,860 Pridelené Sekcia nebude spustiť ďalší týždeň. 6 00:00:09,860 --> 00:00:11,580 A tak dnes, som tu with-- 7 00:00:11,580 --> 00:00:12,122 >> MARIA: Maria. 8 00:00:12,122 --> 00:00:14,163 DAVID Malan: --to vlastne sa pozrieť na problém 9 00:00:14,163 --> 00:00:16,110 nastaviť jednu, kurz je Prvé týždne materiálu, 10 00:00:16,110 --> 00:00:19,780 si budete orientované CS50 IDE, trochu Linux, operačný systém, ktorý je 11 00:00:19,780 --> 00:00:22,290 beží na IDE, ako aj sa pozrieť na niektoré z prechodu 12 00:00:22,290 --> 00:00:25,730 od nuly do C vedenia až do problému nastaviť jednu. 13 00:00:25,730 --> 00:00:28,340 >> Takže bez ďalších okolkov, v probléme nastaviť jednu, 14 00:00:28,340 --> 00:00:30,520 budete mať predstavil CS50 IDE, ktorý 15 00:00:30,520 --> 00:00:33,230 je tento web-based programovanie prostredie, ktoré používame, aby 16 00:00:33,230 --> 00:00:34,280 písať programy. 17 00:00:34,280 --> 00:00:37,280 Je navrhnutý tak, aby vyzerať veľmi pripomínajúce typického počítače 18 00:00:37,280 --> 00:00:39,430 systém používate operačný systém s názvom Linux. 19 00:00:39,430 --> 00:00:42,440 Ale je to v tzv mrak, čo znamená, že všetky v triede 20 00:00:42,440 --> 00:00:45,100 môže skutočne mať jeho alebo jej na vlastný účet a použiť ju, rovnako. 21 00:00:45,100 --> 00:00:48,950 >> Takže väčšina z vás asi nikdy použité v prostredí systému Linux pred alebo možno 22 00:00:48,950 --> 00:00:50,447 i príkazový riadok prostredie. 23 00:00:50,447 --> 00:00:52,280 A príkazový riadok Prostredie je iný. 24 00:00:52,280 --> 00:00:53,200 Je to všetko textová. 25 00:00:53,200 --> 00:00:54,730 Je to všetko klávesové skratky. 26 00:00:54,730 --> 00:00:59,480 A nie je to mousing, žiadne ikony, bez okien dialóg, žiadne menu. 27 00:00:59,480 --> 00:01:00,212 Je to čisto textový. 28 00:01:00,212 --> 00:01:01,920 Takže na prvý pohľad, je to druh ze sa cíti ako krok 29 00:01:01,920 --> 00:01:04,434 späť, pokiaľ ide o prepracovanosti. 30 00:01:04,434 --> 00:01:06,600 Ale nakoniec je to veľa silnejší, určite, 31 00:01:06,600 --> 00:01:08,510 pre počítačové vedcov, nakoniec. 32 00:01:08,510 --> 00:01:09,540 >> Takže poďme sa pozrieť. 33 00:01:09,540 --> 00:01:13,850 Tu som v CS50.io, cez ktorý môžete sa prihlásiť do CS50 IDE. 34 00:01:13,850 --> 00:01:17,414 A podobne ako v Scratch, je tu tri hlavné oblasti na tejto obrazovke. 35 00:01:17,414 --> 00:01:20,080 Takže na ľavej strane, máme čo bude prehliadač súborov. 36 00:01:20,080 --> 00:01:22,413 A tam je táto zložka na top, ktorý je teraz prázdny 37 00:01:22,413 --> 00:01:24,690 od tej doby som sa zbavil všetkých mojich Súbory pred supersection. 38 00:01:24,690 --> 00:01:27,599 A to je, kde budeme uložiť C súbory, ktoré píšeme. 39 00:01:27,599 --> 00:01:30,890 V pravom hornom rohu, máme miesto, kde všetky naše kódu sa dostane v písomnej forme. 40 00:01:30,890 --> 00:01:34,610 A skutočne, keď som kliknite na toto Plus, to sa chystá dovoľte mi, aby som si vybrať nový súbor. 41 00:01:34,610 --> 00:01:38,310 A tu môžem začať písať kód v C alebo, Naozaj, ľubovoľný počet ďalších jazykov. 42 00:01:38,310 --> 00:01:42,670 >> A potom sa v spodnej časti, kde je hovorí jharvard @ ide50-- a vaša vôľa 43 00:01:42,670 --> 00:01:45,080 povedz niečo trochu different-- čo sa to volá? 44 00:01:45,080 --> 00:01:48,644 45 00:01:48,644 --> 00:01:49,310 Okno terminálu. 46 00:01:49,310 --> 00:01:49,570 Jo. 47 00:01:49,570 --> 00:01:51,810 Takže okno terminálu tzv príkazového riadku 48 00:01:51,810 --> 00:01:55,540 rozhranie, cez ktoré môžete komunikovať so základným operačným systémom. 49 00:01:55,540 --> 00:01:58,220 A teraz, budeme aby veľmi malé použitie tohle-- 50 00:01:58,220 --> 00:02:01,170 len kompilácie, pozrieť sa na chybové správy, ktoré vidíme, 51 00:02:01,170 --> 00:02:02,347 a spúšťať naše programy. 52 00:02:02,347 --> 00:02:04,680 Ale nakoniec, ideme robiť oveľa viac, rovnako. 53 00:02:04,680 --> 00:02:07,490 A dokonca môžete nainštalovať softvér a spravovať svoj pracovný priestor 54 00:02:07,490 --> 00:02:09,066 v rámci CS50 IDE, rovnako. 55 00:02:09,066 --> 00:02:10,440 Ale o tom až niekedy inokedy. 56 00:02:10,440 --> 00:02:12,689 >> Tak poďme do toho pustite a písať veľmi jednoduchý program, len 57 00:02:12,689 --> 00:02:15,064 prejsť warm-up hello.c, ktorý je možná 58 00:02:15,064 --> 00:02:16,480 najjednoduchšie programu môžeme písať. 59 00:02:16,480 --> 00:02:18,330 Už som otvoril novú kartu. 60 00:02:18,330 --> 00:02:24,310 Chystám sa ísť dopredu a hovoria, zahŕňajú štandardný io.h. 61 00:02:24,310 --> 00:02:25,325 Potom int main (void). 62 00:02:25,325 --> 00:02:28,930 63 00:02:28,930 --> 00:02:35,200 A potom printf ("Hello, world" spätné lomítko n, blízko citácie, 64 00:02:35,200 --> 00:02:39,480 zatvoriť zátvoriek, a bodkočiarka. 65 00:02:39,480 --> 00:02:39,990 >> Dobre. 66 00:02:39,990 --> 00:02:41,700 Takže teraz si všimnúť moje okno je untitled. 67 00:02:41,700 --> 00:02:44,840 Takže som veľmi rýchlo sa ísť do súboru, uložte. 68 00:02:44,840 --> 00:02:46,910 A to je dôležité, aby Hovorím to nie je "ahoj." 69 00:02:46,910 --> 00:02:49,243 Takže veľmi častý omyl, a to najmä v problém nastaviť jednu, 70 00:02:49,243 --> 00:02:52,530 je náhodou len zavolať svoje Program "voda" alebo "chamtivý" alebo "Mario" 71 00:02:52,530 --> 00:02:53,890 alebo "úver", alebo podobne. 72 00:02:53,890 --> 00:02:55,970 Ale v skutočnosti chcete, aby sa istí, že budete mať príponu súboru 73 00:02:55,970 --> 00:02:58,928 pretože to je jediný spôsob, kompilátor a aj editor kódu 74 00:02:58,928 --> 00:03:00,710 vie, že ste vlastne písania C kód. 75 00:03:00,710 --> 00:03:02,280 Tak nechaj ma ísť ďalej a kliknite na tlačidlo Uložiť. 76 00:03:02,280 --> 00:03:05,710 >> A teraz taky, čo CS50 IDE urobil pre nás je, že je to tiež 77 00:03:05,710 --> 00:03:07,120 syntax zvýraznený všetko. 78 00:03:07,120 --> 00:03:08,822 Tak sa to robí všetko veľmi pestrá. 79 00:03:08,822 --> 00:03:10,780 A celý účel že nie je funkčná. 80 00:03:10,780 --> 00:03:14,290 Je to len nakresliť oči na koncepčne rôzne kúsky 81 00:03:14,290 --> 00:03:15,310 tohto programu. 82 00:03:15,310 --> 00:03:17,570 Tak poďme do toho a preložil. 83 00:03:17,570 --> 00:03:19,490 A môžem zostaviť to v niekoľkými spôsobmi. 84 00:03:19,490 --> 00:03:22,010 A v týždni jedna, old-school spôsob, ako sme to urobili 85 00:03:22,010 --> 00:03:26,250 to bol doslova u Command line-- "rinčanie hello.c." 86 00:03:26,250 --> 00:03:27,596 A potom som stlačte Enter. 87 00:03:27,596 --> 00:03:29,720 A zdanlivo nič nedeje V okne terminálu. 88 00:03:29,720 --> 00:03:32,654 Ale to, čo sa zmenilo v IDE? 89 00:03:32,654 --> 00:03:35,320 Tam, kde sa opäť IDE jednoducho znamená, Integrované vývojové prostredie. 90 00:03:35,320 --> 00:03:38,360 Je to fantázia spôsob, ako hovoriť toto integrované vývojové 91 00:03:38,360 --> 00:03:40,620 prostredie pre vývoj softvéru. 92 00:03:40,620 --> 00:03:42,477 Čo teda zmeniť v užívateľskom rozhraní? 93 00:03:42,477 --> 00:03:44,310 Čo ste si to je niečo iné, Maria? 94 00:03:44,310 --> 00:03:47,100 >> MARIA: Všimol som si niečoho pod IDE50 zložke tu. 95 00:03:47,100 --> 00:03:47,850 >> DAVID Malan: Jo. 96 00:03:47,850 --> 00:03:50,230 Tak tu hore, a to nielen máme "hello.c." 97 00:03:50,230 --> 00:03:53,120 Máme tiež "a.out", čo je je to za hlúpe meno pre program. 98 00:03:53,120 --> 00:03:56,430 Ale v skutočnosti, to je predvolený názov pre Program, keď ste práve kompilácie kódu 99 00:03:56,430 --> 00:03:59,110 a nehovorte kompilátor čo súbor na výstup. 100 00:03:59,110 --> 00:04:01,790 Takže ak chcem spustiť to, myslím, je potrebné oznámiť compiler-- 101 00:04:01,790 --> 00:04:05,340 alebo skôr, musím povedzte pracovný priestor, ktorý som 102 00:04:05,340 --> 00:04:09,780 chcete spustiť program s názvom "a.out." 103 00:04:09,780 --> 00:04:10,550 Enter. 104 00:04:10,550 --> 00:04:12,474 A je tu "ahoj, svet, "teraz" ./ ". 105 00:04:12,474 --> 00:04:13,390 je v skutočnosti dôležité. 106 00:04:13,390 --> 00:04:16,050 Aj keď normálne my len napísať názvy príkazov, 107 00:04:16,050 --> 00:04:19,060 keď je to program, ktorý som písomná, vy chcete povedať, "./" 108 00:04:19,060 --> 00:04:22,460 pretože to výslovne hovorí, Linux že chcete spustiť program s názvom 109 00:04:22,460 --> 00:04:26,930 "a.out", ktoré je v tomto, kde bodka znamená tento adresár, že som v súčasnosti 110 00:04:26,930 --> 00:04:31,600 in, čo sa stáva, že je volal pracovný priestor, "a.out. 111 00:04:31,600 --> 00:04:35,410 Pretože keď som práve povedal "a.out," Enter, Idem sa dostať "velenie a.out nie 112 00:04:35,410 --> 00:04:38,035 nájdených ", pretože computer-- preto, že som vynašiel "a.out;" 113 00:04:38,035 --> 00:04:40,910 neprišiel s computer-- nevie, kde ju hľadať, 114 00:04:40,910 --> 00:04:43,590 aj keď je to správne pod nosom, aby som tak povedal. 115 00:04:43,590 --> 00:04:44,090 OK. 116 00:04:44,090 --> 00:04:49,910 Tak sme mohli to zmeniť byť "rinčať -o ahoj hello.c." 117 00:04:49,910 --> 00:04:53,030 A keď som stlačte klávesu Enter, aký program to bude na výstup pre mňa? 118 00:04:53,030 --> 00:04:55,710 Aký je názov súboru? 119 00:04:55,710 --> 00:04:57,500 Jo, v chrbte. 120 00:04:57,500 --> 00:04:58,479 To je správne. "Ahoj." 121 00:04:58,479 --> 00:05:00,520 Takže "ahoj" bude názov programu 122 00:05:00,520 --> 00:05:04,610 preto, že sme použili takzvané linka argument, príkaz, čo je len 123 00:05:04,610 --> 00:05:08,120 spôsob, ako zmeniť správanie kompilátor skutočne výstup 124 00:05:08,120 --> 00:05:09,450 špecifický názov súboru. 125 00:05:09,450 --> 00:05:12,400 A skutočne, keď som zoom von a pozrieť sa tu, 126 00:05:12,400 --> 00:05:17,430 teraz mám nielen "a.out" a "hello.c", ale aj "Ahoj," rovnako. 127 00:05:17,430 --> 00:05:22,410 Takže teraz môžem robiť "./hello," Enter. 128 00:05:22,410 --> 00:05:23,640 A je tu "Hello, World". 129 00:05:23,640 --> 00:05:25,640 Ale lastly-- a to bude teraz konvencie 130 00:05:25,640 --> 00:05:27,590 používame v celom semester, typically-- 131 00:05:27,590 --> 00:05:30,070 ich môžete tiež len povedať "robiť ahoj." 132 00:05:30,070 --> 00:05:33,370 A skutočne, je to hovorí, je to do dnešného dňa, pretože už existuje. 133 00:05:33,370 --> 00:05:37,860 Nechaj ma ísť dopredu a odstrániť, s Príkaz rm, a to ako "a.out" - 134 00:05:37,860 --> 00:05:39,644 a povedať: "odstrániť pravidelný súbor a.out?" 135 00:05:39,644 --> 00:05:41,810 To jednoducho znamená, že nie istí, že ju chcete zmazať? 136 00:05:41,810 --> 00:05:42,880 Idem povedať, že áno. 137 00:05:42,880 --> 00:05:46,690 A potom budem odstrániť "ahoj", ale nie "hello.c." 138 00:05:46,690 --> 00:05:49,920 Budem hovoriť "áno" výslovne, ale "y" je dostatočná, rovnako. 139 00:05:49,920 --> 00:05:52,140 >> A teraz si všimnúť, či som typ ls-- Čo, spomínať, 140 00:05:52,140 --> 00:05:55,540 znamená list-- vymenováva všetko zo súborov v mojej zložke. 141 00:05:55,540 --> 00:05:57,850 A skutočne, keď som zoom von a pozrieť sa na ľavom hornom rohu, 142 00:05:57,850 --> 00:05:59,730 potvrdzuje, že to, čo je v tejto zložke, a to aj 143 00:05:59,730 --> 00:06:04,990 aj keď je to označené ako IDE50 tu a nie pracovné priestor, je to len "hello.c." 144 00:06:04,990 --> 00:06:09,152 Takže teraz tu dole, ak I to "robiť ahoj," Enter, 145 00:06:09,152 --> 00:06:12,360 teraz vidím oveľa dlhší príkaz, ale prepracovanejšie príkaz, ktorý sa deje 146 00:06:12,360 --> 00:06:13,940 byť užitočný v nasledujúcich týždňoch prísť. 147 00:06:13,940 --> 00:06:16,720 A teraz môžem povedať, "./hello." 148 00:06:16,720 --> 00:06:19,257 >> Takže poďme sa rýchlu prehliadku Príkazy nejaký iný Linux. 149 00:06:19,257 --> 00:06:21,840 Tak prečo nie my krok späť a dokonca pozrieť sa na C viac 150 00:06:21,840 --> 00:06:25,020 Všeobecne platí, že prechod od nuly na ° C, a potom uzavrieť s pohľadom 151 00:06:25,020 --> 00:06:27,305 na prvý problém nastavte v C. V poriadku. 152 00:06:27,305 --> 00:06:30,430 Takže budem pokračovať a práve čisté up mojej pracovnej plochy s Control-L len 153 00:06:30,430 --> 00:06:31,429 udržať obrazovku upravene. 154 00:06:31,429 --> 00:06:33,520 Ale to nemá funkčné ovplyvniť inak. 155 00:06:33,520 --> 00:06:35,820 >> Pripomeňme si, že sme videli Teraz niekoľko príkazov. 156 00:06:35,820 --> 00:06:39,900 Takže sme videli rinčanie, ktoré všeobecne vy nebudete musieť spustiť ručne ešte. 157 00:06:39,900 --> 00:06:41,650 Budeme namiesto toho používať make. 158 00:06:41,650 --> 00:06:45,290 Ale my sme tiež videli ls, čo ukazuje výpis súborov v mojom adresári. 159 00:06:45,290 --> 00:06:48,750 A teraz, prečo je there-- Sú dva súbory teraz, "ahoj" a "hello.c." 160 00:06:48,750 --> 00:06:52,240 Prečo je tam hviezda alebo hviezdička po "ahoj"? 161 00:06:52,240 --> 00:06:54,900 Čo to znamenať, založený o tom, čo sme videli v jednom týždni? 162 00:06:54,900 --> 00:06:58,852 163 00:06:58,852 --> 00:07:00,400 Co si myslis? 164 00:07:00,400 --> 00:07:02,742 Čo hviezda znamenať? 165 00:07:02,742 --> 00:07:04,614 >> MARIA: For-- programu "ahoj"? 166 00:07:04,614 --> 00:07:05,530 DAVID Malan: "Ahoj *". 167 00:07:05,530 --> 00:07:06,330 Jo. 168 00:07:06,330 --> 00:07:07,760 Oh áno? 169 00:07:07,760 --> 00:07:08,639 Oh, spustiteľný. 170 00:07:08,639 --> 00:07:09,180 To je správne. 171 00:07:09,180 --> 00:07:10,890 Tak, že znamená, že "ahoj" je spustiteľný. 172 00:07:10,890 --> 00:07:13,430 Takže v skutočnosti, to je dôvod, prečo Môžem robiť "./hello." 173 00:07:13,430 --> 00:07:13,930 Dobre. 174 00:07:13,930 --> 00:07:15,179 Takže čo iné môžem robiť tu? 175 00:07:15,179 --> 00:07:17,290 No, to dopadá môžem tiež vytvárať adresáre. 176 00:07:17,290 --> 00:07:20,924 Tak nechaj ma ísť dopredu a vytvoriť, napríklad, "pset1" adresár. 177 00:07:20,924 --> 00:07:23,590 A problém nastaviť špecifikácie bude mať budete robiť presne to, 178 00:07:23,590 --> 00:07:25,260 takže si nemusíte pamätať dnes. 179 00:07:25,260 --> 00:07:27,340 Ale "mkdir pset1" Zdá sa, mať žiadny dopad. 180 00:07:27,340 --> 00:07:30,540 Ale opäť, žiadne chybové hlásenie je vo všeobecnosti dobrá vec. 181 00:07:30,540 --> 00:07:34,060 Takže keď som typ "ls" now-- ah, teraz Mám spustiteľný súbor s názvom 182 00:07:34,060 --> 00:07:36,570 "Dobrý deň," súbor C s názvom "hello.c." 183 00:07:36,570 --> 00:07:40,860 A potom koncové lomítko, tak aby hovoriť, znamená, že sa jedná o adresár. 184 00:07:40,860 --> 00:07:42,510 >> Takže naozaj, teraz chcem otvoriť. 185 00:07:42,510 --> 00:07:45,730 A nemyslím si, dvojitým kliknutím na neho, ako v GUI, grafickom prostredí. 186 00:07:45,730 --> 00:07:48,550 Namiesto toho som povedal "cd pset1." 187 00:07:48,550 --> 00:07:49,640 Enter. 188 00:07:49,640 --> 00:07:53,100 Nič zaujímavého sa zdá, že sa stalo s výnimkou môjho malého riadku 189 00:07:53,100 --> 00:07:57,300 here-- to je Linux je pripomenutie ma, kde som, tak čo zložka je otvorená. 190 00:07:57,300 --> 00:08:00,080 Je to len mi povedať výslovne na rozdiel od graficky. 191 00:08:00,080 --> 00:08:05,100 A keď som typ "ls," Prečo vidím ďalší bezodkladne vyzve, myslíte, 192 00:08:05,100 --> 00:08:07,269 keď som sa zoznam obsahu pset1? 193 00:08:07,269 --> 00:08:09,310 MARIA: Pravdepodobne nie mať nič tam. 194 00:08:09,310 --> 00:08:09,630 DAVID Malan: Jo. 195 00:08:09,630 --> 00:08:11,510 Takže nemáme evidentne vytvoril niečo tam 196 00:08:11,510 --> 00:08:13,150 Len preto, že som vytvoril adresár. 197 00:08:13,150 --> 00:08:17,690 A teraz, keď som chcel vytvoriť file-- pre inštancie, mohol by som vytvoriť nový súbor. 198 00:08:17,690 --> 00:08:20,190 A potom by som mohol ísť do Uložiť a uložte ho ako, 199 00:08:20,190 --> 00:08:23,090 ako: "mario.c" ak robíte Standard Edition pset jedna. 200 00:08:23,090 --> 00:08:27,610 A potom, ako každý Mac alebo PC, len vyberte priečinok "pset1, Uložiť. 201 00:08:27,610 --> 00:08:28,740 A teraz súbor je prázdny. 202 00:08:28,740 --> 00:08:31,160 Ale poďme priblížiť znovu na sekundu. 203 00:08:31,160 --> 00:08:32,470 Poďme tu robiť ls. 204 00:08:32,470 --> 00:08:34,470 Teraz vidíme, "mario.c". 205 00:08:34,470 --> 00:08:37,850 >> Takže je tu pár ďalších príkazov, ktoré sú dobré mať na pamäti, než time-- 206 00:08:37,850 --> 00:08:41,200 číry, alebo Control-L je to, čo som Bol biť; mkdir sme videli; 207 00:08:41,200 --> 00:08:45,240 rm sme videli, tiež, čo je Pre odstránenie alebo odstránenie súboru. 208 00:08:45,240 --> 00:08:49,310 Dajte si pozor môžete also--, a keď sa pozriete v on-line výučbových programov, budete rm -rf 209 00:08:49,310 --> 00:08:52,630 je veľmi bežný spôsob, ako hovoriť odstránite zložku, ktorá má veci v ňom. 210 00:08:52,630 --> 00:08:54,280 Stačí byť super, super opatrný. 211 00:08:54,280 --> 00:08:58,780 -rf znamená rekurzívne zmazať, čo to je 212 00:08:58,780 --> 00:09:01,150 sa snažíte zmazať a násilne odstrániť. 213 00:09:01,150 --> 00:09:04,630 Takže rekurzívne znamená, že ak je to zložka s zložka sa zložkou so zložkou, 214 00:09:04,630 --> 00:09:05,690 odstrániť všetky z nich. 215 00:09:05,690 --> 00:09:08,680 A násilne znamená, nemajú ani ask me áno alebo nie, som si istý? 216 00:09:08,680 --> 00:09:11,960 Takže je to super nebezpečný spôsob Rýchlo mazanie veľa vecí. 217 00:09:11,960 --> 00:09:17,210 Ale beware-- príliš často robí neohrozený študentka omylom zmazať, povedzme, pset 218 00:09:17,210 --> 00:09:18,000 jedným, napríklad. 219 00:09:18,000 --> 00:09:19,833 >> MARIA: A v prípade, že práve robiť -r, idú 220 00:09:19,833 --> 00:09:21,870 požiadať ich o každom jednom súbore. 221 00:09:21,870 --> 00:09:22,790 >> DAVID Malan: Čo je mierne nepríjemné. 222 00:09:22,790 --> 00:09:23,480 >> MARIA: Jo. 223 00:09:23,480 --> 00:09:25,813 >> DAVID Malan: Takže to je dôvod, prečo tak veľa z nás, ja v cene, 224 00:09:25,813 --> 00:09:27,070 som vo zvyku používať -rf. 225 00:09:27,070 --> 00:09:27,861 Ale je to nebezpečné. 226 00:09:27,861 --> 00:09:29,010 Takže kupujúci na pozore. 227 00:09:29,010 --> 00:09:31,050 A potom mv je druh zaujímavo menovaný. 228 00:09:31,050 --> 00:09:33,600 Tak to je príkaz ťah, ktorý sa cíti trochu divný 229 00:09:33,600 --> 00:09:37,260 pretože môžete skutočne použiť na presúvať súbory z jedného miesta na druhé. 230 00:09:37,260 --> 00:09:39,970 Predpokladajme napríklad, že som spackal. 231 00:09:39,970 --> 00:09:43,660 Predpokladajme, že som vytvoril nový súbor pre pset. 232 00:09:43,660 --> 00:09:46,320 A zachránil som to ako "greedy.c." 233 00:09:46,320 --> 00:09:49,970 Predpokladajme však, že som omylom uložiť v IDE50-- takže v mojom pracovnom priestore samotnom 234 00:09:49,970 --> 00:09:51,580 a nie v pset1. 235 00:09:51,580 --> 00:09:53,960 >> Môžete vidieť, ako veľa je v ľavom hornom rohu. 236 00:09:53,960 --> 00:09:55,284 Tam je "greedy.c." 237 00:09:55,284 --> 00:09:56,450 A je tu niekoľko riešení. 238 00:09:56,450 --> 00:09:58,324 Takže človek, môžem použiť výborný užívateľsky príjemný spôsob, 239 00:09:58,324 --> 00:09:59,740 púheho pretiahnutím. 240 00:09:59,740 --> 00:10:01,910 A že by v skutočnosti tento problém vyriešiť. 241 00:10:01,910 --> 00:10:04,967 Ale dnes, snažíme sa pozerať na čím viac tajomné, ale účinných spôsobov, 242 00:10:04,967 --> 00:10:05,550 ako to dosiahnuť. 243 00:10:05,550 --> 00:10:07,880 Takže dovoľte mi, aby som "LS" v pset1. 244 00:10:07,880 --> 00:10:09,690 A vidím len "mario.c." 245 00:10:09,690 --> 00:10:13,450 Nechaj ma ísť ďalej a robiť "cd ..". 246 00:10:13,450 --> 00:10:15,320 Takže CD je opäť zmena adresár. 247 00:10:15,320 --> 00:10:18,130 ".." Znamená to, čo, aj keď? 248 00:10:18,130 --> 00:10:21,100 Minule som povedal, "CD pset1 "ísť do pset1. 249 00:10:21,100 --> 00:10:24,360 Takže keď hovorím "cd ..", čo mám robiť? 250 00:10:24,360 --> 00:10:24,910 Dozadu. 251 00:10:24,910 --> 00:10:25,150 Jo. 252 00:10:25,150 --> 00:10:26,750 >> Takže to bude tzv rodičia. 253 00:10:26,750 --> 00:10:29,730 Prechod o úroveň vyššie, rovnako ako opustenie z priečinka. 254 00:10:29,730 --> 00:10:30,500 Tak Enter. 255 00:10:30,500 --> 00:10:31,900 A skutočne, pozri sa, čo to urobil. 256 00:10:31,900 --> 00:10:37,070 Namiesto toho sa presťahoval ma proste do pracovného priestoru of do pset1, ktorý je v pracovnom priestore. 257 00:10:37,070 --> 00:10:39,710 A teraz, keď som typ "LS", je tu celý rad vecí. 258 00:10:39,710 --> 00:10:41,650 Tam je "greedy.c". 259 00:10:41,650 --> 00:10:48,720 Takže teraz dovoľte mi použiť mV do doslovne presunúť "greedy.c" do pset1. 260 00:10:48,720 --> 00:10:51,120 A tak veľa Linux príkazov fungujú presne takto. 261 00:10:51,120 --> 00:10:54,470 Berú žiadne argumenty, alebo sa mať jednu Argument alebo berú dva príkazový riadok 262 00:10:54,470 --> 00:10:55,449 argumenty a tak ďalej. 263 00:10:55,449 --> 00:10:57,240 A v tomto prípade, je to doslovne to, čo 264 00:10:57,240 --> 00:11:01,670 to hovorí, keď succinctly-- presunúť greedy.c do pset1. 265 00:11:01,670 --> 00:11:02,310 Enter. 266 00:11:02,310 --> 00:11:03,310 Sa zdanlivo nič nedeje. 267 00:11:03,310 --> 00:11:06,180 Ale keď robím ls znovu, chamtivý je preč. 268 00:11:06,180 --> 00:11:12,437 A keď to urobím "cd pset1", Enter, a potom ls znova, teraz je to na správnom mieste. 269 00:11:12,437 --> 00:11:14,270 Ako stranou, ak je pre niektorí reason-- obzvlášť 270 00:11:14,270 --> 00:11:16,194 Ak máte prerušované pripojenie k sieti 271 00:11:16,194 --> 00:11:18,360 alebo ste chodí kampus s vekom notebooku 272 00:11:18,360 --> 00:11:20,180 zavrel a potom ju otvoriť Znovu a váš pracovný priestor 273 00:11:20,180 --> 00:11:21,730 Zdá sa, trochu mimo synchronizáciu, žiadny veľký problém. 274 00:11:21,730 --> 00:11:23,646 Stačí načítať prehliadač okná, a to by malo 275 00:11:23,646 --> 00:11:26,339 synchronizácia tak, že ľavý prehliadač súborov vyzerá presne 276 00:11:26,339 --> 00:11:27,380 ako okno terminálu. 277 00:11:27,380 --> 00:11:27,921 Niet sa čoho báť. 278 00:11:27,921 --> 00:11:31,460 Ak máte pochybnosti, znovu načítať stránku, tak Kým ste uložili už súbory. 279 00:11:31,460 --> 00:11:31,960 OK. 280 00:11:31,960 --> 00:11:34,710 Takže mv môže byť tiež použitý na premenovanie súborov. 281 00:11:34,710 --> 00:11:36,760 A poďme sa pozrieť na Tento konečný príkaz tu. 282 00:11:36,760 --> 00:11:39,950 Tak suppose-- a to je Super bežné, príliš, čoskoro. 283 00:11:39,950 --> 00:11:46,400 Niektorí študenti občas vytvoriť súbor volal, poďme say-- čo je ďalší? 284 00:11:46,400 --> 00:11:47,730 Ako "WATER.C." 285 00:11:47,730 --> 00:11:51,080 Takže budem kričať, pre žiadny dôvod, vo všetkých čiapky. 286 00:11:51,080 --> 00:11:53,190 Ale to nie je Správne meno súboru 287 00:11:53,190 --> 00:11:56,660 aj keby len preto náš problém set Špecifikácie ti to nepovedal 288 00:11:56,660 --> 00:11:59,430 uložte súbor ako verzálky "WATER.C." 289 00:11:59,430 --> 00:12:01,320 Namiesto toho, očakávame "water.c" malými písmenami. 290 00:12:01,320 --> 00:12:03,140 A v skutočnosti, to je problematické, pretože check50, 291 00:12:03,140 --> 00:12:04,370 Program ideš stretnúť sa v probléme 292 00:12:04,370 --> 00:12:07,350 nastaviť jeden, ktorý automaticky testuje správnosť kódu 293 00:12:07,350 --> 00:12:11,615 bude kričať na vás, či to nemôže nájsť "water.c" vo všetkých malými písmenami. 294 00:12:11,615 --> 00:12:12,712 >> Tak som treba to napraviť. 295 00:12:12,712 --> 00:12:14,920 Takže mnoho rôznych spôsobov, to urobiť, z ktorých prvý 296 00:12:14,920 --> 00:12:18,330 by bolo ovládanie tlačidlom alebo pravým tlačidlom myši názov súboru a len zmeniť Premenovať. 297 00:12:18,330 --> 00:12:19,740 Úplne v poriadku to urobiť. 298 00:12:19,740 --> 00:12:21,820 Ale opäť, dnes, poďme robiť to trochu milovník. 299 00:12:21,820 --> 00:12:26,680 Využime mV pre zmenu "WATER.C" na "water.c." 300 00:12:26,680 --> 00:12:30,690 Takže môžete tiež použiť prvý argument premenovať ju na druhý argument 301 00:12:30,690 --> 00:12:34,455 v prípade, že druhý argument nie je, v Skutočnosť, zložky alebo názov adresára. 302 00:12:34,455 --> 00:12:35,120 >> Dobre. 303 00:12:35,120 --> 00:12:39,560 A konečne, trochu trick--, takže som v môj pracovnej plochy adresár v túto chvíľu. 304 00:12:39,560 --> 00:12:43,660 Ak sa chcem dostať do pset jedného, Ja určite písať "cd pset1." 305 00:12:43,660 --> 00:12:47,260 Ale je to tak únavné typu "pset1", alebo dlhší názvy súborov alebo názvy adresárov 306 00:12:47,260 --> 00:12:47,980 stále. 307 00:12:47,980 --> 00:12:51,960 Takže veľmi často v Linuxe, čo môžete urobiť, je začať písať "BCPP" 308 00:12:51,960 --> 00:12:56,100 a len nudiť, hit Tab, a nechať Počítač údaj to pre vás. 309 00:12:56,100 --> 00:12:58,190 Super užitočné sa dostať do tohto zvyku. 310 00:12:58,190 --> 00:13:01,079 Jediný úlovok je, ak máte viac súbory alebo priečinky začínajúce 311 00:13:01,079 --> 00:13:02,870 s písmenom "P", alebo "PS", môžete mať 312 00:13:02,870 --> 00:13:05,525 Ak chcete zadať niekoľko ďalších pred počítač vie, čo má robiť. 313 00:13:05,525 --> 00:13:06,820 >> MARIA: Máme radi skratky. 314 00:13:06,820 --> 00:13:08,695 >> DAVID Malan: To bude ušetrí toľko času. 315 00:13:08,695 --> 00:13:11,930 A tiež, ako sme povedali v prednáške, budete možno rolovať hore v histórii, hore a dole, 316 00:13:11,930 --> 00:13:15,461 nájsť nedávno popravený príkazy, rovnako. 317 00:13:15,461 --> 00:13:15,960 Dobre. 318 00:13:15,960 --> 00:13:20,904 Takže teraz, poďme obrátiť svoju pozornosť späť na jednoduchý program, hello world. 319 00:13:20,904 --> 00:13:22,195 Preto sme zostavili to presne. 320 00:13:22,195 --> 00:13:24,050 A teraz prečo sme sa Pohľad na dátové typy 321 00:13:24,050 --> 00:13:26,776 a potom prejsť z niektorých zodpovedá Stieracie blokov C. 322 00:13:26,776 --> 00:13:27,400 MARIA: Desivý. 323 00:13:27,400 --> 00:13:30,031 Takže teraz, že ste začali písanie programov v C, 324 00:13:30,031 --> 00:13:32,530 budeme začať hovoriť o dátových typov a premenných. 325 00:13:32,530 --> 00:13:37,570 Takže niektoré typy dát, ktoré bude chcieť vedieť, od tejto chvíle 326 00:13:37,570 --> 00:13:39,400 sú tie, ktoré sú zvýraznené modro. 327 00:13:39,400 --> 00:13:42,420 Takže máme int ako prvý, čo je skratka pre celé číslo. 328 00:13:42,420 --> 00:13:46,075 A to platí celé čísla, ako vy môže mať guessed-- tak, 1, 2, 3, 329 00:13:46,075 --> 00:13:47,950 a akékoľvek ďalšie celé čísla ktoré si môžete myslieť. 330 00:13:47,950 --> 00:13:48,730 >> DAVID Malan: A tiež negatívny. 331 00:13:48,730 --> 00:13:50,220 >> MARIA: A tiež tie negatívne, jo. 332 00:13:50,220 --> 00:13:51,450 A 0. 333 00:13:51,450 --> 00:13:54,250 Potom máme plaváky, ktoré sú plávajúcou desatinnou čiarkou. 334 00:13:54,250 --> 00:13:58,360 Tak to je všetky reálne čísla ktoré majú desatinné miesta. 335 00:13:58,360 --> 00:14:03,960 Takže 5,0, 5,2, a ešte viac číslica za desatinnou čiarkou, 336 00:14:03,960 --> 00:14:05,620 ako aj, a tiež tie negatívne. 337 00:14:05,620 --> 00:14:07,530 Potom máme char čo je znak. 338 00:14:07,530 --> 00:14:10,240 Takže myslím, že sme hovorili o To prednáške dnes. 339 00:14:10,240 --> 00:14:15,682 Ale my máme listy, pre example-- A, B, C-, ktoré môžu byť uložené ako char. 340 00:14:15,682 --> 00:14:18,390 Ale potom máme oveľa viac symbolov ktoré môžu byť uložené ako char. 341 00:14:18,390 --> 00:14:22,380 A tie sú uložené ako ASCII. 342 00:14:22,380 --> 00:14:25,280 >> A potom máme bool, ktoré sú Booleans. 343 00:14:25,280 --> 00:14:29,067 A tí, vyhodnotiť True alebo Nepravda alebo 1 a 0, v tomto poradí. 344 00:14:29,067 --> 00:14:31,650 DAVID Malan: A pripomeňme, že bool pochádza z knižnice CS50. 345 00:14:31,650 --> 00:14:33,300 Takže to nie je integrovaná do C, ale je to super užitočné 346 00:14:33,300 --> 00:14:34,850 mať predstavu o true a false. 347 00:14:34,850 --> 00:14:36,990 A aj keď vás Možno think-- legrace fakt. 348 00:14:36,990 --> 00:14:43,700 Boolovské technicky potrebuje, koľko bitov, naozaj, reprezentovať pravda proti False? 349 00:14:43,700 --> 00:14:47,910 Koľko si myslíte, že bitov budete potrebovať, maximálne? 350 00:14:47,910 --> 00:14:48,790 Jo, len jeden. 351 00:14:48,790 --> 00:14:52,077 Tak to dopadá, že C nemôže dať len jeden bit. 352 00:14:52,077 --> 00:14:54,160 Najmenšia merná jednotka môžete získať, je osem. 353 00:14:54,160 --> 00:14:57,090 Takže je to trochu zbytočné, že ste použitím celý byte, alebo osem bitov, 354 00:14:57,090 --> 00:14:58,340 reprezentovať true alebo false. 355 00:14:58,340 --> 00:15:01,807 Ale to je len spôsob, ako je to implementované v C knižnicou CS50. 356 00:15:01,807 --> 00:15:04,890 MARIA: A potom tie, ktoré sme nebude hovoriť o ako rozsiahlo 357 00:15:04,890 --> 00:15:08,060 právo now-- double, to je pre väčšie plaváky. 358 00:15:08,060 --> 00:15:09,811 Dlhá dlhé a krátke sú tiež pre celé čísla. 359 00:15:09,811 --> 00:15:10,643 DAVID Malan: Naozaj. 360 00:15:10,643 --> 00:15:13,190 V hacker vydanie pset jedného, sme vlastne používať long long. 361 00:15:13,190 --> 00:15:15,801 Ale pre štandardnú verziu, to by nemalo byť potrebné. 362 00:15:15,801 --> 00:15:16,300 MARIA: cool. 363 00:15:16,300 --> 00:15:17,361 OK. 364 00:15:17,361 --> 00:15:20,110 Takže operators-- by ste mali byť pravdepodobne sa zoznámili s väčšinou z nich. 365 00:15:20,110 --> 00:15:22,620 Sčítanie, +; odčítanie, -. 366 00:15:22,620 --> 00:15:24,070 Pre násobenie, máme *. 367 00:15:24,070 --> 00:15:25,900 Takže nie X, ktoré sme zvyčajne používajú. 368 00:15:25,900 --> 00:15:27,840 Divízie, máme spätné lomítko. 369 00:15:27,840 --> 00:15:31,380 A modulo je naša posledná operátor, ktorý budeme hovoriť o práve teraz. 370 00:15:31,380 --> 00:15:35,610 Je to orgán, ktorý nám umožňuje vziať zvyšok divízie. 371 00:15:35,610 --> 00:15:40,630 Takže ak máme 4% 2, 4 rozdelený o 2 je 2 so zvyškom 0. 372 00:15:40,630 --> 00:15:41,740 Takže 4% 2 je 0. 373 00:15:41,740 --> 00:15:42,950 4% 3 je 1. 374 00:15:42,950 --> 00:15:44,870 4% 5 je 4, pretože by ste mohli tušiť. 375 00:15:44,870 --> 00:15:48,860 A pamätajte si, keď používate všetky tieto operátorom používať pravidlá PEMDAS. 376 00:15:48,860 --> 00:15:54,060 >> DAVID Malan: Takže aby bolo jasno, ak ste činiť 4% 2, prečo je to 0, presne? 377 00:15:54,060 --> 00:15:57,480 >> MARIA: Pretože 4 a vydelí 2 je 2 so zvyškom 0. 378 00:15:57,480 --> 00:16:00,752 Takže modulo nám dáva, že zvyšok ako na rozdiel od výsledku delenia. 379 00:16:00,752 --> 00:16:02,960 DAVID Malan: A skutočne, čo nájdeme toto užitočné 380 00:16:02,960 --> 00:16:05,640 , Je, že v niektorých problémov že to nemusí byť nutne jedným, 381 00:16:05,640 --> 00:16:08,040 Ak chcete mať Vplyv obmedzenia sami 382 00:16:08,040 --> 00:16:10,720 na rozsah čísel ako 0 až niečo, 383 00:16:10,720 --> 00:16:13,904 môžete použiť modulo na obal okolo skôr, než ako je 2 miliardy 384 00:16:13,904 --> 00:16:16,320 alebo hodnota 4000000000, že sme hovorili o v prednáške. 385 00:16:16,320 --> 00:16:16,870 >> MARIA: Jo. 386 00:16:16,870 --> 00:16:19,429 A dokonca v "chamtivý" by sme mohli. 387 00:16:19,429 --> 00:16:21,345 DAVID Malan: Áno, vo problém nastaviť jeden, rovnako. 388 00:16:21,345 --> 00:16:22,520 MARIA: Áno, pekné. 389 00:16:22,520 --> 00:16:24,340 DAVID Malan: Dobrý pomocník. 390 00:16:24,340 --> 00:16:25,750 MARIA: Ospravedlňujem sa. 391 00:16:25,750 --> 00:16:28,590 Boolean expressions-- tak pre logické operátory, 392 00:16:28,590 --> 00:16:31,770 budeme hovoriť o všetkom z nich, ktoré tu vidíte. 393 00:16:31,770 --> 00:16:35,310 Takže teraz máme dva rovné znaky uvedené na sebe rovnými. 394 00:16:35,310 --> 00:16:38,650 Takže to sú pre porovnanie. 395 00:16:38,650 --> 00:16:40,830 Zatiaľ sme videli len jednu rovná sa. 396 00:16:40,830 --> 00:16:44,870 To je, keď sme sa priradenie hodnota, ktorá má premenné. 397 00:16:44,870 --> 00:16:50,160 Takže ak sme videli int n = 5, potom sme priradená 5 do premennej n. 398 00:16:50,160 --> 00:16:55,600 Ale ak chceme použiť == k porovnanie, môžeme skontrolovať, či n == 5. 399 00:16:55,600 --> 00:16:58,310 A ak n == 5, potom je to pravda. 400 00:16:58,310 --> 00:17:01,950 >> Tak logické operátory Dovoľte nám, v podstate, 401 00:17:01,950 --> 00:17:04,670 hodnotiť Boolean výrazy na true alebo false. 402 00:17:04,670 --> 00:17:07,819 Takže nie je equals-- máme výkričník a rovní. 403 00:17:07,819 --> 00:17:14,240 Takže sme mohli, ak n tiež skontrolovať sa nerovná 5-- tak n! = 5. 404 00:17:14,240 --> 00:17:17,640 Menej ako, menšie než alebo rovné, väčšie ako, väčšie než alebo rovný, 405 00:17:17,640 --> 00:17:20,720 a potom máme logický AND a logický OR. 406 00:17:20,720 --> 00:17:24,060 A tie, ktoré nám umožnia vyhodnotiť viac logické výrazy spolu 407 00:17:24,060 --> 00:17:27,930 sa v podstate prísť spoločne ako jeden celý logický výraz. 408 00:17:27,930 --> 00:17:34,970 Takže ak chceme nájsť číslo, povedzme, ktorá je väčšia ako 5, ale menšie ako 15 409 00:17:34,970 --> 00:17:39,810 v rovnakú dobu, by používame logické AND operátor zistiť, či je n 410 00:17:39,810 --> 00:17:42,937 väčší ako 5 && n menší ako 15. 411 00:17:42,937 --> 00:17:44,770 DAVID Malan: A tu, taky, je to naozaj jednoduché 412 00:17:44,770 --> 00:17:47,290 čoskoro omylom použite len jeden ampersand 413 00:17:47,290 --> 00:17:48,572 alebo jedna zvislá čiara. 414 00:17:48,572 --> 00:17:51,280 A dúfajme, že bude kompilátor revať na vás, pretože sa v skutočnosti 415 00:17:51,280 --> 00:17:52,530 majú veľmi odlišný význam. 416 00:17:52,530 --> 00:17:55,660 Pre tých zvedavý, sú používa pre bitové operácie, 417 00:17:55,660 --> 00:17:57,197 pracujúci na jednotlivých bitov. 418 00:17:57,197 --> 00:17:58,780 Ale vy chcete, aby sa pár z nich tu. 419 00:17:58,780 --> 00:18:01,560 A Super Dôležité je, že Prvý z nich, znamienko rovnosti, 420 00:18:01,560 --> 00:18:05,270 čo je operátor rovnosti as Na rozdiel od operátora priradenia. 421 00:18:05,270 --> 00:18:08,552 >> MARIA: A zvislá čiara je sa nachádza medzi Delete a Return. 422 00:18:08,552 --> 00:18:09,260 DAVID Malan: Áno. 423 00:18:09,260 --> 00:18:11,420 Na typickej americkej klávesnici. 424 00:18:11,420 --> 00:18:13,190 >> MARIA: Jo. 425 00:18:13,190 --> 00:18:15,890 Takže poďme sa skočiť rovno do podmienené príkazy. 426 00:18:15,890 --> 00:18:18,300 Scratch, nemáš už videli, pravdepodobne, 427 00:18:18,300 --> 00:18:22,730 ak vyhlásenia, ktoré umožňujú užívateľovi skontrolujte, či je niečo pravda, potom 428 00:18:22,730 --> 00:18:23,660 robiť niečo iné. 429 00:18:23,660 --> 00:18:28,410 Takže by ste chcel skontrolovať, či vaše sprite je 430 00:18:28,410 --> 00:18:31,410 dotýka nejaký iný sprite alebo okraj obrazovky. 431 00:18:31,410 --> 00:18:35,520 A potom ste možno chceli ukončiť hru alebo robiť niečo iné. 432 00:18:35,520 --> 00:18:40,000 Takže syntax, ktorá je "if (podmienka)." 433 00:18:40,000 --> 00:18:46,820 Takže ak vaše sprite sa dotýka niečoho, potom si ich vnútri zložených zátvoriek. 434 00:18:46,820 --> 00:18:48,980 >> Potom máme if-else vyhlásenia. 435 00:18:48,980 --> 00:18:54,080 Else nám umožňuje robiť niečo v prípade, že stav, ktorý sme 436 00:18:54,080 --> 00:18:55,870 skontrolujte, či na začiatku nie je pravda. 437 00:18:55,870 --> 00:19:01,530 Takže ak sprite sa dotýka border chcete urobiť, inak robiť niečo iné. 438 00:19:01,530 --> 00:19:04,030 Takže inak robiť niečo iné. 439 00:19:04,030 --> 00:19:07,530 Potom máme krátky príklad pre toto. 440 00:19:07,530 --> 00:19:11,551 Takže v prípade, (military_time <12), sme Chcete printf "Dobré ráno!" 441 00:19:11,551 --> 00:19:13,300 Inak budeme printf "Dobrý večer!" 442 00:19:13,300 --> 00:19:14,860 Základné príkladom. 443 00:19:14,860 --> 00:19:15,680 >> DAVID Malan: Dobrý. 444 00:19:15,680 --> 00:19:16,760 >> MARIA: cool. 445 00:19:16,760 --> 00:19:18,560 Takže teraz máme vyhlásenie spínača. 446 00:19:18,560 --> 00:19:21,960 Prepnite vyhlásenie možno všeobecne nám umožňujú urobiť veľa rovnakú vec 447 00:19:21,960 --> 00:19:25,070 že sme práve hovorili o s if. 448 00:19:25,070 --> 00:19:29,440 Napríklad, práve teraz máme Všeobecná forma príkazu switch 449 00:19:29,440 --> 00:19:33,870 ktorá nám umožní prijať premennú s názvom n 450 00:19:33,870 --> 00:19:37,670 a porovnať ju s množstvom rôzne hodnoty, ktoré sme tu 451 00:19:37,670 --> 00:19:40,010 nazývajú constant1, constant2. 452 00:19:40,010 --> 00:19:41,150 Môžeme mať oveľa viac. 453 00:19:41,150 --> 00:19:42,930 A tie, ktoré sa nazývajú prípady. 454 00:19:42,930 --> 00:19:46,280 >> Takže ak máme prepínač statement-- a to funguje 455 00:19:46,280 --> 00:19:50,580 iba pre integers-- máme premenlivý v tomto prípade, ktorý je n. 456 00:19:50,580 --> 00:19:53,840 V prípade, že n je premenná rovná constant1, my 457 00:19:53,840 --> 00:19:59,720 bude vykonávať nejaký fragment kódu alebo niečo, čo chceme robiť. 458 00:19:59,720 --> 00:20:01,280 A potom by sme zlomiť. 459 00:20:01,280 --> 00:20:04,820 Takže prestávka znamená, že Príkaz switch 460 00:20:04,820 --> 00:20:08,120 sa zastaví, ak vykonávanie n je rovné constant1, 461 00:20:08,120 --> 00:20:09,752 a potom sa váš program bude pokračovať. 462 00:20:09,752 --> 00:20:11,835 To bude ukončený z toho prepnúť vyhlásenie a bude to 463 00:20:11,835 --> 00:20:13,520 aj naďalej robiť niečo iné. 464 00:20:13,520 --> 00:20:17,204 >> Ak sa však, n sa nerovná constant1, potom puzdro pre constant2 465 00:20:17,204 --> 00:20:17,870 Bude kontrolovaná. 466 00:20:17,870 --> 00:20:21,750 Takže ak n sa rovná constant2, že iný Úryvok kódu bude popravený. 467 00:20:21,750 --> 00:20:23,850 A potom to bude zlomiť v prípade, že je rovný k tomu. 468 00:20:23,850 --> 00:20:27,580 A potom môžeme mať also-- nie je nutne, though-- predvolený prípad, 469 00:20:27,580 --> 00:20:32,290 čo sa stane, keď n sa nerovná ktorýkoľvek z prípadov, ktoré ste uvedené. 470 00:20:32,290 --> 00:20:35,400 A v prípade východiskovej sme tiež Nemusíte nutne pauzu 471 00:20:35,400 --> 00:20:39,271 pretože príkaz switch bude vedieť že treba ukončiť po východzí 472 00:20:39,271 --> 00:20:40,270 prípad, že je tomu tak. 473 00:20:40,270 --> 00:20:42,140 >> DAVID Malan: Ale štylisticky, vždy dať to tam. 474 00:20:42,140 --> 00:20:42,540 >> MARIA: Jo. 475 00:20:42,540 --> 00:20:42,710 >> DAVID Malan: Jo. 476 00:20:42,710 --> 00:20:44,750 Takže najmä keď začínate, najmä v prípade, medzi tými, nižšie 477 00:20:44,750 --> 00:20:47,458 komfortné, by som osobne Len odporúčam držať sa nástroja stability 478 00:20:47,458 --> 00:20:51,564 a IFS-elses a if-else-if-elses a tak ďalej, pokiaľ len 479 00:20:51,564 --> 00:20:53,480 preto, že ste trochu priamočiarejšej. 480 00:20:53,480 --> 00:20:56,142 To je pekný optimalizácie, alebo niekedy aj esteticky ju 481 00:20:56,142 --> 00:20:57,350 robí kód čitateľnejší. 482 00:20:57,350 --> 00:20:59,599 A v skutočnosti, pravdepodobne mid-semester uvidíme problém 483 00:20:59,599 --> 00:21:02,504 nastaviť, kde to proste vyzerá lepšie, a čitateľnejšie pre ľudí 484 00:21:02,504 --> 00:21:03,670 pomocou príkazu switch. 485 00:21:03,670 --> 00:21:05,460 Ale nebojte sa o lipnú na to príliš skoro. 486 00:21:05,460 --> 00:21:05,680 >> MARIA: Jo. 487 00:21:05,680 --> 00:21:08,840 Ak máte veľa if, to by mohlo byť veľmi jednoducho nie je čitateľný. 488 00:21:08,840 --> 00:21:10,965 To nemusí byť veľmi rýchla pre vás prejsť. 489 00:21:10,965 --> 00:21:13,230 Takže spínač výroky možno byť veľmi užitočné, rovnako. 490 00:21:13,230 --> 00:21:17,900 A tiež, nie remember-- nie zabudol dať prestávky tam. 491 00:21:17,900 --> 00:21:20,330 >> DAVID Malan: Nepamätám si to. 492 00:21:20,330 --> 00:21:24,890 >> MARIA: Pretože potom by vás mohli spadnúť cez prípad od prípadu k druhému. 493 00:21:24,890 --> 00:21:27,930 Takže povedzme, že prípad constant1 nemal príkazu break v ňom. 494 00:21:27,930 --> 00:21:31,920 Potom by sme mohli prepadnúť Vnútri prípad constant2. 495 00:21:31,920 --> 00:21:35,070 A my nechceme robiť, že ak sme už dosiahli prípad constant1 496 00:21:35,070 --> 00:21:37,830 a sa rovná n. 497 00:21:37,830 --> 00:21:45,100 >> Tak, napríklad, keď máme premennú n, ktorý obsahuje číslo triedy, 498 00:21:45,100 --> 00:21:48,990 a chceme vidieť, čo to class je--, ak n je rovné 50, 499 00:21:48,990 --> 00:21:51,957 budeme tlačiť "CS50 je Úvod do výpočtovej techniky I. " 500 00:21:51,957 --> 00:21:53,040 Potom sme sa chystáte zlomiť. 501 00:21:53,040 --> 00:21:53,920 A to je všetko. 502 00:21:53,920 --> 00:21:55,950 Ak je však, n je rovné až 51, ideme 503 00:21:55,950 --> 00:21:58,494 tlačiť "CS51 je Predstavenie do výpočtovej techniky II. " 504 00:21:58,494 --> 00:21:59,910 Potom znova, budeme sa zlomiť. 505 00:21:59,910 --> 00:22:05,080 Avšak, ak potom dáme 124, 61, akýkoľvek iné číslo, ktoré by vás mohli myslieť, 506 00:22:05,080 --> 00:22:06,890 alebo program sa nebude uznať, že. 507 00:22:06,890 --> 00:22:09,010 Takže to bude hovoriť, "Prepáč, ja som nie sú oboznámení s danú triedu. " 508 00:22:09,010 --> 00:22:10,009 A bude to zlomiť. 509 00:22:10,009 --> 00:22:12,847 DAVID Malan: Takže môžete naozaj vidieť if, else if, iný nápad tu. 510 00:22:12,847 --> 00:22:15,430 Je to jednoducho iná syntaxe vyjadrujú presne rovnaký nápad. 511 00:22:15,430 --> 00:22:17,690 >> MARIA: Presne tak. 512 00:22:17,690 --> 00:22:19,480 Teraz máme ternárnu operátormi. 513 00:22:19,480 --> 00:22:24,900 Takže ternárnu prevádzkovatelia majú Tri parts-- podmienku, 514 00:22:24,900 --> 00:22:27,220 čo robiť v prípade, táto podmienka je pravda, 515 00:22:27,220 --> 00:22:29,730 a potom sa niečo robiť ak táto podmienka je nepravdivá. 516 00:22:29,730 --> 00:22:33,400 Tak vidíte, v podstate, syntaxe, ktorý tu. 517 00:22:33,400 --> 00:22:37,792 Máme otáznik, a potom the-- čo hovoríme to? 518 00:22:37,792 --> 00:22:38,750 DAVID Malan: hrubého čreva. 519 00:22:38,750 --> 00:22:39,100 MARIA: Colon. 520 00:22:39,100 --> 00:22:39,599 Ďakujem. 521 00:22:39,599 --> 00:22:41,880 Prepáčte. 522 00:22:41,880 --> 00:22:45,800 Takže poďme sa pozrieť na našu napríklad na zistiť, či môžeme zmysel tohle-- 523 00:22:45,800 --> 00:22:47,840 class_num == 50. 524 00:22:47,840 --> 00:22:52,580 Takže tu vidíme na nášho operátora Boolean == ktorý porovnáva variabilný class_num 525 00:22:52,580 --> 00:22:53,100 do 50. 526 00:22:53,100 --> 00:22:55,150 Takže class_num ukladá celé číslo. 527 00:22:55,150 --> 00:22:58,180 A ak to celé číslo rovná sa 50, potom sme 528 00:22:58,180 --> 00:23:02,810 bude ukladať "David Malan" vnútri reťazca profesora. 529 00:23:02,810 --> 00:23:05,912 Ak je číslo trieda nie je rovná 50, "nie David Malan" 530 00:23:05,912 --> 00:23:07,120 bude profesor. 531 00:23:07,120 --> 00:23:08,630 >> DAVID Malan: Ďakujem. 532 00:23:08,630 --> 00:23:12,110 A tak to vyzerá ekvivalentná Čo by ste povedal na prvý pohľad? 533 00:23:12,110 --> 00:23:17,930 534 00:23:17,930 --> 00:23:19,960 >> MARIA: Pre mňa sa zdá, ako if-else. 535 00:23:19,960 --> 00:23:20,709 >> DAVID Malan: Jo. 536 00:23:20,709 --> 00:23:24,020 A v skutočnosti, to je druh pekná jednej vložky, 537 00:23:24,020 --> 00:23:27,520 aby som tak povedal, pre vykonávanie presne logika if-else 538 00:23:27,520 --> 00:23:29,010 ale robí všetko v jednom kroku. 539 00:23:29,010 --> 00:23:29,860 >> MARIA: Presne tak. 540 00:23:29,860 --> 00:23:30,360 Jo. 541 00:23:30,360 --> 00:23:33,520 Takže ak-else by mohla zaberajú veľa priestoru. 542 00:23:33,520 --> 00:23:36,283 Môžu byť príliš dlhý niečo tak jednoduché, ako to. 543 00:23:36,283 --> 00:23:38,350 Takže to môže byť veľmi stručné a veľmi pekné. 544 00:23:38,350 --> 00:23:40,880 545 00:23:40,880 --> 00:23:46,820 Takže teraz ideme do pohľadu na znovu a znovu vykonávajúci niečo, 546 00:23:46,820 --> 00:23:50,060 takže kontrola podmieňujú viackrát 547 00:23:50,060 --> 00:23:53,510 a potom pokračuje niečo urobiť zatiaľ čo táto podmienka je pravda. 548 00:23:53,510 --> 00:23:56,740 Takže to nás privádza pekne do while. 549 00:23:56,740 --> 00:23:59,270 >> Na ľavej strane, máme náš prvý cyklus while. 550 00:23:59,270 --> 00:24:03,840 Takže keď niečo je pravda, urobiť znovu a znovu niečo. 551 00:24:03,840 --> 00:24:08,850 Takže uistite sa, že všimnúť, že naše Podmienkou tu je overená v hornej časti. 552 00:24:08,850 --> 00:24:14,150 Zatiaľ čo u nášho druhého loop-- hovoríme že do-kým loop-- niečo robíme, 553 00:24:14,150 --> 00:24:15,890 potom skontrolovať podmienku. 554 00:24:15,890 --> 00:24:17,980 A ak túto podmienku aj naďalej aby to bola pravda, 555 00:24:17,980 --> 00:24:20,150 sme sa vrátiť a urobiť vec znovu. 556 00:24:20,150 --> 00:24:23,360 Tak hlavný rozdiel je tam, kde podmienka je kontrolovaná. 557 00:24:23,360 --> 00:24:29,260 A kód nesmie byť nikdy vykoná, ak podmienka nie je 558 00:24:29,260 --> 00:24:30,430 platí o cykle while. 559 00:24:30,430 --> 00:24:33,050 Kým sa do-while slučka, máme kód 560 00:24:33,050 --> 00:24:35,380 , Ktorý je vždy vykonaný aspoň raz. 561 00:24:35,380 --> 00:24:37,470 A potom, keď je podmienka aj naďalej aby to bola pravda, 562 00:24:37,470 --> 00:24:39,960 sa môžeme vrátiť späť a opakovať znovu dovnútra. 563 00:24:39,960 --> 00:24:43,625 Tak prečo si myslíš, že by sme použiť do-while cez while? 564 00:24:43,625 --> 00:24:48,221 565 00:24:48,221 --> 00:24:48,720 Doprava. 566 00:24:48,720 --> 00:24:52,600 Takže ak chceme prinúti užívateľ na nejaký vstup, 567 00:24:52,600 --> 00:24:55,400 ak chceme ich spýtate zadajte svoje meno, 568 00:24:55,400 --> 00:24:57,342 Chceme, aby aspoň raz spýtajte sa ich. 569 00:24:57,342 --> 00:24:59,050 A v prípade, že vstúpia že názov, nie sme 570 00:24:59,050 --> 00:25:00,740 sa s nimi znova opýtať preto, že už ho poznáme. 571 00:25:00,740 --> 00:25:02,656 Ale v prípade, že nevstúpi ich názov, alebo ak 572 00:25:02,656 --> 00:25:05,787 zadajte niečo, čo je samozrejme nie je meno, 573 00:25:05,787 --> 00:25:08,120 napriek tomu chceme pokračovať požiadala ich o ich mená. 574 00:25:08,120 --> 00:25:10,710 >> DAVID Malan: A v prednáške sme mali jeden takto sa dostať pozitívnym int 575 00:25:10,710 --> 00:25:13,550 Napríklad tam, kde nie je čo skontrolovať na prvý, pretože ste ani 576 00:25:13,550 --> 00:25:14,190 dostal int. 577 00:25:14,190 --> 00:25:16,680 Takže chceme robiť tohle-- získať int z user-- 578 00:25:16,680 --> 00:25:18,860 potom ho skontrolovať, možno, znovu a znovu a znovu. 579 00:25:18,860 --> 00:25:21,030 >> MARIA: Presne tak. 580 00:25:21,030 --> 00:25:22,060 Pre loops-- OK. 581 00:25:22,060 --> 00:25:25,842 Pre slučky môžu dovoliť, aby sme robili takmer presne to isté, rovnako. 582 00:25:25,842 --> 00:25:27,300 Je to vlastne presne to isté. 583 00:25:27,300 --> 00:25:30,190 Takže nie je nič, čo môžete robiť s pre slučky 584 00:25:30,190 --> 00:25:32,840 že by ste neboli schopní čo do činenia s cyklami while. 585 00:25:32,840 --> 00:25:36,900 Ale pre slučky sa môže zdať trochu trochu zložitejšie syntakticky 586 00:25:36,900 --> 00:25:39,730 preto, že majú tri časti vo vnútri, čo 587 00:25:39,730 --> 00:25:42,990 bolo predtým len stav s cyklami while. 588 00:25:42,990 --> 00:25:48,260 Takže prvá časť, ktorá vám more, najviac vľavo, máme "int trpaslíci = 0." 589 00:25:48,260 --> 00:25:51,490 Takže toto je miesto, kde sme inicializovať našej premenné. 590 00:25:51,490 --> 00:25:55,210 >> Potom máme bodkočiarka a "trpaslíci <7." 591 00:25:55,210 --> 00:25:57,100 Takže toto je miesto, kde sa stav v skutočnosti je. 592 00:25:57,100 --> 00:26:00,170 Takže to je to, čo budeme mať dal práve v čase loop-- 593 00:26:00,170 --> 00:26:01,880 "zatiaľ čo trpaslíci <7." 594 00:26:01,880 --> 00:26:05,380 Tu, že ide v Uprostred nášho slučky for. 595 00:26:05,380 --> 00:26:07,190 Takže "dwaves <7." 596 00:26:07,190 --> 00:26:11,350 A potom je naša posledná časť je "trpaslíci ++," čo je miesto, kde sme sa aktualizujeme premenné. 597 00:26:11,350 --> 00:26:15,470 Tak dôležité si uvedomiť, že toto 598 00:26:15,470 --> 00:26:22,010 sa chystá prejsť to pre slučku sedemkrát a spustiť sedemkrát. 599 00:26:22,010 --> 00:26:24,020 Takže máme sedem trpaslíci, a oni sú všetci 600 00:26:24,020 --> 00:26:26,020 chcel povedať, "Som tu aby vám pomohol, Snow White " 601 00:26:26,020 --> 00:26:28,860 preto, že sú pripravení na pomoc Snehulienku. 602 00:26:28,860 --> 00:26:33,600 >> S while, by sme urobili inicializácia a aktualizácie 603 00:26:33,600 --> 00:26:37,490 nie vo vnútri stave, znovu, ale buď pred alebo vo vnútri while 604 00:26:37,490 --> 00:26:40,210 aby sa uistil, že we-- pretože potrebujeme vždy tie časti. 605 00:26:40,210 --> 00:26:42,835 Tak, aby sa uistil, že máme nich by máme ešte pridali 606 00:26:42,835 --> 00:26:44,580 na, len nie v zátvorkách. 607 00:26:44,580 --> 00:26:47,288 >> DAVID Malan: A tak to vyzerá jako-- V prednáške, napríklad, 608 00:26:47,288 --> 00:26:50,250 Aj takmer vždy používajú, rád, ja a n a celkom nudné premenných. 609 00:26:50,250 --> 00:26:53,050 Vyzerá to, že môžete použiť viac chytro pomenovaný premenných, taky. 610 00:26:53,050 --> 00:26:56,300 >> MARIA: Áno, je to vlastne veľmi pekné použiť trochu viac opisných premenných 611 00:26:56,300 --> 00:26:59,400 pretože najmä v prípade, niekto iný čítanie vašich code-- možná máš porovnávač 612 00:26:59,400 --> 00:27:00,940 alebo ak spolupráca s somebody-- 613 00:27:00,940 --> 00:27:03,481 chcete, aby sa uistil, že rozumieť tomu, čo robíte. 614 00:27:03,481 --> 00:27:05,750 615 00:27:05,750 --> 00:27:06,400 >> OK. 616 00:27:06,400 --> 00:27:11,435 Tak toto je niečo veľmi funky-- pre slučku vnútri slučky for. 617 00:27:11,435 --> 00:27:13,060 Ja neviem, či sme videli skôr. 618 00:27:13,060 --> 00:27:13,830 Pravdepodobne nie. 619 00:27:13,830 --> 00:27:17,750 Ale môžeme skutočne tohle-- takže slučky miesto slučiek. 620 00:27:17,750 --> 00:27:25,130 Takže to niekto chcel snáď chodiť mi skrze to, čo sa tu deje? 621 00:27:25,130 --> 00:27:28,240 622 00:27:28,240 --> 00:27:29,490 DAVID Malan: Vezmem bodnúť. 623 00:27:29,490 --> 00:27:29,970 MARIA: cool. 624 00:27:29,970 --> 00:27:30,636 DAVID Malan: OK. 625 00:27:30,636 --> 00:27:34,690 Takže, spoiler-- chceme vytlačiť veci že je v pravom dolnom rohu 626 00:27:34,690 --> 00:27:35,190 tam. 627 00:27:35,190 --> 00:27:35,450 >> MARIA: Správne. 628 00:27:35,450 --> 00:27:35,710 Hej hej. 629 00:27:35,710 --> 00:27:38,043 >> DAVID Malan: Takže máme len dal, že ukážkový výstup tam. 630 00:27:38,043 --> 00:27:42,590 Takže môžem vyvodzovať z vrchný slučka, že ste 631 00:27:42,590 --> 00:27:45,680 iterácie cez riadky v vonkajšie slučku, aby som tak povedal. 632 00:27:45,680 --> 00:27:48,107 A tie iterácie cez stĺpy s najvnútornejšie slučke. 633 00:27:48,107 --> 00:27:50,190 A intuitívne, toto by snáď zmysel 634 00:27:50,190 --> 00:27:52,070 preto, že podľa povahy Každý program, ktorý sme videli 635 00:27:52,070 --> 00:27:55,570 pred, printf, čo je Funkcie používame, nakoniec, 636 00:27:55,570 --> 00:27:58,190 má schopnosť tlačiť veci v podstate tak, riadok po riadku. 637 00:27:58,190 --> 00:27:59,960 Rovnako ako, akonáhle ste na výstup nový riadok, je tu 638 00:27:59,960 --> 00:28:02,876 no zdvojnásobenie späť a tlač niečo vyššia v rozsahu, aspoň 639 00:28:02,876 --> 00:28:04,530 nepoužívate printf takhle. 640 00:28:04,530 --> 00:28:07,750 >> A tak sa v tomto ohľade, to robí pocit, že najvzdialenejšie slučka 641 00:28:07,750 --> 00:28:10,930 by mal byť s odkazom na riadky pretože pre každý daný riadok, 642 00:28:10,930 --> 00:28:13,650 budete chcieť vytlačiť XXXXX, a potom 643 00:28:13,650 --> 00:28:15,520 prejsť na ďalší riadok, XXXXX. 644 00:28:15,520 --> 00:28:17,317 Takže riadky sú na prvom mieste. 645 00:28:17,317 --> 00:28:19,150 A potom sa v rámci každej riadok, tlače stĺpce. 646 00:28:19,150 --> 00:28:21,160 Ak ste sa pokúsili urobiť s opak, by to pravdepodobne nie 647 00:28:21,160 --> 00:28:21,690 vyjdú ako máte v úmysle. 648 00:28:21,690 --> 00:28:22,190 >> MARIA: Jo. 649 00:28:22,190 --> 00:28:24,950 Jednoducho sme nemohli vrátiť do predchádzajúci riadok s printf. 650 00:28:24,950 --> 00:28:27,658 >> DAVID Malan: A čo je zaujímavé na dnešné rozhovor o rozsahu, 651 00:28:27,658 --> 00:28:31,600 v skutočnosti je to, že rad je int ktorá je deklarovaná v najvyššej slučke. 652 00:28:31,600 --> 00:28:34,030 Ale všimnite si, že je to stále vo vnútri, aby som tak povedal, 653 00:28:34,030 --> 00:28:35,982 zložené zátvorky, ktoré bezprostredne nasledovať, 654 00:28:35,982 --> 00:28:38,440 aj keď to nie je technicky v týchto zložených zátvoriek. 655 00:28:38,440 --> 00:28:41,750 Takže rad je v rozsahu pre celistvosť úryvku kódu, 656 00:28:41,750 --> 00:28:44,690 ako vo vnútri, tak aj na vonkajšie pre sláčiky a vo vnútri vnútornej slučky for. 657 00:28:44,690 --> 00:28:48,050 Ale naopak, kde je stĺpec v rozsahu? 658 00:28:48,050 --> 00:28:49,810 Premenná stĺpec? 659 00:28:49,810 --> 00:28:51,310 Jo, iba vo vnútornej slučke. 660 00:28:51,310 --> 00:28:54,280 A to je v poriadku, pretože nemáme prístup to mimo jeho zložených zátvoriek. 661 00:28:54,280 --> 00:28:57,280 Všetko, čo urobiť, je vytlačiť nový linka na samom konci tam. 662 00:28:57,280 --> 00:28:58,670 Tak, že v skutočnosti je v poriadku. 663 00:28:58,670 --> 00:29:03,740 >> Tak to má za následok, to vyzerá, robiť tri riadky a štyri stĺpce. 664 00:29:03,740 --> 00:29:04,370 >> MARIA: Správne. 665 00:29:04,370 --> 00:29:06,270 Takže najprv sme sa prejsť naše prvom rade. 666 00:29:06,270 --> 00:29:10,520 A práve v našej prvej rade, robíme štyri stĺpce vnútri prvom rade. 667 00:29:10,520 --> 00:29:11,980 Tak sme sa vytlačiť štyri X .. 668 00:29:11,980 --> 00:29:15,800 A potom môžeme ukončiť slučky for, pretože sme už vytlačené štyri X .. 669 00:29:15,800 --> 00:29:17,100 A tlačíme nový riadok. 670 00:29:17,100 --> 00:29:19,920 A potom pôjdeme cez Rovnaký postup pre dva viac radoch 671 00:29:19,920 --> 00:29:21,170 aby celkom tri. 672 00:29:21,170 --> 00:29:23,530 >> DAVID Malan: A to je potrebné poznamenať, že je to len artefakt písma, skutočnosť, 673 00:29:23,530 --> 00:29:25,680 že na výstupe vzorky Zdá sa tak oveľa vyššia, 674 00:29:25,680 --> 00:29:27,520 ako keby tam je viac riadkov než stĺpcov. 675 00:29:27,520 --> 00:29:29,824 Ale je to len preto, že X je vyššia ako širšia. 676 00:29:29,824 --> 00:29:32,740 To je všetko, čo sa tam deje, plus biely priestor medzi riadkami. 677 00:29:32,740 --> 00:29:33,281 >> MARIA: Správne. 678 00:29:33,281 --> 00:29:34,792 Super. 679 00:29:34,792 --> 00:29:35,750 DAVID Malan: Dobre. 680 00:29:35,750 --> 00:29:39,830 Tak rýchly pohľad na problém nastaviť jednu, vziať nejaké otázky, a potom prerušuje? 681 00:29:39,830 --> 00:29:40,330 Dobre. 682 00:29:40,330 --> 00:29:43,164 Takže problém nastaviť jednu, tú tri Hlavnými problémami, nakoniec. 683 00:29:43,164 --> 00:29:44,955 Ale najprv, zistíte, že problém nastaviť 684 00:29:44,955 --> 00:29:47,900 špecifikácie, ako sa mnohé psets tento rok na jeseň, sa chystá, aby vás 685 00:29:47,900 --> 00:29:50,691 prostredníctvom niekoľkých zahrievacích cvičení, bod, ktorý na niekoľko zdrojov, 686 00:29:50,691 --> 00:29:52,440 ktoré môžu alebo nevidel už. 687 00:29:52,440 --> 00:29:54,440 Napríklad, CS50 má sadu šortky, 688 00:29:54,440 --> 00:29:56,481 ktoré sú krátke video, nie je na rozdiel od, ale že 689 00:29:56,481 --> 00:29:58,460 sú veľmi téma specific-- Možno päť minút, 690 00:29:58,460 --> 00:30:02,360 10 minút na dĺžku o slučkách alebo o podmienkach alebo o algoritmoch 691 00:30:02,360 --> 00:30:04,125 alebo neskôr na viac pokročilá témy, rovnako. 692 00:30:04,125 --> 00:30:06,000 A my všeobecne vložiť tie, do problému 693 00:30:06,000 --> 00:30:07,950 súpravy tak, že študenti majú zdroj, s ktorými 694 00:30:07,950 --> 00:30:10,840 preskúmať materiál, ktorý by mohol mať Už prísť v prednáške alebo sekcie. 695 00:30:10,840 --> 00:30:13,220 Ale takto je to cielenejšie a viac na dosah ruky. 696 00:30:13,220 --> 00:30:15,928 >> Máme tiež inklinujú vložiť do problému nastavuje veci zvanej priechody. 697 00:30:15,928 --> 00:30:20,790 Takže takmer všetky príklady robím V prednáške, na javisku tu, my tiež 698 00:30:20,790 --> 00:30:24,565 natočili na kameru v pokročiť viac pomalší, 699 00:30:24,565 --> 00:30:28,760 viac intímne návod mnou na môj notebook tohto kódexu, riadok po riadku 700 00:30:28,760 --> 00:30:31,427 takže v triede, budeme často prelistovať niečo alebo niekoho 701 00:30:31,427 --> 00:30:33,260 bude prehodiť s odpoveď na otázku. 702 00:30:33,260 --> 00:30:35,820 Ale to nie je nevyhnutne potopiť v pre každého v publiku. 703 00:30:35,820 --> 00:30:38,230 Takže nájdete kód návody Pre väčšinu príkladov 704 00:30:38,230 --> 00:30:40,950 čo robíme tu v prednáške, takže si môžu chodiť cez to svojím vlastným tempom 705 00:30:40,950 --> 00:30:43,580 a pretočiť alebo rýchlo dopredu alebo vynechať úplne, ak budete chcieť. 706 00:30:43,580 --> 00:30:45,356 >> Tam je často málo warm-up otázky, ktoré 707 00:30:45,356 --> 00:30:47,105 vás požiadať o akési posilniť tento materiál 708 00:30:47,105 --> 00:30:50,250 a uistite sa, že ste pred pohodlný budete pokračovať so zvyškom pset. 709 00:30:50,250 --> 00:30:51,700 A potom, samozrejme, je tu pset sám. 710 00:30:51,700 --> 00:30:53,450 A jedna z vecí, sme veľmi uvážene 711 00:30:53,450 --> 00:30:57,202 robiť v CS50 je takmer každý nezaujímavý alebo intelektuálne nezaujímavý 712 00:30:57,202 --> 00:30:58,910 mechanický krok, ktorý možno budete musieť urobiť, 713 00:30:58,910 --> 00:31:00,519 je takmer vždy veľmi dobre zdokumentované. 714 00:31:00,519 --> 00:31:03,560 V priebehu funkčného obdobia, budeme začne klásť viac rečnícke otázky 715 00:31:03,560 --> 00:31:06,187 ako spomenúť, ako sa to či ono? 716 00:31:06,187 --> 00:31:08,520 Ale všeobecne, zistíte, že problém sady vám 717 00:31:08,520 --> 00:31:10,269 cez mechaniky niečoho tak, že 718 00:31:10,269 --> 00:31:14,160 zaujímavé, intelektuálne výzvy sa nakoniec nechal na vás študenta. 719 00:31:14,160 --> 00:31:17,390 >> Vďaka, že povedal, Zamyla, ktorým sme priebežne odkazuje dnes v prednáške, 720 00:31:17,390 --> 00:31:20,190 je jedným z našich dlhoročných zamestnancov Člen, ktorý tiež drží návody 721 00:31:20,190 --> 00:31:24,520 o špecifických problémoch, ako je Mario pset a chamtivý, keď nie voda v tomto roku. 722 00:31:24,520 --> 00:31:26,540 A to je v tých priechody, že ona často 723 00:31:26,540 --> 00:31:29,450 ponúka niekoľko tipov a trikov pre ako postupovať, nikdy ti 724 00:31:29,450 --> 00:31:31,810 presne to, čo robiť, ale rather-- ako podmienku, 725 00:31:31,810 --> 00:31:35,200 ak will-- poskytne vám aspoň pár nápadov, takže je len na vás, 726 00:31:35,200 --> 00:31:37,830 nakoniec, sa rozhodnúť, ako k nim pristupovať. 727 00:31:37,830 --> 00:31:41,200 >> MARIA: niečo ako vysokej úrovni pochopenie logiky, čo 728 00:31:41,200 --> 00:31:42,220 žiadame vás o to. 729 00:31:42,220 --> 00:31:42,485 >> DAVID Malan: Presne tak. 730 00:31:42,485 --> 00:31:44,190 A v skutočnosti, Zamyla je návody sú určené 731 00:31:44,190 --> 00:31:46,190 často zodpovedať spýtal sa otázka, kde 732 00:31:46,190 --> 00:31:48,610 mám začal, najmä keď Tieto dlhé špecifikácie sú 733 00:31:48,610 --> 00:31:51,960 trochu skľučujúce daný všetok text a snímky, ktoré sa majú v nich. 734 00:31:51,960 --> 00:31:54,890 >> Takže water.c, zistíte, potom, čo ste dokončil to, 735 00:31:54,890 --> 00:31:56,920 je v skutočnosti pomerne jednoduché. 736 00:31:56,920 --> 00:31:58,882 Absolútne sú banda z vás bude buchnúť 737 00:31:58,882 --> 00:32:01,840 tvoje hlavy proti múru snažia zistiť, prečo to nie je kompilácii 738 00:32:01,840 --> 00:32:03,450 alebo prečo to nie je spustený správne. 739 00:32:03,450 --> 00:32:05,040 Ale akonáhle budete hotoví s ním, a akonáhle ste 740 00:32:05,040 --> 00:32:07,620 strávil nejaký čas zápasí s niektorou z chýb, ktoré môžete mať, 741 00:32:07,620 --> 00:32:09,490 zistíte, že je to veľmi krátky program. 742 00:32:09,490 --> 00:32:11,770 To možno vykonať v niekoľkých málo riadkov kódu, z ktorých väčšina 743 00:32:11,770 --> 00:32:15,030 sme tu videli v prednáške už, pokiaľ zostavíte tie správne stavebné kamene. 744 00:32:15,030 --> 00:32:16,810 >> A ako navrhujeme tu, to sa opýtať 745 00:32:16,810 --> 00:32:22,250 určiť, koľko minút niekto v sprche na akademickej pôde. 746 00:32:22,250 --> 00:32:24,779 Určíme v probléme nastaviť prietok vody 747 00:32:24,779 --> 00:32:27,320 v, ako, sprchový kút s nízkym prietokom hlava, podobne ako Seinfeld klip 748 00:32:27,320 --> 00:32:29,180 sme videli včera, alebo opak týchto látok. 749 00:32:29,180 --> 00:32:30,971 A potom stačí len urobiť trochu matematiky, 750 00:32:30,971 --> 00:32:34,710 really-- aritmetiku pomocou C povedať nám, koľko, zhruba, fľaše s vodou 751 00:32:34,710 --> 00:32:37,720 je to ekvivalentné, ak sme pričom k n-minútové sprchu. 752 00:32:37,720 --> 00:32:41,389 >> Teraz, v mario.c, toto sa deje , Že je o niečo dlhšia programu. 753 00:32:41,389 --> 00:32:42,930 Je to stále nebude to dlho. 754 00:32:42,930 --> 00:32:45,130 Len pár riadkov dlhší ako water.c. 755 00:32:45,130 --> 00:32:48,230 Ale to bude príležitosť obnoviť staré školy Mario 756 00:32:48,230 --> 00:32:50,670 pyramída z Super Mario Bratia alebo niektoré follow-on. 757 00:32:50,670 --> 00:32:53,510 Nebude to vyzerať ako krajšie alebo ako farebné ako ten tam jeden. 758 00:32:53,510 --> 00:32:56,468 Sme len tak použiť malé hashtag ako máme tu na obrazovke 759 00:32:56,468 --> 00:32:58,120 pomocou textu ASCII. 760 00:32:58,120 --> 00:33:00,362 Ale to bude približovať rovnaký nápad. 761 00:33:00,362 --> 00:33:02,570 A bude to byť cvičenie, ktoré na prvý pohľad 762 00:33:02,570 --> 00:33:04,720 Zdá sa, celkom simple-- len vytlačiť jednoduchý pyramídu. 763 00:33:04,720 --> 00:33:07,345 Ale je tu pár charakteristiky tu to sú zaujímavé. 764 00:33:07,345 --> 00:33:12,400 Všimnite si, že úplne vpravo okraje pyramída vlastne má šírku dva. 765 00:33:12,400 --> 00:33:14,570 Takže tam sú dve rovná výška stĺpca, ktoré 766 00:33:14,570 --> 00:33:16,804 robí to vyžadovať trochu bit myslenia, aby sa 767 00:33:16,804 --> 00:33:19,720 že ste si, že presne to pravé, as protiľahlý k len dokonale hranatý 768 00:33:19,720 --> 00:33:20,220 online. 769 00:33:20,220 --> 00:33:23,340 Tak to už je trochu rohového prípadu ale zodpovedá skutočnej hry. 770 00:33:23,340 --> 00:33:27,610 >> A to je tiež non-zrejmý na prvý pohľad pohľad, ako vytlačiť prázdne miesto. 771 00:33:27,610 --> 00:33:29,430 Takže keď som sa pozrieť na ukážkový výstup here-- 772 00:33:29,430 --> 00:33:32,440 a je to tiež v spec-- to trochu vyzerá ako obdĺžnik, 773 00:33:32,440 --> 00:33:35,120 ale diagonálne z obdĺžnik bol useknuté, 774 00:33:35,120 --> 00:33:37,320 a je to len biele miesta, aby som tak povedal. 775 00:33:37,320 --> 00:33:40,100 A tak často kladené Otázkou je vždy dobre, 776 00:33:40,100 --> 00:33:43,302 ako mám presunúť hashtag na správnu? 777 00:33:43,302 --> 00:33:44,760 Alebo ako môžem vytlačiť medzery? 778 00:33:44,760 --> 00:33:46,860 A je to vlastne jednoduchšie než väčšina študentov myslí. 779 00:33:46,860 --> 00:33:47,360 Doprava? 780 00:33:47,360 --> 00:33:51,620 Môžete priblížiť ju vizuálne len biť medzerníka raz alebo dvakrát 781 00:33:51,620 --> 00:33:52,700 alebo trikrát. 782 00:33:52,700 --> 00:33:56,260 >> A tak, aj keď s printf sme takmer vždy vytlačiť reťazec alebo int 783 00:33:56,260 --> 00:33:59,950 alebo slová, ako je "Dobrý deň, world "alebo séria slov, 784 00:33:59,950 --> 00:34:03,560 môžete tiež len vytlačiť citát, vesmírnych, koniec citátu. 785 00:34:03,560 --> 00:34:06,320 A to skutočne dať ste tam biele miesto. 786 00:34:06,320 --> 00:34:08,330 Takže majte na pamäti, že aj nie overthink to. 787 00:34:08,330 --> 00:34:10,570 Ty naozaj musím rozhodnúť, riadok po riadku po riadku, 788 00:34:10,570 --> 00:34:14,280 nie na rozdiel od vašej napríklad pred chvíľou, ako mnohí z tých, 789 00:34:14,280 --> 00:34:18,420 Stĺpce by mala byť biele miesta a koľko z nich by mal byť hashtags. 790 00:34:18,420 --> 00:34:21,560 Bude to trvať trochu času, ale je to nakoniec logické puzzle druhov. 791 00:34:21,560 --> 00:34:22,060 >> MARIA: Jo. 792 00:34:22,060 --> 00:34:25,060 Ale logika sa riadok po riadku bude veľmi užitočné tu. 793 00:34:25,060 --> 00:34:25,810 DAVID Malan: Jo. 794 00:34:25,810 --> 00:34:28,976 Myslím si, že ukážkový kód, ktorý dokonca gave-- hoci to nebolo kompletný program. 795 00:34:28,976 --> 00:34:34,247 Stále je potrebné int a hlavné a neplatné a #include stdio.h, 796 00:34:34,247 --> 00:34:35,580 veľa vecí z prednášky. 797 00:34:35,580 --> 00:34:37,629 Ale stavebné bloky Zdá sa, že tam. 798 00:34:37,629 --> 00:34:39,920 A potom konečne niečo trochu viac algoritmické. 799 00:34:39,920 --> 00:34:43,210 Tak to dopadá, že kedykoľvek budete ísť do CVS alebo akékoľvek samoobsluhe 800 00:34:43,210 --> 00:34:47,810 a niekto vás podá u pokladničné poukážky alebo mince ako zmena, 801 00:34:47,810 --> 00:34:50,620 Ukazuje sa, že oni, ľudia, či alebo nie oni to vedia, alebo nie, 802 00:34:50,620 --> 00:34:53,300 pravdepodobne používate, čo je volal chamtivý algoritmus, 803 00:34:53,300 --> 00:34:58,170 pričom ak ste dlhoval, povedzme, $ dvacetjeden v zmene preto, že z nejakého dôvodu 804 00:34:58,170 --> 00:35:01,580 ste si kúpili niečo veľmi lacný s veľmi veľkým účet v CVS, 805 00:35:01,580 --> 00:35:05,910 že by bolo v prípade, že naozaj otravné pokladničné vám dal 21 singlov, alebo horšie 806 00:35:05,910 --> 00:35:07,629 napriek tomu, veľa mincí. 807 00:35:07,629 --> 00:35:10,670 Skôr, čo rozumná osoba je pravdepodobne bude urobiť, je, že idú 808 00:35:10,670 --> 00:35:14,224 chytiť 20- $ a potom $ 1-účet, a odovzdať vám len dve bankovky v tejto veci. 809 00:35:14,224 --> 00:35:17,390 MARIA: Takže oni sa snažia minimalizovať Zmena, ktorá dávajú späť k vám. 810 00:35:17,390 --> 00:35:17,850 DAVID Malan: Presne tak. 811 00:35:17,850 --> 00:35:19,540 A rovnaká dohoda s mincami, rovnako. 812 00:35:19,540 --> 00:35:23,040 Ak ste dlhoval, povedzme, $ 0,50 dúfajme, že si neželáte, aby 50 haliere. 813 00:35:23,040 --> 00:35:25,500 Namiesto toho chcete, aby dvaja ubikácie, napríklad. 814 00:35:25,500 --> 00:35:27,540 Teraz, to však predpokladať, že pokladničné má 815 00:35:27,540 --> 00:35:29,940 dosť všetkých ostatných názvov, ktoré on alebo ona by mohla chcieť, aby vám. 816 00:35:29,940 --> 00:35:32,148 Ale my vám umožní prevziať ako v problému. 817 00:35:32,148 --> 00:35:35,590 A cieľ, nakoniec, je implementovať v C kód chamtivý algoritmus. 818 00:35:35,590 --> 00:35:37,344 Takže užívateľ je povolené zadať, ako veľmi 819 00:35:37,344 --> 00:35:40,510 Zmena on alebo ona dlhuje s dolármi a centov, nejaký druh pohyblivou rádovou čiarkou 820 00:35:40,510 --> 00:35:41,590 hodnota pravdepodobne. 821 00:35:41,590 --> 00:35:45,530 A potom budete musieť robiť matematiku a zistiť algoritmickým, dobre, 822 00:35:45,530 --> 00:35:49,020 koľko mincí môžem dať budete minimálne, aby vám 823 00:35:49,020 --> 00:35:50,270 presne to množstvo zmien. 824 00:35:50,270 --> 00:35:53,470 Ale tam to bude bude Niekoľko zákerné časti tu, že jo? 825 00:35:53,470 --> 00:35:56,236 Rovnako ako je tu celá otázka nepresnosť. 826 00:35:56,236 --> 00:35:56,860 MARIA: Presne tak. 827 00:35:56,860 --> 00:35:59,114 Tak floating point hodnoty majú nepresnosť. 828 00:35:59,114 --> 00:36:00,780 Mali by sme hovoriť o tom v prednáške dnes? 829 00:36:00,780 --> 00:36:02,340 >> DAVID Malan: Urobili sme naposledy v prednáške. 830 00:36:02,340 --> 00:36:03,506 Hovorili sme o nepresnosti. 831 00:36:03,506 --> 00:36:08,840 A nechcete podvádzať užívateľa o tom, ako veľmi zmena on alebo ona je dlhuje. 832 00:36:08,840 --> 00:36:11,290 A tak priechod, v Problém set špecifikácie, 833 00:36:11,290 --> 00:36:15,990 zamyslieť, v konečnom dôsledku, pokiaľ ide o ako môžete zmierniť tie nepresnosť 834 00:36:15,990 --> 00:36:17,280 chyby, potenciálne. 835 00:36:17,280 --> 00:36:21,050 Je to nevyhnutné, samozrejme, pre vstupy hovoríme. 836 00:36:21,050 --> 00:36:23,590 A v skutočnosti, pennies-- Možno budeme odložiť na Zamyla, 837 00:36:23,590 --> 00:36:25,136 Myslím, že pre tamojší triky. 838 00:36:25,136 --> 00:36:27,760 Takže nakoniec, budete nájsť progresie problémov tento týždeň, 839 00:36:27,760 --> 00:36:30,700 z ktorých prvá je celkom malý, potom medium, potom o niečo väčší. 840 00:36:30,700 --> 00:36:33,200 Ale všetci z nich používajú budovu bloky od tohto minulý týždeň, 841 00:36:33,200 --> 00:36:35,280 z tohto supersection, Problém set špecifikácia 842 00:36:35,280 --> 00:36:36,710 vám dáva pri nespočetných zdrojov. 843 00:36:36,710 --> 00:36:41,000 Ale napriek tomu, ak vôbec bojovať, najmä medzi tými menej pohodlné 844 00:36:41,000 --> 00:36:42,917 bez predchádzajúcej pozadím, prísť na úradné hodiny 845 00:36:42,917 --> 00:36:44,958 v pondelok a utorok a Streda a štvrtok. 846 00:36:44,958 --> 00:36:46,950 Prejsť na CS50 Diskutovať cez Webové stránky kurzu je, 847 00:36:46,950 --> 00:36:49,080 cez ktorý môžete chatovať so zamestnancami a spolužiakmi. 848 00:36:49,080 --> 00:36:51,670 >> Ale nakoniec, myslím, že Najlepšia rada je jednoducho začať čoskoro. 849 00:36:51,670 --> 00:36:54,711 Nie je to ten druh triedy, ktorá vám by mali byť počnúc psets v stredu 850 00:36:54,711 --> 00:36:56,640 v noci, alebo horšie vo štvrtok v noci. 851 00:36:56,640 --> 00:36:59,067 >> MARIA: Moja najlepšia rada je aby začali v pondelok. 852 00:36:59,067 --> 00:36:59,900 DAVID Malan: pondelok. 853 00:36:59,900 --> 00:37:02,490 Takže ak ste ešte nezačali already-- no. 854 00:37:02,490 --> 00:37:04,732 Ale aj keby nie Pondelok, potom v utorok. 855 00:37:04,732 --> 00:37:05,690 Čím skôr, tým lepšie. 856 00:37:05,690 --> 00:37:08,605 A to je dôvod, prečo Kurz má toľko neskoré dní 857 00:37:08,605 --> 00:37:10,535 aby vám trochu psychologický nátlak 858 00:37:10,535 --> 00:37:13,684 začať skôr, ale stále nechať veci, sklzu, kedy sa veci trvať dlhšie 859 00:37:13,684 --> 00:37:14,350 než očakávate. 860 00:37:14,350 --> 00:37:17,950 >> MARIA: A chcete využiť úradné hodiny, rovnako ako je to možné, tiež. 861 00:37:17,950 --> 00:37:20,291 >> DAVID Malan: Nejaké otázky? 862 00:37:20,291 --> 00:37:20,790 Dobre. 863 00:37:20,790 --> 00:37:22,930 No, prečo nie my odložiť tu? 864 00:37:22,930 --> 00:37:23,487