ZAMYLA CHAN: É unha me, Zamyla.
Hoxe en Mario, seremos deseñar a metade da pirámide para Mario
para subir.
>> Entón imos falar sobre a nosa to-do de a este problema.
Nós imos querer para solicitar e validar
o usuario a unha entrada válida como alta que queren pirámide de Mario para ser.
E entón, imos deséñase la.
Entón, imos comezar con suxestións e validando o usuario para a súa entrada.
>> Podemos facer uso da Función CS50 Biblioteca
obter int que vai garantir que o usuario inserir un número enteiro.
Calquera números enteiros positivos, negativos enteiros, o número 0 son todos xogo xusto.
En caso contrario, o usuario será solicitada a repetir ata que a entrada dun número enteiro válido.
Agora, aínda get int fai unha gran parte do traballo para nós
no sentido de garantir que o do usuario dános un número enteiro,
aínda necesitamos aplicar algún restricións adicionais sobre iso.
Ao final, non podemos ter Mario escalada media pirámide de altura negativo de 12.
>> Ademais de que, o especificación problema
di que só podemos permitir que Mario para subir
unha pirámide de alturas entre 0 e 23.
OK, o que significa que necesitamos para alertar o usuario continuamente
para dar unha válida número e só seguen
xa que nos deron unha altura válida.
Como podemos facer iso?
>> Ben, procesos continuos darnos a idea de facer algo loops--
repetitivamente.
Un circuíto en C como un tempo loop que continuamente
executar o corpo do lazo mentres a condición dada é valorada como certa.
Así que esta condición valorada como falsa,
o programa continuar o que vén despois diso.
Así, mentres loops son unha forma de garantindo que continuamente
solicitar ao usuario a unha entrada válida.
E xa que eles nos dan unha entrada válida, imos avanzar o que vén a continuación.
Sabemos que imos pedir o usuario para a entrada de polo menos unha vez.
Entón, agora chegamos a unha irmá do mentres loop, que é o loop Do While.
>> Fai while executará corpo do lazo, polo menos, unha vez máis.
Así, sen a comprobación da condición, el utilizará o corpo do lazo.
E, a continuación, comprobar a condición para ver se se repetir.
Isto vén a cadra cando estamos valida a entrada do usuario.
Sabemos que imos para lles pedir polo menos unha vez.
Así, un loop Do While pode algo coma isto.
Temos un número enteiro n.
E dentro do facer mentres loop, nós inmediatamente
pedir ao usuario a un número enteiro.
Se n é válido, entón imos levalos de novo e de novo e de novo ata que
dar esa enteiro válido.
Finalmente, xa que n é unha entrada válida, imos avance para o resto do noso programa.
>> Entón, imos voltar á especificación e verificación que as condicións para unha entrada válida
será.
As alturas válidos van situarse entre 0 e 23, inclusive.
cantos de modo non válidos van ser inferior a 0 ou máis que 23.
Entón lembre de proxectar a súa condición con coidado,
sabendo que a condición ao do loop while
debe ser á vez n non é válido.
Agora, iso non vai ser un expresión booleana simple e única.
Nós imos ter que combinar dúas expresións diferentes
para facer toda a nosa condición.
>> Entón imos só ollar a unha táboa verdade eu teño xa lle deu a información de que estamos
será xestionar dous Booleans.
Entón aquí está unha táboa de verdade onde ter dous Booleans-- booleana 1 e 2.
Polo tanto, temos a posibilidade de avaliar bool1 e bool2 ou bool1 ou bool2.
E só será certo se ambos Booleans avaliar a realidade, mentres que as
ou será certo, sempre que un de ambos Booleans valorada como certa.
OK, entón bótalle un momento, deter este vídeo e dixerir esta táboa verdade.
Eu estarei ben aquí esperando.
Cando volver, ver se pode unir
unha expresión booleana para a súa condición de n ser unha entrada válida.
>> Polo tanto, agora que temos entrada do usuario válido, imos
dalle falar como nos pode deseñar a metade da pirámide.
Aquí neste editor de texto simple, Eu deseño dun aliñado á esquerda pirámide.
Pero sabemos que necesitamos nosa pirámide para ser aliñado á dereita.
Entón, como eu podería facelo?
Ben, eu podería intentar empurrar todo para o lado
por só poñer un pouco caracteres no medio.
E, a continuación, para o próximo liña, eu vou poñer
algúns personaxes para empurra-lo xunto, e further-- así por diante e así por forth--
ata que teña a pirámide aliñado á dereita.
Entón temos unha pirámide align dereito, pero non parece tan grande cos puntos.
Pero aínda queremos sosteñen que o espazo agradable.
Entón eu vou literalmente inserir algúns espazos.
>> No canto de tres puntos, eu vou poñer un, dous, tres espazos.
Na segunda liña.
Vou poñer un, dous espazos.
E no penúltimo liña, só un espazo.
E aquí eu teño unha pirámide aliñado á dereita.
De facer o exemplo no texto editor, temos unha idea para o estándar
que usaremos para deseñar a metade da pirámide.
Para cada liña, o que fixemos é que escribir algúns espazos,
e logo tecleada algúns hashes, e despois ingresaran
a tecla Intro, que é a creación dunha nova liña.
Polo tanto, agora que temos que imos un paso adiante e atopar un patrón.
>> Entón eu vou dicir, para o interese deste exemplo,
Estamos a tratar con unha altura de 8.
A primeira liña terá dous hashes que segue sete espazos.
Os second-- tres hash, seis espazos.
Terceiros row-- catro hashes, cinco spaces-- etc. etc.
ata chegar á liña nth.
Así, pois, pídovos a liña nth, cantas hashes teremos
e cantos espazos?
Entón, cómpre a vostede a descubrir un fórmula para representar o número de hash
e cantas son necesarias para espazos a liña nth cando ten algunha altura.
>> Agora, cando está descubrir iso, ter coidado como está indexando.
O que quero dicir con isto é que na vida cotiá de todos
comezar a contar, xeralmente por 1.
Pero, en CS50 e en ciencia da computación En xeral, son 0 indexado.
Así, a primeira fila sería N de 0, en oposición a un.
Teña coidado con iso cando está tentando descubrir o seu estándar.
Entón agora imos volver a ser como imos chamar a nosa pirámide.
Para cada liña, imos querer imprimir os espazos, imprimir os hashes,
e, a continuación, imprimir unha nova liña.
A información aquí é o palabra "para" todas as liñas.
En C, que ten unha construción chamado un loop for,
que está composto por un arranque, unha condición, unha actualización,
eo corpo do lazo.
>> Digamos que eu quería dicir, Ola mundo, 50 veces, os meus para circuito
sería algo coma isto.
I arrincar o meu completo a 0.
A condición é que é menos que 50.
E entón miña actualización é só incrementando I por un de cada vez.
Tamén podemos utilizar para loops para repetir as cousas.
Observe aquí como nós non ten codificado un número,
senón posta a variable altura en canto sobre a condición.
Entón o que eu estou facendo aquí é que estou a iteración sobre cada liña da pirámide.
Podo facer algo para cada remar no interior do corpo da miña loop.
>> O que estamos facendo no o corpo do loop?
Ben, como xa dixemos, estamos imprimindo espazos e estamos imprimindo hashes
e estamos imprimindo unha nova liña.
Así, a miña externa para o lazo será coma este.
Eu iterado sobre cada liña da pirámide, usando,
Neste caso, a altura como a variable que almacena a altura da pirámide.
Dentro do corpo daquel loop, eu son vai imprimir espazos repetido de impresión
os hashes repetidamente e, a continuación, imprimir unha nova liña.
>> Entón, agora, usando todos os conceptos que Eu xa falei sobre este walk-through,
ten que ser capaz de levar o do usuario para entrada, validar as entradas,
e despois sacar a media pirámide.
>> O meu nome é Zamyla, e este é CS50.