[Music kucheza] JASON HIRSCHHORN: sawa, kila mtu. Karibu katika Sehemu ya. Hii ni CS50, yetu sana kwanza super sehemu. Kama mjuavyo, wiki ijayo sehemu ya kawaida itaanza, lakini wiki hii tuko pamoja. Kuna mwenyewe. Jina langu ni Jason. Mimi nina mhadhiri katika Sayansi ya Kompyuta. Tuna Andi, ambaye ni kichwa TA wa CS50. Na Scaz, Profesa Brian Scassellati, yeye ni profesa katika Sayansi ya Kompyuta. Sisi ni vichwa CS50 katika Yale. Daima unaweza email sisi heads@cs50.yale.edu. Tutakuwa katika mihadhara. Tutaweza kuwa katika masaa ya ofisi. Kama kuna milele chochote tunaweza kufanya kwa ajili yenu, kitu chochote unahitaji, kujisikia huru na kufikia nje kwa sisi. Kwa hiyo kile ni sisi kwenda kufanya leo? Au kabla ya hapo, nini kuja juu wiki hii? Hivyo masaa ya ofisi ni Jumatatu, Jumanne, Jumatano, na Alhamisi, 8:00-11:00. Kuna ratiba kwenye tovuti. Sehemu, kama nilivyoeleza, ni kuanzia wiki ijayo. Na wewe utakuwa kujua nini wiki hii kuweka wakati sehemu yako ni, siku ni nini, na ambao TA yako ni. Tatizo Set 1 ni kutokana katika Alhamisi saa saa sita mchana, Ijumaa saa sita mchana na siku marehemu. Ndiyo, una siku tisa marehemu. Na kuna tatizo seti tisa. Na inaweza tu kutumia moja Mwishoni mwa siku kwa tatizo seti. Ndiyo, katika matokeo, kila tatizo seti ni kutokana Ijumaa saa sita mchana. Hayo ni yote. Yote maelezo ni juu ya mtaala. Kila Ijumaa, tuna chakula cha mchana. Tunapenda kufanya hili kubwa Bila shaka kujisikia kidogo kidogo. Hivyo wewe ni kuwakaribisha kwa RSVP. Bure chakula cha mchana na wenzake wanafunzi wenzao na wafanyakazi. cs50.yale.edu/rsvp. Mambo yote haya kwamba Nina kwenye screen, na zaidi, unaweza kupata cs50.yale.edu au cs50.harvard.edu, kama kwenda kwa Harvard na ni kuangalia hii online. Pia kwenye tovuti hizo, kuna tani ya rasilimali kwa ajili yenu. Kila hotuba si tu ina video ya hotuba, lakini pia inabainisha. Kuna mtu itakuwa kuangalia hotuba na kuchukua maelezo kwa ajili yenu. Hivyo unaweza kulipa tu kipaumbele wakati wa mihadhara, au unaweza kutumia maelezo yao / yetu inabainisha ili kuongeza maelezo yako mwenyewe. Kuna slides online. Chanzo code-- kila kitu Daudi huenda juu katika hotuba, au Scaz huenda juu ya hotuba, kwamba chanzo code inapatikana online pia, kama kama mimi, alieleza video. Sehemu, vivyo hivyo, wote watakuwa zingine. Wote wa slides wale itakuwa inapatikana. Yote hayo kificho mapenzi itakuwa inapatikana kwa wewe. Kuna kaptula kwenye tovuti ambapo Wanachama CS50 wafanyakazi kutumia tano hadi 10 Dakika kwenda kwa mada kwa ajili yenu. Baadhi ya wale wameweza tayari yaliyojitokeza katika seti tatizo. Masaa ya ofisi, kama nilivyoeleza, Jumatatu kupitia Alhamisi, 8:00-11:00. CS50 Utafiti ni rasilimali ya ajabu. Kuna matatizo mazoezi, slides sampuli, mende inayojulikana kwamba wanafunzi kama kukimbia ndani, kwa kimsingi kila mada sisi itafikia katika kozi hii. Na hatimaye, kwenye slide huu angalau, Reference50 ambayo anatoa taarifa juu ya yote ya kazi C unaweza milele matumaini uwezekano kutumia na wengi, wengi zaidi. Tena, kwamba dot dot dot kwa Chini ya screen ni kuonyesha kwamba huko hata rasilimali zaidi juu ya tovuti hizo mbili: cs50.yale.edu, cs50.harvard.edu. Hivyo, nini tunafanya leo? Naam, kwanza mimi nina kwenda kutoa ukiangalia rasilimali. Tayari alifanya hivyo moja. Tutazame. Sasa, tunakwenda kwenda juu aina ya data na waendeshaji katika C. Kisha Andi kuja hapa na kwenda juu maktaba katika C, Printf (), kazi na ambayo tayari ukoo au haraka kuwa sana ukoo. Na wewe utakuwa pia kwenda juu conditionals na mizunguko. Na kisha hatimaye, Scaz atakayevuka CS50 ID. Kama si njiwa katika Tayari katika Tatizo Set 1, kama vile jinsi ya kutumia amri ya wastaafu na manufaa na kisha kukupa baadhi demos na mazoezi ya coding katika CS50 ID. Kabla ya mimi kuruka katika jambo hili yaliyomo upande huu, haina mtu yeyote una maswali yoyote hadi sasa? Kubwa. SAWA. Kubadilisha gia. [KUBADILISHA GEARS] Hiyo ilikuwa ni mimi kuhama gia katika gari mwongozo. Hivyo aina ya data katika C, huwezi kuwa na x kutofautiana na kuwa ni kuwa kwenye mstari 10, integer, labda namba 1, kwenye mstari 20, alisema idadi 10.5, na mistari kisha wanandoa baadaye kamba, I love CS50. Katika C, vigezo inaweza tu kuwa jambo moja, na jambo moja tu. Na hivyo kuwa na kuwapa aina. Na juu ya bodi hii, sisi kuwa na orodha ya aina. Kuna chars, ambayo kusimama kwa wahusika. Hivyo hiyo ni moja barua A, B, C, D. Hiyo inaweza pia kuwa nafasi, au kwamba inaweza pia kuwa mpya mstari tabia. Kuna integers, ambayo ni haki idadi, numbers-- yote au integers rather-- lakini hakuna decimals. Kwa decimals, tuna yaliyo idadi uhakika. Yaliyo idadi hatua ni idadi na decimals. Kisha kuna anatamani, ambayo ni integers kimsingi tena. Utagundua kuwa kwa muda mrefu ni 8 wakati int ni 4. Mimi itabidi kupata kwamba katika pili. Hii ni kwa sababu anatamani wanaweza kuhifadhi hata integers zaidi ya int wanaweza kuhifadhi. Double ni kuelea kwa muda mrefu. Na hatimaye, tuna kamba, ambayo ni aina kwa kuwa pengine kutumika kabla. Kama ni pamoja na alama # includeCS50.h katika chanzo faili yako, basi unaweza kutumia aina kamba. Siyo kweli kujengwa katika C. Kuna michache ya aina nyingine pia. Lakini hawa ndio kuu na ambayo utatumia na kukutana. C kama, tena nilivyoeleza, kila kutofautiana ni inaweza tu kuwa aina moja na aina moja tu. Hii ni kwa sababu C ni statically Lugha typed, kinyume kwa lugha dynamically typed ambapo kama wewe kuunda kutofautiana unaweza kubadilisha kilichohifadhiwa katika kama wewe kwenda juu katika mpango wako. Zaidi ya hapa upande wa kulia upande, nina ukubwa tofauti ya aina hii ya data katika ka. Hivyo tabia ni 1 Byte. Hiyo ni 8 bits. Na hiyo ina maana kwa sababu 8 bits kuna sekunde 0 na 1s nane. Tuliona demos wale walio katika kwanza wiki na kwamba balbu mapacha. Na bits 8 au 1 Byte, tunaweza kuwakilisha idadi 0-255. Kulia. Kama 8 bits wote ni 0 hiyo ni 0. Kama kwanza kidogo ni 1, hiyo ni idadi moja, na kadhalika, njia yote hadi 255. Na hii ndiyo maana kwa wahusika unaweza na kimsingi hadi 255 kati yao, lakini hiyo ni mengi ili kufidia zote wahusika tunahitaji kutumia. Kwa integers, unaweza 0 na basi una 2-32 bala 1. Hayo ni chaguzi ngapi una kwa integers. Kwa muda mrefu, una 0 kwa 2-64 bala 1. Hivyo kuwa wengi, wengi, chaguzi zaidi kwa anatamani. Masharti, hiyo ni swali alama kwa sababu hiyo ni cliffhanger kwa baadaye. Naam. Mimi nilikuwa naona kila mtu ni makali ya kiti yao, kama nini kwamba alama swali? Ni cliffhanger. Sisi hatimaye itafikia ukubwa wa masharti na majadiliano zaidi juu ya masharti. Kwa sababu kamba ni kweli moja ya magurudumu mafunzo sisi kuweka juu katika hii Bila shaka mwanzoni na kisha kuchukua mbali baadaye juu, kwa sababu masharti katika C ni kweli kuyatumia kwa arrays tabia. Lakini tena, hiyo ni cliffhanger kwa baadaye. Kabla ya kuendelea na maswali yoyote, maoni, wasiwasi juu ya slide hili? SAWA. Mimi lazima explainer ajabu. Pia wakati wewe ni programu, wewe ni kwenda kutumia waendeshaji haya. Ishara kweli rahisi kwamba wanaweza kufanya rahisi shughuli, na ambayo wewe pengine tayari sana ukoo. Kwa mfano, upande wa kulia upande, tunaona kuongeza. Kuongeza, wewe tu kufanya ishara Plus. Na hivyo unaweza kuwa mbili vigezo x na y. Unaweza kufanya x + y katika kanuni yako. Labda unataka to-- kusema kuwa namba 7 na 3, unataka kuhifadhi kwamba katika variable kuitwa jumla. Unaweza kufanya int kwa ajili ya aina, nafasi jumla, jina la kutofautiana, = 7 + 3; Ingekuwa kwamba duka kwa jumla nini? Mtu yeyote? Kama mimi alikuwa katika kiasi = 7 + 3. Kitu gani kuhifadhiwa kwa jumla? Unaweza tu kupiga kelele nje. Watazamaji: 10. JASON HIRSCHHORN: 10! Hiyo ni kweli kabisa. Je kuhusu kwa jumla = 7-3, I just kutumia ishara dash. Nini kinaendelea na kuhifadhiwa? Watazamaji: 4. JASON HIRSCHHORN: 4. Jumla pengine ni jina sahihi kwa kwamba kutofautiana, lakini 4 itakuwa kuhifadhiwa. Kuzidisha katika C, kutumia kidogo Star tabia, huna matumizi x. Kugawanya, kutumia Mbele Kufyeka si mgawanyiko ishara. Na kwa modulo, kutumia Asilimia ishara. Hivyo hebu sema Nataka kuona int z = 7% 3, gani kuhifadhiwa katika z? Hivyo, hiyo ni kimsingi kuuliza ni nini modulo nini? Je, mtu yeyote kujua nini modulo gani? Naam. y 4. SPIKA 1: Ni salio. JASON HIRSCHHORN: Ni salio wakati kugawanya. Hivyo 7 kugawanywa na 3 ni 2 salio 1. Hivyo 1 itakuwa kuhifadhiwa. Ulifanya kutoa, lakini hiyo ni jinsi kazi. Hiyo ni nini modulo operator gani. Inachukua idadi mgawanyiko hivyo kwa idadi ya mwingine na mara akarudi kwako salio. Hivyo tena, 7% 3 anatoa 1, kwa sababu 7 kugawanywa na 3 ni 2 salio 1, na anarudi salio. Je kuhusu hebu kwenda nyuma juu hatua moja kwa kuwa mgawanyo ishara. Kama mimi 7 / kugawanywa na 3 anafanya mtu yeyote kujua nini kwamba atarudi? SPIKA 2: 2. JASON HIRSCHHORN: Kwa nini 2 na si 2.333? SPIKA 2: Nadhani kupunguzwa mbali baada ya idadi nzima. JASON HIRSCHHORN: Hivyo kwamba ni kweli kabisa. Katika C, mkifanya mgawanyo wa integers mbili 7 kugawanywa na 3, anapata jibu ambalo katika kesi hii 2.3333 milele na anaona kuwa uhakika decimal na chops kila kitu mbali baada alisema na ni haki anarudi wewe 2. Hivyo kama mimi 8 kugawanywa na 3. Kwamba kweli, tunajua kwamba kurudi 2.666, lakini chops kila kitu mbali katika alisema, truncates hayo yote, na tu anarudi wewe 2. Hivyo 6 kugawanywa na 3, 7 kugawanywa na 3, 8 kugawanywa na 3, wote ni kwenda na kurudi kwako 2. Je, mtu yeyote kujua, au kuwa na nadhani, kama jinsi mimi naweza kweli kupata jibu kamili kama nataka kuwa alisema? Naam. Endelea. SPIKA 3: Matumizi ya kuelea? JASON HIRSCHHORN: Ni nini maana? SPIKA 3: Kwa sababu umesema kuelea ni kwa ajili ya namba [inaudible] JASON HIRSCHHORN: Haki. Hivyo, kwamba ni kweli kabisa. 7 ni integer. Lakini kama nilitaka kugeuka kuwa ndani ya floating kumweka idadi, Mimi ingekuwa kuhifadhi kwamba kama 7.0 kwa sababu kompyuta ni kweli stupid-- tuliona kuwa pamoja PB na J example-- itakuwa tu kufanya hasa nini kuwaambia yake. Hivyo kama wewe kuandika 7, ni wanadhani kuwa ni integer. Kama wewe kuandika 7.0, hata kama sisi kujua mambo hayo ni sawa, inayotibu kwamba kama hatua yaliyo idadi. Hivyo kama alivyofanya 7.0 kugawanywa na 3, au kugawanywa na 3.0, ni kusema, sawa, sasa sisi ni kushughulika na ikifungwa. Nitarudi kwenu 2.333333 milele. Lakini si kweli daima, kwa sababu kama tuliona pia katika hotuba, yaliyo namba hizi hatua si hasa sahihi. Hivyo kama wewe kufanya unataka kuwa alisema, au sehemu ya kwamba alisema, basi una use-- mmoja wao ina kuwa hatua yaliyo idadi na kompyuta ina kuelewa kwamba hii ni hatua yaliyo uko kushughulika na, si integer. Maswali yoyote juu ya meza kwamba juu ya upande wa kulia, hadi sasa? Au upande wako wa kushoto mkono, yako kushoto, upande wako wa kushoto mkono. Naam. SPIKA 4: Haki. Kwa maana kama kama kawaida integers, wewe ungekuwa write-- ingekuwa una kuandika kuelea? JASON HIRSCHHORN: Yeah hivyo. Naam, kama unataka kujenga kutofautiana hiyo ni kuelea, unahitaji kusema kuelea z sawa na kitu. SPIKA 4: Sawa. JASON HIRSCHHORN: Lakini kama nilitaka kufanya 7 kugawanywa na 3 na kupata kuwa alisema, Napenda kufanya kuelea z = 7.0 / 3.0 na; na kwamba angenipa hatua floating idadi. SPIKA 4: Sawa. JASON HIRSCHHORN: Kama mimi kitu kama int z = 7 / na 3, kwamba angenipa integer, kwa sababu wale ni integers wote. Je, hiyo mantiki? SPIKA 4: Ndiyo. JASON HIRSCHHORN: Sawa. Kubwa. Maswali mengine yoyote kuhusu meza hiyo? Kweli? Mimi hivyo msisimko. SAWA. Hivyo baadhi ya mambo mengine utatumia, mara nyingi katika hali au tanzi, ni aina hii ya operators-- aina hii ya maneno Boolean. Na kama sisi kujifunza, == ni nini kutumia ili kuangalia kama mambo mawili ni sawa. Hivyo hapa mimi nina kuangalia kama x == y, hebu tena kudhani kuwa x ni 7 na y ni 3. Hivyo kama mimi aliandika 7 == 3, nini ingekuwa kwamba kurudi kwangu? Ni kwamba kweli au uongo? Watazamaji: Si kweli. JASON HIRSCHHORN: Sawa. Najisikia kama kila mtu anaweza kupata hii moja. Hivyo kila mtu, gani kwamba kurudi? Watazamaji: Si kweli. JASON HIRSCHHORN: Si kweli. Kubwa. 7 haina sawa 3. Hivyo 7 == 3 atarudi uongo. Huwezi kuwa na ishara si sawa, hivyo kama mimi checked 7! = 3, gani kwamba kurudi? Watazamaji: Kweli. JASON HIRSCHHORN: Kweli. Bora. Kuna mtu alikuwa mkazo sana katika nyuma na kufahamu hilo. Kisha una chini ya operator, chini ya au sawa na operator, mkubwa kuliko operator, mkubwa kuliko au sawa na operator. Hivyo moja zaidi sanity hundi. Kama mimi alikuwa 7, ni mkubwa kuliko au sawa na 3. Nini kwamba atarudi? Watazamaji: Kweli. JASON HIRSCHHORN: Kweli. Ndiyo. Hiyo nyuma chumba, nyuma upande ya chumba, ajabu. Unaweza kuchanganya hizi Maneno kama wewe kama, kama vile, kwa mantiki NA ambayo ni && Au mantiki AU ambayo ni || ||. Na hivyo sasa unaweza mtihani wawili mambo together-- Ni kwamba funny? Kwa nini ni kwamba funny? Hivyo kama nilitaka, naweza kusema ni 7 zaidi ya 3 NA 2 ni chini ya 4? Naam, kama 7 ni mkubwa ya 3, hiyo ni kweli. 2 ni chini ya 4, hiyo ni kweli. Hivyo jambo hili zima atarudi kweli. Kama mimi kupimwa 7 ni mkubwa kuliko 3 and-- Mimi kuokota tu idadi random here-- 4 ni chini ya 2, vizuri, hiyo ni ya uongo. Hivyo kweli na uongo kufanya uongo. Na unaweza kwenda juu na kuchanganya kama hali nyingi pamoja kama Ningependa. Je, mtu yeyote una maswali yoyote, maoni, wasiwasi hadi sasa? Na mimi kuona baadhi yenu kuchukua picha yangu katika screen, ambayo Nashukuru. Hopefully, siyo SnapChat. Hopefully, ni kwa maelezo yako. Lakini yote haya ni kwenda kwa kuwa inapatikana online. Hivyo huna kwa kuchukua picha ya hii. Kama nilivyoeleza, kila kitu itakuwa inapatikana online kwa ajili yenu. SAWA. Mimi nina kuhusu kupata offstage, hivyo haina mtu yeyote wanataka kusema chochote kabla ya kinachotokea? Maswali? [INTERPOSING SAUTI] JASON HIRSCHHORN: Oh, kuacha. Nyie ni nzuri pia. SAWA. Mimi nina kwenda kumtambulisha nje. Hebu kwenda. ANDI PENG: Sisi ni kwenda kufanya Awkward mabadiliko mic sasa. JASON HIRSCHHORN: Mimi ni kwenda kuchukua hii mbali. ANDI PENG: Kufahamu msaada, nyie. Unanisikia? Ni kwamba nzuri? Kamilifu. Nzuri. Napenda tu Tuck kwamba katika. SAWA. Kwa hiyo, mimi nina kuhusu kufanya kama kampuni kubwa Maelezo dampo juu ya nyie hivi sasa. Na hakuna wasiwasi wowote kama wewe ni si zifuatazo kila mstari kidogo ya kile Mimi nina kuhusu kuonyesha. Kama Jason alisema, kila kitu ni kabisa online. Tu sisi ni kwenda kujaribu kuanzisha kila mtu kwa dhana kufunikwa katika baadhi ya slides hizi. Hivyo tu kufuata pamoja. Hakuna wasiwasi kama huna kuelewa kila kitu; Hata hivyo, ikiwa katika hatua yoyote kujisikia waliopotea, kuongeza yako mkono, tutaweza kuacha, hakuna wasiwasi. Baridi. Hivyo nadhani kitu ambacho Daudi ana Tayari aina ya waliotajwa katika hotuba Yasoni ina aina ya alluded kwa leo ni nini maktaba ni. Hivyo katika programu, tuna mambo haya kuitwa maktaba. Ambapo, kimsingi, kila wao ni tu kuweka ni ya kazi, kwamba ni kimsingi tu kificho kwamba tayari kuandikwa na mtu mwingine kwamba sisi wote kutumia ndani ya programu yetu. Hivyo ni jinsi gani ya kawaida kazi maktaba, sawa? Wewe kuingia mlango maktaba. Una haya yote vitabu unaweza kuvuta nje na unaweza kupata habari ndani ya vitabu hivyo. Same kitu katika programu. Una maktaba ambayo tayari yameandikwa na watu wengine. Na kwa njia hiyo unaweza, kama programu au mwanafunzi, anaweza kupata kwamba maktaba Ni kwa njia ya alama # Pamoja. Kwa mfano, katika C sisi na tatu C-- zaidi kawaida kutumika tatu C kiwango cha libraries-- maktaba pembejeo / pato, kamba maktaba, na maktaba math. Hivyo ndani ya lako la kwanza Tatizo wanandoa seti, wale itakuwa tatu kuwa wewe ni kimsingi kutumia. Hivyo kama Daudi tayari alieleza katika hotuba, kiwango I / O maktaba, au kiwango cha pembejeo / pato maktaba gani hasa kwamba. Ni utapata, katika kanuni yako, kwa pembejeo chochote kutoka kwa mtumiaji na pato kwamba screen, kimsingi uchapishaji kwa screen. Na hivyo wakati wowote kutumia kazi yoyote, Kwa mfano kazi printf () ambayo tunakwenda kwenda juu slide ijayo, kuhakikisha ni pamoja kiwango I / O maktaba au mwingine wewe si kwenda kwa na uwezo wa kutumia printf () kazi. Kwa sababu wewe, kama programu kamwe kweli aliandika kwamba kazi, unatumia mtu tu kificho mwingine ndani ya kanuni yako mwenyewe. Je, hiyo mantiki kila mtu? Baridi. Na kisha sisi kimsingi kupata kwenye maktaba string.h na math.h maktaba, h tu kunaashiria maktaba, maktaba nyingine kwamba utasikia hatimaye kuwa kutumia ndani ya kanuni yako. Hata hivyo, kwa madhumuni ya maktaba hii, sisi pia have-- ya class-- hii pia tuna kile kinachoitwa maktaba CS50, cs50.h, ambapo sisi, kwa perusal yako tumemuumba wengi muhimu na muhimu kazi. Ili programu wewe kama Unaweza kumpuuza mbali nini tumekuwa tayari imeandikwa ili kazi hii ya inapatikana na wewe kwa ajili ya matumizi yako. Mimi itakuwa kufunika michache ya kazi ya kawaida kutumika, lakini tunajua kwamba hizi ni zote googleable online. Kujisikia huru, kuvuta up maktaba CS50 na basi una kazi zote huko. Naam. SPIKA 5: Hivyo kama ungekuwa si kutumia programu kwamba ni zinazotolewa kwetu na darasa, je, hiyo maana tunatarajia kuwa na kushusha na kupata kichwa hii faili wenyewe na kuwaambia kompyuta ambapo ni? ANDI PENG: Mkuu swali. Hasa. Hivyo ni kama kama wewe si kimwili sasa katika maktaba, hakuna njia kwa ajili ya wewe kweli kwenda na kupata huduma hiyo. Hivyo kitu kimoja na Programu katika C, wewe una kuhakikisha kwamba unatumia yetu appliance kwa sababu maktaba tayari wamekuwa kuingizwa ndani yake. Na kisha wakati wewe alama # Pamoja, maktaba huko. Naam. Nzuri swali. Kila mtu mwema? Baridi. Sawa. Hivyo sisi ni kwenda kuikumba, kimsingi, ni nini kazi ya kwanza kwamba sisi kama programmers ni itakuwa ni ya kutumia ndani ya kificho yetu. Hii inaitwa printf () kazi. Kwa hiyo, printf () kazi, kama nimekuwa tayari alisema katika slide jana, ni pamoja na katika kiwango I / O, kiwango cha pembejeo / pato, maktaba. Ili kuhakikisha chochote wewe ni using-- loo, napenda kunyakua laser pointer wakati wowote unatumia printf () kazi, una ni pamoja na kiwango I / O maktaba au mwingine, wakati wewe kukusanya, wewe ni kwenda kupata kosa kwa sababu kompyuta itakuwa kama, loo Sijui ambapo printf () ni, wewe si kuniambia ambapo printf () ni. Naam printf () ni pamoja na katika kiwango I / O, hivyo wakati wewe kutumia printf (), kuhakikisha kuwa kwamba mstari juu kificho yako. Hivyo kwa mfano, printf () hapa ni kazi. All yake ni magazeti nje kitu ndani ya mabano kwa mtumiaji. Je, mtu yeyote kama kuchukua kumchoma nini mstari wa kanuni haki hapa ni kwenda magazeti nje? Hivyo, jibu ni kwenye screen. Mtu yeyote? VERDI: chini. ANDI PENG: Verdi, kwa nini sio wewe kwenda mbele na kusema kauli nzima? VERDI: Hello, jina langu ni Andi, na nina umri wa miaka 20. ANDI PENG: Ah, nzuri. Hivyo katika mstari huu tunakwenda magazeti nje, Hello, jina langu ni Andi, na nina umri wa miaka 20, ambayo kwa kweli ni kauli ya kweli. Syntax. Hivyo wanandoa wa masuala kisintaksia kwamba nyie unataka kuhakikisha wewe kujua. Quotes. Double quotes kuwaambia kompyuta kwamba kila kitu ndani ya ni kwenda kuwa kuchapishwa. Kila kitu ndani can kuwa tu hasa jinsi aina hiyo, isipokuwa kwa kawaida mwishoni, tunakwenda wanataka ni pamoja na hash-- loo sorry-- dash n. Hivyo dash n. Je, mtu yeyote wanataka kuchukua nadhani nini kwamba hana kwa kificho yetu? Naam. SPIKA 6: Unaweka kwenye mstari mpya. ANDI PENG: Hasa. Basi wote hii haina ni kuruhusu chochote kinachotokea baada ya hayo, baada ya kauli hii, kuchapishwa kwa mstari mpya. Hivyo kwamba wakati wewe ni kuandika yako kificho huna nasibu na mambo tacked juu ya mwisho kwamba hawataki. Kila kitu anapata vizuri kuchapishwa mstari mmoja na kisha sisi kuanza kwenye mstari yafuatayo. Je, mtu yeyote kukumbuka yale kwamba semicolon anafanya wakati sisi ni coding? Naam. SPIKA 7: Kauli. ANDI PENG: Sorry? SPIKA 7: Je kuishia tamko? ANDI PENG: Naam. Hivyo katika C, au programu yoyote lugha, semicolon inaashiria mwisho wa programu line. Hivyo kwa mfano, katika Kiingereza tunatumia kipindi kusema, loo hii ni mwisho hukumu. Katika programu, kitu kimoja, tuna semicolon kuashiria mwisho wa mstari. Mara nyingi, wakati uko kuanzia mpango, utasikia kutambua wewe kusahau kuongeza semicolon na kisha kujaribu kukimbia yako kanuni na haifanyi kazi. Na wewe ni kama, Ah, sijui kujua kwa nini, ni lazima kazi. Nafasi ni wewe pengine alisahau semicolon au mabano au kitu mahali fulani. Hivyo, hiyo ni muhimu kukumbuka. Baridi. Haki wote, show ya mikono, jinsi Watu wengi hapa na milele kuchukuliwa AP Sayansi ya Kompyuta au iliyowekwa katika Java kabla, hata milele? SAWA. Nzuri. Hiyo haitakuwa husika kisha, lakini katika Java, wewe na kitu kinachoitwa System.out.println ambayo haipo katika C. Hivyo katika C, wakati wowote unataka kuongeza katika vigezo ndani ya kitu chochote unataka magazeti nje, kuna syntax maalum tunakwenda kutumia. Hiyo inaitwa placeholding-- kimsingi sisi kuongeza placeholders katika sehemu ya integer au kutofautiana kwamba tunataka magazeti. Hivyo kama wewe guys unaweza kuona tumekuwa pamoja maktaba kichwa mpya faili hapa. Maktaba CS50. Na zilizomo ndani kwamba maktaba CS50 ni kazi ya kawaida tutaweza kutumia katika mwendo wetu aitwaye GetInt (). Je, mtu yeyote wanataka kuchukua kumchoma katika nini GetInt () huweza uwezekano kuwa kufanya. Watazamaji: [inaudible] ANDI PENG: Sorry. Hakuweza kusikia wewe. Maddie, mtu yeyote. Maddie: Oh, ni papo kwa wewe kwa integer. ANDI PENG: Hasa. Hivyo kazi hii, mwingine kazi hiyo ni tayari imeandikwa na mtu mwingine tuweze waomba sasa. Wote ni ni kunasababisha, user, pembejeo chochote unataka kama kanuni ni mbio na ni maduka whatever-- katika kesi hii tuko GetInt () - ing, hivyo kwamba maana tuko kupata integer. Na tunakwenda kuhifadhi kwamba katika integer nyingine kwamba tumekuwa tu alifanya aitwaye umri. Hiyo mantiki ya watu wote? Baridi. Hivyo sasa kwamba tumekuwa kuhifadhiwa integer hii, kwamba tumekuwa ilisababisha kutoka kwa mtumiaji, katika kutofautiana hii, tumekuwa umba ya aina int kuitwa umri, tunaweza kwenda mbele na mahali pa kwamba katika printf yetu () kazi. Hivyo syntax kawaida kwa printf () ni kwamba popote katika mwili yako halisi mstari unataka pamoja kwamba integer, kufanya ishara kwamba haki pale, asilimia ishara, na aina ya kutofautiana kwamba unataka. Hivyo katika umri huu kesi ni integer. Hivyo wewe ni kwenda ni pamoja na % i kwa sababu ni integer. Na kisha baada yako Kauli, wewe ni kwenda kufanya comma na jina la kutofautiana. Hivyo hapa, sisi ni kwenda magazeti nje, Hello, jina langu ni Andi, na nina umri wa miaka tupu. Hashta-- au, sorry--, umri na chochote mimi pembejeo. Hivyo kama ningekuwa pembejeo 20 kwa GetInt yangu () hapa, ingekuwa magazeti nje halisi kitu kimoja. Lakini, kama nilitaka pembejeo kitu kingine chochote, kama labda 40 au 45, basi ingekuwa kuona kwamba yalijitokeza ipasavyo katika kanuni. Hivyo hii ni mfano kitu ambayo Prints nje na inaonekana kwa wewe kama ni kitu kimoja, lakini chini ya kofia ya kompyuta kuna kweli mambo tofauti sana yanatokea. Baridi. Sawa. Basi nini kama tunataka vigezo mbalimbali? Rahisi sana. Kitu sawa. Sisi pia kuwa kazi mpya hapa kuitwa GetString (), pia ni pamoja na ndani ya maktaba CS50, kwamba wote ni gani ni kuchochea mtumiaji kwa kamba, ambayo ni tu seti ya wahusika, hivyo kama adhabu au kama jina. Hivyo katika kesi hii, tunataka kuwa wawili placeholders% s kwa kamba na% i kwa integer. Na tunakwenda kufuata kuwa na vigezo mbili sisi wanataka ni pamoja na, ili kwamba wao kuonekana katika hukumu. Hivyo kwa mfano, jina langu ni tupu, nataka jina huko, hivyo mimi nina kwenda kuwa jina la kwanza. Na kisha baada ya hapo, nataka umri, unataka kuwa na umri wa pili. Na hivyo kama nilitaka pembejeo, Habari, jina langu Andi, na nina umri wa miaka 20. Kama mimi inputted Andi na 20, halisi kitu kimoja ingekuwa magazeti; Hata hivyo, sasa sisi tumepewa mbili kuhifadhiwa vigezo ya jina kama vile int. Naam. SPIKA 8: Je, ni kuwa uwezo wa kukimbia kama wewe kimewashwa jina na umri mwishoni mwa hayo? ANDI PENG: Naam. Hilo ni swali zuri. Hivyo hadithi muda mfupi, hakuna. Kwa sababu jina na age-- nini aina ya kutofautiana ni jina? SPIKA 8: Kamba. ANDI PENG: Na nini aina ya kutofautiana ni umri? SPIKA 8: Integer. ANDI PENG: Hivyo hapa tuna placeholder kwa kamba na integer, sawa? Hivyo kama ungekuwa na kubadili haya, kompyuta si kwenda kujua. Ni kwenda kuangalia kwa kamba, na kama wewe kujaribu kuwapa int, itakuja kuwa kama kusubiri mimi nina kuchanganyikiwa, wewe aliniambia nitakuwa kuihusisha kumbukumbu kwa int. Na hapa hapa, wakati inatarajia integer na wewe kuwapa jina na kamba badala yake, ni pia kwenda kuwa na utata sana, si kukimbia hasa kwa njia unahitaji yake. Hivyo hapa, kuwataja na syntax ni muhimu sana kwa ajili ya kuendesha kificho. Kila mtu mwema? Naam. Maddie. Maddie: Hapa, najua tumekuwa inaonekana katika mifano katika darasa, ambapo wao kuomba kile ni umri wako, ni nini jina lako. Hapa, ingekuwa kwamba kuwa ni doesn't-- kama tulikuwa kuendesha kanuni hii, isingekuwa kuomba hivyo? Lakini wewe ungekuwa pembejeo tu namba mbili na basi itakuwa kukimbia kama hayo? ANDI PENG: Yeah, kwa uhakika. Hivyo kama alitaka kwa kuwa na kuonyesha, tafadhali kuingia umri wako, unaweza tu kuongeza printf () kazi kwamba anasema, Tafadhali kuingia umri wako, juu yake. Hilo ni swali zuri. Naam. SPIKA 9: Hivyo, ingekuwa tayari kuwa pamoja na katika GetInt () [inaudible]. ANDI PENG: Hapana, ni kweli si. Basi wote hii haina ni tu papo screen tupu kwa mtumiaji pembejeo kitu. Kama unataka, kama unataka na magazeti nje kitu ambacho anaelezea user kama, tafadhali nipe umri wako, basi ingekuwa printf () kwamba wewe mwenyewe. Kwa sababu kila mtu anatumia hii kazi kwa mambo mbalimbali, unaweza kuwa hifadhi ya umri, unaweza kuwa hifadhi ya mitaani, unaweza kuwa hifadhi ya namba za simu. Na hivyo ni kweli hadi guys wako matumizi binafsi kwa nini unataka kusema. Naam. SPIKA 10: Hivyo, tu kufafanua, ambapo je pembejeo jina na umri hivyo kwamba inaonyesha juu katika nafasi ya% s? ANDI PENG: Kama katika user? SPIKA 10: Ndiyo, kama jinsi gani mimi kufanya it-- wapi mimi kuweka Andi, na wapi mimi kuweka 20? ANDI PENG: Naam. Hivyo kama ungekuwa na kweli kuendesha kanuni hii, Mimi si kweli mbio kanuni, hii ni hapa sasa hivi. Kama ningekuwa na kukimbia kificho, napenda kukusanya kificho, kufanya file, kukimbia kificho, na kisha kuna ingekuwa tu kuwa nafasi mbili kwa ajili yangu na pembejeo yake. Naam. Nyie utaona wakati wewe kucheza karibu na kanuni mwenyewe. Haki zote tunakwenda hoja ndani ya sehemu ya pili ya kile tutaweza kuwa kufunika leo. Tunakwenda kwenda juu ya nini kauli masharti ni. Hivyo kama wewe guys kumbuka na kukumbuka kutoka hotuba, kauli masharti, zote wao ni watu kuweka ya maelekezo ya kompyuta katika ambayo kama hali fulani ni kweli, wewe kutekeleza kanuni ndani ya hali hiyo. Hivyo katika Scratch-- kimsingi mandhari kubwa kuanzia leo ni kwamba nyie tayari zote kuonekana mantiki nyuma ya kila kitu kwamba sisi ni kufunika. Na wote sisi ni kufanya ni kutafsiri kitu hiyo ilikuwa Intuitive sana katika Mwanzo, na kwa bidii coding ni ndani ya syntax tutaweza kutumia kwa ajili ya darasa ambayo ni C. Hivyo mantiki, kuzuia haya yote alikuwa ni kwamba kipande cha kanuni haki pale. Naam. SAWA. Sisi pia kupata katika kama ... kingine Kauli ambayo ni haki safu aliongeza ya utata kwa kauli kama ambapo kompyuta inachukua kuangalia hii na anaona, kama hali hii ni kweli, kufanya chochote ya ndani ya mabano haya mawili, else-- hivyo aina ya kama chaguo-msingi ikiwa haina kukidhi condition-- kufanya hivyo. Ni kama uma katika barabara. Kama ni mvua nje, mimi kuweka juu ya koti ya mvua, kingine chochote mwingine mimi si kuvaa koti mvua. Je, mantiki kwamba kufanya maana ya watu wote? Baridi. Sawa. Hivyo kama mfano ngumu ya huu kwamba tunataka kuona katika C ni kama mimi alitaka kujenga kutofautiana kuitwa kazi za nyumbani masaa. Na kama masaa ya kazi ya nyumbani ni chini miaka mitano, nasema Maisha ni kubwa. Ni ajabu. Hata hivyo, wanasema mapambano ni real-- ambayo ni nini sisi wote juu ya hii Jumatatu alasiri hadi Sayansi Hill ni pengine kufanya haki now-- Watazamaji: [kicheko] ANDI PENG: Wao njia ya sisi ingekuwa, asante kwa hilo. Njia tunataka Hardcode huu katika C ni if-- hebu kudhani tayari tuna kutofautiana wa aina int kuitwa masaa ya kazi ya nyumbani hapa hapa. Kama masaa ya kazi ya nyumbani ni chini ya tano printf (), Maisha ni kubwa. Kumbuka kuweka / n kwa sababu unataka mstari mpya baada. Mwingine magazeti, mapambano ni kweli. Je, kila mtu kuelewa jinsi Mimi zilianza kutoka kuzuia hii ndani ya hii ya kuzuia wa kanuni? Baridi. Sawa. Hivyo sasa tunakwenda tuangalie kauli Kama nyingi kabisa. Basi hebu kudhani Lengo la mpango huu Ilikuwa sisi kuchochea mtumiaji kwa daraja. Sisi haraka kwa kutumia GetInt () kwa daraja, na wao pembejeo thamani, na unataka kuonyesha ni aina gani ya daraja got. Hivyo kama ningekuwa na kubuni mpango, mimi maana kwa kawaida katika yote ya macho yetu, 90-100 ni A, 80-90 ni B, na kadhalika na kadhalika. Kuna ubaya gani huu kipande cha kificho kwamba siyo kufanya nini nataka kufanya. Naam. SPIKA 11: Wana mipaka ya chini, lakini hawana mipaka juu. ANDI PENG: Hasa. Je, kila mtu kusikia nini alisema? Kuna kwenda kuwa juu mipaka, lakini hakuna mipaka ya chini. Samahani, njia nyingine kote, mipaka ya chini, hakuna mipaka juu. Hivyo ungependa kuchukua kumchoma katika kusema nini itakuwa kuchapishwa kwenye hii screen kama ningekuwa kuendesha kanuni hii. SPIKA 11: kosa? ANDI PENG: kosa? Nadhani kubwa, si haki kabisa. Je, mtu yeyote kuwa na kumchoma mwingine? Naam, Haruni. AARON: Kama kuweka katika pana mkuu zaidi kuliko 90, ingekuwa kuonyesha kila darasa unayo. Ingekuwa kuonyesha got A, Je, unayo B, unayo C. ANDI PENG: Naam. Hiyo ni kweli kabisa. Hivyo, kwamba d kuwa ajabu. Hata hivyo, ni pande kipekee, nadhani. Kama ningekuwa na kukimbia kipande cha kanuni. Na kisha hebu sema tu, mimi inputted daraja la 95. Hivyo 95 ni sasa kuhifadhiwa katika the int aitwaye daraja. Na hivyo C ni lugha kwamba anaendesha juu juu hadi chini, hivyo ni kwenda daima kukimbia hadi chini. Hivyo ni kwenda kuja hapa, kusoma kama Daraja ni mkubwa kuliko au sawa na 90, printf () Je, unayo A. Mkuu, mimi 95, hiyo ni kubwa kuliko 90. Ni kwenda magazeti, I got A. Ni kwenda kwa kuangalia hii kama, ni kwenda kusema, vizuri 95 pia ni zaidi ya 80, ni kwenda magazeti wewe pia got got B alama ya kushangaa, na kadhalika na kadhalika nje. Hivyo kama sisi wote kuona, hii ni mdudu kawaida ambayo yanaweza kutokea wakati tuko kuandika kanuni kwa kuangalia nje kwa. Mtu yeyote, maswali yoyote juu ya nini kwamba kilichojitokeza? Kubwa. SAWA. Hivyo ni jinsi gani sisi kurekebisha hili, ni wazi kuwa mantiki ijayo swali. Naam, tuna haya mazuri mambo kuitwa kama mwingine kama mwingine kama mwingine kauli. Hivyo unaweza kuona, kama alitaka kubadili tatizo hilo, wewe alitaka kufanya kila mmoja hali pande kipekee, ungependa kuongeza mwingine ... kama taarifa. Na hawa wa kozi hii kufikiri wao kama ladders, au kama vidato kwenye ladder-- unaweza kuongeza kama wengi wa hawa kama wewe wanataka kwa hali kama wengi kama unataka. Hivyo hapa, kama mimi inputted daraja kuwa 95. Kama daraja ni mkubwa kuliko 95, printf (), I got A. Mkuu. Ni kwenda kuona mwingine ... kama na ni kwenda kujua, Oh no, Mimi tayari kunyongwa kwanza kingine chochote. Mimi najua au if-- kwanza Najua kwamba Sina kuangalia yoyote ya hizi kwa sababu mmoja wao tayari kweli. Hivyo ni kwenda kukimbia kutoka juu kwenda chini. Mara tu moja kwanza ni kweli, basi itakuja ruka juu wengine wote ya kingine ... ikiwa. Je, hiyo mantiki? Hivyo, kwa njia hii una ngazi mbalimbali za kuangalia na kwa haraka kama mmoja wao ni wa uongo, wengine pia ni, wao si hata kuangalia. Baridi. Sawa. Hivyo hii ni mfano wa tofauti aina ya kauli masharti tunaona mara nyingi chini, lakini tutaona na matumizi yao. Na wao ni mara nyingi zaidi ufanisi kwa baadhi ya kesi. Hivyo tuna kile kinachoitwa kubadili kauli. Hivyo kabla ya sisi kufunikwa nini kingine Taarifa hiyo, ikiwa ... kingine taarifa. Hapa, tuna nini ni aitwaye kauli kubadili. Hivyo wakati sisi kutumia kufanya kubadili kauli ni muhimu? Hivyo katika taarifa kubadili, wewe Kwa kawaida, kawaida, kwa kweli wewe Unaweza tu pembejeo integers kwa yako kutofautiana kwamba wewe ni kuangalia. Hivyo kama nilitaka kuangalia kuona kama number-- fulani kwa mfano daraja, ikiwa nilipata 90. Nataka kuona kama hiyo ni A, B, au C. mimi naweza kuwa kesi hapa. Hata hivyo, kesi ina kwa kuwa mara kwa mara nyingine. Hivyo kwa mantiki hii, kubadili kauli Unaweza tu kuangalia kwa usawa wa namba mbili. Haina kuangalia kwa kitu kingine chochote. Hivyo hiyo ni kitu kuwa sana makini wa wakati unatumia hii. Hivyo hapa, kama nilitaka kuangalia kuona kama daraja wangu wa 90 ni sawa na 90 au 80 au 70 au 60, na kisha magazeti daraja inayolingana, Ningependa kuwa na uwezo wa kuandika kwamba katika taarifa yake ya kubadili. Hivyo ni kwenda kuja hapa, kuangalia ni integer hii ni sawa na mara kwa mara hii? Kama siyo, ni kwenda ruka. Je, ni sawa na mara kwa mara mbili, na kadhalika na kadhalika, mpaka hit msingi, kama hakuna hata mmoja wao ni sawa. Mara tu mmoja wao ni kuweka kuwa sawa, itakuja kufanya hivyo mstari wa kanuni na mapumziko. Ambayo ina maana itakuja kugonga kwamba kukimbia, kuvunja, na tu kabisa ruka hadi chini ya kanuni. Hivyo kwa mantiki kwamba aina ya kazi kama ikiwa mwingine kama mwingine kama taarifa. Hivyo hapa ni halisi mfano kwa nyie. Basi hebu kudhani kuwa nilitaka kujenga variable kuitwa mwaka imejengwa. Na mimi nataka kuchochea mtumiaji pembejeo mwaka huo shule zao ilianzishwa. Hivyo siwezi kujenga kauli kubadili hapa. Na hebu tu kusema, mimi pembejeo 1636. Kanuni hii hapa ni kwenda kuona kubadili mwaka imejengwa ambayo ni sawa na 1636. Ni kwenda kuona kesi 1636, loo hizo ni sawa, printf () Je, si wewe kuwa katika shule ya juu kwamba kaskazini? Kwa sababu sisi kudhani hawana kwenda hapa ikiwa wao kwenda Harvard, kuvunja na ruka hadi mwisho. Kama ningekuwa na pembejeo 1701, ambayo Mimi kudhani sisi sote ingekuwa pembejeo, ingekuwa ruka kesi hiyo, kuja chini ya kesi mbili ambazo ni 1701, na magazeti Karibu Yale! Kuvunja, ruka hadi mwisho. Mwingine pengine ni kuchukua kozi hii online ambayo case-- kutisha kuwakaribisha kwa Yale-- ni kwenda kwenda chaguo-msingi magazeti, Habari Internet! Na kuvunja. Naam. SPIKA 12: Je, unaweza kutumia kingine badala ya chaguo-msingi huko? ANDI PENG: Hapana, kwa sababu njia ambayo kazi hii nzima kubadili ni kujengwa, syntax wewe haja ya kutumia ni kesi kesi ya msingi. Ni kama kama mwingine kama, hii moja ni kesi kesi ya msingi. Naam. SPIKA 13: Wewe labda tayari kusema hayo, lakini wanaweza una zaidi ya kesi mbili? ANDI PENG: Yeah, wewe naweza na kesi kama wengi kama unataka. Fikiria kama tu kama kubwa ya kuongeza. SPIKA 14: Kama kimewashwa 1701 na 1636, ni kweli haina kufanya Tofauti haki? Ni tu kwenda kuwa kuangalia kwa ajili yake. ANDI PENG: Hiyo ni mzuri swali. Na tutaweza kugusa juu ya huu baadaye, lakini tu kujua kwamba kubadili Kauli ni infinitely-- ni ufanisi zaidi kuliko yake na kama mwingine kama sababu kazi kutumia aina mbalimbali za kazi ambayo utapata, kwa kimsingi, tu kuruka moja kwa moja kwa kesi unahitaji kuwa katika. Naam. SPIKA 14: Moto. Shukrani. ANDI PENG: Yeah SPIKA 14: Na wewe hawakuweza kufanya kesi kama na mkuu kuliko mimi. ANDI PENG: Hapana Hivyo, kwamba ni nini kikwazo kuhusu kubadili kauli ni kwamba una kuwa na constants tu, integers tu. Naam. SAWA. Hivyo hii ni kitu ambacho guys kukutana mara nyingi chini ya, lakini mimi nilitaka iwasilishe katika kesi hiyo. Tunayo nini aitwaye operator ternary. Ambapo kimsingi, ni tu kama kama kauli ulioandaliwa katika mstari mmoja. Hapa, nitakwenda kwenye mstari unaofuata, ukurasa wa pili, kwa sababu ni rahisi kuona. Hivyo tumekuwa wote kuonekana haki hii? Hii ni pretty rahisi kufuata. Kama nilitaka kufanya kutofautiana kuitwa kamba aitwaye s, ikiwa idadi fulani Nawapa ni chini ya 100, mimi unataka hawawajui chini ya kamba, kingine nataka kuwapa juu. Hii hapa ni kufanya exact kitu wale mistari nane ya kificho unafanya. Hivyo hapa nataka kujenga kutofautiana kamba. Na hii ni hali mimi nina cheki, kama idadi ni chini ya 100, basi kuwapa thamani ya chini, mwingine kuwapa thamani ya juu. Slides hizi itakuwa online, hakuna wasiwasi kama nyie hawapati huu chini. Hii ni njia rahisi, zaidi njia bora ya uandishi kanuni. SAWA. Hivyo sasa tunakwenda kuingia nini, kwa watu wengi ni kama sana, utata sana Jambo kufikiri kuhusu mara ya kwanza. Kitanzi sehemu. Hivyo leo, sisi ni kwenda kuzungumza aina tatu ya mizunguko. Tunakwenda kuanza na wakati kitanzi, kisha majadiliano juu ya kufanya wakati kitanzi, na kisha majadiliano juu ya mizunguko. Hivyo kimsingi, kwa zaidi wanafunzi Visual huko nje, tuna, kimsingi, graphical picha ya kile kitanzi wakati gani. Hivyo katika programu, wewe itaanza na kuingia kitanzi katika hatua fulani. Wewe kuangalia hali. Na kama hali ni ya kweli, wewe kutekeleza kanuni ndani. Na wewe kuja nyuma karibu na wewe kuangalia. Kama bado ni kweli wewe kuweka mbio kanuni hii kwa kuzunguka katika kitanzi. Hata hivyo, la pili kwamba hali inakuwa uongo, wewe ni kwenda kuvunja na kuishia kitanzi. Na hii ni kimsingi syntax wewe ni kwenda kutumia. Wakati hali fulani ni kweli kufanya hivyo, kama si kweli, wewe ni kwenda ruka hadi mwisho na kusonga mbele na mpango wako. SAWA. Je, mtu yeyote kuwa na mfano juu ya nini inaweza uwezekano wa kutokea kama mimi kujaribu kukimbia kipande cha kanuni? Kwa njia, SAJ-- hiyo ni Scaz, Andi, Jason-- tutaweza ishara mbali barua pepe yetu, Upendo, SAJ. Hiyo ni yetu. SAWA. Mtu yeyote kuwa mfano, au kuwa na Wazo juu ya nini hii ingekuwa magazeti? Aina ya swali hila. Hivyo hapa, kumbuka hali sisi ni kuangalia kwa ni wakati kweli. Hivyo wakati hii ni kweli, ni kwenda magazeti, I love SAJ! Je, kuna hatua yoyote ambayo tunatarajia kubadili hali hii kwa kitu chochote vinginevyo? Hakuna, sawa? Hivyo katika hapa, tuna yaliyojitokeza nini pengine kwenda kuwa bugging mengi ya mipango yako, kitanzi usio. Utakuta kwamba kama wewe kukimbia kipande cha kanuni, ni tu kwenda kuweka uchapishaji, nampenda SAJ! Wakati tunakubaliana na msaada, hatutaki kompyuta yako ajali kwa sababu wewe kuweka uchapishaji nampenda SAJ! Hivyo tafadhali, tafadhali, kuepuka kitanzi usio kwa sababu ni kamwe kwenda kutathmini kwa uongo na wewe kamwe kwenda kuondoka kitanzi. Na wewe ni kwenda kuwa sucked katika milele. Baridi. SAWA. Aina ya pili ya kitanzi tutaweza majadiliano juu ya leo ni kufanya wakati kitanzi, je kitanzi wakati. Na ni kuitwa kufanya wakati kitanzi kwa sababu una kufanya na wakati. Hivyo hii ni pretty sawa na wakati kitanzi, lakini tofauti kidogo. Hapa, wewe ni kwenda kufanya chochote ya ndani ya hii wakati hali fulani ni kweli. Hivyo kama ningekuwa C na kompyuta mimi nina mbio chini kipande cha kanuni, Mimi kuangalia juu. Mimi kwenda C, nasema jambo hili. Na kisha mimi kuangalia, wakati huu Ni kweli, nina kurudia hivyo. Lakini wakati huu ni uongo, kisha mimi kusonga mbele na mimi kamwe kwenda nyuma na kwamba kitanzi tena. Je, mtu yeyote kuchukua kumchoma nini tofauti kati ya hii kitanzi na moja sisi tu inaonekana katika mara kivitendo. Naam. SPIKA 15: hali inakuja baada badala ya kabla? ANDI PENG: Hasa. Hivyo alisema hali inakuja baada, si kabla. Hatimaye, tofauti kati ya hii na kitanzi wakati ni kwamba ni kwenda tu kufanya chochote ya ndani ya hii bila kujali iwapo au hali yako ni kweli, na kisha kuangalia hali. Hivyo katika kesi hii, wewe ni always-- kwa njia hii, wewe ni daima kuhakikisha chochote ndani anaendesha angalau mara moja kabla ya kuangalia kuona kama unataka kukimbia tena. Na hapa ni mfano ya wakati tunataka kuitumia. Hivyo kwa mfano, kama alitaka kuwa kutofautiana wa aina int aitwaye umri, na mimi nataka kuchochea user kwa umri wao, Mimi nina kwenda kufanya printf () Ni umri wako ni nini? umri = GetInt (), ambayo ni kusababisha mtumiaji. Na baadhi ya watu itakuwa kweli annoying. Na hawataki mende katika yako Mpango wa mtu inputting kama, loo mimi nina hasi na umri wa miaka 4 au chochote. Katika kesi kama wao ambao kufanya hivyo, hii kutathmini kwa kweli, ambayo ina maana kwamba mimi nina kwenda kwa una kuweka kurejea na kufanya hivyo. Hivyo hii ni kwenda kuweka re-kusababisha mtumiaji kukupa kama kweli umri idadi na ni kwenda kuweka kurejea na redoing mpaka wao kukupa umri halisi kubwa kuliko mmoja, au sifuri. Hivyo ladha, ladha. Hii itakuwa sana, muhimu sana kwa moja ya matatizo yako pset. Naam. SPIKA 16: Lo, pole. ANDI PENG: Yep. SPIKA 16: Je, kuna, si kuwa asshole, but-- ANDI PENG: Hakuna wasiwasi. SPIKA 16: --are huko sheria mbalimbali hapa, au je, tu kusahau kuweka quotation? ANDI PENG: Oh Yeah. Samahani, hiyo ni kabisa mbaya wangu. Hiyo ilikuwa ni dhahiri wanatakiwa kuwa quotation. Nzuri samaki. Kwamba ingekuwa si kukimbia. SAWA. Hivyo aina ya mwisho ya kitanzi tutaweza majadiliano kuhusu na hatimaye aina ya zaidi tata ni kwa kitanzi. Usijali kama huna kujua nini maana. Ni pretty utata kwa mara ya kwanza. Tutaweza kwenda juu mfano. Yote yale yanayotokea katika kwa kitanzi ni kwamba una kauli tatu kwamba wewe ni kwenda pamoja. Hivyo kwa hakika jambo lile, uko kwenda initialize kutofautiana. Wewe ni kwenda kuongeza hali ya ambayo kitanzi hii itakuwa kuweka mbio. Na kisha, mwishoni mwa kitanzi, wewe ni kwenda update. Unaweza update kutofautiana kwamba unataka kuweka wimbo wa. Hivyo sisi kawaida kutumia kwa mizunguko kwa wakati sisi unataka kukimbia kitanzi kwa kiasi fulani cha wakati na sisi tayari kujua, Oh nataka kitanzi hii kutekeleza kama mara 10, basi do-- nitakwenda juu ya mfano kwenye ukurasa unaofuata. Hivyo hapa kwa mfano, katika Scratch, kama wewe alitaka kitu kwa kurudia mara 10, wote alikuwa na kusema ilikuwa, kurudia mara 10 nampenda SAJ! ambayo ni kukubalika zaidi onyesho la kuunga mkono kwa ajili yetu badala ya kitanzi usio. Hapa, jinsi wewe ungekuwa mpito kwa C na kuandika kuwa ni kwa int mimi nina kwenda kujenga au kutangaza kutofautiana wa aina int aitwaye i. Mimi nina kwenda initialize kwa 0, hivyo i = 0; na hii ni kwenda kuwa hali yangu. Hivyo i ni chini ya 10. Na kisha katika end-- Kauli ya mwisho uko kwenda na ni update ya nini kinatokea kwa i kutofautiana mwishoni mwa yako kwa kitanzi. Hivyo ni aina ya utata, kwa sababu sehemu mbalimbali za mstari huu yanayotokea katika mbalimbali aina ya kitanzi. Lakini mimi itabidi kwenda juu pseudocode mfano wa kwamba na labda kueleza kidogo tu bora. Hivyo hapa. Hiyo ni kitanzi sisi tu kuona. Kimsingi katika pseudocode, nini kinachotokea katika mpango huu, ni ya kwanza mimi nina kujenga i, initializing kwa 0. Mimi kuangalia kuona kama i ni chini ya 10, katika kesi ambayo mara ya kwanza ni kwa sababu 0 ni chini ya 10. Hivyo kitanzi ni kwenda kukimbia. Na kisha mimi nina kwenda magazeti mstari huu. Na kisha mwishoni mwa mstari huu, haki hapa, mimi nina kwenda kufanya nyongeza i, i ++, njia kwamba wote ni incrementing yake kwa moja. Hivyo i ni sasa 1. Kwa sababu ilikuwa mara moja 0, kama mimi increment ni, ni sasa 1. Na kisha mimi nina kwenda nyuma mwanzo wa kitanzi na mimi kuangalia hali. Ni hali bado ni kweli? Ndiyo, 1 bado ni chini ya asilimia 10. Hivyo ni kwenda magazeti hii tena, kwenda na kisha increment i, na kuangalia hali kuendelea, kuendelea, mpaka hatimaye kupata kwa uhakika ambapo i ni 10. Wewe ni kwenda magazeti hii mara 10 na kisha i ni kwenda sawa 10. Wewe ni kwenda kuangalia hali. Ni 10 chini ya 10? Hapana, hiyo ni ya uongo. Hivyo, kitanzi hii si kwenda kuendesha, ni kwenda kuvunja, na wewe ni kwenda kuendelea na kanuni yako. Hivyo kama wewe guys unaweza kuona, hii ni mfano mkubwa kweli ya kitanzi unaweza mpango katika kwamba anaendesha kwa kiasi fulani cha wakati. Kila moja wazi? Naam. SPIKA 17: Je kuhusu nyongeza exponentially, ni coding tofauti? ANDI PENG: Wewe can-- tutaweza kwenda juu ya hili katika slide ijayo. Nzuri swali. Ni anyone-- kabla mimi hoja on-- mtu yeyote wakati wote kuchanganyikiwa, kwa sababu hii ni dhana kweli ngumu. Hakuna wasiwasi, ikiwa you're-- sawa. Baridi. Sawa. Tu ujumla slide. Hii kitanzi wakati anafanya halisi kitu kimoja kwa kitanzi mara. Ni tu imeandikwa tofauti. Nyie unaweza peruse slides kwa urahisi baadaye. Lakini tu kujua kwamba kuna mbalimbali njia ya kuandika kitu kimoja kutokea kwa mizunguko tofauti. SAWA. Kwa hiyo, sasa sisi kupata katika suala la nini kama tuna kitanzi ndani ya kitanzi. Sisi ni kupata katika halisi Kuanzishwa aina ya mambo hapa. Wakati unataka kufanya mambo mbalimbali mara ndani ya vitu vingine kwamba kufanya mambo mara nyingi, wewe wanataka kile kinachoitwa nested kwa kitanzi. Kwa wale ambao kwanza kuona hii na kupata kuchanganyikiwa sana, wote sisi ni kufanya hapa ni kuwa kwa kitanzi ambapo tuna kutofautiana mfululizo. Lakini ndani yake, sisi pia kuwa mwingine kwa kitanzi cha kutofautiana kuitwa safu. Na mimi sana kupendekeza nyote ambao ni kuchanganyikiwa kwa kuweka kwanza track-- kuteka hii nje, kuteka hii nje. Je, si kujaribu sababu tu kwa njia hiyo, kuteka ni nje. Katika kichwa yako, juu ya kipande cha karatasi, au chochote, kuandika mstari, kuweka wimbo wa nini mstari ni sawa na. Kuandika safu, kuweka wimbo nini safu ni sawa na. Na kuweka wimbo wa nini ni uchapishaji nje na kila iteration. Kila iteration ya kitanzi hii, kila iteration ya kitanzi kubwa, tu kuendelea kufuatia mantiki. Na Mimi kuhakikisha, itabidi upendo nini kuona, kwa sababu ni pia sana husika kwa seti tatizo lako. Baridi. Sawa. Hivyo jambo muhimu zaidi kwamba nyie ni pengine wote kufikiria sasa hivi, Tatizo ni Kuweka yako 1s, ambayo ni kutokana Alhamisi / Ijumaa. Katika water.c mpango wako, ladha wewe ni kwenda na kuchochea mtumiaji kwa ajili ya pembejeo. Ndani ya mario.c mpango wako wewe ni kwenda na kutumia nested kwa kitanzi, ambayo ni kwa kitanzi ndani ya kwa kitanzi, magazeti kuzuia wa piramidi, kimsingi kama kile Mario ina kuruka kupitia. Na kisha ndani ya yako greedy-- au labda Maamuzi Change, kama yoyote ya nyie wamewahi kusikia kuhusu that-- wewe ni kwenda kuwa sana makini wa kwanza yaliyo maadili uhakika. Kumbuka decimals yaliyo na integers si kitu kimoja. Kuweka wimbo wa ambayo ni moja ambayo. Na wewe ni kwenda kutumia kauli masharti, kama vile. Sawa, mwisho kitu. Mimi nimepata dakika kadhaa wa kushoto. Style. Hivyo hii ni kitu ambacho hana kweli athari ufanisi, au kukimbia halisi ya kanuni yako. Hata hivyo, kuathiri sisi kama graders yako, kama wasomaji wako. Ni kuathiri wewe mwenyewe, kama wewe ni kujaribu kupata tatizo. Ni kuathiri readability wa kanuni yako. Hivyo style, kama wakati wewe ni kujaribu style insha kwa Kiingereza, kama wewe hawakuwa na aya, una kila kitu aina ya msonge pamoja kwenye mstari mmoja, ni inafanya kuwa vigumu kweli kweli kwa mtu yeyote kusoma insha yako, hata kama pointi yako ni mantiki sauti. Same kitu katika programu. Unaweza kuwa horribly wasio na cheo kanuni ambayo Scaz itafikia, na bado wanaweza kukimbia na kazi. Lakini kwetu sisi, kama TAS yako nzuri, nani kuwa kusoma na kutathmini psets yako, si kwamba nzuri sana. Hivyo tafadhali, kwa ajili mmoja wetu na wewe mwenyewe, wakati wewe ni kujaribu kurekebisha Tatizo katika kanuni yako, na wewe ni kujaribu kusoma kanuni yako mwenyewe, kufanya kuhakikisha kufuata baadhi mikataba kwamba tunakwenda kwenda juu. Hivyo kwanza. Kutoa vigezo yako majina ya maana. Kama unataka kuhifadhi integer aitwaye umri, tafadhali jina hilo umri. Je, si jina hilo urefu. Wakati wewe ni kujaribu kuhifadhi umri katika urefu, inafanya kila kitu utata sana kwa ajili yetu. Sisi si kama kwa kuchanganyikiwa. Huna kama kwa kuchanganyikiwa. Hakuna mtu anapenda kuwa na kuchanganyikiwa. Kama wewe ni kwenda kujenga kitu, jina hilo jambo maana. Hata hivyo, katika kwa kitanzi, moja vigezo tabia ni kawaida faini. Na katika kwa kitanzi, kama unataka tu i, na j, k, kujisikia huru na tu kufanya hivyo. Thabiti initialization. Hivyo nini maana gani? Hiyo ina maana kitaalam, kinadharia, unaweza kuanzisha na kujenga vigezo mbalimbali juu ya mstari huo. Hivyo kwa mfano, mimi wanaweza kujenga integer kuitwa scaz_age, na integer kuitwa andi_age = 20, na integer kuitwa jason_age juu ya mstari huo. Na siwezi pia kuwapa moja tu ya wao na si wengine kwa maadili. Tunaomba wewe tafadhali kufanya hivyo. Kwa sababu hapa umefanya kimsingi umba vigezo tatu, lakini tu mmoja wao kweli ina thamani. Na kisha wakati tuko kujaribu kusoma code yako, au kama wewe ni kujaribu kurekebisha Tatizo katika kanuni yako, ni utata sana kufuata. Hivyo tu kwa readability yako, kwa readability yetu, si kufanya hivyo. Thabiti curly braces. Baadhi ya watu kama kuweka yao braces curly katika maeneo mbalimbali. Ni kweli haina jambo. Tu kuhakikisha uko thabiti katika yako kificho mwenyewe juu ya wapi wewe kama kuziweka. Thabiti nafasi. Kama kuweka nafasi baada ya kwa kitanzi, daima kufanya hivyo. Je, si tu kama aina ya kufanya hivyo katika baadhi ya maeneo, si kufanya hivyo kwa wengine. Tu kuwa thabiti. Pili, kama mtu yeyote angependa peruse CS50 Sinema Guide, sisi ni rasmi na style mwongozo kwamba atakwambia wote wa mikutano hii, pamoja na zaidi. Ni online. Ni kama cs50.net/style au kitu kama hicho. Unaweza google yake. Msimamo ni muhimu. Hivyo msiwe na wasiwasi nini watu wengine wanafanya, tu kuhakikisha kuwa wewe ni thabiti ndani ya kanuni yako mwenyewe. Mtu yeyote una maswali yoyote kuhusu hilo? Naam. SPIKA 18: Hivyo jambo sahihi cha kufanya na initialization ni na watu wote katika tofauti mstari, ni kwamba unachosema? ANDI PENG: Kwa hiyo mimi mara chache kuwa hili kutokea. Lakini kama alitaka, kama alitaka kuwa kama kuokoa nafasi katika kanuni yako, au chochote, unaweza kufanya hivyo. Tunaomba kwamba wewe tu hawana initialize jambo moja na si wengine. Hivyo kama unataka kufanya int scaz_age, int andi_age, int jason_age, hiyo ni nzuri. Si tu initialize moja na si wengine ni yote. Maswali? Sawa. Mimi nina kwenda kupita mbali kipaza sauti, na laser pointer, na uongozi wa Scaz katika hatua hii. Hii ni Awkward. Hapa ni. BRIAN SCASSELLATI: Asante. Jinsi ya kwamba kwa sauti? Sauti ni nzuri? . Bora. SAWA. Kwa hiyo, hi kila mtu. Mimi nina kwenda kujaribu kufanya kazi kwa njia mfano vitendo na wewe. Na sisi ni kwenda kutumia CS50 maendeleo ya mazingira, kile kinachoitwa Maendeleo ya Mazingira Integrated. Na wameweza kuona hii alionyesha katika hotuba. Na katika Tatizo Set 1, uko kwenda na nafasi kuitumia, na kucheza karibu na yake, na kupata wamezoea hivyo, kwa sababu tunakwenda kuitumia njia ya mapumziko ya muhula. Hivyo katika IDE hivyo, una kile kinachoonekana kama jadi sana browser faili zaidi ya upande mmoja. Nimepata sehemu up juu wapi utaenda kuona chanzo kanuni yako, yako Cfile, kanuni na kwamba kuandika. Na chini chini, utasikia na dirisha terminal ambayo wewe utakuwa kutumia kwa wote kukusanya mpango yako na kukimbia au kutekeleza mpango wako. SAWA. Hivyo tu kutupa kidogo ya msingi, kwa kuwa dirisha terminal, wewe ni kwenda kuwa kutumia seti ya amri ambazo ni amri kiwango katika zaidi ya mifumo Unix au Linux. Na hivyo kama wameweza milele kutumika aina yoyote ya Unix, Ubuntu, au yoyote ya ladha nyingine, hizi ni kwenda kuangalia ukoo. Kama una si, msiwe na wasiwasi. Kuna kitu ngumu kuhusu wao. Wao ni kutumia tu tofauti syntax, kumtaja tofauti mkataba kuliko wameweza kuona mbele. Hivyo kuorodhesha nje mafaili ndani ya saraka fulani, wao wanaenda kutumia amri inayoitwa ls, au orodha. Kama unataka kuona kila kitu na maelezo yote, itabidi kutumia amri mstari hoja na ls-l. Na kwamba itabidi kuonyesha kila kitu kwa undani zaidi, ikiwa ni pamoja na ruhusa kwa ajili ya faili. Kubadili directory, itabidi kutumia CD amri. Na wewe utakuwa na uwezo wa kubadili directory wote kwenda nyumbani saraka yako. Hiyo ni cd tu wote na yenyewe, CD na mbili dots atarudi mahakamani moja ngazi ya saraka yako ya awali. Na unaweza pia cd kwa subdirectory na kuandika katika CD na jina la ile subdirectory. Unaweza pia kujenga directories mpya. Na tunakwenda kutembea kwa njia hii katika dakika tu. Lakini tu kuweka kila kitu kwenye screen. Ili uweze kuwaona. Itabidi pia kuwa na uwezo kuendesha files moja kwa moja kutoka mstari amri. Wewe utakuwa na uwezo wa nakala yao, kwa hoja yao, au kuondoa yao, Kama anwani ya ufanisi, kwa kufuta yao. CS50 IDE anatoa kamili nguvu ya hoja mstari amri. Na hiyo ina maana unaweza pia kufanya mambo hatari sana. SAWA. Kwa mfano, unaweza kuondoa, au kwamba ni kufuta, faili bila kuuliza kwa ajili ya uthibitisho. Na unaweza hata kuondoa recursively-- hiyo ni dash r flag-- nzima subdirectory na wote wa yaliyomo yake. SAWA. Wao ni waliotajwa katika nyekundu kwa sababu wewe wanapaswa kufikiri "Hatari" kila wakati unaona mambo hayo. SAWA. Sawa. Sasa hatimaye, mambo ambayo ni kwenda kuwa kweli thamani na wewe, ni kuna wachache tricks nzuri kujua kama wewe ni punde dirishani hii wastaafu. Kwanza, unaweza wazi screen katika wakati wowote kwa kuandika tu katika wazi. Na wewe ni kwenda kuona mimi kufanya hivyo mara nyingi kabisa. Unaweza pia kuonyesha tu Nakala ya faili kwa kuandika zaidi na kisha jina la faili. Itabidi kisha kuwa na uwezo wa kitabu nyuma na Basi nenda na kwamba tu kwa spacebar na mshale funguo. Kama una, kama tulivyofanya leo katika hotuba, mpango huo ni mbio kuendelea katika kitanzi usio, wewe unaweza kuacha mpango huo kutoka utekelezaji na kuandika katika kudhibiti, kwamba ni kufanya chini Kudhibiti-C. Na unaweza kuwa na kufanya hii mara nyingi. Kompyuta anapata mbali mbele yenu. Na wewe wakati mwingine haja ya kuwapa michache ya inajaribu kabla itakuwa kweli kuja kwa njia ya. Itabidi pia kuwa na uwezo wa aina kupitia amri kwamba wewe tu typed kwa kutumia ufunguo up, arrow muhimu, na kisha chini arrow muhimu. Na nini muhimu sana ni badala ya kuandika nje majina ya faili mrefu, wewe utakuwa na uwezo wa kutumia Tab kwa itakamilisha maelekezo chache. Sasa tunakwenda kuonyesha wote wa wale katika haki ya pili. Hivyo kama huna kumbuka yao, msiwe na wasiwasi. Haya ni mambo ambayo itabidi kuchukua na kutumia kama sisi kwenda pamoja. SAWA. Hivyo katika C-- tofauti katika Scratch-- C ni lugha ulioandaliwa. Hiyo ina maana sisi ni kwenda kuchukua chanzo file-- hiyo ni maandishi kwamba kuandika, amri kwamba kuandika, printf () kauli, tanzi, kila kitu else-- na tunakwenda kuchukua faili hilo na mkono ni mbali kwa mpango ujulikanao compiler. Compiler kisha kuchukua kwamba maandishi kwamba umefanya imeandikwa na kutafsiri ndani maelekezo mapacha kwamba kompyuta yako ni kweli kwenda kutumia. Hiyo inaitwa kitu au faili la kutekelezwa. Kama ukiangalia faili hili, wewe ni kwenda kuona kificho kwamba umefanya imeandikwa. Kama ukiangalia faili hili, wewe ni kwenda kuona mlolongo wa wahusika kwamba kufanya hakuna maana yoyote. Hii ni kwa sababu hii ni mapacha. Siyo maana ya wewe kuwa kusoma. Hata hivyo, wakati wowote unataka kukimbia kitu, nini wewe kwenda kuwa mbio ni faili hili kitu. Hivyo wakati sisi kazi na hizi mafaili, tutaweza kuandika faili katika C. Tutaweza basi kukusanya ni, kwa kutumia amri kama kufanya ambayo waomba compiler Clang kwa C lugha. Na ambayo italeta kitu faili, kama nje, au katika kesi hiyo, jina, faili yangu, kwamba nimepata kuweka katika. Sawa. Basi hebu kweli kujaribu hili. Hivyo mimi kuja na mfano ya nini nilitaka kujaribu. Na moja ya mambo ambayo fascinates mimi ni uhuishaji. Hivyo sisi ni kwenda kujaribu kufanya kidogo ya sauti kutumia wahusika tu ASCII. Wahusika tunaweza magazeti nje kwa urahisi sasa. Hivyo hapa ni jaribio yangu bora katika kujenga kwa wewe uhuishaji wa bunny mbio kwa njia ya nyasi ndefu. Kuna yeye ni. SAWA. Hivyo yeye si kukimbia bado, lakini yeye ni amesimama katika nyasi ndefu. Sasa kama ningekuwa Animator, katika umri wa shule toleo la sauti, nini mimi atafanya ni napenda kuzalisha picha ya Bunny huu katika nyasi. Na kisha napenda kuzalisha picture-- nyingine mwingine kile walichokiita cell-- kwamba alikuwa Bunny kidogo tu wakiongozwa. Na kisha moja ya tatu kwamba alikuwa Bunny wakiongozwa kidogo zaidi. Na napenda kuzalisha nzima mlolongo wa seli hizi. Baadhi ambapo Bunny ni zaidi ya kwenye upande wa kushoto. Na kisha hatua polepole, moja kwa moja kuelekea katikati. Na kisha kutoka katikati zaidi na haki. Na kama ningekuwa basi, kwa kweli bahati, mimi naweza kuiweka pamoja na mimi naweza hai yao. Na kuna Bunny yangu mbio kwa njia ya nyasi. Hiyo ni PowerPoint yangu kubwa hila kwa siku. SAWA. Hivyo hii ni nzuri kama anapata. SAWA. Kwa hiyo, hapa mara moja zaidi, hapa ni wetu bunny mbio kwa njia ya nyasi. SPIKA 19: Kwa mara nyingine tena. BRIAN SCASSELLATI: Moja muda zaidi, sawa. Kuna Bunny yako. SAWA. Hivyo leo nini tunakwenda kufanya ni tunakwenda kujaribu aÅ­tomate mchakato wa kuzalisha seli hizi. Sisi si kabisa kupata uhakika wa kuwa na uwezo wa kuweka wote pamoja. Lakini, sisi ni kwenda kujaribu aÅ­tomate mchakato wa kuzalisha mlolongo huu. Na hii ni mengi ya yale uhuishaji leo ni kama. Kama anwani ya huna kufanya mambo lazima kwa kuchora kila kitu kwa mkono. Sisi kutumia kompyuta aÅ­tomate sehemu ya utaratibu huo. SAWA. Hivyo basi mimi kubadili juu sasa kwa CS50 yetu IDE. Na mimi tumemuumba kwa us-- na basi mimi kuvuta hapa bit-- kidogo nimekuwa aliumba kwa ajili yetu kuanzia. Kila wakati kwamba tunakuomba kukaa chini na kuandika kipande cha kanuni, kile sisi ni kweli kuuliza wewe kufanya ni sisi ni kuuliza kutatua tatizo. Na kwa njia hiyo unapaswa kufikiri juu ya kufanya hivyo ni kwa kuanzia na baadhi sehemu rahisi ya ufumbuzi huo. Na kisha kujenga nje kutoka sehemu hiyo. Na kwamba ni nini tunakwenda kufanya leo. Hivyo badala ya kujaribu yote kwa mara moja kwa kuandika rundo zima ya kificho hiyo ni kwenda kuzalisha wale 10 uhuishaji seli, sisi ni kwenda kuanza badala na kipande moja kwamba kazi. Na kisha tutaweza kujenga kidogo kuzunguka kwamba na kidogo zaidi na zaidi kidogo. Sasa jambo zuri kuhusu kutatua matatizo kwa njia hii ni kwamba itawawezesha kuanza daima na jambo ambalo unajua kazi na kuanzisha moja mabadiliko ya taratibu. Na hiyo ndiyo njia kuu kujifunza jinsi ya kanuni, kwa sababu kila wakati wewe kufanya mabadiliko, unaweza kuona nini athari ina. SAWA. Hivyo hapa ni hatua yetu mapya. SAWA. Hivyo mwanzoni mwa faili yangu, Nimekuwa hash #included stdio.h. Hiyo ni ili niweze kupata printf () kazi ya kufanya kazi. Mimi basi nina kazi yangu kuu. Na hii bado inaonekana kidogo arcane au wasio na cheo kwa baadhi yenu. Hiyo ni sawa. Wote inasema ni kwamba Kazi kuu inachukua hakuna njia arguments-- utupu chochote katika C. Na anarudi kwa mkataba integer. Kuu daima anarudi integer, Kwa kawaida kificho kusema mambo ilienda vizuri au hakwenda vizuri. SAWA. Lakini kuu ina kuwa na kwamba kuunda ajili yetu hivi sasa. Nimekuwa kisha kuweka katika mistari mitatu ya kificho. Na pamoja na kila mstari wa kanuni, nimekuwa kuweka maoni. Sasa moja ya mambo ambayo sisi kusisitiza kwamba wewe kufanya, na ni vile muhimu Programu ya mazoezi, ni kwa siku zote kutoa maoni yako kanuni. Daima kuandika katika Kiingereza maoni kitu ambayo unadhani kanuni ni zinatakiwa kufanya. Kwa njia hiyo, baadaye wakati wewe kuja nyuma hiyo, unaweza kuangalia ni na unaweza kusema, loo, Nakumbuka nini nilikuwa kujaribu kufanya na hii. Au wakati TA anakaa chini na wewe ili kujaribu kukusaidia katika masaa ya ofisi, waweze kuangalia hii na kwenda, mimi kuona nini walikuwa wakijaribu kufanya, lakini badala yake hii ni nini kweli yanatokea. SAWA. Hivyo mimi nimepata sehemu tatu ili kificho wangu, Mimi nina kwenda kwanza kabisa magazeti nje baadhi nukta mwanzoni. Mimi itabidi basi magazeti nje yangu dhana sana Bunny. Na kisha baadhi kidogo ya nukta mwishoni. Na hawa kauli magazeti matatu lazima kuangalia ukoo na wewe katika hatua hii. Wote kwamba mimi nina kufanya katika kila mmoja wao ni mimi nina uchapishaji nje mlolongo wa wahusika. Hakuna vigezo husika. Kila kitu ni gorofa. SAWA. Hivyo kama mimi kwenda chini sasa kwa terminal-- yangu hebu angalia kama naweza kupata nyuma hii out-- na mimi nina kwenda aina ya wazi tena. SPIKA 20: Je, sisi kutumia mara mbili kufyeka kutoa maoni? BRIAN SCASSELLATI: Je, kutumia ndiyo double--. Kuna njia nyingi kwa kuacha maoni katika C. Moja njia ni kutumia kufyeka mbili. Nyingine ni kutumia kufyeka na nyota na kisha kufunga kwa nyota na kufyeka. Sawa. Awali ya yote, mimi nina kwenda kwa kuanza navigering kuzunguka hapa. Hivyo kama mimi kwenda nyumbani saraka yangu, Nimekuwa iliyopita directories huko, Mimi nina kwenda kuangalia na kuona nini katika orodha hiyo, ls, orodha nje. Mimi nina kwenda kuona kwamba nimekuwa got subdirectories mbili. Hebu kufanya hii kidogo kubwa hapa ili tuweze zote kuona. Mimi naona kwamba nimekuwa got subdirectories mbili. Mimi itabidi kubadili directory kwenda katika workspace. Na mimi nina kwenda kwa tu aina nje sehemu yake, na kisha tu hit Tab. Na kutakuwa na kukamilisha wengine kwa ajili yangu. Dhana. Mimi itabidi kuangalia na kuona katika workspace. Na hivi sasa, mimi nina kazi juu ya supersection kwamba sisi ni kufundisha hivi sasa. Hivyo mimi itabidi kwenda katika saraka huo. Na hatimaye, kuangalia na kuona. Na mimi nimepata kwamba faili bunny.c. Wote haki hivyo basi mimi wazi kwa mara nyingine. Na mimi nina kwenda kwa now-- tena mimi nina bado wanakaa katika orodha kwamba na ni kuwaambia mimi niko katika kwamba directory supersection. Mimi nina kwenda kwenda mbele na kufanya mpango wangu Bunny. Hiyo amri ambayo shabaha, kufanya Bunny, wakati wakipiga kidogo isiyo ya kawaida, Pia waomba Clang compiler. Na ni zinazozalishwa kwa mimi pato kwamba ni kutekelezwa funny-- an faili la kutekelezwa aitwaye Bunny. SAWA. Naweza kisha, na hii inaonekana mbaya zaidi, nitafanya Bunny. SAWA. Na hebu angalia kile yake. SAWA. Hiyo ni kidogo ya nini Mimi nilikuwa kutarajia. Mimi nimepata Bunny wangu picha katika huko, lakini mimi aina ya alitaka yote kwa yenyewe. Je, I miss? SPIKA 21: kufyeka l au kufyeka n. BRIAN SCASSELLATI: kufyeka n. SAWA. Basi hebu kwenda nyuma nje hapa. Na mimi itabidi kupata nje ya hiyo. Na mimi itabidi kurudi nyuma katika hili. Na hebu tuangalie sasa kutoka kazi yangu kuu hapa. Hivyo nifanye nini? Nataka mwisho line. Hivyo mimi itabidi kuweka katika maoni. Mimi itabidi kuweka katika printf (). Na je, mimi kuweka katika? / n. SAWA. Je, mimi kuwa na mwisho kwa? Semicolon. Sawa. Sasa, mmoja wa kweli mambo muhimu ni kuhakikisha kila wakati kufanya mabadiliko katika kanuni yako, kwamba wewe ila ni. Kama si kuokolewa kanuni yako, wewe ni kwenda taarifa kidogo nyota huko. Na kwamba nyota anasema wewe si kuokolewa kanuni hii. Kama mimi kukusanya hivyo hivi sasa, siyo kwenda kutafakari yoyote ya mabadiliko hayo, kwa sababu compiler inaangalia faili hiyo ni juu ya disk, si faili hiyo ni wazi katika mhariri wako. Sawa. Basi hebu kuokoa yake na kisha tutaweza kwenda haki juu chini hapa, kurudi nje. Kuja chini ya wastaafu yangu. Na hebu wazi nafasi tena. Na tunaweza kwenda mbele na moja zaidi wakati kufanya Bunny mpango wetu. Na kutekeleza Bunny. Kwamba hakuwa na kazi ama. Vibaya kufyeka. Hivyo kama wewe kuangalia nini mimi nimepata, mimi kuweka / n katika huko, lakini nilikuwa na kufyeka vibaya. Kila kitu ambacho kompyuta yako Je, ni wazi sana. SAWA? Moja kosa kidogo ya uandishi, na ghafla huwezi kupata unataka nini. Sawa. Basi hebu zoom nyuma nje tena. Tutaweza kurudi nyuma. Vizuri kufanya kwamba kukarabati haraka sana. Tutaweza kuweka kufyeka haki katika. Tutaweza kuokoa ni. Tutaweza kuvuta nyuma katika. Kwa sababu fulani, si kwamba kuwa na furaha, lakini hebu kwenda mbele na tutaweza kurudi nyuma kwa wastaafu hapa. Wazi it up. Tutaweza kuvuta. Na mara moja zaidi, tutaweza kufanya Bunny. Na sasa uhakika wa kutosha, ni kazi. Hooray. SAWA. Basi hebu jaribu kufanya hii kidogo zaidi kwa ujumla. Hebu angalia kama badala ya uchapishaji sura ya mtu fulani, hebu angalia kama tunaweza kufanya hii ili tuweze kupata yote 10 ya muafaka wale animated kwamba sisi alitaka kuwa. Hivyo tena, hebu kuchukua hii hatua kwa wakati mmoja. Hebu kwanza kujumlisha hayo, si ili niweze kufanya muafaka zote, lakini hivyo mimi kufanya mtu yeyote sura kwamba mimi kutaka. Basi nini tofauti kati ya muafaka? Ni Bunny huo? Watazamaji: Ndiyo. BRIAN SCASSELLATI: Naam. Nini tofauti? Watazamaji: Position. BRIAN SCASSELLATI: Msimamo wake, sawa? Na jinsi gani mimi kudhibiti nafasi yake? Jinsi nukta nyingi mimi nina kuweka mwanzoni na jinsi nukta nyingi mimi nina kuweka mwishoni. Kwa hiyo mimi alikuwa tano katika mwanzo na tano mwishoni. Hebu kuchukua nafasi ya tano kwamba kwa ajili ya kitanzi. SAWA. Na mimi nina kwenda kujenga kwa kitanzi sasa kwamba kwenda kusema, Mimi nina kwenda magazeti baadhi ya idadi ya dots mwanzoni. Mimi nina kwenda kutumia kutofautiana. Hebu sema, vipi kuhusu i kama kukabiliana na katika kitanzi yangu. Na mimi nina kwenda kutangaza it up juu. Na kisha katika kwa kitanzi Mimi haja ya kufanya mambo matatu. Jambo la kwanza mimi haja ya kufanya ni mimi haja initialize i. Nifanye initialize ni kuanza kuwa? 0. SAWA. Kisha mimi haja ya kusema, nini ukomeshaji hali? Wakati lazima mimi kuacha? Vizuri jinsi dots wengi kufanya wewe unataka magazeti juu ya hili? Watazamaji: Tano. BRIAN SCASSELLATI: Five tena? Vipi kuhusu hebu kufanya kitu mbalimbali, sisi alifanya tano. Hebu kuonyesha kwamba ni tofauti. SPIKA 22: Mbili. BRIAN SCASSELLATI: Mbili. SAWA. Hivyo kama nataka nukta mbili, nifanye kuweka hapa? Watazamaji: Tatu. BRIAN SCASSELLATI: Tatu. SAWA. Ni mara ngapi ni kwamba kwenda kupitia? Hiyo inaenda kupitia mara tatu, 0, 1, na 2, Right? Sawa, hebu kwenda nyuma chini ya miwili. Sasa tutaweza kupata dots mbili. Na nini nataka kufanya kila wakati mimi kwenda kwa njia ya kitanzi? Nini ina mabadiliko kila wakati mimi kwenda kwa njia ya? SPIKA 23: Kuongeza nukta. BRIAN SCASSELLATI: Mimi na kuendelea. Mimi nina kwenda kuongeza nukta. Mimi nina kwenda magazeti dot, kila wakati kwa njia ya kitanzi. Lakini jinsi mimi kuweka wimbo wa jinsi mara nyingi nimekuwa kupitia kitanzi? Mimi nina kutumia i, kwamba kutofautiana, kwamba kukabiliana. Hivyo kila wakati kupitia, mimi nina kwenda increment counter kwa moja. Sasa, hiyo ni sawa kwa mimi kama kusema i = i + 1. Hiyo ni sawa. Mimi naweza kufanya hivyo that-- Mimi kama shorthand, hivyo mimi nina kwenda kusema i ++. SAWA. Hebu kufanya kitu kimoja chini hapa chini. Tu mimi aina ya alifanya hivyo moja. Mimi nina kwenda kwa basi nyie kufanya hivyo moja kabisa. Sawa. Hivyo kile lazima mimi kuandika hapa? Hapa ni yangu kwa kitanzi. Mimi nina kwenda kufanya printf () na mimi nina kwenda kwa kufanya hivyo ili niweze tu magazeti moja nukta juu ya chini hiyo. Nifanye kuandika ndani ya hii kwa kitanzi sasa? Naam, awali ya yote nini vigezo mimi kutumia? SPIKA 24: j. BRIAN SCASSELLATI: mimi naweza kutumia j. Naweza kutumia moja moja? Naweza kutumia i tena? Naam. Hiyo ni sawa, kwa sababu Is kwamba mimi nina kutumia hapa, Sina haja nao tena wakati Mimi kupata chini ya hatua hii. Hivyo kile lazima mimi initialize i kwa? SPIKA 25: 10. BRIAN SCASSELLATI: 0. Nifanye kuangalia? Jinsi nukta nyingi nahitaji sasa mwishoni mwa kama mimi nimepata nukta mbili mwanzoni? Mimi haja nane mwishoni, hivyo nini anatakiwa kuangalia, i chini than-- Watazamaji: Saba, nane, tisa. BRIAN SCASSELLATI: nikasikia saba. Nilisikia nane. Kisha nikasikia tisa. SAWA. Hivyo sisi ni wote katika haki ball-- Jason anasema 10. SAWA. Kama mimi zinahitajika nukta mbili kwa Wa kwanza, ni wangapi kufanya I-- na nahitaji nukta nane kwa mwisho one-- mimi kuweka mbili juu juu, nifanye kuweka chini chini? Watazamaji: Nane. BRIAN SCASSELLATI: Nane. Kwa sababu hiyo ni kwenda kuhesabu sifuri kupitia saba. Na hiyo ndiyo mara nane kwa njia ya kitanzi. SAWA. Na je, mimi kufanya mwishoni? Watazamaji: i ++. BRIAN SCASSELLATI: i ++. Sawa. Hivyo hiyo ni kuangalia nzuri huko. Hebu jaribu hilo na hebu angalia kile yake. SAWA. Hivyo sisi ni kwenda kuokoa yake. Nzuri na kuokolewa. Tutaweza kuvuta nyuma nje. Tutaweza kujaribu hapa katika wastaafu. Tutaweza kuvuta. Oops. Tutaweza, wakati mmoja zaidi, kufanya Bunny mpango wetu. Na kwenda mbele na kutekeleza Bunny. Na huko ni. Hivyo kuna Bunny yetu. Ambapo ina nukta mbili mwanzoni na nane nukta mwishoni. Kila mtu bado na mimi? SAWA. Hivyo sisi kujengwa it up. Sisi kujengwa Bunny moja, Hasa sura moja. Sasa sisi tumekuwa na uwezo wa kujumlisha kwamba kujenga zaidi, aina mbalimbali ya muafaka. Sasa hebu kwenda mbele, na kuwa na ni kuzalisha si tu moja ya sura, lakini hebu kuzalisha 10 muafaka, ambapo sisi polepole kufanya Bunny hoja zote njia katika shamba. Sawa. Hebu kwenda nyuma. Na tutaweza kujaribu sasa. Basi je, mimi kwa kweli haja ya kubadili hapa? Je, mimi haja ya kubadili? SPIKA 26: Wewe kwanza haja ya mabadiliko ya idadi ya dots upeo mwanzoni. Kwa sababu kama sisi ni kufanya dots 10, ni kwenda haja ya hadi wadogo. BRIAN SCASSELLATI: Naam. Hivyo sasa hivi mimi kuwa ni aina ya hardwired daima kufanya dots mbili mwanzoni na daima kufanya dots nane mwishoni. Nataka kujenga mwingine kitanzi, haki? Kwa sababu mimi sitaki kujenga moja tu Bunny picha, Nataka kujenga 10 Bunny picha. Hivyo mimi haja ya kujenga mwingine kitanzi, na kama mimi kwenda kwa kuwa kitanzi, Nataka mabadiliko wangapi nukta mimi magazeti mwanzoni na jinsi nukta nyingi mimi magazeti mwishoni, kulingana na ambayo mzunguko kwa njia ya kitanzi Mimi niko katika. Sawa. Basi hebu kupata kukabiliana mwingine. Mtu ni kabla alisema j, hivyo tutaweza kufanya j mwingine. Na sasa, tunakwenda kujenga mwingine kwa kitanzi. Yale yanayoendelea ndani ya kwamba kitanzi? Mambo haya ina kwenda ndani ya kitanzi, haki? Je, bunny na kwenda ndani ya kitanzi? Je, ninahitaji Bunny katika kila moja ya hizo muafaka 10? Watazamaji: Uh-huh. BRIAN SCASSELLATI: Naam. Nataka Bunny katika kila ya muafaka 10, sawa? Vipi kuhusu nukta katika Mwishoni, nahitaji hiyo? SAWA. Hivyo nina kwenda kwa Indent wote. Mimi nina kwenda kuonyesha wote wa huu, na mimi nina kwenda kuikumba Tab. Na kwamba itakuja kushinikiza yao yote juu kidogo kidogo, hivyo kwamba ni rahisi kwa ajili yangu kuona nini katika kitanzi. Na kisha mimi itabidi mwisho ni. Hebu sema. SAWA? Sasa, katika hii kitanzi kwamba Mimi nina building-- whoops, kufanya kwamba ili uweze see-- Mimi nimepata kukabiliana yangu j. Mimi itabidi kuanza yake ifikapo 0. Ni mara ngapi kufanya mimi nataka kwenda kwa njia ya kitanzi hii? Watazamaji: mara 10. BRIAN SCASSELLATI: mara 10. Kwa hiyo kile idadi anatakiwa kuweka hapa? Watazamaji: 9, 10. BRIAN SCASSELLATI: 9, 10, mtu hana budi kusema 11, sawa? Nilitaka nukta mbili kabla na kuweka i chini ya 2. Nilitaka nukta nane, Mimi kuweka i chini ya 8. Sasa nataka kwenda kwa njia ya 10 Mara kwa mara, hivyo mimi kuweka j chini than-- Watazamaji: 10. BRIAN SCASSELLATI: 10. Kuna sisi kwenda. Na nini mimi mwishoni kwa j? ++, Increment yake. SAWA. Sasa, hapa ni sehemu gumu, nini kinaenda kutokea hivi sasa kama mimi kufanya hili? Mimi ni kwenda magazeti 10 muafaka? SPIKA 27: Nadhani wao itabidi wote kuwa sawa. BRIAN SCASSELLATI: Wao itabidi zote kuwa sawa, sawa? Kwa sababu wote bado ni kwenda kuweka dots mbili mwanzoni. Lakini Sitaki yao yote kwa na nukta mbili mwanzo. Jinsi dots wengi kufanya mimi wanataka mwanzoni? Watazamaji: Mabadiliko. BRIAN SCASSELLATI: Mimi nataka kubadili, sawa? Basi je, nina hapa hiyo ni kubadilisha kila wakati kitanzi huenda kwa njia? Watazamaji: Idadi ya dots, j. BRIAN SCASSELLATI: j, idadi ya dots. Hivyo siwezi kubadili hili kuwa j. Mara ya kwanza kupitia kitanzi, nini kwamba kwenda kuwa? Je, mimi kuweka j kwa mara ya kwanza? Watazamaji: 0. BRIAN SCASSELLATI: Kwa hiyo ni wangapi mara mimi kwenda kufanya hivi? 0. Mara ya pili kwa njia ya kitanzi, j ya kwenda kuwa 1 kwa sababu mimi increment yake. Jinsi nukta nyingi mimi kwenda magazeti? 1. Mara ya tatu kwa njia ya kitanzi, jinsi nukta nyingi mimi kwenda magazeti? Watazamaji: Tatu. BRIAN SCASSELLATI: j ni kwenda kuwa 3. Jinsi nukta nyingi mimi kwenda magazeti? Oh, pole, j kwenda kuwa 2. Jinsi nukta nyingi mimi kwenda magazeti? Watazamaji: 2. BRIAN SCASSELLATI: 2. OK, hivyo mimi nina kwenda kuweka incrementing kwamba kama sisi kwenda pamoja. Vipi kuhusu chini chini? Yale yanayoendelea hapa chini? Sitaki 8 daima mwishoni mwa tena? SPIKA 28: 10. BRIAN SCASSELLATI: Nataka nukta 10? Nataka kubadilisha, pia. Hivyo ni jinsi gani mimi nataka kubadili? Watazamaji: [inaudible]. BRIAN SCASSELLATI: Naam, kama mimi na nukta tano katika mwanzo, jinsi nukta nyingi ya gani mimi kupata mwishoni? Watazamaji: Tano. BRIAN SCASSELLATI: Kama mimi na nukta sita mwanzoni, wangapi gani mimi kupata mwishoni? Watazamaji: Nne. BRIAN SCASSELLATI: Kama mimi got nukta saba mwanzoni, wangapi gani mimi kupata mwishoni? Watazamaji: Tatu. BRIAN SCASSELLATI: Kama nimepata got nukta j mwanzoni, wangapi gani mimi kupata mwishoni? 10-j. SAWA. Basi hebu jaribu kuwa nje. Hivyo nina kwenda kuokoa Bunny mpango wetu. Kwa mara nyingine tena tutaweza kuvuta nje. Tutaweza kwenda chini kwa wastaafu wetu. Tutaweza wazi ni. Kuvuta ndani. Tutahakikisha Bunny mpango wetu, tena. Na tutaweza nitafanya hivyo. Uh-oh. Kushikilia, hebu zoom nje. Je, mimi kupata muafaka 10? Naam, ni wangapi bunnies kufanya naona huko juu? 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. I got 10 muafaka. Je, wao ni sawa? Watazamaji: Naam. Hakuna BRIAN SCASSELLATI: Hapana Hiyo moja kwanza, Bunny ni mbali upande wa kushoto. Na zaidi ya hapa, bunny ni mbali juu ya SPIKA 29: Haki. BRIAN SCASSELLATI: Kwa hiyo, nini mimi kusahau kufanya nini? SPIKA 30: Anza mstari mpya. BRIAN SCASSELLATI: I forgot kuanza mstari mpya, tena. Sawa makosa nilifanya kabla. Sawa, hebu kwenda kurekebisha kwamba. Sasa, nimekuwa bado got kificho katika huko kufanya mstari mpya. Kwa nini kazi? SPIKA 31: Siyo ndani ya kitanzi. BRIAN SCASSELLATI: Oh, siyo ndani ya kitanzi. Hiyo ni haki. Ni ameketi nje hapa. Na kwa kitanzi ni kila kitu hiyo ni ndani ya maandishi kwamba. Hivyo nina kwenda kutoa hoja huu ndani ya kwa kitanzi. Na mimi itabidi Tab mbele yake kwa kuonyesha kwamba ni katika mahali pa haki. Na sasa, tutaweza kuokoa tena. Tutaweza kuvuta nje. Tutaweza kubadili juu ya wastaafu wetu. Kuvuta. Tutaweza remake Bunny mpango wetu. Na sasa, sasa sisi tumepewa yetu muafaka 10. [Kupiga makofi] BRIAN SCASSELLATI: Sawa. So. Hapa ni yetu Furushi kwa mizunguko. Tulikuwa na uwezo wa kuzalisha katika ndani kitanzi jinsi nukta nyingi nilitaka magazeti mwanzoni, mwishoni. Na kitanzi nje kudhibitiwa wangapi muafaka nilikuwa kujenga. Sisi ilianza na kidogo moja Kernel wa tatizo, na sisi kujengwa nje kutoka hatua hiyo. Sawa. Hebu kufanya hatua moja zaidi. Uko tayari? Kuna jambo moja katika hapa ambapo tumekuwa kweli aina ya got zaidi utata kuliko tunahitaji. Hebu tuangalie. Hivyo katika Bunny mpango wetu, kama mimi zoom nje hapa, Mimi kwa kweli kufanya baadhi ya sawa Jambo tena na tena. Je, nini hiyo ni aina ya kitu kimoja mara kwa mara mara mbili? SPIKA 32: Magazeti dots. BRIAN SCASSELLATI: Yeah Mimi magazeti nukta wale mara mbili. Kwa kweli, ni lazima kuwa na maoni hii hapa chini. Mimi magazeti baadhi dots katika mwanzo, haki hapa. Na kisha mimi magazeti baadhi nukta mwishoni. Na mimi kufanya aina ya hasa kitu kimoja. Nini tunakwenda kuanza kazi ya katika wiki chache zijazo ni kuwa na uwezo wa kuchukua vitalu wale wa kificho kwamba tunatumia tena na tena, na kupitia mchakato aitwaye uchukuaji, tunakwenda kuvuta yao nje na kuandika yao mara moja ili tuweze basi tena kwao tena na tena. Basi hebu jaribu hilo. Tayari? Sisi ni kwenda kuchukua hii ya kuzuia wa kificho. Na mimi nina kwenda kuchukua ni nje ya hapo. Na mimi nina kwenda kwa define-- chini chini, Mimi nina kwenda kuandika kazi mpya. Ni si kwenda na kurudi kitu chochote. Na mimi nina kwenda kumwita printDots. Ni kwenda kuchukua moja Hoja, integer kwamba anasema howManyDots mimi lazima magazeti. Na sasa badala ya kuchapa nukta j, mimi itabidi magazeti kuwaambia howManyDots mimi lazima magazeti. Na kuna tatizo moja kidogo hapa. Mtu yeyote kujua ni nini? Je, mimi kuwa hiyo ni waliotajwa humu kwamba si inavyoelezwa? Watazamaji: [inaudible] BRIAN SCASSELLATI: Naam jinsi dots wengi inaelezwa haki juu hapa, lakini mimi nina kutumia kwamba kutofautiana i. Hivyo nina kwenda kuchukua kwamba kutofautiana i na mimi nina kwenda kufafanua ni chini humu badala yake. Hivyo sasa ni kwenda stay-- oops, got kofia kufuli juu ya somehow-- mimi nina kwenda kuweka i chini humu. Hivyo sasa hapa ni kazi mdogo wangu au ndogo mara kwa mara, na inasema, jinsi nukta nyingi mimi kwenda magazeti? Na kutakuwa na kwenda kwa njia ya kitanzi hii na magazeti yao tena na tena. Siwezi kisha kurekebisha mpango wangu hapa. Na nini mimi piga kazi hiyo? printDots. Hivyo mimi itabidi kuwaita printDots. Jinsi dots wengi kufanya nataka magazeti mara ya kwanza kabla ya Bunny? Watazamaji: j. BRIAN SCASSELLATI: j. Jinsi dots wengi kufanya nataka magazeti mwishoni, baada ya Bunny? 10-j. Na kuna jambo moja mimi kukosa. Kama wewe aliona katika hotuba leo, tunakwenda kutangaza printDots juu juu kutoa mfano. SAWA. Hivyo kile nimepata kufanyika ni Nimejaribu kujitenga eneo hilo tena ya kificho kwamba mimi tumefanya tena na tena. Na nimekuwa alijaribu kuvuta nje ili yote hayo ni zilizomo katika sehemu moja. Kwa njia hiyo, kama nina makosa mahali fulani, Mimi tu ya kurekebisha katika doa moja. Sawa. Basi hebu kuokoa ni. Na hebu kuhakikisha kazi. Basi hebu kwenda nje. Tutaweza kwenda tena kwa wastaafu wetu. Tutaweza kuvuta. Tutahakikisha kwamba mchakato Bunny. Loo. Na ni kunipa onyo. Je, ni kwa kuniambia? Vizuri katika kimojawapo cha vitu hivi Mara kwa mara, siku zote wanataka na kitabu juu ya error-- kwanza kabisa sasa juu ya hili, nimekuwa tu got moja. Ni anasema mimi katika bunny.c, kwenye mstari 8, safu 9, kuna tatizo. Inasema, umefanya alitangaza hii kutofautiana i na wewe si kutumika. Sasa kwa kawaida, hiyo ni si kosa mbaya. Hiyo ni moja rahisi kurekebisha. Na kwa kweli, tunaweza kurudi nyuma katika. Tunaweza kurudi nyuma na bunny. Na katika kesi hii, wote sisi una kufanya ni kujikwamua i, kwa sababu sisi siyo kutumia i ndani ya kuu tena. Tuko tu kutumia ndani ya ndogo utaratibu wetu. Basi hebu kuokoa huo. Tutaweza kurudi nyuma. Kuvuta ndani. Tutaweza mara moja zaidi kufanya Bunny. Na huko tena ni yetu muafaka 10. SAWA. Wakati wowote wewe ni kupewa a procedure-- Naam. SPIKA 33: Nina a-- mimi nina kuchanganyikiwa. Je, unaweza kwenda nyuma ya kificho? BRIAN SCASSELLATI: Yep. SPIKA 33: Hivyo, wakati aliandika mfano wako, hoja wewe alikuwa ni mmoja aitwaye aliitwa howMany? Lakini, below-- BRIAN SCASSELLATI: Oh yeah. SPIKA 33: --called yao kitu mbalimbali, Sielewi. BRIAN SCASSELLATI: Kwa nini ndio tofauti. Hivyo hiyo ni swali kubwa. Hivyo swali lilikuwa, hadi hapa, niliandika howMany, na chini chini, niliandika howManyDots. Sababu ni kwamba katika mfano wako, ni kweli si kulipa kipaumbele kwa majina wewe ni kuweka katika. Wote ni kweli wasiwasi juu ni kwamba ni integer. Ni anataka kujua namna kile wewe ni kuweka katika. Sasa stylistically-- oops-- kile lazima je, ni mimi kama kufanya hivi mechi. SAWA. Kwa sababu hiyo utakuwa kuitunza rahisi kwa mimi kukumbuka. Lakini hiyo ilikuwa ni makosa yangu Naam. SPIKA 34: Na hivyo kwa mfano kufanya kazi, tu kuandika kuwa mstari, kuandika mfano, inaruhusu kwamba kazi hiyo inakuja haki chini yake kwenda mwisho na kuzipata hiyo ina maana gani? BRIAN SCASSELLATI: Nini maana ni wakati compiler huenda kwa njia ya, unaendelea kutoka juu ya kanuni yako hadi chini. Na nini mfano huu ni, ni kimsingi sababu aliahidi. Inasema, kuna kwenda kuwa kazi inavyoelezwa mahali fulani. Ni kwenda kuwa wito printDots. Na ni kwenda kuchukua moja hoja kwamba kinaendelea kuwa integer na ni kwenda na kurudi kitu, utupu aina. SAWA. Mimi ahadi yenu ni kwenda kuwa inavyoelezwa mahali fulani chini ya barabara. Lakini wakati wowote, unaweza kuona kwamba, kama wewe kwenda chini njia ya mapumziko ya yangu Kazi kuu, nataka wewe kutibu kwamba kama kazi kwamba inachukua integer pembejeo moja. Na hivyo wakati compiler huenda chini kwa njia hii, anaona ahadi hiyo. Na wakati anapata chini, anaendelea kwenda, anaendelea kwenda, anaona mara ya kwanza printDots tajwa. Na inasema, Aa wewe ni kutoa mimi j hii. j ni integer. Vizuri wewe ahadi yangu kwamba bila kuwa integer na hiyo ni haki. Hiyo ni sawa. Na kisha hatimaye, chini chini sana, kabla ya kupata hadi mwisho wa yangu file, mimi kufanya vizuri katika ahadi yangu na mimi kufafanua. SAWA? SPIKA 35: Hivyo, ni saves-- Mpango huo kuokoa nafasi tupu kwamba huenda nyuma na fyller mwishoni? BRIAN SCASSELLATI: Siyo kuhusu mgao kumbukumbu. Ni kweli tu juu ya nini aina ni wewe wanatarajia kuona. Lazima jambo hili kuwa moja hoja, au tano hoja? Lazima kuwa ni integers kuwa aliyopewa yake, au masharti? Hayo ni yote ni kuangalia kufanya ni kuangalia, ni wewe kunipa haki ya aina ya hoja. SAWA? Sawa. Napenda kuondoka kwa mtu mwingine kidogo kuangalia. ASCII sanaa ni si mfano kubwa ya uhuishaji kama ilivyo leo. Lakini baadhi ya watu bila shaka kuchukua mambo na wao kuiondoa kwa extremes wao. Hii ni, kama Daudi alionyesha katika hotuba, kipande ya kificho kwamba ni lazima chini ya hali yoyote kujaribu kurudia wenyewe. Kwa sababu ni ya kutisha stylistically. Kwa kweli, ni imeundwa kuwa kama vigumu iwezekanavyo ili asome. SAWA. Hivyo, kufanya tena, hebu kuvuta hapa. Mimi nina kwenda sasa, mabadiliko directory. Mimi nina kwenda juu moja ngazi ya juu, nyuma na workspace yangu. Mimi itabidi basi mabadiliko directory katika hili directory mengine ambayo nimekuwa kuundwa. Na hii ni International Obfuscated C Programu Contest. Njia obfuscated kwa bidii iwezekanavyo ili kuelewa. Hivyo tafadhali, do not kuwa na hofu kama ukiangalia wakati huu na kwenda, siwezi kusoma hiyo. Hiyo ni hatua ya hiyo. SAWA? Lakini, tuna hii ajabu mpango kwamba mimi nina kwenda kuangalia na kuandika tu zaidi. Na hebu angalia kama naweza kuvuta nje kidogo tu, hivyo unaweza kuona ni Na hii ni mpango. Ni aitwaye endo.c. Na inaonekana kama ndoo huu kwa aina ya barua F-L-U-I-D ndani yake. Hii ni kweli mpango huo. Imeandikwa katika giza zaidi njia kwamba waandishi inaweza uwezekano kuandika. Lakini ni ajabu kidogo kipande kwamba inazalisha mfano wa mienendo ya maji. Na hivyo sisi ni kwenda kutoa kuwa mfano wa kuigwa pembejeo kwamba Inaonekana kama hii, ya staired seti ya vyombo pamoja na baadhi ya maji, baadhi maji, juu kwa juu. Na tutaweza kuwa ni kuiga nini kinatokea kwa hilo. Hivyo mimi itabidi kuwaita kazi hiyo, endo. Na mimi itabidi kuwapa kwamba pembejeo faili kwamba nimepata. Na huko ni mfano wetu wa ASCII sanaa. Kamili maji simulator nguvu mbio katika mistari michache tu ya kificho. Sasa nini kweli kweli ajabu kuhusu mpango huu kidogo ni kwamba mimi nataka kuacha ni sasa, hivyo mimi nina kwenda kwa kutumia amri gani? Watazamaji: Kudhibiti-C. BRIAN SCASSELLATI: Kudhibiti-C. SAWA. Hivyo mimi itabidi kutumia Udhibiti-C. C Kwamba kutakuwa na kuacha ni. Mimi itabidi wazi tena. Na sasa mimi nina kwenda waomba mpango, kutekeleza mpango, kutumia yenyewe kama pembejeo. Na tutaweza kuona nguvu ya maji simulation yake ya kiwango. SAWA. Tafadhali wala basi mpango huo kuwa ni jambo kwamba confuses wewe. Ni tu ili tuweze mwisho juu ya kitu baridi na kuvutia. SAWA. Bora wa bahati na seti tatizo lako. Tutaweza kuwa na furaha ya kujibu maswali baada ya darasa. Shukrani sana, nyie.