>> ZAMYLA CHAN: Lad os hoppe ind Mario.
Mario er et program, hvor vi vil gøre vores egne, om end primitive, version af
en klassisk Super Mario Brothers spil baggrund.
Til dette problem sæt, vil vi at genskabe den halve pyramide for
Mario til at hoppe på.
Vores program vil være interaktivt, så det vil bede brugeren om at indtaste en bestemt
højde for i pyramiden.
Og programmet vil udskrive en halv pyramide af denne højde, hvor
nederste venstre hash flugter med bunden venstre hjørne af terminalen
output-vinduet.
>> Lad os bryde dette problem i to dele, en, få bruger-input, og to,
udskrive pyramiden.
Husk, at selv om GetInt funktionen henter et heltal, du
nødt til at sørge for, at denne indgang gør mening for dit program, så i
Mario, vil det ikke gøre bare en produkt til et heltal.
Du bliver nødt til at sørge for, at brugeren indgange Et heltal, der er inden for
nedre og øvre grænse for pyramide, som du kan udskrive.
Per dette spec, er det 0 og 23 inklusive.
Hvis brugeren indgange en heltal uden af vores accepterede bounds, vi derefter ønsker
at bede dem igen og igen, indtil de giver os et gyldigt heltal.
>> En måde at sikre korrekt brugerinput er ved hjælp af en do-while løkke, er der
meget lig en While-løkke.
Do-While loop udfører koden inde i kroppen én gang, og kontrollerer derefter
om betingelsen er opfyldt eller ej.
Dette er nyttigt for at opnå brugerinput fordi du ved, at du har brug for
at bede dem mindst en gang.
Hvis betingelsen ikke er opfyldt, vil programmet vil køre linjen efter
Deres do-while løkke.
Hvis betingelsen er opfyldt, selv om, sløjfen vil gentage.
>> En do-while løkke for validering bruger input vil se noget som dette.
Jeg erklærer en variabel n, GetInt, og gentag indtil n er gyldig.
Husk, at når du erklære din variabel, det kræver passende
omfang, ligesom i Scratch.
Hvis jeg erklærer n inde i mit do-while løkke, resten af ​​programmet vil ikke være
i stand til at få adgang til det.
Det er begrænset til rammerne af de krøllede parenteser.
>> Okay, så nu, hvor vi har valideret brugerens input, vi faktisk har brug for at
drage denne halv-pyramide.
Det består af trykte bogstaver, så lad os gøre en halv pyramide i en enkel
teksteditor.
Hvis vi ønsker at gøre en Mario stil pyramide af højden tre, der er tilpasset
på venstre side af vores vindue, så vi ville skrive to hashes, klik på Enter,
skriv derefter tre hashes, klik Enter, og skriv derefter fire.
>> Men i dette problem sæt, vores halv pyramide skal højrejusteret.
Ved hjælp af en standard tastatur, måske hvordan du ændrer denne fil til at flytte hashes
over til højre?
Jeg kunne bruge til understregninger, to på øverste række og en på den anden.
Det ser ikke så godt, men så lad os erstatte understregningstegnene med
mellemrum, og der har vi en halv pyramide af højden tre.
>> Prøv at huske denne tekst editor eksempel som du begynder at tænke tilbage til
C. Lad os prøve og finde ud af nogle slags mønster, vi kan
sat i en løkke konstruktion.
Tag et eksempel højde, siger otte, og se om du kan begynde at
komme op med et mønster.
Den første række vil have syv pladser efterfulgt af to hashes.
Den anden række har seks rum og tre hashes, og så videre, indtil
ottende række.
>> Men hvordan ville du repræsenterer den n'te række?
Husk, at programmeringen konvention er nul indekseret.
Det betyder, at du begynde at tælle på nul, så den første række er teknisk
rækkenummer nul med to luger, række nummer et har tre hashes, række
nummer to har fire hashes, så efter dette mønster for enhver række
Tallet n, der er n plus 2 hashes.
Jeg vil overlade det til dig, selv om, for at finde mønsteret ud for rummene.
Husk, at dit mønster vil være lidt anderledes, hvis du vælger at
starte din tæller fra én og ikke nul.
>> Nu har du et mønster for enhver abstrakt række n..
Du ved, hvor mange rum til at udskrive og hvor mange hashes, så for hver række, der
nummer vil ændre sig.
Men den samme proces med at udskrive en enkelt tegn, enten et mellemrum eller et
hash, gentages.
Så alt hvad du skal gøre er gentagne udskrive denne karakter for så mange gange
som dit mønster bestemmer.
>> Så hvordan kan vi gentager processer?
I Scratch, brugte vi den gentagne blok.
I C, bruger vi en for-løkke.
Lad os se på syntaksen for For løkker.
>> Hver For løkke består af tre dele, en initialisering, en tilstand,
og en opdatering.
Din For loop vil initialisere en variabel, når det først
træder For-løkken.
Hvis betingelsen er opfyldt, kroppen af løkken vil køre.
Bagefter vil opdateringen udføres.
>> Hvis tilstanden stadig er opfyldt, løkke vil udføre og opdatere og
gentages, så længe din tilstand evalueres til True.
Du betingelse skal i sidste ende værdisætte til falsk, men fordi
i modsætning til Scratch, gør vi ikke har nogen Forever sløjfer.
Dit program skal ende sidst.
>> Her er et eksempel på en for-løkke, der du måske ønsker at bruge til Mario.
Initialisering erklærer et heltal i med værdien 0.
Så længe i er mindre end højden, kroppen af ​​løkken vil udføre og
forhøje i af én og gentag indtil jeg er større end eller
lig med højden.
>> Nu, min For loop er nul indeks.
Den int i starter ved nul, ikke én.
Hvis jeg valgte en, så min tilstand ville også være forskellig for
løkken at udføre samme antal gange.
Husk dette omhyggeligt, når du er vælge din initialisering og din
tilstand og konsultere denne kortlægge at dobbelttjekke.
>> En af de gode ting ved computeren videnskaben er, at der er lige så mange
måder at udføre tingene.
Du kan vælge, om du starter ved nul eller én.
Hvis du ikke ønsker at bruge en for-løkke, du kan også bruge en while-løkke til
gentage udsagn, så længe du holde essensen af ​​en for-løkke,
initialisering, tilstand og opdatering.
Når vi finde ud af det For løkke, vi er mest komfortabel med, så vi
kan fuldføre Mario.
>> Vi først kontrolleres for bruger input og derefter identificeret en
mønster for enhver række n..
Så for hver række fra nul til n minus 1 vil udskrive et passende antal
mellemrum, så det passende antal hashes Ifølge vores mønster, og
derefter en ny linje.
Med det, har du din pyramide.
Mit navn er Zamyla, og det var Mario.