Speaker 1: Ejja nitkellmu dwar l-ilma.
F'dan il-problema, aħna nistaqsu lill-utent li tgħid us kemm fil-minuti doċċa tagħhom kienet
u allura aħna jikkalkulaw l-ekwivalenti numru ta 'fliexken ta' ilma
li doċċa tagħhom jintużaw.
>> Allura x'inhuma s tagħna li-do għal din il-problema?
L-ewwel, aħna qed tmur jridu biex tkun inkoraġġuta u mbagħad jivvalidaw
l-input li l-utent tagħtina.
Ladarba irridu nassiguraw li għandhom jintuza mill-utent validu,
aħna qed tmur biex tikkalkula l- għadd ekwivalenti ta 'fliexken ta' ilma
li l-utent kellha matul doċċa tagħhom, u allura aħna qed
ser jgħidulhom mill istampar ta 'din in-numru.
>> Mela ejja tindirizza tagħna ewwel kompitu, tinċita u l-validazzjoni
l-input utent.
Għal dan aħna ve miktub funzjoni għalik imsejħa
get_int jinsabu fil-Librerija CS50.
get_int jiżgura li l-inputs utent integer, sabiex kwalunkwe numri pożittivi,
numri negattivi, jew żero huma kollha aċċettati.
Iżda jekk l-utent inputs xi ħaġa oħra, sabiex kwalunkwe kombinazzjoni ta 'ittri jew numri
jew numri deċimali, allura l- utent se tkun imħeġġa biex retry
u l-funzjoni mhux se taċċetta xejn sakemm l-utent tagħtihom numru sħiħ.
>> Allura kif do nużaw get_int?
Jekk inti tiftaħ workspace tiegħek u toħloq fajl imsemmi integer.c ejja
tip li ġej.
Hashtag jinkludu cs50.h.
Dan huwa meħtieġ għaliex get_int hija funzjoni librerija CS50,
għalhekk irridu hashtag tinkludi dikjarazzjoni tiegħu bil-għan
li tuża l-funzjoni.
U mbagħad fl prinċipali tiegħi funzjoni Jien biss se
li sempliċiment sejħa tal-get_int funzjoni.
>> Mela ejja run dan u tara kif taħdem.
Stajt diġà kkompilata dan, hekk ejja biss jimxi 'l quddiem u run dan il-programm,
./integer.
Hawnhekk għandi pront u hawn fejn jien kontribut il-valur.
Say I jitqiegħdu biss ftit numru sħiħ, 50, il excepts-programm u quits
u li li.
>> Imma ngħid jien run mill-ġdid u I input xi ħaġa oħra.
Forsi, bonjour dinja.
Li mhux integer hekk il programm se pront lili biex retry.
Ejja erġa 'pprova ma' forsi deċimali dan iż-żmien.
0.5, għal darb'oħra, mhux numru sħiħ hekk il-programm mhux se taċċetta dan
u dan ser tell me retry.
Mela ejja tagħtiha numru ieħor.
Il-programm taċċetta dan, quits, u aħna qed isir.
>> Allura issa għandna funzjoni li jippermetti u jassigura,
li l-utent inputs ta ' numru sħiħ, imma kif nistgħu
fil-fatt jżommu rekord tal- numru sħiħ inputted mill-utent?
Ukoll, kollox aħna ser tagħmel hu maħżen dan il-valur fil-varjabbli, jiġifieri n.
Mela jekk jien niddikjara integer n, u I stabbiliti l-valur għall get_int,
allura n mbagħad aħżen x'ikun valur l-utent inputted.
>> Kull dritt, hekk issa konna assigurat li l-utent se tagħtina numru sħiħ
u nafu kif biex iżommu kont tal-eqreb numru sħiħ, iżda tiftakar,
interi huma kemm pożittivi u negattivi.
Allura ma verament jagħmel sens fil-kuntest ta 'din il-problema
li l-utent jieħu doċċa tal jgħidu negattivi 12 minuta.
Għalhekk għandna bżonn li jiġi żgurat li l-utent fil-fatt tagħtina numru sħiħ pożittiv.
Issa aħna ma jkollhomx biss funzjoni waħda għal dan,
hekk aħna qed tmur biex ikollhom biex joħolqu dak nfusna.
>> Allura aħna rridu li kontinwament pront l-utent
sakemm tagħtina numru sħiħ pożittiv.
Jekk qed nagħmel xi ħaġa kontinwament allura li l jixbhu lil loop, ripetizzjoni.
Allura wieħed mill-constructs li nużaw fil ċ biex jimplimentaw ripetizzjoni u loops
huwa loop waqt.
Allura loop filwaqt li, kif muri hawn, se tesegwixxi
kollu li hu fil-ġisem tal-linja kif Sakemm il-jevalwa kundizzjoni mogħtija
li veru.
Hekk kif dik il-kundizzjoni tevalwa sa falz, imbagħad
il-programm se tipproċedi għal dak kollu jiġi wara l-korp tal-linja.
>> Għalhekk, filwaqt li loops huma ser jkun verament utli fil CS50.
Iżda f'dan il-partikolari każ, nafu li aħna qed
ser pront lill-utent mill-inqas darba u mbagħad biss ħolqa jekk ikun meħtieġ.
Allura hawnhekk għandna jaslu għal jibnu speċjali u li l-
simili ħafna għall-waqt linja imsejħa linja do-waqt.
>> Allura loop do-waqt tesegwixxi l- korp tal-linja mill-inqas darba
u mbagħad hija għandha tivverifika biex tara jekk għandhiex jesegwixxi,
bħala kuntrarju għal loop waqt, li ser jiċċekkja l-kondizzjoni
u mbagħad tesegwixxi l-korp.
Allura fil-linja do-waqt li dak li aħna jista tagħmel hu pront l-utent għal integer,
u mbagħad tiċċekkja jekk huwa invalidu jew le.
Jekk huwa invalidu, allura aħna ser irrepeti l-proċess titlob lill-utent
biex tagħtina numru sħiħ ieħor, u mbagħad biss meta dik integer hija valida,
aħna ser tkompli tkun xi tkun taqa wara.
>> Issa inti ser ikollok avviż li l- Dikjarazzjoni tal-numru sħiħ n
hija kemmxejn differenti għal dak li aħna għamlet quddiem fl-eżempju preċedenti
u dan huwa minħabba l-ambitu.
Jekk kellna iddikjara n-numru sħiħ n ġewwa tal-korp tal-linja do-waqt,
allura aħna mhux se tkun tista 'aċċess li l-valur ta 'n barra minn dawk kaboċċi
ċingi jindika l-entità tal-linja.
Iżda aħna ma fil-fatt tixtieq li aċċess għall- valur ta 'n aktar tard fil-programm tagħna.
>> OK, hekk issa ejja nitkellmu dwar dak li din il-kundizzjoni għandu jkun.
Aħna rridu li biss reprompt l utent sakemm n huwa invalidu.
Allura taħseb li inti stess liema invalidu valur intier look like
u mbagħad toħloq Boolean espressjoni li jesprimu dan.
>> Aħna qed kważi lest bl subtask tagħna li tinkoraġġixxi u l-validazzjoni jintuza mill-utent.
Mela ejja jagħmlu din ftit ftit aktar faċli għall-utent
u jagħti lill-utent ftit daqsxejn aktar informazzjoni
ta 'dak li aħna qed suġġeriment minnhom għall.
Mela ejja pront lill-utent, kull l- spec, mal-minuti string.
Allura jintużaw id-dikjarazzjonijiet printf tiegħek, jagħmlu żgur li tqabbel din il eżattament.
>> Kull dritt.
Allura issa għandna utent validu input, numru sħiħ pożittiv
valur għall kemm-il minuta qattgħu fil-doċċa.
Allura dak li jmiss hu li jkunu kalkolati l-għadd ekwivalenti ta 'fliexken.
Dak li aħna qed tmur biex tagħmel hawnhekk jistgħu jkun ovvju ħafna għalik fl-ewwel,
u li OK.
Dak li rridu nagħmlu huwa aħna tixtieq li tibda tipprattika
l-idea tal-kxif mudelli u jiżviluppaw formuli għall-problema.
>> Allura aħna qed told kull l-spec li wieħed minuta fil-doċċa
huwa ekwivalenti għal madwar 12 fliexken ta 'ilma.
Mela allura żewġ minuti kieku tkun ekwivalenti għal 24,
u ħames minuti kieku tkun ekwivalenti għal 60.
Mela issa jekk taħseb inti stajt ltqajna, allura ejja
ara jekk inti tista 'toħroġ bil-mudell jew il-formula
li jesprimu jekk aħna ngħidu, n minuti, kemm-fliexken ta 'ilma
kieku tkun espressa f'termini ta 'n?
>> Għal darb'oħra, anke jekk din jista 'jkun sempliċi fl-ewwel,
aktar tard meta nikbru biex problemi aktar ikkumplikati
aħna qed tmur jridu jsibu rwieħhom il-prattika li jiġu identifikati
mudelli u formuli jiżviluppaw biex insemmu dawn l-affarijiet out.
>> Fil ć ikollok aċċess għall Operazzjonijiet aritmetika standard,
Barra minn hekk, tnaqqis, multiplikazzjoni, u d-diviżjoni.
So I ser tħalli f'idejn l inti issa biex insemmu
kif jesprimu l- għadd ekwivalenti ta 'fliexken
li l-utent ikkunsmat waqt doċċa tagħhom.
>> Kull dritt, aħna qed kważi isir.
Imxejna wassal lill-utent għall-kontribut tagħhom, konna assigurat li huwa input valida,
u mbagħad konna dehret kif biex jikkalkolaw l-ekwivalenti
numru ta 'fliexken li huma kkunsmati.
Allura l-aħħar ħaġa li tagħmel hi li l-output l-għadd ekwivalenti ta 'fliexken
u nittamaw li jinkoraġġixxi biex jikkonservaw ftit ilma.
>> Outputting il-valur se jkun hemm dikjarazzjoni printf.
Jekk jien ridt li jgħidlek li jien għandhom tliet annimali domestiċi, per eżempju,
I jistgħu jużaw stqarrija printf li tidher xi ħaġa bħal din.
Għandi tliet annimali domestiċi, u ġdid linja għall-ifformattjar sbieħ.
>> Issa aħna ma rridux li sempliċiment kodiċi iebsa affarijiet.
Jiġifieri l-għadd ta 'tiegħi annimali domestiċi bidliet maż-żmien.
Imbagħad Jien ser jagħmlu użu ta ' placeholders fid-dikjarazzjoni printf tiegħi.
Allura hawnhekk numru tiegħi huwa integer.
Hekk jien ser tagħmel placeholder għal integer jużaw% i.
Jien ser jikteb l-sekwenza, u mbagħad wara l-sekwenza
Nikteb virgola u allura l- varjabbli li nixtieq li jistampaw.
Sabiex il-valur għandu jkun stampat minflok dik placeholder,% i.
>> Tista 'tuża placeholders, kif ukoll, għal floats ta '% f.
Tista 'wkoll ikollhom multipli placeholders fil string.
Per eżempju, jekk ikolli xi numru ta 'klieb u xi numru ta' qtates,
Nressaq żewġ placeholders hawn u mbagħad żewġ varjabbli tiegħi sabiex rispettiv.
>> Allura issa li nafu kif print il-valuri maħżuna fil-varjabbli,
l-aħħar ħaġa li tagħmel huwa li jiġi żgurat li aħna
jistampaw il-valur fil-format eżatt indikat fl-ispeċifikazzjoni.
Ma 'dak, konna wassal lill- utent u validati kontribut tagħhom.
Imxejna mbagħad ikkalkolat l-ekwivalenti numru ta 'fliexken ta' ilma
li dawn jikkunsmaw matul doċċa tagħhom, u konna outputted dan il-valur għalihom.
U hekk, aħna ve kompletati ilma.
>> Jien jisimni [? Zamila,] u dan huwa CS50.