DAVID MALAN: Dies ist CS50, und dies ist der Beginn einer Woche. Und was wir dachten, wir hätten tun müssen, ist nach hinten ziehen der Vorhang von einem Gerät, das viele von Ihnen haben wahrscheinlich vorbeigelaufen jetzt seit Jahren, aber vielleicht nie ganz bekannt, was es ist. So wird dieses Gerät wohl aussehen kennen die meisten von euch jetzt. [VIDEO PLAYBACK] -Ein Triumph der mathematischen und mechanische Fertigkeit ist diese große neue automatische Rechner an Harvard University. Komplizierte Probleme in Mathematik setzen durch die Maschine in verschlüsselter Form auf Band sind genau in einer Minute gelöst Bruchteil der Zeit, die erforderlich für menschlichen Berechnung. Entwickelt, um alle Formen der Beschleunigung mathematischen und naturwissenschaftlichen Forschung, die riesigen mechanischen Gehirn arbeiten für die Vereinigten Staaten Kriegsmarine bis Ende des Krieges. [END VIDEO PLAYBACK] DAVID MALAN: Also das ist, was Sie sehen in das Science Center, das ist, wo Diese Maschine ist nun untergebracht. Sie eigentlich nur einen Teil davon sehen. Nur ein Teil ist derzeit auf dem Display, und das ist ein Gerät namens Die Mark I, und es war im Wesentlichen wirklich eine riesige Rechner. Es wurde von der Mark II gelungen, und es ist aus der Mark II, dass wir tatsächlich bekommen ein bisschen Lexikon. Dies ist das erste registrierte Instanz etwas, das Sie sind dabei, alle werden allzu vertraut mit über die Laufe des Semesters - nämlich ein Fehler. So stellte sich heraus, an einem Punkt der Mark II Gerät funktionierte nicht richtig, und bei genauerem Hinsehen, es war in der Tat ein Problem - eine Motte - dass moth - innen. Und seitdem haben wir bezeichnet Fehler in Programmen wie Bugs. Also mehr dazu kommen. Apropos Video als auch, wenn Sie nicht bereits haben, wissen, dass CS50 ist offensichtlich gefilmt. Die Vorträge der Regel gehen gleich nach Klasse in eine Art Pre-Release unbearbeitete Format, und dann ein oder zwei Tage später, haben wir eine höhere Auflösung und höhere Qualität Version. Sie erinnern sich vielleicht Vanessa, die das hatte Vermögen des Spielens mit Google Glass, Ich erinnerte mich an die berechnen diese Zeit. Also, wenn Sie wollen, kommen nach dem Unterricht und spielen, sollten sie heute arbeiten. Und wenn Sie möchten, um zu sehen, was Vanessa sah den anderen Tag, was Sie sehen hier - lassen Sie mich die Lautstärke zu erhöhen hier auf meinem Laptop. [VIDEO PLAYBACK] -Lassen Sie mich diese Warteschlange ist oben. In Ordnung. So berühren diese. In Ordnung. OK, Glass. Aufnehmen eines Videos. In Ordnung. Vanessa? [END VIDEO PLAYBACK] DAVID MALAN: All right, so der Grund dass es nicht für die meisten von euch bei der Arbeit das Ende der Klasse war, weil ich ging eine Stunde von diesem Datensatz Footage zeigte auf mich nach Ich setzte die Brille ab. Also heute, lasse ich sie weg, aber danke Sie Vanessa für die eine solche guter Sport. Inzwischen, ein paar Ankündigungen bevor wir heute vorantreiben. So eins, CS50 hat eine Tradition zu tun was wir können, um zu versuchen, eine sehr machen große Klasse fühlen kleiner. Und zu diesem Ende hin, die meisten jeden Freitag, sammeln wir in einem Restaurant in das Quadrat, Feuer und Eis, mit 30 oder 40 Ihre Klassenkameraden, mir einige der das Lehrpersonal, und wir haben eine sehr lockere Mittagessen. Wir laden oft Freunde aus der Industrie, Absolventen der Klasse, Alumni der college, wirklich nur zu plaudern jeder anderen auf, über das Leben zu sprechen, nachdem Hochschule, Leben in der Schule, und dergleichen. Also, wenn Sie möchten, in dieser teilnehmen erste derartige Mittagessen an diesem Freitag auf 01.15, Kopf an, dass URL zu einem bestimmten Zeitpunkt. Der Platz ist begrenzt, so dass wir tun zuerst kommt, mahlt. Aber wir werden dies wieder tun auf einer wiederkehrenden Grundlage, so dass nicht zu machen, wenn Sie dies nicht tun es in diese erste Charge. Jetzt, im Hinblick auf die zur Verfügung gestellten Mittel curricular durch den Verlauf, gibt es eine ganze Reihe, und wenn Sie nicht zog der Kurs der Website bereits, insbesondere unter Vorträge, Sie werden feststellen, dass alles wir haben letzte Woche ist es, sowohl in Video-und eine Art elektronischer Form. Aber über die Videos, werden Sie feststellen, dass es jetzt Volltext Transkripte, beispielsweise jeder Vorlesung. Also, wenn wir tatsächlich zurück zu diesem Bildschirm hier mit Vanessa, und navigieren auf der unteren Ecke des Bildschirms, Sie werden es tatsächlich zu finden, nicht für Vortrag am Freitag, aber wenn wir gehen zurück zu Mittwoch, da diese Funktion nimmt ein wenigen Tagen werden Sie feststellen, dass Sie eigentlich hochziehen, zum Guten oder zum schlimmer, jedes Wort, dass ich oder ein Freiwilliger auf der Bühne sagte. Und mehr als das.. Sie können tatsächlich suchen, können Sie klicken Sie auf eines dieser Sätze, springen bis zu diesem Zeitpunkt in dem Video, alle auf und am Ende der Herstellung des Materials ganze mehr schiffbar. Aber wenn Sie lieber nicht folgen so detailliert, finden Sie, für Beispiel diese kleine Speisekarte für 1.5x Geschwindigkeit, 2x Geschwindigkeit oder i f ich schon sprechen zu schnell für Sie, 0,75 x Geschwindigkeit. So erkennen, all das ist verfügbar für Sie da. Aber darüber hinaus, für Vorträge, realisieren dass wir auch diese Ressourcen ebenfalls zur Verfügung. Slides, Beispiel-Code, alles, was ich tun auf der Bühne oder vor der Klasse, wir werden es so schreiben, dass man spielen kann entlang zu Hause oder im Sanders. Aber was wir auch dachten, dass wir dies tun Jahr erstmals auch bieten Ihnen Komplettlösungen dieser Beispiele. Zunehmend wie ich auf das reflektierte Wert von CS50 Vorlesungen habe ich begonnen in Frage zu stellen, wie nützlich es ist für euch dort zu sitzen, für mich stehen, um hier, und für mich, um zu Ihnen zu sprechen, insbesondere als das Material, das Beispiele, werden immer komplexer. Denn immer, nachdem eine gewisse Anzahl von Minuten wird jemand Zone aus, und dann sind Sie verpassen eine wichtige Erkenntnis von einigen Beispiel, und dann bist du im Wesentlichen weg für den verbleibenden Teil der Klasse, Das ist nicht die beste Verwendung von Ihre Zeit, oder, wirklich, unsere gemeinsam als eine Klasse. Und so, was wir dachten, wir würden versuchen zu tun, insbesondere für einige der mehr komplexere Beispiele, die ich nicht tun könnte Gerechtigkeit in der Klasse, dass wir vielleicht nicht Zeit für in der Klasse, oder Sie können nur Zone während, ist wir produzieren eine Reihe von Komplettlösungen von diesen Beispiele so, dass, wenn Sie gehen, für Beispiel letzten Freitag Videoseite hier unter Beispiele, wirst du sehen, dass für Freitag, gibt es jetzt diese Link zu Komplettlösungen. Und das Format dieser im Laufe der Zeit ändern. Denn jetzt sind wir mit einem einfachen YouTube Playlist. Aber was ich mit unseren Produktions-Team danach wurde durch jeden Fuß und jeder von diesen Beispielen wieder, hoffentlich Hinweis darauf in viel größeren Klarheit genau das, was die Imbissbuden sein könnte oder sollte von jedem sein. So finden Sie zum Beispiel von den letzten Woche alle Kratzer Beispiele wir gingen durch linear getan in dieser Art und Weise. So fühlen sich frei zu engagieren oder nicht greifen in diesem Material. Wirklich ein Thema dieser bestimmten Kurs ist, dass es wahrscheinlich mehr in der Art der Ressourcen, als Sie könnte absorbieren über der Verlauf eines Semesters. Aber das ist gewollt. Es soll so sein, dass Sie sich als einzelne Schüler können selbst auswählen basierend auf Ihrem Lernstil. Also, wenn Vorträge für Sie zu arbeiten, groß. Sofern Teile für Sie zu arbeiten, groß. Wenn Komplettlösungen arbeiten Sie besser, groß. Es ist wirklich an Ihnen zu entscheiden, welche Mittel am besten für Sie. Schließlich, dank Alumnus der Natürlich bieten wir auch eine kanonische Set von Schreiber Notizen. Also anstatt haben euch Köpfe in Vorträgen kritzeln unten Dinge, die kommen in der Klasse, wir, die Mitarbeiter, werden Sie mit dem, was wir bieten fühlen, sind eine kanonische Satz von Notizen befreien Sie von dieser Ablenkung, so dass Wenn Sie hier sind und führen, sind Sie wirklich mit, was los ist engagiert, mit Ihren Klassenkameraden tun auf Bühne, mit dem, was auf dem Bildschirm, und nicht einfach aufzuschreiben wörtlich was passiert ist gesagt worden sind. So erkennen alle diese Ressourcen stehen Ihnen zur Verfügung. Schnitte, in Antwort auf eine FAQ, beginnt an diesem Mittwoch. Wir im Wesentlichen erst nach den meisten warten andere Klassen sind fertig, so dass wir können Minimierung der Anzahl der Änderungen dass wir tun müssen. Aber kommen an diesem Wochenende, beginnend Sonntag wird eine einmalige Instanz sein was wir als Super Abschnitte. Diese werden für diejenigen, die nicht gefilmt werden besuchen, und im Wesentlichen die natürlich die Köpfe wird uns durch einige Fuß der C-Anteil des Kurses, zu einem Ende des Satzes ein Problem, das wird unsere erste C bezogen sein Problem-Set. Und diese wird nur optionale Abschnitte sein in Erwartung dessen, was wird werden wiederkehrende Abschnitte führte durch den Verlauf der 50 plus Teaching Fellows wöchentlich. Am Sonntag oder Montag oder Dienstag, wir haben 90 Minuten Abschnitte in einem sehr traditionellen Sinne, die werden Chancen für die Hände auf und mehr intime Überprüfung der Natürlich ist Material. Ohne weitere Umschweife, lassen Sie mich vorstellen des Kurses Köpfe, die sind hinter den Kulissen mit mir, was alles passieren. Wenn die hier heute könnte mit mir, Rob und Lauren und Joseph und Lucas, die alle von ihnen haben mit der seit natürlich für einige Zeit. RJ ist die dritte Mitglied unseres Teams. Er konnte heute nicht hier sein, aber er hat mich gebeten, ein Foto von ihm zu zeigen. Ich bin mir nicht sicher, ob er diese , aber da ist er. Und lassen Sie mich nur, dass das Team zu sagen hallo und stellen sich vor, so dass Sie bekommen, um sie als auch wissen, dass Ihr eigenen Unterricht Kerl dieser Begriff. LAUREN CARVALHO: Hallo. Mein Name ist Lauren Carvalho. Ich bin ein Bewohner Tutor in Leverett House. Ich bin auch super aufgeregt zu sein ein Kopf für CS50 TV in diesem Jahr. CS50 ist eine sehr anspruchsvolle Klasse sowie als eine sehr große Klasse, also, wenn Sie irgendwelche Bedenken haben, wenn Sie Lust haben Sie zurückfallen, dann zögern Sie erreichen, um jeden von uns an heads@cs50.het oder zu mir, wenn Sie möchten mag mit meinen goldenen spielen Retriever Welpen. Hier ist Lucas. LUCAS FREITAS: Hey, Jungs. Mein Name ist Lucas Freitas. Ich bin ein junior [unverständlich] Informatik und Linguistik. Ich bin eigentlich aus Brasilien, und ich habe auch realisieren Ostasienwissenschaften. Also, wenn Sie irgendwelche Fragen über Informatik oder Sprache oder nichts, lass es mich wissen. Oder CS50, vor allem. JOSEPH ONG: Hallo. Ich bin Joseph. Ich bin ein älterer Computer studieren Wissenschaft in Elliott House. Also, lasst uns sehen. Du wirst mir herumzutragen sehen eine dieser riesigen Kameras. Ich bin der ansässigen Mitarbeiter Fotografen für 50 als gut, und die Schüler oft manchmal verwechseln mich eine asiatische Touristen. Also, wenn du mich mit einer Kamera, nicht weglaufen. Nur lächeln und nicht schüchtern sein. Und ich hoffe, Sie genießen 50. Ich habe es sehr genossen, wenn ich es nahm, und das ist, warum ich für habe TFing worden diese drei Jahre. ROB BOWDEN: Hallo. Ich bin Rob. Dies ist mein viertes Semester mit CS50. Ich absolvierte im Mai. Ich war in Kirkland. Ich bin für dieses Semester aufgeregt, und ich hoffe, Sie sind es auch. DAVID MALAN: Vielen Dank an der diesjährigen Köpfe, und RJ als gut. So ein paar abschließende Hinweise auf Ressourcen. Eins, setzen p 0 ist bereits. Dieses existiert nur in Standard- Ausgabe, die für die bestimmt ist Teilen der Klasse. Beginnend mit p Satz 1, wird es Hacker Ausgaben der meisten Problem-Sets, was wiederum deckt das Material mit ein bisschen mehr eine Herausforderung, während noch berühren auf einige aus den gleichen Themen. Nehmen Sie sich einen Blick auf die Kurs-Website für diese Spezifikation für p 0 set. Sprechstunde, wird auch in dieser Woche beginnen, heute, morgen, Mittwoch, und Donnerstag in den verschiedenen Einrichtungen Hallen auf dem Campus. Schauen Sie sich cs50.net/ohs für das Büro Stunden für den Kurs, und erkennen diese wird sehr lässig Gelegenheiten geben, bestimmt, zu Beginn der Semester, durch mit Ihrem kommen Laptop während der Gehirnentwicklung Pause. Bringen Sie ein paar Freunde zu unterhalten und die Natürlich die Transkriptionsfaktoren und CAs mit einem Fragen, die Sie haben könnten. Und ich kann nicht genug betonen, auch für Kratz-und Problem-Set 0, gibt wirklich keine dumme Frage. Es gibt keine Schüler zu unbequem Fragen zu stellen. Bitte zögern Sie nicht zu nutzen dieser Ressource. Es wird dort wiederkehrend sein während des Semesters, wie wird CS50 Diskutieren. Das ist der Weg der Online-Diskussion Foren auf dieser Adresse gibt. Was wir auch während der Vorträge ist zu tun überwachen auch diese, dank der Natürlich Lehre Team. Und so, wenn du eine Frage während Vortrag, weil ich etwas gesagt schlecht oder überhaupt nicht, mit allen Mitteln, fragen dass in Echtzeit, wenn Sie Ihre Laptop oder Handy auf der Website, und wir werden unser Bestes in Echtzeit zu tun zu antworten, dass. Gibt es irgendwelche Fragen zu CS 50? Dann, eines letzten Töne von mir. Das Problem der SAT UNSAT. Wie Sie Ihr Studium abzuschließen Karten, wenn Sie noch nicht erkennen, dass die übergreifende Vision von SAT UNSAT, für alle Studenten, ist wirklich um zu helfen, den Rand eines Kurses wie diese, so zu sprechen, so dass, wenn Sie finden sich spät in der Nacht, 02.00 Uhr, 03.00 Uhr, wirklich schlagen Sie Ihren Kopf gegen der Wand, wo Sie wissen, dass Sie 99% der der Weg dorthin zum Abschluss, aber Sie haben so viele andere Dinge zu tun, Ich denke, eine bessere Nutzung, oft von Schüler Zeit ist es in der Tat auf sich zu bewegen die anderen Dinge, so dass Sie optimieren Sie Ihre Zeit all around. Und SAT UNSAT ist einer der Mechanismen, über die Sie können Trost in der Tatsache, dass 99% der Weg dorthin ist noch verdammt gut. Ebenso auch, wenn Sie in den kommen Natürlich ohne vorherige Hintergrund oder nicht annähernd so viel, wie Sie Hintergrund denken, Ihre Klassenkameraden haben könnte, wahr oder falsch, zu realisieren, dass dies eine ist Gelegenheit, sich die Hände schmutzig mit dem Kurs, setzen Sie Ihre Zehen in die Wasser, so zu sprechen, so wie ich mich vor Jahren mit Pass / Fail. Wie ich letzte Woche sagte, hatte diesen Kurs wie andere, nicht zur Verfügung Pass / Fail zu der Zeit, hätte ich wahrscheinlich nicht haben jemals einen Fuß in abgestuften die Klasse, obwohl ich es tat, 5 Wochen später meine Meinung ändern, die Sie kann als gut, und über zu wechseln oder Brief abgestuften Status. In Ordnung. So sahen wir uns an Dinge wie diese auf Freitag, und wir sind sehr schnell gehen den Übergang zu etwas, das sieht eher kryptischen heute. Aber es ist dennoch die gleichen Grundgedanken. Was war der allgemeine Begriff, dass wir verwendet werden, um ein Puzzleteil beschreiben das sah aus wie das? So, ein Statement. Und Sie können diese einem Reihe von Dingen. Aber wir nennen es einfach ein Statement, und eine Erklärung sagt nur das Programm - oder im Falle von Scratch, das Sprite - etwas zu tun. Sag hallo in diesem Fall. So etwas haben wir Statt als was? Ja, so ein Boolescher Ausdruck. Ein boolescher Ausdruck ist nur etwas das ist wahr oder falsch, und so Kratzer zieht sie mit dieser Form, sondern auch mit einem Fragezeichen zu vermitteln die Idee, dass die Antwort auf diese Frage ist entweder wahr oder falsch, ja oder nein on, 1 oder 0 ist. Und wir nutzen diese Boolesche Ausdrücke innerhalb von Konstrukten wie diese, die riefen wir was? So, Bedingung oder Zweig. Und die Bedingung, die Sie hier sehen, in Scratch hat einen kleinen Platzhalter für ein Puzzleteil dieser Form, den Zweck von denen ist, so dass Sie ziehen Sie es und legen Sie es auf und dann diktieren zu dem Programm, wenn diese Boolean Ausdruck wahr ist, tun diesen Satz von Anweisungen, dieser Satz von Aussagen, sonst noch diese andere Gruppe von Anweisungen. Und erinnern, dass man Nest diese Dinge. Auch wenn es nicht viel Platz visuell in diesem Puzzle-Stück, Scratch wachsen und schrumpfen, um was auch immer passen Puzzleteile Sie per Drag & Drop in gibt, so können Sie dies tatsächlich Nest und haben eine Drei-Wege-Gabel in der Straße. Wenn else if, else. Und Sie können sogar darüber hinaus gehen, indem Verschachtelung weiter und weiter nach Bedarf. So schließlich sahen wir Konstrukte wie Diese, auch als eine Schleife bekannt. Und das ist nur etwas, das funktioniert etwas wieder und wieder und wieder. In diesem Fall kommt es auf eine endliche sein Anzahl der Male, aber wir haben auch ein Beispiel gesehen, wobei die Anzahl der Zeiten stammte aus einer variablen, also könnte sich ändern. Und wir sahen auch einen anderen Block insgesamt genannt ewig Block, erlaubt es uns, Schleife unendlich lang. So ein Konstrukt, das andere Scratch 2.0 hat - und diejenigen von euch mehr komfortabel mit vorheriger Hintergrund sind bereits gut vertraut mit dieser konstruieren - diese Dinge, die wir genannt, was? Also riefen wir diese Funktionen, sonst bekannt als Verfahren. Es gibt eine leichte semantische Unterschied, aber wir nennen sie nur Funktionen. Und eine Funktion, bei der Scratch, ist ein Brauch, dass Puzzleteil Sie selbst erstellen können, so dass Sie ein neues Puzzleteil, dass in diesem Fall würde man Husten werden, dass wird unter all den anderen verfügbar Puzzleteile in Scratch. Obwohl MIT nicht erfunden dieses Puzzleteil, das haben Sie. So eine Funktion ermöglicht es Ihnen, neue erstellen Verhalten, geben Sie ihm den Namen einer Funktion, und dann rufen Sie es, so zu sprechen. Wirklich verwenden Sie es in Programmen wieder und wieder ohne Wartezeit für jemanden wie MIT auf dem Weg zur erfinden neue Funktionalität von Scratch. Sie können selbst bauen diese Puzzle Stücke selbst, und dann wiederverwenden in eigene Programme. Und wir werden sehen, ein wiederkehrendes Beispiel der, dass heute und weiter. Also heute, Übergang wir jetzt etwas mehr geheimnisvoll. Aber am Ende des Tages etwas mehr kraftvoll und ausdrucksstark und mehr Vertreter der Weg, den wir bald auf alle Semester während einer Reihe von Sprachen - dass der Code oder Quelltext. Und Quellcode, es stellt sich heraus, ist nicht das, was ein Computer typischerweise tatsächlich läuft. Der Quellcode sieht wie folgt aus. So ist wiederum vielleicht die einfachste Programm können wir in eine schreiben Sprache namens C. Wir beginnen, necken diese auseinander dauerte nicht lange, und wenn diese wirklich wie griechische aussehen Ihnen jetzt, glaub mir. Innerhalb von nur ein oder zwei Wochen Zeit, dieses werden nur allzu vertraut und tatsächlich ganz repräsentativ für immer Komplexere Beispiele mit dem Sie auch mehr bequem. Aber man kann nicht nur laufen diese Art von Code in der Regel. Sie müssen es in etwas, das wiederum der Computer selbst versteht. Und so brauchen wir etwas werden wir einen Compiler aufrufen. Ein Compiler ist ein Programm, das dauert Quellcode, wie Sie gerade gesehen haben, wie Eingang, und es produziert Nullen und Wieder so ausgegeben, ansonsten bekannt als Objektcode. Und es ist diese, dass Nullen und Einsen könnte durchaus so aussehen, dass schließlich verstanden von Ihrem Mac oder PC. Wenn Sie jemals das Marketing gehört Ausdruck Intel Inside, dass nur bedeutet, dass eine Firma namens Intel hat die hergestellt Gehirne von Ihrem Computer - anders als CPU bezeichnet, Central Processing Unit - und das ist nur das, was versteht Muster von Nullen und Einsen. Und so durch die Umwandlung Quellcode in Objekt-Code durch diesen Prozess hier dass wir mit ein paar Befehlen tun in nur ein bisschen, sind Sie Erstellen Muster von Nullen und Einsen dass die Mitarbeiter bei Intel haben beschlossen repräsentieren bestimmte Aussagen. Nun, ich weiß nicht so recht, welche welches von nur einem Blick auf diese Nullen und Einsen. Die meisten Menschen in diesen Tagen nicht. Aber irgendwo in gibt es ein Muster von Nullen und Einsen, die das repräsentiert Anweisung PRINT. Irgendwo dort könnte ein anderer sein Satz von Nullen und Einsen, dass stellen den Begriff der Ewigkeit oder 10-mal wiederholen oder sogar miauen, wenn es tatsächlich ein Programm, das kann gehören einige Sounds. Also kurz gesagt, haben die Menschen gerade beschlossen, viel wie wir für ASCII - für die Buchstaben des Alphabets letzte Woche - Menschen haben sogar beschlossen, dass komplexere Muster von Nullen und Einsen repräsentieren komplexeres Verhalten wie Drucken oder sagen oder miauen. Und so für heute, und weitgehend Weiterreise in dem Semester, nehmen wir für selbstverständlich, dass jemand dachte, heraus, wie man das Mapping zu tun. Aber wir, im Einklang mit dieser Idee Schichtung auf der Arbeit von Menschen die bereits vor uns kommen, werden für nehmen gewährt die Tatsache, dass dies vor sich geht unter der Haube. Aber wir sind viel mehr daran interessiert, Gebäude Dinge, die mehr sind Interessantes auf der Spitze des ganzen. Und so in der Tat, das erste Programm, das wir schrieb im Scratch war super einfach ein, Hallo Welt. Und Sie können dies als das denken Hauptprogramm, das Scratch regelt Verhalten wie der am vergangenen Freitag. Heute werden wir anfangen zu übersetzen Scratch Puzzleteile in Source-Code in dieser Sprache genannt C so, dass etwas, das aussah wie diese auf Freitag, ab heute an ist nun wie folgt aussehen. Zugegeben mehr kryptisch. Es ist ziemlich störend und Art des Geistes betäubende, um alle Angebote zu sehen und die Semikolon und die Klammern und so weiter. Aber wenn Sie anfangen, etwas zu ignorieren, nicht verstehen, und wirklich aussehen auf das Wesen der weißen Text auf der Bildschirm, sicherlich sehen Sie, wie ich, "Hallo, Welt." Die Linien mit der lila Aussage bis oben, und es stellt sich darauf hin, dass das Schlüsselwort wichtigsten ist los Line-Up mit konzeptionell wenn grün Flagge geklickt. Also mit anderen Worten, während in Scratch, wir implementieren diese Hallo Welt Programm mit diesen zwei Puzzleteile, in C, werden wir es mit diesen implementieren vier etwas kryptischen Zeilen. Aber wie wir in diese tiefer tauchen, werden Sie , dass für jeden von denen weißen Zeichen auf dem Bildschirm tatsächlich hat einige erhebliche Bedeutung, und die meisten unserer Programme zu gehen schauen strukturell ganz dasselbe. So eine Aussage, klar zu sein, was sah aus wie "say Hallo Welt" auf Freitag wird zu Beginn der Suche mag dies am Montag. printf ("Hallo Welt"). Und es gibt einige seltsame Backslash n, es gibt Klammern, gibt es Semikolon. Aber am Ende des Tages, der Schlüssel Lieferservice heute ist, dass alles, was wir tun ist die Umsetzung Dinge aus Bild bilden Textform. So eine Schleife, die so aussah letzte Woche wird nun aussehen etwas wie dieses. Und lassen Sie mich lehnen, so wie in Scratch, gibt es verschiedene Möglichkeiten, um erreichen das gleiche Ziel. Same in C. Ich bin nicht die einzige, welche Sie Weg, Dinge zu tun, aber ein Weg, um Übersetzen Sie diese für immer blockieren einer Schleife in C. Dieser hier, 10-mal wiederholen. Diese wirklich Art von Kurven die dagegen das erste Mal, wenn Sie es sehen. Aber um das künftig zu implementieren, wir gehen auf eine Verwendung for-Schleife, so zu sprechen. Und klar, es gibt einige, die Syntax ist ein wenig komplex es mit I und gleich und 0, aber sobald wir in das tauchen heute an, du bist gerade dabei zu sehen, dass das ist alles einfach, wenn Sie einige Grundrechenarten, um uns von 0 erhalten auf bis zu 9 oder 10 in diesem Fall. Schließlich mit Variablen, werden Sie sich erinnern dass eine Variable ist ein Stück der Lagerung. Nun, was hatten wir auf der linken Seite gibt es letzten Woche wird ein wenig aussehen so etwas wie dies in dieser Woche. Aber noch einmal, sich mehr auf die kommen. Wir hatten Boolesche Ausdrücke, die letzte Woche sah wie folgt aus. Diese Woche weiter, sie zu gehen beginnen, ein wenig so aussehen. Und dieser ist eigentlich ein wenig beruhigend. Es ist eigentlich fast so einfach wie die grünen Blöcke. Aber hier haben wir wieder einige neue Syntax mit Et-Zeichen, aber Sie können vielleicht erraten, während im Scratch, Sie sagen A-N-D, offenbar in C, sind wir gehen zu sagen, kaufmännisches Und-Zeichen. Aber all dies wird natürlichen dauerte nicht lange. AGB. Letzte Woche sah es so aus Dieser auf der linken Seite. Diese Woche, auf der rechten Seite, ist es gehen, um so aussehen. Aber wieder ist der Schlüssel zum Mitnehmen hier, dass wie Sie sehen Dinge wie, dass auf das Recht, und vor allem, wenn weniger komfortabel, ist es irgendwie über Ihr Kopf, erhalten Sie ein wenig überwältigt, dass Ich habe wirklich keine Ahnung, wie ich konnte, möglicherweise kommen mit dass aus dem Nichts - kein Wortspiel beabsichtigt - nur erkennen, dass es wirklich das gleiche Idee, die wohl fühlte mich so viel mehr natürlich in der Vorwoche. Und selbst wenn Sie nicht in tauchten Problem Set 0, ich wage zu behaupten finden dass die Puzzleteile sind ziemlich intuitive oder zumindest sich so im Laufe der Zeit. Also lasst uns in. tauchen Lasst uns die Hände schmutzig hier mit diese ersten einfachen Programm. Und einfach ist natürlich relativ. Um dies zu tun, werde ich ändern Bildschirme zu diesem Gerät, das ich genannt CS50 Gerät. Das CS50 Gerät ist ein Stück Software, die in ein laufendes ist Fenster auf meinem Mac, und Sie können auch laufen es in einem Fenster innerhalb Ihres PC, dass ermöglicht es mir, exakt das gleiche haben Computer-Umgebung wie jedes TF, wie jeder CA, wie jeder Student in der Klasse. Da das Gerät CS50 ist buchstäblich ein anderes Betriebssystem Linux genannt - Fedora Linux speziell - und wir, das Personal, konfiguriert haben die Installation für diese Betriebssystem in der Weise, dass man, gibt es ein kleines Logo in der CS50 Mitte, zwei, gibt es eine benutzerdefinierte Menü der Boden, und drei, pädagogisch, haben wir die Benutzeroberfläche vereinfacht viel wie möglich, so dass, wenn Sie ersten booten diese Sache auf eigene Faust Mac oder PC, haben Sie die gleichen Umwelt als jeder andere, und Sie haben alle Werkzeuge, die Sie brauchen für den Kurs ohne Abbildung herauszufinden, wie jeder installieren und jedes Werkzeug einzeln. So sieht das relativ wie Mac OS oder Windows. In der linken unteren Ecke, Sie Wesentlichen eine Start-Menü Arten, oder ein Apple-Menü. Und dann haben Sie, was wir vermuten, wird werden Ihre drei häufigsten Symbole. Eines ist Chrome. Es ist ein Browser nach innen des Gerätes. Zwei ist ein Programm namens gedit, welche sahen wir kurz letzte Woche, ist die nur ein grafischer Editor. Und drei ist ein Terminal-Programm, das ist ein Schwarz-Weiß-Fenster aus Vergangenheit, die uns mehr geben kann Arkan, aber mächtiger Befehle an unserer Tastatur. Also werde ich weitermachen und klicken Sie auf gedit, und seien Sie versichert, dass Problem Set 1, am Freitag freigegeben werden, wird gehen Sie durch all diese gleichen Schritte. Beachten Sie, dass ich eine ziemlich einfache haben Benutzeroberfläche mit drei Teilen. Auf der linken Seite habe ich einen großen, leeren Fenster mit dem Namen Source Code. Das ist, wo ich eine Zusammenfassung zu sehen bin von Code, die ich schreibe. Auf der rechten Seite habe ich eine große Registerkarte ist derzeit noch nicht gespeichert, und dass wo mein Code geht zu gehen. Und auf dem Boden, ich habe ein eingebettetes Terminal-Fenster, ein schwarz-weiß aufgefordert, an dem ich Befehle zu tippen zusammenzustellen und um meine Programme laufen - dass ist, zu machen und zu meiner Programme auszuführen. Also fangen wir einfach. Lassen Sie mich gehen Sie zu Datei, Speichern. Ich werde weitermachen und gehen in jharvard. Also das Gerät, unabhängig von dem, was Ihr Name ist, gehört zu einem Mann namens John Harvard, der ein Haus hat jharvard Verzeichnis innerhalb derer alle Ihre Dateien gehen wird. Es ist Ihre eigene Kopie von seinem Konto, so sind wir nicht alle teilen die gleiche Festplatte. Sie müssen nur die Illusion von John Harvard eigenen. Im Vorfeld habe ich eigentlich installiert Dropbox. Das Gerät kommt mit vorgefertigten Dropbox, so dass, wenn etwas schief geht während des Semesters, wenn Sie konfiguriert Ihr Gerät mit einem freien Dropbox-Konto, werden alle Ihre Dateien automatisch gesichert werden, so dass Sie kann sehr leicht wiederhergestellt werden können. Und ich werde in meine Dropbox gehen Verzeichnis, und es gibt schon los um ein paar andere Dinge dort zu sein. Aber ich werde weitermachen und gehen Sie auf Datei, Speichern. Ich werde in jharvard, Dropbox gehen, und hier, ich bin zu gehen gebe mein Programm eine super einfach Name, hello.c und dann speichern. Also ich habe jetzt die gleiche Schnittstelle. Das einzige, was sich geändert hat ist die Registerkarte up top. Also ich bin sehr schnell gehen, um neu dass das Programm von gleitet vor einem Augenblick. So in main (void), und dann printf, "Hallo, Welt", eine etwas kryptische Backslash n, nahe Zitat schließen Klammern, Semikolon, und dann Strg S zu speichern. Und als Hinweis beiseite, was gerade erschien hier in der oberen linken. Und dies ist nicht sinnvoll, heute, aber Nutzen sein wird im Laufe der Zeit. Sie müssen nur sehen, wieder eine Zusammenfassung der der Code, den du geschrieben hast. Und weil ich schrieb so etwas wie Hauptsache ist, warum das Wort tauchte wichtigsten da drüben. Aber zum größten Teil, wir brauche das nicht heute. Alles klar, so behaupte ich, dass dies mein ist erste Programm in einer Programmiersprache geschrieben Sprache namens C. Wir wissen von Freitag dass das, was dieses Ding ist zu tun sehr uninteressant, wenn ich laufen ist es nur anzuzeigen - mit anderen Worten, zu drucken, wie einem Computer Wissenschaftler sagen würde - Hello World auf dem Bildschirm. So, dies zu tun, werden Sie feststellen, dass ich nach unten gehen hier, um mein Terminal Fenster, und jetzt habe ich eine blinkende Eingabeaufforderung. Aber das ist jetzt eine Tastatur Version mein John Harvard Home-Verzeichnis. Es ist ein Weg, über die Tastatur auf meine Festplatte zu navigieren. So kann ich nicht wirklich geben wie ich es tat letzte Woche machen hallo, weil es gehen, um keine Regel sage Ziel machen - Irgendwas stimmt nicht. Ich weiß nicht so recht, was diese Nachricht Mittel, aber das ist, weil in der Standardeinstellung wenn dieser Schwarz-Weiß-Fenster geöffnet, ich bin innerhalb von John Harvard Home-Verzeichnis. Aber wo habe ich das Programm speichern? In meine Dropbox-Ordner. Jetzt haben wir alle aufgewachsen sind Computer, auf denen Sie klicken Sie einfach doppelt auf einem Ordner auf das Symbol, es eröffnet, und voila. Das ist, wo die Datei mit dem Namen hello.c wäre. Also in der Tat, lasst uns das tun. Lassen Sie mich gehen Sie vor und minimieren gedit wie würden Sie auf Windows oder Mac OS. Lassen Sie mich in die Startseite gehen Ordner oben links. Ich werde hier sehen Sie eine Reihe von Ordnern. Hier ist meine Dropbox-Ordner. Die Häkchen bedeutet, dass es gewesen ist synchronisiert. Und es gibt ein paar Dinge hier, aber feststellen, dass hello.c ist in der Tat recht. Und so in Mac OS oder Windows, in der Regel, Ich würde doppelklicken Sie, dass es eröffnet in unabhängig von Programm, und ich bin gut zu gehen. Aber jetzt, zumindest ab heute, wir brauchen, um einen Schritt zurück zu gehen, nur um Ihnen einige grundlegende Werkzeuge für Ihre Tool-Kit, mit dem, mehr zu tun mächtige Dinge vor lang. Also an dieser Eingabeaufforderung, muss ich das tun, Äquivalent Doppelklick die Dropbox-Ordner. Und um das zu tun, werde ich für CD geben Ändern Sie das Verzeichnis, Dropbox, geben. Und jetzt bemerken die Klammern an meinem sogenannte Eingabeaufforderung jetzt sagt, dass ich in mir Tilde, die kleine squiggly Symbol oben links meisten Tastaturen / Dropbox. Dies ist nur für Kurzschrift sagen Menschen, Sie sind jetzt in der das Dropbox-Ordner, als ob Sie hatte doppelt angeklickt. So jetzt, wenn ich voran gehen und geben Sie machen hallo, geben, sehe ich eine sehr kryptische Befehl, nicht aber eine Fehlermeldung, es scheint, und dann andere blinken prompt. Und wenn Sie sich erinnern, jemals so schnell am Freitag, taten wir dies. . / Hallo. Was Sie sind dabei, zu sehen, ist das Ergebnis meiner Ausführen dieses Programms oder in Mac OS und PC Begriffe, wenn ich in der Regel verdoppeln Klicken Sie auf ein Programm -. ein app Programm oder ein. exe, öffnet es ein Fenster und läuft. Tippen. / Hallo ist wie Doppel Sie ein Programm, um sie auszuführen, aber mit meiner Tastatur. Geben Sie, hallo Welt. Und das ist es. Also lasst uns necken diese auseinander, um so nicht zu viel wie griechische fühlen. So. / Bedeutet was? Wer schon einmal navigiert ist eine Tastatur Umgebung wie dieser, was ist dot gemeint? Das aktuelle Verzeichnis. So das aktuelle Verzeichnis ist nur ein Synonym für einen Ordner. So mit den Worten dot Schrägstrich, sage ich, suchen Sie nach einem Programm namens hallo in die aktuellen Verzeichnis - im aktuellen Ordner. In anderen Worten, meine Dropbox-Ordner. Und deshalb schlagende danach Enter eigentlich läuft das Programm. Wenn ich nun Typ LS, feststellen, dass ich sehe, alles in meine Dropbox-Ordner. Einführung.pdf, die Dropbox gibt Ihnen frei, meine Fotos Verzeichnis, ein öffentliches Verzeichnis, Ungespeicherte Dokument 1, die ich aus Versehen einen gemacht Vorhin foo.c, die ich vorhin heute, und dann zwei Linien - hello.c und hallo. Hello.c ist das Programm, das ich schrieb mit gedit, und was ist hallo in grün? Die hallo in grün ist die ausführbare Datei. In anderen Worten, wenn ich lief diesen Befehl vor einem Augenblick - lass mich rollen zurück in der Zeit - wenn ich lief hallo, das ist die mittlere Stufe hier. Und es dauerte hello.c als Eingabe - AKA Quellcode - und es erzeugt ein Datei namens hallo als Ausgabe, die enthält alle diese Nullen und Einsen. Und deshalb, am Ende, ich kann tatsächlich einen Befehl ausführen, wie. / hallo. Wegen Intel Inside, mein Betriebssystem System, Linux, eröffnet diese Nullen und diejenigen, speist sie in die Gehirne von meinem Computer - die CPU - und dass die CPU weiß, oh, hier ist ein Muster von Nullen und Einsen, die sagt drucken Sie die folgende Sache auf dem Bildschirm. Was ist das Folgende? Zitat unquote, "Hallo Welt." Alles klar, also eine kurze Zusammenfassung einiger diese Befehle, so dass wir beginnen können, nehmen sie für selbstverständlich halten. Lassen Sie mich vor zu überspringen wo wir aufgehört haben. Und Sie werden sich erinnern, dass wir CD hatte im Rücken vor einem Augenblick zu beenden. Dies sind, ich wage zu sagen, für heutigen Zwecke - vielleicht diese Woche - die einzigen Befehle, die wir Möglicherweise müssen Sie in der Befehlszeile eingeben fordert neben machen. Also CD stand für was? Ändern Sie das Verzeichnis. Es ist nur das Äquivalent von Doppel- Klicken Sie auf einen Ordner. Und so nebenbei, wenn man verloren jemals in Ihrer Gerät, so dass Dropbox - Ich will zurück zu meinem jharvard Verzeichnis - wenn im Zweifel, CD, geben, mit keinen anderen Worte, und es nur Reißverschlüsse Sie zurück , wo Sie begonnen, die ist ein nettes kleines Kontextmenü. Alles in Ordnung, so dass nun weitere Befehle. LS. Ich tippte, dass vor einem Augenblick. Was denken Sie, LS steht für? So, Liste, nicht wahr? Zurück in den Tag, als die Menschen kamen mit diesen Befehlen sie versuchten, effizient zu sein und eher tippen L-I-S-T einzugeben, sie LS entschieden. Das ist in Ordnung. Es klingt wie genug Liste. Lasst uns einfach Typ LS geben, und dass listet die Dateien oder Ordner in meinem aktuellen Ordner. mkdir, können Sie wahrscheinlich erraten. Als Verzeichnis. So müssen Sie nicht bis zu einem gewissen Datei-Menü und wählen Neuer Ordner in diesem Umfeld. Vielmehr geben Sie den Befehl mkdir Raum und dann den Namen des Ordners dass Sie erstellen möchten, und es wird möglich. rm, können Sie wahrscheinlich erraten. Entfernen oder zu löschen. Also, wenn Sie eine Datei löschen möchten, müssen Sie sehen in dem Problem-Set, wie Sie dies tun können. Und rmdir, entfernen Verzeichnis. Also, noch einmal, ich werde dazu neigen, durch einige fliegen dieser Details, ein, weil sie sind nicht alle so viel Spaß zu verbringen Zeit auf, aber zwei werden wir Ihnen in viel näher in einem der Natürlich setzt das Problem, vor allem die Standard-Ausgaben, einem der Schritte die Sie benötigen, um so geben dass Sie mehr und mehr Bequeme mit diesen Dingen. Aber jetzt lassen Sie mich necken neben eine andere Sache. Wenn wir getippt hallo machen vor einem Augenblick, sahen wir eine kryptische Sequenz von Befehlen. Wir sahen wieder machen hallo. OK, lasst uns dies tun. Ich war im Begriff, einen Fehler zu machen, aber [Unverständlich] nun zugeben, ich war dabei, und tun es bewusst. Was habe ich falsch gerade jetzt? Ja, so bin ich nicht in der Dropbox Verzeichnis, weil ich vor einem Augenblick typisierte CD und einfach Enter drücken. Das erkennen Sie mich zurück, wo ich begann, was nicht, wo meine Datei ist, so dass ich wirklich brauchen, um CD Dropbox tun geben, und jetzt kann ich rm hallo tun geben, entfernen reguläre Datei hallo. Ich weiß nicht, warum es so kryptisch ist. Das bedeutet nur, sind Sie sicher, Sie wollen, um Hallo zu löschen? Sie können y für ja geben, geben, und jetzt ist es weg. Und wenn ich nun machen hallo wieder geben, ist es werde mein Objekt-Code neu zu erstellen, neu diese Nullen und Einsen. Aber was ist der Deal mit Diese sehr langen Befehl? Nun, wir werden diese auseinander zu necken es dauerte nicht lange, sondern machen - Ich erzählte ein bisschen von einem weißen Lüge vor - ist kein Compiler. Machen ist ein Programm, dass automatisch Zahlen heraus, wie man einen Lauf Compiler für Sie. So der Befehl, dass man wirklich sein sollte läuft um hello.c konvertieren in Hallo sieht tatsächlich ein wenig mehr davon. Und Gott bewahre, wir haben tatsächlich erinnern, jemals geben diese ganze Folge von Befehlen aus. Der Zweck machen im Leben ist, daran erinnern, dass Grad der Komplexität für uns und zu automatisieren, was sonst sehr mühsam Schritte. Aber ich kann ungefähre dass. So pro diesem kleinen Spickzettel hier, ich annähern kann, was das Kommando tun, indem Sie einfach Klang, das ist der Name des Compilers werden wir in Verwendung dieses Semester. Wenn jemand von euch schon einmal getan iOS Entwicklung für das iPhone oder iPad, Schall ist das Programm, das Sie verwendet haben innerhalb Xcode, um Ihren apps. Schall, obwohl, ist nur ein weiteres Programm dessen Namen wir können an der Eingabeaufforderung eingeben fordert, und durch die Einführung dieses jetzt, Ich kann etwas, das eine Einführung ist wenig repräsentativ von Befehlen zu kommen. Also lassen Sie mich dies manuell tun. So rm hallo, und jetzt feststellen, im Falle Ich, so wie ein Gesundheitscheck - . / Hallo, was denkst du ich sollte sehen, ob ich das tun? Irgendeine Art von Fehler. Keine solche Datei-Verzeichnis. Damit man ist eigentlich ziemlich direkt. So, jetzt lassen Sie mich klar auf den Bildschirm. Control S nur löscht den Bildschirm einige Ablenkungen zu entfernen. Und jetzt bin ich auf manuell gehen Typ Klang-o hallo hello.c. Was also ist das jetzt tun? Genau die gleiche Sache, die hat für uns, aber ich habe wegwerfen einige die überflüssigen Worte. Schall ist das Programm, um los ist nehmen. c-Datei als Eingabe und produzieren Nullen und Einsen als Ausgabe. Aber-o fortan nennen ein Schalter oder ein Flag. Dies ist nur Techie-Jargon zu sagen das ist ein Wort, das Sie bei einer Eingabeaufforderung eingeben dass irgendwie beeinflusst das Verhalten des Programms die Sie ausführen. So hat jemand möchte zu erraten was-o vermittelt? Output. Es ist einfach nur jemanden entschieden-o bedeutet Ausgang eine Datei namens hallo und nehmen so Eingang unabhängig das letzte Wort über die Prompt ist, hello.c, so dass, wenn ich getroffen Geben Sie jetzt scheint nichts zu passieren. Und seltsam genug, in dieser Welt der Programmierung, wenn nichts passiert, das ist wahrscheinlich eine gute Sache denn es gibt keine Fehler Meldung auf dem Bildschirm. Hallo, Enter. Mein Programm hat nun laufen. Aber ich kann dumme kleine Dinge wie diese. Klang-o, hihihi, hello.c, geben, und jetzt habe ich eine identische Programm namens hihihi. Es verhält sich das gleiche, aber der Name ist anders. Also das ist nur zu sagen, dass, wenn Sie das Verhalten eines beeinflussen Programm, wir zunehmend gehen sehen die Dinge genannt Befehlszeilenargumente. Dies ist eine Zeile. Du bist der Eingabe von Befehlen. Ergo, Befehlszeile. Und Befehlszeilenargumente sind nur Wörter oder kleine Stücke von Syntax, irgendwie Einfluss auf das Verhalten der Programme, die wir laufen. Na gut, das ist vielleicht der am meisten langweilig Programm können wir schreiben und zu sehen. Lassen Sie uns jetzt etwas tun mehr interessant. Lassen Sie mich gehen Sie vor und erstellen Sie eine neue Datei. Ich werde weitermachen und speichern Sie diese in John Harvard Home-Verzeichnis wie nennen wir es custom.c zu sein ein wenig benutzerdefiniertes Programm. Ich werde zum Vergrößern auf meine oben die Laschen hier und starten Sie erneut. Fügen Standard stdio.h. Mehr dazu in einem Moment. int main (void), mehr dass in einem Moment. printf ("Hallo, David"). Viel interessanter, nicht wahr? So jetzt, wenn - nicht wegen meines Namens, nur weil es anders - machen Sie kundenspezifische geben. Individuelle, hallo, David. Aber auch dass ist auch eine Notlüge. Dieses Programm könnte genauso gut genannt werden david.c, weil es nicht Brauch Verhalten überhaupt. Wirklich, ich will ein Programm, das fragt der Benutzer für ihren Namen. Also, wie mache ich das? Nun, lassen Sie mich nach oben hier. Und bevor ich eine Aussage in Scratch, bevor ich printf, anders als eine Funktion bekannt, lassen Sie mich zuerst fragen den Benutzer nach bestimmten Eingängen. So, dies zu tun, muss ich tun ein paar Dinge. Einer, ich brauche einen Ort zum Speichern des Benutzers benennen, nachdem ich ihn fragte, habe oder sie dafür. Was Konstrukt muss ich wahrscheinlich verwenden einen Wert wie das speichern? Eine Variable. Also im Gegensatz zu Scratch, wo man gerade mal ein nettes Puzzle-Stück, hier müssen wir verwenden, offensichtlich, Worte uns ausdrücken. Und von nun an, wenn Sie wollen ein Wort oder eine Phrase, in der Programmierung, wir gehen zu nennen, dass ein String. So ein String ist ein Wort oder eine Phrase. Es ist eine Folge von null oder mehr Charaktere, mehr formal. Und wenn Sie wollen, wie eine Variable vorhanden sind, muss man sagen, mir eins. Und der Weg, auf dem Sie das tun, ist es, sagen string s Semikolon, wo s kann alles, was Sie wollen. In der Tat ist s ein wenig berauschend. Lassen Sie mich weiter und weiter gehen klar es nennen Namen. Gib mir einen String aufgerufen Namen. Aber jetzt, was ist die Person, die standardmäßig der Name? Nun, wenn der Mensch nicht alles geben in, natürlich, es geht bis kein Wert in Name sein. Und es stellt sich heraus, in C, wenn Sie nicht geben eine Variable ein Wert, ist es zu gehen haben eine Garbage Wert. Es könnte einige zufällige Nullen und diejenigen, so dass Sie nur gehen, um zu sehen Müll, wirklich, auf dem Bildschirm Wenn Sie versuchen, um es anzuzeigen. Aber ich kann sagen, dass durch die zu beheben, tatsächlich, Speicher im Inneren des Namens der nach Wert. Die Art und Weise das Speichern von Werten in Variablen wenn Sie einen variablen Namen auf die links, muss man irgendwie was Sie setzen wollen sie auf der rechten Seite zu speichern, und Die Syntax dafür ist los wie folgt sein. Wir haben das nicht gesehen, aber nehmen auf den Glauben für einen Moment, dass es existiert eine weitere Erklärung in der Welt dass ich werde wieder anrufen Funktion und diese Funktion ist genannt bekommen Zeichenfolge. Und das tut sie buchstäblich, dass. Irgendwie bekommt eine Folge von Zeichen aus dem menschlichen und dann tut etwas mit ihm. Und dies aussehen kryptische Syntax. Normalerweise, wenn Sie mit Gleichheitszeichen - Sie sind in der Welt der, sagen wir, Algebra, und du bist tatsächlich sagen x gleich 1 ist. Hier werden wir nicht sagen, dass Name entspricht den String. Wir sagen store in Namen, was auf der rechten Seite von, dass Gleichheitszeichen. Das Gleichheitszeichen steht der Zuweisungsoperator. Es ist die Syntax, setzen, was auf, sagt die rechte Seite innen, was auf der linken Seite. So bekommen String ist ein neues Stück Funktionen, die nicht nur etwas - fragt den Benutzer nach einer Zeichenkette - es gibt auch sie, so zu sprechen. Also mal sehen, was los ist hier geschehen. Ich werde jetzt nach vorne gehen und Verkleinern und ich werde ein paar bekommen Fehler an meinem prompt. Ich werde geben benutzerdefinierte machen, geben. Wow. Eine ganze Reihe von Fehlern. Alles klar, so ist dies Art von überwältigend, sicherlich auf den ersten, aber es stellt sich heraus, alle diese sehr zugegebenermaßen kryptischen Fehlermeldungen sind Bezugnahme auf einige Muster, die beginnen wir im Laufe der Zeit zu sehen. So werde ich dieses abzupfen, weil es zuerst. Die Verwendung von nicht deklarierter Bezeichner String. Das bedeutet nur, dass gedit oder Schall, in diesem Fall nicht weiß, was ich damit meine String. Und das ist, weil in C, die Programmierung Sprache, es gibt tatsächlich ist keine Variable vom Typ String. C nicht wissen, dass die Strings existieren. Aber wir, CS50 Personal, zu tun. Und so im Vorfeld der Klasse, wir erstellt eine Datei namens CS50.h. Und in dieser Datei - und mehr über die Syntax zu kommen - innerhalb dieser Datei ist eine Definition von dem, was ich gerade definiert verbal als String. So einfach durch den Abschluss dieses eine Zeile der Code in meinem Programm, ich bin jetzt Lehre und gedit machen und Schall alles, was wiederum ein String ist. Ich weiß nicht, wie bisher. In ein paar Wochen werden wir schälen zurück, dass Schicht. Aber jetzt wissen, dass dies lehrt der Compiler, was ein String tatsächlich ist. So, jetzt lassen Sie mich klar meine Terminal hier unten. Lassen Sie mich wieder zum Laufen zu bringen individuelle, und ich gelöst all diese Probleme. So auch dies wird werden ein immer wiederkehrendes Thema. Ich schrieb nur einen 9-Linien-Programm, und Ich hatte noch 18 Linien von Fehlern. Das ist irgendwie einschüchternd. Aber klar, dass sie oft solche Kaskade dass ein kleiner Fehler auslöst die Verwirrung für den Compiler und es sieht viel schlimmer aus als es ist. So, jetzt ein scharfsinniger Beobachter wissen dass ich immer einen String aus der Benutzer, aber ich bin nicht wirklich zu tun, was mit ihm? Ich bin eigentlich nicht tun etwas mit ihm. Also, wenn ich tatsächlich zum Ausführen von benutzerdefinierten wieder es wird einfach dasitzen. Was ist da los? Mein Programm scheint auf geklebt werden welche Linie, würden Sie sagen? So ist es tatsächlich auf Linie 7 stecken. Und wir haben das nicht gesehen, aber auf Linie 7, gibt es wieder das Anweisung, den String. Und es tut, was es sagt. Es wartet nun auf die menschliche um die Zeichenfolge zu nehmen. Das ist völlig intuitiv zu mir, der Mensch, denn ich habe nicht gesagt worden, was zu tun ist. Aber lassen Sie mich gehen auf den Glauben und lass es mich tun, als Rob sein. Enter. Das ist nicht das Programm, das ich gedacht. So haben wir unseren ersten Blog. Aber lassen Sie uns versuchen, durch die Vernunft warum dies der Fall ist. Zunächst lassen Sie mich dieses Problem beheben erste Problem. Lassen Sie mich hinzufügen hier eine Linie, die sagt printf, was ist Ihr Name? Lass uns einfach tun close Zitat schließen Klammer. Nun lassen Sie mich wieder das Programm auszuführen. Problem. Ich bin nicht zu sehen, dass. Richtig. Ich wusste nicht neu kompilieren. Also in einer Sprache wie C, da Sie den Quellcode ändern bedeutet nicht, dass Sie Ihre Objekt-Code geändert neue Objekt-Code zu generieren, neue Nullen und Einsen. Sie müssen neu kompilieren. Wenn ich jetzt wieder laufen individuelle, geben, ah, ein wenig klarer. Mein Name ist Rob. Noch Buggy. Und ich würde behaupten, es gibt ein paar Bugs jetzt. Das sieht einfach nur scheußlich, ehrlich gesagt. Wie, minimal, sollte ich einen Raum gibt, oder bewegen Sie den Cursor auf die neue Zeile. Und tatsächlich, neue Zeile. Das ist eine Art Schlüsselsatz ist hier, dass haben wir gesehen, aber nicht definiert. Die Art und Weise, in der Sie einen Text auf die nächste Zeile zu bewegen, Sie tun dies nicht. Dies wird an den Computer verwirrend. Das sieht aus wie zwei getrennte Leitungen Code, von denen keines ist vollkommen richtig. Sie haben stattdessen zu mehr expliziten und sagen, gib mir eine neue Linie, die wir stellen in c mit Backslash n. So gibt es ein paar solcher Zeichen. Backslash n wird fix, dass die Ästhetik. Lassen Sie mich mein Programm kompilieren. Lassen Sie mich erneut ausführen mein Programm. Das sieht besser aus. Es ist immer noch ziemlich primitiv, aber es ist auch noch fehlerhaft. So gibt es eine - auch wenn Sie noch nie programmiert haben, Sie kann wohl noch eine Vermutung auf, warum dieses Programm noch fehlerhaft. Was brauche ich, um das zu tun Ich habe noch nicht fertig? Also muss ich eigentlich tun etwas mit Namen. Genau wie in dem Nichts, könnte man eigentlich eine Variable zuweisen wie n oder begegnen, wie wir zuletzt tat Woche - ein Wert. Aber wenn Sie nichts mit es ist nichts passiert. Alles klar, also lassen Sie beheben. Lassen Sie mich meine Variable geben dort und lass mich gehen hier unten. Lassen Sie mich neu kompilieren, lass mich re-run, Rob. Jetzt bin ich einfach nur ein Idiot, nicht wahr? Also das ist nicht wirklich immer mich nicht weiter. Aber das war eine ganz natürliche Instinkt, würde ich argumentieren, nicht wahr? Wenn die Variable heißt name, und ich wollen sie, dorthin zu gehen, warum ich nicht einfach Geben Sie es dort? Nun, natürlich haben wir Bislang unterscheiden zwischen dem, was ist ein String? Beachten Sie, dass Zitat unquote hier, hallo Name? Diese tatsächlich selbst ist eine Zeichenfolge. Es ist hart codiert. Es ist nicht von der menschlichen. Es ist von mir, der ursprüngliche Programmierer, aber es ist immer noch ein String. Also, wenn Sie buchstäblich schreiben N-A-M-E im Inneren einer Zeichenkette, was ist zu gehen gedruckt bekommen? Nun, N-A-M-E. Wir brauchen stattdessen printf sagen, nicht gedruckt aus buchstäblich nennen. Drucken Sie sich den Wert des Namens. Und um das zu tun, tun wir das folgende. Und dies ist nur eine menschliche Konvention. Wir sagen, anstatt% s, und dass steht für String. Und dann am Ende meiner engen Kursen, Ich werde ein Komma setzen und passieren ein zweites Argument in dieser Aussage. Ich werde dort Namen geben. So, jetzt bemerken wir eine leicht neue Syntax. Wir haben noch zwei Klammern und nun lassen Sie mich sagen, dass das Zeug Klammern stellt Argumente in einer Funktion - Eingänge, die irgendwie gehen , um sein Verhalten zu beeinflussen. So nach dieser Logik, wie viele Argumente bedeutet printf scheinen nehmen in diesem Moment? So scheint es zu nehmen zwei, und das ist in der Tat impliziert nach dem Komma hier. Also das ist ein Argument in Anführungszeichen. Auch wenn es ein Komma drin, alles ist in Anführungszeichen, was bedeutet, es ist eine lange Zeichenkette. Comma, variable Namen. So, jetzt lassen Sie mich zu verkleinern. Lassen Sie mich erneut ausführen. Rob. Verdammt, was habe ich falsch gemacht? Alles klar, so müssen Sie neu kompilieren. Also noch einmal, um eine einfache Fehler zu machen früh wieder und wieder. So, jetzt wieder laufen individuelle, Rob, geben, und voila. Wir haben jetzt ein benutzerdefiniertes Programm. So habe ich nun ein Programm, das mit ein paar Eigenschaften das sind erwähnenswert. One, ich bin mit CS50.h, sonst bekannt als der CS50-Bibliothek. Und innerhalb der CS50-Bibliothek sind Funktionen, die andere Leute geschrieben - nämlich das Personal - für Sie zu nutzen, und erhalten Saite ist einer von ihnen. Innerhalb der Linie 2 ist stdio.h, und warum ist das da? Nehmen Sie eine Vermutung. Was existiert innerhalb der Standard IO Elternteil? Printf. So printf, siehst du nicht, es überall sonst auf dem Bildschirm. Es muss mit der kommen Computer irgendwie. Wo kommt es her? Es ist in der - es erklärt, sozusagen von innen eine Datei namens stdio.h. Nun, für diese Dinge, wir kommen wieder schließlich, weil es ist ein bisschen störend für jetzt. Dies bezieht sich auf unsere Rückkehr Typ. Dies bezieht sich auf ein Argument. Aber für heute, wir konzentrieren nur hier auf diesen Linien. So string name, nur zur Erinnerung, was hat das für mich tun? So ist es eine Variable deklariert vom Typ String. Also es soll für Wörter, nicht für Zahlen. Nur am Rande, wenn ich wollte es um eine Zahl sein, würde ich sagen etwas wie int. Wenn ich wollte eine Gleitkomma sein Wert, etwas mit einem Komma, Ich würde sagen, float. Aber für heute habe ich gerade gesagt String. Und ich habe diese Variable gegeben ein Name, der Name, aber ich konnte nannte sie haben nichts. In der Tat, ursprünglich, rief ich sie S. Das hier ist nur eine andere Aussage. Wie viele Argumente ist dies Aussage unter? So ist es nur unter eine, und dass ist einfach ein ästhetisches Detail Anzeige etwas auf der Bildschirm zu mir. Was ist dies für die Linie 8 zu tun in juristischer Hinsicht? Es wird ein Wert aus dem Benutzer - nämlich eine Zeichenfolge - und was macht er damit? Es ist im Wesentlichen der Übergabe an die Mann auf der linken Seite der Gleichheitszeichen, so dass in diesem Fall die Namen Variable kann tatsächlich zu speichern. Und dann ist ein weiterer printf Instanz einer Funktion. Und wir sagen, um eine Funktion aufzurufen. Um eine Funktion zu verwenden ist um eine Funktion aufzurufen. Dieses Ding offenbar nimmt zwei Argumente. Dieser, Komma, diese. Dieser selbst ist nur eine Zeichenfolge das enthält einen Platzhalter. % S Mittel setzen andere Zeichenfolge hier. Und so, indem sie Namen nach das Komma, das ist das Einfügen das Ding für mich. So kann ich noch andere Dinge zu tun. Lassen Sie mich nun voran gehen und noch ein bisschen ein dumme Programm, aber lassen Sie mich diese löschen, und lassen Sie mich eine Schleife. Während wahr. Das Symbol ist offensichtlich wahr immer geht um wahr zu sein. Also, welche Art von Schleife ich induzieren durch das Schreiben eine Zeile wie diese? So eine Endlosschleife, nicht wahr? Gerade während wahr. Es gibt keine Art, wie ich das Wort ändern kann wahr, etwas anderes zu sein, so ist dies nur ewig laufen. Also, wenn Sie jemals hatten eigentlich ein Programm in Ihrem Mac oder PC, scheint eingesperrt haben, oder es tut etwas, und etwas, und Sie müssen nur kann nicht die Sache, es sei denn, Sie beenden starten Sie Ihren Computer oder ziehen Sie die Task-Manager oder dergleichen, hier ist so ein Beispiel. Ich kann sagen: "Ich bin ein Buggy-Programm." Close quote schließen Klammern, Semikolon. Also noch einmal, bemerken die Muster. Auch wenn einige unserer Syntax ist neu, während das Schlüsselwort, das Schlüsselwort wahr, merke ich, haben die gleiche Art von geschweiften Klammern. Ich habe ein Semikolon und Klammern. So, jetzt lassen Sie uns fortfahren und kompilieren Sie diese. Gestalte individuelle, kundenspezifische. Also an dieser Stelle, die Sie nicht brauchen, um Neustart Ihres Geräts, alles in Ordnung? So die einfache Lektion ist hier mit zwei Fingern, Steuerung C, wir beenden das Programm. Aber man kann genau sehen, warum dieses Ding wiederholte sich wieder und wieder. Ich kann etwas tun, ein wenig komplexer als Teaser. Ich werde weitermachen und folgendes sagen. Für int, die eine ganze Zahl ist, ich habe gerade ein generischer Name, den wir für die meisten Variablen in der Programmierung, wenn Sie nur das Zählen, gleich 0 ist. Lassen Sie mich gehen und sagen, während i ist, sagen wir mal, weniger als 100, i plus plus. Wir werden an diese Syntax zurück, aber das bedeutet nur, erhöht i wieder und wieder. Und was will ich hier tun? Printf: "Ich kann auf i zu zählen." Dies ist ein fehlerhaftes Programm. Was habe ich eigentlich beabsichtigen hier? Prozent nicht s, aber Sie würden nicht erraten diese. % D ist eine ganze Dezimalzahl. Comma i. Lassen Sie mich ein Rollback. Lassen Sie mich nun mit make kompilieren. Lassen Sie mich nun mit benutzerdefinierten erneut. Ich kann wirklich verdammt schnell, wenn zählen Ich schreibe ein Programm wie dieses. Nun wollen wir etwas tun, eine wenig unbeabsichtigt. Wie wäre es wir dies tun, während ich größer oder gleich 0 ist. Was das wohl zu induzieren? So logisch, das ist nicht so klug, denn jetzt, wenn ich dies erneut, erzählen, Ich kann jetzt wirklich zählt, wirklich hoch. Leider etwa so hoch wie ich kann Zählung 4 Mrd., also das wird eine Weile dauern. Also, warum nicht verlassen wir dies als unsere Cliffhanger verspricht, dass auf Mittwoch, werden wir sehen, ob dieses Programm durchgeführt wird. Zwei werden wir Ihnen, wie Sie selbst schreib eine Funktion, so dass sehr schnell, bis Mittwoch, werden wir, wie wir Übergang von Scratch in C, starten Schreiben immer komplexer Programme, die viel zu tun, viel mehr als dies. Wir werden sehen uns dann. [Applaus] Sprecher 1: An der nächsten CS50, Puzzle Day war ein Erfolg.