[Powered by Google Translate] DAVID Malan: Þetta er CS50, og þetta er upphaf Vika 1.
Það sem við héldum að við myndum gera í dag er að taka a líta til baka á
eitthvað sem margir af þú hefur sennilega gekk fortíð fyrir suma
tími núna og getur litið svolítið kunnuglega.
Þessi hlutur hér, þetta er auðvitað í -
Áhorfendur: Science.
DAVID Malan: Science Center.
Svo er þetta í raun einn af elstu tölvum
aftur frá 1940.
Það var eitt af fyrstu electromechanical tölvum
sem var fær um að sérstaklega löng,
sjálf-viðvarandi útreikninga, og það sem við sjáum í raun í
vísindi sent er aðeins lítill stykki af þessu.
Það sem við héldum að við myndum gera þá er að líta til baka á vídeó
sem var gerð fyrir nokkru, að kynna þetta
hlutur til í heiminum.
Og þú munt sjá frá tónlist og rödd sem reyndar þeim
voru mjög hamingjusamur sinnum.
>> [Vídeó spilun]
-A sigur á stærðfræði og vélrænni kunnátta er þetta
frábær ný sjálfvirk reiknivél við Harvard University.
Flókinn vandamál í stærðfræði, setja í gegnum
vél í dulmáli formi á borði, eru nákvæmlega leysa a
mínútu brot af þeim tíma sem þarf til að manna
útreikning.
Hannað til að flýta allar gerðir af stærðfræði og vísinda
rannsóknir, risastór vélrænni heilinn vinna fyrir United
States Navy til loka stríðið er.
>> DAVID Malan: Svo er það sem þú getur ekki vita að það væri í
þetta sama tæki sem senn við öll nú taka ansi mikið
sjálfsögðum hlut var myntsláttumaður að um galla.
Þá kom einn af verkfræðingum að vinna í þessari tölvu
bókstaflega fann lítinn Moth í vél sem leiddi
í sumum röngum útreikningum.
Og eins og sagan fer var að Moth límd þessum log
Tímaritið hér, aftur frá september 9 í 1940-eitthvað,
og þannig fæddist í heiminn hugtakið "galla".
Svo héðan við teljum galla til að vera hvers konar mistökum í
forrit, hvort tilbúnum eða, í þessu tilfelli, skordýr.
>> Svo nokkrar tilkynningar, eins og við halda áfram.
Svo hefur CS50 hefð að bjóða lunches nokkurs konar á
flestir föstudagar á annarinnar, þar sem við taka 30 til
40 nemendur á eldi og ís á torginu fyrir frjálslegur
spjall, tala um tölvunarfræði,
tala um framtíðina.
Við bjóðum Alumni og vinum frá iðnaði til að spjalla upp
nemendur eins og heilbrigður.
Virkilega til enda að gera það sem er nokkuð stór flokkur
allt meira náinn, að minnsta kosti einu sinni á meðan á
hlutar nemenda.
Svo ef þú vildi eins og til að tengja okkur á föstudaginn, 01:15, fara
CS50.net/lunch á RSVP.
Og við munum gera þetta recurringly, svo ekki að hafa áhyggjur ef þú ert ekki
meðal fyrstu 30 eða svo í þessari viku.
>> Svo skýringar fræðimaður.
Orð um auðlindir sem mun nú byrja að vera laus
nemendum í bekknum.
Svo höfuð þín þarf ekki að vera niðri á meðan fyrirlestrum
scribbling niður allt sem ég segi og svo framvegis, það sem við gerum
í staðinn er að veita frá kennara á
Canonical setja seðla.
Þannig að við höfum einn af félögum kennslu okkar, Andrew Sellergren,
sem sest niður í hverri viku, farið yfir vídeó, og þá
skrifar niður það sem við höldum að sé nokkuð
opinber sett af athugasemdum.
Og Andrew hrifinn, einnig að setja snarky neðanmálsgreinar í
The botn.
Svo þú munt vonandi njóta þær sem tilvísun bók fyrir
gaman, og einnig koma quiz tíma eins og tækifæri til að endurskoða
hvað gerðist í einstökum fyrirlestrum.
Svo þeir eru tengdir á fyrirlestra síðunni.
>> Vandamál setja 0, á meðan er út.
Og með tilliti til úrræði fyrir þig -
er walkthrough.
Milo leiddi fyrst á föstudag.
Það var tekið, að setja á netinu eftir laugardag.
Og átta sig á, ef þú ert ekki viss um hvar á að byrja,
fyrir þessu eða framtíðar p-setur, alltaf snúa fyrst til
walkthrough eða vídeó þegar í stað.
Sectioning er í gangi, á cs50.net/section er þar sem þú
að senda óskir þínar, ef þú hefur ekki
þegar með í dag.
Þar köflum hefst þetta kemur sunnudagur, mánudagur,
og þriðjudagur.
Við gerum kafla þá þrjá daga í hverri viku af
önn að mestu leyti.
Og við kynna einnig aftur, mismunandi lög.
Svo þú verður að vera beðin um þetta sectioning mynd, ef þú
hef ekki séð það nú þegar, ef þú ert meðal þeirra sem minna
þægileg, öruggari, eða einhvers staðar þar á milli.
Og ef þú ert svona á grindverkinu, yfirleitt einhvers staðar í
milli er það sem flestir nemendur endanum stöðva.
Viðtalstímar hefjast í kvöld.
>> Svo Scratch frekar lágt lykill, jafnvel þótt það er alveg eðlilegt
að keyra í mismunandi galla, eða vera óviss um hvernig á að
framkvæma eitthvað.
Svo því að við munum byrja Viðtalstímar þessari viku.
Þeir ætla að vera á Annenberg mánudagur, þriðjudagur, miðvikudagur,
Fimmtudagur, 20:00-11:00 á brot heila.
Upper classmen getur fengið í, og ef þú ert alltaf í vandræðum með að fá
í dyrnar, því að þeir ætla að högg, bara tala á þinn hátt
í og útskýra að þú ert með CS50.
Venjulega 20 til 30 af okkur á starfsfólk mun vera til staðar til að hjálpa
þú einn á einn.
>> Við komu hugmyndin er þessi: þú munt koma fartölvuna þína,
þú munt hafa hleðslutækið þitt, munum við hafa auka snúra vald,
einkum meðfram suður vegg Annenberg þar
það er hellingur af rafmagns-verslunum.
Og helstu innganga benda til Viðtalstímar Q & A er að fara á
cs50.net/discuss og að senda
spurning þín þar.
Og til að merkja hann með pset 0 eða pset 1, hvað sem viku
gæti gerst að vera.
Og svo það sem við munum gera er að hafa borð á félagar kennslu
og auðvitað aðstoðarmenn, yfirleitt 8 eða 10 eða svo af okkur,
að fara í gegnum, halda vakandi auga á borð, og
plokkun burt spurningum virkilega eins fljótt og við getum,
vísa þér að tengjast innlegg ef þú hefur ekki fundið þá
yður, á netinu tilvísanir, sem við á.
Og svo ef það eru vandamál, sem það óhjákvæmilega
verður, eða það gerir bara meira vit í að setjast niður einn á einn,
vinna í gegnum vandamál með einhverjum.
>> Eða þú kemur bara í skrifstofutíma raun
þurfa að hugarfari.
Þú vilt ekki að fara í gegnum rafrænu formi, þú
virkilega að hitta einhvern.
Samskipti sem okkur, og hvað mun gerast er þegar þinn
spurning hefur sést af starfsmanni, og við
ákvarða, yup, ætti þetta að vera send til einn af 20 eða
30 liðsmenn hér á staðnum, sem þú munt sjá á efst til vinstri á þessu
lítið inn í biðröð hnappinn byrjar að blikka á cs50.net /
ræða.
Og þetta er að segja þér að þú nú hafa verið boðið, svo
að tala, til að slá inn í biðröð.
Og með því að smella þessi hnappur, nafn þitt mun þá birtast á
iPad sem CS50 kveðjuíforrit, einn af höfuð námskeiðið, mun
að halda nálægt dyrum Annenberg, sem mun þá
sjá sem lýst hér, að nemendur, sem hafa spurningar um
vinstri, starfsfólk sem eru til staðar til hægri.
Og með því að smella á vinstri og hægri, vefskoðarinn þinn mun
byrjar nú að blikka eins fljótt og, til dæmis, prófessor McGonnagal
er tilbúinn til að sjá þig á ákveðnu borði í Annenberg.
>> Svo fórum við í þessa síðasta ári.
Við höfum rebooted Viðtalstímar og
aftur innleitt mikið af hugbúnaði.
Svo átta sig á að þetta mun vera hita upp í þessari viku.
En einnig að átta sig líka á árum áður, eins og þú gætir hafa heyrt
frá vinum, skrifstofa klst var örugglega 50 til
150 nemendur í einu.
Og það er einfaldlega ekki mögulegt fyrir okkur að höndla það
áhrifaríkan hátt, einn á einn, um kvöldið.
Og svo hvað við erum í raun að fara að reyna að gera á þessu ári er
nýta á þá staðreynd að mikið af spurningum eru
algengar og geta oft verið betur svarað
asynchronously.
Svo er hægt að raða á hugsa um viðbrögðum starfsmanna,
og við getum hugsa um númerið þitt, án þess að upphitun
þrýsting endilega barátta
gegnum það hlið við hlið.
Svo áætlum við að tæplega þriðjungur eða helmingur af þeim spurningum
verður send í mann, og við munum reyna að reyta burt eins
margir sem helmingur eða meira með rafrænum hætti,
á skrifstofutíma.
Og við munum halda áfram að nota Ræddu
alla vikuna eins og heilbrigður.
>> Og loks, átta sig á að þetta námskeið er hægt að taka framhjá / mistakast.
Svo ef þú ert á the girðing eða hugsa bara að þú ert í raun
ekki viss um hvort þetta sé heimur fyrir þig, eða er þetta í raun
alveg erlendum þér, átta sig á að þetta er frábær leið
að ná upp smá traust sem á að stíga inn í
bekk, eins og ég gerði satt, árum.
Og þá hafa fimm vikur til að raða á myndinni út fyrir
þig ef þú vilt vera að fara framhjá / mistakast, skipta yfir í bréfi
bekk, eða eins.
Og yfirleitt það framhjá / mistakast er, held ég, fyrir nemendur er
að ef þú setur í að 10 klst, 20 klst, hvað sem það
getur verið á sumum vandamálum, og þú ert að lemja höfðinu
við vegginn,
og þú í raun bara ekki elta eitthvað niður, og þú
hafa svo margt annað sem þú þarft að gera, heiðarlega, það sem ég
held framhjá / mistakast er, það tekur brún burt af
aðstæður eins og þessi.
Þar sem þú hefur tekið hlutur 90% af leiðinni.
Þú veist, það er ekki alveg fullkominn.
En þú fengið mikið út af því, engu að síður.
Svo íhuga framhjá / mistakast og gefur þér að
andlega fyrirmynd, kannski.
>> Allt í lagi, svo í síðustu viku að við dúfan í grunni, og við
talaði um forritun á tiltölulega háu grafísku stigi.
Og í dag við að gera við umskipti til tungumál
kallast C, lægra stigi forritunarmál ofan á
sem margir nútíma tungumál eru nú byggð, þar á meðal sumir
af þeim sem við munum vera með undir lok hugtaksins er.
Og setningafræðilega, hvað þeir líta út eins og
er allt mjög svipað.
Svo skulum byrja á að gera þessi aðlögunartími hér.
Þannig að þetta var forrit í síðustu viku sem var einföldustu
Hello World forrit.
Það prentuð einfaldlega á skjáinn Hello World, með
litla ræðu kúla koma út köttinn.
Jæja, ef við byrjum nú að þýða þetta í annað
tungumál, átta sig á að hugmyndir í dag og á miðvikudag
eru eins, en setningafræði byrjar að breytast.
Svo en í síðustu viku við höfðum, þegar grænt merkja smellt segja
Halló heimur.
Í dag ætlum við að hafa int, Main, tóm, printf,
aftur, með einhverjum öðrum setningafræði í there eins og heilbrigður.
Hrokkið axlabönd, og sviga, og vitna, og whatnot.
En ljóst að kjarninn í þeirri hugmynd hér er prentun,
og að lokum í því að helsta er nú að fara að vera
samheiti the byrjun af a program.
Main er að fara að vera þar græna fána ánægja það burt.
>> Svo nú skulum við stríða sundur sum byggja blokkir hér
áður en við kafa í nokkur tiltekin dæmi.
Þannig að við kölluðum þetta yfirlýsingu í síðustu viku, þar sem það er bara
kennsla.
Gerðu þetta - í þessu tilfelli, að heilsa heim.
Jæja í C, ef við skoðum bara þá línu, það er hvernig við erum
að fara að byrja að tjá þessa tilteknu þraut stykki:
printf ("Hello World");.
Og nú munum við stríða þessum sundur meira og meira með tímanum,
en átta sig á að það er mynstur hérna.
Svo einn, höfum við þetta hlutur sem kallast printf, sem er
meginatriðum hliðstætt orðinu segja.
Það er það sem það er að fara að gera.
Printf, og f hér þýðir "sniðinn".
Svo þýðir það bara að þú getur sett inn
ýmsar fagurfræðilegu upplýsingar.
Svo vitna unquote upphafið af því sem við erum að fara
að byrja að hringja í band.
A orð, orðasamband, setningu.
A band á forritunarmál er röð núll
eða fleiri stafi.
Svo h-E-L-L-O, kommu, og svo framvegis, er
vitna unquote, a band.
Og nú sviga n, smá setningafræðilega skrýtið, en við
þegar skilgreint sem í síðustu viku sem þýðir hvað?
Þetta er bara nýja línu.
Það er bara leið til að miðla á tölvunni sem þú vilt að
jafngildir hitting á Enter þar, en þú ekki
vilja til raunverulega högg inn og því skipta upp alla af
sniði raunverulegt program.
Nú sviga láta þetta band, opið paren og
loka paren, og inni í því er band okkar.
Vegna þess að það er vegna þess að í C, og önnur forritun
tungumál, eins og það að taka printf rök, eða taka
breytur.
>> Svo byrja að hugsa nú af þessu fjólubláa Say blokk sem a
virka, eins og aðferð, sem málsmeðferð.
Þú getur raunverulega kalla það hvað sem þú vilt í bili, en
það er tegund af litlu kerfi sem aðeins er einn
hlutur, í einni línu, ekki minna.
Svo er printf einnig það sem við erum að fara að byrja að hringja í
virka, og virka gera eitthvað - í þessu tilviki
prentar sniðinn band á skjáinn -
en aðgerðir taka einnig rök eða breytur.
Og með rökum eða breytur, þakka þér, er átt við
að hegðun þeirra getur haft áhrif á hvað þú fara í
inni í sviga.
Svo í þessu tilfelli, að vera printf þarfir sagt hvað ég á að prenta, og við
bara fara í, í gæsalöppum hér strenginn sem við
í raun að prenta.
Og semíkommu á mjög lok þessa línu er bara
Söguleg óþægindi þannig í lok flestra línur af kóða,
að setja semíkommu að gera frábær ljóst að tölvu
að þessi lína af kóða endar hér.
Nú er þetta gott því eins og við munum sjá sem áætlanir fá meira
flókið að semíkommu mun gera frábær ljóst að okkur menn,
og einnig tölva, þar sem línur byrja kóða og endi.
Gera sér grein fyrir að sum tungumál ekki nokkur
þessara sömu upplýsingar.
Og í raun, í JavaScript, þú ekki alltaf að þurfa eitthvað
eins semíkommu.
En meira um það að koma.
>> Svo lykkjur.
Við höfðum eitthvað þessu líkt, mjög innsær, augljós, gera
eitthvað aftur og aftur og aftur.
Eins og að setja á sokkum, eða segja halló, í þessu tilfelli.
Jæja, hefst í dag í C, gæti látið þessa grunni
blokk eins og á meðan (satt) printf ("Hello World").
Svo eftir að við erum að byrja að byggja á bókstaflega ráðgáta
stykki úr áður.
Við höfum sömu fjólublátt blokk, en það er inni í þessu
bracketed Forever blokk, og besta leiðin til að þýða það
í C er sem hér segir.
Það er ekki Forever leitarorð.
Þú getur ekki bara slegið f-o-r-E-V-E-R í C.
Svo er næsta flaumi meðan.
>> Nú, á meðan (satt) virðist svolítið heimskulegt því er gildi
um raunverulegt alltaf breytingar?
Væntanlega ekki.
Það er eins og að segja en einn, en á meðan satt.
Það er allt það sama, satt er alltaf raunin.
Svo þessi lykkja er í raun örvandi Hvers konar lykkju?
Bara óendanlega lykkju, ekki satt.
A Forever lykkja eða eins og við kallað það í síðustu viku,
bara óendanlega lykkju.
Svo stundum það er slæmt.
Stundum það er galla, stundum er það hvers vegna þú færð
spuna ströndinni boltann eða stundaglas eða eins.
En í þessu tilfelli, af ásettu ráði við, fyrir hvað
ástæða, langaði til að prenta það sama aftur
og aftur og aftur.
Eða um er að ræða eins og horfa á, þú vilja til gera
eitthvað aftur og aftur og aftur.
Svo óendanlega lykkjur gæti skynsamleg.
Og þetta er hvernig á C við gætum þýða Forever að kóða.
>> Svo nú þetta er svolítið sérstakur.
Við höfðum endurtaka 10 sinnum eftirfarandi yfirlýsingu.
Svo á meðan (satt) ekki alveg að vinna þar, því satt er
alltaf satt.
Þannig að ef við skoðum í staðinn á C útgáfu, nú fær setningafræði a
lítið meira dulinn.
En til að vera heiðarlegur þegar þú byrjar að sjá þetta, fær það allt
ansi fljótt þekkja.
Svo er þetta það sem er kallað til hliðar.
A for lykkju er að fara að segja tölvunni að gera eitthvað
aftur og aftur og aftur svo lengi sem
þetta er satt.
Nú hvað er átt við með því?
Jæja, það er þremur hlutum til a for lykkju, og við erum að fara að
koma aftur á þetta í samhengi við raunveruleg
dæmi í augnablikinu.
Svo ekki hafa áhyggjur ef það er ekki alveg sökkva í öllum í einu.
En int i = 0 er löng saga stutt, að segja gefa mér
breyta sem er af heiltala tegund, svo gefa mér númerið
kallaði ég, og frumstilla hana 0.
Það er að gefa mér eins og algebraic breyta x og
frumstilla hana 0.
En í þessu tilfelli erum við kallað það i.
Síðan í miðjunni, segir i er minna en 10.
Það er að segja tölvuna gera eftirfarandi efni svo lengi
eins og ég er minna en 10.
Og vitanlega fer það minna en 10 vegna þess að
það byrjar á 0.
Þá loksins getur þú kannski giska á hvað ég + + þýðir.
Það er a lítill hluti af setningafræði sem þýðir bara hækka i.
Svo bæta 1 til i, aftur og aftur og aftur.
>> Og svo eins og við munum sjá þessa lykkju, þetta setningafræði, heldur útfærir,
nákvæmlega það sama sem, satt, í grunni voru bara svo
miklu auðveldara að tjá.
Endurtaktu 10, og þú ert búinn.
Í C, og í flestum forritunarmál, verðum við að vera
lítið meira lærdómsríkt fyrir tölvuna og í raun
tilgreina eitthvað svona.
En við munum koma aftur á þetta og önnur setningafræði.
>> Hvað um breytur?
Í grunni við höfðum eitthvað eins og þessi appelsína blokkir,
þar sem ég gat að lýsa yfir breytu.
Við skulum kalla geðþótta það gegn.
Skulum frumstilla hana 0, og þá
skulum eilífu gera eitthvað.
Í þessu tilfelli á grunni ég er að segja er gegn, þannig að
köttur er að fara að hafa smá ræðu kúla sem er að tala
fjölda sem er í þessari breytu.
Og þá höfum við breyta gegn um 1.
Svo allt þetta er pakkað inni að eilífu læsa.
Þannig að við þegar nú að byggja blokkir í C ​​með
til að þýða þetta.
>> Ein leið að við gætum gert það er þetta.
Gefðu mér heiltölu, kalla það gegn.
Frumstilla það til 0
í fyrstu línu þar.
Meðan (satt), svo ég ætla að stela þessi hugmynd frá bara smástund
fyrir, fara á undan og gera eftirfarandi.
Prenta út teljarann, og þá hækka teljarann,
aftur, og aftur, og aftur.
Eða aftur, + + þýðir bara að bæta 1 við eitthvað.
En það er ný stykki af setningafræði hér.
Hvað er stökk út sem ekki á meðal fyrri dæmum okkar?
Já, þetta% d.
Svo þú getur kannski ætlað hvað þetta er að gera, hreinskilnislega, byggt
á hvaða grunni blokk er að gera.
En aftur í C, höfum við bara að vera a lítill fleiri einkum
þegar það kemur að því að tjá okkur.
>> Svo printf ("% d \ n").
Jæja flest að við getum henda eins kunnuglegt.
Gæsalappa þýðir bara að það er band, sviga N
er bara ný lína.
Svo er það eina nýja sem hér% d.
Og allt sem er er staðgengill.
% D er að fara til að tákna heiltala.
Og% d þýðir tölva, setja heiltala hér.
Jæja, hvað númerið sem þú vilt að setja það?
Jæja, eins og þú getur kannski álykta, eftir kommu við segjum
gegn, það er nafn á breytu sem við lýst yfir eða
búin nokkrar línur áður.
Þannig að þetta er bara leið til C er að stinga í breytu inn í a
band virk.
Vegna hins vegar ef ég hefði í staðinn gert eitthvað eins og
þetta, printf ("gegn"), hvað myndi þetta
program gera í staðinn, væntanlega?
Það verður bókstaflega prenta "gegn".
Sem er ekki áhrif sem ég vil.
Ég þarf að skipta á nokkrum töluna.
Þannig að við munum sjá sem virka þá eins og printf getur ekki taka
aðeins bara einn rök, eins og
"Halló heimur".
Þeir geta tekið vitna unquote kommu, og þá sumir breytur
sem vilja fá tengt inn, eins og við munum sjá fyrri band
með þessum skilti% staðgengla.
>> Jæja hvað um Boolean tjáning?
Boolean tjáning voru þessi gildi, satt eða ósatt.
Já eða nei.
1 eða 0.
Kveikt eða slökkt.
Svo í grunni sem þeir líta svona út, og eftir því að
botn blokk hér er í raun samtenging
tveggja minni blokkir.
Svo ég dró svona og missti þrjú púsluspil stykki
saman til að gera það lengur ráðgáta stykki þar svo að ég
gæti flytja hugmynd sem ég vil x til að vera minna en y og
Y til að vera minna en z.
Og svo ég geti þýtt þessar tvær línur sem hér segir.
Efra einn getur verið mjög trivially þýdd á C,
við bara x <y.
Kannski með nokkrum sviga fyrir gott mál.
Og svo í C, þú skrifar ekki og til að tákna
samtenging um eitthvað.
Þú skrifar í staðinn &&.
Og eins og við munum að lokum sjá, eitt merkið gerist
meina eitthvað annað.
Svo táknar && bara hugmynd og.
>> Svo aftur, jafnvel þó að það byrjar að líta frekar flókið,
einn af þeim tilgangi að kynna grunni, auk
bara að hafa svona skemmtilegt á-pallinum þar sem þú getur gert
eitthvað sem er mjög myndrænt og líflegur, og
shareable og eins, er einnig að segja að hugmynd að
allar hugmyndir við byrjum köfun í dag og áfram
hefur verið felast í jafnvel svo einfalt
tengi frá degi.
Hvað um þetta eitt hér?
>> Þannig aðstæður.
Svo grunni blokk á vinstri það lítur út
svolítið flóknari.
En það er bara að draga og
sleppa kunnuglega hluti.
Ef x er minna en y, segja svo.
Annars ef x er stærra en y, segja svo.
Annars getum við rökrétt ráð það er álykta að
þeir verða að vera jafnir.
Svo að segja að þeir eru jafnir.
Nú í C á hægri, sama nákvæmlega hlutur.
Athugið að hrokkið axlabönd eru að fara til vera a
eiginleiki C og öðrum tungumálum sem gera svona
af hjúpun.
Rétt eins og ef blokk er þetta gult hlutur sem er eins konar
grabbing fjólublátt blokk inni af því.
Á sama hátt eru þessar axlabönd -
þessi hrokkið axlabönd -
ætlað að töfra upp þessi sömu hugmynd faðma einn eða fleiri
línur af kóða sem eru grafin inni í þeim.
Svo á hægri hönd hlið hér, ef x minna en y, printf
("X er minna en y").
Annars ef x er stærra en y, prenta út á sama.
Else prenta út að þeir eru jafnir.
>> Svo í stuttu máli, það er nokkuð bein kortlagning eða þýðing
á tungumáli sem við höfum séð hingað til, þar á meðal fyrir suma
af the fleiri háþróaður lögun.
Svo þú getur ekki verið að nota þetta fyrir verkefnið, eða gæti ekki
að nota þetta fyrir verkefni í þessari viku.
En við höfum þetta kallast fylki í C. Í grunni,
þeir eru kallaðir listum.
Og við sáum þetta með Fruitcraft RPG síðustu viku.
The lítill blár strákur sem var að labba um, taka upp
kirsuber og appelsínur og þess háttar.
Jæja í grunni, var að innleiða með þessu appelsínugulur
blokk sem inniheldur orð, í þessu tilfelli, við erum bókstaflega
bæta "appelsínugult" til
breytu sem heitir skrá.
Svo í C, þetta setningafræði er að fara að fá smá meira dulinn.
Og við munum koma aftur til þessa í næstu viku og gera meira
áhugavert hlutir í heiminum dulmál við hana.
En neðst hér, þessar tvær línur í raun
þýða að það sem við erum að gera í einum grunni loka þarna.
En meira um það að koma.
>> Svo setja það saman, hér er forrit í C. Svo við skulum
fljótt stríða sundur sum stykki af setningafræði hér, en
þá skulum í raun að byrja að skrifa smá kóða, kynna
þú með sumir af the tæki sem við munum vera með og sjá hvort við
Hægt er að byggja á nú einhverja af þessum helstu kubbar af
í síðustu viku, nú setningafræðilega í C. Svo efst hér, þetta
er ef til vill einn af the leiðinlegur forrit sem þú gætir
skrifa í flestum hvaða forritunarmál.
En tegund það er af hefur sérstaka þýðingu vegna þess að það er
Canonical forrit sem allir tölva vísindamaður skrifar þegar
kennslu einhver forritunarmál -
a Halló heimur program.
>> Svo á the mjög toppur, sjáum við þessa hugmynd af # include
og þá í horn sviga, stdio.h.
Við ætlum að koma aftur á það, en í raun það sem
þýðir þetta er að það er skrá í þessum heimi sem heitir staðall
I / O, stdio punktur h, og það er bara textaskrá sem
einhver skrifaði árum.
Og inni á þeim textaskrá eru heild búnt af
aðgerðir eða aðferðir, eða aðferðir, að einhver annar
skrifaði að við erum góðs af því við
getur núna notað kóða sem maður er.
Hlutverk hann eða hún skrifaði.
Í þessu tilfelli, printf er ekki eitthvað sem ég skrifaði, það er
ekki eitthvað sem CS50 skrifaði.
Það er eitthvað sem einhver skrifaði árum síðan og setja í
skrá sem kallast stdio.h og þá, sem til hliðar, setja
annar hluti af the virka í aðra skrá.
En við munum komast þangað.
>> Svo # include er bara leið okkar að segja í
C, gefa mér aðgang að virka sem einhver annar skrifaði.
Og í þessu tilfelli sem ég hugsa því að ég vil printf.
Nú fáum við INT helstu (tóm).
Svo er þetta einn af þessum hlutum, hreinskilnislega, að á degi 0,
ansi mikið ég hef að konar út svæði, því það er bara
ekki áhugavert
vitsmunalega, sumir af setningafræði.
En nú vita að virka, annars þekkt sem
verklagsreglur, eða aðferðir, yfirleitt framleiða sumir gildi.
Þeir gera eitthvað.
Þeir koma upp með óákveðinn greinir í ensku svar.
Þeir framleiða framleiðsla.
Svo int hlið helsta er bara skammstöfun leið okkar til að segja
að þessi aðgerð, þessi aðferð, er loksins að fara
að gefa þér aftur að tala.
Og hvers vegna það er, munum við koma aftur til.
Main er bara heimurinn sjálfgefið staðall fyrir sjálfgefið
fall sem er að fara að fá fram í C program þegar
að keyra hana.
Tóm bara þýðir þetta, helstu, þarf ekki
rök, í þessu tilfelli.
Þannig að ég ætla að vera frábær skýr.
Það er engin strengi í það, það er ekki kommur.
Tóm þýðir ekki rök í.
>> Nú loksins, sem betur fer, eru síðustu tvær línurnar þekki.
Inni í hrokkið axlabönd við höfum printf
og við höfum aftur.
Og aftur er góður af óheppilegt að við verðum að
setja það þar, því að í þessu tilviki það er ekki að gera allt sem
mikið af áhuga.
En í tölvuforriti, þegar skilar 0,
sem þýðir að allt er vel.
Ekkert fór úrskeiðis.
Á hinn bóginn, ef skilar 1, eða neikvæð 1, eða
neikvæð 1.337, eða sumir af handahófi tölur eins og þessi, sem
almennt þýðir að villa í raun hefur átt sér stað.
Svo ef þú ert á Mac eða PC, ef þú hefur einhvern tíma séð
sumir pirrandi skilaboð vegna þess að tölvan þín hefur hrunið eða
frosinn, og það er dulinn villuboð,
og svo nokkur númer, eins og kerfið kóða
1,2,3,4, sumir tala,
sem er yfirleitt óþarfa smáatriði til að segja
Flest okkar mönnum, en það er það fall eða eitthvað
áætlun hefur í raun skilað, a non-núll gildi.
Og ávinningur af þessu er að 0 þýðir allt eins vel og
þá ertu í raun óendanlega fjölda af hlutum sem
getur farið úrskeiðis.
Hver er ástæða þess að þeir valdi 0 fyrir gott og a non-núll gildi fyrir
slæmt, eins og við munum sjá fljótlega.
>> Svo við skulum fara á undan og skrifa þetta.
Svo muna að um daginn ég notaði Mac minn að opna
Terminal glugga, og þá opnaði ég upp texta program, eins og
TextEdit, og ég byrjaði að skrifa nokkur númer.
Jæja það er allt í lagi.
En reynsla er að fara að vera öðruvísi á Mac, eða
á Solaris tölvu, Linux tölva, hvað starfa
kerfi þú verður að vera með.
Og svo á auðvitað hvað við í staðinn að nota er eitthvað
kallað CS50 Appliance.
Svo er CS50 Tæki a downloadable stykki af hugbúnaður
sem leyfir þér að keyra stýrikerfi sem heitir Linux,
sérstaklega Fedora Linux á eigin Mac eða PC.
Og þú gerir það með því að sækja eitthvað sem kallast hypervisor.
Svo allt þetta verður skráð í mengi vandamál 1.
Og þú munt vera með leiðsögn átt það sem þú þarft að sækja.
En niðurstaðan, hvort sem þú ert með Mac eða PC, er þú
sækja sumir frjáls hugbúnaður.
Þú hleður þá CS50 tæki, og þú segir það
frjáls hugbúnaður - er hypervisor -
að keyra CS50 Tæki í glugga á tölvunni þinni.
Og það sem gerist er þetta.
>> Ég hef nú, eftir hér, það virðist vera skrifborð
umhverfi.
Og láta mig skreppa í raun þetta einn gluggi.
Svo er þetta nú Mac minn, með smá glugga hér, og inni
í þessum glugga verður að vera algjörlega
mismunandi stýrikerfi.
Reyndar er það í byrjun matseðill hérna, minnir á
Windows, sem hefur a heild búnt af undir valmyndir, þar á meðal
tengill á CS50 handbók, Dropbox, og þess háttar.
Og hvað þetta umhverfi er nú staðall umhverfi
að allir af okkur getur núna notað, svo að það er sama hvað þinn
tölvan er, það sem þú hefur sett upp á það, hvaða útgáfa
Mac OS eða Windows þú ert að keyra, höfum við öll nú
sama umhverfi.
Og nú í þessu umhverfi sem við getum byrjað að skrifa nokkur númer.
>> Þannig að ég ætla að fara á undan og opna forrit sem heitir gedit.
Þetta er sambærilegt við Notepad.exe eða
TextEdit á Mac.
Og þetta er bara frábær einfaldur texti útgáfa program
sem lítur svona við fyrstu sýn.
Nú á the mjög toppur, ég er með hvítt litatöflu, neðst I
hafa þetta svart glugga sem segir jharvard @ tæki.
Og það er vegna þess að notandi reikningur sem við fyrirfram búið
fyrir alla heitir John Harvard.
Hann hefur möppu þar sem allar skrár hans eru að fara að fara, og
hér er þar sem við getum byrjað að skrifa nokkur númer.
Svo láta mig fara á undan hér og stækka bara smá, og ég er
að fara að gera # include , int main (tóm), og
þá ætla ég að gera printf ("Halló heimur")
, Aftur 0.
Nú er þetta allt alveg svart og hvítt.
>> Leyfðu mér að fara á undan og gera eitt að kenna gedit hvað ég er
í raun að gera.
Leyfðu mér að fara í Save As.
Ég ætla að velja á vinstri hönd hér jharvard.
Svo aftur, jafnvel ef þú hefur aldrei notað Linux áður, hreinskilnislega
Þessa dagana eru þau öll devolving í meginatriðum
samskonar tengi -
Mac OS, Windows og Linux.
Svo ég valdi heimasvæðið jharvard hér.
Og ég ætla að vista þessa skrá sem hello.c.
Svo á the mjög toppur, slegið I hello.c, nafngiftir C
forrit með. c eftirnafn er
hvað er algengt.
Og ég högg Vista.
Og nú það sem er gott er að ég hef í raun kennt gedit,
að þetta er C program.
Takið eftir því að svartur og hvítur texti minn er nú litakóða, eða
setningafræði hápunktur, sem bara vekur athygli mína að
mismunandi merkingartækni hluta áætlunarinnar.
Efst til vinstri þar sem áætlanir mínar fá flóknari, ég er
fara að hafa yfirlit yfir allt það sem ég hef skrifað.
Svo að það er allt þar.
Svo láta mig minnka nú út og fara niður á þetta endastöðvar.
>> Svo er þetta kannski nýr til margir fólk.
Ef þú hefur aldrei notað lína umhverfi, þú hefur aldrei
nota DOS, eða þú hefur aldrei notað Linux, eða þú hefur aldrei opnað
þinn Mac OS endastöðvar, there 'a einhver fjöldi af hlutur sem þú
gæti gert með GUI, svo sem að benda og smella og
draga og sleppa, og eins, en yfirleitt -
vissulega í heimi tölvunarfræði -
með stjórn lína, þar sem þú þarft ekki músina
almennt, þú ert bara lyklaborðið, er í raun mikið
öflugri en tengi, einu sinni þú fá acclimated til
ýmsar skipanir.
Og þú tegund af frjáls sjálfur að þurfa að benda og smella
á allt.
Svo í gedit munum raða á að hafa það besta af báðum heimum.
Við getum draga og sleppa texta, getum við séð hana
gott og litakóða.
En þegar það kemur tími til að keyra forrit okkar, munum við stundum
bara nota þennan litla glugga hér.
>> Þannig að ég ætla að fara á undan og gera það.
Í botn svart og hvítt glugga, ætla ég að fara á undan
og skrifa clang.
Og clang er nafn þýðanda.
Það er forrit sem breytir kóðinn minn
inn, svo mótmæla kóða.
0s og 1s, sem við sáum stuttlega í síðustu viku.
Muna frá síðustu viku, lofa okkur að við vorum að fara að
fara eitthvað eins og þetta - sem við þurftum að
eitthvað eins og þetta -
og þetta er svo sannarlega ekki eitthvað sem maður er að fara
að gera handvirkt.
Svo í stað þess að við erum að fara að nota forrit, og það forrit í
þetta mál er kallað Clang.
Og nafn program minn er hello.c.
Svo í röð til að safna saman hello.c frá frumkóða til
mótmæla kóða eða 0s og 1s, það ætti að duga bara að gera
þetta og ýttu á Enter.
>> Jæja, ekkert virðist hafa gerst.
En ég veit nú, eða frá síðustu viku, að sjálfgefið nafn
forrit, þegar skrifað í C, er heimsku kallað a.out.
Flest uninteresting nafn sem þú getur komið upp með.
A er fyrsti stafur stafrófsins, út er það var
outputted, en svo vera það.
Þetta er áætlun mín, og nú punktur rista, eins og við munum sjá,
reyndar bara eins konar lögun öryggi, vegna þess að
a.out er forrit sem ég skrifaði.
Það kom ekki með tölvunni minni, það er
ekki í Program Files.
Það er ekki í möppunni Forrit Mac OS.
Ég þarf að vera frábær skýr við tölvuna, segi og
þetta forrit, a.out, er í núverandi möppu,
núverandi möppu.
Og hvernig þú ert í forsvari þess í umhverfi eins og þessu
er punktur táknar hvað möppu sem þú ert nú inn
Og svo. / Þýðir bara keyra a.out
í núverandi möppu.
Og ég hlaupa þetta með inn, og voila, mjög fyrstur program minn.
>> Nú skulum mér að taka skref til baka.
Þessi gluggi er svolítið lítill, og átta sig á því að botn
vinstri á tækinu Hér er annað táknið.
Einn er Króm, sem ætti að vera nokkuð kunnugt, bara vefur
vafra inni í tækinu.
Og þetta svart og hvítt tákn er bara
stærri endastöðvar.
Svo ef það fær smá pirrandi að svona bara
þetta litla sneið af glugga sem á að hafa samskipti
áætlunum, getum við í staðinn að gera þetta.
Og nú langar mig að byrja að slá inn nokkrar fljótlega
til að þekkja skipanir.
LS.
Svo er LS stjórn fyrir skráningu.
Svo í Mac OS eða Windows, myndir þú yfirleitt tvísmella á
möppu og þá voila, þú sjá allar mismunandi skrár
og möppur.
Í stjórn lína umhverfi, þar sem þú getur aðeins slá
stjórn eða texta, LS jafngildir.
Svo sýna mér hvað er í þessari skrá.
>> Nú er það fullt af efni hér sem er bæði lítið
þekki og svolítið framandi.
En eftir því að rétt eins og Windows og Mac OS, jharvard
hefur skrifborð mappa.
Svo allir tákn sem eru á skjáborðinu mínu gerast
að vera í þeirri möppu.
There er a niðurhal möppu, efni sem
Chrome gæti sett þarna.
Dropbox.
Svo kemur tækið með innbyggður-í styðja fyrir Dropbox
þannig að yfir önnina, þú getur sync með Dropbox þinn
tillit til þess að öll forrit eru studdur.
Þær eru aðgengilegar á öðrum tölvunni þinni.
Ef eitthvað alltaf fer úrskeiðis með tækinu er hægt að
mjög auðveldlega batna frá Dropbox.
Svo það er mappa þar fyrir það.
Það er tvær skrár sem ég gerði - hello.c
og a.out.
Og síðan til hægri það er nokkrar aðrar möppur sem við munum
fá til undir lok þeirrar annar, með vefnum
forritun.
Svo þegar ég geri. /, A.out, Enter, það er að segja fara
í möppunni sem ég er í, í möppu og keyra
forrit sem heitir a.out þarna.
>> Allt í lagi, svo það var gaman og gott, en það er ekki allt sem
sannfærandi til að skrifa forrit sem heitir hjálp a.out.
Þannig að við getum í raun gert þetta öðruvísi lítið.
Svo í stað þess að bara að keyra clang, hello.c, við skulum bæta
hvað heitir a stjórn lína rifrildi.
Svo er a stjórn lína rifrildi, eða skipta í þessu tilfelli, bara
annað orð eða setningu sem þú skrifar á að hvetja eftir
forritið sem þú vilt keyra.
Svo í þessu tilfelli, clang er forrit sem ég vil að hlaupa,-o
þýðir framleiðsla skrá sem er ekki lengur kallað a.out.
Output a skrá sem heitir Halló, og gera það með því að setja saman í
síðustu orð á línu, hello.c.
Svo í stuttu máli, þetta er mjög lélegur framför, þar sem
í stað þess að hafa þetta heimskulega sem heitir skrá a.out,
Ég get nú gert clang-o halló, þá hello.c og
þá Enter.
Ekkert virðist gerast, en aftur mikið eins og með 0 - þegar
ekkert virðist gerast sem þýðir að ekkert fór úrskeiðis -
þannig að við skulum gera LS nú inn, og reyndar ég nú
hafa hello program.
Svo ef ég tegund Halló nú, stjórn fannst ekki.
OK,. /.
Svo nákvæmlega rétt.
Svo vegna þess að þetta forrit sem ég skrifaði, og kom ekki með
tölva,. / halló, Enter, þýðir
Ég er nú í gangi halló.
>> Svo er það það.
Nú það sem við munum loksins fá að fleiri og fleiri stjórn lína
Rökin sem leyfa okkur að gera meira, en bara fyrir þá að
sem þetta gæti verið gamall hattur, láta mig fara í raun inn í a
skrá hér og bara gefa þér beitu hversu annars við
gæti farið um framkvæmd Halló heimur.
Leyfðu mér að fara í hér, og ég ætla að opna hana.
Svo í raun, ég ætla að útskýra það sem ég er að gera, þannig að
Þetta er gagnlegt.
Leyfðu mér aftur upp.
>> Þannig að ég hef verið að gera þetta í langan tíma.
Svo taka yfir á rétt það eru nokkrar af
Möppur sem eru einkennilega heitir source1m og source1w.
Þetta er bara kjánalegt venju við notum.
Source þýðir bara kóðann, 1 þýðir þetta er viku einn og
m þýðir að það er mánudagur, og w þýðir að það er miðvikudagur.
Svo ekkert dulinn þar.
Það er bara skammstöfun.
Þessir bláu hlutir eru möppur, annars þekkt sem
framkvæmdarstjóra.
Ég vil fara inn í þeirri möppu núna, og á venjulegri tölvu
Ég gæti bara tvöfaldur-smellur á möppu helgimynd og
það er allar skrár mínar.
En í a stjórn lína umhverfi, ég get ekki alveg gert
að, svo í staðinn, ég hef til að breyta framkvæmdarstjóra handvirkt.
Svo ef ég tegund geisladisk og þá source1m, Enter, eftir því að
hvetja minn hlutur í hvítu til vinstri, bara breytt.
Og svo reyndar, þegar hún sagði bara sviga og þá
lítið squiggle er tilde tákn, það bara þýddi ég var
í möppu heimili John Harvard er, skjöl hans mín,
persónulega skrá hans.
En nú í sviga segir ~ / source1m.
Þetta þýðir bara að ég er í möppu sem heitir source1m
það er í möppu heimili John Harvard er.
Svo ef ég vil nú að skrá skrár í þessari möppu, auðvelt
spurning að slá ég bara LS.
Og nú sé ég allar skrárnar sem ég fyrirfram búið til er í dag
fyrirlestur, sem öll, eða flest, sem gerst
til að enda í. c.
>> Svo láta mig fara á undan núna og hlaupa gedit af forriti sem kallast
holloway.c, sem er skrifuð af einhverjum random spjallþráð
á Netinu, sem lítur út svolítið eins og þetta.
Og við erum ekki að fara að fara í gegnum þetta einn í einhverju
smáatriði, en fyrir þá öruggari, einkum ef
þú vilt taka giska á því hvað þetta forrit gerir hér.
Hafðu engar áhyggjur, hvort sem þú ert minna eða öruggari,
við erum ekki einu sinni að fá þessa tegund af hlutur í lok
Þessa önn.
Þetta er það sem er dæmi um obfuscated C keppni sem
þýðir skrifa mest dulinn leita forrit sem þú hugsanlega
hægt að outdo öðrum sviði fólk, sem álíka
að reyna að skrifa það og láta sem þeir geta skrifað
meira Cryptic hluti en þú.
Þannig er þetta ekki dæmi um vel skrifað forritið úr
sjónarhóli stíl, þetta er dæmi um forrit sem
vinnur keppnina, fyrir fólk að reyna að
vera óljós og óhlutbundin.
>> Þannig að ef við hlaupa þetta, láta mig fara í Telnet minn,
svo að segja.
Svo þetta svart og hvítt umhverfi er kallað
endastöðvar almennt.
Leyfðu mér að fara á undan og þýða það.
Ég ætla ekki að nota clang, því þetta forrit er
lítið Cryptic og það þarf annað
þýðanda, er einn hét GCC.
En það er sama.
Það tekur kóðann til að mótmæla kóða.
Og nú ef ég keyrt a.out, að forrit sem þú
bara sá er þetta.
Svo að manni það ár vann þessi keppni.
Einhvern veginn, við erum ekki að fara í þá átt, í sjálfu sér.
>> Svo skulum raunverulega reyna að nú stríða sundur hvað við getum gert
með þessum helstu kubbar til að gera meira og meira
áhugavert forrit.
Þannig að við höfum skrifað forrit, höfum við hlaupa a program.
Nú getum við í raun einfalda og ekki lengur að skrifa
orðið clang við áminningu.
Það kemur í ljós eins og áætlanir okkar fá meira dulinn, við getum, eða
flóknari heldur getum við í raun að keyra þessa skipun.
Svo láta mig að fara aftur heim til skrá minn, svo að segja, láta mig
fjarlægja - RM er Fjarlægja skipun - Ég er að fara að fjarlægja
skráin heitir a.out og halló.
Og nú eftir í stjórn lína umhverfi, líkt og í
GUI, fá beðið. Ég get ekki smellt á hnappinn þó, ég
að slá Y fyrir já, y fyrir já.
Og nú ef ég tegund LS aftur, eftir að þeir grænu
forrit - a.out og halló -
eru farin.
Varist RM.
Það er hægt að gera slæma hluti, rétt eins og þú getur með því að draga
það í ruslið.
>> Svo nú skulum við fara á undan - og ég gæti gert þetta - clang-o
Halló, halló -
Ég er nú þegar leiðist að slá inn skipunina.
Jafnvel þótt ég slegið það svolítið fljótt.
Þannig að við getum í staðinn gera það halló.
Svo er þýðanda ekki.
Það er bara vingjarnlegur forrit sem kemur með Linux, í þessu
mál - stýrikerfið -
sem gera sjálfvirkan the aðferð af gerð forrit.
Svo í stað þess að muna clang-o filename og
þá svo framvegis, sérstaklega þegar þær línur fá lengri og
lengur, ég get bara skrifa gera.
Og þetta er að fara að spýta út a heild búnt af efni sem
Við munum að lokum sjá þessa önn.
En taka nú ef ég tegund LS, halló er aftur á skrá minn.
Og vissulega get ég keyrt það með. / Halló.
Svo bara gera sjálfvirkan the aðferð að keyra það var,
í þessu tilviki, mun lengri, flóknari stjórn.
Þannig að við erum að fara að byrja að nota gera, bara vegna þess að það er mikið
meira notendavænt.
>> En nú skulum við gera meira áhugavert forrit
en að segja bara halló.
Svo í áætlunum sem við höfum skrifað svona langt það helsta.
Það er bara sjálfgefið hlutur að ánægja allt burt.
En það eru aðrar aðgerðir út there eins og heilbrigður, og
stdio.h er hlutur sem við sáum efst OKKAR
skrá áður, og það er það sem er þekktur eins og the staðall bókasafn.
Inni á venjulegu bókasafni er allt fullt af störfum
að einhver annar skrifaði, og við getum byrjað að nota þessar
aðgerðir til að skrifa meira
áhugavert forrit sjálf.
>> Svo láta mig fara aftur á tækið.
Ég ætla að loka þessum endastöðvar.
Ég ætla að loka það sem við skrifuðum áðan, og bara fara
í hello.c, og taka nú get ég gert eftirfarandi.
Halló heimur er ekki allt sem áhugavert, ég vil
sérsníða þetta forrit fyrir mig.
Svo í stað þess að segja heim, ég ætla að
fara á undan og segja -
Ég gæti slegið Davíð - en þetta er í raun tegund af
grundvallaratriðum þau sömu.
En við skulum prófa þetta staðgenglinum hugmynd.
Muna að í C, frekar í printf, við höfðum þetta
staðgengla, og það eru fleiri en bara% d.
Svo% D var fljótur geðheilbrigði stöðva.
Jæja, heiltala, það er það.
Tölustafir, það er allt.
Svo C%, eins og við verður fundur, er að fara að vera persóna.
Settu persónu hér, bréf a um z,
eða greinarmerki tákn.
A einn staf,% f, einhver veit af öðrum tungumálum?
Svo Fleytitölugildi.
A rauntala.
Svo ekki heiltala - þetta er í raun alvöru tala við
kommu og sumir talna til vinstri
og rétt um það.
% S, band.
Það sem við erum að fara að sjá mjög oft.
A band, aftur, er bara orð, orðasamband, röð
einstakra stafir.
Og loks, LLD?
Svo er þetta meira um horn að ræða.
Langan aukastaf.
Svo ef þú vilt ekki bara tala sem er það stór, þú
vilja stærri tala, þú ert að fara að þurfa að tilgreina að
tölvan að það er af tiltekinni stærð.
>> Svo skulum klip þetta svolítið.
Frekar en bara erfitt kóða í Davíð, láttu mig örlítið
dynamically segja% s.
Svo setja% s hér, sem er tákn fyrir streng.
Þá láta mig gera kommu, og svo "Davíð" yfir hér.
Nú er þetta ekki allt sem vitsmunalega áhugavert,
því allt sem ég hef gert nú er í raun að búa til meiri vinnu fyrir
í tölvunni.
Frekar en að segja tölvunni að gera þetta allt í einu, ég er nú
segja að gera þetta og setja band hér að lokum, kommu,
hér er þessi strengur.
Svo er þetta ekki betri framför, en það er að minnsta kosti
skref í átt að meira áhugaverður program.
Því nú, láta mig fara á undan og gera þessum glugga smá
stærri, láta mig fara á undan og keyra að heilsa.
Og nú,. / A.out er ekki að virka, af hverju?
Allt í lagi, nú er kallað halló.
Svo aftur að gera, og einnig clang með-o, nafnið
forrit til að vera eitthvað meira áhugavert.
Og voila: nú segir Halló David.
>> Allt í lagi, samt heimskulegt program.
Svo nú skulum raunverulega fara aftur hingað og kynna hugmyndina
á breytu.
Væri ekki gott ef ég gæti lýsa breytu
sem gerð er band?
Og gildi breytan kemur í raun frá notanda
hann eða hún sjálf.
Svo geðþótta, ég ætla að hringja í breytilega s minn, sem er
bara algengt venju þegar þú átt eina breytu sem heitir
band.
Ég ætla að gera sömu merki, og þá ætla ég að hringja í
virka kallast GetString.
Svo er GetString ekki eitthvað sem kemur innbyggður í C. Það er
fall sem CS50 starfsfólk skrifaði, í raun bara til
Þessar fyrstu tvær vikur, til að einfalda ferlið
fá notandi inntak og ná notandi inntak í formi
af strengjum, eða númer, og svo.
Svo er GetString eins printf, en vitanlega frekar en
prenta það er að fara að gera það sem nafnið segir, fá band.
En til að nota GetString, við erum að fara til verða að gera breytingu
hér út úr þessu.
Svo innsæi, this program, vonandi, er að fara í einhvern veginn
fá band frá notanda, og þá hvað það er að fara að gera
með því að band, sem heitir s?
Það er bara að fara að prenta það, ekki satt?
Enn ekki hvetjandi forrit þar sem allar það er að fara
að gera er að stinga í því gildi í sem% s
segir að það ætti að fara.
>> Þannig að við skulum að minnsta kosti sjá það í aðgerð.
Leyfðu mér að spara og minnka.
Nú í Telnet minn hérna, lítil sneið af einn,
láta mig gera aftur að heilsa.
Jæja, og Ah, fjandinn, ég fékk helling af villum.
Leyfðu mér að fletta upp, og við sjáum fyrst okkar -
þannig að við skulum í raun gera þetta í enn stærri glugga þannig að þú
má sjá hversu illa ég ruglaður upp -
svo að heilsa.
Jæja, það er hörmung, ekki satt?
Ég hef skrifað þrjár línur af kóða og
það er gefið mér 12 villur.
Svo hvers vegna er þetta?
Svo sem betur fer, oftsinnis þegar þú sérð margar, margar villur
spúandi á einu, það er í raun bara vegna þess að þú hefur
rugla tölvuna upp hér.
Og það er enn ruglað saman við þann tíma sem það gerist hérna.
Og svo fer það bara tripping og hrasa, og
spúandi fleiri skelfilegur efni en raun gildir.
Svo almennt, alltaf að byrja með the toppur einn.
>> Svo mjög toppur mest dæmi af rauðum, sem
villuboð er þetta.
Notkun undeclared auðkenni band, gerði ég
meina staðall í?
Ég gerði það ekki.
Ég ætlaði band, en þetta er vegna þess líka, að orðið band
að ég halda áfram að nota munnlega raun
er ekki til í C báðum.
Það er eitthvað sem við munum nota bara fyrstu vikuna eða tvær
hér, en það er í skrá sem kallast cs50.h.
Svo að nú, veit að það er þetta önnur bókasafn sem
starfsfólk skrifaði, þannig að það hefur verið skrifað nýlega en
stdio.h.
En fyrir innan cs50.h er skilgreining, sem samheiti
konar, sem skapar þetta orð band.
>> Svo nú láta mig fara aftur í flugstöðinni glugga minn.
Ég ætla að hreinsa þetta allt óreiðu með Ctrl-L. Við verðum bara
þurrka allt hreint, og ég ætla að halda áfram og gera
Halló aftur, Enter.
Og hvað hefur gerst núna?
Nú allar þessar villur fór burt.
Svo hvað hef ég gert í raun?
Ég hef bara kennt tölvu sem strengur er til, og það er
í þeirri skrá sem heitir cs50.h.
Svo hætta að kvarta, því nú þú veist hvar á að finna
yfirlýsing sem virka þannig að orði komast.
Ef það er til staðar í heiminum.
>> Svo nú er ég að fara á undan og keyra halló.
Ég virðist hafa óendanlega lykkju, gerist ekkert er.
Þannig að ég þarf að slá eitthvað hér, rétt.
Fyrsta lína af kóða í forritinu mínu var GetString.
Svo það er bókstaflega bíða eftir mér til að fá band.
Svo í þeim skilningi já, það er óendanlega lykkju.
Apparently er GetString sjálfgefin hegðun sem við
skrifaði - og starfsfólk -
sem segir bara að bíða og bíða og bíða og bíða og bíða,
þar til notandinn gefur þér band með því að slá eitthvað tommur
Svo láta mig fara á undan og tegund í D-a-V - i-D, Enter.
Og það er það, Hello David.
>> Nú þýðir þetta virðist eins og það er bara athöfn?
Leyfðu mér að fara á undan og tegund í Tommy.
Sláðu inn, allt í lagi, virðist vera að vinna.
Verk fyrir Rob, virkar fyrir Zamyla, virkar fyrir - allt í lagi.
Svo það er að fara að vinna, líklega.
Svo það ætti að prenta út allt sem við gefum í raun það,
og við getum verið svolítið erfitt hér.
Við skulum sjá hvort við gerum eitthvað eins og Hello.
Getur farið hérna, við skulum sjá, afrita, líma.
Ég ætla ekki að fara að vera fær um að líma það oft hér.
Líma, allt í lagi, Shift + Ctrl + V. Svo það gæti
gerast það er slæmt hér?
>> Jæja, svo segfaults.
Svo sumir af þú með fyrri bakgrunn vilja vita að
almennt, gefa tölvum fullt af aðföngum þegar þeir eru
sennilega ekki ætlað að fá löng nöfn eins og þetta - Bad
hlutir gerast.
Reyndar, í heimi vefnum líka, þetta gerist töluvert,
þannig þegar þú ert að hanna vefsíðu, þegar þú ert
hanna Facebook, þú þarft að gera handahófi ákvarðanir upp
framan, eins og hversu lengi mun einhver
Facebook notandanafn vera?
Eða hversu lengi munu fyrst nafn einhvers vera?
Hversu lengi mun símanúmer einhver vera og þess háttar.
Og ef forritarar gera slæma forsendum brjóta forrit
vegna þess að þú reynir að gefa þeim meiri framleiðsla, meiri inntak
frekar, en þeir hafa minni.
Eða RAM úthlutað fyrir það, og svo ef ég nú Enter,
þessi áætlun gekk reyndar, vegna þess að við vorum á safninu
og við gerðum ráð fyrir í raun þetta tiltekna mál.
En án efa þessi önn verður þú að skrifa að minnsta kosti eitt
forrit sem mun segja þessi orð.
Mundu þetta vikur frá núna, kannski tvo daga.
Skiptingu kenna er a slæmur hlutur.
Það mun eiga við að gera eitthvað þinn sem tölva
gerði ekki ráð fyrir.
Og í því tilviki, þú sem forritari, gerði ekki ráð fyrir.
Líkt og hvað þessi stafli af sokkum, það voru ýmsar
horn tilvikum gætum við hafa komið upp.
Sama hátt í verkefnum ef þú von á ekki hversu lengi er
nafn einhvers að fara að vera.
Eða hvað ef ég hafa a illgjarn notandi, og nafn hans eða hennar er
reyndar mjög stutt, en þeir eru bara að reyna
að skipta við mig?
Hvað er að fara að vera hegðun program minn?
Jæja, í því tilviki, eitthvað gæti í raun hrun.
>> Svo skulum gera þetta.
Í 90 mínútur er ansi langur tími
að gera tölvunarfræði.
Hvers vegna eigum við ekki að komast í vana að taka fimm mínútna
brjóta hér, og þegar við komum til baka, munum við kafa í sumar
flóknari og sannfærandi forrit?
Fimm mínútur.
>> Allt í lagi.
Svo einn fljótur athugasemd.
Mér er sagt að þótt þetta væri á skjánum áður, hvað
kom út af munni mínum var cs50.net/rsvp.
Þetta er rétt. cs50.net/lunch.
Svo nú þú geta reyna RSVPing fyrir þetta á / hádegismat.
En við skulum gera þetta núna.
Þannig að þetta hefur verið frábær fljótur, frábær ný fyrir a einhver fjöldi af fólkinu.
Old húfu fyrir sumir gott fólk.
Svo skulum baka fyrir réttlátur a augnablik, og sjá hvernig við komum til
þetta Halló heimur framleiðsla bara í smá stund síðan.
>> Svo fyrst það er þetta CS50 Appliance.
Aftur, stykki af hugbúnaður, vandamál setja 1 er að fara að segja
þér hvernig á að sækja það, hvar á að sækja það, hvað á að smella á
og svo framvegis.
Og svo þegar þú fylgir þessum leiðbeiningum, þú munt vera fær um
að hámarka gluggann, og Mac eða PC mun líta
lítið eitthvað svona.
A svartur bakgrunnur, heimili mappa efst þar sem allir
skrár fara, a ruslakarfa efst til vinstri,
valmyndinni neðst.
Svo aftur, nokkuð svipuð í anda á Mac OS eða Windows,
jafnvel þó að það gerist að Linux.
Og hvað gerði við gera næst?
Jæja, við byrjuðum á að skrifa forrit.
Og muna frá síðustu viku að allt sem það tekur að skrifa
program er einfaldur texti ritstjóri,
eins og Notepad eða TextEdit.
Frankly, getur þú líka notað Microsoft Word.
En slæmur hlutur mun að lokum gerast, því það er mjög
þungur-hönd lausn til að skrifa forrit, auk það mun
vista það í rangur skrá snið.
En það er bara texti ritstjóri, ritvinnsluforrit, er allt sem er
þarf að skrifa forrit.
>> Svo í CS50 Appliance, getum við gert þetta í einn einfaldan hátt.
Við getum bara smellt á þetta tákn á vinstri neðst.
Og aftur, vandamál setja 1 mun ráðleggja þér um þetta, og voila -
þú færð þetta svart og hvítt tengi sem við getum byrjað
skrifa kóðann.
Svo skulum byrja að skrifa frábær einfalt forrit aftur.
Ég ætla að fara upp til að skrá, vista, og ég ætla að hringja
þetta, við skulum segja, hello2.c.
Og ég er bara að segja það með því að smella á jharvard, setja það
í möppu heimili sínu, ég er ekki alveg sama
þar sem maður fer.
Og svo Vista.
Og nú get ég byrjað að skrifa forritið mitt.
Og ég minnist frá áðan að ég þarf að skrifa int
Helstu (ógilt).
Zoom í á vinstri efst.
Og þá vil ég segja printf, taka tvö.
Og nú newline, loka tilvitnun, loka
sviga, semíkommu.
Og þá fer ég niður á flugstöðinni gluggann minn sem er
fellt í gedit, bara fyrir þægindi.
Og ég ætla að halda áfram og skrifa gera halló, en ekki
Halló einn, hello2.
>> Svo skrá minn heitir hello2.c. Skrá minn því
ætti að vera kölluð hello2, í þessu tilfelli.
Dammit, hvað gerði ég rangt?
Allt í lagi, þannig að ég sleppt greinilega línu, ef þú manst það
fyrri áætlanir líta út.
En við skulum sjá hvort við getum ekki stríða í sundur.
Því miður, flestir sem skrifa forrit sem
við að skrifa forrit gera einfalda ekki hlutina allt sem vel.
Þannig að við verðum að konar Lögð yfir hvað er ekki alveg að gera
skynjað hér og sjá hvort við getum fundið út hvað er rangt.
The mjög fyrstur lína þar segir óbeint lýsa C
bókasafn virka printf með int.
OK, skildi ég hluti af því.
En það virðist vera að alluding til þess að ég notaði printf
rangt, einhvern veginn.
Og hvaða vit er það rangt?
Ég bara ekki að kenna tölvunni að það er í skrá
kallað stdio.h.
Nú hef ég aðeins bara að leggja á minnið nú að printf er
í stdio.h, og raunar það verður önnur
aðgerðir í því sama skrá sem mun fá við að venjast.
>> Svo nú langar mig að fara á undan og högg Ctrl-L bara ljóst að
burtu, endursýning gera hello2, og voila.
Og þessa skipun aftur, flóknari en við munum útskýra fyrir
tilgangi í dag.
En það var keyrt clang og clang tekur kóðann og
spits út 0s og 1s.
Og þeir 0s og 1s í þessu tilfelli eru kallaðir það?
Jæja, mótmæla kóða.
Og skrá sem þeir eru í er kallað, svo,
hello2, í þessu tilfelli.
Þar textaskrá minn var hello2.c, Enter.
Og nú hef ég tekið tvö upphrópunarmerki, upphrópun
punktur, upphrópunarmerki.
Allt í lagi, þannig að við höfum nú getu til að fá strengi,
virðist.
Jæja, hvað annað getum við fengið frá notendum?
>> Jæja í CS50 bókasafninu, það er aðrar aðgerðir sem
eru að fara að einfalda líf okkar á þessum fyrstu dögum.
GetChar, GetDouble, GetFloat, GetInt,
GetLongLong, GetString.
Jæja, við skulum ríf burt auðveldasta af þessum fyrstu.
GetString er bókstaflega það.
Það situr bara þarna og bíður eftir fyrir notandann til að slá eitthvað í,
og um leið og ég slá eitthvað í og ​​ýttu á Enter, það
er eitthvað við þessi gildi.
Svo við skulum fara aftur til að mynda til að sjá nákvæmlega hvað
GetString var að gera.
Leyfðu mér að fara á undan og opna upp í gedit, hello.c og muna
að rétt fyrir hlé, þetta er þar sem við var horfið.
>> Svo skulum nú stríða þetta sundur í smá nánar.
Svo á línu 6, það er tvennt
gerast í augnablikinu.
Jafnan merkið er aðskilnaður fyrri hálfleik og seinni hálfleik.
Svo á vinstri hönd hlið af the jafna tákn erum við
segja band s.
Og þá, skilmálar bara leikmaður er, það er band s
gera, heldur þú?
Það er að búa til hvað?
Svo það er að búa til band sem heitir s.
Nú hvað þýðir það í raun?
Jæja, það er pantað pláss fyrir streng sem heitir s.
Það er ekki alveg rétt.
Hvað er þetta að gera?
Jæja tölvur, eins og þú veist, hafa harða diska, að þar
skrárnar þínar eru geymdar.
Tölvur hafa vinnsluminni, og það er þar sem forrit eru sóttar
meðan þeir eru í gangi.
Svo þegar þú tvöfaldur-smellur á táknið og Microsoft Word opnast
upp, Microsoft Word er í gangi, svo að segja, í RAM, sem er
rafræn hluti af tölvunni þinni.
Ekki líkamlega, vélrænni hluti sem er spuna, þar sem
gögn er yfirleitt geymd langan tíma.
Svo band s er ansi mikið að segja í tölvunni gefa mér
nægjanlegt vinnsluminni til að passa streng.
Nú er það svolítið mikil einföldun, því
hversu stór er strengurinn að fara að?
Jæja við í raun veit ekki enn, svo á næstu vikum að koma
við munum í raun draga til baka lag sem er band og
við munum segja þér hvað það er í raun.
String, fyrir nú, er bara ágætur einföldun heiminum.
En band s lýsir band heitir s, í bili.
Lýsir streng.
Það áskilur pláss í vinnsluminni fyrir streng sem notandinn er
um að gerð.
>> Nú skulum líta á the réttur af the jafna tákn.
Svo segir það GetString ().
Og lítið geðheilbrigði stöðva.
Sú staðreynd að það er ekkert inni í sviga
felur hvað um GetString?
Það tekur engin rök.
Það er ekki hægt að hafa áhrif á hegðun sína á nokkurn hátt.
Í hvert skipti sem þú notar það, það vilja fá band og það er það.
Með því móti, printf, vonandi er hegðun þess
breyta í hvert skipti.
Annars er það nokkuð gagnslaus prentun virka ef
það er það sama.
Ef það prentar alltaf Davíð eða eitthvað
handahófskennt allan tímann.
Svo gerir printf vit í að hafa rök.
GetString ekki raunverulega þörf óákveðinn greinir í ensku rifrildi, því ég vildi
að fá band frá notanda og það er notandi sem er að gerast
að veita kraft með því að slá á mismunandi bókstöfum
í hvert sinn á lyklaborðinu.
>> Svo hvað þýðir GetString gera á endanum?
Hugsaðu um það eins og þetta litla svarta kassanum.
Og þetta svartur kassi tekur ekkert inntak, en þegar þú Bang á
það, spits það út streng sem notandinn hefur slegið inn
Og sú staðreynd að það er jafn skilti þar þýðir að taka
hvað er spýta út á hægri og geyma það inni
hvað er til vinstri.
Svo jöfn merki hér, reyndar það þýðir ekki
jafnrétti, þá þýðir það frekar tæknilega verkefni.
Taktu gildi á hægri og setja það í
breytu á vinstri.
Svo er það allt sem er að gerast þar.
>> Nú í línu 7, við erum að kalla printf.
Svo printf vonandi að hafa smá leiðinlegur núna.
Svo prenta sniðinn band.
Hvaða band?
Prenta út, "h-E-L-L-O,% s
! \ N ".
Allt í lagi, svo hvað vil ég stinga í fyrir% s?
Bókstaflega er allt geymt í s.
Svo er í þessu tilfelli, lítið geðheilbrigði athuga, hversu mörg rök
printf taka?
Jæja, heyrði ég einn.
Ég heyrði eitt aftur.
Tveir, heyrði ég tvo.
Og hvernig óður í þrír?
Jæja, þrír?
Excellent.
Þrjár svarmöguleika, aðeins einn af þeim er rétt.
Svo rök hafa áhrif aftur á hegðun aðgerð.
Í the fortíð, printf var aðeins tekið eitt rifrildi.
"Halló heimur" var eitt rifrildi.
En nú, eftir sem þessi komma er.
Þetta kommu er utan vitna / unquote, sem þýðir
hey printf, hér kemur annað rifrildi.
>> Svo kommu flestum forritunarmál
aðgreindu mörg rök.
Svo er svarið hér örugglega ekki einn, því
Það er þetta kommu.
Svo litlu, printf er greinilega taka tvö
rök að þessu sinni.
En tækifæri fyrir bragð spurningu hér er það
um þetta kommu?
Er þetta gefa til kynna að það er í raun þrír rök?
Þetta, þetta og þetta.
Svo nei, því að komma er inni gæsalappa, sem
þýðir að það er í raun bara fagurfræðilegu ensku.
Það hefur ekkert að gera með fjölda
rök í þessari áætlun.
Svo er þetta kommu utan gæsalöppum.
Og svo aftur á 0.
Bara tegund Fyrir nú skulum við taka þetta einn á trú til
í dag, og bara veit að þegar aðgerðir eru gerðar framkvæmd
línur af kóða, ættu þeir yfirleitt aftur sumir gildi.
Í þessu tilfelli, bara vegna þess að helstu að skila int,
það er bara hvernig tungumálið C virkar.
>> Svo vegna þess að ekkert fór úrskeiðis, finnst eins og þetta forrit er
fínn, dulmáli ég bara harður á móti 0.
En aftur á móti, og ég ætla að skrifa þetta í sauðakóda
nú, eins og Jósef gerði þegar við gerði sokkur
dæmi í síðustu viku.
Ef eitthvað fór úrskeiðis - þetta er ekki raunverulegur númer - fór
rangt, þá aftur, við skulum segja, 1.
Else áreturn 0.
Svo er þetta sem við erum að fara með þetta.
Þetta er ekki raunverulegur C kóða, bara sauðakóðanum.
En þetta er hvernig þú getur aftur
mismunandi mögulegar gildi.
En nú er ég bara að fara að fara á undan og aftur 0.
Allt í lagi, einhverjar spurningar svona langt á setningafræði, virkni,
eða þess háttar?
Já, í bak.
>> Áhorfendur: [inaudible]
DAVID Malan: Getur þú talað svolítið hávær?
Hvers vegna gerði þetta aftur program 0, og?
Áhorfendur: [inaudible]
DAVID Malan: Ó, það er vegna þess að ég fékk latur, því miður.
Engin góð fræðileg svar, aftur 0.
Ég get svona björgunar þetta, með því að segja tæknilega C, ef helstu
ekki beinlínis skila gildi, verður 0 skilað
sjálfkrafa fyrir þig.
Sem er satt, ég er ekki bara að ná upp.
En ætti ég að hafa gert það með þessum hætti.
Ekkert áhugavert takeaway en að aðrir en mistökum mínum.
Já?
>> Áhorfendur: Venjulega þegar þú slærð inn í tómið, sem þýðir að þú
ekki aftur eitthvað.
DAVID Malan: Rétt.
Ef í staðinn, að tilgreina þig áður nafni aðgerð,
dæmi hér, ógild, þá virka
ekki aftur neitt.
Og þess vegna myndi ég bara segja, aftur eða neitt,
og það væri í samræmi.
Og við munum koma aftur að því.
Og bara FYI, einn af þeim afla með námi
forritun í heimi sem hefur nokkur hundruð bækur og
hundruð vefsíður þarna úti er að þú verður ávallt
sjá mismunandi setningafræði í mismunandi bókum
með mismunandi fólki.
Gera sér grein fyrir að við munum gera okkar besta í köflum og fyrirlestra til að vera
samræmi.
En stundum þú munt sjá andstæðar setningafræði.
Svo þegar í efa, bara spyrja.
Og almennt, munum við sjá á fyrirlestrum og hluta til
næstum alltaf til staðar það á réttan hátt.
Og ég segi næstum alltaf, þar sem dæmi um það.
Aðrar spurningar?
>> Áhorfendur: Er% s til utan tækinu?
DAVID Malan: Er% s til utan á tækinu?
Já.
Svo% s hefur að gera með C. staðreynd að við erum að nota það í
tækið hefur í grundvallaratriðum ekkert að gera með
eiginleika tungumálsins sem við erum að nota.
Reyndar, í síðustu viku þegar við notuðum Mac minn, ég skrifaði
C kóða á Mac minn.
Ég hefði getað notað% s á Mac minn, og þú getur notað það á
þinn Gluggakista tölva ef þú setur upp þýðanda, eins og
Visual Studio frá Microsoft.
Svo s%.
Allt sem við erum að gera inni á þessum glugga í dag er að
gera með C. Og grundvallaratriðum ekkert að gera með
stýrikerfi viðkomandi.
Með því móti, svart og hvítt endastöðvar - þegar
Ég er að skrifa hluti eins og LS, og RM og CD -
sem hefur að gera með stýrikerfi og
siglingar í kring.
Já.
Áhorfendur: Ég ætlaði á bókasafnið, á CS50 bókasafn.
DAVID Malan: Allt í lagi, þannig að ef þú átt að leitarorðið band, sem
aðeins til í CS50 bókasafn, rétt.
Það er ekki til í C sjálfri, og raunar í nokkur
vikna munum við henda CS50 bókasafn og byrja
gera hlutina frá grunni sjálf, svo að segja.
Aðrar spurningar?
Já.
>> Áhorfendur: [inaudible]
DAVID Malan: Góð spurning.
Eru skipanir tilfelli næmur?
Og láta mig gera greinarmun hér.
Svo skipanir eru yfirleitt það sem við munum skrifa á það
neðst á glugganum í flugstöðinni glugga.
Neitt upp hér væri yfirlýsingar eða C kóða.
En í báðum tilfellum, svarið er það sama, já.
Báðar þessar umhverfi, C kóða efst og
stýrikerfi stjórn lína á the
botn, eru tilfelli næmur.
Svo þú verður að nýta GetString með höfuðborg G,
höfuðborg S. Þú verður að skrifa printf í öllum lágstöfum.
Þú verður að slá LS í öllum lágstöfum.
Svo í nánast öllum aðstæðum þessa önn, þá mun í
staðreynd, málið.
Já.
>> Áhorfendur: [inaudible]
DAVID Malan: Ah, svo allt í lagi, hvað ef við hefðum skrá
kallað hello.d.
Svo kemur í ljós D er forritunarmál.
Og svo í sumum tilfellum, þá gætum við í raun að skrifa forrit í
að skrá og hafa það saman í þeirri tísku.
Við getum, og í raun, Stutta svarið er, ég veit ekki.
Þannig að við erum að fara að gera þetta.
Leyfðu mér að fara á undan og búa til nýja skrá.
Og snúast hér, heiðarlega almennt, er þegar einhver vafi
þetta misseri, og þú hefur tæki eða tölvu
opna, fara á undan og reyna eitthvað.
Þannig að ég ætla að vista skrá sem kallast hello.d.
Vista þetta.
Og ég ætla að keyra gera Hello Enter.
Það virtist að álykta að C væri líklegri
en d, í þessu tilfelli.
Aðrar spurningar.
Já.
>> Áhorfendur: [inaudible]
DAVID Malan: Allt í lagi, segja að enn einu sinni.
Áhorfendur: [inaudible]
DAVID Malan: Hvernig myndir þú fara að greina það eða
vandræða sem?
Svo líklega, vegna þess að þeir eru mismunandi tungumál,
líklegast þú vildi fá a fullkomlega
mismunandi forrit outputted.
Þú vilt fá alveg mismunandi villuskilaboð.
Og líka bara í skilmálar af hönnun, myndi það að öllum líkindum að vera
léleg hönnun ákvörðun að skrifa tvær mismunandi
tungumálum með næstum samur heitir skrár, í
nákvæmlega sömu skrá, með því að nota
Sjálfvirk tól eins og gera.
Svo ég get líka ýta aftur og segja í 15 ár til að gera þetta,
aldrei gert þessi mistök.
Gæti gerst.
En það er bara mismunandi, ég held,
skipulagningar varnir í stað.
Auk the villa skilaboð sem myndi fylgja í kjölfarið, sem myndi
loksins í ljós hvað málið er.
En hægt horn tilfelli.
>> Allt í lagi, þannig að við skulum taka bara nokkrar aðrar
aðgerðir hér núna, svo að við getum byrjað að byggja upp í fleiri
og flóknari forrit.
Svo fyrst af öllu, stærðfræði.
Svo stærðfræði dæmi eru bara svona auðvelt í fyrstu viku.
Þetta er ekki að segja að öll forritun er um
stærðfræði.
Vissulega, skilja ýmsa eiginleika
stærðfræði, algebra einkum er
alveg hér máli.
Í meiri CS flokkum, línuleg algebra,
stærðfræðigreiningu, og eins.
En átta sig mest af því sem við munum gera þessa önn dregur ekki
í stærðfræði, og vissulega ekki til tölur, í sjálfu sér, en í raun
að bara rökfræði og vandlega hugsun.
Og svo þetta tengsl sem tölvunarfræði hefur lengi haft,
sérstaklega í menntaskóla stigi með stærðfræði, er
svolítið villandi.
Því af the forrit sem við munum skrifa, í raun eru
konar meiri og leggja áherslu á að leysa vandamál sem,
Jú, kannski nota sumir auki Frádráttur, og ýmis
stærðfræði formúlur eða þess háttar,
en í lok dagsins, það er um að hugsa og ekki
bara að innleiða það sem þú gætir hafa gert á eins TI
reiknivél í menntaskóla.
>> Svo með því að segja, við skulum nú gera eitthvað með þetta
stærðfræði rekstraraðila sem finnast svo að við getum ferð
yfir sumir af undirliggjandi þætti forritun, eða í
þessu tilfelli C. Þannig að það eru, eins og CS50 bókasafn leiðbeinandi,
og í dag erum við aðeins með GetString - og í smá stund
kannski einn annar virka -
en það eru mismunandi tegundir gagna í tölvu.
Í lok dags, vita tölvur aðeins 0s og 1s.
En muna að í síðustu viku við ræddum um tvöfaldur kerfi
í hönd númer, eins og fjöldi 0 og 1 og 2,
alla leið á allt að 8, eins og í vídeó nate er.
Og þá getum við treyst miklu hærri eins og við
gerði á sviðinu hér.
En ef þú vilt að tákna ekki bara tölur en bókstafi,
Við, mennirnir, að koma upp með sumir handahófskennt
samninga, þar sem ef í lok dags allt tölvuna mína
hefur er að geta tjáð 0s og 1s, vel við betra
byrja staðla mynstur 0s og 1s sem tákna
mismunandi hlutir.
A mynstur 0s og 1s sem táknar stafinn a.
Mynstur 0s og 1s sem tákna stafinn z.
Mynstur 0s og 1s sem tákna lit blátt, eða
rautt, eða eins.
Við þurfum að nota allt þetta 0s og 1s að tjá okkur í
mismunandi aðstæður, á mismunandi vegu sem eru ekki
endilega tölustafir.
>> Svo hvað varðar framsetningu, C hefur mismunandi gerðir gagna,
og við höfum séð einn af þessum svo langt.
Við sáum int, og taka eftir hvað er ekki á skjánum
núna er strengur.
String er ekki, í raun til í C. Aftur, það er
einföldun sem við erum að kynna í fyrsta
par af vika.
A bleikju er sérstæð.
A fljóta er rauntala, með kommu og númer
vinstri og hægri af því.
A tvöfaldur er það, fyrir þá sem eru með bak fyrri bakgrunni?
Svo er tvöfaldur tvisvar eitthvað.
Bætir tvisvar eins mikið nákvæmni.
Svo hvað þýðir þetta?
Þannig að í öllum þessum tilvikum, sem heimurinn hefur konar staðlað
hversu margir bitar eru notaðir til að tákna
hvert af þessum hlutum.
Svo ef þú hefur horft ASCII vídeó nate er þegar að hluta
á pset 0, eða síðar í þessari viku þú vilja, munt þú sennilega vita
þessi ASCII -
eðli framsetning -
nota hversu margir bita?
Og þú gætir jafnvel muna úr kynningu okkar í síðustu viku um hvernig
margir voru á sviðinu.
Svo 7 eða 8, yfirleitt.
Svo almennt 8, og það er eitthvað sem kallast eins og framlengdur
ASCII sem notar öll 8 bitar í stað 7.
En almennt, tala við í völd 2, þannig að í þessu tilfelli, 8.
Svo er bleikja í forritunarmál yfirleitt 8 bitar.
Svo er int yfirleitt 32 bita.
A fljóta er yfirleitt 32 bita.
A tvöfaldur er yfirleitt 64 bita.
Og hvað þýðir það?
Það þýðir að þú getur táknað stærri tölur, eða um er að ræða
af alvöru tölur, getur þú hafa a einhver fjöldi fleiri tölur eftir
aukastaf.
A einhver fjöldi fleiri nákvæmni, í því tilviki.
Nú fyrir löngu er því miður heitir.
Þannig að það er int sem er 32 bita.
Það er fyrir löngu sem er, Nei, 32 bita.
Og fyrir löngu sem er 64 bita.
En sumir af þeim eru samhengi næmur, það fer
hvers konar tölva sem þú ert.
Svo almennt, munum við tilgreina í heimavinnu eða í spurningakeppni þegar
það skiptir máli í raun og veru.
En málið er að það er öll þessi mismunandi
Fyrirsvar hér.
>> Svo skulum raun kafa inn í kerfið.
Frekar en að skrifa þennan eina frá grunni, láta mig fara á undan
og opna frá frumkóða í dag - allt sem er
á netinu - ef þú vilt að tinker kring á netinu, eða fara aftur á
Miðvikudagur með tæki á tölvunni þinni, leiðbeiningar
sem mun tengja á heimasíðuna námskeiðið er.
Hér er frábær einfalt forrit.
En það er got a lítill eitthvað nýtt efst sem
við höfðum ekki áður.
A heild einhver fjöldi af bláum línum af texta.
Svo þessir bláu línur tákna athugasemdir.
Svo það er alveg gagnlegt í forrit til að vera fær um að skrifa
nokkrar athugasemdir til sjálfur, eða samstarfsmenn eða vinum, eða
kennslu félagar, þessi tegund af lýsa hvað er að gerast í
þessi skrá, en hafa ekkert að gera með C kóða sig.
Ekkert að gera með forritið virka, það er bara
fagurfræði.
Svo er sú leið sem þú gerir þetta í C þú byrjar yfirleitt þinn
athugasemdir með / *, og þú endar athugasemdir með
* /.
Og ef þú ert mjög anal og finnst gaman að teikna svoleiðis myndum,
þá þú vilt setja allt fullt af stjörnum, vilt þú að gera
lítill kassi svona.
En ekkert sem skiptir máli.
Það eina sem skiptir máli er fyrsta
og mjög síðasta.
Þetta er það sem er kallað multi-lína athugasemd.
Og það er bara mannlegt venju að oft á stjörnurnar og kassi
hlutir í svona ef þú hafa a einhver fjöldi af frjáls tími.
>> Svo eftir að þú hefur skrifað í sumum athugasemdum, almennt, að koma
í raun þorað áætlunarinnar.
Hér er kunnuglegt okkar # include .
Og bara fljótur, það er nauðsynlegt eða ekki nauðsynlegt?
Áhorfendur: nauðsynlegt.
DAVID Malan: Svo það er í raun ekki nauðsynlegt.
Svo hvers vegna, þó er það ekki nauðsynlegt?
Svo er engin printf.
Reyndar.
Allt sem við erum að gera í þessu forriti er stærðfræði.
Þannig að ég get í raun að eyða það.
Svo þú þarft ekki alltaf að fela eitthvað
efst á dagskrá.
>> Svo skulum einfalda þetta aðeins.
Og nú eftir hvað þetta forrit gerir.
Ekki mikið af áhuga.
int x = 1.
Jæja, hvað er þetta að gera?
Jæja, hugsa aftur til andlega fyrirmynd frá áður.
The vinstri hönd hlið af þessu tjáningu gerir hvað?
Búa til pláss fyrir heiltala.
Svo hversu mikið pláss?
Jæja, gerast við að vita nú að það er 32 bita.
Áður band var tæknilega 32 bita, en meira
um það í framtíðinni.
En int er 32 bita.
Þannig að þetta tjáningu á vinstri hér, int x bara segir hey
stýrikerfi, gefa mér 32 bita af RAM -
annars þekkt sem 4 bytes RAM -
þannig að ég get sett heiltölu í því rými.
Hvaða heiltala did þú vilt að setja?
Jæja, bara númer 1.
int Y fær 2, er nákvæmlega það sama, jafnvel þótt
tala er stærri, í skilmálar af stærð þess.
Talan sjálf er enn bara 32 bita.
Það er bara mynstur bita er frábrugðið
tákna 1 á móti 2.
int z segir nú að gefa mér annað 32 bita, kalla Z og setja
samantekt á 1 og 2 í það.
Svo að nú Z er væntanlega að geyma gildið 3,
og svo aftur á 0.
>> Nú þetta forrit, er það að gera eitthvað af áhuga?
Svo það í raun ekki að gera neitt áhugavert, í hvaða
skilningi, því hvers vegna? Það er að gera stærðfræði.
En það er ekki aftur svarið rétt.
Það er aftur á 0.
Það er ekki prenta svarið.
Svo er þetta forrit í grundvallaratriðum einskis virði, eins og það
stendur nú.
Það er að gera sumir vinna.
Það er að fara að taka nokkurn fjölda sekúndur eða míkrósekúndur, til
hlaupa, en það er í raun ekki að gera neitt
gagnlegt fyrir mönnum.
>> Svo skulum reyndar nú opna math2, þar nú er ég í raun og veru
prenta niðurstöðu.
Svo þetta líka hægt að álykta af fyrri dæmum okkar.
Ef ég vil gera nokkrar einfaldar stærðfræði, int x = 1, y
= 2. Z er 1 plús 2 núna.
Hvað er þetta að fara að prenta út vitanlega?
Bara 3.
Svo fljótur geðheilbrigði athuga.
Leyfðu mér að fara inn í þessa möppu.
Svo CD source1m.
Leyfðu mér að fara á undan og slá gera math2.
Engin villuskilaboð komu út, svo látið mig hlaupa -
ekki a.out--láta mig hlaupa math2. Enter.
Og reyndar, prenta það út 3.
Jæja við skulum taka a líta á afbrigði af þessu.
Í math3.c, höfum við nú þetta dæmi hérna.
>> Svo þetta annar konar áhugavert.
Þannig að í þessu hér, svarið er að fara að fá 1 deilt með 10,
og taka eftir að ég hef lýst því sem fljóta.
Hvers vegna vil ég að það að vera fljóta?
Jæja, þá er það brot.
Það er að fara til vera a raunverulegur tala.
Svo það er að fara að vera 0,1, vonandi - 10%, í þessu tilfelli.
Og hvað ég vil þá til að prenta út?
Jæja, þetta svar.
Jæja, við skulum stríða þessum sundur fyrst.
Svo á vinstri hönd hlið, lýsa því yfir að
fljóta, kalla það svara.
Á hægri hönd, ekki 1 deilt með 10 og setja það
svara inni breytu.
Nú, þessi lína lítur svolítið dulinn.
En eftir nokkur kunnugleg lögun. % Þýðir hér kemur
tákn.
f þýðir hér er Fleytitölugildi, bara alvöru
númer, eitthvað með kommu.
0,2 þýðir það?
Hver veit frá fyrri reynslu?
Tveimur aukastöfum.
Þannig að við höfum ekki séð þetta áður, en það er bara leið til að
æfa smá meiri stjórn á printf og
segja ekki gefa mér 30 stig eftir kommu
í staðinn að gefa mér bara 2.
>> Og þá skulum við fara á undan og keyra þetta.
Svo gera stærðfræði 3, og nú láta mig hlaupa stærðfræði 3, Enter.
Og það er ekki rétt.
Við virðumst hafa upp fyrsta ósvikinn galla okkar.
Jæja, kannski er ég bara ekki að leita nógu nálægt.
Svo láta mig fara hingað og láta mig setja 20 aukastaf
Spjallsvæði staði þar.
Og láta mig þýða þetta, gera math3, hlaupa.
Nokkuð viss um að 1 deilt með 10 er ekki 0.
Svo hvað er í gangi?
Jæja allt í lagi, svo í raun það þarf ekki að gera við þetta.
Það er góð hugmynd.
Þetta er í raun bara tilviljun
sem við erum að gera þetta.
En bara til að sanna að þetta er ekki það, ég
aftur eitthvað af handahófi.
Ekki gera þetta heima, því það er bara rangt.
En gera math3, láta mig keyra það.
Svo hefur ekkert að gera með það sem ég er aftur, aðeins að gera
með það sem ég er að prenta.
En ég heyrði það hérna.
Hvað?
Áhorfendur: Þannig að við þurfum að skrifa tölurnar í
skiptingu sem -
>> DAVID Malan: Jæja gott.
Þannig að við þurfum að skrifa tölurnar sem taka þátt í
deild hér sem fleytitölu gildi sig.
Svo er vandamálið hér eins og áður: C, eins og með fullt af
tungumálum, hefur mismunandi gögn.
Og þær tegundir gagna, til dæmis, eru þessar hér.
Og gögn tegundir um ræðir hér, þegar ég tegund 1 og svo ég
gerð 10, eru sennilega gagnatög hvað?
Svo það er líklega int, ekki satt?
Það er örugglega ekki fljóta vegna þess að það er engin aukastaf
lið eða eitthvað svoleiðis.
Svo í raun, hef ég int deilt með heiltala.
>> Svo er áhugaverður hlutur óður í stærðfræði og tölvu sem
Ef þú ert að gera skiptingu með heiltölur -
1 deilt með 10, já er 0,1.
Hins vegar þegar þú ert að deila heiltölu með heiltölu, sem
Svarið er einnig að vera heiltala bara vegna þess, að nú.
Og hvað er óbeint þá?
Jæja, ef svarið er 1 deilt með 10 jafngildir 0,1, hvað
tölvan er að fara að gera er að ég hef ekki hugmynd um hvernig á að
tákna 0,1, vegna þess að það er Fleytitölugildi, ekki
heiltala, það er að fara að höggva á allt eftir að
kommu og bara sýna þér 0 í upphafi.
Og sú staðreynd að það er prentun sem fleytitölu
gildi, það er bara fagurfræði hlutur.
Það er vegna þess að ég er að neyða tölvuna til að prenta þetta sem
Fleytitölugildi.
Og reyndar hef ég lýst því sem fljóta, en stærðfræði er
gerast hérna.
>> Svo láta mig festa reyndar þetta í einn laglegur þægilegur hátt.
Hvers vegna get ég ekki bara 10,0 og 1,0, en
tæknilega ég gæti komist upp með bara að gera einn af þeim.
Nú láta mig fara á undan og gera math3.
Leyfðu mér að fara á undan og nú hlaupa math3, Enter.
Og nú, ó drengur.
Nú höfum við nýtt vandamál að öllu leyti.
Svo betra, ekki satt, við erum nær 0,1, en það greinilega er
rangt hérna?
Nema við höfum verið að ljúga að þér í mörg ár, ekki satt?
1 deilt með 10 er í raun ekki alveg 0,1, svo það er
raunverulega að gerast hér?
Jæja þú getur konar ástæðu gegnum þetta rökrétt.
Ef tölvan hefur aðeins endanlegt magn af RAM til að byrja
með, og örugglega tölva er einungis að nota 32 bita fyrir
Fleytitölugildi, stendur það til ástæðu að með
takmarkaðan fjölda bita, 32 í þessu tilfelli, já, þú getur
tákna mikið af efni.
Það er í raun fjögurra milljarða mismunandi gildi má
fulltrúa með 32 bita, 2 til 32, en það er samt tímabundið.
Svo er vandamálið að það er óendanlegur fjöldi af alvöru
tölur, ekki satt.
Ef þú gefur mér alvöru tala, ég get alltaf fundið þér einn
örlítið stærri, aðeins minna, bara klip
tölur sem eru eftir kommu.
Svo ef þú ert ekki með óendanlega fjölda bita, þú
getur ekki hugsanlega tákna óendanlega
fjöldi rauntalna.
>> Svo er það þetta felst imprecision í tölvum og
þetta fær skemmtiferðamaður yfir öllum þeim tíma, jafnvel í einföldustu
forrit eins og þetta.
En einnig í sumum mjög raunverulegur veröld vandamál eins og heilbrigður.
Í staðreynd, við skulum taka a augnablik til að bara taka a líta á
eitthvað sem raunverulega gerðist í raun og veru.
Við munum horfa bara á fyrstu tveimur mínútum, og þá
við munum setja inn tengil á netinu.
En þetta er vitnisburður um það sem getur farið úrskeiðis, alveg
heiðarlega, í mjög sorglegur hátt þegar þessir hlutir eru ekki
þakka eða bara við mennirnir gera mistök þegar kemur að
þessar tegundir af upplýsingum framkvæmd nútíma tölvum.
>> [VIDEO Spilar]
-Við aftur nú í verkfræði hamförum á nútíma undur.
Tölvur.
Við höfum komið öll að samþykkja oft pirrandi vandamál
að fara með þeim.
Bugs, veirur, og hugbúnaður galli eru lítil verð til
borga fyrir þægindi.
En í Hátækni og hár hraði hersins og rúm
program forrit, minnsta vandamál geta verið
mikil í hörmung.
Hinn 4. júní 1996, vísindamenn reiðubúin til að ráðast á unmanned
Ariane 5 eldflaug.
Það var vopnaður vísindalegar gervihnöttum sem ætlað er að
koma nákvæmlega hvernig segulsvið jarðarinnar
samskipti með sól vindur.
Eldflaugar var byggt fyrir Evrópu Space Agency og
lyft burt af leikni hennar á strönd franska Guyana.
>> -Á um um 37 sekúndur inn í flugi, fyrst þeir
taka eitthvað var að fara úrskeiðis, að Nozzles voru
segulnagli á þann hátt að þeir ættu í raun ekki.
Um 40 sekúndur í flugi, greinilega ökutæki
var í vandræðum, og það er þegar þeir tekið þá ákvörðun að
eyðileggja það.
A öryggi svið liðsforingi með gríðarlega hugaður þrýsta á
hnappinn, blés upp eldflaugar áður en það gæti orðið
hættu að almannaöryggis.
>> -Þetta var mær ferð á Ariane 5, og þess
eyðilegging átti sér stað vegna þess að galli embed í
Rocket hugbúnaður.
>> -Vandamálið á Ariane var að það var tala sem
krefst 64 bita til að tjá og að þeir vildu breyta henni
í 16 bita númer.
Þeir gera ráð fyrir að fjöldi var aldrei
að fara að vera mjög stór,
að flestir þeirra tölustafa í 64 bita númer voru 0s.
Þeir voru rangar.
>> -The vanhæfni einn hugbúnaður program til að samþykkja
konar fjölda mynda af annar var á rót
bilun.
Hugbúnaður þróun hefði orðið mjög dýr hluti af
ný tækni.
The Ariane 4 flugeldur hefði verið mjög vel.
Svo mikið af hugbúnaður skapa fyrir það var einnig notað
á Ariane 5.
>> -Grunn vandamálið var að Ariane 5 var hraðari,
hraða hraðar.
Og hugbúnaður hafði ekki grein fyrir því.
>> -The eyðileggingu eldflaugar var gríðarstór fjármála
hörmung, allt vegna mínútu hugbúnaður villa.
En þetta var ekki í fyrsta skipti sem vefhegðunargögn vandamál höfðu
stríða nútíma eldflaugar tækni.
>> DAVID Malan: Við munum láta það á því.
En þetta er erfðaskrá til hversu við jafnvel sumir af
þessar lægsta upplýsingar sem við höfum byrjað að
kanna í dag eru.
Svo eins og þú færð smá annars hugar kannski af einhverjum
The setningafræði og arcaneness hér, átta sig á að yfir
tíma sem við munum leggja áherslu bara á hvernig við þetta er að
heima langt umfram CS.
Við munum sjá þig á miðvikudag.