1 00:00:00,000 --> 00:00:12,410 >> [Predvajanja glasbe] 2 00:00:12,410 --> 00:00:12,830 >> DAVID Malan V redu. 3 00:00:12,830 --> 00:00:13,370 Dobrodošel nazaj. 4 00:00:13,370 --> 00:00:16,510 To je CS50, in to En teden, nadaljuje. 5 00:00:16,510 --> 00:00:20,050 Torej, eden od razlogov, da smo že potekata okoli tehnologij, kot so 6 00:00:20,050 --> 00:00:24,120 Google Glass je, da prihajajo z nekaj, kar je znano kot API, 7 00:00:24,120 --> 00:00:25,980 Application Programming Interface. 8 00:00:25,980 --> 00:00:28,830 In kaj to pomeni, je, da s pravica datoteke in z desno 9 00:00:28,830 --> 00:00:32,850 dokumentacijo, lahko dejansko napisati Programska oprema za celo naprav, kot ti. 10 00:00:32,850 --> 00:00:36,200 >> Pa kaj imamo v mislih proti semestre konec je, če projekt 11 00:00:36,200 --> 00:00:39,310 vključujejo, pravijo, Google Glass morda Pritožba, bomo videli, kaj lahko storimo v 12 00:00:39,310 --> 00:00:42,220 Pogoji vas pečal z nekaterimi loaner strojne opreme, kot tudi 13 00:00:42,220 --> 00:00:46,500 javno dostopen API, tako da lahko dejansko začeli ustvarjanje programske opreme 14 00:00:46,500 --> 00:00:48,630 ki deluje na isti Google Glass. 15 00:00:48,630 --> 00:00:51,710 >> Še ena naprava, ki smo bili igranje s pozno, da smo mislili, da bi lahko 16 00:00:51,710 --> 00:00:53,910 zabava ob koncu semestra je ta mala stvar tukaj. 17 00:00:53,910 --> 00:00:56,860 To se imenuje Leap Predlog, in kaj ste nadeja je tehnično 18 00:00:56,860 --> 00:01:00,280 oglas za napravo, vendar ne govori, kaj to zlasti 19 00:01:00,280 --> 00:01:01,240 Naprava lahko. 20 00:01:01,240 --> 00:01:05,550 In to tudi, prihaja z API preko ki jo lahko napisati programsko opremo za 21 00:01:05,550 --> 00:01:10,545 nadzor svoj računalnik na način, zelo všeč ta enominutni film tukaj. 22 00:01:10,545 --> 00:01:12,070 >> [Predvajanje videa] 23 00:01:12,070 --> 00:02:08,002 24 00:02:08,002 --> 00:02:08,590 >> [END predvajanje videa] 25 00:02:08,590 --> 00:02:11,190 >> Torej, zdaj, ta naprava se zgodi, da se izvaja kot majhen USB 26 00:02:11,190 --> 00:02:14,290 priključek, ki ga lahko priključite na vaš računalnik, ampak jaz ne bi bil presenečen 27 00:02:14,290 --> 00:02:17,930 če se pred dolgo bomo imeli te vrste tehnologije v naslednje serije računalnikov 28 00:02:17,930 --> 00:02:20,510 in Mac, tako da lahko res, interakcijo z njim v 29 00:02:20,510 --> 00:02:21,650 način, kot je ta. 30 00:02:21,650 --> 00:02:24,250 V bistvu, kaj sem mislil, da sem naredil, kar je prav Sem potegnil malo demonstracijo 31 00:02:24,250 --> 00:02:25,860 Program, ki pride s to programsko opremo. 32 00:02:25,860 --> 00:02:28,700 Tako sem dal malo senzor pred mojim laptop. 33 00:02:28,700 --> 00:02:32,420 >> In kot vidite, je to že uresničuje da je moja roka ni 34 00:02:32,420 --> 00:02:33,400 njeno upravljanje. 35 00:02:33,400 --> 00:02:37,900 In vse to vlogo pa je Gladko malo stvari, kot je ta. 36 00:02:37,900 --> 00:02:41,080 Vendar pa lahko vidite, da je res, Imam pet prstov tam. 37 00:02:41,080 --> 00:02:44,270 Če bomo dobili to storiti vse 10, si lahko predstavljate čeden klavir 38 00:02:44,270 --> 00:02:45,390 uporaba ali podobno. 39 00:02:45,390 --> 00:02:47,820 Torej, če želite, da bi prišli do po pouku danes in play s tem kot 40 00:02:47,820 --> 00:02:49,720 No, ste dobrodošli. 41 00:02:49,720 --> 00:02:52,930 Torej, več o tem proti koncu semester. 42 00:02:52,930 --> 00:02:54,420 >> Torej nekaj upravno obvestila. 43 00:02:54,420 --> 00:02:58,690 Ena, to poglavje, ki ga ta petek opoldne na cs60.net/section. 44 00:02:58,690 --> 00:03:01,260 To je URL na tečaj je domača stran tudi. 45 00:03:01,260 --> 00:03:04,010 V tem času, čeprav supersections bo prvi nastop to nedeljo. 46 00:03:04,010 --> 00:03:07,800 Supersections so enkratna stvar, saj nam traja nekaj časa za delo 47 00:03:07,800 --> 00:03:09,470 kdo je v kateri sekciji in kje. 48 00:03:09,470 --> 00:03:12,280 >> Torej tega prihaja v nedeljo, bom tam ena oddelek za tiste manj udoben, 49 00:03:12,280 --> 00:03:14,040 en del za tiste, bolj udobno. 50 00:03:14,040 --> 00:03:16,110 In tiste, ki ste nekje v med, so dobrodošli, da gre za 51 00:03:16,110 --> 00:03:17,850 ali oba ali pa tudi ne. 52 00:03:17,850 --> 00:03:19,150 Oboje bo posnet. 53 00:03:19,150 --> 00:03:22,740 Oni bodo v večji dvorani kot odsek je običajno noter 54 00:03:22,740 --> 00:03:26,110 Ampak cilj tukaj je za vas opremili z nekateri udobje s problemom iz enega, 55 00:03:26,110 --> 00:03:29,910 s C, s CS50 aparata, s tem vikend, še preden ste izvedeli vaše 56 00:03:29,910 --> 00:03:31,050 formalna naloga oddelek. 57 00:03:31,050 --> 00:03:34,700 Tako da boste izpolnjujejo vaše TF in tvoj manjši Skupina sectionmates v približno 58 00:03:34,700 --> 00:03:36,350 čez en teden. 59 00:03:36,350 --> 00:03:38,200 >> Uradne ure, medtem, so dogaja. 60 00:03:38,200 --> 00:03:41,020 Naredite izkoristite njih nocoj ali jutri zvečer, če bi želeli. 61 00:03:41,020 --> 00:03:43,460 Problem set 0 zapade v petek. 62 00:03:43,460 --> 00:03:46,680 To je dan kasneje kot redno, predvidoma četrtek. 63 00:03:46,680 --> 00:03:50,410 Ampak s problematičnega 1 setu boste videli da vključuje nekatere ogrevanjem 64 00:03:50,410 --> 00:03:52,770 vaje, s katerimi si sami lahko razširite 65 00:03:52,770 --> 00:03:54,660 Četrtek rok do petka. 66 00:03:54,660 --> 00:03:58,410 Problem sklop 1, medtem, bo prvenec na spletni strani seveda je to prihajajočem 67 00:03:58,410 --> 00:04:02,000 Petek, če želite, da curl z je, kot sem nekoč konec 68 00:04:02,000 --> 00:04:04,370 Petek zvečer v svoji sobi. 69 00:04:04,370 --> 00:04:07,660 >> Torej cs50.net/appliance je kraj, kjer lahko dobite CS50 aparat 70 00:04:07,660 --> 00:04:09,040 da smo začeli uporabljati v ponedeljek. 71 00:04:09,040 --> 00:04:10,140 Uporabili jo bomo malo več danes. 72 00:04:10,140 --> 00:04:14,040 Pa prepričani, da problem iz 1 Specifikacija vas bo vodil skozi 73 00:04:14,040 --> 00:04:16,490 natančneje koraki boste morali da bi dobili, da je gor in teče. 74 00:04:16,490 --> 00:04:22,120 Torej, ne skrbite o tem, da je pred Pset 1, če raje ne bi. 75 00:04:22,120 --> 00:04:22,660 >> Vse je v redu. 76 00:04:22,660 --> 00:04:27,180 Tako smo pogledal v ponedeljek ob izvorne kode, vendar v okviru novo 77 00:04:27,180 --> 00:04:30,895 programskega jezika, in sicer C in C, za razliko od nič, ni grafična. 78 00:04:30,895 --> 00:04:32,270 To ni koščke. 79 00:04:32,270 --> 00:04:34,450 To je bolj angleški podobno sintakso. 80 00:04:34,450 --> 00:04:37,140 In tam je par korakov v dejansko pisanje in vodenje 81 00:04:37,140 --> 00:04:41,650 program C, saj poleg vira kodo, kot je ta, boste potrebovali nekaj 82 00:04:41,650 --> 00:04:42,890 imenovan prevajalnik. 83 00:04:42,890 --> 00:04:46,682 In v smislu navadnega je, kaj ne prevajalnik naredi za nas? 84 00:04:46,682 --> 00:04:47,650 Ja. 85 00:04:47,650 --> 00:04:51,040 >> ŠTUDENT: pretvarja kodo da pišete, da 0s in 1s. 86 00:04:51,040 --> 00:04:51,151 >> DAVID Malan: Dobro. 87 00:04:51,151 --> 00:04:53,580 Tako da pretvori kodo, ki pišemo, da 0s in 1s. 88 00:04:53,580 --> 00:04:57,730 Jo pretvori tako imenovano izvorno kodo kodi, so slednji izgleda 89 00:04:57,730 --> 00:04:59,140 Malo kaj takega. 90 00:04:59,140 --> 00:05:02,860 In to je vaš CPU, možgani zunanjost računalnik, ki zaradi 91 00:05:02,860 --> 00:05:06,280 ljudje, ki so ustvarili te računalnike, veš, kaj te sekvence 92 00:05:06,280 --> 00:05:07,460 v 0s in 1s povprečja. 93 00:05:07,460 --> 00:05:08,640 >> Morda to pomeni tisk. 94 00:05:08,640 --> 00:05:10,265 Morda to pomeni dodatek. 95 00:05:10,265 --> 00:05:11,610 Morda to pomeni odštevanje. 96 00:05:11,610 --> 00:05:13,350 Morda to pomeni, da prikaže sliko. 97 00:05:13,350 --> 00:05:16,870 Tam so vnaprej določene vzorce bitov da se je svet odločil pomeni 98 00:05:16,870 --> 00:05:17,700 nekatere stvari. 99 00:05:17,700 --> 00:05:20,760 Toda za večino del v tem letu, bomo delo na višji ravni, in 100 00:05:20,760 --> 00:05:24,180 bomo samoumevno, da obstaja stvari, kot so prevajalniki, ki lahko 101 00:05:24,180 --> 00:05:27,670 da bi naše delovanje izvorno kodo na način želimo. 102 00:05:27,670 --> 00:05:31,660 >> Torej programu smo pisali prvi zadnji teden nato pa je začela vrata, tako da 103 00:05:31,660 --> 00:05:33,920 govorijo, da je to mimo C Ponedeljek, je bilo to. 104 00:05:33,920 --> 00:05:35,700 Ko kliknete zelena zastava, pozdravi. 105 00:05:35,700 --> 00:05:37,430 To je seveda napisana v nič. 106 00:05:37,430 --> 00:05:40,710 In jaz sem trdil, da je enakovreden Program v C pogledal malo 107 00:05:40,710 --> 00:05:41,520 kaj takega. 108 00:05:41,520 --> 00:05:45,050 >> Torej, kaj sem mislil, da bi naredil, sprva je, dajmo draži narazen, kar izgleda na prvi 109 00:05:45,050 --> 00:05:48,790 pogled Res je, kot je dokaj skrivnostno sintakso, vendar boste začeli opažati 110 00:05:48,790 --> 00:05:50,160 precej hitro vzorci. 111 00:05:50,160 --> 00:05:53,770 Kaj bomo storiti tudi danes, je zagotovila ste z duševno model za nekatere 112 00:05:53,770 --> 00:05:57,280 kanonično, nekaj standardnih konstrukti pri programiranju. 113 00:05:57,280 --> 00:06:00,420 In potem bomo dejansko dobili naše roke umazan z nekaterimi primeri, kot tudi. 114 00:06:00,420 --> 00:06:04,140 >> Torej za tiste, ki ste bolj udobno, Zavedam se, da ta teden, nato pa naslednja 115 00:06:04,140 --> 00:06:05,940 teden, se lahko zelo dobro biti malo pregleda. 116 00:06:05,940 --> 00:06:08,810 Ampak, še posebej, če izdaja heker problema sklop 1 gre na 117 00:06:08,810 --> 00:06:12,330 Spletna stran tečajnega v petek, mislim boste ugotovili, da tudi, ko izpolnijo 118 00:06:12,330 --> 00:06:15,390 nekateri nedokončani v naslednjem tednu ali dveh, boste začeli, da bi dobili vse bolj 119 00:06:15,390 --> 00:06:18,410 izpodbija in se srečujejo Nove in novejše stvari. 120 00:06:18,410 --> 00:06:21,310 >> Torej, kaj je nagajal ta program narazen nekaj vrstic hkrati. 121 00:06:21,310 --> 00:06:24,140 Na samem vrhu, imamo kaj strokovno imenujemo 122 00:06:24,140 --> 00:06:25,950 preprocesor direktiva. 123 00:06:25,950 --> 00:06:30,510 To je samo vrstico kode, ki pravi, vključiti vsebino datoteke, 124 00:06:30,510 --> 00:06:35,080 imenovane standardne I / N, standardni vhod - ali pa, žal, Standard I / O, standardno 125 00:06:35,080 --> 00:06:38,670 vhodno / izhodne. h, v notranjosti v svojem programu. 126 00:06:38,670 --> 00:06:41,670 >> Torej, z drugimi besedami, če sem to napisal Program s preprostim urejevalnikom besedila, kot so 127 00:06:41,670 --> 00:06:45,260 gedit, enostavnejša ekvivalent nekaj podobnega Microsoft Word, da 128 00:06:45,260 --> 00:06:50,970 navodilo, # include stdio.h, je samo bo povedal prevajalnik, zgrabi 129 00:06:50,970 --> 00:06:56,080 Vsebina te druge datoteke, stdio.h, in jih prilepite tukaj. 130 00:06:56,080 --> 00:06:57,090 >> Zdaj, zakaj me briga? 131 00:06:57,090 --> 00:07:01,850 Kaj pa trdimo, se znotraj te datoteke imenovano stdio.h, ki je shranjena 132 00:07:01,850 --> 00:07:05,490 nekje na mojem trdem disku, ali v tem primera, nekje v CS50 aparata? 133 00:07:05,490 --> 00:07:06,635 Nekdo drug ga tam za mene. 134 00:07:06,635 --> 00:07:09,910 Toda kaj je v njej? 135 00:07:09,910 --> 00:07:13,020 >> Ja, tako da je izjava o kličemo funkcijo printf. 136 00:07:13,020 --> 00:07:17,400 Torej printf opozarja, da je funkcija prikazovalniki besed in znakov ter 137 00:07:17,400 --> 00:07:20,160 Številke na zaslonu na mojo ponudbo. 138 00:07:20,160 --> 00:07:21,220 Ampak nisem napisal. 139 00:07:21,220 --> 00:07:22,230 CS50 nisem napisal. 140 00:07:22,230 --> 00:07:26,990 Nekdo pred leti ga je napisal, in v bistvu nam je dal recept za njo 141 00:07:26,990 --> 00:07:29,110 v datoteki z imenom stdio.h. 142 00:07:29,110 --> 00:07:33,240 Tako, da v prvi vrstici samo mi daje dostop do funkcij, ki jih nekdo drug 143 00:07:33,240 --> 00:07:36,500 napisal pred leti, med ki so printf. 144 00:07:36,500 --> 00:07:39,450 >> Zdaj, naslednji vrstici bom pomahati moj roko na, vsaj do naslednjega tedna. 145 00:07:39,450 --> 00:07:43,620 Ampak za zdaj, vedo, da int main (void) je v bistvu ustreza tem 146 00:07:43,620 --> 00:07:46,310 rumena puzzle piece, ko kliknili zelena zastava. 147 00:07:46,310 --> 00:07:49,510 Svet je pred leti odločila, da če pišete program 148 00:07:49,510 --> 00:07:53,150 jezik se imenuje C, začnete vaš program z linijo 149 00:07:53,150 --> 00:07:54,410 , ki je videti tako. 150 00:07:54,410 --> 00:07:57,650 V skoraj enem tednu, se bo lahko občutek, kaj int je, kaj je nična. 151 00:07:57,650 --> 00:08:00,840 Ampak za zdaj, samo pomislim kot to rumeno koščka sestavljanke. 152 00:08:00,840 --> 00:08:04,550 >> Zdaj naslednji korak, imamo skodrane oklepaja sledi z drugo tesno zavitih naramnicami, 153 00:08:04,550 --> 00:08:05,240 tako govoriti. 154 00:08:05,240 --> 00:08:07,430 In bomo videli ta celotni programi v C, kot tudi 155 00:08:07,430 --> 00:08:08,930 JavaScript in PHP. 156 00:08:08,930 --> 00:08:11,345 In to samo zaobjeti povezane vrstice kode. 157 00:08:11,345 --> 00:08:14,600 Odprta kodrasti naramnicami bistvu pravi, prihaja del kode. 158 00:08:14,600 --> 00:08:17,590 In zaprt kodrasti naramnicami, ki je nagnjen v drugo smer, tako 159 00:08:17,590 --> 00:08:19,920 pomeni, da je za ustrezno oznako. 160 00:08:19,920 --> 00:08:22,970 >> Torej sočno linija v ta prvi Program je zadnji, printf, 161 00:08:22,970 --> 00:08:25,080 quote-konec citata, zdravo svet. 162 00:08:25,080 --> 00:08:30,670 In sem poklical stvar med citati, kaj zadnjem času? 163 00:08:30,670 --> 00:08:31,285 Tako da je niz. 164 00:08:31,285 --> 00:08:35,309 In niz je samo techie izraz za zaporedje 165 00:08:35,309 --> 00:08:37,169 znakov, beseda, stavek. 166 00:08:37,169 --> 00:08:39,380 Tudi sam pismo bi lahko se dvakrat citiral. 167 00:08:39,380 --> 00:08:41,840 Ampak to je zaporedje nič ali več znakov. 168 00:08:41,840 --> 00:08:43,650 >> Nagibnica-n, čeprav je videti malo čudno. 169 00:08:43,650 --> 00:08:46,290 Ampak to preprosto pomenilo nekaj preprosto z računalnikom. 170 00:08:46,290 --> 00:08:48,060 Kaj je Nagibnica-n? 171 00:08:48,060 --> 00:08:48,570 Nova linija. 172 00:08:48,570 --> 00:08:52,490 Tako, da je samo posebna zaporedje znaki, da se je svet odločil, 173 00:08:52,490 --> 00:08:56,880 sredstvo dal prelom vrstice tam, ker bo prevajalnik dejansko dobili 174 00:08:56,880 --> 00:09:02,280 zmeden, običajno, če ste, zelo Razumljivo je, a je nepravilno, samo 175 00:09:02,280 --> 00:09:04,570 začetek pritisnemo Enter, da dajo Nove linije v kodi. 176 00:09:04,570 --> 00:09:07,150 Moraš biti malo bolj Izrecno z backslash-n. 177 00:09:07,150 --> 00:09:10,540 >> In bomo videli, da je nekaj drugega kot Vzorci za posebne znake. 178 00:09:10,540 --> 00:09:14,340 Na primer, če si hotel, da pustite, da vam misel sprehaja do kota primeru, 179 00:09:14,340 --> 00:09:18,080 Predvidevam, da sem želel natisniti dvojni narekovaj na zaslonu 180 00:09:18,080 --> 00:09:21,840 ne glede na razlog, da se zdi, da biti malo problematično, kajne? 181 00:09:21,840 --> 00:09:24,990 Ker če sem dal dvojni narekovaj v Sredi "Zdravo, svet", iz kakršnega koli 182 00:09:24,990 --> 00:09:30,120 Razlog, zakaj se zdi, da potencialno problematično? 183 00:09:30,120 --> 00:09:32,180 To prekine niz. 184 00:09:32,180 --> 00:09:34,700 >> Prevajalnik je le program. 185 00:09:34,700 --> 00:09:37,210 Program kot prevajalnik je le, da bo brati svojo kodo vrha do dna, 186 00:09:37,210 --> 00:09:37,990 z leve proti desni. 187 00:09:37,990 --> 00:09:41,850 In če vidi tri dvojne narekovaje, namesto dveh, to ne bo vedel 188 00:09:41,850 --> 00:09:45,210 če misliš, da je stvar levo mora biti niz ali stvar 189 00:09:45,210 --> 00:09:46,570 desno, ali stvar. 190 00:09:46,570 --> 00:09:50,560 To je dvoumen, in kaj tipično prevajalnik bi storiti, je le zmešana, 191 00:09:50,560 --> 00:09:53,710 in vam nekaj sporočilo o napaki, in da se ukvarjajo s tem problemom. 192 00:09:53,710 --> 00:09:58,120 >> Torej, saj nagibnica-n pomeni nov linija, kaj bi svojim instinktom zdaj 193 00:09:58,120 --> 00:10:02,610 začeti se, če si hotel, da vključuje kaj nenavadno, kot dvojna 194 00:10:02,610 --> 00:10:06,210 citiram notranjost to drugače, citirano niz? 195 00:10:06,210 --> 00:10:07,640 Nagibnica-dvojni narekovaj. 196 00:10:07,640 --> 00:10:09,630 In zato bomo to videli vrsta vzorca preveč. 197 00:10:09,630 --> 00:10:12,490 >> Če želite narediti nekaj malega Čudno, boste ugotovili, da 198 00:10:12,490 --> 00:10:15,060 rešitve pogosto sledijo vzorcu, in Nagibnica 199 00:10:15,060 --> 00:10:17,150 označuje ubežnega. 200 00:10:17,150 --> 00:10:20,320 In to samo pomeni nekaj posebnega da moramo za zastopanje v 201 00:10:20,320 --> 00:10:21,060 drugačen način. 202 00:10:21,060 --> 00:10:23,830 Kot je za kako si predstavljajo poševnica nazaj, no, bomo 203 00:10:23,830 --> 00:10:24,550 prišel nazaj na to. 204 00:10:24,550 --> 00:10:26,930 Ampak odgovor, preveč, je pravzaprav bit očitna. 205 00:10:26,930 --> 00:10:31,080 >> Torej, kaj je zdaj uvesti nekatere druge programski konstrukti 206 00:10:31,080 --> 00:10:31,915 ki si ga videl v nič. 207 00:10:31,915 --> 00:10:34,790 Verjetno ste že samoumevno že če ste že vrgli 208 00:10:34,790 --> 00:10:36,060 Problem nastavite na 0. 209 00:10:36,060 --> 00:10:40,950 Ampak kaj je zdaj predstavil sintakse v C Za te sicer precej intuitivno 210 00:10:40,950 --> 00:10:42,300 ideje, vsaj nekateri izmed njih. 211 00:10:42,300 --> 00:10:45,570 >> Tako da je ta pojem pogoj ali podružnica, ker je prej smo 212 00:10:45,570 --> 00:10:49,330 je predstavljal s kodo, ki je preučevala tako na levi strani v nič - 213 00:10:49,330 --> 00:10:52,200 Če je X manj kot y, nato pa reči, da - 214 00:10:52,200 --> 00:10:56,760 Namesto zdaj v C - Naj Brus v na najenostavnejši - 215 00:10:56,760 --> 00:11:01,235 bomo enostavno rekli, če je tako, da odprete oklepaj, kar je res - 216 00:11:01,235 --> 00:11:04,190 Logični izraz bo šel kjer sem rekel pogoj - 217 00:11:04,190 --> 00:11:08,170 zapri oklepaj, nato pa kaj znotraj teh zavitih oklepajih. 218 00:11:08,170 --> 00:11:11,020 >> Torej tudi tu so zavite oklepaje so nekako kot Scratch je 219 00:11:11,020 --> 00:11:12,460 U oblike sestavljanke kosov. 220 00:11:12,460 --> 00:11:14,890 Ali kaj je v teh zavitih oklepajih. 221 00:11:14,890 --> 00:11:16,790 V tem primeru, poševnica poševnica. 222 00:11:16,790 --> 00:11:19,720 In to obvestilo je naprej poševnica, ne poševnico nazaj. 223 00:11:19,720 --> 00:11:21,440 Poševnica, poševnica, za tiste, ki ste programirani 224 00:11:21,440 --> 00:11:23,370 prej, samo pomeni - 225 00:11:23,370 --> 00:11:24,190 to je samo komentar. 226 00:11:24,190 --> 00:11:26,630 Komentar ni vrstica kode, samo po sebi. 227 00:11:26,630 --> 00:11:30,200 To je linija angleškem jeziku, ki ga, ljudi, so napisali, da sami 228 00:11:30,200 --> 00:11:33,540 Morda vas spomnil, da narediš nekaj, da razložiti, da si, da pojasni, da 229 00:11:33,540 --> 00:11:35,260 nekdo drug, kaj je tvoj koda počne. 230 00:11:35,260 --> 00:11:37,050 To je samo opisno comment. 231 00:11:37,050 --> 00:11:40,880 >> Zdaj, seveda, lahko imamo dvosmerni odcepu samo s tem, 232 00:11:40,880 --> 00:11:43,930 tristezni vilice v cestnem prometu, ki jih počne to, in če še to 233 00:11:43,930 --> 00:11:47,570 vzorec, lahko imate štirih smereh, petsmerni, šest-way vilice na cesti, če 234 00:11:47,570 --> 00:11:50,150 kar potrebujete za ravnanje, res, da številni pogoji. 235 00:11:50,150 --> 00:11:52,010 In potem opazili podobnost tukaj - 236 00:11:52,010 --> 00:11:55,070 if (pogoj), if (pogoj), in edini, ki je malo 237 00:11:55,070 --> 00:11:58,010 Čudno je zadnji, ki je prav, da drug. 238 00:11:58,010 --> 00:12:01,170 Toda tudi to je identična, konceptualno, da tisto, kar smo naredili 239 00:12:01,170 --> 00:12:04,690 že bo, čeprav sintaksa traja malo privajanje. 240 00:12:04,690 --> 00:12:07,730 >> Zdaj, v tem primeru obstaja kakšno drugo čudno sintakso. 241 00:12:07,730 --> 00:12:11,220 Printf spet vidimo, odprto oklepajev, in blizu oklepaj. 242 00:12:11,220 --> 00:12:13,190 In notranjost je kotirajo niz. 243 00:12:13,190 --> 00:12:17,060 Oklepajih, v okviru od printf, pojdite na levo 244 00:12:17,060 --> 00:12:18,160 in desno od česa? 245 00:12:18,160 --> 00:12:22,190 Kaj bomo opisali, ki kotirajo Niz bolj na splošno? 246 00:12:22,190 --> 00:12:23,320 >> Torej je trditev. 247 00:12:23,320 --> 00:12:26,620 Vsak čas imate funkcijo, kot printf, nato pa odprt paren in 248 00:12:26,620 --> 00:12:30,330 zapri paren in nekaj znotraj to, ali je niz, ali 249 00:12:30,330 --> 00:12:34,420 celo, ali karkoli drugega, kar v Med te se oklepaje se imenuje 250 00:12:34,420 --> 00:12:35,110 argument. 251 00:12:35,110 --> 00:12:37,910 >> In argument samo vpliva vedenje funkcija je. 252 00:12:37,910 --> 00:12:39,990 V tem primeru, je bilo precej jasno, kako. 253 00:12:39,990 --> 00:12:44,480 x 00:12:47,720 In printf bo natisnete točno to. 255 00:12:47,720 --> 00:12:51,590 Ker je zagotovo pred leti se oseba ki izvajajo printf imel pojma 256 00:12:51,590 --> 00:12:55,000 kaj smo človekovih nasledniki so bili bo printf uporabiti za. 257 00:12:55,000 --> 00:12:58,610 Tako, da je razlog, zakaj obstajajo argumenti, da vplivati ​​na vedenje potem funkcija je 258 00:12:58,610 --> 00:12:59,450 bila napisana. 259 00:12:59,450 --> 00:13:00,780 >> Sedaj Logični izraz. 260 00:13:00,780 --> 00:13:02,470 Videli smo jih, preden v nič. 261 00:13:02,470 --> 00:13:06,680 Izkazalo se je, v C lahko tudi "ali" jih skupaj, tako rekoč. 262 00:13:06,680 --> 00:13:10,930 Dve vertikalne palice, ta blok kode, je to to, bo 263 00:13:10,930 --> 00:13:15,350 izvrši, če prvi pogoj izpolnjen ali drugi pogoj je res. 264 00:13:15,350 --> 00:13:17,710 In čeprav morda niste storili to v nič, bi lahko dejansko 265 00:13:17,710 --> 00:13:20,580 to storiti v nič, lahko pa tudi izraziti sebe drugače - 266 00:13:20,580 --> 00:13:25,300 če prvi pogoj in drugi pogoj je to res, potem to, kar je 267 00:13:25,300 --> 00:13:27,160 Notranjost v zavite oklepaje. 268 00:13:27,160 --> 00:13:31,210 >> In prav tako razveljavilo, zato je Znak za dvojno in dvojno 269 00:13:31,210 --> 00:13:34,610 navpičnica, bomo sčasoma videli da ena navpična vrstica in 270 00:13:34,610 --> 00:13:38,710 Znak za eno dejansko imajo drugačen kar pomeni v C. Torej za zdaj, 271 00:13:38,710 --> 00:13:41,840 podvajanju simbolov namerna. 272 00:13:41,840 --> 00:13:45,070 >> Torej, kaj je uvedla, na kratko, ta druga malo sintakse. 273 00:13:45,070 --> 00:13:48,940 To ne povsem prenesejo na Praske, vendar trdim, da sem lahko 274 00:13:48,940 --> 00:13:55,190 izvajanje pojma, če drugega, če drugje, če drugega, če drug izjavo z 275 00:13:55,190 --> 00:13:56,760 nekaj, kar se imenuje stikalo izjavo. 276 00:13:56,760 --> 00:14:00,820 In edini razlog, da to res obstaja je samo vam, programer, 277 00:14:00,820 --> 00:14:05,470 nekoliko drugačen način reševanja nekaterih Problem, čeprav je logično 278 00:14:05,470 --> 00:14:07,340 vam ne daje nobenih novih zmogljivosti. 279 00:14:07,340 --> 00:14:08,530 >> S tem mislim na to. 280 00:14:08,530 --> 00:14:13,330 Ko rečeš stikalo, nato pa prostor, in par oklepajih, znotraj 281 00:14:13,330 --> 00:14:14,570 ki gre izraz - 282 00:14:14,570 --> 00:14:18,010 in to je lahko malo neočiten na prvi, ampak to ni argument, 283 00:14:18,010 --> 00:14:20,680 tehnično, ker stikalo ne deluje. 284 00:14:20,680 --> 00:14:24,230 Torej za zdaj, le domnevati, da smo z oklepaje v različnih krajih 285 00:14:24,230 --> 00:14:25,250 iz različnih razlogov. 286 00:14:25,250 --> 00:14:29,310 >> Torej vklop izražanja pomeni, da sem lahko čaka spremenljivo notranjost tistih 287 00:14:29,310 --> 00:14:31,350 oklepajev, kjer piše izražanja. 288 00:14:31,350 --> 00:14:33,090 In potem, če je ta spremenljivka - 289 00:14:33,090 --> 00:14:35,400 Predvidevam, da se imenuje x in to je samo celo število - 290 00:14:35,400 --> 00:14:38,900 Jaz lahko nato določi v mojem slide Tukaj je nekaj takega. 291 00:14:38,900 --> 00:14:41,690 Če je x moja spremenljivka, in jaz želijo narediti nekaj, če je x 292 00:14:41,690 --> 00:14:43,480 enak 1, ne morem storiti tega. 293 00:14:43,480 --> 00:14:46,660 >> Če bi namesto tega želijo narediti nekaj če je x 2, lahko to storim. 294 00:14:46,660 --> 00:14:50,390 Drugega, če želim narediti nekaj drugega celoti, lahko imajo privzeto primera 295 00:14:50,390 --> 00:14:52,750 čemer sem naredil to drugo stvar. 296 00:14:52,750 --> 00:14:58,730 Torej, v tem smislu, da je enakovreden če je x enak enak 1, pa če drugega, 297 00:14:58,730 --> 00:15:01,150 vendar sem omenil to zdaj samo zato, ker Bomo še videli. 298 00:15:01,150 --> 00:15:03,720 Ampak za zdaj, samo vem, da obstaja. 299 00:15:03,720 --> 00:15:04,220 >> Vse je v redu. 300 00:15:04,220 --> 00:15:07,660 Torej ti zadnji par so malo bolj kompleks na prvi pogled, vendar pa 301 00:15:07,660 --> 00:15:09,385 nekaj precej enostavno. 302 00:15:09,385 --> 00:15:14,410 Zanka v C je kos kode, ki Samo še nekaj stori in 303 00:15:14,410 --> 00:15:15,330 znova in znova. 304 00:15:15,330 --> 00:15:17,590 In samo nadležna stvar je, da je, da je malce skrivnosten 305 00:15:17,590 --> 00:15:21,380 izraziti sebe v ciklično Vzorec, toda svet standardizirano 306 00:15:21,380 --> 00:15:22,450 naslednji način. 307 00:15:22,450 --> 00:15:25,760 >> Ko uporabljate za zanke, imaš par oklepajev znova. 308 00:15:25,760 --> 00:15:27,570 In opazil dve podpičji tam. 309 00:15:27,570 --> 00:15:34,380 Ti dve podpičji ločena tri različni izrazi zunanjost 310 00:15:34,380 --> 00:15:35,020 oklepaje. 311 00:15:35,020 --> 00:15:37,170 Eden je tako imenovani initializations. 312 00:15:37,170 --> 00:15:38,830 Eden je tako imenovani stanje. 313 00:15:38,830 --> 00:15:40,210 In ena je tako imenovani posodobitve. 314 00:15:40,210 --> 00:15:43,240 >> Pogledal abstraktno, to je popolnoma ne-očitna, zato si oglejmo 315 00:15:43,240 --> 00:15:44,630 na konkreten primer. 316 00:15:44,630 --> 00:15:46,720 V Scratch smo imeli ponovitev blok. 317 00:15:46,720 --> 00:15:50,670 In ta blok dejal ponovite 10-krat, pravijo "Zdravo, svet". Dovolite mi, da zahtevek za 318 00:15:50,670 --> 00:15:53,810 zdaj, in se bomo vrnili k temu, in tudi to, boste dobili bolj znana 319 00:15:53,810 --> 00:15:57,345 boste kmalu, enakovreden C koda Lahko bi rekli, da je to - 320 00:15:57,345 --> 00:16:02,320 za izjavo in prostor, par oklepaje, opazili podpičjem leta 321 00:16:02,320 --> 00:16:05,730 tam, ki loči tri ločene Stvari, inicializacijo 322 00:16:05,730 --> 00:16:07,320 stanje in posodobitev. 323 00:16:07,320 --> 00:16:08,840 >> In ugibati, kaj Prvi počne. 324 00:16:08,840 --> 00:16:10,690 Int i = 0. 325 00:16:10,690 --> 00:16:15,120 V zvezi Rough navadnega je, kaj je da delaš za nas, verjetno? 326 00:16:15,120 --> 00:16:15,590 Torej, ja. 327 00:16:15,590 --> 00:16:19,630 To je razglasila spremenljivko imenovano i, in to mu daje kakšno vrednost? 328 00:16:19,630 --> 00:16:20,220 0. 329 00:16:20,220 --> 00:16:24,280 Torej, to je ustvariti spremenljivko i, shranjevanje vrednosti 0 v njem. 330 00:16:24,280 --> 00:16:26,420 To je tako imenovani inicializacija. 331 00:16:26,420 --> 00:16:29,360 >> V redu, zdaj sem trdil, preden da srednjem stvar, i 332 00:16:29,360 --> 00:16:31,760 <10, je pogoj. 333 00:16:31,760 --> 00:16:32,730 Torej, kaj počne? 334 00:16:32,730 --> 00:16:36,560 No, kaj za zanka naredi, ko Program s for zanko vodi, je 335 00:16:36,560 --> 00:16:41,050 vsakič računalnik teče skozi Ta zanka, od zgoraj navzdol, od zgoraj 336 00:16:41,050 --> 00:16:43,740 dno, tako kot vidva storila, ko Računam sebe in sedel, 337 00:16:43,740 --> 00:16:47,090 spet in spet, računalnik se bo 338 00:16:47,090 --> 00:16:48,560 Za preverjanje tega pogoja. 339 00:16:48,560 --> 00:16:51,140 In če je manjši od 10, to bom še enkrat. 340 00:16:51,140 --> 00:16:53,100 Če i manj kot 10, to bom še enkrat. 341 00:16:53,100 --> 00:16:55,030 Če i manj kot deset, to bom še enkrat. 342 00:16:55,030 --> 00:16:57,330 Tako da se zdi, da kažejo, da Upajmo, da se spreminja. 343 00:16:57,330 --> 00:16:59,010 V nasprotnem primeru, bi imeli neskončno zanko. 344 00:16:59,010 --> 00:17:02,590 In res, i se spreminja zaradi Zadnja stvar, ki po podpičjem tam 345 00:17:02,590 --> 00:17:05,569 je nekoliko skrivnosten sintaksa i + +. 346 00:17:05,569 --> 00:17:07,630 Ampak tiste, ki ste že to naredil pred tem, da samo pomeni, 347 00:17:07,630 --> 00:17:08,609 kaj preprosto? 348 00:17:08,609 --> 00:17:09,730 >> ŠTUDENTI: [interposing GLAS]. 349 00:17:09,730 --> 00:17:10,740 >> DAVID Malan: Dodajte 1 do i. 350 00:17:10,740 --> 00:17:11,819 Prirastek i. 351 00:17:11,819 --> 00:17:13,910 Tako smo videli Scratch sestavljanke kos za to, pravzaprav. 352 00:17:13,910 --> 00:17:18,230 To ni videti kot i + +, vendar samo pomeni, preprosto, prirastek 353 00:17:18,230 --> 00:17:24,040 cenite i do 1. vsakič, ko to stori. 354 00:17:24,040 --> 00:17:26,910 Torej dobesedno, začnete z inicializacijo i na 0. 355 00:17:26,910 --> 00:17:29,520 Nato preverite vaše stanje. 356 00:17:29,520 --> 00:17:31,070 Je 0 manj kot 10? 357 00:17:31,070 --> 00:17:31,730 Da. 358 00:17:31,730 --> 00:17:32,910 Gremo skozi zanko. 359 00:17:32,910 --> 00:17:35,150 >> Naslednja stvar, ki sem trdijo računalnika tekoč storiti, je, da se dogaja 360 00:17:35,150 --> 00:17:35,910 za prirastek i. 361 00:17:35,910 --> 00:17:37,080 Tako da sem zdaj 1. 362 00:17:37,080 --> 00:17:37,940 Preverja stanje. 363 00:17:37,940 --> 00:17:39,290 Je 1 manj kot 10? 364 00:17:39,290 --> 00:17:39,930 Seveda. 365 00:17:39,930 --> 00:17:41,030 Torej, to počne znova. 366 00:17:41,030 --> 00:17:43,580 Nato ga korakih i + + do 2. 367 00:17:43,580 --> 00:17:44,610 Je 2 manj kot 10? 368 00:17:44,610 --> 00:17:45,230 Da. 369 00:17:45,230 --> 00:17:46,670 In spet in spet in spet. 370 00:17:46,670 --> 00:17:50,070 In na koncu, zaradi plus plussing, pridemo do i je enak 10. 371 00:17:50,070 --> 00:17:51,675 Je 10 do 10? 372 00:17:51,675 --> 00:17:52,990 No, očitno ne. 373 00:17:52,990 --> 00:17:55,320 In to je točka, na kateri za zanko samo ustavi. 374 00:17:55,320 --> 00:17:58,320 In če imate več kodo zaslon spodaj, računalnik 375 00:17:58,320 --> 00:18:01,620 Izkupiček zagnati te kode namesto tega. 376 00:18:01,620 --> 00:18:05,380 >> Še enkrat, čeprav bo to videz in občutek malo čudno na 377 00:18:05,380 --> 00:18:07,830 Prvi, seveda za tiste, ki ste nikoli načrtovani, preden je 378 00:18:07,830 --> 00:18:11,640 dobesedno zmanjšuje konceptualno s tem, kar je sicer zelo 379 00:18:11,640 --> 00:18:14,330 enostavna puzzle kos v nič. 380 00:18:14,330 --> 00:18:19,130 >> Vse je v redu, sem obljubil, da bi tudi drugi analogi v nič. 381 00:18:19,130 --> 00:18:20,060 Tam je to eno preveč. 382 00:18:20,060 --> 00:18:21,700 In smo videli to kratko zadnjič. 383 00:18:21,700 --> 00:18:23,530 Vendar ne pozabite, da za vedno blok v nič? 384 00:18:23,530 --> 00:18:25,490 Samo naredi nekaj za vedno? 385 00:18:25,490 --> 00:18:27,470 Sem trdil, da bi lahko izvajala to na ta način. 386 00:18:27,470 --> 00:18:29,740 In lahko dejansko izvajanje te na kup različnih načinov. 387 00:18:29,740 --> 00:18:34,260 >> Ampak zanko, medtem ko je le drugačen Tako v C za izražanje sebe. 388 00:18:34,260 --> 00:18:37,080 Ob koncu dneva, da ne moreš karkoli z while zanko, ki jo 389 00:18:37,080 --> 00:18:38,360 ne more z zanka. 390 00:18:38,360 --> 00:18:41,430 Tako da si na koncu dan funkcionalno enaka. 391 00:18:41,430 --> 00:18:43,840 Ampak to vam omogoča, da izrazi sebe malo drugače 392 00:18:43,840 --> 00:18:44,850 naslednji način. 393 00:18:44,850 --> 00:18:49,720 >> Z while zanko, to je tisto, kar je v oklepaje, da se ponovno preverjena in 394 00:18:49,720 --> 00:18:51,050 znova in znova. 395 00:18:51,050 --> 00:18:55,100 In takoj, ko se ta izraz je napačen, potem zanka ustavi izvajanje, 396 00:18:55,100 --> 00:18:57,890 in računalnik nadaljuje z teči koli drugo kodo, ki jo 397 00:18:57,890 --> 00:18:59,230 so v datoteki. 398 00:18:59,230 --> 00:19:02,180 >> Ampak kaj je zanimivo, tu je da sem dobesedno tipkal res. 399 00:19:02,180 --> 00:19:06,680 In res je vrsta Boolove vrednosti, pravilna ali napačna vrednost. 400 00:19:06,680 --> 00:19:09,750 Tako da bi res kdaj postane false, če sem dobesedno 401 00:19:09,750 --> 00:19:11,970 je težko kodirane v mojem programu? 402 00:19:11,970 --> 00:19:12,470 Torej ne. 403 00:19:12,470 --> 00:19:13,730 To je malo čudno, da sem to storil. 404 00:19:13,730 --> 00:19:15,190 Ampak res, je res. 405 00:19:15,190 --> 00:19:16,320 Tukaj ni plus-plussing. 406 00:19:16,320 --> 00:19:17,820 Ni Uporaba spremenljivk v tukaj. 407 00:19:17,820 --> 00:19:22,740 Zato, ker sem težko kodirane čeprav je res, je to Zanka se vedno dogaja, da ocenijo 408 00:19:22,740 --> 00:19:24,090 spet in spet in spet. 409 00:19:24,090 --> 00:19:27,660 >> Torej, kolikokrat je zdravo svet tiskanjem na zaslonu? 410 00:19:27,660 --> 00:19:28,170 Večno. 411 00:19:28,170 --> 00:19:31,980 Neskončno število krat, dokler baterija umre ali kakšnega drugega zunanjega 412 00:19:31,980 --> 00:19:32,730 dogodek zgodi. 413 00:19:32,730 --> 00:19:35,880 Torej ta verjetno ni najboljši program pisati, ker če uporabnik 414 00:19:35,880 --> 00:19:38,660 nikoli ne more končati svoj program, je to verjetno ni tisto, kar je bilo predvideno. 415 00:19:38,660 --> 00:19:41,070 >> Ampak včasih, bi morali programi imajo neskončno zanko. 416 00:19:41,070 --> 00:19:44,050 Na primer, če ima računalnik Ura na to, da bi bilo vsekakor 417 00:19:44,050 --> 00:19:48,130 lepo je, če je vaša ura to ne vodi posodabljanje sam vedno, čeprav enkrat 418 00:19:48,130 --> 00:19:50,500 Drugi ali enkrat minuto ali nekaj takega. 419 00:19:50,500 --> 00:19:53,690 Torej, tudi neskončne zanke imajo svoje mesto. 420 00:19:53,690 --> 00:19:54,360 >> Vse je v redu. 421 00:19:54,360 --> 00:19:55,190 Nazadnje je to ena. 422 00:19:55,190 --> 00:19:57,770 In ta je malo drugačen funkcionalno in bomo prišli nazaj 423 00:19:57,770 --> 00:19:59,460 to verjetno v Pset 1. 424 00:19:59,460 --> 00:20:02,370 Toda obstaja še ena vrsta zanke imenovano storiti, medtem ko zanke. 425 00:20:02,370 --> 00:20:07,100 In edina razlika med tukaj , medtem ko je zanka in, recimo, while zanko, 426 00:20:07,100 --> 00:20:11,120 je, da je pogoj preverja ne preden izvedete kodo, vendar po 427 00:20:11,120 --> 00:20:12,080 zaženete kodo. 428 00:20:12,080 --> 00:20:15,380 Torej, na vrhu za časa zanke, medtem ko je, medtem ko je 429 00:20:15,380 --> 00:20:16,560 preveri na dnu. 430 00:20:16,560 --> 00:20:21,370 >> In to samo pomeni, da medtem ko zanke bo običajno izvajajo večkrat 431 00:20:21,370 --> 00:20:24,630 ali manj krat kot while zanko? 432 00:20:24,630 --> 00:20:30,810 Potencialno večkrat, ker ne medtem ko se zanka jasno povedati to, 433 00:20:30,810 --> 00:20:34,600 šele potem, ki kažejo, da preverite če stanje znotraj 434 00:20:34,600 --> 00:20:35,980 oklepaje je res. 435 00:20:35,980 --> 00:20:37,940 >> Torej bomo to še enkrat videti verjetno v Pset 1. 436 00:20:37,940 --> 00:20:41,150 Če boste kdaj želeli nekaj narediti na Vsaj enkrat in potem morda nekaj več 437 00:20:41,150 --> 00:20:43,350 krat, to je dobro konstrukt uporabiti. 438 00:20:43,350 --> 00:20:46,970 Ampak zanko, medtem ko, nasprotno, se bo najprej preverite njegovo stanje. 439 00:20:46,970 --> 00:20:50,660 In to je to za zanke v C, ne medtem pa, in zank. 440 00:20:50,660 --> 00:20:54,700 In spet so map precej lepo nazaj na nič, razen tega ne 441 00:20:54,700 --> 00:20:57,350 povsem enako analogno v nič. 442 00:20:57,350 --> 00:20:58,880 >> No, kaj pa sedaj, spremenljivke? 443 00:20:58,880 --> 00:21:02,600 Torej, to je, kako sem deklarirano spremenljivko skladenjsko drugi dan. 444 00:21:02,600 --> 00:21:06,440 Imel sem int, kar sem trdil, je celo število. 445 00:21:06,440 --> 00:21:09,690 Nato sem imel spremenljivko z imenom števec, in potem podpičjem. 446 00:21:09,690 --> 00:21:11,070 Torej, kaj je ta vrstica kode počne? 447 00:21:11,070 --> 00:21:14,540 To je preprosto, razglasitev spremenljivka - 448 00:21:14,540 --> 00:21:17,940 da se sprašuje, računalnik, daj mi nekaj pomnilnika, daj mi nekaj bitov - v 449 00:21:17,940 --> 00:21:19,450 kar sem lahko shranite kaj? 450 00:21:19,450 --> 00:21:20,300 Int. 451 00:21:20,300 --> 00:21:23,570 In podpičjem samo pomeni, konec vrstice kode. 452 00:21:23,570 --> 00:21:25,500 >> Sedaj druga linija je verjetno Precej uganljivim. 453 00:21:25,500 --> 00:21:29,710 Kaj je števec = 0; počne? 454 00:21:29,710 --> 00:21:31,690 To je dodeljevanje 0 proti. 455 00:21:31,690 --> 00:21:33,470 Tako je ta druga stvar To je malce nadležno 456 00:21:33,470 --> 00:21:34,540 v primerjavi z, recimo, algebre. 457 00:21:34,540 --> 00:21:39,110 Ker je v algebri, enačaj pomeni enaka, tukaj v C, enaka 458 00:21:39,110 --> 00:21:40,470 znak pomeni odstop. 459 00:21:40,470 --> 00:21:45,380 Torej to pomeni, da dajo kaj na desno v tisto, kar je na levi strani. 460 00:21:45,380 --> 00:21:49,030 In bomo videli drug simbol, enaka enako, če hočemo, da dejansko preizkusiti 461 00:21:49,030 --> 00:21:50,570 za kakovost, nekoliko nadležno. 462 00:21:50,570 --> 00:21:52,590 >> To pa je malo neučinkovita. 463 00:21:52,590 --> 00:21:55,090 To je nekako nadležno, da moram prijaviti spremenljivko in 464 00:21:55,090 --> 00:21:56,110 potem pa ji dati vrednost. 465 00:21:56,110 --> 00:21:59,380 Torej C pravzaprav nam omogoča poenostaviti to in samo to vse naenkrat. 466 00:21:59,380 --> 00:22:01,330 Lahko razglasi spremenljivka na levi strani. 467 00:22:01,330 --> 00:22:04,590 Še vedno lahko storite nalogo na prav s tem da ta enačaj v 468 00:22:04,590 --> 00:22:05,030 srednja. 469 00:22:05,030 --> 00:22:08,740 Torej, na koncu dneva, ti dve sta enakovredni, toda ta, odkrito povedano, 470 00:22:08,740 --> 00:22:11,840 je verjetno bolje navado priti v samo zato, ker je malo manj 471 00:22:11,840 --> 00:22:15,040 kodo, to je malo lažje, da se glasi, in to šele poostruje 472 00:22:15,040 --> 00:22:17,470 kodo, tako rekoč. 473 00:22:17,470 --> 00:22:22,120 >> Vsa vprašanja doslej o zank, o spremenljivkah, o pogojih, na 474 00:22:22,120 --> 00:22:27,001 Booleans, bodisi tehnično ali konceptualno? 475 00:22:27,001 --> 00:22:28,010 Vse je v redu. 476 00:22:28,010 --> 00:22:30,690 Torej, zdaj je to naslednji dobi malo bolj zanimivo. 477 00:22:30,690 --> 00:22:34,790 In to je primer, sem dal gor zadnji Čas je, da samo preslika v blok za zgled 478 00:22:34,790 --> 00:22:35,820 prenesejo C. 479 00:22:35,820 --> 00:22:36,580 >> Torej funkcija. 480 00:22:36,580 --> 00:22:38,110 V smislu navadnega je, kaj je funkcija? 481 00:22:38,110 --> 00:22:42,900 482 00:22:42,900 --> 00:22:44,350 Moraš biti pogumnejši z vašim odgovorom. 483 00:22:44,350 --> 00:22:45,020 Kaj je funkcija? 484 00:22:45,020 --> 00:22:46,320 >> ŠTUDENT: Ali nekaj. 485 00:22:46,320 --> 00:22:46,780 >> DAVID Malan: Kaj je to? 486 00:22:46,780 --> 00:22:48,000 >> ŠTUDENT: Ali nekaj. 487 00:22:48,000 --> 00:22:48,710 >> DAVID Malan: Ali nekaj. 488 00:22:48,710 --> 00:22:49,000 OK. 489 00:22:49,000 --> 00:22:49,590 Začeli bomo tam. 490 00:22:49,590 --> 00:22:51,270 Torej funkcija naredi nekaj. 491 00:22:51,270 --> 00:22:55,160 Torej, to je del kode, ki je v bistvu izvajala drugje, 492 00:22:55,160 --> 00:22:56,620 v resnici počne nekaj. 493 00:22:56,620 --> 00:23:00,180 Zdaj, kaj je zanimivo funkcijo je, da lahko sprejme vnosa 494 00:23:00,180 --> 00:23:02,710 in lahko proizvajajo izhod. 495 00:23:02,710 --> 00:23:05,090 In kaj je dejansko si pogled na to. 496 00:23:05,090 --> 00:23:09,030 >> Torej človek za zaveso je bil namerno pred nekaj trenutki. 497 00:23:09,030 --> 00:23:10,320 Tukaj imamo mizo. 498 00:23:10,320 --> 00:23:13,010 Recimo, da je to dejansko predstavlja velik zaboj. 499 00:23:13,010 --> 00:23:14,940 Torej je to tako imenovana črna skrinjica. 500 00:23:14,940 --> 00:23:19,800 In na splošno, v oblikovanju, v računalniški znanost, črne skrinjice sklicujejo le na 501 00:23:19,800 --> 00:23:22,510 kosov funkcionalnosti, da je nekdo bil izveden, in jih ne 502 00:23:22,510 --> 00:23:26,140 nujno vedeti, ali mar, kako je izvaja pod pokrovom. 503 00:23:26,140 --> 00:23:28,960 Ti samo skrbi, da se ta črna škatla, kar bomo zdaj začeli kliče 504 00:23:28,960 --> 00:23:30,730 Funkcija, naredi nekaj. 505 00:23:30,730 --> 00:23:34,710 >> Tako, na primer, če je to črna škatla na faza tukaj predstavlja printf, 506 00:23:34,710 --> 00:23:38,040 Funkcija, vem iz prejšnjih primerov printf da ima eno ali več 507 00:23:38,040 --> 00:23:40,910 argumenti, in prvo od teh argumenti mora biti niz, kot 508 00:23:40,910 --> 00:23:44,780 "Zdravo, svet". No, če sem oseba pisanje programa, in želim, 509 00:23:44,780 --> 00:23:50,460 za printf uporabo, I, na primer, lahko lahko kos prazen papir tu 510 00:23:50,460 --> 00:23:55,060 črno marker in pisati o njem - 511 00:23:55,060 --> 00:23:56,580 Sem napačno črkovana "svet" - 512 00:23:56,580 --> 00:23:59,560 H-E-L-L-O. 513 00:23:59,560 --> 00:24:04,220 >> Torej bom vzel črno marker in bom pisati, kot velika in čitljivo, kot sem lahko na 514 00:24:04,220 --> 00:24:07,260 ta kos papirja, "Zdravo, svet" In Zdaj pa trdijo, da je to moj argument. 515 00:24:07,260 --> 00:24:09,740 To je niz predstavljene s kos belega papirja. 516 00:24:09,740 --> 00:24:13,030 In moj vložek zdaj funkcijo printf se bo to. 517 00:24:13,030 --> 00:24:18,250 Torej kličem printf, ki poteka to trditev kot vhod v njo. 518 00:24:18,250 --> 00:24:22,110 519 00:24:22,110 --> 00:24:26,740 >> In zdaj, ne vem, kako se oseba, ki je napisal printf to storil že pred leti, vendar 520 00:24:26,740 --> 00:24:31,110 Vem iz svoje dokumentacije tega njen cilj v življenju je, da tiskanje, kar sem 521 00:24:31,110 --> 00:24:34,410 zagotavljajo z njo kot vhod. 522 00:24:34,410 --> 00:24:40,630 In tako, čeprav je to izvajanje je nevede meni 523 00:24:40,630 --> 00:24:44,170 Pod pokrovom motorja, zdaj Vidim, oh, je to storjeno. 524 00:24:44,170 --> 00:24:45,740 To je natisnjen nekaj na zaslonu. 525 00:24:45,740 --> 00:24:49,070 In zdaj nadzorujejo programa, če obstaja bilo več vrstic kode, bi 526 00:24:49,070 --> 00:24:51,070 se je vrnila k meni. 527 00:24:51,070 --> 00:24:52,290 In tako je dejstvo, da Colton - 528 00:24:52,290 --> 00:24:55,370 blagoslovi njegovo srce, se skriva tukaj pod miza pred vsemi vami - 529 00:24:55,370 --> 00:24:59,530 je namerno v tem, da ne vem in ne zanima me, kako je printf 530 00:24:59,530 --> 00:25:00,100 izvajajo. 531 00:25:00,100 --> 00:25:03,390 Jaz samo vem, spet, od njenega Dokumentacija, kaj počne in kako sem 532 00:25:03,390 --> 00:25:05,040 sem moral uporabiti. 533 00:25:05,040 --> 00:25:09,140 >> Zdaj pa opozarjajo, da bi lahko dobili printf malce bolj prefinjena. 534 00:25:09,140 --> 00:25:12,220 Spet smo ravno govorimo o enakovredno Scratch pravijo bloka. 535 00:25:12,220 --> 00:25:14,230 Ampak sem tudi to zadnjič. 536 00:25:14,230 --> 00:25:17,270 Želel sem, da sem zdravo programa malo bolj dinamično in ne le težko 537 00:25:17,270 --> 00:25:19,740 Koda nekaj takega kot "sveta", in Zagotovo ni težko koda nekaj 538 00:25:19,740 --> 00:25:22,520 poljubno kot D-A-V-I-D v program. 539 00:25:22,520 --> 00:25:27,510 Želel sem, da od uporabnika zahteva za njegovo ali njeno Ime in naredite nekaj z 540 00:25:27,510 --> 00:25:29,720 da je niz, ki jih ponujajo. 541 00:25:29,720 --> 00:25:32,690 >> Torej, nekaj je malo drugačna tukaj. printf, pred nekaj trenutki, 542 00:25:32,690 --> 00:25:35,860 ni res, nekaj narediti, vendar je ni vrnil nič z mano. 543 00:25:35,860 --> 00:25:36,020 Kajne? 544 00:25:36,020 --> 00:25:38,910 Colton mi ni predati ničesar nazaj ni kos papirja. 545 00:25:38,910 --> 00:25:40,320 Prišlo je le stranski učinek. 546 00:25:40,320 --> 00:25:44,510 Moj zagotavljanje "Zdravo, svet", kot je Trditev, da Colton povzročilo 547 00:25:44,510 --> 00:25:48,420 stranski učinek njegove besede še nekaj besed, prikazana na zaslonu. 548 00:25:48,420 --> 00:25:51,350 >> getstring, čeprav je malo drugačna. getstring tudi 549 00:25:51,350 --> 00:25:54,590 delovanje, vendar se vrne določeno vrednost. 550 00:25:54,590 --> 00:25:56,370 To ni samo estetski stranski učinek. 551 00:25:56,370 --> 00:26:00,230 To dejansko me daje, oseba kliče ali funkcijo, 552 00:26:00,230 --> 00:26:01,320 nekaj nazaj. 553 00:26:01,320 --> 00:26:05,740 Torej, v tem primeru, je getstring imenovana s getstring open 554 00:26:05,740 --> 00:26:07,510 Oklepaj, blizu paren. 555 00:26:07,510 --> 00:26:11,370 Ali getstring, zato bo nobenih argumentov ali vhodni? 556 00:26:11,370 --> 00:26:12,340 Ne, to ni videti. 557 00:26:12,340 --> 00:26:14,460 Njen namen v življenju je samo da bi dobili niz. 558 00:26:14,460 --> 00:26:16,910 Ne potrebuje več podrobnosti, kot to. 559 00:26:16,910 --> 00:26:20,430 Naj gredo naprej in se pretvarjati, da je še enkrat, to črna skrinjica ni printf, 560 00:26:20,430 --> 00:26:25,160 ampak getstring, in naj me osebo pisanju tega programa, pokličite ali uporabite 561 00:26:25,160 --> 00:26:29,720 getstring jih samo pisno G-E-T-S-T-R-I-N-G, odprt paren, blizu 562 00:26:29,720 --> 00:26:32,170 Oklepaj, getstring. 563 00:26:32,170 --> 00:26:36,920 >> Zdaj pa nimam pojma, kako CS50 osebje izvaja getstring, ampak vem, da 564 00:26:36,920 --> 00:26:41,240 če sem počakati dovolj dolgo, bo to storila stvar pod pokrovom motorja, morda z 565 00:26:41,240 --> 00:26:44,940 nekatere spremenljivke, morda z nekaterimi Pogoji, morda z nekaj zank, 566 00:26:44,940 --> 00:26:48,170 Mogoče uporabo nekaterih funkcij, Mogoče uporabo - 567 00:26:48,170 --> 00:26:52,290 samo poskušam stojnici - morda z nekatere druge programske funkcije. 568 00:26:52,290 --> 00:26:55,350 Ampak, če sem počakati dovolj dolgo - v resnici, v računalniku, se to zgodi 569 00:26:55,350 --> 00:26:56,270 super hitro - 570 00:26:56,270 --> 00:26:59,910 če počakati dovolj dolgo, ta funkcija getstring bo dobil niz 571 00:26:59,910 --> 00:27:04,060 od uporabnika, ki je domnevno tipkanje je na svojem tipkovnici in 572 00:27:04,060 --> 00:27:08,090 potem, ko je getstring storiti pridobivanje ti znaki od uporabnika 573 00:27:08,090 --> 00:27:14,080 in shranjevanje v niz, ki Funkcija, getstring, se dogaja, da imajo 574 00:27:14,080 --> 00:27:17,990 pripravljeno zame nekaj izhod katerem sem gre za iskanje s pomočjo 575 00:27:17,990 --> 00:27:19,470 Operater naloga. 576 00:27:19,470 --> 00:27:25,390 >> In če grem seveda v izhod tukaj, Obosi je velikodušno 577 00:27:25,390 --> 00:27:29,900 sodelovali, ne da bi vedel to s pisanjem svoje ime na ta napredek, 578 00:27:29,900 --> 00:27:33,100 spremenljivka, ki predstavlja niz. 579 00:27:33,100 --> 00:27:35,640 Zdaj, upravljavec dodelitev pomeni tudi čeprav bi to lahko počutijo malo 580 00:27:35,640 --> 00:27:38,790 odveč, pravzaprav ne potrebujemo da bi svoj izvod to. 581 00:27:38,790 --> 00:27:40,700 Ker je na levi strani stran - Ops! - 582 00:27:40,700 --> 00:27:45,760 opazili, da sem v bistvu imajo niz ime na levi strani. 583 00:27:45,760 --> 00:27:48,280 Torej, jaz sem tudi dogaja, da bi moja kopija tega. 584 00:27:48,280 --> 00:27:50,990 In to je malo belo lažjo saj bomo videli v tednu ali dveh je 585 00:27:50,990 --> 00:27:54,100 Čas, da so nizi dejansko ne kar se zdi, da bo. 586 00:27:54,100 --> 00:27:56,700 >> Ampak za zdaj, tukaj je vrnjena vrednost. 587 00:27:56,700 --> 00:28:00,160 Tukaj je moja kopija po pomočjo operaterja odstop. 588 00:28:00,160 --> 00:28:01,790 In zdaj, kaj želim storiti? 589 00:28:01,790 --> 00:28:04,080 Zdaj imamo drugo dveh vrstic kode. 590 00:28:04,080 --> 00:28:05,640 Tako da sem zdaj želim printf poklicati. 591 00:28:05,640 --> 00:28:08,500 Dajmo se pretvarjati, da je zdaj črna škatla je spet nazaj na počutje 592 00:28:08,500 --> 00:28:10,210 printf in ne getstring. 593 00:28:10,210 --> 00:28:12,200 >> Printf Tokrat se dogaja, da sprejmejo koliko argumentov? 594 00:28:12,200 --> 00:28:14,890 595 00:28:14,890 --> 00:28:16,770 Torej, poglej, to je kot dva. 596 00:28:16,770 --> 00:28:18,860 Obstajata dve vejice v tam, ampak eden od teh vejicami, je 597 00:28:18,860 --> 00:28:20,220 znotraj narekovajev. 598 00:28:20,220 --> 00:28:23,190 Torej prva trditev je dobesedno bo to. 599 00:28:23,190 --> 00:28:31,850 H-E-L-L-O, vejica odstotkov ov, Nagibnica-n. 600 00:28:31,850 --> 00:28:36,560 In zdaj sem zagotavljanja Niti enega argumenta, ampak dva argumenti printf. 601 00:28:36,560 --> 00:28:39,530 >> In kaj je printf naj naredim z ta dva vhoda, potem ko jih prenese v 602 00:28:39,530 --> 00:28:42,050 kot argument? 603 00:28:42,050 --> 00:28:45,360 To naj bi se druga od njih, ki sem klical ime, tako da 604 00:28:45,360 --> 00:28:48,660 drugi kos papirja sem napisal Trenutek je pred imenuje ime. 605 00:28:48,660 --> 00:28:53,550 To se dogaja, vtič vrednosti znotraj te spremenljivke v ogrado, 606 00:28:53,550 --> 00:28:58,310 % S, tako da spet v samo trenutek Tokrat bomo videli stranski učinek 607 00:28:58,310 --> 00:29:04,180 ki se imenuje printf, pri čemer zdaj ne vidijo "Zdravo, svet", ampak "hello, 608 00:29:04,180 --> 00:29:04,710 Obosi. " 609 00:29:04,710 --> 00:29:08,730 >> Tako velik aplavz za oba naši prostovoljci, od katerih je samo eden vedel 610 00:29:08,730 --> 00:29:12,010 bi se to dogaja. 611 00:29:12,010 --> 00:29:12,990 Vse je v redu. 612 00:29:12,990 --> 00:29:16,480 Torej, morda, enostavno, kot da je bil, Vsekakor, če ste že seznanjeni 613 00:29:16,480 --> 00:29:20,190 s takimi, upajmo, da ne bo nikoli pozabiti, da je še posebej vidno, kako 614 00:29:20,190 --> 00:29:21,220 funkcije delujejo. 615 00:29:21,220 --> 00:29:23,000 >> Tako da je več kot samo getstring. 616 00:29:23,000 --> 00:29:26,020 Notranjost knjižnice CS50, tam je cel kup funkcij, ki so vse 617 00:29:26,020 --> 00:29:29,510 z veliko začetnico samo, da bi jasno da smo pisali te funkcije. 618 00:29:29,510 --> 00:29:33,610 Značilno je, da v C, skoraj vsak drugi Funkcija boste uporabljali, je z malimi črkami. 619 00:29:33,610 --> 00:29:36,190 Vendar smo namenoma uporabiti velike tiskane črke Samo da bo jasno, da so ti 620 00:29:36,190 --> 00:29:39,880 so kolesa usposabljanja vrst, da bomo uporabljati le za nekaj tednov, da 621 00:29:39,880 --> 00:29:42,890 poenostavitev postopka za pridobivanje vhod od uporabnika. 622 00:29:42,890 --> 00:29:46,740 >> Knjižnica CS50 ne naredi ničesar , ki ga sami ne bi mogel storiti z 623 00:29:46,740 --> 00:29:50,230 samo z uporabo C kodo iz Oldschool učbenik. 624 00:29:50,230 --> 00:29:53,310 Ampak, še enkrat, mi jih uporabiti kot usposabljanje Kolesa vrst za samo nekaj 625 00:29:53,310 --> 00:29:57,250 tednov, tako da bomo lahko znebili Kompleksnost, da boste kmalu razumeli 626 00:29:57,250 --> 00:30:00,460 sebe delaš nekaj kot sorazmerno enostavno, kot pridobivanje 627 00:30:00,460 --> 00:30:02,080 vhod od uporabnika. 628 00:30:02,080 --> 00:30:05,540 >> Torej veste, da boste imeli dostop da GetChar, GetDouble - 629 00:30:05,540 --> 00:30:06,050 podvojilo. 630 00:30:06,050 --> 00:30:07,050 Tisto, kako - in potem GetFloat. 631 00:30:07,050 --> 00:30:07,600 Kaj je plovec? 632 00:30:07,600 --> 00:30:09,382 Začnimo tam. 633 00:30:09,382 --> 00:30:10,600 >> ŠTUDENT: [neslišno]. 634 00:30:10,600 --> 00:30:10,790 >> DAVID Malan: Ja. 635 00:30:10,790 --> 00:30:12,120 To je številka z decimalno vejico. 636 00:30:12,120 --> 00:30:15,930 Torej, medtem ko int je celo število, ki je le število z 0 do 9, 637 00:30:15,930 --> 00:30:18,940 nekateri število ponovitev Pogodbe, plovec je nekaj 638 00:30:18,940 --> 00:30:20,100 z decimalno vejico. 639 00:30:20,100 --> 00:30:26,090 In dvakrat, medtem, je tudi Številka z decimalno vejico, ampak bolj 640 00:30:26,090 --> 00:30:28,160 številke za decimalno točka, potencialno. 641 00:30:28,160 --> 00:30:30,040 >> Tako da bomo dobili nazaj, da to kmalu. 642 00:30:30,040 --> 00:30:34,560 Vendar pa običajno, vsako od teh vrst Podatki, vsaka od teh tipov spremenljivk 643 00:30:34,560 --> 00:30:39,380 da lahko knjižnice, kot je naša vrnitev vi, uporabite različno število bitov na 644 00:30:39,380 --> 00:30:40,290 shranjevanje podatkov. 645 00:30:40,290 --> 00:30:43,910 Značilno je, Char, kar samo pomeni, en znak, uporablja 8 bitov. 646 00:30:43,910 --> 00:30:47,490 In to je dejansko v skladu z našimi bajt prostovoljcev prejšnji teden, ki 647 00:30:47,490 --> 00:30:50,410 prišel gor in predstavlja enega ASCII znakov hkrati. 648 00:30:50,410 --> 00:30:51,850 Torej, Char je 8 bitov. 649 00:30:51,850 --> 00:30:54,430 >> Float zgodi, da se 32 bitov, običajno. 650 00:30:54,430 --> 00:30:59,230 In dvojna, kot bi si ugibati, je dejansko 64 bitov, kar je le še, 651 00:30:59,230 --> 00:31:01,360 kar pomeni, da lahko imajo večji številke ali več natančnosti. 652 00:31:01,360 --> 00:31:03,000 Ampak še enkrat, več o tem kdaj drugič. 653 00:31:03,000 --> 00:31:06,550 GetLongLong, medtem, čeprav je neumno imenovan, je res samo 654 00:31:06,550 --> 00:31:10,770 celo število, ki je dvakrat večje, kar je dvakrat dolga, potencialno, kot redna 655 00:31:10,770 --> 00:31:12,940 celo število, 64 bitov namesto 32. 656 00:31:12,940 --> 00:31:14,560 In GetString smo bili z uporabo. 657 00:31:14,560 --> 00:31:18,870 >> Ampak se je izkazalo, v knjižnici CS50, ki se izvaja, kot bomo videli v 658 00:31:18,870 --> 00:31:23,560 oblika dveh datotek, od katerih se imenuje cs50.h, ima dva druga 659 00:31:23,560 --> 00:31:24,770 Vrste podatkov v njem. 660 00:31:24,770 --> 00:31:29,700 Booleans ne obstajajo v C. Lahko jih simulirajo s samo uporabo 0s in 1s 661 00:31:29,700 --> 00:31:30,850 po vaših programov. 662 00:31:30,850 --> 00:31:35,500 Vendar pa smo v knjižnici CS50 so ustvarili simboli "true" in "false" 663 00:31:35,500 --> 00:31:38,580 za zastopanje 1 in 0, tako da ne morali trdo kode nečem 664 00:31:38,580 --> 00:31:39,810 dobesedno kot 1 in 0. 665 00:31:39,810 --> 00:31:40,980 Ampak bomo spet videli tisti. 666 00:31:40,980 --> 00:31:42,330 >> String, preveč, ne obstaja. 667 00:31:42,330 --> 00:31:44,520 In to je razlog, zakaj sem omenil, da je malo belo laž za zdaj. 668 00:31:44,520 --> 00:31:46,660 Vendar bomo Odlepite tem sloj pred dolgo. 669 00:31:46,660 --> 00:31:49,540 Ampak za zdaj, niz Zaporedje znakov. 670 00:31:49,540 --> 00:31:51,790 >> Medtem pa v C, si res imajo različne vrste podatkov. 671 00:31:51,790 --> 00:31:53,200 Opazili so male črke. 672 00:31:53,200 --> 00:31:56,960 Torej funkcije ste videli pred nekaj trenutki funkcije so napisali CS50 tem 673 00:31:56,960 --> 00:32:02,310 se bodo vrnili vrednost, ki je v eno od teh kategorij. 674 00:32:02,310 --> 00:32:06,730 >> Goljufija listov par šele posaditi seme tukaj. printf ne samo 675 00:32:06,730 --> 00:32:08,600 sprejeti% s kot ograde. 676 00:32:08,600 --> 00:32:13,490 To traja% d za decimalnih števil, ali% jaz bi delovala kot dobro. 677 00:32:13,490 --> 00:32:19,450 % F plavajočo vejico vrednosti. % C je za char, če želite, da samo priključite eno 678 00:32:19,450 --> 00:32:23,510 lik v Predoblikovano niz kot smo počeli, lahko uporabite% c. 679 00:32:23,510 --> 00:32:28,490 >> In potem, nekoliko nadležno,% LLD je za dolgo, dolgo decimalno celo število, 680 00:32:28,490 --> 00:32:31,050 kar samo pomeni, da če boste potrebovali res Veliko število in ste z uporabo nekaj 681 00:32:31,050 --> 00:32:35,450 imenovano dolgo dolgo, kar bomo prišli nazaj na pset, lahko uporabite% liberijski oddelek za 682 00:32:35,450 --> 00:32:40,700 povej printf, čep res velika celo tukaj preko njenega drugega ali 683 00:32:40,700 --> 00:32:41,830 drug argument. 684 00:32:41,830 --> 00:32:45,700 >> In nenazadnje, sem obljubil, da tam je nekaj drugega izhoda 685 00:32:45,700 --> 00:32:47,670 sekvence, ki printf podpira. 686 00:32:47,670 --> 00:32:49,160 Videli smo poševnico nazaj-n. 687 00:32:49,160 --> 00:32:50,510 Nagibnica-r lahko vidite. 688 00:32:50,510 --> 00:32:51,780 To je neke vrste stare šole stvar. 689 00:32:51,780 --> 00:32:55,920 Če ste že kdaj uporabili resničnega pisalni stroj let nazaj in jo potegnil ročico 690 00:32:55,920 --> 00:32:59,810 ki zavrti ne le kolo premakniti črta, prav tako preselil 691 00:32:59,810 --> 00:33:03,730 Vsa stvar vse nazaj prenesejo levo, no, Nagibnica-r samo 692 00:33:03,730 --> 00:33:06,480 v bistvu premakne kazalec nazaj na začetek vrstice 693 00:33:06,480 --> 00:33:07,830 brez premika navzdol. 694 00:33:07,830 --> 00:33:09,780 Ampak še enkrat, več o tem, morda v prihodnosti. 695 00:33:09,780 --> 00:33:13,670 >> Poševnica nazaj, citiram, Nagibnica-dvojni narekovaj, Nagibnica-backslash je 696 00:33:13,670 --> 00:33:16,600 rešitev za mali uganko Jaz omenili prej. 697 00:33:16,600 --> 00:33:18,920 In backslash-0 je dejansko zelo zanimivo. 698 00:33:18,920 --> 00:33:21,470 Ampak se bomo vrnili da je pred dolgo. 699 00:33:21,470 --> 00:33:25,640 >> Naj gredo v, zdaj, CS50 aparata, in kaj je dejansko naredil 700 00:33:25,640 --> 00:33:28,930 hitro ogreje z enim od primerov Nismo že in potem pojdite na 701 00:33:28,930 --> 00:33:31,160 nekaj malo bolj zapletena. 702 00:33:31,160 --> 00:33:34,980 Torej, če sem odprl svoj program imenovano gedit - 703 00:33:34,980 --> 00:33:36,840 to je moj grafični urednik. 704 00:33:36,840 --> 00:33:38,460 In jaz lahko naredim, da - 705 00:33:38,460 --> 00:33:39,820 Naj zaprite to okno tam - 706 00:33:39,820 --> 00:33:42,720 s pomočjo te ikone tukaj dol, gedit je v spodnjem levem 707 00:33:42,720 --> 00:33:44,170 kotu poleg menija. 708 00:33:44,170 --> 00:33:48,670 >> Jaz grem naprej in napredovanje, in shranite to primer v, recimo, John 709 00:33:48,670 --> 00:33:49,660 Mapa Harvardu. 710 00:33:49,660 --> 00:33:52,690 Mapa John Harvard je le njegov dom imenik, kjer vse svoje datoteke v živo 711 00:33:52,690 --> 00:33:53,340 privzeto. 712 00:33:53,340 --> 00:33:58,410 In jaz bom, da shranite to kot Datoteka se imenuje zdravo-0.c. 713 00:33:58,410 --> 00:34:01,260 In sem izbral to ime, samo zato, da poravna z oznako na vzorčnih 714 00:34:01,260 --> 00:34:04,210 Spletna stran tečajnega in v YouTube video posnetke na spletu. 715 00:34:04,210 --> 00:34:06,320 >> Torej, zdaj bom začel napisal svoj prvi program. 716 00:34:06,320 --> 00:34:08,469 Dovolite mi, da povečate za čitljivost. 717 00:34:08,469 --> 00:34:12,760 In jaz grem naprej in rekli int Glavni ničen, ki je tako kot da 718 00:34:12,760 --> 00:34:14,900 rumena puzzle kos, ki zažene program. 719 00:34:14,900 --> 00:34:18,290 Imam gotten v navado preko let odprtju moje kodraste opornico, nato 720 00:34:18,290 --> 00:34:22,000 Prav tako jo zaprejo in potem gredo nazaj če hočem dati svoj zbornik, samo 721 00:34:22,000 --> 00:34:24,630 saj mi pomaga, da je vse uravnotežen, zlasti v moji 722 00:34:24,630 --> 00:34:25,880 program dobi dolgo. 723 00:34:25,880 --> 00:34:29,239 >> In zdaj, tukaj, jaz grem naprej in pravijo, printf, citiram konec citata, 724 00:34:29,239 --> 00:34:34,330 zdravo svet, Nagibnica-n, blizu citiram, zapri oklepaj, podpičje. 725 00:34:34,330 --> 00:34:38,100 Torej sem le ponoviti vse, kar sva jemala za doslej odobrena. 726 00:34:38,100 --> 00:34:39,270 Zdaj grem za pomanjšanje. 727 00:34:39,270 --> 00:34:43,030 >> In ta terminal okno tukaj, kaj sem lahko naredil v tej črni 728 00:34:43,030 --> 00:34:44,389 in bela okna? 729 00:34:44,389 --> 00:34:46,977 Kaj lahko uporabite za? 730 00:34:46,977 --> 00:34:49,770 Torej, to je, če sem teči ukazov in Kje lahko pripravijo stvari. 731 00:34:49,770 --> 00:34:50,620 In bom keep it simple. 732 00:34:50,620 --> 00:34:52,780 Grem, da uporabite program imenovano Poskrbite, ki ni 733 00:34:52,780 --> 00:34:54,020 tehnično prevajalnik. 734 00:34:54,020 --> 00:34:56,360 Prevajalnik se imenuje Jek, vendar bomo prišli nazaj, da je v 735 00:34:56,360 --> 00:34:57,190 teden ali čas dvojiški. 736 00:34:57,190 --> 00:35:03,410 >> Za zdaj bom samo, da napišete make Zdravo-0, pa tiste, ki so bili 737 00:35:03,410 --> 00:35:07,050 primerjave v vaših glavah, kaj sem pravkar tipkal na to, kar bi moral sem tipkal lahko 738 00:35:07,050 --> 00:35:10,180 že veste, da sem storil nekaj narobe. 739 00:35:10,180 --> 00:35:12,160 No, to je očitno nekaj napak. 740 00:35:12,160 --> 00:35:16,742 Preden sem sploh pogledal, kaj so, vsak misli o tem, kaj sem naredil narobe? 741 00:35:16,742 --> 00:35:18,590 >> ŠTUDENTI: [interposing GLAS]. 742 00:35:18,590 --> 00:35:18,840 >> DAVID Malan: Ja. 743 00:35:18,840 --> 00:35:20,640 Mi manjka v glavi spis knjižnice. 744 00:35:20,640 --> 00:35:24,240 Vsak od teh h. Datoteke se imenujejo glava datoteke in jih skupaj 745 00:35:24,240 --> 00:35:25,680 pripadajo stvari, imenovane knjižnice. 746 00:35:25,680 --> 00:35:28,030 Knjižnice so le koščki kode da drugi ljudje napisal. 747 00:35:28,030 --> 00:35:32,140 Torej standard [? i?] knjižnica zbirka datotek, ki vsebujejo kodo 748 00:35:32,140 --> 00:35:33,330 da drugi ljudje napisal. 749 00:35:33,330 --> 00:35:34,820 >> Torej mi manjka, da. 750 00:35:34,820 --> 00:35:36,520 Torej, zakaj imam jaz napako? 751 00:35:36,520 --> 00:35:40,840 No, naj se pomaknete nazaj v moj terminal window tukaj. 752 00:35:40,840 --> 00:35:44,310 In na žalost, v C, kot v veliko programski jeziki, zlasti 753 00:35:44,310 --> 00:35:47,830 če je vse novo za vas, napaka Sporočila so natančni, ampak oni so tudi 754 00:35:47,830 --> 00:35:48,620 precej skrivnosten. 755 00:35:48,620 --> 00:35:51,720 In napaka tukaj, v rdeči barvi, je "Implicitno razglasi funkcija knjižnica 756 00:35:51,720 --> 00:35:57,660 printf s tipom, "in potem se pomika v naslednjo vrstico, "int char * 757 00:35:57,660 --> 00:36:00,220 ... "To samo postane zelo Velika hitro. 758 00:36:00,220 --> 00:36:04,420 >> Ampak kaj bi morali začeti storiti, če spet na novo vse to, je le, da 759 00:36:04,420 --> 00:36:06,010 začeli iskati ključne besede. 760 00:36:06,010 --> 00:36:08,770 Jasno je, da jaz ne bi razumeli pol od besed vidim samo še. 761 00:36:08,770 --> 00:36:10,140 Boš, čeprav je v enem tednu. 762 00:36:10,140 --> 00:36:11,230 Ampak vidim printf. 763 00:36:11,230 --> 00:36:14,310 In da je treba začeti, preden dolgo, da jog spomin, vse v redu, printf. 764 00:36:14,310 --> 00:36:15,210 Nekaj ​​je narobe s printf. 765 00:36:15,210 --> 00:36:16,580 Sem urok narobe? 766 00:36:16,580 --> 00:36:18,130 Ne, to ni videti - oh. 767 00:36:18,130 --> 00:36:21,350 Ne morem uporabljati, če učim prevajalnik, da obstaja. 768 00:36:21,350 --> 00:36:25,220 In tako, še enkrat, pojdite s svojim instinktom, tudi če ne boste dejansko razumeli 769 00:36:25,220 --> 00:36:26,510 dejanska sporočil o napakah. 770 00:36:26,510 --> 00:36:30,240 >> In res, rešitev tukaj je, da samo da so na vrhu datoteke 771 00:36:30,240 --> 00:36:34,340 tako, resaving mojo datoteko s Control-S ali meni Datoteka. 772 00:36:34,340 --> 00:36:36,730 In če bi zdaj šel nazaj dol, Bom jasno to. 773 00:36:36,730 --> 00:36:39,150 Control-L je samo lep način da počistite zaslon. 774 00:36:39,150 --> 00:36:44,870 In potem bom stavek "da pozdravi 0 "Enter, in zdaj sem še vedno videti 775 00:36:44,870 --> 00:36:47,710 skrivnosten zaporedje simbolov, ampak se bomo vrnili k temu. 776 00:36:47,710 --> 00:36:49,230 To je tisto, zaradi česar je delal za vas. 777 00:36:49,230 --> 00:36:52,590 To je avtomatizacijo procesa sprejemanja precej nadležno ukaz, ki vključuje 778 00:36:52,590 --> 00:36:54,050 Jek, dejansko prevajalnik. 779 00:36:54,050 --> 00:36:57,460 Toda dejstvo, da sem brez napak pomeni da bi ta stvar delovala. 780 00:36:57,460 --> 00:37:00,630 >> Tako da sem zdaj storil - Naj povečate spet - 781 00:37:00,630 --> 00:37:07,070 ./hello-0 Enter, in res, vidim "Zdravo, svet". Torej, kaj je zdaj okrepiti 782 00:37:07,070 --> 00:37:12,105 To vedno tako malo, samo da posnemati koraki smo nameravali. 783 00:37:12,105 --> 00:37:15,370 Bom preimenovati to z Shrani kot hello1.c. 784 00:37:15,370 --> 00:37:20,300 In zdaj bom razglasi spremenljivko imenuje ime, tako niz ime 785 00:37:20,300 --> 00:37:23,420 in bom dal v to Vrednost citatom-konec citata 786 00:37:23,420 --> 00:37:27,030 D-A-V-I-D blizu citat podpičjem. 787 00:37:27,030 --> 00:37:31,150 In zdaj bom, da se "svet" s tem, kar ograda za vrvico? 788 00:37:31,150 --> 00:37:32,200 % S. 789 00:37:32,200 --> 00:37:35,040 >> In zdaj, koliko argumentov je treba printf bo tokrat? 790 00:37:35,040 --> 00:37:35,700 Torej dva. 791 00:37:35,700 --> 00:37:37,090 Zato sem šel izven narekovajev. 792 00:37:37,090 --> 00:37:39,330 Sem tip "ime", po vejico. 793 00:37:39,330 --> 00:37:41,550 Vendar sem naredil nekaj drugega narobe tokrat. 794 00:37:41,550 --> 00:37:43,940 Ampak kaj je domnevati, da nisem Zavedam se, da še ni. 795 00:37:43,940 --> 00:37:44,910 Pusti me tukaj. 796 00:37:44,910 --> 00:37:48,850 >> In obvestilo, preveč, sem že malo dolgčas tipkanje "make zdravo 0" vse 797 00:37:48,850 --> 00:37:50,180 čas, "da" in vse to. 798 00:37:50,180 --> 00:37:53,270 Torej, se je izkazalo, da je Linus lahko Pogosto hit Up puščico na vašem 799 00:37:53,270 --> 00:37:56,850 tipkovnico, in lahko dejansko pomikanje skozi vse ukaze, ki sem jih 800 00:37:56,850 --> 00:37:58,830 izvršena prejšnja, da šele zdaj. 801 00:37:58,830 --> 00:38:02,040 Torej, če naredim to, Up, Up, tam je, da pozdravi 0. 802 00:38:02,040 --> 00:38:02,610 Nočem tega. 803 00:38:02,610 --> 00:38:05,450 Želim spremeniti, da Pozdravi 1 tokrat Enter. 804 00:38:05,450 --> 00:38:07,620 Sčasoma, ki bo prihranili nekaj časa. 805 00:38:07,620 --> 00:38:08,150 >> Vse je v redu. 806 00:38:08,150 --> 00:38:09,520 Na žalost, tam je napaka. 807 00:38:09,520 --> 00:38:10,980 Naj se pomaknete navzgor. 808 00:38:10,980 --> 00:38:13,120 To izgleda res poklali ta program. 809 00:38:13,120 --> 00:38:16,530 Mislim, moj Bog, to je dve vrstic kode, in njegove 10 vrstic napak. 810 00:38:16,530 --> 00:38:18,800 Vendar pogled na vrh enega kopačke. 811 00:38:18,800 --> 00:38:21,640 Uporabite črno identifikator niza. 812 00:38:21,640 --> 00:38:23,270 Si mislim standardna I n? 813 00:38:23,270 --> 00:38:23,930 Ne, nisem. 814 00:38:23,930 --> 00:38:24,940 Mislil sem niz. 815 00:38:24,940 --> 00:38:29,390 >> Toda če je spremenljivka niz Tip razglasila, dd, smo rekli? 816 00:38:29,390 --> 00:38:30,730 Tako da je v CS50 knjižnice. 817 00:38:30,730 --> 00:38:33,740 Torej, da ne zadostuje, v teh prvih nekaj tednov, tako da uporabite 818 00:38:33,740 --> 00:38:34,860 kaj C daje nam. 819 00:38:34,860 --> 00:38:38,120 Jaz sem tudi šel gor, in jaz bi ga dal zgoraj ali spodaj, ampak bom 820 00:38:38,120 --> 00:38:40,340 hranite le po abecedi da so stvari urejene. 821 00:38:40,340 --> 00:38:43,470 Jaz bom tudi cs50.h, ki so nameščeni v 822 00:38:43,470 --> 00:38:44,900 Si na CS50 aparata. 823 00:38:44,900 --> 00:38:47,640 In to je open source, tako da tudi ljudje na internetu lahko uporabljate na svojih 824 00:38:47,640 --> 00:38:48,450 lastnih računalnikov. 825 00:38:48,450 --> 00:38:50,700 Vendar pa prihaja z CS50 aparata. 826 00:38:50,700 --> 00:38:55,320 >> Torej, zdaj pa grem nazaj in znova To bo z zdravo 1. 827 00:38:55,320 --> 00:38:55,710 Prekleto. 828 00:38:55,710 --> 00:38:57,240 Še ena napaka. 829 00:38:57,240 --> 00:38:59,370 Naj se pomaknite do prvega, čeprav. 830 00:38:59,370 --> 00:39:00,630 Ta je malce zapleteno. 831 00:39:00,630 --> 00:39:03,830 Lik multi-znakovna konstanta. 832 00:39:03,830 --> 00:39:04,890 To se mi ne pomaga. 833 00:39:04,890 --> 00:39:08,220 Ampak obvestilo, Jek je vsaj malo bit dostojno, pri čemer z malo 834 00:39:08,220 --> 00:39:11,890 zelena strešica simbol, to je pravi tukaj je, če sem zamočil. 835 00:39:11,890 --> 00:39:16,160 Zakaj je poudaril, da je z malo zelena puščica, z enotnim citatom naslednjem 836 00:39:16,160 --> 00:39:18,290 v mojem imenu? 837 00:39:18,290 --> 00:39:20,880 >> Torej, to je ena od stvari, ki ste jo pravkar navadil, še posebej, če ste bili 838 00:39:20,880 --> 00:39:23,980 programiranje v Pythonu, ali JavaScript, ali druge jezike, če je ta detajl 839 00:39:23,980 --> 00:39:24,560 ni važno. 840 00:39:24,560 --> 00:39:25,740 V C, to ne zadeva. 841 00:39:25,740 --> 00:39:29,520 Če ste razglasitvi niz, ki je zaporedje 0 ali več znakov 842 00:39:29,520 --> 00:39:32,280 morate dejansko uporabo dvojne narekovaje. 843 00:39:32,280 --> 00:39:36,670 Tako da sem dejansko treba to spremeniti, Če želite odpreti ponudbo, zaprite ponudbo, s 844 00:39:36,670 --> 00:39:37,800 narekovajih. 845 00:39:37,800 --> 00:39:41,610 Enojne narekovaje imajo svoje mesto, vendar šele, ko boste uporabljali posameznika 846 00:39:41,610 --> 00:39:44,100 znakov, ampak bolj o tem kdaj drugič. 847 00:39:44,100 --> 00:39:46,550 Za zdaj, narekovajih niso potrebni. 848 00:39:46,550 --> 00:39:50,460 >> Torej, zdaj, naj se vrnem na mojo terminal okno, se zdravo 1. 849 00:39:50,460 --> 00:39:51,450 In kdo je samozavesten? 850 00:39:51,450 --> 00:39:53,800 Je ta program sedaj dogaja pravilno pripraviti? 851 00:39:53,800 --> 00:39:58,250 852 00:39:58,250 --> 00:39:58,540 OK. 853 00:39:58,540 --> 00:39:59,780 Torej, trije smo, da to. 854 00:39:59,780 --> 00:40:00,280 Vse je v redu. 855 00:40:00,280 --> 00:40:01,190 Enter. 856 00:40:01,190 --> 00:40:02,440 In to dejansko storila. 857 00:40:02,440 --> 00:40:05,130 Torej ni nobenih napak tokrat, čeprav čeprav je ta program prišel malo 858 00:40:05,130 --> 00:40:05,840 bolj zapletena. 859 00:40:05,840 --> 00:40:10,110 Če bom zdaj naredil dot poševnica Pozdravljeni 1, Enter to bo rekel "Zdravo, David." 860 00:40:10,110 --> 00:40:11,750 >> Ampak kaj je naredil tretjo ponovitev od tega, če 861 00:40:11,750 --> 00:40:13,380 Program je resnično dinamičen. 862 00:40:13,380 --> 00:40:16,770 Dovolite mi, da gredo naprej in spremenite datoteko ime, samo za skladnost z 863 00:40:16,770 --> 00:40:20,410 Datoteke boste imeli na voljo vam kasneje spletu. 864 00:40:20,410 --> 00:40:21,620 Enter. 865 00:40:21,620 --> 00:40:25,510 In zdaj bom šel in ne shranjevanje "David" težko kodirane tukaj. 866 00:40:25,510 --> 00:40:28,826 Kaj lahko storim, da zelo enostavno izboljšati ta program? 867 00:40:28,826 --> 00:40:30,520 >> Lahko pokličete getstring. 868 00:40:30,520 --> 00:40:33,240 Mogoče je malo neočiten kaj se bo zgodilo, zato bom 869 00:40:33,240 --> 00:40:38,470 dejansko dodati še eno vrstico, printf, in pravijo, ime, debelega črevesa, tesno ponudbo, samo 870 00:40:38,470 --> 00:40:40,790 da bi uporabniku poziv na zaslonu. 871 00:40:40,790 --> 00:40:42,980 In zdaj bom šel tu, in sem boste uporabljali svojo bližnjico na tipkovnici. 872 00:40:42,980 --> 00:40:47,680 Jaz grem gor, gor in spremenite Pozdravi od 1 do 2 Pozdravljeni, Enter. 873 00:40:47,680 --> 00:40:49,260 In hvaležen, da sem napredek. 874 00:40:49,260 --> 00:40:52,720 >> In zdaj bom šel gor na dot slash Pozdravljeni in 875 00:40:52,720 --> 00:40:54,690 spremeniti, da 2, Enter. 876 00:40:54,690 --> 00:40:55,650 In zdaj moj program - 877 00:40:55,650 --> 00:40:57,700 Jaz bom približati - postaja malo lepša. 878 00:40:57,700 --> 00:41:02,190 Ime se bo, recimo, Rob Tokrat Enter, zdravo, Rob. 879 00:41:02,190 --> 00:41:03,260 Mi lahko to storite še enkrat. 880 00:41:03,260 --> 00:41:05,360 Ime, Lauren, Enter. 881 00:41:05,360 --> 00:41:07,820 Ime, Joseph Enter. 882 00:41:07,820 --> 00:41:11,596 Ime, poskusimo biti težko, Enter. 883 00:41:11,596 --> 00:41:12,410 Eh. 884 00:41:12,410 --> 00:41:14,680 To ni res bug. 885 00:41:14,680 --> 00:41:16,090 Torej to je samo malo grdo. 886 00:41:16,090 --> 00:41:18,640 Mogoče bi lahko rešili to v prihodnosti, ne zdaj. 887 00:41:18,640 --> 00:41:20,840 >> Ampak kako bi vi nagonsko iti o reševanju 888 00:41:20,840 --> 00:41:21,990 da je poseben izziv? 889 00:41:21,990 --> 00:41:23,710 Prav tako je videti neumno. 890 00:41:23,710 --> 00:41:27,320 Kako ste se izognili stvari si neumen? 891 00:41:27,320 --> 00:41:29,890 Torej lahko storimo, OK, sem slišal nekaj stvari, stanje in zanke. 892 00:41:29,890 --> 00:41:33,340 Mi lahko uporabite, nekaj, kar je pogoj, da preverite kar je dolžina niza 893 00:41:33,340 --> 00:41:34,190 Uporabnik nam je dal? 894 00:41:34,190 --> 00:41:37,100 In če je 0, to je samo citiram konec citata, so samo pritisnite tipko Enter, nato 895 00:41:37,100 --> 00:41:38,930 Mogoče bi moral kričati na njih in jih ponovno pozval. 896 00:41:38,930 --> 00:41:39,970 Ampak kako jih spet hitro? 897 00:41:39,970 --> 00:41:44,230 No, tudi jaz slišal zanko, in sem lahko storiti, da znova in znova in znova 898 00:41:44,230 --> 00:41:47,010 poziva uporabniku za isto stvar. 899 00:41:47,010 --> 00:41:48,880 >> No, dajmo narediti še en primer uporabo različnih 900 00:41:48,880 --> 00:41:50,620 Funkcija v knjižnici CS50. 901 00:41:50,620 --> 00:41:52,330 Dovolite mi, da zaprete to datoteko. 902 00:41:52,330 --> 00:41:53,510 Dovolite mi, da ustvarite novega. 903 00:41:53,510 --> 00:41:58,510 In bom poklical, da adder.c, samo zato, ker to je enostavno narediti preprosto aritmetiko, 904 00:41:58,510 --> 00:42:00,890 čeprav bo to popolnoma underwhelming s tem, kaj bi lahko storili 905 00:42:00,890 --> 00:42:02,250 z vsako sodobno računalnik. 906 00:42:02,250 --> 00:42:03,750 >> Ampak naj gredo naprej in zdaj - 907 00:42:03,750 --> 00:42:10,680 Sem svojo lekcijo zadnji čas - vključuje cs50.h, include stdio.h, int 908 00:42:10,680 --> 00:42:14,170 Glavni ničen, ki je za zdaj, bom samo prevzamejo slepo vero, vendar bomo prevzeti 909 00:42:14,170 --> 00:42:16,380 da bodo razumeli, kaj to pomeni, da prej ali slej. 910 00:42:16,380 --> 00:42:21,030 In jaz bom rekel nekaj kot "daj mi int." 911 00:42:21,030 --> 00:42:22,140 >> In zdaj, kako pridem int? 912 00:42:22,140 --> 00:42:26,820 Rad bi na koncu razglasi spremenljivko imenovan x tipa int in 913 00:42:26,820 --> 00:42:29,240 shranjevanje v njej celo število od uporabnika. 914 00:42:29,240 --> 00:42:29,970 To je bila Košček. 915 00:42:29,970 --> 00:42:35,680 Toda, če nekdo želi predlagati, kako Ne Izjavljam celo število, imenovano x? 916 00:42:35,680 --> 00:42:36,310 Int x. 917 00:42:36,310 --> 00:42:37,430 >> Torej je res, da je preprost. 918 00:42:37,430 --> 00:42:38,240 Daj mi int. 919 00:42:38,240 --> 00:42:39,070 Call it x. 920 00:42:39,070 --> 00:42:40,580 Sedaj uporabljam operaterja odstop. 921 00:42:40,580 --> 00:42:43,400 In kako naj shranim iz pustila vrednost za uporabnika? 922 00:42:43,400 --> 00:42:47,310 Ne želim, da pokličete getstring, očitno, ampak getint. 923 00:42:47,310 --> 00:42:49,060 Vsi argumenti? 924 00:42:49,060 --> 00:42:49,350 Število 925 00:42:49,350 --> 00:42:51,870 Torej je odprta paren, blizu paren takoj nato 926 00:42:51,870 --> 00:42:53,440 podpičjem konča linijo. 927 00:42:53,440 --> 00:42:54,930 >> Zdaj pa mi to še enkrat. 928 00:42:54,930 --> 00:42:57,070 Daj mi še int. 929 00:42:57,070 --> 00:43:01,850 Tokrat bom naredil int, dajmo call it y, enako getint. 930 00:43:01,850 --> 00:43:05,060 In zdaj mi narediti nekaj super-enostaven kot neke matematiki. 931 00:43:05,060 --> 00:43:14,340 Torej printf, vsota% d je Ograda za notr. 932 00:43:14,340 --> 00:43:20,030 In% d, obdobje, Nagibnica-n. 933 00:43:20,030 --> 00:43:20,360 >> Vse je v redu. 934 00:43:20,360 --> 00:43:21,670 Tako da je dejansko ni matematika. 935 00:43:21,670 --> 00:43:25,500 Ampak, če želim povedati vsoto to vrednost in ta vrednost je enaka tem 936 00:43:25,500 --> 00:43:29,320 druga vrednost, koliko argumentov v Skupno naj bi printf daje, 937 00:43:29,320 --> 00:43:30,520 na koncu? 938 00:43:30,520 --> 00:43:31,420 Torej štiri, kajne? 939 00:43:31,420 --> 00:43:33,790 Ta niz in nato tri vrednosti. 940 00:43:33,790 --> 00:43:37,560 Torej je x prvi Rad bi priključen na prvega do% d. 941 00:43:37,560 --> 00:43:39,270 y se bo naslednji. 942 00:43:39,270 --> 00:43:42,030 >> In zdaj sem nekako hotel povedati z, vendar z ne obstaja. 943 00:43:42,030 --> 00:43:43,190 Ampak to ni nič takega. 944 00:43:43,190 --> 00:43:45,440 Ker kaj bi ti naredil nagonsko, še posebej, če ste imeli 945 00:43:45,440 --> 00:43:47,820 Grafična Kalkulator, kaj tipkate? 946 00:43:47,820 --> 00:43:48,760 Kaj pa x plus y? 947 00:43:48,760 --> 00:43:50,200 Torej, to ni dejanska spremenljivka. 948 00:43:50,200 --> 00:43:51,820 To je samo vsota dveh druge spremenljivke. 949 00:43:51,820 --> 00:43:53,170 In to je povsem legitimno. 950 00:43:53,170 --> 00:43:56,630 C zagotovo razume preprosta aritmetično, kot je ta. 951 00:43:56,630 --> 00:43:58,450 >> Podpičje, shranite. 952 00:43:58,450 --> 00:44:02,080 Zdaj pa grem dol in napišete make seštevalnik, Enter. 953 00:44:02,080 --> 00:44:04,100 Nobene napake, tako da je napredek preveč. 954 00:44:04,100 --> 00:44:04,890 Vnesite seštevalnik. 955 00:44:04,890 --> 00:44:07,100 In še bližnjico na tipkovnici, če začnete dolgčas 956 00:44:07,100 --> 00:44:08,760 z vsemi ukazi - 957 00:44:08,760 --> 00:44:12,650 če začnete tipkati ukaz, kot je pika poševnica oglas, in to je, če vaš 958 00:44:12,650 --> 00:44:16,020 dolgočasje brcne, lahko ponavadi hit Tab ima računalnik konča 959 00:44:16,020 --> 00:44:20,510 počitek stavka za vas, če to ni dvoumna, kaj pride po oglasu. 960 00:44:20,510 --> 00:44:23,950 >> Naj gredo naprej zdaj in kliknete Enter. 961 00:44:23,950 --> 00:44:27,490 Daj mi int, 1, 2, in na srečo, je 3. 962 00:44:27,490 --> 00:44:29,900 Ampak kot vedno, testiranje programov ne sme zmanjšati za 963 00:44:29,900 --> 00:44:30,820 samo poskušam enkrat. 964 00:44:30,820 --> 00:44:35,560 Naj poskusim kotiček primerov, kot negativen 1, daj mi 1, in da je eden 965 00:44:35,560 --> 00:44:36,210 odjavi kot dobro. 966 00:44:36,210 --> 00:44:38,870 In jaz verjetno želeli narediti nekaj več strogo testiranje, vendar sem precej 967 00:44:38,870 --> 00:44:40,630 udobno s tem, kje to je na. 968 00:44:40,630 --> 00:44:43,110 >> No, zdaj pa poskusite drug program da tokrat uporablja 969 00:44:43,110 --> 00:44:44,620 malo drugih sintakse. 970 00:44:44,620 --> 00:44:46,100 Dovolite mi, da ustvarite novo datoteko. 971 00:44:46,100 --> 00:44:51,050 Poklical bom to conditions0.c poravnati z nekaj vzorčne kode na spletu. 972 00:44:51,050 --> 00:44:55,550 In mi gredo naprej in to vključujejo cs50.h, vključujejo 973 00:44:55,550 --> 00:45:00,320 stdio.h, v glavnem praznini - 974 00:45:00,320 --> 00:45:01,030 OK. 975 00:45:01,030 --> 00:45:01,850 Takole. 976 00:45:01,850 --> 00:45:03,010 Imamo standardna pogodba. 977 00:45:03,010 --> 00:45:08,170 >> In tokrat bom printf reči, "Rad int, prosim," samo da se 978 00:45:08,170 --> 00:45:10,030 da hitro malo bolj prijazna. 979 00:45:10,030 --> 00:45:11,620 In zdaj želim, da bi dobili int od uporabnika. 980 00:45:11,620 --> 00:45:15,010 Jaz ga bom n tokrat poklical, samo ker n zveni kot številko. 981 00:45:15,010 --> 00:45:18,140 getint, in zdaj, kaj storiti Rad bi naredil z njim? 982 00:45:18,140 --> 00:45:21,640 No, če je n - in bom povečavo - 983 00:45:21,640 --> 00:45:25,930 če je n večji kot 0, rad storiti naslednje - 984 00:45:25,930 --> 00:45:36,060 printf "Izbral si pozitivno število." Drugega, bom printf stavek "You 985 00:45:36,060 --> 00:45:37,870 pobral negativno 986 00:45:37,870 --> 00:45:39,650 številko. "V redu. 987 00:45:39,650 --> 00:45:44,410 Torej ta program, čeprav sem to storil hitro, zgleda prav skladenjsko. 988 00:45:44,410 --> 00:45:45,010 Naj poskusim to. 989 00:45:45,010 --> 00:45:46,890 Da stanje 0. 990 00:45:46,890 --> 00:45:47,710 Razliva. 991 00:45:47,710 --> 00:45:49,230 Stanje 0, vnesite. 992 00:45:49,230 --> 00:45:51,910 Dajmo mu int od 50 let. 993 00:45:51,910 --> 00:45:53,160 Pobral sem pozitivno število. 994 00:45:53,160 --> 00:45:54,230 Dajmo še enkrat poskusila. 995 00:45:54,230 --> 00:45:54,930 Stanje 0. 996 00:45:54,930 --> 00:45:56,260 Negativno 50. 997 00:45:56,260 --> 00:45:57,290 Pobral sem negativno število. 998 00:45:57,290 --> 00:46:00,350 >> Toda zdaj, vzamem kaj bomo naprej kliče kota primeru, ki je bolj 999 00:46:00,350 --> 00:46:04,702 Zanimiv primer, ki mislite, bi vam nekaj težav, 0. 1000 00:46:04,702 --> 00:46:07,940 Zdaj sem prepričan, da je to eden od ti primeri kotiček, kjer je nič 1001 00:46:07,940 --> 00:46:12,330 niti pozitivno niti negativno, tako da moja Program, čeprav je v skladenjsko 1002 00:46:12,330 --> 00:46:15,440 popravijo - to pripravlja, da teče - ni logično pravilna. 1003 00:46:15,440 --> 00:46:21,050 Torej, kaj je enostavno pritrditi tukaj, če želim odkriti, če želim ročaj n 1004 00:46:21,050 --> 00:46:23,840 enaka 0 ločeno? 1005 00:46:23,840 --> 00:46:32,980 >> Torej, če je n enak 0, potem pa sem hotel povedati nekaj podobnega printf "Izbral si 0". 1006 00:46:32,980 --> 00:46:33,990 Dovolite mi, da poskusite to zdaj. 1007 00:46:33,990 --> 00:46:38,320 Naj grem nazaj, jasno moje okno, in prevedem. 1008 00:46:38,320 --> 00:46:38,690 Hm. 1009 00:46:38,690 --> 00:46:39,770 Ena napaka ustvarjajo. 1010 00:46:39,770 --> 00:46:41,630 Ampak jaz si želim, da preverite če je n enak 0. 1011 00:46:41,630 --> 00:46:44,230 1012 00:46:44,230 --> 00:46:47,720 >> Torej, še enkrat, še ena neumna stvar navaditi, enačaj je 1013 00:46:47,720 --> 00:46:48,910 Operater naloga. 1014 00:46:48,910 --> 00:46:52,240 To je torej dejansko napaka, da tehnično, čeprav prevajalnik 1015 00:46:52,240 --> 00:46:56,450 me je zaščiten od sebe, da bomo Tehnično se kopiranje 0 v n, ki 1016 00:46:56,450 --> 00:46:57,590 ni tisto, kar hočem. 1017 00:46:57,590 --> 00:47:00,950 Želim, da test za enakost z enako enako. 1018 00:47:00,950 --> 00:47:03,390 Tako, da bi lahko sedaj moja boljša rešitev. 1019 00:47:03,390 --> 00:47:07,810 >> Dovolite mi, da pravzaprav shranili to kot, recimo, razmer1, da je nov in izboljšan. 1020 00:47:07,810 --> 00:47:10,480 Torej, zdaj, če sem to prevedem, da bi pogoje - 1021 00:47:10,480 --> 00:47:16,960 Ops - da razmer1 pika slash razmer1, Enter "Rad bi int, 1022 00:47:16,960 --> 00:47:18,760 prosim. "Jaz grem naprej in vnesite 50. 1023 00:47:18,760 --> 00:47:19,660 To je še vedno dobra. 1024 00:47:19,660 --> 00:47:21,200 Negativni 50, še vedno dobra. 1025 00:47:21,200 --> 00:47:24,920 0, in seveda zazna da sem izbral 0. 1026 00:47:24,920 --> 00:47:28,200 >> Torej, kaj še lahko zdaj s tem? 1027 00:47:28,200 --> 00:47:32,280 No, bomo lahko zagotovo storiti vse kompleksne stvari. 1028 00:47:32,280 --> 00:47:37,240 Ampak kaj bi rad predlagal, je da smo na koncu na tej opombi tukaj. 1029 00:47:37,240 --> 00:47:41,680 Če bomo dvigni to, boste videli, morda, najljubša risanka tvoje 1030 00:47:41,680 --> 00:47:43,326 do danes ste morda nikoli razumel. 1031 00:47:43,326 --> 00:47:46,550 1032 00:47:46,550 --> 00:47:49,520 In to je, o kakovosti smeha bi morali dobiti s CS šale. 1033 00:47:49,520 --> 00:47:51,060 Torej, to je približno prav. 1034 00:47:51,060 --> 00:47:54,900 >> Toda še bolj prepričljivo, sem mislil, da sem dajte nam malo teaser za ponedeljek. 1035 00:47:54,900 --> 00:47:56,430 Tako smo začeli z uporabo števil. 1036 00:47:56,430 --> 00:47:57,510 Mi smo iz plovci. 1037 00:47:57,510 --> 00:48:00,120 Mi smo celo iz dvojicah, ki je, še enkrat, da vam številke 1038 00:48:00,120 --> 00:48:01,390 Po pikami. 1039 00:48:01,390 --> 00:48:04,230 >> Vendar se izkaže, da so boje in dvojice, in, res, računalniki, 1040 00:48:04,230 --> 00:48:08,470 bistveno pa je, ne more izraziti nekatere vrednosti natančno. 1041 00:48:08,470 --> 00:48:12,840 Vemo iz matematike razrede, ki jih lahko ima poljubno število številk po 1042 00:48:12,840 --> 00:48:13,510 decimalno vejico. 1043 00:48:13,510 --> 00:48:16,460 In lahko celo dal navpično vrstico torej ti traja večno. 1044 00:48:16,460 --> 00:48:18,810 >> Na žalost vam ne morem to v računalniku. 1045 00:48:18,810 --> 00:48:20,400 In tako se pojavljajo primeri, ko kotiček. 1046 00:48:20,400 --> 00:48:23,120 Recimo, da ste delaš nekaj finančno. 1047 00:48:23,120 --> 00:48:25,700 Delaš matematike z odstotki, in 1048 00:48:25,700 --> 00:48:27,030 s dolarjev in centov. 1049 00:48:27,030 --> 00:48:29,230 In tisti centov ne nujno postavo. 1050 00:48:29,230 --> 00:48:34,120 No, izkazalo se je, da frakcij penijev lahko začne sešteti, ko 1051 00:48:34,120 --> 00:48:37,250 oblikovana z računalniškim sistemom na tak način, da pametna 1052 00:48:37,250 --> 00:48:39,100 ljudje lahko izkoristijo. 1053 00:48:39,100 --> 00:48:42,650 >> In tiste, ki niso videli, jaz bi radi, da vam 30-sekundni teaser za 1054 00:48:42,650 --> 00:48:48,290 čudovit film, znan kot Office Space, ki bo naslikal 1055 00:48:48,290 --> 00:48:51,205 Problem smo se spopasti Prva stvar v ponedeljek. 1056 00:48:51,205 --> 00:48:53,960 Če bi lahko povečajo obseg malo, ti dam 30 1057 00:48:53,960 --> 00:48:55,495 sekund Office Space. 1058 00:48:55,495 --> 00:48:55,770 >> [Predvajanje videa] 1059 00:48:55,770 --> 00:48:59,000 >> -Mislim, ti, ti niso bili prikazujejo gor in dobiš obdržati svojo službo. 1060 00:48:59,000 --> 00:49:00,620 >> -Pravzaprav sem se oglašuje. 1061 00:49:00,620 --> 00:49:03,240 >> -Jaz lahko programirate virus, ki bi razporek ta kraj off veliko časa. 1062 00:49:03,240 --> 00:49:04,430 >> No, kako deluje? 1063 00:49:04,430 --> 00:49:06,782 >> -Vsakič, ko je banka posel kjer je interes izračuna in tam 1064 00:49:06,782 --> 00:49:10,160 tisoče dan, računalnik konča s temi frakcij cent. 1065 00:49:10,160 --> 00:49:12,030 >> Ampak jaz ne bom storiti nič nezakonitega. 1066 00:49:12,030 --> 00:49:12,660 >> -Nezakonito? 1067 00:49:12,660 --> 00:49:15,075 Samir, to je Amerika. 1068 00:49:15,075 --> 00:49:16,570 >> -Moramo prisežem. 1069 00:49:16,570 --> 00:49:19,070 >> -Če nihče ne ve o tem ampak nas, v redu? 1070 00:49:19,070 --> 00:49:21,920 Ni družinski člani, brez prijateljice, nobody. 1071 00:49:21,920 --> 00:49:22,700 >> -Seveda. 1072 00:49:22,700 --> 00:49:23,320 >> -Se strinjam. 1073 00:49:23,320 --> 00:49:24,280 >> -Ne skrbi, stari. 1074 00:49:24,280 --> 00:49:25,640 Nikomur ne bom povedal niti. 1075 00:49:25,640 --> 00:49:26,504 >> [END predvajanje videa] 1076 00:49:26,504 --> 00:49:30,030 >> DAVID Malan: Torej, to je potem CS50, da je Office Space, in da bo vse 1077 00:49:30,030 --> 00:49:31,465 smisla v ponedeljek. 1078 00:49:31,465 --> 00:49:33,940 Se vidiva takrat. 1079 00:49:33,940 --> 00:49:37,880 >> Pripovedovalec: Na naslednjem CS50, Rob prilagaja počutje off 1080 00:49:37,880 --> 00:49:39,130 Harvard obrok načrt. 1081 00:49:39,130 --> 00:49:56,160