ZAMYLA CHAN: Anem a Mario. Mario és un programa on farem la nostra pròpia, encara que primitiu, versió de un clàssic Super Mario Brothers joc de fons. Per a aquest conjunt de problemes, anem per recrear la mitjana piràmide de Mario saltar sobre. El nostre programa serà interactiu, per la qual cosa li demanarà a l'usuari que introdueixi un determinat altura de la piràmide. I el programa imprimirà un mitjana piràmide d'aquesta altura, on el baix coixinet esquerra s'alinea amb la part inferior cantonada esquerra de la terminal finestra de sortida. Anem a trencar aquest problema en dues parts, un i gaudeix de la entrada de l'usuari, i dos, imprimir la piràmide. Recordi que encara que la funció GetInt recuperarà un nombre enter, es cal assegurar-se que aquesta entrada fa sentit per al programa, pel que en Mario, no ho farà només una producte d'un nombre enter. Vostè haurà de assegurar-se que l'usuari entrades d'un sencer que està dins de la límits inferior i superior de l' piràmide que es pot imprimir. Per aquesta especificació, es tracta de 0 i 23 ambdós inclosos. Si l'usuari introdueix un nombre enter fora dels nostres límits acceptats, llavors volem per demanar una vegada i una altra fins que ens donen un nombre enter vàlid. Una manera d'assegurar la entrada de l'usuari és correcta mitjançant l'ús d'un bucle do-while, que és molt similar a un bucle while. El Do-While executa el codi a l'interior del cos un cop, i després comprova si la condició es compleix o no. Això és útil per a l'obtenció de l'entrada de l'usuari perquè vostè sap que vostè necessita per sol · licitar almenys una vegada. Si la condició no es compleix, el programa s'executarà la línia després de el Do-While. Si es compleix la condició, però, el bucle es repetirà. A Do-While per a la validació d'usuari d'entrada es veurà alguna cosa com això. Declaro una variable n, GetInt, i repeteixi fins que n és vàlid. Recordeu que quan vostè declara el seu variable, es necessita l'adequada àmbit d'aplicació, igual que en l'scratch. Si em declaro n dins del meu Do-While, la resta del programa no serà poder accedir a ell. Està limitat als confins de les claus. Molt bé, així que ara que hem validat l'entrada de l'usuari, que realment es necessita per dibuixar aquest mitjà-piràmide. Es compon de caràcters impresos, pel farem una mitjana piràmide de manera senzilla editor de text. Si volem fer una piràmide d'estil de Mario d'alçada de tres que està alineat a la banda esquerra de la finestra, a continuació, ens escrivim 2 hashes, premem Intro, a continuació, escrigui tres hashes, feu clic a Intro i escriviu 04:00. Però en aquest conjunt de problemes, el nostre mitjana piràmide ha de ser alineat a la dreta. L'ús d'un teclat estàndard, com podria modificar aquest fitxer per moure hashes a la dreta? Pot ser que utilitzi caràcters de subratllat, dos a la fila superior i una a la segona. Això no es veu tan bonic, encara que, anem a substituir el subratllat amb espais, i allà tenen una mitjana piràmide d'alçada de tres. Intenta recordar aquest editor de text exemple, com vostè comença a pensar de nou a C. Tractarem d'esbrinar alguna cosa tipus de patró que podem posat en una construcció circular. Prengui una alçada exemple, diguem que huit, i veure si vostè pot començar a arribar a un patró. La primera fila tindrà set espais seguit de dos hashes. La segona línia tindrà sis espais i tres valors hash, i així successivament fins que el vuitena fila. Però, ¿com podria representar l'enèsima fila? Recordeu que la convenció de programació és zero indexats. Això vol dir que comença a comptar a partir zero, de manera que la primera fila és tècnicament nombre de fila zero amb dos escotilles, fila número u té tres hashes, fila número dos té quatre hashes, així que després de aquest patró per qualsevol fila nombre n, hi ha n + 2 hashes. Ho deixo a vostè, però, trobar el patró dels espais. Recordi que el seu patró serà lleugerament diferent si vostè decideix iniciar el recompte de un i no zero. Ara, vostè té un patró de qualsevol fila n abstracta. Saps quants espais per imprimir i el nombre de hashes, així que per a cada fila, que nombre canviarà. Però el mateix procés d'impressió d'un sol caràcter, un espai o hash, es repeteix. L'únic que has de fer és diverses vegades imprimir aquest caràcter de les vegades com el seu patró determina. Llavors, com repetim els processos? En Scratch, es va utilitzar el bloc de repetició. En C, farem servir un bucle. Fem una ullada a la sintaxi de bucles For. Cada cicle For es compon de tres parts, una d'inicialització, un estat, i una actualització. El bucle For inicialitzarà una variable quan primer entra en el bucle. Si es compleix la condició, el cos del bucle s'executarà. Posteriorment, l'actualització s'executarà. Si la condició es segueix complint el bucle s'executarà i s'actualitzarà i repetir sempre que la seva condició avalua com True. Ets afecció finalment ha de valorar a False, però, perquè a diferència de Scratch, nosaltres no tenir llaços per sempre. El seu programa ha d'acabar amb el temps. Heus aquí un exemple d'un bucle que és possible que vulgueu utilitzar per a Mario. La inicialització declara i un enter amb valor 0. Mentre i és menor que l'altura, el cos del bucle s'executarà i augmentar la i per una i repetir fins que i és més o igual a l'altura. Ara, el meu bucle For és l'índex zero. El Int i comença en zero, no un. Si he triat un, llavors la meva condició faria També ha de ser diferent per el bucle per executar l' mateix nombre de vegades. Recordeu això amb compte quan s'està l'elecció del seu inicialització i la seva condicions i consulteu la quadre per comprovar el doble. Una de les millors coses d'equip la ciència és que només hi ha tants formes d'executar les coses. Vostè pot decidir si començar de zero o un. Si no voleu utilitzar un bucle, també es pot utilitzar un bucle While per repetir les declaracions, sempre que mantenir l'essència d'un bucle, inicialització, condició i actualització. Un cop sapiguem el bucle perquè estem més còmodes, llavors pot completar Mario. Ens registrem per primera vegada per a la entrada de l'usuari i després identificat una model per a qualsevol fila n. Així que per a cada fila de zero a n almenys 1 s'imprimeix el nombre apropiat de espais, llavors el nombre apropiat de hashes d'acord al nostre patró, i a continuació, una nova línia. Amb això, vostè té el seu piràmide. El meu nom és Zamyla, i això era Mario.