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.