>> [Musikwiedergabe]
JASON HIRSCHHORN: OK, jeder.
Willkommen in Abschnitt.
Dies ist CS50, unser erste Super-Sektion.
Wie Sie alle, nächste Woche wissen, regelmäßige Abschnitte beginnen,
aber diese Woche sind wir alle zusammen.
>> Es gibt mir.
Mein Name ist Jason.
Ich bin Dozent für Informatik.
Wir haben Andi, der Leiter der TA CS50 ist.
Und Scaz, Professor Brian Scassellati, er ist ein Professor in Computer Science.
>> Wir sind die CS50 Köpfe an der Yale.
Sie können jederzeit eine E-Mail uns heads@cs50.yale.edu.
Wir werden bei Vorträgen zu sein.
Wir werden im Büro Stunden.
Wenn es überhaupt alles, was wir können für Sie tun, was Sie brauchen,
fühlen sich frei, erreichen heraus zu uns.
>> Also, was sollen wir heute tun?
Oder davor, was ist kommen in dieser Woche?
So Bürozeiten sind Montag, Dienstag, Mittwoch und Donnerstag, von 8.00 bis 11.00 Uhr.
Es gibt einen Zeitplan auf der Website.
>> Abschnitte, wie ich bereits erwähnt, werden ab nächster Woche.
Und finden Sie heraus, was in dieser Woche Zeit, die Ihr Abschnitt ist, welcher Tag es ist,
und wer Ihre TA ist.
>> Problem Set 1 ist am Donnerstag fällig Mittag, Freitag Mittag mit einem späten Tag.
Ja, Sie haben neun Tage zu spät.
Und es gibt neun Problem Sets.
Und kann nur ein späten Tag pro Problem Set.
Ja in der Tat, alle Probleme Sets sind aufgrund Freitag Mittag.
Das ist alles.
Alle, die Details sind auf dem Lehrplan.
>> Jeden Freitag gibt es Mittagessen.
Wir mögen dieses große zu machen Natürlich fühlen sich ein bisschen kleiner.
So sind Sie herzlich eingeladen, RSVP.
Kostenloses Mittagessen mit anderen Mitschüler und Mitarbeiter.
cs50.yale.edu/rsvp.
>> All diese Dinge, Ich habe auf dem Bildschirm,
und vieles mehr, finden Sie cs50.yale.edu oder cs50.harvard.edu, wenn Sie nach Harvard gehen
und betrachten diese online.
>> Auch auf diesen Websites gibt gibt eine Tonne von Ressourcen für Sie.
Jeder Vortrag hat nicht nur die Video- der Vorlesung, sondern auch stellt.
Jemand wird beobachten Sie die Vorlesungen und Notizen für Sie.
So dass Sie nur bezahlen kann Aufmerksamkeit während der Vorträge,
oder Sie ihre Notizen verwenden können / unserer stellt fest, eigene Notizen ergänzen.
>> Es gibt Rutschen online.
Die Quelle code-- alles David geht über in Vortrag,
oder Scaz übergeht Vortrag, dass Quellcode ist online verfügbar
als auch, wie, wie ich erwähnt, Videos.
>> Abschnitte, ebenfalls werden alle gefilmt werden.
Alle diese Folien zur Verfügung stehen.
All dieser Code wird für Sie zur Verfügung.
Es gibt Kurzschlüsse auf der Website, wo CS50 Mitarbeiter verbringen fünf bis 10
Minuten gehen durch Themen für Sie.
Einige von denen, die Sie bereits haben in Problemstellungen begegnet.
>> Bürozeiten, wie ich bereits erwähnt, montags bis Donnerstag, 8.00 Uhr bis 11.00 Uhr.
CS50-Studie ist eine fantastische Ressource.
Es gibt Probleme der Praxis, Musterfolien, bekannte Fehler
dass die Schüler gerne über den Weg laufen, für im Wesentlichen jedes Thema, das wir
wird in diesem Kurs zu decken.
>> Und schließlich auf dieser Folie wenigstens Reference50
die Ihnen Informationen auf allen C Funktionen
Sie jemals hoffen konnte, möglicherweise zu bedienen und viele, viele mehr.
>> Wieder, die dot dot dot an die Unterseite des Bildschirms
soll andeuten, dass es auch mehr Ressourcen auf diesen beiden Websites:
cs50.yale.edu, cs50.harvard.edu.
>> Also, was machen wir heute?
Nun, zunächst einmal, ich werde geben, man sich die Ressourcen.
Schon getan, dass man.
Schau uns an.
>> Nun, wir gehen über Datentypen und Operatoren in C.
Dann Andi wird bis hierher zu kommen und gehen Sie über Bibliotheken in C, printf (),
eine Funktion, mit der Sie sich bereits vertraut sind oder werden schnell sehr zu
vertraut.
Und Sie werden auch übergehen Bedingungen und Schleifen.
>> Und dann schließlich Scaz wird über den CS50-ID zu gehen.
Wenn Sie noch nicht in tauben bereits Problem Set 1,
als auch, wie auf die Verwendung Terminal und nützliche Befehle
und dann geben wir Ihnen einige Demos und Praxis-Codierung in der CS50-ID.
>> Bevor ich zu springen, um diese Inhalt dieser Seite,
weiß jemand irgendwelche Fragen haben so weit?
Groß.
OK.
Gangwechsel.
>> [Gangwechsel]
>> Das war ich Verlagerung Getriebe in einem manuellen Wagen.
So Datentypen in C, die Sie nicht nur kann eine Variable x und haben es auf der Leitung 10,
eine ganze Zahl, vielleicht die Zahl 1, auf der Leitung 20 eine Dezimalzahl 10,5,
und dann ein paar Zeilen später ein String, ich liebe CS50.
>> In C können Variablen nur sein eine Sache, und nur eine Sache.
Und so müssen Sie diese Typen zu geben.
Und auf diesem Board, wir haben eine Liste von Typen.
Es gibt Zeichen, die stehen für Zeichen.
Also das ist ein Buchstabe A, B, C, D. Das kann auch ein Raum sein,
oder dass auch eine neue Zeile.
>> Es gibt Zahlen, die sind einfach Zahlen, ganze numbers-- oder ganze Zahlen
rather-- aber keine Dezimalstellen.
>> Für Dezimalzahlen, haben wir Fließkommazahlen.
Fließkommazahlen sind Zahlen mit Dezimalstellen.
>> Dann gibt es sehnt sich, das sind wesentlich mehr Zahlen.
Sie finden, dass eine lange merken 8 während ein int ist 4.
Ich werde, dass in einem zweiten zu bekommen.
Das liegt daran, sehnt sich sogar speichern mehr Zahlen als ein int speichern kann.
Doppel ist eine lange float.
>> Und schließlich haben wir Schnur, die ein Typ ist
dass Sie wahrscheinlich bereits verwendet haben.
Wenn Sie hashtag schließen # includeCS50.h in der Quelldatei,
dann können Sie einen String-Typ zu verwenden.
Es ist nicht wirklich in C. gebaut
>> Es gibt ein paar andere auch.
Aber das sind die wichtigsten davon mit die Sie verwenden, und der Begegnung.
C wie, wieder habe ich erwähnt, jedes'variable es
können nur eine Art und nur ein Typ sein.
Das ist, weil C ist ein statisch typisierte Sprache, im Gegensatz
dynamisch typisierten Sprachen wo, wenn Sie eine Variable erstellen
Sie ändern können, was in gespeichert es wie Sie gehen in Ihrem Programm.
Bei uns auf der rechten Seite, ich habe verschiedene Größen
diese Arten von Daten in Bytes.
So ein Charakter 1 Byte.
Das ist 8 Bit.
Und das bedeutet, da 8 Bits gibt es acht 0 und 1.
Wir sahen diese Demos in der ersten Woche mit, dass binäre Glühbirnen.
>> Mit 8 Bit oder 1 Byte, können wir Zahlen darstellen, die von 0 bis 255.
Recht.
Wenn alle 8 Bits 0 sind, die 0 ist.
Wenn das erste Bit 1 ist, ist, dass die Zahl ein, und so weiter, bis hinauf zu 255.
Und deshalb für Zeichen möglich im wesentlichen bis zu 255 von ihnen,
aber das ist genug, um alle zu decken die Charaktere, die wir brauchen, um zu verwenden.
>> Für ganze Zahlen, können Sie 0 haben und dann haben Sie 2, um die 32 minus 1.
Das sind, wie viele Optionen Sie haben für die ganzen Zahlen.
>> Für eine lange, 0 Sie haben bis 2 auf die 64 minus 1.
So haben Sie viele, viele, mehr Optionen für Long-Positionen.
>> Streicher, das ist ein Fragezeichen denn das ist ein Cliffhanger für später.
Ja.
Ich könnte sagen, jeder ist am Rand des Sitzes,
wie, was ist das Fragezeichen?
Es ist ein Cliffhanger.
Wir werden letztlich auch die Größe Streicher und reden mehr über Zeichenfolgen.
Weil String ist eigentlich eines der Stützräder
setzen wir auf in diesem Natürlich am Anfang
und dann nehmen Sie später auf, weil Strings in C
sind eigentlich Zeiger um Zeichen-Arrays.
Aber noch einmal, das ist eine Cliffhanger für später.
Bevor ich auf alle Fragen zu verschieben, Kommentare, Bedenken bezüglich dieser Folie?
>> OK.
Ich muss eine fantastische Erklärer sein.
Auch wenn Sie die Programmierung, Sie gehen, um diese Operatoren verwenden.
Wirklich einfache Zeichen, die einfach tun können, Operationen, mit denen Sie wahrscheinlich
bereits sehr vertraut.
>> Beispielsweise auf der rechten Seite sehen wir hinzufügen.
So fügen Sie einfach ein Pluszeichen.
Und so haben Sie vielleicht zwei Variablen x und y.
Sie können x + y im Code zu tun.
Vielleicht haben Sie zu-- Sie sagen wollen, haben die Zahl 7 und 3,
Sie speichern möchten, dass in einer Variablen namens sum.
Sie können int für die Art, Raum zu tun Summe, den Namen der Variablen, = 7 + 3;
>> Was würde das Geschäft in Summe?
Anyone?
Wenn ich in der Summe = 7 + 3.
Was würde in Summe gespeichert werden?
Sie können einfach schreien Sie es heraus.
ZIELGRUPPE: 10.
>> JASON HIRSCHHORN: 10!
Das ist genau richtig.
Was ist in der Summe = 7-3, Ich genau das Bindestrich-Zeichen.
Was wird gespeichert?
ZIELGRUPPE: 4.
JASON HIRSCHHORN: 4.
Sum ist wahrscheinlich der falsche Name für dass variable, aber 4 würde gespeichert werden.
>> Um in C vermehren, verwenden Sie den kleinen Sterne-Charakter, die Sie nicht verwenden eine x.
Zu teilen, verwenden Sie ein Vorwärts Slash die Aufteilung Symbol.
Und Modulo, verwenden Sie das Prozentzeichen.
>> Also lassen Sie uns sagen, ich will sehen, int z = 7% 3, was wäre in z gespeichert werden?
Also, das ist im Wesentlichen zu fragen, was hat Modulo tun?
Weiß jemand, was Modulo tut?
Ja.
Y 4.
Sprecher 1: Es ist der Rest.
JASON HIRSCHHORN: Es ist das Rest, wenn Sie zu unterteilen.
So 7 geteilt durch 3 2 1 Rest.
So würde 1 gespeichert werden.
>> Du hast Subtraktion, aber das ist, wie es funktioniert.
Das ist, was der Modulo-Operator funktioniert.
Es dauert eine Reihe teilt es durch eine andere Zahl und wieder zu Ihnen
der Rest.
Also noch einmal, 7% 3 haben Sie 1, weil 7 geteilt durch 3 2 Rest 1,
und gibt den Rest.
>> Was ist mit der Rückseite nach oben lassen einen Schritt, um die Teilung Zeichen.
Wenn ich das täte 7 / geteilt durch 3 macht Weiß jemand, was das zurückkommen würde?
>> Sprecher 2: 2.
>> JASON HIRSCHHORN: Warum 2 und nicht 2,333?
>> Sprecher 2: Ich denke, es schneidet ab, nachdem die ganze Zahl.
JASON HIRSCHHORN: So das ist genau das richtige.
In C, wenn Sie Teilung zu tun zwei ganze Zahlen 7, geteilt durch 3,
er die Antwort erhält die in diesem Fall 2,3333 für immer
und er findet, dass Dezimalpunkt und hackt alles ab nach dem Komma
und es ist nur kehrt 2.
>> Also, wenn ich tat 8 geteilt durch 3.
Dass tatsächlich, wir wissen, , dass die Rückkehr 2,666,
aber es hackt alles Sie an das Dezimalsystem, schneidet sie alle,
und gerade wieder zu Ihnen 2.
So 6 geteilt durch 3, 7 unterteilt von 3, 8, geteilt durch 3,
alle werden zu Ihnen 2 zurückzukehren.
>> Weiß jemand, oder haben eine Vermutung, , wie ich konnte tatsächlich bekommen
die vollständige Antwort, wenn ich will, dass decimal?
Ja.
Gehen Sie geradeaus.
SPEAKER 3: Verwenden Sie einen Schwimmer?
JASON HIRSCHHORN: Was meinen Sie damit?
SPEAKER 3: Weil Sie sagte der Schwimmer für Zahlen [unverständlich]
JASON HIRSCHHORN: Richtig.
Also, das ist genau das richtige.
7 ist eine Ganzzahl.
Aber, wenn ich wollte, dass drehen in eine Fließkommazahl,
Ich müsste zu speichern, dass als 7,0, da der Computer
wirklich stupid-- wir sahen, dass mit dem PB und J example--
es wird nur genau das tun, was Sie erzählen.
>> Also, wenn Sie schreiben, 7, es denke, das ist eine ganze Zahl.
Wenn Sie schreiben, 7.0, auch wenn wir wissen, die Dinge, gleichwertig sind,
es behandelt, das wie ein Fließkommazahl.
Also, wenn Sie tat 7,0 geteilt von 3 oder dividiert durch 3,0,
es würde sagen, OK, jetzt wir sind mit Schwimmern zu tun haben.
Ich werde Ihnen 2.333333 für immer zurück.
Aber nicht wirklich für immer, weil wie wir im Vortrag sah auch,
diese Gleitkommazahlen sind nicht gerade präzise.
>> Also, wenn Sie wollen, dass Dezimal zu tun, oder ein Teil dieser dezimal,
dann müssen Sie einen von ihnen use-- muss eine Fließkommazahl sein
und der Computer muss verstehen dass dies eine Gleitkomma Sie
Umgang mit nicht einer ganzen Zahl.
Irgendwelche Fragen zu dieser Tabelle auf die rechte Seite, so weit?
Oder der linken Seite, Ihrem links der linken Seite.
Ja.
SPEAKER 4: Richtig.
Für wie eine normale ganzen Zahlen, würden Sie
write-- müssten Sie schreiben, schwimmen?
>> JASON HIRSCHHORN: Ja, so.
Nun, wenn Sie erstellen möchten eine Variable, die ein Schwimmer ist,
Sie müssen sagen, float z gleich etwas.
>> SPEAKER 4: OK.
>> JASON HIRSCHHORN: Aber wenn ich wollte, tun 7 geteilt durch 3 und erhalten, dass dezimal,
Ich würde float z = 7,0 / 3,0 zu tun; und das würde mir die Floating-Point geben
Anzahl.
>> SPEAKER 4: OK.
>> JASON HIRSCHHORN: Wenn ich das täte so etwas wie int z = 7 / um 3,
dass würde mir eine ganze Zahl, denn das sind alle ganzen Zahlen.
Ist das sinnvoll?
>> SPEAKER 4: Ja.
>> JASON HIRSCHHORN: OK.
Groß.
Alle anderen Fragen zu diesem Tisch?
Wirklich?
Ich bin so aufgeregt.
OK.
>> So einige andere Dinge, die Sie verwenden, oft in Bedingungen oder Schleifen,
sind diese Arten von operators-- diese Arten von Booleschen Ausdrücken.
Und wie wir gelernt haben, ist, was Sie == verwenden, um zu überprüfen, ob zwei Dinge gleich sind.
>> Also hier bin ich überprüfen, ob x == y, lassen Sie uns wieder davon aus, dass x 7 und y 3 ist.
Also, wenn ich schrieb, 7 == 3, was würde, dass zu mir zurück?
Ist das richtig oder falsch?
>> ZIELGRUPPE: False.
JASON HIRSCHHORN: OK.
Ich fühle mich wie jeder kann diese eine zu bekommen.
So dass jeder, was wäre das zurück?
ZIELGRUPPE: False.
JASON HIRSCHHORN: False.
Groß.
7 nicht gleich 3 ist.
So 7 == 3 würde return false.
Sie haben eine nicht Gleichheitszeichen, so dass, wenn ich checked 7! = 3, was wäre das zurück?
ZIELGRUPPE: True.
JASON HIRSCHHORN: True.
Ausgezeichnet.
Jemand war sehr emphatisch in der Rücken und zu schätzen.
Dann haben Sie weniger als Betreiber, weniger als oder gleich-Operator,
größer als Betreiber, größere oder gleich-Operator.
>> Also noch eine Plausibilitätsprüfung.
Wenn ich 7 ist größer als oder gleich 3 ist.
Was würde das zurück?
>> ZIELGRUPPE: True.
JASON HIRSCHHORN: True.
Ja.
Das Hinterzimmer Rückseite des Raumes, fantastisch.
Sie können diese kombinieren Ausdrücke, wenn Sie mögen, aber auch,
mit der eine logische UND-Verknüpfung ist && Oder eine logische OR was ||
||.
Und so können Sie jetzt zwei Test Dinge together-- Ist das lustig?
Warum ist das so lustig?
>> Also, wenn ich wollte, kann ich sagen, ist 7 größer als 3 und 2 weniger als 4?
Nun, wenn 7 ist größer als 3, das ist wahr.
2 weniger als 4, das ist wahr.
So würde die ganze Sache true zurück.
>> Wenn ich getestet 7 größer als 3 und-- Ich bin einfach nur Kommissionierung Zufallszahlen hier--
4 ist kleiner als 2, gut, das ist falsch.
So wahr und falsch machen falsche.
Und Sie können gehen und Sie wie zu kombinieren viele Bedingungen zusammen, wie Sie möchten.
>> Hat jemand irgendwelche Fragen haben, Kommentare, Anliegen so weit?
Und ich sehen einige von euch, die Fotos von mir auf dem Bildschirm, die ich zu schätzen wissen.
Ich hoffe, es ist nicht snapchat.
Ich hoffe, es ist für Ihre Notizen.
Aber all diese gehen online verfügbar sein.
So müssen Sie nicht zu haben, machen Sie Fotos von diesem.
Wie ich bereits erwähnt, alles, was wird es für Sie online zur Verfügung.
OK.
Ich bin zu bekommen hinter der Bühne, so hat jemand
, etwas zu sagen bevor das passiert?
Haben Sie Fragen?
>> [Zwischen Stimmen]
>> JASON HIRSCHHORN: Oh, zu stoppen.
Ihr seid zu nett.
OK.
Ich werde Tag out.
Lass uns gehen.
>> ANDI PENG: Wir werden tun, eine peinliche mic Änderung jetzt.
>> JASON HIRSCHHORN: Ich bin gehen, um diese zu entfernen.
ANDI PENG: schätzen die Unterstützung, Jungs.
Kannst du mich hören?
Ist das gut?
Perfect.
Schön.
Lassen Sie mich nur zu verstauen, dass in.
OK.
Also, ich bin dabei, wie ein Riese zu tun Informationen Dump auf euch jetzt.
Und keine Sorge, wenn Sie überhaupt nicht nach jeder kleinen Linie dessen, was
Ich bin, Ihnen zu zeigen.
Als Jason sagte, alles, was vollständig online.
Nur wir werden versuchen, die Einführung jeder in die Konzepte abgedeckt
In einigen dieser Folien.
Also einfach entlang folgen.
Keine Sorge, wenn Sie nicht verstehen, alles; Wenn jedoch an einem beliebigen Punkt
Sie verloren fühlen, heben Sie Hand, werden wir aufhören, keine Sorgen.
Cool.
>> Deshalb denke ich, etwas, das David hat bereits Art in Vortrag erwähnt
und Jason hat Art von angespielt heute ist, was eine Bibliothek ist.
So in der Programmierung, haben wir diese Dinge genannt Bibliotheken.
Wo im Wesentlichen alle sie ist nur ein Satz
von Funktionen, das heißt im Wesentlichen nur Code, der ist
bereits geschrieben worden jemand anderes, dass wir alle
verwenden in unseren Programmen.
>> Wie funktioniert eine normale Bibliotheksarbeit, nicht wahr?
Sie geben die Bibliothekstür.
Sie haben alle diese Bücher können Sie herausziehen
und Sie Informationen zugreifen innerhalb dieser Bücher.
Das Gleiche gilt in der Programmierung.
>> Sie haben eine Bibliothek, die bereits wurde geschrieben von anderen Menschen.
Und die Art, wie du kannst, als Programmierer oder ein Student,
Zugang zu dieser Bibliothek zu gewinnen ist durch hashtag # include.
>> Beispielsweise in der C uns haben drei C- größten
häufigsten verwendeten drei C-Norm libraries-- die Eingabe / Ausgabe-Bibliothek,
der String-Bibliothek, und die Mathematik-Bibliothek.
>> Also in Ihrem ersten Paar Problem stellt,
diejenigen, die drei sein dass Sie in erster Linie mit.
So wie David schon in der Vorlesung erläutert,
die Standard-I / O-Bibliothek oder die Standard-Eingabe / Ausgabe-Bibliothek
tut genau das.
Es erlaubt Ihnen, in Ihrem Code, um Eingangs etwas von dem Benutzer und Ausgabe,
auf den Bildschirm, im Wesentlichen Drucken sie auf den Bildschirm.
>> Und so, wann immer Sie alle Funktionen nutzen beispielsweise die Funktion printf (), was
wir werden in den nächsten Folie zu wechseln, stellen Sie sicher, um den Standard gehören E / A-
Bibliothek oder aber du bist nicht zu gehen in der Lage sein, um die Funktion printf () verwenden.
Weil Sie, wie die Programmierer eigentlich nie schrieb, dass Funktion,
Sie gerade mit jemandem bist Code anderem in den eigenen Code.
>> Macht das Sinn alle?
Cool.
>> Und dann haben wir im Wesentlichen auf zu bekommen die string.h Bibliothek und das math.h
Bibliothek, .h nur bedeutet, Bibliothek, andere Bibliotheken, dass Sie irgendwann
werden mit dem Code.
>> Jedoch für Zwecke dieser Bibliothek haben wir auch
have-- dieser class-- haben wir auch was heißt das CS50-Bibliothek,
cs50.h, wo wir zum Ihre Durchsicht erstellt haben
viele wichtige und nützliche Funktionen.
So dass Sie als Programmierer kann Huckepack off
was wir schon so, dass schriftliche Diese Funktion ist für Sie da
zu Ihrer Verwendung.
>> Ich werde dabei ein paar die Funktionen häufig verwendet,
aber wissen, dass diese Alle googleable online.
Fühlen Sie sich frei, ziehen Sie den CS50-Bibliothek und dann können alle Funktionen haben es.
Ja.
>> SPEAKER 5: Also, wenn Sie nicht waren Verwendung der Software,
wird uns von bereitgestellt die Klasse, das tut
bedeuten, müssten wir zu downloaden und zu finden, Diese Header-Datei selbst und sagen,
der Computer, wo es ist?
>> ANDI PENG: Gute Frage.
Genau.
So ist es wie wenn Sie nicht physisch in einer Bibliothek vorhanden ist,
es gibt keine Möglichkeit für Sie, tatsächlich zu gehen und darauf zugreifen.
So ist die gleiche Sache mit Programmierung in C, die Sie
müssen Sie sicherstellen, dass Sie mit unserer bist Gerät, da die Bibliothek ist schon
wurde in das Gesetz aufgenommen.
Und dann, wenn Sie das Hashtag # include, ist die Bibliothek gibt.
Ja.
Gute Frage.
Jeder gut?
Cool.
Gut.
So werden wir treffen, im Wesentlichen, was ist
die erste Funktion, Wir als Programmierer
gehen, um in unserem Code verwenden werden.
Dies wird die printf () -Funktion aufgerufen.
Also, printf () Funktion, wie ich bereits in der letzten Folie, sagte,
ist in der Standard-I enthalten / O, Standard-Ein- / Ausgabe, Bibliothek.
>> So stellen Sie sicher, was Sie using-- sind oh, lassen Sie mich greifen die Laser pointer--
wenn Sie verwenden Die Funktion printf (),
müssen Sie die Standard-Include-I / O- Bibliothek oder auch, wenn Sie zu kompilieren,
Sie gehen, um einen Fehler zu bekommen sind da der Computer sein wird,
Oh, ich weiß nicht, wo printf () ist, das du mir nicht sagen, wo printf ()
ist.
Nun printf () ist in der mitgelieferten Standard-I / O, so, wenn Sie printf () verwenden,
stellen Sie sicher, dass haben Zeile über Ihren Code.
>> So zum Beispiel, printf () Hier ist eine Funktion.
Denn es macht nicht ausdrucken etwas in den Klammern an den Benutzer.
Sollte jemand gerne einen Stich nehmen an, was dieser Codezeile rechts
Hier wird sich ausdrucken?
Daher ist die Antwort auf dem Bildschirm.
Anyone?
>> VERDI: Die Unterseite.
>> ANDI PENG: Verdi, warum gehst du nicht vor und sagen, die ganze Aussage?
>> VERDI: Hallo, mein Name ist Andi und ich bin 20 Jahre alt.
ANDI PENG: Ah, sehr schön.
So in dieser Linie werden wir zu gehen ausdrucken, Hallo, mein Name ist Andi,
und ich bin 20 Jahre alt, die ist in der Tat eine wahre Aussage.
>> Syntax.
So paar syntaktischen Probleme, Sie Kerle sicherstellen, dass Sie wissen wollen.
Quotes.
Anführungszeichen sagen, die Computer, dass alles, was im Inneren
wird zu drucken.
>> Alles in Dose nur sein, genau, wie
tippen Sie ihn, mit Ausnahme von üblicherweise am Ende,
wir gehen zu wollen, schließen a hash-- oh sorry-- ein Strich n.
So ein Strich n.
>> Will jemand eine Vermutung nehmen an, was das für unser Code?
Ja.
SPEAKER 6: legt es auf einer neuen Zeile.
ANDI PENG: Genau.
Also alles, was das bedeutet ist lassen was auch immer geschieht
nach diesem, nach dieser Erklärung, auf eine neue Zeile gedruckt werden.
So dass, wenn Sie schreiben Ihre Code, den Sie nicht zufällig haben sich die Dinge
an das Ende angeheftet dass Sie nicht wollen.
Das alles wird fein säuberlich gedruckt eine Zeile
und dann in der folgenden Zeile beginnen wir.
>> Erinnert sich noch jemand, was das Semikolon tut, wenn wir Codierung?
Ja.
>> Lautsprecher 7: Statement.
>> ANDI PENG: Es tut uns leid?
>> Lautsprecher 7: Hat es die Anweisung zu beenden?
>> ANDI PENG: Ja.
So in C oder einer beliebigen Programmiersprache Sprache, das Semikolon
bezeichnet das Ende einer Programmierleitung.
So zum Beispiel in Englisch verwenden wir Zeitraum zu sagen, oh, das ist das Ende ein Satz.
In der Programmierung gleiche Sache, haben wir ein Semikolon, um das Ende einer Zeile zu bezeichnen.
Oft, wenn Sie beginnen zu programmieren,
Sie werden Sie feststellen, Vergessen, um ein Semikolon
und dann versuchen, führen Sie Ihre Code und es funktioniert nicht.
Und du, Ah sind, weiß ich nicht warum sollte es funktionieren.
>> Die Chancen sind Sie wahrscheinlich vergessen, ein Semikolon oder eine Klammer oder etwas
irgendwo.
Also, das ist wichtig, sich daran zu erinnern.
Cool.
In Ordnung, Handzeichen, wie viele Leute hier haben immer
genommen AP Informatik oder in Java programmiert, bevor jemals?
OK.
Schön.
Das wird nicht anwendbar dann, aber in Java, die Sie
haben etwas namens System.out.println die nicht in C existiert
>> So in C, wenn Sie wollen in Variablen hinzufügen
in, was Sie wollen ausdrucken, es gibt
eine spezielle Syntax, wir werden zu verwenden.
Das nennt man die placeholding-- wesentlichen
wir Platzhalter hinzufügen, an Ort und Stelle der ganze oder der variablen
dass wir drucken möchten.
>> So wie Sie sehen können, Jungs, wir aufgenommen haben eine neue Bibliothek Header-Datei hier.
Das CS50-Bibliothek.
Und innerhalb dieser CS50-Bibliothek enthalten ist eine gemeinsame Funktion, die wir verwenden werden
in unserem Kurs namens getint ().
>> Weiß jemand, um einen Stich machen wollen was getint () möglicherweise tun.
>> ZIELGRUPPE: [unverständlich]
>> ANDI PENG: Es tut uns leid.
Konnte Sie nicht hören.
Maddie, niemandem.
MADDIE: Oh, werden Sie aufgefordert Sie für eine ganze Zahl.
ANDI PENG: Genau.
Also dieser Funktion, ein weiteres Funktion, die bereits
wurde von jemand anderem geschrieben dass wir bei der jetzt anrufen.
Alles, was es ist, ist aufgefordert, die von Ihnen, dem Benutzer, die Eingabe, was Sie wollen, wie der Code
ausgeführt wird, und es whatever-- speichert in diesem Fall wir getint () sind - ing,
so dass bedeutet, dass wir Erhalten einer Ganzzahl.
>> Und wir werden zu speichern dass in einem anderen ganzzahligen
dass wir gerade angerufen Alter gemacht.
Das Sinn für jedermann?
Cool.
>> So, jetzt haben wir diese Ganzzahl gespeichert, dass wir von der Benutzer aufgefordert habe,
in dieser Variablen, haben wir vom Typ int namens Alters erstellt,
können wir vor Ort und gehen dass in unserer Funktion printf ().
So ist die Syntax der Regel für printf () ist dass, wo immer in der tatsächlichen physikalischen
Zeile, die Sie, dass die ganze Zahl enthalten sein sollen, Sie dieses Symbol genau dort zu tun,
die Prozentzeichen, mit dem Typ der Variablen, die Sie wollen.
>> In diesem Fall so alt ist eine ganze Zahl.
So wirst du zählen sind % i, weil es eine ganze Zahl ist.
Und dann, nachdem Ihre Aussage, Sie gehen
um Komma und das zu tun Namen der Variablen.
>> Also hier, wir gehen zu drucken out, Hallo, mein Name ist Andi,
und ich bin blank Jahre alt.
Hashta-- oder sorry--, Alter mit dem, was ich Eingang.
Also, wenn ich Eingang 20 für meine getint () hier,
es wäre ausdrucken genau dasselbe.
Aber wenn ich die Eingabe etwas wollte anderes, wie vielleicht 40 oder 45,
dann würden Sie sehen, dass reflektierte dementsprechend im Code.
>> Das ist also ein Beispiel von etwas, in dem
sie druckt und sieht zu Sie, als ob es ist die gleiche Sache,
aber unter der Haube des der Computer es gibt tatsächlich
sehr verschiedene Dinge passiert.
Cool.
Gut.
So was, wenn wir wollen, dass mehrere Variablen?
Ziemlich einfach.
Gleiche Sache.
Wir haben auch eine neue Funktion hier genannt GetString (),
auch innerhalb des CS50-Bibliothek enthalten, dass alle es tut, ist der Benutzer aufgefordert
für eine Zeichenfolge, die ist nur ein Satz von Zeichen,
so wie ein Satz oder wie ein Name.
>> So dass in diesem Fall würde es zwei haben Platzhalter% s für die Zeichenkette und% i
für Ganzzahl.
Und wir werden folgen dass von den beiden Variablen
Wir wollen, enthalten, in der Reihenfolge, dass sie erscheinen in dem Satz.
So zum Beispiel, mein Name ist blank, ich will einen Namen gibt,
so werde ich den Namen zuerst.
Und dann später, ich will Alter, wollen Alters zweiten haben.
Und so, wenn ich wollte Eingangs, Hallo, mein Name ist Andi und ich bin 20 Jahre alt.
Wenn ich eingegeben Andi und 20, die genau dasselbe würde zu drucken;
aber jetzt haben wir zwei bekam gespeichert Variablen der Name als auch int.
Ja.
>> SPEAKER 8: Wäre es der Lage zu laufen, wenn Sie eingeschaltet
Name und Alter am Ende, dass?
>> ANDI PENG: Ja.
Das ist wirklich eine gute Frage.
So lange Geschichte kurz, nein.
Da Name und age-- was Variablentyp ist der Name?
>> SPEAKER 8: String.
>> ANDI PENG: Und was Variablentyp ist Alter?
>> SPEAKER 8: Integer.
ANDI PENG: Hier haben wir also einen Platzhalter für String und Integer, nicht wahr?
Also, wenn Sie, diese zu wechseln waren, der Computer wird nicht zu kennen.
Es wird nach einer Zeichenfolge zu überprüfen, und wenn Sie versuchen es einen int zu geben,
es geht zu wie sein warten Ich bin verwirrt, Sie
sagte mir, ich sollte es sein Zuweisung Speicher für ein int.
Und genau hier, wenn es eine ganze Zahl erwartet
und Sie einen Namen geben und einen String statt,
es ist auch wird sehr verwirrend, es wird nicht genau so, wie Sie es brauchen laufen.
Also hier, Benennung und Syntax sehr wichtig für die Ausführung von Code.
Jeder gut?
Ja.
Maddie.
>> MADDIE: Hier, ich weiß, wir sahen an Beispielen in der Klasse, wo sie fragen
Wie alt sind Sie, wie ist Ihr Name.
Hier wäre das es doesn't-- wenn wir diesen Code auszuführen waren,
es würde nicht für das zu fragen?
Aber Sie würden nur zwei Zahlen einzugeben und dann würde es so laufen?
>> ANDI PENG: Ja, genau.
Also, wenn Sie für es wollte Anzeige, geben Sie bitte Ihr Alter,
Sie können einfach eine printf () -Funktion hinzufügen die sagt, Bitte geben Sie Ihr Alter,
über.
Das ist eine gute Frage.
Ja.
>> Lautsprecher 9: Also, wäre schon in getint enthalten () [unverständlich].
ANDI PENG: Nein, es ist eigentlich nicht.
Also alles, was das bedeutet ist einfach fordert einen leeren Bildschirm
um dem Benutzer die Eingabe etwas.
Wenn Sie wollen, dass es, wenn Sie es drucken möchten aus etwas, das dem Benutzer sagt, mögen,
bitte geben Sie mir Ihr Alter, dann müsste printf (), dass Sie sich.
Weil jeder nutzt diese Funktion für verschiedene Dinge,
Sie könnten die Speicherung Alter, Sie könnten Speicheradresse,
Sie könnten zu speichern Telefonnummern.
Und so ist es wirklich bis zu einzelne Nutzungen Ihre Jungs '
für das, was Sie wollen, es zu sagen.
Ja.
>> Lautsprecher 10: Also, nur um zu klären, in denen Sie haben geben Sie den Namen und das Alter
so dass es zeigt sich anstelle von% s?
>> ANDI PENG: wie in der Benutzer?
>> Lautsprecher 10: Ja, wie, wie ich machen es-- wo platziere ich Andi,
und wo stelle ich 20?
>> ANDI PENG: Ja.
Also, wenn Sie wurden zu tatsächlich diesen Code ausführen,
Ich bin nicht wirklich läuft die Code, das ist nur hier und jetzt.
Wenn ich den Code ausführen, würde ich kompilieren Sie den Code haben, stellen Sie die Datei,
führen Sie den Code, und dann gäbe es nur zwei Räume für mich, um Eingangs es sein.
Ja.
Ihr Jungs sehen, wenn Sie zu spielen rund mit dem Code selbst.
>> Na gut, wir werden zu bewegen in den nächsten Abschnitt von dem, was
wir werden dabei heute.
Wir gehen über das, was Bedingungsanweisungen sind.
Also, wenn Sie Jungs erinnern und erinnern vom Vortrag,
bedingte Anweisungen, alles, was sie sind, sind ein Satz
von Anweisungen an den Computer in die, wenn eine bestimmte Bedingung wahr ist,
Sie den Code ausführen, innerhalb dieser Bedingung.
>> So im Wesentlichen Scratch-- das große Thema von heute
ist, dass Sie Jungs haben schon alle die Logik hinter alles gesehen
dass wir abdecken.
Und alles, was wir tun, ist Übersetzen etwas
das war sehr intuitiv in Scratch und harte Kodierung es
in die Syntax wir benutzen für die Klasse, der C ist
So logisch, alles Block war ist, dass Stück Code recht.
Ja.
OK.
>> Wir bekommen auch in eine if ... else Erklärung, die nur ein zusätzlicher Schicht
der Komplexität des if-Anweisung wo der Computer wirft einen Blick auf diese
und sieht, wenn diese Bedingung erfüllt ist, zu tun was auch immer die innerhalb dieser zwei Konsolen,
else-- so eine Art, wie der Standard, wenn es entspricht nicht den Zustand- tun.
Es ist wie eine Gabel in der Straße.
Wenn es draußen regnet, habe ich auf einem regen Jacke, sonst nichts
sonst weiß ich nicht auf einem regen Jacke anziehen.
>> Heißt das, Logik sinnvoll, alle?
Cool.
Gut.
So wie eine Fest Beispiel diese, die wir in C zu sehen
ist, wenn ich wollte ein erstellen Variable Hausaufgabenstunden.
Und wenn Hausaufgabenstunden weniger als fünf, ich sage Leben ist groß.
Es ist wunderbar.
Allerdings sagen, der Kampf ist real-- das, was wir alle ist an diesem Montag
Nachmittags bis Science Hill sind wohl richtig machen now--
ZIELGRUPPE: [lacht]
ANDI PENG: Sie Art, wie wir würde, ich danke Ihnen dafür.
Die Art, wie wir codieren würde Diese in C annehmen if-- lassen
wir haben bereits eine Variable vom Typ int namens Hausaufgabenzeiten finden Sie hier.
Wenn Hausaufgaben Stunden weniger als fünf printf (), Das Leben ist großartig.
Denken Sie daran, halten / n, weil Sie wollen eine neue Zeile nach.
Else Print, ist der Kampf wirklich.
>> Hat jeder wissen, wie Ich aus diesem Block umge
in diesem Code-Block?
Cool.
Gut.
>> So, jetzt werden wir ein Blick in Wenn mehrere Aussagen insgesamt.
Nehmen wir also an die Zweck dieses Programms
war, dass wir den Benutzer nach einem Grad aufgefordert.
Wir Aufforderung mit getint () für ein Klasse, und sie einen Wert eingeben,
und Sie anzeigen möchten welche Art von Klasse bekamen sie.
>> Also, wenn ich ein Programm zu entwerfen, I bedeutet in der Regel in allen unseren Augen,
90-100 ist ein A, 80-90 B, und so weiter und so fort.
Was ist falsch an dieser Stück Code, das ist es nicht
zu tun, was ich will, es zu tun.
Ja.
>> Lautsprecher 11: Sie haben Untergrenzen, aber sie haben keine Obergrenzen.
>> ANDI PENG: Genau.
Haben alle hören, was sie gesagt hat?
Es geht oberen zu sein Grenzen, aber keine Untergrenzen.
Sorry, umgekehrt, Untergrenzen, keine Obergrenzen.
So würden Sie gerne an nehmen Sie einen Stich an sagen
was würden auf diese gedruckt werden Bildschirm, wenn ich diesen Code ausführen.
Lautsprecher 11: Ein Fehler?
ANDI PENG: Ein Fehler?
Große Vermutung, nicht ganz richtig.
Hat jemand eine andere Stich?
Ja, Aaron.
>> AARON: Wenn Sie setzen in etwas mehr als 90,
er alle Qualitäten du zeigen würde.
Es würde zeigen, ein A bekommen, Sie B bekam, eine C erhielt man
>> ANDI PENG: Ja.
Das ist genau richtig.
So, das wäre wunderbar.
Allerdings sind sie für beide Seiten Exklusiv, denke ich.
Wenn ich dieses Stück Code ausführen.
Und dann sagen wir einfach, ich eingegeben wird die Note 95.
So 95 wird nun gespeichert INT genannte Klasse.
>> Und so C ist eine Sprache dass läuft von oben nach unten,
so, es wird immer laufen nach unten.
Also es geht um hierher zu kommen, lesen, wenn Grad größer oder gleich 90,
printf () Sie bekam ein A. Große, I haben eine 95, das ist mehr als 90.
Es wird gedruckt, Ich habe ein A. Es wird
um einen Blick auf diese zu nehmen, wenn, es geht sagen, gut 95 ist auch mehr als 80,
es geht um zu drucken Sie bekam auch einen Got a B Ausrufezeichen, und so weiter und so
her.
>> So wie wir alle sehen können, dies ist eine häufige Fehler ist
die auftreten können, wenn wir Schreiben von Code, wo sie nach.
Jeder, Fragen auf warum das geschah?
Groß.
OK.
>> So, wie wir dieses Problem beheben, ist offensichtlich der nächste logische Frage.
Nun, wir haben diese schönen Dinge genannt, wenn sonst, wenn sonst
wenn else-Anweisungen.
So können Sie sehen, wenn Sie wollten um dieses Problem zu ändern,
Sie zu jedem der machen wollten Bedingungen gegenseitig ausschließen,
Sie wäre ein anderes hinzufügen ... if-Anweisung.
>> Und diese von course-- von ihnen denken, wie Leitern, oder wie Sprossen auf der ladder--
Sie können davon so viele hinzufügen, wie Sie will für so viele Bedingungen, wie Sie wollen.
Also hier, wenn ich eingegeben Grad bis 95 sein.
Wenn mehr als 95 Grad ist, printf (), bekam ich eine A. Große.
Es wird ein anderes sehen ... wenn und es wird zu wissen, Oh nein,
Ich habe bereits ausgeführt, die erste anderes.
Ich wissen-- oder die erste if-- Ich weiß, dass Ich habe nicht den auf jeder dieser aussehen
weil eine von ihnen hat bereits wahr gewesen.
Also, es wird von oben nach unten laufen.
Sobald der erste ist, wahr ist, dann es geht um mehr als der ganze Rest überspringen
der andere ... ifs.
Ist das sinnvoll?
Also, auf diese Weise haben Sie verschiedene Ebenen der Kontrolle
und sobald einer von ihnen falsch ist, das Rest sind, werden sie nicht einmal zu überprüfen.
Cool.
Gut.
>> So ist dies ein Beispiel für eine andere Art bedingte Anweisung
wir sehen, weniger häufig, aber wir werden sie zu sehen und zu nutzen.
Und sie sind oft mehr effizienter für bestimmte Fälle.
So haben wir, was heißt eine Switch-Anweisung.
Also, bevor wir überzogen, was ein anderes Rechnung, eine if ... else-Anweisung.
Hier haben wir, was sind genannt switch-Anweisungen.
>> Also, wenn wir tun, Schalter verwenden Aussagen ist der Schlüssel?
So in einer switch-Anweisung, die Sie in der Regel, in der Regel, die Sie tatsächlich
können nur Eingangszahlen für Ihren Variable, die Sie überprüft sind.
Also, wenn ich wollte, um zu prüfen, wenn eine bestimmte number-- beispiels
eine Klasse, wenn ich eine 90.
Ich möchte, um zu sehen, wenn das ist ein A, B oder C. Ich könnte einen Fall hier zu haben.
Jedoch hat das Gehäuse zum anderen konstant ist.
>> So dass in diesem Sinne die switch-Anweisung kann nur
Check für die Gleichstellung von zwei Zahlen.
Es ist nicht für irgendetwas anderes zu überprüfen.
Also das ist etwas zu sehr sein vorsichtig sein, wenn Sie mit diesen sind.
Also hier, wenn ich wollte, um zu sehen, wenn mein Gehalt von 90 gleich 90 oder 80 ist,
oder 70 oder 60, und drucken die entsprechende Klasse,
Ich möchte in der Lage zu schreiben, dass sein in einer switch-Anweisung.
>> Also es geht um hierher zu kommen, ist Check Diese ganze Zahl gleich dieser Konstante?
Wenn nicht, wird es übersprungen.
Ist es gleich dem konstanten zwei, und so weiter und so fort,
, bis Sie auf den Standardwert, wenn keines von ihnen gleich sind.
Sobald einer von ihnen wird eingestellt, um gleich zu sein,
es wird, dies zu tun Codezeile und Pause.
Das bedeutet, es wird getroffen, dass laufen, zu brechen, und gerade komplett überspringen
an der Unterseite des Codes.
In diesem Sinne die Art von Funktionen wie eine if-else if else if-Anweisung.
>> Also hier ist ein konkreter Beispiel für euch.
Nehmen wir also an, dass ich wollte, erstellen eine Variable namens Jahres gegründet.
Und ich möchte den Benutzer zur Eingabe auffordern das Jahr, in ihrer Schule gegründet wurde.
So kann ich eine switch-Anweisung hier erstellen.
Und lasst uns einfach sagen, ich Eingang 1636.
>> Dieser Code hier los ist, um den Schalter zu sehen Jahr gegründet, die 1636 gleich.
Es wird bei zu sehen 1636 oh denen gleich sind,
printf () Sollten Sie nicht sein an dieser Schule im Norden?
Da wir davon ausgehen, sie dies nicht tun gehen Sie hier, wenn sie nach Harvard zu gehen,
Pause und fahren bis zum Ende.
>> Wenn ich die Eingangs 1701, die Ich nehme an, alle von uns würde Eingang,
es wäre, diesen Fall zu überspringen, kommen bis zu jeweils zwei, die 1701,
und Drucken Willkommen in Yale!
Brechen, fahren bis zum Ende.
Sonst sind Sie wahrscheinlich diesen Kurs Online, in dem Fall-- genial willkommen
um Yale--, es wird um unterwegs Standarddruck, Hallo Internet!
Und brechen.
Ja.
>> Lautsprecher 12: Können Sie anderes verwenden anstelle der Standard da?
>> ANDI PENG: Nein, denn die Weise, dass diese ganze Funktion
Schalter eingebaut, die Syntax Sie verwenden müssen, ist bei Standardfall.
Es ist wie der, wenn sonst, wenn diese es ist eine Falle bei Standard. Ja.
Lautsprecher 13: Du hast vielleicht schon sagte, aber können Sie mehr als zwei Fällen?
ANDI PENG: Ja, könnten Sie haben so viele Fälle wie Sie wollen.
Betrachten Sie es als einfach gerne stufenlos Zugabe auf.
>> Lautsprecher 14: Wenn Sie schaltet 1701 mit 1636,
dass es nicht zu machen ein Unterschied in Ordnung?
Ist es nur geht, um die Überprüfung werden dafür.
>> ANDI Peng: Das ist eine wirklich gute Frage.
Und wir werden auf berühren später, aber nur
weiß, das ist der Schalter Anweisung infinitely-- es
effizienter als es und wenn else if, weil es funktioniert
mit einer anderen Art von Funktion, ermöglicht es Ihnen, im Wesentlichen, um nur
gehen Sie direkt zu den Fall müssen Sie bei zu sein.
Ja.
Lautsprecher 14: Kühler.
Vielen Dank.
ANDI PENG: Ja
>> Lautsprecher 14: und man konnte nicht do Fällen wie und größer.
ANDI PENG: Nein
Also, das ist, was über die Grenz switch-Anweisung ist, dass man
Konstanten nur, nur ganze Zahlen.
Ja.
OK.
>> Also das ist etwas, dass Sie Jungs werden seltener der Begegnung,
aber ich wollte einfach präsentieren sie bei.
Wir haben hier, was ist genannt ternäre Operator.
Wo Wesentlichen, es ist wie ein if-Anweisung in einer Zeile zusammengefasst.
Hier werde ich in der nächsten Zeile zu gehen, die nächste Seite, weil es einfacher ist, zu sehen.
>> So haben wir alle dieses Recht gesehen?
Das ist ziemlich einfach zu folgen.
Wenn ich wollte, um eine Variable mit dem Namen machen, Satz benannt s, wenn eine bestimmte Anzahl
Ich gebe es weniger als 100 ist, ich möchte auf die Zeichenfolge zuweisen niedrig,
sonst will ich ordnen hoch.
>> Das hier ist genau dasselbe zu tun diese acht Zeilen Code tun.
So, hier möchte ich erstellen eine variable Zeichenfolge.
Und das ist der Zustand, ich bin Prüfen, ob eine Zahl kleiner als 100 ist,
dann haben Sie den Wert niedriger zuzuordnen, sonst weisen Sie den Wert hoch.
>> Diese Folien werden online, keine Sorgen wenn euch nicht bekommen, diese nach unten.
Dies ist nur eine einfachere Möglichkeit, eine weitere effiziente Möglichkeit, das Schreiben von Code.
OK.
>> So, jetzt sind wir zu gehen Geben Sie, was für die meisten Menschen
sind wie ein sehr, sehr verwirrend Sache, über zunächst denken.
Der Schleifenabschnitt.
Also heute werden wir zu sprechen etwa drei Arten von Schleifen.
Wir werden mit einer Weile beginnen Schleife, dann zu einem do while-Schleife zu sprechen,
und dann reden über for-Schleifen.
>> So im Wesentlichen, für die mehr visuelle Lerner gibt,
Wir haben im Wesentlichen eine grafische Beschreibung von, was eine while-Schleife tut.
Also in einer Programmiersprache, können Sie beginnen würde und geben Sie die Schleife an einem bestimmten Punkt.
Sie prüfen eine Bedingung.
Und falls die Bedingung wahr ist, Sie den Code innerhalb auszuführen.
Und Sie wieder um kommen und Sie zu prüfen.
Wenn es immer noch wahr, dass du am Laufen zu halten dieser Code um und um in einer Schleife.
>> Jedoch der zweite, dass die Bedingung falsch,
Sie gehen zu brechen und am Ende der Schleife.
Und dies ist im Wesentlichen das Syntax Sie verwenden sind.
Während eine bestimmte Bedingung wahre dies zu tun, wenn es nicht wahr ist,
Wirst du zum Ende springen bist und sich zu bewegen mit Ihrem Programm.
OK.
>> Hat jemand ein Beispiel haben was potentiell passieren
wenn ich versuche, dieses Stück Code ausführen?
By the way, das ist Scaz SAJ--, Andi, Jason-- wir unsere E-Mails abmelden,
Liebe, SAJ.
Das sind wir.
OK.
>> Wer noch ein Beispiel, oder eine Idee, was das wäre zu drucken?
Art eine Fangfrage.
Also hier, denken Sie daran die Bedingung Wir überprüfen für ist, während wahr.
So, während dies wahr ist, dann ist es Drucklegung, ich liebe SAJ!
Gibt es einen Punkt, an dem wir würden irgendetwas sonst ändern?
Kein Recht?
>> Also hier haben wir gestoßen, was ist wahrscheinlich
gehen zu Lauschangriff viel Ihre Programme, die Endlosschleife.
Sie werden feststellen, dass, wenn Sie führen Sie dieses Stück Code,
ist es nur geht zu halten Druck, ich liebe SAJ!
Während wir schätzen die Unterstützung, wir nicht Ihren Computer möchten
zum Absturz zu bringen, weil Sie halten Druck Ich liebe SAJ!
>> Bitte, bitte, so, vermeiden die Endlosschleife
denn es wird nie auf false ausgewertet
und du wirst nie um die Schleife zu verlassen.
Und du bist zu gehen in immer angesaugt werden.
Cool.
OK.
Die zweite Art von Schleifen wir heute sprechen
ist die do while-Schleife, Do-While-Schleife.
Und es ist ein do-while-Schleife genannt weil Sie eine do und eine Weile.
Also das ist ziemlich ähnlich wie eine Weile Schleife, aber ein bisschen anders.
Hier können Sie tun werden was auch immer das Innere dieser
während eine bestimmte Bedingung erfüllt ist.
Also, wenn ich C und den Computer bin ich liefen dieses Stück Code,
Ich einen Blick auf die Oberseite.
Ich gehe in C, sage ich tun, dieses Ding.
Und dann überprüfe ich, während dieser ist wahr, ich habe sie zu wiederholen.
Aber während dies falsch ist, dann habe ich vorwärts zu bewegen
und ich nie wieder in dieser Schleife wieder gehen.
>> Kann jemand einen Stich nehmen auf das, was den Unterschied
zwischen dieser Schleife und die, die wir gerade an war sah praktisch.
Ja.
SPEAKER 15: Die Bedingung kommt nach anstatt vor?
ANDI PENG: Genau.
So sagte der Zustand kommt nach, nicht vor.
Letztlich ist die Differenz zwischen dieser und der while-Schleife
ist, dass Sie gerade tun was auch immer das im Inneren dieses unabhängig von
ob Ihr Zustand ist oder nicht wahr ist, und überprüfen Sie den Zustand.
Also in diesem Fall, sind Sie always-- auf diese Weise,
Sie immer darauf achten, was auch immer drin läuft mindestens
einmal zu überprüfen, wenn Sie wollen, dass es wieder zu laufen.
>> Und hier ist ein Beispiel, der, wenn wir sie verwenden würde.
So zum Beispiel, wenn ich wollte, haben eine Variable vom Typ int namens Alter,
und ich möchte veran der Benutzer für ihr Alter,
Ich werde tun, printf () Wie alt bist du?
Alter = getint (), die wird der Benutzer aufgefordert.
>> Und einige Leute werden wirklich ärgerlich sein.
Und Sie müssen nicht, dass Fehler in Ihrem Programm von jemandem wie Eingabe,
oh Ich bin negativ 4 Jahre alt oder was auch immer.
In diesem Fall, wenn sie tun, wertet diese
zu wahren, was bedeutet, dass ich mich zu gehen muss immer wieder zurück und tun dies.
So, das wird halten erneute Aufforderung des Benutzers
um Sie wie ein echter geben die Anzahl und es ist
werde immer wieder zurück und wiederherstellen , bis sie Ihnen ein wahres Alter
größer als eins oder nicht Null ist.
>> So deuten, Hinweis.
Dies wird sehr, sehr nützlich für eines Ihrer PSet Probleme.
Ja.
>> Lautsprecher 16: Whoops, sorry.
>> ANDI PENG: Yep.
>> Lautsprecher 16: Gibt es nicht um ein Arschloch zu sein, aber--
ANDI PENG: Keine Sorge.
Lautsprecher 16: Es --are unterschiedliche Regeln hier,
oder hast du einfach vergessen um die Preisangabe zu setzen?
>> ANDI PENG: Oh Yeah.
Es tut uns leid, das ist total mein schlechtes.
Das war auf jeden Fall soll ein Zitat zu sein.
Guter Fang.
Das wäre nicht ausgeführt haben.
OK.
>> So ist die letzte Art der Schleifen wir reden über und schließlich Art der meisten
Komplex ist die for-Schleife.
Mach dir keine Sorgen, wenn Sie nicht tun, wissen, was das bedeutet.
Es ist ziemlich verwirrend auf den ersten.
Wir werden mehr als ein Beispiel zu gehen.
>> Alles, was in einer for-Schleife passiert, ist, dass Sie drei Erklärungen
dass du gehst zu schließen.
Also für eine bestimmte Sache, du bist gehen, um eine Variable zu initialisieren.
Sie werden, um den Zustand zu fügen welche diese Schleife wird am Laufen zu halten.
Und dann, am Ende der Schleife, Sie gehen, um es zu aktualisieren.
Sie können die Variable aktualisieren dass Sie den Überblick behalten wollen.
So verwenden wir in der Regel for-Schleifen, wenn wir
wollen, um eine Schleife für einen Lauf gewisse Zeit
und wir bereits wissen, Oh, ich will diese Schleife wie 10 Mal ausführen,
dann do-- Ich gehe über ein Beispiel für auf der nächsten Seite.
>> So, hier beispielsweise im Scratch, wenn Sie wollte etwas zu 10 Mal wiederholen,
alles, was Sie zu sagen hatte, war, 10-mal wiederholen Ich liebe SAJ!
was ein akzeptabler Zeichen der Unterstützung für uns,
anstatt die Endlosschleife.
Hier, wie würden Sie Übergang zu C und Schreib
das ist für int-- Ich werde zu erstellen oder deklarieren Sie eine Variable vom Typ int namens i.
Ich werde zu initialisieren es auf 0, so i = 0;
und dies wird mein Zustand sein.
So dass ich weniger als 10.
Und dann am end-- die letzte Anweisung Sie
zu haben, ist die Aktualisierung der was passiert, auf die Variable i
am Ende des for-Schleife.
Also, es ist irgendwie verwirrend, denn verschiedene Teile dieser Linie
an unterschiedlichen geschieht Arten der Schleife.
Aber ich werde mehr als gehen Pseudo Beispiel dafür
und vielleicht erklären nur ein bisschen besser.
>> Also hier.
Das ist die Schleife wir gerade gesehen haben.
Im Wesentlichen in Pseudocode, was wird in diesem Programm geschieht,
ist in erster Ich erstelle i, der Initialisierung auf 0.
Ich überprüfe, ob i weniger als 10, wobei
das erste Mal ist da 0 weniger als 10.
So wird die Schleife laufen soll.
Und dann werde ich diese Zeile zu drucken.
Und dann am Ende dieser Leitung mit der rechten hier, ich werde Schritt i, ++ ich tue,
all das Mittel Inkrementieren um eins.
>> Also ist i jetzt 1.
Denn es war einmal 0, wenn ich erhöhen, es ist, es ist jetzt 1.
Und dann werde ich zurück zu gehen an den Anfang der Schleife
und ich den Zustand.
Ist der Zustand immer noch wahr?
Ja, das ist ein immer noch weniger als 10.
Also es geht um diese erneut zu drucken, gehen und dann zu erhöhen i, und überprüfen
die Bedingung kontinuierlich kontinuierlich,
bis Sie schließlich erhalten zu dem Punkt, wobei i 10.
>> Du wirst diese 10-mal ausdrucken und dann i wird sich gleich 10.
Sie werden, um den Zustand zu überprüfen.
10 weniger als 10?
Nein, das ist falsch.
Somit wird diese Schleife nicht zu laufen, es geht um zu brechen,
und du bist zu gehen weiter mit Ihrem Code.
>> So wie euch kann, dies zu sehen ist ein wirklich großartiges Beispiel
einer Schleife können Sie programmieren, dass läuft für eine bestimmte Menge an Zeit.
Jeder klar?
Ja.
>> Lautsprecher 17: Wie wäre es mit Schrittweite exponentiell, ist es unterschiedliche Codierung?
>> ANDI PENG: Sie can-- wir gehen darüber in der nächsten Folie.
Gute Frage.
Ist anyone-- bevor ich zu bewegen an-- haupt jemand verwirrt,
denn dies ist eine wirklich schwierige Konzept.
Keine Sorge, wenn you're-- OK.
Cool.
>> Gut.
Nur eine allgemeine Rutsche.
Diese while-Schleife tut das genau die gleiche Sache der for-Schleife war.
Es ist nur anders geschrieben.
Euch kann die Folien durchgehen an Ihrer Bequemlichkeit später.
Aber genau wissen, dass es mehrere Schreibweisen elbe
um mit verschiedenen Schleifen geschehen.
OK.
>> So, jetzt in der Frage, bekommen wir, was wenn wir eine Schleife innerhalb einer Schleife.
Wir sind in reale bekommen Inception Typ Sachen hier.
Wenn Sie die Dinge tun wollen mehrere Zeiten innerhalb anderem
dass die Dinge mehrere Male, die Sie wollen, was eine verschachtelte for-Schleife genannt.
Für diejenigen unter Ihnen, die zuerst sehen dies und sehr verwirrt, alle sind wir hier
wird mit einer for-Schleife, wo wir haben eine Variable der Reihe.
Aber innen von ihm, haben wir auch eine andere for-Schleife einer Variablen namens Spalte.
Und ich empfehle euch alle die verwirrt sind, um zuerst zu halten
track-- diese herauszuziehen, ziehen diese heraus.
Versuchen Sie nicht, gerade Grund durch sie, ziehen Sie es heraus.
>> In deinem Kopf, auf diesem Stück Papier, oder was auch immer, Schreib Reihe,
zu verfolgen, was Zeile gleich ist.
Schreiben Sie Spalte, im Auge behalten von welcher Spalte ist gleich.
Und zu verfolgen, was ist Ausdrucken mit jeder Iteration.
Jede Iteration dieser Schleife jedes Iteration dieses größere Schleife,
einfach weiter nach der Logik.
Und ich garantiere Ihnen, Sie lieben, was Sie sehen,
denn es ist auch sehr die für Ihre Problemstellungen.
Cool.
Gut.
Also das Wichtigste dass Sie Jungs sind wohl alle
darüber nachzudenken, gerade jetzt, sind Ihr Problem Set 1s,
die fällig sind Donnerstag / Freitag.
>> In Ihrem water.c Programm, Hinweis Sie gehen zu müssen, sind
den Benutzer nach einer Eingabe auffordern.
Innerhalb Ihres mario.c Programm Sie gehen zu müssen sind
um eine verschachtelte for-Schleife verwenden, das ist, eine for-Schleife innerhalb einer for-Schleife,
um einen Block von Pyramide zu drucken, im Wesentlichen wie das, was Mario hat zu springen.
Und dann in Ihrem greedy-- oder vielleicht Den Wandel, wenn einer von euch Jungs
jemals von dass-- hören Sie gehen zu müssen, um ganz sein sind
vorsichtig ersten Fließkommazahlen.
Denken Sie daran, schwimmenden Dezimalstellen und ganze Zahlen sind nicht das gleiche.
Behalten Sie den Überblick von denen einer dem.
Und Sie gehen zu verwenden sind bedingte Anweisungen, wie gut.
>> Alles klar, letzte Sache.
Ich habe ein paar Minuten vor dem Ende stand.
Stil.
Also das ist etwas, das nicht tut, tatsächlich bewirken, die Effizienz,
oder die tatsächliche Lauf Ihres Codes.
Allerdings bewirkt es uns als Ihre Grader, wie Ihre Leser.
Es bewirkt Sie sich, wenn Sie versuchen, ein Problem zu finden.
Es bewirkt die Lesbarkeit des Codes.
>> So Stil, wie wenn Sie versuchen, Stil einen Aufsatz für Englisch, wenn Sie
hatte keine Absätze, Sie alles, was Art haben
zusammen in einer Zeile durcheinander, es macht es wirklich schwierig für alle,
um Ihren Aufsatz zu lesen, auch wenn Ihre Punkte logisch Sound.
Das Gleiche gilt in der Programmierung.
Sie können schrecklich obskuren haben Code, der Scaz deckt,
und es kann noch laufen und Funktion.
Aber für uns, wie Ihre schöne TAs, wer dann werden das Lesen und Auswerten Ihrer pset-
das ist nicht sehr nett.
>> Also bitte, im Interesse von uns und sich selbst,
wenn Sie versuchen, zu beheben sind ein Problem in Ihrem Code,
und Sie versuchen, Lesen Sie Ihren eigenen Code, stellen
sicher, dass Sie einige Konventionen folgen dass wir gehen, um zu gehen zu Ende.
>> Also zuerst.
Geben Sie Ihre Variablen aussagekräftige Namen.
Wenn Sie eine ganze Zahl speichern möchten genannt Alter, nennen Sie bitte Alter.
Nennen Sie es nicht Höhe.
Wenn Sie versuchen, speichern ein Alter in der Höhe,
es macht alles sehr verwirrend für uns.
Wir mögen nicht verwechselt werden.
Sie mag es nicht, zu verwechseln.
Niemand mag es, zu verwechseln.
Wenn Sie gehen, um etwas zu schaffen, nennen Sie es etwas Sinnvolles.
>> Doch in for-Schleife, Single Zeichenvariablen sind in der Regel in Ordnung.
Und in for-Schleife, wenn Sie nur wollen i, und j, k, fühlen sich frei, genau das zu tun.
>> Konsistente Initialisierung.
Also, was bedeutet das?
Das bedeutet technisch, theoretisch Sie initiieren und erstellen können
mehrere Variablen in der gleichen Zeile.
So zum Beispiel, ich erstellen kann eine ganze Zahl genannt scaz_age,
und Integer genannt andi_age = 20, und eine ganze Zahl genannt jason_age
auf der gleichen Linie.
Und ich kann auch nur eines der zuweisen sie und die anderen nicht, Werte.
Wir bitten Sie, bitte tun Sie das nicht.
Weil man hier im wesentlichen erstellt haben drei Variablen, aber nur einer von ihnen
tatsächlich hat einen Wert.
Und dann, wenn wir versuchen, den Code zu lesen,
oder wenn Sie versuchen, zu beheben sind ein Problem in Ihrem Code,
es ist sehr verwirrend zu folgen.
Also einfach für Ihre Lesbarkeit für unsere Lesbarkeit, tun Sie das nicht.
>> Konsequente geschweiften Klammern.
Einige Leute mögen ihre setzen geschweiften Klammern an verschiedenen Orten.
Es spielt eigentlich keine Rolle.
So stellen Sie sicher sind konsequent in Ihrem eigenen Code auf, wo Sie sie setzen möchten.
>> Konsequente Abstand.
Wenn Sie ein Leerzeichen nach einem legen for-Schleife, immer das tun.
Nicht gerade wie Art tun es zumin einige Orte, tun Sie es nicht in anderen.
Seien Sie konsequent.
>> Zweitens, wenn jemand möchte um den CS50 Style Guide durchlesen,
wir offiziell eine Art Leitfaden, erfahren Sie alles dieser Übereinkommen,
plus mehr.
Es ist online.
Es ist wie cs50.net/style oder etwas ähnliches.
Sie können es Google.
>> Konsistenz ist der Schlüssel.
Also keine Sorge, was andere Leute tun,
so stellen Sie sicher, dass Sie konsistent in den eigenen Code.
Jedermann haben alle mögliche Fragen über das?
Ja.
>> Lautsprecher 18: So ist die richtige Sache, zu tun mit der Initialisierung ist nur
haben sie alle in einem separaten Linie ist das, was du sagst?
>> ANDI PENG: Also ich selten habe dies geschieht.
Aber wenn man wollte, wenn man wollte, wie platzsparend in Ihrem Code,
oder was auch immer, können Sie dies tun.
Wir bitten, dass Sie gerade nicht zu initialisieren eine Sache, und nicht die anderen.
Also, wenn Sie int scaz_age tun wollen, int andi_age, int jason_age, das ist in Ordnung.
Nur nicht zu initialisieren einem und nicht die anderen ist alles.
>> Haben Sie Fragen?
Gut.
Ich werde vorübergehen die Mikrofon, und die Laser-Zeiger,
und der Stab an dieser Stelle Scaz.
Dies ist umständlich.
Hier ist es.
>> BRIAN Scassellati: Vielen Dank.
Wie ist das für ein Geräusch?
Sound ist gut? .
Ausgezeichnet.
OK.
Also, Hallo allerseits.
>> Ich werde versuchen, durch Arbeit ein praktisches Beispiel mit Ihnen.
Und wir werden CS50 verwenden Entwicklungsumgebung, was heißt
Die integrierte Entwicklungsumgebung.
Und Sie dies gesehen haben in der Vorlesung demonstriert.
Und in Problem Set 1, du bist werde die Gelegenheit haben,
, es zu benutzen, und spielen, um mit , und daran gewöhnt zu werden,
denn wir gehen, es zu benutzen durch den Rest des Semesters.
>> Also in diesem IDE, haben Sie, was aussieht wie eine sehr traditionelle Datei-Browser
mehr als auf einer Seite.
Sie haben einen Teil stand auf top, wohin du gehst
um den Quellcode zu sehen, Ihre Cfile, der Code, den Sie schreiben.
Und unten unten, werden Sie haben Sie ein Terminalfenster
wo es mit Hilfe sein, sowohl kompilieren Ihr Programm
und zu laufen oder Ihr Programm auszuführen.
OK.
>> Also, nur um uns ein wenig geben, Stiftung in diesem Terminalfenster
wirst du sein wirst Verwendung eines Satzes von Befehlen,
die Standard-Befehle sind in ganz die meisten Unix- oder Linux-Systemen.
Und so, wenn Sie überhaupt benutzt haben Jede Form von Unix, Ubuntu,
oder einen der anderen Aromen, diese gehen zu bekannt vorkommen.
>> Wenn Sie nicht, keine Sorge.
Es gibt nichts kompliziert über sie.
Sie sind nur mit einem anderen Syntax, eine andere Namens
Konvention als Sie noch nie gesehen.
>> So aufführen, die Dateien in einem bestimmten Verzeichnis,
sie gehen, um eine zu verwenden Befehl namens ls oder einer Liste.
Wenn Sie alles sehen wollen mit allen Details,
Sie einen Befehl verwenden Zeilenargument mit ls -l.
Und das werde dir alles zeigen genauer, einschließlich
die Berechtigungen für eine Datei.
>> Um Verzeichnis zu ändern, Sie werden mit dem Befehl cd zu verwenden.
Und du wirst in der Lage, Verzeichnis ändern sowohl auf Ihrem Home-Verzeichnis zu gehen.
Das ist nur cd alle durch selbst, cd mit zwei
Punkte werden Sie up one zurück Niveau zu Ihrer vorherigen Verzeichnis.
Und Sie können auch CD auf eine Unterverzeichnis, indem Sie in cd
und der Name dieses Unterverzeichnis.
>> Sie können auch neue Verzeichnisse erstellen.
Und wir werden zu Fuß gehen durch diese in nur einer Minute.
Aber gerade zu setzen alles, was auf dem Bildschirm.
Damit Sie sie sehen.
>> Darüber hinaus haben Sie die Möglichkeit, um Dateien direkt bearbeiten
von der Kommandozeile.
Sie werden in der Lage, sie zu kopieren sein verschieben Sie sie, oder sie zu entfernen,
das heißt, effektiv, um sie zu löschen.
>> Der CS50 IDE gibt Ihnen die volle Macht der Kommandozeilenargumente.
Und das bedeutet, können Sie auch tun sehr gefährliche Dinge.
OK.
Zum Beispiel, können Sie zu entfernen, oder das ist löschen,
eine Datei, ohne zu fragen, um eine Bestätigung.
Und Sie können sogar entfernen recursively-- das ist,
der Bindestrich r flag-- eine ganze Unterverzeichnis und alle Inhalte.
OK.
Sie sind in rot, weil Sie sollte "Gefahr" denke jedes Mal,
Sie sehen, diese Dinge.
OK.
Gut.
>> Nun endlich, die Dinge, die sind gehen wirklich wertvoll für Sie sein,
gibt es ein paar gute Tricks zu wissen, wie Sie die Navigation sind
durch diesen Terminal-Fenster.
Erstens können Sie den Bildschirm löschen jederzeit durch einfaches Eintippen in klar.
Und du wirst sehen, mir, das zu tun ziemlich oft.
Sie können auch einfach angezeigt werden der Text einer Datei
indem mehr und dann den Namen der Datei.
Sie werden dann in der Lage, zurück zu blättern, und weiter mit, dass nur mit der Leertaste
und Pfeiltasten.
>> Wenn Sie haben, wie wir es heute in der Vorlesung, ein Programm, das kontinuierlich ausgeführt wird
in Endlosschleife, die Sie kann das Programm zu stoppen
von der Ausführung, indem Sie in der Steuerung, dass wird Strg-C gedrückt halten.
Und Sie können zu tun haben, diese mehrmals.
Der Computer erhält weit vor Ihnen.
Und Sie müssen manchmal geben Sie es ein paar Versuche
bevor es tatsächlich durchkommen.
>> Sie werden auch in der Lage zu sein, Art durch die Befehle
dass Sie gerade mit der Aufwärtstaste eingegeben haben, Pfeil und dann die Pfeiltaste nach unten.
Und was ist am nützlichsten ist, statt Tipp aus lange Dateinamen,
Sie in der Lage sein, um die Verwendung Tab Autocomplete ein paar Anweisungen.
Jetzt werden wir zeigen, alle, die in nur einer Sekunde.
Also, wenn Sie sich nicht erinnern sie, keine Sorge.
Dies sind Dinge, die Sie Abholung und verwenden, wie wir gehen.
OK.
>> So in C- anders als in Scratch-- C ist eine kompilierte Sprache.
Das bedeutet, dass wir gehen, um eine Quelle zu nehmen file-- das ist der Text, den Sie schreiben,
die Befehle, die Sie schreiben, die printf () Aussagen, die Schleifen,
alles else-- und wir werden , um die Datei zu nehmen und geben es weg
zu einem Programm namens den Compiler.
>> Der Compiler wird dann dass Text, den Sie geschrieben haben,
und übersetzen sie in die binären Instruktionen
dass Ihr Computer eigentlich los Gebrauch.
Das ist das Objekt aufgerufen oder die ausführbare Datei.
Wenn Sie sich die Datei ansehen, Sie gehen , um den Code, die Sie geschrieben haben, zu sehen.
Wenn Sie sich die Datei ansehen, Sie gehen um eine zufällige Folge von Zeichen zu sehen
dass keinen Sinn überhaupt.
Das ist, weil das ist die binäre.
Es ist nicht für Sie, um das Lesen gedacht.
>> Doch immer wenn Sie wollen, laufen etwas, was du gehst
zu laufen ist diese Objektdatei.
Also, wenn wir mit diesen Dateien, werden wir eine Datei in C schreiben
Wir werden dann kompilieren Sie es, mit ein Befehl wie make, die berufen werden
der Compiler Klang für die C-Sprache.
Und das wird ein Objekt zu erzeugen Datei, wie eine aus, oder in diesem Fall,
der Name, meine Datei, die ich in.
Gut.
>> Lassen Sie uns also tatsächlich versuchen dies.
So kam ich mit einem Beispiel von dem, was ich wollte, um zu versuchen.
Und eines der Dinge, die fasziniert mich ist Animation.
Also werden wir versuchen zu tun, ein bisschen Animation
mit nur ASCII-Zeichen.
Charaktere, die wir leicht heraus jetzt drucken.
>> So, hier ist mein bester Versuch zu schaffen für Sie
die Animation eines Häschens läuft durch das hohe Gras.
Da ist er.
OK.
Also ist er noch nicht läuft, aber er ist dort stand im hohen Gras.
>> Nun, wenn ich ein Animator, in der alten Schule
Version von Animation, was ich tun würde, ist, würde ich zu produzieren
ein Bild von dieser Hase im Gras.
Und dann würde ich zu produzieren weiteres picture--
ein anderer, was sie cell-- genannt, dass hatte der Hase nur geringfügig verschoben.
Und dann eine dritte, die hatte die bunny bewegt ein wenig weiter.
>> Und ich würde eine ganze produzieren Folge dieser Zellen.
Einige, wo der Hase ist vorbei auf der linken Seite.
Und dann bewegt sich langsam, eins durch eine in Richtung der Mitte.
Und dann von der Mitte nach rechts.
Und wenn ich dann wirklich Glück, konnte ich es zusammen
und ich konnte sie zu animieren.
Und es ist mein Hase laufen durch das Gras.
>> Das ist meine große Powerpoint- Trick für den Tag.
OK.
Also das ist so gut, wie es nur geht.
OK.
So, hier ein weiteres Mal, hier ist unsere bunny durch das Gras läuft.
>> Lautsprecher 19: Wieder.
BRIAN Scassellati: One mehr Zeit, alles in Ordnung.
Es ist Ihr Kaninchen.
OK.
>> Also heute, was wir zu tun ist, wir gehen
um zu versuchen, den Prozess zu automatisieren zur Herstellung dieser Zellen.
Wir werden nicht ganz bis zu dem Punkt zu erhalten in der Lage, sie alle zusammen.
Aber wir werden versuchen, das zu automatisieren Prozess der Erzeugung dieser Sequenz.
>> Und das ist viel von dem, was Animation ist heute wie.
Das heißt, Sie müssen nicht unbedingt die Dinge zu tun indem alles von Hand.
Wir verwenden einen Computer zu automatisieren Teile dieses Prozesses.
OK.
>> Also lassen Sie mich umschalten jetzt zu unserem CS50 IDE.
Und ich habe für us-- und lassen Sie erstellt mich heranzoomen hier ein wenig bit-- Ich habe
für uns geschaffen ein Ausgangspunkt.
>> Jedes Mal, wenn wir Sie bitten, sitzen hin und schreibe ein Stück Code,
was wir wirklich fragen, was Sie tun wird fragen wir, um ein Problem zu lösen.
Und die Art und Weise, dass Sie denken Sie tun
ist ausgehend von einigen einfache Teil dieser Lösung.
Und erstellen Sie dann aus diesem Teil.
Und das ist, was wir heute tun.
>> Also anstatt auf einmal versuchen, alle zu schreiben Sie den ganzen Haufen von Code, der ist
gehen, um diejenigen zu produzieren 10 Animation-Zellen,
wir gehen anstatt zu starten mit einem Stück, das funktioniert.
Und dann werden wir ein zu bauen etwas um, dass
und ein wenig mehr und ein wenig mehr.
>> Nun ist die gute Sache über Lösung von Problemen auf diese Weise
ist, dass es erlaubt Ihnen, zu starten immer mit etwas, das Sie wissen,
arbeitet und die Einführung einer allmählichen Wandel.
Und das ist ein guter Weg, lernen, wie man kodieren,
weil jedes Mal, wenn Sie eine Änderung sehen Sie, welche Auswirkungen es hat.
OK.
>> Also hier ist unser Ausgangspunkt.
OK.
Also am Anfang meiner Datei, Ich habe Hash #include stdio.h.
Das ist so, dass ich das bekommen Funktion printf (), um zu arbeiten.
>> Ich habe dann habe ich meine Hauptaufgabe.
Und dies immer noch ein wenig aussieht arkanen oder dunkel, einige von Ihnen.
Das ist ok.
Alles, was sie sagt, ist, dass die Hauptfunktion übernimmt
kein arguments-- nichtig Mittel nichts C. Und es
Rendite durch Konvention eine ganze Zahl.
Haupt immer einen Integer zurückgibt, in der Regel ein Code, Dinge zu sagen
ging gut oder nicht gut gehen.
OK.
Aber Haupt muss, dass haben bilden für uns jetzt.
>> Ich habe dann in drei Codezeilen setzen.
Und mit jeder Zeile Code, ich habe einen Kommentar zu setzen.
Jetzt ist einer der Dinge, wir werden darauf bestehen, dass Sie das tun,
und es ist so ein wichtiger Programmierpraxis,
ist es, immer Ihren Code zu kommentieren.
Notieren Sie immer in eine Englisch Kommentar etwas
dass Sie denken, die Code tun soll.
Auf diese Weise, später, wenn Sie zurück zu kommen, es kann man es auch dreht und man kann sagen,
oh, ich erinnere mich, was ich war, versuchen, damit zu tun.
Oder wenn eine TA setzt sich mit Ihnen, versuchen, Sie zu Bürozeiten zu helfen,
sie dies zu betrachten und gehen können, ich sehen, was Sie versuchen zu tun,
sondern dies was wirklich passiert.
OK.
>> Also habe ich drei Teilen, meinen Code zu bekommen, Ich bin zum ersten aller Druck gehen
aus einigen Punkten an den Start.
Ich werde dann drucken Sie meinen extrem extravagant bunny.
Und dann einige Bit von Punkten am Ende.
>> Und diese drei Druck Aussagen sollten bekannt vor an dieser Stelle.
Alles, was ich bin dabei jeder von ihnen ist mir
Drucken einer Folge von Zeichen.
Es gibt keine Variablen beteiligt.
Alles ist nur flach.
OK.
>> Also, wenn ich nach unten gehen jetzt zu meinem terminal-- mal sehen, ob ich diese wieder out--
und ich werde erneut eingeben klar.
>> Lautsprecher 20: Verwenden wir die Doppel-Schrägstrich einen Kommentar abgeben?
BRIAN Scassellati: Dose verwenden Sie die double-- ja.
Es gibt mehrere Möglichkeiten, Kommentare zu hinterlassen in C. Ein
Weg ist die Doppelstrich verwendet werden.
Die andere ist, einen Schrägstrich und einen Stern verwenden und schließen Sie dann mit einem Sternchen und einem Schrägstrich.
Gut.
>> Zunächst einmal, ich bin zu gehen Navigation beginnen hier in der Nähe.
Also, wenn ich zu meinem Home-Verzeichnis, Ich habe Verzeichnisse dort geändert,
Ich werde schauen und sehen, was ist in diesem Verzeichnis, ls, listet.
Ich werde sehen, dass ich bekam zwei Unterverzeichnisse.
Lassen Sie uns dies ein wenig größer Hier, so dass wir alle können es sehen.
>> Ich kann sehen, dass ich bekam zwei Unterverzeichnisse.
Ich werde Verzeichnis wechseln in Arbeitsbereich zu gehen.
Und ich werde nur tippen ein Teil davon, und dann drücken Sie einfach Tab.
Und es wird den Rest für mich abzuschließen.
Fancy.
>> Ich werde schauen und sehen, im Arbeitsbereich.
Und gerade jetzt, ich arbeite auf der SuperSection
dass wir jetzt unterrichten.
Also werde ich in dieses Verzeichnis zu gehen.
Und schließlich, schauen und sehen.
Und ich habe diese Datei bunny.c bekam.
>> Na gut, so lassen Sie mich noch einmal deutlich.
Und ich werde wieder Ich bin now-- noch bleiben in diesem Verzeichnis
und es sagt mir, ich bin in dass SuperSection Verzeichnis.
Ich werde weitermachen und mein Programm bunny.
Und das Kommando, stellen bunny, während er ertönt ein wenig seltsam,
Auch ruft den Klang-Compiler.
>> Und es ist für produziert mir einem Ausgang, ist
eine ausführbare funny-- ein ausführbare Datei namens Hase.
OK.
Ich kann dann, und das klingt noch schlimmer, führen bunny.
OK.
Und mal sehen, was es tut.
OK.
Das ist ein bisschen was ich erwartet hatte.
Ich habe mein Hase Bild in dort ankam, aber ich Art von wollte alles von alleine.
Was habe ich verpasst?
>> Lautsprecher 21: Slash oder Schrägstrich l n.
BRIAN Scassellati: Slash n.
OK.
Also lassen Sie uns gehen Sie zurück hier.
Und ich werde aus, dass zu bekommen.
Und ich werde in diesem zurück.
Und lassen Sie uns einen Blick jetzt von hier aus meine Hauptaufgabe.
>> Also was soll ich tun?
Ich möchte, um die Linie zu beenden.
Also werde ich in einem Kommentar setzen.
Ich werde in einem printf setzen ().
Und was muss ich in setzen?
/ n.
OK.
Was muss ich tun, um ihn mit zu beenden?
Semikolon.
Gut.
>> Nun, einer der wirklich wichtigsten Dinge ist, stellen Sie sicher,
jedes Mal, wenn Sie eine Änderung vornehmen im Code, dass Sie sie zu speichern.
Wenn Sie Ihren Code nicht gespeichert haben, sind Sie gehen, um einen kleinen Stern da oben bemerken.
Und das sagt, dass Sie Sterne nicht diesen Code gespeichert.
>> Wenn ich jetzt kompilieren Sie es, es ist nicht gehen, um jede dieser Änderungen zu berücksichtigen,
weil der Compiler schaut auf die Datei das ist auf der Festplatte, nicht die Datei, die ist
Öffnen Sie in Ihrem Editor.
Gut.
>> Also lassen Sie speichern und dann gehen wir direkt am hier unten, kommen zurück.
Kommen Sie zu meinem Terminal.
Und lassen Sie uns klar den Raum wieder.
>> Und wir können Sie voran und eine weitere zu gehen Zeit machen unsere bunny-Programm.
Und führen Sie das Häschen.
Das hat nicht funktioniert entweder.
Falsche Schrägstrich.
Also, wenn Sie auf das, was ich muss schauen, habe ich ein / n drin, aber ich hatte die falsche Schrägstrich.
>> Alles, was Sie Ihren Computer tut, ist sehr explizit.
OK?
Ein kleiner Fehler, Satzzeichen und plötzlich Sie nicht bekommen, was Sie wollen.
Gut.
Lassen Sie uns also heranzoomen wieder heraus.
Wir kommen wieder zu gehen.
Nun machen, dass sehr schnell reparieren.
Wir werden die richtige Schrägstrich in.
Wir werden es zu speichern.
Wir werden in heranzoomen.
>> Aus irgendeinem Grund, das ist nicht glücklich zu sein, aber lassen Sie uns weitermachen
und wir werden hier wieder an das Terminal zu gehen.
Deaktivieren Sie es.
Wir vergrößern.
Und noch einmal, wir bunny zu machen.
Und jetzt sicher genug, es funktioniert.
Hooray.
OK.
>> Also lassen Sie uns versuchen, dies zu machen, ein wenig mehr allgemein.
Mal sehen, ob statt nur Drucken eines bestimmten Rahmens,
mal sehen, ob wir das machen können so dass wir alle 10 erhalten
dieser animierte Frames wir haben wollten.
Also noch einmal, lassen Sie uns einen Schritt zu einer Zeit.
>> Lassen Sie uns zunächst verallgemeinern, nicht , so dass ich alle Bilder,
aber so dass ich irgendeine tun Rahmen, die ich wünschen konnte.
Also, was ist der Unterschied zwischen den Rahmen?
Ist der Hase das gleiche?
Publikum: Ja.
BRIAN Scassellati: Ja.
Was ist der Unterschied?
>> ZIELGRUPPE: Position.
BRIAN Scassellati: Seine Lage, nicht wahr?
Und wie kann ich steuern ihre Position?
Wie viele Punkte ich indem zu Beginn
und wie viele Punkte ich Putting am Ende.
Also musste ich fünf bei der beginnend und fünf am Ende.
>> Lassen Sie uns zu ersetzen, das fünf mit einer for-Schleife.
OK.
Und ich werde eine für erstellen Schleife jetzt, sagen wird,
Ich werde einige Nummer drucken von Punkten am Anfang.
Ich gehe, um eine Variable zu verwenden.
Lassen Sie uns sagen, wie wäre ich als der Zähler in meiner Schleife.
Und ich werde es erklären, bis oben.
>> Und dann in die for-Schleife Ich brauche drei Dinge tun.
Das erste, was ich tun müssen, ist ich, um i zu initialisieren.
Was soll ich zu initialisieren sie beginnen zu sein?
0.
OK.
>> Dann muss ich sagen, was ist die Abbruchbedingung?
Wann sollte ich aufhören?
Nun, wie viele Punkte Sie haben möchte auf diesem drucken?
>> Publikum: Fünf.
BRIAN Scassellati: Fünf wieder?
Wie wäre es mit etwas tun lassen anders, wir haben fünf.
Lassen Sie uns zeigen, dass es anders ist.
Lautsprecher 22: Zwei.
BRIAN Scassellati: Zwei.
OK.
Also, wenn ich zwei Punkte, Was soll ich hier?
>> ZIELGRUPPE: Drei.
>> BRIAN Scassellati: Drei.
OK.
Wie viele Male ist, dass gehen, um durch zu gehen?
Das wird zu durchlaufen dreimal, 0, 1, und 2, oder?
Alles klar, lass uns gehen zurück auf zwei.
Jetzt werden wir zwei Punkte zu bekommen.
Und was will ich jedes tun Mal, wenn ich durch die Schleife zu gehen?
Was muss sich ändern jedes Mal, wenn ich durchmachen?
>> SPEAKER 23: Fügen Sie einen Punkt.
>> BRIAN Scassellati: Ich habe, um weiterzumachen.
Ich gehe, um einen Punkt hinzuzufügen.
Ich gehe, um einen Punkt zu drucken, jedes Mal durch die Schleife.
Aber wie soll ich die Verfolgung, wie viele Male habe ich durch die Schleife gewesen?
Ich verwende ich, dass variable, daß Zähler.
>> Also jedes Mal durch, ich werde um den Zähler um eins zu erhöhen.
Nun, das ist die gleiche für mich mit den Worten: i = i + 1.
Das ist ok.
Ich könnte es tun dass-- Ich mag die Kurzschrift, so werde ich sagen, i ++.
OK.
>> Lassen Sie uns das gleiche tun hier unten an der Unterseite.
Nur ich irgendwie tat, dass man.
Ich werde euch lassen tun diese eine komplett.
Gut.
>> Also, was soll ich hier schreiben?
Hier ist mein for-Schleife.
Ich werde eine printf (tun), und ich bin dabei um es zu machen, so dass ich einen Punkt zu drucken nur
auf diesem Boden.
>> Was soll ich schreiben innerhalb dieser for-Schleife ist jetzt?
Nun, zunächst einmal, was Variablen soll ich verwenden?
>> Lautsprecher 24: j.
>> BRIAN Scassellati: Ich konnte j zu verwenden.
Kann ich dieselbe verwenden?
Kann ich ich wieder?
Ja.
Das ist in Ordnung, denn der Is dass ich hier mit bis,
Ich weiß es nicht zurück, wenn brauchen Ich bekomme bis zu diesem Punkt.
>> Also, was soll ich zu initialisieren ich?
SPEAKER 25: 10.
BRIAN Scassellati: 0.
Was muss ich überprüfen?
Wie viele Punkte brauche ich jetzt am Ende wenn ich zwei Punkte am Anfang stand?
Ich brauche acht am Ende, so was sollte ich prüfen, i kleiner than--
>> ZIELGRUPPE: Sieben, acht, neun.
BRIAN Scassellati: Ich habe gehört, sieben.
Ich hörte acht.
Und ich hörte neun.
OK.
So sind wir alle in die richtige ball-- Jason sagt, 10.
OK.
>> Wenn ich brauchte zwei Punkte für die erste, wie viele tun
I-- und ich brauche, acht Punkte für die letzten one-- ich ein zwei oben,
was soll ich da unten?
>> ZIELGRUPPE: Acht.
>> BRIAN Scassellati: Acht.
Denn das ist, zu gehen zählen null bis sieben.
Und das ist acht Mal durch die Schleife.
OK.
Und was muss ich am Ende tun?
>> ZIELGRUPPE: i ++.
>> BRIAN Scassellati: i ++.
Gut.
Also das ist, es sieht ziemlich gut.
Versuchen wir es und lassen Sie uns sehen, was es tut.
OK.
Wir werden also, um es zu retten.
Nizza und gespeichert.
>> Wir werden herausheranzoomen.
Wir werden hier in der Klemme zu versuchen.
Wir vergrößern.
Oops.
Wir werden, ein weiteres Mal, machen unsere bunny-Programm.
Und gehen Sie vor und führen bunny.
Und da ist es.
>> Also gibt es unsere bunny.
Wo es zwei Punkte zu Beginn und acht Punkte am Ende.
Jeder noch bei mir?
OK.
>> So bauten wir es auf.
Wir bauten ein Hase, einem bestimmten Rahmen.
Jetzt waren wir in der Lage sein verallgemeinern, dass zu bauen
mehr, verschiedene Arten von Frames.
>> Lassen Sie uns jetzt gehen Sie vor und haben Sie erzeugen nicht nur ein Einzelbild,
aber lassen Sie erzeugen 10 Rahmen, wo wir langsam
machen den bunny bewegen der Weg über das Feld.
Gut.
>> Lass uns zurück gehen.
Und wir werden jetzt versuchen.
Also, was ich wirklich brauchen, um hier zu ändern?
Was muss ich ändern?
>> Lautsprecher 26: Sie müssen zuerst ändern Sie die Anzahl der Punkte maximaler
am Anfang.
Denn wenn wir tun, 10 Punkte, es geht um bis zu skalieren müssen.
BRIAN Scassellati: Ja.
So jetzt habe ich es irgendwie fest verdrahtet immer tun, zwei Punkte zu Beginn
und immer tun, acht Punkte am Ende.
>> Ich möchte eine weitere Schleife zu bauen, nicht wahr?
Weil ich nicht möchte bauen nur ein Hase Bild,
Ich möchte 10 Hasenbilder zu bauen.
Also muss ich eine weitere Schleife zu bauen, und als ich durch diese Schleife zu gehen,
I zu ändern, wie viele wollen dots ich am Anfang zu drucken
und wie viele Punkte ich am Ende zu drucken, basierend auf dem Zyklus durch die Schleife
Ich bin dabei.
Gut.
>> Lassen Sie uns also einen weiteren Zähler.
Jemand, bevor die j, so dass wir einen weiteren j zu machen.
Und jetzt sind wir zu gehen bauen ein weiteres for-Schleife.
>> Was geht innerhalb dieser Schleife?
Das Zeug muss gehen innerhalb der Schleife, oder?
Hat der Hase haben um innerhalb der Schleife zu gehen?
Brauche ich ein Häschen in jede dieser 10 Frames?
>> ZIELGRUPPE: Aha.
BRIAN Scassellati: Ja.
Ich möchte ein Häschen in jedem der 10 Frames, nicht wahr?
Wie über die Punkte an das Ende ist, brauche ich das?
OK.
>> Also werde ich auf alle von ihnen einrücken.
Ich werde alle markieren das, und ich werde Tab getroffen.
Und das wird sie überall schieben ein wenig, so dass es einfach für mich
zu sehen, was in der Schleife.
Und dann werde ich sie zu beenden.
Sagen wir.
OK?
>> Nun wird in diesem Schleife, Ich bin building-- hoppla,
machen, dass, so dass Sie see-- können Ich habe meinen Zähler j bekam.
Ich werde es bei 0 gestartet.
Wie oft möchte ich um durch diese Schleife zu gehen?
ZIELGRUPPE: 10 mal.
BRIAN Scassellati: 10 mal.
Also, was soll ich sagen Nummer hier?
>> ZIELGRUPPE: 9, 10.
>> Brian Scassellati: 9, 10, Jemand muss sagen, 11, nicht wahr?
Ich wollte vor zwei Punkte und legte i weniger als 2.
Ich wollte acht Punkte, Ich lege ich weniger als 8.
Jetzt möchte ich über 10 gehen Zeiten, so dass ich j weniger than--
>> ZIELGRUPPE: 10.
>> BRIAN Scassellati: 10.
Da gehen wir.
Und was kann ich tun, um am Ende j?
++, Erhöhe ihn.
OK.
Nun, hier ist der schwierige Teil, was ist gehen, um gerade jetzt, wenn ich dies tun, geschehen?
Werde ich 10 Bilder drucken?
Lautsprecher 27: Ich denke, sie werden alle die gleichen sein.
BRIAN Scassellati: Sie werden alle gleich sein, oder?
Da alle von ihnen sind immer noch zwei Punkte an den Anfang.
Aber ich will nicht, dass sie alle auf haben zwei Punkte der Anfang.
Wie viele Punkte ich möchte zu Beginn?
>> ZIELGRUPPE: Ändern.
>> BRIAN Scassellati: I wollen, dass es zu ändern, oder?
So was habe ich hier, dass eine Änderung ist jedes Mal, wenn die Schleife durchläuft?
>> ZIELGRUPPE: Anzahl der Punkte, j.
BRIAN Scassellati: j, die Anzahl von Punkten.
So kann ich das ändern, um j sein.
Das erste Mal durch die Schleife, was ist das sein wird?
Was kann ich j auf den ersten?
>> ZIELGRUPPE: 0.
>> BRIAN Scassellati: Also, wie viele Mal werde ich das tun?
0.
Das zweite Mal durch die Schleife, j ist gehen zu 1 sein, weil ich erhöhe ihn.
Wie viele Punkte werde ich drucken?
1.
Zum dritten Mal durch die Schleife, wie viele Punkte werde ich drucken?
>> ZIELGRUPPE: Drei.
BRIAN Scassellati: j wird zu 3 sein.
Wie viele Punkte werde ich drucken?
Oh, sorry, j geht um 2 sein.
Wie viele Punkte werde ich drucken?
>> ZIELGRUPPE: 2.
>> BRIAN Scassellati: 2.
OK, so werde ich zu halten Erhöhen, dass, wie wir gehen.
Wie wäre es da unten?
Was geht hier ab?
Ich will nicht immer 8 am Ende nicht mehr?
>> Lautsprecher 28: 10.
BRIAN Scassellati: Ich möchte 10 Punkte?
Ich will es zu ändern, auch.
So, wie ich es will zu ändern?
>> ZIELGRUPPE: [unverständlich].
BRIAN Scassellati: Nun, wenn ich fünf Punkte am Anfang,
wie viele dot ist bekomme ich am Ende?
>> Publikum: Fünf.
>> BRIAN Scassellati: Wenn ich sechs Punkte am Anfang,
wie viele kann ich am Ende zu bekommen?
ZIELGRUPPE: Vier.
BRIAN Scassellati: Wenn ich sieben Punkte am Anfang,
wie viele kann ich am Ende zu bekommen?
ZIELGRUPPE: Drei.
BRIAN Scassellati: Wenn ich bekam J Punkten am Anfang,
wie viele kann ich am Ende zu bekommen?
10-j.
OK.
Also lassen Sie uns versuchen, dass aus.
>> Also werde ich unsere bunny Programm zu speichern.
Wieder einmal werden wir zu verkleinern.
Wir gehen zu unserem Terminal.
Wir werden es zu deaktivieren.
Und zoomen.
Wir werden unsere bunny-Programm zu machen, noch einmal.
Und wir werden sie auszuführen.
UH Oh.
>> Hold on, den verkleinern lassen.
Habe ich 10 Frames?
Nun, wie viele Hasen sehe ich da oben?
1, 2, 3, 4, 5, 6, 7, 8, 9, 10.
Ich habe 10 Bilder.
Sind sie alle gleich?
ZIELGRUPPE: Ja.
Nein.
>> BRIAN Scassellati: Nein
Das erste, das Hase ist weit auf der linken Seite.
Und hier ist der Hase weit über die
SPEAKER 29: Richtig.
BRIAN Scassellati: So, was habe ich vergessen, zu tun?
Lautsprecher 30: Neue Zeile beginnen.
BRIAN Scassellati: Ich habe vergessen um eine neue Zeile zu beginnen, wieder.
Gleichen Fehler habe ich vor.
Also gut, gehen wir das beheben.
Nun, ich habe immer noch den Code bekommen dort eine neue Linie zu machen.
Warum hat es nicht funktioniert?
SPEAKER 31: Es ist nicht in der Schleife.
BRIAN Scassellati: Oh, es ist nicht in der Schleife.
Das ist richtig.
Es ist draußen sitzen hier.
Und die for-Schleife ist alles das ist innerhalb dieses Textes.
>> Also werde ich zu bewegen diese innerhalb der for-Schleife.
Und ich werde Tab davor zu zeigen, dass es an der richtigen Stelle.
Und nun werden wir es erneut zu speichern.
Wir werden zu verkleinern.
Wir werden über unsere Terminal zu wechseln.
Hineinzoomen.
Wir werden unsere bunny Programm Remake.
Und jetzt, jetzt haben wir unseren 10 Frames bekamen.
>> [KLATSCH]
>> BRIAN Scassellati: OK.
Also.
Hier ist unsere for-Schleifen verschachtelt.
Wir konnten in das Erzeugungs innere Schleife, wie viele Punkte ich wollte
zu Beginn zu drucken, am Ende.
Und der äußere Regelkreis geregelt wie viele Bilder ich bauen.
Wir begannen mit einem kleinen Kern des Problems
und wir von diesem Punkt errichtet.
Gut.
>> Machen wir einen Schritt weiter.
Bereit?
Es ist eine Sache, in denen hier wir haben eigentlich ganz bekam
mehr Komplexität als wir brauchen.
Lass uns einen Blick darauf werfen.
Also in unserem bunny Programm, wenn ich hier herauszoomen,
Ich tatsächlich tun etwas von dem gleichen Sache immer und immer wieder.
Was muss ich tun, dass ist eine Art die gleiche Sache zweimal wiederholt?
>> Lautsprecher 32: Drucken Sie die Punkte.
>> BRIAN Scassellati: Ja Drucke ich zweimal jene Punkte.
Wirklich, ich haben sollte Diesen Kommentar hier unten.
Drucke ich ein paar Punkte an den beginnend, bis hier.
Und dann habe ich einige Punkte am Ende zu drucken.
Und ich glaube Art von genau dasselbe.
Was werden wir beginnen Arbeiten an in den nächsten Wochen
ist in der Lage, diese Blöcke zu nehmen Code, den wir wieder verwenden immer und immer,
und durch ein Verfahren genannte Abstraktion,
wir werden sie herauszuziehen und einmal schreiben sie, so dass wir dann
wiederverwenden, immer und immer wieder.
Also lassen Sie uns versuchen, dass.
Bereit?
>> Wir werden dieses Code-Block zu nehmen.
Und ich werde es von dort nehmen.
Und ich werde define-- unten an der Unterseite,
Ich werde eine neue Funktion zu schreiben.
Es wird nicht, irgendetwas zurück.
Und ich werde es nennen printDots.
>> Das wird man nehmen Argument, eine ganze Zahl,
sagt howManyDots ich drucken sollte.
Und nun, anstatt Druck j Punkte, werde ich drucken weiterempfehlen howManyDots ich drucken sollte.
>> Und es gibt ein kleines Problem hier.
Jeder weiß, was es ist?
Was muss ich tun, dass ist aufgeführt hier das ist nicht definiert?
>> ZIELGRUPPE: [unverständlich]
>> BRIAN Scassellati: Nun, wie viele Punkte wird bis definierten
hier, aber ich bin mit, dass die Variable i.
Also werde ich diese Variable nehmen i und ich werde es in hier definieren,
statt.
>> So, jetzt, es wird stay-- oops, habe die Feststelltaste auf somehow-- Ich bin
werde ich hier zu halten.
>> So, jetzt hier ist meine kleine Funktion oder Unterprogramm, und es sagt,
wie viele Punkte werde ich drucken?
Und es wird durch diese Schleife zu gehen und drucken Sie sie immer und immer wieder.
>> Dann kann ich mein Programm ändern, hier oben.
Und was habe ich nennen diese Funktion?
printDots.
Also werde ich printDots nennen.
Wie viele Punkte will ich drucken das erste Mal vor der Hase?
ZIELGRUPPE: j.
BRIAN Scassellati: j.
Wie viele Punkte will ich drucken am Ende, nach der Hase?
10-j.
>> Und es gibt eine Sache, ich fehle.
Wie Sie heute in der Vorlesung gesehen, wir werden printDots erklären
bis oben, um den Prototyp zu geben.
OK.
>> Also, was ich getan habe ist, ich habe auf versuchten zu isolieren, die wiederverwendet Teil des Codes
dass ich immer und immer wieder getan.
Und ich habe versucht, ihn herauszuziehen, so dass All das ist in einem Ort enthalten.
So, wenn ich irgendwo einen Fehler haben, Ich habe nur, um es an einer Stelle zu fixieren.
Gut.
>> Also lassen Sie es speichern.
Und lassen Sie uns sicherstellen, dass es funktioniert.
Also lassen Sie uns gehen.
Wir sehen uns wieder zu unserem Terminal gehen.
Wir vergrößern.
Wir werden diese bunny Prozess zu machen.
>> Oh.
Und es ist mir eine Warnung gegeben.
Wie ist es mir sagen?
Nun, in einer dieser Zeiten, Sie wollen immer
um zum ersten error-- nach oben Jetzt auf diesen einen, habe ich nur noch eins.
>> Es sagt mir, in bunny.c, on line 8, Spalte 9, gibt es ein Problem.
Es heißt, Sie dies erklärt habe Variable i und Sie haben es nicht genutzt haben.
>> Jetzt in der Regel, das ist, nicht das schlimmste Fehler.
Das ist ganz leicht zu beheben.
Und in der Tat, können wir wieder gehen.
Wir können gehen Sie zurück zu Bunny.
Und in diesem Fall ist alles, was wir zu tun haben, wird der i loszuwerden,
weil wir sie nicht verwenden i im Haupt mehr.
Wir sind nur Sie es innerhalb unserer Unterroutine.
>> Lassen Sie uns also zu speichern, dass.
Wir kommen wieder zu gehen.
Und zoomen.
Wir werden noch einmal machen bunny.
Und wieder sind unsere 10 Frames.
OK.
>> Jedes Mal, wenn Sie gegeben sind a procedure-- Ja.
Lautsprecher 33: Ich habe a-- Ich bin verwirrt.
Können Sie sich zurück in die Code gehen?
BRIAN Scassellati: Yep.
>> Lautsprecher 33: Also, wenn Sie schrieb Ihre Prototypen, das Argument, die Sie
hatte es benannt wurde howMany genannt?
Aber below--
>> BRIAN Scassellati: Oh ja.
>> Lautsprecher 33: --called ihnen etwas anders, die ich nicht verstehe.
>> BRIAN Scassellati: Warum sie sind verschieden.
Also das ist eine gute Frage.
So war die Frage, bis Hier schrieb ich howMany,
und unten, schrieb ich howManyDots.
>> Der Grund dafür ist, dass sich in Ihrem Prototyp, es ist eigentlich nicht aufgepasst
auf die Namen, die Sie in setzen sind.
Alles, was es wirklich etwas an ist, dass es eine ganze Zahl ist.
Es will das Formular wissen von dem, was Sie in setzen sind.
>> Jetzt stylistically-- oops-- was ich Sie wird Ich mag diese Spiel zu machen.
OK.
Denn das halte es werden einfacher für mich zu erinnern.
Aber das war mein Fehler Ja.
>> Lautsprecher 34: Und so für die Prototypen zu arbeiten, gerade
Schreiben Sie diese Zeile, Schreiben des Prototyps,
ermöglicht diese Funktion, das kommt direkt darunter, bis zum Ende zu gehen
und abrufen, was das bedeutet?
>> BRIAN Scassellati: Was es bedeutet, ist, wenn der Compiler durchläuft,
es geht von der Spitze Ihr Code auf den Grund.
Und was ist dieser Prototyp ist, ist es im Grunde ein Versprechen.
>> Er sagt, es geht um sein eine Funktion irgendwo definiert.
Es wird aufgerufen printDots sein.
Und es geht um ein Argument zu nehmen das wird eine ganze Zahl sein
und es wird zurück Nichts, Leere-Typ.
OK.
Ich verspreche Ihnen, es wird sein, irgendwo auf der Straße festgelegt.
Aber jedes Mal, wenn Sie sehen, dass, wie Sie unten gehen
durch den Rest meines Hauptfunktion, möchte ich
Sie, dass in Abhängigkeit zu behandeln , dass dauert eine ganze Zahl Eingang.
>> Und so, wenn der Compiler untergeht Dadurch sieht es dieses Versprechen.
Und wenn es nach unten bekommt, läuft weiter, läuft weiter,
es das erste Mal fest, printDots erwähnt.
Und er sagt, Oh, du gibst mir dieses j. j ist eine ganze Zahl.
>> Nun, du hast mir versprochen, das wäre eine ganze Zahl sein, und das ist richtig.
Das ist ok.
Und dann endlich, nach unten ganz unten,
bevor ich zum Ende der meine Datei, ich gut auf mein Versprechen zu machen
und ich definieren.
OK?
>> SPEAKER 35: So, saves-- es der Programm Leerzeichen sparen
dass es geht zurück und füllt am Ende?
>> BRIAN Scassellati: Es ist nicht über die Speicherzuweisung.
Es ist eigentlich nur darum, was Art erwarten Sie, um zu sehen.
Sollte dieses Ding haben ein Argument oder fünf Argumente?
Sollte es ganze Zahlen sein um es, oder Zeichenketten gegeben?
Das ist alles, es ist auf der Suche zu tun ist, um zu prüfen,
werden Sie mir das geben richtige Art von Argument.
OK?
Gut.
>> Lassen Sie mich Ihnen zu verlassen einem anderen etwas, zu betrachten.
ASCII-Kunst ist nicht das große Vorbild der Animation wie es heute ist.
Aber einige Leute natürlich nehmen die Dinge und schieben sie es ihren Extremen.
>> Dies ist, wie gezeigt, David in Vortrag, ein Stück Code
dass Sie sollten unter keinen Umständen versuchen, sich selbst zu duplizieren.
Denn es ist schrecklich stilistisch.
In der Tat ist es so konzipiert, dass schwer wie möglich zu lesen.
OK.
>> Also, um wieder zu tun, lassen Sie vergrößern hier.
Ich werde jetzt gehen, Verzeichnis wechseln.
Ich werde gehen bis eine Ebene zurück zu meinem Arbeitsbereich.
Ich werde dann Verzeichnis zu wechseln, in diesem anderen Verzeichnis, das ich erstellt habe.
>> Und das ist das Internationale Obfuscated C Programming Contest.
Verschleiert Mittel so hart wie möglich zu verstehen.
Also bitte, keine Angst, wenn Sie schauen in diesem und gehen, kann ich nicht lesen, dass.
Das ist der Punkt davon.
OK?
>> Aber, dieses müssen wir wunderbares Programm, das bin ich
in Zukunft an durch einfaches Eintippen mehr zu suchen.
Und lassen Sie uns sehen, ob ich verkleinern nur ein bisschen, damit Sie es sehen
>> Und das ist das Programm.
Es endo.c. benannt
Und es sieht so aus Eimer mit Art der Buchstaben F-L-U-I-D in ihm.
>> Dies ist eigentlich ein Programm.
Es ist in der dunkelsten geschrieben Weise, dass die Autoren möglicherweise
Schreib es.
Aber es ist ein wundervolles kleines Stück, erzeugt ein Modell der Fluiddynamik.
>> Und so werden wir geben, dieses Modell einen Eingang,
sieht so aus, der ein staired von Behältern eingestellt
mit etwas Flüssigkeit, einige Flüssigkeit an der Spitze.
Und wir haben es zu simulieren was um sie geschieht.
>> Also werde ich diese Funktion aufrufen, Endo.
Und ich werde es geben, die Eingabedatei, die ich je hatte.
Und es ist unsere Inbegriff von ASCII-Kunst.
Eine vollständige Fluiddynamiksimulator in nur wenigen Zeilen Code ausgeführt wird.
>> Nun, was ist eigentlich wirklich amazing über dieses kleine Programm
ist, dass ich möchte es jetzt aufhören, so werde ich in welchem ​​Befehl verwenden?
>> ZIELGRUPPE: Strg-C.
>> BRIAN Scassellati: Strg-C. OK.
Also werde ich Strg-C zu verwenden. C Das wird es zu stoppen.
Ich werde wieder zu löschen.
Und jetzt werde ich das Aufrufen Programm, führen Sie das Programm,
Verwendung selbst als Eingabe.
>> Und wir erledigen den fluiddynamischen sehen Simulation der es schmilzt.
OK.
Bitte lassen Sie sich nicht dieses Programm ist die Sache, die Sie verwirrt.
Es ist einfach so, dass wir am Ende auf etwas Cooles und interessant.
OK.
>> Viel Glück mit Ihrem Problem-Sets.
Wir sind glücklich, zu beantworten Fragen nach dem Unterricht.
Vielen Dank, Jungs.