ZAMYLA CHAN: Laten we sprong in Mario. Mario is een programma waar we maken onze zelf, zij het primitieve, versie een klassieker Super Mario Brothers spel achtergrond. Voor dit probleem set, we gaan aan de halve piramide opnieuw voor Mario om te springen op. Ons programma zal interactief zijn, dus het vraagt ​​de gebruiker om invoer van een bepaalde hoogte van de piramide. En het programma zal afdrukken van een half-piramide van die hoogte, waar de linksonder hash uitgelijnd met de onderkant linkerbovenhoek van de terminal uitvoervenster. Laten we breken dit probleem in twee delen, een, krijgt input van de gebruiker, en twee, afdruk van de piramide. Vergeet niet dat hoewel de getInt functie zal een integer ophalen, u moet ervoor zorgen dat deze input maakt gevoel voor uw programma, dus in Mario, zal het niet alleen een doen product van een geheel getal. Je moet ervoor zorgen dat de gebruiker ingangen een geheel getal dat is binnen de onder-en bovengrens van de piramide die u kunt afdrukken. Per deze spec, dit is 0 en 23 inclusive. Als de gebruiker een integer ingangen buiten van onze geaccepteerde grenzen, dan willen we om ze weer aanzetten en opnieuw totdat ze geven ons een geldige integer. Een manier om de juiste input van de gebruiker te waarborgen is met behulp van een Do-While-lus, dat is zeer vergelijkbaar met een While-lus. De Do-While-lus voert de code in het lichaam eenmaal af en controleert of aan de voorwaarde is voldaan of niet. Dit is nuttig voor het verkrijgen van gebruikersinvoer omdat je weet dat je nodig hebt om ze prompt ten minste een keer. Als de voorwaarde niet is voldaan, wordt het programma zal de lijn uit te voeren na je Do-While-lus. Als de voorwaarde wordt voldaan, niettemin, de lus zal herhalen. Een Do-While-lus voor het valideren van gebruikersnamen inbreng zal er ongeveer zo uitzien. Ik verklaar een variabele n, getint, en herhaal tot n geldig is. Vergeet niet dat wanneer u verklaren uw variabele, moet de juiste scope, net als in Scratch. Als ik verklaar n in mijn Do-While-lus, de rest van het programma niet staat om het te openen. Het is beperkt tot de grenzen van de accolades. Oke, dus nu dat we hebben gevalideerd invoer van de gebruiker, we eigenlijk nodig hebben om trekken deze halve piramide. Het is gemaakt van gedrukte tekens, dus laten we een half-piramide in een eenvoudige teksteditor. Als we willen een Mario-stijl piramide maken van de hoogte van drie dat is afgestemd aan de linkerkant van ons raam, dan we zouden typen twee hashes, klik op Enter, typ drie hashes, klikt Enter en typ vier. Maar in deze probleemstelling, onze half-piramide heeft naar rechts worden uitgelijnd. Met behulp van een standaard toetsenbord, hoe kunnen u dit bestand wijzigen om hashes te verplaatsen dan naar de rechterkant? Ik zou kunnen gebruiken om underscores, twee op de bovenste rij en een op de tweede. Dat ziet er niet zo mooi, hoewel, dus laten vervangen onderstreept met ruimten, en daar hebben we een half-piramide van de hoogte van drie. Probeer en onthoud dit teksteditor Bijvoorbeeld als je begint te denken terug naar C. Laten we proberen erachter te komen wat soort patroon dat we kunnen in een lus construct. Neem een ​​voorbeeld hoogte, zeggen acht, en kijk of je kunt beginnen te komen met een patroon. De eerste rij zal zeven ruimtes gevolgd door twee hashes. De tweede rij zal hebben zes ruimten en drie hashes, en dus blijft de achtste rij. Maar hoe doe je zou vertegenwoordigen de n-de rij? Vergeet niet dat de programmering conventie nul geïndexeerd. Dat betekent dat je begint te tellen bij nul, dus de eerste rij is technisch rijnummer nul met twee luiken, rij nummer een heeft drie hashes, rij nummer twee heeft vier hashes, dus na dit patroon voor elke rij getal n, er n plus 2 hashes. Ik laat het aan u, hoewel, te vinden uit het patroon van de ruimtes. Vergeet niet dat je patroon zal zijn iets anders als u ervoor kiest om start uw telling van een en niet nul. Nu heb je een patroon voor geen abstract rij n. Weet je hoeveel spaties om af te drukken en hoeveel hashes, dus voor elke rij, dat nummer zal veranderen. Maar hetzelfde proces waarbij een enkel teken, ofwel een ruimte of een hash wordt herhaald. Dus alles wat je hoeft te doen is herhaaldelijk drukken dat teken voor zo vele malen als uw patroon bepaalt. Dus hoe kunnen we processen herhalen? In Scratch, gebruikten we de herhaling blok. In C, gebruiken we een For-lus. Laten we eens kijken naar de syntaxis voor For loops. Elke For-lus bestaat uit drie onderdelen, een initialisatie, een voorwaarde, en een update. Uw For-lus zal initialiseren een variabele toen voor het eerst komt in de For-lus. Als de voorwaarde is voldaan, het lichaam van de lus zal uitvoeren. Daarna zal de update uit te voeren. Als de aandoening is nog steeds voldaan, de lus zal uitvoeren en actualiseren en herhalen zolang uw conditie evalueert op True. Je bent voorwaarde moet uiteindelijk waarderen op False, maar, omdat tegenstelling Scratch, doen we niet hebben geen blijvend lussen. Uw programma moet uiteindelijk. Hier is een voorbeeld van een For-lus die je zou willen gebruiken voor Mario. De initialisatie verklaart een geheel getal i met de waarde 0. Zolang ik minder is dan de hoogte, het lichaam van de lus zal uitvoeren en verhogen i door een en herhaal tot i groter of gelijk aan de hoogte. Nu, mijn For-lus nul index. De Int i begint bij nul, niet een. Als ik koos voor een, dan mijn toestand zou ook verschillend zijn de lus aan de uit te voeren hetzelfde aantal keren. Onthoud dit goed als je het kiezen van uw initialisatie en uw conditie, en deze raadplegen in kaart te controleren verdubbelen. Een van de grote dingen over de computer wetenschap is dat er gewoon zo veel manieren om dingen uit te voeren. U kunt kiezen of u beginnen bij nul of een. Als u niet wilt gebruiken voor een lus, U kunt ook een While-lus gebruiken om herhaal uitspraken zolang je houden de essentie van een For-lus, initialisatie, voorwaarde, en actualisering. Zodra we achterhalen van de For-lus die We zijn het meest comfortabel met, dan kunnen we kunnen voltooien Mario. We hebben eerst gecontroleerd op invoer van de gebruiker en vervolgens geïdentificeerd een patroon voor elke rij n. Dus voor elke rij van nul tot n minus 1 zal het juiste aantal afdrukken ruimten, het overeenkomstige aantal hashes volgens onze patroon, en dan is een nieuwe lijn. Met dat, heb je je piramide. Mijn naam is Zamyla, en dit was Mario.