1 00:00:00,000 --> 00:00:11,050 2 00:00:11,050 --> 00:00:13,351 >> ROB BOWDEN: Ceci est la section plus à l'aise, 3 00:00:13,351 --> 00:00:16,309 mais cela ne signifie pas que si vous se sentir comme vous n'êtes pas plus à l'aise 4 00:00:16,309 --> 00:00:18,420 vous ne serez pas apprendre des choses ici. 5 00:00:18,420 --> 00:00:20,600 Donc, nous allons commencer. 6 00:00:20,600 --> 00:00:22,819 Avez-vous des diapositives aller dans les choses. 7 00:00:22,819 --> 00:00:24,360 Vais-je prendre juste en ce moment? 8 00:00:24,360 --> 00:00:25,680 9 00:00:25,680 --> 00:00:26,450 Ordinateurs portables de commutation. 10 00:00:26,450 --> 00:00:30,470 11 00:00:30,470 --> 00:00:32,950 >> ALLISON: Vous ne voulez pas présentez-vous, Rob? 12 00:00:32,950 --> 00:00:34,090 >> ROB BOWDEN: Oh, je suis Rob. 13 00:00:34,090 --> 00:00:35,182 14 00:00:35,182 --> 00:00:37,470 Ceci est mon cinquième année TF-ing CS50. 15 00:00:37,470 --> 00:00:38,760 16 00:00:38,760 --> 00:00:39,650 >> GABRIEL: Je suis Gabriel. 17 00:00:39,650 --> 00:00:41,610 Je suis chef de TF CS50. 18 00:00:41,610 --> 00:00:44,009 Je suis TF année dernière et cette année. 19 00:00:44,009 --> 00:00:46,675 Allison: Et je suis Alison, et ce est ma deuxième année TF-ing CS50. 20 00:00:46,675 --> 00:00:48,510 21 00:00:48,510 --> 00:00:50,825 >> ROB BOWDEN: Très bien, alors cette chose sur la gauche, 22 00:00:50,825 --> 00:00:52,250 nous espérons que vous avez vu avant. 23 00:00:52,250 --> 00:00:54,112 Si pas parce que vous télécharger pour vous-même, 24 00:00:54,112 --> 00:00:55,570 vous devriez avoir vu en conférence. 25 00:00:55,570 --> 00:00:56,590 26 00:00:56,590 --> 00:01:01,320 Donc, cela est l'appareil de CS50, et il a fait un peu de la description de celui-ci 27 00:01:01,320 --> 00:01:01,880 en conférence. 28 00:01:01,880 --> 00:01:06,890 Mais fondamentalement, il n'y a que toi exécutez une exploitation 29 00:01:06,890 --> 00:01:10,550 système au sein de votre exploitation système afin que nous puissions vous donner 30 00:01:10,550 --> 00:01:12,540 programmes sans avoir besoin vous inquiétez pas, oh est-ce 31 00:01:12,540 --> 00:01:15,989 aller travailler sur Windows et Mac, ou si certains d'entre vous 32 00:01:15,989 --> 00:01:17,280 utilisent déjà Linux, Linux. 33 00:01:17,280 --> 00:01:18,532 34 00:01:18,532 --> 00:01:20,240 Il est juste censé un jeu commun 35 00:01:20,240 --> 00:01:23,010 domaine que tout le monde a le même environnement exact. 36 00:01:23,010 --> 00:01:25,344 >> Donc, si vous ne l'avez pas téléchargé déjà, 37 00:01:25,344 --> 00:01:28,510 vous devez télécharger, parce que vous êtes allez en avoir besoin pour l'ensemble de problème. 38 00:01:28,510 --> 00:01:32,335 Et il est un deux gigaoctet télécharger, de sorte qu'il pourrait prendre un certain temps. 39 00:01:32,335 --> 00:01:33,780 Sur la Harvard ça va aller vite. 40 00:01:33,780 --> 00:01:35,870 41 00:01:35,870 --> 00:01:37,440 Appareil Pour CS50. 42 00:01:37,440 --> 00:01:41,980 >> Maintenant, au début, nous allons parler de tout un tas de ligne de commande 43 00:01:41,980 --> 00:01:46,880 choses, et si par là, je veux dire de travail dans ce petit milieu ici. 44 00:01:46,880 --> 00:01:53,230 Et remarquez tout de choses Je dis ici et maintenant 45 00:01:53,230 --> 00:01:56,900 vont travailler si vous êtes à l'intérieur de une borne à l'intérieur de l'appareil, 46 00:01:56,900 --> 00:02:00,790 ou si vous êtes à l'intérieur de la fenêtre du terminal gedit 47 00:02:00,790 --> 00:02:02,090 à l'intérieur de l'appareil. 48 00:02:02,090 --> 00:02:03,770 Donc, ces environnements sont identiques. 49 00:02:03,770 --> 00:02:04,940 50 00:02:04,940 --> 00:02:07,270 >> Mais je vais aller une troisième voie. 51 00:02:07,270 --> 00:02:12,200 Et remarquez ici ce peu d'adresse IP ici. 52 00:02:12,200 --> 00:02:15,940 Donc, vous ne devez pas le faire, mais cette adresse IP 53 00:02:15,940 --> 00:02:19,700 address-- maintenant si je-- sauf elle est bloquée par cette chose. 54 00:02:19,700 --> 00:02:22,790 55 00:02:22,790 --> 00:02:27,000 OK, de sorte que l'adresse IP plus dans un terminal 56 00:02:27,000 --> 00:02:31,090 ici-- si ce terminal sur ici est un terminal dans mon Mac. 57 00:02:31,090 --> 00:02:34,540 Donc, cela est en aucune façon actuellement associé à l'appareil du tout. 58 00:02:34,540 --> 00:02:39,360 Et si vous êtes sous Windows, alors vous êtes allez avoir besoin de télécharger quelque chose 59 00:02:39,360 --> 00:02:44,430 spécifiquement pour cela, en particulier les gens ont tendance utiliser Putty, P-U-T-T-Y. 60 00:02:44,430 --> 00:02:50,700 >> Donc ce que je vais faire est de type SSH et ensuite cette adresse IP. 61 00:02:50,700 --> 00:02:54,030 Eh bien, jharvard à cette adresse IP. 62 00:02:54,030 --> 00:03:00,150 Donc 192.168.24.220. 63 00:03:00,150 --> 00:03:02,127 Ce message effrayant, l'ignorer. 64 00:03:02,127 --> 00:03:02,710 Il suffit de taper oui. 65 00:03:02,710 --> 00:03:04,550 66 00:03:04,550 --> 00:03:06,030 Ceci est CS50 dans une boîte. 67 00:03:06,030 --> 00:03:07,460 Il vous demande votre mot de passe. 68 00:03:07,460 --> 00:03:11,910 >> Et dans beaucoup de ces contextes où il demande le mot de passe, [inaudible]. 69 00:03:11,910 --> 00:03:15,670 Nous avons beaucoup de questions où il dit qu'il est pas réellement saisissant. 70 00:03:15,670 --> 00:03:20,011 Il ne vous montre pas les caractères de le mot de passe que vous tapez, si quoi que ce soit, 71 00:03:20,011 --> 00:03:23,010 pour une fonction de sécurité, parce que si quelqu'un regarde par-dessus votre épaule 72 00:03:23,010 --> 00:03:25,870 et ils voient star star star star, alors qu'ils 73 00:03:25,870 --> 00:03:28,640 savoir que votre mot de passe est quatre caractères. 74 00:03:28,640 --> 00:03:32,660 Donc, l'idée est qu'il demandera vous pour votre mot de passe, le type. 75 00:03:32,660 --> 00:03:34,490 Il ne va pas se montrer vous les personnages, 76 00:03:34,490 --> 00:03:36,090 mais il est en fait de les accepter. 77 00:03:36,090 --> 00:03:39,210 Dans ce cas, chaque fois que vous jamais voir une invite de mot de passe 78 00:03:39,210 --> 00:03:42,280 le traitement avec l'appareil, le mot de passe va être cramoisi. 79 00:03:42,280 --> 00:03:43,270 Donc cramoisi. 80 00:03:43,270 --> 00:03:44,730 81 00:03:44,730 --> 00:03:50,550 >> Et maintenant, ici à l'intérieur de cette fenêtre qui est en mon Mac, 82 00:03:50,550 --> 00:03:54,120 Je rencontre essentiellement le même point de vue exact 83 00:03:54,120 --> 00:03:57,040 comme à l'intérieur d'un terminal dans l'appareil. 84 00:03:57,040 --> 00:03:58,470 Donc, vous n'êtes pas obligé de le faire. 85 00:03:58,470 --> 00:04:01,300 Vous pouvez faire tout ce que vous voulez à l'intérieur de l'appareil. 86 00:04:01,300 --> 00:04:05,140 Je fais presque jamais fait rien dans l'appareil. 87 00:04:05,140 --> 00:04:09,440 Je suis presque toujours minimiser ce et maintenant Je SSH travail dans l'appareil. 88 00:04:09,440 --> 00:04:11,480 89 00:04:11,480 --> 00:04:14,180 >> Si quoi que ce soit, si vous un ordinateur plus lent, 90 00:04:14,180 --> 00:04:15,820 vous remarquerez peut-être une différence. 91 00:04:15,820 --> 00:04:18,839 Je le fais parce que je préfère cette fenêtre de terminal. 92 00:04:18,839 --> 00:04:20,881 Il a quelques fonctionnalités comme Je peux diviser la fenêtre, 93 00:04:20,881 --> 00:04:22,672 et maintenant je peux SSH à travers l'appareil. 94 00:04:22,672 --> 00:04:24,105 Je suis deux SSH qui se passe à la fois. 95 00:04:24,105 --> 00:04:28,030 96 00:04:28,030 --> 00:04:32,250 Si votre ordinateur est particulièrement lent et vous travaillez dans l'appareil, 97 00:04:32,250 --> 00:04:35,200 et vous vous rendez compte ce sont vraiment lag, peu importe. 98 00:04:35,200 --> 00:04:38,220 A tendance à être beaucoup plus rapide si vous êtes SSH-ed dans. 99 00:04:38,220 --> 00:04:40,960 Mais sinon, vous pouvez travailler de toute façon. 100 00:04:40,960 --> 00:04:42,388 >> Public: Qu'est-ce que SSH signifie? 101 00:04:42,388 --> 00:04:43,820 102 00:04:43,820 --> 00:04:47,479 >> ROB BOWDEN: coques sécurisées, quelque chose comme ça? 103 00:04:47,479 --> 00:04:48,270 Qu'est-ce que SSH signifie? 104 00:04:48,270 --> 00:04:54,214 105 00:04:54,214 --> 00:04:55,130 GABRIEL: Secure Shell. 106 00:04:55,130 --> 00:04:56,463 ALLISON: Il est juste shell sécurisé. 107 00:04:56,463 --> 00:04:57,720 ROB BOWDEN: Secure Shell. 108 00:04:57,720 --> 00:05:03,700 Il est un protocole qui vous-- il est un protocole sécurisé, donc cryptées. 109 00:05:03,700 --> 00:05:06,850 On ne peut pas espionner le réseau et voyez ce que vous dites à quoi que ce soit 110 00:05:06,850 --> 00:05:08,120 vous êtes SSH-ed à. 111 00:05:08,120 --> 00:05:12,900 Et en fait, dans le vieux jours CS50, donc en 2009 112 00:05:12,900 --> 00:05:19,300 quand je suis un étudiant de première année, la façon dont vous avez travaillé sur CS50 ensembles de problèmes, 113 00:05:19,300 --> 00:05:22,490 vous étiez SSH-ed à un serveur que nous vous avons donné accès à, 114 00:05:22,490 --> 00:05:23,497 et vous avez travaillé là-bas. 115 00:05:23,497 --> 00:05:25,330 Donc, vous ne disposez pas de cette appareil graphique. 116 00:05:25,330 --> 00:05:26,160 Vous ne devez gedit. 117 00:05:26,160 --> 00:05:28,930 Vous ne avez pas toutes ces choses qui vous pouvez visuellement pointer et cliquer. 118 00:05:28,930 --> 00:05:30,346 Vous avez eu à travailler dans cette interface. 119 00:05:30,346 --> 00:05:31,580 120 00:05:31,580 --> 00:05:33,716 Je préfère travailler dans cette interface. 121 00:05:33,716 --> 00:05:36,090 Donc, une partie de ce que nous allons pour aller à plus droit maintenant 122 00:05:36,090 --> 00:05:39,560 sont un groupe de la commandes que vous devriez 123 00:05:39,560 --> 00:05:42,095 commencer à se familiariser avec comme vous avancez dans le cours. 124 00:05:42,095 --> 00:05:43,190 125 00:05:43,190 --> 00:05:45,790 Et honnêtement, une fois que vous s'y habituer, il 126 00:05:45,790 --> 00:05:48,220 est beaucoup plus rapide à travailler dans cet environnement 127 00:05:48,220 --> 00:05:53,690 que de travailler avec le Finder, faisant glisser et en cliquant sur les choses. 128 00:05:53,690 --> 00:05:55,340 129 00:05:55,340 --> 00:05:57,210 >> Donc nous sommes ici. 130 00:05:57,210 --> 00:06:01,779 Maintenant, je viens SSH-ed dans, et si la valeur par défaut vous location-- 131 00:06:01,779 --> 00:06:04,820 vu certaines de ces commandes en classe, mais nous allons passer en revue tous les à nouveau. 132 00:06:04,820 --> 00:06:08,060 L'emplacement par défaut nous sommes en est le répertoire de base. 133 00:06:08,060 --> 00:06:11,520 Et répertoire, juste un autre mot pour le dossier. 134 00:06:11,520 --> 00:06:13,310 Nous sommes donc dans le répertoire de la maison. 135 00:06:13,310 --> 00:06:15,889 Tapez ls, lister les fichiers dans ce répertoire. 136 00:06:15,889 --> 00:06:17,430 Évidemment je créé un blah.c plus tôt. 137 00:06:17,430 --> 00:06:19,120 138 00:06:19,120 --> 00:06:20,472 Donc, nous avons un répertoire de bureau. 139 00:06:20,472 --> 00:06:21,930 Vous remarquez la coloration syntaxique? 140 00:06:21,930 --> 00:06:27,400 141 00:06:27,400 --> 00:06:32,900 La mise en évidence en bleu clair indique un répertoire et le blanc droite 142 00:06:32,900 --> 00:06:34,380 indique juste un fichier. 143 00:06:34,380 --> 00:06:35,410 144 00:06:35,410 --> 00:06:37,690 Donc, il va y avoir des d'autres couleurs que vous voyez. 145 00:06:37,690 --> 00:06:41,240 Un fichier exécutable va probablement être vert ou quelque chose comme ça. 146 00:06:41,240 --> 00:06:44,820 OK, nous sommes donc dans le répertoire de la maison. 147 00:06:44,820 --> 00:06:48,970 >> Maintenant, si je veux aller dans un autre répertoire, cd est la commande que je veux. 148 00:06:48,970 --> 00:06:52,720 Donc changer de répertoire, puis vous passer le nom du répertoire 149 00:06:52,720 --> 00:06:54,020 que vous voulez aller dans. 150 00:06:54,020 --> 00:06:55,780 Nous avons donc ici quatre options. 151 00:06:55,780 --> 00:07:03,397 Je peux aller dans les téléchargements, et maintenant nous voir ici il a mis à jour cette parenthèse 152 00:07:03,397 --> 00:07:04,480 dire que je suis dans ~ / Téléchargements. 153 00:07:04,480 --> 00:07:05,620 154 00:07:05,620 --> 00:07:06,800 >> Alors, quelle est tilde? 155 00:07:06,800 --> 00:07:10,640 Il est un raccourci pour votre répertoire personnel. 156 00:07:10,640 --> 00:07:15,260 Donc, presque tout ce que vous faites va être à l'égard de votre répertoire personnel, 157 00:07:15,260 --> 00:07:20,620 et pwd est juste une commande Je l'utilise une fois par an que 158 00:07:20,620 --> 00:07:22,420 imprime seulement le répertoire courant. 159 00:07:22,420 --> 00:07:25,730 Et si vous voyez ici que ~ / Téléchargements décide vraiment 160 00:07:25,730 --> 00:07:26,896 / home / jharvard / téléchargements. 161 00:07:26,896 --> 00:07:29,320 162 00:07:29,320 --> 00:07:32,230 Donc / home / jharvard est mon répertoire. 163 00:07:32,230 --> 00:07:33,700 164 00:07:33,700 --> 00:07:39,400 >> Donc, nous pouvons cd DOT. 165 00:07:39,400 --> 00:07:47,800 Maintenant dot dot est un répertoire spécial se réfère toujours à la place d'un répertoire. 166 00:07:47,800 --> 00:07:51,730 Donc, si je suis dans ~ / Downloads, puis cd point point va me mettre au tilde. 167 00:07:51,730 --> 00:07:52,950 168 00:07:52,950 --> 00:07:55,490 Que pensons-nous cd dot dot va me faire maintenant? 169 00:07:55,490 --> 00:07:58,740 170 00:07:58,740 --> 00:08:00,570 Il va me porter à / home. 171 00:08:00,570 --> 00:08:04,450 Donc tilde par le répertoire de travail d'impression, Je suis maintenant dans / home / jharvard. 172 00:08:04,450 --> 00:08:06,060 173 00:08:06,060 --> 00:08:08,820 un répertoire à partir de ce, maintenant il est dit ici / home. 174 00:08:08,820 --> 00:08:12,330 175 00:08:12,330 --> 00:08:17,180 >> Maintenant cd dot dot. 176 00:08:17,180 --> 00:08:20,910 Maintenant, je suis dans le répertoire racine, et vous ne pouvez pas le faire à nouveau. 177 00:08:20,910 --> 00:08:23,340 Vous aurez juste à rester dans le répertoire racine pour toujours. 178 00:08:23,340 --> 00:08:26,700 Le répertoire racine a tout un tas de choses que, si vous voulez regarder dans, 179 00:08:26,700 --> 00:08:27,410 vous pouvez. 180 00:08:27,410 --> 00:08:29,700 Par exemple, si je vais dans le bac, qui contient 181 00:08:29,700 --> 00:08:35,789 tous ces binaires, comme ls, et cd, et toutes ces choses. 182 00:08:35,789 --> 00:08:38,630 Ainsi, ces commandes doivent existe quelque part dans le système, 183 00:08:38,630 --> 00:08:40,820 et il est dans le répertoire / bin. 184 00:08:40,820 --> 00:08:44,530 Mais presque tout ce que vous faites est va être de votre répertoire personnel. 185 00:08:44,530 --> 00:08:49,490 Et cd sans aucun argument que ce soit, vous pourriez dire cd ~, ne pas besoin. 186 00:08:49,490 --> 00:08:51,810 CD va vous apporter Retour à votre répertoire personnel. 187 00:08:51,810 --> 00:08:53,170 188 00:08:53,170 --> 00:08:54,230 >> Un dernier. 189 00:08:54,230 --> 00:09:00,200 cd - va vous ramener à le dernier répertoire que vous vous trouviez. 190 00:09:00,200 --> 00:09:04,080 Je viens donc de cd'd deux fois de suite, de sorte que mon dernier répertoire est le répertoire de base. 191 00:09:04,080 --> 00:09:11,520 Si je vais à réduire bin, et maintenant montons et en utilisateur. 192 00:09:11,520 --> 00:09:12,550 193 00:09:12,550 --> 00:09:13,280 part de l'utilisateur. 194 00:09:13,280 --> 00:09:14,840 195 00:09:14,840 --> 00:09:15,940 Passons à l'action de l'utilisateur. 196 00:09:15,940 --> 00:09:17,140 Maintenant, je suis maintenant de la part de l'utilisateur. 197 00:09:17,140 --> 00:09:19,320 cd -, retour dans bin. 198 00:09:19,320 --> 00:09:22,980 Donc, cela devient particulièrement utile lorsque vous have-- et ça va passer. 199 00:09:22,980 --> 00:09:25,660 Ainsi la part de l'utilisateur, de retour bin, bin part. 200 00:09:25,660 --> 00:09:27,250 >> Donc, cela devient utile. 201 00:09:27,250 --> 00:09:33,150 Vous pouvez trouver vous-même avoir beaucoup, beaucoup, beaucoup de répertoires imbriqués. 202 00:09:33,150 --> 00:09:37,370 Et vous voulez faire quelque chose très vite dans un répertoire supérieur. 203 00:09:37,370 --> 00:09:40,330 Vous allez dans ce répertoire, faites changements et des trucs comme ça, 204 00:09:40,330 --> 00:09:42,400 et maintenant vous voulez aller à l'endroit où vous étiez. 205 00:09:42,400 --> 00:09:43,660 cd -. 206 00:09:43,660 --> 00:09:47,320 Je suis toujours frustré quand je suis d'aller 207 00:09:47,320 --> 00:09:49,630 à ce répertoire, je voulu faire travailler. 208 00:09:49,630 --> 00:09:52,670 Je suis toujours frustré quand je l'ai fait en deux étapes au lieu d'une étape, 209 00:09:52,670 --> 00:09:55,715 parce que cela signifie que cd - va de mettre en cet endroit intermédiaire 210 00:09:55,715 --> 00:09:57,010 à la place où je veux aller. 211 00:09:57,010 --> 00:09:59,350 212 00:09:59,350 --> 00:10:01,450 >> Ainsi, nous voyons tous les fichiers de la liste. 213 00:10:01,450 --> 00:10:03,300 Nous savons comment se déplacer jusqu'ici. 214 00:10:03,300 --> 00:10:09,900 Donc, maintenant nous allons parler de l'édition de fichiers. 215 00:10:09,900 --> 00:10:18,790 Donc, dans ce cours, vous êtes presque toujours prévu d'utiliser gedit. 216 00:10:18,790 --> 00:10:24,410 Si vous voulez, vous pouvez passer à l'étape suivante et commencer à apprendre un texte de ligne de commande 217 00:10:24,410 --> 00:10:25,240 éditeur. 218 00:10:25,240 --> 00:10:27,560 Donc, différentes options existent. 219 00:10:27,560 --> 00:10:31,760 >> Et ceux qui sont probablement va être pertinent pour vous, 220 00:10:31,760 --> 00:10:35,340 nous avons Nano, Vim, et Emacs. 221 00:10:35,340 --> 00:10:40,196 Donc Nano est les débutants ligne de commande de l'éditeur de texte. 222 00:10:40,196 --> 00:10:42,985 Donc Nano allons-y sur blah.c je créé plus tôt. 223 00:10:42,985 --> 00:10:44,030 224 00:10:44,030 --> 00:10:46,480 Il est juste ce fichier C standard. 225 00:10:46,480 --> 00:10:51,540 Et vous voyez tout un tas de choses passe en bas de l'écran, 226 00:10:51,540 --> 00:10:54,100 et apparemment blah.c contient ce code C. 227 00:10:54,100 --> 00:10:55,420 228 00:10:55,420 --> 00:11:00,330 >> Donc, dans cet éditeur particulier, ce qu'il a dit à la bottom-- 229 00:11:00,330 --> 00:11:06,290 maintenant ce symbole caret, nous voyons ce ^ G, ^ X, ^ O. 230 00:11:06,290 --> 00:11:10,310 Alors que dans la quasi-totalité contexte que vous voyez, 231 00:11:10,310 --> 00:11:13,530 vous pouvez voir que symbole de curseur dans d'autres endroits en ligne, sur Stack Overflow, 232 00:11:13,530 --> 00:11:14,450 quelque chose comme ça. 233 00:11:14,450 --> 00:11:16,970 Il renvoie presque toujours à contrôler. 234 00:11:16,970 --> 00:11:21,590 Donc, pour sortir je veux faire Contrôle Contrôle X. X, quitte. 235 00:11:21,590 --> 00:11:22,750 236 00:11:22,750 --> 00:11:26,855 Et je peux utiliser ma flèche fléchées pour se déplacer. 237 00:11:26,855 --> 00:11:28,010 238 00:11:28,010 --> 00:11:31,015 Remarquez que je ne peux pas pointer et cliquer facilement. 239 00:11:31,015 --> 00:11:33,000 240 00:11:33,000 --> 00:11:35,010 Vous devez utiliser votre flèche fléchées pour se déplacer. 241 00:11:35,010 --> 00:11:36,950 Il pourrait y avoir un cadre pour pointer et cliquer. 242 00:11:36,950 --> 00:11:40,000 >> Mais nous allons faire quelques changements. 243 00:11:40,000 --> 00:11:42,100 Maintenant Contrôle X pour aller sortie. 244 00:11:42,100 --> 00:11:44,120 Il va dire sauver tampon modifié. 245 00:11:44,120 --> 00:11:47,900 Maintenant l'invite, y pour oui, N pour non. 246 00:11:47,900 --> 00:11:49,900 Contrôle C pour annuler. 247 00:11:49,900 --> 00:11:50,780 Je vais juste dire oui. 248 00:11:50,780 --> 00:11:51,709 Nom d'écrire le fichier. 249 00:11:51,709 --> 00:11:53,500 La valeur par défaut est le fichier qu'il est déjà. 250 00:11:53,500 --> 00:11:54,230 Appuyez sur Entrée. 251 00:11:54,230 --> 00:11:54,740 Dáccord. 252 00:11:54,740 --> 00:11:58,580 Maintenant, je viens édité ce fichier, enregistrée, et il est modifié. 253 00:11:58,580 --> 00:11:59,770 254 00:11:59,770 --> 00:12:03,000 >> Donc Nano est le plus facile éditeur de texte s'y habituer. 255 00:12:03,000 --> 00:12:05,520 Les alternatives sont Vim et Emacs. 256 00:12:05,520 --> 00:12:11,250 Ce sont plus haut niveau des éditeurs de texte qui ont une courbe d'apprentissage très raide. 257 00:12:11,250 --> 00:12:13,740 Donc, ma préférence personnelle est Vim. 258 00:12:13,740 --> 00:12:17,175 Et il a une grande variété d'options. 259 00:12:17,175 --> 00:12:18,210 260 00:12:18,210 --> 00:12:24,070 Et une fois que vous vous habituez à elle, vous ne serez jamais 261 00:12:24,070 --> 00:12:26,900 envie d'aller à un autre éditeur de texte parce que vous venez 262 00:12:26,900 --> 00:12:29,590 avoir tant de choses à votre disposition dans ceux-ci, 263 00:12:29,590 --> 00:12:31,690 mais il faut vraiment beaucoup de temps pour apprendre. 264 00:12:31,690 --> 00:12:36,000 Alors peut-être vous voulez juste pour forcer vous dès maintenant pour s'y habituer, 265 00:12:36,000 --> 00:12:38,130 mais je dirais que ça vaut le coup. 266 00:12:38,130 --> 00:12:39,660 Mais il est difficile. 267 00:12:39,660 --> 00:12:41,220 >> Et puis Emacs. 268 00:12:41,220 --> 00:12:44,940 Je me bats toujours dans Emacs car Je sais comment faire absolument rien. 269 00:12:44,940 --> 00:12:47,755 Apparemment, Emacs est pas par défaut installé sur l'appareil. 270 00:12:47,755 --> 00:12:49,210 271 00:12:49,210 --> 00:12:51,720 Nous allons probablement ajouter que comme les installations par défaut. 272 00:12:51,720 --> 00:12:59,620 273 00:12:59,620 --> 00:13:02,390 Une fois que vous apprenez l'un des Vim ou Emacs, il ya 274 00:13:02,390 --> 00:13:04,810 aucune raison impérieuse de jamais apprendre l'autre, 275 00:13:04,810 --> 00:13:07,570 mais il est un style complètement différent. 276 00:13:07,570 --> 00:13:10,460 OK donc que ce éditant des fichiers textes. 277 00:13:10,460 --> 00:13:13,374 >> Public: Si vous étiez coincé dans Vim en ce moment, comment faire nous-- 278 00:13:13,374 --> 00:13:18,840 279 00:13:18,840 --> 00:13:20,800 >> ROB BOWDEN: Il ya plusieurs modes de Vim, 280 00:13:20,800 --> 00:13:23,770 et il existe entier tutoriels sur l'apprentissage Vim. 281 00:13:23,770 --> 00:13:27,390 Donc, si vous arrive d'être en mode d'insertion dans l'ordre 282 00:13:27,390 --> 00:13:29,930 pour saisir du texte, que vous pouvez entrer que de diverses manières, 283 00:13:29,930 --> 00:13:31,610 mais i est la façon dont vous entrez dans le mode d'insertion. 284 00:13:31,610 --> 00:13:34,780 Ou sortir de tout dommage spécial mode qui vous êtes, juste échapper. 285 00:13:34,780 --> 00:13:37,640 Et vous bash juste fuir pour chercher sur des modes imbriqués votre en. 286 00:13:37,640 --> 00:13:40,360 Juste OK, maintenant je suis de retour en mode normal. 287 00:13:40,360 --> 00:13:43,790 >> Et si en mode normal, un colon. 288 00:13:43,790 --> 00:13:45,160 Vous voyez apparaître au bas. 289 00:13:45,160 --> 00:13:46,240 Et alors q. 290 00:13:46,240 --> 00:13:52,600 Alors q va quitter si vous avez apporté des modifications, qui je-- Ai-je fait des changements? 291 00:13:52,600 --> 00:13:54,180 Avoir apporté des modifications apparemment. 292 00:13:54,180 --> 00:13:57,264 Donc, si vous avez fait des changements, ça va dites que vous pouvez mettre un point d'exclamation. 293 00:13:57,264 --> 00:13:58,430 Je vais appeler un bang. 294 00:13:58,430 --> 00:14:02,040 Ainsi, vous pouvez mettre une interdiction à juste quitter sans rien faire, 295 00:14:02,040 --> 00:14:04,520 ou du côlon wq sera sauvegardez et quittez. 296 00:14:04,520 --> 00:14:06,580 Donc w en général est d'écrire. 297 00:14:06,580 --> 00:14:08,300 Donc, écrire le fichier. 298 00:14:08,300 --> 00:14:09,810 Je peux écrire et quitter. 299 00:14:09,810 --> 00:14:13,606 Ou vous pourriez avoir juste qx slam, q-bang juste 300 00:14:13,606 --> 00:14:16,230 à sortir de là, indépendamment de toutes les modifications que vous avez apportées. 301 00:14:16,230 --> 00:14:21,310 302 00:14:21,310 --> 00:14:28,940 >> Très bien, alors maintenant nous allons go-- nous pouvons créer des fichiers. 303 00:14:28,940 --> 00:14:30,890 Commençons la suppression des fichiers. 304 00:14:30,890 --> 00:14:35,450 Et je vais jeter dans une nouvelle commande rapide, appuyez sur. 305 00:14:35,450 --> 00:14:38,200 So touch foo. 306 00:14:38,200 --> 00:14:39,340 Touch bar. 307 00:14:39,340 --> 00:14:40,220 Touchez baz. 308 00:14:40,220 --> 00:14:42,810 Si ls I, nous voyons maintenant que ces fichiers existent. 309 00:14:42,810 --> 00:14:44,315 Ils sont complètement vide. 310 00:14:44,315 --> 00:14:47,178 So touch est juste un simple moyen d'un [inaudible]. 311 00:14:47,178 --> 00:14:50,850 312 00:14:50,850 --> 00:14:54,640 Deux, techniquement juste à l'état , il met à jour l'horodatage. 313 00:14:54,640 --> 00:14:58,470 Ainsi, tout fichier que vous créez a un horodatage associé. 314 00:14:58,470 --> 00:15:01,330 Donc baz a été créé sur 14 septembre à 16h21. 315 00:15:01,330 --> 00:15:02,570 316 00:15:02,570 --> 00:15:06,670 Il est maintenant 16h22, si Je touche baz nouveau, nous 317 00:15:06,670 --> 00:15:11,420 voir que baz était plus récemment modifié à 16h22. 318 00:15:11,420 --> 00:15:17,680 Mais sinon, je suis presque jamais regarder les horodateurs sur les fichiers. 319 00:15:17,680 --> 00:15:20,490 So touch, ici je suis juste en utilisant pour créer des fichiers rapides. 320 00:15:20,490 --> 00:15:21,620 321 00:15:21,620 --> 00:15:27,400 >> Très bien, alors maintenant rm est la commande que nous nous soucions ici. 322 00:15:27,400 --> 00:15:28,665 Et nous pouvons rm boo. 323 00:15:28,665 --> 00:15:31,000 Dire retirer un fichier régulier boo vide. 324 00:15:31,000 --> 00:15:34,070 Et nous pouvons taper y, et maintenant il est supprime. 325 00:15:34,070 --> 00:15:34,850 rm baz. 326 00:15:34,850 --> 00:15:35,910 327 00:15:35,910 --> 00:15:38,620 Retirez régulièrement fichier vide baz et le type N pour non. 328 00:15:38,620 --> 00:15:40,060 Maintenant, il est pas supprimé. 329 00:15:40,060 --> 00:15:41,240 Donc, bar et baz existe encore. 330 00:15:41,240 --> 00:15:42,232 Foo est parti. 331 00:15:42,232 --> 00:15:43,148 GABRIEL: continuer à parler. 332 00:15:43,148 --> 00:15:43,970 333 00:15:43,970 --> 00:15:44,720 ROB BOWDEN: Très bien. 334 00:15:44,720 --> 00:15:45,800 335 00:15:45,800 --> 00:15:50,370 Donc, le message ennuyeux ici, retirez empty-- régulière 336 00:15:50,370 --> 00:15:52,390 que faites-vous là-bas? 337 00:15:52,390 --> 00:15:54,030 Retirez régulièrement fichier vide. 338 00:15:54,030 --> 00:15:58,840 339 00:15:58,840 --> 00:16:01,610 Donc, si nous ne voulons pas être dérangé par ce message, 340 00:16:01,610 --> 00:16:05,340 nous pouvons jeter dans cette -f drapeau, et que sa force. 341 00:16:05,340 --> 00:16:11,330 Et maintenant, si je -f RM, il ne va pas dites que vous voulez supprimer ce fichier. 342 00:16:11,330 --> 00:16:12,040 Il vous reste plus qu'à le faire. 343 00:16:12,040 --> 00:16:13,720 Et ls, je ne vois là empêchent pas plus. 344 00:16:13,720 --> 00:16:14,810 345 00:16:14,810 --> 00:16:18,021 >> Maintenant que est potentiellement commande dangereuse. 346 00:16:18,021 --> 00:16:19,020 Il a tendance à ne pas trop mauvais. 347 00:16:19,020 --> 00:16:22,240 Nous y reviendrons dans une seconde comment il peut faire vraiment dangereux. 348 00:16:22,240 --> 00:16:28,740 Et nous allons créer un répertoire temporaire. 349 00:16:28,740 --> 00:16:30,880 mkdir, une autre commande. 350 00:16:30,880 --> 00:16:34,880 Donc mkdir est une commande qui fait un répertoire. 351 00:16:34,880 --> 00:16:40,650 Et maintenant, par ls nous voyons cette belle lumière bleu souligné répertoire temporaire. 352 00:16:40,650 --> 00:16:42,295 Je peux cd en température. 353 00:16:42,295 --> 00:16:44,590 Et je peux mkdir foo. 354 00:16:44,590 --> 00:16:46,330 cd dans foo. barre de mkdir. 355 00:16:46,330 --> 00:16:46,860 cd en bar. 356 00:16:46,860 --> 00:16:49,400 357 00:16:49,400 --> 00:16:54,300 >> Ainsi, nous voyons que nous pouvons facilement obtenir dans certains nidification assez profonde. 358 00:16:54,300 --> 00:16:56,385 Maintenant, comment puis-je supprimer un répertoire? 359 00:16:56,385 --> 00:16:57,020 360 00:16:57,020 --> 00:16:57,520 rmdir. 361 00:16:57,520 --> 00:16:59,030 362 00:16:59,030 --> 00:17:03,540 Donc, si je viens de droite essaie de rm, comme nous l'avons fait avec un fichier régulier, 363 00:17:03,540 --> 00:17:06,420 bar rm va dire ne peut pas supprimer la barre. 364 00:17:06,420 --> 00:17:07,569 Il est un répertoire. 365 00:17:07,569 --> 00:17:10,619 Il ya une commande spéciale pour suppression de répertoires, en quelque sorte. 366 00:17:10,619 --> 00:17:12,900 Donc, bar rmdir. 367 00:17:12,900 --> 00:17:13,710 Maintenant, bar a disparu. 368 00:17:13,710 --> 00:17:14,980 369 00:17:14,980 --> 00:17:22,680 >> OK, donc je suis assez rmdir ne l'utilise jamais. 370 00:17:22,680 --> 00:17:32,220 La raison being-- Maintenant, nous allons faire un bar de fichier normal ici. 371 00:17:32,220 --> 00:17:34,780 Boo Donc rmdir. 372 00:17:34,780 --> 00:17:35,760 rmdir. 373 00:17:35,760 --> 00:17:36,900 Impossible de supprimer foo. 374 00:17:36,900 --> 00:17:38,420 Annuaire pas vide. 375 00:17:38,420 --> 00:17:43,420 Donc, vous ne pouvez pas utiliser éliminer dir sur un répertoire qui a des choses en elle. 376 00:17:43,420 --> 00:17:44,830 >> Donc, vous avez quelques options. 377 00:17:44,830 --> 00:17:49,780 Vous pouvez aller dans ce répertoire, supprimez tout manuellement, et puis sortir 378 00:17:49,780 --> 00:17:51,759 et rmdir répertoire. 379 00:17:51,759 --> 00:17:53,050 Cela semble évidemment ennuyeux. 380 00:17:53,050 --> 00:17:55,000 Que faire si il ya des milliers de fichiers il? 381 00:17:55,000 --> 00:17:58,119 Eh bien, vous pourriez rm *. 382 00:17:58,119 --> 00:17:59,410 Nous en reparlerons * en une seconde. 383 00:17:59,410 --> 00:18:00,870 Cela signifie essentiellement toutes les choses. 384 00:18:00,870 --> 00:18:02,030 385 00:18:02,030 --> 00:18:05,470 Mais mieux encore, si rm -r. 386 00:18:05,470 --> 00:18:10,220 Donc rm -r-- dans beaucoup de contextes, -r signifie récursive, 387 00:18:10,220 --> 00:18:13,810 qui nous allons parler de ce moyens récursifs dans plusieurs semaines. 388 00:18:13,810 --> 00:18:18,630 Mais cela signifie essentiellement traverse l'intégralité de ce répertoire 389 00:18:18,630 --> 00:18:20,190 et supprimer tout. 390 00:18:20,190 --> 00:18:24,420 >> Foo -r donc rm va dire descendre dans le répertoire foo? 391 00:18:24,420 --> 00:18:25,210 Oui. 392 00:18:25,210 --> 00:18:26,800 Retirez régulièrement vide fichier foo / bar? 393 00:18:26,800 --> 00:18:27,880 394 00:18:27,880 --> 00:18:28,540 Oui. 395 00:18:28,540 --> 00:18:29,760 Supprimer le répertoire foo? 396 00:18:29,760 --> 00:18:30,260 Oui. 397 00:18:30,260 --> 00:18:31,470 398 00:18:31,470 --> 00:18:35,020 Alors maintenant, foo et tout à l'intérieur, il a été retiré. 399 00:18:35,020 --> 00:18:42,370 >> Maintenant que peut devenir particulièrement gênant when-- Touchons 1, toucher 2, appuyez sur 3. 400 00:18:42,370 --> 00:18:44,400 Pourrait avoir tout un tas de fichiers. 401 00:18:44,400 --> 00:18:49,060 Si je voulais, je pourrais créer des milliers de fichiers ici. 402 00:18:49,060 --> 00:18:53,340 Et foo -r rm va être assez ennuyeux. 403 00:18:53,340 --> 00:18:55,374 Oui, oui, oui, oui, oui, oui. 404 00:18:55,374 --> 00:18:57,540 Avec beaucoup plus de fichiers que vous voir rapidement combien de fois 405 00:18:57,540 --> 00:18:58,581 Je voudrais avoir à taper oui. 406 00:18:58,581 --> 00:19:02,265 Eh bien, nous venons de le voir avant comment nous pouvons se débarrasser de devoir taper oui, -f. 407 00:19:02,265 --> 00:19:03,330 408 00:19:03,330 --> 00:19:07,020 Donc mkdir foo foo cd tactile 1 2 3. 409 00:19:07,020 --> 00:19:08,380 410 00:19:08,380 --> 00:19:17,190 OK, si foo -rf rm va supprimez pas aveuglément foo entièrement. 411 00:19:17,190 --> 00:19:17,960 Aucune invite. 412 00:19:17,960 --> 00:19:18,650 Pas de quoi que ce soit. 413 00:19:18,650 --> 00:19:20,040 Foo est parti. 414 00:19:20,040 --> 00:19:23,830 >> Donc je tendance à utiliser cette commander tout le temps. 415 00:19:23,830 --> 00:19:25,120 416 00:19:25,120 --> 00:19:27,830 Cela dit, il est un commande très dangereux, 417 00:19:27,830 --> 00:19:33,240 parce que si je fais quelque chose comme cela, il ne vous invite pas. 418 00:19:33,240 --> 00:19:34,730 Il aura disparu. 419 00:19:34,730 --> 00:19:40,140 Et il arrive assez souvent, et même dans les cours d'informatique de niveau supérieur. 420 00:19:40,140 --> 00:19:42,070 Parfois, nous verrons quelque chose où quelqu'un 421 00:19:42,070 --> 00:19:48,360 dit que je accidentellement notre rm rf-ed ma maison répertoire et tout mon P ensemble a disparu. 422 00:19:48,360 --> 00:19:52,422 Et il est dévastateur, mais il n'y a pas poubelle. 423 00:19:52,422 --> 00:19:54,380 Il n'y a pas il n'y a rien pour vous de récupérer. 424 00:19:54,380 --> 00:19:55,330 Il vient de partir. 425 00:19:55,330 --> 00:19:56,529 426 00:19:56,529 --> 00:19:58,320 Pire encore serait quelque chose comme rm -rf /. 427 00:19:58,320 --> 00:19:59,432 428 00:19:59,432 --> 00:20:01,140 Alors nous venons de parler ce répertoire racine. 429 00:20:01,140 --> 00:20:03,095 Il détient la totalité des fichiers sur votre système. 430 00:20:03,095 --> 00:20:04,120 431 00:20:04,120 --> 00:20:07,380 Les choses ont tendance à être assez salissant lorsque vous retirez des choses comme ls, 432 00:20:07,380 --> 00:20:10,280 et cd, et tous ceux. 433 00:20:10,280 --> 00:20:15,467 >> Public: Quelle est la différence entre RM, RF, et rm * 434 00:20:15,467 --> 00:20:16,300 ROB BOWDEN: Donc rm * - 435 00:20:16,300 --> 00:20:17,700 436 00:20:17,700 --> 00:20:22,300 >> ALLISON: question était quel est le différence entre RM, RF, et rm *. 437 00:20:22,300 --> 00:20:23,750 438 00:20:23,750 --> 00:20:25,950 >> ROB BOWDEN: Donc rm *. 439 00:20:25,950 --> 00:20:31,910 Étoiles à moyen général tous le contenu de ce répertoire. 440 00:20:31,910 --> 00:20:33,540 441 00:20:33,540 --> 00:20:35,540 Essayer de penser à autre façons de montrer étoiles. 442 00:20:35,540 --> 00:20:38,280 443 00:20:38,280 --> 00:20:44,780 Eh bien, la star fait généralement moyens correspondent à un modèle. 444 00:20:44,780 --> 00:20:54,930 Donc, si je dois un fichier appelé dog1, dog2 toucher, toucher cat1, cat2 toucher. 445 00:20:54,930 --> 00:20:56,050 446 00:20:56,050 --> 00:21:02,110 Donc ls * 1 va imprimer cat1 et dog1, parce que cette étoile peut être rempli 447 00:21:02,110 --> 00:21:06,270 dans la with-- il faut être là, mais étoile peut être soit chat ou chien. 448 00:21:06,270 --> 00:21:07,247 Il est d'une wild card. 449 00:21:07,247 --> 00:21:08,580 Voilà le mot que je cherche. 450 00:21:08,580 --> 00:21:09,120 Wild card. 451 00:21:09,120 --> 00:21:10,180 452 00:21:10,180 --> 00:21:13,960 Ou je pourrais ls chien *, et Je suis arrivé à voir dog1, dog2. 453 00:21:13,960 --> 00:21:16,870 Donc, ceux-ci sont listant les fichiers qui correspondent à ce modèle particulier. 454 00:21:16,870 --> 00:21:18,150 Vous pouvez utiliser ls de cette façon. 455 00:21:18,150 --> 00:21:19,350 456 00:21:19,350 --> 00:21:22,020 >> Ls * étoiles correspond à rien. 457 00:21:22,020 --> 00:21:25,710 Donc, il va imprimer tous le contenu de ce répertoire 458 00:21:25,710 --> 00:21:27,290 puisque tous les faire correspondre. 459 00:21:27,290 --> 00:21:30,130 Il ne va pas à imprimer quoi que ce soit dans les répertoires de niveau supérieur. 460 00:21:30,130 --> 00:21:38,680 Si je dois un sous-répertoire, foo, et toucher 1 2 3-- maintenant si rm * étoiles, 461 00:21:38,680 --> 00:21:41,450 supprimer cat1, cat2, dog1, dog2. 462 00:21:41,450 --> 00:21:42,340 Impossible de supprimer foo. 463 00:21:42,340 --> 00:21:43,090 Il est un répertoire. 464 00:21:43,090 --> 00:21:43,920 465 00:21:43,920 --> 00:21:50,340 >> Donc étoiles étend à tous les fichiers dans le répertoire. 466 00:21:50,340 --> 00:21:55,210 Donc techniquement rm * est comme dire rm cat1, cat2, dog1, dog2, foo. 467 00:21:55,210 --> 00:22:03,630 Alors que -rf rm, techniquement étoiles serait accomplir ce que nous voulons, mais rm -rf-- 468 00:22:03,630 --> 00:22:06,090 si je sors de cette répertoire, temp -rf rm, 469 00:22:06,090 --> 00:22:08,890 que ça va aller en température et récursive supprimer tout. 470 00:22:08,890 --> 00:22:11,260 471 00:22:11,260 --> 00:22:21,060 >> Donc étoiles est séparé en ce qui est compris by-- si cette chose 472 00:22:21,060 --> 00:22:25,090 que je l'exécute dans, cette chose qui me demandant des commandes 473 00:22:25,090 --> 00:22:28,770 et puis exécuter et de faire eux, je les appelle ce ma coquille. 474 00:22:28,770 --> 00:22:31,930 Et si cette coquille est elle-même un programme. 475 00:22:31,930 --> 00:22:35,010 Et si je voulais, je pourrait fonctionner dans / bin / bash. 476 00:22:35,010 --> 00:22:36,930 Le shell est bash. 477 00:22:36,930 --> 00:22:39,340 Et maintenant, nous remarquons quelque chose a légèrement changé, 478 00:22:39,340 --> 00:22:42,200 et qui est parce que mes réglages pour la coquille sont quelque peu différentes. 479 00:22:42,200 --> 00:22:45,415 >> Mais maintenant je suis techniquement course une coquille dans ma coquille d'origine, 480 00:22:45,415 --> 00:22:49,570 et je peux quitter cette coquille, et maintenant Je suis de retour à mon coquille supérieure de niveau. 481 00:22:49,570 --> 00:22:55,240 Le but de dire que est-- l'étoile. 482 00:22:55,240 --> 00:22:59,020 Donc l'étoile est quelque chose compris par bash. 483 00:22:59,020 --> 00:23:04,260 Donc, rm -rf, drapeau rf est compris par tout rm. 484 00:23:04,260 --> 00:23:06,380 Il sait que lorsque vous passer une -rf vous 485 00:23:06,380 --> 00:23:09,520 il veut effacer de façon récursive tous les fichiers sans avertissement. 486 00:23:09,520 --> 00:23:13,960 L'étoile est quelque chose compris par bash que lorsque vous dites rm *, 487 00:23:13,960 --> 00:23:16,890 bash ne va pas dire hey rm *, retirez étoiles. 488 00:23:16,890 --> 00:23:21,010 Bash va dire rm * supprimer cat1, cat2, dog1, dog2. 489 00:23:21,010 --> 00:23:24,305 Il est automatiquement va étendre tous les fichiers dans le répertoire. 490 00:23:24,305 --> 00:23:29,100 491 00:23:29,100 --> 00:23:33,140 >> Et de même tilde est un autre symbole que bash comprend. 492 00:23:33,140 --> 00:23:37,130 Quand vous dites cd ~, bash se développe que dans votre répertoire d'accueil. 493 00:23:37,130 --> 00:23:38,910 494 00:23:38,910 --> 00:23:40,210 D'autres questions à ce jour? 495 00:23:40,210 --> 00:23:42,760 496 00:23:42,760 --> 00:23:46,060 Ok, donc nous allons commencer à aller vite. 497 00:23:46,060 --> 00:23:47,700 498 00:23:47,700 --> 00:23:48,545 >> Tab achèvement. 499 00:23:48,545 --> 00:23:49,670 Il suffit de le jeter là-bas. 500 00:23:49,670 --> 00:23:51,530 Beaucoup de gens ne le font pas réaliser cela existe. 501 00:23:51,530 --> 00:23:55,060 Donc, si je tape cd Dow, je envie d'aller en téléchargements. 502 00:23:55,060 --> 00:23:56,700 Je ne dois pas taper nloads. 503 00:23:56,700 --> 00:23:57,960 504 00:23:57,960 --> 00:24:00,770 Je ne peux tout simplement appuyez sur Tab. 505 00:24:00,770 --> 00:24:03,794 Ainsi, il reconnaît que Dow est un préfixe qui 506 00:24:03,794 --> 00:24:05,710 ne correspond pas à quoi que ce soit d'autre dans ce répertoire, 507 00:24:05,710 --> 00:24:07,520 de sorte qu'il sera compléter que pour vous. 508 00:24:07,520 --> 00:24:08,610 Maintenant, je peux entrer. 509 00:24:08,610 --> 00:24:10,110 >> Je fais aussi que de manière récursive. 510 00:24:10,110 --> 00:24:11,205 Foo Donc mkdir. 511 00:24:11,205 --> 00:24:12,480 512 00:24:12,480 --> 00:24:13,300 Allons dans foo. 513 00:24:13,300 --> 00:24:14,830 barre de mkdir. 514 00:24:14,830 --> 00:24:17,345 Pour en revenir à ma maison répertoire, je peux voir les meilleurs téléchargements. 515 00:24:17,345 --> 00:24:19,040 516 00:24:19,040 --> 00:24:21,860 Maintenant frapper à nouveau onglet, va automatiquement remplir foo. 517 00:24:21,860 --> 00:24:22,880 Il est le seul répertoire. 518 00:24:22,880 --> 00:24:25,340 Onglet Frapper à nouveau, automatiquement va remplir bar. 519 00:24:25,340 --> 00:24:26,798 Alors maintenant, je suis dans (~ Téléchargements / foo / bar). 520 00:24:26,798 --> 00:24:27,310 521 00:24:27,310 --> 00:24:31,692 >> Alors cet onglet achèvement, chaque fois que je suis arrivé à des heures de bureau, 522 00:24:31,692 --> 00:24:33,400 et je suis debout sur l'épaule d'une personne, 523 00:24:33,400 --> 00:24:40,470 et ils rm aller D-O-W-N-L-O-A-D-S, je vais mourir. 524 00:24:40,470 --> 00:24:41,990 Juste onglet, onglet, onglet, onglet. 525 00:24:41,990 --> 00:24:44,550 526 00:24:44,550 --> 00:24:45,630 Donc onglet certainement utilisé. 527 00:24:45,630 --> 00:24:47,890 528 00:24:47,890 --> 00:24:49,840 Et de façon similaire et vers le bas, beaucoup de gens 529 00:24:49,840 --> 00:24:51,930 juste qui est arrivé à jamais avoir touché le haut et le bas. 530 00:24:51,930 --> 00:24:54,870 Il va passer par le précédent commandes, donc si vous simplement manqué quelque chose, 531 00:24:54,870 --> 00:24:58,300 et vous souhaitez l'utiliser à nouveau, il suffit de tenir jusqu'à vous arrivez à lui. 532 00:24:58,300 --> 00:24:59,870 533 00:24:59,870 --> 00:25:00,370 Dáccord. 534 00:25:00,370 --> 00:25:01,460 535 00:25:01,460 --> 00:25:03,585 >> Alors vite, d'autres choses. 536 00:25:03,585 --> 00:25:04,800 537 00:25:04,800 --> 00:25:05,930 Revenons en température. 538 00:25:05,930 --> 00:25:06,976 539 00:25:06,976 --> 00:25:08,125 Créons des fichiers. 540 00:25:08,125 --> 00:25:10,480 541 00:25:10,480 --> 00:25:15,215 Donc ici, je suis juste aller à la liste des mots. 542 00:25:15,215 --> 00:25:18,460 543 00:25:18,460 --> 00:25:21,035 chien, chat, miaou. 544 00:25:21,035 --> 00:25:23,940 545 00:25:23,940 --> 00:25:26,040 Faisons chien, poisson. 546 00:25:26,040 --> 00:25:27,500 547 00:25:27,500 --> 00:25:32,320 Alors maintenant REP est une très commandes utiles que vous 548 00:25:32,320 --> 00:25:37,820 utiliser pour rechercher dans l'ensemble fichiers d'un texte particulier, 549 00:25:37,820 --> 00:25:40,910 et techniquement, vous pouvez faire vraiment expressions complexes pour qu'il corresponde. 550 00:25:40,910 --> 00:25:44,830 >> Donc ici, si je grep, et ce je veux chercher? 551 00:25:44,830 --> 00:25:49,130 Disons que je suis à la recherche pour les chats, et Je veux chercher tous ces fichiers. 552 00:25:49,130 --> 00:25:50,650 Alors, comment dois-je faire tous ces fichiers? 553 00:25:50,650 --> 00:25:51,900 Étoile. 554 00:25:51,900 --> 00:25:54,939 Ainsi, dans un fichier, je dois chat. 555 00:25:54,939 --> 00:25:56,980 Je pourrais probablement avoir appelé quelque chose de mieux, 556 00:25:56,980 --> 00:25:59,063 parce que ça ressemble numéros ou quelque chose ligne. 557 00:25:59,063 --> 00:26:01,590 Mais dans un fichier je dois une ligne avec chat. 558 00:26:01,590 --> 00:26:04,160 Dans le fichier deux je dois une ligne avec chat. 559 00:26:04,160 --> 00:26:07,280 Alors maintenant, je peux regarder un fichier à l'intérieur et voir oh oui, ce fichier a eu chat. 560 00:26:07,280 --> 00:26:10,210 fichier de préavis de trois n'a pas été suivie parce que le chat n'y est pas. 561 00:26:10,210 --> 00:26:13,882 Je peux grep pour miauler. 562 00:26:13,882 --> 00:26:14,840 Seuls les fichiers deux a miauler. 563 00:26:14,840 --> 00:26:16,120 564 00:26:16,120 --> 00:26:20,640 >> Donc, ce que vous pouvez combiner, de plus, avec -r, qui 565 00:26:20,640 --> 00:26:23,580 comme je le disais avant signifie souvent récursive. 566 00:26:23,580 --> 00:26:29,800 Et si je peux venir ici, grep -r pour toute instance de-- éditons 567 00:26:29,800 --> 00:26:32,010 celui-ci vient de jeter un chat à l'intérieur. 568 00:26:32,010 --> 00:26:38,800 Donc grep -r pour toute instance de chat tout au long de ce répertoire. 569 00:26:38,800 --> 00:26:41,600 Et ce de façon récursive rechercher les sous-répertoires. 570 00:26:41,600 --> 00:26:43,940 Donc, en baz, il ya chat. 571 00:26:43,940 --> 00:26:45,570 Dans temp / 2, il ya chat. 572 00:26:45,570 --> 00:26:47,960 Et dans temp / 1 il ya chat. 573 00:26:47,960 --> 00:26:50,045 Voilà donc la recherche dans les fichiers. 574 00:26:50,045 --> 00:26:51,250 575 00:26:51,250 --> 00:26:55,090 >> Maintenant, vous pouvez également utiliser une trouvaille. 576 00:26:55,090 --> 00:26:59,640 Et donc trouver est précisément de recherche de fichiers avec un nom donné. 577 00:26:59,640 --> 00:27:02,490 Faisons donc un peu plus. 578 00:27:02,490 --> 00:27:03,660 Allons dans les téléchargements. 579 00:27:03,660 --> 00:27:04,680 580 00:27:04,680 --> 00:27:05,380 Touchez dog1. 581 00:27:05,380 --> 00:27:06,840 582 00:27:06,840 --> 00:27:07,770 Touchez cat2. 583 00:27:07,770 --> 00:27:09,290 584 00:27:09,290 --> 00:27:10,760 Touchez cat_dog. 585 00:27:10,760 --> 00:27:14,550 586 00:27:14,550 --> 00:27:15,975 Touchez catcat. 587 00:27:15,975 --> 00:27:18,270 588 00:27:18,270 --> 00:27:23,810 >> Je tiens donc à trouver tous fichiers avec un chien dans le nom. 589 00:27:23,810 --> 00:27:28,060 Donc, trouver, et pour la plus longue temps je ne me souvenais 590 00:27:28,060 --> 00:27:33,760 comment trouver travaillé, jusqu'à ce que je lire quelque chose qui fait en sorte claire. 591 00:27:33,760 --> 00:27:35,784 Donc, trouver, automatiquement récursive. 592 00:27:35,784 --> 00:27:36,950 Vous ne devez pas passer un -r. 593 00:27:36,950 --> 00:27:38,090 594 00:27:38,090 --> 00:27:39,110 Donc, trouver dot. 595 00:27:39,110 --> 00:27:40,750 Nous avons pas encore parlé de point. 596 00:27:40,750 --> 00:27:44,800 Alors que dot dot toujours signifie un répertoire vers le haut. 597 00:27:44,800 --> 00:27:46,960 Dot signifie toujours le répertoire courant. 598 00:27:46,960 --> 00:27:51,390 Je ne pouvais donc rm -r point dans le même manière que je peux rm -rf *. 599 00:27:51,390 --> 00:27:53,140 Finalement, ils accomplir la même chose. 600 00:27:53,140 --> 00:27:56,040 rm -rf point va supprimer dans tout le répertoire courant. 601 00:27:56,040 --> 00:27:57,440 602 00:27:57,440 --> 00:27:59,680 >> OK, ce que je ne veux pas y faire. 603 00:27:59,680 --> 00:28:01,490 604 00:28:01,490 --> 00:28:04,320 Mais trouver dot. 605 00:28:04,320 --> 00:28:07,920 Donc des recherches récursives le courant répertoire, et maintenant tout 606 00:28:07,920 --> 00:28:14,125 après ce sont un tas de drapeaux que vous utiliser pour exclure les choses du retour. 607 00:28:14,125 --> 00:28:17,250 Donc, trouver point renvoie tout ce qu'il peut trouver dans le répertoire courant. 608 00:28:17,250 --> 00:28:19,700 Ce sont tous les fichiers recherche récursive. 609 00:28:19,700 --> 00:28:21,250 Nous allons voir certains de ceux qui en une seconde. 610 00:28:21,250 --> 00:28:23,150 611 00:28:23,150 --> 00:28:27,140 >> Mais au cas où vous vous demandez comment je fais que, si K de commande, à tout le moins 612 00:28:27,140 --> 00:28:29,660 dans mon terminal dans le Mac l'efface. 613 00:28:29,660 --> 00:28:34,660 Control L efface généralement pour toute sorte de terminal. 614 00:28:34,660 --> 00:28:36,480 Vous pouvez également taper clair. 615 00:28:36,480 --> 00:28:38,410 Et si jamais vous avez dans un scenario-- bizarre 616 00:28:38,410 --> 00:28:42,790 il est arrivé à moi quelques time-- où les couleurs de vos invites 617 00:28:42,790 --> 00:28:46,590 sont tout foiré, ou vous ne sont pas en mesure de voir quoi que ce soit 618 00:28:46,590 --> 00:28:51,232 tapées lorsque vous tapez, parce que parfois comme couleur de fond est réglé 619 00:28:51,232 --> 00:28:53,940 la même que la couleur de premier plan et maintenant vous ne pouvez pas voir les polices. 620 00:28:53,940 --> 00:28:55,110 621 00:28:55,110 --> 00:28:59,830 La réinitialisation est quelque chose qui remet tout vous à l'arrière-plan noir par défaut, 622 00:28:59,830 --> 00:29:01,840 blanc à l'avant, ou quel que soit vous définissez les pour. 623 00:29:01,840 --> 00:29:03,390 624 00:29:03,390 --> 00:29:04,790 >> Alors, où étions-nous? 625 00:29:04,790 --> 00:29:05,930 Trouver point. 626 00:29:05,930 --> 00:29:09,360 Alors maintenant, tout ce passé Point limite les résultats 627 00:29:09,360 --> 00:29:11,450 à quelque chose qui correspond au modèle donné. 628 00:29:11,450 --> 00:29:16,110 Donc ici, je veux chercher tout avec le nom chat. 629 00:29:16,110 --> 00:29:17,300 Je me suis rien. 630 00:29:17,300 --> 00:29:18,390 Pourquoi est-ce le cas? 631 00:29:18,390 --> 00:29:21,230 Eh bien, je suis juste la recherche de quelque chose avec exactement le nom chat. 632 00:29:21,230 --> 00:29:25,150 Si je veux chercher quelque chose qui a un certain modèle, et cat-- 633 00:29:25,150 --> 00:29:28,890 les citations ne sont pas techniquement nécessaire, mais je les jeter là-dedans. 634 00:29:28,890 --> 00:29:32,720 Alors maintenant, il trouve catcat car qui est la seule chose que 635 00:29:32,720 --> 00:29:36,040 a un certain arbitraire schéma suivi par chat. 636 00:29:36,040 --> 00:29:41,950 Je peux mettre chat *, et maintenant trouver catcat, cat_dog, cat2, 637 00:29:41,950 --> 00:29:45,245 parce que ce sont toutes les choses avec le chat au début, suivie par rien. 638 00:29:45,245 --> 00:29:46,120 Vous pouvez combiner cette. 639 00:29:46,120 --> 00:29:50,480 Si vous voulez rechercher tous les fichiers C que vous avez, vous pourriez faire * .c. 640 00:29:50,480 --> 00:29:51,960 Nous avons blah.c ici. 641 00:29:51,960 --> 00:29:53,000 642 00:29:53,000 --> 00:29:55,020 Voilà donc un ouvrage de trouver. 643 00:29:55,020 --> 00:29:55,770 Vous pouvez effectuer une recherche. 644 00:29:55,770 --> 00:29:58,270 Il a tout un tas de drapeaux de nouvelles restrictions. 645 00:29:58,270 --> 00:30:00,960 Et un sur eux, disons -d. 646 00:30:00,960 --> 00:30:02,110 647 00:30:02,110 --> 00:30:04,435 Alors obsolète. 648 00:30:04,435 --> 00:30:05,425 649 00:30:05,425 --> 00:30:06,550 Oh, ce ne est pas ce que je veux. 650 00:30:06,550 --> 00:30:07,730 Non -d. 651 00:30:07,730 --> 00:30:08,860 Tapez d. 652 00:30:08,860 --> 00:30:13,820 Donc, trouver point - Type D. 653 00:30:13,820 --> 00:30:17,760 Alors qu'est-ce qui est juste fait je suis à la recherche pour tous les fichiers dans le répertoire courant 654 00:30:17,760 --> 00:30:21,680 A- avec d représente directory-- type de répertoire. 655 00:30:21,680 --> 00:30:24,430 Cela renvoie tous les répertoires dans le répertoire courant. 656 00:30:24,430 --> 00:30:27,670 Et le type F est tout régulier fichiers, tous les répertoires non. 657 00:30:27,670 --> 00:30:29,809 Voilà donc tout un exemple d'autres façons 658 00:30:29,809 --> 00:30:32,350 peut restreindre la recherche autres que juste le nom du fichier. 659 00:30:32,350 --> 00:30:34,126 660 00:30:34,126 --> 00:30:35,570 >> Il a été de 30 minutes. 661 00:30:35,570 --> 00:30:36,848 Toujours en cours. 662 00:30:36,848 --> 00:30:38,132 >> ALLISON: Je vais brise à travers. 663 00:30:38,132 --> 00:30:39,670 Ça va être beau. 664 00:30:39,670 --> 00:30:41,460 >> ROB BOWDEN: Donc d'autres choses. 665 00:30:41,460 --> 00:30:45,700 Maintenant Bang, point d'exclamation. 666 00:30:45,700 --> 00:30:50,530 Alors que généralement désigne: bien, nous allons voir un exemple. 667 00:30:50,530 --> 00:30:52,230 Alors! F, ce qui est ce que cela va faire? 668 00:30:52,230 --> 00:30:53,520 669 00:30:53,520 --> 00:30:57,810 Eh bien, il semble avoir répété trouvaille point -type f. 670 00:30:57,810 --> 00:30:59,240 Qu'en est-il! G? 671 00:30:59,240 --> 00:31:00,760 Ce juste grep -r chat *. 672 00:31:00,760 --> 00:31:02,010 673 00:31:02,010 --> 00:31:05,720 Donc frappez vous pouvez utiliser pour répéter une commande fait récemment. 674 00:31:05,720 --> 00:31:13,280 Donc, si je tape! Gre, il va re-run les commandes qui ont commencé avec gre plus 675 00:31:13,280 --> 00:31:14,060 récemment. 676 00:31:14,060 --> 00:31:17,090 >> Et vous pouvez voir tous ces commandes avec l'histoire. 677 00:31:17,090 --> 00:31:17,880 Donc l'histoire. 678 00:31:17,880 --> 00:31:19,630 Ce sont tous les commandes que je suis à court aujourd'hui. 679 00:31:19,630 --> 00:31:21,089 680 00:31:21,089 --> 00:31:23,130 Et bien, il est pas littéralement limité à aujourd'hui, 681 00:31:23,130 --> 00:31:25,180 mais je ne l'ai utilisé cette appareil à partir d'aujourd'hui. 682 00:31:25,180 --> 00:31:28,730 Il est de votre ensemble de la histoire de votre shell bash, 683 00:31:28,730 --> 00:31:30,433 sauf qu'il coupe à un moment donné. 684 00:31:30,433 --> 00:31:33,474 Public: Qu'est-ce qui se passe si vous faites Historique des commandes [inaudible] et une erreur 685 00:31:33,474 --> 00:31:35,430 dans le résultat sera toujours imprimer the-- 686 00:31:35,430 --> 00:31:44,110 >> ROB BOWDEN: Ouais, si il ya une erreur dans l'un de ces commands-- 687 00:31:44,110 --> 00:31:48,090 alors disons, qui est un commande d'erreur ne se trouve pas. 688 00:31:48,090 --> 00:31:49,312 689 00:31:49,312 --> 00:31:50,520 Apparaît toujours dans l'histoire. 690 00:31:50,520 --> 00:31:52,620 691 00:31:52,620 --> 00:31:53,170 Bien. 692 00:31:53,170 --> 00:31:54,750 693 00:31:54,750 --> 00:31:56,040 Autres questions sur quoi que ce soit? 694 00:31:56,040 --> 00:31:58,760 695 00:31:58,760 --> 00:32:00,300 Voilà donc Bang. 696 00:32:00,300 --> 00:32:04,230 >> Maintenant, commande vraiment utile, l'homme. 697 00:32:04,230 --> 00:32:07,750 Cela vous donne la manuel pour une commande donnée. 698 00:32:07,750 --> 00:32:11,640 Alors disons man ls, si ce me montre ls. 699 00:32:11,640 --> 00:32:13,400 Il énumère le contenu du répertoire. 700 00:32:13,400 --> 00:32:17,150 Et là je vois qu'il ya sont ces différents drapeaux qui existent. 701 00:32:17,150 --> 00:32:21,340 Nous voyons donc que ls -l existe si nous étions à lire. ls -l 702 00:32:21,340 --> 00:32:26,150 me donne cette liste complète de la répertoire avec qui possède le fichier, 703 00:32:26,150 --> 00:32:29,750 la taille du fichier, la l'horodatage modifié. 704 00:32:29,750 --> 00:32:31,130 705 00:32:31,130 --> 00:32:34,980 Donc ls -a est un autre que vous pourriez en fait utiliser un peu fréquemment. 706 00:32:34,980 --> 00:32:38,130 -al est mon drapeau le plus commun ce passé ls. 707 00:32:38,130 --> 00:32:42,520 >> Donc -a, remarque qu'il ya beaucoup plus de fichiers que seulement ls. 708 00:32:42,520 --> 00:32:44,170 ls -a. 709 00:32:44,170 --> 00:32:46,170 Ce qui est en commun avec tous ces fichiers? 710 00:32:46,170 --> 00:32:47,790 Ils commencent par un point. 711 00:32:47,790 --> 00:32:54,710 Donc, ceci est une convention dans Linux les fichiers commençant par un point sont cachés. 712 00:32:54,710 --> 00:32:58,330 Donc, cela signifie juste que quand nous venons de ls droites, 713 00:32:58,330 --> 00:33:04,170 ou nous sommes à la recherche de ce répertoire à l'aide l'équivalent du Finder, ou Windows 714 00:33:04,170 --> 00:33:07,250 Explorateur équivalent, que nous ne veulent pas voir ces fichiers de points. 715 00:33:07,250 --> 00:33:09,680 Ils polluent la juste vision des choses. 716 00:33:09,680 --> 00:33:11,790 Donc, ils sont cachés à moins que vous spécifiquement 717 00:33:11,790 --> 00:33:14,250 leur demander avec quelque chose comme -a. 718 00:33:14,250 --> 00:33:18,920 Je ne peux donc cd en .local, et je vois qui, elle-même un répertoire avec 719 00:33:18,920 --> 00:33:22,220 un répertoire partagé, et applications, et bla bla bla. 720 00:33:22,220 --> 00:33:24,520 Donc point, ils sont juste des fichiers cachés. 721 00:33:24,520 --> 00:33:26,250 722 00:33:26,250 --> 00:33:29,355 >> OK, si d'autres plus importants. 723 00:33:29,355 --> 00:33:30,490 724 00:33:30,490 --> 00:33:32,000 Je dois un couple que je peux sauter. 725 00:33:32,000 --> 00:33:38,160 Disons simplement parler vrai rapide sur les choses de redirection de fichier. 726 00:33:38,160 --> 00:33:43,020 Donc, il ya toute une série complexe des choses que vous pouvez faire avec ceux-ci, 727 00:33:43,020 --> 00:33:47,204 mais juste pour les voir, disons, écho. 728 00:33:47,204 --> 00:33:47,870 Une autre commande. 729 00:33:47,870 --> 00:33:48,920 Commande vraiment stupide. 730 00:33:48,920 --> 00:33:50,710 Tout ce qu'il fait est d'imprimer ce que je dis à. 731 00:33:50,710 --> 00:33:52,070 Donc écho bonjour. 732 00:33:52,070 --> 00:33:53,850 Il a juste fait écho bonjour à l'écran. 733 00:33:53,850 --> 00:33:55,170 734 00:33:55,170 --> 00:33:56,390 Bonjour tout le monde. 735 00:33:56,390 --> 00:33:57,890 Echoes Bonjour tout le monde. 736 00:33:57,890 --> 00:34:02,650 >> Donc, une commande ou une symbole qui comprend bash 737 00:34:02,650 --> 00:34:07,620 est ce symbole supérieur, et que la sortie est à un symbole de fichiers. 738 00:34:07,620 --> 00:34:10,940 Donc, si je sortie de cette foo, il est maintenant un fichier 739 00:34:10,940 --> 00:34:15,100 foo, à l'intérieur de qui est Bonjour tout le monde. 740 00:34:15,100 --> 00:34:18,489 Donc, quand je remarque que l'écho bonjour tuyau de monde dans foo, 741 00:34:18,489 --> 00:34:19,980 il n'a pas d'écho Bonjour tout le monde. 742 00:34:19,980 --> 00:34:22,630 Au lieu de cela il a été mis dans le fichier foo. 743 00:34:22,630 --> 00:34:25,340 Et une autre commande seulement à jeter à vous, chat. 744 00:34:25,340 --> 00:34:29,191 Voilà un moyen facile de juste complètement lister le contenu du fichier 745 00:34:29,191 --> 00:34:31,440 de sorte que je ne dois pas ouvrir un éditeur de texte pour l'afficher. 746 00:34:31,440 --> 00:34:34,159 Ainsi le contenu de la fichier foo sont Bonjour tout le monde. 747 00:34:34,159 --> 00:34:38,460 Et je ne pouvais chat blah.c, le contenu est ce. 748 00:34:38,460 --> 00:34:42,123 >> Encore une fois, ce sont des commandes qui, ne le font pas attendre que vous les avez tous en mémoire. 749 00:34:42,123 --> 00:34:43,860 L'idée est que vous avez vus. 750 00:34:43,860 --> 00:34:45,735 Peut-être que vous travaillez sur quelque chose, et vous êtes 751 00:34:45,735 --> 00:34:47,230 comme je suis malade d'ouvrir ce fichier. 752 00:34:47,230 --> 00:34:50,120 Je voudrais juste regarder au contenu réel rapide. 753 00:34:50,120 --> 00:34:52,320 Vous pouvez faire cela, alors regarder en arrière et dire oh je 754 00:34:52,320 --> 00:34:55,250 rappeler quelque chose comme ce qui existe, et il est chat. 755 00:34:55,250 --> 00:35:00,630 >> Alors que se passe dans un fichier. 756 00:35:00,630 --> 00:35:06,639 Maintenant, il n'y a pas vraiment de bon exemple de la lecture d'un fichier encore. 757 00:35:06,639 --> 00:35:08,930 Ce qui est quelque chose qui prend quelque chose de standard? 758 00:35:08,930 --> 00:35:10,010 759 00:35:10,010 --> 00:35:11,544 Toute commande Linux simple? 760 00:35:11,544 --> 00:35:13,480 761 00:35:13,480 --> 00:35:16,970 Quand nous arrivons à elle, dans un couple semaines tous les piece-- bien, 762 00:35:16,970 --> 00:35:20,470 Cette semaine, vous avez une pièce où vous commencer à prendre l'entrée de l'utilisateur. 763 00:35:20,470 --> 00:35:23,696 Et si habituellement vous tapez que l'entrée au clavier. 764 00:35:23,696 --> 00:35:25,570 Au lieu de taper que l'entrée au clavier, 765 00:35:25,570 --> 00:35:30,950 vous pouvez au lieu tuyau depuis un fichier de sorte que lorsque vous faites Mario, ./mario, 766 00:35:30,950 --> 00:35:35,200 tuyau depuis un fichier donné, et qui va exécuter le programme mario. 767 00:35:35,200 --> 00:35:37,300 Pas attendre l'entrée en le clavier, il est plutôt 768 00:35:37,300 --> 00:35:39,650 aller juste pour lire le les lignes du fichier foo. 769 00:35:39,650 --> 00:35:45,230 >> Donc, plus de foo met en le fichier foo, et moins de foo 770 00:35:45,230 --> 00:35:50,170 prend des trucs à partir du fichier foo et utilise en tant que contribution à ce programme. 771 00:35:50,170 --> 00:35:51,520 772 00:35:51,520 --> 00:36:00,630 Et juste pour voir, nous pourrions également écho foo bar baz, et puis au lieu d'un 773 00:36:00,630 --> 00:36:03,850 supérieure, nous allons faire deux en foo. 774 00:36:03,850 --> 00:36:05,610 Qu'est-ce que faire? 775 00:36:05,610 --> 00:36:07,180 Il ajoute juste le fichier. 776 00:36:07,180 --> 00:36:15,360 Ainsi, au lieu remarquer si je ne reprends bla en foo et foo chat, il est juste bla. 777 00:36:15,360 --> 00:36:18,285 Ainsi, lorsque vous exportez dans un fichier informatique, écrase complètement ce fichier. 778 00:36:18,285 --> 00:36:19,330 779 00:36:19,330 --> 00:36:22,740 Si vous voulez juste ajouter, deux [? niveleuse. ?] 780 00:36:22,740 --> 00:36:24,080 >> Et le dernier est un tuyau. 781 00:36:24,080 --> 00:36:29,590 Tuyau devient beaucoup plus compliqué, où il prend la sortie d'une commande 782 00:36:29,590 --> 00:36:32,320 et se nourrit dans la commande suivante. 783 00:36:32,320 --> 00:36:36,140 Donc, quelque chose, une histoire. 784 00:36:36,140 --> 00:36:37,920 Donc, pouah, je ne veux pas regarder cette. 785 00:36:37,920 --> 00:36:40,680 786 00:36:40,680 --> 00:36:44,485 Montrez-moi toutes les commandes de mon histoire où je Grep-ed pour quelque chose. 787 00:36:44,485 --> 00:36:45,360 Non, ça déroutant. 788 00:36:45,360 --> 00:36:50,360 Montrez-moi toutes les commandes où je trouve. 789 00:36:50,360 --> 00:36:52,360 Toutes les commandes find je jamais couru. 790 00:36:52,360 --> 00:36:55,050 >> Donc l'histoire. 791 00:36:55,050 --> 00:36:59,017 Maintenant sorties d'histoire à la filtrer cette liste de commandes, 792 00:36:59,017 --> 00:37:00,850 mais je ne veux pas sortie à l'écran. 793 00:37:00,850 --> 00:37:03,445 Au lieu de cela, je vais tuyau dans grep. 794 00:37:03,445 --> 00:37:04,790 795 00:37:04,790 --> 00:37:07,830 Alors disons grep pour tous les cas de trouvaille. 796 00:37:07,830 --> 00:37:09,550 797 00:37:09,550 --> 00:37:17,000 Alors maintenant, au lieu de prendre grep l'entrée, à la place de-- 798 00:37:17,000 --> 00:37:24,360 grep est capable de gérer comme input-- nous sommes l'utilisation de grep légèrement différente ici. 799 00:37:24,360 --> 00:37:29,550 Ainsi, au lieu de taper la liste des choses que nous voulions rechercher 800 00:37:29,550 --> 00:37:31,070 et dit grep prend en entrée. 801 00:37:31,070 --> 00:37:34,810 Donc, si je ne trouve juste grep, il attend que je tape choses. 802 00:37:34,810 --> 00:37:37,661 Donc chat bonjour trouver. 803 00:37:37,661 --> 00:37:38,160 Bonjour. 804 00:37:38,160 --> 00:37:40,430 805 00:37:40,430 --> 00:37:40,930 Trouvez. 806 00:37:40,930 --> 00:37:43,670 Notez chaque fois que je tape trouver il reconnaît que je l'ai tapé trouvaille. 807 00:37:43,670 --> 00:37:44,880 808 00:37:44,880 --> 00:37:49,540 Ainsi, au lieu de cela, sera dossiers de recherche pour trouver. 809 00:37:49,540 --> 00:37:53,930 >> Donc, l'histoire va maintenant sortie une liste de toutes les commandes. 810 00:37:53,930 --> 00:37:55,200 811 00:37:55,200 --> 00:37:58,100 Nous mettons cette sortie, et nous nourrir de grep, 812 00:37:58,100 --> 00:38:00,180 et il est donc cracher toutes les instances de trouver. 813 00:38:00,180 --> 00:38:02,170 814 00:38:02,170 --> 00:38:05,570 La raison pour laquelle je dit que ça peut prêter à confusion est si je-- il est encore confuse. 815 00:38:05,570 --> 00:38:07,030 Si je grep pour grep. 816 00:38:07,030 --> 00:38:08,755 817 00:38:08,755 --> 00:38:11,130 Remarquez qu'il est à peu près toujours montrant la commande que je viens 818 00:38:11,130 --> 00:38:15,280 couru parce que commande lui-même a grep à l'intérieur de celui-ci. 819 00:38:15,280 --> 00:38:16,580 820 00:38:16,580 --> 00:38:20,674 >> OK, donc des questions sur quoi que ce soit? 821 00:38:20,674 --> 00:38:22,340 Et je vais le transférer sur à ce stade. 822 00:38:22,340 --> 00:38:24,690 Espérons que cela est un bon aperçu de toutes les commandes 823 00:38:24,690 --> 00:38:30,100 que vous ne devez pas avoir mémorisés, mais ceux-ci représentent 824 00:38:30,100 --> 00:38:32,950 un solide 95% de ce que je faire à la ligne de commande. 825 00:38:32,950 --> 00:38:34,310 826 00:38:34,310 --> 00:38:39,140 Aussi garder à l'esprit que la ligne de commande lui-même, Bash est un langage de programmation, 827 00:38:39,140 --> 00:38:43,070 et donc quand vous descendez à elle, vous peut-être envie de faire des choses vraiment complexes. 828 00:38:43,070 --> 00:38:47,522 Et il a des choses comme boucles, et ifs, et tous ceux 829 00:38:47,522 --> 00:38:50,230 que vous allez vous habituer à avec vos langages de programmation. 830 00:38:50,230 --> 00:38:53,660 Mais qui est au-delà de la champ d'application de la présente section. 831 00:38:53,660 --> 00:38:55,520 832 00:38:55,520 --> 00:38:56,985 OK, donc pas de questions? 833 00:38:56,985 --> 00:38:57,940 834 00:38:57,940 --> 00:38:58,523 ALLISON: Aucun? 835 00:38:58,523 --> 00:38:59,450 GABRIEL: Allez-vous to-- 836 00:38:59,450 --> 00:39:01,158 ALLISON: Je peux le faire sur le mien si vous voulez. 837 00:39:01,158 --> 00:39:02,626 Nous pouvons voir ce qui se passe. 838 00:39:02,626 --> 00:39:03,750 ROB BOWDEN: Off à Allison. 839 00:39:03,750 --> 00:39:05,090 ALLISON: Woo. 840 00:39:05,090 --> 00:39:07,504 Vous êtes un acte difficile à suivre, Rob. 841 00:39:07,504 --> 00:39:08,920 Voulez-vous moi de passer avec vous? 842 00:39:08,920 --> 00:39:10,246 Ou vous avez, OK. 843 00:39:10,246 --> 00:39:13,590 844 00:39:13,590 --> 00:39:16,990 Je vais essayer de ne pas tout à fait être aussi longue il. 845 00:39:16,990 --> 00:39:20,619 846 00:39:20,619 --> 00:39:22,660 Voyons si cette volonté travailler comme je le veux. 847 00:39:22,660 --> 00:39:26,170 848 00:39:26,170 --> 00:39:26,670 Peut-être? 849 00:39:26,670 --> 00:39:27,760 850 00:39:27,760 --> 00:39:28,296 Haha! 851 00:39:28,296 --> 00:39:28,796 Oui. 852 00:39:28,796 --> 00:39:30,460 853 00:39:30,460 --> 00:39:34,066 >> Donc je vais juste aller très vite à travers les variables, les boucles, les conditions, 854 00:39:34,066 --> 00:39:35,440 et un peu sur le compilateur. 855 00:39:35,440 --> 00:39:38,570 Si vous avez des questions à tout moment, se il vous plaît arrêter moi. 856 00:39:38,570 --> 00:39:42,750 Ces gars-là va me rappeler à répéter votre question dans le cas où je l'oublie, 857 00:39:42,750 --> 00:39:44,210 mais ne devrait pas être trop mauvais. 858 00:39:44,210 --> 00:39:45,850 >> Donc, les variables, ouais. 859 00:39:45,850 --> 00:39:48,060 Nous avons pas l'un de vos Scratch morceaux ici. 860 00:39:48,060 --> 00:39:50,440 Je suis sûr que la plupart d'entre vous, si vous aviez une sorte de jeu 861 00:39:50,440 --> 00:39:53,810 que vous avez créé avec Scratch, vous aviez de garder une trace de quelque chose comme score, 862 00:39:53,810 --> 00:39:55,870 ou de temps, ou quelque chose comme ça. 863 00:39:55,870 --> 00:39:58,080 Ainsi, ceux de couleur orange vif pièces que nous voyons là 864 00:39:58,080 --> 00:40:02,630 ne sont que la forme de rayures de les variables, et vous aurez certainement 865 00:40:02,630 --> 00:40:04,640 être en utilisant des variables tout au long de vos programmes. 866 00:40:04,640 --> 00:40:07,350 Si vous n'êtes pas, je ne suis pas vraiment que ce que vous faites. 867 00:40:07,350 --> 00:40:09,000 868 00:40:09,000 --> 00:40:12,215 >> Mais de toute façon, une grande chose, définition des variables. 869 00:40:12,215 --> 00:40:13,630 870 00:40:13,630 --> 00:40:16,970 Avec C chaque variable a d'avoir un type déclaré, 871 00:40:16,970 --> 00:40:22,090 si je vous ai donné une très un général au sommet. 872 00:40:22,090 --> 00:40:24,045 Ainsi, vous aurez votre taper et puis tout ce qui 873 00:40:24,045 --> 00:40:25,420 vous décidez d'appeler votre variable. 874 00:40:25,420 --> 00:40:27,500 875 00:40:27,500 --> 00:40:29,680 Donc dans ce cas, le type dans votre liste de variables. 876 00:40:29,680 --> 00:40:31,400 >> Nous avons trois exemples. 877 00:40:31,400 --> 00:40:34,439 Char de certains élèves, un de A, ce qui est 878 00:40:34,439 --> 00:40:36,230 Je suis sûr que vous voulez tous pour obtenir dans cette classe. 879 00:40:36,230 --> 00:40:37,380 880 00:40:37,380 --> 00:40:40,670 Vous pouvez définir plusieurs variables sur une seule ligne 881 00:40:40,670 --> 00:40:43,880 tant qu'ils sont tous du même type, qui est notre deuxième exemple, il 882 00:40:43,880 --> 00:40:46,409 où vous avez trois variables x, y, et z. 883 00:40:46,409 --> 00:40:47,200 Ils sont tous les flotteurs. 884 00:40:47,200 --> 00:40:49,160 885 00:40:49,160 --> 00:40:53,250 Et puis vous pouvez aussi, dans ce dernier exemple avec un score de int et nombre 886 00:40:53,250 --> 00:40:56,510 des équipes, vous pouvez initialiser là. 887 00:40:56,510 --> 00:41:01,270 >> Ainsi, dans l'exemple du milieu où nous juste avoir flotteur de x, y et z, 888 00:41:01,270 --> 00:41:02,730 ceux ne sont pas encore initialisée. 889 00:41:02,730 --> 00:41:04,140 Ils sont sans valeur. 890 00:41:04,140 --> 00:41:05,600 Ou ils ont des valeurs parasites. 891 00:41:05,600 --> 00:41:07,370 892 00:41:07,370 --> 00:41:10,790 Et si vous essayez de les utiliser, le compilateur va hurler à vous. 893 00:41:10,790 --> 00:41:14,727 Vous devez déclarer à la fois et initialiser vos variables. 894 00:41:14,727 --> 00:41:16,310 Donc, dans ce dernier, nous faisons les deux. 895 00:41:16,310 --> 00:41:19,320 Nous déclarons les variables de marquer et nombre d'équipes, 896 00:41:19,320 --> 00:41:24,134 et nous leur Initialisation, donnant eux leurs valeurs initiales de 7 et 4 897 00:41:24,134 --> 00:41:24,675 respectivement. 898 00:41:24,675 --> 00:41:26,310 899 00:41:26,310 --> 00:41:27,190 Laisser refroidir. 900 00:41:27,190 --> 00:41:28,550 Tout le monde bien? 901 00:41:28,550 --> 00:41:29,470 Impressionnant. 902 00:41:29,470 --> 00:41:31,690 >> OK, si certaines conventions. 903 00:41:31,690 --> 00:41:35,965 Si vous avez lu les gars par le style 50, ces 904 00:41:35,965 --> 00:41:39,510 ne sont que des choses que nous aimerions pour vous de mettre en œuvre dans votre style. 905 00:41:39,510 --> 00:41:41,230 Donc noms significatifs. 906 00:41:41,230 --> 00:41:45,700 Si vous commencez à appeler les choses tout x, y, et z, en particulier 907 00:41:45,700 --> 00:41:47,902 que vous obtenez en plus longue programmes, vous êtes 908 00:41:47,902 --> 00:41:49,610 va probablement confondre vous-même et être 909 00:41:49,610 --> 00:41:52,930 comme ce qui est de cette variable référence. 910 00:41:52,930 --> 00:41:55,880 Je ne sais pas ce que cela signifie. 911 00:41:55,880 --> 00:41:59,280 >> Donc, si il est destiné à tenir un score, appelez le score. 912 00:41:59,280 --> 00:42:05,720 Si il est destiné à maintenir une certaine réponse ou entraîner, lui donner un nom comme ça. 913 00:42:05,720 --> 00:42:09,920 Pour les boucles, que nous entrer dans la prochaine diapositive, 914 00:42:09,920 --> 00:42:12,985 les variables d'une seule lettre sont très bien. 915 00:42:12,985 --> 00:42:16,033 916 00:42:16,033 --> 00:42:18,449 ROB BOWDEN: I, J et K sont que des conventions pour des boucles 917 00:42:18,449 --> 00:42:22,050 que tout le monde les attend d'être appelé i, j, et k. 918 00:42:22,050 --> 00:42:26,890 Vous pouvez appeler eux-- je vois rangée colonne ou rangée appel parfois 919 00:42:26,890 --> 00:42:29,450 pour deux boucles imbriquées, et qui est aussi un peu de la norme. 920 00:42:29,450 --> 00:42:31,450 Mais i et j est entièrement compris. 921 00:42:31,450 --> 00:42:33,670 >> ALLISON: Ouais, i et j vous êtes tout à fait bien. 922 00:42:33,670 --> 00:42:36,250 Par souci de clarté comme dans certains de vos ensembles de P, 923 00:42:36,250 --> 00:42:39,745 il pourrait être judicieux d'avoir plus choses descriptives là juste 924 00:42:39,745 --> 00:42:40,920 de garder une trace de lui. 925 00:42:40,920 --> 00:42:45,100 Mais je pense que i, j, k et je pense la grande majorité d'entre nous utilisons tous. 926 00:42:45,100 --> 00:42:46,890 927 00:42:46,890 --> 00:42:50,340 >> ROB BOWDEN: Avec ces conventions, si le style est important. 928 00:42:50,340 --> 00:42:53,520 Il est l'un des quatre axes sur lequel vous êtes classé, 929 00:42:53,520 --> 00:42:58,110 et il est si facile d'aller un peu plus votre P fixé à la fin et assurez-vous 930 00:42:58,110 --> 00:42:59,770 qu'il n'y a pas d'erreurs stylistiques. 931 00:42:59,770 --> 00:43:01,742 Donc, assurez-vous de tabulation correctement. 932 00:43:01,742 --> 00:43:03,200 Assurez-vous que vos variables sont nommées. 933 00:43:03,200 --> 00:43:04,450 Laisser des commentaires. 934 00:43:04,450 --> 00:43:06,677 Il est très facile d'obtenir ces points. 935 00:43:06,677 --> 00:43:09,510 Vous ne devez pas penser à rien pour obtenir ces points. 936 00:43:09,510 --> 00:43:11,093 Vous ne disposez pas de comprendre quoi que ce soit. 937 00:43:11,093 --> 00:43:12,640 Il est juste ce qui en fait joli. 938 00:43:12,640 --> 00:43:14,850 >> ALLISON: En fait, nous avoir du style 50, qui 939 00:43:14,850 --> 00:43:17,920 vous dire où vous avez affaire si vous êtes gâcher sur le style 940 00:43:17,920 --> 00:43:21,180 et vous dire exactement ce que vous besoin de fixer et comment vous devez le réparer. 941 00:43:21,180 --> 00:43:23,900 Il est également juste bon de mentionner qu'il est la politique de cours 942 00:43:23,900 --> 00:43:27,200 que si vous êtes au bureau heures et votre code est un gâchis, 943 00:43:27,200 --> 00:43:30,200 nous pouvons refuser d'aider vous jusqu'à ce qu'il ressemble plus agréable. 944 00:43:30,200 --> 00:43:34,310 Donc, commencer à droite, maintenir style cohérent, 945 00:43:34,310 --> 00:43:37,100 vous êtes aussi simplement faire votre vie beaucoup plus facile lorsque 946 00:43:37,100 --> 00:43:38,730 vous essayez de passer par débogage. 947 00:43:38,730 --> 00:43:41,510 Si vous essayez de comprendre où vous êtes absent une accolade 948 00:43:41,510 --> 00:43:44,890 et ils sont tous sur la place, vous êtes juste faire votre propre vie difficile. 949 00:43:44,890 --> 00:43:47,217 Donc, être compatible avec le style. 950 00:43:47,217 --> 00:43:48,800 Je vous promets que ça va vous rendre la vie plus facile. 951 00:43:48,800 --> 00:43:50,330 Il va nous faciliter la vie. 952 00:43:50,330 --> 00:43:51,869 Tout le monde sera beaucoup plus heureux. 953 00:43:51,869 --> 00:43:52,910 Et qui est ce que vous voulez. 954 00:43:52,910 --> 00:43:54,192 955 00:43:54,192 --> 00:43:55,650 GABRIEL: Votre note sera plus élevé. 956 00:43:55,650 --> 00:43:56,858 Allison: Oui, et votre note. 957 00:43:56,858 --> 00:43:58,410 958 00:43:58,410 --> 00:44:01,930 Si votre TF est comme vous, tend à être favorable. 959 00:44:01,930 --> 00:44:02,940 960 00:44:02,940 --> 00:44:05,010 Tout droit, et ensuite seulement le deuxième point ici. 961 00:44:05,010 --> 00:44:06,300 Initialisations cohérente. 962 00:44:06,300 --> 00:44:09,605 Donc, comme nous l'avons vu, vous pouvez déclarer et initialiser les choses. 963 00:44:09,605 --> 00:44:10,750 964 00:44:10,750 --> 00:44:13,180 Plusieurs variables sur la même ligne. 965 00:44:13,180 --> 00:44:17,930 Une chose que nous aimerions que vous ne à faire est de déclarer certaines variables 966 00:44:17,930 --> 00:44:21,360 et pas les initialiser sur le même ligne que vous initialisez autres. 967 00:44:21,360 --> 00:44:23,960 >> Ainsi, en cas que fait aucun sens, 968 00:44:23,960 --> 00:44:29,050 nous avons l'exemple ici où nous déclarant ints 969 00:44:29,050 --> 00:44:31,180 dans les variables de quartiers dimes et quelques centimes, 970 00:44:31,180 --> 00:44:34,214 mais les quarts et les pièces de monnaie avoir aucune valeur initiale. 971 00:44:34,214 --> 00:44:36,630 Nous ne les avons pas initialisé, mais en plein milieu, il 972 00:44:36,630 --> 00:44:38,600 nous avons déjà initialisé dimes à 0. 973 00:44:38,600 --> 00:44:41,650 Donc, ne soit quartiers, dimes, pièces de monnaie. 974 00:44:41,650 --> 00:44:43,170 Ou faire trimestres égal à 0. 975 00:44:43,170 --> 00:44:43,930 Dimes égal à 0. 976 00:44:43,930 --> 00:44:46,810 Pennies égal à 0, ou quel que soit ces valeurs initiales sont. 977 00:44:46,810 --> 00:44:49,800 >> Big chose avec style, être cohérent. 978 00:44:49,800 --> 00:44:51,050 En cas de doute, être cohérent. 979 00:44:51,050 --> 00:44:52,129 980 00:44:52,129 --> 00:44:53,420 Mais suivre notre guide de style aussi. 981 00:44:53,420 --> 00:44:54,710 982 00:44:54,710 --> 00:44:55,317 Laisser refroidir. 983 00:44:55,317 --> 00:44:56,150 Tout le monde il bon? 984 00:44:56,150 --> 00:44:57,566 >> Audience: Où est le guide de style? 985 00:44:57,566 --> 00:45:00,800 ALLISON: Le guide de style est on-- ce qui est le site? 986 00:45:00,800 --> 00:45:03,950 >> GABRIEL: Je pense qu'il est manual.cs50.net/-- 987 00:45:03,950 --> 00:45:04,575 ALLISON: style? 988 00:45:04,575 --> 00:45:05,610 989 00:45:05,610 --> 00:45:06,390 >> GABRIEL: style. 990 00:45:06,390 --> 00:45:06,920 Yep. 991 00:45:06,920 --> 00:45:07,520 >> Allison: Oui. 992 00:45:07,520 --> 00:45:10,150 Alors question, où est le style 50. 993 00:45:10,150 --> 00:45:12,250 manual.cs50.net/style. 994 00:45:12,250 --> 00:45:13,639 Oui? 995 00:45:13,639 --> 00:45:16,880 >> PUBLIC: Si nous définissons les variables, il est OK 996 00:45:16,880 --> 00:45:28,145 si nous mettons comme [inaudible] comme score int puis int objectif. 997 00:45:28,145 --> 00:45:29,873 998 00:45:29,873 --> 00:45:35,100 Donc, diriez-vous que maintenant nous avons appris à les définir ensemble? 999 00:45:35,100 --> 00:45:37,640 >> Allison: Alors question, devrait vous avez du code redondant 1000 00:45:37,640 --> 00:45:40,940 lorsque vous définissez variables telles que la note de int et 1001 00:45:40,940 --> 00:45:43,239 sur la ligne suivante int jeu? 1002 00:45:43,239 --> 00:45:46,030 ROB BOWDEN: Il ya certainement cas où le code redondant est mauvais. 1003 00:45:46,030 --> 00:45:47,738 Je ne dirais pas que ce code redondant. 1004 00:45:47,738 --> 00:45:50,970 Je déclare presque jamais multiple variables sur la même ligne jamais. 1005 00:45:50,970 --> 00:45:53,736 Et si quelque chose, il est parce que généralement je laisse une sorte de commentaire 1006 00:45:53,736 --> 00:45:55,235 expliquant ce qu'est la variable pour. 1007 00:45:55,235 --> 00:45:57,582 Donc, je dirai score int slash slash. 1008 00:45:57,582 --> 00:45:59,350 Assure le suivi de tout. 1009 00:45:59,350 --> 00:46:00,710 En slash slash totale. 1010 00:46:00,710 --> 00:46:01,790 1011 00:46:01,790 --> 00:46:06,455 Donc, il est beaucoup plus grossière de cette façon de les mettre tous sur la même ligne. 1012 00:46:06,455 --> 00:46:08,080 Je viens jamais les mettre sur la même ligne. 1013 00:46:08,080 --> 00:46:10,580 >> ALLISON: Je me sens comme il est préférence personnelle à ce stade. 1014 00:46:10,580 --> 00:46:14,900 >> Public: Est-ce que pour aller pour les boucles et les choses aussi? 1015 00:46:14,900 --> 00:46:15,900 ROB BOWDEN: Comme à l'intérieur? 1016 00:46:15,900 --> 00:46:18,282 Comme int i est égal à 0 virgule longueur est égale à quelque chose? 1017 00:46:18,282 --> 00:46:19,490 Que vous ne disposez pas d'un choix. 1018 00:46:19,490 --> 00:46:21,850 1019 00:46:21,850 --> 00:46:25,910 Avec des boucles de l'initialisation part-- si vous avez peut-être vu que 1020 00:46:25,910 --> 00:46:31,520 int i vaut 0 point-virgule i moins que tout ce virgule i plus plus. 1021 00:46:31,520 --> 00:46:33,820 Ce int i est égal à 0, techniquement, vous pouvez également 1022 00:46:33,820 --> 00:46:35,770 faisons ce que nous avons vu avant avec la syntaxe par des virgules. 1023 00:46:35,770 --> 00:46:39,790 int i est égal à 0 virgule j est égal à 3 virgule k est égal à 5. 1024 00:46:39,790 --> 00:46:41,610 1025 00:46:41,610 --> 00:46:44,320 Vous ne disposez pas d'un choix de diviser qui en plusieurs lignes, 1026 00:46:44,320 --> 00:46:46,530 et qui est la norme. 1027 00:46:46,530 --> 00:46:47,780 Voyant là est très bien. 1028 00:46:47,780 --> 00:46:49,182 1029 00:46:49,182 --> 00:46:49,890 ALLISON: Awesome. 1030 00:46:49,890 --> 00:46:52,120 Eh bien, Segue pratique en boucles. 1031 00:46:52,120 --> 00:46:54,860 1032 00:46:54,860 --> 00:46:58,980 Alors oui, nous avons ici quelques exemples de boucles que vous les gars ont vu dans Scratch. 1033 00:46:58,980 --> 00:47:01,550 Et bien sûr, tous ces peut seulement être recréé en C. 1034 00:47:01,550 --> 00:47:04,610 Et ils vous permettent essentiellement à répéter certaines section de code 1035 00:47:04,610 --> 00:47:06,740 jusqu'à un certain état est remplie, que nous allons 1036 00:47:06,740 --> 00:47:09,198 entrer dans le droit après avoir parlé boucles sur des conditionnels. 1037 00:47:09,198 --> 00:47:11,150 1038 00:47:11,150 --> 00:47:12,570 >> Nous avons donc trois types principaux. 1039 00:47:12,570 --> 00:47:17,500 Car, si, et faire tout, qui nous irons tous en ce moment. 1040 00:47:17,500 --> 00:47:18,860 Donc première est pour les boucles. 1041 00:47:18,860 --> 00:47:20,490 1042 00:47:20,490 --> 00:47:25,034 Donc, pour un certain état, exécuter ce bloc de code. 1043 00:47:25,034 --> 00:47:27,200 Nous avons ce petit froid diagramme ici en bas. 1044 00:47:27,200 --> 00:47:28,230 1045 00:47:28,230 --> 00:47:32,310 Mais, fondamentalement, vous avez en votre pour que la première ligne, 1046 00:47:32,310 --> 00:47:34,240 vous allez initialiser vos variables. 1047 00:47:34,240 --> 00:47:38,260 >> Donc, comme nous en avons parlé, i est égal à 0 ou i est égal à 10. 1048 00:47:38,260 --> 00:47:40,010 Tout ce que vous avez besoin que variable soit il est 1049 00:47:40,010 --> 00:47:43,970 allez y être initialisé, déclarée et initialisée à une valeur. 1050 00:47:43,970 --> 00:47:46,760 Alors nous avons une certaine condition que ça va 1051 00:47:46,760 --> 00:47:48,900 être vérifier notre variable par rapport à quelque chose. 1052 00:47:48,900 --> 00:47:55,220 Ainsi, dans le cas le cas typique où peut-être vous voulez cette section de code 1053 00:47:55,220 --> 00:47:56,620 à exécuter cinq fois. 1054 00:47:56,620 --> 00:48:02,380 Il faudrait donc int i est égal à 0, et nous veux que ce soit lorsque i est inférieur à 5. 1055 00:48:02,380 --> 00:48:04,940 Donc, cette condition est juste va vérifier que chaque fois. 1056 00:48:04,940 --> 00:48:07,120 Si cette condition évalue à true, il est 1057 00:48:07,120 --> 00:48:11,162 va exécuter le code, ce qui est exactement ce que ce petit diagramme montre. 1058 00:48:11,162 --> 00:48:12,370 1059 00:48:12,370 --> 00:48:13,639 >> Et il l'exécute. 1060 00:48:13,639 --> 00:48:15,430 Il met à jour une variable, qui est ce que nous voyons 1061 00:48:15,430 --> 00:48:21,020 dans la dernière partie de notre pour initialisation de la boucle il. 1062 00:48:21,020 --> 00:48:22,370 1063 00:48:22,370 --> 00:48:26,030 Donc, il va juste continuer à faire ce jusqu'à ce que cette condition ne soit pas remplie, 1064 00:48:26,030 --> 00:48:28,010 et puis il sortira la boucle et continuer 1065 00:48:28,010 --> 00:48:29,960 de passer le reste de votre programme. 1066 00:48:29,960 --> 00:48:31,320 1067 00:48:31,320 --> 00:48:33,620 Tout le monde il bon? 1068 00:48:33,620 --> 00:48:34,440 Laisser refroidir. 1069 00:48:34,440 --> 00:48:37,780 >> Alors, voici un exemple, très similaire à quelque chose que je viens de parler. 1070 00:48:37,780 --> 00:48:42,030 Donc, nous voulons juste imprimer cela est CS50 10 fois. 1071 00:48:42,030 --> 00:48:44,540 Donc, vous voyez que nous avons ici notre pour, et puis nous 1072 00:48:44,540 --> 00:48:47,450 initialiser la variable i soit égale à 0. 1073 00:48:47,450 --> 00:48:50,610 Notre condition est vérifié qu'il est inférieur à 10. 1074 00:48:50,610 --> 00:48:55,210 Donc évaluer à vrai lorsque nous avons commencer, puis met à jour notre variable 1075 00:48:55,210 --> 00:48:58,985 à chaque fois qu'il exécute réellement et imprime ce sont CS50. 1076 00:48:58,985 --> 00:49:00,510 1077 00:49:00,510 --> 00:49:02,180 Et prendra fin au bout de 10 fois. 1078 00:49:02,180 --> 00:49:03,190 1079 00:49:03,190 --> 00:49:04,070 Laisser refroidir. 1080 00:49:04,070 --> 00:49:07,130 >> Ainsi, alors que les boucles sont à côté. 1081 00:49:07,130 --> 00:49:12,400 Et comme vous le voyez ici, nous avons juste quelque temps cette question condition--? 1082 00:49:12,400 --> 00:49:15,238 >> Public: Comment puis-je sauter en fait tout simplement pas un nombre, 1083 00:49:15,238 --> 00:49:19,030 mais deux nombres [inaudible] i plus plus plus? 1084 00:49:19,030 --> 00:49:23,390 >> ALLISON: Donc la question était de savoir comment pouvez-vous mettre à jour votre variable par plus d'un 1085 00:49:23,390 --> 00:49:24,070 à la fois. 1086 00:49:24,070 --> 00:49:26,860 Donc je plus plus sera mise à jour par un à chaque fois. 1087 00:49:26,860 --> 00:49:32,310 Si vous voulez mettre à jour en deux, vous pourriez faire i vaut plus 2. 1088 00:49:32,310 --> 00:49:34,526 >> ROB BOWDEN: Avez-vous vu ainsi égaux en cours encore? 1089 00:49:34,526 --> 00:49:35,442 >> PUBLIC: [inaudible]. 1090 00:49:35,442 --> 00:49:37,440 1091 00:49:37,440 --> 00:49:42,110 >> ALLISON: Il est effectivement le même chose que i est égal à i + 2. 1092 00:49:42,110 --> 00:49:46,130 Donc, il va prendre et mettre à jour en deux à chaque fois. 1093 00:49:46,130 --> 00:49:49,432 De plus des égaux est juste quelque chose nous appelons sucre syntaxique. 1094 00:49:49,432 --> 00:49:52,390 ROB BOWDEN: Ouais, ceux existe pour à peu près tous les opérateurs arithmétiques. 1095 00:49:52,390 --> 00:49:55,830 Fois donc je égal à permettrait de doubler le nombre. 1096 00:49:55,830 --> 00:50:02,590 j fracture est égal à 3 est le même comme j est égal à j divisé par 3. 1097 00:50:02,590 --> 00:50:07,399 >> ALLISON: Ou moins égal à 2 serait décrémenter i par deux à chaque fois. 1098 00:50:07,399 --> 00:50:08,565 ROB BOWDEN: Même égaux mod. 1099 00:50:08,565 --> 00:50:09,690 1100 00:50:09,690 --> 00:50:13,270 Vous ne l'avez pas vu opérateurs de bits, mais caret égale et esperluette est égal, 1101 00:50:13,270 --> 00:50:14,560 tous ceux qui existent. 1102 00:50:14,560 --> 00:50:19,480 >> ALLISON: Donc, un grand nombre de fois, en particulier avec votre premier couple de P ensembles, 1103 00:50:19,480 --> 00:50:22,527 vous serez probablement par incrément de un, donc je plus plus, plus plus j 1104 00:50:22,527 --> 00:50:24,610 sont toutes des choses que vous allez à être généralement en utilisant. 1105 00:50:24,610 --> 00:50:28,240 Mais cette condition de mise à jour est entièrement sous votre contrôle. 1106 00:50:28,240 --> 00:50:32,310 Vous pouvez le mettre à jour par tous les paliers ou quelle que soit la façon dont vous décidez de. 1107 00:50:32,310 --> 00:50:33,389 1108 00:50:33,389 --> 00:50:35,680 Peut-être que vous voulez qu'il soit encore un nombre aléatoire parfois. 1109 00:50:35,680 --> 00:50:37,180 1110 00:50:37,180 --> 00:50:39,580 Mais oui, il ya beaucoup de choses que vous pouvez faire avec cela. 1111 00:50:39,580 --> 00:50:41,280 Vous n'êtes pas limité à i plus plus. 1112 00:50:41,280 --> 00:50:44,400 >> ROB BOWDEN: Juste pour vous sait qu'elle existe, elle aussi 1113 00:50:44,400 --> 00:50:46,960 existe sous une autre forme, plus plus i. 1114 00:50:46,960 --> 00:50:51,410 Donc, si jamais vous êtes la recherche en ligne et arriver à voir plus plus i, 1115 00:50:51,410 --> 00:50:52,870 à peu près la même signification. 1116 00:50:52,870 --> 00:50:54,377 1117 00:50:54,377 --> 00:50:54,960 ALLISON: Cool. 1118 00:50:54,960 --> 00:50:56,070 1119 00:50:56,070 --> 00:50:56,740 Bonne? 1120 00:50:56,740 --> 00:50:57,240 Impressionnant. 1121 00:50:57,240 --> 00:50:59,190 1122 00:50:59,190 --> 00:50:59,990 Ainsi, alors que les boucles. 1123 00:50:59,990 --> 00:51:01,160 1124 00:51:01,160 --> 00:51:02,570 Très similaire. 1125 00:51:02,570 --> 00:51:03,737 Vous avez une certaine condition. 1126 00:51:03,737 --> 00:51:05,820 La principale chose à remarquer ici est plutôt d'avoir 1127 00:51:05,820 --> 00:51:08,540 trois parties différentes de mettre en place, nous en avons un. 1128 00:51:08,540 --> 00:51:11,090 Nous avons juste une condition qui est en cours de vérification. 1129 00:51:11,090 --> 00:51:14,920 Et de la même manière, dans la mesure où cette condition est évaluée à true, 1130 00:51:14,920 --> 00:51:16,840 votre code va fonctionner. 1131 00:51:16,840 --> 00:51:18,870 Et si elle est fausse, il prendra fin, mouvement 1132 00:51:18,870 --> 00:51:21,930 sur la prochaine partie de votre programme. 1133 00:51:21,930 --> 00:51:25,780 Donc, ce genre est de like-- ce qui est un bon exemple de la vérification 1134 00:51:25,780 --> 00:51:27,215 pour un certain état normal? 1135 00:51:27,215 --> 00:51:29,402 1136 00:51:29,402 --> 00:51:30,235 GABRIEL: Si cela est vrai. 1137 00:51:30,235 --> 00:51:32,110 ALLISON: Vous pourriez faire tout vrai. 1138 00:51:32,110 --> 00:51:33,510 Bien, 1 est égal à 1. 1139 00:51:33,510 --> 00:51:34,970 1140 00:51:34,970 --> 00:51:37,642 >> ROB BOWDEN: Vous pouvez faire while-- seulement au lieu d'utiliser une boucle for, 1141 00:51:37,642 --> 00:51:39,600 vous pouvez toujours coder un de boucle dans une boucle while, 1142 00:51:39,600 --> 00:51:42,600 donc je supérieur à 0 ou tandis que moins de 10 i. 1143 00:51:42,600 --> 00:51:45,200 1144 00:51:45,200 --> 00:51:46,010 >> ALLISON: Awesome. 1145 00:51:46,010 --> 00:51:50,640 Et puis nous avons faire des boucles while, qui est grand pour la validation de l'utilisateur, où 1146 00:51:50,640 --> 00:51:55,370 vous voulez obtenir quelque chose de votre utilisateur, voir si elle est valide, 1147 00:51:55,370 --> 00:51:57,060 et puis continuer à partir de là. 1148 00:51:57,060 --> 00:52:04,000 Donc, l'une des choses à savoir est un faire tout est qu'il va exécuter, 1149 00:52:04,000 --> 00:52:08,000 et alors il sera ré-exécuter si cette condition est remplie. 1150 00:52:08,000 --> 00:52:11,240 >> Donc probablement la meilleure façon de le faire est juste pour voir un exemple ici. 1151 00:52:11,240 --> 00:52:14,620 Donc, comme je viens de le mentionner, l'utilisateur validation est vraiment useful-- 1152 00:52:14,620 --> 00:52:17,520 ou faire whiles sont vraiment utile avec validation de l'utilisateur. 1153 00:52:17,520 --> 00:52:19,730 Donc, ce va juste à nouveau inciter certains utilisateurs 1154 00:52:19,730 --> 00:52:23,640 jusqu'à ce qu'ils entrent dans un nombre positif, qui peut être utile pour votre P ensemble 1155 00:52:23,640 --> 00:52:24,190 cette semaine. 1156 00:52:24,190 --> 00:52:25,850 1157 00:52:25,850 --> 00:52:29,480 Et dans ce cas, lorsque nous d'abord exécuter ce programme, 1158 00:52:29,480 --> 00:52:32,260 il va imprimer Saisissez un nombre positif. 1159 00:52:32,260 --> 00:52:34,810 Il va y avoir une certaine entrée de l'utilisateur, 1160 00:52:34,810 --> 00:52:38,320 et puis il va vérifier que l'état d'entrée à l'encontre 1161 00:52:38,320 --> 00:52:39,500 que vous avez fixés. 1162 00:52:39,500 --> 00:52:41,030 >> Donc, dans ce cas, il va vérifier. 1163 00:52:41,030 --> 00:52:44,190 Il va dire, OK, est notre entrée négative, 1164 00:52:44,190 --> 00:52:47,175 ou est-ce 0 ou négatif, qui serait invalide. 1165 00:52:47,175 --> 00:52:48,300 Alors il serait ré-invite. 1166 00:52:48,300 --> 00:52:50,280 1167 00:52:50,280 --> 00:52:50,780 Question? 1168 00:52:50,780 --> 00:52:54,720 >> Public: Est-ce la même alors comme un tout en boucle si vous venez de copier ce code 1169 00:52:54,720 --> 00:52:56,680 et mettre [inaudible] en boucle? 1170 00:52:56,680 --> 00:52:59,620 1171 00:52:59,620 --> 00:53:05,160 >> Allison: Alors question était le feriez ce soit la même que tout à l'heure 1172 00:53:05,160 --> 00:53:08,570 boucle si nous devions juste copier la boucle while ci-dessus. 1173 00:53:08,570 --> 00:53:12,440 Donc dans ce cas, votre boucle while est aller vérifier l'état premier. 1174 00:53:12,440 --> 00:53:15,300 Donc dans ce cas, si nous avons essayé à écrire comme un simple boucle while, 1175 00:53:15,300 --> 00:53:18,010 il dirait tout entrée est inférieur à un. 1176 00:53:18,010 --> 00:53:20,801 Mais nous ne disposons pas d'une entrée pour elle. 1177 00:53:20,801 --> 00:53:24,238 >> Public: Si vous [inaudible] while y compris le code, 1178 00:53:24,238 --> 00:53:28,166 mais alors vous avez réagi le code au-dessus de la boucle while également. 1179 00:53:28,166 --> 00:53:31,052 Vous venez d'avoir ce code [Inaudible] en boucle. 1180 00:53:31,052 --> 00:53:32,760 ALLISON: Il serait la même chose, oui. 1181 00:53:32,760 --> 00:53:37,110 Ainsi, vous pouvez juste write-- au lieu d'avoir un oui do--. 1182 00:53:37,110 --> 00:53:37,976 1183 00:53:37,976 --> 00:53:39,350 GABRIEL: Mais qui est plus élégant. 1184 00:53:39,350 --> 00:53:41,020 Allison: Oui, qui est plus élégant. 1185 00:53:41,020 --> 00:53:44,560 Vous pouvez obtenir dans la conception et ainsi de suite, mais oui, vous pouvez tout à fait le faire. 1186 00:53:44,560 --> 00:53:45,850 1187 00:53:45,850 --> 00:53:47,072 D'autres questions? 1188 00:53:47,072 --> 00:53:49,240 1189 00:53:49,240 --> 00:53:50,250 OK, cool. 1190 00:53:50,250 --> 00:53:55,540 >> Donc, nous avons beaucoup parlé de conditions avec toutes ces boucles que nous avons, 1191 00:53:55,540 --> 00:53:58,615 de sorte que nous sommes en train d'entrer dans conditions dans les expressions booléennes. 1192 00:53:58,615 --> 00:53:59,990 1193 00:53:59,990 --> 00:54:03,440 Encore une fois, vous utilisez ces en C, si juste genre de transition 1194 00:54:03,440 --> 00:54:06,050 à partir de l'interface graphique plus à coder réellement. 1195 00:54:06,050 --> 00:54:07,480 1196 00:54:07,480 --> 00:54:09,100 >> Cool si grand, si. 1197 00:54:09,100 --> 00:54:11,130 1198 00:54:11,130 --> 00:54:17,070 Fondamentalement nous permet juste d'introduire une certaine logique dans notre programme et de vérifier 1199 00:54:17,070 --> 00:54:17,790 conditions sys. 1200 00:54:17,790 --> 00:54:22,150 Donc dans ce cas, OK, n est plus grand que 0? 1201 00:54:22,150 --> 00:54:24,070 Oui, il est, de sorte que vous pouvez exécuter cette. 1202 00:54:24,070 --> 00:54:28,060 Il est en train de vérifier certains condition que vous avez 1203 00:54:28,060 --> 00:54:33,565 mis, je pense que nous sommes tous à l'aise avec la vérification des conditions. 1204 00:54:33,565 --> 00:54:35,975 1205 00:54:35,975 --> 00:54:36,475 Laisser refroidir. 1206 00:54:36,475 --> 00:54:38,760 1207 00:54:38,760 --> 00:54:44,530 Donc, si votre autre est autre, vous pouvez dire OK, si cela est vrai, 1208 00:54:44,530 --> 00:54:46,150 faire cette première chose. 1209 00:54:46,150 --> 00:54:48,720 Sinon, je vous veux défaut et faire autre chose. 1210 00:54:48,720 --> 00:54:51,977 1211 00:54:51,977 --> 00:54:55,060 Comme dans ce cas, vous choisissez soit un nombre positif ou un nombre négatif. 1212 00:54:55,060 --> 00:54:56,500 Vous avez seulement deux options. 1213 00:54:56,500 --> 00:54:59,550 Vous en avez besoin pour exécuter indépendamment de ce que vos entrées de l'utilisateur. 1214 00:54:59,550 --> 00:55:02,920 Ainsi, vous pouvez bien dire, est-il supérieur à 0? 1215 00:55:02,920 --> 00:55:03,480 Laisser refroidir. 1216 00:55:03,480 --> 00:55:04,480 Imprimer un nombre positif. 1217 00:55:04,480 --> 00:55:06,153 Si il est pas imprimer un négatif. 1218 00:55:06,153 --> 00:55:06,960 Tout le monde bien? 1219 00:55:06,960 --> 00:55:14,920 >> Et puis une chose de reconnaître est que si la condition est remplie si, 1220 00:55:14,920 --> 00:55:16,650 l'autre ne sera jamais aussi exécuter. 1221 00:55:16,650 --> 00:55:19,210 Un seul de ceux-ci exécuter à la fois. 1222 00:55:19,210 --> 00:55:20,410 Il est donc un compromis. 1223 00:55:20,410 --> 00:55:21,720 Vous ne recevez pas avoir les deux. 1224 00:55:21,720 --> 00:55:23,566 Vous avez soit la première condition. 1225 00:55:23,566 --> 00:55:25,440 Vous avez soit le cas ou l'autre, pas les deux. 1226 00:55:25,440 --> 00:55:26,849 1227 00:55:26,849 --> 00:55:28,890 Qui peut alors rendre les choses encore plus compliqué, 1228 00:55:28,890 --> 00:55:31,060 parce que vous pouvez faire si, autre, et puis d'autre. 1229 00:55:31,060 --> 00:55:32,810 Donc dans ce cas, nous avoir trois conditions. 1230 00:55:32,810 --> 00:55:34,830 1231 00:55:34,830 --> 00:55:38,370 Et encore, un seul d'entre eux est va finir par être exécuté. 1232 00:55:38,370 --> 00:55:41,030 Donc, vous demandez peut-être Eh bien, si vous 1233 00:55:41,030 --> 00:55:45,510 quelque chose que peut répondre à deux d'entre eux. 1234 00:55:45,510 --> 00:55:49,520 Peut-être que vous êtes saisie répond à la fois la condition 1235 00:55:49,520 --> 00:55:51,811 car si l'autre et si. 1236 00:55:51,811 --> 00:55:53,060 La seule chose qui va fonctionner 1237 00:55:53,060 --> 00:55:56,240 >> ALLISON: Dès qu'il trouve quelque chose ce qu 'il répond à la condition pour que 1238 00:55:56,240 --> 00:55:59,790 évalue à vrai, voilà ce que ça va fonctionner et rien d'autre. 1239 00:55:59,790 --> 00:56:04,440 Donc, si vous aviez est ce numéro entre 0 et 5 pour votre première, 1240 00:56:04,440 --> 00:56:10,530 ou est ce nombre entre 3 et 5 pour l'autre partie si, 1241 00:56:10,530 --> 00:56:15,550 et vous entrez le number-- Je l'ai dit 0 et 5 et-- 4. 1242 00:56:15,550 --> 00:56:18,110 Il va frapper le premier. 1243 00:56:18,110 --> 00:56:20,960 Il va dire OK, ce nombre est compris entre 0 et 5. 1244 00:56:20,960 --> 00:56:22,480 Exécuter et quitter. 1245 00:56:22,480 --> 00:56:25,340 Il ne sera jamais atteint ce deuxième option. 1246 00:56:25,340 --> 00:56:26,394 Cool? 1247 00:56:26,394 --> 00:56:27,250 Impressionnant. 1248 00:56:27,250 --> 00:56:31,300 >> OK, nous avons également des déclarations de commutateur si vous souhaitez en savoir encore plus-- ou désolé, 1249 00:56:31,300 --> 00:56:31,965 interrupteur est à côté. 1250 00:56:31,965 --> 00:56:33,540 1251 00:56:33,540 --> 00:56:34,990 Je fais d'avance sur moi-même ici. 1252 00:56:34,990 --> 00:56:36,370 1253 00:56:36,370 --> 00:56:39,210 Encore une fois, si plusieurs blocs où, comme je viens de le dire 1254 00:56:39,210 --> 00:56:45,600 est que dès que vous trouvez un état qui a rencontré et si un autre si autre, 1255 00:56:45,600 --> 00:56:46,630 il laisse. 1256 00:56:46,630 --> 00:56:49,560 Si vous avez besoin de vérifier plusieurs choses, vous êtes 1257 00:56:49,560 --> 00:56:53,000 allez vouloir utiliser ce parce que il vérifie à chaque fois ici. 1258 00:56:53,000 --> 00:56:58,060 Donc, ce sera parcouru et si il est supérieur ou égal à 90, 1259 00:56:58,060 --> 00:56:59,160 il va imprimer que. 1260 00:56:59,160 --> 00:57:00,530 1261 00:57:00,530 --> 00:57:03,600 Et il sera exécuté par et vérifier chacun d'entre eux. 1262 00:57:03,600 --> 00:57:06,444 >> Auditoire: Alors, ce serait plus buggé que [inaudible]. 1263 00:57:06,444 --> 00:57:07,735 Serait-ce comme [inaudible]? 1264 00:57:07,735 --> 00:57:10,990 1265 00:57:10,990 --> 00:57:15,740 >> ALLISON: La question est-ce que cela soit buggy ou est-ce faire ce que vous voulez. 1266 00:57:15,740 --> 00:57:19,830 Cela dépend vraiment de ce que vous voulez de votre programme. 1267 00:57:19,830 --> 00:57:22,291 >> PUBLIC: je veux dire comme si vous mettez 90 dans. 1268 00:57:22,291 --> 00:57:23,290 ALLISON: Si vous mettez 90-- 1269 00:57:23,290 --> 00:57:24,206 PUBLIC: [inaudible]. 1270 00:57:24,206 --> 00:57:25,584 1271 00:57:25,584 --> 00:57:27,250 GABRIEL: Vous allez obtenir deux choses. 1272 00:57:27,250 --> 00:57:28,916 ALLISON: Vous allez obtenir deux choses. 1273 00:57:28,916 --> 00:57:29,420 Oui, deux. 1274 00:57:29,420 --> 00:57:32,420 1275 00:57:32,420 --> 00:57:33,920 >> ROB BOWDEN: Deux? 1276 00:57:33,920 --> 00:57:34,580 >> ALLISON: Non 1277 00:57:34,580 --> 00:57:35,288 >> ROB BOWDEN: Quatre. 1278 00:57:35,288 --> 00:57:37,070 1279 00:57:37,070 --> 00:57:40,070 Si vous mettez 90, il va vous dire obtenu un A, vous avez obtenu un B, vous avez obtenu un C, 1280 00:57:40,070 --> 00:57:40,545 vous avez un D. 1281 00:57:40,545 --> 00:57:41,461 >> PUBLIC: [inaudible]. 1282 00:57:41,461 --> 00:57:42,196 1283 00:57:42,196 --> 00:57:42,820 ALLISON: Droit. 1284 00:57:42,820 --> 00:57:44,778 Donc, je dépend de ce que vous veux de toi programme. 1285 00:57:44,778 --> 00:57:47,050 Parfois, vous devez vérifier plusieurs choses. 1286 00:57:47,050 --> 00:57:49,970 1287 00:57:49,970 --> 00:57:55,270 Vous aurez beaucoup plus profondément dans ce bonne conception est que vous allez de l'avant. 1288 00:57:55,270 --> 00:57:57,090 La chose importante à réaliser est que cette 1289 00:57:57,090 --> 00:58:01,090 va vérifier tous les quatre conditions ici. 1290 00:58:01,090 --> 00:58:05,860 Alors que si cela était une autre si si autre si d'autre, il aurait frappé ce premier cas, 1291 00:58:05,860 --> 00:58:07,950 il imprimer vous avez un A et faire. 1292 00:58:07,950 --> 00:58:10,250 >> ROB BOWDEN: Même si nous décidé de changer cela si 1293 00:58:10,250 --> 00:58:13,880 et supérieure ou égale à 90, si et supérieur ou égal à 80, 1294 00:58:13,880 --> 00:58:19,710 et inférieur ou égal à 89, si n supérieur ou égal à 70, 1295 00:58:19,710 --> 00:58:23,830 et n inférieur ou égal à 79, donc ce sera correct. 1296 00:58:23,830 --> 00:58:27,190 Ce sera faire ce que nous voulons, mais il vérifie toujours tout seul il. 1297 00:58:27,190 --> 00:58:34,050 >> Ainsi, alors que dans le premier scénario, si nous entrer 90 avec juste si quelque chose si si, 1298 00:58:34,050 --> 00:58:37,300 et nous entrons dans 90, puis il va corriger. 1299 00:58:37,300 --> 00:58:39,615 Il vérifiera la première un, vous avez une impression A, 1300 00:58:39,615 --> 00:58:42,590 sauter tout, car il déjà trouvé un qui fonctionne. 1301 00:58:42,590 --> 00:58:46,360 Tous les cas sont mutuellement exclusives basé sur si quelque chose si si. 1302 00:58:46,360 --> 00:58:48,630 Donc, il va exécuter le d'abord si, il est fait. 1303 00:58:48,630 --> 00:58:49,790 Il ira jusqu'au bout. 1304 00:58:49,790 --> 00:58:52,400 >> Alors que si nous changeons que ce soit ce que je 1305 00:58:52,400 --> 00:58:54,204 dire avec moins de ou égal à 89. 1306 00:58:54,204 --> 00:58:55,620 Il va vérifier la première. 1307 00:58:55,620 --> 00:58:56,560 Il va imprimer. 1308 00:58:56,560 --> 00:58:58,010 Il va vérifier la seconde. 1309 00:58:58,010 --> 00:58:59,010 Il ne va pas à imprimer. 1310 00:58:59,010 --> 00:58:59,910 Vérifiez la troisième. 1311 00:58:59,910 --> 00:59:00,620 Ne va pas à imprimer. 1312 00:59:00,620 --> 00:59:01,495 Vérifiez la quatrième. 1313 00:59:01,495 --> 00:59:02,420 Maintenant l'impression. 1314 00:59:02,420 --> 00:59:05,380 Donc, dans ce cas, l'autre si version, étant donné que ces cas 1315 00:59:05,380 --> 00:59:09,120 sont mutuellement exclusifs, il est une meilleure utilisation si quelque chose si si, 1316 00:59:09,120 --> 00:59:12,970 parce que va avoir moins de contrôles des conditions 1317 00:59:12,970 --> 00:59:14,750 de cette version. 1318 00:59:14,750 --> 00:59:17,692 1319 00:59:17,692 --> 00:59:18,400 ALLISON: Awesome. 1320 00:59:18,400 --> 00:59:20,580 Donc, une autre chose que nous pouvons faire est de déclarations switch. 1321 00:59:20,580 --> 00:59:23,104 1322 00:59:23,104 --> 00:59:25,270 Fondamentalement, une instruction switch prend dans une variable, 1323 00:59:25,270 --> 00:59:28,780 dans ce cas, il est n, et détermine les cas à exécuter. 1324 00:59:28,780 --> 00:59:33,106 Donc, cela est aussi celui où vos affaires devrait être une sorte de mutuellement exclusif. 1325 00:59:33,106 --> 00:59:35,210 1326 00:59:35,210 --> 00:59:37,940 Donc dans ce cas, si nous nous en obtenir un, il est 1327 00:59:37,940 --> 00:59:42,270 va correspondre à quoi que variable-- quelle que soit la valeur de n 1328 00:59:42,270 --> 00:59:48,700 est l'un de ces cas, si une, deux, ou 3, et imprimer la ligne correspondante. 1329 00:59:48,700 --> 00:59:51,870 >> Et puis si vous remarquez ici, nous avons aussi une valeur par défaut, 1330 00:59:51,870 --> 00:59:54,670 que vous pouvez de penser que votre autre. 1331 00:59:54,670 --> 00:59:58,510 Donc, si vous prenez un autre numéro en plus de 1, 2, 3 et dans ce cas 1332 00:59:58,510 --> 00:59:59,885 il va juste imprimer invalide. 1333 00:59:59,885 --> 01:00:03,690 1334 01:00:03,690 --> 01:00:08,390 Décider quand utiliser IFS contre si ELSES contre interrupteurs va 1335 01:00:08,390 --> 01:00:12,590 être quelque chose que vous les gars le design est sage que vous commencez à écrire 1336 01:00:12,590 --> 01:00:15,270 des programmes plus compliqués, et il n'y a pas de règles absolues 1337 01:00:15,270 --> 01:00:16,330 de quand les utiliser. 1338 01:00:16,330 --> 01:00:17,890 Cela dépend vraiment de votre contexte. 1339 01:00:17,890 --> 01:00:18,590 >> ROB BOWDEN: Et juste à jeter là-bas 1340 01:00:18,590 --> 01:00:20,131 car il est plus à l'aise section. 1341 01:00:20,131 --> 01:00:20,920 1342 01:00:20,920 --> 01:00:25,053 Commutateurs, ils ont tendance à être-- si vous êtes limité 1343 01:00:25,053 --> 01:00:27,430 dans le nombre de façons dont vous peut les utiliser, car ifs, 1344 01:00:27,430 --> 01:00:30,100 la condition peut être assez tout ce que vous voulez. 1345 01:00:30,100 --> 01:00:33,410 Avec les commutateurs cas avoir à être des nombres, 1346 01:00:33,410 --> 01:00:37,770 ou techniquement, ils peuvent être les caractères, mais caractères, comme nous le verrons, sont des nombres seulement. 1347 01:00:37,770 --> 01:00:44,250 Donc, ils doivent être des nombres, mais des commutateurs sont vraiment plus efficace que si 1348 01:00:44,250 --> 01:00:50,060 d'autre si autre si, en raison même prenant l'exemple before-- bien, 1349 01:00:50,060 --> 01:00:51,486 l'exemple de qualité semble bonne. 1350 01:00:51,486 --> 01:00:52,550 1351 01:00:52,550 --> 01:00:57,080 >> Eh bien disons ici, nous faisons place cela comme une autre si si si autre scénario. 1352 01:00:57,080 --> 01:01:00,930 Donc, si n est égal à égal à 1, vous avez choisi d'imprimer un nombre faible. 1353 01:01:00,930 --> 01:01:04,490 Si d'autre si n est égal à égal à 2, vous avez choisi un nombre moyen. 1354 01:01:04,490 --> 01:01:06,550 Sinon, si égaux est égal à 3, haut. 1355 01:01:06,550 --> 01:01:08,060 Autres invalide. 1356 01:01:08,060 --> 01:01:09,820 >> Donc, disons que ce fut notre scénario. 1357 01:01:09,820 --> 01:01:14,060 Alors disons que nous entrons 4, nous nous attendons donc invalide. 1358 01:01:14,060 --> 01:01:17,410 La façon que si d'autre si autre si approche va travailler est 1359 01:01:17,410 --> 01:01:18,740 vérifie la première condition. 1360 01:01:18,740 --> 01:01:19,776 Il est pas satisfait. 1361 01:01:19,776 --> 01:01:21,150 Donc, nous vérifions la deuxième condition. 1362 01:01:21,150 --> 01:01:21,940 Il est pas satisfait. 1363 01:01:21,940 --> 01:01:23,023 Vérifiez la troisième condition. 1364 01:01:23,023 --> 01:01:23,640 Non content. 1365 01:01:23,640 --> 01:01:26,650 Donc, nous allons à l'autre et imprimons invalide. 1366 01:01:26,650 --> 01:01:30,169 >> La façon dont les œuvres de commutation est-il compile vers le bas 1367 01:01:30,169 --> 01:01:31,960 dans ce que nous allons d'appeler une table de saut. 1368 01:01:31,960 --> 01:01:33,180 1369 01:01:33,180 --> 01:01:37,120 L'idée principale étant que lorsque vous entrez 4, 1370 01:01:37,120 --> 01:01:39,090 il peut se rendre immédiatement à la valeur par défaut. 1371 01:01:39,090 --> 01:01:41,460 Il n'a pas besoin de vérifier am Je cas 1? 1372 01:01:41,460 --> 01:01:42,350 Non ça y est pas. 1373 01:01:42,350 --> 01:01:42,850 Cas n ° 2? 1374 01:01:42,850 --> 01:01:43,240 Non. 1375 01:01:43,240 --> 01:01:43,770 Cas n ° 3? 1376 01:01:43,770 --> 01:01:44,270 Non. 1377 01:01:44,270 --> 01:01:45,090 Par défaut. 1378 01:01:45,090 --> 01:01:47,610 OK, ce doit être là où je voulez, puis exécuter ce. 1379 01:01:47,610 --> 01:01:49,590 Non, il saute immédiatement à la valeur par défaut. 1380 01:01:49,590 --> 01:01:51,900 Ou je rentre 2, il est va immédiatement aller à la 2 1381 01:01:51,900 --> 01:01:54,060 sans avoir besoin de passer par cas 1. 1382 01:01:54,060 --> 01:01:57,820 >> Donc, dans ce sens, réaliste de nos jours qui est 1383 01:01:57,820 --> 01:02:00,250 pas tant que ça d'un gain d'efficacité. 1384 01:02:00,250 --> 01:02:02,880 Habituellement ordinateurs sont assez rapide, et qui est pas terrible. 1385 01:02:02,880 --> 01:02:07,270 Mais il est vrai que les commutateurs sont plus rapides. 1386 01:02:07,270 --> 01:02:10,380 Si vous êtes vraiment essayer à optimiser, utiliser un interrupteur. 1387 01:02:10,380 --> 01:02:11,980 1388 01:02:11,980 --> 01:02:12,710 >> ALLISON: Cool. 1389 01:02:12,710 --> 01:02:15,270 Et puis nous avons opérateur ternaire. 1390 01:02:15,270 --> 01:02:19,470 Donc, je sais je l'ai mentionné plus tôt le mot de sucre syntaxique. 1391 01:02:19,470 --> 01:02:24,160 Il est donc juste des choses qui font votre code beaucoup plus concis. 1392 01:02:24,160 --> 01:02:25,590 Donc, ceci est l'un de ces cas. 1393 01:02:25,590 --> 01:02:31,430 >> Donc opérateur ternaire est question marque côlon comme nous le voyons dans la chaîne de ligne 1394 01:02:31,430 --> 01:02:35,810 s est égal à n supérieur à 100 point d'interrogation haute côlon bas. 1395 01:02:35,810 --> 01:02:41,800 Donc, fondamentalement, comment cela fonctionne est qu'il est le n supérieur à 100 est un état. 1396 01:02:41,800 --> 01:02:43,674 Donc, je pense que cela peut faire sens. 1397 01:02:43,674 --> 01:02:44,840 Il est comme poser une question. 1398 01:02:44,840 --> 01:02:47,320 Il est dit oh, est n supérieur à 100. 1399 01:02:47,320 --> 01:02:48,340 Qui sait? 1400 01:02:48,340 --> 01:02:50,750 Et si elle est évaluée à vrai, il va vous donner 1401 01:02:50,750 --> 01:02:54,270 la première chose qui est qui y est mentionnée, ce qui est élevé. 1402 01:02:54,270 --> 01:02:55,840 Sinon, il va vous donner faible. 1403 01:02:55,840 --> 01:03:01,210 Donc, ceci est juste un très simple et moyen efficace de faire comme si une autre. 1404 01:03:01,210 --> 01:03:02,780 Voilà tout ce est. 1405 01:03:02,780 --> 01:03:07,450 >> Et si nous devions écrire ce comme si quelque conditionnelle, 1406 01:03:07,450 --> 01:03:12,480 il serait, si n est supérieur à 100, rendement élevé. 1407 01:03:12,480 --> 01:03:14,220 Sinon, retourner bas. 1408 01:03:14,220 --> 01:03:17,570 Ceci est juste un plus de manière concise de l'écrire. 1409 01:03:17,570 --> 01:03:27,090 >> ROB BOWDEN: Donc, cet exemple particulier est chaque fois que vous faites quelque chose 1410 01:03:27,090 --> 01:03:30,190 comme cela, ce modèle est le où je l'utilise ternaire très fréquemment. 1411 01:03:30,190 --> 01:03:31,540 1412 01:03:31,540 --> 01:03:35,460 Donc, nous avons pas encore parlé de la portée, mais je déteste voir le point-virgule chaîne de. 1413 01:03:35,460 --> 01:03:39,150 Si n supérieur à 100, s est égal à élevé. 1414 01:03:39,150 --> 01:03:40,660 Sinon, s est égal faible. 1415 01:03:40,660 --> 01:03:45,070 Ainsi ce modèle, ces cinq lignes Code de littéralement 100% du temps, 1416 01:03:45,070 --> 01:03:49,800 peut être transféré dans ce était là-haut avec un ternaire. 1417 01:03:49,800 --> 01:03:52,340 Ainsi, le ternaire, une ligne de code. 1418 01:03:52,340 --> 01:03:54,640 L'autre si, cinq. 1419 01:03:54,640 --> 01:03:56,910 Voilà un exemple que je tiens à à chaque fois unique. 1420 01:03:56,910 --> 01:03:59,250 Ce serait l'endroit idéal pour un opérateur ternaire. 1421 01:03:59,250 --> 01:04:00,647 Il est si propre. 1422 01:04:00,647 --> 01:04:01,980 Mais les gens ont tendance à ne jamais l'utiliser. 1423 01:04:01,980 --> 01:04:06,140 1424 01:04:06,140 --> 01:04:08,030 >> ALLISON: Emportez cela Gabe. 1425 01:04:08,030 --> 01:04:11,110 >> GABRIEL: Alors maintenant, tous les gars appris dans la leçon de cette semaine 1426 01:04:11,110 --> 01:04:13,420 que tout en un ordinateur est binaire, non? 1427 01:04:13,420 --> 01:04:14,570 Tout comme les lampes ici. 1428 01:04:14,570 --> 01:04:16,492 Vous pouvez être soit allumé et éteint. 1429 01:04:16,492 --> 01:04:18,450 Et par tout, je veux dire littéralement tout. 1430 01:04:18,450 --> 01:04:24,272 Quelques chiffres et caractères, et les chaînes, et même le code que vous écrivez quand 1431 01:04:24,272 --> 01:04:26,480 il sera compilé à la machine code et des trucs comme ça, 1432 01:04:26,480 --> 01:04:29,230 si tout se résume à 0 et de 1 '. 1433 01:04:29,230 --> 01:04:34,540 >> Et alors quand nous avons affaire avec des nombres entiers, 1434 01:04:34,540 --> 01:04:38,000 est quelque chose qui est techniquement très simple, nous devrions être en mesure de faire des choses 1435 01:04:38,000 --> 01:04:40,630 comme les ajouter, ce qui est probablement l'une des choses les plus simples 1436 01:04:40,630 --> 01:04:42,300 vous pouvez faire pour deux entiers, non? 1437 01:04:42,300 --> 01:04:47,410 Donc, l'addition et la soustraction fonctionne tout comme cela fonctionne dans la notation décimale, 1438 01:04:47,410 --> 01:04:50,780 sauf qu'ici il est binaire, non? 1439 01:04:50,780 --> 01:04:52,090 Donc, il est dans la base deux. 1440 01:04:52,090 --> 01:04:54,070 Donc, ajouter 1 plus 1. 1441 01:04:54,070 --> 01:04:57,020 Cela donne 0, et 1 porte sur. 1442 01:04:57,020 --> 01:05:01,335 Et juste continuer à faire ce que, donc maintenant est la question la plus intéressante. 1443 01:05:01,335 --> 01:05:03,730 1444 01:05:03,730 --> 01:05:07,710 >> Nous savons comment représenter tous entiers positifs dans l'ordinateur, 1445 01:05:07,710 --> 01:05:09,870 mais nous allons faire ce un exercice. 1446 01:05:09,870 --> 01:05:15,240 Imaginez que vous êtes tous les gars en 1960 ou quelque chose en essayant de créer un ordinateur, 1447 01:05:15,240 --> 01:05:19,950 et vous devez venir de un moyen de stocker moins 1, 1448 01:05:19,950 --> 01:05:22,554 par exemple, tout ou moins entier d'ailleurs. 1449 01:05:22,554 --> 01:05:23,470 Comment feriez-vous cela? 1450 01:05:23,470 --> 01:05:27,820 1451 01:05:27,820 --> 01:05:29,220 Toutes les idées? 1452 01:05:29,220 --> 01:05:31,302 Il suffit de jeter quoi que ce soit à moi. 1453 01:05:31,302 --> 01:05:32,264 Oui? 1454 01:05:32,264 --> 01:05:39,480 >> PUBLIC: [Inaudible] désigner une spéciale si votre [inaudible]. 1455 01:05:39,480 --> 01:05:42,590 >> GABRIEL: Vous pouvez désigner un bit spécial, qui sera de 0 ou 1. 1456 01:05:42,590 --> 01:05:45,590 Disons un si il est positif et 0 si elle est négative. 1457 01:05:45,590 --> 01:05:48,171 Puis le reste de la mèche est juste à enregistrer le numéro. 1458 01:05:48,171 --> 01:05:48,670 Laisser refroidir. 1459 01:05:48,670 --> 01:05:49,990 Voilà donc une très bonne idée. 1460 01:05:49,990 --> 01:05:51,550 Nous avons, je ne sais pas, 200. 1461 01:05:51,550 --> 01:05:54,720 Et si le premier bit est allumé, alors il est plus 200. 1462 01:05:54,720 --> 01:05:57,270 Si il est désactivé, il est de moins de 200. 1463 01:05:57,270 --> 01:05:58,380 Laisser refroidir. 1464 01:05:58,380 --> 01:06:01,350 >> Il ya seulement un petit problème avec cela, 1465 01:06:01,350 --> 01:06:05,370 qui est si nous essayons de résumer les choses. 1466 01:06:05,370 --> 01:06:18,910 Donc, imaginons que nous avons ici 11111, et nous sommes en additionnant cette avec 00100 que ce soit. 1467 01:06:18,910 --> 01:06:21,630 Si ces deux sont positifs, ça va. 1468 01:06:21,630 --> 01:06:24,470 Mais alors, si l'un des eux est négative, comme 1469 01:06:24,470 --> 01:06:27,410 disons que ce bit ici est celui qui est responsable 1470 01:06:27,410 --> 01:06:31,390 en vue de: Je vais faire un separate-- si celui-ci signifie que ce nombre ici 1471 01:06:31,390 --> 01:06:31,970 est positif. 1472 01:06:31,970 --> 01:06:34,450 Celui-ci signifie que ce nombre ici est négatif, non? 1473 01:06:34,450 --> 01:06:37,010 >> Mais alors, quand vous êtes va les résumer, vous 1474 01:06:37,010 --> 01:06:40,180 besoin d'une déclaration si disant oh si cela est 0, 1475 01:06:40,180 --> 01:06:43,479 alors mon somme sera quelque chose de différent, non? 1476 01:06:43,479 --> 01:06:45,270 Donc, il ya un peu de manière plus intelligente à faire 1477 01:06:45,270 --> 01:06:48,520 ce que l'on appelle le complément à deux. 1478 01:06:48,520 --> 01:06:52,350 Donc, fondamentalement, ce que nous faire est nous définissons moins 1 1479 01:06:52,350 --> 01:06:57,250 être la chose que si nous ajoutons à 1 nous donne 0. 1480 01:06:57,250 --> 01:06:59,470 1481 01:06:59,470 --> 01:07:00,860 Permettez-moi de répéter que. 1482 01:07:00,860 --> 01:07:03,280 Donc, disons que ce ici est 1. 1483 01:07:03,280 --> 01:07:08,110 1484 01:07:08,110 --> 01:07:13,570 Quelle est la chose que naturellement dans des nombres entiers positifs 1485 01:07:13,570 --> 01:07:15,570 ajouté à cela nous donne 0? 1486 01:07:15,570 --> 01:07:19,150 1487 01:07:19,150 --> 01:07:21,030 Que si nous essayons de l'ajouter à ce nombre? 1488 01:07:21,030 --> 01:07:22,830 1489 01:07:22,830 --> 01:07:28,032 Nous allons have-- OK, nous allons donc ajouter. 1490 01:07:28,032 --> 01:07:32,820 1491 01:07:32,820 --> 01:07:38,065 Nous allons avoir 1 plus 1 est 0, et il porte sur. 1492 01:07:38,065 --> 01:07:40,160 1493 01:07:40,160 --> 01:07:45,490 Et puis nous allons obtenir 0 nouveau. 1494 01:07:45,490 --> 01:07:47,730 1495 01:07:47,730 --> 01:07:48,820 Je m'y perds. 1496 01:07:48,820 --> 01:07:51,670 Et vous allez obtenir 0 et 0 et 0, et 0 et 0 et 0. 1497 01:07:51,670 --> 01:07:52,450 Beaucoup de 0 de. 1498 01:07:52,450 --> 01:07:56,240 >> À la toute dernière, nous ne sommes pas va être en mesure de l'emporter sur, 1499 01:07:56,240 --> 01:07:59,614 parce que disons que nous ne traitons avec un octet, si seulement 8 bits. 1500 01:07:59,614 --> 01:08:02,780 Donc, ce que l'ordinateur fait par défaut est juste oublie que [inaudible], 1501 01:08:02,780 --> 01:08:03,279 D'accord? 1502 01:08:03,279 --> 01:08:04,530 1503 01:08:04,530 --> 01:08:06,880 Voilà donc ce que l'on appelle le complément à deux. 1504 01:08:06,880 --> 01:08:15,180 Nous définissons simplement moins 1 à la chose ici que si vous ajoutez que de 1 1505 01:08:15,180 --> 01:08:15,995 vous donnerait 0. 1506 01:08:15,995 --> 01:08:17,609 1507 01:08:17,609 --> 01:08:20,180 Et qui est assez cool parce que nous ne faisons pas vraiment 1508 01:08:20,180 --> 01:08:24,090 besoin à la fin de la mise en œuvre un type de somme différente 1509 01:08:24,090 --> 01:08:26,590 selon que ce soit un négatif ou un nombre positif. 1510 01:08:26,590 --> 01:08:27,465 Est-ce logique? 1511 01:08:27,465 --> 01:08:28,740 1512 01:08:28,740 --> 01:08:32,370 >> Donc, une chose que nous faisons ici pour convertir 1513 01:08:32,370 --> 01:08:38,550 entre un positif et un négatif entier est ensuite nous retourner tout, 1514 01:08:38,550 --> 01:08:40,930 puis on ajoute 1 à ce nombre. 1515 01:08:40,930 --> 01:08:43,140 Si vous essayez de le faire vous-même sur une feuille de papier, 1516 01:08:43,140 --> 01:08:44,681 vous allez voir ce qui fait sens. 1517 01:08:44,681 --> 01:08:51,000 Mais si je prends ce nombre ici, ce sont cinq. 1518 01:08:51,000 --> 01:08:54,859 Donc, si je feuillette tout ici, 1, 1, 1, 1, 1. 1519 01:08:54,859 --> 01:08:55,880 1520 01:08:55,880 --> 01:08:57,830 Flip, flip, flip. 1521 01:08:57,830 --> 01:09:00,130 Et puis je ajouter 1 à elle. 1522 01:09:00,130 --> 01:09:02,750 Je vais avoir exactement moins 5. 1523 01:09:02,750 --> 01:09:03,250 D'accord? 1524 01:09:03,250 --> 01:09:06,220 >> Cela rend sorte de sens parce que si vous essayez de résumer ce que le nombre 1525 01:09:06,220 --> 01:09:10,229 que nous avions avant, qui était-- nous allons inverser tout cela à nouveau. 1526 01:09:10,229 --> 01:09:12,999 Il était de 101 et beaucoup de 0 de. 1527 01:09:12,999 --> 01:09:13,795 1528 01:09:13,795 --> 01:09:15,670 Si vous essayez d'ajouter ces deux nombres, 1529 01:09:15,670 --> 01:09:16,961 vous allez avoir exactement 0. 1530 01:09:16,961 --> 01:09:18,920 1531 01:09:18,920 --> 01:09:19,460 Dáccord. 1532 01:09:19,460 --> 01:09:19,884 Des questions? 1533 01:09:19,884 --> 01:09:20,759 >> PUBLIC: [Inaudible] 1534 01:09:20,759 --> 01:09:25,790 1535 01:09:25,790 --> 01:09:27,280 >> GABRIEL: Que voulez-vous dire? 1536 01:09:27,280 --> 01:09:29,240 >> PUBLIC: Négatif à positif [inaudible]. 1537 01:09:29,240 --> 01:09:33,215 >> GABRIEL: Non, vous retournez et vous ajoutez 1 toujours. 1538 01:09:33,215 --> 01:09:34,081 1539 01:09:34,081 --> 01:09:34,580 Ouais. 1540 01:09:34,580 --> 01:09:36,910 1541 01:09:36,910 --> 01:09:39,680 OK, donc les caractères codés binaires aussi. 1542 01:09:39,680 --> 01:09:42,649 Nous avons table ASCII, comme vous a également vu dans la leçon, non? 1543 01:09:42,649 --> 01:09:45,040 Donc, il est fondamentalement une cartographie de choses. 1544 01:09:45,040 --> 01:09:50,960 Et là, je ne peux pas souligner assez que pour un ordinateur, et une 65 1545 01:09:50,960 --> 01:09:52,770 sont littéralement la même chose. 1546 01:09:52,770 --> 01:10:03,430 Donc, si je vous écris quelque chose comme char c est égal à un, je ne pouvais en même temps 1547 01:10:03,430 --> 01:10:06,890 il suffit d'écrire 65 ici, et il serait exactement la même, OK? 1548 01:10:06,890 --> 01:10:08,470 Il n'y a pas de différence que ce soit. 1549 01:10:08,470 --> 01:10:12,420 >> Nous avons tendance généralement à mettre caractères dans des variables de type. 1550 01:10:12,420 --> 01:10:16,770 Char, non pas parce qu'ils sont essentiellement fait pour cela, mais parce que 1551 01:10:16,770 --> 01:10:18,050 de convention humaine. 1552 01:10:18,050 --> 01:10:22,410 Mais vous ne pouvez traiter avec des nombres entiers à la place des variables de type char, 1553 01:10:22,410 --> 01:10:23,490 et vous serez amende. 1554 01:10:23,490 --> 01:10:28,410 La seule différence réelle entre un char c et un int i 1555 01:10:28,410 --> 01:10:31,960 est un entier qui dispose de quatre octets dans la plupart systèmes, tout en char a un octet. 1556 01:10:31,960 --> 01:10:33,070 1557 01:10:33,070 --> 01:10:35,460 Ils sont essentiellement la même chose en termes de données. 1558 01:10:35,460 --> 01:10:36,990 1559 01:10:36,990 --> 01:10:37,990 Alors, que va imprimer ici? 1560 01:10:37,990 --> 01:10:43,780 Ici, nous sommes l'impression d'un chiffre à l'aide printf avec un plus 1, et tout comme les entiers, 1561 01:10:43,780 --> 01:10:46,240 caractères peuvent se résumer, si caractères peuvent également être additionnées. 1562 01:10:46,240 --> 01:10:47,890 Donc, ceci est exactement 65 ans. 1563 01:10:47,890 --> 01:10:49,950 Donc, il va y avoir 66, et nous avons ici 1564 01:10:49,950 --> 01:10:56,860 65 ans et plus peu un moins grand A, qui sera, je ne sais pas vraiment. 1565 01:10:56,860 --> 01:11:00,900 Mais ce sera exactement l'écart entre les lettres majuscules 1566 01:11:00,900 --> 01:11:07,800 et et les petites lettres, de sorte nous allons faire un petit, non? 1567 01:11:07,800 --> 01:11:08,300 Ouais. 1568 01:11:08,300 --> 01:11:11,740 Donc, cela va imprimer un caractère qui est exactement celui-ci. 1569 01:11:11,740 --> 01:11:12,260 Bonne? 1570 01:11:12,260 --> 01:11:12,860 Des questions? 1571 01:11:12,860 --> 01:11:16,320 1572 01:11:16,320 --> 01:11:19,430 >> Ici, nous avons un tas de différent types pour les variables numériques. 1573 01:11:19,430 --> 01:11:20,620 Nous parlons déjà sur int. 1574 01:11:20,620 --> 01:11:21,740 1575 01:11:21,740 --> 01:11:27,760 Float est juste une façon to-- cela est vraiment drôle, parce que quand je ai appris 1576 01:11:27,760 --> 01:11:32,320 de programmer retour dans la journée avec Python, le premier programme je jamais 1577 01:11:32,320 --> 01:11:37,480 essayé d'écrire, je voyais qu'il y avait un Type appelé et un type appelé flotteur. 1578 01:11:37,480 --> 01:11:39,800 Et le flotteur était pour tous les nombres réels. 1579 01:11:39,800 --> 01:11:43,290 Alors je lui demande pourquoi devrais Je l'utilise toujours un int alors? 1580 01:11:43,290 --> 01:11:45,590 Parce que si je peux utiliser tous nombres réels, avec un flottant, 1581 01:11:45,590 --> 01:11:47,120 Je voudrais juste arrêter d'utiliser des entiers, non? 1582 01:11:47,120 --> 01:11:49,550 Étant donné que les valeurs réelles sont beaucoup comme plus générique. 1583 01:11:49,550 --> 01:11:51,820 1584 01:11:51,820 --> 01:11:54,060 >> Il se trouve que cela est pas le cas dans les ordinateurs 1585 01:11:54,060 --> 01:11:58,480 parce qu'ils sont essentiellement choses différentes. 1586 01:11:58,480 --> 01:12:01,470 Alors nombres entiers et décimaux, le opérations que vous faites pour eux 1587 01:12:01,470 --> 01:12:04,739 sont essentiellement différentes parce que de la façon dont ils sont stockés, OK? 1588 01:12:04,739 --> 01:12:07,280 Nous allons parler un peu peu plus à ce sujet dans une seconde. 1589 01:12:07,280 --> 01:12:09,110 >> Donc double est seulement un plus grand flotteur. 1590 01:12:09,110 --> 01:12:12,830 Habituellement, dans la plupart des systèmes, un flotteur est de quatre octets, comme un int. 1591 01:12:12,830 --> 01:12:15,440 Et un double est de huit octets. 1592 01:12:15,440 --> 01:12:21,450 A long long est en fait juste un symbole que vous ajoutez à un type comme int. 1593 01:12:21,450 --> 01:12:24,040 Vous dites long long int comme ça. 1594 01:12:24,040 --> 01:12:28,550 Long long int x pour le rendre plus. 1595 01:12:28,550 --> 01:12:32,310 Ainsi, dans la plupart des systèmes, qui donnera huit octets au lieu des quatre habituelles. 1596 01:12:32,310 --> 01:12:35,620 Et vous pouvez réellement tomber le , donc il peut juste dire long long, 1597 01:12:35,620 --> 01:12:37,240 et qui travaille trop, OK? 1598 01:12:37,240 --> 01:12:42,850 Vous pouvez aussi faire d'autres choses comme unsigned int, ou encore tout simplement non signé 1599 01:12:42,850 --> 01:12:43,680 fonctionne également. 1600 01:12:43,680 --> 01:12:49,370 Et cela ferait x une variable comme tout est positif, 1601 01:12:49,370 --> 01:12:53,231 de sorte que vous ne pouvez pas vraiment négatif numéros de la façon que nous avons vu ici. 1602 01:12:53,231 --> 01:12:56,484 1603 01:12:56,484 --> 01:12:58,650 Donc, suivant merveilleux le point et la précision flottante. 1604 01:12:58,650 --> 01:13:01,890 Voilà une des raisons pour lesquelles vous vouloir utiliser ints au lieu de flotteurs, 1605 01:13:01,890 --> 01:13:04,370 parce que ints sont 100% précis, non? 1606 01:13:04,370 --> 01:13:06,170 Il est exactement ce nombre. 1607 01:13:06,170 --> 01:13:11,910 Pour les points flottants, si vous dire réponse est égal à 1 sur 10-- 1608 01:13:11,910 --> 01:13:14,690 Je arriver à avoir cette exacte programme ici, float.c. 1609 01:13:14,690 --> 01:13:16,390 1610 01:13:16,390 --> 01:13:19,420 Qui imprime à 20 décimales. 1611 01:13:19,420 --> 01:13:23,270 1 divisé par 10, et que est habituellement de 0,1, non? 1612 01:13:23,270 --> 01:13:27,910 Mais ici, si nous faisons flotteur et nous courons il, 1613 01:13:27,910 --> 01:13:30,320 on voit qu'il est pas exactement 0,1. 1614 01:13:30,320 --> 01:13:33,570 Il est quelque chose 0,149. 1615 01:13:33,570 --> 01:13:35,570 >> Et pourquoi est-ce? 1616 01:13:35,570 --> 01:13:40,390 Parce que vous ne pouvez pas représenter vraiment tous seule possible nombre réel dans la mémoire 1617 01:13:40,390 --> 01:13:42,730 car il ya indénombrablement beaucoup d'entre eux. 1618 01:13:42,730 --> 01:13:48,360 Donc, nous sommes techniquement seulement en mesure de représenter une quantité finie d'entre eux 1619 01:13:48,360 --> 01:13:50,470 avec une quantité limitée de données. 1620 01:13:50,470 --> 01:13:52,050 Mais il est vraiment intéressant. 1621 01:13:52,050 --> 01:13:54,920 Maintenant, cela soulève la question de savoir comment vous le feriez 1622 01:13:54,920 --> 01:13:59,299 aller de représenter ce avec des morceaux, non? 1623 01:13:59,299 --> 01:14:00,340 Alors, comment sont stockés flottants? 1624 01:14:00,340 --> 01:14:01,970 1625 01:14:01,970 --> 01:14:03,730 Avec entiers, cela a été facile. 1626 01:14:03,730 --> 01:14:06,690 Mais avec des flotteurs vous voulez afin de maximiser la portée, 1627 01:14:06,690 --> 01:14:10,530 et vous voulez être en mesure de représenter énormes et les numéros de minuscules comme 1628 01:14:10,530 --> 01:14:14,210 0.000001 en même temps. 1629 01:14:14,210 --> 01:14:15,180 Encore une fois, même jeu. 1630 01:14:15,180 --> 01:14:20,470 Est-ce que quelqu'un a une idée comment nous pourrions aller de représenter flotteur dans la mémoire? 1631 01:14:20,470 --> 01:14:26,820 1632 01:14:26,820 --> 01:14:27,970 Il suffit de jeter quoi que ce soit. 1633 01:14:27,970 --> 01:14:29,930 1634 01:14:29,930 --> 01:14:30,856 Oui, se il vous plaît. 1635 01:14:30,856 --> 01:14:33,552 >> PUBLIC: [inaudible] comme si elle était deux entiers et une 1636 01:14:33,552 --> 01:14:36,890 étant la [inaudible] et un être tout après la virgule. 1637 01:14:36,890 --> 01:14:37,640 GABRIEL: OK, cool. 1638 01:14:37,640 --> 01:14:40,300 Donc deux entiers différents. 1639 01:14:40,300 --> 01:14:45,260 Vous pouvez avoir 12.45, ainsi que 12 et 45 est. 1640 01:14:45,260 --> 01:14:45,890 Nice. 1641 01:14:45,890 --> 01:14:46,973 Qu'est-ce que vous ERE va dire? 1642 01:14:46,973 --> 01:14:48,420 1643 01:14:48,420 --> 01:14:49,430 La même chose? 1644 01:14:49,430 --> 01:14:49,930 Ouais? 1645 01:14:49,930 --> 01:14:55,630 >> PUBLIC: [Inaudible] notation où vous vous séparez la base. 1646 01:14:55,630 --> 01:14:58,910 >> GABRIEL: notation scientifique, ouais qui est généralement ce qui se passe. 1647 01:14:58,910 --> 01:15:01,350 Voilà donc ce que l'on appelle la mantisse. 1648 01:15:01,350 --> 01:15:06,490 Voilà ce qui est en fait la nombre, et ensuite l'exposant 1649 01:15:06,490 --> 01:15:08,780 est juste où la virgule est, non? 1650 01:15:08,780 --> 01:15:13,720 Donc cela va être quelque chose de la forme 1, 2, 3, 4, 5 fois 10 1651 01:15:13,720 --> 01:15:15,000 au moins quatre. 1652 01:15:15,000 --> 01:15:17,800 Je viens de réaliser that-- oui, exactement. 1653 01:15:17,800 --> 01:15:23,372 Et puis ce 10 au moins 4 est va définir où la virgule est, OK? 1654 01:15:23,372 --> 01:15:24,330 Au Brésil, nous utilisons des virgules. 1655 01:15:24,330 --> 01:15:26,795 Ici vous les gars Utilisez un point. 1656 01:15:26,795 --> 01:15:27,640 Donc un point. 1657 01:15:27,640 --> 01:15:28,860 1658 01:15:28,860 --> 01:15:34,840 >> Et c'est cool, parce que vous pouvez concentrer beaucoup de vos morceaux sur ce type 1659 01:15:34,840 --> 01:15:40,863 ici, sur la mantisse, et alors que ce va être votre précision réelle. 1660 01:15:40,863 --> 01:15:41,920 1661 01:15:41,920 --> 01:15:47,175 Et vous pouvez le faire soit en décimal ou dans le système à base de binaire. 1662 01:15:47,175 --> 01:15:49,781 Il existe différents les moyens de mettre en œuvre. 1663 01:15:49,781 --> 01:15:50,280 Questions? 1664 01:15:50,280 --> 01:15:55,918 1665 01:15:55,918 --> 01:15:56,418 Oui? 1666 01:15:56,418 --> 01:15:57,508 1667 01:15:57,508 --> 01:15:59,841 Public: Combien de places après la virgule [inaudible]? 1668 01:15:59,841 --> 01:16:05,240 1669 01:16:05,240 --> 01:16:12,610 >> GABRIEL: Voilà une question complexe, parce qu'il est jamais vraiment à 100% précis, 1670 01:16:12,610 --> 01:16:15,680 parce que comme vous le voyez ici, pour certains chiffres, il est 100% précis. 1671 01:16:15,680 --> 01:16:20,350 Je crois que si nous mettons 0,5 ici, ça va être 100% précis. 1672 01:16:20,350 --> 01:16:22,220 Ça va être 0,500000. 1673 01:16:22,220 --> 01:16:24,170 Donc, dans ce cas, il est parfait. 1674 01:16:24,170 --> 01:16:27,330 Mais dans d'autres cas, il est beaucoup moins parfaite. 1675 01:16:27,330 --> 01:16:35,010 Dans mon expérience, comme jusqu'à quatre, cinq décimales est assez précis. 1676 01:16:35,010 --> 01:16:38,300 Si vous utilisez un double, il va être de façon plus précise que celle, OK? 1677 01:16:38,300 --> 01:16:42,750 >> ROB BOWDEN: Donc, juste pour jeter un contexte plus à flotteurs, 1678 01:16:42,750 --> 01:16:46,320 Je me souviens jamais 100% comment la spec de flotteurs fonctionne réellement, 1679 01:16:46,320 --> 01:16:52,660 Mais je ne vous souvenez toujours qui flotte commencent à se salir. 1680 01:16:52,660 --> 01:16:55,460 1681 01:16:55,460 --> 01:17:00,930 Donc, l'idée est que lorsque vous avez vraiment, vraiment grands nombres ou vraiment, vraiment 1682 01:17:00,930 --> 01:17:03,470 un petit nombre, nous commençons de pire en pire 1683 01:17:03,470 --> 01:17:05,860 à différencier entre deux flotteurs proches. 1684 01:17:05,860 --> 01:17:09,180 >> Alors, comment je veux penser est avec virgule flottante imprécision, 1685 01:17:09,180 --> 01:17:11,890 il n'y a que deux flotteurs si je tente de les spécifier 1686 01:17:11,890 --> 01:17:15,150 en C, malgré le fait que ils sont différents chiffres, 1687 01:17:15,150 --> 01:17:17,340 ils vont être interprétées comme le même nombre, 1688 01:17:17,340 --> 01:17:19,006 parce que nous ne pouvons pas les stocker différemment. 1689 01:17:19,006 --> 01:17:20,540 Nous devons utiliser les mêmes bits. 1690 01:17:20,540 --> 01:17:23,220 Et quand nous arrivons à vraiment, vraiment grand nombre, 1691 01:17:23,220 --> 01:17:28,460 parler comme 10 à la 300 ou quelque chose, il est à ce moment 1692 01:17:28,460 --> 01:17:33,240 que 10 à la 300 ou 5 fois 10 à la 300 1693 01:17:33,240 --> 01:17:37,020 ne peut pas être différenciée à partir de 7 heures 10 à la 300. 1694 01:17:37,020 --> 01:17:39,660 Voilà donc une jolie grande différence entre les deux chiffres. 1695 01:17:39,660 --> 01:17:43,830 >> Mais alors, quand vous descendez les choses à la gamme normale, 1696 01:17:43,830 --> 01:17:45,770 vous avez tendance à être assez bon à différencier. 1697 01:17:45,770 --> 01:17:49,020 Et puis quand vous descendez vraiment petit, vous êtes également obtenir de nouveau assez mauvais. 1698 01:17:49,020 --> 01:17:52,529 Donc, comme tout un tas de 0.0000, il devient assez mauvais. 1699 01:17:52,529 --> 01:17:53,820 GABRIEL: Ouais, donc un petit mot. 1700 01:17:53,820 --> 01:17:54,670 Ne jamais faire cela. 1701 01:17:54,670 --> 01:17:57,590 Ne jamais essayer de comparer flotteurs en utilisant égaux égaux, 1702 01:17:57,590 --> 01:18:02,800 parce que même si elles sont presque même, presque le même pas est le même. 1703 01:18:02,800 --> 01:18:06,360 Donc, ce que vous faites habituellement est vous soustrayez eux, prennent la valeur absolue de cela, 1704 01:18:06,360 --> 01:18:12,380 et voir si cela est plus petit que 0,0001 ou quelque chose comme ça, OK? 1705 01:18:12,380 --> 01:18:12,880 Et cool. 1706 01:18:12,880 --> 01:18:16,630 Je sais que beaucoup de gens ont une certaine expérience en Java, 1707 01:18:16,630 --> 01:18:19,700 en particulier ceux qui ont fait AP informatique, droit? 1708 01:18:19,700 --> 01:18:23,630 Et Java est un langage que la plupart du temps par rapport à C, 1709 01:18:23,630 --> 01:18:26,570 il a un couple de très grandes différences. 1710 01:18:26,570 --> 01:18:31,430 Mais pour les boucles, et les FI, et des trucs comme que, ils sont tous la même syntaxe. 1711 01:18:31,430 --> 01:18:35,240 Je dois quelques programmes ici pour le montrer. 1712 01:18:35,240 --> 01:18:37,050 >> Ainsi, par exemple, un monde simple bonjour. 1713 01:18:37,050 --> 01:18:43,140 1714 01:18:43,140 --> 01:18:46,600 Ceci est Bonjour tout le monde en C, qui vous les gars sont certainement familiers avec, 1715 01:18:46,600 --> 01:18:49,100 et ceci et celui-ci est en Java. 1716 01:18:49,100 --> 01:18:53,100 Donc, en Java, nous avons cette public class, bonjour monde, 1717 01:18:53,100 --> 01:18:57,050 et public static void args principal, et les cordes. 1718 01:18:57,050 --> 01:18:59,665 Les arguments de chaîne vont à apparaître dans C très prochainement. 1719 01:18:59,665 --> 01:19:00,740 1720 01:19:00,740 --> 01:19:01,990 Mais il ne faut pas y aller encore. 1721 01:19:01,990 --> 01:19:06,060 Actuellement, nous avons ici vide, ce qui signifie que le principal est pas pris arguments. 1722 01:19:06,060 --> 01:19:09,220 Et puis nous avons System.out.println, et que l'est 1723 01:19:09,220 --> 01:19:11,140 sorte de l'équivalent de printf. 1724 01:19:11,140 --> 01:19:17,150 Ici, nous ne devons vraiment la barre oblique inverse n parce impression En fait pour vous. 1725 01:19:17,150 --> 01:19:19,680 Il ajoute une barre oblique inverse n à la fin de la ligne. 1726 01:19:19,680 --> 01:19:22,540 1727 01:19:22,540 --> 01:19:30,415 >> Mais si vous allez dans quelque chose comme un pour vous 1728 01:19:30,415 --> 01:19:32,590 peut voir qu'ils sont à peu près la même chose. 1729 01:19:32,590 --> 01:19:37,390 Donc l'initialisation, et la état, et la mise à jour 1730 01:19:37,390 --> 01:19:42,050 est-- me manquait un espace ici-- ils sont à peu près la même chose, sauf Java 1731 01:19:42,050 --> 01:19:44,430 a que quelques-uns plus haut niveau choses. 1732 01:19:44,430 --> 01:19:46,010 1733 01:19:46,010 --> 01:19:49,610 Ici, nous pouvons faire plus, je et Java sera automatiquement 1734 01:19:49,610 --> 01:19:52,730 faire de cette i ici, qui est un entier, dans une chaîne, 1735 01:19:52,730 --> 01:19:55,200 et puis ajouter la deux cordes ensemble. 1736 01:19:55,200 --> 01:19:57,570 Ici, dans C, nous devons faire le &% d. 1737 01:19:57,570 --> 01:20:15,310 1738 01:20:15,310 --> 01:20:18,170 La ligne ici, le pour ressemble exactement la même. 1739 01:20:18,170 --> 01:20:37,760 >> Et si nous regardons si, les ifs regarder aussi exactement le même, non? 1740 01:20:37,760 --> 01:20:39,290 1741 01:20:39,290 --> 01:20:44,650 Ainsi, les grandes différences réelles sont dans les choses que vous voyez ici. 1742 01:20:44,650 --> 01:20:47,530 Public static, vide, et public class puis si. 1743 01:20:47,530 --> 01:20:48,990 1744 01:20:48,990 --> 01:20:52,360 Donc, Java a ce qui est appelle une machine virtuelle. 1745 01:20:52,360 --> 01:20:53,560 1746 01:20:53,560 --> 01:21:00,150 Et il est très largement basée sur ce est appelé la programmation orientée objet, 1747 01:21:00,150 --> 01:21:04,120 qui est un très, très commun paradigme de programmation de nos jours. 1748 01:21:04,120 --> 01:21:10,870 Et cette chose de classe est ce que vous voyez, quelque chose de l'orientation de l'objet, 1749 01:21:10,870 --> 01:21:14,214 est de créer une classe, puis vous peut tirer des objets de cette classe. 1750 01:21:14,214 --> 01:21:16,380 On ne va pas parler trop beaucoup à ce sujet dans CS50, 1751 01:21:16,380 --> 01:21:18,213 mais qui est certainement quelque chose de vraiment cool, 1752 01:21:18,213 --> 01:21:21,440 surtout si vous voulez aller en développement web plus sophistiqué 1753 01:21:21,440 --> 01:21:24,050 à la fin du parcours, comme soumettre votre projet final 1754 01:21:24,050 --> 01:21:26,430 et certains cadres agréables et tout ça. 1755 01:21:26,430 --> 01:21:31,250 >> Donc, fondamentalement, l'idée est que vous ne veulent pas ré-implémenter quelque chose, 1756 01:21:31,250 --> 01:21:36,330 si vous créez quelque chose qui est très générique, comme la forme, 1757 01:21:36,330 --> 01:21:38,310 et puis vous créez formes différentes d'elle, 1758 01:21:38,310 --> 01:21:40,240 et ensuite à partir de chacun des ces formes, vous créez 1759 01:21:40,240 --> 01:21:45,110 des formes plus spécifiques de trois dimensions ou quelque chose comme ça. 1760 01:21:45,110 --> 01:21:48,799 Et ils ont ce qu'ils hiérarchie hériter des autres, de sorte 1761 01:21:48,799 --> 01:21:51,840 toutes les fonctions et tous les variables la grande forme a ici, tous ces 1762 01:21:51,840 --> 01:21:54,110 allez avoir, et tous ces éléments sont va avoir, et ainsi de suite et ainsi de suite. 1763 01:21:54,110 --> 01:21:55,640 Voilà donc l'idée de base. 1764 01:21:55,640 --> 01:21:59,170 >> C n'a pas, mais C ++ ne avoir ce genre de fonction. 1765 01:21:59,170 --> 01:22:02,710 Et Java est fortement influencé par l'orientation de l'objet, 1766 01:22:02,710 --> 01:22:05,310 voilà pourquoi vous voyez classe ici tout le temps. 1767 01:22:05,310 --> 01:22:10,790 Et l'autre chose est cette machine virtuelle Java. 1768 01:22:10,790 --> 01:22:13,790 Donc, je pense, est une idée très intelligente. 1769 01:22:13,790 --> 01:22:17,020 Alors, que les gens qui java inventé fait est 1770 01:22:17,020 --> 01:22:19,630 ils ne veulent pas compiler leur code deux fois 1771 01:22:19,630 --> 01:22:23,990 si elles devaient l'exécuter dans un environnement Windows, ou un Mac, ou Linux, si ce qu'ils font 1772 01:22:23,990 --> 01:22:26,740 est qu'ils courent littéralement quelque chose comme l'appareil, 1773 01:22:26,740 --> 01:22:29,630 mais vous ne voyez pas vraiment ce qui se passe. 1774 01:22:29,630 --> 01:22:32,430 Donc, ils courent une machine virtuelle à l'intérieur de votre ordinateur, qui 1775 01:22:32,430 --> 01:22:34,940 est fondamentalement comme un un mini système d'exploitation. 1776 01:22:34,940 --> 01:22:37,920 Et ce fonctionnement Le but de système dans la vie 1777 01:22:37,920 --> 01:22:41,430 est juste pour lancer ce qui est appelé byte-code. 1778 01:22:41,430 --> 01:22:47,411 >> Donc, au lieu de C, la façon dont nous compiler ce faire est si, et puis exécutez 1779 01:22:47,411 --> 01:22:47,910 ./if. 1780 01:22:47,910 --> 01:22:53,510 1781 01:22:53,510 --> 01:22:55,290 Je oublié la barre oblique inverse dans. 1782 01:22:55,290 --> 01:23:00,240 En Java, vous feriez premier Java C à compiler, if.c. 1783 01:23:00,240 --> 01:23:06,440 1784 01:23:06,440 --> 01:23:08,252 Il est pas le point java C. Il. 1785 01:23:08,252 --> 01:23:09,460 1786 01:23:09,460 --> 01:23:12,140 Et puis vous avez à courir pas ./. 1787 01:23:12,140 --> 01:23:15,440 Vous obtenez ce nouveau fichier if.class, mais vous ne pouvez pas vraiment 1788 01:23:15,440 --> 01:23:17,980 exécuter if.class maintenant juste comme nous l'avons fait avant. 1789 01:23:17,980 --> 01:23:19,440 Ceci ne constitue pas un exécutable. 1790 01:23:19,440 --> 01:23:20,630 Vous avez à courir. 1791 01:23:20,630 --> 01:23:23,410 Vous devez le nourrir en un programme appelé Java, 1792 01:23:23,410 --> 01:23:28,260 et que ce programme est la machine virtuelle, et puis vous faites if.class, ou si. 1793 01:23:28,260 --> 01:23:28,760 Oui. 1794 01:23:28,760 --> 01:23:30,890 Et puis cela fonctionne. 1795 01:23:30,890 --> 01:23:33,740 Ok, donc ce genre est de la machine virtuelle passe. 1796 01:23:33,740 --> 01:23:37,700 C n'a pas que, si je devais mettre ce programme dans une machine Windows, 1797 01:23:37,700 --> 01:23:40,516 il ne serait pas travailler en C. En Java, il le fait. 1798 01:23:40,516 --> 01:23:41,015 Questions? 1799 01:23:41,015 --> 01:23:43,430 1800 01:23:43,430 --> 01:23:44,030 Laisser refroidir. 1801 01:23:44,030 --> 01:23:47,160 Voilà si l'article Super pour aujourd'hui. 1802 01:23:47,160 --> 01:23:49,462