1 00:00:00,000 --> 00:00:01,500 >> [Musik zu spielen] 2 00:00:01,500 --> 00:00:11,000 3 00:00:11,000 --> 00:00:16,110 >> DAVID MALAN: Okay das ist CS50 und dies ist das Ende der ersten Woche. 4 00:00:16,110 --> 00:00:20,760 So würde Ich mag meinen ehemaligen vorstellen advisee, Andel Duff, der nicht nur macht 5 00:00:20,760 --> 00:00:25,460 iPhone 5 steht, sowie diese Rednerpult, er macht auch Autos. 6 00:00:25,460 --> 00:00:27,927 7 00:00:27,927 --> 00:00:29,510 ANSEL DUFF: Wie läuft es, alle? 8 00:00:29,510 --> 00:00:31,980 Ich möchte Ihnen nur sagen, ein wenig wenig über die Formula SAE, von denen ich 9 00:00:31,980 --> 00:00:32,604 bin der Kapitän. 10 00:00:32,604 --> 00:00:33,437 Es ist ein MIT-Team. 11 00:00:33,437 --> 00:00:35,520 Ich möchte Ihnen nur sagen, Jungs ein wenig über sie 12 00:00:35,520 --> 00:00:37,520 und hoffentlich ein gewisses Interesse zu generieren. 13 00:00:37,520 --> 00:00:41,590 >> Also lassen Sie mich nur durch einen Lauf paar Dinge über unser Team. 14 00:00:41,590 --> 00:00:43,640 So dass wir komplett sind Schüler laufen, wobei alle 15 00:00:43,640 --> 00:00:47,300 Mitglieder des Design, Simulation, Test und Hersteller ein Subsystem 16 00:00:47,300 --> 00:00:48,090 des Fahrzeugs. 17 00:00:48,090 --> 00:00:51,240 Wir haben unsere eigene Werkstatt und Garagen, und N52-- oder Leid, 18 00:00:51,240 --> 00:00:54,140 N51--, die die gleichen Gebäude ist wie der MIT Science Museum. 19 00:00:54,140 --> 00:00:55,990 Und wir sind das Volk dass das Auto zu fahren. 20 00:00:55,990 --> 00:00:58,340 Es gibt einen nationalen Wettbewerb zu Beginn des Sommers, 21 00:00:58,340 --> 00:01:01,215 und dann gibt es kleinere Schießen Wettbewerbe während des ganzen Jahres. 22 00:01:01,215 --> 00:01:04,400 Und dann tun wir Fahrertraining Tage, um neue Mitglieder kennen. 23 00:01:04,400 --> 00:01:08,280 >> Unser Build Tage sind auf Samstags von 11.00 bis 20.00 Uhr. 24 00:01:08,280 --> 00:01:11,060 Mittag-und Abendessen kümmern der, von Bertucci und Beantown 25 00:01:11,060 --> 00:01:12,130 jeweils. 26 00:01:12,130 --> 00:01:15,260 Wir haben eine wöchentliche Besprechung und Seminar, das für Kurs Kredit ist. 27 00:01:15,260 --> 00:01:18,560 Das ist neu ab diesem Semester, und es wird auch für das nächste Semester, 28 00:01:18,560 --> 00:01:19,940 so können Sie überqueren-REG dafür. 29 00:01:19,940 --> 00:01:22,960 Und dann haben wir die Ausgestaltung, Shop, und CAD-Tage während der Woche, 30 00:01:22,960 --> 00:01:26,870 Erwägung, dass Mitglieder wird unabhängig CAD-Teile, Auftragsbestand und so weiter. 31 00:01:26,870 --> 00:01:29,200 >> Also für elektrische Technik an der Team 32 00:01:29,200 --> 00:01:31,110 wir haben unsere Zugkraft, Hochspannungssystem, 33 00:01:31,110 --> 00:01:33,390 die bei einer Nenn läuft 300 Volt, die beinhaltet 34 00:01:33,390 --> 00:01:35,360 Motoren, Motorregler, und Akku-Packs. 35 00:01:35,360 --> 00:01:37,235 Dann haben wir eine geringe Spannungssystem, das läuft 36 00:01:37,235 --> 00:01:40,180 bei 12 Volt, die umfasst Kontrollen können Knoten, die das Gehirn 37 00:01:40,180 --> 00:01:41,570 Box, und das Armaturenbrett. 38 00:01:41,570 --> 00:01:43,890 So weit CS geht, tun wir haben Website-Pflege 39 00:01:43,890 --> 00:01:47,940 , die wir brauchen für Veranstaltungen gemacht, Mitgliedschaft Änderungen, neue Bilder und PR-Material. 40 00:01:47,940 --> 00:01:51,540 Und dann haben wir Code, dass die Kontrollen Auto für unsere Traktionskontrolle, Launch 41 00:01:51,540 --> 00:01:55,750 Steuer, Bindestrich Kontrolle, Torque Vectoring, und regenerative Bremssysteme, die 42 00:01:55,750 --> 00:01:59,170 laufen typischerweise in MATLAB, Simulink und LabView. 43 00:01:59,170 --> 00:02:00,910 >> Ihnen sagen, ein wenig über das Auto. 44 00:02:00,910 --> 00:02:02,470 So ist es etwa 500 Pfund. 45 00:02:02,470 --> 00:02:04,285 Es ist zu 85 Kilowatt Regeln beschränkt. 46 00:02:04,285 --> 00:02:08,310 Es verfügt über 2 207 Motoren EMRAX in der zurück, eine für jedes Hinterrad. 47 00:02:08,310 --> 00:02:11,880 Es hat maßgeschneiderte Akku-Packs von Prismatic A123 Pouch-Zellen, 48 00:02:11,880 --> 00:02:14,780 in Höhe von 300 Volt und 5,6 Kilowattstunden. 49 00:02:14,780 --> 00:02:17,950 Und es ist mit Direktantrieb ein 2,64-1 Antriebsverhältnis. 50 00:02:17,950 --> 00:02:20,970 Hier sind einige Bilder, die wir nahm es an Wettbewerb. 51 00:02:20,970 --> 00:02:25,820 Hier ist der Rücken, die Nase Kegel, und hier sind die Motoren, 52 00:02:25,820 --> 00:02:29,682 diese großen schwarzen Scheiben unter der manus et mens. 53 00:02:29,682 --> 00:02:32,140 Hier ist eine Folie, die ich gezogen aus unserem Wettbewerb Schema. 54 00:02:32,140 --> 00:02:35,389 Und das ist nur unser Auto im Vergleich zu einem Paar von im Handel erhältlichen Autos, 55 00:02:35,389 --> 00:02:38,380 KTM X-BOW, wie die, Ariel Atom und Caterha M 7-280. 56 00:02:38,380 --> 00:02:42,110 Wenn Sie mit Preis vertraut sind, Leistung ziehen Gewicht, Dollar pro PS, 57 00:02:42,110 --> 00:02:44,930 Dollar pro Drehmoment, und unser Auto bläst sie alle aus dem Wasser. 58 00:02:44,930 --> 00:02:47,520 Wenn Sie irgendwelche Fragen haben, notieren Sie diese E-Mail-Adresse ein. 59 00:02:47,520 --> 00:02:50,800 Schießen Sie uns eine E-Mail an fsae@mit.edu. 60 00:02:50,800 --> 00:02:53,350 >> Wir freuen uns, darüber zu sprechen alles, was Sie möchten. 61 00:02:53,350 --> 00:02:55,600 Harvard-Studenten sind freundlich der Minderheit im Team. 62 00:02:55,600 --> 00:02:58,350 Wenn Sie Fragen zu bitte tun Sie uns eine E-Mail zu schießen, 63 00:02:58,350 --> 00:03:00,810 glücklich zu reden, und ich werde über David den Kopf zurück. 64 00:03:00,810 --> 00:03:01,550 Danke. 65 00:03:01,550 --> 00:03:02,466 Ich schätze es, Jungs. 66 00:03:02,466 --> 00:03:03,615 [Applaus] 67 00:03:03,615 --> 00:03:07,080 68 00:03:07,080 --> 00:03:10,980 >> DAVID MALAN: Ansel verbrachte den Sommer Zusammenarbeit mit uns hier auf dem Campus in CS50 69 00:03:10,980 --> 00:03:11,480 in diesem Sommer. 70 00:03:11,480 --> 00:03:13,505 Und neben der Arbeit an Dinge wie die binären Glühbirnen, 71 00:03:13,505 --> 00:03:16,090 er eigentlich wirklich eröffnet unseren eyes-- und Mine in particular-- 72 00:03:16,090 --> 00:03:20,535 zu dem, was wirklich der Kreuzung der nicht von Hardware und Software sein kann. 73 00:03:20,535 --> 00:03:23,410 In der Tat eine Menge Dinge, die er nur tourte Sie durch sind letztlich 74 00:03:23,410 --> 00:03:26,030 erstellt zunächst in Software, und dann letztendlich hergestellt 75 00:03:26,030 --> 00:03:27,299 in der realen Welt in der Hardware. 76 00:03:27,299 --> 00:03:29,590 Also, wenn Sie interessiert sind Erkundung dieser Kreuzung, 77 00:03:29,590 --> 00:03:31,430 vielleicht nehmen diese Gruppe. 78 00:03:31,430 --> 00:03:34,140 >> Jetzt unterdessen die von Ihnen die Fans der Technik sind, 79 00:03:34,140 --> 00:03:36,140 und Apple-Produkte in insbesondere wissen, dass es 80 00:03:36,140 --> 00:03:37,860 waren ein paar Ankündigungen gestern. 81 00:03:37,860 --> 00:03:39,776 Aber wir dachten, wir würden zeigen Sie eine, die herauskamen 82 00:03:39,776 --> 00:03:43,590 ein paar Tage vor, dass Sie vielleicht nicht gesehen haben. 83 00:03:43,590 --> 00:03:46,150 >> JORGEN EGHAMMER: Sie wissen, einmal in eine Weile etwas 84 00:03:46,150 --> 00:03:49,540 kommt daher, dass ändert die Art, wie wir leben. 85 00:03:49,540 --> 00:03:53,479 Ein Gerät so einfach und intuitiv Verwendung es fühlt sich fast vertraut. 86 00:03:53,479 --> 00:03:59,710 87 00:03:59,710 --> 00:04:04,138 Einführung 2015 IKEA Katalog ein. 88 00:04:04,138 --> 00:04:10,420 Es ist nicht ein Buch oder digitale ein E-Book, ist es ein Buch-Buch. 89 00:04:10,420 --> 00:04:14,440 >> Das erste, was zu beachten ist, nicht Kabel, nicht einmal ein Netzkabel. 90 00:04:14,440 --> 00:04:18,519 IKEA Katalog 2015 kommt voll aufgeladen ist, 91 00:04:18,519 --> 00:04:20,550 und die Lebensdauer der Batterie ist ewig. 92 00:04:20,550 --> 00:04:27,300 Die Schnittstelle ist 7,5 8 Zoll, kann aber auf 15 bis 8 cm zu erweitern. 93 00:04:27,300 --> 00:04:32,410 Die Navigation ist in taktile Touch-basierte Technologie, die Sie tatsächlich fühlen. 94 00:04:32,410 --> 00:04:37,120 >> Inhalt wird vor-installiert über 328 High-Definition-Seiten 95 00:04:37,120 --> 00:04:40,180 inspirierende Einrichtungsideen. 96 00:04:40,180 --> 00:04:43,740 Mit dem Surfen zu beginnen, berühren Sie einfach und ziehen. 97 00:04:43,740 --> 00:04:50,870 Rechts nach links, um vorwärts zu bewegen, von links nach rechts, um rückwärts zu bewegen. 98 00:04:50,870 --> 00:04:52,770 >> Beachten Sie etwas anderes? 99 00:04:52,770 --> 00:04:53,780 Das ist richtig. 100 00:04:53,780 --> 00:04:55,190 Keine Verzögerung. 101 00:04:55,190 --> 00:04:58,400 Jeder Kristall klar Seite Belastungen sofort, 102 00:04:58,400 --> 00:05:00,586 egal wie schnell man scrollen. 103 00:05:00,586 --> 00:05:03,710 Wenn Sie möchten, um einen schnellen Überblick zu bekommen, halten Sie es einfach in der Handfläche, 104 00:05:03,710 --> 00:05:06,816 und mit nur Daumen, Geschwindigkeit den Inhalt zu durchsuchen. 105 00:05:06,816 --> 00:05:10,930 >> Wenn Sie etwas finden, das Sie speichern möchten für später, können Sie einfach bookmarken. 106 00:05:10,930 --> 00:05:17,620 Und selbst wenn Sie die Anwendung schließen, finden Sie leicht das Lesezeichen wieder. 107 00:05:17,620 --> 00:05:18,490 Amazing. 108 00:05:18,490 --> 00:05:20,434 >> [Gelächter] 109 00:05:20,434 --> 00:05:21,406 [Applaus] 110 00:05:21,406 --> 00:05:26,760 111 00:05:26,760 --> 00:05:29,870 Also das bringt uns zu das Ende der Woche ein. 112 00:05:29,870 --> 00:05:31,760 Ein paar Ankündigungen jetzt. 113 00:05:31,760 --> 00:05:33,440 So Schnitte ist jetzt im Gange. 114 00:05:33,440 --> 00:05:36,860 Gehen Sie zu dieser URL hier irgendwann zwischen heute und Freitag mittags 115 00:05:36,860 --> 00:05:39,960 tatsächlich angeben, ob Sie unter denen, weniger komfortabel, mehr 116 00:05:39,960 --> 00:05:41,690 komfortabel, oder irgendwo dazwischen. 117 00:05:41,690 --> 00:05:44,511 >> Dies ist typischerweise eine von denen Dinge, die Sie nur irgendwie kennen. 118 00:05:44,511 --> 00:05:47,510 Und in der Tat diejenigen, die weniger sind komfortable wahrscheinlich wissen, wie viel, 119 00:05:47,510 --> 00:05:49,634 diejenigen von Ihnen, die mehr sind komfortable wissen so viel, 120 00:05:49,634 --> 00:05:54,960 und wieder, wenn Sie sich nicht ganz sicher sind, welche dieser Eimer Sie fallen in sind Sie 121 00:05:54,960 --> 00:05:56,210 wahrscheinlich irgendwo dazwischen. 122 00:05:56,210 --> 00:05:59,810 Aber seien Sie versichert, Sie tauschen können nach ein paar Wochen, wenn es sein muss. 123 00:05:59,810 --> 00:06:02,620 >> In der Zwischenzeit für die kommende Woche wir nicht per se Abschnitte beginnen, 124 00:06:02,620 --> 00:06:04,760 aber super Abschnitte, die sind offen für alle Studenten. 125 00:06:04,760 --> 00:06:08,220 Am kommenden Sonntag an einem Ort zu auf der Kurs-Website bekannt gegeben 126 00:06:08,220 --> 00:06:10,190 wir haben eine für Die weniger komfortabel, 127 00:06:10,190 --> 00:06:12,470 sowie eine für diejenigen, komfortabler. 128 00:06:12,470 --> 00:06:15,460 Und diejenigen, irgendwo zwischen können wählen, welche der beiden, 129 00:06:15,460 --> 00:06:17,360 oder beides, wenn Sie möchten, um Sit-in auf. 130 00:06:17,360 --> 00:06:19,630 Und der Fokus von denen, schließlich auf C, 131 00:06:19,630 --> 00:06:22,440 auf die wir setzen unsere Gespräch von heute. 132 00:06:22,440 --> 00:06:25,070 >> Problem Satz 0 ist mittlerweile hoffentlich in Ihren Händen. 133 00:06:25,070 --> 00:06:27,500 Offiziell morgen fällig, Donnerstag, am Mittag. 134 00:06:27,500 --> 00:06:29,490 Es sei denn, Sie Bargeld in einem Ihre 5 Tage zu spät, 135 00:06:29,490 --> 00:06:31,780 was es bringen würde bis Freitag Mittag. 136 00:06:31,780 --> 00:06:34,420 Problem 1 gesetzt wird mittlerweile auf der Website der Kurs gebucht. 137 00:06:34,420 --> 00:06:37,381 Und dies wird unsere erste sein Vorstoß als eine Klasse in C 138 00:06:37,381 --> 00:06:40,630 Und das Problem wird eingestellt spec Sie zu Fuß durch eine Menge von der Mechanik, was 139 00:06:40,630 --> 00:06:43,960 wir begannen zu reden am Montag, und wir werden weiter reden heute. 140 00:06:43,960 --> 00:06:46,770 C, Linux, das CS50 Gerät, das alles 141 00:06:46,770 --> 00:06:48,990 werden Sie in der Spezifikation zu erwarten. 142 00:06:48,990 --> 00:06:52,840 >> Bürozeiten mittlerweile im Gange sind, in der Bachelor-Speisesaal. 143 00:06:52,840 --> 00:06:56,240 Kopf dieser URL hier, um das zu sehen Zeitplan für heute Abend und morgen, 144 00:06:56,240 --> 00:06:57,930 wenn Sie möchten, um teilzunehmen. 145 00:06:57,930 --> 00:07:01,920 Fragen inzwischen so, dass Sie Gelegenheit haben, Fragen zu stellen 146 00:07:01,920 --> 00:07:05,860 asynchron, 24/7, erkennen Sie nicht auf Abschnitte beschränkt und Büro 147 00:07:05,860 --> 00:07:09,530 Stunden, sondern eher dieses Tool hier, CS50 Diskutieren unter dieser URL 148 00:07:09,530 --> 00:07:12,150 wird der Kurs online sein Bulletin Board Software, über die 149 00:07:12,150 --> 00:07:15,030 Sie können Fragen stellen Klassenkameraden und auch Personal. 150 00:07:15,030 --> 00:07:18,492 Also denken Sie daran, dass der Ressourcen als gut. 151 00:07:18,492 --> 00:07:20,200 Mittlerweile zur Tradition startet an diesem Freitag. 152 00:07:20,200 --> 00:07:23,200 Wie Sie aus erblickt haben letzten Mittwoch Teaser-Video, 153 00:07:23,200 --> 00:07:25,510 wir eine Tradition die meisten haben Jeden Freitag während der Vorlesungszeit 154 00:07:25,510 --> 00:07:28,750 von unter etwa 50 Studenten und Mitarbeiter zu einem lokalen Restaurant 155 00:07:28,750 --> 00:07:31,510 Feuer und Eis, an dem wir sind typischerweise von einigen Alumni verbunden 156 00:07:31,510 --> 00:07:33,850 oder Freunden aus der Industrie allgemein streben 157 00:07:33,850 --> 00:07:35,780 zu machen, eine große Klasse fühlen kleiner. 158 00:07:35,780 --> 00:07:37,560 Also ist es eine völlig zwangloses Mittagessen. 159 00:07:37,560 --> 00:07:40,160 Ein paar von uns, die Mitarbeiter besonders, nach Jerusalem zu spielen 160 00:07:40,160 --> 00:07:43,360 und mit den Schülern über die Chat- 50, das Leben außerhalb von 50, 161 00:07:43,360 --> 00:07:46,510 Leben in der Zukunft, die reale Welt, Ich freue mich über Arbeitsmöglichkeiten im Gespräch 162 00:07:46,510 --> 00:07:47,680 mit Freunden in der Industrie. 163 00:07:47,680 --> 00:07:51,110 >> Also, wenn Sie möchten, sich uns anzu an diesem Freitag, den Kopf zu dieser URL hier. 164 00:07:51,110 --> 00:07:54,180 Der Platz ist begrenzt, aber wir werden dies tun wiederkehrend während der Laufzeit. 165 00:07:54,180 --> 00:07:57,380 Kopf da, um cs50.harvard.edu/rsvp. 166 00:07:57,380 --> 00:07:59,380 Und wenn Sie nicht bekommen, in dieses Mal keine Sorgen machen. 167 00:07:59,380 --> 00:08:02,390 Wir werden es wieder tun, in Die kommenden Wochen auch. 168 00:08:02,390 --> 00:08:05,434 >> Also das ist das Bild, wir letzte Woche gemalt, 169 00:08:05,434 --> 00:08:07,350 und Sie haben wahrscheinlich gewesen Einstieg in so weit. 170 00:08:07,350 --> 00:08:10,360 Aber lassen Sie uns versuchen, dies jetzt zu verbinden zu dem, was wir heute tun 171 00:08:10,360 --> 00:08:11,440 und weiter. 172 00:08:11,440 --> 00:08:14,760 Könnte ich einen Freiwilligen? 173 00:08:14,760 --> 00:08:16,000 Alles klar, oder mehrere. 174 00:08:16,000 --> 00:08:18,460 Wie wäre es hier auf der Ende, in der blauen Hemd. 175 00:08:18,460 --> 00:08:20,329 Komm up, was ist Ihr Name? 176 00:08:20,329 --> 00:08:20,870 ALANA: Alana. 177 00:08:20,870 --> 00:08:21,661 DAVID MALAN: Alana. 178 00:08:21,661 --> 00:08:25,100 So Alana, für nur ein moment-- nice to meet Sie-- 179 00:08:25,100 --> 00:08:28,260 wird sich die Rolle zu spielen dieser Funktion hier. 180 00:08:28,260 --> 00:08:31,290 Die lila Block wir haben genannt bisher eine Funktion. 181 00:08:31,290 --> 00:08:34,830 Also, was ich werde gehen vor und bieten hier Alana 182 00:08:34,830 --> 00:08:38,380 ist ein wenig Namensschild, damit klar, welche Rolle Sie spielen. 183 00:08:38,380 --> 00:08:39,753 >> So werdet ihr das sagen wir stehen. 184 00:08:39,753 --> 00:08:41,419 Wenn Sie weitermachen und das rechne möchten. 185 00:08:41,419 --> 00:08:43,169 Und wir sind zu gehen halten diese super einfach. 186 00:08:43,169 --> 00:08:46,180 Wenn das Ziel bei der Hand ist einfach Jetzt, mit Alana zu implementieren, 187 00:08:46,180 --> 00:08:49,710 diese so genannte Block sagen, hier ist, wie es funktionieren wird. 188 00:08:49,710 --> 00:08:52,574 Ich have-- nennen wir es ein Argument oder Parameter, 189 00:08:52,574 --> 00:08:54,240 es ist wirklich nur ein leeres Blatt Papier. 190 00:08:54,240 --> 00:08:57,239 Und es ist weiß bis Art erinnert werden der White-Box, in die Sie 191 00:08:57,239 --> 00:08:58,080 können Wörter zu schreiben. 192 00:08:58,080 --> 00:09:00,660 >> Inzwischen werde ich hier. 193 00:09:00,660 --> 00:09:06,560 Ich werde weitermachen und schreiben H-E-L-L-O Komma Welt. 194 00:09:06,560 --> 00:09:09,972 Und jetzt habe ich, wie der Programmierer sagen, nicht eigentlich wissen, wie man etwas zu sagen. 195 00:09:09,972 --> 00:09:12,180 Ich kann mit den Worten kommen, aber ich nicht unbedingt 196 00:09:12,180 --> 00:09:15,220 wissen, wie ich mich ausdrücken mündlich oder auf dem Bildschirm. 197 00:09:15,220 --> 00:09:17,280 Und so, was ich tun müssen, ist dieses Stück nehmen 198 00:09:17,280 --> 00:09:21,157 Funktionalität, deren input-- oder Argumente, wie wir es nennen, 199 00:09:21,157 --> 00:09:23,990 Ich habe auf diesem Stück geschrieben paper-- und ich werde es auszulagern. 200 00:09:23,990 --> 00:09:26,831 >> Und in der Tat, das ist die Rolle, die Funktionen in einer Programmiersprache 201 00:09:26,831 --> 00:09:27,330 spielen können. 202 00:09:27,330 --> 00:09:29,246 So etwas wie das Wort Block kann ausgelagert werden 203 00:09:29,246 --> 00:09:32,074 an jemanden, der wirklich weiß, was sie oder er spricht. 204 00:09:32,074 --> 00:09:33,990 Also, wenn Sie über Schritt hier nur für einen Moment, 205 00:09:33,990 --> 00:09:40,092 Ich werde diesen Eingang passieren Alana, und bitten Sie, diese Eingabe zu sagen. 206 00:09:40,092 --> 00:09:41,202 >> ALANA: Hallo, Welt. 207 00:09:41,202 --> 00:09:42,160 DAVID MALAN: Das ist es. 208 00:09:42,160 --> 00:09:43,326 So daß es eine Funktion ist. 209 00:09:43,326 --> 00:09:46,556 Jetzt können wir es ein wenig mehr zu nehmen, können wir einen Schritt nach vorne hier nehmen. 210 00:09:46,556 --> 00:09:48,180 Denn das war klar berauschend. 211 00:09:48,180 --> 00:09:51,670 Also lassen Sie uns nun zu wandeln diese etwas ein wenig anspruchsvoller. 212 00:09:51,670 --> 00:09:53,630 >> Also das ist natürlich unsere C-Version. 213 00:09:53,630 --> 00:09:56,760 So, jetzt, wenn Sie das machen wollen One aus, dass Namensschild ab, 214 00:09:56,760 --> 00:09:58,530 und lassen Sie uns Ihnen einen neuen Namen setzen. 215 00:09:58,530 --> 00:10:00,850 Aber im Grunde sind Sie die gleiche Rolle spielen, 216 00:10:00,850 --> 00:10:03,400 es passiert einfach so zu printf jetzt genannt werden. 217 00:10:03,400 --> 00:10:06,930 >> Die Geschichte ist natürlich, werde wahrscheinlich BE-- 218 00:10:06,930 --> 00:10:09,317 ebenso ist underwhelming-- gehen, die folgenden werden. 219 00:10:09,317 --> 00:10:10,650 Sie sind nun die Funktion printf. 220 00:10:10,650 --> 00:10:13,300 Ich bin der Anrufer oder die Programmierer, der will 221 00:10:13,300 --> 00:10:15,745 um auf den Schultern stehen Menschen in der Vergangenheit, wie Sie, 222 00:10:15,745 --> 00:10:18,670 , die bereits herausgefunden haben, wie , tatsächlich etwas zu notieren. 223 00:10:18,670 --> 00:10:20,650 Und so dieses Mal, eher als, sagen wir es 224 00:10:20,650 --> 00:10:22,255 tatsächlich nutzen unsere Bildschirm hier. 225 00:10:22,255 --> 00:10:24,130 Also, wenn Sie möchten, um Schritt hier, ich werde 226 00:10:24,130 --> 00:10:27,196 wieder diese als Pass Eingang zu meinem printf Freund. 227 00:10:27,196 --> 00:10:29,320 Wenn Sie könnten weitermachen und drucken, die auf dem Bildschirm, 228 00:10:29,320 --> 00:10:31,611 einfach durch Ziehen mit der Finger auf den schwarzen Bildschirm. 229 00:10:31,611 --> 00:10:43,680 230 00:10:43,680 --> 00:10:44,180 Ausgezeichnet. 231 00:10:44,180 --> 00:10:47,350 Alles in Ordnung, so viel Spannung für wie das im Begriff war, spielen. 232 00:10:47,350 --> 00:10:51,390 >> So, jetzt nehmen die Dinge einen lassen letzte Kerbe, wenn wir könnten, wie folgt. 233 00:10:51,390 --> 00:10:53,980 Also das ist ein C-Programm wie wir das letzte Mal gesagt. 234 00:10:53,980 --> 00:10:57,460 Und dies nur tut, was Sie getan haben, ist es druckt auf den Bildschirm, hallo, Welt. 235 00:10:57,460 --> 00:11:00,290 Auch wenn es eindeutig viel von störenden Zeug da oben. 236 00:11:00,290 --> 00:11:03,630 Aber lassen Sie uns die Dinge noch ein Stück und Einführung dieser Version, die daran erinnern, 237 00:11:03,630 --> 00:11:06,160 war die dritte Version, die wir landeten mit letzten Mal. 238 00:11:06,160 --> 00:11:09,120 >> Und jetzt gibt es deutlich zwei Verwendungen von printf. 239 00:11:09,120 --> 00:11:12,280 Es gibt 2 Anrufe zu Alana in diesem Fall für printf, 240 00:11:12,280 --> 00:11:14,740 aber es gibt auch ein Aufruf zu einer anderen Funktion. 241 00:11:14,740 --> 00:11:17,150 Was ist in der Funktion deutlich, dass? 242 00:11:17,150 --> 00:11:17,650 Getstring. 243 00:11:17,650 --> 00:11:18,980 >> Können wir noch einen Freiwilligen? 244 00:11:18,980 --> 00:11:20,980 OK, kommen Sie auf. 245 00:11:20,980 --> 00:11:21,805 Wie heißen Sie? 246 00:11:21,805 --> 00:11:22,990 >> Javier: Javier. 247 00:11:22,990 --> 00:11:24,750 >> DAVID MALAN: Javier, komm auf. 248 00:11:24,750 --> 00:11:27,270 So Javier hat die Aufgabe, auf dieses Stück Papier. 249 00:11:27,270 --> 00:11:28,860 Die werde ich allgemein s nennen. 250 00:11:28,860 --> 00:11:32,250 Nun ist dies eine Variable, es ist vom Typ string, als stillschweigend 251 00:11:32,250 --> 00:11:34,290 durch diese zweite Linie in der Mitte gibt. 252 00:11:34,290 --> 00:11:36,540 Und ich möchte, dass Sie gehen, mir einen String. 253 00:11:36,540 --> 00:11:40,120 Insbesondere Kopf nach unten auf das Orchester Abschnitt und mir den Namen einer Person, 254 00:11:40,120 --> 00:11:43,142 und wieder mit einer variablen enthält diesen Wert. 255 00:11:43,142 --> 00:11:44,225 Es kann jemand, den Sie wollen. 256 00:11:44,225 --> 00:11:47,590 257 00:11:47,590 --> 00:11:48,520 >> Auf geht's. 258 00:11:48,520 --> 00:11:53,620 259 00:11:53,620 --> 00:11:55,960 Alles in Ordnung, ist Javier Schreiben Sie sich den Namen. 260 00:11:55,960 --> 00:12:02,210 261 00:12:02,210 --> 00:12:03,280 In Ordnung. 262 00:12:03,280 --> 00:12:05,740 Wir alle können sich wahrscheinlich vorstellen, wie das wird spielen. 263 00:12:05,740 --> 00:12:07,489 Wir vielleicht herumzureiten der Punkt, von dem, was 264 00:12:07,489 --> 00:12:10,320 eine Funktion tut, aber trotzdem danke Ihnen sehr. 265 00:12:10,320 --> 00:12:13,890 >> Javier hat so diese Zeichenfolge zurückgegeben hier, die nicht ganz sehen können, 266 00:12:13,890 --> 00:12:15,800 Jonathan ist der String dass wir bekommen habe. 267 00:12:15,800 --> 00:12:18,330 So, jetzt, was ich eigentlich vor sich geht zu bieten, obwohl Alana 268 00:12:18,330 --> 00:12:20,150 ist etwas, das ein wenig anders. 269 00:12:20,150 --> 00:12:23,800 Da in dieser Version von der Programm, zuerst gibt es Ihren Namen. 270 00:12:23,800 --> 00:12:26,160 So sehr der erste Argument Ich muss Alana bieten 271 00:12:26,160 --> 00:12:33,030 mit sein wird buchstäblich Ihren Namen. 272 00:12:33,030 --> 00:12:35,280 Alles klar, so einfach ist das Ich würde dies übergeben können. 273 00:12:35,280 --> 00:12:36,730 Und wie ich schreiben, bis die nächste Argument, wenn Sie 274 00:12:36,730 --> 00:12:39,230 wollen, gehen Sie vor und schreiben Sie diese auf dem Board, lassen Sie uns weitermachen 275 00:12:39,230 --> 00:12:42,659 und tun das letzte Beispiel hier zu machen zu löschen, was letztlich etwas geschehen. 276 00:12:42,659 --> 00:12:44,450 So geben Sie Ihren Namen, schreiben Sie es nach oben 277 00:12:44,450 --> 00:12:47,220 wenn Sie nichts dagegen haben, gerade so, dass Wir haben Platz für eine zweite Linie. 278 00:12:47,220 --> 00:12:52,890 Weil das letzte, was ich werde Bisher bieten Ihnen nicht ein, 279 00:12:52,890 --> 00:12:57,220 aber zwei Blatt Papier. 280 00:12:57,220 --> 00:12:58,074 >> In Ordnung. 281 00:12:58,074 --> 00:13:01,920 H-E-L-L-O Komma und dann eine Leerzeile. 282 00:13:01,920 --> 00:13:04,780 Also, was ich bin zu Alana jetzt Hand ist etwas, das ein wenig anders. 283 00:13:04,780 --> 00:13:08,600 Sie ist nicht nur immer diese, wo Lücke ausfüllen stellt 284 00:13:08,600 --> 00:13:12,050 dass percent-- was war der Platzhalter wir habe mit? 285 00:13:12,050 --> 00:13:13,890 Ja, so s Prozent. 286 00:13:13,890 --> 00:13:16,530 Inzwischen werde ich weitergeben sie in einem zweiten Argument, das 287 00:13:16,530 --> 00:13:19,290 ist genau das, was Javier von Jonathan abgerufen. 288 00:13:19,290 --> 00:13:20,534 >> Also lassen Sie mich Ihnen diese beiden. 289 00:13:20,534 --> 00:13:22,575 Wenn Sie möchten, um, gehen Sie vor und drucken, die Wirkung. 290 00:13:22,575 --> 00:13:25,660 291 00:13:25,660 --> 00:13:28,130 Was letztlich passiert jetzt ist, Alana wieder 292 00:13:28,130 --> 00:13:29,410 spielt die Rolle der printf. 293 00:13:29,410 --> 00:13:32,160 Javier spielte die Rolle der GetString. 294 00:13:32,160 --> 00:13:34,700 So dass Ihre Erinnerung sein. 295 00:13:34,700 --> 00:13:39,910 Und schließlich, was passiert, trotz Diese hello-- yep voran und Komma gehen. 296 00:13:39,910 --> 00:13:41,410 ALANA: Habe ich erhalten diese noch nicht oder nicht? 297 00:13:41,410 --> 00:13:43,451 DAVID MALAN: Yep, Sie erhielt sie beide auf einmal. 298 00:13:43,451 --> 00:13:45,740 Also die Idee ist, dass Sie können jetzt drehen Sie die Seite 299 00:13:45,740 --> 00:13:50,000 , um den zweiten Griff der beiden Eingänge. 300 00:13:50,000 --> 00:13:53,280 So ist dies nur nach Hause zu den Hammer zeigen, dass, während Alana ausgeführt 301 00:13:53,280 --> 00:13:55,830 diese grüne Linie hier, und dann Javier tat dies für uns 302 00:13:55,830 --> 00:13:57,820 und für mich etwas zurück wir s nennen, aber es war wirklich 303 00:13:57,820 --> 00:13:59,520 nur, dass Zettel von seiner eigenen. 304 00:13:59,520 --> 00:14:02,320 Und jetzt Alana hat diese dritte Zeile getan. 305 00:14:02,320 --> 00:14:06,010 >> Und auch wenn das alles sieht so unglaublich kryptische vielleicht 306 00:14:06,010 --> 00:14:08,870 auf den ersten Blick, es ist wirklich ist so einfach wie die. 307 00:14:08,870 --> 00:14:11,390 Vorbei Eingänge herum, immer Ausgänge, entweder 308 00:14:11,390 --> 00:14:14,560 körperlich etwas zurückreicht, oder sehen eine Nebenwirkung wie diese. 309 00:14:14,560 --> 00:14:17,170 Etwas visuell geschrieben auf dem Bildschirm. 310 00:14:17,170 --> 00:14:19,990 Also lassen Sie uns weitermachen und danke Alana und Javier, 311 00:14:19,990 --> 00:14:25,012 wer unten war hier für bei uns hier oben. 312 00:14:25,012 --> 00:14:25,934 >> [Applaus] 313 00:14:25,934 --> 00:14:29,360 314 00:14:29,360 --> 00:14:33,480 >> So, jetzt nehmen wir für selbstverständlich, wie einfach all das auch sein mag. 315 00:14:33,480 --> 00:14:36,775 Und lassen Sie uns gehen, um tatsächlich etwas tun, in eigentlichen Code. 316 00:14:36,775 --> 00:14:40,620 So auf dem Bildschirm hier ist ein Screenshot des sogenannten CS50 Gerät. 317 00:14:40,620 --> 00:14:43,980 Und wenn Sie musste, wie ein 02.00 am Mittwoch Nachmittag, 318 00:14:43,980 --> 00:14:46,602 erklären zu einem gewissen Freund was der CS50 Gerät, 319 00:14:46,602 --> 00:14:48,185 wie würden Sie es in einem Satz beschreiben? 320 00:14:48,185 --> 00:14:52,160 321 00:14:52,160 --> 00:14:53,240 Jeder Satz? 322 00:14:53,240 --> 00:14:54,876 Ja? 323 00:14:54,876 --> 00:14:57,334 STUDENT: Es ist wie ein Programm das macht jeden Computer 324 00:14:57,334 --> 00:14:58,460 laufen mit dem gleichen System. 325 00:14:58,460 --> 00:14:59,210 DAVID MALAN: Gut! 326 00:14:59,210 --> 00:15:02,810 Es ist ein Programm, das alle ermöglicht Computer mit dem gleichen System ausgeführt werden. 327 00:15:02,810 --> 00:15:04,920 Es ist eine Art der eigenen Kopie eines Betriebs 328 00:15:04,920 --> 00:15:07,540 System, das passiert, aufgerufen werden Ubuntu Linux. 329 00:15:07,540 --> 00:15:11,070 Und es läuft effektiv innerhalb von ein Fenster auf dem eigenen Mac oder PC, 330 00:15:11,070 --> 00:15:15,080 so daß auf diese Weise direkt aus der Gate in Woche 1, jeder hier in der Klasse 331 00:15:15,080 --> 00:15:17,590 Zugriff auf die gleichen Werkzeuge, die gleiche Konfiguration, 332 00:15:17,590 --> 00:15:21,250 und es gibt keine Lernkurve spezifischen auf einem Mac oder PC im Besonderen. 333 00:15:21,250 --> 00:15:25,620 >> Jetzt eröffneten wir auf, im Inneren des CS50 Gerät am Montag, den dieses Programm hier. 334 00:15:25,620 --> 00:15:27,040 Es passiert gedit aufgerufen werden. 335 00:15:27,040 --> 00:15:29,050 Aber das ist wirklich nur ein grafischer Editor. 336 00:15:29,050 --> 00:15:33,170 Es ist so etwas wie Notepad oder Text Bearbeiten Sie auf Windows-oder Mac OS sind. 337 00:15:33,170 --> 00:15:36,720 Und ich vorgeschlagen, dass es wirklich drei wichtige Teile zu diesem Bildschirm. 338 00:15:36,720 --> 00:15:39,560 Die Oberseite ist, wo Sie würde Ihr Code zu schreiben. 339 00:15:39,560 --> 00:15:44,080 Und das ist, wo wir viel von verbrachten unsere drei Beispiele am Montag im Vortrag. 340 00:15:44,080 --> 00:15:47,650 Der Boden genannt wir, was, Dieser schwarze Fenster, ja? 341 00:15:47,650 --> 00:15:48,640 >> STUDENT: Compiler? 342 00:15:48,640 --> 00:15:51,500 >> DAVID MALAN: Compiler wir durch das Fenster zugänglich. 343 00:15:51,500 --> 00:15:53,040 Aber im Allgemeinen. 344 00:15:53,040 --> 00:15:54,540 Ja, es war nur ein Terminal-Fenster. 345 00:15:54,540 --> 00:15:57,780 Dies ist eine uralte Begriff, der nur beschreibt im Wesentlichen ein Blinken 346 00:15:57,780 --> 00:16:01,910 Aufforderung, dass vor Jahren verwendet, um auf sein einem dieser großen CRT-Monitore Stil. 347 00:16:01,910 --> 00:16:04,300 Aber heutzutage ist es Art von virtuellen in Software. 348 00:16:04,300 --> 00:16:06,710 Und die Terminal-Fenster Lassen Sie uns uns Befehle eingeben. 349 00:16:06,710 --> 00:16:11,750 Es ist eine Art der vereinfachten Version der Benutzerschnittstelle oder Benutzeroberfläche. 350 00:16:11,750 --> 00:16:14,060 Es ist nicht eine graphische Benutzerschnittstelle oder GUI, 351 00:16:14,060 --> 00:16:17,250 es ist eine textbasierte Schnittstelle oder eine Befehlszeilenschnittstelle. 352 00:16:17,250 --> 00:16:20,770 >> Und in der Tat, das ist, wo letztlich Ich war in der Lage, einen Code zu schreiben. 353 00:16:20,770 --> 00:16:24,200 Einmal hatte ich einen Code geschrieben, obwohl, daran erinnern, dass ich diesen Befehl. 354 00:16:24,200 --> 00:16:26,210 Und wie es der Name Art der sagt, diese 355 00:16:26,210 --> 00:16:29,860 ermöglicht es mir, eine zu machen Programm namens Hallo. 356 00:16:29,860 --> 00:16:33,400 Aber was war es wirklich tun? 357 00:16:33,400 --> 00:16:36,180 Nun Make nahm meine Eingang, mein Quellcode, 358 00:16:36,180 --> 00:16:39,380 und deren Umwandlung, was letztlich? 359 00:16:39,380 --> 00:16:40,060 >> Objektcode. 360 00:16:40,060 --> 00:16:42,790 Und Objekt-Code ist nur eine Phantasie Art zu sagen, Nullen und Einsen. 361 00:16:42,790 --> 00:16:46,420 Und dann, wenn ich wollte , um das Objekt-Code auszuführen, 362 00:16:46,420 --> 00:16:50,940 Ich wollte einmal als Eingangs diejenigen weitergeben Nullen und Einsen in meinen Computer 363 00:16:50,940 --> 00:16:54,430 Gehirn, die sogenannte CPU oder eine zentrale Verarbeitungseinheit, 364 00:16:54,430 --> 00:16:55,730 Ich musste das Programm auszuführen. 365 00:16:55,730 --> 00:16:59,042 Aber es war nicht ganz einfach am Montag, als nur einen Doppelklick auf eine Symbol. 366 00:16:59,042 --> 00:17:01,375 Was stattdessen musste ich zu tun, um ein Programm zu starten? 367 00:17:01,375 --> 00:17:04,130 368 00:17:04,130 --> 00:17:07,890 >> Was war das zweite Befehl? 369 00:17:07,890 --> 00:17:09,619 Ich höre ein wenig Schrägstriche? 370 00:17:09,619 --> 00:17:10,544 Ja, ja? 371 00:17:10,544 --> 00:17:12,474 >> STUDENT: Dot Schrägstrich und Name des Programms. 372 00:17:12,474 --> 00:17:13,349 DAVID MALAN: Genau. 373 00:17:13,349 --> 00:17:15,030 Punkt Schrägstrich und den Namen des Programms. 374 00:17:15,030 --> 00:17:16,210 Nun, was hatte das zu bedeuten? 375 00:17:16,210 --> 00:17:19,470 Nun ist nur ein Punkt obskuren Weg sagen aktuellen Verzeichnis. 376 00:17:19,470 --> 00:17:23,440 Was auch immer Sie sind in Ordner ist wie verwiesen, wird als Punkt dargestellt. 377 00:17:23,440 --> 00:17:26,680 Der Schrägstrich ist genau das, was Sie gesehen haben Mac OS und Windows für die Jahre, 378 00:17:26,680 --> 00:17:30,329 es ist ein Trennzeichen zwischen einem Verzeichnis oder den Ordner und der Rest von rund Namen. 379 00:17:30,329 --> 00:17:32,620 In Windows kommt es vor, zu gehen nach hinten, in Linux und Mac 380 00:17:32,620 --> 00:17:34,210 OS geschieht es, um vorwärts zu gehen. 381 00:17:34,210 --> 00:17:37,560 Aber es ist nur das Trenn, so ist es nur eine uninteressante syntaktischen Detail. 382 00:17:37,560 --> 00:17:40,440 >> Das saftige Teil ist natürlich der Name des Programms, hallo. 383 00:17:40,440 --> 00:17:42,650 Und das ist, was machen für uns geschaffen. 384 00:17:42,650 --> 00:17:44,910 Es ausgegeben, dass die Datei für uns. 385 00:17:44,910 --> 00:17:46,700 Aber wie haben wir zu diesem Punkt? 386 00:17:46,700 --> 00:17:48,870 Lassen Sie uns nun fragen, die Frage, was wirklich war 387 00:17:48,870 --> 00:17:52,470 denn hier los, zumindest bei Bezug auf einige dieser Syntax? 388 00:17:52,470 --> 00:17:57,000 >> Also in einem Satz oder so, wie haben wir wegzuerklären 389 00:17:57,000 --> 00:17:59,020 Diese erste Zeile, die ist grün markiert? 390 00:17:59,020 --> 00:18:02,998 Was war das erste Zeile zu tun, in Bezug auf mein Programm? 391 00:18:02,998 --> 00:18:03,974 Ja? 392 00:18:03,974 --> 00:18:05,067 >> STUDENT: [unverständlich]. 393 00:18:05,067 --> 00:18:06,150 DAVID MALAN: Sag es noch einmal? 394 00:18:06,150 --> 00:18:08,734 STUDENT: Inklusive und Herunterladen Vergangenheit Funktionen [unverständlich]. 395 00:18:08,734 --> 00:18:09,483 DAVID MALAN: Gut. 396 00:18:09,483 --> 00:18:11,900 Einschließlich, werde ich nicht sagen, Herunterladen, aber lassen Sie uns sagen 397 00:18:11,900 --> 00:18:15,500 einschließlich der Funktionen, die Menschen haben in der Vergangenheit geschrieben. 398 00:18:15,500 --> 00:18:18,260 Und diese Funktionen implementiert sind irgendwo in meinem Computer. 399 00:18:18,260 --> 00:18:20,470 Jemand schrieb eine Datei vor Jahren, und diese Datei 400 00:18:20,470 --> 00:18:23,490 ist irgendwo in der CS50 Appliance oder auf meiner Festplatte 401 00:18:23,490 --> 00:18:24,480 im Allgemeinen. 402 00:18:24,480 --> 00:18:27,810 Und so wird diese Leitung Wesentlichen sagen, gehen finden diese Datei, Standard-I / O Punkt 403 00:18:27,810 --> 00:18:31,740 h und Kopie und ihre Inhalte einfügen hier auf der Spitze meiner Datei 404 00:18:31,740 --> 00:18:33,860 so dass ich nicht zu haben, zu tun, dass ich mich manuell. 405 00:18:33,860 --> 00:18:40,970 >> Und unter den saftigsten Stücke innerhalb von dass wir behauptet Datei war, welche Funktion? 406 00:18:40,970 --> 00:18:45,740 Welche Funktion haben wir gesagt erklärt wurde oder in Standard-I / O dot h genannten 407 00:18:45,740 --> 00:18:47,120 höchstwahrscheinlich? 408 00:18:47,120 --> 00:18:47,900 Printf, oder? 409 00:18:47,900 --> 00:18:50,797 Wir haben nicht auf printf schreiben Montag, es ist nur existierte. 410 00:18:50,797 --> 00:18:52,880 Ähnlich wie Alana kam gerade auf die Bühne und sie gerade 411 00:18:52,880 --> 00:18:55,540 existierte und wusste, wie man zeichnet etwas auf dem Bildschirm, 412 00:18:55,540 --> 00:18:58,660 so hat printf seit vielen Jahren existieren. 413 00:18:58,660 --> 00:19:00,240 Und so ist dies, wie wir darauf zugreifen. 414 00:19:00,240 --> 00:19:03,280 Nun, wenn wir hier auf zu bewegen, Haupt wurde analog wir 415 00:19:03,280 --> 00:19:06,620 sagte zu dem Puzzle-Stück aufgerufen, wenn grüne Flagge angeklickt 416 00:19:06,620 --> 00:19:07,620 in der Welt der Scratch. 417 00:19:07,620 --> 00:19:10,130 Es ist nur eine Art der Standardnamen, die den Menschen 418 00:19:10,130 --> 00:19:13,340 entschieden würde der Betreiber Standardeingangspunkt zu einem Programm. 419 00:19:13,340 --> 00:19:16,540 Das Stück Programmcode dass zuerst ausgeführt wird. 420 00:19:16,540 --> 00:19:19,700 >> Inzwischen sind diese geschweiften Klammern Art, wie die gebogene Form 421 00:19:19,700 --> 00:19:21,410 einer Menge von diesen gelben kratz Stück. 422 00:19:21,410 --> 00:19:24,860 Sie kapseln Art eine ganze Menge von Anweisungen zusammen. 423 00:19:24,860 --> 00:19:28,350 So ist es nur irgendwie zusammenhält einige verwandte Funktionalität. 424 00:19:28,350 --> 00:19:33,750 printf natürlich ist eine Funktion, druckt den Bildschirm, wie wir gerade getan. 425 00:19:33,750 --> 00:19:35,190 >> Was ist mit den Klammern? 426 00:19:35,190 --> 00:19:38,770 Wie würden Sie define-- Auch wenn Sie noch nie programmiert, sondern nur auf der Grundlage 427 00:19:38,770 --> 00:19:41,320 jetzt auf eine zunehmende hoffentlich Intuition, was 428 00:19:41,320 --> 00:19:43,290 werden die Klammern zu tun, dass wir hier? 429 00:19:43,290 --> 00:19:45,450 Oder was sind sie umgebenden? 430 00:19:45,450 --> 00:19:46,360 Ja? 431 00:19:46,360 --> 00:19:49,360 >> STUDENT: Sie sagen, was Sie gehen mit printf drucken. 432 00:19:49,360 --> 00:19:52,401 >> DAVID MALAN: Ja, sie sagen, was Sie gehen mit printf drucken. 433 00:19:52,401 --> 00:19:56,260 Oder allgemeiner sind sie umgibt die Eingaben an die Funktion. 434 00:19:56,260 --> 00:19:58,530 So können Sie fast denken können dieser Klammern 435 00:19:58,530 --> 00:20:01,620 als wie der Metall Clip auf dieser Zwischenablage. 436 00:20:01,620 --> 00:20:05,940 Es ist, was hält, es ist, was verwendet werden soll, um Argumente liefern 437 00:20:05,940 --> 00:20:08,500 in die Funktion, die in Dieser Fall wird als printf. 438 00:20:08,500 --> 00:20:12,390 >> Also in der Regel fast jeder Zeit, die wir eine Funktion aufrufen, 439 00:20:12,390 --> 00:20:14,280 werden wir ein Paar Klammern sehen. 440 00:20:14,280 --> 00:20:17,000 Vielleicht mit etwas in ihm, wie jetzt, vielleicht auch gar nichts drin. 441 00:20:17,000 --> 00:20:19,770 Aber das ist, wo Sie setzen würde die Eingänge oder sogenannte Argumente 442 00:20:19,770 --> 00:20:20,680 einer Funktion. 443 00:20:20,680 --> 00:20:22,470 >> Hier ist eine solche Argumentation. 444 00:20:22,470 --> 00:20:24,467 Ich habe alles markiert zwischen den Anführungszeichen, 445 00:20:24,467 --> 00:20:26,300 denn es stellt sich heraus, in dieser Sprache aufgerufen 446 00:20:26,300 --> 00:20:29,950 C, wenn Sie darstellen wollen eine string--, dass ist ein Wort oder eine Phrase 447 00:20:29,950 --> 00:20:33,470 oder sogar ein paragraph-- müssen Sie umgeben sie mit Anführungszeichen. 448 00:20:33,470 --> 00:20:35,420 Nicht einfache Anführungszeichen, doppelte Anführungszeichen. 449 00:20:35,420 --> 00:20:37,460 Und das ist genau das, was ich hier getan. 450 00:20:37,460 --> 00:20:39,900 >> Inzwischen gibt es eine funky Symbol gegen Ende da. 451 00:20:39,900 --> 00:20:41,600 Der Backslash n. 452 00:20:41,600 --> 00:20:43,460 Was haben wir sagen, dass vertreten? 453 00:20:43,460 --> 00:20:44,093 Ja? 454 00:20:44,093 --> 00:20:44,980 >> STUDENT: Eine neue Linie. 455 00:20:44,980 --> 00:20:45,896 >> DAVID MALAN: Neue Linie. 456 00:20:45,896 --> 00:20:47,910 Richtig, Sie nicht tun Allgemeinen drücken Sie Enter, wenn 457 00:20:47,910 --> 00:20:50,430 Sie wollen das Programm ausspucken eine neue Zeile. 458 00:20:50,430 --> 00:20:54,210 Vielmehr Sie es ausdrücklich sagen, mit dieser zugegebenermaßen obskuren Stück 459 00:20:54,210 --> 00:20:58,770 der Syntax, Backslash n, dass Sie wollen eine neue Linie, um dorthin zu gehen. 460 00:20:58,770 --> 00:20:59,810 Schließlich wird das Semikolon. 461 00:20:59,810 --> 00:21:01,560 Wir haben nicht wirklich sprechen zu viel über diese, 462 00:21:01,560 --> 00:21:04,893 und bei weitem das wird der Fluch der einige sein Ihre Existenz für das erste Problem 463 00:21:04,893 --> 00:21:07,990 gesetzt, wenn Sie gerade nicht erkannt Sie etwas vergessen haben, wie dumm 464 00:21:07,990 --> 00:21:08,614 wie ein Semikolon. 465 00:21:08,614 --> 00:21:11,600 Und in der Regel setzen sie es wird das Problem zu beheben. 466 00:21:11,600 --> 00:21:13,511 Aber was ist es zu tun für uns, würden Sie sagen? 467 00:21:13,511 --> 00:21:15,670 >> STUDENT: [unverständlich]. 468 00:21:15,670 --> 00:21:17,484 >> DAVID MALAN: Sorry? 469 00:21:17,484 --> 00:21:18,532 >> STUDENT: [unverständlich]. 470 00:21:18,532 --> 00:21:19,990 DAVID MALAN: Schlichten eine Erklärung ab. 471 00:21:19,990 --> 00:21:22,770 Es ist irgendwie wie der Punkt am das Ende einer englischen Satz, 472 00:21:22,770 --> 00:21:25,790 während in dieser Sprache C es endet eine Erklärung ab. 473 00:21:25,790 --> 00:21:29,250 Eine Anweisung der Programmierung Code, den Sie möchte nur sagen, 474 00:21:29,250 --> 00:21:30,500 Ich bin damit fertig. 475 00:21:30,500 --> 00:21:32,240 Jetzt feststellen, dass es der einzige hier. 476 00:21:32,240 --> 00:21:34,614 So dass Sie nicht wollen, bekommen in eine Angewohnheit, ein Semikolon 477 00:21:34,614 --> 00:21:36,190 nach jedem geschlossenen Klammer. 478 00:21:36,190 --> 00:21:38,610 Zum Beispiel gibt es keine neben nichtig, und wir werden 479 00:21:38,610 --> 00:21:40,430 kommen zurück in die Zukunft in welchem ​​Leere bedeutet. 480 00:21:40,430 --> 00:21:44,080 Aber in diesem Fall Ihre printf ist eine Funktion oder eine Aussage verwendet wird, 481 00:21:44,080 --> 00:21:47,420 und so wollen wir das haben Endstation am Ende davon. 482 00:21:47,420 --> 00:21:50,980 >> Und ich bin absichtlich Kommissionierung auf C. Und ehrlich gesagt eine Menge von Sprachen wie C, C ++ 483 00:21:50,980 --> 00:21:55,000 Java, JavaScript, und eine beliebige Anzahl von andere Sprachen sind eine Menge von diesen 484 00:21:55,000 --> 00:21:56,730 Art der syntaktischen Details. 485 00:21:56,730 --> 00:22:00,120 Das ist sicherlich, wenn Sie neu sind Programmierung kann wirklich stolpern Sie. 486 00:22:00,120 --> 00:22:02,307 Und Sie werden, merken Sie sich meine Worten, einige von Ihnen werden 487 00:22:02,307 --> 00:22:04,140 haben diese Erfahrung in der Bürozeiten oder am späten 488 00:22:04,140 --> 00:22:07,554 in der Nacht arbeiten auf einigen p-Set, wo Ihre verdammte Programm einfach nicht kompilieren, 489 00:22:07,554 --> 00:22:09,470 es nicht läuft, haben Sie keine Ahnung, was falsch ist, 490 00:22:09,470 --> 00:22:11,513 es scheint völlig logisch richtig für Sie. 491 00:22:11,513 --> 00:22:13,596 Und es ist, weil Sie vergessen etwas wie das Schlagen 492 00:22:13,596 --> 00:22:15,250 ein Semikolon am Ende der Zeile etwas. 493 00:22:15,250 --> 00:22:17,590 >> Aber das sind die Art von Dingen sind Sie werde sofort sehen lernen. 494 00:22:17,590 --> 00:22:20,048 Und in der Tat sind die Dinge, dass der CA und TF haben 495 00:22:20,048 --> 00:22:23,210 Art geschult worden, um zu sehen viel schneller als Sie. 496 00:22:23,210 --> 00:22:26,610 Und so ist das nur zu sagen, wie Sie Tauchen Sie ein in Problem-Set 1 vor allem, 497 00:22:26,610 --> 00:22:28,217 nicht frustriert von diesem Zeug. 498 00:22:28,217 --> 00:22:30,050 Sobald Sie Art akklimatisieren für die Welt, die Sie 499 00:22:30,050 --> 00:22:35,130 beginnen die Dinge zu sehen, die Sie nicht sehen auf den ersten Blick diese erste Woche. 500 00:22:35,130 --> 00:22:37,440 >> So Quellcode ist so etwas. 501 00:22:37,440 --> 00:22:40,370 Wir wollen es in geben die sogenannte Compiler. 502 00:22:40,370 --> 00:22:42,850 Und das Compiler wir sagten, liefert Ausgangs 503 00:22:42,850 --> 00:22:45,660 als Objektcode bekannt ist, die sogenannte Nullen und Einsen. 504 00:22:45,660 --> 00:22:47,747 Aber von dort, was bedeutet das für uns? 505 00:22:47,747 --> 00:22:49,080 Nun, es gibt uns diese Muster. 506 00:22:49,080 --> 00:22:52,020 Und wieder Ihren Computer, Ihre Intel inside, 507 00:22:52,020 --> 00:22:54,350 versteht diese Muster von Nullen und Einsen. 508 00:22:54,350 --> 00:22:57,300 Und manchmal auch die Muster eine tatsächliche Dezimalzahl 509 00:22:57,300 --> 00:22:59,770 wie wir gesehen haben in der vergangenen Woche, manchmal es stellt einen Brief 510 00:22:59,770 --> 00:23:02,730 wie wir sahen, in der vergangenen Woche, manchmal stellt es eine Anweisung, 511 00:23:02,730 --> 00:23:05,460 wie Druck etwas auf den Bildschirm. 512 00:23:05,460 --> 00:23:08,782 >> So printf für instance-- sondern lassen Sie mich zurückzuspulen. 513 00:23:08,782 --> 00:23:11,240 Wir haben seit der Einnahme gewährt dass diese Nullen und Einsen 514 00:23:11,240 --> 00:23:14,200 durch diesen Befehl make produziert. 515 00:23:14,200 --> 00:23:16,050 Aber machen Sie nicht einen Compiler. 516 00:23:16,050 --> 00:23:19,370 Machen, ist nicht das Ding in der Mitte das ist die Herstellung der Nullen und Einsen. 517 00:23:19,370 --> 00:23:23,780 Vielmehr machen, ist nur ein sehr bequem benannt Programm, dessen Zweck im Leben 518 00:23:23,780 --> 00:23:27,267 Wesentlichen um herauszufinden wie Sie Ihr Programm kompilieren. 519 00:23:27,267 --> 00:23:29,350 Und wir verwenden es in diesen ersten Wochen, weil es einfach 520 00:23:29,350 --> 00:23:30,910 spart uns eine Menge Ärger. 521 00:23:30,910 --> 00:23:34,080 >> Aber was machen, ist wirklich tun, wenn Sie hallo zu kompilieren, 522 00:23:34,080 --> 00:23:36,690 ist, wie wir das letzte Mal gesagt, es ist Suche auf der Festplatte 523 00:23:36,690 --> 00:23:40,620 oder im aktuellen Ordner, für Welche Datei genannt, offenbar? 524 00:23:40,620 --> 00:23:41,815 Hello.c, oder? 525 00:23:41,815 --> 00:23:43,190 Das ist nur eine Art Konvention. 526 00:23:43,190 --> 00:23:45,620 Es ist beliebig, aber das ist so wie die Dinge sind. 527 00:23:45,620 --> 00:23:48,620 Zu machen, wenn Sie nur den Namen angeben von einem Programm, das es noch nicht gibt, 528 00:23:48,620 --> 00:23:52,200 es wird für den Quellcode schauen in einer Datei, standardmäßig bedeutet hello.c. 529 00:23:52,200 --> 00:23:53,530 Und wenn er sie findet, großartig. 530 00:23:53,530 --> 00:23:56,650 Es geht um diese Quelle zu konvertieren Code in Objekt-Code für Sie. 531 00:23:56,650 --> 00:23:59,670 >> Aber jedes Mal, wenn ich getroffen habe Geben Sie nach dem Laufen machen hallo, 532 00:23:59,670 --> 00:24:03,560 tun Sie sehen erinnere letzte Mal ein ziemlich lang und kryptisch Folge 533 00:24:03,560 --> 00:24:06,430 von anderen weißen Buchstaben und Zeichen auf dem Bildschirm? 534 00:24:06,430 --> 00:24:11,220 Nun, das war der eigentliche Befehl, der tatsächlichen Compiler, dass lief. 535 00:24:11,220 --> 00:24:15,500 So dass die tatsächliche Compiler wir die meisten verwenden das Semester ist die so genannte Klang. 536 00:24:15,500 --> 00:24:19,280 Einige von Euch werden verwendet haben Visual Studio vor, oder GCC, 537 00:24:19,280 --> 00:24:21,340 oder eine beliebige Anzahl von anderen Compilern. 538 00:24:21,340 --> 00:24:22,620 Wir werden Klappern zu verwenden. 539 00:24:22,620 --> 00:24:26,950 >> Und Klang ermöglicht es uns, tatsächlich zu konvertieren dass der Quellcode auf Objektcode. 540 00:24:26,950 --> 00:24:29,430 Was bedeutet das eigentlich in der Praxis? 541 00:24:29,430 --> 00:24:33,390 Nun lassen Sie mich in eine der gehen meine Ordner vom letzten Mal. 542 00:24:33,390 --> 00:24:35,760 Innenseite des CS50-Appliance. 543 00:24:35,760 --> 00:24:42,080 Und lassen Sie mich gehen Sie vor und erstellen Sie diese gleiche Datei, auch Standard-I / O dot h. 544 00:24:42,080 --> 00:24:42,875 Int main nichtig. 545 00:24:42,875 --> 00:24:46,000 Und wir werden auch in Zukunft wieder kommen zu dem, was int bedeutet und was nichtig Mittel. 546 00:24:46,000 --> 00:24:49,130 Aber jetzt tun können Hallo Welt Backslash n, 547 00:24:49,130 --> 00:24:50,500 So wie wir auf der Platine hat. 548 00:24:50,500 --> 00:24:53,930 >> Lassen Sie mich diese Datei namens hello.c zu speichern. 549 00:24:53,930 --> 00:24:58,280 Und jetzt, wenn ich diese kompilieren Ich lass mich heran could-- in-- Lauf 550 00:24:58,280 --> 00:25:00,450 machen hallo eingeben. 551 00:25:00,450 --> 00:25:02,645 Und dies wiederum war dass sehr kryptisch Linie. 552 00:25:02,645 --> 00:25:05,120 Nun aber zumindest ein Wort wahrscheinlich springt auf Sie. 553 00:25:05,120 --> 00:25:07,087 Clang ist, dass wir vor der Linie sah. 554 00:25:07,087 --> 00:25:10,420 Jetzt gibt es eine Menge anderer Dinge offen dass wir unsere Hände auf für heute winken. 555 00:25:10,420 --> 00:25:14,020 Aber es gibt noch ein paar Untergruppen, ein paar Zeichen in hier 556 00:25:14,020 --> 00:25:14,907 , die von Interesse sind. 557 00:25:14,907 --> 00:25:16,490 Aber ich werde weitermachen und tun dies. 558 00:25:16,490 --> 00:25:18,281 Ich bin zum ersten Lauf los hallo, nur um zu beweisen 559 00:25:18,281 --> 00:25:20,320 dass dies so funktioniert, wie es war Montag. 560 00:25:20,320 --> 00:25:22,330 Aber jetzt werde ich das Programm zu löschen. 561 00:25:22,330 --> 00:25:25,870 Und so wie wir diese Kurznamen letzten Mal, 562 00:25:25,870 --> 00:25:29,787 der Befehl zum Entfernen etwas ist rm, zu entfernen, geben. 563 00:25:29,787 --> 00:25:31,870 Du wirst einige bekommen ziemlich kryptische Fragen. 564 00:25:31,870 --> 00:25:35,210 Kaum zu glauben, dass Sie machen können auch diese Frage schwer zu verstehen. 565 00:25:35,210 --> 00:25:38,100 Aber hallo entfernen reguläre Datei nur Mittel zu tun, die Sie löschen wollen, hallo. 566 00:25:38,100 --> 00:25:42,650 >> Und ich kann weitermachen, geben Sie y für ja, ein, und jetzt ist es weg. 567 00:25:42,650 --> 00:25:45,130 Was bedeutet dies nun, wenn ich meinen Bildschirm zu löschen, 568 00:25:45,130 --> 00:25:47,301 ist, dass anstatt Dabei machen Sie hello-- 569 00:25:47,301 --> 00:25:48,800 Weißt du was, ich bin immer gut darin. 570 00:25:48,800 --> 00:25:50,690 Ich werde mich an den Compiler laufen. 571 00:25:50,690 --> 00:25:53,330 Ich glaube nicht, irgendein Programm zu müssen, herauszufinden, was meine Datei aufgerufen wird. 572 00:25:53,330 --> 00:25:55,370 Ich schrieb hello.c, ich wissen, was es heißt, 573 00:25:55,370 --> 00:25:57,640 Ich bin eindeutig in der Lage, dass die Eingabe. 574 00:25:57,640 --> 00:26:02,620 Also werde ich weitermachen und nicht klirren hello.c ein. 575 00:26:02,620 --> 00:26:03,264 >> Scheint zu funktionieren. 576 00:26:03,264 --> 00:26:05,930 Und es gibt keine zusätzlichen Ausgang, weil Klappern ist der Compiler. 577 00:26:05,930 --> 00:26:08,590 Es ist, was die Umwandlung der Quellcode Nullen und Einsen. 578 00:26:08,590 --> 00:26:12,870 Also, wenn ich jetzt tun dot Schrägstrich hallo ein, hm. 579 00:26:12,870 --> 00:26:14,630 Neue Fehlermeldung heute. 580 00:26:14,630 --> 00:26:17,610 So bash ist nur der Name des blinkende Eingabeaufforderung, die wir verwenden. 581 00:26:17,610 --> 00:26:20,360 Das ist eine grobe Vereinfachung, aber für jetzt, das ist alles das heißt, 582 00:26:20,360 --> 00:26:21,401 es ist der blinkende Eingabeaufforderung. 583 00:26:21,401 --> 00:26:22,880 Und das ist, warum es bei uns schreien. 584 00:26:22,880 --> 00:26:25,690 >> Keine solche Datei oder das Verzeichnis ein wenig einfacher. 585 00:26:25,690 --> 00:26:28,190 Aber sicher habe ich das Objekt-Code. 586 00:26:28,190 --> 00:26:30,930 Aber der Haken ist, dass wenn ich den Befehl eingeben 587 00:26:30,930 --> 00:26:34,650 , um den Inhalt dieser Liste Verzeichnis, das was ist? 588 00:26:34,650 --> 00:26:36,210 ls für Liste. 589 00:26:36,210 --> 00:26:39,332 Es gibt ein paar Sachen hier, einige davon kamen mit dem Gerät, 590 00:26:39,332 --> 00:26:42,040 wie mein Desktop-Ordner, Downloads Ordner, Dropbox-Ordner, und alle 591 00:26:42,040 --> 00:26:42,850 das Zeug. 592 00:26:42,850 --> 00:26:45,410 Aber was ist interessant ist hello.c, die 593 00:26:45,410 --> 00:26:47,286 Ich vorhin erstellt mit gedit. 594 00:26:47,286 --> 00:26:49,160 Und was ist das seltsamste Suche Name hier, 595 00:26:49,160 --> 00:26:53,110 vielleicht, dass wir nicht siehe letzte Zeit überhaupt? 596 00:26:53,110 --> 00:26:54,710 >> a.out, oder? 597 00:26:54,710 --> 00:26:56,920 Also zurück in den Tag, es wurde gerade beschlossen, dass, wenn 598 00:26:56,920 --> 00:26:58,760 Sie ein Programm kompilieren zum ersten Mal, 599 00:26:58,760 --> 00:27:02,360 und Sie nicht den Namen angeben einer Datei, nennen wir es ein. 600 00:27:02,360 --> 00:27:05,800 Und a.out bedeutet nur, das war die Ausgabe des Compilers. 601 00:27:05,800 --> 00:27:07,790 Also ist es eine schreckliche Namen für ein Programm. 602 00:27:07,790 --> 00:27:12,820 Aber von dieser Logik dot Schrägstrich für aktuellen Verzeichnis, Schrägstrich a.out, 603 00:27:12,820 --> 00:27:16,102 sollte bedeuten, es gibt in der Tat mein Hallo Welt Programm. 604 00:27:16,102 --> 00:27:17,560 Nun ein wenig Aufwärmübung, auch. 605 00:27:17,560 --> 00:27:20,420 Wenn ich diese umbenennen Datei, stellt sich heraus, dass Sie 606 00:27:20,420 --> 00:27:23,000 Verschieben einer Datei von einem Namen zum anderen. 607 00:27:23,000 --> 00:27:28,750 So mv a.out, und dann habe ich kann es nennen hallo ein. 608 00:27:28,750 --> 00:27:30,940 Das ist also ein Linux-Befehl. 609 00:27:30,940 --> 00:27:34,370 DOS vor Jahren hatte, Windows verfügt über ein Terminal-Fenster 610 00:27:34,370 --> 00:27:36,460 von einer Art, die aussieht wie dieser, Linux und Mac 611 00:27:36,460 --> 00:27:38,140 Computer haben diese blinkenden Eingabeaufforderung. 612 00:27:38,140 --> 00:27:41,490 Auch wenn die meisten von uns wahrscheinlich selten, wenn überhaupt, verwenden Sie es. 613 00:27:41,490 --> 00:27:44,590 >> Aber was ich getan habe, ist laufen ein Programm, dessen Name mv, 614 00:27:44,590 --> 00:27:47,900 und ich habe es mit zur Verfügung gestellt zwei Argumente, so zu sprechen. 615 00:27:47,900 --> 00:27:48,630 Zwei Eingänge. 616 00:27:48,630 --> 00:27:50,260 a.out ist der ursprüngliche Name. 617 00:27:50,260 --> 00:27:51,630 Hallo ist der neue Name. 618 00:27:51,630 --> 00:27:55,670 Also, wenn ich jetzt tun dot Schrägstrich hallo, Enter, besteht, dass. 619 00:27:55,670 --> 00:28:00,770 Und wenn ich Punkt Schrägstrich a.out, was erwarten Sie, ich sollte sehen? 620 00:28:00,770 --> 00:28:02,250 >> Bash, keine solche Datei oder das Verzeichnis. 621 00:28:02,250 --> 00:28:03,350 Weil ich einfach umbenannt. 622 00:28:03,350 --> 00:28:04,975 Also das dauert ein wenig gewöhnungsbedürftig. 623 00:28:04,975 --> 00:28:06,977 Aber das Problem Satz 1 Spezifikation wird wirklich 624 00:28:06,977 --> 00:28:08,810 Halten Sie Ihre Hand durch einige dieser minutae. 625 00:28:08,810 --> 00:28:11,050 Weil dies eine vollständige geistige Ablenkung 626 00:28:11,050 --> 00:28:12,966 vom interessanter Ideen an die Hand, die 627 00:28:12,966 --> 00:28:15,310 ist tatsächlich die Schaffung etwas von Code. 628 00:28:15,310 --> 00:28:18,830 Aber lassen Sie uns eine Modifikation Jetzt zu diesem Programm. 629 00:28:18,830 --> 00:28:23,150 >> Daran erinnern, dass ich das letzte Mal tat etwas wie diese, printf geben Sie Ihren Namen. 630 00:28:23,150 --> 00:28:25,790 Und in der Tat haben wir gerade taten dies auf der großen Leinwand drüben. 631 00:28:25,790 --> 00:28:30,640 Und dann habe ich String s bekommt GetString offenen paren, in der Nähe paren. 632 00:28:30,640 --> 00:28:33,430 Und paren nur ein Kurz Notation für Klammer. 633 00:28:33,430 --> 00:28:36,460 So hat GetString nehmen keine Argumente? 634 00:28:36,460 --> 00:28:38,440 Keine Eingänge nicht, aber es muss die Klammern, 635 00:28:38,440 --> 00:28:41,830 weil das, was abgrenzt der Aufruf der Funktion. 636 00:28:41,830 --> 00:28:46,440 >> Also werde ich weitermachen und versuchen, führen Sie den Compiler auf dieses Programm jetzt. 637 00:28:46,440 --> 00:28:50,774 Clang hello.c, weil ich den Namen nicht für sich nun ändern. 638 00:28:50,774 --> 00:28:51,940 Und ich habe ein paar Fehler. 639 00:28:51,940 --> 00:28:53,570 Lassen Sie uns herauszoomen hier. 640 00:28:53,570 --> 00:28:55,420 Wenn ich nach oben wieder wie ich das letzte Mal gesagt, 641 00:28:55,420 --> 00:28:58,420 auf die erste, gleiche Fehler dass ich beim letzten Mal. 642 00:28:58,420 --> 00:29:04,210 Ein auf der Linie 6 hatte ich hello.c nicht deklarierter Bezeichner-String, 643 00:29:04,210 --> 00:29:05,590 habe ich meine in Standard? 644 00:29:05,590 --> 00:29:06,750 Ich habe nicht. 645 00:29:06,750 --> 00:29:10,050 Denn was habe ich Fehler gemacht in dieser Programm, wenn Sie vom letzten Mal erinnern? 646 00:29:10,050 --> 00:29:13,219 647 00:29:13,219 --> 00:29:15,010 Ja, wir brauchen die so genannte Stützräder 648 00:29:15,010 --> 00:29:16,510 dass wir einfach nutzen für ein paar Wochen. 649 00:29:16,510 --> 00:29:19,480 Aber ich muss auch angeben, dass, irgendwo in der Appliance, 650 00:29:19,480 --> 00:29:22,720 ist eine Datei, die wir geschrieben haben nur ein paar Jahre her. 651 00:29:22,720 --> 00:29:26,500 Innerhalb von denen Funktionen wie offenbar GetString. 652 00:29:26,500 --> 00:29:35,160 So, jetzt, wenn ich wieder nach unten gehen, hier, heranzoomen, und starten Klang hello.c. 653 00:29:35,160 --> 00:29:36,500 Verdammt, ein weiterer Fehler. 654 00:29:36,500 --> 00:29:38,590 Aber wir haben nicht dieses gesehen. 655 00:29:38,590 --> 00:29:41,900 >> Das hier ist ein wenig mehr esoterisch, um herauszufinden. 656 00:29:41,900 --> 00:29:46,910 Dies ist jedoch absichtlich auf dem Bildschirm, denn wir wollten diese Geschichte zu erzählen. 657 00:29:46,910 --> 00:29:51,280 Wenn Sie hello.c zu kompilieren, so wie das Bild aus der Zeit vor vorgeschlagen, 658 00:29:51,280 --> 00:29:54,650 Sie nur, dass die Umwandlung Quellcode Nullen und Einsen. 659 00:29:54,650 --> 00:30:00,340 Jetzt CS50 Mitarbeiter vor ein paar Jahren schrieb CS50.h und eine entsprechende Datei, 660 00:30:00,340 --> 00:30:01,640 CS50.c. 661 00:30:01,640 --> 00:30:04,490 Und wir, vor ein paar Jahren, kompiliert die Dateien 662 00:30:04,490 --> 00:30:07,290 in einer Datei, die passiert genannt werden CS50.o. 663 00:30:07,290 --> 00:30:09,180 >> Oder es kann umbenannt werden ein paar andere Dinge. 664 00:30:09,180 --> 00:30:11,054 Aber das ist ein einfacher Weg, der darüber nachzudenken. 665 00:30:11,054 --> 00:30:14,960 Also haben wir zusammengestellt CS50 ist Bibliothek in Nullen und Einsen. 666 00:30:14,960 --> 00:30:20,340 Aber nirgends habe ich angegeben dass ich meine Nullen kombinieren möchten 667 00:30:20,340 --> 00:30:24,030 und diejenigen, für meine hallo Welt Programm mit den Nullen und Einsen 668 00:30:24,030 --> 00:30:29,760 CS50, dass Mitarbeiter erstellt ein paar Jahren vor zu einem kompletten Programm. 669 00:30:29,760 --> 00:30:34,100 Alles, was ich habe von schriftlich festgelegt Klappern hello.c kompilieren hello.c. 670 00:30:34,100 --> 00:30:38,380 >> Ich habe nicht gesagt, Klappern Link in den Nullen und Einsen 671 00:30:38,380 --> 00:30:41,650 CS50, dass Mitarbeiter erstellt für Sie vor einiger Zeit. 672 00:30:41,650 --> 00:30:48,280 Also ist es eine einfache Lösung, Strich l für Link, CS50. 673 00:30:48,280 --> 00:30:52,600 Und wir werden wieder sehen dies bald wieder und wieder. 674 00:30:52,600 --> 00:30:54,420 Beachten Sie aber, jetzt gab es keine Beschwerden. 675 00:30:54,420 --> 00:30:59,770 So, jetzt, wenn ich keine Punktstrich hallo, jetzt ist es funktioniert. 676 00:30:59,770 --> 00:31:03,840 Obwohl, das ist ein wenig irreführend da ich gerade neu erstellt, welche Datei? 677 00:31:03,840 --> 00:31:05,880 a.out. 678 00:31:05,880 --> 00:31:07,930 >> Also lassen Sie mich für einen Moment zurückzuspulen. 679 00:31:07,930 --> 00:31:10,900 Das Programm, das wir gerade kompiliert hat die drei Zeilen Code. 680 00:31:10,900 --> 00:31:14,710 Wenn ich lief Hallo Welt, hallo ein Moment vor, sah ich nicht Ihren Namen. 681 00:31:14,710 --> 00:31:17,080 Und das ist, weil ich lief die alten Version des Programms. 682 00:31:17,080 --> 00:31:22,700 Aber wenn ich in der Tat Punktstrich a.out laufen Geben Sie Ihren Namen, Rob, hallo, 683 00:31:22,700 --> 00:31:23,370 Welt. 684 00:31:23,370 --> 00:31:23,870 Hm. 685 00:31:23,870 --> 00:31:26,110 Das ist irgendwie ein Fehler. 686 00:31:26,110 --> 00:31:28,560 Wahrscheinlich wollte sagen, Rob, oder? 687 00:31:28,560 --> 00:31:30,997 Also, was ist das Update hier im Code. 688 00:31:30,997 --> 00:31:31,872 STUDENT: [unverständlich]. 689 00:31:31,872 --> 00:31:38,415 690 00:31:38,415 --> 00:31:39,290 DAVID MALAN: Genau. 691 00:31:39,290 --> 00:31:43,160 Also brauche ich nur, dass die letzte zwicken machen , so dass ich in einem Platzhalter vorbei, 692 00:31:43,160 --> 00:31:45,690 wie eine Lücke ausfüllen, wie wir vorhin. 693 00:31:45,690 --> 00:31:47,870 Aber Prozent s ist jetzt dass in das leere zu füllen. 694 00:31:47,870 --> 00:31:52,100 So schließlich offenbaren ein letztes lassen Detail, so dass es keine Magie. 695 00:31:52,100 --> 00:31:54,090 Ich werde weitermachen und hellow loszuwerden. 696 00:31:54,090 --> 00:31:56,070 Ich werde weitermachen und der a.out loszuwerden. 697 00:31:56,070 --> 00:31:58,410 So, jetzt habe ich keine Programme, nur mein Quellcode. 698 00:31:58,410 --> 00:32:01,100 Und ich werde, um einen Lauf etwas länger Befehl, Klirren 699 00:32:01,100 --> 00:32:05,650 Strich o hallo hello.c Strich LCS50. 700 00:32:05,650 --> 00:32:08,700 >> Nun beginnt sich eine Art zu gehen auf einem Ohr hinein und zum anderen vielleicht. 701 00:32:08,700 --> 00:32:10,366 Aber nur necken neben was diese tut. 702 00:32:10,366 --> 00:32:14,910 Clang ist der Compiler, Bindestrich LCS50 absichtlich am Ende 703 00:32:14,910 --> 00:32:18,330 tut, was in einem Satz? 704 00:32:18,330 --> 00:32:19,607 Links zu den CS50-Bibliothek. 705 00:32:19,607 --> 00:32:21,440 Schnappt sich die Nullen und diejenigen, die das Personal machte 706 00:32:21,440 --> 00:32:23,310 und stopft sie in mein eigenes Programm. 707 00:32:23,310 --> 00:32:27,040 Also die letzte Frage bei der Hand ist, was Strich o hallo wahrscheinlich 708 00:32:27,040 --> 00:32:30,530 tun, auch wenn Sie noch nie haben diese Syntax schon mal gesehen? 709 00:32:30,530 --> 00:32:34,920 >> Ausgabe ein Programm, das ist die Standard a.out nicht genannt. 710 00:32:34,920 --> 00:32:37,330 Sondern es ist benannt hallo. 711 00:32:37,330 --> 00:32:39,460 So, jetzt gibt es keine a.out. 712 00:32:39,460 --> 00:32:42,660 Keine solche Datei oder Verzeichnis, weil ich ausdrücklich gesagt, 713 00:32:42,660 --> 00:32:46,720 nennen dieses Programm hallo, so dass Ich kann jetzt geben Sie einen Namen wie, dass 714 00:32:46,720 --> 00:32:47,790 und haben es verhalten. 715 00:32:47,790 --> 00:32:50,180 >> Nun ehrlich gesagt, ist, dass Jungen uninteressant zu haben, 716 00:32:50,180 --> 00:32:52,170 , all das zu erinnern, kleine Einzelheit, oder? 717 00:32:52,170 --> 00:32:54,180 Also lassen Sie uns weitermachen und bekommen wieder loswerden hallo. 718 00:32:54,180 --> 00:32:57,880 Und lassen Sie uns nun auf eine Welt, in Rück was es genügt zu sagen, hallo machen. 719 00:32:57,880 --> 00:33:00,410 Aber das ist die Magie, die machen für Sie tut, 720 00:33:00,410 --> 00:33:02,320 das ist die Langeweile, dass es für Sie tun. 721 00:33:02,320 --> 00:33:04,630 Und da unsere Programme und Probleme immer komplexer werden, 722 00:33:04,630 --> 00:33:06,142 machen wird wirklich dein Freund sein. 723 00:33:06,142 --> 00:33:07,850 Da nicht zu lange ab jetzt werden wir 724 00:33:07,850 --> 00:33:11,150 Programme, die geschrieben werden müssen nicht mit einer Datei, sondern mehrere Dateien, 725 00:33:11,150 --> 00:33:16,310 und machen den Prozess der Automatisierung Zusammenstellung all das für uns zusammen. 726 00:33:16,310 --> 00:33:20,620 >> So, jetzt zu drucken. 727 00:33:20,620 --> 00:33:24,960 printf innerhalb dieser Datei, Standard I / O-Punkt h, dass wir zuvor gesehen haben, 728 00:33:24,960 --> 00:33:26,980 aber es gibt mehr zu printf als die. 729 00:33:26,980 --> 00:33:30,482 Es gibt Backslash n, aber es gibt auch ein paar andere Escape-Sequenzen. 730 00:33:30,482 --> 00:33:32,940 Und Escape-Sequenz ist nur ein andere Art zu sagen etwas 731 00:33:32,940 --> 00:33:35,990 Dies beginnt mit einem Backslash, kein Schrägstrich, ein Backslash, 732 00:33:35,990 --> 00:33:37,920 und hat einige besondere Sache. 733 00:33:37,920 --> 00:33:43,770 Und wir werden nicht auf die meisten von ihnen wohnen, aber warum gibt es Backslash Anführungszeichen, 734 00:33:43,770 --> 00:33:44,830 denken Sie? 735 00:33:44,830 --> 00:33:48,010 Warum gibt es diese seltsame Abfolge von Zeichen, Backslash Anführungszeichen, 736 00:33:48,010 --> 00:33:50,505 Deshalb könnte das nützlich sein? 737 00:33:50,505 --> 00:33:51,380 STUDENT: [unverständlich]. 738 00:33:51,380 --> 00:33:56,594 739 00:33:56,594 --> 00:33:57,760 DAVID MALAN: Genau, richtig? 740 00:33:57,760 --> 00:34:01,830 Denken Sie zurück an unsere Hallo Welt Programm dass wir jetzt schon ein paar Mal gesehen, 741 00:34:01,830 --> 00:34:05,880 jedes Mal, wenn wir die Hallo Welt gesehen Programm, das wir doppelte Anführungszeichen innerhalb hatten 742 00:34:05,880 --> 00:34:08,210 von denen hallo Komma Welt Backslash n. 743 00:34:08,210 --> 00:34:10,070 Aber denken Sie an sich selbst, was ist, wenn Sie tatsächlich 744 00:34:10,070 --> 00:34:12,520 wollte ausdrucken ein Anführungszeichen? 745 00:34:12,520 --> 00:34:16,100 Ihr erster Instinkt sein könnte, weiß ich nicht wissen, warum ich Sie vielleicht hier do--, 746 00:34:16,100 --> 00:34:18,780 wir können ein wenig passiv sein aggressive, hallo Freund. 747 00:34:18,780 --> 00:34:21,350 Vielleicht wollen wir etwas tun. 748 00:34:21,350 --> 00:34:25,230 >> Aber warum ist das jetzt problematisch? 749 00:34:25,230 --> 00:34:28,730 Die Nichtbeachtung der typografische Anführungszeichen beiseite, dass Keynote gemacht für uns automatisch. 750 00:34:28,730 --> 00:34:29,730 Warum ist das problematisch? 751 00:34:29,730 --> 00:34:36,719 752 00:34:36,719 --> 00:34:37,270 >> Genau. 753 00:34:37,270 --> 00:34:39,022 Denn wir haben wie 4 Anführungszeichen. 754 00:34:39,022 --> 00:34:41,230 Nun, die erste wahrscheinlich geht die zweite, 755 00:34:41,230 --> 00:34:43,271 und vielleicht die vierte geht mit dem dritten, 756 00:34:43,271 --> 00:34:46,170 oder, ich meine, ich bin nicht einmal sicher, noch ist der Computer sein wird. 757 00:34:46,170 --> 00:34:48,352 Computer wieder, Compiler wieder, sind ziemlich dumm. 758 00:34:48,352 --> 00:34:50,060 Sie werden nur das tun, was Sie ihnen sagen, zu tun. 759 00:34:50,060 --> 00:34:54,270 Und wenn Sie nicht eindeutig sind sie sind wahrscheinlich, um einen Fehler zu werfen. 760 00:34:54,270 --> 00:34:57,700 >> Wenn Sie nicht eindeutig, wie man bist machen ein Erdnussbutter und Gelee-Sandwich 761 00:34:57,700 --> 00:34:59,510 seltsame Dinge könnten kommen. 762 00:34:59,510 --> 00:35:00,580 Es ist die gleiche Idee. 763 00:35:00,580 --> 00:35:03,100 Jetzt genügt es zu sagen, es gibt einige andere Escape-Sequenzen, 764 00:35:03,100 --> 00:35:04,820 aber wir werden schon bald zu denen zu kommen. 765 00:35:04,820 --> 00:35:07,410 Wesentlichen Diese Flucht Sequenzen stellen etwas 766 00:35:07,410 --> 00:35:10,480 dass Sie nicht in der Lage sein könnte zu leicht auf der Tastatur, 767 00:35:10,480 --> 00:35:12,010 ohne den Computer verwirrend. 768 00:35:12,010 --> 00:35:15,733 >> Jetzt haben wir mittlerweile Platzhalter in printf. 769 00:35:15,733 --> 00:35:19,630 D Prozent, was auch geschrieben werden kann, In fast allen Fällen als Prozent i, 770 00:35:19,630 --> 00:35:21,610 ist ein Platzhalter für welche Art von Daten? 771 00:35:21,610 --> 00:35:23,920 Welche Art von Wert? 772 00:35:23,920 --> 00:35:24,920 Eine Dezimalzahl. 773 00:35:24,920 --> 00:35:27,234 Also eigentlich wir beginnen mit i Prozent, weil es 774 00:35:27,234 --> 00:35:28,650 etwas einfacher, wie eine Integer. 775 00:35:28,650 --> 00:35:29,550 I Prozent. 776 00:35:29,550 --> 00:35:31,320 Eine ganze Zahl, Dezimalzahl passiert zu sein. 777 00:35:31,320 --> 00:35:35,690 >> Prozent s wir schon sagte, war ein Platzhalter für eine Zeichenfolge. 778 00:35:35,690 --> 00:35:38,630 Das ist nur ein Wort, ein Satz, ein Absatz, ein Essay, was auch immer. 779 00:35:38,630 --> 00:35:40,830 Es ist eine Folge von Zeichen von einiger Länge. 780 00:35:40,830 --> 00:35:42,820 Und wir werden bald sehen Einige dieser anderen. 781 00:35:42,820 --> 00:35:45,950 Aber Prozent c ist für ein einzelnes Zeichen. 782 00:35:45,950 --> 00:35:48,500 Prozent f ist für eine Fließkommazahl, 783 00:35:48,500 --> 00:35:50,860 wie eine echte Nummer, die hat ein Komma drin, die 784 00:35:50,860 --> 00:35:52,550 Selbstverständlich ist keine ganze Zahl. 785 00:35:52,550 --> 00:35:54,670 Und es gibt eine ganze Haufen von anderen. 786 00:35:54,670 --> 00:35:56,990 >> Inzwischen in C und in eine Menge von Sprachen, 787 00:35:56,990 --> 00:35:58,650 wir haben unterschiedliche Datentypen. 788 00:35:58,650 --> 00:36:00,650 Verschiedene Arten von Glasschalen, wenn man so will. 789 00:36:00,650 --> 00:36:03,830 Die Schüssel habe ich das letzte Mal war für Ping-Pong-Bälle, 790 00:36:03,830 --> 00:36:06,990 aber wir können auch anders speichern Werte wie Zeichen und Zeichenketten 791 00:36:06,990 --> 00:36:10,820 und ganze Zahlen in einem Behälter, wie eine Variable hat und C diese. 792 00:36:10,820 --> 00:36:14,020 Char ist die Art der Daten, die Art der variablen, 793 00:36:14,020 --> 00:36:15,700 , in dem Sie ein Zeichen speichern kann. 794 00:36:15,700 --> 00:36:19,560 Schwimmer ist eine Art von Variablen in dem Sie eine reelle Zahl speichern kann. 795 00:36:19,560 --> 00:36:21,220 >> Int ist natürlich für einen int. 796 00:36:21,220 --> 00:36:23,760 Und eher lächerlich nannte eine lange, lange 797 00:36:23,760 --> 00:36:26,830 ist, wo Sie im Wesentlichen speichern eine wirklich lange Nummer, mit noch 798 00:36:26,830 --> 00:36:29,930 mehr Stellen dann ein typische int Macht zu speichern. 799 00:36:29,930 --> 00:36:32,420 Aber wir werden darauf zurückkommen, bevor lang. 800 00:36:32,420 --> 00:36:35,520 >> In CS50 dot h mittlerweile der andere Header-Datei 801 00:36:35,520 --> 00:36:37,630 dass wir ein Paar gesehen fach im Einsatz, es 802 00:36:37,630 --> 00:36:41,350 zwei weitere Datentypen, die nicht in C typischerweise existieren. 803 00:36:41,350 --> 00:36:45,000 Eines ist String, und wir werden sehen, in ein paar Wochen welchen Saiten wirklich 804 00:36:45,000 --> 00:36:46,610 sind unter der Haube. 805 00:36:46,610 --> 00:36:47,950 Und man ist bool. 806 00:36:47,950 --> 00:36:51,650 Und ein bool ist eine Variable, kann nur auf bestimmte Werte annehmen. 807 00:36:51,650 --> 00:36:54,370 Und gerade auf der letzten Woche auf der Basis Erklärung von Scratch, 808 00:36:54,370 --> 00:36:56,680 und in jüngerer C, was würden Sie raten 809 00:36:56,680 --> 00:37:01,770 sind die beiden möglichen Werte für einige Container, der vom Typ bool ist? 810 00:37:01,770 --> 00:37:02,860 >> Ja und nein. 811 00:37:02,860 --> 00:37:03,870 Eins und Null. 812 00:37:03,870 --> 00:37:04,502 Wahr oder falsch. 813 00:37:04,502 --> 00:37:07,460 Und in der Tat, es ist die letzte, die dazu neigt, herkömmlichen in einer Programmiersprache zu sein 814 00:37:07,460 --> 00:37:10,030 Sprache, etwas zu sagen, wie wahr oder falsch. 815 00:37:10,030 --> 00:37:13,160 >> Inzwischen ist die CS50-Bibliothek kommt mit einem Bündel von Funktionalität 816 00:37:13,160 --> 00:37:16,640 dass die Mitarbeiter schrieb für Sie, außer nur immer einen String. 817 00:37:16,640 --> 00:37:20,910 Wir schrieben im Voraus Funktionen, die kann eine ganze Zahl von Benutzer zu bekommen, 818 00:37:20,910 --> 00:37:22,990 bekommen ein einzelnes Zeichen, bekommen einen Schwimmer, dass 819 00:37:22,990 --> 00:37:25,160 ist nur eine Zahl mit dem Komma. 820 00:37:25,160 --> 00:37:28,290 Holen Sie sich eine lange, lange, ein wirklich große Wert von dem Benutzer. 821 00:37:28,290 --> 00:37:30,930 Deshalb haben wir nur diese in gesehen Maßnahmen in Form von GetString. 822 00:37:30,930 --> 00:37:33,230 Sondern über diese Funktionen bald in der Lage zu schreiben 823 00:37:33,230 --> 00:37:36,070 Programme, die Eingaben von dem Benutzer zu erhalten. 824 00:37:36,070 --> 00:37:39,230 >> Inzwischen halte das Programm, und betrachten 825 00:37:39,230 --> 00:37:42,600 wie wir jetzt damit beginnen, hinzufügen um sie mit neuen Konstrukte. 826 00:37:42,600 --> 00:37:44,530 Eine schnelle rasante Tour und dann werden wir sehen 827 00:37:44,530 --> 00:37:47,340 auf einige schriftlich einige Programme manuell uns. 828 00:37:47,340 --> 00:37:49,700 Fortan, wenn wir wollen Umsetzung einer Bedingung, 829 00:37:49,700 --> 00:37:52,790 es ist nicht wie ein Blick nettes kleines hübsches Puzzle-Stück. 830 00:37:52,790 --> 00:37:54,460 Es wird ein wenig mehr arkane aussehen. 831 00:37:54,460 --> 00:37:57,620 Aber dies ist die kanonische Struktur einer Bedingung C. 832 00:37:57,620 --> 00:38:00,380 >> Das Wort, wenn zwei Klammern, innerhalb derer 833 00:38:00,380 --> 00:38:02,590 wird einige Art sein von Booleschen Ausdruck. 834 00:38:02,590 --> 00:38:04,999 Jetzt ist der Schrägstrich Schrägstrich in der Mitte, ist das 835 00:38:04,999 --> 00:38:07,290 im Moment ein bisschen wie Pseudocode Platzhalter. 836 00:38:07,290 --> 00:38:11,576 Aber mehr richtig, jede Codezeile in C, die mit Schrägstrich Schrägstrich beginnt 837 00:38:11,576 --> 00:38:12,850 ist ein Kommentar. 838 00:38:12,850 --> 00:38:15,920 >> Es ist wie eine Haftnotiz, die Sie vielleicht setzen auf einem Aufsatz, auf Papier gedruckt. 839 00:38:15,920 --> 00:38:17,290 Es ist eine Notiz für sich. 840 00:38:17,290 --> 00:38:20,100 Es hat keine funktionelle Auswirkung auf das Programm. 841 00:38:20,100 --> 00:38:23,580 Es ist eine Art Erinnerung, es ist Ihre eigene Dokumentation darüber, was vor sich geht. 842 00:38:23,580 --> 00:38:25,720 So tun dies im Moment ist eine Art Platzhalter 843 00:38:25,720 --> 00:38:27,560 für was auch immer drin ist dieser geschweiften Klammern 844 00:38:27,560 --> 00:38:29,810 schließlich wird sich etwas tun. 845 00:38:29,810 --> 00:38:35,160 >> In der Zwischenzeit können zwei Gabeln in der haben Straße, ein anderes Konstrukt, wenn wie diese. 846 00:38:35,160 --> 00:38:37,024 Sie können, wenn, elseif, else. 847 00:38:37,024 --> 00:38:39,690 Jetzt ist es erwähnenswert, vor allem wenn Sie schon googeln um 848 00:38:39,690 --> 00:38:42,480 Online-Ressourcen von Neugier, oder wenn Sie abholen 849 00:38:42,480 --> 00:38:44,575 eine der Kurs der empfohlene Bücher über C, 850 00:38:44,575 --> 00:38:48,430 Sie werden sehen, dass der Mensch viel von unterschiedlichen Präferenzen für wie 851 00:38:48,430 --> 00:38:50,510 selbst im Code auszudrücken. 852 00:38:50,510 --> 00:38:53,800 Einige Leute mögen das setzen geschweiften Klammern, wie ich hier getan. 853 00:38:53,800 --> 00:38:57,760 Einige Leute mögen das lockige setzen Hosenträger zum Beispiel hier oben. 854 00:38:57,760 --> 00:39:01,700 >> Einige Leute mögen die Neubauten zu setzen hier und dann hier. 855 00:39:01,700 --> 00:39:05,120 Es gibt eine beliebige Anzahl von Möglichkeiten, Code schreiben, und keiner von ihnen 856 00:39:05,120 --> 00:39:06,566 Recht an sich. 857 00:39:06,566 --> 00:39:08,440 Es gibt zwar ein paar , die ziemlich falsch. 858 00:39:08,440 --> 00:39:11,315 Aber es gibt NO- wenn dies letztlich eine sehr religiöse Debatte. 859 00:39:11,315 --> 00:39:13,940 In der Tat, eines der ärgerlichsten Dinge über Informatik 860 00:39:13,940 --> 00:39:16,310 ist, wie rechthaberisch Informatiker kann. 861 00:39:16,310 --> 00:39:19,880 Und Sie werden feststellen, dass im Laufe der Zeit Sie auch persönliche Vorlieben entwickeln 862 00:39:19,880 --> 00:39:22,130 , wie Ihr Code aussehen sollte. 863 00:39:22,130 --> 00:39:27,162 >> Nicht nur verhalten, nicht nur zu erstellen Ausgang, aber wie es sollte ästhetisch aussehen. 864 00:39:27,162 --> 00:39:30,120 Also, was wir tun werden, ist begleiten Sie auf die Art und Weise zu, denn jetzt wenigstens, 865 00:39:30,120 --> 00:39:34,825 ein Standard-CS50-Stil, dass zumindest hält die Dinge einheitliche und leicht zu lesen. 866 00:39:34,825 --> 00:39:37,330 Aber auf diejenigen, Scheidungen vor lang. 867 00:39:37,330 --> 00:39:41,830 >> Ein boolescher Ausdruck in C, wenn Sie wollte sagen, wenn diese Bedingung erfüllt ist 868 00:39:41,830 --> 00:39:44,650 und die andere Bedingung erfüllt ist wahr, Sie das Wort nicht schreiben Sie 869 00:39:44,650 --> 00:39:46,610 und, wie man es in Englisch. 870 00:39:46,610 --> 00:39:50,580 Sie stattdessen Kaufmanns-Und-Zeichen, Gründen wir zurück zu kommen. 871 00:39:50,580 --> 00:39:54,520 Wenn Sie sagen wollen, oder Sie verwenden zwei vertikalen Balken, die auf einer US-Tastatur 872 00:39:54,520 --> 00:39:57,650 im allgemeinen über die Enter Taste neben dem Backslash. 873 00:39:57,650 --> 00:40:03,080 Und das bedeutet nur, wenn diese Bedingung oder die andere Bedingung ist wahr, dies tun. 874 00:40:03,080 --> 00:40:05,210 >> Inzwischen gibt es diese verrückte Sache, die 875 00:40:05,210 --> 00:40:07,760 Sie werden Gelegenheit haben, auf einmal in eine Weile zu verwenden. 876 00:40:07,760 --> 00:40:10,390 Aber es ist nur eine Alternative Möglichkeit, sich auszudrücken. 877 00:40:10,390 --> 00:40:12,400 Diese, für jetzt, lassen Sie uns festgelegt, es ist nur 878 00:40:12,400 --> 00:40:16,880 eine andere flippige Ausdrucksweise wenn, elseif, elseif, elseif, elseif. 879 00:40:16,880 --> 00:40:19,720 Es ist nur in Bezug formatiert von Fällen, in denen Sie buchstäblich 880 00:40:19,720 --> 00:40:23,420 Die Werte, die aufzuzählen möchten Sie vielleicht für zu überprüfen. 881 00:40:23,420 --> 00:40:24,410 >> Inzwischen Schleifen. 882 00:40:24,410 --> 00:40:26,842 Wir sahen einen Vergleich der Rubbeln mit einer Schleife. 883 00:40:26,842 --> 00:40:29,550 Und ich werde meine Hand winken was jeder von diesen Dingen bedeutet. 884 00:40:29,550 --> 00:40:33,520 Aber beachten Sie, dass eine Schleife wird sehr beginnen oft mit dem Schlüsselwort für. 885 00:40:33,520 --> 00:40:36,350 Oder es wird mit dem Schlüsselwort während starten. 886 00:40:36,350 --> 00:40:41,360 Oder es wird mit dem Schlüsselwort beginnen zu tun, und am Ende mit dem Schlüsselwort Weile. 887 00:40:41,360 --> 00:40:43,920 >> Aber was wir sind dabei zu sehen, ist Dinge wie diese. 888 00:40:43,920 --> 00:40:47,950 Hier ist in der Regel in C, wie Sie deklarieren eine Variable und geben Sie ihm einen Wert. 889 00:40:47,950 --> 00:40:50,610 In C reicht es nicht aus, wie in Scratch, die Sie gerade 890 00:40:50,610 --> 00:40:52,810 sagen, gib mir eine Variable namens etwas. 891 00:40:52,810 --> 00:40:55,960 Sie müssen sagen, C, und sagen Sie Compiler, genauer gesagt, 892 00:40:55,960 --> 00:40:58,680 welche Art von Wert, den Sie tun wollen in der Glasschale legen. 893 00:40:58,680 --> 00:40:59,610 >> Ist es eine ganze Zahl? 894 00:40:59,610 --> 00:41:02,210 Wenn dem so ist, müssen Sie buchstäblich sagen int und dann 895 00:41:02,210 --> 00:41:04,220 der Name der Variable, dann ein Semikolon. 896 00:41:04,220 --> 00:41:08,050 Wenn Sie stattdessen wollte String und rief Es ist wie ich meinen Code haben heute hier, 897 00:41:08,050 --> 00:41:10,920 Sie String s Semikolon sagen. 898 00:41:10,920 --> 00:41:14,200 Sobald Sie einen Wert geben wollen Sie können dann das Gleichheitszeichen, 899 00:41:14,200 --> 00:41:16,211 anders als die bekannte Zuweisungsoperator. 900 00:41:16,211 --> 00:41:17,960 Und merken, wie jeder dieser Codezeilen 901 00:41:17,960 --> 00:41:20,650 hat das Semikolon am Ende. 902 00:41:20,650 --> 00:41:22,550 >> Aber ehrlich gesagt das nur sieht ein wenig hässlich. 903 00:41:22,550 --> 00:41:26,580 Warum kann ich nicht sagen, auf den Computer, geben mir eine Variable und initialisieren sie auf Null. 904 00:41:26,580 --> 00:41:28,380 Das heißt, geben Sie mir eine leere Glasschale. 905 00:41:28,380 --> 00:41:28,980 Während Sie können. 906 00:41:28,980 --> 00:41:32,250 Und so einer der das Urteil ruft Sie müssen stilistisch im Laufe der Zeit machen 907 00:41:32,250 --> 00:41:36,290 ist, müssen Sie Ihren Code wie diesen zu schreiben, oder Sie Art von aufräumen und beeindrucken 908 00:41:36,290 --> 00:41:39,040 Menschen, indem er zwei Zeilen als nur eine. 909 00:41:39,040 --> 00:41:41,830 Und dies würde als in der Regel einen eleganteren Weg 910 00:41:41,830 --> 00:41:43,870 schreiben Sie den Code stilistisch. 911 00:41:43,870 --> 00:41:45,200 >> Funktionen sind wir natürlich auch gesehen. 912 00:41:45,200 --> 00:41:46,340 Sie werden dieses Format an. 913 00:41:46,340 --> 00:41:48,881 Der Name einer Funktion, einige Klammern, und dann vielleicht noch einige 914 00:41:48,881 --> 00:41:49,910 Sachen im Inneren. 915 00:41:49,910 --> 00:41:52,540 Oder Sie könnten Verwendungen siehe mehrere Funktionen Seiten 916 00:41:52,540 --> 00:41:55,980 einander, wie so etwas wie dieses. 917 00:41:55,980 --> 00:41:59,390 Jetzt als Tangente, tut Dieser Witz jetzt sinnvoll? 918 00:41:59,390 --> 00:42:03,566 919 00:42:03,566 --> 00:42:04,960 >> [Gelächter] 920 00:42:04,960 --> 00:42:09,360 Es bedeutet nicht, es ist lustig, aber es ist vielleicht ein wenig mehr Sinn. 921 00:42:09,360 --> 00:42:12,140 So, jetzt in der loslassen CS50 Gerät für einen Moment. 922 00:42:12,140 --> 00:42:14,640 Und lassen Sie mich hier eröffnen einen Teaser. 923 00:42:14,640 --> 00:42:17,470 >> Und in der Tat einer der Gründe, für die Einführung von IKEA Katalog 924 00:42:17,470 --> 00:42:20,080 und blinkenden das Bild des iPhone ein wenig vor 925 00:42:20,080 --> 00:42:24,700 war, um tatsächlich anknüpfen zusammen die Tatsache, dass vor ein paar Jahren, im Jahr 2007, 926 00:42:24,700 --> 00:42:26,540 Dieses Stück Code war freigesetzt, die wurde 927 00:42:26,540 --> 00:42:29,820 eine der ersten Implementierung ein Stück Software 928 00:42:29,820 --> 00:42:31,494 das tut, was heißt Jailbreak. 929 00:42:31,494 --> 00:42:34,410 Für die Leser, Jailbreak so etwas wie ein Handy oder ein iPhone 930 00:42:34,410 --> 00:42:37,680 bedeutet im Wesentlichen, herauszufinden herauszufinden, wie die Dinge zu tun 931 00:42:37,680 --> 00:42:39,864 damit, dass das Unternehmen Wer hat sie nicht beabsichtige. 932 00:42:39,864 --> 00:42:42,780 Wie Sie installieren möchten bestimmte Software, die im App Store nicht gibt, 933 00:42:42,780 --> 00:42:45,405 Jailbreak Ihr Telefon die Sie Dinge wie das und noch mehr zu tun. 934 00:42:45,405 --> 00:42:47,447 Aber was war Spaß in 2007-- und es ist schon 935 00:42:47,447 --> 00:42:49,780 Dutzende von verschiedenen Versionen diese Dinge seitdem 936 00:42:49,780 --> 00:42:53,540 in allen möglichen languages-- ist, dass dieses Programm hier, genannt iUnlock, 937 00:42:53,540 --> 00:42:57,036 war eigentlich in C. Und so geschrieben ich zog den Quellcode für diese, 938 00:42:57,036 --> 00:42:59,910 nur um Art zeigen Ihnen einige der Gemeinsamkeiten mit den Konstrukten 939 00:42:59,910 --> 00:43:01,450 wir haben bisher zu diskutieren. 940 00:43:01,450 --> 00:43:05,150 Nun, hier gibt es viel mehr Komplexität als wir bereits in der Klasse gesehen habe. 941 00:43:05,150 --> 00:43:07,160 Lassen Sie mich nach oben nur ein bisschen hier. 942 00:43:07,160 --> 00:43:11,520 >> Aber beachten Sie auch these-- bemerken wir ein paar things-- aber beachten, hier diese Zeilen, 943 00:43:11,520 --> 00:43:14,090 einschließlich Standard-I / O h dot. 944 00:43:14,090 --> 00:43:17,660 Und allen-- Linie 24, please-- bemerken Standard-I / O 945 00:43:17,660 --> 00:43:21,380 Punkt h und eine ganze Reihe von anderen Dateien, die offenbar anderen Menschen 946 00:43:21,380 --> 00:43:22,160 geschrieben habe. 947 00:43:22,160 --> 00:43:24,850 Und wenn wir durch nach unten scrollen diese, wenig willkürlich, 948 00:43:24,850 --> 00:43:27,910 bemerke ich weiß nicht, wie zu schreiben all dies mich unbedingt noch 949 00:43:27,910 --> 00:43:28,880 aber es gibt, wenn. 950 00:43:28,880 --> 00:43:30,400 Also anscheinend eine Zweigstelle hat. 951 00:43:30,400 --> 00:43:33,210 >> Und wenn ich nach unten scrollen, ein wenig weiter gibt es einen anderen, wenn. 952 00:43:33,210 --> 00:43:38,210 Wenn ich nach oben, ich denke, um die Linie 100 sah ich für. 953 00:43:38,210 --> 00:43:40,020 Also ich bin mir nicht ganz sicher, wie das funktioniert noch, 954 00:43:40,020 --> 00:43:43,180 aber das ist eine for-Schleife, die zu gehen ist lassen Sie mich wiederholen eine bestimmte Anzahl von Zeiten. 955 00:43:43,180 --> 00:43:45,230 Und wenn ich alle blättern die bis zum Boden 956 00:43:45,230 --> 00:43:51,020 Ich sehe, dass es eine funktionieren hier unten genannt 957 00:43:51,020 --> 00:43:54,570 Haupt und einige zusätzliche Kredite für Ihr Lesevergnügen. 958 00:43:54,570 --> 00:43:57,830 >> So ist dies nur sagen-- und wir setzen Diese Online unter der Kurs Quelle 959 00:43:57,830 --> 00:44:01,480 Code today--, dass auch einige von diesen Geräte, die wir für selbstverständlich halten, 960 00:44:01,480 --> 00:44:05,130 am Ende des Tages bist du immer noch Mit diesen Grund Konstrukte, die wir haben 961 00:44:05,130 --> 00:44:07,430 bereits die Einführung so weit. 962 00:44:07,430 --> 00:44:08,620 Das ist genug von dieser. 963 00:44:08,620 --> 00:44:11,480 Alles in Ordnung, so lassen Sie uns jetzt tatsächlich etwas zu bauen. 964 00:44:11,480 --> 00:44:15,640 >> Lassen Sie uns über so etwas wie gehen hello.c und eröffnen diese, 965 00:44:15,640 --> 00:44:17,170 schreiben wir dieses Programm hier. 966 00:44:17,170 --> 00:44:19,850 Ich werde weitermachen und Schreiben Sie ein Programm namens adder.c, 967 00:44:19,850 --> 00:44:23,310 deren Aufgabe es ist, sein wird wie meine erste Super einfacher Taschenrechner 968 00:44:23,310 --> 00:44:24,840 dass fügt nur ein paar Zahlen. 969 00:44:24,840 --> 00:44:27,050 Nicht, denn das ist eine harte Problem, sondern weil es 970 00:44:27,050 --> 00:44:29,390 ermöglicht es mir, nun binden zusammen ein paar Dinge. 971 00:44:29,390 --> 00:44:33,100 Also werde ich weitermachen und schließen Standard-I / O und h dot dot h CS50. 972 00:44:33,100 --> 00:44:34,670 Ich werde int main nichtig zu sagen. 973 00:44:34,670 --> 00:44:36,545 Und wieder in die Zukunft wir werden darauf zurückkommen 974 00:44:36,545 --> 00:44:38,560 in in diesem Zusammenhang Mittel und nichtig. 975 00:44:38,560 --> 00:44:43,340 >> Und jetzt werde ich etwas sagen wie printf, gib mir eine ganze Zahl. 976 00:44:43,340 --> 00:44:47,610 Und jetzt auf meinem zweiten Zeile wie kann ich mich ausdrücken, wie 977 00:44:47,610 --> 00:44:50,980 dass ich eine Variable deklarieren das wird ein int zu speichern? 978 00:44:50,980 --> 00:44:55,470 Wörtlich, was ich geben, wenn ich will erstellen Sie eine Variable, die einen int speichert 979 00:44:55,470 --> 00:44:58,270 würden Sie sagen? 980 00:44:58,270 --> 00:44:59,650 int a gleich getint. 981 00:44:59,650 --> 00:45:00,485 Sicher, so, das funktioniert. 982 00:45:00,485 --> 00:45:02,360 Und nur für die Konsistenz mit dem Code, den Sie werde 983 00:45:02,360 --> 00:45:04,485 siehe online, lassen Sie mich Wechsel dies x, x, nur weil 984 00:45:04,485 --> 00:45:06,830 ist eine gemeinsame Variablennamen zu verwenden, zumindest in der Algebra. 985 00:45:06,830 --> 00:45:08,720 Nun lassen Sie mich gehen Sie vor und nicht wieder printf. 986 00:45:08,720 --> 00:45:10,692 Gib mir noch eine ganze Zahl ist. 987 00:45:10,692 --> 00:45:12,900 Und jetzt bin ich Art gehen von lernen aus diesem Muster, 988 00:45:12,900 --> 00:45:14,490 Ich werde sagen, int y bekommt getint. 989 00:45:14,490 --> 00:45:16,340 >> Und haben wir nicht genutzt haben Getint vor, sondern nur 990 00:45:16,340 --> 00:45:19,860 wie GetString geht und bekommt eine Schnur, wie Javier aus dem Publikum haben, 991 00:45:19,860 --> 00:45:22,780 ähnlich funktioniert getint blinken die Eingabeaufforderung. 992 00:45:22,780 --> 00:45:26,750 Und effektiv auf den Benutzer wartet um ihm eine ganze Zahl, indem Sie es in 993 00:45:26,750 --> 00:45:27,900 und Enter drücken. 994 00:45:27,900 --> 00:45:30,850 Jetzt endlich werde ich tun Dazu printf die Summe von-- 995 00:45:30,850 --> 00:45:36,080 und lassen Sie mich Phantasie now-- Prozent i und i Prozent vorhanden ist 996 00:45:36,080 --> 00:45:39,270 i Ausrufezeichen Backslash n. 997 00:45:39,270 --> 00:45:42,750 Und was glaubst du, ich bin zu gehen legte in den nun als zusätzliche Eingänge 998 00:45:42,750 --> 00:45:44,620 printf? 999 00:45:44,620 --> 00:45:47,380 >> Ich will nicht sagen, wörtlich zitieren unquote x. 1000 00:45:47,380 --> 00:45:52,210 Ich möchte in der Klasse X und dann, und jetzt Sie uns Phantasie lassen 1001 00:45:52,210 --> 00:45:54,420 und lassen Sie uns einfach davon ausgehen, wir tun können, was wir wollen. 1002 00:45:54,420 --> 00:45:56,330 Was möchten Sie als nächstes sagen? 1003 00:45:56,330 --> 00:45:57,070 x plus y. 1004 00:45:57,070 --> 00:45:58,520 Und in der Tat, dass wird funktionieren. 1005 00:45:58,520 --> 00:46:01,760 Es ist minimal Programmiersprachen verstehe die Grundrechenarten, 1006 00:46:01,760 --> 00:46:03,500 und so sollte dies in der Tat Arbeit. 1007 00:46:03,500 --> 00:46:06,730 >> Also lassen Sie mich gehen Sie vor und machen Sie Addierer in meinem Schwarz-Weiß-Fenster 1008 00:46:06,730 --> 00:46:08,090 hier unten ein. 1009 00:46:08,090 --> 00:46:10,830 Cryptic Linie aber kein Fehler Nachricht, und das ist gut. 1010 00:46:10,830 --> 00:46:14,410 Dot Slash Addierer, gib mir eine ganze Zahl, 1. 1011 00:46:14,410 --> 00:46:16,230 Gib mir noch eine ganze Zahl, 2. 1012 00:46:16,230 --> 00:46:18,770 Die Summe von 1 und 2 ist 3. 1013 00:46:18,770 --> 00:46:21,730 >> Alles klar, so ein ziemlich trivial Programm, aber was ist es gemacht? 1014 00:46:21,730 --> 00:46:25,680 Es ist mir erlaubt, eine Funktion zu verwenden hier nennen, nennen andere Funktion hier, 1015 00:46:25,680 --> 00:46:29,260 zwei Aufrufe getint ein dritten Aufruf von printf, 1016 00:46:29,260 --> 00:46:30,720 und dann mit Hilfe dieser Platzhalter. 1017 00:46:30,720 --> 00:46:33,160 So ist es ein wenig mehr anspruchsvoller als beim letzten Mal. 1018 00:46:33,160 --> 00:46:35,260 Aber was, wenn ich will Holen Sie sich ein wenig schicker? 1019 00:46:35,260 --> 00:46:38,900 >> Lassen Sie mich gehen Sie vor und tun dies jetzt. 1020 00:46:38,900 --> 00:46:42,890 Lassen Sie mich gehen Sie vor und erstellen ein neue Datei namens Bedingungen Null. 1021 00:46:42,890 --> 00:46:44,890 Und ich werde, um zu speichern einige Zeit für die Klassen willen 1022 00:46:44,890 --> 00:46:48,260 und nur, dass einfügen Code als Startpunkt. 1023 00:46:48,260 --> 00:46:51,510 Und jetzt bin ich gerade dabei, setzen etwas Neues hier in der Mitte. 1024 00:46:51,510 --> 00:46:55,889 So printf Ich möchte eine ganze Zahl bitte. 1025 00:46:55,889 --> 00:46:58,180 Und das alles Code verfügbar auf der Website der Kurs, 1026 00:46:58,180 --> 00:47:00,556 Sie brauchen sich keine geben sie alle aus in der Klasse, wenn Sie lieber nicht. 1027 00:47:00,556 --> 00:47:02,638 int, und jetzt bin ich zu gehen , anstelle von x und y, 1028 00:47:02,638 --> 00:47:05,270 Ich werde n zu verwenden, was ist wahrscheinlich die häufigste 1029 00:47:05,270 --> 00:47:09,220 für eine ganze Zahl in einem Computerprogramm. 1030 00:47:09,220 --> 00:47:12,060 Und jetzt will ich eine do Urteil wenig hier. 1031 00:47:12,060 --> 00:47:15,460 Ich werde, wenn n größer als 0 ist, dann 1032 00:47:15,460 --> 00:47:23,670 Ich werde sagen, hoppla printf--, printf-- Ihnen abgeholt eine positive Zahl, 1033 00:47:23,670 --> 00:47:25,370 Ausrufezeichen Backslash n. 1034 00:47:25,370 --> 00:47:26,460 Schließen Sie das. 1035 00:47:26,460 --> 00:47:33,150 Sonst werde ich aus printf Sie nahm eine negative Zahl. 1036 00:47:33,150 --> 00:47:35,377 >> Nun, bevor Sie schreien mich an, wir führen Sie dieses Programm. 1037 00:47:35,377 --> 00:47:36,210 Lassen Sie mich hier nach unten gehen. 1038 00:47:36,210 --> 00:47:40,730 Und wie kann ich ein Programm zusammenstellen genannt Bedingungen Strich 0? 1039 00:47:40,730 --> 00:47:42,300 Machen Bedingungen Strich 0. 1040 00:47:42,300 --> 00:47:45,560 Art von einem dummen Namen, aber-- verdammt. 1041 00:47:45,560 --> 00:47:47,560 OK, gute Lehre Moment. 1042 00:47:47,560 --> 00:47:48,410 Warum ist das zu brechen? 1043 00:47:48,410 --> 00:47:51,360 1044 00:47:51,360 --> 00:47:54,710 >> Was habe ich aus Versehen diese Datei aufrufen? 1045 00:47:54,710 --> 00:47:56,876 Sie können Art schließen von der Registerkarte hier oben. 1046 00:47:56,876 --> 00:47:58,750 Also ist es nicht schlimm, dass ich tat dies, weil diese 1047 00:47:58,750 --> 00:48:00,208 wird vielleicht einige von euch passieren. 1048 00:48:00,208 --> 00:48:03,880 Also habe ich aus Versehen mit dem Namen meiner Quellcode Zustand 0. 1049 00:48:03,880 --> 00:48:09,950 Aber mein Quellcode sollten per Konvention sein in einer Datei namens Zustand 0 Strich c, 1050 00:48:09,950 --> 00:48:11,720 oder was auch immer Punkt c. 1051 00:48:11,720 --> 00:48:12,610 >> Also lassen Sie mich dies zu beheben. 1052 00:48:12,610 --> 00:48:16,880 Genau wie Microsoft Word kann ich gehen auf Speichern und tun Zustand 0 Punkt c. 1053 00:48:16,880 --> 00:48:20,100 Jetzt, nur um ordentlich Ich bin sein werde weitermachen und entfernen 1054 00:48:20,100 --> 00:48:23,020 Zustand 0, was meine alte Version war. 1055 00:48:23,020 --> 00:48:26,550 Und nun lassen Sie uns machen Zustand 0, Enter. 1056 00:48:26,550 --> 00:48:27,870 OK, scheint gut. 1057 00:48:27,870 --> 00:48:29,510 >> Zustand 0, Enter. 1058 00:48:29,510 --> 00:48:33,530 Ich würde gerne eine ganze Zahl bitte, 50, Sie nahm eine positive Zahl. 1059 00:48:33,530 --> 00:48:35,390 Nun, wie über negative 50? 1060 00:48:35,390 --> 00:48:37,660 Sie nahm eine negative Zahl. 1061 00:48:37,660 --> 00:48:39,605 Wie wäre es nun, 0. 1062 00:48:39,605 --> 00:48:42,250 1063 00:48:42,250 --> 00:48:45,350 Ziemlich sicher, dass 0 ist nicht negativ. 1064 00:48:45,350 --> 00:48:47,780 >> Das ist also eine Art logische Fehler. 1065 00:48:47,780 --> 00:48:50,680 Wie kann ich dieses Problem beheben? 1066 00:48:50,680 --> 00:48:57,260 Sonst, wenn n kleiner als 0 ist, dies zu tun, sonst können wir eine Drei-Wege-Niederlassung hier zu haben, 1067 00:48:57,260 --> 00:49:01,740 printf Sie 0 gerichtet. 1068 00:49:01,740 --> 00:49:06,150 So, jetzt, wenn ich diese erneut Programm nach dem Kompilieren es 1069 00:49:06,150 --> 00:49:10,790 wieder mit Make, und jetzt erneut Zustand 0, was ich hier zu sehen 1070 00:49:10,790 --> 00:49:14,570 0 gibt mir diesen Ausgang. 1071 00:49:14,570 --> 00:49:16,280 Also, wo gehen wir hin mit diesem? 1072 00:49:16,280 --> 00:49:18,930 >> Nun, es ist sehr leicht aus den Augen verlieren der Wald vor lauter Bäumen. 1073 00:49:18,930 --> 00:49:23,590 Und so können wir zu dem Schluss, Mit diesem 2 und 2.1 Minuten-Video 1074 00:49:23,590 --> 00:49:25,710 dass letztlich ist ein bisschen einer Anzeige von Google, 1075 00:49:25,710 --> 00:49:28,850 aber das ist wirklich Zeugnis was auch die mit diesen Grund Gebäude 1076 00:49:28,850 --> 00:49:33,020 Blöcke können wir letztlich einmal tun wir haben ein bisschen Programmier 1077 00:49:33,020 --> 00:49:34,463 versierte unter unserer Gürtel. 1078 00:49:34,463 --> 00:49:35,150 >> [Musik zu spielen] 1079 00:49:35,150 --> 00:49:38,370 1080 00:49:38,370 --> 00:49:40,540 >> Saroo BRIERLEY (vo): Es war vor 26 Jahren, 1081 00:49:40,540 --> 00:49:42,470 und ich war gerade dabei, sich zu drehen 5. 1082 00:49:42,470 --> 00:49:45,465 Wir kamen zum Bahnhof und bestiegen wir unseren Zug zusammen. 1083 00:49:45,465 --> 00:49:48,010 Mein Bruder sagte nur, ich werde hier bleiben, und ich werde wieder kommen. 1084 00:49:48,010 --> 00:49:51,140 Und ich dachte nur, auch Sie wissen, Ich könnte auch einfach nur schlafen gehen 1085 00:49:51,140 --> 00:49:52,690 und er wird nur weck mich. 1086 00:49:52,690 --> 00:49:55,145 Und wenn ich wachte am nächsten Tag, die ganze Wagen 1087 00:49:55,145 --> 00:49:59,125 leer war auf einem außer Kontrolle geratenen Zug, ein Gespenst Zug unter mir, ich weiß nicht, wo. 1088 00:49:59,125 --> 00:50:01,980 1089 00:50:01,980 --> 00:50:06,280 >> Ich wurde nach Australien verabschiedet, einer australischen Familie. 1090 00:50:06,280 --> 00:50:09,710 Und Mama verziert hatte meine Zimmer mit der Karte von Indien, 1091 00:50:09,710 --> 00:50:11,950 die sie setzen neben meinem Bett. 1092 00:50:11,950 --> 00:50:15,830 Ich wachte jeden Morgen sehen, dass Karte und damit 1093 00:50:15,830 --> 00:50:18,530 es irgendwie gehalten, die Erinnerungen lebendig. 1094 00:50:18,530 --> 00:50:20,530 Leute würden sagen, du bist versucht, eine Nadel zu finden 1095 00:50:20,530 --> 00:50:23,560 im Heuhaufen, Saroo Sie werden es nie finden. 1096 00:50:23,560 --> 00:50:28,540 >> Ich würde der Orte geflasht haben, dass ich verwendet werden, um zu gehen, die Blitze von meiner Familie 1097 00:50:28,540 --> 00:50:29,890 Gesichter. 1098 00:50:29,890 --> 00:50:34,060 Es war das Bild meiner Mutter, sitzen mit gekreuzten Beinen, 1099 00:50:34,060 --> 00:50:35,740 nur beobachten sie weinen. 1100 00:50:35,740 --> 00:50:38,160 Das Leben ist nur so schwer. 1101 00:50:38,160 --> 00:50:41,237 Das war mein Schatz. 1102 00:50:41,237 --> 00:50:44,320 Und ich war auf der Suche mit Google Map und klar, es ist Google Earth auch. 1103 00:50:44,320 --> 00:50:48,140 In einer Welt, wo man in vergrößern, Ich fing an, all diese Gedanken haben 1104 00:50:48,140 --> 00:50:51,500 und welche Möglichkeiten dass dies für mich tun. 1105 00:50:51,500 --> 00:50:54,890 Ich sagte zu mir, wissen Sie, Sie haben stand diese fotografischen Erinnerungen 1106 00:50:54,890 --> 00:50:58,590 und Sehenswürdigkeiten, wo Sie sind, und Sie wissen, was die Stadt aussieht. 1107 00:50:58,590 --> 00:51:03,060 Dies könnte eine Anwendung sein, dass Sie verwenden können, um den Weg zurück zu finden. 1108 00:51:03,060 --> 00:51:06,720 >> Ich dachte, ich werde auch eine Put- Punkt auf Kalkutta Bahnhof, 1109 00:51:06,720 --> 00:51:10,890 und eine Radiuslinie, wissen Sie, dass Sie sollte die Suche werden in dieser Gegend. 1110 00:51:10,890 --> 00:51:13,750 Ich irgendwie stieß Diese Bahngleisen. 1111 00:51:13,750 --> 00:51:18,160 Und ich begann nach, und Ich zu einem Bahnhof kam die 1112 00:51:18,160 --> 00:51:22,228 reflektiert das gleiche Bild das war in meinen Erinnerungen. 1113 00:51:22,228 --> 00:51:23,707 Alles abgestimmt. 1114 00:51:23,707 --> 00:51:27,950 Ich dachte nur, ja, ich wissen, wohin ich gehe. 1115 00:51:27,950 --> 00:51:30,116 Ich werde einfach das lassen Karte, die ich in meinem Kopf 1116 00:51:30,116 --> 00:51:33,080 führen mich und nimm mich zurück in meine Heimatstadt. 1117 00:51:33,080 --> 00:51:36,420 >> Ich der Haustür kam das Haus, das ich geboren wurde. 1118 00:51:36,420 --> 00:51:39,140 Und ging um etwa 15 Meter um die Ecke, 1119 00:51:39,140 --> 00:51:42,980 es gab drei Damen stehen außen, benachbart zueinander. 1120 00:51:42,980 --> 00:51:47,830 Und die mittlere trat vor, und Ich dachte nur, das ist deine Mutter. 1121 00:51:47,830 --> 00:51:53,450 Sie kam nach vorne, umarmte sie mich, und Wir waren dort für etwa fünf Minuten. 1122 00:51:53,450 --> 00:51:56,530 1123 00:51:56,530 --> 00:51:59,000 >> Sie packte meine Hand und sie nahm mich zum Haus 1124 00:51:59,000 --> 00:52:02,450 und am Telefon, wo sie stand klingelte meine Schwester und mein Bruder 1125 00:52:02,450 --> 00:52:05,600 zu sagen, dass Sie wissen, Ihr Bruder hat gerade 1126 00:52:05,600 --> 00:52:09,340 alle plötzlich erschien wie ein Geist. 1127 00:52:09,340 --> 00:52:12,440 Und dann wurde die Familie wieder vereint. 1128 00:52:12,440 --> 00:52:15,110 Alles ist alles gut, Ich half meiner Mutter aus, 1129 00:52:15,110 --> 00:52:17,110 sie nicht hat, sich sein schuften. 1130 00:52:17,110 --> 00:52:19,555 Sie können den Rest leben ihres Lebens in Frieden. 1131 00:52:19,555 --> 00:52:23,460 >> Es war eine Nadel im Heuhaufen, aber die Nadel war da. 1132 00:52:23,460 --> 00:52:24,400 Alles ist da. 1133 00:52:24,400 --> 00:52:28,260 Alles in der Welt haben wir ist am Wasserhahn auf eine Schaltfläche. 1134 00:52:28,260 --> 00:52:32,010 Aber man muss den Willen haben und habe der Wille, es zu wollen. 1135 00:52:32,010 --> 00:52:32,950 >> [Musik zu spielen] 1136 00:52:32,950 --> 00:52:36,420 1137 00:52:36,420 --> 00:52:38,170 DAVID MALAN: Wunderbar süß Zeugnis 1138 00:52:38,170 --> 00:52:40,540 nur, was Sie können jetzt mit der Technik. 1139 00:52:40,540 --> 00:52:43,390 Wir sehen uns nächste Woche. 1140 00:52:43,390 --> 00:52:44,374