[Powered by Google Translate] [♪ buzzing ♪] Svo til að kynna þér að það sem ég hef fengið upp á skjáinn; það er eitt af þeim verkfærum sem við þróað yfir sumarið; það heitir CS50 Spaces, og það er samstarf kóða umsókn okkar að við ætlum að nota í köflum. Það er laglegur kaldur. Hefur einhver ykkar séð CS50 hlaupa enn? Leyfðu mér að draga það upp í öðrum flipa. Run.cs50.net Svo ef þú ferð til run.cs50.net, þú getur séð að þetta er í leiðinni vafranum þínum til að reyndar númer - skrifa C kóða, og þá hlaupa það, svo það bæði safnar hann, rekur hann, þá skilar framleiðsla til þín, þannig að þetta er svona flott leið til að gera tilraunir með sumir af the merkjamál, sem Davíð fer yfir í fyrirlestrum og við gefum á þér á sett vandamál án þess í raun að þurfa að skjóta upp á þvottavélinni. Svo hvaða Spaces er það er öðruvísi að Ef ég skipti aftur á þennan flipa, Spaces er CS50 hlaupa, eins og þú sérð hérna, en ef við fletta aftur og leita á hinum megin við gluggann, þú sérð rétt sem ég er sá eini á þessum stað, en það sem ég ætla að gera er að biðja ykkur að taka þátt í þessu rými með mér og við munum komast að kóða í sama litla glugganum, deila kóða við hvert annað, og tala um muninn á kóða okkar. Svo það er góður af kaldur hlutur - svo að taka þátt, ef þú vilt fara á þennan tengil hérna efst sem ég hef auðkennt, þú getur bara slegið í apps.cs50.net/spaces/vqcspSnO. Allt í lagi, þannig að byrja á, Ég ætla að gefa þér smá skoðunarferð um þetta. Við ætlum að gera nokkrar kjánalegt litla erfðaskrá með það í fyrstu, bara svo að hjá öllum góður tilfinningu fyrir hvað það er eins og, en það sem ég hef gert - eða það sem ég er að fara að gera hérna er - Ég ætla að taka númerið sem ég hef skrifað hér, sem eins og þú sérð núna er tóm; það gerir það ekki neitt. Það er bara katla plata númer, munum við kalla það. Með a lítill til að gera athugasemd. Ég ætla að spara það með hitting þetta Vista hnappinn. Og hvað það gerir er að það hápunktur það upp hér í stuttu máli - að endurskoðun spara græna reitinn, og nú, ef þú leitar að mér í rúm, þú smellir á nafnið mitt, þú getur séð að ég hef fengið þessa útgáfu hérna, og ef þú smellir á þessi endurskoðun það mun hlaða að kóða inn í rúm líka. Þannig hefur hver og einn hlaðinn að kóða inn í rúm þeirra? Allt í lagi, ef þú hefur ekki enn, fara á undan og gera það, og svo það sem ég vil að þú krakkar að gera þetta litla til að gera kafla er að skrifa svolítið með printf um þig, svo til dæmis, myndi ég skrifa printf ("Ég heiti Nate"); og þá myndi ég skrifa "Ég útskrifaðist árið 2009 frá Stanford " og ég myndi elska að heyra um Hvaða ár sem þú ert í skóla, hvort sem þú ert í framhaldsskóla eða Business School eða annar Harvard skóla, Það sem þú ert að læra ef það er vitað enn, ef það er ekki vitað, það er alveg svalt. Ég vissi ekki að ákveða fyrr en ég var seint árið sophomore mínu. og þá myndi ég líka elska að vita eitthvað brjálaður þú vilt segja mér eða eitthvað um tegund eða bara eitthvað annað. Þegar þú ert búin að skrifa það með litlum printf þinn, Ef þú munt spara á endurskoðunina eða frekar fyrst ganga úr skugga um að þú getur keyrt það og það prentar út nákvæmlega hvað þú vilt hafa það til að prenta út, og svo ef þú ferð á undan og vista þessi endurskoðun með endurskoðun Vista hnappinn, þetta fyrsta litli hérna, og við munum eiginlega að fara í gegnum og gera smá kynningu þannig. Svo þú ættir bara að ýta á play takkann, sem er upp hér efst til vinstri, þannig að þetta Play hnappinn efst til vinstri mun senda kóðann burt til miðlara okkar þar sem það fær saman og þá hlaupa. Svo er það eiginlega brjálaður um þetta er þetta númer í raun er ekki í gangi á tölvunni þinni; það er í raun verið að senda yfir Internetið. Hvernig gengur, Charlotte? >> I - allt í lagi. Ég er - ég held að ég erfiðleikum vista það á miðlara þannig að það getur - ég hlaupa the program. Og svo þegar ég reyni að keyra hana, segir það að það er villa. Lýst eins og a veira, sem er ekki þarna lengur. Ó, við skulum sjá, getur þú högg Vista aftur? Ég sé það á skjánum. >> Einmitt, allt í lagi, svo það er það sem ég hef. Og ég veit ekki af hverju það er ekki látið mig hlaupa það. Ó, allt í lagi, því miður. Geturðu útskýrt hvers vegna - það var rangt - það var ekki að vinna með það? >> Já, vegna þess að ég sá ekki að það var síðasta lína þar er enn breytilegt að ég hefði ekki lýst, sem ég ekki ætla að það sé þarna. Já, fullkominn! >> Nú ef ég vista það, held ég að það ætti að virka. Nú þegar þú hefur vistað hana, það virkar, ógnvekjandi. Svo já, eins og við förum í gegnum - svo hvað var í gangi, Ég ætla bara að fara að endurtaka þetta fyrir myndavélina. Hvað var að gerast var að breyta s var eftir í eftir - Ég geri ráð fyrir að þú eytt nokkrum öðrum hlutum þar sem þú lýst eins, og svo var þetta að kasta það burt og var ekki að láta þig keyra það. Svo er þetta einmitt það sem við viljum gera á hluta er að hafa fólk að reyna að skrifa mismunandi stykki af kóða, samantekt það, sjá hvað virkar, sjá hvað virkar ekki, og þá eiginlega að tala um þetta, því að þetta eru tripping atriði sem Ég fundur enn, Ég samt - ég fullt af vitleysu efni allan tímann, og ég veit ekki hvers vegna það virkar ekki, þannig að við skulum draga upp endurskoðun Charlotte 3, og við munum keyra hana. Svo þegar ég hlaupa, nú að ég hef fengið númerið hennar hér, Ég getur zoom í, högg the Run hnappinn, innsendingar það, byggja það, rekur það, segir hún hljóp með góðum árangri, og ef ég skruna niður, sjá Charlotte er yngri í Adams House, sálfræði, framhaldsskóla í hagfræði, ógnvekjandi. Frábært að hitta þig! Awesome. Jæja, færa á, við skulum fara til Daníels fara endurskoðun 3, safna saman, hlaupa, hví þú ekki að segja okkur svolítið um sjálfan þig, Daníel? >> Kalla mig Dan. Ég ætla að viðskipti skóla yfir frá ykkur, og ég var í sjóhernum áður hér, og þetta er allt nýtt fyrir mér, svo já. Ekki líður illa, ég er 30 og ég veit ekki eitthvað af þessu efni. Awesome, takk, Dan! Allt í lagi, fengum við annað Daníel. Þú ferð af Daniel - þú kynna þér, Daníel? >> Jú, ég er Daniel. Ég er sophomore í Mather núna. Ég er að einbeita sér að stjórnvöld, en ég vildi taka CS50 þar sem ég hef heyrt frábæra dóma um bekknum og ég hef aldrei prófað CS áður. Flettu niður hér og sýna það - kaldur. Að flytja á, Jared. Hvernig er það að fara? >> Gott, hvernig ert þú? Eins og þú geta sjá, ég er yngri heimspeki útstöð í Eliot, upphaflega frá Suður-Kaliforníu, og ég hef áhuga á að taka CS50 því ég eins og rökfræði það, og það virðist mjög flott að gera það á tölvunni, svo. Awesome, hvar í suður Kaliforníu ert þú? >> Um klukkutíma frá [inaudible], lítil borg [inaudible]. Ó, já, pabbi minn er frá Redlands. Flott efni. Allt í lagi, Jimmy, hvernig það er að fara, Jimmy? >> Gott, hvernig ert þú? Að gera nokkuð vel! Segðu okkur frá þér. >> Ég er freshman, og ég er ekki alveg viss hvað ég er majoring í en ég er soldið hallast að hagfræði. Eins og Daniel fyrir mér, ég hef aldrei gert nein CS, en það hljómar soldið svalt. Ég er upphaflega frá Chicago. Awesome. Svo kíkja útprentun hans hér. Mig langaði til að spyrja, var þetta prenta út eins og þú bjóst við? >> Nei, ég gleymdi að prenta út nýja línu. Ég gleymdi reyndar að þegar ég var að skrifa hlutur minn í fyrsta skipti líka. Það er góður af a sársauki til að muna eftir að setja þær inn handvirkt. Það væri gott ef það veit bara það er það sem þú vildir. Jæja, Kelly. Vá, höfum við 2 Kellys, 2 Daniels, 2 Kellys. Svo Kelly - ferðu af Kelly Ren? Allt í lagi, ógnvekjandi. Eða Kelly, meina ég. >> Svo já, þannig að ég er Kelly. Ég er sophomore í Pfoho. Ég fékk e-mail í dag sem ég hef enn 7 vikur til að lýsa styrk minn, svo ég er að reyna að hugsa ekki um það, og ég eins og bakstur, hlaupandi, og Craisins. Ég hef ekki reynslu af CS; Ég kenndi mér að byggja vefsíður þegar ég var mjög ungur, en ég held að ég kenndi líklega sjálfur rangt a einhver fjöldi af sinnum. Vonandi næ ég að læra aðeins meira og - já. Awesome, vel, þakka þér. Við skulum fara til annarra Kelly; Ég hef ekki neitt - sagðirðu eitthvað hér? >> [Inaudible] Það er það! Sweet! >> Allt í lagi, svo ég er Kelly. Ég er fyrsta árs framhaldsnámi. Ég er majoring í huga, heila og menntun. Ég útskrifaðist í Franklin & Marshall College árið 2008 með majór í sálfræði og félagsfræði og minniháttar í frönsku. Ég ætla að taka CS50 vegna þess að ég hef áhuga á að fá doktorsgráðu í Neuroscience og mér finnst eins og þetta mun hjálpa mér að skilja þá tækni sem notuð er. Awesome. Að flytja á, Mikaela. Er það rétt framburð? Allt í lagi, ógnvekjandi. >> Ég er Mikhaila. Ég er sophomore í Kirkland House, og ég er að einbeita í vélaverkfræði. Mér finnst mjög hjólreiðar, byggt hjóli í sumar. Ég ætla að taka CS, í raun, sem styrk kröfu, en þú veist, ég held það er samt kaldur tegund af bekknum verkfræði. Awesome - þú byggt hjóli í sumar? >> Já. Vá, eins og ramma og allt það? >> Uh-hunh (jákvætt). Vá, það er mjög flott. >> [Inaudible burt-myndavél spjall] [Hlátur] Já, það er verið svo lengi. Þú veist aldrei, ekki satt? Jæja, flott, vel takk, Mikhaila. Allt í lagi, Missy. >> Ég heiti Missy, ég er á fyrsta ári, Svo þýðir að ég veit ekki neitt! Mig langar að einbeita sér í stjarneðlisfræði. Árið CS50, Mér finnst eins og mun örugglega hjálpa því. Undarleg staðreynd um mig er að ég er á landsvísu staðfest firefighter. Vá! Hvernig var það gerast? >> Ég sótt Academy og fór í gegnum helvíti til a einhver fjöldi af vikum og fékk vottun minn. Vá, Congrats! Það er ekki lítið feat, fyrir viss. Jæja, svo nú gerum við mig. Ég er næsta einn í röðinni. Ég er - keyra hana. Svo er nafn mitt Nate. Ég var flokkur 2009 í Stanford. Ég var táknræn Systems meiriháttar, sem er svipað og Mind, Brain, Hegðun styrk hér, en það er eins konar blanda af tölvunarfræði, málvísindi, sálfræði og heimspeki. Konar - Já, fullt af skrítnum hlutum, en það var frábært, og svo ég gerði herra míns í tölvunarfræði þar, eins og heilbrigður. Þannig að ég er nýr til Harvard á þessu ári. Mig langaði virkilega til að komast inn í kennslu. Ég eyddi síðustu 4 ár á Stanford TA-ing tölvunarfræði bekkjum og svo Davíð láta mig koma á, og ég ætla að hjálpa út með CS50, þannig að ég gera þetta í fullu starfi, ég er ekki í Grad skólanum. Það hefur verið gaman. Vonandi verður það að halda áfram að vera skemmtilegt, ég er viss um að það vilja. Allt í lagi, Sam. >> My name is Sam, ég er sophomore í háskóla, í lögum sérstaklega. Meiriháttar mitt verður sögu vísinda, sennilega, og Ves framhaldsskóla, og uppáhalds liturinn minn er gulur. Engin þörf á að dæma eða neitt, en það er góður litur! Og Stella. >> Hæ, ég er Stella, Ég er freshman í Grays. Ég hef ekki hugmynd hvað ég hef safnast í enn, svo CS50 var bara svona af handahófi, sem er áhugavert. Gaman staðreynd, Jimmy var fyrsta Harvard vinur minn, vegna þess að við erum bæði frá Chicago. Cool, og Grace - sem er ætlað að vera mjög gott einn, ekki satt? >> Ég hélt [inaudible]. Ó, já. [Inaudible / burt-myndavél spjall] Jæja, ég er enn að læra, enn að læra. Þannig að við höfum fengið eitthvað annað sem er eins konar áhugavert hér. Já, ég er bara að spá, þú ert með hugmynd sem er að fara á hér? Þú veist hvernig á að túlka þetta? >> Ég átti að setja semíkommu eftir hvert einasta lína. Það er góður af a sársauki. Stundum þeim semikommum geta vera a raunverulegur sársauki til að elta uppi. Svo kemur í ljós að sérstaka áætlun sem við erum að nota þetta ár til að þýða C kóða okkar er kallað Clang, og ástæðan að við höfum byrjað að nota Clang þessu ári - vegna þess að við höfum ekki notað þessi forrit í fortíðinni; við höfum notað annað sem heitir GCC sem er mjög vinsæll - Clang gefur í raun þér villa skilaboð sem skynsamleg. Þessi segir "Expected ';' eftir tjáningu", og það segir jafnvel þér tjáningu eftir sem þurfti semíkommu. Svo ert þú að ákveða það? >> Já, núna. Awesome, láttu mig vita og við munum draga það upp, og við munum keyra hana. En já, setja þessar semikommum í er góður af a sársauki. >> Ég fastur það, þannig að ég held að það ætti að virka. Awesome - endurskoðun 3. Það lítur út eins og það. Allt í lagi, svo nú ef við keyra það, Þar sem það fer. Flott efni. Allt í lagi. Svo takk fyrir að gera það. Það er frábært að hitta ykkur. Það sem við ætlum að gera núna er að eyða næstu svolítið góður köfun í kafla vandamál sem koma frá vandamáli sett í þessari viku og við munum gera það fyrir flest köflum fyrir restina af tíma, og þá munum við spara síðustu 15, 20 mínútur eða svo að tala um vandamál setja sig og þá bara einhverjar aðrar spurningar sem þú ert almennt um flokki. Það sagt, það sem við virkilega viljum gera er hafa allir þátt nota bil efni, kasta í kóða, henda í tillögur, og að tala um þegar það eins og þetta brot eða virka ekki, bara vegna þess að þetta eru hlutir sem Ég veit að ég rakst á þegar ég byrjaði að erfðaskrá, og voru í raun soldið pirrandi stundum því ef það er eins og 02:00 áður en vandamál setja er sökum, svo - bara fyrir birtingu, Ég vissi ekki að byrja forritun fyrr en ég var sophomore í háskóla. Það var góður þessa furðulegur Unknown hlutur sem ég heyrði, var soldið kaldur og ég heyrði líka að það gæti verið raunverulegur sársauki í rassinn Ef þú gleymir semíkommu og það er eina villa að halda áætlun virki og halda þig frá að fara að sofa, svo ákveðið, Ef þú hefur spurningar eins og þessi, Ef þú hefur áhyggjur eins og að láta mig vita, vegna þess að ég vil gera þetta góð reynsla fyrir ykkur. Svo hefur þú krakkar sótt öll vandamál sett enn? Góður vita hvar það er? Allt í lagi. Þannig að við munum fara til cs50.net, vegna þess að ég hef ekki á þennan reikning, draga upp vandamál setur, draga upp vandamál setja 2, og við munum líta á venjulegu útgáfu í dag. Við munum draga upp texta hér. Flettu niður. Þannig að við ætlum að byrja að horfa á þennan hluta af spurningum. Hefur þú krakkar horfði þessar stuttbuxur enn? Allt í lagi. Þannig að það eru stuttbuxur á lykkjur, sem er gert með því að Tommy, einn af kennslu höfuð félagar. Það er einn á umfangi, Ég tel að gera af öðrum kennslu náungi heitir David og þá einn á Caesar dulmál einnig gert af David. Þeir eru ansi kaldur. Hefur þú krakkar verið að horfa stuttbuxur þeirra svo langt? How've þeir verið? Gagnlegar? Jæja, gott að vita. Ef þau eru ekki, getur þú sagt það. En áður en þú gerir það, Hefur þú krakkar leit á þessum spurningum yfirleitt? Við skulum tala um þetta svolítið. Þannig að við höfum kynnt á síðustu tveimur vikum í fyrirlestri a tala af mismunandi lykkjur. Það er til hliðar, á meðan lykkja, og þá do-while lykkju, og í fyrirlestri, sem við höfum verið að tala mikið um hvernig þessir lykkjur eru allir nokkuð svipuð í fullt af leiðum, og þú getur gert mikið af sömu hlutum með while lykkju að þú getur með til hliðar. Þú verður bara að konar nota rétt samsetningar af breytum og þess háttar. og svo mjög raunverulegur munur á milli allar lykkjurnar er að stundum þeir eru meira gagni að nota þá í einu en á öðrum tíma. Svo til dæmis, á meðan lykkja mismunandi frá do-while lykkju. Er allir finnst þeir hafa góð tök á þegar gera-while lykkju er gagnlegt og hvað er munurinn? >> Ég held að munurinn er do-while lykkju keyrir - Ég veit ekki alveg hvað hugtök, en röð af aðgerðum innan lykkju. Þeir sjálfkrafa - það er keyrir sína amk áður en það fer yfir ástand, eða á meðan lykkja mun aðeins keyra hann þegar það rennur stöðugt - hvort skilyrði sé fullnægt. Já, er það skynsamleg? Við skulum taka a líta á smá kóða. Svo bara að endurtaka spurninguna, eða svarið, heldur; svarið var að á meðan lykkja mun athuga hvort ástand sem þú tilgreinir er fullnægt áður en það rennur í meginmál lykkju í fyrsta sinn, en að gera-en lykkja sjálfkrafa keyra meginmál lykkju, er það sem við köllum það - það er undarlegt að kalla, en ef ég segi alltaf eitthvað sem ekki skynsamleg, láttu mig vita - að lykkja líkaminn er að efni sem þú setur á milli hrokkið axlabönd. Og í do-while lykkju, að líkami fá að keyra að minnsta kosti einu sinni, og þá ástand verður athugað áður en það rennur hverri skipti. Svo í raun, Sam, þú huga að skrifa einfalt meðan lykkja í rýmum? >> Hvernig raða þér um eins og gera nýtt ...? Ég eyði bara hvað sem þú ert í þarna. Já, bara að hreinsa það út. >> Jæja, ég held ég sé að þetta - hver einn gera þú vilja, á meðan, eða þú vilt ...? Já, ekki bara á meðan satt, prenta eitthvað út. Og við skulum sjá. Alexander, áttaði ég að við aldrei kynnt þér. >> Ó, það er allt í lagi. Ert þú - getur þú kóða upp do-while lykkju fyrir okkur? >> Já, ég reyni. Allt í lagi, munum við bara að rífa þetta upp á skjáinn, þannig að þú ert góður af a takast á hvað ágreiningurinn er. Svo hér er það sem Sam hefur gert. Hann fékk heiltölu heitir i að hann er frumstilla til 17. Þá segir hann á meðan (int i = 17) printf ("Ég heiti Sam."); Og hvað gerist þegar við keyra þennan kóða? Það er villa, hvað er villa að segja? Við skulum draga það upp og tala um það. Villa kom upp, segir hún. Við skulum fletta niður. Svo það gaf okkur þessa villu, og það sagði: "Hey, ráð ég tjáningu." Það er góður dulinn. Já, svo nákvæmlega - og aftur, Það mun vera annar lítill padda sem við munum ná í aðeins annað. En þetta er annar einn af þeim konar skrýtin hugtök hlutum, svo þetta int i = 17 er ekki tjáning. Hvað það lítur út eins og það er að gera er að það er lýsa heiltölu heitir i og setja það til jafns við 17 eða, frekar, setja 17 inn í þessi INT kallaði ég. Og það er ekki skynsamleg í tengslum við þessa while lykkju. Það er skynsamleg, eins og við munum sjá, í samhengi við a for lykkju, vegna þess að lykkja yfirlýsingar byrja á með það fyrir INT i jafn eitthvað og fer á. Svo gerðir þú - festa eitthvað, allt í lagi. Hér fer það, ógnvekjandi. Svo nú hlutirnir líta svolítið öðruvísi. A par af hlutum hafa breyst. Getur þú sagt okkur hvað hlutirnir hafa breyst? >> Ég tók út int, þannig að það er engin yfirlýsing [inaudible] stað verkefni. Sá jafn skilti, ég setti 2 sömu merki, sem þýðir að jafningjar. Awesome. Já, svo hvað gerði Sam var hann tók út int sem var hérna áðan, svo ef ég lít bara á þetta - þetta er það sem það var áður, sagði það int, sem var að lýsa yfir því - þannig að við tók út tegund. Það er int, char, band, stutt, þeir eru kallaðir gerðum. Svo þú tókst út gerð og áður, Hann hafði bara jafngildir einn skilti og það sem hann sagði var erfitt um þetta var þegar þú ert 1 er tákn, það er framsal rekstraraðila. Það er ekki að athuga hvort eða ekki 2 hlutir eru jafnir. Það er í raun að setja eitthvað jafn eitthvað. Við erum að setja númer 17 í breytunni i. Svo til að gera svona samanburð, þú þarft að nota tvöfalt jafngildir, sem er góður af furðulegur hlutur en er nokkuð algeng villa. Svo eitt annað sem ég ætla að benda á, ef þú dont 'hugur, er að í Hlutverk okkar hér í int Main, þú sérð að líkami virka okkar Á móti vegur frá vinstri megin um 4 rými eða flipa. Ástæðan sem við gerum þetta er bara sýnilegur. Eins og þú geta sjá í lykkju meðan Sam er hér, hann ekki undirlið yfirleitt, og það hefur ekki áhrif á virkni þess. Það mun keyra nákvæmlega sama. Svo til dæmis, ef við komum upp á toppinn hér og styðja á Play hnappinn okkar, verður það að byggja það, það mun keyra hana, og hvað er að fara að gerast? Hvers vegna er það samt segja gangi? >> Því það mun halda að endurtaka hi. Einmitt, og hvers vegna er það að halda að endurtaka hi? >> Þar sem heiltala aldrei breytist, þannig að það er alltaf 17. Já, einmitt, svo við skulum sjá, eftir - minna mig á nafnið þitt aftur? Jimmy. Og Jimmy sagði að Ástæðan þetta heldur endurtaka hæ aftur og aftur er vegna þess að þetta ástand er alltaf satt. Við breyta ekki gildi i. Við breyta ekki innihald það er geymt í því breyta. Svo á þessum tímapunkti sem við fengum þetta villa sem program mynda of mikið framleiðsla, og ef við að fletta niður og góður í að líta á hvað er að gerast hér, þú getur séð að það er hæ, hæ, hæ, hæ, hæ, hæ, hæ alla leið í gegnum. Awesome. Svo svona aftur að upprunalegu lið að hafa inndrátt hér í meginmál while lykkju ekki áhrif á neitt. The program hljóp samt bara fínt. Venjulega fyrir góðum stíl - og þetta er eitthvað sem við erum að leita í setur vandamál þitt - við biðjum þig um að draga inn þetta með 4 bilum, sem þú getur gert bara með því að ýta á tab-takkann eða handvirkt setja í 4 rými sjálfur. Cool, allt í lagi þannig að við skulum fara aftur og líta á Er Alexander að gera-en. >> Bara góður með smá vandræði. Jæja, jæja við skulum vinna í gegnum það. Er að kólna? >> Já. Jæja, svo hér við fara. Þetta er kóðinn sem Alexander skrifaði. Ert þú að fara af Alex - lagi. Svo hér er númerið sem Alex hefur skrifað. Svo höfum við fengið yfirlýsingu okkar helstu hérna, og svo við höfum fengið þetta heiltölubreytu heitir i verið lýst hérna. Við höfum fengið að gera yfirlýsingu og þá líkaminn aftur með þessa teina, svo er þetta líkami do-en - láta mig súmma inn á þetta svo það er læsileg - og í líkamanum, við erum að reyna að prenta "þetta er líkami", i + +, svo hækka innihald i og gera þetta þar til ég fær að vera 3, og svo endar program okkar. Og hvað gerist þegar við keyra þetta forrit? >> Ég von á auðkenni. Jæja, svo byggja, hlaupa, villa á sér stað. Hvað gerist? Við að fletta hérna, við fáum þetta nokkuð dulinn útlit hlutur, ráð semíkommu eftir efsta þrepi yfirlýsingu. Það er góður undarlegt. Hefur einhver hafa hugmynd um hvað gæti verið að gerast? Góður undarlegt, já. >> [Inaudible] verið lýst utan sviga? Svo er það ekki um þá þegar þú notar sviga? Hann lýsti þessu strákur utan sem sviga? Oh, þessir krakkar - the hrokkið axlabönd? >> Já. Já, nákvæmlega. Svo kemur í ljós að þú getur ekki í raun að lýsa yfir breytu hérna svona. Það sem þú gætir hafa verið að reyna að gera var - skera það út þaðan - þú getur annað hvort að setja það innan hrokkið axlabönd hérna eða annar valkostur er að setja það alveg út. Og svo þessir - allt eftir því hvar þú setur í raun yfirlýsingu þess heiltölubreytu, þú getur fengið 2 mjög mismunandi tegundir af breytum; þegar það er utan helstu, það er það sem við köllum alþjóðlegt breytu. Það er utan gildissviðs einhverju aðgerðir - það er ekki í aðgerð - en ef við setjum það inn helstu, eins og hérna, þá er það kallað staðbundin breytu, því það er staðbundið gildissvið helstu. Og við munum tala svolítið meira um hvað ágreiningurinn er milli 2 gerðir og hvers vegna þú notar mismunandi tegundir af breytum, en nú, þú getur bara haldið öllum breytur sveitarfélaga, vegna þess að við höfum enga þörf fyrir alþjóðlegum breytur. Jæja, svo það er eitt þarna. Við skulum reyna að keyra þetta aftur, sjá hvað gerist. Hlaupa, fá aðra villu. Zoom í hluti, hvað fáum við? Við fáum þetta ráð sviga eftir að gera / á meðan. Einhverjar hugmyndir hvað er að gerast? Dan? >> Er en þá sviga og þá - Ég veit ekki hvort þú þarft að redeclare int, en gera á meðan (i <3). Einmitt, já. Svo kemur í ljós að Dan er nákvæmlega rétt. Við þurfum ekki að setja þessa tegund hér aftur. Við getum í staðinn drepa gerð og bara gera það. Allt í lagi. Ég minnka aftur út, reyna það einu sinni. Horfðu á það, það gengur vel. Ef við skruna niður, "þetta er líkami" prenta út 3 sinnum. Það er nokkuð sætur. Vel gert, vel gert, krakkar. Vel gert. Hvernig er þetta að fara svo langt? Decent hraða? Allt í lagi, svalt. Svo, eins og við eins konar aftur til upprunalegu spurningunni, við - og nú ef við sjáum muninn, þú sérð að í þessum do-while lykkju, ástand kemur síðast. Svo sem tölvan les forrit frá C forrit eru keyrð svona í þessari myndaröð röð, þar sem þeir byrja bókstaflega við fyrstu línu Main, og þá framkvæma línu 6, línu 7, lína 8, lína 9, lína 10, lína 11, allt þetta dót efst hérna er að fara að framkvæma einu sinni áður en við prófa alltaf þennan sjúkdóm til að sjá hvort ég - eða innihald i, frekar - er minna en númer 3. Og aðeins ef þegar við að fá á línu 12, innihald i er minna en 3 gerum við stökk reyndar aftur upp á línu 7 og þá endurtaka ferlið, og þá erum við að prófa ástand aftur og aftur og aftur. Þannig að við getum andstæða þessu með - zooming aftur út, skruna niður til útgáfu Sam, Við ætlum að horfa á þetta, örlítið breytt þannig að það er ekki lengur óendanlega lykkja - þar sem ef við zoom í, sjáum við að þar sem þetta forrit framkvæmir, það er að fara að fyrst lýsa int i, setja innihald i að vera að 0, og þá slær það ástand while lykkju fyrst, Svo í þessu tilfelli, þessi líkami, þetta printf ("hæ") og i + + mun ekki einu sinni keyrt nema ég er í raun minna en eða jafnt og 2. Svo ef ég er 3, til dæmis, Ef við setjum þetta hérna jöfn 4 - eða ég geri 3, vegna þess að ég sagði 3 - og þá hlaupa það, það verður að byggja, það verður keyrt alveg fínn, en það verður ekki í raun prenta út neitt, vegna þess að það tókst að prófa í fyrsta málinu. Svo í bekknum, ræddum við svona um það hvers vegna þessar do-á meðan lykkja eru gagnlegar stundum og hvers vegna við mundum nota það á móti að á while lykkju. Eru - Ert þú krakkar hafa einhverjar uppástungur hvers vegna gera-while lykkju getur verið fleiri gagnlegur? >> Jæja, held ég-en lykkjur er ef þú vilt notandi inntak, því þannig er hægt að láta þá setja eitthvað í einu, ef það er rétt, getum við hreyfa á til the hvíla af the program, en ef það er ekki rétt, þá halda áfram vekur notanda þar til þú setja rétt inntak. Já, nákvæmlega - nákvæmlega, svo a gera-en lykkja er gagnleg vegna þess að þegar leitt til notandi inntak vegna þess að þú þarft að fá inntak notandans áður en þú getur raunverulega stöðva það. Svo í pset 1 í pset 2, þar sem þú ert vekur að notandi inntak mikið, það er a handlaginn hlutur til að nota öfugt við bara einföld while lykkju. Ef þú notar á meðan lykkja, getur þú gert það sama - þú getur gert það sama með while lykkju eins og þú gerir með do-while lykkju. Þú verður bara að svona hefur þetta afrit ferli þar sem þú færð inntak fyrst og þá byrja meðan lykkja þína. Þar sem do-while lykkju, þú verður bara að skrifa það einu sinni og það er mikið hreinni. Allt í lagi. Einhverjar spurningar? Skynsamleg? >> Afrakstur 0 - það er bara svona að þæfa eða er það -? Já, þannig að við getum - Jæja, munum við ná þessu svolítið meira seinna en það kemur í ljós að þetta aftur 0 sem við setjum í lok aðal allra tíma - þú getur eiginlega bara taka það sem eitthvað sem við gerum um sinn. Það sem við höfum byrjað að tala um að með aðgerðum konar í lok síðustu viku og svo aftur í þessari viku er að virka tekur aðföngum sem eru þetta innan sviga; þetta eru 2 inntak, rökstuðning okkar eða breytur, hvað þeir eru einnig kallaðir til meginvirkni okkar, og þá framleiðir fall framleiðsla sem við köllum aftur gildi. Og aftur gildi í að ræða helstu er þetta int, þetta heiltala og eins og þú segir að virka, "Hey, þetta er það framleiðsla þinn er að fara að vera, "er með þetta orð" aftur ", það leitarorð, frekar, og svo helstu aftur 0 eða helstu outputting 0 er staðall í C forrit því aftur 0 í helstu leiðir sem "Hey, allt keyrð með program minn bara fínn." Ef við værum að setja eitthvað annað en 0, eins og 1, til dæmis, sem er notað til að segja hver hljóp þetta forrit að eitthvað fór úrskeiðis. Svo eins og við fáum meira í tengslum við efni yfir önn, Ef þú ert alltaf að þurfa að segja, "Úps, þú veist, eitthvað fór úrskeiðis við þetta forrit," frekar en að þurfa program hrun minn, ég vil tilkynna hlaupari á áætlun mína að eitthvað fór úrskeiðis, þú getur notað aftur gildi, eins og við köllum það, það er ekki 0. Þannig að við munum ná að svolítið meira þegar við komum inn í aðgerðir. Þessi tegund af vit? Allt í lagi. Aðgerðir eru konar undarlegur - Ég held að fólk sem hefur mikið af bakgrunni stærðfræði, það kemur lítið meira auðveldlega, sérstaklega ef þú hafa a lítill hluti fleiri óhlutbundin stærðfræði bakgrunn og þú ert að nota til að tala um aðgerðir og allt þannig dót. En við munum reyna að ná þeim og fara ágætur og hægur eins og þeir koma upp. Sömuleiðis, þetta allt int argc, char * argv [], fyrir núna, getur þú einnig taka það sem ketils disk. Við höfum byrjað að ná til þeirra svolítið á fyrirlestri þegar við tölum um rök að fá liðið í forrit á the stjórn lína, en setur vandamál þitt og forrit, það er algerlega allt í lagi bara að skrifa niður og halda það einfalt. Og hvað þetta ógilt þýðir að "Hey, helstu er ekki að fara að taka við öllum inntak; þetta er bara áætlun sem við ætlum bara að hlaupa. Við erum ekki ađ gefa það óþarfa upplýsingar hvert skipti sem við byrjum það upp að keyra. " Svo að nú er hægt að gera þetta; þú getur líka jafnvel sleppt aftur 0 í lok þinn programs og þeir keyra bara fínt, en ég mæli með bara að halda því inn Í nokkrar vikur, munum við byrja að konar draga til baka ná smá og skilja meira um allir þessir mismunandi litlu hreyfanlega hluti. Allt í lagi, nú skulum við tala um annað spurningu okkar hér. Og hvað þýðir "undeclared kennimerki" benda yfirleitt ef outputted með Clang? Ég held að við gætum séð það þegar í dag. Getur einhver gefið ágrip af hvað það þýðir? Við skulum sjá, Kelly - einn Kellys. >> Svo - Já, það er - >> Ég held að þegar þú, eins, ekki lýsa ekki breytur og þú reynir að nota það. Já, einmitt, nákvæmlega. Svo ef þú sérð alltaf þessi framleiðsla þegar þú reynir að setja saman program, bara eins og Kelly sagði það þýðir að þú notaðir breytu sem ekki lýsa, þannig að ef ég fer aftur til pláss okkar, og ég gera eitthvað eins og printf ( "Halló% s") og reyna að fylla í að% s með breytu er að ég hef ekki lýst hvar og ég að reyna að hlaupa það, þú munt sjá hvað ég fæ niður á þessu neðst til hægri hér: "Notkun undeclared auðkenni 's'"; það þýðir bara að þú hafir ekki lýsa breyta þínu. Sami hlutur gerist ef þú hefur x og þú reynir að geyma 7 í henni og ég gerði ekki lýsa X. Ég fæ þessi sama villa: "Nota" X "undeclared Identifier". Allt í lagi, þannig að Caesar dulmál, ekki vera mjög örugg, Ég læt ykkur horfa á þetta stutta, svona að skilja hvers vegna, og vonandi eftir að gera vandamál þessari viku setja þar sem þú skrifar í raun Caesar dulmál, munt þú skilja svolítið meira um hvað það þýðir að vera örugg og óörugg - eða ekki örugg, held ég - óöruggur er örlítið öðruvísi. The annar hlutur var að við höfum þessum spurningum hér um aðgerðir og hvað fall er, og við töluðum svona um það stutta stund þegar við ræddum um gildi aftur; Fyrir einhvern sem er verið að halda fyrirlestra, getur þú ágrip sem er verið að halda fyrirlestra í dag? Allt í lagi. Við skulum sjá, við skulum hafa - getur einhver sagt okkur hvað fall er? Kelly? >> Grundvallaratriðum eitthvað sem þú draga á eitthvað sem er skrifað í safninu sem er flóknara þarna, og þá skrifa bara stutta mynd af henni, svo eins og þú ert að vísa til baka til að bókasafni, með allt sem lengi kóða og [inaudible]. Já, einmitt, og þá þú vilt bæta við eitthvað við það? >> Já, held ég um það líkt því hugtakið formúlu í stærðfræði þar sem þú skrifar bara uppskrift og þá er hægt að stinga breytur og það er það fall er [inaudible]. Já, þannig að við höfum fengið nokkrar svör hér sem eru bæði mjög gott og rétt á. Það er að vísa til kóða sem hefur verið skrifað í safninu einhvers staðar það er flóknara og þá er hægt að draga á að kóða og í raun nota það bara með því að skrifa stutta mynd um það - eða öllu heldur nafn þess - og svo er það líka þetta samanburður á uppskrift í stærðfræði eða eðlisfræði, allt svona dót þar sem þú ert með uppskrift og þú getur þá stinga í breytur til að formúlu að þá fá niðurstöðu formúlu, svo þú hugsa um það eins og eins stigs jöfnu. Ímyndaðu þér ef frekar en að þurfa að læra um hvað annars stigs formúlan er í flokki stærðfræði, þú hefðir bara smá reiknivél forrit sem gerði þetta fyrir þig. Did einhver að nota reiknivél forrit í bekkjum stærðfræði í menntaskóla? Já, eðlisfræði bekkjum? Þar sem þú getur bara sagt "Hey, annars stigs formúlunni. Þetta eru breytur sem mig langar að inntak. Nú gefa mér svar. " Það er góður af því fall er. Það er leið fyrir okkur að konar skrifa eins lítið lítið undir áætlun í stærri áætlun okkar og nota það aftur og aftur þannig að við þurfum ekki að afrita og líma kóðann, við getum gefið það mismunandi aðföngum og fá mismunandi framleiðsla, það er frábær vel þegar þú ert að reyna að skrifa mismunandi forrit á mismunandi tímum. Svo til dæmis, er aðgerð sem við höfum verið að nota aftur og aftur og aftur um námskeiðið er printf. Printf sjálft fall og það kemur í ljós að það er í raun mjög langur og flókinn, viðbjóðslegur útlit, virka til að skrifa. Svo eins einfalt og það virðist við okkur að prenta efni út á skjáinn, vegna þess að við allir gerðu bara í byrjun í dag kafla, það kemur í ljós að það er í raun, þú veist, gott par af hundrað línur af kóða. Það er ekki eitthvað sem ég myndi aldrei vilja til að skrifa, fyrir víst, en við fáum að nota það á hverjum degi, það er góður af kaldur, þannig að við fá að deila henni með hvert öðru, með mismunandi forrit, þannig að við munum vera köfun meira í aðgerðum; um sinn, erum við ekki - eina virka við erum að fara að skrifa er aðal. Main sjálft er fall, og þú getur séð það er got framleiðsla þess, inntak þess eins og við töluðum um, og þá nafn þess, sem er aðal. Main er góður af a - er sérstakt fall þar. Í C program, það þarf að vera aðal virka, og svo nú, höfum við eins konar sleppt skrifa frumgerð, eða yfirlýsingu um, helstu. Við höfum gefið það til þín, og við höfum bara haft þig fylla konar eyðurnar. >> Svo á seinni vandamál setja, við þurfum ekki að skrifa það í seinni aðgerð? Ég held ekki svo. Ég held að það er allt hér. Já, svo Caesar Dulmál, þú þarft ekki að, er það ekki líta út eins og, og Vigenere, ekki þú heldur, svo - og það reynist þú ekki alltaf í raun að skrifa fall, ekki satt? Þér kallið alltaf setja allt númerið þitt í Main, og margir forritarar gera það. Eins og við halda áfram, við byrjum sem voru að kynna aðgerðir sem leið að hreinsa upp númerið þitt, til að gera það glæsilegur meira, ef þú ert með verkefni - góður af eins og þegar við ræddum um lykkjur, hversu stundum það eru hlutir sem þú vilt gera aftur og aftur og aftur, og þú ert góður á barnaleg leið - eða það sem við köllum oft "Straw man" lausn, er bara að afrita og líma aftur og aftur - þú getur gert það sama með aðgerðir þar sem þú afrita bara og líma sama kóða aftur og aftur, en það bloats kóðann þinn - það endar á því að gera númerið þitt raunverulega langur - og það verður líka svolítið truflandi, og þá þýðir það að þú ert ekki fær um að eins - Ef þú vilt alltaf að nota þessi númer aftur í annað forrit, þú ert líka fastur afrita og líma það aftur, svo er eitt af því sem við munum tala um konar hönnun og stíl af áætlunum þínum, og svo þegar það er vit í að eins konar pakki eitthvað upp og setja það sem sérstakt hlutverk, Við hvetjum þig til að gera það, og það er eitthvað sem, aftur, Það er enginn harður og fljótur regla. Við segjum sjaldan að þú verður að skrifa fall sem kallast þetta, en það er meira af einn af þeim hlutum sem þú þróast bara með tímanum eins og þú skrifa fleiri og fleiri forrit. Allir fleiri spurningar? Jæja, svo við skulum nú fara aftur upp á þennan gaur hérna, þannig að ég er enn í þessum kafla af spurningum. Við höfum talað um allar þessar mismunandi sjálfur, hvað er fall, hvers vegna að skrifa virka, þegar þú getur bara afritað og límt? Vonandi höfum við sannfært þig um að skrifa störf er gott. Svo nú skulum við fara í þessa MySpace forrit, og við munum eyða smá tíma í að gera þetta. Svo, við skulum sjá, get ég einhver lesið þetta fyrir mig? Við skulum hafa Mikhaila - þú lest þetta fyrir okkur? >> Þú átt aftur þegar MySpace - Baka þegar MySpace var kaldur. >> "Baka þegar MySpace var kaldur, það var öll reiði að slá svona. Kannski er það samt? Ég er ekki alveg viss. Í öllum tilvikum, að nota CS50 tæki, CS50 Run eða CS50 Spaces, skrifa forrit sem biður notanda að skeytum og þá framleiðsla skilaboð með fyrsta bréfi sínu til eignar, með öllum öðrum bréfum í skiptis tilfelli eins og á sýnishorn framleiðsla að neðan, þar boldfaced texta táknar inntak sumir notanda. Fyrir einfaldleiki, getur þú gert ráð fyrir að notandinn mun aðeins inntak lágstöfum og rými. Íhuga þetta vandamál tækifæri til að æfa sig; þú verður ekki beðin um að senda þetta forrit. " Awesome, þakka þér. Svo eins Mikhaila sagði við erum að fara að skrifa forrit sem MySpaces kóðann þinn. Svo gerði eitthvað af ykkur að nota MySpace? Einhver ykkar hafa MySpace reikninga? Ó, já, já! Það var laglegur kaldur. [Hlátur] Ég veit. Stefnumót sjálfur. Svo er það sem við erum að reyna að gera skrifa forrit sem fer í gegnum og capitalizes fyrsta stafinn og þá hvert bréf eftir - eða hvert annað bréf eftir, ég er hryggur. Svo - og þú getur séð í þessu dæmi, þetta er hvernig við hlaupa the program, og svo þetta er bara að segja, "Við erum að keyra forrit sem heitir a.out. The inntak sem við erum að fara að gefa það er að fara að vera beðin. Við erum ekki ađ veita inntak á the stjórn lína. " Ef þú hefur verið eftirfarandi alla fyrirlestra og heyra um stjórn lína rifrildi, það er góður af þar sem þeir - sem angurvær setningafræði á Main kemur með int argc, allt það efni, svo hér erum við ekki að nota það, við erum ekki að takast á við eitthvað af því. Við erum bara að fá þessa tegund í við the notandi, og þá er þetta seinni línan með angurvær fjármögnun er það sem við viljum program okkar að framleiðsla. Svo frekar en að nota tækið eða hlaupa, munum við nota Spaces, vegna þess að við höfum fengið Spaces, og svo ef þú krakkar vildi fá kóðann til að líta eitthvað eins og this, þannig að ég ætla að vista þessa útgáfu bara svo að þú hafir fengið ketils disk hérna sem lítur svona út, int helstu (tóm), ekkert í henni. Reyndar, það sem við munum gera er að við munum bara eyða öllu öllu saman. Við viljum eyða ákveða, vegna þess að við erum ekki ætla að byrja að skrifa kóðann; heldur erum við ætla að reyna að skrifa nokkur sauðakóðanum sem í raun þýðir bara að við erum að fara að skrifa eitthvað sem er ekki númerið þannig lýsir hvað við viljum gera, eiginlega eins og Davíð gerði á fyrsta degi í fyrirlestri, eða ég giska á það var annar dagur fyrirlestur þegar hann gerði alla sokka kynningu. Þið krakkar muna að - að sjá sokka? Joseph var þarna eins konar slá út á ensku? Þannig að við ætlum að gera það sama. Svo þegar ég byrja að skrifa sauðakóðanum, Ég vil byrja á því að horfa á það sem inntak er að fara til vera. Og ég gef mér dæmi að ræða, svo eins og "takk fyrir add!" Og svo skrifa ég líka það sem ég vil að framleiðsla að vera, sem í þessu tilfelli er eitthvað eins og this. Og þannig gefur mér gott, eins og að byrja stað til að hugsa um, "Allt í lagi, ég vil taka línu 1 og ég vil að umbreyta það inn í línu 2, " og þannig hjálpar fylgja hugsun minni. Þetta er góður staður til að byrja. Önnur leið til að hugsa um það líka, eins og við eiginlega fara á og eins og þú gerir þetta í eigin áætlunum þínum, er að hugsa um hvers konar eins og það eru brún tilvikum að þessu? Hvað eru konar undarlegt aðstæður? Hvað eru undarlegt inntak sem við gætum fengið? Og hvað ættu þeir niðurstöðurnar líta út? Til dæmis, einn furðulegur inntak væri þetta, búa nákvæmlega ekkert, eins og hvað eigum við að framleiðsla í því tilviki? Eitthvað sem við viljum til að hugsa um líka. Svo bara eins og spurning, Hvað gætum við viljum að framleiðsla? Ef við fæ ekki allir inntak á öllum, hvað ætti forritið okkar að outputting? >> Ekkert. Ekkert? Hljómar frábærlega. Þannig að við viljum ganga úr skugga um að við erum ekki að skrifa neitt Ef við fáum ekki neitt inn Cool. Allt í lagi. Svo Ég ætla að hringja á nokkra fólki sem við förum í gegnum og bara reikna út svona eins og það sem almennt reiknirit er og við munum konar byrja að vinna í gegnum þetta saman. Svo, við skulum sjá. Missy. Hvernig finnst þér að við myndum byrja? Hvað myndi vera góður staður til að byrja hér Ef við viljum breyta, segjum, lína 1 í línu 2? Getur þú konar bara að útskýra fyrir mér, á ensku, hvað þú ert að hugsa? Ekki einu sinni áhyggjur af kóða. >> Það fyrsta sem ég myndi gera væri að konar beina notandanum að segja þeim hvað þú vilt. Jæja, svo að segja, "Hey, notandi. Vil streng "- ógnvekjandi. Svo skulum skrifa þetta niður. Hvetja notandann fyrir streng. Það hljómar eins og góð byrjun. Allt í lagi. Við skulum spyrja Kelly Ren þetta sinn. Hvað ættum við að vilja þá að gera næst? Það er góður af næstu okkar -? >> Safna inntak þeirra og geyma það sem breytu. Frábært. Svo safna band, geyma það í breytu. Svo er eitthvað sérstakt sem við viljum gera hér? Ekki viljum við að athuga inntak þeirra áður -? >> Já. Hvað gætum við viljum að athuga? >> Jæja, þú sagðir að við þurfum ekki að athuga hvort það er tala, ekki satt? Vegna þess að það mun gera ráð fyrir að það er lágstafir? Já. Svo kemur í ljós að - já. Svo getString er tryggt að skila okkur band. Það er ekki að fara að skila fjölda okkur eða eitthvað svoleiðis. Það gæti verið stafa stafir innan þess band, þó. Og þá getum við hunsa eins og við gerðum um fjármögnun. En tómt band er alveg fínn, svo að ræða hérna á línu 4 og 5, rétt, þar sem það er engin inntak, og við höfum sett neitt sem framleiðsla okkar. Við þurfum ekki að hafa áhyggjur af því að tryggja að það er eitthvað í band eða að strengurinn er að minnsta kosti 4 stafir að lengd; allt er í lagi. Þannig að þetta er andstæða, td með eins og smáaurarnir forrit sem þú skrifar þar sem þú þurftir að ganga úr skugga um að þú varst að fá ekki neikvæðar tölur; þú þarft að ganga úr skugga um að þú værir að fá réttan fjölda daga í mánuði. Og hvernig eruð þið að gera það? Hvernig myndir þú gera þessi próf? Hvað var að þurfa að nota? >> Do-á meðan lykkja. Do-en lykkjur, aðrar tegundir af lykkjur, of, já. Svo kemur í ljós að við þurfum ekki að nota lykkju í þessu tilviki, þegar við erum að vekur í streng, sem er góður af gaman. Allt í lagi, að flytja á. Svo, Stella. Getur þú sagt okkur svolítið um hvað við ættum að gera næst? Svo nú höfum við fengið band, höfum við fengið það geymt í breytu; hvað þurfum við að gera við streng? >> Við þurfum að - finna 2 - Já, bara að segja það á ensku, það er ógnvekjandi. >> Þekkja [inaudible] höfuðborgum - eða hástafi. Já, þannig að þú vilt finna út hvaða verkefnum eru hástafi og lágstafi. Við getum ekki hástafi eða lágstafir þá fyrr en við höfum bent hver sjálfur. Þannig að við munum setja það hér. Svo bara að hugsa um þetta ferli, hvernig eigum við að gera þessa greiningu? Veistu, Dan? Kind af því sem við - hvað tæki við myndum þurfa að nota út af verkfærakista okkar? >> Ég myndi setja það í einhvern veginn í svona fylki eða hverri línu er eigin lítill kassi hans, og þá hástafi það þaðan eða ekki. Jæja, svo er eitt tól sem við getum notað fylki. Hvað höfum við að líta á í streng, þó að reikna út - við þurftum að horfa á stafi. >> Svo þú hefur fengið að líta á lengd strengsins? Já, svo hluti af því er að fá lengd strengsins. Bara af forvitni, hvað notum við til að fá lengd band? >> Strlen? Já, strlen, við köllum þetta "strlen" Öll þessi band aðgerðir, svo strlen fall, og það er frábær vel, vegna þess að við getum notað það til að segja, Hey, strlen: Hér er band, segðu mér hversu lengi það er. Í fyrirlestri í dag, Davíð talaði mikið um hvernig strlen er hrint í framkvæmd, hvað er raunverulega að gerast á bak við tjöldin. En þetta er einn af the mjög frábær handlaginn sjálfur. Það eru hinar sem eru líka í band bókasafn, eins strcmp, sem er stafsett "strcmp" sem er notað til að bera saman strengi við hvert annað. Aðrar þær sem þú notar eins og strstr, sem er gott að finna undir strengi og svo framvegis. Fyrir the hluti, allir þeir byrja með str og þá fara að vera eitthvað annað. Ástæðan sem þeir gera í raun ekki stafa þá eins streng og svo framvegis er því aftur í eins árdaga C, þegar fólk var fyrst að skrifa og allt það, þeir höfðu takmarkanir á fjölda þeirra stafa sem þú getur notað fyrir nöfn virka og breytilegum nöfnum, svo er allt eins og super Þéttur. En hvenær þú sérð eitthvað sem hefst með str, sem þýðir yfirleitt það hefur eitthvað að gera með a band. Jæja, svo að þú hafir fengið að fá lengd á band, og þá, hvað eigum við með stöfum? Veistu, Sam? >> Ég hef ekki hugmynd, ég var að reyna að reikna það út. Ég veit ekki - ég vildi að það væri einhver leið til að - Ég meina, ég myndi held að við gætum gert eitthvað með stuðla og Aftansöngur, en ég veit ekki af öllum aðgerðum eins og þessi. Já. >> En það - það myndi ekki endilega að vinna, því þá að þú vilt fá rými til að vera - þú þyrftir að hafa pláss til að fá ráðleggingar um hvernig - Allt í lagi. >> Ég veit ekki - Ég er góður af glataður á þessum tímapunkti. Já - nei, nei, nei, þetta eru góðir punktar. Svo það sem við þurfum að gera er, eins og Sam sagði, við þurfum að fylgjast með hvaða bréf eru stakur bréf, og hverjir eru jafnvel stafi. En við viljum tryggja að við erum ekki bara að leita á stakur og jafnvel vísitölur í band, heldur horfa á stakur og jafnvel stöfum í streng, þannig að við þurfum að eiginlega hafa þennan greinarmun á milli bréf - eins og það er í raun A, B, C, D, eða svo framvegis, og hvaða hlutir eru ekki bókstafir en samt í band okkar. Til dæmis hér, eins og þessi upphrópunarmerki er ekki bréf, en það er samt hluti af band okkar, það er enn a bleikju. Sömuleiðis öll þessi rými - það er ekki skynsamleg að nýta pláss, ekki satt? Þannig að við viljum ganga úr skugga um að við sleppa einhvern veginn þá en samt fylgjast með stuðla og Aftansöngur. Svo svona í verkfærakistu forritun okkar svo langt, ef þú vilt, Við höfum fjölda mismunandi verkfæri sem við höfum talað um. Svo einn, til dæmis, eru breytur, eins og við höfum talað um hér. Annað tól sem við höfum talað um eru aðgerðir. Þannig að við höfum talað um breytur í sauðakóðanum upp hér og það sem við ætlum að nota til að geyma band okkar. Við höfum talað um aðgerðir til að fá lengd band, eins strlen. Við höfum verið að tala um eitthvað annað, og við höfum talað um það fyrir mikið fyrr í kafla dag: lykkjur. Hvað heldur þú krakkar hugsa um að nota lykkju í þessari áætlun? Jared, hvað finnst þér? Myndum við nota lykkju í þessari áætlun? >> Sennilega ekki, nei, vegna þess að þú þarft ekki að fara í gegnum oftar en einu sinni. Jæja, þú þarft ekki að fara í gegnum það oftar en einu sinni? >> Öllu band. Einmitt, svo þú þarft ekki að fara í gegnum streng allt einu sinni. Því miður það gerði nákvæmlega ekkert vit! Þú þarft ekki að fara í gegnum allt band meira en einu sinni. Allt í lagi. Hvað finnst þér? >> Ég held að það er betra að nota þá svo við getum gert eins nyt meðan staðsetning þess er [inaudible] númerið. Frábært, og svo í nyt hvað? Jæja, þannig að við erum að segja að við ættum að nota lykkju vegna þess að við viljum stóran staf á meðan það er ekki tala. Svo - því miður, var að þú vilt bæta við? >> Ég ætlaði að segja að sú leið sem þú meðhöndla streng og það [inaudible] aðskilja [inaudible] á stafi? Já. >> Og þá getum framselja númer - eða byggt á staðsetningu stafina í streng? Já. >> og skilgreina hvort það er skrýtið eða jafnvel og að nýta bréfið sjálft en staðsetning bréf er [inaudible] - því miður. Frábært. Svo bara ágrip. Getur þú minnir mig á nafn aftur - Ég er því miður. >> Charlotte. Charlotte, allt í lagi. Svo hvað Charlotte er að segja, sem er algerlega rétt - nei, þetta finnst gaman að sjálfvirkt undirlið á mig - er sú að ef við lítum á streng svo sem eins og þetta efst - "Takk for the add" - sem röð af stöfum þar sem er í stöðu 0, H er í stöðu 1. A er í 2, þá fengum við 3, 4, 5; Rýmið er í stöðu 6. Í - hvað er staða f? 7! O? 8. R? 9. Og svo höfum við fengið 10, og þá get ég eiginlega ekki skrifað það án þess að það eiginlega að fá sóðalegur á skjánum. En þetta er í raun hvernig við getum talað um strengi í minni. Er það band er röð af stöfum, og þegar við tölum um einstaka staf í streng, við gerum oft svo við að vísa til stöðu að eðli er í band, líklega á sama hátt og við tölum um september vera níundi mánuður ársins eða mánudagur vera fyrsti dagur vikunnar. Svo gefur þetta okkur leið til að reikna út hver sjálfur ert Odd móti jafnvel vegna þess að þú getur séð hér, ef við passa hana upp með þessum T, þú getur séð að allar til stór sjálfur eru í jafnvel stöðum, að minnsta kosti í fyrsta orði, og svo það fá kastað burt þegar við högg að rými, vegna þess að við gerum telja ekki þetta pláss sem bréf, þannig að það er eins og ef við byrjuðum og fór 0, 1, 2, 3, 4, 5, rúm, 6, 7, 8, rúm, 9, og síðan 10, 11, 12, og svo framvegis. Cool, svo við ákveðið verður að nota einhvers konar lykkju að fara yfir hvert stafi aftur. Svo á þessum tímapunkti, Við munum koma aftur til gamla sauðakóðanum hér. Sem hluti af þessari greina hver sjálfur eru hástafi og hver sjálfur ert lágstafir, við munum vilja til að gera þetta í einhvers konar lykkju. Loop, ristill. Hvers konar lykkju, af þeim tegundum af lykkjurnar sem við höfum, virðist vera góður til að nota í þessu tilviki? >> Ég var að hugsa til hliðar. Og hvers vegna ertu að hugsa um fyrir lykkju? >> Vegna þess að það byrjar á núlli, og þá þegar við náum lengd band, og þá hver endurtekning þú getur [inaudible] líka? Já, nákvæmlega. Svo, af mismunandi valkosti af lykkjur, við höfum fyrir lykkjur, en lykkjur, og gera-en lykkjur. Þegar for lykkju er sérstaklega gagnlegt er þegar þú vilt vita konar þar sem þú ert á í lykkju, hversu oft lykkja hefur verið keyrð svo langt. Sem er einmitt það sem við viljum vita í þessu ástandi, eins og Kelly sagði byggt burt af fyrri athugasemd Charlotte sem við viljum vita um stöðu á eðli innan band, og for lykkja mun gefa okkur bara það, því ef við byrjum svona að horfa aftur á band okkar, Ef við byrjum á lykkju okkar á 0, og við förum upp í gegnum lengd öllu band, þá getum við tengja stafinn T með 0 í okkar fyrir lykkju, bréf H með 1 í for lykkju okkar, og svo framvegis, fara alla leið í gegnum the endir af the band. Svo skulum byrja erfðaskrá þetta bara svolítið bara svo þú krakkar fá tilfinningu fyrir hvað þetta lítur út. Ég ætla að spara þetta, þannig að við höfum fengið sauðakóda okkar hér, og ég ætla að eyða öllu. Þannig að ég er með autt borð. Ég ætla að byrja á því að skrifa int main (tóm) { Ég ætla að setja aftur 0 í og þá}. Svo yfirleitt þegar ég byrja að forrita, það er það sem ég byrja á. Ég vista það svo að þú krakkar hafa það. Svo eitt af því fyrsta sem við ræddum um var fá inntak frá notanda og geyma það í streng. Hvernig fáum við inntak frá notanda? >> GetString. GetString, allt í lagi. Svo ef ég tegund GetString () og semíkommu. Við skulum reyna að keyra þetta, mun þetta hlaupa, fyrst af öllu? Og af hverju mun það ekki keyra? >> Þú ert að lýsa yfir breytu. Ég verð að lýsa yfir breytu. Allt í lagi. Svo hvernig á ég að gera það? Ert þú huga að skrifa eitthvað, að deila henni? Og þá getum við draga það upp. Við skulum sjá, Dan, rétt, allt í lagi. Eða Daniel. Eintak sem í, inntak streng = GetString (). Awesome. Mun þetta hlaupa? Við skulum reyna það. Hit hlaupa, senda uppspretta merkjamál, bygging, villa kom upp. Allt í lagi. Svo hvaða gerast hér? Notkun 'band' undeclared auðkenni. >> Við verðum að fela í bókasöfnum? Já, svo er Dan að segja að við verðum að fela í bókasöfnum. Er það það sem þú ætlaðir að segja, Stella? Awesome. Það er ógnvekjandi, svo Stella, getur þú afrita þennan kóða út úr Space Daníels? Ef þú smellir á Daniel Roland Ki, afrita það, og þá verður þú að setja fela línu í, og þá spara það út? Láttu mig vita þegar þú ert tilbúin. Svo er þetta fela setningafræði líka konar angurvær; það er eins og að kjötkássa tag, og þar er meðal annars, og þá eru þessi horn sviga. Munið þið hvernig þetta virkar, eða ætti ég að setja það upp á þessum kóða hérna? >> Ég er góð. Allt í lagi. >> Ég prenta það - ég var ekki viss um hvaða bókasafn, þó. Ó, allt í lagi - já, þannig er það CS50 bókasafn. >> Ó, ég setti stdio bókasafn. Oh, fékk það - já, nei, that's - svo kemur í ljós að band er í raun eitthvað sem er sérstakt við CS50. Það raunverulega er ekki satt band tegund því hérna, band er í tegund stöðu, - við erum að lýsa breytilega heitir inntak af taginu String - og við erum að setja inn á inntak verðmæti sem fær aftur að okkur: framleiðsla þessa GetString virka símtalinu. Þú getur sagt þetta er fall hringja vegna þess að það fékk sviga, eins og printf gerir, bara ekki eins strlen. En strengur er í raun ekki alvöru tegund í C tungumál. Við höfum gert það í gerð, og við munum taka um meira hvað það er í raun í C, vegna þess að það er leið til að vinna með strengi; við höfum bara gert eitthvað til að gera það líta svolítið betur. Svo hér við fara. Hér er númerið Stellu. Það er got að # include . Aðrir vilja kalla þetta eins kjötkássa eru stundum hvöss eru. Nú getum við byrjað það, keyra hana, og við fáum enn villu. Við skulum sjá hvað er að gerast. "Ónotuð breytunni" inntak "." Jæja, svo það er kúl, það er svalt. Ég meina, það er ekki mjög kaldur, vegna þess að við erum að fá villu og það er ekki í gangi, en hvað þetta er að segja að við höfum ekki notað breytu okkar, sem vit. Við höfum ekki reynt að gera neitt við það. Þetta er leið til að Clang er að reyna að hjálpa okkur að tryggja að við erum ekki bara að nota breytur og þá óvart að kalla þá eitthvað annað síðar í númerið okkar, hjálpa okkur að forðast villur sem leið. Allt í lagi, þannig að við höfum fengið inntak frá notanda, við geymt það í breytu. Næsta skref var að þá byrja að horfa á alla stafina í streng og finna hver sjálfur ert að hástafi og hverjir eiga að vera lágstafir. Og eins og Kelly og Charlotte kom upp, við gerum þetta með því að nota til hliðar. Svo er einhver man setningafræði a for lykkju og langar til að taka a stunga á að bara að skrifa fyrsta línan af fyrir lykkju, bara til hluti? Kelly, sem þú vilt gefa það a reyna? >> Já, svo þú verður að frumstilla fyrst, þannig að ég setti i = 0, og ég gerði i > Já, ruglaður ég upp smá, en já. Jæja, við skulum draga það upp. Awesome. >> En svo ég vissi ekki hvort þú hefðir það - Já, allt í lagi. Svo hér er það sem er Kelly fékk: við skulum líta á það fljótt. Svo hún er ma cs50 bókasafn efst. Hún er með staðlaða IO bókasafn efst, og staðall IO hefur störf eins printf, þannig að ef þú vilt alltaf að nota printf, þú þarft að línu. Og svo hún ma band bókasafn, sem við þurfum, því strengurinn Safnið hefur strlen virka, sem við munum fá í bara smá. Þannig að ef við lítum á það sem Kelly hefur gert hér, hægt að ganga okkur í gegnum það sem þú gerðir? >> Já, það - ég meina, ég fékk villur, svo - Já, nei, it's - >> Svo ég vildi hringja í band sem ég fékk bara "band". Mig langaði til að prenta út streng og þá er ég - Ég vildi eins og að stilla strenginn og eins fjölda hvern staf að vera öðruvísi [inaudible], ekki satt? Og þá vildi ég að byrja í stöðu 0 og síðan á 2 rými, Ég ætlaði að nýta, svo ég lýst bara eins 23, vegna þess að ég var að horfa á ASCII töflunni. Svo er það sem ég var að hugsa - ég veit að það er ekki rétt. Náði því, þannig að þetta er frábær byrjun. Ég held að mikið af ramma er til staðar hér. Við skulum fara í gegnum konar línu fyrir línu og sjá hvað er að gerast. Svo eins og ég eins og til að gera þetta er bara byrja á því að setja saman kóða og láta þýðanda segja mér eins og hvað er rangt við númerið mitt, vegna þess að þýðandinn er mjög góður í að segja þér hvað er rangt við númerið þitt. Þannig að ef við spilum hann, byggja, og það þýðir ekki að byggja. Það segir að það var villa, þannig að ef við skruna niður og líta á fyrsta villa, það sagði - við að fletta aftur upp á toppinn, getum við séð að það eru 5 villur mynda hérna neðst. Úbbs, er það í raun skera burt. Ég giska á það er bara ekki að fara að fá allir betri. Hér förum. Þannig að það eru 5 samtals villur mynda. Hér get ég aðeins séð fyrstu 2, svo ég geti fært þetta upp smá og þá konar fletta upp. Þetta er stjórn sem var að keyra að þýða kóðann, og þá fyrst villa var í file.c hérna: "Expected finna eða '('", og það var á þessari línu þar sem við sögðum band = GetString (). Þú getur séð hér að það var á línu 8 í file.c, og þá tel ég að þetta er eðli 12 - það er villa. Svo hvað er að gerast rangt á línu 8 - Kelly? >> Þú þarft bara að hringja í hann, eins og, bréf eða eitthvað, eins og s band eða eitthvað? Já, svo kemur í ljós að þessar sérstöku nöfn tegund, svo band, int, char, stutt, þeir eru allir sérstök leitarorð, og þú getur í raun ekki að nota þá eins og nöfn breytur, vegna þess að þýðandinn lítur á það og segir, "Oh, ég veit það er gerð," svo þú getur ekki í raun að hafa band breytu sem heitir strengur, eins og ég er að reyna að gera hér, þetta mun ekki virka. En í staðinn, getum við kalla það eitthvað eins og S eða ST eða str. Við einnig gæti ekki kalla það int. Við getum ekki með band sem heitir int. Við getum ekki með band sem heitir bleikju, enginn af þeim virkar. Þannig að við munum bara kalla það er í bili. Awesome. Svo það næsta er að gerast á þessari línu? String - þetta lína lítur nokkuð gott? Við skulum gefa það annar reyna, skulum hlaupa það. Jæja, þannig að við fáum enn villur. Að þessu sinni erum við niður í 4 villur. Svo fengum við einn af þeim. Við skulum fara upp. "Óvænt Heiti 'string': ráð tjáningu," já? >> Já, það er vegna þess að ég reyndi að nefna band. Já, þannig að það lítur út eins og við nú líka að fara festa allar þessar tilvísanir í band. Þú getur séð að það er vísun í band hér, einn hér, einn hér, svo að við getum fært þetta allt til s. Frábært. Jæja, keyra hana aftur. Building - annar villa kom upp. Jæja, nú erum við niður í eina villu, svo int i = s og þá hornklofum. Svo getur þú sagt okkur svolítið um hvað þú varst að gera hér, Kelly? >> Já. Það var á línu 10. >> Ég veit ekki hvort við þurftum það allt, en ég held að ég var að reyna að - Ég spara það svo þú getur fylgst með. >> Ég held að ég hafi að reyna að segja það að byrja í stöðu 0 í upphafi minn fyrir lykkju, þannig að ég held kannski að segja þyrfti. Svo bara til að ágrip, þú varst að segja að þetta - þú varst að reyna að byrja í stöðu 0 og fá þetta - já, þannig að ég held að fyrr, líka þegar þú varst að ganga í gegnum kóða, þú varst að tala um hvernig þú vildir að meðhöndla streng sem fjölda svo við getum opna hvern staf fyrir sig. Ég held Dan nefnd fylki, líka, að reyna að breyta strengi í fylki. Það kemur í ljós svona undir hetta, band er í raun geymd sem fylki nú þegar, og þú getur nálgast það eins og fylki; það er engin viðskipti sem þú þarft að gera. A band isn't - svo - a band er í raun ekki fylki, en þú getur nálgast það sem slíkt, vegna þess að allar persónurnar eru geymdar einn við hliðina á hvor aðra í minni, þannig að ef þú vilt fá fyrsta eðli band, það er það sama og að fá fyrsta heiltölu í heiltölu fylki. Svo við oft - we'll vísa til 2 eins og ó, eins og að vera a band, eins og að vera fylki, jafnvel þótt það í raun - they're mjög mismunandi hluti, en þú getur meðhöndla þá mjög mikill the sami. Svo kemur í ljós að þessi lína í raun - við þurfum ekki að gera neina breytingu, og í raun, þetta er í raun ekki gild tjáning, sem er það sem þýðanda okkar er að segja okkur. Það er að segja, "Hey, það ráð að tjáningu, og það sem ég hef fengið hér er eitthvað sem er ekki að tjá. " Til að lýsa fylki, allt sem þú þarft að gera er eitthvað eins og þetta með semíkommu, og þá segja array hversu lengi þú vilt að hún verði, eins og 5, þannig að þetta lína 10 mun lýsa fylki kallast i með 5 heiltölur í það. Þetta er innskot, þetta er ekki nauðsynlegt til að kóða, en þetta er - þetta er góður af því að yfirlýsing lítur út. >> Hvernig myndir þú ekki nota bleikju i [strlen (s)]? Bleikju i [strlen (s)]? >> Bleikju i, og þá innan hornklofa strlen (s). Já, þannig að við gætum - við gætum gert þetta, og þetta myndi lýsa - hvað myndi það gera? >> Ég held að það myndi lýsa fylki um, eins og - í - ó, þú þarft ekki að I - ó, já, örugglega þú þarft ekki i. Þú lýsa fjölda stafa í s lengd. Og svo er það er Sam að segja að þessa línu 10 - Leyfðu mér að setja smá pláss þar í millum og restin svo við getum einangrað það - Þessi lína 10 myndi lýsa fylki á chars, strlen (s) virði þeirra, en við raunverulega þurfum i, og ástæða þess að við þurfum að ég er vegna þess að við þurfum að gefa fylki nafn; Annars myndum við ekki hafa a vegur til að vísa til fjölda seinna í kóðanum. Svo er þetta hérna array nafn og inni er lengd. Þetta mun gefa okkur fylki, en þetta er - aftur, þetta er yfirlýsing. Það er ekki verkefni, það er ekki frumstilling. Ef við lýsa þessu fylki eins og þetta, það er í raun ekkert í innihald fylkisins. Það er bara rusl - hvað sem er þar. Og eins og við sögðum, við í raun ekki einu sinni þurft að gera þetta viðskipti, vegna þess að við getum þegar við band s sem fylki. Ég veit að við erum að keyra svolítið lengi á réttum tíma, en ég vil bara mjög fljótt að komast að þessu fyrir lykkja og sýna þér hvernig á að sjá einstaka stafi í fylking, því það er lykillinn að því verkefni okkar. Og þá munum við láta þig fara þaðan. Svo hér höfum við fengið a for lykkju það lítur næstum gott. Það er ekki alveg næstum þarna? What's - hvað er ekki alveg rétt um þetta fyrir lykkju? >> Enginn hrokkið axlabönd? Engar hrokkið axlabönd, fyrir einn. Viltu vera viss um að við höfum líkama lykkju með hrokkið axlabönd. Úbbs, ekki veldi Brace! Og hvað er næstur hlutur sem við þurfum að gera við þessa lykkju? Ef ég reyna keyra hann, Hvað er þetta villa sem ég fá? Ég fæ allar þessar villur - ég þarf að frumstilla i. Frábært. Svo þetta verður lykkja - þetta er ekki alveg það, en það er að fá mjög nálægt. Þessi kóði sem við getum keyrt, byggja, villa kemur enn. Hvers vegna er það að kvarta enn, segja tjáningu er ónotaður, og það er vegna þess að þessi lína gerir ekki neitt. Við vildum ekki geyma það einhvers staðar, við fengum ekki að vista niðurstöðuna. Hvar ættum við að bjarga þessari niðurstöðu? >> S eða i? Einmitt, og þetta angurvær setningafræði, þetta er með hornklofum þýðir opna i-th eðli s. Það er að fara að vera eitthvað sem er mjög mikilvægt fyrir verkefnið. Því miður erum við að fara að hætta hér, þannig að Sebastian hluti getur komið í, en ég er ánægður að vera eftir úti og taka einhverjar spurningar. Svo þakka ykkur fyrir komuna. Þetta ætti nú hlaðið, byggja, hlaupa. Við getum inn streng eins og "halló" og það prentar "QOX". [Hlátur] Svo ekki alveg þar, en færa, fá til þessara lykkjur! Takk fyrir að koma, og ég ætla að vera úti.