1 00:00:00,000 --> 00:00:09,250 2 00:00:09,250 --> 00:00:11,070 >> ZAMYLA CHAN: le saut de Let dans Mario. 3 00:00:11,070 --> 00:00:14,850 Mario est un programme où nous ferons notre propre, quoique primitive, version de 4 00:00:14,850 --> 00:00:17,760 un classique Super Mario Brothers fond de jeu. 5 00:00:17,760 --> 00:00:21,100 Pour ce problème ensemble, nous allons de recréer la demi-pyramide pour 6 00:00:21,100 --> 00:00:23,000 Mario de sauter sur. 7 00:00:23,000 --> 00:00:27,330 Notre programme sera interactif, de sorte qu'il demandera à l'utilisateur d'entrer un certain 8 00:00:27,330 --> 00:00:28,660 hauteur de la pyramide. 9 00:00:28,660 --> 00:00:32,920 Et le programme affichera un demi-pyramide de cette hauteur, où l' 10 00:00:32,920 --> 00:00:37,390 fond hachage gauche s'aligne sur le fond coin gauche de la borne 11 00:00:37,390 --> 00:00:39,710 la fenêtre de sortie. 12 00:00:39,710 --> 00:00:44,870 >> Brisons ce problème en deux parties, un, obtenez une entrée utilisateur, et deux, 13 00:00:44,870 --> 00:00:47,040 imprimer la pyramide. 14 00:00:47,040 --> 00:00:51,150 Rappelez-vous que si la fonction getInt permet de récupérer un entier, vous 15 00:00:51,150 --> 00:00:56,260 doivent s'assurer que cette entrée permet sens de votre programme, de sorte à 16 00:00:56,260 --> 00:00:59,690 Mario, il ne fera pas seulement un produit pour un nombre entier. 17 00:00:59,690 --> 00:01:03,440 Vous devez vous assurer que l'utilisateur entrées un entier qui est dans l' 18 00:01:03,440 --> 00:01:06,985 des bornes inférieures et supérieures de la pyramide que vous pouvez imprimer. 19 00:01:06,985 --> 00:01:12,300 Par cette spécification, ce n'est 0 et 23 inclusivement. 20 00:01:12,300 --> 00:01:16,410 Si l'utilisateur saisit une entières en dehors de nos limites acceptées, alors nous voulons 21 00:01:16,410 --> 00:01:20,840 pour inciter encore et encore jusqu'à ce que ils nous donnent un entier valide. 22 00:01:20,840 --> 00:01:25,990 >> Une façon d'assurer l'entrée d'utilisateur correct est en utilisant une boucle do-while, qui est 23 00:01:25,990 --> 00:01:28,100 très semblable à une boucle While. 24 00:01:28,100 --> 00:01:32,580 Le Do-While exécute le code à l'intérieur du corps une fois, puis vérifie 25 00:01:32,580 --> 00:01:35,270 si la condition est remplie ou non. 26 00:01:35,270 --> 00:01:38,830 Ceci est utile pour obtenir l'entrée d'utilisateur parce que vous savez que vous avez besoin 27 00:01:38,830 --> 00:01:41,805 pour inciter au moins une fois. 28 00:01:41,805 --> 00:01:45,940 Si la condition n'est pas remplie, le programme exécutera la ligne après 29 00:01:45,940 --> 00:01:47,270 votre boucle do-while. 30 00:01:47,270 --> 00:01:50,950 Si la condition est remplie, cependant, la boucle se répète. 31 00:01:50,950 --> 00:01:55,560 >> Une boucle do-while pour valider l'utilisateur entrée ressemblera à quelque chose comme ça. 32 00:01:55,560 --> 00:02:02,920 Je déclare une variable n, getInt, et répéter jusqu'à ce que n est valide. 33 00:02:02,920 --> 00:02:06,270 Rappelez-vous que lorsque vous déclarez votre variable, il doit le cas échéant 34 00:02:06,270 --> 00:02:08,449 portée, tout comme dans Scratch. 35 00:02:08,449 --> 00:02:12,510 Si je déclare n dans ma boucle do-while, le reste du programme ne sera pas 36 00:02:12,510 --> 00:02:13,750 mesure d'y accéder. 37 00:02:13,750 --> 00:02:16,100 Elle est limitée aux confins des accolades. 38 00:02:16,100 --> 00:02:19,010 39 00:02:19,010 --> 00:02:23,090 >> Très bien, alors maintenant que nous avons validé l'entrée de l'utilisateur, nous avons réellement besoin pour 40 00:02:23,090 --> 00:02:25,020 tirer de cette demi-pyramide. 41 00:02:25,020 --> 00:02:29,700 Il est constitué de caractères imprimés, de sorte Faisons un demi-pyramide dans un simple 42 00:02:29,700 --> 00:02:31,480 éditeur de texte. 43 00:02:31,480 --> 00:02:35,920 Si nous voulons faire une pyramide de style Mario de hauteur qui a aligné trois 44 00:02:35,920 --> 00:02:41,370 sur le côté gauche de notre fenêtre, puis nous devons taper deux hashes, cliquez sur Entrer, 45 00:02:41,370 --> 00:02:47,180 puis tapez trois tables de hachage, cliquez sur Entrée, puis tapez quatre. 46 00:02:47,180 --> 00:02:51,090 >> Mais dans ce problème ensemble, notre demi-pyramide doit être aligné à droite. 47 00:02:51,090 --> 00:02:55,550 Utilisation d'un clavier standard, comment pourrait vous modifiez ce fichier à déplacer hashes 48 00:02:55,550 --> 00:02:57,210 sur le côté droit? 49 00:02:57,210 --> 00:03:03,190 Je pourrais utiliser de soulignement, deux sur le rangée du haut et l'autre sur le second. 50 00:03:03,190 --> 00:03:07,690 Cela n'a pas l'air aussi beau, mais, si Nous allons remplacer le souligne avec 51 00:03:07,690 --> 00:03:12,450 espaces, et là nous avons une demi-pyramide hauteur de trois. 52 00:03:12,450 --> 00:03:16,330 >> Essayez de vous souvenir de cet éditeur de texte exemple que vous commencez à penser de nouveau à 53 00:03:16,330 --> 00:03:20,100 C. Essayons de comprendre certains genre de modèle que nous pouvons 54 00:03:20,100 --> 00:03:22,750 mettre dans une construction de boucle. 55 00:03:22,750 --> 00:03:27,570 Prenons un exemple hauteur, disons huit, et voyez si vous pouvez commencer à 56 00:03:27,570 --> 00:03:29,470 venir avec un motif. 57 00:03:29,470 --> 00:03:34,710 La première ligne aura sept places suivie de deux tables de hachage. 58 00:03:34,710 --> 00:03:40,090 La deuxième ligne aura six espaces et trois tables de hachage, et ainsi de suite jusqu'à ce que l' 59 00:03:40,090 --> 00:03:41,440 huitième rang. 60 00:03:41,440 --> 00:03:45,210 >> Mais comment voulez-vous représenter la n-ième ligne? 61 00:03:45,210 --> 00:03:48,170 Rappelez-vous que la convention de programmation est égal à zéro indexé. 62 00:03:48,170 --> 00:03:51,870 Cela signifie que vous commencez à compter à zéro, de sorte que la première ligne est techniquement 63 00:03:51,870 --> 00:03:57,110 numéro de ligne zéro avec deux trappes, rangée numéro un a trois tables de hachage, rangée 64 00:03:57,110 --> 00:04:01,860 numéro deux a quatre tables de hachage, donc la suite ce modèle pour une ligne 65 00:04:01,860 --> 00:04:05,800 nombre n, il existe n + 2 tables de hachage. 66 00:04:05,800 --> 00:04:09,270 Je m'en remets à vous, cependant, à trouver le motif pour les espaces. 67 00:04:09,270 --> 00:04:12,240 Rappelez-vous que votre modèle sera légèrement différente si vous choisissez d' 68 00:04:12,240 --> 00:04:16,649 commencer votre nombre de une et pas zéro. 69 00:04:16,649 --> 00:04:19,560 >> Maintenant, vous avez un modèle pour toute la ligne n abstrait. 70 00:04:19,560 --> 00:04:25,190 Vous savez combien de places à imprimer et combien de hachage, donc pour chaque ligne, qui 71 00:04:25,190 --> 00:04:26,270 nombre va changer. 72 00:04:26,270 --> 00:04:30,700 Mais le même processus d'impression caractère unique, un espace ou un 73 00:04:30,700 --> 00:04:33,200 hash, est répété. 74 00:04:33,200 --> 00:04:37,470 Donc, tout ce que vous avez à faire est à plusieurs reprises imprimer ce caractère pour le nombre de fois 75 00:04:37,470 --> 00:04:40,120 comme votre modèle détermine. 76 00:04:40,120 --> 00:04:42,522 >> Alors, comment pouvons-nous le répétons processus? 77 00:04:42,522 --> 00:04:45,160 Dans Scratch, nous avons utilisé le bloc de répétition. 78 00:04:45,160 --> 00:04:48,580 En C, nous allons utiliser une boucle. 79 00:04:48,580 --> 00:04:51,290 Regardons la syntaxe Pour des boucles. 80 00:04:51,290 --> 00:04:57,140 >> Chaque boucle For est composé de trois parties, une initialisation, une condition, 81 00:04:57,140 --> 00:04:58,592 et une mise à jour. 82 00:04:58,592 --> 00:05:01,550 Votre boucle For va initialiser une variable lorsque le premier 83 00:05:01,550 --> 00:05:02,960 entre dans la boucle For. 84 00:05:02,960 --> 00:05:07,100 Si la condition est remplie, le corps de la boucle ne sera exécutée. 85 00:05:07,100 --> 00:05:10,070 Ensuite, la mise à jour sera exécutée. 86 00:05:10,070 --> 00:05:13,630 >> Si la condition est toujours remplie, le boucle s'exécutera et mettre à jour et 87 00:05:13,630 --> 00:05:18,580 répéter aussi longtemps que votre état Prend la valeur true. 88 00:05:18,580 --> 00:05:21,450 Vous êtes condition doit finalement valoriser à faux, cependant, parce que 89 00:05:21,450 --> 00:05:24,490 Contrairement à Scratch, nous ne faisons pas avoir des boucles pour toujours. 90 00:05:24,490 --> 00:05:28,270 Votre programme doit se terminer par la suite. 91 00:05:28,270 --> 00:05:32,330 >> Voici un exemple d'une boucle for qui vous voudrez peut-être utiliser pour Mario. 92 00:05:32,330 --> 00:05:36,790 L'initialisation déclare un i entier avec la valeur 0. 93 00:05:36,790 --> 00:05:40,750 Tant que i est inférieure à la hauteur, le corps de la boucle et exécutera 94 00:05:40,750 --> 00:05:44,980 augmenter i par un et répéter jusqu'à ce que i est supérieur ou 95 00:05:44,980 --> 00:05:47,220 égale à la hauteur. 96 00:05:47,220 --> 00:05:49,140 >> Maintenant, ma boucle For est un indice zéro. 97 00:05:49,140 --> 00:05:52,270 Le Int i commence à zéro, pas un seul. 98 00:05:52,270 --> 00:05:55,320 Si j'ai choisi un, puis mon état serait doivent également être différent pour 99 00:05:55,320 --> 00:05:58,740 la boucle à exécuter l' même nombre de fois. 100 00:05:58,740 --> 00:06:03,490 Rappelez-vous ceci attentivement lorsque vous êtes choisissez votre initialisation et votre 101 00:06:03,490 --> 00:06:08,660 état, et de consulter ce tableau pour revérifier. 102 00:06:08,660 --> 00:06:13,430 >> Une des grandes choses au sujet de l'ordinateur la science, c'est qu'il ya tellement de nombreux 103 00:06:13,430 --> 00:06:15,490 façons d'exécuter les choses. 104 00:06:15,490 --> 00:06:19,450 Vous pouvez choisir si vous commencer à zéro ou un. 105 00:06:19,450 --> 00:06:22,380 Si vous ne souhaitez pas utiliser une boucle For, vous pouvez également utiliser une boucle while pour 106 00:06:22,380 --> 00:06:26,530 répéter des déclarations aussi longtemps que vous garder l'essence d'une boucle, 107 00:06:26,530 --> 00:06:31,430 l'initialisation, l'état et mise à jour. 108 00:06:31,430 --> 00:06:36,890 Une fois que nous figurons sur la boucle for nous ne sommes plus à l'aise, alors nous 109 00:06:36,890 --> 00:06:38,450 peut compléter Mario. 110 00:06:38,450 --> 00:06:41,540 >> Nous avons d'abord vérifié pour l'entrée de l'utilisateur et ensuite identifié un 111 00:06:41,540 --> 00:06:43,580 motif pour toute ligne n. 112 00:06:43,580 --> 00:06:49,990 Donc, pour chaque ligne de zéro à n moins 1 imprimera le nombre approprié de 113 00:06:49,990 --> 00:06:55,340 espaces, alors le nombre approprié de hashes selon notre modèle, et 114 00:06:55,340 --> 00:06:57,180 puis une nouvelle ligne. 115 00:06:57,180 --> 00:06:59,640 Avec cela, vous avez votre pyramide. 116 00:06:59,640 --> 00:07:02,630 Mon nom est Zamyla, et ce fut Mario. 117 00:07:02,630 --> 00:07:11,765