1 00:00:00,000 --> 00:00:07,070 [Powered by Google Translate] [♪ ♪ Buzzing] 2 00:00:07,070 --> 00:00:10,380 Donc, pour vous présenter ce que j'ai à l'écran; 3 00:00:10,380 --> 00:00:12,710 il est l'un des outils que nous avons développés au cours de l'été; 4 00:00:12,710 --> 00:00:15,530 il est appelé CS50 espaces, 5 00:00:15,530 --> 00:00:18,860 et c'est notre application collaborative de codage 6 00:00:18,860 --> 00:00:20,180 que nous allons utiliser dans les sections. 7 00:00:20,180 --> 00:00:22,470 C'est plutôt cool. 8 00:00:22,470 --> 00:00:26,040 Avez-vous vu l'un des CS50 long encore? 9 00:00:26,040 --> 00:00:29,760 Permettez-moi de tirer que dans un autre onglet. 10 00:00:29,760 --> 00:00:33,440 Run.cs50.net 11 00:00:33,440 --> 00:00:36,230 Si 12 00:00:36,230 --> 00:00:39,700 si vous allez à run.cs50.net, 13 00:00:39,700 --> 00:00:43,030 vous pouvez le voir c'est un sur votre chemin navigateur pour 14 00:00:43,030 --> 00:00:45,940 effectivement Code - écrire du code C, 15 00:00:45,940 --> 00:00:47,460 et puis l'exécuter, 16 00:00:47,460 --> 00:00:50,960 de sorte qu'il compile à la fois, il fonctionne, puis retourne la sortie pour vous, 17 00:00:50,960 --> 00:00:53,350 donc c'est un peu une façon cool d'expérience 18 00:00:53,350 --> 00:00:56,060 avec une partie du code que David va au-dessus de conférences 19 00:00:56,060 --> 00:00:58,640 et nous donner sur vous des ensembles de problèmes 20 00:00:58,640 --> 00:01:01,900 sans avoir à allumer votre appareil. 21 00:01:01,900 --> 00:01:04,489 >> Alors qu'est-ce que c'est Espaces différent de celui 22 00:01:04,489 --> 00:01:07,450 si je reviens à cet onglet, 23 00:01:07,450 --> 00:01:11,580 Spaces est CS50 terme, comme vous le voyez ici, 24 00:01:11,580 --> 00:01:15,380 mais si nous défiler et regarder de l'autre côté de la fenêtre, 25 00:01:15,380 --> 00:01:18,130 vous voyez la droite, je suis la seule personne dans cet espace, 26 00:01:18,130 --> 00:01:21,030 mais ce que je vais faire est de demander à vous les gars rejoindre cet espace avec moi 27 00:01:21,030 --> 00:01:24,590 et nous aurons tous à code dans la fenêtre même petite, 28 00:01:24,590 --> 00:01:26,070 partager le code avec l'autre, 29 00:01:26,070 --> 00:01:28,900 et parler des différences entre notre code. 30 00:01:28,900 --> 00:01:31,530 Donc, c'est un peu un truc cool - 31 00:01:31,530 --> 00:01:35,770 à se joindre, si vous visitez ce lien ici au sommet 32 00:01:35,770 --> 00:01:38,980 que j'ai mis en évidence, 33 00:01:38,980 --> 00:01:53,860 vous pouvez simplement taper dans apps.cs50.net/spaces/vqcspSnO. 34 00:01:53,860 --> 00:01:56,610 >> Bon, alors pour commencer, 35 00:01:56,610 --> 00:01:59,720 Je vais vous donner un peu d'une visite de cette. 36 00:01:59,720 --> 00:02:01,720 Nous allons faire quelques petites bêtises codage avec elle au premier abord, 37 00:02:01,720 --> 00:02:06,200 juste pour que tout le monde ait un peu une idée de ce que c'est, 38 00:02:06,200 --> 00:02:09,000 mais ce que j'ai fait - 39 00:02:09,000 --> 00:02:11,830 ou ce que je vais faire ici est - 40 00:02:11,830 --> 00:02:13,480 Je vais prendre le code que j'ai écrit ici, 41 00:02:13,480 --> 00:02:15,800 qui, comme vous voyez en ce moment est vide; 42 00:02:15,800 --> 00:02:17,090 il ne fait rien. 43 00:02:17,090 --> 00:02:21,080 C'est juste le code plaque de la chaudière, nous allons l'appeler. 44 00:02:21,080 --> 00:02:23,820 Avec un peu de choses à faire un commentaire. 45 00:02:23,820 --> 00:02:27,850 Je vais l'enregistrer en appuyant sur ce bouton Enregistrer. 46 00:02:27,850 --> 00:02:30,190 Et qu'est-ce qui ne se fait-il 47 00:02:30,190 --> 00:02:34,400 il a souligné ici brièvement - que la case sauvegarde révision vert, 48 00:02:34,400 --> 00:02:37,570 et maintenant, si vous me cherchez de l'espace, 49 00:02:37,570 --> 00:02:40,340 vous cliquez sur mon nom, 50 00:02:40,340 --> 00:02:43,370 vous pouvez voir que j'ai cette révision ici, 51 00:02:43,370 --> 00:02:45,490 et si vous cliquez sur cette révision, 52 00:02:45,490 --> 00:02:48,240 il va charger ce code dans votre espace, aussi. 53 00:02:50,510 --> 00:02:54,160 >> Donc tout le monde a chargé ce code dans leur espace? 54 00:02:54,160 --> 00:02:57,810 Très bien, si vous n'avez pas encore, allez-y et faites cela, 55 00:02:57,810 --> 00:03:01,120 et puis ce que je veux vous les gars à faire dans cette petite section de choses à faire 56 00:03:01,120 --> 00:03:05,940 est d'écrire un peu sur vous-même en utilisant printf, 57 00:03:05,940 --> 00:03:08,310 Ainsi, par exemple, je voudrais écrire 58 00:03:08,310 --> 00:03:12,270 printf ("Je m'appelle Nate"); 59 00:03:15,140 --> 00:03:17,700 puis j'écrirais 60 00:03:17,700 --> 00:03:21,660 "J'ai obtenu mon diplôme en 2009 61 00:03:21,660 --> 00:03:24,440 de Stanford " 62 00:03:26,050 --> 00:03:28,390 et j'aimerais en entendre parler 63 00:03:28,390 --> 00:03:30,270 quelle année vous êtes à l'école, 64 00:03:30,270 --> 00:03:33,910 si vous êtes au collège ou à l'école de commerce 65 00:03:33,910 --> 00:03:36,130 ou d'une autre école de Harvard, 66 00:03:36,130 --> 00:03:39,200 ce que vous étudiez si elle est encore connue; 67 00:03:39,200 --> 00:03:41,290 si on ne sait pas, c'est vraiment cool. 68 00:03:41,290 --> 00:03:45,170 Je n'ai pas décidé jusqu'à ce que j'étais en retard dans ma deuxième année. 69 00:03:46,910 --> 00:03:49,210 et puis j'aimerais aussi savoir 70 00:03:49,210 --> 00:03:51,610 folies que vous voulez me dire ou 71 00:03:51,610 --> 00:03:54,790 quelque chose à propos de la classe ou n'importe quoi d'autre. 72 00:03:56,930 --> 00:04:00,370 Lorsque vous avez fini avec votre écrit que printf peu, 73 00:04:00,370 --> 00:04:03,480 si vous voulez sauver la révision ou plutôt 74 00:04:03,480 --> 00:04:06,080 vérifiez d'abord que vous pouvez l'exécuter 75 00:04:06,080 --> 00:04:10,640 et qu'il imprime exactement ce que vous voulez imprimer, 76 00:04:14,050 --> 00:04:16,399 et puis si vous aller de l'avant et d'économiser cette révision 77 00:04:16,399 --> 00:04:21,600 en utilisant le bouton Enregistrer de révision, ce premier mec peu plus ici, 78 00:04:24,080 --> 00:04:27,340 et nous allons passer un peu et faire une petite introduction de cette façon. 79 00:04:27,340 --> 00:04:30,150 Donc, vous devriez suffit de cliquer sur le bouton Lecture, 80 00:04:30,150 --> 00:04:32,550 qui est ici en haut à gauche, 81 00:04:32,550 --> 00:04:35,340 donc ce bouton Lecture en haut à gauche sera 82 00:04:35,340 --> 00:04:39,050 envoyer votre code hors de notre serveur où il se compile et exécutez. 83 00:04:40,600 --> 00:04:43,300 Alors, quel est un peu fou à ce sujet est 84 00:04:43,300 --> 00:04:46,550 ce code n'est en fait pas en cours d'exécution sur votre ordinateur; 85 00:04:46,550 --> 00:04:49,290 il s'agit en fait d'être envoyés sur Internet. 86 00:04:49,290 --> 00:04:51,240 >> Comment ça va, Charlotte? 87 00:04:51,240 --> 00:04:54,810 Je >> - d'accord. Je suis - je pense que je suis 88 00:04:54,810 --> 00:04:57,330 ayant des difficultés de l'enregistrer 89 00:04:57,330 --> 00:05:00,530 sur le serveur de manière à pouvoir - je peux exécuter le programme. 90 00:05:02,090 --> 00:05:05,780 Et puis, quand je tente de l'exécuter, il dit qu'il ya une erreur. 91 00:05:05,780 --> 00:05:08,850 Déclarée comme un virus, ce qui n'est pas plus là. 92 00:05:08,850 --> 00:05:11,860 Oh, voyons, pouvez-vous frapper à nouveau sur Enregistrer? 93 00:05:11,860 --> 00:05:13,770 Je le vois à l'écran. 94 00:05:13,770 --> 00:05:15,120 Droit >>, d'accord, c'est ce que j'ai. 95 00:05:15,120 --> 00:05:19,430 Et je ne sais pas pourquoi il ne me laisse pas l'exécuter. 96 00:05:22,990 --> 00:05:24,990 Oh, ok, désolé. 97 00:05:27,930 --> 00:05:31,220 Pouvez-vous expliquer pourquoi - ce qui n'allait pas - ce qui ne fonctionnait pas avec elle? 98 00:05:31,220 --> 00:05:34,760 >> Ouais, parce que je n'ai pas vu qu'il y avait une dernière ligne où il ya encore une variable 99 00:05:34,760 --> 00:05:37,700 que je n'avais pas déclaré, que je n'ai pas l'intention pour qu'il soit là. 100 00:05:37,700 --> 00:05:38,730 Ouais, parfait! 101 00:05:38,730 --> 00:05:40,390 >> Maintenant, si je l'enregistrer, je pense que cela devrait fonctionner. 102 00:05:40,390 --> 00:05:42,970 Maintenant que vous avez sauvegardé, cela fonctionne; impressionnant. 103 00:05:42,970 --> 00:05:44,570 >> Donc, oui, que nous traversons - 104 00:05:44,570 --> 00:05:46,690 si ce qui se passait, 105 00:05:46,690 --> 00:05:49,130 Je vais juste répéter cette opération pour la caméra. 106 00:05:49,130 --> 00:05:51,760 Qu'est-ce qui se passe, c'est que cette variable s 107 00:05:51,760 --> 00:05:54,310 a été laissé en après - je suppose que vous avez supprimé quelques autres trucs 108 00:05:54,310 --> 00:05:56,670 où vous avez déclaré que, 109 00:05:56,670 --> 00:05:59,560 et cela a donc été jeter des choses hors tension et n'est pas ce qui vous permet de l'exécuter. 110 00:05:59,560 --> 00:06:02,540 Donc, c'est exactement ce que nous voulons faire dans la section 111 00:06:02,540 --> 00:06:05,690 est les gens ont essayer d'écrire différentes parties du code, 112 00:06:05,690 --> 00:06:08,490 le compiler, voir ce qui fonctionne, ce qui ne fonctionne pas voir, 113 00:06:08,490 --> 00:06:10,730 et puis un peu parler de ces choses, parce que ce sont des points de déclenchement qui 114 00:06:10,730 --> 00:06:12,850 J'ai encore rencontrer, 115 00:06:12,850 --> 00:06:15,470 J'ai encore - Je fais beaucoup de bêtises tout le temps, 116 00:06:15,470 --> 00:06:17,820 et je ne sais pas pourquoi cela ne fonctionne pas, 117 00:06:17,820 --> 00:06:22,960 nous allons donc tirer vers le haut la révision de Charlotte 3, 118 00:06:23,980 --> 00:06:25,380 et nous allons l'exécuter. 119 00:06:25,380 --> 00:06:28,950 >> Alors, quand je cours, maintenant que j'ai obtenu son code ici, 120 00:06:28,950 --> 00:06:31,450 Je peux effectuer un zoom avant, appuyez sur le bouton Exécuter, 121 00:06:31,450 --> 00:06:33,680 l'envoie, il construit, il fonctionne, 122 00:06:33,680 --> 00:06:36,980 dit qu'il a réussi, et si je défiler vers le bas, 123 00:06:36,980 --> 00:06:39,440 voir Charlotte est un junior à Adams House, 124 00:06:39,440 --> 00:06:42,720 psychologie, en économie du secondaire; impressionnant. 125 00:06:42,720 --> 00:06:44,310 Plaisir de vous rencontrer! 126 00:06:44,310 --> 00:06:46,550 Awesome. 127 00:06:46,550 --> 00:06:49,670 Bon, aller plus loin, on y va à Daniel, 128 00:06:49,670 --> 00:06:52,710 aller à la révision 3, 129 00:06:52,710 --> 00:06:54,180 compiler, exécuter; 130 00:06:54,180 --> 00:06:56,680 pourquoi ne pas nous en dire un peu plus sur vous, Daniel? 131 00:06:56,680 --> 00:06:59,380 Appelez-moi >> Dan. 132 00:06:59,380 --> 00:07:01,920 Je vais à l'école d'affaires en face de vous les gars, 133 00:07:01,920 --> 00:07:05,020 et j'étais dans les Marines avant ici, 134 00:07:05,020 --> 00:07:08,020 et c'est tout nouveau pour moi, alors oui. 135 00:07:08,020 --> 00:07:11,060 Ne vous sentez pas mal, j'ai 30 ans et je ne connais pas ce genre de choses. 136 00:07:11,060 --> 00:07:13,800 Awesome; merci, Dan! 137 00:07:13,800 --> 00:07:17,300 Très bien, nous avons un autre Daniel. 138 00:07:17,300 --> 00:07:20,930 Vous allez par Daniel - vous vous présenter, Daniel? 139 00:07:20,930 --> 00:07:22,260 >> >> Bien sûr, je suis Daniel. 140 00:07:22,260 --> 00:07:24,330 Je suis un étudiant en deuxième année à Mather en ce moment. 141 00:07:24,330 --> 00:07:25,840 Je me concentre sur le gouvernement, 142 00:07:25,840 --> 00:07:28,760 mais je voulais prendre CS50 parce que j'ai entendu de bonnes critiques sur la classe 143 00:07:28,760 --> 00:07:30,750 et je n'ai jamais essayé avant de CS. 144 00:07:30,750 --> 00:07:34,680 Descendez ici et lui montrer - cool. 145 00:07:36,330 --> 00:07:39,090 Sur la route, Jared. 146 00:07:39,090 --> 00:07:41,990 Comment ça va? 147 00:07:41,990 --> 00:07:43,430 >> Bon, comment vas-tu? 148 00:07:43,430 --> 00:07:47,520 Comme vous pouvez le voir, je suis un concentrateur philosophie junior Eliot, 149 00:07:47,520 --> 00:07:50,260 originaire du sud de la Californie, 150 00:07:50,260 --> 00:07:53,100 et je suis intéressé à prendre CS50 parce que j'aime la logique de celui-ci, 151 00:07:53,100 --> 00:07:57,420 et il semble vraiment cool de faire des choses sur l'ordinateur, donc. 152 00:07:57,420 --> 00:07:59,570 Awesome; où dans le sud de la Californie êtes-vous? 153 00:07:59,570 --> 00:08:02,340 >> A propos d'une heure de [inaudible], une petite ville [inaudible]. 154 00:08:02,340 --> 00:08:04,850 Oh, oui, mon père est de Redlands. 155 00:08:04,850 --> 00:08:07,060 Cool stuff. 156 00:08:07,060 --> 00:08:12,130 >> Très bien, Jimmy, comment ça va, Jimmy? 157 00:08:12,130 --> 00:08:15,130 >> Bon, comment vas-tu? 158 00:08:15,130 --> 00:08:16,040 S'en sort plutôt bien! 159 00:08:16,040 --> 00:08:17,710 Parlez-nous de vous-même. 160 00:08:17,710 --> 00:08:20,840 >> Je suis un étudiant de première année, et je ne suis pas entièrement sûr de ce que je suis une spécialisation en 161 00:08:20,840 --> 00:08:22,820 mais je suis un peu penché vers l'économie. 162 00:08:22,820 --> 00:08:25,680 Comme Daniel devant moi, je n'ai jamais fait de CS, mais il semble plutôt cool. 163 00:08:25,680 --> 00:08:28,120 Je suis originaire de Chicago. 164 00:08:28,120 --> 00:08:31,640 Awesome. Afin de vérifier son impression ici. 165 00:08:31,640 --> 00:08:34,630 Je voulais vous demander, est-ce d'impression comme vous vous attendiez? 166 00:08:34,630 --> 00:08:37,650 >> Non, j'ai oublié d'imprimer une nouvelle ligne. 167 00:08:37,650 --> 00:08:41,270 En fait, j'ai oublié que quand j'ai écrit mon truc 168 00:08:41,270 --> 00:08:43,090 pour la première fois, aussi. 169 00:08:43,090 --> 00:08:46,330 C'est une sorte de douleur de se rappeler de les remettre dans la main. 170 00:08:46,330 --> 00:08:50,560 Ce serait bien s'il suffit de savoir que ce que tu voulais. 171 00:08:50,560 --> 00:08:53,630 >> Bon, Kelly. 172 00:08:53,630 --> 00:08:56,050 Wow, nous avons 2 Kellys, 2, 2 Kellys Daniels. 173 00:08:56,050 --> 00:09:00,490 Alors Kelly - allez-vous par Kelly Ren? 174 00:09:00,490 --> 00:09:03,870 Ok, génial. 175 00:09:03,870 --> 00:09:07,270 Ou Kelly, je veux dire. 176 00:09:07,270 --> 00:09:10,260 >> Donc oui, je suis Kelly. 177 00:09:10,260 --> 00:09:12,930 Je suis un étudiant en deuxième année Pfoho. 178 00:09:12,930 --> 00:09:17,000 J'ai reçu un e-mail aujourd'hui que j'ai encore 7 semaines pour déclarer ma concentration, 179 00:09:17,000 --> 00:09:20,940 alors j'essaie de ne pas penser à ce sujet, 180 00:09:20,940 --> 00:09:24,090 et j'aime la cuisson, la course et Craisins. 181 00:09:24,090 --> 00:09:29,110 Je n'ai pas d'expérience avec la plupart des CS; 182 00:09:29,110 --> 00:09:32,700 J'ai appris à construire des sites Web lorsque j'étais très jeune, 183 00:09:32,700 --> 00:09:35,750 mais je pense que je me suis enseigné tort à un grand nombre de fois. 184 00:09:35,750 --> 00:09:39,260 J'espère que je vais en apprendre un peu plus 185 00:09:39,260 --> 00:09:41,450 et - oui. 186 00:09:41,450 --> 00:09:44,100 >> Impressionnant, eh bien, je vous remercie. 187 00:09:44,100 --> 00:09:47,190 Allons à l'autre Kelly; 188 00:09:47,190 --> 00:09:48,880 Je n'ai pas de quoi que ce soit - vous avez dit quelque chose ici? 189 00:09:48,880 --> 00:09:51,880 >> [Inaudible] 190 00:09:51,880 --> 00:09:56,180 Il est là! 191 00:09:56,180 --> 00:09:58,120 Sweet! 192 00:09:58,120 --> 00:10:01,400 >> Très bien, alors je suis Kelly. 193 00:10:01,400 --> 00:10:03,980 Je suis un étudiant de première année d'études supérieures. 194 00:10:03,980 --> 00:10:05,560 Je suis spécialisé en esprit, le cerveau et l'éducation. 195 00:10:05,560 --> 00:10:07,940 J'ai obtenu mon diplôme à Franklin & Marshall College en 2008 196 00:10:07,940 --> 00:10:10,840 avec spécialisation en psychologie et en sociologie 197 00:10:10,840 --> 00:10:13,120 et une mineure en français. 198 00:10:13,120 --> 00:10:15,330 Je prends CS50 199 00:10:15,330 --> 00:10:18,080 parce que je suis intéressé à obtenir un doctorat en neurosciences 200 00:10:18,080 --> 00:10:21,220 et je sens que cela va m'aider à comprendre les technologies utilisées. 201 00:10:21,220 --> 00:10:23,150 Awesome. 202 00:10:26,980 --> 00:10:29,390 Sur la route, Mikaela. 203 00:10:29,390 --> 00:10:31,640 Est-ce la bonne prononciation? 204 00:10:31,640 --> 00:10:32,990 Ok, génial. 205 00:10:32,990 --> 00:10:34,640 >> >> Je suis Mikhaila. 206 00:10:34,640 --> 00:10:36,870 Je suis un étudiant en deuxième année à Kirkland House, 207 00:10:36,870 --> 00:10:39,950 et je me concentre en génie mécanique. 208 00:10:39,950 --> 00:10:43,180 J'aime vraiment le vélo, construit un vélo cet été. 209 00:10:43,180 --> 00:10:46,140 Je prends CS, en fait, 210 00:10:46,140 --> 00:10:48,350 une exigence de concentration, 211 00:10:48,350 --> 00:10:52,550 mais vous savez, je pense que c'est toujours cool de sorte ingénierie de classe. 212 00:10:52,550 --> 00:10:55,150 Awesome - vous avez construit un vélo cet été? 213 00:10:55,150 --> 00:10:56,730 Ouais >>. 214 00:10:56,730 --> 00:10:58,900 Wow, comme le cadre et tout ça? 215 00:10:58,900 --> 00:11:00,120 >> Uh-Hunh (discrimination positive). 216 00:11:00,120 --> 00:11:01,530 Wow, c'est vraiment cool. 217 00:11:01,530 --> 00:11:06,370 >> [Inaudible hors caméra chat] 218 00:11:06,370 --> 00:11:10,000 [Rires] 219 00:11:12,640 --> 00:11:14,200 Ouais, ça fait tellement longtemps. 220 00:11:14,200 --> 00:11:16,730 On ne sait jamais, pas vrai? 221 00:11:16,730 --> 00:11:19,420 Eh bien, cool, merci bien, Mikhaila. 222 00:11:19,420 --> 00:11:21,390 >> Très bien, Missy. 223 00:11:21,390 --> 00:11:23,280 >> Je m'appelle Missy, je suis un étudiant de première année, 224 00:11:23,280 --> 00:11:25,500 ce qui signifie que je ne sais rien! 225 00:11:25,500 --> 00:11:29,180 Je veux me concentrer en astrophysique. 226 00:11:29,180 --> 00:11:31,220 En CS50, 227 00:11:31,220 --> 00:11:33,350 Je me sens comme va certainement aider. 228 00:11:33,350 --> 00:11:37,750 Un fait étrange pour moi est que je suis un pompier national certifié. 229 00:11:37,750 --> 00:11:39,960 Wow! 230 00:11:39,960 --> 00:11:42,440 Comment est-ce arrivé? 231 00:11:42,440 --> 00:11:45,570 >> J'ai assisté à une académie 232 00:11:45,570 --> 00:11:49,000 et a vécu l'enfer pour beaucoup de semaines 233 00:11:49,000 --> 00:11:51,200 et j'ai obtenu ma certification. 234 00:11:51,200 --> 00:11:54,090 Wow, congrats! 235 00:11:54,090 --> 00:11:57,280 Ce n'est pas un mince exploit, c'est sûr. 236 00:11:57,280 --> 00:11:59,070 Bon, alors maintenant nous allons le faire moi. 237 00:11:59,070 --> 00:12:01,290 Je suis le prochain sur la ligne. 238 00:12:01,290 --> 00:12:04,510 Je suis - l'exécuter. 239 00:12:04,510 --> 00:12:07,580 >> Alors, mon nom est Nate. 240 00:12:07,580 --> 00:12:11,160 J'étais classe de 2009 à Stanford. 241 00:12:11,160 --> 00:12:13,840 J'ai été un des systèmes symboliques majeures, 242 00:12:13,840 --> 00:12:17,370 qui est similaire à l'esprit, la concentration du comportement du cerveau, ici, 243 00:12:17,370 --> 00:12:19,300 mais c'est un peu un mélange de 244 00:12:19,300 --> 00:12:22,350 informatique, la linguistique, la psychologie et la philosophie. 245 00:12:22,350 --> 00:12:26,600 Kind of - oui, beaucoup de trucs bizarres, mais c'était super, 246 00:12:26,600 --> 00:12:29,880 et puis j'ai fait ma maîtrise en informatique là-bas, aussi. 247 00:12:29,880 --> 00:12:33,250 Donc, je suis nouveau à Harvard cette année. 248 00:12:33,250 --> 00:12:35,750 Je voulais vraiment entrer dans l'enseignement. 249 00:12:35,750 --> 00:12:39,860 J'ai passé les 4 dernières années à Stanford TA-tion des cours d'informatique 250 00:12:39,860 --> 00:12:43,370 et si David me laisser allez, 251 00:12:43,370 --> 00:12:45,550 et je vais être aidé avec CS50, 252 00:12:45,550 --> 00:12:47,890 si je fais ça à temps plein, je ne suis pas à l'école grad. 253 00:12:47,890 --> 00:12:50,330 Il a été amusant. 254 00:12:50,330 --> 00:12:53,130 J'espère que ça va continuer à être amusant, je suis sûr qu'il le fera. 255 00:12:53,130 --> 00:12:56,040 >> Très bien, Sam. 256 00:13:01,910 --> 00:13:05,470 >> Je m'appelle Sam, je suis un étudiant en deuxième année à l'université, dans le droit particulier. 257 00:13:05,470 --> 00:13:10,110 Mon principal sera l'histoire de la science, sans doute, et VES secondaire, 258 00:13:10,110 --> 00:13:13,240 et ma couleur préférée est le jaune. 259 00:13:18,790 --> 00:13:21,100 Pas besoin de porter un jugement ou quoi que ce soit, mais c'est une bonne couleur! 260 00:13:21,100 --> 00:13:24,780 Et Stella. 261 00:13:24,780 --> 00:13:26,980 >> Salut, je suis Stella, je suis un étudiant de première année à Grays. 262 00:13:26,980 --> 00:13:30,070 Je n'ai aucune idée de ce que je me suis concentré dans encore, 263 00:13:30,070 --> 00:13:32,500 si CS50 était juste un peu au hasard, 264 00:13:32,500 --> 00:13:34,220 ce qui est intéressant. 265 00:13:34,220 --> 00:13:36,080 Anecdote, Jimmy a été le premier ami de Harvard de la mine, 266 00:13:36,080 --> 00:13:38,360 parce que nous sommes tous les deux de Chicago. 267 00:13:38,360 --> 00:13:42,450 Cool, et Grace - qui est censé être le seul vraiment sympa, non? 268 00:13:42,450 --> 00:13:45,220 >> Je pensais que [inaudible]. 269 00:13:45,220 --> 00:13:46,690 Oh, ouais. 270 00:13:46,690 --> 00:13:51,210 [Inaudible / chat-appareil photo hors tension] 271 00:13:51,210 --> 00:13:54,420 Bon, je suis encore à apprendre, toujours apprendre. 272 00:13:54,420 --> 00:13:57,800 >> Donc, nous avons quelque chose d'autre qui est assez intéressant ici. 273 00:13:59,600 --> 00:14:02,870 Ouais, je me demandais, avez-vous une idée ce qui se passe ici? 274 00:14:02,870 --> 00:14:05,890 Vous savez comment interpréter cela? 275 00:14:05,890 --> 00:14:13,340 >> Je devais mettre la virgule après chaque ligne. 276 00:14:13,340 --> 00:14:16,370 C'est une sorte de douleur. 277 00:14:16,370 --> 00:14:19,100 Parfois, ces points-virgules peut être une vraie douleur à traquer. 278 00:14:19,100 --> 00:14:21,420 Ainsi, il s'avère que 279 00:14:21,420 --> 00:14:22,820 le programme spécial que nous utilisons cette année pour 280 00:14:22,820 --> 00:14:26,670 compiler notre code C est appelé Clang, 281 00:14:26,670 --> 00:14:29,460 et la raison pour laquelle nous avons commencé à utiliser Clang cette année - 282 00:14:29,460 --> 00:14:32,030 parce que nous n'avons pas utilisé ce programme dans le passé; 283 00:14:32,030 --> 00:14:35,710 nous avons utilisé un autre appelé GCC qui est vraiment populaire - 284 00:14:35,710 --> 00:14:38,420 Clang vous donne en fait des messages d'erreur de sens. 285 00:14:38,420 --> 00:14:41,420 Celui-ci dit «devrait», «après l'expression", 286 00:14:41,420 --> 00:14:45,260 et il vous indique même l'expression, après quoi vous besoin d'un point-virgule. 287 00:14:45,260 --> 00:14:47,830 Donc, vous le réparer? 288 00:14:47,830 --> 00:14:48,930 >> Oui, en ce moment. 289 00:14:48,930 --> 00:14:52,040 Awesome; laissez-moi savoir et nous allons le tirer vers le haut, et nous allons l'exécuter. 290 00:14:52,040 --> 00:14:55,830 Mais oui, mettre ces points-virgules en est une sorte de douleur. 291 00:14:55,830 --> 00:14:59,580 >> Je l'ai corrigé, donc je pense que cela devrait fonctionner. 292 00:14:59,580 --> 00:15:02,760 Awesome - révision 3. 293 00:15:02,760 --> 00:15:05,250 Qui ressemble à cela. 294 00:15:05,250 --> 00:15:08,580 Bon, maintenant si nous l'exécutons, 295 00:15:08,580 --> 00:15:11,020 là, il va. 296 00:15:11,020 --> 00:15:13,830 Cool stuff. 297 00:15:13,830 --> 00:15:15,340 >> Très bien. 298 00:15:15,340 --> 00:15:18,230 Donc merci pour le faire. 299 00:15:18,230 --> 00:15:20,210 C'est formidable de vous rencontrer. 300 00:15:20,210 --> 00:15:22,880 Qu'est-ce qu'on va faire maintenant passer le prochain bit peu 301 00:15:22,880 --> 00:15:24,740 un peu de plonger dans les problèmes de la section 302 00:15:24,740 --> 00:15:27,550 qui viennent de ce problème réglé de cette semaine 303 00:15:27,550 --> 00:15:29,920 et nous allons le faire pour la plupart des sections 304 00:15:29,920 --> 00:15:32,110 pour le reste de la durée, 305 00:15:32,110 --> 00:15:35,580 puis nous allons économiser les 15 dernières, 20 minutes ou plus 306 00:15:35,580 --> 00:15:38,490 pour parler du problème lui-même mis en 307 00:15:38,490 --> 00:15:41,420 puis quelques autres questions que vous avez en général sur la classe. 308 00:15:43,380 --> 00:15:45,670 Cela dit, ce que nous avons vraiment envie de faire 309 00:15:45,670 --> 00:15:49,390 est ont tous ceux qui participent 310 00:15:49,390 --> 00:15:51,500 en utilisant les choses espaces, 311 00:15:51,500 --> 00:15:53,500 jetant dans le code, en jetant des suggestions, 312 00:15:53,500 --> 00:15:56,500 et parle quand des choses comme cette rupture 313 00:15:56,500 --> 00:15:58,360 ou ne fonctionnent pas, juste parce que ce sont des choses que les 314 00:15:58,360 --> 00:16:00,870 Je sais que je suis tombé sur 315 00:16:00,870 --> 00:16:03,180 quand j'ai commencé à coder, 316 00:16:03,180 --> 00:16:05,490 et étaient vraiment un peu frustrant par moments 317 00:16:05,490 --> 00:16:08,690 parce que si c'est comme 2 heures avant votre problème posé est due, 318 00:16:08,690 --> 00:16:11,330 donc - juste pour la communication, 319 00:16:11,330 --> 00:16:14,590 Je n'ai pas commencé la programmation jusqu'à ce que j'étais en deuxième année à l'université. 320 00:16:14,590 --> 00:16:17,360 Il a eu la gentillesse de ce bizarre, chose inconnue 321 00:16:17,360 --> 00:16:20,360 que j'ai entendu, c'est plutôt cool 322 00:16:20,360 --> 00:16:23,590 et j'ai aussi entendu qu'il pourrait être une vraie douleur dans le cul 323 00:16:23,590 --> 00:16:27,610 si vous manquez un point-virgule et c'est la seule erreur maintenir votre programme de travail 324 00:16:27,610 --> 00:16:30,890 et vous empêche de vous endormir, 325 00:16:30,890 --> 00:16:32,650 si définitivement, 326 00:16:32,650 --> 00:16:34,020 si vous avez des questions telles que, 327 00:16:34,020 --> 00:16:37,060 si vous avez des soucis comme ça, laissez-moi savoir, 328 00:16:37,060 --> 00:16:40,050 parce que je veux que ce soit une bonne expérience pour vous les gars. 329 00:16:40,050 --> 00:16:44,620 >> Donc, avez-vous les gars tous les documents téléchargés au problème posé encore? 330 00:16:44,620 --> 00:16:47,160 Kinda savez où il est? D'accord. 331 00:16:47,160 --> 00:16:51,490 Donc, nous allons aller à cs50.net, parce que je ne l'ai pas sur ce compte, 332 00:16:51,490 --> 00:16:54,110 tirer vers le haut les ensembles de problèmes, 333 00:16:54,110 --> 00:16:57,940 tirer vers le haut 2 set problème, et nous allons voir l'édition standard d'aujourd'hui. 334 00:16:57,940 --> 00:17:01,190 Nous allons tirer vers le haut la spécification ici. 335 00:17:02,640 --> 00:17:04,420 Faites défiler vers le bas. 336 00:17:06,790 --> 00:17:11,109 Alors, on va commencer à regarder cette section de questions. 337 00:17:14,069 --> 00:17:16,710 Avez-vous les gars regardé ce short encore? 338 00:17:16,710 --> 00:17:18,329 D'accord. 339 00:17:18,329 --> 00:17:21,329 Donc, il ya courts métrages sur des boucles, 340 00:17:21,329 --> 00:17:24,700 ce qui est fait par Tommy, un des compagnons d'enseignement tête. 341 00:17:24,700 --> 00:17:27,230 Il ya un sur la portée, 342 00:17:27,230 --> 00:17:30,530 Je crois réalisée par un autre adjoint à l'enseignement du nom de David 343 00:17:30,530 --> 00:17:33,400 et puis un autre sur Caesar Cipher également réalisé par David. 344 00:17:33,400 --> 00:17:35,550 Ils sont plutôt sympas. 345 00:17:35,550 --> 00:17:37,770 Avez-vous les gars regarder leurs shorts été jusqu'à présent? 346 00:17:37,770 --> 00:17:39,270 Comment vas-ils? 347 00:17:39,270 --> 00:17:41,490 Utile? Ok, bon à savoir. 348 00:17:41,490 --> 00:17:44,210 S'ils ne sont pas, vous pouvez le dire. 349 00:17:46,290 --> 00:17:49,870 Mais avant de le faire, 350 00:17:49,870 --> 00:17:52,600 Avez-vous les gars regardé ces questions 351 00:17:52,600 --> 00:17:55,430 du tout? 352 00:17:55,430 --> 00:17:57,480 >> Parlons un peu cette question. 353 00:17:57,480 --> 00:18:00,600 Donc, nous avons mis en place au cours des deux dernières semaines 354 00:18:00,600 --> 00:18:02,480 dans la conférence 355 00:18:02,480 --> 00:18:04,910 un certain nombre de boucles différentes. 356 00:18:04,910 --> 00:18:06,140 Il ya la boucle for, 357 00:18:06,140 --> 00:18:09,570 la boucle while, puis la boucle do-while, 358 00:18:09,570 --> 00:18:13,100 et dans la conférence, nous avons beaucoup parlé 359 00:18:13,100 --> 00:18:16,010 comment ces boucles sont tous 360 00:18:16,010 --> 00:18:18,320 assez semblable à beaucoup d'égards, 361 00:18:18,320 --> 00:18:21,210 et vous pouvez faire beaucoup de choses même avec une boucle while 362 00:18:21,210 --> 00:18:23,260 que vous pouvez le faire avec une boucle pour. 363 00:18:23,260 --> 00:18:26,300 Vous avez juste à type d'utilisation les bonnes combinaisons de variables et autres. 364 00:18:26,300 --> 00:18:28,680 et si vraiment 365 00:18:28,680 --> 00:18:31,200 la distinction réelle de l'ensemble des boucles, c'est que 366 00:18:31,200 --> 00:18:33,620 parfois ils sont plus utiles 367 00:18:33,620 --> 00:18:36,930 à les utiliser à un moment qu'à un autre moment. 368 00:18:36,930 --> 00:18:39,340 >> Ainsi, par exemple, 369 00:18:39,340 --> 00:18:42,260 la boucle tout en différant d'une boucle do-while. 370 00:18:42,260 --> 00:18:45,680 Est-ce que tout le monde se sentent comme ils ont une bonne poignée sur le moment où 371 00:18:45,680 --> 00:18:48,650 une boucle do-while est plus 372 00:18:48,650 --> 00:18:50,990 utile ou quelle est la différence? 373 00:18:50,990 --> 00:18:53,410 >> Je pense que la différence est une boucle do-while 374 00:18:53,410 --> 00:18:56,960 court - Je ne sais pas exactement ce que la terminologie est, 375 00:18:56,960 --> 00:18:59,750 mais la série de fonctions à l'intérieur de la boucle. 376 00:18:59,750 --> 00:19:02,020 Ils automatiquement - il fait ses courses au moins 377 00:19:02,020 --> 00:19:05,390 avant de vérifier la condition ou la boucle while ne l'exécuter lorsque 378 00:19:05,390 --> 00:19:08,290 il fonctionne en permanence - si oui ou non la condition est satisfaite. 379 00:19:08,290 --> 00:19:11,010 Ouais, ça fait du sens? 380 00:19:11,010 --> 00:19:14,200 >> Jetons un coup d'oeil à un peu de code. 381 00:19:14,200 --> 00:19:16,930 Il suffit donc de répéter la question, 382 00:19:16,930 --> 00:19:19,230 ou la réponse, plutôt; 383 00:19:19,230 --> 00:19:22,050 la réponse était que 384 00:19:22,050 --> 00:19:25,850 une boucle while va vérifier pour voir si la condition 385 00:19:25,850 --> 00:19:27,440 que vous spécifiez est rencontré 386 00:19:27,440 --> 00:19:31,320 avant l'exécution du corps de la boucle pour la première fois, 387 00:19:31,320 --> 00:19:35,000 tandis que la boucle do-while exécute automatiquement le corps de la boucle, 388 00:19:35,000 --> 00:19:38,450 C'est ce que nous appelons - c'est bizarre terminologie, 389 00:19:38,450 --> 00:19:41,460 mais si je devais dire quelque chose qui n'a pas de sens, laissez-moi savoir - 390 00:19:41,460 --> 00:19:45,360 le corps de la boucle est ce truc que vous avez mis entre les accolades. 391 00:19:45,360 --> 00:19:47,840 Et dans une boucle do-while, 392 00:19:47,840 --> 00:19:50,220 ce corps se lancer au moins une fois, 393 00:19:50,220 --> 00:19:54,460 et alors la condition est vérifié avant qu'il ne s'exécute chaque fois consécutive. 394 00:19:54,460 --> 00:19:56,580 >> Donc en fait, Sam, 395 00:19:56,580 --> 00:20:00,820 ça vous dérange écrire une simple boucle while 396 00:20:00,820 --> 00:20:02,840 dans les espaces? 397 00:20:02,840 --> 00:20:05,600 >> Comment avez-vous un peu comme 398 00:20:05,600 --> 00:20:07,060 faire une nouvelle ...? 399 00:20:07,060 --> 00:20:09,220 Je viens de supprimer tout ce que vous avez là-dedans. 400 00:20:09,220 --> 00:20:11,300 Oui, il suffit de vider. 401 00:20:11,300 --> 00:20:14,510 >> Eh bien, je crois que je vais avoir ce - 402 00:20:14,510 --> 00:20:16,640 qui voulez-vous que, d'un moment, ou voulez-vous ...? 403 00:20:16,640 --> 00:20:19,350 Ouais, tout simplement un moment vrai, imprimer quelque chose. 404 00:20:21,050 --> 00:20:23,140 Et nous allons voir. 405 00:20:23,140 --> 00:20:25,850 Alexandre, j'ai réalisé que nous ne vous mis en place. 406 00:20:25,850 --> 00:20:27,510 >> Oh, c'est bien. 407 00:20:27,510 --> 00:20:30,760 Avez-vous - pouvez-vous coder une boucle do-while pour nous? 408 00:20:30,760 --> 00:20:32,520 >> Ouais, je vais essayer. 409 00:20:32,520 --> 00:20:34,370 Très bien, nous allons tirer de ces sur l'écran, 410 00:20:34,370 --> 00:20:38,240 de sorte que vous sorte de avoir une poignée sur ce que sont les différences. 411 00:20:38,240 --> 00:20:41,280 >> Alors, voici ce que Sam a fait. 412 00:20:41,280 --> 00:20:44,460 Il a appelé un entier i 413 00:20:44,460 --> 00:20:47,480 qu'il est initialisée à 17. 414 00:20:47,480 --> 00:20:51,570 Puis il dit: while (int i = 17) 415 00:20:51,570 --> 00:20:54,230 printf ("Mon nom est Sam."); 416 00:20:54,230 --> 00:20:57,300 Donc ce qui arrive quand on exécuter ce code? 417 00:20:57,300 --> 00:21:00,340 Il ya une erreur, ce qui ne l'd'erreur? 418 00:21:00,340 --> 00:21:02,890 Regardons les choses en tirez vers le haut et d'en parler. 419 00:21:02,890 --> 00:21:05,040 Une erreur s'est produite, dit-il. 420 00:21:05,040 --> 00:21:07,400 Faisons défiler vers le bas. 421 00:21:07,400 --> 00:21:09,460 Donc, il nous a donné cette erreur, et il a dit, 422 00:21:09,460 --> 00:21:12,690 "Hé, je m'attendais à une expression." 423 00:21:12,690 --> 00:21:16,180 C'est un peu cryptique. 424 00:21:19,160 --> 00:21:23,140 Ouais, si exactement - et encore, 425 00:21:23,140 --> 00:21:27,140 il y aura un autre petit bug que nous allons prendre dans une seconde. 426 00:21:27,140 --> 00:21:31,800 Mais cela est une autre de ce genre de choses étranges terminologie, 427 00:21:31,800 --> 00:21:36,150 si cette int i = 17 428 00:21:36,150 --> 00:21:39,290 n'est pas une expression. 429 00:21:39,290 --> 00:21:41,220 Qu'est-ce qu'il dirait qu'il a fait, c'est qu'il est 430 00:21:41,220 --> 00:21:43,410 déclarer un entier appelé i 431 00:21:43,410 --> 00:21:45,540 et sa mise à égaler à 17 432 00:21:45,540 --> 00:21:48,780 ou, plutôt, mettre 17 dans ce que j'ai appelé int. 433 00:21:50,560 --> 00:21:53,350 Et cela n'a pas de sens 434 00:21:53,350 --> 00:21:55,790 dans le cadre de cette boucle. 435 00:21:55,790 --> 00:21:58,190 Il est logique, comme nous le verrons, 436 00:21:58,190 --> 00:22:01,250 dans le contexte d'une boucle for, parce que pour les déclarations de boucle ne commencer 437 00:22:01,250 --> 00:22:05,800 avec celle des int i est égal à quelque chose 438 00:22:05,800 --> 00:22:07,830 et se poursuit. 439 00:22:07,830 --> 00:22:09,500 >> Alors avez-vous - 440 00:22:09,500 --> 00:22:12,630 réparer quelque chose, d'accord. 441 00:22:12,630 --> 00:22:15,270 Ici, il va; impressionnant. 442 00:22:15,270 --> 00:22:17,920 Alors maintenant, les choses sont un peu différentes. 443 00:22:17,920 --> 00:22:19,030 Un couple de choses ont changé. 444 00:22:19,030 --> 00:22:21,300 Pouvez-vous nous dire ce que les choses ont changé? 445 00:22:21,300 --> 00:22:24,950 >> J'ai pris l'int, donc il n'y a pas de déclaration [inaudible] au lieu d'une cession. 446 00:22:24,950 --> 00:22:28,770 Le seul signe égal, je mets 2 signes égal, ce qui signifie un pied d'égalité. 447 00:22:28,770 --> 00:22:30,560 Awesome. 448 00:22:30,560 --> 00:22:33,320 Ouais, et alors que Sam ne fut-il sorti de l'int 449 00:22:33,320 --> 00:22:35,770 qui était ici plus tôt, 450 00:22:35,770 --> 00:22:39,340 donc si je viens de regarder ce - c'est ce qu'elle était auparavant, il a déclaré int, 451 00:22:39,340 --> 00:22:41,970 qui a été le déclarer - nous avons donc pris le type. 452 00:22:41,970 --> 00:22:44,710 Il est int, char, string, bref, 453 00:22:44,710 --> 00:22:47,380 ceux qui sont appelés types. 454 00:22:47,380 --> 00:22:49,510 Donc, vous avez pris le type 455 00:22:49,510 --> 00:22:51,580 puis précédemment, 456 00:22:51,580 --> 00:22:54,190 il a eu juste le seul signe égal 457 00:22:54,190 --> 00:22:57,300 et ce qu'il a dit était problématique à propos de cet été 458 00:22:57,300 --> 00:22:59,580 quand vous avez 1 signe égal, 459 00:22:59,580 --> 00:23:01,780 c'est un opérateur d'affectation. 460 00:23:01,780 --> 00:23:04,930 Ce n'est pas de tester si oui ou non 2 choses sont égales. 461 00:23:04,930 --> 00:23:07,920 C'est effectivement quelque chose d'égal à fixer quelque chose. 462 00:23:07,920 --> 00:23:11,110 Nous mettons le numéro 17 dans la variable i. 463 00:23:11,110 --> 00:23:13,850 Donc, pour faire ce genre de comparaison, 464 00:23:13,850 --> 00:23:16,430 vous devez utiliser le double égaux, 465 00:23:16,430 --> 00:23:19,640 qui est une sorte de truc bizarre 466 00:23:19,640 --> 00:23:22,760 mais c'est une erreur assez commune. 467 00:23:23,980 --> 00:23:27,830 Donc, une autre chose que je vais souligner, si vous le voulez bien, 468 00:23:27,830 --> 00:23:30,610 est que, dans 469 00:23:30,610 --> 00:23:33,210 notre fonction ici en int main, 470 00:23:33,210 --> 00:23:36,740 vous voyez que le corps de notre fonction 471 00:23:36,740 --> 00:23:39,810 est décalé par rapport au côté gauche 472 00:23:39,810 --> 00:23:42,400 de 4 espaces ou des tabulations. 473 00:23:42,400 --> 00:23:44,730 La raison pour laquelle nous faisons cela 474 00:23:44,730 --> 00:23:47,000 est juste pour une meilleure lisibilité. 475 00:23:47,000 --> 00:23:51,620 Comme vous pouvez le voir en boucle tandis que Sam est ici, 476 00:23:51,620 --> 00:23:53,120 il n'a pas du tout tiret, 477 00:23:53,120 --> 00:23:55,390 et qui n'affecte pas la fonctionnalité du code. 478 00:23:55,390 --> 00:23:57,860 Il se déroulera exactement le même. 479 00:23:57,860 --> 00:24:00,950 >> Ainsi, par exemple, si nous arrivons au sommet ici 480 00:24:00,950 --> 00:24:02,680 et appuyez sur le bouton Lecture notre, il va le construire, 481 00:24:02,680 --> 00:24:04,470 il va l'exécuter, 482 00:24:04,470 --> 00:24:06,700 et ce qui va se passer? 483 00:24:06,700 --> 00:24:08,360 Pourquoi faut-il toujours dire la course? 484 00:24:08,360 --> 00:24:10,560 Parce que ça va >> répéter salut. 485 00:24:10,560 --> 00:24:12,900 Exactement, et pourquoi faut-il répéter salut? 486 00:24:12,900 --> 00:24:15,850 Parce que le entier >> ne change jamais, donc c'est toujours 17. 487 00:24:15,850 --> 00:24:18,030 Oui, exactement, de sorte 488 00:24:18,030 --> 00:24:20,970 Voyons, après - me rappeler votre nom? 489 00:24:20,970 --> 00:24:24,020 Jimmy. Alors Jimmy a dit que 490 00:24:24,020 --> 00:24:27,340 la raison de ce salut ne cesse de répéter encore et encore 491 00:24:27,340 --> 00:24:30,510 C'est parce que cette condition est toujours vraie. 492 00:24:30,510 --> 00:24:33,270 Nous n'avons jamais changer la valeur de i. 493 00:24:33,270 --> 00:24:36,170 Nous n'avons jamais modifier le contenu de ce qui est stocké dans cette variable. 494 00:24:36,170 --> 00:24:39,180 Donc, à ce stade, nous avons eu cette erreur 495 00:24:39,180 --> 00:24:42,170 votre programme de sortie généré trop, 496 00:24:42,170 --> 00:24:45,100 et si nous défiler vers le bas et le genre de regard sur ce qui se passe ici, 497 00:24:45,100 --> 00:24:49,160 vous pouvez voir qu'il est salut, salut, salut, salut, salut, salut, salut tout le chemin à travers. 498 00:24:49,160 --> 00:24:51,200 Awesome. 499 00:24:51,200 --> 00:24:53,750 >> Alors sorte de retour au point de départ 500 00:24:53,750 --> 00:24:57,020 que d'avoir l'indentation ici 501 00:24:57,020 --> 00:25:00,110 dans le corps de la boucle while ne changera rien. 502 00:25:00,110 --> 00:25:03,050 Le programme courait toujours très bien. 503 00:25:03,050 --> 00:25:06,790 Typiquement, pour un bon style - 504 00:25:06,790 --> 00:25:10,210 et c'est quelque chose que nous recherchons dans vos ensembles de problèmes - 505 00:25:10,210 --> 00:25:13,930 nous vous demandons de tiret de ce par 4 espaces, que vous pouvez faire 506 00:25:13,930 --> 00:25:16,440 en appuyant simplement sur la touche de tabulation 507 00:25:16,440 --> 00:25:18,860 ou manuellement en mettant en 4 espaces vous-même. 508 00:25:21,880 --> 00:25:25,050 Cool, ok nous allons donc revenir en arrière et regarder 509 00:25:25,050 --> 00:25:30,460 Alexandre do-while. 510 00:25:30,460 --> 00:25:32,980 Juste un peu >> un peu de mal. 511 00:25:32,980 --> 00:25:34,390 Bon, eh bien nous allons travailler à travers elle. 512 00:25:34,390 --> 00:25:36,400 Est-ce cool? 513 00:25:36,400 --> 00:25:37,430 Ouais >>. 514 00:25:37,430 --> 00:25:39,200 >> Bon, alors on y va. 515 00:25:39,200 --> 00:25:41,010 C'est le code qui a écrit Alexander. 516 00:25:41,010 --> 00:25:43,410 Allez-vous par Alex - d'accord. 517 00:25:43,410 --> 00:25:46,380 Alors, voici le code que Alex a écrit. 518 00:25:46,380 --> 00:25:50,500 Donc, nous avons notre déclaration de principal ici, 519 00:25:50,500 --> 00:25:54,410 puis nous avons obtenu cette variable entière appelée i 520 00:25:54,410 --> 00:25:57,320 être déclarés ici. 521 00:25:57,320 --> 00:26:01,060 Nous avons une déclaration do 522 00:26:01,060 --> 00:26:04,600 et puis de nouveau le corps de ces entretoises, 523 00:26:04,600 --> 00:26:06,520 c'est donc le corps du do-while - 524 00:26:06,520 --> 00:26:09,210 permettez-moi de faire un zoom sur ce il est donc plus lisible - 525 00:26:09,210 --> 00:26:12,730 et dans le corps, nous essayons d'afficher "ceci est le corps», 526 00:26:12,730 --> 00:26:14,300 i + +, 527 00:26:14,300 --> 00:26:17,710 afin d'incrémenter le contenu de i et faire 528 00:26:17,710 --> 00:26:19,470 jusqu'à ce que je commence à être 3, 529 00:26:19,470 --> 00:26:22,440 et puis notre programme se termine. 530 00:26:22,440 --> 00:26:24,680 >> Donc ce qui arrive quand on exécuter ce programme? 531 00:26:24,680 --> 00:26:27,580 >> Je m'attendais à un identifiant. 532 00:26:27,580 --> 00:26:32,070 Bon, build, run, une erreur se produit. 533 00:26:32,070 --> 00:26:34,820 Qu'est-ce qui se passe? 534 00:26:34,820 --> 00:26:37,060 Nous défiler vers le bas ici, 535 00:26:37,060 --> 00:26:40,260 nous obtenons cette chose quelque peu énigmatique à la recherche, 536 00:26:40,260 --> 00:26:43,930 devrait-virgule après la déclaration de haut niveau. 537 00:26:43,930 --> 00:26:46,620 C'est un peu bizarre. 538 00:26:46,620 --> 00:26:50,990 Est-ce que quelqu'un a une idée de ce qui pourrait se passer? 539 00:26:53,080 --> 00:26:54,640 Un peu bizarre, ouais. 540 00:26:54,640 --> 00:26:57,640 >> [Inaudible] être déclarée en dehors des parenthèses? 541 00:26:57,640 --> 00:27:03,480 Ne s'applique pas si bien que puis quand vous utilisez des parenthèses? 542 00:27:03,480 --> 00:27:07,390 Ainsi, il a déclaré ce type en dehors de laquelle parenthèses? 543 00:27:09,670 --> 00:27:12,240 Oh, ces gars-là - les accolades? 544 00:27:12,240 --> 00:27:13,850 Ouais >>. 545 00:27:13,850 --> 00:27:15,310 Oui, exactement. 546 00:27:15,310 --> 00:27:17,120 Ainsi, il s'avère que 547 00:27:17,120 --> 00:27:21,550 vous ne pouvez pas réellement déclarer une variable, ici comme ça. 548 00:27:23,750 --> 00:27:26,690 Qu'est-ce que vous pourriez avoir essayé de faire était - 549 00:27:26,690 --> 00:27:30,110 découpez-le de là - 550 00:27:30,110 --> 00:27:34,330 vous pouvez le mettre entre les accolades ici 551 00:27:34,330 --> 00:27:37,400 ou une autre solution de rechange 552 00:27:37,400 --> 00:27:40,350 est de mettre complètement à l'extérieur. 553 00:27:42,480 --> 00:27:46,610 Et si ceux-ci - selon l'endroit où vous avez réellement mettre la déclaration 554 00:27:46,610 --> 00:27:48,550 de cette variable entière, 555 00:27:48,550 --> 00:27:53,540 vous pouvez obtenir 2 types très différents de variables; 556 00:27:53,540 --> 00:27:55,100 quand il est en dehors de la principale, 557 00:27:55,100 --> 00:27:58,240 c'est ce que nous appelons une variable globale. 558 00:27:58,240 --> 00:28:00,070 C'est en dehors de la portée de toutes les fonctions - 559 00:28:00,070 --> 00:28:03,420 ce n'est pas dans une fonction - 560 00:28:03,420 --> 00:28:07,050 alors que si on le met à l'intérieur du principal, 561 00:28:07,050 --> 00:28:10,000 comme ici, alors ça s'appelle une variable locale, 562 00:28:10,000 --> 00:28:13,830 parce que c'est à la portée locale de main. 563 00:28:13,830 --> 00:28:16,720 Et nous allons parler un peu plus sur ce que les différences sont 564 00:28:16,720 --> 00:28:20,970 entre les 2 types et pourquoi vous utilisez différents types de variables, 565 00:28:20,970 --> 00:28:23,040 mais pour l'instant, 566 00:28:23,040 --> 00:28:25,070 vous pouvez juste garder toutes les variables locales, 567 00:28:25,070 --> 00:28:28,320 parce que nous n'avons pas besoin de variables globales. 568 00:28:28,320 --> 00:28:31,390 >> Ok, donc c'est une bonne chose là-bas. 569 00:28:31,390 --> 00:28:34,680 Nous allons essayer de lancer ce nouveau, voir ce qui se passe. 570 00:28:37,420 --> 00:28:40,270 Exécuter, obtenir une autre erreur. 571 00:28:40,270 --> 00:28:43,320 Zoom un peu, qu'est-ce que nous obtenons? 572 00:28:45,110 --> 00:28:50,000 Nous obtenons cette parenthèse attendue après do / while. 573 00:28:53,660 --> 00:28:55,260 Toutes les idées ce qui se passe? Dan? 574 00:28:55,260 --> 00:28:58,880 >> Le moment puis entre parenthèses, puis - 575 00:28:58,880 --> 00:29:01,990 Je ne sais pas si vous avez besoin de re-déclarer int, 576 00:29:01,990 --> 00:29:04,980 mais le faire while (i <3). 577 00:29:04,980 --> 00:29:06,930 Exactement, oui. 578 00:29:06,930 --> 00:29:08,830 Ainsi, il s'avère que Dan est tout à fait exact. 579 00:29:08,830 --> 00:29:11,230 Nous n'avons pas besoin de mettre ce type ici. 580 00:29:11,230 --> 00:29:14,440 Nous pouvons tuer plutôt que le type 581 00:29:14,440 --> 00:29:17,220 et de faire juste cela. 582 00:29:19,270 --> 00:29:21,640 Très bien. 583 00:29:21,640 --> 00:29:24,950 Je vais effectuer un zoom arrière, l'essayer une fois de plus. 584 00:29:26,360 --> 00:29:29,580 Regardez ça, il fonctionne avec succès. 585 00:29:29,580 --> 00:29:33,260 Si nous défiler vers le bas », c'est le corps» imprimé 3 fois. 586 00:29:33,260 --> 00:29:35,820 C'est assez doux. 587 00:29:35,820 --> 00:29:38,670 Bien joué, bien joué, les gars. 588 00:29:38,670 --> 00:29:41,080 Bien fait. 589 00:29:41,080 --> 00:29:43,250 Comment est ce que ça va si loin? 590 00:29:43,250 --> 00:29:46,200 Rythme décent? 591 00:29:46,200 --> 00:29:49,200 Ok, cool. 592 00:29:49,200 --> 00:29:52,590 >> Ainsi, comme nous sorte de revenir à la question initiale, 593 00:29:52,590 --> 00:29:55,430 nous - et maintenant, si nous voyons la différence, 594 00:29:55,430 --> 00:29:58,240 vous voyez que dans cette boucle do-while, 595 00:29:58,240 --> 00:30:00,030 la condition vient en dernier. 596 00:30:00,030 --> 00:30:02,530 Alors que l'ordinateur lit le programme 597 00:30:02,530 --> 00:30:06,050 puisque les programmes C sont exécutées en quelque sorte dans cet ordre séquentiel, 598 00:30:06,050 --> 00:30:09,450 où ils ont littéralement commencer par la première ligne du principal, 599 00:30:09,450 --> 00:30:13,450 puis exécutez la ligne 6, ligne 7, ligne 8, ligne 9, 600 00:30:13,450 --> 00:30:16,150 ligne 10, ligne 11, 601 00:30:16,150 --> 00:30:18,440 tous ces trucs en haut à droite ici 602 00:30:18,440 --> 00:30:20,020 va exécuter une fois 603 00:30:20,020 --> 00:30:23,350 avant que nous ayons tester cette condition à voir 604 00:30:23,350 --> 00:30:26,240 si oui ou non i - ou le contenu de i, plutôt - 605 00:30:26,240 --> 00:30:29,750 est inférieur au nombre 3. 606 00:30:29,750 --> 00:30:33,300 Et seulement si, une fois nous arrivons à la ligne 12, 607 00:30:33,300 --> 00:30:36,260 le contenu du i est inférieur à 3 608 00:30:36,260 --> 00:30:39,150 ne nous fait revenir en arrière à la ligne 7 609 00:30:39,150 --> 00:30:41,140 puis répétez le processus, 610 00:30:41,140 --> 00:30:44,620 puis nous testons la condition encore et encore et encore. 611 00:30:44,620 --> 00:30:47,440 >> Ainsi, nous pouvons comparer ce 612 00:30:47,440 --> 00:30:50,240 avec - zoom revenir en arrière, 613 00:30:50,240 --> 00:30:56,500 faites défiler vers la version de Sam, 614 00:30:56,500 --> 00:31:00,760 nous allons regarder cela, légèrement modifiée de sorte que ce n'est plus une boucle infinie - 615 00:31:00,760 --> 00:31:03,570 où si l'on zoom avant, 616 00:31:03,570 --> 00:31:06,300 nous voyons que ce programme s'exécute, 617 00:31:06,300 --> 00:31:09,120 il va d'abord déclarer int i, 618 00:31:09,120 --> 00:31:12,030 définir le contenu de i est à 0, 619 00:31:12,030 --> 00:31:15,820 puis il frappe la condition de la boucle tandis que premier, 620 00:31:15,820 --> 00:31:19,210 dans ce cas, ce corps, cette printf ("salut") et i + + 621 00:31:19,210 --> 00:31:21,630 ne sera même pas exécuter 622 00:31:21,630 --> 00:31:24,310 sauf si i est effectivement inférieure ou égale à 2. 623 00:31:24,310 --> 00:31:26,750 Donc, si i est 3, par exemple, 624 00:31:26,750 --> 00:31:28,840 si l'on met ce droit ici 625 00:31:28,840 --> 00:31:32,160 égal à 4 - ou je vais faire 3, parce que j'ai dit 3 - 626 00:31:32,160 --> 00:31:34,890 et puis l'exécuter, 627 00:31:34,890 --> 00:31:38,320 il va construire, ça va fonctionner tout à fait bien, 628 00:31:38,320 --> 00:31:40,530 mais il ne sera pas réellement imprimer quoi que ce soit, 629 00:31:40,530 --> 00:31:43,030 car il échoué à cette épreuve pour le premier cas. 630 00:31:44,780 --> 00:31:47,530 Ainsi, en classe, nous avons un peu parlé de pourquoi ces boucles do-while 631 00:31:47,530 --> 00:31:49,800 sont utiles parfois 632 00:31:49,800 --> 00:31:53,140 et pourquoi nous l'utiliser, par opposition à une boucle while. 633 00:31:53,140 --> 00:31:56,450 >> Y at-il - ne vous les gars avez des suggestions 634 00:31:56,450 --> 00:31:59,090 raison pour laquelle une boucle do-while pourrait être plus utile? 635 00:31:59,090 --> 00:32:02,560 >> Eh bien, je pense boucles do-while est que si vous voulez entrée de l'utilisateur, 636 00:32:02,560 --> 00:32:05,020 car de cette manière vous pouvez les laisser 637 00:32:05,020 --> 00:32:07,780 mettre quelque chose en une fois, si elle est correcte, 638 00:32:07,780 --> 00:32:09,300 nous pouvons passer à la suite du programme, 639 00:32:09,300 --> 00:32:11,250 mais si elle n'est pas correcte, puis vous continuez à demander à l'utilisateur 640 00:32:11,250 --> 00:32:13,250 jusqu'à ce que vous mettez l'entrée droite. 641 00:32:13,250 --> 00:32:14,260 Ouais, exactement - exactement, 642 00:32:14,260 --> 00:32:16,840 si une boucle do-while est utile 643 00:32:16,840 --> 00:32:18,930 parce que lors de la demande de saisie de l'utilisateur 644 00:32:18,930 --> 00:32:23,000 car vous avez besoin d'obtenir les commentaires de l'utilisateur avant que vous pouvez réellement le vérifier. 645 00:32:23,000 --> 00:32:27,330 Donc, en pset 1, dans pset 2, 646 00:32:27,330 --> 00:32:29,650 où vous invitant à l'entrée d'utilisateur d'un lot, 647 00:32:29,650 --> 00:32:31,200 c'est une chose très pratique à utiliser 648 00:32:31,200 --> 00:32:33,740 par opposition à une simple boucle while simple. 649 00:32:33,740 --> 00:32:36,780 Si vous utilisez une boucle while, vous pouvez faire la même chose - 650 00:32:36,780 --> 00:32:38,750 vous pouvez faire la même chose avec une boucle while 651 00:32:38,750 --> 00:32:40,580 comme vous le feriez avec une boucle do-while. 652 00:32:40,580 --> 00:32:43,380 Vous avez juste à avoir cette sorte de processus de copie 653 00:32:43,380 --> 00:32:47,010 où vous obtenez la première entrée, puis démarrez votre boucle while. 654 00:32:47,010 --> 00:32:49,800 Alors qu'une boucle do-while, il vous suffit de l'écrire une fois 655 00:32:49,800 --> 00:32:52,430 et il est beaucoup plus propre. 656 00:32:52,430 --> 00:32:54,650 >> Très bien. 657 00:32:55,970 --> 00:32:57,330 Des questions? 658 00:32:59,350 --> 00:33:01,380 Donner un sens? 659 00:33:01,380 --> 00:33:06,200 >> Le retour 0 - c'est juste une sorte de décrochage ou est-ce -? 660 00:33:06,200 --> 00:33:08,960 Ouais, et alors nous pouvons - 661 00:33:08,960 --> 00:33:11,960 eh bien, nous verrons cela un peu plus tard 662 00:33:11,960 --> 00:33:13,290 mais il s'avère que 663 00:33:13,290 --> 00:33:15,720 ce retour 0 que nous avons mis 664 00:33:15,720 --> 00:33:19,090 à la fin de tout le temps principal - 665 00:33:19,090 --> 00:33:21,980 vous pouvez simplement prendre un peu comme quelque chose que nous faisons 666 00:33:21,980 --> 00:33:24,930 pour le moment. 667 00:33:24,930 --> 00:33:28,860 Ce que nous avons commencé à parler avec les fonctions 668 00:33:28,860 --> 00:33:31,600 sorte qu'à la fin de la semaine dernière et encore cette semaine 669 00:33:31,600 --> 00:33:33,550 est une fonction qui 670 00:33:33,550 --> 00:33:37,680 prend des données qui sont ces choses à l'intérieur des parenthèses; 671 00:33:37,680 --> 00:33:41,690 ce sont 2 entrées, nos arguments ou paramètres, 672 00:33:41,690 --> 00:33:44,540 ce qu'ils sont aussi appelés à notre fonction principale, 673 00:33:44,540 --> 00:33:48,510 puis une fonction produit un signal de sortie 674 00:33:48,510 --> 00:33:51,290 que nous appelons une valeur de retour. 675 00:33:51,290 --> 00:33:56,260 Et la valeur de retour dans le cas de ce principal est int, 676 00:33:56,260 --> 00:33:58,320 ce nombre entier, 677 00:33:58,320 --> 00:34:01,160 et la façon dont vous dire une fonction, "Hé, c'est ce que votre sortie 678 00:34:01,160 --> 00:34:05,840 va être ", c'est avec ce mot« retour », 679 00:34:05,840 --> 00:34:07,960 ce mot-clé, plutôt, 680 00:34:07,960 --> 00:34:11,000 et ainsi de suite principale renvoyer 0 681 00:34:11,000 --> 00:34:13,389 ou la sortie principale 0 682 00:34:13,389 --> 00:34:15,139 est la norme dans les programmes C 683 00:34:15,139 --> 00:34:18,110 car le retour 0 de principaux moyens que les 684 00:34:18,110 --> 00:34:21,600 "Hé, tout exécuté avec mon programme très bien." 685 00:34:21,600 --> 00:34:24,639 Si nous devions mettre autre chose que 0, 686 00:34:24,639 --> 00:34:27,440 1 comme, par exemple, 687 00:34:27,440 --> 00:34:31,080 qui est utilisé pour dire à quiconque ce programme s'est 688 00:34:31,080 --> 00:34:33,540 que quelque chose s'est mal passé. 689 00:34:35,739 --> 00:34:39,989 Alors que nous s'impliquer davantage avec des trucs sur le semestre, 690 00:34:39,989 --> 00:34:42,670 si vous êtes jamais avoir à dire, 691 00:34:42,670 --> 00:34:46,650 "Oups, vous savez, quelque chose se passait mal avec ce programme», 692 00:34:46,650 --> 00:34:49,409 plutôt que d'avoir mon plantage du programme, je tiens à informer 693 00:34:49,409 --> 00:34:52,310 le coureur de mon programme que quelque chose s'est mal passé, 694 00:34:52,310 --> 00:34:54,530 vous pouvez utiliser la valeur de retour, 695 00:34:54,530 --> 00:34:57,230 comme on l'appelle, ce n'est pas 0. 696 00:35:00,180 --> 00:35:02,240 >> Donc, nous verrons cela un peu plus 697 00:35:02,240 --> 00:35:05,480 fois que nous obtenons en fonctions. 698 00:35:05,480 --> 00:35:09,030 Ce genre de logique? 699 00:35:09,030 --> 00:35:11,240 D'accord. 700 00:35:11,240 --> 00:35:13,530 Fonctions sont un peu bizarre - 701 00:35:13,530 --> 00:35:17,270 Je pense que pour les gens qui ont beaucoup d'arrière-plan mathématique, 702 00:35:17,270 --> 00:35:20,100 il s'agit un peu plus facilement, 703 00:35:20,100 --> 00:35:22,540 surtout si vous avez un peu de fond les mathématiques plus abstraites 704 00:35:22,540 --> 00:35:24,240 et vous avez l'habitude de parler de fonctions 705 00:35:24,240 --> 00:35:27,370 et tout ce genre de trucs. 706 00:35:28,590 --> 00:35:30,610 Mais nous allons essayer de les couvrir 707 00:35:30,610 --> 00:35:33,280 et aller gentil et lent à mesure qu'ils surviennent. 708 00:35:34,730 --> 00:35:37,870 De même, cette argc int entier, 709 00:35:37,870 --> 00:35:41,090 char * argv [], 710 00:35:41,090 --> 00:35:44,960 pour le moment, vous pouvez aussi profiter de plaque de la chaudière en. 711 00:35:46,650 --> 00:35:49,050 Nous avons commencé à couvrir les bits un peu de lecture 712 00:35:49,050 --> 00:35:53,060 lorsque nous parlons des arguments qui se passaient dans les programmes en ligne de commande, 713 00:35:53,060 --> 00:35:55,700 mais dans vos ensembles de problèmes et de vos programmes, 714 00:35:55,700 --> 00:35:58,760 il est tout à fait bien peu pour écrire nulle et garder les choses simples. 715 00:35:58,760 --> 00:36:01,490 Et ce que cela signifie, c'est que nulle 716 00:36:01,490 --> 00:36:04,630 "Hé, principal n'est pas prêt à accepter toutes les entrées; 717 00:36:04,630 --> 00:36:07,440 c'est juste un programme on va faire il suffit d'exécuter. 718 00:36:07,440 --> 00:36:09,320 On ne va pas lui donner toute information supplémentaire 719 00:36:09,320 --> 00:36:12,420 chaque fois que nous commencer la course à pied. " 720 00:36:14,730 --> 00:36:16,600 Donc pour l'instant, vous pouvez le faire; 721 00:36:16,600 --> 00:36:19,710 vous pouvez également omettre le même retour 0 722 00:36:19,710 --> 00:36:22,650 à la fin de vos programmes et ils vont courir très bien, 723 00:36:22,650 --> 00:36:26,150 mais je vous recommande juste garder que po 724 00:36:26,150 --> 00:36:28,320 Dans quelques semaines, nous allons commencer à type de 725 00:36:28,320 --> 00:36:31,340 retirer le couvercle un peu et de mieux comprendre 726 00:36:31,340 --> 00:36:34,380 toutes ces différentes petites pièces mobiles. 727 00:36:34,380 --> 00:36:38,160 >> Très bien, maintenant nous allons parler de notre deuxième question ici. 728 00:36:38,160 --> 00:36:43,190 Alors qu'est-ce que "identificateur non déclaré" indiquent généralement 729 00:36:43,190 --> 00:36:46,040 si délivré par Clang? 730 00:36:46,040 --> 00:36:49,290 Je pense que nous aurions pu voir que déjà aujourd'hui. 731 00:36:51,170 --> 00:36:54,370 Quelqu'un peut-il donner un résumé de ce que cela signifie? 732 00:36:54,370 --> 00:36:57,680 Voyons, Kelly - l'un des Kellys. 733 00:37:02,580 --> 00:37:05,300 Alors >> - 734 00:37:05,300 --> 00:37:07,080 Ouais, qu'est-ce que - 735 00:37:07,080 --> 00:37:10,140 >> Je pense que lorsque vous, comme, ne pas déclarer les variables et que vous essayez de l'utiliser. 736 00:37:10,140 --> 00:37:13,310 Oui, exactement, exactement. 737 00:37:13,310 --> 00:37:15,250 Donc, si jamais vous voyez cette sortie 738 00:37:15,250 --> 00:37:17,690 lorsque vous essayez de compiler votre programme, 739 00:37:17,690 --> 00:37:19,470 tout comme Kelly a dit: 740 00:37:19,470 --> 00:37:24,210 cela signifie que vous avez utilisé une variable que vous n'avez pas déclaré, 741 00:37:24,210 --> 00:37:28,460 donc si je reviens à notre espace, 742 00:37:28,460 --> 00:37:31,150 et je fais quelque chose comme 743 00:37:31,150 --> 00:37:34,800 printf ( 744 00:37:34,800 --> 00:37:38,260 "% S bonjour") 745 00:37:40,070 --> 00:37:42,440 et d'essayer de combler cette% s 746 00:37:42,440 --> 00:37:45,640 avec une variable s que je n'ai pas déclarée nulle 747 00:37:45,640 --> 00:37:48,330 et j'essaie de l'exécuter, 748 00:37:48,330 --> 00:37:51,330 vous verrez ce que je descends à cet en bas à droite ici: 749 00:37:51,330 --> 00:37:54,010 "L'utilisation de identificateur non déclaré" s ""; 750 00:37:54,010 --> 00:37:57,710 cela signifie simplement que vous n'avez pas déclarer votre variable. 751 00:37:57,710 --> 00:38:00,750 C'est la même chose qui se passe si 752 00:38:00,750 --> 00:38:05,240 vous avez x et que vous essayez de stocker et 7 dans l' 753 00:38:05,240 --> 00:38:08,720 et je n'ai pas déclarer X. 754 00:38:08,720 --> 00:38:10,200 Je reçois la même erreur: 755 00:38:10,200 --> 00:38:13,480 "L'utilisation de 'x' identificateur non déclaré". 756 00:38:16,390 --> 00:38:18,250 >> Tout droit, 757 00:38:18,250 --> 00:38:21,720 de sorte que le chiffre de César, n'étant pas très sécurisé, 758 00:38:21,720 --> 00:38:24,590 Je vais vous laisser regarder cette courte, sorte de comprendre pourquoi, 759 00:38:24,590 --> 00:38:27,590 et nous espérons que, après avoir fait problème cette semaine mis en 760 00:38:27,590 --> 00:38:29,270 où vous avez réellement écrire un chiffrement de César, vous comprendrez un peu plus 761 00:38:29,270 --> 00:38:32,600 sur ce que cela signifie d'être un environnement sûr et sécurisé - 762 00:38:36,180 --> 00:38:38,960 ou non sécurisé, je suppose - l'insécurité est légèrement différente. 763 00:38:40,560 --> 00:38:43,140 L'autre chose est que nous avons ces autres questions ici 764 00:38:43,140 --> 00:38:45,470 sur les fonctions 765 00:38:45,470 --> 00:38:47,330 et ce qui est une fonction, 766 00:38:47,330 --> 00:38:52,820 et nous avons un peu parlé brièvement quand nous avons parlé des valeurs de retour; 767 00:38:52,820 --> 00:38:54,560 pour quelqu'un qui a été à donner des conférences, 768 00:38:54,560 --> 00:38:57,790 pouvez-vous nous résumer qui a été à la leçon d'aujourd'hui? 769 00:38:57,790 --> 00:38:59,670 Très bien. 770 00:39:01,210 --> 00:39:04,320 Voyons, nous allons avoir - quelqu'un peut-il nous dire ce qui est une fonction? 771 00:39:04,320 --> 00:39:06,060 Kelly? 772 00:39:07,800 --> 00:39:11,260 >> Fondamentalement >> quelque chose que vous tirer sur quelque chose qui est écrit dans la bibliothèque qui est 773 00:39:11,260 --> 00:39:14,460 plus compliqué là-bas, et puis il suffit d'écrire un court formulaire de celui-ci, 774 00:39:14,460 --> 00:39:17,360 donc comme vous référant à la bibliothèque, à l'aide 775 00:39:17,360 --> 00:39:19,650 tout ce code long et [inaudible]. 776 00:39:19,650 --> 00:39:22,680 Oui, exactement, et puis tu veux ajouter quelque chose à cela? 777 00:39:22,680 --> 00:39:27,050 >> Ouais, je pense à ce sujet que similaire au concept d'une formule en mathématiques 778 00:39:27,050 --> 00:39:30,130 où vous venez d'écrire une formule, puis vous pouvez brancher variables 779 00:39:30,130 --> 00:39:32,660 et c'est ce qui est une fonction de [inaudible]. 780 00:39:32,660 --> 00:39:35,390 >> Ouais, donc nous avons eu quelques réponses ici 781 00:39:35,390 --> 00:39:38,080 qui sont à la fois très bon et droit de suite. 782 00:39:38,080 --> 00:39:43,040 Il fait allusion au code qui a été écrit dans la bibliothèque quelque part 783 00:39:43,040 --> 00:39:45,390 c'est plus compliqué 784 00:39:45,390 --> 00:39:47,130 et puis vous pouvez tirer parti de ce code 785 00:39:47,130 --> 00:39:50,480 et effectivement l'utiliser en écrivant simplement la forme abrégée de celui-ci - 786 00:39:50,480 --> 00:39:54,060 ou, plutôt, son nom - 787 00:39:54,060 --> 00:39:57,590 et puis il ya aussi cette comparaison à une formule en mathématiques 788 00:39:57,590 --> 00:40:00,400 ou physique, tout ce genre de trucs 789 00:40:00,400 --> 00:40:02,980 où vous avez une formule 790 00:40:02,980 --> 00:40:05,690 et vous pouvez raccorder 791 00:40:05,690 --> 00:40:08,100 les variables de cette formule 792 00:40:08,100 --> 00:40:11,130 puis à obtenir le résultat de la formule, 793 00:40:11,130 --> 00:40:14,580 si vous pensez à ce sujet que, comme l'équation quadratique. 794 00:40:14,580 --> 00:40:17,690 Imaginez si, plutôt que d'avoir à en apprendre davantage sur 795 00:40:17,690 --> 00:40:21,310 ce que la formule quadratique est en cours de maths, 796 00:40:21,310 --> 00:40:24,610 vous venez d'avoir un programme de calcul peu qu'il a fait pour vous. 797 00:40:24,610 --> 00:40:28,930 Quelqu'un at-il d'utiliser les programmes de la calculatrice en classe de mathématiques à l'école secondaire? 798 00:40:28,930 --> 00:40:31,020 Oui, les classes de physique? 799 00:40:31,020 --> 00:40:34,670 Où vous pouvez simplement dire: «Hé, formule quadratique. 800 00:40:34,670 --> 00:40:37,740 Ce sont les variables que je veux entrée. 801 00:40:37,740 --> 00:40:40,250 Maintenant donnez-moi la réponse. " 802 00:40:40,250 --> 00:40:42,170 C'est le genre de ce qui est une fonction. 803 00:40:42,170 --> 00:40:44,850 C'est une façon pour nous de 804 00:40:44,850 --> 00:40:47,720 genre d'écriture comme un petit programme sous peu 805 00:40:47,720 --> 00:40:51,700 au sein de notre programme plus vaste 806 00:40:51,700 --> 00:40:55,090 et l'utiliser encore et encore 807 00:40:55,090 --> 00:40:58,380 de sorte que nous n'avons pas à copier et coller le code, 808 00:40:58,380 --> 00:41:04,220 nous pouvons lui donner différentes entrées et sorties d'obtenir différents, 809 00:41:04,220 --> 00:41:07,090 c'est super pratique 810 00:41:07,090 --> 00:41:11,420 lorsque vous essayez d'écrire des programmes différents à des moments différents. 811 00:41:11,420 --> 00:41:14,580 >> Ainsi, par exemple, une fonction que nous avons utilisé maintes et maintes et maintes fois 812 00:41:14,580 --> 00:41:17,310 tout au long de ce cours est de printf. 813 00:41:17,310 --> 00:41:19,680 Printf est elle-même fonction 814 00:41:19,680 --> 00:41:23,360 et il s'avère que c'est en fait un assez long et compliqué, 815 00:41:23,360 --> 00:41:26,420 vilaine, fonctionner à écrire. 816 00:41:26,420 --> 00:41:29,590 Donc, aussi simple que cela nous semble 817 00:41:29,590 --> 00:41:31,810 d'imprimer des trucs sur l'écran, 818 00:41:31,810 --> 00:41:34,820 parce que nous avons tous fait cela au début de la section d'aujourd'hui, 819 00:41:34,820 --> 00:41:36,870 il s'avère que c'est fait, vous savez, 820 00:41:36,870 --> 00:41:39,900 un bon couple de centaines de lignes de code. 821 00:41:42,030 --> 00:41:45,620 Ce n'est pas quelque chose que je n'aurais jamais eu envie d'écrire, bien sûr, 822 00:41:45,620 --> 00:41:47,480 mais nous arrivons à l'utiliser tous les jours, c'est plutôt cool, 823 00:41:47,480 --> 00:41:49,020 si nous arrivons à le partager avec l'autre, 824 00:41:49,020 --> 00:41:51,790 avec des programmes différents, 825 00:41:51,790 --> 00:41:54,520 donc nous allons être plongée plus en fonctions; 826 00:41:54,520 --> 00:41:56,090 pour le moment, nous ne sommes pas - 827 00:41:56,090 --> 00:41:59,150 la fonction que nous allons écrire est le principal. 828 00:41:59,150 --> 00:42:01,570 Principal lui-même est également une fonction, 829 00:42:01,570 --> 00:42:04,270 et vous pouvez le voir, c'est a sa sortie, 830 00:42:04,270 --> 00:42:06,610 ses intrants, comme nous en avons parlé, 831 00:42:06,610 --> 00:42:08,930 puis son nom, qui est le principal. 832 00:42:08,930 --> 00:42:11,800 Principale est une sorte de - est une fonction spéciale là-bas. 833 00:42:11,800 --> 00:42:14,800 Dans votre programme C, il doit y avoir une fonction principale, 834 00:42:14,800 --> 00:42:17,900 et donc pour l'instant, nous avons omis genre d'écriture 835 00:42:17,900 --> 00:42:21,400 le prototype, ou la déclaration d', principal. 836 00:42:21,400 --> 00:42:23,050 Nous avons vu que pour vous, 837 00:42:23,050 --> 00:42:25,650 et nous venons vous remplissez avait en nature des ébauches. 838 00:42:25,650 --> 00:42:29,120 >> Alors >> pour l'ensemble deuxième problème, nous n'avons pas besoin d' 839 00:42:29,120 --> 00:42:31,350 écrire dans la seconde fonction? 840 00:42:31,350 --> 00:42:34,200 Je ne le crois pas. 841 00:42:34,200 --> 00:42:37,600 Je crois que c'est tout ici. 842 00:42:37,600 --> 00:42:41,710 Ouais, donc Caesar Cipher, 843 00:42:41,710 --> 00:42:45,000 vous n'avez pas à le faire, il ne ressemble pas, 844 00:42:48,740 --> 00:42:53,150 et Vigenère, vous non plus, 845 00:42:53,150 --> 00:42:56,400 si - et il s'avère que vous n'avez jamais fait d'écrire 846 00:42:56,400 --> 00:42:58,250 une fonction, non? 847 00:42:58,250 --> 00:43:01,950 Vous appelez toujours mettre tout votre code dans principal, 848 00:43:01,950 --> 00:43:04,500 et de nombreux programmeurs faire. 849 00:43:04,500 --> 00:43:07,130 Comme nous passons, 850 00:43:07,130 --> 00:43:09,480 nous commençons à introduire des fonctions comme un moyen 851 00:43:09,480 --> 00:43:11,530 pour nettoyer votre code, 852 00:43:11,530 --> 00:43:13,380 pour le rendre plus élégant, 853 00:43:13,380 --> 00:43:16,890 dans le cas où vous avez des tâches - un peu comme lorsque nous avons parlé de boucles, 854 00:43:16,890 --> 00:43:20,400 comment parfois il ya des choses que vous voulez faire encore et encore et encore, 855 00:43:20,400 --> 00:43:23,510 et vous avez le genre de manière naïve - 856 00:43:23,510 --> 00:43:26,360 ou ce qu'on appelle souvent le «homme de paille» solution, 857 00:43:26,360 --> 00:43:29,390 est de simplement copier et coller maintes et maintes fois - 858 00:43:29,390 --> 00:43:31,000 vous pouvez faire la même chose avec des fonctions où vous suffit de copier et coller 859 00:43:31,000 --> 00:43:33,360 le même code encore et encore, 860 00:43:33,360 --> 00:43:35,750 mais cela gonfle votre code - 861 00:43:35,750 --> 00:43:38,550 il finit par faire votre code très long - 862 00:43:38,550 --> 00:43:41,550 et il est aussi un peu confus, 863 00:43:41,550 --> 00:43:43,470 et cela signifie que vous n'êtes pas capable d'aimer - 864 00:43:43,470 --> 00:43:45,250 si jamais vous voulez utiliser ce code à un autre programme, 865 00:43:45,250 --> 00:43:48,610 vous êtes également bloqué le copier-coller de nouveau, 866 00:43:48,610 --> 00:43:51,170 si l'une des choses que nous allons parler est 867 00:43:51,170 --> 00:43:54,960 type de design et le style de vos programmes, 868 00:43:54,960 --> 00:43:57,010 et donc quand il est logique de type de 869 00:43:57,010 --> 00:43:59,800 ensemble quelque chose et de le mettre comme une fonction distincte, 870 00:43:59,800 --> 00:44:02,080 nous vous encourageons à le faire, 871 00:44:02,080 --> 00:44:04,700 et c'est quelque chose qui, encore une fois, 872 00:44:04,700 --> 00:44:07,790 il n'y a aucune règle dure et rapide. 873 00:44:07,790 --> 00:44:11,540 Nous avons rarement dire que vous devez écrire une fonction appelée présent, 874 00:44:12,870 --> 00:44:16,320 mais il s'agit plus d'une de ces choses que vous venez de développer au fil du temps 875 00:44:16,320 --> 00:44:19,470 que vous écrivez des programmes de plus en plus. 876 00:44:21,940 --> 00:44:24,790 >> D'autres questions? 877 00:44:26,340 --> 00:44:30,610 Ok, nous allons donc maintenant 878 00:44:30,610 --> 00:44:34,750 remonter à ce gars ici, 879 00:44:34,750 --> 00:44:37,800 donc je suis toujours dans cette section de questions. 880 00:44:37,800 --> 00:44:39,900 Nous avons parlé de tous ces différents les, 881 00:44:39,900 --> 00:44:42,050 ce qui est une fonction, pourquoi écrire des fonctions, 882 00:44:42,050 --> 00:44:44,700 quand vous pouvez simplement copier et coller? 883 00:44:44,700 --> 00:44:47,700 Espérons que nous vous avons convaincu que l'écriture de fonctions est une bonne chose. 884 00:44:47,700 --> 00:44:50,870 Alors maintenant, nous allons passer à ce programme MySpace, 885 00:44:50,870 --> 00:44:53,080 et nous allons passer un peu de temps à faire cela. 886 00:44:54,600 --> 00:44:56,480 >> Donc, nous allons le voir, 887 00:44:56,480 --> 00:45:00,230 puis-je avoir quelqu'un lire ce pour moi? 888 00:45:02,640 --> 00:45:04,660 Ayons Mikhaila - vous lu cela pour nous? 889 00:45:07,660 --> 00:45:08,890 >> Tu veux dire en arrière quand MySpace - 890 00:45:08,890 --> 00:45:10,920 Sauvegardez quand MySpace c'était cool. 891 00:45:10,920 --> 00:45:12,070 >> «À l'époque où c'était cool MySpace, 892 00:45:12,070 --> 00:45:14,900 il était à la mode à écrire de cette façon. 893 00:45:14,900 --> 00:45:17,320 Peut-être que c'est encore? Je ne suis pas vraiment sûr. 894 00:45:17,320 --> 00:45:19,990 Dans tous les cas, l'utilisation de l'appliance CS50, 895 00:45:19,990 --> 00:45:22,600 CS50 Run, ou CS50 espaces, 896 00:45:22,600 --> 00:45:25,370 écrire un programme qui demande à l'utilisateur un message 897 00:45:25,370 --> 00:45:29,350 puis renvoie le message avec sa première lettre en majuscule, 898 00:45:29,350 --> 00:45:31,800 avec toutes les autres lettres dans le cas alternatif, 899 00:45:31,800 --> 00:45:34,010 selon l'exemple de sortie ci-dessous, 900 00:45:34,010 --> 00:45:37,060 dans laquelle le texte en gras représente une entrée de l'utilisateur. 901 00:45:37,060 --> 00:45:39,800 Pour plus de simplicité, vous pouvez supposer que l'utilisateur 902 00:45:39,800 --> 00:45:42,810 va saisir des lettres minuscules et les espaces seulement. 903 00:45:42,810 --> 00:45:45,900 Pensez à ce problème une occasion de pratiquer; 904 00:45:45,900 --> 00:45:48,640 vous ne serez pas invité à présenter ce programme. " 905 00:45:48,640 --> 00:45:51,640 >> Génial, merci. 906 00:45:51,640 --> 00:45:54,750 Alors que Mikhaila dit, 907 00:45:54,750 --> 00:45:58,850 nous allons écrire un programme qui myspaces votre code. 908 00:45:58,850 --> 00:46:02,230 Donc, ne vous les gars de toute utiliser MySpace? 909 00:46:02,230 --> 00:46:04,100 Ceux d'entre vous ont des comptes MySpace? 910 00:46:04,100 --> 00:46:05,920 Oh, ouais, ouais! 911 00:46:05,920 --> 00:46:08,300 C'était assez cool. 912 00:46:08,300 --> 00:46:09,950 [Rires] 913 00:46:09,950 --> 00:46:12,060 Je sais. 914 00:46:12,060 --> 00:46:14,500 Mon âge. 915 00:46:15,490 --> 00:46:18,300 Donc, ce que nous essayons de faire est d'écrire un programme 916 00:46:18,300 --> 00:46:21,110 qui passe par 917 00:46:21,110 --> 00:46:24,490 et la première lettre 918 00:46:24,490 --> 00:46:27,140 puis chaque lettre par la suite - 919 00:46:27,140 --> 00:46:29,350 ou tout autre lettre par la suite, je suis désolé. 920 00:46:29,350 --> 00:46:32,910 >> Donc - et vous pouvez le voir dans cet exemple, 921 00:46:32,910 --> 00:46:35,260 c'est ainsi que nous lançons le programme, 922 00:46:35,260 --> 00:46:38,780 et si cela ne fait que dire: «Nous sommes en cours d'exécution d'un programme appelé a.out. 923 00:46:41,490 --> 00:46:44,630 L'entrée que nous allons lui donner 924 00:46:44,630 --> 00:46:47,090 va être invité. 925 00:46:47,090 --> 00:46:51,150 On va pas fournir l'entrée sur la ligne de commande. " 926 00:46:51,150 --> 00:46:54,100 Si vous avez suivi toutes les conférences 927 00:46:54,100 --> 00:46:56,710 et d'entendre sur les arguments de ligne de commande, 928 00:46:57,810 --> 00:47:00,080 c'est le genre de ceux où - cette syntaxe géniale 929 00:47:00,080 --> 00:47:04,530 au principal vient avec l'int argc, tout ça, 930 00:47:04,530 --> 00:47:07,630 ici nous n'utilisons pas cela, nous ne parlons pas de tout cela. 931 00:47:09,400 --> 00:47:12,650 On va juste faire ce tapé par l'utilisateur, 932 00:47:12,650 --> 00:47:15,700 puis cette seconde ligne avec la capitalisation froussard 933 00:47:15,700 --> 00:47:18,550 C'est ce que nous voulons que notre programme de sortie. 934 00:47:19,790 --> 00:47:22,860 >> Ainsi, plutôt que d'utiliser l'appareil ou Exécuter, nous allons utiliser les espaces, 935 00:47:22,860 --> 00:47:25,360 parce que nous avons espaces, 936 00:47:25,360 --> 00:47:28,640 et si vous les gars seraient 937 00:47:28,640 --> 00:47:32,380 obtenir votre code à ressembler à quelque chose comme ça, 938 00:47:32,380 --> 00:47:35,930 donc je vais enregistrer cette révision 939 00:47:35,930 --> 00:47:38,390 juste pour que vous avez la plaque de la chaudière ici 940 00:47:38,390 --> 00:47:42,840 qui ressemble à ceci, int main (void), rien en elle. 941 00:47:44,480 --> 00:47:48,460 En fait, ce que nous allons faire, c'est nous allons simplement supprimer tout ensemble. 942 00:47:48,460 --> 00:47:50,330 Nous voulons une ardoise vierge, 943 00:47:50,330 --> 00:47:52,470 parce que nous n'allons pas commencer à écrire du code; 944 00:47:52,470 --> 00:47:55,380 plutôt, nous allons essayer d'écrire une pseudo- 945 00:47:55,380 --> 00:47:58,580 qui vraiment signifie simplement que nous allons écrire quelque chose qui n'est pas le code 946 00:47:58,580 --> 00:48:01,010 ce genre de décrit ce que nous voulons faire, 947 00:48:01,010 --> 00:48:05,180 un peu comme David a fait le premier jour de la conférence, 948 00:48:05,180 --> 00:48:08,310 ou je suppose que c'était le deuxième jour de la conférence, quand il a fait toute la démo chaussettes. 949 00:48:08,310 --> 00:48:10,990 Vous vous souvenez de ce que - vu les chaussettes? 950 00:48:10,990 --> 00:48:13,300 Joseph était là-haut, sorte de taper en anglais? 951 00:48:13,300 --> 00:48:16,300 Alors, on va faire la même chose. 952 00:48:16,300 --> 00:48:18,380 >> Alors, quand je commence à écrire un pseudocode, 953 00:48:18,380 --> 00:48:22,640 Je voudrais commencer par regarder ce que l'entrée va être. 954 00:48:22,640 --> 00:48:24,950 Et je me donne un exemple de cas, 955 00:48:24,950 --> 00:48:28,780 donc comme "thanks for the add!" 956 00:48:35,030 --> 00:48:38,010 Et puis je dois aussi écrire ce que je veux que la sortie soit, 957 00:48:38,010 --> 00:48:42,210 qui dans ce cas est quelque chose comme ça. 958 00:48:53,790 --> 00:48:56,050 Et ce genre de me donne un bon endroit, comme, commence à penser, 959 00:48:56,050 --> 00:48:59,730 «D'accord, je veux prendre la ligne 1 960 00:48:59,730 --> 00:49:03,560 et je tiens à le transformer en ligne 2 », 961 00:49:03,560 --> 00:49:06,570 et ce genre de permet de guider ma réflexion. 962 00:49:06,570 --> 00:49:09,990 C'est un bon endroit pour commencer. 963 00:49:09,990 --> 00:49:12,190 Une autre façon de penser, aussi, que nous kinda passer 964 00:49:12,190 --> 00:49:15,020 et comme vous le faites dans vos propres programmes, est de 965 00:49:15,020 --> 00:49:18,530 penser un peu comme ce sont les cas limites à cela? 966 00:49:18,530 --> 00:49:20,740 Quels sont les types de scénarios bizarres? 967 00:49:20,740 --> 00:49:23,660 Quelles sont les entrées étranges que nous pourrions obtenir? 968 00:49:23,660 --> 00:49:26,550 Et quelles devraient être ces sorties ressembler? 969 00:49:26,550 --> 00:49:29,670 Par exemple, une entrée bizarre 970 00:49:29,670 --> 00:49:33,200 serait celui-ci, 971 00:49:33,200 --> 00:49:35,630 la création d'absolument rien, 972 00:49:35,630 --> 00:49:37,840 comme ce qui devrait nous affichons dans ce cas? 973 00:49:37,840 --> 00:49:40,530 Quelque chose que nous voulons penser, aussi. 974 00:49:40,530 --> 00:49:44,450 >> Ainsi, tout comme une question, 975 00:49:44,450 --> 00:49:46,870 ce qui pourrait nous voulons sortie? 976 00:49:46,870 --> 00:49:50,740 Si nous n'obtenons pas tout apport, ce qui devrait être notre programme de sortie? 977 00:49:53,740 --> 00:49:54,860 Rien >>. 978 00:49:54,860 --> 00:49:57,340 Rien? Ça a l'air génial. 979 00:49:57,340 --> 00:49:59,280 Nous voulons donc nous assurer que nous ne sommes pas écrire quoi que ce soit 980 00:49:59,280 --> 00:50:01,500 si nous n'obtenons rien po 981 00:50:01,500 --> 00:50:04,320 Cool. D'accord. 982 00:50:04,320 --> 00:50:07,370 Si 983 00:50:07,370 --> 00:50:09,380 Je vais faire appel à un couple de personnes que nous traversons 984 00:50:09,380 --> 00:50:12,790 et juste comprendre un peu comme ce que l'algorithme général est 985 00:50:12,790 --> 00:50:15,250 et nous allons commencer à travailler à travers sorte ensemble. 986 00:50:16,240 --> 00:50:19,710 >> Donc, nous allons voir. Missy. 987 00:50:19,710 --> 00:50:21,220 Comment pensez-vous que nous commencions? 988 00:50:21,220 --> 00:50:24,830 Quel serait un bon endroit pour commencer ici 989 00:50:24,830 --> 00:50:27,900 si nous voulons transformer, par exemple, la ligne 1 990 00:50:27,900 --> 00:50:29,440 sur la ligne 2? 991 00:50:29,440 --> 00:50:32,650 Pouvez-vous genre de m'expliquer, en anglais, à quoi tu penses? 992 00:50:32,650 --> 00:50:34,770 Ne vous inquiétez pas même code. 993 00:50:34,770 --> 00:50:38,250 Chose >> abord, je voudrais faire serait de 994 00:50:38,250 --> 00:50:41,170 sorte de problème à l'utilisateur de leur dire ce que vous voulez. 995 00:50:41,170 --> 00:50:44,730 Bon, alors, disons, 996 00:50:44,730 --> 00:50:47,450 "Hé, utilisateur. Je veux 997 00:50:47,450 --> 00:50:50,560 une chaîne "- awesome. 998 00:50:50,560 --> 00:50:52,990 Donc, nous allons écrire cela. 999 00:50:52,990 --> 00:50:56,140 Inviter l'utilisateur à une chaîne. 1000 00:50:56,140 --> 00:50:59,270 Cela sonne comme un bon début. 1001 00:51:03,920 --> 00:51:06,460 Très bien. 1002 00:51:06,460 --> 00:51:09,750 Demandons Kelly Ren cette fois. 1003 00:51:09,750 --> 00:51:11,580 Que ferions-nous alors voulez faire ensuite? 1004 00:51:11,580 --> 00:51:14,220 Ce qui est en quelque sorte notre prochaine -? 1005 00:51:14,220 --> 00:51:18,080 >> Recueillir leurs commentaires et de les stocker dans une variable. 1006 00:51:18,080 --> 00:51:20,470 Grande. 1007 00:51:20,470 --> 00:51:24,280 Ainsi, la collecte de la chaîne, 1008 00:51:25,450 --> 00:51:27,880 le stocker dans une variable. 1009 00:51:34,840 --> 00:51:36,460 Donc, il ya quelque chose de spécial que nous voulons faire ici? 1010 00:51:36,460 --> 00:51:39,700 Voulons-nous de vérifier leur entrée 1011 00:51:39,700 --> 00:51:42,260 avant -? 1012 00:51:42,260 --> 00:51:43,790 Ouais >>. 1013 00:51:43,790 --> 00:51:46,330 Que pourrions-nous vouloir vérifier? 1014 00:51:46,330 --> 00:51:48,980 >> Eh bien, vous avez dit que nous n'avons pas de vérifier si c'est un nombre, non? 1015 00:51:48,980 --> 00:51:52,400 Parce que ça va supposer que c'est en minuscules? 1016 00:51:52,400 --> 00:51:55,650 Ouais. 1017 00:51:56,380 --> 00:51:58,920 >> Ainsi, il s'avère que - oui. 1018 00:51:58,920 --> 00:52:01,850 Donc getString est garantie pour nous renvoyer une chaîne. 1019 00:52:01,850 --> 00:52:05,050 Il ne va pas remettre un numéro à nous ou quelque chose comme ça. 1020 00:52:05,050 --> 00:52:09,140 Il pourrait y avoir des caractères numériques au sein de cette chaîne, cependant. 1021 00:52:09,140 --> 00:52:13,460 Et ceux-là, nous ne pouvons ignorer que nous avons fait de la capitalisation. 1022 00:52:13,460 --> 00:52:16,620 Mais une chaîne vide est tout à fait bien, 1023 00:52:16,620 --> 00:52:19,900 si le cas ici, sur la ligne 4 et 5, 1024 00:52:19,900 --> 00:52:22,020 droite, où il n'y a pas d'entrée, 1025 00:52:22,020 --> 00:52:25,190 et nous avons mis en rien notre production. 1026 00:52:25,190 --> 00:52:28,730 Nous n'avons pas à vous soucier de faire en sorte qu'il ya quelque chose dans la chaîne de 1027 00:52:28,730 --> 00:52:31,840 ou que la chaîne est au moins 4 caractères; 1028 00:52:31,840 --> 00:52:34,190 tout est bien. 1029 00:52:34,190 --> 00:52:38,270 Donc, ce contraste, par exemple, comme les programmes de centimes que vous avez écrit 1030 00:52:38,270 --> 00:52:42,340 où il fallait s'assurer que vous receviez des nombres non négatifs; 1031 00:52:42,340 --> 00:52:46,430 vous avez eu à faire en sorte que vous receviez le nombre exact de jours dans un mois. 1032 00:52:46,430 --> 00:52:49,630 Et comment que vous faites là? 1033 00:52:49,630 --> 00:52:51,470 Comment feriez-vous ce test? 1034 00:52:51,470 --> 00:52:54,090 Qu'est-ce qui vous obligent à utiliser? 1035 00:52:54,090 --> 00:52:55,650 >> As-while. 1036 00:52:55,650 --> 00:53:00,840 Boucles do-while, d'autres types de boucles, aussi, ouais. 1037 00:53:02,190 --> 00:53:04,520 Ainsi, il s'avère que nous n'avons pas d'utiliser une boucle dans ce cas, 1038 00:53:04,520 --> 00:53:07,360 lorsque nous demandant de saisir une chaîne de caractères, ce qui est assez agréable. 1039 00:53:08,280 --> 00:53:10,620 >> Tout à droite, avancer. 1040 00:53:12,410 --> 00:53:14,270 Donc, Stella. 1041 00:53:14,270 --> 00:53:17,530 Pouvez-vous nous en dire un peu plus sur ce que nous devrions faire ensuite? 1042 00:53:17,530 --> 00:53:20,270 Alors maintenant, nous avons la chaîne, nous avons stocké dans une variable; 1043 00:53:20,270 --> 00:53:23,360 qu'est-ce que nous devons faire avec la chaîne? 1044 00:53:26,790 --> 00:53:33,530 Nous devons >> - 1045 00:53:33,530 --> 00:53:36,550 identifier la 2 - 1046 00:53:36,550 --> 00:53:39,290 Oui, juste le dire en anglais, c'est génial. 1047 00:53:39,290 --> 00:53:42,670 >> Identifier les [inaudible] capitales - ou, en majuscules. 1048 00:53:44,420 --> 00:53:48,130 Ouais, donc vous devriez identifier celles qui sont en majuscules et en minuscules. 1049 00:53:50,020 --> 00:53:54,180 Nous ne pouvons pas en majuscules ou en minuscules eux jusqu'à ce que nous avons identifié lesquels. 1050 00:54:03,790 --> 00:54:06,350 Donc, nous allons mettre cela ici. 1051 00:54:06,350 --> 00:54:10,210 >> Donc, il suffit de penser à ce processus, 1052 00:54:10,210 --> 00:54:13,200 comment pouvons-nous faire cette identification? 1053 00:54:13,200 --> 00:54:15,050 Savez-vous, Dan? 1054 00:54:15,050 --> 00:54:18,120 Type de ce que nous - ce que l'outil que nous aurions à utiliser hors de notre boîte à outils? 1055 00:54:18,120 --> 00:54:22,500 >> Je l'avais mis en quelque sorte comme un tableau dans chaque ligne ou 1056 00:54:22,500 --> 00:54:24,240 est sa propre boîte peu, 1057 00:54:24,240 --> 00:54:27,240 puis à partir de là en majuscules ou non. 1058 00:54:27,240 --> 00:54:30,440 Ok, donc un outil que nous pouvons utiliser est un tableau. 1059 00:54:30,440 --> 00:54:33,760 Que devons-nous regarder dans la chaîne, 1060 00:54:33,760 --> 00:54:36,680 cependant, de comprendre - nous avons eu à regarder les personnages. 1061 00:54:36,680 --> 00:54:40,890 >> Donc, vous avez à regarder la longueur de la chaîne? 1062 00:54:40,890 --> 00:54:43,880 Oui, si une partie de cette obtient la longueur de la chaîne. 1063 00:54:50,450 --> 00:54:54,150 Juste par curiosité, qu'est-ce que nous utilisons pour obtenir la longueur d'une chaîne? 1064 00:54:54,150 --> 00:54:58,080 >> Strlen? 1065 00:54:58,080 --> 00:55:02,870 Ouais, strlen; nous appelons cela "strlen" 1066 00:55:04,180 --> 00:55:08,620 Toutes ces fonctions de chaînes, de sorte strlen est une fonction, 1067 00:55:08,620 --> 00:55:10,670 et c'est super pratique, car on peut l'utiliser pour tout dire, 1068 00:55:10,670 --> 00:55:13,430 Hé, strlen: Voici une chaîne, dites-moi combien de temps il est. 1069 00:55:13,430 --> 00:55:17,350 Dans la conférence d'aujourd'hui, David a beaucoup parlé de la façon dont est mise en œuvre strlen, 1070 00:55:17,350 --> 00:55:20,370 ce qui se passe réellement dans les coulisses. 1071 00:55:20,370 --> 00:55:25,450 Mais c'est l'un des très super pratique. 1072 00:55:25,450 --> 00:55:29,170 Il y en a d'autres qui sont aussi dans la bibliothèque de chaîne, 1073 00:55:29,170 --> 00:55:34,690 comme strcmp, qui est orthographié "strcmp", 1074 00:55:34,690 --> 00:55:38,010 qui est utilisé pour comparer des chaînes à l'autre. 1075 00:55:41,220 --> 00:55:45,020 Les autres que vous allez utiliser comme strstr, 1076 00:55:45,020 --> 00:55:48,770 ce qui est bon pour trouver des chaînes de sous et ainsi de suite. 1077 00:55:48,770 --> 00:55:53,380 Pour la plupart, ils commencent tous avec str, puis passer à autre chose. 1078 00:55:53,380 --> 00:55:57,080 La raison pour laquelle ils n'ont pas vraiment leur sort comme de la ficelle et ainsi de suite 1079 00:55:57,080 --> 00:56:00,260 C'est parce que, comme de retour dans les premiers jours de C, 1080 00:56:00,260 --> 00:56:04,100 quand les gens étaient la première écriture et tout ça, 1081 00:56:04,100 --> 00:56:07,580 ils avaient des limitations sur le nombre de caractères que vous pouvez utiliser 1082 00:56:07,580 --> 00:56:09,950 pour les noms de fonction et les noms de variables, 1083 00:56:09,950 --> 00:56:12,620 donc tout est comme super condensée. 1084 00:56:12,620 --> 00:56:15,750 Mais quand vous voyez quelque chose qui commence par str, 1085 00:56:15,750 --> 00:56:18,600 cela signifie généralement cela a quelque chose à voir avec une chaîne. 1086 00:56:20,990 --> 00:56:23,350 >> Bon, vous avez pour obtenir la longueur de la chaîne, 1087 00:56:23,350 --> 00:56:27,110 et puis, que faisons-nous avec les personnages? 1088 00:56:27,110 --> 00:56:29,020 Savez-vous, Sam? 1089 00:56:29,020 --> 00:56:32,410 >> Je n'ai aucune idée, je cherche à comprendre. 1090 00:56:32,410 --> 00:56:35,410 Je ne sais pas - je souhaite qu'il y ait un moyen de - 1091 00:56:35,410 --> 00:56:38,990 Je veux dire, je pense que nous pourrions faire quelque chose de bric et égalise, 1092 00:56:38,990 --> 00:56:40,860 mais je ne sais pas du tout fonctionner comme cela. 1093 00:56:40,860 --> 00:56:42,240 Ouais. 1094 00:56:43,160 --> 00:56:45,200 Mais ce que >> - il ne serait pas nécessairement, 1095 00:56:45,200 --> 00:56:48,690 car alors vous obtiendrez les espaces à - 1096 00:56:48,690 --> 00:56:51,130 vous devez avoir de l'espace pour obtenir des conseils sur la façon - 1097 00:56:51,130 --> 00:56:54,310 D'accord. 1098 00:56:54,310 --> 00:56:56,490 >> Je ne sais pas - je suis genre de perdu à ce point. 1099 00:56:56,490 --> 00:56:58,120 Oui - non, non, non, ce sont de bons points. 1100 00:56:58,120 --> 00:57:00,420 Donc, ce que nous devons faire, c'est, comme l'a dit Sam, 1101 00:57:00,420 --> 00:57:02,970 nous devons suivre les lettres sont des lettres bizarres, 1102 00:57:02,970 --> 00:57:05,540 et ceux qui sont les lettres même. 1103 00:57:06,650 --> 00:57:09,090 Mais nous voulons nous assurer que nous ne cherchons pas uniquement 1104 00:57:09,090 --> 00:57:12,110 au pair et impair 1105 00:57:12,110 --> 00:57:14,030 les indices de la chaîne, 1106 00:57:14,030 --> 00:57:17,660 mais en regardant les lettres paires et impaires dans la chaîne, 1107 00:57:17,660 --> 00:57:20,190 nous devons donc avoir un peu cette distinction entre 1108 00:57:20,190 --> 00:57:25,190 lettres - comme ce qui est en fait A, B, C, D, ou ainsi de suite, 1109 00:57:25,190 --> 00:57:29,090 et ce que les choses ne sont pas des lettres mais toujours dans notre chaîne. 1110 00:57:29,090 --> 00:57:32,390 Par exemple ici, comme ce point d'exclamation n'est pas une lettre, 1111 00:57:32,390 --> 00:57:36,060 mais il fait toujours partie de notre chaîne, c'est toujours un char. 1112 00:57:36,060 --> 00:57:38,820 De même, l'ensemble de ces espaces - 1113 00:57:38,820 --> 00:57:41,710 il n'a pas de sens pour tirer un espace, non? 1114 00:57:41,710 --> 00:57:46,160 Nous voulons donc nous assurer que nous en quelque sorte sauter ces 1115 00:57:46,160 --> 00:57:49,410 tout en suivant des cotes et égalise. 1116 00:57:50,900 --> 00:57:54,990 >> Donc, en quelque sorte dans notre boîte à outils de programmation 1117 00:57:54,990 --> 00:57:57,270 jusqu'à présent, si vous voulez, 1118 00:57:57,270 --> 00:58:01,310 nous avons un certain nombre d'outils que nous avons parlé. 1119 00:58:01,310 --> 00:58:04,640 Donc on, par exemple, sont des variables, 1120 00:58:04,640 --> 00:58:07,120 comme nous en avons parlé ici. 1121 00:58:07,120 --> 00:58:10,730 Un autre outil dont nous avons parlé sont des fonctions. 1122 00:58:10,730 --> 00:58:15,800 Donc, nous avons parlé des variables dans notre pseudo-ici 1123 00:58:15,800 --> 00:58:19,760 que ce que nous allons utiliser pour stocker notre chaîne. 1124 00:58:19,760 --> 00:58:24,630 Nous avons parlé de fonctions pour obtenir la longueur d'une chaîne, comme strlen. 1125 00:58:28,510 --> 00:58:31,170 Nous avons parlé d'autre chose, et nous en avons parlé 1126 00:58:31,170 --> 00:58:34,850 pour beaucoup plus tôt dans la section aujourd'hui: boucles. 1127 00:58:39,390 --> 00:58:42,030 >> Qu'est-ce que vous en pensez sur l'utilisation d'une boucle dans ce programme? 1128 00:58:42,030 --> 00:58:44,110 Jared, qu'en pensez-vous? 1129 00:58:47,150 --> 00:58:50,030 Serions-nous utiliser une boucle dans ce programme? 1130 00:58:50,030 --> 00:58:52,500 >> Probablement pas, non, parce que vous n'avez pas à passer par là plus d'une fois. 1131 00:58:52,500 --> 00:58:55,260 Bon, vous n'avez pas à passer par ce que plus d'une fois? 1132 00:58:55,260 --> 00:58:57,190 >> La chaîne entière. 1133 00:58:57,190 --> 00:59:00,660 D'accord, donc vous n'avez pas à passer par toute la chaîne une fois. 1134 00:59:00,660 --> 00:59:03,330 Désolé que n'avait absolument aucun sens! 1135 00:59:03,330 --> 00:59:06,360 Vous n'avez pas à passer par la chaîne entière plus d'une fois. 1136 00:59:06,360 --> 00:59:08,660 D'accord. 1137 00:59:09,790 --> 00:59:11,920 Que pensez-vous? 1138 00:59:11,920 --> 00:59:14,110 >> Je pense que c'est mieux de les utiliser 1139 00:59:14,110 --> 00:59:16,640 afin que nous puissions faire comme tout miser 1140 00:59:16,640 --> 00:59:19,750 l'emplacement de celui-ci est le numéro [inaudible]. 1141 00:59:19,750 --> 00:59:22,940 Grande, et ainsi de capitaliser quoi? 1142 00:59:22,940 --> 00:59:25,200 Bon, alors nous disons que 1143 00:59:25,200 --> 00:59:28,130 nous devrions utiliser une boucle parce que nous voulons 1144 00:59:28,130 --> 00:59:32,550 une lettre en majuscule alors que ce n'est pas un nombre. 1145 00:59:35,130 --> 00:59:37,140 Donc, - excusez-moi, vouliez-vous ajouter? 1146 00:59:37,140 --> 00:59:39,340 >> Je voulais dire que la façon dont vous traitez la chaîne 1147 00:59:39,340 --> 00:59:42,290 et [inaudible] séparée de la [inaudible] sur les personnages? 1148 00:59:42,290 --> 00:59:43,710 Ouais. 1149 00:59:43,710 --> 00:59:45,850 >> Et puis on peut attribuer les numéros à - 1150 00:59:45,850 --> 00:59:47,780 ou basée sur l'emplacement des lettres dans la chaîne? 1151 00:59:47,780 --> 00:59:49,720 Ouais. 1152 00:59:49,720 --> 00:59:53,640 Et >> déterminer si c'est pair ou impair et de capitaliser la lettre elle-même 1153 00:59:53,640 --> 00:59:57,750 tandis que l'emplacement de la lettre est [inaudible] - excusez-moi. 1154 00:59:57,750 --> 01:00:00,150 Grande. 1155 01:00:00,150 --> 01:00:03,430 >> Il suffit donc une récapitulation. 1156 01:00:03,430 --> 01:00:05,840 Pouvez-vous me rappeler votre nom à nouveau - je suis désolé. 1157 01:00:05,840 --> 01:00:06,900 >> Charlotte. 1158 01:00:06,900 --> 01:00:08,490 Charlotte, d'accord. 1159 01:00:08,490 --> 01:00:11,130 Alors que Charlotte est dit, 1160 01:00:11,130 --> 01:00:14,950 ce qui est tout à fait raison - ça alors, ce aime à l'auto-indentation sur moi - 1161 01:00:14,950 --> 01:00:17,770 est que si l'on regarde une chaîne 1162 01:00:17,770 --> 01:00:19,160 comme celui-ci en haut - 1163 01:00:19,160 --> 01:00:21,590 "Merci pour l'ajout" - 1164 01:00:21,590 --> 01:00:24,790 comme une séquence de caractères 1165 01:00:24,790 --> 01:00:29,010 où le est à la position 0, 1166 01:00:29,010 --> 01:00:32,260 h est la en position 1. 1167 01:00:32,260 --> 01:00:36,880 A est égal à 2, puis nous avons eu 3, 4, 5; 1168 01:00:36,880 --> 01:00:40,830 l'espace est à la position 6. 1169 01:00:42,380 --> 01:00:45,300 Considérant que - quelle est la position de f? 1170 01:00:45,300 --> 01:00:47,610 7! 1171 01:00:47,610 --> 01:00:49,300 O? 8. 1172 01:00:49,300 --> 01:00:52,070 R? 9. 1173 01:00:52,070 --> 01:00:54,340 Et puis nous avons eu 10, et puis je ne peux pas vraiment écrire sans 1174 01:00:54,340 --> 01:00:57,430 peu se salissant à l'écran. 1175 01:00:57,430 --> 01:01:02,340 Mais c'est en fait la façon dont nous pouvons parler de chaînes dans la mémoire. 1176 01:01:02,340 --> 01:01:04,660 Est-ce une chaîne de caractères 1177 01:01:04,660 --> 01:01:07,920 est une séquence de caractères, 1178 01:01:07,920 --> 01:01:12,430 et quand nous nous référons à un caractère individuel dans une chaîne, 1179 01:01:12,430 --> 01:01:15,280 nous avons souvent le faire en se référant à la position de ce personnage 1180 01:01:15,280 --> 01:01:17,620 à l'intérieur de la chaîne, 1181 01:01:17,620 --> 01:01:19,910 probablement de la même façon que nous parlons de Septembre 1182 01:01:19,910 --> 01:01:22,870 étant le neuvième mois de l'année 1183 01:01:22,870 --> 01:01:27,730 ou le lundi étant le premier jour de la semaine. 1184 01:01:29,280 --> 01:01:33,070 Donc, ceci nous fournit un moyen de 1185 01:01:33,070 --> 01:01:37,030 déterminer lesquels sont impairs par rapport même 1186 01:01:37,030 --> 01:01:39,540 parce que vous pouvez voir ici, 1187 01:01:39,540 --> 01:01:43,640 si nous le faire correspondre avec ce T, 1188 01:01:46,310 --> 01:01:49,360 vous pouvez voir que tous les capitalisés 1189 01:01:49,360 --> 01:01:53,040 sont à même de positions, 1190 01:01:53,040 --> 01:01:55,880 au moins pour le premier mot, 1191 01:01:55,880 --> 01:01:59,080 et puis les choses se jeter au loin une fois que nous avons atteint l'espace, 1192 01:01:59,080 --> 01:02:02,460 parce que nous ne comptons pas cet espace comme une lettre, 1193 01:02:02,460 --> 01:02:05,150 donc c'est comme si nous avons commencé 1194 01:02:05,150 --> 01:02:08,930 et a 0, 1, 2, 3, 4, 5, 1195 01:02:08,930 --> 01:02:12,600 espace, 6, 7, 8, l'espace, 1196 01:02:12,600 --> 01:02:16,440 9 puis 10, 11, 12 etc. 1197 01:02:19,300 --> 01:02:22,910 >> Cool, alors nous avons certainement préférable d'utiliser une sorte de boucle 1198 01:02:22,910 --> 01:02:27,760 aller sur chacun des caractères à leur tour. 1199 01:02:31,330 --> 01:02:34,580 Donc à ce stade, 1200 01:02:36,490 --> 01:02:38,360 Nous allons revenir à notre ancien pseudo ici. 1201 01:02:40,970 --> 01:02:42,650 Dans le cadre de cette identification de ceux qui 1202 01:02:42,650 --> 01:02:45,350 sont en majuscules et ceux qui sont minuscules, 1203 01:02:45,350 --> 01:02:48,340 nous voulons le faire dans une sorte de boucle. 1204 01:02:51,080 --> 01:02:53,390 Boucle, du côlon. 1205 01:02:55,070 --> 01:03:01,220 Quel genre de boucle, sur les types de boucles que nous avons, 1206 01:03:01,220 --> 01:03:03,670 semble être une bonne idée d'utiliser dans ce cas? 1207 01:03:03,670 --> 01:03:05,610 >> Je pensais la boucle for. 1208 01:03:05,610 --> 01:03:07,500 Et pourquoi pensez-vous de la boucle for? 1209 01:03:07,500 --> 01:03:10,000 Parce >> qu'il commence à zéro, puis 1210 01:03:10,000 --> 01:03:13,000 lorsque nous arrivons à la longueur de la chaîne, 1211 01:03:13,000 --> 01:03:16,170 puis chaque itération, vous pouvez [inaudible], aussi? 1212 01:03:16,170 --> 01:03:18,260 Oui, exactement. 1213 01:03:18,260 --> 01:03:21,490 Ainsi, sur les différents choix de boucles, 1214 01:03:21,490 --> 01:03:25,350 nous avons des boucles, des boucles while et do-while. 1215 01:03:25,350 --> 01:03:28,550 Si une boucle for est particulièrement utile 1216 01:03:28,550 --> 01:03:32,120 c'est quand vous voulez en savoir 1217 01:03:32,120 --> 01:03:34,940 genre d'où vous en êtes dans la boucle, 1218 01:03:34,940 --> 01:03:38,520 le nombre de fois que la boucle a été exécuté jusqu'à présent. 1219 01:03:38,520 --> 01:03:42,490 Ce qui est exactement ce que nous voulons savoir, dans cette situation, 1220 01:03:42,490 --> 01:03:44,640 comme Kelly a dit: 1221 01:03:44,640 --> 01:03:47,400 basé sur des commentaires précédents Charlotte que nous voulons connaître la position 1222 01:03:47,400 --> 01:03:49,900 du caractère dans la chaîne, 1223 01:03:49,900 --> 01:03:51,750 et la boucle for nous donnera juste que, 1224 01:03:51,750 --> 01:03:54,680 parce que si nous commençons genre de regarder en arrière à notre chaîne, 1225 01:03:54,680 --> 01:03:57,140 si nous commençons notre boucle de 0, 1226 01:03:57,140 --> 01:04:00,350 et on monte sur toute la longueur de la chaîne entière, 1227 01:04:00,350 --> 01:04:04,740 alors nous pouvons associer la lettre T 1228 01:04:04,740 --> 01:04:08,110 avec le 0 dans notre boucle for, 1229 01:04:09,950 --> 01:04:13,080 lettre H avec le 1 dans la boucle pour, et ainsi de suite, 1230 01:04:13,080 --> 01:04:16,600 tout le chemin à travers l'extrémité de la chaîne. 1231 01:04:18,810 --> 01:04:21,890 >> Donc, nous allons commencer à coder ce juste un peu 1232 01:04:21,890 --> 01:04:24,930 juste pour vous les gars faire une idée de ce que cela ressemble. 1233 01:04:24,930 --> 01:04:27,980 Je vais sauver ce, 1234 01:04:27,980 --> 01:04:31,230 donc nous avons notre code pseudo ici, 1235 01:04:33,490 --> 01:04:38,120 et je vais tout effacer. 1236 01:04:38,120 --> 01:04:42,210 Donc, j'ai une ardoise vierge. 1237 01:04:42,210 --> 01:04:45,910 Je vais commencer par écrire int main (void) 1238 01:04:45,910 --> 01:04:48,440 { 1239 01:04:48,440 --> 01:04:51,380 Je vais mettre le 0 en retour 1240 01:04:51,380 --> 01:04:53,320 puis la.} 1241 01:04:53,320 --> 01:04:56,130 Donc, en général quand je commence à programmer, c'est ce que je commence avec. 1242 01:04:56,130 --> 01:04:59,370 Je vais l'enregistrer afin que vous les gars l'ont. 1243 01:05:06,290 --> 01:05:08,440 Ainsi, une des premières choses dont nous avons parlé était 1244 01:05:08,440 --> 01:05:10,920 obtenir l'entrée de l'utilisateur 1245 01:05:10,920 --> 01:05:13,740 et le stocker dans une chaîne. 1246 01:05:13,740 --> 01:05:16,420 Comment pouvons-nous obtenir les commentaires d'un utilisateur? 1247 01:05:16,420 --> 01:05:19,640 GetString. >> 1248 01:05:19,640 --> 01:05:21,870 GetString, d'accord. 1249 01:05:23,150 --> 01:05:26,820 Donc, si je tape GetString () 1250 01:05:26,820 --> 01:05:32,150 et un point-virgule. 1251 01:05:32,150 --> 01:05:36,630 Nous allons essayer de lancer ce, cette course sera, tout d'abord? 1252 01:05:36,630 --> 01:05:38,430 Et pourquoi ce ne sera pas exécuté? 1253 01:05:38,430 --> 01:05:40,090 >> Vous devez déclarer la variable. 1254 01:05:40,090 --> 01:05:43,040 Je dois déclarer une variable. D'accord. 1255 01:05:43,040 --> 01:05:45,700 >> Alors, comment puis-je faire cela? 1256 01:05:45,700 --> 01:05:48,400 Avez-vous l'esprit d'écrire quelque chose, il le partage? 1257 01:05:48,400 --> 01:05:51,270 Et puis nous pouvons le tirer vers le haut. 1258 01:05:51,270 --> 01:05:54,630 Voyons, Dan, bien, d'accord. 1259 01:05:54,630 --> 01:05:59,100 Ou Daniel. Copiez que, d'entrée de chaîne = GetString (). 1260 01:05:59,100 --> 01:06:01,340 Awesome. 1261 01:06:01,340 --> 01:06:02,890 Est-ce que cette exécution? 1262 01:06:02,890 --> 01:06:05,210 Essayons. 1263 01:06:05,210 --> 01:06:08,890 Toucher course, le code source le téléchargement, la construction, une erreur s'est produite. 1264 01:06:08,890 --> 01:06:11,040 D'accord. 1265 01:06:11,040 --> 01:06:14,950 So whats passe ici? 1266 01:06:14,950 --> 01:06:18,700 L'utilisation de 'chaîne' identificateur non déclaré. 1267 01:06:18,700 --> 01:06:22,840 >> Nous devons inclure les bibliothèques? 1268 01:06:22,840 --> 01:06:25,130 Ouais, donc Dan disant que nous devons inclure les bibliothèques. 1269 01:06:25,130 --> 01:06:28,270 Est-ce que vous alliez dire, Stella? Awesome. 1270 01:06:29,450 --> 01:06:31,430 C'est génial, donc Stella, pouvez-vous 1271 01:06:31,430 --> 01:06:34,800 copier ce code hors de l'Espace Daniel? 1272 01:06:34,800 --> 01:06:37,580 Si vous cliquez sur Daniel Roland Ki, le copier, 1273 01:06:37,580 --> 01:06:41,360 et puis vous mettez la ligne include dans, puis enregistrez-out? 1274 01:06:46,580 --> 01:06:49,360 Faites-moi savoir quand vous êtes prêt. 1275 01:06:57,160 --> 01:06:59,490 Donc, cette syntaxe include est aussi une sorte de funky; 1276 01:06:59,490 --> 01:07:02,210 il est comme ça tag hachage, 1277 01:07:02,210 --> 01:07:05,760 et il ya le comprendre, et puis il ya ces équerres. 1278 01:07:12,490 --> 01:07:15,360 Vous souvenez-vous comment cela fonctionne, ou devrais-je le mettre sur ce code ici? 1279 01:07:15,360 --> 01:07:17,850 >> Je suis bon. 1280 01:07:17,850 --> 01:07:19,810 D'accord. 1281 01:07:19,810 --> 01:07:23,260 >> Je l'ai imprimé - Je ne savais pas quelle bibliothèque, cependant. 1282 01:07:23,260 --> 01:07:25,570 Oh, d'accord - ouais, c'est donc la bibliothèque CS50. 1283 01:07:25,570 --> 01:07:27,660 >> Oh, j'ai mis la bibliothèque stdio. 1284 01:07:27,660 --> 01:07:30,950 >> Oh, il a obtenu - oui, non, C'est - 1285 01:07:30,950 --> 01:07:34,380 il s'avère que la chaîne est en fait quelque chose qui est spécial pour CS50. 1286 01:07:36,590 --> 01:07:41,240 Il n'est pas vraiment un type de chaîne vrai 1287 01:07:41,240 --> 01:07:45,000 car ici, la chaîne est en position type - 1288 01:07:45,000 --> 01:07:49,140 nous déclarer une variable appelée entrée de type string - 1289 01:07:49,140 --> 01:07:53,320 et nous mettre à l'intérieur de l'entrée 1290 01:07:53,320 --> 01:07:58,440 la valeur qui est renvoyée à nous: la sortie de cet appel de fonction GetString. 1291 01:07:58,440 --> 01:08:02,910 Vous pouvez dire que c'est un appel de fonction, parce qu'il ya des parenthèses, tout comme le fait printf, 1292 01:08:02,910 --> 01:08:05,920 tout comme strlen fait. 1293 01:08:05,920 --> 01:08:09,860 Mais la chaîne est en fait pas un type réel 1294 01:08:09,860 --> 01:08:11,760 dans le langage C. 1295 01:08:11,760 --> 01:08:15,710 Nous l'avons transformé en un type, et nous allons prendre environ plus de ce qu'il est réellement 1296 01:08:15,710 --> 01:08:19,000 en C, parce qu'il ya une façon de travailler avec des cordes; 1297 01:08:19,000 --> 01:08:22,479 nous venons de faire quelque chose pour lui donner l'air un peu plus sympathique. 1298 01:08:22,479 --> 01:08:25,240 >> Alors on y va. 1299 01:08:25,240 --> 01:08:28,439 Voici le code de Stella. 1300 01:08:28,439 --> 01:08:32,470 Il a le # include . 1301 01:08:32,470 --> 01:08:36,390 D'autres personnes appellent cela comme une table de hachage sont parfois ou une forte inclure. 1302 01:08:36,390 --> 01:08:39,580 Maintenant, nous pouvons le lancer, exécutez-le, 1303 01:08:39,580 --> 01:08:43,649 et nous obtenons toujours une erreur. 1304 01:08:43,649 --> 01:08:46,290 Voyons voir ce qui se passe. 1305 01:08:48,069 --> 01:08:50,569 «Variable inutilisée 'input'." 1306 01:08:50,569 --> 01:08:53,350 Bon, c'est cool, c'est cool. 1307 01:08:53,350 --> 01:08:55,859 Je veux dire, ce n'est pas vraiment cool, 1308 01:08:55,859 --> 01:08:57,930 parce que nous obtenons une erreur et ça ne fonctionne pas, 1309 01:08:57,930 --> 01:09:00,410 mais ce que cela veut dire, c'est que 1310 01:09:00,410 --> 01:09:03,130 nous n'avons pas utilisé notre variable, ce qui est logique. 1311 01:09:03,130 --> 01:09:06,090 Nous n'avons pas essayé de faire quelque chose avec elle. 1312 01:09:07,819 --> 01:09:10,490 Il s'agit d'une façon qui 1313 01:09:10,490 --> 01:09:14,170 Clang est d'essayer de nous aider à nous assurer que nous ne sommes pas seulement en utilisant des variables 1314 01:09:14,170 --> 01:09:18,819 puis en les appelant par inadvertance quelque chose d'autre plus tard dans notre code, 1315 01:09:18,819 --> 01:09:21,649 nous aider à éviter les erreurs de cette façon. 1316 01:09:23,130 --> 01:09:28,810 >> D'accord, donc nous avons d'entrée de l'utilisateur, 1317 01:09:28,810 --> 01:09:31,910 nous l'avons stocké dans une variable. 1318 01:09:31,910 --> 01:09:34,569 L'étape suivante a ensuite 1319 01:09:34,569 --> 01:09:37,609 commencer à regarder tous les caractères de la chaîne 1320 01:09:37,609 --> 01:09:41,830 et à identifier ceux qui doivent être en majuscules 1321 01:09:41,830 --> 01:09:44,600 et ceux qui doivent être en minuscules. 1322 01:09:44,600 --> 01:09:49,439 Et comme Kelly et Charlotte élevé, 1323 01:09:49,439 --> 01:09:52,340 nous faisons cela en utilisant une boucle for. 1324 01:09:52,340 --> 01:09:55,520 Alors, quelqu'un ne vous rappeler la syntaxe d'une boucle for 1325 01:09:55,520 --> 01:09:58,670 et je voudrais prendre un coup de couteau à simplement écrire 1326 01:09:58,670 --> 01:10:03,170 la première ligne de la boucle for, juste pour le petit? 1327 01:10:05,740 --> 01:10:07,330 Kelly, tu veux faire un essai? 1328 01:10:07,330 --> 01:10:10,300 >> Ouais, donc vous devez initialiser d'abord, 1329 01:10:10,300 --> 01:10:13,170 alors j'ai mis i = 0, 1330 01:10:13,170 --> 01:10:15,390 et puis j'ai fait i 01:10:18,570 Est-il dans votre espace - ce que je peux tirer vers le haut? 1332 01:10:18,570 --> 01:10:21,330 >> Ouais, j'ai foiré un peu, mais oui. 1333 01:10:21,330 --> 01:10:24,180 >> Bon, il faut bien tirer vers le haut. 1334 01:10:24,180 --> 01:10:26,490 Awesome. 1335 01:10:26,490 --> 01:10:29,510 >> Mais alors je ne sais pas si vous avez eu ce - 1336 01:10:29,510 --> 01:10:32,180 Ouais, d'accord. 1337 01:10:33,020 --> 01:10:36,030 Alors, voici ce que Kelly a obtenu: regardons rapidement. 1338 01:10:36,030 --> 01:10:40,290 Donc, elle comprenait la bibliothèque CS50 vers le haut. 1339 01:10:40,290 --> 01:10:44,790 Elle est inclus dans la bibliothèque standard IO au sommet, 1340 01:10:45,550 --> 01:10:48,990 et la norme IO dispose de fonctions comme printf, 1341 01:10:48,990 --> 01:10:51,690 donc si jamais vous voulez utiliser printf, vous avez besoin de cette ligne. 1342 01:10:53,060 --> 01:10:56,140 Et puis elle a inclus la bibliothèque de chaîne, 1343 01:10:56,140 --> 01:10:58,200 dont nous aurons besoin, 1344 01:10:58,200 --> 01:11:01,010 parce que la bibliothèque chaîne a strlen fonction, 1345 01:11:01,010 --> 01:11:04,320 qui nous y reviendrons dans un instant. 1346 01:11:04,320 --> 01:11:07,560 Donc, si on regarde ce que Kelly a fait ici, 1347 01:11:07,560 --> 01:11:10,260 pouvez-vous nous ce que vous faisiez? 1348 01:11:10,260 --> 01:11:13,600 >> Ouais, donc - je veux dire, j'ai eu des erreurs, donc - 1349 01:11:13,600 --> 01:11:15,380 Oui, Non, c'est - 1350 01:11:15,380 --> 01:11:18,580 Alors >> Je voulais appeler la chaîne que je me suis juste "string". 1351 01:11:18,580 --> 01:11:22,230 Je voulais imprimer la chaîne 1352 01:11:22,230 --> 01:11:25,640 et puis je - 1353 01:11:27,450 --> 01:11:30,930 Je voulais aimer définir la chaîne que comme un tableau de chaque caractère 1354 01:11:30,930 --> 01:11:33,170 étant différente [inaudible], non? 1355 01:11:33,170 --> 01:11:38,080 Et puis je voulais commencer à la position 0 1356 01:11:38,080 --> 01:11:40,630 et puis tous les 2 places, 1357 01:11:40,630 --> 01:11:42,580 J'allais tirer, 1358 01:11:42,580 --> 01:11:45,680 alors je l'ai décrit comme 23, parce que j'ai été en regardant la table ASCII. 1359 01:11:45,680 --> 01:11:48,730 C'est donc ce que je pensais - je sais que ce n'est pas juste. 1360 01:11:48,730 --> 01:11:50,920 >> C'est bon, donc c'est un bon début. 1361 01:11:50,920 --> 01:11:54,120 Je pense que beaucoup de ce cadre est en place ici. 1362 01:11:54,120 --> 01:11:57,500 Passons en revue sorte de ligne par ligne et de voir ce qui se passe. 1363 01:11:57,500 --> 01:12:01,040 Donc, comme je l'aime pour ce faire est simplement commencer par la compilation du code 1364 01:12:01,040 --> 01:12:04,300 et de laisser le compilateur me dire comme ce qui ne va pas avec mon code, 1365 01:12:04,300 --> 01:12:07,450 parce que le compilateur est vraiment bon à vous dire quel est le problème avec votre code. 1366 01:12:09,790 --> 01:12:12,780 Donc, si on le joue, la construction, et il ne construit pas. 1367 01:12:12,780 --> 01:12:14,860 Il dit qu'il ya eu une erreur, 1368 01:12:14,860 --> 01:12:17,320 si nous défiler vers le bas et regardez à la première erreur, 1369 01:12:17,320 --> 01:12:20,960 il a dit - 1370 01:12:20,960 --> 01:12:22,040 nous revenir en arrière jusqu'à la partie supérieure, 1371 01:12:22,040 --> 01:12:26,070 nous pouvons voir qu'il ya 5 erreurs générées ici-bas au fond. 1372 01:12:26,070 --> 01:12:30,180 Oups, c'est vraiment coupé. 1373 01:12:31,810 --> 01:12:35,790 Je suppose que c'est tout simplement pas faire mieux. 1374 01:12:36,970 --> 01:12:38,500 >> Nous y voilà. 1375 01:12:39,790 --> 01:12:42,530 Donc, il ya 5 erreurs totales générées. 1376 01:12:42,530 --> 01:12:45,140 Ici, je ne vois que les 2 premiers, 1377 01:12:45,140 --> 01:12:49,100 si je peux me déplacer jusqu'à présent un peu et puis type de défilement vers le haut. 1378 01:12:49,100 --> 01:12:53,220 C'est la commande qui a été exécuté pour compiler le code, 1379 01:12:53,220 --> 01:12:59,030 puis la première erreur, c'est fichier.c ici: 1380 01:12:59,030 --> 01:13:03,300 «S'attendre à identifier ou '('", et c'est sur cette ligne 1381 01:13:03,300 --> 01:13:06,680 où nous avons dit string = GetString (). 1382 01:13:07,660 --> 01:13:12,920 Vous pouvez voir ici qu'il était sur la ligne 8 du fichier.c, 1383 01:13:12,920 --> 01:13:17,230 et puis je crois que c'est 12 caractères - c'est l'erreur. 1384 01:13:17,230 --> 01:13:20,390 Alors qu'est-ce qui ne va pas à la ligne 8 - Kelly? 1385 01:13:20,390 --> 01:13:22,810 >> Vous avez juste besoin de l'appeler, comme une lettre ou quelque chose, 1386 01:13:22,810 --> 01:13:24,400 comme la chaîne s ou quelque chose? 1387 01:13:24,400 --> 01:13:28,250 Ouais, il s'avère que ces noms de type spécial, 1388 01:13:28,250 --> 01:13:31,770 de sorte string, int, char, short, 1389 01:13:31,770 --> 01:13:35,740 ils sont tous les mots clés spéciales, 1390 01:13:35,740 --> 01:13:38,940 et vous ne pouvez pas réellement les utiliser comme noms de vos variables, 1391 01:13:38,940 --> 01:13:41,430 parce que le compilateur regarde et dit que, 1392 01:13:41,430 --> 01:13:43,680 "Oh, je sais que c'est un type», 1393 01:13:43,680 --> 01:13:46,530 de sorte que vous ne pouvez pas réellement une variable de type chaîne appelée chaîne, 1394 01:13:46,530 --> 01:13:50,800 comme je suis en train de faire ici, cela ne fonctionnera pas. 1395 01:13:52,610 --> 01:13:58,250 Mais à la place, nous pouvons l'appeler quelque chose comme s ou st ou str. 1396 01:13:58,250 --> 01:14:01,540 Nous n'avions pas l'appeler int. 1397 01:14:01,540 --> 01:14:03,740 Nous ne pouvons pas avoir une chaîne appelée int. 1398 01:14:03,740 --> 01:14:06,740 Nous ne pouvons pas avoir une chaîne appelée char; aucun de ceux qui vont travailler. 1399 01:14:06,740 --> 01:14:09,420 >> Nous allons donc appeler cela s pour le moment. 1400 01:14:10,630 --> 01:14:13,170 Awesome. 1401 01:14:13,170 --> 01:14:17,500 Alors qu'est-ce qui se passe à côté de cette ligne? 1402 01:14:21,390 --> 01:14:24,350 String - cette ligne semble assez bon? 1403 01:14:24,350 --> 01:14:27,830 Donnons-lui une autre chance, il faut bien l'exécuter. 1404 01:14:27,830 --> 01:14:30,360 Ok, donc nous avons encore des erreurs. 1405 01:14:30,360 --> 01:14:32,080 Cette fois-ci, nous en sommes à 4 erreurs. 1406 01:14:32,080 --> 01:14:34,350 Donc nous avons eu l'un d'eux. 1407 01:14:34,350 --> 01:14:36,130 Passons en place. 1408 01:14:36,130 --> 01:14:38,890 "Nom de type inattendu 'string': expression attendue," oui? 1409 01:14:38,890 --> 01:14:41,780 >> Ouais, c'est parce que j'ai essayé de nommer la chaîne. 1410 01:14:41,780 --> 01:14:44,270 Ouais, de sorte qu'il ressemble nous disposons maintenant d'aller fix 1411 01:14:44,270 --> 01:14:46,560 toutes ces références à chaîne. 1412 01:14:46,560 --> 01:14:50,070 Vous pouvez voir qu'il ya une référence à la chaîne ici, un ici, un ici, 1413 01:14:50,070 --> 01:14:53,440 afin que nous puissions passer tout cela à l'art. 1414 01:14:56,040 --> 01:15:00,930 Grande. Ok, exécutez-le à nouveau. 1415 01:15:00,930 --> 01:15:03,260 Bâtiment - autre erreur s'est produite. 1416 01:15:03,260 --> 01:15:06,900 >> Bon, maintenant, nous en sommes à une erreur, 1417 01:15:06,900 --> 01:15:11,090 donc int i = s, puis les crochets. 1418 01:15:11,090 --> 01:15:14,880 Alors pouvez-vous nous en dire un peu plus sur ce que vous faisiez ici, Kelly? 1419 01:15:14,880 --> 01:15:17,120 Oui >>. 1420 01:15:17,120 --> 01:15:19,410 Il était sur la ligne 10. 1421 01:15:19,410 --> 01:15:22,760 >> Je ne sais pas si nous avions besoin de tout, 1422 01:15:22,760 --> 01:15:25,560 mais je pense que je tentais de - 1423 01:15:25,560 --> 01:15:27,580 Je vais l'enregistrer afin que vous puissiez suivre. 1424 01:15:27,580 --> 01:15:30,470 >> Je pense que j'étais 1425 01:15:30,470 --> 01:15:33,150 essayez de lui dire de commencer à la position 0 1426 01:15:33,150 --> 01:15:35,030 au début de ma boucle for, 1427 01:15:35,030 --> 01:15:38,370 donc je pense que c'est peut-être dire était inutile. 1428 01:15:39,690 --> 01:15:41,350 Donc, pour récapituler, 1429 01:15:41,350 --> 01:15:44,850 vous disiez que ce - que vous tentiez de démarrer ce à la position 0 1430 01:15:44,850 --> 01:15:47,030 et obtenir ce - oui, 1431 01:15:47,030 --> 01:15:50,460 donc je pense que plus tôt, aussi, quand vous marchiez dans le code, 1432 01:15:50,460 --> 01:15:54,070 vous parliez de la façon dont vous voulez traiter la chaîne comme un tableau 1433 01:15:54,070 --> 01:15:57,440 afin que nous puissions accéder à chaque personnage individuellement. 1434 01:15:57,440 --> 01:16:00,660 Je pense que Dan tableaux mentionnés, aussi, en essayant de convertir des chaînes dans des tableaux. 1435 01:16:01,400 --> 01:16:03,300 >> Il s'avère que sorte de sous le capot, 1436 01:16:03,300 --> 01:16:06,060 une chaîne est actuellement stocké comme un tableau déjà, 1437 01:16:06,060 --> 01:16:08,060 et vous pouvez y accéder comme un tableau; 1438 01:16:08,060 --> 01:16:12,390 il n'y a pas de conversion que vous avez à faire. 1439 01:16:12,390 --> 01:16:15,770 Un isn't chaîne - so - 1440 01:16:15,770 --> 01:16:18,200 une chaîne n'est pas vraiment un tableau, 1441 01:16:18,200 --> 01:16:21,940 mais vous pouvez y accéder en tant que telle, parce que tous les caractères sont stockés 1442 01:16:21,940 --> 01:16:25,160 une à côté de l'autre dans la mémoire, 1443 01:16:25,160 --> 01:16:28,310 donc si vous voulez obtenir le premier caractère de la chaîne, 1444 01:16:28,310 --> 01:16:31,910 c'est la même chose que d'obtenir le premier entier dans un tableau d'entiers. 1445 01:16:31,910 --> 01:16:35,010 Donc, nous avons souvent -, nous 1446 01:16:35,010 --> 01:16:36,360 reportez-vous à la 2 comme 1447 01:16:36,360 --> 01:16:38,590 oh, comme étant une chaîne, comme étant un tableau, 1448 01:16:38,590 --> 01:16:40,830 même si elle vraiment - ils sont des choses très différentes, 1449 01:16:40,830 --> 01:16:43,410 mais vous pouvez les traiter très sensiblement les mêmes. 1450 01:16:44,700 --> 01:16:47,400 Ainsi, il s'avère que cette ligne fait - 1451 01:16:47,400 --> 01:16:51,270 nous n'avons pas besoin de faire une conversion, 1452 01:16:51,270 --> 01:16:53,500 et en fait, 1453 01:16:53,500 --> 01:16:56,790 ce n'est effectivement pas une expression valide, 1454 01:16:56,790 --> 01:16:59,040 qui est ce que notre compilateur nous dit. 1455 01:16:59,040 --> 01:17:01,290 Elle dit: "Hé, il s'attendait à une expression, 1456 01:17:01,290 --> 01:17:04,610 et ce que j'ai ici, c'est quelque chose qui n'est pas une expression. " 1457 01:17:04,610 --> 01:17:07,310 Pour déclarer un tableau, 1458 01:17:07,310 --> 01:17:11,780 tout ce que vous devez faire est quelque chose comme ceci avec un point-virgule, 1459 01:17:11,780 --> 01:17:15,080 et puis vous dire l'ensemble combien de temps vous voulez qu'il soit, 1460 01:17:15,080 --> 01:17:18,370 par exemple 5, si ce la ligne 10 1461 01:17:18,370 --> 01:17:23,880 se déclarer un tableau appelé i avec 5 entiers en elle. 1462 01:17:23,880 --> 01:17:26,540 >> Il s'agit d'un côté, ce qui n'est pas nécessaire pour le code, 1463 01:17:26,540 --> 01:17:30,970 mais c'est - c'est un peu ce que la déclaration ressemble. 1464 01:17:30,970 --> 01:17:35,310 >> Comment pourriez-vous pas utiliser char i [strlen (s)]? 1465 01:17:35,310 --> 01:17:38,500 Char i [strlen (s)]? 1466 01:17:38,500 --> 01:17:41,500 >> Char i, puis à l'intérieur du parenthèses, strlen (s). 1467 01:17:43,900 --> 01:17:47,710 Ouais, afin que nous puissions - 1468 01:17:47,710 --> 01:17:49,460 nous pourrions le faire, 1469 01:17:49,460 --> 01:17:52,160 et ce serait déclarer - ce que seraient les effets? 1470 01:17:52,160 --> 01:17:55,900 >> Je pense que ce serait déclarer un tableau 1471 01:17:55,900 --> 01:18:01,780 d', comme - des - 1472 01:18:01,780 --> 01:18:04,540 oh, vous n'avez pas besoin de la i - oh, 1473 01:18:04,540 --> 01:18:06,420 oui, vous avez certainement n'ont pas besoin de l'i. 1474 01:18:06,420 --> 01:18:10,250 Vous déclarez un tableau de caractères 1475 01:18:10,250 --> 01:18:13,150 s de longueur. 1476 01:18:14,680 --> 01:18:16,770 Et donc ce que Sam dis, c'est que 1477 01:18:16,770 --> 01:18:20,660 cette ligne 10 - permettez-moi de mettre un peu d'espace entre lui et le reste pour que nous puissions isoler - 1478 01:18:20,660 --> 01:18:23,440 cette ligne 10 serait déclarer un tableau 1479 01:18:23,440 --> 01:18:28,520 de caractères, strlen (s) d'une valeur d'entre eux, 1480 01:18:28,520 --> 01:18:32,270 mais en fait nous avons besoin de l'i, 1481 01:18:32,270 --> 01:18:35,710 et la raison pour laquelle nous avons besoin de l'i parce que nous devons donner à l'ensemble un nom; 1482 01:18:35,710 --> 01:18:38,900 autrement, nous n'aurions pas un moyen de se référer au tableau plus loin dans le code. 1483 01:18:38,900 --> 01:18:41,180 >> Donc, ce droit est ici le nom du tableau 1484 01:18:41,180 --> 01:18:43,420 et à l'intérieur de la longueur. 1485 01:18:43,420 --> 01:18:45,010 Cela nous donnera un tableau, 1486 01:18:45,010 --> 01:18:47,430 mais ce n'est - encore une fois, il s'agit d'une déclaration. 1487 01:18:47,430 --> 01:18:50,380 Ce n'est pas une mission, ce n'est pas une initialisation. 1488 01:18:50,380 --> 01:18:52,330 Si nous déclarons ce tableau comme celui-ci, 1489 01:18:52,330 --> 01:18:54,490 il n'y a vraiment rien dans le contenu du tableau. 1490 01:18:54,490 --> 01:18:57,490 C'est juste ordure - tout ce qui est là-dedans. 1491 01:18:57,490 --> 01:18:59,780 Et comme nous l'avons dit, 1492 01:18:59,780 --> 01:19:01,340 nous avons effectivement n'avez même pas besoin de faire cette conversion, 1493 01:19:01,340 --> 01:19:04,810 parce que nous pouvons déjà traiter chaîne s comme un tableau. 1494 01:19:06,750 --> 01:19:09,170 Je sais que nous manquons un peu de temps à temps, 1495 01:19:09,170 --> 01:19:12,330 mais je veux vraiment obtenir rapidement cette boucle for 1496 01:19:12,330 --> 01:19:14,850 et vous montrer comment accéder aux caractères individuels dans le tableau, 1497 01:19:14,850 --> 01:19:17,170 parce que c'est la clé de notre mission. 1498 01:19:17,170 --> 01:19:20,790 Et puis nous allons vous laisser aller à partir de là. 1499 01:19:20,790 --> 01:19:24,610 >> Donc, ici, nous avons une boucle for 1500 01:19:24,610 --> 01:19:28,310 qui ressemble presque bon. 1501 01:19:28,310 --> 01:19:30,960 Ce qui n'est pas tout à fait près de là? 1502 01:19:30,960 --> 01:19:33,240 Chose - ce qui n'est pas tout à fait raison au sujet de cette boucle for? 1503 01:19:33,240 --> 01:19:36,010 Aucun >> accolades? 1504 01:19:36,010 --> 01:19:38,420 Ni d'accolades, pour un. 1505 01:19:38,420 --> 01:19:42,580 Tu veux faire en sorte que nous avons le corps de la boucle avec des accolades. 1506 01:19:42,580 --> 01:19:45,240 Oups, pas l'accolade carré! 1507 01:19:45,240 --> 01:19:48,660 Et quelle est la prochaine chose que nous devons faire avec cette boucle? 1508 01:19:48,660 --> 01:19:52,640 Si je tente de l'exécuter, 1509 01:19:52,640 --> 01:19:56,740 quoi de cette erreur que je reçois? 1510 01:19:56,740 --> 01:20:00,990 Je reçois toutes ces erreurs - je dois initialiser i. 1511 01:20:00,990 --> 01:20:03,610 Grande. 1512 01:20:03,610 --> 01:20:05,770 Donc, ce sera une boucle - ce n'est pas tout à fait là, 1513 01:20:05,770 --> 01:20:08,680 mais ça devient vraiment proche. 1514 01:20:08,680 --> 01:20:11,260 Ce code nous pouvons maintenant exécuter, 1515 01:20:11,260 --> 01:20:14,620 construire, une erreur se produit toujours. 1516 01:20:17,960 --> 01:20:19,800 Pourquoi est-il encore se plaindre, 1517 01:20:19,800 --> 01:20:22,030 dire l'expression n'est pas utilisée, 1518 01:20:22,030 --> 01:20:24,600 et c'est parce que cette ligne ne fait rien. 1519 01:20:24,600 --> 01:20:27,620 Nous n'avons pas le stocker quelque part, nous n'avons pas enregistrer le résultat. 1520 01:20:27,620 --> 01:20:30,210 Où devrions-nous sauver ce résultat? 1521 01:20:30,210 --> 01:20:32,920 >> S ou i? 1522 01:20:32,920 --> 01:20:35,990 Exactement, et cette syntaxe funky, 1523 01:20:35,990 --> 01:20:38,550 cette s avec les crochets 1524 01:20:38,550 --> 01:20:41,500 signifie accéder au caractère i-ème s. 1525 01:20:41,500 --> 01:20:45,650 Ça va être quelque chose qui est vraiment important pour la mission. 1526 01:20:45,650 --> 01:20:48,070 Malheureusement, nous allons devoir arrêter ici, 1527 01:20:48,070 --> 01:20:50,550 de telle sorte que la section Sebastian peux entrer, 1528 01:20:50,550 --> 01:20:53,980 mais je suis heureux de rester à l'extérieur après et prendra toutes les questions. 1529 01:20:53,980 --> 01:20:56,680 Donc merci les gars d'être venus. 1530 01:20:56,680 --> 01:20:59,730 Cela devrait maintenant télécharger, construire, exécuter. 1531 01:21:01,570 --> 01:21:04,320 Nous pouvons entrer dans une chaîne comme "bonjour" 1532 01:21:06,570 --> 01:21:08,730 et il affiche "Qox". 1533 01:21:08,730 --> 01:21:11,030 [Rires] 1534 01:21:11,030 --> 01:21:14,640 >> Donc, pas tout à fait là, mais se déplacer, se égard de ces boucles! 1535 01:21:14,640 --> 01:21:18,640 Merci d'être venu, et je serai dehors.