1 00:00:00,000 --> 00:00:09,250 2 00:00:09,250 --> 00:00:11,070 >> ZAMYLA CHAN: Laten we sprong in Mario. 3 00:00:11,070 --> 00:00:14,850 Mario is een programma waar we maken onze zelf, zij het primitieve, versie 4 00:00:14,850 --> 00:00:17,760 een klassieker Super Mario Brothers spel achtergrond. 5 00:00:17,760 --> 00:00:21,100 Voor dit probleem set, we gaan aan de halve piramide opnieuw voor 6 00:00:21,100 --> 00:00:23,000 Mario om te springen op. 7 00:00:23,000 --> 00:00:27,330 Ons programma zal interactief zijn, dus het vraagt ​​de gebruiker om invoer van een bepaalde 8 00:00:27,330 --> 00:00:28,660 hoogte van de piramide. 9 00:00:28,660 --> 00:00:32,920 En het programma zal afdrukken van een half-piramide van die hoogte, waar de 10 00:00:32,920 --> 00:00:37,390 linksonder hash uitgelijnd met de onderkant linkerbovenhoek van de terminal 11 00:00:37,390 --> 00:00:39,710 uitvoervenster. 12 00:00:39,710 --> 00:00:44,870 >> Laten we breken dit probleem in twee delen, een, krijgt input van de gebruiker, en twee, 13 00:00:44,870 --> 00:00:47,040 afdruk van de piramide. 14 00:00:47,040 --> 00:00:51,150 Vergeet niet dat hoewel de getInt functie zal een integer ophalen, u 15 00:00:51,150 --> 00:00:56,260 moet ervoor zorgen dat deze input maakt gevoel voor uw programma, dus in 16 00:00:56,260 --> 00:00:59,690 Mario, zal het niet alleen een doen product van een geheel getal. 17 00:00:59,690 --> 00:01:03,440 Je moet ervoor zorgen dat de gebruiker ingangen een geheel getal dat is binnen de 18 00:01:03,440 --> 00:01:06,985 onder-en bovengrens van de piramide die u kunt afdrukken. 19 00:01:06,985 --> 00:01:12,300 Per deze spec, dit is 0 en 23 inclusive. 20 00:01:12,300 --> 00:01:16,410 Als de gebruiker een integer ingangen buiten van onze geaccepteerde grenzen, dan willen we 21 00:01:16,410 --> 00:01:20,840 om ze weer aanzetten en opnieuw totdat ze geven ons een geldige integer. 22 00:01:20,840 --> 00:01:25,990 >> Een manier om de juiste input van de gebruiker te waarborgen is met behulp van een Do-While-lus, dat is 23 00:01:25,990 --> 00:01:28,100 zeer vergelijkbaar met een While-lus. 24 00:01:28,100 --> 00:01:32,580 De Do-While-lus voert de code in het lichaam eenmaal af en controleert 25 00:01:32,580 --> 00:01:35,270 of aan de voorwaarde is voldaan of niet. 26 00:01:35,270 --> 00:01:38,830 Dit is nuttig voor het verkrijgen van gebruikersinvoer omdat je weet dat je nodig hebt 27 00:01:38,830 --> 00:01:41,805 om ze prompt ten minste een keer. 28 00:01:41,805 --> 00:01:45,940 Als de voorwaarde niet is voldaan, wordt het programma zal de lijn uit te voeren na 29 00:01:45,940 --> 00:01:47,270 je Do-While-lus. 30 00:01:47,270 --> 00:01:50,950 Als de voorwaarde wordt voldaan, niettemin, de lus zal herhalen. 31 00:01:50,950 --> 00:01:55,560 >> Een Do-While-lus voor het valideren van gebruikersnamen inbreng zal er ongeveer zo uitzien. 32 00:01:55,560 --> 00:02:02,920 Ik verklaar een variabele n, getint, en herhaal tot n geldig is. 33 00:02:02,920 --> 00:02:06,270 Vergeet niet dat wanneer u verklaren uw variabele, moet de juiste 34 00:02:06,270 --> 00:02:08,449 scope, net als in Scratch. 35 00:02:08,449 --> 00:02:12,510 Als ik verklaar n in mijn Do-While-lus, de rest van het programma niet 36 00:02:12,510 --> 00:02:13,750 staat om het te openen. 37 00:02:13,750 --> 00:02:16,100 Het is beperkt tot de grenzen van de accolades. 38 00:02:16,100 --> 00:02:19,010 39 00:02:19,010 --> 00:02:23,090 >> Oke, dus nu dat we hebben gevalideerd invoer van de gebruiker, we eigenlijk nodig hebben om 40 00:02:23,090 --> 00:02:25,020 trekken deze halve piramide. 41 00:02:25,020 --> 00:02:29,700 Het is gemaakt van gedrukte tekens, dus laten we een half-piramide in een eenvoudige 42 00:02:29,700 --> 00:02:31,480 teksteditor. 43 00:02:31,480 --> 00:02:35,920 Als we willen een Mario-stijl piramide maken van de hoogte van drie dat is afgestemd 44 00:02:35,920 --> 00:02:41,370 aan de linkerkant van ons raam, dan we zouden typen twee hashes, klik op Enter, 45 00:02:41,370 --> 00:02:47,180 typ drie hashes, klikt Enter en typ vier. 46 00:02:47,180 --> 00:02:51,090 >> Maar in deze probleemstelling, onze half-piramide heeft naar rechts worden uitgelijnd. 47 00:02:51,090 --> 00:02:55,550 Met behulp van een standaard toetsenbord, hoe kunnen u dit bestand wijzigen om hashes te verplaatsen 48 00:02:55,550 --> 00:02:57,210 dan naar de rechterkant? 49 00:02:57,210 --> 00:03:03,190 Ik zou kunnen gebruiken om underscores, twee op de bovenste rij en een op de tweede. 50 00:03:03,190 --> 00:03:07,690 Dat ziet er niet zo mooi, hoewel, dus laten vervangen onderstreept met 51 00:03:07,690 --> 00:03:12,450 ruimten, en daar hebben we een half-piramide van de hoogte van drie. 52 00:03:12,450 --> 00:03:16,330 >> Probeer en onthoud dit teksteditor Bijvoorbeeld als je begint te denken terug naar 53 00:03:16,330 --> 00:03:20,100 C. Laten we proberen erachter te komen wat soort patroon dat we kunnen 54 00:03:20,100 --> 00:03:22,750 in een lus construct. 55 00:03:22,750 --> 00:03:27,570 Neem een ​​voorbeeld hoogte, zeggen acht, en kijk of je kunt beginnen te 56 00:03:27,570 --> 00:03:29,470 komen met een patroon. 57 00:03:29,470 --> 00:03:34,710 De eerste rij zal zeven ruimtes gevolgd door twee hashes. 58 00:03:34,710 --> 00:03:40,090 De tweede rij zal hebben zes ruimten en drie hashes, en dus blijft de 59 00:03:40,090 --> 00:03:41,440 achtste rij. 60 00:03:41,440 --> 00:03:45,210 >> Maar hoe doe je zou vertegenwoordigen de n-de rij? 61 00:03:45,210 --> 00:03:48,170 Vergeet niet dat de programmering conventie nul geïndexeerd. 62 00:03:48,170 --> 00:03:51,870 Dat betekent dat je begint te tellen bij nul, dus de eerste rij is technisch 63 00:03:51,870 --> 00:03:57,110 rijnummer nul met twee luiken, rij nummer een heeft drie hashes, rij 64 00:03:57,110 --> 00:04:01,860 nummer twee heeft vier hashes, dus na dit patroon voor elke rij 65 00:04:01,860 --> 00:04:05,800 getal n, er n plus 2 hashes. 66 00:04:05,800 --> 00:04:09,270 Ik laat het aan u, hoewel, te vinden uit het patroon van de ruimtes. 67 00:04:09,270 --> 00:04:12,240 Vergeet niet dat je patroon zal zijn iets anders als u ervoor kiest om 68 00:04:12,240 --> 00:04:16,649 start uw telling van een en niet nul. 69 00:04:16,649 --> 00:04:19,560 >> Nu heb je een patroon voor geen abstract rij n. 70 00:04:19,560 --> 00:04:25,190 Weet je hoeveel spaties om af te drukken en hoeveel hashes, dus voor elke rij, dat 71 00:04:25,190 --> 00:04:26,270 nummer zal veranderen. 72 00:04:26,270 --> 00:04:30,700 Maar hetzelfde proces waarbij een enkel teken, ofwel een ruimte of een 73 00:04:30,700 --> 00:04:33,200 hash wordt herhaald. 74 00:04:33,200 --> 00:04:37,470 Dus alles wat je hoeft te doen is herhaaldelijk drukken dat teken voor zo vele malen 75 00:04:37,470 --> 00:04:40,120 als uw patroon bepaalt. 76 00:04:40,120 --> 00:04:42,522 >> Dus hoe kunnen we processen herhalen? 77 00:04:42,522 --> 00:04:45,160 In Scratch, gebruikten we de herhaling blok. 78 00:04:45,160 --> 00:04:48,580 In C, gebruiken we een For-lus. 79 00:04:48,580 --> 00:04:51,290 Laten we eens kijken naar de syntaxis voor For loops. 80 00:04:51,290 --> 00:04:57,140 >> Elke For-lus bestaat uit drie onderdelen, een initialisatie, een voorwaarde, 81 00:04:57,140 --> 00:04:58,592 en een update. 82 00:04:58,592 --> 00:05:01,550 Uw For-lus zal initialiseren een variabele toen voor het eerst 83 00:05:01,550 --> 00:05:02,960 komt in de For-lus. 84 00:05:02,960 --> 00:05:07,100 Als de voorwaarde is voldaan, het lichaam van de lus zal uitvoeren. 85 00:05:07,100 --> 00:05:10,070 Daarna zal de update uit te voeren. 86 00:05:10,070 --> 00:05:13,630 >> Als de aandoening is nog steeds voldaan, de lus zal uitvoeren en actualiseren en 87 00:05:13,630 --> 00:05:18,580 herhalen zolang uw conditie evalueert op True. 88 00:05:18,580 --> 00:05:21,450 Je bent voorwaarde moet uiteindelijk waarderen op False, maar, omdat 89 00:05:21,450 --> 00:05:24,490 tegenstelling Scratch, doen we niet hebben geen blijvend lussen. 90 00:05:24,490 --> 00:05:28,270 Uw programma moet uiteindelijk. 91 00:05:28,270 --> 00:05:32,330 >> Hier is een voorbeeld van een For-lus die je zou willen gebruiken voor Mario. 92 00:05:32,330 --> 00:05:36,790 De initialisatie verklaart een geheel getal i met de waarde 0. 93 00:05:36,790 --> 00:05:40,750 Zolang ik minder is dan de hoogte, het lichaam van de lus zal uitvoeren en 94 00:05:40,750 --> 00:05:44,980 verhogen i door een en herhaal tot i groter of 95 00:05:44,980 --> 00:05:47,220 gelijk aan de hoogte. 96 00:05:47,220 --> 00:05:49,140 >> Nu, mijn For-lus nul index. 97 00:05:49,140 --> 00:05:52,270 De Int i begint bij nul, niet een. 98 00:05:52,270 --> 00:05:55,320 Als ik koos voor een, dan mijn toestand zou ook verschillend zijn 99 00:05:55,320 --> 00:05:58,740 de lus aan de uit te voeren hetzelfde aantal keren. 100 00:05:58,740 --> 00:06:03,490 Onthoud dit goed als je het kiezen van uw initialisatie en uw 101 00:06:03,490 --> 00:06:08,660 conditie, en deze raadplegen in kaart te controleren verdubbelen. 102 00:06:08,660 --> 00:06:13,430 >> Een van de grote dingen over de computer wetenschap is dat er gewoon zo veel 103 00:06:13,430 --> 00:06:15,490 manieren om dingen uit te voeren. 104 00:06:15,490 --> 00:06:19,450 U kunt kiezen of u beginnen bij nul of een. 105 00:06:19,450 --> 00:06:22,380 Als u niet wilt gebruiken voor een lus, U kunt ook een While-lus gebruiken om 106 00:06:22,380 --> 00:06:26,530 herhaal uitspraken zolang je houden de essentie van een For-lus, 107 00:06:26,530 --> 00:06:31,430 initialisatie, voorwaarde, en actualisering. 108 00:06:31,430 --> 00:06:36,890 Zodra we achterhalen van de For-lus die We zijn het meest comfortabel met, dan kunnen we 109 00:06:36,890 --> 00:06:38,450 kunnen voltooien Mario. 110 00:06:38,450 --> 00:06:41,540 >> We hebben eerst gecontroleerd op invoer van de gebruiker en vervolgens geïdentificeerd een 111 00:06:41,540 --> 00:06:43,580 patroon voor elke rij n. 112 00:06:43,580 --> 00:06:49,990 Dus voor elke rij van nul tot n minus 1 zal het juiste aantal afdrukken 113 00:06:49,990 --> 00:06:55,340 ruimten, het overeenkomstige aantal hashes volgens onze patroon, en 114 00:06:55,340 --> 00:06:57,180 dan is een nieuwe lijn. 115 00:06:57,180 --> 00:06:59,640 Met dat, heb je je piramide. 116 00:06:59,640 --> 00:07:02,630 Mijn naam is Zamyla, en dit was Mario. 117 00:07:02,630 --> 00:07:11,765