1 00:00:00,000 --> 00:00:09,250 2 00:00:09,250 --> 00:00:11,070 >> ZAMYLA CHAN: La oss hoppe inn i Mario. 3 00:00:11,070 --> 00:00:14,850 Mario er et program hvor vi vil gjøre vårt egen, om enn primitiv, versjon av 4 00:00:14,850 --> 00:00:17,760 en klassisk Super Mario Brothers Spillet bakgrunn. 5 00:00:17,760 --> 00:00:21,100 For dette oppgavesettet skal vi å gjenskape den halve pyramide for 6 00:00:21,100 --> 00:00:23,000 Mario å hoppe på. 7 00:00:23,000 --> 00:00:27,330 Vårt program vil være interaktiv, slik at det vil be brukeren om å taste inn en bestemt 8 00:00:27,330 --> 00:00:28,660 høyde for pyramiden. 9 00:00:28,660 --> 00:00:32,920 Og programmet vil skrive ut en halv pyramide av denne høyden, hvor den 10 00:00:32,920 --> 00:00:37,390 nederste venstre hash linje med bunnen venstre hjørne av terminalen 11 00:00:37,390 --> 00:00:39,710 utgang vinduet. 12 00:00:39,710 --> 00:00:44,870 >> La oss bryte dette problemet i to deler, en, få brukerundersøkelser, og to, 13 00:00:44,870 --> 00:00:47,040 skrive ut pyramiden. 14 00:00:47,040 --> 00:00:51,150 Husk at selv om GetInt funksjon vil hente et heltall, du 15 00:00:51,150 --> 00:00:56,260 må sørge for at denne inngangen gjør sans for programmet ditt, så i 16 00:00:56,260 --> 00:00:59,690 Mario, vil det ikke gjøre bare en produkt for et heltall. 17 00:00:59,690 --> 00:01:03,440 Du må sørge for at brukeren innganger et heltall som er innenfor den 18 00:01:03,440 --> 00:01:06,985 nedre og øvre grenser for pyramide som du kan skrive ut. 19 00:01:06,985 --> 00:01:12,300 Per denne spec, er dette 0 og 23 inkluderende. 20 00:01:12,300 --> 00:01:16,410 Hvis brukeren innganger et heltall utenfor av våre aksepterte grenser, så vi ønsker 21 00:01:16,410 --> 00:01:20,840 å be dem igjen og igjen før de gir oss et gyldig heltall. 22 00:01:20,840 --> 00:01:25,990 >> En måte å sikre korrekt brukerundersøkelser er ved hjelp av en gjør-Mens loop, er som 23 00:01:25,990 --> 00:01:28,100 svært lik en Mens sløyfe. 24 00:01:28,100 --> 00:01:32,580 Gjør-Mens løkke utfører koden inne i kroppen en gang, og deretter kontrollerer 25 00:01:32,580 --> 00:01:35,270 om vilkåret er oppfylt eller ikke. 26 00:01:35,270 --> 00:01:38,830 Dette er nyttig for å skaffe brukerundersøkelser fordi du vet at du trenger 27 00:01:38,830 --> 00:01:41,805 å be dem minst én gang. 28 00:01:41,805 --> 00:01:45,940 Dersom vilkåret ikke er oppfylt, vil programmet vil utføre linjen etter 29 00:01:45,940 --> 00:01:47,270 din Do-Mens loop. 30 00:01:47,270 --> 00:01:50,950 Hvis betingelsen er oppfylt, skjønt, løkken vil gjenta. 31 00:01:50,950 --> 00:01:55,560 >> En Do-Mens sløyfe for å validere brukeren innspill vil se omtrent slik ut. 32 00:01:55,560 --> 00:02:02,920 Jeg erklærer en variabel n, GetInt, og gjenta til n er gyldig. 33 00:02:02,920 --> 00:02:06,270 Husk at når du deklarerer variable, må det riktig 34 00:02:06,270 --> 00:02:08,449 omfang, akkurat som i spillene. 35 00:02:08,449 --> 00:02:12,510 Hvis jeg erklærer n inni min Do-Mens loop, resten av programmet vil ikke være 36 00:02:12,510 --> 00:02:13,750 kunne få tilgang til den. 37 00:02:13,750 --> 00:02:16,100 Den er begrenset til rammen av de klammeparentes. 38 00:02:16,100 --> 00:02:19,010 39 00:02:19,010 --> 00:02:23,090 >> Ok, så nå som vi har validert brukerens input, vi faktisk trenger å 40 00:02:23,090 --> 00:02:25,020 tegne dette halv-pyramiden. 41 00:02:25,020 --> 00:02:29,700 Det består av trykte bokstaver, så la oss lage en halv pyramide på en enkel 42 00:02:29,700 --> 00:02:31,480 teksteditor. 43 00:02:31,480 --> 00:02:35,920 Hvis vi ønsker å gjøre et Mario stil pyramide av høyden tre som er på linje 44 00:02:35,920 --> 00:02:41,370 på venstre side av vinduet vårt, så vi skulle skrive to hasher, klikker Enter, 45 00:02:41,370 --> 00:02:47,180 deretter inn tre hasher, klikk Enter, og skriv deretter inn fire. 46 00:02:47,180 --> 00:02:51,090 >> Men i dette oppgavesettet, vår half-pyramiden må være høyrejustert. 47 00:02:51,090 --> 00:02:55,550 Ved hjelp av en standard tastatur, kanskje hvordan du endre denne filen til å flytte hasher 48 00:02:55,550 --> 00:02:57,210 over til høyre side? 49 00:02:57,210 --> 00:03:03,190 Jeg kan bruke til å understrek, to på øverste rad og en på den andre. 50 00:03:03,190 --> 00:03:07,690 Det ser ikke så fint, skjønt, så la oss erstatte understreker med 51 00:03:07,690 --> 00:03:12,450 mellomrom, og det har vi en halv pyramide av høyden tre. 52 00:03:12,450 --> 00:03:16,330 >> Prøv og husk dette teksteditor eksempel som du begynner å tenke tilbake til 53 00:03:16,330 --> 00:03:20,100 C. La oss prøve og finne ut noen slags mønster som vi kan 54 00:03:20,100 --> 00:03:22,750 satt i en sløyfe konstruksjon. 55 00:03:22,750 --> 00:03:27,570 Ta et eksempel høyde, sier åtte, og se om du kan begynne å 56 00:03:27,570 --> 00:03:29,470 komme opp med et mønster. 57 00:03:29,470 --> 00:03:34,710 Den første raden vil ha sju plasser etterfulgt av to hasher. 58 00:03:34,710 --> 00:03:40,090 Den andre raden vil ha seks plasser og tre hasher, og så videre til 59 00:03:40,090 --> 00:03:41,440 åttende rad. 60 00:03:41,440 --> 00:03:45,210 >> Men hvordan gjør du ville representere den n-te rad? 61 00:03:45,210 --> 00:03:48,170 Husk at programmering konvensjonen er null indeksert. 62 00:03:48,170 --> 00:03:51,870 Det betyr at du begynne å telle på null, så den første raden er teknisk 63 00:03:51,870 --> 00:03:57,110 radnummer null med to luker, rad nummer én har tre hasher, rad 64 00:03:57,110 --> 00:04:01,860 nummer to har fire hasher, så følger dette mønsteret for en rad 65 00:04:01,860 --> 00:04:05,800 tallet n er det n pluss 2 hashtegn. 66 00:04:05,800 --> 00:04:09,270 Jeg skal la det til deg, men å finne ut mønsteret for arealene. 67 00:04:09,270 --> 00:04:12,240 Husk at mønsteret vil være litt annerledes hvis du velger å 68 00:04:12,240 --> 00:04:16,649 starte tellingen fra en og ikke null. 69 00:04:16,649 --> 00:04:19,560 >> Nå har du et mønster for noe abstrakt rad n. 70 00:04:19,560 --> 00:04:25,190 Du vet hvor mange plasser å skrive ut og hvor mange hasher, så for hver rad, og 71 00:04:25,190 --> 00:04:26,270 nummeret, vil endres. 72 00:04:26,270 --> 00:04:30,700 Men den samme prosessen med å skrive ut en enkelt tegn, enten mellomrom eller et 73 00:04:30,700 --> 00:04:33,200 hash, gjentas. 74 00:04:33,200 --> 00:04:37,470 Så alt du trenger å gjøre er gjentatte ganger skrive det tegnet for så mange ganger 75 00:04:37,470 --> 00:04:40,120 som mønster bestemmer. 76 00:04:40,120 --> 00:04:42,522 >> Så hvordan gjentar vi prosesser? 77 00:04:42,522 --> 00:04:45,160 I Scratch, brukte vi gjenta blokken. 78 00:04:45,160 --> 00:04:48,580 I C, vil vi bruke en For-løkke. 79 00:04:48,580 --> 00:04:51,290 La oss se på syntaksen for For sløyfer. 80 00:04:51,290 --> 00:04:57,140 >> For hver sløyfe er sammensatt av tre deler, en initialisering, en tilstand, 81 00:04:57,140 --> 00:04:58,592 og en oppdatering. 82 00:04:58,592 --> 00:05:01,550 Din For sløyfe vil starte en variabel når det først 83 00:05:01,550 --> 00:05:02,960 entrer For loop. 84 00:05:02,960 --> 00:05:07,100 Hvis betingelsen er oppfylt, kroppen av loopen skal utføre. 85 00:05:07,100 --> 00:05:10,070 Etterpå vil oppdateringen utføre. 86 00:05:10,070 --> 00:05:13,630 >> Dersom tilstanden fortsatt er oppfylt, det Løkken vil utføre og oppdatere og 87 00:05:13,630 --> 00:05:18,580 gjenta så lenge tilstanden din SANN. 88 00:05:18,580 --> 00:05:21,450 Du er tilstanden må til slutt valuate til False, men fordi 89 00:05:21,450 --> 00:05:24,490 i motsetning til Scratch, gjør vi ikke har noen Alltid sløyfer. 90 00:05:24,490 --> 00:05:28,270 Programmet må slutte slutt. 91 00:05:28,270 --> 00:05:32,330 >> Her er et eksempel på en For-løkke som kan det være lurt å bruke for Mario. 92 00:05:32,330 --> 00:05:36,790 Initialisering erklærer et heltall jeg med verdien 0. 93 00:05:36,790 --> 00:05:40,750 Så lenge i er mindre enn høyden, kroppen av loopen vil utføre og 94 00:05:40,750 --> 00:05:44,980 øke i etter tur og gjenta inntil i er større enn eller 95 00:05:44,980 --> 00:05:47,220 lik høyden. 96 00:05:47,220 --> 00:05:49,140 >> Nå er min For sløyfe null indeksen. 97 00:05:49,140 --> 00:05:52,270 Den Int jeg starter på null, ikke en. 98 00:05:52,270 --> 00:05:55,320 Hvis jeg valgte en, så min tilstand ville må også være forskjellig for 99 00:05:55,320 --> 00:05:58,740 løkken for å utføre samme antall ganger. 100 00:05:58,740 --> 00:06:03,490 Husk dette nøye når du er velger initialisering og din 101 00:06:03,490 --> 00:06:08,660 tilstand, og konsultere dette kartlegge for å dobbeltsjekke. 102 00:06:08,660 --> 00:06:13,430 >> En av de store tingene om datamaskinen vitenskap er at det er bare så mange 103 00:06:13,430 --> 00:06:15,490 måter å utføre ting. 104 00:06:15,490 --> 00:06:19,450 Du kan velge om du starter på null eller én. 105 00:06:19,450 --> 00:06:22,380 Hvis du ikke ønsker å bruke en For-løkke, du kan også bruke en while-loop til 106 00:06:22,380 --> 00:06:26,530 gjenta uttalelser så lenge du holde essensen av en For-løkke, 107 00:06:26,530 --> 00:06:31,430 initialisering, tilstand, og oppdatering. 108 00:06:31,430 --> 00:06:36,890 Når vi har funnet ut For loop som vi er mest komfortabel med, så vi 109 00:06:36,890 --> 00:06:38,450 kan fullføre Mario. 110 00:06:38,450 --> 00:06:41,540 >> Vi først sjekket for brukerundersøkelser og deretter identifisert en 111 00:06:41,540 --> 00:06:43,580 mønster for hvilken som helst rad n. 112 00:06:43,580 --> 00:06:49,990 Så for hver rad fra null til n minus ett vil skrive ut riktig antall 113 00:06:49,990 --> 00:06:55,340 mellomrom, deretter riktig antall hasher etter mønster vår, og 114 00:06:55,340 --> 00:06:57,180 deretter en ny linje. 115 00:06:57,180 --> 00:06:59,640 Med dette har du din pyramide. 116 00:06:59,640 --> 00:07:02,630 Mitt navn er Zamyla, og dette var Mario. 117 00:07:02,630 --> 00:07:11,765