1 00:00:00,000 --> 00:00:08,090 2 00:00:08,090 --> 00:00:09,810 >> JASON HIRSCHHORN: Bienvenue, tout le monde, à la semaine 10. 3 00:00:09,810 --> 00:00:15,130 C'est une semaine excitante car demain Quiz 1, que nous aurons 4 00:00:15,130 --> 00:00:16,400 dans une seconde. 5 00:00:16,400 --> 00:00:21,770 Aujourd'hui, dans l'article, nous allons aller plus quelques ressources pour le test, et 6 00:00:21,770 --> 00:00:24,890 alors je vais répondre à toutes des questions vous les gars ont. 7 00:00:24,890 --> 00:00:27,880 Et nous allons enfin terminer par certains problèmes pratiques. 8 00:00:27,880 --> 00:00:30,940 >> Nous pouvons passer toute la section répondre aux questions. 9 00:00:30,940 --> 00:00:33,240 Nous pouvons passer toute la section aller sur des problèmes pratiques. 10 00:00:33,240 --> 00:00:36,890 Nous allons simplement se dilater pour remplir le espace et le temps que nous avons. 11 00:00:36,890 --> 00:00:40,590 >> Alors, j'ai mis cette liste chaque semaine, mais il est particulièrement important cette semaine. 12 00:00:40,590 --> 00:00:44,980 Pour l'étude, si vous n'avez pas commencé déjà, oh boy. 13 00:00:44,980 --> 00:00:46,400 Mais j'espère que vous avez déjà commencé. 14 00:00:46,400 --> 00:00:50,710 Et vous allez à travers les matériaux et les ressources énumérées ici. 15 00:00:50,710 --> 00:00:54,300 Je recommande vivement un certain nombre de ces derniers. 16 00:00:54,300 --> 00:00:58,780 >> En particulier, les notes de cours sont extrêmement important et utile. 17 00:00:58,780 --> 00:01:02,880 Le study.cs50.net offre une grande amorce sur un terrain de 18 00:01:02,880 --> 00:01:04,250 les sujets que nous avons abordés. 19 00:01:04,250 --> 00:01:07,810 Il a aussi quelques grands pratiquer problèmes. 20 00:01:07,810 --> 00:01:11,260 Et puis, Google est aussi très bien. 21 00:01:11,260 --> 00:01:12,360 Je ne sais pas ce que vous l'utilisez pour. 22 00:01:12,360 --> 00:01:14,090 Mais l'utilisation de Google, aussi bien. 23 00:01:14,090 --> 00:01:16,680 >> Tendez la main à moi si vous avez des questions, commentaires ou préoccupations. 24 00:01:16,680 --> 00:01:19,420 Regardez au-dessus de la session d'examen diapositives de la nuit dernière. 25 00:01:19,420 --> 00:01:21,540 Ou, si vous avez un peu de temps, voir la vidéo. 26 00:01:21,540 --> 00:01:24,930 Ils fournissent beaucoup d'utiles matière et de l'information. 27 00:01:24,930 --> 00:01:29,730 Et essayer de couvrir, sinon la totalité, de nombreux les sujets que nous avons abordés et que vous 28 00:01:29,730 --> 00:01:32,610 pourrait voir sur le quiz. 29 00:01:32,610 --> 00:01:35,590 >> Parlant du questionnaire, qui sera demain. 30 00:01:35,590 --> 00:01:37,260 C'est 75 minutes. 31 00:01:37,260 --> 00:01:40,740 Beaucoup d'entre vous le prennent à 1 heures, et certains d'entre vous sont 32 00:01:40,740 --> 00:01:42,740 prendre à 5h30. 33 00:01:42,740 --> 00:01:45,300 Pour le moment vous le prendre et le emplacement que vous prenez, assurez-vous 34 00:01:45,300 --> 00:01:49,400 vous consultez le document sur la page d'accueil CS50.net. 35 00:01:49,400 --> 00:01:54,340 >> N'oubliez pas que vous pouvez obtenir un 8 1/2 de 11 feuilles à emporter avec vous. 36 00:01:54,340 --> 00:01:57,310 Souvent, les gens ne l'utilisent pas Fiche du tout pendant le test. 37 00:01:57,310 --> 00:01:59,740 Mais vraiment, il est incroyablement outil d'étude utile. 38 00:01:59,740 --> 00:02:04,370 Donc mettre ensemble cette feuille est ce J'ai passé probablement trois ou quatre heures 39 00:02:04,370 --> 00:02:07,110 fais quand je faisais mes études pour CS50, et C'était de loin le plus utile 40 00:02:07,110 --> 00:02:08,740 manière que je pourrais étudier pour le quiz. 41 00:02:08,740 --> 00:02:10,949 Donc, même si vous avez d'autres personnes de guides d'étude à regarder et 42 00:02:10,949 --> 00:02:14,740 utiliser comme références, je recommande fortement faire votre propre guide d'étude, en mettant 43 00:02:14,740 --> 00:02:15,490 ce genre de choses ensemble. 44 00:02:15,490 --> 00:02:17,335 Cela aide vraiment à apprendre la totalité du matériau. 45 00:02:17,335 --> 00:02:20,270 46 00:02:20,270 --> 00:02:24,810 >> Last but not least dans cette section, après le test demain il ya une 47 00:02:24,810 --> 00:02:25,940 plus exposé - 48 00:02:25,940 --> 00:02:26,960 lundi prochain. 49 00:02:26,960 --> 00:02:30,430 Il ya une section plus, pas à côté Mardi avant Thanksgiving, mais le 50 00:02:30,430 --> 00:02:31,630 Mardi après que. 51 00:02:31,630 --> 00:02:36,600 Nous nous réunirons ensemble pour une finale au revoir parti et aussi faire un peu de frais 52 00:02:36,600 --> 00:02:41,530 les choses pour vous les gars excité au sujet d'autres études en informatique. 53 00:02:41,530 --> 00:02:45,040 >> Il ya un projet de plus, un plus juste, une plus hackathon. 54 00:02:45,040 --> 00:02:47,900 Nous approchons de la fin de CS50, qui est passionnant - 55 00:02:47,900 --> 00:02:50,950 mais aussi, si vous êtes comme moi, un peu triste. 56 00:02:50,950 --> 00:02:53,950 Avant de passer, quelqu'un at-il des questions sur ce 57 00:02:53,950 --> 00:02:55,200 nous avons couvert jusqu'ici? 58 00:02:55,200 --> 00:03:02,760 59 00:03:02,760 --> 00:03:08,730 >> OK, bien revenons sur quelques questions que vous avez pour le quiz et sujets 60 00:03:08,730 --> 00:03:09,960 nous pourrions couvrir. 61 00:03:09,960 --> 00:03:11,540 Donc, c'est une liste que j'ai mis en place. 62 00:03:11,540 --> 00:03:15,500 Il est loin d'être exhaustive, mais nous l'espérons, vous rafraîchir la mémoire si vous 63 00:03:15,500 --> 00:03:20,310 avoir quelques questions sur l'un de ces sujets, ou si vous avez des questions sur 64 00:03:20,310 --> 00:03:23,260 problèmes pratiques de quiz dans les années passées. 65 00:03:23,260 --> 00:03:27,470 >> J'ai eu quelques questions qui étaient envoyé à moi, mais je veux tenir à distance 66 00:03:27,470 --> 00:03:29,490 sur ceux d'une seconde. 67 00:03:29,490 --> 00:03:34,570 Est-ce que quelqu'un a des questions, problèmes qu'ils ne comprenaient pas, 68 00:03:34,570 --> 00:03:38,100 réponses qu'ils ne comprenaient pas pour nous aider à démarrer? 69 00:03:38,100 --> 00:03:39,520 Avi. 70 00:03:39,520 --> 00:03:41,585 >> PUBLIC: Pouvez-vous revenir sur DOM et Ajax vraiment rapide? 71 00:03:41,585 --> 00:03:46,540 Comme quoi nous avons besoin de savoir ou devrais- comprendre à leur sujet? 72 00:03:46,540 --> 00:03:49,750 >> JASON HIRSCHHORN: Je vais répondre à généralement cette question de, que dois-je 73 00:03:49,750 --> 00:03:52,100 besoin de savoir sur le sujet donné x? 74 00:03:52,100 --> 00:03:55,280 Parce que j'ai l'impression que beaucoup d'entre vous vont me demander, ou sont 75 00:03:55,280 --> 00:03:56,570 curieux à ce sujet. 76 00:03:56,570 --> 00:04:02,920 Donc, dans la mesure où le sujet était couverte en cours, ou de l'article, ou sur 77 00:04:02,920 --> 00:04:06,460 study.cs50.net, un problème défini, vous devrait être familier avec elle. 78 00:04:06,460 --> 00:04:10,580 >> Donc, vous n'avez pas besoin de connaître tous les types de l'étiquette qui est disponible au format HTML ou 79 00:04:10,580 --> 00:04:15,950 chaque type d'attribut ou la propriété vous pouvez donner quelque chose en CSS. 80 00:04:15,950 --> 00:04:20,204 Mais si vous l'avez vu dans un exemple de conférence, si vous l'avez vu dans un problème 81 00:04:20,204 --> 00:04:23,290 ensemble, vous devriez probablement familier avec elle, en particulier les choses que vous avez vu 82 00:04:23,290 --> 00:04:24,260 en cours. 83 00:04:24,260 --> 00:04:28,510 Donc, nous avons discuté le document modèle objet un peu en 84 00:04:28,510 --> 00:04:30,530 section, d'autant plus dans la leçon. 85 00:04:30,530 --> 00:04:32,990 Vous devez être familier avec autant de celui-ci. 86 00:04:32,990 --> 00:04:34,750 >> Et vous devez être familier avec Ajax dans la même mesure. 87 00:04:34,750 --> 00:04:38,105 Nous n'avons jamais vu incroyablement avancée ou exemples compliqués d'Ajax, de sorte 88 00:04:38,105 --> 00:04:40,920 vous n'allez pas être posées faire quelque chose d'incroyablement compliqué. 89 00:04:40,920 --> 00:04:45,180 Mais vous pourriez être invité, comment puis-je faire un appel Ajax en utilisant jQuery? 90 00:04:45,180 --> 00:04:47,350 Qui est quelque chose que vous avez vu un certain nombre de reprises, aussi bien dans l' 91 00:04:47,350 --> 00:04:51,370 session d'examen et en cours, et c'est seulement deux lignes de code-ish. 92 00:04:51,370 --> 00:04:53,190 >> Donc, c'est quelque chose que vous devriez être familier. 93 00:04:53,190 --> 00:04:55,550 Mais encore une fois, pour l'ensemble de ces sujets, si vous avez vu 94 00:04:55,550 --> 00:04:59,220 avant, il est un jeu équitable. 95 00:04:59,220 --> 00:05:01,540 Et nous pourrions vous demander - de toute évidence, nous sommes va vous poser des choses que vous 96 00:05:01,540 --> 00:05:02,340 n'ont pas vu avant. 97 00:05:02,340 --> 00:05:04,240 Codage quelque chose que vous n'avez pas vu avant. 98 00:05:04,240 --> 00:05:06,570 Qui ne veut pas dire que vous n'avez pas vu les outils pour résoudre 99 00:05:06,570 --> 00:05:08,120 ce problème avant. 100 00:05:08,120 --> 00:05:09,200 Vous avez vu ces outils. 101 00:05:09,200 --> 00:05:11,160 >> Par exemple, sur Quiz 1, si vous devez coder strlen. 102 00:05:11,160 --> 00:05:12,790 Nous n'avons pas codé strlen avant. 103 00:05:12,790 --> 00:05:14,980 Mais vous savez comment utiliser une boucle for, vous savez comment l'utiliser si les conditions. 104 00:05:14,980 --> 00:05:18,570 Vous savez comment écrire les variables en C. Ça va être la même chose ici. 105 00:05:18,570 --> 00:05:22,350 Vous n'allez pas être invité à faire tout ce que vous n'avez pas vu avant, mais 106 00:05:22,350 --> 00:05:25,150 vous pourriez être invité à, comme, mettre quelque chose ensemble d'une manière nouvelle, ou 107 00:05:25,150 --> 00:05:27,650 résoudre un type de problème différent. 108 00:05:27,650 --> 00:05:30,830 >> Désolé, ce n'était pas spécifique à votre question, mais je ne peux pas répondre au sujet 109 00:05:30,830 --> 00:05:34,390 chaque sujet unique que vous faire ou n'ont pas besoin de savoir. 110 00:05:34,390 --> 00:05:36,830 Mais aussi, désolé, dernière chose à ce sujet. 111 00:05:36,830 --> 00:05:42,900 Nous avons passé beaucoup plus de temps sur les listes de liens que nous avons sur Ajax. 112 00:05:42,900 --> 00:05:46,160 Vous n'avez pas utilisé Ajax dans un ensemble de problème. 113 00:05:46,160 --> 00:05:48,510 L'une des caractéristiques essentielles de ce problème réglé c'était listes de liens. 114 00:05:48,510 --> 00:05:50,370 Et nous avons passé beaucoup de temps en cours et la section de l'utiliser. 115 00:05:50,370 --> 00:05:57,080 >> Donc, les chances sont liste de liens viendra plus souvent sur le quiz de l'Ajax volonté. 116 00:05:57,080 --> 00:06:00,390 Ou questions ayant à voir avec lien liste vaudra plus de points. 117 00:06:00,390 --> 00:06:03,520 Ainsi, vous pouvez certainement se concentrer et étroit dans des choses qui sont plus 118 00:06:03,520 --> 00:06:06,720 susceptibles de venir parce que nous avons passé plus de temps sur eux. 119 00:06:06,720 --> 00:06:08,700 >> OK d'autres questions? 120 00:06:08,700 --> 00:06:09,890 Ouais. 121 00:06:09,890 --> 00:06:13,660 >> PUBLIC: Pouvons-nous revenir sur l'utilisation de fonctions anonymes en JavaScript? 122 00:06:13,660 --> 00:06:17,140 Je suis un peu confus sont à ce sujet. 123 00:06:17,140 --> 00:06:20,180 >> JASON HIRSCHHORN: Donc en JavaScript - 124 00:06:20,180 --> 00:06:24,400 Je suis en train de penser comment je pouvait écrire ce sur - 125 00:06:24,400 --> 00:06:27,590 nous allons donc en fait d'ouvrir ce code. 126 00:06:27,590 --> 00:06:31,830 127 00:06:31,830 --> 00:06:36,030 Donc, c'est le code que nous avons fait la semaine dernière. 128 00:06:36,030 --> 00:06:41,400 Et vous avez vu cette avant si vous étaient ici dans la section la semaine dernière. 129 00:06:41,400 --> 00:06:43,180 Ou vous avez vu quelque chose semblable à cela avant. 130 00:06:43,180 --> 00:06:44,800 >> Mais vous pouvez regarder cette première ligne. 131 00:06:44,800 --> 00:06:46,950 C'est ainsi que vous commencez - 132 00:06:46,950 --> 00:06:48,010 tout le monde a vu cela avant. 133 00:06:48,010 --> 00:06:51,930 Si vous voulez mettre un peu de code JavaScript, vous mettez à l'intérieur de cela, en supposant 134 00:06:51,930 --> 00:06:53,520 vous utilisez JQuery. 135 00:06:53,520 --> 00:06:56,940 Cela revient à dire, ne rien faire jusqu'à ce que le document de chargement. 136 00:06:56,940 --> 00:06:59,940 >> Et puis, Curt, vous voir ici nous faisons quelque chose comme ça - 137 00:06:59,940 --> 00:07:02,560 fonction paren ouverts, fermés parenthèse. 138 00:07:02,560 --> 00:07:05,250 Donc, nous ne donnons pas ce fonctionner un nom. 139 00:07:05,250 --> 00:07:09,160 Nous n'allons pas définir cette fonction est censé exécuter, puis 140 00:07:09,160 --> 00:07:10,830 appeler un tas de fois. 141 00:07:10,830 --> 00:07:15,140 Nous disons simplement que ce document prend déjà une fonction. 142 00:07:15,140 --> 00:07:16,690 Un couple de choses à faire. 143 00:07:16,690 --> 00:07:20,670 >> Et nous ne voulons pas passer le temps lui donnant un nom ou enregistrer pour 144 00:07:20,670 --> 00:07:21,650 perpétuité. 145 00:07:21,650 --> 00:07:24,150 Nous voulons juste faire quelques choses. 146 00:07:24,150 --> 00:07:27,500 Donc, une fonction de tri anonyme de sert à cette fin. 147 00:07:27,500 --> 00:07:30,280 Lorsque vous n'allez pas utiliser quelque chose encore et encore, vous n'avez donc pas besoin 148 00:07:30,280 --> 00:07:32,420 pour lui donner un nom - que vous venez de vous voulez l'utiliser une fois - 149 00:07:32,420 --> 00:07:36,720 vous voulez simplement dire fonction, pour exemple, dans ce cas, et vous êtes juste 150 00:07:36,720 --> 00:07:38,280 définir quelque chose qui vous pouvez donner un nom. 151 00:07:38,280 --> 00:07:40,920 >> Comme, nous pourrions tirer de cette fonction sur et lui donner un nom, puis appeler ce 152 00:07:40,920 --> 00:07:41,760 fonctionner ici. 153 00:07:41,760 --> 00:07:44,270 Mais nous n'avons pas besoin de le faire parce que nous ne faisons pas vouloir perdre du temps en lui donnant un nom ou 154 00:07:44,270 --> 00:07:46,240 perdre quelque chose dans notre espace de nom. 155 00:07:46,240 --> 00:07:47,530 Et vous verrez que beaucoup de choses. 156 00:07:47,530 --> 00:07:52,810 Par exemple, nous voyons que beaucoup dans ce code, mais vous avez vu cette avant quand 157 00:07:52,810 --> 00:07:54,010 vous cliquez sur quelque chose - 158 00:07:54,010 --> 00:07:55,980 exécuter ce type de code. 159 00:07:55,980 --> 00:07:59,850 >> Nous pourrions définir le code que nous voulons à courir lorsque l'on clique, dans ce cas, 160 00:07:59,850 --> 00:08:03,450 cette identification, comme une fonction distincte et puis exécutez cette fonction. 161 00:08:03,450 --> 00:08:07,940 Mais dans ce cas, nous sommes en train de sauter cette étape et le déplacer dans ici et 162 00:08:07,940 --> 00:08:10,340 juste pour définir tout que nous voulons produire et 163 00:08:10,340 --> 00:08:12,450 ne lui donnant un nom. 164 00:08:12,450 --> 00:08:15,550 Cela peut toujours pas répondu à votre question. 165 00:08:15,550 --> 00:08:15,960 >> PUBLIC: Non, il le fait. 166 00:08:15,960 --> 00:08:18,290 Je veux dire, je suppose que je fais tout simplement pas vraiment obtenir pourquoi il serait un 167 00:08:18,290 --> 00:08:20,800 fonctionner du tout, cependant. 168 00:08:20,800 --> 00:08:21,590 Parce que ce n'est pas vraiment appelé. 169 00:08:21,590 --> 00:08:23,170 Il n'a pas vraiment de nom. 170 00:08:23,170 --> 00:08:25,510 >> JASON HIRSCHHORN: C'est une fonction dans le sens qu'il s'agit d'une série d'étapes, 171 00:08:25,510 --> 00:08:28,460 comme vous mettriez dans une fonction. 172 00:08:28,460 --> 00:08:29,970 Et puis c'est pourquoi nous appelons il fonction anonyme. 173 00:08:29,970 --> 00:08:30,815 Nous n'allons pas lui donner un nom. 174 00:08:30,815 --> 00:08:33,159 Nous n'allons pas perdre à essayer à nommer, mais nous avons pu. 175 00:08:33,159 --> 00:08:34,890 >> Les fonctions anonymes, vous peut toujours donner un nom. 176 00:08:34,890 --> 00:08:37,620 Ainsi, par exemple, ce code ici, nous pourrions mettre ce code dans un 177 00:08:37,620 --> 00:08:39,929 fonction et ensuite appeler cette fonction ici. 178 00:08:39,929 --> 00:08:41,600 Au lieu de cela, nous disons, nous n'allons pas à se soucier de cela. 179 00:08:41,600 --> 00:08:44,390 Nous allons simplement écrire tous ici. 180 00:08:44,390 --> 00:08:49,840 >> C'est comme, parfois, quand vous écrivez une boucle quatre C - vous les gars 181 00:08:49,840 --> 00:08:51,630 ont vu cela auparavant - peut-être vous êtes en parcourant un forloop 182 00:08:51,630 --> 00:08:53,090 i est égal à 0. 183 00:08:53,090 --> 00:08:54,830 I est inférieur strlen. 184 00:08:54,830 --> 00:08:59,520 Ou vous allez à travers certains tableau, vous pouvez économiser tableau 185 00:08:59,520 --> 00:09:01,580 l'indice i d'une certaine variable. 186 00:09:01,580 --> 00:09:02,830 Et vous utilisez cette variable. 187 00:09:02,830 --> 00:09:06,550 Donc, vous n'avez pas besoin de réécrire tableau support i maintes et maintes reprises. 188 00:09:06,550 --> 00:09:08,160 >> Et c'est un peu comme une variable muette. 189 00:09:08,160 --> 00:09:10,790 Ce n'est pas servir à grand-chose d'autre que rendre votre code un peu plus propre 190 00:09:10,790 --> 00:09:12,120 et plus facile à lire. 191 00:09:12,120 --> 00:09:13,290 Fonction similaire ici. 192 00:09:13,290 --> 00:09:15,665 Rend juste un peu plus facile, mais fonctionnellement n'y a aucune différence. 193 00:09:15,665 --> 00:09:18,620 194 00:09:18,620 --> 00:09:19,330 Est-ce que cela répond à votre question? 195 00:09:19,330 --> 00:09:19,970 >> PUBLIC: Oui. 196 00:09:19,970 --> 00:09:20,720 >> JASON HIRSCHHORN: OK .. 197 00:09:20,720 --> 00:09:21,880 Mario? 198 00:09:21,880 --> 00:09:25,380 >> PUBLIC: Hier, ils ont souvent mis fonction parenthèses événement. 199 00:09:25,380 --> 00:09:26,420 Est-ce que cela veut dire quelque chose? 200 00:09:26,420 --> 00:09:30,500 Ou est-ce pour des choses comme qu'ils feraient 201 00:09:30,500 --> 00:09:35,100 document.ready événement de fonction. 202 00:09:35,100 --> 00:09:37,130 >> JASON HIRSCHHORN: Nous l'avons vu, et encore une fois, ce sont les petites choses qui 203 00:09:37,130 --> 00:09:39,590 probablement que je ne veux pas passer trop de temps sur. 204 00:09:39,590 --> 00:09:43,200 Parce que parfois, je ne veux pas que les gens se flippé qu'ils n'ont pas 205 00:09:43,200 --> 00:09:44,220 entendu parler de ces choses que beaucoup. 206 00:09:44,220 --> 00:09:46,200 Mais nous avons un peu parlé gestionnaires d'événements. 207 00:09:46,200 --> 00:09:50,360 Donc, quelque chose se passe, puis cette fonction est exécutée. 208 00:09:50,360 --> 00:09:53,210 Et puis, nous voulons aussi savoir quelques détails sur ce que 209 00:09:53,210 --> 00:09:54,450 qui s'est passé dans ce cas. 210 00:09:54,450 --> 00:09:55,730 >> Donc penser à problème posé 4. 211 00:09:55,730 --> 00:09:58,390 C'est probablement la meilleure façon de comprendre que dans cassure. 212 00:09:58,390 --> 00:09:59,740 Il y avait un peu de code - 213 00:09:59,740 --> 00:10:01,980 comme un événement se produirait, mais événement peut signifier beaucoup de choses. 214 00:10:01,980 --> 00:10:06,240 Si pourrait signifier la souris est cliqué, il pourrait signifier que vous frappez une flèche, et 215 00:10:06,240 --> 00:10:07,190 cetera, et cetera. 216 00:10:07,190 --> 00:10:09,800 >> Mais tout cela est enregistré dans ce générique truc qui s'appelle événements. 217 00:10:09,800 --> 00:10:12,340 Et puis on peut dire, est cet événement cette chose? 218 00:10:12,340 --> 00:10:13,640 Ou est-ce l'événement cette chose? 219 00:10:13,640 --> 00:10:15,500 Ou, ce qui est arrivé sorte de à cet événement? 220 00:10:15,500 --> 00:10:18,660 C'est pour ça que vous créez cette variable là pour sauver cette information supplémentaire 221 00:10:18,660 --> 00:10:21,420 sur ce qui s'est exactement passé que vous allez vouloir 222 00:10:21,420 --> 00:10:24,840 utiliser dans la fonction. 223 00:10:24,840 --> 00:10:28,200 Mais encore une fois, c'est probablement l'un des choses moins importantes pour être super 224 00:10:28,200 --> 00:10:29,450 familier. 225 00:10:29,450 --> 00:10:31,470 226 00:10:31,470 --> 00:10:36,110 >> OK, ce que d'autres ont des questions de personnes eu, ou des pierres d'achoppement ils ont 227 00:10:36,110 --> 00:10:37,360 rencontré lors de l'examen? 228 00:10:37,360 --> 00:10:41,260 229 00:10:41,260 --> 00:10:42,510 Nous allons revenir à cette liste. 230 00:10:42,510 --> 00:10:52,550 231 00:10:52,550 --> 00:10:56,080 Qu'en est-il au cours des quiz de pratique, si les gens ont pris ceux déjà? 232 00:10:56,080 --> 00:10:59,110 Quels ont été les problèmes que déclenché vous les gars vous? 233 00:10:59,110 --> 00:11:08,970 234 00:11:08,970 --> 00:11:12,720 Je sais pertinemment que l'an dernier questionnaire a été vraiment difficile. 235 00:11:12,720 --> 00:11:15,670 >> PUBLIC: Pouvez-vous expliquer ce que une attaque par injection SQL est? 236 00:11:15,670 --> 00:11:18,970 >> JASON HIRSCHHORN: Bon, d'accord. 237 00:11:18,970 --> 00:11:20,440 Donc, nous en avons parlé un peu. 238 00:11:20,440 --> 00:11:22,050 Il ya une conférence sur la sécurité. 239 00:11:22,050 --> 00:11:25,670 Et encore une fois, comme je l'ai mentionné plus tôt, il s'agit d'un côté. 240 00:11:25,670 --> 00:11:30,010 Mais vous serez frustré sur le quiz quand vous lisez une petite deux points 241 00:11:30,010 --> 00:11:33,040 question, et vous êtes comme, quand je n'ai jamais appris cela? 242 00:11:33,040 --> 00:11:35,560 >> Toutes ces choses dans ces conférences que vous ne pensiez pas que vous deviez 243 00:11:35,560 --> 00:11:38,290 le savez, ou vous pourriez passer sur parce ils n'ont pas eu à faire avec le 244 00:11:38,290 --> 00:11:41,860 ensemble de problèmes, ceux qui seront probablement venir à nouveau sur le questionnaire. 245 00:11:41,860 --> 00:11:45,030 Donc, cool, des choses amusantes que vous venez de pensait David disait pour vous 246 00:11:45,030 --> 00:11:49,070 profiter, il vous a dit de vous profiter et de vous faire juste être super 247 00:11:49,070 --> 00:11:50,550 heureux de l'apprentissage tout il est d'apprendre 248 00:11:50,550 --> 00:11:51,670 sur l'informatique. 249 00:11:51,670 --> 00:11:53,680 Ces choses viennent aussi sur des questionnaires. 250 00:11:53,680 --> 00:11:56,440 Donc, même ces petites choses qui n'ont pas directement liés à votre problème 251 00:11:56,440 --> 00:11:59,630 ensemble, comme vous les gars sont familiarisés avec ces Quiz 0, sera probablement venir. 252 00:11:59,630 --> 00:12:01,530 Et c'est un bon exemple de quelque chose. 253 00:12:01,530 --> 00:12:10,140 >> Donc, une injection SQL attaques, c'est quand vous obtenir des informations de l'utilisateur et 254 00:12:10,140 --> 00:12:15,090 vous voulez l'insérer dans une table à l'aide un insert de l'instruction SQL, mais vous 255 00:12:15,090 --> 00:12:17,680 ne pas désinfecter l'entrée à l'avance. 256 00:12:17,680 --> 00:12:21,560 Alors, évidemment, nous avons vu instructions SQL. 257 00:12:21,560 --> 00:12:22,810 Je vais ouvrir jusqu'à - 258 00:12:22,810 --> 00:12:25,590 259 00:12:25,590 --> 00:12:26,840 Allons - 260 00:12:26,840 --> 00:12:31,290 261 00:12:31,290 --> 00:12:31,960 Nous passons maintenant à l'examen - 262 00:12:31,960 --> 00:12:35,180 Je crois, qui couvrait? 263 00:12:35,180 --> 00:12:36,350 Je pense Samala fait. 264 00:12:36,350 --> 00:12:39,292 Ainsi, nous pouvons obtenir - 265 00:12:39,292 --> 00:12:41,270 >> PUBLIC: Où avez-vous trouvé ça? 266 00:12:41,270 --> 00:12:44,990 >> JASON HIRSCHHORN: Donc, si vous allez à CS50.net, quiz, puis vous pouvez 267 00:12:44,990 --> 00:12:47,170 défiler sur et obtenir des diapositives de la session d'examen. 268 00:12:47,170 --> 00:12:49,860 Mais vous pouvez voir que c'est un bon exemple d'une attaque par injection SQL. 269 00:12:49,860 --> 00:12:53,690 Nous prenons des informations de l'utilisateur et ils nous donnent une chaîne, puis nous 270 00:12:53,690 --> 00:12:55,780 vouloir insérer cette chaîne dans une base de données. 271 00:12:55,780 --> 00:12:59,780 En général, nous allons assainir que entrée, ce qui signifie qu'il ya une certaine 272 00:12:59,780 --> 00:13:01,050 caractères qui sont dangereux. 273 00:13:01,050 --> 00:13:04,000 >> Par exemple, dans la chaîne de requête, ces citations - 274 00:13:04,000 --> 00:13:05,000 guillemets simples ou doubles - 275 00:13:05,000 --> 00:13:05,620 signifier quelque chose. 276 00:13:05,620 --> 00:13:08,380 Ils signifient la fin de cette chaîne ici. 277 00:13:08,380 --> 00:13:13,090 Et donc si l'utilisateur vous donne un seul ou un guillemet, ils pourraient être 278 00:13:13,090 --> 00:13:18,970 en essayant de déclencher votre requête SQL et insérer des mauvaises choses en elle. 279 00:13:18,970 --> 00:13:23,130 Et s'ils le font, ils pourraient gagner le contrôle de votre base de données ou faire des 280 00:13:23,130 --> 00:13:24,760 choses que vous ne voulez pas qu'ils fassent. 281 00:13:24,760 --> 00:13:28,300 >> C'est pour cela que chaque fois que nous prenons SQL requêtes, nous désinfecter l'entrée avant 282 00:13:28,300 --> 00:13:31,090 mettre dans la base de données, qui signifie que nous échappons à ces personnages. 283 00:13:31,090 --> 00:13:32,590 Nous en parlerons dans un instant. 284 00:13:32,590 --> 00:13:35,820 Mais bref, une injection SQL attaque est si vous ne le faites pas - 285 00:13:35,820 --> 00:13:39,760 si vous ne prenez pas soin de l'entrée ils vous ont donné avant de mettre votre 286 00:13:39,760 --> 00:13:46,830 base de données, ils peuvent, comme vous voyez en bas ici, exécuter une requête qui, en fait - 287 00:13:46,830 --> 00:13:52,470 ils ont mis dans leur code ici et cette ligne de sélection ici sélectionnera 288 00:13:52,470 --> 00:13:56,360 tout de la table indépendamment de ce que le mot de passe est donné. 289 00:13:56,360 --> 00:13:58,960 Parce que vous avez la ou 1 est égal à 1. 290 00:13:58,960 --> 00:14:02,750 >> C'est donc essentiellement, longue histoire courte, un moyen de prendre en charge la base de données. 291 00:14:02,750 --> 00:14:07,570 La question, alors, pour vous les gars, est où en p ensembles 7 avez-vous de désinfecter tous 292 00:14:07,570 --> 00:14:10,010 les entrées de vos requêtes SQL? 293 00:14:10,010 --> 00:14:11,230 Où est-ce que l'étape se produire? 294 00:14:11,230 --> 00:14:14,150 Où pouvez-vous empêcher l'injection SQL attaques de passe dans p mis 7? 295 00:14:14,150 --> 00:14:20,100 296 00:14:20,100 --> 00:14:20,490 Ouais. 297 00:14:20,490 --> 00:14:21,870 >> PUBLIC: Crypt? 298 00:14:21,870 --> 00:14:23,120 >> JASON HIRSCHHORN: Donc, il n'a pas été crypte. 299 00:14:23,120 --> 00:14:52,360 300 00:14:52,360 --> 00:14:55,380 Nous n'avons pas fait ce que vous faites pour cette problème particulier défini, mais il arrive 301 00:14:55,380 --> 00:14:58,190 dans la fonction d'interrogation. 302 00:14:58,190 --> 00:15:00,930 Nous avons écrit pour vous, et nous avons pris soin de la 303 00:15:00,930 --> 00:15:03,040 désinfection des entrées pour vous. 304 00:15:03,040 --> 00:15:07,790 Mais dans les années passées, les élèves ont eu pour taper les entrées sur leur propre. 305 00:15:07,790 --> 00:15:10,020 En p ensemble 7, beaucoup d'entre vous - 306 00:15:10,020 --> 00:15:11,270 permettez-moi de m'ouvrir un autre fichier. 307 00:15:11,270 --> 00:15:18,530 308 00:15:18,530 --> 00:15:22,590 >> Donc vous remarquerez ici beaucoup d' personnes, en problème posé 7, n'ont pas appelé 309 00:15:22,590 --> 00:15:25,240 cette fonction sur les chaînes. 310 00:15:25,240 --> 00:15:27,880 Cette fonction, htmlspecialchars, nouveau - 311 00:15:27,880 --> 00:15:31,410 cette chaîne peut avoir certaines choses que dans HTML signifie quelque chose d'autre. 312 00:15:31,410 --> 00:15:36,160 Comme un corset, un carré ou un angle support signifie quelque chose en HTML. 313 00:15:36,160 --> 00:15:38,980 >> Et si vous imprimez que sur la écran ou si vous venez de prendre cela et 314 00:15:38,980 --> 00:15:42,260 imprimer que sur votre HTML, qui pourrait faire quelque chose que vous ne vous attendez pas. 315 00:15:42,260 --> 00:15:45,180 Donc htmlspecialchars va sur tous ceux caractères qui ont spéciale 316 00:15:45,180 --> 00:15:47,030 réunion et leur échappe. 317 00:15:47,030 --> 00:15:51,450 Donc, il est imprimé comme le texte vous voulez voir, plutôt que 318 00:15:51,450 --> 00:15:53,280 vissage de votre HTML. 319 00:15:53,280 --> 00:15:55,040 Nous avons appelé cette fonction dans l'en-tête. 320 00:15:55,040 --> 00:15:57,390 Et beaucoup de gens a oublié de appeler cette fonction dans le 321 00:15:57,390 --> 00:15:58,700 code que vous écrivez. 322 00:15:58,700 --> 00:16:03,970 >> Ainsi, par exemple, si un nom de magasin a eu un équerre en elle et que vous avez oublié 323 00:16:03,970 --> 00:16:06,675 d'appeler cette fonction, cet angle support aurait jeté de ce que 324 00:16:06,675 --> 00:16:08,250 votre code HTML ressemblait. 325 00:16:08,250 --> 00:16:11,810 Mais l'appel de cette fonction échapper que si elle imprime effectivement comme un 326 00:16:11,810 --> 00:16:15,870 équerre et ne jetez pas votre code HTML. 327 00:16:15,870 --> 00:16:18,760 >> La même raison que nous avons vu, parfois, barres obliques avant guillemets dans un 328 00:16:18,760 --> 00:16:22,310 ligne printf parce que nous ne voulons pas que le guillemets en bas de la chaîne. 329 00:16:22,310 --> 00:16:24,050 Nous voulons les imprimer Départ à l'écran. 330 00:16:24,050 --> 00:16:26,920 Donc, tout cela est la même idée. 331 00:16:26,920 --> 00:16:28,260 Est-ce que cela répond à votre question? 332 00:16:28,260 --> 00:16:31,529 333 00:16:31,529 --> 00:16:33,870 >> PUBLIC: En quelque sorte. 334 00:16:33,870 --> 00:16:35,300 >> JASON HIRSCHHORN: Avez-vous avoir un suivi? 335 00:16:35,300 --> 00:16:43,252 >> PUBLIC: Je suppose que l'injection SQL attaque a à voir avec ça? 336 00:16:43,252 --> 00:16:45,720 Je ne comprends pas comment les deux sont liés. 337 00:16:45,720 --> 00:16:47,610 Pourquoi voudriez-vous faire les specialChars? 338 00:16:47,610 --> 00:16:51,200 >> JASON HIRSCHHORN: OK, donc le SQL attaque par injection, c'est quand vous injectez 339 00:16:51,200 --> 00:16:59,180 certaines chaînes malveillants dans quelqu'un d' programme, et ils ont juste prennent et fonctionnent 340 00:16:59,180 --> 00:17:01,230 la requête SQL avec une chaîne vous leur avez donné. 341 00:17:01,230 --> 00:17:04,220 Comme vous pouvez le voir ici, que pourrait être problématique. 342 00:17:04,220 --> 00:17:07,480 Ainsi, la manière vous empêchez contre qui est vous prenez leur chaîne qu'ils donnent 343 00:17:07,480 --> 00:17:09,220 vous - si cette chaîne ici - 344 00:17:09,220 --> 00:17:11,240 et vous désinfecter. 345 00:17:11,240 --> 00:17:14,305 Vous échappez toutes les choses qui sont potentiellement problématique. 346 00:17:14,305 --> 00:17:18,626 Donc, vous ne les interprétez pas comme quelque chose cela signifie quelque chose. 347 00:17:18,626 --> 00:17:23,390 >> Et un exemple de cela avec HTML est cette fonction. 348 00:17:23,390 --> 00:17:26,060 Donc, c'est la même idée ici. 349 00:17:26,060 --> 00:17:27,579 Et je viens de vous montrer d'autres exemples de situations où vous avez 350 00:17:27,579 --> 00:17:29,030 vu cette idée avant. 351 00:17:29,030 --> 00:17:33,913 D'échapper à l'entrée d'utilisateur avant l'impression il avec un écran ou de le mettre 352 00:17:33,913 --> 00:17:36,782 l'intérieur d'une instruction SQL. 353 00:17:36,782 --> 00:17:40,790 >> PUBLIC: Donc dans ce cas, l'utilisateur est de jouer avec le programmeur. 354 00:17:40,790 --> 00:17:41,240 >> JASON HIRSCHHORN: Oui. 355 00:17:41,240 --> 00:17:44,800 Avec toutes ces attaques de sécurité, c'est toujours généralement à l'utilisateur, ou 356 00:17:44,800 --> 00:17:47,470 quelqu'un, essaie de gâchis avec vous, le programmeur. 357 00:17:47,470 --> 00:17:51,038 Et ce sont des moyens que vous pouvez prévenir contre eux. 358 00:17:51,038 --> 00:17:54,280 >> PUBLIC: J'ai donc une question sur les fonctions de hachage. 359 00:17:54,280 --> 00:17:59,340 Dans Quiz 1 à partir de 2011, il ya deux questions sur hash à sens unique. 360 00:17:59,340 --> 00:18:02,540 Et je me demandais juste ce que cela signifiait. 361 00:18:02,540 --> 00:18:03,660 >> JASON HIRSCHHORN: OK, qui quiz? 362 00:18:03,660 --> 00:18:03,770 2011? 363 00:18:03,770 --> 00:18:04,705 >> PUBLIC: Ouais. 364 00:18:04,705 --> 00:18:06,720 >> PUBLIC: Quiz 1? 365 00:18:06,720 --> 00:18:08,620 >> PUBLIC: [inaudible]. 366 00:18:08,620 --> 00:18:09,940 C'est comme le hachage de mot de passe. 367 00:18:09,940 --> 00:18:12,220 Ce n'est pas de mettre les choses - 368 00:18:12,220 --> 00:18:13,440 >> JASON HIRSCHHORN: Qu'est-ce que la page était-il? 369 00:18:13,440 --> 00:18:15,720 >> PUBLIC: Je pense que c'était 9 ou 10, ou les deux. 370 00:18:15,720 --> 00:18:16,720 >> JASON HIRSCHHORN: Très bien, aller de l'avant, Curt. 371 00:18:16,720 --> 00:18:17,780 Vous pouvez répondre parce que nous regardons. 372 00:18:17,780 --> 00:18:19,540 >> PUBLIC: Je pense qu'il parle sur le hachage d'un mot de passe. 373 00:18:19,540 --> 00:18:24,430 Comme, quand quelqu'un entre dans un mot de passe, vous transformer en une chose cryptée. 374 00:18:24,430 --> 00:18:27,395 C'est le hachage du mot de passe, qui est différente d'une fonction de hachage qui 375 00:18:27,395 --> 00:18:30,900 met quelque chose dans une table de hachage. 376 00:18:30,900 --> 00:18:31,610 >> JASON HIRSCHHORN: Voyons voir. 377 00:18:31,610 --> 00:18:33,930 Laisse-moi ôter jusqu'à ce qu'ils donner comme réponse. 378 00:18:33,930 --> 00:18:35,440 Et puis nous allons marcher à travers elle. 379 00:18:35,440 --> 00:18:42,430 380 00:18:42,430 --> 00:18:45,400 >> Alors Curt a donné un excellent exemple d'un hachage unidirectionnel. 381 00:18:45,400 --> 00:18:48,800 Lorsque nous avons vu cela avant, nous prendre le mot de passe et tournez - 382 00:18:48,800 --> 00:18:53,040 rappelez-vous, en p ensemble 7, quelqu'un pourrait avoir un mot de passe qui est juste un mot de passe, 383 00:18:53,040 --> 00:18:55,300 mais alors il se cryptées en certains vraiment chose de long. 384 00:18:55,300 --> 00:18:59,830 Le hachage unidirectionnel signifie qu'il est très facile pour passer d'un mode à l'autre, mais 385 00:18:59,830 --> 00:19:02,800 il est très difficile d'aller de l'autre le chemin du retour. 386 00:19:02,800 --> 00:19:05,230 >> Et si vous le savez, quand vous étiez vérifiez les mots de passe des personnes en difficulté 387 00:19:05,230 --> 00:19:08,820 set 7, vous prendriez leur - 388 00:19:08,820 --> 00:19:11,953 Ainsi, par exemple, disent qu'ils voulaient changer leur mot de passe, vous leur demandez 389 00:19:11,953 --> 00:19:13,130 pour leur ancien mot de passe. 390 00:19:13,130 --> 00:19:13,910 Vous avez pris de leur ancien mot de passe. 391 00:19:13,910 --> 00:19:15,150 Vous avez chiffré il. 392 00:19:15,150 --> 00:19:19,240 Et puis comparé les deux chiffrages au lieu de l'original unencrypting 393 00:19:19,240 --> 00:19:20,780 un, parce que c'est vraiment difficile de passer par là. 394 00:19:20,780 --> 00:19:27,070 395 00:19:27,070 --> 00:19:28,035 Ouais. 396 00:19:28,035 --> 00:19:31,430 >> PUBLIC: Comment en profondeur va de notre compréhension de TelNet à être? 397 00:19:31,430 --> 00:19:34,870 398 00:19:34,870 --> 00:19:41,360 >> JASON HIRSCHHORN: Si il a été mentionné brièvement conférence, une brève 399 00:19:41,360 --> 00:19:43,260 compréhension. 400 00:19:43,260 --> 00:19:45,585 Encore une fois, revenir à la réponse à la question de Avi - 401 00:19:45,585 --> 00:19:48,260 402 00:19:48,260 --> 00:19:50,430 plus les choses se présentent, le plus probable il est vous devez être super 403 00:19:50,430 --> 00:19:51,530 familier avec eux. 404 00:19:51,530 --> 00:19:54,730 Si ils ont seulement sont en cours, c'est juste un endroit. 405 00:19:54,730 --> 00:19:57,180 Mais si ils viennent en cours, section, et un problème réglé, alors vous 406 00:19:57,180 --> 00:19:58,710 ont probablement besoin d'être super familier avec eux. 407 00:19:58,710 --> 00:20:01,320 408 00:20:01,320 --> 00:20:03,960 >> J'ai donc eu une question de tout à l'heure - 409 00:20:03,960 --> 00:20:06,950 c'est a l'automne 2010 - 410 00:20:06,950 --> 00:20:08,520 Quiz 1, nous allons tirer vers le haut - 411 00:20:08,520 --> 00:20:17,390 412 00:20:17,390 --> 00:20:21,790 cette question sur les piles et les files d'attente, que nous avons fait passer un peu juste de temps 413 00:20:21,790 --> 00:20:23,720 parler en conférence, même même si nous n'avons pas vraiment 414 00:20:23,720 --> 00:20:26,020 jamais frapper à la section. 415 00:20:26,020 --> 00:20:33,190 Donc, cette question est de vous donner une série de commandes et vous demander ce que 416 00:20:33,190 --> 00:20:35,560 est imprimé dans ce cas. 417 00:20:35,560 --> 00:20:40,180 Donc, c'est une question tout à fait raisonnable qui pourrait être demandé de vous 418 00:20:40,180 --> 00:20:43,090 les gars, et puis vous les gars devraient être en mesure d'y répondre. 419 00:20:43,090 --> 00:20:50,020 >> Alors pourquoi ne pas vous regardez pour 30 secondes, et puis si quelqu'un veut 420 00:20:50,020 --> 00:20:52,140 proposer des réponses à moi, et puis nous marchons à travers elle. 421 00:20:52,140 --> 00:21:22,590 422 00:21:22,590 --> 00:21:24,235 Tout droit qui a une réponse à la question 27? 423 00:21:24,235 --> 00:21:31,740 424 00:21:31,740 --> 00:21:33,860 Ouais. 425 00:21:33,860 --> 00:21:40,250 >> PUBLIC: Est-il 1, 2, 3, 3? 426 00:21:40,250 --> 00:21:40,780 >> JASON HIRSCHHORN: C'est exact. 427 00:21:40,780 --> 00:21:42,570 27 vaut 1, 2, 3, 3. 428 00:21:42,570 --> 00:21:44,510 Alors regardons comment nous sommes arrivés que. 429 00:21:44,510 --> 00:21:48,930 >> Tout d'abord, nous disons, si s est une file d'attente, ce qui est imprimé? 430 00:21:48,930 --> 00:21:53,360 Alors q est premier entré, premier sorti. 431 00:21:53,360 --> 00:21:54,680 Nous avons déjà vu cela. 432 00:21:54,680 --> 00:21:56,820 Nous avons vu l'image du peuple d'attente à l'Apple 433 00:21:56,820 --> 00:21:58,400 Store pour acheter certains produits. 434 00:21:58,400 --> 00:22:00,900 Les premières personnes sont les premières personnes sur. 435 00:22:00,900 --> 00:22:02,940 Les premières choses à une file d'attente sont les premières choses. 436 00:22:02,940 --> 00:22:08,320 >> Donc, si nous poussons quelque chose dans une file d'attente, vous appuyez sur le 1, puis nous sautons le 1. 437 00:22:08,320 --> 00:22:09,630 Pop signifie simplement sortir. 438 00:22:09,630 --> 00:22:11,080 Dans ce cas, il suffit de prendre quelque chose. 439 00:22:11,080 --> 00:22:12,910 Nous prenons la première chose, c'est un 1. 440 00:22:12,910 --> 00:22:15,200 Nous allons donc mettre les choses nous imprimer vers le bas ici. 441 00:22:15,200 --> 00:22:18,110 Ce n'est plus dans notre file d'attente. 442 00:22:18,110 --> 00:22:23,500 >> Ensuite, on pousse sur un 2 et 3, et nous pop off la première chose. 443 00:22:23,500 --> 00:22:25,030 Encore une fois, parce que c'est une file d'attente. 444 00:22:25,030 --> 00:22:33,320 Nous obtenons donc un 2, puis nous avons mis sur un autre 3 et appeler à nouveau pop. 445 00:22:33,320 --> 00:22:34,980 Notre 3 est premier. 446 00:22:34,980 --> 00:22:40,940 >> Et puis nous avons eu tout un tas de d'autres choses et appel local. 447 00:22:40,940 --> 00:22:43,740 Mais encore une fois, puisqu'il s'agit d'une file d'attente, premier entré, premier sorti. 448 00:22:43,740 --> 00:22:45,980 Nous prenons la première chose qui n'a jamais été mis po 449 00:22:45,980 --> 00:22:47,100 C'est notre 3. 450 00:22:47,100 --> 00:22:50,060 Et, dans ce cas, nous ne nous inquiétons pas sur toutes ces autres choses. 451 00:22:50,060 --> 00:22:51,310 Donc, c'est s'il s'agit d'une file d'attente. 452 00:22:51,310 --> 00:22:58,917 453 00:22:58,917 --> 00:23:00,167 Une question sur une file d'attente? 454 00:23:00,167 --> 00:23:03,290 455 00:23:03,290 --> 00:23:04,040 >> Une pile est différent. 456 00:23:04,040 --> 00:23:07,782 Quelle est l'acronyme nous avons pour comprendre une pile? 457 00:23:07,782 --> 00:23:08,750 >> PUBLIC: dernier entré, premier sorti. 458 00:23:08,750 --> 00:23:10,130 >> JASON HIRSCHHORN: LIFO, je pense. 459 00:23:10,130 --> 00:23:11,830 Dernier entré, premier sorti. 460 00:23:11,830 --> 00:23:15,630 Donc, nous avons vu un exemple de pile de plateaux dans une salle à manger. 461 00:23:15,630 --> 00:23:17,590 Quel que soit le plateau est au-dessus est ramassé. 462 00:23:17,590 --> 00:23:19,550 Et puis si nouveaux plateaux sont , ils se mettent sur le dessus. 463 00:23:19,550 --> 00:23:21,070 Et puis tout ce qui est sur Top Obtient ramassé. 464 00:23:21,070 --> 00:23:24,010 Donc, ces plateaux sur la puissance en bas y rester pendant un certain temps. 465 00:23:24,010 --> 00:23:28,480 >> Dans ce cas, encore une fois, nous allons dessiner cela. 466 00:23:28,480 --> 00:23:31,770 Nous poussons un, si un est en première ligne. 467 00:23:31,770 --> 00:23:32,790 Et nous pop quelque chose sur. 468 00:23:32,790 --> 00:23:37,280 Et il n'y a qu'une seule chose là-dedans, si nous passons une ici. 469 00:23:37,280 --> 00:23:41,940 Puis nous avons mis sur 2 et 3 et nous pop quelque chose sur. 470 00:23:41,940 --> 00:23:43,650 >> Mais encore une fois, puisqu'il s'agit d'une file d'attente - 471 00:23:43,650 --> 00:23:45,010 ou c'est une pile, plutôt - 472 00:23:45,010 --> 00:23:47,480 nous prenons tout ce qui était en dernier. 473 00:23:47,480 --> 00:23:49,300 Tout ce qui est en dernière vient en premier. 474 00:23:49,300 --> 00:23:50,890 Et 3 est en dernier. 475 00:23:50,890 --> 00:23:56,110 Nous avons donc le 3 là-bas, alors nous avons mis sur un autre 3 et nous 476 00:23:56,110 --> 00:23:57,360 pop à nouveau quelque chose. 477 00:23:57,360 --> 00:23:59,990 478 00:23:59,990 --> 00:24:05,710 Enfin, on met sur la 4, 5, 6, et 7, et ici nous pop. 479 00:24:05,710 --> 00:24:09,060 Et parce que c'est une pile, nous prenons tout ce qui était mis en dernier et à écrire 480 00:24:09,060 --> 00:24:10,240 qui ici-bas. 481 00:24:10,240 --> 00:24:14,256 Donc nous nous retrouvons avec 1, 3, 3, 7. 482 00:24:14,256 --> 00:24:17,380 483 00:24:17,380 --> 00:24:21,380 Quelqu'un at-il des questions sur piles ou des files d'attente, ou cet exemple? 484 00:24:21,380 --> 00:24:27,540 485 00:24:27,540 --> 00:24:29,030 >> OK. 486 00:24:29,030 --> 00:24:30,440 Revenons à la liste des sujets. 487 00:24:30,440 --> 00:24:32,510 Pas de cette façon, de cette façon. 488 00:24:32,510 --> 00:24:34,280 Quelles autres questions que les gens ont? 489 00:24:34,280 --> 00:24:37,550 490 00:24:37,550 --> 00:24:39,480 >> PUBLIC: Je ne sais pas à quel point c'est, mais j'ai été confondu par la 491 00:24:39,480 --> 00:24:43,550 différence entre différents types de langues comme le balisage, compilées, 492 00:24:43,550 --> 00:24:45,980 interprété. 493 00:24:45,980 --> 00:24:46,750 >> JASON HIRSCHHORN: C'est une bonne question. 494 00:24:46,750 --> 00:24:50,500 Je pense que c'est assez important, donc nous allons passer rapidement. 495 00:24:50,500 --> 00:24:56,850 Les grandes langues que nous avons vu jusqu'à présent sont C, PHP et JavaScript, en termes 496 00:24:56,850 --> 00:24:58,330 de langages de programmation. 497 00:24:58,330 --> 00:25:01,060 HTML, comme vous l'avez dit, n'est pas un langage de programmation. 498 00:25:01,060 --> 00:25:02,260 C'est un langage de balisage. 499 00:25:02,260 --> 00:25:05,700 Et puis nous avons CSS, qui est aussi pas un langage de programmation. 500 00:25:05,700 --> 00:25:10,330 >> Nous avons également vu SQL, ce qui n'est pas un langage de programmation ou l'autre. 501 00:25:10,330 --> 00:25:15,695 Donc SQL vous permet d'écrire requêtes pour une base de données. 502 00:25:15,695 --> 00:25:18,370 503 00:25:18,370 --> 00:25:20,140 HTML est un langage de balisage. 504 00:25:20,140 --> 00:25:22,570 Il définit la façon dont les choses sont structurées. 505 00:25:22,570 --> 00:25:26,250 Et CSS vous permet de coiffer les choses. 506 00:25:26,250 --> 00:25:28,520 C'est probablement la mesure de ce que vous besoin de savoir à propos de ces trois. 507 00:25:28,520 --> 00:25:32,920 Mais il est plus intéressant de chiffre les différences entre C, PHP, 508 00:25:32,920 --> 00:25:34,320 et JavaScript. 509 00:25:34,320 --> 00:25:37,900 >> Donc l'une des plus grandes différences, comme vous l'avez dit, est de savoir comment ils sont 510 00:25:37,900 --> 00:25:40,550 compilée, ou quel que soit est l'équivalent. 511 00:25:40,550 --> 00:25:42,580 Donc C est compilé. 512 00:25:42,580 --> 00:25:43,950 Nous serions toujours exécuter un compilateur. 513 00:25:43,950 --> 00:25:51,100 Et puis où sont vos erreurs lorsque vous exécutez le compilateur C? 514 00:25:51,100 --> 00:25:55,740 Où est-ce que vous le montrer erreurs dans votre code? 515 00:25:55,740 --> 00:25:57,860 Comment savez-vous qu'il ya une erreur dans votre code en C? 516 00:25:57,860 --> 00:25:58,770 >> PUBLIC: Il vous montre dans le terminal. 517 00:25:58,770 --> 00:26:00,410 >> JASON HIRSCHHORN: Il vous montre dans le terminal vous compilez. 518 00:26:00,410 --> 00:26:02,620 Et s'il ya des erreurs, il ne sera pas réellement le compiler. 519 00:26:02,620 --> 00:26:04,830 Donc, vous savez qu'il ya des erreurs à droite loin, à l'avance, avant de 520 00:26:04,830 --> 00:26:06,050 même exécuter votre code. 521 00:26:06,050 --> 00:26:10,010 >> Bien sûr, vous pouvez exécuter votre code et obtenir une erreur de segmentation, mais c'était 522 00:26:10,010 --> 00:26:12,350 probablement parce que vous avez fait une certaine logique bêtise. 523 00:26:12,350 --> 00:26:15,770 Mais votre code avec technique tous corrects et pourrait fonctionner. 524 00:26:15,770 --> 00:26:18,210 Donc le code C est compilée à l'avance. 525 00:26:18,210 --> 00:26:19,760 Qu'en est-il du code PHP? 526 00:26:19,760 --> 00:26:21,430 Où étaient les erreurs dans votre code PHP? 527 00:26:21,430 --> 00:26:23,170 Comment avez-vous su que vous aviez des erreurs dans votre code PHP? 528 00:26:23,170 --> 00:26:26,038 529 00:26:26,038 --> 00:26:28,430 >> PUBLIC: Exécutez temps? 530 00:26:28,430 --> 00:26:31,230 >> JASON HIRSCHHORN: Oui, lorsque vous irait à elle, vous devez exécuter la 531 00:26:31,230 --> 00:26:32,180 code PHP dans le dos. 532 00:26:32,180 --> 00:26:33,300 Et puis vous afficher un écran. 533 00:26:33,300 --> 00:26:35,260 Vous pourriez voir des choses sur le dessus, mais vous verriez alors, comme certains 534 00:26:35,260 --> 00:26:36,710 orange, table de laide. 535 00:26:36,710 --> 00:26:41,420 Et il vous donnera un numéro de ligne et par exemple, blah, blah, blah, ce genre de choses 536 00:26:41,420 --> 00:26:42,400 ne fonctionne pas. 537 00:26:42,400 --> 00:26:48,730 >> Donc, PHP est interprété ligne par ligne et exécuté sur le serveur. 538 00:26:48,730 --> 00:26:52,380 Et le résultat est envoyé à vous. 539 00:26:52,380 --> 00:26:53,340 Grand. 540 00:26:53,340 --> 00:26:56,410 Exécuté dans la ligne de serveur en ligne puis envoyé à vous. 541 00:26:56,410 --> 00:26:59,010 Et si il ya une erreur, il va envoyer vous l'erreur, mais vous pourriez avoir 542 00:26:59,010 --> 00:27:00,400 obtenu des choses à l'avance. 543 00:27:00,400 --> 00:27:02,730 Donc, certaines d'entre elles pourraient avoir travaillé, mais plus tard, des trucs pourrait ne pas avoir 544 00:27:02,730 --> 00:27:03,890 pas fonctionné. 545 00:27:03,890 --> 00:27:04,600 >> Qu'en JavaScript? 546 00:27:04,600 --> 00:27:06,065 Où avez-vous vu des erreurs JavaScript? 547 00:27:06,065 --> 00:27:10,860 548 00:27:10,860 --> 00:27:12,870 En p set 8, quand vous avez obtenu une erreur, comment saviez-vous? 549 00:27:12,870 --> 00:27:13,710 Où serait-il apparaître? 550 00:27:13,710 --> 00:27:15,900 >> PUBLIC: Dans la console, en bas. 551 00:27:15,900 --> 00:27:17,650 >> JASON HIRSCHHORN: Dans le la console, sur le fond. 552 00:27:17,650 --> 00:27:20,160 Il serait également vous donner l' numéro de la ligne, et il serait 553 00:27:20,160 --> 00:27:21,330 apparaître sur le fond. 554 00:27:21,330 --> 00:27:24,320 Et JavaScript n'a pas été exécuté sur le serveur. 555 00:27:24,320 --> 00:27:27,800 JavaScript a été envoyé à votre ordinateur, et puis quand il était temps de lancer le 556 00:27:27,800 --> 00:27:31,670 JavaScript, le JavaScript était exécuter ligne par ligne sur le 557 00:27:31,670 --> 00:27:33,410 client, de votre côté. 558 00:27:33,410 --> 00:27:35,570 Il n'est pas le serveur, du côté du client. 559 00:27:35,570 --> 00:27:37,690 >> Et de même, il était exécuter ligne par ligne. 560 00:27:37,690 --> 00:27:40,630 Et puis quand vous obtenez une erreur, il apparaître au fond. 561 00:27:40,630 --> 00:27:44,580 De même pour PHP, certaines d'entre elles pourraient exécutez, et vous pourriez obtenir un 562 00:27:44,580 --> 00:27:46,310 erreur plus tard. 563 00:27:46,310 --> 00:27:49,910 >> En outre, un peu de PHP contrairement, si vous avez une erreur JavaScript - 564 00:27:49,910 --> 00:27:52,780 dites que vous ne l'avez pas le droit code pour une boîte d'alerte - 565 00:27:52,780 --> 00:27:55,800 vous pouvez conserver le fonctionnement de votre programme. 566 00:27:55,800 --> 00:27:58,180 Le message d'alerte ne fonctionnera pas, mais votre programme serait bien. 567 00:27:58,180 --> 00:28:00,490 Juste peut-être cette fonction serait un échec. 568 00:28:00,490 --> 00:28:02,610 >> Donc, il ya une partie de la plus grande différence en termes de la façon dont ces 569 00:28:02,610 --> 00:28:09,230 langues, ou la manière dont le code de programmation vous écrire réellement évalué. 570 00:28:09,230 --> 00:28:11,970 Il ya aussi d'autres différences dans termes de - la plus grande différence 571 00:28:11,970 --> 00:28:15,590 nous avons vu en termes de variables dans les différentes langues. 572 00:28:15,590 --> 00:28:19,660 Alors quelqu'un peut-il me donner une différence entre les variables 573 00:28:19,660 --> 00:28:20,910 dans les trois langues? 574 00:28:20,910 --> 00:28:24,802 575 00:28:24,802 --> 00:28:25,770 Oui. 576 00:28:25,770 --> 00:28:27,130 >> PUBLIC: En C, ils sont de type strict. 577 00:28:27,130 --> 00:28:28,550 Dans les deux autres, ils sont faiblement typé. 578 00:28:28,550 --> 00:28:30,040 >> JASON HIRSCHHORN: Et qu'est-ce que cela signifie? 579 00:28:30,040 --> 00:28:31,775 >> PUBLIC: C'est en C, vous devez déclarer le type de la variable lorsque 580 00:28:31,775 --> 00:28:36,140 vous déclarez la variable, comme interbool ou char. 581 00:28:36,140 --> 00:28:36,990 >> JASON HIRSCHHORN: Excellent. 582 00:28:36,990 --> 00:28:39,780 En C, nous avons toujours eu à mettre un type d'une variable. 583 00:28:39,780 --> 00:28:41,360 Et nous ne pouvions pas vraiment types de piles. 584 00:28:41,360 --> 00:28:45,750 Vous ne pourriez pas faire un nombre entier en plus d'une chaîne. 585 00:28:45,750 --> 00:28:48,760 Mais comme nous l'avons vu dans ces autres langues, vous avez réellement peut mélanger les types, 586 00:28:48,760 --> 00:28:51,230 et vous n'avez jamais vraiment à donner quelque chose d'un type jamais. 587 00:28:51,230 --> 00:28:53,905 >> Alors, comment savons-nous les choses sont des variables en PHP et JavaScript? 588 00:28:53,905 --> 00:28:57,120 589 00:28:57,120 --> 00:28:58,685 >> PUBLIC: En PHP, ils commencent avec un signe de dollar. 590 00:28:58,685 --> 00:29:00,810 En JavaScript, lorsque vous déclarez eux, vous devez avoir un bar. 591 00:29:00,810 --> 00:29:01,760 >> JASON HIRSCHHORN: Droit. 592 00:29:01,760 --> 00:29:03,535 Donc, en PHP, ils commencent avec un signe de dollar. 593 00:29:03,535 --> 00:29:06,300 En JavaScript, ils doivent avoir un bar, bien que parfois ils n'ont pas vraiment 594 00:29:06,300 --> 00:29:07,520 avoir barre. 595 00:29:07,520 --> 00:29:09,240 Mais c'est correct. 596 00:29:09,240 --> 00:29:13,300 >> C'est donc une grande différence entre les variables. 597 00:29:13,300 --> 00:29:16,140 Je pense que ce sont probablement, au large de la dessus de ma tête, les deux plus grands 598 00:29:16,140 --> 00:29:19,250 les différences entre ceux-ci trois langues. 599 00:29:19,250 --> 00:29:20,594 Mais, ouais. 600 00:29:20,594 --> 00:29:24,720 >> PUBLIC: Et la portée des variables C est restreinte aux accolades, 601 00:29:24,720 --> 00:29:27,760 où les autres, c'est juste comme, il meurt si elle est en fonction seulement, 602 00:29:27,760 --> 00:29:29,650 mais sinon, C'est - 603 00:29:29,650 --> 00:29:30,240 >> JASON HIRSCHHORN: Droit. 604 00:29:30,240 --> 00:29:36,780 Donc, la portée est légèrement différente en C. Comme Vous souvenez-vous, les accolades définissent 605 00:29:36,780 --> 00:29:37,710 la portée des variables. 606 00:29:37,710 --> 00:29:41,680 Donc, si elle a été définie à l'intérieur d'un si état, qui est à l'intérieur d'une boucle for, 607 00:29:41,680 --> 00:29:44,290 la variable n'existe que là. 608 00:29:44,290 --> 00:29:47,760 >> En JavaScript, si une variable est définie l'intérieur d'un état, si - 609 00:29:47,760 --> 00:29:50,750 l'intérieur d'une boucle - ça existe pour cette fonction, mais il ne sera pas exister 610 00:29:50,750 --> 00:29:52,330 en dehors de cette fonction. 611 00:29:52,330 --> 00:29:59,250 Alors portée est un peu plus souple dans JavaScript et PHP. 612 00:29:59,250 --> 00:30:00,500 Que répondre à la question? 613 00:30:00,500 --> 00:30:03,110 614 00:30:03,110 --> 00:30:04,635 OK, d'autres questions? 615 00:30:04,635 --> 00:30:07,260 616 00:30:07,260 --> 00:30:08,865 Nous pouvons faire plus de quatre minutes des questions, 617 00:30:08,865 --> 00:30:10,740 nous sautons dans le codage. 618 00:30:10,740 --> 00:30:12,645 >> PUBLIC: Peut-on aller dans Ajax et parler de ce que c'est? 619 00:30:12,645 --> 00:30:15,670 620 00:30:15,670 --> 00:30:17,800 >> JASON HIRSCHHORN: Parlez-en à Avi après. 621 00:30:17,800 --> 00:30:19,170 Il a posé la question plus tôt. 622 00:30:19,170 --> 00:30:19,630 >> PUBLIC: Mon mauvais. 623 00:30:19,630 --> 00:30:20,880 >> JASON HIRSCHHORN: Pas de soucis. 624 00:30:20,880 --> 00:30:22,740 625 00:30:22,740 --> 00:30:24,290 >> PUBLIC: Quel est exactement JSON? 626 00:30:24,290 --> 00:30:28,360 627 00:30:28,360 --> 00:30:28,900 >> JASON HIRSCHHORN: Qu'est-ce que JSON? 628 00:30:28,900 --> 00:30:29,930 Quelle est votre question? 629 00:30:29,930 --> 00:30:31,350 >> PUBLIC: Juste très rapidement, la différence entre 630 00:30:31,350 --> 00:30:32,870 impression et l'écho en PHP. 631 00:30:32,870 --> 00:30:36,200 632 00:30:36,200 --> 00:30:38,490 >> JASON HIRSCHHORN: Pourquoi pensez-vous pas google la différence entre la copie et l'écho? 633 00:30:38,490 --> 00:30:40,670 Légère différence. 634 00:30:40,670 --> 00:30:42,020 Non pas que les grandes d'un accord. 635 00:30:42,020 --> 00:30:44,960 Mais vous devez certainement google, et cela vous donnera une bonne réponse. 636 00:30:44,960 --> 00:30:46,910 >> JSON, probablement plus d'une affaire. 637 00:30:46,910 --> 00:30:49,300 Stands pour JavaScript Object Notation. 638 00:30:49,300 --> 00:30:51,865 Et quand nous avons vu JSON utilisé? 639 00:30:51,865 --> 00:30:55,110 640 00:30:55,110 --> 00:30:55,900 Quand avez-vous vu - 641 00:30:55,900 --> 00:30:57,400 pourquoi ne savez-vous même le mot JSON? 642 00:30:57,400 --> 00:30:59,140 Quand avez-vous vu? 643 00:30:59,140 --> 00:31:02,200 >> PUBLIC: Quand nous recevions cours de la bourse pour le financement. 644 00:31:02,200 --> 00:31:02,690 >> JASON HIRSCHHORN: Donc vous avez vu quand vous receviez 645 00:31:02,690 --> 00:31:04,830 cours de la bourse pour le financement. 646 00:31:04,830 --> 00:31:07,340 Et pourquoi avez-vous vu? 647 00:31:07,340 --> 00:31:09,000 >> PUBLIC: Quand nous étions recherchons toutes les informations que 648 00:31:09,000 --> 00:31:10,400 est venu dans ce format. 649 00:31:10,400 --> 00:31:11,700 >> JASON HIRSCHHORN: Donc, vous obtiendrez - 650 00:31:11,700 --> 00:31:12,540 ouais. 651 00:31:12,540 --> 00:31:13,020 Allez-y. 652 00:31:13,020 --> 00:31:15,210 >> PUBLIC: informations [inaudible] à partir d'un objet? 653 00:31:15,210 --> 00:31:17,170 >> JASON HIRSCHHORN: deux personnes mis en place est la réponse 654 00:31:17,170 --> 00:31:18,100 nous recherchons. 655 00:31:18,100 --> 00:31:21,240 Vous souhaitez obtenir des informations de cette autre page. 656 00:31:21,240 --> 00:31:23,790 Et vous espérez que lorsque vous êtes obtenir cette information, il serait 657 00:31:23,790 --> 00:31:26,720 qui vous est présenté dans un certain type de format normalisé. 658 00:31:26,720 --> 00:31:29,530 >> Tout le monde est probablement familier avec des valeurs séparées par des virgules. 659 00:31:29,530 --> 00:31:32,970 Vous pouvez exporter une feuille de calcul Excel ou n'importe quel type de feuille de calcul en tant que liste de 660 00:31:32,970 --> 00:31:34,540 valeurs séparées par des virgules. 661 00:31:34,540 --> 00:31:37,370 Et les virgules divisent tous les différents domaines. 662 00:31:37,370 --> 00:31:38,780 JavaScript Object Notation - 663 00:31:38,780 --> 00:31:39,440 JSON - 664 00:31:39,440 --> 00:31:43,540 est un autre type de normalisé disposition des choses. 665 00:31:43,540 --> 00:31:49,010 Et c'est souvent la façon dont nous mettons information de nos requêtes Ajax. 666 00:31:49,010 --> 00:31:51,770 >> Donc dans ce cas, nous avons eu sur le site Yahoo. 667 00:31:51,770 --> 00:31:53,600 Ils reviennent de choses à nous dans un objet JSON. 668 00:31:53,600 --> 00:31:56,790 Et puis, nous le savons, parce que c'est une norme, ce que c'est 669 00:31:56,790 --> 00:31:57,250 va ressembler. 670 00:31:57,250 --> 00:32:00,760 Donc, nous pouvons parcourir le tableau qui est renvoyée à nous, le tableau de 671 00:32:00,760 --> 00:32:03,180 objets qui nous sont retournés. 672 00:32:03,180 --> 00:32:07,770 >> Nous n'avons probablement besoin de connaître les clés, mais ils vous donnent généralement 673 00:32:07,770 --> 00:32:11,370 documentation sur le site quand vous aller chercher quelque JSON 674 00:32:11,370 --> 00:32:12,170 notation pour eux. 675 00:32:12,170 --> 00:32:16,940 De même, vous pouvez JSON coder un objet. 676 00:32:16,940 --> 00:32:19,900 Donc, il ya une fonction JSON souligner encodage. 677 00:32:19,900 --> 00:32:22,970 Et si vous pouvez prendre un objet qui que vous avez créé, JSON encoder, et 678 00:32:22,970 --> 00:32:26,390 passer à quelque chose d'autre, si vous voulez. 679 00:32:26,390 --> 00:32:30,770 Et JSON décodage existe aussi pour un but similaire, ou pour 680 00:32:30,770 --> 00:32:31,780 le but opposé. 681 00:32:31,780 --> 00:32:36,570 >> PUBLIC: Avons-nous besoin de savoir coder pour les tables et les essais hachage? 682 00:32:36,570 --> 00:32:40,300 Ou devons-nous juste de comprendre comment ils sont utilisés, sur le plan conceptuel? 683 00:32:40,300 --> 00:32:44,570 >> JASON HIRSCHHORN: Alors, levez la main si vous avez une table de hachage pour p fixé 4 684 00:32:44,570 --> 00:32:46,920 avec une liste de liens. 685 00:32:46,920 --> 00:32:47,960 Ou p mis 5. 686 00:32:47,960 --> 00:32:49,060 C'était donc une grande majorité des gens. 687 00:32:49,060 --> 00:32:50,390 P a placé 5, 6, qui sait. 688 00:32:50,390 --> 00:32:51,240 Il ya longtemps. 689 00:32:51,240 --> 00:32:54,140 >> Ainsi, la grande majorité d'entre vous a fait hash tables avec des listes de liens. 690 00:32:54,140 --> 00:32:56,525 Et parce que c'est probablement le plus approche commune, et parce que nous avons passé 691 00:32:56,525 --> 00:32:59,460 beaucoup de temps à faire des listes de liens et hachage tables, vous devriez probablement être 692 00:32:59,460 --> 00:33:02,600 assez familier avec la façon de coder une table de hachage et une liste de liens. 693 00:33:02,600 --> 00:33:05,060 >> Et si vous repensez à ce problème ensemble, ce n'était pas vraiment 694 00:33:05,060 --> 00:33:06,410 aussi fort que vous attendiez. 695 00:33:06,410 --> 00:33:08,120 Et il y avait beaucoup moins Code que vous attendiez. 696 00:33:08,120 --> 00:33:11,150 697 00:33:11,150 --> 00:33:14,650 Je dirais que vous devriez savoir coder une table de hachage ou une liste de lien. 698 00:33:14,650 --> 00:33:17,010 Non pas que vous seriez demandé que, nécessairement, mais vous devriez 699 00:33:17,010 --> 00:33:19,730 certainement savoir que. 700 00:33:19,730 --> 00:33:21,860 >> Aussi, si vous regardez à travers des quiz dernières, il ya eu beaucoup de 701 00:33:21,860 --> 00:33:26,450 questions sur l'écriture des fonctions sur listes de liens ou des listes doublement chaînées. 702 00:33:26,450 --> 00:33:28,370 Cela semble venir chaque année. 703 00:33:28,370 --> 00:33:31,940 Insérer à droite sur une liste de lien, à droite Supprimer une liste de liens, insérer droit 704 00:33:31,940 --> 00:33:33,610 pour une liste doublement chaînée, et cetera. 705 00:33:33,610 --> 00:33:36,170 Donc, je me sens très à l'aise dire que vous devriez le savoir. 706 00:33:36,170 --> 00:33:40,600 >> Pour essayer, je dirais que vous devriez sait certainement comment cela fonctionne, et peut-être 707 00:33:40,600 --> 00:33:43,570 donner une pseudo pour savoir comment pour le code et de le configurer. 708 00:33:43,570 --> 00:33:45,600 Mais il ne serait pas la pire chose dans le monde si vous ne saviez pas comment 709 00:33:45,600 --> 00:33:48,870 coder en C. Il serait grand si vous savais comment coder en C, mais je pense 710 00:33:48,870 --> 00:33:52,516 probablement pseudo pour un essai serait le plus vous auriez besoin 711 00:33:52,516 --> 00:33:53,270 à savoir pour un essai. 712 00:33:53,270 --> 00:33:53,930 >> PUBLIC: crédit supplémentaire? 713 00:33:53,930 --> 00:33:58,290 >> JASON HIRSCHHORN: Et même avec, si nous aller dans les arbres binaires de recherche, vous pourriez 714 00:33:58,290 --> 00:34:02,320 besoin - et vous l'avez vu dans le passé, nous avons fait beaucoup de - vous savez comment 715 00:34:02,320 --> 00:34:03,380 arbre binaire de recherche fonctionne. 716 00:34:03,380 --> 00:34:07,150 Vous devriez être en mesure de en créer un en pseudo-code. 717 00:34:07,150 --> 00:34:10,510 Mais parce que la grande majorité des gens ne pas le faire sur le problème 718 00:34:10,510 --> 00:34:13,880 ensemble, je dirais que c'est probablement moins important que vous sachiez comment coder 719 00:34:13,880 --> 00:34:17,380 et mettre en place un arbre comme ça. 720 00:34:17,380 --> 00:34:19,679 >> D'autres questions? 721 00:34:19,679 --> 00:34:23,234 En outre, nous pouvons leur demander tout au long de comme nous passons par quelques problèmes. 722 00:34:23,234 --> 00:34:27,170 OK, nous allons passer à autre chose. 723 00:34:27,170 --> 00:34:28,230 Passer cette diapositive pour le moment. 724 00:34:28,230 --> 00:34:32,449 >> Parlant d'arbres, c'est la première Ma question pour vous les gars. 725 00:34:32,449 --> 00:34:34,270 Parce que c'est un problème. 726 00:34:34,270 --> 00:34:37,380 Je dirais qu'il est très probable que vous aurez obtenir un tel problème sur votre quiz 727 00:34:37,380 --> 00:34:43,659 vous demandant de coder un certain type d'insert, supprimer, recherche, pour un type 728 00:34:43,659 --> 00:34:45,270 de la structure de données que nous avons vu. 729 00:34:45,270 --> 00:34:47,719 >> Cela revient chaque année et nous avons passé un beaucoup de temps de la deuxième moitié de cette 730 00:34:47,719 --> 00:34:50,270 semestre aller sur ces types de données. 731 00:34:50,270 --> 00:34:54,170 Donc maintenant, j'ai défini un noeud dans un arbre binaire de recherche. 732 00:34:54,170 --> 00:34:58,490 Et ce que je voudrais que vous fassiez est donnée un arbre binaire de recherche qui commence 733 00:34:58,490 --> 00:35:05,450 à ce nœud racine étoiles, compléter la mise en oeuvre de la fonction ci-dessous, 734 00:35:05,450 --> 00:35:07,430 qui se trouve être une fonction de recherche. 735 00:35:07,430 --> 00:35:09,260 Et le faire avec et sans récurrences. 736 00:35:09,260 --> 00:35:10,860 >> Donc, je veux que vous écriviez deux fonctions. 737 00:35:10,860 --> 00:35:14,310 Un faire avec récurrence, un faire sans récurrence. 738 00:35:14,310 --> 00:35:18,050 Et ne croyez pas que le racine sera non nulle. 739 00:35:18,050 --> 00:35:21,790 Nous sommes donc à la recherche de l'entier i dans l'arbre à partir de la racine, et nous avons besoin 740 00:35:21,790 --> 00:35:25,280 d'écrire ce récursive et de façon itérative. 741 00:35:25,280 --> 00:35:26,300 Ouais. 742 00:35:26,300 --> 00:35:29,730 >> PUBLIC: Donc, vous voulez nous retourner vrai si nous le trouvons, et faux si nous 743 00:35:29,730 --> 00:35:30,480 ne trouve pas. 744 00:35:30,480 --> 00:35:32,160 >> JASON HIRSCHHORN: Comment saviez-vous? 745 00:35:32,160 --> 00:35:33,100 Comment saviez-vous que? 746 00:35:33,100 --> 00:35:36,500 >> PUBLIC: je demandais d'abord, mais j'étais en supposant, parce qu'il dit bool à 747 00:35:36,500 --> 00:35:37,490 le début de la fonction. 748 00:35:37,490 --> 00:35:37,880 >> JASON HIRSCHHORN: Droit. 749 00:35:37,880 --> 00:35:41,020 Il dit bool, donc je n'ai pas même besoin d' vous dire ce que j'attends de revenir 750 00:35:41,020 --> 00:35:41,350 parce qu'il dit là. 751 00:35:41,350 --> 00:35:42,280 Mais c'est vrai. 752 00:35:42,280 --> 00:35:43,510 Retour, vrai ou faux. 753 00:35:43,510 --> 00:35:47,630 >> Alors avant de commencer, je vous recommande, si vous n'êtes pas familier avec 754 00:35:47,630 --> 00:35:51,300 arbres binaires de recherche, en tirant rapidement une photo d'elle pour obtenir votre 755 00:35:51,300 --> 00:35:51,750 compréhension, à droite. 756 00:35:51,750 --> 00:35:54,720 Ce sera également vous aider lors de l'écriture votre code et vérifier. 757 00:35:54,720 --> 00:35:57,830 Encore une fois, vous n'avez pas non plus que beaucoup temps sur le quiz pour faire toutes les choses 758 00:35:57,830 --> 00:35:59,030 que nous vous demandons de faire. 759 00:35:59,030 --> 00:36:02,350 Ainsi l'écriture de code pseudo est très utile. 760 00:36:02,350 --> 00:36:05,310 >> Et nous donnons généralement environ - 761 00:36:05,310 --> 00:36:06,820 si le pseudo-code est parfaitement correcte, c'est 762 00:36:06,820 --> 00:36:08,910 généralement de 50% sur une question. 763 00:36:08,910 --> 00:36:11,410 Donc ce n'est pas une règle absolue, mais si vous écrivez simplement pseudo et c'est 764 00:36:11,410 --> 00:36:13,460 correcte, il est généralement de 50%. 765 00:36:13,460 --> 00:36:14,970 Donc, je recommande toujours - 766 00:36:14,970 --> 00:36:16,870 si vous êtes pressé par le temps, ou même si vous essayez simplement de le comprendre - 767 00:36:16,870 --> 00:36:18,290 en commençant par le pseudo-code. 768 00:36:18,290 --> 00:36:24,840 Et enfin, si vous pouvez écrire ce tout en C, ce serait fantastique. 769 00:36:24,840 --> 00:36:29,010 >> Alors disons prendre trois minutes à travailler sur ce programme. 770 00:36:29,010 --> 00:36:33,120 Et puis nous allons écrire pseudo pour une seule fois, puis 771 00:36:33,120 --> 00:36:35,455 nous allons coder de manière récursive puis de manière itérative. 772 00:36:35,455 --> 00:37:28,720 773 00:37:28,720 --> 00:37:30,760 >> Si vous avez des questions, n'hésitez pas sans lever la main. 774 00:37:30,760 --> 00:37:34,270 Heureux de se promener et d'y répondre avant de commencer en tant que groupe. 775 00:37:34,270 --> 00:39:22,600 776 00:39:22,600 --> 00:39:27,200 >> Reprenons, et nous allons Pseudocode la version récursive de 777 00:39:27,200 --> 00:39:29,830 cela, et puis nous allons coder. 778 00:39:29,830 --> 00:39:33,380 Ainsi, une fonction récursive a besoin de deux choses. 779 00:39:33,380 --> 00:39:35,960 C'est peut-être une question qui vous pourriez être invité. 780 00:39:35,960 --> 00:39:37,950 A besoin de deux choses. 781 00:39:37,950 --> 00:39:40,610 Qui peut lever la main et me dire ce que les deux choses récursive 782 00:39:40,610 --> 00:39:43,680 fonction doit? 783 00:39:43,680 --> 00:39:45,030 Par définition, il a deux choses. 784 00:39:45,030 --> 00:39:46,280 Quels sont ces deux choses? 785 00:39:46,280 --> 00:39:48,580 786 00:39:48,580 --> 00:39:49,830 De nouvelles mains. 787 00:39:49,830 --> 00:39:55,050 788 00:39:55,050 --> 00:39:56,390 Oui, Alden. 789 00:39:56,390 --> 00:39:57,980 >> PUBLIC: Je ne sais pas exactement si cette terminologie, mais - 790 00:39:57,980 --> 00:39:59,715 >> JASON HIRSCHHORN: Je suis heureux vous lever la main. 791 00:39:59,715 --> 00:40:03,380 >> PUBLIC: Il a besoin d'un scénario de base, et il a besoin d'une étape récursive. 792 00:40:03,380 --> 00:40:03,960 >> JASON HIRSCHHORN: Parfait. 793 00:40:03,960 --> 00:40:06,340 Il a besoin d'un scénario de base et une étape récursive. 794 00:40:06,340 --> 00:40:10,430 Alors, quel est notre scénario de base ici? 795 00:40:10,430 --> 00:40:12,950 >> PUBLIC: F racine est égale à égal nulle. 796 00:40:12,950 --> 00:40:15,110 Désolé, juste en pseudo-code, si c'est nul. 797 00:40:15,110 --> 00:40:16,360 Si la racine est nulle. 798 00:40:16,360 --> 00:40:21,900 799 00:40:21,900 --> 00:40:23,540 >> JASON HIRSCHHORN: Si la racine est nulle. 800 00:40:23,540 --> 00:40:23,850 C'est excellent. 801 00:40:23,850 --> 00:40:24,610 C'est notre scénario de base. 802 00:40:24,610 --> 00:40:25,910 C'est ce que nous allons de vérifier à chaque fois. 803 00:40:25,910 --> 00:40:28,000 Et le cas de base est la première chose que vous faites. 804 00:40:28,000 --> 00:40:29,720 Si vous frappez le cas de base, vous avez terminé. 805 00:40:29,720 --> 00:40:34,140 >> Maintenant nous avons besoin de notre appel récursif, et je être prêt à parier que nous devons un couple 806 00:40:34,140 --> 00:40:35,440 récursive appelle ici. 807 00:40:35,440 --> 00:40:39,630 Parce que c'est un arbre, et nous pourrait aller de multiples façons. 808 00:40:39,630 --> 00:40:43,190 Donc, si la racine est nulle, nous sommes bons. 809 00:40:43,190 --> 00:40:44,970 >> Que proposez-vous? 810 00:40:44,970 --> 00:40:49,640 Et maintenant, je vais commencer à crier sur vous les gars, parce que je sais que vous 811 00:40:49,640 --> 00:40:50,540 tous le savent. 812 00:40:50,540 --> 00:40:52,610 Mais Annie, ce qui devrait la ligne suivante soit? 813 00:40:52,610 --> 00:40:53,570 Et si nous l'avons trouvé? 814 00:40:53,570 --> 00:40:55,526 Que faisons-nous? 815 00:40:55,526 --> 00:40:57,300 >> PUBLIC: Si nous avons trouvé? 816 00:40:57,300 --> 00:40:59,160 >> JASON HIRSCHHORN: Ou ce devrait être que - 817 00:40:59,160 --> 00:41:02,124 me donner le pseudo de l' ligne où nous l'avons trouvé. 818 00:41:02,124 --> 00:41:04,700 >> PUBLIC: Si i est égal à la racine i? 819 00:41:04,700 --> 00:41:06,650 >> JASON HIRSCHHORN: Et alors que faisons-nous? 820 00:41:06,650 --> 00:41:07,590 >> PUBLIC: Retour vrai. 821 00:41:07,590 --> 00:41:08,530 >> JASON HIRSCHHORN: Très bien. 822 00:41:08,530 --> 00:41:16,890 Donc, si i est i - 823 00:41:16,890 --> 00:41:17,400 oh, ils sont tous les deux appelés i. 824 00:41:17,400 --> 00:41:18,470 Cela devient confus. 825 00:41:18,470 --> 00:41:23,830 Mais si i est je retourne vrai. 826 00:41:23,830 --> 00:41:25,620 C'est probablement la prochaine chose que nous devrions faire. 827 00:41:25,620 --> 00:41:27,300 Fait sens. 828 00:41:27,300 --> 00:41:30,610 >> OK, maintenant, nous n'avons pas fait notre récursive appeler encore, cependant, car un récursive 829 00:41:30,610 --> 00:41:32,300 appel rappellerait cette fonction. 830 00:41:32,300 --> 00:41:41,460 Donc, ce qui devrait la prochaine ligne de pseudo-être? 831 00:41:41,460 --> 00:41:42,730 Anna. 832 00:41:42,730 --> 00:41:43,980 >> AUDIENCE: Le côté gauche. 833 00:41:43,980 --> 00:41:47,040 834 00:41:47,040 --> 00:41:47,590 >> JASON HIRSCHHORN: Soyez précis, cependant. 835 00:41:47,590 --> 00:41:50,600 Il s'agit d'un arbre binaire de recherche, ainsi que ne contrôle le côté gauche entraîner? 836 00:41:50,600 --> 00:41:51,890 >> PUBLIC: Donc noeud - 837 00:41:51,890 --> 00:41:53,342 Je suis désolé, racine. 838 00:41:53,342 --> 00:41:55,306 Et puis, flèche gauche. 839 00:41:55,306 --> 00:41:59,234 840 00:41:59,234 --> 00:42:00,720 Noeud, noeud, désolé. 841 00:42:00,720 --> 00:42:01,978 Je ne lis pas correctement. 842 00:42:01,978 --> 00:42:05,700 C'est ce qu'on appelle nœud, non? 843 00:42:05,700 --> 00:42:09,270 >> JASON HIRSCHHORN: Il sera appelé racine dans cette fonction, mais de toute façon. 844 00:42:09,270 --> 00:42:10,925 Le côté gauche - ouais? 845 00:42:10,925 --> 00:42:13,780 >> PUBLIC: Si ce n'est pas égal i, alors nous allons appeler 846 00:42:13,780 --> 00:42:15,130 la fonction de nouveau? 847 00:42:15,130 --> 00:42:15,490 >> JASON HIRSCHHORN: C'est exact. 848 00:42:15,490 --> 00:42:17,870 Si ce n'est pas égal i, nous allons d'appeler à nouveau la fonction. 849 00:42:17,870 --> 00:42:21,435 Mais de quel côté de l'arbre allons-nous pour appeler la fonction de nouveau? 850 00:42:21,435 --> 00:42:22,685 >> PUBLIC: Sur le côté gauche. 851 00:42:22,685 --> 00:42:25,932 852 00:42:25,932 --> 00:42:27,670 >> JASON HIRSCHHORN: Nous ne sommes pas toujours va appeler la gauche, si elle 853 00:42:27,670 --> 00:42:29,190 n'égale pas. 854 00:42:29,190 --> 00:42:29,610 >> PUBLIC: Oh, désolé. 855 00:42:29,610 --> 00:42:31,200 Appel à droite. 856 00:42:31,200 --> 00:42:33,680 >> JASON HIRSCHHORN: Nous voulons savoir spécifiquement, bien que - rappelez-vous, dans un 857 00:42:33,680 --> 00:42:37,700 arbre binaire de recherche, tout à le côté gauche est plus petite. 858 00:42:37,700 --> 00:42:40,460 Tout à droite côté est plus grand. 859 00:42:40,460 --> 00:42:43,990 Donc ce n'est pas juste - oui, aller de l'avant. 860 00:42:43,990 --> 00:42:46,805 >> PUBLIC: Si c'est moins de i, alors - 861 00:42:46,805 --> 00:42:52,130 862 00:42:52,130 --> 00:42:53,380 si c'est sur la gauche - 863 00:42:53,380 --> 00:42:56,160 864 00:42:56,160 --> 00:42:58,606 >> JASON HIRSCHHORN: Donc, si ri est inférieur à - 865 00:42:58,606 --> 00:43:01,854 866 00:43:01,854 --> 00:43:09,110 si notre nombre est inférieur à i, ce côté voulons-nous aller? 867 00:43:09,110 --> 00:43:15,120 >> PUBLIC: Nous voulons aller sur le côté droit. 868 00:43:15,120 --> 00:43:16,250 >> JASON HIRSCHHORN: Nous voulons aller - 869 00:43:16,250 --> 00:43:19,210 permettez-moi d'attirer un arbre rapide. 870 00:43:19,210 --> 00:43:23,850 Si cela est 5, ce sera 3. 871 00:43:23,850 --> 00:43:29,410 Donc, si ri est inférieur à cinq, ce qui côté voulons-nous aller? 872 00:43:29,410 --> 00:43:30,390 >> PUBLIC: Désolé, quoi? 873 00:43:30,390 --> 00:43:33,190 >> JASON HIRSCHHORN: Notre nombre est inférieur au nombre que nous sommes 874 00:43:33,190 --> 00:43:34,710 regardez en ce moment. 875 00:43:34,710 --> 00:43:35,890 >> PUBLIC: Oh, alors nous voulons pour aller sur le côté gauche. 876 00:43:35,890 --> 00:43:36,240 Ouais. 877 00:43:36,240 --> 00:43:36,920 Désolé. 878 00:43:36,920 --> 00:43:37,230 >> JASON HIRSCHHORN: Exactement. 879 00:43:37,230 --> 00:43:38,480 Pas de soucis. 880 00:43:38,480 --> 00:43:41,020 Dans la recherche arbre, tout binaire est inférieure à la gauche, 881 00:43:41,020 --> 00:43:42,110 plus grande est à droite. 882 00:43:42,110 --> 00:43:46,700 Donc, si notre nombre est inférieur à i nous vérifions - 883 00:43:46,700 --> 00:43:48,790 parce que vous voyez dans l' noeud, il a un i - 884 00:43:48,790 --> 00:43:50,040 alors vous voulez aller à gauche. 885 00:43:50,040 --> 00:43:55,480 886 00:43:55,480 --> 00:43:56,720 >> Et c'est facile. 887 00:43:56,720 --> 00:44:01,700 Qu'est-ce que l'autre ligne de pseudo- nous avons besoin d'écrire? 888 00:44:01,700 --> 00:44:02,910 Carlos? 889 00:44:02,910 --> 00:44:05,970 >> PUBLIC: La même chose, vous passez juste à un signe supérieur à 890 00:44:05,970 --> 00:44:07,420 et allez vers la droite. 891 00:44:07,420 --> 00:44:08,350 >> JASON HIRSCHHORN: Pouvez-vous dire une fois de plus? 892 00:44:08,350 --> 00:44:11,640 >> PUBLIC: Si notre nombre est supérieur que i, allez vers la droite. 893 00:44:11,640 --> 00:44:24,900 894 00:44:24,900 --> 00:44:26,690 >> JASON HIRSCHHORN: Excellent travail sur le pseudo-code. 895 00:44:26,690 --> 00:44:28,700 Faisons-le dans le code réel. 896 00:44:28,700 --> 00:44:33,280 Et encore, ce pseudo sera probablement vous, parce que c'est 897 00:44:33,280 --> 00:44:35,480 correct, 50% sur cette question. 898 00:44:35,480 --> 00:44:39,720 Mais ce pseudo se traduit également par un l'une, essentiellement, dans le code. 899 00:44:39,720 --> 00:44:44,380 >> Alors laissez-nous le faisons en C. Qui peut donner moi la première ligne de code? 900 00:44:44,380 --> 00:44:48,390 En fait, d'abord, avant que je ne , permettez-moi m'arrête - 901 00:44:48,390 --> 00:44:49,260 >> PUBLIC: J'ai une question. 902 00:44:49,260 --> 00:44:52,430 Pourquoi avez-vous en retrait de la ligne je vous ai donné? 903 00:44:52,430 --> 00:44:54,160 >> JASON HIRSCHHORN: Parce que Je ne pouvais pas écrire. 904 00:44:54,160 --> 00:44:55,240 Je ne sais pas. 905 00:44:55,240 --> 00:44:55,650 Vous avez raison. 906 00:44:55,650 --> 00:44:57,780 Cette ligne devrait être là-bas. 907 00:44:57,780 --> 00:45:11,600 908 00:45:11,600 --> 00:45:14,480 >> OK, voici notre fonction. 909 00:45:14,480 --> 00:45:18,090 Et laissez-moi m'arrête, également, notre définition d'un noeud. 910 00:45:18,090 --> 00:45:23,320 911 00:45:23,320 --> 00:45:27,180 Qu'advient-il si nous n'avons pas écrire typedef? 912 00:45:27,180 --> 00:45:30,240 Quelqu'un sait-il? 913 00:45:30,240 --> 00:45:32,570 >> PUBLIC: Il ne serait pas compiler. 914 00:45:32,570 --> 00:45:33,860 >> JASON HIRSCHHORN: Il serait compiler, ouais. 915 00:45:33,860 --> 00:45:37,120 >> PUBLIC: Serait-il juste de déclarer un Ainsi au lieu d'en faire une nouvelle 916 00:45:37,120 --> 00:45:39,840 tapez vous pouvez déclarer multiple instances d'? 917 00:45:39,840 --> 00:45:41,700 >> JASON HIRSCHHORN: Donc, il ne serait pas savoir - il ne serait pas 918 00:45:41,700 --> 00:45:43,120 simplement déclarer un type. 919 00:45:43,120 --> 00:45:46,150 Vous pouvez encore faire beaucoup de noeuds. 920 00:45:46,150 --> 00:45:48,070 >> PUBLIC: Mais serions-nous pas à écrire noeud de structure à chaque fois? 921 00:45:48,070 --> 00:45:48,640 >> JASON HIRSCHHORN: C'est exact. 922 00:45:48,640 --> 00:45:50,960 Vous n'avez pas à écrire noeud struct à chaque fois, au lieu de simplement nœud. 923 00:45:50,960 --> 00:45:55,270 Mais avec typedef, vous pouvez simplement écrire noeud à chaque fois. 924 00:45:55,270 --> 00:45:58,240 OK, qui n'a pas donné - ouais, Avica. 925 00:45:58,240 --> 00:46:01,520 >> PUBLIC: Si la racine est égal à égal null, retourne false. 926 00:46:01,520 --> 00:46:07,130 927 00:46:07,130 --> 00:46:09,490 >> JASON HIRSCHHORN: Grand, et c'est notre scénario de base. 928 00:46:09,490 --> 00:46:11,200 Ligne de code suivante. 929 00:46:11,200 --> 00:46:13,999 Quelqu'un qui n'a pas donné moi une ligne de code encore? 930 00:46:13,999 --> 00:46:14,945 Ouais. 931 00:46:14,945 --> 00:46:23,360 >> PUBLIC: Root flèche i est égal égal à i. 932 00:46:23,360 --> 00:46:27,260 Puis retourner true. 933 00:46:27,260 --> 00:46:29,162 >> JASON HIRSCHHORN: Très bien. 934 00:46:29,162 --> 00:46:32,048 Ligne suivante? 935 00:46:32,048 --> 00:46:32,790 Ouais. 936 00:46:32,790 --> 00:46:34,010 Quelqu'un d'autre? 937 00:46:34,010 --> 00:46:36,774 Et puis vous pouvez aller. 938 00:46:36,774 --> 00:46:44,820 >> PUBLIC: Sinon, si la racine flèche i est inférieur à je reviens 939 00:46:44,820 --> 00:46:47,737 fonction appelée trouvaille racine - 940 00:46:47,737 --> 00:46:50,611 >> JASON HIRSCHHORN: Désolé. 941 00:46:50,611 --> 00:46:56,272 >> PUBLIC: Retour trouvaille racine des points à gauche virgule i. 942 00:46:56,272 --> 00:47:01,760 943 00:47:01,760 --> 00:47:08,440 >> JASON HIRSCHHORN: Donc, si ri est plus que la chose dans l'arbre, nous voulons 944 00:47:08,440 --> 00:47:09,573 allez vers la gauche? 945 00:47:09,573 --> 00:47:11,790 >> PUBLIC: Non, je n'avais que commuté. 946 00:47:11,790 --> 00:47:13,040 >> JASON HIRSCHHORN: Lequel? 947 00:47:13,040 --> 00:47:16,310 948 00:47:16,310 --> 00:47:16,950 >> PUBLIC: Non, ouais. 949 00:47:16,950 --> 00:47:19,050 J'ai moins de signer là-bas. 950 00:47:19,050 --> 00:47:22,890 >> JASON HIRSCHHORN: droit, si ri est moins que ce qui est à la racine - 951 00:47:22,890 --> 00:47:25,660 notre racine actuelle - nous envie d'aller vers la gauche. 952 00:47:25,660 --> 00:47:26,960 Et quelle est la dernière ligne, vous? 953 00:47:26,960 --> 00:47:30,930 >> PUBLIC: Essentiellement la même chose, sauf basculer le supérieur ou 954 00:47:30,930 --> 00:47:34,690 égale à moins de la gauche vers la droite et. 955 00:47:34,690 --> 00:47:43,590 956 00:47:43,590 --> 00:47:43,680 >> JASON HIRSCHHORN: Excellent. 957 00:47:43,680 --> 00:47:48,430 Quelqu'un at-il des questions à ce sujet? 958 00:47:48,430 --> 00:47:52,560 Ainsi, certaines autres choses qui seraient ont eu raison, c'est que 959 00:47:52,560 --> 00:47:53,810 pourrait être la-ltiff. 960 00:47:53,810 --> 00:47:56,520 961 00:47:56,520 --> 00:47:59,520 Guess, techniquement, aucune de ces vraiment besoin aussi d'être-ltiff. 962 00:47:59,520 --> 00:48:00,950 >> Aussi, il ya probablement seulement un cas ici. 963 00:48:00,950 --> 00:48:02,380 C'est donc probablement votre dernier cas. 964 00:48:02,380 --> 00:48:04,000 Vous n'avez même pas besoin que-ltiff. 965 00:48:04,000 --> 00:48:06,160 Mais sans doute bon d'écrire il, pour être clair. 966 00:48:06,160 --> 00:48:06,660 Ouais. 967 00:48:06,660 --> 00:48:09,200 >> PUBLIC: Donc, vous ne pensez pas que le test - si nous faisons des erreurs, par exemple, 968 00:48:09,200 --> 00:48:11,725 dans la syntaxe - 969 00:48:11,725 --> 00:48:13,990 petites erreurs de syntaxe - 970 00:48:13,990 --> 00:48:17,810 comment est-ce que se prendre dans le quiz? 971 00:48:17,810 --> 00:48:21,300 >> JASON HIRSCHHORN: Généralement sur le quiz, petite erreur de syntaxe ou petit 972 00:48:21,300 --> 00:48:24,010 erreurs de style ne vous perdez pas de points. 973 00:48:24,010 --> 00:48:26,610 Donc, si vous avez oublié un point-virgule ici, il serait OK. 974 00:48:26,610 --> 00:48:30,290 Si vous avez oublié de fermer cette parenthèse, ce serait OK. 975 00:48:30,290 --> 00:48:34,880 >> Erreurs de syntaxe énormes qui modifient la signification fonctionnelle de votre code 976 00:48:34,880 --> 00:48:37,600 considérablement, vous pourriez obtenir enlevé des points pour. 977 00:48:37,600 --> 00:48:40,330 Ou, plus généralement, à vous de classement si oui ou non votre 978 00:48:40,330 --> 00:48:42,150 fonctions de code, même - 979 00:48:42,150 --> 00:48:44,830 pas sa conception tellement, et pas son style. 980 00:48:44,830 --> 00:48:50,780 981 00:48:50,780 --> 00:48:55,480 >> Voyons maintenant coder un processus itératif version de trouvaille. 982 00:48:55,480 --> 00:49:00,400 983 00:49:00,400 --> 00:49:03,450 Donc ça va être assez semblable, mais il y aura certainement d'être 984 00:49:03,450 --> 00:49:06,250 certaines différences importantes. 985 00:49:06,250 --> 00:49:09,160 Cependant, notre pseudo- peut probablement aller - 986 00:49:09,160 --> 00:49:11,610 nous pouvons encore prendre une ligne de la pseudo et comprendre ce que l' 987 00:49:11,610 --> 00:49:14,160 ligne est dans ce cas. 988 00:49:14,160 --> 00:49:18,010 >> Ainsi, dans une version itérative, ce qui pensez-vous, Julia, devrait 989 00:49:18,010 --> 00:49:19,260 être la première ligne? 990 00:49:19,260 --> 00:49:23,100 991 00:49:23,100 --> 00:49:26,920 >> PUBLIC: Encore une fois, en booléen itératif, vous avez besoin de mettre en place une boucle, non? 992 00:49:26,920 --> 00:49:27,660 >> JASON HIRSCHHORN: OK. 993 00:49:27,660 --> 00:49:38,480 >> PUBLIC: Donc, pour que, k, pour x est égal à 0, x est inférieur à i. 994 00:49:38,480 --> 00:49:42,260 Ou non, x est inférieur à l' taille de l'arbre. 995 00:49:42,260 --> 00:49:42,760 >> JASON HIRSCHHORN: L'arbre. 996 00:49:42,760 --> 00:49:46,660 Nous ne savons donc pas vraiment la taille de la arbre, et nous ne savons pas vraiment pour 997 00:49:46,660 --> 00:49:48,900 combien de fois nous pouvons aller, si ce n'est une type de boucle qui peut être différent 998 00:49:48,900 --> 00:49:50,150 mieux dans ce cas? 999 00:49:50,150 --> 00:49:53,250 1000 00:49:53,250 --> 00:49:55,244 >> PUBLIC: Si d'autre? 1001 00:49:55,244 --> 00:49:57,070 >> JASON HIRSCHHORN: Si d'autre ne peut pas être une boucle. 1002 00:49:57,070 --> 00:49:58,935 Donc, ce qui est un type de boucle, nous pouvons juste aller jusqu'à certains cas, est atteint? 1003 00:49:58,935 --> 00:50:07,250 1004 00:50:07,250 --> 00:50:11,560 Quel est le seul autre type de boucle en C en plus une boucle? 1005 00:50:11,560 --> 00:50:11,930 >> PUBLIC: Bien. 1006 00:50:11,930 --> 00:50:13,380 >> JASON HIRSCHHORN: Bien, exactement. 1007 00:50:13,380 --> 00:50:16,430 Dans une boucle de temps, ne besoin de savoir comment - 1008 00:50:16,430 --> 00:50:18,450 une boucle while et boucle peuvent faire l' exactement la même chose, mais la bonne chose 1009 00:50:18,450 --> 00:50:21,500 sur une boucle while est que nous n'avons pas besoin de savoir comment notre grand arbre est. 1010 00:50:21,500 --> 00:50:23,060 Nous allons donc aller jusqu'à quoi? 1011 00:50:23,060 --> 00:50:25,880 1012 00:50:25,880 --> 00:50:28,032 >> PUBLIC: Jusqu'à il est égal à la taille des - 1013 00:50:28,032 --> 00:50:32,320 >> JASON HIRSCHHORN: Eh bien, c'est très semblable à notre cas récursif. 1014 00:50:32,320 --> 00:50:33,360 Donc - 1015 00:50:33,360 --> 00:50:36,470 >> PUBLIC: Bien racine i n'est pas égal à i. 1016 00:50:36,470 --> 00:50:37,620 >> JASON HIRSCHHORN: C'est vraiment tout près. 1017 00:50:37,620 --> 00:50:39,430 Alors que la racine i - 1018 00:50:39,430 --> 00:50:40,610 nous allons essayer. 1019 00:50:40,610 --> 00:50:41,180 Je ne pense pas [inaudible] 1020 00:50:41,180 --> 00:50:43,026 où root i n'est pas égal à i. 1021 00:50:43,026 --> 00:50:47,380 1022 00:50:47,380 --> 00:50:49,460 Nous pourrions avoir besoin de changer un peu peu, mais qui sonne comme il est assez 1023 00:50:49,460 --> 00:50:50,160 bon, pour l'instant. 1024 00:50:50,160 --> 00:50:51,710 Donc, nous allons le faire. 1025 00:50:51,710 --> 00:50:55,660 >> Aussi, rappelez-vous, nous ne pouvons pas assumer par la question. 1026 00:50:55,660 --> 00:50:57,880 Vous ne supposez pas que le racine sera non nulle. 1027 00:50:57,880 --> 00:51:01,914 Alors, que pensez-vous de la très première chose que nous devrions faire est? 1028 00:51:01,914 --> 00:51:02,770 >> PUBLIC: Il suffit de faire la même chose qu'avant. 1029 00:51:02,770 --> 00:51:05,260 Si la racine est égal à égal null, retourne false. 1030 00:51:05,260 --> 00:51:11,030 1031 00:51:11,030 --> 00:51:12,130 >> JASON HIRSCHHORN: Très bien. 1032 00:51:12,130 --> 00:51:13,820 Ainsi, il pourrait être nul. 1033 00:51:13,820 --> 00:51:15,810 Donc, nous voulons nous débarrasser de tout de suite. 1034 00:51:15,810 --> 00:51:19,560 Et puis nous sommes chèque aller si racine i n'est pas égal à i. 1035 00:51:19,560 --> 00:51:24,480 Donc, disons que nous sommes à la recherche de cet arbre pour 3, racine i n'est pas égal à i, maintenant 1036 00:51:24,480 --> 00:51:25,950 nous sommes dans notre boucle while. 1037 00:51:25,950 --> 00:51:27,500 Que voulons-nous faire? 1038 00:51:27,500 --> 00:51:32,320 1039 00:51:32,320 --> 00:51:35,430 Et encore, ça va être assez similaire à notre version récursive. 1040 00:51:35,430 --> 00:51:36,230 Ouais. 1041 00:51:36,230 --> 00:51:40,470 >> PUBLIC: Donc vous voudriez parcourir, ou continuer dans l'arbre aussi longtemps que 1042 00:51:40,470 --> 00:51:42,400 la racine n'est pas égale à zéro. 1043 00:51:42,400 --> 00:51:45,120 1044 00:51:45,120 --> 00:51:46,640 >> JASON HIRSCHHORN: Tant que l' racine n'est pas égal à null? 1045 00:51:46,640 --> 00:51:50,200 >> AUDIENCE: Le tableau de bord de la racine i n'est pas égal à zéro. 1046 00:51:50,200 --> 00:51:51,220 Juste la racine, oui. 1047 00:51:51,220 --> 00:51:52,920 En tant que la racine est pas égale à la valeur null. 1048 00:51:52,920 --> 00:51:54,240 >> JASON HIRSCHHORN: Donc, vous voulez de changer cela en racine 1049 00:51:54,240 --> 00:51:56,590 n'est pas égal à zéro? 1050 00:51:56,590 --> 00:51:59,020 >> PUBLIC: Ouais. 1051 00:51:59,020 --> 00:52:00,800 >> PUBLIC: Nous pourrions combiner ceux-ci, non? 1052 00:52:00,800 --> 00:52:02,990 Nous n'avons pas besoin de si, au départ. 1053 00:52:02,990 --> 00:52:05,180 >> JASON HIRSCHHORN: OK, donc si nous ne - 1054 00:52:05,180 --> 00:52:08,140 si nous les combinons, donc nous allons faire tandis que la racine n'est pas égale à zéro, et 1055 00:52:08,140 --> 00:52:10,800 si la racine se trouve être nulle au en commençant, que faisons-nous ici? 1056 00:52:10,800 --> 00:52:11,450 >> PUBLIC: Retour faux. 1057 00:52:11,450 --> 00:52:12,730 >> JASON HIRSCHHORN: Très bien. 1058 00:52:12,730 --> 00:52:14,110 Donc, dans les deux sens sans doute auraient travaillé. 1059 00:52:14,110 --> 00:52:15,645 Il s'agit d'une manière différente, et ce qu'il associe. 1060 00:52:15,645 --> 00:52:18,950 Mais encore une fois, si vous avez de toute façon, nous sommes ne va pas à décoller conception 1061 00:52:18,950 --> 00:52:19,800 des points sur le questionnaire. 1062 00:52:19,800 --> 00:52:21,020 Mais cela semble bon. 1063 00:52:21,020 --> 00:52:23,940 >> Ainsi, alors que la racine n'est pas égal à null, ce qui est la première 1064 00:52:23,940 --> 00:52:25,400 chose que nous voulons vérifier? 1065 00:52:25,400 --> 00:52:26,330 Quelqu'un d'autre? 1066 00:52:26,330 --> 00:52:29,720 Null, quelle est la première chose? 1067 00:52:29,720 --> 00:52:32,850 >> PUBLIC: Si ri est inférieur à - 1068 00:52:32,850 --> 00:52:36,140 oh, je suppose, si nous avons déjà trouvé dans la racine. 1069 00:52:36,140 --> 00:52:40,830 Donc, si la racine flèche i est égal à i - 1070 00:52:40,830 --> 00:52:40,990 >> JASON HIRSCHHORN: Désolé? 1071 00:52:40,990 --> 00:52:45,840 >> PUBLIC: Si racine flèche i est égal égaux i - 1072 00:52:45,840 --> 00:52:47,090 >> JASON HIRSCHHORN: Que faisons-nous? 1073 00:52:47,090 --> 00:52:50,300 1074 00:52:50,300 --> 00:52:51,550 >> PUBLIC: Retour vrai. 1075 00:52:51,550 --> 00:52:58,850 1076 00:52:58,850 --> 00:52:59,280 >> JASON HIRSCHHORN: Très bien. 1077 00:52:59,280 --> 00:53:00,530 Et quelle est la prochaine? 1078 00:53:00,530 --> 00:53:04,510 1079 00:53:04,510 --> 00:53:06,843 Jeff, quelle est la ligne de code suivante? 1080 00:53:06,843 --> 00:53:16,190 >> PUBLIC: Si i est inférieur à la racine flèche i, alors la racine est égal à la racine flèche gauche. 1081 00:53:16,190 --> 00:53:21,550 >> JASON Hirschhorn: égaux Root racine flèche gauche. 1082 00:53:21,550 --> 00:53:24,530 Donc, c'est probablement le plus grand différence dans cette itératif 1083 00:53:24,530 --> 00:53:26,600 version telle opposé à l' Version récursive. 1084 00:53:26,600 --> 00:53:28,970 La version récursive, nous appeler à nouveau la fonction. 1085 00:53:28,970 --> 00:53:32,640 Nous mettrons à jour racine lorsque nous appelons la nouvelle fonction. 1086 00:53:32,640 --> 00:53:34,170 Ici, nous ne demandons pas une nouvelle fonction. 1087 00:53:34,170 --> 00:53:37,610 Nous tout simplement la mise à jour racine dans cette fonction. 1088 00:53:37,610 --> 00:53:38,880 C'est excellent. 1089 00:53:38,880 --> 00:53:40,730 Et quelle est la dernière ligne de code? 1090 00:53:40,730 --> 00:53:43,950 1091 00:53:43,950 --> 00:53:44,880 Oui, Mario? 1092 00:53:44,880 --> 00:53:48,290 >> PUBLIC: égaux profondes Autres racine flèche vers la droite. 1093 00:53:48,290 --> 00:53:49,492 >> JASON HIRSCHHORN: Désolé? 1094 00:53:49,492 --> 00:53:52,340 >> égaux racines: PUBLIC racine flèche vers la droite. 1095 00:53:52,340 --> 00:53:55,590 1096 00:53:55,590 --> 00:53:57,140 >> JASON HIRSCHHORN: Pourriez-vous également écrire quelque chose comme ça? 1097 00:53:57,140 --> 00:54:02,786 1098 00:54:02,786 --> 00:54:03,890 >> PUBLIC: Je n'ai aucune idée. 1099 00:54:03,890 --> 00:54:05,140 >> JASON HIRSCHHORN: Vous ne pouvez pas. 1100 00:54:05,140 --> 00:54:07,302 1101 00:54:07,302 --> 00:54:08,270 Vous ne pouvez pas faire égale plus. 1102 00:54:08,270 --> 00:54:10,780 OK, donc cela semble bon. 1103 00:54:10,780 --> 00:54:13,620 Pourquoi ne faisons-nous pas juste que pour le nettoyer. 1104 00:54:13,620 --> 00:54:15,220 Cela ressemble beaucoup, et cela pourrait fonctionner. 1105 00:54:15,220 --> 00:54:16,920 Et nous éclater. 1106 00:54:16,920 --> 00:54:21,460 >> Si racine gauche était juste nulle ou racine était nulle, nous venons ici. 1107 00:54:21,460 --> 00:54:22,470 Racine serait égal à zéro. 1108 00:54:22,470 --> 00:54:24,270 Nous aimerions sortir de notre boucle, et nous reviendrons sans fausse. 1109 00:54:24,270 --> 00:54:26,280 Ainsi, lorsque nous sortir de la boucle, nous return false. 1110 00:54:26,280 --> 00:54:29,520 1111 00:54:29,520 --> 00:54:32,793 >> Et encore une fois, la boucle while était parfait ici parce que nous ne savons pas comment 1112 00:54:32,793 --> 00:54:33,850 la taille de notre arbre est. 1113 00:54:33,850 --> 00:54:36,460 Nous avons essayé d'écrire la boucle, mais nous rendu compte que vous avez à comprendre comment 1114 00:54:36,460 --> 00:54:37,410 elle est grande à l'avance. 1115 00:54:37,410 --> 00:54:38,720 Ouais. 1116 00:54:38,720 --> 00:54:41,790 >> PUBLIC: Si ce n'était pas un binaire arbre de recherche, il serait réel math-y 1117 00:54:41,790 --> 00:54:44,220 à écrire de manière itérative, non? 1118 00:54:44,220 --> 00:54:47,170 Comme si c'était un arbre, mais pas nécessairement - 1119 00:54:47,170 --> 00:54:49,730 si ce n'était pas plus petite à gauche, et tous les plus à droite. 1120 00:54:49,730 --> 00:54:52,540 Il serait vraiment difficile à parcourir, non? 1121 00:54:52,540 --> 00:54:55,720 Nous aurions à sauver ce qui était auparavant dans l'arbre et revenir en arrière, 1122 00:54:55,720 --> 00:54:56,970 et des trucs comme ça. 1123 00:54:56,970 --> 00:54:59,690 1124 00:54:59,690 --> 00:55:02,010 >> JASON HIRSCHHORN: Si ce n'était pas un binaire arbre de recherche, si c'était juste un 1125 00:55:02,010 --> 00:55:04,740 arbre et les choses n'étaient pas triés comme ceci - 1126 00:55:04,740 --> 00:55:07,440 et nous avons réalisé plus tôt, quand Anna a nous aider que ce qui 1127 00:55:07,440 --> 00:55:08,800 triée nous aide beaucoup - 1128 00:55:08,800 --> 00:55:12,610 nous aurions besoin, oui, toujours enregistrer où nous étions auparavant. 1129 00:55:12,610 --> 00:55:14,430 Mais il pourrait y avoir un grand nombre de où nous étions previouslys. 1130 00:55:14,430 --> 00:55:17,730 Il pourrait y avoir un grand nombre de nœuds parents. 1131 00:55:17,730 --> 00:55:22,530 >> Probablement la meilleure façon de le faire serait être de continuer à pousser les choses sur un certain 1132 00:55:22,530 --> 00:55:24,170 type de pile ou file d'attente. 1133 00:55:24,170 --> 00:55:26,030 Vous n'auriez plus besoin de coder ce parce que c'est un problème difficile. 1134 00:55:26,030 --> 00:55:30,820 Mais vous poussez des choses sur une pile ou la file d'attente et puis pop-les et 1135 00:55:30,820 --> 00:55:31,890 puis les évaluer. 1136 00:55:31,890 --> 00:55:34,200 >> Et alors quelque chose d'autre où vous êtes en train de mettre les nœuds, et 1137 00:55:34,200 --> 00:55:36,090 puis créer, et ensuite, recherche à travers cela. 1138 00:55:36,090 --> 00:55:38,700 C'est peut-être la meilleure façon de le faire. 1139 00:55:38,700 --> 00:55:42,410 OK, des questions au sujet de ce problème? 1140 00:55:42,410 --> 00:55:44,670 >> PUBLIC: C'est sur une note liée. 1141 00:55:44,670 --> 00:55:50,460 Aurons-nous à comparer les temps d'exécution pour les tables de hachage, binaire 1142 00:55:50,460 --> 00:55:52,160 arbres de recherche, et cetera? 1143 00:55:52,160 --> 00:55:54,310 >> JASON HIRSCHHORN: Probablement. 1144 00:55:54,310 --> 00:55:56,150 Alors, faisons que très rapidement. 1145 00:55:56,150 --> 00:55:58,490 Exécutez temps pour la table de hachage - 1146 00:55:58,490 --> 00:55:59,090 ce sont les autres? 1147 00:55:59,090 --> 00:56:00,050 Arbre binaire? 1148 00:56:00,050 --> 00:56:02,920 >> PUBLIC: Lien listes. 1149 00:56:02,920 --> 00:56:04,780 >> JASON HIRSCHHORN: OK, faisons insert. 1150 00:56:04,780 --> 00:56:09,980 Quel est le grand O de l'insert sur une table de hachage? 1151 00:56:09,980 --> 00:56:13,080 1152 00:56:13,080 --> 00:56:15,285 Quelles sont les hypothèses vous faites? 1153 00:56:15,285 --> 00:56:17,760 >> PUBLIC: Vous insertion au au début de la liste de liens. 1154 00:56:17,760 --> 00:56:19,860 >> JASON HIRSCHHORN: Probablement la première hypothèse est il n'y a pas de collisions. 1155 00:56:19,860 --> 00:56:22,340 S'il n'y a pas de collisions, alors le temps d'insertion est une. 1156 00:56:22,340 --> 00:56:26,560 Si il ya des collisions, et vous êtes faire le chaînage séparé et en insérant 1157 00:56:26,560 --> 00:56:31,880 au début de la liste de liens, puis insertion est également constante. 1158 00:56:31,880 --> 00:56:34,700 >> Si vous faites une table de hachage, mais vous avoir une méthode différente de traiter 1159 00:56:34,700 --> 00:56:36,040 des collisions, ce qui est une autre méthode? 1160 00:56:36,040 --> 00:56:41,580 1161 00:56:41,580 --> 00:56:42,960 Quoi de est une méthode différente de traiter avec 1162 00:56:42,960 --> 00:56:44,205 collision dans une table de hachage? 1163 00:56:44,205 --> 00:56:44,915 >> PUBLIC: programmation linéaire. 1164 00:56:44,915 --> 00:56:45,540 >> JASON HIRSCHHORN: programmation linéaire. 1165 00:56:45,540 --> 00:56:47,770 Nous allons donc continuer à chercher pour la prochaine place libre. 1166 00:56:47,770 --> 00:56:50,390 Ce n'est pas le temps d'insertion constante. 1167 00:56:50,390 --> 00:56:52,266 Vous pourriez avoir à passer par l'ensemble de la table, de sorte que 1168 00:56:52,266 --> 00:56:53,936 pourrait être grand O de n. 1169 00:56:53,936 --> 00:56:54,740 Ouais. 1170 00:56:54,740 --> 00:56:57,690 >> PUBLIC: Sinon, il suffit de chaînage? 1171 00:56:57,690 --> 00:57:00,160 >> JASON HIRSCHHORN: Nous avons fait chaînage séparé. 1172 00:57:00,160 --> 00:57:00,720 C'était le premier. 1173 00:57:00,720 --> 00:57:01,560 C'est ce que la liste de liens. 1174 00:57:01,560 --> 00:57:03,720 Le nom de fantaisie est le chaînage séparé. 1175 00:57:03,720 --> 00:57:06,880 Il pourrait s'agir de tout type de structure de liste il nous arrive de faire dans la liste de lien. 1176 00:57:06,880 --> 00:57:10,490 >> Encore une fois, l'insertion sur une table de hachage pourrait être la constante de temps. 1177 00:57:10,490 --> 00:57:13,160 Qu'en est-insertion sur une file d'attente d'empilage? 1178 00:57:13,160 --> 00:57:19,260 1179 00:57:19,260 --> 00:57:20,640 >> PUBLIC: N'est-ce pas constante? 1180 00:57:20,640 --> 00:57:21,530 >> JASON HIRSCHHORN: Il est temps constant. 1181 00:57:21,530 --> 00:57:23,420 Vous êtes juste à la pousser. 1182 00:57:23,420 --> 00:57:24,120 OK. 1183 00:57:24,120 --> 00:57:25,380 Insertion, quelles étaient les autres? 1184 00:57:25,380 --> 00:57:27,100 Sur un essai? 1185 00:57:27,100 --> 00:57:30,252 Quelle est grand O d'insertion sur un essai? 1186 00:57:30,252 --> 00:57:32,808 >> PUBLIC: La longueur est constante. 1187 00:57:32,808 --> 00:57:34,560 Longueur de la plus longue - 1188 00:57:34,560 --> 00:57:36,998 la longueur du mot vous insérez. 1189 00:57:36,998 --> 00:57:38,210 >> JASON HIRSCHHORN: Désolé? 1190 00:57:38,210 --> 00:57:39,120 Attends, si ce que j'ai entendu? 1191 00:57:39,120 --> 00:57:40,260 Vous avez dit - ce que vous avez dit? 1192 00:57:40,260 --> 00:57:41,650 Quelle a été votre réponse, Marcus? 1193 00:57:41,650 --> 00:57:43,640 >> PUBLIC: La longueur du mot vous insérez des caractères, 1194 00:57:43,640 --> 00:57:45,480 en supposant que c'est un essai de caractère. 1195 00:57:45,480 --> 00:57:46,840 >> JASON HIRSCHHORN: OK, donc la longueur du mot. 1196 00:57:46,840 --> 00:57:49,500 Nous faisons l'hypothèse que c'est une chaîne de caractères. 1197 00:57:49,500 --> 00:57:51,930 Vous avez dit quelque chose de différent, cependant. 1198 00:57:51,930 --> 00:57:55,490 Vous avez dit que la longueur du mot le plus long. 1199 00:57:55,490 --> 00:57:57,600 >> PUBLIC: C'est juste constante, non? 1200 00:57:57,600 --> 00:57:58,440 >> JASON HIRSCHHORN: Pourquoi ce soit constante? 1201 00:57:58,440 --> 00:58:00,970 >> PUBLIC: Comme, si vous utilisez grand O notation, il ne varie pas fondée 1202 00:58:00,970 --> 00:58:04,680 sur le nombre de choses que sont déjà dans le coup. 1203 00:58:04,680 --> 00:58:07,344 >> JASON HIRSCHHORN: Donc, nous serions dire qu'il est temps constant. 1204 00:58:07,344 --> 00:58:11,840 C'est insertion constante, et c'est parce que cette idée - 1205 00:58:11,840 --> 00:58:14,820 dire que nous avons un mot qui est 45, ou un mot qui est 60, qui 1206 00:58:14,820 --> 00:58:16,800 a un nombre constant. 1207 00:58:16,800 --> 00:58:21,050 Et il serait tout simplement être inséré en temps constant. 1208 00:58:21,050 --> 00:58:26,060 >> Dans la pratique cependant, il ne serait pas, évidemment, arriver en une milliseconde, 1209 00:58:26,060 --> 00:58:26,590 par exemple. 1210 00:58:26,590 --> 00:58:28,880 Mais nous dirions grand O est constante pour un essai. 1211 00:58:28,880 --> 00:58:31,330 Et c'est l'un de ses plus grands avantages. 1212 00:58:31,330 --> 00:58:33,330 >> Qu'en est-il l'insertion dans une liste de lien? 1213 00:58:33,330 --> 00:58:37,220 Juste un générique, liste de liens classés? 1214 00:58:37,220 --> 00:58:37,700 Ouais. 1215 00:58:37,700 --> 00:58:38,530 >> PUBLIC: J'avais une question. 1216 00:58:38,530 --> 00:58:42,670 Sur le test, seraient-ils jamais de nous le demander temps d'insertion qui est quatre étapes, 1217 00:58:42,670 --> 00:58:43,270 ou quelque chose? 1218 00:58:43,270 --> 00:58:44,300 Ou est-ce juste - 1219 00:58:44,300 --> 00:58:47,670 quand vous dites le temps d'insertion est un, cela signifie simplement constante de temps? 1220 00:58:47,670 --> 00:58:49,770 >> JASON HIRSCHHORN: Oui, ils le feraient toujours demander, est-il grand O de n? 1221 00:58:49,770 --> 00:58:51,440 Big O de log n? 1222 00:58:51,440 --> 00:58:53,960 N carré constant. 1223 00:58:53,960 --> 00:58:56,520 Ce sont vraiment la seule ceux que vous devez savoir. 1224 00:58:56,520 --> 00:58:58,420 Qu'en est-il sur l'insertion triés liste de liens? 1225 00:58:58,420 --> 00:58:59,440 >> PUBLIC: J'avais une question - 1226 00:58:59,440 --> 00:58:59,980 une question - 1227 00:58:59,980 --> 00:59:01,060 >> JASON HIRSCHHORN: Quelle est la réponse à cette question, si? 1228 00:59:01,060 --> 00:59:02,120 >> PUBLIC: Attends, qu'est-ce que vous demandez? 1229 00:59:02,120 --> 00:59:06,750 >> JASON HIRSCHHORN: Ce qui est grand O de insertion dans une liste de liens triés? 1230 00:59:06,750 --> 00:59:07,070 >> PUBLIC: Un? 1231 00:59:07,070 --> 00:59:09,400 Pas d'attente, pas d'attente, n. 1232 00:59:09,400 --> 00:59:11,420 >> JASON HIRSCHHORN: N. ailleurs la liste de lien. 1233 00:59:11,420 --> 00:59:12,706 Et quelle était votre question? 1234 00:59:12,706 --> 00:59:16,440 >> PUBLIC: Donc vous écririez o de k ou o 1 pour le - 1235 00:59:16,440 --> 00:59:18,150 >> JASON HIRSCHHORN: Oh. 1236 00:59:18,150 --> 00:59:21,830 Je voudrais écrire o 1, probablement. 1237 00:59:21,830 --> 00:59:24,160 Il y avait une autre structure de données cela aurait été bien. 1238 00:59:24,160 --> 00:59:25,730 Arbre, arbre de recherche binaire. 1239 00:59:25,730 --> 00:59:27,510 Dans les insertion sur une arbre binaire de recherche? 1240 00:59:27,510 --> 00:59:31,190 1241 00:59:31,190 --> 00:59:33,900 >> PUBLIC: Connectez-vous. 1242 00:59:33,900 --> 00:59:39,260 >> JASON HIRSCHHORN: Alors, quel est le pire cas dans un arbre binaire de recherche? 1243 00:59:39,260 --> 00:59:45,350 Donc, si nous nous trouvons à commencer à 5, et tous les nombre est supérieur à 5, puis 1244 00:59:45,350 --> 00:59:48,760 nous avons 5, 7, 9, 11, et ainsi de suite. 1245 00:59:48,760 --> 00:59:52,255 Dans ce cas, il s'agit simplement d'un lien liste, et nous avons besoin d'insérer tous 1246 00:59:52,255 --> 00:59:52,680 le moyen à la fin. 1247 00:59:52,680 --> 00:59:54,350 Alors il est grand O de n. 1248 00:59:54,350 --> 00:59:57,720 >> Cela pourrait être notre pire des cas sur un arbre binaire de recherche. 1249 00:59:57,720 --> 01:00:00,890 Évidemment, vous n'auriez jamais construire un arbre de recherche binaire dans la 5 avec 1250 01:00:00,890 --> 01:00:04,270 milieu, sachant 5 serait être le plus petit nombre. 1251 01:00:04,270 --> 01:00:08,030 Mais il pourrait être, si vous êtes à partir de zéro. 1252 01:00:08,030 --> 01:00:10,980 Toutes les questions sur ce avant que je passer à une autre question? 1253 01:00:10,980 --> 01:00:11,560 C'est une bonne question. 1254 01:00:11,560 --> 01:00:15,100 Je ne sais grand O de - 1255 01:00:15,100 --> 01:00:18,620 >> PUBLIC: Qu'est-ce que sur la recherche pour ces quatre? 1256 01:00:18,620 --> 01:00:20,400 >> JASON HIRSCHHORN: Certainement nous ne recherche et de tri. 1257 01:00:20,400 --> 01:00:22,160 Nous avons fait tous ces algorithmes, à droite. 1258 01:00:22,160 --> 01:00:23,390 Attendez, c'est que pour Quiz 1? 1259 01:00:23,390 --> 01:00:23,980 Était-ce couvert - 1260 01:00:23,980 --> 01:00:25,860 avez-vous déjà que question sur Quiz 1? 1261 01:00:25,860 --> 01:00:29,650 La grande exécution de O de recherche binaire, tri par insertion, tri à bulles? 1262 01:00:29,650 --> 01:00:30,160 >> PUBLIC: Ouais. 1263 01:00:30,160 --> 01:00:32,790 >> JASON HIRSCHHORN: Si vous aviez que question sur Quiz 0, les chances sont que vous ne 1264 01:00:32,790 --> 01:00:35,180 obtenir exactement la même question sur Quiz 1. 1265 01:00:35,180 --> 01:00:36,300 Pourrait être encore bon à savoir ceux. 1266 01:00:36,300 --> 01:00:38,520 Vous devez savoir si tout va bien gh déjà. 1267 01:00:38,520 --> 01:00:40,740 >> Mais d'autres runtimes logarithmiques sont probablement bon à savoir. 1268 01:00:40,740 --> 01:00:42,890 Les choses qui ne sont pas couverts sur Quiz 0. 1269 01:00:42,890 --> 01:00:47,300 Comme tous ces opérateurs sur ces types de données abstraits. 1270 01:00:47,300 --> 01:00:50,760 >> OK, passons à autre chose. 1271 01:00:50,760 --> 01:00:52,190 Celui-ci devrait être assez rapide. 1272 01:00:52,190 --> 01:00:56,170 Et c'est une nouvelle langue que nous n'avons pas en fait codé en avant. 1273 01:00:56,170 --> 01:00:59,300 Il s'agit d'une question demandant pour coder en PHP. 1274 01:00:59,300 --> 01:01:01,950 Ainsi, considérer le tableau PHP ci-dessous. 1275 01:01:01,950 --> 01:01:06,150 Ecrire codes PHP et / ou HTML tel qu'il délivre un tableau à deux colonnes avec FO 1276 01:01:06,150 --> 01:01:08,810 noms et des maisons. 1277 01:01:08,810 --> 01:01:11,600 >> Vous n'avez jamais fait cela avant, ce problème spécifique. 1278 01:01:11,600 --> 01:01:16,270 Mais cela devrait être très familier ce que vous avez fait dans le problème réglé 7. 1279 01:01:16,270 --> 01:01:21,250 Donc, je serais prêt à parier que vous serez demandé de coder quelque chose en PHP qui 1280 01:01:21,250 --> 01:01:23,880 est très similaire à ce que vous fait en ensemble de problèmes 7. 1281 01:01:23,880 --> 01:01:26,300 >> Tout d'abord, un tableau n'est pas aussi précis. 1282 01:01:26,300 --> 01:01:28,140 Quel type de réseau est-il? 1283 01:01:28,140 --> 01:01:29,080 >> PUBLIC: associatif. 1284 01:01:29,080 --> 01:01:31,250 >> JASON HIRSCHHORN: C'est un tableau associatif. 1285 01:01:31,250 --> 01:01:33,750 Et quelle est la différence entre une tableau associatif et un objet? 1286 01:01:33,750 --> 01:01:41,780 1287 01:01:41,780 --> 01:01:44,857 >> PUBLIC: Un tableau d'objets a un indice d'entiers, et un tableau associatif 1288 01:01:44,857 --> 01:01:47,814 est un indice d'une chaîne, ou quelque chose comme ça. 1289 01:01:47,814 --> 01:01:50,570 1290 01:01:50,570 --> 01:01:54,880 >> JASON HIRSCHHORN: Donc, un tableau de objets aient des indices de 1291 01:01:54,880 --> 01:01:57,090 entiers, mais un objet a des champs. 1292 01:01:57,090 --> 01:02:01,590 Il a les noms des champs comme nommer, maison, étudiant. 1293 01:02:01,590 --> 01:02:03,720 Avez-vous une idée? 1294 01:02:03,720 --> 01:02:06,630 >> PUBLIC: Eh bien, associatif tableau est en PHP, non? 1295 01:02:06,630 --> 01:02:07,880 Et l'objet est en JavaScript? 1296 01:02:07,880 --> 01:02:12,330 1297 01:02:12,330 --> 01:02:14,820 >> JASON HIRSCHHORN: Honnêtement, il n'y a pas différence entre les deux. 1298 01:02:14,820 --> 01:02:19,540 Tous les deux ont des chaînes comme les clés, et peuvent ont pratiquement tout ce que la valeur. 1299 01:02:19,540 --> 01:02:21,250 Différentes langues appellent un chose tableau associatif 1300 01:02:21,250 --> 01:02:22,750 une chose un objet. 1301 01:02:22,750 --> 01:02:25,960 Donc, honnêtement, il n'y a pas de véritable différence, mais il ya certainement quelque 1302 01:02:25,960 --> 01:02:27,730 différences syntaxiques entre les deux. 1303 01:02:27,730 --> 01:02:28,200 Ouais. 1304 01:02:28,200 --> 01:02:33,580 >> PUBLIC: Donc est objet également codé sous le capot comme une table de hachage, alors? 1305 01:02:33,580 --> 01:02:35,796 >> JASON HIRSCHHORN: Ce que vous faites dire, codé sous le capot? 1306 01:02:35,796 --> 01:02:38,017 >> PUBLIC: On nous a dit que associative tableau était techniquement une 1307 01:02:38,017 --> 01:02:39,960 la table de hachage. 1308 01:02:39,960 --> 01:02:44,510 Donc, est objet aussi techniquement une table de hachage? 1309 01:02:44,510 --> 01:02:45,350 >> JASON HIRSCHHORN: Je ne vais pas pour répondre à cette question. 1310 01:02:45,350 --> 01:02:46,600 Je vais revenir à vous sur ce point. 1311 01:02:46,600 --> 01:02:48,980 Mais je ne pense pas de soit de ceux qui, comme cela. 1312 01:02:48,980 --> 01:02:53,790 Mais, de toute façon, un tableau associatif et objet, en général, les gens utilisent les 1313 01:02:53,790 --> 01:02:54,910 termes de façon interchangeable. 1314 01:02:54,910 --> 01:02:57,630 Dans ce cas, la partie cool est que vous pouvez utiliser les touches. 1315 01:02:57,630 --> 01:03:00,580 Strings les clés, plutôt que seulement des chiffres simples. 1316 01:03:00,580 --> 01:03:02,070 >> Donc, je vous ai parlé ce pendant un certain temps. 1317 01:03:02,070 --> 01:03:04,090 Heureusement, certaines personnes ont obtenu commencé à ce sujet. 1318 01:03:04,090 --> 01:03:08,050 Nous allons écrire un peu de PHP et HTML code, de sorte que nous obtenons une à deux colonnes 1319 01:03:08,050 --> 01:03:11,830 table avec des noms et des maisons TFs. 1320 01:03:11,830 --> 01:03:15,380 >> OK, je voudrais également un en-tête ramer sur ce tableau. 1321 01:03:15,380 --> 01:03:18,410 Donc, je vais aller droit dans ce. 1322 01:03:18,410 --> 01:03:20,770 Nous allons déposer, nouveau, et nous allons - 1323 01:03:20,770 --> 01:03:27,780 1324 01:03:27,780 --> 01:03:28,320 >> OK. 1325 01:03:28,320 --> 01:03:29,970 Comment puis-je commencer un tableau? 1326 01:03:29,970 --> 01:03:32,090 Quel est le mot-clé, Michael, pour commencer une table? 1327 01:03:32,090 --> 01:03:32,890 >> PUBLIC: Tableau. 1328 01:03:32,890 --> 01:03:34,020 >> JASON HIRSCHHORN: Tableau. 1329 01:03:34,020 --> 01:03:37,870 Et si j'ouvre une étiquette, ce qui dois-je? 1330 01:03:37,870 --> 01:03:39,810 >> PUBLIC: Une tête? 1331 01:03:39,810 --> 01:03:41,040 Ou, je suppose, de la classe. 1332 01:03:41,040 --> 01:03:41,730 >> JASON HIRSCHHORN: Alors, désolé. 1333 01:03:41,730 --> 01:03:45,430 Supposons que nous avons déjà écrit doctab, HTML, tout ça. 1334 01:03:45,430 --> 01:03:50,230 Mais si j'ouvre cette étiquette de table, ce qui dois-je écrire? 1335 01:03:50,230 --> 01:03:53,450 pour valider le HTML? 1336 01:03:53,450 --> 01:03:55,000 >> PUBLIC: Fermez-le. 1337 01:03:55,000 --> 01:03:56,050 >> JASON HIRSCHHORN: Fermez la balise. 1338 01:03:56,050 --> 01:03:57,575 Comment puis-je écrire une balise de fermeture table? 1339 01:03:57,575 --> 01:03:59,580 >> PUBLIC: Dot slash table. 1340 01:03:59,580 --> 01:04:00,960 >> JASON HIRSCHHORN: Slash table, grand. 1341 01:04:00,960 --> 01:04:02,730 Est probablement logique d'écrire à la fois de ceux ensemble parce 1342 01:04:02,730 --> 01:04:03,870 vous avez à faire. 1343 01:04:03,870 --> 01:04:08,575 OK, si je veux un en-tête ligne, comment faire J'écris une ligne d'entête avec des titres? 1344 01:04:08,575 --> 01:04:11,650 1345 01:04:11,650 --> 01:04:19,290 >> PUBLIC: Est-il moins de 10 h à proximité - 1346 01:04:19,290 --> 01:04:21,550 TR, ouais. 1347 01:04:21,550 --> 01:04:22,100 >> JASON HIRSCHHORN: TR? 1348 01:04:22,100 --> 01:04:25,080 >> PUBLIC: Alors même chose, la barre oblique, ouais. 1349 01:04:25,080 --> 01:04:26,610 >> JASON HIRSCHHORN: OK, et me donner deux colonnes. 1350 01:04:26,610 --> 01:04:30,100 1351 01:04:30,100 --> 01:04:33,210 >> PUBLIC: T D? 1352 01:04:33,210 --> 01:04:34,460 >> JASON HIRSCHHORN: OK. 1353 01:04:34,460 --> 01:04:37,730 1354 01:04:37,730 --> 01:04:39,520 Je veux deux colonnes. 1355 01:04:39,520 --> 01:04:40,960 Est-ce à me donner deux colonnes? 1356 01:04:40,960 --> 01:04:43,880 Combien de colonnes est-ce? 1357 01:04:43,880 --> 01:04:45,920 Une. 1358 01:04:45,920 --> 01:04:47,170 Donc, nous allons Copiez et collez ce. 1359 01:04:47,170 --> 01:04:59,750 1360 01:04:59,750 --> 01:05:03,390 >> Donc en fait, sur le quiz, tout ce code que nous avons écrit jusqu'ici était 1361 01:05:03,390 --> 01:05:04,710 effectivement donné à vous. 1362 01:05:04,710 --> 01:05:06,200 Mais vous devriez sans doute encore savoir comment l'écrire. 1363 01:05:06,200 --> 01:05:06,470 Ouais. 1364 01:05:06,470 --> 01:05:10,636 >> PUBLIC: Votre maison est entre les deux. 1365 01:05:10,636 --> 01:05:11,130 >> JASON HIRSCHHORN: Boom. 1366 01:05:11,130 --> 01:05:12,720 Il faut aller là, non? 1367 01:05:12,720 --> 01:05:14,600 Bon appel. 1368 01:05:14,600 --> 01:05:17,760 Encore une fois, tout ce code est en fait qui vous est donné sur le quiz réelle. 1369 01:05:17,760 --> 01:05:19,570 Mais c'est amusant à écrire, et vous doivent savoir comment l'écrire. 1370 01:05:19,570 --> 01:05:23,640 Donc, c'est là que vous devez pour commencer votre code. 1371 01:05:23,640 --> 01:05:25,150 Que devons-nous écrire ici? 1372 01:05:25,150 --> 01:05:28,640 1373 01:05:28,640 --> 01:05:30,565 >> Désolé, je dois changer le nom de ce fichier. 1374 01:05:30,565 --> 01:05:41,180 1375 01:05:41,180 --> 01:05:44,270 Donc, nous avons sauvé dans un fichier HTML., pas dans un fichier PHP.. 1376 01:05:44,270 --> 01:05:47,030 Ces choses ne rien dire dans un fichier PHP.. 1377 01:05:47,030 --> 01:05:48,500 Nous sommes donc dans un fichier HTML.. 1378 01:05:48,500 --> 01:05:50,090 Quelle est la première chose J'ai besoin d'écrire? 1379 01:05:50,090 --> 01:05:52,990 Je veux mettre un peu de PHP code dans une page HTML. 1380 01:05:52,990 --> 01:05:57,300 >> PUBLIC: PHP, comme une autre carotte et point d'interrogation PHP, non? 1381 01:05:57,300 --> 01:05:58,310 >> JASON HIRSCHHORN: Très bien. 1382 01:05:58,310 --> 01:05:59,360 Et comment puis-je finis qui? 1383 01:05:59,360 --> 01:06:02,510 >> PUBLIC: Avec un point d'interrogation. 1384 01:06:02,510 --> 01:06:03,120 >> JASON HIRSCHHORN: C'est très bien. 1385 01:06:03,120 --> 01:06:07,090 C'est la première chose que je dois faire si je veux de mettre un peu de code PHP ici. 1386 01:06:07,090 --> 01:06:11,210 >> PUBLIC: J'ai pensé que PHP. fichier HTML pourrait prendre. 1387 01:06:11,210 --> 01:06:12,290 >> JASON HIRSCHHORN: Ouais. 1388 01:06:12,290 --> 01:06:15,330 Un fichier PHP. Peut prendre un certain HTML et affiché. 1389 01:06:15,330 --> 01:06:16,450 C'était mon mauvais. 1390 01:06:16,450 --> 01:06:18,300 J'essayais juste d'imiter ce qu'il était sur le questionnaire. 1391 01:06:18,300 --> 01:06:21,910 1392 01:06:21,910 --> 01:06:24,720 >> OK, désolé de vous confondre. 1393 01:06:24,720 --> 01:06:25,550 Oui, practice.HTML. 1394 01:06:25,550 --> 01:06:27,340 Maintenant, nous allons mettre du code PHP po 1395 01:06:27,340 --> 01:06:30,530 Quelle est la première ligne de code PHP je devrais écrire? 1396 01:06:30,530 --> 01:06:33,360 Je vais passer par ce tableau et d'en faire une table. 1397 01:06:33,360 --> 01:06:34,600 Ouais. 1398 01:06:34,600 --> 01:06:37,160 >> PUBLIC: Vous pouvez soit utiliser un H boucle ou une boucle. 1399 01:06:37,160 --> 01:06:38,415 >> JASON HIRSCHHORN: OK, ce voulez-vous utiliser? 1400 01:06:38,415 --> 01:06:40,720 >> PUBLIC: Je voudrais utiliser une boucle for. 1401 01:06:40,720 --> 01:06:48,700 Pour, puis vous faites signe de dollar i est égal à 0 point-virgule dollar 1402 01:06:48,700 --> 01:06:51,580 signer i inférieur à 2. 1403 01:06:51,580 --> 01:06:55,455 Et puis virgule i dollar signer i plus plus. 1404 01:06:55,455 --> 01:07:01,890 1405 01:07:01,890 --> 01:07:03,880 >> JASON HIRSCHHORN: Comment faire vous savez utiliser un 2? 1406 01:07:03,880 --> 01:07:10,444 >> PUBLIC: Parce qu'il y avait deux tableaux associatifs au sein de la plus grande 1407 01:07:10,444 --> 01:07:11,960 tableau associatif. 1408 01:07:11,960 --> 01:07:13,610 >> JASON HIRSCHHORN: Donc, la grande chose de pas un tableau associatif. 1409 01:07:13,610 --> 01:07:15,500 La grande chose est juste un tableau normal. 1410 01:07:15,500 --> 01:07:17,380 Mais vous avez raison, il ya deux tableaux associatifs 1411 01:07:17,380 --> 01:07:18,910 l'intérieur de notre réseau plus important. 1412 01:07:18,910 --> 01:07:20,310 C'est pourquoi vous utilisez deux. 1413 01:07:20,310 --> 01:07:24,270 Je me sens mal à l'aise en supposant que ils sont deux, alors c'est quoi une façon d'écrire 1414 01:07:24,270 --> 01:07:26,810 ce sans en supposant qu'ils sont 2? 1415 01:07:26,810 --> 01:07:27,507 >> PUBLIC: [inaudible]? 1416 01:07:27,507 --> 01:07:29,165 >> JASON HIRSCHHORN: OK, comment écrivez-vous que? 1417 01:07:29,165 --> 01:07:35,262 >> PUBLIC: Foreach signe dollar tfs ou comme signe dollar tf. 1418 01:07:35,262 --> 01:07:38,360 1419 01:07:38,360 --> 01:07:41,960 >> JASON HIRSCHHORN: OK, donc pour chaque TFS TFS, je souhaite, maintenant 1420 01:07:41,960 --> 01:07:43,650 encore une fois, avoir ma table. 1421 01:07:43,650 --> 01:07:45,250 Alors, qui peut me donner la prochaine ligne de code? 1422 01:07:45,250 --> 01:07:52,870 1423 01:07:52,870 --> 01:07:59,810 >> PUBLIC: Imprimer, puis dans citations, fin de support de tr 1424 01:07:59,810 --> 01:08:02,670 support, fin de citation. 1425 01:08:02,670 --> 01:08:05,300 parenthèses de fin, point-virgule. 1426 01:08:05,300 --> 01:08:07,135 >> JASON HIRSCHHORN: OK, et Qu'est-ce que va faire? 1427 01:08:07,135 --> 01:08:08,610 >> PUBLIC: Il va dire, nouvelle ligne. 1428 01:08:08,610 --> 01:08:11,070 Il va mettre l' marquer une nouvelle ligne. 1429 01:08:11,070 --> 01:08:13,000 >> JASON HIRSCHHORN: droit, ce PHP, comme nous avons parlé plus tôt - ce 1430 01:08:13,000 --> 01:08:22,160 PHP va être évalué, puis il va imprimer à ce fichier un 1431 01:08:22,160 --> 01:08:26,350 Table de remorquage, puis que HTML sera évaluée. 1432 01:08:26,350 --> 01:08:27,810 Nous ne faisons que copier ce HTML que nous avions ici. 1433 01:08:27,810 --> 01:08:28,120 Ouais. 1434 01:08:28,120 --> 01:08:29,470 >> PUBLIC: [inaudible]? 1435 01:08:29,470 --> 01:08:30,290 >> JASON HIRSCHHORN: Désolé? 1436 01:08:30,290 --> 01:08:31,240 C'est ici. 1437 01:08:31,240 --> 01:08:33,590 Automne 2012. 1438 01:08:33,590 --> 01:08:35,970 Ne regardez pas les réponses, nous allons le résoudre ensemble. 1439 01:08:35,970 --> 01:08:37,330 Donc, nous imprimons ligne de la table. 1440 01:08:37,330 --> 01:08:38,550 Alors vous êtes probablement dans le swing de choses. 1441 01:08:38,550 --> 01:08:41,060 Quelle est la prochaine ligne de code que nous devons écrire? 1442 01:08:41,060 --> 01:08:42,926 Assam, donne-moi la prochaine ligne de code. 1443 01:08:42,926 --> 01:08:46,290 >> PUBLIC: Vous avez besoin du nom de la tf. 1444 01:08:46,290 --> 01:08:54,319 Tf supports guillemet ouvert nommer crochets fermés. 1445 01:08:54,319 --> 01:08:57,310 >> JASON HIRSCHHORN: Donnez-moi leur nom. 1446 01:08:57,310 --> 01:08:58,540 >> PUBLIC: Vous devez imprimer que. 1447 01:08:58,540 --> 01:08:59,790 >> [VOIX interposition] 1448 01:08:59,790 --> 01:09:01,963 1449 01:09:01,963 --> 01:09:03,430 >> JASON HIRSCHHORN: OK, comment puis-je l'imprimer? 1450 01:09:03,430 --> 01:09:04,680 >> [VOIX interposition] 1451 01:09:04,680 --> 01:09:08,609 1452 01:09:08,609 --> 01:09:10,350 >> JASON HIRSCHHORN: il me manque quelque chose maintenant. 1453 01:09:10,350 --> 01:09:12,470 Qu'est-ce que je suis absent? 1454 01:09:12,470 --> 01:09:13,720 >> PUBLIC: Vous avez besoin d'un signe de dollar. 1455 01:09:13,720 --> 01:09:15,960 1456 01:09:15,960 --> 01:09:17,210 >> JASON HIRSCHHORN: Qu'est-ce autre qui m'échappe? 1457 01:09:17,210 --> 01:09:20,100 1458 01:09:20,100 --> 01:09:21,650 Tout ce que nous avons imprimé jusqu'à présent est la tr. 1459 01:09:21,650 --> 01:09:25,589 1460 01:09:25,589 --> 01:09:27,470 >> PUBLIC: Fermez le tr après. 1461 01:09:27,470 --> 01:09:28,720 >> JASON HIRSCHHORN: Donc, nous avons besoin pour fermer la tr après. 1462 01:09:28,720 --> 01:09:34,390 1463 01:09:34,390 --> 01:09:37,906 Qui voit ce qui nous manque sur la ligne 16? 1464 01:09:37,906 --> 01:09:39,340 Ouais, Anna. 1465 01:09:39,340 --> 01:09:47,050 >> PUBLIC: Vous devez ouvrir un td et accolades. 1466 01:09:47,050 --> 01:09:49,380 >> JASON HIRSCHHORN: Et où mettons-nous accolades? 1467 01:09:49,380 --> 01:09:51,790 >> PUBLIC: Autour du nom de tf. 1468 01:09:51,790 --> 01:09:53,080 >> JASON HIRSCHHORN: Comme ça? 1469 01:09:53,080 --> 01:09:55,420 >> PUBLIC: Ouais. 1470 01:09:55,420 --> 01:09:59,000 Et puis fermez le td. 1471 01:09:59,000 --> 01:10:00,250 >> JASON HIRSCHHORN: Comme ça? 1472 01:10:00,250 --> 01:10:03,370 1473 01:10:03,370 --> 01:10:06,950 >> PUBLIC: Avez-vous besoin guillemets marques à côté des accolades? 1474 01:10:06,950 --> 01:10:07,460 >> JASON HIRSCHHORN: Juste ici? 1475 01:10:07,460 --> 01:10:08,710 Non, vous n'avez pas. 1476 01:10:08,710 --> 01:10:10,820 1477 01:10:10,820 --> 01:10:12,550 Donc, c'est exactement ça. 1478 01:10:12,550 --> 01:10:12,940 Ouais. 1479 01:10:12,940 --> 01:10:15,290 >> PUBLIC: Donc la différence entre ce et encatenating avec des points est, si 1480 01:10:15,290 --> 01:10:18,420 vous utilisez des points, vous devriez avoir la guillemets, puis un point, 1481 01:10:18,420 --> 01:10:20,370 alors le point - 1482 01:10:20,370 --> 01:10:20,520 >> JASON HIRSCHHORN: C'est exact. 1483 01:10:20,520 --> 01:10:23,800 Donc, vous dites qu'il ya une ultime façon d'écrire ce genre. 1484 01:10:23,800 --> 01:10:26,760 1485 01:10:26,760 --> 01:10:28,966 Qu'est-ce que l'opérateur de concaténation en JavaScript? 1486 01:10:28,966 --> 01:10:31,200 >> PUBLIC: Un signe plus. 1487 01:10:31,200 --> 01:10:34,710 Vous avez oublié de mettre le bouclés corset. 1488 01:10:34,710 --> 01:10:35,760 >> JASON HIRSCHHORN: Très bien. 1489 01:10:35,760 --> 01:10:38,850 Et il ya une ligne de plus des disparus de code. 1490 01:10:38,850 --> 01:10:40,130 Qui peut me donner la dernière ligne code qui nous manque? 1491 01:10:40,130 --> 01:10:43,940 1492 01:10:43,940 --> 01:10:47,602 >> PUBLIC: Juste exactement la même chose, juste avec la maison à la place du nom. 1493 01:10:47,602 --> 01:10:52,960 1494 01:10:52,960 --> 01:10:53,450 Grand 1495 01:10:53,450 --> 01:10:54,390 >> JASON HIRSCHHORN: Très bien. 1496 01:10:54,390 --> 01:10:59,320 Et votre syntaxe est exactement ce qu'il faire avancer les choses dans un tableau associatif. 1497 01:10:59,320 --> 01:11:04,450 Ainsi, dans le questionnaire réelle, vous êtes effectivement donné jusqu'à ici. 1498 01:11:04,450 --> 01:11:05,710 Donc, ce code vous a été donné. 1499 01:11:05,710 --> 01:11:07,750 Tout ce que vous aviez à écrire étaient les quatre lignes et n'oubliez pas de 1500 01:11:07,750 --> 01:11:09,190 fermer la balise table. 1501 01:11:09,190 --> 01:11:11,370 Vous avez fait effectivement tout cela et plus. 1502 01:11:11,370 --> 01:11:11,810 Ouais. 1503 01:11:11,810 --> 01:11:14,850 >> PUBLIC: Donc, il serait fonctionnellement même si vous venez d'avoir ce que tout en 1504 01:11:14,850 --> 01:11:17,250 un appel d'impression grand, non? 1505 01:11:17,250 --> 01:11:19,630 Et puis il suffit de concaténer sur, et cetera? 1506 01:11:19,630 --> 01:11:20,730 >> JASON HIRSCHHORN: Comme ça? 1507 01:11:20,730 --> 01:11:21,980 >> PUBLIC: Ouais. 1508 01:11:21,980 --> 01:11:23,810 1509 01:11:23,810 --> 01:11:26,940 Il n'aurait tout simplement pas l'air bien si vous étiez regarder quand vous êtes inspection 1510 01:11:26,940 --> 01:11:28,550 l'élément sur votre site, non? 1511 01:11:28,550 --> 01:11:29,800 >> JASON HIRSCHHORN: Je suis d'accord. 1512 01:11:29,800 --> 01:11:35,410 1513 01:11:35,410 --> 01:11:38,710 Si j'ai chargé cette page, je serais en mesure de voir ce code PHP, jamais? 1514 01:11:38,710 --> 01:11:39,240 >> PUBLIC: Non 1515 01:11:39,240 --> 01:11:40,080 >> JASON HIRSCHHORN: Non 1516 01:11:40,080 --> 01:11:42,240 Et en fait, je ne veux pas. 1517 01:11:42,240 --> 01:11:43,920 >> PUBLIC: Ce n'est pas HTML, non? 1518 01:11:43,920 --> 01:11:45,000 Donc, vous pourriez être en mesure de - 1519 01:11:45,000 --> 01:11:46,780 >> JASON HIRSCHHORN: Donc ce serait PHP évaluer côté serveur. 1520 01:11:46,780 --> 01:11:51,020 PHP est toujours évaluée côté serveur, de sorte vous n'êtes jamais en mesure de voir le code PHP. 1521 01:11:51,020 --> 01:11:52,980 >> PUBLIC: Mais vous seriez en mesure de voir le résultat des impressions. 1522 01:11:52,980 --> 01:11:53,480 >> JASON HIRSCHHORN: Droit. 1523 01:11:53,480 --> 01:11:55,510 Et il ne pourrait pas honnêtement mettre tout cela sur la ligne. 1524 01:11:55,510 --> 01:11:59,740 Il peut formater bien pour vous, ou il peut mettre sur une ligne. 1525 01:11:59,740 --> 01:12:01,521 Claire. 1526 01:12:01,521 --> 01:12:03,596 Mais oui, bon point. 1527 01:12:03,596 --> 01:12:06,470 >> PUBLIC: Comment se fait il ya pas de mise en évidence de texte pour 1528 01:12:06,470 --> 01:12:07,550 l'une des commandes PHP? 1529 01:12:07,550 --> 01:12:09,370 Parce que je me souviens avoir vu cela. 1530 01:12:09,370 --> 01:12:11,620 >> JASON HIRSCHHORN: Parce que c'est un Fichier. HTML ici au sommet. 1531 01:12:11,620 --> 01:12:20,390 1532 01:12:20,390 --> 01:12:21,650 Là vous allez. 1533 01:12:21,650 --> 01:12:25,752 1534 01:12:25,752 --> 01:12:28,800 >> PUBLIC: Si nous avons la méthode initiale le pour les boucles, à droite, si nous 1535 01:12:28,800 --> 01:12:33,500 voulu accéder à un tfs, serions-nous faire support de tfs 0 support, puis 1536 01:12:33,500 --> 01:12:35,180 [Inaudible]? 1537 01:12:35,180 --> 01:12:35,970 >> JASON HIRSCHHORN: Vous serait - 1538 01:12:35,970 --> 01:12:40,560 si vous dites pour la boucle, vous ferait en signe dollar tfs support 1 1539 01:12:40,560 --> 01:12:41,850 ou i, à droite. 1540 01:12:41,850 --> 01:12:46,780 Ou le signe dollar je ferme support puis crochet 1541 01:12:46,780 --> 01:12:49,600 guillemets, ouais. 1542 01:12:49,600 --> 01:12:50,640 >> OK, excellent. 1543 01:12:50,640 --> 01:12:53,020 Nous avons une question rapide. 1544 01:12:53,020 --> 01:12:55,090 Sept minutes, donc je veux pour aller sur celui-ci. 1545 01:12:55,090 --> 01:12:56,160 Ceci est un autre exemple. 1546 01:12:56,160 --> 01:12:58,740 Nous sommes maintenant une toute autre langue. 1547 01:12:58,740 --> 01:12:59,990 >> Nous avons du code HTML. 1548 01:12:59,990 --> 01:13:02,480 1549 01:13:02,480 --> 01:13:07,460 C'est une sorte de petit à l'écran, mais Je veux que vous regardez à travers ce vraiment 1550 01:13:07,460 --> 01:13:11,140 rapidement, et quelqu'un peut me dire, si je devais charger cette page web, 1551 01:13:11,140 --> 01:13:12,390 ce que je voudrais voir? 1552 01:13:12,390 --> 01:13:22,710 1553 01:13:22,710 --> 01:13:26,450 Décrire tout sur cette page Web. 1554 01:13:26,450 --> 01:13:28,630 Noé? 1555 01:13:28,630 --> 01:13:30,450 Qu'est-ce que je vois? 1556 01:13:30,450 --> 01:13:38,140 >> PUBLIC: Code à l'extrémité avant du Google avec une sensation pour le texte et une 1557 01:13:38,140 --> 01:13:39,190 bouton d'envoi. 1558 01:13:39,190 --> 01:13:41,180 >> JASON HIRSCHHORN: Et qu'est-ce dirait le bouton? 1559 01:13:41,180 --> 01:13:42,430 >> PUBLIC: Soumettre. 1560 01:13:42,430 --> 01:13:44,620 1561 01:13:44,620 --> 01:13:45,160 Oh, la recherche. 1562 01:13:45,160 --> 01:13:45,840 Je suis désolé. 1563 01:13:45,840 --> 01:13:46,830 >> JASON HIRSCHHORN: Il dirait recherche. 1564 01:13:46,830 --> 01:13:47,520 Rappelez-vous, nom. 1565 01:13:47,520 --> 01:13:50,550 Qu'est-ce que nous utilisons le nom de? 1566 01:13:50,550 --> 01:13:53,774 Cet attribut de nom, ce qui est celui utilisé pour? 1567 01:13:53,774 --> 01:13:55,470 >> [VOIX interposition] 1568 01:13:55,470 --> 01:13:59,300 >> PUBLIC: C'est son nom pour quand il est cliqué? 1569 01:13:59,300 --> 01:14:00,160 >> JASON HIRSCHHORN: C'est possible. 1570 01:14:00,160 --> 01:14:02,690 Mais que voyons-nous en général - pourquoi donnons-nous ce nom file d'attente? 1571 01:14:02,690 --> 01:14:03,830 Pourquoi ne voit-on cela? 1572 01:14:03,830 --> 01:14:05,220 Ouais. 1573 01:14:05,220 --> 01:14:08,600 >> PUBLIC: N'est-ce pas devenu index de la variable super-globale? 1574 01:14:08,600 --> 01:14:12,740 >> JASON HIRSCHHORN: Oui, généralement quand Ce formulaire soumettra, et alors où 1575 01:14:12,740 --> 01:14:13,500 serait-ce à présenter? 1576 01:14:13,500 --> 01:14:14,750 Qu'est-ce que la page? 1577 01:14:14,750 --> 01:14:16,820 1578 01:14:16,820 --> 01:14:18,460 Noé, ce que la page serait-ce soumettre à? 1579 01:14:18,460 --> 01:14:25,710 1580 01:14:25,710 --> 01:14:27,700 >> PUBLIC: Je ne suis pas sûr. 1581 01:14:27,700 --> 01:14:28,920 >> JASON HIRSCHHORN: Où pourrions nous pouvons le trouver? 1582 01:14:28,920 --> 01:14:31,025 Où trouvez-vous ce page, il soumet? 1583 01:14:31,025 --> 01:14:32,850 Quelle ligne de code? 1584 01:14:32,850 --> 01:14:34,040 >> PUBLIC: Action de formulaire. 1585 01:14:34,040 --> 01:14:34,650 >> JASON HIRSCHHORN: Exactement. 1586 01:14:34,650 --> 01:14:35,130 Action. 1587 01:14:35,130 --> 01:14:37,100 Donc, il se soumet à la page de recherche. 1588 01:14:37,100 --> 01:14:38,630 Recherche barre oblique inverse. 1589 01:14:38,630 --> 01:14:40,140 Donc, c'est exactement ça. 1590 01:14:40,140 --> 01:14:40,680 Quelle est la méthode? 1591 01:14:40,680 --> 01:14:42,090 >> PUBLIC: Get. 1592 01:14:42,090 --> 01:14:42,490 >> JASON HIRSCHHORN: Get. 1593 01:14:42,490 --> 01:14:43,420 Exactement. 1594 01:14:43,420 --> 01:14:44,490 Ainsi nous lisons ce. 1595 01:14:44,490 --> 01:14:45,180 Cela va être une forme. 1596 01:14:45,180 --> 01:14:45,910 Vous avez parfaitement raison. 1597 01:14:45,910 --> 01:14:50,340 Deux choses sur la forme, le titre de l' page et le haut serait Google. 1598 01:14:50,340 --> 01:14:54,270 >> Voici donc deux questions que vous devriez être en mesure de répondre sur cette page. 1599 01:14:54,270 --> 01:15:01,760 Si ce code html vit à ce site et l'utilisateur saisit bug dans ce texte 1600 01:15:01,760 --> 01:15:06,900 champ ici, ce sera URL l'utilisateur se trouve sur 1601 01:15:06,900 --> 01:15:08,150 soumettre le formulaire? 1602 01:15:08,150 --> 01:15:10,980 1603 01:15:10,980 --> 01:15:12,510 >> Donc, nous avons ce droit ici. 1604 01:15:12,510 --> 01:15:13,720 Je vais revenir à cette page, si. 1605 01:15:13,720 --> 01:15:16,980 Je vais écrire cette première partie. 1606 01:15:16,980 --> 01:15:18,230 Tout le monde peut voir ici? 1607 01:15:18,230 --> 01:15:30,620 1608 01:15:30,620 --> 01:15:32,906 OK, Mario, vous pensez que vous savez? 1609 01:15:32,906 --> 01:15:34,700 Qu'est-ce que la page? 1610 01:15:34,700 --> 01:15:37,630 >> PUBLIC: recherche Backslash. 1611 01:15:37,630 --> 01:15:38,880 >> JASON HIRSCHHORN: Je vais pour descendre ici. 1612 01:15:38,880 --> 01:15:44,800 1613 01:15:44,800 --> 01:15:49,155 OK, barre oblique inverse question de recherche marque q est égal bug. 1614 01:15:49,155 --> 01:15:53,560 1615 01:15:53,560 --> 01:15:55,165 Quelqu'un a une autre suggestion? 1616 01:15:55,165 --> 01:15:57,910 1617 01:15:57,910 --> 01:15:59,160 Ouais. 1618 01:15:59,160 --> 01:16:01,700 1619 01:16:01,700 --> 01:16:03,740 >> Alors, comment pouvons-nous obtenir? 1620 01:16:03,740 --> 01:16:05,520 Eh bien, nous avons vu cela avant. 1621 01:16:05,520 --> 01:16:07,170 Et vous êtes arrivé à l'heure. 1622 01:16:07,170 --> 01:16:08,870 Vous aviez raison, Noah, que le l'action nous dit ce 1623 01:16:08,870 --> 01:16:11,700 Cette page nous allons. 1624 01:16:11,700 --> 01:16:12,820 >> Nous savons aussi ce procédé. 1625 01:16:12,820 --> 01:16:13,420 Nous faisons get. 1626 01:16:13,420 --> 01:16:17,040 Et la différence entre GET et POST est que d'être témoin dans l'URL 1627 01:16:17,040 --> 01:16:18,490 et après ne fonctionne pas. 1628 01:16:18,490 --> 01:16:22,760 Donc, si j'ai écrit après là, dans la méthode, ce serait différent? 1629 01:16:22,760 --> 01:16:24,250 >> PUBLIC: Il serait juste être la recherche de barre oblique. 1630 01:16:24,250 --> 01:16:25,400 >> JASON HIRSCHHORN: Il serait juste être réduire la recherche. 1631 01:16:25,400 --> 01:16:27,400 Rien ici ne se produirait. 1632 01:16:27,400 --> 01:16:30,030 Mais parce que c'est un obtenir, l'URL s'affiche comme suit. 1633 01:16:30,030 --> 01:16:35,140 Nous voyons d'abord un point d'interrogation et nous voyons le nom et la valeur. 1634 01:16:35,140 --> 01:16:42,730 Dire qu'il y avait un autre champ de texte et Je lui ai donné un nom de r et je saisir un 1635 01:16:42,730 --> 01:16:45,220 valeur, chenille. 1636 01:16:45,220 --> 01:16:48,560 Qu'est-ce que cela ressemble maintenant? 1637 01:16:48,560 --> 01:16:52,040 J'ai encore une zone de texte, je donne un nom de r et une valeur de chenille. 1638 01:16:52,040 --> 01:16:56,990 >> PUBLIC: Après barre vous avez la chenille et commercial. 1639 01:16:56,990 --> 01:16:58,380 >> JASON HIRSCHHORN: C'est pas esperluette. 1640 01:16:58,380 --> 01:17:00,500 >> PUBLIC: Ou tout simplement ce que et le symbole. 1641 01:17:00,500 --> 01:17:01,330 >> JASON HIRSCHHORN: Ouais, non. 1642 01:17:01,330 --> 01:17:03,700 Vous aviez raison, j'avais tort. 1643 01:17:03,700 --> 01:17:05,660 C'est comme un g. 1644 01:17:05,660 --> 01:17:06,910 >> PUBLIC: Caterpillar. 1645 01:17:06,910 --> 01:17:08,840 1646 01:17:08,840 --> 01:17:11,090 r est égal à chenille, désolé. 1647 01:17:11,090 --> 01:17:13,970 1648 01:17:13,970 --> 01:17:14,700 >> JASON HIRSCHHORN: Est-il pas r là-dedans? 1649 01:17:14,700 --> 01:17:16,680 >> PUBLIC: Non, il est. 1650 01:17:16,680 --> 01:17:18,030 >> JASON HIRSCHHORN: Nous parlerons à ce sujet après la classe. 1651 01:17:18,030 --> 01:17:18,930 C'est exactement ça. 1652 01:17:18,930 --> 01:17:20,530 Donc le et est correcte. 1653 01:17:20,530 --> 01:17:23,430 Et alors vous pourriez avoir beaucoup de ceux-ci, et ils seraient tous enchaînés 1654 01:17:23,430 --> 01:17:24,950 ainsi que et. 1655 01:17:24,950 --> 01:17:25,900 Donc, c'est exactement ça. 1656 01:17:25,900 --> 01:17:27,700 >> Il ya une autre question. 1657 01:17:27,700 --> 01:17:30,676 Dessinez DOM de ce code html, à partir avec le document. 1658 01:17:30,676 --> 01:17:33,330 1659 01:17:33,330 --> 01:17:34,570 Nous pourrions le faire en deux minutes. 1660 01:17:34,570 --> 01:17:36,790 Nous allons le faire ici. 1661 01:17:36,790 --> 01:17:38,040 Je vais revenir à cette page. 1662 01:17:38,040 --> 01:17:40,630 1663 01:17:40,630 --> 01:17:42,160 OK, nous commençons avec le document. 1664 01:17:42,160 --> 01:17:49,698 1665 01:17:49,698 --> 01:17:52,090 >> Quelle est la prochaine? 1666 01:17:52,090 --> 01:17:53,910 Ainsi, lorsque vous lisez à travers - 1667 01:17:53,910 --> 01:17:54,540 >> PUBLIC: HTML. 1668 01:17:54,540 --> 01:17:55,790 >> JASON HIRSCHHORN: HTML est prochaine. 1669 01:17:55,790 --> 01:17:57,850 Nous allons aller tag par tag. 1670 01:17:57,850 --> 01:18:00,890 Quoi de HTML après? 1671 01:18:00,890 --> 01:18:01,550 >> PUBLIC: Head. 1672 01:18:01,550 --> 01:18:02,800 >> JASON HIRSCHHORN: Head. 1673 01:18:02,800 --> 01:18:05,090 1674 01:18:05,090 --> 01:18:08,520 Qu'est-ce après la tête? 1675 01:18:08,520 --> 01:18:09,770 >> PUBLIC: Titre. 1676 01:18:09,770 --> 01:18:11,880 1677 01:18:11,880 --> 01:18:12,560 >> JASON HIRSCHHORN: Titre. 1678 01:18:12,560 --> 01:18:14,740 Et le titre a une valeur de Google, mais je ne vais pas 1679 01:18:14,740 --> 01:18:16,240 écrire que dans pour le moment. 1680 01:18:16,240 --> 01:18:18,750 OK, d'où vient corps aller? 1681 01:18:18,750 --> 01:18:20,890 >> PUBLIC: aussi se détacher de l'HTML. 1682 01:18:20,890 --> 01:18:21,490 >> JASON HIRSCHHORN: Exactement. 1683 01:18:21,490 --> 01:18:22,820 Corps se détache d'ici. 1684 01:18:22,820 --> 01:18:25,970 1685 01:18:25,970 --> 01:18:30,330 Est-ce que tout le monde voir pourquoi c'est le cas? 1686 01:18:30,330 --> 01:18:32,970 Vous devriez être en mesure de comprendre ce, trop, même si je n'ai pas eu 1687 01:18:32,970 --> 01:18:33,665 cette belle indentation. 1688 01:18:33,665 --> 01:18:37,680 >> L'indentation sorte de le donne loin, mais vous pouvez voir que la balise de tête a 1689 01:18:37,680 --> 01:18:41,240 été fermé, ce qui signifie probablement que nous ne peut pas descendre ici. 1690 01:18:41,240 --> 01:18:43,460 Nous devons revenir à ce que C'était juste avant la tête 1691 01:18:43,460 --> 01:18:44,730 tag, ou en vertu de cette. 1692 01:18:44,730 --> 01:18:46,720 Nous sommes même avec l'étiquette de tête. 1693 01:18:46,720 --> 01:18:48,560 >> Et sous le corps va formulaire. 1694 01:18:48,560 --> 01:18:50,300 Sous forme, il ya deux entrées. 1695 01:18:50,300 --> 01:18:53,330 1696 01:18:53,330 --> 01:18:54,420 OK. 1697 01:18:54,420 --> 01:18:55,490 C'est tout ce que j'ai. 1698 01:18:55,490 --> 01:18:56,980 Quiz 1 est demain. 1699 01:18:56,980 --> 01:18:58,350 Je suis tellement excitée pour vous les gars. 1700 01:18:58,350 --> 01:18:59,690 Ça va être une explosion. 1701 01:18:59,690 --> 01:19:00,250 >> Si vous avez - 1702 01:19:00,250 --> 01:19:00,600 >> PUBLIC: [applaudissements] 1703 01:19:00,600 --> 01:19:02,460 >> JASON HIRSCHHORN: Oh arrêtez, arrêtez. 1704 01:19:02,460 --> 01:19:04,520 Mais non, je plaisante. 1705 01:19:04,520 --> 01:19:07,220 Si vous avez des questions, droit après l'article, je serai dehors. 1706 01:19:07,220 --> 01:19:11,700 Si vous avez des questions ce soir, n'hésitez pas à appeler, email, Gchat, 1707 01:19:11,700 --> 01:19:12,740 transporteur me Pigeon. 1708 01:19:12,740 --> 01:19:13,950 Bonne chance pour demain. 1709 01:19:13,950 --> 01:19:16,220 Passez de bonnes vacances de Thanksgiving, si je ne vous vois pas avant. 1710 01:19:16,220 --> 01:19:19,320 Et je vais vous voir après Thanksgiving le mardi pour notre finale 1711 01:19:19,320 --> 01:19:20,295 section fête jamais. 1712 01:19:20,295 --> 01:19:21,545 >> PUBLIC: [inaudible]. 1713 01:19:21,545 --> 01:19:25,270 1714 01:19:25,270 --> 01:19:25,790 >> JASON HIRSCHHORN: Très bien. 1715 01:19:25,790 --> 01:19:28,900 OK, je vais voir les gars à côté semaines, ou d'environ deux semaines. 1716 01:19:28,900 --> 01:19:30,150 Et bonne chance pour demain. 1717 01:19:30,150 --> 01:19:32,203