>> [MUSIQUE JEU]
>> ROB BOWDEN: C'est moi, Rob.
Passons en revue la façon dont à mettre en oeuvre Mario.
Donc la première chose que nous devons faire est inviter l'utilisateur à l'entrée.
>> Nous devons leur demander exactement comment haut de la pyramide doit être.
Donc, ici, nous voyons que nous faisons height = GetInt.
Une Et n'oubliez pas que la fonction GetInt est mis en oeuvre dans le CS50
bibliothèque, donc là-haut, nous avons besoin de n'oubliez pas de # include cs50.h.
>> Alors pourquoi avons-nous ce enveloppé dans une boucle do-while?
Eh bien, nous devons aussi nous rappeler que l'entrée de l'utilisateur doit être valide.
Qu'est-ce qu'un invalide?
Eh bien la spécification pset dit expressément que la hauteur est inférieure à 0 ou supérieure
de 23 est invalide.
>> Donc, ici, nous voyons que nous définissons une constante appelée MAX_HEIGHT avec l'
valeur de 23.
Cette boucle do-while continuera tout hauteur est inférieure à 0 ou est MAX_HEIGHT
inférieure à la hauteur, ce qui signifie que La figure 23 est inférieure à la hauteur.
Donc, si la hauteur est de 24 ou plus, nous sommes va continuer en boucle.
Rappelez-vous que boucles do-while sont assez utile quand on veut obtenir
saisie de l'utilisateur, puis valider, puisque nous devons inévitablement à demander à l'utilisateur à
moins une fois pour la valeur qu'ils veulent.
>> Donc, une fois que nous avons de leur entrée, nous peut maintenant construire la pyramide.
Un des trucs de ce problème fixés est que nous devons commencer par le haut de
la pyramide.
On ne peut pas printf bas de la pyramide, puis construire votre chemin.
Alors regardons l'exemple de la spécification pset.
>> Nous voyons ici que lorsque nous entrons dans une hauteur de 8, tout en bas de l'
pyramide imprime neuf hachage.
Un niveau au-dessus que les impressions un espace et huit tables de hachage.
Un niveau au-dessus qui est deux espaces et sept tables de hachage, tout le chemin jusqu'à ce que nous
atteindre le sommet de la pyramide, qui est huit niveaux, qui imprime jusqu'à sept
espaces et deux tables de hachage.
Alors, n'oubliez pas que nous avons à faire ce niveau supérieur en premier.
>> Ici, nous sommes itération de la haut niveau, ligne 8, continue
jusqu'à ce que la ligne atteint 0.
Alors combien de places ne nous besoin pour imprimer dans cette rangée du haut?
Nous avons imprimé sept espaces et deux tables de hachage.
Ainsi, le nombre de places que nous voulons est la ligne qui était sur moins 1.
>> Si la première ligne est de 8, 8 moins 1 nous donne sept places.
Ensuite, nous avons une boucle qui permet d'imprimer sur chacun de l'espace à la fois.
Ainsi, lorsque les espaces sont 7, cette boucle sept fois, l'impression
sept espaces individuels.
>> Alors maintenant, nous devons imprimer ces hashes à la fin de la pyramide.
Donc, ici, nous devons calculer le nombre de tables de hachage.
Nous voyons que nous faisons hauteur rangée moins plus 2.
Alors, comment sommes-nous arrivés là?
>> Rappelez-vous que le sommet de la pyramide est la ligne 8, et la hauteur est de 8.
Et nous avons encore imprimé deux tables de hachage.
Donc, à tout le moins, 8 moins 8 plus 2 nous donne la bonne réponse.
Et puis examiner le fond de la pyramide, la ligne 1.
Hauteur moins rangée va nous donner 7, et alors plus 2 nous donne neuf hachage,
qui est précisément le nombre de tables de hachage que nous avons imprimé.
Donc, c'est la formule que nous voulons utiliser pour calculer le nombre
hache dans chaque rangée.
>> En utilisant ce numéro, nous avons alors une autre pour la boucle, très semblable à la
pour la boucle que nous avons utilisé pour les espaces, qui parcourt nombre de tables de hachage fois
l'impression d'un hachage unique à chaque fois.
Sur la rangée du haut, cela va le imprimer deux tables de hachage.
Sur la rangée du bas, cela va le imprimer neuf hachage.
Et de l'autre rangée imprime chaque nombre de tables de hachage entre les deux.
>> Et puis à la fin, nous devons imprimer notre nouvelle ligne pour aller à la prochaine
rangée dans la pyramide.
Enfin, nous devons imprimer la nouvelle ligne à la fin de la rangée afin d'
continuer à la prochaine rangée de la pyramide.
Et à la fin de notre programme, nous avons le retour 0.
>> Comme pour la spécification pset, le retour 0 n'est pas strictement nécessaire.
Mais cela ne signifie que le principal est fait.
Mon nom est Rob, et ce fut Mario.
>> [MUSIQUE JEU]