ALLISON BUCHHOLTZ-AU: Hey, jeder.
Willkommen in Abschnitt.
Heute ist gerade dabei, alle Quiz sein Meinung für Ihr Quiz am Mittwoch.
Ich hoffe, jeder erinnert sich, dass sie haben ein Quiz am Mittwoch.
Und wenn Sie nicht, na ja, jetzt hast du erinnert worden.
Also Mittwoch stellen Sie sicher, die zeigen, für die Klasse oder andere Unterkünfte als
notwendig.
Euch gehen, fantastisch zu sein.
Es wird großartig sein.
Und ich werde alles tun, zu helfen, heute machen Sie fit für Ihr Quiz
jetzt.
Und auch im Fall, dass Sie nicht wissen, gibt es einen Kurs breiten Prüfungssitzung
Heute um 07.00 Uhr in Northwest Labors Raum B103.
Sie können mich wieder zu sehen nach einer Zugabe als Ich werde an dieser Überprüfung Sitzung führen
auch.
Also, wenn Sie nicht genug von mir bekommen können Jetzt können Sie wieder kommen kann heute Abend.
>> Alles in Ordnung, so das Wichtigste zuerst.
Nur ein paar Quiz Tipps, bevor wir tatsächlich tauchen in den Bewertungen.
So wie bei jeder Prüfung, Praxis wird definitiv helfen Ihnen heraus.
Es gibt Prüfungen aus der Vergangenheit sechs oder sieben Jahre dort,
so dass eine Menge Praxis Material für euch zu haben.
Und in der Tat, heute ist wirklich nur werde über beliebige Themen gehen
dass euch Fragen über als gut als Arbeitszeit durch Praxis Probleme
von Quiz Null.
Also werde ich kotzen Quiz Null vom letzten Jahr hier,
und wir können durch irgendwelche Probleme zu arbeiten dass euch möchte.
>> So üben.
Du wirst anfangen zu tun, dass heute.
Code auf dem Papier.
Also ja, wenn jeder könnte tatsächlich raus
Papier, das wird großartig sein, weil du nicht bist
auf Ihren Computer auf die haben Prüfung und Schreiben von Code mit der Hand
ist oft viel schwieriger als Sie vielleicht erwarten.
Sie sind nur verwendet sehen es und geben es,
und Sie Ihren Compiler haben hilft Ihnen, wenn Sie Fehler haben,
aber Sie nicht bekommen, dass in der Prüfung.
Also ist es eigentlich wirklich wichtig in der Lage zu schreiben, den Code,
und Muskelgedächtnis zu tun es mit der Hand wird wirklich helfen.
>> So bekommen wir ein wenig in der Nähe.
Es ist Montag.
Ihre Prüfung ist am Mittwoch.
Aber wenn Sie Zeit haben, auf jeden Fall ein
der Prüfungen aus dem letzten Jahr oder die Jahr vor unter der Zeitvorgabe
von einer Stunde und eine Hälfte.
Nur knock out eine Stunde und die Hälfte der Zeit,
und setz dich hinab, und nur durch die Probleme zu arbeiten
als ob Sie tatsächlich waren Nehmen oder weil man
der größten Dinge, die wir hören die Quizfragen ist, dass sie sehr lang sind.
Es ist eine Menge von Material.
Es gibt eine Vielzahl von Fragen, und die meisten Menschen können nicht zu Ende.
Ich weiß, dass ich total nicht zu Ende mein Quiz, als ich die Klasse.
>> In diesem Sinne, als eine weniger komfortable Abschnitt
verstehen, dass dieser Kurs soll für Menschen auf allen Ebenen gerecht zu werden.
Der ganze Grund haben wir Ihnen geteilt weniger komfortabel, irgendwo zwischen,
und bequemer ist, Art machen es fair.
Und wenn Sie weniger bequem sind, ist es nicht per se notwendig, um alles zu bekommen.
Wie, wenn Sie einließen alles würde Sie wahrscheinlich
sein in der komfortableren Seite.
So offensichtlich nicht schlagen Sie sich bis zu hart, wenn Sie die Prüfung nicht beenden.
Nehmen Sie es von mir, ich habe es nicht getan.
Ich bin immer noch ein Konzentrator.
Ich bin immer noch die Unterstützung der Kurs zu unterrichten.
Alles wird gut.
In Ordnung.
Und schließlich, etwas zu schlafen.
Offensichtlich mit jeder Prüfung wir immer sagen.
Pauken in der Nacht zuvor und keinen Schlaf bekommen
tut nicht-- vielleicht, wenn die für Sie arbeitet, gehen für sie.
Aber für die überwiegende Mehrheit der Menschen, immer etwas zu schlafen,
Lassen Sie Ihr Gehirn Ruhe und Erholung bevor er in die Prüfung
hilft Ihnen wirklich.
Auch wird es fast candy sicherlich an der Prüfung,
so muss man sich freuen.
Ihr seid großartig zu tun.
Es wird gut sein.
Und nun in der nächsten Stunde und eine Hälfte I versuchen und prep Sie so gut wie ich kann.
>> So habe ich Dias aus grundsätzlich alle Abschnitte bis jetzt.
Ich werde nicht zu durchlaufen alle von ihnen, da das nicht
machbar in einer Stunde und einem halb so gut als Arbeitszeit durch Praxis Probleme.
Anstatt also habe ich eine Liste von Themen.
Dies sind all die Dinge, dass wir Sie Quiz auf.
Wenn es etwas gibt, das wirklich herausspringt
dass Sie über zu gehen, dass Sie wollen, Soll ich über konzeptionell zu gehen,
Ich kann versuchen und geben Ihnen einen Überblick gibt.
Oder wenn Sie nach rechts in springen möchten tut der Praxis Probleme zusammen,
können wir das tun.
Es liegt an euch.
Es gibt nicht so viele von euch.
So ist es, was auch immer euch gerne tun.
Ich möchte das Beste sein hilfreich zu euch.
Also ich lasse Sie nur schauen.
>> PUBLIKUM: Eines ist Die Grafik, die wir halten
Spruch über dem Stapel und dem Heap.
Nur die ganze Idee hinter dass und was das bedeutet.
ALLISON BUCHHOLTZ-AU: Ja, OK.
Dies ist ganz auf die Ende, so lassen Sie mich durch zu blättern.
>> PUBLIKUM: Wir haben nicht zu haben, tun Sie es jetzt, aber egal.
>> ALLISON BUCHHOLTZ-AU: Es gab anything-- diese.
Ist diese Art von Fuzzy für Menschen?
PUBLIKUM: Ja, ich zweitens, dass.
Und können wir auch Pufferüberlauf?
ALLISON BUCHHOLTZ-AU: Pufferüberlauf?
Ok.
So Pufferüberlauf ist ziemlich einfach nur zu reden.
Es ist im Grunde puffert Sie darüber nachdenken, einige Array-Speicher, die Sie haben, nicht wahr?
Wir sprechen in der Regel etwa Pufferüberlauf, wenn
Sie nicht überprüft sind, wie viel der Benutzer setzt in, oder?
Und die Idee ist, mit Pufferüberlauf ist
sie weit setzen in zu viele Daten für die Raum
dass Sie für sie zugeteilt habe, oder?
>> Also, wenn Sie sagen, zu geben mir einige Nachricht, wir sind
davon aus, dass sie gehen, um zu geben uns eine angemessene Länge der Nachricht.
Vielleicht ein paar Zeilen, was nicht alles.
Wir wissen also nicht überprüfen.
Stattdessen ernähren sie uns in eine gesamte Buch, das eine Nachricht ist,
und die Höhe der Überläufe Raum, den wir für diese zugeteilt habe.
Und was passiert, ist es vielleicht zu überschreiben Orte, die es nicht zugelassen.
>> Ich weiß also, Professor Malan sagte etwas über Pufferüberlauf-Attacken.
Also das ist, wo der Benutzer Eingabe Einige große Menge an Daten in der Hoffnung,
dass er überschreibt Vergangenheit das Ende Ihrer Puffer
und ersetzt something-- Ich frage mich, Ich, wir haben diese Folien in hier.
Ich glaube nicht, dass wir diese Folien in hier.
Aber im Grunde überschreibt er ein Teil des Speicher
das es ihm ermöglicht Zugang um Teile des Computers
dass ihr habt nicht gewollt normalerweise Zugriff haben.
>> Größte, was mit Pufferüberlauf ist nur
zu verstehen, dass es passiert, wenn Sie nicht
Prüfen, wie viel Ihr Benutzer setzen in.
Wenn Sie nicht sind so eine Art Absicherung gegen das.
Und am einfachsten Sache, es ist nur Ihren Benutzer
Eingeben einer großen Menge von Daten in einem Versuch
um eine gewisse Sicherheit zu überschreiben Teil Ihrer Erinnerung.
Das ist alles, es ist.
>> Also das hier, Stack und Heap.
Grundsätzlich all dies ist nur eine Darstellung des Speicher
und wo die Dinge gespeichert.
Das ist wirklich Art von alles, was Sie wissen müssen.
Die größten Dinge, die Sie wissen, sind brauchen
dass-- lassen Sie mich sehen, ob es gibt eine better-- hier.
Das ist also der Stapel hier.
>> So Stapel hat damit zu tun alle Ihre Funktionen
dass Sie zu einem bestimmten Zeitpunkt anrufen.
Und was ist wichtig zu erinnern, Abheben der vergangenen Woche mit malloc
ist, dass man nicht wirklich haben notwendige Kontrolle über sie.
Es hängt alles davon ab, wenn bestimmte Funktionen ausführt.
Und wenn sie ausführt, sie haben, was sind Stack-Frames genannt
das gehen hier oben.
>> So ist es alle Arten von passiert ohne wirkliche Eingaben von Ihnen.
Sie schreiben Ihr Programm, und Sie laufen lassen,
und der Stapel Art nimmt von selbst, wie es braucht, um.
Also, wenn in Haupt Sie anrufen Würfel, die sich hier übergeben werden.
Es wird einen Rahmen zu schaffen.
Aber es gibt nichts, was man explizit tun zu diesem Stack-Frame außer erstellen
schreiben die Funktion zu beginnen, OK?
>> Was ist eine Art unter Ihrem Kontrolle ist die Heap mit malloc.
Also, wenn Sie malloc etwas, Sie einnehmen Speicher aus dem Heap.
Und das ist die Erinnerung, dass Sie haben, aus Mangel an einem besseren Wort,
explizite Kontrolle über, da erinnere mich mit malloc
es ist im Grunde gibt bis Sie sagen etwas anderes.
Für diejenigen unter Ihnen, beobachtete Abschnitt der vergangenen Woche,
es ist da, bis Sie es sagen, um wegzugehen.
Es wird es sei denn, sein anders gesagt, nicht.
Also der Haufen ist einfach etwas Sie als Speicher denken können
dass Sie die Kontrolle haben über.
Und die, die gerade die sind zwei verschiedene große Dinge.
>> Andere als die, die Sie nicht haben sollte zu viel über Stack und Heap Sorgen
Fragen oder typischerweise nur Wenn Sie lokale Parameter haben
oder eine Funktion wäre es auf dem Stapel oder Haufen.
In diesem Fall offenkundig es wird der Stapel sein.
Wenn Sie etwas mallocing, Wo ist das her?
Der Haufen.
Wenn Sie an der Praxis Quiz aussehen, denen sind im allgemeinen die Art der Fragen
die sie haben.
>> Sie haben keine Sorgen zu machen zu viel über sie.
Sie erhalten in expliziter über Stack und Heap
später oder in anderen CS-Klassen.
Also einfach mit ein bisschen eine allgemeine Vorstellung von dem, was das ist
wird gut sein, die ich nur irgendwie ging.
Alle anderen Themen?
Ja?
>> PUBLIKUM: Können Sie übergehen Zeiger sehr schnell wieder?
ALLISON BUCHHOLTZ-AU: Zeiger?
Haben Sie konzeptionelle möchten Übersicht von Zeigern
oder gehen Sie mit Zeigern zu üben?
PUBLIKUM: Ein bisschen wie der Syntax.
ALLISON BUCHHOLTZ-AU: Die Syntax?
Ja.
OK, wir sind es immer.
Ja, das ist so einfach irgendwie etwas wenn Sie eine rekursive Funktion,
jedes Mal, dass rekursive Funktion ist genannt, es fügt nur anderen Stapelrahmen.
Ziemlich genau ein Beispiel wie Sie nicht wirklich
haben die Kontrolle über die Frames auf Ihrem Stack.
>> OK, Zeiger.
Alles klar, so die Schaffung Zeigern.
Denken Sie daran, es ist nur Typ Stern.
Egal was für Daten, die Sie gehen zu den weisen.
So wäre dies ein Zeiger auf ein int sein.
Dies würde ein Zeiger auf ein char.
Dies würde ein Zeiger auf einen Schwimmer sein.
So ist es im Grunde, was auch immer Sie wollen, dass es auf den Hinweis sein,
Stern ist, wie Sie den Zeiger zu deklarieren, OK?
>> Aber dann natürlich ein wenig bekommt tricky, wenn Sie Zeiger haben
oder Sie haben star was auch immer.
Also der große Unterschied ist, wenn Sie declaring-- bist
so dass wir some-- so haben Dies dauert einige int Stern.
Also das ist einige Zeiger ruft x in einen int, nicht wahr?
Also denken Sie daran, was dieser tut ist dies ruft das System x.
Und dies wird gehen haben einige Adresse, oder?
Also lasst uns einfach sagen, das ist unsere Adresse.
Pointers halten Adressen.
Also, was es sagt, ist, dass zu diesem Lage, sind wir Speichern eines int.
>> Also eine andere Art, wie wir denken können ist, dass dies einige int.
Wir haben nicht wirklich sie zugeordnet nichts, aber es ist nur ein int.
Also wir tun können, ist, wenn wir Sterne x gleich 5, wird dies zu einem 5, OK?
Dieser sagt zu gehen, was auch immer x zeigt auf, so gehen Sie an diese Adresse
und es gleich 5 ist.
So weisen wir 5 an diese Adresse, oder?
>> Und dann, wenn Sie dies tun, dies gibt uns die Adresse.
Dies ist die Adresse des Bedieners.
Also, was ist die Adresse von x?
Wir wissen es nicht.
Wir haben es nicht belegt eine Adresse.
Wir könnten sagen, es ist some-- jetzt gaben wir es eine Adresse, so ist die Adresse 4.
Und tatsächlich, wenn wir etwas durchgehen wie diese, Art von, was wir taten.
So arbeiten durch hier-- finde ich es hilft, wenn Sie ziehen Zeigern.
Wenn Sie auf Ihre Prüfung sind, ich empfehle Zeichnung Boxen.
>> Also das erste, int x = 5.
Dies bedeutet nur, wir haben einige Platz in Erinnerung, die 5 ist, oder?
Und unserem Tisch hier sagt uns dass es an der Adresse 0x04.
Und dann schaffen wir einige Zeiger.
Also lassen Sie brechen diese nach unten ein zu einer Zeit.
Also das schafft einige Kästchen, um eine int, nicht wahr?
Es wird halten einige Adresse eines es.
Also das ist einige Zeiger.
Und diese Kreide ist wirklich klein.
So haben wir hier einige Zeiger.
Und unsere Tabelle sagt uns dh Adresse 0x08.
Cool.
Und wir zuweisen es auf die Adresse x.
>> Denken Sie daran, Zeigern Adressen, OK?
Wenn wir also x halten wollen, müssen wir um den Adressoperator zu verwenden, die
ist das kaufmännische Und, um die Adresse zu erhalten x, welche in diesem Fall 0x04.
Und dann, wenn wir einige int Kopie, das nur
schafft eine andere Box, hält einen int namens Kopie.
Und wenn wir weisen Sie es this-- so ist dies darauf verweisen.
Sagt, dass es so gehen, um was auch immer Adresszeiger hält.
Pointer in dieser Adresse, Fangen wir hier übergehen,
und wir sagen, OK, was drin ist?
Es ist 5.
Also Kopie wird 5.
Sinnvoll?
>> Was ist, wenn ich versuchte, zuordnen dies nur Zeiger.
Was bedeutet Zeiger tatsächlich gleich?
Es wäre nur sein, was Zeiger enthält, oder?
Und was dann, wenn ich das tat?
Was würden Kopie jetzt sein?
>> PUBLIKUM: 0x08.
ALLISON BUCHHOLTZ-AU: Yep, das Adresse unseres Zeiger.
Jeder Teil von jenem, muss neu erklärt werden?
Cool.
Es ist auf jeden Fall ein sehr Spaß Problem Quiz ein
dass wir, die über gibt Ihnen mehr Praxis.
Die Jungs aus der vergangenen Woche kann Ihnen sagen, es war nicht so schlimm.
Wir haben durch eine ganze Diagramm, und jeder tat groß.
>> OK, das ist also Überblick Syntax von Zeigern.
Größte Sache ist, zu verstehen, wie um sie zu erstellen, tun Referenzierung,
und Anschrift, OK?
Cool.
Alle anderen Themen vor tauchen wir in die Praxis.
Auch wenn wir durchmachen die Übungsaufgaben
und es gibt etwas, was Sie wollen ein Auffrischung, können wir das auch tun.
Haben Sie so etwas?
>> PUBLIKUM: Structs und verkettete Listen.
ALLISON BUCHHOLTZ-AU: Structs und verkettete Listen, OK.
So Strukturen.
Wir haben eigentlich gehen über diese heute Abend auch.
OK, also Strukturen.
Strukturen sind im Grunde nur eine Möglichkeit für Sie, halten Sie
mehrere Werte der verschiedenen Arten.
Also mit einem Array sind wir einem Datentyp verengt.
Unsere Array muss entweder nur Zahlen sein, oder einfach nur Zeichen sein, oder einfach nur Schwimmer sein.
>> Aber vielleicht wollen Sie brauchen enthalten mehr.
Vielleicht haben Sie, wenn zu hold-- brauchen Sie über einen Schüler reden,
Sie gehen zu ihrem Haus zu haben, ihre ID-Nummer, ihr Alter, wo sie leben,
richtig?
Und all das sind verschiedene Arten von Typen.
So können Sie nicht speichern kann denen alle in einem Array.
>> Also, was Sie tun können, ist, dass Sie kann eine Struktur, erstellen die
Sie als denken können Ihre eigenen Datentyp persönlich.
Also anstatt nur mit ints und statt nur mit Schwimmern,
Sie können eine Art Studenten haben, dass hat alle diese Felder in ihm.
So, wie wir zu initialisieren unsere Strukturen ist-- tatsächlich
da mein Schreiben ist schrecklich, wir werden auf die Typisierung übergehen.
Woo.
>> OK, also, wenn wir eine struct-- erstellen möchten Ich bin gerade dabei, es hier unten.
Ignorieren Sie die in Haupt unabhängig die wir später zu verwenden.
Also die Art und Weise Sie tun möchten ist es mit typedef struct.
Und lassen Sie uns diese Schüler einfach anrufen weil das, was ich mit.
OK, also typedef bedeutet, dass Sie Definition eines neuen Typs, OK?
Es gibt Nuancen in, wenn Sie tun, nur eine Struktur gegenüber einer typedef struct.
Für alle Absichten und Zwecke, habt ihr einfach
gehe davon aus, sie sind etwa gleich und nur
verwenden typedef struct für jetzt.
Es wird so deutlicher zu Ihrem nächste P gesetzt, was diese Unterschiede sind,
aber ich glaube nicht, dass es nötig ist Sorgen um, dass gerade jetzt.
Ich würde viel lieber Sie wissen, wie man eine zu erstellen,
darauf zugreifen, und weisen [? Wert. ?]
>> Eine neue Art von Struktur und wir nennen es Schüler.
So, nachdem wir fertig schaffen dies, Für alle Absichten und Zwecke,
haben Sie einen Typ namens Student.
Und du davon nur als eine Art zu denken wie ein int oder einem Schwimmer oder ein Saibling.
Es ist nur eine andere Art, OK?
>> Also in diesem, was haben wir?
Wir haben vielleicht einen Namen.
Also vielleicht wollen wir einen string name.
Und wir haben vielleicht einen int, die eine ID ist.
Und wir haben eine andere in das ist die Telefonnummer.
Und wir haben some-- mal sehen.
Was sonst noch wir haben?
Wir werden eine Schnur an seinem Haus zu haben.
Alle Dinge, die ein Schüler.
>> Also das schafft nun eine Struktur.
Wie also könnten wir schaffen ein Student?
Wenn wir einige Variablen haben das heißt werde über Walker hier reden,
so dass wir have-- wir gerade sind werde diesen walker nennen.
Er braucht einen Typ.
Was ist Ihre Art?
PUBLIKUM: Student.
ALLISON BUCHHOLTZ-AU: Student.
Also das schafft nur ein Objekt können Sie denke, dass hat all diese Dinge.
Sie gerade erstellt eine Gehhilfe Student.
So, jetzt müssen wir in der Lage sein, zu all diesen zuordnen, oder?
So jemand erinnert sich nicht, wie wir Zugriff innerhalb einer Struktur?
PUBLIKUM: Zeitraum.
ALLISON BUCHHOLTZ-AU: Zeitraum Genau.
Wenn wir also zuweisen wollte ihm einen Namen, wir könnten das tun.
Offensichtlich würde dies be-- diesen Teil hier würde
sein im Haupt, so tatsächlich lassen Sie mich dies zu tun.
Deklarieren Sie diese oben Haupt so dass wir es innerhalb des Haupt verwenden.
So, jetzt will ich es zu tun ID, und wir werden nur einige es tun,
und dann werden wir ein Haus zuordnen.
Bam.
Cool.
>> So, jetzt sollten wir jemals den Zugriff benötigen etwas später on-- vielleicht wir--
wenn wir jemals brauchen, um alles zugreifen, lassen Sie uns einfach eine Kopie int ID zu tun.
Und ich möchte kopieren Walkers ID in diese.
Wie könnte ich es tun?
Sie müssen sich innerhalb des Walker zugreifen struct auf [? gehen Sie zu, dass?] [? E?].
Und die gleiche Art und Weise, dass wir Sie hier, wie zugeordnet it up
könnten wir darauf zugreifen, wenn wir wollen geben Sie diesen Wert auf etwas anderes?
PUBLIKUM: Walker.id.
ALLISON BUCHHOLTZ-AU: Ja, genau.
Also das ist so ziemlich alles, Sie brauchen, um für Strukturen kennen.
Sie brauchen nur zu denken sie als eine andere Variable.
Im Grunde ein erstellen Sie Ihre eigenen Variablentyp, OK?
Sie verwenden es, zu erklären, Variablen, die in keiner Weise.
Hier ist Walker noch eine Variable.
Es hat nur eine Art Studenten nun statt von einem Typ int oder einem Typ string,
oder ein Typ char.
Wenn es eine einfache Möglichkeit, zu sprechen über Strukturen, ist es buchstäblich nur einen
Erstellen Sie Ihre eigenen Datentyp dass können Sie Gruppen
Alle diese verschiedenen Art von Daten zusammen.
Macht das Sinn macht?
Ok.
Das und den Zugriff mit Punkten.
So ziemlich alles, was Sie brauchen.
>> OK, wo hast meine Powerpoint gehen?
Hier ist es.
Gut, das ist seltsam.
Aha.
OK, cool.
Alle anderen Dinge, oder müssen wir wollen Kopf zu üben?
Üben?
Ok.
Genial.
Ich werde dies zu beenden.
Wenn zu irgendeinem Zeitpunkt während Fragen der Praxis,
Ich bin glücklich, zu erneuern und durch die Dinge gehen.
Also ich habe Quiz Null hier oben.
Wenn Sie Jungs wollen ziehen Sie es auf Ihrem Computer,
genau wie Take Five Minuten zu durchsuchen.
Vielleicht wählen Sie einige Top Fragen, die Sie gehen wollen über.
Wenn euch nicht entscheiden können, werden wir nur langsam anfangen zu arbeiten durch sie,
aber ich bin sicher, es werden einige sein Fragen, die Sie besonders sind
begierig zu sprechen und haben mich durch die Arbeit mit euch allen.
So gehen Sie einfach weiter und nehmen Sie fünf Minuten.
Blättern Sie durch.
Und dies ist das Quiz ab 2013.
>> PUBLIKUM: Zero?
>> ALLISON BUCHHOLTZ-AU: Ja, Quiz Null.
Wir werden nicht tun Quiz ein Zeug.
Wir werden das in ein paar Wochen zu tun.
Auch für diejenigen unter Ihnen, kam spät, haben wir Süßigkeiten,
so kann euch Süßigkeiten wollen?
>> PUBLIKUM: Sicher.
>> ALLISON BUCHHOLTZ-AU: Ich bin nur werde herumreichen.
Hey, wenn du Jungs bekommen hier früh, erhalten Sie mehr Süßigkeiten.
Das ist in Ordnung.
Ben, wollen Sie Süßigkeiten?
Sie wollen einige von ihnen?
Es gibt auch Snickers, wenn jemand will Snickers.
Ich werde sie hier und hier zu verlassen.
Fühlen Sie sich frei.
Haben Sie mehr wollen?
PUBLIKUM: Alle setzen.
Danke.
>> ALLISON BUCHHOLTZ-AU: Und ich hatte eine schöne Häufchen es am Anfang.
Ihr Jungs bekommen, um das Quiz zu nehmen und Ich erhalte, ein Quiz mit einem Gehalt von Partei haben.
Es ist Chaos.
900 Prüfungen.
Es wird so viel Spaß machen.
Großartig werden.
Ich bin mir ziemlich sicher, das ist ein der größten Personalbindungs
Nächte des Jahres.
Hat jemand von getan Quiz Null im vergangenen Jahr noch aus Neugier?
>> PUBLIKUM: Teile davon.
>> ALLISON BUCHHOLTZ-AU: Teile von ihr, OK.
Haben Sie Fragen zu einem von ihnen?
PUBLIKUM: Ich habe bereits ging zu Bürozeiten.
Danke aber.
ALLISON BUCHHOLTZ-AU: Na, hoffentlich es ist immer noch irgendwie hilfreich.
Wann haben Sie zu gehen Bürozeiten für das?
PUBLIKUM: Mein TF hatte sie an diesem Nachmittag.
ALLISON BUCHHOLTZ-AU: Oh.
Wer ist dein TF?
PUBLIKUM: Fred [? Wujaya?].
ALLISON BUCHHOLTZ-AU: Es gibt so viele TFs.
So viele.
In Ordnung.
Wer noch keine zu beginnen, dass ich kann, notieren, dass wir arbeiten wollen?
Ich nehme an, die Zeiger eine mit der Tabelle.
Go for it.
>> PUBLIKUM: Vielleicht der Schalter ein.
ALLISON BUCHHOLTZ-AU: So Nummer 12?
Ich nehme an, Nummer 8 und 9 sind wahrscheinlich diejenigen Leute wollen gehen über.
>> PUBLIKUM: Und 10 und 11.
>> ALLISON BUCHHOLTZ-AU: Und euch wissen Sie erhalten eine Seite mit Notizen, nicht wahr?
>> PUBLIKUM: Ja, so was gibt Wir dürfen auf das setzen.
>> ALLISON BUCHHOLTZ-AU: Du darfst alles, was Sie wollen, setzen.
Und sie kann eingegeben werden.
Soweit ich mich erinnere, wurden uns getippt.
>> PUBLIKUM: Sie können tun zurück und beide Seiten?
>> ALLISON BUCHHOLTZ-AU: Ja, beide Seiten.
So etwas wie der Heap und [? Backend?] Haufen, Ihre Lauf
Zeiten.
Nützliche.
Vielleicht kleine Dinge über Hinweise für Sie zu erinnern.
Syntax für die Dinge.
Da ich gerade wie ein Skelett Programm kann super nützlich sein.
Ich weiß, dass ich immer vergessen, was genau Ich sollte für int main schreiben,
weil ich immer nur kopieren Einfügen aus meinem vorherigen P-Set
oder es ist schon da, so Ich habe nie wirklich geschrieben hat,
so mit, dass kann super nützlich sein.
>> OK, also warum nicht wir beginnen mit der Nummer 8 dann?
In Ordnung.
Ok.
So betrachten unter das Programm.
So offensichtlich, wenn wir sehen, Zeiger, ist es wahrscheinlich
eine gute Idee zu zeichnen, oder?
Ich will wissen, wo alle meine große Stücke Kreide ging.
Dies ist eine Art ärgerlich.
>> So haben wir hier einige Swap-Funktion das wird in zwei Zeiger zu nehmen.
So dass in diesem Fall werden sie sollte eigentlich Schalt sein
Dinge gegenüber unserer ursprünglichen Swap Funktion, die nur in Kopien übernahm.
Also, was es tun wird ist-- wir mit Haupt starten,
denn dort 1.
>> Also haben wir etwas int x 1.
Wir haben einige y, die gleich 2 ist.
Und dann haben wir etwas Swap das wird denen zu nehmen.
Und mal sehen, was haben wir denn hier.
Und in unserer table-- oh boy.
Wie soll ich das tun?
Ich werde zu meinem Tisch herüber zu ziehen.
Kaum dass es dort.
Kaum macht es.
1, 2, 3, 4, 5, 6, 7.
Und sie uns geben, dass 1 1 und 1 2.
Cool.
Genial.
Also 3.
Und es gibt [? ein 1.?]
>> In Ordnung.
Und dann Adresse x ist 0x123.
Und y Ox127.
Cool.
In Ordnung.
Ich möchte euch daran arbeiten für nur like-- Arbeit auf sie
mit den Menschen um Sie herum.
Ich wünschte, ich hätte, dass die während ich die Einrichtung.
Arbeiten Sie daran.
Versuchen Sie, und arbeiten, die ihr durch euch für ein paar Minuten,
und dann werde ich darauf mit Ihnen zu arbeiten.
Da der einzige Weg, Sie sind wirklich gehen zu lernen ist, indem Sie es selbst.
Keine Sorgen.
Viel Erfolg.
>> OK, warum nicht wir langsam Beginn der Arbeit durch diese.
So bekommt jeder nach Zeile ein, x 1.
Nach Zeile zwei, X und y 1 und 2, oder?
Cool.
So Linie drei ist, wo die Dinge Interessant wird natürlich.
>> Also, was wir hier gemacht haben wird haben wir jetzt getauscht.
Wir sagen, dass x und y die Punkte haben, oder sie haben die Adresse x und y,
richtig?
So dass in diesem Fall drei, Was ist der Wert von a?
A hatte in geleitet worden war, gegeben worden ist der Wert der Adresse x, nicht wahr?
>> PUBLIKUM: 1?
>> ALLISON BUCHHOLTZ-AU: Also wir sie zum x hinzufügen?
Was ist x die Adresse?
>> PUBLIKUM: 0x123.
>> ALLISON BUCHHOLTZ-AU: Genau.
Aber was ist ein tatsächlich auf den Hinweis?
Wenn wir Dereferenzierung a, welchen Wert würde es uns.
PUBLIKUM: 1.
ALLISON BUCHHOLTZ-AU: Es wäre Geben Sie uns ein, weil das, was
wir sagen ist, dies zu gehen Adresse, sagen uns, was der Wert ist.
So was würde b werden?
>> PUBLIKUM: 0x127.
ALLISON BUCHHOLTZ-AU: Genau.
So ist es die Adresse von y.
Und was dann [? Dereferenzierung? ?]
PUBLIKUM: 2.
ALLISON BUCHHOLTZ-AU: OK, so jetzt vier.
Wir haben gesagt, a equal-- auch jetzt haben wir getan int temp gleich Star a.
Also, was ändert sich?
Es gibt nur eine Sache, das ändert sich hier.
Was ist das?
>> PUBLIKUM: Temp.
ALLISON BUCHHOLTZ-AU: Die Temp.
So können wir alle diese neu zu schreiben.
Eine gute Strategie für diese gerade herauszufinden
Welche Veränderungen, weil die meisten oft es gibt nur eine Sache, die ist
werde zu einem bestimmten Zeitpunkt zu ändern, OK?
Also haben wir Temp zugewiesen.
>> Jetzt ist unsere nächste Punkt, fünf, wir haben Sterne a gleich b Star gemacht.
Also, was ändert sich jetzt?
>> PUBLIKUM: Star ein.
>> ALLISON BUCHHOLTZ-AU: Star ein, so alles andere bleibt gleich.
Und was bedeutet Stern A gleich?
>> PUBLIKUM: 2.
ALLISON BUCHHOLTZ-AU: 2.
Lovely.
Genial.
OK, und jetzt haben wir beginnen b gleich Temp.
Also das einzige, was Wechsel ist star b.
Alles andere bleibt gleich.
Und was ist star b gleich jetzt?
Und Sie die Tabelle abgeschlossen haben.
Da nun am Ende, wenn wir sagen, x und y, wissen wir, dass bei dieser point--
Wir wissen, dass, wenn wir verändert Stern A 2,
was das tat, ist es gesagt OK, zumin Adresse 0x123 hier ändern.
Nun war dies 2.
Und dann an diesem Punkt, wir sagten OK, gehen Sie zu B-Star.
So rufen Sie die Adresse an 0x127 und machen es zu einem 1.
So, jetzt ganz am Ende, wenn wir eigentlich für Haupt zurückkehren,
haben wir eigentlich, dass x gleich 2 und y gleich 1 ist.
Jeder gut mit, dass?
OK, cool.
Number 9.
Ihr Jungs arbeiten auf diesem.
Ich werde die Einrichtung einer Platine damit wir durch ihn zu zeichnen.
Es wird ein Knaller.
Die großen Tabellen kann wirklich beängstigend, ich weiß.
Aber wenn Sie nur nehmen sie eine Zeile auf eine Zeit, bekommen sie viel weniger beängstigend.
In Ordnung.
>> Damit Sie wissen, dass dies haben durch Haupt ersten, richtigen weg?
Initialisiert x und y und dann versucht, sie zu tauschen.
Also selbst Swap ist oben, real, wie es geht, ist, dass wir durch die Haupt gehen,
und dann ist es fordern bis zu tauschen, in Ordnung?
So weiß jeder.
>> So das man Sie tun Jungs wollen, mit zu beginnen?
Ist jemand wirklich sicher etwa einer von diesen?
Oder auch nur teilweise sicher?
Warum gehen wir nicht mit x beginnen?
Was denken wir x ist?
>> PUBLIKUM: 1.
ALLISON BUCHHOLTZ-AU: 1.
Also warum ist dann 2.
Und das ist, weil die große Unterschied hier
ist, dass wir nur sind Passieren Kopien in, oder?
Wir werden nicht Gabe als Referenz.
So dass auch am Ende Dieses Programm x und y
haben die gleichen geblieben, weil sie sind nur Kopien in der Swap-Funktion.
Sie eigentlich nicht ändern, oder?
>> Und was ist mit a, b, und Temp?
>> PUBLIKUM: a ist b.
>> ALLISON BUCHHOLTZ-AU: a ist b.
So dass in diesem Fall eine war x, die 1 ist, oder?
Also hier, lass uns durch sie hindurchgehen.
So zu Beginn, a und b 1 und 2 definiert.
So ursprünglich Temp bekommt eine zugeordnete, so Temp 1 ist.
a gleich b ist, so bekommen wir 2 und b gleich Temp.
Jetzt bekommen wir ein.
>> PUBLIKUM: Im vorigen man es getauscht Ampersand x und das kaufmännische y.
Was genau bedeutet das?
ALLISON BUCHHOLTZ-AU: Das heißt also, dass übergeben Sie durch Bezugnahme.
Das heißt also, Sie tatsächlich sind vorbei in den Adressen, wo
x und y gespeichert.
PUBLIKUM: Aber du bist nicht Vertauschen Sie die Adresse.
ALLISON BUCHHOLTZ-AU: Du bist nicht Vertauschen der Adressen.
Du Swapping, was in ihnen.
Wie, was ist an dieser Adresse, und das ist, warum es funktioniert.
Versus in diesem Programm hier was du tust ist Sie erstellen Kopien sind.
Sie haben also x und y, die es gibt als ihre eigenen Variablen hier draußen.
Aber dann, wenn Sie weitergeben sie in Swap, ist es
als ob Sie erstellen diese ganze andere Satz.
So können Sie tatsächlich sind nie rührende x und y.
>> PUBLIKUM: Wenn kaufmännisches Und x ist, was auf die Adresse von x, was wäre Star x sein?
>> ALLISON BUCHHOLTZ-AU: Ampersand x ist, was auf die Adresse von x, dann gut star--,
in diesem Fall ist x kein Zeiger.
PUBLIKUM: Oh, OK.
So können Sie dies nur tun, denn es ist kein Zeiger.
ALLISON BUCHHOLTZ-AU: Richtig.
Sie können nur Star zu tun etwas, das ein Zeiger ist.
Vielleicht haben Sie es, Dinge zu tun hätte, dass sind es nicht, aber der Kompilierung, die Sie
tun verrückte Dinge passieren würde.
Und ich bin mir nicht ganz sicher, was passieren würde.
Sie können immer die Adresse von etwas,
aber Sie können nicht Dereferenzierung etwas, das nicht ein Zeiger.
Wenn das Sinn macht, das ist eine gute Unterscheidung haben.
>> Und nicht so schlecht, oder?
Die Tische sind hoffnungs immer etwas weniger beängstigend.
In Ordnung.
Ah, die Spaß Einsen.
So, jetzt, das Schreiben eigener Code.
Also werde ich euch arbeiten zu lassen auf diesem für etwa vier Minuten,
und dann können wir reden über Wege zu nähern.
Fühlen Sie sich frei, um die Menschen um Sie herum zu reden.
Auch das ist interessant.
Es ist wie eine alle Mädchen Abschnitt Augenblick.
Ziemlich aufregend.
Außer für Chang.
Aber Chang ist nicht wirklich Teil der Seite.
Genial.
Perfect.
Also ich gebe Ihnen ein paar Hinweise.
In dem Fall, wo man mehr als ein Zeichen, wobei
Sie etwas anderes haben wie 123 oder 1000 etwas,
Sie brauchen, um in der Lage, Schleife durch und konvertieren jedes von denen.
Es gibt also ein paar Möglichkeiten, wie Sie das tun konnte,
aber Sie definitiv zu haben sind eine for-Schleife irgendwo dort in einer Schleife
durch sie, das ist Art, wie die Werbegeschenk
mit, auch wenn Sie strlen Anrufs das ist ein bisschen wie oh
vielleicht haben Sie, um die Länge verwenden wollen der Saite in irgendeiner Weise.
>> In Ordnung.
Also, was denkt ihr könnte eines der ersten Dinge, die wir tun wollen?
Es gibt ein paar Fälle, in hier wir brauchen, um für Konto, oder?
Entweder wir haben etwas, das null ist.
Was haben wir?
Hüllen.
Null.
Wir haben den Fall, dass es etwas anderes als 09, oder?
Also lassen Sie uns sagen, dass es Briefe hat.
Oder wir haben den Fall, dass gültig ist.
Drei Fälle zu denken.
Also welches Sie vielleicht denken am einfachsten zu zunächst kümmern?
PUBLIKUM: Null.
ALLISON BUCHHOLTZ-AU: Der Fall ist null.
Also, was würden wir es tun?
PUBLIKUM: [unverständlich].
ALLISON BUCHHOLTZ-AU: Yeah.
Und was will ich tun?
>> PUBLIKUM: Return 0.
>> ALLISON BUCHHOLTZ-AU: Genau.
Genial.
Ok.
So, jetzt Fall, dass es Briefe hat und der Fall, dass sie gültig ist.
Wir können tatsächlich kümmern dies innerhalb einer Schleife, OK?
Also eine Möglichkeit, es-- tun, was sein könnte ein einfacher Weg, um zu überprüfen, ob es gültig ist.
Wir würden zu durchlaufen haben jeder Buchstabe und tun, was?
>> PUBLIKUM: Überprüfen Sie, ob es in--
>> ALLISON BUCHHOLTZ-AU: Richtig, können Sie überprüfen, wenn es zwischen 0 und 9, oder?
Und in dem Fall, dass es gültig ist, sind wir
am Ende sich durchlaufen unsere String sowieso, nicht wahr?
Also, warum versuchen wir nicht und kombinieren sie zu einem.
Wir werden durchlaufen durch aus String und wie wir
das tun, werden wir zuerst tun einen Scheck an, wenn dieser Brief zu sehen
oder wenn es ein Zeichen gültig ist.
Wenn ja, werden wir das durchführen Operation, die wir brauchen, um sie zu konvertieren.
Es wird sonst 0 zurück, nicht wahr?
>> Also, bevor wir das tun, wir wahrscheinlich wollen einige Variablen
dass wir am Ende zurück das wird unsere tatsächlichen Wert.
So werden wir zu initialisieren einige Wert auf 0 sein.
Und das ist nur, wie wir starten.
Also werde ich dieses loszuwerden.
Also, wie sollen wir durchlaufen diese Saite.
PUBLIKUM: For-Schleife.
ALLISON BUCHHOLTZ-AU: Eine for-Schleife.
Also, was ist unsere für?
>> PUBLIKUM: i 0.
ALLISON BUCHHOLTZ-AU: Mm-hm.
Und was sind wir, bis Iteration?
>> PUBLIKUM: str Länge s.
>> ALLISON BUCHHOLTZ-AU: OK, jetzt erinnere es gibt einen besseren Weg. [Unverständlich].
>> PUBLIKUM: Ja, wir tun können, n gleich.
ALLISON BUCHHOLTZ-AU: Genau.
>> PUBLIKUM: i kleiner als n ist.
ALLISON BUCHHOLTZ-AU: Und warum würden wir das tun wollen?
Haben Sie den Grund erinnern?
PUBLIKUM: Wir müssen es neu zu berechnen.
ALLISON BUCHHOLTZ-AU: becasue diese Weise können Sie nur noch strlen einmal berechnen.
Wenn Sie das tun i weniger als strlen ist s, das ist bedeutet dies, berechnet
die Länge jedes Mal Sie das ausführen for-Schleife,
Das ist kein großer Kosten Energie, ist aber
bessere Praxis zu versuchen und Dinge tun, wie, dass einmal.
Es sei denn, vielleicht haben Sie eine verrückte String haben das ändert sich bei jeder Iteration.
Aber wenn es bleiben die gleichen, speichern Sie es.
In Ordnung.
Und dann habe ich plus plus.
Genial.
Wir sind auf unserem Weg.
PUBLIKUM: Wirklich schnell.
Erstens, so sagen wir, wir nur tat ich weniger als strlen von s,
werden sie mit einem Gehalt von uns auf Design überhaupt nicht oder nur Korrektheit?
Sie sind es nicht.
Wir werden auf Korrektheit Einstufung für Quiz soweit ich weiß.
Ich kann eine voll auf keinen Garantie, aber zum größten Teil,
überwiegende Mehrheit ist Korrektheit, weil du bist unter großem Zeitdruck.
Design in der Regel bedeutet, Sie Zeit zum Nachdenken haben
über die Eleganz der Ihre Situation.
>> OK, so dass wir durch Iteration.
Also müssen wir entweder zu überprüfen, um sehen, ob dieses Zeichen ist gültig
oder wenn wir durchführen können unsere normal [? a bis i?] Funktion.
Wir können darum kümmern, was daß in einer zweiten.
Also, warum nicht wir take-- wenn jemand denken kann
über eine Möglichkeit, um zu überprüfen, sehen, ob diese gültig ist.
Wir wissen, es geht um sein einige, wenn Bedingung, nicht wahr?
Und vergessen, das ist in ASCII, so wie vielleicht
wir sehen, ob es nicht 0,1, 2, 3, 4, 5, 6, 7, 8 oder 9.
PUBLIKUM: Wenn alpha.
>> ALLISON BUCHHOLTZ-AU: Also, wenn alpha würde nur lassen Sie uns wissen, wenn es ein Brief.
Und wenn sie ein Symbol geben uns, es ist immer noch nicht ganz los, um zu überprüfen.
Also, wenn Sie Ihre ASCII ziehen Tisch, wissen wir, dass 0 bis 9
sind in einem Segment.
Sagen Sie mir die Zahlen, dass sie entsprechen, wenn möglich.
PUBLIKUM: 40.
>> ALLISON BUCHHOLTZ-AU: Also der Bereich ist wie 40--
PUBLIKUM: Vielleicht.
48 bis 57.
Ich bin mir nicht sicher.
>> ALLISON BUCHHOLTZ-AU: 40-57?
>> PUBLIKUM: 48, glaube ich.
ALLISON BUCHHOLTZ-AU: 48 bis 57.
So wissen wir, dass diejenigen, ASCII symbols-- wenn die ASCII-Wert ist nicht
zwischen 48 und 57, es ist nicht gültig, oder?
So konnten wir zu bedienen, dass unser Vorteil möglicherweise?
Wie werden wir zu bekommen Dieser Brief, zuerst aus?
Wie sollen wir den Zugriff auf dies dieses Zeichen?
>> PUBLIKUM: s Halterung i.
>> ALLISON BUCHHOLTZ-AU: Mm-hm.
Weil wir denken können Strings als Arrays, erinnern.
Also, was wollen wir sagen?
Wir wollen, wenn dies zu sagen ist-- Ich gebe Ihnen einen Tipp geben.
Es ist ein kleiner.
Was, Sie denken muss weniger als sein?
PUBLIKUM: 57?
>> ALLISON BUCHHOLTZ-AU: 47, richtig?
Aber es stellt auch, dass, wie Sie eine 0 in Einzel [? Speichen?], denn das ist
das Zeichen 0.
Sie könnten auch setzen 47.
Mit der ASCII-Tabelle, wie Sie sehen, ist nur etwas
Sie sollten sich auf Ihr Quiz Blatt haben.
>> So dass, wenn dies der Fall ist, wenn es ein weniger als 0-- nicht unbedingt und.
Es ist nur entweder sein wird kleiner oder größer als 9 ist.
So können Sie ausfüllen diese letzte für mich?
So oder s von i ist, was, Rhea?
>> PUBLIKUM: Mehr als 9.
>> ALLISON BUCHHOLTZ-AU: Es.
Heißt das sinnvoll sein, alle, wie wir da?
Diese Probleme, sie sind wie, wenn Sie sehen die Lösungen, es ist wie oh, OK.
Und das ist, warum der Praxis wird Ihnen helfen.
OK, also kehren wir 0.
Lovely.
In Ordnung.
Ansonsten, was wollen wir tun?
Dies ist der interessante Teil wo es ein wenig mehr
wie Mathematik gegen CS meiner Meinung nach.
Hat jemand eine Idee haben der, wie wir dies tun?
So ist die wichtigste Sache zu erkennen, ist das erste Zeichen
wir nehmen sein wird die höchste Ordnung stellige, nicht wahr?
Also, wenn wir bei der Umwandlung der Suche 123, das erste Mal, wir durchlaufen
Bevorstehende 1 sein, aber wir brauchen dass auf 100 bis Ende sein, oder?
So eins, was Sie tun können, ist, dass mit jedem weiteren stelligen
Sie nehmen, Sie Ihren Wert mit 10 multiplizieren, so dass durch die Zeit zum Erreichen des Ziels,
Alles wurde nach oben verschoben, oder?
>> Also das erste Mal, wenn Sie laufen ihm haben Sie 1 als Wert.
Zweites Mal, wenn Sie es, Sie laufen multiplizieren Sie den Wert um 10.
Es wird sie zu aktualisieren, so dass es nun 10, und Sie bei Ihrem nächsten Wert hinzuzufügen.
Und dann multiplizieren Sie diese mit 10 und fügen Sie bei Ihrer nächsten Wert.
Und das ist, warum sie das sagen, ist viel mehr wie Tests
ein Mathe-Algorithmus im Vergleich CS, aber ich schweife ab.
Ich glaube nicht, die Tests zu schreiben.
>> Also etwas, was wir tun können, ist, dass wir sagen Wert mal gleich 10.
Also das wird sich verschieben Ihre stelligen einmal jedes Mal.
Und dann wollen wir nur hinzufügen.
Wir wollen in den Teil hinzufügen wir sind gerade, oder?
So, wie wir eigentlich konvertieren unsere ASCII-Zeichen in der Anzahl
daß es darstellt?
>> So wissen wir, dass 0 gleich 47, oder?
Also, wenn 0 ist 47, was würden wir es zu tun haben
um tatsächlich machen es ein int von 0 sein?
>> PUBLIKUM: Es ist 48.
ALLISON BUCHHOLTZ-AU: 48?
Entschuldigung.
Wir würden subtrahieren 48, richtig?
Angemeldet ASCII Mathe?
Wir können sie nur behandeln wie normale Zahlen.
Wenn man sie wie Zahlen zu behandeln, sie werden Zahlen effektiv.
Wenn wir also s von i, die uns gelassen sagen in diesem Fall gleich 0 ist.
So s von i in diesem Fall wäre die ASCII-- sein
der ASCII-int denn es wäre 47 sein.
So konnten wir subtract-- oder 48.
Sie könnten das tun, ist eine Möglichkeit.
Kennt jemand eine bessere Art, wie wir 48 tun könnte?
Wir haben gerade das 0 ist-- in zu gehen der ASCII man Zitat 0 zu tun.
So tut es irgendwie machen Sinn, wie das funktioniert?
>> PUBLIKUM: Zu diesem Zeitpunkt ist der Wert 0 denn selbst wenn Sie es mit 10 multiplizieren,
Sie beginnen mit Null, so sollte sie umgeschaltet werden?
>> ALLISON BUCHHOLTZ-AU: Also in diesem Fall, können Sie möchte es multiplizieren, bevor Sie hinzufügen,
weil in diesem Fall, ja, wäre es noch be-- meine Zeiger fehlt.
Der Wert in diesem Fall die erste Zeit, dass wir es laufen wird gleich Null sein.
Sie sind also gerade hinzufügen an diesem ersten Ziffer.
Was wichtig ist, das nächste Mal, Sie durchlaufen, Sie es verschieben möchten
bevor Sie Ihre nächste Stelle hinzufügen auf.
Heißt das für Sie zu klären?
Ok.
>> Manchmal bist du zu gehen get weird mehr mathy Dinge.
Wenn Sie die meisten hatten dies, du bist immer noch
um get-- wirst du ziemlich gut tun versuchen.
Partielle Kredit ist eine sehr große Ding auf CS50 Quiz.
Also schreiben, was Sie wissen.
Wenn man alles bekommt Ausnahme hier, du bist
immer noch zu tun wirklich gut das Problem.
Weil Sie zeigt bist, OK, habe ich fast weiß.
Ich weiß, dass ich, um durch laufen.
Ich weiß, was ich brauche, um für zu überprüfen.
Ich weiß nur nicht recht bekommen, wie es zu konvertieren.
Du wirst in Ordnung zu sein.
Ja, du bist zu gehen verlieren ein paar Punkte,
aber du bist immer noch ein zu bekommen gute Anzahl von Punkten für etwas
so, wenn Sie fehlen diese beiden Zeilen.
Ich möchte Sie auf OK, diese Person zu sein weiß, was sie tun.
Mathe ist hart.
Also ich würde sagen, dass Sie in Ordnung sein würde.
>> OK, so you guys bereit Versuchen Sie jetzt mit Zeigern strlen
dass Sie Jungs sind Zeiger Meister?
Also werde ich euch arbeiten lassen auf, dass für ein wenig.
Wenn jemand braucht eine Auffrischung.
Sie wollen also Zeiger verwenden möchten Arithmetik, und dann, wenn s Null ist,
Ihre Umsetzung sollte 0 zurückgeben.
Dinge wie diese, die Sie vornehmen wirklich glücklich, einfach anrufen strlen
am Ende des Tages.
Ich denke, das man ein wenig sein könnte leichter als die letzte, die
ist gut.
Ich gebe dir Jungs noch eine Minute, und dann werden wir es durchzuarbeiten.
Und dann kommen wir zu den Schaltern gehen.
>> OK, bereit Jungs?
Vielleicht ein bisschen.
Also habe ich Sie da zwei Möglichkeiten, oder?
Entweder prüfen null und 0 zurückgeben, wenn es ist, oder tatsächlich zu berechnen die Länge.
Also, wer will schreiben erfragen null?
Go for it.
>> PUBLIKUM: Wenn Klammern s gleich ist gleich null return 0.
ALLISON BUCHHOLTZ-AU: Lovely.
Ich liebe es, wenn die Hälfte Ihres Problems wird nur die Überprüfung für null.
Ich weiß, mit euch letzten Woche war ich wie Check für null
buchstäblich jedes Mal.
OK, SO-
>> PUBLIKUM: Wenn return 0 ist nur eine Zeile, brauchen wir noch die geschweifte Klammer?
>> ALLISON BUCHHOLTZ-AU: Sie müssen nicht technisch müssen sie so lange Sie konsequent sind.
Es ist gute Praxis nur um die Gewohnheit zu bekommen
der Verwendung von geschweiften Klammern, aber technisch nicht.
Sie brauchen sie nicht für eine Zeile.
Wir neigen dazu, nur es empfehlen für Existenz zu programmieren.
>> Und was jetzt vielleicht wollen wir hier tun?
So, jetzt wissen wir, dass unsere String gültig ist.
Wir wollen berechnen die Länge zu halten.
Was ist wohl das erste was wir tun wollen?
>> PUBLIKUM: Neu int, das ist die Länge.
ALLISON BUCHHOLTZ-AU: Genau.
PUBLIKUM: Und wir wollen es zu setzen?
ALLISON BUCHHOLTZ-AU: 0.
Perfect.
In Ordnung.
Nun, was wollen, zu tun?
Das ist wirklich der Großteil davon.
Go for it.
>> PUBLIKUM: Also Sie wahrscheinlich eine for-Schleife.
Und dann da, wenn Sie anrufen s du bist immer die Adresse des ersten Sache,
Sie beginnen mit i gleich 0.
Und dann, solange x plus i ist nicht zurück Slash 0.
ALLISON BUCHHOLTZ-AU: Die Null-Terminator.
PUBLIKUM: Die Null-Terminator.
Dann sind Sie ein bis Länge.
>> ALLISON BUCHHOLTZ-AU: Yeah.
OK, so können wiederum, dass in sehr konkreten Code.
Aber das ist die perfekte Idee.
Das ist genau das, was wir tun.
Wir werden das Iterieren zu sein durch mit dem Zeiger.
Also, was wir tun wollen ist anstelle eines int
hier, weil wir nicht unter Bezugnahme auf ein es.
Wir fahren nach dem Start eine Bezugnahme String, dass anfangen, einige Adresse,
richtig?
>> So wollen wir einen Zeiger.
Also werden wir, um etwas char Sterne haben, weil es in unseren s entspricht, oder?
Das ist also ein Punkt wir Initialisieren zum Anfang der Zeichenfolge, OK?
Also nennen wir es nur i.
Wenn es der Anfang der Zeichenfolge, was es geht um zugeordnet werden?
Nicht 0.
Wir wollen, dass es das sein Start unserer String.
Was stellt den Beginn unsere String, der uns gegeben ist?
>> PUBLIKUM: Just s.
>> ALLISON BUCHHOLTZ-AU: s.
Also das schafft einige neue Zeiger, stellt den Beginn unserer String, OK?
Ein anderer Weg, um daran zu denken ist wie hier ist unser Angebot.
Das ist unser String, s.
Also lassen Sie uns sagen, das ist das ersten Punkt, und das ist 0x4.
04.
Das ist unser s, die diese Adresse enthält.
Und wir haben gerade ein anderes namens erstellt ich, dass gerade bezieht sich auf die gleiche Sache.
Also sie sind beide nur den Hinweis zum Anfang der Zeichenfolge.
Dies ist nur eine grafische Darstellung.
>> So jetzt, was wir wollen zu tun ist, wir durchlaufen möchten
unsere Bedingung zur Iteration durch unsere String.
Jetzt einkaufen.
Got to Shop, Jungs.
Ist, dass wir, um die Aktualisierung, bis halten wollen erreichen wir das Nullabschluss, richtig?
Also, was könnte das aussehen?
Wollen wir, dass i, oder wollen wir Sterne i ist die Frage?
Ist das Nullabschluss eine Adresse oder etwas an einer Adresse befindet?
An einer Adresse befindet, oder?
>> Also brauchen wir Dereferenzierung was auch immer hier, denn das ist nur einige Adressen.
Um tatsächlich an den Start zu bekommen wir brauchen, um diese Dereferenzierung
so dass wir tatsächlich bekommen was ist in diesem ersten Platz.
Also, wenn wir tun, Star I, was gehen wir nicht wollen, dass es gleich?
PUBLIKUM: Zurück Schrägstrich?
>> ALLISON BUCHHOLTZ-AU: Es.
Ist das sinnvoll, um alle?
Wir müssen in unsere String gehen und stellen Sie sicher, dass es nicht das Ende.
Und dann können wir nur zu aktualisieren wie diese.
Normale Aktualisierung.
So lange, wie diese sind Met, was müssen wir tun?
>> PUBLIKUM: Länge plus plus.
>> ALLISON BUCHHOLTZ-AU: Mm-hm.
Und dann nach der for-Schleife endet, was wollen wir zurückkehren?
PUBLIKUM: Länge?
ALLISON BUCHHOLTZ-AU: Länge.
Dort gehen Sie.
Offensichtlich ist das Fleisch von diesem ist das Verständnis dieser for-Schleife.
Hat jeder bekommen, wie das funktioniert?
Ich bin froh, wieder über sie gehen.
>> PUBLIKUM: Die zweite Teil, so der Star I gibt,
das ist die Adresse des first--
ALLISON BUCHHOLTZ-AU: Es ist nicht die Adresse.
Es ist, was bei.
PUBLIKUM: Das ist eigentlich drin.
ALLISON BUCHHOLTZ-AU: Das ist was ist eigentlich drin.
Das ist also saying-- lassen mich machen diese besser.
Das ist also 0x04, und ich werde einfach zu sagen, ich werde diesen meinen Namen zu machen.
Ok.
Ja, ich weiß, ich habe Quiz Rückblick heute Abend.
Viele Quiz Bewertung.
Also sagen wir mal diese Zeichenfolge mein Name ist, Allison.
Wenig chaotisch, aber es ist da.
Und s repräsentiert den Ort von wo der String beginnt,
so werde ich dies machen real-- dies ist die Adresse a,
wo der String beginnt, oder?
>> Also, was wir hier tun, ist, dass wir wollen, verwenden Zeiger durch laufen.
So schaffen wir einige Zeiger, i, dass auch gleich zu Beginn der Zeichenfolge.
Und an jedem Punkt, wir wollen weiter gehen durch den Array
hier, bis wir uns auf den Nullabschluss.
So wollen wir immer überprüfen, was ist an jeder dieser Adressen.
>> Also haben wir Dereferenzierung i, so dass das erste Mal, dass wir es wir tun
sagen, OK, was ist an der Adresse 0x04?
Es ist ein ein.
OK, wir sind gut.
Stellinkrementlänge.
Weiter zum nächsten.
So i-- erinnern Zeigern Erhöhung durch die Größe, was auch immer sie auf den Hinweis.
So dass in diesem Fall, da es ein char, wird es von einem Update.
So, jetzt werden wir bei 5 aussehen, das heißt, es ist vorbei gehen hier.
Also heißt es, weiter mit 0x05.
Was ist da drin?
Es ist ein l.
Und es wird weiterhin tun, dass bis er auf diese ein.
Und er sagt, OK, was in was auch immer-Adresse das ist?
Die Null-Terminator, OK.
Ausgang.
Und gerade Länge zurück.
Denn Sie brauchen, was ist eigentlich bei diese Adresse, nicht die Adresse selbst.
>> Es gibt sehr wenige Orte, an denen Sie tatsächlich benötigen die Adresse.
Die meiste Zeit, wenn Sie verwenden das und es ist
wenn Sie zuerst sind Zuweisen eines Zeigers oder wenn
Sie übergeben Sie in eine andere Funktion.
OK, jeder gute da?
So'ne Art?
Ok.
>> So sieht es aus, als hätten wir bekam etwa 12 Minuten stehen gelassen,
so werden wir fortfahren, vielleicht unsere letzte Problem,
und dann gibt es jede Konzepte, die kommen haben
in der Zwischenzeit können wir schnell über das gehen.
>> Also Schaltgeräten wird die letzte Problem hier, switch-Anweisungen.
So ist Ihre Aufgabe, diese neu zu schreiben so dass es die gleiche verhält
aber nicht verwendet Switches.
Chalky Händen.
Also noch Fragen zu diesem von der Fledermaus?
Keiner?
Ok.
Hat jeder verstehen, dass, wenn die Fall hat nichts, nachdem es,
es bedeutet, dass es folgen Sie der nächste Schritt?
So Gehäuse 1 und 2 in diesem Fall tun genau dasselbe.
Manchmal ist ein Punkt der Verwirrung.
>> In Ordnung.
Wer irgendwelche Ideen?
Ja?
>> PUBLIKUM: So kann man nur tun, wenn Aussagen.
>> ALLISON BUCHHOLTZ-AU: Mm-hm.
Also, was ist unsere erste?
>> PUBLIKUM: Wenn n gleich 1 entspricht, und die 2 Leitungen für oder n gleich
gleich 2 ist, dann drucken klein.
Und dann kann man sonst tun, wenn?
Oder können Sie nur tun, wenn ein?
>> ALLISON BUCHHOLTZ-AU: Sie können, wenn sonst tun?
>> PUBLIKUM: Wäre es egal, ob man, wenn zu tun?
ALLISON BUCHHOLTZ-AU: Also es tut.
Hat anyone-- ja, Sie wird die gleiche Leistung zu erhalten
wenn Sie nur ifs Vergleich verwenden wenn Sie sonst ifs verwenden.
Kann euch denken über den Grund warum möchten Sie vielleicht ein anderes zu verwenden
wenn gegenüber einem viel ifs?
Hat mit Effizienz.
Ja?
>> PUBLIKUM: Es wäre zu prüfen alle ifs jedesmal.
>> ALLISON BUCHHOLTZ-AU: Also selbst wenn traf es diese erste,
es wäre beim Check fahren jedes andere.
Sie wollen also, wenn sonst ifs in Fällen verwenden möchten wobei nur eine von ihnen überhaupt anzuwenden.
So gegenseitige Ausgrenzung was wir zu sagen pflegen.
Wenn Sie eine Reihe von ifs haben, bedeutet dies, dass vielleicht mehr als einer von ihnen
Angelegenheiten, und vielleicht mehr als eine von ihnen wahr sein kann.
Und Sie beide wollen ausführen, wenn sie wahr sind.
Wenn Sie nur einen von ihnen zu arbeiten in diesen Fällen gegenseitig aus,
Sie, wenn zu bedienen anderes, da wollen alles hat mit Effizienz zu tun.
Ihr Code wird nur besser gestaltet wenn es hält sich an dieser Praxis.
Also in diesem Fall werden wir eine else if haben.
Und das wäre?
>> PUBLIKUM: n gleich gleich 3.
ALLISON BUCHHOLTZ-AU: Perfect.
Druckmedium.
Und dann in unserem letzten Fall, was haben wir?
Else oder else if?
PUBLIKUM: Else.
>> ALLISON BUCHHOLTZ-AU: Haben wir want-- Sie möchten else if, weil wir konkrete Fälle.
Es ist nicht eine Art catch all.
Wenn Sie in einer switch-- hatte eine Standard erinnern in Schaltern können Sie Fall haben,
und dann haben Sie standardmäßig.
Wenn Sie eine Standard hatte, ist diese Art Ihrer else-Anweisung gibt.
Aber wenn es nur Fälle hat, das bedeutet, Sie müssen
zu überprüfen, um zu sehen, ob sie jeden dieser ist.
So dass in diesem Fall wäre es das 4 oder 5.
Wir wollen einen Druck aus.
Es ist groß.
Und los gehts.
Und das wäre Ihr Programm sein.
>> Also in diesem Fall, wenn wir hatte eine Standard etwas,
wir würden ein anderes in haben was auch immer es wollte, dass wir tun.
Also das ist eine gute Unterscheidung zu wissen, zu verstehen.
Heißt das mit Schaltern für Sie helfen?
Perfect.
In Ordnung.
>> Wir haben etwa acht Minuten.
Habt ihr irgendwelche andere hochrangige Konzepte?
Fragen im Allgemeinen?
Ja?
>> PUBLIKUM: Ich hatte eine Frage zu einem von ihnen
das war der Zufalls Zahlengenerator auf Quiz Null.
ALLISON BUCHHOLTZ-AU: Oh, dass man.
Dass man eine andere, wo ist es ist mehr Mathe than-- ja.
Die Lösung selbst ich, wenn dass-- Ich sehe es, ich bin wie, was ist das.
>> PUBLIKUM: Es war die Nummer 7.
>> ALLISON BUCHHOLTZ-AU: Es ist seltsam, meiner Meinung nach.
Also im Grunde Sie wollen um drand48, Gebrauch,
geben Ihnen einige Zahl zwischen 0 und 1.
Und Sie müssen es so verwenden wollen dass Sie irgendwie A--
und es ist viel mehr von einem mathematischen Problem für mich, als ich denke, ein CS Problem.
>> Die Art und Weise, die Sie es-- tun und manchmal wird es einfach so sein.
Wiederum sind die Fälle, in denen es ist eine Art
der wie schreiben, was Sie kann und einen Teil des Kredits.
Also, wenn wir wollen, dass eine Rückkehr, wir wissen, dass wir
werde drand48 verwenden in gewisser Weise, nicht wahr?
Also warum nicht wir notieren Sie nur, dass nach unten.
Wir verwenden es in irgendeiner Weise.
Die Art und Weise, die sie haben Sie Kerle nutzen es
wie dieses, das werde ich versuchen, zu erklären.
>> Also im Grunde, was hier passiert, ist, weil es zwischen 0 und 1,
was du tust ist Ihnen Multiplikation sind nach-- das ist sehr viel eine Rechenaufgabe.
Nur vollständigen Haftungsausschluss ist dies komplett eine Rechenaufgabe.
Was Sie tun, ist weil aus 0 und 1 und man
wollen, dass es in sein Dieser Bereich, die Sie tatsächlich
herauszufinden, wie groß der Bereich ist, und dann
Sie im Grunde vergrößere es auf, Das ist, was dieser tut.
>> b minus a gibt Ihnen die Palette der Unterschied zwischen diesen Zahlen.
Sie können zwischen 0 multiplizieren und 1, und dann eine gerade
bedeutet, dass Ihre Skalierung bis so dass es zwischen a und b,
die ich nicht wirklich dieses Problem gerne.
Wie gesagt, dieses Quiz soll umfassen
Menschen, die weniger bequem sind, irgendwo dazwischen,
und bequemer.
Also, wenn sie es so gemacht dass es etwas war,
dass jeder am weniger bequemen Platz bekommen würde,
würden wir viel zu viele haben Menschen Scoring perfektioniert,
und desto wohler wäre langweilig.
>> So haben sie immer diese Art von Gehirn Teaser Fragen
, die gemeint sind, um ein wenig härter sein dass nehmen Sie sich etwas kreatives Denken.
Wenn Sie sie sehen, nicht bekommen, auch ratlos.
Ich würde auf jeden Fall sagen, Flip durch die zuerst ins Quiz.
Bewältigung der Probleme dass Sie wissen, Sie können,
denn es hat keinen Zweck, stecken zu bleiben an einem Problem, wenn es drei
vier oder fünf an der Seite danach können Sie ganz einfach tun.
>> PUBLIKUM: Warum genau wollen Sie multiplizieren sie mit dem Bereich?
>> ALLISON BUCHHOLTZ-AU: Man multipliziert den Bereich, Sie wissen-- es ist wie, wie viel, nachdem ein
wollen Sie?
So können Sie sich vorstellen können, weil es gibt eine Zahl zwischen 0 und 1,
du davon als Prozentsatz denken können.
So ist es im Grunde sagen, wenn wir unsere Nummer Linie hier, ist ein hier
und b ist hier.
Du bist wie, wie viel Vergangenheit eine ist das?
Ist alles, was wir tun.
Sie sind also nur zu fragen für die Prozentsatz dieser Bereich, der
ist, was es geben wird.
Und dann haben Sie im Grunde nur verkleinere sie durch Zugabe ein.
Es ist eine mathematische Denksportaufgabe.
>> Wenn es einen Last-Minute-Tipps, ich würde Flip durch die Fragen sagen,
herauszufinden, welche Sie wissen, dass wie, oh Ich habe diese.
Fast sicher sie zu gehen sein Fragen, die Sie nicht wissen,
oder, dass Sie gehen, um Zeit zu haben sind für, so treffen Sie Ihre Stärken, OK?
Ihr Jungs sind großen gehen.
Es gibt eine Menge von Fragen für einen Grund,
so dass Sie Zeit haben, um Art haben die Möglichkeit
zu dem, was zu demonstrieren du bist wirklich gut.
Also, es ist OK, wenn Sie nicht in allem gut.
Spielen Sie Ihre Stärken.
Ja?
>> PUBLIKUM: Also das wird zurück etwas, das abgeschnitten ist?
Ja, es wird, weil Drand Renditen zwischen 0 und 1.
Es wird ein int zurück, denn es wird abgeschnitten
wenn wir hinzufügen, ein oder mehrfach von ihm.
Cool.
Alle Last-Minute-Fragen?
>> Ihr seid großartig zu tun.
Du wirst fabelhaft zu sein.
Und selbst wenn nicht, wird es sein candy hier nächste Woche.
Und ich werde dich lieben.
Ich werde euch unabhängig lieben.
Alles klar, jeder, viel Glück.
Haben Sie eine tolle Zeit.
Du wirst in Ordnung zu sein.
Und wissen Sie was?
In zwei Tagen, es wird vorbei zu sein, während ich
haben zwei Halbzeiten am Donnerstag, so mindestens euch getan wird.
Also gut, ich werde euch nächste Woche.