>> [Halisi kucheza]
>> DAVID J Malan: zote haki, kuwakaribisha nyuma CS50.
Huu ni mwanzo wa wiki mbili.
neno kutoka kwa mmoja wa wetu marafiki juu ya chuo -
kama una nia, pengine, ama sasa au katika baadhi mfupi baadaye
hata, kwa mara vizuri zaidi, mafundisho katikati ya shule wanafunzi kidogo
kitu kuhusu sayansi ya kompyuta, kufanya kichwa URL hiyo.
Wao ni katika haja hasa hivi sasa ya walimu, hasa kama una
alikuwa na baadhi ya yatokanayo na sayansi ya kompyuta.
>> Hivyo kukumbuka kuwa wakati wa mwisho, sisi ilianzisha chache data aina katika C, na
unaweza kuanza kupata yako mikono chafu na haya hivi sasa
katika tatizo kuweka moja.
Na tulikuwa na Char.
Hivyo katika suala fulani kiufundi, nini ni Char kama unajua ni leo?
>> Hivyo ni tabia, lakini hebu kuwa sahihi zaidi sasa.
Tufanye nini maana na tabia au mtu binafsi Char?
tabia ya mashirika yasiyo ya namba -
hivyo si lazima.
Ni zinageuka kuwa idadi hata, hata punctuation na barua ni
kuwakilishwa na data hii aina inayojulikana kama Char.
Hivyo si lazima herufi.
Yeah?
>> Hivyo ni tabia ASCII.
Hivyo kama wewe kufikiri nyuma kwa wiki sifuri, wakati tulikuwa Byte yetu ya kujitolea
kuja na ama kushikilia mikono yao juu au si wote, wao kuwakilishwa bits.
Lakini kwa pamoja kama kundi la nane, wao kuwakilishwa Byte.
Na sisi ilianzisha dhana ya ASCII katika hotuba hiyo, ambayo tu ni
ramani kati ya idadi na barua.
Na ASCII matumizi, kama wale binadamu an alisema, nane bits
kuwakilisha tabia.
>> Hivyo ipasavyo, ikiwa nane bits unaweza kila kuchukua kwenye moja ya maadili mbili -
zero au moja -
hiyo ina maana kulikuwa na uwezekano mbili kwa mtu huyu -
zero au moja -
mbili kwa ajili ya mtu huyu, mbili kwa ajili ya hii mtu, mbili kwa ajili ya hii moja.
Hivyo jumla ya mara mbili mara mbili mara mbili mara mbili mbili -
hivyo wawili wa nane katika jumla.
Hivyo kuna jumla ya idadi ya wahusika 256 inawezekana kwamba unaweza
kuwakilisha na bits nane.
>> Sasa, wale ambao wanazungumza Asia lugha wapate kujua ya kuwa kuna zaidi
wahusika katika dunia kuliko tu Kama na Bs na Cs na Ds.
Na hakika, ASCII haina inatosha kwa mengi ya lugha ya dunia.
Lakini zaidi juu ya kwamba wakati mwingine.
Kwa sasa, kujua kwamba katika C kama unataka kuwakilisha mbili, kipande cha
punctuation, au tu tabia ya kitu fulani katika asili, sisi kutumia Char.
Na ni moja Byte au bits nane.
>> Vipi kuhusu int?
Naam, ni int integer.
Jinsi wengi vipande, kama unakumbuka, mara integer kawaida?
Mtu yeyote kukumbuka?
Hivyo ni kawaida 32.
Ni kweli inategemea kompyuta kwamba unatumia.
Lakini katika appliance, na katika mengi ya kompyuta, ni 32 bits au nne
ka - nane mara nne.
Na ints ni tu kutumika kwa ajili ya kuhifadhi namba, ama hasi,
chanya, au sifuri.
>> Na kama nimepata bits 32 na wewe tu huduma kuhusu idadi chanya, unaweza
mtu yeyote ballpark jinsi wengi iwezekanavyo integers kompyuta wanaweza kuwakilisha kutoka
sifuri juu juu?
Hivyo itakuwa mbili hadi 32, ambayo ni takribani bilioni nne.
Hivyo hawa mamlaka ya mbili ni kwenda kuwa mara kwa mara mandhari katika sayansi ya kompyuta.
Kama tutaweza kuona, wao ni rahisi kabisa kufanya kazi na hata kama si kabisa
rahisi kufanya math katika kichwa ya mtu.
>> Hivyo tutaweza kusema takribani bilioni nne.
Sasa, kwa muda mrefu kwa muda mrefu -
unaweza aina ya nadhani.
Ni muda mrefu zaidi ya int.
Jinsi wengi vipande?
Hivyo 64 bits au ka nane.
Hii tu maana unaweza kuwakilisha hata kubwa ya idadi, kubwa chanya au
kubwa hasi namba.
>> Na vipi kuhusu kuelea?
Hiyo ni hatua yaliyo thamani ya bits 32.
Hii ni idadi tu halisi, kitu na uhakika decimal.
Lakini kama wewe badala yake wanahitaji maeneo zaidi baada ya uhakika decimal au unataka
kuwakilisha idadi kubwa na baadhi ya sehemu baada yake, unaweza kutumia
mara mbili, ambayo ni 64 bits.
>> Lakini kuna kuvutia takeaway hapa.
Hivyo kama ints ni mdogo na bits 32 na hata hutamani muda ni mdogo na 64
bits, kwamba aina ya anaomba swali, nini kama kweli wanataka kuhesabu
juu kuliko bilioni 4 kwa int?
Naam, wewe tu kutumia muda mrefu.
Lakini nini kama unataka kuhesabu juu kuliko mbili kwa 64, kutoa au kuchukua?
>> Sasa, hiyo ni idadi kubwa.
Lakini hatimaye, waweza kweli huduma kuhusu aina hii ya maadili,
hasa kama wewe ni kutumia database na kuanzia kukusanya kura na kura
na kura ya data na kumshirikisha kipekee idadi ya kila kipande cha data hizo.
Hivyo sisi aina ya kuwa na tatizo.
Na vile vile, kwa uhakika na yaliyo maadili - ikifungwa au mara mbili -
kama wameweza tu got idadi mahususi ya bits, jinsi wengi uanachama namba ungeli
uwezekano wa kuwakilisha?
>> Naam, ni chini ya wazi wakati kuhusisha uhakika decimal.
Lakini ni hakika finite.
Kama una idadi mahususi ya vipande, idadi mahususi ya binadamu, finite
idadi ya balbu mwanga, hakika unaweza tu kuwakilisha idadi mahususi ya
yaliyo kumweka maadili.
Lakini jinsi wengi kweli idadi ni yao katika dunia?
Kuna usio.
Hivyo kwamba ni aina ya tatizo kwa sababu sisi hawana kiasi usio wa
kumbukumbu au RAM ndani ya kompyuta yetu.
Hivyo baadhi ya mambo changamoto yanaweza kutokea.
>> Basi hebu kwenda mbele na kujaribu kueleza hii hapa.
Hebu kwenda mbele na kufungua gedit.
Mimi nina kwenda mbele na kuokoa faili inayoitwa "floats0.c" tu kuwa
sambamba na mfano kwamba ni inapatikana online, kama ungependa.
Na mimi nina kwenda mbele na kufafanua ni kama ifuatavyo -
Mimi nina kwenda mbele na kusema, int kuu batili, kama sisi mara nyingi kufanya.
>> Na kisha katika mpango huu, nina kwenda kwa kutangaza mwenyewe kuelea, hivyo 32-bit
variable kuitwa f, kiholela.
Na basi mimi nina kwenda kuhifadhi ndani yake Sijui, moja ya kumi, hivyo 0.1.
Hivyo nina kwenda kueleza kwamba kama moja kugawanywa na 10, ambayo ni kikamilifu
halali katika C.
>> Na kisha juu ya mstari wa pili, mimi tu unataka magazeti nje kwamba thamani.
Hivyo kukumbuka kwamba tunaweza kutumia ukoo printf.
Hatutaki kutumia% i kwa int.
Tunataka kutumia% f kwa kuelea.
Na kisha mimi naenda kufanya backslash n, karibu quote, comma, f, semicolon.
>> Hivyo hapa ni mpango wangu.
Tayari kuna moja mdudu.
Je, mtu ambaye hii clicked tayari wanataka kwa uhakika angalau
moja mdudu Nimekuwa alifanya?
Yeah?
Yeah.
Nimesahau "# pamoja" katika juu, wao dalili ya ambayo kama mimi kujaribu
kukusanya hii ni kwenda kuwa kwamba mkusanyaji ni kwenda yell saa yangu,
akisema ishara kisichojulikana au kitu na athari hiyo.
Haina kuelewa kitu kama printf.
>> Hivyo nina kwenda kufanya "ni pamoja na # ", Ila faili.
Na sasa ni katika sura bora.
Lakini nina uhakika pia kwenda nje ya mwezi mmoja undani leo.
Mbali na kubainisha nafasi ya wamiliki kama% s f% i%, unaweza
wakati mwingine kuathiri tabia placeholder ya kwamba.
Kwa mfano, katika kesi ya floating hatua thamani, kama mimi nataka tu
kuonyesha moja decimal mahali baada ya kipindi, siwezi kwa kweli kufanya 0.1f.
Hivyo kwa maneno mengine, mimi kutenganisha f na ishara na asilimia 0.1, tu
kuwaambia printf, unaweza kuwa mzima rundo la idadi baada ya decimal
uhakika kwa ajili yangu.
Lakini mimi tu wanataka kuona mmoja wao.
>> Hivyo nina kwenda mbele sasa na kuokoa mpango huu, kwenda katika terminal yangu
dirisha, na mimi nina kwenda mbele na aina ya kufanya kuelea 0, kuingia.
Mimi naona kuwa mstari fulani fumbo kwamba wataanza kufanya maana zaidi kama sisi
tease ni mbali wiki hii na ijayo.
Sasa mimi nina kwenda mbele na kukimbia kuelea sifuri.
Na, damn.
>> Hivyo kuna mdudu mwingine hapa kwa sababu fulani.
Mimi nina uhakika kwamba pretty moja ya kumi, au moja kugawanywa na 10, si 0.0.
Labda mimi nina si tu kuangalia katika maadili ya kutosha.
Hivyo kwa nini nasema mbili 0.2 kuona mbili decimal maeneo badala ya moja tu.
Hebu nirejee nyuma kwa terminal dirisha yangu hapa na kugonga juu ya wanandoa wa mara kwa
kuona historia yangu.
Kufanya kufanya kuelea sifuri tena, na kisha tena.
Na sasa kuingia.
>> Na sasa mimi nina uhakika pretty hii ni sahihi.
Na mimi naweza kufanya tatu na nne, na mimi nina pengine ataendelea kuona zeros.
Hivyo ambapo ni mdudu?
Moja kugawanywa na 10 lazima 0.1.
Mtu unataka kuchukua kumchoma katika kile suala la msingi ni?
Yeah?
Wao ni wote integers.
Basi ni nini?
Hivyo kwa moja kugawanywa na 10, hiyo ni nini mimi katika hesabu.
Na mimi kupata 0.1.
>> Yeah.
Na hivyo ni kweli kwamba suala hilo.
Wakati kuchukua integer katika kompyuta na wewe kuigawanya na integer mwingine,
kompyuta na default ni kwenda kudhani kwamba unataka integer.
tatizo ingawa, bila shaka, ni kwamba 0.1 si integer.
Ni idadi halisi.
Na hivyo kile kompyuta gani na default ni kama tu imeutupa mbali
kila kitu baada ya uhakika decimal.
Haina pande zote chini au juu per se.
Ni tu imeutupa mbali kila kitu baada ya uhakika decimal.
Na sasa kwamba hufanya akili.
Kwa sababu sasa sisi ni wazi kushoto na sifuri.
>> Lakini kusubiri dakika.
Nina kuona sifuri int.
Mimi kwa kweli kuona 0.00.
Hivyo ni jinsi gani mimi kupatanisha hii sasa?
Kama moja kugawanywa na 10 ni sifuri, lakini nina kuona 0.00, ambapo ni hivyo kupata
waongofu nyuma idadi halisi?
Yeah.
Hasa.
>> Hivyo hapa katika mstari tano, wakati mimi kwa kweli kuhifadhi kwamba 0.1, ambayo ni kisha
truncated na sifuri, ndani ya kuelea, hiyo ni sawa na ufanisi
hifadhi hiyo si kama int lakini, kweli kweli, kama kuelea.
Aidha, mimi nina kisha kwa kutumia printf kwa waziwazi magazeti kwamba idadi ya mbili
decimal maeneo hata kama kuna ili si kweli kuwa yoyote.
>> Hivyo aina hii ya sucks, haki?
Inavyoonekana huwezi kufanya math, angalau katika ngazi hii ya
usahihi, katika kompyuta.
Lakini hakika kuna ufumbuzi.
Nini kurekebisha rahisi tunaweza labda kufanya, hata tu intuitively hapa
kutatua hili?
Yeah?
Kugeuka integers katika -
yeah.
Hata kama mimi nina uhakika kabisa nini kweli kinachoendelea hapa, ikiwa ni
kimsingi ina nini na hizi zote mbili kuwa ints, vizuri, kwa nini si mimi
kufanya 10.0, na kufanya hii 1.0, resave faili.
Hebu kwenda nyuma chini ya chini na recompile.
Hebu sasa rerun.
Na huko -
sasa, mimi nimepata yangu moja ya kumi kuwakilishwa kama 0.10.
>> Wote haki.
Hivyo hiyo si mbaya.
Na napenda kumweka nje moja kwa njia nyingine tunaweza kuwa na kutatuliwa hii.
Hebu kweli unaendelea nyuma katika wakati kwa wakati tulikuwa hii kama moja
kumi wakati iliyopita.
Na napenda kwenda mbele na resave faili hii kama tofauti faili jina, tu
kuwa eneo la kukagua kidogo.
Ili kwamba ilikuwa toleo moja.
Na sasa napenda kwenda mbele na kufanya moja zaidi version.
Tutamwita toleo hili mbili sifuri indexed.
>> Na mimi nina kwenda badala kufanya hii - unajua nini?
Kuongeza nukta sifuri kazi katika kesi hii.
Lakini tuseme moja walikuwa kutofautiana.
Zinatakiwa 10 walikuwa kutofautiana.
Kwa maneno mengine, tuseme kwamba sikuweza tu ngumu-kanuni 0.0 mwishoni
hii ya kujieleza hesabu.
Naam, mimi kweli anaweza kufanya kitu katika mabano aitwaye akitoa.
Siwezi kutupwa kwamba integer 10 hadi kuelea, na mimi unaweza kutupwa kwamba mmoja integer kwa
kuelea, kama vile.
Kisha math kwamba kinaendelea kufanyika ni ufanisi 1.0 kugawanywa na 10.0,
matokeo ya ambayo inakwenda katika f kama kabla.
Hivyo kama mimi recompile hii kama kufanya ikifungwa 2, na sasa ikifungwa 2, mimi kupata huo
kujibu, kama vile.
>> Hivyo hii ni mfano haki contrived, kutatua tatizo hili
kwa kuanzisha akitoa.
Lakini kwa ujumla, akitoa kinaendelea kuwa Jambo nguvu, hasa kwa
tatizo kuweka mbili katika muda wa wiki, wakati unataka kubadilisha data aina moja kwa
mwingine kwamba mwisho wa siku ni kuwakilishwa katika njia hiyo hiyo.
Mwisho wa siku, kila moja Jambo tumekuwa kuongelea hivi sasa ni
tu ints chini ya Hood.
Au kama kwamba ni pia ngazi ya chini kwa wewe, wao ni idadi tu na
chini ya Hood.
Hata wahusika, tena, kukumbuka kutoka sifuri kwa wiki, ni idadi
chini ya Hood.
>> Ambayo ni kusema, tunaweza kubadilisha kati ya aina tofauti ya idadi kama
wao ni tu bits.
Tunaweza kuwabadili kati ya idadi na barua kama uko tu
bits, na kinyume chake.
Na akitoa katika njia hii ni utaratibu katika programu ambayo inakuwezesha waliolazimishwa
mabadiliko ya data aina moja hadi nyingine.
Kwa bahati mbaya, hii si kama moja kwa moja kama mimi ili walipenda.
>> Mimi nina kwenda nyuma katika ikifungwa 1, ambayo ilikuwa rahisi, zaidi
moja kwa moja moja na 0.0 aliongeza juu ya kila aina.
Na tu kama rejea ya haraka, napenda kwenda mbele na recompile
hii, kufanya ikifungwa 2 -
sorry, hii ni kufanya ikifungwa 1.
Na sasa hebu kukimbia ikifungwa 1.
Na katika sehemu ya chini, taarifa kwamba mimi kwa kweli kupata 0.1.
Hivyo, tatizo kutatuliwa.
>> Lakini bado.
Mimi sasa kwenda kupata kidogo curious, na mimi nina kwenda nyuma katika wangu
printf taarifa na kusema, unajua nini?
Ningependa kuthibitisha kwamba hii ni kweli moja ya kumi.
Na mimi nina kwenda wanataka kuona hii , kusema, tano maeneo decimal.
Siyo tatizo.
Mimi kubadili 04:58, Mimi recompile na kufanya.
Mimi rerun kama ikifungwa 1.
Kuangalia nzuri.
Sanity yangu hundi ili mwisho huko, lakini Nina kupata zaidi kidogo adventurous.
Mimi nina kwenda na mabadiliko .5-0.10.
Nataka kuona maadili 10 baada ya nafasi decimal.
>> Na mimi nina kwenda mbele na recompile hii na rerun ikifungwa 1.
Mimi aina ya majuto baada ya kupima hii zaidi kwa sababu math yangu si hivyo
kusahihisha tena, inaonekana.
Lakini kusubiri dakika, labda kwamba tu fluke.
Labda kompyuta ni kaimu kidogo ya ajabu.
Napenda kwenda mbele na kufanya pointi 20 decimal na kuwahakikishia kwamba mimi mwenyewe kujua
jinsi ya kufanya hesabu.
Mimi najua jinsi ya mpango.
Kufanya ikifungwa 1, recompile, na damn it.
Kwamba ni kweli, kweli kupata mbali na alama.
>> Basi nini kinaendelea hapa?
Intuitively, misingi ya mawazo yetu mapema juu ya ukubwa wa aina ya data,
kile ambacho ni lazima kinachotokea hapa chini ya Hood?
Yeah?
Hasa.
Kama unataka hii usahihi sana, na hiyo ni heck ya mengi ya usahihi -
20 idadi baada ya uhakika decimal.
Huwezi uwezekano kuwakilisha holela ya simu isipokuwa kama una
holela ya simu ya bits.
Lakini sisi kufanya hivyo.
Kwa kuelea, sisi tu bits 32.
>> Hivyo kama bits 32 inaweza tu permuted katika njia - tu kama binadamu wetu juu, hatua
mikono juu au chini - katika idadi mahususi ya njia, kuna tu idadi finite
ya idadi halisi unaweza kuwakilisha na wale bits.
Na hivyo kompyuta hatimaye ni kwenda na
kuanza kukata pembe.
kompyuta inaweza kuficha maelezo wale kutoka kwetu kwa muda kidogo.
Lakini kama sisi kuanza poking katika idadi na kuangalia mbali na mbali zaidi katika
trailing idadi katika idadi nzima, basi sisi kuanza kuona kwamba ni
kweli approximating wazo la kumi moja.
>> Na hivyo ni zamu nje, kusikitisha, kuna idadi ya usio wa idadi
hatuwezi kuwakilisha kwa usahihi katika kompyuta, angalau kwa finite
idadi ya vipande, finite kiasi cha RAM.
Sasa kwa bahati mbaya, hii wakati mwingine ina madhara halisi ya dunia.
Kama watu hawana kabisa kufahamu hii au aina ya kuchukua kwa nafasi ya ukweli
kwamba kompyuta zao tu kufanya kile wao kuwaambia yake ya kufanya na wala
kuelewa haya ya ndani uwakilishi wa maelezo -
ambayo, kusema ukweli, katika baadhi ya lugha ni siri kutoka kwa mtumiaji, tofauti katika C -
baadhi ya mambo mabaya yanaweza kutokea.
>> Na nini Nilidhani tunatarajia kufanya ni kuchukua hatua nyuma.
Na hii ni kuhusu nane dakika ya video.
Ni kurushwa hewani miaka michache iliyopita, na inatoa utambuzi katika kweli nini unaweza kwenda
vibaya wakati wewe chini ya kufahamu haya aina ya maelezo katika sana wote-pia
ulimwengu halisi.
Kama tunaweza dim taa kwa dakika chache.
>> SPIKA 1: Sisi sasa kurudi uhandisi
majanga ya Marvels kisasa.
>> Kompyuta -
tumekuwa wote wamekuja kukubali mara nyingi frustrating matatizo
kwamba kwenda pamoja nao.
Mende, virusi, na glitches programu ni ndogo bei kulipa kwa ajili ya
urahisi.
Lakini katika high-tech na high-speed kijeshi na mpango wa nafasi
maombi, tatizo ndogo yanaweza kujitukuza katika janga.
>> Tarehe 4 Juni, 1996, wanasayansi tayari kuzindua unmanned Ariane 5 roketi.
Ilikuwa ni kufanya satelaiti kisayansi iliyoundwa na kuanzisha usahihi jinsi
Dunia shamba magnetic inaingiliana na upepo wa jua.
roketi iliyojengwa kwa ajili ya Ulaya Nafasi ya Shirika na lile mbali kutoka yake
kituo katika pwani ya ya Kifaransa.
>> JACK GANSSLE: Wakati kuhusu 37 sekunde katika ndege, kwanza niliona
kuna kitu kwenda vibaya.
nozzles walikuwa swiveling katika njia ya wao kweli lazima si.
Karibu sekunde 40 ndani ya ndege, wazi gari ilikuwa kwenye matatizo.
Na kwamba wakati wao alifanya uamuzi kuiharibu.
usalama mbalimbali afisa, na guts kubwa, taabu ya kifungo,
akapiga juu roketi kabla hawakuweza kuwa hatari kwa usalama wa umma.
>> SPIKA 1: Hii ilikuwa safari msichana Ariane ya 5, na uharibifu wake
ulifanyika kwa sababu ya kasoro iliyoingia katika programu ya roketi.
>> JACK GANSSLE: tatizo juu ya Ariane ni kwamba kulikuwa na idadi
kwamba required 64 bits kueleza.
Na walitaka kubadilisha na idadi ya 16-bit.
Wao kudhani kuwa idadi ilikuwa kamwe kwenda kuwa kubwa sana, ya kwamba zaidi ya
wale maadili katika kidogo 64- idadi walikuwa zeros.
Walikuwa na makosa.
>> SPIKA 1: kutokuwa na uwezo wa programu moja mpango kukubali aina ya
idadi yanayotokana na mwingine alikuwa kwenye mizizi ya kushindwa.
Programu ya maendeleo imekuwa sana gharama kubwa sehemu ya teknolojia mpya.
Ariane 4 roketi alikuwa sana mafanikio, hivyo mengi ya programu
kuundwa kwa ajili pia ilikuwa kutumika katika Ariane 5.
>> PHILIP COYLE: tatizo msingi ilikuwa kwamba Ariane 5 mara kwa kasi,
kuharakisha kasi zaidi.
Na programu alikuwa na si waliendelea kwa ajili hiyo.
>> SPIKA 1: uharibifu wa roketi ilikuwa kubwa kifedha maafa,
wote kutokana na kosa dakika programu.
Lakini hii haikuwa mara ya kwanza data uongofu matatizo alikuwa wanakumbana kisasa
roketi teknolojia.
>> JACK GANSSLE: Katika mwaka 1991, na kuanza ya kwanza vita vya Ghuba, Patriot
kombora uzoefu aina sawa ya tatizo simu uongofu.
Kama matokeo, 28 askari wa Marekani walikuwa waliuawa na wengine wapatao 100 kujeruhiwa
wakati Patriot, ambayo ilitakiwa kulinda dhidi ya Scuds zinazoingia,
alishindwa kwa moto kombora.
>> SPIKA 1: Wakati Iraq walivamia Kuwait na Amerika ilizindua Desert Storm katika
mapema 1991, Patriot kombora betri walikuwa uliotumika kulinda Saudi Arabia
na Israeli kutoka Scud Iraq kombora mashambulizi.
Patriot ni Marekani kati-mbalimbali uso-kwa-hewa mfumo wa viwandani na
Raytheon kampuni.
>> THEODORE POSTOL: ukubwa wa Patriot interceptor yenyewe ni takribani
20-miguu kwa muda mrefu.
Na ni kizito paundi 2000.
Na hubeba warhead ya juu -
Nadhani ni takribani £ 150.
Na warhead yenyewe ni high kulipuka ambayo ina
vipande kuzunguka.
casing ya warhead imeundwa kutenda kama buckshot.
>> SPIKA 1: makombora ni kufanyika wanne kwa kila kontena na ni kusafirishwa
na Trailer nusu.
>> PHILIP COYLE: Patriot kupambana na kombora mfumo inakwenda nyuma katika
angalau miaka 20 sasa.
Ni awali ilikuwa imeundwa kama ulinzi hewa kombora kwa
risasi chini ndege ya adui.
Katika Vita ya Ghuba ya kwanza, wakati kwamba vita alikuja pamoja, Jeshi alitaka kutumia
kwa risasi chini Scuds, ndege si.
Iraq hewa nguvu haikuwa sana ya tatizo.
Lakini Jeshi alikuwa na wasiwasi kuhusu Scuds.
Na hivyo walijaribu kuboresha Patriot.
>> SPIKA 1: Intercepting kombora adui kusafiri saa mach tano alikuwa
kwenda kuwa changamoto ya kutosha.
Lakini wakati Patriot alikimbizwa katika huduma, Jeshi hakuwa na ufahamu wa
Iraq muundo kwamba alifanya yao Scuds karibu vigumu hit.
>> THEODORE POSTOL: Ni nini kilichotokea Scuds ni kwamba walikuwa
akija katika walikuwa imara.
Walikuwa tikisika.
Sababu ya hayo ni raia wa Iraq, katika Ili kupata kilomita 600 nje ya
300 wa kilomita-mbalimbali kombora, alichukua uzito nje ya warhead mbele.
Walitoa warhead nyepesi.
Hivyo sasa Patriot ni kujaribu kuja kwa Scud.
Na zaidi ya muda, balaa Wengi wa muda, ingekuwa tu
kuruka na Scud.
>> SPIKA 1: Mara tu mfumo wa Patriot waendeshaji barabara Patriot amekosa
lengo lake, wao detonated Patriots warhead ili kuepuka uwezekano
majeruhi kama aliruhusiwa kuanguka chini.
>> THEODORE POSTOL: Hiyo ilikuwa nini zaidi watu waliona kama fireballs kubwa angani
na kutoeleweka kama intercepts Scud ya warheads.
>> SPIKA 1: Ingawa katika anga usiku Wazalendo alionekana kuwa mafanikio
kuharibu Scuds, saa Dhahran kuna inaweza kuwa hakuna kosa kuhusu wake
utendaji.
Huko, rada Patriot mfumo wa waliopotea wimbo wa Scud zinazoingia na kamwe
ilizinduliwa kutokana na kasoro programu.
>> Ni mara ya kwanza aligundua Israel ambao kwamba tena mfumo
ilikuwa juu, tofauti kubwa wakati akawa kutokana na saa
iliyoingia katika mfumo wa kompyuta ya.
>> JACK GANSSLE: Kuhusu wiki mbili kabla ya janga katika Dhahran, Israel
taarifa ya Wizara ya Ulinzi kwamba mfumo alikuwa kupoteza muda.
Baada ya masaa nane ya kukimbia, waligundua kwamba mfumo ni
kuwa unaonekana chini sahihi.
Wizara ya Ulinzi alijibu kwa kuwaambia yote ya betri Patriot
na si kuondoka mifumo juu kwa muda mrefu.
Wao kamwe alisema nini kwa muda mrefu ilikuwa.
Masaa nane?
Masaa 10?
1000 masaa?
Hakuna aliyejua.
>> SPIKA 1: betri Patriot stationed katika kambi ya saa Dhahran
na ndani yake saa kiujanja alikuwa juu zaidi ya 100 masaa ya usiku wa
Februari 25.
>> JACK GANSSLE: Ni msisimko wakati wa usahihi wa juu ya kumi ya pili.
Sasa, sehemu ya kumi ya pili ni kuvutia idadi sababu haiwezi kuwa
walionyesha katika binary hasa, ambayo ina maana haiwezi kuwa walionyesha hasa katika
yoyote ya kisasa ya digital kompyuta.
Ni vigumu kuamini, lakini kutumia hii kama mfano.
Hebu kuchukua namba moja ya tatu.
Theluthi moja hawezi kuwa walionyesha katika decimal hasa.
Moja ya tatu ni 0.333 kwenda juu kwa infinity.
Hakuna njia ya kufanya hivyo na kabisa usahihi katika decimal.
Hiyo hasa aina moja ya tatizo yaliyotokea katika Patriot.
tena mfumo wa mbio, mbaya kosa wakati akawa.
>> SPIKA 1: Baada ya 100 masaa ya kazi, makosa katika wakati ilikuwa tu
theluthi moja ya pili.
Lakini katika suala la kulenga kombora kusafiri saa mach tano, ni matokeo ya
makosa ya kufuatilia ya zaidi ya mita 600.
Itakuwa kosa mbaya kwa askari katika Dhahran.
>> THEODORE POSTOL: Kilichotokea ni Uzinduzi Scud ilikuwa wanaona na mapema
onyo satelaiti.
Na walijua kuwa Scud alikuwa anakuja katika mwelekeo wao kwa ujumla.
Hawakujua ambapo ilikuwa ijayo.
>> SPIKA 1: Ilikuwa sasa hadi rada sehemu ya mfumo Patriot
kutetea Dhahran na Machapisho na kuweka wimbo wa kombora zinazoingia adui.
>> JACK GANSSLE: rada alikuwa smart sana.
Ingekuwa kweli kufuatilia nafasi ya Scud na kisha kutabiri ambapo ni
pengine itakuwa wakati ujao rada alimtuma mapigo nje.
Kwamba aliitwa lango mbalimbali.
>> THEODORE POSTOL: Kisha mara moja Patriot anaamua muda wa kutosha kupita kwenda
nyuma na kuangalia eneo ijayo kwa ajili ya hii kitu wanaona, unaendelea nyuma.
Hivyo wakati akarudi vibaya mahali, basi anaona hakuna kitu.
Na anaamua kwamba kulikuwa hakuna kitu chochote, ilikuwa kugundua uongo, na
matone ya kufuatilia.
>> SPIKA 1: Scud zinazoingia kutoweka kutoka screen rada, na
sekunde baadaye slammed Paulo ndani ya ngome.
Scud kuuawa 28 na mara moja ya mwisho fired wakati wa Vita ya Ghuba ya kwanza.
Kusikitisha, programu updated aliwasili saa Dhahran siku iliyofuata.
flaw programu amekuwa fasta, kufunga sura moja katika wasiwasi
historia ya kombora Patriot.
>> Mzalendo ni kweli kifupi kwa ajili ya kufuatilia Phased Array
Kukatiza ya Lugha.
>> DAVID J Malan: zote haki, hivyo yanayotisha mfano, kuwa na uhakika.
Na kwa bahati nzuri, hizi ngazi ya chini mende ni si kitu ambacho tutaweza
kawaida kuwa na kufahamu, hakika si kwa baadhi ya yetu ya
mwanzo wa mipango.
Badala yake, zaidi ya mende utasikia kukutana itakuwa mantiki katika asili,
kisintaksia katika asili ambapo kanuni tu haina kazi ya haki.
Na unajua ni pretty kufunga.
>> Lakini hasa wakati sisi kupata mwisho wa muhula, ni kwenda
kuwa zaidi na zaidi ya uwezekano wa kweli kufikiri kwa bidii juu ya kubuni
ya mipango yako na msingi uwakilishi
huko, pia, ya data.
Kwa mfano, tutaweza kuanzisha MySQL, ambayo ni maarufu injini database
kwamba unaweza kutumia na tovuti ya kuhifadhi data juu ya mwisho ya nyuma.
Na itabidi kuanza kuamua katika mwisho wa muhula sio tu kile
aina ya data pamoja na mistari haya ya kutumia lakini hasa jinsi wengi bits kutumia,
kama au unataka kuhifadhi tarehe kama tarehe na nyakati kama nyakati, na pia
mambo kama jinsi kubwa unataka Vitambulisho vya kipekee kwa kuwa, kusema, watumiaji
katika orodha yako.
>> Kwa kweli, kama baadhi yenu alikuwa na Picha za hesabu kwa muda kabisa,
na wewe kujua jinsi ya kupata na Mtumiaji ID yako -
ambayo wakati mwingine inaonyesha juu katika yako maelezo mafupi ya URL ya isipokuwa umechagua
utani kwa ajili ya URL, au kama wewe wameweza kutumika Facebook Grafu API,
hadharani API na ambayo unaweza kuuliza Facebook kwa takwimu ghafi -
unaweza kuona nini ID yako numeric ni.
Na baadhi ya miaka iliyopita, Facebook kimsingi alikuwa na mabadiliko ya kutoka kutumia
sawa ya ints kwa kutumia muda mrefu muda mrefu kwa sababu baada ya muda kama watumiaji kuja
na kwenda na na kujenga kura ya akaunti bandia akaunti, hata wao kwa urahisi sana
walikuwa na uwezo wa kutolea nje kitu kama 4 bilioni iwezekanavyo thamani kama int.
>> Hivyo zaidi juu ya aina wale wa masuala ya chini ya barabara, kama vile.
Haki ya wote, hivyo kwamba alikuwa akitoa.
Hiyo ilikuwa ni kutokuwa sahihi.
michache ya matangazo ya haraka.
Hivyo sehemu rasmi kuanza hii kuja Jumapili, Jumatatu, Jumanne.
Utasikia kupitia barua pepe baadaye wiki hii kama sehemu ya kazi yako.
Na itabidi hapa pia katika hatua hiyo jinsi na mabadiliko ya sehemu yako kama yako
ratiba ya sasa imebadilika au yako faraja ngazi sasa imebadilika.
Wakati huo huo P-seti moja na moja ni hacker kutokana hii Alhamisi na chaguo
kupanua kwamba tarehe ya mwisho kwa specifikationer hadi Ijumaa
katika njia ya kawaida.
>> Kutambua kwamba pamoja na tatizo kuweka specifikationer ni maelekezo ya
jinsi ya kutumia appliance CS50, kufanya, kama vile baadhi CS50 maalum zana
kama style 50, ambayo inaweza kutoa na maoni juu ya dynamically
ubora wa kanuni style yako na pia kuangalia 50, ambayo inaweza kutoa kwa
nguvu maoni kama yako kanuni ya usahihi.
Kusamehe kwamba bado tuko Board nje kinks wachache na hundi 50.
machache ya wanafunzi wenzako ambao hawakuwa kuanza kuzunguka 4:00 usiku wa Ijumaa wakati
spec akapanda niliona tangu hapo mende chache kwamba sisi ni kazi
kupitia, na msamaha kwa mtu yeyote ambaye ina uzoefu frustrations visivyofaa.
kosa ni yangu.
Lakini tutaweza kufuatilia CS50 kujadili wakati kwamba ni kutatuliwa.
>> Hivyo neno juu ya alama wenyewe.
Hivyo utakuwa wiki moja au mbili kabla ya kuanza kupata maoni juu ya seti tatizo
kwa sababu wewe bado hatuna wenzake kufundisha.
Na hata basi, sisi kuanza kutathmini Tatizo C seti kabla ya sisi
kurudi nyuma na kutathmini mwanzo hivyo kwamba kupata zaidi husika
maoni kwa haraka zaidi.
Lakini kwa ujumla kwa mtaala, CS50 seti tatizo ni tathmini pamoja
kufuatia shoka nne -
upeo, usahihi, kubuni, na style.
>> Wigo ni kwenda kuwa idadi kawaida kati ya sifuri na tano kwamba
Ukamataji wa kiasi gani cha kipande kwamba wewe wakawauma mbali.
Kwa kawaida, unataka hii kuwa tano.
Wewe angalau alijaribu kila kitu.
Na taarifa ni sababu multiplicative ili kufanya sehemu tu ya
tatizo kuweka si mkakati bora.
>> Wakati huo huo, wazi zaidi ni umuhimu wa usahihi -
tu ni mpango wako sahihi na kuheshimu na vipimo?
Hii ni mizigo kwa makusudi zaidi sana kuliko wengine wawili na shoka
Sababu ya tatu kwa sababu tunatambua kwamba kwa kawaida wewe ni kwenda kutumia
mengi zaidi wakati Chasing chini baadhi ya mende, kupata kanuni yako ya kufanya kazi, basi
ni indenting yake na kuchagua sahihi kutofautiana majina na
kama, ambayo ni ya mwisho mwingine ya wigo wa style.
>> Hiyo si kusema style si muhimu, na tutaweza kuhubiri juu ya
wakati wote katika mihadhara na katika sehemu.
Sinema inahusu aesthetics ya maadili yako.
Je waliochaguliwa vizuri aitwaye vigezo kwamba ni mfupi lakini kwa kiasi fulani
maelezo?
Ni kanuni yako indented kama ve kuonekana katika hotuba na kwa njia thabiti
kwa mtindo wa 50?
>> Mwisho ni haki ya kubuni pale katikati.
Kubuni ni moja vigumu kuweka kidole juu kwa sababu ni mengi zaidi
subjective.
Lakini ni labda muhimu zaidi ya shoka tatu katika suala la ufundishaji
thamani ya zaidi ya muda na kwamba hii itakuwa fursa ya kufundisha wenzake kwa
kutoa kwa maoni ya ubora.
Hakika, katika CS50 ingawa sisi kufanya haya formula na alama, mwishoni
ya siku hizi ni kwa makusudi ndogo sana ndoo - kumweka maadili
kati ya sifuri na tatu na sifuri na tano.
Sisi si kujaribu kuteka mistari magumu kati ya tatizo seti au kati ya
wanafunzi lakini badala ya kuzingatia kama vile tunaweza juu ya ubora, longhand
maoni, ama typed au matusi kutoka ufundishaji wako hasa wenzetu,
utasikia kupata kujua vizuri kabisa.
>> Lakini kwa ujumla, wale ni uzito kwamba shoka mbalimbali watapata.
Wakati huo huo, pia, ni thamani ya kushika katika akilini kwamba ni lazima si kudhani kwamba
tatu kati ya tano ni 60% na Basi takribani kushindwa.
Tatu ni makusudi maana ya kuwa aina ya katikati ya barabara nzuri.
Kama wewe ni kupata threes katika mwanzo wa muhula, hiyo ni
kweli maana ya kuwa nzuri mahali ya kuanza.
Kama wewe ni kupata wawili-wawili maonyesho,, kuna dhahiri baadhi ya kazi kwa kulipa kidogo
kipaumbele zaidi, kuchukua faida ya sehemu na masaa ya ofisi.
>> Kama wewe ni kupata fours na umri wa miaka mitano, kubwa.
Lakini kwa kweli, tunatarajia kuona trajectories kati ya wanafunzi - sana
mtu mmoja mmoja kwa kila mwanafunzi, lakini kuanzia muhula hapa katika aina ya
wawili mbalimbali tatu lakini kuishia hapa juu katika mbalimbali 4-5.
Hiyo ni nini sisi ni kweli kutafuta.
Na hatuna kukumbuka kwamba delta wewe maonyesho kati ya wiki sifuri na wiki
12 wakati mimi nina kufanya darasa.
Haijalishi kwetu kabisa jinsi wewe haki mwanzoni kama yako
trajectory ni kweli zaidi na nguvu.
>> Uaminifu kitaaluma - hivyo basi mimi kuweka juu yangu mbaya zaidi sauti kwa muda tu.
Hivyo bila shaka hii ina tofauti ya kupeleka wanafunzi zaidi kuliko nyingine yoyote
katika historia ya bodi ad, naamini.
Tuna aina ya kuhesabu waliopotea katika hii uhakika wa jinsi mara nyingi hii hutokea.
Na si kwamba kwa sababu ya wanafunzi katika 50 ni yoyote zaidi kuliko wao mwaminifu
classmates mahali pengine.
Lakini kutambua, pia kwamba, sisi ni nzuri sana katika kuchunguza jambo la aina hii.
>> Na kwamba ni faida ya kuwa sayansi ya kompyuta ya darasa ana kwa kuwa sisi
unaweza na hatuwezi kulinganisha wanafunzi wote tatizo seti jozi-busara dhidi ya kila
mengine, si tu mwaka huu lakini wote kabla ya miaka.
Tuna uwezo, kama wanafunzi katika darasani, kwa Google na kutafuta kanuni ya
katika maeneo kama github na majadiliano ya vikao.
Kuna kabisa ufumbuzi wa CS50 ya p-seti yaliyo karibu huko.
Lakini kama unaweza kupata yao, tunaweza kupata yao.
Na yote haya ni mengi sana automatiska na rahisi na kusikitisha kwa sisi kupata.
>> Lakini nataka kusisitiza, pia kwamba kozi ya kitaaluma uaminifu sera ni
sana maana ya kuwa mengi sana kinyume cha roho hiyo.
Hakika, mwaka huu tumekuwa rephrased mambo katika mtaala kuwa hii, dot
dot dot, kwa undani zaidi katika mtaala.
Lakini mada kuu katika kozi kweli ni kuwa na busara.
Tunatambua kwamba huko ni muhimu kiasi cha ufundishaji
thamani ya kushirikiana, kwa kiasi fulani, na wanafunzi, ambapo wewe
mbili au tatu au wewe zaidi ni wamesimama katika bodi nyeupe
whiteboarding, hivyo kusema, mawazo yako -
kuandika nje pseudocode katika picha, diagramming kile lazima Mario kuwa kama
ungekuwa na kuandika ni ya kwanza katika pseudocode.
Kile lazima algorithm tamaa -
jinsi lazima ni kuishi kwa tatizo seti moja?
>> Na hivyo kutambua kwamba tabia kwamba sisi moyo sana
sana pamoja na mistari hayo.
Na katika mtaala, utaona nzima rundo la risasi chini ya
kuridhisha jamii na si ya kuridhisha jamii ambayo inatusaidia kusaidia
wewe wrap akili yako karibu ambapo hatuwezi kuteka kuwa mstari.
Na kwa ujumla, utawala bora wa thumb ni kwamba kama wewe wanajitahidi kutatua
baadhi ya mdudu na rafiki yako au classmate ni kukaa karibu na wewe, ni
busara kwa wewe kuonyesha kwake kanuni yako na kusema, hey, unaweza kusaidia
mimi kufikiri nini kinaendelea vibaya hapa?
>> Sisi si kawaida kukumbatia upande wa pili.
Ni si jibu sahihi kwa ajili yako rafiki au classmate hapa kusema, oh,
kuangalia tu katika mgodi na takwimu ni nje na kwamba.
Hiyo ni aina ya maana.
Lakini kuwa na mtu mwingine, mwingine ubongo, mwingine jozi ya macho kuangalia
screen yako au kuangalia code yako na kusema, ni wewe uhakika unataka
kuwa kitanzi hapa?
Au wewe ni uhakika unataka kwamba semicolon hapa?
Au oh, kwamba ujumbe wa kosa maana hii.
Wale ni nzuri sana na moyo tabia.
>> kesi ambayo nilikuwa akidokeza mapema jipu chini wakati wanafunzi ni
usiku na kufanya hukumu maskini maamuzi na emailing kanuni zao kwa
mtu mwingine au kusema tu, hapa, ni katika Dropbox au
Googling marehemu wakati wa usiku.
Na hivyo napenda kuwatia moyo na kuombaomba ya wewe, Ukiwa na wale kuepukika
wakati wa dhiki, wewe ni bumping up dhidi ya tarehe ya mwisho, wewe huna marehemu
siku tangu ni tayari Ijumaa saa kwamba uhakika, email vichwa shaka au
mwenyewe moja kwa moja.
Kusema, kusikiliza, mimi nina katika wangu kuvunja uhakika hapa.
Hebu kuwa na mazungumzo na takwimu ni nje.
Kutegemea mtandao au nyingine si tabia nzuri ni kamwe
ufumbuzi, na pia wengi wako classmates tena hapa
chuo kwa sababu ya hukumu kuwa maskini.
Lakini ni rahisi sana skirt kuwa mstari.
>> Na hapa ni picha kidogo na moyo ninyi kutoka Reddit ili sasa
kila kitu kitakuwa sawa.
>> Hivyo kurejea haraka, basi, ya ambapo sisi kushoto mbali.
Hivyo wiki iliyopita, kukumbuka kuwa sisi kuanzisha masharti, si katika Scratch
lakini katika C wakati huu.
Na kulikuwa na baadhi syntax mpya lakini kweli hakuna mawazo mapya per se.
Tulikuwa na maneno Boolean kwamba tunaweza au pamoja na wima mbili
baa au na pamoja na mbili ampersands, akisema kwamba wote wa kushoto
na kulia lazima kuwa kweli kwa hili nitafanya.
Kisha sisi alikuwa swichi, ambayo sisi inaonekana saa ufupi, lakini mimi kupendekeza ni kweli
tu tofauti syntax kwa ajili ya kufikia huo aina ya lengo kama unajua katika
kuendeleza kile kesi yako ni kwenda kuwa.
>> Tuliangalia matanzi.
kwa kitanzi ni labda ya kawaida, au angalau mmoja kwamba watu
kawaida kufikia kwa ajili ya kisilika.
Hata ingawa inaonekana kidogo fumbo, utaona wengi, mifano mingi ya hii
kabla ya muda mrefu, kama una tayari mwishoni mwa wiki iliyopita.
Wakati tanzi unaweza vile vile kufanikisha jambo hilo.
Lakini kama unataka kufanya lolote incrementation au kuongezea ya
kutofautiana wa maadili, una kufanya hivyo zaidi kuliko manually
kwa kitanzi kabla inaruhusu.
Na kisha kuna kitanzi do-wakati, ambayo inaruhusu yetu kufanya kitu fulani katika
angalau mara moja kwa wakati kitu mwingine ni kweli.
Na hii ni nzuri hasa kwa mipango au kwa ajili ya michezo ambapo unataka
kuchochea mtumiaji kwa ajili ya kitu angalau mara moja.
Na kisha kama yeye au yeye hana kushirikiana, unaweza kutaka kufanya hivyo
tena na tena.
>> Na vigezo, wakati huo huo, tulikuwa na mistari ya maadili kama hii, ambayo inaweza
kuwa ya mistari miwili.
Unaweza kutangaza int kuitwa counter, semicolon.
Au unaweza tu kutangaza na kufafanua, hivyo kusema.
Kuwapa thamani kwa wakati mmoja.
>> Na kisha mwisho, sisi aliyesema juu ya kazi.
Na hii ilikuwa mfano mzuri katika maana kwamba unaeleza
aina mbili ya kazi.
Moja ni GetString (), ambayo, tena, anapata kamba kutoka mtumiaji.
Lakini GetString () ni aina ya kuvutia, hivyo mbali kama tumekuwa kutumika,
kwa sababu tumekuwa daima kutumika kwa kitu upande wa mkono wa kushoto wa
sawa ishara.
Hiyo ni kusema kwamba GetString () anarudi thamani.
Kuirudisha, bila shaka, kamba.
Halafu kwa upande wa mkono wa kushoto, tuko tu kuokoa kwamba kamba ndani ya
variable kuitwa jina.
>> Hii ni tofauti, katika hisia, kutoka printf sababu printf, angalau katika yetu
matumizi ya hapa, haina kurudi kitu.
Kama kando, haina kurudi kitu.
Sisi tu hawajali ni nini.
Lakini haina na nini aitwaye athari upande.
Na nini ni kwamba athari upande katika kila kesi tumeona hivi sasa?
Je printf kufanya?
Ni kitu prints kwa screen, maonyesho ya maandishi au namba au kitu
kwenye screen.
Na kwamba tu kuchukuliwa athari upande kwa sababu si kweli kuwapatia
ni kuunga kwangu.
Siyo jibu ndani ya sanduku nyeusi kwamba naweza basi
kufikia katika na kunyakua.
Ni tu kufanya hivyo juu yake mwenyewe, kiasi kama Colton ilikuwa imeingia kwenye hii
nyeusi sanduku wiki iliyopita, na yeye kwa namna fulani magically ilikuwa kuchora kwenye bodi
bila mimi kweli kushiriki.
Hiyo itakuwa na athari upande.
Lakini kama mimi kwa kweli alikuwa na kufikia nyuma katika hapa na kusema, oh, hapa ni kamba
kutoka kwa mtumiaji, kwamba ingekuwa kuwa na thamani ya kurudi.
>> Na hivi sasa tumekuwa tu kutumika kazi kwamba watu wengine wameandika.
Lakini tunaweza kweli kufanya haya aina ya mambo sisi wenyewe.
Hivyo mimi nina kwenda katika CS50 appliance tena.
Hebu karibu tab kwamba sisi alikuwa wazi wakati iliyopita.
Na napenda kwenda mbele na kuunda faili mpya.
Na mimi nina kwenda mbele na wito huu positive.c moja.
Hivyo nataka kufanya kitu kwa chanya namba hapa.
Hivyo mimi nina kwenda mbele na kufanya int -
pole -
# Pamoja.
Hebu si kufanya huo kosa kama kabla.
Int kuu (utupu), wazi curly brace, imefungwa curly brace.
>> Na sasa nataka kufanya yafuatayo.
Nataka kuandika mpango kwamba anasisitiza kwamba mtumiaji anatoa
mimi sifuri.
Hivyo hakuna kazi GetPositiveInt katika maktaba CS50.
Kuna tu GetInt ().
Lakini hiyo ni sawa kwa sababu nina constructs na ambayo siwezi kulazimisha
zaidi kidogo kikwazo juu ya thamani hiyo.
Mimi naweza kufanya kitu kama hiki.
>> Hivyo int n -
na kama wewe ni kuandika pamoja, tu kutambua Mimi nina kwenda nyuma na
kubadilisha baadhi ya mambo katika wakati -
hivyo n int sawa GetInt ().
Na kwamba ni kwenda kuweka ndani ya int ya n.
Na napenda kuwa na maelezo zaidi.
Basi mimi kusema kitu kama mimi kudai kwamba wewe nipe sifuri.
>> Wote haki.
Hivyo kidogo tu ya maelekezo.
Na sasa nini naweza kufanya nini?
Naam, mimi tayari kujua kutoka rahisi yangu hali au matawi, kama mimi
alikuwa katika Scratch, mimi naweza kusema kitu kama kama n ni kidogo kuliko au sawa na
sifuri, basi nataka kufanya kitu kama, ambayo si mazuri.
Na kisha mimi naweza kufanya -
OK, lakini mimi kwa kweli wanataka kupata kwamba int.
Ili niweze kwenda juu hapa na mimi naweza aina wa nakala hii na Indent hii.
Na kisha, OK.
Hivyo kama n ni chini ya au sawa na sifuri kufanya hili.
>> Sasa, nini kama mtumiaji haina kushirikiana?
Vizuri, basi mimi naenda kukopa hii hapa.
Na kisha kwenda katika mimi hapa na hapa na hapa.
Hivyo hii ni wazi si ya ufumbuzi, haki?
Kwa sababu hakuna mwisho mbele.
Kama nataka kudai kwamba mtumiaji anatoa mimi integer chanya, siwezi
kweli kupata int.
Siwezi kisha kuangalia kwa int kwamba.
Lakini basi mimi unataka kuangalia tena na kuangalia ni tena na kuangalia tena.
Hivyo ni wazi, nini ni bora kujenga kwa kutumia hapa?
Haki ya wote, hivyo baadhi ya aina ya kitanzi.
>> Hivyo nina kwenda kujikwamua wa karibu yote ya hii.
Na mimi nataka kupata hii int angalau mara moja.
Hivyo nina kwenda kusema kufanya -
na mimi itabidi kurudi wakati katika muda tu -
sasa, kufanya nini?
Mimi naenda kufanya int n anapata GetInt ().
OK.
Hivyo kwamba ni nzuri.
Na sasa jinsi mara nyingi kufanya Nataka kufanya hili?
>> Napenda kuweka ndani printf ya kitanzi hivyo siwezi kudai tena na tena,
kama haja kuwa.
Na nini Nataka hii wakati hali ya kufanya?
Nataka kuendelea kufanya hii wakati ni nini kesi?
Yeah.
N ni chini ya au sawa na sifuri.
Hivyo tayari, tumekuwa kwa kiasi kikubwa kusafishwa kanuni hii up.
Tumekuwa alikopa rahisi sana kujenga - kitanzi do-wakati.
Nimekuwa kuibiwa tu mistari muhimu ya maadili ya kwamba mimi kuanza kuiga na
pasting, ambayo ilikuwa si busara.
Na hivyo sasa mimi naenda kwa kweli kuweka katika hapa na tu kufanya hivyo mara moja.
>> Na sasa nini nataka kufanya katika mwisho wa mpango huu?
Mimi itabidi tu kusema kitu rahisi kama, shukrani kwa ajili ya - na
Mimi itabidi kufanya% i kwa int -
backslash n, comma, na kisha kuziba katika n, semicolon.
>> Wote haki.
Basi hebu angalia nini kinatokea sasa wakati mimi kuendesha mpango huu.
Mimi nina kwenda mbele na kufanya kufanya chanya.
Damn.
makosa wachache.
Hivyo basi mimi kitabu nyuma hadi kwanza.
Kufanya kazi kwa njia yao nyuma.
Kazi kwa njia yao kutoka juu kwenda chini wasije kuteleza na tu
jambo moja kuwa na makosa.
Kinachojitokeza tamko la kazi GetInt ().
Yeah.
Hivyo ilikuwa si ya kutosha.
Mimi aina ya alifanya kosa sawa lakini tofauti kidogo wakati huu.
Nahitaji si tu ni pamoja na stdio.h lakini pia cs50.h, ambayo ni pamoja
kinachojulikana maazimio ya kupata int, ambayo kufundisha appliance, au kufundisha
C nini GetInt () ni.
>> Hivyo basi mimi resave.
Mimi nina kwenda kupuuza makosa mengine kwa sababu mimi naenda matumaini kwamba wao ni
namna fulani kuhusiana na makosa Mimi tayari fasta.
Hivyo basi mimi kwenda mbele na recompile na kufanya chanya, kuingia.
Damn.
Tatu makosa, bado.
Hebu kitabu juu na ya kwanza.
Isiyotumika kutofautiana n.
Tumekuwa si kuonekana hii kabla.
Na hii pia, ni kidogo fumbo.
Hii ni pato la mkusanyaji.
Na nini kuwa mstari yalionyesha huko - positive.c :9:13 -
ni kusema, ni kusema juu ya mstari wa tisa ya positive.c, katika tabia ya 13,
Safu ya 13, alifanya kosa hilo.
>> Na hasa, ni kuwaambia mimi isiyotumika kutofautiana n.
Basi hebu angalia -
line tisa.
Mimi nina kutumia n kwa maana ya kwamba Mimi kutoa ni thamani.
Lakini nini mkusanyaji hapendi ni kwamba mimi si inaonekana kutumia.
Lakini kusubiri dakika, mimi ni kwa kutumia hiyo.
Katika mstari wa 11, mimi nina kutumia hapa.
Lakini kama mimi kitabu chini zaidi saa positive.c :11 -
hivyo katika mstari wa 11, tabia ya 12, mkusanyaji ni akiniambia, matumizi ya
Undeclared kitambulisho n.
>> Hivyo Undeclared njia nina si maalum kama
kutofautiana na aina ya data.
Lakini kusubiri dakika.
Mimi hasa kwamba katika mstari tisa.
Hivyo mtu ni kweli kuchanganyikiwa hapa.
Ni ama mimi au mkusanyaji kwa sababu katika mstari wa tisa, tena, mimi nina kutangaza
int n, na mimi nina kumshirikisha ni kurudi thamani ya GetInt ().
Basi mimi nina kutumia kwamba n kutofautiana katika mstari 11 na kuangalia kama thamani yake ni chini
zaidi au sawa na sifuri.
Lakini hii inaonekana ni mbaya na kuvunjwa kwa nini?
Kusema tena?
>> Ah, mimi na kutangaza n kabla ya kuingia kitanzi.
Lakini kwa nini?
I mean, sisi tu mapendekezo kidogo iliyopita kwamba ni faini ya kutangaza vigezo
wote kwenye mstari mmoja na kisha wao hawawajui baadhi ya thamani.
variable kimataifa - hebu kuja nyuma na kwamba wazo katika muda tu.
Kwa nini unataka mimi kuweka ni nje ya kitanzi?
Ni.
Hasa.
>> Hivyo, angalau, kwa kiasi fulani counterintuitive, basi mimi muhtasari.
Wakati wewe kutangaza n ndani ya kuzuia do pale -
hasa ndani ya wale braces curly -
kwamba n kutofautiana ana nini kuitwa wigo -
lisilohusiana na mfumo wa bao yetu katika shaka - lakini ina wigo kwamba
mdogo kwa braces wale curly.
Kwa maneno mengine, kwa kawaida kama wewe kutangaza kutofautiana ndani ya seti ya
curly braces, kutofautiana unaendelea tu ndani ya wale braces curly.
Hivyo kwa kuwa mantiki peke yake, hata kama Nimekuwa alitangaza n katika mstari tisa, ni
kimsingi kutoweka kutoka upeo, kutoweka kutoka kumbukumbu, ili kuzungumza,
kwa wakati mimi hit line 11.
Sababu line 11, kwa bahati mbaya, ni nje ya wale braces curly.
>> Hivyo mimi kwa bahati mbaya hawezi kurekebisha hili kwa kwenda nyuma kwa nini mimi alifanya hivyo kabla.
Unaweza kwa mara ya kwanza kufanya hivyo.
Lakini ni nini sasa si kufanya cyclically?
Wewe ni wazi si kupata int cyclically.
Ili tuweze kuondoka GetInt (), na sisi tuache GetInt () ndani ya
kitanzi kwa sababu hiyo ni nini tunataka bemba mtumiaji kwa ajili ya tena na tena.
Lakini haina inatosha kwenda hadi mstari, kusema, sita.
Int n, semicolon.
Je, si kuwapa thamani lakini, kwa sababu huna haja tu bado.
>> Lakini sasa hapa chini, ilani - hii itakuwa kosa rahisi sana.
Sitaki kwa kivuli uliopita yangu tamko la n.
Nataka kutumia n kwamba kweli lipo.
Na hivyo sasa katika mstari wa 10, Mimi hawawajui n thamani.
Lakini katika mstari sita, mimi kutangaza n.
Na hivyo wanaweza au mimi naweza si kutumia katika mstari wa 12 sasa?
Siwezi kwa sababu kati ya ambayo curly braces ni n alitangaza sasa?
moja hadi hapa kwenye mstari tano.
Mmoja hapa kwenye mstari 14.
Hivyo kama mimi sasa zoom nje, ila faili hii, kwenda nyuma katika na kukimbia kufanya chanya,
ulioandaliwa wakati huu.
Hivyo kwamba ni tayari maendeleo.
Kufyeka. . / Chanya, kuingia.
>> Mimi kudai kwamba wewe nipe sifuri.
Hasi 1.
Hasi 2.
Hasi 3.
Sifuri.
Moja.
Na shukrani kwa ajili ya mtu ni nini sasa kuchapishwa.
>> Hebu jaribu kitu kingine, nje ya udadisi.
Mimi kuambiwa pembejeo integer.
Lakini nini kama mimi badala aina katika kondoo?
Hivyo sasa kuona haraka tofauti -
tena.
Lakini hakuna mahali popote katika kanuni yangu Je, mimi kuandika tena.
Hivyo ambapo, labda, ni hii jaribu tena haraka kuja kutoka, unaweza kusema?
Yeah, kutoka GetInt () yenyewe.
Hivyo moja ya mambo wafanyakazi CS50 gani kwa ajili yenu, angalau katika hizi chache kwanza
wiki, ni sisi wameandika baadhi ya kiasi ya makosa ya kuangalia kuhakikisha kwamba kama
wewe piga GetInt (), wewe angalau kupata nyuma int kutoka kwa mtumiaji.
Huwezi kupata kamba.
Huwezi kupata Char.
Huwezi kupata kitu mwingine kabisa.
Utapata int.
>> Sasa, wanaweza kuwa chanya.
Wanaweza kuwa hasi.
Sisi kufanya dhamana hakuna kuzunguka kwamba.
Lakini sisi bemba mtumiaji kujaribu tena, Jaribu tena, jaribu tena mpaka yeye au yeye kweli
inashirikiana.
Vile vile, kama mimi kufanya 1.23, kwamba si int.
Lakini kama mimi aina katika, kusema, 50, kwamba anitiaye thamani ya kwamba nilitaka.
>> Wote haki.
Hivyo si mbaya.
Maswali yoyote juu ya nini tumekuwa tu kufanyika?
takeaway muhimu, kwa kuwa wazi, si sana kitanzi, ambayo tumeona
kabla hata kama sisi si kweli kutumika, lakini suala la wigo, ambapo
vigezo inaweza tu inaweza tu kutumika ndani ya baadhi ya wigo maalum.
>> Haki ya yote, napenda kushughulikia maoni uliyofanya awali, kwamba wa
kimataifa kutofautiana.
Kama kando, zinageuka kuwa mwingine ufumbuzi wa tatizo hili, lakini
kawaida ufumbuzi sahihi au ufumbuzi hafifu iliyoundwa, ni
kutangaza kutofautiana yako kama nini kuitwa variable kimataifa.
Sasa mimi nina aina ya kukiuka tafsiri yangu ya wigo kwa sababu kuna
hakuna braces curly saa ya juu sana na chini sana ya faili.
Lakini maana ya kwamba ni kwamba sasa katika mstari nne,
n ni variable kimataifa.
Na kama jina ina maana, ni tu kupatikana kila mahali.
>> Mwanzo kwa kweli ina hizi.
Kama kutumika kutofautiana, unaweza kukumbuka wewe alikuwa na kuchagua kama ni kwa ajili ya
hii sprite au kwa ajili ya wote sprites.
Naam, kila sprites ni wazi njia ya kusema kimataifa.
Yeah?
Ah, mzuri swali.
>> Hivyo kukumbuka kwamba katika toleo sana kwanza ya maadili wangu, wakati mimi kimakosa
alitangaza na inavyoelezwa n katika mstari tisa -
Mimi amekiri ni kama variable na mimi akampa thamani na
operator zoezi -
hii alinipa makosa mawili.
Moja, ukweli kwamba n ilikuwa si kutumika, na wawili, kuwa katika mstari wa 11
ni tu si alitangaza.
Hivyo moja ya kwanza mimi si anuani ya wakati huo.
Ni kosa si madhubuti ya kutangaza kutofautiana lakini si matumizi yake.
Lakini moja ya mambo tumefanya katika Appliance CS50, kwa makusudi,
pedagogically, ni tumekuwa cranked up matarajio ya mkusanyaji kufanya
uhakika kwamba wewe ni kufanya mambo si tu usahihi lakini kwa kweli kwa usahihi.
>> Kwa sababu kama wewe ni kutangaza variable kama n na kamwe kutumia, au kutumia
usahihi, basi kile ni kufanya ni huko?
Ni kweli mtumishi hakuna kusudi.
Na ni rahisi sana baada ya muda, kama wewe wala configure kompyuta yako mwenyewe katika
njia hii, ili tu kuwa na kanuni ambayo ina kidogo mabaki hapa, mabaki huko.
Na kisha baada ya miezi wewe kuangalia nyuma na wewe ni kama, kwa nini ni line hii ya
kanuni ya huko?
Na kama hakuna sababu nzuri, ni haina faida wewe au wenzako
chini ya barabara kuwa na mashaka juu ya basi.
>> Kama kando, ambapo ni kwamba kuja kutoka?
Naam, kukumbuka kwamba kila wakati sisi kukusanya mpango, kila ya mambo haya ni
yanachapishwa.
Hivyo tutaweza kuja nyuma hii.
Lakini tena, kufanya ni shirika kwamba automates mchakato wa kuandaa na
mbio mkusanyaji halisi kuitwa Clang.
Jambo hili, tutaweza hatimaye kuona, ana kufanya na debugging na maalum
programu inayoitwa debugger.
Hii ina nini na optimizing kanuni - zaidi juu ya kwamba katika siku zijazo.
Std = C99 -
hii ina maana kutumia toleo la 1999 ya C C. imekuwa karibu hata zaidi ya
kwamba, lakini alifanya baadhi nice mabadiliko 10 pamoja na miaka iliyopita.
>> Na hapa ndio husika.
Tunasema kufanya chochote ambacho awali ingekuwa onyo
kosa kuzuia mwanafunzi kutoka kuandaa.
Na ukuta njia kufanya hivyo kwa nzima rundo la vitu, si
tu kuhusiana na vigezo.
Na kisha basi mimi kitabu kwa mwisho wa mstari huu.
Na hii, pia, tutaweza hatimaye kuja nyuma.
Hii ni wazi jina la faili Mimi naandika.
Hii anakumbuka jina la faili Mimi outputting kama jina
ya mpango wangu runnable.
Hii lcs50-tu ina maana kutumia CS50 maktaba, na zeros yoyote na wale ambao
wafanyakazi aliandika na ulioandaliwa mapema mwaka huu, kuunganisha
yao katika mpango wangu.
>> Na mtu yeyote kujua nini-LM ni?
Ni maktaba math, ambayo ni pale tu hata kama wewe ni
si kufanya lolote math.
Ni tu moja kwa moja zinazotolewa kwetu na kufanya.
>> Vizuri, basi mimi kufanya moja nyingine mfano hapa kwa kufungua faili mpya.
Na napenda kuokoa hii moja kama string.c.
Ni zinageuka kuwa kama sisi majadiliano juu ya data aina ya leo, kuna hata zaidi
kinachoendelea chini ya Hood kuliko tumeona hivi sasa.
Hivyo basi mimi haraka kufanya mpango wa haraka.
Pamoja stdio.h.
Na mimi itabidi kuokoa.
Na unajua, basi mimi si kufanya huo makosa tena na tena.
Pamoja cs50.h.
Na napenda kwenda mbele sasa na kufanya kuu int (batili).
>> Na sasa mimi tu wanataka kufanya mpango kwamba anafanya hii - kutangaza kamba
kuitwa s na kupata kamba kutoka kwa mtumiaji.
Na napenda kufanya kidogo maelekezo hapa -
tafadhali nipe kamba - hivyo mtumiaji anajua nini cha kufanya.
Na kisha chini hapa chini hii, Nataka kufanya yafuatayo -
kwa int i anapata sifuri.
Tena, kompyuta wanasayansi kawaida kuanza kuhesabu saa sifuri, lakini tunaweza
kufanya kuwa moja kama kweli sisi alitaka.
Sasa mimi nina kwenda kufanya i ni chini kuliko urefu wa kamba ya s.
Hivyo strlen -
S-T-A-L-E-N -
tena, ni mafupi kwa sababu ni rahisi na aina, hata kama ni
kidogo fumbo.
>> Hii ni kazi tumekuwa si kutumika kabla lakini literally gani kwamba -
kurudi kwangu idadi hiyo inawakilisha urefu wa kamba
kwamba mtumiaji typed.
Kama wao typed katika hello, ingekuwa kurudi tano kwa sababu kuna tano
barua katika hello.
Basi, juu ya kila iteration ya hii kitanzi, i pamoja plus.
Hivyo tena, kiwango kujenga hata kama wewe si kabisa pia starehe au
ukoo na ni bado.
>> Lakini sasa juu ya kila iteration ya kitanzi hii, taarifa ya nini mimi nina kwenda kufanya.
Nataka kwenda mbele na magazeti nje tabia moja -
hivyo% c backslash n juu ya mstari mpya.
Na kisha, unajua nini nataka kufanya?
Chochote neno ni kwamba mtumiaji aina katika, kama hello, nataka magazeti
H-E-L-L-O, tabia moja kwa kila mstari.
Kwa maneno mengine, nataka kupata saa mtu binafsi wahusika katika kamba,
ambapo hadi sasa ina kamba tu imekuwa mlolongo wa wahusika.
>> Na zinageuka siwezi kufanya s, bracket, i, karibu bracket, karibu
mabano, semicolon.
Na mimi kufanya jambo moja zaidi.
Ni katika faili iitwayo string.h strlen kwamba ni kutangazwa.
Hivyo kama nataka kutumia kwamba kazi, Mimi haja ya kuwaambia mkusanyaji,
wanatarajia kuitumia.
Sasa napenda kwenda mbele na kufanya programu inayoitwa kamba.
Dot, kufyeka, kamba.
>> Tafadhali nipe kamba.
Mimi itabidi kwenda mbele na aina yake.
Hello, katika mechi zote, kuingia.
Na sasa nimepata taarifa zilizochapishwa hii tabia moja baada ya nyingine.
Hivyo undani mpya hapa ni kwamba kamba, mwisho wa siku, unaweza kuwa
kupatikana kwa njia ya mtu binafsi yake wahusika kwa kuanzisha mraba
bracket nukuu.
Na kwamba kwa sababu kamba chini ya Hood ni kweli mlolongo wa
wahusika.
Lakini nini kuhusu wao ni nadhifu katika RAM ya kompyuta yako -
Mac, PC, chochote ni - wao ni halisi nyuma kwa nyuma kwa nyuma -
H-E-L-L-O -
saa binafsi, karibu ka katika kumbukumbu.
>> Hivyo kama unataka kupata saa vile nane Byte, ambayo katika kitanzi hii itakuwa
bracket sifuri, bracket moja, bracket mbili, bracket tatu, bracket nne -
hiyo ni sifuri indexed hadi tano -
kwamba magazeti nje ya H-E-L-L-O kwenye mstari wake mwenyewe.
>> Sasa, kama kichocheo, napenda kuonyesha aina ya mambo itabidi hatimaye kuwa
uwezo wa kuelewa, angalau kwa karibu baadhi ya kuangalia.
Kwa moja, nini sisi ni pamoja na katika leo mifano, kama Ningependa, ni kweli
moja ya jailbreaks sana kwanza kwa iPhone.
Jailbreaking ina maana ngozi simu hivyo unaweza kweli kutumia kwenye
mbalimbali carrier au kufunga programu yako mwenyewe.
Na wewe utakuwa taarifa hii inaonekana kabisa fumbo, uwezekano mkubwa.
Lakini tuangalie hii.
iPhone ilikuwa inaonekana kupasuka na kwa kitanzi, hali kama, mwingine
hali, rundo la kazi tumekuwa si kuonekana.
>> Na tena, utakuwa si wakati mtazamo wa kwanza pengine
kuelewa jinsi hii ni kazi.
Lakini kila kitu kwamba sisi aina ya kuchukua kwa nafasi katika maisha yetu ya kisasa
kweli huelekea kupunguza hata kwa baadhi ya misingi hizi tumekuwa
kuangalia.
Hebu kwenda mbele na kufungua moja nyingine ya mpango, holloway.c.
Hivyo hii, pia, ni jambo lazima si kweli kujua.
Hata hakuna hata mmoja wa wafanyakazi au ningeweza pengine takwimu hii nje kwa kuangalia
ni kwa sababu hii ilikuwa kanuni ya mtu kwamba iliwasilishwa kwa nini
kihistoria inayojulikana kama C obfuscated mashindano, ambapo wewe kuandika mpango
kwamba inaandaa na anaendesha lakini ni hivyo damn cryptic hakuna binadamu wanaweza kuelewa kile
ni kwenda kufanya mpaka wao kweli kukimbia.
>> Hivyo kweli, kama ukiangalia katika hii kanuni, naona kubadili.
Mimi naona kuu.
Mimi naona haya mabano mraba ikimaanisha baadhi ya aina ya safu.
Je, mtu yeyote unataka nadhani nini mpango huu kwa kweli
gani kama mimi kukimbia Holloway?
Ndiyo.
OK.
Vizuri.
Hivyo tu wafanyakazi na siwezi kufikiri nje ya mambo haya kufanya.
>> Na sasa Mwisho, napenda kwenda mbele na kufungua nyingine moja mpango.
Hii moja -
tena, tutaweza kufanya kanuni chanzo inapatikana online - hii moja tu
aina ya pretty kuangalia.
Wote walifanya ni hit nafasi bar kidogo kabisa.
Lakini hii ni halisi ya kanuni.
Hivyo kama unadhani kwamba pretty, kama sisi kweli kuendesha hii ifikapo haraka,
hatimaye utaona jinsi sisi ili kufanya mambo kama haya.
>> Hivyo tutaweza kuondoka wewe kumbuka kwamba na kuona juu ya Jumatano.
>> [Halisi kucheza]
>> SPIKA 2: Katika CS50 ijayo, TFS hatua ya uasi.
>> SPIKA 3: Kuna yeye ni.
Kupata naye!
>> [Halisi kucheza]