1 00:00:00,000 --> 00:00:02,418 >> [Lecture de musique] 2 00:00:02,418 --> 00:00:10,542 3 00:00:10,542 --> 00:00:12,000 ALLISON BUCHHOLTZ-UA: Salut tout le monde. 4 00:00:12,000 --> 00:00:15,640 Bienvenue à votre première section CS50 officiel. 5 00:00:15,640 --> 00:00:19,507 Comme vous pouvez le voir ce est section CS50-like, juste 6 00:00:19,507 --> 00:00:20,840 à tirer vers le haut notre ordre du jour. 7 00:00:20,840 --> 00:00:23,990 Alors, qui suis-je, car je suis sûr vous vous demandez tous. 8 00:00:23,990 --> 00:00:25,514 Je suis votre TF. 9 00:00:25,514 --> 00:00:27,930 Je ne suis pas juste un étudiant aléatoire qui est passer pour votre TF. 10 00:00:27,930 --> 00:00:31,190 >> Et je vais passer par genre de sections ont iront, 11 00:00:31,190 --> 00:00:34,900 attentes que nous avons, ressources, ainsi de suite et ainsi de suite. 12 00:00:34,900 --> 00:00:39,190 Nous allons parler de tableaux, ASCII fonctions, les arguments de ligne de commande, 13 00:00:39,190 --> 00:00:42,020 et il est pas ici, mais Je vais aussi aidé 14 00:00:42,020 --> 00:00:45,054 vous pensez genre de travers votre prochaine pset pour cette semaine. 15 00:00:45,054 --> 00:00:46,720 Je suis sûr que vous serez tous d'apprécier. 16 00:00:46,720 --> 00:00:48,190 17 00:00:48,190 --> 00:00:53,390 >> Donc, première question-- qui suis-je, en plus de votre TF exubérante ici. 18 00:00:53,390 --> 00:00:55,390 Je suis Alison Buchholtz-Au. 19 00:00:55,390 --> 00:00:57,970 Ceci est ma deuxième année TFing CS50. 20 00:00:57,970 --> 00:01:00,570 Je également CS51 TF au printemps. 21 00:01:00,570 --> 00:01:03,930 Vous pourriez voir encore, il si vous décidez de le prendre. 22 00:01:03,930 --> 00:01:07,370 Je suis aussi un PAF, de sorte que toute Freshmen-- et si vous n'êtes pas un étudiant de première année, 23 00:01:07,370 --> 00:01:09,980 ceci est ma troisième année comme un collègue conseiller. 24 00:01:09,980 --> 00:01:13,630 Je suis très bien versé dans vous conseiller sur la vie et les cours 25 00:01:13,630 --> 00:01:16,549 dans CS et pas dans CS. 26 00:01:16,549 --> 00:01:18,090 Je suis Informatique concentrateur. 27 00:01:18,090 --> 00:01:20,800 Je suis une personne âgée dans Adams House, meilleure maison. 28 00:01:20,800 --> 00:01:22,430 29 00:01:22,430 --> 00:01:26,050 Et avant je suis passé à CS ma deuxième année printemps, 30 00:01:26,050 --> 00:01:27,640 Je suis en fait un ingénieur biomédical. 31 00:01:27,640 --> 00:01:29,020 Je voulais aller à l'école Med. 32 00:01:29,020 --> 00:01:30,530 Je voulais être un chirurgien traumatologue. 33 00:01:30,530 --> 00:01:33,000 Et cela a complètement changé depuis que je suis CS50. 34 00:01:33,000 --> 00:01:34,250 35 00:01:34,250 --> 00:01:36,310 Je pris mon cours de deuxième année automne. 36 00:01:36,310 --> 00:01:38,920 Il était ma première introduction à CS jamais. 37 00:01:38,920 --> 00:01:44,104 Je faisais partie des 78% d'entre vous qui avait aucune expérience venant, 38 00:01:44,104 --> 00:01:45,520 et il a complètement changé ma vie. 39 00:01:45,520 --> 00:01:49,820 Et maintenant, je travaille à Microsoft, et votre belle TF. 40 00:01:49,820 --> 00:01:53,500 Et CS50 est probablement l'un des meilleures expériences 41 00:01:53,500 --> 00:01:56,210 que je l'ai eu ici à Harvard-- la fois de prendre la classe 42 00:01:56,210 --> 00:01:59,040 et être en mesure d'aider enseigner aux étudiants comme vous. 43 00:01:59,040 --> 00:02:01,410 >> Donc, je suis vraiment excité que vous êtes tous ici. 44 00:02:01,410 --> 00:02:04,270 Dans le cas où vous êtes venu en tard, il ya des bonbons, 45 00:02:04,270 --> 00:02:07,227 qui vous devriez vous sentir libre de venir grab, ou envoyer 46 00:02:07,227 --> 00:02:08,560 quelqu'un d'autre à saisir pour vous. 47 00:02:08,560 --> 00:02:09,399 ce est OK. 48 00:02:09,399 --> 00:02:10,440 Je ne veux pas manger ça. 49 00:02:10,440 --> 00:02:13,350 Ma chambre a assez de chocolat, de sorte y'all devrait essayer de finir ça. 50 00:02:13,350 --> 00:02:16,730 Je sais qu'il ya 100 pièces, mais comme, 04 heures le lundi, 51 00:02:16,730 --> 00:02:19,000 Je pense que tout le monde pourrait utiliser un peu de sucre. 52 00:02:19,000 --> 00:02:21,750 >> Donc, tous ceux qui sont officiellement dans ma section 53 00:02:21,750 --> 00:02:24,700 aurait eu un e-mail de moi avec mon numéro de téléphone, 54 00:02:24,700 --> 00:02:29,920 email address-- hésitez pas à me ajouter sur Gchat, hésitez pas à me ajouter sur Facebook, 55 00:02:29,920 --> 00:02:33,360 et aussi pour le reste d'entre vous, vous pouvez me contacter ici. 56 00:02:33,360 --> 00:02:34,450 Il ya deux H de. 57 00:02:34,450 --> 00:02:37,090 Tout le monde fait toujours comme deux L ou deux C. 58 00:02:37,090 --> 00:02:38,260 Deux est dans le nom H. 59 00:02:38,260 --> 00:02:41,800 Sinon, il va rebondir, et Je ne vais pas à obtenir votre e-mail. 60 00:02:41,800 --> 00:02:46,400 >> Donc hésitez pas à me contacter, à me contacter à tout moment. 61 00:02:46,400 --> 00:02:51,440 Je ne peux pas revenir à vous dans les 24 minutes 62 00:02:51,440 --> 00:02:53,760 mais je vous promets de revenir à vous dans les 24 heures. 63 00:02:53,760 --> 00:02:54,900 64 00:02:54,900 --> 00:02:58,067 Si vous appelez-moi une demi-heure avant votre pset est dû, vous être comme, 65 00:02:58,067 --> 00:02:59,650 Je ne sais pas ce que je fais Allison. 66 00:02:59,650 --> 00:03:00,160 Aidez moi. 67 00:03:00,160 --> 00:03:04,049 Je vais vous calmer, mais à la fin de la journée, 68 00:03:04,049 --> 00:03:07,340 si tu me traites de une demi-heure avant votre pset est due à rien d'écrit, 69 00:03:07,340 --> 00:03:11,570 Je vais être comme, bien, peut-être il est temps d'utiliser que la fin de la journée. 70 00:03:11,570 --> 00:03:15,215 Je vais donc répondre à toutes vos demandes dans un délai très rapide. 71 00:03:15,215 --> 00:03:16,482 72 00:03:16,482 --> 00:03:18,190 Mon téléphone est généralement attachée à mes mains. 73 00:03:18,190 --> 00:03:21,530 Je réponds généralement beaucoup plus rapide que 24 heures, 74 00:03:21,530 --> 00:03:25,650 mais je ne peux que garantie une réaction de 24 heures. 75 00:03:25,650 --> 00:03:26,580 >> Bien. 76 00:03:26,580 --> 00:03:28,410 Alors, pourquoi sommes-nous ici? 77 00:03:28,410 --> 00:03:32,160 Aussi, si vous avez des questions à tout moment, se il vous plaît faites le moi savoir. 78 00:03:32,160 --> 00:03:32,780 Je parle beaucoup. 79 00:03:32,780 --> 00:03:35,320 Je parle vite, mais se il vous plaît hésitez pas à me interrompre. 80 00:03:35,320 --> 00:03:36,980 Cela me donne une marge de manoeuvre aussi bien. 81 00:03:36,980 --> 00:03:38,159 82 00:03:38,159 --> 00:03:40,200 Donc sections sont un temps pour nous de vraiment juste plongée 83 00:03:40,200 --> 00:03:44,270 dans, obtenir des mains sur l'expérience, à passer par les sujets dont nous avons parlé 84 00:03:44,270 --> 00:03:49,760 en classe ou dans les matériaux d'étude qui nous vous recommandons de vous les gars en ligne. 85 00:03:49,760 --> 00:03:52,980 Et nous allons effectivement passer par certaines de ces ressources dans un peu. 86 00:03:52,980 --> 00:03:54,300 87 00:03:54,300 --> 00:03:57,400 >> Donc, quelques notes sur la section support. 88 00:03:57,400 --> 00:04:00,250 CS50-- l'une des choses qui rend un de mes cours préférés 89 00:04:00,250 --> 00:04:02,510 est le sentiment que vous n'êtes jamais seul. 90 00:04:02,510 --> 00:04:05,430 Nous avons une équipe de plus de 100 des gens qui sont là pour vous aider. 91 00:04:05,430 --> 00:04:08,080 Nous avons des heures de bureau Du lundi au jeudi. 92 00:04:08,080 --> 00:04:13,230 Donc, il ya tellement de gens qui aimer la classe autant que je fais 93 00:04:13,230 --> 00:04:15,750 et qui sont vraiment ici parce qu'ils veulent être ici. 94 00:04:15,750 --> 00:04:19,390 La plupart d'entre nous sont des étudiants, et ce est comme une cinquième classe en plus 95 00:04:19,390 --> 00:04:20,390 pour le reste de notre travail. 96 00:04:20,390 --> 00:04:22,723 >> Et il ya beaucoup de travail, mais nous le faisons parce que nous l'aimons, 97 00:04:22,723 --> 00:04:25,600 et nous aimons vraiment à vous enseigner et aider à partager notre enthousiasme 98 00:04:25,600 --> 00:04:27,260 pour ce sujet et cette classe. 99 00:04:27,260 --> 00:04:28,490 Ainsi se il vous plaît profiter. 100 00:04:28,490 --> 00:04:29,370 Venez discuter avec nous. 101 00:04:29,370 --> 00:04:33,034 Je me sens seule quand mes élèves ne me parlez pas, donc si vous voulez, 102 00:04:33,034 --> 00:04:33,950 venir passer du temps avec moi. 103 00:04:33,950 --> 00:04:35,200 Ça va être génial. 104 00:04:35,200 --> 00:04:37,400 >> Ainsi, l'article est évidemment l'un de vos plus grandes choses. 105 00:04:37,400 --> 00:04:41,770 Nous allons passer par des choses que vous avez appris en cours, 106 00:04:41,770 --> 00:04:44,100 faire quelques brefs exemples quand nous avons le temps, 107 00:04:44,100 --> 00:04:46,187 et généralement de type avoir une idée sur les choses 108 00:04:46,187 --> 00:04:48,270 vous devriez penser sur votre problème réglé. 109 00:04:48,270 --> 00:04:49,540 110 00:04:49,540 --> 00:04:53,591 Shorts-- combien de personnes regardé la vidéo de votre scratch 111 00:04:53,591 --> 00:04:54,090 court? 112 00:04:54,090 --> 00:04:55,460 113 00:04:55,460 --> 00:04:57,390 Tout le monde me reconnaît? 114 00:04:57,390 --> 00:04:59,720 Ce sont donc les très grand. 115 00:04:59,720 --> 00:05:01,210 Vous devriez vraiment regarder ceux. 116 00:05:01,210 --> 00:05:02,880 Beaucoup de travail a été mis en eux. 117 00:05:02,880 --> 00:05:06,690 Et ils sont juste destinés à être bouchées morceaux pour vous de regarder juste 118 00:05:06,690 --> 00:05:09,760 pendant trois ou quatre minutes et obtenir une meilleure compréhension d'un concept. 119 00:05:09,760 --> 00:05:11,147 120 00:05:11,147 --> 00:05:12,980 Marchez throughs-- comment beaucoup de gens ont regardé 121 00:05:12,980 --> 00:05:14,880 les visites virtuelles pour les précédents? 122 00:05:14,880 --> 00:05:16,240 Zamyla est incroyable, non? 123 00:05:16,240 --> 00:05:18,100 Comme, je voudrais être Zamyla parfois. 124 00:05:18,100 --> 00:05:19,650 125 00:05:19,650 --> 00:05:21,640 Donc certainement utiliser vos visites virtuelles. 126 00:05:21,640 --> 00:05:25,070 Elle sera le décomposer en petits morceaux, morceaux. 127 00:05:25,070 --> 00:05:28,079 Et quand vous avez ces énormes spécifications de vos ensembles de problèmes, 128 00:05:28,079 --> 00:05:30,870 ça va être très important pour être en mesure de trouver juste un endroit 129 00:05:30,870 --> 00:05:32,600 pour démarrer et travailler lentement à travers elle. 130 00:05:32,600 --> 00:05:33,610 131 00:05:33,610 --> 00:05:40,260 >> Très bien, nous avons aussi étude50, qui est study50.harvard.edu, je crois. 132 00:05:40,260 --> 00:05:42,270 Vous pouvez simplement Google étudier, et il va monter. 133 00:05:42,270 --> 00:05:45,750 Ceci est l'un des meilleures ressources que nous avons. 134 00:05:45,750 --> 00:05:49,800 Il est PowerPoint avec notes et pratiquer des problèmes pour vous 135 00:05:49,800 --> 00:05:52,430 avec des solutions qui vous peut réellement marcher à travers. 136 00:05:52,430 --> 00:05:57,000 Donc, si jamais vous voulez plus pratique, plus que ce que nous faisons dans les sections ou plus 137 00:05:57,000 --> 00:06:00,700 que vos ensembles de problèmes, cela est vraiment un endroit que je vous encourage à aller. 138 00:06:00,700 --> 00:06:03,590 Il a été construit l'été dernier par certains de mes très bons amis. 139 00:06:03,590 --> 00:06:04,480 Et il est incroyable. 140 00:06:04,480 --> 00:06:05,540 141 00:06:05,540 --> 00:06:08,670 En fait, un grand nombre de diapositives que je vais utiliser pour la section 142 00:06:08,670 --> 00:06:10,190 viendra de étude50. 143 00:06:10,190 --> 00:06:12,000 >> Il ya donc beaucoup de la TF utiliser. 144 00:06:12,000 --> 00:06:13,920 Et enfin, comme je susmentionné, les heures de bureau. 145 00:06:13,920 --> 00:06:15,836 Si vous rencontrez des problèmes aux devoirs, vous êtes 146 00:06:15,836 --> 00:06:18,270 avoir des ennuis avec un concept, venir à des heures de bureau. 147 00:06:18,270 --> 00:06:20,190 Allez-y tôt dans la semaine si vous le pouvez. 148 00:06:20,190 --> 00:06:23,130 Sortez de la quad, car il est un peu loin. 149 00:06:23,130 --> 00:06:24,780 Personne aime se promener là-bas. 150 00:06:24,780 --> 00:06:27,090 Mais il est à votre avantage, parce que vous êtes 151 00:06:27,090 --> 00:06:29,580 allez avoir tous ces facteurs de transcription, [Inaudible] vous entourer. 152 00:06:29,580 --> 00:06:31,920 Et surtout maintenant, Juste un conseil, jeudi 153 00:06:31,920 --> 00:06:35,310 sont très froid en ce moment dans Mather parce que vos psets 154 00:06:35,310 --> 00:06:36,577 sont dus le jeudi. 155 00:06:36,577 --> 00:06:38,410 Et sachant veut utiliser encore vos jours de retard. 156 00:06:38,410 --> 00:06:40,030 >> Donc, si vous rencontrez des difficulté avec les concepts, 157 00:06:40,030 --> 00:06:41,780 il ya beaucoup de facteurs de transcription qui sont là pour vous aider. 158 00:06:41,780 --> 00:06:43,196 Alors venez à Mather jeudi. 159 00:06:43,196 --> 00:06:45,280 Si vous voulez me voir, Je vais être là. 160 00:06:45,280 --> 00:06:48,870 Je suis généralement faire mon propre travail, parce que personne ne veut de mon aide. 161 00:06:48,870 --> 00:06:50,260 Alors, venez nous voir. 162 00:06:50,260 --> 00:06:51,460 163 00:06:51,460 --> 00:06:52,440 >> Venez nous rencontrer à mi-chemin. 164 00:06:52,440 --> 00:06:55,400 Alors, combien de personnes ont assisté à conférence ou regardé en ligne? 165 00:06:55,400 --> 00:06:56,570 166 00:06:56,570 --> 00:06:59,140 Combien de personnes sont allées super-section de la semaine dernière? 167 00:06:59,140 --> 00:07:00,171 168 00:07:00,171 --> 00:07:00,670 Laisser refroidir. 169 00:07:00,670 --> 00:07:02,190 Voilà effectivement un bon nombre. 170 00:07:02,190 --> 00:07:05,425 Combien d'entre vous ont lu votre spec pour cette semaine, pour votre ensemble de processeurs? 171 00:07:05,425 --> 00:07:07,081 172 00:07:07,081 --> 00:07:08,461 Oh, je suis fier de vous les gars! 173 00:07:08,461 --> 00:07:09,335 Plus de bonbons pour y'all. 174 00:07:09,335 --> 00:07:11,070 175 00:07:11,070 --> 00:07:13,280 >> Bon, alors ce que nous entendons "Nous rencontrer à mi-chemin», est 176 00:07:13,280 --> 00:07:16,440 cet article est vraiment seulement va être super utile pour vous 177 00:07:16,440 --> 00:07:19,810 si vous venez d'avoir lu votre spécification pour votre pset. 178 00:07:19,810 --> 00:07:23,859 Parce que quand je passe par un aperçu des choses que vous devriez regarder dehors pour, 179 00:07:23,859 --> 00:07:25,650 il ne va pas faire comme beaucoup de sens si vous 180 00:07:25,650 --> 00:07:28,358 je ne sais pas ce que votre problème réglé va être vous demande de faire. 181 00:07:28,358 --> 00:07:29,020 182 00:07:29,020 --> 00:07:32,590 >> Si vous ne venez pas à l'article, évidemment Je ne peux pas être d'une grande utilité pour vous. 183 00:07:32,590 --> 00:07:36,600 Je ne vais pas le prendre personnellement si vous ne venez pas à ma section en ce moment, 184 00:07:36,600 --> 00:07:38,570 mais certainement vous devriez. 185 00:07:38,570 --> 00:07:40,090 Si vous ne pouvez pas, regarder en ligne. 186 00:07:40,090 --> 00:07:41,230 187 00:07:41,230 --> 00:07:42,519 Ils sont là pour une raison. 188 00:07:42,519 --> 00:07:43,560 Mine sera là. 189 00:07:43,560 --> 00:07:44,187 190 00:07:44,187 --> 00:07:47,270 Comme vous le constatez, nous sommes en cours d'enregistrement, donc il sera là pour vous les gars. 191 00:07:47,270 --> 00:07:49,110 192 00:07:49,110 --> 00:07:51,570 En outre, aller à lectures-- qui est évidemment 193 00:07:51,570 --> 00:07:53,790 où vous obtenez le début de votre matériel ici. 194 00:07:53,790 --> 00:07:57,430 Donc, je vais certainement essayer de vous aider autant que je peux, 195 00:07:57,430 --> 00:07:58,840 mais je ne peux que vous répondre à ce jour. 196 00:07:58,840 --> 00:08:01,220 Vous devez sorte de nous rencontrer à mi-chemin. 197 00:08:01,220 --> 00:08:04,050 >> Grading-- donc, vous tous qui a reçu un courriel de moi, 198 00:08:04,050 --> 00:08:05,445 vous êtes ma section officielle. 199 00:08:05,445 --> 00:08:06,470 200 00:08:06,470 --> 00:08:08,120 Je serai de classement de vos psets. 201 00:08:08,120 --> 00:08:12,870 Et je veux juste dire, une chose que vous devriez vraiment faire attention à 202 00:08:12,870 --> 00:08:13,820 sont les commentaires. 203 00:08:13,820 --> 00:08:17,390 Les commentaires sont souvent plus utiles que le score réel, nous vous donnons. 204 00:08:17,390 --> 00:08:19,890 Et les commentaires sont en fait où je passe beaucoup de mon temps 205 00:08:19,890 --> 00:08:20,770 quand je suis classement. 206 00:08:20,770 --> 00:08:22,700 Donc, je vous serais reconnaissant si vous les lire. 207 00:08:22,700 --> 00:08:26,990 Et ils sont en fait la façon dont vous allez pour en savoir plus sur le design et le style 208 00:08:26,990 --> 00:08:29,860 et les choses qui sont un peu moins clair et net. 209 00:08:29,860 --> 00:08:31,770 >> Donc vraiment attention à ces commentaires. 210 00:08:31,770 --> 00:08:34,720 Si vous avez des questions à leur sujet, ou des questions sur votre score, 211 00:08:34,720 --> 00:08:37,620 se il vous plaît venir me parler soit avant l'article, 212 00:08:37,620 --> 00:08:41,039 Je vais probablement traînais dans le hall, ou par la suite. 213 00:08:41,039 --> 00:08:43,559 Si vous souhaitez planifier un-à-un les réunions sur la façon 214 00:08:43,559 --> 00:08:46,100 vous pouvez aider à améliorer plus tard ensembles de problème, laissez-le moi savoir. 215 00:08:46,100 --> 00:08:47,520 216 00:08:47,520 --> 00:08:49,750 >> Et puis juste un couple de conseils pour vous les gars. 217 00:08:49,750 --> 00:08:53,110 Donc, une des choses les plus importantes Je souligne toujours à ma section 218 00:08:53,110 --> 00:08:57,700 lorsque vous apprendre à coder est à écrire des choses sur papier. 219 00:08:57,700 --> 00:09:01,080 Si vous avez un plan de match pour où votre code doit aller 220 00:09:01,080 --> 00:09:03,230 et ce qu'il faut faire et il est décomposé 221 00:09:03,230 --> 00:09:06,000 en petits morceaux de pseudo code que vous avez écrit sur, 222 00:09:06,000 --> 00:09:09,780 vous allez être moins susceptibles de faire des erreurs de syntaxe 223 00:09:09,780 --> 00:09:12,355 ou créer une boucle qui se ne pas avoir un autre. 224 00:09:12,355 --> 00:09:14,064 225 00:09:14,064 --> 00:09:15,980 Si vous savez où vous êtes aller ensemble, vous êtes 226 00:09:15,980 --> 00:09:19,764 moins susceptibles de faire ces minuscules erreurs qui parfois vous prendre 227 00:09:19,764 --> 00:09:22,555 heures à fixer, parce que vous êtes comme, où suis-je raté cette tranche? 228 00:09:22,555 --> 00:09:23,580 229 00:09:23,580 --> 00:09:27,420 >> Sur cette note, se il vous plaît utiliser Style50. 230 00:09:27,420 --> 00:09:28,820 231 00:09:28,820 --> 00:09:31,590 Surtout quand vous êtes aller à des heures de bureau, 232 00:09:31,590 --> 00:09:34,850 si votre code est tout basculé d'un côté, 233 00:09:34,850 --> 00:09:37,740 il est la politique de cours que nous pouvons dire, fixer 234 00:09:37,740 --> 00:09:41,990 de sorte qu'il ressemble à Style50 dit il se doit, et puis nous allons vous aider. 235 00:09:41,990 --> 00:09:43,830 Donc, il va vous rendre la vie plus facile. 236 00:09:43,830 --> 00:09:45,030 Il va nous faciliter la vie. 237 00:09:45,030 --> 00:09:46,000 Tout le monde est heureux. 238 00:09:46,000 --> 00:09:47,290 Tout le monde obtient de meilleures notes. 239 00:09:47,290 --> 00:09:48,760 Est-ce pas ce que nous voulons tous? 240 00:09:48,760 --> 00:09:50,420 241 00:09:50,420 --> 00:09:53,860 >> Donc, écrire des choses sur le papier avant vous touchez jamais votre ordinateur. 242 00:09:53,860 --> 00:09:57,540 Parlez des choses à un niveau élevé, et assurez-vous que vous savez où vous allez. 243 00:09:57,540 --> 00:09:59,940 Et si vous n'êtes pas sûr, s'asseoir avec quelqu'un 244 00:09:59,940 --> 00:10:03,340 et les guider étape par étape ce que votre code est censé faire. 245 00:10:03,340 --> 00:10:07,940 Et neuf fois sur dix, vous serez comme, oh, je oublié une condition si 246 00:10:07,940 --> 00:10:12,420 ou je oublié une virgule ici ou Je mets à jour ce mal variable. 247 00:10:12,420 --> 00:10:15,740 Voilà donc mes conseils pour réussir. 248 00:10:15,740 --> 00:10:19,820 >> Donc, puisque près de la moitié d'entre vous regarde comme vous avez assisté à la section superbe, 249 00:10:19,820 --> 00:10:24,080 Je vais juste très passer brièvement en revue les boucles, 250 00:10:24,080 --> 00:10:26,650 qui ne figuraient pas sur notre ordre du jour initial. 251 00:10:26,650 --> 00:10:28,190 Mais ils sont vraiment importantes. 252 00:10:28,190 --> 00:10:30,250 Et donc je vais genre de vitesse par ceux 253 00:10:30,250 --> 00:10:32,860 avant d'entrer dans notre section réelle. 254 00:10:32,860 --> 00:10:36,269 Avant de le faire, est-il tout questions-- logistique, 255 00:10:36,269 --> 00:10:38,060 personnellement, il est tout ce que vous voulez 256 00:10:38,060 --> 00:10:40,990 à savoir sur moi ou sur section ou classe en général? 257 00:10:40,990 --> 00:10:43,195 258 00:10:43,195 --> 00:10:43,880 Toutes les bonnes? 259 00:10:43,880 --> 00:10:45,300 OK, cool. 260 00:10:45,300 --> 00:10:46,781 261 00:10:46,781 --> 00:10:47,280 Belle. 262 00:10:47,280 --> 00:10:50,071 >> Donc loops-- Vous devriez tous reconnaître ces pièces à partir de zéro. 263 00:10:50,071 --> 00:10:51,310 264 00:10:51,310 --> 00:10:55,220 Donc boucles sont fondamentalement juste une façon pour nous de faire quelque chose 265 00:10:55,220 --> 00:10:58,900 un certain nombre de fois, une partie répétée action fondée sur une certaine condition. 266 00:10:58,900 --> 00:11:00,140 267 00:11:00,140 --> 00:11:02,090 Nous avons donc trois types différents. 268 00:11:02,090 --> 00:11:04,860 Nous avons pour la boucle, tandis que, et faisons-en. 269 00:11:04,860 --> 00:11:06,430 270 00:11:06,430 --> 00:11:11,320 >> Donc, pour loops-- nous avons juste une très disposition générale ici d'une boucle for. 271 00:11:11,320 --> 00:11:16,110 Et ce qui est excellent pour quand vous savez comment plusieurs fois quelque chose doit exécuter. 272 00:11:16,110 --> 00:11:17,040 273 00:11:17,040 --> 00:11:18,790 Lorsque nous parlons de la d'autres boucles, vous 274 00:11:18,790 --> 00:11:20,650 voir pourquoi il en est une distinction importante. 275 00:11:20,650 --> 00:11:22,530 Mais pour les boucles sont pour quelque chose ensemble. 276 00:11:22,530 --> 00:11:24,590 Vous savez que vous pouvez calculer le nombre 277 00:11:24,590 --> 00:11:29,230 ou si vous connaissez le nombre de fois que vous veulent ce répété au début. 278 00:11:29,230 --> 00:11:32,220 >> Donc si vous voyez ici, nous avoir juste une sorte générale 279 00:11:32,220 --> 00:11:34,480 de cadre squelette pour une boucle ici. 280 00:11:34,480 --> 00:11:38,080 Donc, pour initialisation, ce est là vos variables sont initialisées. 281 00:11:38,080 --> 00:11:41,915 Avec Mario, je suis sûr que vous avez fait quelque chose comme int i est égal à 0. 282 00:11:41,915 --> 00:11:42,920 283 00:11:42,920 --> 00:11:44,710 Voilà où cela pourrait se produire en bleu. 284 00:11:44,710 --> 00:11:48,290 Vous avez votre état, qui est ce qui se vérifie à chaque fois. 285 00:11:48,290 --> 00:11:52,410 Si cette condition est vraie, alors le reste du code est exécuté. 286 00:11:52,410 --> 00:11:54,749 Ensuite, il va courir again-- et demander. 287 00:11:54,749 --> 00:11:57,290 Et puis nous avons mise à jour, où vous mettez à jour votre variable. 288 00:11:57,290 --> 00:12:01,410 Donc, encore une fois, avec comme Mario, je suis sûr vous avez fait quelque chose comme i plus plus. 289 00:12:01,410 --> 00:12:04,640 Ainsi, chaque fois que la boucle Ran, je me suis mis à jour afin 290 00:12:04,640 --> 00:12:09,370 que quand nous sommes arrivés il contre certaines conditions, il a été en train de changer. 291 00:12:09,370 --> 00:12:12,570 >> Parce que si vous venez avoir une variable statique, 292 00:12:12,570 --> 00:12:15,567 si elle exécute la première fois, il est aller juste pour exécuter infiniment. 293 00:12:15,567 --> 00:12:18,025 Donc, vous devez vous assurer que vous mettre à jour votre variable correctement. 294 00:12:18,025 --> 00:12:19,350 295 00:12:19,350 --> 00:12:23,890 Et nous avons aussi tout un représentation visuelle il. 296 00:12:23,890 --> 00:12:24,930 Tout le monde bien? 297 00:12:24,930 --> 00:12:25,630 Pour les boucles. 298 00:12:25,630 --> 00:12:27,540 Aurait vu ces derniers dans votre pset. 299 00:12:27,540 --> 00:12:28,840 Laisser refroidir. 300 00:12:28,840 --> 00:12:31,870 >> Alors, voici juste un exemple simple. 301 00:12:31,870 --> 00:12:32,860 Imprimer cette CS50 est! 302 00:12:32,860 --> 00:12:33,360 10 fois. 303 00:12:33,360 --> 00:12:34,850 304 00:12:34,850 --> 00:12:37,906 Et si nous avons notre initialisation, comme on le voit là, avec int i 305 00:12:37,906 --> 00:12:41,280 est égal à 0, pour i est inférieur de 10, et i plus plus. 306 00:12:41,280 --> 00:12:43,090 307 00:12:43,090 --> 00:12:44,540 Et il va imprimer que 10 fois. 308 00:12:44,540 --> 00:12:46,230 309 00:12:46,230 --> 00:12:56,781 >> Ainsi, alors que loops-- boucles while sont super quand vous ne le faites pas nécessairement 310 00:12:56,781 --> 00:12:59,530 faut savoir combien de fois il est va mettre à jour au début. 311 00:12:59,530 --> 00:13:00,640 312 00:13:00,640 --> 00:13:02,580 Vous avez quelques-unes condition pour que vérifiée. 313 00:13:02,580 --> 00:13:09,550 Et ce pourrait être quelque chose comme while-- Prenons un exemple tiré de votre pset. 314 00:13:09,550 --> 00:13:12,540 Si Mario, vous essayez de entrer un nombre négatif. 315 00:13:12,540 --> 00:13:13,270 Droit? 316 00:13:13,270 --> 00:13:15,460 Vous deviez ré-inviter votre utilisateur. 317 00:13:15,460 --> 00:13:20,890 Ainsi, vous pouvez dire, bien, si les entrées de l'utilisateur quelque chose de moins que zéro, re-rapide 318 00:13:20,890 --> 00:13:21,390 les. 319 00:13:21,390 --> 00:13:23,890 Et je suis sûr que cela pourrait avoir été quelque chose que certains d'entre vous 320 00:13:23,890 --> 00:13:24,660 utilisée dans votre code. 321 00:13:24,660 --> 00:13:26,270 >> Donc, il est une chose simple. 322 00:13:26,270 --> 00:13:28,490 Vous avez tout, certains condition qui est vérifié 323 00:13:28,490 --> 00:13:30,460 chaque fois que le code va exécuter. 324 00:13:30,460 --> 00:13:32,660 Si elle est évaluée à vrai, nous courons. 325 00:13:32,660 --> 00:13:33,820 Sinon, nous ne le faisons pas. 326 00:13:33,820 --> 00:13:35,650 Et ce qui est vraiment quelque chose que je important-- 327 00:13:35,650 --> 00:13:38,155 pense que David a parlé dans lecture-- sont les accolades. 328 00:13:38,155 --> 00:13:40,760 329 00:13:40,760 --> 00:13:42,930 Tout ce qui est dans le accolades est ce qui est exécuté. 330 00:13:42,930 --> 00:13:45,850 Si vous avez oublié ceux accolades, il va seulement 331 00:13:45,850 --> 00:13:48,800 à la ligne directement après le tout a été exécuté. 332 00:13:48,800 --> 00:13:51,040 >> Donc, si vous avez trois choses qui sont censées 333 00:13:51,040 --> 00:13:54,020 de se produire lorsque cette condition renvoie true, 334 00:13:54,020 --> 00:13:58,040 et vous ne disposez pas de ces accolades, seulement la première chose qui va se passer. 335 00:13:58,040 --> 00:14:01,510 Donc, être très conscients de où vous mettez vos accolades. 336 00:14:01,510 --> 00:14:04,880 Si vous vous en tenez à Style50, ce sera certainement vous aider. 337 00:14:04,880 --> 00:14:06,220 338 00:14:06,220 --> 00:14:06,760 Laisser refroidir. 339 00:14:06,760 --> 00:14:10,835 >> Donc, ceci est un compte à rebours de 10 à zéro. 340 00:14:10,835 --> 00:14:12,380 341 00:14:12,380 --> 00:14:16,210 Et comme vous le voyez ici, on initialise certains compteur à l'extérieur de celui-ci. 342 00:14:16,210 --> 00:14:19,250 Une chose qui est différent est nous ne sommes pas initialiser notre variable 343 00:14:19,250 --> 00:14:20,300 dans notre boucle while. 344 00:14:20,300 --> 00:14:22,150 Il est initialisé à l'extérieur de celui-ci. 345 00:14:22,150 --> 00:14:25,480 Nous sommes tout simplement en train de mettre la condition pour notre temps. 346 00:14:25,480 --> 00:14:28,630 Donc dans ce cas, il est tout comptage est supérieur à zéro. 347 00:14:28,630 --> 00:14:35,134 Et nous imprimons ce que notre compte est, et puis nous décrémentons notre variable. 348 00:14:35,134 --> 00:14:36,800 Et qui est aussi une autre chose à remarquer. 349 00:14:36,800 --> 00:14:40,440 Notre mise à jour ne se fait pas dans que la première partie de la boucle while. 350 00:14:40,440 --> 00:14:44,255 Il sera effectivement arriver dans les accolades, le corps de votre texte. 351 00:14:44,255 --> 00:14:46,820 352 00:14:46,820 --> 00:14:51,860 >> Alors ne-tout loops-- boucles do-while sont parfaits pour validation de l'utilisateur. 353 00:14:51,860 --> 00:14:54,820 Ainsi, certains d'entre vous pourraient avoir également utilisé dans votre pset. 354 00:14:54,820 --> 00:14:59,960 Vous pouvez dire, faire, comme, demander à l'utilisateur pour l'entrée. 355 00:14:59,960 --> 00:15:04,690 Et puis tout, comme le entrée est inférieure à un certain nombre. 356 00:15:04,690 --> 00:15:10,700 >> Donc, pour un cas explicite avec Mario, il serait faire printf, entrez un nombre entier, 357 00:15:10,700 --> 00:15:13,820 et puis un certain nombre entier égal getint. 358 00:15:13,820 --> 00:15:17,060 Et puis ça va réellement exécuter ce code en premier. 359 00:15:17,060 --> 00:15:19,120 Vous avez en fait une sorte de nombre entier. 360 00:15:19,120 --> 00:15:23,380 Et puis, vous pourriez dire, tandis que entier qui est inférieur à zéro. 361 00:15:23,380 --> 00:15:26,120 Alors qu'est-ce qu'il va faire est qu'il est va exécuter au moins une fois. 362 00:15:26,120 --> 00:15:27,536 Il va vérifier l'état. 363 00:15:27,536 --> 00:15:29,690 Si la condition est vrai, il va courir à nouveau. 364 00:15:29,690 --> 00:15:32,900 >> Donc boucles do-while sont grand pour la validation de l'utilisateur, 365 00:15:32,900 --> 00:15:36,770 parce que vous connaissez le code va exécuter au moins 366 00:15:36,770 --> 00:15:39,720 une fois, alors qu'avec tout en boucles, vous n'êtes pas 367 00:15:39,720 --> 00:15:41,630 il est garanti que va exécuter une fois. 368 00:15:41,630 --> 00:15:45,330 Il va vérifier l'état d'abord et ensuite décider de l'exécuter, 369 00:15:45,330 --> 00:15:48,350 tout un do-while volonté exécuter le code premier 370 00:15:48,350 --> 00:15:51,110 et puis de vérifier si vous avez besoin de le répéter. 371 00:15:51,110 --> 00:15:52,985 Est-ce que cette distinction donner un sens à tout le monde? 372 00:15:52,985 --> 00:15:53,680 373 00:15:53,680 --> 00:15:54,180 Dáccord. 374 00:15:54,180 --> 00:15:55,651 375 00:15:55,651 --> 00:15:56,150 Laisser refroidir. 376 00:15:56,150 --> 00:15:57,380 377 00:15:57,380 --> 00:15:59,800 >> Donc dans ce cas, ce genre est de ce que je parlais, 378 00:15:59,800 --> 00:16:02,210 Cette nouvelle invites jusqu'à ce que vous obtenir un nombre positif. 379 00:16:02,210 --> 00:16:05,060 Nous savons donc que printf "Entrez un nombre positif" 380 00:16:05,060 --> 00:16:08,720 et en fait pour qu'il sorte que entrée se fera au moins une fois. 381 00:16:08,720 --> 00:16:12,650 Si l'utilisateur est mal et maintient entrer une valeur négative, qui 382 00:16:12,650 --> 00:16:14,210 sait combien de fois il va exécuter. 383 00:16:14,210 --> 00:16:17,500 Mais ce code est garanti d'exécuter au moins une fois. 384 00:16:17,500 --> 00:16:20,040 Et qui est pourquoi il est grand pour valider une entrée. 385 00:16:20,040 --> 00:16:22,300 Et vous allez utiliser que un peu. 386 00:16:22,300 --> 00:16:23,870 387 00:16:23,870 --> 00:16:25,830 >> Tout droit, des questions à ce jour? 388 00:16:25,830 --> 00:16:27,080 389 00:16:27,080 --> 00:16:28,030 Nous sommes tous bien? 390 00:16:28,030 --> 00:16:29,513 Je parle trop vite? 391 00:16:29,513 --> 00:16:30,520 392 00:16:30,520 --> 00:16:31,130 Nous sommes bons? 393 00:16:31,130 --> 00:16:31,630 Dáccord. 394 00:16:31,630 --> 00:16:32,960 395 00:16:32,960 --> 00:16:33,800 Impressionnant 396 00:16:33,800 --> 00:16:35,841 >> Donc, nous allons aller de l'avant et parler de tableaux. 397 00:16:35,841 --> 00:16:36,660 398 00:16:36,660 --> 00:16:37,600 Laisser refroidir. 399 00:16:37,600 --> 00:16:40,700 Donc, les tableaux sont essentiellement seulement des structures de données 400 00:16:40,700 --> 00:16:43,260 qui nous permettent de stocker choses du même type. 401 00:16:43,260 --> 00:16:47,920 Donc si jamais vous avez un tableau, il est soit juste avoir ints 402 00:16:47,920 --> 00:16:51,590 ou il est juste d'avoir flotteurs ou il est juste d'avoir les caractères. 403 00:16:51,590 --> 00:16:55,440 Tu ne vas pas avoir un int avec char avec un flotteur avec un double. 404 00:16:55,440 --> 00:16:56,850 Une chose. 405 00:16:56,850 --> 00:17:00,810 Les tableaux sont une seule taille, ou ils sont juste un type. 406 00:17:00,810 --> 00:17:05,679 >> Nous avons donc ici un tableau de taille trois par trois nombres entiers à l'intérieur. 407 00:17:05,679 --> 00:17:07,970 Ils pourraient flotteurs, mais nous sommes va dire qu'ils sont entiers. 408 00:17:07,970 --> 00:17:09,310 409 00:17:09,310 --> 00:17:16,970 Donc, une chose à réaliser est que les tableaux sont de taille prédéfinie lors de l'initialisation 410 00:17:16,970 --> 00:17:22,285 entre eux, et ils ne sont pas easily-- puisque vous êtes tous moins à l'aise, 411 00:17:22,285 --> 00:17:25,034 vous devriez juste de les considérer comme ne pas être capable de s'étendre dans la taille. 412 00:17:25,034 --> 00:17:26,119 413 00:17:26,119 --> 00:17:28,740 Cependant gros vous vous apprêtez votre tableau au début, 414 00:17:28,740 --> 00:17:31,070 qui est la taille ça va de rester, car les tableaux 415 00:17:31,070 --> 00:17:33,070 sont des blocs continus de mémoire. 416 00:17:33,070 --> 00:17:34,007 417 00:17:34,007 --> 00:17:35,840 Et quand vous les gars obtenir en un peu plus 418 00:17:35,840 --> 00:17:40,820 de la façon dont la mémoire est réellement mis sur disques et dans le tas et la pile, 419 00:17:40,820 --> 00:17:42,220 ça va faire un peu plus de sens. 420 00:17:42,220 --> 00:17:48,310 >> Mais vous pourriez penser comme, il est juste une rangée de places sur votre disque. 421 00:17:48,310 --> 00:17:52,540 Et vous ne pouvez pas garantir qu'il n'y a va être l'espace libre après. 422 00:17:52,540 --> 00:17:55,290 Vous pouvez initialiser un tableau de trois, puis peut-être vous 423 00:17:55,290 --> 00:17:59,190 initialiser un autre tableau de cinq plus tard, et il est juste après. 424 00:17:59,190 --> 00:18:04,000 Donc, si vous deviez aller comptant passé trois dans cette première matrice, 425 00:18:04,000 --> 00:18:06,370 vous seriez en train d'écrire sur quelque chose d'autre. 426 00:18:06,370 --> 00:18:10,390 Donc tableaux soient: pour vous les gars, juste de les considérer comme une taille fixe. 427 00:18:10,390 --> 00:18:12,700 428 00:18:12,700 --> 00:18:16,890 >> Donc, la création d'un array-- vous allez avoir besoin de faire ce un peu. 429 00:18:16,890 --> 00:18:18,240 430 00:18:18,240 --> 00:18:22,080 Ainsi, de la même manière que nous avons structure générale de notre pour les boucles, 431 00:18:22,080 --> 00:18:24,910 nous avons une belle général la structure de notre tableau. 432 00:18:24,910 --> 00:18:28,430 Parce qu'ils sont d'un type, tout le éléments d'un tableau sont d'un type, 433 00:18:28,430 --> 00:18:30,950 vous devez initialiser ce qui est le type. 434 00:18:30,950 --> 00:18:33,804 >> Donc, comme vous le voyez ici, nous avons une joli petit type de données de support. 435 00:18:33,804 --> 00:18:35,970 Donc, si nous créons un int tableau, qui sera int. 436 00:18:35,970 --> 00:18:38,830 Si nous créons un omble tableau, ce sera l'omble. 437 00:18:38,830 --> 00:18:41,890 Si nous créons une chaîne tableau, ce sera la chaîne. 438 00:18:41,890 --> 00:18:45,140 Et puis le nom de votre réseau, tout ce que vous voulez qu'il soit. 439 00:18:45,140 --> 00:18:51,750 Alors peut-être qu'il est les résultats des tests ou peut-être il est peut-être étudiants ou il est bonbons. 440 00:18:51,750 --> 00:18:54,440 Quoi que vous décidiez de nommer votre tableau, qui est ce que ça va être. 441 00:18:54,440 --> 00:18:57,260 >> Et puis entre parenthèses, vous aurez avoir la taille que vous voulez. 442 00:18:57,260 --> 00:19:01,350 Alors, sommes-nous stockons 10 élèves ou sommes nous stockons 15 types de bonbons? 443 00:19:01,350 --> 00:19:03,200 444 00:19:03,200 --> 00:19:03,920 Qu'est-ce pas. 445 00:19:03,920 --> 00:19:06,830 Ainsi, dans notre exemple, nous créons un tableau 446 00:19:06,830 --> 00:19:10,100 de taille trois, que vous les gars voir ici sur la droite. 447 00:19:10,100 --> 00:19:11,350 448 00:19:11,350 --> 00:19:15,990 Et quand on initialise premier elle, tout est mis à zéro. 449 00:19:15,990 --> 00:19:18,970 Il est donc juste pensé de comme une ardoise vierge. 450 00:19:18,970 --> 00:19:22,550 Nous avons tous ces espaces, nous avons tous ces boîtes que nous pourrions mettre nos données dans, 451 00:19:22,550 --> 00:19:25,530 mais ils sont tout simplement vide pour le moment. 452 00:19:25,530 --> 00:19:28,700 >> Donc, si nous voulons réellement affecter ces valeurs, 453 00:19:28,700 --> 00:19:33,050 nous le faisons en tant que droit en vertu ici montre. 454 00:19:33,050 --> 00:19:39,170 Donc, vous avez tout ce que le nom de votre tableau est et ce que vous voulez indice. 455 00:19:39,170 --> 00:19:43,070 Donc, l'indice se réfère seulement à, comme, ce créneau que nous cherchons à. 456 00:19:43,070 --> 00:19:47,830 Et une chose importante à noter est que les réseaux sont indexés zéro. 457 00:19:47,830 --> 00:19:53,160 Donc, si nous voulons que le premier espace dans la mémoire de notre tableau, ça va être zéro. 458 00:19:53,160 --> 00:19:54,740 Si nous voulons que le deuxième, ce sera un. 459 00:19:54,740 --> 00:19:56,198 Si nous voulons que le troisième, ce sera deux. 460 00:19:56,198 --> 00:19:57,820 Ainsi de suite et ainsi de suite. 461 00:19:57,820 --> 00:20:02,130 >> Qui est aussi la raison pour laquelle, de façon classique, quand nous faisons pour loops-- je suis sûr 462 00:20:02,130 --> 00:20:05,030 vous les gars se demandaient pourquoi allons-nous commencer à 0 contre 1? 463 00:20:05,030 --> 00:20:09,909 Tout cela parce que lorsque nous passons en utilisant des tableaux, il fait correspondre correctement. 464 00:20:09,909 --> 00:20:11,700 Donc, si vous voulez itérer dans un tableau, il 465 00:20:11,700 --> 00:20:14,830 fait beaucoup plus de sens à fais i vaut 0, parce que nous 466 00:20:14,830 --> 00:20:17,940 savent que correspondra à la première place dans la mémoire. 467 00:20:17,940 --> 00:20:18,990 468 00:20:18,990 --> 00:20:19,990 Tout le monde bien avec qui? 469 00:20:19,990 --> 00:20:21,060 470 00:20:21,060 --> 00:20:21,560 Laisser refroidir. 471 00:20:21,560 --> 00:20:26,240 >> Et puis sur le fond ici est juste une autre façon d'initialiser un tableau. 472 00:20:26,240 --> 00:20:29,590 Vous avez toujours votre le type de données et le nom, 473 00:20:29,590 --> 00:20:31,960 mais au lieu de réellement mettre une taille là, 474 00:20:31,960 --> 00:20:33,830 vous pouvez juste faire des parenthèses vides. 475 00:20:33,830 --> 00:20:36,350 Et puis avec ces bouclés bretelles en bas, 476 00:20:36,350 --> 00:20:40,270 il vous suffit de saisir les données que vous voulez séparées par des virgules. 477 00:20:40,270 --> 00:20:43,070 Et qui va automatiquement dis, OK, je vois 478 00:20:43,070 --> 00:20:47,300 que vous avez trois choses dans ces accolades. 479 00:20:47,300 --> 00:20:51,410 Donc, je sais que je dois attribuer trois blocs de mémoire et de stocker celles-ci. 480 00:20:51,410 --> 00:20:55,300 481 00:20:55,300 --> 00:21:01,670 >> Ainsi, la première version que vous pouvez utiliser si vous demandez votre utilisateur d'entrer 482 00:21:01,670 --> 00:21:04,770 valeurs afin que vous puissiez parcourir le tableau 483 00:21:04,770 --> 00:21:07,660 et ask-- obtenir des int pour les saisir. 484 00:21:07,660 --> 00:21:10,500 Si vous connaissez les valeurs d'avance, il fait beaucoup plus de sens 485 00:21:10,500 --> 00:21:12,110 d'utiliser la deuxième façon. 486 00:21:12,110 --> 00:21:17,270 Mais dans la plupart des cas, vous pourriez ne pas savoir ce que ces valeurs vont être. 487 00:21:17,270 --> 00:21:19,060 488 00:21:19,060 --> 00:21:19,560 Laisser refroidir. 489 00:21:19,560 --> 00:21:20,393 D'autres questions? 490 00:21:20,393 --> 00:21:21,206 491 00:21:21,206 --> 00:21:21,705 Très bien. 492 00:21:21,705 --> 00:21:25,960 493 00:21:25,960 --> 00:21:30,370 >> Donc, si un accès elements-- de grandes choses au sujet des tableaux 494 00:21:30,370 --> 00:21:33,310 est qu'ils sont aléatoires accès, ce qui signifie que vous 495 00:21:33,310 --> 00:21:36,010 ne pas avoir à regarder à travers chaque bloc. 496 00:21:36,010 --> 00:21:38,150 Si vous savez que vous veulent ce qu'il ya dans le bloc deux, 497 00:21:38,150 --> 00:21:40,820 vous pouvez simplement dire, donnez-moi bloc de deux. 498 00:21:40,820 --> 00:21:44,160 Et voilà pourquoi ces indices sont si importants, 499 00:21:44,160 --> 00:21:46,220 et voilà comment on accède effectivement. 500 00:21:46,220 --> 00:21:50,660 Donc dans ce cas, comme nous l'avons vu lors de nous avons été l'attribution de valeurs, dans une 501 00:21:50,660 --> 00:21:55,360 avant, nous avions le nom et le indice nous voulions d'accès, de droit? 502 00:21:55,360 --> 00:21:59,370 Donc, de la même façon, voilà tout nous faire pour réellement tirer que les données sur. 503 00:21:59,370 --> 00:22:02,940 Nous avons le nom et nous avoir l'indice que nous voulons. 504 00:22:02,940 --> 00:22:06,710 >> Donc dans ce cas, la boucle ici-bas au fond, tout le monde 505 00:22:06,710 --> 00:22:09,060 sait ce qu'il fait, ce que ce serait imprimer? 506 00:22:09,060 --> 00:22:13,771 507 00:22:13,771 --> 00:22:14,270 Mmhmm? 508 00:22:14,270 --> 00:22:17,790 509 00:22:17,790 --> 00:22:18,520 Exactement. 510 00:22:18,520 --> 00:22:20,130 Alors oui, il est tout simplement itérer. 511 00:22:20,130 --> 00:22:23,410 i est égal à zero-- nous pouvons marcher dans le code juste rapidement. 512 00:22:23,410 --> 00:22:26,680 i est égal à zéro, i est inférieur que trois à ce stade, non? 513 00:22:26,680 --> 00:22:27,780 Alors que les check out. 514 00:22:27,780 --> 00:22:33,370 Et nous disons, OK, impression f Quelle que soit la température i. 515 00:22:33,370 --> 00:22:37,990 i est nul ici lorsque nous avons itérer, si nous allons à cette première place, 516 00:22:37,990 --> 00:22:40,840 et nous disons, OK, 65 est le nombre que nous voulons imprimer. 517 00:22:40,840 --> 00:22:43,570 Donc, il va imprimer 65 et puis faire une nouvelle ligne. 518 00:22:43,570 --> 00:22:46,550 Je vais mettre à jour, de sorte qu'il imprime 87. 519 00:22:46,550 --> 00:22:48,780 Il met à jour à nouveau, et il va imprimer 30. 520 00:22:48,780 --> 00:22:49,810 521 00:22:49,810 --> 00:22:50,630 Tout le monde cool? 522 00:22:50,630 --> 00:22:51,630 523 00:22:51,630 --> 00:22:52,130 Impressionnant. 524 00:22:52,130 --> 00:22:54,340 525 00:22:54,340 --> 00:22:54,840 >> Bien. 526 00:22:54,840 --> 00:22:57,710 Alors, voici une sorte de chose que je disais comment 527 00:22:57,710 --> 00:23:00,020 vous pouvez garder une trace de Le score de quelqu'un et pourquoi 528 00:23:00,020 --> 00:23:03,300 vous devez utiliser la première titre d'initialiser 529 00:23:03,300 --> 00:23:04,890 au lieu de cette seconde manière. 530 00:23:04,890 --> 00:23:06,620 Et cela va juste à travers. 531 00:23:06,620 --> 00:23:08,945 Et remarquez que nous avons une classe de taille de 30. 532 00:23:08,945 --> 00:23:10,690 533 00:23:10,690 --> 00:23:15,770 Et nous initialisation de ce tableau d'entiers qui est de la taille 30. 534 00:23:15,770 --> 00:23:18,070 Et puis nous sommes itération à travers et nous sommes 535 00:23:18,070 --> 00:23:20,910 demander à l'utilisateur d'entrer scores pour chacune d'entre elles 536 00:23:20,910 --> 00:23:23,700 et puis l'assigner à un endroit spécifique de la mémoire 537 00:23:23,700 --> 00:23:24,860 quelque part dans ce tableau. 538 00:23:24,860 --> 00:23:26,700 539 00:23:26,700 --> 00:23:27,890 Cool? 540 00:23:27,890 --> 00:23:29,650 Cela fait-il sens à tout le monde? 541 00:23:29,650 --> 00:23:30,150 Mmhmm? 542 00:23:30,150 --> 00:23:32,910 543 00:23:32,910 --> 00:23:40,360 >> Donc hashtag définir la taille des classes 30 est une directive de préprocesseur, 544 00:23:40,360 --> 00:23:43,780 ce qui signifie simplement qu'il gets-- il a de faire comme le processus de compilation. 545 00:23:43,780 --> 00:23:47,595 Vous pouvez penser que ce en tant que variable globale. 546 00:23:47,595 --> 00:23:49,260 547 00:23:49,260 --> 00:23:53,030 La façon dont nous le faisons, il est typically-- il permet à votre script 548 00:23:53,030 --> 00:23:54,770 pour être plus facilement changé. 549 00:23:54,770 --> 00:23:59,480 Donc, disons que la taille de notre classe va tout à coup de 30 à 15, 550 00:23:59,480 --> 00:24:03,930 si je ne l'avais pas défini de cette façon, je le ferais avoir à passer par toute mon programme 551 00:24:03,930 --> 00:24:07,420 et changer tous les cas de 30 à 15 ans. 552 00:24:07,420 --> 00:24:11,590 Mais avec cela, je reçois de changer place, et les changements d'autre de tout. 553 00:24:11,590 --> 00:24:14,930 >> Si jamais vous voulez faire un hachage définir dans un cas 554 00:24:14,930 --> 00:24:19,020 où vous garder la trace de certaines définir le nombre de scores pour une classe 555 00:24:19,020 --> 00:24:23,250 ou vous utilisez un numéro qui sera utilisé, comme, 556 00:24:23,250 --> 00:24:27,740 tout au long d'une très longue programme, il est mieux définie que, au début 557 00:24:27,740 --> 00:24:34,440 de sorte que si jamais elle change, vous obtenez de changer de place au lieu de 100. 558 00:24:34,440 --> 00:24:34,940 Oui? 559 00:24:34,940 --> 00:24:39,830 >> L'ÉLÈVE: Entre le faire et juste déclarant [inaudible] sur le haut. 560 00:24:39,830 --> 00:24:42,470 >> ALLISON BUCHHOLTZ-UA: Donc il a à voir avec efficient-- 561 00:24:42,470 --> 00:24:45,460 il est un peu en dehors de la portée de ce que nous pouvons couvrir dans cette section. 562 00:24:45,460 --> 00:24:49,236 Il doit faire plus avec efficacité et comment les choses réellement 563 00:24:49,236 --> 00:24:50,485 travailler dans le processus de compilation. 564 00:24:50,485 --> 00:24:52,590 565 00:24:52,590 --> 00:24:55,006 Si vous voulez vraiment savoir à ce sujet, je suis heureux de vous envoyer 566 00:24:55,006 --> 00:24:56,450 un e-mail avec des ressources à ce sujet. 567 00:24:56,450 --> 00:24:57,810 568 00:24:57,810 --> 00:25:03,880 Hash définir tend à être pratique pour les choses. 569 00:25:03,880 --> 00:25:06,380 Et comme vous le code plus, vous genre de apprendre les nuances 570 00:25:06,380 --> 00:25:09,135 quand vous devez utiliser un mondiale contre le hachage définissent. 571 00:25:09,135 --> 00:25:11,010 Mais pour le moment, vous ne devez pas vraiment 572 00:25:11,010 --> 00:25:13,290 à se soucier, il est que la réponse courte. 573 00:25:13,290 --> 00:25:15,360 574 00:25:15,360 --> 00:25:16,360 Tout le monde bien avec qui? 575 00:25:16,360 --> 00:25:18,151 Et aussi, si vous voulez à utiliser une table de hachage définir, 576 00:25:18,151 --> 00:25:21,120 il est vraiment important de noter que le nom doit être en majuscules. 577 00:25:21,120 --> 00:25:22,210 578 00:25:22,210 --> 00:25:24,674 Nous ne sommes pas seulement faire CLASSES être dramatique. 579 00:25:24,674 --> 00:25:26,090 Il devrait en fait être en majuscules. 580 00:25:26,090 --> 00:25:27,880 581 00:25:27,880 --> 00:25:28,610 Laisser refroidir. 582 00:25:28,610 --> 00:25:30,130 Autre chose là-bas? 583 00:25:30,130 --> 00:25:31,190 Nous sommes bons? 584 00:25:31,190 --> 00:25:32,220 Belle. 585 00:25:32,220 --> 00:25:32,720 Bienvenue. 586 00:25:32,720 --> 00:25:34,240 587 00:25:34,240 --> 00:25:38,495 >> OK, alors je veux vous les gars pour jeter un oeil à cela et voir si vous pouvez trouver le bug. 588 00:25:38,495 --> 00:25:45,580 589 00:25:45,580 --> 00:25:46,507 Je vais vous donner un indice. 590 00:25:46,507 --> 00:25:47,840 Il est quelque part dans cette boucle for. 591 00:25:47,840 --> 00:25:53,070 592 00:25:53,070 --> 00:25:53,665 Mmhmm? 593 00:25:53,665 --> 00:25:55,704 >> L'ÉLÈVE: Doit être inférieur ou égal à 2. 594 00:25:55,704 --> 00:25:56,920 595 00:25:56,920 --> 00:26:01,094 >> ALLISON: Donc il pourrait être inférieur ou égal à 2, ou il peut être inférieur à trois. 596 00:26:01,094 --> 00:26:02,510 Et quel est le raisonnement pour cela? 597 00:26:02,510 --> 00:26:05,135 >> ÉTUDIANTS: La [inaudible], 0, 1, 2. 598 00:26:05,135 --> 00:26:06,080 >> ALLISON: Exactement. 599 00:26:06,080 --> 00:26:12,180 Ainsi, dans un tableau de taille n, nous seulement avoir des indices de n moins 1. 600 00:26:12,180 --> 00:26:13,700 601 00:26:13,700 --> 00:26:14,200 Laisser refroidir. 602 00:26:14,200 --> 00:26:15,091 603 00:26:15,091 --> 00:26:17,840 Et puis nous pouvons être vraiment fou et obtenir des tableaux multi-dimensionnels. 604 00:26:17,840 --> 00:26:19,340 605 00:26:19,340 --> 00:26:23,960 L'un des problèmes quand je l'ai pris dans mon tableaux ans requis multi-dimensionnelles, 606 00:26:23,960 --> 00:26:28,720 et je pense que l'un d'entre eux pourraient nécessiter cette année, alors soyez à l'aise. 607 00:26:28,720 --> 00:26:30,140 Enveloppez votre tête autour de lui maintenant. 608 00:26:30,140 --> 00:26:33,087 Il reviendra hanter vous, mais d'une manière cool. 609 00:26:33,087 --> 00:26:35,420 Ainsi, vous pouvez vraiment juste penser des tableaux multi-dimensionnels 610 00:26:35,420 --> 00:26:36,870 comme des tableaux de tableaux. 611 00:26:36,870 --> 00:26:38,060 612 00:26:38,060 --> 00:26:43,809 Ainsi, vous pouvez sorte de penser à ce sommet ligne que le premier bloc de mémoire. 613 00:26:43,809 --> 00:26:45,600 Et celui-ci est le deuxième bloc de mémoire, 614 00:26:45,600 --> 00:26:47,570 et la dernière ligne est la troisième bloc de mémoire. 615 00:26:47,570 --> 00:26:50,740 Et dans ce cadre, il ya un tableau. 616 00:26:50,740 --> 00:26:53,250 Mais bien sûr, il est plus facile pour décrire ce genre. 617 00:26:53,250 --> 00:26:55,610 >> Donc vous l'initialiser la même façon. 618 00:26:55,610 --> 00:26:57,290 619 00:26:57,290 --> 00:27:01,610 Ceci est un caractère tribunal de trois par trois. 620 00:27:01,610 --> 00:27:04,180 Donc, vous avez trois rangées et trois colonnes. 621 00:27:04,180 --> 00:27:06,760 Nous représentons cette façon. 622 00:27:06,760 --> 00:27:11,800 Et vous voulez accéder à la De même, colonne par ligne. 623 00:27:11,800 --> 00:27:14,840 Et 1,1 comme nous le voyons ici. 624 00:27:14,840 --> 00:27:18,730 Nous assignons un zéro, zéro là-haut. 625 00:27:18,730 --> 00:27:21,900 2,0 et 0,2. 626 00:27:21,900 --> 00:27:26,900 Donc, vous voulez bien accéder eux-- si personne ne l'a jamais fait l'algèbre linéaire, 627 00:27:26,900 --> 00:27:31,580 de la même façon que vous accédez à un élément une matrice, elle est la même idée ici. 628 00:27:31,580 --> 00:27:33,030 Ainsi, vous pouvez relier retour aux mathématiques. 629 00:27:33,030 --> 00:27:34,130 630 00:27:34,130 --> 00:27:36,380 Vous ne devez pas vous inquiéter trop beaucoup de ça maintenant. 631 00:27:36,380 --> 00:27:38,671 Il est bon d'avoir l'exposition, de savoir que vous pouvez le faire. 632 00:27:38,671 --> 00:27:42,700 Vous pouvez créer une fou number-- vous pouvez 633 00:27:42,700 --> 00:27:44,750 créer des tableaux est fou tout ce que je vais dire. 634 00:27:44,750 --> 00:27:45,250 [Inaudible] 635 00:27:45,250 --> 00:27:46,585 636 00:27:46,585 --> 00:27:48,460 Il est un peu fou, mais il est vraiment cool. 637 00:27:48,460 --> 00:27:50,020 638 00:27:50,020 --> 00:27:50,670 Impressionnant. 639 00:27:50,670 --> 00:27:52,550 >> Et puis, si nous avons un exemple ici. 640 00:27:52,550 --> 00:27:54,165 Il calcule une longueur de la chaîne. 641 00:27:54,165 --> 00:27:55,210 642 00:27:55,210 --> 00:27:59,670 Alors, comment beaucoup de gens savaient que les chaînes que vous utilisez 643 00:27:59,670 --> 00:28:01,265 ne sont que des tableaux de caractères? 644 00:28:01,265 --> 00:28:03,670 645 00:28:03,670 --> 00:28:04,655 OK, ouais. 646 00:28:04,655 --> 00:28:08,000 Alors vous les gars pensez peut-être que vous ne l'avez pas tableaux utilisés avant, mais tout moment 647 00:28:08,000 --> 00:28:10,740 vous utilisez getString dans le Bibliothèque CSView, vous êtes 648 00:28:10,740 --> 00:28:14,690 en fait juste demander un tableau de caractères. 649 00:28:14,690 --> 00:28:17,450 Et nous nous occupons de tout que dans le back-end pour vous. 650 00:28:17,450 --> 00:28:20,184 Mais vous avez été en utilisant tableaux puisque vous commencé. 651 00:28:20,184 --> 00:28:21,350 Vous ne savais pas encore. 652 00:28:21,350 --> 00:28:22,420 653 00:28:22,420 --> 00:28:28,390 >> Et chaque fois que vous avez un tableau de caractères ou un tableau qui est le stockage d'une chaîne, 654 00:28:28,390 --> 00:28:32,050 la dernière chose est toujours ce qui est appelé un terminateur null, ce qui 655 00:28:32,050 --> 00:28:33,830 est ce droit ici. 656 00:28:33,830 --> 00:28:37,300 Et qui est à la fin de chaque mot que vous stockez. 657 00:28:37,300 --> 00:28:41,170 Donc, si nous voulons comprendre la longueur d'une chaîne, on peut dire, 658 00:28:41,170 --> 00:28:45,320 Eh bien, vous savez, la le contenu de ce bloc 659 00:28:45,320 --> 00:28:46,867 est pas égale à notre terminaison nulle. 660 00:28:46,867 --> 00:28:49,450 Cela signifie qu'il ya une certaine caractère là que nous avons fait 661 00:28:49,450 --> 00:28:51,540 soucier que cela fait partie du mot. 662 00:28:51,540 --> 00:28:52,665 Vous augmentez votre longueur. 663 00:28:52,665 --> 00:28:55,540 Et puis, quand nous obtenons réellement à la fin du mot, il va mettre fin 664 00:28:55,540 --> 00:28:58,790 et il va revenir notre longueur pour nous. 665 00:28:58,790 --> 00:29:00,098 Mmhmm? 666 00:29:00,098 --> 00:29:02,906 >> L'ÉLÈVE: Est-ce que l'espace compter que le terminateur nul? 667 00:29:02,906 --> 00:29:04,780 ALLISON: Donc, un espace est pas un terminateur nul. 668 00:29:04,780 --> 00:29:10,590 Donc si vous avez un espace multiple-- est en fait une valeur spécifique ASCII. 669 00:29:10,590 --> 00:29:11,719 670 00:29:11,719 --> 00:29:13,552 L'ÉLÈVE: Quelle est la exclamation égal à nouveau? 671 00:29:13,552 --> 00:29:17,080 ALLISON: Donc, ceci est ce que vous appelez. 672 00:29:17,080 --> 00:29:21,220 Si jamais tu me entendez dans les heures de bureau, Je l'appelle toujours, comme, Bang égale. 673 00:29:21,220 --> 00:29:23,520 Donc Bang est pas. 674 00:29:23,520 --> 00:29:25,370 Donc, ce ne sont pas égaux. 675 00:29:25,370 --> 00:29:28,480 676 00:29:28,480 --> 00:29:32,290 Donc, si vous essayez de voir si quelque chose est faux, 677 00:29:32,290 --> 00:29:35,915 Vous savez toujours faites, quel que soit Bang la variable est, et si elle est fausse, 678 00:29:35,915 --> 00:29:38,540 il évalue à vrai et vous peut faire des trucs cool avec ça. 679 00:29:38,540 --> 00:29:39,830 680 00:29:39,830 --> 00:29:40,675 Plus sur cela plus tard. 681 00:29:40,675 --> 00:29:42,090 682 00:29:42,090 --> 00:29:42,590 Laisser refroidir. 683 00:29:42,590 --> 00:29:44,260 Tout va bien là-bas? 684 00:29:44,260 --> 00:29:44,760 Impressionnant. 685 00:29:44,760 --> 00:29:48,045 >> Alors maintenant, il est temps de vos gars à travailler, puisque je vous ai parlé. 686 00:29:48,045 --> 00:29:49,220 687 00:29:49,220 --> 00:29:53,200 Donc, je veux que vous créez simplement un tableau avec les nombres entiers un, deux, trois, 688 00:29:53,200 --> 00:29:54,660 et puis les faire imprimer. 689 00:29:54,660 --> 00:29:58,050 Vous ne devez pas faire, comme, principal, blah, blah, blah, peu importe. 690 00:29:58,050 --> 00:30:00,840 Je veux juste vous d'initialiser le tableau, puis créer 691 00:30:00,840 --> 00:30:04,790 une boucle de les imprimer out-- ou une boucle while, à vous. 692 00:30:04,790 --> 00:30:07,600 >> Je vais vous donner quelques minutes pour travailler. 693 00:30:07,600 --> 00:30:09,320 Je vais me reposer ma voix. 694 00:30:09,320 --> 00:30:13,290 Si vous avez des questions, je suis heureux à venir et de parler à vous les gars. 695 00:30:13,290 --> 00:30:15,290 Sentez-vous libre de parler les uns avec les autres. 696 00:30:15,290 --> 00:30:16,125 Obtenez plus de bonbons. 697 00:30:16,125 --> 00:30:17,181 698 00:30:17,181 --> 00:30:18,930 En fait, je vais juste se promener avec des bonbons. 699 00:30:18,930 --> 00:30:19,600 Comment est-ce? 700 00:30:19,600 --> 00:30:22,974 701 00:30:22,974 --> 00:30:23,938 >> Voulez-vous tout? 702 00:30:23,938 --> 00:30:34,703 703 00:30:34,703 --> 00:30:36,675 Quelqu'un d'autre dans cette salle veux des bonbons? 704 00:30:36,675 --> 00:30:47,030 705 00:30:47,030 --> 00:30:49,206 Vous pouvez également prendre plus d'un, les gars. 706 00:30:49,206 --> 00:30:50,330 Prenez une poignée si vous voulez. 707 00:30:50,330 --> 00:30:52,690 708 00:30:52,690 --> 00:30:53,190 Mai ainsi. 709 00:30:53,190 --> 00:30:54,929 710 00:30:54,929 --> 00:30:55,720 Tout le monde bien? 711 00:30:55,720 --> 00:30:57,561 712 00:30:57,561 --> 00:30:58,060 Dáccord. 713 00:30:58,060 --> 00:31:02,750 714 00:31:02,750 --> 00:31:07,290 >> Aussi, je vais créer un formulaire Google anonyme, 715 00:31:07,290 --> 00:31:09,830 et vous les gars peuvent juste soumettre rétroaction après chaque section 716 00:31:09,830 --> 00:31:14,115 si il ya quelque chose que vous voulez améliorer ou quelque chose que vous voulez faire. 717 00:31:14,115 --> 00:31:17,135 Si je suis un peu trop énergique pour vous, je peux baisser le ton. 718 00:31:17,135 --> 00:31:18,510 719 00:31:18,510 --> 00:31:20,885 Je vais créer et envoyer ce que à vous tous par la suite. 720 00:31:20,885 --> 00:32:39,420 721 00:32:39,420 --> 00:32:40,020 >> Bien. 722 00:32:40,020 --> 00:32:41,050 Donc, nous allons commencer petit. 723 00:32:41,050 --> 00:32:42,740 Comment pourrions-nous initialiser notre tableau? 724 00:32:42,740 --> 00:32:49,690 725 00:32:49,690 --> 00:32:51,670 Quel est le type de notre réseau? 726 00:32:51,670 --> 00:32:52,410 Un int, non? 727 00:32:52,410 --> 00:32:54,740 OK, alors qu'est-ce que vous voulez d'appeler votre tableau? 728 00:32:54,740 --> 00:32:57,880 729 00:32:57,880 --> 00:32:59,230 Tableau INT, cool. 730 00:32:59,230 --> 00:33:04,200 Très bien, alors nous avons int int tableau égaux, et que devons-nous après cela? 731 00:33:04,200 --> 00:33:07,009 732 00:33:07,009 --> 00:33:08,259 L'ÉLÈVE: [Inaudible] entre crochets. 733 00:33:08,259 --> 00:33:09,140 ALLISON: accolades. 734 00:33:09,140 --> 00:33:10,330 735 00:33:10,330 --> 00:33:11,775 Et puis l'intérieur des accolades? 736 00:33:11,775 --> 00:33:14,360 737 00:33:14,360 --> 00:33:16,830 Une virgule deux virgule trois. 738 00:33:16,830 --> 00:33:17,330 Laisser refroidir. 739 00:33:17,330 --> 00:33:18,660 Voilà donc tout droit. 740 00:33:18,660 --> 00:33:21,480 Nous avons donc maintenant notre boucle. 741 00:33:21,480 --> 00:33:24,180 Ainsi, dans la première partie de notre boucle, qu'avons-nous? 742 00:33:24,180 --> 00:33:25,796 743 00:33:25,796 --> 00:33:27,420 >> Etudiant: Je est égal à 0? 744 00:33:27,420 --> 00:33:31,400 >> Allison: Alors int i est égal à 0, et puis ce qui est notre condition? 745 00:33:31,400 --> 00:33:33,750 746 00:33:33,750 --> 00:33:36,120 Ce qui est i va être moins que? 747 00:33:36,120 --> 00:33:39,510 Moins de trois, et comment nous mettons à jour i-nous? 748 00:33:39,510 --> 00:33:41,630 i plus plus, la mise à jour par un. 749 00:33:41,630 --> 00:33:46,150 Et puis nous allons avoir certains printf de l'entier, 750 00:33:46,150 --> 00:33:49,530 et ce qui est de cette dernière partie qui est en fait 751 00:33:49,530 --> 00:33:51,370 vais dire ce que nous devrions l'impression? 752 00:33:51,370 --> 00:33:55,610 753 00:33:55,610 --> 00:33:59,120 Ce serait le nom de la tableau, ce qui est int tableau, non? 754 00:33:59,120 --> 00:34:01,090 Et ce qui est dans les supports de int tableau? 755 00:34:01,090 --> 00:34:02,540 756 00:34:02,540 --> 00:34:03,640 i. 757 00:34:03,640 --> 00:34:06,550 [? Donc je?] Appelé mon exemple, mais là vous allez. 758 00:34:06,550 --> 00:34:07,939 759 00:34:07,939 --> 00:34:08,480 Pas si mal que ça. 760 00:34:08,480 --> 00:34:09,250 Tout le monde bien? 761 00:34:09,250 --> 00:34:10,220 762 00:34:10,220 --> 00:34:10,719 Laisser refroidir. 763 00:34:10,719 --> 00:34:12,949 764 00:34:12,949 --> 00:34:14,340 >> Nous avons donc fini avec les tableaux. 765 00:34:14,340 --> 00:34:15,190 Félicitations. 766 00:34:15,190 --> 00:34:18,274 Vous avez réussi à parcourir par tous the-- oui? 767 00:34:18,274 --> 00:34:19,705 >> L'ÉLÈVE: [Inaudible] 768 00:34:19,705 --> 00:34:20,659 >> Allison: Oui. 769 00:34:20,659 --> 00:34:26,383 770 00:34:26,383 --> 00:34:27,798 >> Etudiant: Je voudrais poser une question. 771 00:34:27,798 --> 00:34:30,288 Êtes-vous censé mettre en retrait les accolades? 772 00:34:30,288 --> 00:34:34,150 >> ALLISON: Donc, les accolades doivent être alignés avec la boucle, et puis tout 773 00:34:34,150 --> 00:34:35,699 les accolades doivent être en retrait. 774 00:34:35,699 --> 00:34:37,824 >> L'ÉLÈVE: OK, si le pour être en retrait boucle? 775 00:34:37,824 --> 00:34:41,159 >> ALLISON: La boucle ne le fait pas doivent être en retrait à ce stade. 776 00:34:41,159 --> 00:34:46,750 Si vous étiez en principal, si nous effectivement eu une fonction principale ici, 777 00:34:46,750 --> 00:34:48,929 il serait en retrait de la principale. 778 00:34:48,929 --> 00:34:52,590 Mais dans ce cas, il est très bien. 779 00:34:52,590 --> 00:34:53,354 Oui, question. 780 00:34:53,354 --> 00:34:55,687 >> L'ÉLÈVE: Avez-vous besoin d'avoir les parenthèses après exemple? 781 00:34:55,687 --> 00:34:59,050 782 00:34:59,050 --> 00:35:01,260 >> Allison: Oui, si vous êtes l'initialisation de cette façon. 783 00:35:01,260 --> 00:35:03,430 784 00:35:03,430 --> 00:35:06,860 Alors rappelez-vous, ceci est la deuxième de façon à initialiser un tableau où 785 00:35:06,860 --> 00:35:10,680 nous avons les accolades et puis notre réelle données séparées par des virgules intérieur. 786 00:35:10,680 --> 00:35:14,700 787 00:35:14,700 --> 00:35:17,281 >> Etudiant: Je pensais qu'il y avait supports pour cet exemple. 788 00:35:17,281 --> 00:35:19,010 >> ALLISON: Non, ils sont des accolades. 789 00:35:19,010 --> 00:35:20,039 Ils sont des accolades. 790 00:35:20,039 --> 00:35:22,330 Si vous l'initialiser cette seconde manière, il est accolades. 791 00:35:22,330 --> 00:35:28,780 Si nous étions à dire, si int example-- nous voulions juste un tableau blanc pour ints, 792 00:35:28,780 --> 00:35:32,270 il serait par exemple int Crochets de trois. 793 00:35:32,270 --> 00:35:34,670 Les parenthèses représentent la taille. 794 00:35:34,670 --> 00:35:36,720 Lorsque vous avez des accolades, il est les données réelles 795 00:35:36,720 --> 00:35:39,244 vous mettez en elle de cette façon. 796 00:35:39,244 --> 00:35:40,535 Nous ne pouvons revenir en arrière très rapidement. 797 00:35:40,535 --> 00:35:42,370 798 00:35:42,370 --> 00:35:48,010 >> Ainsi, dans celui-ci, ceci est juste notre matrice initiale, l'initialisation. 799 00:35:48,010 --> 00:35:51,640 Et ici, nous sommes individuellement attribuer des points à eux, 800 00:35:51,640 --> 00:35:56,730 cela représente donc l'indice de notre tableau, ce qui est pourquoi nous avons parenthèses. 801 00:35:56,730 --> 00:36:01,630 Mais ici, si vous remarquez, nous avons laissé nos supports sans taille, 802 00:36:01,630 --> 00:36:05,969 et on initialise avec la données réelles tout-en-un avec des accolades. 803 00:36:05,969 --> 00:36:08,260 L'ÉLÈVE: Alors, pourquoi avons-nous pas crochets dans cet exemple? 804 00:36:08,260 --> 00:36:11,030 Allison: Alors, dans quelle partie? 805 00:36:11,030 --> 00:36:14,645 L'ÉLÈVE: ne serions-nous disons, par exemple int supports 806 00:36:14,645 --> 00:36:19,710 accolades des égaux [inaudible] crochets par exemple. 807 00:36:19,710 --> 00:36:20,900 >> Allison: Oh, désolé. 808 00:36:20,900 --> 00:36:21,560 Vous avez raison. 809 00:36:21,560 --> 00:36:22,690 Nous ne devons parenthèses il. 810 00:36:22,690 --> 00:36:23,486 Désolé les gars, mon mauvais. 811 00:36:23,486 --> 00:36:25,150 812 00:36:25,150 --> 00:36:27,560 Oui, vous devez avoir entre parenthèses après exemple. 813 00:36:27,560 --> 00:36:28,850 Vous avez absolument raison. 814 00:36:28,850 --> 00:36:29,750 >> L'ÉLÈVE: [inaudible] ne pas le faire. 815 00:36:29,750 --> 00:36:31,270 >> ALLISON: Non, vous devez avoir entre parenthèses, parce que sinon il est 816 00:36:31,270 --> 00:36:32,810 ne va pas déclarer un tableau. 817 00:36:32,810 --> 00:36:33,685 L'ÉLÈVE: [inaudible]. 818 00:36:33,685 --> 00:36:34,200 Désolé à ce sujet. 819 00:36:34,200 --> 00:36:36,200 >> ALLISON: Désolé, vous devez entre parenthèses après exemple. 820 00:36:36,200 --> 00:36:36,620 821 00:36:36,620 --> 00:36:37,120 Typo. 822 00:36:37,120 --> 00:36:40,650 823 00:36:40,650 --> 00:36:43,160 Bonne prise, étoile d'or pour vous. 824 00:36:43,160 --> 00:36:47,730 Aussi, si vous posez une question, si vous les gars juste me dire vos noms, 825 00:36:47,730 --> 00:36:48,570 Je serais ravi que. 826 00:36:48,570 --> 00:36:50,630 Je serais ravi de pouvoir connaître tous les noms. 827 00:36:50,630 --> 00:36:53,187 Je ne vais pas au froid vous appelle, je fait 828 00:36:53,187 --> 00:36:54,520 ne veulent juste savoir vos noms. 829 00:36:54,520 --> 00:36:57,530 Se il vous plaît Alors dis-moi réellement vos noms. 830 00:36:57,530 --> 00:36:58,426 >> Léa Léa. 831 00:36:58,426 --> 00:36:59,340 >> ALLISON: Leah. 832 00:36:59,340 --> 00:37:03,960 OK, donc je sais functions-- en bref ils ont parlé de cette conférence au cours. 833 00:37:03,960 --> 00:37:07,590 Alors fonctions sont un peu juste comme ces petites choses bouchées 834 00:37:07,590 --> 00:37:11,525 où vous passez dans les intrants, quelque chose magique se produit, et vous obtenez les résultats. 835 00:37:11,525 --> 00:37:12,680 836 00:37:12,680 --> 00:37:13,180 Laisser refroidir. 837 00:37:13,180 --> 00:37:15,013 Donc vous avez effectivement utilisé un beaucoup d'entre eux déjà. 838 00:37:15,013 --> 00:37:15,970 839 00:37:15,970 --> 00:37:18,840 Obtenez int, obtenir chaîne, impression f. 840 00:37:18,840 --> 00:37:21,790 Ce sont toutes les fonctions où vous appelez eux, 841 00:37:21,790 --> 00:37:24,370 il ya beaucoup de choses magiques passe en arrière-plan 842 00:37:24,370 --> 00:37:27,390 que vous ne voyez pas nécessairement, et vous obtenez ce que vous voulez. 843 00:37:27,390 --> 00:37:30,280 Ou au moins vous obtenez ce que vous espérez que vous voulez. 844 00:37:30,280 --> 00:37:31,920 845 00:37:31,920 --> 00:37:35,620 >> Et dans le fond le point de fonctions, et l'un des principaux thèmes de la CS, 846 00:37:35,620 --> 00:37:38,700 est de briser votre code en éléments gérables. 847 00:37:38,700 --> 00:37:41,520 Lorsque vous commencez à écrire ces très longs programmes, 848 00:37:41,520 --> 00:37:44,970 ou dans Scratch quand vous avez eu cette grande idée pour un jeu, 849 00:37:44,970 --> 00:37:48,070 vous devez être en mesure de le casser vers, comme, OK, comment dois-je commencer? 850 00:37:48,070 --> 00:37:50,470 Quels sont les petits morceaux que je dois? 851 00:37:50,470 --> 00:37:53,320 Oh, je dois demander à la utilisateur pour quelque chose. 852 00:37:53,320 --> 00:37:54,830 Maintenant, je dois imprimer quelque chose. 853 00:37:54,830 --> 00:37:56,590 Oh, je dois calculer cette valeur. 854 00:37:56,590 --> 00:38:00,050 >> Et apprendre à briser votre code et les grands problèmes que vous 855 00:38:00,050 --> 00:38:02,740 avoir dans ces petits morceaux et la création de fonctions 856 00:38:02,740 --> 00:38:05,330 est en fait l'un des grandes pierres angulaires de la CS. 857 00:38:05,330 --> 00:38:06,440 858 00:38:06,440 --> 00:38:11,740 Ainsi, vous pouvez penser à une fonction tout aussi comme une boîte noire, boîte noire magique, 859 00:38:11,740 --> 00:38:15,030 que vous mettez les choses en et vous obtenez une sortie. 860 00:38:15,030 --> 00:38:16,290 861 00:38:16,290 --> 00:38:19,460 Et le reste du programme n'a pas besoin de savoir nécessairement 862 00:38:19,460 --> 00:38:21,150 ce qui se passe dans cette boîte noire. 863 00:38:21,150 --> 00:38:24,190 Tout ce qu'il se soucie de ce qui est qui entre et ce qui sort. 864 00:38:24,190 --> 00:38:26,230 865 00:38:26,230 --> 00:38:26,730 Laisser refroidir. 866 00:38:26,730 --> 00:38:27,820 >> Alors pourquoi fonctions? 867 00:38:27,820 --> 00:38:33,240 Organization-- comme je l'ai dit, quand vous êtes traiter de très grandes bases de code, 868 00:38:33,240 --> 00:38:37,357 comment vous organisez votre code sera beaucoup plus facile si vous utilisez des fonctions. 869 00:38:37,357 --> 00:38:39,190 Parce que vous serez en mesure être, comme, OK, ce 870 00:38:39,190 --> 00:38:41,849 est ce que cette fonction fait et voici ce que l'on fait un autre. 871 00:38:41,849 --> 00:38:43,890 Et vous pouvez facilement voir comment ils toutes ensemble. 872 00:38:43,890 --> 00:38:45,590 873 00:38:45,590 --> 00:38:48,210 Donc, le découper en tout ces sous-parties gérables. 874 00:38:48,210 --> 00:38:51,860 >> Donc simplification-- je suis sûr que vous les gars tous virent cela, comme je l'ai dit, avec Scratch. 875 00:38:51,860 --> 00:38:53,230 876 00:38:53,230 --> 00:38:56,790 Vous avez cette grande idée, et vous êtes comme, comment fait tout ce travail? 877 00:38:56,790 --> 00:38:59,710 Mais si vous vous en approchez au coup par coup, vous dites, OK, 878 00:38:59,710 --> 00:39:03,650 comment puis-je faire un sprite flotter sur l'écran? 879 00:39:03,650 --> 00:39:04,805 Voilà un peu plus facile. 880 00:39:04,805 --> 00:39:06,000 881 00:39:06,000 --> 00:39:09,590 Donc bon usage des marques de fonction votre code plus facile à lire. 882 00:39:09,590 --> 00:39:13,800 Il est plus facile à déboguer qui, vous entrez dans vos jeux de problème plus tard, 883 00:39:13,800 --> 00:39:15,900 vous allez vraiment veulent être en mesure de le faire. 884 00:39:15,900 --> 00:39:17,900 Et ils sont aussi plus facile à concevoir et à mettre en œuvre. 885 00:39:17,900 --> 00:39:21,100 Vous pouvez coder un petit fonctionner relativement rapidement 886 00:39:21,100 --> 00:39:25,260 et assurez-vous que cela fonctionne plutôt que d'essayer pour créer ensemble ce programme à long 887 00:39:25,260 --> 00:39:28,960 et puis sorte de passer et voir ce qui fonctionne et ce qui l'est pas. 888 00:39:28,960 --> 00:39:30,300 >> Et puis la réutilisation. 889 00:39:30,300 --> 00:39:33,380 Alors fonctions ne doivent être écrit une fois, 890 00:39:33,380 --> 00:39:35,586 et puis vous pouvez les utiliser autant de fois que possible. 891 00:39:35,586 --> 00:39:37,210 Donc, il est, comme, respectueux de l'environnement dans un sens. 892 00:39:37,210 --> 00:39:39,660 893 00:39:39,660 --> 00:39:42,070 Si vous aviez des choses comme Imprimer f, où vous 894 00:39:42,070 --> 00:39:47,420 eu à écrire sur la magie qui va derrière imprimer f à chaque fois 895 00:39:47,420 --> 00:39:51,040 vous vouliez imprimer quelque chose, vous serait assez malade et fatigué de ce 896 00:39:51,040 --> 00:39:51,650 à la fin. 897 00:39:51,650 --> 00:39:52,660 898 00:39:52,660 --> 00:39:55,292 >> Une des choses que vous aurez apprendre dans des classes plus tard CS, 899 00:39:55,292 --> 00:39:57,000 ou l'un des meilleurs morceaux de conseils que je reçois 900 00:39:57,000 --> 00:40:00,870 est, si vous copiez et collez code, il devrait probablement être une fonction. 901 00:40:00,870 --> 00:40:01,880 902 00:40:01,880 --> 00:40:06,007 Si vous avez exactement la même lignes tout au long de votre code, 903 00:40:06,007 --> 00:40:08,090 si vous les en facteur, votre code serait probablement 904 00:40:08,090 --> 00:40:11,860 être, comme, cinq fois plus courts et beaucoup plus facile à lire. 905 00:40:11,860 --> 00:40:15,230 Et au lieu d'essayer de résoudre les problèmes tous ces différents endroits où les choses 906 00:40:15,230 --> 00:40:18,021 qui pourrait aller mal, vous avez une fonction que vous arrivez à résoudre. 907 00:40:18,021 --> 00:40:19,230 908 00:40:19,230 --> 00:40:21,890 Et je vous promets, beaucoup de ce peut sembler abstrait genre de maintenant, 909 00:40:21,890 --> 00:40:24,620 mais que vous obtenez en plus tard et plus tard problème fixe, 910 00:40:24,620 --> 00:40:28,950 ça va faire beaucoup plus de sens et vraiment être ramenés à la maison. 911 00:40:28,950 --> 00:40:31,775 Y at-il des questions sur les fonctions jusqu'à présent? 912 00:40:31,775 --> 00:40:32,650 Pourquoi nous les utiliser? 913 00:40:32,650 --> 00:40:34,775 Je sais que nous avons pas eu dans le Nitty Gritty encore. 914 00:40:34,775 --> 00:40:40,610 Donc, la définition d'un function-- comme tableaux, nous avons besoin d'une sorte de-- cette 915 00:40:40,610 --> 00:40:41,860 est tout simplement la sortie générale. 916 00:40:41,860 --> 00:40:45,110 Donc, ceci est une fonction qui est juste aller au cube certaines entrées. 917 00:40:45,110 --> 00:40:50,120 Et sur la page suivante, en fait, nous avons toutes ces petites choses incroyables ici. 918 00:40:50,120 --> 00:40:52,420 Donc, tout le monde peut lire que, par curiosité? 919 00:40:52,420 --> 00:40:55,050 Je sais que le violet et noir peut-être un peu difficile. 920 00:40:55,050 --> 00:41:00,730 >> Mais de grandes choses à know-- donc la première un droit ici est notre type de retour. 921 00:41:00,730 --> 00:41:05,270 Donc, ce dont parle la sortie de cette fonction lorsque, dans ce cas, 922 00:41:05,270 --> 00:41:08,990 nous avons mis en un nombre, ce que nous sommes obtenir est que nombre cubes. 923 00:41:08,990 --> 00:41:11,090 Donc, il devrait être un int dans ce cas. 924 00:41:11,090 --> 00:41:14,055 Peut-être que ce serait une double ou autre chose plus tard, mais dans ce cas, 925 00:41:14,055 --> 00:41:14,555 il est un int. 926 00:41:14,555 --> 00:41:15,620 927 00:41:15,620 --> 00:41:19,440 >> Avec c, vous avez toujours besoin d'un type de retour. 928 00:41:19,440 --> 00:41:20,267 Ce sera un int. 929 00:41:20,267 --> 00:41:20,975 Ce sera un flotteur. 930 00:41:20,975 --> 00:41:22,180 Ce sera un double. 931 00:41:22,180 --> 00:41:25,370 Mais il faut préciser que cette fonction va revenir. 932 00:41:25,370 --> 00:41:26,480 933 00:41:26,480 --> 00:41:29,170 Sinon, il va crier à vous, et il ne sera pas compiler. 934 00:41:29,170 --> 00:41:30,462 Vous serez triste, et je serai triste. 935 00:41:30,462 --> 00:41:31,420 Et il est tout simplement pas bon. 936 00:41:31,420 --> 00:41:31,940 Dáccord. 937 00:41:31,940 --> 00:41:34,290 >> Et puis nous avons notre nom de la fonction. 938 00:41:34,290 --> 00:41:38,440 Et comme vous pouvez le voir ici, avec c il ya ce paradigme très cohérent. 939 00:41:38,440 --> 00:41:42,630 Quel est votre type, quel est le nom, et puis quelque chose d'autre à la fin. 940 00:41:42,630 --> 00:41:45,550 Donc, nous avons notre type de retour, notre nom de la fonction, puis 941 00:41:45,550 --> 00:41:49,320 nous avons notre tête avec notre liste de paramètres. 942 00:41:49,320 --> 00:41:52,080 >> Ainsi, la liste des paramètres est, ce qui est cette fonction va prendre en? 943 00:41:52,080 --> 00:41:56,360 Une liste de paramètres est tout simplement un synonyme de, ce sont nos intrants? 944 00:41:56,360 --> 00:42:00,230 Et de la même manière que nous avoir à définir notre fonction 945 00:42:00,230 --> 00:42:03,210 et lui donner un retour taper, chacun de nos entrées 946 00:42:03,210 --> 00:42:05,350 doit avoir un type qui lui est associé. 947 00:42:05,350 --> 00:42:08,850 Donc, nous savons ce que notre fonction peut effectivement travailler avec. 948 00:42:08,850 --> 00:42:11,290 >> Donc dans ce cas, nous avons une entrée int. 949 00:42:11,290 --> 00:42:14,660 Encore une fois, ce sera le type et ce que vous l'appelez. 950 00:42:14,660 --> 00:42:16,500 951 00:42:16,500 --> 00:42:19,040 Et puis, comme vous le voyez ici, nous avons notre corps. 952 00:42:19,040 --> 00:42:23,600 Nous avons donc une certaine sortie de int, qui est juste nos temps de saisie se 953 00:42:23,600 --> 00:42:25,810 fois lui-même, qui cubes tout simplement. 954 00:42:25,810 --> 00:42:27,610 Et puis nous revenons cette sortie. 955 00:42:27,610 --> 00:42:32,140 >> Donc, comme vous le voyez ici, nous avons une fois un int int fois un int, 956 00:42:32,140 --> 00:42:35,420 il renvoie un int, qui n'y at-il été déclaré. 957 00:42:35,420 --> 00:42:38,240 Donc, tout est cohérent. 958 00:42:38,240 --> 00:42:39,210 Tout est heureux. 959 00:42:39,210 --> 00:42:40,250 Votre fonction sera exécutée. 960 00:42:40,250 --> 00:42:41,192 961 00:42:41,192 --> 00:42:42,650 Et cela est juste la chose générale. 962 00:42:42,650 --> 00:42:46,750 Donc, avoir toujours le type de retour, nom, et votre liste de paramètres. 963 00:42:46,750 --> 00:42:48,830 Chaque chose dans votre liste des paramètres, ou entrée, 964 00:42:48,830 --> 00:42:51,410 doit avoir un type qui lui est associé. 965 00:42:51,410 --> 00:42:54,210 Et puis vous avez votre corps ici avec tout 966 00:42:54,210 --> 00:42:55,590 vous voulez faire avec votre entrée. 967 00:42:55,590 --> 00:42:57,390 968 00:42:57,390 --> 00:43:00,410 >> Et puis évidemment vous envie de revenir quelque chose. 969 00:43:00,410 --> 00:43:02,630 Parfois fonctions qui retournent juste. 970 00:43:02,630 --> 00:43:06,090 Ils ne retourne pas vraiment quelque chose pour vous à utiliser. 971 00:43:06,090 --> 00:43:08,660 Mais vous devez revenir en quelque sorte. 972 00:43:08,660 --> 00:43:12,900 Et quand vous faites vos propres fonctions, 973 00:43:12,900 --> 00:43:15,430 nous pouvons entrer dans ce un peu plus profond. 974 00:43:15,430 --> 00:43:18,880 Personnellement, si vous voulez, il ya beaucoup de choses différentes que vous pouvez y faire. 975 00:43:18,880 --> 00:43:21,350 976 00:43:21,350 --> 00:43:22,140 Tout le monde bien? 977 00:43:22,140 --> 00:43:25,900 Tout sur cette liste que vous voulez me pour aller plus, que vous ne comprenez pas? 978 00:43:25,900 --> 00:43:27,204 979 00:43:27,204 --> 00:43:28,120 Tout le monde est bien là? 980 00:43:28,120 --> 00:43:29,071 981 00:43:29,071 --> 00:43:29,570 Laisser refroidir. 982 00:43:29,570 --> 00:43:31,350 983 00:43:31,350 --> 00:43:32,120 Impressionnant. 984 00:43:32,120 --> 00:43:34,700 >> OK, donc nous mettons tout cela ensemble maintenant. 985 00:43:34,700 --> 00:43:35,720 986 00:43:35,720 --> 00:43:41,201 Nous avons donc une certaine entrée int cube, de sorte ce est un programme complet ici. 987 00:43:41,201 --> 00:43:42,950 Jusqu'à maintenant, je l'ai sorte de vous donner été 988 00:43:42,950 --> 00:43:45,699 extraits gars qui pourraient aller dans un programme. 989 00:43:45,699 --> 00:43:47,240 Nous venons de recherche à fonctions. 990 00:43:47,240 --> 00:43:48,448 Mais voici tout un programme. 991 00:43:48,448 --> 00:43:49,400 992 00:43:49,400 --> 00:43:53,690 Alors combien d'entre vous se souviennent de la mot prototype de conférence? 993 00:43:53,690 --> 00:43:54,750 994 00:43:54,750 --> 00:43:55,300 Laisser refroidir. 995 00:43:55,300 --> 00:43:55,890 Nous en avons un. 996 00:43:55,890 --> 00:43:57,160 997 00:43:57,160 --> 00:43:58,110 Quel est votre nom? 998 00:43:58,110 --> 00:43:58,850 >> STEPH: Steph. 999 00:43:58,850 --> 00:43:59,475 >> ALLISON: Steph? 1000 00:43:59,475 --> 00:44:01,030 OK, impressionnant. 1001 00:44:01,030 --> 00:44:03,310 Alors, vous souvenez-vous d'un prototype est? 1002 00:44:03,310 --> 00:44:04,651 1003 00:44:04,651 --> 00:44:10,230 >> ÉTUDIANTS: Vous dites que [inaudible] avant de traiter réellement avec elle. 1004 00:44:10,230 --> 00:44:11,700 >> ALLISON: Vous souvenez-vous pourquoi? 1005 00:44:11,700 --> 00:44:13,158 >> ÉTUDIANT: Non 1006 00:44:13,158 --> 00:44:14,620 >> ALLISON: OK. 1007 00:44:14,620 --> 00:44:16,090 Étoile d'or. 1008 00:44:16,090 --> 00:44:19,470 Alors oui, un prototype que nous avons à l'avance, parce que sinon, 1009 00:44:19,470 --> 00:44:21,260 notre compilateur va nous crier dessus. 1010 00:44:21,260 --> 00:44:24,294 Il va dire, OK, quelle est cette fonction de cube? 1011 00:44:24,294 --> 00:44:26,460 Comme, vous avez littéralement me dit rien à ce sujet. 1012 00:44:26,460 --> 00:44:28,110 Il est comme quand vous marcher dans une salle de classe, 1013 00:44:28,110 --> 00:44:29,320 et quelqu'un est comme, il ya un quiz aujourd'hui. 1014 00:44:29,320 --> 00:44:31,380 Et vous êtes comme vous ne m'a jamais dit à ce sujet. 1015 00:44:31,380 --> 00:44:32,930 Je ne suis pas heureux avec nous. 1016 00:44:32,930 --> 00:44:34,300 1017 00:44:34,300 --> 00:44:37,020 Le prototype est un peu comme votre programme en disant, regarde. 1018 00:44:37,020 --> 00:44:37,900 Heads up. 1019 00:44:37,900 --> 00:44:39,570 Il va y avoir un quiz sur cette journée. 1020 00:44:39,570 --> 00:44:41,420 Ne panique pas quand vous arrivez à lui. 1021 00:44:41,420 --> 00:44:42,690 Vous allez être bien. 1022 00:44:42,690 --> 00:44:48,170 >> Donc tout le prototype ne fait dire principal, je vais utiliser cette fonction. 1023 00:44:48,170 --> 00:44:51,010 Je promets que je vais définir plus tard. 1024 00:44:51,010 --> 00:44:52,260 Ne panique pas à moi. 1025 00:44:52,260 --> 00:44:54,750 Il suffit de compiler et faire ce que je vous dis à. 1026 00:44:54,750 --> 00:44:58,880 Nous avons donc le prototype il juste pour faire de notre compilateur heureux. 1027 00:44:58,880 --> 00:45:04,360 Et il est essentiellement une promesse que vous avez défini cette fonction plus tard 1028 00:45:04,360 --> 00:45:07,960 et que vous n'êtes pas simplement appelez cette chose aléatoire qu'il 1029 00:45:07,960 --> 00:45:10,070 ne savez pas ce que vous êtes allez faire. 1030 00:45:10,070 --> 00:45:11,910 >> Donc dans ce cas, nous avons principal ici. 1031 00:45:11,910 --> 00:45:14,660 On initialise un entier x. 1032 00:45:14,660 --> 00:45:15,620 Voilà deux. 1033 00:45:15,620 --> 00:45:17,510 Nous allons imprimer ce que x est. 1034 00:45:17,510 --> 00:45:18,800 Nous allons au cube x. 1035 00:45:18,800 --> 00:45:21,520 Comme vous le voyez, nous avons notre déclaration de fonction 1036 00:45:21,520 --> 00:45:23,770 ici-bas que nous parlé précédemment. 1037 00:45:23,770 --> 00:45:28,260 Il va cube x, et puis, si nous rappelez-vous, la fonction de cube fait 1038 00:45:28,260 --> 00:45:31,340 retourne un entier à nous, qui est stocké 1039 00:45:31,340 --> 00:45:35,860 en x de nouveau afin que nous puissions imprimer sur huit, ou cube x dès maintenant. 1040 00:45:35,860 --> 00:45:37,170 1041 00:45:37,170 --> 00:45:38,920 Cela fait-il sens à tout le monde? 1042 00:45:38,920 --> 00:45:40,360 Nous sommes bons? 1043 00:45:40,360 --> 00:45:41,160 Bien. 1044 00:45:41,160 --> 00:45:41,660 Impressionnant. 1045 00:45:41,660 --> 00:45:45,540 1046 00:45:45,540 --> 00:45:46,840 >> Bien. 1047 00:45:46,840 --> 00:45:50,879 Combien d'entre vous les gars Rappelez-vous ceci si ce 1048 00:45:50,879 --> 00:45:52,670 est fondamentalement juste votre pile et votre tas, 1049 00:45:52,670 --> 00:45:56,510 seulement une visualisation de comment la mémoire est stockée ici. 1050 00:45:56,510 --> 00:45:58,200 1051 00:45:58,200 --> 00:46:01,400 Donc, nous voulons juste faire vous que vous comprenez 1052 00:46:01,400 --> 00:46:03,680 comment ceux-ci sont représentés en mémoire. 1053 00:46:03,680 --> 00:46:07,670 Si vous prenez des cours comme CS61 et des trucs plus tard, 1054 00:46:07,670 --> 00:46:10,570 vous arrivez à apprendre ce beaucoup plus en profondeur, et il est vraiment cool. 1055 00:46:10,570 --> 00:46:11,730 Je le recommande fortement. 1056 00:46:11,730 --> 00:46:12,740 1057 00:46:12,740 --> 00:46:14,720 Mais pour l'instant, je vais vous donner vous la vue d'ensemble 1058 00:46:14,720 --> 00:46:16,950 de sorte que vous ne devez pas savoir le Nitty Gritty. 1059 00:46:16,950 --> 00:46:20,820 >> Ainsi, le haut juste un segment de texte qui contient les zéros et de uns réels, 1060 00:46:20,820 --> 00:46:23,740 le binaire pour cela. 1061 00:46:23,740 --> 00:46:27,510 Et ceci est utilisé pour stocker variables globales si vous en avez. 1062 00:46:27,510 --> 00:46:28,870 1063 00:46:28,870 --> 00:46:32,240 Lorsque vous vous déplacez vers le bas, nous avoir, comme vous le voyez ici, 1064 00:46:32,240 --> 00:46:34,670 données initialisées, non initialisées données, puis tas. 1065 00:46:34,670 --> 00:46:35,800 1066 00:46:35,800 --> 00:46:38,584 >> Donc, nous ne parlons pas vraiment sur le tas en ce moment. 1067 00:46:38,584 --> 00:46:39,500 Nous y reviendrons plus tard. 1068 00:46:39,500 --> 00:46:40,762 1069 00:46:40,762 --> 00:46:42,970 Pour l'instant, je vais juste agiter les mains et être comme, 1070 00:46:42,970 --> 00:46:44,553 vous ne devez savoir à ce sujet maintenant. 1071 00:46:44,553 --> 00:46:46,100 1072 00:46:46,100 --> 00:46:49,060 Mais nous allons parler un peu peu de la pile. 1073 00:46:49,060 --> 00:46:53,050 Ainsi, la pile est where-- nous avons zoom. 1074 00:46:53,050 --> 00:46:58,590 Ceci est en fait la façon dont le programme nous venons de voir se produit dans la mémoire. 1075 00:46:58,590 --> 00:47:01,630 >> Donc ce qui arrive est, chaque temps que nous appelons une fonction, 1076 00:47:01,630 --> 00:47:04,180 nous obtenons ce que l'on appelle une pile cadre, qui est l'un des ces derniers. 1077 00:47:04,180 --> 00:47:05,870 Alors paramètres principaux. 1078 00:47:05,870 --> 00:47:07,944 Donc, ce sont les choses que nous passons en principal. 1079 00:47:07,944 --> 00:47:11,110 Donc, ils sont ici en bas, parce que est la première chose que nous appelons. 1080 00:47:11,110 --> 00:47:13,401 Et puis nous arrivons à de grandes habitants, et quand nous disons que, 1081 00:47:13,401 --> 00:47:15,970 nous entendons les variables locales qui sont stockés à l'intérieur principal. 1082 00:47:15,970 --> 00:47:19,950 1083 00:47:19,950 --> 00:47:23,620 Alors les habitants serait ici, comme, x est égal à deux dans le cas présent. 1084 00:47:23,620 --> 00:47:26,350 Parce que ce localisées à principal. 1085 00:47:26,350 --> 00:47:29,745 Est-ce que quelqu'un se souvient de portée, aller au cours de cette conférence en? 1086 00:47:29,745 --> 00:47:31,517 1087 00:47:31,517 --> 00:47:32,017 Dáccord. 1088 00:47:32,017 --> 00:47:36,110 Donc, juste les variables sont initialisées à l'intérieur principal. 1089 00:47:36,110 --> 00:47:38,550 Voilà pourquoi nous avons [principal? chant. ?] 1090 00:47:38,550 --> 00:47:40,390 >> Et puis dans principal, nous appelons cube. 1091 00:47:40,390 --> 00:47:41,000 Droit? 1092 00:47:41,000 --> 00:47:44,510 Nous obtenons donc un autre cadre avec les paramètres de cube. 1093 00:47:44,510 --> 00:47:47,050 Donc dans ce cas, cube de paramètres sont maintenant 1094 00:47:47,050 --> 00:47:50,800 le x que nous avons passé dans, les deux que nous avons passé dans. 1095 00:47:50,800 --> 00:47:55,320 Et puis les habitants de cube, qui est où le cubage réel qui se passe. 1096 00:47:55,320 --> 00:47:56,450 Et puis il retourne. 1097 00:47:56,450 --> 00:48:02,120 >> Donc ce qui se passe est que le cube ne fait ce qu'il est censé faire, il retourne. 1098 00:48:02,120 --> 00:48:07,020 Quand il revient, ce cadre laisse, et renvoyée vers le bas à son principal. 1099 00:48:07,020 --> 00:48:09,160 Et puis dans principal, nous peut réellement imprimer. 1100 00:48:09,160 --> 00:48:10,840 1101 00:48:10,840 --> 00:48:14,500 Ainsi, lorsque vous êtes de retour quelque chose, lorsque votre fonction retourne, 1102 00:48:14,500 --> 00:48:19,900 il est comme le passage sur ces valeurs le cadre ci-dessous, puis quitter. 1103 00:48:19,900 --> 00:48:22,200 Et les choses ont à exécuter dans l'ordre. 1104 00:48:22,200 --> 00:48:25,550 >> Et quand vous arrivez à des programmes plus gros, nous pouvons faire plus frais et plus compliqué 1105 00:48:25,550 --> 00:48:26,470 diagrammes. 1106 00:48:26,470 --> 00:48:29,070 Mais pour l'instant, cela est juste un aperçu général 1107 00:48:29,070 --> 00:48:31,110 si vous avez une sorte de compréhension de ce 1108 00:48:31,110 --> 00:48:35,160 qui se passe lorsque vous appelez une fonction et à quoi ça ressemble en fait à la mémoire. 1109 00:48:35,160 --> 00:48:37,230 1110 00:48:37,230 --> 00:48:37,770 Cool? 1111 00:48:37,770 --> 00:48:38,353 Tout le monde bien? 1112 00:48:38,353 --> 00:48:39,920 1113 00:48:39,920 --> 00:48:40,420 Impressionnant. 1114 00:48:40,420 --> 00:48:42,070 1115 00:48:42,070 --> 00:48:50,575 >> Donc, ce qui est l'un est juste essayer d'échanger des choses. 1116 00:48:50,575 --> 00:48:52,260 1117 00:48:52,260 --> 00:48:54,930 Comme nous le voyons ici, nous avons notre prototype de fonction 1118 00:48:54,930 --> 00:48:56,900 de sorte que notre compilateur ne crie pas à nous. 1119 00:48:56,900 --> 00:48:59,220 Nous avons quelques principale, et nous vous voulez passer x et y. 1120 00:48:59,220 --> 00:49:00,320 1121 00:49:00,320 --> 00:49:04,129 Ils ont pas fait cette démonstration en cours encore, ont-ils? 1122 00:49:04,129 --> 00:49:04,670 Ils ont pas? 1123 00:49:04,670 --> 00:49:05,900 Dáccord. 1124 00:49:05,900 --> 00:49:08,450 Donc, nous allons aller au cours de cette très brièvement. 1125 00:49:08,450 --> 00:49:12,210 Vous aurez dans cet exemple plus en profondeur, je pense que, cette semaine. 1126 00:49:12,210 --> 00:49:15,680 Et puis la semaine prochaine nous pouvons vraiment plonger dans pourquoi cela ne fonctionne pas. 1127 00:49:15,680 --> 00:49:18,810 >> Nous avons donc ce vide swap fonction. 1128 00:49:18,810 --> 00:49:20,720 Donc nul signifie simplement que rien ne sera retourné. 1129 00:49:20,720 --> 00:49:22,000 1130 00:49:22,000 --> 00:49:24,110 Et nous avons un échange int et int b. 1131 00:49:24,110 --> 00:49:27,046 Et nous avons quelques temporaire variable qui est une. 1132 00:49:27,046 --> 00:49:30,050 A obtient attribué à b, et puis b est attribué, à la température 1133 00:49:30,050 --> 00:49:32,235 de sorte que A et B de valeurs sont maintenant activés. 1134 00:49:32,235 --> 00:49:33,510 1135 00:49:33,510 --> 00:49:36,030 >> Mais, rebondissement, cela ne fonctionne pas. 1136 00:49:36,030 --> 00:49:37,390 1137 00:49:37,390 --> 00:49:42,380 Et une partie de celui-ci a fait à voir avec le fait qu'un 1138 00:49:42,380 --> 00:49:48,800 et b ici, ceux qui se passaient dans ici, sont en fait des copies de x et y. 1139 00:49:48,800 --> 00:49:53,220 Ainsi, lorsque la fonction renvoie en fait, on commute les copies mais pas 1140 00:49:53,220 --> 00:49:55,960 la réelle x et y de. 1141 00:49:55,960 --> 00:50:02,370 Donc, une façon de penser est that-- prétendent ceux-ci sont swap. 1142 00:50:02,370 --> 00:50:03,130 D'accord? 1143 00:50:03,130 --> 00:50:05,390 Donc, en principal, nous avons x et y initialisés. 1144 00:50:05,390 --> 00:50:06,530 1145 00:50:06,530 --> 00:50:10,760 Mais quand on fait montons à ces cadres avec swap, 1146 00:50:10,760 --> 00:50:15,740 nous passons les valeurs sur à elle, et ils sont initialisés. 1147 00:50:15,740 --> 00:50:18,570 >> Et ils ne vivent jamais ici. 1148 00:50:18,570 --> 00:50:19,796 Donc, A et B vivent ici. 1149 00:50:19,796 --> 00:50:20,670 Et ils sont échangés. 1150 00:50:20,670 --> 00:50:21,870 1151 00:50:21,870 --> 00:50:26,190 Mais quand nous reviendrons, nous ne faisons pas faire quelque chose avec a et b. une 1152 00:50:26,190 --> 00:50:28,980 et b congé avec notre fonction. 1153 00:50:28,980 --> 00:50:30,850 Et si x et y rester le même. 1154 00:50:30,850 --> 00:50:31,960 1155 00:50:31,960 --> 00:50:39,665 Vous obtiendrez plus sur la façon de résoudre ce problème et la façon dont nous traitons en fait de cela plus tard. 1156 00:50:39,665 --> 00:50:40,750 1157 00:50:40,750 --> 00:50:43,740 >> Mais il est une seule chose de sorte de garder à l'esprit. 1158 00:50:43,740 --> 00:50:45,270 Utilisez-le pour l'avenir. 1159 00:50:45,270 --> 00:50:48,050 Ne vous inquiétez pas si cela n'a pas rendu tous les sens dans le monde. 1160 00:50:48,050 --> 00:50:49,510 1161 00:50:49,510 --> 00:50:51,440 Ce sont des copies est la chose la plus importante. 1162 00:50:51,440 --> 00:50:54,580 Si vous allez prendre quelque chose loin de là, vous avez passé dans les copies. 1163 00:50:54,580 --> 00:50:56,410 Ainsi, les originaux restent les mêmes. 1164 00:50:56,410 --> 00:50:58,170 1165 00:50:58,170 --> 00:50:58,770 Tout le monde bien? 1166 00:50:58,770 --> 00:51:00,280 1167 00:51:00,280 --> 00:51:00,930 Laisser refroidir. 1168 00:51:00,930 --> 00:51:02,295 >> Donc arguments de ligne de commande. 1169 00:51:02,295 --> 00:51:03,520 1170 00:51:03,520 --> 00:51:07,630 Je suis sûr que dans le début tous les gars eu ces grands, comme, principales vides int. 1171 00:51:07,630 --> 00:51:09,517 Et vous êtes comme, OK cool. 1172 00:51:09,517 --> 00:51:10,350 Je ne me soucie pas. 1173 00:51:10,350 --> 00:51:12,360 C'est juste ce que je dois écrire. 1174 00:51:12,360 --> 00:51:16,349 Mais dans de nouveaux programmes, surtout dans ce jeu de processeurs, 1175 00:51:16,349 --> 00:51:17,890 et pourquoi est-il la craie sur le sol? 1176 00:51:17,890 --> 00:51:19,640 1177 00:51:19,640 --> 00:51:22,680 >> Avec votre prochaine pset, vous êtes allons voir cela. 1178 00:51:22,680 --> 00:51:26,130 Int main int arg c, chaîne arc v, entre parenthèses. 1179 00:51:26,130 --> 00:51:28,770 Donc, à partir de ce que nous venons appris aujourd'hui, ce 1180 00:51:28,770 --> 00:51:32,190 pensons-nous que le deuxième paramètre ou à ce deuxième élément est ici? 1181 00:51:32,190 --> 00:51:34,830 1182 00:51:34,830 --> 00:51:35,824 Il est un tableau. 1183 00:51:35,824 --> 00:51:36,615 Quel type de tableau? 1184 00:51:36,615 --> 00:51:38,430 1185 00:51:38,430 --> 00:51:40,690 tableau de String, oui. 1186 00:51:40,690 --> 00:51:41,980 Laisser refroidir. 1187 00:51:41,980 --> 00:51:45,320 Voilà donc comment vous allez à déclarer ces maintenant. 1188 00:51:45,320 --> 00:51:48,570 >> Quelqu'un se souvient ce que ces représentent? 1189 00:51:48,570 --> 00:51:52,551 1190 00:51:52,551 --> 00:51:53,050 Non? 1191 00:51:53,050 --> 00:51:54,020 1192 00:51:54,020 --> 00:51:54,520 Hmm? 1193 00:51:54,520 --> 00:51:55,640 >> L'ÉLÈVE: arg c. 1194 00:51:55,640 --> 00:51:56,961 1195 00:51:56,961 --> 00:51:58,950 >> Allison: Alors arg c maintient un compteur. 1196 00:51:58,950 --> 00:51:59,450 Il est un int. 1197 00:51:59,450 --> 00:52:00,615 Il est un certain nombre, non? 1198 00:52:00,615 --> 00:52:02,240 Alors, que pensez-vous que ce nombre est de? 1199 00:52:02,240 --> 00:52:08,260 1200 00:52:08,260 --> 00:52:08,760 Ouais. 1201 00:52:08,760 --> 00:52:11,450 Ainsi arg c est le nombre de chaînes qui composent la ligne de commande. 1202 00:52:11,450 --> 00:52:12,560 1203 00:52:12,560 --> 00:52:18,499 Donc, si nous étions à do-- fait, il existe des exemples, après cela, 1204 00:52:18,499 --> 00:52:19,790 je ne vais pas aller de l'avant de moi-même. 1205 00:52:19,790 --> 00:52:21,299 1206 00:52:21,299 --> 00:52:23,840 Il est un certain nombre de chaînes juste faire votre ligne de commande. 1207 00:52:23,840 --> 00:52:35,080 >> Alors, quand vous le faites, comme, dot réduire Mario, qui est une chaîne qui le compose. 1208 00:52:35,080 --> 00:52:38,520 Dans cette pièce, vous aurez en fait être alimentation choses dans la ligne de commande, 1209 00:52:38,520 --> 00:52:41,750 comme je suis sûr que vous les gars qui avoir lu la scie spec. 1210 00:52:41,750 --> 00:52:44,470 Donc, dans ces cas, peut-être vous deux ou trois arguments. 1211 00:52:44,470 --> 00:52:45,652 1212 00:52:45,652 --> 00:52:48,360 Ça va être une chose utile à utiliser. 1213 00:52:48,360 --> 00:52:51,500 >> Et puis arg v, comme nous l'avons dit, est juste un tableau de chaînes. 1214 00:52:51,500 --> 00:52:57,000 Alors qui stocke en fait ce vous entrez dans la ligne de commande. 1215 00:52:57,000 --> 00:52:59,960 Nous avons donc ces. 1216 00:52:59,960 --> 00:53:02,850 Vous avez une barre de point copier fichier_de_sortie INFILE. 1217 00:53:02,850 --> 00:53:06,670 Donc, si arg c est le nombre de chaînes que nous passons dans la commande 1218 00:53:06,670 --> 00:53:09,080 ligne, ce qui est notre arg c dans ce cas? 1219 00:53:09,080 --> 00:53:14,520 1220 00:53:14,520 --> 00:53:15,850 Trois. 1221 00:53:15,850 --> 00:53:16,690 Exactement. 1222 00:53:16,690 --> 00:53:20,086 >> Alors, quel est arg v de zéro? 1223 00:53:20,086 --> 00:53:21,710 Alors, quelle est la première chose que nous avons stocké? 1224 00:53:21,710 --> 00:53:24,640 1225 00:53:24,640 --> 00:53:26,290 Dot slash copie, exactement. 1226 00:53:26,290 --> 00:53:28,065 Et puis la deuxième serait INFILE. 1227 00:53:28,065 --> 00:53:29,290 1228 00:53:29,290 --> 00:53:30,930 La troisième serait fichier_de_sortie. 1229 00:53:30,930 --> 00:53:32,390 Alors qu'en est-arg v trois? 1230 00:53:32,390 --> 00:53:35,810 1231 00:53:35,810 --> 00:53:39,370 Il serait nulle, parce que ce la fin de notre série, non? 1232 00:53:39,370 --> 00:53:40,600 1233 00:53:40,600 --> 00:53:41,460 Laisser refroidir. 1234 00:53:41,460 --> 00:53:44,500 >> Et puis que dire de la sixième? 1235 00:53:44,500 --> 00:53:45,900 Il est un peu une question piège. 1236 00:53:45,900 --> 00:53:46,400 Ish. 1237 00:53:46,400 --> 00:53:49,027 1238 00:53:49,027 --> 00:53:49,943 Savons-nous ce qu'il est? 1239 00:53:49,943 --> 00:53:50,960 1240 00:53:50,960 --> 00:53:51,690 Il est indéfini. 1241 00:53:51,690 --> 00:53:53,170 Nous ne savons pas ce que cela pourrait être. 1242 00:53:53,170 --> 00:53:57,000 Il est tout ce qui est droit après le tableau en mémoire, 1243 00:53:57,000 --> 00:54:00,220 et nous avons aucune idée de ce qui est. 1244 00:54:00,220 --> 00:54:03,500 Et il est dangereux de toucher ceux choses, parce que pour tout ce que vous savez, 1245 00:54:03,500 --> 00:54:07,080 il est une partie de la mémoire que vous ne devrait pas être d'accéder ou nulle. 1246 00:54:07,080 --> 00:54:09,000 Et il peut faire des choses folles. 1247 00:54:09,000 --> 00:54:11,690 Il a appelé au cours d'indexation votre lié à votre tableau. 1248 00:54:11,690 --> 00:54:14,785 Ne pas aller à l'extérieur des limites de votre tableau ou mauvaises choses peuvent arriver. 1249 00:54:14,785 --> 00:54:16,274 1250 00:54:16,274 --> 00:54:18,940 Vous revenez et, comme les lois de la physique ont été détruits 1251 00:54:18,940 --> 00:54:19,481 ou quelque chose. 1252 00:54:19,481 --> 00:54:21,021 1253 00:54:21,021 --> 00:54:21,520 Laisser refroidir. 1254 00:54:21,520 --> 00:54:22,895 Cela fait-il sens à tout le monde? 1255 00:54:22,895 --> 00:54:23,810 1256 00:54:23,810 --> 00:54:25,025 Pas trop mal. 1257 00:54:25,025 --> 00:54:28,926 >> Alors maintenant, tout le monde est partie préférée, l'examen de pset. 1258 00:54:28,926 --> 00:54:29,426 Yay! 1259 00:54:29,426 --> 00:54:30,530 1260 00:54:30,530 --> 00:54:31,030 Dáccord. 1261 00:54:31,030 --> 00:54:33,830 Donc, pour ceux d'entre vous qui ont pas lu la spec pset, 1262 00:54:33,830 --> 00:54:36,790 vous faites une vraiment trucs cool avec la cryptographie. 1263 00:54:36,790 --> 00:54:39,360 Vous allez créer un César Cipher et un Chiffre de Vigenère. 1264 00:54:39,360 --> 00:54:42,000 1265 00:54:42,000 --> 00:54:45,480 Vous devez absolument lire le spec de voir comment ceux qui travaillent. 1266 00:54:45,480 --> 00:54:49,650 Et si vous rencontrez le moindre problème sur ce qu'il doit réellement être fait, 1267 00:54:49,650 --> 00:54:52,920 se il vous plaît venir me parler, écrivez-moi ou texte moi. 1268 00:54:52,920 --> 00:54:53,420 Je suis là. 1269 00:54:53,420 --> 00:54:54,780 1270 00:54:54,780 --> 00:54:57,070 >> Donc, il ya trois principaux choses ici que nous 1271 00:54:57,070 --> 00:55:00,440 vouloir parler about-- juste genre d'une extension de conférence. 1272 00:55:00,440 --> 00:55:03,645 Les choses que vous ignorez peut-être environ, des conseils et des outils utiles. 1273 00:55:03,645 --> 00:55:05,520 Nous allons donc faire une examen rapide de l'ASCII, 1274 00:55:05,520 --> 00:55:10,420 parce que ça va être super- important pour Cipher de Vigenère. 1275 00:55:10,420 --> 00:55:11,809 1276 00:55:11,809 --> 00:55:14,100 Nous allons à la conversion de entrées de ligne de commande, qui 1277 00:55:14,100 --> 00:55:17,160 sera très utile pour chiffre de César. 1278 00:55:17,160 --> 00:55:18,133 Et puis modulo. 1279 00:55:18,133 --> 00:55:20,220 1280 00:55:20,220 --> 00:55:21,210 Laisser refroidir. 1281 00:55:21,210 --> 00:55:24,005 >> Ainsi, ASCII cartes caractères en numéros. 1282 00:55:24,005 --> 00:55:25,270 1283 00:55:25,270 --> 00:55:26,365 Ceci est un grand tableau. 1284 00:55:26,365 --> 00:55:28,115 Vous devriez avoir cette signet quelque part. 1285 00:55:28,115 --> 00:55:29,310 1286 00:55:29,310 --> 00:55:33,250 Vous voudrez pour votre première mi-parcours. 1287 00:55:33,250 --> 00:55:36,320 Je suis sûr que tout le monde a ce graphique sur leur feuille mi-parcours. 1288 00:55:36,320 --> 00:55:37,810 Donc apprendre. 1289 00:55:37,810 --> 00:55:38,410 Aimer. 1290 00:55:38,410 --> 00:55:39,740 Gardez à portée de main. 1291 00:55:39,740 --> 00:55:41,210 Ce sera utile. 1292 00:55:41,210 --> 00:55:45,630 >> Et tout ce qu'il est est un codage que les cartes alphabétiques, numériques, 1293 00:55:45,630 --> 00:55:47,740 et d'autres personnages à numéros de notre ordinateur. 1294 00:55:47,740 --> 00:55:49,947 Parce que bien entendu, dans le fin, tout ce que nous stockons 1295 00:55:49,947 --> 00:55:52,030 va obtenir converti jusqu'à zéros et de uns, 1296 00:55:52,030 --> 00:55:55,200 donc nous avons besoin d'une certaine façon à représenter la texte et de caractères que nous sommes tous 1297 00:55:55,200 --> 00:55:59,105 l'habitude de voir comme une sorte de numéro. 1298 00:55:59,105 --> 00:56:00,370 1299 00:56:00,370 --> 00:56:05,880 >> Donc, comme nous le voyons ici, nous avons A majuscule, qui est juste là. 1300 00:56:05,880 --> 00:56:06,555 Il est 65. 1301 00:56:06,555 --> 00:56:07,570 1302 00:56:07,570 --> 00:56:09,660 Et minuscules A est de 97. 1303 00:56:09,660 --> 00:56:13,170 Ainsi, vous pouvez comprendre out-- comme je le disais plus tôt, 1304 00:56:13,170 --> 00:56:16,532 si vous aviez tableau de multiple cordes, ce que chacun d'entre eux 1305 00:56:16,532 --> 00:56:17,490 avoir un terminateur nul. 1306 00:56:17,490 --> 00:56:18,480 Ce serait un espace. 1307 00:56:18,480 --> 00:56:22,581 L'espace a sa propre special-- Je ne sais plus où il est ici. 1308 00:56:22,581 --> 00:56:23,080 Ah. 1309 00:56:23,080 --> 00:56:24,700 32 est l'espace. 1310 00:56:24,700 --> 00:56:27,090 Donc tout maps à elle. 1311 00:56:27,090 --> 00:56:28,680 1312 00:56:28,680 --> 00:56:29,740 >> Nous avons donc ASCII mathématiques. 1313 00:56:29,740 --> 00:56:31,080 1314 00:56:31,080 --> 00:56:34,290 Pro tip-- dans Vigenère de, vous pourriez être tenté 1315 00:56:34,290 --> 00:56:39,480 pour convertir vos numéros de nombres entiers, mais il est en fait meilleure pratique 1316 00:56:39,480 --> 00:56:43,860 pour pouvoir utiliser le caractères de ce genre 1317 00:56:43,860 --> 00:56:45,820 lorsque vous êtes en train de les manipuler. 1318 00:56:45,820 --> 00:56:48,950 Donc, si vous voulez utiliser des numéros, vous le pouvez. 1319 00:56:48,950 --> 00:56:55,260 Mais une meilleure façon, ou d'une manière qui nous avons tendance à vous les gars pour le faire, 1320 00:56:55,260 --> 00:56:57,830 est ce chemin où vous êtes soustraire effectivement caractères. 1321 00:56:57,830 --> 00:56:58,840 1322 00:56:58,840 --> 00:57:02,830 >> Donc, je veux que vous les gars à genre de repérer les repérer. 1323 00:57:02,830 --> 00:57:05,070 Pourquoi ne pas essayer chaque autre? 1324 00:57:05,070 --> 00:57:07,580 1325 00:57:07,580 --> 00:57:09,830 Donc, faire le premier, le une troisième, et le cinquième. 1326 00:57:09,830 --> 00:57:11,160 1327 00:57:11,160 --> 00:57:15,000 Parce que je veux vous assurer que nous parlons tout ce que nous devons parler. 1328 00:57:15,000 --> 00:57:17,410 1329 00:57:17,410 --> 00:57:20,259 Je vais juste dire, l'un des choses importantes to-- Oh, attends, 1330 00:57:20,259 --> 00:57:21,550 vous les gars ont pas vu celui-ci. 1331 00:57:21,550 --> 00:57:23,710 OK donc faire les trois premiers. 1332 00:57:23,710 --> 00:57:24,430 Faisons-le. 1333 00:57:24,430 --> 00:57:25,971 Parce que nous avons à parler de modulo. 1334 00:57:25,971 --> 00:57:27,810 1335 00:57:27,810 --> 00:57:28,310 Je sais. 1336 00:57:28,310 --> 00:57:28,851 Math est difficile. 1337 00:57:28,851 --> 00:57:29,870 1338 00:57:29,870 --> 00:57:30,980 Vous pouvez utiliser une calculatrice. 1339 00:57:30,980 --> 00:57:31,580 Ce est OK. 1340 00:57:31,580 --> 00:57:37,464 1341 00:57:37,464 --> 00:57:40,380 Ou tirer vers le haut une table ASCII, car vous allez probablement vouloir que. 1342 00:57:40,380 --> 00:58:03,660 1343 00:58:03,660 --> 00:58:04,820 >> Laisser refroidir. 1344 00:58:04,820 --> 00:58:07,960 Je vais donc rapidement marcher vous les gars à travers ces. 1345 00:58:07,960 --> 00:58:11,120 Alors, les gens ont des tables ASCII tiré vers le haut? 1346 00:58:11,120 --> 00:58:15,645 Quelle est notre numérique nombre de minuscules A? 1347 00:58:15,645 --> 00:58:16,270 ETUDIANT: Seven. 1348 00:58:16,270 --> 00:58:19,420 1349 00:58:19,420 --> 00:58:24,550 >> ALLISON: Donc A est minuscule 97 et A majuscule est de 65 ans. 1350 00:58:24,550 --> 00:58:26,390 Donc, 97 moins de 65 ans? 1351 00:58:26,390 --> 00:58:27,782 1352 00:58:27,782 --> 00:58:28,570 >> Public: 32? 1353 00:58:28,570 --> 00:58:33,260 1354 00:58:33,260 --> 00:58:35,630 >> ALLISON: 62, ouais. 1355 00:58:35,630 --> 00:58:38,675 Donc dans ce cas, ce serait-il imprimer? 1356 00:58:38,675 --> 00:58:40,360 Ce premier? 1357 00:58:40,360 --> 00:58:43,830 Si nous avons pour cent d, qu'est-ce que indiquer? 1358 00:58:43,830 --> 00:58:45,980 1359 00:58:45,980 --> 00:58:46,730 L'ÉLÈVE: Un certain nombre. 1360 00:58:46,730 --> 00:58:48,604 Allison: Nous l'impression à un nombre réel. 1361 00:58:48,604 --> 00:58:50,770 Donc, nous allons en fait imprimer 32 ici. 1362 00:58:50,770 --> 00:58:56,360 Et si cela était pour cent c, 32 Cela nous donnerait un espace. 1363 00:58:56,360 --> 00:58:57,700 1364 00:58:57,700 --> 00:59:01,670 Alors que la compréhension caractères peuvent être imprimées 1365 00:59:01,670 --> 00:59:06,140 tant que le nombre et les personnages réels 1366 00:59:06,140 --> 00:59:11,080 qui est vraiment important, et payant attention aux types réels 1367 00:59:11,080 --> 00:59:12,040 que nous faisons ici. 1368 00:59:12,040 --> 00:59:14,520 1369 00:59:14,520 --> 00:59:15,020 Laisser refroidir. 1370 00:59:15,020 --> 00:59:18,862 Ainsi, pour chaque autre de ceux-ci, qu'allons-nous à l'impression? 1371 00:59:18,862 --> 00:59:19,825 >> L'ÉLÈVE: Un personnage. 1372 00:59:19,825 --> 00:59:20,830 >> ALLISON: Un personnage. 1373 00:59:20,830 --> 00:59:21,330 Laisser refroidir. 1374 00:59:21,330 --> 00:59:24,260 Donc, si vous les gars veulent savoir, vous peut travailler ces sur votre propre. 1375 00:59:24,260 --> 00:59:25,900 Si vous rencontrez des difficultés, envoyez-moi. 1376 00:59:25,900 --> 00:59:28,950 Mais le second sera imprimer un b minuscule. 1377 00:59:28,950 --> 00:59:32,910 Le troisième permet d'imprimer un majuscules B. Le quatrième sera imprimer 1378 00:59:32,910 --> 00:59:36,410 à une majuscule C, et la dernière sera un minuscule A. 1379 00:59:36,410 --> 00:59:42,530 Et la dernière One-- nous allons en fait pour entrer dans ce que fou pour cent 1380 00:59:42,530 --> 00:59:45,020 signe signifie que même dans quelques diapositives. 1381 00:59:45,020 --> 00:59:46,667 Donc, essayez les sur votre propre. 1382 00:59:46,667 --> 00:59:48,500 Si vous avez des problèmes, se il vous plaît venir me parler. 1383 00:59:48,500 --> 00:59:49,655 1384 00:59:49,655 --> 00:59:53,290 Si vous êtes généralement dans Adams salle D, vous me trouverez probablement autour. 1385 00:59:53,290 --> 00:59:54,760 1386 00:59:54,760 --> 00:59:55,760 >> Donc, atoi. 1387 00:59:55,760 --> 00:59:59,660 Combien d'entre vous ont vu ce fonction ou entendu parler du tout? 1388 00:59:59,660 --> 01:00:00,380 1389 01:00:00,380 --> 01:00:00,880 Tout le monde? 1390 01:00:00,880 --> 01:00:02,100 1391 01:00:02,100 --> 01:00:02,600 Laisser refroidir. 1392 01:00:02,600 --> 01:00:06,250 Donc, ce qu'il représente réellement pour ASCII est en entier. 1393 01:00:06,250 --> 01:00:13,150 Donc ce que vous pouvez faire est, avec César, pour ceux qui ont lu la spec, 1394 01:00:13,150 --> 01:00:16,460 vous allez faire point barre César lorsque vous écrivez votre programme, 1395 01:00:16,460 --> 01:00:18,690 et puis vous allez entrée un nombre que vous 1396 01:00:18,690 --> 01:00:24,780 l'encoder votre message secret avec. 1397 01:00:24,780 --> 01:00:30,700 >> Mais, si nous nous rappelons, tout de notre entrées sont stockées sous forme de chaînes. 1398 01:00:30,700 --> 01:00:31,390 Droit? 1399 01:00:31,390 --> 01:00:35,160 Nous avons une gamme v arg voilà tout type string. 1400 01:00:35,160 --> 01:00:37,870 Donc, si vous essayez juste de tirer celui-là, il serait 1401 01:00:37,870 --> 01:00:43,240 penser que celui-là ou peu importe le nombre vous utilisé est en fait un caractère. 1402 01:00:43,240 --> 01:00:45,490 Donc, vous allez obtenir certains résultats folles. 1403 01:00:45,490 --> 01:00:48,200 Donc, si vous voulez vraiment transformer cela en un nombre entier 1404 01:00:48,200 --> 01:00:52,060 que vous pouvez utiliser pour manipuler votre mot ou votre message, 1405 01:00:52,060 --> 01:00:53,366 vous aurez envie d'utiliser atoi. 1406 01:00:53,366 --> 01:00:56,320 atoi convertit seulement votre chaîne en int. 1407 01:00:56,320 --> 01:01:04,530 >> Donc, si nous avons une chaîne de 12, si nous appelons atoi sur 12, ou peu importe ce que l'entrée est, 1408 01:01:04,530 --> 01:01:07,370 il va vraiment revenir vous l'entier. 1409 01:01:07,370 --> 01:01:10,610 Pas le caractère ou la chaîne 12. 1410 01:01:10,610 --> 01:01:14,230 Qui, lorsque vous démarrez à ajouter à ce nombre, 1411 01:01:14,230 --> 01:01:17,710 sera très différent, parce que la chaîne 12 est 1412 01:01:17,710 --> 01:01:21,210 un nombre fou ASCII, mais le nombre entier 12 1413 01:01:21,210 --> 01:01:23,390 est en fait 12, qui est ce que vous voulez. 1414 01:01:23,390 --> 01:01:25,630 Donc, vous voulez vous assurer d'utiliser atoi. 1415 01:01:25,630 --> 01:01:29,203 >> Vous allez vouloir cette en César, parce que vous 1416 01:01:29,203 --> 01:01:32,520 besoin de l'int fourni par le l'utilisateur dans la ligne de commande. 1417 01:01:32,520 --> 01:01:35,230 Mais quand ils l'ont mis dans la commande ligne, il est stocké sous forme de chaîne 1418 01:01:35,230 --> 01:01:35,813 pour commencer. 1419 01:01:35,813 --> 01:01:36,950 1420 01:01:36,950 --> 01:01:38,210 Est-ce logique? 1421 01:01:38,210 --> 01:01:40,590 Vous ne faites pas nécessairement besoin de cela pour Vigenère. 1422 01:01:40,590 --> 01:01:43,180 Avec Vigenère, comme je l'ai dit avant, vous devriez essayer d'utiliser 1423 01:01:43,180 --> 01:01:46,600 ASCII mathématiques qui ressemble plus ce, où que vous êtes réellement 1424 01:01:46,600 --> 01:01:49,320 en utilisant les caractères que nous sommes donné pour vous. 1425 01:01:49,320 --> 01:01:50,970 1426 01:01:50,970 --> 01:01:51,470 Laisser refroidir. 1427 01:01:51,470 --> 01:01:52,970 1428 01:01:52,970 --> 01:01:54,170 Tout le monde il bon? 1429 01:01:54,170 --> 01:01:56,530 1430 01:01:56,530 --> 01:01:57,480 Impressionnant. 1431 01:01:57,480 --> 01:01:59,030 >> Donc modulo. 1432 01:01:59,030 --> 01:02:01,950 Alors que faire si vous êtes donné ce nombre énorme de César? 1433 01:02:01,950 --> 01:02:03,720 1434 01:02:03,720 --> 01:02:07,970 Vous avez cette idée que si vous êtes à Z et vous êtes 1435 01:02:07,970 --> 01:02:11,020 donné un nombre à deux, cela signifie que vous need-- 1436 01:02:11,020 --> 01:02:15,130 Z est le deuxième lettre après lui-même, non? 1437 01:02:15,130 --> 01:02:20,800 Donc, vous avez besoin d'envelopper en quelque sorte autour, et modulo est la façon de le faire. 1438 01:02:20,800 --> 01:02:23,310 Donc, tout ce qu'il fait est-il vous donne le reste 1439 01:02:23,310 --> 01:02:25,660 de la division de la premier nombre par le second. 1440 01:02:25,660 --> 01:02:28,660 Et nous avons quelques exemples à faire un peu plus que le béton. 1441 01:02:28,660 --> 01:02:34,390 Mais fondamentalement, vous utilisez quand vous modulo vouloir faire quelque chose enveloppante. 1442 01:02:34,390 --> 01:02:36,950 >> Donc, si vous voulez seulement le chiffres de un à huit, 1443 01:02:36,950 --> 01:02:39,670 vous pouvez utiliser modulo sur tout autre nombre, et il sera toujours 1444 01:02:39,670 --> 01:02:42,960 retourner un nombre de zéro à huit. 1445 01:02:42,960 --> 01:02:48,750 Ainsi, certains exemples-- si nous avons 55 modulo 10, 1446 01:02:48,750 --> 01:02:55,350 il vous donne juste le reste de 55 divisé par 10, ce qui serait 5. 1447 01:02:55,350 --> 01:02:56,440 1448 01:02:56,440 --> 01:03:02,470 Et puis trois modulo cinq, quelqu'un deviner ce que serait? 1449 01:03:02,470 --> 01:03:03,800 1450 01:03:03,800 --> 01:03:04,300 Trois. 1451 01:03:04,300 --> 01:03:05,570 1452 01:03:05,570 --> 01:03:10,910 >> Donc si vous avez un plus petit nombre avant le modulo, il ne peut pas aller en uniforme. 1453 01:03:10,910 --> 01:03:11,520 Il est égal à zéro. 1454 01:03:11,520 --> 01:03:14,090 Alors elle retourne juste le nombre lui-même. 1455 01:03:14,090 --> 01:03:15,920 Donc, huit modulo huit serait? 1456 01:03:15,920 --> 01:03:16,603 >> L'ÉLÈVE: Zero. 1457 01:03:16,603 --> 01:03:18,350 >> ALLISON: Zero. 1458 01:03:18,350 --> 01:03:20,160 Parce qu'il va en uniforme. 1459 01:03:20,160 --> 01:03:22,095 16 modulo 15? 1460 01:03:22,095 --> 01:03:23,660 >> PUBLIC: Un. 1461 01:03:23,660 --> 01:03:24,700 >> ALLISON: Cool. 1462 01:03:24,700 --> 01:03:29,280 Et puis ce dernier est juste montrer vous-- vous demandez peut-être, OK, 1463 01:03:29,280 --> 01:03:31,800 ce qui est l'ordre des opérations ici? 1464 01:03:31,800 --> 01:03:33,100 Est-ce que nous divisons en premier? 1465 01:03:33,100 --> 01:03:34,570 Avons-nous modulo premier? 1466 01:03:34,570 --> 01:03:38,730 Donc modulo détient la même priorité que la division ou de la multiplication, 1467 01:03:38,730 --> 01:03:39,940 et son associatif gauche. 1468 01:03:39,940 --> 01:03:41,730 Il est donc de la même façon. 1469 01:03:41,730 --> 01:03:46,520 Vous voulez toujours faire parenthèses, puis multiplication, division, 1470 01:03:46,520 --> 01:03:49,570 et modulo dans l'ordre de gauche à droite. 1471 01:03:49,570 --> 01:03:51,050 Donc, les règles standard. 1472 01:03:51,050 --> 01:03:55,260 Il suffit de mettre dans la même catégorie que la division et la multiplication. 1473 01:03:55,260 --> 01:03:59,040 >> Donc dans ce cas, nous le ferions ont une plus 2 nous donne 3. 1474 01:03:59,040 --> 01:04:02,210 Nous multiplions cela par 2, ainsi nous obtenons 6. 1475 01:04:02,210 --> 01:04:05,050 Nous modulo que par 2, ce qui nous donne? 1476 01:04:05,050 --> 01:04:06,042 >> L'ÉLÈVE: 0. 1477 01:04:06,042 --> 01:04:07,430 >> ALLISON: 0. 1478 01:04:07,430 --> 01:04:10,270 Et puis nous ajoutons 2, nous obtenir 2 dans ce dernier cas. 1479 01:04:10,270 --> 01:04:12,080 1480 01:04:12,080 --> 01:04:16,360 Donc modulo-- vous allez certainement penser à des façons d'intégrer 1481 01:04:16,360 --> 01:04:19,520 que lorsque vous envelopper autour de l'alphabet. 1482 01:04:19,520 --> 01:04:24,210 Si vous êtes à Z et vous devez déplacer faire parvenir trois espaces pour se rendre à C, 1483 01:04:24,210 --> 01:04:26,230 il ya que tout le concept d'emballage autour. 1484 01:04:26,230 --> 01:04:28,790 Je vais donc laisser vous les gars à comprendre 1485 01:04:28,790 --> 01:04:31,940 exactement comment vous allez être l'utiliser. 1486 01:04:31,940 --> 01:04:35,660 Mais certainement un outil utile pour votre pset cette semaine. 1487 01:04:35,660 --> 01:04:36,910 1488 01:04:36,910 --> 01:04:37,730 Je l'aime vraiment. 1489 01:04:37,730 --> 01:04:39,480 Ceci est un de mes préférés psets. 1490 01:04:39,480 --> 01:04:41,230 Puis, après vous le faites, si vous avez des amis, 1491 01:04:41,230 --> 01:04:44,146 vous pouvez, comme, envoyer chaque autre secret messages et assurez-vous qu'il fonctionne. 1492 01:04:44,146 --> 01:04:45,695 Parce que ça va décrypter ou autre. 1493 01:04:45,695 --> 01:04:46,710 1494 01:04:46,710 --> 01:04:47,390 Beaucoup de plaisir. 1495 01:04:47,390 --> 01:04:48,840 1496 01:04:48,840 --> 01:04:51,220 >> Et qui est la fin de l'article. 1497 01:04:51,220 --> 01:04:52,430 1498 01:04:52,430 --> 01:04:54,040 Je fini tôt. 1499 01:04:54,040 --> 01:04:57,540 Je dois encore 15 minutes vous les gars, donc si il ya quelque chose 1500 01:04:57,540 --> 01:05:02,180 que vous souhaitez aller plus plus loin, je serais heureux de le faire. 1501 01:05:02,180 --> 01:05:04,340 D'autres questions sur votre pset pour ceux d'entre vous 1502 01:05:04,340 --> 01:05:06,355 qui ont commencé ou lire la spec. 1503 01:05:06,355 --> 01:05:07,870 1504 01:05:07,870 --> 01:05:12,060 Tout ce que nous avons parlé environ dans la dernière heure 1505 01:05:12,060 --> 01:05:16,880 et à 15 minutes que vous souhaitez que je à type de mouture, je serais heureux de le faire. 1506 01:05:16,880 --> 01:05:20,790 Ou nous pouvons en rester là, et vous pouvez tout quitter et de prendre plus de bonbons avec vous 1507 01:05:20,790 --> 01:05:21,650 comme vous allez. 1508 01:05:21,650 --> 01:05:23,719 1509 01:05:23,719 --> 01:05:26,260 Mais si il y persistante questions, se il vous plaît faites le moi savoir. 1510 01:05:26,260 --> 01:05:28,467 Vous pouvez également venir et me parler après. 1511 01:05:28,467 --> 01:05:29,425 Je promets que je ne mords pas. 1512 01:05:29,425 --> 01:05:32,140 1513 01:05:32,140 --> 01:05:32,795 Rien d'autre? 1514 01:05:32,795 --> 01:05:33,890 1515 01:05:33,890 --> 01:05:35,240 Tout le monde est bon? 1516 01:05:35,240 --> 01:05:37,540 Le sentiment de tout le monde comme ils peuvent gérer ce pset? 1517 01:05:37,540 --> 01:05:38,820 1518 01:05:38,820 --> 01:05:42,405 Vous allez être beaux mecs. 1519 01:05:42,405 --> 01:05:43,905 Les heures de bureau sont là pour une raison. 1520 01:05:43,905 --> 01:05:45,930 1521 01:05:45,930 --> 01:05:46,460 Laisser refroidir. 1522 01:05:46,460 --> 01:05:47,020 Très bien. 1523 01:05:47,020 --> 01:05:49,680 >> Eh bien, dans ce cas, merci vous tous d'être venu. 1524 01:05:49,680 --> 01:05:50,940 Je l'espère vous voir la semaine prochaine. 1525 01:05:50,940 --> 01:05:52,120 Il y aura plus de bonbons. 1526 01:05:52,120 --> 01:05:53,495 Il pourrait y avoir d'autres choses cool. 1527 01:05:53,495 --> 01:05:55,010 1528 01:05:55,010 --> 01:05:59,090 Et je me réjouis de faire pour tout savoir de vous cette année. 1529 01:05:59,090 --> 01:06:00,320