>> ZAMYLA CHAN: La oss hoppe inn i Mario.
Mario er et program hvor vi vil gjøre vårt egen, om enn primitiv, versjon av
en klassisk Super Mario Brothers Spillet bakgrunn.
For dette oppgavesettet skal vi å gjenskape den halve pyramide for
Mario å hoppe på.
Vårt program vil være interaktiv, slik at det vil be brukeren om å taste inn en bestemt
høyde for pyramiden.
Og programmet vil skrive ut en halv pyramide av denne høyden, hvor den
nederste venstre hash linje med bunnen venstre hjørne av terminalen
utgang vinduet.
>> La oss bryte dette problemet i to deler, en, få brukerundersøkelser, og to,
skrive ut pyramiden.
Husk at selv om GetInt funksjon vil hente et heltall, du
må sørge for at denne inngangen gjør sans for programmet ditt, så i
Mario, vil det ikke gjøre bare en produkt for et heltall.
Du må sørge for at brukeren innganger et heltall som er innenfor den
nedre og øvre grenser for pyramide som du kan skrive ut.
Per denne spec, er dette 0 og 23 inkluderende.
Hvis brukeren innganger et heltall utenfor av våre aksepterte grenser, så vi ønsker
å be dem igjen og igjen før de gir oss et gyldig heltall.
>> En måte å sikre korrekt brukerundersøkelser er ved hjelp av en gjør-Mens loop, er som
svært lik en Mens sløyfe.
Gjør-Mens løkke utfører koden inne i kroppen en gang, og deretter kontrollerer
om vilkåret er oppfylt eller ikke.
Dette er nyttig for å skaffe brukerundersøkelser fordi du vet at du trenger
å be dem minst én gang.
Dersom vilkåret ikke er oppfylt, vil programmet vil utføre linjen etter
din Do-Mens loop.
Hvis betingelsen er oppfylt, skjønt, løkken vil gjenta.
>> En Do-Mens sløyfe for å validere brukeren innspill vil se omtrent slik ut.
Jeg erklærer en variabel n, GetInt, og gjenta til n er gyldig.
Husk at når du deklarerer variable, må det riktig
omfang, akkurat som i spillene.
Hvis jeg erklærer n inni min Do-Mens loop, resten av programmet vil ikke være
kunne få tilgang til den.
Den er begrenset til rammen av de klammeparentes.
>> Ok, så nå som vi har validert brukerens input, vi faktisk trenger å
tegne dette halv-pyramiden.
Det består av trykte bokstaver, så la oss lage en halv pyramide på en enkel
teksteditor.
Hvis vi ønsker å gjøre et Mario stil pyramide av høyden tre som er på linje
på venstre side av vinduet vårt, så vi skulle skrive to hasher, klikker Enter,
deretter inn tre hasher, klikk Enter, og skriv deretter inn fire.
>> Men i dette oppgavesettet, vår half-pyramiden må være høyrejustert.
Ved hjelp av en standard tastatur, kanskje hvordan du endre denne filen til å flytte hasher
over til høyre side?
Jeg kan bruke til å understrek, to på øverste rad og en på den andre.
Det ser ikke så fint, skjønt, så la oss erstatte understreker med
mellomrom, og det har vi en halv pyramide av høyden tre.
>> Prøv og husk dette teksteditor eksempel som du begynner å tenke tilbake til
C. La oss prøve og finne ut noen slags mønster som vi kan
satt i en sløyfe konstruksjon.
Ta et eksempel høyde, sier åtte, og se om du kan begynne å
komme opp med et mønster.
Den første raden vil ha sju plasser etterfulgt av to hasher.
Den andre raden vil ha seks plasser og tre hasher, og så videre til
åttende rad.
>> Men hvordan gjør du ville representere den n-te rad?
Husk at programmering konvensjonen er null indeksert.
Det betyr at du begynne å telle på null, så den første raden er teknisk
radnummer null med to luker, rad nummer én har tre hasher, rad
nummer to har fire hasher, så følger dette mønsteret for en rad
tallet n er det n pluss 2 hashtegn.
Jeg skal la det til deg, men å finne ut mønsteret for arealene.
Husk at mønsteret vil være litt annerledes hvis du velger å
starte tellingen fra en og ikke null.
>> Nå har du et mønster for noe abstrakt rad n.
Du vet hvor mange plasser å skrive ut og hvor mange hasher, så for hver rad, og
nummeret, vil endres.
Men den samme prosessen med å skrive ut en enkelt tegn, enten mellomrom eller et
hash, gjentas.
Så alt du trenger å gjøre er gjentatte ganger skrive det tegnet for så mange ganger
som mønster bestemmer.
>> Så hvordan gjentar vi prosesser?
I Scratch, brukte vi gjenta blokken.
I C, vil vi bruke en For-løkke.
La oss se på syntaksen for For sløyfer.
>> For hver sløyfe er sammensatt av tre deler, en initialisering, en tilstand,
og en oppdatering.
Din For sløyfe vil starte en variabel når det først
entrer For loop.
Hvis betingelsen er oppfylt, kroppen av loopen skal utføre.
Etterpå vil oppdateringen utføre.
>> Dersom tilstanden fortsatt er oppfylt, det Løkken vil utføre og oppdatere og
gjenta så lenge tilstanden din SANN.
Du er tilstanden må til slutt valuate til False, men fordi
i motsetning til Scratch, gjør vi ikke har noen Alltid sløyfer.
Programmet må slutte slutt.
>> Her er et eksempel på en For-løkke som kan det være lurt å bruke for Mario.
Initialisering erklærer et heltall jeg med verdien 0.
Så lenge i er mindre enn høyden, kroppen av loopen vil utføre og
øke i etter tur og gjenta inntil i er større enn eller
lik høyden.
>> Nå er min For sløyfe null indeksen.
Den Int jeg starter på null, ikke en.
Hvis jeg valgte en, så min tilstand ville må også være forskjellig for
løkken for å utføre samme antall ganger.
Husk dette nøye når du er velger initialisering og din
tilstand, og konsultere dette kartlegge for å dobbeltsjekke.
>> En av de store tingene om datamaskinen vitenskap er at det er bare så mange
måter å utføre ting.
Du kan velge om du starter på null eller én.
Hvis du ikke ønsker å bruke en For-løkke, du kan også bruke en while-loop til
gjenta uttalelser så lenge du holde essensen av en For-løkke,
initialisering, tilstand, og oppdatering.
Når vi har funnet ut For loop som vi er mest komfortabel med, så vi
kan fullføre Mario.
>> Vi først sjekket for brukerundersøkelser og deretter identifisert en
mønster for hvilken som helst rad n.
Så for hver rad fra null til n minus ett vil skrive ut riktig antall
mellomrom, deretter riktig antall hasher etter mønster vår, og
deretter en ny linje.
Med dette har du din pyramide.
Mitt navn er Zamyla, og dette var Mario.