1 00:00:00,000 --> 00:00:04,664 2 00:00:04,664 --> 00:00:05,580 DOUG LLOYD: Εντάξει. 3 00:00:05,580 --> 00:00:08,877 Έτσι τώρα ας αντιμετωπίσουμε μια πραγματικά μεγάλο θέμα, λειτουργίες. 4 00:00:08,877 --> 00:00:11,460 Μέχρι στιγμής, κατά τη διάρκεια, όλα τα τα προγράμματα που έχουμε γράψει 5 00:00:11,460 --> 00:00:12,969 έχουν γραφτεί στο εσωτερικό της κύριας. 6 00:00:12,969 --> 00:00:14,260 Είναι πολύ απλό προγράμματα. 7 00:00:14,260 --> 00:00:16,940 Δεν χρειάζεται να έχουν όλα αυτά κλαδιά και τα πράγματα συμβαίνουν. 8 00:00:16,940 --> 00:00:18,773 Μπορούμε να τα χωρέσεις όλα αυτά μόνο εσωτερικό των κύριων και 9 00:00:18,773 --> 00:00:20,407 δεν παίρνει τρομερά συντριπτική. 10 00:00:20,407 --> 00:00:22,990 Αλλά καθώς η πορεία συνεχίζεται και όπως μπορείτε να αρχίσετε να αναπτύξουν προγράμματα 11 00:00:22,990 --> 00:00:26,260 ανεξάρτητα, πρόκειται πιθανώς να αρχίσει να πάρει πολύ περισσότερα από ό, τι 10 12 00:00:26,260 --> 00:00:27,200 ή 15 γραμμές. 13 00:00:27,200 --> 00:00:31,400 Μπορείτε να πάρετε τις εκατοντάδες ή χιλιάδες ή δεκάδες χιλιάδες γραμμές κώδικα. 14 00:00:31,400 --> 00:00:34,690 Και δεν είναι πραγματικά ότι τρελό μια σκέψη. 15 00:00:34,690 --> 00:00:39,720 Ως εκ τούτου, δεν είναι πιθανώς μια καλή ιδέα να κρατήσει τα πάντα στο εσωτερικό της κύριας. 16 00:00:39,720 --> 00:00:43,240 Μπορεί να πάρει λίγο δύσκολο να βρεθεί τι ψάχνεις αν το κάνεις αυτό. 17 00:00:43,240 --> 00:00:47,040 >> Ευτυχώς, όμως, C, και λίγο πολύ κάθε άλλη γλώσσα προγραμματισμού που 18 00:00:47,040 --> 00:00:50,386 θα μπορούσε να λειτουργήσει με, επιτρέπει μας για να γράψει λειτουργίες. 19 00:00:50,386 --> 00:00:52,260 Και είμαι απλώς πρόκειται να ρίξτε μια γρήγορη άκρη εδώ 20 00:00:52,260 --> 00:00:54,971 να αναφέρουμε ότι οι λειτουργίες είναι ένας τομέας της επιστήμης των υπολογιστών. 21 00:00:54,971 --> 00:00:57,970 Και θα δείτε πολλά περισσότερα από αυτά σε διάφορα σημεία σε όλη τη διάρκεια 22 00:00:57,970 --> 00:00:59,290 και αν συνεχίσει. 23 00:00:59,290 --> 00:01:02,280 Όπου υπάρχει πολλή συνώνυμα της ίδιας λέξης. 24 00:01:02,280 --> 00:01:03,390 Έτσι, καλούμε τις συναρτήσεις. 25 00:01:03,390 --> 00:01:05,980 Αλλά μπορείτε επίσης να ακούσετε τους αναφέρεται ως διαδικασίες, 26 00:01:05,980 --> 00:01:09,570 ή μεθόδους, ειδικά αν έχετε ποτέ γίνει οποιαδήποτε αντικειμενοστραφή προγραμματισμό 27 00:01:09,570 --> 00:01:11,950 before-- και μην ανησυχείτε αν δεν έχετε, δεν 28 00:01:11,950 --> 00:01:14,280 ένα μεγάλο deal-- αλλά σε ελέγχου προσανατολισμένη γλώσσες 29 00:01:14,280 --> 00:01:16,129 είναι συχνά ονομάζεται μεθόδους. 30 00:01:16,129 --> 00:01:17,670 Μερικές φορές αν ονομάζεται υπορουτίνες. 31 00:01:17,670 --> 00:01:20,690 Αλλά πραγματικά όλα παραπέμπουν με την ίδια βασική ιδέα. 32 00:01:20,690 --> 00:01:22,480 >> Ας δούμε τι είναι η ιδέα. 33 00:01:22,480 --> 00:01:23,310 Τι είναι μια συνάρτηση; 34 00:01:23,310 --> 00:01:26,470 Λοιπόν μια λειτουργία είναι πραγματικά τίποτα περισσότερο από ένα μαύρο κουτί. 35 00:01:26,470 --> 00:01:31,430 Ένα μαύρο κουτί που έχει ένα σύνολο από μηδέν ή περισσότερες εισόδους και μια ενιαία έξοδο. 36 00:01:31,430 --> 00:01:33,420 Έτσι, για παράδειγμα, αυτό μπορεί να είναι μια λειτουργία. 37 00:01:33,420 --> 00:01:35,510 Αυτή είναι μια λειτουργία που ονομάζεται func. 38 00:01:35,510 --> 00:01:39,330 Και παίρνει τρεις εισόδους a, b, και c. 39 00:01:39,330 --> 00:01:42,580 Και μέσα σε αυτό το μαύρο κουτί, εμείς Δεν ξέρω ακριβώς τι κάνει, 40 00:01:42,580 --> 00:01:45,100 αλλά επεξεργάζεται τις εισόδους με κάποιο τρόπο και στη συνέχεια 41 00:01:45,100 --> 00:01:48,680 δίνει μία έξοδο, στην περίπτωση αυτή, z. 42 00:01:48,680 --> 00:01:50,504 Τώρα για να κάνει μια μικρή λιγότερο αφηρημένη, εμείς 43 00:01:50,504 --> 00:01:52,420 μπορούσαμε να πούμε ότι ίσως έχουν μια λειτουργία που ονομάζεται 44 00:01:52,420 --> 00:01:58,750 Προσθέτουν ότι παίρνει τρεις εισόδους Α, Β, και c και επεξεργάζεται την έξοδο με κάποιο τρόπο 45 00:01:58,750 --> 00:02:01,010 μέσα στο μαύρο κουτί για να παράγει μία έξοδο. 46 00:02:01,010 --> 00:02:05,190 Έτσι, στην περίπτωση αυτή, αν προσθέστε διαρκεί 3, 6, και 7. 47 00:02:05,190 --> 00:02:07,020 Κάπου μέσα στο προσθέστε τη λειτουργία, θα 48 00:02:07,020 --> 00:02:09,750 αναμένουμε από αυτούς να προστεθούν μαζί την παραγωγή των προϊόντων, τα οποία 49 00:02:09,750 --> 00:02:13,220 είναι 3 συν 6 συν 7 ή 16. 50 00:02:13,220 --> 00:02:17,940 >> Ομοίως, έχετε μια λειτουργία που ονομάζεται mult που λαμβάνει δυο εισόδους, α και β, 51 00:02:17,940 --> 00:02:21,070 επεξεργάζεται τους με κάποιο τρόπο, όπως ότι η έξοδος της συνάρτησης 52 00:02:21,070 --> 00:02:22,920 είναι το γινόμενο των δύο εισόδων. 53 00:02:22,920 --> 00:02:25,080 Οι δύο είσοδοι πολλαπλασιάζονται μαζί. 54 00:02:25,080 --> 00:02:29,150 4 και 5 να περάσει μέσα mult, κάτι που συμβαίνει, την έξοδο περιμένουμε 55 00:02:29,150 --> 00:02:31,090 είναι 20. 56 00:02:31,090 --> 00:02:32,507 Γιατί λέμε ένα μαύρο κουτί; 57 00:02:32,507 --> 00:02:34,840 Λοιπόν, αν δεν είμαστε το γράψιμο Λειτουργεί τους εαυτούς μας, η οποία 58 00:02:34,840 --> 00:02:36,869 έχουμε κάνει αρκετά πράγματα μέχρι στιγμής CS50. 59 00:02:36,869 --> 00:02:39,910 Έχουμε δει στ εκτύπωσης, για παράδειγμα, η οποία είναι μια λειτουργία που δεν είχαμε γράψει 60 00:02:39,910 --> 00:02:42,305 τους εαυτούς μας, αλλά εμείς δεν χρησιμοποιούν όλη την ώρα. 61 00:02:42,305 --> 00:02:44,180 Αν δεν είμαστε εγγράφως οι λειτουργίες τους εαυτούς μας, 62 00:02:44,180 --> 00:02:48,450 δεν πρέπει πραγματικά να ξέρετε πώς είναι εφαρμόζονται στην πράξη κάτω από την κουκούλα. 63 00:02:48,450 --> 00:02:51,710 >> Έτσι, για παράδειγμα, το μαύρο κουτί μου μόνο που έδειξε για πολλαπλασιασμό, 64 00:02:51,710 --> 00:02:53,740 Περισσότερα A, b θα μπορούσε να είναι defined-- και αυτό είναι μόνο 65 00:02:53,740 --> 00:02:57,902 μερικά pseudocode-- θα μπορούσε να είναι ορίζεται ως μια έξοδος φορές β. 66 00:02:57,902 --> 00:02:58,860 Νόημα αυτό, σωστά. 67 00:02:58,860 --> 00:03:01,370 Αν έχουμε μια λειτουργία που ονομάζεται πολλ που χρειάζεται δύο εισόδους. 68 00:03:01,370 --> 00:03:04,750 Θα περιμέναμε ότι η έξοδος θα είναι οι δύο εισόδους πολλαπλασιάζονται μαζί, 69 00:03:04,750 --> 00:03:06,240 β φορές. 70 00:03:06,240 --> 00:03:09,170 Αλλά mult μπορούσε επίσης να είναι εφαρμοστούν, όπως αυτό, 71 00:03:09,170 --> 00:03:13,150 έχουμε ένα μετρητή μεταβλητή ετοιμαστείτε εσωτερικό της mult σε 0. 72 00:03:13,150 --> 00:03:18,000 Και τότε θα επαναλάβετε αυτή τη διαδικασία β φορές προσθέσετε ένα μετρητή για να. 73 00:03:18,000 --> 00:03:24,270 Για παράδειγμα, αν πολλαπλασιάσουμε 3α του 5b, θα μπορούσαμε να πούμε που σε αντίθεση με 0, 74 00:03:24,270 --> 00:03:27,700 επαναλάβετε πέντε φορές, προσθέστε 3 σε πάγκο. 75 00:03:27,700 --> 00:03:34,490 Γι 'αυτό και ξεκινούν από το 0 και στη συνέχεια να κάνουμε αυτό πέντε φορές 3, 6, 9, 12, 15. 76 00:03:34,490 --> 00:03:37,500 Είναι το ίδιο αποτέλεσμα. Εμείς εξακολουθεί να πάρει 3 φορές 5 απλά 77 00:03:37,500 --> 00:03:39,500 η εφαρμογή είναι διαφορετική. 78 00:03:39,500 --> 00:03:41,490 >> Αυτό είναι ό, τι εννοούμε όταν λέμε ένα μαύρο κουτί. 79 00:03:41,490 --> 00:03:44,406 Απλά σημαίνει ότι δεν ενδιαφέρονται πραγματικά πώς έχει εφαρμοστεί κάτω από την κουκούλα 80 00:03:44,406 --> 00:03:46,170 εφ 'όσον το αποτέλεσμα είναι αυτό που περιμένουμε. 81 00:03:46,170 --> 00:03:49,045 Στην πραγματικότητα, αυτό είναι μέρος της σύμβασης του χρησιμοποιώντας τις λειτουργίες, ιδιαίτερα 82 00:03:49,045 --> 00:03:50,630 λειτουργίες που άλλοι γράφουν. 83 00:03:50,630 --> 00:03:53,980 Η συμπεριφορά είναι πάντα θα να είναι τυπικό, απρόβλεπτη 84 00:03:53,980 --> 00:03:55,420 με βάση το όνομα της συνάρτησης. 85 00:03:55,420 --> 00:03:57,500 Και γι 'αυτό είναι πραγματικά σημαντικό όταν γράφετε λειτουργίες 86 00:03:57,500 --> 00:04:00,020 ή όταν άλλοι άνθρωποι γράφουν λειτουργίες που μπορείτε να χρησιμοποιήσετε, 87 00:04:00,020 --> 00:04:03,590 ότι οι λειτουργίες αυτές έχουν σαφείς, σχετικά προφανή ονόματα, 88 00:04:03,590 --> 00:04:04,990 και είναι καλά τεκμηριωμένες. 89 00:04:04,990 --> 00:04:08,560 Ποια είναι σίγουρα η περίπτωση για τη λειτουργία, όπως εκτύπωση f. 90 00:04:08,560 --> 00:04:09,860 >> Γιατί λοιπόν να χρησιμοποιήσετε τις λειτουργίες; 91 00:04:09,860 --> 00:04:14,220 Λοιπόν, όπως είπα και νωρίτερα, αν γράφουμε όλοι μας κώδικα μέσα από βασικά πράγματα 92 00:04:14,220 --> 00:04:17,120 μπορεί να πάρει πραγματικά περίπλοκη και πραγματικά περίπλοκη. 93 00:04:17,120 --> 00:04:19,980 Λειτουργίες μας επιτρέψει την ικανότητα να οργανώσει τα πράγματα και να διαλύσουν 94 00:04:19,980 --> 00:04:24,540 ένα πολύ περίπλοκο πρόβλημα σε πολύ πιο εύχρηστο επιμέρους τμήματα. 95 00:04:24,540 --> 00:04:28,130 Λειτουργίες μας επιτρέψει επίσης να απλοποιήσει τη διαδικασία κωδικοποίησης. 96 00:04:28,130 --> 00:04:33,080 Είναι πολύ πιο εύκολο να debug 10 λειτουργία της γραμμής σε σχέση με μια γραμμή 100 97 00:04:33,080 --> 00:04:35,890 λειτουργία ή μια λειτουργία 1.000 γραμμή. 98 00:04:35,890 --> 00:04:38,400 Αν έχουμε μόνο για τον εντοπισμό σφαλμάτων μικρά κομμάτια σε μια στιγμή, 99 00:04:38,400 --> 00:04:42,110 ή γράψτε μικρά κομμάτια κατά τη χρονική στιγμή, κάνει αυτή την εμπειρία προγραμματισμού 100 00:04:42,110 --> 00:04:43,070 πολύ καλύτερα. 101 00:04:43,070 --> 00:04:44,910 Πίστεψέ με σε αυτό. 102 00:04:44,910 --> 00:04:48,400 >> Τέλος, αν γράψουμε εμείς λειτουργίες μπορούν να επαναχρησιμοποιηθούν αυτά τα διάφορα μέρη. 103 00:04:48,400 --> 00:04:49,880 Λειτουργίες μπορούν να ανακυκλωθούν. 104 00:04:49,880 --> 00:04:51,880 Μπορούν να χρησιμοποιηθούν σε το ένα πρόγραμμα ή άλλο. 105 00:04:51,880 --> 00:04:53,713 Έχετε ήδη γράψει η λειτουργία, το μόνο που έχετε 106 00:04:53,713 --> 00:04:56,530 πρέπει να κάνουμε είναι να πούμε ότι το πρόγραμμα πού θα βρείτε αυτή τη λειτουργία. 107 00:04:56,530 --> 00:04:59,680 Έχουμε ήδη την ανακύκλωση και τη χρήση εκτύπωση f για πάνω από 40 χρόνια. 108 00:04:59,680 --> 00:05:02,150 Αλλά ήταν μόνο γραφτεί ένα χρόνο. 109 00:05:02,150 --> 00:05:04,270 Αρκετά χρήσιμο, δεξιά. 110 00:05:04,270 --> 00:05:04,830 Εντάξει. 111 00:05:04,830 --> 00:05:06,040 Έτσι, οι λειτουργίες είναι μεγάλη. 112 00:05:06,040 --> 00:05:06,860 Γνωρίζουμε ότι. 113 00:05:06,860 --> 00:05:08,700 Τώρα, ας αρχίσουμε να γράφουμε τους. 114 00:05:08,700 --> 00:05:10,830 Ας ξεκινήσουμε να πάρει τους στα προγράμματά μας. 115 00:05:10,830 --> 00:05:13,869 Για να το κάνετε αυτό, το πρώτο πράγμα που κάνουμε είναι να κηρύξει την λειτουργία. 116 00:05:13,869 --> 00:05:16,160 Όταν δηλώνετε μια λειτουργία τι κάνουν βασικά 117 00:05:16,160 --> 00:05:18,900 λέει ο compiler, hey, ακριβώς έτσι ξέρετε, 118 00:05:18,900 --> 00:05:20,850 Πάω να γράφει μια λειτουργία αργότερα 119 00:05:20,850 --> 00:05:22,987 και εδώ είναι ό, τι πρόκειται να μοιάσει. 120 00:05:22,987 --> 00:05:24,820 Ο λόγος για αυτό είναι because μεταγλωττιστές 121 00:05:24,820 --> 00:05:27,900 κάνετε κάποια περίεργα πράγματα, αν βλέπουν μια σειρά από σύμβολα 122 00:05:27,900 --> 00:05:29,560 ότι δεν είστε εξοικειωμένοι με. 123 00:05:29,560 --> 00:05:33,000 Γι 'αυτό ακριβώς να δώσει το ένα compiler heads-up, είμαι δημιουργώντας μια λειτουργία 124 00:05:33,000 --> 00:05:35,492 και πρόκειται να το κάνουμε αυτό. 125 00:05:35,492 --> 00:05:38,450 Λειτουργία δηλώσεις γενικά αν είστε οργανώνοντας τον κωδικό σας με έναν τρόπο 126 00:05:38,450 --> 00:05:41,872 ότι οι άλλοι θα είναι σε θέση να κατανοήσουν και να κάνουν χρήση του, 127 00:05:41,872 --> 00:05:44,330 θέλετε γενικά να θέσει όλα των δηλώσεων λειτουργία σας 128 00:05:44,330 --> 00:05:48,220 στην κορυφή του κωδικού σας, κάντε δεξί πριν αρχίσετε να γράφετε κύρια ακόμα. 129 00:05:48,220 --> 00:05:50,770 Και βολικά, δεν υπάρχει ένα πολύ τυποποιημένο έντυπο 130 00:05:50,770 --> 00:05:53,500 ότι κάθε δήλωση λειτουργία ακολουθεί. 131 00:05:53,500 --> 00:05:56,090 Όλοι λίγο πολύ μοιάζει με αυτό. 132 00:05:56,090 --> 00:06:01,440 Υπάρχουν τρία μέρη σε μια συνάρτηση δήλωση, τύπος επιστροφής, το όνομα, 133 00:06:01,440 --> 00:06:03,420 και η λίστα επιχείρημα. 134 00:06:03,420 --> 00:06:07,180 >> Τώρα ο τύπος επιστροφής είναι τι είδους μεταβλητή Η λειτουργία εξόδου. 135 00:06:07,180 --> 00:06:10,710 Έτσι, για παράδειγμα, αν σκεφτούμε πίσω ένα λεπτά πριν την πολλαπλασιάζοντας δύο 136 00:06:10,710 --> 00:06:15,690 λειτουργία αριθμούς, τι περιμένουμε, αν πολλαπλασιάσουμε έναν ακέραιο από έναν ακέραιο 137 00:06:15,690 --> 00:06:18,502 η έξοδος θα είναι πιθανώς ένας ακέραιος, δεξιά. 138 00:06:18,502 --> 00:06:20,710 Πολλαπλασιάζεται δύο ακέραιους αριθμούς μαζί, μπορείτε να πάρετε έναν ακέραιο. 139 00:06:20,710 --> 00:06:24,167 Έτσι, το είδος επιστροφής του ότι λειτουργία θα είναι int. 140 00:06:24,167 --> 00:06:26,000 Το όνομα είναι ό, τι θέλετε για να καλέσετε τη λειτουργία σας. 141 00:06:26,000 --> 00:06:29,330 Αυτό είναι πιθανότατα το λιγότερο σημαντικό μέρος της δήλωσης λειτουργίας, 142 00:06:29,330 --> 00:06:30,827 από την άποψη της λειτουργικότητας. 143 00:06:30,827 --> 00:06:33,160 Αλλά στην πραγματικότητα είναι πιθανώς ένα από τα πιο σημαντικά μέρη 144 00:06:33,160 --> 00:06:36,243 της δήλωσης όσον αφορά τη λειτουργία να γνωρίζει τι πραγματικά η λειτουργία 145 00:06:36,243 --> 00:06:37,120 κάνει. 146 00:06:37,120 --> 00:06:40,474 Εάν όνομα της συνάρτησης f σας ή g ή h ή το μυστήριο ή κάτι τέτοιο, 147 00:06:40,474 --> 00:06:42,765 είστε κατά πάσα πιθανότητα πρόκειται να πάρει λίγο η τελική παραιτηθεί από την προσπάθεια 148 00:06:42,765 --> 00:06:44,650 να θυμηθούμε τι κάνει αυτές τις λειτουργίες. 149 00:06:44,650 --> 00:06:47,880 Γι 'αυτό είναι σημαντικό να δώσουμε σας σημαντικά ονόματα της συνάρτησης. 150 00:06:47,880 --> 00:06:51,030 >> Τέλος, το επιχείρημα είναι κατάλογος η λίστα διαχωρισμένες με κόμμα 151 00:06:51,030 --> 00:06:55,260 όλων των εισόδων για τη λειτουργία σας, καθένα από τα οποία έχει έναν τύπο και ένα όνομα. 152 00:06:55,260 --> 00:06:57,840 Έτσι, όχι μόνο δεν θα πρέπει να προσδιορίζει τον τύπο της μεταβλητής 153 00:06:57,840 --> 00:07:00,760 η έξοδος λειτουργία βούληση, μπορείτε επίσης να θελήσετε να καθορίσετε 154 00:07:00,760 --> 00:07:07,694 Ποιου τύπου και τους τύπους των μεταβλητών των συνάρτηση θα δέχεται ως εισόδους. 155 00:07:07,694 --> 00:07:08,860 Ας κάνουμε ένα παράδειγμα εδώ. 156 00:07:08,860 --> 00:07:10,220 Ας ρίξουμε μια ματιά σε μια πιο συγκεκριμένη ένα. 157 00:07:10,220 --> 00:07:13,130 Έτσι, εδώ είναι ένα παράδειγμα μιας συνάρτησης Δήλωση για μια λειτουργία που 158 00:07:13,130 --> 00:07:14,925 θα προσθέσει δύο ακέραιους αριθμούς μαζί. 159 00:07:14,925 --> 00:07:17,800 Το άθροισμα των δύο ακέραιους αριθμούς πρόκειται να είναι ένας ακέραιος, καθώς, όπως ακριβώς 160 00:07:17,800 --> 00:07:18,450 συζητήθηκαν. 161 00:07:18,450 --> 00:07:21,610 Και έτσι ο τύπος επιστροφής, εδώ στο πράσινο, θα είναι int. 162 00:07:21,610 --> 00:07:25,190 Αυτό ακριβώς μας που προσθέτουν δύο ints λέει πρόκειται να, στο τέλος της ημέρας, 163 00:07:25,190 --> 00:07:28,799 έξοδο, ή να φτύνουν πίσω έξω σε μας, ένας ακέραιος. 164 00:07:28,799 --> 00:07:31,590 Δεδομένου τι η λειτουργία αυτή θα κάνει θέλετε να δώσετε ένα όνομα με νόημα. 165 00:07:31,590 --> 00:07:33,630 Προσθέστε δύο ints φαίνεται κατάλληλες, λαμβάνοντας υπόψη 166 00:07:33,630 --> 00:07:37,574 παίρνουμε δύο ακέραιοι ως εισροές και ελπίζω να προσθέσουν τους από κοινού. 167 00:07:37,574 --> 00:07:40,240 Θα μπορούσε να είναι ένα κομμάτι από ένα δυσκίνητο όνομα και ειλικρινά αυτή η λειτουργία 168 00:07:40,240 --> 00:07:42,430 είναι πιθανόν να μην είναι απαραίτητο δεδομένου ότι έχουμε την προσθήκη 169 00:07:42,430 --> 00:07:46,310 χειριστή, αν θυμάστε από μας συζήτηση των φορέων, στο παρελθόν. 170 00:07:46,310 --> 00:07:49,650 Αλλά ας πούμε για χάρη του το επιχείρημα ότι αυτή η λειτουργία είναι χρήσιμη 171 00:07:49,650 --> 00:07:52,860 και έτσι θα το αποκαλούμε προσθέσει δύο ints. 172 00:07:52,860 --> 00:07:55,230 Τέλος, η λειτουργία αυτή διαρκεί δύο εισόδους. 173 00:07:55,230 --> 00:07:56,960 Καθένα από τα οποία είναι ένας ακέραιος. 174 00:07:56,960 --> 00:07:59,900 Έτσι, έχουμε αυτό το κόμμα διαχωρίζονται λίστα των εισροών. 175 00:07:59,900 --> 00:08:02,830 Τώρα είμαστε γενικά θέλουν να δώσετε ένα όνομα στο κάθε ένα από αυτά 176 00:08:02,830 --> 00:08:05,070 έτσι ώστε να μπορούν να χρησιμοποιηθούν εντός του λειτουργία. 177 00:08:05,070 --> 00:08:07,180 Τα ονόματα δεν είναι τρομερά σημαντικό. 178 00:08:07,180 --> 00:08:11,400 >> Σε αυτή την περίπτωση, δεν πρέπει απαραίτητα να έχει κάποιο νόημα που συνδέονται με αυτά. 179 00:08:11,400 --> 00:08:13,140 Έτσι μπορούμε να τους αποκαλούμε απλά a και b. 180 00:08:13,140 --> 00:08:14,257 Αυτό είναι εντελώς καλά. 181 00:08:14,257 --> 00:08:16,090 Εάν, ωστόσο, μπορείτε να βρείτε τον εαυτό σας σε μια κατάσταση 182 00:08:16,090 --> 00:08:19,497 όπου τα ονόματα των μεταβλητών μπορεί στην πραγματικότητα να είναι σημαντικό, 183 00:08:19,497 --> 00:08:21,830 ίσως να θέλετε να τους αποκαλούν κάτι άλλο εκτός από τα α και b 184 00:08:21,830 --> 00:08:24,701 για να τους δώσει κάτι περισσότερο συμβολικά νόημα. 185 00:08:24,701 --> 00:08:27,700 Αλλά σε αυτή την περίπτωση, εμείς δεν κάνουμε πραγματικά γνωρίζουν οτιδήποτε άλλο σχετικά με τη λειτουργία. 186 00:08:27,700 --> 00:08:29,320 Εμείς απλά θέλουμε να προσθέσουμε δύο ακέραιους αριθμούς. 187 00:08:29,320 --> 00:08:32,429 Έτσι θα καλέσουμε μόνο εκείνοι ακέραιοι a και b. 188 00:08:32,429 --> 00:08:33,990 Αυτό είναι ένα παράδειγμα. 189 00:08:33,990 --> 00:08:36,287 >> Γιατί δεν παίρνετε μια δεύτερη για να σκεφτεί για αυτό, 190 00:08:36,287 --> 00:08:38,870 πώς θα γράψω μια συνάρτηση Δήλωση για μια λειτουργία που 191 00:08:38,870 --> 00:08:42,940 πολλαπλασιάζει δύο αριθμούς κινητής υποδιαστολής; 192 00:08:42,940 --> 00:08:45,910 Θυμάστε τι ένα αριθμός κινητής υποδιαστολής είναι; 193 00:08:45,910 --> 00:08:48,120 Τι θα αυτή η λειτουργία Δήλωση μοιάζει; 194 00:08:48,120 --> 00:08:53,330 Εγώ πραγματικά σας συνιστούσαμε να διακόψετε το βίντεο εδώ και πάρτε πόσο χρόνο χρειάζεστε. 195 00:08:53,330 --> 00:08:55,521 Σκεφτείτε τι είναι αυτό δήλωση η λειτουργία θα είναι; 196 00:08:55,521 --> 00:08:56,770 Ποιο θα είναι το τύπος επιστροφής είναι; 197 00:08:56,770 --> 00:08:58,103 Τι θα ήταν ένα όνομα με νόημα είναι; 198 00:08:58,103 --> 00:08:59,580 Ποιες θα ήταν οι είσοδοι είναι; 199 00:08:59,580 --> 00:09:03,190 Γιατί λοιπόν να μην μπορείτε να διακόψετε το βίντεο εδώ και write-up μια δήλωση της συνάρτησης 200 00:09:03,190 --> 00:09:07,640 για μια λειτουργία που θα πολλαπλασιάσει δύο αριθμούς κινητής υποδιαστολής μαζί. 201 00:09:07,640 --> 00:09:09,330 Ας ελπίσουμε ότι θα διακοπεί το βίντεο. 202 00:09:09,330 --> 00:09:12,950 >> Έτσι, ας ρίξουμε μια ματιά σε ένα παράδειγμα μια δυνατή δήλωση. 203 00:09:12,950 --> 00:09:17,340 Float πολλ δύο ρεάλια επιπλέουν x, y float. 204 00:09:17,340 --> 00:09:19,090 Το προϊόν δύο αριθμούς κινητής υποδιαστολής, 205 00:09:19,090 --> 00:09:21,710 που θυμίζουν είναι το πώς θα αντιπροσωπεύουν πραγματικούς αριθμούς 206 00:09:21,710 --> 00:09:26,770 ή αριθμών με δεκαδικές τιμές στο γ, πρόκειται να είναι ένας αριθμός κινητής υποδιαστολής. 207 00:09:26,770 --> 00:09:28,570 Όταν πολλαπλασιάσετε μια δεκαδικά από ένα δεκαδικό, 208 00:09:28,570 --> 00:09:30,460 είστε κατά πάσα πιθανότητα πρόκειται να πάρει ένα δεκαδικό. 209 00:09:30,460 --> 00:09:31,960 Θέλετε να δώσετε ένα σχετικό όνομα. 210 00:09:31,960 --> 00:09:33,810 Πολλαπλασιάστε δύο ρεάλια φαίνεται μια χαρά. 211 00:09:33,810 --> 00:09:36,620 Αλλά θα μπορούσε πραγματικά να καλέσετε mult δύο πλωτήρες ή mult πλωτήρες. 212 00:09:36,620 --> 00:09:39,540 Κάτι τέτοιο, όσο έδωσε κάποια πραγματική σημασία σε ό, τι 213 00:09:39,540 --> 00:09:41,469 Αυτό το μαύρο κουτί επρόκειτο να κάνει. 214 00:09:41,469 --> 00:09:44,260 Και πάλι, σε αυτή την περίπτωση, δεν το κάνουμε φαίνεται να έχουν οποιαδήποτε έννοια που συνδέονται 215 00:09:44,260 --> 00:09:46,390 με τα ονόματα των μεταβλητές είμαστε περνώντας, 216 00:09:46,390 --> 00:09:48,645 έτσι απλά καλούμε τους x και y. 217 00:09:48,645 --> 00:09:51,020 Τώρα, αν σας καλέσει τους κάτι αλλιώς, αυτό είναι εντελώς καλά. 218 00:09:51,020 --> 00:09:53,310 Στην πραγματικότητα, αν το κάνατε αυτή η δήλωση αντί 219 00:09:53,310 --> 00:09:55,450 χρησιμοποιώντας διπλά αντί αρμάτων, αν θυμάστε 220 00:09:55,450 --> 00:09:59,100 Τα διπλά είναι μια διαφορετική τρόπος για μεγαλύτερη ακρίβεια 221 00:09:59,100 --> 00:10:02,330 προσδιορίζει τους πραγματικούς αριθμούς ή μεταβλητές κινητής υποδιαστολής. 222 00:10:02,330 --> 00:10:03,620 Αυτό είναι εντελώς πάρα πολύ ωραία. 223 00:10:03,620 --> 00:10:04,670 Είτε ένα από αυτά θα ήταν μια χαρά. 224 00:10:04,670 --> 00:10:06,711 Στην πραγματικότητα, υπάρχουν αρκετές διαφορετικούς συνδυασμούς 225 00:10:06,711 --> 00:10:08,410 τρόποι για να δηλώσει αυτή τη λειτουργία. 226 00:10:08,410 --> 00:10:10,884 Αλλά αυτά είναι δύο πολύ καλοί. 227 00:10:10,884 --> 00:10:12,550 Έχουμε δηλώσει μια λειτουργία, αυτό είναι υπέροχο. 228 00:10:12,550 --> 00:10:15,700 Έχουμε πει ο compiler τι είναι, τι θα πάμε να κάνουμε. 229 00:10:15,700 --> 00:10:17,630 Τώρα ας γράφουν ότι η λειτουργία. 230 00:10:17,630 --> 00:10:20,750 Ας δώσουμε έναν ορισμό, έτσι ώστε μέσα στο μαύρο κουτί 231 00:10:20,750 --> 00:10:22,840 προβλέψιμη συμπεριφορά συμβαίνει. 232 00:10:22,840 --> 00:10:26,270 Στην πραγματικότητα, είμαστε πολλαπλασιάζοντας δύο πραγματικές αριθμούς μαζί, ή την προσθήκη αριθμών 233 00:10:26,270 --> 00:10:29,760 μαζί, ή να κάνετε ό, τι είναι ότι ζητήσαμε τη λειτουργία μας να κάνουμε. 234 00:10:29,760 --> 00:10:32,780 >> Έτσι, στην πραγματικότητα, ας προσπαθήσουμε να ορίσουμε πολλαπλασιάσουμε δύο ρεάλια το οποίο μόλις 235 00:10:32,780 --> 00:10:35,350 μίλησε για ένα δευτερόλεπτο πριν. 236 00:10:35,350 --> 00:10:38,560 Τώρα, η αρχή της ο ορισμός συνάρτησης 237 00:10:38,560 --> 00:10:41,720 φαίνεται σχεδόν ακριβώς το ίδιο ως δήλωση συνάρτησης. 238 00:10:41,720 --> 00:10:43,170 Έχω και τα δύο εδώ. 239 00:10:43,170 --> 00:10:47,770 Στην κορυφή είναι η δήλωση της συνάρτησης, τύπο, το όνομα, διαχωρισμένες με κόμμα επιχείρημα 240 00:10:47,770 --> 00:10:49,410 λίστα, ερωτηματικό. 241 00:10:49,410 --> 00:10:53,800 Το ερωτηματικό δηλώνει ότι ότι είναι μια δήλωση της συνάρτησης. 242 00:10:53,800 --> 00:10:57,060 Η αρχή της λειτουργίας ορισμός φαίνεται σχεδόν ακριβώς 243 00:10:57,060 --> 00:11:03,790 ο ίδιος, τον τύπο, το όνομα, διαχωρισμένες με κόμμα λίστα επιχείρημα, δεν ερωτηματικό, 244 00:11:03,790 --> 00:11:05,206 ανοίξτε σγουρά στήριγμα. 245 00:11:05,206 --> 00:11:07,580 Η ανοικτή σγουρά στήριγμα, όπως ακριβώς που έχουμε κάνει με τον κύριο, 246 00:11:07,580 --> 00:11:09,540 σημαίνει ότι τώρα είμαστε αρχίζουν να καθορίσουν 247 00:11:09,540 --> 00:11:14,567 τι συμβαίνει μέσα στο μαύρο κουτί που έχουμε αποφασίσει να καλέσει mult δύο ρεάλια. 248 00:11:14,567 --> 00:11:15,900 Εδώ είναι ένας τρόπος για να το εφαρμόσουν. 249 00:11:15,900 --> 00:11:20,370 Θα μπορούσαμε να πούμε, θα μπορούσε να κηρύξει μία νέα μεταβλητή τύπου float ονομάζεται προϊόντος 250 00:11:20,370 --> 00:11:24,020 και να ορίσετε αυτή τη μεταβλητή με την τιμή x y φορές. 251 00:11:24,020 --> 00:11:27,306 Και στη συνέχεια να επιστρέψουν το προϊόν. 252 00:11:27,306 --> 00:11:28,430 Τι σημαίνει επιστροφή εδώ. 253 00:11:28,430 --> 00:11:31,090 Λοιπόν επιστροφή είναι ο τρόπος υποδεικνύουμε αυτό είναι το πώς 254 00:11:31,090 --> 00:11:33,400 είμαστε διέρχεται η έξοδος πίσω. 255 00:11:33,400 --> 00:11:38,160 Έτσι επιστρέψει κάτι, είναι το ίδιο όπως, αυτή είναι η έξοδος του μαύρου κουτιού. 256 00:11:38,160 --> 00:11:40,732 Έτσι, αυτό είναι το πώς μπορείτε να το κάνετε. 257 00:11:40,732 --> 00:11:42,190 Εδώ είναι ένας άλλος τρόπος για να το εφαρμόσουν. 258 00:11:42,190 --> 00:11:45,050 Θα μπορούσε να επιστρέψει μόλις x y φορές. 259 00:11:45,050 --> 00:11:45,870 x είναι ένας πλωτήρας. 260 00:11:45,870 --> 00:11:46,660 y είναι ένα πλωτήρα. 261 00:11:46,660 --> 00:11:48,490 Έτσι x φορές y είναι επίσης ένα πλωτήρα. 262 00:11:48,490 --> 00:11:50,750 Δεν χρειάζεται καν να δημιουργήσετε μια άλλη μεταβλητή. 263 00:11:50,750 --> 00:11:56,750 Έτσι, αυτό είναι ένας διαφορετικός τρόπος για να εφαρμόζουν ακριβώς το ίδιο μαύρο κουτί. 264 00:11:56,750 --> 00:11:58,570 >> Τώρα πάρτε μια στιγμή, παύση ξανά το βίντεο, 265 00:11:58,570 --> 00:12:01,680 και να προσπαθήσουμε και να καθορίσει προσθέσει δύο ints, η οποία είναι η άλλη λειτουργία που θα 266 00:12:01,680 --> 00:12:03,090 μίλησε για προ ολίγου. 267 00:12:03,090 --> 00:12:06,440 Και πάλι εδώ, έχω βάλει τη λειτουργία δήλωση, και έτσι το ερωτηματικό, 268 00:12:06,440 --> 00:12:08,420 και μια ανοιχτή σγουρά στήριγμα και μια κλειστή σγουρά 269 00:12:08,420 --> 00:12:12,080 στήριγμα για να υποδείξει πού θα γεμίσει στο περιεχόμενο της προσθέσει δύο ints, 270 00:12:12,080 --> 00:12:15,530 έτσι ώστε να μπορέσουμε να καθορίσουν την ιδιαίτερη συμπεριφορά μέσα στο μαύρο κουτί. 271 00:12:15,530 --> 00:12:16,380 Έτσι παύση του βίντεο. 272 00:12:16,380 --> 00:12:18,790 Και πάρτε όσο χρόνο θα πρέπει να προσπαθήσουμε και να καθορίσει 273 00:12:18,790 --> 00:12:25,040 η εφαρμογή της να προσθέσει δύο πόντους, κάτι τέτοιο ότι όταν η λειτουργία εξάγει μία τιμή, 274 00:12:25,040 --> 00:12:29,209 το κάνει, στην πραγματικότητα, η επιστροφή το άθροισμα των δύο εισόδων. 275 00:12:29,209 --> 00:12:32,000 Έτσι ακριβώς όπως και στο προηγούμενο παράδειγμα, υπάρχουν αρκετοί διαφορετικοί τρόποι 276 00:12:32,000 --> 00:12:34,210 ότι θα μπορούσαν να εφαρμόσουν προσθέσει δύο ints. 277 00:12:34,210 --> 00:12:35,130 Εδώ είναι ένα. 278 00:12:35,130 --> 00:12:37,172 Εδώ σε πορτοκαλί έχω απλά είχε κάποια comments-- 279 00:12:37,172 --> 00:12:38,880 Έχω μόλις προσθέσατε μερικές παρατηρήσεις υποδεικνύουν 280 00:12:38,880 --> 00:12:41,400 τι συμβαίνει σε κάθε γραμμή κώδικα. 281 00:12:41,400 --> 00:12:45,430 Γι 'αυτό δηλώνουμε μια μεταβλητή που ονομάζεται άθροισμα του τύπου int. 282 00:12:45,430 --> 00:12:47,279 Λέω ποσό ισούται με Α και Β. 283 00:12:47,279 --> 00:12:50,070 Αυτός είναι όπου είμαστε πραγματικά να κάνει η εργασία προσθήκης και b μαζί. 284 00:12:50,070 --> 00:12:51,850 Και εγώ επιστρέψει ποσό. 285 00:12:51,850 --> 00:12:56,460 Και αυτό είναι λογικό, διότι άθροισμα είναι μια μεταβλητή τύπου int. 286 00:12:56,460 --> 00:13:00,180 Και ποια είναι τα δεδομένα τύπου, ο Λειτουργία μου λέει ότι πρόκειται για την έξοδο; 287 00:13:00,180 --> 00:13:00,680 Int. 288 00:13:00,680 --> 00:13:03,072 Έτσι είμαι επιστροφή ποσό, το οποίο είναι μια ακέραια μεταβλητή. 289 00:13:03,072 --> 00:13:06,030 Και αυτό έχει νόημα δεδομένου ό, τι έχουμε δηλώνεται και να ορίζεται η λειτουργία μας 290 00:13:06,030 --> 00:13:07,320 να κάνω. 291 00:13:07,320 --> 00:13:09,700 >> Τώρα μπορείτε επίσης να ορίσετε η λειτουργία με αυτόν τον τρόπο, 292 00:13:09,700 --> 00:13:15,260 int ποσό ισούται με ένα συν b-- παραλείψετε το step-- πρώτα και στη συνέχεια, ποσό επιστρέψει. 293 00:13:15,260 --> 00:13:17,760 Τώρα θα μπορούσατε να έχετε επίσης εφαρμοστεί αυτό τον τρόπο, 294 00:13:17,760 --> 00:13:19,180 η οποία πιστεύω πολύ, δεν συνιστούμε. 295 00:13:19,180 --> 00:13:22,540 Αυτό είναι κακό για ένα στυλ πράγμα και πραγματικά κακό σχεδιασμό, 296 00:13:22,540 --> 00:13:24,420 αλλά, στην πραγματικότητα, το έργο. 297 00:13:24,420 --> 00:13:30,199 Εάν πάρετε αυτόν τον κωδικό, η οποία είναι int προσθέστε κακό αθροιστή τελεία γ, και να το χρησιμοποιήσετε. 298 00:13:30,199 --> 00:13:31,990 Είναι πραγματικά δεν προσθέτει δύο ακέραιους αριθμούς μαζί. 299 00:13:31,990 --> 00:13:37,632 Είναι μια πολύ κακή εφαρμογή της συγκεκριμένης συμπεριφοράς. 300 00:13:37,632 --> 00:13:38,340 Αλλά αυτό δεν λειτουργεί. 301 00:13:38,340 --> 00:13:41,200 Είναι ακριβώς εδώ για να επεξηγήσουν το σημείο που εμείς δεν κάνουμε πραγματικά 302 00:13:41,200 --> 00:13:44,530 νοιάζει τι θα συμβεί στο εσωτερικό το μαύρο κουτί, εφ ' 303 00:13:44,530 --> 00:13:46,510 δεδομένου ότι έχει το αποτέλεσμα που περιμένουμε. 304 00:13:46,510 --> 00:13:48,870 Αυτό είναι ένα κακοσχεδιασμένα μαύρο κουτί. 305 00:13:48,870 --> 00:13:53,801 Αλλά στο τέλος της ημέρας, το κάνει ακόμα εξόδου το άθροισμα των Α και Β. 306 00:13:53,801 --> 00:13:54,300 Εντάξει. 307 00:13:54,300 --> 00:13:56,320 Έτσι έχουμε συναρτήσεις που έχουν δηλωθεί. 308 00:13:56,320 --> 00:13:57,490 Και έχουμε καθορισμένη λειτουργία. 309 00:13:57,490 --> 00:13:58,540 Έτσι, αυτό είναι πραγματικά καλό. 310 00:13:58,540 --> 00:14:03,020 Τώρα, ας αρχίσουμε να χρησιμοποιήσετε τις λειτουργίες ότι έχουμε δηλώσει και έχουμε καθορίσει. 311 00:14:03,020 --> 00:14:05,960 Για να καλέσετε έναν function-- είναι στην πραγματικότητα όμορφη easy-- το μόνο που χρειάζεται να κάνετε 312 00:14:05,960 --> 00:14:09,070 είναι να περάσει σκόπιμο επιχειρήματα, επιχειρήματα του τύπου δεδομένων 313 00:14:09,070 --> 00:14:11,600 ότι αναμένει, και στη συνέχεια να εκχωρήσετε την επιστροφή 314 00:14:11,600 --> 00:14:15,190 αξία αυτής της λειτουργίας και this-- δικαιολογία me-- 315 00:14:15,190 --> 00:14:19,390 ορίσετε την τιμή επιστροφής της εν λόγω λειτουργίας σε κάτι το σωστό τύπο. 316 00:14:19,390 --> 00:14:22,410 >> Έτσι, ας ρίξουμε μια ματιά αυτό στην πράξη σε ένα αρχείο 317 00:14:22,410 --> 00:14:27,730 που ονομάζεται αθροιστή 1 τελεία C, η οποία Έχω στο CS50 IDE μου. 318 00:14:27,730 --> 00:14:31,042 Έτσι, εδώ είναι αθροιστή 1 τελεία γ. 319 00:14:31,042 --> 00:14:33,500 Στην αρχή βλέπετε έχω μου περιλαμβάνει, λίβρα περιλαμβάνουν, 320 00:14:33,500 --> 00:14:35,460 πρότυπο IO, και CS50 dot h. 321 00:14:35,460 --> 00:14:37,700 Και τότε έχω δήλωση η λειτουργία μου. 322 00:14:37,700 --> 00:14:39,570 Αυτό είναι όπου είμαι λέει ο compiler είμαι 323 00:14:39,570 --> 00:14:42,850 πρόκειται να γράφει ένα λειτουργία που ονομάζεται προσθέσει δύο ints. 324 00:14:42,850 --> 00:14:45,780 Δεν πρόκειται να μια έξοδος ακέραιος τύπος μεταβλητής. 325 00:14:45,780 --> 00:14:47,360 Αυτό είναι ό, τι αυτό το μέρος είναι ακριβώς εδώ. 326 00:14:47,360 --> 00:14:51,950 Και τότε έχω δύο εισόδους σε αυτό μια και b, καθένα από τα οποία είναι ένας ακέραιος. 327 00:14:51,950 --> 00:14:58,250 Μέσα από τις κύριες, ζητώ από το χρήστη εισόδου λέγοντας, να μου δώσει έναν ακέραιο. 328 00:14:58,250 --> 00:15:01,040 Και θα τους ζητηθεί να ξεχάσουν int, η οποία είναι μια λειτουργία που 329 00:15:01,040 --> 00:15:03,240 περιλαμβάνεται στην βιβλιοθήκη CS50. 330 00:15:03,240 --> 00:15:07,660 Και αυτό παίρνει αποθηκεύονται στο x, int μεταβλητή. 331 00:15:07,660 --> 00:15:09,886 >> Τότε θα τους οδηγήσει για άλλη ακέραιο. 332 00:15:09,886 --> 00:15:13,070 Παίρνουμε ένα άλλο ακέραιο και αποθηκεύστε ότι y. 333 00:15:13,070 --> 00:15:17,990 Και στη συνέχεια, εδώ στη γραμμή 28, είναι όπου θα κάνουμε κλήση συνάρτησης μας. 334 00:15:17,990 --> 00:15:23,770 Εμείς λέμε, int z ισούται προσθέστε 2 ints x y κόμμα. 335 00:15:23,770 --> 00:15:25,980 Βλέπετε γιατί αυτό έχει νόημα; 336 00:15:25,980 --> 00:15:29,710 x είναι μια μεταβλητή ακεραίου τύπου και y είναι μια μεταβλητή ακεραίου τύπου. 337 00:15:29,710 --> 00:15:31,220 Έτσι, αυτό είναι καλό. 338 00:15:31,220 --> 00:15:34,570 Αυτή η αίσθηση κάνει με ό, τι λειτουργία μας δήλωση στη γραμμή 17 μοιάζει. 339 00:15:34,570 --> 00:15:38,300 Η διαχωρισμένες με κόμμα λίστα εισόδου αναμένει δυο ακέραιοι, a και b. 340 00:15:38,300 --> 00:15:40,300 Σε αυτή την περίπτωση, μπορούμε να καλέσουμε τους ό, τι θέλουμε. 341 00:15:40,300 --> 00:15:42,300 Αναμένει μόλις δύο ακέραιοι. 342 00:15:42,300 --> 00:15:44,930 Και το χ είναι ένας ακέραιος και το γ είναι ένας ακέραιος αριθμός. 343 00:15:44,930 --> 00:15:45,640 Αυτό λειτουργεί. 344 00:15:45,640 --> 00:15:48,680 >> Και γνωρίζουμε ότι η λειτουργία θα Για την απόδοση ενός ακέραιοι, καθώς και. 345 00:15:48,680 --> 00:15:51,290 Και γι 'αυτό η αποθήκευση εξόδου της συνάρτησης, 346 00:15:51,290 --> 00:15:56,050 προσθέστε δύο πόντους, κάτι σε έναν τύπο ακέραιο μεταβλητή, η οποία είμαστε καλώντας z. 347 00:15:56,050 --> 00:16:01,980 Και τότε μπορούμε να πούμε, το άθροισμα των i τοις εκατό και εκατό τοις εκατό i είναι i. 348 00:16:01,980 --> 00:16:06,210 x, y και z αντίστοιχα συμπλήρωση εκείνων τοις εκατό του i. 349 00:16:06,210 --> 00:16:08,334 Ποιος είναι ο ορισμός του προσθέστε δύο ints μοιάζει; 350 00:16:08,334 --> 00:16:09,125 Είναι πολύ απλό. 351 00:16:09,125 --> 00:16:11,270 Είναι μία από αυτές που Μόλις είδα πριν από ένα δευτερόλεπτο, 352 00:16:11,270 --> 00:16:14,390 int ποσό ισούται με το ποσό συν β επιστροφή. 353 00:16:14,390 --> 00:16:15,420 Μήπως αυτό το έργο; 354 00:16:15,420 --> 00:16:17,270 Ας αποθηκεύσετε το αρχείο. 355 00:16:17,270 --> 00:16:22,080 Και τότε εδώ κάτω στην τερματική μου Πάω να κάνω αθροιστή 1, 356 00:16:22,080 --> 00:16:23,000 και μπορώ να σβήσω την οθόνη μου. 357 00:16:23,000 --> 00:16:25,791 Πάω για μεγέθυνση διότι γνωρίζω είναι λίγο δύσκολο να δούμε. 358 00:16:25,791 --> 00:16:31,520 359 00:16:31,520 --> 00:16:33,770 >> Γι 'αυτό και την κατάρτιση αυτού του προγράμματος ως αθροιστή 1. 360 00:16:33,770 --> 00:16:37,910 Έτσι μπορούμε να κάνουμε dot κάθετος αθροιστή 1. 361 00:16:37,910 --> 00:16:40,060 Δώσε μου έναν ακέραιο, 10. 362 00:16:40,060 --> 00:16:42,380 Δώστε μου ένα άλλο ακέραιο, 20. 363 00:16:42,380 --> 00:16:45,200 Το άθροισμα των 10 και 20 είναι 30. 364 00:16:45,200 --> 00:16:47,615 Γι 'αυτό και έκανε μια επιτυχημένη κλήση της συνάρτησης. 365 00:16:47,615 --> 00:16:55,820 Μπορείτε να εκτελέσετε τη λειτουργία και πάλι, αρνητικό 10, 17 άθροισμα των αρνητικών 10 και 17 είναι 7. 366 00:16:55,820 --> 00:16:57,120 Η λειτουργία αυτή. 367 00:16:57,120 --> 00:16:59,240 Έχει την συμπεριφορά ότι το περιμένουμε να. 368 00:16:59,240 --> 00:17:03,610 Και έτσι κάναμε μια επιτυχή λειτουργία, ορισμός, δήλωση, 369 00:17:03,610 --> 00:17:07,288 και μια επιτυχημένη κλήση της συνάρτησης. 370 00:17:07,288 --> 00:17:09,079 Ζευγάρι Διάφορα σημεία σχετικά με τις λειτουργίες 371 00:17:09,079 --> 00:17:10,611 Πριν κλείσουμε αυτή την ενότητα. 372 00:17:10,611 --> 00:17:12,319 Ανάκληση από μας συζήτηση των τύπων δεδομένων, 373 00:17:12,319 --> 00:17:16,109 στο παρελθόν, ότι οι λειτουργίες μπορεί να πάρει μερικές φορές δεν εισόδους. 374 00:17:16,109 --> 00:17:17,930 Αν αυτή είναι η περίπτωση, να κηρύξει την λειτουργία 375 00:17:17,930 --> 00:17:19,788 ότι έχει μια λίστα επιχείρημα κενό. 376 00:17:19,788 --> 00:17:21,579 Θυμάστε τι το πιο κοινή λειτουργία 377 00:17:21,579 --> 00:17:25,036 έχουμε δει μέχρι τώρα ότι λαμβάνει μια λίστα επιχείρημα είναι άκυρο; 378 00:17:25,036 --> 00:17:27,300 Είναι κύριος. 379 00:17:27,300 --> 00:17:30,850 Θυμηθείτε, επίσης, ότι η λειτουργία ενίοτε δεν έχουν πραγματικά μια έξοδο. 380 00:17:30,850 --> 00:17:34,210 Σε αυτή την περίπτωση, δηλώνουμε τη λειτουργία ότι έχει ένα είδος επιστροφής άκυρη. 381 00:17:34,210 --> 00:17:37,880 Ας ολοκληρώσουμε αυτό το τμήμα από την αντιμετώπιση ενός προβλήματος πρακτική. 382 00:17:37,880 --> 00:17:39,900 >> Έτσι, εδώ είναι το πρόβλημα που θέτει. 383 00:17:39,900 --> 00:17:43,630 Θέλω να γράψω μια συνάρτηση που ονομάζεται έγκυρο τρίγωνο. 384 00:17:43,630 --> 00:17:47,410 Τι αυτή η λειτουργία πρέπει να κάνετε έχει λάβει τρεις πραγματικούς αριθμούς 385 00:17:47,410 --> 00:17:51,930 ότι αντιπροσωπεύουν τα μήκη των τριών πλευρές ενός τριγώνου ως παραμέτρους, 386 00:17:51,930 --> 00:17:54,550 ή τα επιχειρήματά της, ή της inputs-- ένα άλλο σύνολο των συνωνύμων 387 00:17:54,550 --> 00:17:57,340 ότι μπορεί να συναντήσετε. 388 00:17:57,340 --> 00:18:01,120 Η λειτουργία αυτή θα πρέπει να είτε εξόδου true ή false 389 00:18:01,120 --> 00:18:04,960 ανάλογα με το αν αυτά τα τρία μήκη είναι σε θέση να κάνει ένα τρίγωνο. 390 00:18:04,960 --> 00:18:09,930 Θυμάστε τον τύπο δεδομένων που που χρησιμοποιούνται για να δηλώσουν αληθής ή ψευδής; 391 00:18:09,930 --> 00:18:11,436 Τώρα πώς θα γίνει αυτό; 392 00:18:11,436 --> 00:18:13,810 Λοιπόν ξέρετε ότι υπάρχουν μερικά των κανόνων σχετικά με τρίγωνα 393 00:18:13,810 --> 00:18:15,480 που είναι πραγματικά χρήσιμο να γνωρίζουμε. 394 00:18:15,480 --> 00:18:18,292 Ένα τρίγωνο μπορεί να έχει μόνο πλευρές με θετικό μήκος. 395 00:18:18,292 --> 00:18:19,000 Ότι έχει νόημα. 396 00:18:19,000 --> 00:18:21,432 Είστε πιθανώς λέγοντας, duh. 397 00:18:21,432 --> 00:18:23,390 Το άλλο πράγμα που πρέπει να σημειωθεί όμως, είναι ότι το άθροισμα 398 00:18:23,390 --> 00:18:25,484 των μηκών οιουδήποτε δύο πλευρές του τριγώνου 399 00:18:25,484 --> 00:18:27,650 πρέπει να είναι μεγαλύτερη από την μήκος της τρίτης πλευράς. 400 00:18:27,650 --> 00:18:28,690 Αυτό είναι όντως αλήθεια. 401 00:18:28,690 --> 00:18:34,150 Δεν μπορείς να έχεις ένα τρίγωνο των πλευρών 1, 2 και 4, για παράδειγμα, επειδή 1 συν 2 402 00:18:34,150 --> 00:18:36,270 δεν υπερβαίνει το 4. 403 00:18:36,270 --> 00:18:38,870 Έτσι, εκείνοι είναι οι κανόνες που προσδιοριστεί αν η τρία ή όχι 404 00:18:38,870 --> 00:18:42,740 είσοδοι μπορούν να σχηματίσουν νοητό τρίγωνο. 405 00:18:42,740 --> 00:18:46,360 Έτσι πάρτε μερικά λεπτά και να δηλώσει και στη συνέχεια να ορίσετε 406 00:18:46,360 --> 00:18:49,810 Αυτή η λειτουργία ονομάζεται έγκυρη τρίγωνο, έτσι ώστε στην πραγματικότητα 407 00:18:49,810 --> 00:18:51,650 έχει τη συμπεριφορά που αναφέρονται εδώ. 408 00:18:51,650 --> 00:18:57,030 >> Θα δείξει αληθινή, αν αυτές τις τρεις πλευρές είναι ικανά να περιλαμβάνει ένα τρίγωνο, 409 00:18:57,030 --> 00:19:01,950 και ψευδείς αλλιώς Έτοιμοι να δούμε πώς το κάνατε; 410 00:19:01,950 --> 00:19:04,650 Εδώ είναι μια εφαρμογή έγκυρων τριγώνου. 411 00:19:04,650 --> 00:19:05,770 Δεν είναι η μόνη. 412 00:19:05,770 --> 00:19:07,770 Δικός σου μπορεί να διαφέρουν ελαφρώς. 413 00:19:07,770 --> 00:19:11,040 Αλλά αυτό κάνει, στην πραγματικότητα, έχουν η συμπεριφορά που αναμένουμε. 414 00:19:11,040 --> 00:19:14,450 Εμείς δηλώνουμε τη λειτουργία μας στο κορυφή, bool έγκυρο τρίγωνο 415 00:19:14,450 --> 00:19:16,630 float float x y z πλωτήρα. 416 00:19:16,630 --> 00:19:18,930 Έτσι και πάλι, αυτή η λειτουργία διαρκεί τρεις πραγματικούς αριθμούς 417 00:19:18,930 --> 00:19:22,280 όπως τα επιχειρήματά της, κυμαινόμενο μεταβλητές σημείο αξία, 418 00:19:22,280 --> 00:19:26,510 και εξάγει μια αληθινή ή ψεύτικη τιμή, η οποία είναι μια Boolean, ανάκληση. 419 00:19:26,510 --> 00:19:28,660 Έτσι, γι 'αυτό ο τύπος επιστροφής είναι bool. 420 00:19:28,660 --> 00:19:30,016 Στη συνέχεια, ορίζουμε τη συνάρτηση. 421 00:19:30,016 --> 00:19:33,140 Το πρώτο πράγμα που κάνουμε είναι να ελέγξετε για να βεβαιωθείτε ότι όλες οι πλευρές είναι θετικές. 422 00:19:33,140 --> 00:19:37,010 Αν το x είναι μικρότερη ή ίση για 0, ή εάν το γ είναι ίσο με μηδέν, 423 00:19:37,010 --> 00:19:41,050 ή εάν το Ζ είναι μικρότερη ή ίση με μηδέν, ότι δεν μπορεί να είναι ένα τρίγωνο. 424 00:19:41,050 --> 00:19:42,380 Δεν έχουν θετικές πλευρές. 425 00:19:42,380 --> 00:19:45,790 Και έτσι μπορούμε να επιστρέψουμε ψευδείς σε αυτή την κατάσταση. 426 00:19:45,790 --> 00:19:49,010 Στη συνέχεια, ελέγξτε για να βεβαιωθείτε ότι κάθε ζεύγος των εισροών 427 00:19:49,010 --> 00:19:51,830 είναι μεγαλύτερη από την τρίτη. 428 00:19:51,830 --> 00:19:54,530 >> Έτσι, αν x συν y είναι λιγότερο από ή ίσο με z, 429 00:19:54,530 --> 00:19:57,060 ή αν χ συν ζ είναι λιγότερο από ή ίσο με το y, 430 00:19:57,060 --> 00:20:01,730 ή εάν y συν ζ είναι μικρότερη ή ίση προς x, ότι και δεν μπορεί να είναι ένα έγκυρο τρίγωνο. 431 00:20:01,730 --> 00:20:03,800 Γι 'αυτό και επιστρέψει και πάλι false. 432 00:20:03,800 --> 00:20:06,900 Υποθέτοντας ότι περάσαμε τόσο των ελέγχων όμως, τότε μπορούμε να επιστρέψουμε αλήθεια. 433 00:20:06,900 --> 00:20:09,440 Επειδή αυτές τις τρεις πλευρές είναι ικανά returning-- 434 00:20:09,440 --> 00:20:11,647 της δημιουργίας μιας έγκυρης τρίγωνο. 435 00:20:11,647 --> 00:20:12,230 Και αυτό είναι όλο. 436 00:20:12,230 --> 00:20:13,830 Έχετε τώρα δηλώνεται και να ορίζεται. 437 00:20:13,830 --> 00:20:17,330 Και ίσως να είναι σε θέση να τώρα χρησιμοποιήσετε και καλέστε αυτή τη λειτουργία. 438 00:20:17,330 --> 00:20:19,470 Καλη δουλεια. 439 00:20:19,470 --> 00:20:20,650 Είμαι ο Νταγκ Lloyd. 440 00:20:20,650 --> 00:20:22,820 Αυτό είναι CS50. 441 00:20:22,820 --> 00:20:24,340