>> [VIDEO PREDVAJANJE]
>> -A Zmagoslavje matematična in mehansko spretnost
je to velik nov avtomatski Kalkulator na Univerzi Harvard.
Zapleteni problemi v matematiki čaka skozi napravo v kodirani obliki
na traku so natančno rešiti na minut frakcija časa, potrebnega
za prehrano izračun.
Zasnovan tako, da pospeši vse oblike matematične in znanstvene raziskave,
velikan mehanska možgani bo delo za mornarice ZDA do konca vojne.
>> [END PREDVAJANJE]
>> DAVID J. Malan: To je CS50.
Preteklost je bila čarobna kraj, ampak, če ste kdaj
spraševali, kaj da je naprava v Harvard Science Center,
res je del od Harvard Mark I, in to je
Na zaslonu se zdaj v zadnjih mnogo let.
In kaj boste videli vgrajeni v problemskega sklopa
eden je pogled v zakulisje kaj ta naprava naredila, in ne,
profesorja Harry Lewis, ki je v računalništvo oddelek tukaj.
Torej, več o tem v samo bit.
>> Ampak danes smo začeli na prehodu od prejšnjega tedna na to,
in bomo prinese omembo ene fotografije tukaj
da je pravzaprav precej slaven.
Ali kdo ve, kaj je to tukaj je na zaslonu?
Vsaj glede na mit.
Ja.
OBČINSTVO: Prvi virus.
DAVID J. Malan: Tako je bilo menda zelo prvi dejanski bug v računalniku.
Zdaj v resnici beseda napako, za napako v programu,
je bil z nami že nekaj čas v fizičnem svetu,
in to je bil eden izmed prvih dokumentirane času, ko nekdo dejansko
oskubljene veliko veščo iz Mark Računalnik II, ga v vezivu,
in nato zabeležili kot prvo znano bug
da je bilo dejansko ugotovljeno, fizično.
Torej, s čimer je bila vpisana da je v današnjem izročilu.
Vse od zadnje teden, je na voljo na spletu.
V posebnih virov, ki jih lahko Ni nujno obvestilo, zlasti
če prihajajo tukaj na osebo.
Torej, eden od učnih štipendistov vsako leto naredi kanonično niz zapiskov,
tako da vam ni treba hraniti tvoja glava dol, poskušam
prepisati najbolj ničesar da bi se lahko zgodilo tukaj v razredu.
Tako zavedajo, da tisti, tako imenovana [? Scribd?] Opombe
so na spletu, zagotovo diapozitivi in izvorna koda, ki jo uporabljamo v razredu.
Izdelujemo Celotno besedilo prepise Na voljo so tudi.
Torej, če ste megleno spomnim nekaj izraz, in jo želite pogledati malo
lažje, zavedaš, da so vse za to je iskati na spletu.
Kakor tudi walkthroughs, kot dobro.
Pravzaprav, danes smo začeli gledati nižji programski jezik na ravni,
Kmalu bo znano, da nas kot C, in to je zelo enostavno
da nekako izgubijo, ko je le nekaj trenutki časa, in potem nekako čudno
kako smo pravzaprav prišli do nekaj več kompleksen primer od najenostavnejših.
In tako se zavedaš, da bomo češnja izbrati med poukom nekaj
reprezentativnih primerov, vendar Zavedam se, da je tudi toliko bolj
na voljo na spletu, tako da lahko delate skozi to v svojem tempu,
Vendar ste najbolj udobno.
>> Vendar pa smo končali s programi, ki so bili samo to.
Torej, sem kliknite na zeleno zastavo, in kaj ta program storiti?
Pravi, zdravo, svet.
To naredi mačka reči Pozdravljeni v svojem malem svetu
na zgornji levi strani uporabniškega vmesnika Scratch je.
Vendar pa smo začeli uvajati nekateri terminologija prejšnji teden.
In tako, stvari, kot je ta, smo poklicani, kaj?
Kaj bi lahko bil splošen izraz za to?
Ja.
Metoda ali izjava.
Seveda, to je dejanje.
Ali to.
In vendar je bilo druge oblike do nič,
poleg teh tako imenovanih izjavo, da so tudi
Stvari, kot je ta, ki smo ga imenuje, kaj?
Ja.
Torej zanka.
In v tem primeru je to stvar ponavlja, seveda, 10-krat.
Tam je vedno blok.
Tukaj je nekaj drugih.
In danes bomo videli, kako prevesti v bolj sodobnem svetu,
če hočete, čeprav je dogaja, da se zdi na prvi pogled
da je veliko bolj skrivnostne.
Ampak to so bili res zank.
In potem imamo stvari, kot so ta, ki je imel to obliko,
in v bistvu vprašanja.
In mi iz njih, kot kaj?
>> OBČINSTVO: Logični izraz.
>> DAVID J. Malan: Ja.
Logični izraz.
Nekaj, kar je bodisi resnična ali false, da ali ne, eno ali nič,
Vendar pa si želite ogledati svet.
Vendar smo poklicali tiste Boolean izrazov in jih priključite
v pogojih, ali podružnice.
In v svetu Scratch, vse lepo
zapore v smislu njegove oblike, če to naredi logično smiselno, da to storijo,
vendar nimate ustaviti na samo delaš eno stvar pogojno,
lahko imajo pregovorno vilice v cestnem prometu
in to bodisi tega ali onega, če je pogoj izpolnjen ali ne.
In potem, kot boste videli, Če tega še niste storili,
Lahko se celo gnezdo teh blokov.
Torej Scratch raste za zapolnitev oblik da boste morda želeli vstaviti vanjo,
tako da lahko dejansko izražajo najbolj vsaka logika, da boste morda želeli storiti.
>> Zdaj pa še nekaj besed o razglasitvi tako tukaj in New Haven.
Torej na odseke se začenja danes.
URL za to je na tečaj je Spletna stran, za tiste, ki ne poznajo.
Profili bo priložnost, da se skupaj
v veliko bolj intimno okolje kot [? Sanders?] Omogoča,
s 10 do 20 sošolcev, ki imajo asistent na različne skladbe,
in različnih korakov, če se tako odločijo.
Pravzaprav so jih nudi tečaj različni deli
za tiste manj udoben, bolj udobno, in nekje vmes,
in vloga palca tukaj, je ni formalne opredelitve,
če pa ste manj udoben, si nekako to veste.
Ti si malo neustrašen približno Ideja o poglobitvi nogo, morda, nazaj
v razredu, ali kažejo do višine med oddelku.
Če ste bili programiranje, saj vas so bili stari šest let, bolj udobno,
morda za vas.
In če je to neke vrste kretnjo-up, to je točno tisto, kar je vmes
je mišljeno, da bo.
>> Zdaj, v času, za razred to velikost,
nam traja kar nekaj časa, da se oddelka vsi, zato smo ti,
super odseki, ki prihajajo up to vikend in v začetku prihodnjega tedna,
zato si oglejte na spletni strani predmeta je za tiste, ki so seveda širok,
in tudi posnel za tiste, ki ne morejo do njih.
In oddelki bodo sami začeti V tednu, tri CS50 ničelno indeksa.
Problem nastavite 0 je že na spletni strani seveda je.
In spoznali, da imate, devet poznih dni ta semester.
Torej, to je nadgradnja od zadnje leto, ko smo imeli pet pozno dni.
>> Torej, če ste se spraševala, imamo devet problemskih sklopov.
Imate devet poznih dni, vsak od katerih lahko preživijo le eno na teden.
Da učinkovito prodira vse problem postavlja zaradi Petek,
a cilj je, da se malo malo psihološkega pritiska
na vas, da bi poskušali dobiti Stvari v četrtek
saj, kot boste kmalu odkrili, za boljše ali slabše, večina
vse, kar je v svetu programske opreme konča traja veliko dlje, kot ste predvideli.
Torej je neke razmisli priložnost za pomoč
sami ciljno četrtek, ampak vseeno zadovoljen, da, da,
vse, kar je posledica petek.
In če jih predloži na Četrtek, to je čudovito.
Tukaj ni bonus točke ali ekstra kredit za izpolnitev tega roka.
To je pomenilo, da je samo bergla.
>> In uradne ure, tako tukaj in v New Haven,
osebno, če bi želeli sestane s katero koli od naših tečajev
poučevanje štipendistom in CAS za pomoč.
>> V redu.
Torej sedaj, naredimo to bolj realna.
In za trenutek, da se dogaja, da začnete da bi dobili malo bolj starinski, vendar zelo
hitro v petek in Naslednji teden bomo
sposobni narediti veliko več kot smo lahko doslej v nič.
Zato smo uvedli kodeks zadnji teden, čeprav pictoral.
Bilo kosov sestavljanke.
In smo formalizirali, da je nekaj, kar se imenuje izvorna koda,
vendar bi si izgledal?
No, je bilo videti malo kaj takega.
In v bistvu samo na vrsto draži, kjer lahko gremo s tem.
Grem, da gredo naprej in odpreti okno tukaj,
in sem šele tekoč, da izberejo nove datoteke.
In bom, da shranite to datoteko nekaj takega kot zdravo dot c.
Več o tej izbiri besede v samo trenutek.
In to je, kako bi nekdo go o pisanju programa.
Vključi Standard I / O dot h, int glavno nična in odprite kodrasti brace, blizu
kodrasti naramnicami, printf zdravo vejico svet, poševnica nazaj n, podpičje, Save, storjeno.
V REDU.
Sem napisal moj prvi Program, ampak to se dogaja
da je neverjetno underwhelmed ker ko sem dejansko
zagnati ta program, seveda, tako da najprej zapišejo, da pozdravi,
in potem dot poševnica zdravo, in bomo iti skozi to veliko podrobneje
v trenutku, da je vse, kar počne.
Ne pop odprta vsa okna.
To ne naredi ničesar posebej fancy.
Vse to pa je tisto, kar mi je povedal, da narediti, ampak kako smo prišli do tega?
In kako graditi na tem?
No, da predstavim nekaj različni koncepti tukaj.
>> Torej ena, smo tik pred začetkom uporabljate program, imenovan prevajalnik.
Obstaja prevajalnik za Mac OS, Windows, Linux, poljubno število operacijskih sistemov,
in bomo kmalu vam predstavil okolje, da bomo uporabljali,
ampak prevajalnik je samo splošno Izraz za kos opreme
ki traja izvorno kodo in proizvaja objektno kodo iz njega.
Z drugimi besedami, če vas imajo kot vhodni vaš vir
kode, nekaj podobnega, kar sem tipkal, na koncu proizvaja objektno kodo.
In objekt koda je res samo fancy način rekel realizacij
nič in ena je.
Z drugimi besedami, vir koda, čeprav je
bo videti malo Arcane, in malo manj prijazen
kot Scratch na prvi pogled, to je vsaj nekaj
da smo ljudje razumeli.
To nekako izgleda in zveni kot Angleščina čeprav je zelo kratka.
Ker je programiranje v nič in ena je, saj so imeli naši predniki, da ne,
Pred nekaj leti, ni bil še posebej zabavno izziv.
In vendar, to je tisto, kar računalnik še vedno razume.
Torej nam prevajalnik dobi od izvorna koda na objektno kodo.
To je kot da bi odprli datoteko z prevajalnik, in ko jo boste shranili,
dobiš tiste ničle in enic.
Tako, da bomo videli, kako to storiti da v samo trenutek.
>> Ampak kaj je zdaj poskušajo zagotavljajo Most med zadnjim tednom in to,
tako da celo kot smo dobili obesil na stvari, kot zavite oklepaje,
in podpičja in oklepaji in vsi ti intelektualno zanimiva
vidiki programiranja, ki je zelo Razumljivo potovanje ljudi gor že na začetku,
Zavedam se, da vse ideje danes, so enake kot zadnja.
Torej lani smo videli ta primer tukaj, Program Hello World.
No, od danes naprej, če želimo za izvajanje tega istega programa,
to se dogaja pogledati malo kaj takega.
In bomo pojasniti, preden dolgo kakšni int, in glavni, in neveljavne, in vsi, ki
je, ampak vsaj jaz vidim tukaj že poznajo Hello World.
>> Medtem, stvari, kot so funkcija, pozdravi,
je zelo preprosto dogaja, da se zelo preprosta izjava, kot je ta.
Printf zdravo svet, z nekaterimi citira, s poševnico nazaj,
s podpičjem, vendar več o tem, da pridejo.
Zanke, medtem, to je zanka, da Seveda, pozdravi svet za večno,
in to se dogaja pogledati malo bolj čudna kot v zadnji,
ampak če rečem kaj podobno, pri čemer velja, da
lahko nato natisnete Zdravo svet znova in znova in znova in znova.
In potem, kot si lahko nekako od začnejo tu sklepati,
ta konvencija uporabe zaviti oklepaji je nekako
podobnega posvajanja zamaknjen vrstica kode tam.
Printf vrstica kode podobno kot rumena puzzle kos tam zgoraj.
Torej ne bomo reči večno, bomo rekli, čeprav je res,
ampak bomo videli, zakaj je v samo nekaj.
>> Medtem, če imamo zanko tako, kjer si ponovite nekaj končna
število krat, je to eno preveč je bo trajalo malce privajanja
da, vendar je reči za int i dobi nič, sem manj kot 10, i ++,
in nato printf znova.
Ampak tam se dogaja, da se vzorci.
In za tiste, ki ste seznanjeni z AP računalništvo in informatiko, ali Java,
ali poljubno število drugih jezikih skoraj vse od teh konstruktov
Doslej je treba iskati predvsem seznanjeni.
>> Torej spremenljiva.
Torej, tukaj je preprost Scratch odlomek, ki nastavi spremenljivko števec na nič,
in potem vedno pravi števec, in potem spremeni števec po enega.
Tako da se začne z ničlo, in nato en, dva, tri.
No, kako bi lahko uvedla, da v ta novi jezik malo podobno?
Int števec enak nič, čeprav je res, kar
je, da je ista ideja od prej delaš nekaj za večno,
in sem le, da bo printf.
In zdaj je že malo čudno, odstotkov i, ampak bolj o tem, da pridejo,
ampak te ideje so popolnoma enake.
Pravkar smo zdaj držijo skladnja, da je računalnik
dogaja, da zahtevajo od nas.
>> Logični izraz, nekaj podobnega sx manj kot y, ali x manjša od y,
in je y manj kot z.
To se dogaja, da si nekaj malega kot je ta, z oklepaji le
tako kot v matematiki za dober ukrep, da samo zagotovijo, da vrstni red operacij
je, kot želimo.
In zdaj, razmere.
Torej, če x manjša od y, recimo x manjša kot y, drugega, če je x večji od y,
reči x je večja od y, drugače logično, mora x je enak y.
Tako lahko izvajajo nekaj podobnega kot je ta v nič,
ali pa morda izvajati je v tem sintakse.
In spet so zaviti oklepaji so nekako nam daje enako obliko kot sestavljanke
kosih, toda sintaksa, zdaj, je morda začenjajo slediti nekaj vzorcev.
>> Torej, kaj nam to daje tukaj?
Tako da smo takrat v našem glavnem programu.
Poglejmo resnici, zdaj, nekaj storiti z njim.
Torej, v tem zelo prvi linija vidimo ostro vključujejo,
Standard I / O, pika h, in potem nekaj čudnega kota
konzole spodaj, da. int glavno nična, nato pa printf zdravo svet.
Torej, vzemite korak.
Nekdo, ki še nikoli ni programiran pred, vsaj pojasni enega od teh vrstic.
Uporaba morda nekaj žargonu zadnjem tednu.
Kaj je printf, na primer?
Ja.
>> OBČINSTVO: [neslišno]
>> DAVID J. Malan: Ja.
To je funkcija, ali izjavo, od terminologije prejšnji teden.
In to je ukrep da nekaj počne.
Zdaj to funkcijo, ali ta izjava, ali
se zdi, da bo nekakšen vhod?
In v kakšnem smislu to počne Zdi se, da bo vhod, če je temu tako?
Vhod, kaj mislim s tem?
Ja.
>> OBČINSTVO: [neslišno]
DAVID J. Malan: Ja.
Torej Scratch ven nekaj kosov sestavljanke kjer ga lahko parametrize.
Lahko povem, ponovitev blokirati kolikokrat ponavljati,
tako da je bil vnos vrste, in tako kot Scratch
imel malo belega ogrado za številko, ki bi jih vpišete v,
to bomo uporabili v ta Besedilo svetu oklepaje
da nam to krožno obliko v katero bomo lahko priključite svoj vhod.
Konec koncev, deset let nazaj ko je ta jezik, ki se imenuje C,
je izumil nihče pričakovati, da je eden od nas,
ti nekaj let kasneje, bi bili želite funkcijo, ki pravi, zdravo.
Prav?
To bi bilo lepo, če bi bilo puzzle kos, ali ključne besede,
ki se imenuje zdravo, da dobesedno samo pozdravi.
Vendar ne potrebujemo tega.
Lahko imamo nekaj precej nižje raven, kot generično tisk
ukaz, da ima vložek, in natisne karkoli hočemo.
Tako obvestilo zdaj vzorec ki se bo začela pojavljati.
Odprte paren, blizu paren je očitno zajema vhod,
in potem vidim dvojno navaja na obeh koncih.
Še vedno je čudno poševnica nazaj n, vendar upam, da zdaj
lahko začnete vsaj to, da vizualizirati printf je ob v neki obliki vhoda.
Ni tako prijazen, kot Scratch, ampak to je samo
všeč, ko je priključen v neki vrednosti tam.
>> Vse je v redu, zdaj pa je dejansko nekaj narediti s tem.
Torej, nekateri od vas morda poznate iz ima pred nakupovali razred,
klepetal s prijatelji, da že vrsto let
smo uporabili nekaj imenovano CS50 aparata.
To je izraz, ki opisuje tehnologijo imenovani virtualni stroj, ki
je kos programske opreme, da je vaš predhodniki bi prenesete off
Spletna stran predmeta je brezplačno.
Prav tako bi prenesete brezplačno kos programske opreme se imenuje Hypervisor,
nekaj, kar se imenuje, kot so VMware, ali VirtualBox ali poljubno število
drugih orodij, in o njihovem Mac ali PC ali karkoli računalnik so imeli lani
in v preteklih letih, so bi dvakrat kliknite na ikono
zagnati to programsko opremo imenuje Hypervisor.
In potem znotraj tega programa bi jih odpreti CS50 aparata.
In učinek je bil, da ali predhodnica tvoje
je bil nameščen operacijski sistem Mac OS ali Windows, on ali ona potem
pozneje je imel novo okno na njihovih Zaslon teče okolje CS50 je.
Torej virtualni stroj vam omogoča poganjanje enega operacijskega sistema znotraj drugega,
in to je točno to, kar smo naredili.
Skozi večino seveda uporabljate operacijski sistem, imenovan
Linux, posebej Ubuntu Linux, in to
je zelo lep način, v preteklih letih z pazite, da se vsi v teku
ravnokar isto okolje.
In jih lahko uporabite kakršnokoli računalnik, ki si dejansko želijo.
Med slabosti, čeprav, bilo je bilo kot dva gigabajta
prenesti to stvar.
To ni nujno, da deluje super tudi na ljudje, katerih računalniki, da morda le
imeli koncert ali tako RAM, ali ne preveč GHz s hitrostjo procesorja,
in tako v letošnjem letu, za tega in drugih razlogov,
imamo že prehajamo to okolje.
Tako imenovani CS50 IDE, ki je na osnovi odprtokodne programske opreme,
in podprta platforma da podjetje imenovano Cloud9
podpira v Evropi, da nam omogoča, da imajo v bistvu
da točno isto okolje kot v preteklih letih, vendar v tako imenovanem oblaka.
>> Torej, kaj je oblak?
Verjetno ste že kliknili njegova ikona na vašem Mac ali PC.
Kaj je oblak?
Ja?
Malo glasneje.
Ja.
To je samo kup računalnikov drugod, ki podatke shranjujejo in tek
Programska oprema in podobno.
Torej, to je res samo na besedo de jure opisovanja [? najemno?]
računalniki, ki živijo drugje.
Da vas, sami, Ni nujno, da lastnik.
Torej, ko vaši podatki, ali pa si programi, so v oblaku,
to samo pomeni, da je na nekoga drugega računalniki drugod,
in ne, najverjetneje na vaš fizična laptop ali desktop.
In tako, da je tisto, kar CS50 IDE zdaj.
>> Odslej boste na neka URL, ki vam bo predstavil
da, v problemu nastavite 1, kasneje pa je to teden, da se bo potem, ko se prijavite,
vam to okolje.
In podobno kot Scratch imela nekaj različnih plošč, ki sodelujejo,
tako da ne CS50 je IDE imajo točno to.
Na zgornjem levem strani tukaj, ste bomo videli znane brskalnik datotek.
Torej, kateri od datotek, ki jih dal v tem okolju
so le, da bo treba tam navedene.
Datoteke in mape.
Na vrhu tukaj, boste videli mesto
kjer lahko dejansko napisati svojo kodo.
Sprva v C, kasneje pa v Izraz v PHP in JavaScript,
in, morda za končno projekti, Ruby ali Java ali Python
ali poljubno število jezikov, so podprt v tem okolju.
To sploh ni vezano posebej CS50.
>> In potem v spodnjem kotu tukaj, še posebej za tiste, ki bolj udobno,
imate kaj imenujemo okno terminal.
In to okno terminal omogoča ste izvršiti ukaza, da vas
želijo v tem okolju oblaka.
To vam omogoča, da namestite vsaka dodatna oprema
da hočeš, ker ste tako imenovano koren ali administratorske pravice.
Torej, z drugimi besedami, čeprav je to je končno gostuje v oblaku,
in čeprav imamo jo poenostaviti do neke mere
privzeto dobesedno uvaja, hvala za Dan Armendariz in Dino,
in Dan Bradley o ekipi CS50 je obdobje mimo mnogih mesecih, manj udobna
Način, ki skriva veliko od sprva zmedeno motenj.
Vse, kar obstaja, da predstavljata tipično računalniški sistem
da lahko uporabite v realnem svetu.
>> Torej, kaj vse to pomeni, in kaj lahko dejansko storiti z njim?
Oglejmo dejansko pokukati na program.
Torej bom odpirajo Dejanska okolje tu,
ki je samo naša Chrome Brskalnik, ki bi lahko Firefox,
bi lahko Internet Explorer, ali kakšen drug brskalnik kot dobro.
To je v celoti pregledani tu za trenutek.
In želim, da dejansko draži narazen, kaj je ta program.
Torej, kaj si oglejte, s povečanjem up vrh, na kaj sem storil, in kako sem prišel sem.
Torej, tukaj je tisti, točen Isti vrstic kode.
Torej je ta izjava, kot ste že omenili.
Funkcija, ki pravi, da zdravo.
Zaviti naramnice, na linija štiri in linija šest,
predvidoma vrsta kuverti da je linija, da jo povežemo
z bistvom mojega programa.
Torej res, ta ključna beseda glavna, da je tam gor na spletu tri,
lahko si misliš, da kot enakovreden da ko zelena zastava kliknili,
blok v nič.
Tako, da je vse, kar imamo tukaj, je, ko zelena zastava kliknili, tiskanje, ali reči,
Pozdravljen, svet.
>> Vendar pa si ugibati, zdaj, na kaj to prvo, bolj starinski linija, je.
Sharp vključujejo, odprta pod kotom nosilec, Standard I / O dot h,
zaprite nagnjen nosilec.
Kaj je to morda počne, še posebej, če ste programirani
preden se je v nekem drugem jeziku.
Ja?
>> OBČINSTVO: [neslišno]
DAVID J. Malan: Ja.
Točno tako.
Torej, to vam daje dostop do knjižnica, tako rekoč, funkcij.
In knjižnico funkcij je funkcije, da je nekdo drug
zapisal, bodisi pred kratkim ali dolgo nazaj, tako da boste
ne bi bilo treba znova odkrivati.
Na primer, ne bomo morali vedeti, v letu 2015,
kako napisati kodo, ki postavlja znak na mojem zaslonu.
Je nekdo mislil, da ven s funkcijo printf
tako da sem lahko nekako abstraktno proč od tega, ali plast
na vrhu njegovega ali njenega kodo, in zdaj vzemite
samoumevno, da vsak program pišem lahko natisnete nekaj na zaslonu.
Torej je to prva vrstica tam v enem koraku vključuje tako imenovano header datoteko
za standardno knjižnico.
Torej vidite, jezik v ki smo zdaj delajo
še eno standardno knjižnico z veliko funkcijami.
Printf je eden izmed njih, in da je prva vrstica kode
pomeni mi omogoči dostop do te funkcije, tako da sem
ne bi bilo treba znova to kolo.
>> Zdaj pa pojdimo na spodnjem okencu in naredil točno to, kar sem storil prej.
Trenutek nazaj, ko sem bil whizzing skozi kodo,
ga vnesete ven prvič, Sem zelo hitro tipkal, da zdravo.
Kaj je bilo, da je vse o bi si ugibati?
Kaj sem delal?
Ja?
Pozabi.
To je v redu.
Ja.
OBČINSTVO: ga Prevajanje.
DAVID J. Malan: Ja.
To je bil samo pripravo.
Prav?
Četudi je to popolnoma neznan za vas, to je lepa angleščino podobnega.
To zagotovo ni ničle in tisti, tako da sem še vedno
morali teči skozi, da je tako imenovani Program, prevajalnik, ki se dogaja
da ga vzamete kot vhod in izdelati izhod.
In vsaj za zdaj, v to okolje Linux,
vendar se to ni predpogoj, to je samo, ko bomo začeli,
vam na splošno interakcijo z računalniški sistemi, kot je ta
s tako imenovanim ukazno vrstico.
Torej, z utripajočim hitro in vaša tipkovnica,
in ne toliko miško, in ne toliko okna in ikone in meniji,
raje vse tekstualni.
In čeprav se to zdi na prvi pogled, morda, kot korak nazaj,
je dejansko veliko bolj močan in izrazno pot
za krmiljenje računalnika predvsem kot vi,
sami, postanejo bolj udobna iz manj.
To se dogaja, da vam omogočajo, da narediti veliko več stvari, kot samo tisto, kar je Microsoft
ali Apple vam omogoča, da z njihov grafični operacijski sistem.
>> Torej, ko sem udaril Enter, zdaj, se nič ne zgodi ta čas
ker očitno Program zdravo je do datuma.
In kakšen je bil ukaz Stekel sem po tem?
Dot poševnica Pozdravljeni, in Hello World.
Zdaj pa naredimo korak nazaj za trenutek.
Izkazalo se je, da zdravo je le poenostavljen način za pripravo programa.
Naj samo uvesti en kos žargonu,
potem pa se odmakne iz nje, ker to ni
vse to zanimivo za današnje namene.
Prevajalnik bomo začeli uporabljati se imenuje Jek, za jezik C.
In to je program, ki je teči šele kot smo to storili na ukazni vrstici tam.
In tako, če želim sestaviti program, ki sem
so napisana v datoteko imenovano zdravo dot c, sem dobesedno samo tip Jek Zdravo c
enter.
>> Hecno je, zaradi zgodovinskih razlogov,
če ne določite ime programa
da želim izhod, če ne bom navedite ime datoteke za tiste ničle
in tisti, zelo čudno Pred Konvencija je bila sprejeta leta
kjer se mu je zdelo nekako dober odgovor takrat
dobro kaj je samo arbitrarno pokličite Prvi program bomo prevedite piko ven.
Prihaja prvič v abecedi.
Ven, to je izhod.
Torej bomo poklical program privzeto pika ven.
In to je v redu, ker če želim zagon programa v tem besedilu, ki temelji
okolje, sem tip dot poševnica pika ven enter.
In bi bilo teči natanko tako, kot prej.
Torej, da vidimo, da je resnično hitro.
>> Torej, če sem šel nazaj na moj izvorna koda na CS50 IDE,
in bom namesto tega to, Jek zdravo posteljica c vnesete obvestilo nič ne zdi, da se zgodi,
ampak skoraj vedno v to okolje Linux,
če nič slabega se zdi, da se zgodi, da pomeni nekaj dobrega se je dejansko zgodilo.
Če ne vidite napake sporočilo, vse je verjetno dobro.
In res, če sem zdaj naredil dot poševnica piko ven začne, sem teči moj isti program.
Še vedno imam program Hello od prej, saj res, to je
bo toliko lepše samo tip bi namesto spominjanja
ti zaklinjanjem za ukazi, ampak poglejmo, kako smo
lahko izboljša na to, vseeno.
>> Torej, to je ukaz prevajanje kode.
To je ukaz za zagon prevedene kode zatem.
Kako lahko določite ime datoteke?
No, kaj je samo uvesti en del žargona.
Ko ste v tem Besedilo temelji na okolje,
boste želeli določiti Stvari imenovani argumenti v ukazni vrstici.
Ki je samo fancy način rekel, druge besede na poziv, da
poteg obnašanje karkoli Program tečete.
Torej, še posebej program sem teče, tako da vtipkate ime Jek,
je program, imenovan Jek.
Torej, to je, ali stara šola ekvivalent dvojnim klikom
Microsoft Word ali icon nekaterih programa.
Jaz sem namesto tega vtipkate njeno ime, vendar v tej različici ukaza,
Potem imam dash Ø prostor Pozdravljeni prostor zdravo pika c.
Torej, tudi če ste nikoli pred igral na tem svetu,
vzemite ugibati, kaj ne pomišljaj o zdravo storiti?
Ali kaj je povedal, Jek storiti?
Ja.
>> OBČINSTVO: [neslišno]
DAVID J. Malan: Ja.
Samo nastavi izhodno datoteko, da bo zdravo namesto bolj prismojen dot ven.
In, seveda, poskusimo to.
Torej, če jaz sedaj narediti, najprej dajmo to narediti, r m zdravo.
To je odstraniti.
In to se dogaja, pravijo ODSTRANI običajna datoteka zdravo, ki
je po nepotrebnem Skrivnosten, vendar samo sredstva želite izbrisati datoteko,
in sem tipa y za YES.
In opazili, če bi pogledal na vrh levo, pa je izginil iz tam gor.
Naj zdaj storiti Jek dash o, in Grem, da gredo naprej in to zdravo,
v vseh kape, zdravo pika c.
Zdaj, če jaz dot poševnica Pozdravljeni, kaj bi lahko pričakovali?
>> Mogoče je zadeva občutljiva.
Mogoče to ni.
Pa poglejmo.
No takšno datoteko ali imenik.
In bomo lahko nekako goljufija, ki jih samo gledaš na zgornjem levem kotu.
Kaj sem seveda shranite program kot?
Vse kape zdravo.
Torej res, da je šlo narediti razliko.
Torej, zdaj zdravo svet se je vrnil.
Zdaj je to vse lepo in dobro, in vsi zelo um-omrtvičenje,
na nekakšno GET obtičali v teh podrobnosti, ampak jih razume
je dobro.
>> Tipkanje ven ti bolj dolge zaklinjanjem
se ne bo posebno zabavno, tako da ljudje na svetu
izumil drug program, Pred nekaj leti, ki se imenuje
narediti, da preprosto vam omogoča, da napišete make,
ime programa želite, in da
je pametno, da se bo to videti v trenutna mapa, aka imenik,
in če imate datoteko imenovano zdravo dot c,
da je datoteka pa bo sestavil za vas v program, imenovan zdravo.
Torej, to je veliko enostavnejši način delaš več Grobni ukaze
da smo storili že prej.
In smo že nastavljen CS50 IDE vedeti
da mora narediti črtkano o in številne druge zastave, ali argumenti ukazne vrstice,
da bomo videli kmalu.
>> Ampak kaj je zdaj dejansko ne nekaj več zanimivo.
Vtipkate ven Hello World vse čas je, ni vse tako prepričljivi.
Zato mi dovolite, pojdi naprej in sprememba ta program in reči, zdravo David.
Zdaj bom šel dol.
Grem, da gredo naprej in to bo zdravo.
In spet zdaj ste videli da se vam prikazuje dlje
zaporedje ukazov, ki je početje, saj smo že nastavljen
je na ta način, vendar smo ni treba skrbeti za zdaj
kaj pa počne drugega, kot da je narediti njihov dot poševnica Pozdravljeni, Hello World.
Kaj je narobe?
Ja.
>> OBČINSTVO: [neslišno]
>> DAVID J. Malan: Da.
Torej, noobie napaka.
Opazil sem, da je to super subtilna, vendar zvezdica tu, v zavihku
samo pomeni, da se ne shranijo, in brskalniki in drugi programi
To storite tako včasih.
Torej nadzor s ali ukaz e bi ga morali rešiti.
Zdaj pa mi daj in ponovno zaženite program.
Recompiled.
Desno, tako da je proces, sestavljen iz več korakov.
Nobena od kar je še posebej zapleten, ampak kadarkoli spremenimo datoteko,
moramo spremeniti dobljene ničel in enic, in pika poševnica zdravo.
Vau.
Torej, to je zelo underwhelming da smo pravkar natisne to.
Naredimo stvari malo bolj dinamična, zdaj.
>> Pa se je izkazalo, da je všeč Scratch, C podpira spremenljivke.
In se izkaže, če želite da imajo spremenljivke, ki shranjuje,
ni številka, kot smo običajno storil z Scratch,
ampak kot eno besedo, ali Stavek, ali ime, boste
lahko določite spremenljivko biti tipa niza.
Torej bomo videli več ti vsak trenutek,
vendar se je izkazalo, da je C, in veliko jezikov, kot to,
imajo zelo specifične vrste spremenljivk.
To ni tako kot algebra, kjer dobiš X, Y in Z
in to so samo vedno številke, v programskem jeziku
lahko shranite številke, lahko shranjevanje posameznih znakov,
si lahko shranite cele besede, si lahko shranjevanje cele slike, cele zvočnih datotek,
in podobno.
Zato moramo določiti, kaj vrsta našega spremenljivko.
In po dogovoru bom poklical moj spremenljivi je samo zato, ker je jedrnat,
in s stojala za niz.
>> In potem bom za shranjevanje znotraj te spremenljivke,
samo rad z Scratch ko sem uporabo nastavljeno blok,
Bom uporabite Operater naloga v C,
ki dovolj lepo je enaka podpis, vendar je enačaj to stori.
To je nekaj, kar se premika z desne v levi strani izražanja.
Torej, kaj sem naredil, da bo jasno linija pet, se sem izjavil spremenljivko.
Povedal sem računalnik, daj mi pomnilnik za spremenljivko, imenujemo to je to,
in že vnaprej ve, da grem za dajanje niz v njem.
In niz je le zaporedje znakov.
To je beseda ali stavek ali odstavek, vendar je zaporedje znakov.
To ni številke.
Kaj niz sem bom, da bo dajanje v to spremenljivko?
No, očitno citiram konec citata, "Hannah".
Zdaj opazili vzorec, ki se pojavljajo.
Tam je leva izraz roko.
Tam je prav izraz roko, ločena z enakim predznakom.
In vzemite ugibati, če poznajo kljub temu,
s tem, kar podpičje počne.
Kaj je to verjetno delaš za nas?
Ja?
>> OBČINSTVO: [neslišno]
>> DAVID J. Malan: Ja.
To je samo zaključku linijo.
Prav?
Računalniki želijo biti odkrito povedal, dobesedno, kaj naj naredim.
Tako kot arašidovo maslo in žele primer sendvič,
Če ne določite točno tisto, kar nameravam,
se lahko prepuščeno presoji ali napake.
Podpičje pomeni, to je to za ta ukaz.
To je pa super natančen, in to je zelo lahka stvar pustiti off.
Torej sedaj ta program ne zdi, da se obnaša drugače, dokler I
da bo bolj dinamičen.
Torej, namesto da težko bi moja ime, dovolite mi, da vrednost ograde.
In se izkaže, da je, in vem, da je to od tega, preberite dokumentacijo,
in se uporablja funkcijo za let, ki printf je bil zasnovan tako, da bo dinamično.
Nimate vnaprej vedeti kaj besede, ki jih želite dati v njem.
Lahko namesto tega imajo ograda, kot odstotno s, ki
se dogaja, da povej računalnik, dal niz tukaj.
>> Kateri niz hočemo tam čaka?
Will Izkazalo se je, da je med njimi oklepaje, ki se spomnite, razmejiti
vhod za funkcije, če imate vejico ločen seznam stvari tukaj,
smo dejansko preide v večkratnik vložki za funkcijo.
Torej, samo rad nekaj praske bloki, morda ne
so igrali z njimi vaši projekti ali še sploh,
nekateri Scratch bloki imajo dva vhoda.
Dve beli škatle si lahko vnos številk ali besed v.
Torej, da ne C ima funkcije, kot so printf, ki lahko traja dva vhoda.
In spet, to vejica se jih ločuje.
Torej, v angleščini, še enkrat, tudi če ste nikoli programirano pred,
s tem, da logika printf je funkcija, ima dva vhoda, od katerih je eden
je ograda, kaj bi si upam printf bo naredil s tem vložkom?
To se dogaja, da se pozdravi Hannah, upajmo.
Torej, da to potrebujemo, da ga shranite storiti.
Jaz grem za pomanjšanje.
Jaz bom šel nazaj dol in pravijo, da pozdravi enter.
Oh.
Nekaj ​​je narobe, in dejansko To je precej prepričljivo.
Imam šest vrstic kode in kot 12 vrstic napak.
Torej, se veselim tega.
Torej, kaj se dogaja tukaj?
Torej najboljše pravilo palca tukaj, še posebej, če ste začeli ven,
ne dobijo moti stvari na dnu.
V bistvu sem zelo načrtno samo pomika navzgor
ker je zelo pogosto, je računalnik ni tako svetlo pripomočka.
To se dogaja, da bi dobili zmeden.
Če vidi eno stvar, ki da ne razume,
je morda napaka drugo vrstic kode kot nepravilne,
čeprav je to popolnoma v redu.
Torej si vedno želeli delati od zgoraj navzdol skozi napak.
In sicer to je super Skrivnosten v tem trenutku.
>> Napaka, uporaba neprijavljenega identifikator niz.
Ali mislim standardna?
Ne, mislil sem niz.
In to je gledala, morda je tipkarska napaka.
Nekako podobno, preverjanje črkovanja je z zelo geeky način, vendar razlog tod
in boste to vedeli, samo s prakso, je
da se izkaže, da je niz ne obstaja v C. V bistvu, C
je še posebej stari jezik, in to je zelo nizko raven,
in to ne veliko funkcij da ste morda zrasla
z če imate v resnici, programirano v Java, kot nekateri od vas,
lahko pa ga naučiti novih stvari.
In res, smo storili to CS50, čeprav do konca semestra
vseh teh koles usposabljanja bo so bili ukinjeni,
kaj počnemo v teh prvih nekaj tednov
sprva je imamo tudi ti vključujejo CS50 dot h.
Ki je datoteka glave.
Več o tem v prihodnosti.
>> To je datoteka, ki vsebuje funkcije da smo napisal za vas.
In med temi funkcijami je funkcije za pridobivanje vhod
od uporabnika, kot so strune, in številke in realne številke, in še več.
Vendar ima tudi nekaj bližnjic.
Opredeljuje Boolean kot podatkovni tip.
C nima resnična ali neresnična.
Vendar smo lahko izročiti to pojem true ali false s pomočjo te knjižnice.
In prav tako nima niz zgrajen leta, dokler ne bomo vključiti te vrstice.
Tako da je ta vrstica kode pove prevajalnik, hej, Jek, poglej
V tej datoteki za celoto kup kode, ki CS50
je napisan tako, da vsak, ki uporablja to datoteko
lahko za odobrena lastnosti so jih dodali.
>> Torej, zdaj mi gredo naprej in počistite zaslon,
in če je radoveden Pravim samo nadzor l vsak čas, da počistite zaslon,
ali lahko vnesete jasno.
Jaz sem šele tekoč, da gredo naprej in zdaj Tip da zdravo, in vse je dobro.
Še vedno Skrivnosten izhod, vendar to ni napačna sporočila.
Zdaj, če sem naredil dot poševnica zdravo, in kot prahi, dot slash je ne poznajo najbolj.
To samo pomeni, pika sredstva trenutni imenik.
Torej, če ste že kdaj uporabili DOS, ali Linux ali Unix
ste morda naredili nekaj kot cd dot dot, kjer
dot dot pomeni iti nazaj v čas ali pa pojdite nazaj, ali višje
v vašem imeniku.
Pika pomeni le pogledati v trenutni imenik.
Hočem zdravo, ki je tukaj.
In res, zdaj pa pravi, pozdravi Hannah.
In če sem jo ponovno spremeniti Maria, prevedem
da bi Pozdravljeni, dot poševnica Pozdravljeni, program nenehno spreminja.
>> Ampak to je še vedno Precej neumno programa.
Če želim, da ladja ta program, ali ga dal prijatelju,
ali ga dati Maria ali Hannah za to zadevo, da je v redu.
Lahko ga prilagodite za oba, vendar je nikoli ne bo dinamično.
Tega ne morejo spremeniti, ko je bilo sestavljeno dol v tistih ničel in enic.
Torej, kaj smo naredili nekaj pametnejši?
Kaj pa, če namesto trdega kodiranja v programu ime te osebe,
Kaj pa, če smo le dobili niz na zahtevo?
>> Torej, z drugimi besedami, naj to storijo.
Grem prevesti ta program.
In mi povečate na dnu zdaj.
Naredite zdravo dot poševnica zdravo.
Zdaj se nič ne dogaja.
Lahko dobite hiter prostovoljca da bi se kaj zgodilo?
Pridi gor.
Kako ti je ime?
>> PANCHO: Pancho.
>> DAVID J. Malan: Pacho?
Pridi gor.
Ko ste prišli sem gor, to je bo zelo underwhelming,
ampak to je bolj zanimivo od mene, da ga vnesete.
Če želite, da gredo naprej in vtipkajte ime, sem naredil ta program samo za vas.
Samo vnesite svoje ime.
Enter.
Čudovito.
V redu, hvala.
>> PANCHO: Najlepša hvala.
>> DAVID J. Malan: OK.
>> [Aplavz]
>> To je bilo zelo prijazno.
Izvoli.
Kaj smo storili?
Torej smo končno vsaj je ta program dinamično.
Zdaj je še gotovo ga načrtovanja underwhelming,
ampak imamo končno možnost, Zdaj za pisanje kode vnaprej, veliko
kot avtorji printf, in nato dinamično
prilagodijo temelji na vnosu smo predal, bodisi s programer,
ali s strani človeka, ki je dejansko interakcijo s programom.
Torej Dovolite dejansko sedaj poskusiti storiti nekaj drugih konstruktov
in videli, če ne moremo narediti programov sami bolj prefinjene.
Torej, gremo naprej in namesto pisanju tega enega iz nič,
Jaz bom šel v današnji izvorna koda, in vse to
je na voljo na tečaj je Spletna stran, in lahko povlečete in spustite
v svojem okolju pridejo v petek, ko problem
sklop 1 vam daje navodila, ali si lahko
to storiti v ukazni vrstici kot dobro, ampak se nadaljuje v p nastavite 1.
>> Poglejmo, kaj je v tem programu tu imenujejo, gad pika c.
Zdaj sem že komentiral je, toda kaj je novega?
Na prvi pogled, kaj vrstica kode je popolnoma nov?
Verjetno ne bistveno poznajo zdaj.
>> OBČINSTVO: [neslišno]
DAVID J. Malan: Ja, tako int x enaka dobili n.
Mi nikoli nisem videl nič od tega prej, vendar int je verjetno
simbol za kakšno vrsto spremenljivka [? iz?] celo število.
Torej int za celo število.
To je samo se bolj jedrnat. x je samo arbitrarno.
x in y in z so še zelo primeren za številke,
ampak na splošno bomo uporabili besede, enkrat naši programi dobili bolj zapleten.
Get int, seveda, podobno kot get vrvico,
je verjetno, da bi dobili int od uporabnika,
in potem bomo storijo enako stvar z y.
In očitno je, čeprav je to zadnja vrstica, 24, izgleda bolj zapletena,
to se dogaja, pravijo vsoto to in da je ta druga stvar.
>> In obvestilo odstotkov i verjetno pomeni kaj?
Kakšno vlogo odstotkov i očitno služi?
To je le ograde.
Prav?
Odstotkov je bilo za vrvico, odstotkov i za celo število.
Tam se bo odstotka f za plavajočo vejico vrednost, ki
je le število z decimalno vejico.
Z drugimi besedami, realno število.
Torej, kaj je dejansko zbere ta programiranje resnično hitro in ne predstavljajo seštevalnik.
Ops.
Dobra priložnost.
Tako obvestilo tukaj, ves ta čas mojega uporabnika ime za ta račun jharvard.
Jaz sem v CS50 IDE, aka IDE50.
In zdaj v modri tukaj, je omemba, vendar iz okolja, iz kje sem.
In v resnici, če povečavo vrh tukaj, opazili, da imam IDE50
in vidim to besedo, če vas nekako obrni glavo na stran, delovni prostor.
Na kratko, je dejstvo, da Vidim tilda delovni prostor slash
pomeni, da se v tem besedilu okolje ukaz temelji
Jaz sem v besedilni ekvivalent Tudi grafični mapi tukaj.
Torej, ko sem naredil dot poševnica seštevalnik, da je rekel, ne pravilo
da bi ciljno postanek seštevalnika.
Ne vem, kaj to pomeni, ampak to je slabo za neznanega razloga.
No takšno datoteko ali imenik je še bolj jasno.
Kje pa je potem?
Na podlagi kjer sem kliknil Če želite odpreti datoteko prej.
Kje bi lahko bilo?
>> To je verjetno v viru en w, v sredo,
in sem lahko videl, res, če sem odprla, da je gor.
Obstaja seštevalnik pika c, vendar Ta temelji na besedilu okolje,
še enkrat, moram biti zelo jasna.
Če želim spremeniti imenike v vir eden Sreda, moram tip,
cd prostor vir ena Sreda vstop in zdaj
moje takojšnje spremembe daj mi vizualne iztočnice, ki
Jaz sem, res, drugje V mojem okolju,
zdaj pa ne morem narediti, da seštevalnik, se zdi, da deluje,
dot poševnica seštevalnik, mi celo število.
Ena.
Dva.
Vsota ena in dva je tri.
Ampak če ne bom sodeloval, Pa poglejmo, kaj bi dobili int počne.
Daj mi celo število.
No.
Poskusite znova.
V REDU.
V redu.
50.
V redu.
Torej je končno sodeluje.
In to je nekaj izmed funkcionalnosti, ki te funkcije
so lahko zgrajena na za vas.
>> Tako znotraj izvajanja od dobili int, kaj programiranje
zgraditi iz prejšnjega tedna, je verjetno v tam prisiliti to vedenje ponovnim poskusom,
retry, retry?
Ja, tam je verjetno nekakšna zanka.
To se dogaja, da si skladenjsko razlikuje od blokov Scratch je,
ampak to je res kaj je v datoteki.
In čez nekaj tednov, da bomo dejansko videti v knjižnici CS50
glede tega, kaj je notri, vendar pa je zanka nalaga točno to.
>> Naj igrajo bedni Igra tukaj s to datoteko.
Pogoj nič dot c.
Mi smo le, da bo na splošno začnemo na ničlo.
In držim pomikanjem preteklost nekatere stvari na vrhu.
V modri tukaj, razmejeno z vsemi od teh zvezd in poševnic,
tiste, ki ste programirati pred tem, kaj je to?
Zakaj hranimo preskoči nad njim?
Kaj?
>> OBČINSTVO: To je komentar.
>> DAVID J. Malan: Ja.
To je samo komentar.
To je komentar za ljudi za branje, ki je v našem primeru,
nam pove, kaj ime datoteke je, kdo ga je napisal, in kaj počne,
tako da ne boste imeli prebrati kodo
vedeti, kaj ta datoteka je vse okoli.
To je samo opis, vendar funkcionalno je nepomembno.
In lahko celo izbrisati iz moje datoteke in nima vpliva.
Sočna linije so ti prva dva tukaj, zdaj.
int glavno praznina je enakovreden naše ko zelena zastava kliknili,
tako bomo zapustili, da se za danes in se bomo vrnili,
na koncu, glede tega, kaj int in nični so, ampak zdaj,
opazili, kaj sem naredil tudi tu, lahko tudi vi,
če imate v skladu pripombe, če imate
misel želite deliti o nekem kodeksu,
Konvencija v C je storiti poševnica poševnica, in nato nekaj jedrnate besede,
ni polno kazen, splošno ni odstavek,
da samo pojasnjuje, da vas, ali vaš TF, ali drugi bralci ali sodelavci,
kaj vaša koda počne.
Torej, namesto da morajo iskati na to in sklepati iz vrstic
devet in 10, kar je to počne v skladu osem
Pravkar sem dal komentar na od uporabnika zahteva, za celo število,
potem nimam razmišljati preveč težko o tem, kaj so linije devet in 10.
Vem samo, da je to, kaj skupaj počnejo.
>> Kako?
No, tukaj je poziv.
Tukaj je že od notr.
In temelji na prejšnji vedenje, se zdi, kot get int
je dovolj pameten, da se prepričajte, da človeški sodeluje in ga daje
celo število.
Toda zdaj smo videli to.
In to spominja na nič.
Jaz sem trdil, da sem analizira prispevek uporabnika,
vendar nekoliko nenatančno.
In to očitno v C je, kako izražamo if drugega, podružnica,
vilice v cestnem prometu, vendar sem pravijo nekoliko nenatančno.
Kaj je bug v tem programu?
O bolj nazaj?
Ja.
>> OBČINSTVO: [neslišno] nič.
>> DAVID J. Malan: Ja.
Torej, če sem tipa v nič, kaj menijo, točno to drži, ali kotna primer,
če hočete.
Torej, če sem tipa v nič, kar od bloki se dogaja, da ga očitno zgrabi?
If ali drugega?
Drugega, in to je reči, ste pobrali negativno število.
In res, se ne bi nič da bo pozitiven ali negativen,
in tako, da bi bilo zmotno.
To bi bila napaka.
Torej, kako lahko to popravimo?
Nekdo, ki še nikoli ni programirana prej?
Hočeš--
>> OBČINSTVO: [neslišno]
>> DAVID J. Malan: Uvlečljivi?
>> OBČINSTVO: [neslišno]
>> DAVID J. Malan: Oh, imate?
Nekdo, ki še nikoli ni programirana prej.
Želite, da poskusite svojo roko na to je v rdeči srajci?
Pridi gor.
Oh ja, pridi gor, če vas ne moti.
Torej nikoli programirana Prej, kako ti je ime?
LAUREN: Lauren.
DAVID J. Malan: Lauren, vse v redu.
Torej popraviti to napako za nas.
Ste jih nisem videl C, verjetno, in verjetno noben drug jezik.
Torej popraviti ta program za nas.
Lepo te je spoznati.
Ni pritiska.
LAUREN: Ja.
>> DAVID J. Malan: Ampak spet, če je to Gamble gre po načrtu,
takeaway tukaj bo bo, samo še enkrat, da začnete
opažati vzorce in sklepati iz obstoječe sintakso
kako pa ti lahko izrazijo sami, no pun namenjena, da bi
ujeti nekaj dodatnih scenarij.
Tako smo praviš else if.
printf, dobro.
In obvestilo z CS50 IDE in frankly-- IDE
stojala za integrirane Razvojno okolje.
To je samo fancy način rekel program, ki vam pomaga program.
To počne uporabniku prijaznih stvari, kot so ko vnesete eno oklepajev,
samodejno vam daje drugi.
Domneva je, da ste sčasoma bo želel, da tip, ki,
in ga tudi ne z narekovaji.
>> Torej rad linijo 23.
99% poti tja.
Nekdo želi gonge s konico?
Slišal sem, podpičje iz občinstva.
Dobro.
Tako da dokonča to.
In zdaj sem samo še malo Strah z linijo 21.
Kako želimo izraziti to?
Kaj vprašanje hočemo vprašati, misliš?
Torej prej smo zastavili vprašanje, če je n večji kot nič, to.
Else, storite to.
Zato moramo izbrati Vprašanje tukaj vprašal.
OBČINSTVO: [neslišno]
DAVID J. Malan: Dobro.
Torej, če je n enak nič.
Odlično.
Torej, kaj je premor tukaj.
Najlepša hvala za smele to.
Naj vam malo dobro zaslužil stres žogo, morda tam.
Torej smo skoraj tam.
V bistvu, Lauren, če ne Um, dovolite mi, da en poteg tukaj,
samo, da je skladna tudi z kar smo videli v nič, kar
ne želim narediti s črtami 21 in 24, prav tako spet temelji
o tem, kako bomo to storili v nič, morda?
>> OBČINSTVO: Premakni gor.
>> DAVID J. Malan: Ja, ga premakniti navzgor.
Tako stanje drugega, tretjega, ali četrti ali peti, ali končni podružnica,
naj bi res prišel kasneje, in da je samo po dogovoru
samo zato, ker če boste.
Torej, jaz ne potrebujejo, da bi to poteg.
In moram dal moje kodrasti brace nazaj.
In zdaj bo ta program zbere.
Mi smo tako blizu, vendar pa je zelo, zelo subtilno bug.
Poglejmo, kaj se zgodi.
>> Najprej, naj gredo naprej in pomanjšavo.
Grem, da gredo naprej in tip bo stanje nič.
Oh, sem se zlagal.
Zdaj prevajalnik je pravzaprav zelo pametna.
In res ne razumem je sporočilo o napaki.
Uporaba rezultat nalogo kot pogoj brez oklepajev,
je očitno slabo.
Ampak kaj to pomeni?
>> Torej še enkrat, išče vzorce s kodo, ki smo jih videli,
kaj je linija 17 dejansko počne, čeprav Lauren nekoliko namenjena
drugače?
Ja.
>> OBČINSTVO: [neslišno]
DAVID J. Malan: Ja.
Torej, ne pozabite, enačaj, očitno kot smo ga uporabljali doslej, ni enaka.
Njena naloga, od desne proti levi.
Torej vrstica 17 v trenutku je pogoj, in to je
izvršuje kodo v oklepaju, ko pa da je koda izvrši,
kaj se dogaja na vrednost nič?
Kar se dogaja na vrednost n?
Postati nič.
Torej, če je n postaja nič, in spet, kot na zadnji teden,
smo na splošno rečemo, da nič je napačna in eden je res,
ali da je eden in ne nič.
Torej true in false, eno in 0.
Če je n od linije 17 glede na vrednost 0, je nič res?
No.
Po definiciji, nič je napačen.
To je konvencija smo dogaja, da oklepajo napreduje.
Tako bodo linije 18, 19, in 20 kdaj pride zdaj, logično?
Ne morejo.
Tako smo zastavili vprašanje vendar ne povsem natančno,
in ne veš, če tega ste jo videli, je rešitev v C
je, ko želite, da izrazijo enakost, pravite Ene enaka.
Torej je bil enačaj že porabil z nalogo, od desne proti levi.
Enako enaka sredstva enaka.
In če si res želite, da vaš um se sklonil, v JavaScript in PHP,
tam je enaka enaka enakimi, ki pomeni nekaj drugega v celoti,
vendar bomo dobili, da je pred dolgo.
>> Torej, je to preprosto popraviti, toda zavedati super enostavno, da bi to napako,
in potem se sprašujem, in boj za minute, če ne eno uro,
zakaj je moja koda ne izvršitve, kot nameravam?
To je zato, ker nisi povedal, je natančno tisto, kar si mislil.
Tako da je bil skoraj popoln, in je bilo super
da smo naleteli teh dveh majhnih Stvari, ker zdaj, če smo jih popraviti,
in storim, da bi stanje nič dot poševnica stanje nič,
Želel bi celo prosim.
Pa poglejmo.
No.
To se dogaja, da me je prisilil, da to storite.
Torej 42.
Pobral sem pozitivno število.
Torej, zdaj, kako moram dokazati ta program pravilna?
Če ste matematik, ne moreš res to dokazati poskusa in napake,
prav?
Lahko ne le dokazilo, ki ga Na primer, ampak vsaj
kot programer nismo bomo poskušali dokazati za zdaj
da to dejansko pravilna, vendar sem morala verjetno
preizkusite nekaj reprezentativnih primerov.
>> Testiral sem 42.
Jaz bi preizkusili 43.
Jaz bi preizkusili 44.
Testna 45.
Prav?
Ampak jaz bi to res dolgo časa narediti.
Kaj bi bilo nekaj več zanimivih primerov poskusiti?
OBČINSTVO: [neslišno] nič.
DAVID J. Malan: Torej nič.
Zagotovo.
In dobro, da smo ga dobili ta čas, zahvaljujoč novi kodeks Lauren.
Kaj je še en dober primer, da poskusite?
OBČINSTVO: Negativno ena.
>> DAVID J. Malan: Negative ena, in morda kaj malo večji,
tako da morda negativno 42, vendar na splošno, ko
testiranje vaših programov premika naprej, vi ste
bodo želeli, da razmišljajo k sebi, kot kaj
so temeljne različnih primerih.
In upam si trditi, negativno zadevo, pozitiven primer in primer nič
precej krogih ti ven.
Oglejmo si varianto tega, čeprav.
Pogoji ena.
To je pravilna rešitev tod tako da boste videli dva in na spletu,
če hodiš skozi walkthroughs, bo na splošno
prirastek te postopoma, dokler ne bomo dobili ravno pravi pristop.
Kaj pa, če smo želeli vprašati dve vprašanji naenkrat?
>> Naj odprejo to namesto tega.
Non-stikalo, zaradi razlogov, bomo videli še čas.
Kaj je novega skladenjsko tukaj?
Jaz sem trenutno igra igro kjer je računalnik povedal
me, daj mi celo od enega do 10,
in potem sem sodeč prispevek uporabnika.
V angleščini, ki temelji na koda, ki jo vidite tukaj
v modri barvi, kaj je ta program počne?
OBČINSTVO: [neslišno] obirajo velika ali majhna številka.
DAVID J. Malan: Ja.
To je samo odloča, ali Pobral sem velik, ali medij,
ali manjše število temelji na zelo arbitrarna opredelitev malih, srednjih,
in veliko tukaj, ampak obvestilo skladnja, da je novo je to.
Ni manj kot int ali enaka podpis, ali večja oziroma enaka podpis
kjer je eden nad drugim, da vas lahko izrazi v kot Microsoft Word.
Torej v programskem jeziku tipično pač dva znaka,
eden za drugim.
In kaj je to verjetno predstavljajo, ampersand 'znak.
OBČINSTVO: [neslišno]
DAVID J. Malan: Ja.
To samo pomeni, in zato, ker je Izkazalo se je, da avtorji C
uporablja en sam 'znak, ki si morda mislite
bi bila kot nalašč za razumevanje in je že porabil,
tako ampersand ampersand dejansko ujame zadevo dejansko želimo.
>> Torej, kaj je zdaj posrnuti čez dve stvari.
Naj gredo naprej in odprla eno.
Nekaj, kar je malo zaskrbljujoče.
Nenatančnost dot c.
Naj vam predstavim dve stvari tukaj.
Ena, obvestilo, da lahko storimo matematike, kot je prav tako kot prej, ko
smo naredili plus dveh številk, X in Y.
Kaj je ta program očitno počne?
Sem ga še ni komentiral, in sem predstavil odstotno f,
vendar sem hitro rekel prej odstotkov f pomeni plavajočo vejico
vrednost, ki je realno število.
Nekaj ​​z decimalko Točka, ki je ni celo število.
Kaj misliš, da je ta program me poskuša prikazati na zaslonu?
Ja?
OBČINSTVO: Rezultat enega nad 10.
DAVID J. Malan: Ja.
Kakšen je rezultat enega deljeno z 10.
Prav, ker vsi vi imate verjetno odrasel vedel, da je eden več kot 10
je kaj?
Ja, to je samo 1/10 ali 0,1.
Prav?
Torej, poglejmo, kaj to dejansko je.
Zato mi dovolite, pojdi naprej in rešiti to.
Naj gredo dol.
Naredite nenatančnost dot poševnica nenatančnost, in obvestilo, preveč,
v okolju Linux, ne boste morali vnesti ven nenatančnosti in sprejeti
cel dan.
Na splošno, če ste zadeli Tab, je bo končal svoje misli za vas,
temelji na besede, ki so na voljo v trenutnem imeniku.
V REDU.
Torej ste imeli prav.
Ena deljeno z 10 je v bistvu 0,1.
Ampak jaz sem malo radoveden.
In se izkaže, printf podpira nekatere funkcije
s katerim lahko določite več kot privzeto število decimalnih točk.
Torej, če hočem videti 10 decimalko Točke lahko storim odstotkov,
za simbol ograde, dot 10 za, daj mi 10 pikami
in nato še s plavajočo vejico vrednost, in kot prahi,
kaj je to poševnica nazaj n očitno smo vedno uporabljate?
Izkazalo se je, da je Simbol za novo linijo.
To je zelo eksplicitna način rekel z računalnikom,
kazalko premakniti v naslednjo vrstica po ste končali.
In bomo videli, kaj se bo zgodilo če ne bomo storili.
>> Naj prevedem, da nenatančnost.
Zdaj dot poševnica nenatančnosti.
V REDU.
Še vedno prav.
Ena deljeno z 10.
Zdaj sem pridobivanje malo radoveden, čeprav.
Kaj pa, če gledam 20 decimalko poudarja, prevedem, ponovitev,
in kot prahi za Hitrost, lahko uporabite tudi
vaš gor in dol puščice, da pomikanje po vaši zgodovini,
tako da vam ni treba hraniti vpisovati teh ukazov, vnesite.
Huh.
Nisem se naučijo, da v osnovni šoli.
Vse je v redu, zato mi dovolite, glej kot 29 mestih ven.
Mogoče je samo krompir.
Mogoče moj računalnik deluje čudno.
To ni stvar, kajne?
To počne nekaj deterministično.
Tako da nenatančnost.
OK, da je zamočil.
Torej, kaj se dogaja?
>> Torej očitno Vaš učitelja je ležal
da vas vse to čas za Razlogi, da bomo videli kmalu.
Ampak kaj je na koncu z enim drugim programom.
To je malo programi nekdo napisal pred nekaj leti,
in je pravzaprav del tekmovanja.
Nihče pravzaprav piše kodo kot je ta, in če boste to storili,
to je slogovno problem.
Ampak ljudje to za hvalisanja pravic.
Če želite napisati najbolj zmedeno išče program, ki
Kljub temu pa nekaj zanimivega.
In opomba Mislil sem, da bova na dopustu danes, preden nas Colton igra tukaj,
je za izvajanje tega programa, ki celo v samo uporabo
C v to besedilo, ki temeljijo na okolje, nam to daje.
Prekleto.
>> [Smeh]
>> Ostani v pripravljenosti.
[Neslišno] c dash l m.
Boste videli čarobno zaklinjanje, da bomo videli kmalu.
[Neslišno] Vredu.
In zdaj si lahko celo delati stvari, kot je ta.
To je to.
Za CS50 mi, boste videli v petek.
>> [Predvaja glasba]
>> [Aplavz]