SPIKA 1: Hebu majadiliano juu ya maji.
Katika tatizo hili, tunaomba user kuwaambia sisi kwa muda gani katika dakika ya kuoga yao ilikuwa
na kisha sisi hesabu sawa idadi ya chupa za maji
kwamba kuoga yao kutumika.
>> Kwa hiyo kile ni yetu kwa-do kwa tatizo hili?
Kwanza, sisi ni kwenda kutaka kuchochea na kisha kuhalalisha
pembejeo kwamba mtumiaji inatupa.
Mara sisi kuhakikisha kwamba sisi na user pembejeo halali,
tunakwenda mahesabu sawa idadi ya chupa za maji
kwamba mtumiaji alikuwa wakati wa kuoga yao, na kisha tuko
kwenda kuwaambia yao kwa uchapishaji nje idadi hiyo.
>> Basi hebu kukabiliana na kwanza wetu Kazi, na hivyo kusababisha na kuthibitisha
user pembejeo.
Kwa hili tumekuwa imeandikwa kazi kwa ajili ya wewe kuitwa
get_int iko katika CS50 maktaba.
get_int kuhakikisha kwamba pembejeo user integer, hivyo idadi yoyote chanya,
idadi hasi, au zero zote ni kukubalika.
Lakini kama mtumiaji pembejeo kitu kingine chochote, hivyo macho yoyote ya barua au namba
au namba decimal, basi user utakuwa ilisababisha jaribu tena
na kazi hawatakubali kitu chochote mpaka user inawapa integer.
>> Hivyo ni jinsi gani sisi kutumia get_int?
Kama wewe kufungua workspace yako na kuunda faili aitwaye integer.c hebu
aina zifuatazo.
Hashtag ni pamoja na cs50.h.
Hii ni muhimu kwa sababu get_int ni cs50 maktaba kazi,
hivyo ni lazima hashtag ni pamoja na tamko lake ili
kutumia kazi.
Na kisha katika kuu yangu kazi mimi nina kwenda tu
tu piga kazi get_int.
>> Basi hebu kukimbia hii na kuona jinsi kazi.
Nimekuwa tayari ulioandaliwa hayo, hivyo hebu tu kwenda mbele na kuendesha mpango huu,
./integer.
Hapa nina haraka na hapa ndipo mimi pembejeo thamani.
Sema mimi kuweka katika baadhi tu ya integer, 50, anamwepusha mpango na quits
na hiyo ni kwamba.
>> Lakini kusema mimi kukimbia tena na Mimi pembejeo kitu kingine.
Labda, hello dunia.
Hiyo si integer hivyo mpango zitasababisha me kujaribu tena.
Hebu jaribu tena na labda decimal wakati huu.
0.5, tena, si integer hivyo Mpango hawatakubali ni
na kutakuwa na kuniambia kujaribu tena.
Basi hebu kuwapa idadi nyingine.
mpango anapokea yake, quits, na sisi ni kosa.
>> Hivyo basi, tuna kazi ambayo inaruhusu sisi na kuhakikisha
kwamba mtumiaji pembejeo integer, lakini jinsi gani tunaweza
kweli kuweka wimbo wa integer inputted na mtumiaji?
Naam, kila tutaweza kufanya ni duka thamani hii katika kutofautiana, kusema n.
Hivyo kama mimi kutangaza integer n, na mimi kuweka kwamba thamani ya get_int,
kisha n kisha kuhifadhi chochote kuthamini user inputted.
>> Haki ya wote, hivyo sasa tumekuwa kuhakikisha kwamba user itatupa integer
na tunajua jinsi ya kuweka wimbo ya integer, lakini kumbuka,
integers ni wote chanya na hasi.
Hivyo ni kweli haina mantiki katika mazingira ya tatizo hili
kwamba mtumiaji inachukua kuoga ya kusema dakika hasi 12.
Kwa hiyo, tunahitaji kuhakikisha kwamba mtumiaji kweli inatupa sifuri.
Sasa hatuna tu kazi moja kwa kuwa,
hivyo tunakwenda kuwa na kujenga kwamba sisi wenyewe.
>> Hivyo tunataka daima kuchochea mtumiaji
mpaka wao kutupatia sifuri.
Kama mimi nina kufanya kitu kuendelea basi hiyo ni sawa na kitanzi, marudio.
Hivyo moja ya constructs kwamba sisi kutumia katika c kutekeleza marudio na loops
ni kitanzi wakati.
Hivyo kitanzi wakati, kama inavyoonekana hapa, nitafanya
vilivyomo katika mwili wa kitanzi kama muda mrefu kama kutokana na hali kutathmini
kwa kweli.
Haraka kama hali hiyo kutathmini kwa uongo, basi
mpango wa kuendelea na chochote inakuja baada ya mwili wa kitanzi.
>> Hivyo wakati loops ni kwenda kuwa muhimu kweli kweli katika CS50.
Lakini katika hili hasa kesi, tunajua kwamba tuko
kwenda kuchochea mtumiaji angalau mara moja na kisha tu kitanzi kama ni lazima.
Hivyo hapa sisi kuja maalum kujenga na hiyo ni
sawa na wakati kitanzi aitwaye kitanzi do-wakati.
>> Hivyo kitanzi do-wakati executes mwili wa kitanzi angalau mara moja
na kisha ni hundi ya kuona kama ni lazima kutekeleza,
kinyume na kitanzi wakati, ambayo itakuwa kuangalia hali
na kisha kutekeleza mwili.
Hivyo katika kitanzi do-wakati gani tupate kufanya ni kuchochea mtumiaji kwa integer,
na kisha kuangalia kama ni batili au la.
Kama ni batili, basi tutaweza kurudia utaratibu kuuliza mtumiaji
kutupa integer mwingine, na kisha tu wakati kwamba integer ni halali,
tutaweza kuendelea chochote huja baadaye.
>> Sasa utasikia taarifa kwamba tamko la integer n
ni tofauti kidogo kwa nini sisi alifanya kabla katika mfano uliopita
na hii ni kwa sababu ya upeo.
Kama sisi alikuwa ametangaza integer n ndani ya mwili wa kitanzi do-wakati,
kisha sisi bila kuwa na uwezo wa kupata kwamba thamani ya n nje ya wale curly
inakabiliwa na kuonyesha mwili wa kitanzi.
Lakini hatuwezi kwa kweli wanataka kupata thamani ya n baadaye katika mpango wetu.
>> OK, hivyo sasa hebu majadiliano juu ya nini hali hii inapaswa kuwa.
Tunataka tu reprompt user kwa muda mrefu kama n ni batili.
Hivyo kufikiri kwa mwenyewe nini ni batili integer thamani bila kuangalia kama
na kisha kuunda Boolean kujieleza kueleza kwamba.
>> Sisi ni karibu kumaliza subtask yetu ya kusababisha na kuthibitisha user pembejeo.
Basi hebu kufanya hili kidogo bit user zaidi ya kirafiki
na kutoa user kidogo bit habari zaidi
ya nini sisi ni kusababisha yao kwa.
Basi hebu kuchochea mtumiaji, per spec, na dakika kamba.
Hivyo kwa kutumia kauli yako printf, kufanya uhakika kwamba mechi hii hasa.
>> Sawa.
Hivyo basi, tuna user halali pembejeo, integer chanya
thamani kwa muda wa dakika ngapi walitumia katika oga.
Hivyo nini ijayo ni mahesabu ya sawa idadi ya chupa.
Nini tunakwenda kufanya hapa inaweza kuwa wazi sana kwa mara ya kwanza,
na kwamba ni sawa.
Nini tunataka kufanya ni sisi wanataka kuanza kufanya mazoezi
wazo la kuchunguza mwelekeo na kuendeleza kanuni kwa ajili ya tatizo.
>> Hivyo sisi ni aliiambia kwa spec kwamba dakika moja katika oga
ni sawa na chupa 12 za maji.
Hivyo basi dakika mbili ingekuwa kuwa sawa na 24,
na dakika tano ingekuwa kuwa sawa na 60.
Hivyo sasa kama unadhani nimepata ni, basi hebu
kuona kama unaweza kuja na muundo au formula
kueleza kama sisi kusema, n dakika, jinsi wengi chupa za maji
ingekuwa kwamba kuwa walionyesha katika suala la n?
>> Tena, hata kama hii inaweza kuwa rahisi mara ya kwanza,
baadaye wakati sisi kupata matatizo ngumu zaidi
tunakwenda wanataka kupata katika mazoezi ya kutambua
chati na kuendeleza kanuni kufikiri mambo haya nje.
>> Katika c una upatikanaji wa kiwango cha hesabu shughuli,
Aidha, kutoa, kuzidisha, na mgawanyiko.
Hivyo mimi itabidi kuondoka kwa wewe sasa kufikiri
jinsi ya kueleza sawa idadi ya chupa
kwamba mtumiaji zinazotumiwa wakati wa kuoga yao.
>> Yote ya haki, sisi ni karibu kufanyika.
Tumekuwa ilisababisha user kwa mchango wao, tumekuwa kuhakikisha kwamba ni halali pembejeo,
na kisha tumekuwa figured nje ya jinsi kwa mahesabu sawa
idadi ya chupa kwamba wao zinazotumiwa.
Hivyo jambo la mwisho kufanya ni pato sawa idadi ya chupa
na hopefully kuhamasisha yao ya kuhifadhi maji.
>> Outputting thamani itakuwa kuwa printf taarifa yake.
Kama nilitaka kukuambia kuwa mimi kuwa kipenzi tatu, kwa mfano,
Mimi wanaweza kutumia kauli printf kwamba inaonekana kitu kama hiki.
Nina kipenzi tatu, na mpya line kwa nzuri formatting.
>> Sasa sisi hawataki tu kwa bidii kificho mambo.
Kusema idadi ya yangu kipenzi mabadiliko baada ya muda.
Basi mimi nina kwenda kufanya matumizi ya placeholders katika printf kauli yangu.
Hivyo hapa namba yangu ni integer.
Hivyo nina kwenda kufanya placeholder kwa integer kutumia% i.
Mimi nina kwenda kuandika kamba, na kisha baada ya kamba
Mimi kuandika comma na kisha kutofautiana kwamba nataka magazeti.
Hivyo kwamba thamani itakuwa kuchapishwa badala ya kuwa placeholder,% i.
>> Unaweza kutumia placeholders, kama vizuri, kwa ikifungwa na% f.
Unaweza pia kuwa na nyingi placeholders katika kamba.
Kwa mfano, kama mimi kuwa na idadi baadhi ya mbwa na baadhi ya idadi ya paka,
Mimi kuweka placeholders mbili hapa na kisha yangu vigezo mbili ili husika.
>> Hivyo sasa kwamba sisi kujua jinsi ya magazeti maadili kuhifadhiwa katika vigezo,
Jambo la mwisho sana kufanya ni kuhakikisha kwamba sisi
magazeti thamani katika format halisi unahitajika katika vipimo.
Pamoja na kwamba, tumekuwa ilisababisha user na kuthibitishwa mchango wao.
Tumekuwa kisha mahesabu sawa idadi ya chupa za maji
kwamba wao hutumia wakati wa kuoga yao, na tumekuwa outputted kwamba thamani kwao.
Na hivyo, tumekuwa maji kukamilika.
>> Jina langu ni [? Zamila,?] na hii ni CS50.