David J. MALAN: Das ist also CS50. Und das war CS50 eigenen Colton Ogden, für mehr, die Musik ist man Download unter soundcloud.com/cs50. Also konzentrieren wir uns heute umso mehr auf die Kunst der Programmierung. Und wir nehmen, wo wir aufge aus der vergangenen Woche, wobei der Schwerpunkt Scratch auf, die dies grafische Programmiersprache. Und die Dinge auf eine niedrigere Ebene, mit einem eher traditionellen Programmierung Sprache als C bekannt, aber auf dem Weg, zu realisieren, , die die gleichen Ideen, die wir etwa am vergangenen Freitag gesprochen nicht nur in diesem wiederholen Sprache C, sondern in fast allen anderen dass wir dieses Semester. Also dieses Ding namens wir hier, was beim letzten Mal? Dies ist repräsentativ für eine Aussage. So nannten wir diese Aussage. Und sie tut etwas. Es ist ein Befehl, der ein Computer oder Scratch könnte auszuführen. Und nun lassen Sie uns auch starten so etwas eine Funktion aufrufen, Gründen wir bald sehen werden. Inzwischen sahen wir Dinge wie diese. Und diese sind in der Regel wie das, was konstruieren bekannt? ZIELGRUPPE: Loop. David J. MALAN: Also eine Schleife. So ziemlich einfach. Es ist buchstäblich das tut, was es sagt. Und in Scratch, wenn Sie wollen stopfen mehr Puzzleteile drin, das Stück wird wachsen, um es fit. Und wir werden sehen, dass in C wir können das gleiche tun. Eine andere Art von Schleife, obwohl, in Scratch vielleicht für immer, oder es gibt eine beliebige Anzahl von anderen Ansätzen. Aber lassen Sie uns einen mehr Generalist Look, mit einem Gesicht Das ist wahrscheinlich sehr vertraut, bei Schleifen im Allgemeinen. Mark Zuckerberg: Ein Sache, dass Computer sind wirklich gut ist Befehle wiederholen. Als eine Person, würden Sie den wirklich langweilig, wenn Sie musste das gleiche tun viele Male in Folge. Aber ein Computer kann das gleiche tun Millionen oder sogar Milliarden von Zeiten, und sich nicht langweilen, und in der Lage zu, dass die Durchführung wirklich gut. So zum Beispiel, wenn I wollte alle wünschen auf Facebook alles Gute zum Geburtstag indem Sie ihnen eine E-Mail, es könnte mich mehr als eine nehmen Jahrhundert tatsächlich schreiben all diese E-Mails an alle. Aber mit nur ein paar Zeilen Code, kann ich haben ein System eine E-Mail an alle auf Facebook wollen ihnen alles Gute zum Geburtstag. Also das ist, was Schleifen sind und warum sie sind wertvoll und etwas dass Computer kann sehr gut tun. David J. MALAN: Also, wenn Sie haben die Empfänger gewesen von einigen der CS50 und Dropbox Space spät, Das ist eigentlich genau das, was wir zu tun, mit Code ganz so. Wir haben im Wesentlichen eine große Tabellenkalkulation, in die Leute wurden ihre Eingabe Namen und E-Mail-Adressen. Und wir schrieben ein klein wenig Code, können über diese Adressen durchlaufen und eindeutige Adressen spuckte in Fall, dass jemand mehrmals vorgelegt. Und danach, wir senden Ihnen eine automatisierte E-Mail von der CS50 bot, einschließlich der Gutschein-Code. Jetzt haben wir uns auch bei dieses Konstrukt letzten Mal. Und dies ist ein besonderer Beispiel dafür, was? Also, ja, ein boolescher Ausdruck. Und die Form ist gemeint, zu erfassen als auch. Alle diese Fragen der bilden wahr oder falsch in Scratch wird ein wenig so aussehen. Und wir nennen dies eine Booleschen Ausdruck. Das ist in der Tat wahr oder falsch, ja oder nein. Es ist ein Weg der Beantwortung einer Frage. Und in der Zwischenzeit können Sie diese verwenden, Boolean Ausdrücke in der Konstrukte wie denen von ihnen, Natürlich sind die Bedingungen oder Niederlassungen, sprichwörtliche Gabeln in der Straße. Und sie sehen nicht nur können wie diese, aber sie können auch mit ihnen haben Neubauten verbunden. Und Sie können tatsächlich eine Drei-Wege- Gabel in der Straße oder ein Vier-Wege-Gabel in der Straße, einfach durch nisten diese Dinge, wie Sie im Scratch sehen wenn Sie nicht bereits haben. Und wie Sie in C als auch tun können. Nehmen wir ein anderes Generalist Blick auf ein alumnist, als auch, die vielleicht einen anderen Ansatz vorstellen auf diese Dinge genannt Bedingungen. BILL GATES: Menschen machen Entscheidungen jeden Tag. Zum Beispiel, bevor Sie außerhalb Sie gehen Art eine if-Anweisung, die besagt, wenn es regnet, dann ich brauche, um meine Jacke zu bekommen. Und Computer sind erstaunlich, wenn Sie entscheiden, diese Art von Aussagen, dass sie zuverlässig ausführen kann diese Dinge zu unglaublichen Geschwindigkeit. Und so ein Computer-Programm wirklich ist ein wenig Mathematik und einige if-Anweisungen, wo die Entscheidung wird gemacht. David J. MALAN: So wie Sie vielleicht wissen, war es Leute wie Bill Gates, Paul Allen, und andere dass wirklich begann die sogenannten Personalcomputer Revolution vor einigen Jahren. Ich dachte, bevor wir tauchen in etwas Organisatorisches, wir würden eine Geschichte von der Albuquerque beziehen, New Mexico Museum of Natural History und Wissenschaft, wo einige von Bill Gates ' und Paul Allen frühesten Geschichten sind erzählte, wie wir jetzt heutigen PCs und Macs und mehr. Dafür aber brauchen wir zwei Freiwillige , die haben sehr gute Erzählung Stimmen ein Skript vorlesen. Alle Rechte, wie etwa auf der Rückseite gibt. Komm auf. Und wie vor hier. Komm runter. Nehmen Sie Ihre Plätze hier. Wie euch kommen, ein paar der Verwaltungs Ankündigungen. Schneiden, der Prozess der Auswahl eines Abschnitts, wird diese starten Mittwoch bis Freitag. Mehr dazu im kommenden Mittwoch in Vortrag. Super Abschnitte sind unterdessen etwas, das wir bieten nächste Woche wobei die gesamte Klasse wird aufgefordert, in relativ großem Umfang teilnehmen Abschnitte, einen mehr bequem, ein weniger komfortabel. Und wir werden die Einzelheiten bekannt geben , dass, wie auch später in dieser Woche. Inzwischen Abschnitte, selbst, beginnt in Woche drei der natürlich Null-Index, was bedeutet, das sind ein paar Wochen heraus. Also keine Sorgen machen. Sie haben noch nicht verpasst etwas in diese Richtung. Mittlerweile in der Zwischenzeit, wenn Sie Fragen administrativ, E-Mail mich und Devon und Gabe und Rob an diese Adresse hier. Schließlich Problem eingestellt 0 ist natürlich aus. Sie können es bemerkt haben auf der Website des Kurses. Es sollte Ihnen mit Alle Antworten auf die Fragen Sie auf dem Weg zur haben könnte immer mit dem Problem-Set gestartet. Aber wenn Sie sich selbst zu finden in der Notwendigkeit einer helfenden Hand, mit allen Mitteln zu besuchen Bürozeiten Montag, Dienstag, Mittwoch, Donnerstag dieser Woche in den Abend in vier Speisesäle. Sehen, dass es für die URL-Angaben von wo der Bürozeiten sind. Jetzt treffen wir uns unserer zwei Gäste heute hier. Wie heißen Sie? JAY PAUL: Jay Paul. David J. MALAN: Jay Paul, schön, Sie zu treffen. HIKARI: Hikari. David J. MALAN: Hikari? HIKARI: Hikari. David J. MALAN: Hikari. Schön, dass Sie so gut zu erfüllen. Jay Paul und Hikari haben in vor ihnen auf diese Musik steht zwei Skripte, die ich gedruckt heute Morgen von der New Mexico Museum of Natural History and Science. Und was ich dachte, Ich würde auf dem Overhead zu tun wird begleiten Ihre Rezitation des Skripts und dieser Geschichte mit einigen Bildern, ohne Überraschungen. Und was ich getan habe, im Voraus auf Ihrem Skript prehighlight was Sie lesen sollten, und was Sie lesen. Und wir werden im Wesentlichen nur alternative Absätze. So ist es viel, wie Sie vielleicht im Englischunterricht getan haben. Das ist wirklich zwingen das Publikum in Ihrer Geschichte glauben hier. Sollen wir? So ist die Geschichte hier ist, haben wir ein BASIC, und es beginnt in Cambridge. JAY PAUL: Es war Winter, 1974 in Cambridge, Massachusetts wo die Winter kalt werden kann. Ein bärtiger, langhaariger Studienabbrecher mit dem Namen Paul Allen wurde in Harvard drudging Square, in Gedanken versunken. Seine Hauptsorge in diesen Tagen war, wie man seinem Freund Bill Gates zu bekommen, die Schule verlassen und gehen in das Geschäft mit ihm. HIKARI: Die beiden bereits gegangen war durch eine Reihe von Unternehmensgründungen zusammen, beginnend im Lakeside Schule in Seattle, wo sie in der freien Zeit, um Computer bezahlt wurden Testen einer PDP-10-Computer zu einem lokalen Zeit Sharing-Unternehmen. Der jüngste Plan war gewesen zu beenden Schule und bilden ein Software-Unternehmen. Allen hatte Washington verlassen State University. Aber in der letzten Minute, Tore beschlossen, mit der Harvard-Stick. JAY PAUL: An diesem Tag, überqueren Harvard Quadrat, Allen entdeckte den Januar 1975 Ausgabe von Popular Electronics mit dem Anhalten der Erde Überschrift, Die weltweit erste Minicomputer Kit Commercial Models Rivalen. Unter der Schlagzeile war ein Bild von einer kleinen Box mit Lichtern und Schaltern geschmückt. Es war der MITS Altair 8800 genannt. Und Allen wusste das war, was er gesucht hatte. HIKARI: Tage der Diskussion. Allen und Gates-verstand der Bedeutung des Altair. Sie hatten oft gesprochen über Mikroprozessoren und warteten auf das, was zu sehen würde mit ihnen geschehen. Jetzt gab es ein Minicomputer-Kit auf die Abdeckung von Popular Electronics. Es hatte noch anscheinend keine Software. Sie stellten sich eine Nation von Programmierer auf MITS absteigend. Und so Ed Roberts genannt, der Kopf des Unternehmens, behauptet, eine Version des haben Programmiersprache BASIC fast fertig für den Altair. Sie tat es nicht. Roberts und muss gewusst haben, taten sie nicht. Er wurde immer 10 Anrufe pro Tag von Menschen, die ein Grund fast fertig hatte. Und seine Antwort Lager war: "Die erste Person, , die sich zeigt, mit einer Arbeits BASIC, bekommt den Zuschlag. " JAY PAUL: Gates und Allen hatte noch nie einen gesehen, Altair. Sie hatte noch nie gesehen, die Intel 8080 Mikroprozessor im Herzen des Altair. Aber ein paar Jahre früher Allen hatte ein Programm geschrieben auf einem Mainframe-Computer emuliert der Betrieb einer früheren Intel Mikroprozessor. Und dieses Mal sie würde das gleiche tun. HIKARI: mit einem Intel 8080 Hand an seiner Seite, Allen setzte sich an einen Harvard PDP-10-Computer und schrieb den Emulator und Software Werkzeuge notwendig, um die Programmierung zu tun. Unterdessen ging nicht mehr Tore Klassen und widmete sich der Gestaltung des BASIC, nach allen Regeln er wusste um die Größe zu bekommen unten 4 Kilobyte. JAY PAUL: Out in Albuquerque, Ed Roberts bekam einen Anruf von Gates Bitte um Details darüber, wie die Altair behandelt spezifischen Routinen. Niemand hat je gefragt hatte, dass vor. Und Roberts begann interessieren. HIKARI: Mit der Entwicklung Werkzeuge und das Design fertig ist, Gates und Allen schrieb der Code auf dem PDP-10, Anwerbung andere Harvard-Student, Monte Davidoff, auf mathematische Routinen zu schreiben. Nach einer letzten Nacht des Programmierung, bekam Allen auf einer Ebene zu liefern ihre BASIC zu MITS. Er verbrachte die Ebene reiten besorgniserregend. Und zurück in Cambridge Gates war besorgniserregend. Sie hatten ihre BASIC und getestet es auf dem Emulator gearbeitet hatte. Aber was, wenn der Emulator war falsch? JAY PAUL: Wie der Ebene näherte Albuquerque, Allen erkannt, dass ihre BASIC, jetzt ordentlich enthalten auf einer kleinen Rolle Lochstreifen, würde nutzlos ohne einen separaten Programm, eine so genannte Lader, dass würde die Altair, wie sagen , um das Papierband gelesen in den Fernschreiber zugeführt. Er nahm sein Notizbuch und schnell unten ein Ladeprogramm kritzelte in Assembler, dann manuell übersetzt, die in den 1 und 0 der Altair verstehen würde. HIKARI: Allen erwartete ein sauber, wenig, High-Tech-Unternehmen von Männern in Anzügen laufen. So war er überrascht, als Roberts erfüllt ihn am Flughafen sah aus wie einer Ranch Hand. Roberts war auch überrascht. Als er ließ die Harvard Programmierer bei einem teuren Hotel, Allen musste gestehen, dass er konnte den Raum nicht leisten. JAY PAUL: MITS, selbst, war in einer staubigen Einkaufszentrum entfernt. Innen auf einem unübersichtlich Werkbank war ein Altair mit 5 Kilobyte geladen Speicher und durch ein Kabel verbunden auf einen Fernschreiber. Roberts und Chief Engineer, Bill Yates, wartete gespannt als Allen schaltet sein loader Programm in den Altair. Der Fernschreiber begann tuckern wie es gezogen Papierbandes durch den Bandleser. Es dauerte vielleicht 15 Minuten , um das Programm zu laden. Dann abrupt gedruckt der Fernschreiber ein Speicheraufforderung, dann ein fertig Aufforderung und Allen begann eingeben ein paar Testbefehle. Zu jedermanns Erstaunen, Die Software funktioniert. Es gab Fehler, natürlich. Aber die Hauptsache war, es hat funktioniert. HIKARI: Später auf dem Weg in eine $ 3,00 Mittagessen im Pancho, flog eine Wespe im Fenster des Aufnahme LKW und stach Allen auf den Arm. Aber an diesem Punkt nichts könnte die Stimmung verderben. Der Altair hatte nun ihre BASIC, die erste kommerzielle Software für ein Haus Computer, von Paul Allen und Bill gemacht Gates, das Geschäft als Microsoft. David J. MALAN: Viele Dank an unsere beiden Leser. [Applaus] David J. MALAN: Jetzt Sie haben Ihre Wahl, bevor Sie verlassen, von einem glitzernden oder ein Glühen in der dark-- oh, warten Sie eine Sekunde, wait-- prickelnde und ein Leuchten in der Dunkelheit Elefanten von CS50 eigenen Cheng Gong. HIKARI: Aw, danke. David J. MALAN: Alle Recht, ich danke Ihnen so sehr. [Applaus] David J. MALAN: Also wahre Geschichte. Dies ist, dass alle diese sagen Maschinen und der Leichtigkeit, mit der man nutzen sie jetzt und nehmen Sie für selbstverständlich, wirklich begann hier, nur ein paar Schritte von dieser tatsächlichen Theater. Und jetzt heute, wenn Sie noch nicht, dies ist Maxwell Dworkin, der Computer Wissenschaften Gebäude, auch um die Ecke. Und auf der zweiten Etage dieses Gebäude hängen drei Seiten von der Original-Quellcode, Bill Gates und Paul Allen schrieb. In der Tat, wenn Sie den Einsatz heran in Ihnen nicht nur sehen können die Namen in der Originaltyp, aber auch ihre Unterschriften, die sie schmückte ein paar Jahren, als sie zuletzt besucht. Aber was besonders überzeugend war etwa das ist, was sie sich vorgenommen haben war es, ein Programm zu schreiben, das wäre ermöglichen anderen Menschen zu schreiben ihre eigenen Programme. Zu der Zeit alles, was es mit diese Maschine durch MITS Altair gemacht. Und alles, was sie brauchte, war ein Weg gefunden so dass es leicht für Bastler und Leute wie wir in diesem Raum tatsächlich Programm dass ohne das Verständnis unbedingt Assembler-Code oder Maschinen Code, oder, Gott bewahre, 0 und 1. Wir Programmierer, wie die in diesem Zimmer, wir wollen in der Lage sein, um auszudrücken, uns viel mehr wie Pseudo-Code auch wenn es ein bisschen mehr nit wählerisch, als wir letzte Woche gesprochen. Wir wollen nicht, Code so schreiben, die Paul Allen und Bill Gates haben. Wir, stattdessen wollen, Code zu schreiben, dass sieht ein wenig benutzerfreundlich. Nun ist dies eine Sprache wie BASIC bekannt. Und die Zeilennummern gibt es, was Sie verwenden, um einfach nummerieren Sie die Zeilen Code dass du schreibst. Wir haben nicht einmal zu zu tun, dass in diesen Tagen. Aber sehen Sie hier wie PRINT "Hallo, Welt" wäre in der Tat vermutlich genau das zu drucken. Und so was Bill und Paul tat, war Menschen zu ermöglichen, Code wie diesen schreiben statt von--, wenn Sie einen Blick auf die nehmen Informatik wall-- Code wie diesen. Tatsächlich CS50 kürzlich Gelegenheit hatte, mit Professor Harry Lewis sitzen in der Informatik-Abteilung, die sich tatsächlich gelehrt Bill Vor einigen Jahren Gates, und steht hier vor diese drei Seiten von Auszügen. Lassen Sie uns einen Blick. HARRY Lewis: Was Sie hier haben, ist eine Angebot eines frühen Stück Software von Bill Gates und Paul geschrieben Allen, die Gründer von Microsoft. So dass der Code ist interessant aus zwei Gründen. Zunächst wurde es Microsoft Das erste Produkt, , die ein Interpreter für war die Programmiersprache BASIC. Und zweitens war einer der ersten Versuche einen Dolmetscher, so gewöhnlichen erstellen Menschen könnten PCs zu verwenden. So Bill Gates war ein Bachelor in Harvard. Ich begann Unterricht an der Harvard im Jahr 1974. Dies wurde 1975 durchgeführt. So war es in seiner Karriere früh und am Anfang meiner Karriere. Ich eigentlich in lehrte Bill ein Kurs um diese Zeit. Paul Allen war nicht ein Harvard-Student, aber er war eine der High School Klassenkamerad von Bill Gates. Wenn Sie kommen und schauen bei der Auflistung, werden Sie tatsächlich eine dritte zu finden Name, Monte Davidoff, die Gates 'Klassenkamerad war hier in Harvard. OK, hier ist so ein interessanten Kommentar hier oben. Er sagt: "In 4K kann Quadratwurzel löschen aber für Schleifen sollte immer noch funktionieren. " OK, also, was das bedeutet, es ist, dass zwei Möglichkeiten, dieses Programm zu kompilieren. Einer war auf einer Version laufen dieser Altair Computer dass nur hatte 4K Worte Speicher 4096 Speicherworte. Aber die große Version hatte 8K. Und so was sagt, ist dies daß im 4K-Version Sie hatte einige löschen Code, um es fit. Und eines der Dinge, die gelöscht werden würde würde die Quadratwurzel Routine werden. Aber anscheinend die for-Schleifen sollten noch arbeiten, auch wenn Sie die Erstellung unten bist nur für die 4K-Version des Computers. David J. MALAN: Also eines der Themen, wie wir in der Informatik sehen, ist dieser Begriff der Schichtung und Abstraktion, und wirklich auf den Schultern von Leuten, die vor uns gekommen sind, nicht Anders als einige der Bill Gates und Paul Allen Erzählung hier. Und was das bedeutet, ist dass wir heute für selbst gewährt, dass die Dinge tatsächlich für uns einfacher Code zu schreiben. Tatsächlich Code, wie wir am Freitag sagte, ist mehr technisch als Source-Code bekannt. Und es ist diese englische ähnliche Syntax das ist mehr richtig und besser definierten als so etwas wie Pseudo-Code, für die es keine formale Definition. Und heute, was wir zu konzentrieren, ist Quellcode das sieht aus wie dieses, das zwar auf den ersten Blick sieht völlig kryptisch. Und ehrlich gesagt, es ist viel mehr ästhetisch komplexer als die zugrunde liegende Programm ist. All dies Programm tut, Abruf wird was haben wir gesagt? Er druckt nur "Hallo Welt." Und doch alle Sachen, die wir brauchen, schauen um diesem sehr einfachen Satz zu wickeln. Aber es dauerte nicht lange alle Diese Linien und mehr wird viel besser für Sie Sinn machen. Und die Strömung ist wie folgt. Was wir brauchen, die uns zur Verfügung ist es, Code zu nehmen, wie Quelle Code, den wir gerade gesehen haben. Und wir brauchen ein neues Programm um es zu durchlaufen. Wir müssen Algorithmen, kann Source-Code zu konvertieren, wie dieses, in Objektcode, die 0 und 1. In anderen Worten, was wir gehen heute zu lernen wird, wie dies zu tun, schreibe Quellcode bis oben, geben sie als Eingang zu einem besonderen Programm als Compiler bekannt, und wir werden Objekt-Code zu erzeugen. Das ist nur eine andere Art von sagen wir etwas nehmen Das sieht dann so, geben sie in ein Programm namens einen Compiler, Herstellung Objektcode das sieht so aus. Das sind also buchstäblich die Muster von 0 und 1 , die von einem verstanden werden Intel-Computer in diesen Tagen, dass, wenn die von der CPU interpretiert, die Köpfe innerhalb eines Computers, buchstäblich ausdrucken, Ganz einfach, "Hallo Welt". Jetzt gibt es viel mehr 0 und 1, als Sie hoffe, dass vielleicht für notwendig. Aber das ist, weil wir bauen auf einem viel Komplexität dass wir von nun an für selbstverständlich halten. Mit anderen Worten, viele kluge Leute haben uns eine Menge coole Tools gegeben und leistungsfähige Software, mit der wir können jetzt eigene Projekte. Also lassen Sie uns beginnen. Während im letzten Freitag, und für Problem-Set 0 diese Woche, Sie werden in einer Spiel werden Welt, die so aussieht. Ab heute und für Problem Set 1 nächste Woche, den Code wird sich ein wenig mehr sehen kryptisch, aber funktional ist geht das gleiche zu sein. So Ankündigung, top ist Scratch, Boden ist C. Ehrlich gesagt Scratch ist viel mehr Benutzer freundlich und zugänglich. Aber wenn Sie jetzt vergleichen visuell oben nach Boden, es ist irgendwie eins zu eins Korrespondenz zwischen der Puzzleteile und die Sprache wir sind dabei, mit zu spielen. Insbesondere heißt, die blaue Puzzleteil bis oben, ist offenbar äquivalent zu welchem ​​Stichwort oder spezielle Begriff in dieser Sprache namens C? ZIELGRUPPE: Printf. David J. MALAN printf. Das bedeutet, formatierte Druck. Und das ist nur eine Phantasie Art zu sagen, printf in C wird, eine Erklärung oder eine Funktion sein die Drucke etwas auf den Bildschirm. Was bedeutet es für den Bildschirm zu drucken? Was auch immer Sie es sagen, nach innen von Zitaten, innerhalb von Klammern. Also noch einmal, zugegeben, es gibt eine Menge Sachen dass Sie im Auge zu behalten, Klammern, Anführungszeichen, Semikolon, und all dies. Aber all das ist eine Art der neben dem Punkt. Die interessant Mitnehmen für jetzt ist, dass das Wort Block in Scratch ist so ziemlich gleichwertig die printf-Anweisung in C Inzwischen hat die gelbe Puzzleteil bis oben, wenn grüne Flagge angeklickt wird, vermutlich äquivalent zu dem, was hier Keyword? ZIELGRUPPE: Main. David J. MALAN: Also Haupt. Vielleicht int, vielleicht nichtig. Aber Haupt Art von Sounds wie es ist wichtig, und ist es auch. Also, wenn grüne Flagge angeklickt ist wieder das Puzzlestück dass startet ein Scratch gesamte Programm. Aber wir werden jetzt telefonieren dass die Haupt, diese Funktion als Haupt bekannt. Nun wir werden mittlerweile verallgemeinern dies wie folgt. Wir nennen könnte sagen, eine Funktion. Und es aussehen könnte, speziell wie diese. Nun, was ist mit Schleifen? Wenn wir die Konvertierung zu starten wollen oder Übersetzen mehr in Scratch zu C, dieses Ding hier offenbar nur sagt "Hallo Welt" für immer. Also, wenn Sie diese zuordnen Skripte mit einer Katze im Scratch, es nur geht, um immer wieder sagen in einer Art von Comic-Blase, "Hallo Welt, hallo Welt, hallo Welt ", bis zum Überdruss, für immer. Wenn wir etwas tun wollen ähnlich C, es wird schauen ein wenig kryptisch. Aber wir können das gleiche zu erreichen Ergebnisse, wie wir schließlich herauszufinden, mit Syntax wie diese. Ich werde printf wieder zu benutzen, denn am Ende des Tages Ich möchte print "Hallo Welt". Und ich bin offenbar mit einem Stichwort, das nicht immer. Es ist stattdessen das Wort, während. Aber nur semantisch in Englisch, während Art von schlägt eine Art Schleife oder Zyklus. So dass passiert zu sein, das Stichwort, das C verwendet. Und während wahr ist, warum tut, während wahr effektiv für immer das? Nun, während, wie wir bald schätzen umso mehr, hat diese in Klammern daneben wo Sie einen Booleschen Ausdruck setzen können. Und so lange, daß Ausdruck ist wahr, dieser Code, zwischen diesen beiden bezeichnet geschweiften Klammern, wie wir sie nennen, einfach weiter immer wieder läuft. So wahr ist wahr. So, während wahre Mittel nur tun dies immer. Es ist fast ein dummer zu konstruieren, um sich auszudrücken. Aber es gab keinen immer Schlüsselwort in C Es war Zeit. Und es war eine sehr einfache Boolean Ausdruck wie wahr. Und so werden wir sehen,, erreicht das gleiche Ergebnis. Wie sonst könnte man eine Schleife zu implementieren? Nun, in Scratch Dir vielleicht Festcode eine bestimmte Anzahl der Iterationen in der Schleife hier. Und so, dass ist genau das, was wir könnte in dieser Version von C zu tun, wobei wir eine for-Schleife so genannte. Und die for-Schleife wird hier zu durchlaufen, etwas kryptisch, von dem Wert 0 auf bis um aber kleiner als 10 ist. Jetzt Variablen in Scratch. Sie werden vielleicht nicht gehabt haben Anlass, diese zu verwenden. Aber was ist der Punkt, in der Regel einer Variablen haben wir gesagt letzte Woche? Was ist das? ZIELGRUPPE: Punkte. David J. MALAN: Zu Punkt? Oh, verweist. OK, die Verfolgung von Punkten, zum Beispiel in einem Spiel. Oder allgemeiner tun was mit der Variablen? Was ist der Nutzen davon? ZIELGRUPPE: Speicher. David J. MALAN: Ja, so Speicher. Es ist etwas für die Speicherung. Und die Art von dummen visuelle ich letzte Mal war, als dieser Glasschale. Und wenn wir zu speichern wollte etwas in einer Variablen, zum Beispiel jetzt die Wert ist, weil es sechs sind sechs Tischtennisbälle in hier. Es ist nur eine Art von Speicher Container, der unter der Haube wird mit den Bits, 0 und 1 umgesetzt, jedoch ein Computer passiert, das zu tun. So in Scratch, wenn wir wollen eine Variable haben, können wir eine orange-Block wie folgt verwenden. Wir werden diese Zähler nennen in diesem speziellen Fall. Ich initialisiert auf 0. Und was es ich dann tun? Für immer, sagen Zähler, die, wenn Sie spielen mit, dass in Scratch, Sie sehen nur Kratzer. Die Katze oder was auch immer Sie anziehen Kostüm ihm wird die Zahl in Frage zu sprechen. Änderungszähler um 1 ist wie um 1 erhöht. Und so ist dies zu gehen zählen, was so was? Von 0 til Infinity oder bis Scratch Pausen, oder bis Sie eine Art verlieren das Interesse an beobachten wie hoch er tatsächlich zählen. Also, wie könnten wir wandeln diese zu C? Es wird schauen ein wenig kryptisch. Aber noch einmal, wenn Sie bei jedem Blick dieser Leitungen einzeln sie Art von Formation im Allgemeinen. Also scheinbar int zu gehen haben eine besondere Bedeutung in C. Wir werden das wieder zu sehen. Nebenbei bedeutet Ganzzahl. Also es bedeutet nur, Nummer. Also das ist die Art der Glasschüssel ich will, eine dass die Zahlen speichern kann, Ping-Pong-Bälle nicht. Und ich werde das Gleichheitszeichen verwenden da, um es zuordnen einen Wert von 0 ist. Also das ist ganz wie Set Zähler auf 0, aber in C. Unterdessen, während wahr, war, dass Äquivalent, natürlich, für immer, auch wenn es ein wenig kryptisch, und dann innerhalb der geschweiften Klammern. Und Sie diese geschweiften Klammern denken kann, die Sie auf der Tastatur eingeben, als wirklich zu sein wie die Krümmung in Diese gelben Schleife Blöcke in Scratch. Es umfasst mehrere Zeilen von Code. Printf ist immer ein wenig beängstigend, weil ich jetzt siehe zitiert nicht nur in Klammern. Aber was ist sonst noch neu syntaktisch in diesem Beispiel? Es gibt ein Prozent d. Und dann Backslash n ist da. Wir sahen, dass vor, auch obwohl ich nicht erwähnen. Dann gibt es noch ein Komma. Und dann gibt es einen Zähler. Aber wir werden sehen, in nur Moment, dass dies nur ein Standard-Art zu sagen, ein Druck "Dezimalzahl", Zitat, Zitat Ende, einige Dezimalzahl. Aber ich werde dir später was das Dezimalzahl ist. Also die Tatsache, dass es ein Komma in dieser Zeile printf Sprichwort, bedeutet, gehen Sie vor und Druck einige Dezimalzahl. Oh, und übrigens, ist die Anzahl unabhängig von dem Wert dieser Variablen ist. Und so mehr zu machen Klar, werden wir ein Beispiel zu sehen es dauerte nicht lange mit genau printf im Rahmen des echten C-Programme. Jetzt nur noch zum Abschluss einige dieser Konstrukte. Boolesche Ausdrücke, haben Sie möglicherweise nicht Anlass, diese in Ihrem Programm verwenden aber Sie könnten sehr gut, vor allem, wenn unter Bedingungen. Und so sind diese zwei Beispiele aus Kratzen meine, wenn x kleiner als y ist, oder wenn x kleiner als y und y kleiner ist als z, wie könnten wir übersetzen das? Nun, in C, es ist nur werde so aussehen. Ein wenig kryptisch, mehr Klammern, einige seltsame Et-Zeichen, aber im Grunde die Ideen sind so einfach, wie sie sind in der Puzzle-Stück Welt. Wir einfach überprüfen, ob etwas weniger als etwas anderes. Wie wäre es mit Bedingungen? Auf den Punkt gebracht in Englisch, was hat das Stück von Scratch-Code haben würden Sie sagen? ZIELGRUPPE: Vergleicht zwei Zahlen. David J. MALAN: Vergleicht zwei Nummern, und wenn x kleiner als y ist, es sagt so viel. Wenn x größer als y ist, es sagt so viel, sonst wenn x gleich y ist es sagt so viel. Wo habe x und y kommen? Wer weiß. Dieses Stück von Scratch Code ist aus dem Zusammenhang gerissen. Aber was wir jetzt tun wollen, ist zu übersetzen dies nur für einen Moment, um zu sehen. So wie Sie sich bequem in dieser Woche in Problem-Set 0 spielen in dieser Welt auf der linken Seite, zu verwirklichen , dass die Ideen nicht ändern diese Woche oder nächste oder darüber hinaus. Tragen wir einfach zu Schreiben beginnen Dinge in einer anderen Weise mit den Tastatur anstelle der Maus. So dass, wenn x kleiner als y ist, und es gibt einige Klammern gibt, dann gibt es einige geschweiften Klammern erneut, um Art von kapseln genau wie die gelben Puzzleteile zu tun. Und ich werde printf x kleiner als y und so weiter. Das Schöne an C, wie Sie hier sehen können, ist, dass Sie diese Verschachtelung nicht bekommen, nisten, nisten, das ist unbedingt gehen, um den Code auf der rechten Seite zu schieben. Sie können statt alles zu haben Lineup ordentlich gefallen. Aber das ist nur ein ästhetisches Detail wir uns wieder sehen, bevor lang. In Ordnung. Also das bringt uns zurück zu Diese kryptische suchen Programm. Lassen Sie uns einige Code tatsächlich zu schreiben. Nun, wie denken Sie über das Schreiben von Code gehen? All die Jahre, die Sie besessen haben einem Mac oder PC, Desktop oder Laptop, Sie haben tatsächlich die Möglichkeit hatte zu dem Schreiben beginnen Programmiercode. Aber du bist wahrscheinlich fehlt eine spezielle Art von Programm. Sie können sicher Code schreiben. Aber man kann nicht unbedingt, aus der Box, konvertieren, dass Quellcode in Objektcode, die 0 und 1 ohne das, was auf Ihrem Computer? ZIELGRUPPE: Compiler. David J. MALAN: Also ein Compiler, richtig. Jetzt sind die meisten von Ihnen wahrscheinlich besitzen nicht einen Compiler, habe noch nie einen Compiler heruntergeladen. Aber Sie werden sehen, Sie können es herunterladen wie die meisten anderen Stück Software. In der Welt des Mac OS, können Sie downloaden oder bereits heruntergeladen etwas namens Xcode oder GCC oder Clang. Wenn Sie von der kommen Windows-Welt, die Dir vielleicht Visual Studio heruntergeladen, Visual Basic, Umgebungen wie das. Es gibt Dutzende von Compilern in diesen Tagen, die Sie verwenden können. Aber die kurze von hier ist, dass es ein Schmerz sein und, ehrlich gesagt, ein technologischer Alptraum für hunderte von Menschen mit unterschiedlichen Computer-Konfigurationen, um alle konfigurieren ihre Maschinen in genau der gleichen Weise so dass wir alle auf der gleichen Seite befinden. Also, was wir stattdessen tun in CS50 ist geben wir Ihnen ein Standard-Umgebung, eine Linux-Umgebung, ist gehen, um ein wenig aussehen so etwas wie dieses. Sie werden mehr von diesem in die sehen Problem Set 1-Spezifikation, die online gehen an diesem Freitag Abend. Und was das bedeutet ist, dass Sie von nun an sind in der Lage zu sein, herunterladen und installieren ein Programm genannt CS50 Appliance. Und du wirst download und installieren Sie ein anderes Programm namens ein Hypervisor, der nur eine ist andere Art, dies zu erreichen. Egal, ob Sie einen Mac oder PC oder besitzen Linux-Rechner oder ein Solaris-Computer, oder was auch immer verrückt Betriebs System Sie laufen, Sie gehen, um ein Programm download genannt Hypervisor, ist werde die CS50 laufen Gerät auf Ihrem Computer Egal, was Ihr Betriebssystem ist. Ein Hypervisor mit anderen Worten wandelt unsere Sachen zu welcher Sprache auch immer, was auch immer die Anweisungen Ihres eigenen Computer versteht. Das ist also eine Schichtung. Und wieder ist diese Art von thematischen in Computer Wissenschaft, das Gebäude am Anfang der Dinge. Vielleicht haben Sie von Windows. Vielleicht haben Sie Mac OS. Aber ab nächster Woche sind Sie werde heruntergeladen haben eine kostenlose Software rief der Hypervisor. Du wirst ein Stück heruntergeladen haben Software namens der CS50 Appliance. Das wird in den Hypervisor laufen, die gehen, um auf Ihrem Computer ausführen. Und das Endergebnis ist, dass alle von uns haben ein einfaches Fenster wie diese auf Ihrem Mac oder PC Das gibt uns die Illusion von allen dasselbe Betriebssystem, ohne weitere Auswirkungen auf Ihren Computer. Und Sie können den Vollbild es und im Wesentlichen verhalten als ob Sie laufen ein Betriebssystem namens Linux, Das ist, was der CS50 Appliance basiert. Lassen Sie uns also tatsächlich nutzen diese Jetzt, ein Programm zu schreiben. Sie können ein Programm schreiben mit Microsoft Word. Sie können ein Programm schreiben mit TextEdit oder Notepad, oder WordPad oder so ziemlich jedem Wort Verarbeitungsprogramm Sie je benutzt habe. Aber die Realität ist, sollten Sie nicht verwenden wirklich eines dieser Programme. Sie sicherlich nicht verwenden sollte so etwas wie Microsoft Word, die hat mutig ausgerichtet und Kursivschrift und größere Schriften und kleineren Schriften, weil der Computer nicht kümmern, dass jeder. Alle der Computer werde über ist egal Englisch wie Anweisungen in C geschrieben Also, was wir tun, im Inneren des CS50-Appliance ist ein Programm verwenden, frei verfügbar ist, und es in dieser vorinstalliert Gerät, genannt Gedit. Und Gedit ist nur ein super einfach Texteditor wie TextEdit Mac OS ist, wie Windows Notepad, die zu gehen ist schauen ein wenig so etwas wie dieses. Lassen Sie uns also eigentlich nicht Blick auf Folien dafür. Aber lassen Sie uns gehen tatsächlich in die Umwelt selbst. Ich werde weitermachen und melden Sie sich an, in dieser anderen Fenster, meine CS50 Appliance, die ich habe auf meinem Laptop vorinstalliert hier. Beachten Sie, dass, wie Windows und Mac OS, es hat einige Menüs. Wie Windows es bringt es dort unten statt von Mac OS, die es setzt dort unten. Aber die Realität ist, dass es alle Arten von der gleichen. Und hier ist eine ganze Bündel von Software. Es gibt Dropbox. Es gibt eine ganze Reihe von Zubehör, grafische Programme, die wir späteren Verwendung in dem Ausdruck für die Problem Sets. Es gibt ein Web-Browser in so gebaut dass dies ein vollwertiges Computer innerhalb eines Computers. Aber ich werde das auf ganz links weißes Symbol hier, Das ist das Symbol für Gedit. Und es geht um ein Fenster zu öffnen dass drei Platten, um sie, eine linke, eine obere und eine untere. Jetzt ist es in diesem oben rechts eine, die Ich werde einige Code tatsächlich zu schreiben. Also lassen Sie uns dies tun ,. Ich werde Sie auf Datei, Speichern. Und Sie je gesehen haben könnte Dies insbesondere vor dem Fenster. Aber das ist wie Mac OS oder Windows. Es ist nur ein Fenster mit allen Ordnern dass ich im Inneren des Computers. Und ich werde, um zu speichern die Datei als hello.c. Und ich werde gehen Sie vor und klicken Sie auf Speichern. Und jetzt merke ich, haben ein Register links oben genannt hello.c. Also wahrscheinlich ziemlich vertraut, auch wenn Sie nicht haben vor verwendet diese besondere Programm. Und jetzt werde ich in jenen Typ ziemlich kryptischen Befehlsfolge sahen wir vor einem Augenblick. Gehören Standard-I / O.h. Mehr dazu in Kürze. Int main Leere, offene lockige Klammer, geschweifte Klammer geschlossen. Und dann gibt es innerhalb der ich denke, ist wo wir "Hallo Welt", Semikolon. Und jetzt retten. Das ist also ein Programm in C geschrieben, geschrieben, daher im Quellcode. Aber ich kann nicht einfach führen Sie dieses Programm. Ich Art zu verdoppeln wollen Klicken Sie auf ein Symbol, irgendwo, aber andere kein Symbol vorhanden ist als die Source-Code-Datei. Was wiederum ist der Prozess jetzt, Ich muss diese Datei durchlaufen? ZIELGRUPPE: Compiler. David J. MALAN: Also ein Compiler. So in verschiedenen Computern, die Sie tun dies auf unterschiedliche Weise. Aber was wir hier getan in die CS50 Appliance, ist Vertreter, wie Sie tun dies auf vielen verschiedenen Systemen, ist, ich bin einfach da, um einen Befehl namens machen. Und machen Sie buchstäblich das tun. Machen Sie mir ein Programm. So machen wird gehen führen Sie einen Compiler für mich. Und der Name des Programms, Ich will, ist, hallo. Jetzt machen, ist ein Programm. Und machen schlau genug, um es erkennen, dass, wenn ich sage, machen hallo, es wird automatisch aussehen nach einer Datei namens hello.c nur weil das die so, wie es konfiguriert. Also, wenn ich jetzt treffen hier eingeben, diese verrückt kryptischen Zeile wurde gerade ausgeführt. Und glauben Sie mir, bevor lang, innerhalb von nur Tagen Sie werden verstehen, was das alles diesen Unsinn Mittel. Aber jetzt weiß nur, dass machen ausgelösten Ausführung eines Compilers. Mit anderen Worten, es fand ein Compiler auf meinem Computer das ist vorinstalliert auf dem CS50 Appliance dass wir, Sie in Set 1 Hand Problem. Und es nahm dann als hello.c Eingang und anscheinend hergestellt 0 und 1 als Ausgabe. Und standardmäßig, was es tut, ist es spart diese 0 und 1 in einer Datei namens hallo. Und obwohl dieser Syntax zu Macht sein neu für Sie, einfach sagen, dot Schrägstrich hallo wird den sein Mittel, mit denen ich dieses Programm. Für jetzt und für mindestens ein paar Wochen fast alle Programme Wir schreiben gehen, um in sein Schwarz-Weiß-Textfenster. Keine Maus, kein Klicken, keine Fenster, keine Symbole. Wir werden es einfach zu halten und konzentrieren sich auf die zugrunde liegenden Ideen zunächst, bevor wir um etwas zu bekommen höheren Ebene, beispielsweise, wie das Arcade-Spiel, das wir gesprochen etwa in der ersten Vorlesung der vergangenen Woche. Also, wenn ich getroffen Geben Sie hier, es ist Gegenwert in einer Nur-Text-Umfeld zu verdoppeln auf ein Symbol namens hallo. Was erwarten Sie von Wille passieren, wenn ich dann Enter drücken? ZIELGRUPPE: Es wird "Hallo Welt." Drucken David J. MALAN: Hoffentlich es wird "Hallo Welt." drucken Und in der Tat es tat. Jetzt gibt es schon einige kryptische Syntax hier. Lassen Sie uns für nur zurückspulen ein Moment, und sehen, ob wir kann nicht nur durch die Ableitung starten Basteln, Ausprobieren und Fehler, , was ist denn hier los. Was ist, wenn ich von dem Backslash n los? Nun, einige von euch, die haben vor wahrscheinlich programmiert wissen sofort, was das bedeutet. Aber für diejenigen von euch, die haben nie programmiert, zumindest auf sich selbst zu denken, was los ist zu ändern, wenn ich erneut dieses Programm? Also werde ich wieder nach unten zu gehen, meine kleine schwarze und weiße Fenster, das ist das Fenster, in dem Ich kann dies zu kompilieren. Ich werde hallo neu kompilieren. Wir werden das gleiche sehen kryptischen Befehlsfolge. Und ich werde Punktstrich tun hallo. Und nun jemand, wenn Sie möchten, die noch nie programmiert hat, Was diesmal anders sein könnte? Ja. ZIELGRUPPE: Es wird nicht aufhören Druck "Hallo Welt". David J. MALAN: Es wird zu-- leid? ZIELGRUPPE: Es wird nicht aufhören ihn zu drucken? David J. MALAN: Es wird nicht mehr drucken "Hallo Welt". Also keine schlechte Idee. Andere Ideen? Ja. ZIELGRUPPE: Fehlermeldung? David J. MALAN: Fehler Nachricht, OK, könnte sein. Was sonst? ZIELGRUPPE: Es könnte der Druck Halterung mit dem Semikolon als auch? David J. MALAN: Könnte das zu drucken Halterung mit dem Semikolon als gut. Also vielleicht ist dann, dass einige Backslash Art terminous, die wichtig ist. Alle anderen Gedanken? Also alles gute Ideen. Und in der Tat, es geht um eine Fehlermeldung. Das ist wahrscheinlich am ehesten die Antwort im Allgemeinen für die nächsten Wochen wie wir lernen, hier zu codieren. Aber jetzt erinnern, dass Computer nur tun, was Sie sagen, zu tun. Ähnlich wie die lächerliche Erdnuss Butter und Gelee Beispiel. Unsere menschliche Computer wurden nur angenommen zu tun, was Sie ihnen gesagt, zu tun. Also in diesem Fall, wenn Sie nicht sagen, den Computer , dass die blinkenden Cursor auf den Umzug nächsten Zeile, es ist nicht dabei, es zu tun. Also, wenn ich dieses Programm jetzt, den Unterschied bemerken. Sieht aus wie ein Bug. Es ist ein ästhetischer Fehler, vielleicht. Aber was ist anders an diesem Ausgang gegenüber dem letzten offensichtlich? Ja. ZIELGRUPPE: Es hat nicht eine neue Linie zu tun. David J. MALAN: Es hat nicht tun eine neue Zeile. Jetzt diejenigen, die haben vielleicht gemacht Web-Seiten vor, können Sie von dem Know BR-Tag oder das Absatz-Tag, sehr ähnlich im Geist. Ein Web-Browser wird Sie bis ignorieren Sie sagen, was genau zu tun ist. Ebenso ist eine Sprache wie C nur tun, was Sie sagen, es zu tun. Also der Grund, dass all diesen Beispielen, Bisher haben solche beiläufig hatte diese Backslash dort, ist, dass die Mittel mit denen Sie sich ausdrücken als neue Zeile, so zu sprechen. Und Sie können Art zu schätzen wissen, vielleicht, dass dies Art von dumm aussehen wenn sonst nichts. Wenn ich wollte eine neue Linie, nur Enter drücken und dann Art von Schlachten den Code so sollte eigentlich nicht reiben Sie den richtigen Weg. Und auch wenn Sie nicht zu tun wirklich, an dieser Stelle, Sie werden erkennen, dass Dies ist kein besonders gut aussehende Stück Code. Und so, wie die Welt Vor Jahren ist beschlossen dass, wenn Sie auf das setzen wollen Cursor auf einer neuen Zeile explizit, müssen Sie explizit sagen neue Linie, Backslash n. Und es gibt einige andere Symbole wie die. Aber jetzt werden wir nur konzentrieren sich auf Backslash n. Jetzt machen wir das Programm ein wenig interessanter. Ich werde weitermachen und dieses Mal öffnen, eine neue Datei. Ich werde diese wie hallo-1.c speichern. Und nur zum Spaß, ich bin zu gehen gehen lege sie in meine Dropbox-Ordner. Wie Sie in der CS50 sehen Dokumentation für das Gerät, noch in dieser Woche für Problem Set 1, wir fördern Sie Dropbox nutzen oder einige gleichwertige Leistung, weil dann alle Ihre Code werde automatisch gesichert werden. Und damit ist, warum ich habe Hier in diesen Ordner verschwunden. Und jetzt werde ich ein schreiben etwas anderes Programm. Gehören Standard-I / O.h, int main nichtig. Und dann hier printf, hallo Welt, Das ist genau die gleiche wie zuvor. Aber jetzt möchte ich etwas drucken das ist ein wenig anders. Ich möchte ausdrucken, sagen: "Hallo, David." Alles klar, so offensichtlich, es sollte hoffentlich der Fall, dass, wenn ich neu zu kompilieren, Dieses Programm, das erneut ausführen, es geht zu sagen "hallo, David." Aber was, wenn ich die Einführung Diese Art der variablen die Vorstellung von einem Behälter, die gehen zu speichern D-a-v-i-d und nicht hart codieren es in meinem Programm. Nun was ist, wenn ich starten so etwas tun? String s, so ist eine Variable. Wenn Sie möchten, eine Zeichenfolge, a.k.a. ein Wort oder eine Phrase. Eine Folge von Zeichen ist, was wir in der Programmierung rufen Sie einen String. Wir gehen nur generisch Anruf es s, weil es eine schöne einfache Namen. Aber ich könnte es etwas. Ich werde String S gleich sagen Zitat unquote: "David," Semikolon. Und jetzt möchte ich einfügen D-a-v-i-d in das, was ich bin Druck. Und bevor wir sahen einen Teaser auf der Bildschirm einige spezielle Syntax dass es uns ermöglicht, Ersatz in einem Wert. Was war die besondere Symbol vor ein paar Dias? Also Prozent. Zu der Zeit war es Prozent d für Dezimalzahl. Das scheint nicht wirklich relevant. Stellt sich heraus, es ist ein weiterer Prozentzeichen, Das ist s Prozent, die steht für einen Platzhalter für eine Zeichenfolge. So, jetzt sehr einfach, ich bin gehen wird machen hallo-1, da diese Datei heißt hallo-1.c, und drücken Sie Enter. Und ich vermasselt. Was ist los? Nun, hier ist, wo wir beginnen schätzen, dass wir in diesem Befehl sind Zeilenumgebung, diese Nur Text-Umgebung. Es gibt keine auf die Symbole wie Ordner jetzt. Und zurück denke vor einem Augenblick. In welchem ​​Ordner habe ich gesagt Ich war mein Code sparen? So dass die Dropbox-Ordner. Hätte nichts genannt haben. Aber es passiert, genannt Dropbox werden. Also habe ich irgendwie müssen Doppelklick auf dass Dropbox-Ordner, um zu bekommen in sie und meine Code aufgerufen hallo-1.c. In der Tat, lassen Sie mich gehen Sie vor und minimieren Fenster für einen Moment. Genau wie Windows und Mac OS, Ordner vorhanden sind in Linux. Es gibt Ordner in der CS50 Appliance. Es ist nur jetzt sind wir beschränken uns dieser Textumgebung. Aber wenn ich einen Doppelklick auf Dropbox, es bemerken ist die Datei, die ich möchte zu kompilieren. Aber ich brauche diese Schwarz-Weiß- Terminal-Fenster, so zu sprechen. Aber ich brauche, deshalb auf, sich in diesen Ordner oder Verzeichnis. So etwas obskur, aber Sie werden verwendet, um dieses zu bekommen auch. In der Welt von Linux, was wiederum die Betriebs System, das wir innerhalb des CS50 laufen Gerät, es gibt einen Befehl namens CD. Das bedeutet, ich kann CD, Raum, Dropbox zu tun. CD, Verzeichnis wechseln. Rechts. Zurück in den Tag, wenn die Leute waren erfinden Computer und Betriebs Systeme wie diese, wollte sie geben die wenigsten Tastatureingaben möglich. Der einfachste Weg sich zu sagen, change directory war CD. Also, wenn ich auf CD, Raum Dropbox, bemerken, was hier verändert. Innerhalb von Klammern Das Gerät ist eine Art von mir und humoring erinnert mich, wo ich bin. So dass die geöffneten Ordner ist Dropbox. Wenn ich jetzt für ls Liste wieder prägnant, weil die Leute wollten nicht Geben Sie wieder in den Tag l-i-s-t. So dass sie stattdessen machte es ls. Eingeben. Beachten Sie, ich sehe zwei Dinge, hallo-1.c, und dann wird diese kryptische Sache, Quelle 1m. Das ist nur meine Art zu sagen, Quellcode für Woche 1 Montag. Das ist ein Ordner ich heruntergeladen CS50-Website, die ich gemacht heute früher und setzen Sie ihn einfach in die Gerät im Voraus. Aber jetzt das einzige, was wir kümmern uns macht dieses Programm. Also, wenn ich make hallo-1, ein. Verdammt. Etwas ist schief gelaufen. Also lassen Sie necken diese auseinander. Und leider ist dies, wo die Dinge ein wenig stressig auf den ersten, zumindest, wenn Sie noch noch nie zuvor programmiert. Mein Gott. Ich schrieb ein zwei Zeilenprogramm und Ich habe vier Linien von Fehlern. Also, was ist denn hier los. In erster Linie immer wieder zurück blättern und finden die erste Fehlermeldung, weil oft nur Compiler verwirrt durch das, was Sie und ich. Compiler sind ziemlich dumm. Sie werden nur das tun, was Sie ihnen sagen, zu tun. Und wenn man sie zu verwirren, nur sind sie gehen zu Art werfen ihre Hände und vielleicht auch mehr Fehlermeldungen werfen als tatsächlich relevant. Also schauen wir uns an der ersten. Super kryptisch auf den ersten. Aber beachten Sie, hier ist der Name des Datei, in der ich vermasselt offenbar. Colon 5, 5 Doppelpunkt bedeutet nur, auf Linie 5 an der fünften Stelle. So fünften Spalte von Zeichen, wenn man will, Fehler. Verwendung von nicht deklarierter Bezeichner-String. Meinten Sie Standard-n? Nein, ich meinte String. Und dann ist es Art ist Kopieren und Einfügen was ich getippt, um wirklich zu ziehen meine darauf, wo ich es vermasselt. Also aus irgendeinem Grund C, oder zumindest der Compiler versteht nicht, das Wort String. Und das ist, weil wir es auf. So String existiert nicht in C. Was tut CS50, In den ersten paar Wochen nur der Klasse, ist bieten wir eine Ausbildung Räder, so zu sprechen. Und wir setzen diese Ausbildung Räder innerhalb einer speziellen Datei namens CS50.h. Also das ist der zweite von zwei Datei Namen, die offenbar in Punkt h beenden. Lassen Sie uns zurückzuspulen. Printf ist eine Aussage oder Funktion dass offenbar etwas druckt auf dem Bildschirm. Aber du hast mich nicht sehen printf implementieren, richtig. Jemand vor Jahren umgesetzt printf. In welcher Datei könnte er wetten oder sie setzen die Umsetzung für printf, der Code für printf? In einer Datei namens Standard-I / O.h. In der Tat, es ist wahrscheinlich in zwei Dateien, Standard-I / O.h, die für Header steht Datei und Standard-I / O.c, das steht für C-Quellcode. Damit er oder sie vor einigen Jahren plumpste der Code, der sie in diese Datei geschrieben so dass Leute wie uns Jahre später sind es, so zu sprechen, in unserer eigenen Programme. Und in der Tat, das ist, was das Pfund-Zeichen gefolgt von dem Wort gehören tut. Es sieht auf der lokalen Festplatte, findet die Datei mit dem Namen Standard-I / O.h, und dann effektiv Kopien und fügt es in meiner eigenen Datei. So, jetzt mein Programm weiß, wie man auf dem Bildschirm anzuzeigen. So von dieser Logik, wobei wird String definiert? ZIELGRUPPE: CS50.h. David J. MALAN: CS50.h. Und in der Tat, das ist, was wir, der Kern Personal, getan haben. Wir haben ein paar Datentypen erfunden, so zu sprechen, wie ein String, zusätzlich zu, die Sie erhalten kostenlos, wie ein int. Und wir werden andere wie ein Char zu sehen für ein Zeichen und ein paar mehr. Innere CS50.h offenbar zumindest einige Erwähnung von String. So, jetzt lassen Sie mich gehen Sie vor und erneut Make hallo-1. Ich werde wieder vergrößern und kreuze meine Finger. Nun gemacht zu einem ändere ich die meisten Dinge fixiert. Aber verdammt noch mal. Mehr Prozente als Daten Argumente. Was habe ich dieses Mal falsch gemacht? So ist es immer noch ziemlich kryptisch. Aber dieser Fehler auf Zeile 7 und 21 Zeichen. So gehen wir schauen hier. Es ist ein wenig subtiler. Aber wenn Sie darüber nachdenken, was die grundlegenden Ideen, die hier sind, vielleicht können wir dieses necken auseinander. So printf ist der Name der Funktion. Klammern, so weit, ist genau wie das, was wir setzen um der Stoff, wir sind vorbei als Eingänge an eine Funktion. Alles in Ordnung, nur eine beliebige menschliche Konvention. Verwenden Sie Klammern. Innerhalb dieser Klammern wir haben doppelte Anführungszeichen setzen, und dann ein String wie "Hallo Welt". Aber in diesem früheren Beispiel sehr kurz taten wir uns mit Scratch. Und wir hatten die d Prozent, was sonst war in dieser Klammern dass ich rief verbal? Ja. ZIELGRUPPE: So ist es, was du nimmst [Unverständlich] aus [unverständlich] was diese [unverständlich]? David J. MALAN: Genau. So hatten wir die d Prozent. Aber dann hatten wir in der Nähe Zitat, Komma, Zähler. Rechts. Wir angegeben, was wir wollen als Platzhalter zu tun. Also, was ich hier zu tun ist Komma, was wollen Sie mich zu setzen? ZIELGRUPPE: S. David J. MALAN: S, weil s in diesem Fall ist der Name des Speicherbehälters. Es ist der Name dieser Glasschale. Während es vorher war, dass Gegen einfache Scratch Beispiel haben wir uns. So, jetzt gemacht zu zwei Änderungen, lassen Sie mich heran und versuchen Sie noch einmal auf kompilieren dieses Programm. Jetzt sehe ich, dass die kryptischen Zeile. Aber das ist eigentlich die Namen der Compiler. Clang ist der Name des Compilers. Machen, ist nur meine Rettung der Kopfschmerz von immer Eingabe, dass die lange verrückt Befehl aus. So, jetzt, wenn ich Punkt Schrägstrich hallo-1, Ich sollte 'Hallo, David. " Ziemlich berauschend, wenn auch, oder? Wir hätten tun können dies viel einfacher ohne darüber zu reden Variablen und CS50.h und das alles. So machen wir es ein wenig interessanter. Neben CS50.h, mit Dingen wie String erklärt, die CS50-Bibliothek hat auch ein paar Funktionen. Vor so einfach wie Jahre, schrieb jemand printf und steckte es in Standard-I / O.h und einige andere Datei. Wir, die Mitarbeiter CS50, schrieb eine Funktion genannt GetChar, GetDouble, GetFloat, Getint, GetLongLong, GetString, und wir setzen diese in einer Datei genannt CS50.h und CS50.c. Und wir haben sie im Inneren des CS50 Appliance. Und Menschen können auch laden Sie sie online, wenn sie wollen sie auf setzen ihre eigenen Computer als auch. Welches ist zu sagen, dass wir geschaffen haben, Funktionen, die Eingabe von dem Benutzer zu erhalten. Ich weiß nicht, was alle Diese Datentypen sind. Getint ist irgendwie einfach, wie bekommen eine ganze Zahl irgendwie vom Benutzer. Und GetString ist wohl gefallen ein Wort oder ein Satz von dem Benutzer. Also konzentrieren wir uns auf das. Und ich werde wieder in die gehen Gerät und ich werde weitermachen und diese Datei als zu sparen, nennen wir es hallo-2.c als meine zweite Version. Und wir machen ein paar Änderungen. Dieses Mal statt harte Kodierung David, die macht eine unglaublich konsequente aber berauschend Programm, was, wenn ich stattdessen tun GetString? Jetzt bemerken GetString hat eine öffnende Klammer, geschlossene Klammer, weil es muss nicht jede Eingabe. Es nur geht zu holen ein String von dem Benutzer. Und nun ein Wort über andere Syntax. Semikolon am Ende nur eine einzige Zeile Code. Sie brauchen sie nicht überall. Aber das bedeutet nur, ich bin Mit dieser Codezeile getan. Lassen Sie mich auf einen anderen verschieben Anweisung oder Funktion. String deklariert eine Variable. String ist wie gesagt geben Sie mir eine Schüssel, bitte. Und lassen Sie mich einen String in ihm. Und jetzt das Gleichheitszeichen. Was ist das Gleichheitszeichen im wesentlichen äquivalent zu? ZIELGRUPPE: Weisen. David J. MALAN: Ja, ein Wert zugewiesen. Also, wenn ich zum Beispiel Anruf Diese Funktion GetString, und wir werden in einem Moment, dass ist zu sehen geht der Benutzer zur Angabe einer Zeichenfolge aufzufordern. Das ist wie lasse mich dann schreiben D-A-V-I-d auf ein Stück Papier. Und wenn ich sage String s gleich GetString, gleich nicht wirklich bedeutet gleich in der C-Programmierung. Es bedeutet, zuweisen von rechts Seite zu der linken Seite. Also habe ich einen String bekommen. Und das Gleichheitszeichen bedeutet, legen Sie sie in dem Vorratsbehälter genannt s. Und dann diese aus, um printf eigentlich nicht sein Ding. So das Ergebnis dann wird um ein wenig anders aussehen. Lassen Sie uns machen hallo-2. Entweder könnte funktionieren. Sie folgende entlang. Machen hallo-2 gearbeitet. Dot Slash hallo-2, ein. Ich scheine eine unendliche zu haben, Schleife oder so etwas. Nichts ist passiert. Warum? ZIELGRUPPE: Es macht eine Endlosschleife. David J. MALAN: Es ist eine Endlosschleife. Es ist eine Art wartet auf mich zu tatsächlich erbringen es mit einigen Input. Also lassen Sie mich gehen Sie vor und geben in David, und drücken Sie Enter. Und jetzt heißt es: "Hallo, David." Wenn ich es noch einmal. Lassen Sie uns geben Rob, "Hallo, Rob." Jetzt ist das Schlimmste Benutzerschnittstelle überhaupt. Der Benutzer ist offenbar sollen wissen, was zu tun ist. Aber egal. Mit Hilfe dieser selben Gebäude Blöcke wie im Scratch, können wir das Problem lösen und sagen, so etwas wie Ihren Namen bitte, Dickdarm, Raum, geschlossen Zitat, in der Nähe Klammern, Semikolon. So viel wieder Albernheit mit der Syntax. Beachten Sie aber, ich habe soeben ein Puzzle-Stück über diesem ein und oberhalb dieser. So, jetzt, wenn ich diese erneut, hallo-2, ein. Warten Sie eine Minute. Was ist los? Es ist nicht anders verhalten. Ja. ZIELGRUPPE: Sie lief nicht wieder zu machen. David J. MALAN: Ich habe nicht make erneut ausführen, richtig. Also ich habe mein Quellcode geändert. Aber noch einmal, es ist das Fluss. Source-Code durch den Compiler gibt Sie neue Objektcode oder 0 und 1. Also muss ich eigentlich Wiederholung Make hallo-2 ein. OK, scheint etwas passiert zu sein. Dot Slash hallo-2. Ihr Name bitte. Und jetzt klar zu sein, warum ist der Cursor auf der gleichen Linie? Genau. Ich habe nicht den Backslash n hier oben in meinem Code. So, jetzt kann ich schreiben so etwas wie Daven, Enter. Ich kann es wieder zu laufen, und geben Sie so etwas wie Gabe, Geben, und wir bekommen ein anderes Programm wieder und wieder und wieder. Jetzt letztlich wir gehen zu müssen, , ein paar verschiedene Möglichkeiten zu nutzen. Wir müssen schließlich einige vorstellen Bedingungen, die Dinge bedingt zu tun. Vielleicht Schlaufen, so dass wir tun können, Dinge wieder und wieder. Vielleicht wäre es schön, wenn wir könnte unsere eigene Funktionen zu implementieren, wie wir unsere eigenen zu implementieren printf oder unsere eigene Version von GetString und GetFlow, weil letztlich auch mit diesem Befehl Zeilenumgebung können wir auch tun, die meisten optisch interessante Dinge. Tatsächlich abschließend lassen Sie mich dies zu tun. Ich werde weitermachen und schließen Sie diese Fenster und öffnen Sie dieses Symbol, hier, Das ist nur eine größere Version, die eingebettete Terminal-Fenster. So Gedit hat nicht nur der Ort für meinen Code, sondern auch ein in Terminal-Fenster gebaut, die Schwarz-Weiß-Fenster, in dem ich laufen kann Befehle. Ich bin zufällig zu öffnen eine größere Version davon. Und jetzt werde ich gehen in der Ordner, den hab ich schon im Voraus setzen auf der Website des Kurses. Und ich werde weitermachen und öffnen Sie eine Datei namens thadgavin.c, , die von jemand anderem geschrieben wurde. Und wenn wir uns das an, Dies ist nicht die Art von Code wir werden da sein Schreiben Das Ziel dieses Code war es, die schönsten schreiben Suche Code, dass er oder sie konnte, unabhängig davon, ob oder nicht ein anderer Mensch je könnte verstehen diesen Code. In der Tat, gibt es jedes Jahr, was genannt verschleiert C Wettbewerb, der ist für echte Freaks, die schreiben Code, die sonst niemand lesen kann, aber das macht etwas entweder wirklich einfach oder wirklich erstaunlich. Und wir dachten, wir würden Schluss mit diesem Blick auf etwas, das ziemlich erstaunlich ist Sie könnte schon einmal gesehen zu haben. Aber wir werden an diesem Ende Note, Punkt Schrägstrich, thadgavin. Das ist dann, was sie erwartet. Das ist es für CS50. Wir werden Sie am Mittwoch sehen. [Musik zu spielen]