ZAMYLA CHAN: Kjo është një-me, Zamyla.
Sot, ne jemi duke shkuar për të zbatuar Mario, ku ne barazim Mario
një piramidë të plotë për atë të hidhen mbi.
Le të thyejnë poshtë nën-detyrat për këtë problem.
>> Së pari, ne duam të menjëhershëm të përdoruesit për lartësinë e piramide.
Dhe atëherë ne duam të sigurohemi se kjo input është e vlefshme.
Dhe pastaj ne do të dua të tërheq piramidën.
>> Pra, le të flasim për nxitur dhe Vleresimin dhëna përdoruesi.
Kjo mund të duket diçka si kjo, një lak për ta bërë ndërkohë që
bën të përdoruesit për një numër i plotë dhe pastaj vetëm përsërit
në qoftë se integer është i pavlefshëm.
Pra, çfarë duhet të jetë ky kusht?
>> Për këtë, le të kthehemi me specifikimet.
E pra, spekulim na tregon se çdo të vlefshme lartësia do të jetë në mes të 0 dhe 23,
përfshirëse.
Kështu, pra, kjo do të thotë se çdo i pavlefshëm lartësia do të jetë më pak se 0
ose më shumë se 23.
>> Pra, tani që ne kemi këtë informacion, le te percaktoje gjendjen tonë.
Por ne duhet të jenë të kujdesshëm, sepse tani kemi
Dy Booleans që ne duam për të vlerësuar.
>> Këtu unë kam dhënë ty me një tryezë të vërtetën.
Kjo na lejon të marrë dy Booleans, Boolean një dhe dy.
Dhe ne mund të vlerësojmë as bool1 dhe bool2 ose bool1 ose bool2.
>> Pra, çfarë është dallimi ndërmjet dhe dhe ose?
Well, bool1 dhe bool2 do vlerësuar të vërtetë në qoftë se dhe vetëm
në qoftë se të dy Booleans janë të vërteta, ndërsa ose operacion
do të jetë e vërtetë në qoftë se as një nga të Booleans ose të dyja janë të vërteta.
Pra, me këtë në mendje, shihni nëse ju mund të kuptoj se
çfarë gjendje të përshtatshme për tuaj loop do-ndërsa për një n pavlefshme
do te jete.
>> Me këtë, ne kemi nxitur dhe të vlefshme përdoruesi për lartësinë e piramide
që ata duan.
Deri tani, është deri tek ne për të nxjerrë piramidën.
Piramida e plotë për këtë Problemi do të duket pak
si kjo, ku ne kemi një piramidë të majtë, disa boshllëk, dhe pastaj një piramidë e drejtë.
Pra, le të thyer këtë poshtë pak.
>> Nëse unë shkoj në editor teksti tim, këtu unë kam na tërhequr një piramidë e majtë-linjë.
Por kjo nuk do të bëjë.
Ajo që ne duam të bëjmë është që ne duam të të krijuar një piramidë të drejtë-linjë para.
Pra, për të bërë këtë, për të vetëm shtytje hashes e mi së bashku në anën,
Unë jam vetëm duke shkuar për të vënë disa karaktere në mes, vetëm këto pika.
Atëherë unë jam duke shkuar për të vënë dy në anën linjë tjetër, dhe një në atë linjë.
Dhe kështu që këtu unë kam një piramidale right-linjë.
>> Pas kësaj, unë do të të kthehemi në radhë të lartë
dhe të vënë në boshllëk, i cili është, sipas spekulim, dy hapësira.
Atëherë unë jam duke shkuar për të mbushur në Ana tjetër e piramidës.
Unë jam duke shkuar për të shkuar në rreshtin e dytë, të shkruar dy hapësira për hendekun dhe pastaj dy
hashes.
Përsëri në rreshtin e tretë, dy hapësira për hendekun dhe tre hashes.
Dhe në fund, dy hapësira për hendekun dhe katër hashes.
Pra, kjo është ajo që një të plotë Piramida do të duket si.
>> Natyrisht, ne nuk duam këto pika në mënyrë të.
Pra, ne jemi duke shkuar për të zëvendësuar këto dots me vendosjen e disa hapësira në.
Një, dy, tre në rreshtin e parë.
Një, dy në të dytë.
Dhe një në vijën e tretë.
Pra, kjo është ajo që ne do të bëjmë në qoftë se ne të kërkuar për të vetëm të bëjë një piramidë të plotë,
thonë, në editor teksti tonë.
>> Pra, le të marrë këtë, të kuptuarit e modeleve,
dhe kthyer atë mbi të disa pseudokod.
Për çdo rresht të piramidës, ne duam për të shtypur piramidën e majtë dhe pastaj
hendeku dhe pastaj piramida e drejtë.
Për piramidën e majtë, ne shtyp sasia e nevojshme e hapësirave,
ndjekur nga hashes.
Pastaj ne të shtypura hendekun, i cili është vetëm dy hapësira çdo kohë.
Dhe në piramidën e duhur, ne të shtypura numri i kërkuar i hashes.
>> Për rreshtin e dytë, ne kemi kryer i njëjti proces saktë.
Ne shtyp hapësirat për të majtë piramidale, shuma e nevojshme
i hashes, hendekut, dy hapësira dhe pastaj hashes për piramidës të drejtë.
>> Le të trajtuar modelin për piramidën e majtë.
Nëse do të kishte, për qëllime të për këtë shembull, një lartësi
e tetë kërkohet nga user, atëherë rreshti im i parë
do të ketë një hash dhe shtatë hapësira.
row ime e dytë do të ketë dy hashes, gjashtë hapësira.
radhën e tretë, tre hashes, pesë hapësira.
Ju ndoshta mund ta bëni këtë veten për një lartësi prej tetë
dhe të përcaktojë për çdo rresht sa hashes dhe sa hapësira që ju duhet.
Por ajo që ne duam të bëjmë është ne duam të abstrakte atë.
Kështu që unë kërkoj nga ju për çdo rresht n-, si shumë hashes dhe sa hapësira nuk kemi nevojë?
>> Tani, si ju të përcaktojë model për mënyrën se si shumë hashes
dhe sa hapësira që ju duhet për të çdo rresht n për një lartësi të caktuar,
mos harroni të jenë të kujdesshëm se si ju jeni duke indeksimin.
Çfarë dua të them me këtë është se në çdo ditë Jeta shumica prej nesh të fillojë numërimi nga një.
Kështu në radhën e parë do të jetë numër një.
Në radhën e dytë do të rresht numri dy, e kështu me radhë e kështu me radhë.
>> Por në shkenca kompjuterike dhe CS50, ne jemi zero-indeksuar.
Pra, ne në fakt të fillojë numërimi në zero.
Kështu në radhën e parë do të jetë rresht numri zero.
Në radhën e dytë do të jetë numër një rresht.
Pra, nëse unë kam një lartësi prej tetë për piramidale im, atëherë vlera e fundit të n
në fakt do të jetë shtatë dhe jo tetë.
>> Pra, të jenë të kujdesshëm në lidhje me këtë.
Dhe të jetë i vetëdijshëm kur ju jeni të përcaktuar modeli juaj nëse juaj zero-indeksuar
ose një indeksuar
>> NE RREGULL.
Pra, tani që ne kemi model për piramidën e majtë,
ne kemi nevojë për të përcaktuar model për hendekun.
Për fat të mirë, kjo është me të vërtetë e lehtë.
Është vetëm gjithmonë dy hapësira.
>> Kështu që tani ne të vazhdojë me modelin e duhur.
Rreshtin e parë do të ketë një hash.
Në radhën e dytë, dy.
radhën e tretë, tre.
Kështu me radhë e kështu me radhë.
Pra, përsëri, të përcaktuar për çdo abstract n dhe çdo lartësi sa hashes
dhe sa hapësira çdo rresht duhet të ketë.
>> NE RREGULL.
Pra, ne e dimë se për çdo ne rresht duhet të kryejë një proces.
Si e bëjmë këtë?
E pra, ne i përdorim për ndërtimin loop, përbërë nga një inicializimit,
një kusht, dhe një update.
Për sythe mund të përdoret për të përsëritur proceseve.
>> Pra, thonë se unë dua të them hello, Bota 50 herë, atëherë tim për lak
do të dukej diçka si kjo, ku I nisja ndryshore tim në zero.
Gjendja është që i është më pak se 50.
Dhe pastaj update është se ajo increments nga një çdo herë.
Pra, çfarë kjo do të bëjë do të jetë për të shtypura hello, botërore 50 herë në një rresht.
>> Tani, thonë se unë të kërkuar për të iterate mbi kulmin e piramide.
Pastaj në vend të kodimit të vështirë disa vlera në gjendje,
Unë vetëm përdorin lartësinë ndryshueshme.
Pra, çfarë kjo do të bëjë është iterate mbi lartësinë çdo rresht.
Dhe unë mund të bëjë diçka brenda në trupin e kësaj lak.
>> Çfarë duam të bëjmë brenda trupit të lak?
E pra, siç kemi treguar më parë, ne duam për të shtypur hapësirat dhe hashes
për piramidën e majtë dhe pastaj të shtypura dy hapësira dhe pastaj të shtypura e hashes.
Pra, ne kemi motive tashmë se nga.
Pra, ne mund të fillojnë për të mbushur në programin tonë shumë më tepër.
>> Këtu unë kam një jashtme për lak që iterates mbi çdo rresht të piramidës.
Dhe brenda këtij organi unë jam duke shkuar për të shtypur hapësira në mënyrë të përsëritur,
hashes në mënyrë të përsëritur, dhe më pas hendeku, dhe pastaj hashes për piramidën e duhur,
dhe pastaj, në fund, një i ri linjë për të filluar rreshtin tjetër.
>> Me këtë, ne kemi bërë që përdoruesit për të dhëna.
Ne kemi bërë të sigurt se ajo është e vlefshme.
Dhe pastaj ne kemi tërhequr piramidën.
Pra, Mario mund të me sukses ngjiten piramidën.
>> Emri im është Zamyla.
Dhe kjo është CS50.