1 00:00:08,280 --> 00:00:09,020 [Powered by Google Translate] ZAMYLA CHAN: Très bien, tout le monde. 2 00:00:09,020 --> 00:00:11,130 Bienvenue sur Procédure pas à pas 1. 3 00:00:11,130 --> 00:00:13,950 Ce sera Procédure pas à pas sur pset 1, qui est C. J'espère que vous 4 00:00:13,950 --> 00:00:16,540 tous se sont amusés avec vos projets Scratch. 5 00:00:16,540 --> 00:00:18,430 Alors maintenant, dans cette procédure pas à pas, nous allons en fait être 6 00:00:18,430 --> 00:00:21,580 capable de pénétrer dans C, entrer dans l'écriture de code machine. 7 00:00:21,580 --> 00:00:24,750 Donc, si vous n'étiez pas à Procédure pas à pas 0, alors ces 8 00:00:24,750 --> 00:00:26,330 - nous sommes des soluces vraiment aller à pied à travers la 9 00:00:26,330 --> 00:00:29,500 ensemble de problèmes, parlez-en à travers quelques conseils et techniques communs 10 00:00:29,500 --> 00:00:30,430 que vous pouvez utiliser. 11 00:00:30,430 --> 00:00:32,960 Nous allons faire une pause l'affectation des piqûres en gérables, de sorte que 12 00:00:32,960 --> 00:00:35,500 vous avez peut commencer et nous espérons 13 00:00:35,500 --> 00:00:37,470 comprendre comment le faire. 14 00:00:37,470 --> 00:00:38,050 >> D'accord. 15 00:00:38,050 --> 00:00:42,280 Donc pset 1. 16 00:00:42,280 --> 00:00:46,200 Le psets cette année aura une structure où le premier - 17 00:00:46,200 --> 00:00:48,930 il va y avoir une section de questions, une série de 18 00:00:48,930 --> 00:00:51,120 questions qui seront vraiment aussi vous aider à démarrer avec 19 00:00:51,120 --> 00:00:53,840 le pset, vous aider à pratiquer certaines techniques dont vous avez besoin. 20 00:00:53,840 --> 00:00:55,950 Et donc ces questions, je ne vais pas à couvrir dans le 21 00:00:55,950 --> 00:00:59,630 procédure pas à pas, car dans votre article, votre enseignant affecté 22 00:00:59,630 --> 00:01:01,630 compatriotes qui se passe réellement à marcher à travers les 23 00:01:01,630 --> 00:01:02,620 questions avec vous. 24 00:01:02,620 --> 00:01:04,370 A la fin de votre article, vous repartez avec le 25 00:01:04,370 --> 00:01:07,200 réponses à ces questions, mais aussi avec la confiance que 26 00:01:07,200 --> 00:01:10,340 vous pouvez mettre en œuvre certaines des fonctionnalités dont vous aurez besoin 27 00:01:10,340 --> 00:01:12,480 pour les dernières parties du pset. 28 00:01:12,480 --> 00:01:15,900 >> Pset 1 constitue Mario. 29 00:01:15,900 --> 00:01:19,000 Et c'est un programme peu de plaisir, où nous avons essentiellement 30 00:01:19,000 --> 00:01:24,360 écrire et imprimer une moitié dans la pyramide scène typique Mario. 31 00:01:24,360 --> 00:01:27,150 Et puis la deuxième partie de la pset est appelée Greedy. 32 00:01:27,150 --> 00:01:29,850 Et si nous en Greedy agissent essentiellement comme un gourmand 33 00:01:29,850 --> 00:01:32,780 caissier, où, si quelqu'un nous donne une somme d'argent 34 00:01:32,780 --> 00:01:38,730 que nous voulons, nous calculons le montant minimum de pièces de monnaie que 35 00:01:38,730 --> 00:01:40,840 nous pouvons revenir à eux pour leur donner encore ce montant. 36 00:01:44,080 --> 00:01:44,420 >> Très bien. 37 00:01:44,420 --> 00:01:46,970 Ainsi, chaque procédure pas à pas aura une boîte à outils. 38 00:01:46,970 --> 00:01:50,650 Et encore une fois, vous ne pourriez pas utiliser tous les outils dans ce 39 00:01:50,650 --> 00:01:53,080 boîte à outils ou vous pouvez utiliser chacun d'entre eux. 40 00:01:53,080 --> 00:01:54,550 En tout cas, c'est vraiment bon de savoir ce 41 00:01:54,550 --> 00:01:55,680 vous êtes équipé. 42 00:01:55,680 --> 00:01:59,990 Nous avons donc l'appareil CS50, que je vais vous montrer les gars et 43 00:01:59,990 --> 00:02:01,350 vous présenter à cela. 44 00:02:01,350 --> 00:02:05,710 Puis aussi, en général, un bon style est certainement l'un de nos 45 00:02:05,710 --> 00:02:07,080 outils les plus importants. 46 00:02:07,080 --> 00:02:10,759 Style de porte essentiellement sur la façon lisible est votre code? 47 00:02:10,759 --> 00:02:12,750 Quand quelqu'un d'autre va et lit votre code, ont-ils 48 00:02:12,750 --> 00:02:13,610 un temps facile? 49 00:02:13,610 --> 00:02:14,630 Peuvent-ils le comprendre? 50 00:02:14,630 --> 00:02:16,610 Est-il élégant? 51 00:02:16,610 --> 00:02:21,750 Ensuite, nous allons parler de la façon d'obtenir les commentaires d'utilisateur valide dans votre 52 00:02:21,750 --> 00:02:26,430 programme en raison à la fois Mario et gourmande, vous aurez besoin d' 53 00:02:26,430 --> 00:02:31,660 demander à l'utilisateur d'entrer et de vous donner une sorte de numéro. 54 00:02:31,660 --> 00:02:35,480 Alors que nous voulons faire en sorte que le numéro est valide. 55 00:02:35,480 --> 00:02:39,010 Alors souvenez-vous de Scratch, nous avons eu des blocs tels que répétition, 56 00:02:39,010 --> 00:02:42,300 Répéter jusqu'à, ou attendre, ou Forever. 57 00:02:42,300 --> 00:02:45,880 Donc, nous allons type de traduire cela en maintenant et C 58 00:02:45,880 --> 00:02:49,750 regarder des boucles comme for, while et do-while. 59 00:02:49,750 --> 00:02:54,330 Puis, aussi nous devons aussi afficher les valeurs de retour sur le 60 00:02:54,330 --> 00:02:56,500 écran, que ce soit dans Mario ou dans Greedy. 61 00:02:56,500 --> 00:03:01,150 Et donc nous allons parler de la façon dont nous imprimer des choses à partir de chaînes de 62 00:03:01,150 --> 00:03:03,070 nombres entiers et décimaux. 63 00:03:03,070 --> 00:03:05,250 Et puis enfin, nous allons parler de pseudo-code, un très 64 00:03:05,250 --> 00:03:07,550 concept important de se rappeler tout au long de ce cours. 65 00:03:07,550 --> 00:03:11,130 Ce que je trouve m'aide avec la plupart des ensembles de problèmes, c'est de penser et de 66 00:03:11,130 --> 00:03:14,260 décrire ce que je veux faire avant de penser à toute C. 67 00:03:14,260 --> 00:03:15,640 Mais juste décrire l'action. 68 00:03:15,640 --> 00:03:19,100 Donc, est une sorte de pseudo-code entre Français et C, le type de 69 00:03:19,100 --> 00:03:22,980 décrivant les processus sans la syntaxe correcte mais 70 00:03:22,980 --> 00:03:24,490 fournir une structure assez bon. 71 00:03:24,490 --> 00:03:27,460 Et donc je vais avoir quelques exemples de pseudo-code pour vous aussi 72 00:03:27,460 --> 00:03:28,710 dans cette procédure. 73 00:03:31,610 --> 00:03:31,940 >> D'accord. 74 00:03:31,940 --> 00:03:35,620 Donc, ce que nous allons travailler avec le CS50 Appliance. 75 00:03:35,620 --> 00:03:38,840 Il s'agit essentiellement d'une machine virtuelle qui exécute une sorte de 76 00:03:38,840 --> 00:03:40,780 ordinateur à l'intérieur de votre propre ordinateur. 77 00:03:40,780 --> 00:03:42,080 Et cela a beaucoup d'avantages. 78 00:03:42,080 --> 00:03:44,780 La première est que c'est préréglées avec un grand nombre des outils que vous 79 00:03:44,780 --> 00:03:45,980 besoin pour CS50. 80 00:03:45,980 --> 00:03:47,940 De plus, cela signifie que tout le monde est sur le même terrain, 81 00:03:47,940 --> 00:03:50,800 qu'il s'agisse de Mac ou d'un PC ou d'un autre système d'exploitation. 82 00:03:50,800 --> 00:03:53,930 Nous pouvons tous faire fonctionner la machine virtuelle. 83 00:03:53,930 --> 00:03:58,800 Et si il ya des instructions à manual.cs50.net/appliance. 84 00:03:58,800 --> 00:04:02,740 Et donc si vous allez sur ce lien et suivez les instructions, 85 00:04:02,740 --> 00:04:07,820 alors j'espère que vous serez en mesure d'installer l'appareil. 86 00:04:07,820 --> 00:04:11,390 >> Alors d'abord, vous aurez besoin d'installer une application, une 87 00:04:11,390 --> 00:04:13,760 demande réelle pour être en mesure d'exécuter la machine virtuelle. 88 00:04:13,760 --> 00:04:15,270 Et puis vous téléchargez l'appareil. 89 00:04:15,270 --> 00:04:18,050 Mais encore une fois, il ya des instructions à 90 00:04:18,050 --> 00:04:21,459 manual.cs50.net/appliance. 91 00:04:21,459 --> 00:04:26,040 Donc, j'ai déjà téléchargé mon appareil, et j'ai installé 92 00:04:26,040 --> 00:04:28,060 il dans VMware Fusion. 93 00:04:28,060 --> 00:04:31,250 Et donc une fois que j'ai téléchargé l'appareil, je suis allé dans un fichier. 94 00:04:31,250 --> 00:04:34,690 Je suis allé sur Ouvrir, puis trouvé où je 95 00:04:34,690 --> 00:04:37,550 stockées Appliance CS50. 96 00:04:37,550 --> 00:04:39,310 Et à partir de là, je l'ai couru ici. 97 00:04:39,310 --> 00:04:44,520 Mais je l'ai déjà en place ici, nous allons donc regarder de plus près. 98 00:04:44,520 --> 00:04:44,850 >> Très bien. 99 00:04:44,850 --> 00:04:46,770 Alors maintenant, nous sommes à l'intérieur CS50 Appliance. 100 00:04:46,770 --> 00:04:47,890 Je l'ai fait plein écran. 101 00:04:47,890 --> 00:04:51,130 Vous pouvez choisir de le faire si vous le souhaitez ou tout simplement comme un 102 00:04:51,130 --> 00:04:53,480 petite fenêtre sur votre bureau. 103 00:04:53,480 --> 00:04:57,170 Ici, nous avons juste un bureau simple avec 104 00:04:57,170 --> 00:04:58,220 une maison et une poubelle. 105 00:04:58,220 --> 00:05:05,070 Mais si vous allez à Menu, puis à la programmation, alors vous voyez 106 00:05:05,070 --> 00:05:07,570 que nous avons quelque chose appelé Terminal. 107 00:05:07,570 --> 00:05:12,340 Et donc ici, nous pouvons naviguer sur notre ordinateur. 108 00:05:12,340 --> 00:05:13,360 Nous pouvons écrire du code. 109 00:05:13,360 --> 00:05:17,240 Mais en fait, nous allons utiliser un programme appelé gedit, ou «g 110 00:05:17,240 --> 00:05:20,050 modifier ", celui qui est. 111 00:05:20,050 --> 00:05:21,680 Nous allons donc utiliser que l'une d'écrire du code. 112 00:05:21,680 --> 00:05:24,850 Donc vous avez ces deux outils que vous allez utiliser principalement 113 00:05:24,850 --> 00:05:27,590 d'écrire du code. 114 00:05:27,590 --> 00:05:31,240 Puis en plus, c'est comme un ordinateur ordinaire. 115 00:05:31,240 --> 00:05:32,890 Nous disposons d'un navigateur. 116 00:05:32,890 --> 00:05:34,400 Nous avons choisi Google Chrome. 117 00:05:34,400 --> 00:05:38,720 Ce que j'ai fait est que j'ai mis en place un Dropbox pour contenir tous 118 00:05:38,720 --> 00:05:39,340 les documents. 119 00:05:39,340 --> 00:05:41,760 Et donc c'est quelque chose qui est fortement encouragée. 120 00:05:41,760 --> 00:05:44,900 Dropbox utilise nuage de synchronisation et donc si - 121 00:05:44,900 --> 00:05:47,250 ainsi par exemple, quelque chose par hasard - espérons que non - 122 00:05:47,250 --> 00:05:50,100 qui arrive à votre appareil, puis tout sera 123 00:05:50,100 --> 00:05:51,350 synchronisé sur le nuage. 124 00:05:54,716 --> 00:05:55,180 >> Très bien. 125 00:05:55,180 --> 00:05:59,500 Donc, ce sont les applications que vous allez utiliser dans le 126 00:05:59,500 --> 00:06:02,900 CS50 Appliance. 127 00:06:02,900 --> 00:06:05,750 Maintenant, pour naviguer autour de la ligne de commande. 128 00:06:05,750 --> 00:06:10,150 Le terminal peut effectivement agir comme une sorte de moyen de réellement 129 00:06:10,150 --> 00:06:12,040 taper des commandes en - 130 00:06:12,040 --> 00:06:13,650 aimez, si vous êtes un Mac, un Finder. 131 00:06:13,650 --> 00:06:17,010 Ou si vous êtes sous Windows, je crois que c'est "explorer mon 132 00:06:17,010 --> 00:06:19,070 ordinateur "ou quelque chose comme ça. 133 00:06:19,070 --> 00:06:23,160 Donc, si nous revenons à l'appareil, nous allons ouvrir un 134 00:06:23,160 --> 00:06:25,710 fenêtre de terminal. 135 00:06:25,710 --> 00:06:27,720 Ainsi, il a cette invite, jharvard @ appareil. 136 00:06:27,720 --> 00:06:32,950 Disons simplement que cette plus grande. 137 00:06:32,950 --> 00:06:33,790 D'accord. 138 00:06:33,790 --> 00:06:40,400 Donc, si on tape la commande ls, alors que la liste de tous les 139 00:06:40,400 --> 00:06:45,440 fichiers de notre ordinateur, dans notre répertoire courant. 140 00:06:45,440 --> 00:06:46,720 Les répertoires sont juste comme des dossiers. 141 00:06:46,720 --> 00:06:49,310 Nous utilisons ces termes de façon interchangeable. 142 00:06:49,310 --> 00:06:52,480 D'accord, donc nous avons listé les fichiers 143 00:06:52,480 --> 00:06:53,650 qui sont dans ce répertoire. 144 00:06:53,650 --> 00:06:58,340 Maintenant, si nous voulons accéder à, disons, notre Dropbox, alors nous pouvons 145 00:06:58,340 --> 00:06:59,320 changer de répertoire. 146 00:06:59,320 --> 00:07:04,230 Donc cd puis Dropbox. 147 00:07:04,230 --> 00:07:10,860 Nous ls nouveau, et puis on voit la liste des fichiers qui se trouvent dans 148 00:07:10,860 --> 00:07:11,790 ce dossier. 149 00:07:11,790 --> 00:07:15,590 Ceci est analogue à moi allons chez moi, puis en cliquant sur 150 00:07:15,590 --> 00:07:19,250 Dropbox, et puis voir la liste ici. 151 00:07:19,250 --> 00:07:20,090 >> Très bien. 152 00:07:20,090 --> 00:07:22,220 Donc, disons - 153 00:07:22,220 --> 00:07:25,640 quand vous les gars vont faire de votre pset 1, nous allons faire une 154 00:07:25,640 --> 00:07:27,390 répertoire appelé pset1. 155 00:07:27,390 --> 00:07:32,170 Nous sommes donc dans Dropbox en ce moment, comme vous pouvez le voir sur cette 156 00:07:32,170 --> 00:07:32,700 invite ici. 157 00:07:32,700 --> 00:07:34,320 Donc, nous allons créer un répertoire. 158 00:07:34,320 --> 00:07:37,940 Donc, mkdir, appelons-le pset1. 159 00:07:40,470 --> 00:07:43,500 Et maintenant si nous ls nouveau, alors nous 160 00:07:43,500 --> 00:07:45,390 voir que pset1 apparaît. 161 00:07:45,390 --> 00:07:49,470 Et donc, si nous voulons aller à l'intérieur pset1, alors nous pouvons aller à l'intérieur 162 00:07:49,470 --> 00:07:54,230 ce dossier avec la commande cd. 163 00:07:54,230 --> 00:07:54,610 Très bien. 164 00:07:54,610 --> 00:07:59,040 Encore une fois, nous allons voir si nous - 165 00:07:59,040 --> 00:08:01,620 dire, faisons-le d'une autre manière. 166 00:08:01,620 --> 00:08:03,550 Ceci est analogue à simplement dire «Créer 167 00:08:03,550 --> 00:08:05,330 un nouveau dossier, pset1. 168 00:08:05,330 --> 00:08:08,530 Mais comme vous le trouvez, vous serez en interaction avec 169 00:08:08,530 --> 00:08:09,310 la borne beaucoup. 170 00:08:09,310 --> 00:08:11,900 Alors parfois, il est beaucoup plus facile, plus rapide à une perte de juste 171 00:08:11,900 --> 00:08:15,900 travailler dans la borne à faire ce genre de choses. 172 00:08:15,900 --> 00:08:16,140 D'accord. 173 00:08:16,140 --> 00:08:18,150 Et puis ces autres commandes. 174 00:08:18,150 --> 00:08:20,410 Il ya un rm pour supprimer un fichier. 175 00:08:20,410 --> 00:08:22,690 Donc, il vous suffit de taper rm, puis le nom de la 176 00:08:22,690 --> 00:08:23,800 déposer le supprimer. 177 00:08:23,800 --> 00:08:25,810 Nous allons passer à quelques exemples de cela plus tard. 178 00:08:25,810 --> 00:08:28,840 Et puis, nous avons ce qu'on appelle la commande man, qui 179 00:08:28,840 --> 00:08:31,850 fait apparaître un pilote pour un type de fonction. 180 00:08:31,850 --> 00:08:34,419 Encore une fois, je vais donner un exemple réel de cela plus tard. 181 00:08:37,360 --> 00:08:39,900 >> Donc, un autre outil très important, comme je l'ai mentionné brièvement 182 00:08:39,900 --> 00:08:41,280 avant, c'est le style. 183 00:08:41,280 --> 00:08:43,650 Donc, essentiellement, le style a à voir avec la lisibilité. 184 00:08:43,650 --> 00:08:46,460 Est-ce que quelqu'un d'autre pourra lire, à suivre et 185 00:08:46,460 --> 00:08:47,670 comprendre votre code? 186 00:08:47,670 --> 00:08:50,490 Ceci est particulièrement important pour vous, vous-même, en fait. 187 00:08:50,490 --> 00:08:53,060 Si vous restez jusqu'à la fin de codage, puis plus tard vous 188 00:08:53,060 --> 00:08:55,940 revenir en arrière et vous êtes comme, qu'est-ce que cela signifie variable? 189 00:08:55,940 --> 00:08:58,400 Dites, vous travaillez sur un projet de groupe avec quelqu'un, et vous 190 00:08:58,400 --> 00:09:00,130 à la fois de regarder de l'autre code. 191 00:09:00,130 --> 00:09:03,380 Il est vraiment important que vous nommer vos variables correctement 192 00:09:03,380 --> 00:09:06,240 et lui donner l'air sympa car cela fait toute la différence. 193 00:09:06,240 --> 00:09:08,270 Mais par-dessus tout, nous sommes dans un cours en ce moment. 194 00:09:08,270 --> 00:09:10,660 Donc, pour l'intérêt de la CS50 et surtout pour votre 195 00:09:10,660 --> 00:09:13,010 boursiers d'enseignement et niveleuses qui chercheront à votre 196 00:09:13,010 --> 00:09:15,455 psets, s'il vous plaît, s'il vous plaît utiliser le style correct. 197 00:09:15,455 --> 00:09:18,980 Et vos compagnons d'enseignement seront très heureux. 198 00:09:18,980 --> 00:09:22,890 Encore une fois, le style consiste à indenter les choses correctement, 199 00:09:22,890 --> 00:09:26,380 en particulier en utilisant vos accolades et l'indentation ceux-ci. 200 00:09:26,380 --> 00:09:29,910 Nommer les variables quelque chose qui a du sens. 201 00:09:29,910 --> 00:09:32,330 À l'heure actuelle, nous suivons la convention lorsque vous avez 202 00:09:32,330 --> 00:09:35,240 plusieurs mots dans le nom de votre variable, alors vous 203 00:09:35,240 --> 00:09:37,480 les relier par un trait de soulignement, comme vous le voyez dans ce 204 00:09:37,480 --> 00:09:39,660 nommer par exemple là-bas. 205 00:09:39,660 --> 00:09:41,740 >> Puis, finalement, quelque chose qui s'appelle nombres magiques. 206 00:09:41,740 --> 00:09:48,030 Essentiellement, quand vous lisez dans le code et de dire 207 00:09:48,030 --> 00:09:51,570 vous avez une variable - 208 00:09:51,570 --> 00:09:56,680 par exemple, vous n'avez pas une variable mais juste dire ok, jusqu'à ce 209 00:09:56,680 --> 00:09:58,600 et est de moins de 10. 210 00:09:58,600 --> 00:10:00,210 Ensuite, votre niveleuse va aller bien, attendez, 211 00:10:00,210 --> 00:10:01,320 d'où vient que 10 vient-il? 212 00:10:01,320 --> 00:10:05,040 Alors, vraiment expliquer vous-même importe beaucoup. 213 00:10:05,040 --> 00:10:06,740 Pour vous aider à vous expliquer, c'est de commentaires. 214 00:10:06,740 --> 00:10:09,850 Les commentaires ne sont probablement la chose la plus importante à inclure dans 215 00:10:09,850 --> 00:10:11,460 vos programmes. 216 00:10:11,460 --> 00:10:15,440 Et il vous aide non seulement expliquer réellement - 217 00:10:15,440 --> 00:10:17,220 il vous aide genre d'expliquer votre raisonnement 218 00:10:17,220 --> 00:10:17,870 vous allez le long. 219 00:10:17,870 --> 00:10:20,480 Et si vous faites cela, encore une fois, ça va être beaucoup plus facile 220 00:10:20,480 --> 00:10:23,370 de retourner dans votre code et le type de comprendre ce que vous êtes 221 00:10:23,370 --> 00:10:24,080 faisait là. 222 00:10:24,080 --> 00:10:26,410 Encore une fois, les élèves de vraiment observations. 223 00:10:26,410 --> 00:10:28,940 Donc, pensez-vous bien et - 224 00:10:28,940 --> 00:10:29,970 un peu comme des points gratuits. 225 00:10:29,970 --> 00:10:32,340 Et qui n'aime pas les points gratuits? 226 00:10:32,340 --> 00:10:33,910 Vous pouvez aussi avoir plusieurs lignes de commentaires. 227 00:10:33,910 --> 00:10:36,630 Et donc j'ai inclus une sorte de modèle ici. 228 00:10:36,630 --> 00:10:38,580 Essentiellement, le plus souvent ceux-ci sont utilisés dans la partie supérieure de votre 229 00:10:38,580 --> 00:10:40,950 programme pour expliquer sorte de façon générale, ce 230 00:10:40,950 --> 00:10:43,220 votre problème posé fait. 231 00:10:43,220 --> 00:10:46,130 Indiquez votre nom, la date, etc. 232 00:10:46,130 --> 00:10:49,030 Et si, comme je le disais dans ce commentaire multi-ligne, 233 00:10:49,030 --> 00:10:56,260 manual.cs50.net/style_guide a d'autres conseils et les règles relatives 234 00:10:56,260 --> 00:10:59,310 style de boucles, etc. 235 00:10:59,310 --> 00:10:59,740 >> D'accord. 236 00:10:59,740 --> 00:11:03,600 Alors, maintenant que je vous ai dit un peu plus sur le style, nous allons voir 237 00:11:03,600 --> 00:11:07,390 cette action en. 238 00:11:07,390 --> 00:11:07,770 Très bien. 239 00:11:07,770 --> 00:11:11,850 Donc, ici, Tommy a écrit pour nous une délicieuse horreur 240 00:11:11,850 --> 00:11:15,440 exemple de style dans un programme. 241 00:11:15,440 --> 00:11:17,170 Donc, vous voyez ici, d'accord. 242 00:11:17,170 --> 00:11:18,280 C'est en fait très bien. 243 00:11:18,280 --> 00:11:22,060 Vous voyez le commentaire multi-ligne ici. 244 00:11:22,060 --> 00:11:25,120 Vous pouvez le démarrer par une barre oblique, puis deux astérisques. 245 00:11:25,120 --> 00:11:28,580 Vous continuez le long, en alignant les astérisques long de la ligne 246 00:11:28,580 --> 00:11:30,540 puis terminer par un astérisque et une barre oblique. 247 00:11:30,540 --> 00:11:30,810 Très bien. 248 00:11:30,810 --> 00:11:32,800 Donc, c'est très bien. 249 00:11:32,800 --> 00:11:33,760 Cette voici bien. 250 00:11:33,760 --> 00:11:35,110 Il est notamment ses bibliothèques. 251 00:11:35,110 --> 00:11:38,790 Mais ici, il a des commentaires sur plusieurs lignes. 252 00:11:38,790 --> 00:11:40,390 Il ya beaucoup de choses fausses à ce sujet. 253 00:11:40,390 --> 00:11:44,770 Commentaires sur plusieurs lignes, ici il utilise 254 00:11:44,770 --> 00:11:47,230 la syntaxe pour les commentaires en ligne simplement unique. 255 00:11:47,230 --> 00:11:53,140 Il a aussi mêlant tout dans le même commentaire. 256 00:11:53,140 --> 00:11:54,715 Donc, nous voulons éviter cela. 257 00:11:57,710 --> 00:12:03,010 Ensuite, nous voyons ici que ces accolades, par exemple, sont tous 258 00:12:03,010 --> 00:12:03,730 sur la place. 259 00:12:03,730 --> 00:12:06,950 L'indentation est erroné. 260 00:12:06,950 --> 00:12:09,460 Il n'a pas vraiment vous montrer quelque chose de définitivement où 261 00:12:09,460 --> 00:12:12,850 départs et une autre chose se termine. 262 00:12:12,850 --> 00:12:16,510 Puis aussi, nous voyons qu'il a une variable définie i = 5 ici. 263 00:12:16,510 --> 00:12:18,620 Mais alors, ce quatre sort de nulle part, et il n'y a pas de 264 00:12:18,620 --> 00:12:21,520 d'observation à vraiment expliquer d'où ça vient. 265 00:12:21,520 --> 00:12:22,130 >> D'accord. 266 00:12:22,130 --> 00:12:28,760 Alors maintenant, regardons quelque chose qui est en fait exactement la même chose 267 00:12:28,760 --> 00:12:30,250 code, sauf avec un meilleur style. 268 00:12:30,250 --> 00:12:32,485 Encore une fois, c'est l'exemple bon style, 269 00:12:32,485 --> 00:12:33,735 l'exemple de plusieurs lignes. 270 00:12:38,400 --> 00:12:39,735 Et puis ici, c'est tout à fait propre. 271 00:12:39,735 --> 00:12:43,500 On voit qu'il commence une instruction if ici, entre dans une nouvelle 272 00:12:43,500 --> 00:12:46,400 ligne, a une accolade ouvrante. 273 00:12:46,400 --> 00:12:48,740 Puis il présente une échancrure. 274 00:12:48,740 --> 00:12:50,970 Il garde cette empreinte - 275 00:12:50,970 --> 00:12:54,680 il garde cette indication uniforme sur l'ensemble 276 00:12:54,680 --> 00:12:59,120 programme et montre vraiment quand un bloc de code commence, quand 277 00:12:59,120 --> 00:13:00,780 un bloc de code se termine. 278 00:13:00,780 --> 00:13:04,410 Cela peut sembler un peu pinailler sur notre part de commencer à 279 00:13:04,410 --> 00:13:06,370 avec, mais vous verrez que vous écrivez votre code. 280 00:13:06,370 --> 00:13:09,400 Il est très utile d'être en mesure de séparer cela. 281 00:13:09,400 --> 00:13:12,200 Et encore une fois, vos élèves aiment vraiment ça. 282 00:13:12,200 --> 00:13:14,360 Et ainsi vous voyez, au lieu de simplement mettre un certain nombre de 283 00:13:14,360 --> 00:13:17,510 là, il a effectivement appelé les itérations variables. 284 00:13:17,510 --> 00:13:20,160 Et si nous ne sommes pas actuellement à la recherche de ce code en ce moment 285 00:13:20,160 --> 00:13:22,450 mais juste un peu de voir un exemple de 286 00:13:22,450 --> 00:13:23,780 un style bien contre le mal. 287 00:13:23,780 --> 00:13:29,610 Et si vous les regardez à côté ici, vous le feriez 288 00:13:29,610 --> 00:13:32,910 certainement préfèrent lire celui sur la droite. 289 00:13:39,230 --> 00:13:40,100 >> Très bien. 290 00:13:40,100 --> 00:13:42,710 Alors une dernière chose avant que nous plonger dans la vraie viande de l' 291 00:13:42,710 --> 00:13:46,260 pset est de savoir comment compiler et exécuter votre code. 292 00:13:46,260 --> 00:13:50,320 Et si essentiellement lorsque vous écrivez C, qui n'est en fait pas 293 00:13:50,320 --> 00:13:52,480 traduit en code machine réelle, les zéros et 294 00:13:52,480 --> 00:13:56,000 ceux que la machine peut effectivement lire et interpréter. 295 00:13:56,000 --> 00:13:57,170 Donc, nous avons quelque chose - 296 00:13:57,170 --> 00:13:59,340 Clang est un compilateur que nous utilisons pour C. 297 00:13:59,340 --> 00:14:00,270 Il existe de nombreux compilateurs. 298 00:14:00,270 --> 00:14:02,480 Mais en CS50, nous allons utiliser Clang. 299 00:14:02,480 --> 00:14:05,480 Et si Clang se traduit essentiellement de C à la machine 300 00:14:05,480 --> 00:14:07,380 code pour vous. 301 00:14:07,380 --> 00:14:10,170 Alors penchons-nous sur un exemple - plongez dans l'appareil ici. 302 00:14:14,550 --> 00:14:15,030 Très bien. 303 00:14:15,030 --> 00:14:16,670 Alors maintenant que nous sommes dans notre répertoire personnel. 304 00:14:16,670 --> 00:14:18,680 En fait, nous ne sommes pas où tout code. 305 00:14:18,680 --> 00:14:24,740 Donc, nous allons changer notre annuaire de Dropbox/walkthrough1, où 306 00:14:24,740 --> 00:14:25,930 J'ai un peu de code stocké. 307 00:14:25,930 --> 00:14:29,340 Donc, si nous appuyer sur ls, alors nous voyons que j'ai une 308 00:14:29,340 --> 00:14:31,230 quelques fichiers ici. 309 00:14:31,230 --> 00:14:31,700 >> Très bien. 310 00:14:31,700 --> 00:14:35,280 Donc je l'ai déjà écrit hello.c, nous allons donc le compiler 311 00:14:35,280 --> 00:14:36,670 et puis voir ce qu'il fait. 312 00:14:36,670 --> 00:14:43,150 Ainsi, une commande de compilation de base serait alors clang hello.c, 313 00:14:43,150 --> 00:14:46,910 dit essentiellement d'accord, compiler hello.c pour moi. 314 00:14:46,910 --> 00:14:50,550 Je clique sur Enter, semble avoir été bonne. 315 00:14:50,550 --> 00:14:52,590 Cliquons ls nouveau. 316 00:14:52,590 --> 00:14:55,230 Ce fichier a.out a maintenant montré. 317 00:14:55,230 --> 00:14:57,430 Et si a.out est un fichier exécutable. 318 00:14:57,430 --> 00:15:05,330 Donc, pour l'exécuter, vous faites un. / A.out. 319 00:15:05,330 --> 00:15:07,650 Et ainsi, nous voyons que ce programme hello.c apparemment 320 00:15:07,650 --> 00:15:10,400 imprime hello cinq fois. 321 00:15:10,400 --> 00:15:10,990 Très bien. 322 00:15:10,990 --> 00:15:14,250 Mais disons que nous ne voulons pas utiliser le nom a.out. 323 00:15:18,140 --> 00:15:21,080 Par exemple, nous voulons exécuter le programme bonjour parce que 324 00:15:21,080 --> 00:15:22,540 il est plus facile à comprendre. 325 00:15:22,540 --> 00:15:26,590 Donc, disons que hello.c clang, et alors essentiellement vous avez besoin 326 00:15:26,590 --> 00:15:29,030 de passer dans des éléments appelés drapeaux. 327 00:15:29,030 --> 00:15:31,600 Ainsi disant, d'accord, je veux bien de nommer ce quelque chose d'autre. 328 00:15:31,600 --> 00:15:33,900 Vous pouvez également passer dans un grand nombre de drapeaux différents, 329 00:15:33,900 --> 00:15:34,620 que vous verrez. 330 00:15:34,620 --> 00:15:37,510 Ainsi, le drapeau pour nommer quelque chose du programme que vous 331 00:15:37,510 --> 00:15:39,780 veulent, c'est-o. 332 00:15:39,780 --> 00:15:42,470 Après-o, vous écrivez le nom du programme. 333 00:15:42,470 --> 00:15:44,090 Disons simplement l'appeler bonjour. 334 00:15:44,090 --> 00:15:49,050 >> Alors maintenant, nous voyons que nous avons en fait d'un fichier exécutable bonjour. 335 00:15:49,050 --> 00:15:54,020 Ainsi, nous pouvons l'exécuter, et il fait la même chose que précédemment. 336 00:15:54,020 --> 00:15:56,210 Alors, maintenant que nous avons bonjour, nous pouvons également supprimer, pour 337 00:15:56,210 --> 00:15:57,450 Par exemple, notre a.out. 338 00:15:57,450 --> 00:16:03,880 Donc rm pour supprimer, a.out, votre terminal vous invite, demandez 339 00:16:03,880 --> 00:16:05,470 pour vous permettre de confirmer si vous voulez vraiment 340 00:16:05,470 --> 00:16:06,370 supprimez-le ou non. 341 00:16:06,370 --> 00:16:10,000 Nous disons y pour oui. 342 00:16:10,000 --> 00:16:10,750 Et voilà. 343 00:16:10,750 --> 00:16:12,220 A.out a disparu. 344 00:16:12,220 --> 00:16:12,620 Très bien. 345 00:16:12,620 --> 00:16:14,810 Mais parfois, il devient confus de se rappeler tous les 346 00:16:14,810 --> 00:16:17,160 drapeaux que nous avons besoin d'inclure et de taper bruit. 347 00:16:17,160 --> 00:16:20,410 Et comme nous le voyons lorsque nous utilisons des programmes plus complexes, nous allons 348 00:16:20,410 --> 00:16:22,450 être, y compris les différentes bibliothèques. 349 00:16:22,450 --> 00:16:27,230 Et si nos commandes à Clang obtiendrez plus en plus longtemps. 350 00:16:27,230 --> 00:16:30,660 Ainsi inclus dans l'appliance CS50 est la commande make. 351 00:16:30,660 --> 00:16:33,880 Donc, il vous suffit de taper make bonjour. 352 00:16:33,880 --> 00:16:35,130 Oops. 353 00:16:36,860 --> 00:16:38,400 Nous avons déjà fait ce fichier exécutable. 354 00:16:38,400 --> 00:16:39,650 Alors laissez-moi juste l'enlever rapidement. 355 00:16:42,260 --> 00:16:44,830 Maintenant, nous allons taper make bonjour. 356 00:16:44,830 --> 00:16:49,470 Et vous voyez dans cette ligne là que dit essentiellement faire 357 00:16:49,470 --> 00:16:54,760 bonjour implique l'ensemble de ces commandes 358 00:16:54,760 --> 00:16:55,580 y entrer pour vous. 359 00:16:55,580 --> 00:16:58,080 >> Ainsi inclus dans l'appliance CS50 est le fichier make. 360 00:16:58,080 --> 00:17:02,300 Donc, tout simplement quand vous avez un name.c fichier, puis tout ce que vous faites 361 00:17:02,300 --> 00:17:03,680 est dire rendre le nom du fichier. 362 00:17:03,680 --> 00:17:04,800 Et puis vous aurez un exécutable 363 00:17:04,800 --> 00:17:06,200 déposer auprès de ce nom. 364 00:17:06,200 --> 00:17:06,675 Oui? 365 00:17:06,675 --> 00:17:09,525 >> INTERLOCUTEUR 1: Pour mon ordinateur, au lieu de Clang il est dit GCC. 366 00:17:09,525 --> 00:17:11,910 Est-ce comme - 367 00:17:11,910 --> 00:17:12,109 ZAMYLA CHAN: Ouais. 368 00:17:12,109 --> 00:17:15,700 Ainsi, votre ordinateur pourrait-on dire GCC plutôt que Clang parce 369 00:17:15,700 --> 00:17:18,180 GCC est un autre type de compilateur. 370 00:17:18,180 --> 00:17:20,460 Si vous êtes dans l'appareil CS50 bien, alors il 371 00:17:20,460 --> 00:17:21,810 devraient utiliser Clang. 372 00:17:24,619 --> 00:17:27,880 Si ce n'est pas le cas, alors peut-être venir me parler par la suite ou poster 373 00:17:27,880 --> 00:17:29,595 Discutez sur CS50 et nous pouvons démêler tout cela. 374 00:17:34,510 --> 00:17:35,710 >> Très bien. 375 00:17:35,710 --> 00:17:39,250 Alors, maintenant que nous avons notre genre d'outils de base vers le bas, puis nous 376 00:17:39,250 --> 00:17:43,060 peut plonger dans Mario. 377 00:17:43,060 --> 00:17:43,550 D'accord. 378 00:17:43,550 --> 00:17:47,360 Ainsi, Mario est un programme où l'essentiel, nous allons être 379 00:17:47,360 --> 00:17:50,800 faire de notre propre genre de version primitive du Mario 380 00:17:50,800 --> 00:17:51,410 fond gibier. 381 00:17:51,410 --> 00:17:54,790 Vous savez, Mario a généralement un tuyau et d'un 382 00:17:54,790 --> 00:17:55,670 arbre et des blocs. 383 00:17:55,670 --> 00:17:59,390 Et puis il ya une sorte de pyramide moitié. 384 00:17:59,390 --> 00:18:02,100 Donc, nous allons juste mettre l'accent sur cette pyramide moitié, 385 00:18:02,100 --> 00:18:05,350 rendre le code tel qu'il imprime hachages pour le genre 386 00:18:05,350 --> 00:18:07,500 de blocs dans ce format. 387 00:18:07,500 --> 00:18:10,800 Alors qu'est-ce qui va se passer est que l'utilisateur va saisir un certain 388 00:18:10,800 --> 00:18:13,130 hauteur de la pyramide, et puis vous allez imprimer que sur 389 00:18:13,130 --> 00:18:17,410 de telle sorte que la partie inférieure gauche de hachage - 390 00:18:17,410 --> 00:18:21,270 donc tout en bas à droite ici - que l'on va aligner 391 00:18:21,270 --> 00:18:23,820 avec le coin inférieur gauche de votre terminal. 392 00:18:26,720 --> 00:18:27,360 D'accord. 393 00:18:27,360 --> 00:18:29,860 >> Donc la première chose que vous avez besoin - 394 00:18:29,860 --> 00:18:33,120 le premier petit problème mini qui nous devons relever est de savoir comment 395 00:18:33,120 --> 00:18:34,640 Pour obtenir le mode d'entrée. 396 00:18:34,640 --> 00:18:40,020 Nous devons donc avoir affaire à ce que l'utilisateur saisit, puis 397 00:18:40,020 --> 00:18:41,060 genre de choses là-bas de sortie. 398 00:18:41,060 --> 00:18:47,630 Alors regardons chercher un fichier appelé apples.c que j'ai écrit 399 00:18:47,630 --> 00:18:52,670 qui traite des entrées et des sorties. 400 00:18:52,670 --> 00:18:53,240 D'accord. 401 00:18:53,240 --> 00:18:55,970 Donc, ici en haut, j'ai inclus certaines des bibliothèques 402 00:18:55,970 --> 00:18:56,540 dont j'ai besoin. 403 00:18:56,540 --> 00:19:00,700 L'on vraiment important ici est stdio (E / S standard). Qui traite 404 00:19:00,700 --> 00:19:02,760 avec des entrées et de sorties standard parce que nous allons 405 00:19:02,760 --> 00:19:04,600 avoir affaire à des entrées utilisateur. 406 00:19:04,600 --> 00:19:04,960 Très bien. 407 00:19:04,960 --> 00:19:06,660 Alors je commence ma fonction principale. 408 00:19:06,660 --> 00:19:11,310 Et puis je demander à l'utilisateur d'accord, combien de pommes avez-vous? 409 00:19:11,310 --> 00:19:13,650 Puis à droite ici, ce que cette ligne fait - 410 00:19:13,650 --> 00:19:18,420 Je assigner la variable i à la valeur de getInt. 411 00:19:18,420 --> 00:19:22,890 >> Donc getInt est une fonction qui est inclus dans stdio. 412 00:19:22,890 --> 00:19:26,090 Et si essentiellement, qui va s'en occuper pour vous. 413 00:19:26,090 --> 00:19:27,900 Il invite l'utilisateur pour un int. 414 00:19:27,900 --> 00:19:30,600 Quelle que soit leur retour, qui sera affecté à la 415 00:19:30,600 --> 00:19:32,020 i la variable. 416 00:19:32,020 --> 00:19:35,620 Et alors c'est juste un petit programme qui diminue la 417 00:19:35,620 --> 00:19:39,160 valeur de i de 1, puis imprime la nouvelle valeur. 418 00:19:39,160 --> 00:19:42,420 Une bonne chose à propos gedit est en fait qu'il ya un mini- 419 00:19:42,420 --> 00:19:43,720 droit de terminal ici. 420 00:19:43,720 --> 00:19:46,670 Ainsi, au lieu d'avoir à passer d'avant en arrière entre 421 00:19:46,670 --> 00:19:48,120 gedit et le terminal, vous pouvez réellement 422 00:19:48,120 --> 00:19:49,100 il suffit de lancer d'ici. 423 00:19:49,100 --> 00:19:52,070 Donc, nous allons d'abord entrer dans le bon répertoire. 424 00:19:52,070 --> 00:19:54,230 Donc, nous allons changer nos répertoires 425 00:19:54,230 --> 00:19:55,480 Dropbox/walkthrough1. 426 00:19:57,160 --> 00:19:57,840 Très bien. 427 00:19:57,840 --> 00:20:03,400 Alors maintenant, nous allons faire les pommes, les compile pour nous. 428 00:20:03,400 --> 00:20:06,640 Et si maintenant nous allons lancer des pommes. 429 00:20:06,640 --> 00:20:08,420 Combien en avons-nous? 430 00:20:08,420 --> 00:20:09,630 Je dis que j'ai 3. 431 00:20:09,630 --> 00:20:12,060 Et il dit: «mwahaha je vais manger un d'entre eux», et affirme 432 00:20:12,060 --> 00:20:13,610 "Vous avez maintenant 2 pommes". 433 00:20:13,610 --> 00:20:14,220 >> Très bien. 434 00:20:14,220 --> 00:20:16,390 Alors lançons encore une fois. 435 00:20:16,390 --> 00:20:19,040 Et disons que j'ai 1 pomme. 436 00:20:19,040 --> 00:20:19,940 Maintenant J'ai 0 pommes. 437 00:20:19,940 --> 00:20:20,180 D'accord. 438 00:20:20,180 --> 00:20:22,460 Ainsi, ce programme semble fonctionner comme prévu. 439 00:20:22,460 --> 00:20:25,070 Nous entrée un numéro, il diminue de 1, puis 440 00:20:25,070 --> 00:20:27,290 elle imprime à nouveau. 441 00:20:27,290 --> 00:20:31,950 Mais que faire si, par exemple, j'ai -1 pommes? 442 00:20:31,950 --> 00:20:33,440 Cela ne veut pas tout à fait sensé. 443 00:20:33,440 --> 00:20:37,430 Mais il est encore un entier, de sorte que le programme l'accepte. 444 00:20:37,430 --> 00:20:41,090 Et il vous renvoie un nombre encore plus négative. 445 00:20:41,090 --> 00:20:44,700 Donc, c'est une leçon pour nous que même si le getInt 446 00:20:44,700 --> 00:20:46,700 la fonction et les autres associés tels que 447 00:20:46,700 --> 00:20:48,260 GetFloat ou GetString - 448 00:20:48,260 --> 00:20:51,490 même si ceux ne nous mènera le bon type de données, par 449 00:20:51,490 --> 00:20:55,750 Par exemple, si je venais de dire [TAPER], 450 00:20:55,750 --> 00:20:57,380 alors il me disait de réessayer. 451 00:20:57,380 --> 00:21:01,860 Donc, ce sera face à tout type de données de votre entrée 452 00:21:01,860 --> 00:21:04,650 n'est pas réellement vérifier, eh bien, est-ce un type de 453 00:21:04,650 --> 00:21:07,820 valeur que je veux? 454 00:21:07,820 --> 00:21:12,370 Alors qu'une partie de Mario est que l'utilisateur doit entrer un 455 00:21:12,370 --> 00:21:15,400 nombre qui représente la hauteur de la pyramide moitié 456 00:21:15,400 --> 00:21:16,360 que vous faites. 457 00:21:16,360 --> 00:21:21,000 Et alors si nous invite cet utilisateur pour la hauteur, puis 458 00:21:21,000 --> 00:21:25,480 il devrait y avoir deux bonds à ce sujet. 459 00:21:25,480 --> 00:21:28,040 Pas vrai? 460 00:21:28,040 --> 00:21:31,150 Dans la spécification, il dit qu'il ne devrait pas être plus de 23 461 00:21:31,150 --> 00:21:32,630 personnages parce que c'est un peu de la norme 462 00:21:32,630 --> 00:21:34,450 hauteur de la borne. 463 00:21:34,450 --> 00:21:37,590 Mais alors, qu'est-ce autre lié, peut-être une limite inférieure pourrait 464 00:21:37,590 --> 00:21:38,840 nous voulons inclure? 465 00:21:41,180 --> 00:21:44,350 >> Si nous sommes réellement dessiner une pyramide, un peu en repensant 466 00:21:44,350 --> 00:21:48,460 à la hauteur d'une pyramide peut être, peut-il jamais être inférieur à un 467 00:21:48,460 --> 00:21:49,132 certain nombre? 468 00:21:49,132 --> 00:21:50,490 SPEAKER 2: Plus grand que trois. 469 00:21:50,490 --> 00:21:50,560 ZAMYLA CHAN: Hmm? 470 00:21:50,560 --> 00:21:52,630 SPEAKER 2: Plus grand que trois. 471 00:21:52,630 --> 00:21:54,850 ZAMYLA CHAN: C'est un bon point. 472 00:21:54,850 --> 00:21:57,860 Il pourrait être - 473 00:21:57,860 --> 00:22:00,700 nous pourrions vouloir le contraindre à seulement trois pyramide niveau. 474 00:22:00,700 --> 00:22:02,120 Mais pensons - 475 00:22:02,120 --> 00:22:06,510 disons comme une table de hachage on compte comme une pyramide trop. 476 00:22:06,510 --> 00:22:09,031 Ensuite, quelle devrait être notre véritable borne inférieure possible? 477 00:22:12,260 --> 00:22:13,760 En repensant aux pommes, nous ne voulons pas d'un 478 00:22:13,760 --> 00:22:15,020 pyramide hauteur négative. 479 00:22:15,020 --> 00:22:15,460 Pas vrai? 480 00:22:15,460 --> 00:22:15,720 D'accord. 481 00:22:15,720 --> 00:22:19,060 Ainsi, lorsque vous demandez la saisie de l'utilisateur, alors vous aurez à 482 00:22:19,060 --> 00:22:21,980 inclure un moyen de faire en sorte que l'entier 483 00:22:21,980 --> 00:22:24,970 ils vous fournir n'est pas négatif, car vous ne pouvez pas 484 00:22:24,970 --> 00:22:28,180 dessiner une pyramide négatif. 485 00:22:28,180 --> 00:22:28,410 >> D'accord. 486 00:22:28,410 --> 00:22:30,190 Donc, il ya deux manières de le faire. 487 00:22:30,190 --> 00:22:34,420 Essentiellement, une fois que vous demander à l'utilisateur, vous souhaitez demander 488 00:22:34,420 --> 00:22:37,080 qu'ils vous fournir la bonne entrée. 489 00:22:37,080 --> 00:22:40,120 Donc, vous voulez demander que l'on vous donnera un numéro de 490 00:22:40,120 --> 00:22:46,630 qui n'est pas négatif, mais aussi moins de 24. 491 00:22:46,630 --> 00:22:49,510 Donc, nous avons affaire à zéro à 23, inclusivement. 492 00:22:49,510 --> 00:22:50,070 Très bien. 493 00:22:50,070 --> 00:22:52,830 Donc, nous voulons continuellement demander - 494 00:22:52,830 --> 00:22:55,720 s'ils ne nous ont donné un entier valide, ils veulent 495 00:22:55,720 --> 00:22:57,350 permanence demandent pas. 496 00:22:57,350 --> 00:22:59,770 Donne-moi une entrée valide. 497 00:22:59,770 --> 00:23:02,270 Donne-moi une hauteur valide. 498 00:23:02,270 --> 00:23:06,970 Alors souviens qu'en Scratch, nous avons eu l'Repeat Until bloc ou 499 00:23:06,970 --> 00:23:08,950 Forever Si le bloc. 500 00:23:08,950 --> 00:23:12,345 Ce sont des boucles qui sont très semblables à la boucle while et 501 00:23:12,345 --> 00:23:14,960 la boucle Do While, où nous allons entrer dans juste une seconde. 502 00:23:14,960 --> 00:23:19,790 Ainsi, la boucle while a essentiellement une condition que vous vérifiez 503 00:23:19,790 --> 00:23:23,240 c'est une valeur booléenne que vous avez mis là-dedans, comme le 504 00:23:23,240 --> 00:23:25,740 blocs de Scratch avec les angles. 505 00:23:25,740 --> 00:23:29,550 C'est ce qui se passe à l'intérieur des crochets de la boucle while. 506 00:23:29,550 --> 00:23:31,830 Donc, vous devrez avoir une certaine sorte de condition là-bas. 507 00:23:31,830 --> 00:23:36,540 Et comme nous venons de parler plus haut, cette condition sera 508 00:23:36,540 --> 00:23:40,250 ont à voir avec les limites de l'entier qui a été entré. 509 00:23:40,250 --> 00:23:44,040 Ainsi, la condition aurait quelque chose à voir avec le fait 510 00:23:44,040 --> 00:23:48,600 le nombre entier est dans les limites appropriées. 511 00:23:48,600 --> 00:23:49,410 >> C'est donc une boucle while. 512 00:23:49,410 --> 00:23:52,580 Par exemple, vous pouvez demander de l'entier puis 513 00:23:52,580 --> 00:23:56,070 vérifier en permanence si cette entrée n'est pas valide. 514 00:23:56,070 --> 00:23:59,810 Par exemple, continuer à ré-invite, continuer à demander 515 00:23:59,810 --> 00:24:01,600 l'utilisateur pour un nombre entier. 516 00:24:01,600 --> 00:24:03,780 Il pourrait donc être un moyen. 517 00:24:03,780 --> 00:24:06,240 Une autre façon pourrait être une boucle Do While, ce qui est très 518 00:24:06,240 --> 00:24:10,130 semblable à une boucle while, sauf que faire pendant un fait est - 519 00:24:10,130 --> 00:24:12,600 vous pouvez voir par genre de la syntaxe - 520 00:24:12,600 --> 00:24:18,540 c'est qu'il a la faire et ensuite le corps de la boucle réelle première. 521 00:24:18,540 --> 00:24:20,280 Ensuite, il a tout les conditions. 522 00:24:20,280 --> 00:24:22,060 Alors qu'est-ce alors que les boucles - 523 00:24:22,060 --> 00:24:25,470 ce qu'ils sont utiles, c'est qu'ils ont effectivement exécuter le 524 00:24:25,470 --> 00:24:29,130 Code au moins une fois, puis vérifier si la condition est 525 00:24:29,130 --> 00:24:30,030 atteints ou non. 526 00:24:30,030 --> 00:24:32,510 Donc, si vous aviez à faire une boucle Do While, puis à l'intérieur de votre 527 00:24:32,510 --> 00:24:35,210 déclaration, vous pouvez demander un entier, car vous aurez à 528 00:24:35,210 --> 00:24:37,180 ont le moins à demander à l'utilisateur une fois. 529 00:24:37,180 --> 00:24:40,850 Et puis après vous les demandera, alors vous pouvez dire ok, 530 00:24:40,850 --> 00:24:43,110 et une fois que j'ai fait cela, est-il valide? 531 00:24:43,110 --> 00:24:44,810 Si c'est le cas, alors vous pouvez juste continuer à avancer. 532 00:24:44,810 --> 00:24:47,310 Mais si ce n'est pas le cas, alors il vous reste plus qu'à agir comme un régulier tout 533 00:24:47,310 --> 00:24:49,240 boucle, puis continuer à poser. 534 00:24:53,590 --> 00:24:54,670 >> D'accord. 535 00:24:54,670 --> 00:24:57,120 Donc, nous sommes de retour à Mario. 536 00:24:57,120 --> 00:25:01,740 Nous savons donc comment inviter pour l'entrée d'utilisateur correct c'est 537 00:25:01,740 --> 00:25:03,160 dans les limites adéquates. 538 00:25:03,160 --> 00:25:07,100 Alors maintenant, nous avons vraiment besoin de tirer cette pyramide moitié. 539 00:25:07,100 --> 00:25:08,730 Il ressemble simples caractères de texte. 540 00:25:08,730 --> 00:25:10,360 Donc, nous allons effectivement ouvert - 541 00:25:14,280 --> 00:25:17,190 nous allons simplement ouvrir une fenêtre et dire ok, bien que si je devais 542 00:25:17,190 --> 00:25:24,960 passe réellement à le faire manuellement, tapez un moi-même? 543 00:25:24,960 --> 00:25:25,780 D'accord. 544 00:25:25,780 --> 00:25:26,910 Alors voyons voir. 545 00:25:26,910 --> 00:25:30,070 Disons, par exemple, nous voulons faire une pyramide qui est 546 00:25:30,070 --> 00:25:32,090 alignées le long du côté gauche, puis se contentait de faire - 547 00:25:34,710 --> 00:25:37,750 dans Mario, le plus haut niveau dispose de deux blocs au lieu d'un seul. 548 00:25:37,750 --> 00:25:39,080 Nous commençons donc par deux. 549 00:25:39,080 --> 00:25:40,700 Nous appuyez sur Entrée. 550 00:25:40,700 --> 00:25:45,670 Nous faisons trois, puis quatre, Entrée, cinq. 551 00:25:45,670 --> 00:25:45,980 D'accord. 552 00:25:45,980 --> 00:25:46,790 Donc, c'est assez simple. 553 00:25:46,790 --> 00:25:50,210 Sauf que dans ce jeu de problème, nous le voulons réellement à s'aligner sur 554 00:25:50,210 --> 00:25:52,250 le côté droit de notre écran. 555 00:25:52,250 --> 00:25:52,630 Très bien. 556 00:25:52,630 --> 00:25:58,870 Alors, comment pourrait-on de vous tapez ce de telle sorte que 557 00:25:58,870 --> 00:26:01,810 il est aligné le long de la droite? 558 00:26:01,810 --> 00:26:08,550 Au lieu de mettre le premier hachage, comment pourriez-vous genre de 559 00:26:08,550 --> 00:26:10,040 le déplacer le long? 560 00:26:10,040 --> 00:26:11,360 SPEAKER 3: Écriture d'une ligne? 561 00:26:11,360 --> 00:26:11,800 ZAMYLA CHAN: Hmm? 562 00:26:11,800 --> 00:26:13,030 SPEAKER 3: Écriture d'une ligne? 563 00:26:13,030 --> 00:26:13,110 ZAMYLA CHAN: Ouais. 564 00:26:13,110 --> 00:26:13,390 Ouais. 565 00:26:13,390 --> 00:26:15,080 Vous pourriez écrire comme un trait de soulignement ou quelque chose comme 566 00:26:15,080 --> 00:26:19,370 , mais nous pouvons simplement dire utiliser un espace. 567 00:26:19,370 --> 00:26:21,500 Mettons en trois espaces comme ici. 568 00:26:21,500 --> 00:26:24,760 Puis la ligne suivante, eh bien, il faudrait mettre deux espaces. 569 00:26:24,760 --> 00:26:26,500 La ligne suivante, nous venons de mettre un espace. 570 00:26:26,500 --> 00:26:30,340 Et puis, pour notre dernière ligne, nous ne serions pas mettre d'espaces. 571 00:26:30,340 --> 00:26:32,210 Et là, nous avons notre pyramide. 572 00:26:32,210 --> 00:26:33,170 >> Donc, c'est en quelque sorte - 573 00:26:33,170 --> 00:26:37,290 rappeler ce genre de logique. 574 00:26:37,290 --> 00:26:39,340 Et essayer de comprendre une sorte de modèle que nous pouvons 575 00:26:39,340 --> 00:26:43,690 puis de traduire en C et impliquer dans une sorte de boucle. 576 00:26:43,690 --> 00:26:43,930 Très bien. 577 00:26:43,930 --> 00:26:48,130 Donc, dire que nous avons une hauteur huit ans, alors notre première ligne auront 578 00:26:48,130 --> 00:26:48,980 deux hachages. 579 00:26:48,980 --> 00:26:53,030 Mais pour obtenir ces tables de hachage, vous devez écrire une 580 00:26:53,030 --> 00:26:54,000 espaces avance. 581 00:26:54,000 --> 00:26:55,840 Pas vrai? 582 00:26:55,840 --> 00:26:57,340 Ce que j'ai fait, c'est que je viens de vivre. 583 00:26:57,340 --> 00:27:00,150 Je l'ai dessiné moi-même, une pyramide dans mon éditeur de texte, un 584 00:27:00,150 --> 00:27:03,800 pyramide d'une hauteur de huit et calcule ensuite le nombre de 585 00:27:03,800 --> 00:27:05,180 espaces dont j'avais besoin pour faire. 586 00:27:05,180 --> 00:27:07,350 Alors j'ai dit oui, bien la première ligne est 587 00:27:07,350 --> 00:27:08,260 va avoir deux tables de hachage. 588 00:27:08,260 --> 00:27:11,100 Mais avant cela, j'ai besoin de sept espaces d'entrée. 589 00:27:11,100 --> 00:27:13,420 Le prochain dotée de six espaces, puis 590 00:27:13,420 --> 00:27:15,610 trois tables de hachage, et cetera. 591 00:27:15,610 --> 00:27:20,520 >> Alors nous allons essayer de porter cette question à une autre couche de 592 00:27:20,520 --> 00:27:21,330 l'abstraction. 593 00:27:21,330 --> 00:27:26,680 Que faire si nous avons eu pour la nième ligne, combien de hachages et comment 594 00:27:26,680 --> 00:27:27,960 de nombreux espaces aurions-nous besoin? 595 00:27:27,960 --> 00:27:30,750 Quelqu'un voit-il le modèle? 596 00:27:35,200 --> 00:27:37,560 Ainsi, la première ligne a deux tables de hachage. 597 00:27:37,560 --> 00:27:39,720 Le second en a trois. 598 00:27:39,720 --> 00:27:42,120 Le troisième a quatre. 599 00:27:42,120 --> 00:27:45,398 Ainsi, la nième ligne aurait - 600 00:27:45,398 --> 00:27:46,800 SPEAKER 4: N + 1? 601 00:27:46,800 --> 00:27:47,170 ZAMYLA CHAN: Ouais. 602 00:27:47,170 --> 00:27:47,780 N + 1. 603 00:27:47,780 --> 00:27:49,030 Exactement. 604 00:27:52,810 --> 00:27:56,470 Donc, nous voyons que le nombre de tables de hachage va être - 605 00:27:56,470 --> 00:27:59,510 si nous comptons le premier rang de l'être, alors le nombre 606 00:27:59,510 --> 00:28:03,850 de tables de hachage va juste être un de plus que cela. 607 00:28:03,850 --> 00:28:04,150 D'accord. 608 00:28:04,150 --> 00:28:06,350 Alors qu'en est-il du nombre de places? 609 00:28:06,350 --> 00:28:10,120 Donc, nous allons essayer de l'exprimer en fonction de la hauteur. 610 00:28:10,120 --> 00:28:12,570 Si la hauteur est de huit, puis la première 611 00:28:12,570 --> 00:28:15,260 rangée dispose de sept places. 612 00:28:15,260 --> 00:28:18,215 Donc, ce genre de correspond à 8 moins 1. 613 00:28:18,215 --> 00:28:19,030 Pas vrai? 614 00:28:19,030 --> 00:28:22,420 Alors la deuxième ligne va avoir six espaces, 615 00:28:22,420 --> 00:28:25,340 soit 8 de moins 2. 616 00:28:28,420 --> 00:28:31,450 Alors je vais vous laisse le soin de genre de figure sur 617 00:28:31,450 --> 00:28:33,610 le motif pour cela. 618 00:28:33,610 --> 00:28:34,010 >> D'accord. 619 00:28:34,010 --> 00:28:37,450 Mais dans la programmation, il nous arrive effectivement indice à zéro. 620 00:28:37,450 --> 00:28:39,680 Nous commençons donc à zéro au lieu d'un seul. 621 00:28:39,680 --> 00:28:46,250 Ainsi, au lieu de la première rangée étant appelée la première rangée, 622 00:28:46,250 --> 00:28:48,930 nous allons l'appeler la ligne 0-e. 623 00:28:48,930 --> 00:28:51,360 Donc, selon la façon dont vous voulez le mettre en œuvre, soit 624 00:28:51,360 --> 00:28:55,120 très prudent si vous commencez à zéro, si vous commencez à 625 00:28:55,120 --> 00:28:58,400 un, votre patron va être compensé par un. 626 00:29:02,270 --> 00:29:02,880 D'accord. 627 00:29:02,880 --> 00:29:05,460 Alors, maintenant que nous avons un peu compris le programme, nous 628 00:29:05,460 --> 00:29:06,310 ont à dire bien. 629 00:29:06,310 --> 00:29:11,540 Ainsi, pour chaque type de niveau de l'escalier, je vais imprimer 630 00:29:11,540 --> 00:29:14,390 tel et tel nombre d'espaces et ensuite tel et 631 00:29:14,390 --> 00:29:16,550 comme le nombre de tables de hachage. 632 00:29:16,550 --> 00:29:19,550 Cela dépend du modèle que nous avons établi auparavant. 633 00:29:19,550 --> 00:29:19,810 D'accord. 634 00:29:19,810 --> 00:29:23,600 Donc, une façon d'itérer et le type de cours 635 00:29:23,600 --> 00:29:27,670 par un nombre défini de choses est une boucle, un peu comme 636 00:29:27,670 --> 00:29:31,040 la répétition de bloc de 10 ou de répétition et comme vous avez entré un 637 00:29:31,040 --> 00:29:33,810 nombre de de Scratch. 638 00:29:33,810 --> 00:29:38,050 Donc, essentiellement, pour tous les niveaux de l'escalier, nous voulons 639 00:29:38,050 --> 00:29:39,650 imprimer les espaces d'abord. 640 00:29:39,650 --> 00:29:43,020 Ensuite, imprimez le nombre de tables de hachage. 641 00:29:43,020 --> 00:29:46,480 Et puis nous voulons entrer une nouvelle ligne, puis répéter 642 00:29:46,480 --> 00:29:49,750 supplémentaire pour le bloc suivant. 643 00:29:49,750 --> 00:29:50,720 D'accord. 644 00:29:50,720 --> 00:29:55,080 >> Alors penchons-nous sur les boucles pour une seconde de sorte de voir une manière 645 00:29:55,080 --> 00:29:59,460 que nous pourrions passer par un certain nombre, passez par le nombre 646 00:29:59,460 --> 00:30:02,250 des étapes de cette pyramide moitié. 647 00:30:02,250 --> 00:30:04,220 Donc pour les boucles sont composées de trois parties. 648 00:30:04,220 --> 00:30:08,150 Tout d'abord, vous avez une initialisation. 649 00:30:08,150 --> 00:30:13,220 Alors qui définit essentiellement une variable. 650 00:30:13,220 --> 00:30:15,130 Ça va être réglé sur cette valeur chaque fois 651 00:30:15,130 --> 00:30:17,110 que pour les démarrages en boucle. 652 00:30:17,110 --> 00:30:18,540 Ensuite, vous allez avoir une condition. 653 00:30:18,540 --> 00:30:21,640 Votre boucle for ne s'exécutera aussi longtemps que 654 00:30:21,640 --> 00:30:25,630 condition est évaluée à true. 655 00:30:25,630 --> 00:30:28,000 Et puis vous aurez une condition mise à jour. 656 00:30:28,000 --> 00:30:32,450 Donc, cela a à voir avec la variable que vous avez initialisé. 657 00:30:32,450 --> 00:30:38,120 Donc fondamentalement un moyen de faire en sorte que nous pouvons sortir 658 00:30:38,120 --> 00:30:40,070 de la boucle, que nous ne gardons pas sur l'exécution 659 00:30:40,070 --> 00:30:41,310 il toujours et à jamais. 660 00:30:41,310 --> 00:30:43,760 Parce que contrairement à Scratch, nous n'en possèdent pas seulement une 661 00:30:43,760 --> 00:30:45,680 plaine boucle Forever. 662 00:30:45,680 --> 00:30:48,100 En C, le programme doit se terminer par la suite. 663 00:30:48,100 --> 00:30:52,290 Donc, nous devons nous assurer que nous avons une certaine façon de l'arrêter. 664 00:30:52,290 --> 00:30:52,830 >> D'accord. 665 00:30:52,830 --> 00:30:56,260 Ainsi, un exemple d'une boucle for que vous pouvez utiliser pour 666 00:30:56,260 --> 00:30:57,530 Mario est présent. 667 00:30:57,530 --> 00:31:02,290 Vous avez donc un entier i que vous commencez à 0. 668 00:31:02,290 --> 00:31:08,050 Tant qu'il est inférieur à la hauteur, d'exécuter le corps 669 00:31:08,050 --> 00:31:11,140 à l'intérieur de la boucle ici. 670 00:31:11,140 --> 00:31:13,820 Après que le corps de la boucle est exécutée, alors vous feriez 671 00:31:13,820 --> 00:31:15,290 i augmente de 1. 672 00:31:15,290 --> 00:31:18,510 Alors votre programme allait vérifier à nouveau - d'accord, eh bien, c'est moins de i 673 00:31:18,510 --> 00:31:18,885 la hauteur? 674 00:31:18,885 --> 00:31:21,865 Si c'est le cas, vous continuerez. 675 00:31:24,630 --> 00:31:27,790 Alors, voici un exemple d'indexation zéro, où nous commençons à 676 00:31:27,790 --> 00:31:29,100 zéro et ensuite nous - 677 00:31:29,100 --> 00:31:30,970 remarquerez que notre condition est inférieure à la hauteur. 678 00:31:30,970 --> 00:31:34,510 Donc dire que notre taille est de quatre, par exemple, i 679 00:31:34,510 --> 00:31:35,470 commence à 0. 680 00:31:35,470 --> 00:31:36,180 Ce sera 1. 681 00:31:36,180 --> 00:31:36,730 Ce sera 2. 682 00:31:36,730 --> 00:31:37,940 Il y aura 3. 683 00:31:37,940 --> 00:31:42,310 Et puis une fois qu'il met à jour, les mises à jour lorsque la boucle, je vais 684 00:31:42,310 --> 00:31:43,650 alors être réglé sur 4. 685 00:31:43,650 --> 00:31:47,080 Mais 4 n'est pas inférieur à 4, et ainsi de suite, puis nous le ferions 686 00:31:47,080 --> 00:31:50,340 continuer à le reste de notre boucle. 687 00:31:50,340 --> 00:31:50,870 >> D'accord. 688 00:31:50,870 --> 00:31:51,680 Alors que commence à zéro. 689 00:31:51,680 --> 00:31:53,470 Mais nous pourrions aussi commencer à un, par exemple. 690 00:31:53,470 --> 00:31:56,960 Mais puisque nous partons moins un, nous avons un peu besoin d'aller encore une 691 00:31:56,960 --> 00:31:57,920 à la fin du temps. 692 00:31:57,920 --> 00:32:02,800 Alors c'est pourquoi nous ajoutons le inférieur ou égal à. 693 00:32:02,800 --> 00:32:05,780 Ainsi, l'une des grandes choses que j'aime à propos de l'ordinateur 694 00:32:05,780 --> 00:32:06,930 programmation, c'est qu'il ya tellement 695 00:32:06,930 --> 00:32:08,370 plusieurs façons de faire les choses. 696 00:32:08,370 --> 00:32:11,300 Ainsi, vous pouvez choisir si vous commencer à zéro, si vous 697 00:32:11,300 --> 00:32:12,330 En commençant à un. 698 00:32:12,330 --> 00:32:15,400 Aussi, si vous le souhaitez, vous pouvez simplement utiliser un 699 00:32:15,400 --> 00:32:16,600 tout en boucle, par exemple. 700 00:32:16,600 --> 00:32:18,890 Donc, vous pourriez - 701 00:32:18,890 --> 00:32:20,270 nous allons effectivement hello.c ouvert. 702 00:32:26,200 --> 00:32:28,600 Nous avons donc ici une boucle for. 703 00:32:28,600 --> 00:32:31,330 Elle commence à i = 0, i <5. 704 00:32:31,330 --> 00:32:33,550 J'ai un commentaire ici nous dire ce qu'il fait. 705 00:32:33,550 --> 00:32:36,300 Elle imprime bonjour cinq fois en utilisant une boucle for. 706 00:32:36,300 --> 00:32:41,690 Mais on peut aussi le faire en utilisant une boucle while ainsi. 707 00:32:41,690 --> 00:32:48,290 >> Alors regardons comment nous pourrions le faire. 708 00:32:48,290 --> 00:32:51,010 Donc, si nous allons simuler une boucle for, alors nous voulons aussi 709 00:32:51,010 --> 00:32:54,870 imiter l'initialisation, la condition et la mise à jour. 710 00:32:54,870 --> 00:33:01,430 Ainsi, la condition doit être assez simple, car dans le 711 00:33:01,430 --> 00:33:04,350 tandis que la syntaxe, lorsque vous le regardez, il est dit while (condition). 712 00:33:04,350 --> 00:33:06,830 Alors disons simplement la condition d'entrée là-bas. 713 00:33:06,830 --> 00:33:09,700 i <5. 714 00:33:09,700 --> 00:33:10,590 D'accord. 715 00:33:10,590 --> 00:33:18,900 Nous savons donc que nous voulons imprimer au revoir. 716 00:33:18,900 --> 00:33:21,350 Nous savons que c'est le corps de notre boucle. 717 00:33:21,350 --> 00:33:23,600 Mais il nous manque l'initialisation 718 00:33:23,600 --> 00:33:24,490 et la mise à jour, non? 719 00:33:24,490 --> 00:33:25,790 Parce que nous ne pouvons pas avoir une boucle infinie. 720 00:33:25,790 --> 00:33:27,660 Il doit mettre fin. 721 00:33:27,660 --> 00:33:35,300 Ajoutons donc une sorte d'initialisation ici en utilisant l' 722 00:33:35,300 --> 00:33:38,790 même que nous avons utilisé dans notre boucle d', int i = 0. 723 00:33:38,790 --> 00:33:39,110 D'accord. 724 00:33:39,110 --> 00:33:40,630 Nous commençons donc avec un int i. 725 00:33:40,630 --> 00:33:43,640 Nous répétons cette boucle while tant que i est inférieur à 5. 726 00:33:43,640 --> 00:33:47,220 Alors il nous manque une chose, qui est la mise à jour. 727 00:33:47,220 --> 00:33:51,470 Alors, quelle mise à jour aurions-nous besoin d'utiliser si nous étions essentiellement 728 00:33:51,470 --> 00:33:52,880 recréer la boucle for ci-dessus? 729 00:33:56,000 --> 00:33:59,880 Nous avons l'initialisation i est égal à 0. 730 00:33:59,880 --> 00:34:03,610 Nous avons l'état i est inférieur à 5. 731 00:34:03,610 --> 00:34:06,300 Et puis, voici une mise à jour, non? 732 00:34:06,300 --> 00:34:07,365 Donc, nous voulons imiter. 733 00:34:07,365 --> 00:34:10,340 Nous voulons dire ok, i + +. 734 00:34:10,340 --> 00:34:13,820 C'est la même chose que de dire i = i + 1. 735 00:34:13,820 --> 00:34:17,090 Mais comme il est si souvent utilisée, un raccourci pour qui est juste 736 00:34:17,090 --> 00:34:18,340 i disant + +. 737 00:34:20,800 --> 00:34:22,050 >> Grande. 738 00:34:25,230 --> 00:34:26,400 D'accord. 739 00:34:26,400 --> 00:34:29,210 Ici, je n'ai pas fait sortir de mon programme pommes. 740 00:34:29,210 --> 00:34:33,070 Donc je vais juste à cliquer sur Control-C et que, immédiatement 741 00:34:33,070 --> 00:34:34,989 bottes de me sortir de mon programme et apporte 742 00:34:34,989 --> 00:34:35,920 me soutenir à la borne. 743 00:34:35,920 --> 00:34:38,320 Alors que, par exemple, si vous avez un bug où vous 744 00:34:38,320 --> 00:34:40,750 oublié de mettre à jour votre boucle while telle qu'il serait 745 00:34:40,750 --> 00:34:43,150 fin, et vous entrez dans une boucle infinie, alors vous pouvez 746 00:34:43,150 --> 00:34:46,400 utilisez Control-C pour sortir de cela. 747 00:34:46,400 --> 00:34:46,639 Très bien. 748 00:34:46,639 --> 00:34:47,960 Donc, nous sommes dans le bon répertoire. 749 00:34:47,960 --> 00:34:52,010 Faisons donc bonjour. 750 00:34:52,010 --> 00:35:01,710 Et puis, si nous courons bonjour, nous voyons que la boucle ne revoir 751 00:35:01,710 --> 00:35:03,350 exactement la même chose que notre boucle for fait. 752 00:35:03,350 --> 00:35:05,060 Donc, c'est juste un soupçon. 753 00:35:05,060 --> 00:35:06,980 Que vous soyez plus à l'aise avec les boucles for ou 754 00:35:06,980 --> 00:35:09,850 avec boucles while, ils peuvent être interchangeables. 755 00:35:09,850 --> 00:35:15,130 Donc, quel que soit celui que vous souhaitez utiliser pour parcourir - 756 00:35:15,130 --> 00:35:16,020 dans ce cas - 757 00:35:16,020 --> 00:35:19,410 la hauteur de la pyramide Mario. 758 00:35:19,410 --> 00:35:23,020 Et de nouveau, c'est juste un rappel, si vous commencez à zéro 759 00:35:23,020 --> 00:35:25,430 pour votre variable, alors vous aurez envie d'avoir un autre 760 00:35:25,430 --> 00:35:27,360 état que si vous avez commencé à une heure. 761 00:35:27,360 --> 00:35:29,620 Donc, ce tableau montre juste une sorte de vous un rappel. 762 00:35:29,620 --> 00:35:33,660 Si vous voulez répéter 10 fois, par exemple, alors vous 763 00:35:33,660 --> 00:35:36,030 pouvez commencer votre variable à zéro. 764 00:35:36,030 --> 00:35:39,350 Et votre état de santé peut être inférieur à 10. 765 00:35:39,350 --> 00:35:43,020 Et si ce genre de montre que vous la matrice de cela. 766 00:35:43,020 --> 00:35:43,360 >> D'accord. 767 00:35:43,360 --> 00:35:45,790 Donc, nous sommes passés par Mario. 768 00:35:45,790 --> 00:35:48,820 Nous l'avons dit, Bon, eh bien nous devons vérifier pour l'entrée correcte, 769 00:35:48,820 --> 00:35:50,800 zéro et 23 inclusivement. 770 00:35:50,800 --> 00:35:53,370 Nous allons trouver une sorte de modèle, une sorte de moyen 771 00:35:53,370 --> 00:35:57,920 d'exprimer la nième ligne ou la ligne i. 772 00:35:57,920 --> 00:36:01,560 Et nous allons décider, d'accord, que nous allons imprimer cette 773 00:36:01,560 --> 00:36:04,870 de nombreux espaces, ce hachages nombreux, nouvelle ligne. 774 00:36:04,870 --> 00:36:05,050 Très bien. 775 00:36:05,050 --> 00:36:05,720 Donc, nous l'avons. 776 00:36:05,720 --> 00:36:08,570 Donc maintenant nous pouvons passer à Greedy. 777 00:36:08,570 --> 00:36:14,500 Greedy est un programme dans lequel un utilisateur vous donne un montant de 778 00:36:14,500 --> 00:36:17,460 argent que vous avez essentiellement que le caissier besoin de revenir. 779 00:36:17,460 --> 00:36:21,530 Mais vous voulez utiliser des pièces aussi peu que possible. 780 00:36:21,530 --> 00:36:25,070 Et c'est donc là un algorithme Greedy arrive, où 781 00:36:25,070 --> 00:36:30,440 nous voulons utiliser la quantité minimale de pièces possible 782 00:36:30,440 --> 00:36:31,900 prendre cette quantité de changement. 783 00:36:34,500 --> 00:36:34,990 >> D'accord. 784 00:36:34,990 --> 00:36:40,480 Ainsi, un exemple de cela dans votre solution peut paraître 785 00:36:40,480 --> 00:36:42,540 quelque chose comme ça. 786 00:36:42,540 --> 00:36:45,410 Vous exécutez. / Gourmand. 787 00:36:45,410 --> 00:36:47,920 Vous êtes invité à dire ok, bien à quel point le changement est dû? 788 00:36:47,920 --> 00:36:50,780 Cette valeur va être une valeur en dollars. 789 00:36:50,780 --> 00:36:52,440 Donc, ça va être un flotteur. 790 00:36:52,440 --> 00:36:55,630 Votre programme va alors calculer la quantité minimale 791 00:36:55,630 --> 00:37:00,380 des pièces nécessaires à faire, dans ce cas, 0,32 $. 792 00:37:00,380 --> 00:37:04,550 Et si le nombre minimum est de quatre. 793 00:37:04,550 --> 00:37:07,480 Donc, avant de comprendre ce qu'il faut faire, faisons sorte de marche 794 00:37:07,480 --> 00:37:10,770 à travers le processus que vous pourriez aller sur. 795 00:37:10,770 --> 00:37:16,480 Donc, si l'entrée est de 32, puis essentiellement, je vais utiliser 796 00:37:16,480 --> 00:37:19,100 la moindre quantité de pièces de monnaie si j'utilise le plus grand nombre 797 00:37:19,100 --> 00:37:20,460 pièces de gros que possible. 798 00:37:20,460 --> 00:37:20,870 Pas vrai? 799 00:37:20,870 --> 00:37:25,420 Ainsi, il est beaucoup plus facile d'utiliser un trimestre, 800 00:37:25,420 --> 00:37:27,070 plutôt que cinq cents. 801 00:37:27,070 --> 00:37:31,740 Donc, disons, vous devez retourner 0,32 $. 802 00:37:31,740 --> 00:37:36,660 Eh bien, puis-je utiliser un quart dans tout cela? 803 00:37:36,660 --> 00:37:37,480 Oui, vous le pouvez. 804 00:37:37,480 --> 00:37:41,970 Et puis, vous serait diminué à 0,07 $. 805 00:37:41,970 --> 00:37:46,070 Voyons voir si je peux utiliser un autre quart de vous rembourser. 806 00:37:46,070 --> 00:37:46,870 Eh bien, non. 807 00:37:46,870 --> 00:37:48,200 Je ne peux pas répondre à un quart en cela. 808 00:37:48,200 --> 00:37:52,110 Je vais donc passer à la pièce suivante plus grand. 809 00:37:52,110 --> 00:37:53,250 Puis-je utiliser un centime? 810 00:37:53,250 --> 00:37:55,800 0,07 $, non vous ne pouvez pas utiliser une pièce de monnaie pour payer 0,07 $. 811 00:37:55,800 --> 00:37:56,840 Donc, vous dites non. 812 00:37:56,840 --> 00:38:00,490 Passer à la suivante, qui est un alliage de nickel. 813 00:38:00,490 --> 00:38:01,440 Pouvez-vous utiliser un nickel? 814 00:38:01,440 --> 00:38:02,930 Oui. 815 00:38:02,930 --> 00:38:06,440 Sept est supérieure à 0,05 $, de sorte que nous pouvons utiliser un alliage de nickel. 816 00:38:06,440 --> 00:38:08,640 Et puis nous avons deux cents restants. 817 00:38:08,640 --> 00:38:11,110 Peut-on utiliser un sou? 818 00:38:11,110 --> 00:38:12,180 Oui nous le pouvons. 819 00:38:12,180 --> 00:38:13,070 Peut-on utiliser un sou? 820 00:38:13,070 --> 00:38:13,380 Oui. 821 00:38:13,380 --> 00:38:14,710 Peut-on utiliser un sou? 822 00:38:14,710 --> 00:38:17,070 Non, parce que maintenant nous avons réussi à 823 00:38:17,070 --> 00:38:19,400 payé le dos de l'utilisateur. 824 00:38:19,400 --> 00:38:23,620 Et pour que totalise quatre pièces utilisées. 825 00:38:23,620 --> 00:38:26,370 >> Donc penser à ce processus, nous avons tous les 826 00:38:26,370 --> 00:38:29,080 moment décider d'accord, 827 00:38:29,080 --> 00:38:31,050 ce qui est le plus grand pièce que l'on peut utiliser? 828 00:38:31,050 --> 00:38:37,240 Une fois que nous utilisons, nous sorte de garder une note mentale de combien 829 00:38:37,240 --> 00:38:39,650 plus d'argent, nous devons retourner à l'utilisateur ainsi que le nombre de 830 00:38:39,650 --> 00:38:41,310 pièces de monnaie que nous utilisons. 831 00:38:44,640 --> 00:38:45,200 D'accord. 832 00:38:45,200 --> 00:38:48,930 Donc, mais encore une fois, la première étape - tout comme Mario - est d'inciter les 833 00:38:48,930 --> 00:38:51,120 l'utilisateur pour un montant monétaire. 834 00:38:51,120 --> 00:38:53,920 Et si ce montant va être - 835 00:38:53,920 --> 00:38:56,040 il va avoir une valeur décimale parce que nous allons 836 00:38:56,040 --> 00:38:57,310 demandez-leur de dollars. 837 00:38:57,310 --> 00:39:00,550 Donc, ce type de données ne va pas être un nombre entier. 838 00:39:00,550 --> 00:39:01,860 Mais il va y avoir un - 839 00:39:04,960 --> 00:39:07,700 ouais, un flotteur. 840 00:39:07,700 --> 00:39:10,780 Mais tout comme les pommes, les flotteurs peuvent être positifs ou négatifs. 841 00:39:10,780 --> 00:39:13,390 Alors lorsque vous vérifiez les valeurs, vous allez vouloir 842 00:39:13,390 --> 00:39:15,380 pour s'assurer que votre flotteur - 843 00:39:15,380 --> 00:39:19,710 l'entrée de l'utilisateur - est non-négatif. 844 00:39:19,710 --> 00:39:20,960 D'accord. 845 00:39:22,630 --> 00:39:26,720 Nous pourrions traiter avec des flotteurs dans notre programme dans son ensemble, représentent 846 00:39:26,720 --> 00:39:31,610 quarts de 0,25, de 0,1 dimes, et cetera. 847 00:39:31,610 --> 00:39:36,280 Mais je trouve qu'il est beaucoup plus facile de traiter en quelques cents purs. 848 00:39:36,280 --> 00:39:36,910 Aussi - 849 00:39:36,910 --> 00:39:39,370 et nous en reparlerons un peu plus tard - 850 00:39:39,370 --> 00:39:43,610 en C, points flottants quelque chose qui s'appelle l'imprécision. 851 00:39:43,610 --> 00:39:48,660 Alors, quand vous entrez dans 0,12, par exemple, l'ordinateur 852 00:39:48,660 --> 00:39:53,010 en fait que les magasins comme 0.1111119 ou 853 00:39:53,010 --> 00:39:54,350 quelque chose comme ça. 854 00:39:54,350 --> 00:39:56,900 >> Ainsi, il est beaucoup plus facile à convertir en cents. 855 00:39:56,900 --> 00:40:02,190 Alors, comment pouvons-nous convertir une valeur en dollars en cents? 856 00:40:02,190 --> 00:40:03,540 SPEAKER 5: il Times par 100? 857 00:40:03,540 --> 00:40:03,920 ZAMYLA CHAN: Ouais. 858 00:40:03,920 --> 00:40:04,110 Ouais. 859 00:40:04,110 --> 00:40:07,110 Donc, nous aurions parfois il par 100. 860 00:40:07,110 --> 00:40:10,820 Mais une chose délicate sur les points flottants, c'est qu'il ya 861 00:40:10,820 --> 00:40:11,790 une certaine imprécision. 862 00:40:11,790 --> 00:40:16,090 Donc, nous allons simplement voir un exemple de cela. 863 00:40:18,760 --> 00:40:21,360 Donc, je vais ouvrir imprecision.c. 864 00:40:21,360 --> 00:40:23,690 D'accord. 865 00:40:23,690 --> 00:40:24,860 Il s'agit d'un programme très simple. 866 00:40:24,860 --> 00:40:26,970 Il demande un flotteur, et l'imprime en arrière. 867 00:40:35,950 --> 00:40:39,600 Un bon pourboire au terminal, c'est que vous pouvez simplement taper claire et 868 00:40:39,600 --> 00:40:41,180 alors vous avez un écran clair. 869 00:40:41,180 --> 00:40:45,270 Et si vous n'avez pas besoin de regarder n'importe quelle sortie précédente ou de toute 870 00:40:45,270 --> 00:40:47,490 des erreurs ou des bugs rapports, quelque chose comme ça. 871 00:40:47,490 --> 00:40:48,120 D'accord. 872 00:40:48,120 --> 00:40:49,675 Faisons donc imprécision. 873 00:40:53,250 --> 00:40:56,250 Nous allons l'exécuter. 874 00:40:56,250 --> 00:40:57,890 Donc, je haven't - 875 00:40:57,890 --> 00:41:03,830 dans mon code, je n'ai pas imprimer n'importe quel message ou quelque chose comme ça. 876 00:41:03,830 --> 00:41:05,010 Ainsi, il a juste un curseur clignotant. 877 00:41:05,010 --> 00:41:07,390 Donc, il attend juste pour moi à l'entrée d'un flotteur. 878 00:41:07,390 --> 00:41:08,640 Donc let's - 879 00:41:10,610 --> 00:41:11,280 un flotteur aléatoire. 880 00:41:11,280 --> 00:41:15,080 Et vous voyez que l'imprime en arrière, mais a une certaine supplémentaire 881 00:41:15,080 --> 00:41:18,180 chiffres que nous avons certainement ne comprennent pas. 882 00:41:18,180 --> 00:41:21,980 Donc, nous voulons nous assurer que ce n'est pas 883 00:41:21,980 --> 00:41:23,300 se produire dans notre programme. 884 00:41:23,300 --> 00:41:27,550 >> Alors ce que nous voulons faire est de s'assurer que nous avons effectivement 885 00:41:27,550 --> 00:41:31,300 genre d'arrondi à la valeur appropriée. 886 00:41:31,300 --> 00:41:31,850 Pas vrai? 887 00:41:31,850 --> 00:41:37,820 Et si par chance, nous avons une fonction appelée tour inclus 888 00:41:37,820 --> 00:41:38,550 dans l'appareil. 889 00:41:38,550 --> 00:41:41,390 C'est dans la bibliothèque mathématique. 890 00:41:41,390 --> 00:41:44,710 Si vous voulez savoir comment utiliser ronde, alors que vous utilisez réellement 891 00:41:44,710 --> 00:41:45,220 le manuel. 892 00:41:45,220 --> 00:41:48,160 Vous pouvez cliquer ronde homme. 893 00:41:48,160 --> 00:41:51,190 Alors là, il fait apparaître - 894 00:41:51,190 --> 00:41:53,220 peut-être un peu difficile à déchiffrer, mais finalement 895 00:41:53,220 --> 00:41:54,690 vous aurez le coup de lui. 896 00:41:54,690 --> 00:42:00,060 Il sorte de vous montre ce que fait la fonction et puis certains 897 00:42:00,060 --> 00:42:01,790 utilisations possibles de ce. 898 00:42:01,790 --> 00:42:10,210 Alors, quand vous obtenez finalement un bon, d'entrée valable à partir du 899 00:42:10,210 --> 00:42:14,490 utilisateur, alors vous voulez le convertir en cents. 900 00:42:14,490 --> 00:42:18,530 Assurez-vous que vous avez autour de la valeur afin de vous éviter ce 901 00:42:18,530 --> 00:42:21,780 flotter imprécision point. 902 00:42:21,780 --> 00:42:22,340 >> D'accord. 903 00:42:22,340 --> 00:42:26,190 Nous avons donc invité l'utilisateur pour un montant monétaire. 904 00:42:26,190 --> 00:42:31,460 Maintenant, ce que nous voulons faire est de vérifier essentiellement, non? 905 00:42:31,460 --> 00:42:35,500 Ok, donc je peux utiliser la plus grande pièce possible? 906 00:42:35,500 --> 00:42:37,040 Si vous le pouvez, puis vous l'utilisez. 907 00:42:37,040 --> 00:42:40,250 Vous assurez le suivi du nombre de pièces que vous avez utilisé jusqu'à présent et 908 00:42:40,250 --> 00:42:41,710 également le montant à la baisse. 909 00:42:41,710 --> 00:42:42,240 Pas vrai? 910 00:42:42,240 --> 00:42:44,880 Et puis vous allez vérifier. 911 00:42:44,880 --> 00:42:47,940 Une fois que vous avez épuisé les types de quartiers, vous voulez aller 912 00:42:47,940 --> 00:42:49,545 à la prochaine chose possible. 913 00:42:49,545 --> 00:42:59,380 >> Donc, genre ce genre de structure ou de ce que la boucle pourrions-nous 914 00:42:59,380 --> 00:43:03,850 souhaitez utiliser pour vérifier en permanence si l'on peut encore utiliser 915 00:43:03,850 --> 00:43:05,100 un quart, par exemple? 916 00:43:07,380 --> 00:43:09,280 HAUT-PARLEUR 6: Valeur Alors que plus de? 917 00:43:09,280 --> 00:43:10,150 ZAMYLA CHAN: Oui, parfait. 918 00:43:10,150 --> 00:43:10,590 Exactement. 919 00:43:10,590 --> 00:43:12,630 Ainsi, alors que la valeur est supérieure. 920 00:43:12,630 --> 00:43:16,300 Ainsi, alors que la valeur que nous devons redonner encore 921 00:43:16,300 --> 00:43:19,410 plus d'un quart, alors que nous pouvons toujours utiliser un trimestre, 922 00:43:19,410 --> 00:43:20,490 utiliser trimestres. 923 00:43:20,490 --> 00:43:21,450 Gardez une trace de cela. 924 00:43:21,450 --> 00:43:22,610 Et puis continuer à avancer. 925 00:43:22,610 --> 00:43:25,040 Parfait. 926 00:43:25,040 --> 00:43:26,290 D'accord. 927 00:43:28,190 --> 00:43:32,580 Oh, je viens ici inclus que quelques conseils sur la façon d'imprimer 928 00:43:32,580 --> 00:43:33,830 valeurs extérieur. 929 00:43:36,330 --> 00:43:38,810 Donc, dans votre fonction printf, nous avons souvent été tout 930 00:43:38,810 --> 00:43:39,760 traiter avec des cordes. 931 00:43:39,760 --> 00:43:43,290 Mais lorsque vous souhaitez imprimer un int ou n'importe quel type d' 932 00:43:43,290 --> 00:43:46,510 chiffres, vous devez écrire genre d'une sorte de place de titulaire. 933 00:43:46,510 --> 00:43:50,840 Donc, qui est représentée par le pour cent,% d pour les entiers. 934 00:43:50,840 --> 00:43:53,780 Vous écrivez que, puis ensuite vous aurez fait - 935 00:43:53,780 --> 00:43:54,900 après une virgule - 936 00:43:54,900 --> 00:43:57,990 mettre en valeur ce qui se passe réellement là-dedans. 937 00:43:57,990 --> 00:43:58,510 Droite. 938 00:43:58,510 --> 00:43:58,840 >> D'accord. 939 00:43:58,840 --> 00:44:02,050 Donc, nous avons déterminé que nous voulons vérifier si - 940 00:44:02,050 --> 00:44:04,950 une façon de le faire serait de vérifier en permanence si 941 00:44:04,950 --> 00:44:08,640 nous pouvons toujours utiliser quarts, puis utilisez les trimestres, gardez 942 00:44:08,640 --> 00:44:11,460 de suivre et de passer ensuite à la valeur plus grand côté. 943 00:44:11,460 --> 00:44:15,010 Maintenant, une autre sorte de belle façon que vous pouvez faire est 944 00:44:15,010 --> 00:44:16,770 utilisant l'opérateur modulo. 945 00:44:16,770 --> 00:44:22,710 Donc, nous avons déjà le plus, moins, multiplier et diviser 946 00:44:22,710 --> 00:44:23,560 à notre disposition. 947 00:44:23,560 --> 00:44:25,600 Mais l'opérateur modulo est un peu soignée. 948 00:44:25,600 --> 00:44:28,630 Ce qu'il fait est qu'elle retourne en fait vous le reste de 949 00:44:28,630 --> 00:44:31,750 divisant deux nombres. 950 00:44:31,750 --> 00:44:34,680 Donc, si vous vous souvenez de la division long quand vous le feriez, par exemple, 951 00:44:34,680 --> 00:44:40,100 faire 74 divisé par 3, vous l'écrire, reporter, 952 00:44:40,100 --> 00:44:43,260 soustraire, et puis à la fin du nombre du bas est 953 00:44:43,260 --> 00:44:44,050 le reste. 954 00:44:44,050 --> 00:44:47,120 Eh bien, ce que modulo-t-il réellement vous donne juste ça. 955 00:44:47,120 --> 00:44:51,290 Ainsi 74 modulo 3 vous donnera 2. 956 00:44:51,290 --> 00:44:56,310 De même, 10 modulo 2 vous donne 0, car il n'ya pas de 957 00:44:56,310 --> 00:44:59,340 reste quand on divise 10 par 2. 958 00:44:59,340 --> 00:45:03,940 6 modulo 5, et 5 va en 6 une fois, puis 959 00:45:03,940 --> 00:45:05,900 elle a quitté au cours de 1. 960 00:45:05,900 --> 00:45:09,930 Alors si vous avez 7 modulo 9, 9 est bien plus grand que 7. 961 00:45:09,930 --> 00:45:11,830 Donc, il ne peut pas aller tout autre moment. 962 00:45:11,830 --> 00:45:15,560 Il est donc logique que la valeur de retour est de 7. 963 00:45:15,560 --> 00:45:21,590 Donc, si vous pensez modulo, comment il vous donne le reste 964 00:45:21,590 --> 00:45:25,170 après vous divisez quelque chose, vous pouvez sorte de voir comment vous 965 00:45:25,170 --> 00:45:27,490 pourrait être en mesure de l'utiliser dans Greedy, non? 966 00:45:30,340 --> 00:45:34,170 Donc, si vous sorte de combiner le modulo peut-être avec la division 967 00:45:34,170 --> 00:45:36,410 opérateur, quelque chose comme ça, alors vous pourriez avoir un endroit frais 968 00:45:36,410 --> 00:45:38,870 sorte de voie mathy d'aborder le problème posé. 969 00:45:44,010 --> 00:45:46,090 >> Alors, maintenant que nous savons qu'il ya un couple de différents 970 00:45:46,090 --> 00:45:48,350 moyens que nous pourrions faire cela - il ya certainement beaucoup de 971 00:45:48,350 --> 00:45:54,160 différentes façons d'écrire, même les boucles while. 972 00:45:54,160 --> 00:45:57,020 J'ai donc écrit quelques pseudo ici. 973 00:45:57,020 --> 00:46:01,760 Il pourrait ne pas être identique à la sorte de squelette de votre 974 00:46:01,760 --> 00:46:02,460 code que vous écrivez. 975 00:46:02,460 --> 00:46:05,580 Mais pour l'essentiel, le processus et la façon de penser est 976 00:46:05,580 --> 00:46:06,940 comme nous en avons discuté. 977 00:46:06,940 --> 00:46:10,310 Alors d'abord, la première ligne est dit d'avoir une certaine quantité 978 00:46:10,310 --> 00:46:12,490 en dollars. 979 00:46:12,490 --> 00:46:16,960 Et puis, il est implicite le convertir en cents. 980 00:46:16,960 --> 00:46:20,540 Puis, alors que les quartiers peuvent être utilisés, nous voulons 981 00:46:20,540 --> 00:46:21,750 augmenter le nombre. 982 00:46:21,750 --> 00:46:24,360 Et puis, nous voulons diminuer la quantité, la valeur 983 00:46:24,360 --> 00:46:25,300 nous revenons en arrière. 984 00:46:25,300 --> 00:46:28,170 Comme vous le voyez ici, ce n'est pas tout à fait C. Mais j'ai aussi 985 00:46:28,170 --> 00:46:31,550 retrait des choses, je mets mes conditions à l'intérieur de 986 00:46:31,550 --> 00:46:32,190 parenthèses. 987 00:46:32,190 --> 00:46:34,370 >> Alors ce genre de m'obtient commencé. 988 00:46:34,370 --> 00:46:36,620 Et puis, plus tard, je peux vérifier la syntaxe. 989 00:46:36,620 --> 00:46:40,230 Souvent, la partie la plus difficile vraiment d'un problème est de 990 00:46:40,230 --> 00:46:41,860 comprendre exactement ce que vous devez faire. 991 00:46:41,860 --> 00:46:44,610 Donc, une fois que vous écrire cela, alors il est beaucoup plus facile pour ensuite 992 00:46:44,610 --> 00:46:45,810 traduire pseudo-code. 993 00:46:45,810 --> 00:46:49,340 Et puis, de pseudo-code, la syntaxe est assez facile. 994 00:46:49,340 --> 00:46:52,140 Ainsi, nous voyons alors que les quartiers, peuvent être utilisés, augmenter le nombre, 995 00:46:52,140 --> 00:46:53,220 diminuer la quantité. 996 00:46:53,220 --> 00:46:57,310 Bien dimes peut être utilisé, puis vous mener ainsi de 997 00:46:57,310 --> 00:47:00,670 suite, jusqu'à ce que vous avez épuisé toutes vos pièces de monnaie. 998 00:47:00,670 --> 00:47:03,410 Vous imprimez le nombre de pièces utilisées, ce qui sera le 999 00:47:03,410 --> 00:47:06,620 montant minimum de rendre l'utilisateur entré valeur. 1000 00:47:06,620 --> 00:47:09,370 Et là vous avez votre algorithme glouton. 1001 00:47:09,370 --> 00:47:13,960 Et puis une fois que vous avez terminé, vous avez également terminé pset 0. 1002 00:47:13,960 --> 00:47:16,155 >> Quelqu'un at-il des questions sur quoi que ce soit? 1003 00:47:19,420 --> 00:47:19,780 Très bien. 1004 00:47:19,780 --> 00:47:22,900 Eh bien, je vais rester un peu après si vous avez 1005 00:47:22,900 --> 00:47:23,970 des questions. 1006 00:47:23,970 --> 00:47:24,940 Cette procédure pas à pas a été 1. 1007 00:47:24,940 --> 00:47:26,190 Merci d'être venu.