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.