Ræðumaður 1: Við skulum tala um vatn.
Í þessu vandamáli, biðjum við notandann til að segja okkur hversu lengi í mínútum Veitingahús þeirra var
og þá erum við að reikna ígildi Fjöldi flöskur af vatni
að sturtu þeirra nota.
>> Svo það eru okkar að-do er fyrir þetta vandamál?
Í fyrsta lagi erum við að fara að vilja að hvetja og þá staðfesta
inntak sem notandinn gefur okkur.
Þegar við tryggt að við hafa gilt notandi inntak,
við erum að fara að reikna jafngildir fjölda flöskur af vatni
sem notandinn var á tímum sturta þeirra, og þá erum við
fara að segja þeim frá prenta út að tala.
>> Svo skulum takast fyrst okkar verkefni, vekur og staðfesta
notandi inntak.
Fyrir þetta höfum við skrifað virka því að þú kallaðir
get_int staðsett í CS50 bókasafninu.
get_int tryggir að notandinn inntak heiltala, svo jákvæðum tölum,
neikvæðar tölur, eða núll eru öll samþykkt.
En ef notandi inntak neitt annað, svo eitthvert sambland af bókstöfum eða tölum
eða aukastaf númer, þá Notandinn verður beðinn um að reyna aftur
og virka mun ekki taka neitt þar sem notandinn gefur þeim heiltölu.
>> Svo hvernig gera við notum get_int?
Ef þú opnar vinnusvæði og búa til skrá sem heitir integer.c skulum
tegund the hópur stuðningsmanna.
Hashtag eru cs50.h.
Þetta er nauðsynlegt vegna þess að get_int er CS50 bókasafn virka,
þannig að við verðum myllumerki eru Yfirlýsing hennar í röð
að nota aðgerðina.
Og þá í Main mínum virka ég ætla bara að fara
að einfaldlega hringja í virka get_int.
>> Svo skulum hlaupa þetta og sjá hvernig það virkar.
Ég hef þegar tekið saman það, þannig að við skulum bara fara á undan og keyra þetta forrit,
./integer.
Hér hef ég hvetja og hér er þar sem ég inntak gildi.
Segja að ég setti í bara einhverja heiltölu, 50, the program excepts og kvittir
og það er það.
>> En ég segi að keyra hana aftur og Ég inntak eitthvað annað.
Kannski, halló heimur.
Það er ekki heil tala svo Forritið mun hvetja mig til að reyna aftur.
Við skulum reyna aftur með kannski aukastaf þetta sinn.
0,5, aftur, ekki heil tala svo the program vilja ekki samþykkja það
og það mun segja mér að reyna aftur.
Svo skulum gefa það annað númer.
The program samþykkir það, kvittir, og við erum að gera.
>> Svo nú höfum við fall sem gerir okkur og tryggir
að notandi inntak heiltala, en hvernig getum við
reyndar halda utan um heiltölu inputted af notanda?
Jæja, allt sem við munum gera er verslun þetta gildi í breytu, segja n.
Þannig að ef ég lýsa heiltölu n, og ég setti þetta gildi til get_int,
þá n mun þá geyma hvað gildi notanda slegin.
>> Allt í lagi, svo nú höfum við tryggt að notandinn mun gefa okkur heiltölu
og við vitum hvernig á að halda utan af heiltölu, en muna,
heiltölur eru bæði jákvæð og neikvæð.
Þannig að það skiptir í raun ekki skynsamleg í tengslum við þetta vandamál
að notandinn tekur í sturtu á að segja neikvæð 12 mínútur.
Þannig að við þurfum að ganga úr skugga um að notandi reyndar gefur okkur jákvæða heiltölu.
Nú höfum við ekki bara einn valkost fyrir það,
þannig að við erum að fara að hafa að búa til þessi sjálf.
>> Þannig að við viljum stöðugt hvetja notandann
þangað til þeir gefa okkur jákvæða heiltölu.
Ef ég er að gera eitthvað stöðugt síðan það er svipað og að lykkju, endurtekningu.
Svo einu býr sem við notum í c að innleiða endurtekningu og lykkjur
er á meðan lykkja.
Svo á meðan lykkja, sem sýnt hér, mun framkvæma
hvað er í líkama lykkju sem lengi sem gefnar ástand metur
að sanna.
Um leið og því ástandi metur að rangar, þá
forritið mun halda áfram að hvað kemur eftir meginmál lykkju.
>> Svo á meðan lykkjur eru að fara að verið mjög gagnlegt í CS50.
En í þessu tiltekna ræða, vitum við að við erum
að fara að hvetja notandann að minnsta kosti einu sinni og þá aðeins lykkja ef þörf krefur.
Svo hér komum við að sérstakt reisa og það er
mjög svipað stund lykkja kallast do-while lykkju.
>> Svo keyrir a do-while lykkju á Lík lykkju minnsta kosti einu sinni
og þá athugar hún hvort það ætti að framkvæma,
öfugt við while lykkju, sem mun athuga ástand
og þá framkvæma líkamann.
Svo í do-while lykkju hvað við gætum gera er að hvetja notandann til heiltala,
og þá athuga hvort það er ógilt eða ekki.
Ef það er ógilt, þá munum við endurtaka ferlið spyrja notandann
að gefa okkur annað heiltölu, og þá aðeins þegar það heiltala er í gildi,
Við munum halda áfram að hvað kemur á eftir.
>> Nú þú munt taka eftir því að Yfirlýsing um heiltölu n
er aðeins öðruvísi við það sem við gerði áður í fyrra dæmi
og þetta er vegna þess að umfangi.
Ef við hefðum lýsti heiltölu n inni af líkama do-while lykkju,
þá myndum við ekki vera fær til aðgangur sem gildi n utan þessara hrokkið
axlabönd bendir líkama lykkju.
En við í raun vilja til að fá aðgang að gildi n síðar í dagskrá okkar.
>> OK, svo nú skulum við tala um hvað þetta ástand ætti að vera.
Við viljum aðeins reprompt á Notandinn svo lengi sem n er ógilt.
Svo hugsa til sjálfur hvað ógild heiltölu gildi myndi líta út eins og
og þá að búa til Boolean tjáning til að tjá það.
>> Við erum næstum búin með subtask okkar af innblæstri staðfesta notandi inntak.
Svo skulum gera þetta svolítið aðeins meira notendavænt
og gefa notandanum a lítill aðeins meira um
af því sem við erum að vekur þá til.
Svo skulum hvetja notandann, fyrir að sérstakur, með band mínútur.
Svo nota printf fullyrðingar þínar, gera viss um að þú passa þetta einmitt.
>> Allt í lagi.
Svo nú höfum gilt notanda inntak, jákvæða heiltölu
gildi fyrir hversu margar mínútur þeir eyddu í sturtu.
Svo er það næsta er að reikna sem nemur fjölda flaskna.
Það sem við erum að fara að gera hér gæti vera mjög augljóst að þér í fyrstu,
og það er allt í lagi.
Það sem við viljum gera er að við langar að byrja að æfa
hugmyndin um að greina mynstur og þróa formúlur fyrir vandamálinu.
>> Þannig að við erum sagði á sérstakur sem eina mínútu í sturtu
jafngildir um það bil 12 flöskur af vatni.
Svo þá tvær mínútur myndi jafngilda 24,
og fimm mínútur vildi jafngilda 60.
Svo nú ef þú heldur þú hefur fengið það, þá skulum
sjá hvort þú getur komið upp með mynstri eða formúlu
til að tjá hvort við höfum sagt, n mínútur, hversu margar flöskur af vatni
væri að setja fram með tilliti til n?
>> Aftur, jafnvel þótt það gæti verið einfalt í fyrstu,
seinna þegar við komum til flóknari vandamál
við erum að fara til að vilja komast í iðkun skilgreina
mynstur og þróa formúlur að reikna þetta út.
>> Í c þú hefur aðgang að staðall reikniaðgerðum,
viðbót, frádráttur, margföldun og deilingu.
Svo ég ætla að láta hana í þú nú að reikna út
hvernig á að tjá jafngildir fjölda flaskna
sem notandi neytt meðan sturtu þeirra.
>> Allt í lagi, við erum næstum búin.
Við höfum beðið notandann um inntak þeirra, við höfum tryggt að það er gild inntak,
og þá höfum við mynstrağur út hvernig að reikna út hvað
fjölda flaskna sem þeir neytt.
Svo síðastur hlutur að gera er að framleiðsla sem nemur fjölda flaskna
og vonandi hvetja þá til að vernda smá vatn.
>> Outputting gildi verður vera printf yfirlýsingu.
Ef ég vildi segja þér að ég hafa þrjú gæludýr, til dæmis,
Ég gæti notað printf yfirlýsingu sem lítur eitthvað eins og this.
Ég hef þrjár gæludýr, og ný lína fyrir gott formatting.
>> Nú erum við viljum ekki að einfaldlega erfitt kóða hluti.
Segja fjölda minn gæludýr breytist með tímanum.
Þá ætla ég að nýta Staðgenglar í yfirlýsingu printf mínum.
Svo hér númerið mitt er heiltala.
Þannig að ég ætla að gera tákn til heiltala með% i.
Ég ætla að skrifa band, og þá eftir strengnum
Ég skrifa kommu og síðan breyta sem ég vil prenta.
Svo sem gildi verður prentað í stað þess tákn,% i.
>> Þú getur notað staðgengla, sem vel, að fljóta með% f.
Þú getur einnig hafa margar Staðgenglar í streng.
Til dæmis, ef ég hef einhvern fjölda hundum og sumir tala af ketti,
Ég setti tvær staðgengla hér og þá tvær breytur mínir í viðkomandi röð.
>> Svo nú er að við vitum hvernig á að prenta gildin eru geymdar í breytum,
mjög síðasta sem að gera er að tryggja að við
prenta gildi í nákvæmlega sniði fram í útboðsskilmálum.
Með þessi, höfum við beðið um notandi og fullgilt inntak þeirra.
Við höfum síðan reiknaður jafnvirði Fjöldi flöskur af vatni
að þeir neyta á meðan sturtu þeirra, og við höfum outputted þessi gildi til þeirra.
Og svo höfum við lokið vatni.
>> Ég heiti [? Zamila,?] og þetta er CS50.