SIARADWR 1: Gadewch i ni siarad am ddŵr.
Yn y broblem hon, rydym yn gofyn i'r defnyddiwr i ddweud ni pa mor hir mewn munudau oedd eu cawod
ac yna rydym yn cyfrifo'r cyfwerth nifer o boteli o ddŵr
bod eu cawod a ddefnyddir.
>> Felly beth yw ein i-wneud yn am y broblem hon?
Yn gyntaf, rydym yn mynd i eisiau i ysgogi ac yna dilysu
mewnbwn y mae'r defnyddiwr yn rhoi i ni.
Unwaith y byddwn yn sicrhau ein bod yn cael mewnbwn defnyddwyr dilys,
rydyn ni'n mynd i gyfrifo'r nifer cyfatebol o boteli o ddŵr
nad oedd gan y defnyddwyr yn ystod eu cawod, ac yna rydym yn
mynd i ddweud iddynt gan argraffu y rhif hwnnw.
>> Felly gadewch i ni fynd i'r afael â'n cyntaf tasg, annog a dilysu
y mewnbwn defnyddwyr.
Ar gyfer hyn rydym wedi ysgrifennu swyddogaeth i chi a elwir yn
get_int lleoli yn y Llyfrgell CS50.
get_int yn sicrhau bod y mewnbynnau defnyddiwr yn gyfanrif, felly unrhyw rifau positif,
rhifau negyddol, neu sero yn cael eu derbyn i gyd.
Ond os bydd y defnyddiwr yn mewnbynnau unrhyw beth arall, felly mae unrhyw gyfuniad o lythrennau neu rifau
neu rifau degol, yna bydd y Bydd y defnyddiwr yn cael ei annog i ailgeisio
ac ni fydd y swyddogaeth yn derbyn unrhyw beth nes bod y defnyddiwr yn rhoi cyfanrif iddynt.
>> Felly sut ydym yn defnyddio get_int?
Os byddwch yn agor eich lle gwaith a creu ffeil o'r enw integer.c gadewch i ni
teipiwch y canlynol.
Hashtag cynnwys cs50.h.
Mae hyn yn angenrheidiol oherwydd get_int yn swyddogaeth llyfrgell cs50,
felly mae'n rhaid i ni hashtag gynnwys ei datganiad er mwyn
i ddefnyddio'r swyddogaeth.
Ac yna yn fy mhrif gweithredu Im 'jyst yn mynd
i wneud dim ond ffoniwch y get_int swyddogaeth.
>> Felly gadewch i ni redeg hyn a gweld sut mae'n gweithio.
Rwyf eisoes wedi llunio, felly gadewch i ni jyst mynd yn ei flaen ac yn rhedeg y rhaglen hon,
./integer.
Yma, mae gen i prydlon a dyma lle rwy'n mewnbwn y gwerth.
Dweud yr wyf yn rhoi mewn dim ond rhai cyfanrif, 50, yn eithrio'r rhaglen a Gadael
a dyna hynny.
>> Ond dweud fy mod yn rhedeg eto ac Rwyf mewnbwn rhywbeth arall.
Efallai, helo byd.
Nid yw hynny'n cyfanrif felly mae'r bydd y rhaglen yn annog fi i ailgeisio.
Gadewch i ni geisio eto gyda efallai degol tro hwn.
0.5, unwaith eto, nid yn gyfanrif felly na fydd y rhaglen yn ei dderbyn
a bydd yn dweud wrthyf i ailgeisio.
Felly, gadewch i ni roi rhif arall.
Mae'r rhaglen yn derbyn y peth, ymddiswyddo, ac rydym yn ei wneud.
>> Felly, yn awr mae gennym swyddogaeth sy'n ein galluogi ac yn sicrhau
bod y defnyddiwr mewnbynnau yn cyfanrif, ond sut allwn ni
mewn gwirionedd yn cadw golwg ar y bwydo cyfanrifol gan y defnyddiwr?
Wel, pob byddwn yn ei wneud yw siop gwerth hwn mewn newidyn, dywedwch n.
Felly os wyf yn datgan yn gyfanrif n, ac yr wyf yn gosod y gwerth i get_int,
Yna n Bydd wedyn yn storio beth bynnag gwerthfawrogi'r defnyddiwr mewnbynnu.
>> Mae pob hawl, felly erbyn hyn rydym wedi sicrhau bod Bydd y defnyddiwr yn rhoi yn gyfanrif ni
ac rydym yn gwybod sut i gadw golwg o'r cyfanrif, ond cofiwch,
cyfanrifau yn rhai cadarnhaol a negyddol.
Felly nid yw'n wir yn gwneud synnwyr yng nghyd-destun y broblem hon
bod y defnyddiwr yn cymryd cawod o yn dweud 12 munud negyddol.
Felly mae angen i ni wneud yn siŵr bod y defnyddiwr mewn gwirionedd yn rhoi cyfanrif positif inni.
Nawr, nid oes gennym ddim ond swyddogaeth sengl ar gyfer hynny,
felly rydym yn mynd i gael i greu bod ni ein hunain.
>> Felly rydym am barhaus annog y defnyddiwr
nes eu bod yn rhoi cyfanrif positif inni.
Os ydw i'n gwneud rhywbeth yn barhaus, yna mae hynny'n debyg i dolen, ailadrodd.
Felly un o'r lluniadau a ddefnyddiwn yn c i weithredu ailadrodd a dolenni
yw dolen gyfnod.
Felly dolen tra, fel y a ddangosir yma, bydd gweithredu
beth bynnag sydd yng nghorff y ddolen fel belled â bod y yn gwerthuso cyflwr a roddir
i wir.
Cyn gynted ag y cyflwr hwnnw gwerthuso i ffug, yna
bydd y rhaglen yn symud ymlaen i beth bynnag dod ar ôl y corff y ddolen.
>> Felly, er bod dolenni yn mynd i fod yn ddefnyddiol iawn yn CS50.
Ond yn yr arbennig achos, rydym yn gwybod ein bod ni'n
mynd i annog y defnyddiwr o leiaf unwaith ac wedyn dim ond ddolen os bydd angen.
Felly dyma ni yn dod i lluniad arbennig a dyna
debyg iawn i'r tra Gelwir dolen dolen do-gyfnod.
>> Felly dolen do-tra executes corff y ddolen o leiaf unwaith
ac yna mae'n gwiriadau i weld a ddylai weithredu,
yn hytrach na dolen tra, a fydd yn gwirio cyflwr
ac yna gweithredu y corff.
Felly, mewn dolen do-tra yr hyn yr ydym efallai ei wneud yw annog y defnyddiwr ar gyfer cyfanrif,
ac yna gwirio os yw'n annilys neu beidio.
Os yw'n annilys, yna rydym annhymerus ' ailadrodd y broses yn gofyn i'r defnyddiwr
i roi cyfanrif arall ni, ac yna dim ond pan fydd y cyfanrif yn ddilys,
byddwn yn parhau i beth bynnag a ddaw wedyn.
>> Nawr byddwch yn sylwi bod y datganiad o'r cyfanrif n
ychydig yn wahanol i'r hyn yr ydym gwnaeth o'r blaen yn yr enghraifft flaenorol
ac mae hyn oherwydd y cwmpas.
Os ydym wedi datgan y cyfanrif n y tu mewn o'r corff y ddolen do-tra,
yna ni fyddem yn gallu cael mynediad fod werth n tu allan i'r rhai cyrliog
bresys dangos y corff y ddolen.
Ond rydym yn mewn gwirionedd yn awyddus i gael mynediad at y werth n nes ymlaen yn ein rhaglen.
>> Iawn, felly yn awr gadewch i ni siarad am yr hyn y dylai amod hwn fod.
Rydym eisiau yn unig reprompt y defnyddiwr cyhyd ag n yn annilys.
Felly yn meddwl i chi eich hun beth yw annilys Byddai gwerth cyfanrif edrych fel
ac yna creu Boolean mynegiant i fynegi hynny.
>> Rydym yn bron â gorffen gyda'n subtask o anogaeth a dilysu mewnbwn defnyddwyr.
Felly gadewch i ni wneud hyn ychydig ychydig yn fwy cyfeillgar i'r defnyddiwr
ac yn rhoi i'r defnyddiwr ychydig ychydig mwy o wybodaeth
yr hyn rydym yn eu anogaeth i.
Felly gadewch i ni annog y defnyddiwr, fesul y spec, gyda'r cofnodion llinyn.
Felly gan ddefnyddio eich datganiadau printf, yn gwneud yn siŵr eich bod yn cyd-fynd yn union hyn.
>> Iawn.
Felly, yn awr mae gennym defnyddiwr dilys mewnbwn, cyfanrif positif
gwerth am faint o funudau maent yn ei wario yn y gawod.
Felly beth nesaf yw cyfrifo y nifer cyfatebol o boteli.
Yr hyn yr ydym yn mynd i wneud yma a allai yn amlwg iawn i chi ar y dechrau,
ac mae hynny'n iawn.
Yr hyn yr ydym eisiau ei wneud yw ein bod am ddechrau ymarfer
y syniad o ganfod patrymau a datblygu fformiwlâu ar gyfer y broblem.
>> Felly, rydym yn gwybod unol â'r fanyleb bod un munud yn y gawod
yn cyfateb i tua 12 poteli o ddŵr.
Felly, yna byddai dau funud fod yn gyfwerth â 24,
a byddai pum munud yn cyfateb i 60.
Felly, yn awr os ydych yn meddwl gennych, yna gadewch i ni
weld a allwch chi ddod i fyny gyda phatrwm neu fformiwla
i fynegi os ydym wedi dweud, n munud, faint o boteli o ddŵr
a fyddai'n cael ei fynegi yn nhermau n?
>> Unwaith eto, er bod hyn allai fod yn syml ar y dechrau,
yn nes ymlaen pan fyddwn yn cyrraedd problemau mwy cymhleth
rydym yn mynd i eisiau mynd i mewn i yr arfer o nodi
patrymau a datblygu fformiwlâu at chyfrif pethau hyn allan.
>> Yn c oes gennych fynediad i'r gweithrediadau rhifyddeg safonol,
adio, tynnu, lluosi, a rhannu.
Felly byddaf yn gadael i chi nawr at chyfrif i maes
sut i fynegi'r nifer cyfatebol o boteli
bod y defnyddiwr a ddefnyddir yn ystod eu cawod.
>> Mae pob hawl, rydym yn gwneud bron.
Rydym wedi ysgogi'r defnyddiwr am eu mewnbwn, rydym wedi sicrhau ei fod yn gyfraniad dilys,
ac yna rydym wedi cyfrifedig gwybod sut i gyfrifo
nifer o boteli y maent yn ei fwyta.
Felly, y peth olaf i'w wneud yw allbwn y nifer cyfatebol o boteli
a gobeithio annog iddynt i warchod rhywfaint o ddŵr.
>> Outputting bydd gwerth fod yn ddatganiad printf.
Os wyf eisiau dweud fy mod i chi cael tri anifeiliaid anwes, er enghraifft,
Efallai fy mod yn defnyddio datganiad printf sy'n edrych yn debyg i hyn.
Mae gen i dri anifeiliaid anwes, ac yn newydd lein ar gyfer fformatio 'n glws.
>> Nawr, nid ydym am yn syml cod caled bethau.
Dweud y nifer o fy anifeiliaid anwes yn newid dros amser.
Yna rwy'n mynd i wneud defnydd o dalfannau yn fy natganiad printf.
Felly dyma fy rhif yn gyfanrif.
Felly, yr wyf i'n mynd i wneud dalfan am cyfanrif defnyddio% i.
Rydw i'n mynd i ysgrifennu y llinyn, ac yna ar ôl y llinyn
Rwy'n ysgrifennu coma ac yna'r newidyn yr wyf am ei argraffu.
Felly bydd y gwerth yn cael ei argraffu yn lle hynny placeholder,% i.
>> Gallwch ddefnyddio bachau, fel y yn dda, er fflotiau gyda% yn f.
Gallwch hefyd gael lluosog dalfannau mewn llinyn.
Er enghraifft, os oes gennyf rai rif cŵn a rhyw nifer o cathod,
Yr wyf yn rhoi dau dalfannau yma ac yna fy dau newidyn er perthnasol.
>> Felly, nawr ein bod yn gwybod sut i argraffu gwerthoedd storio mewn newidynnau,
y peth olaf un i wneud yw sicrhau ein bod yn
argraffwch y gwerth yn yr union fformat a nodir yn y fanyleb.
Gyda hynny, rydym wedi ysgogi'r defnyddwyr a ddilyswyd eu mewnbwn.
hynny rydym wedi cyfrifo cyfwerth nifer o boteli o ddŵr
eu bod yn bwyta yn ystod eu cawod, ac rydym wedi outputted bod gwerth iddynt.
Ac felly, rydym wedi cwblhau dŵr.
>> Fy enw i yw [? Zamila,?] ac mae hyn yn CS50.