ZAMYLA Chan: Haideti sa patrundem in Mario. Mario este un program de unde vom face noi propriu deși primitiv, versiune, de un clasic Super Mario Brothers joc de fundal. Pentru acest set de probleme, vom pentru a recrea o jumătate de piramidă pentru Mario pentru a sari de pe. Programul nostru va fi interactiv, așa că va cere utilizatorului să introducă o anumită înălțime de piramida. Iar programul va imprima un jumătate-piramidă de înălțime care, în cazul în care hash stânga jos se aliniază cu partea de jos colțul din stânga al terminalului Fereastra de ieșire. Să sparge această problemă în două părți, unul, pentru a primi date introduse de utilizator, și doi, imprima piramida. Amintiți-vă că, deși funcția getint va prelua un număr întreg, te Trebuie să vă asigurați că această intrare face sens pentru programul dvs., astfel încât în Mario, acesta nu va face doar o produs de un număr întreg. Veți avea nevoie pentru a vă asigura că utilizatorul intrări un număr întreg, care este în limitele inferioare și superioare ale Piramida pe care le puteți imprima. Pe acest spec., aceasta este 0 si 23 inclusiv. Dacă intrările utilizatorului un întreg afara limitelor noastre acceptate, atunci ne-o dorim pentru a le solicita din nou și din nou până ei ne dau un întreg valid. O modalitate de a asigura intrarea corectă de utilizator este prin utilizarea unui Do-timp bucla, care este foarte asemănătoare cu o buclă de timp. Nu-În timp ce bucla execută codul în interiorul corpului o dată, și apoi verifică dacă această condiție este îndeplinită sau nu. Acest lucru este util pentru a obține datele introduse de utilizator pentru că știți că aveți nevoie să le determine cel puțin o dată. În cazul în care condiția nu este îndeplinită, programul va executa linia de după dvs. de a face-În timp ce bucla. În cazul în care condiția este îndeplinită, totuși, bucla se va repeta. A do-În timp ce bucla pentru validarea utilizator de intrare va arata ceva de genul asta. Declar un n variabile, getint, și se repetă până când n este valabil. Amintiți-vă că, atunci când declara dvs. variabila, are nevoie de adecvat domeniul de aplicare, la fel ca în Scratch. Dacă eu declar n interiorul meu Do-In timp ce bucla, Restul programului nu va fi capabil să-l acces. Este limitat la limitele de acolade. Bine, acum că ne-am validat intrare utilizatorului, avem de fapt nevoie pentru a trage această jumătate de piramidă. Este format din caracterele imprimate, așa hai sa facem o jumătate de piramidă într-un simplu editor de text. Dacă vrem să facem un stil piramida Mario de înălțime trei care este aliniat în partea stângă a ferestrei noastre, apoi am tastați două hash-uri, faceți clic pe Enter, apoi tastați trei hash-uri, faceți clic pe Enter, și apoi tastați patru. Dar, în acest set problemă, nostru jumătate de piramidă trebuie să fie aliniate dreapta. Folosind o tastatură standard, cum s-ar putea vă modificați acest fișier pentru a muta hash de partea dreapta? S-ar putea folosi pentru a subliniere, două pe rândul de sus și una pe a doua. Asta nu arata la fel de frumos, deși, așa să înlocuiască subliniaza cu spații, și nu avem o jumătate de piramidă de înălțime trei. Încercați și amintiți-vă acest editor de text exemplu ca incepi sa te gandesti din nou la C. Să încercăm să dau seama de unele un fel de model pe care putem a pus într-o construcție buclă. Ia o înălțime de exemplu, spune opt, și a vedea dacă puteți începe să veni cu un model. Primul rând va avea sapte locuri urmată de două hashes. Al doilea rând va avea șase locuri și trei hashes, și așa mai departe, până când al optulea rând. Dar cum te-ar reprezenta rândul n-lea? Amintiți-vă că convenția de programare este zero indexate. Asta înseamnă că începe numărarea de la la zero, astfel încât primul rând este punct de vedere tehnic numărul de rând zero, cu două trape, rând numărul unu are trei hash, rând numărul doi are patru hash-uri, astfel încât în ​​urma acest model pentru orice rand numărul n, există n plus 2 hash. Voi lăsa să vă, deși, pentru a găsi out model pentru spațiile. Amintiți-vă că modelul va fi ușor diferită în cazul în care alegeți să începe numărul tău de la unul și nu zero. Acum, aveți un model pentru orice rând n abstract. Știi cum de multe locuri pentru a imprima și cât de multe hash-uri, astfel încât pentru fiecare rând, că numărul se va schimba. Dar același proces de imprimare a singur caracter, fie un spațiu sau o hash, se repetă. Deci, tot ce trebuie sa faci este în mod repetat imprima acel caracter pentru ca de multe ori ca modelul dvs. determină. Deci, cum putem repeta procese? În Scratch, am folosit blocul repeta. În C, vom folosi o buclă. Să ne uităm la sintaxa pentru pentru bucle. Fiecare Pentru bucla este compus din trei piese de schimb, o inițializare, o condiție, și o actualizare. Bucla dvs. Pentru vor initializa o variabilă atunci când prima intra in bucla for. În cazul în care condiția este îndeplinită, organismul a buclei va executa. Ulterior, actualizarea se va executa. În cazul în care condiția este încă îndeplinită, buclă va executa și actualiza și repeta atâta timp cât starea dumneavoastră se evaluează la TRUE. Ești condiție trebuie în cele din urmă evalueze la fals, totuși, că spre deosebire de Scratch, noi nu facem nici bucle pentru totdeauna. Programul dumneavoastră trebuie să se încheie în cele din urmă. Iată un exemplu de o buclă care este posibil să doriți să utilizați pentru Mario. Inițializarea declară Am un întreg cu valoarea 0. Atâta timp cât este mai mică decât înălțimea, corpul buclei se va executa și crește I de unul și repetați până când este mai mare sau egală cu înălțimea. Acum, mea Pentru bucla este indicele zero. Int i începe de la zero, nu unul. Dacă am ales unul, apoi starea mea ar fi De asemenea, trebuie să fie diferite pentru bucla a executa același număr de ori. Amintiți-vă cu atenție acest lucru atunci când sunteți alegerea de inițializare și dumneavoastră condiție, și să consulte acest diagramă să verificați. Unul dintre cele mai mari lucruri despre calculator Stiinta este că nu există doar atât de multe moduri de a executa lucrurile. Puteți alege dacă începe de la zero, sau un. Dacă nu doriți să utilizați o buclă, puteți utiliza, de asemenea, o buclă în timp a repeta declarații atâta timp cât păstreze esența de o buclă, initializare, stare, și actualizare. Odată ce ne dăm seama pentru bucla care suntem cel mai confortabil, apoi am poate finaliza Mario. Am verificat mai întâi pentru introduse de utilizator și apoi a identificat un model pentru orice n rând. Deci, pentru fiecare rând de la zero la n minus 1 va tipări un număr corespunzător de spații, un număr adecvat de hash-uri în funcție de modelul nostru, și apoi o nouă linie. Cu asta, ai piramida ta. Numele meu este Zamyla, iar acest lucru a fost Mario.