[Powered by Google Translate] DAVID Malan: Hii ni CS50, na hii ni mwanzo wa Wiki 1.
Nini sisi mawazo tunatarajia kufanya leo ni kuangalia nyuma katika
kitu wengi wenu pengine kutembea nyuma kwa baadhi
wakati sasa na ili kuangalia kidogo familiar.
Hii kitu hapa, hii bila shaka ni katika -
Watazamaji: Sayansi.
DAVID Malan: Sayansi katikati.
Hivyo hii ni kweli moja ya kompyuta mwanzo
nyuma kutoka miaka ya 1940.
Ilikuwa moja ya kompyuta ya kwanza electromechanical
kwamba alikuwa na uwezo wa hasa kwa muda mrefu,
binafsi endelevu computations, na kile sisi kweli kuona katika
kituo cha sayansi ni tu kipande kidogo ya jambo hili.
Nini sisi mawazo tunatarajia kufanya basi ni kuangalia nyuma katika video
kilichofanyika baadhi ya wakati uliopita, kuanzisha hii
kitu kwa ulimwengu.
Na utaona kutoka muziki na sauti kwamba hakika wale
walikuwa na furaha sana nyakati.
>> [VIDEO avspelning]
-Ushindi wa ujuzi hisabati na mitambo ni hii
mkuu mpya moja kwa moja Calculator katika Chuo Kikuu cha Harvard.
Intricate matatizo katika hisabati, kuweka njia ya
mashine katika fomu coded juu ya mkanda, ni usahihi kutatuliwa katika
dakika sehemu ya muda unaotakiwa kwa binadamu
hesabu.
Iliyoundwa na kuharakisha aina zote za hisabati na sayansi
utafiti, kampuni kubwa ya ubongo mitambo itafanya kazi kwa ajili ya Umoja
Nchi Navy mpaka mwisho wa vita.
>> DAVID Malan: Basi nini unaweza kujua ni kwamba ilikuwa katika
hii kifaa sawa kwamba mrefu sisi wote sasa kuchukua pretty much
kwa alimjalia lilianzishwa, kwamba wa mdudu.
Basi mmoja wa wahandisi kazi katika kompyuta hii
literally kupatikana nondo ndogo katika mashine ambayo ilisababisha
katika baadhi mahesabu sahihi.
Na kama hadithi inakwenda nondo kwamba alikuwa taped kwa logi hii
journal hapa, nyuma kutoka Septemba 9 mwaka 1940 kitu,
na hivyo alizaliwa kwa ulimwengu neno "mdudu".
Hivyo tangu sasa tunaona mende kuwa aina yoyote ya makosa katika
programu, kama mwanadamu au, katika kesi hii, wadudu.
>> Hivyo matangazo machache, kama sisi kuendelea.
Hivyo CS50 ina desturi ya sadaka ya chakula cha mchana wa aina juu ya
zaidi ya Ijumaa wakati wa muhula, ambapo sisi kuchukua 30 kwa
40 ya wanafunzi wa Moto na Ice katika Square kwa kawaida
porojo, majadiliano juu ya sayansi ya kompyuta,
majadiliano juu ya siku zijazo.
Tunakaribisha Waliofuzu na marafiki kutoka sekta ya kuzungumza juu
wanafunzi pia.
Kweli kuelekea mwisho wa kufanya nini darasa haki kubwa
yote ionekane zaidi, angalau mara moja kwa wakati kwa ajili ya
subsets ya wanafunzi.
Hivyo kama ungependa kujiunga na sisi hii Ijumaa, 01:15, kwenda
CS50.net/lunch kwa RSVP.
Na tutaweza kufanya hivyo recurringly, hivyo usiwe na wasiwasi kama wewe si
kati ya 30 ya kwanza au hivyo wiki hii.
>> Hivyo mwandishi maelezo.
neno juu ya rasilimali ambayo sasa kuanza kuwa inapatikana
kwa wanafunzi katika darasa.
Kwa hivyo vichwa yako haja ya kuwa chini wakati wa mihadhara
scribbling kila kitu chini nasema na kadhalika, nini cha kufanya
badala ni kutoa mafundisho kutoka kwa wafanyakazi
kisheria seti ya maelezo.
Hivyo tuna moja ya wenzetu mafundisho, Andrew Sellergren,
aketiye chini kila wiki, unatathmini video, na kisha
anaandika chini nini tunafikiri ni uungwana
mamlaka ya kuweka maelezo.
Na fond Andrew, pia, ya kuweka maelezo snarky katika
chini.
Hivyo itabidi hopefully kufurahia haya kama kitabu rejea kwa ajili ya
furaha, na pia, kuja Quiz muda, kama fursa ya
kile kilichotokea katika mihadhara ya mtu binafsi.
Hivyo wale ni wanaohusishwa katika ukurasa wa mihadhara.
>> Tatizo kuweka 0, wakati huo huo, ni nje.
Na katika suala la rasilimali zilizopo kwa wewe -
walkthrough.
Milo wakiongozwa kwanza juu ya Ijumaa.
Ni ilifanyiwa, kuweka online na Jumamosi.
Na hivyo kutambua, kama wewe ni uhakika ambapo kwa kuanza,
kwa hii au baadaye p-sets, daima kugeuka kwanza kwa
walkthrough au vyake video.
Sectioning ni katika maendeleo; katika cs50.net/section ni wapi
wanapaswa kuwasilisha mapendekezo yako, kama wewe si
tayari, kwa leo.
Kwa sababu sehemu kuanza Jumapili hii ijayo, Jumatatu,
na Jumanne.
Sisi kufanya sehemu hizo siku tatu, kila wiki ya
muhula kwa sehemu kubwa.
Na sisi pia kuanzisha, tena, tracks tofauti.
Hivyo itabidi kuulizwa kwenye fomu hii sectioning, kama wewe
si kuonekana ni tayari, kama wewe ni miongoni mwa walio chini
starehe, vizuri zaidi, au mahali fulani katika kati.
Na kama wewe ni aina ya juu ya uzio, kwa ujumla mahali fulani katika
kati ni nini wanafunzi wengi kuishia kuangalia.
Ofisi ya masaa kuanza usiku wa leo.
>> Hivyo Scratch ni haki Asili muhimu, hata kama ni kawaida kabisa
kukimbia katika mende mbalimbali, au sitasita kama jinsi
kutekeleza jambo fulani.
Hivyo kutambua kwamba sisi kuanza masaa ya ofisi ya wiki hii.
Wao utakuwa katika Annenberg Jumatatu, Jumanne, Jumatano,
Alhamisi, kutoka PM 8:00-11:00 wakati wa mapumziko ya ubongo.
Classmen Upper anaweza kupata, na kama umewahi kuwa na matatizo ya kupata
katika mlango, kwa sababu wao utakuwa swiping, tu majadiliano njia yako
katika kueleza na uko pamoja CS50.
Kawaida ya 20 na 30 ya sisi juu ya wafanyakazi itakuwa pale kusaidia
wewe moja kwa moja.
>> Baada ya kuwasili wazo ni hii: utasikia kuleta Laptop yako,
itabidi chaja yako, tutaweza kuwa na kamba nguvu ya ziada,
hasa kwenye ukuta wa kusini wa Annenberg ambapo
kuna kura ya maduka ya umeme.
Na kuu cha kuingia katika ofisi masaa Q & ni kwenda
cs50.net/discuss na post
swali lako hapo.
Na kuipatia jina na pset 0 au pset 1, chochote wiki
inaweza kutokea kwa kuwa.
Na kisha nini tutaweza kufanya ni kuwa na meza ya wenzake mafundisho
na bila shaka wasaidizi, kwa ujumla 8 au 10 au hivyo wa kwetu,
kwenda kupitia, kuweka ya uangalizi juu ya bodi, na
kukwanyua mbali maswali kweli kwa haraka kama tunaweza,
akimaanisha wewe posts kuhusiana kama si kupatikana wale
wenyewe, online kumbukumbu, kama inafaa.
Na kisha kama kuna matatizo, kama kuna inevitably
itakuwa, au ni tu na mantiki zaidi ya kukaa chini moja kwa moja,
kazi kwa njia ya matatizo na mtu.
>> Au wewe tu kuja katika masaa ya ofisi kweli
wanaohitaji kwamba mawazo.
Hutaki kupitia fomu za elektroniki, wewe
kweli unataka kukutana na mtu.
Kuwasiliana kwamba kwa sisi, na nini kitatokea ni wakati wako
swali imekuwa kuonekana na mwanachama wa wafanyakazi, na sisi
kuamua, yup, hii lazima dispatched moja ya 20 au
30 wanachama wa timu ya hapa ndani ya nchi, utaona katika juu ya kushoto hii
kidogo Ingiza kifungo Foleni kuanza flashing juu ya cs50.net /
kujadili.
Na hii ni kuwaambia kwamba wewe sasa wamealikwa, hivyo
kusema, kuingia foleni.
Na kwa kubonyeza kifungo kwamba, jina lako kisha kuonekana juu ya
iPad kwamba greeter CS50, mmoja wa vichwa kozi ya, mapenzi
kuwa wakishika karibu na mlango wa Annenberg, ambaye baadaye
kuona kama alivyoonyeshwa hapa, wanafunzi ambao wana maswali juu ya
kushoto, wafanyakazi ambao wapo juu ya haki.
Na na bonyeza ya kushoto na kulia, mtandao wako browser mapenzi
kuanza flashing haraka kama, kwa mfano, Profesa McGonnagal
ni tayari kuona wewe mezani hasa katika Annenberg.
>> Hivyo sisi alifanya baadhi ya mwaka huu wa mwisho.
Tumekuwa rebooted masaa ya ofisi na
re-kutekelezwa mengi ya programu.
Hivyo kutambua kwamba hii itakuwa joto juu wiki hii.
Lakini pia kutambua pia, katika miaka ya nyuma, kama unaweza kuwa na habari
kutoka kwa marafiki, ofisi ya masaa 50 kwa kweli alikuwa na
150 wanafunzi kwa mara moja.
Na ni tu haiwezekani kwa sisi kushughulikia kwamba
ufanisi, mmoja mmoja, katika jioni.
Na hivyo kile sisi ni kweli kwenda kujaribu kufanya mwaka huu ni
capitalize kwenye ukweli kwamba mengi ya maswali ni
yanayoulizwa mara kwa mara na mara nyingi unaweza kuwa bora akajibu
asynchronously.
Hivyo unaweza aina ya kufikiri njia ya kukabiliana wafanyakazi wa,
na tunaweza kufikiria njia code yako, bila joto
shinikizo la lazima wanajitahidi
kwa njia hiyo upande kwa upande.
Hivyo sisi wanakadiria kwamba takriban tatu au nusu ya maswali
itakuwa dispatched katika mtu, na tutaweza kujaribu konoa kama
wengi kama nusu au zaidi kielektroniki,
wakati wa masaa ya ofisi.
Na tutaweza kuendelea kutumia Jadili
katika wiki kama vizuri.
>> Na mwisho, kutambua kwamba bila shaka hii inaweza kuchukuliwa kupita / kushindwa.
Hivyo kama wewe ni juu ya ua au tu kufikiri kwamba wewe ni kweli
uhakika kama hii ni dunia kwa ajili yenu, au hii ni kweli
kabisa wa kigeni kwa wewe, kutambua kwamba hii ni njia ya ajabu
ya kupata up baadhi kujiamini na ambayo kwa hatua katika
darasa, kama mimi kusema ukweli, miaka iliyopita.
Na kisha kuwa na wiki tano ya kutatua ya takwimu nje kwa
mwenyewe kama unataka kukaa kupita / kushindwa, kubadili barua
daraja, au kama.
Na kwa kawaida nini kupita / kushindwa haina, nadhani, kwa ajili ya wanafunzi ni
kwamba, kama wewe kuweka katika masaa 10 kwamba, masaa 20, yoyote
inaweza kuwa kwenye baadhi ya matatizo, na wewe ni kichwa banging yako
dhidi ya ukuta,
na kama kweli wewe tu hawezi Chase kitu chini, na wewe
kuwa na mambo mengi mengine unahitaji kufanya, uaminifu, kile
kufikiri kupita / kushindwa ni, inachukua makali mbali ya
hali kama hiyo.
Ambapo umechukua kitu 90% ya njia.
Unajua, siyo kabisa kamilifu.
Lakini wewe got mengi nje ya hayo, hata hivyo.
Hivyo kufikiria kupita / kushindwa kuwapa ninyi kuwa
akili mfano, labda.
>> Haki ya wote, hivyo wiki iliyopita sisi njiwa katika Scratch, na sisi
aliyesema kuhusu programu katika ngazi ya haki high graphical.
Na leo sisi kufanya mpito kwa lugha
kuitwa C, ngazi ya chini ya programu ya lugha juu ya
ambayo wengi lugha za kisasa ni sasa kujengwa, ikiwa ni pamoja na baadhi ya
ya ndio tutaweza kutumia kuelekea mwisho mrefu wa.
Na syntactically, nini wao kuangalia kama
yote ni sawa kabisa.
Basi hebu kuanza kufanya hii mpito hapa.
Hivyo hii ilikuwa mpango wiki iliyopita kwamba alikuwa rahisi ya
hujambo dunia mipango.
Ni tu kuchapishwa kwa ulimwengu screen hello, na
kidogo hotuba Bubble kuja nje ya paka.
Naam, kama sisi kuanza sasa kwa hii kutafsiri kwa mwingine
lugha, kutambua kwamba mawazo leo na siku ya Jumatano
ni sawa, lakini syntax kuanza kubadilika.
Hivyo ambapo wiki iliyopita tulikuwa na, wakati bendera ya kijani clicked, wanasema
hujambo dunia.
Leo sisi itawabidi int, kuu, utupu, printf,
kurudi, na baadhi ya wengine katika syntax huko pia.
Curly braces, na mabano, na quotes, na whatnot.
Lakini kutambua kwamba msingi wa wazo hapa ni uchapishaji,
na hatimaye ukweli kwamba kuu sasa ni kwenda kuwa
sawa na kuanza mpango.
Kuu ni kwenda kuwa ambapo bendera ya kijani mateke mambo mbali.
>> Hivyo sasa hebu tease mbali baadhi ya vitalu jengo hapa
kabla ya sisi kupiga mbizi katika baadhi ya mifano halisi.
Hivyo sisi kuitwa wiki hii kauli ya mwisho, ambapo ni tu
mafundisho.
Je, hii - katika kesi hii, wanasema dunia hello.
Vizuri katika C, kama tunaangalia tu line kwamba, hii ni jinsi sisi ni
kwenda kuanza kueleza kwamba hasa puzzle kipande:
printf ("hello dunia");.
Na sasa tutaweza tease hizi mbali zaidi na zaidi juu ya muda,
lakini kutambua kwamba kuna mfano hapa.
Hivyo moja, tuna jambo hili aitwaye printf, ambayo ni
kimsingi sawa na neno Sema.
Hiyo ni nini ni kwenda kufanya.
Printf, na f hapa ina maana ya "formatted".
Hivyo njia tu unaweza kuingiza
mbalimbali aesthetic maelezo.
Hivyo quote unquote ni mwanzo wa nini tunakwenda
kuanza wito kamba.
neno, maneno, sentensi.
kamba katika lugha ya programu ni mlolongo wa sifuri
au zaidi wahusika.
Hivyo h-e-l-l-o, comma, na kadhalika ni,
quote unquote, kamba.
Na sasa backslash n, kidogo syntactically isiyo ya kawaida, lakini sisi
tayari hufafanuliwa kwamba wiki iliyopita kama maana gani?
Ni tu mstari mpya.
Ni njia tu ya kuwasilisha kwa kompyuta unataka
sawa ya kupiga Ingiza huko, lakini huna
wanataka kweli hit Enter na hivyo kuharibu yote ya
formatting ya programu yako halisi.
Sasa mabano uambatanishe hii kamba, na wazi Paren
karibu Paren, na ndani ya kwamba ni kamba yetu.
Kwa sababu hiyo ni kwa sababu katika C, na mengine ya programu
lugha, mambo kama printf kuchukua hoja, au kuchukua
vigezo.
>> Hivyo kuanza kufikiri sasa wa block hii zambarau, Sema kama
kazi, kama mbinu, kama utaratibu.
Unaweza kweli kuiita chochote unataka kwa sasa, lakini
ni ya aina ya mpango miniatyr kwamba tu anafanya moja
kitu, katika line moja, si chini.
Hivyo printf pia ni nini tuko kwenda kuanza wito
kazi, na kazi kufanya kitu - katika kesi hii
Prints string formatted kwa screen -
lakini kazi pia kuchukua hoja au vigezo.
Na kwa hoja au vigezo, asante, tuna maana ya
kwamba tabia yao yanaweza kuathiriwa na kile wewe kupita katika
ndani ya mabano.
Hivyo katika kesi hii, mahitaji printf kuambiwa na magazeti, na sisi
kupita tu katika, katika quotes mbili hapa, kamba kwamba sisi
kweli unataka magazeti.
Na juu ya semicolon mwisho sana ya mstari huu ni tu
kihistoria kero ambapo katika mwisho wa mistari zaidi ya kificho,
kuweka semicolon kufanya super wazi kwa kompyuta
kwamba hii mstari wa kanuni itaishia hapa.
Sasa hii ni nzuri kwa sababu kama tutaweza kuona kama mipango kupata zaidi
tata, semicolon nitafanya binadamu super wazi kwetu,
na pia kompyuta, ambapo mstari wa kanuni mwanzo na mwisho.
Kutambua kwamba baadhi ya lugha hawana baadhi
ya haya maelezo sawa.
Na kwa kweli, katika JavaScript, huna haja ya kitu daima
kama semicolon.
Lakini zaidi juu ya kwamba kuja.
>> Hivyo matanzi.
Tulikuwa na kitu kama hii, sana intuitively, dhahiri, kufanya
kitu tena na tena na tena.
Kama kuweka kwenye soksi, au kusema hello, katika kesi hii.
Naam, kuanzia leo katika C, tunaweza kueleza hii Scratch
kuzuia kama wakati (wa kweli) printf ("hello dunia").
Hivyo taarifa tuko mapya ya kujenga juu ya literally puzzle
kipande kutoka kabla.
Tuna huo zambarau kuzuia, lakini ni ndani ya hii
bracketed Forever block, na njia bora ya kutafsiri kwamba
na C ni kama ifuatavyo.
Hakuna Forever Keyword.
Huwezi tu aina f-o-r-e-v-e-r katika C.
Hivyo Analog karibu ni wakati.
>> Sasa, wakati (wa kweli) inaonekana kidogo kijinga kwa sababu gani thamani
ya mabadiliko ya kweli milele?
Takribani si.
Ni kama kusema wakati mmoja, wakati juu, wakati kweli.
Ni jambo wote huo, kweli ni mara ya kesi.
Hivyo kitanzi hii ni kweli inducing ni aina gani ya kitanzi?
Tu kitanzi usio, kulia.
Kitanzi Forever au kama sisi kuitwa ni wiki iliyopita,
tu kitanzi usio.
Hivyo wakati mwingine hiyo ni mbaya.
Wakati mwingine kwamba mdudu, wakati mwingine kwamba sababu ya kupata
turtle beach mpira au hourglass au kama.
Lakini katika kesi hii, sisi makusudi, kwa chochote
sababu, alitaka magazeti kitu kimoja tena
na tena na tena.
Au katika kesi ya kama kuangalia, unataka kufanya
kitu tena na tena na tena.
Hivyo matanzi usio inaweza kufanya akili.
Na hii ni jinsi katika C tupate kutafsiri Forever kwa kificho.
>> Hivyo sasa huyu 'kidogo zaidi maalum.
Tulikuwa kurudia mara 10 kauli ifuatayo.
Hivyo wakati (wa kweli) haina kabisa kufanya kazi huko, kwa sababu kweli ni
kweli daima.
Hivyo kama sisi badala kuangalia toleo C, sasa syntax anapata
zaidi kidogo cryptic.
Lakini kwa kuwa waaminifu mara moja kuanza kuona hii, ni wote anapata
pretty familiar haraka.
Hivyo hii ni kile kinachoitwa kwa kitanzi.
kwa kitanzi itakueleza kompyuta kufanya kitu
tena na tena na tena kwa muda mrefu kama
mambo haya ni ya kweli.
Sasa nini maana sisi na kwamba?
Naam, kuna sehemu tatu kwa ajili ya kitanzi, na tunakwenda
kurudi huu katika mazingira ya halisi
mifano katika wakati huu.
Hiyo msiwe na wasiwasi kama haina kabisa kuzama katika wote mara moja.
Lakini int i = 0 ni, mrefu hadithi fupi, akisema nipe
variable kwamba integer ya aina, hivyo nipe namba
kuitwa i, na initialize kwa 0.
Hiyo ni nipe kama x kimahesabu kutofautiana na
initialize kwa 0.
Lakini katika kesi hii sisi kuitwa ni i.
Kisha katika katikati, inasema i ni chini ya 10.
Anayewambia kompyuta kufanya mambo yafuatayo muda mrefu
kama i ni chini ya 10.
Na ni wazi ni kuanza chini ya 10 kwa sababu
ni kuanza saa 0.
Kisha mwisho, unaweza labda nadhani nini i + njia +.
Ni kidogo ya syntax kwamba njia tu increment i.
Hivyo kuongeza 1 kwa i, tena na tena na tena.
>> Na hivyo kama tutaweza kuona hii kitanzi, syntax hii, badala yake, zana za
just kitu kimoja kwamba, kusema ukweli, katika Scratch ilikuwa tu hivyo
rahisi kueleza.
Rudia 10, na wewe ni kosa.
Katika C, na katika lugha zaidi ya programu, tuna kuwa
zaidi kidogo mazingatio kwa kompyuta na kweli
taja kitu kama hiki.
Lakini tutaweza kurudi hii na syntax nyingine.
>> Je kuhusu vigezo?
Katika Scratch sisi alikuwa na kitu kama vitalu haya machungwa,
ambapo mimi nilikuwa kutangaza kutofautiana.
Hebu kiholela kuiita counter.
Hebu initialize kwa 0, na kisha
hebu milele kufanya kitu.
Katika kesi hiyo katika Scratch mimi kusema counter, hivyo
paka kinaendelea kuwa kidogo hotuba Bubble hiyo akizungumza
idadi hiyo ni katika variable hii.
Na kisha tuna kukabiliana na mabadiliko kwa 1.
Basi wote wa hii umefungwa ndani ya lock Forever.
Hivyo sisi tayari sasa na kuanza ujenzi katika C na
ambayo kutafsiri hii.
>> Njia moja tunaweza kufanya hivyo ni hii.
Nipe integer, simu yake ya kukabiliana.
Initialize kwa 0
katika mstari wa kwanza huko.
Wakati (wa kweli), hivyo nina kuiba kwamba wazo kutoka muda tu
iliyopita, kwenda mbele na kufanya yafuatayo.
Magazeti nje ya kukabiliana, na kisha increment counter,
tena, na tena, na tena.
Au tena, + + njia tu kuongeza 1 kwa kitu fulani.
Lakini kuna kipande mpya ya syntax hapa.
Nini kuruka nje kama si miongoni mwa mifano yetu ya awali?
Ndiyo, hii d%.
Hivyo unaweza labda infer nini hii ni kufanya, kusema ukweli, kwa kuzingatia
juu ya nini kuzuia Scratch ni kufanya.
Lakini tena katika C, sisi tu kuwa kidogo zaidi hasa
linapokuja akielezea wenyewe.
>> Hivyo printf ("% d \ n").
Vizuri zaidi ya kwamba tunaweza kutupa mbali kama familiar.
quotes tu ina maana kamba, backslash n
ni tu line mpya.
Hivyo tu jambo jipya hapa ni% d.
Na yote ni ni placeholder.
% D ni kwenda kuashiria idadi decimal.
Na% d njia ya kompyuta, kuweka idadi decimal hapa.
Naam, nini idadi unataka kuweka huko?
Naam, kama unaweza labda infer, baada ya comma tunasema
counter, hiyo ni jina la kutofautiana kwamba sisi alitangaza au
umba mistari michache iliyopita.
Hivyo hii ni njia tu C ya plugging katika variable katika
kamba dynamically.
Kwa sababu kwa kulinganisha, kama mimi alikuwa badala amefanya kitu kama
hii, printf ("counter"), nini ingekuwa hii
mpango badala kufanya, labda?
Ni itabidi literally magazeti "counter".
Ambayo si athari kwamba nataka.
Nahitaji mbadala katika thamani baadhi numeric.
Hivyo tutaweza kuona kazi ya kwamba basi, kama printf, wanaweza kuchukua si
tu moja tu hoja, kama
"Hello dunia".
Wanaweza kuchukua quote unquote comma, na kisha baadhi ya vigezo
kwamba kupata plugged katika, kama tutaweza kuona kamba uliopita
kupitia hizi ishara% placeholders.
>> Naam nini kuhusu misemo Boolean?
Misemo Boolean yalikuwa haya maadili, kweli au uongo.
Ndiyo au hapana.
1 au 0.
Juu au mbali.
Hivyo katika Scratch wao kuangalia kama hii, na taarifa kwamba
chini block hapa ni kweli kushirikiana
ya mbili vitalu vidogo vidogo.
Kwa hiyo mimi aina ya kuburuzwa na imeshuka vipande puzzle tatu
pamoja na kufanya kwamba tena puzzle kipande pale ili kwamba mimi
inaweza kupeleka wazo kwamba nataka x kuwa chini ya y na
y kuwa chini ya z.
Na hivyo naweza kutafsiri hizi mbili mistari tofauti kama ifuatavyo.
moja ya juu inaweza sana trivially Tafsiri ya C,
na tu x <y.
Labda kwa baadhi mabano kwa hatua nzuri.
Na kisha katika C, wewe wala kuandika na kuashiria
kushirikiana ya kitu fulani.
Wewe badala kuandika &&.
Na kama tutaweza hatimaye kuona, ampersand moja hutokea kwa
maana kitu tofauti.
Hivyo && tu inaashiria wazo la NA.
>> Hivyo tena, hata ingawa hii anaanza kuangalia badala tata,
moja ya madhumuni ya kuanzisha Scratch, badala ya
kuwa tu aina ya furaha juu ya njia panda-ambapo unaweza kufanya
kitu ambacho sana graphical, na animated, na
shareable na kama, ni pia kupeleka wazo kwamba
wote wa mawazo ya sisi kuanza mbizi katika leo na kuendelea
wamekuwa ilivyo katika hata kuwa rahisi
interface tangu siku moja.
Nini kuhusu hili moja hapa?
>> Hivyo hali.
Hivyo block Scratch upande wa kushoto kuna inaonekana
kidogo ngumu zaidi.
Lakini ni baadhi tu kuburuza na
kuacha ya vipande familiar.
Kama x ni chini ya y, kusema hivyo.
Mwingine kama x ni mkubwa kuliko y, kusema hivyo.
Mwingine, tunaweza kudhani kimantiki ni kwamba inferred
lazima kuwa sawa.
Hivyo kusema kuwa wao ni sawa.
Sasa katika C juu ya jambo sahihi, sawa halisi.
Na taarifa kwamba braces curly itakuwa ni ya
hulka ya C na lugha nyingine ya kwamba kufanya aina hii
ya encapsulation.
Tu kama kama block ni jambo manjano kwamba ni aina ya
grabbing block zambarau ndani yake.
Vile vile ni haya braces -
hizi braces curly -
maana ya kwamba conjure up wazo sawa ya enea moja au zaidi
mistari ya kificho kwamba ni indented ndani mwao.
Hivyo upande wa kulia hapa, ikiwa chini ya x y, printf
("X ni chini ya y").
Mwingine kama x ni mkubwa kuliko y, magazeti nje sawa.
Mwingine magazeti nje kwamba wao ni sawa.
>> Hivyo katika muda mfupi, kuna ramani uungwana moja kwa moja au tafsiri
Lugha ya tumeona hivi sasa, ikiwa ni pamoja na kwa baadhi
ya makala ya kisasa zaidi.
Hivyo unaweza kuwa na kutumia hii kwa ajili ya mradi wako, au nguvu si
kutumia hii kwa ajili ya mradi wako wiki hii.
Lakini tuna mambo haya kuitwa arrays katika C. Katika Scratch,
wao ni kuitwa orodha.
Na tuliona haya na RPG Fruitcraft wiki iliyopita.
buluu kidogo guy kwamba ilikuwa ikitembea, kuokota
cherries na machungwa na kama.
Vizuri katika Scratch, kwamba ilikuwa kutekelezwa na hii machungwa
kuzuia kwamba ina maneno, katika kesi hii, sisi ni literally
kuongeza "chungwa" kwa
variable kuitwa hesabu.
Hivyo katika C, syntax hii ni kwenda kupata kidogo zaidi cryptic.
Na tutaweza kurudi wiki hii ijayo na kufanya zaidi
kuvutia mambo katika dunia ya cryptography na hayo.
Lakini chini hapa, haya mistari mbili kimsingi
kutafsiri kwa nini sisi ni kufanya katika moja Scratch kuzuia pale.
Lakini zaidi juu ya kwamba kuja.
>> Hivyo kuweka pamoja, hapa ni mpango katika C. hiyo ya wacha
haraka tease mbali baadhi ya vipande vya syntax hapa, lakini
basi hebu kweli kuanza kuandika baadhi ya kanuni, bekanta
wewe pamoja na baadhi ya zana tutaweza kutumia, na kuona kama sisi
wanaweza kujenga juu ya sasa baadhi ya vitalu haya ya msingi jengo kutoka
wiki iliyopita, sasa syntactically katika C. hiyo kwa juu hapa, hii
labda ni moja ya mipango zaidi boring unaweza
kuandika katika lugha yoyote zaidi ya programu.
Lakini aina hiyo ya ina maana maalum kwa sababu ni
kisheria mpango kwamba yoyote mwanasayansi kompyuta anaandika wakati
kufundisha mtu lugha ya programu -
hujambo dunia mpango.
>> Hivyo saa ya juu sana, tunaona wazo hili la # ni pamoja
na kisha, katika mabano angled, stdio.h.
Sisi ni kwenda kuja nyuma na kwamba, lakini kwa kweli kile kwamba
njia ni kwamba kuna faili katika dunia hii inaitwa kiwango
I / O, stdio dot h, na kwamba tu faili Nakala kwamba
mtu aliandika miaka iliyopita.
Na ndani ya faili kwamba ni Nakala rundo zima la
kazi, au mbinu, au taratibu, kwamba mtu mwingine
aliandika kwamba sisi ni wanufaika wa sababu sisi
sasa unaweza kutumia kificho kwamba mtu.
kazi yeye au yeye aliandika.
Katika kesi hiyo, printf si kitu ambacho mimi aliandika, ni
si kitu ambacho CS50 aliandika.
Ni kitu ambacho mtu aliandika miaka iliyopita na kuweka katika
faili inayoitwa stdio.h na kisha, kama kando, kuweka
mwingine sehemu ya kazi katika faili mwingine.
Lakini tutaweza kupata huko.
>> Hivyo ni pamoja # ni njia yetu ya kusema, katika
C, nipe kupata kazi ambayo mtu mwingine aliandika.
Na katika kesi hii mimi huduma kwa sababu nataka printf.
Sasa sisi kupata kuu int (utupu).
Hivyo hii ni moja ya mambo haya, kusema ukweli, kwamba siku 0,
pretty sana nimekuwa na aina ya nje ya eneo, kwa sababu tu
si ya kuvutia
kielimu, baadhi ya syntax.
Lakini kwa sasa kujua kazi ya kwamba, inayojulikana kama
taratibu, au mbinu, kwa ujumla kuzalisha baadhi ya thamani.
Wao kufanya kitu.
Wao kuja na jibu.
Wao kuzalisha pato.
Hivyo int ijayo kuu ni tu wetu shorthand njia ya kusema
kwamba kazi hii, utaratibu huu, ni hatimaye kwenda
kukupa nyuma idadi.
Na kwa nini kuwa ni, tutaweza kuja nyuma.
Kuu ni tu dunia default kiwango kwa default
kazi hiyo ni kwenda kupata kunyongwa katika mpango C wakati
wewe kukimbia.
Tupu tu ina maana jambo hili, kuu, inachukua hakuna
hoja, katika kesi hii.
Hivyo mimi nina kuwa super wazi.
Hakuna masharti huko, hakuna koma.
Tupu ina maana hoja hakuna kuu.
>> Sasa mwisho, nashiriki, mwisho mistari miwili ni ukoo.
Ndani ya braces curly tuna printf
na tuna kurudi.
Na kurudi ni aina ya bahati mbaya kwamba tuna
kuiweka huko, kwa sababu katika kesi hii siyo kufanya yote
kiasi cha riba.
Lakini katika mpango wa kompyuta, wakati kazi anarudi 0,
kwamba maana yote ni sawa.
Hakuna kitu potoka.
Kwa kulinganisha, ikiwa kazi anarudi 1, au 1 hasi, au
hasi 1337, au namba baadhi random kama hiyo, ya kwamba
ujumla maana yake ni kwamba kosa kweli imetokea.
Hivyo kama wewe ni juu ya Mac au PC yako yako, kama wameweza milele kumwona
baadhi ya ujumbe annoying sababu kompyuta yako imeharibika au
waliohifadhiwa, na kuna cryptic makosa ujumbe,
na kisha baadhi ya kanuni, kama mfumo wa kanuni
1,2,3,4, baadhi ya namba,
kwamba kwa ujumla ni undani unnecessary kuwaambia
zaidi ya binadamu sisi, lakini kwamba ni nini baadhi ya kazi au baadhi
Mpango huo kwa kweli alirudi, thamani zisizo sifuri.
Na faida ya hii ni kwamba ina maana 0 yote pia, na
basi kimsingi kuwa na idadi ya usio wa mambo ambayo
unaweza kwenda vibaya.
Ambayo ni kwa nini walichagua 0 ajili ya mema na thamani isiyo-sifuri kwa
mbaya, kama sisi Mtakuja kuona.
>> Basi hebu kwenda mbele na kuandika hii.
Hivyo kukumbuka kuwa siku nyingine mimi kutumika Mac yangu ya kufungua
terminal dirisha, na kisha mimi kufunguliwa Nakala mpango, kama
TextEdit, na mimi kuanza kuandika baadhi code.
Naam, hivyo faini.
Lakini uzoefu wako ni kwenda kuwa tofauti ya Mac, au
kwenye kompyuta Solaris, kompyuta Linux, chochote uendeshaji
mfumo kutokea kwa kutumia.
Na hivyo katika shaka, nini sisi badala ya kutumia ni kitu
kuitwa Appliance CS50.
Hivyo Appliance CS50 ni kipande cha programu downloadable
kwamba utapata kukimbia mfumo wa uendeshaji kuitwa Linux,
hasa Fedora Linux, juu ya Mac au PC yako mwenyewe.
Na kufanya hivyo kwa kushusha kitu kinachoitwa hypervisor.
Basi wote wa hii itakuwa kumbukumbu katika tatizo kuweka 1.
Na wewe utakuwa na kuongozwa kuelekea nini unahitaji download.
Lakini matokeo ya mwisho, kama una Mac au PC, ni wewe
download baadhi ya programu bure.
Wewe kisha download Appliance CS50, na kumweleza kwamba
programu ya bure - hypervisor -
kuendesha Appliance CS50 katika dirisha kwenye kompyuta yako.
Na nini kinachotokea ni hii.
>> Mimi sasa, taarifa hapa, nini inaonekana kuwa desktop
mazingira.
Na napenda kweli shrink dirisha hili moja.
Hivyo hii ni sasa Mac yangu, kwa dirisha kidogo hapa, na ndani ya
ya dirisha hili hutokea kwa kuwa kabisa
mbalimbali ya mfumo wa uendeshaji.
Hakika kuna menyu hii kuanza chini hapa, reminiscent ya
Madirisha, ambayo ina rundo zima la menyu ndogo, ikiwa ni pamoja
zilizounganishwa na mwongozo CS50, Dropbox, na kama.
Na nini mazingira haya sasa ni mazingira ya kiwango
kwamba wote sisi sasa unaweza kutumia, hivyo kwamba hakuna jambo gani yako
kompyuta ni, nini una imewekwa juu yake, nini toleo
ya Mac OS au Windows wewe ni mbio, sisi wote sasa wana
sawa mazingira.
Na sasa katika mazingira haya tunaweza kuanza kuandika baadhi code.
>> Hivyo nina kwenda kwa kwenda mbele na kufungua programu inayoitwa gedit.
Hii ni kulinganishwa na notepad.exe, au
TextEdit juu ya Mac.
Na hii ni rahisi tu super Nakala editing mpango
kwamba inaonekana kama hii katika mtazamo wa kwanza.
Sasa katika sana juu, nina palette nyeupe, chini mimi
kuwa na dirisha hili mweusi kwamba anasema jharvard @ appliance.
Na kwamba kwa sababu akaunti user kwamba sisi kabla ya kuundwa
kwa kila mtu anaitwa John Harvard.
Yeye ana folder ambapo wote wa files yake ni kwenda, na
hapa ni wapi tunaweza kuanza kuandika baadhi code.
Hivyo basi mimi kwenda mbele hapa na kuvuta kidogo tu, na mimi nina
kwenda kufanya # pamoja , int kuu (utupu), na
basi mimi naenda kufanya printf ("hello dunia")
; Kurudi 0.
Sasa hii yote ni kabisa nyeusi na nyeupe.
>> Hebu kwenda mbele na kufanya jambo moja kufundisha gedit nini mimi
kweli kufanya.
Hebu kwenda Ila Kama.
Mimi nina kwenda kuchagua katika upande wa kushoto hapa jharvard.
Hivyo tena, hata kama wewe sijawahi kutumika Linux kabla, kusema ukweli
siku hizi, wote ni kugatua ndani ya kimsingi
huo aina ya interface -
Mac OS, Windows, na Linux.
Basi, mimi alichagua nyumbani jharvard ya folder hapa.
Na mimi nina kwenda kuokoa faili hii kama hello.c.
Hivyo katika sana juu, mimi typed hello.c; kumtaja C
mpango na ugani c. ni
nini mambo ya kawaida.
Na mimi hit Ila.
Na sasa nini ni nzuri ni kwamba nimepata ufanisi kufundishwa gedit,
kwamba hii ni programu C.
Ona kwamba Nakala yangu nyeusi na nyeupe ni rangi coded sasa, au
syntax alizungumzia, ambayo tu huchota makini wangu
tofauti semantic sehemu ya mpango.
Katika juu kushoto hapo, kama mipango yangu kupata ngumu zaidi, mimi nina
kwenda na muhtasari wa mambo yote nimeandika.
Basi hiyo ni it up huko.
Hivyo basi mimi sasa zoom nje na kwenda chini kwa dirisha hili terminal.
>> Hivyo hii ni labda mpya kwa watu wengi.
Kama wewe sijawahi kutumika mstari amri mazingira, ve kamwe
kutumika DOS, au wewe sijawahi kutumika Linux, au wewe sijawahi kufunguliwa
yako Mac OS terminal dirisha, kuna mengi ya mambo
inaweza kufanya na GUI, kama vile akizungumzia, na kubonyeza, na
akawatoa, na kuacha, na kama, lakini kwa ujumla -
hakika katika ulimwengu wa sayansi ya kompyuta -
kutumia mstari amri, ambapo huna mouse yako
ujumla, wewe tu keyboard yako, ni kweli mengi
nguvu zaidi kuliko interface, mara moja kupata acclimated kwa
mbalimbali amri.
Na wewe mwenyewe aina ya bure ya wanaohitaji kwa uhakika na bonyeza
katika kila kitu.
Hivyo katika gedit tutaweza aina ya kuwa bora ya walimwengu wote.
Tunaweza Drag na kuacha maandishi, tunaweza kuona
nzuri na rangi coded.
Lakini linapokuja wakati wa kuendesha programu yetu, tutaweza wakati mwingine
tu kutumia dirisha dogo hapa.
>> Hivyo nina kwenda kwa kwenda mbele na kufanya hili.
Katika dirisha chini nyeusi na nyeupe, mimi nina kwenda mbele
na kuandika Clang.
Na Clang ni jina la mkusanyaji.
Ni mpango ambao waongofu chanzo yangu code
ndani, hivyo, kitu code.
Sekunde 0 na 1s, kuwa tuliona kwa ufupi ya wiki iliyopita.
Kumbuka kutoka wiki iliyopita, sisi aliahidi kwamba sisi wanakwenda
kwenda kutoka kitu kama hii - sisi zinahitajika kuwa
kitu kama hii -
na hii ni kwa hakika si kitu ambacho binadamu kinaendelea
kufanya manually.
Hivyo badala tunakwenda kutumia mpango, na kwamba mpango katika
kesi hii inaitwa Clang.
Na jina la mpango wangu ni hello.c.
Hivyo ili kukusanya hello.c kutoka chanzo code katika
kitu code, au sekunde 0 na 1s, ni lazima suffice tu kufanya
hii na hit Enter.
>> Sawa, hakuna kinachoonekana kuwa kilichotokea.
Lakini Mimi najua sasa, au kutoka wiki iliyopita, kwamba jina default ya
mpango, wakati imeandikwa katika C, ni upumbavu kuitwa a.out.
Wengi uninteresting jina unaweza kuja na.
ni herufi ya kwanza ya alfabeti, nje ni nini ilikuwa
outputted, lakini na iwe hivyo.
Hii ni programu yangu, na sasa dot slash, kama tutaweza kuona, ni
kweli tu aina ya hulka ya usalama, kwa sababu
a.out ni mpango niliandika.
Ni hakuja kwa kompyuta yangu, ni
si katika Mpango Files.
Ni si katika folder Mac OS Maombi.
Mimi haja ya kuwa super wazi kwa kompyuta, na kusema
mpango huu, a.out, ni katika folder ya sasa,
sasa directory.
Na njia hii kuwakilisha katika mazingira kama hii
ni dot inawakilisha chochote folder wewe ni sasa in
Na hivyo. / Njia tu kukimbia a.out
katika folder sasa.
Na mimi kukimbia hii kwa Ingiza, na voilà, mpango yangu ya kwanza kabisa.
>> Sasa basi mimi kuchukua hatua ya nyuma.
Dirisha hili ni kidogo kidogo, na kutambua kwamba chini
kushoto wa appliance hapa ni icon mwingine.
Moja ni Chrome, ambayo inapaswa kuwa familiar kabisa, tu mtandao
browser ndani ya appliance.
Na hii icon nyeusi na nyeupe ni tu
kubwa terminal dirisha.
Hivyo kama anapata annoying kidogo ya aina ya kuwa tu
hii kidogo kidogo kipande cha dirisha na ambayo kwa kuingiliana
na mipango, tunaweza badala kufanya hili.
Na sasa napenda kuanza kuandika chache hivi karibuni
kuwa ukoo amri.
ls.
Hivyo ls ni amri kwa orodha.
Hivyo katika OS Mac au Windows, ungekuwa ujumla mara mbili-click
folder na kisha, voilà, unaweza kuona wote wa files mbalimbali
na folders.
Katika mstari amri mazingira, ambapo unaweza tu aina
amri au maandishi, ls ni sawa.
Hivyo unionyeshe nini katika saraka hii.
>> Sasa kuna rundo la stuff hapa kwamba wote kidogo
familiar na usio wa kawaida kidogo.
Lakini ona kwamba tu kama Windows na Mac OS, jharvard
ina folder desktop.
Hivyo yoyote icons kwamba ni juu ya desktop yangu kutokea
kuwa katika folder hiyo.
Kuna folder downloads, mambo ambayo
Chrome ili kuweka huko.
Dropbox.
Hivyo appliance kuja na kujengwa katika msaada kwa ajili ya Dropbox
hivyo kwamba zaidi ya muhula, unaweza Sync na Dropbox yako
akaunti ili wote wa programu yako ni backed up.
Wao ni kupatikana kwenye kompyuta yako mengine.
Kama kitu milele kitaenda vibaya na appliance, unaweza
urahisi sana kuokoa kutoka Dropbox.
Hivyo folder hiyo ni pale kwa ajili hiyo.
Kuna mbili files kwamba mimi alifanya - hello.c
na a.out.
Na kisha kwa haki kuna baadhi folders nyingine kwamba tutaweza
kupata kuelekea mwisho wa muhula, na mtandao
programu.
Hivyo wakati mimi kufanya /., A.out, Ingieni, kwamba ni kusema kwenda
katika saraka ya mimi niko katika, saraka ya sasa, na kukimbia
programu inayoitwa a.out haki pale.
>> Haki wote, ili ni nzuri na nzuri, lakini si wote kwamba
kulazimisha kuandika programu inayoitwa kusaidia a.out.
Hivyo tunaweza kweli kufanya hii tofauti kidogo.
Hivyo badala ya tu Clang mbio, hello.c, hebu kuongeza
kile kinachoitwa mstari amri hoja.
Hivyo mstari amri hoja, au kubadili katika kesi hii, ni tu
mwingine neno au maneno kwamba unapoandika katika kuchochea baada ya
mpango unataka kukimbia.
Hivyo katika kesi hii, Clang ni mpango nataka kukimbia,-o
njia pato faili hiyo tena kuitwa a.out.
Pato faili inayoitwa hello, na kufanya hivyo na kuandaa
mwisho neno juu ya mstari, hello.c.
Hivyo katika muda mfupi, hii ni uboreshaji sana kukokotoa, ambapo
badala ya kuwa na hii stupidly aitwaye faili a.out,
Mimi sasa wanaweza kufanya Clang-o hello, kisha hello.c, na
kisha hit kuingia.
Kitu inaonekana kutokea, lakini tena sana kama na 0 - wakati
kitu inaonekana kutokea kwamba maana ya kitu kibaya kilichotokea -
hivyo hebu kufanya ls sasa, Ingieni, na kwa kweli mimi sasa
kuwa na mpango hello.
Hivyo kama ninapoandika hujambo sasa, amri halikupatikana.
OK, /..
Hivyo hasa haki.
Hivyo kwa sababu mpango huu niliandika, na hawakuwa kuja na
kompyuta, /. hello, Ingiza, ina maana
Mimi sasa mbio hello.
>> Basi hiyo ni pale.
Sasa nini tutaweza hatimaye kupata line zaidi na zaidi amri
hoja kwamba kuruhusu sisi kufanya zaidi, lakini tu kwa ajili ya wale kwa
ambaye hii inaweza kuwa na umri wa kofia, napenda kwa kweli kwenda katika
saraka hapa na kutoa tu wewe teaser ya jinsi mwingine sisi
inaweza kwenda juu ya utekelezaji wa dunia hello.
Hebu kwenda hapa, na mimi nina kwenda kuufungua.
Hivyo kwa kweli, mimi nina kwenda kuelezea nini mimi kufanya, hivyo
hii ni muhimu.
Hebu nyuma juu.
>> Hivyo nimekuwa kufanya hii muda mrefu.
Hivyo taarifa juu ya upande wa kulia kuna michache ya
directories kwamba ni oddly aitwaye source1m na source1w.
Hii ni silly mkataba sisi kutumia.
Chanzo njia tu chanzo code, 1 inamaanisha hii ni wiki moja, na
m ina maana Jumatatu, na w ina maana Jumatano.
Hivyo chochote cryptic huko.
Ni tu shorthand nukuu.
Haya mambo ya bluu ni folders, inayojulikana kama
Directories.
Nataka kwenda kwenye folder kwamba sasa, na kwenye kompyuta ya kawaida
Mimi nilikuwa tu mara mbili-click kwenye icon folda na
kuna wangu wote files.
Lakini katika mazingira mstari amri, siwezi kabisa kufanya
kwamba, hivyo badala yake, mimi kuwa na mabadiliko ya directories manually.
Hivyo kama ninapoandika cd na kisha source1m, Ingieni, taarifa kwamba
haraka yangu, kitu katika nyeupe kushoto, tu iliyopita.
Na hivyo kweli kweli, wakati tu alisema mabano na kisha
kidogo squiggle, alama tilde, kwamba tu maana mimi nilikuwa
katika saraka ya nyumbani Yohana Harvard wa, wake My Documents,
files yake binafsi.
Lakini sasa katika mabano inasema ~ / source1m.
Hii ina maana mimi niko katika folder aitwaye source1m
kwamba katika saraka ya nyumbani Yohana Harvard ya.
Hivyo kama mimi sasa nataka kuorodhesha files katika folder hili, rahisi
swali, ninapoandika tu ls.
Na sasa naona wote wa files kwamba mimi kabla ya kuundwa kwa leo
hotuba, ambayo yote, au ambao wengi, kutokea
kukomesha katika. c.
>> Hivyo basi mimi kwenda mbele sasa na kukimbia gedit ya programu inayoitwa
holloway.c, ambayo imeandikwa na hacker baadhi random
kwenye mtandao, kwamba inaonekana kidogo kama hii.
Na sisi si kwenda na kwenda kwa njia hii moja katika yoyote
undani, lakini kwa wale zaidi ya starehe, hasa, kama
unataka kuchukua nadhani kama yale ya programu hii haina hapa.
Mapumziko uhakika, kama wewe ni pungufu au zaidi ya starehe,
sisi siyo hata kupata aina hii ya kitu na mwisho wa
hii muhula.
Hii ni nini ni mfano wa mashindano obfuscated C, ambayo
njia kuandika zaidi cryptic kuangalia mpango uwezekano
unaweza kwa outdo watu wengine smart, ambaye ni vile vile
kujaribu kuandika mambo na kuonyesha mbali kwamba wanaweza kuandika
zaidi cryptic mambo kuliko wewe.
Hivyo hii si mfano wa mpango wa kuandikwa vizuri kutoka
mtazamo wa style, huu ni mfano wa mpango huo
mafanikio ya mashindano, kwa ajili ya watu kujaribu
kuwa hazieleweki na kufikirika.
>> Hivyo kama sisi kukimbia jambo hili, basi mimi kwenda katika terminal dirisha yangu,
hivyo kusema.
Hivyo mazingira haya nyeusi na nyeupe inaitwa
terminal dirisha ujumla.
Hebu kwenda mbele na kukusanya yake.
Sitakuja kutumia Clang, kwa sababu mpango huu ni
kidogo cryptic na inahitaji tofauti
compiler, mmoja aitwaye GCC.
Lakini haina kitu kimoja.
Inachukua chanzo code kwa kificho kitu.
Na sasa kama mimi kukimbia a.out, kwamba mpango
niliona tu gani hii.
Hivyo wenzake kwamba mwaka alishinda kwamba kugombea.
Anyhow, sisi siyo kwenda katika mwelekeo huo, per se.
>> Basi hebu kweli kujaribu sasa tease mbali nini tunaweza kufanya
na haya ya msingi jengo vitalu kufanya zaidi na zaidi
kuvutia mipango.
Hivyo tumekuwa imeandikwa mpango, tumekuwa kuendesha programu.
Sasa tunaweza kweli kurahisisha na tena kuwa na kuandika
Clang neno katika haraka.
Ni zinageuka kama mipango yetu kupata zaidi cryptic, tunaweza, au
ngumu zaidi kuliko, tunaweza kweli kuendesha amri hii.
Hivyo basi mimi kurejea nyumbani saraka wangu, ili kuzungumza, basi mimi
kuondoa - rm ni amri kuondoa - I'm kwenda kuondoa
faili inayoitwa a.out na hello.
Na sasa taarifa katika mazingira mstari amri, kiasi kama katika
GUI, unaweza kupata ilisababisha. Siwezi bonyeza kifungo ingawa; mimi
kuwa na aina y kwa ndiyo, y kwa ndiyo.
Na sasa kama ninapoandika ls tena, ilani kwamba wale kijani
programu - a.out na hujambo -
wamekwenda.
Jihadharini rm.
Inaweza kufanya mambo mabaya, kama tu unaweza na akawatoa
mambo ya takataka yako.
>> Hivyo sasa hebu kwenda mbele - na mimi naweza kufanya hili - Clang-o
hello, hujambo -
Mimi niko tayari kuchoka kuandika kwamba amri.
Hata ingawa mimi typed ni kidogo haraka.
Hivyo tunaweza kufanya kufanya badala hello.
Hivyo kufanya si compiler.
Ni tu mpango kirafiki kwamba anakuja na Linux, katika hii
kesi - mfumo wa uendeshaji -
kwamba automates mchakato wa kuandaa programu.
Hivyo badala ya kukumbuka Clang-o filename na
basi hivyo nje, hasa mara moja wale mistari kupata tena na
tena, siwezi kuandika tu kufanya.
Na hii ni kwenda mate nje rundo zima ya mambo ambayo
tutaweza hatimaye kuona hii muhula.
Lakini taarifa sasa kama mimi aina ls, hujambo ni nyuma katika saraka yangu.
Na hakika siwezi kukimbia kwa /. Hello.
Hivyo kufanya tu automates mchakato wa mbio nini,
katika kesi hii, tena sana, ngumu zaidi amri.
Hivyo sisi ni kwenda kuanza kutumia kufanya, kwa sababu tu ni mengi
zaidi user friendly.
>> Lakini sasa hebu kufanya mpango zaidi ya kuvutia
kuliko tu kusema hello.
Hivyo katika mipango tumekuwa imeandikwa hivi sasa kuna kuu.
Hiyo tu kitu default kwamba kila kitu mateke mbali.
Lakini kuna kazi nyingine huko nje kama vile, na
stdio.h ni kitu kuwa tuliona ya wakati juu ya zetu
faili kabla, na kwamba ni nini inayojulikana kama maktaba standard.
Ndani ya maktaba ya kiwango ni rundo zima la kazi
kwamba mtu mwingine aliandika, na tunaweza kuanza kutumia hizi
kazi ya kuandika zaidi
kuvutia mipango wenyewe.
>> Hivyo basi mimi kwenda nyuma ya appliance.
Mimi naenda kuifunga dirisha terminal.
Mimi naenda kuyafunga mambo sisi aliandika mapema, na kwenda tu
ndani ya hello.c, na taarifa ya sasa siwezi kufanya yafuatayo.
Wapendwa dunia si yote ya kuvutia; Ningependa
kubinafsisha mpango huu kwa mwenyewe.
Hivyo badala ya kusema dunia, Mimi naenda
kwenda mbele na kusema -
Mimi naweza andika David - lakini kwa kweli hii ni aina ya
uleule.
Lakini hebu jaribu nje ya wazo hili placeholder.
Kumbuka kwamba katika C, badala katika printf, tulikuwa na hizi
placeholders, na kuna zaidi kuliko tu d%.
Hivyo% d ilikuwa, haraka sanity hundi.
Okay, idadi decimal, hiyo ni yake.
Decimal digits, kwamba ni yote.
Hivyo c%, kama sisi kukutana, ni kwenda kuwa tabia.
Kuweka tabia hapa, barua kupitia z,
au uakifishi ishara.
tabia moja,% f, mtu yeyote kujua kutoka lugha nyingine?
Hivyo floating kumweka thamani.
idadi halisi.
Hivyo si idadi decimal - hii ni kweli idadi halisi na
uhakika decimal, na baadhi ya idadi ya tarakimu ya kushoto
na haki yake.
% S, kamba.
Hiyo moja tunakwenda kuona mara nyingi kabisa.
kamba, tena, ni tu neno, maneno, mlolongo wa
binafsi ya wahusika.
Na Mwisho, lld?
Hivyo hii ni zaidi ya kesi kona.
Muda mrefu, muda decimal.
Hivyo kama unataka si tu idadi hiyo ni kubwa hii, wewe
wanataka idadi kubwa zaidi, wewe ni kwenda kuwa na bayana kwa
kompyuta ambayo ni ya kawaida fulani.
>> Basi hebu tweak hii kidogo kidogo.
Badala tu ya code ngumu katika Daudi, basi mimi kidogo
dynamically kusema s%.
Hivyo kuweka% s hapa, ambayo ni placeholder kwa kamba.
Basi mimi kufanya comma, na kisha "Daudi" zaidi ya hapa.
Sasa hii si yote ambayo kielimu ya kuvutia,
kwa sababu wote nimekuwa kufanyika sasa ni kweli kujenga zaidi kazi kwa
kompyuta.
Badala ya kuwaambia kompyuta kufanya yote haya kwa mara moja, mimi nina sasa
akisema kufanya hivyo na Insert string hapa hatimaye, comma,
hapa ni kwamba kamba.
Hivyo hii si uboreshaji bora, lakini ni angalau
hatua kuelekea mpango kuvutia zaidi.
Kwa sababu sasa, napenda kwenda mbele na kufanya hii dirisha kidogo
kubwa zaidi, basi mimi kwenda mbele na kukimbia kufanya hello.
Na sasa, /. A.out si kazi, kwa nini?
Haki zote, sasa ni kuitwa hello.
Hivyo tena kufanya, na pia Clang kwa o-, jina
mpango kuwa ni kitu zaidi ya kuvutia.
Na voilà: sasa inasema hujambo Daudi.
>> Haki zote, bado mpango wa kijinga.
Hivyo sasa hebu kweli kwenda nyuma hapa na kuanzisha dhana
ya kutofautiana.
Je, si ni kuwa nzuri kama mimi naweza kutangaza variable
ambao ni aina kamba?
Na thamani ya kutofautiana kwa kweli inakuja kutoka kwa mtumiaji
naye au mwenyewe.
Hivyo kiholela, mimi naenda kuwaita s yangu variable, ambayo ni
tu mkataba kawaida wakati una moja variable kuitwa
kamba.
Mimi naenda kufanya ishara sawa, na kisha mimi naenda kuwaita
kazi kuitwa GetString.
Hivyo GetString si kitu ambacho huja kujengwa ndani ya C. Ni
kazi kwamba wafanyakazi CS50 aliandika, kweli tu kwa
haya michache ya kwanza ya wiki, kurahisisha mchakato wa
kupata pembejeo na kupata user mtumiaji pembejeo katika fomu
ya masharti, au idadi, na vile.
Hivyo GetString ni kama printf, lakini ni wazi badala ya
magazeti ni kwenda kufanya nini jina lake anasema, kupata kamba.
Lakini kwa kutumia GetString, sisi itawabidi kufanya mabadiliko
hapa, zaidi ya huu.
Hivyo intuitively, mpango huu, hopefully, ni kwenda kwa namna fulani
kupata kamba kutoka kwa mtumiaji, na kisha nini ni kwenda kufanya
pamoja na kamba hiyo, iitwayo s?
Ni tu kwenda na magazeti hayo, haki?
Bado si mpango kuchochea kwa sababu wote ni kwenda
kufanya ni kuziba katika thamani ya kwamba ndani ya ambapo% s
anasema ni lazima kwenda.
>> Hivyo basi s angalau kuona haya katika action.
Hebu kuokoa na zoom nje.
Sasa katika terminal dirisha yangu hapa chini, kipande kidogo cha moja,
basi mimi tena kufanya kufanya hello.
Okay, na ah, damn; I got rundo zima la makosa.
Hebu kitabu juu, na tunaona kwanza wetu -
hivyo hebu kweli kufanya hili katika dirisha hata kubwa hivyo
unaweza kuona jinsi vibaya mimi Star up -
hivyo kufanya hello.
Sawa, hayo ni maafa, haki?
Nimekuwa imeandikwa mistari mitatu ya kificho, na
ni niliyopewa makosa 12.
Hivyo kwa nini hii?
Hivyo bahati nzuri, mara nyingi wakati unaweza kuona wengi, wengi makosa
kutema mate nje mara moja, ni kweli kwa sababu tu wameweza
kuchanganyikiwa kompyuta hapa juu.
Na bado kuchanganyikiwa na wakati anapata chini hapa.
Na hivyo tu kuanza tripping, na dhambi, na
kutema mate nje zaidi kuliko kweli inatisha stuff inatumika.
Hivyo kwa ujumla, daima kuanza na moja ya juu.
>> Hivyo sana juu zaidi mfano wa nyekundu,
makosa ujumbe ni hii.
Matumizi ya string Undeclared kitambulisho, je, mimi
maana ya kiwango katika?
Sikuweza.
Mimi maana ya kamba, lakini hii ni kwa sababu, pia, kamba neno
kwamba mimi kuendelea kutumia maneno kweli
haipo katika C ama.
Ni kitu tutaweza kutumia tu kwa wiki ya kwanza au mbili
hapa, lakini lipo katika faili inayoitwa cs50.h.
Hivyo kwa sasa, kujua kwamba kuna hii maktaba nyingine kwamba
wafanyakazi aliandika, hivyo ni kimeandikwa hivi karibuni zaidi kuliko
stdio.h.
Lakini ndani ya cs50.h ni ufafanuzi, kisawe cha
aina, ambayo inajenga hii string neno.
>> Hivyo sasa napenda kwenda nyuma terminal dirisha yangu.
Mimi naenda wazi hii fujo nzima kwa Ctrl-L. Tutaweza tu
kuifuta kila kitu safi, na mimi nina kwenda mbele na kufanya
hujambo tena, Ingiza.
Hivyo kile kilichotokea sasa?
Sasa wote wa makosa hayo akaondoka.
Hivyo nini mimi kweli kosa gani?
Nimekuwa tu kufundisha kompyuta string lipo, na ni
kwa kuwa faili inayoitwa cs50.h.
Hivyo kuacha kulalamika, kwa sababu sasa unajua ambapo kupata
tamko kwamba kazi ya hivyo kusema.
Ambapo lipo katika dunia.
>> Hivyo sasa mimi nina kwenda mbele na kukimbia hello.
Mimi wanaonekana kuwa kitanzi usio, likitokea chochote cha.
Hivyo mimi haja ya aina kitu hapa, kulia.
mstari wa kwanza wa code katika mpango wangu alikuwa GetString.
Hivyo ni literally kusubiri kwa mimi kupata kamba.
Hivyo kwa mantiki kwamba ndiyo, ni kitanzi usio.
Inavyoonekana katika GetString ni default tabia ambayo sisi
aliandika - wafanyakazi -
kwamba tu anasema kusubiri na kusubiri na kusubiri na kusubiri na kusubiri,
mpaka user inakupa string kwa kuandika kitu in
Hivyo basi mimi kwenda mbele na aina katika D-a-v - i-d, Ingiza.
Na huko ni, hujambo Daudi.
>> Sasa hii haina kuonekana kama ni tu tendo?
Hebu kwenda mbele na aina katika Tommy.
Kuingia, sawa, inaonekana kufanya kazi.
Ujenzi kwa Rob, kwa matendo Zamyla, kazi kwa - sawa.
Hivyo ni kwenda kufanya kazi, uwezekano mkubwa.
Hivyo ni lazima magazeti nje chochote sisi kweli kuwapa,
na sisi inaweza kuwa vigumu kidogo hapa.
Hebu angalia kama sisi kufanya kitu kama hello.
Unaweza kwenda zaidi ya hapa, hebu angalia, nakala, kuweka.
Sitakuja kuweza kuweka kwamba mara nyingi hapa.
Kuweka, sawa, Shift + Ctrl + V. Basi nini inaweza
kutokea kwamba ni mbaya hapa?
>> Okay, kwa hivyo, segfaults.
Hivyo baadhi ya wewe na asili kabla watajua kwamba
ujumla, kutoa kompyuta kura ya pembejeo wakati wao uko
pengine si maana ya kupokea majina ya muda mrefu kama hii - mbaya
mambo kutokea.
Hakika, katika dunia ya mtandao, pia, hii hufanyika kidogo kabisa,
ambapo wakati wewe ni kubuni tovuti, wakati uko
kubuni Facebook, una kufanya maamuzi holela up
mbele, kama muda gani mapenzi ya mtu
Facebook username kuwa?
Au ni kwa muda gani mtu jina la kwanza kuwa?
Muda gani simu ya mtu kuwa na idadi kama.
Na kama programmers kufanya mawazo mbaya, mipango kuvunja
kwa sababu wewe kujaribu kuwapa zaidi ya pato, pembejeo zaidi
badala yake, kuliko kuwa na kumbukumbu.
Au RAM zilizotengwa kwa ajili yake, na hivyo kama sasa mimi hit Enter,
mpango kwamba kweli kazi, kwa sababu tulikuwa katika maktaba
na sisi kweli kutarajia hii kesi fulani.
Lakini bila shaka muhula hii, utakuwa kuandika angalau moja
mpango huo kusema maneno haya.
Kumbuka wiki hii kutoka sasa, labda siku mbili kuanzia sasa.
Segmentation kosa ni kitu mbaya.
Itakuwa zinataja jambo wako kufanya kwamba kompyuta
Hawakutarajia.
Na katika kesi hiyo, wewe, programu, Hawakutarajia.
Mengi kama nini hii rundo la soksi, kulikuwa mbalimbali
kesi kona tunaweza kuwa wamekutana.
Vile vile katika programu kama huna wanatarajia muda gani ni
jina la mtu kwenda kuwa.
Au nini kama mimi na mtumiaji malicious, na jina lake ni
kweli pretty mfupi, lakini wao ni kujaribu tu
kwa fujo na mimi?
Nini kinaendelea kuwa tabia ya mpango wangu?
Naam, katika kesi hiyo, kitu ili kweli ajali.
>> Basi hebu kufanya hili.
Katika dakika 90, hii ni kubwa kwa muda mrefu
kufanya sayansi ya kompyuta.
Mbona sisi kuingia katika tabia ya kuchukua dakika tano
kuvunja hapa, na wakati sisi kuja nyuma, tutaweza kupiga mbizi katika baadhi
ngumu zaidi na kulazimisha mipango?
Dakika tano.
>> Wote haki.
Hivyo moja ya haraka maoni.
Nimeambiwa kwamba ingawa hii ilikuwa juu ya screen kabla, nini
toka nje ya kinywa yangu ilikuwa cs50.net/rsvp.
Hii ni sahihi. cs50.net/lunch.
Hivyo sasa unaweza kujaribu RSVPing kwa hii katika chakula cha mchana /.
Lakini hebu kufanya hivyo sasa.
Hivyo hii imekuwa super haraka, super mpya kwa ajili ya mengi ya folks.
Kale kofia kwa folks baadhi.
Basi hebu rewind kwa muda tu, na kuona jinsi sisi got
hii hujambo pato la dunia muda tu iliyopita.
>> Hivyo kwanza, kuna hii Appliance CS50.
Tena, kipande cha programu tatizo, kuweka 1 zitaenda kuwaambieni
jinsi ya kushusha ni, ambapo kwa kushusha ni, nini bonyeza
na kadhalika.
Na kisha mara moja wewe kufuata maelekezo hayo, wewe utakuwa na uwezo
kuongeza dirisha yako, na yako Mac au PC utaangalia
kidogo kitu kama hiki.
background nyeusi, folder nyumbani kwa juu ambapo wote
files yako kwenda, takataka unaweza juu kushoto,
menu chini.
Hivyo tena, pretty sawa katika roho kwa Mac OS au Windows,
hata kama ni hutokea kwa kuwa Linux.
Hivyo nini sisi ijayo kufanya?
Naam, sisi kuanza kuandika mipango.
Na kukumbuka kutoka wiki iliyopita kwamba yote inachukua kuandika
mpango ni rahisi Nakala mhariri,
kama Notepad au TextEdit.
Kusema ukweli, unaweza hata kutumia Microsoft Word.
Lakini mambo mabaya hatimaye kutokea, kwa sababu hiyo ni sana
nzito mitupu ufumbuzi kwa kuandika mpango, plus ni itabidi
kuokoa katika format makosa faili.
Lakini ni mhariri tu maandishi, processor neno, ni yote yale ambayo ni
zinahitajika kuandika mpango.
>> Hivyo katika appliance CS50, tunaweza kufanya hivyo katika njia moja rahisi.
Tunaweza bonyeza tu juu ya hii icon wa kushoto chini.
Na tena, tatizo kuweka 1 atakushauri ya hili, na voilà -
wewe kupata hii interface nyeusi na nyeupe ambapo tunaweza kuanza
kuandika code.
Basi hebu kuanza kuandika super rahisi mpango tena.
Mimi nina kwenda hadi faili, Ila, na mimi nina kwenda kuwaita
hii, hebu sema, hello2.c.
Na Mimi tu kuwaambia yake kwa kubonyeza jharvard, kuiweka
katika saraka yake nyumbani, mimi si kweli huduma
ambapo moja hii unaendelea.
Na kisha Ila.
Na sasa siwezi kuanza kuandika mpango wangu.
Na mimi kukumbuka kutoka mapema kwamba nina kuandika int
kuu (utupu).
Zoom katika upande wa kushoto juu.
Na kisha Mimi nataka kusema printf, kuchukua mbili.
Na sasa newline, quote karibu, karibu
mabano, semicolon.
Na kisha mimi kwenda chini hapa dirisha terminal yangu kwamba
iliyoingia katika gedit, tu kwa urahisi.
Na mimi nina kwenda mbele na kuandika kufanya hello, lakini si
hujambo peke yake, hello2.
>> Hivyo faili yangu kuitwa hello2.c. File yangu hiyo
tuitwe hello2, katika kesi hii.
Dammit, nini mimi kufanya makosa?
Haki zote, hivyo mimi wazi omitted line, kama unakumbuka kile
mipango ya awali kuangalia kama.
Lakini hebu angalia kama hatuwezi tease hii kusambaratika.
Kwa bahati mbaya, watu wengi ambao kuandika mipango ambayo
sisi kuandika mipango si kurahisisha mambo yote vizuri.
Hivyo inabidi aina ya skim juu ya kile haina kabisa kufanya
kuhisi hapa na kuona kama tunaweza kufikiri nini kibaya.
mstari wa kwanza kabisa kuna anasema implicitly kutangaza C
maktaba kazi printf na int aina.
OK, mimi kueleweka sehemu ya kwamba.
Lakini inaonekana kuwa akidokeza ukweli kwamba mimi kutumika printf
vibaya, kwa namna fulani.
Na nini maana ni makosa?
Mimi tu hakuwa na kufundisha kompyuta kwamba ni katika faili
kuitwa stdio.h.
Sasa mimi tu tu kukariri sasa kwamba ni printf
katika stdio.h, na kwa kweli kutakuwa nyingine
kazi katika faili huo kwamba tutaweza kupata kutumika.
>> Hivyo sasa napenda kwenda mbele na hit Ctrl-L tu wazi kwamba
mbali, rerun kufanya hello2, na voilà.
Na amri hii tena, ngumu zaidi kuliko tutaweza kuelezea kwa
leo makusudi.
Lakini hakuwa kukimbia Clang, na Clang inachukua chanzo code na
mtemi sekunde 0 na 1s.
Na wale sekunde 0 na 1s katika kesi hii huitwa nini?
Okay, kupinga code.
Na faili kwamba wao uko katika inaitwa, hivyo,
hello2, katika kesi hii.
Kwa sababu Nakala wangu faili hello2.c, Ingiza.
Na sasa mimi kuchukua mbili Moderators kumweka, Moderators
uhakika, Moderators uhakika.
Haki ya wote, hivyo tuna uwezo sasa kupata masharti,
inaonekana.
Naam, kile kingine tunaweza kupata kutoka kwa watumiaji?
>> Vizuri katika maktaba CS50, kuna majukumu mengine ambayo
ni kwenda kurahisisha maisha yetu katika siku hizi chache za kwanza.
GetChar, GetDouble, GetFloat, GetInt,
GetLongLong, GetString.
Naam, hebu konoa rahisi ya hizi kwanza.
GetString literally anafanya hivyo.
Ni tu anakaa pale, kusubiri kwa mtumiaji aina kitu katika,
na haraka kama ninapoandika kitu katika na hit Enter, ni
haina kitu na thamani hiyo.
Basi hebu kwenda nyuma ya mfano kwamba kwa kuona hasa nini
GetString alikuwa akifanya.
Hebu kwenda mbele na kufungua katika gedit, hello.c, na kukumbuka
kwamba haki kabla ya mapumziko, hii ni mahali ambapo sisi kushoto mbali.
>> Basi hebu sasa tease hii mbali katika undani zaidi kidogo.
Hivyo kwenye mstari 6, kuna mambo mawili
kinachotokea kwa sasa.
ishara sawa ni kutenganisha nusu ya kwanza na nusu ya pili.
Hivyo upande wa kushoto ya ishara sawa, sisi ni
akisema string s.
Na kisha, tu layman suala, ni nini string s
kufanya, unafikiri?
Ni kujenga nini?
Hivyo ni kujenga string kuitwa s.
Sasa nini maana ya kwamba kweli?
Naam, ni reservera nafasi kwa kamba kuitwa s.
Hiyo si haki kabisa.
Nini hii kufanya?
Naam kompyuta, kama unajua, na anatoa ngumu; hiyo ambapo
mafaili yako ni kuhifadhiwa.
Kompyuta na RAM, na hiyo ambapo programu ni kubeba
wakati wao ni mbio.
Hivyo wakati wewe mara mbili-click icon na Microsoft Word kuufungua
up, Microsoft Word ni mbio, ili kuzungumza, katika RAM, ambayo ni
sehemu ya elektroniki ya kompyuta yako.
Si ya kimwili, mitambo hiyo ni sehemu inazunguka, ambapo
data ni ujumla kuhifadhiwa muda mrefu.
Hivyo string s pretty much kuiambia kompyuta nipe
kutosha RAM kufaa kamba.
Sasa hiyo ni kidogo ya kurahisisha, kwa sababu
jinsi kubwa ni string kwenda kuwa?
Naam sisi kweli hawajui bado, hivyo katika wiki ijayo
tutaweza kweli kuvuta nyuma safu kwamba ni kamba na
tutaweza kuwaambia nini ni kweli ni.
Kamba, kwa sasa, ni tu kurahisisha nice ya dunia yetu.
Lakini string s anatangaza string kuitwa s, kwa sasa.
Anaisema kamba.
Ni hifadhi ya baadhi ya nafasi katika RAM kwa kamba user ni
kuhusu aina.
>> Sasa hebu angalia katika haki ya ishara sawa.
Hivyo anasema GetString ().
Na sanity kidogo kuangalia.
ukweli kwamba kuna kitu ndani ya mabano
inamaanisha nini kuhusu GetString?
Inachukua hoja hakuna.
Hiyo ni, huwezi kuchangia tabia yake kwa njia yoyote.
Kila wakati matumizi yake, ni kupata kamba na hiyo ni yake.
Kwa kulinganisha, printf, hopefully tabia yake haina
kubadilisha kila wakati.
Vinginevyo, ni pretty haina maana uchapishaji kazi kama
haina kitu kimoja.
Kama ni daima Prints Daudi au kitu
holela wakati wote.
Hivyo printf mantiki ya kuwa na hoja.
GetString kweli haina haja hoja, kwa sababu nilitaka
kupata kamba kutoka kwa mtumiaji na ni user nani kwenda
na ugavi mabadiliko kwa kuandika katika barua tofauti
kila wakati katika keyboard.
>> Hiyo ni nini GetString gani hatimaye?
Fikiria kama sanduku hii nyeusi kidogo.
Na hii sanduku nyeusi inachukua hakuna pembejeo, lakini wakati bang juu ya
hiyo, ni mtemi string kwamba mtumiaji typed in
Na ukweli kwamba kuna ishara sawa kuna maana ya kuchukua
kile ni mate nje ya juu ya haki na kuhifadhi ndani ya
nini juu ya kushoto.
Hivyo sawa ishara hapa, ni kweli haina maana
usawa, badala kitaalam maana zoezi.
Kuchukua thamani juu ya haki, na kuiweka katika
kutofautiana juu ya kushoto.
Basi hiyo ni yote yanayotokea huko.
>> Sasa katika mstari 7, sisi ni wito printf.
Hivyo printf hopefully ni kupata boring kidogo kwa sasa.
Hivyo magazeti string formatted.
Nini kamba?
Magazeti nje, "h-e-l-l-o,% s
! \ N ".
Haki zote, hivyo nini nataka kuziba-katika kwa% s?
Literally, chochote ni kuhifadhiwa katika s.
Hivyo katika kesi hii, kidogo sanity hundi, jinsi gani hoja nyingi
printf kuchukua?
Okay, nikasikia mmoja.
Nikasikia kimoja tena.
Mbili, nikasikia mbili.
Na vipi kuhusu tatu?
Okay, tatu?
Bora.
Tatu uwezekano wa majibu, tu mmoja wao ni sahihi.
Hivyo hoja tena kuchangia tabia ya kazi.
Huko nyuma, printf hakuwa tu kuchukua moja hoja.
"Hello dunia" ilikuwa hoja moja.
Hata hivyo, sasa, taarifa ambapo comma hii ni.
Comma Hii ni nje ya kunukuu / unquote, ambayo ina maana
hey printf, inakuja hoja ya pili.
>> Hivyo koma katika lugha zaidi ya programu
tofauti nyingi hoja.
Hivyo jibu hapa ni dhahiri si moja, kwa sababu
kuna comma hii.
Hivyo minimally, printf ni inaonekana kuchukua mbili
hoja hii wakati.
Lakini nafasi kwa swali hila hapa ni nini
kuhusu comma hii?
Je, hii kuashiria kwamba kuna kweli tatu hoja?
Hii, hii, na hii.
Hivyo hakuna sababu comma kwamba ni ndani ya quotes, ambayo
ina maana ni kweli tu aesthetic ya Kiingereza.
Ni hauhusiani na idadi ya
hoja katika mpango huu.
Hivyo comma hii ni nje ya quotes mbili.
Na kisha kurudi 0.
Kwa sasa hebu tu aina ya kuchukua moja juu ya imani kwa
leo, na tu kujua kwamba wakati kazi ni kufanyika utekelezaji
mstari wa kanuni, wanapaswa kurudi ujumla baadhi ya thamani.
Katika kesi hiyo, kwa sababu tu kuu lazima kurudi int,
kwamba njia tu C lugha kazi.
>> Basi, kwa sababu hakuna kitu potoka, anahisi kama hii ya mpango
faini, mimi tu ngumu coded katika kurudi 0.
Lakini katika kulinganisha, na mimi nina kwenda kuandika hii katika code Pseudo
sasa, kiasi kama Yusufu alivyofanya wakati sisi alifanya sock
mfano wiki iliyopita.
Kama kitu potoka - hii si halisi code - akaenda
vibaya, kisha kurudi, hebu sema, 1.
Mwingine kurudi 0.
Hivyo hii ni mahali ambapo sisi ni kwenda na hili.
Hii si halisi C code, tu pseudocode.
Lakini hii ni jinsi gani wanaweza kurudi
tofauti iwezekanavyo maadili.
Lakini kwa sasa mimi nina kwenda tu kwa kwenda mbele na kurudi 0.
Haki zote, maswali yoyote hivi sasa juu ya syntax utendaji,
au kama?
Yeah, katika nyuma.
>> Watazamaji: [inaudible]
DAVID Malan: Je, unaweza kusema kidogo nguvu zaidi?
Kwa nini hii kurudi mpango 0, na?
Watazamaji: [inaudible]
DAVID Malan: Oh, hiyo ni kwa sababu mimi got wavivu, sorry.
Hakuna nzuri kitaaluma majibu, kurudi 0.
Naweza aina ya Salvage hii, kwa kusema kitaalam C, ikiwa kuu
haina wazi kurudi thamani, 0 watarejeshwa
moja kwa moja kwa ajili yenu.
Ambayo ni ya kweli, mimi si tu kifuniko juu.
Lakini, mimi lazima wamefanya hivyo kwa njia hii.
Hakuna takeaway kuvutia kuliko nyingine kuliko makosa yangu.
Yeah?
>> Watazamaji: Kawaida wakati unapoandika katika batili, hiyo ina maana
hawawezi kurejea kitu.
DAVID Malan: Sahihi.
Kama badala yake, ninyi bayana kabla ya jina la kazi, kwa
mfano hapa, utupu, basi kazi
haina kurudi chochote.
Na kwa hiyo napenda kusema tu, kurudi au kitu!
na kwamba itakuwa thabiti.
Na tutaweza kuja nyuma na kwamba.
Na tu FYI, moja ya samaki wanaovuliwa na kujifunza
programu katika dunia ambayo ina mamia ya vitabu na
mamia ya Nje huko nje ni wewe invariably
kuona syntax tofauti katika vitabu mbalimbali
na watu tofauti.
Kutambua tutaweza kufanya kazi nzuri katika sehemu na mihadhara kuwa
thabiti.
Lakini wakati mwingine utaona syntax yanayokinzana.
Hiyo wakati wowote katika shaka, kuuliza tu.
Na kwa ujumla, tutaweza kuchukua huduma katika mihadhara na sehemu kwa
karibu daima sasa ni katika njia sahihi.
Na mimi kusema karibu daima, kwa sababu katika suala hilo.
Maswali mengine?
>> Watazamaji: Je% s zipo nje appliance?
DAVID Malan: Je% s zipo nje ya appliance?
Ndiyo.
Hivyo% s ina nini na C. ukweli kwamba sisi ni kutumia katika
appliance kimsingi ina chochote cha kufanya na
makala ya lugha ya sisi ni kutumia.
Hakika, wiki iliyopita wakati sisi kutumika Mac yangu, mimi aliandika
C code juu ya Mac yangu.
Ningeweza kutumika% s juu ya Mac yangu, na unaweza kuitumia kwenye
yako Windows kompyuta kama wewe kufunga compiler, kama
Visual Studio kutoka Microsoft.
Hivyo% s.
Kila kitu sisi ni kufanya ndani ya dirisha hili leo ina
kufanya na C. Na kimsingi kitu cha kufanya na
mfumo wa uendeshaji katika swali.
Kwa kulinganisha, nyeusi na nyeupe terminal dirisha - wakati
Mimi nina kuandika mambo kama ls, na rm, na cd -
kwamba ina nini na mfumo wa uendeshaji na
navigering kuzunguka.
Yeah.
Watazamaji: mimi maana maktaba, maktaba CS50.
DAVID Malan: Sawa, hivyo kama wewe maana string Keyword, kwamba
tu lipo katika maktaba CS50, sahihi.
Kwamba haipo katika C yenyewe, na kwa kweli katika michache
ya wiki sisi kutupa maktaba CS50 na kuanza
kufanya mambo kutoka mwanzo wenyewe, hivyo kusema.
Maswali mengine?
Yeah.
>> Watazamaji: [inaudible]
DAVID Malan: Good swali.
Ni amri kesi nyeti?
Na napenda kufanya tofauti hapa.
Hivyo amri kwa ujumla mambo tutaweza kuandika katika
chini ya dirisha, katika dirisha terminal.
Kitu chochote hadi hapa itakuwa kauli au C code.
Lakini katika hali zote mbili, jibu ni sawa, ndiyo.
Wote wa mazingira haya, C code saa ya juu na
mfumo wa uendeshaji amri line katika
chini, ni kesi nyeti.
Hivyo lazima capitalize GetString na mji mkuu wa G,
mji mkuu S. Lazima kuandika printf katika lowercase wote.
Lazima aina ls katika lowercase wote.
Hivyo karibu katika kila hali hii muhula, kesi mapenzi, katika
kweli, jambo hili.
Ndiyo.
>> Watazamaji: [inaudible]
DAVID Malan: Ah, hivyo sawa, nini kama sisi alikuwa faili
kuitwa hello.d.
Hivyo zinageuka D ni lugha ya programu.
Na hivyo katika baadhi ya kesi, sisi inaweza kweli kuandika mpango katika
kwamba faili na kuwa ni compiled katika mtindo huo.
Tunaweza, na kweli, jibu fupi ni, mimi sijui.
Hivyo sisi ni kwenda kufanya hili.
Hebu kwenda mbele na kuunda faili mpya.
Na spin hapa, uaminifu kwa ujumla, ni wakati wowote na shaka yoyote
hii muhula, na una appliance yako au kompyuta
kufungua, kwenda mbele na kujaribu kitu.
Hivyo nina kwenda kuokoa faili inayoitwa hello.d.
Ila hii.
Na mimi nina kwenda kukimbia kufanya hujambo Ingiza.
Ilionekana na kudai kuwa c alikuwa na uwezekano mkubwa
kuliko d, katika kesi hii.
Maswali mengine.
Yeah.
>> Watazamaji: [inaudible]
DAVID Malan: Okay, kusema kwamba kwa mara nyingine.
Watazamaji: [inaudible]
DAVID Malan: Jinsi gani wewe kwenda juu ya kupima kwamba au
troubleshooting kwamba?
Hivyo uwezekano mkubwa zaidi, kwa sababu ni lugha mbalimbali,
uwezekano mkubwa zaidi ungependa kupata kabisa
mpango tofauti outputted.
Ungependa kupata ujumbe wa makosa tofauti kabisa.
Na pia tu katika suala la kubuni, ingekuwa arguably kuwa
maskini kubuni uamuzi kuwa kuandika mbili tofauti
lugha kwa files karibu identically aitwaye, katika
exact directory, kwa kutumia
moja kwa moja chombo kama kufanya.
Hivyo siwezi pia kushinikiza nyuma na kusema katika miaka 15 ya kufanya hivyo,
kamwe kufanywa kuwa kosa.
Inaweza kutokea.
Lakini kuna tu mbalimbali, nadhani,
vifaa ulinzi katika mahali.
Plus ujumbe wa makosa ambayo zichukuliwe, kwamba ingekuwa
hatimaye yatangaza nini suala hilo ni.
Lakini inawezekana kona kesi.
>> Haki zote, hivyo hebu kuanzisha michache tu ya nyingine
makala hapa sasa, ili tuweze kuanza kujenga juu katika zaidi
na ngumu zaidi mpango.
Hivyo kwanza ya yote, math.
Hivyo math mifano ni aina tu ya rahisi katika wiki ya kwanza.
Hii si kusema kwamba programu yote ni juu ya
hisabati.
Hakika, kuelewa makala mbalimbali za
hisabati, algebra hasa, ni
kabisa husika hapa.
Katika ngazi za juu CS madarasa, linear algebra,
calculus, na kama.
Lakini kutambua zaidi ya nini tutaweza kufanya hii muhula inapunguza si
kwa hesabu, na kwa hakika si kwa hesabu, per se, lakini kwa kweli
kwa mantiki tu na kufikiri kwa makini.
Na hivyo hii uhusiano kwamba sayansi ya kompyuta kwa muda mrefu alikuwa,
hasa katika ngazi ya shule ya sekondari, na hisabati, ni
kidogo kupotosha.
Kwa sababu wengi wa mipango ya kwamba tutaweza kuandika, kwa kweli, ni
aina ya kiwango cha juu na lengo kutatua matatizo kwamba,
uhakika, wanaweza kutumia baadhi Aidha, kutoa, na mbalimbali
hisabati formula au kama,
lakini mwisho wa siku, ni kuhusu kufikiri na si
tu kutekeleza nini unaweza kuwa umeshazifanya katika kama TI
Calculator katika shule ya sekondari.
>> Hivyo kwa kuwa alisema, hebu sasa kufanya kitu kwa haya
hisabati operators kwamba kufanya kuwepo ili tuweze safari
juu ya baadhi ya vipengele msingi ya programu, au katika
kesi hii C. Hivyo kuna, kama maktaba CS50 alipendekeza,
na leo tuko tu kutumia GetString - na katika wakati
labda mtu mwingine kazi -
lakini kuna tofauti ya aina ya data katika kompyuta.
Wakati wa mwisho wa siku, kompyuta tu kujua sekunde 0 na 1s.
Lakini kumbuka kwamba wiki iliyopita tuliongea kuhusu mfumo binary
katika anayewakilisha idadi, kama idadi 0, na 1, 2 na,
njia yote juu ya hadi 8, kama katika video ya Nate.
Na kisha tunaweza kuhesabu juu sana kama sisi
alifanya juu ya hatua ya hapa.
Lakini kama unataka kuwakilisha idadi si tu lakini herufi,
sisi, na binadamu, zina kuja na baadhi holela
mikataba, ambapo kama mwisho wa siku yangu kompyuta wote
ina ni uwezo wa kueleza sekunde 0 na 1s, vizuri tunatarajia bora
kuanza standardizing mifumo ya sekunde 0 na 1s kwamba kuwakilisha
mambo tofauti.
mfano wa sekunde 0 na 1s kwamba inawakilisha barua.
Mifumo ya sekunde 0 na 1s kwamba kuwakilisha z barua.
Mifumo ya sekunde 0 na 1s kwamba kuwakilisha rangi ya bluu, au
nyekundu, au kama.
Tunahitaji kutumia yote haya sekunde 0 na 1s kueleza wenyewe katika
tofauti mazingira, katika njia tofauti ambazo si
lazima numeric.
>> Hivyo katika suala la uwakilishi, C ana aina ya data tofauti,
na tumeona moja ya hizi hadi sasa.
Tuliona int, na taarifa juu ya nini si screen
hivi sasa ni kamba.
Kamba haina, kwa kweli, zipo katika C. Tena, ni
kurahisisha tuko kuwasilisha kwa kwanza
wiki kadhaa.
Char ni tabia ya mtu binafsi.
kuelea ni idadi halisi, kwa uhakika decimal na idadi ya
kushoto na kulia ya hiyo.
mbili ni nini, kwa wale walio na background nyuma kabla?
Hivyo mara mbili mara mbili ni kitu.
Anaongeza mara mbili kama usahihi sana.
Basi nini maana ya hii?
Hivyo katika kila moja ya matukio haya, dunia ina aina ya sanifu
wangapi bits ni kutumika kuwakilisha
kila moja ya mambo haya.
Hivyo kama wewe ve watched Nate wa ASCII video tayari kwa sehemu
ya pset 0, au baadaye wiki hii utakuwa, pengine utasikia kujua
kwamba ASCII -
tabia uwakilishi -
kutumia bits ngapi?
Na unaweza hata kukumbuka kutoka demo yetu ya wiki iliyopita ya jinsi ya
watu wengi walikuwa juu ya hatua.
Hivyo 7 au 8, kawaida.
Hivyo kwa ujumla 8, na kuna kitu kinachoitwa kama kupanuliwa
ASCII kwamba anatumia bits wote 8, badala ya 7.
Lakini kwa ujumla, sisi majadiliano katika madaraka ya 2, hivyo katika kesi hii, 8.
Hivyo Char katika lugha ya programu ni kawaida 8 bits.
Hivyo ni int ujumla 32 bits.
kuelea kwa ujumla 32 bits.
mara mbili kwa ujumla 64 bits.
Na nini haina maana?
Ina maana unaweza kuwakilisha idadi kubwa, au katika kesi
ya idadi halisi, unaweza kuwa na idadi mengi zaidi baada ya
decimal mahali.
mengi zaidi na usahihi, katika kesi hiyo.
Sasa muda mrefu ni bahati mbaya jina lake.
Hivyo kuna int ambayo ni 32 bits.
Kuna muda mrefu ambayo ni, nope, 32 bits.
Na muda mrefu ambayo ni 64 bits.
Hata hivyo baadhi ya watu ni muktadha nyeti; inategemea
aina gani ya kompyuta una.
Hivyo kwa ujumla, tutaweza bayana katika homework au katika jaribio wakati
ni kweli mambo.
Lakini uhakika ni kuna yote haya tofauti
uwakilishi hapa.
>> Basi hebu kweli kupiga mbizi katika mpango.
Badala ya kuandika hii moja kutoka mwanzo, napenda kwenda mbele
na kufungua kutoka chanzo code ya leo - yote ambayo ni
online - kama unataka tinker karibu online, au kurudi kwenye
Jumatano na appliance kwenye kompyuta yako, maelekezo
kwa ambayo itaunganisha juu ya homepage ya shaka.
Hapa ni super mpango rahisi.
Lakini ni got kitu kidogo mpya juu kwamba
hatukuwa na kabla.
mengi yote ya mistari ya bluu ya maandishi.
Basi hizi mistari bluu kuwakilisha maoni.
Hivyo ni muhimu kabisa katika mpango wa kuwa na uwezo wa kuandika
baadhi ya maoni na wewe mwenyewe, au kwa wafanyakazi wenzake, au marafiki, au
mafundisho wenzake, kwamba aina ya kuelezea nini kinaendelea katika
faili hii, lakini hawana kitu cha kufanya na C code yenyewe.
Kitu cha kufanya na mpango functionally, ni tu
aesthetics.
Hivyo njia wewe kufanya hili katika C ni wewe ujumla kuanza yako
maoni na / *, na wewe mwisho kwa maoni yako
* /.
Na kama wewe ni kweli anal na kama kuteka aina ya picha,
basi wewe d kuweka mengi yote ya nyota, wewe d kufanya
kidogo sanduku kama hili.
Lakini hakuna mambo hayo.
Kitu tu kwamba mambo ni ya kwanza kabisa
na ya mwisho.
Hii ni nini wito maoni mbalimbali ya mstari.
Na ni haki ya binadamu kwa mkataba mara nyingi kufanya nyota na sanduku
mambo katika kama hii kama una mengi ya muda bure.
>> Hivyo baada ya ve yameandikwa katika baadhi ya comments, kwa ujumla, kuja
guts halisi ya mpango.
Hapa ni familiar wetu ni pamoja # .
Na tu haraka, hii ni muhimu au si muhimu?
Watazamaji: Muhimu.
DAVID Malan: Hivyo ni kweli si lazima.
Hivyo kwa nini, ingawa, ni kuwa si lazima?
Hivyo hakuna printf.
Kweli kweli.
Wote sisi ni kufanya katika mpango huu ni hisabati.
Hivyo kweli mimi kufuta kwamba.
Hivyo huna daima kuwa ni pamoja na kitu chochote katika
juu ya mpango huo.
>> Basi hebu kurahisisha hii kidogo.
Na sasa taarifa gani mpango huu gani.
Si mengi ya riba.
int x = 1.
Naam, ni nini hii kufanya?
Naam, kufikiri nyuma kwa mfano wa akili kutoka kabla.
mkono wa kushoto upande wa kujieleza hii anafanya nini?
Kuunda nafasi kwa integer.
Hivyo muda kiasi gani?
Naam, sisi kutokea kwa kujua sasa kwamba ni 32 bits.
Hapo awali, ilikuwa string kitaalam 32 bits, lakini zaidi
juu ya kwamba katika siku zijazo.
Lakini ni int 32 bits.
Hivyo hii kujieleza juu ya kushoto hapa, int x tu anasema hey
mfumo wa uendeshaji, nipe bits 32 ya RAM -
inayojulikana kama ka 4 ya RAM -
ili niweze kuweka integer katika nafasi hiyo.
Nini integer gani unataka kuweka?
Naam, tu idadi 1.
int y anapata 2, anafanya exact kitu hata ingawa
idadi ni kubwa, kwa kuzingatia ukubwa wake.
idadi yenyewe ni bado tu 32 bits.
Ni tu mfano wa bits ni tofauti na
kuwakilisha 1 dhidi ya 2.
int z sasa anasema nipe bits mwingine 32, simu yake z, na kuweka
summation ya 1 na 2 katika huko.
Hivyo kwamba sasa ni z ikatengeneza kuhifadhi thamani 3,
na kisha kurudi 0.
>> Sasa mpango huu, je, ni kufanya kitu chochote cha riba?
Hivyo ni kweli haina kufanya kitu cha kuvutia, katika yoyote
maana, kwa sababu kwa nini? Ni kufanya baadhi ya math.
Lakini si kurudi jibu, haki.
Ni kurudi 0.
Siyo uchapishaji jibu.
Hivyo mpango huu ni Kimsingi hauna maana, kama ni
anasimama sasa.
Ni kufanya baadhi ya kazi.
Ni kwenda kuchukua baadhi ya idadi ya sekunde, microseconds au, kwa
kukimbia, lakini siyo kweli kufanya kitu chochote
muhimu kwa ajili ya binadamu.
>> Basi hebu kweli sasa kufungua math2, ambapo sasa mimi nina kweli
uchapishaji matokeo.
Hivyo hii pia inaweza inferred kutoka mifano yetu uliopita.
Kama mimi nataka kufanya hisabati baadhi rahisi, int x = 1, y
= 2. z ni 1 plus 2 sasa.
Nini hii kwenda magazeti nje wazi?
3 tu.
Hivyo sanity haraka kuangalia.
Hebu hoja katika saraka hii.
Hivyo cd source1m.
Hebu kwenda mbele na kufanya aina math2.
Hakuna ujumbe wa makosa akatoka nje, hivyo basi mimi kukimbia -
si a.out-basi mimi kukimbia math2. Kuingia.
Na hakika, kuchapishwa 3.
Naam hebu tuangalie lahaja ya hii.
Katika math3.c, sasa tuna mfano huu hapa.
>> Hivyo aina hii moja ya kuvutia.
Hivyo katika hili hapa, jibu ni kwenda kupata 1 kugawanywa na 10,
na taarifa nimekuwa amekiri kuwa ni kama kuelea.
Kwa nini mimi nataka kuwa kuelea?
Naam, ni sehemu.
Ni kwenda kuwa idadi halisi.
Hivyo ni kwenda kuwa 0.1, hopefully - 10%, katika kesi hii.
Na nini mimi basi nataka magazeti nje?
Naam, hii jibu.
Naam, hebu tease haya mbali ya kwanza.
Hivyo upande wa mkono wa kushoto, kutangaza
kuelea, simu yake kujibu.
Upande wa kulia, je 1 kugawanywa na 10 na kuweka kwamba
kujibu ndani ya kutofautiana.
Sasa, hii inaonekana kidogo line zaidi cryptic.
Lakini taarifa baadhi ya vipengele familiar. % Maana hiyo inakuja
placeholder.
f maana hapa ni floating kumweka thamani, tu halisi
idadi, kitu kwa uhakika decimal.
0.2 njia gani?
Mtu yeyote kujua kutokana na uzoefu kabla?
Mbili decimal maeneo.
Hivyo tumekuwa si kuonekana hii kabla, lakini ni njia tu ya
utumiaji mdogo zaidi udhibiti printf na
Msemo wala kunipa pointi 30 baada ya uhakika decimal,
badala nipe tu 2.
>> Na kisha hebu kwenda mbele na kukimbia hii.
Hivyo kufanya math 3, na sasa napenda kukimbia math 3, Ingiza.
Na kwamba si sahihi.
Sisi wanaonekana kuwa wamekutana halisi yetu ya kwanza mdudu.
Naam, labda mimi tu si kuangalia karibu kutosha.
Hivyo basi mimi kwenda juu hapa, na napenda kuweka 20 decimal
uhakika maeneo huko.
Na napenda kukusanya hii, kufanya math3, kukimbia.
Pretty sure 1 kugawanywa na 10 ni si 0.
Basi nini kinaendelea?
Naam sawa, hivyo kweli haina cha kufanya na hii.
Hiyo ni dhana nzuri.
Hii ni kweli bahati mbaya tu
kwamba sisi ni kufanya hii.
Lakini tu kuthibitisha kwamba hii si hivyo, mimi itabidi
kurudi kitu random.
Je, si kufanya hili nyumbani, kwa sababu ni makosa tu.
Lakini kufanya math3, basi mimi kukimbia.
Hivyo ina chochote cha kufanya na nini mimi kurudi, tu ina nini
kwa nini mimi uchapishaji.
Lakini nikasikia ni chini hapa.
Nini?
Watazamaji: Hivyo tunahitaji kuandika idadi katika
mgawanyiko kama -
>> DAVID Malan: Okay nzuri.
Hivyo tunahitaji kuandika idadi ya kushiriki katika
mgawanyiko hapa kama hatua ya floating inathamini wenyewe.
Hivyo tatizo hapa ni kama kabla: C, kama na mengi ya
lugha, ana aina ya data tofauti.
Na aina ya data hizo, kwa mfano, ni hizi hapa.
Na aina ya data katika swali hapa, wakati ninapoandika 1 na kisha mimi
aina 10, pengine ni nini data aina?
Hivyo ni pengine int, haki?
Ni dhahiri si kuelea kwa sababu kuna decimal hakuna
uhakika au kitu kama hicho.
Hivyo kweli, nina int kugawanywa na int.
>> Hivyo kitu ya kuvutia kuhusu math na kompyuta ni kwamba
kama wewe ni kufanya mgawanyo kutumia integers -
1 kugawanywa na 10, ndiyo ni 0.1.
Hata hivyo, wakati wewe kugawa integer na integer,
Jibu ina pia kuwa integer kwa sababu tu, kwa sasa.
Na nini maana basi?
Naam, kama jibu ni 1 kugawanywa na 10 ni sawa na 0.1, nini
kompyuta ni kwenda kufanya ni mimi hawana wazo jinsi ya
kuwakilisha 0.1, kwa sababu hiyo floating kumweka thamani, si
integer; itakavyo Night mbali kila kitu baada ya
decimal uhakika na tu kuonyesha 0 mwanzoni.
Na ukweli kwamba ni uchapishaji kama hatua ya floating
thamani, ni tu kitu aesthetic.
Hiyo ni kwa sababu mimi nina kulazimisha kompyuta na magazeti hii kama
floating kumweka thamani.
Na kwa kweli nimekuwa amekiri kuwa ni kama kuelea, lakini math ni
yanatokea zaidi ya hapa.
>> Hivyo basi mimi kweli kurekebisha hili katika njia moja rahisi pretty.
Mbona si mimi tu kufanya 10.0 na 1.0, ingawa
kitaalam mimi kupata mbali na kufanya tu mmoja wa wale.
Sasa basi mimi kwenda mbele na kufanya math3.
Hebu kwenda mbele na sasa kukimbia math3, Ingiza.
Na sasa, oh mvulana.
Sasa tuna tatizo mpya kabisa.
Hivyo bora, haki; tuko karibu na 0.1, lakini nini ni wazi
makosa hapa?
Isipokuwa tumekuwa amelala na wewe kwa miaka, sawa?
1 kugawanywa na 10 ni kweli kabisa 0.1, hivyo nini
kweli kinachoendelea hapa?
Naam unaweza aina ya sababu kwa njia hii mantiki.
Kama kompyuta tu ina kiasi kidogo cha RAM kuanza
na, na kwa kweli kompyuta tu ni kutumia bits 32 kwa
floating kumweka thamani, anasimama kwa kufikiri kwamba kwa
finite idadi ya bits, 32 katika kesi hii, ndiyo, unaweza
kuwakilisha mengi ya mambo.
Ni kweli ni bilioni nne maadili tofauti unaweza kuwa
kuwakilishwa na bits 32, 2-32, lakini bado ni finite.
Hivyo tatizo ni kuna idadi ya usio wa kweli
idadi, kulia.
Kama wewe nipe namba halisi, mimi daima unaweza kupata wewe moja
kubwa kidogo, kidogo kidogo, na tweaking tu
idadi ambayo ni baada ya uhakika decimal.
Hivyo kama huna idadi ya usio wa bits, wewe
hawawezi kuwakilisha usio
idadi ya namba halisi.
>> Hivyo kuna hii kutokuwa sahihi asili katika kompyuta, na
hii anapata tripped juu wakati wote hata katika rahisi ya
mipango kama hii.
Lakini pia katika baadhi sana ulimwengu halisi matatizo pia.
Kwa kweli, hebu kuchukua muda tu kuangalia
kitu ambacho hasa kilichotokea katika hali halisi.
Tutaweza kuangalia tu michache ya kwanza ya dakika, na kisha
tutaweza post online kiungo.
Lakini hii ni ushahidi wa yale tu wanaweza kwenda vibaya, kabisa
uaminifu, katika njia ya kutisha wakati mambo haya si
kukubaliwa au tu sisi wanadamu kufanya makosa linapokuja
hizi aina ya maelezo ya utekelezaji wa kompyuta za kisasa.
>> [VIDEO kucheza]
-Sisi sasa kurudi na majanga ya uhandisi kwenye vioja kisasa.
Kompyuta.
Tumekuwa wote wamekuja kukubali matatizo mara nyingi frustrating
kwamba kwenda pamoja nao.
Bugs, virusi, na glitches programu ni ndogo bei kwa
kulipa kwa urahisi.
Lakini katika high tech na high kasi ya kijeshi na nafasi
mpango maombi, tatizo ndogo inaweza kuwa
kujitukuza katika janga.
Tarehe 4 Juni, 1996, wanasayansi tayari kuzindua unmanned
Ariane 5 roketi.
Ni alikuwa amebeba satelaiti kisayansi iliyoundwa kwa
usahihi jinsi dunia magnetic shamba
inaingiliana na upepo nishati ya jua.
roketi ilijengwa kwa ajili ya Shirika Ulaya Space na
lifted mbali kituo yake kwenye pwani ya Kifaransa Guyana.
>> -Katika sekunde kuhusu 37 katika ndege, kwanza
niliona kitu kitakacho makosa, kwamba walikuwa nozzles
swiveling katika njia ya wao kweli hawapaswi.
Karibu 40 sekunde ndani ya ndege, kwa uwazi gari
ilikuwa katika matatizo, na kwamba wakati wao alifanya uamuzi wa
kuiharibu.
usalama mbalimbali afisa guts kubwa taabu
button, akapiga juu ya roketi kabla inaweza kuwa
hatari kwa usalama wa umma.
>> -Hii ilikuwa safari Maiden ya Ariane 5, na wake
uharibifu ulifanyika kwa sababu ya flaw iliyoingia katika
roketi ya programu.
>> -Tatizo juu ya Ariane ilikuwa kwamba kulikuwa na idadi hiyo
inahitaji bits 64 kueleza na walitaka kubadilisha
kwa 16 idadi kidogo.
Wao wakadhani kuwa idadi ilikuwa kamwe
kwenda kuwa kubwa sana,
kwamba wengi wa tarakimu hizo katika idadi 64 kidogo walikuwa sekunde 0.
Wao walikuwa na makosa.
>> -Kukosa uwezo wa moja mpango wa programu ya kukubali
aina ya idadi yanayotokana na mwingine alikuwa katika mizizi ya
kushindwa.
Programu ya maendeleo imekuwa sehemu ya gharama kubwa sana
teknolojia mpya.
Ariane 4 roketi alikuwa na mafanikio sana.
Hivyo kiasi cha programu umba kwa sababu ilikuwa pia kutumika
katika Ariane 5.
>> -Tatizo msingi ilikuwa kwamba Ariane 5 mara kwa kasi,
kuharakisha kasi zaidi.
Na programu hakuwa waliendelea kwa ajili hiyo.
>> -Uharibifu wa roketi ilikuwa kubwa kifedha
maafa, wote kutokana na hitilafu ya dakika programu.
Lakini hii siyo mara ya kwanza data uongofu matatizo alikuwa
wanakumbana kisasa roketi teknolojia.
>> DAVID Malan: Tutaweza kuondoka ni saa hiyo.
Lakini hii ni ushahidi wa jinsi tu zinazotumika hata baadhi ya
hizi kiwango cha chini maelezo kwamba tumeanza kwa
kuchunguza leo ni.
Hivyo hata kama wewe kupata kidogo aliwasihi labda kwa baadhi ya
syntax na arcaneness hapa, kutambua kwamba zaidi ya
mrefu tutaweza kuwa na umakini tu juu ya jinsi husika hii ni
walimwengu mbali zaidi ya CS.
Sisi kuona juu ya Jumatano.