>> 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.