1 00:00:00,000 --> 00:00:09,250 2 00:00:09,250 --> 00:00:11,070 >> ZAMYLA CHAN: Teeme hüpata Mario. 3 00:00:11,070 --> 00:00:14,850 Mario on programm, kus me teeme meie ise, kuigi primitiivne, versioon 4 00:00:14,850 --> 00:00:17,760 classic Super Mario Brothers mängu taustal. 5 00:00:17,760 --> 00:00:21,100 Selle probleemi komplekt, me läheme taasluua poole püramiid 6 00:00:21,100 --> 00:00:23,000 Mario hüpata. 7 00:00:23,000 --> 00:00:27,330 Meie programm on interaktiivne, nii et see küsib kasutajal sisestada teatud 8 00:00:27,330 --> 00:00:28,660 kõrgus püramiid. 9 00:00:28,660 --> 00:00:32,920 Ja programm välja printida poole püramiid et kõrgus, kus 10 00:00:32,920 --> 00:00:37,390 all vasakul hash joondub põhja vasakus nurgas terminal 11 00:00:37,390 --> 00:00:39,710 väljundi. 12 00:00:39,710 --> 00:00:44,870 >> Olgem murda probleem kahte ossa, üks, saada kasutaja sisend ja kaks, 13 00:00:44,870 --> 00:00:47,040 välja printida püramiid. 14 00:00:47,040 --> 00:00:51,150 Pea meeles, et kuigi GetInt funktsioon hangib täisarv, siis 15 00:00:51,150 --> 00:00:56,260 on tagada, et selle sisendi teeb tunne oma programmi, nii 16 00:00:56,260 --> 00:00:59,690 Mario, ta ei tee lihtsalt toode täisarv. 17 00:00:59,690 --> 00:01:03,440 Sa pead veenduma, et kasutaja sisendite täisarv, mis on sees 18 00:01:03,440 --> 00:01:06,985 ülemise ja alumise piire püramiid, et saate printida. 19 00:01:06,985 --> 00:01:12,300 Per see spec on see 0 ja 23 kaasa arvatud. 20 00:01:12,300 --> 00:01:16,410 Kui kasutaja sisestab täisarv väljaspool Meie tunnustatud piirides, siis me tahame 21 00:01:16,410 --> 00:01:20,840 ajendab neid uuesti ja uuesti, kuni nad annavad meile kehtiv täisarv. 22 00:01:20,840 --> 00:01:25,990 >> Üks võimalus, et tagada õige kasutaja sisend on kasutades tee-Kuigi silmus, mis on 23 00:01:25,990 --> 00:01:28,100 väga sarnane Kuigi silmus. 24 00:01:28,100 --> 00:01:32,580 Do-Kuigi silmus täidab kood kehas kord ja seejärel kontrollib 25 00:01:32,580 --> 00:01:35,270 kas tingimus on täidetud või mitte. 26 00:01:35,270 --> 00:01:38,830 See on kasulik saada kasutaja sisend sest sa tead, et sa pead 27 00:01:38,830 --> 00:01:41,805 ajendab neid vähemalt üks kord. 28 00:01:41,805 --> 00:01:45,940 Kui tingimus ei ole täidetud, programm täidab rida pärast 29 00:01:45,940 --> 00:01:47,270 oma Do-Kuigi silmus. 30 00:01:47,270 --> 00:01:50,950 Kui tingimus on täidetud, kuigi loop kordub. 31 00:01:50,950 --> 00:01:55,560 >> Do-Kuigi silmus kinnitamise kasutaja sisend välja midagi sellist. 32 00:01:55,560 --> 00:02:02,920 Kinnitan muutuja n, GetInt, ja korrata kuni n on kehtiv. 33 00:02:02,920 --> 00:02:06,270 Pea meeles, et kui te deklareerite oma muutuja, vajab see asjakohane 34 00:02:06,270 --> 00:02:08,449 ulatus, nagu Scratch. 35 00:02:08,449 --> 00:02:12,510 Kui Kinnitan n sees minu Do-Kuigi silmus, ülejäänud programmi ei 36 00:02:12,510 --> 00:02:13,750 pääse ta. 37 00:02:13,750 --> 00:02:16,100 See on piiratud piiridest Euroopa looksulg. 38 00:02:16,100 --> 00:02:19,010 39 00:02:19,010 --> 00:02:23,090 >> Olgu, nüüd, kui me oleme kinnitanud kasutaja sisend, me tegelikult vaja 40 00:02:23,090 --> 00:02:25,020 joonistada poole püramiid. 41 00:02:25,020 --> 00:02:29,700 See koosneb suurtähti, nii teeme poole püramiid lihtne 42 00:02:29,700 --> 00:02:31,480 tekstiredaktor. 43 00:02:31,480 --> 00:02:35,920 Kui me tahame teha Mario stiilis püramiid kõrgus kolm, mis on vastavuses 44 00:02:35,920 --> 00:02:41,370 vasakul pool meie aken, siis me tahaks kirjutada kaks hashes käsku Enter 45 00:02:41,370 --> 00:02:47,180 tippige kolm hashes, klõpsake Sisesta ja tippige neli. 46 00:02:47,180 --> 00:02:51,090 >> Aga see probleem komplekti, meie poole püramiid tuleb paremjoondatult. 47 00:02:51,090 --> 00:02:55,550 Kasutades standard klaviatuur, kuidas võiks te muudate seda faili teisaldada hashes 48 00:02:55,550 --> 00:02:57,210 üle paremale poole? 49 00:02:57,210 --> 00:03:03,190 Ma võiks kasutada rõhutab, kaks kohta esirea ja üks teine. 50 00:03:03,190 --> 00:03:07,690 See ei ole nii kena, kuigi, nii et olgem asendada rõhutab koos 51 00:03:07,690 --> 00:03:12,450 ruumid ning seal on meil poole püramiid kõrgus kolm. 52 00:03:12,450 --> 00:03:16,330 >> Proovige ja mäletan seda tekstiredaktoris Näiteks kui sa hakkad mõtlema tagasi 53 00:03:16,330 --> 00:03:20,100 C. Proovime aru saada, mõned mingi muster, mis meie võimuses, 54 00:03:20,100 --> 00:03:22,750 panna loop ehitada. 55 00:03:22,750 --> 00:03:27,570 Võtke näiteks kõrgus, st kaheksa, ja vaata, kas saad hakkama 56 00:03:27,570 --> 00:03:29,470 tulla muster. 57 00:03:29,470 --> 00:03:34,710 Esimene rida on seitse ruumid millele järgneb kaks hashes. 58 00:03:34,710 --> 00:03:40,090 Teises reas on kuus ruumi ja kolm hashes, ja nii edasi, kuni 59 00:03:40,090 --> 00:03:41,440 kaheksas rida. 60 00:03:41,440 --> 00:03:45,210 >> Aga kuidas sa kujutaks nda rea? 61 00:03:45,210 --> 00:03:48,170 Pea meeles, et programmeerimine konventsioon on null indekseeritud. 62 00:03:48,170 --> 00:03:51,870 See tähendab, et te alustate loendamine null, nii et esimene rida on tehniliselt 63 00:03:51,870 --> 00:03:57,110 rea number null kaks luugid, rida number üks on kolm räsisid rida 64 00:03:57,110 --> 00:04:01,860 number kaks on neli hashes, et pärast See muster iga rida 65 00:04:01,860 --> 00:04:05,800 number n on n + 2 hashes. 66 00:04:05,800 --> 00:04:09,270 Ma jätan selle sulle, aga leida välja muster ruumid. 67 00:04:09,270 --> 00:04:12,240 Pidage meeles, et muster ei ole veidi teistsugune, kui valite 68 00:04:12,240 --> 00:04:16,649 alustada oma count üks ja mitte null. 69 00:04:16,649 --> 00:04:19,560 >> Nüüd on Sul mustri mõni abstraktne rida n. 70 00:04:19,560 --> 00:04:25,190 Sa tead, kui palju ruumi printida ja mitu hashes, et iga rida, mis 71 00:04:25,190 --> 00:04:26,270 number muutub. 72 00:04:26,270 --> 00:04:30,700 Aga sama protsessi trükkimine ühe märgi, kas ruum või 73 00:04:30,700 --> 00:04:33,200 hash, korratakse. 74 00:04:33,200 --> 00:04:37,470 Nii et kõik, mida pead tegema, on korduvalt printida seda märki nii mitu korda 75 00:04:37,470 --> 00:04:40,120 kui teie muster määrab. 76 00:04:40,120 --> 00:04:42,522 >> Niisiis, kuidas me korrata protsessid? 77 00:04:42,522 --> 00:04:45,160 Scratch, me kasutasime korrata blokeerida. 78 00:04:45,160 --> 00:04:48,580 In C, me kasutame For loop. 79 00:04:48,580 --> 00:04:51,290 Vaatame süntaks jaoks jaoks silmuseid. 80 00:04:51,290 --> 00:04:57,140 >> Kumbki silmus koosneb kolmest osad, käivitamise, tingimusel, 81 00:04:57,140 --> 00:04:58,592 ja uuendatud. 82 00:04:58,592 --> 00:05:01,550 Sinu jaoks loop initsialiseerida muutuja, kui ta kõigepealt 83 00:05:01,550 --> 00:05:02,960 siseneb For loop. 84 00:05:02,960 --> 00:05:07,100 Kui tingimus on täidetud, keha of loop täidab. 85 00:05:07,100 --> 00:05:10,070 Hiljem uuendus täidab. 86 00:05:10,070 --> 00:05:13,630 >> Kui tingimus on siiski täidetud, loop täidab ja ajakohastada ja 87 00:05:13,630 --> 00:05:18,580 korrata nii kaua, kui teie seisund TRUE. 88 00:05:18,580 --> 00:05:21,450 Sa oled tingimus peab lõpuks valuate vale, kuigi, sest 89 00:05:21,450 --> 00:05:24,490 erinevalt Scratch, meil ei ole mingit Forever silmuseid. 90 00:05:24,490 --> 00:05:28,270 Teie programm peab lõppema lõpuks. 91 00:05:28,270 --> 00:05:32,330 >> Siin on näide sellest, For loop et võiksite kasutada Mario. 92 00:05:32,330 --> 00:05:36,790 Käivitamise kinnitab täisarv i väärtusega 0. 93 00:05:36,790 --> 00:05:40,750 Niikaua kui i on väiksem kui kõrgus, keha loop täidab ja 94 00:05:40,750 --> 00:05:44,980 suurendada i üks ja korrake kuni i on suurem või 95 00:05:44,980 --> 00:05:47,220 võrdne kõrgus. 96 00:05:47,220 --> 00:05:49,140 >> Nüüd, minu jaoks silmus on null indeks. 97 00:05:49,140 --> 00:05:52,270 Int i algab nullist, mitte üks. 98 00:05:52,270 --> 00:05:55,320 Kui ma valisin ühe, siis minu tingimus oleks ka olema erinev 99 00:05:55,320 --> 00:05:58,740 loop täita sama arv kordi. 100 00:05:58,740 --> 00:06:03,490 Mäletad seda hoolikalt, kui sa oled Valides oma käivitamise ja oma 101 00:06:03,490 --> 00:06:08,660 seisukorra ja konsulteerib kaardistada topelt vaadata. 102 00:06:08,660 --> 00:06:13,430 >> Üks suuri asju arvuti teadus on, et seal on lihtsalt nii palju 103 00:06:13,430 --> 00:06:15,490 kuidas täita asju. 104 00:06:15,490 --> 00:06:19,450 Võite valida, kas alustada nullist või üks. 105 00:06:19,450 --> 00:06:22,380 Kui te ei soovi kasutada For loop, võid kasutada ka Kuigi silmuse 106 00:06:22,380 --> 00:06:26,530 korrata avaldusi nii kaua kui hoida sisuliselt For loop, 107 00:06:26,530 --> 00:06:31,430 vormindamise, seisukorra ja uuendus. 108 00:06:31,430 --> 00:06:36,890 Kui me nuputada For loop et me oleme kõige mugavamalt, siis me 109 00:06:36,890 --> 00:06:38,450 suudaks Mario. 110 00:06:38,450 --> 00:06:41,540 >> Oleme kõigepealt kontrollinud kasutaja sisend ja siis tuvastatud 111 00:06:41,540 --> 00:06:43,580 mustri iga rida n. 112 00:06:43,580 --> 00:06:49,990 Nii iga rea ​​nullist n miinus 1 trükib vastava arvu 113 00:06:49,990 --> 00:06:55,340 ruumid, siis vastav arv hashes vastavalt meie muster, ja 114 00:06:55,340 --> 00:06:57,180 siis uus rida. 115 00:06:57,180 --> 00:06:59,640 Koos, et teil on oma püramiid. 116 00:06:59,640 --> 00:07:02,630 Minu nimi on Zamyla, ja see oli Mario. 117 00:07:02,630 --> 00:07:11,765