1 00:00:00,000 --> 00:00:01,500 >> [MUSIQUE LECTURE] 2 00:00:01,500 --> 00:00:11,000 3 00:00:11,000 --> 00:00:16,110 >> DAVID Malan: Très bien c'est CS50 et c'est la fin de la première semaine. 4 00:00:16,110 --> 00:00:20,760 Donc, je voudrais vous présenter mon ancien advisee, Andel Duff, qui permet non seulement 5 00:00:20,760 --> 00:00:25,460 iPhone 5 est, ainsi que ce lutrin, il fait aussi des voitures. 6 00:00:25,460 --> 00:00:27,927 7 00:00:27,927 --> 00:00:29,510 ANSEL DUFF: Comment ça va, tout le monde? 8 00:00:29,510 --> 00:00:31,980 Je veux juste vous dire un peu peu de Formule SAE, dont je 9 00:00:31,980 --> 00:00:32,604 Je suis le capitaine. 10 00:00:32,604 --> 00:00:33,437 C'est une équipe du MIT. 11 00:00:33,437 --> 00:00:35,520 Je veux juste vous dire les gars un peu à ce sujet 12 00:00:35,520 --> 00:00:37,520 et générer espérons un certain intérêt. 13 00:00:37,520 --> 00:00:41,590 >> Alors permettez-moi de passer en revue un quelques choses à propos de notre équipe. 14 00:00:41,590 --> 00:00:43,640 Nous sommes donc tout à fait dirigé par des étudiants, dans lequel tous 15 00:00:43,640 --> 00:00:47,300 de la conception des membres, simuler, test, et le fabricant un sous-système 16 00:00:47,300 --> 00:00:48,090 de la voiture. 17 00:00:48,090 --> 00:00:51,240 Nous avons notre propre atelier d'usinage et garages, et N52-- ou désolé, 18 00:00:51,240 --> 00:00:54,140 N51-- qui est le même immeuble le Musée des Sciences du MIT. 19 00:00:54,140 --> 00:00:55,990 Et nous sommes le peuple qui conduisent la voiture. 20 00:00:55,990 --> 00:00:58,340 Il ya un concours national au début de l'été, 21 00:00:58,340 --> 00:01:01,215 et puis il ya des petits fusillade compétitions tout au long de l'année. 22 00:01:01,215 --> 00:01:04,400 Et puis nous faisons la formation des conducteurs jours pour se familiariser de nouveaux membres. 23 00:01:04,400 --> 00:01:08,280 >> Nos jours de construction sont sur Samedi onze heures-20 heures. 24 00:01:08,280 --> 00:01:11,060 Le déjeuner et le dîner prennent soin de, de Bertucci et de Beantown 25 00:01:11,060 --> 00:01:12,130 respectivement. 26 00:01:12,130 --> 00:01:15,260 Nous avons une réunion hebdomadaire et séminaire, qui est pour les crédits de cours. 27 00:01:15,260 --> 00:01:18,560 Ce qui est nouveau à partir de ce semestre, et il sera également pour le prochain semestre, 28 00:01:18,560 --> 00:01:19,940 de sorte que vous pouvez traverser-reg pour cela. 29 00:01:19,940 --> 00:01:22,960 Et puis nous avons la conception, la boutique, et les jours de CAO au cours de la semaine, 30 00:01:22,960 --> 00:01:26,870 alors que les membres de façon indépendante éléments de CAO, stock de commande et ainsi de suite. 31 00:01:26,870 --> 00:01:29,200 >> Donc, pour électrique ingénierie à l'équipe 32 00:01:29,200 --> 00:01:31,110 nous avons notre traction, Système à haute tension, 33 00:01:31,110 --> 00:01:33,390 qui fonctionne à une tension nominale 300 volts, ce qui comprend 34 00:01:33,390 --> 00:01:35,360 les moteurs, les commandes de moteur, et des batteries. 35 00:01:35,360 --> 00:01:37,235 Ensuite, nous avons un faible système de tension, qui se déroule 36 00:01:37,235 --> 00:01:40,180 à 12 volts, ce qui comprend contrôles, CAN nœuds, le cerveau 37 00:01:40,180 --> 00:01:41,570 boîte, et le tableau de bord. 38 00:01:41,570 --> 00:01:43,890 En ce qui concerne CS va, nous faisons avoir maintenance du site 39 00:01:43,890 --> 00:01:47,940 que nous n'avons fait pour des événements, l'adhésion changements, de nouvelles photos et de matériel de relations publiques. 40 00:01:47,940 --> 00:01:51,540 Et puis nous avons un code qui contrôle la voiture pour notre contrôle de traction, lancement 41 00:01:51,540 --> 00:01:55,750 contrôle, le contrôle du tableau de bord, vectorisation de couple, et les systèmes de freinage par récupération, qui 42 00:01:55,750 --> 00:01:59,170 de fonctionner normalement dans MATLAB, Simulink, et LabView. 43 00:01:59,170 --> 00:02:00,910 >> Vous dire un peu plus sur la voiture. 44 00:02:00,910 --> 00:02:02,470 C'est donc environ 500 livres. 45 00:02:02,470 --> 00:02:04,285 C'est règles limitées à 85 kilowatts. 46 00:02:04,285 --> 00:02:08,310 Il dispose de 2 EMRAX 207 moteurs de la arrière, un pour chaque roue arrière. 47 00:02:08,310 --> 00:02:11,880 Il a des batteries sur mesure à partir de cellules de poche A123 prismatiques, 48 00:02:11,880 --> 00:02:14,780 un montant total de 300 volts et 5,6 heures kilowatts. 49 00:02:14,780 --> 00:02:17,950 Et c'est à entraînement direct avec un rapport de 2,64 à 1 d'entraînement. 50 00:02:17,950 --> 00:02:20,970 Voici quelques photos nous a pris de lui à la concurrence. 51 00:02:20,970 --> 00:02:25,820 Voici le cône arrière, nez, et voici les moteurs, 52 00:02:25,820 --> 00:02:29,682 ces grands disques noirs sous la mens et manus. 53 00:02:29,682 --> 00:02:32,140 Voici une diapositive que je tirai de notre régime de concurrence. 54 00:02:32,140 --> 00:02:35,389 Et cela est juste compare notre voiture à un couple de voitures disponibles dans le commerce, 55 00:02:35,389 --> 00:02:38,380 comme la KTM XBOW, Ariel Atom, et Caterha M 7-280. 56 00:02:38,380 --> 00:02:42,110 Si vous êtes familier avec le prix, la puissance tirez poids, dollars par cheval-vapeur, 57 00:02:42,110 --> 00:02:44,930 dollars par couple, et notre voiture tous les coups hors de l'eau. 58 00:02:44,930 --> 00:02:47,520 Si vous avez des questions, notez cette adresse email. 59 00:02:47,520 --> 00:02:50,800 Nous tirer un email à fsae@mit.edu. 60 00:02:50,800 --> 00:02:53,350 >> Nous sommes heureux de parler de ce que vous voulez. 61 00:02:53,350 --> 00:02:55,600 Étudiants de Harvard sont gentils de la minorité dans l'équipe. 62 00:02:55,600 --> 00:02:58,350 Si vous avez des questions au sujet que s'il vous plaît ne nous tirer un email, 63 00:02:58,350 --> 00:03:00,810 heureux de parler, et je vais de retourner à David. 64 00:03:00,810 --> 00:03:01,550 Merci. 65 00:03:01,550 --> 00:03:02,466 Je l'apprécie, les gars. 66 00:03:02,466 --> 00:03:03,615 [Applaudissements] 67 00:03:03,615 --> 00:03:07,080 68 00:03:07,080 --> 00:03:10,980 >> DAVID Malan: Ansel a passé l'été travailler avec nous ici sur le campus CS50 69 00:03:10,980 --> 00:03:11,480 cet été. 70 00:03:11,480 --> 00:03:13,505 Et en plus de travailler sur des choses comme les ampoules binaires, 71 00:03:13,505 --> 00:03:16,090 il fait vraiment ouvert notre eyes-- et le mien dans particular-- 72 00:03:16,090 --> 00:03:20,535 à ce qui est vraiment l'intersection de pas de matériel et de logiciels peut être. 73 00:03:20,535 --> 00:03:23,410 En fait, beaucoup des choses qu'il a juste vous êtes en tournée à travers finalement 74 00:03:23,410 --> 00:03:26,030 créé le premier logiciel, et puis finalement fabriqué 75 00:03:26,030 --> 00:03:27,299 dans le monde réel dans le matériel. 76 00:03:27,299 --> 00:03:29,590 Donc, si vous êtes intéressé par explorer cette intersection, 77 00:03:29,590 --> 00:03:31,430 peut-être prendre ce groupe. 78 00:03:31,430 --> 00:03:34,140 >> Maintenant, quant à lui, ceux d'entre vous qui sont fans de technologie, 79 00:03:34,140 --> 00:03:36,140 et les produits Apple dans notamment savoir qu'il ya 80 00:03:36,140 --> 00:03:37,860 étaient un couple de annonces hier. 81 00:03:37,860 --> 00:03:39,776 Mais nous avons pensé montrons vous un qui est sorti 82 00:03:39,776 --> 00:03:43,590 quelques jours avant que vous n'auriez pas vu. 83 00:03:43,590 --> 00:03:46,150 >> JORGEN EGHAMMER: Vous savez, une fois dans un certain temps quelque chose 84 00:03:46,150 --> 00:03:49,540 vient le long de cette change la façon dont nous vivons. 85 00:03:49,540 --> 00:03:53,479 Un dispositif de manière simple et intuitive l'aide il se sent presque familier. 86 00:03:53,479 --> 00:03:59,710 87 00:03:59,710 --> 00:04:04,138 Présentation 2015 catalogue IKEA. 88 00:04:04,138 --> 00:04:10,420 Ce n'est pas un livre numérique ou un e-book, c'est un livre-livre. 89 00:04:10,420 --> 00:04:14,440 >> La première chose à noter est pas câbles, pas même un câble d'alimentation. 90 00:04:14,440 --> 00:04:18,519 Le catalogue IKEA 2015 vient complètement chargée, 91 00:04:18,519 --> 00:04:20,550 et la durée de vie de la batterie est éternelle. 92 00:04:20,550 --> 00:04:27,300 L'interface est de 7,5 par 8 pouces, mais peut s'étendre à 15 par 8 pouces. 93 00:04:27,300 --> 00:04:32,410 La navigation est basée sur le toucher tactile la technologie que vous pouvez réellement sentir. 94 00:04:32,410 --> 00:04:37,120 >> Contenu est livré pré-installé par 328 pages en haute définition 95 00:04:37,120 --> 00:04:40,180 d'inspirer des idées d'ameublement. 96 00:04:40,180 --> 00:04:43,740 Pour commencer à naviguer, il suffit de toucher et faire glisser. 97 00:04:43,740 --> 00:04:50,870 Droite à gauche pour aller de l'avant, de gauche à droite pour revenir en arrière. 98 00:04:50,870 --> 00:04:52,770 >> Notez autre chose? 99 00:04:52,770 --> 00:04:53,780 C'est ça. 100 00:04:53,780 --> 00:04:55,190 Pas de décalage. 101 00:04:55,190 --> 00:04:58,400 Chaque page cristalline charges instantanément, 102 00:04:58,400 --> 00:05:00,586 peu importe à quelle vitesse vous faites. 103 00:05:00,586 --> 00:05:03,710 Si vous souhaitez obtenir un aperçu rapide, il suffit de tenir dans la paume de votre main, 104 00:05:03,710 --> 00:05:06,816 et en utilisant simplement votre pouce, vitesse parcourir le contenu. 105 00:05:06,816 --> 00:05:10,930 >> Si vous trouvez quelque chose que vous souhaitez enregistrer pour plus tard, vous pouvez simplement ajouter à vos favoris. 106 00:05:10,930 --> 00:05:17,620 Et même si vous fermez l'application, vous pouvez facilement retrouver le signet. 107 00:05:17,620 --> 00:05:18,490 Incroyable. 108 00:05:18,490 --> 00:05:20,434 >> [Rires] 109 00:05:20,434 --> 00:05:21,406 [Applaudissements] 110 00:05:21,406 --> 00:05:26,760 111 00:05:26,760 --> 00:05:29,870 Donc, cela nous amène à la fin de la première semaine. 112 00:05:29,870 --> 00:05:31,760 Quelques annonces maintenant. 113 00:05:31,760 --> 00:05:33,440 Donc sectionnement est maintenant en cours. 114 00:05:33,440 --> 00:05:36,860 Aller à l'URL ici quelque temps entre aujourd'hui et vendredi à midi 115 00:05:36,860 --> 00:05:39,960 de préciser effectivement si vous êtes parmi ceux qui sont moins à l'aise, plus 116 00:05:39,960 --> 00:05:41,690 confortable, ou quelque part entre les deux. 117 00:05:41,690 --> 00:05:44,511 >> C'est typiquement un de ceux les choses que vous venez de type de savoir. 118 00:05:44,511 --> 00:05:47,510 Et en fait, ceux d'entre vous qui sont moins confortable savez probablement autant, 119 00:05:47,510 --> 00:05:49,634 ceux d'entre vous qui sont plus confortable savent autant, 120 00:05:49,634 --> 00:05:54,960 et encore si vous n'êtes pas sûr de ce qui de ces seaux vous tombez dans vous êtes 121 00:05:54,960 --> 00:05:56,210 probablement quelque part entre les deux. 122 00:05:56,210 --> 00:05:59,810 Mais rassurez-vous, vous pouvez échanger au bout de quelques semaines si nécessaire. 123 00:05:59,810 --> 00:06:02,620 >> En attendant, pour la semaine à venir on ne commence pas par soi sections, 124 00:06:02,620 --> 00:06:04,760 mais les sections de super, qui sont ouverts à tous les étudiants. 125 00:06:04,760 --> 00:06:08,220 Ce dimanche, à un endroit être annoncé sur le site du cours 126 00:06:08,220 --> 00:06:10,190 nous allons avoir un pour ceux qui sont moins à l'aise, 127 00:06:10,190 --> 00:06:12,470 ainsi que l'un de ceux qui sont plus à l'aise. 128 00:06:12,470 --> 00:06:15,460 Et ceux quelque part entre peut choisir lequel des deux, 129 00:06:15,460 --> 00:06:17,360 ou les deux si vous le souhaitez, à un sit-in sur. 130 00:06:17,360 --> 00:06:19,630 Et la mise au point de ces sera finalement sur C, 131 00:06:19,630 --> 00:06:22,440 que nous allons continuer notre la conversation d'aujourd'hui. 132 00:06:22,440 --> 00:06:25,070 >> Problème réglé 0 en attendant est j'espère que dans vos mains. 133 00:06:25,070 --> 00:06:27,500 Officiellement en raison demain, Jeudi, à midi. 134 00:06:27,500 --> 00:06:29,490 Sauf si vous encaissez un de vos 5 jours de retard, 135 00:06:29,490 --> 00:06:31,780 qui l'amènerait jusqu'à vendredi à midi. 136 00:06:31,780 --> 00:06:34,420 Problème réglé 1 devra quant à lui être posté sur le site Web du cours. 137 00:06:34,420 --> 00:06:37,381 Et ce sera notre première incursion comme une classe en C 138 00:06:37,381 --> 00:06:40,630 Et ce problème mis en spec vous guidera par beaucoup de la mécanique de ce 139 00:06:40,630 --> 00:06:43,960 nous avons commencé à parler le lundi, et nous allons continuer à parler aujourd'hui. 140 00:06:43,960 --> 00:06:46,770 C, Linux, le CS50 appareil, tout cela 141 00:06:46,770 --> 00:06:48,990 vous attendent dans la spécification. 142 00:06:48,990 --> 00:06:52,840 >> Les heures de bureau sont en cours quant à lui, dans la salle à manger de premier cycle. 143 00:06:52,840 --> 00:06:56,240 Rendez-vous à l'adresse ici pour voir le planifier pour ce soir et demain, 144 00:06:56,240 --> 00:06:57,930 si vous souhaitez participer. 145 00:06:57,930 --> 00:07:01,920 Questions Pendant ce temps, de sorte que vous avoir la possibilité de poser des questions 146 00:07:01,920 --> 00:07:05,860 asynchrone, 24/7, réaliser que vous êtes ne se limite pas aux sections et bureau 147 00:07:05,860 --> 00:07:09,530 heures, mais plutôt cet outil ici, CS50 Discuter de cette URL 148 00:07:09,530 --> 00:07:12,150 sera la ligne de cours logiciel de la carte d'affichage, par lequel 149 00:07:12,150 --> 00:07:15,030 vous pouvez poser des questions camarades de classe et aussi personnel. 150 00:07:15,030 --> 00:07:18,492 Donc, gardez à l'esprit que les ressources ainsi. 151 00:07:18,492 --> 00:07:20,200 Pendant ce temps une tradition commence ce vendredi. 152 00:07:20,200 --> 00:07:23,200 Comme vous avez pu entrevoir de teaser vidéo de mercredi dernier, 153 00:07:23,200 --> 00:07:25,510 nous avons une tradition plus tous les vendredis pendant le mandat 154 00:07:25,510 --> 00:07:28,750 de prendre quelque 50 étudiants et personnel dans un restaurant local appelé 155 00:07:28,750 --> 00:07:31,510 Fire and Ice, à laquelle nous sommes généralement rejoints par certains anciens 156 00:07:31,510 --> 00:07:33,850 ou des amis de l'industrie à aspirer général 157 00:07:33,850 --> 00:07:35,780 pour faire une grande classe se sentent plus petits. 158 00:07:35,780 --> 00:07:37,560 C'est donc un déjeuner tout à fait décontracté. 159 00:07:37,560 --> 00:07:40,160 Un groupe d'entre nous, le personnel en particulier, va jouer les chaises musicales 160 00:07:40,160 --> 00:07:43,360 et discuter avec les élèves sur 50, la vie à l'extérieur de 50, 161 00:07:43,360 --> 00:07:46,510 vie dans l'avenir, le monde réel, Je parle de possibilités d'emploi 162 00:07:46,510 --> 00:07:47,680 avec des amis dans l'industrie. 163 00:07:47,680 --> 00:07:51,110 >> Donc, si vous souhaitez vous joindre à nous ce vendredi, à la tête de cette URL ici. 164 00:07:51,110 --> 00:07:54,180 L'espace est limité, mais nous allons le faire cycliquement pendant toute la durée. 165 00:07:54,180 --> 00:07:57,380 Rendez-vous là pour cs50.harvard.edu/rsvp. 166 00:07:57,380 --> 00:07:59,380 Et si vous n'obtenez pas cette fois, ne vous inquiétez pas. 167 00:07:59,380 --> 00:08:02,390 Nous le ferons à nouveau dans les semaines à venir ainsi. 168 00:08:02,390 --> 00:08:05,434 >> Donc, c'est l'image nous avons peint la semaine dernière, 169 00:08:05,434 --> 00:08:07,350 et vous avez probablement été barboter dans ce jour. 170 00:08:07,350 --> 00:08:10,360 Mais nous allons essayer de relier cette entreprise à ce que nous allons faire aujourd'hui 171 00:08:10,360 --> 00:08:11,440 et au-delà. 172 00:08:11,440 --> 00:08:14,760 Pourrais-je avoir un bénévole? 173 00:08:14,760 --> 00:08:16,000 Très bien, ou plusieurs. 174 00:08:16,000 --> 00:08:18,460 Que diriez-vous ici sur la fin, en chemise bleue. 175 00:08:18,460 --> 00:08:20,329 Montez donc, quel est votre nom? 176 00:08:20,329 --> 00:08:20,870 ALANA: Alana. 177 00:08:20,870 --> 00:08:21,661 DAVID Malan: Alana. 178 00:08:21,661 --> 00:08:25,100 Donc, Alana, pour seulement un moment-- agréable de rencontrer vous-- 179 00:08:25,100 --> 00:08:28,260 va jouer le rôle de cette fonction ici. 180 00:08:28,260 --> 00:08:31,290 Le bloc violet nous avons appelé jusqu'ici une fonction. 181 00:08:31,290 --> 00:08:34,830 Donc ce que je vais avance ici et offrir Alana 182 00:08:34,830 --> 00:08:38,380 est un peu nom de balise, de faire clairement le rôle que vous jouez. 183 00:08:38,380 --> 00:08:39,753 >> Alors tu seras le bloc de dire. 184 00:08:39,753 --> 00:08:41,419 Si vous voulez aller de l'avant et mettre ça sur. 185 00:08:41,419 --> 00:08:43,169 Et nous allons garder ce super simple. 186 00:08:43,169 --> 00:08:46,180 Si l'objectif à portée de main est tout simplement maintenant à mettre en œuvre avec Alana, 187 00:08:46,180 --> 00:08:49,710 ce soi-disant dit bloc, voici comment cela va fonctionner. 188 00:08:49,710 --> 00:08:52,574 Je have-- appelons-il un argument ou un paramètre, 189 00:08:52,574 --> 00:08:54,240 c'est vraiment juste une feuille de papier vierge. 190 00:08:54,240 --> 00:08:57,239 Et elle est blanche à type de faire penser de la boîte blanche dans laquelle vous 191 00:08:57,239 --> 00:08:58,080 peut écrire des mots. 192 00:08:58,080 --> 00:09:00,660 >> En attendant, je vais aller ici. 193 00:09:00,660 --> 00:09:06,560 Je vais aller de l'avant et écrire H-E-L-L-O virgule monde. 194 00:09:06,560 --> 00:09:09,972 Et maintenant, moi, en tant que dire le programmeur, fais pas savent réellement comment dire quelque chose. 195 00:09:09,972 --> 00:09:12,180 Je peux venir avec les mots, mais je ne fais pas nécessairement 196 00:09:12,180 --> 00:09:15,220 savoir comment m'exprimer verbalement ou à l'écran. 197 00:09:15,220 --> 00:09:17,280 Et si ce que je vais à faire est de prendre cette pièce 198 00:09:17,280 --> 00:09:21,157 de fonctionnalités, dont la input-- ou un argument, comme nous l'appellerons, 199 00:09:21,157 --> 00:09:23,990 J'ai écrit sur ce morceau de paper-- et je vais le confier. 200 00:09:23,990 --> 00:09:26,831 >> Et en effet, c'est le rôle que les fonctions dans un langage de programmation 201 00:09:26,831 --> 00:09:27,330 peut jouer. 202 00:09:27,330 --> 00:09:29,246 Quelque chose comme l'exemple bloc peut être externalisée 203 00:09:29,246 --> 00:09:32,074 à quelqu'un qui sait vraiment ce qu'il ou elle parle. 204 00:09:32,074 --> 00:09:33,990 Donc, si vous enjambez ici pendant un moment, 205 00:09:33,990 --> 00:09:40,092 Je vais passer cette entrée pour Alana, et de demander que vous dites cette entrée. 206 00:09:40,092 --> 00:09:41,202 >> ALANA: Bonjour tout le monde. 207 00:09:41,202 --> 00:09:42,160 DAVID Malan: C'est ça. 208 00:09:42,160 --> 00:09:43,326 Alors qu'il existe une fonction. 209 00:09:43,326 --> 00:09:46,556 Maintenant, nous pouvons prendre un peu plus, nous pouvons faire un pas en avant ici. 210 00:09:46,556 --> 00:09:48,180 Parce que c'était clairement décevante. 211 00:09:48,180 --> 00:09:51,670 Donc, nous allons convertir maintenant ce à quelque chose d'un peu plus sophistiqué. 212 00:09:51,670 --> 00:09:53,630 >> Donc, cela est bien sûr notre version de C. 213 00:09:53,630 --> 00:09:56,760 Alors maintenant, si vous voulez prendre que un arrêt, ce nom étiquette hors 214 00:09:56,760 --> 00:09:58,530 et nous allons avoir vous mettez sur un nouveau nom. 215 00:09:58,530 --> 00:10:00,850 Mais fondamentalement vous êtes jouer le même rôle, 216 00:10:00,850 --> 00:10:03,400 il se trouve à être appelé printf maintenant. 217 00:10:03,400 --> 00:10:06,930 >> L'histoire est, bien sûr, va probablement être-- 218 00:10:06,930 --> 00:10:09,317 comme c'est underwhelming-- va être la suivante. 219 00:10:09,317 --> 00:10:10,650 Vous êtes maintenant la fonction printf. 220 00:10:10,650 --> 00:10:13,300 Je suis l'appelant, ou la programmeur, qui veut 221 00:10:13,300 --> 00:10:15,745 reposer sur les épaules d' gens dans le passé comme vous, 222 00:10:15,745 --> 00:10:18,670 qui ont déjà compris comment pour réellement écrire quelque chose. 223 00:10:18,670 --> 00:10:20,650 Et cette fois, plutôt que de dire qu'il nous allons 224 00:10:20,650 --> 00:10:22,255 effectivement utiliser notre écran ici. 225 00:10:22,255 --> 00:10:24,130 Donc, si vous souhaitez l'étape ici, je vais 226 00:10:24,130 --> 00:10:27,196 de passer à nouveau ce que entrée à mon ami printf. 227 00:10:27,196 --> 00:10:29,320 Si vous pouviez aller de l'avant et imprimer que sur l'écran, 228 00:10:29,320 --> 00:10:31,611 en tirant simplement avec votre le doigt sur l'écran noir. 229 00:10:31,611 --> 00:10:43,680 230 00:10:43,680 --> 00:10:44,180 Excellente. 231 00:10:44,180 --> 00:10:47,350 D'accord, donc beaucoup de suspense pour comment cela allait se jouer. 232 00:10:47,350 --> 00:10:51,390 >> Alors maintenant, nous allons prendre les choses un encoche finale, si nous le pouvions, comme suit. 233 00:10:51,390 --> 00:10:53,980 Il s'agit donc d'un programme C comme nous l'avons dit la dernière fois. 234 00:10:53,980 --> 00:10:57,460 Et ce fait exactement ce que vous avez fait, il imprime à l'écran, bonjour, monde. 235 00:10:57,460 --> 00:11:00,290 Même si il ya clairement beaucoup de substance de distraction là-haut. 236 00:11:00,290 --> 00:11:03,630 Mais prenons les choses d'un cran et introduire cette version, qui rappellent 237 00:11:03,630 --> 00:11:06,160 C'était la troisième version nous nous sommes retrouvés avec la dernière fois. 238 00:11:06,160 --> 00:11:09,120 >> Et maintenant, il ya clairement deux utilisations de printf. 239 00:11:09,120 --> 00:11:12,280 Il ya deux appels à Alana dans ce cas pour printf, 240 00:11:12,280 --> 00:11:14,740 mais il ya aussi un appel pour une autre fonction. 241 00:11:14,740 --> 00:11:17,150 Qu'est-ce que la fonction clairement? 242 00:11:17,150 --> 00:11:17,650 GETSTRING. 243 00:11:17,650 --> 00:11:18,980 >> Pouvons-nous obtenir un plus volontaire? 244 00:11:18,980 --> 00:11:20,980 OK, venez sur place. 245 00:11:20,980 --> 00:11:21,805 Quel est votre nom? 246 00:11:21,805 --> 00:11:22,990 >> JAVIER: Javier. 247 00:11:22,990 --> 00:11:24,750 >> DAVID Malan: Javier, venez sur place. 248 00:11:24,750 --> 00:11:27,270 Donc, le rôle de Javier est sur ce morceau de papier. 249 00:11:27,270 --> 00:11:28,860 Ce que je vais appeler génériquement s. 250 00:11:28,860 --> 00:11:32,250 Maintenant, c'est une variable, il est de type chaîne, comme le laisse entendre 251 00:11:32,250 --> 00:11:34,290 par cette deuxième ligne au milieu là. 252 00:11:34,290 --> 00:11:36,540 Et je voudrais que vous allez me chercher une chaîne. 253 00:11:36,540 --> 00:11:40,120 Plus précisément la tête en bas à l'orchestre section et moi d'obtenir le nom d'une personne, 254 00:11:40,120 --> 00:11:43,142 et de revenir avec une variable contenant cette valeur. 255 00:11:43,142 --> 00:11:44,225 Il peut être qui vous voulez. 256 00:11:44,225 --> 00:11:47,590 257 00:11:47,590 --> 00:11:48,520 >> Et c'est parti. 258 00:11:48,520 --> 00:11:53,620 259 00:11:53,620 --> 00:11:55,960 Très bien, Javier est écrire le nom. 260 00:11:55,960 --> 00:12:02,210 261 00:12:02,210 --> 00:12:03,280 Bien. 262 00:12:03,280 --> 00:12:05,740 Nous pouvons tous probablement deviner comment cela va se jouer. 263 00:12:05,740 --> 00:12:07,489 Nous peut-être belaboring le point de ce 264 00:12:07,489 --> 00:12:10,320 une fonction est de faire, mais néanmoins je vous remercie beaucoup. 265 00:12:10,320 --> 00:12:13,890 >> Donc, Javier est revenu cette chaîne ici, qui, ne peut pas tout voir, 266 00:12:13,890 --> 00:12:15,800 Jonathan est la chaîne que nous avons obtenu. 267 00:12:15,800 --> 00:12:18,330 Alors maintenant, ce que je vais en fait de fournir à Alana que 268 00:12:18,330 --> 00:12:20,150 est quelque chose d'un peu différent. 269 00:12:20,150 --> 00:12:23,800 Parce que dans cette version de la programme, il ya d'abord l'état de votre nom. 270 00:12:23,800 --> 00:12:26,160 Ainsi, le très premier argument J'ai besoin de fournir Alana 271 00:12:26,160 --> 00:12:33,030 avec va être dire littéralement votre nom. 272 00:12:33,030 --> 00:12:35,280 Très bien, si simple Je voudrais remettre cela pour vous. 273 00:12:35,280 --> 00:12:36,730 Et au moment où j'écris le d'argument suivant, si vous 274 00:12:36,730 --> 00:12:39,230 vouloir aller de l'avant et écrire ce sur la carte, nous allons aller de l'avant 275 00:12:39,230 --> 00:12:42,659 et faire le dernier exemple ici de faire effacer ce qui doit arriver en fin de compte. 276 00:12:42,659 --> 00:12:44,450 Donc, votre nom, écrire vers le haut 277 00:12:44,450 --> 00:12:47,220 si cela ne vous dérange pas, juste pour que nous avons de la place pour une deuxième ligne. 278 00:12:47,220 --> 00:12:52,890 Parce que la dernière chose que je vais de vous fournir maintenant avec n'est pas un, 279 00:12:52,890 --> 00:12:57,220 mais deux morceaux de papier. 280 00:12:57,220 --> 00:12:58,074 >> Bien. 281 00:12:58,074 --> 00:13:01,920 H-E-L-L-O virgule, puis une ligne vierge. 282 00:13:01,920 --> 00:13:04,780 Donc ce que je suis sur le point de remettre Alana maintenant est quelque chose d'un peu différent. 283 00:13:04,780 --> 00:13:08,600 Non seulement elle devient ce, où remplir le vide représente 284 00:13:08,600 --> 00:13:12,050 que percent-- quelle était la espace réservé nous utilisons? 285 00:13:12,050 --> 00:13:13,890 Ouais, donc pour cent s. 286 00:13:13,890 --> 00:13:16,530 En attendant, je vais passer elle dans un deuxième argument, qui 287 00:13:16,530 --> 00:13:19,290 C'est précisément ce que Javier extraites de Jonathan. 288 00:13:19,290 --> 00:13:20,534 >> Alors permettez-moi de vous donner ces deux. 289 00:13:20,534 --> 00:13:22,575 Si vous souhaitez, aller de l'avant et imprimer cet effet. 290 00:13:22,575 --> 00:13:25,660 291 00:13:25,660 --> 00:13:28,130 Qu'est-ce qui se passe en fin de compte maintenant, Alana nouveau 292 00:13:28,130 --> 00:13:29,410 joue le rôle de printf. 293 00:13:29,410 --> 00:13:32,160 Javier jouait le rôle de GetString. 294 00:13:32,160 --> 00:13:34,700 Donc, ça va être votre souvenir. 295 00:13:34,700 --> 00:13:39,910 Et en fin de compte ce qui se passe, en dépit de ce hello-- yep aller de l'avant et la virgule. 296 00:13:39,910 --> 00:13:41,410 ALANA: Est-ce que je reçois ce encore ou pas? 297 00:13:41,410 --> 00:13:43,451 DAVID Malan: Yep, vous les deux reçu à la fois. 298 00:13:43,451 --> 00:13:45,740 Donc, l'idée est que vous peut maintenant tourner la page 299 00:13:45,740 --> 00:13:50,000 pour gérer la deuxième de ces deux entrées. 300 00:13:50,000 --> 00:13:53,280 Donc, il ne s'agit que de marteler le signaler que, alors que Alana exécuté 301 00:13:53,280 --> 00:13:55,830 cette ligne verte ici, puis Javier a fait celui-ci pour nous 302 00:13:55,830 --> 00:13:57,820 et revenez me voir quelque chose nous appelons s, mais c'était vraiment 303 00:13:57,820 --> 00:13:59,520 juste ce morceau de papier de la sienne. 304 00:13:59,520 --> 00:14:02,320 Et maintenant, Alana a fait cette troisième ligne. 305 00:14:02,320 --> 00:14:06,010 >> Et même si tout cela ressemble si incroyablement énigmatique peut-être 306 00:14:06,010 --> 00:14:08,870 à première vue, il a vraiment est aussi simple que cela. 307 00:14:08,870 --> 00:14:11,390 En passant entrées autour, obtenir sorties, soit 308 00:14:11,390 --> 00:14:14,560 être physiquement remis quelque chose en retour, ou de voir un effet secondaire de ce genre. 309 00:14:14,560 --> 00:14:17,170 Quelque chose de visuellement écrite sur l'écran. 310 00:14:17,170 --> 00:14:19,990 Donc, nous allons aller de l'avant et merci Alana et Javier, 311 00:14:19,990 --> 00:14:25,012 qui était ici-bas, pour nous rejoindre ici. 312 00:14:25,012 --> 00:14:25,934 >> [Applaudissements] 313 00:14:25,934 --> 00:14:29,360 314 00:14:29,360 --> 00:14:33,480 >> Alors maintenant, nous allons prendre pour acquis à quel simple tout cela pourrait être. 315 00:14:33,480 --> 00:14:36,775 Et nous allons procéder à fait faire quelque chose dans le code réel. 316 00:14:36,775 --> 00:14:40,620 Donc, sur l'écran ici est une capture d'écran de l'appareil soi-disant CS50. 317 00:14:40,620 --> 00:14:43,980 Et si vous deviez à, comme un 14h00 le mercredi après-midi, 318 00:14:43,980 --> 00:14:46,602 expliquer dans une certaine ami ce que l'appareil est de CS50, 319 00:14:46,602 --> 00:14:48,185 comment définiriez-vous dans une phrase? 320 00:14:48,185 --> 00:14:52,160 321 00:14:52,160 --> 00:14:53,240 Toute une seule phrase? 322 00:14:53,240 --> 00:14:54,876 Ouais? 323 00:14:54,876 --> 00:14:57,334 ETUDIANT: C'est comme un programme que fait l'ordinateur de tout le monde 324 00:14:57,334 --> 00:14:58,460 de fonctionner avec le même système. 325 00:14:58,460 --> 00:14:59,210 DAVID Malan: Bon! 326 00:14:59,210 --> 00:15:02,810 C'est un programme qui permet à chacun de ordinateur de fonctionner avec le même système. 327 00:15:02,810 --> 00:15:04,920 C'est un peu de votre propre copie d'une exploitation 328 00:15:04,920 --> 00:15:07,540 système qui arrive à être appelé Ubuntu Linux. 329 00:15:07,540 --> 00:15:11,070 Et il fonctionne de manière efficace à l'intérieur de une fenêtre sur votre propre Mac ou PC, 330 00:15:11,070 --> 00:15:15,080 de sorte que de cette façon dès la sortie de la porte dans la semaine 1, tout le monde ici dans la classe 331 00:15:15,080 --> 00:15:17,590 a accès aux mêmes outils, la même configuration, 332 00:15:17,590 --> 00:15:21,250 et il n'y a pas de courbe d'apprentissage spécifique à un Mac ou un PC en particulier. 333 00:15:21,250 --> 00:15:25,620 >> Maintenant, nous avons ouvert, à l'intérieur de la CS50 appareil lundi, ce programme ici. 334 00:15:25,620 --> 00:15:27,040 Il arrive à être appelé gedit. 335 00:15:27,040 --> 00:15:29,050 Mais c'est vraiment juste un éditeur graphique. 336 00:15:29,050 --> 00:15:33,170 C'est quelque chose comme le Bloc-notes ou texte Modifier sous Windows ou Mac OS, respectivement. 337 00:15:33,170 --> 00:15:36,720 Et j'ai proposé qu'il y avait vraiment trois éléments importants à cet écran. 338 00:15:36,720 --> 00:15:39,560 Le côté supérieur est l'endroit où vous serait écrire votre code. 339 00:15:39,560 --> 00:15:44,080 Et c'est là que nous avons passé beaucoup de notre trois exemples de la conférence de lundi. 340 00:15:44,080 --> 00:15:47,650 Le fond nous avons appelé ce, cette fenêtre noir, oui? 341 00:15:47,650 --> 00:15:48,640 >> ETUDIANT: compilateur? 342 00:15:48,640 --> 00:15:51,500 >> DAVID Malan: Compiler nous accédé par l'intermédiaire de cette fenêtre. 343 00:15:51,500 --> 00:15:53,040 Mais plus généralement. 344 00:15:53,040 --> 00:15:54,540 Ouais, c'était juste une fenêtre de terminal. 345 00:15:54,540 --> 00:15:57,780 C'est un vieux terme d'âge que juste décrit essentiellement un clignotement 346 00:15:57,780 --> 00:16:01,910 rapide, qu'il ya quelques années l'habitude d'être sur un de ces grands moniteurs de style CRT. 347 00:16:01,910 --> 00:16:04,300 Mais aujourd'hui, c'est un peu de virtuel dans le logiciel. 348 00:16:04,300 --> 00:16:06,710 Et les fenêtres terminales permet de faire le taper des commandes. 349 00:16:06,710 --> 00:16:11,750 Il sorte de la version simplifiée de l'interface utilisateur ou l'interface utilisateur. 350 00:16:11,750 --> 00:16:14,060 Ce n'est pas un graphique l'interface utilisateur graphique ou, 351 00:16:14,060 --> 00:16:17,250 c'est une interface en mode texte ou une interface de ligne de commande. 352 00:16:17,250 --> 00:16:20,770 >> Et en effet, c'est là finalement J'étais capable d'écrire un peu de code. 353 00:16:20,770 --> 00:16:24,200 Une fois que j'avais écrit du code si, rappelle que j'ai utilisé cette commande. 354 00:16:24,200 --> 00:16:26,210 Et comme il le nom type de l'indique, ce 355 00:16:26,210 --> 00:16:29,860 me permet de faire un programme appelé Bonjour. 356 00:16:29,860 --> 00:16:33,400 Mais ce qui a été vraiment fait? 357 00:16:33,400 --> 00:16:36,180 Eh bien make prenait mon entrée, mon code source, 358 00:16:36,180 --> 00:16:39,380 et la conversion à ce que, en fin de compte? 359 00:16:39,380 --> 00:16:40,060 >> Code de l'objet. 360 00:16:40,060 --> 00:16:42,790 Et le code de l'objet est juste une fantaisie façon de dire zéros et de uns. 361 00:16:42,790 --> 00:16:46,420 Et puis une fois que je voulais d'exécuter ce code objet, 362 00:16:46,420 --> 00:16:50,940 une fois que je voulais passer en entrée les zéros et de uns dans mon ordinateur de 363 00:16:50,940 --> 00:16:54,430 cerveau, la dite CPU ou de l'unité centrale de traitement, 364 00:16:54,430 --> 00:16:55,730 J'ai eu à exécuter le programme. 365 00:16:55,730 --> 00:16:59,042 Mais ce n'était pas tout à fait simple, le lundi comme il suffit de double cliquer sur une certaine icône. 366 00:16:59,042 --> 00:17:01,375 Qu'est-ce que la place ai-je dû faire pour exécuter un programme? 367 00:17:01,375 --> 00:17:04,130 368 00:17:04,130 --> 00:17:07,890 >> Quelle était cette deuxième commande? 369 00:17:07,890 --> 00:17:09,619 J'entends un peu barres? 370 00:17:09,619 --> 00:17:10,544 Oui, oui? 371 00:17:10,544 --> 00:17:12,474 >> ETUDIANT: Dot slash et le nom du programme. 372 00:17:12,474 --> 00:17:13,349 DAVID Malan: Exactement. 373 00:17:13,349 --> 00:17:15,030 Dot slash et le nom du programme. 374 00:17:15,030 --> 00:17:16,210 Maintenant, qu'est-ce que cela signifie? 375 00:17:16,210 --> 00:17:19,470 Eh bien point est juste une façon mystérieuse de dire le répertoire courant. 376 00:17:19,470 --> 00:17:23,440 Quel que soit le dossier dans lequel vous êtes référencée, est représenté par point. 377 00:17:23,440 --> 00:17:26,680 La barre est juste ce que vous avez vu sous Mac OS et Windows depuis des années, 378 00:17:26,680 --> 00:17:30,329 c'est un séparateur entre un répertoire ou le dossier et le reste de quelque nom. 379 00:17:30,329 --> 00:17:32,620 Dans Windows, il arrive à aller vers l'arrière, sous Linux et Mac 380 00:17:32,620 --> 00:17:34,210 OS il arrive à aller de l'avant. 381 00:17:34,210 --> 00:17:37,560 Mais c'est juste le séparateur, il est donc juste un détail syntaxique inintéressant. 382 00:17:37,560 --> 00:17:40,440 >> La partie juteuse de cours est le nom du programme, Bonjour. 383 00:17:40,440 --> 00:17:42,650 Et c'est ce que rendent créé pour nous. 384 00:17:42,650 --> 00:17:44,910 Il sorti ce fichier pour nous. 385 00:17:44,910 --> 00:17:46,700 Mais comment sommes-nous arrivés à ce point? 386 00:17:46,700 --> 00:17:48,870 Posons maintenant la question, ce qui était vraiment 387 00:17:48,870 --> 00:17:52,470 passe ici, au moins ce qui concerne une partie de cette syntaxe? 388 00:17:52,470 --> 00:17:57,000 >> Ainsi, dans un phrase ou deux, Comment avons-nous expliquer 389 00:17:57,000 --> 00:17:59,020 cette première ligne qui est surligné en vert? 390 00:17:59,020 --> 00:18:02,998 Quelle était cette première ligne faisant, à l'égard de mon programme? 391 00:18:02,998 --> 00:18:03,974 Ouais? 392 00:18:03,974 --> 00:18:05,067 >> ETUDIANT: [inaudible]. 393 00:18:05,067 --> 00:18:06,150 DAVID Malan: Dites-le à nouveau? 394 00:18:06,150 --> 00:18:08,734 ETUDIANT: Inclusion et téléchargement fonctions passées [inaudible]. 395 00:18:08,734 --> 00:18:09,483 DAVID Malan: Bon. 396 00:18:09,483 --> 00:18:11,900 Y compris, je ne dirai pas le téléchargement, mais disons 397 00:18:11,900 --> 00:18:15,500 y compris les fonctions que les gens ont écrit dans le passé. 398 00:18:15,500 --> 00:18:18,260 Et ces fonctions sont mises en œuvre quelque part dans mon ordinateur. 399 00:18:18,260 --> 00:18:20,470 Quelqu'un a écrit un fichier il ya des années, et que ce fichier 400 00:18:20,470 --> 00:18:23,490 est quelque part dans le CS50 appareil, ou sur mon disque dur 401 00:18:23,490 --> 00:18:24,480 plus généralement. 402 00:18:24,480 --> 00:18:27,810 Et si cette ligne est essentiellement dit, aller trouver ce fichier, / O pointée standard I 403 00:18:27,810 --> 00:18:31,740 h, et copier et coller son contenu ici sur le dessus de mon dossier 404 00:18:31,740 --> 00:18:33,860 de sorte que je n'ai pas à faire manuellement moi-même. 405 00:18:33,860 --> 00:18:40,970 >> Et parmi les morceaux les plus juteux à l'intérieur de ce fichier nous avons réclamé était quelle fonction? 406 00:18:40,970 --> 00:18:45,740 Quelle est la fonction disions-nous a été déclarée ou mentionnée dans la norme E / S point h 407 00:18:45,740 --> 00:18:47,120 le plus probable? 408 00:18:47,120 --> 00:18:47,900 Printf, non? 409 00:18:47,900 --> 00:18:50,797 Nous n'avons pas écrit sur printf Lundi, il existait seulement. 410 00:18:50,797 --> 00:18:52,880 Tout comme Alana vient sur scène et elle a juste 411 00:18:52,880 --> 00:18:55,540 existé et a su tirer quelque chose sur l'écran, 412 00:18:55,540 --> 00:18:58,660 printf n'existe donc depuis de nombreuses années. 413 00:18:58,660 --> 00:19:00,240 Et voilà comment nous accédons. 414 00:19:00,240 --> 00:19:03,280 Maintenant, si nous passons ici, principal était analogue nous 415 00:19:03,280 --> 00:19:06,620 dit le morceau de puzzle appelée lorsque le drapeau vert cliqué 416 00:19:06,620 --> 00:19:07,620 dans le monde de Scratch. 417 00:19:07,620 --> 00:19:10,130 C'est en quelque sorte de la nom par défaut que les humains 418 00:19:10,130 --> 00:19:13,340 décidé représenterait la par défaut point d'entrée à un programme. 419 00:19:13,340 --> 00:19:16,540 Le morceau de code de programmation qui est exécuté en premier. 420 00:19:16,540 --> 00:19:19,700 >> En attendant ces accolades sont un peu comme la forme incurvée 421 00:19:19,700 --> 00:19:21,410 d'un grand nombre de ces pièces à gratter jaune. 422 00:19:21,410 --> 00:19:24,860 Ils genre de encapsulent un ensemble tas d'instructions ensemble. 423 00:19:24,860 --> 00:19:28,350 Donc, c'est en quelque sorte lie certaines fonctionnalités connexes. 424 00:19:28,350 --> 00:19:33,750 printf est bien sûr une fonction qui imprime l'écran, comme nous venons de le faire. 425 00:19:33,750 --> 00:19:35,190 >> Qu'en est-il de ces parenthèses? 426 00:19:35,190 --> 00:19:38,770 Comment voulez-vous define-- même si vous avez jamais programmé auparavant, mais seulement sur la base 427 00:19:38,770 --> 00:19:41,320 maintenant sur une augmentation espérons intuition, ce 428 00:19:41,320 --> 00:19:43,290 sont les parenthèses font pour nous ici? 429 00:19:43,290 --> 00:19:45,450 Ou qu'est-ce qu'ils entourent? 430 00:19:45,450 --> 00:19:46,360 Ouais? 431 00:19:46,360 --> 00:19:49,360 >> ETUDIANT: Ils disent que vous allez imprimer avec printf. 432 00:19:49,360 --> 00:19:52,401 >> DAVID Malan: Ouais, ils disent ce que vous allez imprimer avec printf. 433 00:19:52,401 --> 00:19:56,260 Ou, plus généralement, ils sont entourant les entrées de la fonction. 434 00:19:56,260 --> 00:19:58,530 Ainsi, vous pouvez presque penser de ces parenthèses 435 00:19:58,530 --> 00:20:01,620 comme étant comme le métal clip sur cette presse-papiers. 436 00:20:01,620 --> 00:20:05,940 C'est ce qui maintenant, c'est ce qui est va être utilisé pour fournir des arguments 437 00:20:05,940 --> 00:20:08,500 dans la fonction, dans lequel ce cas est appelé printf. 438 00:20:08,500 --> 00:20:12,390 >> Donc, en général, pratiquement n'importe quel temps que nous appelons une fonction, 439 00:20:12,390 --> 00:20:14,280 nous allons voir une paire de parenthèses. 440 00:20:14,280 --> 00:20:17,000 Peut-être que quelque chose en elle, comme maintenant, peut-être rien en elle. 441 00:20:17,000 --> 00:20:19,770 Mais c'est là que vous mettriez les entrées ou les dits arguments 442 00:20:19,770 --> 00:20:20,680 à une fonction. 443 00:20:20,680 --> 00:20:22,470 >> Voici un tel argument. 444 00:20:22,470 --> 00:20:24,467 J'ai tout mis en relief entre guillemets, 445 00:20:24,467 --> 00:20:26,300 car il s'avère dans cette langue appelée 446 00:20:26,300 --> 00:20:29,950 C, quand vous voulez représenter un string-- c'est un mot ou une phrase 447 00:20:29,950 --> 00:20:33,470 ou même un paragraph-- vous devez l'entourer de guillemets. 448 00:20:33,470 --> 00:20:35,420 Citations pas simples, doubles guillemets. 449 00:20:35,420 --> 00:20:37,460 Et c'est exactement ce que j'ai fait ici. 450 00:20:37,460 --> 00:20:39,900 >> Pendant ce temps, il ya un morceau de musique symbole à la fin il. 451 00:20:39,900 --> 00:20:41,600 La barre oblique inverse n. 452 00:20:41,600 --> 00:20:43,460 Qu'avons-nous dit que représenté? 453 00:20:43,460 --> 00:20:44,093 Ouais? 454 00:20:44,093 --> 00:20:44,980 >> ETUDIANT: Une nouvelle ligne. 455 00:20:44,980 --> 00:20:45,896 >> DAVID Malan: Nouvelle ligne. 456 00:20:45,896 --> 00:20:47,910 A droite, vous n'avez pas généralement appuyez sur Entrée quand 457 00:20:47,910 --> 00:20:50,430 vous voulez que le programme à cracher une nouvelle ligne. 458 00:20:50,430 --> 00:20:54,210 Plutôt que vous dites explicitement avec cette pièce certes des arcanes 459 00:20:54,210 --> 00:20:58,770 de la syntaxe, la barre oblique inverse n, que vous voulez une nouvelle ligne pour y aller. 460 00:20:58,770 --> 00:20:59,810 Enfin, le point-virgule. 461 00:20:59,810 --> 00:21:01,560 Nous n'avons pas vraiment parler trop à ce sujet, 462 00:21:01,560 --> 00:21:04,893 et de loin ce sera le fléau de certains de votre existence pour le premier problème 463 00:21:04,893 --> 00:21:07,990 définir, lorsque vous venez de perdre pour réaliser vous avez oublié quelque chose d'aussi stupide 464 00:21:07,990 --> 00:21:08,614 comme un point-virgule. 465 00:21:08,614 --> 00:21:11,600 Et généralement mettant il y aura régler ce problème. 466 00:21:11,600 --> 00:21:13,511 Mais qu'est-ce qu'il fait pour nous, diriez-vous? 467 00:21:13,511 --> 00:21:15,670 >> ETUDIANT: [inaudible]. 468 00:21:15,670 --> 00:21:17,484 >> DAVID Malan: Désolé? 469 00:21:17,484 --> 00:21:18,532 >> ETUDIANT: [inaudible]. 470 00:21:18,532 --> 00:21:19,990 DAVID Malan: Finition un communiqué. 471 00:21:19,990 --> 00:21:22,770 C'est un peu comme la période au la fin d'une phrase en anglais, 472 00:21:22,770 --> 00:21:25,790 alors que dans cette langue C c'est la fin d'une déclaration. 473 00:21:25,790 --> 00:21:29,250 Une instruction de programmation code que vous voulez juste dire, 474 00:21:29,250 --> 00:21:30,500 J'en ai fini avec ça. 475 00:21:30,500 --> 00:21:32,240 Maintenant, remarquez que c'est le seul ici. 476 00:21:32,240 --> 00:21:34,614 Donc, vous ne voulez pas entrer en l'habitude de mettre des points-virgules 477 00:21:34,614 --> 00:21:36,190 après chaque parenthèse fermée. 478 00:21:36,190 --> 00:21:38,610 Par exemple, il ya aucun à côté de nul effet, et nous allons 479 00:21:38,610 --> 00:21:40,430 revenir à l'avenir à ce que des moyens vide. 480 00:21:40,430 --> 00:21:44,080 Mais dans ce cas votre printf est une fonction, ou une déclaration utilisé, 481 00:21:44,080 --> 00:21:47,420 et si nous voulons avoir que terminale à la fin de celui-ci. 482 00:21:47,420 --> 00:21:50,980 >> Et je suis volontairement ramasser sur C. Et franchement un grand nombre de langages comme C, C ++ 483 00:21:50,980 --> 00:21:55,000 Java, JavaScript, et un certain nombre de d'autres langues ont beaucoup de ces 484 00:21:55,000 --> 00:21:56,730 sorte de détails syntaxiques. 485 00:21:56,730 --> 00:22:00,120 Cela a certainement si vous êtes nouveau à programmation peut véritablement vous faire trébucher. 486 00:22:00,120 --> 00:22:02,307 Et vous, marquer mon mots, certains d'entre vous seront 487 00:22:02,307 --> 00:22:04,140 cette expérience aux heures de bureau ou la fin 488 00:22:04,140 --> 00:22:07,554 la nuit à travailler sur un p-set, où votre programme sacrément juste ne compile pas, 489 00:22:07,554 --> 00:22:09,470 il ne fonctionne pas, vous avez aucune idée de ce qui ne va pas, 490 00:22:09,470 --> 00:22:11,513 il semble tout à fait logiquement correct pour vous. 491 00:22:11,513 --> 00:22:13,596 Et c'est parce que vous avez oublié quelque chose comme frapper 492 00:22:13,596 --> 00:22:15,250 un point-virgule à la fin d'une certaine ligne. 493 00:22:15,250 --> 00:22:17,590 >> Mais c'est le genre de choses que vous êtes va apprendre immédiatement à voir. 494 00:22:17,590 --> 00:22:20,048 Et en effet, ce sont les choses que et les TF de de l'AC ont 495 00:22:20,048 --> 00:22:23,210 été sorte de formation pour voir beaucoup plus vite que vous. 496 00:22:23,210 --> 00:22:26,610 Et si ce n'est pour dire, comme vous le plongée en problème réglé 1 en particulier, 497 00:22:26,610 --> 00:22:28,217 ne soyez pas frustrés par ce genre de choses. 498 00:22:28,217 --> 00:22:30,050 Une fois que vous sorte de s'acclimater au monde, vous 499 00:22:30,050 --> 00:22:35,130 commencer à voir des choses que vous ne pourriez pas voir à première vue de cette première semaine. 500 00:22:35,130 --> 00:22:37,440 >> Donc, le code source est quelque chose comme ça. 501 00:22:37,440 --> 00:22:40,370 Nous voulons passer en le compilateur dite. 502 00:22:40,370 --> 00:22:42,850 Et ce compilateur comme nous l'avons dit fournit une sortie 503 00:22:42,850 --> 00:22:45,660 connu sous le nom de code objet, le soi-disant zéros et de uns. 504 00:22:45,660 --> 00:22:47,747 Mais à partir de là, qu'est-ce qui nous donne? 505 00:22:47,747 --> 00:22:49,080 Eh bien, il nous donne à ces modèles. 506 00:22:49,080 --> 00:22:52,020 Et encore une fois votre ordinateur, votre Intel à l'intérieur, 507 00:22:52,020 --> 00:22:54,350 compréhension de ces modèles de zéros et de uns. 508 00:22:54,350 --> 00:22:57,300 Et parfois, le modèle représente un nombre décimal réel 509 00:22:57,300 --> 00:22:59,770 comme nous l'avons vu la semaine dernière, parfois il représente une lettre 510 00:22:59,770 --> 00:23:02,730 comme nous l'avons vu la semaine dernière, parfois il représente une instruction, 511 00:23:02,730 --> 00:23:05,460 comme l'impression de quelque chose à l'écran. 512 00:23:05,460 --> 00:23:08,782 >> Donc printf pour instance-- mais, permettez-moi de revenir en arrière. 513 00:23:08,782 --> 00:23:11,240 Nous avons pris pour acquis que ces zéros et de uns sont 514 00:23:11,240 --> 00:23:14,200 produit par cette commande make. 515 00:23:14,200 --> 00:23:16,050 Mais la marque n'est pas un compilateur. 516 00:23:16,050 --> 00:23:19,370 Faire n'est pas la chose au milieu que cela la production des zéros et des uns. 517 00:23:19,370 --> 00:23:23,780 Plutôt faire est juste une très commodément programme nommé dont le but dans la vie 518 00:23:23,780 --> 00:23:27,267 est essentiellement de comprendre comment compiler votre programme. 519 00:23:27,267 --> 00:23:29,350 Et nous l'utilisons dans ces premières semaines parce que cela 520 00:23:29,350 --> 00:23:30,910 nous permet d'économiser beaucoup d'ennuis. 521 00:23:30,910 --> 00:23:34,080 >> Mais ce qui est vraiment rendre faire lorsque vous compilez bonjour, 522 00:23:34,080 --> 00:23:36,690 est, comme nous l'avons dit la dernière fois, c'est recherche sur votre disque dur 523 00:23:36,690 --> 00:23:40,620 ou dans le dossier en cours, pour fichier appelé ce, apparemment? 524 00:23:40,620 --> 00:23:41,815 Hello.c, non? 525 00:23:41,815 --> 00:23:43,190 C'est juste une sorte de convention. 526 00:23:43,190 --> 00:23:45,620 C'est arbitraire, mais c'est la façon dont les choses sont. 527 00:23:45,620 --> 00:23:48,620 Faire, si vous spécifiez simplement le nom d'un programme qui n'existe pas encore, 528 00:23:48,620 --> 00:23:52,200 il va chercher le code source dans un fichier, par défaut signifie hello.c. 529 00:23:52,200 --> 00:23:53,530 Et s'il le trouve, très bien. 530 00:23:53,530 --> 00:23:56,650 Il va convertir cette source Code en code objet pour vous. 531 00:23:56,650 --> 00:23:59,670 >> Mais chaque fois que je l'ai frappé Entrez après l'exécution de make bonjour, 532 00:23:59,670 --> 00:24:03,560 vous rappelez-vous avoir vu la dernière fois un assez long et la séquence cryptique 533 00:24:03,560 --> 00:24:06,430 d'autres lettres blanches et caractères sur l'écran? 534 00:24:06,430 --> 00:24:11,220 Eh bien, c'était la commande effective, le compilateur réel, qui a été en cours d'exécution. 535 00:24:11,220 --> 00:24:15,500 Ainsi, le compilateur réel nous allons utiliser la plupart des le semestre est quelque chose qui s'appelle clang. 536 00:24:15,500 --> 00:24:19,280 Certains d'entre vous ont utilisé Visual Studio avant, ou GCC, 537 00:24:19,280 --> 00:24:21,340 ou n'importe quel nombre d'autres compilateurs. 538 00:24:21,340 --> 00:24:22,620 Nous utiliserons clang. 539 00:24:22,620 --> 00:24:26,950 >> Et clang nous permet effectivement de convertir que le code source pour le code objet. 540 00:24:26,950 --> 00:24:29,430 Qu'est ce que cela fait dans la pratique? 541 00:24:29,430 --> 00:24:33,390 Eh bien, laissez-moi aller dans l'une des mes dossiers depuis la dernière fois. 542 00:24:33,390 --> 00:24:35,760 A l'intérieur de l'appareil de CS50. 543 00:24:35,760 --> 00:24:42,080 Et laissez-moi aller de l'avant et de créer ce même fichier, comprennent E / S standard point h. 544 00:24:42,080 --> 00:24:42,875 Void main Int. 545 00:24:42,875 --> 00:24:46,000 Et nous reviendrons à l'avenir à ce que int moyens et ce que signifie vides. 546 00:24:46,000 --> 00:24:49,130 Mais pour l'instant nous allons faire bonjour barre oblique inverse du monde n, 547 00:24:49,130 --> 00:24:50,500 Tout comme nous l'avons fait sur la carte. 548 00:24:50,500 --> 00:24:53,930 >> Permettez-moi à sauver ce fichier appelé hello.c. 549 00:24:53,930 --> 00:24:58,280 Et maintenant, si je veux compiler ce Je could-- laissez-moi un zoom avant terme in-- 550 00:24:58,280 --> 00:25:00,450 faire entrer bonjour. 551 00:25:00,450 --> 00:25:02,645 Et ce message a été cette ligne très énigmatique. 552 00:25:02,645 --> 00:25:05,120 Mais maintenant au moins un mot saute probablement hors de vous. 553 00:25:05,120 --> 00:25:07,087 Clang est que la ligne que nous avons vu avant. 554 00:25:07,087 --> 00:25:10,420 Maintenant, il ya un tas d'autres choses franchement que nous agitons nos mains à aujourd'hui. 555 00:25:10,420 --> 00:25:14,020 Mais il ya quelques sous-ensembles, quelques personnages ici 556 00:25:14,020 --> 00:25:14,907 qui présentent un intérêt. 557 00:25:14,907 --> 00:25:16,490 Mais je vais aller de l'avant et le faire. 558 00:25:16,490 --> 00:25:18,281 Je vais première manche bonjour, juste pour prouver 559 00:25:18,281 --> 00:25:20,320 que ce soit en travaillant comme c'était lundi. 560 00:25:20,320 --> 00:25:22,330 Mais maintenant, je vais supprimer le programme. 561 00:25:22,330 --> 00:25:25,870 Et tout comme nous avons eu ces noms courts dernière fois, 562 00:25:25,870 --> 00:25:29,787 la commande de suppression quelque chose est rm, supprimer, entrez. 563 00:25:29,787 --> 00:25:31,870 Vous allez obtenir une certaine questions assez énigmatiques. 564 00:25:31,870 --> 00:25:35,210 Difficile de croire que vous pouvez faire même cette question difficile à comprendre. 565 00:25:35,210 --> 00:25:38,100 Mais enlever bonjour de fichier régulier seulement moyen voulez-vous supprimer bonjour. 566 00:25:38,100 --> 00:25:42,650 >> Et je peux aller de l'avant et y saisir pour oui, Entrez, et maintenant il est parti. 567 00:25:42,650 --> 00:25:45,130 Qu'est-ce que cela signifie maintenant, si je effacer mon écran, 568 00:25:45,130 --> 00:25:47,301 est qu'au lieu d' faire faire hello-- vous 569 00:25:47,301 --> 00:25:48,800 sais quoi, je suis en train de bon à cela. 570 00:25:48,800 --> 00:25:50,690 Je vais courir le compilateur moi-même. 571 00:25:50,690 --> 00:25:53,330 Je n'ai pas besoin un programme de comprendre ce que mon fichier est appelé. 572 00:25:53,330 --> 00:25:55,370 J'ai écrit bonjour.c, je savoir ce que ça s'appelle, 573 00:25:55,370 --> 00:25:57,640 Je suis bien capable de taper ça. 574 00:25:57,640 --> 00:26:02,620 Donc, je vais aller de l'avant et ne clang bonjour.c Entrée. 575 00:26:02,620 --> 00:26:03,264 >> Semble fonctionner. 576 00:26:03,264 --> 00:26:05,930 Et il n'y a pas de sortie supplémentaire, parce cliquetis est le compilateur. 577 00:26:05,930 --> 00:26:08,590 C'est ce qui la conversion de la le code source de zéros et de uns. 578 00:26:08,590 --> 00:26:12,870 Donc, si je le fais maintenant dot réduire bonjour Entrez, hm. 579 00:26:12,870 --> 00:26:14,630 Message d'erreur Nouveau aujourd'hui. 580 00:26:14,630 --> 00:26:17,610 Donc, bash est juste le nom de la clignotement rapide que nous utilisons. 581 00:26:17,610 --> 00:26:20,360 C'est une simplification grossière, mais pour l'instant c'est tout ce qui est, 582 00:26:20,360 --> 00:26:21,401 c'est l'invite à clignoter. 583 00:26:21,401 --> 00:26:22,880 Et c'est pourquoi il hurle à nous. 584 00:26:22,880 --> 00:26:25,690 >> Aucun fichier ou le répertoire est un peu plus simple. 585 00:26:25,690 --> 00:26:28,190 Mais sûrement que j'ai fait que le code objet. 586 00:26:28,190 --> 00:26:30,930 Mais le hic, c'est que si je tape la commande 587 00:26:30,930 --> 00:26:34,650 pour afficher le contenu de cette répertoire, qui est ce? 588 00:26:34,650 --> 00:26:36,210 ls pour la liste. 589 00:26:36,210 --> 00:26:39,332 Il ya un tas de choses ici, dont certains sont venus avec l'appareil, 590 00:26:39,332 --> 00:26:42,040 comme mon dossier Bureau, Téléchargements dossier, dossier Dropbox, et tous 591 00:26:42,040 --> 00:26:42,850 ce genre de choses. 592 00:26:42,850 --> 00:26:45,410 Mais ce qui est intéressant est bonjour.c, qui 593 00:26:45,410 --> 00:26:47,286 J'ai créé il ya un moment avec gedit. 594 00:26:47,286 --> 00:26:49,160 Et ce qui est le plus singulier regardant nom ici, 595 00:26:49,160 --> 00:26:53,110 peut-être que nous n'avons pas voir la dernière fois à tous? 596 00:26:53,110 --> 00:26:54,710 >> a.out, non? 597 00:26:54,710 --> 00:26:56,920 Donc, retour dans la journée, il a tout simplement décidé que lorsque 598 00:26:56,920 --> 00:26:58,760 vous compilez un programme pour la première fois, 599 00:26:58,760 --> 00:27:02,360 et vous ne spécifiez pas le nom d'un fichier, appelons-le un. 600 00:27:02,360 --> 00:27:05,800 Et a.out signifie simplement que c'était la sortie du compilateur. 601 00:27:05,800 --> 00:27:07,790 Donc, c'est un nom horrible pour un programme. 602 00:27:07,790 --> 00:27:12,820 Mais cette logique, dot slash pour répertoire courant, slash a.out, 603 00:27:12,820 --> 00:27:16,102 devrait signifier qu'il ya, en fait, bonjour mon programme mondial. 604 00:27:16,102 --> 00:27:17,560 Maintenant un peu de réchauffer l'exercice, aussi. 605 00:27:17,560 --> 00:27:20,420 Si je veux renommer ce fichier s'avère que vous 606 00:27:20,420 --> 00:27:23,000 déplacer un fichier d'un nom à un autre. 607 00:27:23,000 --> 00:27:28,750 A.out Donc mv, et puis je peut appeler bonjour Entrée. 608 00:27:28,750 --> 00:27:30,940 Il s'agit donc d'une commande Linux. 609 00:27:30,940 --> 00:27:34,370 DOS avait il ya des années, Windows a une fenêtre de terminal 610 00:27:34,370 --> 00:27:36,460 de quelque sorte que l'air comme ça, Linux et Mac 611 00:27:36,460 --> 00:27:38,140 ordinateurs ont cette invite à clignoter. 612 00:27:38,140 --> 00:27:41,490 Même si la plupart d'entre nous sans doute rarement, sinon jamais, l'utiliser. 613 00:27:41,490 --> 00:27:44,590 >> Mais ce que j'ai fait est exécuté une programme, dont le nom est mv, 614 00:27:44,590 --> 00:27:47,900 et j'ai fourni avec deux arguments, pour ainsi dire. 615 00:27:47,900 --> 00:27:48,630 Deux entrées. 616 00:27:48,630 --> 00:27:50,260 a.out est le nom original. 617 00:27:50,260 --> 00:27:51,630 Bonjour est le nouveau nom. 618 00:27:51,630 --> 00:27:55,670 Donc, si je le fais maintenant slash dot bonjour, Entrée, cela existe. 619 00:27:55,670 --> 00:28:00,770 Et si je le fais point barre a.out, que voulez-vous que je devrais voir? 620 00:28:00,770 --> 00:28:02,250 >> Bash, aucun fichier ou répertoire. 621 00:28:02,250 --> 00:28:03,350 Parce que je viens retitré. 622 00:28:03,350 --> 00:28:04,975 Donc, cela prend un peu de temps pour s'y habituer. 623 00:28:04,975 --> 00:28:06,977 Mais le problème réglé 1 cahier des charges sera vraiment 624 00:28:06,977 --> 00:28:08,810 tenir la main par une partie de cette minutae. 625 00:28:08,810 --> 00:28:11,050 Parce que c'est une complète distraction intellectuelle 626 00:28:11,050 --> 00:28:12,966 à partir de la plus intéressante idées à portée de main, qui 627 00:28:12,966 --> 00:28:15,310 est réellement créer quelque chose de code. 628 00:28:15,310 --> 00:28:18,830 Mais nous allons faire une modification maintenant à ce programme. 629 00:28:18,830 --> 00:28:23,150 >> Rappelons que la dernière fois que j'ai fait quelque chose de comme ça, indiquer printf votre nom. 630 00:28:23,150 --> 00:28:25,790 Et en effet, nous avons juste fait ce sur le grand écran là-bas. 631 00:28:25,790 --> 00:28:30,640 Et puis j'ai fait la chaîne s obtient GetString parenthèse ouverte, près parenthèse. 632 00:28:30,640 --> 00:28:33,430 Et paren juste raccourci notation de parenthèse. 633 00:28:33,430 --> 00:28:36,460 Donc ne GetString prendre des arguments? 634 00:28:36,460 --> 00:28:38,440 Aucune entrée Non, mais il besoin des parenthèses, 635 00:28:38,440 --> 00:28:41,830 parce que c'est ce délimite l'appel d'une fonction. 636 00:28:41,830 --> 00:28:46,440 >> Donc, je vais aller de l'avant et essayer de exécuter le compilateur sur ce programme maintenant. 637 00:28:46,440 --> 00:28:50,774 Clang bonjour.c, parce que je n'a pas changé son nom pour le moment. 638 00:28:50,774 --> 00:28:51,940 Et j'ai eu un tas d'erreurs. 639 00:28:51,940 --> 00:28:53,570 Disons rétrécir ici. 640 00:28:53,570 --> 00:28:55,420 Si je fais défiler à nouveau, comme je l'ai dit la dernière fois, 641 00:28:55,420 --> 00:28:58,420 à la première, même erreur que j'ai eu la dernière fois. 642 00:28:58,420 --> 00:29:04,210 Sur la ligne 6 du bonjour.c j'ai eu un Chaîne d'identificateur non déclaré, 643 00:29:04,210 --> 00:29:05,590 ai-je veux dire dans la norme? 644 00:29:05,590 --> 00:29:06,750 Je n'ai pas. 645 00:29:06,750 --> 00:29:10,050 Parce que ce que je n'ai erreur accomplis dans ce programme, si vous vous souvenez de la dernière fois? 646 00:29:10,050 --> 00:29:13,219 647 00:29:13,219 --> 00:29:15,010 Oui, nous avons besoin de l' soi-disant roues de formation 648 00:29:15,010 --> 00:29:16,510 que nous allons simplement utiliser pendant quelques semaines. 649 00:29:16,510 --> 00:29:19,480 Mais je dois préciser que aussi, quelque part à l'intérieur de l'appareil, 650 00:29:19,480 --> 00:29:22,720 est un fichier qui nous écrit il ya seulement quelques années. 651 00:29:22,720 --> 00:29:26,500 L'intérieur de laquelle sont des fonctions comme apparemment GetString. 652 00:29:26,500 --> 00:29:35,160 Alors maintenant, si je reviens ici, zoom avant, et ré-exécuter clang hello.c. 653 00:29:35,160 --> 00:29:36,500 Merde, une autre erreur. 654 00:29:36,500 --> 00:29:38,590 Mais nous n'avons pas vu celui-ci avant. 655 00:29:38,590 --> 00:29:41,900 >> Celui-ci est un peu plus ésotérique à comprendre. 656 00:29:41,900 --> 00:29:46,910 Mais ce n'est délibérément sur l'écran, parce que nous voulions raconter cette histoire. 657 00:29:46,910 --> 00:29:51,280 Lorsque vous compilez bonjour.c, tout comme l'image d'avant suggéré, 658 00:29:51,280 --> 00:29:54,650 vous ne convertir que le code source de zéros et de uns. 659 00:29:54,650 --> 00:30:00,340 Maintenant personnel CS50 il ya quelques années a écrit CS50.h, et un fichier correspondant, 660 00:30:00,340 --> 00:30:01,640 CS50.c. 661 00:30:01,640 --> 00:30:04,490 Et nous, il ya quelques années, ces fichiers compilées 662 00:30:04,490 --> 00:30:07,290 dans un fichier qui se passe à appeler CS50.o. 663 00:30:07,290 --> 00:30:09,180 >> Ou il peut être renommé une nombre de choses différentes. 664 00:30:09,180 --> 00:30:11,054 Mais c'est un moyen simple de penser. 665 00:30:11,054 --> 00:30:14,960 Donc, nous avons compilé CS50 de bibliothèque dans zéros et de uns. 666 00:30:14,960 --> 00:30:20,340 Mais nulle part je n'ai spécifiée que je veux combiner mes zéros 667 00:30:20,340 --> 00:30:24,030 et ceux pour mon monde de bonjour programme avec les zéros et de uns 668 00:30:24,030 --> 00:30:29,760 que le personnel de CS50 créé quelques années Il ya dans un programme complet. 669 00:30:29,760 --> 00:30:34,100 Tout ce que j'ai précisé par écrit bonjour.c clang est compiler hello.c. 670 00:30:34,100 --> 00:30:38,380 >> Je n'ai pas dit à clang lien dans les zéros et de uns 671 00:30:38,380 --> 00:30:41,650 que le personnel de CS50 créé pour vous il ya quelque temps. 672 00:30:41,650 --> 00:30:48,280 Donc, c'est une solution facile, dash l pour le lien, CS50. 673 00:30:48,280 --> 00:30:52,600 Et nous voyons encore ce avant longtemps encore et encore. 674 00:30:52,600 --> 00:30:54,420 Mais remarquez maintenant il n'y avait rien à redire. 675 00:30:54,420 --> 00:30:59,770 Alors maintenant, si je n'ai point barre bonjour, maintenant ça marche. 676 00:30:59,770 --> 00:31:03,840 Bien que c'est un peu trompeur puisque je viens recréé ce fichier? 677 00:31:03,840 --> 00:31:05,880 a.out. 678 00:31:05,880 --> 00:31:07,930 >> Permettez-moi de rembobiner pour un instant. 679 00:31:07,930 --> 00:31:10,900 Le programme que nous venons compilé a trois lignes de code. 680 00:31:10,900 --> 00:31:14,710 Quand j'ai couru Bonjour tout le monde, bonjour un moment Il ya, je ne vois pas d'indiquer votre nom. 681 00:31:14,710 --> 00:31:17,080 Et c'est parce que j'ai couru l' ancienne version du programme. 682 00:31:17,080 --> 00:31:22,700 Mais si je ne fait courir point barre a.out Entrez, indiquez votre nom, Rob, bonjour, 683 00:31:22,700 --> 00:31:23,370 monde. 684 00:31:23,370 --> 00:31:23,870 Hm. 685 00:31:23,870 --> 00:31:26,110 C'est une sorte de bug. 686 00:31:26,110 --> 00:31:28,560 Signifiait probablement dire Rob, non? 687 00:31:28,560 --> 00:31:30,997 Alors, quelle est la solution ici dans le code. 688 00:31:30,997 --> 00:31:31,872 ETUDIANT: [inaudible]. 689 00:31:31,872 --> 00:31:38,415 690 00:31:38,415 --> 00:31:39,290 DAVID Malan: Exactement. 691 00:31:39,290 --> 00:31:43,160 Donc, je dois juste faire ce tweak finale de sorte que je suis de passage dans un espace réservé, 692 00:31:43,160 --> 00:31:45,690 comme un remplissage dans le vide, comme nous l'avons fait il ya un moment. 693 00:31:45,690 --> 00:31:47,870 Mais pour cent s est maintenant que remplir le vide. 694 00:31:47,870 --> 00:31:52,100 Donc, nous allons enfin de révéler une dernière détail de sorte qu'il n'y a pas de magie. 695 00:31:52,100 --> 00:31:54,090 Je vais aller de l'avant et de se débarrasser de hellow. 696 00:31:54,090 --> 00:31:56,070 Je vais aller de l'avant et de se débarrasser de a.out. 697 00:31:56,070 --> 00:31:58,410 Alors maintenant, je n'ai pas de programmes, juste mon code source. 698 00:31:58,410 --> 00:32:01,100 Et je vais courir un un peu plus longue commande, clang 699 00:32:01,100 --> 00:32:05,650 tableau de bord o bonjour bonjour.c tiret LCS50. 700 00:32:05,650 --> 00:32:08,700 >> Maintenant, cela commence à aller sorte de dans une oreille et sort par l'autre peut-être. 701 00:32:08,700 --> 00:32:10,366 Mais juste taquiner à part ce que cela fait. 702 00:32:10,366 --> 00:32:14,910 Clang est le compilateur, tableau de bord LCS50 délibérément à la fin 703 00:32:14,910 --> 00:32:18,330 fait quoi dans une phrase? 704 00:32:18,330 --> 00:32:19,607 Liens à la bibliothèque CS50. 705 00:32:19,607 --> 00:32:21,440 Saisit les zéros et ceux que le personnel fait 706 00:32:21,440 --> 00:32:23,310 et les CRAM dans mon propre programme. 707 00:32:23,310 --> 00:32:27,040 Ainsi, la dernière question qui se pose est, ce qui est tableau de bord o bonjour probablement 708 00:32:27,040 --> 00:32:30,530 faire, même si vous n'avez jamais vu cette syntaxe avant? 709 00:32:30,530 --> 00:32:34,920 >> Sortie d'un programme qui est pas nommé a.out par défaut. 710 00:32:34,920 --> 00:32:37,330 Au contraire, il est nommé bonjour. 711 00:32:37,330 --> 00:32:39,460 Alors maintenant, il n'y a pas a.out. 712 00:32:39,460 --> 00:32:42,660 Aucun fichier ou répertoire de ce nom, parce que je dis explicitement 713 00:32:42,660 --> 00:32:46,720 appeler ce programme bonjour, de sorte que Je peux maintenant saisir un nom comme ça 714 00:32:46,720 --> 00:32:47,790 et le faire se comporter. 715 00:32:47,790 --> 00:32:50,180 >> Maintenant, franchement, mon garçon, c'est que sans intérêt d'avoir 716 00:32:50,180 --> 00:32:52,170 de se rappeler tout cela peu minutie, non? 717 00:32:52,170 --> 00:32:54,180 Donc, nous allons aller de l'avant et se débarrasser de bonjour de nouveau. 718 00:32:54,180 --> 00:32:57,880 Et revenons maintenant à un monde qui il suffit de dire bonjour faire. 719 00:32:57,880 --> 00:33:00,410 Mais c'est la magie qui faire est fait pour vous, 720 00:33:00,410 --> 00:33:02,320 c'est l'ennui qui il est fait pour vous. 721 00:33:02,320 --> 00:33:04,630 Et comme nos programmes et problèmes deviennent plus complexes, 722 00:33:04,630 --> 00:33:06,142 faire va vraiment être votre ami. 723 00:33:06,142 --> 00:33:07,850 Parce que pas trop longtemps à partir de maintenant, nous allons 724 00:33:07,850 --> 00:33:11,150 d'avoir des programmes qui sont écrits pas avec un fichier, mais plusieurs fichiers, 725 00:33:11,150 --> 00:33:16,310 et de faire permettra d'automatiser le processus de compiler tout cela pour nous ensemble. 726 00:33:16,310 --> 00:33:20,620 >> Alors maintenant imprimer. 727 00:33:20,620 --> 00:33:24,960 printf est à l'intérieur de ce fichier, norme I / O point h, que nous avons vu auparavant, 728 00:33:24,960 --> 00:33:26,980 mais il ya plus à printf que cela. 729 00:33:26,980 --> 00:33:30,482 Il ya barre oblique inverse n, mais il ya aussi un tas d'autres séquences d'échappement. 730 00:33:30,482 --> 00:33:32,940 Et la séquence d'échappement est juste un façon élégante de dire quelque chose 731 00:33:32,940 --> 00:33:35,990 qui commence par une barre oblique inverse, pas une barre oblique, une barre oblique inverse, 732 00:33:35,990 --> 00:33:37,920 et fait quelque chose de spécial. 733 00:33:37,920 --> 00:33:43,770 Et nous ne nous attarderons pas sur la plupart d'entre eux, mais pourquoi est-il anti-slash guillemets, 734 00:33:43,770 --> 00:33:44,830 pensez-vous? 735 00:33:44,830 --> 00:33:48,010 Pourquoi cette séquence bizarre de caractères, barre oblique inverse guillemets, 736 00:33:48,010 --> 00:33:50,505 pourquoi cela pourrait-il être utile? 737 00:33:50,505 --> 00:33:51,380 ETUDIANT: [inaudible]. 738 00:33:51,380 --> 00:33:56,594 739 00:33:56,594 --> 00:33:57,760 DAVID Malan: Exactement, non? 740 00:33:57,760 --> 00:34:01,830 Pensez à notre programme mondial de bonjour que nous avons vu à quelques reprises maintenant, 741 00:34:01,830 --> 00:34:05,880 chaque fois que nous avons vu ce monde de bonjour programme, nous avons eu des guillemets à l'intérieur 742 00:34:05,880 --> 00:34:08,210 de ce qui est bonjour virgule monde oblique n. 743 00:34:08,210 --> 00:34:10,070 Mais pensez à vous-même, si vous avez réellement 744 00:34:10,070 --> 00:34:12,520 voulu imprimer un guillemet? 745 00:34:12,520 --> 00:34:16,100 Votre premier réflexe pourrait être, je ne sais pas savoir pourquoi je pourrais vouloir do-- ici, 746 00:34:16,100 --> 00:34:18,780 nous pouvons être un peu passive agressif, bonjour ami. 747 00:34:18,780 --> 00:34:21,350 Nous pourrions faire quelque chose comme ça. 748 00:34:21,350 --> 00:34:25,230 >> Mais pourquoi est-ce maintenant problématique? 749 00:34:25,230 --> 00:34:28,730 Ignorant les guillemets courbes de côté que principal fait pour nous automatiquement. 750 00:34:28,730 --> 00:34:29,730 Pourquoi est-ce problématique? 751 00:34:29,730 --> 00:34:36,719 752 00:34:36,719 --> 00:34:37,270 >> Exactement. 753 00:34:37,270 --> 00:34:39,022 Parce que nous avons comme 4 guillemets. 754 00:34:39,022 --> 00:34:41,230 Eh bien, le premier sans doute va de pair avec la deuxième, 755 00:34:41,230 --> 00:34:43,271 et peut-être la quatrième va de pair avec la troisième, 756 00:34:43,271 --> 00:34:46,170 ou, je veux dire que je ne suis même pas sûr, ni l'ordinateur va être. 757 00:34:46,170 --> 00:34:48,352 Ordinateurs de nouveau, les compilateurs encore une fois, sont assez muet. 758 00:34:48,352 --> 00:34:50,060 Ils ne font que ce vous leur dites de faire. 759 00:34:50,060 --> 00:34:54,270 Et si vous n'êtes pas sans ambiguïté, il vont probablement une erreur. 760 00:34:54,270 --> 00:34:57,700 >> Si vous n'êtes pas sans ambiguïté sur la façon de faire un beurre d'arachide et sandwich à gelée 761 00:34:57,700 --> 00:34:59,510 des choses étranges peuvent arriver. 762 00:34:59,510 --> 00:35:00,580 C'est la même idée. 763 00:35:00,580 --> 00:35:03,100 Maintenant, il suffit de dire qu'il n'y a d'autres séquences d'échappement, 764 00:35:03,100 --> 00:35:04,820 mais nous reviendrons à ceux avant longtemps. 765 00:35:04,820 --> 00:35:07,410 Il s'agit essentiellement de fuite séquences représentent quelque chose 766 00:35:07,410 --> 00:35:10,480 que vous pourriez ne pas être en mesure trop facilement au clavier, 767 00:35:10,480 --> 00:35:12,010 sans confondre l'ordinateur. 768 00:35:12,010 --> 00:35:15,733 >> Maintenant, en attendant, nous avons des espaces réservés dans printf. 769 00:35:15,733 --> 00:35:19,630 Pour cent d, qui peut aussi s'écrire dans presque tous les cas que pour cent i, 770 00:35:19,630 --> 00:35:21,610 est un espace réservé pour ce type de données? 771 00:35:21,610 --> 00:35:23,920 Quel type de valeur? 772 00:35:23,920 --> 00:35:24,920 Un certain nombre décimal. 773 00:35:24,920 --> 00:35:27,234 Donc, en fait, nous allons commencer en utilisant pour cent i parce que c'est 774 00:35:27,234 --> 00:35:28,650 un peu plus simple, comme un nombre entier. 775 00:35:28,650 --> 00:35:29,550 I pour cent. 776 00:35:29,550 --> 00:35:31,320 Un entier qui se trouve être décimal. 777 00:35:31,320 --> 00:35:35,690 >> Pour cent s nous avons déjà dit était un espace réservé pour une chaîne. 778 00:35:35,690 --> 00:35:38,630 Qui est juste un mot, une phrase, un paragraphe, un essai, peu importe. 779 00:35:38,630 --> 00:35:40,830 Il s'agit d'une séquence de les caractères d'une certaine longueur. 780 00:35:40,830 --> 00:35:42,820 Et nous verrons avant longtemps certains de ces autres. 781 00:35:42,820 --> 00:35:45,950 Mais pour cent c est pour un seul caractère. 782 00:35:45,950 --> 00:35:48,500 Pour cent f est un nombre à virgule flottante, 783 00:35:48,500 --> 00:35:50,860 comme un nombre réel qui a un point décimal en elle, qui 784 00:35:50,860 --> 00:35:52,550 n'est bien sûr pas un nombre entier. 785 00:35:52,550 --> 00:35:54,670 Et il ya toute une tas d'autres aussi. 786 00:35:54,670 --> 00:35:56,990 >> Pendant ce temps dans C, et dans beaucoup de langues, 787 00:35:56,990 --> 00:35:58,650 nous avons différents types de données. 788 00:35:58,650 --> 00:36:00,650 Différents types d' verre bols si vous voulez. 789 00:36:00,650 --> 00:36:03,830 Le bol j'ai utilisé la dernière fois était pour des balles de ping-pong, 790 00:36:03,830 --> 00:36:06,990 mais nous pouvons également stocker différents des valeurs comme les caractères et les chaînes 791 00:36:06,990 --> 00:36:10,820 et des nombres entiers dans un récipient, comme une variable, et C a ces derniers. 792 00:36:10,820 --> 00:36:14,020 Char est le type de données, le type de variable, 793 00:36:14,020 --> 00:36:15,700 dans lequel vous pouvez stocker un caractère. 794 00:36:15,700 --> 00:36:19,560 Flotteur est un type de variable en lequel vous pouvez stocker un nombre réel. 795 00:36:19,560 --> 00:36:21,220 >> Int est bien sûr pour un int. 796 00:36:21,220 --> 00:36:23,760 Et plutôt ridiculement nommé un long long 797 00:36:23,760 --> 00:36:26,830 C'est là que vous pouvez stocker l'essentiel un très long nombre, même avec 798 00:36:26,830 --> 00:36:29,930 plusieurs chiffres alors un typique peut stocker int. 799 00:36:29,930 --> 00:36:32,420 Mais nous y reviendrons qu'avant longtemps. 800 00:36:32,420 --> 00:36:35,520 >> Dans CS50 point h en attendant l'autre fichier d'en-tête 801 00:36:35,520 --> 00:36:37,630 que nous avons vu un couple fois en utilisation, il n'y a 802 00:36:37,630 --> 00:36:41,350 deux autres types de données que n'existent pas en C habituellement. 803 00:36:41,350 --> 00:36:45,000 Une est une chaîne, et nous verrons dans quelques semaines ce que les cordes vraiment 804 00:36:45,000 --> 00:36:46,610 sont sous le capot. 805 00:36:46,610 --> 00:36:47,950 Et on est bool. 806 00:36:47,950 --> 00:36:51,650 Et un bool est une variable qui ne peut prendre sur certaines valeurs. 807 00:36:51,650 --> 00:36:54,370 Et sur la base de la semaine dernière explication de Scratch, 808 00:36:54,370 --> 00:36:56,680 C et, plus récemment, que feriez-vous deviner 809 00:36:56,680 --> 00:37:01,770 sont les deux valeurs possibles pour certains conteneur qui est de type bool? 810 00:37:01,770 --> 00:37:02,860 >> Oui et non. 811 00:37:02,860 --> 00:37:03,870 Un et zéro. 812 00:37:03,870 --> 00:37:04,502 Vrai ou faux. 813 00:37:04,502 --> 00:37:07,460 Et en effet, c'est la dernière qui tend pour être classique dans une programmation 814 00:37:07,460 --> 00:37:10,030 langue, dire quelque chose comme vrai ou faux. 815 00:37:10,030 --> 00:37:13,160 >> Pendant ce temps la bibliothèque CS50 vient avec un tas de fonctionnalités 816 00:37:13,160 --> 00:37:16,640 que le personnel a écrit pour vous, mais pas seulement obtenir une chaîne. 817 00:37:16,640 --> 00:37:20,910 Nous avons écrit à la fonction d'avance que peut obtenir un nombre entier de l'utilisateur, 818 00:37:20,910 --> 00:37:22,990 obtenir un seul caractère, obtenir un flotteur, qui 819 00:37:22,990 --> 00:37:25,160 est juste un nombre avec le point décimal. 820 00:37:25,160 --> 00:37:28,290 Obtenez un long long, un très grande valeur à partir de l'utilisateur. 821 00:37:28,290 --> 00:37:30,930 Donc, nous avons vu que ce à action sous la forme de GetString. 822 00:37:30,930 --> 00:37:33,230 Mais ces fonctions par l'intermédiaire d' sera bientôt en mesure d'écrire 823 00:37:33,230 --> 00:37:36,070 des programmes qui donnent entrée de l'utilisateur. 824 00:37:36,070 --> 00:37:39,230 >> Pendant ce temps examiner ce programme, et envisager 825 00:37:39,230 --> 00:37:42,600 comment nous pourrions maintenant commencer à ajouter à elle avec de nouvelles constructions. 826 00:37:42,600 --> 00:37:44,530 Un petit tour tourbillon puis nous verrons 827 00:37:44,530 --> 00:37:47,340 à un écrit certains programmes manuellement nous-mêmes. 828 00:37:47,340 --> 00:37:49,700 Désormais, si nous voulons mettre en place une condition, 829 00:37:49,700 --> 00:37:52,790 ça ne va pas ressembler à un joli petit joli morceau de puzzle. 830 00:37:52,790 --> 00:37:54,460 Il va chercher un peu plus obscur. 831 00:37:54,460 --> 00:37:57,620 Mais c'est la canonique Structure d'une condition dans C. 832 00:37:57,620 --> 00:38:00,380 >> Le mot si, deux entre parenthèses, à l'intérieur de laquelle 833 00:38:00,380 --> 00:38:02,590 va être une sorte d'expression booléenne. 834 00:38:02,590 --> 00:38:04,999 Maintenant, la barre oblique dans le milieu, c'est 835 00:38:04,999 --> 00:38:07,290 au moment un peu comme Code pseudo espace réservé. 836 00:38:07,290 --> 00:38:11,576 Mais plus correctement, une ligne de code en C qui commence par slash slash 837 00:38:11,576 --> 00:38:12,850 est un commentaire. 838 00:38:12,850 --> 00:38:15,920 >> C'est comme un pense-bête que vous pourriez mettre sur un essai, imprimé sur du papier. 839 00:38:15,920 --> 00:38:17,290 C'est une note à vous-même. 840 00:38:17,290 --> 00:38:20,100 Elle n'a pas de fonction impact sur le programme. 841 00:38:20,100 --> 00:38:23,580 C'est une sorte de rappel, c'est votre propre documentation à ce qui se passe. 842 00:38:23,580 --> 00:38:25,720 Donc, le faire à l'heure actuelle est une sorte de marque de réservation 843 00:38:25,720 --> 00:38:27,560 pour tout ce qui est à l'intérieur de ces accolades 844 00:38:27,560 --> 00:38:29,810 finirait par faire quelque chose. 845 00:38:29,810 --> 00:38:35,160 >> En attendant, vous avez deux fourchettes dans le route, un autre si construire comme ça. 846 00:38:35,160 --> 00:38:37,024 Vous pouvez si, elseif, autre. 847 00:38:37,024 --> 00:38:39,690 Maintenant, il est intéressant de noter, en particulier si vous avez été googler autour 848 00:38:39,690 --> 00:38:42,480 en ligne de ressources sur curiosité, ou si vous prenez 849 00:38:42,480 --> 00:38:44,575 l'un des cours de livres recommandés sur C, 850 00:38:44,575 --> 00:38:48,430 vous verrez que les humains ont beaucoup des préférences différentes sur la façon dont 851 00:38:48,430 --> 00:38:50,510 de s'exprimer dans le code. 852 00:38:50,510 --> 00:38:53,800 Certaines personnes aiment mettre la accolades comme je l'ai fait ici. 853 00:38:53,800 --> 00:38:57,760 Certaines personnes aiment mettre le bouclés accolades, par exemple ici. 854 00:38:57,760 --> 00:39:01,700 >> Certaines personnes aiment mettre la elses ici et ceci ici. 855 00:39:01,700 --> 00:39:05,120 Il ya un certain nombre de façons de écrire du code, et aucun d'eux 856 00:39:05,120 --> 00:39:06,566 sont juste en soi. 857 00:39:06,566 --> 00:39:08,440 Bien qu'il y ait un peu qui sont assez mal. 858 00:39:08,440 --> 00:39:11,315 Mais il existe no-- si c'est finalement, un débat très religieux. 859 00:39:11,315 --> 00:39:13,940 En fait, l'un des plus ennuyeux choses sur l'informatique 860 00:39:13,940 --> 00:39:16,310 comment opiniâtre les informaticiens peuvent être. 861 00:39:16,310 --> 00:39:19,880 Et vous trouverez plus de temps que même vous développez préférences personnelles 862 00:39:19,880 --> 00:39:22,130 sur la façon dont votre code devrait ressembler. 863 00:39:22,130 --> 00:39:27,162 >> Non seulement se comporter, non seulement de créer une sortie, mais comment il devrait ressembler esthétiquement. 864 00:39:27,162 --> 00:39:30,120 Donc, ce que nous allons faire est de vous guider tout au long la voie vers, pour l'instant du moins, 865 00:39:30,120 --> 00:39:34,825 un style de CS50 standard au moins garde tout uniforme et facile à lire. 866 00:39:34,825 --> 00:39:37,330 Mais plus sur les distinctions avant longtemps. 867 00:39:37,330 --> 00:39:41,830 >> Une expression booléenne en C, si vous voulu dire si cette condition est vraie 868 00:39:41,830 --> 00:39:44,650 et cette autre condition est vrai, vous n'écrivez pas le mot 869 00:39:44,650 --> 00:39:46,610 et, comme vous le feriez en anglais. 870 00:39:46,610 --> 00:39:50,580 Vous utilisez à la place esperluette esperluette, pour des raisons que nous allons revenir à. 871 00:39:50,580 --> 00:39:54,520 Si vous voulez dire ou vous utilisez deux barres verticales, qui sur un clavier américain 872 00:39:54,520 --> 00:39:57,650 est généralement supérieure à la Saisissez touche à côté de la barre oblique inverse. 873 00:39:57,650 --> 00:40:03,080 Et cela signifie que si cette condition ou cette autre condition est vraie faire. 874 00:40:03,080 --> 00:40:05,210 >> Pendant ce temps, il ya cette Ce qui est fou, qui 875 00:40:05,210 --> 00:40:07,760 vous aurez l'occasion à utiliser une fois de temps en temps. 876 00:40:07,760 --> 00:40:10,390 Mais c'est juste une alternative façon de vous exprimer. 877 00:40:10,390 --> 00:40:12,400 Ce, pour l'instant, nous allons précise, c'est juste 878 00:40:12,400 --> 00:40:16,880 une autre manière géniale d'exprimer si, elseif, elseif, elseif, elseif. 879 00:40:16,880 --> 00:40:19,720 C'est juste formaté en termes des cas, où vous littéralement 880 00:40:19,720 --> 00:40:23,420 énumérer les valeurs qui vous voudrez peut-être vérifier. 881 00:40:23,420 --> 00:40:24,410 >> Pendant ce temps les boucles. 882 00:40:24,410 --> 00:40:26,842 Nous avons vu une comparaison des Grattez avec une boucle. 883 00:40:26,842 --> 00:40:29,550 Et je vais agiter ma main à ce que chacun de ces choses signifie. 884 00:40:29,550 --> 00:40:33,520 Mais remarquez qu'une boucle sera très commencent souvent avec le mot-clé pour. 885 00:40:33,520 --> 00:40:36,350 Ou il va commencer avec le mot-clé tout. 886 00:40:36,350 --> 00:40:41,360 Ou il va commencer avec le mot-clé faire, et se terminer par le mot-clé tout. 887 00:40:41,360 --> 00:40:43,920 >> Mais ce que nous sommes sur le point de voir est des choses plus comme ça. 888 00:40:43,920 --> 00:40:47,950 Voici, en général en C, comment vous pourriez déclarer une variable et lui donner une valeur. 889 00:40:47,950 --> 00:40:50,610 En C, il ne suffit pas, comme dans Scratch, il vous suffit 890 00:40:50,610 --> 00:40:52,810 dire me donner une variable appelée quelque chose. 891 00:40:52,810 --> 00:40:55,960 Vous devez dire à C, et dites le compilateur, et plus spécifiquement, 892 00:40:55,960 --> 00:40:58,680 quel type de valeur que vous faire vouloir mettre dans le bol en verre. 893 00:40:58,680 --> 00:40:59,610 >> Est-il un nombre entier? 894 00:40:59,610 --> 00:41:02,210 Si c'est le cas, vous devez dire littéralement int puis 895 00:41:02,210 --> 00:41:04,220 le nom de la variable, puis un point-virgule. 896 00:41:04,220 --> 00:41:08,050 Si vous voulez à la place chaîne et appelé il s comme je le faisais mon code ici aujourd'hui, 897 00:41:08,050 --> 00:41:10,920 vous diriez la virgule chaîne de. 898 00:41:10,920 --> 00:41:14,200 Une fois que vous voulez lui donner une valeur vous pouvez ensuite utiliser le signe égal, 899 00:41:14,200 --> 00:41:16,211 autrement connu sous le nom opérateur d'affectation. 900 00:41:16,211 --> 00:41:17,960 Et remarquez comment chaque de ces lignes de code 901 00:41:17,960 --> 00:41:20,650 a le point-virgule à la fin de celui-ci. 902 00:41:20,650 --> 00:41:22,550 >> Mais franchement ce juste semble un peu laid. 903 00:41:22,550 --> 00:41:26,580 Pourquoi ne puis-je pas dire à l'ordinateur, donner moi une variable et l'initialiser à zéro. 904 00:41:26,580 --> 00:41:28,380 C'est à dire, donnez-moi un bol en verre vide. 905 00:41:28,380 --> 00:41:28,980 Alors que vous pouvez. 906 00:41:28,980 --> 00:41:32,250 Et si l'un de l'arrêt vous appelle y avoir à faire stylistique au fil du temps 907 00:41:32,250 --> 00:41:36,290 est-ce que vous écrivez votre code comme ceci, ou ne vous sorte de nettoyer et impressionner 908 00:41:36,290 --> 00:41:39,040 les gens en écrivant deux lignes comme un seul. 909 00:41:39,040 --> 00:41:41,830 Et cela serait considéré comme généralement une façon plus élégante 910 00:41:41,830 --> 00:41:43,870 d'écrire votre code stylistique. 911 00:41:43,870 --> 00:41:45,200 >> Fonctions nous sommes bien sûr vu. 912 00:41:45,200 --> 00:41:46,340 Ils vont prendre ce format. 913 00:41:46,340 --> 00:41:48,881 Le nom d'une fonction, certains parenthèses, et puis peut-être un peu 914 00:41:48,881 --> 00:41:49,910 choses à l'intérieur. 915 00:41:49,910 --> 00:41:52,540 Ou vous pourriez voir des utilisations de multiples fonctions côté 916 00:41:52,540 --> 00:41:55,980 de l'autre, quelque chose comme ça. 917 00:41:55,980 --> 00:41:59,390 Or, comme une tangente, ne cette blague maintenant un sens? 918 00:41:59,390 --> 00:42:03,566 919 00:42:03,566 --> 00:42:04,960 >> [Rires] 920 00:42:04,960 --> 00:42:09,360 Cela ne signifie pas que c'est drôle, mais il ne fait peut-être un peu plus de sens. 921 00:42:09,360 --> 00:42:12,140 Alors maintenant, nous allons passer à la appareil CS50 pour un moment. 922 00:42:12,140 --> 00:42:14,640 Et permettez-moi de m'ouvrir un teaser de ici. 923 00:42:14,640 --> 00:42:17,470 >> Et en effet, l'une des raisons pour introduire catalogue IKEA 924 00:42:17,470 --> 00:42:20,080 et clignoter l'image de l'iPhone il ya un peu 925 00:42:20,080 --> 00:42:24,700 était réellement attacher dans ensemble le fait que il ya quelques années, en 2007, 926 00:42:24,700 --> 00:42:26,540 ce morceau de code était libéré, qui a été 927 00:42:26,540 --> 00:42:29,820 l'un des tout premier la mise en œuvre d'une pièce de logiciel 928 00:42:29,820 --> 00:42:31,494 que fait ce qu'on appelle jailbreaking. 929 00:42:31,494 --> 00:42:34,410 Pour ceux qui ne connaissent, jailbreaking quelque chose comme un téléphone ou un iPhone 930 00:42:34,410 --> 00:42:37,680 signifie essentiellement déterminer comment faire les choses 931 00:42:37,680 --> 00:42:39,864 avec elle que la société qui a fait qu'il n'a pas l'intention. 932 00:42:39,864 --> 00:42:42,780 Comme vous voulez installer certains un logiciel qui n'est pas dans l'app store, 933 00:42:42,780 --> 00:42:45,405 jailbreaking votre téléphone qui vous faites les choses comme cela et plus encore. 934 00:42:45,405 --> 00:42:47,447 Mais ce qui était amusant dans 2007-- et il ya eu 935 00:42:47,447 --> 00:42:49,780 des dizaines de versions différentes de ces choses depuis, 936 00:42:49,780 --> 00:42:53,540 dans toutes sortes de languages-- est que ce programme ici, appelé iUnlock, 937 00:42:53,540 --> 00:42:57,036 a été effectivement écrit en C. Et donc je tiré vers le haut le code source pour cela, 938 00:42:57,036 --> 00:42:59,910 juste pour montrer gentil de votre part quelques-uns des les similitudes avec les constructions 939 00:42:59,910 --> 00:43:01,450 nous avons discuté jusqu'à présent. 940 00:43:01,450 --> 00:43:05,150 Maintenant, il ya beaucoup plus de complexité ici que nous avons déjà vu en classe. 941 00:43:05,150 --> 00:43:07,160 Permettez-moi de défiler vers le haut un peu ici. 942 00:43:07,160 --> 00:43:11,520 >> Mais remarquons these-- bien nous remarquons quelques-uns things-- de remarquer ces lignes ici, 943 00:43:11,520 --> 00:43:14,090 y compris E / S standard point h. 944 00:43:14,090 --> 00:43:17,660 Et tous-- ligne 24, please-- remarquerez E / S standard 945 00:43:17,660 --> 00:43:21,380 point h et tout un tas d'autres Les fichiers qui apparemment d'autres personnes 946 00:43:21,380 --> 00:43:22,160 ont écrit. 947 00:43:22,160 --> 00:43:24,850 Et si nous faisons défiler à travers ce, peu arbitrairement, 948 00:43:24,850 --> 00:43:27,910 Remarquez que je ne sais pas comment écrire tout cela me forcément encore, 949 00:43:27,910 --> 00:43:28,880 mais il ya si. 950 00:43:28,880 --> 00:43:30,400 Donc, apparemment, cela a une branche. 951 00:43:30,400 --> 00:43:33,210 >> Et si je défiler vers le bas un peu en outre il ya une autre si. 952 00:43:33,210 --> 00:43:38,210 Si je fais défiler, je pense autour de la ligne 100, j'ai vu pour. 953 00:43:38,210 --> 00:43:40,020 Donc, je ne suis pas sûr comment cela fonctionne encore, 954 00:43:40,020 --> 00:43:43,180 mais c'est une boucle qui va permettez-moi de itérer un nombre de fois. 955 00:43:43,180 --> 00:43:45,230 Et si je fais défiler tous le chemin vers le bas 956 00:43:45,230 --> 00:43:51,020 Je vois qu'il ya une fonctionner ici appelé 957 00:43:51,020 --> 00:43:54,570 principal, et des crédits supplémentaires pour votre plaisir de lecture. 958 00:43:54,570 --> 00:43:57,830 >> Donc ce n'est à say-- et nous allons mettre cette ligne entre la source du cours 959 00:43:57,830 --> 00:44:01,480 Code today-- que même certains d'entre eux dispositifs que nous prenons pour acquis, 960 00:44:01,480 --> 00:44:05,130 à la fin de la journée, vous êtes toujours l'utilisation de ces structures de base que nous avons 961 00:44:05,130 --> 00:44:07,430 été l'introduction déjà à ce jour. 962 00:44:07,430 --> 00:44:08,620 C'est assez de celui-là. 963 00:44:08,620 --> 00:44:11,480 Très bien, alors maintenant nous allons fait construire quelque chose. 964 00:44:11,480 --> 00:44:15,640 >> Allons au-delà de quelque chose comme bonjour.c, et d'ouvrir ce, 965 00:44:15,640 --> 00:44:17,170 Écrivons ce programme ici. 966 00:44:17,170 --> 00:44:19,850 Je vais aller de l'avant et écrire un programme appelé adder.c, 967 00:44:19,850 --> 00:44:23,310 dont le but dans la vie va être comme mon premier calculateur super simple 968 00:44:23,310 --> 00:44:24,840 qui ajoute juste un couple de nombres. 969 00:44:24,840 --> 00:44:27,050 Non parce que c'est un disque problème, mais parce qu'il 970 00:44:27,050 --> 00:44:29,390 me permet d'attacher maintenant ensemble un certain nombre de choses. 971 00:44:29,390 --> 00:44:33,100 Donc, je vais aller de l'avant et inclure Je / S standard dot h et CS50 point h. 972 00:44:33,100 --> 00:44:34,670 Je vais dire void main int. 973 00:44:34,670 --> 00:44:36,545 Et à l'avenir nous reviendrons sur ce 974 00:44:36,545 --> 00:44:38,560 dans dans ce contexte et des moyens de vide. 975 00:44:38,560 --> 00:44:43,340 >> Et maintenant, je vais dire quelque chose comme printf, donnez-moi un entier. 976 00:44:43,340 --> 00:44:47,610 Et maintenant sur mon deuxième ligne, comment puis-je m'exprime comme 977 00:44:47,610 --> 00:44:50,980 que je tiens à déclarer une variable cela va stocker un int? 978 00:44:50,980 --> 00:44:55,470 Littéralement qu'est-ce que je tape si je veux créer une variable qui stocke un int 979 00:44:55,470 --> 00:44:58,270 diriez-vous? 980 00:44:58,270 --> 00:44:59,650 int une égale getint. 981 00:44:59,650 --> 00:45:00,485 Bien sûr, si cela fonctionne. 982 00:45:00,485 --> 00:45:02,360 Et juste pour la cohérence avec le code que vous aurez 983 00:45:02,360 --> 00:45:04,485 voir en ligne, laissez-moi le changement ce à x, juste parce que x 984 00:45:04,485 --> 00:45:06,830 est un nom de variable commune d'utiliser, au moins en algèbre. 985 00:45:06,830 --> 00:45:08,720 Maintenant, laissez-moi aller de l'avant et ne printf nouveau. 986 00:45:08,720 --> 00:45:10,692 Donnez-moi un autre entier. 987 00:45:10,692 --> 00:45:12,900 Et maintenant, je vais genre de tirer des leçons de ce modèle, 988 00:45:12,900 --> 00:45:14,490 Je vais dire int y arrive à getint. 989 00:45:14,490 --> 00:45:16,340 >> Et nous n'avons pas l'habitude Getint avant, mais juste 990 00:45:16,340 --> 00:45:19,860 comme GetString va chercher une chaîne, comme Javier a fait de l'auditoire, 991 00:45:19,860 --> 00:45:22,780 fait de même getint commence à clignoter l'invite. 992 00:45:22,780 --> 00:45:26,750 Et effectivement attente pour l'utilisateur pour lui donner un entier, en le tapant dans 993 00:45:26,750 --> 00:45:27,900 et en appuyant sur Entrée. 994 00:45:27,900 --> 00:45:30,850 Maintenant, enfin je vais faire ce, la somme printf de-- 995 00:45:30,850 --> 00:45:36,080 et laissez-moi maintenant-- fantaisie i pour cent pour cent et i est présente 996 00:45:36,080 --> 00:45:39,270 i point d'exclamation barre oblique inverse n. 997 00:45:39,270 --> 00:45:42,750 Et qu'est-ce que vous pensez que je vais mettre en maintenant que les entrées supplémentaires 998 00:45:42,750 --> 00:45:44,620 à printf? 999 00:45:44,620 --> 00:45:47,380 >> Je ne veux pas dire citer littéralement x Unquote. 1000 00:45:47,380 --> 00:45:52,210 Je veux classe en x et alors, et maintenant passons fantaisie 1001 00:45:52,210 --> 00:45:54,420 et supposons que nous pouvons faire ce que nous voulons. 1002 00:45:54,420 --> 00:45:56,330 Ce que vous voulez dire par la suite? 1003 00:45:56,330 --> 00:45:57,070 x + y. 1004 00:45:57,070 --> 00:45:58,520 Et en effet, cela fonctionnera. 1005 00:45:58,520 --> 00:46:01,760 Il est peu langages de programmation faire comprendre l'arithmétique de base, 1006 00:46:01,760 --> 00:46:03,500 et si cela ne devrait en fait le travail. 1007 00:46:03,500 --> 00:46:06,730 >> Alors laissez-moi aller de l'avant et ne fais additionneur à ma fenêtre en noir et blanc 1008 00:46:06,730 --> 00:46:08,090 ici-bas, Entrée. 1009 00:46:08,090 --> 00:46:10,830 Ligne Cryptic mais aucune erreur message, de sorte que c'est bon. 1010 00:46:10,830 --> 00:46:14,410 Dot slash additionneur, donne-moi un entier, 1. 1011 00:46:14,410 --> 00:46:16,230 Donnez-moi un autre entier, 2. 1012 00:46:16,230 --> 00:46:18,770 La somme de 1 et 2 est de 3. 1013 00:46:18,770 --> 00:46:21,730 >> Très bien, alors un assez trivial programme, mais qu'est-ce qu'il fait? 1014 00:46:21,730 --> 00:46:25,680 Il m'a permis d'utiliser une fonction appeler ici, appeler une autre fonction ici, 1015 00:46:25,680 --> 00:46:29,260 deux appels à getint, un troisième appel à printf, 1016 00:46:29,260 --> 00:46:30,720 et puis en utilisant ces espaces réservés. 1017 00:46:30,720 --> 00:46:33,160 C'est donc un peu plus sophistiquée que la dernière fois. 1018 00:46:33,160 --> 00:46:35,260 Mais si je veux obtenir un peu de fantaisie? 1019 00:46:35,260 --> 00:46:38,900 >> Permettez-moi aller de l'avant et maintenant fais. 1020 00:46:38,900 --> 00:46:42,890 Permettez-moi d'aller de l'avant et créer un nouveau fichier appelé conditions zéro. 1021 00:46:42,890 --> 00:46:44,890 Et je vais sauver un peu de temps pour l'amour de cours 1022 00:46:44,890 --> 00:46:48,260 et il suffit de coller dans ce un code de point de départ. 1023 00:46:48,260 --> 00:46:51,510 Et maintenant, je vais juste mettre quelque chose de nouveau dans le milieu. 1024 00:46:51,510 --> 00:46:55,889 Donc printf J'aimerais un entier s'il vous plaît. 1025 00:46:55,889 --> 00:46:58,180 Et tout ce code est disponible sur le site Web de la formation, 1026 00:46:58,180 --> 00:47:00,556 vous n'avez pas besoin de taper tout ça en classe si vous ne souhaitez pas. 1027 00:47:00,556 --> 00:47:02,638 int, et maintenant je vais utiliser, à la place de x et y, 1028 00:47:02,638 --> 00:47:05,270 Je vais utiliser n, qui est probablement le nom le plus commun 1029 00:47:05,270 --> 00:47:09,220 pour un nombre entier dans un programme informatique. 1030 00:47:09,220 --> 00:47:12,060 Et maintenant, je veux faire un peu de jugement ici. 1031 00:47:12,060 --> 00:47:15,460 Je vais voir si n est supérieur à 0, puis 1032 00:47:15,460 --> 00:47:23,670 Je vais dire oups printf--, printf-- vous avez choisi un nombre positif, 1033 00:47:23,670 --> 00:47:25,370 point d'exclamation barre oblique inverse n. 1034 00:47:25,370 --> 00:47:26,460 Fermez cela. 1035 00:47:26,460 --> 00:47:33,150 Sinon je vais imprimer printf vous avez choisi un nombre négatif. 1036 00:47:33,150 --> 00:47:35,377 >> Maintenant, avant de vous criez à moi, lançons ce programme. 1037 00:47:35,377 --> 00:47:36,210 Permettez-moi de descendre ici. 1038 00:47:36,210 --> 00:47:40,730 Et comment puis-je compiler un programme appelé conditions tiret 0? 1039 00:47:40,730 --> 00:47:42,300 Faire conditions tiret 0. 1040 00:47:42,300 --> 00:47:45,560 Genre d'un nom stupide, mais-- merde. 1041 00:47:45,560 --> 00:47:47,560 OK, bon moment d'enseignement. 1042 00:47:47,560 --> 00:47:48,410 Pourquoi cela ne pause? 1043 00:47:48,410 --> 00:47:51,360 1044 00:47:51,360 --> 00:47:54,710 >> Qu'est-ce que j'appelle accidentellement ce fichier? 1045 00:47:54,710 --> 00:47:56,876 Vous pouvez sorte de déduire partir de l'onglet ici. 1046 00:47:56,876 --> 00:47:58,750 Donc, il n'est pas mauvais que je fait cela, parce que ce 1047 00:47:58,750 --> 00:48:00,208 qui se passera peut-être à certains d'entre vous. 1048 00:48:00,208 --> 00:48:03,880 Donc j'ai accidentellement appelé mon Code source de l'état 0. 1049 00:48:03,880 --> 00:48:09,950 Mais mon code source par convention devrait être dans un fichier appelé condition 0 tiret c, 1050 00:48:09,950 --> 00:48:11,720 ou quelque point c. 1051 00:48:11,720 --> 00:48:12,610 >> Permettez-moi de résoudre ce problème. 1052 00:48:12,610 --> 00:48:16,880 Tout comme Microsoft Word, je peux aller jusqu'à sur Enregistrer sous et faire état 0 point c. 1053 00:48:16,880 --> 00:48:20,100 Maintenant, il suffit d'être bien rangé je suis aller de l'avant et retirez 1054 00:48:20,100 --> 00:48:23,020 état 0, ce qui était mon ancienne version. 1055 00:48:23,020 --> 00:48:26,550 Et maintenant, ne font condition 0, Entrée. 1056 00:48:26,550 --> 00:48:27,870 OK, semble bon. 1057 00:48:27,870 --> 00:48:29,510 >> Condition 0, Entrée. 1058 00:48:29,510 --> 00:48:33,530 J'aimerais un entier s'il vous plaît, 50, vous avez choisi un nombre positif. 1059 00:48:33,530 --> 00:48:35,390 Maintenant, que diriez-négative 50? 1060 00:48:35,390 --> 00:48:37,660 Vous avez choisi un nombre négatif. 1061 00:48:37,660 --> 00:48:39,605 Que diriez-vous maintenant, 0. 1062 00:48:39,605 --> 00:48:42,250 1063 00:48:42,250 --> 00:48:45,350 Sûr que 0 n'est pas négatif. 1064 00:48:45,350 --> 00:48:47,780 >> Donc, c'est une sorte de bug logique. 1065 00:48:47,780 --> 00:48:50,680 Comment puis-je résoudre ce problème? 1066 00:48:50,680 --> 00:48:57,260 Sinon, si n est inférieur à 0, le faire, d'autre nous pouvons avoir une branche à trois voies ici, 1067 00:48:57,260 --> 00:49:01,740 printf vous avez choisi 0. 1068 00:49:01,740 --> 00:49:06,150 Alors maintenant, si je ReRun ce programme, après la compilation, il 1069 00:49:06,150 --> 00:49:10,790 nouveau avec la marque, et maintenant relancer état 0, ce que je vais voir ici 1070 00:49:10,790 --> 00:49:14,570 est 0 me donne cette sortie. 1071 00:49:14,570 --> 00:49:16,280 Alors, où allons-nous avec ça? 1072 00:49:16,280 --> 00:49:18,930 >> Eh bien, il est très facile de perdre de vue de la forêt pour les arbres. 1073 00:49:18,930 --> 00:49:23,590 Et si nous permettent de conclure avec ce 2 et 1/2 minute vidéo 1074 00:49:23,590 --> 00:49:25,710 qui est finalement un peu d'une annonce de Google, 1075 00:49:25,710 --> 00:49:28,850 mais c'est vraiment preuve de ce même en utilisant ces bâtiments de base 1076 00:49:28,850 --> 00:49:33,020 blocs, nous pouvons finalement faire une fois nous avons un peu de programmation 1077 00:49:33,020 --> 00:49:34,463 savvy sous nos ceintures. 1078 00:49:34,463 --> 00:49:35,150 >> [MUSIQUE LECTURE] 1079 00:49:35,150 --> 00:49:38,370 1080 00:49:38,370 --> 00:49:40,540 >> Saroo BRIERLEY (voix off): C'était il ya 26 ans, 1081 00:49:40,540 --> 00:49:42,470 et j'étais sur le point de tourner 5. 1082 00:49:42,470 --> 00:49:45,465 Nous sommes arrivés à la gare et nous avons pris notre train ensemble. 1083 00:49:45,465 --> 00:49:48,010 Mon frère vient de dire je vais rester ici, et je reviendrai. 1084 00:49:48,010 --> 00:49:51,140 Et je pensais juste que, vous le savez bien, Je pourrais aussi bien aller juste pour dormir 1085 00:49:51,140 --> 00:49:52,690 et il va juste me réveiller. 1086 00:49:52,690 --> 00:49:55,145 Et quand je me suis réveillé le lendemain jour, l'ensemble de chariot 1087 00:49:55,145 --> 00:49:59,125 était vide sur un train fou, un fantôme train de me prendre, je ne sais pas où. 1088 00:49:59,125 --> 00:50:01,980 1089 00:50:01,980 --> 00:50:06,280 >> J'ai été adopté à l'Australie, pour une famille australienne. 1090 00:50:06,280 --> 00:50:09,710 Et maman avait décoré mon séjour avec la carte de l'Inde, 1091 00:50:09,710 --> 00:50:11,950 qui elle a mis à côté de mon lit. 1092 00:50:11,950 --> 00:50:15,830 Je me suis réveillé chaque matin voir cette carte, et donc 1093 00:50:15,830 --> 00:50:18,530 il sorte de garder les souvenirs vivants. 1094 00:50:18,530 --> 00:50:20,530 Les gens diraient, vous êtes essayer de trouver une aiguille 1095 00:50:20,530 --> 00:50:23,560 dans une botte de foin, Saroo vous ne le trouverez jamais. 1096 00:50:23,560 --> 00:50:28,540 >> J'aurais flashé des endroits que je l'habitude d'aller, les éclairs de ma famille 1097 00:50:28,540 --> 00:50:29,890 visages. 1098 00:50:29,890 --> 00:50:34,060 Il était l'image de ma mère, assis les jambes croisées, 1099 00:50:34,060 --> 00:50:35,740 il suffit de regarder son cri. 1100 00:50:35,740 --> 00:50:38,160 La vie est tellement difficile. 1101 00:50:38,160 --> 00:50:41,237 C'était mon trésor. 1102 00:50:41,237 --> 00:50:44,320 Et je cherchais à Google Map et réalisé il ya Google Earth ainsi. 1103 00:50:44,320 --> 00:50:48,140 Dans un monde où vous pouvez zoomer sur, J'ai commencé à avoir toutes ces pensées 1104 00:50:48,140 --> 00:50:51,500 et quelles sont les possibilités que cela pourrait faire pour moi. 1105 00:50:51,500 --> 00:50:54,890 Je me suis dit, vous le savez, vous avez eu tous ces souvenirs photographiques 1106 00:50:54,890 --> 00:50:58,590 et des sites où vous êtes, et vous savez ce que la ville ressemble. 1107 00:50:58,590 --> 00:51:03,060 Cela pourrait être une application qui vous pouvez utiliser pour retrouver votre chemin. 1108 00:51:03,060 --> 00:51:06,720 >> J'ai pensé, eh bien je vais mettre un point sur la gare de Calcutta, 1109 00:51:06,720 --> 00:51:10,890 et une ligne de rayon, vous savez, que vous devrait être à la recherche autour de cette zone. 1110 00:51:10,890 --> 00:51:13,750 J'ai en quelque sorte tombé ces voies ferrées. 1111 00:51:13,750 --> 00:51:18,160 Et j'ai commencé à suivre, et Je suis venu à une station de train qui 1112 00:51:18,160 --> 00:51:22,228 reflète la même image c'était dans mes souvenirs. 1113 00:51:22,228 --> 00:51:23,707 Tout en correspondance. 1114 00:51:23,707 --> 00:51:27,950 J'ai juste pensé que oui, je savoir où je vais. 1115 00:51:27,950 --> 00:51:30,116 Je vais juste laisser le carte que j'ai dans ma tête 1116 00:51:30,116 --> 00:51:33,080 me conduire et me ramener à ma ville natale. 1117 00:51:33,080 --> 00:51:36,420 >> Je suis venu à la porte de la maison où je suis né. 1118 00:51:36,420 --> 00:51:39,140 Et fait le tour de 15 mètres autour du coin, 1119 00:51:39,140 --> 00:51:42,980 il y avait trois dames debout à l'extérieur, à côté de l'autre. 1120 00:51:42,980 --> 00:51:47,830 Et celui du milieu s'avança, et J'ai juste pensé, c'est votre mère. 1121 00:51:47,830 --> 00:51:53,450 Elle s'avança, elle m'a embrassé, et nous étions là pendant environ cinq minutes. 1122 00:51:53,450 --> 00:51:56,530 1123 00:51:56,530 --> 00:51:59,000 >> Elle a attrapé ma main et elle m'a emmené à la maison 1124 00:51:59,000 --> 00:52:02,450 et a obtenu sur le téléphone, où elle sonné, ma sœur et mon frère 1125 00:52:02,450 --> 00:52:05,600 de dire que, vous le savez, ton frère a juste 1126 00:52:05,600 --> 00:52:09,340 tout d'un coup apparu comme un fantôme. 1127 00:52:09,340 --> 00:52:12,440 Et puis la famille était réunie à nouveau. 1128 00:52:12,440 --> 00:52:15,110 Tout va bien, J'ai aidé ma mère à, 1129 00:52:15,110 --> 00:52:17,110 elle n'a pas à être trimer. 1130 00:52:17,110 --> 00:52:19,555 Elle peut vivre le reste de sa vie en paix. 1131 00:52:19,555 --> 00:52:23,460 >> C'était une aiguille dans une botte de foin, mais l'aiguille était là. 1132 00:52:23,460 --> 00:52:24,400 Tout est là. 1133 00:52:24,400 --> 00:52:28,260 Tout ce que nous avons dans le monde est au robinet d'un bouton. 1134 00:52:28,260 --> 00:52:32,010 Mais vous devez avoir la volonté et la détermination à vouloir. 1135 00:52:32,010 --> 00:52:32,950 >> [MUSIQUE LECTURE] 1136 00:52:32,950 --> 00:52:36,420 1137 00:52:36,420 --> 00:52:38,170 DAVID Malan: Merveilleusement témoignage douce 1138 00:52:38,170 --> 00:52:40,540 à tout ce que vous pouvez maintenant faire avec la technologie. 1139 00:52:40,540 --> 00:52:43,390 Nous nous reverrons la semaine prochaine. 1140 00:52:43,390 --> 00:52:44,374