ZAMYLA CHAN: Låt oss hoppa in Mario. Mario är ett program där vi kan göra vår egen, om än primitiv, version av en klassisk Super Mario Brothers spel bakgrund. För detta problem set, vi ska att återskapa halv pyramid för Mario att hoppa på. Vårt program kommer att vara interaktiv, så det kommer att be användaren att mata in ett visst höjd för pyramiden. Och programmet kommer att skriva ut en halv pyramid av denna höjd, där nedre vänstra hash linje med botten vänstra hörnet av terminalen utgång fönster. Låt oss bryta detta problem i två delar, en, få indata från användaren, och två, skriva ut pyramiden. Kom ihåg att även om getInt funktionen hämtar ett heltal, du måste se till att denna ingång gör meningsfullt för ditt program, så i Mario, kommer den att göra inte bara en produkt för ett heltal. Du måste se till att användaren ingångar Ett heltal som finns inom nedre och övre gränserna för pyramid som du kan skriva ut. Per denna spec, är detta 0 och 23 inklusive. Om användaren matar in ett heltal utanför av våra godkända gränser, då vi vill att uppmana dem om och om igen tills de ger oss ett giltigt heltal. Ett sätt att säkerställa korrekt inmatning är med hjälp av en gör-while-slinga, vilket är mycket lik en while-slinga. The Do-While loop exekverar koden inuti kroppen en gång, och sedan kontrollerar om villkoret är uppfyllt eller inte. Detta är användbart för att erhålla användarinmatning eftersom du vet att du behöver att uppmana dem minst en gång. Om villkoret inte är uppfyllt, programmet kommer att utföra raden efter din Do-While loop. Om villkoret är uppfyllt, fast, slingan kommer att upprepa. En gör-while-slinga för att validera användaren ingången ser ut ungefär så här. Jag deklarerar en variabel n, getInt, och upprepa tills n är giltig. Tänk på att när du deklarerar din variabel, behöver den lämpliga omfattning, precis som i Scratch. Om jag förklarar n innanför min Do-While loop, resten av programmet kommer inte att vara kunna komma åt den. Det är begränsat till användning av klammerparenteser. Okej, så nu när vi har validerat användarens input, behöver vi faktiskt dra denna halv-pyramid. Det består av tryckta tecken, så låt oss göra en halv pyramid på ett enkelt textredigerare. Om vi ​​vill göra en Mario stil pyramid av höjd tre som är i linje på vänster sida av våra fönster, sedan vi skulle skriva två hashar, klicka Enter, skriv sedan tre hashar, klickar Enter och skriv sedan fyra. Men i det här problemet set, vår halv pyramid måste vara rätt inriktade. Använda ett vanligt tangentbord, hur kan du ändra den här filen för att flytta hashar över till höger sida? Jag kan använda till understreck, två på övre raden och en på den andra. Det ser inte så trevligt, men så låt oss ersätta understreck med utrymmen, och där har vi en halv pyramid av höjd tre. Försök och kom ihåg denna text editor exempel när du börjar tänka tillbaka till C. Låt oss försöka lista ut vissa typ av mönster som vi kan sätta i en slinga konstruktion. Ta ett exempel höjd, säger åtta, och se om du kan börja komma med ett mönster. Den första raden kommer att ha sju platser följt av två hashar. Den andra raden har sex platser och tre hashes, och så vidare till dess att åttonde raden. Men hur gör ni skulle representera den n: te raden? Kom ihåg att programmering konvention är noll indexeras. Det betyder att du börjar räkna på noll, så den första raden är tekniskt radnummer noll med två luckor, rad nummer ett har tre hashar, rad nummer två har fyra hashar, så följer detta mönster för varje rad nummer n, det finns n plus 2 hashar. Jag lämnar det till dig, men, för att hitta ut mönstret för utrymmena. Kom ihåg att ditt mönster blir något annorlunda om du väljer att börja räkna från en och inte noll. Nu har du ett mönster för något abstrakt rad n. Du vet hur många platser för att skriva ut och hur många hashes, så för varje rad, som numret kommer att förändras. Men samma processen att skriva en enstaka tecken, antingen ett rum eller en hash, upprepas. Så allt du behöver göra är att upprepade gånger skriva tecknet för så många gånger som ditt mönster avgör. Så hur upprepar vi processer? I Scratch, använde vi för att repetera blockering. I C, kommer vi att använda en for-slinga. Låt oss titta på syntaxen för loopar. Varje För loop består av tre delar, en initiering, ett tillstånd, och en uppdatering. Din För loop kommer att initiera en variabel när den först går in för slingan. Om villkoret är uppfyllt, kroppen av slingan ska köras. Efteråt kommer uppdateringen exekvera. Om villkoret är fortfarande uppfyllt, det loop kommer att utföra och uppdatera och upprepa så länge som din kondition utvärderas till true. Du är villkoret så småningom måste värdera att falskt, men eftersom Till skillnad från Scratch, gör vi inte har några evigt slingor. Ditt program måste upphöra så småningom. Här är ett exempel på en for-slinga som du kanske vill använda för Mario. Initieringen förklarar ett heltal i med värdet 0. Så länge jag är mindre än höjden, kroppen av slingan kommer att utföra och öka i med ett och upprepa tills jag är större än eller lika med höjden. Nu är min För loop noll index. Den Int jag börjar på noll, inte ett. Om jag valde en, då mitt tillstånd skulle måste också vara olika för slingan för att verkställa samma antal gånger. Kom ihåg detta noga när du är väljer din initiering och din tillstånd, och konsultera denna diagrammet att dubbelkolla. En av de bästa sakerna med datorn vetenskap är att det finns bara så många sätt att utföra saker. Du kan välja om du börjar med noll eller ett. Om du inte vill använda en for-slinga, Du kan också använda en while-slinga till upprepa uttalanden så länge du behålla kärnan i en for-slinga, initiering, kondition, och uppdatering. När vi räkna ut För loop som vi är mest bekväm med, då vi kan slutföra Mario. Vi kontrollerade först för indata och därefter identifierat ett mönster för någon rad n. Så för varje rad från noll till n minus 1 skriver ut lämpligt antal mellanslag, sedan lämpligt antal hashar enligt vårt mönster, och sedan en ny rad. Med detta har du din pyramid. Mitt namn är Zamyla, och detta var Mario.