DOUG LLOYD: Alles klar. So, jetzt anzugehen eine Enttäuschung wirklich großes Thema, Funktionen. So weit in der natürlich die ganze Programme, die wir haben zu schreiben haben in der Haupt geschrieben worden. Sie sind ziemlich einfache Programme. Sie brauchen nicht, um alle diese haben Niederlassungen und Dinge passiert. Wir können einfach passen sie alle Innenseite der Haupt und erhält nicht furchtbar überwältigend. Aber wie der Kurs geht weiter und wie Sie, um Programme zu entwickeln beginnen unabhängig, sie sind wahrscheinlich zu starten, um eine Menge mehr als 10 zu erhalten oder 15 Zeilen. Man könnte Hunderte oder Tausende erhalten oder Zehntausende von Codezeilen. Und es ist wirklich nicht so verrückt ein Gedanke. Als solches ist es wahrscheinlich keine gute Idee, für alles, was im Inneren des Haupt halten. Es kann ein wenig schwer zu finden was Sie, wenn Sie das tun suchen. Glücklicherweise, wenn auch C, und so ziemlich jede andere Programmiersprache, funktionieren könnte mit erlaubt uns auf Funktionen zu schreiben. Und ich werde einfach einen kurzen Seite hier zu erwähnen, dass Funktionen ein Bereich der Informatik. Und Sie werden viel mehr von ihnen zu sehen, verschiedenen Punkten im Verlauf und wenn Sie weiter auf. Wo gibt es eine Menge von Synonyme für dasselbe Wort. So dass die Funktionen, die wir anrufen. Aber könnten Sie auch hören, wie sie bezeichnet als Verfahren, oder Methoden, vor allem, wenn Sie jemals jede objektorientierte Programmierung getan before-- und mach dir keine Sorgen wenn Sie nicht haben, nicht ein großer Deal-- aber in Prüfungsorientierten Sprachen häufig genannt Methoden. Manchmal werden sie Unterprogramme aufgerufen. Aber sie wirklich alle auf auf der gleichen Grundidee. Mal sehen, was diese Idee ist. Was ist eine Funktion? Nun eine Funktion ist wirklich nichts anderes als eine Black Box. Ein Black-Box, die einen Satz von null hat oder mehreren Eingängen und einem einzelnen Ausgang. So zum Beispiel, diese kann eine Funktion sein. Dies ist eine Funktion namens func. Und es dauert drei Eingänge a, b, und c. Und innerhalb dieser Black-Box, wir weiß nicht genau, was sie tut, aber es die Eingaben verarbeitet in irgendeiner Weise und dann gibt einen einzigen Ausgang, im vorliegenden Fall z. Nun, es zu machen ein wenig weniger abstrakt, wir könnte vielleicht sagen, dass wir eine Funktion mit dem Namen hinzufügen, dass dauert drei Eingänge a, b, und c und verarbeitet die Ausgabe in irgendeiner Weise im Inneren der Black Box an erzeugen eine einzige Ausgabe. Also in diesem Fall, wenn fügen dauert 3, 6 und 7. Irgendwo in der Add-Funktion, würden wir erwarten, dass sie zusammengezählt werden um die Ausgabe, die zu produzieren 3 plus 6 plus 7 oder 16. In ähnlicher Weise eine Funktion namens müssen Sie mult, der zwei Eingänge A und B stattfindet, verarbeitet sie in irgendeiner Weise solchen dass der Ausgang des Funktions ist das Produkt der beiden Eingänge. Die beiden Eingänge miteinander multipliziert. 4 und 5 wird in mult geleitet, etwas passiert, das Ausgangs wir erwarten ist 20. Warum nennen wir es eine Black Box? Nun, wenn wir nicht das Schreiben der Funktionen selbst, die wir haben ziemlich viel so weit CS50 getan. Wir haben Druck f gesehen, zum Beispiel, die ist eine Funktion, die wir nicht zu schreiben uns, aber wir haben die ganze Zeit. Wenn wir nicht zu schreiben die Funktionen selbst, Wir brauchen nicht wirklich zu wissen, wie es ist tatsächlich unter der Haube realisiert. So zum Beispiel die Black Box I nur zeigte, die Sie für Multiplikation, mult a, b sein könnte defined-- und dies ist nur einige pseudocode-- könnte als Ausgabe eine Mal b definiert. Das Sinn, richtig. Wenn wir eine Funktion namens haben mult, die zwei Eingänge erfolgt. Wir würden erwarten, dass der Ausgang würde werden die zwei Eingänge miteinander multipliziert, a mal b. Mult aber könnte auch wie diese umgesetzt werden, wir haben eine Zählervariable, um Innere mult auf 0 gesetzt zu werden. Und dann haben wir diesen Vorgang wiederholen b mal Add a Gegen. Zum Beispiel, wenn wir multiplizieren 3a durch 5b, könnten wir Zähler auf 0 gesetzt sagen wiederholen Sie fünf Mal, fügen Sie 3 bis Zähler. So starten wir bei 0, und dann tun wir dies fünf Mal 3, 6, 9, 12, 15. Es ist das gleiche Ergebnis. Wir immer noch 3 mal 5 gerade die Umsetzung ist anders. Das ist, was wir meinen, wenn wir sagen, eine Black Box. Es bedeutet nur, dass wir nicht wirklich interessieren wie es unter der Haube umgesetzt Solange der Ausgang ist, was wir erwarten. In der Tat, das ist Teil des Vertrags der Verwendung von Funktionen, insbesondere Funktionen, die andere schreiben. Das Verhalten wird immer typischen, unvorhersehbar zu sein basierend auf dem Namen der Funktion. Und deshalb ist es wirklich wichtig, wenn Sie Funktionen schreiben oder wenn andere Leute schreiben Funktionen, die Sie verwenden können, dass diese Funktionen haben klare, relativ offensichtlich Namen, und sind gut dokumentiert. Das ist sicherlich der Fall, für die Funktion wie Print f. Also, warum wir verwenden Funktionen? Nun, wie ich bereits sagte, wenn wir schreiben, alle unsere Code innerhalb der wichtigsten Dinge, kann wirklich umständlich zu bekommen und wirklich kompliziert. Funktionen erlauben uns die Möglichkeit, um Dinge zu organisieren und zu brechen ein sehr kompliziertes Problem in viel mehr überschaubare Unterteile. Funktionen erlauben uns auch, Vereinfachung des Kodierungsprozess. Es ist viel einfacher, eine 10 debuggen Linienfunktion gegenüber einer 100 Linie Funktion oder eine 1.000 Linienfunktion. Wenn wir nur zu debuggen kleine Stücke zu einem Zeitpunkt, oder schreiben Sie kleine Stücke zu der Zeit, es macht, dass die Programmier-Erfahrung viel besser. Vertrauen Sie mir auf, dass man. Schließlich, wenn wir schreiben Funktionen, die wir können diese verschiedenen Teile wiederverwenden. Funktionen können recycelt werden. Können sie verwendet werden in ein Programm oder eine andere. Du hast bereits geschrieben die Funktion, alle, tun müssen, ist zu sagen, dass Programm wo um diese Funktion zu finden. Wir haben das Recycling und die Verwendung von drucken f seit über 40 Jahren. Aber es wurde nur einmal geschrieben werden. Ziemlich nützlich, richtig. Gut. So Funktionen sind groß. Wir wissen das. Lassen Sie uns jetzt beginnen zu schreiben. Lassen Sie uns anfangen, sie in unsere Programme. Um das zu tun, die erste was wir tun, ist, erklären die Funktion. Wenn Sie eine Funktion zu deklarieren was Sie im Grunde tun, sagt dem Compiler, hey, nur damit Sie wissen, Ich werde sein Schreiben eine Funktion später und hier ist, was es aussehen würde. Der Grund dafür ist weil Compiler können tun einige seltsame Dinge, wenn sie eine Reihe von Symbolen zu sehen dass sie nicht vertraut sind. So geben wir nur den Compiler ein Heads-up, ich bin die Schaffung einer Funktion und es wird, dies zu tun. Funktionsdeklarationen in der Regel, wenn Sie Ihren Code der Organisation in einer Weise, daß andere in der Lage, zu verstehen und zu nutzen, Sie in der Regel wollen alle setzen Ihre Funktionsdeklarationen an der Spitze des Codes, rechts bevor Sie mit dem Schreiben Haupt sogar beginnen. Und bequem, da ist ein sehr Standard-Form dass jeder Funktionsdeklaration folgt. Sie sind alle so ziemlich so aussehen. Es gibt drei Teile zu einem Funktions Erklärung, Rückgabetyp, Name, und Argumentliste. Jetzt ist der Rückgabetyp ist, welche Art von Variable Die Funktion wird ausgegeben. So zum Beispiel, wenn wir wieder eine denken Minute vor, um die Multiplikation zweier Zahlen-Funktion, was erwarten wir, wenn Multipliziert man eine ganze Zahl mit einer ganzen Zahl der Ausgang wird wahrscheinlich eine ganze Zahl, richtig. Multipliziert zwei Ganzzahlen zusammen, eine ganze Zahl erhalten Sie. So der Rückgabetyp, dass Funktion wäre int. Name ist, was Sie wollen auf Ihre Funktion aufrufen. Dies ist wahrscheinlich der am wenigsten wichtige Teil der Funktionsdeklaration, in Bezug auf Funktionalität. Ist aber eigentlich wohl eine der wichtigsten Teile der Funktionsdeklaration in Bezug auf zu wissen, was die Funktion tatsächlich tut. Wenn Sie Ihre Funktion f oder g benennen oder h oder Geheimnis oder etwas ähnliches, du bist wahrscheinlich zu bekommen, ein wenig stolperte aufgegeben, zu erinnern, was diese Funktionen zu tun. So ist es wichtig, geben Sie Ihre aussagekräftige Namen Funktion. Schließlich ist Argumentliste die durch Kommata getrennte Liste aller Eingänge auf Ihre Funktion, von denen jedes einen Typ und einen Namen. Also nicht nur haben Sie zu angeben, welche Art von variablen Die Funktion wird Ausgang, Sie wollen auch angeben Welche Art und Variablentypen der Funktion als Eingänge akzeptieren werden. Lassen Sie uns so tun, hier ein Beispiel. Lassen Sie uns einfach einen Blick bei einer konkreteren ein. Also hier ist ein Beispiel für eine Funktion Deklaration für eine Funktion, würden zwei ganzen Zahlen addieren. Die Summe der beiden Zahlen ist los eine ganze Zahl sein und, wie wir gerade diskutiert. Und so der Rückgabetyp, hier in grün, wäre int. Das sagt uns, dass zwei ints fügen Sie einfach Nahmen am Ende des Tages, Ausgang oder spucken es wieder heraus zu uns, eine ganze Zahl. Gegeben, was diese Funktion tut uns wollen, dass es einen aussagekräftigen Namen zu geben. Fügen Sie zwei ints scheint falls unter Berücksichtigung wir nehmen zwei ganzen Zahlen als Eingänge und hoffentlich sie zusammen Hinzufügen. Es könnte ein bisschen mühsam sein Name und ehrlich gesagt diese Funktion ist wohl nicht nötig da wir die Zugabe Operator, wenn Sie von unserem erinnern Diskussion von Betreibern, die zuvor. Aber lasst uns einfach sagen, dass aus Gründen der Argument, dass diese Funktion ist nützlich, und so werden wir nennen es zwei ints hinzuzufügen. Schließlich nimmt diese Funktion zwei Eingängen. Von denen jede eine ganze Zahl ist. So haben wir dieses Komma getrennte Liste von Eingängen. Jetzt in der Regel wollen wir einen Namen für jeden von ihnen so dass sie verwendet werden können, innerhalb der Funktion. Die Namen sind nicht sehr wichtig. In diesem Fall wir nicht unbedingt einen Sinn mit ihnen verbunden. So dass wir nur nennen sie a und b. Das ist völlig in Ordnung. Wenn jedoch, finden Sie, sich in einer Situation wobei die Namen der Variablen, könnte in der Tat wichtig, möchten Sie vielleicht, sie zu nennen etwas anderes als A und B ihnen etwas mehr zu geben symbolisch sinnvoll. Aber in diesem Fall, wir nicht wirklich alles, was über die Funktion kennen. Wir wollen nur zwei ganzen Zahlen hinzuzufügen. Also haben wir einfach anrufen werde diejenigen ganzen Zahlen a und b. Das ist ein Beispiel dafür. Warum gehst du nicht eine Sekunde dauern mehr über diese man denken, wie würden Sie eine Funktion schreiben, Deklaration für eine Funktion, Multipliziert zwei Gleitkommazahlen? Erinnern Sie sich, was für ein Fließkommazahl ist? Was würde diese Funktion Erklärung aus? Ich wirklich empfehlen Ihnen, das Video anzuhalten hier und nehmen Sie, wie viel Zeit Sie benötigen. Überlegen Sie, was diese Funktionsdeklaration würde? Was wäre der Rückgabetyp sein? Was wäre ein sinnvollen Namen geben? Was wären die Eingänge sein? Also, warum nicht Sie das Video hier pausieren und der Zuschreibung zu einer Funktionsdeklaration für eine Funktion, vervielfachen würde zwei Fließkommazahlen zusammen. Hoffentlich haben Sie das Video angehalten. Werfen wir also einen Blick auf ein Beispiel eine mögliche Erklärung. Float mult zwei Realen float x, float y. Das Produkt zweier Fließkommazahlen, was zu erinnern, wie wir sind stellen reelle Zahlen oder Zahlen mit Nachkommastellen Werte in C, wird eine Fließkommazahl sein. Wenn Sie vermehren sich ein Dezimalzahl durch eine Dezimalzahl, sind Sie wahrscheinlich, um eine Dezimalstelle zu bekommen. Sie wollen, dass es einen entsprechenden Namen zu geben. Multiplizieren Sie zwei Realen scheint in Ordnung. Aber Sie wirklich nennen könnte es mult zwei Schwimmern oder mult schwimmt. So etwas, solange es gaben einige tatsächliche Bedeutung zu, was Diese Black Box war zu tun. Und wieder, in diesem Fall, wir nicht zu haben scheinen einen Sinn angebracht den Namen der Variablen wir vorbei an, so nennen wir sie einfach x und y. Nun, wenn Sie ihnen etwas nennen anderes, das ist völlig in Ordnung. In der Tat, wenn Sie getan haben diese Erklärung statt mit Doppelzimmer statt von Schwimmern, wenn Sie sich erinnern, dass Doppel sind eine andere Möglichkeit, genauer geben reellen Zahlen oder Gleitkomma-Variablen. Das ist zu vollkommen in Ordnung. Entweder einer von denen wäre in Ordnung. In der Tat gibt es einige verschiedene Kombinationen von Möglichkeiten, um diese Funktion zu deklarieren. Aber das sind zwei ziemlich gute. Wir haben eine Funktion deklariert, das ist großartig. Wir haben den Compiler, was es gesagt, ist, was wir zu tun. Lassen Sie uns nun eigentlich schreiben diese Funktion. Geben wir es eine Definition, so dass im Inneren der Black Box vorhersagbares Verhalten geschieht. Tatsächlich sind wir Multiplizieren zweier Real Zahlen zusammen, oder Addieren von Zahlen zusammen, oder zu tun, was es ist dass wir fragten unseren Funktion zu tun ist. Also in der Tat, lassen Sie uns versuchen und zu definieren multiplizieren zwei Realen, die wir gerade sprach über eine zweite vor. Nun der Beginn Eine Funktionsdefinition sieht fast genau das gleiche als Funktionsdeklaration. Ich habe sie beide hier. An der Spitze ist die Funktion Erklärung, Typ, Name, durch Komma getrennte Argument Liste Semikolon. Das Semikolon zeigt an, dass das ist eine Funktionsdeklaration. Der Beginn der Funktion Definition sieht fast genauso aus das gleiche, Typ, Name, durch Komma getrennt Argumentliste, kein Semikolon, öffnen geschweifte Klammer. Die offene geschweifte Klammer, so wie wir haben getan mit den wichtigsten, bedeutet, dass wir uns jetzt beginnen zu definieren, was im Inneren der Black Box vor, dass haben wir beschlossen, mult zwei Realen nennen. Hier ist eine Möglichkeit, sie umzusetzen. Man könnte sagen, wir könnten eine neue zu erklären Variable vom Typ float genannte Produkt und weisen Sie die Variable auf den Wert x mal y. Und dann zurück Produkt. Was bedeutet Rück meine hier. Nun ist der Weg Rückkehr Wir zeigen, das ist, wie wir Passieren der Ausgang wieder heraus. So etwas zurück, ist die gleiche wie, Dies ist der Ausgang der Blackbox. Also das ist, wie Sie es tun. Hier ist ein weiterer Weg, um sie umzusetzen. Wir konnten nur x mal y zurück. x ist ein Schwimmer. y ist ein Schwimmer. So x mal y ist auch ein Schwimmer. Wir wissen nicht einmal brauchen, um Erstellen Sie eine andere Variable. Also das ist eine andere Art, Umsetzung der exakt gleichen schwarzen Kasten. Nun nehmen Sie einen Moment, das Video erneut zu unterbrechen, und zu versuchen, und definieren fügen Sie zwei ints, Das ist die andere Funktion, die wir sprach von vorhin. Wieder hier, habe ich die Funktion gesetzt Erklärung, und so das Semikolon, und eine offene geschweifte Klammer und einen geschlossenen geschweiften Klammer, um anzuzeigen, wo wir zu füllen in die Inhalte fügen Sie zwei ints, so dass wir definieren die insbesondere Verhalten im Inneren der Black Box. So unterbrechen Sie das Video. Und nehmen Sie so viel Zeit wie Sie brauchen, um zu versuchen und zu definieren eine Implementierung fügen Sie zwei ints, wie dass, wenn die Funktion gibt einen Wert, es hat in der Tat Rück die Summe der zwei Eingänge. So wie im vorherigen Beispiel, Es gibt verschiedene Möglichkeiten, dass Sie implementieren könnte fügen Sie zwei ints. Hier ist einer. Im hier in orange hab ich nur hatte einige comments-- Ich habe soeben einige Kommentare, um anzuzeigen, was auf jeder Codezeile geschieht. Also habe ich eine Variable zu deklarieren genannte Summe vom Typ int. Ich sage Summe entspricht einem plus b. Das ist, wo wir tatsächlich tun, die Arbeit Zugabe a und b zusammen. Und ich wieder Summe. Und das macht Sinn, weil Summe ist eine Variable vom Typ int. Und was ist der Datentyp, der diese Funktion sagt mir, es ist die Ausgabe geht? Int. Also ich bin der Rückkehr Summe, die eine Integer-Variable. Und das macht Sinn gegeben, was wir deklariert und definiert unsere Funktion tun. Jetzt können Sie auch festlegen, die Funktion auf diese Weise, int Summe gleich ein Plus b-- gesagte erste step-- und dann, zurück Summe. Jetzt können Sie auch haben könnte implementiert es auf diese Weise, die ich sehr nicht empfohlen. Das ist schlechter Stil für eine Sache und wirklich schlechtes Design, aber es hat in der Tat arbeiten. Wenn Sie diesen Code, die int nehmen addieren schlechtes Addierer Punkt c, und verwenden Sie es. Es eigentlich gar hinzufügen zwei ganzen Zahlen zusammen. Es ist eine sehr schlechte Umsetzung dieses bestimmten Verhaltens. Aber es funktioniert. Es ist nur hier, um zu veranschaulichen der Punkt, den wir nicht wirklich egal, was im Inneren passiert, die Black Box, so lange, da es die Ausgabe, die wir erwarten. Dies ist eine schlecht gestaltete Black Box. Aber am Ende des Tages, es tut noch geben die Summe von a plus b. Gut. Also haben wir Funktionen deklariert. Und wir Funktion definiert haben. Also das ist wirklich gut. Lassen Sie uns jetzt beginnen, um die Funktionen zu verwenden dass wir erklärt und wir definiert haben. Um eine function-- es ist eigentlich nennen hübsche easy-- alles, was Sie tun müssen, spielte es für angemessen Argumente, Argumente vom Datentyp , dass es erwartet, und weisen Sie dann die Rückkehr Wert dieser Funktion und this-- Entschuldigung mich- weisen Sie den Rückgabewert dieser Funktion etwas vom richtigen Typ. Lassen Sie uns also einen Blick auf dies in der Praxis in einer Datei genannte Addierer 1 Punkt C, die Ich habe in meinem CS50 IDE. So, hier ist Addierer 1 Punkt c. Am Anfang sehen Sie, ich habe meine enthält, Pfund sind, Standard-IO und CS50 dot h. Und dann habe ich meine Funktionsdeklaration. Dies ist, wo ich bin sagen dem Compiler, ich bin werde sein Schreiben ein Funktion namens fügen Sie zwei ints. Es ist zur Ausgabe eines gehen Typ Integer-Variable. Das ist, was dieser Teil ist hier richtig. Und dann habe ich zwei Eingänge, es zu einem und b, von denen jede eine ganze Zahl ist. Im Inneren des Haupt, den Benutzer zur frage ich Eingangs sagen, gib mir eine ganze Zahl. Und sie werden aufgefordert, zu vergessen, int, die eine Funktion ist, dass wird im CS50 Bibliothek enthalten. Und das wird in gespeichert x eine ganze Zahl, variabel. Dann wir sie für eine andere ganze Zahl aufgefordert. Wir bekommen eine andere ganze Zahl und zu speichern, dass in y. Und dann hier auf der Leitung 28 ist wo wir unsere Funktion Anruf. Wir sagen, int z equals Add 2 ints x Komma y. Sehen Sie, warum das sinnvoll? x eine ganze Zahl Variable vom Typ und y eine ganze Zahl mit variablem. Also das ist gut. Das Sinn mit dem, was unsere Funktion Erklärung auf der Leitung 17 aussieht. Das Komma getrennt Eingabeliste erwartet zwei ganze Zahlen a und b. In diesem Fall, wir nennen können ihnen, was wir wollen. Er erwartet, dass nur zwei ganzen Zahlen. Und x eine ganze Zahl und y eine ganze Zahl ist. Das funktioniert. Und wir wissen, dass Funktion wird zur Ausgabe eines ganzen Zahlen als gut. Und so werden wir die Speicherung der Ausgabe der Funktion, fügen Sie zwei ints, in einem Integer-Typ Variable, die wir fordern z. Und dann können wir sagen, dass die Summe von Prozent i und Prozent i Prozent i. x, y und z jeweils Ausfüllen diejenigen Prozent i ist. Was ist die Definition von fügen Sie zwei ints aussehen? Es ist ziemlich einfach. Es ist einer von denen, die wir gerade gesehen, vor einer Sekunde, int Summe entspricht einem plus b Rück Summe. Funktioniert das? Lassen Sie uns die Datei zu speichern. Und dann hier unten auf meinen Terminal Ich werde Addierer 1 zu machen, und ich löschen meinem Bildschirm. Ich werde es zu vergrößern, weil ich weiß, es ist ein wenig schwierig zu sehen. So erarbeiten wir dieses Programm als Addierer 1. So können wir dot Strich Addierer 1 zu tun. Geben Sie mir eine ganze Zahl, 10. Gib mir noch eine ganze Zahl, 20. Die Summe von 10 und 20 ist 30. Also haben wir einen erfolgreichen Funktionsaufruf. Sie können die Funktion erneut auszuführen, negativ 10, 17 Summe der negativen 10 und 17 ist 7. Diese Funktion arbeitet. Es hat das Verhalten dass wir erwarten, dass es. Und so haben wir einen erfolgreichen gemacht haben Funktion, Definition, Erklärung, und eine erfolgreiche Funktionsaufruf. Paar Sonstiges Punkte über Funktionen bevor wir Ende dieses Abschnitts. Daran erinnern, aus unserem Diskussion von Datentypen, zuvor, dass Funktionen kann manchmal keine Eingänge. Wenn das der Fall ist, werden wir erklären die Funktion wie mit einem Hohlraumargumentliste. Haben Sie, was der Rückruf häufigste Funktion wir bisher das dauert gesehen eine Leere Liste der Argumente zur? Es ist Haupt. Erinnern daran, dass Funktion manchmal haben nicht wirklich einen Ausgang. In diesem Fall wird die Funktion erklären wir, wie mit einem Rückgabetyp void. Lassen Abschluss dieses Abschnitts durch Bewältigung einer Praxis Problem. Also hier ist das Problem angelegt. Ich möchte Sie zu einer Funktion zu schreiben genannt gültige Dreieck. Was diese Funktion tun sollten wird drei reellen Zahlen zu nehmen daß die Längen der drei darstellen Seiten eines Dreiecks als Parameter, oder seine Argumente oder ihre inputs-- eine weitere Reihe von Synonymen dass Sie stoßen könnten. Diese Funktion sollte entweder Ausgangs wahr oder falsch je nachdem, ob diese drei Längen sind fähig, ein Dreieck. Haben Sie den Datentyp nicht vergessen, dass verwendeten wir richtig oder falsch ist, um anzugeben? Nun, wie Sie implementieren das? Nun weiß, es gibt ein paar der Regeln für Dreiecke die tatsächlich nützlich zu wissen. Ein Dreieck kann nur Seiten mit positiver Länge. Das macht Sinn. Du bist wahrscheinlich sagen, duh. Die andere Sache zu beachten ist jedoch, dass die Summe der Längen jedes zwei Seiten des Dreiecks, größer sein als die zu sein, Länge der dritten Seite. Das ist tatsächlich wahr. Sie können nicht über ein Dreieck von Seiten 1, 2 und 4, zum Beispiel, weil 1 plus 2 nicht größer als 4 ist. Das sind also die Regeln, bestimmen, ob die drei oder nicht Eingänge können ein Dreieck denkbar bilden. So nehmen Sie ein paar Minuten, und erklären, und dann definieren diese Funktion aufgerufen gültig Dreieck, so dass es tatsächlich hat die hier angegebene Verhalten. Gibt er true, wenn diese drei Seiten in der Lage sind, das eine Dreieck, andernfalls false Bereit, um zu sehen, wie Sie getan haben? Hier ist eine Umsetzung gültiger Dreieck. Es ist nicht der einzige. Yours könnte leicht variieren. Aber das man tut, in der Tat, das Verhalten, das wir erwarten. Wir erklären unsere Funktion in der Ganz oben, bool gültige Dreieck float x float y float z. Also noch einmal, diese Funktion dauert drei reellen Zahlen als Argumente, schwimm Punktwert-Variablen, und gibt ein richtig oder falsch Wert, der ein Boolean, Rückruf ist. Deshalb also der Rückgabetyp bool. Dann definieren wir die Funktion. Das erste, was wir tun, ist zu überprüfen, um sicherzustellen, daß alle Seiten sind positiv. Wenn x kleiner als oder gleich ist 0 ist, oder, wenn y gleich 0 ist, oder wenn z kleiner als oder gleich 0 ist, das kann ein Dreieck nicht sein. Sie haben keine positiven Seiten. Und so haben wir zurückkehren können falsch in dieser Situation. Als nächstes überprüfen wir, um sicherzustellen, dass jedes Paar von Eingängen größer ist als die dritte. Also, wenn x plus y kleiner ist oder gleich z, oder wenn x plus z kleiner ist als oder gleich y ist, oder wenn y und z kleiner oder gleich ist x, die auch kann kein gültiger Dreieck. So kehren wir wieder falsch. Angenommen, wir beide Prüfungen bestanden obwohl, dann können wir true zurück. Da diese drei Seiten sind in der Lage returning-- der Schaffung eines gültigen Dreieck. Und das ist es. Sie haben nun erklärt und definiert. Und Sie können in der Lage zu sein, jetzt verwenden und rufen Sie diese Funktion. Gut gemacht. Ich bin Doug Lloyd. Dies ist CS50.