1 00:00:00,000 --> 00:00:11,736 2 00:00:11,736 --> 00:00:16,626 >> [VIDEO PLAYBACK] 3 00:00:16,626 --> 00:00:19,410 >> -A Trijumf matematička i mehanička vještina 4 00:00:19,410 --> 00:00:23,270 je ovaj veliki novi automatski kalkulator na Sveučilištu Harvard. 5 00:00:23,270 --> 00:00:27,140 Zapetljan problemi u matematici staviti kroz stroj u kodiranom obliku 6 00:00:27,140 --> 00:00:31,710 na vrpci se točno riješiti u minuta djeliću vremena potrebno 7 00:00:31,710 --> 00:00:32,819 za ljudsku izračuna. 8 00:00:32,819 --> 00:00:44,280 9 00:00:44,280 --> 00:00:48,220 Dizajniran da ubrzaju sve oblike matematička i znanstvena istraživanja, 10 00:00:48,220 --> 00:00:53,840 div mehanički mozak će raditi za Sjedinjene Države mornarice do kraja rata. 11 00:00:53,840 --> 00:01:03,620 12 00:01:03,620 --> 00:01:06,570 >> [END PLAYBACK] 13 00:01:06,570 --> 00:01:08,590 >> DAVID J. Malan: Ovo je CS50. 14 00:01:08,590 --> 00:01:10,590 Prošlost je čaroban mjesto, ali ako ste ikada 15 00:01:10,590 --> 00:01:13,366 pitali što da uređaj u Harvard Science Center, 16 00:01:13,366 --> 00:01:16,150 to je doista dio su Harvard Mark I, i to je 17 00:01:16,150 --> 00:01:18,710 na zaslonu tamo sada u posljednjih mnogo godina. 18 00:01:18,710 --> 00:01:20,590 A što ćete vidjeti ugrađen u problemu set 19 00:01:20,590 --> 00:01:24,416 jedan je pogled iza kulisa na što je uređaj učinio, i čini, 20 00:01:24,416 --> 00:01:27,540 od profesora Harry Lewis, koji je u znanost odjel računalo ovdje. 21 00:01:27,540 --> 00:01:29,440 Dakle, više o tome u samo malo. 22 00:01:29,440 --> 00:01:33,990 >> No, danas smo počeli tranziciji od prošlog tjedna na ovo, 23 00:01:33,990 --> 00:01:37,290 a mi ćemo donijeti spomenuti jedne fotografije ovdje 24 00:01:37,290 --> 00:01:38,630 to je zapravo vrlo poznata. 25 00:01:38,630 --> 00:01:42,270 Se bilo tko znati što je to Ovdje je na zaslonu? 26 00:01:42,270 --> 00:01:43,880 Barem prema mitu. 27 00:01:43,880 --> 00:01:44,837 Da. 28 00:01:44,837 --> 00:01:45,920 PUBLIKA: Prvi virus. 29 00:01:45,920 --> 00:01:49,570 DAVID J. Malan: Tako je navodno Prvi stvarni bug u računalu. 30 00:01:49,570 --> 00:01:52,490 Sada je u stvarnosti riječ bug, zbog greške u programu, 31 00:01:52,490 --> 00:01:55,250 je s nama za neke Vrijeme u fizičkom svijetu, 32 00:01:55,250 --> 00:01:58,190 i to je bio jedan od prvih dokumentirani puta gdje je netko zapravo 33 00:01:58,190 --> 00:02:02,280 iskopali veliku moljca iz Marku II računalo, stavite ga u vezivu, 34 00:02:02,280 --> 00:02:05,006 a zatim ga snimio kao prvi poznati bug 35 00:02:05,006 --> 00:02:06,630 da su zapravo utvrđeno tjelesno. 36 00:02:06,630 --> 00:02:10,104 Dakle, time je ušao da je u današnjem nauka. 37 00:02:10,104 --> 00:02:12,020 Sve od prošlog Tjedan je dostupan online. 38 00:02:12,020 --> 00:02:14,840 U pojedinim resursima koje možda ne nužno primijetiti, osobito 39 00:02:14,840 --> 00:02:15,881 Ako dolazite ovdje u osobi. 40 00:02:15,881 --> 00:02:20,230 Tako je jedan od nastavnih bližnjima svaki godine čini kanonsku skup bilješke, 41 00:02:20,230 --> 00:02:22,010 tako da ne morate držati glavu prema dolje, pokušavajući 42 00:02:22,010 --> 00:02:24,410 prepisati najviše ništa da bi se moglo dogoditi ovdje u klasi. 43 00:02:24,410 --> 00:02:25,940 Dakle, shvatite da oni Takozvani [? Scribd?] Bilješke 44 00:02:25,940 --> 00:02:29,350 online, svakako slajdova i izvorni kod koji koristimo u razredu. 45 00:02:29,350 --> 00:02:31,436 Izrađujemo puni tekst transkripata dostupni kao dobro. 46 00:02:31,436 --> 00:02:34,310 Dakle, ako ste maglovito sjećam neke pojam, a želite to pogledati malo 47 00:02:34,310 --> 00:02:37,280 lakše, shvatiti da sve to je pretraživati ​​online. 48 00:02:37,280 --> 00:02:38,930 Kao i Walkthroughs kao dobro. 49 00:02:38,930 --> 00:02:42,710 Doista, danas počinjemo gledati na niža razina programski jezik, 50 00:02:42,710 --> 00:02:45,290 Uskoro će se znati za nas kao C, i to je vrlo lako 51 00:02:45,290 --> 00:02:48,820 na neki način gubi se nakon samo nekoliko trenutke vremena, a onda nekako čudo 52 00:02:48,820 --> 00:02:52,370 koliko smo zapravo dobio na neke više Kompleks primjer iz najjednostavnije. 53 00:02:52,370 --> 00:02:54,975 I tako smo shvatili ćete trešnja pokupiti tijekom nastave nekom 54 00:02:54,975 --> 00:02:57,850 od reprezentativnih primjera, ali shvatite da toliko više je 55 00:02:57,850 --> 00:03:01,140 dostupan online, tako da možete raditi kroz to vlastitim tempom, 56 00:03:01,140 --> 00:03:02,950 no vi ste najudobniji. 57 00:03:02,950 --> 00:03:05,200 >> Ali smo stali s programi koji su upravo to. 58 00:03:05,200 --> 00:03:09,690 Tako sam kliknite na zelenu zastavu, a što se ovaj program učiniti? 59 00:03:09,690 --> 00:03:10,710 Kaže, zdravo, svijet. 60 00:03:10,710 --> 00:03:13,180 To čini mačka kažu Pozdrav u svom malom svijetu 61 00:03:13,180 --> 00:03:15,990 na gornjem lijevoj strani od nule korisničko sučelje. 62 00:03:15,990 --> 00:03:18,810 No, počeli smo uvoditi Neki terminologija prošlog tjedna. 63 00:03:18,810 --> 00:03:23,614 I tako, stvari kao što je ovaj smo pozvani što? 64 00:03:23,614 --> 00:03:25,280 Što bi moglo biti generički izraz za to? 65 00:03:25,280 --> 00:03:26,266 Da. 66 00:03:26,266 --> 00:03:28,210 Metoda ili izjava. 67 00:03:28,210 --> 00:03:29,280 Svakako, to je akcija. 68 00:03:29,280 --> 00:03:30,140 Učinite to. 69 00:03:30,140 --> 00:03:32,400 A ipak, bilo je drugi oblici ispočetka, 70 00:03:32,400 --> 00:03:35,360 Osim tih tzv Izjava, oni su također 71 00:03:35,360 --> 00:03:38,221 stvari kao što je ovaj, koji smo nazvali što? 72 00:03:38,221 --> 00:03:38,720 Da. 73 00:03:38,720 --> 00:03:39,634 Tako se petlja. 74 00:03:39,634 --> 00:03:42,050 I u ovom slučaju, to je stvar ponavlja, očito, 10 puta. 75 00:03:42,050 --> 00:03:43,040 Postoji zauvijek blok. 76 00:03:43,040 --> 00:03:44,164 Postoji nekoliko drugih. 77 00:03:44,164 --> 00:03:48,309 I danas ćemo vidjeti kako prevesti to više suvremenom svijetu, 78 00:03:48,309 --> 00:03:50,850 ako će, iako je će se na prvi pogled 79 00:03:50,850 --> 00:03:52,024 da će biti puno više Arcane. 80 00:03:52,024 --> 00:03:53,190 No, oni su doista petlje. 81 00:03:53,190 --> 00:03:56,182 A onda smo stvari kao što su to što je ovaj oblik, 82 00:03:56,182 --> 00:03:57,515 i bitno postavljana pitanja. 83 00:03:57,515 --> 00:03:58,890 A iz smo ih kao što? 84 00:03:58,890 --> 00:03:59,762 >> PUBLIKA: logički izraz. 85 00:03:59,762 --> 00:04:00,320 >> DAVID J. Malan: Da. 86 00:04:00,320 --> 00:04:01,340 Logički izraz. 87 00:04:01,340 --> 00:04:04,502 Nešto što je bilo istina ili lažna, da ili ne, jedan ili nula, 88 00:04:04,502 --> 00:04:05,960 No želite vidjeti svijet. 89 00:04:05,960 --> 00:04:08,335 Ali mi se zove one Boolean izrazi, a mi ih uključite 90 00:04:08,335 --> 00:04:09,900 u uvjetima ili grane. 91 00:04:09,900 --> 00:04:12,170 A u svijetu Blok, sve lijepo 92 00:04:12,170 --> 00:04:15,460 blokatori u pogledu svog oblika, ako to čini logično smisla da to učini, 93 00:04:15,460 --> 00:04:18,490 ali ne morate se zaustaviti na samo radi jedna stvar uvjetno, 94 00:04:18,490 --> 00:04:20,450 možete imati izreku raskrižju 95 00:04:20,450 --> 00:04:24,040 i to bilo ovo ili ono, ako uvjet je istina ili ne. 96 00:04:24,040 --> 00:04:26,040 A onda, kao što ćete vidjeti, Ako to već niste učinili, 97 00:04:26,040 --> 00:04:27,480 Možete čak i gnijezda te blokove. 98 00:04:27,480 --> 00:04:32,110 Dakle ispočetka raste ispuniti oblike da možda želite umetnuti u nju, 99 00:04:32,110 --> 00:04:35,330 tako da zapravo možete izraziti najviše bilo logike da možda želite učiniti. 100 00:04:35,330 --> 00:04:38,220 >> Sada nekoliko riječi objave i za tu i New Haven. 101 00:04:38,220 --> 00:04:39,370 Dakle mikroskopom počinje danas. 102 00:04:39,370 --> 00:04:42,120 URL za to je na stazi a web stranice, za one koji nisu upoznati. 103 00:04:42,120 --> 00:04:43,970 Sekcije će biti prilika da se zajedno 104 00:04:43,970 --> 00:04:46,553 u mnogo intimnije okruženje od [? Sanders?] Dopušta, 105 00:04:46,553 --> 00:04:50,347 sa 10 do 20 kolega s poučavanje kolega na različitim stazama, 106 00:04:50,347 --> 00:04:51,930 i različitih koraka, ako tako odlučite. 107 00:04:51,930 --> 00:04:54,080 Doista tečaj ponude različite dijelove 108 00:04:54,080 --> 00:04:57,340 za one manje udoban, više udoban, a negdje između, 109 00:04:57,340 --> 00:04:59,860 i uloga thumb ovdje, nema formalna definicija, 110 00:04:59,860 --> 00:05:04,600 ali ako ste manje ugodno, ste vrsta poznajemo. 111 00:05:04,600 --> 00:05:07,470 Ti si malo neustrašivi o Ideja koračni nogu, možda, ponovno 112 00:05:07,470 --> 00:05:10,130 u učionici, ili prikazuje do jednog između dijelu. 113 00:05:10,130 --> 00:05:12,770 Ako ste bili programiranja jer vas Šest godina, udobnije, 114 00:05:12,770 --> 00:05:13,400 Možda vama. 115 00:05:13,400 --> 00:05:16,150 A ako je to vrsta bacanje-up, to je upravo ono što je između njih 116 00:05:16,150 --> 00:05:17,190 je značilo da se. 117 00:05:17,190 --> 00:05:18,410 >> Sada, u međuvremenu, za klasu ove veličine, 118 00:05:18,410 --> 00:05:21,326 to nam potrebno dosta vremena da se odjeljak Svatko, pa smo tzv, 119 00:05:21,326 --> 00:05:24,030 super sekcije, u ovome vikend i početkom sljedećeg tjedna, 120 00:05:24,030 --> 00:05:26,570 pa pogledajte na web stranici tijeku je za one koji su naravno široke, 121 00:05:26,570 --> 00:05:28,610 i snimio za one koji ne može napraviti ih. 122 00:05:28,610 --> 00:05:33,470 I dijelovi i sami će početi u tjedan dana tri od CS50 nula indeksa. 123 00:05:33,470 --> 00:05:35,880 Problem postavljen 0 je već na web stranici tečaja je. 124 00:05:35,880 --> 00:05:40,010 I shvatite da nemate devet dana kasni ovaj semestar. 125 00:05:40,010 --> 00:05:43,240 Dakle, ovo je nadogradnja od prošlog godine, kada smo imali pet dana kasno. 126 00:05:43,240 --> 00:05:46,210 >> Dakle, ako se pitate, imamo devet problema seta. 127 00:05:46,210 --> 00:05:53,200 Imate devet kasne dana, svaka od njih možete samo potrošiti jedan tjedno na. 128 00:05:53,200 --> 00:05:56,089 To učinkovito čini sve problem postavlja zbog Petak, 129 00:05:56,089 --> 00:05:58,630 ali cilj je da stavite malo Malo psihološkim pritiskom 130 00:05:58,630 --> 00:06:01,100 na vama je da pokušate dobiti stvari u četvrtak 131 00:06:01,100 --> 00:06:03,960 jer kao što ćete uskoro otkriti, za bolje ili za lošije, većina 132 00:06:03,960 --> 00:06:07,820 sve u softverskom svijetu završi traje mnogo dulje nego što predvidjeti. 133 00:06:07,820 --> 00:06:10,620 Tako je svojevrsna obzir mogućnosti da pomogne 134 00:06:10,620 --> 00:06:13,880 sami ciljati u četvrtak, ali tješiti da, da, 135 00:06:13,880 --> 00:06:14,950 sve je zbog petak. 136 00:06:14,950 --> 00:06:17,590 A ako ih pošaljete na Četvrtak, to je divno. 137 00:06:17,590 --> 00:06:21,020 Nema bonus bodova ili pomoćni kredit za ispunjavanje tog roka. 138 00:06:21,020 --> 00:06:23,250 To je značilo da se samo štaka. 139 00:06:23,250 --> 00:06:25,810 >> A radno vrijeme, i i ovdje u New Havenu, 140 00:06:25,810 --> 00:06:28,840 osobno, ako želite sastati s bilo kojim od naših tečajeva 141 00:06:28,840 --> 00:06:31,060 nastavna drugove i CAS za pomoć. 142 00:06:31,060 --> 00:06:31,640 >> U redu. 143 00:06:31,640 --> 00:06:33,110 Tako sada, učinimo to više stvaran. 144 00:06:33,110 --> 00:06:35,470 I na trenutak da će početi da se malo više kompliciranih, ali vrlo 145 00:06:35,470 --> 00:06:37,310 brzo u petak Sljedeći tjedan ćemo se 146 00:06:37,310 --> 00:06:41,230 mogućnosti učiniti mnogo više nego smo mogli do sada u nule. 147 00:06:41,230 --> 00:06:44,350 Tako smo uveli kôd posljednji tjedna, iako pictoral. 148 00:06:44,350 --> 00:06:45,620 To je bio slagalice. 149 00:06:45,620 --> 00:06:48,800 I formalizirana smo da je nešto što se zove izvorni kod, 150 00:06:48,800 --> 00:06:50,330 ali bi li izgledati? 151 00:06:50,330 --> 00:06:52,550 Pa, izgledalo je malo nešto ovako. 152 00:06:52,550 --> 00:06:55,410 A, u stvari, samo vrste zafrkavati gdje možemo ići s tim. 153 00:06:55,410 --> 00:06:57,800 Ja ću ići naprijed i otvoriti prozor ovdje, 154 00:06:57,800 --> 00:06:59,810 a ja sam samo će izabrati novu datoteku. 155 00:06:59,810 --> 00:07:03,200 I ja ću spremiti ovu datoteku kao nešto poput halo dot c. 156 00:07:03,200 --> 00:07:05,700 Više o tom izboru riječi u samo trenutak. 157 00:07:05,700 --> 00:07:08,630 A to je kako netko može go o pisanju programa. 158 00:07:08,630 --> 00:07:13,990 Uključuju standardni I / O točkica h, int glavna praznina, a zatim otvorite kovrčava braće, u neposrednoj blizini 159 00:07:13,990 --> 00:07:19,430 kovrčava braće, printf Pozdrav zarez svijet, backslash nje, točka i zarez, Spremi, učinjeno. 160 00:07:19,430 --> 00:07:19,930 U REDU. 161 00:07:19,930 --> 00:07:21,670 Ja sam napisao moj prvi Program, ali to se događa 162 00:07:21,670 --> 00:07:23,878 biti nevjerojatno neimpresioniran jer kad sam zapravo 163 00:07:23,878 --> 00:07:27,352 pokrenuti ovaj program, naravno, prvo pismeno izraditi Pozdrav, 164 00:07:27,352 --> 00:07:30,310 a onda dot slash Pozdrav, i mi ćemo proći kroz to mnogo detaljnije 165 00:07:30,310 --> 00:07:31,730 u jednom trenutku, da je sve to radi. 166 00:07:31,730 --> 00:07:33,270 Ne pop otvoriti sve prozore. 167 00:07:33,270 --> 00:07:35,070 To ne čini ništa osobito sviđa. 168 00:07:35,070 --> 00:07:38,830 Sve je to ipak ono što sam rekao da učiniti, ali kako ćemo doći do toga? 169 00:07:38,830 --> 00:07:40,560 A kako ćemo graditi na to? 170 00:07:40,560 --> 00:07:43,430 Pa, neka je uvesti neke različite koncepcije ovdje. 171 00:07:43,430 --> 00:07:47,170 >> Dakle, jedan, mi smo o za početak koristite program pod nazivom prevodilac. 172 00:07:47,170 --> 00:07:51,470 Prevodilac postoji za Mac OS, Windows, Linux, bilo koji broj operacijskih sustava, 173 00:07:51,470 --> 00:07:54,540 i uskoro ćemo vas uvesti u okruženje koje će se koristiti, 174 00:07:54,540 --> 00:07:57,410 ali prevodilac je samo opći Pojam za komad softvera 175 00:07:57,410 --> 00:08:01,940 koji traje izvorni kod i proizvodi objektnog koda iz nje. 176 00:08:01,940 --> 00:08:03,940 Drugim riječima, ako vama ima kao ulazni izvor signala 177 00:08:03,940 --> 00:08:08,250 broj, nešto poput onoga što sam upravo upisali, što u konačnici stvara objektnog koda. 178 00:08:08,250 --> 00:08:11,780 I objekt kod je zapravo samo fancy način govoreći izlazi 179 00:08:11,780 --> 00:08:12,926 nula i jedan je. 180 00:08:12,926 --> 00:08:14,800 Drugim riječima, izvor broj, iako je 181 00:08:14,800 --> 00:08:17,240 će izgledati malo Arcane, i malo manje prijateljski 182 00:08:17,240 --> 00:08:19,590 od nule, na prvi pogled, to je barem nešto 183 00:08:19,590 --> 00:08:21,120 da mi ljudi mogu razumjeti. 184 00:08:21,120 --> 00:08:24,360 To je vrsta izgleda i zvuči kao Engleski, iako je vrlo kratak. 185 00:08:24,360 --> 00:08:28,040 Dok programiranje u nula-a i jedan je, kako su naši preci morali učiniti, 186 00:08:28,040 --> 00:08:30,920 prije nekoliko godina, nije bilo osobito zabavno izazov. 187 00:08:30,920 --> 00:08:33,710 Pa ipak, to je ono što računalo i dalje ne razumije. 188 00:08:33,710 --> 00:08:37,010 Dakle, prevodilac nas dobiva iz izvorni kod objekta koda. 189 00:08:37,010 --> 00:08:39,860 To je kao otvaranje datoteke s prevodilac, i kada ga spasi, 190 00:08:39,860 --> 00:08:41,419 dobivate one nula i jedinica. 191 00:08:41,419 --> 00:08:43,419 Tako ćemo vidjeti kako to učiniti da je u samo jednom trenutku. 192 00:08:43,419 --> 00:08:47,400 >> Ali neka sada pokušati pružiti most između prošlog tjedna i to, 193 00:08:47,400 --> 00:08:50,660 tako da čak i dok smo se objesio na stvari kao što su vitičastih zagrada, 194 00:08:50,660 --> 00:08:54,100 i zarezom i zagrade, i sve to intelektualno zanimljiv 195 00:08:54,100 --> 00:08:57,620 aspekti programa, koji je vrlo razumljivo putovanje ljude rano, 196 00:08:57,620 --> 00:09:00,930 shvatiti da sve ideje danas su isti kao i prošle. 197 00:09:00,930 --> 00:09:03,975 Dakle prošli, vidjeli smo ovaj primjer Ovdje, Hello World programa. 198 00:09:03,975 --> 00:09:07,500 Pa, počevši od danas, ako želimo provesti taj isti program, 199 00:09:07,500 --> 00:09:10,800 to će izgledati Malo nešto ovako. 200 00:09:10,800 --> 00:09:14,040 A mi ćemo objasniti prije dugo ono int, i glavni i prazna, a sve to 201 00:09:14,040 --> 00:09:18,770 je, ali barem vidim ovdje već upoznati Hello World. 202 00:09:18,770 --> 00:09:20,860 >> U međuvremenu, stvari kao što su funkcija, pozdraviti, 203 00:09:20,860 --> 00:09:23,570 vrlo jednostavno će biti vrlo jednostavna izjava kao što je ovaj. 204 00:09:23,570 --> 00:09:26,930 Printf Pozdrav svijetu, s nekim citati, kosom crticom, 205 00:09:26,930 --> 00:09:29,780 sa zarezom, ali više o tome doći. 206 00:09:29,780 --> 00:09:34,066 Petlje, u međuvremenu, to je petlja koja, Naravno, kaže pozdravi svijet zauvijek, 207 00:09:34,066 --> 00:09:36,690 a ovaj će izgledati malo čudnije nego prošle, 208 00:09:36,690 --> 00:09:39,530 ali ako sam nešto reći kao što su, dok je istina, ja 209 00:09:39,530 --> 00:09:44,050 zatim možete ispisati Pozdrav svijetu opet i opet i opet i opet. 210 00:09:44,050 --> 00:09:46,660 A onda možeš vrsta od početi zaključiti ovdje 211 00:09:46,660 --> 00:09:49,070 ova Konvencija korištenja vitičastih zagrada je vrsta 212 00:09:49,070 --> 00:09:52,050 poput obuhvaćajući razvedena linija koda postoji. 213 00:09:52,050 --> 00:09:55,840 Printf linija koda slično žuti zagonetka komad iznad. 214 00:09:55,840 --> 00:09:58,740 Dakle, nećemo reći zauvijek, ćemo reći, a istina, 215 00:09:58,740 --> 00:10:01,020 ali vidjet ćemo zašto je u samo malo. 216 00:10:01,020 --> 00:10:04,210 >> U međuvremenu, ako imate petlje kao što je ovaj, gdje ponoviti nešto konačnih 217 00:10:04,210 --> 00:10:07,730 broj puta, to je jedan previše je uzeti malo navikavanje 218 00:10:07,730 --> 00:10:12,820 da, ali to će reći za int ja dobiva nula, ja manje od 10, i ++, 219 00:10:12,820 --> 00:10:14,056 a onda printf opet. 220 00:10:14,056 --> 00:10:15,430 No, tu će biti obrasci. 221 00:10:15,430 --> 00:10:18,434 A za one od vas upoznati sa AP Computer Science, ili Java, 222 00:10:18,434 --> 00:10:21,100 ili bilo koji broj drugih jezika, gotovo svih tih konstrukata 223 00:10:21,100 --> 00:10:23,820 do sada bi trebao izgledati govore upoznati. 224 00:10:23,820 --> 00:10:24,680 >> Dakle, promjenjiva. 225 00:10:24,680 --> 00:10:29,270 Dakle, ovdje je jednostavan izvadak ispočetka da postavlja varijablu nazvanu brojač na nulu, 226 00:10:29,270 --> 00:10:33,150 a onda zauvijek kaže brojač i onda to mijenja brojilo po jedan. 227 00:10:33,150 --> 00:10:37,030 Tako se počinje s nulom, te jedan, dva, tri. 228 00:10:37,030 --> 00:10:42,560 Pa, kako bismo mogli upoznati da u ovaj novi jezik malo slično? 229 00:10:42,560 --> 00:10:45,460 Int brojač jednak nula, dok je istina, što 230 00:10:45,460 --> 00:10:48,100 da je ista ideja od prije radiš nešto zauvijek, 231 00:10:48,100 --> 00:10:49,530 a ja sam samo idući u printf. 232 00:10:49,530 --> 00:10:53,310 A sada je sve malo čudno, posto ja, ali više o tome da se, 233 00:10:53,310 --> 00:10:55,140 ali te ideje su isti. 234 00:10:55,140 --> 00:10:58,820 Mi samo sada moraju pridržavati sintaksa da je računalo 235 00:10:58,820 --> 00:11:00,010 će zahtijevati od nas. 236 00:11:00,010 --> 00:11:04,620 >> Logički izraz, nešto poput SX manji od y ili x manji od y, 237 00:11:04,620 --> 00:11:06,354 i y manji od z. 238 00:11:06,354 --> 00:11:09,270 To će izgledati malo nešto ovako, s zagrade samo 239 00:11:09,270 --> 00:11:13,020 kao u matematici za dobru mjeru samo bi se osiguralo da je redoslijed operacija 240 00:11:13,020 --> 00:11:14,750 kao što namjeravamo. 241 00:11:14,750 --> 00:11:15,600 A sada, uvjeti. 242 00:11:15,600 --> 00:11:21,220 Dakle, ako je x manji od y, kažu x manje od y, inače ako je x veći od y, 243 00:11:21,220 --> 00:11:26,020 reći je x veći od y, inače logično, x mora biti jednaka y. 244 00:11:26,020 --> 00:11:28,710 Tako možete provesti nešto kao što je ovaj u nule, 245 00:11:28,710 --> 00:11:31,230 ili možda provesti to je u ovom sintaksi. 246 00:11:31,230 --> 00:11:35,090 A opet, vitičastim zagradama su vrsta dajući nam isti oblik kao slagalice 247 00:11:35,090 --> 00:11:40,750 komada, ali sintaksa, sada je možda počinju slijediti neke obrasce. 248 00:11:40,750 --> 00:11:42,910 >> Dakle, ono što nam to dati ovdje? 249 00:11:42,910 --> 00:11:45,260 Tako smo tada u našem glavnom programu. 250 00:11:45,260 --> 00:11:47,930 Neka je zapravo, danas, učiniti nešto s njom. 251 00:11:47,930 --> 00:11:50,660 Dakle, u ovom prva crta vidimo oštro su, 252 00:11:50,660 --> 00:11:53,160 standardni I / O, točku H i onda neki čudan kut 253 00:11:53,160 --> 00:11:57,330 nosači ispod toga. int glavna praznina, a onda printf Hello World. 254 00:11:57,330 --> 00:11:58,200 Dakle, samo uzeti korak. 255 00:11:58,200 --> 00:12:02,440 Netko tko nikad nije programiran prije, barem objasniti jedan od tih linija. 256 00:12:02,440 --> 00:12:04,490 Koristeći možda neki od žargonu prošlog tjedna. 257 00:12:04,490 --> 00:12:06,942 Što je printf, na primjer? 258 00:12:06,942 --> 00:12:07,442 Da. 259 00:12:07,442 --> 00:12:08,410 >> PUBLIKA: [nečujan] 260 00:12:08,410 --> 00:12:08,610 >> DAVID J. Malan: Da. 261 00:12:08,610 --> 00:12:11,380 To je funkcija ili izjava, od prošlotjednog terminologije. 262 00:12:11,380 --> 00:12:13,470 I to je radnja da radi nešto. 263 00:12:13,470 --> 00:12:15,855 Sada je to funkcija ili ova izjava, ne 264 00:12:15,855 --> 00:12:17,550 izgledala uzeti nekakav ulaz? 265 00:12:17,550 --> 00:12:20,080 266 00:12:20,080 --> 00:12:24,380 A u kojem smislu to radi Čini se da se ulaz, ako je tako? 267 00:12:24,380 --> 00:12:26,180 Ulaz, što mislim pod tim? 268 00:12:26,180 --> 00:12:26,720 Da. 269 00:12:26,720 --> 00:12:27,595 >> PUBLIKA: [nečujan] 270 00:12:27,595 --> 00:12:30,565 271 00:12:30,565 --> 00:12:31,440 DAVID J. Malan: Da. 272 00:12:31,440 --> 00:12:34,890 Dakle precrtati nekoliko slagalice gdje ga možete parametrize. 273 00:12:34,890 --> 00:12:37,980 Ti bi mogao reći ponavljanje blok koliko puta ponoviti, 274 00:12:37,980 --> 00:12:40,320 tako da je bio ulaz vrste, a baš kao i ispočetka 275 00:12:40,320 --> 00:12:43,060 imao malo bijelog rezervirano mjesto za broj biste upisali u, 276 00:12:43,060 --> 00:12:45,810 tako da mi koristimo u ovom Tekst svjetski zagrade 277 00:12:45,810 --> 00:12:49,910 da nam taj kružni oblik u koje možemo uključiti naš ulaz. 278 00:12:49,910 --> 00:12:53,180 Uostalom, nekoliko desetaka godina prije kada je taj jezik, nazvan C, 279 00:12:53,180 --> 00:12:55,950 je izumio nikoga Predviđa se da je jedan od nas, 280 00:12:55,950 --> 00:12:59,420 ti nekoliko godina kasnije, mi bismo Želite funkciju koja kaže zdravo. 281 00:12:59,420 --> 00:12:59,920 Pravo? 282 00:12:59,920 --> 00:13:02,880 Bilo bi lijepo kad bi bilo zagonetka komad, ili ključne riječi, 283 00:13:02,880 --> 00:13:05,502 kako se zove halo, da doslovno samo kaže zdravo. 284 00:13:05,502 --> 00:13:06,460 Ali mi ne treba. 285 00:13:06,460 --> 00:13:09,320 Možemo imati nešto puno niže razini, kao što su generički ispis 286 00:13:09,320 --> 00:13:12,760 naredba, koja se ulaz, i ispisuje sve što želimo. 287 00:13:12,760 --> 00:13:14,960 Dakle, primijetite sada uzorak koja će se početi pojavljivati. 288 00:13:14,960 --> 00:13:19,310 Otvorena zagrada, u neposrednoj blizini je zagr očito obuhvaćajući ulaz, 289 00:13:19,310 --> 00:13:21,770 a onda vidim duplo navodi na oba kraja. 290 00:13:21,770 --> 00:13:25,110 Tu je još čudno backslash nje, ali nadamo se sada 291 00:13:25,110 --> 00:13:29,900 možete početi vizualizirati barem da printf je to u nekom obliku ulaz. 292 00:13:29,900 --> 00:13:31,850 Ne kao korisnik prijazan kao Ispočetka, ali to je samo 293 00:13:31,850 --> 00:13:34,920 kao što je uključen u neke vrijednosti tamo. 294 00:13:34,920 --> 00:13:38,306 >> U redu, sada neka je zapravo učiniti nešto s tim. 295 00:13:38,306 --> 00:13:40,930 Dakle, neki od vas možda znaju iz što prije kupovala razred, 296 00:13:40,930 --> 00:13:42,638 čavrljao s prijateljima, koji već dugi niz godina 297 00:13:42,638 --> 00:13:44,590 mi se nešto što se zove CS50 aparat. 298 00:13:44,590 --> 00:13:49,160 To je termin koji opisuje tehnologiju zove virtualni stroj, koji se 299 00:13:49,160 --> 00:13:51,870 je komad softvera da je vaš prethodnici bi preuzeti s 300 00:13:51,870 --> 00:13:53,360 Web stranica Tečaj je besplatno. 301 00:13:53,360 --> 00:13:56,550 Oni će također preuzeti besplatno komad softvera zove hipervizor, 302 00:13:56,550 --> 00:14:00,590 nešto što se zove kao i VMware, ili VirtualBox, ili bilo koji broj 303 00:14:00,590 --> 00:14:04,450 drugih alata, a na Mac ili PC ili što god računalo imali prošle godine 304 00:14:04,450 --> 00:14:06,620 a proteklih godina, oni bi dvostruko kliknuti ikonu 305 00:14:06,620 --> 00:14:08,860 pokrenuti taj softver zove hipervizor. 306 00:14:08,860 --> 00:14:12,220 A onda unutar tog programa oni će otvoriti CS50 aparat. 307 00:14:12,220 --> 00:14:14,710 A učinak je bio taj je li prethodnik tvoj 308 00:14:14,710 --> 00:14:17,780 je pokrenut Mac OS ili Windows, on ili ona tada 309 00:14:17,780 --> 00:14:22,910 naknadno je novi prozor na njihove Zaslon trčanje CS50 okoliš. 310 00:14:22,910 --> 00:14:27,370 Dakle, virtualni stroj omogućuje pokretanje jednog operativni sustav unutar drugog, 311 00:14:27,370 --> 00:14:28,785 i to je upravo ono što smo učinili. 312 00:14:28,785 --> 00:14:31,410 Kroz većinu mi kolegija koristite operativni sustav pod nazivom 313 00:14:31,410 --> 00:14:34,070 Linux, posebno Ubuntu Linux, a to 314 00:14:34,070 --> 00:14:37,590 je vrlo lijep način u posljednjih godina od pazeći da svatko u tijeku 315 00:14:37,590 --> 00:14:38,840 Samo je imao istu okolinu. 316 00:14:38,840 --> 00:14:41,339 A možete koristiti bilo koju vrstu računalo koje zapravo želite. 317 00:14:41,339 --> 00:14:43,930 Među mane, ipak, bilo je to kao dva gigabajta 318 00:14:43,930 --> 00:14:45,480 preuzeti ovu stvar. 319 00:14:45,480 --> 00:14:50,310 To nije nužno raditi super dobro ljudi čija računala koja možda samo 320 00:14:50,310 --> 00:14:54,570 imala koncert ili tako RAM-a, ili ne Previše gigaherca brzine CPU, 321 00:14:54,570 --> 00:14:56,750 pa ove godine, za ove i drugih razloga, 322 00:14:56,750 --> 00:14:59,140 smo bili Prelaženje na ovom okruženju. 323 00:14:59,140 --> 00:15:03,730 Takozvani CS50 IDE, što je temelji se na open source softvera, 324 00:15:03,730 --> 00:15:07,380 i podržava platformu da tvrtka zove Cloud9 325 00:15:07,380 --> 00:15:11,110 podržava u Europi, koji omogućuje nam da se u biti 326 00:15:11,110 --> 00:15:15,770 da isti okoliš u proteklih godina, ali u tzv oblaka. 327 00:15:15,770 --> 00:15:17,532 >> Dakle, što je oblak? 328 00:15:17,532 --> 00:15:20,480 Vjerojatno ste kliknuli njegova ikona na vašem Mac ili PC. 329 00:15:20,480 --> 00:15:22,210 Što je oblak? 330 00:15:22,210 --> 00:15:22,709 Da? 331 00:15:22,709 --> 00:15:25,880 332 00:15:25,880 --> 00:15:26,780 Malo glasnije. 333 00:15:26,780 --> 00:15:30,510 334 00:15:30,510 --> 00:15:31,010 Da. 335 00:15:31,010 --> 00:15:33,770 To je samo hrpa računala drugdje da spremanje podataka i trčanje 336 00:15:33,770 --> 00:15:34,880 softver i slično. 337 00:15:34,880 --> 00:15:39,390 Dakle, to je stvarno samo riječi de Jure opisati [? iznajmiti?] 338 00:15:39,390 --> 00:15:40,930 računala koja žive negdje drugdje. 339 00:15:40,930 --> 00:15:42,810 To vas, sami, ne nužno posjedovati. 340 00:15:42,810 --> 00:15:45,256 Dakle, kada se podaci ili vaše Programi su u oblaku, 341 00:15:45,256 --> 00:15:47,630 to samo znači da je na nekoga tuđe računala drugdje, 342 00:15:47,630 --> 00:15:50,510 i ne, najvjerojatnije, na vašem fizička laptop ili stolno. 343 00:15:50,510 --> 00:15:52,990 I tako to je ono što CS50 IRO je. 344 00:15:52,990 --> 00:15:55,670 >> Ubuduće ćete ići na određeni URL koji će vas uvesti 345 00:15:55,670 --> 00:16:00,090 da, u problem postavite 1, kasnije ove tjedan, koji će onda, nakon prijave, 346 00:16:00,090 --> 00:16:01,480 dati vam ovo okruženje. 347 00:16:01,480 --> 00:16:03,896 I baš kao ispočetka imao nekoliko različitih paneli su uključeni, 348 00:16:03,896 --> 00:16:06,030 tako se CS50 je IDE imaju upravo to. 349 00:16:06,030 --> 00:16:09,480 Na gornjem lijevoj strani ovdje, ti si idući u vidjeti poznato preglednika datoteka. 350 00:16:09,480 --> 00:16:11,930 Dakle, bilo koji od datoteka koje staviti u ovom okruženju 351 00:16:11,930 --> 00:16:13,346 samo će biti na popisu. 352 00:16:13,346 --> 00:16:14,350 Datoteke i mape. 353 00:16:14,350 --> 00:16:16,790 Na vrhu upravo ovdje, ti ćeš vidjeti mjesto 354 00:16:16,790 --> 00:16:18,420 gdje se zapravo može pisati svoj kod. 355 00:16:18,420 --> 00:16:21,860 U početku u C, kasnije u termina u PHP i JavaScript, 356 00:16:21,860 --> 00:16:24,739 i, možda za konačni projekti, Ruby ili Java ili Python 357 00:16:24,739 --> 00:16:27,280 ili bilo koji broj jezika su podržane u ovom okruženju. 358 00:16:27,280 --> 00:16:30,130 To nije uopće vezan da CS50 posebno. 359 00:16:30,130 --> 00:16:33,390 >> A onda je u donjem kutu ovdje, pogotovo za one udobnije, 360 00:16:33,390 --> 00:16:35,590 imate nešto naziva terminala prozor. 361 00:16:35,590 --> 00:16:38,770 I ovaj prozor terminala omogućuje izvršavanje bilo koju naredbu koja vas 362 00:16:38,770 --> 00:16:40,860 Želite u ovom cloud okruženju. 363 00:16:40,860 --> 00:16:42,860 To vam omogućuje da instalirate bilo koji dodatni softver 364 00:16:42,860 --> 00:16:46,810 da želite, jer ste tzv korijen ili administratorske ovlasti. 365 00:16:46,810 --> 00:16:49,930 Dakle, drugim riječima, iako ovo je u konačnici domaćin u oblaku 366 00:16:49,930 --> 00:16:52,400 i iako smo to pojednostavljeno donekle 367 00:16:52,400 --> 00:16:57,110 po defaultu, doslovno uvođenja, zahvaljujući Dan Armendariz, Dino, 368 00:16:57,110 --> 00:17:01,070 Dan Bradley na CS50 tima nad pored mnogih mjeseci, manje ugodno 369 00:17:01,070 --> 00:17:05,140 mod koji skriva mnogo od početku zbunjujuće ometanja. 370 00:17:05,140 --> 00:17:10,119 Sve postoji na predstavlja tipičan računalni sustav 371 00:17:10,119 --> 00:17:12,319 da biste mogli koristiti u stvarnom svijetu. 372 00:17:12,319 --> 00:17:15,640 >> Pa što to sve znači, i što možemo zapravo učiniti s njom? 373 00:17:15,640 --> 00:17:19,124 Idemo zapravo zaviriti u program. 374 00:17:19,124 --> 00:17:21,290 Tako ću otvoriti stvarna okolina ovdje 375 00:17:21,290 --> 00:17:23,894 koji je samo naš Chrome preglednik, koji bi mogao biti Krijesnica, 376 00:17:23,894 --> 00:17:26,640 može biti Internet Explorer, ili neki drugi preglednik, kao dobro. 377 00:17:26,640 --> 00:17:28,400 To puna je prikazan ovdje za trenutak. 378 00:17:28,400 --> 00:17:31,580 I želim da se zapravo zafrkavati Osim što je ovaj program bio. 379 00:17:31,580 --> 00:17:36,170 Tako ćemo pogledati, tako povećavanja se vrh, na ono što sam učinio, i kako sam došao ovdje. 380 00:17:36,170 --> 00:17:38,315 Dakle, ovdje je onima točno iste linije koda. 381 00:17:38,315 --> 00:17:40,440 Dakle, ovo je izjava, kao što je ranije spomenuto. 382 00:17:40,440 --> 00:17:42,580 Funkcija da kaže zdravo. 383 00:17:42,580 --> 00:17:45,870 U vitičastim zagradama, na crta četiri i šest linija, 384 00:17:45,870 --> 00:17:49,290 vjerojatno vrsta koverti da crta ga povezati 385 00:17:49,290 --> 00:17:50,890 sa suštinom mog programa. 386 00:17:50,890 --> 00:17:54,890 Dakle, istina, ova ključna riječ glavna, to je gore na liniji tri, 387 00:17:54,890 --> 00:17:59,450 možete misliti da je kao ekvivalent od kad zelena zastava kliknuli, 388 00:17:59,450 --> 00:18:01,080 blok u nule. 389 00:18:01,080 --> 00:18:05,280 Dakle, to je sve što imamo ovdje, kada zelena zastava kliknuli, print, ili reći, 390 00:18:05,280 --> 00:18:06,700 Bok svijete. 391 00:18:06,700 --> 00:18:11,210 >> Ali uzmimo pogodak, sada, na ono što ovo prvo, više Arcane linija, je. 392 00:18:11,210 --> 00:18:15,100 Oštro su, otvorena pod kutom nosač, standardni I / O točka h, 393 00:18:15,100 --> 00:18:17,320 zatvoriti pod kutom nosač. 394 00:18:17,320 --> 00:18:19,850 Što se to možda čini, pogotovo ako ste programirani 395 00:18:19,850 --> 00:18:21,390 prije u nekom drugom jeziku. 396 00:18:21,390 --> 00:18:21,890 Da? 397 00:18:21,890 --> 00:18:22,765 >> PUBLIKA: [nečujan] 398 00:18:22,765 --> 00:18:25,095 399 00:18:25,095 --> 00:18:25,970 DAVID J. Malan: Da. 400 00:18:25,970 --> 00:18:26,470 Točno. 401 00:18:26,470 --> 00:18:29,455 Dakle, to je što vam daje pristup do knjižnica, da tako kažemo, funkcija. 402 00:18:29,455 --> 00:18:31,830 A knjižnica funkcija Funkcije koje netko drugi 403 00:18:31,830 --> 00:18:34,406 pisao, bilo je nedavno ili davno, tako da 404 00:18:34,406 --> 00:18:35,780 ne moraju izmisliti kotač. 405 00:18:35,780 --> 00:18:39,020 Na primjer, mi ne moraju znati, u 2015. godini, 406 00:18:39,020 --> 00:18:42,280 kako napisati kod koji stavlja lik na mom zaslonu. 407 00:18:42,280 --> 00:18:44,820 Netko je shvatio da s funkcijom printf 408 00:18:44,820 --> 00:18:47,280 tako da mogu sortirati od apstraktno daleko od toga, ili sloj 409 00:18:47,280 --> 00:18:49,350 na vrhu njegov ili njezin broj, a sada samo uzeti 410 00:18:49,350 --> 00:18:52,760 zdravo za gotovo da je bilo koji program pišem možete ispisati nešto na ekranu. 411 00:18:52,760 --> 00:18:58,150 Dakle, ovaj prvi red tamo u jednom koraku uključuje tzv zaglavlje datoteke 412 00:18:58,150 --> 00:18:59,980 za standardne biblioteke. 413 00:18:59,980 --> 00:19:02,630 Dakle vidite, jezik u što mi sada radimo 414 00:19:02,630 --> 00:19:05,010 imala standardne biblioteke s puno funkcija. 415 00:19:05,010 --> 00:19:07,240 Printf je jedan od njih, i da prva linija koda 416 00:19:07,240 --> 00:19:10,040 znači daj mi pristup te funkcije, tako da sam 417 00:19:10,040 --> 00:19:12,300 ne moraju izmisliti da kotač. 418 00:19:12,300 --> 00:19:15,940 >> Sada idemo u donjem prozoru i to je točno ono što sam učinio prije. 419 00:19:15,940 --> 00:19:18,520 Trenutak prije, kad sam bio whizzing kroz kod, 420 00:19:18,520 --> 00:19:24,540 upisivanjem po prvi put, I vrlo brzo upisali, provjerite zdravo. 421 00:19:24,540 --> 00:19:28,250 Što je to bilo bi li pogoditi? 422 00:19:28,250 --> 00:19:29,150 Što sam radio? 423 00:19:29,150 --> 00:19:29,649 Da? 424 00:19:29,649 --> 00:19:31,810 425 00:19:31,810 --> 00:19:32,310 Nema veze. 426 00:19:32,310 --> 00:19:32,970 Uredu je. 427 00:19:32,970 --> 00:19:33,492 Da. 428 00:19:33,492 --> 00:19:34,450 PUBLIKA: to Izrada. 429 00:19:34,450 --> 00:19:34,700 DAVID J. Malan: Da. 430 00:19:34,700 --> 00:19:35,770 To je jednostavno sastavljanje. 431 00:19:35,770 --> 00:19:36,270 Pravo? 432 00:19:36,270 --> 00:19:39,280 Čak i ako je to potpuno nepoznato vama, to je prilično engleski kao. 433 00:19:39,280 --> 00:19:41,155 To sigurno nije nula i oni, pa sam i dalje 434 00:19:41,155 --> 00:19:44,220 trebate ga pokrenuti preko takozvanog Program, prevodilac, koji će 435 00:19:44,220 --> 00:19:46,060 ga uzeti kao ulaz i proizvoditi izlaz. 436 00:19:46,060 --> 00:19:48,270 A barem za sada, u to Linux okruženju, 437 00:19:48,270 --> 00:19:51,030 ali to nije uvjet, ovo je samo gdje ćemo početi, 438 00:19:51,030 --> 00:19:53,960 općenito interakciju s računalni sustavi kao što je ovaj 439 00:19:53,960 --> 00:19:55,770 po tzv komandne linije. 440 00:19:55,770 --> 00:19:57,790 Dakle, s treperenjem brz i tipkovnicu, 441 00:19:57,790 --> 00:20:01,630 a ne toliko miša, a ne toliko prozore i ikone i izbornici, 442 00:20:01,630 --> 00:20:02,980 a sve je tekstualni. 443 00:20:02,980 --> 00:20:06,180 I iako to osjeća, na prvi pogled, možda, kao korak unatrag, 444 00:20:06,180 --> 00:20:08,437 to je zapravo mnogo više snažan i izražajan način 445 00:20:08,437 --> 00:20:10,270 kontroliranje računalo pogotovo što je vama, 446 00:20:10,270 --> 00:20:12,950 sebe, postaju ugodno s manje. 447 00:20:12,950 --> 00:20:16,790 To će vam omogućiti da učinite mnogo više stvari nego samo ono što Microsoft 448 00:20:16,790 --> 00:20:20,390 ili Apple vam omogućuje da učinite s njihov grafički operativni sustav. 449 00:20:20,390 --> 00:20:23,270 >> Dakle, kad sam pritisnite Enter, sada, ništa se ne događa ovo vrijeme 450 00:20:23,270 --> 00:20:25,960 jer očito Program pozdravi je do danas. 451 00:20:25,960 --> 00:20:28,250 A što je naredba Trčao sam nakon toga? 452 00:20:28,250 --> 00:20:32,370 Dot slash Pozdrav, i Hello World. 453 00:20:32,370 --> 00:20:34,350 Sada ćemo uzeti jedan korak natrag samo na trenutak. 454 00:20:34,350 --> 00:20:39,510 Ispada da bi pozdravio je samo pojednostavljeni način sastavljanja programa. 455 00:20:39,510 --> 00:20:41,670 Ajmo uvesti jedan komad žargon, 456 00:20:41,670 --> 00:20:43,470 ali onda se odmaknuti iz nje, jer to nije 457 00:20:43,470 --> 00:20:46,640 sve to zanimljivo za današnje potrebe. 458 00:20:46,640 --> 00:20:51,000 Prevodilac ćemo početi koristiti zove se zveket, na C jeziku. 459 00:20:51,000 --> 00:20:54,280 A to je program koji je izvoditi samo kao što smo učinili u naredbenom retku tamo. 460 00:20:54,280 --> 00:20:56,580 I tako, ako želim sastaviti program koji sam 461 00:20:56,580 --> 00:21:00,790 napisali u datoteci pod nazivom Pozdrav točka c, sam doslovno samo upišite jeka Hello c 462 00:21:00,790 --> 00:21:02,100 ući. 463 00:21:02,100 --> 00:21:04,880 >> Smiješno je što je, povijesnih razloga, 464 00:21:04,880 --> 00:21:07,750 ako ne odredite naziv programa 465 00:21:07,750 --> 00:21:11,690 da želim izlaz, ako ja ne odredite naziv datoteke za one nula 466 00:21:11,690 --> 00:21:14,990 i one, vrlo čudno Prije je usvojena Konvencija godina 467 00:21:14,990 --> 00:21:17,390 gdje je osjetio vrsta dobar odgovor na vrijeme, 468 00:21:17,390 --> 00:21:21,650 i neka je samo proizvoljno nazvati Prvi program sastavimo točku van. 469 00:21:21,650 --> 00:21:22,900 Dolazi prvi u pismu. 470 00:21:22,900 --> 00:21:23,920 Out, to je izlaz. 471 00:21:23,920 --> 00:21:26,210 Tako ćemo nazvati program po defaultu dot van. 472 00:21:26,210 --> 00:21:29,550 I to je u redu, jer ako želim pokrenuti program u ovom tekstu na temelju 473 00:21:29,550 --> 00:21:33,590 okoliš, samo sam tip dot slash točku izvan ući. 474 00:21:33,590 --> 00:21:35,250 I to bi pokrenuti točno kao i prije. 475 00:21:35,250 --> 00:21:36,880 Tako ćemo vidjeti da je jako brzo. 476 00:21:36,880 --> 00:21:40,370 >> Dakle, ako sam se vratiti u moj koda u CS50 IDE, 477 00:21:40,370 --> 00:21:47,860 i ja umjesto da to učinite, zveket Pozdrav krevetić c ući, obavijest ništa ne čini da se dogodi, 478 00:21:47,860 --> 00:21:49,790 ali gotovo uvijek to Linux okruženju, 479 00:21:49,790 --> 00:21:53,310 kad ništa loše činiti se to dogoditi, da znači nešto dobro zapravo dogodilo. 480 00:21:53,310 --> 00:21:56,270 Ako ne vidite pogrešku Poruka, sve je vjerojatno dobro. 481 00:21:56,270 --> 00:22:01,930 I doista, ako ja sada napraviti dot slash točku kako ući, ja sam pokrenuti moje isti program. 482 00:22:01,930 --> 00:22:04,610 Ja još uvijek imaju Hello programa od ranije, jer doista, to je 483 00:22:04,610 --> 00:22:07,430 će biti toliko ljepše samo upišite bi umjesto sjećanja 484 00:22:07,430 --> 00:22:10,240 ove vračanja naredbe, ali vidjet ćemo kako ćemo 485 00:22:10,240 --> 00:22:12,890 Možda poboljšati ovo, ipak. 486 00:22:12,890 --> 00:22:15,340 >> Dakle, ovo je naredba sastaviti kod. 487 00:22:15,340 --> 00:22:19,100 Ovo je naredba za pokretanje prikupljenih kod toga. 488 00:22:19,100 --> 00:22:20,546 Kako mogu odrediti naziv datoteke? 489 00:22:20,546 --> 00:22:22,670 Pa neka je samo uvesti još jedan komad žargon. 490 00:22:22,670 --> 00:22:24,461 Kada ste u ovom Tekst se temelji okoliša, 491 00:22:24,461 --> 00:22:27,400 ti si idući u ištanje to odrediti stvari nazivaju argumente naredbenog retka. 492 00:22:27,400 --> 00:22:31,380 Koji je samo fancy način govoreći, drugim riječima na redak koji 493 00:22:31,380 --> 00:22:33,860 ugađanje ponašanje bilo Program radite. 494 00:22:33,860 --> 00:22:37,320 Dakle, konkretno program sam trčanje, upisivanjem imena zveket, 495 00:22:37,320 --> 00:22:38,504 je program pod nazivom zveket. 496 00:22:38,504 --> 00:22:40,920 Dakle, ovo je ili stara škola ekvivalent dvostrukim klikom 497 00:22:40,920 --> 00:22:42,860 Microsoft Word ili Ikona neki program a. 498 00:22:42,860 --> 00:22:46,360 Ja sam umjesto da upišete svoje ime, ali u ovoj verziji naredbe, 499 00:22:46,360 --> 00:22:51,334 I onda se crtica O prostor Pozdrav prostor Pozdrav točka c. 500 00:22:51,334 --> 00:22:53,500 Dakle, čak i ako ste nikada igrao u ovom svijetu prije, 501 00:22:53,500 --> 00:22:58,160 samo uzeti pogodite što nema crtica o pozdravi učiniti? 502 00:22:58,160 --> 00:23:00,620 Ili što to kažem zveket učiniti? 503 00:23:00,620 --> 00:23:01,386 Da. 504 00:23:01,386 --> 00:23:02,455 >> PUBLIKA: [nečujan] 505 00:23:02,455 --> 00:23:03,330 DAVID J. Malan: Da. 506 00:23:03,330 --> 00:23:08,614 To samo postavlja datoteku je izlaz se Pozdrav umjesto gluplje dot van. 507 00:23:08,614 --> 00:23:09,780 I, doista, pokušajmo to. 508 00:23:09,780 --> 00:23:14,250 Dakle, ako ja sada učiniti, prvo učinimo to, r m zdravo. 509 00:23:14,250 --> 00:23:15,590 To je ukloniti. 510 00:23:15,590 --> 00:23:18,450 A to će reći, uklanjanje redovito file Pozdrav, što 511 00:23:18,450 --> 00:23:22,210 je nepotrebno arcane, ali to je samo znači ne želite izbrisati datoteku, 512 00:23:22,210 --> 00:23:23,230 i ja tip y za potvrdan odgovor. 513 00:23:23,230 --> 00:23:27,340 A primjetiti, ako ste bili na vrhu gledajući lijevo, to je nestati iz gore. 514 00:23:27,340 --> 00:23:32,180 Dopustite mi sada napraviti zveket crtica O, i Ja ću ići naprijed i učiniti Pozdrav, 515 00:23:32,180 --> 00:23:34,890 u svim kape, pozdravi točka c. 516 00:23:34,890 --> 00:23:37,775 Sada, ako ja dot crta Pozdrav, što bi ste očekivali? 517 00:23:37,775 --> 00:23:41,240 518 00:23:41,240 --> 00:23:42,430 >> Možda je to mala slova. 519 00:23:42,430 --> 00:23:43,070 Možda to nije. 520 00:23:43,070 --> 00:23:44,030 Da vidimo. 521 00:23:44,030 --> 00:23:45,230 Nema takve datoteke ili direktorija. 522 00:23:45,230 --> 00:23:47,438 I možemo vrsta varati samo gleda na gornjem lijevom. 523 00:23:47,438 --> 00:23:49,630 Ono što sam učinio očito spremiti program kao? 524 00:23:49,630 --> 00:23:51,070 Sve kape zdravo. 525 00:23:51,070 --> 00:23:53,020 Dakle, istina, to je idući napraviti razliku. 526 00:23:53,020 --> 00:23:54,540 Tako sada Hello World je natrag. 527 00:23:54,540 --> 00:23:56,969 Sada je to sve u redu i dobro, a svi vrlo um-numbing, 528 00:23:56,969 --> 00:23:59,760 na kakve dobiti bogged dolje u tim detalji, ali ih razumjeti 529 00:23:59,760 --> 00:24:00,500 dobro. 530 00:24:00,500 --> 00:24:02,675 >> Tipkanje tih sve duge incantations 531 00:24:02,675 --> 00:24:05,980 ne će biti osobito zabavno, pa ljudi na svijetu 532 00:24:05,980 --> 00:24:08,260 izmislili drugi program, Prije nekoliko godina, pod nazivom 533 00:24:08,260 --> 00:24:12,190 bi, da je sasvim jednostavno vam omogućuje da upišete make, 534 00:24:12,190 --> 00:24:14,530 naziv programa želite napraviti, a čine 535 00:24:14,530 --> 00:24:18,580 je pametan u smislu da će izgledati u trenutna mapa, zvani imeniku, 536 00:24:18,580 --> 00:24:21,440 a ako imate datoteke Pozdrav zove točka c, 537 00:24:21,440 --> 00:24:25,800 da je datoteka će sastaviti za vas u program pod nazivom Hello. 538 00:24:25,800 --> 00:24:29,950 Dakle, to je mnogo jednostavnije način radiš više zagonetan naredbe 539 00:24:29,950 --> 00:24:30,800 da smo učinili ranije. 540 00:24:30,800 --> 00:24:34,080 I mi smo pre-konfiguriran CS50 IDE znati 541 00:24:34,080 --> 00:24:38,560 da treba napraviti crtica O i broj druge zastave, ili argumente naredbenog retka, 542 00:24:38,560 --> 00:24:40,670 kako ćemo vidjeti prije dugo. 543 00:24:40,670 --> 00:24:43,700 >> Ali neka sada zapravo učiniti nešto zanimljivije. 544 00:24:43,700 --> 00:24:46,950 Samo upisivati ​​izvan Pozdrav svijetu sve vrijeme nije sve što je uvjerljiv. 545 00:24:46,950 --> 00:24:52,280 Pa neka mi ići naprijed i promjene ovaj program i reći, zdravo je David. 546 00:24:52,280 --> 00:24:54,120 Sada ću ići ovdje. 547 00:24:54,120 --> 00:24:57,360 Idem da ide naprijed i ne čine pozdrav. 548 00:24:57,360 --> 00:25:00,652 I opet sad vidite napraviti pokazuje vam što duže 549 00:25:00,652 --> 00:25:03,360 slijed naredbi koje je radi jer smo pre-konfiguriran 550 00:25:03,360 --> 00:25:05,200 to na taj način, ali mi ne moraju brinuti za sada 551 00:25:05,200 --> 00:25:10,735 što to radiš osim što je sastavljanje dot slash Poštovani, Hello World. 552 00:25:10,735 --> 00:25:14,969 553 00:25:14,969 --> 00:25:15,510 Što nije u redu? 554 00:25:15,510 --> 00:25:16,177 Da. 555 00:25:16,177 --> 00:25:17,370 >> PUBLIKA: [nečujan] 556 00:25:17,370 --> 00:25:18,203 >> DAVID J. Malan: Da. 557 00:25:18,203 --> 00:25:19,600 Dakle, noobie pogreška. 558 00:25:19,600 --> 00:25:22,394 Primjećujem to je super suptilna, ali zvjezdicu ovdje, na kartici, 559 00:25:22,394 --> 00:25:25,060 samo znači da niste ga spasio, i preglednici i drugi programi 560 00:25:25,060 --> 00:25:25,930 to ponekad. 561 00:25:25,930 --> 00:25:27,939 Dakle, kontrola je i naredba a treba ga spasiti. 562 00:25:27,939 --> 00:25:29,730 Sada neka mi ići naprijed i ponovno pokrenuti program. 563 00:25:29,730 --> 00:25:33,360 564 00:25:33,360 --> 00:25:34,260 Recompiled. 565 00:25:34,260 --> 00:25:36,050 Točno, tako da je proces u više koraka. 566 00:25:36,050 --> 00:25:39,400 Nitko od kojih je posebno složen, ali svaki put kad promijenite datoteku, 567 00:25:39,400 --> 00:25:43,450 moramo mijenjati Nastala nula i jedinica, i točka Slash zdravo. 568 00:25:43,450 --> 00:25:43,950 Opa. 569 00:25:43,950 --> 00:25:46,450 Dakle, to je vrlo underwhelming da mi samo ispisati to. 570 00:25:46,450 --> 00:25:48,360 Učinimo stvari malo dinamičniji, sada. 571 00:25:48,360 --> 00:25:52,280 >> Pa ispada da vole Scratch, C podržava varijabli. 572 00:25:52,280 --> 00:25:54,790 I to ispada, ako želiš imati varijabla koja pohranjuje, 573 00:25:54,790 --> 00:25:57,300 nije broj kao što smo obično učinio s nule, 574 00:25:57,300 --> 00:26:01,300 ali kao riječ, ili fraza, ili naziv, te 575 00:26:01,300 --> 00:26:04,837 može odrediti varijablu biti tipa string. 576 00:26:04,837 --> 00:26:06,670 Tako ćemo vidjeti više te u samo nekoliko trenutaka, 577 00:26:06,670 --> 00:26:09,090 ali ispada da je C, a puno jezika poput nje, 578 00:26:09,090 --> 00:26:11,240 imaju vrlo specifične vrste varijabli. 579 00:26:11,240 --> 00:26:13,810 Nije baš kao algebra, gdje ćete dobiti X, Y i Z 580 00:26:13,810 --> 00:26:16,940 a oni su samo i uvijek brojevi, u programskom jeziku 581 00:26:16,940 --> 00:26:20,030 možete pohraniti brojeve, možete pohraniti pojedine znakove, 582 00:26:20,030 --> 00:26:24,619 možete pohraniti cijelih riječi, što bi pohranjivati ​​cjelovite slike, cjelovite zvučne datoteke, 583 00:26:24,619 --> 00:26:25,160 i slično. 584 00:26:25,160 --> 00:26:28,362 Dakle, moramo odrediti što vrsta naše varijable. 585 00:26:28,362 --> 00:26:31,570 I po konvenciji ću nazvati svog varijabla je samo zato što je kratak, 586 00:26:31,570 --> 00:26:33,510 i s zalaže za niz. 587 00:26:33,510 --> 00:26:36,400 >> A onda ću za pohranu unutar ove varijable, 588 00:26:36,400 --> 00:26:39,570 baš kao s nule kad sam koristiti postavljenu blok, 589 00:26:39,570 --> 00:26:41,950 Idem koristiti Dodjela operater u C, 590 00:26:41,950 --> 00:26:45,290 što je dovoljno lijepo je jednaka potpisati, ali je znak jednakosti čini. 591 00:26:45,290 --> 00:26:53,220 Ona se kreće nešto od prava na lijeva strana izraza. 592 00:26:53,220 --> 00:26:57,170 Dakle, ono što sam učinio, da bude jasno crta pet je sam proglasio varijablu. 593 00:26:57,170 --> 00:27:01,284 Rekao sam računalo, dajte mi memorija za varijable, nazovite to je, 594 00:27:01,284 --> 00:27:03,950 i znam unaprijed da ću da se stavljanjem niz u njoj. 595 00:27:03,950 --> 00:27:05,950 I niz je samo slijed znakova. 596 00:27:05,950 --> 00:27:09,190 To je riječ ili izraz ili stavka, ali to je slijed znakova. 597 00:27:09,190 --> 00:27:10,610 Nije brojeva. 598 00:27:10,610 --> 00:27:13,800 Ono niz ću biti stavljajući u tu varijablu? 599 00:27:13,800 --> 00:27:16,185 Pa, očito citat citat: "Hannah". 600 00:27:16,185 --> 00:27:17,810 Sada primijetite uzorak koji je u nastajanju. 601 00:27:17,810 --> 00:27:19,260 Postoji lijeva ruka izraz. 602 00:27:19,260 --> 00:27:21,810 Postoji desnica izraz, razdvojeni znakom jednakosti. 603 00:27:21,810 --> 00:27:24,390 I samo uzeti pogodak, ako se nepoznata ipak, 604 00:27:24,390 --> 00:27:27,430 s tim što zarez radi. 605 00:27:27,430 --> 00:27:28,865 Što je to vjerojatno radi za nas? 606 00:27:28,865 --> 00:27:29,365 Da? 607 00:27:29,365 --> 00:27:29,840 >> PUBLIKA: [nečujan] 608 00:27:29,840 --> 00:27:29,980 >> DAVID J. Malan: Da. 609 00:27:29,980 --> 00:27:31,170 To je samo ukida liniju. 610 00:27:31,170 --> 00:27:31,669 Pravo? 611 00:27:31,669 --> 00:27:34,260 Računala žele biti otvoreno Rekao, doslovno, što učiniti. 612 00:27:34,260 --> 00:27:36,343 Poput kikiriki maslac i Jelly sendvič primjer, 613 00:27:36,343 --> 00:27:39,360 Ako ne odredite točno ono što namjeravate, 614 00:27:39,360 --> 00:27:42,190 to bi moglo biti prepušteno prosudbe ili pogreške. 615 00:27:42,190 --> 00:27:44,890 Zarez znači, to je to za ovu naredbu. 616 00:27:44,890 --> 00:27:48,310 To je bio super precizno, a to je vrlo jednostavna stvar ostaviti off. 617 00:27:48,310 --> 00:27:52,240 Tako sada ovaj program ne čini se da se ponaša drugačije bilo dok sam 618 00:27:52,240 --> 00:27:53,500 čine ga više dinamičan. 619 00:27:53,500 --> 00:27:57,107 Dakle, umjesto da je teško mogao moj ime, neka mi stavi vrijednost rezerviranog mjesta. 620 00:27:57,107 --> 00:28:00,190 I ispada da, i ja znam ovo od što pročitajte dokumentaciju, 621 00:28:00,190 --> 00:28:04,080 i koristiti funkciju za nekoliko godina, da je printf je dizajniran da bude dinamičan. 622 00:28:04,080 --> 00:28:07,510 Ne morate znati unaprijed što riječi koje želite staviti u njega. 623 00:28:07,510 --> 00:28:11,290 Umjesto toga možete imati rezervirano mjesto, kao što je posto s koje 624 00:28:11,290 --> 00:28:15,500 će reći računalo, stavite niz ovdje. 625 00:28:15,500 --> 00:28:17,740 >> Koji niz želimo staviti tamo? 626 00:28:17,740 --> 00:28:22,430 Hoće ispada da je između njih zagrade, koje pamte, razgraničiti 627 00:28:22,430 --> 00:28:28,020 ulaz u funkciji, ako imate odvojene zarezom popis stvari ovdje, 628 00:28:28,020 --> 00:28:31,790 mi zapravo proći višekratnik Ulazi u funkciji. 629 00:28:31,790 --> 00:28:33,901 Dakle, baš kao i neki Scratch blokovi, možda ne 630 00:28:33,901 --> 00:28:36,150 su igrali s njima Vaši projekti još ili na sve, 631 00:28:36,150 --> 00:28:38,250 neki Scratch blokovi imaju dva ulaza. 632 00:28:38,250 --> 00:28:41,220 Dvije bijele kutije možete utipkajte brojeve ili riječi u. 633 00:28:41,220 --> 00:28:45,210 Tako da nema C ima funkcije kao što su printf koji može potrajati dva ulaza. 634 00:28:45,210 --> 00:28:48,050 I opet, to zarezom ih razdvaja. 635 00:28:48,050 --> 00:28:51,070 Tako je u engleskom, opet, čak i ako nikad nisam programirana prije, 636 00:28:51,070 --> 00:28:55,320 tako da je logika printf je funkcija, traje dva ulaza, od kojih je jedan 637 00:28:55,320 --> 00:28:58,810 je rezervirano mjesto, što bi se nadam printf će učiniti s ovim ulaz? 638 00:28:58,810 --> 00:29:01,470 639 00:29:01,470 --> 00:29:03,220 To će pozdraviti Ana, nadam se. 640 00:29:03,220 --> 00:29:05,274 Tako da to moramo učiniti ga spasiti. 641 00:29:05,274 --> 00:29:06,190 Idem za smanjenje. 642 00:29:06,190 --> 00:29:10,701 Ja ću ići ovdje natrag i reći, napraviti pozdravi ući. 643 00:29:10,701 --> 00:29:11,200 Oh. 644 00:29:11,200 --> 00:29:14,830 Nešto nije u redu, a zapravo to je prilično velika. 645 00:29:14,830 --> 00:29:18,400 Imam šest linija koda i kao 12 redaka pogrešaka. 646 00:29:18,400 --> 00:29:22,120 Dakle, radujemo se tome. 647 00:29:22,120 --> 00:29:24,260 Dakle, ono što se ovdje događa? 648 00:29:24,260 --> 00:29:27,370 Tako je najbolji pravilo ovdje pogotovo kad ste na samom početku, 649 00:29:27,370 --> 00:29:29,370 ne bi omesti stvari na dnu. 650 00:29:29,370 --> 00:29:31,220 U stvari, ja vrlo namjerno Samo pomicati gore 651 00:29:31,220 --> 00:29:33,930 jer vrlo često, računalo je nije sve što svijetle uređaja. 652 00:29:33,930 --> 00:29:35,054 To će zbuniti. 653 00:29:35,054 --> 00:29:37,220 Ako se vidi jednu stvar koja to ne razumije, 654 00:29:37,220 --> 00:29:40,030 to bi moglo pogriješiti drugima linija koda kao netočne, 655 00:29:40,030 --> 00:29:41,649 iako su savršeno u redu. 656 00:29:41,649 --> 00:29:43,940 Tako ćete uvijek želite raditi vrha prema dolje kroz pogreške. 657 00:29:43,940 --> 00:29:47,850 I to je, doduše, super arcane u ovom trenutku. 658 00:29:47,850 --> 00:29:50,830 >> Pogreška, korištenje neprijavljeni Oznaka niz. 659 00:29:50,830 --> 00:29:52,130 Jeste Mislim standard u? 660 00:29:52,130 --> 00:29:53,720 Ne, mislio sam niz. 661 00:29:53,720 --> 00:29:55,830 I to je pokazujući na, možda je pogreška pri upisu. 662 00:29:55,830 --> 00:30:00,570 Nešto poput, provjeru pravopisa u Vrlo geeky put, ali razlog ovdje 663 00:30:00,570 --> 00:30:02,840 a vi ćete znati samo praksom, je 664 00:30:02,840 --> 00:30:06,390 da ispada da je string ne postoji u C. U stvari, C 665 00:30:06,390 --> 00:30:08,820 je posebno stara jezik, i to je vrlo niska razina, 666 00:30:08,820 --> 00:30:11,361 i to ne puno mogućnosti da možda su odrasli 667 00:30:11,361 --> 00:30:14,620 s ako imate, u stvari, programirana u Javi, kao što neki od vas, 668 00:30:14,620 --> 00:30:16,980 ali možete ga učiti nove stvari. 669 00:30:16,980 --> 00:30:20,900 I doista, mi smo učinili ovo CS50, iako do kraja semestra, 670 00:30:20,900 --> 00:30:23,512 sve ove obuke kotača će biti skinut, 671 00:30:23,512 --> 00:30:25,220 ono što radimo u tim Prvi par tjedana 672 00:30:25,220 --> 00:30:29,830 u početku je također imamo što su CS50 dot h. 673 00:30:29,830 --> 00:30:31,230 Koji je zaglavlje datoteke. 674 00:30:31,230 --> 00:30:32,440 Više o tome u budućnosti. 675 00:30:32,440 --> 00:30:36,430 >> To je datoteka koja sadrži funkcije da smo pisani za vas. 676 00:30:36,430 --> 00:30:39,180 A među tim funkcijama je Funkcije za dobivanje ulaz 677 00:30:39,180 --> 00:30:43,520 od korisnika, kao što su žice, i brojevi, a realni brojevi, i još mnogo toga. 678 00:30:43,520 --> 00:30:45,550 No, ona također ima nekoliko prečaca. 679 00:30:45,550 --> 00:30:48,200 Ona definira Boolean kao vrste podataka. 680 00:30:48,200 --> 00:30:50,340 C nema true ili false. 681 00:30:50,340 --> 00:30:53,880 No, možemo mu dati pojam true ili false putem ove knjižnice. 682 00:30:53,880 --> 00:30:57,670 I to također nema string sagrađena dok ne uključuju ove linije. 683 00:30:57,670 --> 00:31:01,090 Dakle, ova linija koda govori prevodilac, hej, zveket, izgleda 684 00:31:01,090 --> 00:31:03,570 u ovoj datoteci za cjelinu hrpa kôd koji CS50 685 00:31:03,570 --> 00:31:06,330 napisao je da svatko tko koristi ovu sliku 686 00:31:06,330 --> 00:31:09,330 može uzeti zdravo za gotovo karakteristike su dodali. 687 00:31:09,330 --> 00:31:11,220 >> Pa sad neka mi ići naprijed i jasan zaslon, 688 00:31:11,220 --> 00:31:14,178 a ako znatiželjni ja samo govorim kontrolu Ja svaki put za brisanje zaslona, 689 00:31:14,178 --> 00:31:15,500 ili možete upisati jasno. 690 00:31:15,500 --> 00:31:19,220 Samo ću ići naprijed i sada Vrsta napraviti Pozdrav, i sve je dobro. 691 00:31:19,220 --> 00:31:22,550 Ipak tajanstveni izlaz, ali to nije pogrešna poruka. 692 00:31:22,550 --> 00:31:28,300 Ako li pak činim točka slash Pozdrav, i kao stranu, točka Slash je nepoznata većini. 693 00:31:28,300 --> 00:31:30,430 To samo znači, znači dot trenutni katalog. 694 00:31:30,430 --> 00:31:33,120 Dakle, ako ste ikada koristili DOS ili Linux ili Unix 695 00:31:33,120 --> 00:31:35,410 možda ste učinili nešto kao cd dot dot, gdje 696 00:31:35,410 --> 00:31:39,220 dot dot znači ići unatrag u vrijeme ili otići natrag, ili viši 697 00:31:39,220 --> 00:31:40,370 u svom imeniku. 698 00:31:40,370 --> 00:31:43,090 Dot samo znači gledati u trenutni katalog. 699 00:31:43,090 --> 00:31:45,670 Želim zdravo, što je upravo ovdje. 700 00:31:45,670 --> 00:31:47,750 I doista, sada kaže da pozdravi Hannah. 701 00:31:47,750 --> 00:31:51,120 I ako ja to ponovno promijeniti za Maria, rekompiliranje 702 00:31:51,120 --> 00:31:55,650 to bi Poštovani, dot crta Pozdrav, program se mijenja. 703 00:31:55,650 --> 00:31:58,060 >> No, to je još uvijek prilično glupo programa. 704 00:31:58,060 --> 00:32:00,972 Ako želim poslati ovaj program, ili ga dati prijatelju, 705 00:32:00,972 --> 00:32:03,430 ili ga dati Maria ili Hannah što se toga tiče, to je u redu. 706 00:32:03,430 --> 00:32:07,300 Ja mogu prilagoditi za obojicu, ali to nikad neće biti dinamičan. 707 00:32:07,300 --> 00:32:10,870 Oni ne mogu ga promijeniti nakon što je sastavio dolje u tih nula i jedinica. 708 00:32:10,870 --> 00:32:12,350 Dakle, ono što smo radili nešto pametnije? 709 00:32:12,350 --> 00:32:17,100 Što ako, umjesto hard-kodiranje u program njegovim imenom, 710 00:32:17,100 --> 00:32:20,890 što ako smo samo dobiti string na zahtjev? 711 00:32:20,890 --> 00:32:22,430 >> Dakle, drugim riječima, neka mi to učiniti. 712 00:32:22,430 --> 00:32:24,030 Idem rekompilirati ovaj program. 713 00:32:24,030 --> 00:32:25,710 I neka mi zumiranje na dnu sada. 714 00:32:25,710 --> 00:32:29,920 Napravite Pozdrav dot Slash zdravo. 715 00:32:29,920 --> 00:32:31,710 Sada se ništa ne događa. 716 00:32:31,710 --> 00:32:35,860 Možemo dobiti brzo volonter da bi se nešto dogodilo? 717 00:32:35,860 --> 00:32:36,360 Dođi gore. 718 00:32:36,360 --> 00:32:37,020 Kako se zoveš? 719 00:32:37,020 --> 00:32:37,445 >> Pancho: Pancho. 720 00:32:37,445 --> 00:32:38,361 >> DAVID J. Malan: Pacho? 721 00:32:38,361 --> 00:32:39,609 Dođi gore. 722 00:32:39,609 --> 00:32:42,150 Nakon što ste dobili ovdje, ovo je će biti vrlo underwhelming, 723 00:32:42,150 --> 00:32:44,060 ali to je više zanimljiv od mene ga upišete. 724 00:32:44,060 --> 00:32:49,007 Ako želite ići naprijed i upišite svoj ime, sam napravio ovaj program samo za vas. 725 00:32:49,007 --> 00:32:49,840 Samo upišite svoje ime. 726 00:32:49,840 --> 00:32:52,380 727 00:32:52,380 --> 00:32:53,900 Unesite. 728 00:32:53,900 --> 00:32:54,489 Divno. 729 00:32:54,489 --> 00:32:55,780 U redu, hvala vam jako puno. 730 00:32:55,780 --> 00:32:56,708 >> Pancho: Hvala puno. 731 00:32:56,708 --> 00:32:57,636 >> DAVID J. Malan: U redu. 732 00:32:57,636 --> 00:32:59,028 >> [PLJESAK] 733 00:32:59,028 --> 00:33:00,884 734 00:33:00,884 --> 00:33:01,840 >> To je bio vrlo ljubazan. 735 00:33:01,840 --> 00:33:03,145 Izvoli. 736 00:33:03,145 --> 00:33:03,770 Što nam je činiti? 737 00:33:03,770 --> 00:33:05,930 Tako smo napokon, u najmanju ruku, napravio ovaj program dinamičan. 738 00:33:05,930 --> 00:33:08,400 Sada je još sigurno po dizajnu underwhelming, 739 00:33:08,400 --> 00:33:11,480 ali napokon imamo mogućnost sada pisati kod unaprijed, mnogo 740 00:33:11,480 --> 00:33:13,770 kao autora printf, a zatim dinamički 741 00:33:13,770 --> 00:33:17,550 Prilagoditi na temelju ulaznih smo predao, bilo programer, 742 00:33:17,550 --> 00:33:20,610 ili od strane čovjeka koji je zapravo interakciji s programom. 743 00:33:20,610 --> 00:33:22,990 Tako ćemo zapravo sada probati napraviti nekoliko drugih konstrukata 744 00:33:22,990 --> 00:33:26,625 i vidjeti ako ne možemo napraviti programe sami sofisticiraniji. 745 00:33:26,625 --> 00:33:29,250 Tako ćemo ići naprijed i umjesto pisanja ovog jedan od nule, 746 00:33:29,250 --> 00:33:31,540 Ja ću ići u današnjem izvorni kod, i sve to 747 00:33:31,540 --> 00:33:34,290 je dostupan na tečaj a web stranice, a možete povući i ispustiti ga 748 00:33:34,290 --> 00:33:36,590 u svojem okruženju dolaze u petak nakon problema 749 00:33:36,590 --> 00:33:38,506 Skup 1 vam daje Upute, ili ste mogli 750 00:33:38,506 --> 00:33:41,200 to učiniti u naredbenom retku kao dobro, ali više dolaze u p set 1. 751 00:33:41,200 --> 00:33:44,940 >> Idemo vidjeti što je u ovom programu ovdje zove, zbrajalo točka c. 752 00:33:44,940 --> 00:33:47,970 Sada sam već komentirao da, ali ono što je novo? 753 00:33:47,970 --> 00:33:51,230 Na prvi pogled, ono što crta koda je apsolutno novo? 754 00:33:51,230 --> 00:33:53,930 755 00:33:53,930 --> 00:33:56,780 Vjerojatno ne bitno upoznati sada. 756 00:33:56,780 --> 00:33:58,417 >> PUBLIKA: [nečujan] 757 00:33:58,417 --> 00:34:00,250 DAVID J. Malan: Da, tako int x jednak dobiti n. 758 00:34:00,250 --> 00:34:03,760 Nikad nismo vidjeli ništa od ovoga i prije, ali je vjerojatno int 759 00:34:03,760 --> 00:34:08,179 simbol za Kakvu varijabla, [? iz?] cijeli broj. 760 00:34:08,179 --> 00:34:09,040 Tako int za cjelobrojnim. 761 00:34:09,040 --> 00:34:11,420 To je samo se više kratak. x je samo proizvoljna. 762 00:34:11,420 --> 00:34:13,920 x i y i z su dalje prilično razumno za brojeve, 763 00:34:13,920 --> 00:34:16,790 ali općenito ćemo koristiti riječi odjednom Naši programi dobili složeniji. 764 00:34:16,790 --> 00:34:18,940 Get int, naravno, baš kao get nizu, 765 00:34:18,940 --> 00:34:21,629 vjerojatno idući u dobiti int od korisnika, 766 00:34:21,629 --> 00:34:23,670 a onda ćemo napraviti istu stvar s y. 767 00:34:23,670 --> 00:34:27,610 I očito, iako je to Zadnji redak, 24, izgleda složeniji, 768 00:34:27,610 --> 00:34:32,679 to će reći zbroj ovo i da je to druga stvar. 769 00:34:32,679 --> 00:34:35,840 >> A Obavijest posto ja Vjerojatno označava što? 770 00:34:35,840 --> 00:34:38,190 Koja je uloga posto ja očito služe? 771 00:34:38,190 --> 00:34:40,739 772 00:34:40,739 --> 00:34:41,719 To je samo rezerviranih mjesta. 773 00:34:41,719 --> 00:34:42,219 Pravo? 774 00:34:42,219 --> 00:34:45,149 Posto je bio za niz, posto sam se za cijeli broj. 775 00:34:45,149 --> 00:34:47,690 Tu će biti posto f za Krajnja vrijednost koja 776 00:34:47,690 --> 00:34:49,273 je samo broj s decimalne točke. 777 00:34:49,273 --> 00:34:50,590 Drugim riječima, pravi broj. 778 00:34:50,590 --> 00:34:55,270 Tako ćemo zapravo sastaviti ovaj programirati jako brzo i ne čine zbrajalo. 779 00:34:55,270 --> 00:34:57,962 Ups. 780 00:34:57,962 --> 00:34:58,670 Dobra prilika. 781 00:34:58,670 --> 00:35:02,970 Dakle obavijest ovdje, sve ovo vrijeme moje korisnika naziv za ovaj račun je jharvard. 782 00:35:02,970 --> 00:35:06,620 Ja sam u CS50 IDE, zvani IDE50. 783 00:35:06,620 --> 00:35:11,030 A sada u plavom ovdje spominje, ali iz okoliša, u kojoj sam ja. 784 00:35:11,030 --> 00:35:16,050 A u stvari, ako sam povećati do vrha Ovdje, primijetiti da imam IDE50 785 00:35:16,050 --> 00:35:19,490 i vidim tu riječ, ako vas neka vrsta okrenuti glavu u stranu, radni prostor. 786 00:35:19,490 --> 00:35:23,890 U Ukratko, činjenica da Vidim tilde kose crte radni prostor 787 00:35:23,890 --> 00:35:26,910 znači da se u ovom tekstu based komandne okoliš, 788 00:35:26,910 --> 00:35:32,300 Ja sam u tekstnom ekvivalenta ovo grafički mapu ovdje. 789 00:35:32,300 --> 00:35:35,730 Pa kad radim dot crta guja, to govori ne pravilo 790 00:35:35,730 --> 00:35:37,372 da bi ciljani guja zaustaviti. 791 00:35:37,372 --> 00:35:39,830 Ne znam što to znači, ali to je loše za nekog razloga. 792 00:35:39,830 --> 00:35:43,310 nema takve datoteke ili direktorija još je jasna. 793 00:35:43,310 --> 00:35:45,670 Gdje je onda? 794 00:35:45,670 --> 00:35:47,820 Temeljem gdje sam kliknuo otvoriti datoteku ranije. 795 00:35:47,820 --> 00:35:49,442 Gdje bi mogao biti? 796 00:35:49,442 --> 00:35:52,050 >> To je vjerojatno u izvoru Jedan W, za srijedu, 797 00:35:52,050 --> 00:35:53,960 i ja mogu vidjeti, doista, ako sam otvoriti to. 798 00:35:53,960 --> 00:35:57,220 Tu je guja točka c, ali u Ovaj tekst-based okruženju, 799 00:35:57,220 --> 00:35:59,380 opet, moram biti super eksplicitno. 800 00:35:59,380 --> 00:36:03,950 Ako želim promijeniti direktorija u Izvor jedna Srijeda, moram upisati, 801 00:36:03,950 --> 00:36:07,210 cd izvor prostor jedan Srijeda ući i sada 802 00:36:07,210 --> 00:36:09,810 moji brz promjene daj mi znak da vizualni 803 00:36:09,810 --> 00:36:12,330 Ja sam, doista, na drugom mjestu u mom okruženju, 804 00:36:12,330 --> 00:36:15,710 ali sada sam se čine guja, čini se da radi, 805 00:36:15,710 --> 00:36:18,190 dot slash zbrajalo, daj mi cijeli broj. 806 00:36:18,190 --> 00:36:19,080 Jedna. 807 00:36:19,080 --> 00:36:20,070 Dva. 808 00:36:20,070 --> 00:36:21,630 Zbroj jedan i dva je tri. 809 00:36:21,630 --> 00:36:24,140 Ali ako ne surađuju, da vidimo što dobijete int radi. 810 00:36:24,140 --> 00:36:25,200 Daj mi cijeli broj. 811 00:36:25,200 --> 00:36:26,590 Ne. 812 00:36:26,590 --> 00:36:27,350 Pokušaj ponovo. 813 00:36:27,350 --> 00:36:29,060 U REDU. 814 00:36:29,060 --> 00:36:30,520 Fine. 815 00:36:30,520 --> 00:36:32,130 50. 816 00:36:32,130 --> 00:36:32,680 50. 817 00:36:32,680 --> 00:36:33,010 U redu. 818 00:36:33,010 --> 00:36:34,055 Tako je konačno surađuje. 819 00:36:34,055 --> 00:36:36,430 I to je neki od funkcionalnost koja ove funkcije 820 00:36:36,430 --> 00:36:37,760 može imati izgrađen u za vas. 821 00:36:37,760 --> 00:36:43,330 >> Dakle, u provedbi od dobiti int, što programiranje 822 00:36:43,330 --> 00:36:47,990 izgraditi od prošlog tjedna je vjerojatno u tamo natjerati ovo ponašanje ponovnog pokušaja, 823 00:36:47,990 --> 00:36:49,962 Pokušaj ponovo pokušajte ponovo? 824 00:36:49,962 --> 00:36:51,670 Da, tu je vjerojatno neka vrsta petlje. 825 00:36:51,670 --> 00:36:54,160 To će izgledati sintaktički različit od nule u blokovima, 826 00:36:54,160 --> 00:36:55,880 ali to je istina ono što je unutar datoteke. 827 00:36:55,880 --> 00:36:58,505 I u nekoliko tjedana put ćemo zapravo, pogledajte CS50 knjižnici 828 00:36:58,505 --> 00:37:02,000 kao što je unutra, ali postoji petlja nametanje upravo to. 829 00:37:02,000 --> 00:37:04,840 >> Idemo igrati blesave igra ovdje s ove datoteke. 830 00:37:04,840 --> 00:37:06,550 Stanje nula točka c. 831 00:37:06,550 --> 00:37:08,960 Samo ćemo se općenito početi računajući na nulu. 832 00:37:08,960 --> 00:37:11,220 I ja bi pomicanje prošlost neke od stvari na vrhu. 833 00:37:11,220 --> 00:37:15,390 U plavo ovdje označeno sa svim tih zvijezda i kose crte, 834 00:37:15,390 --> 00:37:17,310 one od vas koji programirati prije, što je to? 835 00:37:17,310 --> 00:37:18,690 Zašto držimo preskakanje preko njega? 836 00:37:18,690 --> 00:37:19,110 Što? 837 00:37:19,110 --> 00:37:19,490 >> PUBLIKA: To je komentar. 838 00:37:19,490 --> 00:37:19,800 >> DAVID J. Malan: Da. 839 00:37:19,800 --> 00:37:20,633 To je samo komentar. 840 00:37:20,633 --> 00:37:24,160 Ovo je komentar za ljude čitati, da je u našem slučaju, 841 00:37:24,160 --> 00:37:27,120 govori nam ono što naziv datoteke je, tko ga je napisao, a ono što čini, 842 00:37:27,120 --> 00:37:28,610 tako da ne morate čitati kroz kod 843 00:37:28,610 --> 00:37:30,110 znati što je ova datoteka je sve o tome. 844 00:37:30,110 --> 00:37:33,110 To je samo opis, ali funkcionalno je nevažno. 845 00:37:33,110 --> 00:37:35,930 A ja čak mogu izbrisati iz moj file i to nema utjecaja. 846 00:37:35,930 --> 00:37:38,740 Sočne linije su ovi Prva dva ovdje, sada. 847 00:37:38,740 --> 00:37:41,405 int glavna praznina je ekvivalent naše kad zelena zastava kliknuli, 848 00:37:41,405 --> 00:37:44,030 pa ćemo ostaviti da se za danas, a mi ćemo se vratiti, 849 00:37:44,030 --> 00:37:46,940 na kraju, što bi int i praznina su, ali sada, 850 00:37:46,940 --> 00:37:49,500 primijetiti ono što sam učinio ovdje, također možete, 851 00:37:49,500 --> 00:37:51,736 ako imate u redu komentar, ako imate 852 00:37:51,736 --> 00:37:54,670 misao želite podijeliti o određenoj liniji koda, 853 00:37:54,670 --> 00:37:58,910 Konvencija u C je učiniti udarac slash, a onda nekoliko riječi, dat, 854 00:37:58,910 --> 00:38:01,500 Ne puni osuda, općenito nije stavka, 855 00:38:01,500 --> 00:38:05,310 to samo objašnjava na vas ili vaše TF ili drugim čitateljima i kolegama, 856 00:38:05,310 --> 00:38:06,990 Što je vaš broj radi. 857 00:38:06,990 --> 00:38:10,150 Dakle, umjesto da moraju gledati na ovo i zaključiti iz linije 858 00:38:10,150 --> 00:38:12,550 devet i 10, što je to radiš, u skladu osam 859 00:38:12,550 --> 00:38:14,945 Upravo sam dati komentar na pitati korisnika za cijeli broj, 860 00:38:14,945 --> 00:38:17,820 onda ja ne moram razmišljati previše teško o čemu linije devet i 10 su. 861 00:38:17,820 --> 00:38:19,720 Ja samo znam da je to ono što zajednički rade. 862 00:38:19,720 --> 00:38:20,460 >> Kako? 863 00:38:20,460 --> 00:38:22,060 Pa, ovdje je brz. 864 00:38:22,060 --> 00:38:23,610 Evo sve od int. 865 00:38:23,610 --> 00:38:25,984 I na temelju prethodnog ponašanja, čini se kao GET int 866 00:38:25,984 --> 00:38:29,080 je dovoljno pametan da bi bili sigurni da ljudsko surađuje i daje ga 867 00:38:29,080 --> 00:38:30,090 cijeli. 868 00:38:30,090 --> 00:38:32,270 Ali sada vidimo to. 869 00:38:32,270 --> 00:38:33,740 A to podsjeća ispočetka. 870 00:38:33,740 --> 00:38:36,140 Ja sam tvrdio da sam Analizirajući korisnički ulaz, 871 00:38:36,140 --> 00:38:39,050 ali nešto netočno. 872 00:38:39,050 --> 00:38:43,200 A to očito u C kako izražavamo if drugo, grana, 873 00:38:43,200 --> 00:38:46,320 vilica na cesti, ali ja kažu nešto pogrešno. 874 00:38:46,320 --> 00:38:50,470 Što je bug u ovom programu? 875 00:38:50,470 --> 00:38:51,610 O dodatno natrag? 876 00:38:51,610 --> 00:38:52,223 Da. 877 00:38:52,223 --> 00:38:53,150 >> PUBLIKA: [nečujan] nuli. 878 00:38:53,150 --> 00:38:54,025 >> DAVID J. Malan: Da. 879 00:38:54,025 --> 00:38:57,630 Dakle, ako sam upisati nulu, razmotrimo upravo to slučaj, ili kutak slučaj, 880 00:38:57,630 --> 00:38:58,450 ako hoćete. 881 00:38:58,450 --> 00:39:02,790 Dakle, ako sam upisati nulu, što od blokovi će očito ga zgrabite? 882 00:39:02,790 --> 00:39:04,660 IF ili drugo? 883 00:39:04,660 --> 00:39:07,340 Drugo, a to će reći, ste odabrali negativan broj. 884 00:39:07,340 --> 00:39:10,476 I doista, nula nije trebao biti pozitivan ili negativan, 885 00:39:10,476 --> 00:39:11,850 pa to bi bilo pogrešno. 886 00:39:11,850 --> 00:39:12,930 To će biti bug. 887 00:39:12,930 --> 00:39:14,580 Pa kako možemo popraviti ovo? 888 00:39:14,580 --> 00:39:16,360 Netko tko nikad nije programiran prije? 889 00:39:16,360 --> 00:39:16,570 Dali želiš-- 890 00:39:16,570 --> 00:39:17,480 >> PUBLIKA: [nečujan] 891 00:39:17,480 --> 00:39:17,990 >> DAVID J. Malan: Povlačenje? 892 00:39:17,990 --> 00:39:18,570 >> PUBLIKA: [nečujan] 893 00:39:18,570 --> 00:39:18,930 >> DAVID J. Malan: O, je li? 894 00:39:18,930 --> 00:39:20,350 Netko tko nikad nije programiran prije. 895 00:39:20,350 --> 00:39:21,750 Želite li se okušati u to, u crvenoj košulji? 896 00:39:21,750 --> 00:39:22,600 Dođi gore. 897 00:39:22,600 --> 00:39:25,320 O da, daj se, ako ti ne smeta. 898 00:39:25,320 --> 00:39:27,586 Dakle, nikada nije programiran prije, što je vaše ime? 899 00:39:27,586 --> 00:39:28,210 LAUREN: Lauren. 900 00:39:28,210 --> 00:39:29,626 DAVID J. Malan: Lauren, u redu. 901 00:39:29,626 --> 00:39:31,150 Dakle, popraviti ovaj bug za nas. 902 00:39:31,150 --> 00:39:35,070 Niste Vidjeli C, vjerojatno, a vjerojatno ni jedan drugi jezik. 903 00:39:35,070 --> 00:39:38,380 Dakle riješili ovaj program za nas. 904 00:39:38,380 --> 00:39:39,100 Lijepo ya susret. 905 00:39:39,100 --> 00:39:39,615 Bez pritiska. 906 00:39:39,615 --> 00:39:40,156 LAUREN: Da. 907 00:39:40,156 --> 00:39:43,350 908 00:39:43,350 --> 00:39:46,270 >> DAVID J. Malan: Ali opet, ako je to kockati ide prema planu, 909 00:39:46,270 --> 00:39:48,350 takeaway ovdje će biti, samo jednom, za početak 910 00:39:48,350 --> 00:39:51,080 primijetiti obrasce i zaključiti iz postojećih sintakse 911 00:39:51,080 --> 00:39:55,420 kako biste mogli izraziti ostalo sebe, nema namjeru dosjetka, kako 912 00:39:55,420 --> 00:39:58,410 uhvatiti neke dodatne scenarij. 913 00:39:58,410 --> 00:39:59,603 Tako smo govoriš drugo, ako. 914 00:39:59,603 --> 00:40:04,040 915 00:40:04,040 --> 00:40:05,230 printf, dobro. 916 00:40:05,230 --> 00:40:09,120 I obavijest s CS50 IDE i frankly-- IDE 917 00:40:09,120 --> 00:40:11,110 predstavlja integrirani Razvoj Okoliš. 918 00:40:11,110 --> 00:40:14,110 To je samo fancy način govoreći program koji vam pomaže program. 919 00:40:14,110 --> 00:40:16,779 To čini user friendly stvari kao što su kada upišete jednu zagradu, 920 00:40:16,779 --> 00:40:18,320 automatski vam daje drugu. 921 00:40:18,320 --> 00:40:20,760 Pretpostavka se da ste na kraju će se želite upisati da je, 922 00:40:20,760 --> 00:40:22,400 i to je također to radi s navodnicima. 923 00:40:22,400 --> 00:40:24,190 >> Zato volim liniju 23. 924 00:40:24,190 --> 00:40:26,400 99% na putu tamo. 925 00:40:26,400 --> 00:40:29,920 Netko želi pridružiti se s vrha? 926 00:40:29,920 --> 00:40:31,420 Čuo sam zarez iz publike. 927 00:40:31,420 --> 00:40:32,080 Dobra. 928 00:40:32,080 --> 00:40:33,260 Tako da završi to. 929 00:40:33,260 --> 00:40:37,930 A sada, samo sam se malo zaprepaštenje sa linije 21. 930 00:40:37,930 --> 00:40:41,370 Kako želimo izraziti? 931 00:40:41,370 --> 00:40:43,370 Ono što je pitanje želimo pitati, što mislite? 932 00:40:43,370 --> 00:40:46,870 933 00:40:46,870 --> 00:40:50,330 Tako je prije smo pitali to pitanje, ako je n veći od nule, to. 934 00:40:50,330 --> 00:40:51,870 Inače, to učiniti. 935 00:40:51,870 --> 00:40:54,317 Dakle, moramo odabrati pitanje koje treba postaviti ovdje. 936 00:40:54,317 --> 00:40:55,192 PUBLIKA: [nečujan] 937 00:40:55,192 --> 00:40:56,530 DAVID J. Malan: Dobro. 938 00:40:56,530 --> 00:40:58,290 Dakle, ako je n jednak nuli. 939 00:40:58,290 --> 00:41:01,140 940 00:41:01,140 --> 00:41:02,100 Izvrsno. 941 00:41:02,100 --> 00:41:03,080 Tako ćemo ovdje zastati. 942 00:41:03,080 --> 00:41:04,850 Hvala vam toliko za braving to. 943 00:41:04,850 --> 00:41:10,890 Dopustite mi da vam dati malo zasluženi stres loptica, možda postoji. 944 00:41:10,890 --> 00:41:11,900 Tako smo skoro tamo. 945 00:41:11,900 --> 00:41:14,790 U stvari, Lauren, ne ako radite um, neka mi napraviti jedan ugađanje ovdje 946 00:41:14,790 --> 00:41:17,850 samo da se čak i ako što smo vidjeli u nule, što 947 00:41:17,850 --> 00:41:21,080 želim učiniti s linije 21 i 24, samo jednom se temelji 948 00:41:21,080 --> 00:41:23,290 o tome kako mi je to ispočetka, možda? 949 00:41:23,290 --> 00:41:24,230 >> PUBLIKA: Premjestiti ga. 950 00:41:24,230 --> 00:41:25,605 >> DAVID J. Malan: Da, premjestite ga. 951 00:41:25,605 --> 00:41:30,260 Tako je stanje ostalo, treći, ili četvrto, ili peti ili konačna grana, 952 00:41:30,260 --> 00:41:34,100 treba doista doći poslije, i to je samo po konvenciji, 953 00:41:34,100 --> 00:41:36,047 samo zato ako hoćete. 954 00:41:36,047 --> 00:41:37,380 Pa ja trebam napraviti ovaj ugađanje. 955 00:41:37,380 --> 00:41:39,660 I moram staviti moj kovrčava brace ovdje. 956 00:41:39,660 --> 00:41:42,700 I sad, ovaj program će sastaviti. 957 00:41:42,700 --> 00:41:46,140 Mi smo tako blizu, ali tu je vrlo, vrlo suptilna bug. 958 00:41:46,140 --> 00:41:47,200 Idemo vidjeti što se događa. 959 00:41:47,200 --> 00:41:49,660 >> Prvo, neka mi ići naprijed i smanjivanje. 960 00:41:49,660 --> 00:41:53,405 Ja ću ići naprijed i upišite bi stanje nula. 961 00:41:53,405 --> 00:41:55,070 Oh, lagao bih. 962 00:41:55,070 --> 00:41:58,760 Sada prevodilac je zapravo prilično pametna. 963 00:41:58,760 --> 00:42:00,950 A ja stvarno ne razumijem to je poruka o pogrešci. 964 00:42:00,950 --> 00:42:04,310 Koristeći rezultat zadatku kao uvjet bez zagrada, 965 00:42:04,310 --> 00:42:05,740 je očito loše. 966 00:42:05,740 --> 00:42:07,100 No, što to znači? 967 00:42:07,100 --> 00:42:10,860 >> Pa opet, u potrazi za uzorke u kod koji smo vidjeli prije, 968 00:42:10,860 --> 00:42:16,640 Što je linija 17 zapravo radi, iako Lauren malo namijenjen 969 00:42:16,640 --> 00:42:18,790 inače? 970 00:42:18,790 --> 00:42:19,290 Da. 971 00:42:19,290 --> 00:42:21,565 >> PUBLIKA: [nečujan] 972 00:42:21,565 --> 00:42:22,440 DAVID J. Malan: Da. 973 00:42:22,440 --> 00:42:26,610 Dakle, ne zaboravite znak jednakosti, očito kako smo ga koristili prije, nije jednako. 974 00:42:26,610 --> 00:42:29,240 Njegov zadatak, s desna na lijevo. 975 00:42:29,240 --> 00:42:33,810 Dakle, linija 17 u ovom trenutku je uvjet, a to je 976 00:42:33,810 --> 00:42:37,890 izvršavanje koda unutar zagrada, ali kad se to kod izvršava, 977 00:42:37,890 --> 00:42:42,140 ono što se događa na vrijednost nula? 978 00:42:42,140 --> 00:42:45,250 Što se događa u vrijednosti od n? 979 00:42:45,250 --> 00:42:46,810 Postati nulu. 980 00:42:46,810 --> 00:42:50,520 Dakle, ako je n postaje nula, i opet, po prošlog tjedna, 981 00:42:50,520 --> 00:42:54,690 mi općenito reći da nula je lažno i jedna je istina, 982 00:42:54,690 --> 00:42:57,410 ili da je jedan i nema je nula. 983 00:42:57,410 --> 00:42:59,590 Dakle, pravi i lažni, jedan i 0. 984 00:42:59,590 --> 00:43:06,090 Ako je n od linije 17 je s obzirom na vrijednost 0, nula istina? 985 00:43:06,090 --> 00:43:06,590 Ne. 986 00:43:06,590 --> 00:43:08,280 Po definiciji, nula je lažna. 987 00:43:08,280 --> 00:43:10,860 To je konvencija smo će držati se kreće prema naprijed. 988 00:43:10,860 --> 00:43:17,320 Tako će linije 18, 19, i 20 sve vrijede sada, logično? 989 00:43:17,320 --> 00:43:18,320 Oni ne mogu. 990 00:43:18,320 --> 00:43:21,640 Tako smo postavili pitanje ali ne sasvim točno, 991 00:43:21,640 --> 00:43:25,620 a ti ne bi znao to, osim ako ste ga vidjeli, rješenje u C 992 00:43:25,620 --> 00:43:29,610 kad želite izraziti jednakost, kažeš jednaki jednaka. 993 00:43:29,610 --> 00:43:33,140 Dakle, znak jednakosti već iskorišten po zadatku, s desna na lijevo. 994 00:43:33,140 --> 00:43:35,110 Jednako jednak način jednako. 995 00:43:35,110 --> 00:43:37,950 A ako stvarno želite da vaš um biti savijen u JavaScript i PHP, 996 00:43:37,950 --> 00:43:40,490 postoji jednaka jednaka jednakima, koji znači nešto drugo uopce, 997 00:43:40,490 --> 00:43:41,990 ali mi ćemo doći do toga prije dugo. 998 00:43:41,990 --> 00:43:45,760 >> Dakle, ovo je jednostavan škripac, ali shvatite super jednostavan za napraviti ovu pogrešku, 999 00:43:45,760 --> 00:43:48,700 i onda čuditi i borba za nekoliko minuta, ako ne i sata, 1000 00:43:48,700 --> 00:43:51,490 Zašto je moj broj ne izvršavanje kao Namjeravam? 1001 00:43:51,490 --> 00:43:54,140 To je zato što nije rekao je upravo ono što je značilo. 1002 00:43:54,140 --> 00:43:56,450 Tako da je gotovo savršena, i to je super 1003 00:43:56,450 --> 00:44:00,760 da smo naišli na ove dvije male stvari jer sada, ako smo ih riješili, 1004 00:44:00,760 --> 00:44:06,240 i ja bi stanje nula dot slash stanje nula, 1005 00:44:06,240 --> 00:44:07,490 Htio bih cijeli broj molim. 1006 00:44:07,490 --> 00:44:08,090 Da vidimo. 1007 00:44:08,090 --> 00:44:09,160 Ne. 1008 00:44:09,160 --> 00:44:10,740 To će me prisiliti da to učini. 1009 00:44:10,740 --> 00:44:11,990 Dakle, 42. 1010 00:44:11,990 --> 00:44:13,590 Uzela sam pozitivan broj. 1011 00:44:13,590 --> 00:44:16,470 Pa sad kako mogu dokazati ovaj program točno? 1012 00:44:16,470 --> 00:44:19,990 Ako ste matematičara, ne možete stvarno dokazati metodom pokušaja i pogreške, 1013 00:44:19,990 --> 00:44:20,490 zar ne? 1014 00:44:20,490 --> 00:44:23,180 Ne možete samo dokaz strane Primjerice, ali barem 1015 00:44:23,180 --> 00:44:25,494 kao programer nismo će pokušati dokazati za sada 1016 00:44:25,494 --> 00:44:27,660 da je to doista točno, ali ja trebao vjerojatno 1017 00:44:27,660 --> 00:44:29,470 testirati neke reprezentativne slučajeve. 1018 00:44:29,470 --> 00:44:31,070 >> Ja sam testirao 42. 1019 00:44:31,070 --> 00:44:33,030 Mogao sam testirati 43. 1020 00:44:33,030 --> 00:44:34,910 Mogao sam testirati 44. 1021 00:44:34,910 --> 00:44:35,640 Test 45. 1022 00:44:35,640 --> 00:44:36,140 Pravo? 1023 00:44:36,140 --> 00:44:37,860 Ali ja bi to stvarno davno učiniti. 1024 00:44:37,860 --> 00:44:39,925 Što bi se još malo Zanimljivi slučajevi probati? 1025 00:44:39,925 --> 00:44:41,050 PUBLIKA: [nečujan] nuli. 1026 00:44:41,050 --> 00:44:41,740 DAVID J. Malan: Pa nula. 1027 00:44:41,740 --> 00:44:42,297 Svakako. 1028 00:44:42,297 --> 00:44:44,880 A dobro, mi smo ga dobili ovaj put, zahvaljujući Laurenov novi kod. 1029 00:44:44,880 --> 00:44:46,213 Što je još jedan dobar slučaj pokušati? 1030 00:44:46,213 --> 00:44:47,320 PUBLIKA: negativan. 1031 00:44:47,320 --> 00:44:50,070 >> DAVID J. Malan: negativan, i možda nešto malo veći, 1032 00:44:50,070 --> 00:44:52,617 pa možda negativna 42, ali općenito, kad 1033 00:44:52,617 --> 00:44:54,450 testiranje vaših programa kreće naprijed, ti si 1034 00:44:54,450 --> 00:44:56,325 idući u ištanje to misliti za sebe, kao što je 1035 00:44:56,325 --> 00:44:58,050 su temeljna različita slučaja. 1036 00:44:58,050 --> 00:45:01,720 I usuđujem se reći negativan slučaj, pozitivan slučaj, a nula slučaj 1037 00:45:01,720 --> 00:45:03,365 prilično zaokružuje ove out. 1038 00:45:03,365 --> 00:45:04,990 Pogledajmo varijantu ovog ipak. 1039 00:45:04,990 --> 00:45:06,930 Uvjeti jedan. 1040 00:45:06,930 --> 00:45:11,224 To je točno rješenje ovdje, tako da ćete vidjeti dva i on-line, 1041 00:45:11,224 --> 00:45:13,390 ako hoda kroz Walkthroughs, općenito 1042 00:45:13,390 --> 00:45:18,090 povećajte ove postupno dok ne dobili točno pravo pristupa. 1043 00:45:18,090 --> 00:45:20,070 Što ako smo htjeli pitati dva pitanja odjednom? 1044 00:45:20,070 --> 00:45:22,200 >> Dopustite mi otvoriti ovaj umjesto. 1045 00:45:22,200 --> 00:45:26,740 Non-prekidač, iz razloga vidjet ćemo drugi put. 1046 00:45:26,740 --> 00:45:29,610 Što je novo sintaktički ovdje? 1047 00:45:29,610 --> 00:45:32,760 Ja sam trenutno igrate igru gdje je računalo govori 1048 00:45:32,760 --> 00:45:35,550 mi, daj mi cijeli broj jedan do 10, 1049 00:45:35,550 --> 00:45:37,180 a onda ću suditi korisnika ulaz. 1050 00:45:37,180 --> 00:45:39,180 U engleskom jeziku, na temelju kod vidite ovdje 1051 00:45:39,180 --> 00:45:41,530 u plavoj boji, što je ovaj program radi? 1052 00:45:41,530 --> 00:45:44,256 1053 00:45:44,256 --> 00:45:46,380 PUBLIKA: [nečujan] pokupio veliki ili mali broj. 1054 00:45:46,380 --> 00:45:46,484 DAVID J. Malan: Da. 1055 00:45:46,484 --> 00:45:49,450 To je samo odlučivanju hoće li Uzela sam veliku ili medij, 1056 00:45:49,450 --> 00:45:53,900 ili mali broj temelju vrlo proizvoljna definicija malih, srednjih, 1057 00:45:53,900 --> 00:45:58,510 i velika ovdje, ali obavijest sintaksa da je novo je to. 1058 00:45:58,510 --> 00:46:02,340 Nema manje od int ili jednak potpisati, ili veća od ili jednaka potpisati, 1059 00:46:02,340 --> 00:46:05,430 gdje je nad drugim, da vas može izraziti kao Microsoft Word. 1060 00:46:05,430 --> 00:46:08,180 Tako je u programskom jeziku obično samo napraviti dva znaka, 1061 00:46:08,180 --> 00:46:09,450 jedan za drugim. 1062 00:46:09,450 --> 00:46:12,695 A što se to vjerojatno predstavljaju, ampersand ampersand. 1063 00:46:12,695 --> 00:46:13,570 PUBLIKA: [nečujan] 1064 00:46:13,570 --> 00:46:13,680 DAVID J. Malan: Da. 1065 00:46:13,680 --> 00:46:16,910 To samo znači da i zbog njega Ispada da su autori C 1066 00:46:16,910 --> 00:46:19,120 koristi jednu ampersand, što možda mislite 1067 00:46:19,120 --> 00:46:22,430 će biti savršen za pojam od te se već koristi se, 1068 00:46:22,430 --> 00:46:27,300 tako da znak za struju znak za struju zapravo bilježi slučaj zapravo želite. 1069 00:46:27,300 --> 00:46:30,610 >> Tako ćemo sada posrnuti preko dvije stvari. 1070 00:46:30,610 --> 00:46:32,640 Dopustite mi ići naprijed i otvoriti jednu. 1071 00:46:32,640 --> 00:46:36,590 Nešto što je malo zabrinjavajuće. 1072 00:46:36,590 --> 00:46:37,970 Nepreciznost točka c. 1073 00:46:37,970 --> 00:46:40,260 Dopustite da se predstavimo dvije stvari ovdje. 1074 00:46:40,260 --> 00:46:44,720 Jedan, obavijest da možemo napraviti matematika, kao kao i prije kada 1075 00:46:44,720 --> 00:46:47,797 smo plus dva broja X i Y. 1076 00:46:47,797 --> 00:46:49,380 Što je ovaj program očito radi? 1077 00:46:49,380 --> 00:46:52,140 Nisam ga još komentirao, i ja sam uveo posto f, 1078 00:46:52,140 --> 00:46:55,720 ali brzo sam rekao ranije posto f znači pomičnim zarezom 1079 00:46:55,720 --> 00:46:56,970 vrijednost, što je stvarni broj. 1080 00:46:56,970 --> 00:46:59,520 Nešto s decimale točka, što nije cijeli broj. 1081 00:46:59,520 --> 00:47:02,270 Što mislite je ovaj program pokušava me se prikazati na zaslonu? 1082 00:47:02,270 --> 00:47:05,060 1083 00:47:05,060 --> 00:47:06,050 Da? 1084 00:47:06,050 --> 00:47:07,550 PUBLIKA: Rezultat jedan preko 10. 1085 00:47:07,550 --> 00:47:07,780 DAVID J. Malan: Da. 1086 00:47:07,780 --> 00:47:09,680 Što je rezultat jedne podijeljena 10. 1087 00:47:09,680 --> 00:47:12,721 Točno, jer svi vi vjerojatno odrasla znajući da je jedan više od 10 1088 00:47:12,721 --> 00:47:14,502 je što? 1089 00:47:14,502 --> 00:47:16,220 Da, to je samo 1/10 ili 0,1. 1090 00:47:16,220 --> 00:47:16,720 Pravo? 1091 00:47:16,720 --> 00:47:19,010 Tako ćemo vidjeti što to zapravo jest. 1092 00:47:19,010 --> 00:47:21,010 Pa neka mi ići naprijed i spasiti ovo. 1093 00:47:21,010 --> 00:47:21,970 Pusti me ovdje. 1094 00:47:21,970 --> 00:47:26,360 Napravite nepreciznost dot crta nepreciznosti i obavijest, također, 1095 00:47:26,360 --> 00:47:29,380 u Linux okruženju, što ne moraju tip iz nepreciznosti i uzeti 1096 00:47:29,380 --> 00:47:30,010 cijeli dan. 1097 00:47:30,010 --> 00:47:32,910 Općenito, ako hit Tab, to će završiti svoju misao za vas, 1098 00:47:32,910 --> 00:47:36,660 temelji se na riječi koje su dostupna u trenutnom direktoriju. 1099 00:47:36,660 --> 00:47:37,160 U REDU. 1100 00:47:37,160 --> 00:47:37,970 Dakle, bili ste u pravu. 1101 00:47:37,970 --> 00:47:41,239 Jedan podijeljena 10 je, u stvari, 0.1. 1102 00:47:41,239 --> 00:47:42,280 Ali ja sam malo znatiželjan. 1103 00:47:42,280 --> 00:47:44,196 I ispada printf podržava neke značajke 1104 00:47:44,196 --> 00:47:48,700 gdje možete odrediti više od zadani broj decimalnih mjesta. 1105 00:47:48,700 --> 00:47:52,140 Dakle, ako želim vidjeti 10 decimale Točke mogu učiniti posto, 1106 00:47:52,140 --> 00:47:55,510 za simbol rezerviranog mjesta, dot 10 za, daj mi 10 decimalne točke, 1107 00:47:55,510 --> 00:47:58,140 a onda dalje s pomičnim zarezom vrijednost, i, kao na stranu, 1108 00:47:58,140 --> 00:48:01,550 što je ovo backslash n očito smo stalno koristite? 1109 00:48:01,550 --> 00:48:03,450 Ispada da je Simbol za novu liniju. 1110 00:48:03,450 --> 00:48:05,970 To je vrlo eksplicitan način govoreći na računalo, 1111 00:48:05,970 --> 00:48:08,759 pomaknite pokazivač na sljedeći crta nakon što ste učinili. 1112 00:48:08,759 --> 00:48:10,800 A vidjet ćemo što će se dogoditi kad mi ne učiniti. 1113 00:48:10,800 --> 00:48:12,430 >> Dopustite mi rekompilirati bi nepreciznost. 1114 00:48:12,430 --> 00:48:15,320 1115 00:48:15,320 --> 00:48:18,356 Sada dot slash nepreciznost. 1116 00:48:18,356 --> 00:48:18,930 U REDU. 1117 00:48:18,930 --> 00:48:19,780 Ipak pravu. 1118 00:48:19,780 --> 00:48:21,512 Jedan podijeljena 10. 1119 00:48:21,512 --> 00:48:23,220 Sada sam uzimajući malo znatiželjni, ipak. 1120 00:48:23,220 --> 00:48:27,599 Što ako gledam 20 decimale ističe, rekompiliranje, ponovno izvođenje, 1121 00:48:27,599 --> 00:48:29,390 i kao u stranu Brzina, također možete koristiti 1122 00:48:29,390 --> 00:48:31,800 Vaš gore i dolje strelice za pomicanje kroz povijest, 1123 00:48:31,800 --> 00:48:35,476 tako da ne morate držati prekucavanje ove naredbe, upišite. 1124 00:48:35,476 --> 00:48:36,910 Ha. 1125 00:48:36,910 --> 00:48:39,220 Nisam saznali da u osnovnoj školi. 1126 00:48:39,220 --> 00:48:43,260 U redu, pa mi dopustite vidi se kao 29 mjesta van. 1127 00:48:43,260 --> 00:48:44,300 Možda je to samo slučajnost. 1128 00:48:44,300 --> 00:48:46,907 Možda moje računalo ponaša čudno. 1129 00:48:46,907 --> 00:48:47,990 To nije stvar, zar ne? 1130 00:48:47,990 --> 00:48:50,300 To je radi nešto deterministički. 1131 00:48:50,300 --> 00:48:53,410 Tako bi nepreciznost. 1132 00:48:53,410 --> 00:48:54,890 U redu, to je zabrljao. 1133 00:48:54,890 --> 00:48:57,620 Dakle, što se događa? 1134 00:48:57,620 --> 00:49:00,160 >> Dakle, očito svoj blog Učitelj je lagao 1135 00:49:00,160 --> 00:49:03,900 vam sve ovo vrijeme Razlozi da ćemo vidjeti zadugo. 1136 00:49:03,900 --> 00:49:05,569 Ali neka je završiti s jednom drugom programu. 1137 00:49:05,569 --> 00:49:07,860 To je malo programa netko je napisao prije nekoliko godina, 1138 00:49:07,860 --> 00:49:08,990 i to je zapravo dio natjecanja. 1139 00:49:08,990 --> 00:49:11,198 Nitko zapravo piše šifru ovako, a ako ne, 1140 00:49:11,198 --> 00:49:12,880 to je stilski problem. 1141 00:49:12,880 --> 00:49:14,660 Ali ljudi to učiniti za hvalisanje prava. 1142 00:49:14,660 --> 00:49:17,260 Za pisanje najviše konfuzno gleda program koji 1143 00:49:17,260 --> 00:49:19,110 ipak radi nešto zanimljivo. 1144 00:49:19,110 --> 00:49:23,930 I napomena sam mislio da ćemo ostaviti na Danas, prije nego što nas Colton igra ovdje, 1145 00:49:23,930 --> 00:49:27,840 je pokrenuti ovaj program, koji, čak iu samo pomoću 1146 00:49:27,840 --> 00:49:31,450 C u ovaj tekst-temeljen okoliš, daje nam tu. 1147 00:49:31,450 --> 00:49:32,264 Vraga. 1148 00:49:32,264 --> 00:49:34,930 >> [Smijeh] 1149 00:49:34,930 --> 00:49:36,800 >> Pričekaj. 1150 00:49:36,800 --> 00:49:39,340 [Nečujan] c crtica l m. 1151 00:49:39,340 --> 00:49:42,885 Ideš vidjeti čarobni bajanje da ćemo vidjeti prije dugo. 1152 00:49:42,885 --> 00:49:45,780 [Nečujan] U redu. 1153 00:49:45,780 --> 00:49:51,592 A sada možete čak učiniti stvari kao što je ovaj. 1154 00:49:51,592 --> 00:49:52,340 To je to. 1155 00:49:52,340 --> 00:49:56,410 Za CS50 mi, će vas vidjeti u petak. 1156 00:49:56,410 --> 00:49:58,910 >> [Glazbom] 1157 00:49:58,910 --> 00:52:38,390 1158 00:52:38,390 --> 00:52:41,440 >> [PLJESAK] 1159 00:52:41,440 --> 00:52:42,812