[MUSIK SPELA] ROB BOWDEN: Det är jag, Rob. Låt oss gå igenom hur att genomföra Mario. Så det första vi behöver göra är uppmana användaren för inmatning. Vi måste fråga dem exakt hur tall pyramiden ska vara. Så här ser vi att vi gör height = getInt. Ett Och kom ihåg att getInt funktionen implementeras i CS50 bibliotek, så där uppe måste vi kom ihåg att # include cs50.h. Så varför har vi denna inslagna i en gör-while-slinga? Tja, vi måste också komma ihåg att användarens input måste vara giltigt. Vad är en ogiltig inmatning? Tja pset spec uttryckligen säger att en höjd som är mindre än 0 eller större än 23 är ogiltig. Så här uppe, ser vi att vi definierar en konstant kallas MAX_HEIGHT med värde av 23. Detta gör-while-slinga fortsätter samtidigt höjd är mindre än 0 eller MAX_HEIGHT är mindre än höjd, vilket innebär att 23 är mindre än höjden. Så om höjden är 24 eller högre, är vi kommer att fortsätta looping. Kom ihåg att göra-while-slingor är ganska hjälp när vi vill få användarens input och sedan bekräfta det, eftersom Vi måste oundvikligen att fråga användaren vid minst en gång för det värde de vill. Så när vi har deras insatser, vi kan nu bygga pyramiden. Ett av knepen av detta problem som är att vi måste börja på toppen av pyramiden. Man kan inte printf botten av pyramid och sedan bygga dig uppåt. Så låt oss titta på exemplet från pset spec. Vi ser här att när vi går in i en höjd av 8, i botten av den pyramid skriver nio hashar. En nivå upp från att utskrifter en plats och åtta hashar. En nivå upp från det är två platser och sju hashar, ända tills vi komma till toppen av pyramiden, som är åtta nivåer upp, som trycker sju platser och två hashar. Så kom ihåg att vi måste gör detta toppnivå först. Här vi iteration av toppnivå, rad 8, fortsätter tills raden når 0. Så hur många platser vi behöver att skriva ut i den översta raden? Vi ut sju utrymmen och två hashar. Så hur många platser vi vill ha är den rad som var på minus 1. Om den översta raden är 8, 8 minus 1 ger oss sju platser. Sedan har vi en loop som skriver ut ut varje utrymme en i taget. Så när utrymmen är 7, denna slinga sju gånger, tryckning sju enskilda utrymmen. Så nu måste vi skriva ut dessa hashar vid slutet av pyramiden. Så här måste vi räkna antalet hashar. Vi ser att vi gör höjd minus rad plus 2. Så hur har vi det? Kom ihåg att pyramidens topp är rad 8, och höjden är 8. Och vi fortfarande tryckt två hashar. Så åtminstone 8 minus 8 plus 2 ger oss rätt svar. Och sedan överväga botten av pyramiden, rad 1. Höjd minus rad ger oss 7, och då plus 2 ger oss nio hashar, vilket är exakt det antal av hashar som vi tryckt. Så detta är den formel som vi vill använda för att beräkna antalet hashar i varje rad. Med hjälp av den siffran, vi sedan har en annan för slinga, mycket lik den för slinga som vi använde för utrymmena, som itererar flera hashar gånger skriva ut en enda hash varje gång. På den översta raden, kommer att skriva ut två hashar. På den nedersta raden, kommer att ut nio hashar. Och varje annan rad kommer ut varje Antalet hashar i mellan. Och sedan i slutet, måste vi skriva ut våra nya linjen för att gå till nästa ro i pyramiden. Slutligen måste vi skriva ut den nya linjen vid slutet av raden i syfte att fortsätta till nästa raden av pyramiden. Och i slutet av vårt program, vi har retur 0. Per pset spec, avkastningen 0 är inte absolut nödvändigt. Men det betyder att huvud görs. Mitt namn är Rob, och detta var Mario. [MUSIK SPELA]