ZAMYLA Djaki: Li se yon m ', Zamyla. Jodi a nan Mario, nou ap ale nan gen desen piramid la mwatye pou Mario ap monte moute. Se konsa, kite pou nou pale sou nou an a-fè a pou pwoblèm sa a. Nou ap ale nan vle de motive-yo ak valide itilizatè a pou yon D 'ki valab nan ki jan segondè yo vle piramid Mario la yo dwe. Lè sa a,, nou ap ale nan fè l. Se konsa nou jwenn te kòmanse avèk direksyon ak validation itilizatè a pou D 'yo. Nou ka fè pou sèvi ak nan CS50 Bibliyotèk Fonksyon jwenn int ki pral asire ke itilizatè a entrain yon nonb antye relatif. Nenpòt nonm antye relatif pozitif, negatif nonm antye relatif, nimewo 0, yo tout jwèt ki jis. Sinon, yo pral itilizatè a dwe pouse yo rekoumanse jiskaske yo D 'yon nonb antye relatif ki valid. Koulye a, byenke jwenn int fè yon anpil nan travay la pou nou nan asire ke nan itilizatè ba nou yon nonb antye relatif, nou toujou bezwen pou aplike pou kèk kontrent adisyonèl sou sa. Apre yo tout, nou pa ka gen Mario k ap grenpe yon piramid mwatye nan wotè negatif 12. Anplis de sa nan sa, nan pwoblèm spesifikasyon di ke nou ka sèlman pèmèt Mario ap monte yon piramid pou yo Heights ant 0 ak 23. OK, se konsa sa vle di ke nou bezwen kontinyèlman pouse itilizatè a ba nou yon valab nimewo ak sèlman kontinye yon fwa yo te ban nou yon wotè ki valid. Ki jan nou fè sa? Oke, pwosesis kontinyèl ban nou lide a nan loops-- yon bagay fè repetitively. Youn bouk nan C kòm yon ti tan bouk ki pral kontinyèlman egzekite kò a nan riban an osi lontan ke kondisyon an bay evalye vre. Le pli vit ke ke kondisyon evalye ak fo, pwogram lan pral kontinye nan kèlkeswa sa ki vini apre sa. Se konsa, pandan y ap pasan se youn fason pou asire ke nou toujou pouse itilizatè a pou yon D 'ki valid. Ak yon lòt fwa yo ban nou yon D 'ki valab, nou pral kontinye nan kèlkeswa sa ki vini kap vini an. Nou konnen ke nou ap ale nan mande itilizatè a pou D 'omwen yon fwa. Se konsa, kounye a nou vini nan yon sè nan la pandan y ap riban, ki se fè la pandan y ap riban. Èske pandan y ap pasan pral egzekite nan kò a riban an omwen yon fwa. Se konsa, san tyeke kondisyon an, li pral egzekite kò a nan riban an. Lè sa a, tcheke kondisyon an yo wè si wi ou non li bezwen yo repete tèt li. Sa a vini an sou la men lè nou ap validation opinyon itilizatè. Nou konnen ke nou ap ale mande yo omwen yon fwa. Se konsa, yon fè pandan y ap riban ta ka gade yon bagay tankou sa a. Nou gen yon n nonb antye relatif. Ak andedan nan fè a pandan y ap riban, nou imedyatman pouse itilizatè a pou yon nonb antye relatif. Si n se valab, lè sa a nou pral èd memwa yo ankò, li ankò e ankò jiskaske yo ban nou ki nonb antye relatif ki valid. Finalman, yon fwa n se yon D 'ki valab, nou pral kontinye nan rès la nan pwogram nou an. Se konsa, kite a tounen nan espèk a ak chèk ki kondisyon yo pou yon D 'valab a pwal. mòn yo valab yo ale nan gen ant 0 ak 23, enklizif. Heights Se konsa, valab yo ale nan gen pi piti pase 0 oswa plis pase 23. Se konsa, sonje nan konsepsyon eta sante ou ak anpil atansyon, konnen ke kondisyon an pou fè a pandan y ap riban yo ta dwe pandan y ap n se valab. Koulye a, sa a pa pral gen yon senp sèl ekspresyon Boolean. Nou pral gen konbine de ekspresyon diferan fè tout kondisyon nou yo. Se konsa nou jis gade nan yon tablo verite mwen te deja ba ou allusion a ke nou ap yo pral fè fas ak de Booleans. Se konsa, isit la nan yon tab verite kote mwen gen de Booleans-- Boolean 1 ak 2. Se konsa, nou gen opsyon a evalye bool1 ak bool2 oswa bool1 oswa bool2. Epi li pral sèlman dwe vre si toude Booleans evalye vre, Lè nou konsidere ke tout oswa yo pral vre osi lontan ke youn nan de Booleans nan evalye vre. OK, se konsa pran yon moman, fè yon kanpe sa a videyo ak dijere tab verite sa a. Mwen pral dwe gen dwa isit la ap tann. Lè ou tounen, gade si ou ka mete ansanm yon ekspresyon Boolean pou ou kondisyon nan n yo te yon opinyon valab. Se konsa, kounye a ke nou gen valab opinyon itilizatè, se pou yo ale pi devan epi pale sou ki jan nou ta ka trase piramid la mwatye. Isit la nan editè sa a tèks senp, Mwen te trase yon piramid bò gòch aliyen. Men, nou konnen ke nou bezwen nou an piramid yo dwe dwat aliyen. Se konsa, kouman mwen ta ka fè sa? Bon, mwen ta ka eseye pouse tout bagay sa yo bò la pa jis mete yon ti kras karaktè nan ant. Lè sa a,, pou pwochen an liy, mwen pral mete kèk karaktè plis pouse li ansanm, ak sou further-- sa ak pou forth-- jouk tan mwen gen piramid la dwat ki aliyen. Se konsa, nou fè gen yon dwa piramid aliman, men li pa gade tèlman gwo ak pwen yo. Men, nou toujou vle kenbe ki bèl espas. Se konsa, mwen ale nan literalman insert kèk espas. Olye pou yo twa pwen, mwen pral mete yon sèl, de, twa espas. Sou liy, dezyèm lan. Mwen pral mete yon sèl, de espas. Yo, epi sou penultyèm a liy, sèlman yon sèl espas. Ak isit la mwen gen yon piramid dwat aliyen. Soti nan fè egzanp lan nan tèks la editè, nou gen yon lide pou modèl la ke nou pral sèvi ak fè desen piramid la mwatye. Pou chak ranje, sa nou te fè se nou tape kèk espas, ak Lè sa a tape kèk achaj, ak Lè sa tape kle a Antre, ki se kreye yon nouvo liy. Se konsa, kounye a ke nou gen sa, se pou yo ale yon sèl etap plis epi jwenn yon modèl. Se konsa, mwen pral di, pou la enterè nan egzanp sa a, nou ap fè fas ak yon wotè ki 8. ranje nan premye ki pral gen de achaj ki swiv sèt espas. second-- twa achaj yo, sis espas. Twazyèm row-- kat achaj, senk spaces-- sou sa ak pou fè jiskaske nou ale nan ranje a nyèm. Se sak fè, mwen mande ou pou ranje a nyèm, konbyen achaj nou pral gen ak ki jan anpil espas? Se konsa, li a jiska ou eseye figi konnen yon fòmil ki reprezante konbyen achaj ak ki jan anpil espas yo bezwen pou yo ranje a nyèm lè ou gen kèk wotè. Koulye a, lè w ap lè n ap kalkile sa a soti, dwe fè atansyon ki jan w ap Indexing. Ki sa mwen vle di pa sa a se ke nan lavi chak jou tout moun nan nou kòmanse konte, anjeneral, pa 1. Men, nan CS50 ak nan syans òdinatè an jeneral, nou yo se 0 Catalogue. Se konsa, premye ranje a ta dwe n nan 0 kòm opoze a 1. Fè atansyon nan sa a lè w ap ap eseye figi konnen modèl ou yo. Se konsa, kounye a kite a tounen nan ki jan nou ap ale nan trase piramid nou an. Pou chak ranje, nou ap ale nan vle enprime espas yo, enprime achaj yo, ak Lè sa a enprime yon nouvo liy. allusion a isit la se nan mo "pou" chak ranje. Nan C, nou gen yon konstwi rele yon pou riban, ki se konpoze de yon inisyalizasyon, se yon kondisyon, yon ajou, ansanm ak tout kò a nan riban an. Di mwen te vle di, alo mond, 50 fwa, mwen pou riban ta gade yon bagay konsa. Mwen inisyalize nonb antye relatif mwen an 0. Kondisyon nan se ke mwen se mwens pase 50. Lè sa a, aktyalizasyon mwen an se jis incrementing mwen pa youn chak fwa. Nou kapab tou itilize pou pasan repekte sou bagay sa yo. Avi isit la ki jan nou pa gen difisil kode yon nimewo, men pito mete varyab la wotè olye nan kondisyon an. Se konsa, sa m ap fè isit la se mwen iteration sou tout ranje nan piramid la. Mwen kapab fè yon bagay pou chak ranje andedan kò a nan riban mwen. Kisa n'ap fè andedan kò a nan riban an? Bon, kòm nou deja di, nou ap enprime espas epi nou ap enprime achaj epi nou ap enprime yon nouvo liy. Se konsa, deyò mwen an pou riban pral gade tankou sa a. Mwen repekte sou chak ranje nan piramid la, lè l sèvi avèk, nan ka sa a, wotè kòm varyab la ki magazen wotè nan piramid la. Anndan kò a nan ki riban, mwen se pral enprime espas repete, ekri an lèt detache achaj yo repete, ak Lè sa a enprime yon nouvo liy. Koulye a, lè l sèvi avèk tout nan konsèp yo ki Mwen te te pale osijè de nan sa a mache-nan, ou ta dwe kapab pouse nan itilizatè pou D ', valide ki D', ak Lè sa a trase piramid la mwatye. Non mwen se Zamyla, e sa se CS50.