[Daqq tal-mużika] ROB BOWDEN: Huwa me, Rob. Ejja jimxu permezz ta 'kif biex jimplimentaw Mario. Allura l-ewwel ħaġa li għandna bżonn tagħmel hu li pront l-utent għall-input. Għandna bżonn li jistaqsu lilhom eżattament kif tall-piramida għandu jkun. Allura hawn, naraw li aħna qed tagħmel għoli = GetInt. An U ftakar li l-funzjoni GetInt hija implimentata fil-CS50 librerija, hekk top up, għandna bżonn li ftakar li # jinkludi cs50.h. Allura għaliex għandna dan mgeżwra fil-linja do-waqt? Well, aħna wkoll bżonn li wieħed jiftakar li input l-utent għandu jkun validu. X'inhu input invalidu? Ukoll l-spec pset speċifikament jgħid li f'għoli inqas minn 0 jew akbar minn 23 huwa invalidu. Allura up here, naraw li aħna qed tiddefinixxi kostanti imsejjaħ MAX_HEIGHT mal- valur ta '23. Dan loop do-waqt li se jkompli filwaqt li għoli huwa inqas minn 0 jew MAX_HEIGHT huwa inqas mit-tul, li jfisser li 23 huwa inqas mill-għoli. Mela jekk l-għoli huwa 24 jew aktar, aħna qed se tkompli looping. Ftakar li do-waqt loops huma pjuttost utli meta irridu jiksbu input utent u mbagħad jivvalida dan, peress aħna inevitabbilment bżonn biex issaqsi lill-utent fuq inqas darba għall-valur li jridu. Allura ladarba għandna l-kontribut tagħhom, aħna issa tista 'tibni l-piramida. Wieħed mill-tricks ta 'din il-problema stabbiliti hija li għandna biex tibda fil-quċċata ta ' il-piramida. Inti ma tistax printf-qiegħ tal- piramida u mbagħad jibnu tiegħek mod up. Mela ejja nħarsu lejn l-eżempju mill-spec pset. Naraw hawnhekk li meta aħna jidħol għoli tat-8, il-qiegħ nett tal- piramida stampi disa hashes. Wieħed livell up minn dak prints spazju wieħed u tmien hashes. Wieħed livell up minn dan huwa żewġ spazji u seba hashes, it-triq kollha sakemm aħna jiksbu l-quċċata tal-piramida, li hija tmien livelli up, li jippubblikaw seba ' spazji u żewġ hashes. Mela ftakar li għandna tagħmel l-ewwel dan il-livell ogħla. Hawnhekk aħna qed mtennija mill- ogħla livell, ringiela 8, kontinwu sakemm ringiela jilħaq 0. Allura kif ħafna spazji ma neħtieġu li jistampaw f'dak ringiela ta 'fuq? Aħna stampati seba spazji u żewġ hashes. Allura l-għadd ta 'spazji li rridu huwa il-filliera li kienu fuq minus 1. Jekk il-filliera ta 'fuq huwa 8, 8 minus 1 tagħtina seba spazji. Imbagħad għandna loop li se print out kull spazju wieħed fi żmien. Allura meta spazji hija ta '7, dan loop seba 'darbiet, l-istampar seba 'spazji individwali. Allura issa għandna bżonn li tistampa dawn hashes fl-aħħar tal-piramida. Allura hawnhekk, għandna bżonn li jikkalkulaw in-numru ta 'hashes. Naraw li aħna qed tagħmel l-għoli ringiela minus plus 2. Allura kif ma nikbru li? Ftakar li l-quċċata tal-piramida huwa ringiela 8, u l-għoli huwa ta '8. U aħna xorta stampat żewġ hashes. Allura għall-inqas, 8 minus 8 plus 2 jagħtina t-tweġiba ġusta. U mbagħad jikkunsidraw il-qiegħ tal-piramida, ringiela 1. Ringiela minus għoli se tagħtina 7, u imbagħad plus 2 jagħtina disa hashes, li huwa eżattament l-għadd ta hashes li aħna stampati. Allura dan huwa l-formula li rridu jużaw biex jikkalkulaw in-numru hashes f'kull filliera. Bl-użu dak in-numru, aħna mbagħad ikollhom ieħor għall-loop, simili ħafna għall- għal linja li aħna użati għall-ispazji, li ttenni numru ta 'drabi hashes istampar ta 'hash wieħed kull darba. Fuq il-filliera ta 'fuq, li ser jistampaw żewġ hashes. Fuq il-filliera qiegħ, li ser print disa hashes. U kull ringiela oħra se print kull numru ta 'hashes bejniethom. U mbagħad fl-aħħar nett, għandna bżonn li print linja l-ġdida tagħna biex tmur fil-li jmiss ringiela fil-piramida. Fl-aħħarnett, għandna bżonn li jistampaw il-linja ġdida fit-tmiem tal-filliera biex ikomplu għall-ieħor ringiela tal-piramida. U fl-aħħar tal-programm tagħna, aħna għandna l-ritorn 0. Skond l-spec pset, ir-ritorn 0 mhijiex strettament neċessarja. Iżda li dan ifisser li l ewlenija isir. Jisimni Rob, u dan kien Mario. [Daqq tal-mużika]