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.