>> ZAMYLA CHAN: le saut de Let dans Mario.
Mario est un programme où nous ferons notre propre, quoique primitive, version de
un classique Super Mario Brothers fond de jeu.
Pour ce problème ensemble, nous allons de recréer la demi-pyramide pour
Mario de sauter sur.
Notre programme sera interactif, de sorte qu'il demandera à l'utilisateur d'entrer un certain
hauteur de la pyramide.
Et le programme affichera un demi-pyramide de cette hauteur, où l'
fond hachage gauche s'aligne sur le fond coin gauche de la borne
la fenêtre de sortie.
>> Brisons ce problème en deux parties, un, obtenez une entrée utilisateur, et deux,
imprimer la pyramide.
Rappelez-vous que si la fonction getInt permet de récupérer un entier, vous
doivent s'assurer que cette entrée permet sens de votre programme, de sorte à
Mario, il ne fera pas seulement un produit pour un nombre entier.
Vous devez vous assurer que l'utilisateur entrées un entier qui est dans l'
des bornes inférieures et supérieures de la pyramide que vous pouvez imprimer.
Par cette spécification, ce n'est 0 et 23 inclusivement.
Si l'utilisateur saisit une entières en dehors de nos limites acceptées, alors nous voulons
pour inciter encore et encore jusqu'à ce que ils nous donnent un entier valide.
>> Une façon d'assurer l'entrée d'utilisateur correct est en utilisant une boucle do-while, qui est
très semblable à une boucle While.
Le Do-While exécute le code à l'intérieur du corps une fois, puis vérifie
si la condition est remplie ou non.
Ceci est utile pour obtenir l'entrée d'utilisateur parce que vous savez que vous avez besoin
pour inciter au moins une fois.
Si la condition n'est pas remplie, le programme exécutera la ligne après
votre boucle do-while.
Si la condition est remplie, cependant, la boucle se répète.
>> Une boucle do-while pour valider l'utilisateur entrée ressemblera à quelque chose comme ça.
Je déclare une variable n, getInt, et répéter jusqu'à ce que n est valide.
Rappelez-vous que lorsque vous déclarez votre variable, il doit le cas échéant
portée, tout comme dans Scratch.
Si je déclare n dans ma boucle do-while, le reste du programme ne sera pas
mesure d'y accéder.
Elle est limitée aux confins des accolades.
>> Très bien, alors maintenant que nous avons validé l'entrée de l'utilisateur, nous avons réellement besoin pour
tirer de cette demi-pyramide.
Il est constitué de caractères imprimés, de sorte Faisons un demi-pyramide dans un simple
éditeur de texte.
Si nous voulons faire une pyramide de style Mario de hauteur qui a aligné trois
sur le côté gauche de notre fenêtre, puis nous devons taper deux hashes, cliquez sur Entrer,
puis tapez trois tables de hachage, cliquez sur Entrée, puis tapez quatre.
>> Mais dans ce problème ensemble, notre demi-pyramide doit être aligné à droite.
Utilisation d'un clavier standard, comment pourrait vous modifiez ce fichier à déplacer hashes
sur le côté droit?
Je pourrais utiliser de soulignement, deux sur le rangée du haut et l'autre sur le second.
Cela n'a pas l'air aussi beau, mais, si Nous allons remplacer le souligne avec
espaces, et là nous avons une demi-pyramide hauteur de trois.
>> Essayez de vous souvenir de cet éditeur de texte exemple que vous commencez à penser de nouveau à
C. Essayons de comprendre certains genre de modèle que nous pouvons
mettre dans une construction de boucle.
Prenons un exemple hauteur, disons huit, et voyez si vous pouvez commencer à
venir avec un motif.
La première ligne aura sept places suivie de deux tables de hachage.
La deuxième ligne aura six espaces et trois tables de hachage, et ainsi de suite jusqu'à ce que l'
huitième rang.
>> Mais comment voulez-vous représenter la n-ième ligne?
Rappelez-vous que la convention de programmation est égal à zéro indexé.
Cela signifie que vous commencez à compter à zéro, de sorte que la première ligne est techniquement
numéro de ligne zéro avec deux trappes, rangée numéro un a trois tables de hachage, rangée
numéro deux a quatre tables de hachage, donc la suite ce modèle pour une ligne
nombre n, il existe n + 2 tables de hachage.
Je m'en remets à vous, cependant, à trouver le motif pour les espaces.
Rappelez-vous que votre modèle sera légèrement différente si vous choisissez d'
commencer votre nombre de une et pas zéro.
>> Maintenant, vous avez un modèle pour toute la ligne n abstrait.
Vous savez combien de places à imprimer et combien de hachage, donc pour chaque ligne, qui
nombre va changer.
Mais le même processus d'impression caractère unique, un espace ou un
hash, est répété.
Donc, tout ce que vous avez à faire est à plusieurs reprises imprimer ce caractère pour le nombre de fois
comme votre modèle détermine.
>> Alors, comment pouvons-nous le répétons processus?
Dans Scratch, nous avons utilisé le bloc de répétition.
En C, nous allons utiliser une boucle.
Regardons la syntaxe Pour des boucles.
>> Chaque boucle For est composé de trois parties, une initialisation, une condition,
et une mise à jour.
Votre boucle For va initialiser une variable lorsque le premier
entre dans la boucle For.
Si la condition est remplie, le corps de la boucle ne sera exécutée.
Ensuite, la mise à jour sera exécutée.
>> Si la condition est toujours remplie, le boucle s'exécutera et mettre à jour et
répéter aussi longtemps que votre état Prend la valeur true.
Vous êtes condition doit finalement valoriser à faux, cependant, parce que
Contrairement à Scratch, nous ne faisons pas avoir des boucles pour toujours.
Votre programme doit se terminer par la suite.
>> Voici un exemple d'une boucle for qui vous voudrez peut-être utiliser pour Mario.
L'initialisation déclare un i entier avec la valeur 0.
Tant que i est inférieure à la hauteur, le corps de la boucle et exécutera
augmenter i par un et répéter jusqu'à ce que i est supérieur ou
égale à la hauteur.
>> Maintenant, ma boucle For est un indice zéro.
Le Int i commence à zéro, pas un seul.
Si j'ai choisi un, puis mon état serait doivent également être différent pour
la boucle à exécuter l' même nombre de fois.
Rappelez-vous ceci attentivement lorsque vous êtes choisissez votre initialisation et votre
état, et de consulter ce tableau pour revérifier.
>> Une des grandes choses au sujet de l'ordinateur la science, c'est qu'il ya tellement de nombreux
façons d'exécuter les choses.
Vous pouvez choisir si vous commencer à zéro ou un.
Si vous ne souhaitez pas utiliser une boucle For, vous pouvez également utiliser une boucle while pour
répéter des déclarations aussi longtemps que vous garder l'essence d'une boucle,
l'initialisation, l'état et mise à jour.
Une fois que nous figurons sur la boucle for nous ne sommes plus à l'aise, alors nous
peut compléter Mario.
>> Nous avons d'abord vérifié pour l'entrée de l'utilisateur et ensuite identifié un
motif pour toute ligne n.
Donc, pour chaque ligne de zéro à n moins 1 imprimera le nombre approprié de
espaces, alors le nombre approprié de hashes selon notre modèle, et
puis une nouvelle ligne.
Avec cela, vous avez votre pyramide.
Mon nom est Zamyla, et ce fut Mario.