1 00:00:00,000 --> 00:00:11,046 2 00:00:11,046 --> 00:00:12,170 ALLISON BUCHHOLTZ-AU: Hey, tout le monde. 3 00:00:12,170 --> 00:00:13,560 Bienvenue à la section. 4 00:00:13,560 --> 00:00:17,320 Aujourd'hui va juste être tout questionnaire examiner pour votre quiz mercredi. 5 00:00:17,320 --> 00:00:20,060 Je l'espère le monde se souvient que ils ont un quiz mercredi. 6 00:00:20,060 --> 00:00:22,560 Et si vous ne l'avez pas, eh bien, maintenant que vous avez été rappelé. 7 00:00:22,560 --> 00:00:26,486 Donc, assurez-vous que mercredi vous vous présentez pour la classe ou comme d'autres hébergements 8 00:00:26,486 --> 00:00:26,985 nécessaire. 9 00:00:26,985 --> 00:00:27,845 10 00:00:27,845 --> 00:00:29,220 Les gars, vous allez être génial. 11 00:00:29,220 --> 00:00:30,440 Ça va être génial. 12 00:00:30,440 --> 00:00:34,910 Et je vais faire tout mon possible pour vous aider à préparer aujourd'hui pour votre quiz 13 00:00:34,910 --> 00:00:35,470 maintenant. 14 00:00:35,470 --> 00:00:39,960 Et aussi dans le cas où vous ne savez pas, il ya une grande session d'examen de cours 15 00:00:39,960 --> 00:00:45,840 aujourd'hui à 7 heures Laboratoires du Nord-Ouest salle B103. 16 00:00:45,840 --> 00:00:49,950 Vous pouvez me voir pour un rappel comme Je vais animer une partie de la session d'examen 17 00:00:49,950 --> 00:00:50,510 aussi. 18 00:00:50,510 --> 00:00:53,218 Donc, si vous ne pouvez pas obtenir assez de moi maintenant, vous pouvez venir ce soir. 19 00:00:53,218 --> 00:00:54,130 20 00:00:54,130 --> 00:00:56,060 >> Très bien, alors commençons par le commencement. 21 00:00:56,060 --> 00:00:59,630 Juste quelques conseils de quiz avant fait plonger pour avis. 22 00:00:59,630 --> 00:01:04,160 Donc, comme pour tout examen, la pratique va certainement vous aider. 23 00:01:04,160 --> 00:01:09,260 Il ya des examens du passé six ou sept ans là-bas, 24 00:01:09,260 --> 00:01:12,480 de sorte que ya beaucoup de pratique matériel pour vous les gars d'avoir. 25 00:01:12,480 --> 00:01:15,340 Et en fait, aujourd'hui est vraiment juste va se passer sur tous les sujets 26 00:01:15,340 --> 00:01:18,900 que vous les gars avez des questions sur ainsi que de travailler à travers les problèmes pratiques 27 00:01:18,900 --> 00:01:20,360 de questionnaire zéro. 28 00:01:20,360 --> 00:01:22,690 Alors je vais vomir questionnaire zéro l'an dernier ici, 29 00:01:22,690 --> 00:01:26,410 et nous pouvons travailler par des problèmes que vous les gars aimeraient. 30 00:01:26,410 --> 00:01:27,370 >> Ainsi la pratique. 31 00:01:27,370 --> 00:01:29,310 Vous allez commencer à le faire aujourd'hui. 32 00:01:29,310 --> 00:01:30,230 Code de papier. 33 00:01:30,230 --> 00:01:32,970 Donc oui, si tout le monde pourrait effectivement sortir 34 00:01:32,970 --> 00:01:35,810 papier, qui sera grande, parce que vous n'êtes pas 35 00:01:35,810 --> 00:01:41,470 allez avoir votre ordinateur sur le examen et écrivant le code à la main 36 00:01:41,470 --> 00:01:44,190 est souvent beaucoup plus difficile que vous pourriez vous attendre. 37 00:01:44,190 --> 00:01:46,680 Vous êtes habitué à juste voir et saisissant, 38 00:01:46,680 --> 00:01:49,630 et vous avez votre compilateur vous aider quand vous avez des erreurs, 39 00:01:49,630 --> 00:01:52,190 mais vous ne recevez pas que sur l'examen. 40 00:01:52,190 --> 00:01:55,140 Donc, il est vraiment important de fait être capable d'écrire le code, 41 00:01:55,140 --> 00:01:58,360 et que la mémoire musculaire de faire à la main va vraiment vous aider. 42 00:01:58,360 --> 00:01:59,720 43 00:01:59,720 --> 00:02:01,690 >> Nous allons donc faire un peu près. 44 00:02:01,690 --> 00:02:02,340 Il est lundi. 45 00:02:02,340 --> 00:02:03,930 Votre examen est le mercredi. 46 00:02:03,930 --> 00:02:06,030 Mais si vous avez le temps, certainement prendre un 47 00:02:06,030 --> 00:02:10,199 des examens de l'année dernière ou la année avant sous la contrainte de temps 48 00:02:10,199 --> 00:02:11,660 d'une heure et demie. 49 00:02:11,660 --> 00:02:13,730 Il suffit de frapper à une heure et une moitié de temps, 50 00:02:13,730 --> 00:02:17,480 et vous asseoir, et travailler seulement par les problèmes 51 00:02:17,480 --> 00:02:19,962 comme si vous y étiez prendre, parce que l'un 52 00:02:19,962 --> 00:02:23,295 des plus grandes choses que nous entendons parler les questionnaires est qu'ils sont très longues. 53 00:02:23,295 --> 00:02:24,900 54 00:02:24,900 --> 00:02:26,660 Il est un lot de matériau. 55 00:02:26,660 --> 00:02:30,850 Il ya beaucoup de questions, et la plupart des gens ne peuvent pas terminer. 56 00:02:30,850 --> 00:02:34,660 Je sais que je ne l'ai pas totalement fini mes quizz quand je pris la classe. 57 00:02:34,660 --> 00:02:37,180 >> Sur cette note, comme un moins section à l'aise, 58 00:02:37,180 --> 00:02:40,570 comprendre que ce cours est destiné pour répondre à des gens de tous les niveaux. 59 00:02:40,570 --> 00:02:43,640 La raison pour laquelle nous avons vous divisez moins à l'aise, quelque part entre les deux, 60 00:02:43,640 --> 00:02:47,660 et plus confortable est de sorte de le rendre plus équitable. 61 00:02:47,660 --> 00:02:51,699 Et si vous êtes moins à l'aise, il est pas nécessaire en soi pour que tout. 62 00:02:51,699 --> 00:02:53,990 Comme si vous receviez tout, vous auriez probablement 63 00:02:53,990 --> 00:02:55,448 être dans la section la plus à l'aise. 64 00:02:55,448 --> 00:03:00,160 Alors, évidemment, ne pas battre jusqu'à vous trop dur si vous ne pouvez pas terminer l'examen. 65 00:03:00,160 --> 00:03:01,920 Croyez-moi, je ne le fais pas. 66 00:03:01,920 --> 00:03:03,070 Je suis encore un concentrateur. 67 00:03:03,070 --> 00:03:04,630 Je suis encore en contribuant à l'enseignement du cours. 68 00:03:04,630 --> 00:03:06,170 Vous serez très bien. 69 00:03:06,170 --> 00:03:06,670 Bien. 70 00:03:06,670 --> 00:03:08,740 Et enfin, de dormir un peu. 71 00:03:08,740 --> 00:03:11,020 Évidemment, avec tout examen nous disons toujours cela. 72 00:03:11,020 --> 00:03:13,610 Gavage la nuit avant et sans dormir 73 00:03:13,610 --> 00:03:16,390 pas-- ne peut-être que si qui fonctionne pour vous, allez-y. 74 00:03:16,390 --> 00:03:18,790 Mais, pour la grande majorité des gens, dormir un peu, 75 00:03:18,790 --> 00:03:22,390 laisser reposer votre cerveau et de récupérer avant de venir à l'examen 76 00:03:22,390 --> 00:03:23,480 va vraiment vous aider. 77 00:03:23,480 --> 00:03:26,120 Aussi il y aura presque sûrement bonbons à l'examen, 78 00:03:26,120 --> 00:03:28,019 si vous avez à la hâte. 79 00:03:28,019 --> 00:03:29,310 Les gars, vous allez faire une grande. 80 00:03:29,310 --> 00:03:30,226 Ça va être bien. 81 00:03:30,226 --> 00:03:31,570 82 00:03:31,570 --> 00:03:36,190 Et maintenant, dans la prochaine heure et demie, je va essayer de vous Prep mieux que je peux. 83 00:03:36,190 --> 00:03:41,260 >> Je dois donc les lames de fond toutes les sections jusqu'à présent. 84 00:03:41,260 --> 00:03:45,874 Je ne vais pas passer par chacun d'eux parce que ce est pas 85 00:03:45,874 --> 00:03:49,040 réalisable en une heure et demie et que de travailler à travers les problèmes pratiques. 86 00:03:49,040 --> 00:03:51,410 Ainsi, au lieu que je dois une liste de sujets. 87 00:03:51,410 --> 00:03:55,160 Ce sont toutes les choses que nous pourrions vous interroger sur. 88 00:03:55,160 --> 00:03:56,950 89 00:03:56,950 --> 00:03:58,770 Si il ya quelque chose qui saute vraiment sur 90 00:03:58,770 --> 00:04:02,140 que vous voulez aller sur, que vous tiens moi d'aller sur le plan conceptuel, 91 00:04:02,140 --> 00:04:04,320 Je peux essayer de donner vous un aperçu il. 92 00:04:04,320 --> 00:04:07,690 Ou si vous voulez sauter à droite à action pratique des problèmes ensemble, 93 00:04:07,690 --> 00:04:08,420 nous pouvons le faire. 94 00:04:08,420 --> 00:04:09,330 Il est à vous les gars. 95 00:04:09,330 --> 00:04:10,770 Il n'y a pas que beaucoup d'entre vous. 96 00:04:10,770 --> 00:04:13,180 Donc, il ya tout ce que vous les gars aiment faire. 97 00:04:13,180 --> 00:04:15,667 Je veux être le plus utile pour vous les gars. 98 00:04:15,667 --> 00:04:16,827 99 00:04:16,827 --> 00:04:17,910 Donc, je vais vous laisser vous regardez. 100 00:04:17,910 --> 00:04:27,880 101 00:04:27,880 --> 00:04:30,500 >> PUBLIC: Une chose est le tableau que nous gardions 102 00:04:30,500 --> 00:04:33,290 dire sur la pile et le tas. 103 00:04:33,290 --> 00:04:34,600 104 00:04:34,600 --> 00:04:37,434 Juste l'idée derrière que et ce que cela signifie. 105 00:04:37,434 --> 00:04:38,350 ALLISON BUCHHOLTZ-AU: Ouais, OK. 106 00:04:38,350 --> 00:04:40,290 107 00:04:40,290 --> 00:04:43,216 Ceci est d'autant façon à le fin, alors laissez-moi faire défiler. 108 00:04:43,216 --> 00:04:45,490 >> PUBLIC: Nous ne devons pas le faire maintenant, mais peu importe. 109 00:04:45,490 --> 00:04:47,070 110 00:04:47,070 --> 00:04:49,770 >> ALLISON BUCHHOLTZ-AU: Il y avait anything-- celui-ci. 111 00:04:49,770 --> 00:04:51,570 112 00:04:51,570 --> 00:04:53,555 Est-ce genre de flou pour les gens? 113 00:04:53,555 --> 00:04:54,390 114 00:04:54,390 --> 00:04:55,640 PUBLIC: Ouais, je seconde que. 115 00:04:55,640 --> 00:04:57,718 Et pouvons-nous également ne débordement de tampon? 116 00:04:57,718 --> 00:04:58,926 ALLISON BUCHHOLTZ-AU: débordement de tampon? 117 00:04:58,926 --> 00:04:59,820 Dáccord. 118 00:04:59,820 --> 00:05:03,460 Donc débordement de tampon est assez facile de simplement parler. 119 00:05:03,460 --> 00:05:08,217 Il est essentiellement tampons que vous pensez de la mémoire de tableau que vous avez, non? 120 00:05:08,217 --> 00:05:10,050 Nous parlons habituellement d'environ débordement de tampon lorsque 121 00:05:10,050 --> 00:05:15,160 vous n'êtes pas vérifier combien l'utilisateur met en, non? 122 00:05:15,160 --> 00:05:18,540 Et l'idée étant avec débordement de tampon est 123 00:05:18,540 --> 00:05:21,535 ils mettent en loin trop de données pour l'espace 124 00:05:21,535 --> 00:05:23,780 que vous avez alloué pour eux, non? 125 00:05:23,780 --> 00:05:28,310 >> Donc, si vous dites, donnez moi quelque message, nous sommes 126 00:05:28,310 --> 00:05:31,860 en supposant qu'ils vont donner nous un message de longueur raisonnable. 127 00:05:31,860 --> 00:05:33,910 Peut-être une ou deux lignes, ainsi de suite. 128 00:05:33,910 --> 00:05:35,150 Donc, nous ne vérifions pas. 129 00:05:35,150 --> 00:05:38,160 Au contraire, ils nous nourrissent dans un tout le livre qui est un message, 130 00:05:38,160 --> 00:05:42,450 et qu'il déborde la quantité de espace que nous avons prévu pour cela. 131 00:05:42,450 --> 00:05:48,140 Et ce qui se passe est qu'il pourrait écraser endroits que ça ne le supposait. 132 00:05:48,140 --> 00:05:52,890 >> Donc, je sais professeur Malan a déclaré quelque chose à propos des attaques de type buffer overflow. 133 00:05:52,890 --> 00:05:59,050 Voilà donc où la volonté entrée de l'utilisateur une certaine quantité massive de données dans l'espoir 134 00:05:59,050 --> 00:06:02,840 qu'il écrase passé la fin de votre tampon 135 00:06:02,840 --> 00:06:06,479 et remplace quelque chose-- Je me demande Je nous ai les diapositives ici. 136 00:06:06,479 --> 00:06:08,270 Je ne pense pas que nous avons ces diapositives ici. 137 00:06:08,270 --> 00:06:09,960 138 00:06:09,960 --> 00:06:14,460 Mais au fond, il écrase une partie de mémoire 139 00:06:14,460 --> 00:06:17,780 qui lui permet d'accéder à des parties de votre ordinateur 140 00:06:17,780 --> 00:06:19,530 que vous ne seriez pas ont normalement accès. 141 00:06:19,530 --> 00:06:20,750 142 00:06:20,750 --> 00:06:23,155 >> La plus grande chose avec débordement de tampon est juste 143 00:06:23,155 --> 00:06:26,420 à comprendre qu'il qui se passe quand vous n'êtes pas 144 00:06:26,420 --> 00:06:29,210 vérifier combien votre utilisateur met en. 145 00:06:29,210 --> 00:06:32,770 Lorsque vous n'êtes pas genre de protéger contre cela. 146 00:06:32,770 --> 00:06:36,820 Et à sa plus simple expression chose, il est juste votre utilisateur 147 00:06:36,820 --> 00:06:39,130 l'entrée d'une quantité massive de données dans une tentative 148 00:06:39,130 --> 00:06:45,090 pour remplacer une certaine sécurité partie de votre mémoire. 149 00:06:45,090 --> 00:06:46,310 Voilà tout ce qu'il est. 150 00:06:46,310 --> 00:06:49,810 >> Donc ce ici, pile et le tas. 151 00:06:49,810 --> 00:06:53,090 Fondamentalement tout cela est est juste une représentation de mémoire 152 00:06:53,090 --> 00:06:54,449 et où les choses sont stockés. 153 00:06:54,449 --> 00:06:56,240 Voilà vraiment une sorte de tout ce que vous devez savoir. 154 00:06:56,240 --> 00:06:58,520 Les choses les plus importantes que vous devez savoir sont 155 00:06:58,520 --> 00:07:01,910 that-- laissez-moi voir si il ya un better-- ici. 156 00:07:01,910 --> 00:07:05,380 Voilà donc la pile ici. 157 00:07:05,380 --> 00:07:08,410 >> Donc pile a à voir avec l'ensemble de vos fonctions 158 00:07:08,410 --> 00:07:10,140 que vous appelez à un moment donné. 159 00:07:10,140 --> 00:07:15,060 Et ce qui est important de se rappeler aller hors de la semaine dernière avec malloc 160 00:07:15,060 --> 00:07:21,080 est que vous ne devez pas vraiment contrôle nécessaire sur elle. 161 00:07:21,080 --> 00:07:24,780 Tout dépend du moment où certains fonctions exécutent. 162 00:07:24,780 --> 00:07:28,170 Et quand ils exécutent, ils avoir ce qu'on appelle des cadres de pile 163 00:07:28,170 --> 00:07:29,290 qui montent ici. 164 00:07:29,290 --> 00:07:32,520 >> Donc tout type de produit sans aucun apport réel de vous. 165 00:07:32,520 --> 00:07:33,630 166 00:07:33,630 --> 00:07:35,510 Vous écrivez votre programme, et vous laisser tourner, 167 00:07:35,510 --> 00:07:38,470 et la pile de type prend soin de lui-même car il a besoin. 168 00:07:38,470 --> 00:07:42,940 Donc, si en principal que vous appelez cube, qui sera passé ici. 169 00:07:42,940 --> 00:07:44,110 Cela va créer un cadre. 170 00:07:44,110 --> 00:07:48,330 Mais il n'y a rien que vous faites explicitement pour créer ce cadre de pile autre que 171 00:07:48,330 --> 00:07:51,430 écrire la fonction pour commencer, OK? 172 00:07:51,430 --> 00:07:56,500 >> Quel est votre type de sous contrôle est le tas avec malloc. 173 00:07:56,500 --> 00:08:01,950 Donc, lorsque vous quelque chose malloc, vous prenez de la mémoire dans le tas. 174 00:08:01,950 --> 00:08:05,110 Et qui est la mémoire que vous avoir, par manque d'un meilleur mot, 175 00:08:05,110 --> 00:08:10,300 contrôle explicite sur, car rappelez-vous avec malloc 176 00:08:10,300 --> 00:08:12,530 il est fondamentalement il jusqu'à ce que vous dites le contraire. 177 00:08:12,530 --> 00:08:14,890 Pour ceux d'entre vous qui section regardé la semaine dernière, 178 00:08:14,890 --> 00:08:17,670 il est là jusqu'à ce que vous lui dites de s'en aller. 179 00:08:17,670 --> 00:08:20,850 Il sera là à moins que autrement dit pas. 180 00:08:20,850 --> 00:08:24,750 Ainsi, le tas est juste quelque chose vous pouvez penser que la mémoire 181 00:08:24,750 --> 00:08:26,150 que vous avez le contrôle sur. 182 00:08:26,150 --> 00:08:29,010 Et ce ne sont que la deux grandes choses différentes. 183 00:08:29,010 --> 00:08:31,320 184 00:08:31,320 --> 00:08:38,330 >> En dehors de cela, vous ne devriez pas avoir à trop se soucier de la pile et le tas 185 00:08:38,330 --> 00:08:42,159 des questions ou généralement plus juste si vous avez des paramètres locaux 186 00:08:42,159 --> 00:08:45,385 ou une fonction serait-il sur la pile ou le tas. 187 00:08:45,385 --> 00:08:47,260 Évidemment, dans ce cas, il serait la pile. 188 00:08:47,260 --> 00:08:49,630 Si vous allouer de quelque chose, où est ce que viennent-ils? 189 00:08:49,630 --> 00:08:50,129 Le tas. 190 00:08:50,129 --> 00:08:51,147 191 00:08:51,147 --> 00:08:54,230 Si vous regardez quiz de pratique, ceux sont généralement le type de questions 192 00:08:54,230 --> 00:08:55,460 dont ils disposent. 193 00:08:55,460 --> 00:08:57,340 >> Vous ne devez pas vous inquiéter trop à ce sujet. 194 00:08:57,340 --> 00:09:00,980 Vous obtenez en plus explicitement sur pile et le tas 195 00:09:00,980 --> 00:09:03,460 plus tard ou dans d'autres classes CS. 196 00:09:03,460 --> 00:09:06,220 Il suffit donc d'avoir une sorte de idée générale de ce que cela est 197 00:09:06,220 --> 00:09:09,100 sera bon, que je juste un peu de passa. 198 00:09:09,100 --> 00:09:10,650 199 00:09:10,650 --> 00:09:12,090 Tous les autres sujets? 200 00:09:12,090 --> 00:09:12,590 Oui? 201 00:09:12,590 --> 00:09:14,923 >> Public: Pouvez-vous revenir sur pointeurs de nouveau très rapidement? 202 00:09:14,923 --> 00:09:15,870 ALLISON BUCHHOLTZ-AU: pointeurs? 203 00:09:15,870 --> 00:09:18,470 Voulez-vous conceptuel Vue d'ensemble de pointeurs 204 00:09:18,470 --> 00:09:19,994 ou pratiquez-vous avec des pointeurs? 205 00:09:19,994 --> 00:09:21,410 PUBLIC: Un peu comme la syntaxe. 206 00:09:21,410 --> 00:09:22,360 ALLISON BUCHHOLTZ-AU: La syntaxe? 207 00:09:22,360 --> 00:09:22,860 Ouais. 208 00:09:22,860 --> 00:09:32,090 209 00:09:32,090 --> 00:09:33,090 OK, nous y arrivons. 210 00:09:33,090 --> 00:09:38,300 211 00:09:38,300 --> 00:09:42,040 Oui, si cela est juste un peu de quelque chose quand vous avez une fonction récursive, 212 00:09:42,040 --> 00:09:45,954 chaque fois que la fonction récursive est appelée, il ajoute simplement un autre cadre de pile. 213 00:09:45,954 --> 00:09:47,870 Quasiment un exemple de la façon dont vous faites pas vraiment 214 00:09:47,870 --> 00:09:50,330 avoir le contrôle de la images sur votre pile. 215 00:09:50,330 --> 00:09:54,010 216 00:09:54,010 --> 00:09:54,585 >> OK, les pointeurs. 217 00:09:54,585 --> 00:09:57,120 218 00:09:57,120 --> 00:09:59,235 Tout droit, créant ainsi des pointeurs. 219 00:09:59,235 --> 00:10:00,300 220 00:10:00,300 --> 00:10:02,420 Rappelez-vous, il est juste de type étoile. 221 00:10:02,420 --> 00:10:07,140 Donc, quel que soit le type de données que vous allez être en montrant. 222 00:10:07,140 --> 00:10:08,720 223 00:10:08,720 --> 00:10:11,440 Ce serait donc un pointeur vers un int. 224 00:10:11,440 --> 00:10:13,140 Ce serait un pointeur sur char. 225 00:10:13,140 --> 00:10:14,740 Ce serait un pointeur sur un flotteur. 226 00:10:14,740 --> 00:10:17,980 Donc, il est fondamentalement ce que vous voulez qu'il soit pointe vers, 227 00:10:17,980 --> 00:10:22,300 étoiles est la façon dont vous déclarez le curseur, OK? 228 00:10:22,300 --> 00:10:26,200 >> Mais puis obtient évidemment un peu difficile quand vous avez pointeur 229 00:10:26,200 --> 00:10:27,370 ou vous avez jouer que ce soit. 230 00:10:27,370 --> 00:10:31,260 Ainsi, la grande différence est lorsque vous declaring-- 231 00:10:31,260 --> 00:10:45,590 nous avons donc some-- si cela prend un certain int étoiles. 232 00:10:45,590 --> 00:10:49,650 Donc, cela est certain pointeur appelle à un int x, non? 233 00:10:49,650 --> 00:10:54,600 Alors rappelez-vous ce que cela fait est-ce le système appelle x. 234 00:10:54,600 --> 00:10:56,970 Et cela va avoir une certaine adresse, non? 235 00:10:56,970 --> 00:11:00,515 Donc disons que ceci est notre adresse. 236 00:11:00,515 --> 00:11:01,590 237 00:11:01,590 --> 00:11:03,570 Pointeurs contenir des adresses. 238 00:11:03,570 --> 00:11:08,660 Donc ce que cela dit est que, à ce emplacement, nous stocker un int. 239 00:11:08,660 --> 00:11:10,770 240 00:11:10,770 --> 00:11:15,770 >> Donc, une autre façon que nous pouvons penser ceci est que cela est quelque int. 241 00:11:15,770 --> 00:11:17,010 242 00:11:17,010 --> 00:11:20,350 Nous avons pas vraiment affecté à rien encore, mais il est juste un int. 243 00:11:20,350 --> 00:11:31,540 Donc, nous pouvons faire est que si nous ne star du x est égal à 5, cela devient un 5, OK? 244 00:11:31,540 --> 00:11:38,350 Ce me dit d'aller à tout ce qui x est pointant, alors allez à cette adresse 245 00:11:38,350 --> 00:11:40,210 et le rendre égal à 5. 246 00:11:40,210 --> 00:11:44,390 Donc, nous attribuons 5 à cette adresse, non? 247 00:11:44,390 --> 00:11:52,540 >> Et puis si vous faites cela, ce qui nous donne l'adresse de. 248 00:11:52,540 --> 00:11:54,730 Ceci est l'adresse de l'opérateur. 249 00:11:54,730 --> 00:11:57,700 Alors, quelle est l'adresse de x? 250 00:11:57,700 --> 00:11:58,809 Nous ne savons pas. 251 00:11:58,809 --> 00:12:00,225 Nous avons pas attribué il une adresse. 252 00:12:00,225 --> 00:12:03,000 253 00:12:03,000 --> 00:12:09,105 Nous pourrions dire qu'il est some-- maintenant nous avons donné il une adresse, si l'adresse est de 4. 254 00:12:09,105 --> 00:12:10,690 255 00:12:10,690 --> 00:12:16,980 Et en fait, si nous passons par quelque chose comme ça, un peu ce que nous avons fait. 256 00:12:16,980 --> 00:12:25,800 Ainsi, à travers ici-- travail je trouve ça aide si vous dessinez des pointeurs. 257 00:12:25,800 --> 00:12:28,270 Si vous êtes sur votre examen, je recommande fortement boîtes dessin. 258 00:12:28,270 --> 00:12:29,490 259 00:12:29,490 --> 00:12:33,310 >> Donc, cette première, int x est égal à 5. 260 00:12:33,310 --> 00:12:37,370 Cela signifie simplement que nous avons une certaine placer en mémoire est de 5, non? 261 00:12:37,370 --> 00:12:38,540 262 00:12:38,540 --> 00:12:44,760 Et notre table nous dit ici qu'il est à l'adresse 0x04. 263 00:12:44,760 --> 00:12:48,770 264 00:12:48,770 --> 00:12:50,280 Et puis nous créons quelque pointeur. 265 00:12:50,280 --> 00:12:51,820 266 00:12:51,820 --> 00:12:55,310 Donc, nous allons décomposer un à la fois. 267 00:12:55,310 --> 00:12:59,820 Donc, cela crée une certaine boîte à un int, non? 268 00:12:59,820 --> 00:13:01,970 Il va tenir certains adresse d'un il. 269 00:13:01,970 --> 00:13:03,470 Donc, cela est certain pointeur. 270 00:13:03,470 --> 00:13:04,940 271 00:13:04,940 --> 00:13:06,510 Et cette craie est vraiment petit. 272 00:13:06,510 --> 00:13:07,472 273 00:13:07,472 --> 00:13:08,680 Nous avons donc une certaine pointeur ici. 274 00:13:08,680 --> 00:13:10,060 275 00:13:10,060 --> 00:13:13,530 Et notre table nous dit qui est l'adresse est 0x08. 276 00:13:13,530 --> 00:13:15,190 277 00:13:15,190 --> 00:13:16,200 Laisser refroidir. 278 00:13:16,200 --> 00:13:23,240 Et nous affectons à l'adresse de x. 279 00:13:23,240 --> 00:13:26,330 >> Rappelez-vous, les pointeurs contenir des adresses, OK? 280 00:13:26,330 --> 00:13:32,050 Donc, si nous voulons tenir x, nous avons d'utiliser l'opérateur d'adresse, qui 281 00:13:32,050 --> 00:13:36,520 est l'esperluette, pour obtenir l'adresse de x, qui, dans ce cas, 0x04. 282 00:13:36,520 --> 00:13:39,130 283 00:13:39,130 --> 00:13:44,430 Et puis si nous avons certains copie int, cette juste 284 00:13:44,430 --> 00:13:48,060 crée une autre boîte que détient une copie int appelé. 285 00:13:48,060 --> 00:13:49,410 286 00:13:49,410 --> 00:13:55,330 Et si nous assignons à this-- si cela est le référençant. 287 00:13:55,330 --> 00:14:00,090 Donc, il me dit d'aller à tout ce qui Adresse pointeur contient. 288 00:14:00,090 --> 00:14:05,330 Pointeur contient l'adresse, de sorte que nous allions là-bas, 289 00:14:05,330 --> 00:14:07,130 et nous disons, OK, ce qu'il ya dedans? 290 00:14:07,130 --> 00:14:08,610 Il est 5. 291 00:14:08,610 --> 00:14:09,815 Donc copie devient 5. 292 00:14:09,815 --> 00:14:11,800 293 00:14:11,800 --> 00:14:12,540 Donner un sens? 294 00:14:12,540 --> 00:14:15,540 295 00:14:15,540 --> 00:14:25,020 >> Qu'est-ce que si je tentais de céder cela juste pour le pointeur. 296 00:14:25,020 --> 00:14:26,476 297 00:14:26,476 --> 00:14:27,850 Qu'est-ce que le pointeur en fait égal? 298 00:14:27,850 --> 00:14:31,126 299 00:14:31,126 --> 00:14:34,315 Il serait tout simplement ce que pointeur contient, non? 300 00:14:34,315 --> 00:14:36,400 301 00:14:36,400 --> 00:14:37,580 Et puis si je l'ai fait? 302 00:14:37,580 --> 00:14:38,922 303 00:14:38,922 --> 00:14:39,880 Qu'est-ce qui copie maintenant? 304 00:14:39,880 --> 00:14:41,365 305 00:14:41,365 --> 00:14:42,275 >> PUBLIC: 0x08. 306 00:14:42,275 --> 00:14:44,150 ALLISON BUCHHOLTZ-AU: Yep, le Adresse de notre pointeur. 307 00:14:44,150 --> 00:14:46,832 308 00:14:46,832 --> 00:14:48,790 Une partie de ce que doit être ré-expliqué? 309 00:14:48,790 --> 00:14:50,170 310 00:14:50,170 --> 00:14:50,670 Laisser refroidir. 311 00:14:50,670 --> 00:14:53,350 312 00:14:53,350 --> 00:14:57,740 Il ya certainement une très problème du plaisir sur un questionnaire 313 00:14:57,740 --> 00:15:00,100 que nous pouvons au cours de cette vous donne plus pratique. 314 00:15:00,100 --> 00:15:00,937 315 00:15:00,937 --> 00:15:03,270 Les gars de la semaine dernière peut vous dire qu'il était pas si mal que ça. 316 00:15:03,270 --> 00:15:06,000 Nous avons traversé un ensemble graphique, et tout le monde a fait de grandes. 317 00:15:06,000 --> 00:15:10,830 >> OK, donc ce est aperçu la syntaxe des pointeurs. 318 00:15:10,830 --> 00:15:15,070 La plus grande chose est de comprendre comment pour les créer, faire référence, 319 00:15:15,070 --> 00:15:18,190 et l'adresse de, OK? 320 00:15:18,190 --> 00:15:18,690 Laisser refroidir. 321 00:15:18,690 --> 00:15:20,775 Les autres sujets avant nous plongeons dans la pratique. 322 00:15:20,775 --> 00:15:24,280 323 00:15:24,280 --> 00:15:28,011 Aussi, si nous allons à travers les problèmes pratiques 324 00:15:28,011 --> 00:15:30,760 et il ya quelque chose que vous voulez un recyclage, nous pouvons le faire aussi. 325 00:15:30,760 --> 00:15:31,300 Avez-vous quelque chose? 326 00:15:31,300 --> 00:15:32,758 >> PUBLIC: Structures et listes liées. 327 00:15:32,758 --> 00:15:35,130 ALLISON BUCHHOLTZ-AU: Structures et les listes chaînées, OK. 328 00:15:35,130 --> 00:15:37,100 Donc structures. 329 00:15:37,100 --> 00:15:38,990 Nous allons vraiment au cours de cette nuit trop. 330 00:15:38,990 --> 00:15:40,130 331 00:15:40,130 --> 00:15:41,890 OK, donc structures. 332 00:15:41,890 --> 00:15:47,490 Structures sont essentiellement juste une façon pour vous de tenir 333 00:15:47,490 --> 00:15:50,430 plusieurs valeurs de types différents. 334 00:15:50,430 --> 00:15:55,150 Donc, avec un tableau nous sommes resserré à un type de données. 335 00:15:55,150 --> 00:16:00,965 Notre réseau a soit juste être des nombres, ou tout simplement être caractères, ou tout simplement être flotteurs. 336 00:16:00,965 --> 00:16:02,240 337 00:16:02,240 --> 00:16:05,470 >> Mais peut-être vous avez besoin de contenir plus que cela. 338 00:16:05,470 --> 00:16:09,130 Peut-être que vous avez besoin de hold-- si vous parlez d'un étudiant, 339 00:16:09,130 --> 00:16:13,660 vous allez avoir leur maison, leur numéro d'identification, leur âge, leur lieu de résidence, 340 00:16:13,660 --> 00:16:14,240 droit? 341 00:16:14,240 --> 00:16:16,460 Et tous ceux qui sont différentes sortes de types. 342 00:16:16,460 --> 00:16:18,680 Donc, vous ne pouvez pas stocker ceux tout dans un tableau. 343 00:16:18,680 --> 00:16:21,750 >> Donc ce que vous pouvez faire est de vous peut créer une structure, qui 344 00:16:21,750 --> 00:16:26,240 vous pouvez penser que votre propre type de données à caractère personnel. 345 00:16:26,240 --> 00:16:29,130 Ainsi, au lieu d'avoir juste ints et au lieu d'avoir juste flotteurs, 346 00:16:29,130 --> 00:16:33,210 vous pouvez avoir un étudiant de type a tous ces domaines en elle. 347 00:16:33,210 --> 00:16:39,740 Donc, la façon dont nous initialisons nos struct est-- fait 348 00:16:39,740 --> 00:16:44,921 depuis mon écriture est terrible, nous vont passer à la dactylographie. 349 00:16:44,921 --> 00:16:45,420 Woo. 350 00:16:45,420 --> 00:16:48,800 351 00:16:48,800 --> 00:16:53,150 >> OK, donc si nous voulons créer un struct-- Je vais juste vers le bas ici. 352 00:16:53,150 --> 00:16:57,730 Ignorez le principal dans tout ce que nous utiliserons plus tard. 353 00:16:57,730 --> 00:17:02,330 Ainsi, la manière que vous voulez faire il est avec typedef struct. 354 00:17:02,330 --> 00:17:10,530 355 00:17:10,530 --> 00:17:13,349 Et Appelons cet étudiant parce que ce que je servais. 356 00:17:13,349 --> 00:17:17,801 OK, si vous êtes signifie typedef la définition d'un nouveau type, OK? 357 00:17:17,801 --> 00:17:20,140 358 00:17:20,140 --> 00:17:24,355 Il ya des nuances dans quand vous faites juste une structure par rapport à une structure de typedef. 359 00:17:24,355 --> 00:17:26,313 Pour toutes les intentions et fins, les gars sont juste 360 00:17:26,313 --> 00:17:29,490 allons supposer qu'ils sont environ la même et juste 361 00:17:29,490 --> 00:17:30,820 utiliser typedef struct pour l'instant. 362 00:17:30,820 --> 00:17:35,180 Il va devenir beaucoup plus apparent dans votre prochaine P défini quelles sont ces différences, 363 00:17:35,180 --> 00:17:37,960 mais je ne pense pas que vous devez inquiéter à ce sujet en ce moment. 364 00:17:37,960 --> 00:17:40,360 Je préférerais vous savoir comment créer un, 365 00:17:40,360 --> 00:17:41,880 accéder, et affecter la fonction [? valeur. ?] 366 00:17:41,880 --> 00:17:47,820 >> Un nouveau type de structure, et nous l'appelons étudiant. 367 00:17:47,820 --> 00:17:52,640 Ainsi, après nous avons terminé la création de ce, pour toutes fins utiles, 368 00:17:52,640 --> 00:17:55,070 vous aurez un type appelé étudiant. 369 00:17:55,070 --> 00:17:59,610 Et vous pouvez penser à lui comme un type comme un int ou un float, ou un car. 370 00:17:59,610 --> 00:18:01,820 Il est juste un autre type, OK? 371 00:18:01,820 --> 00:18:04,530 >> Ainsi, dans celui-ci, qu'avons-nous? 372 00:18:04,530 --> 00:18:05,420 Nous avons peut-être un nom. 373 00:18:05,420 --> 00:18:08,275 Alors peut-être que nous voulons un nom de chaîne. 374 00:18:08,275 --> 00:18:09,610 375 00:18:09,610 --> 00:18:14,065 Et nous avons peut-être un int qui est une pièce d'identité. 376 00:18:14,065 --> 00:18:16,360 377 00:18:16,360 --> 00:18:19,085 Et nous avons un autre en qui est le numéro de téléphone. 378 00:18:19,085 --> 00:18:21,990 379 00:18:21,990 --> 00:18:26,200 Et nous avons some-- voyons. 380 00:18:26,200 --> 00:18:27,200 Que pourrions-nous avoir? 381 00:18:27,200 --> 00:18:29,385 Nous avons une chaîne de caractères à sa maison. 382 00:18:29,385 --> 00:18:32,340 383 00:18:32,340 --> 00:18:34,510 Toutes les choses que l'étudiant a. 384 00:18:34,510 --> 00:18:36,960 >> Donc, cela crée une structure maintenant. 385 00:18:36,960 --> 00:18:41,450 Alors, comment pouvons-nous créer un étudiant? 386 00:18:41,450 --> 00:18:46,960 Si nous avons une variable qui est allons parler ici Walker, 387 00:18:46,960 --> 00:18:51,245 donc nous nous sommes juste have-- vais appeler ce marcheur. 388 00:18:51,245 --> 00:18:52,520 Il a besoin d'un type. 389 00:18:52,520 --> 00:18:53,770 Quel est votre type? 390 00:18:53,770 --> 00:18:54,520 Public: étudiants. 391 00:18:54,520 --> 00:18:55,395 ALLISON BUCHHOLTZ-AU: Student. 392 00:18:55,395 --> 00:18:57,130 393 00:18:57,130 --> 00:19:04,800 Donc, cela crée seulement un objet, vous pouvez penser qui a toutes ces choses. 394 00:19:04,800 --> 00:19:07,880 Vous venez de créer un étudiant marcheur. 395 00:19:07,880 --> 00:19:10,910 Alors maintenant, nous devons être en mesure d'attribuer tout cela, non? 396 00:19:10,910 --> 00:19:13,500 Donc ne Quelqu'un se souvient comment nous accédons à l'intérieur d'une structure? 397 00:19:13,500 --> 00:19:14,762 398 00:19:14,762 --> 00:19:15,470 PUBLIC: Période. 399 00:19:15,470 --> 00:19:16,730 ALLISON BUCHHOLTZ-AU: Période Exactement. 400 00:19:16,730 --> 00:19:23,795 Donc, si nous voulions attribuer lui un nom, nous pourrions le faire. 401 00:19:23,795 --> 00:19:24,820 402 00:19:24,820 --> 00:19:28,680 Évidemment, cela être-- cette partie serait ici 403 00:19:28,680 --> 00:19:31,831 être à l'intérieur principal, de sorte que effectivement permettez-moi de le faire. 404 00:19:31,831 --> 00:19:40,980 405 00:19:40,980 --> 00:19:44,250 Déclarer ce haut principal si que nous pouvons utiliser dans principal. 406 00:19:44,250 --> 00:19:52,250 407 00:19:52,250 --> 00:20:00,980 Alors maintenant, je veux qu'il fasse ID, et nous allons faire un peu de là-bas, 408 00:20:00,980 --> 00:20:02,970 et puis nous allons assigner une maison. 409 00:20:02,970 --> 00:20:07,990 410 00:20:07,990 --> 00:20:09,000 Bam. 411 00:20:09,000 --> 00:20:09,650 Laisser refroidir. 412 00:20:09,650 --> 00:20:19,870 >> Alors maintenant, nous devrions jamais besoin de l'accès rien plus tard peut-être on-- nous-- 413 00:20:19,870 --> 00:20:25,920 si jamais nous avons besoin d'accéder à quoi que ce soit, disons simplement faire une copie ID int. 414 00:20:25,920 --> 00:20:27,400 415 00:20:27,400 --> 00:20:30,530 Et je veux copier ID Walker dans cette. 416 00:20:30,530 --> 00:20:31,370 Comment pourrais-je le faire? 417 00:20:31,370 --> 00:20:33,670 418 00:20:33,670 --> 00:20:37,790 Vous devez accéder à l'intérieur du marcheur struct à [? aller à cela?] [? E?]. 419 00:20:37,790 --> 00:20:41,280 Et de la même manière que nous lui a attribué ici, comment 420 00:20:41,280 --> 00:20:45,573 pourrions-nous y accéder quand on veut donner cette valeur à quelque chose d'autre? 421 00:20:45,573 --> 00:20:46,406 PUBLIC: Walker.id. 422 00:20:46,406 --> 00:20:47,252 423 00:20:47,252 --> 00:20:48,376 ALLISON BUCHHOLTZ-AU: Oui, exactement. 424 00:20:48,376 --> 00:20:51,884 425 00:20:51,884 --> 00:20:54,175 Voilà donc à peu près tout vous avez besoin de savoir pour les structures. 426 00:20:54,175 --> 00:20:55,750 427 00:20:55,750 --> 00:20:58,560 Vous avez juste besoin de penser à comme autre variable. 428 00:20:58,560 --> 00:21:01,710 Fondamentalement, un créer votre propre type de variable, OK? 429 00:21:01,710 --> 00:21:04,440 430 00:21:04,440 --> 00:21:07,970 Vous l'utilisez pour déclarer des variables en aucune façon. 431 00:21:07,970 --> 00:21:10,290 Voici marcheur est toujours une variable. 432 00:21:10,290 --> 00:21:14,230 Il a juste un étudiant de type maintenant la place d'un type int, ou une chaîne de type, 433 00:21:14,230 --> 00:21:15,070 ou un type char. 434 00:21:15,070 --> 00:21:17,014 435 00:21:17,014 --> 00:21:19,930 Si il y avait un moyen facile de parler sur Structures, il est littéralement juste un 436 00:21:19,930 --> 00:21:24,430 créer votre propre type de données qui vous permet de groupe 437 00:21:24,430 --> 00:21:28,320 Tous ces différents type de données ensemble. 438 00:21:28,320 --> 00:21:29,754 439 00:21:29,754 --> 00:21:31,595 Est-ce que cela a un sens? 440 00:21:31,595 --> 00:21:33,920 441 00:21:33,920 --> 00:21:34,420 Dáccord. 442 00:21:34,420 --> 00:21:35,920 443 00:21:35,920 --> 00:21:37,530 Cela et l'accès à des points. 444 00:21:37,530 --> 00:21:38,790 445 00:21:38,790 --> 00:21:39,960 À peu près tout ce que vous avez besoin. 446 00:21:39,960 --> 00:21:41,150 447 00:21:41,150 --> 00:21:46,600 >> OK, d'où vient mon PowerPoint aller? 448 00:21:46,600 --> 00:21:47,580 Ce est ici. 449 00:21:47,580 --> 00:21:49,050 450 00:21:49,050 --> 00:21:50,520 Eh bien cela est bizarre. 451 00:21:50,520 --> 00:21:53,950 452 00:21:53,950 --> 00:21:55,420 Aha. 453 00:21:55,420 --> 00:21:56,766 OK, cool. 454 00:21:56,766 --> 00:21:58,876 455 00:21:58,876 --> 00:22:01,000 Toutes les autres choses ou avons-nous vouloir se diriger à la pratique? 456 00:22:01,000 --> 00:22:02,210 457 00:22:02,210 --> 00:22:02,710 Pratiquer? 458 00:22:02,710 --> 00:22:03,501 Dáccord. 459 00:22:03,501 --> 00:22:04,000 Impressionnant. 460 00:22:04,000 --> 00:22:05,642 461 00:22:05,642 --> 00:22:06,600 Je vais quitter cette. 462 00:22:06,600 --> 00:22:08,490 Si à tout moment pendant questions pratiques, 463 00:22:08,490 --> 00:22:12,630 Je suis heureux de réorganiser et passer par les choses. 464 00:22:12,630 --> 00:22:15,240 Donc je dois questionnaire zéro ici. 465 00:22:15,240 --> 00:22:18,370 Si vous voulez les gars à tirer l'installer sur votre ordinateur, 466 00:22:18,370 --> 00:22:20,670 tout comme prendre cinq minutes pour parcourir. 467 00:22:20,670 --> 00:22:23,540 Peut-être choisir un sommet questions que vous voulez aller sur. 468 00:22:23,540 --> 00:22:27,390 Si vous les gars ne pouvez pas décider, nous allons simplement commencer lentement à travailler à travers eux, 469 00:22:27,390 --> 00:22:31,590 mais je suis sûr qu'il va y avoir une certaine questions que vous êtes particulièrement 470 00:22:31,590 --> 00:22:34,890 désireux de parler et avoir me travaille à travers avec vous tous. 471 00:22:34,890 --> 00:22:36,580 Il suffit donc aller de l'avant et prendre cinq minutes. 472 00:22:36,580 --> 00:22:37,780 Faites défiler. 473 00:22:37,780 --> 00:22:40,620 Et ceci est le test à partir de 2013. 474 00:22:40,620 --> 00:22:41,841 >> PUBLIC: Zero? 475 00:22:41,841 --> 00:22:43,630 >> ALLISON BUCHHOLTZ-AU: Ouais, quizz zéro. 476 00:22:43,630 --> 00:22:45,647 Nous ne faisons pas un questionnaire choses. 477 00:22:45,647 --> 00:22:46,980 Nous le ferons dans quelques semaines. 478 00:22:46,980 --> 00:22:52,941 479 00:22:52,941 --> 00:22:55,190 Aussi pour ceux d'entre vous qui est venu à la fin, nous avons bonbons, 480 00:22:55,190 --> 00:23:00,580 Donc, ne vous voulez les gars bonbons? 481 00:23:00,580 --> 00:23:01,530 >> PUBLIC: Bien sûr. 482 00:23:01,530 --> 00:23:03,321 >> ALLISON BUCHHOLTZ-AU: Je suis juste va passer autour. 483 00:23:03,321 --> 00:23:09,774 484 00:23:09,774 --> 00:23:11,940 Hey, les gars si vous obtenez ici début, vous obtenez plus de bonbons. 485 00:23:11,940 --> 00:23:12,500 Ce est très bien. 486 00:23:12,500 --> 00:23:13,550 Ben, tu veux des bonbons? 487 00:23:13,550 --> 00:23:19,350 488 00:23:19,350 --> 00:23:20,556 Vous voulez un peu de ceux-ci? 489 00:23:20,556 --> 00:23:24,122 490 00:23:24,122 --> 00:23:26,080 Il ya aussi le cas Snickers quelqu'un veut Snickers. 491 00:23:26,080 --> 00:23:27,640 492 00:23:27,640 --> 00:23:29,360 Je vais les laisser ici et ici. 493 00:23:29,360 --> 00:23:30,946 Sentez-vous libre. 494 00:23:30,946 --> 00:23:32,485 Voulez-vous plus? 495 00:23:32,485 --> 00:23:33,235 Public: tous ensemble. 496 00:23:33,235 --> 00:23:33,540 Merci. 497 00:23:33,540 --> 00:23:36,248 >> ALLISON BUCHHOLTZ-AU: et moi avons eu une belle petit tas là au début. 498 00:23:36,248 --> 00:23:49,080 499 00:23:49,080 --> 00:23:51,980 Vous les gars avez à prendre le jeu et Je arrivez à avoir une partie quiz classement. 500 00:23:51,980 --> 00:23:54,496 501 00:23:54,496 --> 00:23:55,360 Il est le chaos. 502 00:23:55,360 --> 00:23:56,460 503 00:23:56,460 --> 00:23:57,385 900 examens. 504 00:23:57,385 --> 00:23:58,650 Ça va être tellement amusant. 505 00:23:58,650 --> 00:24:00,441 506 00:24:00,441 --> 00:24:02,036 Va être génial. 507 00:24:02,036 --> 00:24:04,430 Je suis assez sûr que ce soit une de la plus grande liaison personnel 508 00:24:04,430 --> 00:24:05,380 nuits de l'année. 509 00:24:05,380 --> 00:24:15,660 510 00:24:15,660 --> 00:24:19,175 Quelqu'un at-il fait zéro questionnaire de l'année dernière encore par curiosité? 511 00:24:19,175 --> 00:24:20,335 >> PUBLIC: Les parties de lui. 512 00:24:20,335 --> 00:24:21,543 >> ALLISON BUCHHOLTZ-AU: Les parties de lui, OK. 513 00:24:21,543 --> 00:24:24,272 514 00:24:24,272 --> 00:24:26,482 Avez-vous des questions sur l'un d'eux? 515 00:24:26,482 --> 00:24:28,190 PUBLIC: je l'ai déjà est allé à des heures de bureau. 516 00:24:28,190 --> 00:24:28,898 Merci bien. 517 00:24:28,898 --> 00:24:30,187 518 00:24:30,187 --> 00:24:32,520 ALLISON BUCHHOLTZ-AU: Eh bien, je l'espère il est encore un peu utile. 519 00:24:32,520 --> 00:24:42,990 520 00:24:42,990 --> 00:24:45,634 Quand êtes-vous allé les heures de bureau pour cela? 521 00:24:45,634 --> 00:24:47,300 PUBLIC: Mon TF leur avait cet après-midi. 522 00:24:47,300 --> 00:24:47,966 ALLISON BUCHHOLTZ-AU: Oh. 523 00:24:47,966 --> 00:24:48,977 Qui est votre TF? 524 00:24:48,977 --> 00:24:49,854 525 00:24:49,854 --> 00:24:51,020 PUBLIC: Fred [? Wujaya?]. 526 00:24:51,020 --> 00:24:52,622 527 00:24:52,622 --> 00:24:54,080 ALLISON BUCHHOLTZ-AU: Il ya tellement de facteurs de transcription. 528 00:24:54,080 --> 00:24:55,350 529 00:24:55,350 --> 00:24:55,850 Donc, beaucoup. 530 00:24:55,850 --> 00:25:16,530 531 00:25:16,530 --> 00:25:17,340 Bien. 532 00:25:17,340 --> 00:25:45,310 533 00:25:45,310 --> 00:25:48,950 Quelqu'un at-il pour commencer que je peux Notez que nous voulons travailler? 534 00:25:48,950 --> 00:25:53,770 535 00:25:53,770 --> 00:25:55,685 Je suppose que les pointeurs une avec la table. 536 00:25:55,685 --> 00:25:56,890 537 00:25:56,890 --> 00:25:57,610 Allez-y. 538 00:25:57,610 --> 00:25:59,180 >> PUBLIC: Peut-être que l'interrupteur un. 539 00:25:59,180 --> 00:26:02,362 540 00:26:02,362 --> 00:26:03,445 ALLISON BUCHHOLTZ-AU: Donc, le numéro 12? 541 00:26:03,445 --> 00:26:06,750 542 00:26:06,750 --> 00:26:10,770 Je suppose que le numéro 8 et 9 sont probablement ceux que les gens veulent aller sur. 543 00:26:10,770 --> 00:26:12,116 >> Public: Et 10 et 11. 544 00:26:12,116 --> 00:26:21,860 545 00:26:21,860 --> 00:26:25,806 >> ZAMYLA Chan: Et vous les gars savent vous obtenez une page de notes, non? 546 00:26:25,806 --> 00:26:28,450 >> PUBLIC: Ouais, donc ce sont nous a permis de mettre sur ce point. 547 00:26:28,450 --> 00:26:30,658 >> ALLISON BUCHHOLTZ-AU: Vous êtes autorisé à mettre ce que vous voulez. 548 00:26:30,658 --> 00:26:31,887 549 00:26:31,887 --> 00:26:32,720 Et il peut être saisi. 550 00:26:32,720 --> 00:26:35,270 Pour autant que je me souviens, la nôtre ont été typés. 551 00:26:35,270 --> 00:26:37,022 >> PUBLIC: Vous pouvez faire arrière et les deux côtés? 552 00:26:37,022 --> 00:26:38,780 >> ALLISON BUCHHOLTZ-AU: Oui, des deux côtés. 553 00:26:38,780 --> 00:26:42,940 Donc, quelque chose comme le tas et [? arrière?] tas, votre course 554 00:26:42,940 --> 00:26:43,780 fois. 555 00:26:43,780 --> 00:26:44,840 Utile. 556 00:26:44,840 --> 00:26:47,990 Peut-être que peu de choses sur pointeurs pour vous rappeler. 557 00:26:47,990 --> 00:26:49,205 Syntaxe des choses. 558 00:26:49,205 --> 00:26:51,600 559 00:26:51,600 --> 00:26:54,830 Ayant tout juste comme un squelette programme peut être super utile. 560 00:26:54,830 --> 00:27:00,719 Je sais que je toujours oublié exactement ce que Je devais écrire pour int main, 561 00:27:00,719 --> 00:27:03,010 parce que je toujours il suffit de copier coller de mon précédent P ensemble 562 00:27:03,010 --> 00:27:06,232 ou il est déjà là, alors Je jamais vraiment écrit il, 563 00:27:06,232 --> 00:27:07,690 afin d'avoir ce que peut être super utile. 564 00:27:07,690 --> 00:27:09,280 565 00:27:09,280 --> 00:27:14,320 >> OK, alors pourquoi ne pas nous commencer avec le numéro 8 alors? 566 00:27:14,320 --> 00:27:21,730 567 00:27:21,730 --> 00:27:22,810 Bien. 568 00:27:22,810 --> 00:27:23,310 Dáccord. 569 00:27:23,310 --> 00:27:25,060 570 00:27:25,060 --> 00:27:26,310 Ainsi, considérer le programme ci-dessous. 571 00:27:26,310 --> 00:27:28,110 572 00:27:28,110 --> 00:27:30,700 Alors, évidemment, quand nous voyons pointeurs, il est probablement 573 00:27:30,700 --> 00:27:32,200 une bonne idée de commencer à dessiner, non? 574 00:27:32,200 --> 00:27:34,552 575 00:27:34,552 --> 00:27:36,760 Je veux savoir où tout mon de gros morceaux de craie sont allés. 576 00:27:36,760 --> 00:27:37,870 Ceci est assez ennuyeux. 577 00:27:37,870 --> 00:27:40,210 578 00:27:40,210 --> 00:27:45,820 >> Nous avons donc ici une fonction d'échange cela va prendre deux pointeurs. 579 00:27:45,820 --> 00:27:48,630 Donc dans ce cas, ils devrait en fait être de commutation 580 00:27:48,630 --> 00:27:53,400 choses par rapport à notre échange d'origine fonction qui a seulement pris dans les copies. 581 00:27:53,400 --> 00:27:57,030 Alors qu'est-ce que ça va faire est-- nous allons commencer avec principal, 582 00:27:57,030 --> 00:27:58,450 parce que ce où 1 est. 583 00:27:58,450 --> 00:28:04,296 >> Donc, nous avons un certain int x 1. 584 00:28:04,296 --> 00:28:11,860 Nous avons certains y qui est égal à 2. 585 00:28:11,860 --> 00:28:14,390 Et puis nous avons un certain échange qui va prendre ceux-ci. 586 00:28:14,390 --> 00:28:17,320 Et nous allons voir ce que nous avons ici. 587 00:28:17,320 --> 00:28:19,542 588 00:28:19,542 --> 00:28:22,709 Et dans notre table-- oh boy. 589 00:28:22,709 --> 00:28:23,792 Comment vais-je faire cela? 590 00:28:23,792 --> 00:28:25,900 Je vais faire ma table ici. 591 00:28:25,900 --> 00:28:49,490 592 00:28:49,490 --> 00:28:50,552 À peine faire là. 593 00:28:50,552 --> 00:28:51,260 A peine la faire. 594 00:28:51,260 --> 00:28:52,470 595 00:28:52,470 --> 00:28:57,960 1, 2, 3, 4, 5, 6, 7. 596 00:28:57,960 --> 00:29:11,220 597 00:29:11,220 --> 00:29:15,706 Et ils nous donnent que 1 est 1, et 1 2. 598 00:29:15,706 --> 00:29:16,206 Laisser refroidir. 599 00:29:16,206 --> 00:29:17,674 600 00:29:17,674 --> 00:29:18,174 Impressionnant. 601 00:29:18,174 --> 00:29:19,650 602 00:29:19,650 --> 00:29:20,464 Donc 3. 603 00:29:20,464 --> 00:29:21,380 Et il n'y a [? un 1.?] 604 00:29:21,380 --> 00:29:24,500 605 00:29:24,500 --> 00:29:25,250 >> Bien. 606 00:29:25,250 --> 00:29:35,202 Et puis l'adresse de x est 0x123. 607 00:29:35,202 --> 00:29:41,260 Et y est Ox127. 608 00:29:41,260 --> 00:29:41,760 Laisser refroidir. 609 00:29:41,760 --> 00:29:42,940 610 00:29:42,940 --> 00:29:43,595 Bien. 611 00:29:43,595 --> 00:29:46,710 Je veux que vous travaillez sur ce gars pour un travail juste like-- sur ce 612 00:29:46,710 --> 00:29:48,385 avec les gens autour de vous. 613 00:29:48,385 --> 00:29:50,340 Je voudrais avoir dit que alors que je mettais en place. 614 00:29:50,340 --> 00:29:50,840 Travailler. 615 00:29:50,840 --> 00:29:53,270 Essayez de travailler sur elle par vous pendant quelques minutes, 616 00:29:53,270 --> 00:29:54,930 et puis je vais travailler dessus avec vous. 617 00:29:54,930 --> 00:29:57,034 618 00:29:57,034 --> 00:30:00,117 Parce que la seule façon dont vous êtes vraiment va apprendre est de faire vous-même. 619 00:30:00,117 --> 00:31:29,580 620 00:31:29,580 --> 00:31:30,110 Pas de soucis. 621 00:31:30,110 --> 00:31:30,610 Bonne chance. 622 00:31:30,610 --> 00:32:17,390 623 00:32:17,390 --> 00:32:20,030 >> OK, pourquoi ne pas nous lentement commencer à travailler à travers cela. 624 00:32:20,030 --> 00:32:23,695 Donc tout le monde a, après la ligne une, x est égal à 1. 625 00:32:23,695 --> 00:32:26,860 Après la deuxième ligne, X et y sont 1 et 2, à droite? 626 00:32:26,860 --> 00:32:27,400 Laisser refroidir. 627 00:32:27,400 --> 00:32:30,310 Donc, la ligne de trois où les choses devenir intéressant bien sûr. 628 00:32:30,310 --> 00:32:34,970 >> Donc, ce que nous avons fait ici est que nous avons maintenant échangé. 629 00:32:34,970 --> 00:32:42,360 Nous disons que x et y ont ces points, ou ils ont l'adresse de x et y, 630 00:32:42,360 --> 00:32:43,390 droit? 631 00:32:43,390 --> 00:32:48,451 Donc dans ce cas, trois, quelle est la valeur de a? 632 00:32:48,451 --> 00:32:52,379 633 00:32:52,379 --> 00:32:59,806 un avait été adopté en a été donné la valeur de l'adresse de x, non? 634 00:32:59,806 --> 00:33:02,542 635 00:33:02,542 --> 00:33:03,454 >> PUBLIC: 1? 636 00:33:03,454 --> 00:33:05,200 >> ALLISON BUCHHOLTZ-AU: Donc, nous l'ajouterons à la x? 637 00:33:05,200 --> 00:33:06,420 Quelle est l'adresse de x? 638 00:33:06,420 --> 00:33:07,212 >> PUBLIC: 0x123. 639 00:33:07,212 --> 00:33:08,087 >> ALLISON BUCHHOLTZ-AU: Exactement. 640 00:33:08,087 --> 00:33:13,960 641 00:33:13,960 --> 00:33:16,790 Mais ce qui est réellement un pointage de? 642 00:33:16,790 --> 00:33:20,790 Si nous étions à déréférencer un, quelle valeur serait-il nous donner. 643 00:33:20,790 --> 00:33:21,290 PUBLIC: 1. 644 00:33:21,290 --> 00:33:23,164 ALLISON BUCHHOLTZ-AU: Il serait nous donner une, parce que ce 645 00:33:23,164 --> 00:33:27,810 nous disons est d'aller à cette adresse, dites-nous quelle est la valeur. 646 00:33:27,810 --> 00:33:28,890 Donc, ce qui serait b? 647 00:33:28,890 --> 00:33:30,500 648 00:33:30,500 --> 00:33:31,445 >> PUBLIC: 0x127. 649 00:33:31,445 --> 00:33:32,320 ALLISON BUCHHOLTZ-AU: Exactement. 650 00:33:32,320 --> 00:33:33,610 651 00:33:33,610 --> 00:33:35,410 Donc, il est l'adresse de y. 652 00:33:35,410 --> 00:33:36,580 653 00:33:36,580 --> 00:33:39,811 Et puis quoi [? déréférencement? ?] 654 00:33:39,811 --> 00:33:40,310 PUBLIC: 2. 655 00:33:40,310 --> 00:33:42,172 656 00:33:42,172 --> 00:33:43,380 ALLISON BUCHHOLTZ-AU: OK, donc maintenant quatre. 657 00:33:43,380 --> 00:33:44,390 658 00:33:44,390 --> 00:33:51,300 Nous avons dit est equal-- bien maintenant, nous avons fait int température est égale à l'étoile d'un. 659 00:33:51,300 --> 00:33:53,580 Donc ce qui change? 660 00:33:53,580 --> 00:33:55,680 Il ya une seule chose qui change ici. 661 00:33:55,680 --> 00:33:56,180 Qu'Est-ce que ce est? 662 00:33:56,180 --> 00:33:57,892 663 00:33:57,892 --> 00:33:58,624 >> PUBLIC: Temp. 664 00:33:58,624 --> 00:33:59,540 ALLISON BUCHHOLTZ-AU: La température. 665 00:33:59,540 --> 00:34:06,120 Donc, nous pouvons réécrire tout cela. 666 00:34:06,120 --> 00:34:07,790 667 00:34:07,790 --> 00:34:10,690 Une bonne stratégie pour ces est juste Comprendre 668 00:34:10,690 --> 00:34:14,050 Quels changements, car le plus souvent il ya une seule chose qui est 669 00:34:14,050 --> 00:34:16,300 va changer à un moment donné, OK? 670 00:34:16,300 --> 00:34:17,960 671 00:34:17,960 --> 00:34:20,100 Nous avons donc attribué température. 672 00:34:20,100 --> 00:34:26,929 >> Maintenant, notre prochain point, cinq, nous ont fait une étoile égale à Star B. 673 00:34:26,929 --> 00:34:28,880 Donc ce qui change aujourd'hui? 674 00:34:28,880 --> 00:34:29,760 >> PUBLIC: Star a. 675 00:34:29,760 --> 00:34:32,081 >> ALLISON BUCHHOLTZ-AU: Star a, so tout le reste reste la même. 676 00:34:32,081 --> 00:34:38,610 677 00:34:38,610 --> 00:34:39,900 Et ce ne étoile à égal? 678 00:34:39,900 --> 00:34:40,659 >> PUBLIC: 2. 679 00:34:40,659 --> 00:34:41,283 ALLISON BUCHHOLTZ-AU: 2. 680 00:34:41,283 --> 00:34:42,460 681 00:34:42,460 --> 00:34:42,960 Belle. 682 00:34:42,960 --> 00:34:45,360 683 00:34:45,360 --> 00:34:46,239 Impressionnant. 684 00:34:46,239 --> 00:34:51,190 OK, et puis nous avons maintenant Commencer B est égal à température. 685 00:34:51,190 --> 00:34:53,907 Donc, la seule chose qui change est l'étoile b. 686 00:34:53,907 --> 00:34:55,344 Tout le reste demeure le même. 687 00:34:55,344 --> 00:35:01,100 688 00:35:01,100 --> 00:35:02,610 Et ce qui est étoiles b égal à maintenant? 689 00:35:02,610 --> 00:35:04,840 690 00:35:04,840 --> 00:35:06,190 Et vous avez complété le tableau. 691 00:35:06,190 --> 00:35:11,620 692 00:35:11,620 --> 00:35:18,460 Parce que maintenant, à la fin, si nous disons x et y, nous savons qu'à ce point-- 693 00:35:18,460 --> 00:35:23,060 nous savons que lorsque nous changé jouer un à 2, 694 00:35:23,060 --> 00:35:29,620 ce que l'ont fait est-il dit OK, à 0x123 répondre ici, changer. 695 00:35:29,620 --> 00:35:31,780 696 00:35:31,780 --> 00:35:33,290 Ce était maintenant de 2. 697 00:35:33,290 --> 00:35:34,460 698 00:35:34,460 --> 00:35:40,600 Et puis, à ce stade, nous avons dit OK, allez à l'étoile b. 699 00:35:40,600 --> 00:35:45,305 Alors, allez à l'adresse indiquée 0x127 et en faire un 1. 700 00:35:45,305 --> 00:35:49,670 701 00:35:49,670 --> 00:35:53,110 Alors maintenant, à la toute fin lorsque nous revenons en fait pour principal, 702 00:35:53,110 --> 00:35:56,445 nous avons en fait que x est égale à 2 et y est égal à 1. 703 00:35:56,445 --> 00:35:58,500 704 00:35:58,500 --> 00:35:59,500 Tout le monde bien avec qui? 705 00:35:59,500 --> 00:36:00,720 706 00:36:00,720 --> 00:36:02,320 OK, cool. 707 00:36:02,320 --> 00:36:04,030 Numéro 9. 708 00:36:04,030 --> 00:36:05,950 Les gars, vous travaillez sur ce point. 709 00:36:05,950 --> 00:36:09,016 Je vais mettre en place un conseil d'administration afin que nous puissions tirer à travers elle. 710 00:36:09,016 --> 00:36:09,910 Ça va être une explosion. 711 00:36:09,910 --> 00:36:13,760 712 00:36:13,760 --> 00:36:16,320 Les grandes tables peuvent être vraiment effrayant, je sais. 713 00:36:16,320 --> 00:36:19,910 Mais si vous prenez juste les une ligne à un temps, ils obtiennent beaucoup moins effrayant. 714 00:36:19,910 --> 00:38:12,025 715 00:38:12,025 --> 00:38:12,860 Bien. 716 00:38:12,860 --> 00:38:16,230 717 00:38:16,230 --> 00:38:21,190 >> Donc, vous savez que cela aura traversé principal en premier, non? 718 00:38:21,190 --> 00:38:24,140 Initialise x et y, et puis tente de les échanger. 719 00:38:24,140 --> 00:38:28,560 Ainsi, même swap est au-dessus, véritable façon dont il va est que nous sommes en train de vivre principale, 720 00:38:28,560 --> 00:38:31,040 et puis qu'il appelle à échanger, d'accord? 721 00:38:31,040 --> 00:38:32,810 Donc, tout le monde le sait. 722 00:38:32,810 --> 00:38:34,960 >> Alors que l'on vous faire les gars veulent commencer? 723 00:38:34,960 --> 00:38:37,240 Quelqu'un est-il vraiment sûr sur l'un d'eux? 724 00:38:37,240 --> 00:38:38,307 725 00:38:38,307 --> 00:38:39,265 Ou même partiellement sûr? 726 00:38:39,265 --> 00:38:44,170 727 00:38:44,170 --> 00:38:48,120 Pourquoi ne pas commencer avec x? 728 00:38:48,120 --> 00:38:49,060 Que pensons-nous x est? 729 00:38:49,060 --> 00:38:49,735 >> PUBLIC: 1. 730 00:38:49,735 --> 00:38:50,360 ALLISON BUCHHOLTZ-AU: 1. 731 00:38:50,360 --> 00:38:54,500 732 00:38:54,500 --> 00:38:56,340 Alors pourquoi est 2. 733 00:38:56,340 --> 00:38:58,880 734 00:38:58,880 --> 00:39:01,380 Tout cela parce que le grande distinction ici 735 00:39:01,380 --> 00:39:04,890 est que nous sommes seulement passant copies dans, non? 736 00:39:04,890 --> 00:39:06,520 Nous ne sommes pas en passant par référence. 737 00:39:06,520 --> 00:39:08,850 Ainsi, même à la fin de ce programme X et Y 738 00:39:08,850 --> 00:39:14,170 sont restés les mêmes, parce qu'ils ne sont que des copies de la fonction d'échange. 739 00:39:14,170 --> 00:39:16,320 Ils ne modifient pas, non? 740 00:39:16,320 --> 00:39:17,570 741 00:39:17,570 --> 00:39:19,290 >> Alors que dire de a, b, et la température? 742 00:39:19,290 --> 00:39:21,540 743 00:39:21,540 --> 00:39:22,890 >> PUBLIC: un est b. 744 00:39:22,890 --> 00:39:23,940 >> ALLISON BUCHHOLTZ-AU: une est b. 745 00:39:23,940 --> 00:39:28,569 Donc dans ce cas, un était x, qui est une, non? 746 00:39:28,569 --> 00:39:29,860 Donc, ici, nous allons marcher à travers elle. 747 00:39:29,860 --> 00:39:33,940 Donc, au début, une et b sont 1 et 2 et indéfini. 748 00:39:33,940 --> 00:39:35,000 749 00:39:35,000 --> 00:39:40,850 Donc, à l'origine temporaire obtient attribué à un, de sorte temp est une. 750 00:39:40,850 --> 00:39:46,150 a est égal à B, donc nous obtenons 2, et b est égal à température. 751 00:39:46,150 --> 00:39:47,284 Maintenant nous en voyons une. 752 00:39:47,284 --> 00:39:49,454 753 00:39:49,454 --> 00:39:55,860 >> PUBLIC: Dans les unes précédente échangés esperluette x et y esperluette. 754 00:39:55,860 --> 00:39:57,390 Qu'est-ce que cela signifie exactement? 755 00:39:57,390 --> 00:39:59,890 ALLISON BUCHHOLTZ-AU: Donc, cela signifie que vous êtes de passage par référence. 756 00:39:59,890 --> 00:40:03,830 Cela signifie donc que vous êtes réellement passant dans les adresses de l'endroit où 757 00:40:03,830 --> 00:40:04,814 x et y sont stockées. 758 00:40:04,814 --> 00:40:06,730 PUBLIC: Mais vous n'êtes pas échange de l'adresse. 759 00:40:06,730 --> 00:40:07,860 ALLISON BUCHHOLTZ-AU: Vous n'êtes pas la permutation des adresses. 760 00:40:07,860 --> 00:40:10,015 Vous échange ce qui est en eux. 761 00:40:10,015 --> 00:40:11,510 762 00:40:11,510 --> 00:40:14,460 Comme ce qui est à cette adresse, et voilà pourquoi cela fonctionne. 763 00:40:14,460 --> 00:40:20,750 Versus dans ce programme ici ce vous faites est vous créez des copies. 764 00:40:20,750 --> 00:40:27,440 Donc, vous avez x et y qui existent que leurs propres variables ici. 765 00:40:27,440 --> 00:40:31,530 766 00:40:31,530 --> 00:40:34,140 Mais alors, quand vous passez les contrats de swap, il est 767 00:40:34,140 --> 00:40:38,090 comme si vous créez toute cette autre série. 768 00:40:38,090 --> 00:40:41,272 Donc, vous n'êtes jamais réellement x et y toucher. 769 00:40:41,272 --> 00:40:46,890 >> PUBLIC: Si esperluette x est ce qui est en l'adresse de x, ce qui aurait étoiles X? 770 00:40:46,890 --> 00:40:53,290 >> ALLISON BUCHHOLTZ-AU: Ampersand x est ce qui est en l'adresse de x, puis star-- bien, 771 00:40:53,290 --> 00:40:54,950 dans ce cas, x est un pointeur. 772 00:40:54,950 --> 00:40:56,332 773 00:40:56,332 --> 00:40:57,040 PUBLIC: Oh, OK. 774 00:40:57,040 --> 00:40:58,998 Donc, vous ne le faites parce qu'il est pas un pointeur. 775 00:40:58,998 --> 00:40:59,890 ALLISON BUCHHOLTZ-AU: Droit. 776 00:40:59,890 --> 00:41:03,046 Vous ne pouvez faire des étoiles quelque chose qui est un pointeur. 777 00:41:03,046 --> 00:41:05,920 Peut-être que vous pourriez le faire à des choses qui ne sont pas, mais la compilation vous que 778 00:41:05,920 --> 00:41:07,350 font que les choses folles qui se passerait. 779 00:41:07,350 --> 00:41:09,570 Et je ne suis pas exactement que ce qui se passerait. 780 00:41:09,570 --> 00:41:11,880 Vous pouvez toujours prendre le Adresse de quelque chose, 781 00:41:11,880 --> 00:41:14,255 mais vous ne pouvez pas déréférencer quelque chose qui est pas un pointeur. 782 00:41:14,255 --> 00:41:14,805 783 00:41:14,805 --> 00:41:17,860 Si cela fait sens, qui est une bonne distinction d'avoir. 784 00:41:17,860 --> 00:41:19,870 785 00:41:19,870 --> 00:41:21,340 >> Donc, pas trop mal, non? 786 00:41:21,340 --> 00:41:23,650 Les tables sont espérons obtenir un peu moins effrayant. 787 00:41:23,650 --> 00:41:25,450 788 00:41:25,450 --> 00:41:26,690 Bien. 789 00:41:26,690 --> 00:41:28,370 Ah, ceux amusantes. 790 00:41:28,370 --> 00:41:31,265 Alors maintenant, écrire votre propre code. 791 00:41:31,265 --> 00:41:33,640 792 00:41:33,640 --> 00:41:37,950 Donc, je vais vous laisser travailler les gars sur ce pendant environ quatre minutes, 793 00:41:37,950 --> 00:41:41,480 et alors nous pouvons parler sur les façons de l'aborder. 794 00:41:41,480 --> 00:41:45,080 795 00:41:45,080 --> 00:41:47,110 Sentez-vous libre de parler aux gens autour de vous. 796 00:41:47,110 --> 00:41:48,114 797 00:41:48,114 --> 00:41:49,155 Aussi ce qui est intéressant. 798 00:41:49,155 --> 00:41:51,460 Il est comme un toutes les filles section pour le moment. 799 00:41:51,460 --> 00:41:52,190 Très excitant. 800 00:41:52,190 --> 00:41:53,310 801 00:41:53,310 --> 00:41:54,502 Sauf pour Chang. 802 00:41:54,502 --> 00:41:56,190 Mais Chang fait pas vraiment partie de l'article. 803 00:41:56,190 --> 00:42:17,282 804 00:42:17,282 --> 00:42:17,985 Impressionnant. 805 00:42:17,985 --> 00:42:18,485 Parfait. 806 00:42:18,485 --> 00:42:38,059 807 00:42:38,059 --> 00:42:39,475 Je vais donc vous donner quelques conseils. 808 00:42:39,475 --> 00:42:43,450 809 00:42:43,450 --> 00:42:46,890 Dans le cas où vous avez plus d'un caractère, où 810 00:42:46,890 --> 00:42:49,990 vous avez quelque chose d'autre comme 123 ou 1000 quelque chose, 811 00:42:49,990 --> 00:42:53,790 vous devez être en mesure de boucle par et convertir chacun de ceux-ci. 812 00:42:53,790 --> 00:42:55,340 813 00:42:55,340 --> 00:42:58,699 Donc, il ya un couple moyens que vous pourriez le faire, 814 00:42:58,699 --> 00:43:01,740 mais vous allez certainement avoir une boucle quelque part là-dedans à boucle 815 00:43:01,740 --> 00:43:05,150 à travers eux, ce qui est un peu comme le cadeau 816 00:43:05,150 --> 00:43:09,540 avec même si vous appelez STRLEN qui est un peu comme oh 817 00:43:09,540 --> 00:43:12,418 peut-être que vous voulez utiliser la longueur de la chaîne d'une manière quelconque. 818 00:43:12,418 --> 00:45:17,300 819 00:45:17,300 --> 00:45:17,829 >> Bien. 820 00:45:17,829 --> 00:45:20,870 Alors qu'est-ce que vous en pensez peut-être l'une des premières choses que nous voulons faire? 821 00:45:20,870 --> 00:45:23,149 822 00:45:23,149 --> 00:45:25,690 Il ya quelques cas ici nous devons tenir compte, non? 823 00:45:25,690 --> 00:45:27,360 Soit nous avons quelque chose qui est nul. 824 00:45:27,360 --> 00:45:28,685 825 00:45:28,685 --> 00:45:30,383 Qu'avons-nous? 826 00:45:30,383 --> 00:45:30,882 Cas. 827 00:45:30,882 --> 00:45:32,760 828 00:45:32,760 --> 00:45:33,260 Null. 829 00:45:33,260 --> 00:45:34,400 830 00:45:34,400 --> 00:45:42,414 Nous avons le cas où il a autre chose que 09, non? 831 00:45:42,414 --> 00:45:43,580 Alors disons que il a des lettres. 832 00:45:43,580 --> 00:45:44,900 833 00:45:44,900 --> 00:45:46,510 Ou nous avons le cas qui est valable. 834 00:45:46,510 --> 00:45:48,450 835 00:45:48,450 --> 00:45:50,130 Trois cas de penser. 836 00:45:50,130 --> 00:45:53,527 Alors, qui pensez-vous peut-être le plus facile de prendre soin de la première? 837 00:45:53,527 --> 00:45:54,152 PUBLIC: Null. 838 00:45:54,152 --> 00:45:55,527 ALLISON BUCHHOLTZ-AU: L'affaire est nulle. 839 00:45:55,527 --> 00:45:56,610 Alors, que ferions-nous là? 840 00:45:56,610 --> 00:45:57,954 841 00:45:57,954 --> 00:45:58,870 PUBLIC: [inaudible]. 842 00:45:58,870 --> 00:46:02,434 843 00:46:02,434 --> 00:46:03,184 ALLISON BUCHHOLTZ-AU: Ouais. 844 00:46:03,184 --> 00:46:05,140 845 00:46:05,140 --> 00:46:06,550 Et qu'est-ce que je veux faire? 846 00:46:06,550 --> 00:46:07,341 >> PUBLIC: return 0. 847 00:46:07,341 --> 00:46:07,935 848 00:46:07,935 --> 00:46:09,110 >> ALLISON BUCHHOLTZ-AU: Exactement. 849 00:46:09,110 --> 00:46:09,860 Impressionnant. 850 00:46:09,860 --> 00:46:10,640 Dáccord. 851 00:46:10,640 --> 00:46:15,270 Donc maintenant le cas où il a des lettres et le cas où il est valide. 852 00:46:15,270 --> 00:46:19,140 Nous pouvons réellement prendre soin cela dans une boucle, OK? 853 00:46:19,140 --> 00:46:22,710 Donc, une façon de faire it-- ce qui pourrait être un moyen simple pour vérifier si elle est valide. 854 00:46:22,710 --> 00:46:25,150 855 00:46:25,150 --> 00:46:29,144 Il faudrait passer par chaque lettre et quoi faire? 856 00:46:29,144 --> 00:46:34,336 857 00:46:34,336 --> 00:46:35,640 >> PUBLIC: Vérifier si elle est in-- 858 00:46:35,640 --> 00:46:39,570 >> ALLISON BUCHHOLTZ-AU: Oui, vous pouvez vérifier si elle est comprise entre 0 et 9, non? 859 00:46:39,570 --> 00:46:40,880 860 00:46:40,880 --> 00:46:42,700 Ensuite, dans le cas qu'il est valide, nous sommes 861 00:46:42,700 --> 00:46:46,550 va finir par itération notre chaîne de toute façon, non? 862 00:46:46,550 --> 00:46:48,690 Alors, pourquoi ne pas essayer et les combiner en un seul. 863 00:46:48,690 --> 00:46:51,260 Nous allons parcourir tout au long de la chaîne, et que nous 864 00:46:51,260 --> 00:46:56,400 ce faire, nous allons d'abord faire une vérification pour voir si cette lettre 865 00:46:56,400 --> 00:46:58,110 ou si ce caractère est valide. 866 00:46:58,110 --> 00:47:02,150 Dans ce cas, nous allons effectuer le opération que nous avons besoin de le convertir. 867 00:47:02,150 --> 00:47:05,050 Sinon, il reviendra 0, non? 868 00:47:05,050 --> 00:47:09,160 >> Donc, avant de faire cela, nous souhaiterez probablement une variable 869 00:47:09,160 --> 00:47:12,820 que nous pouvons revenir à la fin que ça va être notre valeur réelle. 870 00:47:12,820 --> 00:47:17,005 Nous allons donc à initialiser une certaine valeur à 0. 871 00:47:17,005 --> 00:47:18,390 Et voilà comment nous commençons. 872 00:47:18,390 --> 00:47:22,452 873 00:47:22,452 --> 00:47:23,785 Je vais donc à se débarrasser de cette. 874 00:47:23,785 --> 00:47:26,750 875 00:47:26,750 --> 00:47:30,489 Alors, comment allons-nous itérer cette chaîne. 876 00:47:30,489 --> 00:47:31,280 Public: Pour boucle. 877 00:47:31,280 --> 00:47:32,280 ALLISON BUCHHOLTZ-AU: Une boucle for. 878 00:47:32,280 --> 00:47:33,160 Alors, quel est notre pour? 879 00:47:33,160 --> 00:47:34,710 880 00:47:34,710 --> 00:47:35,909 >> PUBLIC: i est 0. 881 00:47:35,909 --> 00:47:36,700 ALLISON BUCHHOLTZ-AU: Mm-hm. 882 00:47:36,700 --> 00:47:38,620 883 00:47:38,620 --> 00:47:41,180 Et que sommes-nous itération jusqu'à ce que? 884 00:47:41,180 --> 00:47:42,450 >> PUBLIC: longueur de str de l'art. 885 00:47:42,450 --> 00:47:47,920 886 00:47:47,920 --> 00:47:50,900 >> ALLISON BUCHHOLTZ-AU: OK, rappelez-vous maintenant il ya une meilleure façon. [Inaudible]. 887 00:47:50,900 --> 00:47:52,935 >> PUBLIC: Oui, nous pouvons faire n est égal. 888 00:47:52,935 --> 00:47:53,810 ALLISON BUCHHOLTZ-AU: Exactement. 889 00:47:53,810 --> 00:47:55,010 890 00:47:55,010 --> 00:47:56,190 >> PUBLIC: i est inférieur à n. 891 00:47:56,190 --> 00:47:57,559 892 00:47:57,559 --> 00:47:59,475 ALLISON BUCHHOLTZ-AU: Et pourquoi voudrions-nous faire cela? 893 00:47:59,475 --> 00:48:00,815 894 00:48:00,815 --> 00:48:01,940 Vous rappelez-vous la raison? 895 00:48:01,940 --> 00:48:04,180 896 00:48:04,180 --> 00:48:05,680 PUBLIC: Nous avons le recalculer. 897 00:48:05,680 --> 00:48:08,735 ALLISON BUCHHOLTZ-AU: becasue cette façon vous seulement avoir à calculer strlen fois. 898 00:48:08,735 --> 00:48:09,750 899 00:48:09,750 --> 00:48:14,400 Si vous faites i est inférieur à strlen s, que ses moyens, il recalcule 900 00:48:14,400 --> 00:48:17,050 la longueur à chaque fois vous exécutez la boucle, 901 00:48:17,050 --> 00:48:20,800 qui est pas un coût énorme de l'énergie, mais il est 902 00:48:20,800 --> 00:48:24,280 meilleures pratiques pour essayer de faire des choses comme ça une fois. 903 00:48:24,280 --> 00:48:27,610 Sauf peut-être vous avez une chaîne fou cela change à chaque itération. 904 00:48:27,610 --> 00:48:30,371 Mais si elle va rester la même, l'enregistrer. 905 00:48:30,371 --> 00:48:30,870 Bien. 906 00:48:30,870 --> 00:48:33,430 Et puis je plus plus. 907 00:48:33,430 --> 00:48:34,040 Impressionnant. 908 00:48:34,040 --> 00:48:35,789 Nous sommes sur la bonne voie. 909 00:48:35,789 --> 00:48:36,830 PUBLIC: Très rapidement. 910 00:48:36,830 --> 00:48:39,600 Tout d'abord, alors disons que nous venons Ai-je moins de strlen de s, 911 00:48:39,600 --> 00:48:42,175 qu'ils nous classement sur la conception à tous ou seulement est correcte? 912 00:48:42,175 --> 00:48:43,640 913 00:48:43,640 --> 00:48:44,610 Ils ne sont pas. 914 00:48:44,610 --> 00:48:47,920 Nous classement sur la rectitude pour des quiz pour autant que je sais. 915 00:48:47,920 --> 00:48:52,670 Je ne peux pas faire un plein sur garantie, mais la plupart du temps, 916 00:48:52,670 --> 00:48:57,060 grande majorité est correcte, parce que vous êtes sous beaucoup de contrainte de temps. 917 00:48:57,060 --> 00:48:59,704 Conception signifie généralement vous avez le temps de réfléchir 918 00:48:59,704 --> 00:49:01,245 sur l'élégance de votre situation. 919 00:49:01,245 --> 00:49:03,710 920 00:49:03,710 --> 00:49:05,770 >> OK, donc nous nous parcourons. 921 00:49:05,770 --> 00:49:10,640 Nous devons donc vérifier soit à voir si ce caractère est valide 922 00:49:10,640 --> 00:49:14,550 ou si nous pouvons effectuer notre normale [? A à I?] fonction. 923 00:49:14,550 --> 00:49:16,600 Nous pouvons vous soucier de ce que qui est en une seconde. 924 00:49:16,600 --> 00:49:19,340 Alors pourquoi ne pas take-- si quelqu'un peut penser 925 00:49:19,340 --> 00:49:21,930 sur un moyen de vérifier à voir si cela est valable. 926 00:49:21,930 --> 00:49:23,346 927 00:49:23,346 --> 00:49:25,740 Nous savons que ça va être certains si la condition, non? 928 00:49:25,740 --> 00:49:26,830 929 00:49:26,830 --> 00:49:32,300 Et rappelez-vous ceci est en ASCII, alors comment pourrait 930 00:49:32,300 --> 00:49:37,359 nous voyons si elle est à 0,1, 2, 3, 4, 5, 6, 7, 8, ou 9. 931 00:49:37,359 --> 00:49:38,150 PUBLIC: Si alpha. 932 00:49:38,150 --> 00:49:39,800 933 00:49:39,800 --> 00:49:44,100 >> ALLISON BUCHHOLTZ-AU: Donc, si alpha serait seulement nous faire savoir si elle est une lettre. 934 00:49:44,100 --> 00:49:47,810 Et si ils nous donnent un symbole, il est pas encore tout à fait aller vérifier. 935 00:49:47,810 --> 00:49:54,270 Donc, si vous tirez votre ASCII table, nous savons que de 0 à 9 936 00:49:54,270 --> 00:49:55,340 sont dans un segment. 937 00:49:55,340 --> 00:49:57,560 938 00:49:57,560 --> 00:50:00,540 Dites-moi les numéros qu'ils correspondre à la mesure du possible. 939 00:50:00,540 --> 00:50:08,136 940 00:50:08,136 --> 00:50:08,677 Public: 40. 941 00:50:08,677 --> 00:50:11,440 942 00:50:11,440 --> 00:50:13,714 >> ALLISON BUCHHOLTZ-AU: Donc, la plage est comme 40-- 943 00:50:13,714 --> 00:50:14,380 PUBLIC: Peut-être. 944 00:50:14,380 --> 00:50:16,110 945 00:50:16,110 --> 00:50:16,765 48 à 57. 946 00:50:16,765 --> 00:50:17,430 Je ne suis pas sûr. 947 00:50:17,430 --> 00:50:18,510 >> ALLISON BUCHHOLTZ-AU: 40 à? 57 948 00:50:18,510 --> 00:50:19,426 >> PUBLIC: 48, je pense. 949 00:50:19,426 --> 00:50:20,730 ALLISON BUCHHOLTZ-AU: 48 à 57. 950 00:50:20,730 --> 00:50:26,070 Donc, nous savons que ceux ASCII symbols-- si la valeur ASCII est pas 951 00:50:26,070 --> 00:50:29,940 entre 48 et 57, il est pas valable, non? 952 00:50:29,940 --> 00:50:32,050 Ainsi pourrions-nous utiliser pour notre avantage peut-être? 953 00:50:32,050 --> 00:50:33,770 954 00:50:33,770 --> 00:50:38,082 Comment allons-nous faire cette lettre, d'abord? 955 00:50:38,082 --> 00:50:40,910 Comment sommes-nous accédons ce ce personnage? 956 00:50:40,910 --> 00:50:42,010 >> PUBLIC: s i support. 957 00:50:42,010 --> 00:50:42,801 >> ALLISON BUCHHOLTZ-AU: Mm-hm. 958 00:50:42,801 --> 00:50:43,790 959 00:50:43,790 --> 00:50:46,285 Parce que nous pouvons penser chaînes comme des tableaux, rappelez-vous. 960 00:50:46,285 --> 00:50:47,470 961 00:50:47,470 --> 00:50:48,740 Alors, que voulons-nous dire? 962 00:50:48,740 --> 00:50:55,920 Nous voulons dire si cette est-- Je vais vous donner un indice. 963 00:50:55,920 --> 00:50:56,920 Il est un peu moins de. 964 00:50:56,920 --> 00:50:58,711 Qu'est-ce que vous pensez que ce doit être inférieure à? 965 00:50:58,711 --> 00:50:59,074 966 00:50:59,074 --> 00:50:59,615 Public: 57? 967 00:50:59,615 --> 00:51:01,550 968 00:51:01,550 --> 00:51:02,900 >> ALLISON BUCHHOLTZ-AU: 47, non? 969 00:51:02,900 --> 00:51:08,920 Mais il représente également que vous un 0 individuellement [? rayons?], parce que ce 970 00:51:08,920 --> 00:51:09,689 le caractère 0. 971 00:51:09,689 --> 00:51:10,605 Vous pouvez aussi mettre 47. 972 00:51:10,605 --> 00:51:11,660 973 00:51:11,660 --> 00:51:14,350 Avoir la table ASCII, comme voyez-vous, est juste quelque chose 974 00:51:14,350 --> 00:51:18,580 vous devez avoir sur votre feuille de quiz. 975 00:51:18,580 --> 00:51:25,830 >> Donc, si tel est le cas, si elle est une moins de 0-- pas nécessairement et. 976 00:51:25,830 --> 00:51:30,890 Il va seulement soit être inférieur ou supérieur à 9. 977 00:51:30,890 --> 00:51:33,055 Ainsi, vous pouvez remplir ce dernier pour moi? 978 00:51:33,055 --> 00:51:36,440 Donc, ou s de i est ce que, Rhea? 979 00:51:36,440 --> 00:51:39,810 980 00:51:39,810 --> 00:51:41,536 >> PUBLIC: Supérieur à 9. 981 00:51:41,536 --> 00:51:42,970 982 00:51:42,970 --> 00:51:44,221 >> ALLISON BUCHHOLTZ-AU: Il. 983 00:51:44,221 --> 00:51:47,280 Cela fait-il sens à tout le monde, comment nous sommes arrivés là-bas? 984 00:51:47,280 --> 00:51:51,340 Ces problèmes, ils sont comme une fois que vous voir les solutions, il est comme oh, OK. 985 00:51:51,340 --> 00:51:52,312 986 00:51:52,312 --> 00:51:53,937 Et voilà pourquoi la pratique vous aidera. 987 00:51:53,937 --> 00:51:55,070 988 00:51:55,070 --> 00:51:57,400 OK, si nous revenons 0. 989 00:51:57,400 --> 00:51:57,900 Belle. 990 00:51:57,900 --> 00:51:59,000 991 00:51:59,000 --> 00:51:59,670 Bien. 992 00:51:59,670 --> 00:52:00,780 993 00:52:00,780 --> 00:52:02,365 Sinon, à quoi voulons-nous faire? 994 00:52:02,365 --> 00:52:04,640 Ceci est la partie la plus intéressante où il est un peu plus 995 00:52:04,640 --> 00:52:07,550 comme les mathématiques par rapport à CS à mon avis. 996 00:52:07,550 --> 00:52:09,479 997 00:52:09,479 --> 00:52:11,520 Est-ce que quelqu'un a une idée de la façon dont nous pourrions faire cela? 998 00:52:11,520 --> 00:52:15,822 999 00:52:15,822 --> 00:52:18,155 Donc, la chose importante à réaliser est le premier caractère 1000 00:52:18,155 --> 00:52:21,510 nous prenons va être le chiffre d'ordre le plus élevé, non? 1001 00:52:21,510 --> 00:52:25,975 Donc, si nous cherchons à convertir 123, la première fois que nous parcourons 1002 00:52:25,975 --> 00:52:30,800 va être 1, mais nous avons besoin que pour être 100 d'ici la fin, non? 1003 00:52:30,800 --> 00:52:34,450 Donc, une chose que vous pouvez faire est que avec chaque chiffre ultérieur 1004 00:52:34,450 --> 00:52:39,670 vous prenez, vous multipliez votre valeur de 10, de sorte que le temps que vous arrivez à la fin, 1005 00:52:39,670 --> 00:52:42,960 tout a été déplacé vers le haut, à droite? 1006 00:52:42,960 --> 00:52:46,490 >> Donc la première fois que vous exécutez il, vous avez 1 comme valeur. 1007 00:52:46,490 --> 00:52:50,370 Deuxième fois que vous lancez, vous multiplier votre valeur de 10. 1008 00:52:50,370 --> 00:52:55,180 Il mettra à jour de sorte qu'il est maintenant 10, et vous ajouter sur votre prochaine valeur. 1009 00:52:55,180 --> 00:52:57,830 Et ensuite, vous multipliez que par 10 et ajouter sur votre prochaine valeur. 1010 00:52:57,830 --> 00:53:01,880 Et voilà pourquoi ils disent que ce est beaucoup plus comme test 1011 00:53:01,880 --> 00:53:06,920 un algorithme de calcul par rapport à CS, mais je digresse. 1012 00:53:06,920 --> 00:53:08,080 Je ne l'écris pas les questionnaires. 1013 00:53:08,080 --> 00:53:13,520 >> Donc, une chose que nous pouvons faire est nous disent les temps de valeur est égale à 10. 1014 00:53:13,520 --> 00:53:16,630 Donc, cela va changer votre chiffre une fois à chaque fois. 1015 00:53:16,630 --> 00:53:18,770 1016 00:53:18,770 --> 00:53:20,915 Et puis, nous voulons juste ajouter. 1017 00:53:20,915 --> 00:53:22,070 1018 00:53:22,070 --> 00:53:24,290 Nous voulons ajouter à ce nous venons, non? 1019 00:53:24,290 --> 00:53:25,350 1020 00:53:25,350 --> 00:53:31,649 Alors, comment pouvons-nous réellement convertissons notre caractères ASCII dans le nombre 1021 00:53:31,649 --> 00:53:32,440 qu'il représente? 1022 00:53:32,440 --> 00:53:37,680 1023 00:53:37,680 --> 00:53:40,800 >> Nous savons donc que 0 est égal à 47, non? 1024 00:53:40,800 --> 00:53:44,260 Donc, si 0 est de 47, ce qui aurions-nous faire pour elle 1025 00:53:44,260 --> 00:53:47,376 faire réellement être un int de 0? 1026 00:53:47,376 --> 00:53:48,384 >> PUBLIC: Il est 48. 1027 00:53:48,384 --> 00:53:49,050 ALLISON BUCHHOLTZ-AU: 48? 1028 00:53:49,050 --> 00:53:49,550 Désolé. 1029 00:53:49,550 --> 00:53:53,500 1030 00:53:53,500 --> 00:53:55,100 Nous soustraire 48, non? 1031 00:53:55,100 --> 00:53:58,580 1032 00:53:58,580 --> 00:53:59,550 Rappelez-ASCII mathématiques? 1033 00:53:59,550 --> 00:54:01,565 Nous pouvons les traiter seulement comme un nombre normal. 1034 00:54:01,565 --> 00:54:02,570 1035 00:54:02,570 --> 00:54:05,900 Si vous les traitez comme des numéros, ils deviennent des nombres efficacement. 1036 00:54:05,900 --> 00:54:10,410 Donc, si nous avons s de i, qui permettent de dire dans ce cas est égal à 0. 1037 00:54:10,410 --> 00:54:14,420 Ainsi s de i dans ce cas serait le ASCII-- 1038 00:54:14,420 --> 00:54:16,675 l'int ASCII car il serait 47. 1039 00:54:16,675 --> 00:54:17,750 1040 00:54:17,750 --> 00:54:19,875 Donc, nous pourrions subtract-- ou 48. 1041 00:54:19,875 --> 00:54:20,930 1042 00:54:20,930 --> 00:54:22,440 Vous pourriez le faire, est un moyen. 1043 00:54:22,440 --> 00:54:25,125 Est-ce que quelqu'un connait un meilleur Nous pourrions faire 48? 1044 00:54:25,125 --> 00:54:27,220 1045 00:54:27,220 --> 00:54:31,608 Nous venons de dire 0 est-- aller en l'ASCII que vous pourriez faire citant 0. 1046 00:54:31,608 --> 00:54:39,740 1047 00:54:39,740 --> 00:54:43,160 Donc, le fait de faire genre sens comment cela fonctionne? 1048 00:54:43,160 --> 00:54:50,080 >> Public: À ce stade, est la valeur 0 parce que même si vous multipliez par 10, 1049 00:54:50,080 --> 00:54:53,340 vous commencez avec zéro, ainsi doit-il être mis? 1050 00:54:53,340 --> 00:54:59,360 >> ALLISON BUCHHOLTZ-AU: Donc dans ce cas, vous vouloir multiplier avant d'ajouter, 1051 00:54:59,360 --> 00:55:06,650 car dans ce cas, oui, ce serait être-- encore mon pointeur est manquant. 1052 00:55:06,650 --> 00:55:09,980 La valeur dans ce cas, la première temps, nous courons ce sera zéro. 1053 00:55:09,980 --> 00:55:12,320 Donc, vous ne faites qu'ajouter sur ce premier chiffre. 1054 00:55:12,320 --> 00:55:15,930 Ce qui est important est la prochaine fois itération, vous voulez déplacer vers le haut 1055 00:55:15,930 --> 00:55:18,722 avant d'ajouter sur votre prochaine chiffres. 1056 00:55:18,722 --> 00:55:21,223 Est-ce que clarifier pour vous? 1057 00:55:21,223 --> 00:55:21,723 Dáccord. 1058 00:55:21,723 --> 00:55:23,050 1059 00:55:23,050 --> 00:55:25,900 >> Parfois, vous allez obtenir plus de choses étranges de Mathy. 1060 00:55:25,900 --> 00:55:28,020 1061 00:55:28,020 --> 00:55:30,750 Si vous aviez plus de cela, vous allez encore 1062 00:55:30,750 --> 00:55:32,610 à get-- vous allez faire assez bien. 1063 00:55:32,610 --> 00:55:35,150 Un crédit partiel est une très grand chose sur des questionnaires CS50. 1064 00:55:35,150 --> 00:55:36,270 Alors écrivez ce que vous savez. 1065 00:55:36,270 --> 00:55:39,640 Si vous avez tout sauf pour ici, vous êtes 1066 00:55:39,640 --> 00:55:41,390 toujours en cours pour faire très bien le problème. 1067 00:55:41,390 --> 00:55:43,750 Parce que vous faites preuve, OK, je sais presque. 1068 00:55:43,750 --> 00:55:45,570 Je sais que je dois pour parcourir. 1069 00:55:45,570 --> 00:55:47,260 Je sais ce que je dois vérifier. 1070 00:55:47,260 --> 00:55:50,584 Je fais tout simplement pas assez comment obtenir le convertir. 1071 00:55:50,584 --> 00:55:51,500 Vous allez être OK. 1072 00:55:51,500 --> 00:55:52,850 Oui, vous allez perdre quelques points 1073 00:55:52,850 --> 00:55:55,641 mais vous allez encore avoir un bon nombre de points pour quelque chose 1074 00:55:55,641 --> 00:55:57,990 comme ça si vous êtes manquant ces deux lignes. 1075 00:55:57,990 --> 00:56:00,660 Je serais comme OK, cette personne sait ce qu'ils font. 1076 00:56:00,660 --> 00:56:02,070 Math est difficile. 1077 00:56:02,070 --> 00:56:04,930 Je dirais donc que vous seriez bien. 1078 00:56:04,930 --> 00:56:09,474 >> OK, si vous êtes prêts à essayez de strlen avec des pointeurs maintenant 1079 00:56:09,474 --> 00:56:10,890 que vous êtes des maîtres pointeur? 1080 00:56:10,890 --> 00:56:12,400 1081 00:56:12,400 --> 00:56:15,106 Donc, je vous laisse les gars travaillent sur que pour un peu. 1082 00:56:15,106 --> 00:56:17,131 1083 00:56:17,131 --> 00:56:19,090 Si quelqu'un a besoin d'une remise à niveau. 1084 00:56:19,090 --> 00:56:23,120 1085 00:56:23,120 --> 00:56:28,060 Donc, vous voulez utiliser un pointeur arithmétique, et puis si s est nul, 1086 00:56:28,060 --> 00:56:29,624 votre application doit retourner 0. 1087 00:56:29,624 --> 00:56:37,045 1088 00:56:37,045 --> 00:56:39,670 Ce genre de choses qui vous rendent vraiment heureux de simplement appeler strlen 1089 00:56:39,670 --> 00:56:40,586 à la fin de la journée. 1090 00:56:40,586 --> 00:57:24,874 1091 00:57:24,874 --> 00:57:27,624 Je pense que celui-ci pourrait être un peu plus simple que la précédente, qui 1092 00:57:27,624 --> 00:57:28,123 est bonne. 1093 00:57:28,123 --> 00:58:51,789 1094 00:58:51,789 --> 00:58:55,690 Je vais vous donner un autre gars minute, et puis nous allons travailler à travers elle. 1095 00:58:55,690 --> 00:58:56,896 1096 00:58:56,896 --> 00:58:58,320 Et puis nous arrivons à passer aux commandes. 1097 00:58:58,320 --> 00:59:32,480 1098 00:59:32,480 --> 00:59:34,660 >> OK, les gars prêts? 1099 00:59:34,660 --> 00:59:35,790 1100 00:59:35,790 --> 00:59:37,420 Peut-être un peu. 1101 00:59:37,420 --> 00:59:40,210 Donc, je vous ai donné votre deux options, non? 1102 00:59:40,210 --> 00:59:45,810 Soit pour vérifier nulle et retourner 0 si il est, en réalité ou calculer la longueur. 1103 00:59:45,810 --> 00:59:48,220 Alors, qui veut écrire pour vérifier nulle? 1104 00:59:48,220 --> 00:59:50,100 1105 00:59:50,100 --> 00:59:51,790 Allez-y. 1106 00:59:51,790 --> 00:59:56,460 >> PUBLIC: si des parenthèses s égaux est égal au rendement nul 0. 1107 00:59:56,460 --> 00:59:57,342 1108 00:59:57,342 --> 00:59:58,175 ALLISON BUCHHOLTZ-AU: Lovely. 1109 00:59:58,175 --> 00:59:59,350 1110 00:59:59,350 --> 01:00:02,320 Je l'aime quand la moitié de votre problème est en train de vérifier pour nulle. 1111 01:00:02,320 --> 01:00:04,820 Je sais avec vous les gars dernier semaine je me suis dit chèque de nulle 1112 01:00:04,820 --> 01:00:06,630 littéralement à chaque fois. 1113 01:00:06,630 --> 01:00:07,510 OK, so-- 1114 01:00:07,510 --> 01:00:08,716 1115 01:00:08,716 --> 01:00:12,750 >> Audience: Si le retour 0 est une seule ligne, ne nous encore besoin de l'accolade? 1116 01:00:12,750 --> 01:00:15,860 >> ALLISON BUCHHOLTZ-AU: Vous ne faites pas techniquement besoin d'eux aussi longtemps que vous êtes cohérent. 1117 01:00:15,860 --> 01:00:19,240 Il est une bonne pratique juste à prendre l'habitude 1118 01:00:19,240 --> 01:00:21,650 d'utiliser des accolades, mais techniquement pas. 1119 01:00:21,650 --> 01:00:23,320 Vous ne devez pas les pour une ligne. 1120 01:00:23,320 --> 01:00:26,030 Nous avons tendance juste à le recommander pour les personnes à partir de programme. 1121 01:00:26,030 --> 01:00:27,740 1122 01:00:27,740 --> 01:00:30,450 >> Alors maintenant, que pouvons-nous faire ici? 1123 01:00:30,450 --> 01:00:32,222 Alors maintenant, nous savons que notre chaîne est valide. 1124 01:00:32,222 --> 01:00:33,680 Nous voulons continuer à calculer la longueur. 1125 01:00:33,680 --> 01:00:35,620 Quel est probablement la première chose que nous voulons faire? 1126 01:00:35,620 --> 01:00:38,770 1127 01:00:38,770 --> 01:00:41,276 >> PUBLIC: Créer un int qui est de la longueur. 1128 01:00:41,276 --> 01:00:42,150 ALLISON BUCHHOLTZ-AU: Exactement. 1129 01:00:42,150 --> 01:00:43,450 Public: Et nous voulons mettre à? 1130 01:00:43,450 --> 01:00:44,210 ALLISON BUCHHOLTZ-AU: 0. 1131 01:00:44,210 --> 01:00:44,710 Parfait. 1132 01:00:44,710 --> 01:00:46,050 1133 01:00:46,050 --> 01:00:47,290 Bien. 1134 01:00:47,290 --> 01:00:48,750 Maintenant, ce que ne veulent le faire? 1135 01:00:48,750 --> 01:00:50,000 Ceci est vraiment la plus grande partie de celui-ci. 1136 01:00:50,000 --> 01:00:50,890 Allez-y. 1137 01:00:50,890 --> 01:00:54,370 >> Auditoire: Alors, vous faites probablement une boucle for. 1138 01:00:54,370 --> 01:01:03,150 Et puis depuis quand vous appelez s vous êtes obtenir l'adresse de la première chose, 1139 01:01:03,150 --> 01:01:05,660 vous commencez par i est égal à 0. 1140 01:01:05,660 --> 01:01:07,980 1141 01:01:07,980 --> 01:01:15,755 Et puis aussi longtemps que x De plus, je ne est pas anti slash 0. 1142 01:01:15,755 --> 01:01:17,130 ALLISON BUCHHOLTZ-AU: La terminaison nulle. 1143 01:01:17,130 --> 01:01:18,380 AUDIENCE: Le terminateur nul. 1144 01:01:18,380 --> 01:01:18,890 1145 01:01:18,890 --> 01:01:21,088 Ensuite, vous ajoutez une à la longueur. 1146 01:01:21,088 --> 01:01:22,372 >> ALLISON BUCHHOLTZ-AU: Ouais. 1147 01:01:22,372 --> 01:01:25,940 OK, laisse tourner que dans le code très concret. 1148 01:01:25,940 --> 01:01:27,537 Mais qui est l'idée parfaite. 1149 01:01:27,537 --> 01:01:28,870 Voilà exactement ce que nous faisons. 1150 01:01:28,870 --> 01:01:31,910 Nous allons être itération par le pointeur. 1151 01:01:31,910 --> 01:01:34,590 Donc, ce que nous voulons faire est la place d'un int 1152 01:01:34,590 --> 01:01:36,660 ici, parce que nous sommes ne parle pas un il. 1153 01:01:36,660 --> 01:01:42,390 Nous faisons allusion au début d'une chaîne, que commencer à être quelque adresse, 1154 01:01:42,390 --> 01:01:43,300 droit? 1155 01:01:43,300 --> 01:01:44,600 >> Donc, nous voulons un pointeur. 1156 01:01:44,600 --> 01:01:47,610 1157 01:01:47,610 --> 01:01:52,310 Donc, nous allons avoir une étoile de char, car il correspond à nos s, la droite? 1158 01:01:52,310 --> 01:01:57,270 Donc, cela est certain point, nous sommes d'initialisation au début de la chaîne, OK? 1159 01:01:57,270 --> 01:01:58,949 Donc, nous allons simplement appeler i. 1160 01:01:58,949 --> 01:02:01,740 Si il est le début de la chaîne, qu'est-ce que ça va être affecté? 1161 01:02:01,740 --> 01:02:03,690 1162 01:02:03,690 --> 01:02:04,530 Non 0. 1163 01:02:04,530 --> 01:02:06,238 Nous voulons que ce soit la début de notre chaîne. 1164 01:02:06,238 --> 01:02:07,170 1165 01:02:07,170 --> 01:02:09,960 Que représente le début de notre chaîne qui nous a été donné? 1166 01:02:09,960 --> 01:02:10,800 >> Public: Tout s. 1167 01:02:10,800 --> 01:02:11,425 >> ALLISON BUCHHOLTZ-AU: s. 1168 01:02:11,425 --> 01:02:13,070 1169 01:02:13,070 --> 01:02:17,890 Donc, cela crée un nouveau pointeur représente le début de notre chaîne, OK? 1170 01:02:17,890 --> 01:02:19,430 1171 01:02:19,430 --> 01:02:22,777 Une autre façon d'y penser est comme voici notre tableau. 1172 01:02:22,777 --> 01:02:26,690 Voilà notre chaîne, s. 1173 01:02:26,690 --> 01:02:28,650 1174 01:02:28,650 --> 01:02:32,400 Alors disons que ceci est la première place, ce qui est 0x4. 1175 01:02:32,400 --> 01:02:34,400 1176 01:02:34,400 --> 01:02:34,900 04. 1177 01:02:34,900 --> 01:02:36,330 1178 01:02:36,330 --> 01:02:38,535 Ceci est notre s, qui détient cette adresse. 1179 01:02:38,535 --> 01:02:39,810 1180 01:02:39,810 --> 01:02:45,960 Et nous venons de créer un autre appelé i qui se réfère simplement à la même chose. 1181 01:02:45,960 --> 01:02:49,437 Ils sont donc à la fois juste pointant le début de notre chaîne. 1182 01:02:49,437 --> 01:02:51,020 Ceci est juste une représentation graphique. 1183 01:02:51,020 --> 01:02:53,830 1184 01:02:53,830 --> 01:02:57,100 >> Alors maintenant, ce que nous voulons faire est que nous voulons parcourir 1185 01:02:57,100 --> 01:03:02,040 notre condition pour l'itération grâce à notre chaîne. 1186 01:03:02,040 --> 01:03:02,920 Maintenant achats. 1187 01:03:02,920 --> 01:03:04,150 Nous sommes arrivés à la boutique, les gars. 1188 01:03:04,150 --> 01:03:06,290 1189 01:03:06,290 --> 01:03:12,390 Est que nous voulons garder la mise à jour jusqu'à ce que nous arrivons à la fin nulle, non? 1190 01:03:12,390 --> 01:03:14,930 Alors, que pourrait-il ressembler? 1191 01:03:14,930 --> 01:03:17,760 1192 01:03:17,760 --> 01:03:21,880 Voulons-nous i, ou voulons-nous étoiles i est la question? 1193 01:03:21,880 --> 01:03:26,160 1194 01:03:26,160 --> 01:03:29,255 Est la terminaison nulle une adresse ou quelque chose situé à une adresse? 1195 01:03:29,255 --> 01:03:31,420 1196 01:03:31,420 --> 01:03:33,660 Situé à une adresse, non? 1197 01:03:33,660 --> 01:03:38,420 >> Donc, nous avons besoin de déréférencer tout ce qui est ici, parce que cela est juste une certaine adresse. 1198 01:03:38,420 --> 01:03:44,350 Pour obtenir effectivement le début nous avons besoin de déréférencer ce 1199 01:03:44,350 --> 01:03:46,770 de sorte que nous obtenons réellement ce qui est dans cette première place. 1200 01:03:46,770 --> 01:03:48,690 1201 01:03:48,690 --> 01:03:52,910 Donc, si nous faisons Star I, ce nous ne voulons pas à l'égalité? 1202 01:03:52,910 --> 01:03:53,885 1203 01:03:53,885 --> 01:03:54,760 PUBLIC: Retour slash? 1204 01:03:54,760 --> 01:03:57,760 1205 01:03:57,760 --> 01:03:59,260 >> ALLISON BUCHHOLTZ-AU: Il. 1206 01:03:59,260 --> 01:04:01,430 Cela fait-il sens à tout le monde? 1207 01:04:01,430 --> 01:04:05,620 Nous devons aller dans notre chaîne et assurez-vous qu'il est pas la fin. 1208 01:04:05,620 --> 01:04:07,200 1209 01:04:07,200 --> 01:04:08,990 Et alors nous pouvons simplement mettre à jour comme celui-ci. 1210 01:04:08,990 --> 01:04:09,680 Mise à jour normale. 1211 01:04:09,680 --> 01:04:11,910 1212 01:04:11,910 --> 01:04:15,070 Donc, tant que ceux-ci sont Met, que devons-nous faire? 1213 01:04:15,070 --> 01:04:17,700 1214 01:04:17,700 --> 01:04:18,852 >> PUBLIC: Longueur plus plus. 1215 01:04:18,852 --> 01:04:20,656 1216 01:04:20,656 --> 01:04:21,560 >> ALLISON BUCHHOLTZ-AU: Mm-hm. 1217 01:04:21,560 --> 01:04:25,540 Et puis après la boucle se termine, que voulons-nous revenir? 1218 01:04:25,540 --> 01:04:27,082 1219 01:04:27,082 --> 01:04:27,790 PUBLIC: Longueur? 1220 01:04:27,790 --> 01:04:28,623 ALLISON BUCHHOLTZ-AU: Longueur. 1221 01:04:28,623 --> 01:04:29,910 1222 01:04:29,910 --> 01:04:30,760 Là vous allez. 1223 01:04:30,760 --> 01:04:33,790 1224 01:04:33,790 --> 01:04:37,810 Évidemment, la viande de celui-ci est de comprendre cette boucle. 1225 01:04:37,810 --> 01:04:39,280 1226 01:04:39,280 --> 01:04:41,090 Est-ce que tout le monde se comment cela a fonctionné? 1227 01:04:41,090 --> 01:04:42,460 1228 01:04:42,460 --> 01:04:44,170 Je suis heureux de revenir là-dessus il. 1229 01:04:44,170 --> 01:04:48,400 >> AUDIENCE: Le deuxième partie, si l'étoile i il, 1230 01:04:48,400 --> 01:04:51,834 qui est l'adresse de la first-- 1231 01:04:51,834 --> 01:04:53,250 ALLISON BUCHHOLTZ-AU: Il est pas l'adresse. 1232 01:04:53,250 --> 01:04:54,142 Il est ce qui est à. 1233 01:04:54,142 --> 01:04:55,600 PUBLIC: Voilà en fait là-dedans. 1234 01:04:55,600 --> 01:04:57,475 ALLISON BUCHHOLTZ-AU: Voilà ce qui est réellement là. 1235 01:04:57,475 --> 01:05:01,280 Donc, cela est saying-- laisser me fais ce mieux. 1236 01:05:01,280 --> 01:05:07,940 Donc, cela est 0x04, et je vais juste à dire que je vais faire mon nom. 1237 01:05:07,940 --> 01:05:14,531 1238 01:05:14,531 --> 01:05:15,030 Dáccord. 1239 01:05:15,030 --> 01:05:17,456 1240 01:05:17,456 --> 01:05:19,080 Oui, je sais que je dois examen quiz ce soir. 1241 01:05:19,080 --> 01:05:20,620 1242 01:05:20,620 --> 01:05:21,540 Beaucoup de consultation de quiz. 1243 01:05:21,540 --> 01:05:23,500 1244 01:05:23,500 --> 01:05:26,620 Donc, disons que cette chaîne est mon nom, Allison. 1245 01:05:26,620 --> 01:05:28,600 Peu désordonné, mais il est là. 1246 01:05:28,600 --> 01:05:33,640 Et s représente l'emplacement de l'endroit où la chaîne commence, 1247 01:05:33,640 --> 01:05:41,950 donc je vais faire ce bien-- ceci est l'adresse d'un, 1248 01:05:41,950 --> 01:05:45,000 où la chaîne commence, non? 1249 01:05:45,000 --> 01:05:48,560 >> Donc, ce que nous faisons ici est que nous voulons utiliser des pointeurs pour parcourir. 1250 01:05:48,560 --> 01:05:49,920 1251 01:05:49,920 --> 01:05:56,870 Nous créons donc un certain pointeur, i, qui a également est égal au début de la chaîne. 1252 01:05:56,870 --> 01:05:57,880 1253 01:05:57,880 --> 01:06:03,820 Et à chaque point, nous voulons continuer à aller à travers le réseau 1254 01:06:03,820 --> 01:06:07,570 ici jusqu'à ce que nous avons atteint la terminaison nulle. 1255 01:06:07,570 --> 01:06:12,320 Donc, nous voulons toujours vérifier ce qui est à chacune de ces adresses. 1256 01:06:12,320 --> 01:06:15,730 >> Nous avons donc déréférencer i, de sorte que la première fois que nous le faisons nous 1257 01:06:15,730 --> 01:06:17,810 dire, OK, ce qui est à l'adresse 0x04? 1258 01:06:17,810 --> 01:06:19,060 1259 01:06:19,060 --> 01:06:19,720 Il est un un. 1260 01:06:19,720 --> 01:06:20,660 OK, nous sommes bons. 1261 01:06:20,660 --> 01:06:21,770 Longueur incrément. 1262 01:06:21,770 --> 01:06:22,790 Passer à la suivante. 1263 01:06:22,790 --> 01:06:32,410 Donc i-- rappeler pointeurs augmentation de la taille de tout ce qu'ils pointant vers. 1264 01:06:32,410 --> 01:06:35,320 Donc dans ce cas, car il est un char, il va mettre à jour par un. 1265 01:06:35,320 --> 01:06:38,755 Alors maintenant, nous allons regarder à 5, ce qui signifie qu'il va ici. 1266 01:06:38,755 --> 01:06:39,860 1267 01:06:39,860 --> 01:06:43,440 Alors il dit OK, allez à 0x05. 1268 01:06:43,440 --> 01:06:44,270 Ce qu'il ya dedans? 1269 01:06:44,270 --> 01:06:44,930 Il est un l. 1270 01:06:44,930 --> 01:06:47,870 Et il va continuer à le faire jusqu'à ce qu'il atteigne celle-ci. 1271 01:06:47,870 --> 01:06:50,990 Et il dit OK, ce qui est en quelle que soit l'adresse est ce? 1272 01:06:50,990 --> 01:06:53,060 Le terminateur nul, OK. 1273 01:06:53,060 --> 01:06:53,870 Sortie. 1274 01:06:53,870 --> 01:06:55,240 Et il suffit de retourner la longueur. 1275 01:06:55,240 --> 01:06:56,370 1276 01:06:56,370 --> 01:06:59,800 Parce que vous avez besoin de ce qui est fait à cette adresse, pas l'adresse elle-même. 1277 01:06:59,800 --> 01:07:03,110 1278 01:07:03,110 --> 01:07:05,790 >> Il ya très peu d'endroits où vous avez réellement besoin de l'adresse. 1279 01:07:05,790 --> 01:07:08,720 La plupart du temps lorsque vous utilisez le et il est 1280 01:07:08,720 --> 01:07:12,424 quand vous êtes premier l'affectation d'un pointeur ou lorsque 1281 01:07:12,424 --> 01:07:14,090 vous êtes de passage dans une autre fonction. 1282 01:07:14,090 --> 01:07:16,350 1283 01:07:16,350 --> 01:07:21,330 OK, tout le monde il bon? 1284 01:07:21,330 --> 01:07:21,830 Genre de? 1285 01:07:21,830 --> 01:07:23,810 1286 01:07:23,810 --> 01:07:25,040 Dáccord. 1287 01:07:25,040 --> 01:07:28,210 >> Il semble donc que nous avons obtenu environ 12 minutes de la fin, 1288 01:07:28,210 --> 01:07:31,340 donc nous allons passer à peut-être notre dernier problème, 1289 01:07:31,340 --> 01:07:34,230 et puis il ya tout concepts qui ont surgi 1290 01:07:34,230 --> 01:07:36,830 En attendant, nous pouvons aller rapidement là-dessus. 1291 01:07:36,830 --> 01:07:42,310 >> Donc commutation Gears est la dernière problème ici, passer des déclarations. 1292 01:07:42,310 --> 01:07:44,970 1293 01:07:44,970 --> 01:07:49,450 Donc, votre travail consiste à réécrire cette de sorte qu'il se comporte de la même 1294 01:07:49,450 --> 01:07:50,580 mais ne pas utiliser des commutateurs. 1295 01:07:50,580 --> 01:07:53,684 1296 01:07:53,684 --> 01:07:54,666 Mains calcaire. 1297 01:07:54,666 --> 01:08:11,630 1298 01:08:11,630 --> 01:08:13,420 Donc, des questions au sujet de cette large de la chauve-souris? 1299 01:08:13,420 --> 01:08:15,420 1300 01:08:15,420 --> 01:08:15,920 Aucun? 1301 01:08:15,920 --> 01:08:16,420 Dáccord. 1302 01:08:16,420 --> 01:08:17,920 1303 01:08:17,920 --> 01:08:22,170 Tout le monde comprend que si la cas n'a rien après elle, 1304 01:08:22,170 --> 01:08:25,029 cela signifie qu'il devrait suivre la prochaine étape? 1305 01:08:25,029 --> 01:08:28,200 Donc cas 1 et 2 dans ce cas faire exactement la même chose. 1306 01:08:28,200 --> 01:08:31,153 1307 01:08:31,153 --> 01:08:32,444 Parfois, un point de confusion. 1308 01:08:32,444 --> 01:09:32,700 1309 01:09:32,700 --> 01:09:33,488 >> Bien. 1310 01:09:33,488 --> 01:09:34,404 Quelqu'un a des idées? 1311 01:09:34,404 --> 01:09:36,364 1312 01:09:36,364 --> 01:09:36,864 Ouais? 1313 01:09:36,864 --> 01:09:40,120 >> Auditoire: Alors, vous pouvez il suffit de faire si les états. 1314 01:09:40,120 --> 01:09:41,140 >> ALLISON BUCHHOLTZ-AU: Mm-hm. 1315 01:09:41,140 --> 01:09:42,880 Alors, quel est notre premier? 1316 01:09:42,880 --> 01:09:48,120 >> PUBLIC: Si n est égal à égal à 1, et les 2 lignes pour ou n est égal à 1317 01:09:48,120 --> 01:09:51,059 est égal à 2, puis imprimez petit. 1318 01:09:51,059 --> 01:09:57,760 1319 01:09:57,760 --> 01:09:59,520 Et puis vous pouvez faire d'autre si? 1320 01:09:59,520 --> 01:10:02,160 Ou pouvez-vous faire juste un si? 1321 01:10:02,160 --> 01:10:03,650 >> ALLISON BUCHHOLTZ-AU: Vous pouvez faire d'autre si? 1322 01:10:03,650 --> 01:10:05,274 >> PUBLIC: Serait-il question si vous le faites si? 1323 01:10:05,274 --> 01:10:06,320 ALLISON BUCHHOLTZ-AU: Alors qu'il fait. 1324 01:10:06,320 --> 01:10:10,160 Ne anyone--, vous obtiendra le même résultat 1325 01:10:10,160 --> 01:10:13,930 si vous utilisez seulement ifs contre si vous utilisez ifs autre. 1326 01:10:13,930 --> 01:10:17,090 Vous les gars peuvent penser de la raison pourquoi vous voudrez peut-être utiliser un autre 1327 01:10:17,090 --> 01:10:18,680 si par rapport à beaucoup de si? 1328 01:10:18,680 --> 01:10:20,260 1329 01:10:20,260 --> 01:10:21,510 Doit avec efficacité. 1330 01:10:21,510 --> 01:10:22,225 Ouais? 1331 01:10:22,225 --> 01:10:24,783 >> Auditoire: ce serait vérifier tous les ifs à chaque fois. 1332 01:10:24,783 --> 01:10:26,076 1333 01:10:26,076 --> 01:10:28,110 >> ALLISON BUCHHOLTZ-AU: Donc, même si il a frappé cette première, 1334 01:10:28,110 --> 01:10:29,880 ce serait aller à l'arrivée chaque autre. 1335 01:10:29,880 --> 01:10:36,690 Donc, vous voulez utiliser si quelque ifs dans les cas où un seul d'entre eux sera jamais appliquer. 1336 01:10:36,690 --> 01:10:39,380 Donc, l'exclusion mutuelle est ce que nous avons tendance à dire. 1337 01:10:39,380 --> 01:10:41,410 1338 01:10:41,410 --> 01:10:46,550 Si vous avez un tas de ifs, cela signifie peut-être que plus d'un d'entre eux 1339 01:10:46,550 --> 01:10:49,630 questions, et peut-être plus l'un d'eux peut être vrai. 1340 01:10:49,630 --> 01:10:51,910 Et vous voulez tous les deux à exécuter si elles sont vraies. 1341 01:10:51,910 --> 01:10:57,180 Si vous voulez un seul d'entre eux à travailler dans ces cas mutuellement exclusives, 1342 01:10:57,180 --> 01:11:00,790 vous voulez utiliser autre si, parce il a tout à voir avec l'efficacité. 1343 01:11:00,790 --> 01:11:05,350 Votre code est juste mieux conçu si elle adhère à cette pratique. 1344 01:11:05,350 --> 01:11:07,330 Donc, dans ce cas, nous avons un autre si. 1345 01:11:07,330 --> 01:11:09,080 Et ce serait? 1346 01:11:09,080 --> 01:11:11,890 >> PUBLIC: n est égal à égal à 3. 1347 01:11:11,890 --> 01:11:12,765 ALLISON BUCHHOLTZ-AU: Parfait. 1348 01:11:12,765 --> 01:11:19,420 1349 01:11:19,420 --> 01:11:20,445 support d'impression. 1350 01:11:20,445 --> 01:11:25,190 1351 01:11:25,190 --> 01:11:29,930 Et puis dans notre dernier cas, que devons-nous? 1352 01:11:29,930 --> 01:11:31,495 D'autre ou bien si? 1353 01:11:31,495 --> 01:11:32,120 PUBLIC: Else. 1354 01:11:32,120 --> 01:11:33,450 1355 01:11:33,450 --> 01:11:37,900 >> ALLISON BUCHHOLTZ-AU: Avons-nous want-- Vous voulez d'autre si parce que nous avons des cas concrets. 1356 01:11:37,900 --> 01:11:39,270 Il est pas une sorte de fourre-tout. 1357 01:11:39,270 --> 01:11:44,247 Si vous aviez un défaut dans un switch-- rappeler dans les commutateurs que vous pouvez avoir affaire, 1358 01:11:44,247 --> 01:11:45,330 et puis vous avez par défaut. 1359 01:11:45,330 --> 01:11:48,760 Si vous aviez un défaut, qui est un peu de votre déclaration d'autre. 1360 01:11:48,760 --> 01:11:52,180 Mais si elle ne dispose que de cas, cela signifie que vous devez 1361 01:11:52,180 --> 01:11:54,315 de vérifier pour voir si elle est chacun de ces. 1362 01:11:54,315 --> 01:11:57,755 Donc dans ce cas, ce serait le 4 ou 5. 1363 01:11:57,755 --> 01:12:00,480 1364 01:12:00,480 --> 01:12:01,450 Nous voulons une impression hors tension. 1365 01:12:01,450 --> 01:12:02,990 1366 01:12:02,990 --> 01:12:03,630 Il est grand. 1367 01:12:03,630 --> 01:12:06,640 1368 01:12:06,640 --> 01:12:07,509 Et là vous allez. 1369 01:12:07,509 --> 01:12:08,800 Et ce serait votre programme. 1370 01:12:08,800 --> 01:12:11,890 1371 01:12:11,890 --> 01:12:17,050 >> Donc, dans ce cas, si nous eu quelque chose par défaut, 1372 01:12:17,050 --> 01:12:20,470 nous aurions une autre dans ce qu'il voulait que nous fassions. 1373 01:12:20,470 --> 01:12:23,365 Voilà donc une bonne distinction à savoir, à comprendre. 1374 01:12:23,365 --> 01:12:25,368 1375 01:12:25,368 --> 01:12:27,790 Cela aide d'interrupteurs pour vous? 1376 01:12:27,790 --> 01:12:28,800 Parfait. 1377 01:12:28,800 --> 01:12:29,390 Bien. 1378 01:12:29,390 --> 01:12:31,320 1379 01:12:31,320 --> 01:12:33,340 >> Nous avons environ huit minutes. 1380 01:12:33,340 --> 01:12:37,090 Avez-vous les gars ont tout d'autres concepts de haut niveau? 1381 01:12:37,090 --> 01:12:38,720 Questions en général? 1382 01:12:38,720 --> 01:12:39,220 Oui? 1383 01:12:39,220 --> 01:12:42,860 >> PUBLIC: je devais un question à propos de l'un d'eux 1384 01:12:42,860 --> 01:12:46,257 qui était sur le hasard générateur de nombres sur questionnaire zéro. 1385 01:12:46,257 --> 01:12:47,340 ALLISON BUCHHOLTZ-AU: Oh, celui-là. 1386 01:12:47,340 --> 01:12:51,460 Celui-là est un autre où il est plus mathématiques than-- oui. 1387 01:12:51,460 --> 01:12:53,800 1388 01:12:53,800 --> 01:12:59,452 La solution à that-- même quand je Je le vois, je suis comme ce qui est ce. 1389 01:12:59,452 --> 01:13:00,590 >> PUBLIC: Il était le numéro 7. 1390 01:13:00,590 --> 01:13:02,720 1391 01:13:02,720 --> 01:13:05,310 >> ALLISON BUCHHOLTZ-AU: Il est étrange à mon avis. 1392 01:13:05,310 --> 01:13:07,260 1393 01:13:07,260 --> 01:13:11,630 Donc, fondamentalement, vous voulez à utiliser drand48, qui 1394 01:13:11,630 --> 01:13:15,420 vous donnera une nombre compris entre 0 et 1. 1395 01:13:15,420 --> 01:13:21,200 Et vous voulez l'utiliser de manière que vous obtenez quelque sorte A- 1396 01:13:21,200 --> 01:13:26,690 et il est beaucoup plus d'un problème de maths pour moi que je pense un problème CS. 1397 01:13:26,690 --> 01:13:29,040 1398 01:13:29,040 --> 01:13:37,845 >> La façon dont vous le faites et it-- Parfois, il sera juste comme ça. 1399 01:13:37,845 --> 01:13:39,340 1400 01:13:39,340 --> 01:13:41,090 Là encore, ce sont le les cas où il est un peu 1401 01:13:41,090 --> 01:13:46,310 de comme écrire ce que vous peut et crédit partiel. 1402 01:13:46,310 --> 01:13:47,800 1403 01:13:47,800 --> 01:13:51,510 Donc, si nous voulons un retour, nous savons que nous sommes 1404 01:13:51,510 --> 01:13:54,182 allez utiliser drand48 en quelque sorte, non? 1405 01:13:54,182 --> 01:13:55,640 Alors pourquoi ne pas juste Notez que vers le bas. 1406 01:13:55,640 --> 01:13:58,286 1407 01:13:58,286 --> 01:13:59,410 Nous utilisons une certaine façon. 1408 01:13:59,410 --> 01:14:00,780 1409 01:14:00,780 --> 01:14:04,190 La façon dont ils ont vous utilisez les gars, il est 1410 01:14:04,190 --> 01:14:08,175 comme ça, que je vais essayer d'expliquer. 1411 01:14:08,175 --> 01:14:10,200 1412 01:14:10,200 --> 01:14:15,340 >> Donc, fondamentalement, ce qui se passe ici En effet, il est compris entre 0 et 1, 1413 01:14:15,340 --> 01:14:19,300 ce que vous faites est vous êtes multipliant by-- ce qui est très bien une question de mathématiques. 1414 01:14:19,300 --> 01:14:22,010 Tout plein déni, cela est complètement une question de mathématiques. 1415 01:14:22,010 --> 01:14:23,990 Ce que vous faites est raison de 0 et 1 et vous 1416 01:14:23,990 --> 01:14:26,460 veux que ce soit à l'intérieur cette gamme, vous avez réellement 1417 01:14:26,460 --> 01:14:29,360 comprendre comment grand la plage est, et puis 1418 01:14:29,360 --> 01:14:32,710 vous fondamentalement le à l'échelle, qui est ce qui ce fait. 1419 01:14:32,710 --> 01:14:39,050 >> b moins une qui vous donne cette gamme, la différence entre ces chiffres. 1420 01:14:39,050 --> 01:14:44,040 Vous pouvez multiplier entre 0 et 1, et en ajoutant ensuite un juste 1421 01:14:44,040 --> 01:14:48,870 signifie que votre mise à l'échelle vers le haut de sorte qu'il est entre a et b, 1422 01:14:48,870 --> 01:14:52,377 que je ne l'ai pas vraiment aime ce problème. 1423 01:14:52,377 --> 01:14:58,380 1424 01:14:58,380 --> 01:15:01,790 Comme je le disais, ce quiz est destinée à englober 1425 01:15:01,790 --> 01:15:04,110 les gens qui sont moins à l'aise, quelque part entre les deux, 1426 01:15:04,110 --> 01:15:05,070 et plus à l'aise. 1427 01:15:05,070 --> 01:15:07,550 Donc, si ils l'ont fait de manière qu'il avait quelque chose 1428 01:15:07,550 --> 01:15:10,050 que tout le monde au moins endroit confortable obtiendrait, 1429 01:15:10,050 --> 01:15:12,259 nous aurions beaucoup trop personnes marquant parfaits, 1430 01:15:12,259 --> 01:15:13,925 et le plus confortable serait ennuyé. 1431 01:15:13,925 --> 01:15:14,980 1432 01:15:14,980 --> 01:15:18,970 >> Donc, ils ont toujours ces genre de questions d'énigme 1433 01:15:18,970 --> 01:15:22,695 qui sont destinés à être un peu plus difficile qui prennent un peu de créativité. 1434 01:15:22,695 --> 01:15:25,030 1435 01:15:25,030 --> 01:15:27,790 Quand vous les voyez, ne soyez pas trop perplexe. 1436 01:15:27,790 --> 01:15:31,720 Je dirais certainement bascule par votre quiz premier. 1437 01:15:31,720 --> 01:15:35,020 Résoudre les problèmes que vous savez que vous pouvez, 1438 01:15:35,020 --> 01:15:38,480 parce qu'il n'y a pas d'utilisation coincé sur un problème quand il ya trois 1439 01:15:38,480 --> 01:15:42,090 ou quatre ou cinq sur la page après que vous pouvez facilement le faire. 1440 01:15:42,090 --> 01:15:45,331 1441 01:15:45,331 --> 01:15:48,520 >> Public: Pourquoi exactement vous faire multiplier par la plage? 1442 01:15:48,520 --> 01:15:54,935 >> ALLISON BUCHHOLTZ-AU: Vous multipliez la gamme que vous know-- il est comme combien après un 1443 01:15:54,935 --> 01:15:55,485 voulez-vous? 1444 01:15:55,485 --> 01:15:57,840 1445 01:15:57,840 --> 01:16:02,130 Alors que vous pouvez penser, car il renvoie un nombre entre 0 et 1, 1446 01:16:02,130 --> 01:16:03,890 vous pouvez penser comme un pourcentage. 1447 01:16:03,890 --> 01:16:12,195 Donc, il est fondamentalement dire si nous avons notre ligne de nombre ici, un est ici, 1448 01:16:12,195 --> 01:16:13,840 et b est ici. 1449 01:16:13,840 --> 01:16:19,170 Vous êtes comme combien passé un est-il? 1450 01:16:19,170 --> 01:16:20,010 Est tout ce que nous faisons. 1451 01:16:20,010 --> 01:16:24,920 Donc, vous demandez juste pour le pourcentage de cette gamme, qui 1452 01:16:24,920 --> 01:16:26,170 est ce qu'il te donne. 1453 01:16:26,170 --> 01:16:30,915 Et puis vous fondamentalement juste agrandissez-le en ajoutant un. 1454 01:16:30,915 --> 01:16:32,302 Il est un teaser mathématiques du cerveau. 1455 01:16:32,302 --> 01:16:35,400 1456 01:16:35,400 --> 01:16:39,060 >> Si il y avait un dernier conseil minutes, je dirait parcourir les questions, 1457 01:16:39,060 --> 01:16:41,660 déterminer lesquels vous sais que, comme, oh, je suis cela. 1458 01:16:41,660 --> 01:16:43,196 1459 01:16:43,196 --> 01:16:45,820 Presque sûrement, ils vont être des questions que vous ne saurez pas 1460 01:16:45,820 --> 01:16:49,580 ou que vous allez avoir le temps pour, donc frapper vos points forts, OK? 1461 01:16:49,580 --> 01:16:50,990 Les gars, vous allez très bien. 1462 01:16:50,990 --> 01:16:52,740 Il ya beaucoup de questions pour une raison, 1463 01:16:52,740 --> 01:16:57,140 de sorte que vous avez le temps de genre de avoir l'occasion 1464 01:16:57,140 --> 01:16:59,330 de démontrer ce que vous êtes vraiment bon. 1465 01:16:59,330 --> 01:17:02,370 Donc, il est OK si vous êtes pas bon du tout. 1466 01:17:02,370 --> 01:17:03,371 Jouer à vos points forts. 1467 01:17:03,371 --> 01:17:03,870 Oui? 1468 01:17:03,870 --> 01:17:06,536 >> Auditoire: Alors, est ce que ça va retourner quelque chose qui est tronquée? 1469 01:17:06,536 --> 01:17:10,810 1470 01:17:10,810 --> 01:17:15,015 Oui, il le fera, parce que drand retours entre 0 et 1. 1471 01:17:15,015 --> 01:17:17,459 1472 01:17:17,459 --> 01:17:19,250 Il reviendra un int, parce que ça va tronquer 1473 01:17:19,250 --> 01:17:22,933 quand on ajoute un ou multiplie par elle. 1474 01:17:22,933 --> 01:17:27,670 1475 01:17:27,670 --> 01:17:28,442 Laisser refroidir. 1476 01:17:28,442 --> 01:17:29,525 Les dernières questions minute? 1477 01:17:29,525 --> 01:17:31,310 1478 01:17:31,310 --> 01:17:32,615 >> Les gars, vous allez faire une grande. 1479 01:17:32,615 --> 01:17:34,440 Vous allez être fabuleux. 1480 01:17:34,440 --> 01:17:37,100 Et même si pas, il y aura soit bonbons ici la semaine prochaine. 1481 01:17:37,100 --> 01:17:39,040 1482 01:17:39,040 --> 01:17:40,020 Et je vais vous aime. 1483 01:17:40,020 --> 01:17:41,270 Je vous aime les gars indépendamment. 1484 01:17:41,270 --> 01:17:42,550 1485 01:17:42,550 --> 01:17:43,930 Très bien, tout le monde, bonne chance. 1486 01:17:43,930 --> 01:17:44,680 Avoir un grand temps. 1487 01:17:44,680 --> 01:17:45,620 1488 01:17:45,620 --> 01:17:46,620 Vous allez être bien. 1489 01:17:46,620 --> 01:17:47,370 Et vous savez quoi? 1490 01:17:47,370 --> 01:17:50,310 En deux jours, il va à plus, alors que je 1491 01:17:50,310 --> 01:17:53,675 avoir deux mi-session le jeudi, de sorte au moins vous les gars se fera. 1492 01:17:53,675 --> 01:17:56,550 Très bien, je vous vois la semaine prochaine. 1493 01:17:56,550 --> 01:17:58,208