Tagapagsalita 1: makipag-usap tungkol sa tubig Hayaan.
Sa problemang ito, hinihiling namin ang gumagamit ay upang sabihin sa amin kung gaano katagal sa ilang minuto ang kanilang shower ay
at pagkatapos namin makalkula ang katumbas bilang ng mga bote ng tubig
na ang kanilang shower ginagamit.
>> Kaya kung ano ay ang aming to-do ni para sa problemang ito?
Una, kami ay pagpunta sa gusto upang i-prompt at pagkatapos ay patunayan
ang input na nagbibigay sa gumagamit ng sa amin.
Sa sandaling kami ay masiguro na kami may wastong input ng user,
kami ay pagpunta upang makalkula ang katumbas na bilang ng mga bote ng tubig
na ang gumagamit ay may sa panahon kanilang shower, at pagkatapos ay kami ay
pagpunta sa sabihin sa kanila sa pamamagitan ng pag-print out ang numerong iyon.
>> Kaya sabihin pagharap sa isang bagay ang aming unang gawain, pagdikta at pagpapatunay
ang user input.
Para sa mga ito namin na nakasulat sa isang function na para sa iyo na tinatawag na
get_int matatagpuan sa CS50 Library.
get_int Sinisiguro nito na ang input ng user isang integer, kaya ang anumang mga positibong numero,
negatibong numero, o zero ay ang lahat ng tinanggap.
Ngunit kung ang user ay input sa anumang bagay, kaya ang anumang kumbinasyon ng mga titik o numero
o decimal na numero, pagkatapos ay ang user ay sinenyasan upang muling subukan
at ang function ay hindi tatanggap ng anumang bagay hanggang ang gumagamit ay nagbibigay sa kanila ng isang integer.
>> Kaya kung paano namin gamitin get_int?
Kung binuksan mo ang iyong workspace at lumikha ng isang file na may pangalang integer.c sabihin
i-type ang mga sumusunod.
Hashtag isama cs50.h.
Ito ay kinakailangan dahil get_int ay isang function cs50 library,
kaya kailangan naming hashtag isama nito deklarasyon upang
upang gamitin ang function.
At pagkatapos ay sa aking pangunahing gumana Lamang ako ng pagpunta
upang tawagan lamang ang function get_int.
>> Kaya sabihin patakbuhin ito at makita kung paano ito gumagana.
Naipasok ko na naipon ito, kaya sabihin pumunta lamang magpatuloy at patakbuhin ang program na ito,
./integer.
Narito Mayroon akong isang prompt at narito ang kung saan ko input ang halaga.
Sabihin ko bang ilagay sa loob lamang ng ilang mga integer, 50, ang excepts programa at quits
at na na.
>> Datapuwa't sinasabi tumakbo ko ito muli at I input ibang bagay.
Marahil, kumusta mundo.
Iyan ay hindi isang integer kaya ang programa ay prompt sa akin upang subukang muli.
Subukan muli gamit Hayaan marahil isang decimal oras na ito.
0.5, muli, hindi isang integer kaya ang programa ay hindi ito tatanggapin
at makikita ito sabihin sa akin upang subukang muli.
Kaya sabihin bigyan ito ng ibang numero.
Ang programa ay tumatanggap ng ito, tabla, at kami ay tapos na.
>> Kaya ngayon kami ay may isang function na nagbibigay-daan sa amin at nagsisiguro
na ang gumagamit ay input ng integer, ngunit kung paano aming makakaya
aktwal na subaybayan ang integer inputted sa pamamagitan ng user?
Well, ang kailangan naming gawin ay store ang halaga na ito sa isang variable, sabihin n.
Kaya kung ako'y nagpapahayag ng isang integer n, at ako magse-set na halaga sa get_int,
pagkatapos n ay pagkatapos mag-imbak kahit anong Pinahahalagahan ang user inputted.
>> O sige, kaya ngayon na natiyak namin na ang user ay bigyan kami ng isang integer
at alam namin kung paano upang subaybayan ang ng integer, ngunit tandaan,
integers ay parehong positibo at negatibong.
Kaya ito ay hindi talagang magkaroon ng kahulugan sa konteksto ng ang problemang ito
na ang gumagamit ay tumatagal ng isang shower ng sabihin negatibong 12 minuto.
Kaya kailangan naming matiyak na ang gumagamit ay tunay na nagbibigay sa amin ng isang positibong integer.
Ngayon hindi namin ay may lamang ng isang solong function para sa na,
kaya kami ay pagpunta sa magkaroon ng upang lumikha ng na ating sarili.
>> Kaya gusto namin upang patuloy na prompt ng gumagamit
hanggang bigyan sila sa amin ng isang positibong integer.
Kapag ako ay paggawa ng isang bagay patuloy pagkatapos na katulad sa isang loop, isang pag-uulit.
Kaya isa sa mga constructs na ginagamit namin sa c upang ipatupad ang pag-uulit at mga loop
ay isang habang loop.
Kaya ang isang habang loop, bilang ipinapakita dito, ay execute
kahit na ano ay sa katawan ng loop bilang hangga't ang ibinigay sinusuri kondisyon
sa totoo.
Sa sandali na kondisyon na sinusuri sa false, at pagkatapos ay
ang programa ay magpatuloy sa kahit anong nauuna matapos ang katawan ng loop.
>> Kaya habang loop ay pagpunta sa maging talagang kapaki-pakinabang sa CS50.
Ngunit sa partikular na kaso, alam namin na kami
pagpunta upang i-prompt ang user ay hindi bababa sa isang beses at pagkatapos lamang loop kung kinakailangan.
Kaya dito namin dumating sa isang espesyal na tayuan at iyon ang
halos kapareho sa habang loop na tinatawag na isang do-habang loop.
>> Kaya ang isang do-habang loop executes ang katawan ng loop kahit isang beses
at pagkatapos ito tseke upang makita kung ito ay dapat pugutan ng ulo,
bilang laban sa isang habang loop, na kung saan ay suriin ang kalagayan
at pagkatapos ay magsagawa ng katawan.
Kaya sa isang do-habang loop kung ano ang maaaring namin gawin ay i-prompt ang user para sa isang integer,
at pagkatapos ay tingnan kung ito ay hindi wasto o hindi.
Kung ito ay hindi wasto, at pagkatapos ay kami ay ulitin ang proseso ng pagtatanong sa user
upang bigyan kami ng isa pang integer, at pagkatapos ay lamang kapag na integer ay may-bisa,
kami ay patuloy na anuman ang dumating pagkatapos.
>> Ngayon mapapansin mo na ang deklarasyon ng integer n
ay bahagyang naiiba sa kung ano ang aming ay bago sa nakaraang halimbawa
at ito ay dahil sa saklaw.
Kung kami sana ang ipinahayag ang integer n sa loob ng katawan ng do-habang loop,
at pagkatapos ay hindi namin magagawang upang ma-access na halaga ng n labas ng mga kulot
tirante na nagpapahiwatig ng katawan ng loop.
Ngunit namin sa katunayan nais na ma-access ang halaga ng n sa susunod sa aming programa.
>> OK, kaya ngayon sabihin makipag-usap tungkol sa ano ang kundisyong ito ay dapat na.
Gusto naming lamang reprompt ang user hangga't n ay hindi wasto.
Kaya sa tingin sa iyong sarili kung ano ang isang hindi wastong integer value magiging ganito ang hitsura
at pagkatapos ay lumikha ng isang Boolean expression upang ipahayag na.
>> halos Kami ay tapos na sa aming mga subtask ng pagdikta at pagpapatunay user input.
Kaya sabihin gawin ang isang maliit na kaunti pang user friendly
at bigyan ang gumagamit ng isang maliit na bit sa karagdagang impormasyon
ng kung ano kami ay pagdikta sa kanila para sa.
Kaya sabihin prompt ng gumagamit, alinsunod sa mga spec, na may string minuto.
Kaya gamit ang iyong printf pahayag, gumawa siguraduhin na tumutugma sa iyo ito eksakto.
>> Lahat tama.
Kaya ngayon kami ay may isang wastong user input, ang isang positibong integer
halaga para sa kung gaano karaming mga minuto sila na ginugol sa shower.
Kaya kung ano ang susunod ay upang makalkula ang katumbas na bilang ng mga bote.
Ano kami ay pagpunta sa gawin dito ay maaaring maging lubhang halata sa iyo sa una,
at iyon ang OK.
Ano ang gusto naming gawin ay kami nais na simulan ang pagsasanay
ang ideya ng pag-detect ng mga pattern at pagbuo formulae para sa problema.
>> Kaya kami ay sinabi sa bawat ang spec na isang minuto sa shower
ay katumbas ng tungkol 12 bote ng tubig.
Kaya pagkatapos ng dalawang minuto ng gagawin maging katumbas ng 24,
at limang minuto ng gagawin maging katumbas ng 60.
Kaya ngayon kung sa tingin mo nakuha mo na ito, pagkatapos ay sabihin
tingnan kung maaari mong dumating up na may isang pattern o formula
upang ipahayag kung tayo nga ay sabihin, n minuto, kung gaano karaming mga bote ng tubig
Gusto na ipinahayag sa mga tuntunin ng n?
>> Muli, kahit na ito ay maaaring maging simple sa una,
sa susunod kapag makuha namin sa mas kumplikado problema
kami ay pagpunta sa nais na makakuha ng sa ang pagsasanay ng pagkilala
pattern at pagbuo formula upang malaman kung ang mga bagay na ito.
>> Sa c mayroon kang access sa karaniwang arithmetic operations,
karagdagan, pagbabawas, pagpaparami, at paghahati.
Kaya kukunin ko na iwanan ito sa ka na ngayon upang malaman kung
kung paano ipahayag ang katumbas na bilang ng mga bote
na ang gumagamit ay natupok sa panahon ng kanilang shower.
>> O sige, halos tapos na kami.
sinenyasan namin ang gumagamit para sa kanilang input, kami natiyak na ito ay may-bisa input,
at pagkatapos ay may korte out kung paano namin upang makalkula ang katumbas
bilang ng mga bote na sila'y nangalilipol.
Kaya ang huling bagay na gawin ay upang output ang katumbas na bilang ng mga bote
at sana hikayatin ang mga ito upang makatipid ng tubig.
>> Outputting ang halaga ay maging isang printf pahayag.
Kung Nais kong sabihin sa iyo na ako may tatlong mga alagang hayop, halimbawa,
maaari ko bang gamitin ang isang printf pahayag na mukhang isang bagay tulad nito.
Mayroon akong tatlong mga alagang hayop, at ng isang bagong line for nice formatting.
>> Ngayon hindi namin nais na lamang hard code mga bagay.
Sabihing ang bilang ng aking mga alagang hayop ang mga pagbabago sa paglipas ng panahon.
Pagkatapos ako pagpunta sa gumawa ng paggamit ng placeholder sa aking printf statement.
Kaya dito ang aking numero ay isang integer.
Kaya ako ng pagpunta sa gumawa ng isang placeholder para sa isang integer gamit% i.
Ako pagpunta sa isulat ang string, at pagkatapos ay pagkatapos ng string
Sumulat ako ng isang comma at pagkatapos ay ang variable na gusto kong i-print.
Kaya na halaga ay ipi-print sa halip ng na placeholder,% i.
>> Maaari mong gamitin ang mga placeholder, bilang na rin, para sa kamay na may isang% f.
Maaari ka ring magkaroon ng maramihang placeholder sa isang string.
Halimbawa, kung ako ay may ilang bilang ng mga aso at ilang bilang ng mga cats,
Ko bang ilagay ang dalawang mga placeholder dito at pagkatapos ay ang aking dalawang variable sa kani order.
>> Kaya ngayon na alam namin kung paano i-print ang mga halaga na naka-imbak sa mga variable,
ang napaka huling bagay na gawin ay upang matiyak na kami
i-print ang halaga sa ang eksaktong format ipinahiwatig sa pagtutukoy.
Gamit na, na sinenyasan namin ang user at napatunayan ang kanilang input.
pagkatapos na kinakalkula namin ang katumbas bilang ng mga bote ng tubig
na ubusin sila sa panahon ng kanilang shower, at outputted na namin na halaga sa kanila.
At sa gayon, natapos na namin ang tubig.
>> Ang pangalan ko ay [? Zamila,?] at ito ay CS50.