1 00:00:00,000 --> 00:00:11,375 2 00:00:11,375 --> 00:00:14,430 >> DAVID MALAN: C'est CS50, et cette est le début de la première semaine. 3 00:00:14,430 --> 00:00:17,930 Et ce que nous avons pensé faire est de tirer en arrière le rideau d'un dispositif que beaucoup 4 00:00:17,930 --> 00:00:20,970 vous avez probablement passé devant maintenant pendant des années, mais peut-être jamais tout à fait 5 00:00:20,970 --> 00:00:22,280 sait ce que c'est. 6 00:00:22,280 --> 00:00:26,000 Donc, ce dispositif va probablement chercher familier à la plupart d'entre vous, maintenant. 7 00:00:26,000 --> 00:00:32,972 >> [LECTURE VIDEO] 8 00:00:32,972 --> 00:00:36,150 >> -Un triomphe de mathématique et compétence en mécanique est cette grande nouvelle 9 00:00:36,150 --> 00:00:39,120 Calculateur automatique à Université Harvard. 10 00:00:39,120 --> 00:00:43,220 Problèmes complexes en mathématiques mis à travers la machine dans une forme codée sur 11 00:00:43,220 --> 00:00:47,840 bande sont résolus avec précision en une minute fraction du temps nécessaire pour que 12 00:00:47,840 --> 00:00:49,090 calcul humain. 13 00:00:49,090 --> 00:01:00,090 14 00:01:00,090 --> 00:01:04,080 >> Conçu pour accélérer toutes les formes de recherche mathématique et scientifique, 15 00:01:04,080 --> 00:01:07,860 le cerveau mécanique géant travailler pour les Etats-Unis 16 00:01:07,860 --> 00:01:09,180 Marine jusqu'à la fin de la guerre. 17 00:01:09,180 --> 00:01:18,180 18 00:01:18,180 --> 00:01:18,600 >> [FIN LECTURE VIDÉO] 19 00:01:18,600 --> 00:01:21,980 >> DAVID MALAN: C'est ce que vous voyez dans le Centre des sciences, qui est l'endroit où 20 00:01:21,980 --> 00:01:23,540 cette machine est maintenant logé. 21 00:01:23,540 --> 00:01:25,910 En fait, vous ne voyez partie. 22 00:01:25,910 --> 00:01:28,800 Seule une partie est actuellement exposé, et c'est un dispositif appelé 23 00:01:28,800 --> 00:01:31,970 le Mark I, et c'était essentiellement Un très gros calculatrice. 24 00:01:31,970 --> 00:01:36,250 Il a été remplacé par le Mark II, et c'est à partir de la Mark II qui nous fait 25 00:01:36,250 --> 00:01:39,210 obtenir un peu de lexique. 26 00:01:39,210 --> 00:01:43,780 >> Il s'agit du premier cas connu d' quelque chose que vous êtes sur le point de devenir tout 27 00:01:43,780 --> 00:01:45,860 trop familier avec sur la cours du semestre - 28 00:01:45,860 --> 00:01:48,460 à savoir, un bug. 29 00:01:48,460 --> 00:01:52,030 Alors, il s'est avéré qu'à un moment la marque II appareil ne fonctionnait pas 30 00:01:52,030 --> 00:01:55,930 correctement, et regardant de plus près, il y avait effectivement un bug - un papillon - 31 00:01:55,930 --> 00:01:56,910 qui moth - 32 00:01:56,910 --> 00:01:57,610 à l'intérieur. 33 00:01:57,610 --> 00:02:03,130 Et depuis, nous avons appelé erreurs dans les programmes que les bugs. 34 00:02:03,130 --> 00:02:05,330 Donc, plus sur cela pour venir. 35 00:02:05,330 --> 00:02:08,919 >> En parlant de vidéo, ainsi, si vous ont pas encore, sachez que CS50 est 36 00:02:08,919 --> 00:02:09,669 évidemment filmé. 37 00:02:09,669 --> 00:02:13,330 Les cours vont généralement tout de suite après classe dans une sorte de pré-version 38 00:02:13,330 --> 00:02:17,240 Format inédit, et puis un jour ou deux plus tard, nous avons mis en place une plus haute résolution 39 00:02:17,240 --> 00:02:18,490 et une version de meilleure qualité. 40 00:02:18,490 --> 00:02:21,800 Vous vous souvenez peut Vanessa, qui a eu l' fortune de jouer avec Google verre, 41 00:02:21,800 --> 00:02:23,540 qui je me suis souvenu d' facturer le temps. 42 00:02:23,540 --> 00:02:26,450 Donc, si vous voulez venir après la classe et jouent, ils devraient travailler aujourd'hui. 43 00:02:26,450 --> 00:02:30,816 Et si vous voulez voir ce que Vanessa vu l'autre jour, ce que vous verrez 44 00:02:30,816 --> 00:02:35,260 ici - permettez-moi de soulever le volume ici sur mon portable. 45 00:02:35,260 --> 00:02:35,690 >> [LECTURE VIDEO] 46 00:02:35,690 --> 00:02:37,620 >> -Alors, permettez-moi de file, ce n'est en place. 47 00:02:37,620 --> 00:02:38,070 Très bien. 48 00:02:38,070 --> 00:02:40,930 Donc toucher cela. 49 00:02:40,930 --> 00:02:41,720 Très bien. 50 00:02:41,720 --> 00:02:43,470 OK, Glass. 51 00:02:43,470 --> 00:02:44,720 Enregistrer une vidéo. 52 00:02:44,720 --> 00:02:47,240 53 00:02:47,240 --> 00:02:48,640 >> Très bien. 54 00:02:48,640 --> 00:02:50,446 Vanessa? 55 00:02:50,446 --> 00:02:50,870 >> [FIN LECTURE VIDÉO] 56 00:02:50,870 --> 00:02:53,485 >> DAVID MALAN: D'accord, donc la raison que cela n'a pas fonctionné pour la plupart d'entre vous à 57 00:02:53,485 --> 00:02:56,540 la fin de la classe parce que je me rendis à enregistrer une heure de cette 58 00:02:56,540 --> 00:02:59,505 images montrant moi-même après Je mets les lunettes vers le bas. 59 00:02:59,505 --> 00:03:04,010 Donc, aujourd'hui, je vais laisser les enlever, mais remercie vous à Vanessa d'avoir un tel 60 00:03:04,010 --> 00:03:05,420 Sport bon. 61 00:03:05,420 --> 00:03:08,330 >> Pendant ce temps, quelques annonces avant que nous allons de l'avant aujourd'hui. 62 00:03:08,330 --> 00:03:11,120 Donc un, CS50 a une tradition de faire ce que nous pouvons pour essayer de faire une très 63 00:03:11,120 --> 00:03:12,630 grande classe se sentent plus petits. 64 00:03:12,630 --> 00:03:16,640 Et à cette fin, plus tous les vendredis, nous nous réunissons dans un restaurant 65 00:03:16,640 --> 00:03:20,160 la place, Fire and Ice, avec 30 ou 40 de vos camarades de classe, moi-même, quelques-uns des 66 00:03:20,160 --> 00:03:22,520 le personnel enseignant, et nous venons d' un déjeuner très décontracté. 67 00:03:22,520 --> 00:03:26,280 Nous invitons souvent des amis de l'industrie, anciens élèves de la classe, les anciens élèves de l' 68 00:03:26,280 --> 00:03:30,340 collège, vraiment juste pour discuter chaque autre place, parler de la vie après 69 00:03:30,340 --> 00:03:32,260 université, la vie au collège, et analogues. 70 00:03:32,260 --> 00:03:35,570 Donc, si vous souhaitez participer à cette d'abord comme le déjeuner ce vendredi à 71 00:03:35,570 --> 00:03:38,640 13h15, rendez-vous que URL à un moment donné. 72 00:03:38,640 --> 00:03:40,830 >> Les places sont limitées, donc nous allons faire premier arrivé, premier servi. 73 00:03:40,830 --> 00:03:43,880 Mais nous ferons cette fois sur un thème récurrent base, donc ne vous inquiétez pas si vous n'avez pas 74 00:03:43,880 --> 00:03:45,800 en faire ce premier lot. 75 00:03:45,800 --> 00:03:48,960 >> Maintenant, en ce qui concerne les ressources fournies curricularly en cours, 76 00:03:48,960 --> 00:03:51,500 il ya tout un tas, et si vous ne l'avez pas tiré vers le haut le site Web du cours 77 00:03:51,500 --> 00:03:54,310 déjà, en particulier, dans des conférences, vous verrez que tout 78 00:03:54,310 --> 00:03:57,070 nous n'avons semaine dernière est là, à la fois en vidéo et en quelque sorte 79 00:03:57,070 --> 00:03:58,435 la forme électronique. 80 00:03:58,435 --> 00:04:01,210 Mais au-delà des vidéos, vous y trouverez qu'il ya maintenant texte intégral 81 00:04:01,210 --> 00:04:03,290 transcriptions, par exemple, de chaque conférence. 82 00:04:03,290 --> 00:04:08,260 >> Donc, si on fait revenir à l'écran ici avec Vanessa, et naviguez 83 00:04:08,260 --> 00:04:12,010 dans le coin inférieur de l'écran, vous vous rendrez compte que effectivement, non pas pour 84 00:04:12,010 --> 00:04:15,060 La conférence de vendredi, mais si nous revenons à Mercredi puisque cette fonction prend un 85 00:04:15,060 --> 00:04:17,870 quelques jours, vous verrez que vous pouvez effectivement tirer vers le haut, pour le meilleur ou pour 86 00:04:17,870 --> 00:04:22,260 Pire encore, chaque mot que j'ai ou un bénévole sur scène dit. 87 00:04:22,260 --> 00:04:23,270 Et plus que cela. 88 00:04:23,270 --> 00:04:25,700 Vous pouvez réellement chercher, vous le pouvez cliquez sur l'une de ces peines, sauter 89 00:04:25,700 --> 00:04:29,250 à ce point dans la vidéo, le tout vers et à la fin de la fabrication du matériau d'autant 90 00:04:29,250 --> 00:04:30,620 plus navigable. 91 00:04:30,620 --> 00:04:34,550 >> Mais si vous préférez ne pas le suivre dans de tels détails, vous trouverez, pour 92 00:04:34,550 --> 00:04:39,710 Ainsi, ce petit menu ici pour 1.5x vitesse, vitesse 2x, ou i f i déjà 93 00:04:39,710 --> 00:04:42,100 parler trop vite pour vous, la vitesse 0.75x. 94 00:04:42,100 --> 00:04:45,190 Donc réaliser tout cela est il disponible pour vous. 95 00:04:45,190 --> 00:04:49,120 >> Mais au-delà, pour des conférences, réaliser que nous faisons aussi ces ressources 96 00:04:49,120 --> 00:04:50,530 disponibles. 97 00:04:50,530 --> 00:04:55,240 Diapositives, exemple de code, tout ce que je faire sur scène ou à l'avance de la classe, 98 00:04:55,240 --> 00:04:58,160 nous y afficherons afin que vous puissiez jouer le long de la maison ou dans Sanders. 99 00:04:58,160 --> 00:05:01,280 Mais ce que nous avons pensé que nous faisons année pour la première fois est également 100 00:05:01,280 --> 00:05:04,240 vous fournissez des soluces de ces exemples. 101 00:05:04,240 --> 00:05:08,120 De plus en plus, comme je l'ai réfléchi sur l' valeur des conférences de CS50, j'ai commencé 102 00:05:08,120 --> 00:05:11,450 à la question à quel point il est utile pour vous les gars de s'asseoir là, pour moi de me 103 00:05:11,450 --> 00:05:15,020 ici, et pour moi de parler de vous, en particulier en tant que matière, l' 104 00:05:15,020 --> 00:05:17,020 exemples, deviennent plus complexes. 105 00:05:17,020 --> 00:05:20,790 Parce que toujours, après un certain nombre de minutes, quelqu'un zone out, et 106 00:05:20,790 --> 00:05:24,310 puis vous oubliez une idée clé de certains par exemple, et puis vous êtes essentiellement 107 00:05:24,310 --> 00:05:27,720 parti pour la partie restante de la classe, ce qui n'est pas le meilleur usage de 108 00:05:27,720 --> 00:05:31,330 votre temps, ou, en réalité, la nôtre collectivement comme une classe. 109 00:05:31,330 --> 00:05:33,920 >> Et donc ce que nous avons pensé que nous essayons de faire, en particulier pour une partie de la plus 110 00:05:33,920 --> 00:05:37,700 exemples complexes que je ne pourrais pas faire justice en classe, que l'on ne pourrait pas 111 00:05:37,700 --> 00:05:41,560 avoir du temps pour en classe, ou vous pourriez juste zone pendant, c'est que nous allons produire 112 00:05:41,560 --> 00:05:45,500 une série de procédures pas à pas de ces exemples de sorte que si vous allez à, pour 113 00:05:45,500 --> 00:05:51,410 Ainsi, la page vidéo de vendredi dernier ici en vertu exemples, vous verrez que 114 00:05:51,410 --> 00:05:54,050 pour le vendredi, il ya maintenant cette lien vers soluces. 115 00:05:54,050 --> 00:05:55,780 Et le format de ces va changer au fil du temps. 116 00:05:55,780 --> 00:05:58,080 Pour l'instant, nous sommes en utilisant un simple YouTube playlist. 117 00:05:58,080 --> 00:06:00,980 >> Mais ce que j'ai fait avec notre équipe de production par la suite été marcher à travers chaque 118 00:06:00,980 --> 00:06:04,480 et chacun de ces exemples, encore une fois, j'espère en soulignant de façon beaucoup plus 119 00:06:04,480 --> 00:06:07,550 clarté exactement ce que les plats à emporter pourrait être ou devrait être de chacun. 120 00:06:07,550 --> 00:06:10,560 Ainsi, vous trouverez, par exemple, de la dernière semaine, tous les exemples de grattage 121 00:06:10,560 --> 00:06:12,950 nous avons traversé sont fait linéairement de cette façon. 122 00:06:12,950 --> 00:06:15,840 Alors n'hésitez pas à participer ou non s'engager dans cette matière. 123 00:06:15,840 --> 00:06:19,140 Vraiment un thème de ce cours particulier c'est qu'il ya probablement plus 124 00:06:19,140 --> 00:06:21,870 dans la façon de ressources que vous pourrait absorber plus 125 00:06:21,870 --> 00:06:23,260 Au cours d'un semestre. 126 00:06:23,260 --> 00:06:23,980 >> Mais c'est délibéré. 127 00:06:23,980 --> 00:06:26,990 Il est destiné à être afin que vous aussi élèves peuvent choisir eux-mêmes 128 00:06:26,990 --> 00:06:28,070 en fonction de votre style d'apprentissage. 129 00:06:28,070 --> 00:06:29,790 Donc, si des conférences travailler pour vous, tant mieux. 130 00:06:29,790 --> 00:06:31,090 Si sections travaillent pour vous, tant mieux. 131 00:06:31,090 --> 00:06:32,930 Si soluces travaillent pour il vaut mieux, tant mieux. 132 00:06:32,930 --> 00:06:36,980 Ce sera vraiment à vous de choisir quelles ressources fonctionnent le mieux pour vous. 133 00:06:36,980 --> 00:06:40,380 >> Enfin, grâce à un ancien élève de l' Bien sûr, nous fournissons également une canonique 134 00:06:40,380 --> 00:06:41,890 ensemble de notes de découpe. 135 00:06:41,890 --> 00:06:46,270 Alors plutôt que de vous les gars têtes dans des conférences griffonner 136 00:06:46,270 --> 00:06:49,880 choses qui viennent en classe, nous, les personnel, vous donnera ce que nous 137 00:06:49,880 --> 00:06:53,410 sentir sont un ensemble canonique de notes vous libérer de cette distraction, de sorte que 138 00:06:53,410 --> 00:06:57,150 Si vous êtes ici et engagé, vous êtes véritablement engagé avec ce qui se passe, 139 00:06:57,150 --> 00:07:00,110 avec vos camarades de classe font sur scène, avec ce qui se passe sur l'écran, 140 00:07:00,110 --> 00:07:03,570 et non pas simplement écrire verbatim ce qui est arrivé à avoir été dit. 141 00:07:03,570 --> 00:07:06,730 Donc, réaliser l'ensemble de ces ressources sont à votre disposition. 142 00:07:06,730 --> 00:07:09,210 >> Coupe, en réponse à une FAQ, débutera ce mercredi. 143 00:07:09,210 --> 00:07:12,050 Nous attendons essentiellement qu'après plus autres classes sont faites pour que nous puissions 144 00:07:12,050 --> 00:07:14,420 minimiser le nombre de changements que nous devons faire. 145 00:07:14,420 --> 00:07:20,010 Mais venir ce week-end, à partir Dimanche sera une instance de temps de 146 00:07:20,010 --> 00:07:21,360 ce que nous appelons sections plus. 147 00:07:21,360 --> 00:07:23,990 Ceux-ci seront filmés pour ceux qui ne peuvent pas assister, et essentiellement, l' 148 00:07:23,990 --> 00:07:28,880 les têtes des cours va nous guider à travers quelques-uns de la partie C de la formation, 149 00:07:28,880 --> 00:07:32,330 vers une fin de set un problème, qui va être notre premier C en fonction 150 00:07:32,330 --> 00:07:33,140 problème posé. 151 00:07:33,140 --> 00:07:36,240 Et ce sera juste sections facultatives en prévision de ce qui va 152 00:07:36,240 --> 00:07:40,010 devenir sections récurrentes menées par plus de 50 ans de la cours 153 00:07:40,010 --> 00:07:41,600 enseignement boursiers hebdomadaire. 154 00:07:41,600 --> 00:07:45,130 Le dimanche ou lundi ou le mardi, nous avoir 90 sections minute dans une très 155 00:07:45,130 --> 00:07:48,020 sens traditionnel du terme, qui sera opportunités pour les mains sur et plus 156 00:07:48,020 --> 00:07:50,800 examen intime de l' le matériel de cours. 157 00:07:50,800 --> 00:07:53,820 >> Sans plus tarder, permettez-moi de vous présenter les têtes de cours, qui sont 158 00:07:53,820 --> 00:07:57,380 dans les coulisses avec moi, faisant tout arrive. 159 00:07:57,380 --> 00:08:02,670 Si ceux qui sont ici aujourd'hui pourrait se joindre à moi, Rob et Lauren et Joseph et Lucas, tous 160 00:08:02,670 --> 00:08:05,770 d'entre eux ont été avec l' cours depuis un certain temps. 161 00:08:05,770 --> 00:08:08,450 RJ est le troisième membre de notre équipe. 162 00:08:08,450 --> 00:08:11,720 Il ne pouvait pas être ici aujourd'hui, mais il m'a demandé de montrer une photo de lui. 163 00:08:11,720 --> 00:08:14,600 Je ne suis pas sûr qu'il voulait cette , mais là il est. 164 00:08:14,600 --> 00:08:18,350 >> Et permettez-moi de permettre à l'équipe de dire bonjour et se présenter afin que 165 00:08:18,350 --> 00:08:22,260 vous apprenez à les connaître ainsi que votre propre adjoint à l'enseignement ce terme. 166 00:08:22,260 --> 00:08:23,490 >> LAUREN CARVALHO: Salut. 167 00:08:23,490 --> 00:08:24,740 Mon nom est Lauren Carvalho. 168 00:08:24,740 --> 00:08:26,900 Je suis un tuteur résident dans Leverett House. 169 00:08:26,900 --> 00:08:31,120 Je suis aussi super excité d'être un TV de tête pour CS50 cette année. 170 00:08:31,120 --> 00:08:35,830 >> CS50 est une classe très difficile aussi bien comme une très grande classe, donc si vous 171 00:08:35,830 --> 00:08:38,780 avoir des inquiétudes, si vous avez envie vous êtes en retard, n'hésitez pas à 172 00:08:38,780 --> 00:08:43,840 tendre la main à chacun d'entre nous à heads@cs50.het, ou à moi, si vous voulez 173 00:08:43,840 --> 00:08:46,330 envie de jouer avec mon or retriever chiot. 174 00:08:46,330 --> 00:08:48,060 Voici Lucas. 175 00:08:48,060 --> 00:08:48,560 >> LUCAS FREITAS: Hey, les gars. 176 00:08:48,560 --> 00:08:49,330 Mon nom est Lucas Freitas. 177 00:08:49,330 --> 00:08:51,880 Je suis un junior [inaudible] 178 00:08:51,880 --> 00:08:53,630 l'informatique et la linguistique. 179 00:08:53,630 --> 00:08:58,030 Je suis en fait du Brésil, et j'ai aussi réaliser des études est-asiatiques. 180 00:08:58,030 --> 00:09:00,740 Donc, si vous avez des questions sur l'informatique ou de la langue ou 181 00:09:00,740 --> 00:09:01,870 rien, laissez-moi savoir. 182 00:09:01,870 --> 00:09:05,630 Ou CS50, en particulier. 183 00:09:05,630 --> 00:09:05,880 >> JOSEPH ONG: Salut. 184 00:09:05,880 --> 00:09:06,265 Je suis Joseph. 185 00:09:06,265 --> 00:09:11,360 Je suis un ordinateur principal l'étude la science dans Elliott House. 186 00:09:11,360 --> 00:09:13,500 Donc, nous allons voir. 187 00:09:13,500 --> 00:09:16,530 Vous me voyez autour de la réalisation un de ces énormes caméras. 188 00:09:16,530 --> 00:09:21,110 Je suis le photographe de personnel résident pour 50 aussi bien, et souvent les étudiants 189 00:09:21,110 --> 00:09:25,140 confondre parfois moi un touriste asiatique. 190 00:09:25,140 --> 00:09:29,220 >> Donc, si vous me voyez avec une caméra, ne fuyez pas. 191 00:09:29,220 --> 00:09:32,960 Juste sourire et ne soyez pas timide. 192 00:09:32,960 --> 00:09:34,870 Et j'espère que vous apprécierez 50. 193 00:09:34,870 --> 00:09:38,690 Je l'ai beaucoup apprécié lorsque je l'ai pris, et c'est pourquoi j'ai été TFing pour 194 00:09:38,690 --> 00:09:41,164 ces trois années. 195 00:09:41,164 --> 00:09:41,570 >> ROB BOWDEN: Salut. 196 00:09:41,570 --> 00:09:42,550 Je suis Rob. 197 00:09:42,550 --> 00:09:46,240 C'est ma quatrième semestre avec CS50. 198 00:09:46,240 --> 00:09:47,430 Je viens de terminer en mai. 199 00:09:47,430 --> 00:09:49,650 J'étais à Kirkland. 200 00:09:49,650 --> 00:09:53,670 Je suis excité pour ce semestre, et j'espère que vous l'êtes aussi. 201 00:09:53,670 --> 00:09:56,650 >> DAVID MALAN: Merci pour cette année têtes, et à RJ ainsi. 202 00:09:56,650 --> 00:09:59,910 203 00:09:59,910 --> 00:10:02,310 >> Alors quelques notes finales sur les ressources. 204 00:10:02,310 --> 00:10:04,090 Un, p réglée 0 est déjà en place. 205 00:10:04,090 --> 00:10:06,620 Celui-ci n'existe que dans la norme édition, qui est destiné à l' 206 00:10:06,620 --> 00:10:07,610 intégralité de la classe. 207 00:10:07,610 --> 00:10:10,940 Commençant par P set 1, il y aura éditions pirates de la plupart des séries de problèmes, 208 00:10:10,940 --> 00:10:14,660 qui, encore une fois, portera sur le matériel avec un peu plus d'un défi, tandis que 209 00:10:14,660 --> 00:10:17,400 encore toucher à certains les mêmes sujets. 210 00:10:17,400 --> 00:10:21,400 Ne jetez un oeil sur le site de cours pour cette spécification, pour p set 0. 211 00:10:21,400 --> 00:10:25,140 >> Les heures de bureau, aussi, vont commencer cette semaine, ce soir, demain, mercredi, 212 00:10:25,140 --> 00:10:27,670 et jeudi dans divers restaurants salles sur le campus. 213 00:10:27,670 --> 00:10:32,140 Découvrez cs50.net/ohs pour le bureau heures pour le cours, et de réaliser cette 214 00:10:32,140 --> 00:10:34,430 sera occasions très occasionnels, Certes, au début de l' 215 00:10:34,430 --> 00:10:37,190 semestre, à trouver avec votre ordinateur portable pendant la pause du cerveau. 216 00:10:37,190 --> 00:10:40,500 Apportez des amis et discuter le Les facteurs de transcription et des AR de cours avec une 217 00:10:40,500 --> 00:10:41,750 questions que vous pourriez avoir. 218 00:10:41,750 --> 00:10:45,320 >> Et je ne peux pas souligner assez, même pour rayures et problème set 0, il 219 00:10:45,320 --> 00:10:47,110 C'est vraiment pas de question stupide. 220 00:10:47,110 --> 00:10:51,200 Il n'est pas trop inconfortable étudiant poser des questions. 221 00:10:51,200 --> 00:10:53,940 S'il vous plaît n'hésitez pas à profiter de cette ressource. 222 00:10:53,940 --> 00:10:56,430 Il sera là cycliquement tout au long du semestre, 223 00:10:56,430 --> 00:10:57,840 Comme on CS50 Discuter. 224 00:10:57,840 --> 00:11:00,900 C'est discussion du cours en ligne Créer un forum à cette adresse là. 225 00:11:00,900 --> 00:11:04,490 >> Ce que nous allons aussi le faire au cours de conférences est également surveiller ce, grâce à la 226 00:11:04,490 --> 00:11:05,580 L'équipe pédagogique du cours. 227 00:11:05,580 --> 00:11:08,390 Et donc, si vous avez une question pendant conférence, parce que j'ai dit quelque chose 228 00:11:08,390 --> 00:11:11,690 mal ou pas du tout, par tous les moyens, demandez que en temps réel si vous avez votre 229 00:11:11,690 --> 00:11:15,700 ordinateur portable ou de téléphone sur le site, et nous ferons de notre mieux en temps quasi réel 230 00:11:15,700 --> 00:11:17,410 répondre à cela. 231 00:11:17,410 --> 00:11:21,500 >> Y at-il des questions sur CS 50? 232 00:11:21,500 --> 00:11:23,930 Puis une dernière note de la mine. 233 00:11:23,930 --> 00:11:25,530 Cette question de la SAT UNSAT. 234 00:11:25,530 --> 00:11:28,550 Comme vous finalisez vos cartes d'étude, si vous ont pas encore, sachez que le 235 00:11:28,550 --> 00:11:32,360 vision globale de la SAT UNSAT, disponible pour tous les étudiants, c'est vraiment 236 00:11:32,360 --> 00:11:36,350 pour aider à prendre le bord d'un cours comme ça, pour ainsi dire, de sorte que si vous 237 00:11:36,350 --> 00:11:40,510 vous trouverez tard dans la nuit, deux heures, trois heures, cogner vraiment votre tête contre 238 00:11:40,510 --> 00:11:43,960 le mur où vous savez que vous êtes 99% le chemin jusqu'à la fin, mais vous 239 00:11:43,960 --> 00:11:47,510 avoir tellement d'autres choses à faire, Je pense qu'une meilleure utilisation, souvent, de 240 00:11:47,510 --> 00:11:51,260 le temps des étudiants est de se déplacer en effet à ces autres choses afin que vous puissiez 241 00:11:51,260 --> 00:11:52,780 optimiser votre temps tout autour. 242 00:11:52,780 --> 00:11:56,950 Et SAT UNSAT est un mécanisme par lequel vous pouvez prendre le confort dans le fait 243 00:11:56,950 --> 00:12:00,530 que 99% de la façon dont il est encore sacrément bon. 244 00:12:00,530 --> 00:12:03,790 >> De même, aussi, si vous êtes dans l' Bien sûr sans fond avant ou 245 00:12:03,790 --> 00:12:07,960 pas autant que vous le fond penser vos camarades pourraient avoir, vrai 246 00:12:07,960 --> 00:12:13,210 ou faux, se rendre compte que c'est une possibilité de se salir les mains 247 00:12:13,210 --> 00:12:16,590 avec le cours, mettez vos orteils dans l' eau, pour ainsi dire, un peu comme je me 248 00:12:16,590 --> 00:12:18,500 a fait il ya quelques années avec succès / échec. 249 00:12:18,500 --> 00:12:21,850 Comme je l'ai dit la semaine dernière, a eu ce cours, comme d'autres, ne sont plus disponibles 250 00:12:21,850 --> 00:12:25,090 réussite / échec à l'époque, je n'aurais probablement pas avoir jamais mis les pieds dans 251 00:12:25,090 --> 00:12:28,310 la classe, même si je le faisais, cinq semaines plus tard, me changer les idées, qui vous 252 00:12:28,310 --> 00:12:32,400 peut aussi bien, et passer à ou de la lettre statut graduée. 253 00:12:32,400 --> 00:12:32,990 >> Très bien. 254 00:12:32,990 --> 00:12:37,380 Nous avons donc examiné ce genre de choses sur Vendredi, et nous sommes très rapidement aller 255 00:12:37,380 --> 00:12:39,890 la transition vers quelque chose qui ressemble plus énigmatique aujourd'hui. 256 00:12:39,890 --> 00:12:42,300 Mais c'est tout de même le même idée fondamentale. 257 00:12:42,300 --> 00:12:45,540 Quel était le terme général qui nous utilisé pour décrire une pièce de puzzle 258 00:12:45,540 --> 00:12:47,690 qui ressemblait à ça? 259 00:12:47,690 --> 00:12:48,510 >> Ainsi, une déclaration. 260 00:12:48,510 --> 00:12:50,020 Et vous pouvez appeler cela une certain nombre de choses. 261 00:12:50,020 --> 00:12:51,870 Mais nous allons l'appeler simplement une déclaration, et une déclaration 262 00:12:51,870 --> 00:12:53,200 raconte juste le programme - 263 00:12:53,200 --> 00:12:55,290 ou dans le cas de Scratch, le sprite - 264 00:12:55,290 --> 00:12:56,520 de faire quelque chose. 265 00:12:56,520 --> 00:12:58,430 Dites bonjour dans ce cas. 266 00:12:58,430 --> 00:13:01,450 >> Quelque chose comme cela, nous au lieu appelé quoi? 267 00:13:01,450 --> 00:13:03,560 Ouais, donc une expression booléenne. 268 00:13:03,560 --> 00:13:07,380 Une expression booléenne est juste quelque chose cela est vrai ou faux, et ainsi de Scratch 269 00:13:07,380 --> 00:13:10,530 les dessine avec cette forme, mais aussi avec un point d'interrogation pour transmettre l' 270 00:13:10,530 --> 00:13:14,510 idée que la réponse à cette question est vrai ou faux, oui ou non 271 00:13:14,510 --> 00:13:15,910 une, 1 ou 0. 272 00:13:15,910 --> 00:13:19,290 >> Et nous utilisons ces expressions booléennes à l'intérieur de constructions de ce genre, qui 273 00:13:19,290 --> 00:13:21,010 nous avons appelé quoi? 274 00:13:21,010 --> 00:13:22,460 Ainsi, l'état ou de la branche. 275 00:13:22,460 --> 00:13:25,600 Et la condition que vous voyez ici en Scratch est un espace réservé pour un peu 276 00:13:25,600 --> 00:13:28,260 pièce du puzzle de cette forme, le but de ce qui est pour que vous puissiez 277 00:13:28,260 --> 00:13:32,670 faites-le glisser et déposez-le sur le dessus et puis dicter au programme si ce Boolean 278 00:13:32,670 --> 00:13:36,410 expression est vraie, faire de cet ensemble de instructions, cet ensemble de déclarations, 279 00:13:36,410 --> 00:13:39,320 d'autre le faire cette autre série des instructions. 280 00:13:39,320 --> 00:13:41,270 >> Et rappeler que vous pouvez nid ces choses. 281 00:13:41,270 --> 00:13:44,170 Même s'il n'y a pas beaucoup de place visuellement dans ce morceau de puzzle, Scratch 282 00:13:44,170 --> 00:13:47,820 va grandir et rétrécir pour s'adapter à n'importe quel pièces de puzzle vous glissez-déposez dans 283 00:13:47,820 --> 00:13:51,410 là si vous pouvez réellement nid et cette une fourche à trois voies de la route. 284 00:13:51,410 --> 00:13:53,870 Si, d'autre if, else. 285 00:13:53,870 --> 00:13:58,100 Et vous pouvez même aller plus loin en imbrication supplémentaire et davantage si nécessaire. 286 00:13:58,100 --> 00:14:02,520 >> Alors, enfin, nous avons vu des constructions comme cela, autrement connu comme une boucle. 287 00:14:02,520 --> 00:14:05,690 Et c'est juste quelque chose qui ne quelque chose encore et encore et encore. 288 00:14:05,690 --> 00:14:09,250 Dans ce cas, il arrive à être un ensemble fini nombre de fois, mais nous avons également 289 00:14:09,250 --> 00:14:12,890 a vu un exemple où le nombre de temps est venu d'une variable, il 290 00:14:12,890 --> 00:14:13,690 pourrait changer. 291 00:14:13,690 --> 00:14:16,910 Et nous avons aussi vu un autre bloc tout appelé un bloc toujours que 292 00:14:16,910 --> 00:14:19,590 nous a permis de boucler infiniment long. 293 00:14:19,590 --> 00:14:23,300 >> Donc, une autre construction que Scratch 2.0 a - et ceux d'entre vous plus 294 00:14:23,300 --> 00:14:26,330 confortable avec un fond avant sont déjà bien familiarisé avec cette 295 00:14:26,330 --> 00:14:27,080 construire - 296 00:14:27,080 --> 00:14:29,910 ces choses que nous avons appelé quoi? 297 00:14:29,910 --> 00:14:32,540 Nous avons donc appelé ces fonctions, autrement connu sous le nom des procédures. 298 00:14:32,540 --> 00:14:35,030 Il ya une légère différence sémantique, mais nous les appelons juste des fonctions. 299 00:14:35,030 --> 00:14:39,950 >> Et une fonction, dans le cas de Scratch, est une pièce du puzzle personnalisé 300 00:14:39,950 --> 00:14:43,670 vous pouvez créer vous-même afin que vous ayez une nouvelle pièce du puzzle que, dans ce 301 00:14:43,670 --> 00:14:47,190 cas, serait appelée toux, qui figure parmi tous les autres 302 00:14:47,190 --> 00:14:48,730 pièces de puzzle disponibles dans Scratch. 303 00:14:48,730 --> 00:14:52,010 Même si MIT n'a pas inventé cette pièce de puzzle, vous avez fait. 304 00:14:52,010 --> 00:14:57,600 >> Ainsi, une fonction vous permet de créer de nouveaux comportement, donnez-lui un nom de fonction, et 305 00:14:57,600 --> 00:14:59,200 puis l'appeler, pour ainsi dire. 306 00:14:59,200 --> 00:15:04,690 Vraiment l'utiliser dans les programmes de nouveau et encore et encore sans avoir à attendre 307 00:15:04,690 --> 00:15:08,600 pour quelqu'un comme MIT sur la route de inventer de nouvelles fonctionnalités à partir de zéro. 308 00:15:08,600 --> 00:15:12,460 Vous pouvez construire vous-même ces casse-tête pièces vous-même, puis les réutiliser 309 00:15:12,460 --> 00:15:13,600 dans vos propres programmes. 310 00:15:13,600 --> 00:15:17,520 Et nous allons voir un exemple récurrent d'aujourd'hui et au-delà. 311 00:15:17,520 --> 00:15:20,960 >> Donc, aujourd'hui, nous passons maintenant à quelque chose de plus mystérieux. 312 00:15:20,960 --> 00:15:24,350 Mais à la fin de la journée, quelque chose plus puissant et plus expressif et plus 313 00:15:24,350 --> 00:15:28,110 représentant le chemin que nous serons sur tout au long d'une session numéro 314 00:15:28,110 --> 00:15:28,800 des langues - 315 00:15:28,800 --> 00:15:30,800 que de code ou le code source. 316 00:15:30,800 --> 00:15:34,720 Et le code source, il s'avère, n'est pas ce qu'est un ordinateur 317 00:15:34,720 --> 00:15:37,400 typiquement fonctionne réellement. 318 00:15:37,400 --> 00:15:39,860 Le code source ressemble à quelque chose comme ça. 319 00:15:39,860 --> 00:15:43,010 >> Il s'agit donc, encore une fois, peut-être le plus simple programme, nous pouvons écrire dans un 320 00:15:43,010 --> 00:15:46,670 langue appelée C. Nous allons commencer à taquiner cette part avant longtemps, et si 321 00:15:46,670 --> 00:15:49,260 ce vraiment ne ressemble grec vous dès maintenant, croyez-moi. 322 00:15:49,260 --> 00:15:54,040 En seulement une semaine ou deux de son temps, cette sera trop familier et en fait 323 00:15:54,040 --> 00:15:57,780 tout à fait représentatif de plus en plus exemples complexes avec laquelle vous serez 324 00:15:57,780 --> 00:15:59,870 également obtenir plus confortable. 325 00:15:59,870 --> 00:16:03,100 >> Mais vous ne pouvez pas exécuter cette sorte de code habituellement. 326 00:16:03,100 --> 00:16:06,750 Vous devez en faire quelque chose qui l'ordinateur se comprend. 327 00:16:06,750 --> 00:16:09,840 Et pour cela, nous avons besoin de quelque chose nous allons appeler un compilateur. 328 00:16:09,840 --> 00:16:13,910 Un compilateur est un programme qui prend code source, comme vous venez de le voir, comme 329 00:16:13,910 --> 00:16:17,680 l'entrée, et il produit des zéros et ceux que la production, autrement 330 00:16:17,680 --> 00:16:19,210 connue sous le nom de code objet. 331 00:16:19,210 --> 00:16:23,190 Et ce sont ces zéros et de uns que les pourrait ressembler tout à fait comme cela que 332 00:16:23,190 --> 00:16:26,310 finalement compris par votre Mac ou votre PC. 333 00:16:26,310 --> 00:16:30,050 >> Si vous avez déjà entendu parler de la commercialisation expression Intel Inside, qui vient 334 00:16:30,050 --> 00:16:32,800 signifie qu'une compagnie appelée Intel a fabriqué l' 335 00:16:32,800 --> 00:16:34,130 cerveau de votre ordinateur - 336 00:16:34,130 --> 00:16:37,270 autrement connu comme le CPU, Unité centrale de traitement - 337 00:16:37,270 --> 00:16:39,640 et c'est juste la chose qui comprend les modèles 338 00:16:39,640 --> 00:16:40,880 des zéros et des uns. 339 00:16:40,880 --> 00:16:46,330 Et en convertissant le code source en code objet à travers ce processus ici 340 00:16:46,330 --> 00:16:49,130 que nous ferons avec un couple de commandes en juste un peu, vous êtes 341 00:16:49,130 --> 00:16:53,070 la création de modèles de zéros et de uns que les employés d'Intel ont 342 00:16:53,070 --> 00:16:56,000 décidé de représenter certaines déclarations. 343 00:16:56,000 --> 00:16:58,810 >> Maintenant, je ne sais pas très bien qui est ce qui vient en regardant 344 00:16:58,810 --> 00:16:59,890 ces zéros et de uns. 345 00:16:59,890 --> 00:17:01,420 La plupart des gens ces jours-ci n'en ont pas. 346 00:17:01,420 --> 00:17:04,900 Mais quelque part là-bas est un modèle de zéros et de uns qui représente l' 347 00:17:04,900 --> 00:17:06,349 déclaration impression. 348 00:17:06,349 --> 00:17:10,460 Quelque part dans il pourrait y avoir un autre un ensemble de zéros et de uns qui 349 00:17:10,460 --> 00:17:16,940 représenter la notion d'éternité ou répéter 10 fois ou même meow, si c'est 350 00:17:16,940 --> 00:17:20,000 en fait un programme qui peut inclure certains sons. 351 00:17:20,000 --> 00:17:24,390 >> Donc en bref, les humains ont tout simplement décidé, un peu comme nous l'avons fait pour ASCII - 352 00:17:24,390 --> 00:17:27,480 pour les lettres de l'alphabet de la semaine dernière - les humains ont décidé que, même 353 00:17:27,480 --> 00:17:32,200 des modèles plus complexes de zéros et de uns représenter des comportements plus complexes 354 00:17:32,200 --> 00:17:35,650 comme l'impression ou de dire ou miauler. 355 00:17:35,650 --> 00:17:38,640 Et pour aujourd'hui, et largement en avant au cours du semestre, nous allons prendre pour 356 00:17:38,640 --> 00:17:41,820 acquis que quelqu'un a compris comment faire la cartographie. 357 00:17:41,820 --> 00:17:45,560 Mais nous, en accord avec cette idée d' stratification sur le dessus du travail des personnes 358 00:17:45,560 --> 00:17:49,340 qui sont venus avant nous, aura pour acquis le fait que cela se passe 359 00:17:49,340 --> 00:17:50,300 sous la hotte. 360 00:17:50,300 --> 00:17:53,840 Mais nous sommes beaucoup plus intéressés par construire des choses qui sont plus 361 00:17:53,840 --> 00:17:55,880 intéressant sur le dessus de tout cela. 362 00:17:55,880 --> 00:17:58,900 >> Et en effet, le premier programme nous a écrit dans Scratch était ce super simple 363 00:17:58,900 --> 00:18:00,600 un, Bonjour tout le monde. 364 00:18:00,600 --> 00:18:05,100 Et vous pouvez penser à cela comme étant l' programme principal qui régit Scratch de 365 00:18:05,100 --> 00:18:07,280 comportement de vendredi dernier. 366 00:18:07,280 --> 00:18:11,510 >> Aujourd'hui, nous allons commencer à traduire Grattez les pièces du puzzle en 367 00:18:11,510 --> 00:18:16,040 code source dans ce langage appelé C de sorte que ce qui ressemblait à ceci sur 368 00:18:16,040 --> 00:18:20,230 Vendredi, à partir d'aujourd'hui en avant, est va maintenant ressembler à ceci. 369 00:18:20,230 --> 00:18:21,860 Certes plus énigmatique. 370 00:18:21,860 --> 00:18:25,010 Il est assez distrayant et sorte de l'esprit engourdissement de voir tous les devis 371 00:18:25,010 --> 00:18:27,760 et les points-virgules et les parenthèses et ainsi de suite. 372 00:18:27,760 --> 00:18:32,350 >> Mais si vous commencez à ignorer tout ce que vous ne comprennent pas, et vraiment regarder 373 00:18:32,350 --> 00:18:35,960 à l'essence du texte blanc sur l' écran, sûrement que vous voyez, comme je le fais, 374 00:18:35,960 --> 00:18:40,360 "Bonjour tout le monde." Qui s'aligne avec l' déclaration violet en haut, et il s'avère 375 00:18:40,360 --> 00:18:44,790 que le mot-clé va s'aligner avec conceptuellement lorsque verte 376 00:18:44,790 --> 00:18:46,350 drapeau cliqué. 377 00:18:46,350 --> 00:18:49,820 >> Donc, en d'autres termes, alors que dans Scratch, nous mettons en œuvre ce programme Bonjour tout le monde 378 00:18:49,820 --> 00:18:53,360 avec ces deux pièces de puzzle, en C, nous allons mettre en œuvre avec ces 379 00:18:53,360 --> 00:18:55,510 quatre lignes un peu énigmatiques. 380 00:18:55,510 --> 00:18:58,130 Mais comme nous plonger plus profondément dans cela, vous aurez voir que chacun de ceux 381 00:18:58,130 --> 00:19:02,730 caractères blancs sur l'écran fait a une signification importante, 382 00:19:02,730 --> 00:19:05,880 et la plupart de nos programmes vont regarder structurellement tout à fait le même. 383 00:19:05,880 --> 00:19:08,980 Donc, une déclaration, pour être clair, ce qui ressemblait à "dire bonjour monde" sur 384 00:19:08,980 --> 00:19:12,020 Vendredi va commencer à regarder aimer ce lundi. 385 00:19:12,020 --> 00:19:15,250 printf ("Bonjour le monde"). 386 00:19:15,250 --> 00:19:17,700 Et il ya certains barre oblique inverse bizarre n, il ya entre parenthèses, il ya 387 00:19:17,700 --> 00:19:18,490 virgules. 388 00:19:18,490 --> 00:19:21,950 >> Mais à la fin de la journée, la clé emporter aujourd'hui, c'est que tout ce que nous faisons 389 00:19:21,950 --> 00:19:25,710 est la traduction choses de la photo former à la forme de texte. 390 00:19:25,710 --> 00:19:28,820 Ainsi, une boucle qui ressemblait à ceci la semaine dernière va maintenant examiner 391 00:19:28,820 --> 00:19:30,140 quelque chose comme ça. 392 00:19:30,140 --> 00:19:33,020 >> Et permettez-moi de rejeter, tout comme dans Scratch, il ya différentes façons d' 393 00:19:33,020 --> 00:19:34,110 atteindre le même objectif. 394 00:19:34,110 --> 00:19:38,860 Même en C. Je ne vous montrant le seul façon de faire les choses, mais une façon de 395 00:19:38,860 --> 00:19:43,230 traduire ça pour toujours bloquer à une boucle en C. 396 00:19:43,230 --> 00:19:44,980 >> Celui-là, répétez 10 fois. 397 00:19:44,980 --> 00:19:47,580 Celui-ci vraiment une sorte de courbe la l'esprit la première fois que vous le voyez. 398 00:19:47,580 --> 00:19:49,860 Mais pour mettre en œuvre que désormais, nous allons utiliser une 399 00:19:49,860 --> 00:19:51,990 pour la boucle, pour ainsi dire. 400 00:19:51,990 --> 00:19:56,150 Et il est clair qu'il ya une syntaxe qui est un peu complexe là-bas avec moi et 401 00:19:56,150 --> 00:19:59,740 égal et 0, mais une fois que nous plongeons dans ce Dorénavant, vous allez juste 402 00:19:59,740 --> 00:20:04,260 de voir que qui est tout simplement en faisant quelques arithmétique de base pour nous de 0 403 00:20:04,260 --> 00:20:07,720 sur un maximum de 9 ou 10 dans ce cas. 404 00:20:07,720 --> 00:20:11,570 >> Enfin, avec des variables, vous vous en souviendrez une variable qui est une pièce de stockage. 405 00:20:11,570 --> 00:20:14,290 Eh bien, ce que nous avions sur la gauche, il ya la dernière semaine va se pencher un peu 406 00:20:14,290 --> 00:20:15,920 quelque chose comme ça cette semaine. 407 00:20:15,920 --> 00:20:17,870 Mais encore une fois, plus sur cela pour venir. 408 00:20:17,870 --> 00:20:20,700 >> Nous avons eu des expressions booléennes, qui la semaine dernière, ressemblait à cela. 409 00:20:20,700 --> 00:20:23,370 Cette semaine avant, ils vont commencer à regarder un peu comme ça. 410 00:20:23,370 --> 00:20:24,890 >> Et celui-ci est en fait un peu rassurant. 411 00:20:24,890 --> 00:20:27,680 En fait, c'est presque aussi simple comme les blocs verts. 412 00:20:27,680 --> 00:20:31,115 Mais ici nous avons, à nouveau, une nouvelle syntaxe avec une esperluette, mais vous pouvez 413 00:20:31,115 --> 00:20:35,390 peut-être deviner alors que dans Scratch, vous dire A-N-D, apparemment en C, nous sommes 414 00:20:35,390 --> 00:20:37,070 allez dire esperluette esperluette. 415 00:20:37,070 --> 00:20:39,650 Mais tout cela va devenir naturel avant longtemps. 416 00:20:39,650 --> 00:20:40,680 >> Conditions. 417 00:20:40,680 --> 00:20:42,610 La semaine dernière, il semblait ceci sur la gauche. 418 00:20:42,610 --> 00:20:44,800 Cette semaine, sur la droite, il est va ressembler à ça. 419 00:20:44,800 --> 00:20:48,560 Mais encore une fois, les plats à emporter clé ici est que comme vous voyez des choses comme ça sur 420 00:20:48,560 --> 00:20:51,950 à droite, et en particulier si elle est inférieure confortable, c'est un peu plus de votre 421 00:20:51,950 --> 00:20:54,950 tête, vous obtenez un peu dépassés qui Je n'ai vraiment aucune idée de comment je pourrais 422 00:20:54,950 --> 00:20:58,420 peut-être venir avec qui à partir de zéro - 423 00:20:58,420 --> 00:20:59,500 sans jeu de mots - 424 00:20:59,500 --> 00:21:05,300 juste se rendre compte que c'est vraiment la même idée qui se sentait probablement beaucoup plus 425 00:21:05,300 --> 00:21:06,760 naturel de la semaine précédente. 426 00:21:06,760 --> 00:21:10,960 Et même si vous n'avez pas plongé dans problème posé 0, si j'ose dire, vous trouverez 427 00:21:10,960 --> 00:21:13,790 que les pièces du puzzle sont assez intuitif, ou au moins 428 00:21:13,790 --> 00:21:16,050 devenu si au fil du temps. 429 00:21:16,050 --> 00:21:16,990 >> Donc, nous allons plonger po 430 00:21:16,990 --> 00:21:20,760 Allons nous salir les mains avec ici ce premier programme simple. 431 00:21:20,760 --> 00:21:22,410 Et simple est, bien sûr, relative. 432 00:21:22,410 --> 00:21:25,190 Pour ce faire, je vais changer d'écran à ce dispositif, j'ai appelé le 433 00:21:25,190 --> 00:21:26,150 CS50 appareil. 434 00:21:26,150 --> 00:21:29,700 L'appareil CS50 est un morceau de logiciel qui s'exécute à l'intérieur d'un 435 00:21:29,700 --> 00:21:33,920 fenêtre sur mon Mac, et vous pouvez également exécuter dans une fenêtre à l'intérieur de votre PC, que 436 00:21:33,920 --> 00:21:38,720 me permet d'avoir exactement le même l'environnement de l'ordinateur comme chaque TF, en tant que 437 00:21:38,720 --> 00:21:40,940 chaque CA, que chaque élève dans la classe. 438 00:21:40,940 --> 00:21:44,590 Parce que l'appareil CS50 est littéralement un autre système d'exploitation 439 00:21:44,590 --> 00:21:45,410 appelé Linux - 440 00:21:45,410 --> 00:21:47,160 spécifiquement Fedora Linux - 441 00:21:47,160 --> 00:21:51,320 et nous, le personnel, avons configuré le processus d'installation de ce 442 00:21:51,320 --> 00:21:55,200 le système d'exploitation de telle sorte que l'un, il ya un petit logo dans le CS50 443 00:21:55,200 --> 00:21:59,240 milieu, deux, il ya un menu personnalisé à le fond, et trois, pédagogiquement, 444 00:21:59,240 --> 00:22:02,570 Nous avons simplifié l'interface utilisateur comme autant que possible, de sorte que lorsque vous 445 00:22:02,570 --> 00:22:05,540 d'abord démarrer cette chose sur votre propre Mac ou PC, vous avez les mêmes 446 00:22:05,540 --> 00:22:08,280 environnement comme tout le monde, et vous avoir tous les outils dont vous avez besoin 447 00:22:08,280 --> 00:22:11,390 pour le cours sans avoir à déterminer comment installer chacun et 448 00:22:11,390 --> 00:22:13,280 chaque outil individuellement. 449 00:22:13,280 --> 00:22:15,840 >> Donc, cela semble relativement comme Mac OS ou Windows. 450 00:22:15,840 --> 00:22:18,760 Dans le coin inférieur gauche, vous avoir essentiellement un menu Démarrer de 451 00:22:18,760 --> 00:22:20,280 sortes, ou un menu Pomme. 452 00:22:20,280 --> 00:22:23,700 Et puis vous avez ce que nous suspect être vos trois icônes les plus courantes. 453 00:22:23,700 --> 00:22:24,460 L'un est Chrome. 454 00:22:24,460 --> 00:22:26,460 Il ya un navigateur à l'intérieur de l'appareil. 455 00:22:26,460 --> 00:22:29,970 >> Deux est un programme appelé gedit, qui nous avons vu brièvement la semaine dernière, ce qui est 456 00:22:29,970 --> 00:22:31,310 juste un éditeur graphique. 457 00:22:31,310 --> 00:22:35,350 Et trois est un programme de terminal, qui est une fenêtre en noir et blanc de 458 00:22:35,350 --> 00:22:39,860 antan qui nous permet de taper plus commandes ésotériques mais plus puissant au 459 00:22:39,860 --> 00:22:40,660 notre clavier. 460 00:22:40,660 --> 00:22:44,220 Donc, je vais aller de l'avant et cliquez sur gedit, et soyez assurés que problème 461 00:22:44,220 --> 00:22:48,520 série 1, qui sera publié le vendredi, sera vous guidera à travers toutes ces étapes. 462 00:22:48,520 --> 00:22:51,730 >> Remarquez que j'ai une assez simple interface utilisateur en trois parties. 463 00:22:51,730 --> 00:22:54,990 Sur la gauche, j'ai un grand vide fenêtre appelée code source. 464 00:22:54,990 --> 00:22:58,930 C'est là que je vais voir un résumé de tout code que j'écris. 465 00:22:58,930 --> 00:23:01,990 Sur le côté droit, j'ai une grande onglet, actuellement non enregistrées, et c'est 466 00:23:01,990 --> 00:23:03,510 où mon code va aller. 467 00:23:03,510 --> 00:23:06,780 Et sur le fond, j'ai intégré une fenêtre de terminal, un noir et blanc 468 00:23:06,780 --> 00:23:12,060 inciter à laquelle je peux taper des commandes à compiler et exécuter mes programmes - qui 469 00:23:12,060 --> 00:23:14,110 est, à fabriquer et à lancer mes programmes. 470 00:23:14,110 --> 00:23:15,170 >> Commençons donc simple. 471 00:23:15,170 --> 00:23:17,700 Laisse-moi aller jusqu'à Fichier, Enregistrer. 472 00:23:17,700 --> 00:23:20,530 Je vais aller de l'avant et aller dans jharvard. 473 00:23:20,530 --> 00:23:24,320 Donc l'appareil, indépendamment de ce que votre nom est, appartient à un gars nommé 474 00:23:24,320 --> 00:23:28,250 John Harvard, qui a une maison jharvard répertoire à l'intérieur de laquelle l'ensemble de votre 475 00:23:28,250 --> 00:23:29,100 fichiers iront. 476 00:23:29,100 --> 00:23:31,640 C'est votre propre copie de son compte, si nous ne sommes pas tout partage 477 00:23:31,640 --> 00:23:33,530 le même disque dur. 478 00:23:33,530 --> 00:23:35,580 Vous avez juste l'illusion du propre de John Harvard. 479 00:23:35,580 --> 00:23:38,350 >> Par avance, je réellement installé Dropbox. 480 00:23:38,350 --> 00:23:42,600 L'appareil est livré déjà préparées avec Dropbox afin que si quelque chose va mal 481 00:23:42,600 --> 00:23:45,950 au cours du semestre, si vous avez configuré votre appareil avec un libre 482 00:23:45,950 --> 00:23:48,950 Compte Dropbox, tous vos fichiers seront être automatiquement sauvegardées si vous 483 00:23:48,950 --> 00:23:50,430 peut très facilement récupérer. 484 00:23:50,430 --> 00:23:53,980 Et je vais aller dans ma Dropbox répertoire, et il va déjà 485 00:23:53,980 --> 00:23:55,530 être un couple d'autres choses là-bas. 486 00:23:55,530 --> 00:24:02,090 >> Mais je vais aller de l'avant et allez dans Fichier, Enregistrer. 487 00:24:02,090 --> 00:24:05,930 Je vais aller dans jharvard, Dropbox, et ici, je vais 488 00:24:05,930 --> 00:24:10,590 donner mon programme un super simple nom, hello.c, puis enregistrez. 489 00:24:10,590 --> 00:24:11,810 Donc, j'ai la même interface maintenant. 490 00:24:11,810 --> 00:24:14,190 La seule chose qui a changé est l'onglet en haut. 491 00:24:14,190 --> 00:24:17,170 Je suis donc très rapidement aller à recréer que le programme de l' 492 00:24:17,170 --> 00:24:19,060 glisse il ya un instant. 493 00:24:19,060 --> 00:24:25,690 >> Donc en main (void), puis printf, "Bonjour, monde," un peu cryptique 494 00:24:25,690 --> 00:24:29,920 barre oblique inverse n, près citation, fermez parenthèse, point-virgule, et 495 00:24:29,920 --> 00:24:32,030 puis Ctrl S pour enregistrer. 496 00:24:32,030 --> 00:24:34,860 Et remarquez en passant ce qui vient paru ici en haut à gauche. 497 00:24:34,860 --> 00:24:37,490 Et ce n'est pas utile aujourd'hui, mais seront utiles au fil du temps. 498 00:24:37,490 --> 00:24:40,160 Vous venez de voir, encore une fois, un résumé des le code que vous avez écrit. 499 00:24:40,160 --> 00:24:43,320 Et parce que j'ai écrit quelque chose qui s'appelle principale, c'est pourquoi le mot principal a sauté 500 00:24:43,320 --> 00:24:44,030 jusqu'à là-bas. 501 00:24:44,030 --> 00:24:46,610 Mais pour la plupart, nous n'ont pas besoin de cela aujourd'hui. 502 00:24:46,610 --> 00:24:51,130 >> Très bien, alors je prétends que c'est mon premier programme écrit dans une programmation 503 00:24:51,130 --> 00:24:54,620 langue appelée C. Nous savons à partir du vendredi que ce que cette chose va faire 504 00:24:54,620 --> 00:24:58,450 très uninterestingly quand je terme, il est juste afficher - 505 00:24:58,450 --> 00:25:01,270 en d'autres termes, imprimer, comme un ordinateur scientifique dirait - 506 00:25:01,270 --> 00:25:03,310 Bonjour tout le monde sur l'écran. 507 00:25:03,310 --> 00:25:06,800 Donc, pour ce faire, vous remarquerez que je n'ai de descendre ici pour mon terminal 508 00:25:06,800 --> 00:25:09,250 fenêtre, et maintenant je dois un clignotement rapide. 509 00:25:09,250 --> 00:25:15,480 Mais c'est maintenant une version clavier de mon répertoire Harvard John. 510 00:25:15,480 --> 00:25:19,610 C'est une façon de clavier dans laquelle pour naviguer dans mon disque dur. 511 00:25:19,610 --> 00:25:25,380 >> Donc, je ne peux pas vraiment taper comme je l'ai fait la semaine dernière font bonjour, parce que c'est 512 00:25:25,380 --> 00:25:27,230 allez dire pas de règle pour fabriquer la cible - 513 00:25:27,230 --> 00:25:27,950 quelque chose qui ne va pas. 514 00:25:27,950 --> 00:25:31,690 Je ne sais pas trop quoi ce message moyens, mais c'est parce que par défaut, 515 00:25:31,690 --> 00:25:35,350 lorsque cette fenêtre noir et blanc est ouvert, je suis à l'intérieur de John Harvard 516 00:25:35,350 --> 00:25:36,160 répertoire personnel. 517 00:25:36,160 --> 00:25:39,180 Mais où ai-je sauve ce programme? 518 00:25:39,180 --> 00:25:40,440 Dans mon dossier Dropbox. 519 00:25:40,440 --> 00:25:43,110 >> Maintenant, nous avons tous grandi avec ordinateurs sur lesquels vous suffit de double cliquer 520 00:25:43,110 --> 00:25:45,610 sur l'icône d'un dossier, il ouvre, et le tour est joué. 521 00:25:45,610 --> 00:25:48,280 C'est là que le fichier appelé hello.c serait. 522 00:25:48,280 --> 00:25:49,470 Donc, en fait, nous allons le faire. 523 00:25:49,470 --> 00:25:51,610 >> Permettez-moi d'aller de l'avant et de minimiser gedit comme vous le feriez sur 524 00:25:51,610 --> 00:25:52,990 Windows ou Mac OS. 525 00:25:52,990 --> 00:25:56,160 Laissez-moi aller dans la maison dossier en haut à gauche. 526 00:25:56,160 --> 00:25:57,620 Je vois ici un tas de dossiers. 527 00:25:57,620 --> 00:25:58,870 Voici mon dossier Dropbox. 528 00:25:58,870 --> 00:26:00,770 Les coches signifie qu'il a été synchronisé. 529 00:26:00,770 --> 00:26:04,040 Et il ya quelques petites choses ici, mais il faut noter que hello.c est 530 00:26:04,040 --> 00:26:04,960 en effet là. 531 00:26:04,960 --> 00:26:08,050 >> Et sous Mac OS ou Windows, normalement, Je double-clique qui, elle ouvre en 532 00:26:08,050 --> 00:26:10,220 n'importe quel programme, et je suis prêt à continuer. 533 00:26:10,220 --> 00:26:13,370 Mais maintenant, au moins à partir d'aujourd'hui, nous besoin de prendre un pas en arrière juste pour 534 00:26:13,370 --> 00:26:16,960 vous donner quelques outils de base pour votre kit d'outil pour faire plus 535 00:26:16,960 --> 00:26:18,980 des choses puissantes avant longtemps. 536 00:26:18,980 --> 00:26:22,280 >> Donc, à cette invite, je dois faire le équivalent du double cliquant sur l' 537 00:26:22,280 --> 00:26:23,560 Dossier Dropbox. 538 00:26:23,560 --> 00:26:29,900 Et pour ce faire, je vais taper CD pour change de répertoire, Dropbox, entrez. 539 00:26:29,900 --> 00:26:36,100 Et maintenant, notez les parenthèses à mon soi-disant prompt dit maintenant que je suis en 540 00:26:36,100 --> 00:26:38,470 tilde, le petit squiggly symbole en haut à gauche de 541 00:26:38,470 --> 00:26:40,860 la plupart des claviers, / Dropbox. 542 00:26:40,860 --> 00:26:45,200 C'est juste abbréviation de dit l'homme, vous êtes maintenant à l'intérieur de 543 00:26:45,200 --> 00:26:48,650 le dossier Dropbox, comme si vous avez double-cliqué dessus. 544 00:26:48,650 --> 00:26:54,610 >> Alors maintenant, si je vais de l'avant et taper make bonjour, entrez, je vois une très cryptique 545 00:26:54,610 --> 00:26:57,450 commande, mais n'est pas un message d'erreur, il semble, puis 546 00:26:57,450 --> 00:26:59,020 autre clignote rapidement. 547 00:26:59,020 --> 00:27:04,470 Et si vous vous souvenez, jamais si rapidement le vendredi, nous avons fait cela. . / Bonjour. 548 00:27:04,470 --> 00:27:10,000 >> Ce que vous allez voir est le résultat de mon exécution de ce programme, ou, sous Mac 549 00:27:10,000 --> 00:27:14,310 OS et PC termes, si j'avais normalement doubler cliquez sur un programme -. une application 550 00:27:14,310 --> 00:27:17,620 programme ou un fichier. exe, il ouvre une fenêtre et des pistes. 551 00:27:17,620 --> 00:27:21,920 Tapant. / Bonjour, c'est comme deux cliquer sur un programme à exécuter, mais 552 00:27:21,920 --> 00:27:23,280 utiliser mon clavier. 553 00:27:23,280 --> 00:27:25,410 >> Entrée, bonjour tout le monde. 554 00:27:25,410 --> 00:27:26,150 Et c'est tout. 555 00:27:26,150 --> 00:27:29,150 Donc, nous allons taquiner cette part de sorte qu'il ne se sent pas trop comme le grec. 556 00:27:29,150 --> 00:27:31,370 >> So. / Veut dire quoi? 557 00:27:31,370 --> 00:27:34,120 Quiconque a déjà navigué un clavier environnement comme celui-ci, ce n'est point 558 00:27:34,120 --> 00:27:36,690 référence? 559 00:27:36,690 --> 00:27:37,800 Le répertoire courant. 560 00:27:37,800 --> 00:27:41,320 >> Ainsi, le répertoire courant est juste synonyme d'un dossier. 561 00:27:41,320 --> 00:27:46,230 Donc, en disant dot slash, je dis, chercher un programme appelé bonjour dans la 562 00:27:46,230 --> 00:27:47,250 répertoire courant - 563 00:27:47,250 --> 00:27:48,540 dans le dossier actuel. 564 00:27:48,540 --> 00:27:50,480 En d'autres termes, mon dossier Dropbox. 565 00:27:50,480 --> 00:27:54,220 Et c'est pourquoi en appuyant sur Entrée après fonctionne réellement ce programme. 566 00:27:54,220 --> 00:27:58,790 >> Si I LS Maintenant, tapez, remarquez que je vois tout dans mon dossier Dropbox. 567 00:27:58,790 --> 00:28:02,000 Premiers contacts.pdf, qui Dropbox vous donne gratuitement, mes photos 568 00:28:02,000 --> 00:28:05,450 répertoire, un répertoire public non enregistré Documents 1 que j'ai fait par erreur une 569 00:28:05,450 --> 00:28:09,730 il ya moment, machin.c, que j'ai fait plus tôt aujourd'hui, puis deux lignes - 570 00:28:09,730 --> 00:28:12,090 hello.c et bonjour. 571 00:28:12,090 --> 00:28:17,280 >> Hello.c est le programme que j'ai écrit avec gedit, et ce qui est en vert bonjour? 572 00:28:17,280 --> 00:28:20,920 573 00:28:20,920 --> 00:28:22,940 Le bonjour en vert est l'exécutable. 574 00:28:22,940 --> 00:28:27,020 En d'autres termes, quand j'ai couru cette commande il ya un moment - Let Me Roll 575 00:28:27,020 --> 00:28:28,040 Remontez dans le temps - 576 00:28:28,040 --> 00:28:32,400 quand j'ai couru rendre bonjour, c'est l'étape intermédiaire ici. 577 00:28:32,400 --> 00:28:34,410 Et il a fallu hello.c en entrée - 578 00:28:34,410 --> 00:28:39,910 Code source AKA - et il a produit un fichier appelé bonjour en sortie, qui 579 00:28:39,910 --> 00:28:42,510 contient tous ces zéros et de uns. 580 00:28:42,510 --> 00:28:47,640 Et c'est pourquoi, à la fin, je ne peux en fait exécuter une commande comme. / bonjour. 581 00:28:47,640 --> 00:28:53,310 En raison de Intel Inside, mon exploitation système, Linux, ouvre les zéros 582 00:28:53,310 --> 00:28:55,820 et ceux, les nourrit dans l' cerveau de mon ordinateur - 583 00:28:55,820 --> 00:28:56,580 la CPU - 584 00:28:56,580 --> 00:29:00,460 et qui sait CPU, oh, voici un modèle de zéros et de uns que dit 585 00:29:00,460 --> 00:29:02,800 imprimer la chose suivante sur l'écran. 586 00:29:02,800 --> 00:29:04,450 >> Quelle est la chose suivante? 587 00:29:04,450 --> 00:29:07,650 GUILLEMETS, "Bonjour tout le monde." 588 00:29:07,650 --> 00:29:12,100 >> D'accord, donc un bref résumé de quelques-uns des ces commandes afin que nous puissions commencer 589 00:29:12,100 --> 00:29:13,350 de les prendre pour acquis. 590 00:29:13,350 --> 00:29:15,550 Permettez-moi de passer directement à où nous nous sommes quittés. 591 00:29:15,550 --> 00:29:22,230 Et vous vous souviendrez que nous avions CD à notre back-end il ya un instant. 592 00:29:22,230 --> 00:29:24,880 Ce sont, j'ose le dire, pour Les fins d'aujourd'hui - 593 00:29:24,880 --> 00:29:29,010 peut-être cette semaine - les seules commandes que nous pourraient avoir besoin de taper à la commande 594 00:29:29,010 --> 00:29:30,580 invite en outre faire. 595 00:29:30,580 --> 00:29:34,510 >> Donc CD était pour quoi? 596 00:29:34,510 --> 00:29:35,180 Changez de répertoire. 597 00:29:35,180 --> 00:29:38,010 C'est juste l'équivalent de deux en cliquant sur un dossier. 598 00:29:38,010 --> 00:29:41,320 Et en passant, si vous obtenez perdu jamais à l'intérieur de votre 599 00:29:41,320 --> 00:29:43,430 appareil, tels que Dropbox - 600 00:29:43,430 --> 00:29:45,420 Je veux revenir à mon répertoire jharvard - 601 00:29:45,420 --> 00:29:50,490 En cas de doute, CD, entrez, sans autre mots, et ça zips vous rappellons 602 00:29:50,490 --> 00:29:53,110 à l'endroit où vous avez commencé, qui C'est un joli petit raccourci. 603 00:29:53,110 --> 00:29:54,840 >> Bon, alors maintenant d'autres commandes. 604 00:29:54,840 --> 00:29:55,660 LS. 605 00:29:55,660 --> 00:29:56,840 J'ai tapé il ya un instant. 606 00:29:56,840 --> 00:29:59,500 Que pensez-vous LS signifie? 607 00:29:59,500 --> 00:30:00,470 >> Ainsi, liste, non? 608 00:30:00,470 --> 00:30:03,300 Retour dans la journée, quand les humains venaient avec ces commandes, ils 609 00:30:03,300 --> 00:30:07,180 essayaient d'être efficace, et plutôt taper L-I-S-T entrent, ils 610 00:30:07,180 --> 00:30:08,470 LS décidé. 611 00:30:08,470 --> 00:30:09,080 C'est très bien. 612 00:30:09,080 --> 00:30:10,420 Il semble assez comme liste. 613 00:30:10,420 --> 00:30:13,870 Disons simplement LS de type entrent, et que Liste les fichiers ou les dossiers dans mon 614 00:30:13,870 --> 00:30:15,000 dossier en cours. 615 00:30:15,000 --> 00:30:17,530 >> mkdir, vous pouvez probablement le deviner. 616 00:30:17,530 --> 00:30:18,440 Assurez-répertoire. 617 00:30:18,440 --> 00:30:22,010 Donc, vous n'allez pas à certaines menu Fichier et choisissez Nouveau dossier dans cet environnement. 618 00:30:22,010 --> 00:30:27,410 Au contraire, vous tapez l'espace d'mkdir et puis le nom du dossier 619 00:30:27,410 --> 00:30:29,850 que vous voulez créer, et ce sera fait. 620 00:30:29,850 --> 00:30:32,380 >> rm, vous pouvez probablement le deviner. 621 00:30:32,380 --> 00:30:33,480 Supprimer ou supprimer. 622 00:30:33,480 --> 00:30:36,740 Donc, si vous voulez supprimer un fichier, vous aurez voir dans le jeu de problème comment vous 623 00:30:36,740 --> 00:30:37,240 peut le faire. 624 00:30:37,240 --> 00:30:39,510 Et rmdir, supprimer le répertoire. 625 00:30:39,510 --> 00:30:42,320 >> Donc, encore une fois, je vais tendance à voler à travers certains de ces détails, premièrement, parce que 626 00:30:42,320 --> 00:30:46,010 ils ne sont pas tout à fait autant de plaisir à passer temps, mais deux, nous vous fournirons dans 627 00:30:46,010 --> 00:30:48,720 beaucoup plus en détail dans l'un des Le problème de parcours fixe, en particulier 628 00:30:48,720 --> 00:30:52,370 les éditions standard, chacune des étapes que vous pourriez avoir besoin de taper de manière 629 00:30:52,370 --> 00:30:54,830 que vous obtenez de plus en plus à l'aise avec ces choses. 630 00:30:54,830 --> 00:30:57,430 >> Mais maintenant, permettez-moi de démêler une autre chose. 631 00:30:57,430 --> 00:31:02,580 Lorsque nous avons tapé faisons bonjour il ya un moment, nous avons vu une séquence de commandes cryptiques. 632 00:31:02,580 --> 00:31:04,805 Nous avons vu, encore une fois, faisons bonjour. 633 00:31:04,805 --> 00:31:07,640 634 00:31:07,640 --> 00:31:08,520 OK, nous allons le faire. 635 00:31:08,520 --> 00:31:11,840 J'étais sur le point de faire une erreur, mais [Inaudible] maintenant admettre que j'étais sur le point d' 636 00:31:11,840 --> 00:31:14,400 et de le faire délibérément. 637 00:31:14,400 --> 00:31:15,810 >> Qu'ai-je fait de mal en ce moment? 638 00:31:15,810 --> 00:31:18,680 639 00:31:18,680 --> 00:31:21,060 Ouais, donc je ne suis pas dans la Dropbox répertoire, car il ya un moment que je 640 00:31:21,060 --> 00:31:22,720 dactylographiée CD et appuyez simplement sur Entrée. 641 00:31:22,720 --> 00:31:25,480 Cela m'a avez à l'endroit où j'ai commencé, qui n'est pas là mon dossier 642 00:31:25,480 --> 00:31:31,720 est donc j'ai vraiment besoin de faire CD Dropbox entrer, et maintenant je peux faire bonjour rm 643 00:31:31,720 --> 00:31:34,060 entrer, supprimer le fichier régulier bonjour. 644 00:31:34,060 --> 00:31:35,200 Je ne sais pas pourquoi il est si énigmatique. 645 00:31:35,200 --> 00:31:37,600 C'est seulement un moyen êtes-vous sûr vous voulez supprimer bonjour? 646 00:31:37,600 --> 00:31:41,510 Vous pouvez taper y pour oui, entrez, et maintenant il est parti. 647 00:31:41,510 --> 00:31:46,010 >> Et maintenant, si je tape rendre bonjour encore une fois, c'est aller à recréer mon code objet, 648 00:31:46,010 --> 00:31:47,460 recréer ces zéros et de uns. 649 00:31:47,460 --> 00:31:51,070 Mais quel est le problème avec cette très longue commande? 650 00:31:51,070 --> 00:31:53,960 Eh bien, nous allons taquiner cette part avant longtemps, mais assurez - 651 00:31:53,960 --> 00:31:55,500 Je l'ai dit un peu de mensonge avant - 652 00:31:55,500 --> 00:31:56,880 n'est pas un compilateur. 653 00:31:56,880 --> 00:32:00,350 Make est un programme qui automatiquement chiffres sur la façon d'exécuter une 654 00:32:00,350 --> 00:32:02,060 compilateur pour vous. 655 00:32:02,060 --> 00:32:07,490 >> Ainsi, la commande que vous devriez vraiment être exécutant de manière à convertir hello.c 656 00:32:07,490 --> 00:32:11,240 dans bonjour semble effectivement un peu plus comme ça. 657 00:32:11,240 --> 00:32:15,900 Et Dieu ne plaise que nous devons réellement n'oubliez pas de toujours taper que toute 658 00:32:15,900 --> 00:32:17,280 séquence de commandes à l'extérieur. 659 00:32:17,280 --> 00:32:21,360 L'objectif de faire dans la vie est d' n'oubliez pas ce degré de complexité pour 660 00:32:21,360 --> 00:32:24,470 nous et automatiser ce qui serait autrement être pas très fastidieux. 661 00:32:24,470 --> 00:32:26,040 >> Mais je ne peux approximatif. 662 00:32:26,040 --> 00:32:29,960 Donc, par cette petite antisèche ici, je peut rapprocher ce que la commande est 663 00:32:29,960 --> 00:32:33,960 faire simplement en tapant clang, qui est le nom du compilateur nous serons 664 00:32:33,960 --> 00:32:35,170 l'utilisation de ce semestre. 665 00:32:35,170 --> 00:32:38,500 Si quelqu'un d'entre vous l'ont jamais fait iOS développement pour l'iPhone ou l'iPad, 666 00:32:38,500 --> 00:32:42,930 Clang est le programme que vous avez utilisé au sein de Xcode pour rendre vos applications. 667 00:32:42,930 --> 00:32:46,360 Clang, cependant, c'est juste un autre programme dont le nom nous pouvons taper à la commande 668 00:32:46,360 --> 00:32:49,210 Demander, par l'introduction de cette entreprise, Je peux présenter quelque chose qui est un 669 00:32:49,210 --> 00:32:52,410 peu représentatif des commandes à venir. 670 00:32:52,410 --> 00:32:53,910 Permettez-moi de le faire manuellement. 671 00:32:53,910 --> 00:32:59,240 >> Donc rm bonjour, et maintenant préavis en cas I, comme un test de cohérence - 672 00:32:59,240 --> 00:33:03,180 . / Bonjour, que pensez-vous que je devrait voir si je fais ça? 673 00:33:03,180 --> 00:33:04,060 Une sorte d'erreur. 674 00:33:04,060 --> 00:33:05,110 Un tel répertoire de fichiers. 675 00:33:05,110 --> 00:33:06,740 Alors que l'on en fait assez direct. 676 00:33:06,740 --> 00:33:08,110 >> Alors maintenant, laissez-moi éclaircir l'écran. 677 00:33:08,110 --> 00:33:11,370 Control S efface simplement l'écran à supprimer certaines distractions. 678 00:33:11,370 --> 00:33:17,160 Et maintenant, je vais manuellement Type clang-o bonjour hello.c. 679 00:33:17,160 --> 00:33:18,890 Quel est donc ce propos faire? 680 00:33:18,890 --> 00:33:23,820 Exactement la même chose que faire a fait pour nous, mais je ne jette quelques-uns des 681 00:33:23,820 --> 00:33:25,430 les mots superflus. 682 00:33:25,430 --> 00:33:28,570 >> Clang est le programme qui va prendre une image. c comme entrée et produire 683 00:33:28,570 --> 00:33:30,110 zéros et uns en sortie. 684 00:33:30,110 --> 00:33:35,120 Mais désormais-o appellera un interrupteur ou un pavillon. 685 00:33:35,120 --> 00:33:39,080 Ce n'est qu'un jargon techno pour dire c'est un mot que vous tapez à l'invite 686 00:33:39,080 --> 00:33:42,590 qui influe sur le comportement d'une certaine manière du programme que vous utilisez. 687 00:33:42,590 --> 00:33:47,180 Donc, personne ne veut deviner ce-o transmet? 688 00:33:47,180 --> 00:33:47,840 >> Sortie. 689 00:33:47,840 --> 00:33:52,670 C'est juste quelqu'un décide-o signifie sortie un fichier appelé bonjour et prendre en 690 00:33:52,670 --> 00:33:56,440 entrée quel que soit le dernier mot sur l' invite est, hello.c, de sorte que si je frappe 691 00:33:56,440 --> 00:33:58,930 Entrez maintenant, rien ne semble se passer. 692 00:33:58,930 --> 00:34:02,010 Et curieusement, dans ce monde de programmation, si rien ne se passe, 693 00:34:02,010 --> 00:34:03,980 c'est probablement une bonne chose parce qu'il n'y a pas d'erreur 694 00:34:03,980 --> 00:34:05,350 un message sur l'écran. 695 00:34:05,350 --> 00:34:07,190 Bonjour, Entrée. 696 00:34:07,190 --> 00:34:08,670 Mon programme est maintenant exécuté. 697 00:34:08,670 --> 00:34:14,517 >> Mais je ne peux faire de petites choses stupides comme ce produit. clang-o, hihihi, hello.c, 698 00:34:14,517 --> 00:34:18,590 entrer, et maintenant j'ai un identique programme nommé hihihi. 699 00:34:18,590 --> 00:34:20,739 Il se comporte de la même chose, mais le nom est différent. 700 00:34:20,739 --> 00:34:23,360 >> Donc, ce n'est que pour dire que si vous voulez pour influencer le comportement d'un 701 00:34:23,360 --> 00:34:25,909 programme, nous allons de plus en plus voir les choses appelées 702 00:34:25,909 --> 00:34:27,739 arguments de ligne de commande. 703 00:34:27,739 --> 00:34:28,639 Il s'agit d'une ligne. 704 00:34:28,639 --> 00:34:29,580 Vous tapez les commandes. 705 00:34:29,580 --> 00:34:30,969 Ergonomique, la ligne de commande. 706 00:34:30,969 --> 00:34:35,690 Et les arguments de ligne de commande sont juste des mots ou des petits morceaux de syntaxe qui 707 00:34:35,690 --> 00:34:40,840 en quelque sorte influencer le comportement des programmes que nous sommes en marche. 708 00:34:40,840 --> 00:34:44,639 >> D'accord, c'est peut-être le plus programme ennuyeux on peut écrire et voir. 709 00:34:44,639 --> 00:34:46,670 Faisons maintenant quelque chose plus intéressant. 710 00:34:46,670 --> 00:34:49,420 Permettez-moi d'aller de l'avant et créer un nouveau fichier. 711 00:34:49,420 --> 00:34:53,139 Je vais aller de l'avant et mettre cela en Le répertoire de John Harvard, 712 00:34:53,139 --> 00:34:58,670 appelons-le custom.c, pour être un petit programme personnalisé. 713 00:34:58,670 --> 00:35:01,920 Je vais zoomer à mon sommet de les pattes ici et recommencer. 714 00:35:01,920 --> 00:35:03,730 >> Inclure stdio.h standard. 715 00:35:03,730 --> 00:35:04,990 Plus sur cela dans un instant. 716 00:35:04,990 --> 00:35:08,240 int main (void), plus le dans un instant. 717 00:35:08,240 --> 00:35:09,490 printf ("Bonjour, David"). 718 00:35:09,490 --> 00:35:12,810 719 00:35:12,810 --> 00:35:14,560 Beaucoup plus intéressant, non? 720 00:35:14,560 --> 00:35:20,690 >> Alors maintenant, si - non pas à cause de mon nom, juste parce que c'est différent - 721 00:35:20,690 --> 00:35:24,950 Faites des saisissez. 722 00:35:24,950 --> 00:35:26,780 Coutume, bonjour, David. 723 00:35:26,780 --> 00:35:28,020 Mais même cela aussi, c'est un mensonge. 724 00:35:28,020 --> 00:35:30,850 Ce programme pourrait aussi bien être appelé David.C, parce que ce n'est pas coutume 725 00:35:30,850 --> 00:35:31,880 comportement du tout. 726 00:35:31,880 --> 00:35:35,080 Vraiment, je veux un programme qui demande l'utilisateur à leur nom. 727 00:35:35,080 --> 00:35:36,320 >> Alors, comment dois-je faire cela? 728 00:35:36,320 --> 00:35:38,520 Eh bien, permettez-moi de défiler vers le haut ici. 729 00:35:38,520 --> 00:35:42,960 Et avant que j'utilise une déclaration Scratch, avant de l'utiliser printf, 730 00:35:42,960 --> 00:35:47,600 autrement connu comme une fonction, permettez-moi d'abord demander à l'utilisateur pour certaines entrées. 731 00:35:47,600 --> 00:35:49,690 >> Donc, pour ce faire, j'ai besoin d' faire une ou deux choses. 732 00:35:49,690 --> 00:35:53,360 Un, j'ai besoin d'un endroit pour stocker de l'utilisateur nommer après que je lui ai demandé ou 733 00:35:53,360 --> 00:35:54,510 lui pour cela. 734 00:35:54,510 --> 00:36:00,120 Qu'est construction dois-je utiliser probablement pour stocker une valeur comme ça? 735 00:36:00,120 --> 00:36:00,910 Une variable. 736 00:36:00,910 --> 00:36:05,130 >> Donc, contrairement à Scratch, où vous obtenez juste une belle pièce de puzzle, ici, nous devons 737 00:36:05,130 --> 00:36:07,620 utiliser, évidemment, mots à nous exprimer. 738 00:36:07,620 --> 00:36:11,510 Et désormais, quand vous le voulez une mot ou une phrase, dans la programmation, 739 00:36:11,510 --> 00:36:13,090 nous allons appeler cela une chaîne. 740 00:36:13,090 --> 00:36:14,990 Ainsi, une chaîne est un mot ou une phrase. 741 00:36:14,990 --> 00:36:18,170 Il s'agit d'une séquence de zéro ou plus personnages, plus formellement. 742 00:36:18,170 --> 00:36:22,520 >> Et si vous voulez une telle variable existe, vous avez à dire me donner une. 743 00:36:22,520 --> 00:36:27,490 Et le moyen par lequel vous faites c'est-à- dire chaîne de virgule, où s peut être 744 00:36:27,490 --> 00:36:28,740 tout ce que vous voulez. 745 00:36:28,740 --> 00:36:30,510 En effet, s est un peu décevante. 746 00:36:30,510 --> 00:36:33,250 Permettez-moi d'aller de l'avant et plus clairement appeler son nom. 747 00:36:33,250 --> 00:36:36,570 Donne-moi une chaîne appelée nom. 748 00:36:36,570 --> 00:36:40,180 >> Mais maintenant, ce qui est de la personne nom par défaut? 749 00:36:40,180 --> 00:36:42,930 Eh bien, si l'homme ne tapez rien en, de toute évidence, il va y 750 00:36:42,930 --> 00:36:44,310 avoir aucune valeur de nom. 751 00:36:44,310 --> 00:36:48,120 Et il se trouve dans C, si vous ne donnez pas une valeur à une variable, il va 752 00:36:48,120 --> 00:36:49,180 avoir une valeur d'ordures. 753 00:36:49,180 --> 00:36:51,650 Il pourrait avoir quelques zéros aléatoires et ceux, si vous allez juste pour voir 754 00:36:51,650 --> 00:36:54,570 ordures, vraiment, sur l'écran si vous essayez de l'afficher. 755 00:36:54,570 --> 00:36:59,800 >> Mais je peux arranger ça en disant, en fait, à l'intérieur du magasin du nom 756 00:36:59,800 --> 00:37:01,400 suivant la valeur. 757 00:37:01,400 --> 00:37:09,240 La façon dont vous stockez les valeurs des variables est si vous avez un nom de variable sur l' 758 00:37:09,240 --> 00:37:13,370 à gauche, vous avez en quelque sorte à mettre ce que vous souhaitez stocker dans le sur la droite, et 759 00:37:13,370 --> 00:37:17,650 La syntaxe de ce qui se passe être comme suit. 760 00:37:17,650 --> 00:37:22,120 >> Nous n'avons pas vu cela avant, mais prenons sur la foi d'un instant qu'il y 761 00:37:22,120 --> 00:37:26,270 existe une autre déclaration dans le monde que je vais appeler à nouveau la fonction, 762 00:37:26,270 --> 00:37:28,310 et cette fonction est appelé obtenir chaîne. 763 00:37:28,310 --> 00:37:29,670 Et il le fait littéralement cela. 764 00:37:29,670 --> 00:37:34,680 C'est en quelque sorte obtient une séquence de caractères à partir de l'être humain et ensuite 765 00:37:34,680 --> 00:37:36,380 fait quelque chose avec elle. 766 00:37:36,380 --> 00:37:38,410 >> Et cela ne ressemble pas à syntaxe cryptique. 767 00:37:38,410 --> 00:37:40,880 Normalement, si vous utilisez les signes d'égalité - vous êtes dans le monde, disons, 768 00:37:40,880 --> 00:37:43,740 algèbre, et vous êtes réellement x disant égal à 1. 769 00:37:43,740 --> 00:37:46,570 Ici, nous ne disons pas que Nom est égal à obtenir chaîne. 770 00:37:46,570 --> 00:37:51,270 Nous disons boutique en nom ce qui est sur le côté droit 771 00:37:51,270 --> 00:37:52,400 de ce signe égal. 772 00:37:52,400 --> 00:37:55,030 Le signe égal représente l'opérateur d'affectation. 773 00:37:55,030 --> 00:37:58,240 C'est la syntaxe qui dit que ce qui est mis sur le côté droit à l'intérieur de ce qui est 774 00:37:58,240 --> 00:37:59,090 sur la gauche. 775 00:37:59,090 --> 00:38:03,040 Donc obtenir chaîne est une nouvelle pièce d' fonctionnalité que non seulement 776 00:38:03,040 --> 00:38:03,670 quelque chose - 777 00:38:03,670 --> 00:38:05,000 demande à l'utilisateur une chaîne - 778 00:38:05,000 --> 00:38:08,500 il la retourne aussi, pour ainsi dire. 779 00:38:08,500 --> 00:38:10,690 >> Donc, nous allons voir ce qui se passe pour arriver ici. 780 00:38:10,690 --> 00:38:14,300 Je vais maintenant aller de l'avant et zoom arrière, et je vais obtenir un couple de 781 00:38:14,300 --> 00:38:15,780 erreurs dans mon message. 782 00:38:15,780 --> 00:38:18,750 Je vais taper make personnalisé, entrez. 783 00:38:18,750 --> 00:38:19,230 Wow. 784 00:38:19,230 --> 00:38:20,500 Tout un tas d'erreurs. 785 00:38:20,500 --> 00:38:23,120 >> D'accord, donc c'est un peu écrasante, certainement au début, mais 786 00:38:23,120 --> 00:38:27,220 Il s'avère que l'ensemble de ces très Certes messages d'erreur incompréhensibles sont 787 00:38:27,220 --> 00:38:30,700 référant à certains modèles qui nous allons commencer à voir au fil du temps. 788 00:38:30,700 --> 00:38:32,600 Donc, ce que je vais arrachez, parce que c'est la première. 789 00:38:32,600 --> 00:38:35,700 L'utilisation de chaîne de l'identificateur non déclaré. 790 00:38:35,700 --> 00:38:39,400 >> Cela signifie simplement que gedit ou Clang, dans ce cas, ne sait pas 791 00:38:39,400 --> 00:38:40,780 ce que je veux dire par chaîne. 792 00:38:40,780 --> 00:38:43,880 Et c'est parce que dans C, la programmation langue, il en fait 793 00:38:43,880 --> 00:38:47,750 a pas de variable de type string. 794 00:38:47,750 --> 00:38:49,810 C ne sait pas que les chaînes existent. 795 00:38:49,810 --> 00:38:52,260 >> Mais nous, CS50 personnel faisons. 796 00:38:52,260 --> 00:38:57,080 Et donc à l'avance de classe, nous créé un fichier appelé CS50.h. 797 00:38:57,080 --> 00:39:00,060 Et à l'intérieur de ce dossier - et plus sur la syntaxe à venir - 798 00:39:00,060 --> 00:39:03,730 à l'intérieur de ce fichier est une définition de ce que je viens de définir 799 00:39:03,730 --> 00:39:05,340 verbalement comme une chaîne. 800 00:39:05,340 --> 00:39:09,100 Donc, simplement en concluant cette ligne de code dans mon programme, je suis maintenant 801 00:39:09,100 --> 00:39:14,620 enseignement gedit et faire et Clang tour à tour ce qui est une chaîne. 802 00:39:14,620 --> 00:39:15,475 >> Je ne sais pas encore comment. 803 00:39:15,475 --> 00:39:17,110 Dans quelques semaines, nous peler vais retour cette couche. 804 00:39:17,110 --> 00:39:20,340 Mais pour l'instant, sachez que cette enseigne le compilateur quel 805 00:39:20,340 --> 00:39:22,020 chaîne est en réalité. 806 00:39:22,020 --> 00:39:24,230 >> Alors maintenant, laissez-moi éclaircir ma borne ici. 807 00:39:24,230 --> 00:39:28,530 Permettez-moi de relancer faire la coutume, et je résolu tous ces problèmes. 808 00:39:28,530 --> 00:39:30,210 Donc, cela aussi va être un thème récurrent. 809 00:39:30,210 --> 00:39:34,190 J'ai seulement écrit un programme 9 de la ligne, et pourtant j'avais 18 lignes d'erreurs. 810 00:39:34,190 --> 00:39:35,650 C'est le genre d'intimidation. 811 00:39:35,650 --> 00:39:39,260 Mais se rendre compte qu'ils cascade souvent comme qui déclenche une petite erreur 812 00:39:39,260 --> 00:39:43,070 la confusion pour le compilateur, et il semble bien pire qu'elle ne l'est. 813 00:39:43,070 --> 00:39:47,460 >> Alors maintenant, un observateur avisé saura que je reçois une chaîne à partir de la 814 00:39:47,460 --> 00:39:51,460 utilisateur, mais je ne suis pas vraiment fait quoi avec elle? 815 00:39:51,460 --> 00:39:53,570 Je ne suis pas en train de faire quelque chose avec elle. 816 00:39:53,570 --> 00:40:01,240 Donc, si je lance réellement coutume encore, il va rester là. 817 00:40:01,240 --> 00:40:03,380 Que se passe-t-il? 818 00:40:03,380 --> 00:40:07,990 Mon programme semble être coincé sur quelle ligne, diriez-vous? 819 00:40:07,990 --> 00:40:09,860 >> Donc, il est effectivement bloqué sur la ligne 7. 820 00:40:09,860 --> 00:40:13,600 Et nous n'avons pas vu cela avant, mais sur la ligne 7, il n'y a, à nouveau, cette 821 00:40:13,600 --> 00:40:14,650 déclaration, obtenir chaîne. 822 00:40:14,650 --> 00:40:15,930 Et il fait ce qu'il dit. 823 00:40:15,930 --> 00:40:18,480 Il attend maintenant l'humain à prendre la chaîne. 824 00:40:18,480 --> 00:40:22,230 Ceci est totalement intuitif pour moi, l'être humain, parce que je n'ai pas été informé 825 00:40:22,230 --> 00:40:23,040 ce qu'il faut faire. 826 00:40:23,040 --> 00:40:27,320 >> Mais permettez-moi d'aller de l'avant sur la foi et permettez-moi de faire semblant d'être Rob. 827 00:40:27,320 --> 00:40:28,500 Entrée. 828 00:40:28,500 --> 00:40:30,930 Ce n'est pas le programme que je voulais. 829 00:40:30,930 --> 00:40:32,350 Donc, nous avons notre premier blog. 830 00:40:32,350 --> 00:40:34,390 >> Mais nous allons essayer de raisonner par pourquoi c'est le cas. 831 00:40:34,390 --> 00:40:36,940 Tout d'abord, permettez-moi de résoudre ce premier problème. 832 00:40:36,940 --> 00:40:44,690 Permettez-moi d'ajouter une ligne ici qui dit: printf, quel est votre nom? 833 00:40:44,690 --> 00:40:47,700 Disons simplement faire près citation, fermer les parenthèses. 834 00:40:47,700 --> 00:40:51,350 >> Maintenant, permettez-moi de re-exécuter le programme. 835 00:40:51,350 --> 00:40:51,760 Problème. 836 00:40:51,760 --> 00:40:54,690 Je ne vois pas cela. 837 00:40:54,690 --> 00:40:54,930 >> Droit. 838 00:40:54,930 --> 00:40:55,990 Je n'ai pas le recompiler. 839 00:40:55,990 --> 00:40:59,800 Donc, dans un langage comme C, parce que vous modifier le code source ne signifie pas 840 00:40:59,800 --> 00:41:03,170 que vous avez changé votre code d'objet pour générer un nouveau code d'objet, 841 00:41:03,170 --> 00:41:04,330 nouveaux zéros et de uns. 842 00:41:04,330 --> 00:41:05,590 Vous devez recompiler. 843 00:41:05,590 --> 00:41:10,300 Si je maintenant ré-exécuter personnalisé, entrez, ah, un peu plus clair. 844 00:41:10,300 --> 00:41:11,890 Mon nom est Rob. 845 00:41:11,890 --> 00:41:12,760 Toujours buggy. 846 00:41:12,760 --> 00:41:14,170 >> Et je dirais qu'il ya quelques bogues maintenant. 847 00:41:14,170 --> 00:41:15,450 Cela ressemble tout simplement hideux, franchement. 848 00:41:15,450 --> 00:41:18,980 Comme, minimalement, je devrais avoir un espace là-bas, ou déplacer le 849 00:41:18,980 --> 00:41:20,330 le curseur à la nouvelle ligne. 850 00:41:20,330 --> 00:41:21,370 >> Et en fait, la nouvelle ligne. 851 00:41:21,370 --> 00:41:24,660 C'est en quelque sorte d'une expression clé ici que nous l'avons vu, n'est pas défini. 852 00:41:24,660 --> 00:41:28,560 La façon dont vous obtenez un texte pour passer à la ligne suivante, 853 00:41:28,560 --> 00:41:29,480 vous ne le faites pas. 854 00:41:29,480 --> 00:41:31,070 Ceci est source de confusion pour l'ordinateur. 855 00:41:31,070 --> 00:41:33,830 Cela ressemble à deux lignes distinctes du code, dont aucun 856 00:41:33,830 --> 00:41:35,010 est parfaitement correcte. 857 00:41:35,010 --> 00:41:39,380 Vous avez la place pour être plus explicite et plus dire, me donner une nouvelle ligne, qui nous 858 00:41:39,380 --> 00:41:41,810 représenter dans c avec barre oblique inverse n. 859 00:41:41,810 --> 00:41:43,230 >> Il ya donc un peu de ces personnages. 860 00:41:43,230 --> 00:41:45,080 Backslash n fixera cette esthétique. 861 00:41:45,080 --> 00:41:49,640 862 00:41:49,640 --> 00:41:50,870 Permettez-moi de recompile mon programme. 863 00:41:50,870 --> 00:41:52,300 Permettez-moi de ré-exécuter mon programme. 864 00:41:52,300 --> 00:41:53,520 >> Cela semble mieux. 865 00:41:53,520 --> 00:41:56,960 Il est encore assez primitive, mais c'est aussi toujours buggy. 866 00:41:56,960 --> 00:41:58,090 Donc, il ya une - 867 00:41:58,090 --> 00:42:01,680 même si vous n'avez jamais programmé auparavant, vous pouvez probablement faire une supposition 868 00:42:01,680 --> 00:42:04,960 les raisons pour lesquelles ce programme est encore imparfait. 869 00:42:04,960 --> 00:42:08,540 Que dois-je faire Je n'ai pas encore fait? 870 00:42:08,540 --> 00:42:10,450 >> Je dois donc faire réellement quelque chose avec le nom. 871 00:42:10,450 --> 00:42:14,190 Tout comme dans zéro, vous pourriez effectivement affecter une variable comme n ou 872 00:42:14,190 --> 00:42:16,150 contrer comme nous l'avons fait la dernière semaine - une valeur. 873 00:42:16,150 --> 00:42:18,930 Mais si vous ne faites rien avec , rien ne va se passer. 874 00:42:18,930 --> 00:42:20,210 >> Très bien, nous allons donc corriger. 875 00:42:20,210 --> 00:42:23,670 Permettez-moi de taper ma variable là, et laissez-moi descendre ici. 876 00:42:23,670 --> 00:42:29,120 Permettez-moi de recompile, permettez-moi de re-run, Rob. 877 00:42:29,120 --> 00:42:30,540 Maintenant, je suis juste un idiot, non? 878 00:42:30,540 --> 00:42:33,280 >> Donc, ce n'est pas vraiment obtient me plus loin. 879 00:42:33,280 --> 00:42:35,850 Mais c'était tout à fait naturel instinct, je dirais, non? 880 00:42:35,850 --> 00:42:39,340 Si la variable est appelé nom, et je il veut y aller, pourquoi ne pas simplement 881 00:42:39,340 --> 00:42:40,200 saisissez-là? 882 00:42:40,200 --> 00:42:42,210 >> Bien sûr, nous avons de distinguer maintenant 883 00:42:42,210 --> 00:42:44,070 entre ce qui est une chaîne? 884 00:42:44,070 --> 00:42:47,060 Remarquez que je cite ici, bonjour nom? 885 00:42:47,060 --> 00:42:48,960 Ce fait lui-même est une chaîne. 886 00:42:48,960 --> 00:42:49,820 Il est codé en dur. 887 00:42:49,820 --> 00:42:50,690 Ce n'est pas de l'humain. 888 00:42:50,690 --> 00:42:54,020 C'est de moi, le programmeur original, mais c'est toujours une chaîne. 889 00:42:54,020 --> 00:42:58,300 >> Donc, si vous écrivez littéralement N-A-M-E à l'intérieur d'une chaîne, ce qui se passe à 890 00:42:58,300 --> 00:42:59,120 obtenir imprimé? 891 00:42:59,120 --> 00:43:03,660 Eh bien, N-A-M-E. Nous avons plutôt besoin d' dire printf, ne pas imprimer 892 00:43:03,660 --> 00:43:04,870 out littéralement nommer. 893 00:43:04,870 --> 00:43:06,680 Imprimez la valeur du nom. 894 00:43:06,680 --> 00:43:08,410 >> Et pour ce faire, nous faisons ce qui suit. 895 00:43:08,410 --> 00:43:09,800 Et ce n'est qu'une convention humaine. 896 00:43:09,800 --> 00:43:14,990 Nous disons au lieu% s, et que est synonyme de chaîne. 897 00:43:14,990 --> 00:43:19,810 Et puis à la fin de mes proches citations, Je vais mettre une virgule et 898 00:43:19,810 --> 00:43:23,790 passer un second argument dans cette déclaration. 899 00:43:23,790 --> 00:43:25,970 Je vais taper nom. 900 00:43:25,970 --> 00:43:27,960 >> Alors maintenant, nous avons remarqué une légèrement nouvelle syntaxe. 901 00:43:27,960 --> 00:43:32,320 Nous avons encore deux parenthèses, et Permettez-moi de dire que désormais les choses 902 00:43:32,320 --> 00:43:36,830 entre parenthèses représente arguments dans une fonction - 903 00:43:36,830 --> 00:43:39,730 entrées qui sont en quelque sorte vont d'influer sur son comportement. 904 00:43:39,730 --> 00:43:43,010 Donc, en cette logique, combien arguments printf ne semble être 905 00:43:43,010 --> 00:43:45,450 prendre en ce moment? 906 00:43:45,450 --> 00:43:48,370 >> Donc, il semble prendre deux, Et c'est en effet implicite 907 00:43:48,370 --> 00:43:49,570 par la virgule ici. 908 00:43:49,570 --> 00:43:51,640 Il s'agit donc d'un argument entre guillemets. 909 00:43:51,640 --> 00:43:54,540 Même si elle a une virgule en elle, tout est entre guillemets, ce qui signifie 910 00:43:54,540 --> 00:43:56,230 c'est une longue chaîne. 911 00:43:56,230 --> 00:43:58,280 Comma, nom de la variable. 912 00:43:58,280 --> 00:44:00,680 >> Alors maintenant, permettez-moi de faire un zoom arrière. 913 00:44:00,680 --> 00:44:02,240 Permettez-moi de ré-exécuter. 914 00:44:02,240 --> 00:44:03,490 Rob. 915 00:44:03,490 --> 00:44:06,520 Bon sang, qu'est-ce que j'ai fait de mal? 916 00:44:06,520 --> 00:44:07,920 >> Très bien, alors vous devez recompiler. 917 00:44:07,920 --> 00:44:11,030 Encore une fois, les erreurs faciles à faire début encore et encore sur. 918 00:44:11,030 --> 00:44:15,280 Alors maintenant relancer coutume, Rob, entrer, et le tour est joué. 919 00:44:15,280 --> 00:44:17,110 Nous avons maintenant un programme personnalisé. 920 00:44:17,110 --> 00:44:21,660 >> Donc, j'ai maintenant un programme qui l'aide de quelques caractéristiques 921 00:44:21,660 --> 00:44:22,520 qui sont à noter. 922 00:44:22,520 --> 00:44:27,850 D'abord, je suis en utilisant CS50.h, autrement connu sous le nom de la bibliothèque CS50. 923 00:44:27,850 --> 00:44:33,050 Et à l'intérieur de la bibliothèque sont CS50 fonctions que d'autres personnes ont écrit - 924 00:44:33,050 --> 00:44:33,980 à savoir le personnel - 925 00:44:33,980 --> 00:44:36,620 que vous pouvez utiliser, et obtenir chaîne est l'une d'elles. 926 00:44:36,620 --> 00:44:41,310 >> A l'intérieur de la ligne 2 est stdio.h, et pourquoi est-ce là? 927 00:44:41,310 --> 00:44:42,070 Faites une conjecture. 928 00:44:42,070 --> 00:44:46,200 Ce qui existe à l'intérieur de norme parent IO? 929 00:44:46,200 --> 00:44:46,940 Printf. 930 00:44:46,940 --> 00:44:49,600 Donc, printf, vous ne le voyez pas n'importe où d'autre sur l'écran. 931 00:44:49,600 --> 00:44:51,870 Il doit venir avec l' ordinateur en quelque sorte. 932 00:44:51,870 --> 00:44:54,870 Où cela vient-il? 933 00:44:54,870 --> 00:44:57,660 C'est à l'intérieur de - il est déclaré, pour ainsi dire, à l'intérieur de 934 00:44:57,660 --> 00:44:59,890 un fichier appelé stdio.h. 935 00:44:59,890 --> 00:45:02,670 >> Maintenant, pour ce genre de choses, nous reviendrons à terme, parce que c'est un peu 936 00:45:02,670 --> 00:45:03,930 distrayant pour l'instant. 937 00:45:03,930 --> 00:45:05,490 Il s'agit de notre type de retour. 938 00:45:05,490 --> 00:45:07,660 Il s'agit d'un argument. 939 00:45:07,660 --> 00:45:10,230 Mais pour aujourd'hui, nous nous concentrons juste ici sur ces lignes. 940 00:45:10,230 --> 00:45:13,280 >> Donc nom de chaîne, juste pour rappel, qu'est-ce que cela fait pour moi? 941 00:45:13,280 --> 00:45:16,940 942 00:45:16,940 --> 00:45:19,560 Ainsi, il a déclaré une variable de type string. 943 00:45:19,560 --> 00:45:22,630 Donc, il est censé être pour les mots, pas pour les nombres. 944 00:45:22,630 --> 00:45:25,530 Soit dit en passant, si je ne voulais qu'il s'agit d'un numéro, je dirais 945 00:45:25,530 --> 00:45:26,560 quelque chose comme int. 946 00:45:26,560 --> 00:45:29,740 Si je voulais être un point flottant valeur, quelque chose avec un point décimal, 947 00:45:29,740 --> 00:45:30,600 Je dirais flotteur. 948 00:45:30,600 --> 00:45:32,640 Mais pour aujourd'hui, je viens de le dire chaîne. 949 00:45:32,640 --> 00:45:35,940 >> Et je lui ai donné cette variable un nom de nom, mais je ne pouvais 950 00:45:35,940 --> 00:45:37,240 ont appelé quelque chose. 951 00:45:37,240 --> 00:45:39,340 En fait, à l'origine, je l'ai appelé S. 952 00:45:39,340 --> 00:45:41,050 >> Ici, c'est juste une autre déclaration. 953 00:45:41,050 --> 00:45:44,170 Combien d'arguments est-ce déclaration de prendre? 954 00:45:44,170 --> 00:45:47,890 Donc, il faut juste un, et que est tout simplement un détail esthétique 955 00:45:47,890 --> 00:45:49,610 affichant quelque chose sur l'écran pour moi. 956 00:45:49,610 --> 00:45:54,750 Qu'est-ce que cette ligne 8 faire en termes simples? 957 00:45:54,750 --> 00:45:57,320 >> Ça devient une valeur à partir de la utilisateur - à savoir, une chaîne - 958 00:45:57,320 --> 00:45:58,770 et Que fait-il avec elle? 959 00:45:58,770 --> 00:46:02,450 Il s'agit essentiellement de les remettre à l' gars sur le côté gauche de l' 960 00:46:02,450 --> 00:46:07,100 signe égal de sorte que dans ce cas, le variable nom peut effectivement stocker. 961 00:46:07,100 --> 00:46:10,020 >> Et puis c'est un autre printf instance d'une fonction. 962 00:46:10,020 --> 00:46:11,870 Et nous disons pour appeler une fonction. 963 00:46:11,870 --> 00:46:13,870 Pour utiliser une fonction est pour appeler une fonction. 964 00:46:13,870 --> 00:46:15,640 Cette chose apparemment prend deux arguments. 965 00:46:15,640 --> 00:46:18,100 Celui-ci, une virgule, celui-ci. 966 00:46:18,100 --> 00:46:20,910 >> Celui-ci lui-même est juste une chaîne qui contient un espace réservé. 967 00:46:20,910 --> 00:46:23,860 Les moyens% de poser une autre chaîne ici. 968 00:46:23,860 --> 00:46:27,360 Et en mettant nom après la virgule, qui est l'insertion 969 00:46:27,360 --> 00:46:29,420 cette chose pour moi. 970 00:46:29,420 --> 00:46:31,300 >> Donc je ne peux faire d'autres choses encore. 971 00:46:31,300 --> 00:46:36,820 Permettez-moi d'aller de l'avant maintenant et je fais un peu de programme stupide, mais permettez-moi de supprimer ce, 972 00:46:36,820 --> 00:46:38,880 et permettez-moi de créer une boucle. 973 00:46:38,880 --> 00:46:41,390 C'est sans doute vrai. 974 00:46:41,390 --> 00:46:45,210 Le symbole est évidemment vrai toujours d'être vrai. 975 00:46:45,210 --> 00:46:49,830 Alors, quel genre de boucle que je INDUIRE en écrivant une ligne comme ça? 976 00:46:49,830 --> 00:46:51,070 >> Donc, une boucle infinie, non? 977 00:46:51,070 --> 00:46:52,090 Juste en vrai. 978 00:46:52,090 --> 00:46:56,210 Il n'ya aucun moyen que je peux changer le mot vrai d'être autre chose, si ce n'est 979 00:46:56,210 --> 00:46:57,310 tout va courir pour toujours. 980 00:46:57,310 --> 00:46:59,960 Donc, si vous avez jamais réellement eu un programme à votre Mac ou PC qui semble 981 00:46:59,960 --> 00:47:02,480 avoir enfermé, ou qu'il fait quelque chose et quelque chose, et vous venez 982 00:47:02,480 --> 00:47:05,500 ne peut pas obtenir la chose à quitter à moins que vous redémarrez votre ordinateur ou de tirer le 983 00:47:05,500 --> 00:47:08,360 Gestionnaire de tâches ou analogues, voici un exemple. 984 00:47:08,360 --> 00:47:14,340 >> Je peux dire: «Je suis un programme bogué". Fermer citation, fermez 985 00:47:14,340 --> 00:47:15,780 parenthèse, point-virgule. 986 00:47:15,780 --> 00:47:17,010 Encore une fois, notez les motifs. 987 00:47:17,010 --> 00:47:21,440 Même si certains de nos syntaxe est nouveau, le mot-clé tout, le mot vrai, 988 00:47:21,440 --> 00:47:23,590 Remarquez que je n'ai même genre d'accolades. 989 00:47:23,590 --> 00:47:25,890 J'ai un point-virgule et les parenthèses. 990 00:47:25,890 --> 00:47:28,000 >> Donc, maintenant nous allons aller de l'avant et compiler cela. 991 00:47:28,000 --> 00:47:29,630 Assurez coutume, personnalisé. 992 00:47:29,630 --> 00:47:32,690 993 00:47:32,690 --> 00:47:36,660 Donc, à ce stade, vous n'avez pas besoin d' redémarrer votre appareil, tout va bien? 994 00:47:36,660 --> 00:47:39,925 Donc, la leçon est facile ici avec deux doigts, de contrôle c, 995 00:47:39,925 --> 00:47:41,230 nous allons quitter ce programme. 996 00:47:41,230 --> 00:47:45,430 Mais vous pouvez voir exactement pourquoi cette chose se répétait encore et encore. 997 00:47:45,430 --> 00:47:48,080 >> Je peux faire quelque chose d'un peu plus complexe comme un teaser. 998 00:47:48,080 --> 00:47:49,600 Je vais aller de l'avant et dire ce qui suit. 999 00:47:49,600 --> 00:47:55,210 Pour int, qui est un entier, i est juste un nom générique que nous donnons à plus 1000 00:47:55,210 --> 00:47:59,500 variables dans la programmation lorsque vous êtes juste comptage, est égal à 0. 1001 00:47:59,500 --> 00:48:08,640 Permettez-moi d'aller de l'avant et de dire tout i est, disons, moins de 100, je plus plus. 1002 00:48:08,640 --> 00:48:10,240 Nous allons revenir à cette syntaxe, mais cela signifie simplement 1003 00:48:10,240 --> 00:48:12,270 incrémenter i encore et encore. 1004 00:48:12,270 --> 00:48:14,200 >> Et qu'est-ce que je veux faire ici? 1005 00:48:14,200 --> 00:48:21,130 Printf, "je peux compter à i." Il s'agit d'un programme buggy. 1006 00:48:21,130 --> 00:48:22,450 Qu'ai-je réellement l'intention ici? 1007 00:48:22,450 --> 00:48:25,220 1008 00:48:25,220 --> 00:48:30,940 >> Pour cent ne s, mais vous ne le devineriez pas ce produit. % D est un entier décimal. 1009 00:48:30,940 --> 00:48:32,720 Comma i. 1010 00:48:32,720 --> 00:48:34,340 Permettez-moi de Roll Back. 1011 00:48:34,340 --> 00:48:37,170 >> Permettez-moi maintenant recompiler avec faire. 1012 00:48:37,170 --> 00:48:39,280 Permettez-moi maintenant RERUN à la coutume. 1013 00:48:39,280 --> 00:48:42,410 Je ne peux vraiment compter sacrément rapide lorsque J'écris un programme comme celui-ci. 1014 00:48:42,410 --> 00:48:45,480 >> Maintenant, nous allons faire quelque chose d'un peu involontaire. 1015 00:48:45,480 --> 00:48:51,220 Que diriez-vous, nous allons faire tout i est supérieur ou égal à 0. 1016 00:48:51,220 --> 00:48:53,630 Qu'est-ce cela va induire? 1017 00:48:53,630 --> 00:49:01,030 Donc logiquement, ce n'est pas si sage, parce que maintenant si je RERUN cela, raconter, 1018 00:49:01,030 --> 00:49:05,050 Je peux maintenant compter vraiment, vraiment élevé. 1019 00:49:05,050 --> 00:49:08,850 Malheureusement, à peu près aussi élevé que possible nombre est de 4 milliards de dollars, si cela va 1020 00:49:08,850 --> 00:49:10,140 prendre un certain temps. 1021 00:49:10,140 --> 00:49:13,440 >> Alors pourquoi ne pas nous quittons ce que notre cliffhanger, promettant que le 1022 00:49:13,440 --> 00:49:15,650 Mercredi, nous allons voir si Ce programme est effectué. 1023 00:49:15,650 --> 00:49:19,260 Deuxièmement, nous allons présenter comment vous vous écrire votre propre fonction de sorte que très 1024 00:49:19,260 --> 00:49:22,930 rapidement, le mercredi, nous allons, comme nous l' transition à partir de zéro en C, commencer 1025 00:49:22,930 --> 00:49:25,880 écrit toujours de plus en plus complexe programmes qui font beaucoup, 1026 00:49:25,880 --> 00:49:27,070 beaucoup plus que cela. 1027 00:49:27,070 --> 00:49:28,766 Nous vous verrons ensuite. 1028 00:49:28,766 --> 00:49:31,580 >> [Applaudissements] 1029 00:49:31,580 --> 00:49:34,690 >> INTERLOCUTEUR 1: Lors de la prochaine CS50, Journée Puzzle a été un succès. 1030 00:49:34,690 --> 00:49:39,690