ZAMYLA CHAN: Salto Imos en Mario. Mario é un programa onde nós imos facer o noso propio, aínda que primitiva, versión de un clásico Super Mario Brothers fondo do xogo. Por este conxunto de problemas, imos para recrear a media pirámide para Mario para ir sobre. O noso programa interactivo, polo que pedirá ao usuario a entrada dun certo altura á pirámide. E o programa pode imprimir unha media altura da pirámide de que, cando o Hash inferior esquerda aliñan co fondo esquina esquerda da terminal xanela de saída. Imos romper este problema en dúas partes, un, conseguir a entrada do usuario, e dous, imprimir a pirámide. Lembre que, aínda que a función GetInt pode recuperar un enteiro, ten ten que ter a certeza de que esta entrada fai sentido para o seu programa, polo que, Mario, el non vai facer só unha produto a un número enteiro. Debe asegurarse de que o usuario entradas dun número enteiro que está dentro da límites inferior e superior do pirámide que pode imprimir. Por esta especificación, esta é 0 e 23 inclusive. Se o usuario introduce un enteiro fóra dos nosos límites aceptados, entón queremos para leva-los de novo e de novo ata eles nos dan un número enteiro válido. Unha forma de garantir a entrada do usuario correcto é usando un lazo do-while, que é moi semellante a un loop while. O Do-While executa o código no interior do corpo unha vez, e logo verifica a condición de ser satisfeita ou non. Isto é útil para a entrada do usuario porque vostede sabe que precisa para levalos polo menos unha vez. Se a condición non se responde, o programa utilizará a liña tras o Do-while. Se a condición se responde, porén, o ciclo se repetirá. A Do-While á validación de usuario entrada será algo parecido a isto. Eu declaro unha variable n, GetInt, e repetir ata que non é válido. Lembre que cando se declara a súa variable, é necesaria a adecuada ámbito, así como en scratch. Se eu declarar n dentro do meu lazo do-while, o resto do programa non será capaz de acceder a ela. É limitada aos confíns das chaves. Todo ben, entón agora que xa validado a entrada do usuario, que realmente precisa aproveitar esa media pirámide. Ela está composta de caracteres impresos, de xeito imos facer unha media pirámide nun simple editor de texto. Se queremos facer unha pirámide de estilo Mario tres de altura que está aliñado na parte esquerda da nosa fiestra, entón nós tipo dous hash, prema en Inserir, a continuación, escriba tres hash, prema Enter, e escriba catro. Pero neste conxunto de problemas, o noso media pirámide ten que ser aliñado á dereita. Usando un teclado estándar, como pode modificar este ficheiro para mover hashes para o lado dereito? Eu poida usar para guións baixos, dous no top de liña e un no segundo. Isto non parece tan bo, con todo, así Imos substituír os guións baixos con espazos, e aí temos unha media pirámide de altura tres. Tente lembrar-se este editor de texto exemplo, como comezar a pensar de volta para C. Imos tentar descubrir algún tipo de patrón que podemos poñer nunha construción de loop. Tome unha altura exemplo, digamos oito, e vexa se pode comezar a chegar a un estándar. A primeira liña Terá sete espazos seguido por dous hash. A segunda fila terá seis espazos e hash tres, e así por diante ata que o oitava liña. Pero como representaría a liña enésimo? Lembre que a convención de programación é cero indexado. Isto significa que comeza a contar a cero, entón a primeira liña é tecnicamente liña número cero con dúas portillas, liña número un ten tres hash, liña número dous ten catro hash, para despois ese estándar para calquera liña número n, existen n + 2 hash. Vou deixar para ti, con todo, para atopar o estándar para os espazos. Lembre que o seu estándar será lixeiramente diferente se decide iniciar a súa conta dende e un non cero. Agora tes un estándar para calquera liña n abstracto. Vostede sabe cantos espazos para imprimir e cantos guisados, así, para cada liña, isto Número cambiará. Pero o mesmo proceso de impresión dun carácter único, un espazo ou un de hash, é repetida. Entón todo o que tes que facer é varias veces imprimir este personaxe por tantas veces como determina o seu defecto. Entón, como imos repetir procesos? En perigo, utilizouse o bloque de repetición. En C, imos usar un loop for. Vexamos a sintaxe Para para loops. Para cada ciclo está composto por tres partes, unha inicialización, unha condición, e unha actualización. O seu loop For pode arrincar unha variable cando por primeira vez entra no loop For. Se a condición se responde, o corpo do loop será executado. Despois diso, a actualización será executada. Se a condición é aínda cumprida, o loop executarase e actualizar e repetir, aínda que a súa condición avalía a True. Vostede é condición debe finalmente avaliar como falso, con todo, xa que ao contrario do risco, non ten os lazos para sempre. O seu programa debe terminar eventualmente. Aquí está un exemplo de un loop que pode querer usar para Mario. A inicialización declara i un enteiro co valor 0. Sempre que i é menor que o canto, o corpo do loop e executará aumentar i por un e repetir ata i é maior ou igual á altura. Agora, o meu loop é o índice cero. A Int i comeza en cero, nin un sequera. Se eu escollese un, entón a miña condición faría tamén ten que ser diferente a o circuíto para realizar o mesmo número de veces. Teña en conta que isto con coidado cando está seleccionar o arranque eo seu condición, e consultar este trazar para comprobar. Unha das grandes cousas sobre o ordenador ciencia é que non hai só tantas formas de realizar as cousas. Pode escoller se comezan en cero ou un. Se non quere usar un loop, Tamén pode usar un loop while para repetir afirmacións, mentres manter a esencia dun loop, arranque, condición e actualización. Así que descubrir o loop que estamos máis cómodo, entón nós pode completar Mario. Nós primeiro comprobado para a entrada do usuario e logo, identificado unha estándar para calquera liña n. Así, para cada liña de cero a n menos 1 imprimirá o número apropiado de espazos, entón o número apropiado de hashes de acordo co noso estándar, e a continuación, unha nova liña. Con iso, ten a súa pirámide. O meu nome é Zamyla, e iso foi Mario.