1 00:00:00,000 --> 00:00:11,736 2 00:00:11,736 --> 00:00:16,626 >> [VIDEO PREDVAJANJE] 3 00:00:16,626 --> 00:00:19,410 >> -A Zmagoslavje matematična in mehansko spretnost 4 00:00:19,410 --> 00:00:23,270 je to velik nov avtomatski Kalkulator na Univerzi Harvard. 5 00:00:23,270 --> 00:00:27,140 Zapleteni problemi v matematiki čaka skozi napravo v kodirani obliki 6 00:00:27,140 --> 00:00:31,710 na traku so natančno rešiti na minut frakcija časa, potrebnega 7 00:00:31,710 --> 00:00:32,819 za prehrano izračun. 8 00:00:32,819 --> 00:00:44,280 9 00:00:44,280 --> 00:00:48,220 Zasnovan tako, da pospeši vse oblike matematične in znanstvene raziskave, 10 00:00:48,220 --> 00:00:53,840 velikan mehanska možgani bo delo za mornarice ZDA do konca vojne. 11 00:00:53,840 --> 00:01:03,620 12 00:01:03,620 --> 00:01:06,570 >> [END PREDVAJANJE] 13 00:01:06,570 --> 00:01:08,590 >> DAVID J. Malan: To je CS50. 14 00:01:08,590 --> 00:01:10,590 Preteklost je bila čarobna kraj, ampak, če ste kdaj 15 00:01:10,590 --> 00:01:13,366 spraševali, kaj da je naprava v Harvard Science Center, 16 00:01:13,366 --> 00:01:16,150 res je del od Harvard Mark I, in to je 17 00:01:16,150 --> 00:01:18,710 Na zaslonu se zdaj v zadnjih mnogo let. 18 00:01:18,710 --> 00:01:20,590 In kaj boste videli vgrajeni v problemskega sklopa 19 00:01:20,590 --> 00:01:24,416 eden je pogled v zakulisje kaj ta naprava naredila, in ne, 20 00:01:24,416 --> 00:01:27,540 profesorja Harry Lewis, ki je v računalništvo oddelek tukaj. 21 00:01:27,540 --> 00:01:29,440 Torej, več o tem v samo bit. 22 00:01:29,440 --> 00:01:33,990 >> Ampak danes smo začeli na prehodu od prejšnjega tedna na to, 23 00:01:33,990 --> 00:01:37,290 in bomo prinese omembo ene fotografije tukaj 24 00:01:37,290 --> 00:01:38,630 da je pravzaprav precej slaven. 25 00:01:38,630 --> 00:01:42,270 Ali kdo ve, kaj je to tukaj je na zaslonu? 26 00:01:42,270 --> 00:01:43,880 Vsaj glede na mit. 27 00:01:43,880 --> 00:01:44,837 Ja. 28 00:01:44,837 --> 00:01:45,920 OBČINSTVO: Prvi virus. 29 00:01:45,920 --> 00:01:49,570 DAVID J. Malan: Tako je bilo menda zelo prvi dejanski bug v računalniku. 30 00:01:49,570 --> 00:01:52,490 Zdaj v resnici beseda napako, za napako v programu, 31 00:01:52,490 --> 00:01:55,250 je bil z nami že nekaj čas v fizičnem svetu, 32 00:01:55,250 --> 00:01:58,190 in to je bil eden izmed prvih dokumentirane času, ko nekdo dejansko 33 00:01:58,190 --> 00:02:02,280 oskubljene veliko veščo iz Mark Računalnik II, ga v vezivu, 34 00:02:02,280 --> 00:02:05,006 in nato zabeležili kot prvo znano bug 35 00:02:05,006 --> 00:02:06,630 da je bilo dejansko ugotovljeno, fizično. 36 00:02:06,630 --> 00:02:10,104 Torej, s čimer je bila vpisana da je v današnjem izročilu. 37 00:02:10,104 --> 00:02:12,020 Vse od zadnje teden, je na voljo na spletu. 38 00:02:12,020 --> 00:02:14,840 V posebnih virov, ki jih lahko Ni nujno obvestilo, zlasti 39 00:02:14,840 --> 00:02:15,881 če prihajajo tukaj na osebo. 40 00:02:15,881 --> 00:02:20,230 Torej, eden od učnih štipendistov vsako leto naredi kanonično niz zapiskov, 41 00:02:20,230 --> 00:02:22,010 tako da vam ni treba hraniti tvoja glava dol, poskušam 42 00:02:22,010 --> 00:02:24,410 prepisati najbolj ničesar da bi se lahko zgodilo tukaj v razredu. 43 00:02:24,410 --> 00:02:25,940 Tako zavedajo, da tisti, tako imenovana [? Scribd?] Opombe 44 00:02:25,940 --> 00:02:29,350 so na spletu, zagotovo diapozitivi in izvorna koda, ki jo uporabljamo v razredu. 45 00:02:29,350 --> 00:02:31,436 Izdelujemo Celotno besedilo prepise Na voljo so tudi. 46 00:02:31,436 --> 00:02:34,310 Torej, če ste megleno spomnim nekaj izraz, in jo želite pogledati malo 47 00:02:34,310 --> 00:02:37,280 lažje, zavedaš, da so vse za to je iskati na spletu. 48 00:02:37,280 --> 00:02:38,930 Kakor tudi walkthroughs, kot dobro. 49 00:02:38,930 --> 00:02:42,710 Pravzaprav, danes smo začeli gledati nižji programski jezik na ravni, 50 00:02:42,710 --> 00:02:45,290 Kmalu bo znano, da nas kot C, in to je zelo enostavno 51 00:02:45,290 --> 00:02:48,820 da nekako izgubijo, ko je le nekaj trenutki časa, in potem nekako čudno 52 00:02:48,820 --> 00:02:52,370 kako smo pravzaprav prišli do nekaj več kompleksen primer od najenostavnejših. 53 00:02:52,370 --> 00:02:54,975 In tako se zavedaš, da bomo češnja izbrati med poukom nekaj 54 00:02:54,975 --> 00:02:57,850 reprezentativnih primerov, vendar Zavedam se, da je tudi toliko bolj 55 00:02:57,850 --> 00:03:01,140 na voljo na spletu, tako da lahko delate skozi to v svojem tempu, 56 00:03:01,140 --> 00:03:02,950 Vendar ste najbolj udobno. 57 00:03:02,950 --> 00:03:05,200 >> Vendar pa smo končali s programi, ki so bili samo to. 58 00:03:05,200 --> 00:03:09,690 Torej, sem kliknite na zeleno zastavo, in kaj ta program storiti? 59 00:03:09,690 --> 00:03:10,710 Pravi, zdravo, svet. 60 00:03:10,710 --> 00:03:13,180 To naredi mačka reči Pozdravljeni v svojem malem svetu 61 00:03:13,180 --> 00:03:15,990 na zgornji levi strani uporabniškega vmesnika Scratch je. 62 00:03:15,990 --> 00:03:18,810 Vendar pa smo začeli uvajati nekateri terminologija prejšnji teden. 63 00:03:18,810 --> 00:03:23,614 In tako, stvari, kot je ta, smo poklicani, kaj? 64 00:03:23,614 --> 00:03:25,280 Kaj bi lahko bil splošen izraz za to? 65 00:03:25,280 --> 00:03:26,266 Ja. 66 00:03:26,266 --> 00:03:28,210 Metoda ali izjava. 67 00:03:28,210 --> 00:03:29,280 Seveda, to je dejanje. 68 00:03:29,280 --> 00:03:30,140 Ali to. 69 00:03:30,140 --> 00:03:32,400 In vendar je bilo druge oblike do nič, 70 00:03:32,400 --> 00:03:35,360 poleg teh tako imenovanih izjavo, da so tudi 71 00:03:35,360 --> 00:03:38,221 Stvari, kot je ta, ki smo ga imenuje, kaj? 72 00:03:38,221 --> 00:03:38,720 Ja. 73 00:03:38,720 --> 00:03:39,634 Torej zanka. 74 00:03:39,634 --> 00:03:42,050 In v tem primeru je to stvar ponavlja, seveda, 10-krat. 75 00:03:42,050 --> 00:03:43,040 Tam je vedno blok. 76 00:03:43,040 --> 00:03:44,164 Tukaj je nekaj drugih. 77 00:03:44,164 --> 00:03:48,309 In danes bomo videli, kako prevesti v bolj sodobnem svetu, 78 00:03:48,309 --> 00:03:50,850 če hočete, čeprav je dogaja, da se zdi na prvi pogled 79 00:03:50,850 --> 00:03:52,024 da je veliko bolj skrivnostne. 80 00:03:52,024 --> 00:03:53,190 Ampak to so bili res zank. 81 00:03:53,190 --> 00:03:56,182 In potem imamo stvari, kot so ta, ki je imel to obliko, 82 00:03:56,182 --> 00:03:57,515 in v bistvu vprašanja. 83 00:03:57,515 --> 00:03:58,890 In mi iz njih, kot kaj? 84 00:03:58,890 --> 00:03:59,762 >> OBČINSTVO: Logični izraz. 85 00:03:59,762 --> 00:04:00,320 >> DAVID J. Malan: Ja. 86 00:04:00,320 --> 00:04:01,340 Logični izraz. 87 00:04:01,340 --> 00:04:04,502 Nekaj, kar je bodisi resnična ali false, da ali ne, eno ali nič, 88 00:04:04,502 --> 00:04:05,960 Vendar pa si želite ogledati svet. 89 00:04:05,960 --> 00:04:08,335 Vendar smo poklicali tiste Boolean izrazov in jih priključite 90 00:04:08,335 --> 00:04:09,900 v pogojih, ali podružnice. 91 00:04:09,900 --> 00:04:12,170 In v svetu Scratch, vse lepo 92 00:04:12,170 --> 00:04:15,460 zapore v smislu njegove oblike, če to naredi logično smiselno, da to storijo, 93 00:04:15,460 --> 00:04:18,490 vendar nimate ustaviti na samo delaš eno stvar pogojno, 94 00:04:18,490 --> 00:04:20,450 lahko imajo pregovorno vilice v cestnem prometu 95 00:04:20,450 --> 00:04:24,040 in to bodisi tega ali onega, če je pogoj izpolnjen ali ne. 96 00:04:24,040 --> 00:04:26,040 In potem, kot boste videli, Če tega še niste storili, 97 00:04:26,040 --> 00:04:27,480 Lahko se celo gnezdo teh blokov. 98 00:04:27,480 --> 00:04:32,110 Torej Scratch raste za zapolnitev oblik da boste morda želeli vstaviti vanjo, 99 00:04:32,110 --> 00:04:35,330 tako da lahko dejansko izražajo najbolj vsaka logika, da boste morda želeli storiti. 100 00:04:35,330 --> 00:04:38,220 >> Zdaj pa še nekaj besed o razglasitvi tako tukaj in New Haven. 101 00:04:38,220 --> 00:04:39,370 Torej na odseke se začenja danes. 102 00:04:39,370 --> 00:04:42,120 URL za to je na tečaj je Spletna stran, za tiste, ki ne poznajo. 103 00:04:42,120 --> 00:04:43,970 Profili bo priložnost, da se skupaj 104 00:04:43,970 --> 00:04:46,553 v veliko bolj intimno okolje kot [? Sanders?] Omogoča, 105 00:04:46,553 --> 00:04:50,347 s 10 do 20 sošolcev, ki imajo asistent na različne skladbe, 106 00:04:50,347 --> 00:04:51,930 in različnih korakov, če se tako odločijo. 107 00:04:51,930 --> 00:04:54,080 Pravzaprav so jih nudi tečaj različni deli 108 00:04:54,080 --> 00:04:57,340 za tiste manj udoben, bolj udobno, in nekje vmes, 109 00:04:57,340 --> 00:04:59,860 in vloga palca tukaj, je ni formalne opredelitve, 110 00:04:59,860 --> 00:05:04,600 če pa ste manj udoben, si nekako to veste. 111 00:05:04,600 --> 00:05:07,470 Ti si malo neustrašen približno Ideja o poglobitvi nogo, morda, nazaj 112 00:05:07,470 --> 00:05:10,130 v razredu, ali kažejo do višine med oddelku. 113 00:05:10,130 --> 00:05:12,770 Če ste bili programiranje, saj vas so bili stari šest let, bolj udobno, 114 00:05:12,770 --> 00:05:13,400 morda za vas. 115 00:05:13,400 --> 00:05:16,150 In če je to neke vrste kretnjo-up, to je točno tisto, kar je vmes 116 00:05:16,150 --> 00:05:17,190 je mišljeno, da bo. 117 00:05:17,190 --> 00:05:18,410 >> Zdaj, v času, za razred to velikost, 118 00:05:18,410 --> 00:05:21,326 nam traja kar nekaj časa, da se oddelka vsi, zato smo ti, 119 00:05:21,326 --> 00:05:24,030 super odseki, ki prihajajo up to vikend in v začetku prihodnjega tedna, 120 00:05:24,030 --> 00:05:26,570 zato si oglejte na spletni strani predmeta je za tiste, ki so seveda širok, 121 00:05:26,570 --> 00:05:28,610 in tudi posnel za tiste, ki ne morejo do njih. 122 00:05:28,610 --> 00:05:33,470 In oddelki bodo sami začeti V tednu, tri CS50 ničelno indeksa. 123 00:05:33,470 --> 00:05:35,880 Problem nastavite 0 je že na spletni strani seveda je. 124 00:05:35,880 --> 00:05:40,010 In spoznali, da imate, devet poznih dni ta semester. 125 00:05:40,010 --> 00:05:43,240 Torej, to je nadgradnja od zadnje leto, ko smo imeli pet pozno dni. 126 00:05:43,240 --> 00:05:46,210 >> Torej, če ste se spraševala, imamo devet problemskih sklopov. 127 00:05:46,210 --> 00:05:53,200 Imate devet poznih dni, vsak od katerih lahko preživijo le eno na teden. 128 00:05:53,200 --> 00:05:56,089 Da učinkovito prodira vse problem postavlja zaradi Petek, 129 00:05:56,089 --> 00:05:58,630 a cilj je, da se malo malo psihološkega pritiska 130 00:05:58,630 --> 00:06:01,100 na vas, da bi poskušali dobiti Stvari v četrtek 131 00:06:01,100 --> 00:06:03,960 saj, kot boste kmalu odkrili, za boljše ali slabše, večina 132 00:06:03,960 --> 00:06:07,820 vse, kar je v svetu programske opreme konča traja veliko dlje, kot ste predvideli. 133 00:06:07,820 --> 00:06:10,620 Torej je neke razmisli priložnost za pomoč 134 00:06:10,620 --> 00:06:13,880 sami ciljno četrtek, ampak vseeno zadovoljen, da, da, 135 00:06:13,880 --> 00:06:14,950 vse, kar je posledica petek. 136 00:06:14,950 --> 00:06:17,590 In če jih predloži na Četrtek, to je čudovito. 137 00:06:17,590 --> 00:06:21,020 Tukaj ni bonus točke ali ekstra kredit za izpolnitev tega roka. 138 00:06:21,020 --> 00:06:23,250 To je pomenilo, da je samo bergla. 139 00:06:23,250 --> 00:06:25,810 >> In uradne ure, tako tukaj in v New Haven, 140 00:06:25,810 --> 00:06:28,840 osebno, če bi želeli sestane s katero koli od naših tečajev 141 00:06:28,840 --> 00:06:31,060 poučevanje štipendistom in CAS za pomoč. 142 00:06:31,060 --> 00:06:31,640 >> V redu. 143 00:06:31,640 --> 00:06:33,110 Torej sedaj, naredimo to bolj realna. 144 00:06:33,110 --> 00:06:35,470 In za trenutek, da se dogaja, da začnete da bi dobili malo bolj starinski, vendar zelo 145 00:06:35,470 --> 00:06:37,310 hitro v petek in Naslednji teden bomo 146 00:06:37,310 --> 00:06:41,230 sposobni narediti veliko več kot smo lahko doslej v nič. 147 00:06:41,230 --> 00:06:44,350 Zato smo uvedli kodeks zadnji teden, čeprav pictoral. 148 00:06:44,350 --> 00:06:45,620 Bilo kosov sestavljanke. 149 00:06:45,620 --> 00:06:48,800 In smo formalizirali, da je nekaj, kar se imenuje izvorna koda, 150 00:06:48,800 --> 00:06:50,330 vendar bi si izgledal? 151 00:06:50,330 --> 00:06:52,550 No, je bilo videti malo kaj takega. 152 00:06:52,550 --> 00:06:55,410 In v bistvu samo na vrsto draži, kjer lahko gremo s tem. 153 00:06:55,410 --> 00:06:57,800 Grem, da gredo naprej in odpreti okno tukaj, 154 00:06:57,800 --> 00:06:59,810 in sem šele tekoč, da izberejo nove datoteke. 155 00:06:59,810 --> 00:07:03,200 In bom, da shranite to datoteko nekaj takega kot zdravo dot c. 156 00:07:03,200 --> 00:07:05,700 Več o tej izbiri besede v samo trenutek. 157 00:07:05,700 --> 00:07:08,630 In to je, kako bi nekdo go o pisanju programa. 158 00:07:08,630 --> 00:07:13,990 Vključi Standard I / O dot h, int glavno nična in odprite kodrasti brace, blizu 159 00:07:13,990 --> 00:07:19,430 kodrasti naramnicami, printf zdravo vejico svet, poševnica nazaj n, podpičje, Save, storjeno. 160 00:07:19,430 --> 00:07:19,930 V REDU. 161 00:07:19,930 --> 00:07:21,670 Sem napisal moj prvi Program, ampak to se dogaja 162 00:07:21,670 --> 00:07:23,878 da je neverjetno underwhelmed ker ko sem dejansko 163 00:07:23,878 --> 00:07:27,352 zagnati ta program, seveda, tako da najprej zapišejo, da pozdravi, 164 00:07:27,352 --> 00:07:30,310 in potem dot poševnica zdravo, in bomo iti skozi to veliko podrobneje 165 00:07:30,310 --> 00:07:31,730 v trenutku, da je vse, kar počne. 166 00:07:31,730 --> 00:07:33,270 Ne pop odprta vsa okna. 167 00:07:33,270 --> 00:07:35,070 To ne naredi ničesar posebej fancy. 168 00:07:35,070 --> 00:07:38,830 Vse to pa je tisto, kar mi je povedal, da narediti, ampak kako smo prišli do tega? 169 00:07:38,830 --> 00:07:40,560 In kako graditi na tem? 170 00:07:40,560 --> 00:07:43,430 No, da predstavim nekaj različni koncepti tukaj. 171 00:07:43,430 --> 00:07:47,170 >> Torej ena, smo tik pred začetkom uporabljate program, imenovan prevajalnik. 172 00:07:47,170 --> 00:07:51,470 Obstaja prevajalnik za Mac OS, Windows, Linux, poljubno število operacijskih sistemov, 173 00:07:51,470 --> 00:07:54,540 in bomo kmalu vam predstavil okolje, da bomo uporabljali, 174 00:07:54,540 --> 00:07:57,410 ampak prevajalnik je samo splošno Izraz za kos opreme 175 00:07:57,410 --> 00:08:01,940 ki traja izvorno kodo in proizvaja objektno kodo iz njega. 176 00:08:01,940 --> 00:08:03,940 Z drugimi besedami, če vas imajo kot vhodni vaš vir 177 00:08:03,940 --> 00:08:08,250 kode, nekaj podobnega, kar sem tipkal, na koncu proizvaja objektno kodo. 178 00:08:08,250 --> 00:08:11,780 In objekt koda je res samo fancy način rekel realizacij 179 00:08:11,780 --> 00:08:12,926 nič in ena je. 180 00:08:12,926 --> 00:08:14,800 Z drugimi besedami, vir koda, čeprav je 181 00:08:14,800 --> 00:08:17,240 bo videti malo Arcane, in malo manj prijazen 182 00:08:17,240 --> 00:08:19,590 kot Scratch na prvi pogled, to je vsaj nekaj 183 00:08:19,590 --> 00:08:21,120 da smo ljudje razumeli. 184 00:08:21,120 --> 00:08:24,360 To nekako izgleda in zveni kot Angleščina čeprav je zelo kratka. 185 00:08:24,360 --> 00:08:28,040 Ker je programiranje v nič in ena je, saj so imeli naši predniki, da ne, 186 00:08:28,040 --> 00:08:30,920 Pred nekaj leti, ni bil še posebej zabavno izziv. 187 00:08:30,920 --> 00:08:33,710 In vendar, to je tisto, kar računalnik še vedno razume. 188 00:08:33,710 --> 00:08:37,010 Torej nam prevajalnik dobi od izvorna koda na objektno kodo. 189 00:08:37,010 --> 00:08:39,860 To je kot da bi odprli datoteko z prevajalnik, in ko jo boste shranili, 190 00:08:39,860 --> 00:08:41,419 dobiš tiste ničle in enic. 191 00:08:41,419 --> 00:08:43,419 Tako, da bomo videli, kako to storiti da v samo trenutek. 192 00:08:43,419 --> 00:08:47,400 >> Ampak kaj je zdaj poskušajo zagotavljajo Most med zadnjim tednom in to, 193 00:08:47,400 --> 00:08:50,660 tako da celo kot smo dobili obesil na stvari, kot zavite oklepaje, 194 00:08:50,660 --> 00:08:54,100 in podpičja in oklepaji in vsi ti intelektualno zanimiva 195 00:08:54,100 --> 00:08:57,620 vidiki programiranja, ki je zelo Razumljivo potovanje ljudi gor že na začetku, 196 00:08:57,620 --> 00:09:00,930 Zavedam se, da vse ideje danes, so enake kot zadnja. 197 00:09:00,930 --> 00:09:03,975 Torej lani smo videli ta primer tukaj, Program Hello World. 198 00:09:03,975 --> 00:09:07,500 No, od danes naprej, če želimo za izvajanje tega istega programa, 199 00:09:07,500 --> 00:09:10,800 to se dogaja pogledati malo kaj takega. 200 00:09:10,800 --> 00:09:14,040 In bomo pojasniti, preden dolgo kakšni int, in glavni, in neveljavne, in vsi, ki 201 00:09:14,040 --> 00:09:18,770 je, ampak vsaj jaz vidim tukaj že poznajo Hello World. 202 00:09:18,770 --> 00:09:20,860 >> Medtem, stvari, kot so funkcija, pozdravi, 203 00:09:20,860 --> 00:09:23,570 je zelo preprosto dogaja, da se zelo preprosta izjava, kot je ta. 204 00:09:23,570 --> 00:09:26,930 Printf zdravo svet, z nekaterimi citira, s poševnico nazaj, 205 00:09:26,930 --> 00:09:29,780 s podpičjem, vendar več o tem, da pridejo. 206 00:09:29,780 --> 00:09:34,066 Zanke, medtem, to je zanka, da Seveda, pozdravi svet za večno, 207 00:09:34,066 --> 00:09:36,690 in to se dogaja pogledati malo bolj čudna kot v zadnji, 208 00:09:36,690 --> 00:09:39,530 ampak če rečem kaj podobno, pri čemer velja, da 209 00:09:39,530 --> 00:09:44,050 lahko nato natisnete Zdravo svet znova in znova in znova in znova. 210 00:09:44,050 --> 00:09:46,660 In potem, kot si lahko nekako od začnejo tu sklepati, 211 00:09:46,660 --> 00:09:49,070 ta konvencija uporabe zaviti oklepaji je nekako 212 00:09:49,070 --> 00:09:52,050 podobnega posvajanja zamaknjen vrstica kode tam. 213 00:09:52,050 --> 00:09:55,840 Printf vrstica kode podobno kot rumena puzzle kos tam zgoraj. 214 00:09:55,840 --> 00:09:58,740 Torej ne bomo reči večno, bomo rekli, čeprav je res, 215 00:09:58,740 --> 00:10:01,020 ampak bomo videli, zakaj je v samo nekaj. 216 00:10:01,020 --> 00:10:04,210 >> Medtem, če imamo zanko tako, kjer si ponovite nekaj končna 217 00:10:04,210 --> 00:10:07,730 število krat, je to eno preveč je bo trajalo malce privajanja 218 00:10:07,730 --> 00:10:12,820 da, vendar je reči za int i dobi nič, sem manj kot 10, i ++, 219 00:10:12,820 --> 00:10:14,056 in nato printf znova. 220 00:10:14,056 --> 00:10:15,430 Ampak tam se dogaja, da se vzorci. 221 00:10:15,430 --> 00:10:18,434 In za tiste, ki ste seznanjeni z AP računalništvo in informatiko, ali Java, 222 00:10:18,434 --> 00:10:21,100 ali poljubno število drugih jezikih skoraj vse od teh konstruktov 223 00:10:21,100 --> 00:10:23,820 Doslej je treba iskati predvsem seznanjeni. 224 00:10:23,820 --> 00:10:24,680 >> Torej spremenljiva. 225 00:10:24,680 --> 00:10:29,270 Torej, tukaj je preprost Scratch odlomek, ki nastavi spremenljivko števec na nič, 226 00:10:29,270 --> 00:10:33,150 in potem vedno pravi števec, in potem spremeni števec po enega. 227 00:10:33,150 --> 00:10:37,030 Tako da se začne z ničlo, in nato en, dva, tri. 228 00:10:37,030 --> 00:10:42,560 No, kako bi lahko uvedla, da v ta novi jezik malo podobno? 229 00:10:42,560 --> 00:10:45,460 Int števec enak nič, čeprav je res, kar 230 00:10:45,460 --> 00:10:48,100 je, da je ista ideja od prej delaš nekaj za večno, 231 00:10:48,100 --> 00:10:49,530 in sem le, da bo printf. 232 00:10:49,530 --> 00:10:53,310 In zdaj je že malo čudno, odstotkov i, ampak bolj o tem, da pridejo, 233 00:10:53,310 --> 00:10:55,140 ampak te ideje so popolnoma enake. 234 00:10:55,140 --> 00:10:58,820 Pravkar smo zdaj držijo skladnja, da je računalnik 235 00:10:58,820 --> 00:11:00,010 dogaja, da zahtevajo od nas. 236 00:11:00,010 --> 00:11:04,620 >> Logični izraz, nekaj podobnega sx manj kot y, ali x manjša od y, 237 00:11:04,620 --> 00:11:06,354 in je y manj kot z. 238 00:11:06,354 --> 00:11:09,270 To se dogaja, da si nekaj malega kot je ta, z oklepaji le 239 00:11:09,270 --> 00:11:13,020 tako kot v matematiki za dober ukrep, da samo zagotovijo, da vrstni red operacij 240 00:11:13,020 --> 00:11:14,750 je, kot želimo. 241 00:11:14,750 --> 00:11:15,600 In zdaj, razmere. 242 00:11:15,600 --> 00:11:21,220 Torej, če x manjša od y, recimo x manjša kot y, drugega, če je x večji od y, 243 00:11:21,220 --> 00:11:26,020 reči x je večja od y, drugače logično, mora x je enak y. 244 00:11:26,020 --> 00:11:28,710 Tako lahko izvajajo nekaj podobnega kot je ta v nič, 245 00:11:28,710 --> 00:11:31,230 ali pa morda izvajati je v tem sintakse. 246 00:11:31,230 --> 00:11:35,090 In spet so zaviti oklepaji so nekako nam daje enako obliko kot sestavljanke 247 00:11:35,090 --> 00:11:40,750 kosih, toda sintaksa, zdaj, je morda začenjajo slediti nekaj vzorcev. 248 00:11:40,750 --> 00:11:42,910 >> Torej, kaj nam to daje tukaj? 249 00:11:42,910 --> 00:11:45,260 Tako da smo takrat v našem glavnem programu. 250 00:11:45,260 --> 00:11:47,930 Poglejmo resnici, zdaj, nekaj storiti z njim. 251 00:11:47,930 --> 00:11:50,660 Torej, v tem zelo prvi linija vidimo ostro vključujejo, 252 00:11:50,660 --> 00:11:53,160 Standard I / O, pika h, in potem nekaj čudnega kota 253 00:11:53,160 --> 00:11:57,330 konzole spodaj, da. int glavno nična, nato pa printf zdravo svet. 254 00:11:57,330 --> 00:11:58,200 Torej, vzemite korak. 255 00:11:58,200 --> 00:12:02,440 Nekdo, ki še nikoli ni programiran pred, vsaj pojasni enega od teh vrstic. 256 00:12:02,440 --> 00:12:04,490 Uporaba morda nekaj žargonu zadnjem tednu. 257 00:12:04,490 --> 00:12:06,942 Kaj je printf, na primer? 258 00:12:06,942 --> 00:12:07,442 Ja. 259 00:12:07,442 --> 00:12:08,410 >> OBČINSTVO: [neslišno] 260 00:12:08,410 --> 00:12:08,610 >> DAVID J. Malan: Ja. 261 00:12:08,610 --> 00:12:11,380 To je funkcija, ali izjavo, od terminologije prejšnji teden. 262 00:12:11,380 --> 00:12:13,470 In to je ukrep da nekaj počne. 263 00:12:13,470 --> 00:12:15,855 Zdaj to funkcijo, ali ta izjava, ali 264 00:12:15,855 --> 00:12:17,550 se zdi, da bo nekakšen vhod? 265 00:12:17,550 --> 00:12:20,080 266 00:12:20,080 --> 00:12:24,380 In v kakšnem smislu to počne Zdi se, da bo vhod, če je temu tako? 267 00:12:24,380 --> 00:12:26,180 Vhod, kaj mislim s tem? 268 00:12:26,180 --> 00:12:26,720 Ja. 269 00:12:26,720 --> 00:12:27,595 >> OBČINSTVO: [neslišno] 270 00:12:27,595 --> 00:12:30,565 271 00:12:30,565 --> 00:12:31,440 DAVID J. Malan: Ja. 272 00:12:31,440 --> 00:12:34,890 Torej Scratch ven nekaj kosov sestavljanke kjer ga lahko parametrize. 273 00:12:34,890 --> 00:12:37,980 Lahko povem, ponovitev blokirati kolikokrat ponavljati, 274 00:12:37,980 --> 00:12:40,320 tako da je bil vnos vrste, in tako kot Scratch 275 00:12:40,320 --> 00:12:43,060 imel malo belega ogrado za številko, ki bi jih vpišete v, 276 00:12:43,060 --> 00:12:45,810 to bomo uporabili v ta Besedilo svetu oklepaje 277 00:12:45,810 --> 00:12:49,910 da nam to krožno obliko v katero bomo lahko priključite svoj vhod. 278 00:12:49,910 --> 00:12:53,180 Konec koncev, deset let nazaj ko je ta jezik, ki se imenuje C, 279 00:12:53,180 --> 00:12:55,950 je izumil nihče pričakovati, da je eden od nas, 280 00:12:55,950 --> 00:12:59,420 ti nekaj let kasneje, bi bili želite funkcijo, ki pravi, zdravo. 281 00:12:59,420 --> 00:12:59,920 Prav? 282 00:12:59,920 --> 00:13:02,880 To bi bilo lepo, če bi bilo puzzle kos, ali ključne besede, 283 00:13:02,880 --> 00:13:05,502 ki se imenuje zdravo, da dobesedno samo pozdravi. 284 00:13:05,502 --> 00:13:06,460 Vendar ne potrebujemo tega. 285 00:13:06,460 --> 00:13:09,320 Lahko imamo nekaj precej nižje raven, kot generično tisk 286 00:13:09,320 --> 00:13:12,760 ukaz, da ima vložek, in natisne karkoli hočemo. 287 00:13:12,760 --> 00:13:14,960 Tako obvestilo zdaj vzorec ki se bo začela pojavljati. 288 00:13:14,960 --> 00:13:19,310 Odprte paren, blizu paren je očitno zajema vhod, 289 00:13:19,310 --> 00:13:21,770 in potem vidim dvojno navaja na obeh koncih. 290 00:13:21,770 --> 00:13:25,110 Še vedno je čudno poševnica nazaj n, vendar upam, da zdaj 291 00:13:25,110 --> 00:13:29,900 lahko začnete vsaj to, da vizualizirati printf je ob v neki obliki vhoda. 292 00:13:29,900 --> 00:13:31,850 Ni tako prijazen, kot Scratch, ampak to je samo 293 00:13:31,850 --> 00:13:34,920 všeč, ko je priključen v neki vrednosti tam. 294 00:13:34,920 --> 00:13:38,306 >> Vse je v redu, zdaj pa je dejansko nekaj narediti s tem. 295 00:13:38,306 --> 00:13:40,930 Torej, nekateri od vas morda poznate iz ima pred nakupovali razred, 296 00:13:40,930 --> 00:13:42,638 klepetal s prijatelji, da že vrsto let 297 00:13:42,638 --> 00:13:44,590 smo uporabili nekaj imenovano CS50 aparata. 298 00:13:44,590 --> 00:13:49,160 To je izraz, ki opisuje tehnologijo imenovani virtualni stroj, ki 299 00:13:49,160 --> 00:13:51,870 je kos programske opreme, da je vaš predhodniki bi prenesete off 300 00:13:51,870 --> 00:13:53,360 Spletna stran predmeta je brezplačno. 301 00:13:53,360 --> 00:13:56,550 Prav tako bi prenesete brezplačno kos programske opreme se imenuje Hypervisor, 302 00:13:56,550 --> 00:14:00,590 nekaj, kar se imenuje, kot so VMware, ali VirtualBox ali poljubno število 303 00:14:00,590 --> 00:14:04,450 drugih orodij, in o njihovem Mac ali PC ali karkoli računalnik so imeli lani 304 00:14:04,450 --> 00:14:06,620 in v preteklih letih, so bi dvakrat kliknite na ikono 305 00:14:06,620 --> 00:14:08,860 zagnati to programsko opremo imenuje Hypervisor. 306 00:14:08,860 --> 00:14:12,220 In potem znotraj tega programa bi jih odpreti CS50 aparata. 307 00:14:12,220 --> 00:14:14,710 In učinek je bil, da ali predhodnica tvoje 308 00:14:14,710 --> 00:14:17,780 je bil nameščen operacijski sistem Mac OS ali Windows, on ali ona potem 309 00:14:17,780 --> 00:14:22,910 pozneje je imel novo okno na njihovih Zaslon teče okolje CS50 je. 310 00:14:22,910 --> 00:14:27,370 Torej virtualni stroj vam omogoča poganjanje enega operacijskega sistema znotraj drugega, 311 00:14:27,370 --> 00:14:28,785 in to je točno to, kar smo naredili. 312 00:14:28,785 --> 00:14:31,410 Skozi večino seveda uporabljate operacijski sistem, imenovan 313 00:14:31,410 --> 00:14:34,070 Linux, posebej Ubuntu Linux, in to 314 00:14:34,070 --> 00:14:37,590 je zelo lep način, v preteklih letih z pazite, da se vsi v teku 315 00:14:37,590 --> 00:14:38,840 ravnokar isto okolje. 316 00:14:38,840 --> 00:14:41,339 In jih lahko uporabite kakršnokoli računalnik, ki si dejansko želijo. 317 00:14:41,339 --> 00:14:43,930 Med slabosti, čeprav, bilo je bilo kot dva gigabajta 318 00:14:43,930 --> 00:14:45,480 prenesti to stvar. 319 00:14:45,480 --> 00:14:50,310 To ni nujno, da deluje super tudi na ljudje, katerih računalniki, da morda le 320 00:14:50,310 --> 00:14:54,570 imeli koncert ali tako RAM, ali ne preveč GHz s hitrostjo procesorja, 321 00:14:54,570 --> 00:14:56,750 in tako v letošnjem letu, za tega in drugih razlogov, 322 00:14:56,750 --> 00:14:59,140 imamo že prehajamo to okolje. 323 00:14:59,140 --> 00:15:03,730 Tako imenovani CS50 IDE, ki je na osnovi odprtokodne programske opreme, 324 00:15:03,730 --> 00:15:07,380 in podprta platforma da podjetje imenovano Cloud9 325 00:15:07,380 --> 00:15:11,110 podpira v Evropi, da nam omogoča, da imajo v bistvu 326 00:15:11,110 --> 00:15:15,770 da točno isto okolje kot v preteklih letih, vendar v tako imenovanem oblaka. 327 00:15:15,770 --> 00:15:17,532 >> Torej, kaj je oblak? 328 00:15:17,532 --> 00:15:20,480 Verjetno ste že kliknili njegova ikona na vašem Mac ali PC. 329 00:15:20,480 --> 00:15:22,210 Kaj je oblak? 330 00:15:22,210 --> 00:15:22,709 Ja? 331 00:15:22,709 --> 00:15:25,880 332 00:15:25,880 --> 00:15:26,780 Malo glasneje. 333 00:15:26,780 --> 00:15:30,510 334 00:15:30,510 --> 00:15:31,010 Ja. 335 00:15:31,010 --> 00:15:33,770 To je samo kup računalnikov drugod, ki podatke shranjujejo in tek 336 00:15:33,770 --> 00:15:34,880 Programska oprema in podobno. 337 00:15:34,880 --> 00:15:39,390 Torej, to je res samo na besedo de jure opisovanja [? najemno?] 338 00:15:39,390 --> 00:15:40,930 računalniki, ki živijo drugje. 339 00:15:40,930 --> 00:15:42,810 Da vas, sami, Ni nujno, da lastnik. 340 00:15:42,810 --> 00:15:45,256 Torej, ko vaši podatki, ali pa si programi, so v oblaku, 341 00:15:45,256 --> 00:15:47,630 to samo pomeni, da je na nekoga drugega računalniki drugod, 342 00:15:47,630 --> 00:15:50,510 in ne, najverjetneje na vaš fizična laptop ali desktop. 343 00:15:50,510 --> 00:15:52,990 In tako, da je tisto, kar CS50 IDE zdaj. 344 00:15:52,990 --> 00:15:55,670 >> Odslej boste na neka URL, ki vam bo predstavil 345 00:15:55,670 --> 00:16:00,090 da, v problemu nastavite 1, kasneje pa je to teden, da se bo potem, ko se prijavite, 346 00:16:00,090 --> 00:16:01,480 vam to okolje. 347 00:16:01,480 --> 00:16:03,896 In podobno kot Scratch imela nekaj različnih plošč, ki sodelujejo, 348 00:16:03,896 --> 00:16:06,030 tako da ne CS50 je IDE imajo točno to. 349 00:16:06,030 --> 00:16:09,480 Na zgornjem levem strani tukaj, ste bomo videli znane brskalnik datotek. 350 00:16:09,480 --> 00:16:11,930 Torej, kateri od datotek, ki jih dal v tem okolju 351 00:16:11,930 --> 00:16:13,346 so le, da bo treba tam navedene. 352 00:16:13,346 --> 00:16:14,350 Datoteke in mape. 353 00:16:14,350 --> 00:16:16,790 Na vrhu tukaj, boste videli mesto 354 00:16:16,790 --> 00:16:18,420 kjer lahko dejansko napisati svojo kodo. 355 00:16:18,420 --> 00:16:21,860 Sprva v C, kasneje pa v Izraz v PHP in JavaScript, 356 00:16:21,860 --> 00:16:24,739 in, morda za končno projekti, Ruby ali Java ali Python 357 00:16:24,739 --> 00:16:27,280 ali poljubno število jezikov, so podprt v tem okolju. 358 00:16:27,280 --> 00:16:30,130 To sploh ni vezano posebej CS50. 359 00:16:30,130 --> 00:16:33,390 >> In potem v spodnjem kotu tukaj, še posebej za tiste, ki bolj udobno, 360 00:16:33,390 --> 00:16:35,590 imate kaj imenujemo okno terminal. 361 00:16:35,590 --> 00:16:38,770 In to okno terminal omogoča ste izvršiti ukaza, da vas 362 00:16:38,770 --> 00:16:40,860 želijo v tem okolju oblaka. 363 00:16:40,860 --> 00:16:42,860 To vam omogoča, da namestite vsaka dodatna oprema 364 00:16:42,860 --> 00:16:46,810 da hočeš, ker ste tako imenovano koren ali administratorske pravice. 365 00:16:46,810 --> 00:16:49,930 Torej, z drugimi besedami, čeprav je to je končno gostuje v oblaku, 366 00:16:49,930 --> 00:16:52,400 in čeprav imamo jo poenostaviti do neke mere 367 00:16:52,400 --> 00:16:57,110 privzeto dobesedno uvaja, hvala za Dan Armendariz in Dino, 368 00:16:57,110 --> 00:17:01,070 in Dan Bradley o ekipi CS50 je obdobje mimo mnogih mesecih, manj udobna 369 00:17:01,070 --> 00:17:05,140 Način, ki skriva veliko od sprva zmedeno motenj. 370 00:17:05,140 --> 00:17:10,119 Vse, kar obstaja, da predstavljata tipično računalniški sistem 371 00:17:10,119 --> 00:17:12,319 da lahko uporabite v realnem svetu. 372 00:17:12,319 --> 00:17:15,640 >> Torej, kaj vse to pomeni, in kaj lahko dejansko storiti z njim? 373 00:17:15,640 --> 00:17:19,124 Oglejmo dejansko pokukati na program. 374 00:17:19,124 --> 00:17:21,290 Torej bom odpirajo Dejanska okolje tu, 375 00:17:21,290 --> 00:17:23,894 ki je samo naša Chrome Brskalnik, ki bi lahko Firefox, 376 00:17:23,894 --> 00:17:26,640 bi lahko Internet Explorer, ali kakšen drug brskalnik kot dobro. 377 00:17:26,640 --> 00:17:28,400 To je v celoti pregledani tu za trenutek. 378 00:17:28,400 --> 00:17:31,580 In želim, da dejansko draži narazen, kaj je ta program. 379 00:17:31,580 --> 00:17:36,170 Torej, kaj si oglejte, s povečanjem up vrh, na kaj sem storil, in kako sem prišel sem. 380 00:17:36,170 --> 00:17:38,315 Torej, tukaj je tisti, točen Isti vrstic kode. 381 00:17:38,315 --> 00:17:40,440 Torej je ta izjava, kot ste že omenili. 382 00:17:40,440 --> 00:17:42,580 Funkcija, ki pravi, da zdravo. 383 00:17:42,580 --> 00:17:45,870 Zaviti naramnice, na linija štiri in linija šest, 384 00:17:45,870 --> 00:17:49,290 predvidoma vrsta kuverti da je linija, da jo povežemo 385 00:17:49,290 --> 00:17:50,890 z bistvom mojega programa. 386 00:17:50,890 --> 00:17:54,890 Torej res, ta ključna beseda glavna, da je tam gor na spletu tri, 387 00:17:54,890 --> 00:17:59,450 lahko si misliš, da kot enakovreden da ko zelena zastava kliknili, 388 00:17:59,450 --> 00:18:01,080 blok v nič. 389 00:18:01,080 --> 00:18:05,280 Tako, da je vse, kar imamo tukaj, je, ko zelena zastava kliknili, tiskanje, ali reči, 390 00:18:05,280 --> 00:18:06,700 Pozdravljen, svet. 391 00:18:06,700 --> 00:18:11,210 >> Vendar pa si ugibati, zdaj, na kaj to prvo, bolj starinski linija, je. 392 00:18:11,210 --> 00:18:15,100 Sharp vključujejo, odprta pod kotom nosilec, Standard I / O dot h, 393 00:18:15,100 --> 00:18:17,320 zaprite nagnjen nosilec. 394 00:18:17,320 --> 00:18:19,850 Kaj je to morda počne, še posebej, če ste programirani 395 00:18:19,850 --> 00:18:21,390 preden se je v nekem drugem jeziku. 396 00:18:21,390 --> 00:18:21,890 Ja? 397 00:18:21,890 --> 00:18:22,765 >> OBČINSTVO: [neslišno] 398 00:18:22,765 --> 00:18:25,095 399 00:18:25,095 --> 00:18:25,970 DAVID J. Malan: Ja. 400 00:18:25,970 --> 00:18:26,470 Točno tako. 401 00:18:26,470 --> 00:18:29,455 Torej, to vam daje dostop do knjižnica, tako rekoč, funkcij. 402 00:18:29,455 --> 00:18:31,830 In knjižnico funkcij je funkcije, da je nekdo drug 403 00:18:31,830 --> 00:18:34,406 zapisal, bodisi pred kratkim ali dolgo nazaj, tako da boste 404 00:18:34,406 --> 00:18:35,780 ne bi bilo treba znova odkrivati. 405 00:18:35,780 --> 00:18:39,020 Na primer, ne bomo morali vedeti, v letu 2015, 406 00:18:39,020 --> 00:18:42,280 kako napisati kodo, ki postavlja znak na mojem zaslonu. 407 00:18:42,280 --> 00:18:44,820 Je nekdo mislil, da ven s funkcijo printf 408 00:18:44,820 --> 00:18:47,280 tako da sem lahko nekako abstraktno proč od tega, ali plast 409 00:18:47,280 --> 00:18:49,350 na vrhu njegovega ali njenega kodo, in zdaj vzemite 410 00:18:49,350 --> 00:18:52,760 samoumevno, da vsak program pišem lahko natisnete nekaj na zaslonu. 411 00:18:52,760 --> 00:18:58,150 Torej je to prva vrstica tam v enem koraku vključuje tako imenovano header datoteko 412 00:18:58,150 --> 00:18:59,980 za standardno knjižnico. 413 00:18:59,980 --> 00:19:02,630 Torej vidite, jezik v ki smo zdaj delajo 414 00:19:02,630 --> 00:19:05,010 še eno standardno knjižnico z veliko funkcijami. 415 00:19:05,010 --> 00:19:07,240 Printf je eden izmed njih, in da je prva vrstica kode 416 00:19:07,240 --> 00:19:10,040 pomeni mi omogoči dostop do te funkcije, tako da sem 417 00:19:10,040 --> 00:19:12,300 ne bi bilo treba znova to kolo. 418 00:19:12,300 --> 00:19:15,940 >> Zdaj pa pojdimo na spodnjem okencu in naredil točno to, kar sem storil prej. 419 00:19:15,940 --> 00:19:18,520 Trenutek nazaj, ko sem bil whizzing skozi kodo, 420 00:19:18,520 --> 00:19:24,540 ga vnesete ven prvič, Sem zelo hitro tipkal, da zdravo. 421 00:19:24,540 --> 00:19:28,250 Kaj je bilo, da je vse o bi si ugibati? 422 00:19:28,250 --> 00:19:29,150 Kaj sem delal? 423 00:19:29,150 --> 00:19:29,649 Ja? 424 00:19:29,649 --> 00:19:31,810 425 00:19:31,810 --> 00:19:32,310 Pozabi. 426 00:19:32,310 --> 00:19:32,970 To je v redu. 427 00:19:32,970 --> 00:19:33,492 Ja. 428 00:19:33,492 --> 00:19:34,450 OBČINSTVO: ga Prevajanje. 429 00:19:34,450 --> 00:19:34,700 DAVID J. Malan: Ja. 430 00:19:34,700 --> 00:19:35,770 To je bil samo pripravo. 431 00:19:35,770 --> 00:19:36,270 Prav? 432 00:19:36,270 --> 00:19:39,280 Četudi je to popolnoma neznan za vas, to je lepa angleščino podobnega. 433 00:19:39,280 --> 00:19:41,155 To zagotovo ni ničle in tisti, tako da sem še vedno 434 00:19:41,155 --> 00:19:44,220 morali teči skozi, da je tako imenovani Program, prevajalnik, ki se dogaja 435 00:19:44,220 --> 00:19:46,060 da ga vzamete kot vhod in izdelati izhod. 436 00:19:46,060 --> 00:19:48,270 In vsaj za zdaj, v to okolje Linux, 437 00:19:48,270 --> 00:19:51,030 vendar se to ni predpogoj, to je samo, ko bomo začeli, 438 00:19:51,030 --> 00:19:53,960 vam na splošno interakcijo z računalniški sistemi, kot je ta 439 00:19:53,960 --> 00:19:55,770 s tako imenovanim ukazno vrstico. 440 00:19:55,770 --> 00:19:57,790 Torej, z utripajočim hitro in vaša tipkovnica, 441 00:19:57,790 --> 00:20:01,630 in ne toliko miško, in ne toliko okna in ikone in meniji, 442 00:20:01,630 --> 00:20:02,980 raje vse tekstualni. 443 00:20:02,980 --> 00:20:06,180 In čeprav se to zdi na prvi pogled, morda, kot korak nazaj, 444 00:20:06,180 --> 00:20:08,437 je dejansko veliko bolj močan in izrazno pot 445 00:20:08,437 --> 00:20:10,270 za krmiljenje računalnika predvsem kot vi, 446 00:20:10,270 --> 00:20:12,950 sami, postanejo bolj udobna iz manj. 447 00:20:12,950 --> 00:20:16,790 To se dogaja, da vam omogočajo, da narediti veliko več stvari, kot samo tisto, kar je Microsoft 448 00:20:16,790 --> 00:20:20,390 ali Apple vam omogoča, da z njihov grafični operacijski sistem. 449 00:20:20,390 --> 00:20:23,270 >> Torej, ko sem udaril Enter, zdaj, se nič ne zgodi ta čas 450 00:20:23,270 --> 00:20:25,960 ker očitno Program zdravo je do datuma. 451 00:20:25,960 --> 00:20:28,250 In kakšen je bil ukaz Stekel sem po tem? 452 00:20:28,250 --> 00:20:32,370 Dot poševnica Pozdravljeni, in Hello World. 453 00:20:32,370 --> 00:20:34,350 Zdaj pa naredimo korak nazaj za trenutek. 454 00:20:34,350 --> 00:20:39,510 Izkazalo se je, da zdravo je le poenostavljen način za pripravo programa. 455 00:20:39,510 --> 00:20:41,670 Naj samo uvesti en kos žargonu, 456 00:20:41,670 --> 00:20:43,470 potem pa se odmakne iz nje, ker to ni 457 00:20:43,470 --> 00:20:46,640 vse to zanimivo za današnje namene. 458 00:20:46,640 --> 00:20:51,000 Prevajalnik bomo začeli uporabljati se imenuje Jek, za jezik C. 459 00:20:51,000 --> 00:20:54,280 In to je program, ki je teči šele kot smo to storili na ukazni vrstici tam. 460 00:20:54,280 --> 00:20:56,580 In tako, če želim sestaviti program, ki sem 461 00:20:56,580 --> 00:21:00,790 so napisana v datoteko imenovano zdravo dot c, sem dobesedno samo tip Jek Zdravo c 462 00:21:00,790 --> 00:21:02,100 enter. 463 00:21:02,100 --> 00:21:04,880 >> Hecno je, zaradi zgodovinskih razlogov, 464 00:21:04,880 --> 00:21:07,750 če ne določite ime programa 465 00:21:07,750 --> 00:21:11,690 da želim izhod, če ne bom navedite ime datoteke za tiste ničle 466 00:21:11,690 --> 00:21:14,990 in tisti, zelo čudno Pred Konvencija je bila sprejeta leta 467 00:21:14,990 --> 00:21:17,390 kjer se mu je zdelo nekako dober odgovor takrat 468 00:21:17,390 --> 00:21:21,650 dobro kaj je samo arbitrarno pokličite Prvi program bomo prevedite piko ven. 469 00:21:21,650 --> 00:21:22,900 Prihaja prvič v abecedi. 470 00:21:22,900 --> 00:21:23,920 Ven, to je izhod. 471 00:21:23,920 --> 00:21:26,210 Torej bomo poklical program privzeto pika ven. 472 00:21:26,210 --> 00:21:29,550 In to je v redu, ker če želim zagon programa v tem besedilu, ki temelji 473 00:21:29,550 --> 00:21:33,590 okolje, sem tip dot poševnica pika ven enter. 474 00:21:33,590 --> 00:21:35,250 In bi bilo teči natanko tako, kot prej. 475 00:21:35,250 --> 00:21:36,880 Torej, da vidimo, da je resnično hitro. 476 00:21:36,880 --> 00:21:40,370 >> Torej, če sem šel nazaj na moj izvorna koda na CS50 IDE, 477 00:21:40,370 --> 00:21:47,860 in bom namesto tega to, Jek zdravo posteljica c vnesete obvestilo nič ne zdi, da se zgodi, 478 00:21:47,860 --> 00:21:49,790 ampak skoraj vedno v to okolje Linux, 479 00:21:49,790 --> 00:21:53,310 če nič slabega se zdi, da se zgodi, da pomeni nekaj dobrega se je dejansko zgodilo. 480 00:21:53,310 --> 00:21:56,270 Če ne vidite napake sporočilo, vse je verjetno dobro. 481 00:21:56,270 --> 00:22:01,930 In res, če sem zdaj naredil dot poševnica piko ven začne, sem teči moj isti program. 482 00:22:01,930 --> 00:22:04,610 Še vedno imam program Hello od prej, saj res, to je 483 00:22:04,610 --> 00:22:07,430 bo toliko lepše samo tip bi namesto spominjanja 484 00:22:07,430 --> 00:22:10,240 ti zaklinjanjem za ukazi, ampak poglejmo, kako smo 485 00:22:10,240 --> 00:22:12,890 lahko izboljša na to, vseeno. 486 00:22:12,890 --> 00:22:15,340 >> Torej, to je ukaz prevajanje kode. 487 00:22:15,340 --> 00:22:19,100 To je ukaz za zagon prevedene kode zatem. 488 00:22:19,100 --> 00:22:20,546 Kako lahko določite ime datoteke? 489 00:22:20,546 --> 00:22:22,670 No, kaj je samo uvesti en del žargona. 490 00:22:22,670 --> 00:22:24,461 Ko ste v tem Besedilo temelji na okolje, 491 00:22:24,461 --> 00:22:27,400 boste želeli določiti Stvari imenovani argumenti v ukazni vrstici. 492 00:22:27,400 --> 00:22:31,380 Ki je samo fancy način rekel, druge besede na poziv, da 493 00:22:31,380 --> 00:22:33,860 poteg obnašanje karkoli Program tečete. 494 00:22:33,860 --> 00:22:37,320 Torej, še posebej program sem teče, tako da vtipkate ime Jek, 495 00:22:37,320 --> 00:22:38,504 je program, imenovan Jek. 496 00:22:38,504 --> 00:22:40,920 Torej, to je, ali stara šola ekvivalent dvojnim klikom 497 00:22:40,920 --> 00:22:42,860 Microsoft Word ali icon nekaterih programa. 498 00:22:42,860 --> 00:22:46,360 Jaz sem namesto tega vtipkate njeno ime, vendar v tej različici ukaza, 499 00:22:46,360 --> 00:22:51,334 Potem imam dash Ø prostor Pozdravljeni prostor zdravo pika c. 500 00:22:51,334 --> 00:22:53,500 Torej, tudi če ste nikoli pred igral na tem svetu, 501 00:22:53,500 --> 00:22:58,160 vzemite ugibati, kaj ne pomišljaj o zdravo storiti? 502 00:22:58,160 --> 00:23:00,620 Ali kaj je povedal, Jek storiti? 503 00:23:00,620 --> 00:23:01,386 Ja. 504 00:23:01,386 --> 00:23:02,455 >> OBČINSTVO: [neslišno] 505 00:23:02,455 --> 00:23:03,330 DAVID J. Malan: Ja. 506 00:23:03,330 --> 00:23:08,614 Samo nastavi izhodno datoteko, da bo zdravo namesto bolj prismojen dot ven. 507 00:23:08,614 --> 00:23:09,780 In, seveda, poskusimo to. 508 00:23:09,780 --> 00:23:14,250 Torej, če jaz sedaj narediti, najprej dajmo to narediti, r m zdravo. 509 00:23:14,250 --> 00:23:15,590 To je odstraniti. 510 00:23:15,590 --> 00:23:18,450 In to se dogaja, pravijo ODSTRANI običajna datoteka zdravo, ki 511 00:23:18,450 --> 00:23:22,210 je po nepotrebnem Skrivnosten, vendar samo sredstva želite izbrisati datoteko, 512 00:23:22,210 --> 00:23:23,230 in sem tipa y za YES. 513 00:23:23,230 --> 00:23:27,340 In opazili, če bi pogledal na vrh levo, pa je izginil iz tam gor. 514 00:23:27,340 --> 00:23:32,180 Naj zdaj storiti Jek dash o, in Grem, da gredo naprej in to zdravo, 515 00:23:32,180 --> 00:23:34,890 v vseh kape, zdravo pika c. 516 00:23:34,890 --> 00:23:37,775 Zdaj, če jaz dot poševnica Pozdravljeni, kaj bi lahko pričakovali? 517 00:23:37,775 --> 00:23:41,240 518 00:23:41,240 --> 00:23:42,430 >> Mogoče je zadeva občutljiva. 519 00:23:42,430 --> 00:23:43,070 Mogoče to ni. 520 00:23:43,070 --> 00:23:44,030 Pa poglejmo. 521 00:23:44,030 --> 00:23:45,230 No takšno datoteko ali imenik. 522 00:23:45,230 --> 00:23:47,438 In bomo lahko nekako goljufija, ki jih samo gledaš na zgornjem levem kotu. 523 00:23:47,438 --> 00:23:49,630 Kaj sem seveda shranite program kot? 524 00:23:49,630 --> 00:23:51,070 Vse kape zdravo. 525 00:23:51,070 --> 00:23:53,020 Torej res, da je šlo narediti razliko. 526 00:23:53,020 --> 00:23:54,540 Torej, zdaj zdravo svet se je vrnil. 527 00:23:54,540 --> 00:23:56,969 Zdaj je to vse lepo in dobro, in vsi zelo um-omrtvičenje, 528 00:23:56,969 --> 00:23:59,760 na nekakšno GET obtičali v teh podrobnosti, ampak jih razume 529 00:23:59,760 --> 00:24:00,500 je dobro. 530 00:24:00,500 --> 00:24:02,675 >> Tipkanje ven ti bolj dolge zaklinjanjem 531 00:24:02,675 --> 00:24:05,980 se ne bo posebno zabavno, tako da ljudje na svetu 532 00:24:05,980 --> 00:24:08,260 izumil drug program, Pred nekaj leti, ki se imenuje 533 00:24:08,260 --> 00:24:12,190 narediti, da preprosto vam omogoča, da napišete make, 534 00:24:12,190 --> 00:24:14,530 ime programa želite, in da 535 00:24:14,530 --> 00:24:18,580 je pametno, da se bo to videti v trenutna mapa, aka imenik, 536 00:24:18,580 --> 00:24:21,440 in če imate datoteko imenovano zdravo dot c, 537 00:24:21,440 --> 00:24:25,800 da je datoteka pa bo sestavil za vas v program, imenovan zdravo. 538 00:24:25,800 --> 00:24:29,950 Torej, to je veliko enostavnejši način delaš več Grobni ukaze 539 00:24:29,950 --> 00:24:30,800 da smo storili že prej. 540 00:24:30,800 --> 00:24:34,080 In smo že nastavljen CS50 IDE vedeti 541 00:24:34,080 --> 00:24:38,560 da mora narediti črtkano o in številne druge zastave, ali argumenti ukazne vrstice, 542 00:24:38,560 --> 00:24:40,670 da bomo videli kmalu. 543 00:24:40,670 --> 00:24:43,700 >> Ampak kaj je zdaj dejansko ne nekaj več zanimivo. 544 00:24:43,700 --> 00:24:46,950 Vtipkate ven Hello World vse čas je, ni vse tako prepričljivi. 545 00:24:46,950 --> 00:24:52,280 Zato mi dovolite, pojdi naprej in sprememba ta program in reči, zdravo David. 546 00:24:52,280 --> 00:24:54,120 Zdaj bom šel dol. 547 00:24:54,120 --> 00:24:57,360 Grem, da gredo naprej in to bo zdravo. 548 00:24:57,360 --> 00:25:00,652 In spet zdaj ste videli da se vam prikazuje dlje 549 00:25:00,652 --> 00:25:03,360 zaporedje ukazov, ki je početje, saj smo že nastavljen 550 00:25:03,360 --> 00:25:05,200 je na ta način, vendar smo ni treba skrbeti za zdaj 551 00:25:05,200 --> 00:25:10,735 kaj pa počne drugega, kot da je narediti njihov dot poševnica Pozdravljeni, Hello World. 552 00:25:10,735 --> 00:25:14,969 553 00:25:14,969 --> 00:25:15,510 Kaj je narobe? 554 00:25:15,510 --> 00:25:16,177 Ja. 555 00:25:16,177 --> 00:25:17,370 >> OBČINSTVO: [neslišno] 556 00:25:17,370 --> 00:25:18,203 >> DAVID J. Malan: Da. 557 00:25:18,203 --> 00:25:19,600 Torej, noobie napaka. 558 00:25:19,600 --> 00:25:22,394 Opazil sem, da je to super subtilna, vendar zvezdica tu, v zavihku 559 00:25:22,394 --> 00:25:25,060 samo pomeni, da se ne shranijo, in brskalniki in drugi programi 560 00:25:25,060 --> 00:25:25,930 To storite tako včasih. 561 00:25:25,930 --> 00:25:27,939 Torej nadzor s ali ukaz e bi ga morali rešiti. 562 00:25:27,939 --> 00:25:29,730 Zdaj pa mi daj in ponovno zaženite 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 Desno, tako da je proces, sestavljen iz več korakov. 566 00:25:36,050 --> 00:25:39,400 Nobena od kar je še posebej zapleten, ampak kadarkoli spremenimo datoteko, 567 00:25:39,400 --> 00:25:43,450 moramo spremeniti dobljene ničel in enic, in pika poševnica zdravo. 568 00:25:43,450 --> 00:25:43,950 Vau. 569 00:25:43,950 --> 00:25:46,450 Torej, to je zelo underwhelming da smo pravkar natisne to. 570 00:25:46,450 --> 00:25:48,360 Naredimo stvari malo bolj dinamična, zdaj. 571 00:25:48,360 --> 00:25:52,280 >> Pa se je izkazalo, da je všeč Scratch, C podpira spremenljivke. 572 00:25:52,280 --> 00:25:54,790 In se izkaže, če želite da imajo spremenljivke, ki shranjuje, 573 00:25:54,790 --> 00:25:57,300 ni številka, kot smo običajno storil z Scratch, 574 00:25:57,300 --> 00:26:01,300 ampak kot eno besedo, ali Stavek, ali ime, boste 575 00:26:01,300 --> 00:26:04,837 lahko določite spremenljivko biti tipa niza. 576 00:26:04,837 --> 00:26:06,670 Torej bomo videli več ti vsak trenutek, 577 00:26:06,670 --> 00:26:09,090 vendar se je izkazalo, da je C, in veliko jezikov, kot to, 578 00:26:09,090 --> 00:26:11,240 imajo zelo specifične vrste spremenljivk. 579 00:26:11,240 --> 00:26:13,810 To ni tako kot algebra, kjer dobiš X, Y in Z 580 00:26:13,810 --> 00:26:16,940 in to so samo vedno številke, v programskem jeziku 581 00:26:16,940 --> 00:26:20,030 lahko shranite številke, lahko shranjevanje posameznih znakov, 582 00:26:20,030 --> 00:26:24,619 si lahko shranite cele besede, si lahko shranjevanje cele slike, cele zvočnih datotek, 583 00:26:24,619 --> 00:26:25,160 in podobno. 584 00:26:25,160 --> 00:26:28,362 Zato moramo določiti, kaj vrsta našega spremenljivko. 585 00:26:28,362 --> 00:26:31,570 In po dogovoru bom poklical moj spremenljivi je samo zato, ker je jedrnat, 586 00:26:31,570 --> 00:26:33,510 in s stojala za niz. 587 00:26:33,510 --> 00:26:36,400 >> In potem bom za shranjevanje znotraj te spremenljivke, 588 00:26:36,400 --> 00:26:39,570 samo rad z Scratch ko sem uporabo nastavljeno blok, 589 00:26:39,570 --> 00:26:41,950 Bom uporabite Operater naloga v C, 590 00:26:41,950 --> 00:26:45,290 ki dovolj lepo je enaka podpis, vendar je enačaj to stori. 591 00:26:45,290 --> 00:26:53,220 To je nekaj, kar se premika z desne v levi strani izražanja. 592 00:26:53,220 --> 00:26:57,170 Torej, kaj sem naredil, da bo jasno linija pet, se sem izjavil spremenljivko. 593 00:26:57,170 --> 00:27:01,284 Povedal sem računalnik, daj mi pomnilnik za spremenljivko, imenujemo to je to, 594 00:27:01,284 --> 00:27:03,950 in že vnaprej ve, da grem za dajanje niz v njem. 595 00:27:03,950 --> 00:27:05,950 In niz je le zaporedje znakov. 596 00:27:05,950 --> 00:27:09,190 To je beseda ali stavek ali odstavek, vendar je zaporedje znakov. 597 00:27:09,190 --> 00:27:10,610 To ni številke. 598 00:27:10,610 --> 00:27:13,800 Kaj niz sem bom, da bo dajanje v to spremenljivko? 599 00:27:13,800 --> 00:27:16,185 No, očitno citiram konec citata, "Hannah". 600 00:27:16,185 --> 00:27:17,810 Zdaj opazili vzorec, ki se pojavljajo. 601 00:27:17,810 --> 00:27:19,260 Tam je leva izraz roko. 602 00:27:19,260 --> 00:27:21,810 Tam je prav izraz roko, ločena z enakim predznakom. 603 00:27:21,810 --> 00:27:24,390 In vzemite ugibati, če poznajo kljub temu, 604 00:27:24,390 --> 00:27:27,430 s tem, kar podpičje počne. 605 00:27:27,430 --> 00:27:28,865 Kaj je to verjetno delaš za nas? 606 00:27:28,865 --> 00:27:29,365 Ja? 607 00:27:29,365 --> 00:27:29,840 >> OBČINSTVO: [neslišno] 608 00:27:29,840 --> 00:27:29,980 >> DAVID J. Malan: Ja. 609 00:27:29,980 --> 00:27:31,170 To je samo zaključku linijo. 610 00:27:31,170 --> 00:27:31,669 Prav? 611 00:27:31,669 --> 00:27:34,260 Računalniki želijo biti odkrito povedal, dobesedno, kaj naj naredim. 612 00:27:34,260 --> 00:27:36,343 Tako kot arašidovo maslo in žele primer sendvič, 613 00:27:36,343 --> 00:27:39,360 Če ne določite točno tisto, kar nameravam, 614 00:27:39,360 --> 00:27:42,190 se lahko prepuščeno presoji ali napake. 615 00:27:42,190 --> 00:27:44,890 Podpičje pomeni, to je to za ta ukaz. 616 00:27:44,890 --> 00:27:48,310 To je pa super natančen, in to je zelo lahka stvar pustiti off. 617 00:27:48,310 --> 00:27:52,240 Torej sedaj ta program ne zdi, da se obnaša drugače, dokler I 618 00:27:52,240 --> 00:27:53,500 da bo bolj dinamičen. 619 00:27:53,500 --> 00:27:57,107 Torej, namesto da težko bi moja ime, dovolite mi, da vrednost ograde. 620 00:27:57,107 --> 00:28:00,190 In se izkaže, da je, in vem, da je to od tega, preberite dokumentacijo, 621 00:28:00,190 --> 00:28:04,080 in se uporablja funkcijo za let, ki printf je bil zasnovan tako, da bo dinamično. 622 00:28:04,080 --> 00:28:07,510 Nimate vnaprej vedeti kaj besede, ki jih želite dati v njem. 623 00:28:07,510 --> 00:28:11,290 Lahko namesto tega imajo ograda, kot odstotno s, ki 624 00:28:11,290 --> 00:28:15,500 se dogaja, da povej računalnik, dal niz tukaj. 625 00:28:15,500 --> 00:28:17,740 >> Kateri niz hočemo tam čaka? 626 00:28:17,740 --> 00:28:22,430 Will Izkazalo se je, da je med njimi oklepaje, ki se spomnite, razmejiti 627 00:28:22,430 --> 00:28:28,020 vhod za funkcije, če imate vejico ločen seznam stvari tukaj, 628 00:28:28,020 --> 00:28:31,790 smo dejansko preide v večkratnik vložki za funkcijo. 629 00:28:31,790 --> 00:28:33,901 Torej, samo rad nekaj praske bloki, morda ne 630 00:28:33,901 --> 00:28:36,150 so igrali z njimi vaši projekti ali še sploh, 631 00:28:36,150 --> 00:28:38,250 nekateri Scratch bloki imajo dva vhoda. 632 00:28:38,250 --> 00:28:41,220 Dve beli škatle si lahko vnos številk ali besed v. 633 00:28:41,220 --> 00:28:45,210 Torej, da ne C ima funkcije, kot so printf, ki lahko traja dva vhoda. 634 00:28:45,210 --> 00:28:48,050 In spet, to vejica se jih ločuje. 635 00:28:48,050 --> 00:28:51,070 Torej, v angleščini, še enkrat, tudi če ste nikoli programirano pred, 636 00:28:51,070 --> 00:28:55,320 s tem, da logika printf je funkcija, ima dva vhoda, od katerih je eden 637 00:28:55,320 --> 00:28:58,810 je ograda, kaj bi si upam printf bo naredil s tem vložkom? 638 00:28:58,810 --> 00:29:01,470 639 00:29:01,470 --> 00:29:03,220 To se dogaja, da se pozdravi Hannah, upajmo. 640 00:29:03,220 --> 00:29:05,274 Torej, da to potrebujemo, da ga shranite storiti. 641 00:29:05,274 --> 00:29:06,190 Jaz grem za pomanjšanje. 642 00:29:06,190 --> 00:29:10,701 Jaz bom šel nazaj dol in pravijo, da pozdravi enter. 643 00:29:10,701 --> 00:29:11,200 Oh. 644 00:29:11,200 --> 00:29:14,830 Nekaj ​​je narobe, in dejansko To je precej prepričljivo. 645 00:29:14,830 --> 00:29:18,400 Imam šest vrstic kode in kot 12 vrstic napak. 646 00:29:18,400 --> 00:29:22,120 Torej, se veselim tega. 647 00:29:22,120 --> 00:29:24,260 Torej, kaj se dogaja tukaj? 648 00:29:24,260 --> 00:29:27,370 Torej najboljše pravilo palca tukaj, še posebej, če ste začeli ven, 649 00:29:27,370 --> 00:29:29,370 ne dobijo moti stvari na dnu. 650 00:29:29,370 --> 00:29:31,220 V bistvu sem zelo načrtno samo pomika navzgor 651 00:29:31,220 --> 00:29:33,930 ker je zelo pogosto, je računalnik ni tako svetlo pripomočka. 652 00:29:33,930 --> 00:29:35,054 To se dogaja, da bi dobili zmeden. 653 00:29:35,054 --> 00:29:37,220 Če vidi eno stvar, ki da ne razume, 654 00:29:37,220 --> 00:29:40,030 je morda napaka drugo vrstic kode kot nepravilne, 655 00:29:40,030 --> 00:29:41,649 čeprav je to popolnoma v redu. 656 00:29:41,649 --> 00:29:43,940 Torej si vedno želeli delati od zgoraj navzdol skozi napak. 657 00:29:43,940 --> 00:29:47,850 In sicer to je super Skrivnosten v tem trenutku. 658 00:29:47,850 --> 00:29:50,830 >> Napaka, uporaba neprijavljenega identifikator niz. 659 00:29:50,830 --> 00:29:52,130 Ali mislim standardna? 660 00:29:52,130 --> 00:29:53,720 Ne, mislil sem niz. 661 00:29:53,720 --> 00:29:55,830 In to je gledala, morda je tipkarska napaka. 662 00:29:55,830 --> 00:30:00,570 Nekako podobno, preverjanje črkovanja je z zelo geeky način, vendar razlog tod 663 00:30:00,570 --> 00:30:02,840 in boste to vedeli, samo s prakso, je 664 00:30:02,840 --> 00:30:06,390 da se izkaže, da je niz ne obstaja v C. V bistvu, C 665 00:30:06,390 --> 00:30:08,820 je še posebej stari jezik, in to je zelo nizko raven, 666 00:30:08,820 --> 00:30:11,361 in to ne veliko funkcij da ste morda zrasla 667 00:30:11,361 --> 00:30:14,620 z če imate v resnici, programirano v Java, kot nekateri od vas, 668 00:30:14,620 --> 00:30:16,980 lahko pa ga naučiti novih stvari. 669 00:30:16,980 --> 00:30:20,900 In res, smo storili to CS50, čeprav do konca semestra 670 00:30:20,900 --> 00:30:23,512 vseh teh koles usposabljanja bo so bili ukinjeni, 671 00:30:23,512 --> 00:30:25,220 kaj počnemo v teh prvih nekaj tednov 672 00:30:25,220 --> 00:30:29,830 sprva je imamo tudi ti vključujejo CS50 dot h. 673 00:30:29,830 --> 00:30:31,230 Ki je datoteka glave. 674 00:30:31,230 --> 00:30:32,440 Več o tem v prihodnosti. 675 00:30:32,440 --> 00:30:36,430 >> To je datoteka, ki vsebuje funkcije da smo napisal za vas. 676 00:30:36,430 --> 00:30:39,180 In med temi funkcijami je funkcije za pridobivanje vhod 677 00:30:39,180 --> 00:30:43,520 od uporabnika, kot so strune, in številke in realne številke, in še več. 678 00:30:43,520 --> 00:30:45,550 Vendar ima tudi nekaj bližnjic. 679 00:30:45,550 --> 00:30:48,200 Opredeljuje Boolean kot podatkovni tip. 680 00:30:48,200 --> 00:30:50,340 C nima resnična ali neresnična. 681 00:30:50,340 --> 00:30:53,880 Vendar smo lahko izročiti to pojem true ali false s pomočjo te knjižnice. 682 00:30:53,880 --> 00:30:57,670 In prav tako nima niz zgrajen leta, dokler ne bomo vključiti te vrstice. 683 00:30:57,670 --> 00:31:01,090 Tako da je ta vrstica kode pove prevajalnik, hej, Jek, poglej 684 00:31:01,090 --> 00:31:03,570 V tej datoteki za celoto kup kode, ki CS50 685 00:31:03,570 --> 00:31:06,330 je napisan tako, da vsak, ki uporablja to datoteko 686 00:31:06,330 --> 00:31:09,330 lahko za odobrena lastnosti so jih dodali. 687 00:31:09,330 --> 00:31:11,220 >> Torej, zdaj mi gredo naprej in počistite zaslon, 688 00:31:11,220 --> 00:31:14,178 in če je radoveden Pravim samo nadzor l vsak čas, da počistite zaslon, 689 00:31:14,178 --> 00:31:15,500 ali lahko vnesete jasno. 690 00:31:15,500 --> 00:31:19,220 Jaz sem šele tekoč, da gredo naprej in zdaj Tip da zdravo, in vse je dobro. 691 00:31:19,220 --> 00:31:22,550 Še vedno Skrivnosten izhod, vendar to ni napačna sporočila. 692 00:31:22,550 --> 00:31:28,300 Zdaj, če sem naredil dot poševnica zdravo, in kot prahi, dot slash je ne poznajo najbolj. 693 00:31:28,300 --> 00:31:30,430 To samo pomeni, pika sredstva trenutni imenik. 694 00:31:30,430 --> 00:31:33,120 Torej, če ste že kdaj uporabili DOS, ali Linux ali Unix 695 00:31:33,120 --> 00:31:35,410 ste morda naredili nekaj kot cd dot dot, kjer 696 00:31:35,410 --> 00:31:39,220 dot dot pomeni iti nazaj v čas ali pa pojdite nazaj, ali višje 697 00:31:39,220 --> 00:31:40,370 v vašem imeniku. 698 00:31:40,370 --> 00:31:43,090 Pika pomeni le pogledati v trenutni imenik. 699 00:31:43,090 --> 00:31:45,670 Hočem zdravo, ki je tukaj. 700 00:31:45,670 --> 00:31:47,750 In res, zdaj pa pravi, pozdravi Hannah. 701 00:31:47,750 --> 00:31:51,120 In če sem jo ponovno spremeniti Maria, prevedem 702 00:31:51,120 --> 00:31:55,650 da bi Pozdravljeni, dot poševnica Pozdravljeni, program nenehno spreminja. 703 00:31:55,650 --> 00:31:58,060 >> Ampak to je še vedno Precej neumno programa. 704 00:31:58,060 --> 00:32:00,972 Če želim, da ladja ta program, ali ga dal prijatelju, 705 00:32:00,972 --> 00:32:03,430 ali ga dati Maria ali Hannah za to zadevo, da je v redu. 706 00:32:03,430 --> 00:32:07,300 Lahko ga prilagodite za oba, vendar je nikoli ne bo dinamično. 707 00:32:07,300 --> 00:32:10,870 Tega ne morejo spremeniti, ko je bilo sestavljeno dol v tistih ničel in enic. 708 00:32:10,870 --> 00:32:12,350 Torej, kaj smo naredili nekaj pametnejši? 709 00:32:12,350 --> 00:32:17,100 Kaj pa, če namesto trdega kodiranja v programu ime te osebe, 710 00:32:17,100 --> 00:32:20,890 Kaj pa, če smo le dobili niz na zahtevo? 711 00:32:20,890 --> 00:32:22,430 >> Torej, z drugimi besedami, naj to storijo. 712 00:32:22,430 --> 00:32:24,030 Grem prevesti ta program. 713 00:32:24,030 --> 00:32:25,710 In mi povečate na dnu zdaj. 714 00:32:25,710 --> 00:32:29,920 Naredite zdravo dot poševnica zdravo. 715 00:32:29,920 --> 00:32:31,710 Zdaj se nič ne dogaja. 716 00:32:31,710 --> 00:32:35,860 Lahko dobite hiter prostovoljca da bi se kaj zgodilo? 717 00:32:35,860 --> 00:32:36,360 Pridi gor. 718 00:32:36,360 --> 00:32:37,020 Kako ti je ime? 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 Pridi gor. 722 00:32:39,609 --> 00:32:42,150 Ko ste prišli sem gor, to je bo zelo underwhelming, 723 00:32:42,150 --> 00:32:44,060 ampak to je bolj zanimivo od mene, da ga vnesete. 724 00:32:44,060 --> 00:32:49,007 Če želite, da gredo naprej in vtipkajte ime, sem naredil ta program samo za vas. 725 00:32:49,007 --> 00:32:49,840 Samo vnesite svoje ime. 726 00:32:49,840 --> 00:32:52,380 727 00:32:52,380 --> 00:32:53,900 Enter. 728 00:32:53,900 --> 00:32:54,489 Čudovito. 729 00:32:54,489 --> 00:32:55,780 V redu, hvala. 730 00:32:55,780 --> 00:32:56,708 >> PANCHO: Najlepša hvala. 731 00:32:56,708 --> 00:32:57,636 >> DAVID J. Malan: OK. 732 00:32:57,636 --> 00:32:59,028 >> [Aplavz] 733 00:32:59,028 --> 00:33:00,884 734 00:33:00,884 --> 00:33:01,840 >> To je bilo zelo prijazno. 735 00:33:01,840 --> 00:33:03,145 Izvoli. 736 00:33:03,145 --> 00:33:03,770 Kaj smo storili? 737 00:33:03,770 --> 00:33:05,930 Torej smo končno vsaj je ta program dinamično. 738 00:33:05,930 --> 00:33:08,400 Zdaj je še gotovo ga načrtovanja underwhelming, 739 00:33:08,400 --> 00:33:11,480 ampak imamo končno možnost, Zdaj za pisanje kode vnaprej, veliko 740 00:33:11,480 --> 00:33:13,770 kot avtorji printf, in nato dinamično 741 00:33:13,770 --> 00:33:17,550 prilagodijo temelji na vnosu smo predal, bodisi s programer, 742 00:33:17,550 --> 00:33:20,610 ali s strani človeka, ki je dejansko interakcijo s programom. 743 00:33:20,610 --> 00:33:22,990 Torej Dovolite dejansko sedaj poskusiti storiti nekaj drugih konstruktov 744 00:33:22,990 --> 00:33:26,625 in videli, če ne moremo narediti programov sami bolj prefinjene. 745 00:33:26,625 --> 00:33:29,250 Torej, gremo naprej in namesto pisanju tega enega iz nič, 746 00:33:29,250 --> 00:33:31,540 Jaz bom šel v današnji izvorna koda, in vse to 747 00:33:31,540 --> 00:33:34,290 je na voljo na tečaj je Spletna stran, in lahko povlečete in spustite 748 00:33:34,290 --> 00:33:36,590 v svojem okolju pridejo v petek, ko problem 749 00:33:36,590 --> 00:33:38,506 sklop 1 vam daje navodila, ali si lahko 750 00:33:38,506 --> 00:33:41,200 to storiti v ukazni vrstici kot dobro, ampak se nadaljuje v p nastavite 1. 751 00:33:41,200 --> 00:33:44,940 >> Poglejmo, kaj je v tem programu tu imenujejo, gad pika c. 752 00:33:44,940 --> 00:33:47,970 Zdaj sem že komentiral je, toda kaj je novega? 753 00:33:47,970 --> 00:33:51,230 Na prvi pogled, kaj vrstica kode je popolnoma nov? 754 00:33:51,230 --> 00:33:53,930 755 00:33:53,930 --> 00:33:56,780 Verjetno ne bistveno poznajo zdaj. 756 00:33:56,780 --> 00:33:58,417 >> OBČINSTVO: [neslišno] 757 00:33:58,417 --> 00:34:00,250 DAVID J. Malan: Ja, tako int x enaka dobili n. 758 00:34:00,250 --> 00:34:03,760 Mi nikoli nisem videl nič od tega prej, vendar int je verjetno 759 00:34:03,760 --> 00:34:08,179 simbol za kakšno vrsto spremenljivka [? iz?] celo število. 760 00:34:08,179 --> 00:34:09,040 Torej int za celo število. 761 00:34:09,040 --> 00:34:11,420 To je samo se bolj jedrnat. x je samo arbitrarno. 762 00:34:11,420 --> 00:34:13,920 x in y in z so še zelo primeren za številke, 763 00:34:13,920 --> 00:34:16,790 ampak na splošno bomo uporabili besede, enkrat naši programi dobili bolj zapleten. 764 00:34:16,790 --> 00:34:18,940 Get int, seveda, podobno kot get vrvico, 765 00:34:18,940 --> 00:34:21,629 je verjetno, da bi dobili int od uporabnika, 766 00:34:21,629 --> 00:34:23,670 in potem bomo storijo enako stvar z y. 767 00:34:23,670 --> 00:34:27,610 In očitno je, čeprav je to zadnja vrstica, 24, izgleda bolj zapletena, 768 00:34:27,610 --> 00:34:32,679 to se dogaja, pravijo vsoto to in da je ta druga stvar. 769 00:34:32,679 --> 00:34:35,840 >> In obvestilo odstotkov i verjetno pomeni kaj? 770 00:34:35,840 --> 00:34:38,190 Kakšno vlogo odstotkov i očitno služi? 771 00:34:38,190 --> 00:34:40,739 772 00:34:40,739 --> 00:34:41,719 To je le ograde. 773 00:34:41,719 --> 00:34:42,219 Prav? 774 00:34:42,219 --> 00:34:45,149 Odstotkov je bilo za vrvico, odstotkov i za celo število. 775 00:34:45,149 --> 00:34:47,690 Tam se bo odstotka f za plavajočo vejico vrednost, ki 776 00:34:47,690 --> 00:34:49,273 je le število z decimalno vejico. 777 00:34:49,273 --> 00:34:50,590 Z drugimi besedami, realno število. 778 00:34:50,590 --> 00:34:55,270 Torej, kaj je dejansko zbere ta programiranje resnično hitro in ne predstavljajo seštevalnik. 779 00:34:55,270 --> 00:34:57,962 Ops. 780 00:34:57,962 --> 00:34:58,670 Dobra priložnost. 781 00:34:58,670 --> 00:35:02,970 Tako obvestilo tukaj, ves ta čas mojega uporabnika ime za ta račun jharvard. 782 00:35:02,970 --> 00:35:06,620 Jaz sem v CS50 IDE, aka IDE50. 783 00:35:06,620 --> 00:35:11,030 In zdaj v modri tukaj, je omemba, vendar iz okolja, iz kje sem. 784 00:35:11,030 --> 00:35:16,050 In v resnici, če povečavo vrh tukaj, opazili, da imam IDE50 785 00:35:16,050 --> 00:35:19,490 in vidim to besedo, če vas nekako obrni glavo na stran, delovni prostor. 786 00:35:19,490 --> 00:35:23,890 Na kratko, je dejstvo, da Vidim tilda delovni prostor slash 787 00:35:23,890 --> 00:35:26,910 pomeni, da se v tem besedilu okolje ukaz temelji 788 00:35:26,910 --> 00:35:32,300 Jaz sem v besedilni ekvivalent Tudi grafični mapi tukaj. 789 00:35:32,300 --> 00:35:35,730 Torej, ko sem naredil dot poševnica seštevalnik, da je rekel, ne pravilo 790 00:35:35,730 --> 00:35:37,372 da bi ciljno postanek seštevalnika. 791 00:35:37,372 --> 00:35:39,830 Ne vem, kaj to pomeni, ampak to je slabo za neznanega razloga. 792 00:35:39,830 --> 00:35:43,310 No takšno datoteko ali imenik je še bolj jasno. 793 00:35:43,310 --> 00:35:45,670 Kje pa je potem? 794 00:35:45,670 --> 00:35:47,820 Na podlagi kjer sem kliknil Če želite odpreti datoteko prej. 795 00:35:47,820 --> 00:35:49,442 Kje bi lahko bilo? 796 00:35:49,442 --> 00:35:52,050 >> To je verjetno v viru en w, v sredo, 797 00:35:52,050 --> 00:35:53,960 in sem lahko videl, res, če sem odprla, da je gor. 798 00:35:53,960 --> 00:35:57,220 Obstaja seštevalnik pika c, vendar Ta temelji na besedilu okolje, 799 00:35:57,220 --> 00:35:59,380 še enkrat, moram biti zelo jasna. 800 00:35:59,380 --> 00:36:03,950 Če želim spremeniti imenike v vir eden Sreda, moram tip, 801 00:36:03,950 --> 00:36:07,210 cd prostor vir ena Sreda vstop in zdaj 802 00:36:07,210 --> 00:36:09,810 moje takojšnje spremembe daj mi vizualne iztočnice, ki 803 00:36:09,810 --> 00:36:12,330 Jaz sem, res, drugje V mojem okolju, 804 00:36:12,330 --> 00:36:15,710 zdaj pa ne morem narediti, da seštevalnik, se zdi, da deluje, 805 00:36:15,710 --> 00:36:18,190 dot poševnica seštevalnik, mi celo število. 806 00:36:18,190 --> 00:36:19,080 Ena. 807 00:36:19,080 --> 00:36:20,070 Dva. 808 00:36:20,070 --> 00:36:21,630 Vsota ena in dva je tri. 809 00:36:21,630 --> 00:36:24,140 Ampak če ne bom sodeloval, Pa poglejmo, kaj bi dobili int počne. 810 00:36:24,140 --> 00:36:25,200 Daj mi celo število. 811 00:36:25,200 --> 00:36:26,590 No. 812 00:36:26,590 --> 00:36:27,350 Poskusite znova. 813 00:36:27,350 --> 00:36:29,060 V REDU. 814 00:36:29,060 --> 00:36:30,520 V redu. 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 V redu. 818 00:36:33,010 --> 00:36:34,055 Torej je končno sodeluje. 819 00:36:34,055 --> 00:36:36,430 In to je nekaj izmed funkcionalnosti, ki te funkcije 820 00:36:36,430 --> 00:36:37,760 so lahko zgrajena na za vas. 821 00:36:37,760 --> 00:36:43,330 >> Tako znotraj izvajanja od dobili int, kaj programiranje 822 00:36:43,330 --> 00:36:47,990 zgraditi iz prejšnjega tedna, je verjetno v tam prisiliti to vedenje ponovnim poskusom, 823 00:36:47,990 --> 00:36:49,962 retry, retry? 824 00:36:49,962 --> 00:36:51,670 Ja, tam je verjetno nekakšna zanka. 825 00:36:51,670 --> 00:36:54,160 To se dogaja, da si skladenjsko razlikuje od blokov Scratch je, 826 00:36:54,160 --> 00:36:55,880 ampak to je res kaj je v datoteki. 827 00:36:55,880 --> 00:36:58,505 In čez nekaj tednov, da bomo dejansko videti v knjižnici CS50 828 00:36:58,505 --> 00:37:02,000 glede tega, kaj je notri, vendar pa je zanka nalaga točno to. 829 00:37:02,000 --> 00:37:04,840 >> Naj igrajo bedni Igra tukaj s to datoteko. 830 00:37:04,840 --> 00:37:06,550 Pogoj nič dot c. 831 00:37:06,550 --> 00:37:08,960 Mi smo le, da bo na splošno začnemo na ničlo. 832 00:37:08,960 --> 00:37:11,220 In držim pomikanjem preteklost nekatere stvari na vrhu. 833 00:37:11,220 --> 00:37:15,390 V modri tukaj, razmejeno z vsemi od teh zvezd in poševnic, 834 00:37:15,390 --> 00:37:17,310 tiste, ki ste programirati pred tem, kaj je to? 835 00:37:17,310 --> 00:37:18,690 Zakaj hranimo preskoči nad njim? 836 00:37:18,690 --> 00:37:19,110 Kaj? 837 00:37:19,110 --> 00:37:19,490 >> OBČINSTVO: To je komentar. 838 00:37:19,490 --> 00:37:19,800 >> DAVID J. Malan: Ja. 839 00:37:19,800 --> 00:37:20,633 To je samo komentar. 840 00:37:20,633 --> 00:37:24,160 To je komentar za ljudi za branje, ki je v našem primeru, 841 00:37:24,160 --> 00:37:27,120 nam pove, kaj ime datoteke je, kdo ga je napisal, in kaj počne, 842 00:37:27,120 --> 00:37:28,610 tako da ne boste imeli prebrati kodo 843 00:37:28,610 --> 00:37:30,110 vedeti, kaj ta datoteka je vse okoli. 844 00:37:30,110 --> 00:37:33,110 To je samo opis, vendar funkcionalno je nepomembno. 845 00:37:33,110 --> 00:37:35,930 In lahko celo izbrisati iz moje datoteke in nima vpliva. 846 00:37:35,930 --> 00:37:38,740 Sočna linije so ti prva dva tukaj, zdaj. 847 00:37:38,740 --> 00:37:41,405 int glavno praznina je enakovreden naše ko zelena zastava kliknili, 848 00:37:41,405 --> 00:37:44,030 tako bomo zapustili, da se za danes in se bomo vrnili, 849 00:37:44,030 --> 00:37:46,940 na koncu, glede tega, kaj int in nični so, ampak zdaj, 850 00:37:46,940 --> 00:37:49,500 opazili, kaj sem naredil tudi tu, lahko tudi vi, 851 00:37:49,500 --> 00:37:51,736 če imate v skladu pripombe, če imate 852 00:37:51,736 --> 00:37:54,670 misel želite deliti o nekem kodeksu, 853 00:37:54,670 --> 00:37:58,910 Konvencija v C je storiti poševnica poševnica, in nato nekaj jedrnate besede, 854 00:37:58,910 --> 00:38:01,500 ni polno kazen, splošno ni odstavek, 855 00:38:01,500 --> 00:38:05,310 da samo pojasnjuje, da vas, ali vaš TF, ali drugi bralci ali sodelavci, 856 00:38:05,310 --> 00:38:06,990 kaj vaša koda počne. 857 00:38:06,990 --> 00:38:10,150 Torej, namesto da morajo iskati na to in sklepati iz vrstic 858 00:38:10,150 --> 00:38:12,550 devet in 10, kar je to počne v skladu osem 859 00:38:12,550 --> 00:38:14,945 Pravkar sem dal komentar na od uporabnika zahteva, za celo število, 860 00:38:14,945 --> 00:38:17,820 potem nimam razmišljati preveč težko o tem, kaj so linije devet in 10. 861 00:38:17,820 --> 00:38:19,720 Vem samo, da je to, kaj skupaj počnejo. 862 00:38:19,720 --> 00:38:20,460 >> Kako? 863 00:38:20,460 --> 00:38:22,060 No, tukaj je poziv. 864 00:38:22,060 --> 00:38:23,610 Tukaj je že od notr. 865 00:38:23,610 --> 00:38:25,984 In temelji na prejšnji vedenje, se zdi, kot get int 866 00:38:25,984 --> 00:38:29,080 je dovolj pameten, da se prepričajte, da človeški sodeluje in ga daje 867 00:38:29,080 --> 00:38:30,090 celo število. 868 00:38:30,090 --> 00:38:32,270 Toda zdaj smo videli to. 869 00:38:32,270 --> 00:38:33,740 In to spominja na nič. 870 00:38:33,740 --> 00:38:36,140 Jaz sem trdil, da sem analizira prispevek uporabnika, 871 00:38:36,140 --> 00:38:39,050 vendar nekoliko nenatančno. 872 00:38:39,050 --> 00:38:43,200 In to očitno v C je, kako izražamo if drugega, podružnica, 873 00:38:43,200 --> 00:38:46,320 vilice v cestnem prometu, vendar sem pravijo nekoliko nenatančno. 874 00:38:46,320 --> 00:38:50,470 Kaj je bug v tem programu? 875 00:38:50,470 --> 00:38:51,610 O bolj nazaj? 876 00:38:51,610 --> 00:38:52,223 Ja. 877 00:38:52,223 --> 00:38:53,150 >> OBČINSTVO: [neslišno] nič. 878 00:38:53,150 --> 00:38:54,025 >> DAVID J. Malan: Ja. 879 00:38:54,025 --> 00:38:57,630 Torej, če sem tipa v nič, kaj menijo, točno to drži, ali kotna primer, 880 00:38:57,630 --> 00:38:58,450 če hočete. 881 00:38:58,450 --> 00:39:02,790 Torej, če sem tipa v nič, kar od bloki se dogaja, da ga očitno zgrabi? 882 00:39:02,790 --> 00:39:04,660 If ali drugega? 883 00:39:04,660 --> 00:39:07,340 Drugega, in to je reči, ste pobrali negativno število. 884 00:39:07,340 --> 00:39:10,476 In res, se ne bi nič da bo pozitiven ali negativen, 885 00:39:10,476 --> 00:39:11,850 in tako, da bi bilo zmotno. 886 00:39:11,850 --> 00:39:12,930 To bi bila napaka. 887 00:39:12,930 --> 00:39:14,580 Torej, kako lahko to popravimo? 888 00:39:14,580 --> 00:39:16,360 Nekdo, ki še nikoli ni programirana prej? 889 00:39:16,360 --> 00:39:16,570 Hočeš-- 890 00:39:16,570 --> 00:39:17,480 >> OBČINSTVO: [neslišno] 891 00:39:17,480 --> 00:39:17,990 >> DAVID J. Malan: Uvlečljivi? 892 00:39:17,990 --> 00:39:18,570 >> OBČINSTVO: [neslišno] 893 00:39:18,570 --> 00:39:18,930 >> DAVID J. Malan: Oh, imate? 894 00:39:18,930 --> 00:39:20,350 Nekdo, ki še nikoli ni programirana prej. 895 00:39:20,350 --> 00:39:21,750 Želite, da poskusite svojo roko na to je v rdeči srajci? 896 00:39:21,750 --> 00:39:22,600 Pridi gor. 897 00:39:22,600 --> 00:39:25,320 Oh ja, pridi gor, če vas ne moti. 898 00:39:25,320 --> 00:39:27,586 Torej nikoli programirana Prej, kako ti je 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, vse v redu. 901 00:39:29,626 --> 00:39:31,150 Torej popraviti to napako za nas. 902 00:39:31,150 --> 00:39:35,070 Ste jih nisem videl C, verjetno, in verjetno noben drug jezik. 903 00:39:35,070 --> 00:39:38,380 Torej popraviti ta program za nas. 904 00:39:38,380 --> 00:39:39,100 Lepo te je spoznati. 905 00:39:39,100 --> 00:39:39,615 Ni pritiska. 906 00:39:39,615 --> 00:39:40,156 LAUREN: Ja. 907 00:39:40,156 --> 00:39:43,350 908 00:39:43,350 --> 00:39:46,270 >> DAVID J. Malan: Ampak spet, če je to Gamble gre po načrtu, 909 00:39:46,270 --> 00:39:48,350 takeaway tukaj bo bo, samo še enkrat, da začnete 910 00:39:48,350 --> 00:39:51,080 opažati vzorce in sklepati iz obstoječe sintakso 911 00:39:51,080 --> 00:39:55,420 kako pa ti lahko izrazijo sami, no pun namenjena, da bi 912 00:39:55,420 --> 00:39:58,410 ujeti nekaj dodatnih scenarij. 913 00:39:58,410 --> 00:39:59,603 Tako smo praviš else if. 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 In obvestilo z CS50 IDE in frankly-- IDE 917 00:40:09,120 --> 00:40:11,110 stojala za integrirane Razvojno okolje. 918 00:40:11,110 --> 00:40:14,110 To je samo fancy način rekel program, ki vam pomaga program. 919 00:40:14,110 --> 00:40:16,779 To počne uporabniku prijaznih stvari, kot so ko vnesete eno oklepajev, 920 00:40:16,779 --> 00:40:18,320 samodejno vam daje drugi. 921 00:40:18,320 --> 00:40:20,760 Domneva je, da ste sčasoma bo želel, da tip, ki, 922 00:40:20,760 --> 00:40:22,400 in ga tudi ne z narekovaji. 923 00:40:22,400 --> 00:40:24,190 >> Torej rad linijo 23. 924 00:40:24,190 --> 00:40:26,400 99% poti tja. 925 00:40:26,400 --> 00:40:29,920 Nekdo želi gonge s konico? 926 00:40:29,920 --> 00:40:31,420 Slišal sem, podpičje iz občinstva. 927 00:40:31,420 --> 00:40:32,080 Dobro. 928 00:40:32,080 --> 00:40:33,260 Tako da dokonča to. 929 00:40:33,260 --> 00:40:37,930 In zdaj sem samo še malo Strah z linijo 21. 930 00:40:37,930 --> 00:40:41,370 Kako želimo izraziti to? 931 00:40:41,370 --> 00:40:43,370 Kaj vprašanje hočemo vprašati, misliš? 932 00:40:43,370 --> 00:40:46,870 933 00:40:46,870 --> 00:40:50,330 Torej prej smo zastavili vprašanje, če je n večji kot nič, to. 934 00:40:50,330 --> 00:40:51,870 Else, storite to. 935 00:40:51,870 --> 00:40:54,317 Zato moramo izbrati Vprašanje tukaj vprašal. 936 00:40:54,317 --> 00:40:55,192 OBČINSTVO: [neslišno] 937 00:40:55,192 --> 00:40:56,530 DAVID J. Malan: Dobro. 938 00:40:56,530 --> 00:40:58,290 Torej, če je n enak nič. 939 00:40:58,290 --> 00:41:01,140 940 00:41:01,140 --> 00:41:02,100 Odlično. 941 00:41:02,100 --> 00:41:03,080 Torej, kaj je premor tukaj. 942 00:41:03,080 --> 00:41:04,850 Najlepša hvala za smele to. 943 00:41:04,850 --> 00:41:10,890 Naj vam malo dobro zaslužil stres žogo, morda tam. 944 00:41:10,890 --> 00:41:11,900 Torej smo skoraj tam. 945 00:41:11,900 --> 00:41:14,790 V bistvu, Lauren, če ne Um, dovolite mi, da en poteg tukaj, 946 00:41:14,790 --> 00:41:17,850 samo, da je skladna tudi z kar smo videli v nič, kar 947 00:41:17,850 --> 00:41:21,080 ne želim narediti s črtami 21 in 24, prav tako spet temelji 948 00:41:21,080 --> 00:41:23,290 o tem, kako bomo to storili v nič, morda? 949 00:41:23,290 --> 00:41:24,230 >> OBČINSTVO: Premakni gor. 950 00:41:24,230 --> 00:41:25,605 >> DAVID J. Malan: Ja, ga premakniti navzgor. 951 00:41:25,605 --> 00:41:30,260 Tako stanje drugega, tretjega, ali četrti ali peti, ali končni podružnica, 952 00:41:30,260 --> 00:41:34,100 naj bi res prišel kasneje, in da je samo po dogovoru 953 00:41:34,100 --> 00:41:36,047 samo zato, ker če boste. 954 00:41:36,047 --> 00:41:37,380 Torej, jaz ne potrebujejo, da bi to poteg. 955 00:41:37,380 --> 00:41:39,660 In moram dal moje kodrasti brace nazaj. 956 00:41:39,660 --> 00:41:42,700 In zdaj bo ta program zbere. 957 00:41:42,700 --> 00:41:46,140 Mi smo tako blizu, vendar pa je zelo, zelo subtilno bug. 958 00:41:46,140 --> 00:41:47,200 Poglejmo, kaj se zgodi. 959 00:41:47,200 --> 00:41:49,660 >> Najprej, naj gredo naprej in pomanjšavo. 960 00:41:49,660 --> 00:41:53,405 Grem, da gredo naprej in tip bo stanje nič. 961 00:41:53,405 --> 00:41:55,070 Oh, sem se zlagal. 962 00:41:55,070 --> 00:41:58,760 Zdaj prevajalnik je pravzaprav zelo pametna. 963 00:41:58,760 --> 00:42:00,950 In res ne razumem je sporočilo o napaki. 964 00:42:00,950 --> 00:42:04,310 Uporaba rezultat nalogo kot pogoj brez oklepajev, 965 00:42:04,310 --> 00:42:05,740 je očitno slabo. 966 00:42:05,740 --> 00:42:07,100 Ampak kaj to pomeni? 967 00:42:07,100 --> 00:42:10,860 >> Torej še enkrat, išče vzorce s kodo, ki smo jih videli, 968 00:42:10,860 --> 00:42:16,640 kaj je linija 17 dejansko počne, čeprav Lauren nekoliko namenjena 969 00:42:16,640 --> 00:42:18,790 drugače? 970 00:42:18,790 --> 00:42:19,290 Ja. 971 00:42:19,290 --> 00:42:21,565 >> OBČINSTVO: [neslišno] 972 00:42:21,565 --> 00:42:22,440 DAVID J. Malan: Ja. 973 00:42:22,440 --> 00:42:26,610 Torej, ne pozabite, enačaj, očitno kot smo ga uporabljali doslej, ni enaka. 974 00:42:26,610 --> 00:42:29,240 Njena naloga, od desne proti levi. 975 00:42:29,240 --> 00:42:33,810 Torej vrstica 17 v trenutku je pogoj, in to je 976 00:42:33,810 --> 00:42:37,890 izvršuje kodo v oklepaju, ko pa da je koda izvrši, 977 00:42:37,890 --> 00:42:42,140 kaj se dogaja na vrednost nič? 978 00:42:42,140 --> 00:42:45,250 Kar se dogaja na vrednost n? 979 00:42:45,250 --> 00:42:46,810 Postati nič. 980 00:42:46,810 --> 00:42:50,520 Torej, če je n postaja nič, in spet, kot na zadnji teden, 981 00:42:50,520 --> 00:42:54,690 smo na splošno rečemo, da nič je napačna in eden je res, 982 00:42:54,690 --> 00:42:57,410 ali da je eden in ne nič. 983 00:42:57,410 --> 00:42:59,590 Torej true in false, eno in 0. 984 00:42:59,590 --> 00:43:06,090 Če je n od linije 17 glede na vrednost 0, je nič res? 985 00:43:06,090 --> 00:43:06,590 No. 986 00:43:06,590 --> 00:43:08,280 Po definiciji, nič je napačen. 987 00:43:08,280 --> 00:43:10,860 To je konvencija smo dogaja, da oklepajo napreduje. 988 00:43:10,860 --> 00:43:17,320 Tako bodo linije 18, 19, in 20 kdaj pride zdaj, logično? 989 00:43:17,320 --> 00:43:18,320 Ne morejo. 990 00:43:18,320 --> 00:43:21,640 Tako smo zastavili vprašanje vendar ne povsem natančno, 991 00:43:21,640 --> 00:43:25,620 in ne veš, če tega ste jo videli, je rešitev v C 992 00:43:25,620 --> 00:43:29,610 je, ko želite, da izrazijo enakost, pravite Ene enaka. 993 00:43:29,610 --> 00:43:33,140 Torej je bil enačaj že porabil z nalogo, od desne proti levi. 994 00:43:33,140 --> 00:43:35,110 Enako enaka sredstva enaka. 995 00:43:35,110 --> 00:43:37,950 In če si res želite, da vaš um se sklonil, v JavaScript in PHP, 996 00:43:37,950 --> 00:43:40,490 tam je enaka enaka enakimi, ki pomeni nekaj drugega v celoti, 997 00:43:40,490 --> 00:43:41,990 vendar bomo dobili, da je pred dolgo. 998 00:43:41,990 --> 00:43:45,760 >> Torej, je to preprosto popraviti, toda zavedati super enostavno, da bi to napako, 999 00:43:45,760 --> 00:43:48,700 in potem se sprašujem, in boj za minute, če ne eno uro, 1000 00:43:48,700 --> 00:43:51,490 zakaj je moja koda ne izvršitve, kot nameravam? 1001 00:43:51,490 --> 00:43:54,140 To je zato, ker nisi povedal, je natančno tisto, kar si mislil. 1002 00:43:54,140 --> 00:43:56,450 Tako da je bil skoraj popoln, in je bilo super 1003 00:43:56,450 --> 00:44:00,760 da smo naleteli teh dveh majhnih Stvari, ker zdaj, če smo jih popraviti, 1004 00:44:00,760 --> 00:44:06,240 in storim, da bi stanje nič dot poševnica stanje nič, 1005 00:44:06,240 --> 00:44:07,490 Želel bi celo prosim. 1006 00:44:07,490 --> 00:44:08,090 Pa poglejmo. 1007 00:44:08,090 --> 00:44:09,160 No. 1008 00:44:09,160 --> 00:44:10,740 To se dogaja, da me je prisilil, da to storite. 1009 00:44:10,740 --> 00:44:11,990 Torej 42. 1010 00:44:11,990 --> 00:44:13,590 Pobral sem pozitivno število. 1011 00:44:13,590 --> 00:44:16,470 Torej, zdaj, kako moram dokazati ta program pravilna? 1012 00:44:16,470 --> 00:44:19,990 Če ste matematik, ne moreš res to dokazati poskusa in napake, 1013 00:44:19,990 --> 00:44:20,490 prav? 1014 00:44:20,490 --> 00:44:23,180 Lahko ne le dokazilo, ki ga Na primer, ampak vsaj 1015 00:44:23,180 --> 00:44:25,494 kot programer nismo bomo poskušali dokazati za zdaj 1016 00:44:25,494 --> 00:44:27,660 da to dejansko pravilna, vendar sem morala verjetno 1017 00:44:27,660 --> 00:44:29,470 preizkusite nekaj reprezentativnih primerov. 1018 00:44:29,470 --> 00:44:31,070 >> Testiral sem 42. 1019 00:44:31,070 --> 00:44:33,030 Jaz bi preizkusili 43. 1020 00:44:33,030 --> 00:44:34,910 Jaz bi preizkusili 44. 1021 00:44:34,910 --> 00:44:35,640 Testna 45. 1022 00:44:35,640 --> 00:44:36,140 Prav? 1023 00:44:36,140 --> 00:44:37,860 Ampak jaz bi to res dolgo časa narediti. 1024 00:44:37,860 --> 00:44:39,925 Kaj bi bilo nekaj več zanimivih primerov poskusiti? 1025 00:44:39,925 --> 00:44:41,050 OBČINSTVO: [neslišno] nič. 1026 00:44:41,050 --> 00:44:41,740 DAVID J. Malan: Torej nič. 1027 00:44:41,740 --> 00:44:42,297 Zagotovo. 1028 00:44:42,297 --> 00:44:44,880 In dobro, da smo ga dobili ta čas, zahvaljujoč novi kodeks Lauren. 1029 00:44:44,880 --> 00:44:46,213 Kaj je še en dober primer, da poskusite? 1030 00:44:46,213 --> 00:44:47,320 OBČINSTVO: Negativno ena. 1031 00:44:47,320 --> 00:44:50,070 >> DAVID J. Malan: Negative ena, in morda kaj malo večji, 1032 00:44:50,070 --> 00:44:52,617 tako da morda negativno 42, vendar na splošno, ko 1033 00:44:52,617 --> 00:44:54,450 testiranje vaših programov premika naprej, vi ste 1034 00:44:54,450 --> 00:44:56,325 bodo želeli, da razmišljajo k sebi, kot kaj 1035 00:44:56,325 --> 00:44:58,050 so temeljne različnih primerih. 1036 00:44:58,050 --> 00:45:01,720 In upam si trditi, negativno zadevo, pozitiven primer in primer nič 1037 00:45:01,720 --> 00:45:03,365 precej krogih ti ven. 1038 00:45:03,365 --> 00:45:04,990 Oglejmo si varianto tega, čeprav. 1039 00:45:04,990 --> 00:45:06,930 Pogoji ena. 1040 00:45:06,930 --> 00:45:11,224 To je pravilna rešitev tod tako da boste videli dva in na spletu, 1041 00:45:11,224 --> 00:45:13,390 če hodiš skozi walkthroughs, bo na splošno 1042 00:45:13,390 --> 00:45:18,090 prirastek te postopoma, dokler ne bomo dobili ravno pravi pristop. 1043 00:45:18,090 --> 00:45:20,070 Kaj pa, če smo želeli vprašati dve vprašanji naenkrat? 1044 00:45:20,070 --> 00:45:22,200 >> Naj odprejo to namesto tega. 1045 00:45:22,200 --> 00:45:26,740 Non-stikalo, zaradi razlogov, bomo videli še čas. 1046 00:45:26,740 --> 00:45:29,610 Kaj je novega skladenjsko tukaj? 1047 00:45:29,610 --> 00:45:32,760 Jaz sem trenutno igra igro kjer je računalnik povedal 1048 00:45:32,760 --> 00:45:35,550 me, daj mi celo od enega do 10, 1049 00:45:35,550 --> 00:45:37,180 in potem sem sodeč prispevek uporabnika. 1050 00:45:37,180 --> 00:45:39,180 V angleščini, ki temelji na koda, ki jo vidite tukaj 1051 00:45:39,180 --> 00:45:41,530 v modri barvi, kaj je ta program počne? 1052 00:45:41,530 --> 00:45:44,256 1053 00:45:44,256 --> 00:45:46,380 OBČINSTVO: [neslišno] obirajo velika ali majhna številka. 1054 00:45:46,380 --> 00:45:46,484 DAVID J. Malan: Ja. 1055 00:45:46,484 --> 00:45:49,450 To je samo odloča, ali Pobral sem velik, ali medij, 1056 00:45:49,450 --> 00:45:53,900 ali manjše število temelji na zelo arbitrarna opredelitev malih, srednjih, 1057 00:45:53,900 --> 00:45:58,510 in veliko tukaj, ampak obvestilo skladnja, da je novo je to. 1058 00:45:58,510 --> 00:46:02,340 Ni manj kot int ali enaka podpis, ali večja oziroma enaka podpis 1059 00:46:02,340 --> 00:46:05,430 kjer je eden nad drugim, da vas lahko izrazi v kot Microsoft Word. 1060 00:46:05,430 --> 00:46:08,180 Torej v programskem jeziku tipično pač dva znaka, 1061 00:46:08,180 --> 00:46:09,450 eden za drugim. 1062 00:46:09,450 --> 00:46:12,695 In kaj je to verjetno predstavljajo, ampersand 'znak. 1063 00:46:12,695 --> 00:46:13,570 OBČINSTVO: [neslišno] 1064 00:46:13,570 --> 00:46:13,680 DAVID J. Malan: Ja. 1065 00:46:13,680 --> 00:46:16,910 To samo pomeni, in zato, ker je Izkazalo se je, da avtorji C 1066 00:46:16,910 --> 00:46:19,120 uporablja en sam 'znak, ki si morda mislite 1067 00:46:19,120 --> 00:46:22,430 bi bila kot nalašč za razumevanje in je že porabil, 1068 00:46:22,430 --> 00:46:27,300 tako ampersand ampersand dejansko ujame zadevo dejansko želimo. 1069 00:46:27,300 --> 00:46:30,610 >> Torej, kaj je zdaj posrnuti čez dve stvari. 1070 00:46:30,610 --> 00:46:32,640 Naj gredo naprej in odprla eno. 1071 00:46:32,640 --> 00:46:36,590 Nekaj, kar je malo zaskrbljujoče. 1072 00:46:36,590 --> 00:46:37,970 Nenatančnost dot c. 1073 00:46:37,970 --> 00:46:40,260 Naj vam predstavim dve stvari tukaj. 1074 00:46:40,260 --> 00:46:44,720 Ena, obvestilo, da lahko storimo matematike, kot je prav tako kot prej, ko 1075 00:46:44,720 --> 00:46:47,797 smo naredili plus dveh številk, X in Y. 1076 00:46:47,797 --> 00:46:49,380 Kaj je ta program očitno počne? 1077 00:46:49,380 --> 00:46:52,140 Sem ga še ni komentiral, in sem predstavil odstotno f, 1078 00:46:52,140 --> 00:46:55,720 vendar sem hitro rekel prej odstotkov f pomeni plavajočo vejico 1079 00:46:55,720 --> 00:46:56,970 vrednost, ki je realno število. 1080 00:46:56,970 --> 00:46:59,520 Nekaj ​​z decimalko Točka, ki je ni celo število. 1081 00:46:59,520 --> 00:47:02,270 Kaj misliš, da je ta program me poskuša prikazati na zaslonu? 1082 00:47:02,270 --> 00:47:05,060 1083 00:47:05,060 --> 00:47:06,050 Ja? 1084 00:47:06,050 --> 00:47:07,550 OBČINSTVO: Rezultat enega nad 10. 1085 00:47:07,550 --> 00:47:07,780 DAVID J. Malan: Ja. 1086 00:47:07,780 --> 00:47:09,680 Kakšen je rezultat enega deljeno z 10. 1087 00:47:09,680 --> 00:47:12,721 Prav, ker vsi vi imate verjetno odrasel vedel, da je eden več kot 10 1088 00:47:12,721 --> 00:47:14,502 je kaj? 1089 00:47:14,502 --> 00:47:16,220 Ja, to je samo 1/10 ali 0,1. 1090 00:47:16,220 --> 00:47:16,720 Prav? 1091 00:47:16,720 --> 00:47:19,010 Torej, poglejmo, kaj to dejansko je. 1092 00:47:19,010 --> 00:47:21,010 Zato mi dovolite, pojdi naprej in rešiti to. 1093 00:47:21,010 --> 00:47:21,970 Naj gredo dol. 1094 00:47:21,970 --> 00:47:26,360 Naredite nenatančnost dot poševnica nenatančnost, in obvestilo, preveč, 1095 00:47:26,360 --> 00:47:29,380 v okolju Linux, ne boste morali vnesti ven nenatančnosti in sprejeti 1096 00:47:29,380 --> 00:47:30,010 cel dan. 1097 00:47:30,010 --> 00:47:32,910 Na splošno, če ste zadeli Tab, je bo končal svoje misli za vas, 1098 00:47:32,910 --> 00:47:36,660 temelji na besede, ki so na voljo v trenutnem imeniku. 1099 00:47:36,660 --> 00:47:37,160 V REDU. 1100 00:47:37,160 --> 00:47:37,970 Torej ste imeli prav. 1101 00:47:37,970 --> 00:47:41,239 Ena deljeno z 10 je v bistvu 0,1. 1102 00:47:41,239 --> 00:47:42,280 Ampak jaz sem malo radoveden. 1103 00:47:42,280 --> 00:47:44,196 In se izkaže, printf podpira nekatere funkcije 1104 00:47:44,196 --> 00:47:48,700 s katerim lahko določite več kot privzeto število decimalnih točk. 1105 00:47:48,700 --> 00:47:52,140 Torej, če hočem videti 10 decimalko Točke lahko storim odstotkov, 1106 00:47:52,140 --> 00:47:55,510 za simbol ograde, dot 10 za, daj mi 10 pikami 1107 00:47:55,510 --> 00:47:58,140 in nato še s plavajočo vejico vrednost, in kot prahi, 1108 00:47:58,140 --> 00:48:01,550 kaj je to poševnica nazaj n očitno smo vedno uporabljate? 1109 00:48:01,550 --> 00:48:03,450 Izkazalo se je, da je Simbol za novo linijo. 1110 00:48:03,450 --> 00:48:05,970 To je zelo eksplicitna način rekel z računalnikom, 1111 00:48:05,970 --> 00:48:08,759 kazalko premakniti v naslednjo vrstica po ste končali. 1112 00:48:08,759 --> 00:48:10,800 In bomo videli, kaj se bo zgodilo če ne bomo storili. 1113 00:48:10,800 --> 00:48:12,430 >> Naj prevedem, da nenatančnost. 1114 00:48:12,430 --> 00:48:15,320 1115 00:48:15,320 --> 00:48:18,356 Zdaj dot poševnica nenatančnosti. 1116 00:48:18,356 --> 00:48:18,930 V REDU. 1117 00:48:18,930 --> 00:48:19,780 Še vedno prav. 1118 00:48:19,780 --> 00:48:21,512 Ena deljeno z 10. 1119 00:48:21,512 --> 00:48:23,220 Zdaj sem pridobivanje malo radoveden, čeprav. 1120 00:48:23,220 --> 00:48:27,599 Kaj pa, če gledam 20 decimalko poudarja, prevedem, ponovitev, 1121 00:48:27,599 --> 00:48:29,390 in kot prahi za Hitrost, lahko uporabite tudi 1122 00:48:29,390 --> 00:48:31,800 vaš gor in dol puščice, da pomikanje po vaši zgodovini, 1123 00:48:31,800 --> 00:48:35,476 tako da vam ni treba hraniti vpisovati teh ukazov, vnesite. 1124 00:48:35,476 --> 00:48:36,910 Huh. 1125 00:48:36,910 --> 00:48:39,220 Nisem se naučijo, da v osnovni šoli. 1126 00:48:39,220 --> 00:48:43,260 Vse je v redu, zato mi dovolite, glej kot 29 mestih ven. 1127 00:48:43,260 --> 00:48:44,300 Mogoče je samo krompir. 1128 00:48:44,300 --> 00:48:46,907 Mogoče moj računalnik deluje čudno. 1129 00:48:46,907 --> 00:48:47,990 To ni stvar, kajne? 1130 00:48:47,990 --> 00:48:50,300 To počne nekaj deterministično. 1131 00:48:50,300 --> 00:48:53,410 Tako da nenatančnost. 1132 00:48:53,410 --> 00:48:54,890 OK, da je zamočil. 1133 00:48:54,890 --> 00:48:57,620 Torej, kaj se dogaja? 1134 00:48:57,620 --> 00:49:00,160 >> Torej očitno Vaš učitelja je ležal 1135 00:49:00,160 --> 00:49:03,900 da vas vse to čas za Razlogi, da bomo videli kmalu. 1136 00:49:03,900 --> 00:49:05,569 Ampak kaj je na koncu z enim drugim programom. 1137 00:49:05,569 --> 00:49:07,860 To je malo programi nekdo napisal pred nekaj leti, 1138 00:49:07,860 --> 00:49:08,990 in je pravzaprav del tekmovanja. 1139 00:49:08,990 --> 00:49:11,198 Nihče pravzaprav piše kodo kot je ta, in če boste to storili, 1140 00:49:11,198 --> 00:49:12,880 to je slogovno problem. 1141 00:49:12,880 --> 00:49:14,660 Ampak ljudje to za hvalisanja pravic. 1142 00:49:14,660 --> 00:49:17,260 Če želite napisati najbolj zmedeno išče program, ki 1143 00:49:17,260 --> 00:49:19,110 Kljub temu pa nekaj zanimivega. 1144 00:49:19,110 --> 00:49:23,930 In opomba Mislil sem, da bova na dopustu danes, preden nas Colton igra tukaj, 1145 00:49:23,930 --> 00:49:27,840 je za izvajanje tega programa, ki celo v samo uporabo 1146 00:49:27,840 --> 00:49:31,450 C v to besedilo, ki temeljijo na okolje, nam to daje. 1147 00:49:31,450 --> 00:49:32,264 Prekleto. 1148 00:49:32,264 --> 00:49:34,930 >> [Smeh] 1149 00:49:34,930 --> 00:49:36,800 >> Ostani v pripravljenosti. 1150 00:49:36,800 --> 00:49:39,340 [Neslišno] c dash l m. 1151 00:49:39,340 --> 00:49:42,885 Boste videli čarobno zaklinjanje, da bomo videli kmalu. 1152 00:49:42,885 --> 00:49:45,780 [Neslišno] Vredu. 1153 00:49:45,780 --> 00:49:51,592 In zdaj si lahko celo delati stvari, kot je ta. 1154 00:49:51,592 --> 00:49:52,340 To je to. 1155 00:49:52,340 --> 00:49:56,410 Za CS50 mi, boste videli v petek. 1156 00:49:56,410 --> 00:49:58,910 >> [Predvaja glasba] 1157 00:49:58,910 --> 00:52:38,390 1158 00:52:38,390 --> 00:52:41,440 >> [Aplavz] 1159 00:52:41,440 --> 00:52:42,812