ZAMYLA CHAN: Ni mimi, Zamyla.
Leo katika Mario, tunakwenda kuwa kuchora nusu piramidi kwa Mario
kupanda juu.
>> Hivyo hebu majadiliano juu yetu kwa-nini kwa ajili ya tatizo hili.
Sisi ni kwenda kutaka kuchochea na kuhalalisha
user kwa ajili ya pembejeo halali wa jinsi high wanataka Mario ya piramidi kuwa.
Na kisha, tunakwenda kuteka ni.
Hivyo hebu kuanza na hivyo kusababisha na kuthibitisha user kwa mchango wao.
>> Tunaweza kufanya matumizi ya CS50 maktaba Kazi
kupata int kwamba itahakikisha kwamba mtumiaji pembejeo integer.
Yoyote integers chanya, hasi integers, idadi 0 wote ni mchezo wa haki.
Vinginevyo, user utakuwa ilisababisha Jaribu tena mpaka wao pembejeo integer halali.
Sasa ingawa kupata int gani mengi ya kazi kwa ajili yetu
katika kuhakikisha kwamba user inatupa integer,
bado tunahitaji kuomba baadhi vikwazo ziada juu ya hilo.
Baada ya yote, hatuwezi kuwa na Mario kupanda nusu piramidi ya urefu wa hasi 12.
>> Mbali na kwamba, vipimo tatizo
inasema kwamba tunaweza tu kuruhusu Mario kupanda
piramidi ya urefu kati ya 0 na 23.
OK, hivyo kwamba maana kwamba tunahitaji kuendelea kuchochea mtumiaji
kutupa halali idadi na tu kuendelea
mara moja wameweza ametupa urefu halali.
Jinsi gani sisi kufanya hivyo?
>> Naam, michakato ya kuendelea kutupa wazo la loops-- kitu kufanya
repetitively.
kitanzi moja katika C kama wakati kitanzi kwamba mapenzi kuendelea
kutekeleza mwili wa kitanzi kwa muda mrefu kama hali kutokana na kutathmini kwa kweli.
Haraka kama hali hiyo kutathmini kwa uongo,
mpango ataelekea chochote huja baada ya hapo.
Hivyo wakati matanzi ni njia mojawapo ya kuhakikisha kwamba tunaendelea
kuchochea mtumiaji kwa ajili ya pembejeo halali.
Na mara moja wao kutupatia pembejeo halali, tutaweza kuendelea na chochote huja ijayo.
Tunajua kwamba sisi ni kwenda kuuliza user kwa ajili ya pembejeo angalau mara moja.
Hivyo sasa sisi kuja dada wa wakati kitanzi, ambayo ni kufanya wakati kitanzi.
>> Je, wakati tanzi nitafanya mwili wa kitanzi angalau mara moja.
Hivyo bila kuangalia hali, nitafanya mwili wa kitanzi.
Na kisha kuangalia hali ya kuona iwapo inahitaji kurudia yenyewe.
Hii inakuja katika Handy wakati tuko kuthibitisha user pembejeo.
Tunajua kwamba tunakwenda kuwauliza angalau mara moja.
Hivyo kufanya wakati kitanzi nguvu kuangalia kitu kama hii.
Tuna integer n.
Na ndani ya kufanya kitanzi wakati, sisi mara moja
kuchochea mtumiaji kwa integer.
Kama n ni batili, basi tutaweza kuwachochea tena na tena na tena mpaka wao
kutupa kwamba integer halali.
Hatimaye, mara moja n ni pembejeo halali, tutaweza kuendelea na mapumziko ya programu yetu.
>> Basi hebu kwenda nyuma ya spec na kuangalia nini hali kwa ajili ya pembejeo halali
ni kwenda kuwa.
urefu halali ni kwenda kuwa kati ya 0 na 23, umoja.
urefu hivyo batili ni kwenda kuwa chini ya 0 au zaidi ya 23.
Basi kumbuka kubuni hali yako kwa makini,
wakijua kwamba hali kwa kufanya wakati kitanzi
lazima wakati n ni batili.
Sasa hii si kwenda kuwa rahisi single kujieleza Boolean.
Tunakwenda una kuchanganya Maneno mawili tofauti
kufanya hali yetu nzima.
>> Basi hebu tu kuangalia meza ukweli nimekuwa tayari kupewa wewe ladha kwamba tuko
kwenda kushughulika na Booleans mbili.
Hivyo hapa ni meza ukweli ambapo mimi kuwa na mbili Booleans-- Boolean 1 na 2.
Hivyo tuna fursa ya kutathmini bool1 na bool2 au bool1 au bool2.
Na itakuwa tu kuwa ni kweli kama wote wawili Booleans kutathmini kwa kweli, ambapo wote
au itakuwa kweli kwa muda mrefu kama moja ya mbili Booleans kutathmini kwa kweli.
OK, hivyo kuchukua muda, pause hii video na kufungua hii meza ukweli.
Nitakuwa haki hapa kusubiri.
Wakati wewe kuja nyuma, angalia kama unaweza kipande pamoja
kujieleza Boolean kwa yako hali ya n kuwa pembejeo batili.
>> Hivyo sasa kwamba tuna halali user pembejeo, hebu
kwenda mbele na majadiliano kuhusu jinsi sisi ili kuteka nusu piramidi.
Hapa katika kifungu hiki mhariri rahisi, Nimekuwa inayotolewa kushoto na kompyuta piramidi.
Lakini tunajua kwamba tunahitaji yetu piramidi kuwa haki na kompyuta.
Hivyo jinsi gani mimi kufanya hili?
Naam, mimi ili kujaribu kushinikiza kila kitu kwa upande
na tu kuweka kidogo tabia katika kati.
Na kisha, kwa ajili ya pili line, mimi nina kwenda kuweka
baadhi wahusika zaidi ya kuiondoa pamoja, na further-- kadhalika na kadhalika sana aliye mzaa
mpaka nina haki na kompyuta piramidi.
Hivyo sisi kufanya kuwa na haki align piramidi, lakini haina kuangalia kubwa sana na dots.
Lakini sisi bado wanataka kudumisha kwamba nafasi nzuri.
Hivyo nina kwenda kwa literally kuingiza baadhi ya maeneo.
>> Badala ya dots tatu, mimi itabidi kuweka moja, mbili, tatu nafasi.
On line pili.
Mimi itabidi kuweka nafasi moja, mbili.
Na juu ya penultimate line, nafasi moja tu.
Na hapa nina haki na kompyuta piramidi.
Kutokana na kufanya mfano katika maandishi mhariri, tuna wazo kwa mfano
kwamba tutaweza kutumia kuteka nusu piramidi.
Kwa kila mstari, tulichokifanya ni sisi aina baadhi ya maeneo,
na kisha typed baadhi hashes, na kisha typed
Enter muhimu, ambayo ni kujenga line mpya.
Hivyo sasa kwamba tuna kwamba, hebu kwenda hatua moja zaidi na kupata mfano.
>> Hivyo mimi nina kwenda kusema, kwa maslahi ya mfano huu,
sisi ni kushughulika na urefu wa 8.
safu ya kwanza ni kwenda na mbili hashes kwamba ifuatavyo nafasi saba.
second-- hashes tatu, nafasi sita.
Tatu row-- nne hashes, tano spaces-- kadhalika na kadhalika
mpaka sisi kupata mstari NTH.
Hivyo basi, ninawaomba kwa mstari NTH, wangapi hashes ni sisi kwenda na
na jinsi nafasi nyingi?
Hivyo ni juu yako na kufikiri formula kuiwakilisha hashes wangapi
na jinsi nafasi nyingi zinahitajika kwa ajili ya NTH mstari wakati una baadhi urefu.
>> Sasa wakati wewe ni kuhesabia hii nje, kuwa makini jinsi wewe ni Indexing.
Nini maana na hii ni kwamba katika maisha ya kila siku sisi sote
kuanza kuhesabu, kwa kawaida na 1.
Lakini katika CS50 na katika sayansi ya kompyuta kwa ujumla, sisi ni 0 indexed.
Hivyo safu ya kwanza itakuwa n ya 0 kinyume na 1.
Kuwa makini ya hii wakati uko kujaribu kufikiri muundo yako.
Hivyo sasa hebu kwenda nyuma ya jinsi tunakwenda kuteka piramidi yetu.
Kwa kila mstari, tunakwenda wanataka magazeti nafasi, magazeti hashes,
na kisha magazeti mstari mpya.
ladha hapa ni neno "maana" kila mstari.
Katika C, tuna kujenga kuitwa kwa ajili ya kitanzi,
ambayo inakuwa na initialization, hali, update,
na mwili wa kitanzi.
>> Sema nilitaka kusema, hello dunia, mara 50, yangu kwa kitanzi
bila kuangalia kitu kama hiki.
Mimi initialize integer yangu kwa 0.
hali ni kwamba mimi ni chini ya 50.
Na kisha update yangu ni ya haki incrementing mimi kwa moja kila wakati.
Tunaweza pia kutumia kwa ajili ya mizunguko iterate juu ya mambo.
Ona hapa jinsi sisi si ngumu coded posta,
lakini badala ya kuwekwa kutofautiana urefu badala katika hali hiyo.
Hivyo nini mimi kufanya hapa ni mimi nina iterating juu ya kila mstari wa piramidi.
Siwezi kufanya kitu kwa kila mstari ndani ya mwili wa kitanzi yangu.
>> Tunafanya nini ndani ya mwili wa kitanzi?
Naam, kama sisi tayari alisema, sisi ni uchapishaji nafasi na sisi ni uchapishaji hashes
na sisi ni uchapishaji mstari mpya.
Hivyo nje yangu kwa kitanzi utaangalia kama hii.
Mimi iterate juu ya kila mstari ya piramidi, kwa kutumia,
katika kesi hii, urefu kama kutofautiana kwamba maduka urefu wa piramidi.
Ndani ya mwili wa kitanzi kwamba, mimi nina kwenda magazeti nafasi tena na tena, magazeti
hashes tena na tena, na kisha magazeti mstari mpya.
>> Hivyo sasa, kwa kutumia yote ya dhana kwamba Nimekuwa kuongelea katika hii kutembea-kwa njia,
unapaswa kuwa na uwezo wa kuchochea user kwa ajili ya pembejeo, kuhalalisha kwamba pembejeo,
na kisha kuteka nusu piramidi.
>> Jina langu ni Zamyla, na hii ni CS50.