ZAMYLA CHAN: É un me, Zamyla. Hoxe, nós estamos indo a aplicar Mario, onde trazamos Mario unha pirámide chea para el ir. Imos romper o sub-tarefas para este problema. En primeiro lugar, queremos pedir ao usuario á altura da pirámide. E entón nós queremos estar seguro de que a dita entrada é válida. E entón nós imos Para deseñar a pirámide. Entón, imos falar sobre o que levou e validación de entrada do usuario. Pode parecer algo este, un loop do-while que solicita que o usuario a un enteiros e, a continuación, só repite Se este completo non é válido. Entón, o que esta condición sexa? Para iso, imos voltar coa especificación. Ben, a especificación dinos que calquera válidos altura vai situarse entre 0 e 23, inclusivo. Entón, a continuación, isto significa que calquera válido altura será menor que 0 ou máis que 23. Polo tanto, agora que temos esta información, imos proxectar a nosa condición. Pero necesitamos ter coidado, porque agora temos dous Booleans querer avaliar. Aquí eu teño sempre que cunha mesa de verdade. Isto permítenos levar de dous Booleans, Boolean un e dous. E podemos avaliar tanto bool1 e bool2 ou bool1 ou bool2. Entón, cal é a diferenza entre AND e OR? Ben, bool1 e bool2 vai avaliar a realidade se e só os booleanos son certas, Tendo en conta que o ou operación será certo se calquera dos os Booleans ou ambas son certas. Entón, con iso en mente, vexa se pode descubrir o que a condición adecuada para o loop do-while a un n incorrecto será. Con iso, temos solicitado e validado o usuario para a altura da pirámide que eles queren. Entón, agora, cabe a nós para deseñar a pirámide. A pirámide total para este problema vai mirar un pouco como este, onde temos unha pirámide esquerda, algunha lagoa, e despois dunha pirámide dereita. Entón, imos decompô-lo un pouco. Se eu ir ao meu editor de texto, aquí eu teño elaborado nos unha pirámide aliñado á esquerda. Pero iso non vai facer. O que queremos facer é que queremos crear unha pirámide aliñado á dereita en primeiro lugar. Entón, para facelo, para só empurrar meus hashes ao longo do lado, Eu só vou poñer algúns caracteres entre elas, só eses puntos. Entón eu vou poñer dous no seguinte liña, e un nesta liña. E aquí eu teño un pirámide aliñado á dereita. Despois diso, eu vou voltar á liña superior e poñer en fenda, que é, polo especificación, dous espazos. Entón eu vou para cubrir o outro lado da pirámide. Eu estou indo a ir á segunda liña, escribir dous espazos para a apertura e, a continuación, dous hashes. Voltar á terceira fila, dúas prazas ao foso e tres hash. E ao final, dúas prazas ao foxo e catro hashes. Entón, iso é o que un completo pirámide será semellante. Por suposto, non queremos Estes puntos no camiño. Entón, nós estamos indo para substituír-los puntos, poñendo algúns espazos no. Unha, dúas, tres na primeira liña. Un, dous no segundo. E un na terceira liña. Entón é iso que nós fariamos se nós quería só facer unha pirámide completa, dicir, o noso editor de texto. Polo tanto, imos ter iso, comprender os patróns, e convertelo-lo sobre a algúns pseudocódigo. Para cada liña da pirámide, queremos para imprimir a pirámide á esquerda e logo apertura e, a continuación, a pirámide dereita. Á pirámide esquerda, Nós imprimir a cantidade necesaria de espazos, seguido polos hashes. A continuación, imprimir o fose, que Estás a dous espazos cada vez. E na pirámide dereita, Nós imprimir o número necesario de hash. Para a segunda fila, realizamos exactamente o mesmo proceso. Nós imprimir os espazos á esquerda pirámide, a cantidade necesaria de hash, a lagoa, dous espazos e a continuación, os hashes piramidal dereita. Imos abordar o estándar á esquerda pirámide. Se eu tivese, con fins deste exemplo, unha altura de oito solicitado polo usuario, entón a miña primeira liña tería un haxix e sete espazos. Miña segunda liña tería dous hash, seis espazos. Terceira fila, tres hash, cinco espazos. Probablemente pode facelo -se para unha altura de oito e determinar para cada liña cantas hashes e cantos espazos necesitas. Pero o que queremos facer é queremos abstracto-lo. Entón eu lle pregunto a calquera enésima liña, cantas hashes e cantos espazos que necesitamos? Agora, como determinar a patrón de como moitas hashes e cantos espazos precisa para calquera liña enésima para unha dada altura, Lembre que ter coidado de como está indexando. O que quero dicir con isto é que en todos os días vida a maioría de nós comezar a conta por un. Entón, a primeira liña sería o número un. E a segunda orde sería fileira número de dous, así por diante e así por diante. Pero en ciencia da computación e CS50, estamos cero indexado. Entón, nós realmente comezar a contar desde cero. Entón, a primeira liña sería ser número da liña cero. E a segunda fila Sería número da liña un. Entón, se eu tiña unha altura de oito para miña pirámide, a continuación, o último valor de n en realidade sería de sete e non oito. Polo tanto, teña coidado con iso. E ser consciente cando está determinando seu defecto se o cero indexado ou un indexados OK. Polo tanto, agora que temos a estándar para a pirámide esquerda, necesitamos determinar o estándar para a apertura. Afortunadamente, iso é moi fácil. É só sempre dous espazos. Entón agora imos para o estándar correcto. A primeira liña terá un hash. A segunda liña, dous. Terceira fila, tres. Así por diante e así por diante. Entón, de novo, determinar a calquera abstract n e calquera momento cantas hash e como moitos espazos cada liña debe ter. OK. Entón, nós sabemos que, para cada un de nós fileira precisa para dirixir algún proceso. Como podemos facer iso? Ben, usamos a construción de loop, composta dunha startup, unha condición, e unha actualización. Para lazos poden ser utilizados repetir os procesos. Entón, digamos que quero dicir Hola, mundo 50 veces, entón a miña loop sería algo coma este, onde Eu arrincar meu variable a cero. A condición é que i sexa inferior a 50. E, a continuación, a actualización é que incrementos nun cada vez. Entón, o que iso ía facer sería imprimir Ola, mundo 50 veces nunha fileira. Agora, digamos que eu quería facer unha iteración ao longo da altura da pirámide. A continuación, en vez de codificación duro algún valor na condición, Eu só uso a altura variable. Entón, o que isto vai facer é iterate ao longo da altura cada liña. E podo facer algo dentro do corpo do referido circuíto. O que queremos facer no interior do corpo do loop? Ben, como indica antes, queremos para imprimir os espazos e os hashes á pirámide esquerda e, a continuación, imprimir dous espazos e, a continuación, imprimir os hashes. Entón, nós xa descubriu iso. Así, podemos comezar a cubrir no noso programa moito máis. Aquí eu teño un externa para loop que itera sobre cada liña na pirámide. E dentro dese corpo vou para imprimir espazos repetido hash repetidamente, e, a continuación, a apertura, e despois hashes á pirámide dereita, e logo, finalmente, unha nova liña para comezar a seguinte liña. Con iso, temos solicitado o usuario para a entrada. Temos seguro de que é válido. E entón, temos trazada a pirámide. Entón, Mario pode correctamente subir a pirámide. O meu nome é Zamyla. E este é CS50.