ZAMYLA Chan: Huwa me, Zamyla.
Illum fil Mario, aħna qed tmur biex tkun tpinġija in-nofs piramida Mario
li jitilgħu sa.
>> Mela ejja nitkellmu dwar tagħna għall-do għal din il-problema.
Aħna qed tmur jridu biex tkun inkoraġġuta u jivvalidaw
-utent għal kontribut validu ta 'kif għoli huma jridu piramida Mario li jkun.
U allura, aħna qed tmur biex jibnuha.
Mela ejja tibda bil tinċita u validazzjoni ta 'l-utent għall-kontribut tagħhom.
>> Nistgħu nagħmlu użu mill- CS50 Librerija Funzjoni
nikseb int li se jiżgura li l-utent inputs integer.
Kwalunkwe interi pożittivi, negattivi interi, in-numru 0 huma kollha ġusti logħba.
Inkella, l-utent se tkun imħeġġa biex retry sakemm l-input numru sħiħ valida.
Issa għalkemm int nikseb ma ħafna mix-xogħol għalina
fl-iżgurar li l- utent tagħtina numru sħiħ,
għad għandna bżonn biex japplikaw xi restrizzjonijiet addizzjonali fuq dik.
Wara kollox, ma jistax ikollna mario tixbit nofs piramida ta 'għoli negattiva 12.
>> B'żieda għal dan, l- ispeċifikazzjoni problema
jgħid li nistgħu biss jippermettu Mario li jitilgħu
piramida 'għoli bejn 0 u 23.
OK, sabiex ifisser li għandna bżonn li kontinwament pront lill-utent
biex tagħtina validu numru u biss tkompli
ladarba dawn ħadthom tatna għoli valida.
Kif nistgħu nagħmlu dan?
>> Ukoll, proċessi kontinwi agħtina l-idea ta 'loops--' xi ħaġa li tagħmel
ripetittivi.
Wieħed loop fis-C bħala waqt linja li se kontinwament
tesegwixxi l-korp tal-linja sakemm il-kundizzjoni mogħtija tevalwa lill veru.
Hekk kif dik il-kundizzjoni tevalwa sa falza,
il-programm se tipproċedi biex tkun xi tkun taqa wara dik.
Għalhekk, filwaqt li linji huma mod wieħed kif jiżgura li aħna kontinwament
pront l-utent għal kontribut validu.
U ladarba dawn tagħtina input valida, aħna ser tipproċedi għal dak kollu li jiġi jmiss.
Aħna nafu li aħna qed tmur biex jistaqsu l-utent għall-input mill-inqas darba.
Allura issa aħna jaslu għal sister tal- filwaqt loop, li huwa l-do waqt loop.
>> Tagħmel waqt loops se tesegwixxi l- korp tal-linja mill-inqas darba.
Dan mingħajr kontrol tal-kondizzjoni, se tesegwixxi l-korp tal-linja.
U mbagħad tiċċekkja l-kundizzjoni biex tara jekk ikunx meħtieġ li tirrepeti ruħha.
Dan jaqa 'fil handy meta aħna qed jivvalidaw jintuza mill-utent.
Aħna nafu li aħna qed tmur li jistaqsu lilhom mill-inqas darba.
Allura do waqt loop tista look xi ħaġa bħal din.
Għandna numru sħiħ.
U ġewwa ta 'l-do filwaqt loop, aħna immedjatament
pront l-utent għal integer.
Jekk n hija invalida, allura aħna ser iwassluhom ġdid u għal darb'oħra u għal darb'oħra sakemm
agħtina li numru sħiħ validu.
Fl-aħħarnett, ladarba n huwa kontribut validu, aħna ser jipproċedi għall-bqija tal-programm tagħna.
>> Mela ejja jmorru lura għall-spec u kontroll dak li l-kundizzjonijiet għal kontribut validu
se tkun.
L-għoli validi huma ser jkun bejn 0 u 23, inklużiv.
għoli hekk invalidi ser ikun inqas minn 0 jew aktar minn 23.
Mela ftakar li disinn kundizzjoni tiegħek b'attenzjoni,
jafu li l-kundizzjoni għall-do waqt loop
għandu jkun filwaqt n huwa invalidu.
Issa dan mhux ser ikun sempliċi espressjoni Boolean wieħed.
Aħna ser ikollhom biex jgħaqqdu żewġ espressjonijiet differenti
biex tagħmel kondizzjoni kollu tagħna.
>> Mela ejja biss ħarsa fuq mejda verità stajt diġà tak l-ħjiel li aħna qed
ser ikunu jittrattaw ma 'żewġ Booleans.
Allura hawnhekk tabella verità fejn I għandhom żewġ Booleans-- Boolean 1 u 2.
Allura aħna għandna l-għażla li jevalwa bool1 u bool2 jew bool1 jew bool2.
U se jkun biss minnu jekk iż-żewġ Booleans jevalwa vera, filwaqt li kull
jew ser jkun veru sakemm waħda mill it-tnejn Booleans tevalwa sa veru.
OK, hekk tieħu mument, nieqaf dan il vidjo u ddiġerixxi din it-tabella verità.
I ser tkun dritt hawn stennija.
Meta inti terga 'lura, ara jekk inti tista 'biċċa flimkien
espressjoni Boolean għall tiegħek kondizzjoni ta n hija input invalidu.
>> Allura issa li għandna jintuza mill-utent validu, ejja
imorru quddiem u jitkellmu dwar kif aħna tkun tista 'ddaħħal in-nofs piramida.
Hawn f'dan editur test sempliċi, Stajt ġibed xellug allinjati piramida.
Imma nafu li għandna bżonn tagħna piramida li jiġu allinjati d-dritt.
Allura kif tista 'nagħmel dan?
Well, I tista 'tipprova li timbotta kollox biex il-ġenb
bi ftit tqegħid ftit karattru bejniethom.
U mbagħad, għal dak li jmiss linja, jien ser tpoġġi
xi karattri aktar biex timbotta lilha flimkien, u further-- hekk u hekk forth--
sakemm għandi d-dritt allinjati piramida.
Allura aħna ma jkollhom piramida jallinjaw id-dritt, imma ma jidhrux daqshekk kbira ma 'l-tikek.
Iżda aħna xorta jridu isostnu li ispazjar sbieħ.
Hekk jien ser litteralment daħħal xi spazji.
>> Minflok tliet tikek, jien ser jitqiegħdu wieħed, tnejn, tlieta spazji.
Fuq it-tieni linja.
I ser jitqiegħdu wieħed, tnejn spazji.
U fuq il-penultima linja, wieħed biss ispazju.
U hawn I jkollhom dritt allinjata piramida.
Milli jagħmlu l-eżempju fit-test editur, għandna idea għal-mudell
li aħna ser tuża biex tiġbed in-nofs piramida.
Għal kull ringiela, dak li għamilna hija aħna tip xi spazji,
u mbagħad ittajpjat xi hashes, u mbagħad ittajpjat
l Enter, li huwa ħolqien ta 'linja ġdida.
Allura issa li għandna dan, ejja go pass ulterjuri u jsibu l-mudell.
>> Hekk jien se ngħid, għall- interess ta 'dan l-eżempju,
aħna qed jittrattaw b'għoli ta '8.
L-ewwel ringiela se jkollhom żewġ hashes li ġej seba spazji.
It-second-- tliet hashes, sitt spazji.
Terzi row-- erba hashes, ħames spaces-- hekk u ibqa 'sejjer hekk
sakemm aħna jiksbu l-ringiela nth.
Mela allura, Nitlobkom għar-ringiela nth, kemm hashes aħna ser ikollhom
u kemm spazji?
Allura huwa sa inti biex insemmu formula li jirrappreżentaw kemm hashes
u kemm l-ispazji huma meħtieġa għall -filliera nth meta jkollok xi għoli.
>> Issa meta inti qed jidhru dan out, ikunu attenti kif inti qed indiċjar.
What I jfisser minn dan hija li fil-ħajja ta 'kuljum lkoll
jibdew jingħaddu, normalment sa l-1.
Iżda fil CS50 u fix-xjenza tal-kompjuter b'mod ġenerali, aħna 0 indiċjati.
Allura l-ewwel ringiela ikun n ta '0 hekk kif oppost għad 1.
Oqgħod attent ta 'dan meta int jippruvaw figura mudell tiegħek.
Allura issa ejja mmorru lura għal kif aħna qed tmur biex tiġbed piramida tagħna.
Għal kull ringiela, aħna qed tmur jridu jistampa l-ispazji, jistampaw il-hashes,
u mbagħad print linja ġdida.
Il ħjiel hawnhekk huwa l- kelma "għal" kull ringiela.
Fl Ċ, għandna tibni imsejħa għal loop,
li hija magħmula minn inizjalizzazzjoni, kundizzjoni, aġġornament,
u l-korp tal-linja.
>> Say ridt ngħid, bonjour dinja, 50 darba, tiegħi għal linja
se tfittex xi ħaġa bħal din.
I initialize numru sħiħ tiegħi għal 0.
Il-kundizzjoni hija li jien huwa inqas minn 50.
U allura aġġornament tiegħi huwa biss inkrementazzjoni I b'wieħed kull darba.
Nistgħu wkoll tuża għal-linji li jtenni fuq affarijiet.
Avviż hawn kif aħna ma iebes kodifikati numru,
iżda pjuttost tefa 'l-varjabbli għoli minflok fil-kundizzjoni.
Allura dak li qed nagħmel hawnhekk huwa li jien iterazzjoni fuq kull ringiela tal-piramida.
I tista 'tagħmel xi ħaġa għal kull ringiela ġewwa l-korp ta 'linja tiegħi.
>> Dak li qed nagħmlu ġewwa il-korp tal-linja?
Ukoll, kif aħna diġà qal, aħna qed istampar ispazji u aħna qed hashes istampar
u aħna qed istampar linja ġdida.
Allura barra tiegħi għal loop se teżamina bħal dan.
I jtenni fuq kull ringiela tal-piramida, bl-użu,
f'dan il-każ, għoli tal-varjabbli li taħżen l-għoli tal-piramida.
Ġewwa l-korp ta 'dak loop, jien morna għall-istampa ispazji ripetutament, jistampa
il hashes ripetutament, u mbagħad print linja ġdida.
>> Allura issa, bl-użu kollha tal-kunċetti li Stajt tkellmu dwar f'dan walk-through,
inti għandek tkun kapaċi jagħti spinta l utent għall-input, jivvalida dan input,
u mbagħad jiġbdu l-nofs piramida.
>> Jisimni Zamyla, u dan huwa CS50.