1 00:00:00,000 --> 00:00:09,250 2 00:00:09,250 --> 00:00:11,070 >> ZAMYLA Chan: Haideti sa patrundem in Mario. 3 00:00:11,070 --> 00:00:14,850 Mario este un program de unde vom face noi propriu deși primitiv, versiune, de 4 00:00:14,850 --> 00:00:17,760 un clasic Super Mario Brothers joc de fundal. 5 00:00:17,760 --> 00:00:21,100 Pentru acest set de probleme, vom pentru a recrea o jumătate de piramidă pentru 6 00:00:21,100 --> 00:00:23,000 Mario pentru a sari de pe. 7 00:00:23,000 --> 00:00:27,330 Programul nostru va fi interactiv, așa că va cere utilizatorului să introducă o anumită 8 00:00:27,330 --> 00:00:28,660 înălțime de piramida. 9 00:00:28,660 --> 00:00:32,920 Iar programul va imprima un jumătate-piramidă de înălțime care, în cazul în care 10 00:00:32,920 --> 00:00:37,390 hash stânga jos se aliniază cu partea de jos colțul din stânga al terminalului 11 00:00:37,390 --> 00:00:39,710 Fereastra de ieșire. 12 00:00:39,710 --> 00:00:44,870 >> Să sparge această problemă în două părți, unul, pentru a primi date introduse de utilizator, și doi, 13 00:00:44,870 --> 00:00:47,040 imprima piramida. 14 00:00:47,040 --> 00:00:51,150 Amintiți-vă că, deși funcția getint va prelua un număr întreg, te 15 00:00:51,150 --> 00:00:56,260 Trebuie să vă asigurați că această intrare face sens pentru programul dvs., astfel încât în 16 00:00:56,260 --> 00:00:59,690 Mario, acesta nu va face doar o produs de un număr întreg. 17 00:00:59,690 --> 00:01:03,440 Veți avea nevoie pentru a vă asigura că utilizatorul intrări un număr întreg, care este în 18 00:01:03,440 --> 00:01:06,985 limitele inferioare și superioare ale Piramida pe care le puteți imprima. 19 00:01:06,985 --> 00:01:12,300 Pe acest spec., aceasta este 0 si 23 inclusiv. 20 00:01:12,300 --> 00:01:16,410 Dacă intrările utilizatorului un întreg afara limitelor noastre acceptate, atunci ne-o dorim 21 00:01:16,410 --> 00:01:20,840 pentru a le solicita din nou și din nou până ei ne dau un întreg valid. 22 00:01:20,840 --> 00:01:25,990 >> O modalitate de a asigura intrarea corectă de utilizator este prin utilizarea unui Do-timp bucla, care este 23 00:01:25,990 --> 00:01:28,100 foarte asemănătoare cu o buclă de timp. 24 00:01:28,100 --> 00:01:32,580 Nu-În timp ce bucla execută codul în interiorul corpului o dată, și apoi verifică 25 00:01:32,580 --> 00:01:35,270 dacă această condiție este îndeplinită sau nu. 26 00:01:35,270 --> 00:01:38,830 Acest lucru este util pentru a obține datele introduse de utilizator pentru că știți că aveți nevoie 27 00:01:38,830 --> 00:01:41,805 să le determine cel puțin o dată. 28 00:01:41,805 --> 00:01:45,940 În cazul în care condiția nu este îndeplinită, programul va executa linia de după 29 00:01:45,940 --> 00:01:47,270 dvs. de a face-În timp ce bucla. 30 00:01:47,270 --> 00:01:50,950 În cazul în care condiția este îndeplinită, totuși, bucla se va repeta. 31 00:01:50,950 --> 00:01:55,560 >> A do-În timp ce bucla pentru validarea utilizator de intrare va arata ceva de genul asta. 32 00:01:55,560 --> 00:02:02,920 Declar un n variabile, getint, și se repetă până când n este valabil. 33 00:02:02,920 --> 00:02:06,270 Amintiți-vă că, atunci când declara dvs. variabila, are nevoie de adecvat 34 00:02:06,270 --> 00:02:08,449 domeniul de aplicare, la fel ca în Scratch. 35 00:02:08,449 --> 00:02:12,510 Dacă eu declar n interiorul meu Do-In timp ce bucla, Restul programului nu va fi 36 00:02:12,510 --> 00:02:13,750 capabil să-l acces. 37 00:02:13,750 --> 00:02:16,100 Este limitat la limitele de acolade. 38 00:02:16,100 --> 00:02:19,010 39 00:02:19,010 --> 00:02:23,090 >> Bine, acum că ne-am validat intrare utilizatorului, avem de fapt nevoie pentru a 40 00:02:23,090 --> 00:02:25,020 trage această jumătate de piramidă. 41 00:02:25,020 --> 00:02:29,700 Este format din caracterele imprimate, așa hai sa facem o jumătate de piramidă într-un simplu 42 00:02:29,700 --> 00:02:31,480 editor de text. 43 00:02:31,480 --> 00:02:35,920 Dacă vrem să facem un stil piramida Mario de înălțime trei care este aliniat 44 00:02:35,920 --> 00:02:41,370 în partea stângă a ferestrei noastre, apoi am tastați două hash-uri, faceți clic pe Enter, 45 00:02:41,370 --> 00:02:47,180 apoi tastați trei hash-uri, faceți clic pe Enter, și apoi tastați patru. 46 00:02:47,180 --> 00:02:51,090 >> Dar, în acest set problemă, nostru jumătate de piramidă trebuie să fie aliniate dreapta. 47 00:02:51,090 --> 00:02:55,550 Folosind o tastatură standard, cum s-ar putea vă modificați acest fișier pentru a muta hash 48 00:02:55,550 --> 00:02:57,210 de partea dreapta? 49 00:02:57,210 --> 00:03:03,190 S-ar putea folosi pentru a subliniere, două pe rândul de sus și una pe a doua. 50 00:03:03,190 --> 00:03:07,690 Asta nu arata la fel de frumos, deși, așa să înlocuiască subliniaza cu 51 00:03:07,690 --> 00:03:12,450 spații, și nu avem o jumătate de piramidă de înălțime trei. 52 00:03:12,450 --> 00:03:16,330 >> Încercați și amintiți-vă acest editor de text exemplu ca incepi sa te gandesti din nou la 53 00:03:16,330 --> 00:03:20,100 C. Să încercăm să dau seama de unele un fel de model pe care putem 54 00:03:20,100 --> 00:03:22,750 a pus într-o construcție buclă. 55 00:03:22,750 --> 00:03:27,570 Ia o înălțime de exemplu, spune opt, și a vedea dacă puteți începe să 56 00:03:27,570 --> 00:03:29,470 veni cu un model. 57 00:03:29,470 --> 00:03:34,710 Primul rând va avea sapte locuri urmată de două hashes. 58 00:03:34,710 --> 00:03:40,090 Al doilea rând va avea șase locuri și trei hashes, și așa mai departe, până când 59 00:03:40,090 --> 00:03:41,440 al optulea rând. 60 00:03:41,440 --> 00:03:45,210 >> Dar cum te-ar reprezenta rândul n-lea? 61 00:03:45,210 --> 00:03:48,170 Amintiți-vă că convenția de programare este zero indexate. 62 00:03:48,170 --> 00:03:51,870 Asta înseamnă că începe numărarea de la la zero, astfel încât primul rând este punct de vedere tehnic 63 00:03:51,870 --> 00:03:57,110 numărul de rând zero, cu două trape, rând numărul unu are trei hash, rând 64 00:03:57,110 --> 00:04:01,860 numărul doi are patru hash-uri, astfel încât în ​​urma acest model pentru orice rand 65 00:04:01,860 --> 00:04:05,800 numărul n, există n plus 2 hash. 66 00:04:05,800 --> 00:04:09,270 Voi lăsa să vă, deși, pentru a găsi out model pentru spațiile. 67 00:04:09,270 --> 00:04:12,240 Amintiți-vă că modelul va fi ușor diferită în cazul în care alegeți să 68 00:04:12,240 --> 00:04:16,649 începe numărul tău de la unul și nu zero. 69 00:04:16,649 --> 00:04:19,560 >> Acum, aveți un model pentru orice rând n abstract. 70 00:04:19,560 --> 00:04:25,190 Știi cum de multe locuri pentru a imprima și cât de multe hash-uri, astfel încât pentru fiecare rând, că 71 00:04:25,190 --> 00:04:26,270 numărul se va schimba. 72 00:04:26,270 --> 00:04:30,700 Dar același proces de imprimare a singur caracter, fie un spațiu sau o 73 00:04:30,700 --> 00:04:33,200 hash, se repetă. 74 00:04:33,200 --> 00:04:37,470 Deci, tot ce trebuie sa faci este în mod repetat imprima acel caracter pentru ca de multe ori 75 00:04:37,470 --> 00:04:40,120 ca modelul dvs. determină. 76 00:04:40,120 --> 00:04:42,522 >> Deci, cum putem repeta procese? 77 00:04:42,522 --> 00:04:45,160 În Scratch, am folosit blocul repeta. 78 00:04:45,160 --> 00:04:48,580 În C, vom folosi o buclă. 79 00:04:48,580 --> 00:04:51,290 Să ne uităm la sintaxa pentru pentru bucle. 80 00:04:51,290 --> 00:04:57,140 >> Fiecare Pentru bucla este compus din trei piese de schimb, o inițializare, o condiție, 81 00:04:57,140 --> 00:04:58,592 și o actualizare. 82 00:04:58,592 --> 00:05:01,550 Bucla dvs. Pentru vor initializa o variabilă atunci când prima 83 00:05:01,550 --> 00:05:02,960 intra in bucla for. 84 00:05:02,960 --> 00:05:07,100 În cazul în care condiția este îndeplinită, organismul a buclei va executa. 85 00:05:07,100 --> 00:05:10,070 Ulterior, actualizarea se va executa. 86 00:05:10,070 --> 00:05:13,630 >> În cazul în care condiția este încă îndeplinită, buclă va executa și actualiza și 87 00:05:13,630 --> 00:05:18,580 repeta atâta timp cât starea dumneavoastră se evaluează la TRUE. 88 00:05:18,580 --> 00:05:21,450 Ești condiție trebuie în cele din urmă evalueze la fals, totuși, că 89 00:05:21,450 --> 00:05:24,490 spre deosebire de Scratch, noi nu facem nici bucle pentru totdeauna. 90 00:05:24,490 --> 00:05:28,270 Programul dumneavoastră trebuie să se încheie în cele din urmă. 91 00:05:28,270 --> 00:05:32,330 >> Iată un exemplu de o buclă care este posibil să doriți să utilizați pentru Mario. 92 00:05:32,330 --> 00:05:36,790 Inițializarea declară Am un întreg cu valoarea 0. 93 00:05:36,790 --> 00:05:40,750 Atâta timp cât este mai mică decât înălțimea, corpul buclei se va executa și 94 00:05:40,750 --> 00:05:44,980 crește I de unul și repetați până când este mai mare sau 95 00:05:44,980 --> 00:05:47,220 egală cu înălțimea. 96 00:05:47,220 --> 00:05:49,140 >> Acum, mea Pentru bucla este indicele zero. 97 00:05:49,140 --> 00:05:52,270 Int i începe de la zero, nu unul. 98 00:05:52,270 --> 00:05:55,320 Dacă am ales unul, apoi starea mea ar fi De asemenea, trebuie să fie diferite pentru 99 00:05:55,320 --> 00:05:58,740 bucla a executa același număr de ori. 100 00:05:58,740 --> 00:06:03,490 Amintiți-vă cu atenție acest lucru atunci când sunteți alegerea de inițializare și dumneavoastră 101 00:06:03,490 --> 00:06:08,660 condiție, și să consulte acest diagramă să verificați. 102 00:06:08,660 --> 00:06:13,430 >> Unul dintre cele mai mari lucruri despre calculator Stiinta este că nu există doar atât de multe 103 00:06:13,430 --> 00:06:15,490 moduri de a executa lucrurile. 104 00:06:15,490 --> 00:06:19,450 Puteți alege dacă începe de la zero, sau un. 105 00:06:19,450 --> 00:06:22,380 Dacă nu doriți să utilizați o buclă, puteți utiliza, de asemenea, o buclă în timp a 106 00:06:22,380 --> 00:06:26,530 repeta declarații atâta timp cât păstreze esența de o buclă, 107 00:06:26,530 --> 00:06:31,430 initializare, stare, și actualizare. 108 00:06:31,430 --> 00:06:36,890 Odată ce ne dăm seama pentru bucla care suntem cel mai confortabil, apoi am 109 00:06:36,890 --> 00:06:38,450 poate finaliza Mario. 110 00:06:38,450 --> 00:06:41,540 >> Am verificat mai întâi pentru introduse de utilizator și apoi a identificat un 111 00:06:41,540 --> 00:06:43,580 model pentru orice n rând. 112 00:06:43,580 --> 00:06:49,990 Deci, pentru fiecare rând de la zero la n minus 1 va tipări un număr corespunzător de 113 00:06:49,990 --> 00:06:55,340 spații, un număr adecvat de hash-uri în funcție de modelul nostru, și 114 00:06:55,340 --> 00:06:57,180 apoi o nouă linie. 115 00:06:57,180 --> 00:06:59,640 Cu asta, ai piramida ta. 116 00:06:59,640 --> 00:07:02,630 Numele meu este Zamyla, iar acest lucru a fost Mario. 117 00:07:02,630 --> 00:07:11,765