1 00:00:00,000 --> 00:00:02,742 >> [Jouer de la musique] 2 00:00:02,742 --> 00:00:05,030 3 00:00:05,030 --> 00:00:09,090 >> ANDI Peng: Ceci est CS50, et bienvenue à deux semaines de l'article. 4 00:00:09,090 --> 00:00:11,740 Ceci est en fait pendant la semaine deux de nos class-- fait, 5 00:00:11,740 --> 00:00:14,550 la première semaine, nous avons eu section. 6 00:00:14,550 --> 00:00:18,897 Vote à main levée, combien d'entre vous tous est venu à la section de super semaine dernière? 7 00:00:18,897 --> 00:00:19,480 OK, qui est OK. 8 00:00:19,480 --> 00:00:20,020 C'est bon. 9 00:00:20,020 --> 00:00:23,110 Combien d'entre vous regardé super-section de la semaine dernière? 10 00:00:23,110 --> 00:00:23,610 D'ACCORD. 11 00:00:23,610 --> 00:00:25,702 Et vous avez fait amende sur un problème posé? 12 00:00:25,702 --> 00:00:28,660 Donc, je vais prendre ce que nous avons une bande de gamins vraiment intelligents 13 00:00:28,660 --> 00:00:32,310 dans cette classe et les choses vont bien. 14 00:00:32,310 --> 00:00:33,180 D'ACCORD. 15 00:00:33,180 --> 00:00:33,980 Donc first-- 16 00:00:33,980 --> 00:00:37,900 17 00:00:37,900 --> 00:00:41,090 >> Premièrement, nous allons juste brièvement aller sur l'ordre du jour pour aujourd'hui. 18 00:00:41,090 --> 00:00:42,700 Nous parlerons de la logistique de cours. 19 00:00:42,700 --> 00:00:45,480 Beaucoup d'entre vous sans doute avez des questions concernant 20 00:00:45,480 --> 00:00:46,920 comment les choses courir dans ce cours. 21 00:00:46,920 --> 00:00:47,897 Nous y répondrons. 22 00:00:47,897 --> 00:00:49,730 Nous allons brièvement aller sur des boucles dans le cas 23 00:00:49,730 --> 00:00:51,410 l'un de vous les gars manqué section de super. 24 00:00:51,410 --> 00:00:53,240 Nous parlerons de la cartographie ASCII. 25 00:00:53,240 --> 00:00:56,180 Nous parlerons de tableaux, fonctions, les arguments de ligne de commande. 26 00:00:56,180 --> 00:01:00,210 Et enfin, ce que vous les gars probablement tous vraiment envie d'être ici pour apprendre, 27 00:01:00,210 --> 00:01:01,270 est votre pset2. 28 00:01:01,270 --> 00:01:04,209 Nous aurons quelques trucs sympathiques et conseils pour savoir comment faire. 29 00:01:04,209 --> 00:01:07,910 30 00:01:07,910 --> 00:01:08,690 >> D'ACCORD. 31 00:01:08,690 --> 00:01:11,450 Aussi, d'autre part, nous avons beaucoup de bonbons ici. 32 00:01:11,450 --> 00:01:13,583 Toute personne qui aime les bonbons, juste de venir ici. 33 00:01:13,583 --> 00:01:14,430 Prenez un peu. 34 00:01:14,430 --> 00:01:15,100 Je ai un tas. 35 00:01:15,100 --> 00:01:16,390 Nous avons une tonne dans le bureau. 36 00:01:16,390 --> 00:01:18,230 Je ne veux pas vraiment à manger des bonbons toute la journée. 37 00:01:18,230 --> 00:01:20,300 Les gars, vous devriez manger tous les bonbons, parce que je l'ai amené ici pour vous les gars. 38 00:01:20,300 --> 00:01:20,990 Il suffit de manger des bonbons. 39 00:01:20,990 --> 00:01:24,080 Il y aura des bonbons chaque section. 40 00:01:24,080 --> 00:01:25,330 >> Alors d'abord, qui suis-je? 41 00:01:25,330 --> 00:01:27,080 Mon nom est Andi Peng. 42 00:01:27,080 --> 00:01:30,270 Je suis le chef de la TA CS50 ici à Yale. 43 00:01:30,270 --> 00:01:32,540 Et, en plus de que, je vais aussi être-- 44 00:01:32,540 --> 00:01:35,600 si quelqu'un like-- votre course copain, votre épaule pour pleurer. 45 00:01:35,600 --> 00:01:39,140 Si la nuit avant l'échéance de votre pset, vous avez aucune idée de ce qui se passe, 46 00:01:39,140 --> 00:01:40,080 Battez moi. 47 00:01:40,080 --> 00:01:42,770 Nous allons apitoyer ensemble, et cetera. 48 00:01:42,770 --> 00:01:46,100 Il suffit de savoir que je suis ici en tant que ressource pour vous que la ligne de front 49 00:01:46,100 --> 00:01:51,830 en vous aidant à comprendre comment les gars pour résoudre les problèmes dans CS50 et au-delà. 50 00:01:51,830 --> 00:01:54,590 >> Mon email est andi.peng@yale.edu. 51 00:01:54,590 --> 00:01:58,390 Je vais aussi envoyer un individu envoyer un email avec mon numéro de téléphone en elle 52 00:01:58,390 --> 00:02:01,860 de telle sorte que tout le monde ne le Internet peut voir mon numéro de téléphone. 53 00:02:01,860 --> 00:02:03,640 Sentez-vous libre de me téléphoner en tout temps. 54 00:02:03,640 --> 00:02:07,510 Sérieusement, mon téléphone est habituellement attachée à ma main. 55 00:02:07,510 --> 00:02:10,240 Je ne peux pas répondre dans quelques minutes. 56 00:02:10,240 --> 00:02:11,984 Je ne peux pas répondre dans quelques heures. 57 00:02:11,984 --> 00:02:14,400 Mais je peux vous garantir, si vous Écrivez-moi, si vous appelez-moi, 58 00:02:14,400 --> 00:02:17,404 texte moi, je vais vous répondre dans les 24 heures. 59 00:02:17,404 --> 00:02:19,820 Souvent, je vais répondre avant que, parce que je comprends 60 00:02:19,820 --> 00:02:23,900 que tout le monde a des problèmes, et vous voulez que vos réponses 61 00:02:23,900 --> 00:02:26,110 une réponse très rapidement. 62 00:02:26,110 --> 00:02:28,945 >> Toutefois, si vous appelez moi 30 minutes avant 63 00:02:28,945 --> 00:02:31,570 ce morceau qui est due jeudi night-- être comme, Andi, aidez-moi, 64 00:02:31,570 --> 00:02:35,380 Je ne l'ai pas started-- je peux donner vous que épaule pour pleurer. 65 00:02:35,380 --> 00:02:41,520 Mais il peut être temps de penser à comment ne pas le faire la prochaine fois. 66 00:02:41,520 --> 00:02:44,040 D'ACCORD. 67 00:02:44,040 --> 00:02:44,944 Oops. 68 00:02:44,944 --> 00:02:45,850 Comment puis-je revenir en arrière? 69 00:02:45,850 --> 00:02:48,140 Nous y voilà. 70 00:02:48,140 --> 00:02:52,310 >> Donc, dans ce cours, nous avons une tonne de soutien pour tout le monde. 71 00:02:52,310 --> 00:02:54,640 En plus juste sections ici, que vous 72 00:02:54,640 --> 00:02:57,000 chaque semaine arrivez à passer 90 merveilleux minutes avec moi, 73 00:02:57,000 --> 00:02:58,330 nous avons aussi les heures de bureau. 74 00:02:58,330 --> 00:03:01,021 Combien d'entre vous ont déjà gars été pour les heures de bureau de l'aide? 75 00:03:01,021 --> 00:03:01,520 Génial. 76 00:03:01,520 --> 00:03:05,700 Voilà vraiment bon de voir, parce que nous disposer d'un personnel de plus de 45 agences de voyages et les CA 77 00:03:05,700 --> 00:03:11,780 formés pour ce cours qui sont ici pour vous aider les gars avec vos psets. 78 00:03:11,780 --> 00:03:14,580 >> Lundi qu'ils ont tenu dans le TEAL salle de classe dans 17 Hill House ici 79 00:03:14,580 --> 00:03:15,350 à Yale. 80 00:03:15,350 --> 00:03:17,349 Les mardis et jeudis, ils sont tenus aux Communes. 81 00:03:17,349 --> 00:03:20,010 8:00-à-11:00 à peu près tous les jours. 82 00:03:20,010 --> 00:03:21,620 Venez, sortir. 83 00:03:21,620 --> 00:03:24,030 Tout problème, pas problem-- vient dans, 84 00:03:24,030 --> 00:03:26,650 et puis nous allons vous aider avec ça. 85 00:03:26,650 --> 00:03:31,640 >> Deuxièmement, en plus de les heures de bureau et des sections, nous avons aussi des shorts. 86 00:03:31,640 --> 00:03:35,930 At-on jamais vu un couple de la shorts ou soluces dans les vidéos 87 00:03:35,930 --> 00:03:36,750 sur le site Internet? 88 00:03:36,750 --> 00:03:37,250 D'ACCORD. 89 00:03:37,250 --> 00:03:39,510 Donc, ils sont vraiment, vraiment utile. 90 00:03:39,510 --> 00:03:42,470 Notre belle production Harvard l'équipe là-bas sur cette école 91 00:03:42,470 --> 00:03:47,910 vers le nord, ils ont filmé et produit ces vidéos soluce incroyables. 92 00:03:47,910 --> 00:03:52,290 >> Ils vont prendre étape par étape à travers comment s'y prendre pour résoudre un problème. 93 00:03:52,290 --> 00:03:56,340 Souvent, si vous êtes confus au sujet un concept simple, un concept singulier, 94 00:03:56,340 --> 00:03:59,780 jetez un oeil, parce que nous avons probablement un court sur quelque part sur notre site Web. 95 00:03:59,780 --> 00:04:03,800 Et il est généralement une grande ressource rechercher quand vous êtes le premier 96 00:04:03,800 --> 00:04:06,510 perdu sur la façon de traiter un problème. 97 00:04:06,510 --> 00:04:09,750 >> Troisièmement, nous avons aussi étude50 et reference50. 98 00:04:09,750 --> 00:04:15,650 Donc étudier 50 sur le site web est juste un lien. 99 00:04:15,650 --> 00:04:21,500 Il est, je pense, study.cs50.net ou quelque chose comme ça. 100 00:04:21,500 --> 00:04:22,860 Il suffit de Google. 101 00:04:22,860 --> 00:04:24,229 Nous avons beaucoup de diapositives préparées. 102 00:04:24,229 --> 00:04:26,770 Nous avons beaucoup de short et choses walkthroughs-- tous compilés 103 00:04:26,770 --> 00:04:31,070 très agréable et soigné pour vous les gars tous de naviguer à travers, voir des concepts 104 00:04:31,070 --> 00:04:32,860 que vous êtes confus au sujet. 105 00:04:32,860 --> 00:04:35,920 Il serait probablement couvert là-bas dans étude50. 106 00:04:35,920 --> 00:04:37,640 >> Reference50-- similaire. 107 00:04:37,640 --> 00:04:41,510 Nous avons beaucoup de différentes notes facilement disponible pour votre disposition. 108 00:04:41,510 --> 00:04:44,450 Et enfin, nous avons ce qu'il est Discutez appelé CS50, 109 00:04:44,450 --> 00:04:48,082 un forum dans lequel, si la nuit avant vous faites vos problèmes, dites, 110 00:04:48,082 --> 00:04:49,880 vous avez une question. 111 00:04:49,880 --> 00:04:52,340 Connectez-vous à CS50 Discutez. 112 00:04:52,340 --> 00:04:53,190 Postez votre question. 113 00:04:53,190 --> 00:04:55,820 Et puis l'un des hundreds-- peut-être, thousands-- des pairs 114 00:04:55,820 --> 00:04:57,960 prenant cette classe en ligne sera connecté. 115 00:04:57,960 --> 00:05:01,182 Et peut-être que quelqu'un peut obtenir votre réponse avant une boîte TA. 116 00:05:01,182 --> 00:05:03,390 Il est essentiellement juste un forum en ligne que nous pouvons tous 117 00:05:03,390 --> 00:05:04,556 utiliser pour discuter de nos problèmes. 118 00:05:04,556 --> 00:05:06,483 C'est cool. 119 00:05:06,483 --> 00:05:10,660 120 00:05:10,660 --> 00:05:11,550 >> D'ACCORD. 121 00:05:11,550 --> 00:05:13,220 Donc problème fixe. 122 00:05:13,220 --> 00:05:17,840 Nous sommes sur le droit de la épaisseur du problème posé deux. 123 00:05:17,840 --> 00:05:20,570 Beaucoup d'entre nous ont déjà lutté à travers un ensemble de problèmes. 124 00:05:20,570 --> 00:05:24,460 Nous savons déjà que attendant peut-être pour la dernière nuit pour faire votre pset 125 00:05:24,460 --> 00:05:28,170 est pas la meilleure chose à faire dans CS50. 126 00:05:28,170 --> 00:05:32,380 >> Conseils et astuces pour l'essentiel succès sont lus toute la spec. 127 00:05:32,380 --> 00:05:36,270 Combien d'entre vous ont déjà lire la spec pour pset 2? 128 00:05:36,270 --> 00:05:36,770 D'ACCORD. 129 00:05:36,770 --> 00:05:39,840 Voilà une quantité solide. 130 00:05:39,840 --> 00:05:43,210 Je sais que vous les gars avez probablement reconnu maintenant les spécifications sont vraiment long. 131 00:05:43,210 --> 00:05:45,700 Ils sont vraiment, vraiment long. 132 00:05:45,700 --> 00:05:49,630 >> Il est vraiment difficile de lire chaque ligne de ce mot avec soin par mot. 133 00:05:49,630 --> 00:05:52,780 Vous voulez vous contentez de l'endroit où il vous dit de faire quelque chose. 134 00:05:52,780 --> 00:05:54,459 Je peux vous garantir, ne faites pas cela. 135 00:05:54,459 --> 00:05:56,750 Si vous faites cela, vous êtes probablement allez rater quelque part 136 00:05:56,750 --> 00:05:58,458 où il vous dit la façon de démarrer un problème 137 00:05:58,458 --> 00:06:01,140 ou il vous dit quoi nom votre problème ou il vous dit, 138 00:06:01,140 --> 00:06:03,720 ce qui est probablement la meilleure façon de commencer à faire votre problème. 139 00:06:03,720 --> 00:06:05,050 Et alors vous serez perdu. 140 00:06:05,050 --> 00:06:08,219 >> Lorsque vous essayez de lire votre spec à mi-parcours, 141 00:06:08,219 --> 00:06:10,510 beaucoup de l'importance information-- en ce que vous n'êtes pas 142 00:06:10,510 --> 00:06:12,260 va être en mesure de vraiment accès. 143 00:06:12,260 --> 00:06:13,219 Alors, lisez l'ensemble spec. 144 00:06:13,219 --> 00:06:15,468 Essayez de lire l'ensemble spec avant de vous rendre à la section, 145 00:06:15,468 --> 00:06:17,360 car alors, lorsque nous parler de la pset, 146 00:06:17,360 --> 00:06:21,070 nous pouvons tous avoir une idée de ce qui se passe. 147 00:06:21,070 --> 00:06:25,169 >> D'autre part, ce concept que je vais aime faire référence 148 00:06:25,169 --> 00:06:26,710 beaucoup au long du semestre de cours. 149 00:06:26,710 --> 00:06:30,070 Mais essentiellement, nous rencontrer à mi-chemin, à droite? 150 00:06:30,070 --> 00:06:33,970 Moi, en tant que votre TA et Jason en cours gestionnaire et Scaz que votre professeur 151 00:06:33,970 --> 00:06:37,120 et David en tant que votre professeur et tous les autres belles AT Dans ce cours, 152 00:06:37,120 --> 00:06:39,830 assistants dans cette course-- nous ferons de notre mieux 153 00:06:39,830 --> 00:06:42,965 vous assurer que vous êtes prêt en place pour réussir dans ce cours. 154 00:06:42,965 --> 00:06:43,840 Nous tiendrons section. 155 00:06:43,840 --> 00:06:44,870 Nous tiendrons les heures de bureau. 156 00:06:44,870 --> 00:06:47,087 Nous allons répondre à votre téléphone appels, répondre à vos e-mails, 157 00:06:47,087 --> 00:06:49,670 faire tout notre possible pour faire vous que vos questions sont répondues. 158 00:06:49,670 --> 00:06:51,460 >> Cependant, nous aider aussi. 159 00:06:51,460 --> 00:06:52,450 Venez nous rencontrer à mi-chemin. 160 00:06:52,450 --> 00:06:56,040 Si vous venez à les heures de bureau ne pas avoir disparu de l'article, pas 161 00:06:56,040 --> 00:07:02,060 avoir vu les conférences, ne pas avoir idée de ce qui se passe, comme, aidez-moi. 162 00:07:02,060 --> 00:07:04,350 Je vais être comme, bien, je suis désolé. 163 00:07:04,350 --> 00:07:06,410 Il peut être temps de prêter cette épaule sur laquelle pleurer, 164 00:07:06,410 --> 00:07:08,959 parce que je ne suis pas sûr ce que je peux faire pour vous aider 165 00:07:08,959 --> 00:07:12,000 si vous ne tentez au moins de l'aide vous un peu au début. 166 00:07:12,000 --> 00:07:12,910 Venez nous rencontrer à mi-chemin. 167 00:07:12,910 --> 00:07:15,020 Vous savez, s'il vous plaît venez prêt à répondre et obtenir 168 00:07:15,020 --> 00:07:16,353 prêt à s'engager dans le matériau. 169 00:07:16,353 --> 00:07:19,342 Cela rend les choses tellement plus facile pour tout le monde. 170 00:07:19,342 --> 00:07:22,970 Ouais, voilà à peu près tout. 171 00:07:22,970 --> 00:07:23,720 >> Classement. 172 00:07:23,720 --> 00:07:29,250 Donc, sur le programme, il est assez en profondeur sur la façon dont nous avons grade. 173 00:07:29,250 --> 00:07:32,440 Mais essentiellement, la répartition dans ce est de 50% de la note 174 00:07:32,440 --> 00:07:34,530 seront les psets, qui est belle, parce que ce 175 00:07:34,530 --> 00:07:37,400 où vous passez la grande majorité de votre temps de parcours sur. 176 00:07:37,400 --> 00:07:39,854 Quiz 40%, et votre projet final sera de 10%. 177 00:07:39,854 --> 00:07:42,520 Il y aura deux questionnaires à travers Au cours du semestre. 178 00:07:42,520 --> 00:07:47,050 Je pense que les heures et les dates sont figure également sur le programme. 179 00:07:47,050 --> 00:07:49,210 >> La façon dont nous allons être titrant vos psets 180 00:07:49,210 --> 00:07:53,930 est que nous avons essentiellement quatre valeurs que nous attribuons à chaque grade. 181 00:07:53,930 --> 00:07:57,250 Nous avons une valeur de champ d'application, l'exactitude, la conception et le style. 182 00:07:57,250 --> 00:08:01,530 Donc, comme vous voyez, ce genre est de notre formule de calcul des psets. 183 00:08:01,530 --> 00:08:03,640 Trois nous donnent le plus poids à l'exactitude, 184 00:08:03,640 --> 00:08:06,140 parce que, évidemment votre coach devrait tester pour les cas 185 00:08:06,140 --> 00:08:08,480 que nous voulons pour tester. 186 00:08:08,480 --> 00:08:11,000 >> Vous les gars avez tous check50 à votre disposition. 187 00:08:11,000 --> 00:08:13,730 Il est une fonction très utile que vous les gars peuvent tous 188 00:08:13,730 --> 00:08:17,560 télécharger votre code pour nos serveurs, où nous allons le vérifier pour vous. 189 00:08:17,560 --> 00:08:20,800 Et vous avez vu ceux frowny visages, visages souriants. 190 00:08:20,800 --> 00:08:22,119 Ils sont vraiment, vraiment utile. 191 00:08:22,119 --> 00:08:23,910 S'il vous plaît ne soyez pas la étudiant qui aiment essais 192 00:08:23,910 --> 00:08:26,230 coder en dur dans tous les réponses pour eux. 193 00:08:26,230 --> 00:08:30,050 Je l'ai certainement vu un pset où quelqu'un a vu toutes les valeurs de check50 194 00:08:30,050 --> 00:08:33,429 et ils ont juste codées en dur, si in-- ce nombre, imprimer ce numéro. 195 00:08:33,429 --> 00:08:35,080 Si ce nombre, imprimer ce numéro. 196 00:08:35,080 --> 00:08:36,090 Ne fais pas ça. 197 00:08:36,090 --> 00:08:39,360 >> Même si, techniquement, check50 est correcte, 198 00:08:39,360 --> 00:08:41,809 votre façon de résoudre le problème est pas correct. 199 00:08:41,809 --> 00:08:45,770 Donc, il suffit d'utiliser check50 avec parcimonie. 200 00:08:45,770 --> 00:08:48,497 Mais aussi vous assurer que vous comprendre comment ça fonctionne, 201 00:08:48,497 --> 00:08:50,580 le programme fonctionne en plus de check50, 202 00:08:50,580 --> 00:08:53,120 parce que nous ne pouvons pas tester tous les possible cas de check50. 203 00:08:53,120 --> 00:08:55,440 Nous allons tester certains d'entre eux. 204 00:08:55,440 --> 00:09:00,390 >> Le design est essentiellement, comment bien conçu est votre code? 205 00:09:00,390 --> 00:09:04,150 Si vous êtes copier-coller multiples lignes de codes de nombreuses fois. 206 00:09:04,150 --> 00:09:06,960 Peut-être que vous ne disposez pas d'assez le meilleur design dans votre code. 207 00:09:06,960 --> 00:09:09,470 Peut-être qu'il est temps d'ajouter cette boucle. 208 00:09:09,470 --> 00:09:12,090 Essentiellement, ici il est juste tout à essayer de faire de votre code, 209 00:09:12,090 --> 00:09:17,010 essayer d'écrire votre code plus efficacement que possible afin que votre programme fonctionne 210 00:09:17,010 --> 00:09:19,630 aussi vite que possible. 211 00:09:19,630 --> 00:09:20,996 >> Enfin, nous avons style. 212 00:09:20,996 --> 00:09:24,360 Donc, le style est une sorte de arbitraires, terme subjectif. 213 00:09:24,360 --> 00:09:27,470 Je sais que nous avons officiellement un guide de style pour 50 CS50, 214 00:09:27,470 --> 00:09:30,050 où il vous dit, oh, devrait avoir un espace ici. 215 00:09:30,050 --> 00:09:32,220 Vous devriez type de format votre code de cette façon. 216 00:09:32,220 --> 00:09:34,070 Vous devriez nommer les choses de cette façon. 217 00:09:34,070 --> 00:09:38,180 >> Je ne me soucie pas vraiment, en soi, comment vous choisissez de style de votre code, 218 00:09:38,180 --> 00:09:39,840 aussi longtemps que vous restez cohérent. 219 00:09:39,840 --> 00:09:43,732 Par exemple, si vous aimez laisser un espace après vos quatre 220 00:09:43,732 --> 00:09:45,690 avant quatre boucle, il suffit de faire que chaque fois. 221 00:09:45,690 --> 00:09:46,523 Ne pas sorte de le faire. 222 00:09:46,523 --> 00:09:47,730 Ne pas le faire d'autres fois. 223 00:09:47,730 --> 00:09:51,046 Si vous voulez garder bouclés accolades espace d'une certaine manière, 224 00:09:51,046 --> 00:09:52,170 juste toujours le faire de cette façon. 225 00:09:52,170 --> 00:09:54,628 Ne pas sorte de le faire quelque part ici et quelque part pas là. 226 00:09:54,628 --> 00:09:57,010 Lorsque nous sommes classement, il est vraiment difficile 227 00:09:57,010 --> 00:09:59,420 si je ne sais pas comment vous formatez votre code, 228 00:09:59,420 --> 00:10:02,064 les choses sont farfelu et hors de propos. 229 00:10:02,064 --> 00:10:04,980 Si vous venez de le garder cohérent, il est beaucoup plus facile pour moi que la plus grande 230 00:10:04,980 --> 00:10:06,310 pour être en mesure de lire votre code. 231 00:10:06,310 --> 00:10:09,393 Il est beaucoup plus facile pour vous comme un étudiant pour être en mesure de regarder à travers votre code 232 00:10:09,393 --> 00:10:11,720 et voir ce qui ne va pas avec il slash pourquoi il ya des problèmes. 233 00:10:11,720 --> 00:10:15,740 Le style est l'une des choses les plus faciles vous les gars peuvent faire pour obtenir des scores complets. 234 00:10:15,740 --> 00:10:18,770 Essentiellement, si vous venez de soins, pourvu que vous payez cinq minutes d'attention 235 00:10:18,770 --> 00:10:22,760 à votre code chaque semaine, vous devriez être obtenir des points de style à part entière. 236 00:10:22,760 --> 00:10:26,020 >> Enfin, nous avons ce qu'on appelle le multiplicateur de portée. 237 00:10:26,020 --> 00:10:28,890 Scope-- Je sais qu'il est un grand mot, surtout dans cette classe. 238 00:10:28,890 --> 00:10:31,030 Mais la portée, tout ce que les moyens est-ce que vous essayez 239 00:10:31,030 --> 00:10:33,670 les psets au meilleur de votre capacité. 240 00:10:33,670 --> 00:10:37,180 Si vous mettez dans trois de vos quatre problèmes 241 00:10:37,180 --> 00:10:39,460 et ne même pas essayer le dernier, vous êtes probablement 242 00:10:39,460 --> 00:10:41,630 va perdre quelques points sur la portée. 243 00:10:41,630 --> 00:10:44,560 >> Même si vous venez de commencer le problème, faire de votre mieux pour marcher à travers elle. 244 00:10:44,560 --> 00:10:47,691 Même si cela ne fonctionne pas, tournez-le dans, parce que montre et démontre 245 00:10:47,691 --> 00:10:50,190 pour nous que vous essayez, que vous avez tenté de régler le problème 246 00:10:50,190 --> 00:10:51,430 au mieux de votre capacité. 247 00:10:51,430 --> 00:10:53,800 Et puis, nous pouvons vous donner la totalité des points de portée. 248 00:10:53,800 --> 00:10:58,715 >> Scope est également très important car lorsque nous parler de la plus faible chute de pointage de pset. 249 00:10:58,715 --> 00:11:02,010 Donc, au cours de la semestre, vous les gars ont neuf psets. 250 00:11:02,010 --> 00:11:05,340 Et nous allons effectivement être à la baisse le score le plus bas sur ces neuf, 251 00:11:05,340 --> 00:11:07,670 mais seulement si vous avez des points de full scope. 252 00:11:07,670 --> 00:11:11,120 >> Donc, si vous tournez dans un pset incomplètes, Malheureusement, nous ne pouvons pas laisser tomber celui-là, 253 00:11:11,120 --> 00:11:13,540 parce que votre portée les points ne sont pas terminées. 254 00:11:13,540 --> 00:11:16,570 Donc, même si vous avez de la semaine terrible où vous mourez et vous êtes malade 255 00:11:16,570 --> 00:11:20,040 ou votre chien meurt, votre chat meurt, et vous êtes surchargé de devoirs, 256 00:11:20,040 --> 00:11:21,074 juste tenter le pset. 257 00:11:21,074 --> 00:11:22,490 Faites-le au mieux de votre capacité. 258 00:11:22,490 --> 00:11:23,840 Si cela ne fonctionne pas, il n'a pas d'importance. 259 00:11:23,840 --> 00:11:24,506 Il suffit de tourner dans. 260 00:11:24,506 --> 00:11:26,590 Au moins, nous pouvons donner vous des points pour l'effort. 261 00:11:26,590 --> 00:11:28,510 >> A pour l'effort dans cette classe. 262 00:11:28,510 --> 00:11:30,170 Au moins la plus basse chute de score pour l'effort. 263 00:11:30,170 --> 00:11:32,354 Donc voilà. 264 00:11:32,354 --> 00:11:33,270 Voilà à peu près tout. 265 00:11:33,270 --> 00:11:36,521 Quelqu'un at-il des questions pour loin sur la façon dont nous avons note de la classe? 266 00:11:36,521 --> 00:11:37,187 Ou l'un de ces? 267 00:11:37,187 --> 00:11:41,220 Tout ces éléments afin far-- les sections, les heures de bureau? 268 00:11:41,220 --> 00:11:41,720 Frais. 269 00:11:41,720 --> 00:11:46,720 270 00:11:46,720 --> 00:11:47,800 D'ACCORD. 271 00:11:47,800 --> 00:11:51,260 >> Donc, cela est un sujet qui ne on aime vraiment parler. 272 00:11:51,260 --> 00:11:53,084 Je ne veux pas vraiment en parler. 273 00:11:53,084 --> 00:11:55,250 Vous les gars ne veulent pas vraiment d'entendre me parler. 274 00:11:55,250 --> 00:11:57,690 Mais malheureusement, nous avons tous avoir à parler à ce sujet. 275 00:11:57,690 --> 00:12:00,110 David a passé 20 minutes par la leçon à en parler. 276 00:12:00,110 --> 00:12:02,580 Et qui fait l'objet d'honnêteté académique. 277 00:12:02,580 --> 00:12:08,110 >> Donc, nous tous ici avons probablement écrit un certain temps d'essai dans notre carrière de Yale. 278 00:12:08,110 --> 00:12:11,800 Nous avons probablement eu un entretien où nous avons été dit de ne pas plagier notre essai, 279 00:12:11,800 --> 00:12:13,940 parce que le travail ne nous appartient pas. 280 00:12:13,940 --> 00:12:18,109 En informatique, nous avons le même genre de concept. 281 00:12:18,109 --> 00:12:20,150 Tout le travail que vous soumettez, tout le code que vous écrivez 282 00:12:20,150 --> 00:12:21,900 devrait être code que vous avez écrit. 283 00:12:21,900 --> 00:12:24,280 Ne devrait pas être le code que vous avez copié d'ailleurs. 284 00:12:24,280 --> 00:12:26,777 Ne devrait pas être le code qui vous ai googlé et se laissa tomber dans 285 00:12:26,777 --> 00:12:28,360 et vous ne savez pas vraiment si cela fonctionne. 286 00:12:28,360 --> 00:12:32,440 Vous sorte de avez un sens de ce qu'il fait, mais pas vraiment. 287 00:12:32,440 --> 00:12:36,562 En cas de doute, essentiellement, il est juste raisonnable. 288 00:12:36,562 --> 00:12:38,520 Sur notre programme, nous avons toute une liste de choses 289 00:12:38,520 --> 00:12:40,560 nous considérons comme raisonnables contre pas raisonnable. 290 00:12:40,560 --> 00:12:43,820 >> Par exemple, raisonnable est vous et votre ami 291 00:12:43,820 --> 00:12:47,360 discuter de ce que la meilleure façon d'aller de résoudre logiquement un problème. 292 00:12:47,360 --> 00:12:48,910 Voilà assez raisonnable. 293 00:12:48,910 --> 00:12:53,244 Quel ne serait pas raisonnable si vous les gars se sont réunis, le même code tapé, 294 00:12:53,244 --> 00:12:54,410 et tourné dans la même position. 295 00:12:54,410 --> 00:12:56,302 Cela ne veut pas raisonnable. 296 00:12:56,302 --> 00:12:57,510 Même chose, une sorte d'essai. 297 00:12:57,510 --> 00:12:59,290 Si vous voulez discuter avec votre ami, hey, 298 00:12:59,290 --> 00:13:00,220 ce que je veux écrire. 299 00:13:00,220 --> 00:13:02,500 Ce sont les étapes que je veux prendre pour écrire à ce sujet, une grande. 300 00:13:02,500 --> 00:13:03,208 C'est magnifique. 301 00:13:03,208 --> 00:13:04,790 S'il vous plaît collaborer avec l'autre. 302 00:13:04,790 --> 00:13:06,540 Si vous mecs commencent écrit la même chose, 303 00:13:06,540 --> 00:13:10,020 tourner dans le même essai, qui est moins OK. 304 00:13:10,020 --> 00:13:13,200 Donc, en cas de doute, il suffit de ne pas le faire. 305 00:13:13,200 --> 00:13:16,940 >> Ici, nous en CS50, nous avons scripts cette course pour automatiser pour tester 306 00:13:16,940 --> 00:13:21,740 non seulement la justesse de votre code, mais aussi le caractère unique de votre code. 307 00:13:21,740 --> 00:13:25,920 Alors s'il vous plaît, ne nous mettez pas dans la position d'avoir à soumettre votre cas au Comité exécutif. 308 00:13:25,920 --> 00:13:31,110 S'il vous plaît juste pour tout le monde, disons juste faire une expérience merveilleuse. 309 00:13:31,110 --> 00:13:33,600 Tout le monde apprend mieux, nous sommes tous heureux, 310 00:13:33,600 --> 00:13:37,926 et nous sommes tous mis à réussir dans ce cours. 311 00:13:37,926 --> 00:13:39,800 Quelque chose qui est très unique au sujet de cette classe 312 00:13:39,800 --> 00:13:42,660 que je pense que chacun devrait vraiment prêter attention à ce que nous avons 313 00:13:42,660 --> 00:13:44,930 ce qu'on appelle le regret clause dans notre programme. 314 00:13:44,930 --> 00:13:50,010 Donc, essentiellement, dans les 72 heures, si vous croyez que vous avez fait quelque chose 315 00:13:50,010 --> 00:13:53,240 vous n'êtes pas vraiment sûr été échéant, s'il vous plaît venir à nous. 316 00:13:53,240 --> 00:13:57,220 Nous vous promettons que dans les 72 heures nous allons traiter le cas nous 317 00:13:57,220 --> 00:13:59,820 sans se référer à un supérieur l'autorité de l'administration. 318 00:13:59,820 --> 00:14:03,100 >> Donc, si vous venez à moi et dites, Andi, hey, je suis vraiment désolé, 319 00:14:03,100 --> 00:14:07,620 mais je pense qu'il ya quelques lignes dans mon Code nuit dernière que je sorte de googlé, 320 00:14:07,620 --> 00:14:10,120 descendu de la pile Débordement, copier et coller, 321 00:14:10,120 --> 00:14:13,680 et je suis vraiment, vraiment désolé à ce sujet, laissez-moi savoir. 322 00:14:13,680 --> 00:14:16,900 S'il vous plaît ne laissez pas simplement pourrir et espère juste que je l'attrape. 323 00:14:16,900 --> 00:14:17,784 Nous allons l'attraper. 324 00:14:17,784 --> 00:14:18,450 Il suffit de venir à moi. 325 00:14:18,450 --> 00:14:20,520 Permettez-moi savoir dans les 72 heures. 326 00:14:20,520 --> 00:14:22,240 Nous allons trouver une solution. 327 00:14:22,240 --> 00:14:26,679 Et nous promettons que nous ne serons pas se référer à autorités universitaires essentiellement. 328 00:14:26,679 --> 00:14:29,220 Donc, il est dans votre meilleur intérêt juste être honnête avec tout le monde 329 00:14:29,220 --> 00:14:31,720 impliqué dans le cours. 330 00:14:31,720 --> 00:14:34,630 >> D'ACCORD. 331 00:14:34,630 --> 00:14:35,240 D'ACCORD. 332 00:14:35,240 --> 00:14:37,800 Alors maintenant, rapidement avant Je passe, personne ne 333 00:14:37,800 --> 00:14:42,670 avez des questions concernant la logistique sur la façon dont les cours que nous allons courir, 334 00:14:42,670 --> 00:14:45,982 comment sections vont à courir, rien de tout cela? 335 00:14:45,982 --> 00:14:46,711 D'ACCORD. 336 00:14:46,711 --> 00:14:47,210 Ouais. 337 00:14:47,210 --> 00:14:48,126 >> AUDIENCE: [inaudible]? 338 00:14:48,126 --> 00:14:50,414 339 00:14:50,414 --> 00:14:51,080 ANDI PENG: Ouais. 340 00:14:51,080 --> 00:14:54,850 Donc quizzes-- combien d'entre vous sont dans la section lundi / mercredi? 341 00:14:54,850 --> 00:14:56,700 Combien d'entre vous sont en mardi / jeudi? 342 00:14:56,700 --> 00:14:58,550 OK, il est donc une fraction de solide ici. 343 00:14:58,550 --> 00:15:00,900 Donc, la façon dont nous gérons il à Yale est que nous 344 00:15:00,900 --> 00:15:04,040 vont avoir deux séparés quizzes-- un pour chaque section-- que 345 00:15:04,040 --> 00:15:06,160 seront prises pendant la classe. 346 00:15:06,160 --> 00:15:09,310 Je pense qu'il est Octobre, fin Octobre, quelque chose comme ça, que la première semaine 347 00:15:09,310 --> 00:15:10,794 du quiz. 348 00:15:10,794 --> 00:15:11,960 Ouais, si juste venir en classe. 349 00:15:11,960 --> 00:15:13,920 En ce lundi ou le mercredi, vous allez prendre le quiz. 350 00:15:13,920 --> 00:15:16,336 Sur ce mardi ou jeudi, vous allez prendre un autre questionnaire. 351 00:15:16,336 --> 00:15:18,570 Mais la même matière sera couverte. 352 00:15:18,570 --> 00:15:19,160 Ouais. 353 00:15:19,160 --> 00:15:20,660 Bonne question. 354 00:15:20,660 --> 00:15:21,160 Ouais. 355 00:15:21,160 --> 00:15:23,260 >> AUDIENCE: où allons-nous aller vérifier nos notes? 356 00:15:23,260 --> 00:15:23,926 >> ANDI PENG: Ouais. 357 00:15:23,926 --> 00:15:28,420 Je vais donc l'envoi d'un e-mail chaque semaine quel que soit 358 00:15:28,420 --> 00:15:31,460 quand quiz sont graded-- ou, Désolé, lorsque psets sont classés. 359 00:15:31,460 --> 00:15:34,120 Psets sont généralement tournés à midi ou vendredi. 360 00:15:34,120 --> 00:15:37,540 Donc, je vous promets que je vais essayer de les récupérer pour vous 361 00:15:37,540 --> 00:15:40,000 par le midi le vendredi suivant. 362 00:15:40,000 --> 00:15:44,950 >> Chaque fois que je note un pset, je vais envoyer une notification sur le carnet de notes 363 00:15:44,950 --> 00:15:47,070 qui vous indique votre score peut être consulté en ligne. 364 00:15:47,070 --> 00:15:52,022 Donc, dès cette semaine, après que je nivellement de finition les psets de la semaine dernière, 365 00:15:52,022 --> 00:15:54,230 vous les gars recevrez un e-mail notification vous le dis, 366 00:15:54,230 --> 00:15:55,870 hey ce est où vous aller voir vos notes. 367 00:15:55,870 --> 00:15:57,680 Et vous pouvez voir tous les répartition de vos qualités. 368 00:15:57,680 --> 00:15:58,555 Vous pouvez voir les commentaires. 369 00:15:58,555 --> 00:16:00,360 Oh, une chose rapide aussi. 370 00:16:00,360 --> 00:16:03,060 La section de commentaire dans la grande livre est où je vais probablement 371 00:16:03,060 --> 00:16:05,300 passer la majorité de mon classement de temps. 372 00:16:05,300 --> 00:16:07,094 Donc, une chose qui est vraiment important quand 373 00:16:07,094 --> 00:16:09,010 vous les gars regardez vos notes sur vos psets 374 00:16:09,010 --> 00:16:11,400 est non seulement à la recherche le score physique 375 00:16:11,400 --> 00:16:14,630 mais aussi prendre le temps de vraiment lu mes commentaires. 376 00:16:14,630 --> 00:16:17,820 >> Souvent, cela vous donne la rétroaction sur la façon dont vous résoudre un problème. 377 00:16:17,820 --> 00:16:20,480 Si vous devez faire quelque chose d'un peu mieux, 378 00:16:20,480 --> 00:16:24,080 critique constructive est généralement meilleure donnée dans ceux section des commentaires. 379 00:16:24,080 --> 00:16:26,950 Alors s'il vous plaît, s'il vous plaît, je vais de passer du temps à écrire des commentaires. 380 00:16:26,950 --> 00:16:30,440 S'il vous plaît, je voudrais vraiment l'apprécier si vous les gars se lirait ces commentaires. 381 00:16:30,440 --> 00:16:31,170 D'ACCORD. 382 00:16:31,170 --> 00:16:34,150 Frais. 383 00:16:34,150 --> 00:16:34,680 >> Bien. 384 00:16:34,680 --> 00:16:40,680 Donc, nous allons commencer à parler et un simple examen rapide 385 00:16:40,680 --> 00:16:45,040 une partie du matériau à partir de semaine zéro juste si nous sommes 386 00:16:45,040 --> 00:16:48,760 sur la bonne page pour à compter les problèmes de cette semaine. 387 00:16:48,760 --> 00:16:52,600 Ainsi, la boucle while est l'un des trois types de boucles 388 00:16:52,600 --> 00:16:54,510 nous avons discuté plus tôt dans cette classe. 389 00:16:54,510 --> 00:16:57,060 >> Une boucle while essentiellement est écrit dans la syntaxe 390 00:16:57,060 --> 00:17:00,666 où, même si une certaine condition, faire cela à plusieurs reprises, à droite? 391 00:17:00,666 --> 00:17:02,040 Pensez-y dans ce graphique ici. 392 00:17:02,040 --> 00:17:04,780 Vous allez commencer à un certain point dans votre code. 393 00:17:04,780 --> 00:17:09,030 Vous allez entrer dans la condition de la boucle si-- Je ne know-- pas x est inférieur à un. 394 00:17:09,030 --> 00:17:11,677 >> Si cela est vrai, vous allez pour exécuter le corps de la boucle. 395 00:17:11,677 --> 00:17:14,010 Et vous allez continuer à faire que de plus, encore une fois, de nouveau, 396 00:17:14,010 --> 00:17:17,900 encore et over-- qui est pourquoi il est un loop-- jusqu'à ce que votre condition devient 397 00:17:17,900 --> 00:17:19,079 faux. 398 00:17:19,079 --> 00:17:22,140 Donc, de cette manière, une boucle while est l'un des moyens plus simples, 399 00:17:22,140 --> 00:17:25,619 pour écrire toute sorte de condition doit répéter encore et encore et encore. 400 00:17:25,619 --> 00:17:28,109 Juste être prudent chaque fois vous écrivez toute sorte de boucle 401 00:17:28,109 --> 00:17:32,140 que vous avez une condition de sortie que ainsi que d'une mise à jour quoi que ce 402 00:17:32,140 --> 00:17:36,714 est afin que votre boucle ne pas seulement courir encore et encore infiniment. 403 00:17:36,714 --> 00:17:38,630 En tout cas, vous allez à vouloir faire en sorte 404 00:17:38,630 --> 00:17:42,670 que vous décidez de changer certains aspects de votre code ou à la fin de la boucle 405 00:17:42,670 --> 00:17:46,680 juste pour vous assurer que vous avez un moyen de progresser vers l'état 406 00:17:46,680 --> 00:17:48,400 que vous voulez rencontrer à la fin. 407 00:17:48,400 --> 00:17:50,239 Est-ce que de sens pour tout le monde? 408 00:17:50,239 --> 00:17:52,530 Nous ne voulons pas être pris dans cette spirale où 409 00:17:52,530 --> 00:17:55,710 nous allons autour et autour et il n'y a pas moyen de briser la boucle. 410 00:17:55,710 --> 00:17:58,844 Et chaque boucle essentiellement a une façon de le faire. 411 00:17:58,844 --> 00:17:59,344 D'ACCORD. 412 00:17:59,344 --> 00:18:03,030 413 00:18:03,030 --> 00:18:06,060 >> Deuxièmement, beaucoup d'entre vous dans vos psets Mario 414 00:18:06,060 --> 00:18:08,910 probablement dû employer ce type de boucle. 415 00:18:08,910 --> 00:18:11,802 Il est appelé une boucle Do While. 416 00:18:11,802 --> 00:18:14,510 Tout d'abord, quelqu'un peut me dire quelle est la différence entre une do 417 00:18:14,510 --> 00:18:16,586 tout en boucle et une boucle while est? 418 00:18:16,586 --> 00:18:17,086 Ouais. 419 00:18:17,086 --> 00:18:21,030 >> PUBLIC: La boucle Do While fonctionne à la première [inaudible]. 420 00:18:21,030 --> 00:18:22,120 >> ANDI PENG: Oui, exactement. 421 00:18:22,120 --> 00:18:27,130 Ainsi, une boucle Do While fait toujours quelque est à l'intérieur du do, l'intérieur des crochets 422 00:18:27,130 --> 00:18:30,520 il et fait cette condition avant de vérifier the-- désolé, 423 00:18:30,520 --> 00:18:32,940 est-ce que le code avant la vérification de la condition. 424 00:18:32,940 --> 00:18:37,200 Et ce qui est particulièrement pertinent pour nous ici, dans cette classe, parce que la plupart du temps 425 00:18:37,200 --> 00:18:41,450 nous allons vouloir inciter l'utilisateur pour une sorte de saisie. 426 00:18:41,450 --> 00:18:43,520 Et puis, en fonction de l'entrée qu'ils nous donnent, 427 00:18:43,520 --> 00:18:46,150 alors nous pouvons évaluer, oh, faire nous devons les inciter à nouveau? 428 00:18:46,150 --> 00:18:49,930 >> Donc, dans Mario, si l'utilisateur vous a donné une hauteur négative, par exemple, 429 00:18:49,930 --> 00:18:52,990 vous allez première invite et à faire tout ce qui est à l'intérieur. 430 00:18:52,990 --> 00:18:54,820 Ensuite, vous allez vérifier tout. 431 00:18:54,820 --> 00:18:57,570 Vous le savez, est négatif 1, est-ce un nombre positif? 432 00:18:57,570 --> 00:19:00,680 Si il est pas, je vais aller en arrière et recommencer à faire et à répétition 433 00:19:00,680 --> 00:19:03,950 et répéter et répéter jusqu'à ce qu'ils enfin vous donner un numéro que vous aimez, 434 00:19:03,950 --> 00:19:07,002 que nous pouvons tous utiliser dans notre code. 435 00:19:07,002 --> 00:19:09,210 Il est assez important pour essentiellement toute entrée d'utilisateur. 436 00:19:09,210 --> 00:19:11,760 Je peux vous garantir tout temps dans un pset où 437 00:19:11,760 --> 00:19:15,070 nous vous demandons d'entrée toute sorte de code, nous sommes 438 00:19:15,070 --> 00:19:17,540 probablement vais vous donner un cas de test dans lequel nous sommes 439 00:19:17,540 --> 00:19:21,200 va vous donner quelque chose de mauvais qui est va essayer de casser votre code. 440 00:19:21,200 --> 00:19:25,044 >> Si nous essayons de vous demander de saisir un entier, nous pouvons vous donner une chaîne 441 00:19:25,044 --> 00:19:26,460 et voyez comment vous gérer cela. 442 00:19:26,460 --> 00:19:30,610 Si nous vous demandons d'employer un âge, nous pouvons vous donner un nombre négatif 443 00:19:30,610 --> 00:19:32,340 pour voir comment vous gérer cela. 444 00:19:32,340 --> 00:19:37,260 Assurez-vous les gars testons cas où vous ne recevez pas le meilleur 445 00:19:37,260 --> 00:19:38,590 entrée, disons simplement. 446 00:19:38,590 --> 00:19:40,510 Et une boucle Do While est souvent le meilleur 447 00:19:40,510 --> 00:19:45,260 façon de concevoir votre code afin qu'il répond à ce champ d'application. 448 00:19:45,260 --> 00:19:45,760 D'ACCORD. 449 00:19:45,760 --> 00:19:48,930 450 00:19:48,930 --> 00:19:49,470 >> D'ACCORD. 451 00:19:49,470 --> 00:19:53,270 Donc, ce qui est probablement le plus boucle complexe de trois 452 00:19:53,270 --> 00:19:54,990 que nous avons examiné jusqu'ici. 453 00:19:54,990 --> 00:19:56,689 Et il semble très effrayant au premier abord. 454 00:19:56,689 --> 00:19:59,730 Mais je vous garantis, une fois que vous les gars obtenez le coup de la façon d'utiliser une boucle for, 455 00:19:59,730 --> 00:20:03,320 il est l'une des choses les plus utiles, la plupart des outils utiles dans votre arsenal 456 00:20:03,320 --> 00:20:05,300 pour aller de l'avant dans cette classe. 457 00:20:05,300 --> 00:20:09,920 >> Ainsi, par exemple, dans Scratch, nous avons eu ce bloc très simple 458 00:20:09,920 --> 00:20:13,180 qui vient d'être dit répétez cette certaine phrases certain nombre de fois. 459 00:20:13,180 --> 00:20:16,260 Soit dit en passant, SAJ-- que ce Scaz Andi Jason. 460 00:20:16,260 --> 00:20:18,740 Nous signons souvent notre emails SAJ. 461 00:20:18,740 --> 00:20:20,360 Si nous disons SAJ, ne soyez pas confus. 462 00:20:20,360 --> 00:20:22,630 Voilà que nous. 463 00:20:22,630 --> 00:20:28,600 >> Donc dans Scratch, nous avons pu avoir un bloc qui a dit, répétez I love SAJ! 464 00:20:28,600 --> 00:20:29,430 10 fois. 465 00:20:29,430 --> 00:20:30,130 Très simple. 466 00:20:30,130 --> 00:20:32,302 La logique qui est une très, très simple, non? 467 00:20:32,302 --> 00:20:35,260 Je veux d'abord passer par la première le temps et de voir que, pour la deuxième fois 468 00:20:35,260 --> 00:20:38,510 et de voir que, la troisième fois, etc. et ainsi de suite, jusqu'à ce que vous frappez à 10. 469 00:20:38,510 --> 00:20:41,960 >> Et la façon dont nous représenterait que, dans code est simplement par une simple boucle. 470 00:20:41,960 --> 00:20:45,440 Donc, pour, vous allez déclarer votre variable ici, dans ce cas, 471 00:20:45,440 --> 00:20:46,349 int. 472 00:20:46,349 --> 00:20:47,390 Nous allons nommer i. 473 00:20:47,390 --> 00:20:49,500 Nous allons de l'initialiser à 0. 474 00:20:49,500 --> 00:20:52,490 Et l'édition d'arrêt est va être i est inférieur à 10. 475 00:20:52,490 --> 00:20:54,622 Et la mise à jour va être i ++. 476 00:20:54,622 --> 00:20:57,750 >> Et dans la boucle, ça va pour exécuter jusqu'à ce que finalement il 477 00:20:57,750 --> 00:21:01,490 frappe l'extrémité de la condition-- dans laquelle cas, il va se casser la boucle. 478 00:21:01,490 --> 00:21:04,600 Il devrait y avoir des choses que vous les gars ont tout type de vu avant 479 00:21:04,600 --> 00:21:07,270 et a dû faire pour votre problème réglé un. 480 00:21:07,270 --> 00:21:12,310 Quelqu'un at-il des questions en ce qui concerne les boucles en ce moment? 481 00:21:12,310 --> 00:21:12,930 D'ACCORD. 482 00:21:12,930 --> 00:21:13,430 Génial. 483 00:21:13,430 --> 00:21:17,520 484 00:21:17,520 --> 00:21:18,620 >> D'ACCORD. 485 00:21:18,620 --> 00:21:22,270 Donc, pour ceux d'entre vous qui ont lire la spec pset pour cette semaine 486 00:21:22,270 --> 00:21:27,690 savons que nous allons avoir à employer quelque chose appelé ASCII et table ASCII. 487 00:21:27,690 --> 00:21:32,380 Alors David en conférence passa brièvement comment le tout de l'informatique 488 00:21:32,380 --> 00:21:35,410 est codé dans un ordinateur binaire, en zéros et de uns. 489 00:21:35,410 --> 00:21:39,740 Et la façon dont les ordinateurs sont capables pour stocker des valeurs différentes en plus 490 00:21:39,740 --> 00:21:44,360 de zéros et de uns sont grâce à la cartographie ces chiffres représentent d'autres chiffres 491 00:21:44,360 --> 00:21:47,220 ou essentiellement les autres personnages. 492 00:21:47,220 --> 00:21:49,810 >> Donc dans ce cas, un ASCII table-- tout ce qu'il fait 493 00:21:49,810 --> 00:21:53,600 est la carte des caractères ou des chars, à des numéros. 494 00:21:53,600 --> 00:21:57,385 Ainsi, le fichier de code source dans votre computer-- qu'il voit, 495 00:21:57,385 --> 00:22:00,010 hey, un tas de zéros et de uns, zéros et de uns, zéros et de uns. 496 00:22:00,010 --> 00:22:02,350 Voilà ce que stocké dans le mémoire réelle de votre ordinateur. 497 00:22:02,350 --> 00:22:04,750 >> Mais quand nous, les humains veulent communiquer avec l'ordinateur, 498 00:22:04,750 --> 00:22:08,249 nous want-- disons, par exemple, si je veux la majuscule, 499 00:22:08,249 --> 00:22:10,540 Je vais avoir besoin d'une certaine façon de dire à l'ordinateur, oh, 500 00:22:10,540 --> 00:22:16,300 quand je tape A majuscule, je veux dire cette représentation en binaire. 501 00:22:16,300 --> 00:22:22,260 >> Et la façon dont nous faisons cela est jeté une chose arbitraire appelé une table ASCII, 502 00:22:22,260 --> 00:22:25,020 où nous, en tant qu'êtres humains, en tant que programmeurs, il ya quelque temps, 503 00:22:25,020 --> 00:22:28,660 nous avons arbitrairement décidé que nous allaient les affecter nombre 504 00:22:28,660 --> 00:22:30,960 des valeurs à ces caractères. 505 00:22:30,960 --> 00:22:32,720 >> Alors vous les gars pouvez google cette ligne. 506 00:22:32,720 --> 00:22:37,120 Je pense qu'il ya un lien vers elle dans votre pset-- juste une table ASCII carte, ASCII 507 00:22:37,120 --> 00:22:37,720 table. 508 00:22:37,720 --> 00:22:40,722 Il traduit simplement binaire numéros en caractères. 509 00:22:40,722 --> 00:22:42,930 Et ça va être très utile pour votre jeu de problème 510 00:22:42,930 --> 00:22:45,470 chaque fois que vous voulez calculer quoi que ce soit ou si vous 511 00:22:45,470 --> 00:22:47,880 vouloir afficher certaine des caractères ou des nombres entiers 512 00:22:47,880 --> 00:22:50,327 ou manipuler certains caractères. 513 00:22:50,327 --> 00:22:52,160 Ça va être très important que vous tous 514 00:22:52,160 --> 00:22:55,140 savoir comment naviguer dans une table ASCII. 515 00:22:55,140 --> 00:23:01,260 >> Ainsi, par exemple, la majuscule est représenté par le numéro 65. 516 00:23:01,260 --> 00:23:04,207 Et l'un minuscule est représenté par 97. 517 00:23:04,207 --> 00:23:07,040 Donc, il est important de savoir que le différence entre les deux valeurs 518 00:23:07,040 --> 00:23:08,320 est 32. 519 00:23:08,320 --> 00:23:13,210 Souvent, si vous avez besoin de convertir à partir de une à l'autre, la différence est 32. 520 00:23:13,210 --> 00:23:15,710 Et ne vous inquiétez pas si vous êtes un peu confus sur ce au premier abord. 521 00:23:15,710 --> 00:23:20,230 Nous allons revenir sur la façon dont nous le ferions employer cette réelle dans le code. 522 00:23:20,230 --> 00:23:24,700 523 00:23:24,700 --> 00:23:26,380 >> D'ACCORD. 524 00:23:26,380 --> 00:23:30,770 Donc, pour ceux d'entre vous avec les ordinateurs portables, à la hésitez pas à tirer vers le haut une table ASCII, 525 00:23:30,770 --> 00:23:36,030 parce que ce sera probablement vous les gars exigent de référencer 526 00:23:36,030 --> 00:23:38,100 ce que les personnages sont. 527 00:23:38,100 --> 00:23:38,640 D'ACCORD. 528 00:23:38,640 --> 00:23:42,840 >> Donc, sachant que certains caractères correspondent à certains numéros, 529 00:23:42,840 --> 00:23:47,240 si je devais courir juste la première ligne de ce code-- printf un, 530 00:23:47,240 --> 00:23:50,900 un minuscule, moins majuscules A. Quelqu'un 531 00:23:50,900 --> 00:23:55,880 avoir une conjecture sur ce que serait impression sur l'écran en ce moment? 532 00:23:55,880 --> 00:23:58,190 >> Alors tout d'abord, qu'est-ce que minuscules représentent un? 533 00:23:58,190 --> 00:24:00,990 Quel est le numéro que codée dans la table ASCII. 534 00:24:00,990 --> 00:24:01,490 Pardon? 535 00:24:01,490 --> 00:24:02,630 >> AUDIENCE: 97? 536 00:24:02,630 --> 00:24:03,630 >> PENG ANDI: 97, grande. 537 00:24:03,630 --> 00:24:05,077 Et ce qui est majuscule? 538 00:24:05,077 --> 00:24:06,330 >> AUDIENCE: 65. 539 00:24:06,330 --> 00:24:08,255 >> ANDI PENG: Donc, ce qui est 97 moins de 65 ans? 540 00:24:08,255 --> 00:24:09,227 >> AUDIENCE: 32. 541 00:24:09,227 --> 00:24:09,810 ANDI PENG: OK. 542 00:24:09,810 --> 00:24:13,530 Alors qu'est-ce que vous en pensez va arrivera quand je entrée cette ligne de code 543 00:24:13,530 --> 00:24:14,670 dans mon ordinateur? 544 00:24:14,670 --> 00:24:17,981 545 00:24:17,981 --> 00:24:19,896 >> AUDIENCE: [inaudible]. 546 00:24:19,896 --> 00:24:21,020 ANDI PENG: Désolé, parler. 547 00:24:21,020 --> 00:24:22,520 Pas de soucis. 548 00:24:22,520 --> 00:24:25,750 Ceci est une très sûr environnement, moins l'appareil photo. 549 00:24:25,750 --> 00:24:27,550 Nous allons tous to-- pas de soucis. 550 00:24:27,550 --> 00:24:30,940 Juste nous allons tous faire comme il est juste nous détendre dans cette chambre. 551 00:24:30,940 --> 00:24:31,480 Pas de soucis. 552 00:24:31,480 --> 00:24:33,410 Aucune question est trop stupide. 553 00:24:33,410 --> 00:24:35,300 Pas de réponse est une réponse stupide. 554 00:24:35,300 --> 00:24:38,260 Je vais probablement faire des erreurs dans le cadre de mon enseignement. 555 00:24:38,260 --> 00:24:40,740 Sérieusement, les gars, juste laisser échapper. 556 00:24:40,740 --> 00:24:43,092 Ayez confiance en vous, vous le savez? 557 00:24:43,092 --> 00:24:43,800 Donc, ce que était-ce? 558 00:24:43,800 --> 00:24:47,990 Qui a dit que la dernière réponse? 559 00:24:47,990 --> 00:24:48,540 D'ACCORD. 560 00:24:48,540 --> 00:24:50,380 Shout que agréable et claire. 561 00:24:50,380 --> 00:24:51,220 >> AUDIENCE: 32? 562 00:24:51,220 --> 00:24:51,850 >> PENG ANDI: 32. 563 00:24:51,850 --> 00:24:54,141 OK, nous allons exécuter ce code et voir si cela est ce qui arrive. 564 00:24:54,141 --> 00:25:00,260 565 00:25:00,260 --> 00:25:00,760 D'ACCORD. 566 00:25:00,760 --> 00:25:03,300 567 00:25:03,300 --> 00:25:06,360 Donc, comme vous pouvez genre de gars voir, la notation typique je l'ai 568 00:25:06,360 --> 00:25:12,250 mettre en place ici pour la façon dont nous pourrions employer toute sorte de programme dans notre ordinateur. 569 00:25:12,250 --> 00:25:14,770 Nous avons notre fonction principale au sein de notre fonction principale. 570 00:25:14,770 --> 00:25:17,265 Je vais juste copier et coller cette ligne de code. 571 00:25:17,265 --> 00:25:21,082 572 00:25:21,082 --> 00:25:23,540 Aussi soyez prudent lorsque vous les gars copiez et collez le code. 573 00:25:23,540 --> 00:25:28,750 Parfois, certains opérateurs ne pas coller plus correctement. 574 00:25:28,750 --> 00:25:31,397 Dans ce cas, le moins signe était en fait un tableau de bord. 575 00:25:31,397 --> 00:25:32,980 Et si l'ordinateur n'a pas le ramasser. 576 00:25:32,980 --> 00:25:35,870 Donc je devais revenir en arrière et retaper physiquement que. 577 00:25:35,870 --> 00:25:37,846 Juste être prudent lorsque vous les gars font. 578 00:25:37,846 --> 00:25:41,178 579 00:25:41,178 --> 00:25:42,660 >> D'ACCORD. 580 00:25:42,660 --> 00:25:43,980 Nous allons exécuter ce ici. 581 00:25:43,980 --> 00:25:45,670 Donc, nous allons au CD dans notre section2. 582 00:25:45,670 --> 00:25:50,470 583 00:25:50,470 --> 00:25:52,030 Je l'ai appelé ce programme asciimath. 584 00:25:52,030 --> 00:25:55,690 Alors rappelez-vous, quand nous courons tout programme, nous voulons d'abord compiler 585 00:25:55,690 --> 00:25:57,150 en l'exécutant à travers notre marque. 586 00:25:57,150 --> 00:26:00,030 Et puis nous voulons réellement fonctionner le programme en faisant point-barre. 587 00:26:00,030 --> 00:26:01,280 Nous allons donc ./asciimath. 588 00:26:01,280 --> 00:26:05,780 589 00:26:05,780 --> 00:26:06,590 >> Droite, là nous allons. 590 00:26:06,590 --> 00:26:07,410 Et nous voyons 32. 591 00:26:07,410 --> 00:26:07,930 Bien joué. 592 00:26:07,930 --> 00:26:10,340 Vous méritez un bonbon. 593 00:26:10,340 --> 00:26:11,160 Candy pour vous. 594 00:26:11,160 --> 00:26:11,900 Pardon. 595 00:26:11,900 --> 00:26:13,100 Bien. 596 00:26:13,100 --> 00:26:13,670 D'ACCORD. 597 00:26:13,670 --> 00:26:18,070 Donc, nous pouvons revenir à notre exemple. 598 00:26:18,070 --> 00:26:23,530 599 00:26:23,530 --> 00:26:24,345 Aah, non. 600 00:26:24,345 --> 00:26:29,147 601 00:26:29,147 --> 00:26:31,090 Aah. 602 00:26:31,090 --> 00:26:32,490 D'ACCORD. 603 00:26:32,490 --> 00:26:34,610 Je vais garder ça comme ça. 604 00:26:34,610 --> 00:26:48,520 605 00:26:48,520 --> 00:26:51,240 D'ACCORD. 606 00:26:51,240 --> 00:26:51,740 D'ACCORD. 607 00:26:51,740 --> 00:26:55,340 Donc, comme vous les gars pouvez le voir, nous pouvons faire beaucoup de choses très intéressantes, 608 00:26:55,340 --> 00:26:58,880 beaucoup de choses très cool, beaucoup de des choses très complexes impliquant 609 00:26:58,880 --> 00:27:02,720 Caractères ASCII et des numéros. 610 00:27:02,720 --> 00:27:05,890 Une fois que vous descendez à la ligne de cinq, ça fait beaucoup à suivre. 611 00:27:05,890 --> 00:27:07,640 On ne va pas aller à travers la section. 612 00:27:07,640 --> 00:27:10,720 Sentez-vous libre pour, si vous le pouvez, raisonner sur papier 613 00:27:10,720 --> 00:27:14,750 d'abord sur ce qui devrait se produire lorsque vous entrée telle une chaîne de valeurs. 614 00:27:14,750 --> 00:27:19,720 Par exemple, en ce que la dernière ligne, nous avons Z- qui représente un certain number-- 615 00:27:19,720 --> 00:27:24,740 a-- qui représente aussi un certains number-- plus 1 modulo 26 616 00:27:24,740 --> 00:27:26,750 en plus minuscules d'un. 617 00:27:26,750 --> 00:27:29,220 >> Si vous les gars continuez à lire grâce à eux, vous 618 00:27:29,220 --> 00:27:34,009 peut voir un modèle venu dans comment nous manipuler le code. 619 00:27:34,009 --> 00:27:36,050 Je recommande vivement, suggère fortement après l'article vous tous 620 00:27:36,050 --> 00:27:38,160 les gars allez-y et entrée ceux tout dans votre ordinateur 621 00:27:38,160 --> 00:27:40,060 et voir quel genre de numéros sortent 622 00:27:40,060 --> 00:27:43,090 et raisonnement pourquoi ceux qui sont passe, parce que pour vos psets 623 00:27:43,090 --> 00:27:45,060 ça va être vraiment important pour vous de comprendre 624 00:27:45,060 --> 00:27:47,132 pourquoi certaines choses se produisent. 625 00:27:47,132 --> 00:27:48,590 Tous ces diapositives seront en ligne. 626 00:27:48,590 --> 00:27:51,510 Donc pas de soucis à essayer de physiquement copier des notes. 627 00:27:51,510 --> 00:27:52,510 La ligne de tout. 628 00:27:52,510 --> 00:27:54,050 Cette section sera lui-même en ligne. 629 00:27:54,050 --> 00:27:57,500 Tout mon code source Je courais sera en ligne. 630 00:27:57,500 --> 00:27:58,180 Ouais. 631 00:27:58,180 --> 00:27:59,430 Avez-vous avez encore une question? 632 00:27:59,430 --> 00:28:00,587 Public: Quel est modulos? 633 00:28:00,587 --> 00:28:01,170 ANDI PENG: OK. 634 00:28:01,170 --> 00:28:05,620 Donc modulo est un opérateur qui va être assez important pour le pset de vos gars 635 00:28:05,620 --> 00:28:06,690 Ici. 636 00:28:06,690 --> 00:28:12,280 Ainsi, la manière que les opérateurs en C et en travail de programmation 637 00:28:12,280 --> 00:28:16,360 est que vous avez ce qu'on appelle la symbole de division et le symbole de module, 638 00:28:16,360 --> 00:28:18,350 qui est comme le signe pour cent. 639 00:28:18,350 --> 00:28:24,840 >> Donc, dans C, quand vous faites un nombre entier divisé par un nombre entier avec une barre oblique, 640 00:28:24,840 --> 00:28:27,720 C a tendance à vouloir couper désactiver tous les points décimaux, 641 00:28:27,720 --> 00:28:30,290 car un nombre entier veut de se convertir à un nombre entier. 642 00:28:30,290 --> 00:28:33,550 Il ne va pas vouloir être un double avec un tas de décimales après tout il. 643 00:28:33,550 --> 00:28:39,322 >> Donc, si je fais 3 divisé par 2, ça va pour couper le 0,5 et juste vous donner 1. 644 00:28:39,322 --> 00:28:41,530 Voilà donc de quoi être très prudent lorsque vous êtes 645 00:28:41,530 --> 00:28:45,294 faire toute sorte de mathématiques dans la programmation, est que les chiffres que vous obtenez 646 00:28:45,294 --> 00:28:47,210 peut-être pas les numéros que vous pensiez, 647 00:28:47,210 --> 00:28:50,190 ce qui explique pourquoi l'arrondissement dans votre pset dernière est si important. 648 00:28:50,190 --> 00:28:51,980 >> Modulo vous donne le reste. 649 00:28:51,980 --> 00:28:56,200 Ainsi, par exemple, si je faisais 3 modulo 2-- donc 3 pour cent signe 2-- 650 00:28:56,200 --> 00:28:58,020 cela vous donnerait le reste de cette. 651 00:28:58,020 --> 00:29:00,460 Donc 3 est divisé par 2 à 1,5. 652 00:29:00,460 --> 00:29:01,410 Il est 1 reste de 1. 653 00:29:01,410 --> 00:29:04,600 Ce serait vous donner la 1, qui est le reste de la. 654 00:29:04,600 --> 00:29:07,361 >> Alors, quand vous les gars se déplacent à travers la table ASCII, 655 00:29:07,361 --> 00:29:09,735 modulo finira par être quelque chose qui est très important, 656 00:29:09,735 --> 00:29:11,240 et nous en parlerons plus tard. 657 00:29:11,240 --> 00:29:17,750 658 00:29:17,750 --> 00:29:19,040 >> D'ACCORD. 659 00:29:19,040 --> 00:29:27,300 Donc, quelque chose qui est assez, assez nouveau et assez unique 660 00:29:27,300 --> 00:29:31,920 que nous avons discuté de cette semaine est la notion de ce qu'est un tableau. 661 00:29:31,920 --> 00:29:34,370 Donc tableau est le premier type de structure de données 662 00:29:34,370 --> 00:29:36,320 que nous allons rencontrer dans cette classe. 663 00:29:36,320 --> 00:29:40,010 Toutes structure de données est est une sorte de arbitraires, 664 00:29:40,010 --> 00:29:43,370 littéralement des choses comme la structure que nous, les programmeurs ont créé, 665 00:29:43,370 --> 00:29:47,890 que nous avons mis dans notre code qui peut contenir d'autres morceaux de code. 666 00:29:47,890 --> 00:29:51,090 >> Donc, dans ce sens, une array-- penser comme un classeur, 667 00:29:51,090 --> 00:29:53,470 où si vous ouvrez différente étagères de votre classeur, 668 00:29:53,470 --> 00:29:55,630 vous pouvez accéder à des choses différentes. 669 00:29:55,630 --> 00:29:58,630 Dans la mémoire, un tableau est juste de faire la même chose sur votre ordinateur. 670 00:29:58,630 --> 00:30:01,730 Vous pouvez avoir différents nous blocks-- appeler indices-- d'un tableau. 671 00:30:01,730 --> 00:30:04,210 Il est comme un bloc, un plateau de mémoire 672 00:30:04,210 --> 00:30:07,580 que nous avons créé au sein de votre ordinateur que vous pouvez saisir 673 00:30:07,580 --> 00:30:10,270 certaines choses dans différents espaces. 674 00:30:10,270 --> 00:30:18,000 >> Donc, avec un tableau, vous avoir toujours specify-- 675 00:30:18,000 --> 00:30:22,360 vous devez spécifier déclarant tableau dans le format suivant. 676 00:30:22,360 --> 00:30:24,290 Vous allez d'abord spécifier le type de données 677 00:30:24,290 --> 00:30:25,831 que vous voulez créer de la matrice. 678 00:30:25,831 --> 00:30:28,870 Si je veux un tableau d'entiers, Je vais mettre int là. 679 00:30:28,870 --> 00:30:32,079 Si je veux un tableau de chaînes, Je vais mettre des cordes là, 680 00:30:32,079 --> 00:30:34,995 le nom de votre choix, puis vous allez avoir crochets. 681 00:30:34,995 --> 00:30:39,580 Et à l'intérieur des crochets, vous êtes allez avoir la taille de votre tableau. 682 00:30:39,580 --> 00:30:42,900 >> Quelque chose qui est vraiment important pour garder à l'esprit lors de la création des tableaux est 683 00:30:42,900 --> 00:30:46,530 que, une fois que vous créez un tableau, que la taille ne peut pas changer. 684 00:30:46,530 --> 00:30:50,180 Donc, si vous savez que dès maintenant vous avez un tableau de taille 10, 685 00:30:50,180 --> 00:30:54,550 vous savez que je vais avoir 10 cellules 10 à l'intérieur ou au sein de ce réseau d'indices, 686 00:30:54,550 --> 00:30:56,830 et il ne va jamais d'étendre ou de diminuer 687 00:30:56,830 --> 00:30:59,850 peu importe quoi, et qu'il ya Actuellement seulement 10 blocs d'espace 688 00:30:59,850 --> 00:31:04,490 alloué dans votre mémoire pouvant stocker jusqu'à 10 choses que vous avez ajoutés. 689 00:31:04,490 --> 00:31:08,790 >> Donc, de cette manière, un type de données de tableau, la structure de données qui est un tableau 690 00:31:08,790 --> 00:31:13,392 est très différente de certains autres, nous allons être couvrant plus tard dans ce cours. 691 00:31:13,392 --> 00:31:15,170 Ouais. 692 00:31:15,170 --> 00:31:20,080 Par exemple, si vous vouliez créer un tableau de taille 3 qui 693 00:31:20,080 --> 00:31:23,670 contenus variables de integer-- Oh, désolé, de temperature-- 694 00:31:23,670 --> 00:31:25,640 et de la température, de Bien sûr, est un nombre entier. 695 00:31:25,640 --> 00:31:28,710 >> Donc, nous créons int, qui est la type de données de ce que nous voulons stocker. 696 00:31:28,710 --> 00:31:32,680 Nous allons appeler cette températures pour l'amour de la nomenclature des nommage 697 00:31:32,680 --> 00:31:34,200 quelque chose que nous comprenons tous. 698 00:31:34,200 --> 00:31:35,900 Et nous allons avoir entre crochets. 699 00:31:35,900 --> 00:31:37,200 Et nous voulons que trois numéros. 700 00:31:37,200 --> 00:31:39,000 Nous allons donc mettre trois à l'intérieur de celui-ci. 701 00:31:39,000 --> 00:31:41,041 >> Quelque chose qui est vraiment important de garder à l'esprit 702 00:31:41,041 --> 00:31:43,530 est que les réseaux sont indexés zéro. 703 00:31:43,530 --> 00:31:46,410 Tout ce qui signifie que vous commencer par l'indice de 0, 704 00:31:46,410 --> 00:31:49,800 et vous courez à travers le taille de la matrice moins 1. 705 00:31:49,800 --> 00:31:52,730 Ainsi, par exemple ici, nous avoir un tableau de taille 3. 706 00:31:52,730 --> 00:31:54,680 Il va être en mesure de tenir trois valeurs. 707 00:31:54,680 --> 00:31:57,450 Mais les chiffres que themselves-- nombre, le tableau, que l'indice, 708 00:31:57,450 --> 00:32:00,271 le tableau, vont de 0 à 2. 709 00:32:00,271 --> 00:32:03,520 Alors les gars, être vraiment, vraiment prudent lorsque vous allez à travers vos problèmes posés 710 00:32:03,520 --> 00:32:06,500 et de créer toute sorte de tableau, parce que beaucoup de temps il est 711 00:32:06,500 --> 00:32:08,490 vraiment, vraiment facile d'oublier que. 712 00:32:08,490 --> 00:32:11,840 Je ne fait pas d'index 3, que je actuellement un peu 713 00:32:11,840 --> 00:32:13,130 avoir l'indice de 2. 714 00:32:13,130 --> 00:32:16,046 Et si vous essayez de accéder à la troisième indice, 715 00:32:16,046 --> 00:32:18,170 ça va être ce qui est appelé le terminateur null. 716 00:32:18,170 --> 00:32:19,990 Il ne va pas réellement exister dans le tableau. 717 00:32:19,990 --> 00:32:21,781 Et l'ordinateur est ne va pas aimer ça. 718 00:32:21,781 --> 00:32:24,570 Donc soyez prudent chaque fois vous accédez à des choses juste 719 00:32:24,570 --> 00:32:28,070 veiller à ce que vous vous souvenez que les tableaux sont zéro-indexés. 720 00:32:28,070 --> 00:32:28,880 >> D'ACCORD. 721 00:32:28,880 --> 00:32:34,030 Ainsi, le premier exemple est juste une façon de créer un tableau. 722 00:32:34,030 --> 00:32:36,790 Le deuxième exemple que je dois ci-dessous est juste une façon distincte 723 00:32:36,790 --> 00:32:40,210 de créer ce qui est les mêmes données structure que nous venons tout juste entré. 724 00:32:40,210 --> 00:32:44,347 Ainsi, au lieu de courir physiquement et par la mise en température de 0 725 00:32:44,347 --> 00:32:47,180 est égal que ce soit, la température 1 égaux quelles que soient la température, 2 égaux 726 00:32:47,180 --> 00:32:50,950 que ce soit, je ne pouvais en fait juste créer directement tout cela en une seule ligne 727 00:32:50,950 --> 00:32:53,010 en température crochets égaux. 728 00:32:53,010 --> 00:32:56,536 >> Et remarquez, dans ce cas, vous ne devez pas de préciser la taille de votre réseau est, 729 00:32:56,536 --> 00:32:59,160 parce que l'ordinateur va passer et voir qu'il ya 730 00:32:59,160 --> 00:33:01,570 trois éléments dans ces accolades. 731 00:33:01,570 --> 00:33:04,000 Et il va savoir, OK, Je besoin d'un tableau de taille 3. 732 00:33:04,000 --> 00:33:07,440 Tu ne vas pas avoir besoin de elle entrée de la façon suivante. 733 00:33:07,440 --> 00:33:10,170 >> Et aussi, oui, de cette façon. 734 00:33:10,170 --> 00:33:12,610 Quelqu'un at-il des questions concernant la façon dont nous faisons des tableaux 735 00:33:12,610 --> 00:33:17,391 ou comment la structure d'un tableau marche? 736 00:33:17,391 --> 00:33:17,890 Ouais. 737 00:33:17,890 --> 00:33:18,806 >> AUDIENCE: [inaudible]? 738 00:33:18,806 --> 00:33:21,649 739 00:33:21,649 --> 00:33:22,690 ANDI PENG: Oui, exactement. 740 00:33:22,690 --> 00:33:26,150 Donc, si vous deviez déclarer et initialiser un tableau de la méthode suivante, 741 00:33:26,150 --> 00:33:28,477 qui est le deuxième moyen, vous pouvez simplement laisser ceux-ci. 742 00:33:28,477 --> 00:33:30,310 Et l'ordinateur sait automatiquement qu'il 743 00:33:30,310 --> 00:33:33,950 besoin de compter combien de nombreux éléments sont dans ces accolades, séparés 744 00:33:33,950 --> 00:33:34,930 par des virgules. 745 00:33:34,930 --> 00:33:37,517 >> Donc, ici, ils voient 65, 87, 30. 746 00:33:37,517 --> 00:33:39,600 Donc, l'ordinateur sait, oh, il ya trois entiers. 747 00:33:39,600 --> 00:33:45,960 Je sais que pour créer un nom de tableau température avec trois éléments en elle. 748 00:33:45,960 --> 00:33:46,590 Bonne question. 749 00:33:46,590 --> 00:33:47,090 Ouais. 750 00:33:47,090 --> 00:33:51,590 >> AUDIENCE: est-il pas possible de créer un tableau avec différents types de données 751 00:33:51,590 --> 00:33:53,021 qui pourrait être conclu il? 752 00:33:53,021 --> 00:33:56,746 Par exemple, avec des nombres entiers [inaudible]? 753 00:33:56,746 --> 00:33:59,120 ANDI Peng: Pour les fins de cette classe, non, en ce moment. 754 00:33:59,120 --> 00:34:03,070 Lorsque vous créez un données structurer comme un tableau, 755 00:34:03,070 --> 00:34:04,990 vous dites la ordinateur, hey, je dois vous 756 00:34:04,990 --> 00:34:08,159 à allouer autant mémoire dans mon disque dur, 757 00:34:08,159 --> 00:34:10,690 à chaque cellule étant un certain nombre de bits. 758 00:34:10,690 --> 00:34:13,429 >> Rappelez-vous que nous avons appris la semaine que les données différent de zéro 759 00:34:13,429 --> 00:34:15,300 types ont des tailles différentes? 760 00:34:15,300 --> 00:34:17,630 Ainsi, par exemple, une chaîne est un montant différent 761 00:34:17,630 --> 00:34:20,719 de l'espace d'un char, qui est un montant différent de l'espace 762 00:34:20,719 --> 00:34:21,830 à partir d'un nombre entier. 763 00:34:21,830 --> 00:34:25,534 Et si vous ne spécifiez pas et vous mélanger et correspondre à ce types de variables 764 00:34:25,534 --> 00:34:27,659 vous avez, l'ordinateur de va être très confus. 765 00:34:27,659 --> 00:34:29,950 Et ça ne va pas savoir combien de mémoire à vous donner. 766 00:34:29,950 --> 00:34:32,480 Donc, à des fins de droit maintenant, les ordinateurs peuvent seulement 767 00:34:32,480 --> 00:34:36,120 reconnaître un type d'un tableau. 768 00:34:36,120 --> 00:34:37,940 Bonne question. 769 00:34:37,940 --> 00:34:38,440 D'ACCORD. 770 00:34:38,440 --> 00:34:45,179 771 00:34:45,179 --> 00:34:47,120 >> Alors, naturellement, la deuxième question, nous avons 772 00:34:47,120 --> 00:34:50,760 est, bien, maintenant que nous avons créé une tableau et nous avons mis toutes ces choses 773 00:34:50,760 --> 00:34:54,190 dans le tableau, comment sommes-nous va être en mesure d'y accéder? 774 00:34:54,190 --> 00:34:59,710 Ainsi, la structure typique que nous avons toujours accéder à un tableau est notre belle boucle. 775 00:34:59,710 --> 00:35:03,830 Je vous promets que les gars que nous serons voir beaucoup de cet homme ici. 776 00:35:03,830 --> 00:35:06,470 >> Essentiellement, quand vous le voulez à l'entrée des valeurs dans un tableau 777 00:35:06,470 --> 00:35:09,940 ou si vous voulez y accéder, le meilleure façon de le faire est une boucle, 778 00:35:09,940 --> 00:35:13,730 parce que dans une boucle, vous savez combien de fois vous êtes 779 00:35:13,730 --> 00:35:17,290 allez vouloir courir à travers le réseau, parce que vous avez une édition d'arrêt, non? 780 00:35:17,290 --> 00:35:19,680 Et chaque fois que vous exécutez à travers, vous pouvez accéder 781 00:35:19,680 --> 00:35:21,310 un élément différent de la matrice. 782 00:35:21,310 --> 00:35:26,920 >> Et aussi, cela est une raison pour laquelle généralement nous commençons notre pour les boucles à la valeur 0, 783 00:35:26,920 --> 00:35:30,080 parce que quand vous accédez à des tableaux, vous pouvez accéder à l'indice zéro. 784 00:35:30,080 --> 00:35:32,070 Et il en parallèle très bien. 785 00:35:32,070 --> 00:35:35,295 Les gars, vous pourriez avoir voulu écrire pour int i est égal à 1. 786 00:35:35,295 --> 00:35:37,330 i est inférieur ou égal à 3. 787 00:35:37,330 --> 00:35:39,890 >> Mais il ne serait pas tout à fait aussi travailler bien ici, parce que vous ne 788 00:35:39,890 --> 00:35:42,010 avoir des éléments de 0, 1, 2 et. 789 00:35:42,010 --> 00:35:45,815 Et si vous deviez commencer votre i à l'élément 1, 2 et 3, 790 00:35:45,815 --> 00:35:48,440 vous allez finir par courir hors des limites de votre réseau, 791 00:35:48,440 --> 00:35:50,440 et les mauvaises choses vont se produire. 792 00:35:50,440 --> 00:35:54,480 >> Je vous souhaite donc voir le gars Segue pourquoi dans les classes antérieures 793 00:35:54,480 --> 00:35:58,560 nous avons été les gars vous enseigner comment exécuter et formater une boucle de la façon dont nous étions. 794 00:35:58,560 --> 00:36:01,900 Il est parce que, maintenant, nous avons la transition dans des tableaux, 795 00:36:01,900 --> 00:36:06,760 Vous pouvez voir pourquoi les 0 Prête lui-même très bien à l'accès. 796 00:36:06,760 --> 00:36:09,880 >> Donc, la façon dont nous faisons est que je suis that-- juste de l'imprimer ici pour l'amour 797 00:36:09,880 --> 00:36:10,830 de l'imprimer. 798 00:36:10,830 --> 00:36:13,750 Mais je dois mon espace réservé, par des virgules. 799 00:36:13,750 --> 00:36:15,645 Et le accédant réelle partie se passe. 800 00:36:15,645 --> 00:36:17,520 Le nom du tableau a été appelé température. 801 00:36:17,520 --> 00:36:21,570 Il est donc la température et la i-ième élément de la matrice. 802 00:36:21,570 --> 00:36:24,400 >> Alors que la boucle for parcourt, il va commencer à 0. 803 00:36:24,400 --> 00:36:27,640 Il va imprimer le Indice 0th de ce tableau. 804 00:36:27,640 --> 00:36:29,599 Ensuite, il va imprimer le premier élément. 805 00:36:29,599 --> 00:36:31,431 Ensuite, il va imprimer le deuxième. 806 00:36:31,431 --> 00:36:32,880 Et puis nous allons faire une pause. 807 00:36:32,880 --> 00:36:36,718 Tout le monde est clair sur comment cela se passe? 808 00:36:36,718 --> 00:36:37,217 Génial. 809 00:36:37,217 --> 00:36:43,230 810 00:36:43,230 --> 00:36:44,100 >> Bien. 811 00:36:44,100 --> 00:36:47,270 Nous avons donc ici une façon de dire, si nous ne voulons pas 812 00:36:47,270 --> 00:36:50,020 coder en dur me in-- que le programmeur. 813 00:36:50,020 --> 00:36:53,320 Je ne veux pas réellement physiquement mettre dans chaque élément individuel 814 00:36:53,320 --> 00:36:54,020 de ce tableau. 815 00:36:54,020 --> 00:36:56,500 Si je voulais la place avoir les valeurs d'entrée utilisateur, 816 00:36:56,500 --> 00:36:58,100 quelle est la meilleure façon de le faire? 817 00:36:58,100 --> 00:37:00,920 >> Eh bien, ici, je l'ai créé cette belle fonction, 818 00:37:00,920 --> 00:37:03,560 dans lequel je peux déclarer un tableau. 819 00:37:03,560 --> 00:37:06,210 Donc, nous allons int scores-- disons simplement que nous voulons faire 820 00:37:06,210 --> 00:37:10,660 un tableau qui a tenu les qualités de tous les 18 des étudiants ici dans cette section. 821 00:37:10,660 --> 00:37:12,670 Je pense que nous avons un peu plus de 18 enfants aujourd'hui. 822 00:37:12,670 --> 00:37:16,460 Mais pour l'amour du exemple, disons simplement supposer que nous avions 18. 823 00:37:16,460 --> 00:37:21,580 Je voudrais créer un nom de tableau des scores avec type int, parce que les résultats, bien sûr, 824 00:37:21,580 --> 00:37:22,987 sont des nombres. 825 00:37:22,987 --> 00:37:24,820 Et je vais devoir 18 entre crochets, 826 00:37:24,820 --> 00:37:29,900 parce que ce que je combien d'étudiants veulent être en mesure de stocker des dizaines de. 827 00:37:29,900 --> 00:37:32,206 >> Et la façon dont je voudrais peupler le tableau est que je ferais 828 00:37:32,206 --> 00:37:35,572 le lancer à travers une boucle, de Bien sûr, avec 0 étant mon index 0th. 829 00:37:35,572 --> 00:37:38,030 Et puis avec 18 étant mon arrêter édition, car il ya 830 00:37:38,030 --> 00:37:39,690 18 éléments dans le tableau. 831 00:37:39,690 --> 00:37:44,620 Et puis je vais faire printf, entrez marquer student-- yada yada yada. 832 00:37:44,620 --> 00:37:51,171 >> Quelqu'un peut-il me dire pourquoi je suis ici impression i + 1 et non i? 833 00:37:51,171 --> 00:37:52,920 Il est un peu un truc question, pas vraiment. 834 00:37:52,920 --> 00:37:56,020 Il ne fait pas réellement physiquement affecter l'exécution du code. 835 00:37:56,020 --> 00:37:56,520 Ouais. 836 00:37:56,520 --> 00:37:57,909 >> AUDIENCE: [inaudible] 0? 837 00:37:57,909 --> 00:37:58,950 ANDI PENG: Oui, exactement. 838 00:37:58,950 --> 00:38:02,620 Il est un peu difficile à dire, hey, vous êtes l'étudiant 0th dans cette classe. 839 00:38:02,620 --> 00:38:03,780 Il est un peu bizarre. 840 00:38:03,780 --> 00:38:08,340 Donc, nous, en tant qu'êtres humains, ne sont pas vraiment comme de penser à la façon dont les ordinateurs pensent. 841 00:38:08,340 --> 00:38:10,930 Ainsi, même si dans le ordinateur, il est à stocker des valeurs 842 00:38:10,930 --> 00:38:13,310 dans la 0-ième index, lorsque nous sommes humains, nous faisons pas vraiment 843 00:38:13,310 --> 00:38:15,520 vous renvoyer à nous-mêmes en tant que zéro. 844 00:38:15,520 --> 00:38:18,119 Alors, quand je viens impression qui, Je vais imprimer et ajouter 845 00:38:18,119 --> 00:38:19,410 1 seulement pour des raisons de clarté. 846 00:38:19,410 --> 00:38:22,447 Alors, quand je imprimer, je vais être capable d'imprimer les étudiants de 1 à 18. 847 00:38:22,447 --> 00:38:24,530 Il ne fait pas d'impact l'exécution du code 848 00:38:24,530 --> 00:38:27,110 en aucune manière, la façon dont je imprimer. 849 00:38:27,110 --> 00:38:30,380 >> Mais soyez prudent lorsque vous êtes accéder en fait le tableau. 850 00:38:30,380 --> 00:38:32,780 Quand vous voyez les scores i, remarquer ici, je suis en fait 851 00:38:32,780 --> 00:38:38,200 accès à l'index et 0e pas le 1 plus 0-- ou 1 plus 1, 852 00:38:38,200 --> 00:38:45,530 dans ce cas, l'indice de manière qu'il est en fait clair. 853 00:38:45,530 --> 00:38:48,870 Tout le monde est genre de sur OK comment cela fonctionne grâce 854 00:38:48,870 --> 00:38:51,470 et avec tous les indices que je suis mettre une valeur dans le tableau 855 00:38:51,470 --> 00:38:55,340 et la création d'un tableau avec 18 numéros que l'utilisateur va à l'entrée? 856 00:38:55,340 --> 00:38:58,780 857 00:38:58,780 --> 00:38:59,821 D'ACCORD. 858 00:38:59,821 --> 00:39:00,321 Frais. 859 00:39:00,321 --> 00:39:05,380 860 00:39:05,380 --> 00:39:07,400 >> D'ACCORD. 861 00:39:07,400 --> 00:39:12,220 Nous passons maintenant en quelque chose qui est assez pertinente pour ce morceau définir ainsi. 862 00:39:12,220 --> 00:39:15,020 Je sais que dans la leçon, David-- Désolé, vous aviez une question? 863 00:39:15,020 --> 00:39:16,840 >> AUDIENCE: Pouvez-vous agrandir? 864 00:39:16,840 --> 00:39:18,080 >> ANDI PENG: Ouais, donc je tente. 865 00:39:18,080 --> 00:39:18,788 Mais je ne sais pas. 866 00:39:18,788 --> 00:39:21,437 Pour une raison quelconque, cette version de PowerPoint 867 00:39:21,437 --> 00:39:23,270 est vraiment pas de travail bien avec l'affichage. 868 00:39:23,270 --> 00:39:25,260 Donc, nous allons juste pour le garder comme ça. 869 00:39:25,260 --> 00:39:27,280 Tous ces va être téléchargés en ligne. 870 00:39:27,280 --> 00:39:28,218 Désolé les gars. 871 00:39:28,218 --> 00:39:30,090 Ouais. 872 00:39:30,090 --> 00:39:30,980 D'ACCORD. 873 00:39:30,980 --> 00:39:35,530 >> Donc, nous pouvons également avoir des chaînes. 874 00:39:35,530 --> 00:39:39,320 Donc, si vous les gars en fait je notice-- Rob sait allé au cours de cette conférence en ce que 875 00:39:39,320 --> 00:39:43,652 qu'il did-- une chaîne est en fait seulement un tableau de caractères, 876 00:39:43,652 --> 00:39:44,860 si vous pensez à ce sujet, non? 877 00:39:44,860 --> 00:39:47,500 Une chaîne est un nom ou un phrase ou un mot, non? 878 00:39:47,500 --> 00:39:52,975 >> Si je devais créer une chaîne nommée Andi-- juste mon nom, A-N-D-I. 879 00:39:52,975 --> 00:39:55,460 Vous pensez que l'une des variables. 880 00:39:55,460 --> 00:39:58,630 Mais en réalité, il est décomposé en tout un tableau de caractères. 881 00:39:58,630 --> 00:40:01,910 Donc, il a un caractère de une valeur stockée dans un tableau. 882 00:40:01,910 --> 00:40:05,420 Il a un caractère de n stockée dans le deuxième indice et ainsi de suite et ainsi de suite. 883 00:40:05,420 --> 00:40:08,660 >> Ainsi, dans une telle manière, nous avoir fait ce genre 884 00:40:08,660 --> 00:40:10,970 de la structure définie dans placer pour nos cordes. 885 00:40:10,970 --> 00:40:14,660 Donc, ici, si je devais l'entrée mot "manger" - sorte de chaîne est égale à mot 886 00:40:14,660 --> 00:40:15,540 obtenir chaîne. 887 00:40:15,540 --> 00:40:19,260 Si je devais entrer le mot "manger", que est physiquement la façon dont mon ordinateur 888 00:40:19,260 --> 00:40:21,870 est mémoriser cette chaîne dans ma mémoire. 889 00:40:21,870 --> 00:40:27,140 >> Et si je voulais courir à travers ce et impression qui out-- donc pour en i 890 00:40:27,140 --> 00:40:30,890 est égal à zéro, rappelez-vous, dans la conférence, nous avons quelque chose qui est couverte appelé strlen, 891 00:40:30,890 --> 00:40:32,990 ou la longueur de la chaîne. 892 00:40:32,990 --> 00:40:36,520 Parce que je ne sais pas en fait savoir comment le tableau est grande 893 00:40:36,520 --> 00:40:38,210 de quelque inputting-- de l'utilisateur 894 00:40:38,210 --> 00:40:40,370 >> Par exemple, je introduites le mot "manger", et je sais 895 00:40:40,370 --> 00:40:41,870 ça fait trois caractères de long, non? 896 00:40:41,870 --> 00:40:44,700 Donc, je pourrais mettre dans un trois là et tout ira bien. 897 00:40:44,700 --> 00:40:49,290 Mais si votre entrée de quelque chose d'utilisateur qui est un nombre différent de valeurs, 898 00:40:49,290 --> 00:40:52,760 vous allez pas être en mesure de vraiment savez que lorsque vous programmez votre code. 899 00:40:52,760 --> 00:40:56,040 >> Donc, la façon dont nous traitons les cas de test comme cela est que nous avons quelque chose 900 00:40:56,040 --> 00:41:00,070 strlen appelé, qui est juste une fonction qui vous indique combien de temps une chaîne est. 901 00:41:00,070 --> 00:41:02,080 Donc strlen du mot. 902 00:41:02,080 --> 00:41:03,470 Ma parole est de manger. 903 00:41:03,470 --> 00:41:05,990 n est égal à strlen du mot. 904 00:41:05,990 --> 00:41:08,930 Quelqu'un peut me dire ce que cela La valeur est en fait là? 905 00:41:08,930 --> 00:41:12,550 Qu'est-ce que n représentant droit maintenant, dans cet exemple, si je devais manger? 906 00:41:12,550 --> 00:41:13,530 >> Public: 3. 907 00:41:13,530 --> 00:41:14,520 >> ANDI PENG: 3, exactement. 908 00:41:14,520 --> 00:41:18,820 Donc, nous avons pour int i est égal zéro, n est égal à 3, pour l'essentiel. 909 00:41:18,820 --> 00:41:22,355 Et i va courir jusqu'à ce qu'il soit moins de 3i ++. 910 00:41:22,355 --> 00:41:24,980 Et il va aller essentiellement à travers et faire la même chose. 911 00:41:24,980 --> 00:41:26,979 Il va imprimer toute valeur et de vous donner 912 00:41:26,979 --> 00:41:29,700 E-A-T. Il est juste désignant un façon d'écrire différent. 913 00:41:29,700 --> 00:41:31,170 Cela va être très utile. 914 00:41:31,170 --> 00:41:31,670 Ouais. 915 00:41:31,670 --> 00:41:35,174 Public: Quelle est la avantages de mettre n est égal à l'intérieur de ce mot strlen 916 00:41:35,174 --> 00:41:36,894 pour la boucle [inaudible]? 917 00:41:36,894 --> 00:41:37,560 ANDI PENG: Ouais. 918 00:41:37,560 --> 00:41:44,880 Donc, si je devais to-- dire, par exemple, si je devais le faire et ensuite 919 00:41:44,880 --> 00:41:51,935 do-- oop-- que, dans mon code, il serait effectivement être faire comme la même chose. 920 00:41:51,935 --> 00:41:55,060 Cependant, la façon dont David a expliqué il en conférence, si l'un de vous les gars 921 00:41:55,060 --> 00:41:57,854 rappelez-vous, était que, les humains, en tant que programmeurs, 922 00:41:57,854 --> 00:42:00,270 Nous essayons vraiment de programmer notre code de sorte que notre ordinateur a 923 00:42:00,270 --> 00:42:04,070 de travailler aussi minime que possible, de sorte que notre code est très efficace. 924 00:42:04,070 --> 00:42:06,850 >> Donc, si je que là, ce qui eu qui se passerait dans ma boucle for 925 00:42:06,850 --> 00:42:10,790 est que je voudrais d'abord déclarer une variable i nommé va être 0. 926 00:42:10,790 --> 00:42:13,350 Je vais vérifier, oh, ce qui est les strlen de mot? 927 00:42:13,350 --> 00:42:15,000 Oh, le strlen est 3. 928 00:42:15,000 --> 00:42:16,191 Est si i moins de trois? 929 00:42:16,191 --> 00:42:16,690 Oui ça l'est. 930 00:42:16,690 --> 00:42:17,870 Je vais courir. 931 00:42:17,870 --> 00:42:21,130 >> Et puis la deuxième fois de retour autour la boucle, je vais pour incrémenter i. 932 00:42:21,130 --> 00:42:22,550 i va être un. 933 00:42:22,550 --> 00:42:25,600 Et i va vérifier, oh, mais quelle est la strlen du mot? 934 00:42:25,600 --> 00:42:26,839 Oh, il est trois. 935 00:42:26,839 --> 00:42:29,880 Et est-ce que semble sorte de gaspillage, chaque fois que vous exécutez à travers la boucle, 936 00:42:29,880 --> 00:42:33,340 à vérifier la fonction, même si les strlen de mot 937 00:42:33,340 --> 00:42:35,490 ne change jamais fait? 938 00:42:35,490 --> 00:42:38,590 >> Donc, il est une puissance supplémentaire pour un ordinateur. 939 00:42:38,590 --> 00:42:42,180 Lorsque vous commencez à parler de choses qui sont des milliards 940 00:42:42,180 --> 00:42:44,431 et des milliards de lieux de long, imaginez votre ordinateur 941 00:42:44,431 --> 00:42:47,430 avoir à se rendre physiquement à travers et vérifier tout cela à chaque fois. 942 00:42:47,430 --> 00:42:53,170 Voilà pourquoi, pour faire juste pour des raisons d'efficacité, 943 00:42:53,170 --> 00:42:57,620 nous avons tendance à tout faire, car de cette façon nous sommes seulement 944 00:42:57,620 --> 00:42:59,850 appelant la fonction une fois au début, 945 00:42:59,850 --> 00:43:01,766 et que chaque fois qu'il passe par ça va 946 00:43:01,766 --> 00:43:03,789 pour mémoriser la valeur 3 là, que vous ne faites pas 947 00:43:03,789 --> 00:43:05,330 avoir à vérifier constamment à chaque fois. 948 00:43:05,330 --> 00:43:05,743 Ouais. 949 00:43:05,743 --> 00:43:06,409 >> AUDIENCE: Désolé. 950 00:43:06,409 --> 00:43:09,070 Juste [inaudible]. 951 00:43:09,070 --> 00:43:13,985 Pourriez-vous ne int n est égal à strlen et de mettre qu'au-dessus de l'extérieur de la boucle for 952 00:43:13,985 --> 00:43:15,364 aussi bien? 953 00:43:15,364 --> 00:43:16,030 ANDI PENG: Ouais. 954 00:43:16,030 --> 00:43:17,100 Vous pourriez le faire, absolument. 955 00:43:17,100 --> 00:43:19,970 La raison pour laquelle nous avons ici est parce que la façon dont un pour les travaux de la boucle 956 00:43:19,970 --> 00:43:23,500 est ce qu'il a appelé un variable locale dans le sens 957 00:43:23,500 --> 00:43:26,150 que tout vous êtes créer à l'intérieur de la boucle for 958 00:43:26,150 --> 00:43:27,890 existe seulement à l'intérieur de la boucle for. 959 00:43:27,890 --> 00:43:31,530 >> Donc, la variable i seulement existe dans ces crochets. 960 00:43:31,530 --> 00:43:35,260 Et voici les variables de n aussi seulement existe dans ces crochets. 961 00:43:35,260 --> 00:43:39,350 Donc, si vous deviez utiliser des strlen mot plusieurs fois vers le bas ci-dessous, 962 00:43:39,350 --> 00:43:42,230 absolument la meilleure façon de le faire serait de déclarer le haut 963 00:43:42,230 --> 00:43:43,563 de sorte que vous ne devez pas le faire une fois. 964 00:43:43,563 --> 00:43:45,420 Ouais. 965 00:43:45,420 --> 00:43:47,670 Public: Pourquoi avez-vous un nouvelle ligne après la pour cent 966 00:43:47,670 --> 00:43:51,300 de voir si vous voulez mettre toutes les les lettres à côté de lui à part? 967 00:43:51,300 --> 00:43:54,140 >> ANDI PENG: Oh, je voulais imprimer les tous sur chaque ligne. 968 00:43:54,140 --> 00:43:54,890 Il n'a pas d'importance. 969 00:43:54,890 --> 00:43:55,890 Ouais, il est une mise en forme. 970 00:43:55,890 --> 00:43:57,181 Voilà une bonne question, cependant. 971 00:43:57,181 --> 00:43:59,360 Ouais, si je voulais imprimer le tout sur une seule ligne, 972 00:43:59,360 --> 00:44:02,731 Je ne voudrais pas avoir le tiret dans. 973 00:44:02,731 --> 00:44:03,230 D'ACCORD. 974 00:44:03,230 --> 00:44:06,880 Tout le monde la bonne? 975 00:44:06,880 --> 00:44:07,500 D'ACCORD. 976 00:44:07,500 --> 00:44:08,000 Frais. 977 00:44:08,000 --> 00:44:12,080 978 00:44:12,080 --> 00:44:14,750 >> Donc, je pense que je l'ai assez parlé. 979 00:44:14,750 --> 00:44:20,040 Au tour de vous les gars à courir à travers le code et me dire ce qui ne va pas ici. 980 00:44:20,040 --> 00:44:21,560 Où est le bug? 981 00:44:21,560 --> 00:44:26,920 Donc, comme vous pouvez le voir, je l'ai déclaré un nouveau tableau de type chaîne nommée classe. 982 00:44:26,920 --> 00:44:30,220 Et je suis entré Sam, Jess, et Kim en elle. 983 00:44:30,220 --> 00:44:33,400 Et je suis d'essayer d'imprimer tous les éléments de la matrice. 984 00:44:33,400 --> 00:44:36,796 Quelqu'un peut me dire pourquoi cela va me donner des problèmes? 985 00:44:36,796 --> 00:44:39,320 Je vais vous donner les gars 10 secondes pour réfléchir à ce sujet. 986 00:44:39,320 --> 00:44:55,490 987 00:44:55,490 --> 00:44:56,619 >> D'ACCORD. 988 00:44:56,619 --> 00:44:57,118 Ouais? 989 00:44:57,118 --> 00:45:01,972 >> Public: Est ce que le centre gauche égal à 3 ou [inaudible]? 990 00:45:01,972 --> 00:45:02,680 ANDI PENG: Droit. 991 00:45:02,680 --> 00:45:06,784 Alors, combien de fois est-ce réellement va courir à travers cette boucle? 992 00:45:06,784 --> 00:45:07,620 >> AUDIENCE: Quatre. 993 00:45:07,620 --> 00:45:08,070 >> ANDI PENG: Exactement. 994 00:45:08,070 --> 00:45:09,445 Il va à travers quatre fois. 995 00:45:09,445 --> 00:45:12,250 Il va courir à travers à 0, 1, 2, et 3, 996 00:45:12,250 --> 00:45:15,200 parce que leur élément i est est inférieur ou égal à 3. 997 00:45:15,200 --> 00:45:16,960 Il ne va pas arrêter quand il est 2. 998 00:45:16,960 --> 00:45:18,800 Il va continuer va jusqu'à ce qu'il frappe 3. 999 00:45:18,800 --> 00:45:21,720 Et comme nous le savons, il ya seulement trois éléments dans notre tableau réel. 1000 00:45:21,720 --> 00:45:27,260 >> Si nous essayons d'accéder à la quatrième élément ou l'indice de 3, 1001 00:45:27,260 --> 00:45:30,357 vous allez frapper quelque part dans la mémoire qui ne pas exister. 1002 00:45:30,357 --> 00:45:31,690 Il a appelé le terminateur null. 1003 00:45:31,690 --> 00:45:32,856 Rien ne va être là. 1004 00:45:32,856 --> 00:45:35,324 Votre ordinateur ne va pas être très heureux avec vous. 1005 00:45:35,324 --> 00:45:36,170 Ouais. 1006 00:45:36,170 --> 00:45:38,430 Quelqu'un at-il des questions pourquoi ce qui se passait? 1007 00:45:38,430 --> 00:45:39,679 Voilà un espace commun à éviter. 1008 00:45:39,679 --> 00:45:40,712 Ouais. 1009 00:45:40,712 --> 00:45:45,777 >> Public: Est-ce que le premier pas glisser aussi avoir une chaîne de 2? 1010 00:45:45,777 --> 00:45:46,360 PENG ANDI: Non 1011 00:45:46,360 --> 00:45:49,610 Donc, essentiellement, lorsque vous faites un tableau, 1012 00:45:49,610 --> 00:45:51,540 ce droit du support là, que tout number-- 1013 00:45:51,540 --> 00:45:53,480 ça vous dit est de savoir comment de nombreux éléments dont je dispose. 1014 00:45:53,480 --> 00:45:55,840 Il est pas réellement dire moi les indices de quoi que ce soit. 1015 00:45:55,840 --> 00:45:58,760 Donc dans ce cas, je sais que je veux à écrire avec trois endroits, 1016 00:45:58,760 --> 00:46:02,690 avec trois emplacements physiques à tiens ce que je veux tenir. 1017 00:46:02,690 --> 00:46:04,510 Voilà pourquoi le numéro trois est là. 1018 00:46:04,510 --> 00:46:06,560 Cependant, si je voulais pour réellement y accéder, 1019 00:46:06,560 --> 00:46:11,220 si je voulais dire, printf classe numéro de support, puis 1020 00:46:11,220 --> 00:46:14,560 vous allez mettre réellement l'indice physique il. 1021 00:46:14,560 --> 00:46:16,330 Ouais, bonne question. 1022 00:46:16,330 --> 00:46:20,065 >> AUDIENCE: est donc la physique indice censé être [inaudible]? 1023 00:46:20,065 --> 00:46:20,940 ANDI Peng: Je suis désolé. 1024 00:46:20,940 --> 00:46:21,500 Pouvez-vous parler un peu? 1025 00:46:21,500 --> 00:46:24,208 >> Auditoire: Alors, est l'indice physique [Inaudible] chacune des boîtes? 1026 00:46:24,208 --> 00:46:25,260 [Inaudible]? 1027 00:46:25,260 --> 00:46:26,040 >> ANDI PENG: Ouais. 1028 00:46:26,040 --> 00:46:28,970 Donc, je vais revenir à droite ici. 1029 00:46:28,970 --> 00:46:31,120 Pensez ici. 1030 00:46:31,120 --> 00:46:32,820 Nous avons un tableau de taille 3. 1031 00:46:32,820 --> 00:46:35,540 Il ya trois endroits, comme, espaces réservés physiques ici. 1032 00:46:35,540 --> 00:46:37,620 Mais ils sont nommés 0, 1 et 2. 1033 00:46:37,620 --> 00:46:40,700 Donc, si je voulais y accéder, la façon dont je y accéder 1034 00:46:40,700 --> 00:46:43,480 printf est de ce que je voulais ici. 1035 00:46:43,480 --> 00:46:45,485 Vous auriez à imprimer le nom de celui-ci, 1036 00:46:45,485 --> 00:46:47,610 car alors l'ordinateur sait, oh, je dois regarder 1037 00:46:47,610 --> 00:46:51,391 dans ce tableau pour l'indice 0th. 1038 00:46:51,391 --> 00:46:51,890 Ouais. 1039 00:46:51,890 --> 00:46:53,306 Mais la taille de celui-ci ne change pas. 1040 00:46:53,306 --> 00:46:55,492 La taille est de 3, indépendamment de la façon dont vous les étiqueter. 1041 00:46:55,492 --> 00:46:58,321 1042 00:46:58,321 --> 00:46:58,820 D'ACCORD. 1043 00:46:58,820 --> 00:47:01,387 Tout le monde la bonne? 1044 00:47:01,387 --> 00:47:02,970 Auditoire: Alors, chaque fois que je [inaudible]? 1045 00:47:02,970 --> 00:47:06,357 1046 00:47:06,357 --> 00:47:06,940 ANDI PENG: OK. 1047 00:47:06,940 --> 00:47:13,270 Donc dans ce cas, nous ne faisons pas vraiment y entrer dès maintenant dans le cours. 1048 00:47:13,270 --> 00:47:16,760 Mais savoir qu'un string-- comme je dit avant, une chaîne est essentiellement 1049 00:47:16,760 --> 00:47:18,440 un tableau de caractères. 1050 00:47:18,440 --> 00:47:21,430 Donc, si je crée un tableau des cordes, je sorte de 1051 00:47:21,430 --> 00:47:24,430 avoir un tableau de tableau de caractères, non? 1052 00:47:24,430 --> 00:47:27,720 >> Donc dans ce cas, parce que je avoir un tableau de chaînes, 1053 00:47:27,720 --> 00:47:31,340 si vous étiez à l'entrée un très long mot, qui occupe toujours un seul espace, 1054 00:47:31,340 --> 00:47:33,230 parce que ce est une corde. 1055 00:47:33,230 --> 00:47:37,492 Mais si vous deviez penser les personnages de ce tableau, 1056 00:47:37,492 --> 00:47:40,450 alors que cela prend beaucoup plus caractères que l'un des autres mots 1057 00:47:40,450 --> 00:47:41,372 sommes. 1058 00:47:41,372 --> 00:47:42,830 Pas vraiment important pour le moment. 1059 00:47:42,830 --> 00:47:44,921 Mais cela est juste généralement comment ça fonctionne. 1060 00:47:44,921 --> 00:47:49,750 1061 00:47:49,750 --> 00:47:50,560 >> D'ACCORD. 1062 00:47:50,560 --> 00:47:55,840 Donc ceci est quelque chose que je vous laisse faire beaucoup au cours du semestre. 1063 00:47:55,840 --> 00:47:57,500 Je dois reposer ma voix. 1064 00:47:57,500 --> 00:47:59,530 Les gars, vous devez vous stimuler. 1065 00:47:59,530 --> 00:48:02,300 Beaucoup d'entre vous sans doute avoir à dormir en ce moment. 1066 00:48:02,300 --> 00:48:05,960 Je entrer problèmes aléatoires où nous en tant que classe ou vous 1067 00:48:05,960 --> 00:48:09,480 avec un partenaire à côté de vous vont de passer quelques minutes à discuter 1068 00:48:09,480 --> 00:48:14,980 sur la façon dont nous allions sur la résolution ou la création d'un tel programme. 1069 00:48:14,980 --> 00:48:17,100 >> Donc maintenant, nous voulons pour créer un program-- 1070 00:48:17,100 --> 00:48:19,560 nous allons appeler upper.c-- que les convertis 1071 00:48:19,560 --> 00:48:24,787 un mot en minuscules à une classe supérieure majuscules string--, désolé. 1072 00:48:24,787 --> 00:48:26,370 Parole dans les chaînes, désolé, est synonyme. 1073 00:48:26,370 --> 00:48:28,370 Je vais les changer pour signifier la même chose. 1074 00:48:28,370 --> 00:48:32,270 1075 00:48:32,270 --> 00:48:33,499 >> Ouais. 1076 00:48:33,499 --> 00:48:34,540 Prenez quelques minutes. 1077 00:48:34,540 --> 00:48:37,130 Il ne doit pas être écrite dans une langue quelconque. 1078 00:48:37,130 --> 00:48:39,890 Juste au code pseudo ou logiquement comment nous pourrions même 1079 00:48:39,890 --> 00:48:42,083 aller à faire un tel problème. 1080 00:48:42,083 --> 00:48:42,583 Ouais. 1081 00:48:42,583 --> 00:48:49,881 1082 00:48:49,881 --> 00:48:52,780 >> [SIDE CONVERSATION] 1083 00:48:52,780 --> 00:49:18,680 1084 00:49:18,680 --> 00:49:22,130 >> Je aussi remarqué que vous les gars can-- Je vois déjà type de programme. 1085 00:49:22,130 --> 00:49:24,600 Je suppose que mon manque de mode présentateur est un problème. 1086 00:49:24,600 --> 00:49:27,410 Mais c'est OK. 1087 00:49:27,410 --> 00:49:30,410 >> [SIDE CONVERSATION] 1088 00:49:30,410 --> 00:50:03,589 1089 00:50:03,589 --> 00:50:04,380 Oui, s'il vous plaît, les gars. 1090 00:50:04,380 --> 00:50:05,400 Venez chercher Candy. 1091 00:50:05,400 --> 00:50:06,372 Venez chercher Candy. 1092 00:50:06,372 --> 00:50:07,698 >> Public: Oui! 1093 00:50:07,698 --> 00:50:09,958 >> [SIDE CONVERSATION] 1094 00:50:09,958 --> 00:50:16,101 1095 00:50:16,101 --> 00:50:18,100 ANDI PENG: Aussi, ouais, Je vais commencer à jeter des bonbons 1096 00:50:18,100 --> 00:50:20,280 à des personnes qui ne répondent pas aux questions. 1097 00:50:20,280 --> 00:50:22,260 Donc, vous devriez tous répondre à des questions. 1098 00:50:22,260 --> 00:50:24,895 Ou je suppose que les gens qui ne répondre aux questions. 1099 00:50:24,895 --> 00:50:26,070 Ouais, inverse. 1100 00:50:26,070 --> 00:50:28,570 >> [SIDE CONVERSATION] 1101 00:50:28,570 --> 00:51:13,399 1102 00:51:13,399 --> 00:51:14,274 AUDIENCE: [inaudible] 1103 00:51:14,274 --> 00:51:17,300 1104 00:51:17,300 --> 00:51:18,340 >> ANDI PENG: Ouais. 1105 00:51:18,340 --> 00:51:19,340 Ouais. 1106 00:51:19,340 --> 00:51:22,840 >> [SIDE CONVERSATION] 1107 00:51:22,840 --> 00:51:40,700 1108 00:51:40,700 --> 00:51:41,590 >> Très bien, les gars. 1109 00:51:41,590 --> 00:51:44,731 Prenez, comme, 10 secondes de plus. 1110 00:51:44,731 --> 00:51:48,210 >> [SIDE CONVERSATION] 1111 00:51:48,210 --> 00:52:10,600 1112 00:52:10,600 --> 00:52:11,750 >> Ok les gars. 1113 00:52:11,750 --> 00:52:14,920 Donc, avant de commencer à essayer de écrire réellement physiquement code, 1114 00:52:14,920 --> 00:52:20,650 une bonne habitude à développer est que nous voulons premier type de raison 1115 00:52:20,650 --> 00:52:22,737 logiquement comment nous pourrions le faire. 1116 00:52:22,737 --> 00:52:24,570 Vous voulez vous assurer, avant de vous physiquement 1117 00:52:24,570 --> 00:52:27,210 commencer à essayer de coder dans Mario, que vous faites 1118 00:52:27,210 --> 00:52:28,870 vous que vous avez votre pseudo. 1119 00:52:28,870 --> 00:52:31,235 Qui vous emmène à travers ce que vous avez besoin pour créer de manière 1120 00:52:31,235 --> 00:52:33,360 que, lorsque vous physiquement écrire votre programme plus tard, 1121 00:52:33,360 --> 00:52:36,640 vous êtes mieux en mesure de rattraper les erreurs dans votre code et des choses comme ça. 1122 00:52:36,640 --> 00:52:40,460 >> Donc, nous allons commencer tout by-- en anglais, en pseudo, 1123 00:52:40,460 --> 00:52:43,320 toute personne ne veut donner moi une explication générique 1124 00:52:43,320 --> 00:52:46,250 de la façon dont nous allions prendre? 1125 00:52:46,250 --> 00:52:48,102 Ouais. 1126 00:52:48,102 --> 00:52:49,664 >> AUDIENCE: [inaudible]. 1127 00:52:49,664 --> 00:52:50,830 ANDI PENG: Bien sûr, pas de soucis. 1128 00:52:50,830 --> 00:52:57,233 AUDIENCE: Pouvez-vous lui demander de poser ou quelqu'un pour obtenir chaîne 1-- ouais, ficelle, 1129 00:52:57,233 --> 00:52:58,160 et alors-- 1130 00:52:58,160 --> 00:52:59,826 >> ANDI PENG: Oui, si cela est un bon début. 1131 00:52:59,826 --> 00:53:01,972 Je vais commencer à taper, désolé, que vous parlez. 1132 00:53:01,972 --> 00:53:02,471 Ainsi-- 1133 00:53:02,471 --> 00:53:05,698 >> AUDIENCE: --la minuscules chiffres sont plus élevés, non? 1134 00:53:05,698 --> 00:53:08,519 Ou les lettres minuscules avoir un nombre élevé? 1135 00:53:08,519 --> 00:53:09,310 ANDI PENG: Exactement. 1136 00:53:09,310 --> 00:53:16,156 AUDIENCE: Alors nous soustrayons 32 à partir de ce que [inaudible]. 1137 00:53:16,156 --> 00:53:28,600 1138 00:53:28,600 --> 00:53:29,870 >> ANDI PENG: Grande. 1139 00:53:29,870 --> 00:53:35,020 Donc, nous avons un genre de sentiment général de la façon de travailler sur ce problème. 1140 00:53:35,020 --> 00:53:40,060 Sachant que nous avons appris du genre la voie physique que cordes 1141 00:53:40,060 --> 00:53:43,320 sont stockées dans la mémoire, ce que vous faites déjà 1142 00:53:43,320 --> 00:53:45,920 savez que vous allez probablement avoir à l'écrire dans votre code 1143 00:53:45,920 --> 00:53:48,288 pour se déplacer à travers la chaîne? 1144 00:53:48,288 --> 00:53:49,259 >> Public: Pour boucle. 1145 00:53:49,259 --> 00:53:50,550 ANDI PENG: Une boucle for, exactement. 1146 00:53:50,550 --> 00:53:56,540 1147 00:53:56,540 --> 00:53:57,220 Génial. 1148 00:53:57,220 --> 00:54:00,539 Donc, nous avons une sorte de générique pseudo écrit 1149 00:54:00,539 --> 00:54:02,330 ce genre de se donner vous des notes sur la façon dont vous 1150 00:54:02,330 --> 00:54:03,900 serait déplacer résoudre le problème. 1151 00:54:03,900 --> 00:54:06,150 Maintenant que vous avez cela, vous peut référencer pour plus tard 1152 00:54:06,150 --> 00:54:08,233 lorsque vous essayez de réellement écrire votre code. 1153 00:54:08,233 --> 00:54:10,240 Ainsi, nous pouvons réellement aller ici. 1154 00:54:10,240 --> 00:54:25,130 Et je dois une fonction appelée upper.c-- là, il est-- de seulement un modèle vierge 1155 00:54:25,130 --> 00:54:28,510 dès maintenant que vous les gars vont me aider à comprendre sur la façon d'écrire 1156 00:54:28,510 --> 00:54:30,430 cette ligne de code-- pas la ligne de code. 1157 00:54:30,430 --> 00:54:32,890 Ce sera plusieurs lignes de code. 1158 00:54:32,890 --> 00:54:35,710 >> Lors du démarrage de toute sorte de pset vierge, ce qui est 1159 00:54:35,710 --> 00:54:37,418 la première chose que je dois se rappeler de le faire? 1160 00:54:37,418 --> 00:54:39,290 >> AUDIENCE: [inaudible]. 1161 00:54:39,290 --> 00:54:41,000 >> ANDI PENG: Grande Yep. 1162 00:54:41,000 --> 00:54:41,500 Comprendre. 1163 00:54:41,500 --> 00:54:44,850 1164 00:54:44,850 --> 00:54:47,130 stdio.h. 1165 00:54:47,130 --> 00:54:49,640 Souvent, ceci est l'un des Les erreurs les plus faciles les personnes 1166 00:54:49,640 --> 00:54:51,598 fera quand ils sont l'écriture, est qu'ils vont 1167 00:54:51,598 --> 00:54:54,180 oublier d'inclure une importante bibliothèque dont ils ont besoin. 1168 00:54:54,180 --> 00:54:57,689 Donc, si il est des heures de bureau et vous êtes comme, Je ne sais pas pourquoi mon code ne fonctionne pas. 1169 00:54:57,689 --> 00:54:59,230 Pouvez-vous me dire pourquoi ça ne marche pas? 1170 00:54:59,230 --> 00:55:00,730 Nous allons dire que vous avez #include? 1171 00:55:00,730 --> 00:55:02,520 Vous devriez #inclure il. 1172 00:55:02,520 --> 00:55:03,270 D'ACCORD. 1173 00:55:03,270 --> 00:55:07,230 >> Nous avons donc la norme I / O ici. 1174 00:55:07,230 --> 00:55:10,740 Est-ce la seule bibliothèque nous allons avoir besoin d'ici? 1175 00:55:10,740 --> 00:55:12,681 Quoi d'autre allons-nous faire? 1176 00:55:12,681 --> 00:55:13,180 Pardon. 1177 00:55:13,180 --> 00:55:14,562 Quelqu'un vient il crier? 1178 00:55:14,562 --> 00:55:15,666 >> AUDIENCE: [inaudible]. 1179 00:55:15,666 --> 00:55:16,666 PENG ANDI: Il vous allez. 1180 00:55:16,666 --> 00:55:20,320 1181 00:55:20,320 --> 00:55:21,440 D'ACCORD. 1182 00:55:21,440 --> 00:55:26,070 Et comment dois-je aller sur le démarrage de toute sorte de la fonction, toute sorte de fonction principale 1183 00:55:26,070 --> 00:55:28,760 au sein de notre programme? 1184 00:55:28,760 --> 00:55:30,020 Int principale. 1185 00:55:30,020 --> 00:55:34,531 1186 00:55:34,531 --> 00:55:35,030 D'ACCORD. 1187 00:55:35,030 --> 00:55:35,970 Que dois-je mettre à l'intérieur ici? 1188 00:55:35,970 --> 00:55:37,640 Quelle est la première chose que vous voulez faire? 1189 00:55:37,640 --> 00:55:39,910 Si nous voulons obtenir un chaîne de l'utilisateur, 1190 00:55:39,910 --> 00:55:43,870 qu'est-ce qu'on va avoir à faire sur cette première ligne? 1191 00:55:43,870 --> 00:55:46,120 Désolé, vous les gars se sentent juste libre de parler haut et fort. 1192 00:55:46,120 --> 00:55:47,123 Juste crier que ce soit. 1193 00:55:47,123 --> 00:55:48,772 >> AUDIENCE: Demandez à l'utilisateur? 1194 00:55:48,772 --> 00:55:49,980 ANDI PENG: Comment faisons-nous cela? 1195 00:55:49,980 --> 00:55:51,873 Ask-- je vais taper "demander à l'utilisateur"? 1196 00:55:51,873 --> 00:55:52,600 >> AUDIENCE: Printf. 1197 00:55:52,600 --> 00:55:54,341 >> ANDI PENG: OK. 1198 00:55:54,341 --> 00:55:54,840 Printf. 1199 00:55:54,840 --> 00:55:57,372 Ce que je veux à printf? 1200 00:55:57,372 --> 00:55:58,776 >> AUDIENCE: Type dans quelque chose. 1201 00:55:58,776 --> 00:56:02,760 1202 00:56:02,760 --> 00:56:03,840 >> ANDI PENG: Comme ça? 1203 00:56:03,840 --> 00:56:05,430 Guys, prétendent que je suis un ordinateur. 1204 00:56:05,430 --> 00:56:08,475 Physiquement me dire à chaque étape que je dois taper ici? 1205 00:56:08,475 --> 00:56:09,600 Est-ce que je fais quelque chose de mal? 1206 00:56:09,600 --> 00:56:10,743 Aurais-je dû tapé quelque chose? 1207 00:56:10,743 --> 00:56:11,690 >> AUDIENCE: Vous devez citations. 1208 00:56:11,690 --> 00:56:12,380 >> ANDI PENG: Je dois citations? 1209 00:56:12,380 --> 00:56:12,880 D'ACCORD. 1210 00:56:12,880 --> 00:56:15,520 1211 00:56:15,520 --> 00:56:16,297 D'ACCORD. 1212 00:56:16,297 --> 00:56:17,698 >> Public: Et puis la nouvelle ligne. 1213 00:56:17,698 --> 00:56:21,434 1214 00:56:21,434 --> 00:56:22,465 Point-virgule. 1215 00:56:22,465 --> 00:56:23,340 ANDI PENG: point-virgule? 1216 00:56:23,340 --> 00:56:24,060 D'ACCORD. 1217 00:56:24,060 --> 00:56:24,560 Bien. 1218 00:56:24,560 --> 00:56:27,060 >> Public: Et peut-être spécifier que vous voulez en minuscules? 1219 00:56:27,060 --> 00:56:30,120 1220 00:56:30,120 --> 00:56:31,415 >> ANDI PENG: Grande. 1221 00:56:31,415 --> 00:56:33,540 Vous les gars moques de moi oublier de mettre un point-virgule. 1222 00:56:33,540 --> 00:56:36,350 Je vous garantis quelque part au cours de cette classe, 1223 00:56:36,350 --> 00:56:38,260 vous allez oublier de mettre un point-virgule, et il 1224 00:56:38,260 --> 00:56:41,116 vous prendre trois heures pour comprendre pourquoi votre code ne fonctionne pas. 1225 00:56:41,116 --> 00:56:42,240 Il est arrivé à nous tous. 1226 00:56:42,240 --> 00:56:43,950 Ce sera probablement vous arriver. 1227 00:56:43,950 --> 00:56:46,352 Prenez une bonne habitude d'utiliser des points-virgules. 1228 00:56:46,352 --> 00:56:46,852 D'ACCORD. 1229 00:56:46,852 --> 00:56:49,010 >> AUDIENCE: Voulez-vous de faire la barre oblique inverse dans? 1230 00:56:49,010 --> 00:56:50,398 >> ANDI PENG: Bien sûr. 1231 00:56:50,398 --> 00:56:51,856 Voulez-vous faire la barre oblique inverse dans? 1232 00:56:51,856 --> 00:56:53,020 >> Public: Oui. 1233 00:56:53,020 --> 00:56:54,330 >> ANDI PENG: Grande. 1234 00:56:54,330 --> 00:56:54,830 D'ACCORD. 1235 00:56:54,830 --> 00:56:57,872 Qu'est ce que je fais apres? 1236 00:56:57,872 --> 00:56:58,964 >> AUDIENCE: Obtenir chaîne. 1237 00:56:58,964 --> 00:56:59,880 ANDI PENG: Obtenez chaîne. 1238 00:56:59,880 --> 00:57:03,080 1239 00:57:03,080 --> 00:57:03,830 Alors qu'est-ce que je tape? 1240 00:57:03,830 --> 00:57:04,233 Quelqu'un? 1241 00:57:04,233 --> 00:57:05,040 >> AUDIENCE: String s. 1242 00:57:05,040 --> 00:57:05,873 >> ANDI PENG: String s. 1243 00:57:05,873 --> 00:57:07,251 AUDIENCE: GetString. 1244 00:57:07,251 --> 00:57:09,000 ANDI PENG: Quelqu'un, pouvez-vous me dire où 1245 00:57:09,000 --> 00:57:12,000 cette fonction GetString vient? 1246 00:57:12,000 --> 00:57:13,660 >> AUDIENCE: string.h. 1247 00:57:13,660 --> 00:57:15,256 >> ANDI PENG: string.h? 1248 00:57:15,256 --> 00:57:16,715 Vous pensez qu'il est de string.h? 1249 00:57:16,715 --> 00:57:17,830 >> AUDIENCE: [inaudible]. 1250 00:57:17,830 --> 00:57:18,830 >> PENG ANDI: Il vous allez. 1251 00:57:18,830 --> 00:57:21,280 Il est de CS50.h. 1252 00:57:21,280 --> 00:57:24,530 Si vous êtes toujours confus sur l'endroit où un fichier de bibliothèque est ou un fichier d'en-tête est, 1253 00:57:24,530 --> 00:57:28,450 google string.h littéralement, et je vais vous dire 1254 00:57:28,450 --> 00:57:30,450 ce sont toutes les fonctions qui sont en string.h. 1255 00:57:30,450 --> 00:57:31,340 D'ACCORD. 1256 00:57:31,340 --> 00:57:35,210 >> Alors, maintenant que je l'ai créé une chaîne et je l'ai invite l'utilisateur pour lui, 1257 00:57:35,210 --> 00:57:38,770 Je l'ai stocké dans une variable s nommés, que dois-je faire maintenant? 1258 00:57:38,770 --> 00:57:40,652 >> AUDIENCE: vérifier si elle est en minuscules. 1259 00:57:40,652 --> 00:57:41,360 ANDI PENG: Désolé? 1260 00:57:41,360 --> 00:57:42,545 AUDIENCE: vérifier si elle est en minuscules. 1261 00:57:42,545 --> 00:57:44,045 ANDI PENG: Très bien, nous allons le faire. 1262 00:57:44,045 --> 00:57:45,857 Comment je fais ca? 1263 00:57:45,857 --> 00:57:47,940 En fait, pour l'application de la classe en ce moment, 1264 00:57:47,940 --> 00:57:50,330 nous allons juste supposer que tout 1265 00:57:50,330 --> 00:57:52,620 que l'entrée de nous est déjà en minuscules. 1266 00:57:52,620 --> 00:57:55,430 Si vous voulez vérifier, vous le feriez il suffit d'ajouter une instruction conditionnelle 1267 00:57:55,430 --> 00:57:59,640 qui vérifiait, qui traversait chaque élément de tableau unique 1268 00:57:59,640 --> 00:58:02,540 et vérifié si elle est entre certaines valeurs. 1269 00:58:02,540 --> 00:58:05,627 Je oublie ce que le nombre des valeurs de minuscules sont. 1270 00:58:05,627 --> 00:58:07,210 Vous pouvez chercher sur la table ASCII. 1271 00:58:07,210 --> 00:58:08,800 Mais oui, ce est un très bon point. 1272 00:58:08,800 --> 00:58:11,758 Mais maintenant, nous allons juste supposons que toutes les cordes nous entrée 1273 00:58:11,758 --> 00:58:13,130 sont en minuscules. 1274 00:58:13,130 --> 00:58:13,870 D'ACCORD. 1275 00:58:13,870 --> 00:58:18,069 >> Alors, comment pourrais-je aller sur ce problème prochaine? 1276 00:58:18,069 --> 00:58:18,860 Public: Pour boucle. 1277 00:58:18,860 --> 00:58:19,340 ANDI Peng: Pour la boucle? 1278 00:58:19,340 --> 00:58:19,839 D'ACCORD. 1279 00:58:19,839 --> 00:58:20,847 Dites-moi ce qu'il faut taper. 1280 00:58:20,847 --> 00:58:25,230 >> Public: Pour int i est égal à 0. 1281 00:58:25,230 --> 00:58:27,230 >> ANDI PENG: OK. 1282 00:58:27,230 --> 00:58:36,350 >> AUDIENCE: Oh, en fait, alors vous faire une virgule et faire n est égal à strlen. 1283 00:58:36,350 --> 00:58:38,940 >> ANDI PENG: chose donc important que je pense qu'elle a remarqué ici 1284 00:58:38,940 --> 00:58:42,936 est que nous ne devons dire int n la deuxième fois que nous avons fait cela. 1285 00:58:42,936 --> 00:58:45,060 Il suffit de savoir que, dans un des boucle lorsque vous déclarer, 1286 00:58:45,060 --> 00:58:47,934 vous ne fait pas besoin de l'int de la deuxième fois que vous faites une variable. 1287 00:58:47,934 --> 00:58:51,202 Vous pouvez dire n strlen. 1288 00:58:51,202 --> 00:58:52,620 >> AUDIENCE: de l'art. 1289 00:58:52,620 --> 00:58:53,510 >> ANDI PENG: s. 1290 00:58:53,510 --> 00:58:54,706 D'ACCORD. 1291 00:58:54,706 --> 00:58:58,370 >> AUDIENCE: Puis un point-virgule. 1292 00:58:58,370 --> 00:59:00,130 >> ANDI PENG: Bien sûr. 1293 00:59:00,130 --> 00:59:04,050 >> Public: Et puis [inaudible] n. 1294 00:59:04,050 --> 00:59:07,480 1295 00:59:07,480 --> 00:59:09,460 Puis i ++. 1296 00:59:09,460 --> 00:59:11,780 >> ANDI PENG: Grande. 1297 00:59:11,780 --> 00:59:12,280 Bien. 1298 00:59:12,280 --> 00:59:14,690 Que voulons-nous à l'intérieur de cette boucle for maintenant? 1299 00:59:14,690 --> 00:59:17,820 Rappelez-vous, si nous allons courir à travers une chaîne et courir à travers un tableau, 1300 00:59:17,820 --> 00:59:19,287 nous voulons vérifier les choses en elle. 1301 00:59:19,287 --> 00:59:20,370 Qu'allons-nous besoin? 1302 00:59:20,370 --> 00:59:23,070 1303 00:59:23,070 --> 00:59:26,900 Ceci est sorte de la partie difficile maintenant. 1304 00:59:26,900 --> 00:59:27,960 Quelqu'un a une idée? 1305 00:59:27,960 --> 00:59:34,160 1306 00:59:34,160 --> 00:59:34,690 >> D'ACCORD. 1307 00:59:34,690 --> 00:59:37,830 Alors d'abord, comment pouvons-nous même l'accès? 1308 00:59:37,830 --> 00:59:41,610 Comment pouvons-nous même la première chèque ou accéder à un élément dans la matrice? 1309 00:59:41,610 --> 00:59:42,920 Comment fait-on cela? 1310 00:59:42,920 --> 00:59:47,120 Quelle est la notation que nous utilisons pour faire cela? 1311 00:59:47,120 --> 00:59:50,920 Quel est le nom de ce tableau appelé? 1312 00:59:50,920 --> 00:59:52,400 Il a appelé s, la droite? 1313 00:59:52,400 --> 00:59:54,850 >> Rappelez-vous, toute la chaîne est toujours un tableau. 1314 00:59:54,850 --> 00:59:58,210 Donc, de la tranche i, non? 1315 00:59:58,210 --> 01:00:01,360 Parce que la valeur actuelle est ou de la valeur de l'indice nous allons vérifier. 1316 01:00:01,360 --> 01:00:05,156 Et nous allons établir que l'égalité to-- nous voulons une valeur en minuscules, non? 1317 01:00:05,156 --> 01:00:07,530 Nous voulons transformer ce lower-- Désolé, nous voulons une majuscule. 1318 01:00:07,530 --> 01:00:10,014 Nous voulons tourner la minuscule valeur dans une majuscule. 1319 01:00:10,014 --> 01:00:11,805 Et donc like-- Je suis désolé, Quel est votre nom? 1320 01:00:11,805 --> 01:00:12,580 >> AUDIENCE: Heidi. 1321 01:00:12,580 --> 01:00:12,940 >> ANDI PENG: Désolé? 1322 01:00:12,940 --> 01:00:13,280 >> AUDIENCE: Heidi. 1323 01:00:13,280 --> 01:00:13,988 >> ANDI PENG: Heidi. 1324 01:00:13,988 --> 01:00:15,850 Comme dit Heidi d'abord, nous sommes probablement 1325 01:00:15,850 --> 01:00:20,330 allez avoir besoin the-- nous sommes probablement devoir soustraire 1326 01:00:20,330 --> 01:00:22,630 32 à partir de tout ce qui est Charc, non? 1327 01:00:22,630 --> 01:00:24,680 Parce que sur un ASCII table, la différence 1328 01:00:24,680 --> 01:00:27,790 entre une lettre minuscule et une lettre majuscule est de 32. 1329 01:00:27,790 --> 01:00:31,290 Alors, quand nous faisons cela, nous sommes probablement allez vouloir soustraire 32, non? 1330 01:00:31,290 --> 01:00:33,910 >> Nous allons donc faire s i. 1331 01:00:33,910 --> 01:00:37,590 1332 01:00:37,590 --> 01:00:41,200 Tout le monde comprend pourquoi je l'ai fait? 1333 01:00:41,200 --> 01:00:45,760 Parce que maintenant, dans notre tableau, Nous vérifions l'indice 0th, non? 1334 01:00:45,760 --> 01:00:49,190 Et de l'indice du 0ème chaîne, qui est le premier caractère. 1335 01:00:49,190 --> 01:00:51,820 Et ce personnage, nous allons à supposer qu'il est minuscule. 1336 01:00:51,820 --> 01:00:55,980 Si nous voulons faire en majuscules, nous devez soustraire 32 de sa valeur, 1337 01:00:55,980 --> 01:00:58,620 parce que dans notre ASCII table, qui est comment nous l'obtenons 1338 01:00:58,620 --> 01:01:01,600 correspondant à l'autre valeur qui rend majuscules. 1339 01:01:01,600 --> 01:01:03,714 Tout le monde comprend cela? 1340 01:01:03,714 --> 01:01:04,213 Ouais. 1341 01:01:04,213 --> 01:01:06,530 >> Public: Pourriez-vous aussi ne minuscules un minus-- 1342 01:01:06,530 --> 01:01:08,080 >> ANDI PENG: Ouais, donc voilà effectivement très belle. 1343 01:01:08,080 --> 01:01:10,455 Je vais revenir à ce que question après que nous faisons cela. 1344 01:01:10,455 --> 01:01:11,060 Ouais. 1345 01:01:11,060 --> 01:01:13,940 Et puis, si je veux voir ce qui se passe, 1346 01:01:13,940 --> 01:01:16,180 Je vais probablement vouloir imprimer, non? 1347 01:01:16,180 --> 01:01:19,930 Quelqu'un me dire ce que Je veux imprimer ici. 1348 01:01:19,930 --> 01:01:29,160 >> AUDIENCE: printf pour cent c barre oblique inverse [inaudible]. 1349 01:01:29,160 --> 01:01:33,570 Voilà la valeur de la i de [inaudible]. 1350 01:01:33,570 --> 01:01:34,614 >> ANDI PENG: s i, désolé? 1351 01:01:34,614 --> 01:01:35,530 AUDIENCE: [inaudible]. 1352 01:01:35,530 --> 01:01:38,550 1353 01:01:38,550 --> 01:01:39,550 ANDI Peng: Je ne sais pas. 1354 01:01:39,550 --> 01:01:40,600 Que pensez-vous? 1355 01:01:40,600 --> 01:01:44,016 >> AUDIENCE: Eh bien, je wouldn't-- Je suppose que je ne serais pas bring-- 1356 01:01:44,016 --> 01:01:46,944 Je voudrais prendre le à l'intérieur, parce que [inaudible]. 1357 01:01:46,944 --> 01:01:49,726 1358 01:01:49,726 --> 01:01:51,392 ANDI PENG: Oh, vous l'aurait fait? 1359 01:01:51,392 --> 01:01:53,867 AUDIENCE: Ouais. 1360 01:01:53,867 --> 01:01:56,700 ANDI PENG: Laissons la manière il est, et je vais vous expliquer pourquoi plus tard. 1361 01:01:56,700 --> 01:01:58,533 Rappelez-vous, même lorsque vous avoir une place de titulaire, 1362 01:01:58,533 --> 01:02:00,701 vous voulez mettre des parenthèses autour d'elle. 1363 01:02:00,701 --> 01:02:01,200 Bien. 1364 01:02:01,200 --> 01:02:04,810 Donc, ce devrait être une fonction solide ici. 1365 01:02:04,810 --> 01:02:06,370 Lançons et voir si il compile. 1366 01:02:06,370 --> 01:02:08,750 Assurez supérieure. 1367 01:02:08,750 --> 01:02:09,250 Uh-oh. 1368 01:02:09,250 --> 01:02:12,030 1369 01:02:12,030 --> 01:02:13,340 Qui ne semble pas trop bon. 1370 01:02:13,340 --> 01:02:14,507 Pourquoi cela arrive-t-il? 1371 01:02:14,507 --> 01:02:17,340 Comme pour toute erreur, vous voulez aller en arrière et recommencer avec le premier, 1372 01:02:17,340 --> 01:02:20,630 parce que généralement les causes d'une erreur beaucoup d'autres erreurs après elle. 1373 01:02:20,630 --> 01:02:26,700 Ici, nous voyons upper.c: 18: 25, qui raconte moi dans ce programme nommé upper.c, 1374 01:02:26,700 --> 01:02:33,800 sur la ligne 18, erreur déclarant implicitement bibliothèque de fonctions strlen avec le type 1375 01:02:33,800 --> 01:02:36,330 blah unassigned--, je ne sais pas ce qui se passe après. 1376 01:02:36,330 --> 01:02:39,990 >> Tout ce qu'il me disait en ce moment est que quelque chose se passe sur le strlen. 1377 01:02:39,990 --> 01:02:43,520 Et l'ordinateur est confus, parce il est comme, je ne sais pas ce qui est strlen? 1378 01:02:43,520 --> 01:02:45,520 Qu'est-ce qui a probablement vous dire que vous êtes absent? 1379 01:02:45,520 --> 01:02:46,490 >> Public: Vous êtes absent [inaudible]. 1380 01:02:46,490 --> 01:02:47,630 >> ANDI PENG: Vous avez raison. 1381 01:02:47,630 --> 01:02:49,510 Exactement. 1382 01:02:49,510 --> 01:02:52,140 Donc, cela est où il est important de veiller à 1383 01:02:52,140 --> 01:02:56,970 que chaque fonction que vous utilisez dans votre Code est d'avoir la tête correcte 1384 01:02:56,970 --> 01:02:59,660 déposer pour la bibliothèque, ou bien vous allez obtenir beaucoup d'erreurs 1385 01:02:59,660 --> 01:03:01,150 et votre code ne va pas savoir ce qui se passe. 1386 01:03:01,150 --> 01:03:03,050 Donc, nous allons inclure string.h ici. 1387 01:03:03,050 --> 01:03:06,270 >> Maintenant, quand nous essayons de compiler supérieure. 1388 01:03:06,270 --> 01:03:08,410 Compiler correctement. 1389 01:03:08,410 --> 01:03:09,960 Lançons ce programme. 1390 01:03:09,960 --> 01:03:12,000 Donc taper quelque chose en minuscules. 1391 01:03:12,000 --> 01:03:14,920 Qu'est-ce que vous les gars voulez taper? 1392 01:03:14,920 --> 01:03:16,546 Crier quelque chose. 1393 01:03:16,546 --> 01:03:17,920 Tout droit, Charly vient d'arriver. 1394 01:03:17,920 --> 01:03:18,990 Nous allons saisir le nom de Charly. 1395 01:03:18,990 --> 01:03:21,670 1396 01:03:21,670 --> 01:03:22,840 >> Charly en minuscules. 1397 01:03:22,840 --> 01:03:27,742 Et nous espérons, espérons-le, cela est aller à crier et cracher 1398 01:03:27,742 --> 01:03:28,575 Charly en majuscules. 1399 01:03:28,575 --> 01:03:30,830 Yay! 1400 01:03:30,830 --> 01:03:33,430 Tout le monde comprend comment Je suis allé sur la résolution de cela? 1401 01:03:33,430 --> 01:03:36,190 La façon que je peux manipuler en utilisant des nombres entiers 1402 01:03:36,190 --> 01:03:39,410 pour résoudre ce que Je veux faire dans les chaînes, 1403 01:03:39,410 --> 01:03:44,390 parce que les caractères et les entiers peuvent être référencés de la même manière parce 1404 01:03:44,390 --> 01:03:45,540 de la cartographie ASCII. 1405 01:03:45,540 --> 01:03:52,890 >> Donc, pour revenir à votre question, si je voulu mettre ici au lieu de 32 1406 01:03:52,890 --> 01:03:58,959 A moins majuscules en minuscules comme un que cela pourrait fonctionner tout aussi bien, 1407 01:03:58,959 --> 01:04:01,750 parce que ce tout simplement la différence entre ces deux valeurs. 1408 01:04:01,750 --> 01:04:09,570 Si je veux faire de cette charly again--. 1409 01:04:09,570 --> 01:04:10,320 Oh non. 1410 01:04:10,320 --> 01:04:11,820 Je pense que nous sommes allés dans le mauvais sens, oui? 1411 01:04:11,820 --> 01:04:13,260 >> AUDIENCE: [inaudible] a minuscule. 1412 01:04:13,260 --> 01:04:14,260 >> PENG ANDI: Il vous allez. 1413 01:04:14,260 --> 01:04:22,380 1414 01:04:22,380 --> 01:04:22,880 Yep. 1415 01:04:22,880 --> 01:04:24,920 Et sur crache charly. 1416 01:04:24,920 --> 01:04:28,020 Donc soyez prudent lorsque vous soustraction des valeurs 1417 01:04:28,020 --> 01:04:30,400 de se rappeler que l'on est plus grande que l'autre. 1418 01:04:30,400 --> 01:04:35,220 Par exemple, ici je oublié qui est en fait une minuscule 1419 01:04:35,220 --> 01:04:38,540 supérieure majuscules A. Alors, quand je essayé de les soustraire l'autre sens 1420 01:04:38,540 --> 01:04:40,600 autour, je suis négative 32. 1421 01:04:40,600 --> 01:04:42,800 Et mon ordinateur était comme, Je ne sais pas ce qui est. 1422 01:04:42,800 --> 01:04:45,810 Il est probable que quelques-uns au hasard valeur qui est pas très bon. 1423 01:04:45,810 --> 01:04:48,760 Et assurez-vous donc que vous êtes soustrayant dans la longueur correcte 1424 01:04:48,760 --> 01:04:52,831 pour trouver le personnage que vous voulez. 1425 01:04:52,831 --> 01:04:53,330 D'ACCORD. 1426 01:04:53,330 --> 01:04:58,550 Quelqu'un est confus sur la façon dont nous est allé sur l'écriture de cette fonction? 1427 01:04:58,550 --> 01:04:59,180 D'ACCORD. 1428 01:04:59,180 --> 01:05:04,830 Donc en fait, une fonction déjà existe dans la bibliothèque appelé ctype.h. 1429 01:05:04,830 --> 01:05:06,417 Appelée ctype.h de la bibliothèque. 1430 01:05:06,417 --> 01:05:08,500 Cette fonction est en fait déjà écrit pour vous. 1431 01:05:08,500 --> 01:05:10,820 Il a appelé à supérieure. 1432 01:05:10,820 --> 01:05:13,027 >> Et donc à des fins de ce pset, vous allez 1433 01:05:13,027 --> 01:05:15,860 de constater que vous voulez vraiment utiliser beaucoup de les fonctions contenues 1434 01:05:15,860 --> 01:05:17,390 au sein de la bibliothèque de ctype. 1435 01:05:17,390 --> 01:05:21,040 Pour supérieure, d'abaisser, est supérieure, est lower-- ce sont toutes les fonctions 1436 01:05:21,040 --> 01:05:24,914 que vous serez en mesure d'utiliser de très, très rapidement dans votre propre code qui 1437 01:05:24,914 --> 01:05:26,080 fait exactement ce qu'il fait. 1438 01:05:26,080 --> 01:05:28,941 Nous avons écrit comment convertir une chaîne en majuscules. 1439 01:05:28,941 --> 01:05:31,440 Mais cela est en fait le code que quelqu'un d'autre a écrit 1440 01:05:31,440 --> 01:05:33,800 et que vous pouvez accéder par l'intermédiaire d'une fonction différente. 1441 01:05:33,800 --> 01:05:34,300 Ouais? 1442 01:05:34,300 --> 01:05:39,570 >> Auditoire: Alors, vous venez de copier un de là et de le faire pour chaque lettre? 1443 01:05:39,570 --> 01:05:42,070 >> ANDI PENG: Oui, parce que je ne fais pas soucier des valeurs d'un. 1444 01:05:42,070 --> 01:05:44,540 Je me soucie simplement que la différence entre elles est de 32, non? 1445 01:05:44,540 --> 01:05:48,210 La différence entre minuscules b et B majuscule est également 32. 1446 01:05:48,210 --> 01:05:50,860 Et la différence entre le c et majuscules C est toujours 32. 1447 01:05:50,860 --> 01:05:53,235 >> Je dois juste se soucier de la la différence entre les deux, 1448 01:05:53,235 --> 01:05:56,666 parce que toutes les lettres suivre le même schéma, à droite? 1449 01:05:56,666 --> 01:05:58,540 Si je dois la différence entre l'un d'eux, 1450 01:05:58,540 --> 01:06:01,050 Je sais ce que la différence entre chacun d'eux est. 1451 01:06:01,050 --> 01:06:01,740 Bonne question. 1452 01:06:01,740 --> 01:06:04,090 Ouais. 1453 01:06:04,090 --> 01:06:06,660 Tout le monde la bonne? 1454 01:06:06,660 --> 01:06:09,080 D'ACCORD. 1455 01:06:09,080 --> 01:06:09,580 Oop. 1456 01:06:09,580 --> 01:06:14,380 1457 01:06:14,380 --> 01:06:15,270 >> D'ACCORD. 1458 01:06:15,270 --> 01:06:20,310 Donc, un autre concept qui est va être très utile comme vous 1459 01:06:20,310 --> 01:06:22,570 continuer à développer votre code est cette idée 1460 01:06:22,570 --> 01:06:25,430 de créer des fonctions ou l'abstraction. 1461 01:06:25,430 --> 01:06:28,479 Donc maintenant, nous avons tous pris l'algèbre. 1462 01:06:28,479 --> 01:06:31,770 En algèbre, on vous apprend qu'il n'y a cette chose merveilleuse appelée fonction 1463 01:06:31,770 --> 01:06:35,300 linge, où si vous entrée un type de numéro, 1464 01:06:35,300 --> 01:06:38,720 il traverse cette fonction merveilleuse et ressorte une sortie différente, non? 1465 01:06:38,720 --> 01:06:42,220 Dans le code, la même chose arrive dans toute sorte de fonction. 1466 01:06:42,220 --> 01:06:48,230 >> Donc je pouvais physiquement écrire dans mon corps de mon code 1467 01:06:48,230 --> 01:06:52,357 une déclaration principale qui fait réellement quel que soit le corps du code fait. 1468 01:06:52,357 --> 01:06:54,940 Mais en dehors de cela, je peux aussi écrire plusieurs fonctions différentes 1469 01:06:54,940 --> 01:06:56,320 que faire beaucoup de choses différentes. 1470 01:06:56,320 --> 01:06:58,570 Par exemple, nous avons déjà commencé à utiliser certains d'entre eux. 1471 01:06:58,570 --> 01:07:00,610 Printf-- qui est un fonction que quelqu'un d'autre 1472 01:07:00,610 --> 01:07:02,870 a déjà écrit que nous pouvons faire appel à notre code. 1473 01:07:02,870 --> 01:07:05,410 Pour upper-- dans ce cas, upper-- est une autre fonction 1474 01:07:05,410 --> 01:07:07,330 nous avons écrit que nous peut appeler dans notre code. 1475 01:07:07,330 --> 01:07:09,520 Et donc je suppose pourquoi faire nous avons même des fonctions? 1476 01:07:09,520 --> 01:07:12,100 Pourquoi ne pas Plop tous dans la même ligne de code? 1477 01:07:12,100 --> 01:07:13,730 Il le rend facile pour tout le monde. 1478 01:07:13,730 --> 01:07:19,200 >> Eh bien, le raisonnement derrière cette est, tout d'abord, l'organisation. 1479 01:07:19,200 --> 01:07:21,880 Il est vraiment ennuyeux aller à travers le code de quelqu'un 1480 01:07:21,880 --> 01:07:25,110 et une fonction comme printf. 1481 01:07:25,110 --> 01:07:28,570 Si vous les gars savait réellement ce que la fonction printf comporté à écrire, 1482 01:07:28,570 --> 01:07:30,530 il est, comme, 1.000 lignes de code. 1483 01:07:30,530 --> 01:07:32,357 >> Si chaque fois que je voulais à printf quelque chose, 1484 01:07:32,357 --> 01:07:35,440 Je devais écrire 1000 lignes de code, ce serait vraiment ennuyeux à lire, 1485 01:07:35,440 --> 01:07:36,290 droit? 1486 01:07:36,290 --> 01:07:38,860 Voilà pourquoi nous venons créé cette fonction abstraite 1487 01:07:38,860 --> 01:07:41,670 que nous avons déjà quelqu'un d'autre a écrit quelque part d'autre. 1488 01:07:41,670 --> 01:07:44,920 Et chaque fois que nous avons besoin de l'utiliser dans notre code, nous venons de dire printf. 1489 01:07:44,920 --> 01:07:48,070 Et qui est capable d'utiliser la fonction quelqu'un d'autre a écrit dans notre code. 1490 01:07:48,070 --> 01:07:51,020 Il est plus facile organisationnel pour lire le code. 1491 01:07:51,020 --> 01:07:53,460 >> Deuxièmement, il est la simplification. 1492 01:07:53,460 --> 01:07:56,750 Il simplifie les mesures que nous avons à prendre pour résoudre notre problème. 1493 01:07:56,750 --> 01:07:59,300 Printf, des fonctions comme printf, fonctions comme supérieure à 1494 01:07:59,300 --> 01:08:03,560 sont toutes des choses qui nous permettent de simplifier notre code vers le bas afin qu'il est plus facile. 1495 01:08:03,560 --> 01:08:05,830 Et dernière chose est la réutilisabilité. 1496 01:08:05,830 --> 01:08:08,710 >> Donc, le fait que nous avons une fonction appelée printf 1497 01:08:08,710 --> 01:08:11,990 que nous pouvons appeler de nombreux différents fois et lui permet d'être réutilisable. 1498 01:08:11,990 --> 01:08:14,980 Si je devais écrire printf, Je ne l'écris fois. 1499 01:08:14,980 --> 01:08:16,439 Il existe seulement dans ce lieu. 1500 01:08:16,439 --> 01:08:19,890 Si je voulais le faire à nouveau, je le ferais avoir à copier et coller tout cela 1501 01:08:19,890 --> 01:08:21,760 dans mon deuxième ligne de code. 1502 01:08:21,760 --> 01:08:24,880 Voilà pourquoi si nous créons une fonction qui existe en dehors de notre principale, 1503 01:08:24,880 --> 01:08:26,880 nous pouvons simplement appeler et réutiliser quand 1504 01:08:26,880 --> 01:08:29,604 nous avons besoin de sorte qu'il est beaucoup plus facile pour nous que les programmes d'écrire. 1505 01:08:29,604 --> 01:08:32,220 1506 01:08:32,220 --> 01:08:35,549 >> Ainsi, la manière que nous aurions réellement écrire une fonction est très similaire, à droite? 1507 01:08:35,549 --> 01:08:37,590 Ceci est le premier type de cas dans lequel nous allons 1508 01:08:37,590 --> 01:08:42,830 voir une fonction prise sur un style différente de notre void main int. 1509 01:08:42,830 --> 01:08:46,779 Dans ce cas, si je voulais écrire une fonction appelée q, non? 1510 01:08:46,779 --> 01:08:49,370 >> Et la valeur int ici est me disent tous, 1511 01:08:49,370 --> 01:08:51,649 ce que je veux cet fonctionner pour revenir à moi? 1512 01:08:51,649 --> 01:08:54,484 Si je veux au cube un nombre entier, Je vais vouloir entrée. 1513 01:08:54,484 --> 01:08:55,525 Ce sont les paramètres. 1514 01:08:55,525 --> 01:08:58,490 Je vais aux entrées d'une valeur de type int. 1515 01:08:58,490 --> 01:09:01,300 Et je vais revenir une autre valeur de type int. 1516 01:09:01,300 --> 01:09:03,050 Et ici, comme vous peut voir, tout ce que je fais 1517 01:09:03,050 --> 01:09:07,300 cubage est tout ce que mon entrée est que ma production et en le retournant. 1518 01:09:07,300 --> 01:09:10,790 >> Donc tout ce que cette fonction fait est prend une sorte de nombre entier. 1519 01:09:10,790 --> 01:09:14,979 Il multiplie par lui-même deux fois de sorte qu'il cubes en vigueur. 1520 01:09:14,979 --> 01:09:17,729 Et puis il retourne quelle que soit que la sortie est. 1521 01:09:17,729 --> 01:09:20,540 Donc dans ce cas, il est deux lignes de code que nous avons dû écrire supplémentaire. 1522 01:09:20,540 --> 01:09:22,880 Mais si nous voulions appeler sur cette plusieurs fois, 1523 01:09:22,880 --> 01:09:26,210 il est beaucoup plus facile de taper que l'on ligne ici qui est dans le cube de 1524 01:09:26,210 --> 01:09:28,830 avoir à passer par de multiples fois. 1525 01:09:28,830 --> 01:09:34,180 >> Donc, la façon dont essentiellement tout mise en forme pour toute sorte de fonction 1526 01:09:34,180 --> 01:09:36,420 va exister est comme ici. 1527 01:09:36,420 --> 01:09:38,659 Donc, nous avons le nom de la fonction. 1528 01:09:38,659 --> 01:09:39,950 Dans ce cas, il est appelé cube. 1529 01:09:39,950 --> 01:09:42,033 Et nous nommons cube parce il est facile de se rappeler. 1530 01:09:42,033 --> 01:09:44,220 Vous pouvez le nommer carrés et il peut effectivement être coupé en cubes. 1531 01:09:44,220 --> 01:09:45,500 N'a pas d'importance. 1532 01:09:45,500 --> 01:09:48,020 Juste un nom que vous êtes attribuant à votre fonction. 1533 01:09:48,020 --> 01:09:51,660 >> Ce droit ici, int, est le type du paramètre dont vous avez besoin. 1534 01:09:51,660 --> 01:09:54,149 Alors qu'est-ce que cette fonction besoin pour fonctionner? 1535 01:09:54,149 --> 01:09:55,990 Eh bien, il a besoin d'une entrée. 1536 01:09:55,990 --> 01:09:56,704 Je l'ai appelé entrée. 1537 01:09:56,704 --> 01:09:58,120 Vous pouvez l'appeler comme vous voulez. 1538 01:09:58,120 --> 01:10:00,500 Mais je besoin de quelque chose de type int. 1539 01:10:00,500 --> 01:10:03,730 Il va effectivement exécuter tout ce qui est à l'intérieur d'ici, 1540 01:10:03,730 --> 01:10:04,990 le corps de la fonction. 1541 01:10:04,990 --> 01:10:07,847 Et puis le type de retour ici, ce int-- 1542 01:10:07,847 --> 01:10:09,680 tout ce qu'il me dit est que cette fonction est 1543 01:10:09,680 --> 01:10:11,250 va revenir à moi dans int. 1544 01:10:11,250 --> 01:10:14,460 Donc, il va prendre dans un int, et ça va vous redonner un int. 1545 01:10:14,460 --> 01:10:17,750 Tout le monde comprend comment le mise en forme de ce genre fonctionne? 1546 01:10:17,750 --> 01:10:18,250 Frais. 1547 01:10:18,250 --> 01:10:24,690 1548 01:10:24,690 --> 01:10:25,740 >> D'ACCORD. 1549 01:10:25,740 --> 01:10:31,770 Alors ne soyez pas inquiet si cela semble un peu de droit abstrait maintenant. 1550 01:10:31,770 --> 01:10:33,450 Ceci est quelque chose que nous allons parler. 1551 01:10:33,450 --> 01:10:36,310 Nous allons plonger plus profondément plus tard dans le cours. 1552 01:10:36,310 --> 01:10:41,170 La manière dont toute sorte de niveau supérieur abstraction de ces choses fonctionnent 1553 01:10:41,170 --> 01:10:43,530 est que, dans la mémoire, dans votre ordinateur, tout 1554 01:10:43,530 --> 01:10:47,660 est stocké dans ce type de la pile, dirai-je. 1555 01:10:47,660 --> 01:10:49,070 >> Donc, là-haut au sommet. 1556 01:10:49,070 --> 01:10:50,861 Je ne sais pas si vous les gars peuvent voir que bien. 1557 01:10:50,861 --> 01:10:52,590 Je vais essayer d'agrandir. 1558 01:10:52,590 --> 01:10:55,111 Ici en haut, nous avoir le texte physique 1559 01:10:55,111 --> 01:10:57,860 de ce que l'ordinateur est interpreting-- tous les zéros et de uns que 1560 01:10:57,860 --> 01:10:59,540 exister dans notre ordinateur. 1561 01:10:59,540 --> 01:11:03,390 Et puis nous avons l'initialisée données non initialisées et les données, 1562 01:11:03,390 --> 01:11:05,340 ce que nous appelons les variables globales. 1563 01:11:05,340 --> 01:11:08,200 Ainsi, les variables qui existent dans tous les programmes 1564 01:11:08,200 --> 01:11:11,815 et à travers l'ensemble de votre, essentiellement, le code. 1565 01:11:11,815 --> 01:11:13,940 Pas de soucis si vous les gars sont sorte de clair à ce sujet. 1566 01:11:13,940 --> 01:11:16,060 Il ne compte pas vraiment en ce moment. 1567 01:11:16,060 --> 01:11:18,680 >> Et puis nous avons ce qui est appelé un tas dans une pile. 1568 01:11:18,680 --> 01:11:21,140 Pensez à une pile littéralement comme tout comme une pile de choses, 1569 01:11:21,140 --> 01:11:23,098 une pile de différent choses étant poussé sur le dessus 1570 01:11:23,098 --> 01:11:27,870 les uns des autres qui stockent les différents variables et la syntaxe dans votre code. 1571 01:11:27,870 --> 01:11:31,460 Et puis ici, tout au fond, nous avons les variables d'environnement 1572 01:11:31,460 --> 01:11:35,480 de ce que vous exécutez au sein juste votre petite ligne de code. 1573 01:11:35,480 --> 01:11:40,510 >> Et nous allons juste pour agrandir dans la part réelle de la pile. 1574 01:11:40,510 --> 01:11:43,880 Donc, ici, si nous étions pour agrandir dans cette zone juste sur de l'empilement, 1575 01:11:43,880 --> 01:11:45,140 ceci est à quoi il ressemble. 1576 01:11:45,140 --> 01:11:48,590 Et cela est en fait assez importante quand vous parlez de gars fonctions, 1577 01:11:48,590 --> 01:11:52,330 parce que le préavis mémoire de votre ordinateur 1578 01:11:52,330 --> 01:11:55,600 est mémoriser les variables et les fonctions 1579 01:11:55,600 --> 01:11:58,790 et les paramètres de vos deux fonction et vos principales variables 1580 01:11:58,790 --> 01:12:00,190 dans des lieux différents. 1581 01:12:00,190 --> 01:12:03,390 >> Donc maintenant, principale est la fonction réelle 1582 01:12:03,390 --> 01:12:04,780 que vous êtes l'exécution dans un code. 1583 01:12:04,780 --> 01:12:08,050 Vous avez ses paramètres stockés ici et ses variables locales stockés ici. 1584 01:12:08,050 --> 01:12:12,270 Variable locale signifie juste une variable qui existent seulement dans cette fonction. 1585 01:12:12,270 --> 01:12:15,610 Et en plus de cela, vous avez cette fonction distincte appelée cube. 1586 01:12:15,610 --> 01:12:18,240 Vous avez voilà paramètres ainsi que les habitants. 1587 01:12:18,240 --> 01:12:21,540 >> Et la raison, vous pouvez voir ici est que ce 1588 01:12:21,540 --> 01:12:25,030 arrive quand cube prend dans un la valeur de votre fonction principale 1589 01:12:25,030 --> 01:12:27,640 est ce que ça fait que plus de la copie. 1590 01:12:27,640 --> 01:12:31,470 Donc, si je voulais cube 2 et 8 revenir, que 2 1591 01:12:31,470 --> 01:12:33,730 est effectivement entré en tant que paramètre et son 1592 01:12:33,730 --> 01:12:37,690 copié sur de sorte que vous avez existante à deux endroits différents dans la mémoire. 1593 01:12:37,690 --> 01:12:40,520 Et vous devez être très prudent le souvenir de ceux que l'on 1594 01:12:40,520 --> 01:12:42,520 vous êtes en train de manipuler. 1595 01:12:42,520 --> 01:12:47,170 Et un exemple de ce qui est arrivé ce serait très, très mauvais 1596 01:12:47,170 --> 01:12:48,050 existe ici. 1597 01:12:48,050 --> 01:12:50,760 1598 01:12:50,760 --> 01:12:58,650 >> Donc ici, je l'ai obtenu, en théorie, un programme ici, une fonction principale 1599 01:12:58,650 --> 01:13:02,180 que je déclarant un int x est égal à 1. 1600 01:13:02,180 --> 01:13:04,505 Je déclarer une autre int y est égal à 2. 1601 01:13:04,505 --> 01:13:06,380 Et puis je l'exécuter grâce à cette fonction 1602 01:13:06,380 --> 01:13:09,647 appelé swap, où je suppose que il est échangeant les deux valeurs. 1603 01:13:09,647 --> 01:13:11,480 Et puis je vais les imprimer, non? 1604 01:13:11,480 --> 01:13:13,220 Voilà ce que je veux de ce programme à faire. 1605 01:13:13,220 --> 01:13:15,180 >> Donc, nous allons descendre et de jeter un oeil. 1606 01:13:15,180 --> 01:13:18,200 Donc, si je réellement écrire un autre fonction, comme vous pouvez le voir, 1607 01:13:18,200 --> 01:13:19,750 nous avons notre fonction principale ici. 1608 01:13:19,750 --> 01:13:22,860 Et puis nous avons notre deuxième fonction ici. 1609 01:13:22,860 --> 01:13:24,520 Void swap. 1610 01:13:24,520 --> 01:13:27,090 Void signifie simplement qu'il est ne va pas retourner quelque chose. 1611 01:13:27,090 --> 01:13:28,930 Le nom de la fonction est appelé swap, et il est 1612 01:13:28,930 --> 01:13:33,730 aller à l'apport de deux variables, et un int int b, à partir de votre fonction [inaudible]. 1613 01:13:33,730 --> 01:13:39,010 >> Donc, essentiellement, ici, nous sommes passant x et y dans cette fonction. 1614 01:13:39,010 --> 01:13:40,760 Et si nous devions créons this-- si nous voulons 1615 01:13:40,760 --> 01:13:42,420 pour créer une valeur temporaire, non? 1616 01:13:42,420 --> 01:13:43,930 Nous allons attribuer cela à un. 1617 01:13:43,930 --> 01:13:45,388 Et puis un va maintenant égal b. 1618 01:13:45,388 --> 01:13:47,660 Et b va d'être de retour où la valeur de température était, 1619 01:13:47,660 --> 01:13:51,070 qui est un, parce que quand vous voulez échanger des choses, 1620 01:13:51,070 --> 01:13:52,320 vous pouvez ne pas aimer tout simplement les échanger. 1621 01:13:52,320 --> 01:13:54,360 >> Vous devez garder un sur ici de sorte qu'il se souvient 1622 01:13:54,360 --> 01:13:56,485 ce qui est, car une fois vous changez un, vous oubliez 1623 01:13:56,485 --> 01:13:58,200 ce que la valeur originale était, non? 1624 01:13:58,200 --> 01:14:00,990 Donc, en théorie, ce programme devrait fonctionner, non? 1625 01:14:00,990 --> 01:14:03,630 Si je voulais échanger du deux, ils devraient échanger. 1626 01:14:03,630 --> 01:14:05,490 Donc, nous allons l'exécuter et voir si cela fonctionne. 1627 01:14:05,490 --> 01:14:11,130 1628 01:14:11,130 --> 01:14:16,940 >> Donc, comme vous les gars pouvez le voir, x était une fois 1 et y était une fois 2. 1629 01:14:16,940 --> 01:14:21,475 Et si je l'imprime, x vaut toujours 1 et y vaut 2. 1630 01:14:21,475 --> 01:14:25,970 Hmm, ce programme ne semble pas être le travail de la manière que je veux que cela fonctionne. 1631 01:14:25,970 --> 01:14:29,950 Quelqu'un veut-il prendre une photo à deviner pourquoi ce qui se passait? 1632 01:14:29,950 --> 01:14:34,430 Il a à voir avec la manière que des choses différentes sont 1633 01:14:34,430 --> 01:14:38,172 stocké dans des endroits différents dans la mémoire. 1634 01:14:38,172 --> 01:14:39,377 >> D'ACCORD. 1635 01:14:39,377 --> 01:14:41,960 Alors vous les gars ne devez pas vous inquiéter trop à ce sujet en ce moment. 1636 01:14:41,960 --> 01:14:46,610 Mais sachez que Cube locale sont des variables a et b, 1637 01:14:46,610 --> 01:14:49,230 car ici, dans notre fonction, nous avons déclaré a et b 1638 01:14:49,230 --> 01:14:53,570 que les variables qui existent au sein de cube, cette fonction. 1639 01:14:53,570 --> 01:14:59,490 Mais comme vous pouvez le voir, les paramètres qui il prend en étaient stockées ici. 1640 01:14:59,490 --> 01:15:01,370 Mais nous ne sommes pas réellement retour rien. 1641 01:15:01,370 --> 01:15:03,120 Nous ne sommes pas réellement changer x et y. 1642 01:15:03,120 --> 01:15:04,440 Nous étions juste en train de changer a et b. 1643 01:15:04,440 --> 01:15:08,340 >> Nous avions copié x et y dans quelque chose appelé a et b. 1644 01:15:08,340 --> 01:15:11,092 Mais nous n'y sommes jamais x et y manipulé eux-mêmes. 1645 01:15:11,092 --> 01:15:12,800 Êtes-vous les gars voient comment cela se passe? 1646 01:15:12,800 --> 01:15:16,140 Est que nous avons simplement copié ce plus, mais nous avons pas réellement gardé 1647 01:15:16,140 --> 01:15:18,030 piste de l'endroit où ils étaient en mémoire. 1648 01:15:18,030 --> 01:15:20,127 >> Et maintenant l'ordinateur est à la recherche, oh, je l'ai 1649 01:15:20,127 --> 01:15:21,960 courir à travers cette chose cette belle fonction. 1650 01:15:21,960 --> 01:15:23,690 Mais x et y sont encore x et y. 1651 01:15:23,690 --> 01:15:26,240 Rien est arrivé à les en raison du fait 1652 01:15:26,240 --> 01:15:28,340 que ces paramètres et les variables locales 1653 01:15:28,340 --> 01:15:30,150 sont stockées dans un autre placer en mémoire. 1654 01:15:30,150 --> 01:15:32,030 Et cela est un niveau supérieur notion que nous allons 1655 01:15:32,030 --> 01:15:34,300 commencer à voir plus tard dans le cours. 1656 01:15:34,300 --> 01:15:36,950 Mais il suffit de savoir que cela est un problème qui peut se produire 1657 01:15:36,950 --> 01:15:41,400 et que nous allons trouver des moyens sur la façon de face à cela plus tard dans le cours. 1658 01:15:41,400 --> 01:15:41,900 D'ACCORD. 1659 01:15:41,900 --> 01:15:47,750 1660 01:15:47,750 --> 01:15:48,250 Bien. 1661 01:15:48,250 --> 01:15:51,780 Ainsi, le dernier concept nous sommes vraiment à couvrir 1662 01:15:51,780 --> 01:15:53,880 que ça va être utile pour le pset cette semaine 1663 01:15:53,880 --> 01:15:56,060 sont ce qu'on appelle arguments de ligne de commande. 1664 01:15:56,060 --> 01:16:00,820 Donc Rob dans sa conférence a traversé sorte de brièvement comment ces travaux. 1665 01:16:00,820 --> 01:16:02,770 Essentiellement savoir que quand vous écrivez 1666 01:16:02,770 --> 01:16:06,280 comme une fonction principale, lorsque nous fonctions écrit avant dans le passé, 1667 01:16:06,280 --> 01:16:07,804 nous avions void main int. 1668 01:16:07,804 --> 01:16:10,470 Et la raison pour laquelle nous y avait vide était parce que nos programmes ne 1669 01:16:10,470 --> 01:16:12,520 besoin de valeurs d'entrée afin de fonctionner, non? 1670 01:16:12,520 --> 01:16:16,020 Quand je courais Mario, je ne l'ai pas besoin effectivement il suffit de taper dans quelque chose 1671 01:16:16,020 --> 01:16:16,970 quand je courais Mario. 1672 01:16:16,970 --> 01:16:20,170 Je pourrais demander à l'utilisateur plus tard. 1673 01:16:20,170 --> 01:16:22,450 Mais ce ne sera pas toujours le cas. 1674 01:16:22,450 --> 01:16:24,980 >> Par exemple, en ce le problème de la semaine fixe, 1675 01:16:24,980 --> 01:16:28,365 vous allez être demandé que, dans Outre l'exécution de votre programme, 1676 01:16:28,365 --> 01:16:30,990 vous allez vouloir entrée certaines choses à droite que vous 1677 01:16:30,990 --> 01:16:32,050 exécuter votre programme. 1678 01:16:32,050 --> 01:16:34,720 Donc, la façon dont nous le faisons est appelé un argument de ligne de commande, ce qui 1679 01:16:34,720 --> 01:16:37,280 est comme un argument vous pouvez entrer directement 1680 01:16:37,280 --> 01:16:39,260 que vous essayez de lancer votre programme. 1681 01:16:39,260 --> 01:16:44,680 >> Donc la notation pour cela, il est assez complexe à la recherche, 1682 01:16:44,680 --> 01:16:47,320 mais il est vraiment pas que difficile. Donc int main-- 1683 01:16:47,320 --> 01:16:48,910 qui est juste votre fonction principale. 1684 01:16:48,910 --> 01:16:52,110 Dans argc virgules parenthèses chaîne de argv. 1685 01:16:52,110 --> 01:16:56,040 Donc tout ce qui est dit est que cette int argc-- tout ce que vous dit 1686 01:16:56,040 --> 01:17:00,560 est que ce sont le nombre de arguments l'ordinateur doit attendre. 1687 01:17:00,560 --> 01:17:03,130 >> Donc, une chose qui est vraiment important de garder une trace de 1688 01:17:03,130 --> 01:17:07,080 est le nom physique de votre programme compte comme un de ces arguments. 1689 01:17:07,080 --> 01:17:11,080 Donc, si je voulais avoir mon programme courir plus une ligne de commande supplémentaire 1690 01:17:11,080 --> 01:17:13,310 l'argument, je suis en fait allez avoir deux. 1691 01:17:13,310 --> 01:17:15,080 Argc est en fait va être deux. 1692 01:17:15,080 --> 01:17:18,010 Et puis la chaîne argv bracket-- tout ce qui est en train de faire, 1693 01:17:18,010 --> 01:17:20,410 ça me donne une tableau de chaînes qui est 1694 01:17:20,410 --> 01:17:24,870 va simplement afficher et de stocker ce tous ces arguments de ligne de commande sont. 1695 01:17:24,870 --> 01:17:34,090 >> Ainsi, par exemple, si je voulais avoir cette programme, ./copy inFile outfile, non? 1696 01:17:34,090 --> 01:17:37,330 Voilà juste une commande typique Linux. 1697 01:17:37,330 --> 01:17:38,830 Ce qui est réellement argc? 1698 01:17:38,830 --> 01:17:41,320 Combien arguments de ligne de commande y at-il réellement dans ce domaine? 1699 01:17:41,320 --> 01:17:45,130 Tout cela ne fait faire une copie de un infile du nom d'un fichier 1700 01:17:45,130 --> 01:17:47,070 Et il le copie dans un autre fichier, non? 1701 01:17:47,070 --> 01:17:48,700 Voilà tout cela est en train de faire. 1702 01:17:48,700 --> 01:17:53,080 Comme vous pouvez le voir, je le fais sur une seule ligne sans qu'il soit fait le programme. 1703 01:17:53,080 --> 01:17:55,380 >> Quelle est notre argc dans ce cas? 1704 01:17:55,380 --> 01:17:58,968 Combien arguments avons-nous? 1705 01:17:58,968 --> 01:17:59,634 AUDIENCE: Trois? 1706 01:17:59,634 --> 01:18:01,200 ANDI PENG: Nous avons trois, exactement. 1707 01:18:01,200 --> 01:18:05,030 Donc, il est très intuitif à il suffit de penser qu'il est juste 1708 01:18:05,030 --> 01:18:06,290 INFILE et OUTFILE. 1709 01:18:06,290 --> 01:18:10,190 Mais sachez que le nom physique de la programme vous courez compte pour un. 1710 01:18:10,190 --> 01:18:13,220 Donc dans ce cas, argc est en fait trois. 1711 01:18:13,220 --> 01:18:15,860 Que diriez-vous, ce qui est argv 0? 1712 01:18:15,860 --> 01:18:18,180 Rappelez-vous, tout le arguments de ligne de commande 1713 01:18:18,180 --> 01:18:20,500 ont été stockés dans un tableau de chaînes. 1714 01:18:20,500 --> 01:18:24,140 Donc, si je tente d'y accéder, ce qui serait argv 0 support me donner? 1715 01:18:24,140 --> 01:18:25,364 >> AUDIENCE: [inaudible]. 1716 01:18:25,364 --> 01:18:26,155 ANDI PENG: Exactement. 1717 01:18:26,155 --> 01:18:28,550 Il me donnerait le point slash copie, parce que ce 1718 01:18:28,550 --> 01:18:31,070 l'élément 0e, la premier élément de mon tableau. 1719 01:18:31,070 --> 01:18:33,236 Qu'en est-il argv 1? 1720 01:18:33,236 --> 01:18:33,945 >> AUDIENCE: Infile. 1721 01:18:33,945 --> 01:18:35,070 ANDI PENG: Infile, exactement. 1722 01:18:35,070 --> 01:18:36,272 Qu'en est-il argv 2? 1723 01:18:36,272 --> 01:18:37,022 AUDIENCE: Outfile. 1724 01:18:37,022 --> 01:18:38,190 ANDI PENG: Outfile. 1725 01:18:38,190 --> 01:18:39,290 Ceci est un peu difficile maintenant. 1726 01:18:39,290 --> 01:18:42,630 Qu'est-ce que vous en pensez argv 3 va être me donner 1727 01:18:42,630 --> 01:18:45,522 si je essayé d'imprimer cela? 1728 01:18:45,522 --> 01:18:48,260 >> AUDIENCE: [inaudible]? 1729 01:18:48,260 --> 01:18:50,164 >> ANDI PENG: Avez-vous eu un coup de main? 1730 01:18:50,164 --> 01:18:50,663 Ouais. 1731 01:18:50,663 --> 01:18:51,550 >> PUBLIC: Une alternative. 1732 01:18:51,550 --> 01:18:52,341 >> ANDI PENG: Exactement. 1733 01:18:52,341 --> 01:18:55,440 Alors rappelez-vous dans la leçon que nous avoir à la fin d'une course quelque chose 1734 01:18:55,440 --> 01:18:56,640 appelé un terminateur null? 1735 01:18:56,640 --> 01:18:58,890 Nous allons entrer dans ce aussi plus loin dans la classe. 1736 01:18:58,890 --> 01:19:02,472 Mais sachez que dans la notation, la façon dont votre ordinateur 1737 01:19:02,472 --> 01:19:04,430 sait qu'il est la fin de la matrice est qu'il 1738 01:19:04,430 --> 01:19:07,310 met quelque chose appelé un null terminateur ou un tiret zéro. 1739 01:19:07,310 --> 01:19:12,047 >> Donc, si vous essayez d'accéder à argv 3, vous allez frapper cet élan 0. 1740 01:19:12,047 --> 01:19:13,630 Cela est encore plus d'une question piège. 1741 01:19:13,630 --> 01:19:17,020 Qu'en est-il argv 4? 1742 01:19:17,020 --> 01:19:20,920 Donc, cela est terminaison nulle passé, delà des limites de notre tableau. 1743 01:19:20,920 --> 01:19:24,380 Que pensez-vous va arriver quand nous essayons de faire cela? 1744 01:19:24,380 --> 01:19:25,842 >> AUDIENCE: [inaudible]? 1745 01:19:25,842 --> 01:19:26,550 ANDI PENG: Désolé? 1746 01:19:26,550 --> 01:19:28,025 Dire que un peu plus fort? 1747 01:19:28,025 --> 01:19:29,086 >> AUDIENCE: [inaudible]. 1748 01:19:29,086 --> 01:19:29,710 ANDI PENG: Oui. 1749 01:19:29,710 --> 01:19:32,420 Tel est le nom de la zone que vous aurez plus de chances d'obtenir. 1750 01:19:32,420 --> 01:19:36,610 Mais sachez que argv 4-- qui vous permet d'accéder 1751 01:19:36,610 --> 01:19:38,610 endroits dans votre ordinateur de mémoire que vous avez vraiment 1752 01:19:38,610 --> 01:19:41,650 ne devrait pas se toucher, parce maintenant vous savez ce qui est argv. 1753 01:19:41,650 --> 01:19:46,220 Vous savez qu'il est un tableau de taille 3 qui a copie dot, infile outfile et. 1754 01:19:46,220 --> 01:19:50,200 >> Si vous essayez d'aller si loin au-delà que vous êtes passé le terminateur null, 1755 01:19:50,200 --> 01:19:53,050 votre ordinateur a probablement quelque chose stockée dans argv 4. 1756 01:19:53,050 --> 01:19:55,790 Et vous ne devriez pas être autorisés à pénétrer dans argv 4, 1757 01:19:55,790 --> 01:19:58,130 parce que vous avez un fichier cabinet et vous êtes seulement 1758 01:19:58,130 --> 01:19:59,790 a permis l'accès à ces trois étagères. 1759 01:19:59,790 --> 01:20:02,870 Mais si vous essayez d'atteindre au-delà le plateau de l'endroit où vous êtes autorisé, 1760 01:20:02,870 --> 01:20:04,930 vous allez commencer à jouer avec d'autres choses dans la mémoire de votre ordinateur. 1761 01:20:04,930 --> 01:20:06,690 Cela va être vraiment, vraiment mauvais. 1762 01:20:06,690 --> 01:20:07,440 Il suffit donc de le savoir. 1763 01:20:07,440 --> 01:20:10,370 Soyez très prudent que vous ne vous contentez pas commencer au hasard 1764 01:20:10,370 --> 01:20:14,772 l'accès aux éléments dans un tableau étaient pas dans ce que vous voulez créer. 1765 01:20:14,772 --> 01:20:17,114 Yep. 1766 01:20:17,114 --> 01:20:18,430 >> D'ACCORD. 1767 01:20:18,430 --> 01:20:26,360 Donc, nous allons faire un autre exemple terminal ici. 1768 01:20:26,360 --> 01:20:27,300 D'ACCORD. 1769 01:20:27,300 --> 01:20:29,900 Donc Rob rapidement conférence l'autre jour est allé 1770 01:20:29,900 --> 01:20:35,040 à travers cet exemple, où il eu int main int argc chaîne argv 1771 01:20:35,040 --> 01:20:39,090 crochets, qui est me disant que je suis va avoir des arguments de ligne de commande. 1772 01:20:39,090 --> 01:20:41,860 >> Il a, si argc égale égal 2-- souvenez-vous, 1773 01:20:41,860 --> 01:20:45,070 équivaut égaux moyens de comparaison. 1774 01:20:45,070 --> 01:20:47,980 Si elle est égale à 2, alors je suis aller à imprimer bonjour, 1775 01:20:47,980 --> 01:20:51,190 quelle que soit la première élément du tableau est. 1776 01:20:51,190 --> 01:20:54,100 Imprimer Sinon, bonjour monde. 1777 01:20:54,100 --> 01:20:56,300 Qu'est-ce que cela va produire essentiellement? 1778 01:20:56,300 --> 01:21:00,570 Quelqu'un peut-il nous expliquer en Anglais ce que ce programme est en train de faire? 1779 01:21:00,570 --> 01:21:01,272 Ouais. 1780 01:21:01,272 --> 01:21:08,160 >> Audience: Si quelqu'un a tapé dans une commande et ont déclaré que leur nom et prénom, 1781 01:21:08,160 --> 01:21:12,096 il ne sera pas seulement l'imprimer premier et dire bonjour, 1782 01:21:12,096 --> 01:21:14,090 quel que soit votre prénom est. 1783 01:21:14,090 --> 01:21:15,410 >> ANDI PENG: OK, nous allons l'exécuter. 1784 01:21:15,410 --> 01:21:22,470 Ainsi, par exemple, si je devais faire ce fichier faire bonjour bonjour to-- 1785 01:21:22,470 --> 01:21:24,500 to-- qu'est-ce que vous me voulez à l'entrée? 1786 01:21:24,500 --> 01:21:25,900 >> AUDIENCE: Nom et prénom. 1787 01:21:25,900 --> 01:21:27,280 >> ANDI PENG: Nom et prénom? 1788 01:21:27,280 --> 01:21:28,180 Espaces? 1789 01:21:28,180 --> 01:21:29,690 >> AUDIENCE: Ouais. 1790 01:21:29,690 --> 01:21:33,490 >> ANDI PENG: quelqu'un peut-il dire moi en ce moment, ce qui est argc? 1791 01:21:33,490 --> 01:21:35,630 Juste là? 1792 01:21:35,630 --> 01:21:36,290 Oups, désolé. 1793 01:21:36,290 --> 01:21:37,920 Permettez-moi de revenir. 1794 01:21:37,920 --> 01:21:40,740 Combien arguments de ligne de commande vous soient: les gars ne peuvent pas voir vraiment. 1795 01:21:40,740 --> 01:21:43,760 Mais je vais essayer de l'agrandir. 1796 01:21:43,760 --> 01:21:44,290 J'essaie. 1797 01:21:44,290 --> 01:21:45,414 Oui, il y en a trois, non? 1798 01:21:45,414 --> 01:21:48,750 Il est slash dot bonjour, il est Andi, et il est Peng. 1799 01:21:48,750 --> 01:21:51,870 >> Alors qu'est-ce que vous en pensez ce programme va être imprimer? 1800 01:21:51,870 --> 01:21:55,550 1801 01:21:55,550 --> 01:21:56,060 Oh. 1802 01:21:56,060 --> 01:21:57,120 Oh pardon. 1803 01:21:57,120 --> 01:21:57,810 Mauvais nom. 1804 01:21:57,810 --> 01:22:03,630 1805 01:22:03,630 --> 01:22:06,130 Il a l'impression de, bonjour monde. 1806 01:22:06,130 --> 01:22:09,603 Quelqu'un veut-il expliquer pourquoi ce qui se passe? 1807 01:22:09,603 --> 01:22:10,103 Ouais? 1808 01:22:10,103 --> 01:22:11,019 >> AUDIENCE: [inaudible]. 1809 01:22:11,019 --> 01:22:14,439 1810 01:22:14,439 --> 01:22:15,230 ANDI PENG: Exactement. 1811 01:22:15,230 --> 01:22:19,940 Donc, ici, sont conditionnelles est, si argc est égal égal à 2. 1812 01:22:19,940 --> 01:22:23,650 Alors que dans le cas où il y a deux arguments de ligne de commande. 1813 01:22:23,650 --> 01:22:25,850 Ensuite, je vais imprimer, bonjour, quel qu'il soit. 1814 01:22:25,850 --> 01:22:28,210 Mais d'autre, je vais imprimer juste, bonjour monde. 1815 01:22:28,210 --> 01:22:30,040 Donc, ne quelqu'un veut de me donner un exemple 1816 01:22:30,040 --> 01:22:35,050 de la façon dont je serais en mesure de réellement a la faire imprimer la valeur de argv 1? 1817 01:22:35,050 --> 01:22:38,600 >> Qu'aurais-je à l'entrée ici? 1818 01:22:38,600 --> 01:22:39,840 Une seule chose, non? 1819 01:22:39,840 --> 01:22:42,900 Parce que le bonjour dot à déjà compte comme le premier argument. 1820 01:22:42,900 --> 01:22:43,930 Je dois seulement un de plus. 1821 01:22:43,930 --> 01:22:46,470 Donc dot bonjour si je fais juste Andi. 1822 01:22:46,470 --> 01:22:47,270 Bonjour, Andi. 1823 01:22:47,270 --> 01:22:49,186 Tout le monde comprend pourquoi ce qui se passe? 1824 01:22:49,186 --> 01:22:49,602 Ouais. 1825 01:22:49,602 --> 01:22:52,500 >> Auditoire: Alors, l'espace entre le line-- commande est-il [inaudible]? 1826 01:22:52,500 --> 01:22:56,247 1827 01:22:56,247 --> 01:22:56,830 PENG ANDI: Non 1828 01:22:56,830 --> 01:23:03,810 Donc, l'espace dans une ligne de commande l'argument, x, de dire votre ordinateur 1829 01:23:03,810 --> 01:23:06,820 que ce soit le début d'une nouvelle chaîne. 1830 01:23:06,820 --> 01:23:11,130 Alors chaîne argv ici-- il magasins tous vos arguments des commandes en ligne 1831 01:23:11,130 --> 01:23:13,110 dans les chaînes. 1832 01:23:13,110 --> 01:23:17,420 Et ainsi de l'espace dans la ligne de commande argument-- qui ne fait que vous dire, 1833 01:23:17,420 --> 01:23:21,030 ceci est à la fin d'une chaîne et il est temps de passer à un autre. 1834 01:23:21,030 --> 01:23:21,990 >> Ouais. 1835 01:23:21,990 --> 01:23:23,530 Cela est assez important pour votre pset, parce que vous êtes 1836 01:23:23,530 --> 01:23:24,613 va être tester ces. 1837 01:23:24,613 --> 01:23:29,300 Donc, quelqu'un at- Pour toute question à ce sujet? 1838 01:23:29,300 --> 01:23:30,016 OK cool. 1839 01:23:30,016 --> 01:23:30,515 Ouais? 1840 01:23:30,515 --> 01:23:35,008 >> Auditoire: Alors, la raison vous le feriez mettre l'argument entier calc place 1841 01:23:35,008 --> 01:23:40,059 de [inaudible] serait quand vous voulez à taper des informations supplémentaires 1842 01:23:40,059 --> 01:23:41,030 [Inaudible]? 1843 01:23:41,030 --> 01:23:42,090 >> ANDI PENG: Oui, exactement. 1844 01:23:42,090 --> 01:23:45,370 Certains programmes, il faudra vous à l'entrée d'un argument de ligne de commande 1845 01:23:45,370 --> 01:23:47,732 qu'il passe à l'intérieur et qui utilise ce. 1846 01:23:47,732 --> 01:23:49,035 Ouais. 1847 01:23:49,035 --> 01:23:50,410 AUDIENCE: Alors que faire si [inaudible]? 1848 01:23:50,410 --> 01:23:55,440 1849 01:23:55,440 --> 01:23:58,870 >> ANDI PENG: Eh bien, que dois-je modifier, puis dans mon programme? 1850 01:23:58,870 --> 01:23:59,870 >> AUDIENCE: Juste 3. 1851 01:23:59,870 --> 01:24:12,460 1852 01:24:12,460 --> 01:24:15,020 >> ANDI PENG: Pourquoi est-ce passe, pensez-vous? 1853 01:24:15,020 --> 01:24:18,940 >> AUDIENCE: Parce que le [inaudible]. 1854 01:24:18,940 --> 01:24:22,370 >> AUDIENCE: Vous auriez à changer pour 2 [inaudible]. 1855 01:24:22,370 --> 01:24:23,484 >> Public: 1 et 2. 1856 01:24:23,484 --> 01:24:24,650 ANDI PENG: 1 et 2, exactement. 1857 01:24:24,650 --> 01:24:29,150 Donc dans ce cas, vous auriez probablement veulent avoir deux printf statements-- 1858 01:24:29,150 --> 01:24:32,601 une qui a imprimé une argv et celui qui a imprimé argv 2. 1859 01:24:32,601 --> 01:24:33,100 Ici. 1860 01:24:33,100 --> 01:24:34,516 Je peux réellement faire réel rapide. 1861 01:24:34,516 --> 01:24:46,720 1862 01:24:46,720 --> 01:24:47,320 Et voilà. 1863 01:24:47,320 --> 01:24:48,287 Oh. 1864 01:24:48,287 --> 01:24:49,370 Pas tout à fait ce que vous vouliez. 1865 01:24:49,370 --> 01:24:52,590 Mais si vous les gars mess avec la mise en forme, il va sortir. 1866 01:24:52,590 --> 01:24:54,981 Ouais. 1867 01:24:54,981 --> 01:24:55,480 Frais. 1868 01:24:55,480 --> 01:24:57,670 Je sais que nous sommes un peu à court de temps. 1869 01:24:57,670 --> 01:25:02,469 Mais je vais juste de passer rapidement un quelques minutes en passant par helpful-- 1870 01:25:02,469 --> 01:25:03,760 Public: Vous avez deux minutes. 1871 01:25:03,760 --> 01:25:05,010 ANDI PENG: me reste deux minutes? 1872 01:25:05,010 --> 01:25:06,340 Merci. 1873 01:25:06,340 --> 01:25:09,180 Quelques conseils de pset rapides. 1874 01:25:09,180 --> 01:25:13,100 Donc, pour cette pset, je recommande fortement, comme je le disais, tout le monde à lire la spec. 1875 01:25:13,100 --> 01:25:16,804 Vous devrez écrire un trois programs-- appelé initials.c, l'un appelé caesar.c, 1876 01:25:16,804 --> 01:25:17,720 un appelé vigenere.c. 1877 01:25:17,720 --> 01:25:20,465 1878 01:25:20,465 --> 01:25:22,340 Quelques conseils importants qui vous les gars veulent vraiment 1879 01:25:22,340 --> 01:25:25,040 de garder à l'mind-- sorte il est cette fonction 1880 01:25:25,040 --> 01:25:27,770 appelé atoi-- que je tiens à dire, un trois. 1881 01:25:27,770 --> 01:25:29,520 Difficile de savoir si ce est fait la façon dont vous le dites. 1882 01:25:29,520 --> 01:25:32,510 Mais tout qu'il fait, il est saisie. 1883 01:25:32,510 --> 01:25:34,320 Il convertit une chaîne en entier. 1884 01:25:34,320 --> 01:25:37,490 Donc représente un nombre entier i pour ASCII. 1885 01:25:37,490 --> 01:25:40,310 Il est juste de conversion ASCII des valeurs à des valeurs entières. 1886 01:25:40,310 --> 01:25:44,510 Alors rappelez-vous argv, le tableau que les magasins toutes vos commandes alignent arguments-- 1887 01:25:44,510 --> 01:25:46,300 il les tous les magasins comme des chaînes. 1888 01:25:46,300 --> 01:25:50,010 Et donc si vous voulez être en mesure de ont un d'entre eux deviennent un nombre entier, 1889 01:25:50,010 --> 01:25:52,750 vous allez avoir à utiliser cette valeur ici. 1890 01:25:52,750 --> 01:25:56,690 >> Modulo, comme nous avons couvert plus tôt en classe aujourd'hui, 1891 01:25:56,690 --> 01:25:59,550 vous permet d'avoir la reste de ce que vous avez. 1892 01:25:59,550 --> 01:26:03,620 Donc, si nous avons vraiment, vraiment un grand nombre de César, 1893 01:26:03,620 --> 01:26:06,117 ce que si nous avons la fin d'une chaîne de Vigenère? 1894 01:26:06,117 --> 01:26:08,450 Comment allez-vous être en mesure pour obtenir ce à enrouler autour? 1895 01:26:08,450 --> 01:26:11,330 Si je frappe et je veux z pour revenir à un, 1896 01:26:11,330 --> 01:26:13,650 comment vais-je obtenir que pour envelopper? 1897 01:26:13,650 --> 01:26:15,960 Voudrez probablement utiliser modulo quelque part. 1898 01:26:15,960 --> 01:26:19,190 >> Deuxièmement, parcourez le site votre bibliothèque. ctype.h. 1899 01:26:19,190 --> 01:26:20,680 Voilà une nouvelle bibliothèque que nous avons. 1900 01:26:20,680 --> 01:26:25,270 Vous trouverez beaucoup de vraiment, vraiment isupper functions-- utile, islower, 1901 01:26:25,270 --> 01:26:27,681 toupper, tolower, isalpha, et cetera. 1902 01:26:27,681 --> 01:26:30,680 Toutes les fonctions qui seront très utiles lorsque vous êtes à essayer de comprendre, 1903 01:26:30,680 --> 01:26:33,780 est ce personnage une lettre minuscule? 1904 01:26:33,780 --> 01:26:35,730 Comment puis-je convertir cette chaîne en majuscules? 1905 01:26:35,730 --> 01:26:38,146 Toutes ces choses vont être très, très utile pour votre pset. 1906 01:26:38,146 --> 01:26:42,720 1907 01:26:42,720 --> 01:26:45,500 D'ACCORD. 1908 01:26:45,500 --> 01:26:49,644 >> Les heures d'ouverture de ce soir sont de 8h00 à 11h00 dans la salle de classe de demain TEAL 1909 01:26:49,644 --> 01:26:51,310 ainsi que le mercredi et le jeudi soir. 1910 01:26:51,310 --> 01:26:53,280 Les heures de bureau sont en communes. 1911 01:26:53,280 --> 01:26:56,180 Hautement vous suggérer gars tous commencer tout de suite, 1912 01:26:56,180 --> 01:27:00,490 parce que vous ne voulez pas être que enfant qui a des problèmes jeudi soir 1913 01:27:00,490 --> 01:27:03,870 soumettant votre pset et est comme, je ne sais pas quoi faire. 1914 01:27:03,870 --> 01:27:05,870 Je ai commencé, je finis, je soumettais. 1915 01:27:05,870 --> 01:27:09,737 Essayez de vous donner un peu à manger, parce que dans les problèmes de code se produisent toujours. 1916 01:27:09,737 --> 01:27:11,570 Vous voulez vous assurer que que vous vous donnez 1917 01:27:11,570 --> 01:27:14,810 beaucoup de temps pour être en mesure pour compléter les psets. 1918 01:27:14,810 --> 01:27:15,310 Frais. 1919 01:27:15,310 --> 01:27:16,720 Je vais traîner ici. 1920 01:27:16,720 --> 01:27:18,226 >> Public: Est-ce déjà en ligne? 1921 01:27:18,226 --> 01:27:20,850 ANDI Peng: Je ne sais pas si elle est déjà en ligne, mais ce sera. 1922 01:27:20,850 --> 01:27:23,500 Je vais traîner ici si quelqu'un a déjà des questions. 1923 01:27:23,500 --> 01:27:25,390 Merci d'être venu. 1924 01:27:25,390 --> 01:27:27,105