>> [REPRODUCCIÓ DE MÚSICA]
>> ROB Bowden: Sóc jo, Rob.
Anem a caminar a través de la forma per implementar Mario.
Així que el primer que hem de fer és sol · licitar a l'usuari l'entrada.
>> Hem de preguntar exactament com d'altura de la piràmide ha de ser.
Així que aquí, veiem que estem fent height = GetInt.
Una I recorda que la funció GetInt s'implementa en el CS50
biblioteca, per la qual cosa fins a la part superior, hem de recordeu # include cs50.h.
>> Llavors, per què tenim aquest embolicat en un bucle do-while?
Bé, també hem de recordar que entrada de l'usuari ha de ser vàlid.
Què és una entrada no vàlida?
Bé, l'especificació PSET diu específicament que una alçada menor que 0 o major
que 23 no és vàlid.
>> Així que aquí, veiem que estem definint una constant anomenada MAX_HEIGHT amb la
valor de 23.
Aquest bucle do-while continuarà mentre l'altura és menor que 0 o és MAX_HEIGHT
menys d'altura, el que significa que 23 és menor que l'altura.
Així que si l'altura és 24 o major, estem continuarà bucle.
Recordeu de fer, mentre que els bucles són bastant útil quan volem aconseguir
l'entrada de l'usuari i després validar-lo, ja inevitablement necessitem preguntar a l'usuari a
almenys una vegada pel valor que ells volen.
>> Així que una vegada que tinguem les seves opinions, ens ara pot construir la piràmide.
Un dels trucs d'aquest problema és establir que hem de començar a la part superior de
la piràmide.
No es pot printf la part inferior de la piràmide i després construir el seu camí cap amunt.
Així que donem una ullada a l'exemple de l'especificació PSET.
>> Veiem aquí que quan entrem en una alçada de 8, la part inferior de la
piràmide imprimeix 09:00 hashes.
Un nivell més amunt que les impressions un espai-vuit hashes.
Un nivell per sobre que està a dos espais i 07:00 hashes, tot el camí fins que ens
arribar al cim de la piràmide, que és vuit nivells, que imprimeix fins a set
espais i dos hashes.
Així que recordi que hem de fer aquest nivell superior en primer lloc.
>> Aquí estem iterant des del nivell superior, la fila 8, continuant
fins que la fila arribi a 0.
Llavors, com molts espais què necessitem imprimir a la fila de dalt?
Imprimim set espais i dos hashes.
Així que el nombre d'espais que volem és la fila, quan van estar almenys 1.
>> Si la fila superior és de 8, 8 menys 1 ens dóna set espais.
Llavors tenim un bucle que imprimeixi a terme cadascun un espai alhora.
Així que quan els espais són 7, aquest bucle set vegades, la impressió
set espais individuals.
>> Així que ara hem de imprimir aquests hashes al final de la piràmide.
Així que aquí, hem de calcular el nombre de hashes.
Veiem que estem fent altura fila menys més 2.
Llavors, com hem arribat fins això?
>> Recordeu que la part superior de la piràmide és la fila 8, i l'alçada és de 8.
I encara imprimim 2 hashes.
Així, almenys, 8 menys 8 més 2 ens dóna la resposta correcta.
I després considerar la part inferior de la piràmide, la fila 1.
Fila Alçada menys ens donarà 7, i a continuació, més 2 ens dóna nou hashes,
que és exactament el nombre de hashes que imprimim.
Així que aquesta és la fórmula que volem utilitzar per calcular el nombre
hashes a cada fila.
>> L'ús d'aquest nombre, llavors tenim una altra per al bucle, molt similar a la
per al bucle que es va utilitzar per als espais, que es repeteix diverses vegades hashes
la impressió d'una sola coixinet cada vegada.
A la fila superior, que va a imprimir dues hashes.
A la fila de sota, que va a imprimir 09:00 hashes.
I cada altra fila s'imprimirà cada nombre de hashes en el medi.
>> I després, al final, hem de imprimir nostra nova línia per anar a la següent
remar en la piràmide.
Finalment, hem de imprimir la nova línia al final de la fila per tal de
continuar amb el següent fila de la piràmide.
I al final del nostre programa, tenim el retorn 0.
>> D'acord amb l'especificació del conjunt de processadors, el retorn 0 no és estrictament necessari.
Però sí vol dir que el principal està fet.
El meu nom és Rob, i això era Mario.
>> [REPRODUCCIÓ DE MÚSICA]