ZAMYLA CHAN: See on minu Zamyla.
Täna Mario, me ei kavatse olla juhtides poole püramiid Mario
ronida.
>> Nii räägime meie Ülesanded sellele probleemile.
Me läheme taha kiire ja kinnitada
kasutaja kehtiva sisend, kuidas kõrge tahavad Mario püramiidi olla.
Ja siis, me ei kavatse teha seda.
Nii saab alustada õhutusel ja valideerida kasutaja nende panuse eest.
>> Me ei kasuta CS50 raamatukogu Function
saada int, mis tagab, et kasutaja sisestab täisarv.
Iga positiivse täisarvu, negatiivne täisarvud, number 0 on kõik aus mäng.
Vastasel juhul on kasutajal palutakse uuesti, kuni nad sisend kehtiv täisarv.
Nüüd kuigi get int teeb palju tööd meile
tagada, et kasutaja annab meile täisarv,
peame siiski rakendada mõningaid täiendavaid piiranguid, mis.
Lõppude lõpuks, me ei saa olla Mario ronida pool püramiidi kõrgus negatiivne 12.
>> Lisaks sellele on probleemi määratlemise
ütleb, et saame ainult võimaldavad Mario ronida
püramiidi kõrguste vahemikus 0 ja 23.
OK, nii et see tähendab, et me peame pidevalt kiire kasutaja
meile kehtiva number ja jätkata ainult
Kui nad on andnud meile kehtiv kõrgus.
Kuidas me seda teeme?
>> Noh, pidevad protsessid annavad meile idee loops-- midagi
korduvalt.
Üks loop C kui samas loop, mis pidevalt
teostada keha loop niikaua Antud tingimus tulemus on tõsi.
Niipea, kui see tingimus hindab vale,
programm jätkab mis iganes tuleb pärast seda.
Niisiis, kui silmuseid on üks võimalus tagada, et me pidevalt
palub kasutajal kehtiva sisend.
Ja kui nad annavad meile kehtiv sisend, me edasi olenemata tuleb järgmisena.
Me teame, et me ei kavatse küsida kasutaja sisend vähemalt üks kord.
Nüüd jõuame õde samas silmus, mis on do samas silmus.
>> Kas samas silmuseid võttev keha silmus vähemalt üks kord.
Nii, ilma et kontrollida seisukorda, see täidab keha silmus.
Ja siis kontrollige seisund näha kas ta peab ennast korrata.
See on mugav, kui me kinnitamise kasutaja sisend.
Me teame, et me ei kavatse paluda neil vähemalt üks kord.
Nii do samas silmus võiks nägema midagi sellist.
Meil on täisarv n.
Ja sees do samas silmus, me kohe
küsib kasutajalt täisarv.
Kui n on kehtetu, siis me sundida neid uuesti ja uuesti ja uuesti, kuni nad
meile, et kehtiv täisarv.
Lõpuks, kui n on kehtiv sisend, jagame edasi kogu meie programmi.
>> Nii lähme tagasi spec ja kontrolli Mis tingimused on kehtiv sisend
läheb.
Kehtiv kõrgused hakkavad olema vahemikus 0 kuni 23.
Nii kehtetuks kõrgused hakkavad olla väiksem kui 0 või rohkem kui 23.
Seega pidage meeles, et kujundada oma seisundit hoolikalt,
teades, et tingimus do samas loop
peaks olema samas n on kehtetu.
Nüüd ei ole see saab olema Lihtne ühe Loogiline väljendus.
Me läheme peame ühendama kaks erinevat väljendite
et meie kogu seisukorras.
>> Nii saab lihtsalt vaadata tõeväärtustabelitega Olen juba andnud teile vihje, et me oleme
hakatakse lähtuma kahest tõeväärtused.
Nii et siin on tõde tabelis, kus ma on kaks Booleans-- Loogiline 1 ja 2.
Nii et meil on võimalus hinnata bool1 ja bool2 või bool1 või bool2.
Ja ainult siis tõene, kui mõlemad Tõeväärtused TÕENE, arvestades, et kõik
või on tõsi niikaua üks Kahe tõeväärtused tulemus on tõsi.
OK, nii et võta hetk, paus selle video ja seedida seda tõde tabelis.
Ma tulen kohe siin ootab.
Kui tulla tagasi, vaata kui saad kokku panema
Boole'i ​​avaldis oma seisukorda n on kehtetu sisend.
>> Nüüd, et meil on kehtiv kasutaja sisend, olgem
minna ja rääkida, kuidas me võib juhtida poole püramiid.
Siin see lihtne tekstiredaktor, Olen juhtinud vasakule joondatud püramiid.
Aga me teame, et peame oma Püramiidi tuleb paremjoondatult.
Niisiis, kuidas võiks seda teha?
Noh, ma võiks proovida suruda kõik küljele
lihtsalt panna natuke iseloomu vahel.
Ja siis järgmise line, ma panen
veel mõned tegelased suruda seda mööda, ja further-- nii edasi ja nii forth--
kuni mul paremjoondatult püramiid.
Nii on meil õigus align püramiid, kuid see ei tundu nii suur, koos dots.
Aga me ikka tahame väidavad, et kena vahe.
Nii et ma lähen sõnalt lisada mõned ruumid.
>> Selle asemel, et kolm punkti, ma panna üks, kaks, kolm tühikuid.
Teisel real.
Ma panen ühe, kaks sammu.
Ja eelviimasel line, vaid üks ruum.
Ja siin on mul paremjoondatult püramiid.
Siit tehes näiteks teksti toimetaja, meil on idee muster
et me kasutame juhtida poole püramiid.
Iga rida, mida me tegime on meil kirjutada mõned ruumid,
ja siis kirjutada mõned räsi ja seejärel trükitud
Enter, mis loob uue rea.
Nüüd, et meil on, et lähme üks samm edasi ja leida mustrit.
>> Nii et ma lähen öelda, et huvi selle näiteks
me tegeleme kõrgus 8.
Esimene rida läheb on kaks räsisid, et järgmised seitse ruumid.
Second-- kolm räsi kuus sammu.
Kolmandaks row-- neli räsi viis spaces-- nii edasi ja nii edasi
kuni saame nda rea.
Niisiis, ma palun teil nda rea, kui palju räsisid me tahame olla
ja kui palju ruumi?
Nii et see on kuni teil välja mõelda valem esindama mitu räsisid
ja kui palju ruumi on vaja nda rea, kui teil on mõned kõrgus.
>> Nüüd, kui sa oled viinud see välja, olema ettevaatlik, kuidas sa indekseerimine.
Mida mõtlen, on see, et igapäevaelus kõik meist
hakka lugema, tavaliselt 1.
Aga CS50 ja infotehnoloogia Üldiselt oleme 0 indekseeritud.
Nii et esimene rida oleks n 0 vastandina 1.
Ole ettevaatlik see, kui sa oled püüab selgitada oma muster.
Nüüd lähme tagasi, kuidas me ei kavatse teha meie püramiid.
Iga rida, me ei kavatse taha printida ruumid, printida räsi
ja seejärel printida uue rea.
Vihje on siin Sõna "," igal real.
In C, meil on konstrukt nimetatakse silmus,
mis koosneb kohta initsialiseerimise, seisund, uuendus,
ja keha silmus.
>> Ütle tahtsin öelda, tere maailma 50 korda, minu jaoks silmus
näeks midagi sellist.
Ma initsialiseerida minu täisarv 0.
Tingimuseks on, et ma on väiksem kui 50.
Ja siis minu uuendus on lihtsalt incrementing ma ühe iga kord.
Me võime ka kasutada silmad itereerima asjade üle.
Pange tähele siin, kuidas me ei ole kõva kodeeritud number,
vaid pigem panna muutuja kõrgus asemel sisse seisukorras.
Mida ma teen siin ma iterating üle iga rea ​​püramiidi.
Ma ei tee midagi igale rida kehas minu loop.
>> Mida me teeme sees keha loop?
Noh, nagu me juba ütles, et me trükkimine ruumid ja me trükkimine räsisid
ja me printimise uue rea.
Nii et minu välimine silmus näeb välja selline.
Ma Käi iga rea püramiidi, kasutades
sel juhul, kõrgus muutuvaks mis talletab kõrguse püramiidi.
Kehas, et loop, ma olen trükkimineku ruumid korduvalt, print
räsisid korduvalt ja seejärel printida uue rea.
>> Nüüd, kasutades kõiki mõisteid, mis Olen rääkinud sel läbikäidav,
siis peaks olema võimalik, et paluda kasutaja sisend, kinnitada, et sisend,
ja seejärel teha poole püramiid.
>> Minu nimi on Zamyla, ja see on CS50.