>> 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.