1 00:00:00,000 --> 00:00:05,530 2 00:00:05,530 --> 00:00:09,790 >> ΚΑΘΗΓΗΤΗΣ: Επομένως, η ατζέντα για την αυτή την εβδομάδα, δεν είναι ότι πολλά πράγματα. 3 00:00:09,790 --> 00:00:12,801 Αλλά ελπίζουμε ότι πολύ, πολύ χρήσιμη και τις σχετικές για σας παιδιά αυτή την εβδομάδα. 4 00:00:12,801 --> 00:00:15,550 Αλλά θα πάμε να περάσετε ίσως 15, 20 λεπτά ακριβώς μιλάμε γρήγορα 5 00:00:15,550 --> 00:00:17,370 σχετικά με τον κατάλογο σύνδεσμο. 6 00:00:17,370 --> 00:00:19,694 Οι λίστες Σύνδεσμος πρόκειται να καλύπτεται με κουίζ. 7 00:00:19,694 --> 00:00:22,610 Έτσι, ίσως θα ήταν πολύ χρήσιμο να μάθουν κάποια πράγματα για το τι είναι. 8 00:00:22,610 --> 00:00:25,210 >> Εμείς πάμε για να περάσουν το τεράστιο πλειοψηφία του τμήματος του σήμερα 9 00:00:25,210 --> 00:00:27,640 που πηγαίνει πέρα ​​κουίζ μηδενικών προβλημάτων πρακτικής. 10 00:00:27,640 --> 00:00:30,970 Και τότε θα σώσει ίσως 20, 30 λεπτά στο τέλος για τυχόν παρατεταμένες ερωτήσεις 11 00:00:30,970 --> 00:00:32,850 ο καθένας έχει. 12 00:00:32,850 --> 00:00:34,610 >> Και στη συνέχεια, η τελευταία πέντε λεπτά, Πάω 13 00:00:34,610 --> 00:00:36,467 για να δώσει μια αντλία την ομιλία για το κουίζ. 14 00:00:36,467 --> 00:00:38,050 Εσείς όλοι θέλουν να είναι εδώ γι 'αυτό. 15 00:00:38,050 --> 00:00:39,591 Επειδή πρόκειται να είναι μια καλή στιγμή. 16 00:00:39,591 --> 00:00:42,650 17 00:00:42,650 --> 00:00:49,230 >> Εντάξει, έτσι κάποια υλικού στον κατάλογο σύνδεσμο. 18 00:00:49,230 --> 00:00:52,620 Πως όπου και αν τυπικά είναι δομημένο Έχετε ό, τι λέγεται ένα κόμβο, έτσι δεν είναι; 19 00:00:52,620 --> 00:00:54,870 Έχετε αυτά τα πράγματα που ονομάζεται κόμβους, το οποίο είναι structs. 20 00:00:54,870 --> 00:00:57,360 Θα πάω για το πώς να δημιουργήσετε ένας κόμβος στο επόμενο slide. 21 00:00:57,360 --> 00:01:00,680 Αλλά ουσιαστικά όλα τα συνδεδεμένα κατάλογοι είναι τα δεδομένα που 22 00:01:00,680 --> 00:01:03,340 έχει αρμαθιές από κοινού με τους δείκτες. 23 00:01:03,340 --> 00:01:09,110 >> Και έτσι το πλεονέκτημα που έχουμε της χρήσης ενός συνδεδεμένη λίστα πάνω, 24 00:01:09,110 --> 00:01:11,280 ίσως, σαν μια συστοιχία, είναι το γεγονός ότι σε μία συστοιχία 25 00:01:11,280 --> 00:01:15,000 θα πρέπει να έχετε ένα συνεχόμενο μπλοκ μνήμη όλα στο ίδιο μέρος, μία 26 00:01:15,000 --> 00:01:16,870 μετά το άλλο, για να είναι σε θέση να έχουν αυτό. 27 00:01:16,870 --> 00:01:20,200 Λαμβάνοντας υπόψη ότι μια συνδεδεμένη λίστα, θα μπορούσατε έχουν τυχαία μικρά κομμάτια της μνήμης 28 00:01:20,200 --> 00:01:23,020 σε όλο τον υπολογιστή σας αρμαθιές από κοινού με τους δείκτες. 29 00:01:23,020 --> 00:01:26,270 >> Και με αυτό τον τρόπο μπορούν να έχουν πρόσβαση σε πληροφορίες 30 00:01:26,270 --> 00:01:28,610 που έρχεται ο ένας μετά τον αφετέρου, μετά την άλλη 31 00:01:28,610 --> 00:01:32,720 χωρίς να χρειάζεται μόνο ένα τεράστιο κομμάτι της μνήμη του υπολογιστή σας κάπου. 32 00:01:32,720 --> 00:01:35,910 Και έτσι αυτό είναι ένα από τα σημαντικότερα λόγοι για τους οποίους χρησιμοποιούμε λίστα σύνδεσμο. 33 00:01:35,910 --> 00:01:40,300 >> Δεύτερον, είναι πολύ εύκολο να δυναμικά αλλάξετε το μέγεθος της λίστας σύνδεσμο επειδή σε σειρά, 34 00:01:40,300 --> 00:01:44,720 όταν δηλώνουμε έναν πίνακα, Έχετε μια συγκεκριμένη τιμή που καθορίζεται. 35 00:01:44,720 --> 00:01:47,340 Ας πούμε ότι ήθελα να δημιουργήσω μια συστοιχία 10 ακεραίων. 36 00:01:47,340 --> 00:01:49,970 Έχω δημιουργήσει μια σειρά από 10 ακέραιοι, και αυτό είναι όλο. 37 00:01:49,970 --> 00:01:50,580 Είναι 10. 38 00:01:50,580 --> 00:01:52,038 Δεν ξέρω τι να κάνω μετά από αυτό. 39 00:01:52,038 --> 00:01:53,680 Αν ήθελα να κάνω είναι 11, δεν μπορεί να το κάνει. 40 00:01:53,680 --> 00:01:55,710 Αν θέλω να καταστήσω 9, δεν μπορούμε να το κάνουμε. 41 00:01:55,710 --> 00:01:59,910 >> Λαμβάνοντας υπόψη ότι σε μια λίστα σύνδεσμο, μπορείτε να προσθέσετε και να διαγράψετε και να τοποθετήσετε όπου θέλετε. 42 00:01:59,910 --> 00:02:04,940 Μπορείτε να αλλάξετε το μέγεθος δυναμικά σας δόμηση εδώ, η δομή των δεδομένων σας. 43 00:02:04,940 --> 00:02:08,370 Και αυτό μας δίνει ένα πολύ περισσότερα πρόσθετη ευελιξία 44 00:02:08,370 --> 00:02:11,320 ότι εμείς δεν κάνουμε συνήθως έχουν με συστοιχίες. 45 00:02:11,320 --> 00:02:15,210 >> Όποιος σύγχυση σχετικά με τη βασική δομή του πώς μια λίστα συνδέσμων είναι 46 00:02:15,210 --> 00:02:17,930 ή γιατί θα πρέπει να χρησιμοποιήσετε ένα πάνω από μια σειρά; 47 00:02:17,930 --> 00:02:20,330 Ναι, θα πάμε πάνω στη λεπτομέρεια πώς να δημιουργήσετε ένα πραγματικά. 48 00:02:20,330 --> 00:02:24,121 Αλλά αυτό είναι ακριβώς το είδος του η γενική αίσθηση τώρα. 49 00:02:24,121 --> 00:02:24,620 Δροσερός. 50 00:02:24,620 --> 00:02:28,770 Και έτσι συστοιχίες αρμαθιές μαζί από αυτές τις υπέροχες μικρά πράγματα 51 00:02:28,770 --> 00:02:29,960 ονομάζονται κόμβοι. 52 00:02:29,960 --> 00:02:32,210 Όλα ένας κόμβος είναι ένας τύπος struct. 53 00:02:32,210 --> 00:02:36,090 Θυμηθείτε, ένα struct είναι αν θέλετε να δημιουργήσει ένα ορισμένο τύπο μεταβλητής 54 00:02:36,090 --> 00:02:39,850 σε C που δεν έχουν ήδη Υπάρχουν, εσείς, ως προγραμματιστής, 55 00:02:39,850 --> 00:02:42,030 μπορεί πραγματικά να δημιουργήσει αυτό τον εαυτό σας. 56 00:02:42,030 --> 00:02:46,540 >> Και έτσι αυτό το είδος των δεδομένων δομή ονομάζεται κόμβος, 57 00:02:46,540 --> 00:02:50,770 έχει πράγματι δημιουργήθηκε από εμάς, ότι δεν υπάρχουν μέσα σε C από μόνη της. 58 00:02:50,770 --> 00:02:53,150 Και ο τρόπος που δημιουργήσετε ένα είναι που έχετε 59 00:02:53,150 --> 00:02:57,170 η επικεφαλίδα της typedef struct, που λέει ο compiler είμαι 60 00:02:57,170 --> 00:02:59,640 για να δημιουργήσετε ένα struct. 61 00:02:59,640 --> 00:03:00,830 >> Εμείς πάμε για το όνομα «κόμβο». 62 00:03:00,830 --> 00:03:03,350 Και μέσα θα πάμε να δηλώσετε μια μεταβλητή μέσα, 63 00:03:03,350 --> 00:03:05,060 η οποία πρόκειται να αποθηκεύει μια τιμή. 64 00:03:05,060 --> 00:03:09,320 Και τότε θα πρόκειται επίσης να έχουν ένα δείκτη που ονομάζεται «επόμενο» 65 00:03:09,320 --> 00:03:12,090 ότι παρατηρεί στο επόμενο κόμβο στη λίστα σύνδεσμο. 66 00:03:12,090 --> 00:03:14,730 Και τότε θα τελειώσουμε ότι εκτός από απλά επαναλαμβάνοντας κόμβο πάλι έτσι 67 00:03:14,730 --> 00:03:17,490 ο compiler ξέρει, OK αυτό είναι το τέλος του struct μου. 68 00:03:17,490 --> 00:03:22,540 >> Και έτσι με αυτό τον τρόπο, είμαστε είδος της δημιουργίας ενός χαριτωμένο μικρό σειρά 69 00:03:22,540 --> 00:03:25,450 το είδος του πράγματος με ένα αξίας και με ένα δείκτη. 70 00:03:25,450 --> 00:03:27,757 Και μπορείτε να τα συνδέσει όλα μαζί με τις υποδείξεις. 71 00:03:27,757 --> 00:03:30,090 Έτσι ώστε να μπορούν όλοι να είναι το είδος αρμαθιές μαζί σε μια αλυσίδα. 72 00:03:30,090 --> 00:03:32,920 73 00:03:32,920 --> 00:03:34,162 >> Δροσερός. 74 00:03:34,162 --> 00:03:35,453 Μπορείτε να ακούσετε ότι λίγο καλύτερα; 75 00:03:35,453 --> 00:03:36,140 >> Κοινό: Ναι. 76 00:03:36,140 --> 00:03:38,540 >> ΚΑΘΗΓΗΤΗΣ: Εντάξει. 77 00:03:38,540 --> 00:03:44,280 Έτσι ο τρόπος που, όπως εσείς να δείτε, Μια τυπική λίστα συνδέσμων είναι δομημένο 78 00:03:44,280 --> 00:03:45,500 είναι να έχετε ένα κεφάλι. 79 00:03:45,500 --> 00:03:49,460 Έχετε την αξία κεφαλής που δεν είναι που επισήμανε από οποιοδήποτε άλλο δείκτη. 80 00:03:49,460 --> 00:03:53,177 Αλλά πρόκειται να επισημάνει, ή αναφορά, ένα άλλο κόμβο. 81 00:03:53,177 --> 00:03:56,510 Ο κόμβος αφού πρόκειται για αναφορά στο κόμβος μετά από αυτό, και ούτω καθεξής και ούτω καθεξής 82 00:03:56,510 --> 00:03:59,170 μέχρι να χτυπήσει τελικά στο τέλος της λίστας σύνδεσμο σας. 83 00:03:59,170 --> 00:04:00,980 Και απλά δεν θα έχει εκεί ένα δείκτη. 84 00:04:00,980 --> 00:04:04,659 >> Και έτσι, νομίζω, όπως, σε μια αλυσίδα, ή ακόμα και Αν κάποιος από εσάς παιδιά γίνεται, δεν ξέρω, 85 00:04:04,659 --> 00:04:06,450 όπως με φρούτα Loops όταν ήσουν μικρός. 86 00:04:06,450 --> 00:04:08,590 Θα τους χορδή μαζί και τα φορούν γύρω από το λαιμό σας. 87 00:04:08,590 --> 00:04:09,840 Σκεφτείτε ότι είναι το ίδιο ακριβώς πράγμα. 88 00:04:09,840 --> 00:04:12,964 Έχετε αυτά τα μικρά πράγματα που μπορεί να συμβολοσειράς μαζί εκείνο το σημείο σε ένα 89 00:04:12,964 --> 00:04:15,291 μετά από αυτό, στο ένα μετά αυτό, και ούτω καθεξής και ούτω καθεξής 90 00:04:15,291 --> 00:04:17,040 μέχρι να έχετε μια αλυσίδα μιας δομής δεδομένων 91 00:04:17,040 --> 00:04:21,190 που μπορείτε να χρησιμοποιήσετε όπως θέλετε. 92 00:04:21,190 --> 00:04:27,370 >> Έτσι, ο τρόπος που αυτό θα θέλαμε τυπικά εισάγετε ή να διαγράψετε 93 00:04:27,370 --> 00:04:30,020 κάθε κόμβο από ένα σύνδεσμο κατάλογος είναι πολύ διαφορετική 94 00:04:30,020 --> 00:04:31,970 ανάλογα με το πού είναι αυτός ο κόμβος. 95 00:04:31,970 --> 00:04:34,880 Έτσι, για παράδειγμα, επειδή δείκτες είναι πάντα 96 00:04:34,880 --> 00:04:38,645 δείχνοντας μια συγκεκριμένη τιμή, όταν διαγράφετε ή να εισάγετε ένα κόμβο, 97 00:04:38,645 --> 00:04:41,770 θέλετε να είστε σίγουροι οτι το δείκτη Όλα αυτά δείχνουν στα σωστά πράγματα. 98 00:04:41,770 --> 00:04:46,200 >> Έτσι, αν θέλετε να εισάγετε δυνητικά ένας νέος κόμβος με την αξία ενός 99 00:04:46,200 --> 00:04:48,379 μέσα σε ένα ταξινομημένο σύνδεσμο λίστα, όλοι γνωρίζουμε εδώ 100 00:04:48,379 --> 00:04:51,170 από την εικόνα που πρόκειται να πηγαίνετε στο μεταξύ κεφαλής και δύο, σωστά; 101 00:04:51,170 --> 00:04:52,620 Διότι ένα ταιριάζει ακριβώς εκεί. 102 00:04:52,620 --> 00:04:59,060 Αλλά ο τρόπος με τον οποίο θα κάνουμε ότι είναι η πρώτη εύρεση τιμών του δείκτη 103 00:04:59,060 --> 00:05:02,160 από το κεφάλι και την αποστολή αυτή να είναι μία. 104 00:05:02,160 --> 00:05:05,040 >> Αλλά θα έρθει σε ένα πρόβλημα εδώ. 105 00:05:05,040 --> 00:05:08,280 Μπορεί κανείς να δει ποιο είναι το πρόβλημα είναι αν ήμασταν στην πρώτη dereference 106 00:05:08,280 --> 00:05:10,090 ο δείκτης από το κεφάλι σε ένα; 107 00:05:10,090 --> 00:05:14,202 Τι πρόβλημα μπορεί να έχουμε τρέξει σε αν προσπαθήσουμε για να προσθέσετε αυτό το μπροστινό μέρος του πίνακα μας; 108 00:05:14,202 --> 00:05:15,409 >> Κοινό: [δεν ακούγεται] 109 00:05:15,409 --> 00:05:16,200 ΚΑΘΗΓΗΤΗΣ: Ακριβώς. 110 00:05:16,200 --> 00:05:20,000 Έτσι, εδώ έχουμε ένα δείκτη που ήταν μία φορά με κατεύθυνση από το κεφάλι μέχρι τα δύο. 111 00:05:20,000 --> 00:05:23,120 Αλλά αν μπορείτε να απαλλαγείτε από αυτό δείκτη, μπορείτε να το σημείο σε ένα, 112 00:05:23,120 --> 00:05:26,500 τώρα έχουμε την παραμικρή ιδέα πού να πάει να βρει δύο. 113 00:05:26,500 --> 00:05:29,850 Γιατί όπως είπα και πριν, έχετε ένα γιγαντιαίο κομμάτι μνήμης του υπολογιστή σας. 114 00:05:29,850 --> 00:05:31,860 Όλοι αυτοί οι κόμβοι θα μπορούσαν να εναλλάσσονται τυχαία 115 00:05:31,860 --> 00:05:33,350 σε οποιαδήποτε θέση στον υπολογιστή σας. 116 00:05:33,350 --> 00:05:36,140 Και δεν ξέρεις πώς να πάτε για την εύρεση αυτό. 117 00:05:36,140 --> 00:05:40,420 >> Και έτσι θα πρέπει να έχετε δείκτες που δείχνουν προς όλους τους κόμβους στο τέλος. 118 00:05:40,420 --> 00:05:42,420 Ή αλλιώς, αν κατά λάθος dereference ένα 119 00:05:42,420 --> 00:05:44,485 χωρίς την παραχώρηση μια τιμή πρώτο, είστε 120 00:05:44,485 --> 00:05:47,410 ακριβώς πρόκειται να χάσουν τα πάντα στη συνέχεια. 121 00:05:47,410 --> 00:05:49,720 >> Λοιπόν, τι θα πάμε να κάνουμε είναι, θα πρέπει πρώτα 122 00:05:49,720 --> 00:05:53,270 θέλετε να δημιουργήσετε ένα δείκτη για ο κόμβος που θέλετε να εισαγάγετε. 123 00:05:53,270 --> 00:05:55,270 Το σημείο όπου μπορείτε να θέλετε να το τοποθετήσετε σε, 124 00:05:55,270 --> 00:05:59,410 και, στη συνέχεια, στη συνέχεια, θα θα μπορούσε να δείξει το κεφάλι πίσω στο ένα. 125 00:05:59,410 --> 00:06:02,800 >> Μήπως αυτό έχει νόημα για όλους εδώ; 126 00:06:02,800 --> 00:06:03,346 Εξαιρετική. 127 00:06:03,346 --> 00:06:04,720 Σκεφτείτε το σαν απλά σαν μια αλυσίδα. 128 00:06:04,720 --> 00:06:07,420 Εάν προσθέσετε μια αλυσίδα, είναι το είδος της διαισθητικής 129 00:06:07,420 --> 00:06:10,742 πώς θα πάει σχετικά με την τοποθέτηση αυτό. 130 00:06:10,742 --> 00:06:15,274 >> Εντάξει, έτσι ώστε να είναι στην πραγματικότητα πολύ μικρότερη από ό, τι νόμιζα ότι θα ήταν, 131 00:06:15,274 --> 00:06:16,690 μια κουβεντιάζω πέντε λεπτά στους καταλόγους σύνδεσμο. 132 00:06:16,690 --> 00:06:19,960 Ακριβώς έτσι εσείς έχετε το βασική ιδέα του τι είναι αυτό. 133 00:06:19,960 --> 00:06:23,580 >> Εδώ έχουμε την ημερήσια διάταξη για κουίζ μηδέν. 134 00:06:23,580 --> 00:06:24,895 Μην αφήστε αυτό να σας εκφοβίσει. 135 00:06:24,895 --> 00:06:26,270 Ξέρω ότι είναι πολλές πληροφορίες. 136 00:06:26,270 --> 00:06:27,580 Φαίνεται πολύ τρομακτικό. 137 00:06:27,580 --> 00:06:33,130 Είναι επίσης πολύ, εγώ νομίζω, CSC είδος των όρων. 138 00:06:33,130 --> 00:06:37,440 Τα πράγματα όπως χορδές δεκαεξαδικό, δείκτες, οι χορηγήσεις δυναμική μνήμη 139 00:06:37,440 --> 00:06:40,120 είναι πολύ τρομακτικό όρους άκουσμα. 140 00:06:40,120 --> 00:06:42,700 >> Αλλά θα πάμε να τα σπάσουν προς τα κάτω, κάνουμε κάποια προβλήματα πρακτικής 141 00:06:42,700 --> 00:06:44,980 έτσι ώστε εσείς όλα είναι έτοιμα για αυτή τη δοκιμή. 142 00:06:44,980 --> 00:06:47,104 Πόσοι από εσάς έχετε παιδιά έχει ήδη ξεκινήσει τη μελέτη; 143 00:06:47,104 --> 00:06:50,040 144 00:06:50,040 --> 00:06:53,670 >> Εντάξει, εσείς πιθανώς θέλετε για να ξεκινήσει να ξεκινήσετε 145 00:06:53,670 --> 00:06:56,480 σχετικά ότι, επειδή το κουίζ είναι αύριο. 146 00:06:56,480 --> 00:06:58,739 Ή την Πέμπτη για κάποιους από εσάς. 147 00:06:58,739 --> 00:07:01,030 Ναι, έτσι θα πάμε για να πάει πάνω από ορισμένα προβλήματα πρακτικής. 148 00:07:01,030 --> 00:07:04,600 Αν εσείς θέλετε να λάβει όλα από ένα φύλλο χαρτί, ένα μολύβι. 149 00:07:04,600 --> 00:07:07,310 Εμείς πάμε για να περάσουν μόνο το συντριπτική πλειοψηφία του τμήματος του σήμερα 150 00:07:07,310 --> 00:07:11,590 που πηγαίνει πέρα ​​από μερικά από αυτά, ώστε εσείς έχετε μια ιδέα για το τι να περιμένουμε στο κουίζ. 151 00:07:11,590 --> 00:07:14,957 152 00:07:14,957 --> 00:07:16,890 >> ΕΝΤΆΞΕΙ. 153 00:07:16,890 --> 00:07:19,730 Ένα ζευγάρι της υλικοτεχνικής Στοιχεία καθώς και, για κανέναν 154 00:07:19,730 --> 00:07:25,120 ο οποίος δεν ήταν σε αυτό το σύνδεσμο εκεί, αν πηγαίνετε να cs50.yale.edu, στο μπροστινό μέρος 155 00:07:25,120 --> 00:07:28,566 Αυτή η σελίδα υπάρχει μια σύνδεση που λέει «Περί Quiz Μηδέν". 156 00:07:28,566 --> 00:07:29,440 Σύνδεσμος σας μεταφέρει εκεί. 157 00:07:29,440 --> 00:07:31,065 Εάν δεν το έχετε διαβάσει, παρακαλούμε να το διαβάσετε. 158 00:07:31,065 --> 00:07:34,470 Επειδή σας λέει πραγματικά σημαντικό πληροφορίες σχετικά με το κουίζ. 159 00:07:34,470 --> 00:07:37,410 >> Πάω να τραβήξει έξω από αυτό ότι ακριβώς επειδή, φυσικά, 160 00:07:37,410 --> 00:07:40,200 αν εσείς δεν ξέρετε από πού για να πάει, θα έχουμε προβλήματα. 161 00:07:40,200 --> 00:07:44,220 Και έτσι, αν η τελευταία σου άποψη με Α σε Ν, πάει στο σχολείο του νόμου αμφιθέατρο. 162 00:07:44,220 --> 00:07:47,500 Και αν η τελευταία σας αρχίζει με P Ω, πηγαίνετε στο Αμφιθέατρο Davies. 163 00:07:47,500 --> 00:07:50,240 Και αυτό ισχύει μόνο για άνθρωποι στο τμήμα Τετάρτη. 164 00:07:50,240 --> 00:07:53,420 >> Εάν παίρνετε το κουίζ σχετικά με Πέμπτη, πηγαίνετε στο SSS 114 165 00:07:53,420 --> 00:07:55,078 όπου διάλεξη σας συνήθως είναι. 166 00:07:55,078 --> 00:07:55,953 Κοινό: [δεν ακούγεται] 167 00:07:55,953 --> 00:07:59,316 168 00:07:59,316 --> 00:08:01,940 ΚΑΘΗΓΗΤΗΣ: O έως το Ω, θα πάμε να πάει στο αμφιθέατρο Davies. 169 00:08:01,940 --> 00:08:03,273 Πάω να το αλλάξουμε αυτό, σωστά; 170 00:08:03,273 --> 00:08:05,670 171 00:08:05,670 --> 00:08:09,698 >> Ω, ναι, μπορείτε απλά να αποτύχει αυτόματα. 172 00:08:09,698 --> 00:08:11,753 >> Ω ναι, αυτό θα είναι Christa. 173 00:08:11,753 --> 00:08:15,190 174 00:08:15,190 --> 00:08:16,030 Ναι, κακό μου. 175 00:08:16,030 --> 00:08:17,610 Ναι, O έως το Ω, θα πάμε να πάει στο Davies Auditorim. 176 00:08:17,610 --> 00:08:19,140 Πάω να διορθώσετε αυτή τη φορά μπορώ να φορτώσω. 177 00:08:19,140 --> 00:08:20,320 Ναι. 178 00:08:20,320 --> 00:08:22,160 >> Και τότε, επίσης, κάτι σημαντικό στο μυαλό 179 00:08:22,160 --> 00:08:25,290 είναι ότι την Τετάρτη, αν είστε επίσημα εγγράφονται στο τμήμα Τετάρτη, 180 00:08:25,290 --> 00:08:26,832 θα πρέπει να λάβει κουίζ σας την Τετάρτη. 181 00:08:26,832 --> 00:08:29,706 Και αν είστε εγγεγραμμένοι σε Πέμπτη, θα πρέπει να λαμβάνουν το κουίζ σας Πέμπτη. 182 00:08:29,706 --> 00:08:31,000 Και είναι κατά τη διάρκεια της κατηγορίας. 183 00:08:31,000 --> 00:08:35,970 Όταν, νομίζω ότι είναι σαν 1:00 2:15 Τετάρτη και 2:30 με 3:45 184 00:08:35,970 --> 00:08:37,220 την Πέμπτη. 185 00:08:37,220 --> 00:08:41,710 >> Εάν έχετε μια ασυμβίβαστη συγκρούσεις, Δικαιολογίες Dean είναι το μόνο πράγμα, 186 00:08:41,710 --> 00:08:43,030 Δυστυχώς, μπορούμε να πάρουμε. 187 00:08:43,030 --> 00:08:45,560 Επειδή είχαμε μια συντριπτική πλειονότητα των αιτήσεων 188 00:08:45,560 --> 00:08:47,970 για να μεταβείτε από την Τετάρτη έως την Πέμπτη. 189 00:08:47,970 --> 00:08:51,265 Που δεν μπορούμε να τιμήσουμε εκτός έχουμε αίτημα ενός κοσμήτορα. 190 00:08:51,265 --> 00:08:52,650 >> ΕΝΤΆΞΕΙ. 191 00:08:52,650 --> 00:08:57,000 Έτσι, πριν ξεκινήσετε για μια μερικά από τα προβλήματα πρακτικής, 192 00:08:57,000 --> 00:09:00,540 Είμαι ακριβώς πρόκειται να πάει πέρα ​​από Χρήσιμες συμβουλές του Andy για την επιτυχία. 193 00:09:00,540 --> 00:09:04,140 Εσείς, όταν μελέτη, που πραγματικά θέλουν να ασκήσουν τη σύνταξη κώδικα με το χέρι. 194 00:09:04,140 --> 00:09:07,050 Την πρώτη φορά που έχω ποτέ πήρε ένα κουίζ CS, δεν είχα 195 00:09:07,050 --> 00:09:09,960 γραφής πρακτική κώδικα με το χέρι πριν και ήταν εξαιρετικά 196 00:09:09,960 --> 00:09:11,890 σοκαριστικό το πόσο δύσκολο ήταν. 197 00:09:11,890 --> 00:09:16,125 >> Όταν εσείς δεν μπει η συνήθεια να πληκτρολογήσετε τα πάντα, 198 00:09:16,125 --> 00:09:20,260 έρχεται πολύ φυσικά είναι είναι σε θέση να έχουν συμπληρώθηκε αυτόματα 199 00:09:20,260 --> 00:09:22,015 παρένθεση και ερωτηματικά εκεί. 200 00:09:22,015 --> 00:09:23,890 Όταν το γράψω με το χέρι, μερικές φορές είναι 201 00:09:23,890 --> 00:09:27,100 πολύ, πολύ εύκολο να ξεχάσουμε ένα ερωτηματικό, ή ξεχάσετε να κλείσετε ένα βραχίονα, 202 00:09:27,100 --> 00:09:30,970 ή ξεχάσετε να κλείσετε μια άνω και κάτω τελεία, ή κατι τετοιο. 203 00:09:30,970 --> 00:09:34,322 >> Έτσι, όταν γράφετε κώδικα με το χέρι, Είναι μια πολύ διαφορετική αίσθηση. 204 00:09:34,322 --> 00:09:37,280 Έτσι ρε παιδιά, όταν εργάζεστε μέσα από μερικά από τα προβλήματα πρακτικής, 205 00:09:37,280 --> 00:09:38,904 θα ήταν καλό να ασκήσετε πραγματικά σήμερα. 206 00:09:38,904 --> 00:09:41,770 Ή αύριο, υποθέτω, αν είστε παίρνοντας το κουίζ την Πέμπτη. 207 00:09:41,770 --> 00:09:45,280 >> Δεύτερον, έχουμε το τελευταίο, όπως, οκτώ χρόνια την αξία της πρακτικής 208 00:09:45,280 --> 00:09:47,070 κουίζ σε απευθείας σύνδεση. 209 00:09:47,070 --> 00:09:50,759 Κουίζ Η φετινή θα είναι πιθανώς πολύ, πολύ παρόμοια με όλα αυτά. 210 00:09:50,759 --> 00:09:51,800 Είναι όλα πολύ παρόμοια. 211 00:09:51,800 --> 00:09:54,220 Μπορείτε να το είδος του να μπει η ύφος του τύπου των ερωτήσεων 212 00:09:54,220 --> 00:09:57,250 αυτό που ζητάμε, το είδος του λειτουργίες που θα το γράψει σε, 213 00:09:57,250 --> 00:09:58,580 κ.λπ., και τα λοιπά. 214 00:09:58,580 --> 00:10:01,980 >> Πάρτε λοιπόν τα κουίζ πρακτική, ειδικά κάτω από χρονικούς περιορισμούς. 215 00:10:01,980 --> 00:10:05,390 75 λεπτά για να κάνετε το κουίζ είναι δεν είναι πολύ χρονικό διάστημα. 216 00:10:05,390 --> 00:10:07,254 Είναι πολύ, πολύ καιρό. 217 00:10:07,254 --> 00:10:09,670 Και έτσι εσείς θέλετε πραγματικά για να βεβαιωθείτε ότι εσείς είστε 218 00:10:09,670 --> 00:10:11,990 τη συνήθεια της γραφής κώδικας με το χέρι γρήγορα. 219 00:10:11,990 --> 00:10:15,070 Επειδή δεν θέλετε την πρώτη ώρα για να δείτε ένα κουίζ αυτού του μήκους 220 00:10:15,070 --> 00:10:16,560 να είναι σε ένα κουίζ σας. 221 00:10:16,560 --> 00:10:20,540 Εσείς πραγματικά θέλετε να είστε σίγουροι να εξασκηθείτε λίγο. 222 00:10:20,540 --> 00:10:24,550 >> Τέταρτον, θέλετε να επανεξετάσει το διάλεξη και το τμήμα διαφάνειες. 223 00:10:24,550 --> 00:10:25,980 Δεν χρειάζεται να απομνημονεύσετε τα πράγματα. 224 00:10:25,980 --> 00:10:30,430 Στην πραγματικότητα, ο καθένας έχει επιτραπεί η ένα φύλλο λευκό χαρτί σημειώσεων, 225 00:10:30,430 --> 00:10:31,090 εμπρός και πίσω. 226 00:10:31,090 --> 00:10:32,920 Εσείς μπορείτε να πληκτρολογήσετε ή να γράψετε. 227 00:10:32,920 --> 00:10:37,070 Αν βρείτε τον εαυτό σας να χρειάζεται να απομνημονεύσουν κάτι, να το βάλετε κάτω σε αυτό το φύλλο. 228 00:10:37,070 --> 00:10:40,810 >> Σας εγγυώμαι, δεν θέλετε να να κολλήσει στη μέση αυτού του κουίζ 229 00:10:40,810 --> 00:10:43,890 είναι σαν, Ω ναι, ποια είναι η runtime αυτού του είδους σε σχέση με αυτό το είδος. 230 00:10:43,890 --> 00:10:46,490 Ακριβώς το βάλετε κάτω και να το αντιγράψετε κατ 'ευθείαν από το φύλλο σημείωσή σας. 231 00:10:46,490 --> 00:10:50,420 Στη συνέχεια, μπορείτε πραγματικά να χρησιμοποιήσετε μόνο σας εγκέφαλο να σκεφτούν τα προβλήματα 232 00:10:50,420 --> 00:10:52,190 αντί να χρειάζεται να υπενθυμίσει τα γεγονότα. 233 00:10:52,190 --> 00:10:55,250 Και έτσι πραγματικά να επωφεληθούν οποιωνδήποτε στοιχείων εξειδικευμένες 234 00:10:55,250 --> 00:11:00,140 ότι νομίζετε ότι πρέπει να απομνημονεύσουν, γδούπο κάτω στο φύλλο ελέγχου. 235 00:11:00,140 --> 00:11:02,680 >> Εντάξει, οποιεσδήποτε ερωτήσεις εφοδιαστικά σχετικά με το κουίζ 236 00:11:02,680 --> 00:11:05,510 πριν αρχίσουμε κάποια προβλήματα κουίζ πρακτική; 237 00:11:05,510 --> 00:11:06,416 Ναι; 238 00:11:06,416 --> 00:11:10,040 >> Κοινό: Δεν είχα την ευκαιρία να εξετάσουμε το κουίζ [δεν ακούγεται] 239 00:11:10,040 --> 00:11:11,757 αλλά δεν πρόκειται να είναι εφαρμογή ως επί το πλείστον, 240 00:11:11,757 --> 00:11:14,090 Ή υπάρχει, επίσης, πρόκειται να είναι, όπως, ερωτήσεις γνώσεων; 241 00:11:14,090 --> 00:11:14,940 >> ΚΑΘΗΓΗΤΗΣ: Είναι πολύ. 242 00:11:14,940 --> 00:11:16,731 Έτσι, ο τρόπος που θα θα περιγράφεται το κουίζ 243 00:11:16,731 --> 00:11:18,810 is-- έβαλα μαζί κάποια προβλήματα πρακτικής 244 00:11:18,810 --> 00:11:20,960 ότι τράβηξα από όλα τα κουίζ. 245 00:11:20,960 --> 00:11:25,210 Αλλά θα δείτε ότι υπάρχουν δύο κύρια τα είδη των ερωτήσεων που θα σας ζητήσουμε. 246 00:11:25,210 --> 00:11:28,750 >> Το ένα είναι μια λεπτομέρεια πολύ χαμηλό επίπεδο πράγματα. 247 00:11:28,750 --> 00:11:31,720 Θα σας δώσω ένα μικρό κομμάτι του κώδικα και να πω, είναι λάθος υπάρχει εδώ; 248 00:11:31,720 --> 00:11:33,110 Τι θα πρέπει να εκτυπώσετε από εδώ; 249 00:11:33,110 --> 00:11:35,980 Τι θα παράγει αυτός ο κώδικας, κλπ. 250 00:11:35,980 --> 00:11:38,710 Έτσι λεπτομέρειες πληροφορίες πολύ χαμηλό επίπεδο. 251 00:11:38,710 --> 00:11:42,700 >> Και από την άλλη πλευρά, θα έχουμε πολύ υψηλού επιπέδου ερωτήσεις που βασίζονται στη γνώση. 252 00:11:42,700 --> 00:11:45,190 Μπορείτε να εξηγήσετε τι το διαφορά μεταξύ ενός δυαδική αναζήτηση 253 00:11:45,190 --> 00:11:46,148 και μια γραμμική αναζήτηση είναι; 254 00:11:46,148 --> 00:11:48,500 Γιατί να θέλουμε να χρησιμοποιήστε ένα πάνω στο άλλο; 255 00:11:48,500 --> 00:11:49,960 Ίσως, αυτό είναι GDB; 256 00:11:49,960 --> 00:11:51,560 Γιατί θέλουμε να χρησιμοποιήσουμε GDB; 257 00:11:51,560 --> 00:11:54,590 Υψηλότερο επίπεδο, πιο θεμελιώδη κατανόηση ερωτήσεις. 258 00:11:54,590 --> 00:11:58,240 Έτσι, θα δείτε ένα μίγμα οι δυο τους σε ένα κουίζ σας. 259 00:11:58,240 --> 00:12:01,462 >> Οτιδήποτε άλλο πριν κεφάλι κατ 'ευθείαν σε αυτό; 260 00:12:01,462 --> 00:12:02,879 ΕΝΤΆΞΕΙ. 261 00:12:02,879 --> 00:12:03,670 Κοινό: Μία ακόμη. 262 00:12:03,670 --> 00:12:04,030 ΚΑΘΗΓΗΤΗΣ: Ω, ένα περισσότερο. 263 00:12:04,030 --> 00:12:04,340 Συγνώμη. 264 00:12:04,340 --> 00:12:05,631 >> Κοινό: Ναι, αυτό είναι εντάξει. 265 00:12:05,631 --> 00:12:10,140 Έτσι που λέτε είναι 75 λεπτά πολύ μικρή, όπως είναι απίθανο 266 00:12:10,140 --> 00:12:11,640 ότι θα τελειώσουμε; 267 00:12:11,640 --> 00:12:13,571 Ή, όπως, 75 λεπτά είναι ακριβώς όπως πολύ χρόνο 268 00:12:13,571 --> 00:12:15,700 όπως θα πρέπει αν ήμασταν κατάλληλα προετοιμασμένοι; 269 00:12:15,700 --> 00:12:17,450 ΚΑΘΗΓΗΤΗΣ: Εντάξει, έτσι η κουίζ είναι προκλητική. 270 00:12:17,450 --> 00:12:19,550 Είναι σίγουρα δύσκολο. 271 00:12:19,550 --> 00:12:21,092 Θα βρείτε τον εαυτό σας σε σύντομο χρονικό διάστημα. 272 00:12:21,092 --> 00:12:24,341 Θα πρόκειται πιθανώς να χτυπήσει, όπως 10, 15 λεπτά για να πάει, και να είναι όπως, σκατά. 273 00:12:24,341 --> 00:12:25,520 Έχω τόσα πολλά να γίνουν. 274 00:12:25,520 --> 00:12:26,520 Και αυτό είναι εντελώς καλά. 275 00:12:26,520 --> 00:12:28,740 Ο καθένας πρόκειται να αισθάνονται τον ίδιο τρόπο. 276 00:12:28,740 --> 00:12:31,074 >> Απλά να γνωρίζει πολύ καλά πόσο χρόνο έχετε. 277 00:12:31,074 --> 00:12:33,490 Και έτσι γι 'αυτό σας λέω παιδιά κάνουν τα κουίζ πρακτική. 278 00:12:33,490 --> 00:12:36,672 Επειδή πραγματικά δίνει μια μεγάλη αίσθηση από ό, τι το κουίζ θα είναι παρόμοια. 279 00:12:36,672 --> 00:12:39,130 Έτσι, αν βρείτε τον εαυτό σας να είναι σε θέση να ολοκληρώσει την πρακτική 280 00:12:39,130 --> 00:12:41,671 κουίζ σε ένα καλό ποσό των ώρα, μπορείτε να τον εαυτό σας ρυθμό και, 281 00:12:41,671 --> 00:12:45,695 τότε δεν θα έχει πρόβλημα την Τετάρτη ή την Πέμπτη. 282 00:12:45,695 --> 00:12:46,575 >> Δροσερός. 283 00:12:46,575 --> 00:12:49,200 Έτσι, αν ο καθένας νομίζω wants-- οι περισσότεροι άνθρωποι έχουν φύλλα χαρτιού 284 00:12:49,200 --> 00:12:49,810 έξω ήδη. 285 00:12:49,810 --> 00:12:52,604 Πάω να ουσιαστικά μόνο σας δώσει ερωτήσεις δείγμα, 286 00:12:52,604 --> 00:12:54,520 να σας δώσει τα παιδιά, όπως, ένα λίγα λεπτά για να τους κάνουν. 287 00:12:54,520 --> 00:12:59,610 Και θα πάμε πέρα ​​ως τάξη ποιες είναι οι απαντήσεις σε αυτά είναι. 288 00:12:59,610 --> 00:13:02,860 >> Έτσι, αυτό είναι ένα πολύ χαρακτηριστικό προηγούμενη ερώτηση θα 289 00:13:02,860 --> 00:13:06,720 Σας ερωτώ, ακριβώς τη μετατροπή αριθμοί μεταξύ διαφορετικών βάσεων. 290 00:13:06,720 --> 00:13:09,070 Binary, όπως εσείς μπορείτε ανάκληση, είναι η βάση δύο. 291 00:13:09,070 --> 00:13:12,470 Δεκαδικό ψηφίο είναι με βάση το 10, ή αυτό που καθώς οι άνθρωποι ερμηνεύουν συνήθως. 292 00:13:12,470 --> 00:13:17,120 Δεκαεξαδικού βάση 16, που είναι το μηδέν έως εννέα καθώς Α έως F. 293 00:13:17,120 --> 00:13:19,990 >> Έτσι, δεν υπάρχει τέσσερις αριθμούς είμαι ζητώντας εσείς να μετατρέψετε εδώ. 294 00:13:19,990 --> 00:13:23,909 Θα δώσω θέλετε, τρεις έως τέσσερα λεπτά για να σκεφτείτε μέσω πώς 295 00:13:23,909 --> 00:13:25,200 θα πάει για την επίλυση αυτή. 296 00:13:25,200 --> 00:13:32,832 297 00:13:32,832 --> 00:13:35,710 >> Κοινό: μας επιτρέπεται υπολογιστές; 298 00:13:35,710 --> 00:13:37,630 >> ΚΑΘΗΓΗΤΗΣ: Δεν θα Πρέπει αριθμομηχανές, ναι. 299 00:13:37,630 --> 00:13:42,420 Νομίζω ότι βασική Επιπλέον, νομίζω, είναι Όλα τα παιδιά σας θα σας ζητηθεί να το κάνετε. 300 00:13:42,420 --> 00:14:41,700 301 00:14:41,700 --> 00:14:45,070 >> Και ακριβώς γι 'αυτό το είδος έχει μια αίσθηση της, όταν ο καθένας γίνεται, κοιτάζω προς τα πάνω, 302 00:14:45,070 --> 00:14:47,429 κύμα, δεν ξέρω, χαμόγελο, φαίνονται ευχαριστημένοι αν τελειώσατε. 303 00:14:47,429 --> 00:14:47,929 Ναι. 304 00:14:47,929 --> 00:17:21,680 305 00:17:21,680 --> 00:17:23,945 Ίσως μερικά λεπτά ακόμα. 306 00:17:23,945 --> 00:18:28,080 307 00:18:28,080 --> 00:18:29,600 >> Εντάξει, ας το φέρει. 308 00:18:29,600 --> 00:18:31,580 Είμαι σκοπίμως πρόκειται να να σας δώσει τα παιδιά λιγότερο χρόνο 309 00:18:31,580 --> 00:18:33,760 ό, τι ίσως χρειαστεί να κάνει μερικά από αυτά τα προβλήματα, 310 00:18:33,760 --> 00:18:37,124 απλώς και μόνο επειδή θέλω να βεβαιωθείτε ότι παίρνουμε μέσα από μια δέσμη των προβλημάτων. 311 00:18:37,124 --> 00:18:39,290 Έτσι, μην ανησυχείτε αν δεν έχετε έχουν την ευκαιρία να τελειώσει. 312 00:18:39,290 --> 00:18:43,770 Απόλυτα ΟΚ εφ 'όσον έχετε μια ιδέα για το πώς να πάει για αυτό. 313 00:18:43,770 --> 00:18:45,850 Ας πάμε μπροστά και να κάνουμε το πρώτο. 314 00:18:45,850 --> 00:18:52,690 315 00:18:52,690 --> 00:18:57,870 >> Έτσι το πρώτο, δεν θέλει κανείς να μου πει σε δυαδική, τι κάνει το καθένα από αυτά τα ψηφία 316 00:18:57,870 --> 00:19:00,484 αντιπροσωπεύουν την άποψη των τιμών τους; 317 00:19:00,484 --> 00:19:01,250 Ναι; 318 00:19:01,250 --> 00:19:03,349 >> Κοινό: Δύο έως το ισχύς μηδέν, δύο προς ένα. 319 00:19:03,349 --> 00:19:04,140 ΚΑΘΗΓΗΤΗΣ: Ακριβώς. 320 00:19:04,140 --> 00:19:04,640 Έτσι. 321 00:19:04,640 --> 00:19:13,430 322 00:19:13,430 --> 00:19:16,430 >> Δεξιά, έτσι τυπικά όταν είμαστε στη βάση 10 323 00:19:16,430 --> 00:19:20,580 όλα αυτά αντιπροσωπεύουν είναι, όπως, 10 στη βάση του μηδέν, έτσι δεν είναι; 324 00:19:20,580 --> 00:19:21,810 Αυτό είναι ένα μέρος για σας. 325 00:19:21,810 --> 00:19:24,520 Όλα χώρα σας είναι 10 είναι 10 στη δύναμη του ενός. 326 00:19:24,520 --> 00:19:26,600 Μπορείτε θέση 100 είναι 10 με τη δύναμη των δύο. 327 00:19:26,600 --> 00:19:29,570 >> Ό, τι βάσης είστε σε πηγαίνει να κάνει με το ίδιο ακριβώς πράγμα, 328 00:19:29,570 --> 00:19:31,480 μόνο με μια διαφορετική βάση. 329 00:19:31,480 --> 00:19:34,130 Έτσι δυαδικά, όλα αυτά είναι είναι η βάση δύο. 330 00:19:34,130 --> 00:19:37,110 Θα πάμε για να μετατρέψει όλα τα ψηφία σε δύο ανεξάρτητα εξουσία να 331 00:19:37,110 --> 00:19:38,190 του εν λόγω ψηφίου. 332 00:19:38,190 --> 00:19:41,450 Και έτσι με αυτή την έννοια, εμείς μπορεί να έχουν έναν ευκολότερο τρόπο 333 00:19:41,450 --> 00:19:43,800 να είναι σε θέση να προσθέσει επάνω ή Συνοψίζοντας όλα τα νούμερα για 334 00:19:43,800 --> 00:19:46,010 να μετατρέψει σε βάση 10. 335 00:19:46,010 --> 00:19:50,362 >> Έτσι δεν θέλει κανείς να μου πει ποια είναι η απάντηση στο πρώτο είναι στη βάση δέκα; 336 00:19:50,362 --> 00:19:51,674 >> Κοινό: Δύο, [δεν ακούγεται] 337 00:19:51,674 --> 00:19:52,340 ΚΑΘΗΓΗΤΗΣ: Ναι. 338 00:19:52,340 --> 00:19:53,230 Κοινό: 42. 339 00:19:53,230 --> 00:19:56,560 ΚΑΘΗΓΗΤΗΣ: 42, θα πάτε εκεί. 340 00:19:56,560 --> 00:20:00,660 Έτσι, ο τρόπος με τον οποίο πήρα αυτή την απάντηση ήταν από κάνει δύο το πρώτο, που είναι δύο. 341 00:20:00,660 --> 00:20:02,760 Συν δύο το τρίτο, το οποίο είναι οκτώ. 342 00:20:02,760 --> 00:20:07,590 Συν δύο στην πέμπτη, η οποία είναι ό, τι έχει απομείνει. 343 00:20:07,590 --> 00:20:09,390 Θα τα συνοψίσω και είναι 42. 344 00:20:09,390 --> 00:20:12,000 >> Υπάρχει κανείς σύγχυση σχετικά με το πώς φτάσαμε αυτό; 345 00:20:12,000 --> 00:20:15,630 Έτσι βασική Επιπλέον, όπως Είπα, θα πρέπει να είναι εντάξει. 346 00:20:15,630 --> 00:20:17,410 Αν όχι, καλά, μπορούμε να ασκήσουμε ότι πάρα πολύ. 347 00:20:17,410 --> 00:20:18,720 Αλλά αυτό είναι εντάξει. 348 00:20:18,720 --> 00:20:20,560 Δροσερός. 349 00:20:20,560 --> 00:20:25,570 >> Θέλει κανείς να μου δώσει το απάντηση στο δεύτερο, καθώς; 350 00:20:25,570 --> 00:20:26,860 >> 50; 351 00:20:26,860 --> 00:20:27,600 Καλός. 352 00:20:27,600 --> 00:20:30,044 Όποιος σύγχυση σχετικά με το πώς έχουμε ότι είτε; 353 00:20:30,044 --> 00:20:31,960 Cool, θα έχω το απαντήσεις στην επόμενη διαφάνεια. 354 00:20:31,960 --> 00:20:34,440 Έτσι, μην ανησυχείτε, αν Πρέπει να το αντιγράψετε τα κάτω. 355 00:20:34,440 --> 00:20:38,860 >> Εντάξει, έτσι δεκαεξαδικό είναι λίγο πιο περίπλοκη. 356 00:20:38,860 --> 00:20:41,840 αλλά Πάω να σας δείξω παιδιά μια συντόμευση για το πώς να το κάνουμε. 357 00:20:41,840 --> 00:20:44,800 Έτσι, δεκαεξαδικό, όπως σας θυμηθείτε, όλα είναι να είναι 16. 358 00:20:44,800 --> 00:20:48,920 Και επειδή εμείς οι άνθρωποι δεν κάνουν πραγματικότητα έχει 16 αριθμούς για να δηλώνετε ότι, 359 00:20:48,920 --> 00:20:56,940 πάμε από το μηδέν έως εννέα, τα οποία το πρώτο μας 10 αξίες, και στη συνέχεια να κάνουμε A έως F, 360 00:20:56,940 --> 00:20:58,630 τα οποία είναι τα επόμενα έξι αξίες. 361 00:20:58,630 --> 00:21:03,040 >> Και έτσι ο ευκολότερος τρόπος για να πάει από οποιοδήποτε δυαδικό αριθμό σε δεκαεξαδικό 362 00:21:03,040 --> 00:21:05,350 είναι να τους χωρίσω στη μέση. 363 00:21:05,350 --> 00:21:10,042 Και έτσι κάθε δυαδικό αριθμό θα δώσουμε θα έχετε πιθανώς οκτώ ψηφία. 364 00:21:10,042 --> 00:21:11,750 Μπορείτε να σπάσει μόνο τους επάνω στη μέση. 365 00:21:11,750 --> 00:21:17,460 >> Έτσι, το πρώτο ένα-- ένα ένα, ένα ένα, ένα, ένα, ένα ένα. 366 00:21:17,460 --> 00:21:21,340 Είδος το σκέφτομαι, ξέρετε, σχεδιάστε ένα κάθετο ή ένα κόμμα μεταξύ τους. 367 00:21:21,340 --> 00:21:23,800 Και μπορείτε απλά να μετατρέψετε άμεσα, ανεξάρτητα από 368 00:21:23,800 --> 00:21:26,670 αυτό είναι με την πρώτη δεκαεξαδικό αριθμό, 369 00:21:26,670 --> 00:21:29,880 και ό, τι εδώ είναι να το δεύτερο από δεκαεξαδική μορφή. 370 00:21:29,880 --> 00:21:37,584 >> Έτσι, να θυμάστε από το κοινό συμβολισμό, τι αξίες δεκαεξαδικό αρχίσει με; 371 00:21:37,584 --> 00:21:38,460 >> Κοινό: Μηδέν. 372 00:21:38,460 --> 00:21:39,270 >> ΚΑΘΗΓΗΤΗΣ: 0x. 373 00:21:39,270 --> 00:21:45,210 Έτσι, γνωρίζουμε ότι κάθε φορά που σας ζητάμε να μετατρέψετε οποιοδήποτε αριθμό σε δεκαεξαδικό, 374 00:21:45,210 --> 00:21:48,230 ή κάθε φορά που θα δείτε κάποιο αριθμός που ξεκινά με 0x, 375 00:21:48,230 --> 00:21:50,230 Ξέρετε ότι είναι μια δεκαεξαδική τιμή. 376 00:21:50,230 --> 00:21:54,160 >> Και μετά θα πάμε να σας ζητηθεί να καθορίσει ποια είναι αυτά τα δύο ψηφία. 377 00:21:54,160 --> 00:21:59,690 Και ο τρόπος που το κάνουμε αυτό, συμπίπτοντας μέχρι ότι το ήμισυ και ότι αυτά συμφωνούν ότι το ήμισυ μέχρι. 378 00:21:59,690 --> 00:22:02,870 Έτσι, σε αυτό το παράδειγμα, τι Θα το ένα, ένα, ένα, ένα είναι; 379 00:22:02,870 --> 00:22:04,890 Τι αξία θα ήταν αυτό; 380 00:22:04,890 --> 00:22:06,040 Αυτό ήθελα να είναι F, έτσι δεν είναι; 381 00:22:06,040 --> 00:22:08,050 Αυτό θα ήταν 15. 382 00:22:08,050 --> 00:22:11,780 >> Έτσι, αυτό θα ήταν ένα F., ένα, ένα, ένα εδώ είναι, επίσης, 383 00:22:11,780 --> 00:22:21,270 F. Έτσι, ένα, ένα, ένα, ένα, ένα, ένα, ένα, μια σε δεκαεξαδική, όλα είναι είναι 0xFF. 384 00:22:21,270 --> 00:22:25,350 Επειδή αυτό αντιπροσώπευε το ήμισυ F, η αξία των 15, 385 00:22:25,350 --> 00:22:27,331 και αυτό το εξάμηνο αντιπροσωπεύουν F, η τιμή 15. 386 00:22:27,331 --> 00:22:29,456 Επειδή θυμηθείτε, είμαστε αρχής γενομένης από μηδέν έως εννέα. 387 00:22:29,456 --> 00:22:35,290 Ένα είναι σαν 10, Β είναι σαν 11, F είναι 15. 388 00:22:35,290 --> 00:22:41,690 >> Μήπως αυτό έχει νόημα για όλους πώς πήραμε από δυαδικό σε δεκαεξαδικό; 389 00:22:41,690 --> 00:22:44,595 >> Κοινό: Και έτσι, πώς φτάσαμε 15 από τη μια, ένα, ένα, ένα; 390 00:22:44,595 --> 00:22:46,220 ΚΑΘΗΓΗΤΗΣ: Ναι, αυτό είναι δυαδική, σωστά; 391 00:22:46,220 --> 00:22:48,090 Φανταστείτε αυτό είναι μόνο ένα δυαδικό αριθμό. 392 00:22:48,090 --> 00:22:50,792 Έτσι, έχετε δύο για την μηδενικής, η οποία είναι μία. 393 00:22:50,792 --> 00:22:51,500 Κοινό: Ω, εντάξει. 394 00:22:51,500 --> 00:22:51,670 Έτσι, μπορείτε απλά να ανέλθει έξω. 395 00:22:51,670 --> 00:22:52,670 >> ΚΑΘΗΓΗΤΗΣ: Ναι, και στη συνέχεια, απλά ότι συνολικά έξω. 396 00:22:52,670 --> 00:22:53,380 Αυτό είναι όλο αυτό είναι. 397 00:22:53,380 --> 00:22:54,890 >> Κοινό: OK. 398 00:22:54,890 --> 00:22:55,830 >> ΚΑΘΗΓΗΤΗΣ: OK. 399 00:22:55,830 --> 00:23:00,740 >> Κοινό: Έτσι μπορείτε να πάτε από δυαδικό σε δεκαδικό σε δεκαεξαδικό; 400 00:23:00,740 --> 00:23:04,590 >> ΚΑΘΗΓΗΤΗΣ: Αυτή είναι η ευκολότερος τρόπος για να γίνει αυτό, ναι. 401 00:23:04,590 --> 00:23:11,390 Δεν πρόκειται να δεκαδικό γιατί δεκαδικό έχει μόνο μηδέν έως εννέα. 402 00:23:11,390 --> 00:23:13,410 Είμαστε ακριβώς το είδος του το διαχωρισμό αυτό σε δύο. 403 00:23:13,410 --> 00:23:15,201 >> Κοινό: [δεν ακούγεται] χρήση δεκαδικών για να βρείτε 404 00:23:15,201 --> 00:23:17,809 τι ταιριάζει στο δεκαεξαδικό. 405 00:23:17,809 --> 00:23:20,100 ΚΑΘΗΓΗΤΗΣ: Θέλω να πω, είσαι συμπίπτοντας με τη χρήση βασικών μαθηματικών. 406 00:23:20,100 --> 00:23:20,725 Κοινό: Ναι. 407 00:23:20,725 --> 00:23:22,300 ΚΑΘΗΓΗΤΗΣ: Ναι, λίγο πολύ. 408 00:23:22,300 --> 00:23:23,630 Είναι λίγο συγκεχυμένη. 409 00:23:23,630 --> 00:23:26,410 Αλλά ακριβώς ξέρετε ότι μπορεί να διαιρέσει ανεξαρτήτως 410 00:23:26,410 --> 00:23:28,160 Αυτή η τιμή είναι σε μόλις τα μισά. 411 00:23:28,160 --> 00:23:29,570 Κοίτα, τι είναι αυτό σε δυαδική; 412 00:23:29,570 --> 00:23:30,610 Τι αριθμός είναι αυτό; 413 00:23:30,610 --> 00:23:33,270 Είναι πρόκειται να είναι κάτι από το μηδέν έως F. 414 00:23:33,270 --> 00:23:35,722 >> Εδώ πρόκειται επίσης να είναι κάτι από το μηδέν έως F. 415 00:23:35,722 --> 00:23:37,722 Και τότε μπορείτε να βάλετε μόνο αυτοί οι δύο εκεί. 416 00:23:37,722 --> 00:23:38,263 >> Κοινό: OK. 417 00:23:38,263 --> 00:23:38,910 ΚΑΘΗΓΗΤΗΣ: Ναι. 418 00:23:38,910 --> 00:23:39,410 ΕΝΤΆΞΕΙ. 419 00:23:39,410 --> 00:23:42,320 Έτσι, εσείς θέλετε να δοκιμάστε το επόμενο τότε; 420 00:23:42,320 --> 00:23:49,601 Μηδέν, ένα, μηδέν ένα, ένα, μηδέν, ένα μηδέν. 421 00:23:49,601 --> 00:23:52,350 Θα σας δώσω τύπους σαν 30 δευτερόλεπτα, Δεδομένου ότι πιθανώς δεν ξέρατε 422 00:23:52,350 --> 00:23:53,850 Το τέχνασμα για το πώς να το κάνετε αυτό νωρίτερα. 423 00:23:53,850 --> 00:24:24,950 424 00:24:24,950 --> 00:24:27,381 >> Εντάξει, ο καθένας θέλει να πάρει αυτό έναν πυροβολισμό; 425 00:24:27,381 --> 00:24:28,774 >> 0X5A. 426 00:24:28,774 --> 00:24:29,440 ΚΑΘΗΓΗΤΗΣ: 0X5A. 427 00:24:29,440 --> 00:24:30,470 5α. 428 00:24:30,470 --> 00:24:31,340 Καλός. 429 00:24:31,340 --> 00:24:37,050 Έτσι, αυτό εδώ θα be-- θέλετε να μας πείτε πώς πήρατε αυτό; 430 00:24:37,050 --> 00:24:38,920 Πρώτον, πώς βρήκες το πέντε; 431 00:24:38,920 --> 00:24:42,030 >> Κοινό: Επειδή το μηδέν, ένα, μηδέν, ένα είναι πέντε. 432 00:24:42,030 --> 00:24:45,170 >> ΚΑΘΗΓΗΤΗΣ: Μήπως όλοι κατανοούν γιατί μηδέν, ένα, μηδέν, το ένα είναι τα πέντε; 433 00:24:45,170 --> 00:24:46,260 Έχεις έναν εδώ. 434 00:24:46,260 --> 00:24:48,010 Δεν έχετε τίποτα σε δύο με την πρώτη. 435 00:24:48,010 --> 00:24:50,300 Σε δύο στο δεύτερο, που έχουν ένα, το οποίο είναι τέσσερις. 436 00:24:50,300 --> 00:24:52,600 Έτσι, μπορείτε να προσθέσετε το τέσσερα συν το ένα, έχετε πέντε. 437 00:24:52,600 --> 00:24:53,600 Όλοι καλό; 438 00:24:53,600 --> 00:24:54,100 ΕΝΤΆΞΕΙ. 439 00:24:54,100 --> 00:24:56,570 Και τότε τι είναι αυτό και γιατί; 440 00:24:56,570 --> 00:24:58,350 Τι αριθμός δεν αντιστοιχεί σε Α; 441 00:24:58,350 --> 00:24:59,350 >> Κοινό: 10. 442 00:24:59,350 --> 00:25:00,976 >> ΚΑΘΗΓΗΤΗΣ: Και τι είναι αυτό στη βάση δύο; 443 00:25:00,976 --> 00:25:01,850 Κοινό: [δεν ακούγεται] 444 00:25:01,850 --> 00:25:03,010 ΚΑΘΗΓΗΤΗΣ: Ακριβώς. 445 00:25:03,010 --> 00:25:06,370 Έτσι, αυτή η δεύτερη τιμή εδώ θα είναι 0X5A. 446 00:25:06,370 --> 00:25:08,410 >> Όλοι καλό για το πώς να μετατρέψετε; 447 00:25:08,410 --> 00:25:10,770 Είναι πολύ πιο απλό από ό, τι νομίζετε ότι είναι. 448 00:25:10,770 --> 00:25:13,330 Θέλω μόνο να βεβαιωθείτε ξέρετε χρήσιμες συμβουλές 449 00:25:13,330 --> 00:25:14,950 και κόλπα για το πώς να το κάνουμε αυτό. 450 00:25:14,950 --> 00:25:18,432 >> Κοινό: Γιατί μπορείς απλά χωρίσει στη μέση σαν αυτό; 451 00:25:18,432 --> 00:25:21,390 Ακριβώς όπως είναι, εντάξει, είμαι μόνο πρόκειται να νοιάζονται για αυτά τα πρώτα [δεν ακούγεται]; 452 00:25:21,390 --> 00:25:24,240 >> ΚΑΘΗΓΗΤΗΣ: Επειδή αυτό είναι στην πραγματικότητα η τρόπο δεκαεξαδικό αξίες εκπροσωπούνται. 453 00:25:24,240 --> 00:25:26,890 0x, που σημαίνει στην πραγματικότητα τίποτε άλλο παρά να σας πω 454 00:25:26,890 --> 00:25:28,710 ότι είναι ένα δεκαεξαδικό αριθμό. 455 00:25:28,710 --> 00:25:31,580 Και αυτό αποτελεί πάντοτε τα πρώτα τέσσερα ψηφία. 456 00:25:31,580 --> 00:25:34,330 Και αυτό αποτελεί πάντοτε τα τέσσερα τελευταία ψηφία. 457 00:25:34,330 --> 00:25:37,835 Και έτσι αυτά τα δύο ψηφία μόνο αντιστοιχούν σε διαφορετικά κομμάτια. 458 00:25:37,835 --> 00:25:39,200 >> Κοινό: Έτσι θα always-- 459 00:25:39,200 --> 00:25:41,830 >> ΚΑΘΗΓΗΤΗΣ: Είσαι πάντα πρόκειται να πάρει οκτώ bits αξία. 460 00:25:41,830 --> 00:25:44,580 >> Κοινό: είναι ότι όπως ακριβώς ένα πράγμα εδώ ή ότι ένα πράγμα όλη; 461 00:25:44,580 --> 00:25:46,883 ΚΑΘΗΓΗΤΗΣ: Αυτό είναι μόνο ένα πράγμα σε υπολογιστές, Ναι. 462 00:25:46,883 --> 00:25:47,424 Κοινό: OK. 463 00:25:47,424 --> 00:25:48,240 Φοβερός. 464 00:25:48,240 --> 00:25:51,290 >> ΚΑΘΗΓΗΤΗΣ: Επίσης, οπότε σε αυτό το παράδειγμα που μετατράπηκαν από δυαδική σε δεκαδική, 465 00:25:51,290 --> 00:25:53,290 και από δυαδικό σε δεκαεξαδικό. 466 00:25:53,290 --> 00:25:56,610 Εσείς θέλετε να βεβαιωθείτε ότι έχετε επίσης πρακτική θα τον άλλο τρόπο γύρω. 467 00:25:56,610 --> 00:26:03,370 Έτσι, αν σας έδωσα 0xff, θα μπορούσατε επιστήσω ότι στο δυαδικό, σωστά; 468 00:26:03,370 --> 00:26:06,820 >> Μπορείτε να μετατρέψετε σε δυαδικό F, το οποίο είναι ένα, ένα, ένα, ένα, 469 00:26:06,820 --> 00:26:09,380 F μετατρέψει σε δυαδικό, το οποίο είναι ένα, ένα, ένα, ένα. 470 00:26:09,380 --> 00:26:11,310 >> Γι 'αυτό και μπορεί να σας ζητήσει να κάνετε ο άλλος τρόπος γύρω. 471 00:26:11,310 --> 00:26:14,817 Έτσι δεκαδικό σε δυαδικό, ή δεκαεξαδικό σε δυαδικό. 472 00:26:14,817 --> 00:26:16,650 Έτσι θέλετε να κάνετε βεβαιωθείτε ότι γνωρίζετε τους δύο τρόπους. 473 00:26:16,650 --> 00:26:19,371 Θα σας ζητήσει πιθανότατα ένα συνδυασμός των δύο. 474 00:26:19,371 --> 00:26:20,660 >> Ναι, έχετε μια ερώτηση; 475 00:26:20,660 --> 00:26:22,724 Μπορώ να see-- είσαι καλός; 476 00:26:22,724 --> 00:26:23,348 Κοινό: Ναι. 477 00:26:23,348 --> 00:26:24,560 ΚΑΘΗΓΗΤΗΣ: OK. 478 00:26:24,560 --> 00:26:26,101 Είμαι καλό να διαγράψετε αυτό; 479 00:26:26,101 --> 00:26:26,600 Εξαιρετική. 480 00:26:26,600 --> 00:26:33,965 481 00:26:33,965 --> 00:26:40,437 >> Εντάξει, έτσι ώστε οι απαντήσεις είναι εδώ, αν κάποιος Είναι αξιοπερίεργο αργότερα και μπερδεύονται. 482 00:26:40,437 --> 00:26:41,844 ΕΝΤΆΞΕΙ. 483 00:26:41,844 --> 00:26:46,070 >> Κοινό: Έχει σημασία αν βάλουμε γράμματά μας στην πρωτεύουσα της ή πεζά; 484 00:26:46,070 --> 00:26:50,360 >> ΚΑΘΗΓΗΤΗΣ: Κάνει, επειδή σε δεκαεξαδική, κατά συνθήκη, 485 00:26:50,360 --> 00:26:52,840 Όλοι οι χαρακτήρες κεφαλαία. 486 00:26:52,840 --> 00:26:54,650 Έτσι A έως F είναι πρόκειται να είναι κεφαλαία. 487 00:26:54,650 --> 00:26:58,660 Αν βάλετε ένα πεζό ένα, δεν ξέρω εάν θα σηματοδοτήσει αναγκαστικά λάθος. 488 00:26:58,660 --> 00:27:00,679 Αλλά θεωρητικά, αυτό δεν είναι τεχνικά 489 00:27:00,679 --> 00:27:01,970 πώς είστε υποτίθεται για να το έχετε. 490 00:27:01,970 --> 00:27:03,303 Έτσι, θα πρέπει όλα να είναι κεφαλαία. 491 00:27:03,303 --> 00:27:05,910 Ναι, καλή ερώτηση. 492 00:27:05,910 --> 00:27:07,780 >> ΕΝΤΆΞΕΙ. 493 00:27:07,780 --> 00:27:08,790 Δεύτερο ερώτημα. 494 00:27:08,790 --> 00:27:12,750 Σκεφτείτε αυτό το υπέροχο πρόγραμμα εδώ. 495 00:27:12,750 --> 00:27:15,180 Θα θέσω το ερώτημα, Θα επανέλθω αυτό. 496 00:27:15,180 --> 00:27:23,170 >> Έτσι, πρώτον, αυτό που είναι μέσα του προτύπου io.h ότι είναι προς το συμφέρον της πρόγραμμα; 497 00:27:23,170 --> 00:27:26,640 Δεύτερον, τι κάνει άκυρη σημαίνουν στην τρίτη γραμμή; 498 00:27:26,640 --> 00:27:30,572 Και τρίτον, τι επιστρέφοντας από το μηδέν κύρια, η γραμμή έξι, γενικά σημαίνει; 499 00:27:30,572 --> 00:27:33,280 Αν εσείς θέλετε να γράψετε εκείνους προς τα κάτω, δεδομένου ότι πρέπει να επιστρέψετε 500 00:27:33,280 --> 00:27:36,810 στη διαφάνεια ακριβώς έτσι μπορείτε να δείτε τον κωδικό. 501 00:27:36,810 --> 00:27:40,400 Αυτό είναι ένα παράδειγμα του, όπως, ίσως υψηλότερο επίπεδο, όπου ερώτηση σας ζητάμε 502 00:27:40,400 --> 00:27:42,435 ποια πράγματα σημαίνουν σε ένα πρόγραμμα. 503 00:27:42,435 --> 00:27:47,290 504 00:27:47,290 --> 00:27:49,215 >> Όλοι καλό για μένα να πάει πίσω στη διαφάνεια; 505 00:27:49,215 --> 00:27:53,400 506 00:27:53,400 --> 00:27:54,361 ΟΚ κομπλε. 507 00:27:54,361 --> 00:27:57,610 Γι 'αυτό θα σας δώσω τα παιδιά, όπως ίσως τρεις λεπτά για να δούμε αυτό το πραγματικά γρήγορα. 508 00:27:57,610 --> 00:28:41,330 509 00:28:41,330 --> 00:28:44,140 >> Εντάξει, έτσι αυτό είναι σαν αρκετά εύκολο, εννοιολογικά. 510 00:28:44,140 --> 00:28:49,280 Θέλει κανείς να μου πει τι είναι πρώτα μέσα από το χασίς, συμπεριλαμβανομένων 511 00:28:49,280 --> 00:28:52,630 πρότυπο αρχείο της βιβλιοθήκης io.h μας; 512 00:28:52,630 --> 00:28:55,510 Γιατί χρειαζόμαστε αυτή τη βιβλιοθήκη που περιλαμβάνονται σε αυτό το πρόγραμμα; 513 00:28:55,510 --> 00:28:56,930 Τι κάνουμε εδώ να το χρησιμοποιήσω; 514 00:28:56,930 --> 00:28:56,980 >> Ναι; 515 00:28:56,980 --> 00:28:58,340 >> Κοινό: Είναι ότι όταν θα θέσει το printf; 516 00:28:58,340 --> 00:28:59,131 >> ΚΑΘΗΓΗΤΗΣ: Ακριβώς. 517 00:28:59,131 --> 00:29:01,780 Έτσι printf, κάθε φορά που λαμβάνει μια είσοδο από τον χρήστη 518 00:29:01,780 --> 00:29:04,140 και κάτι εκτύπωσης στην οθόνη, αυτό είναι 519 00:29:04,140 --> 00:29:05,600 το πρότυπο εισόδου, εξόδου βιβλιοθήκη. 520 00:29:05,600 --> 00:29:07,170 Σκεφτείτε αυτό που τρόπο-- εισόδου, εξόδου. 521 00:29:07,170 --> 00:29:08,430 >> Έχω μια έξοδο; 522 00:29:08,430 --> 00:29:09,207 Ναι. 523 00:29:09,207 --> 00:29:12,040 Έτσι ξέρω ότι είμαι πάντα θα Πρέπει η βιβλιοθήκη Τυποποίηση i.o. 524 00:29:12,040 --> 00:29:16,400 >> Έτσι printf είναι η λειτουργία με την οποία θα πρέπει να έχουν πρόσβαση σε 525 00:29:16,400 --> 00:29:19,370 και περιλαμβάνουν το hashtag πρότυπη βιβλιοθήκη i.o. 526 00:29:19,370 --> 00:29:20,280 ΕΝΤΆΞΕΙ. 527 00:29:20,280 --> 00:29:22,660 >> Δεύτερον, τι σημαίνει άκυρο; 528 00:29:22,660 --> 00:29:26,970 Έχουμε το int main (void), τι κάνει άκυρη εδώ να πω εδώ στη γραμμή τρία; 529 00:29:26,970 --> 00:29:28,080 Ναι, στο πίσω μέρος. 530 00:29:28,080 --> 00:29:29,020 >> Κοινό: [δεν ακούγεται] 531 00:29:29,020 --> 00:29:29,920 >> ΚΑΘΗΓΗΤΗΣ: Ακριβώς. 532 00:29:29,920 --> 00:29:33,320 Έτσι θυμηθείτε, έχουμε μάθει ξεκινώντας με το chipset μας 533 00:29:33,320 --> 00:29:35,360 ότι μπορείτε πραγματικά να να αναφερθεί η γραμμή εντολών 534 00:29:35,360 --> 00:29:39,010 επιχειρήματα ότι το πρόγραμμά σας, ώστε να Η κύρια λειτουργία, παίρνει, όπως εσείς, ο χρήστης, 535 00:29:39,010 --> 00:29:39,650 κάλεσε το. 536 00:29:39,650 --> 00:29:42,650 Αν έχουμε κενό, αυτό σημαίνει ότι θα μπορούσε να τρέξει μόνο το πρόγραμμα απ 'ευθείας 537 00:29:42,650 --> 00:29:44,680 χωρίς επιχειρήματα της γραμμής εντολών. 538 00:29:44,680 --> 00:29:46,160 Όλοι σαφείς ως προς αυτό; 539 00:29:46,160 --> 00:29:46,660 ΕΝΤΆΞΕΙ. 540 00:29:46,660 --> 00:29:52,850 >> Και τέλος, γιατί να ασχοληθείς κάνουμε Αυτό το μηδενικό πράγμα εδώ; 541 00:29:52,850 --> 00:29:54,740 Γιατί έχουμε ακόμα μια int main; 542 00:29:54,740 --> 00:29:57,330 Γιατί δεν μπορούμε να έχουμε μόνο void main κενό; 543 00:29:57,330 --> 00:29:59,216 Ναι; 544 00:29:59,216 --> 00:30:01,590 Κοινό: Ακριβώς έτσι ώστε να μπορούμε να να είστε σίγουροι ότι το πρόγραμμα είναι 545 00:30:01,590 --> 00:30:04,247 εξέρχεται επιτυχώς, όπως σε αντίθεση με αν ήταν μετρημένες. 546 00:30:04,247 --> 00:30:06,580 Και θα ξέρουμε ότι αυτό είναι ένα διαφορετικό είδος σφάλματος. 547 00:30:06,580 --> 00:30:07,621 >> ΚΑΘΗΓΗΤΗΣ: Ναι, ακριβώς. 548 00:30:07,621 --> 00:30:10,670 Αυτό είναι μόνο ένα πολύ συμβατικό πράγμα που κάνουμε, 549 00:30:10,670 --> 00:30:13,840 είναι ότι ακριβώς στο τέλος του το πρόγραμμά σας, μόνο και μόνο για να βεβαιωθείτε 550 00:30:13,840 --> 00:30:15,830 ότι η κύρια λειτουργία σας λειτουργεί σωστά, 551 00:30:15,830 --> 00:30:17,940 εμείς πάντα θέλουμε να κάνουμε επιστροφή μηδέν. 552 00:30:17,940 --> 00:30:21,160 Ακόμα κι αν είναι απαραίτητο Δεν βλέπετε ότι το έντυπο πουθενά. 553 00:30:21,160 --> 00:30:25,092 >> Γιατί, όπως προγραμματιστές, ξέρετε, αν Έχετε πολλές διαφορετικές γραμμές κώδικα 554 00:30:25,092 --> 00:30:27,050 και εσείς δεν ξέρετε από πού αυτά πηγαίνουν στραβά, 555 00:30:27,050 --> 00:30:30,240 και αν συμβεί ένα σφάλμα που θέλετε να βεβαιωθείτε ότι μπορείτε να πάρετε αυτό το λάθος. 556 00:30:30,240 --> 00:30:33,240 Και έτσι συνήθως αν κάτι πάει λάθος θα έχουμε μια επιστροφή ενός μόνο 557 00:30:33,240 --> 00:30:34,669 για να βεβαιωθείτε γνωρίζουμε ότι είναι. 558 00:30:34,669 --> 00:30:36,460 Έτσι, αν δείτε μια επιστροφή μηδέν, που συνήθως 559 00:30:36,460 --> 00:30:38,293 σημαίνει ότι το πρόγραμμά σας είναι εκτελέστηκε με επιτυχία. 560 00:30:38,293 --> 00:30:40,490 561 00:30:40,490 --> 00:30:40,990 Καλός? 562 00:30:40,990 --> 00:30:45,180 563 00:30:45,180 --> 00:30:45,680 Δροσερός. 564 00:30:45,680 --> 00:30:48,710 565 00:30:48,710 --> 00:30:52,680 >> Εντάξει, το δεύτερο πρόγραμμα εδώ. 566 00:30:52,680 --> 00:30:54,827 Σκεφτείτε ότι. 567 00:30:54,827 --> 00:30:56,910 Και αν εσείς βλέπετε ένα επιπλέουν, εσείς μπορεί πιθανώς 568 00:30:56,910 --> 00:31:00,810 έχουν μια καλή ιδέα για το τι Είμαι έτοιμος να σας ρωτήσω. 569 00:31:00,810 --> 00:31:05,200 >> Έτσι, όταν το εν λόγω πρόγραμμα εκτελεί, όπως μπορείτε να δείτε, 570 00:31:05,200 --> 00:31:09,330 Δηλώνω έναν πλωτήρα Η κύρια λειτουργία μέσα μου. 571 00:31:09,330 --> 00:31:13,470 Είμαι ονομάζοντάς το «απαντήσει», και είμαι ρύθμιση ότι ισούται με το ένα διαιρείται με το 10. 572 00:31:13,470 --> 00:31:17,860 Είμαι εκτύπωση, σε μία δεκαδικό ψηφίο, που επιπλέουν. 573 00:31:17,860 --> 00:31:19,880 Και τότε είμαι επιστρέφοντας μηδέν. 574 00:31:19,880 --> 00:31:24,470 >> Έτσι, κατά την εκτέλεση του προγράμματος, Αναπολώ άπληστοι τώρα, 575 00:31:24,470 --> 00:31:26,550 Αυτό το πρόγραμμα τυπώνει 0.0. 576 00:31:26,550 --> 00:31:29,993 Όπως όλοι γνωρίζουμε, ελπίζουμε όλοι μας γνωρίζουν, ένας διαιρούμενο με 10 δεν είναι 0,00, 577 00:31:29,993 --> 00:31:32,350 είναι 0,1. 578 00:31:32,350 --> 00:31:37,810 Αλλά να εξηγήσει γιατί το πρόγραμμα αυτό νομίζει ότι 1 διαιρείται με 10 εκτυπώσεις σε 0,1 άλλες 579 00:31:37,810 --> 00:31:39,504 από 0.1; 580 00:31:39,504 --> 00:31:42,545 Θα σας παιδιά δίνουν ίσως σαν 30 δευτερόλεπτα για να σκεφτούμε γρήγορα ακριβώς γι 'αυτό 581 00:31:42,545 --> 00:31:43,878 και θα πάω πίσω στο πρόγραμμα. 582 00:31:43,878 --> 00:32:17,800 583 00:32:17,800 --> 00:32:20,290 >> ΕΝΤΆΞΕΙ. 584 00:32:20,290 --> 00:32:22,205 Όποιος θέλει να του δώσει έναν πυροβολισμό; 585 00:32:22,205 --> 00:32:24,330 Σε τρεις προτάσεις ή λιγότερο, γιατί συνήθως είμαστε 586 00:32:24,330 --> 00:32:27,650 πρόκειται να περιορίσουν όλες τις απαντήσεις με τρεις ποινές ή λιγότερο 587 00:32:27,650 --> 00:32:31,130 έτσι ώστε να μην απλά αναμασούν τυχαία πράγματα επάνω κουίζ σας. 588 00:32:31,130 --> 00:32:32,740 >> Ναι, πάρτε έναν πυροβολισμό. 589 00:32:32,740 --> 00:32:36,390 >> Κοινό: Νομίζω λοιπόν ότι υπάρχει αυτή η πράγμα που ονομάζεται, όπως, [δεν ακούγεται] 590 00:32:36,390 --> 00:32:42,320 Έτσι μπορεί να υπάρχουν, για παράδειγμα, θα μπορούσε να υπάρχει, όπως, 0,09, 591 00:32:42,320 --> 00:32:47,250 ότι, όπου μπορείτε να εκτυπώσετε την πρώτη ψηφίο, θα ήταν να 0.0; 592 00:32:47,250 --> 00:32:49,100 >> ΚΑΘΗΓΗΤΗΣ: Κλείσιμο, δεν είναι αρκετά. 593 00:32:49,100 --> 00:32:49,810 Christabell; 594 00:32:49,810 --> 00:32:51,770 >> Κοινό: Είσαι μία διαίρεση και 10, και είναι και οι δύο ακέραιοι. 595 00:32:51,770 --> 00:32:54,610 Και έτσι ο τρόπος που πρόκειται για την αποθήκευση είναι ως έναν ακέραιο. 596 00:32:54,610 --> 00:32:56,480 Και έτσι το πιο κοντινό ακέραιο θα είναι 0.0. 597 00:32:56,480 --> 00:32:57,471 Και έτσι αυτό είναι 0,1. 598 00:32:57,471 --> 00:32:58,970 ΚΑΘΗΓΗΤΗΣ: Ναι, αυτό είναι πραγματικά καλό. 599 00:32:58,970 --> 00:33:00,040 Αυτή είναι η σωστή απάντηση. 600 00:33:00,040 --> 00:33:03,597 Έτσι, αυτό είναι μια πολύ συγκεχυμένη ιδέα για πολλά παιδιά. 601 00:33:03,597 --> 00:33:06,680 Και θέλω πραγματικά να βεβαιωθείτε ότι Αυτό ενισχύεται στο κεφάλι του καθενός. 602 00:33:06,680 --> 00:33:10,090 >> Έτσι, αυτό που λέμε επιπλέει σημείο ανακρίβεια, 603 00:33:10,090 --> 00:33:12,800 όπου ο λόγος για τον οποίο πολλοί των προγραμμάτων σας σε άπληστους 604 00:33:12,800 --> 00:33:17,010 δεν λειτούργησε αρχικά ήταν επειδή έχετε ξεχάσει να ρίχνει μεταβλητή σας. 605 00:33:17,010 --> 00:33:19,370 Έτσι, αυτό που είπε ο Christabell ήταν απόλυτα σωστή. 606 00:33:19,370 --> 00:33:21,990 >> Ο πλωτήρας είναι εγγενώς ασαφής. 607 00:33:21,990 --> 00:33:26,400 Επειδή σε έναν υπολογιστή, δεξιά, έχουμε ένα πεπερασμένο ποσό των bits της μνήμης 608 00:33:26,400 --> 00:33:28,480 μπορούμε να χρησιμοποιήσουμε για να αντιπροσωπεύσει τους αριθμούς. 609 00:33:28,480 --> 00:33:33,480 Έτσι, για παράδειγμα, αυτό το αναγνωριστικό CS50 is-- Νομίζω ότι είναι ένας υπολογιστής 64-bit. 610 00:33:33,480 --> 00:33:37,520 >> Ο πλωτήρας μπορεί να εκπροσωπείται μόνο από ένα πεπερασμένο ποσό αυτών των bits. 611 00:33:37,520 --> 00:33:42,260 Και έτσι 0,1 με άπειρη μηδενικά, ότι ήταν 0.1 είναι, σωστά; 612 00:33:42,260 --> 00:33:45,450 Αλλά δεν μπορούμε να αποθηκεύουν στην πραγματικότητα ότι ο αριθμός στον υπολογιστή μας. 613 00:33:45,450 --> 00:33:47,810 Εμείς απλά δεν έχουν αρκετή μνήμη για να το πράξουν. 614 00:33:47,810 --> 00:33:52,340 >> Και έτσι η κοντινότερη προσέγγιση της τι είναι αποθηκευμένες στη μνήμη είναι πράγματι 615 00:33:52,340 --> 00:33:55,390 κάτι σαν 0.000 κάτι, κάτι, κάτι, κάτι. 616 00:33:55,390 --> 00:34:01,240 Η οποία, τη στιγμή που θα περικόψτε ότι, για να στρογγυλοποιεί προς τα κάτω 0,0. 617 00:34:01,240 --> 00:34:05,640 >> Και έτσι αυτό το παράδειγμα είναι μόνο μία ότι καταδεικνύει πολλά θέματα 618 00:34:05,640 --> 00:34:08,469 έχουμε όταν είμαστε προσπαθούμε να κάνουμε σωστά μαθηματικά 619 00:34:08,469 --> 00:34:11,000 χωρίς χύτευση ως ένα διαφορετικό ακέραιος. 620 00:34:11,000 --> 00:34:14,870 Έτσι ακριβώς είναι δύσπιστοι όσον αφορά αυτό συμβαίνει. 621 00:34:14,870 --> 00:34:18,239 >> Στις κουίζ, αν σας δώσει μια μπλοκ του κώδικα και είναι σαν, 622 00:34:18,239 --> 00:34:19,510 τι εκτυπώνει στο τέλος; 623 00:34:19,510 --> 00:34:24,096 Και αν είναι κάποια τυχαία τιμή σας παιδιά πρέπει να γνωρίζουν γιατί αυτό συμβαίνει. 624 00:34:24,096 --> 00:34:24,909 Ναι; 625 00:34:24,909 --> 00:34:27,926 >> Κοινό: Περικόψτε είναι να απαλλαγούμε από πάντα μετά από ένα ορισμένο σημείο; 626 00:34:27,926 --> 00:34:28,513 [ΜΗ ΑΚΟΥΣΤΌΣ] 627 00:34:28,513 --> 00:34:30,929 ΚΑΘΗΓΗΤΗΣ: Ναι, έτσι στην πραγματικότητα Αυτό είναι ένα πολύ κακό παράδειγμα, 628 00:34:30,929 --> 00:34:37,870 γιατί ό, τι στην πραγματικότητα 0.100 θα περικόψει στο 0,1. 629 00:34:37,870 --> 00:34:41,389 Αλλά αν ήταν να τρέξει it-- δεν το κάνω θυμάμαι, γιατί πέρυσι 630 00:34:41,389 --> 00:34:42,830 έτρεξε το σε ένα διαφορετικό πρόγραμμα. 631 00:34:42,830 --> 00:34:45,300 Το έτρεξε σε κάτι που ονομάζεται το CS50 συσκευής, η οποία 632 00:34:45,300 --> 00:34:46,389 είναι διαφορετικό από το αναγνωριστικό. 633 00:34:46,389 --> 00:34:48,520 Αυτό ήταν ένα σύστημα 32-bit, νομίζω. 634 00:34:48,520 --> 00:34:50,290 Και έτσι υπήρχαν διαφορετικούς αριθμούς. 635 00:34:50,290 --> 00:34:53,330 >> Αλλά ουσιαστικά, απλά να ξέρετε ότι Η όλη ιδέα της αποκοπής 636 00:34:53,330 --> 00:34:54,815 και πώς κόβει απλά πράγματα μακριά. 637 00:34:54,815 --> 00:34:55,690 Και έτσι αν rounds-- 638 00:34:55,690 --> 00:34:56,300 >> Κοινό: Χωρίς στρογγυλοποίησης. 639 00:34:56,300 --> 00:34:57,370 >> ΚΑΘΗΓΗΤΗΣ: Ακριβώς. 640 00:34:57,370 --> 00:34:57,870 Ναι. 641 00:34:57,870 --> 00:35:02,330 642 00:35:02,330 --> 00:35:04,380 Δροσερός. 643 00:35:04,380 --> 00:35:05,250 >> Γεια σου, στο πίσω μέρος. 644 00:35:05,250 --> 00:35:07,634 Είμαστε ακριβώς που πηγαίνει πέρα ​​από κάποια επανεξέταση κουίζ ερωτήσεις. 645 00:35:07,634 --> 00:35:08,430 >> Εντάξει. 646 00:35:08,430 --> 00:35:10,150 Έτσι, θεωρούν ένα διαφορετικό πρόγραμμα εδώ. 647 00:35:10,150 --> 00:35:12,797 648 00:35:12,797 --> 00:35:15,380 Πάω να σας δώσω ένα παιδιά μερικά λεπτά για να διαβάσετε πάνω σε αυτό. 649 00:35:15,380 --> 00:35:18,588 Αυτό είναι κάτι που ήταν για πολύ πρόσφατα ότι πιστεύω φύσηξε πολλά από εσάς 650 00:35:18,588 --> 00:35:19,142 μυαλά παιδιά του. 651 00:35:19,142 --> 00:35:21,100 Αλλά θα πάμε να μιλήσουμε μέσα από αυτό και πάλι μόνο 652 00:35:21,100 --> 00:35:24,152 για να βεβαιωθείτε ότι έχετε καταλαβαίνω απόλυτα. 653 00:35:24,152 --> 00:35:24,652 ΕΝΤΆΞΕΙ. 654 00:35:24,652 --> 00:35:41,280 655 00:35:41,280 --> 00:35:41,780 ΕΝΤΆΞΕΙ. 656 00:35:41,780 --> 00:35:44,342 Όποιος χρειάζεται περισσότερο χρόνο για να διαβάσετε μέσω αυτού του κώδικα; 657 00:35:44,342 --> 00:35:45,650 ΕΝΤΆΞΕΙ. 658 00:35:45,650 --> 00:35:50,630 >> Γι 'αυτό μου φαίνεται ότι σε αυτό το πρόγραμμα είμαι 659 00:35:50,630 --> 00:35:53,460 δημιουργώντας δύο σειρές με τη χρήση GetString. 660 00:35:53,460 --> 00:35:55,180 Ένα κάλεσε s και ένα που ονομάζεται t. 661 00:35:55,180 --> 00:35:58,680 Και αν είναι ίση ισούται προς την άλλη, 662 00:35:58,680 --> 00:36:00,880 θα πρέπει να εκτυπώνεται "You πληκτρολογήστε το ίδιο πράγμα. " 663 00:36:00,880 --> 00:36:04,170 >> Αλλά elsewise, θα εκτυπώσετε, "You δακτυλογραφημένες διαφορετικά πράγματα ", σωστά; 664 00:36:04,170 --> 00:36:05,990 Φαίνεται πολύ, πολύ απλό. 665 00:36:05,990 --> 00:36:08,720 Αλλά, όμως, αν πράγματι προσπαθήσω να γράψω αυτό το πρόγραμμα, 666 00:36:08,720 --> 00:36:12,230 φαίνεται ότι ακόμα και όταν εισάγετε τα ίδια ακριβώς χορδές, 667 00:36:12,230 --> 00:36:15,490 εξακολουθεί να εκτυπώνει, "You δακτυλογραφημένες διαφορετικά πράγματα! " 668 00:36:15,490 --> 00:36:18,020 Υπάρχει κάποιος που θέλει να πάρει ένα πυροβολισμό σε αυτό το πρόγραμμα γιατί πάντα 669 00:36:18,020 --> 00:36:20,370 απαντά ότι οι είσοδοι είναι διαφορετικές, ακόμη και 670 00:36:20,370 --> 00:36:22,090 όταν οι ίδιοι οι λέξεις είναι το ίδιο; 671 00:36:22,090 --> 00:36:24,870 672 00:36:24,870 --> 00:36:29,170 >> Έτσι, αν ήμουν στη θέση να input-- David αγάπη να χρησιμοποιήσουμε ένα παράδειγμα σαν τη μαμά, έτσι δεν είναι; 673 00:36:29,170 --> 00:36:37,890 Πεζά Μ-Ο-Μ για το S, T ισούται με πεζά Μ-Ο-Μ. 674 00:36:37,890 --> 00:36:40,340 Αν έτρεξα αυτό μέσω ότι ο κώδικας, γιατί θα 675 00:36:40,340 --> 00:36:44,180 εκτυπώσετε "έχετε πληκτρολογήσει διαφορετικά πράγματα;" 676 00:36:44,180 --> 00:36:46,336 >> Υπάρχει κάποιος που χρειάζονται περισσότερο χρόνο για να σκεφτεί για αυτό; 677 00:36:46,336 --> 00:36:47,294 Εντάξει, νομίζω ότι είμαστε καλά. 678 00:36:47,294 --> 00:36:48,716 Ναι; 679 00:36:48,716 --> 00:36:53,930 >> Κοινό: Εντάξει, γι 'αυτό είναι κάτι για το όπου είναι αποθηκευμένα στη μνήμη, έτσι δεν είναι; 680 00:36:53,930 --> 00:36:54,890 >> ΚΑΘΗΓΗΤΗΣ: Ναι. 681 00:36:54,890 --> 00:37:00,400 >> Κοινό: Πού είναι σαν, αν αυτό συμβολοσειράς s αποθηκεύονται σε μνήμη spot-- 682 00:37:00,400 --> 00:37:01,689 Είμαι εφευρίσκοντας this-- είναι μηδέν. 683 00:37:01,689 --> 00:37:02,355 ΚΑΘΗΓΗΤΗΣ: Σίγουρα. 684 00:37:02,355 --> 00:37:05,290 Κοινό: Και εγχόρδων t αποθηκεύεται σε σημείο μνήμης, 685 00:37:05,290 --> 00:37:11,000 παρόμοια, 167, και στη συνέχεια μηδέν δεν ισούται με 167. 686 00:37:11,000 --> 00:37:12,610 >> ΚΑΘΗΓΗΤΗΣ: Ακριβώς. 687 00:37:12,610 --> 00:37:18,350 Εντάξει, έτσι ώστε να θυμάστε αυτό το απίστευτο αποκάλυψη που σας εξήγησα παιδιά 688 00:37:18,350 --> 00:37:21,530 την περασμένη εβδομάδα, ότι χορδές δεν υπάρχουν πραγματικά; 689 00:37:21,530 --> 00:37:25,380 Όταν δημιουργούμε κάτι που ονομάζεται κορδόνι είμαστε, στην πραγματικότητα, 690 00:37:25,380 --> 00:37:29,330 δημιουργώντας κάτι που ονομάζεται char αστέρων. 691 00:37:29,330 --> 00:37:34,470 Τα οποία όλα είναι είναι ένας δείκτης για ένα string ή σε μια σειρά από χαρακτήρες. 692 00:37:34,470 --> 00:37:39,480 >> Και έτσι σε αυτό το παράδειγμα, αν μου ήταν στην είσοδο Μ-Ο-Μ ο τρόπος 693 00:37:39,480 --> 00:37:49,350 ότι ο υπολογιστής μου θα είναι να αποθηκεύσετε μέσα σε ανάστροφη κάθετο μνήμη μηδέν, έτσι δεν είναι; 694 00:37:49,350 --> 00:37:53,180 Αυτοί οι τέσσερις χαρακτήρες, χαρακτήρες, θα αποθηκεύονται κάπου. 695 00:37:53,180 --> 00:37:59,290 >> Και στη συνέχεια αυτά τα τέσσερα χαρακτήρες, ανάστροφη κάθετο μηδέν, 696 00:37:59,290 --> 00:38:01,275 αποθηκεύονται κάπου αλλού, έτσι δεν είναι; 697 00:38:01,275 --> 00:38:04,685 Δεν έχω καμία ιδέα για το πού οι διευθύνσεις είναι, από όπου και αν κάπου στον υπολογιστή μου. 698 00:38:04,685 --> 00:38:07,080 Αλλά δεν ξέρω ακριβώς πού βρίσκονται. 699 00:38:07,080 --> 00:38:10,170 >> Όταν μπορώ να δημιουργήσω μια σειρά s, όλα αυτά είναι πραγματικά 700 00:38:10,170 --> 00:38:15,550 είναι ένας δείκτης για την ξεκινήστε αυτής της σειράς. 701 00:38:15,550 --> 00:38:21,130 Και όταν μπορώ να δημιουργήσω αυτήν την τιμή t, όλα αυτά είναι ένας δείκτης για εδώ. 702 00:38:21,130 --> 00:38:23,980 Και έτσι όταν προσπαθείτε να εξισώσει και να ελέγξετε 703 00:38:23,980 --> 00:38:27,710 για να δούμε αν s είναι ίσοι ισούται με t, ο υπολογιστής 704 00:38:27,710 --> 00:38:31,635 Είναι πραγματικά μόλις είχαν επιστρέψει σε σας η διεύθυνση αυτού του m 705 00:38:31,635 --> 00:38:33,390 και η διεύθυνση του εν λόγω μέτρων. 706 00:38:33,390 --> 00:38:36,230 Και επειδή είναι δύο ξεχωριστά κομμάτια των δεδομένων 707 00:38:36,230 --> 00:38:38,750 που είναι αποθηκευμένα σε δύο διαφορετικές διευθύνσεις στον υπολογιστή σας, 708 00:38:38,750 --> 00:38:41,750 ο υπολογιστής σας δεν πρόκειται να αναγνωρίζουν τους ως το ίδιο. 709 00:38:41,750 --> 00:38:43,500 Υπάρχει κάποιος που θέλει να δώσει έναν πυροβολισμό σε ό, τι 710 00:38:43,500 --> 00:38:46,900 θα πρέπει να κάνουμε αν θέλουμε να διορθώσουμε αυτό και έχουμε μια σωστή λειτουργία του προγράμματος 711 00:38:46,900 --> 00:38:49,360 αντί? 712 00:38:49,360 --> 00:38:52,070 Σκεφτείτε ότι για ένα ζευγάρι δευτερόλεπτα. 713 00:38:52,070 --> 00:38:54,929 Τι πρέπει να αλλάξουμε για να πάρετε αυτό το πρόγραμμα λειτουργίας 714 00:38:54,929 --> 00:38:56,220 ο τρόπος που θέλουμε να λειτουργεί; 715 00:38:56,220 --> 00:39:17,260 716 00:39:17,260 --> 00:39:18,918 >> Ναι, θέλουν να πάρουν μια μαχαιριά σε αυτό; 717 00:39:18,918 --> 00:39:24,082 >> Κοινό: Μπορούμε να προσπαθήσουμε να dereference το δείκτη και ελέγξτε μέσω του πίνακα; 718 00:39:24,082 --> 00:39:25,540 ΚΑΘΗΓΗΤΗΣ: Αυτός είναι ένας τρόπος για να το κάνουμε. 719 00:39:25,540 --> 00:39:27,880 Λοιπόν, τι είναι το όνομά σας και πάλι; 720 00:39:27,880 --> 00:39:29,010 Λυπάμαι, μου θυμίζουν. 721 00:39:29,010 --> 00:39:29,589 >> Zee: Zee. 722 00:39:29,589 --> 00:39:32,130 ΚΑΘΗΓΗΤΗΣ: Ναι, ναι, τι Zee Προτείνεται θα λειτουργήσει απολύτως. 723 00:39:32,130 --> 00:39:32,629 Δικαίωμα? 724 00:39:32,629 --> 00:39:35,730 Θα μπορούσαμε dereference το δείκτη και πραγματικά να πάμε και πρόσβαση 725 00:39:35,730 --> 00:39:38,460 τα φυσικά δεδομένα μέσα εδώ. 726 00:39:38,460 --> 00:39:40,300 Και μπορούμε να συγκρίνουμε μόνο ολόκληρη την οθόνη. 727 00:39:40,300 --> 00:39:43,670 >> Μπορούμε να πούμε, εντάξει, το δείκτη, να μου δώσει ό, τι είναι μέσα εδώ. 728 00:39:43,670 --> 00:39:44,960 Θα επιστρέψει ένα m. 729 00:39:44,960 --> 00:39:47,168 Και θα έλεγα, δείκτης, να μου δώσει ό, τι είναι μέσα εδώ. 730 00:39:47,168 --> 00:39:47,750 Επιστροφή ένα m. 731 00:39:47,750 --> 00:39:48,410 Κάνουν αυτά τα ματς; 732 00:39:48,410 --> 00:39:49,410 Ναί. 733 00:39:49,410 --> 00:39:50,340 Στη συνέχεια θα προχωρήσουμε. 734 00:39:50,340 --> 00:39:54,240 >> Κρατάμε τον έλεγχο ολόκληρου του δύο χορδές σε όλη τη διαδρομή μέχρι το τέλος 735 00:39:54,240 --> 00:39:56,635 και να δούμε εάν αυτά είναι ίσα, εάν όλες οι τιμές είναι ίσες. 736 00:39:56,635 --> 00:39:59,680 Και εάν όλες οι τιμές είναι ίσες, τότε ξέρουμε ότι οι χορδές είναι αλήθεια. 737 00:39:59,680 --> 00:40:01,600 Απολύτως, αυτό είναι το πώς θα το κάνουμε; 738 00:40:01,600 --> 00:40:03,930 >> Υπάρχει κάποιος που σύγχυση σχετικά με όλα αυτά; 739 00:40:03,930 --> 00:40:06,970 Η όλη ιδέα του πώς χορδές είναι πραγματικά ακριβώς δείκτες, 740 00:40:06,970 --> 00:40:08,440 και πως δεν υπάρχουν πραγματικά; 741 00:40:08,440 --> 00:40:10,480 Και γιατί έχουμε λάθη όπως τον τρόπο που το κάνουμε; 742 00:40:10,480 --> 00:40:15,070 Επειδή Σας εγγυώμαι παιδιά, δείκτες και την κατανομή των χορδών και μνήμη 743 00:40:15,070 --> 00:40:16,470 πρόκειται να έρθει. 744 00:40:16,470 --> 00:40:17,410 >> Ναι; 745 00:40:17,410 --> 00:40:21,072 >> Κοινό: [δεν ακούγεται] dereference αυτό, μπορείτε απλά βάλτε ένα αστέρι [δεν ακούγεται] 746 00:40:21,072 --> 00:40:21,780 ΚΑΘΗΓΗΤΗΣ: Δεξιά. 747 00:40:21,780 --> 00:40:28,430 Έτσι για να derererence ένα μέσο δείκτη να μεταβεί στη συγκεκριμένη διεύθυνση του δείκτη 748 00:40:28,430 --> 00:40:30,390 και τη λήψη των δεδομένων, την τιμή εκεί. 749 00:40:30,390 --> 00:40:32,700 Και ο τρόπος για να γίνει αυτό είναι αστέρι δείκτη. 750 00:40:32,700 --> 00:40:34,262 Μην συγχέετε αυτό. 751 00:40:34,262 --> 00:40:35,186 >> Κοινό: [δεν ακούγεται]. 752 00:40:35,186 --> 00:40:35,852 >> ΚΑΘΗΓΗΤΗΣ: Ναι. 753 00:40:35,852 --> 00:40:39,750 Κοινό: Έτσι μπορείτε να γράψετε μόνο αν το άστρο ίση μεταξύ ίσων αστέρι t. 754 00:40:39,750 --> 00:40:40,630 >> ΚΑΘΗΓΗΤΗΣ: Λοιπόν, όχι. 755 00:40:40,630 --> 00:40:40,960 Κανένα. 756 00:40:40,960 --> 00:40:41,640 >> Κοινό: Αυτό δεν είναι αρκετά καλό, σωστά; 757 00:40:41,640 --> 00:40:43,760 >> ΚΑΘΗΓΗΤΗΣ: Δεν είναι, επειδή είστε ελέγχοντας μόνο το πρώτο γράμμα. 758 00:40:43,760 --> 00:40:46,010 Θα πρόκειται πιθανώς να χρειάζονται κάποιου είδους βρόχο που 759 00:40:46,010 --> 00:40:49,055 επαναλαμβάνει με κάθε χαρακτήρας και στις δύο χορδές. 760 00:40:49,055 --> 00:40:49,837 Ναι. 761 00:40:49,837 --> 00:40:52,920 Έτσι, αν θέλετε να ελέγξετε για να δει ακριβώς εάν έχει ξεκινήσει με το ίδιο πράγμα, 762 00:40:52,920 --> 00:40:58,220 μπορείτε να κάνετε αν, αστέρι s είναι ίση με το αστέρι t. 763 00:40:58,220 --> 00:41:01,300 Τότε ξέρεις ότι τουλάχιστον ξεκίνησε με τον ίδιο χαρακτήρα. 764 00:41:01,300 --> 00:41:01,952 >> Ναι; 765 00:41:01,952 --> 00:41:04,056 >> Κοινό: Έτσι ο τρόπος εσείς ότι θα ήταν 766 00:41:04,056 --> 00:41:06,064 όπως ένα ενσωματωμένο βρόχο ή για το δείκτη; 767 00:41:06,064 --> 00:41:06,730 ΚΑΘΗΓΗΤΗΣ: Ναι. 768 00:41:06,730 --> 00:41:08,170 Λίγο πολύ απλά ένα για το βρόχο. 769 00:41:08,170 --> 00:41:12,430 Θυμηθείτε, ο David αναφέρθηκε στην τάξη η ελεύθερη συντακτική ζάχαρη; 770 00:41:12,430 --> 00:41:17,690 Και είχε αυτή την πολύ σύγχυση πράγμα αστέρι t 771 00:41:17,690 --> 00:41:22,030 συν ένα, όπου θα ενταχθούν μέσω και μετακινήστε το δείκτη; 772 00:41:22,030 --> 00:41:29,910 Ο ευκολότερος τρόπος για να γίνει αυτό είναι ακριβώς t από i. 773 00:41:29,910 --> 00:41:31,090 >> Έτσι είναι απλά μια σειρά. 774 00:41:31,090 --> 00:41:34,630 Ο τρόπος που θα έχουν για την βρόχο που έτρεξε από το μηδέν έως το i, όπου 775 00:41:34,630 --> 00:41:36,580 i είναι το μήκος της string, θα μπορούσατε απλά 776 00:41:36,580 --> 00:41:39,510 γράφουν ότι αντί να κάνει η ολόκληρο το δείκτη, πράγμα αναφοράς. 777 00:41:39,510 --> 00:41:43,510 Έτσι, αυτά τα πράγματα είναι ακριβώς ισοδύναμο στον υπολογιστή σας. 778 00:41:43,510 --> 00:41:45,905 >> Εσείς πιθανότατα δεν θα πρέπει να γνωρίζουν ότι, 779 00:41:45,905 --> 00:41:48,280 αλλά είναι καλό να ακριβώς το είδος του έχουν στο πίσω μέρος το μυαλό σας. 780 00:41:48,280 --> 00:41:52,630 Απλά ξέρω ότι ο υπολογιστής αναγνωρίζει διαφορετικά μπλοκ κώδικα 781 00:41:52,630 --> 00:41:53,890 ως το ίδιο πράγμα. 782 00:41:53,890 --> 00:41:57,510 Επειδή αυτό είναι απλά πολύ πιο χρήστη φιλική για μας να το παρουσιάσει σαν να είναι 783 00:41:57,510 --> 00:41:58,150 ένας πίνακας. 784 00:41:58,150 --> 00:42:00,990 Είναι απλά πιο εύκολο. 785 00:42:00,990 --> 00:42:02,719 >> Κοινό: Έτσι, η χρήση strlen να αρέσει, get-- 786 00:42:02,719 --> 00:42:03,385 ΚΑΘΗΓΗΤΗΣ: Ναι. 787 00:42:03,385 --> 00:42:03,926 Κοινό: OK. 788 00:42:03,926 --> 00:42:05,940 ΚΑΘΗΓΗΤΗΣ: Θα μπορούσατε χρησιμοποιήστε strlen ή, αν 789 00:42:05,940 --> 00:42:10,420 δεν έχουν strlen μπορείτε απλά να κάνετε μέχρι μέχρι να χτυπήσει ανάποδη μηδέν για τα δύο. 790 00:42:10,420 --> 00:42:11,568 Είτε θα μπορούσε να λειτουργήσει. 791 00:42:11,568 --> 00:42:12,068 Ναι. 792 00:42:12,068 --> 00:42:14,871 793 00:42:14,871 --> 00:42:17,996 Κοινό: Έτσι είναι να dereference κάθε μεμονωμένο χαρακτήρα, αν ήμασταν πραγματικά 794 00:42:17,996 --> 00:42:21,044 γράφοντας τον κωδικό αυτό, θα θα μπορούσε να κάνει απλά t παρένθεση i 795 00:42:21,044 --> 00:42:22,460 ήθελα με το αστέρι μπροστά του; 796 00:42:22,460 --> 00:42:27,700 >> ΚΑΘΗΓΗΤΗΣ: Ναι, είναι ίση μεταξύ ίσων s βραχίονα I, και στη συνέχεια να προχωρήσουμε i 797 00:42:27,700 --> 00:42:29,790 προς τα κάτω μέχρι να χτυπήσει το τέλος. 798 00:42:29,790 --> 00:42:31,286 Ναι, αυτό είναι που θα κάνουμε. 799 00:42:31,286 --> 00:42:33,660 Και θα έχουν πραγματικά ένα επόμενο παράδειγμα, όταν στην πραγματικότητα 800 00:42:33,660 --> 00:42:36,740 γράφετε strlen έτσι εσείς θα το είδος του να πάρει για να παίξει γύρω με το λίγο. 801 00:42:36,740 --> 00:42:43,567 >> Έτσι, ο καθένας είναι σαφής όσον αφορά μόνο τη μνήμη, χορδές, δείκτες, διευθύνσεις ποιότητα; 802 00:42:43,567 --> 00:42:46,650 Μερικές ιδέες υψηλότερο επίπεδο που έχετε σίγουρα θα πρέπει να ξέρετε για το κουίζ 803 00:42:46,650 --> 00:42:48,928 αύριο. 804 00:42:48,928 --> 00:42:49,904 >> Εντάξει. 805 00:42:49,904 --> 00:42:50,404 Καλός. 806 00:42:50,404 --> 00:42:54,824 807 00:42:54,824 --> 00:42:55,324 Ναι. 808 00:42:55,324 --> 00:42:58,770 809 00:42:58,770 --> 00:43:04,180 Εντάξει, έτσι ώστε ένα πράγμα που θα σας ζητήσουμε επίσης σας, όπως κάνουμε κάθε χρόνο σε ένα κουίζ, είναι, 810 00:43:04,180 --> 00:43:08,340 ας υποθέσουμε ότι έχετε ξεχάσει (η οποία φαίνεται να ξεχνούν να κάνουν σε ετήσια βάση) 811 00:43:08,340 --> 00:43:10,810 στην οποία δηλώνεται αρχείο κεφαλίδας strlen. 812 00:43:10,810 --> 00:43:13,860 Και έτσι πρέπει να το ξαναγράψουμε τους εαυτούς μας. 813 00:43:13,860 --> 00:43:16,350 >> Εδώ είναι μια λίστα των κατευθυντήριων γραμμών ότι μπορούμε να σας παρουσιάσουμε 814 00:43:16,350 --> 00:43:20,660 παιδιά όπου μπορείτε να πάρετε για να υποθέσουμε ότι s η σειρά δεν θα είναι μηδενική. 815 00:43:20,660 --> 00:43:23,830 Μπορείτε να υποθέσετε ότι θα ανέλθει τερματίζεται με μια ανάστροφη κάθετο μηδέν. 816 00:43:23,830 --> 00:43:26,670 Έτσι, ξέρετε ότι είναι ό, τι πρόκειται να τελειώσει με. 817 00:43:26,670 --> 00:43:29,500 >> Και, για παράδειγμα, ότι ο μήκος γεια θα είναι πέντε. 818 00:43:29,500 --> 00:43:32,890 Έτσι, μπορείτε να υποθέσετε ότι ένα γεια θα είναι πέντε, H-E-L-L-O. 819 00:43:32,890 --> 00:43:35,890 Δεν χρειάζεται να υποθέσουμε ότι το πίσω μέρος τους λογαριασμούς μηδέν για το μήκος. 820 00:43:35,890 --> 00:43:39,720 821 00:43:39,720 --> 00:43:42,300 >> Αυτό το τελευταίο πράγμα εδώ, δεν κάνουμε ανησυχούν για υπερχείλιση ακεραίου. 822 00:43:42,300 --> 00:43:45,270 Υπάρχει κάποιος που θυμάται τι ακέραιος υπερχείλισης είναι; 823 00:43:45,270 --> 00:43:48,041 >> ΚΟΙΝΟ: υπερβαίνει το μήκος του [δεν ακούγεται]. 824 00:43:48,041 --> 00:43:50,740 >> ΚΑΘΗΓΗΤΗΣ: Ναι, μπορείτε να εξηγήσετε λίγο, τι σημαίνει αυτό; 825 00:43:50,740 --> 00:43:55,330 >> Κοινό: Έτσι, υποθέτω ότι πηγαίνει πίσω για παράδειγμα η περικοπή νωρίτερα. 826 00:43:55,330 --> 00:43:58,380 Αλλά εάν έχετε μόνο τόσες πολλές αριθμούς που υπερβαίνουν τον αριθμό των bits 827 00:43:58,380 --> 00:44:01,409 ότι μπορείτε να το εκχωρήσει στην πραγματικότητα ότι θα είναι ακριβώς το είδος των αποκοπεί. 828 00:44:01,409 --> 00:44:04,242 ΚΑΘΗΓΗΤΗΣ: Ναι, έτσι σε ένα τυπικό υπολογιστή, πόσα bits έχουμε; 829 00:44:04,242 --> 00:44:05,306 Κοινό: 32; 830 00:44:05,306 --> 00:44:06,430 ΚΑΘΗΓΗΤΗΣ: Ναι, 32, δεξιά. 831 00:44:06,430 --> 00:44:10,030 Και έτσι αυτό είναι, ό, τι, τέσσερις δισεκατομμύρια, δύο δισεκατομμύρια; 832 00:44:10,030 --> 00:44:13,579 Τέσσερα δισεκατομμύρια, μέχρι τέσσερα δισεκατομμύρια θετικών ακεραίων, έτσι δεν είναι; 833 00:44:13,579 --> 00:44:15,370 Δύο δισεκατομμύρια αρνητικά, δύο δισεκατομμύρια θετική, 834 00:44:15,370 --> 00:44:16,900 εξαρτάται από το πόσο θέλετε να το κάνετε. 835 00:44:16,900 --> 00:44:21,470 >> Και έτσι ουσιαστικά να μπορούμε να έχουμε αρκετά ακεραίων που μπορεί να πάει μέχρι 836 00:44:21,470 --> 00:44:25,800 σε δύο έως 31 μείον 1, σωστά; 837 00:44:25,800 --> 00:44:27,980 Διότι από τη στιγμή που χτύπησε δύο στην 32η, εμείς δεν κάνουμε 838 00:44:27,980 --> 00:44:30,040 έχουν τόσο πολύ μνήμη του υπολογιστή μας. 839 00:44:30,040 --> 00:44:32,310 >> Και έτσι, θεωρητικά, μπορώ θα μπορούσε να καταλήξει σε ένα αριθμό 840 00:44:32,310 --> 00:44:34,560 ότι είναι, όπως, δύο στο 46ο. 841 00:44:34,560 --> 00:44:38,040 Είναι ένα τεράστιο αριθμό-κώλο, αλλά θεωρητικά θα μπορούσατε. 842 00:44:38,040 --> 00:44:42,730 Και έτσι είναι ακέραιος υπερχείλισης αν προσπαθήσετε να δημιουργήσετε έναν ακέραιο που πηγαίνει πέρα ​​από αυτό 843 00:44:42,730 --> 00:44:44,790 ο υπολογιστής σας μπορεί να αποθηκεύσει. 844 00:44:44,790 --> 00:44:46,590 >> Και έτσι εσείς για αυτό το παράδειγμα δεν διαθέτουν 845 00:44:46,590 --> 00:44:51,330 να ανησυχείς για μας να σας δώσω μια γιγαντιαία συμβολοσειράς που είναι δύο έως και το 32ο χαρακτήρες 846 00:44:51,330 --> 00:44:51,830 μακρύς. 847 00:44:51,830 --> 00:44:54,010 Αυτό θα σημαίνει πραγματικά. 848 00:44:54,010 --> 00:44:59,430 >> Εντάξει, έτσι είμαι απλώς πρόκειται να δώσει εσείς η βασική δομή του αυτή. 849 00:44:59,430 --> 00:45:02,020 Θα πάμε να δημιουργήσουμε ένα λειτουργία που ονομάζεται int strlen όπου 850 00:45:02,020 --> 00:45:08,436 Ένα πέρασμα σε ένα αστέρι char, ή κορδόνι, δείκτη προς τη σειρά που ονομάζεται s. 851 00:45:08,436 --> 00:45:10,820 >> Εντάξει, ο καθένας να αντιγράψετε το κάτω. 852 00:45:10,820 --> 00:45:13,550 853 00:45:13,550 --> 00:45:14,850 Δροσερός. 854 00:45:14,850 --> 00:45:17,020 Oops-- άλλο τρόπο. 855 00:45:17,020 --> 00:45:21,360 >> Έτσι, αυτό είναι το είδος του σαν ένα δυσκολότερο κομμάτι του προβλήματος, 856 00:45:21,360 --> 00:45:25,320 γι 'αυτό θα σας δώσω τα παιδιά ίσως πέντε έως έξι λεπτά έως ότου το είδος της Brainstorm 857 00:45:25,320 --> 00:45:27,478 και να γράψει αυτή τη λειτουργία έξω. 858 00:45:27,478 --> 00:45:29,710 >> Κοινό: Εμείς δεν για λογαριασμό [δεν ακούγεται], 859 00:45:29,710 --> 00:45:30,200 δεν έχουμε να χρησιμοποιήσετε ακέραιος; 860 00:45:30,200 --> 00:45:31,241 >> ΚΑΘΗΓΗΤΗΣ: Όχι, δεν το κάνετε. 861 00:45:31,241 --> 00:48:05,847 862 00:48:05,847 --> 00:48:06,930 Θα σας δώσω μια υπόδειξη παιδιά. 863 00:48:06,930 --> 00:48:12,325 Ένας βρόχος while μπορεί να είναι πολύ χρήσιμη εδώ. 864 00:48:12,325 --> 00:48:12,825 Ναι. 865 00:48:12,825 --> 00:48:44,995 866 00:48:44,995 --> 00:48:45,495 Εδώ είναι 867 00:48:45,495 --> 00:48:45,995 καραμέλα. 868 00:48:45,995 --> 00:48:49,980 869 00:48:49,980 --> 00:48:53,410 Candy θα είναι επίσης διαθέσιμη για το κουίζ, νομίζω. 870 00:48:53,410 --> 00:48:55,315 Έτσι, εσείς θα είναι όλα ζαχαρωμένες μέχρι αύριο. 871 00:48:55,315 --> 00:49:01,110 872 00:49:01,110 --> 00:49:02,962 Μπορεί I-- το πήρατε. 873 00:49:02,962 --> 00:49:03,718 >> Κοινό: OK. 874 00:49:03,718 --> 00:49:04,384 ΚΑΘΗΓΗΤΗΣ: Ναι. 875 00:49:04,384 --> 00:49:10,550 876 00:49:10,550 --> 00:49:11,870 >> Ίσως περισσότερο από 30 δευτερόλεπτα ή έτσι. 877 00:49:11,870 --> 00:50:02,220 878 00:50:02,220 --> 00:50:07,340 >> Εντάξει, αν είστε Δεν γίνεται, μην ανησυχείτε. 879 00:50:07,340 --> 00:50:08,810 Θα προχωρήσουμε μέσα από αυτό μαζί. 880 00:50:08,810 --> 00:50:09,310 ΕΝΤΆΞΕΙ. 881 00:50:09,310 --> 00:50:13,800 Έτσι, Πάω να ακριβώς τη διάταξη του βασική δομή για τη λειτουργία αυτή εδώ. 882 00:50:13,800 --> 00:50:17,255 Int strlen. 883 00:50:17,255 --> 00:50:20,040 884 00:50:20,040 --> 00:50:23,460 Κατ 'αρχάς, δεν θέλει κανείς να πει μου τι σημαίνει αυτό int; 885 00:50:23,460 --> 00:50:25,160 Πρέπει να έχουμε σε αυτή τη λειτουργία. 886 00:50:25,160 --> 00:50:26,709 >> Κοινό: strlen [δεν ακούγεται]. 887 00:50:26,709 --> 00:50:27,500 ΚΑΘΗΓΗΤΗΣ: Ακριβώς. 888 00:50:27,500 --> 00:50:31,140 Έτσι, ό, τι συμβαίνει εδώ, θα πρέπει να επιστρέφουν έναν ακέραιο. 889 00:50:31,140 --> 00:50:36,367 Και όπως ορίζεται στο spec, θέλουμε να return-- 890 00:50:36,367 --> 00:50:37,700 Πάμε για αυτό τα παιδιά, απλά συνεχίστε. 891 00:50:37,700 --> 00:50:40,480 Είναι όλα καλά. 892 00:50:40,480 --> 00:50:42,960 Φάτε όλα, έτσι δεν έχω να το πάρει πίσω, στην πραγματικότητα. 893 00:50:42,960 --> 00:50:46,022 894 00:50:46,022 --> 00:50:48,855 Η int σημαίνει απλά ότι είστε πρόκειται να επιστρέφουν έναν ακέραιο. 895 00:50:48,855 --> 00:50:55,350 896 00:50:55,350 --> 00:50:57,106 >> Τι είναι αυτό το αστέρι char s; 897 00:50:57,106 --> 00:50:58,640 Τι σημαίνει αυτό? 898 00:50:58,640 --> 00:51:00,879 >> Κοινό: Όπως, τι είναι στην είσοδο. 899 00:51:00,879 --> 00:51:01,670 ΚΑΘΗΓΗΤΗΣ: Ακριβώς. 900 00:51:01,670 --> 00:51:04,142 Και αυτό είναι σχεδόν το ίδιο πράγμα όπως char αστέρι; 901 00:51:04,142 --> 00:51:04,850 Κοινό: String; 902 00:51:04,850 --> 00:51:05,641 ΚΑΘΗΓΗΤΗΣ: Ακριβώς. 903 00:51:05,641 --> 00:51:09,080 Έτσι το μόνο που κάνουμε είναι να βρει Αυτό είναι ένας δείκτης σε μια σειρά. 904 00:51:09,080 --> 00:51:09,580 ΕΝΤΆΞΕΙ. 905 00:51:09,580 --> 00:51:12,860 906 00:51:12,860 --> 00:51:13,360 Δροσερός. 907 00:51:13,360 --> 00:51:16,650 >> Επίσης, μην ξεχνάτε, αν ξεχάσουμε για να σας δώσει αυτά τα στηρίγματα, 908 00:51:16,650 --> 00:51:18,330 μην ξεχάσετε να τα γράψετε μόνοι σας. 909 00:51:18,330 --> 00:51:20,720 Επειδή θεωρητικά, ο κώδικάς σας είναι λανθασμένη αν ξεχάσετε να τα γράψω. 910 00:51:20,720 --> 00:51:21,803 Απλά πληρώνουν πάντα προσοχή. 911 00:51:21,803 --> 00:51:23,750 Όπως, τα μικρά πράγματα ότι δεν θα παρατηρήσετε 912 00:51:23,750 --> 00:51:26,917 όταν είστε προγραμματισμού για το laptop σας, επειδή το laptop σας το κάνει για σας; 913 00:51:26,917 --> 00:51:28,624 Μην ξεχνάτε, όταν γράφεις με το χέρι. 914 00:51:28,624 --> 00:51:29,170 Ναι; 915 00:51:29,170 --> 00:51:30,954 >> Κοινό: Αλλά πώς λάθος; 916 00:51:30,954 --> 00:51:33,190 Όπως, παίρνουμε το όλο πρόβλημα λάθος; 917 00:51:33,190 --> 00:51:34,190 >> ΚΑΘΗΓΗΤΗΣ: Όχι, όχι. 918 00:51:34,190 --> 00:51:34,860 Μην ανησυχείτε. 919 00:51:34,860 --> 00:51:39,270 Είναι πραγματικά θεωρητικά δυνατό για να μπορείτε να πάρετε την πλήρη σημεία σε μια ερώτηση 920 00:51:39,270 --> 00:51:41,980 ακόμη και αν ο κώδικάς σας θα ξεμείνετε ποτέ στην πραγματική ζωή. 921 00:51:41,980 --> 00:51:46,052 Σας προτείνω να μην δοκιμάσετε για να συμβεί αυτό. 922 00:51:46,052 --> 00:51:48,260 Για παράδειγμα, όπως και αν όλα που είναι εδώ είναι σωστή, 923 00:51:48,260 --> 00:51:51,850 αλλά ξεχάσετε μια άνω και κάτω τελεία ή ένα στήριγμα, κωδικός σας δεν θα λειτουργεί πραγματικά. 924 00:51:51,850 --> 00:51:53,740 Αλλά μπορούμε να είμαστε ελεήμονες. 925 00:51:53,740 --> 00:51:54,394 >> Ναι; 926 00:51:54,394 --> 00:51:56,050 >> Κοινό: Έχετε να σχολιάσω χειρογράφου μας; 927 00:51:56,050 --> 00:51:57,758 >> ΚΑΘΗΓΗΤΗΣ: Όχι, όχι, όχι ανησυχίες σχετικά με αυτό. 928 00:51:57,758 --> 00:51:58,440 Δεν σχολιασμό. 929 00:51:58,440 --> 00:51:59,400 Στυλ πρέπει να είναι καλό. 930 00:51:59,400 --> 00:52:01,470 Όπως, δεν SMUSH όλα σε μία γραμμή. 931 00:52:01,470 --> 00:52:04,580 Δεν θα είμαστε ευτυχείς μαζί σας, αν το κάνεις αυτό. 932 00:52:04,580 --> 00:52:07,250 >> Υπάρχει κάποιος που θέλει να να μου δώσει την πρώτη γραμμή; 933 00:52:07,250 --> 00:52:08,633 Συμβουλή, είναι πολύ εύκολο. 934 00:52:08,633 --> 00:52:09,320 >> Ναι; 935 00:52:09,320 --> 00:52:11,920 >> Κοινό: Int, η ισούται με μηδέν. 936 00:52:11,920 --> 00:52:13,734 Μόλις συσταθεί μετρητή. 937 00:52:13,734 --> 00:52:15,900 ΚΑΘΗΓΗΤΗΣ: Έτσι θέλουμε κάποια είδος του μετρητή, έτσι δεν είναι; 938 00:52:15,900 --> 00:52:19,780 Είμαι ακριβώς πρόκειται να το ονομάσει "μετράνε" για λόγους αναγνωσιμότητας. 939 00:52:19,780 --> 00:52:21,265 Τι θέλουμε να τίθεται ίσο προς το 940 00:52:21,265 --> 00:52:21,890 >> Κοινό: Μηδέν. 941 00:52:21,890 --> 00:52:23,840 ΚΑΘΗΓΗΤΗΣ: Ναι. 942 00:52:23,840 --> 00:52:24,340 Άνω τελεία. 943 00:52:24,340 --> 00:52:26,250 Είναι επίσης πολύ παράξενο ερωτηματικά σχέδιο. 944 00:52:26,250 --> 00:52:28,870 Απλά πρακτική να το κάνουμε αυτό. 945 00:52:28,870 --> 00:52:31,990 >> Έτσι θέλουμε να έχουμε πρώτα ένας μετρητής του τύπου int. 946 00:52:31,990 --> 00:52:35,360 Επειδή θέλουμε να μετρήσει μέχρι το πώς πολλοί χαρακτήρες ή γράμματα 947 00:52:35,360 --> 00:52:36,780 αυτής της στοιχειοσειράς, έτσι δεν είναι; 948 00:52:36,780 --> 00:52:38,330 Πολύ εύκολο πρώτο βήμα. 949 00:52:38,330 --> 00:52:42,140 >> Εντάξει, ίσως λίγο πιο περίπλοκη τώρα, πώς θα πάμε να το πράξουν; 950 00:52:42,140 --> 00:52:45,400 Υπάρχει κάποιος που θέλει να δώσε μου τη γραμμή του κώδικα 951 00:52:45,400 --> 00:52:48,450 ότι μπορεί να είναι σε θέση να βοηθήσει βρόχο μέσω ό, τι είναι αυτό; 952 00:52:48,450 --> 00:52:54,540 953 00:52:54,540 --> 00:52:56,900 >> Ναι, γενναία ψυχή στο πίσω μέρος; 954 00:52:56,900 --> 00:53:06,832 >> Κοινό: Εντάξει, έτσι ενώ το σημείο αστερίσκους, το ναι, αστέρι του s, 955 00:53:06,832 --> 00:53:09,465 δεν ισούται με μηδέν, τότε κάνουμε κάτι; 956 00:53:09,465 --> 00:53:11,090 ΚΑΘΗΓΗΤΗΣ: Αυτό είναι πραγματικά, πραγματικά κοντά. 957 00:53:11,090 --> 00:53:11,835 Πολύ κοντά. 958 00:53:11,835 --> 00:53:13,710 Έτσι, Πάω να αντιμετωπίσει δύο πράγματα με αυτό. 959 00:53:13,710 --> 00:53:18,240 Πρώτα απ 'όλα, δεν είναι ακριβώς μηδέν. 960 00:53:18,240 --> 00:53:20,110 Τι είναι αυτό? 961 00:53:20,110 --> 00:53:22,550 Είναι η καταληκτική null, η οποία είναι ανάστροφη κάθετο μηδέν. 962 00:53:22,550 --> 00:53:24,960 Έτσι είναι διαφορετικοί σε αφορά τον τρόπο που είναι αποθηκευμένα. 963 00:53:24,960 --> 00:53:26,270 Έτσι είστε πολύ κοντά. 964 00:53:26,270 --> 00:53:30,330 >> Και δεύτερον, δεν θέλουμε για να μετακινήσετε το δείκτη ακριβώς. 965 00:53:30,330 --> 00:53:32,320 Θέλουμε πραγματικά να πρόσβαση στις τιμές, έτσι δεν είναι; 966 00:53:32,320 --> 00:53:34,050 Και έτσι πώς το κάνουμε αυτό; 967 00:53:34,050 --> 00:53:34,550 Πολυ ευκολο. 968 00:53:34,550 --> 00:53:36,841 Μην σκεφτείτε δείκτες, Δεν νομίζω ότι για τις αναμνήσεις. 969 00:53:36,841 --> 00:53:38,525 Επιστρέψτε στην εβδομάδα δύο από αυτό το μάθημα. 970 00:53:38,525 --> 00:53:39,555 >> Κοινό: [δεν ακούγεται]. 971 00:53:39,555 --> 00:53:40,680 ΚΑΘΗΓΗΤΗΣ: Από, θυμάσαι; 972 00:53:40,680 --> 00:53:41,400 Τι είναι οι χορδές; 973 00:53:41,400 --> 00:53:42,650 Πώς θα αποθηκεύονται στη μνήμη; 974 00:53:42,650 --> 00:53:43,300 >> Κοινό: Είναι τέθηκαν. 975 00:53:43,300 --> 00:53:43,810 >> ΚΑΘΗΓΗΤΗΣ: Εκτρέφονται. 976 00:53:43,810 --> 00:53:45,550 Επομένως, πώς έχουμε πρόσβαση κάθε χαρακτήρας μέσα; 977 00:53:45,550 --> 00:53:46,466 >> Κοινό: [δεν ακούγεται]. 978 00:53:46,466 --> 00:53:47,530 ΚΑΘΗΓΗΤΗΣ: Ακριβώς. 979 00:53:47,530 --> 00:53:53,195 Έτσι while-- τι συμβαίνει εδώ μέσα; 980 00:53:53,195 --> 00:53:54,940 S του - 981 00:53:54,940 --> 00:53:55,920 >> Κοινό: I. 982 00:53:55,920 --> 00:53:58,216 >> ΚΑΘΗΓΗΤΗΣ: Ω, δεν υπάρχει, έτσι δεν είναι; 983 00:53:58,216 --> 00:53:59,620 >> Κοινό: Ω, μετράνε; 984 00:53:59,620 --> 00:54:01,640 >> ΚΑΘΗΓΗΤΗΣ: Μπορούμε μόνο χρησιμοποιήσετε καταμέτρηση, δεν μπορούμε να κάνουμε; 985 00:54:01,640 --> 00:54:03,050 >> Κοινό: Συγγνώμη, αυτό ονομάζεται i. 986 00:54:03,050 --> 00:54:04,341 >> ΚΑΘΗΓΗΤΗΣ: Ναι, είναι όλα καλά. 987 00:54:04,341 --> 00:54:06,710 988 00:54:06,710 --> 00:54:10,760 Έχουμε μια μεταβλητή εδώ ότι είναι ήδη δηλωθεί ως μετρητής μας. 989 00:54:10,760 --> 00:54:13,650 Έτσι, γιατί δεν μπορούμε απλά να χρησιμοποιήσετε ότι για να μετακινηθείτε μέσα από το βρόχο, ενώ; 990 00:54:13,650 --> 00:54:15,230 Βγάζει νόημα αυτό? 991 00:54:15,230 --> 00:54:20,864 >> Έτσι, ενώ s της count-- δεν θέλει κανείς να μου δώσει ό, τι συμβαίνει μετά από εδώ; 992 00:54:20,864 --> 00:54:22,030 ΚΟΙΝΟ: δεν ίσα. 993 00:54:22,030 --> 00:54:23,405 ΚΑΘΗΓΗΤΗΣ: Μήπως δεν είναι ίσες, σωστά; 994 00:54:23,405 --> 00:54:26,200 Είναι η έκρηξη ισοδυναμεί, θαυμαστικό ισούται με, 995 00:54:26,200 --> 00:54:28,500 ό, τι εσείς θέλετε να καλέστε δεν equal-- 996 00:54:28,500 --> 00:54:29,496 >> Κοινό: [δεν ακούγεται]. 997 00:54:29,496 --> 00:54:30,990 >> ΚΑΘΗΓΗΤΗΣ: Ναι. 998 00:54:30,990 --> 00:54:37,110 Θυμηθείτε απλά εισαγωγικά είναι για ένα χαρακτήρα και, διπλά εισαγωγικά είναι για ένα string. 999 00:54:37,110 --> 00:54:38,630 Να είστε προσεκτικοί κατά τη χρήση τους. 1000 00:54:38,630 --> 00:54:42,430 Έτσι, όταν ψάχνουμε μέσα η συστοιχία, το τελευταίο χαρακτήρα, 1001 00:54:42,430 --> 00:54:46,420 γνωρίζουμε ότι δεν θέλουμε να είναι ανάποδη μηδέν. 1002 00:54:46,420 --> 00:54:47,340 >> Έτσι, ενώ. 1003 00:54:47,340 --> 00:54:48,840 Δεν είμαστε στο τέλος του string. 1004 00:54:48,840 --> 00:54:52,335 Τι θέλουμε να κάνουμε μέσα; 1005 00:54:52,335 --> 00:54:55,269 >> Κοινό: Θέλουμε να προσθέσετε το μετρητή έτσι ώστε να μετρά συν συν; 1006 00:54:55,269 --> 00:54:56,060 ΚΑΘΗΓΗΤΗΣ: Ακριβώς. 1007 00:54:56,060 --> 00:55:03,064 Έτσι, εδώ θα πάμε να κάνουμε μετράνε, μετράνε συν συν. 1008 00:55:03,064 --> 00:55:03,980 Λείπει ακόμα μια κοινή γραμμή. 1009 00:55:03,980 --> 00:55:05,090 Είμαστε σχεδόν εκεί. 1010 00:55:05,090 --> 00:55:07,398 Τι μπορούμε να ξεχάσουμε να κάνουμε; 1011 00:55:07,398 --> 00:55:08,770 >> Κοινό: Επιστρέφοντας το μηδέν; 1012 00:55:08,770 --> 00:55:10,820 >> ΚΑΘΗΓΗΤΗΣ: Θέλετε να επιστρέψετε το μηδέν; 1013 00:55:10,820 --> 00:55:12,962 >> Κοινό: Όχι, επιστρέφοντας στην strlen. 1014 00:55:12,962 --> 00:55:13,511 Περιμένετε. 1015 00:55:13,511 --> 00:55:14,760 ΚΑΘΗΓΗΤΗΣ: Ποια είναι αποθηκευμένα σε; 1016 00:55:14,760 --> 00:55:15,090 Κοινό: Count. 1017 00:55:15,090 --> 00:55:15,589 Κόμης. 1018 00:55:15,589 --> 00:55:17,150 ΚΑΘΗΓΗΤΗΣ: Ακριβώς. 1019 00:55:17,150 --> 00:55:20,760 Έτσι, εδώ θα πάμε να επιστρέψει καταμέτρηση. 1020 00:55:20,760 --> 00:55:23,450 1021 00:55:23,450 --> 00:55:25,380 >> Γιατί αυτό που είμαστε κάνει εδώ ultimately-- 1022 00:55:25,380 --> 00:55:29,780 έχουμε ένα μετρητή μεταβλητή που είναι πρόκειται να αυξήσει διαμέσου εγχόρδων μας. 1023 00:55:29,780 --> 00:55:33,050 Εμείς πάμε για να συνεχίσουμε, να κρατήσει πηγαίνει, και γύρω γύρω σε αυτό το βρόχο. 1024 00:55:33,050 --> 00:55:37,700 Και ενώ εμείς δεν είμαστε στο τέλος αυτής της κορδόνι, το οποίο είναι η μηδενική τερματιστή. 1025 00:55:37,700 --> 00:55:40,410 >> Και κάθε φορά που περνάμε αυτό, είμαστε προσθέτοντας πάγκο μας. 1026 00:55:40,410 --> 00:55:42,640 Και θα πάμε περαιτέρω μαζί σε αυτή την σειρά. 1027 00:55:42,640 --> 00:55:44,880 Και στο τέλος, όταν θα χτύπησε την μηδενική τερματισμού, 1028 00:55:44,880 --> 00:55:48,469 γνωρίζουμε, OH, μπορούμε να σπάσει, να επιστρέψει την καταμέτρηση. 1029 00:55:48,469 --> 00:55:49,260 Έχουμε strlen μας. 1030 00:55:49,260 --> 00:55:52,280 1031 00:55:52,280 --> 00:55:56,400 >> Μήπως ο καθένας να πάρει το πώς αυτό τέθηκε σε εφαρμογή; 1032 00:55:56,400 --> 00:55:58,830 Ενώ loops-- Ξέρω ότι δεν έχουμε γίνεται πάρα πολύ μαζί τους, 1033 00:55:58,830 --> 00:56:01,240 αλλά είναι συνήθως πολύ, πολύ χρήσιμο αν 1034 00:56:01,240 --> 00:56:05,390 Δεν ξέρω τι είστε διακοπή κατάσταση πρέπει αναγκαστικά να είναι. 1035 00:56:05,390 --> 00:56:06,220 >> Ερώτηση? 1036 00:56:06,220 --> 00:56:10,080 >> Κοινό: Μπορούμε να γράψετε null σχετικά με την κατάσταση, ενόσω βρίσκονταν; 1037 00:56:10,080 --> 00:56:10,940 >> ΚΑΘΗΓΗΤΗΣ: Ενώ; 1038 00:56:10,940 --> 00:56:15,304 Ναι, έτσι σε αυτό το πρόβλημα που είχατε παιδιά υποθέτουν ότι s δεν θα είναι μηδενική. 1039 00:56:15,304 --> 00:56:17,220 Επειδή θυμηθείτε, θεωρητικά, αν σας έδωσα 1040 00:56:17,220 --> 00:56:21,180 ένα δείκτη που ήταν πάρα πολύ μεγάλο της μνήμης, θα σας δώσει την μηδενική, σωστά; 1041 00:56:21,180 --> 00:56:23,770 Γι 'αυτό το λειτουργικό το σύστημα θα κάνει. 1042 00:56:23,770 --> 00:56:26,960 >> Έτσι, αν δεν είχα να σας πω να αναλάβει s θα είναι μηδενική, θα πρέπει να ελέγξετε. 1043 00:56:26,960 --> 00:56:32,050 Έτσι, εδώ, θα κάνατε, αν s ισούται ισούται με null, επιστρέφει ένα. 1044 00:56:32,050 --> 00:56:33,028 Κάτι τέτοιο. 1045 00:56:33,028 --> 00:56:34,153 Κοινό: [δεν ακούγεται] μηδέν. 1046 00:56:34,153 --> 00:56:37,287 1047 00:56:37,287 --> 00:56:39,370 ΚΑΘΗΓΗΤΗΣ: Εντάξει, εγώ θα πω σας γιατί δεν μπορούμε να το κάνουμε αυτό. 1048 00:56:39,370 --> 00:56:43,357 Επειδή θυμάμαι στη μνήμη, δεξιά, εδώ. 1049 00:56:43,357 --> 00:56:43,940 Θα πάμε εδώ. 1050 00:56:43,940 --> 00:56:49,940 1051 00:56:49,940 --> 00:56:54,090 >> Έχετε τεράστιων ογκόλιθων της μνήμης, όλα με πλέγματα 1052 00:56:54,090 --> 00:56:56,680 που αποθηκεύουν διαφορετικές τιμές, έτσι δεν είναι; 1053 00:56:56,680 --> 00:57:00,110 Και έτσι όλοι μια σειρά is-- για παράδειγμα, αν θέλουμε να εισάγετε ένα γεια, 1054 00:57:00,110 --> 00:57:05,490 θα είναι H-E-L-L-O ανάστροφη κάθετο μηδέν, έτσι δεν είναι; 1055 00:57:05,490 --> 00:57:09,570 Και τότε ποιος ξέρει, σαν τυχαίοι πράγματα που είναι εδώ μετά από αυτό. 1056 00:57:09,570 --> 00:57:11,220 >> Εμείς δεν γνωρίζουμε πραγματικά τι είναι εκεί. 1057 00:57:11,220 --> 00:57:13,350 Και έτσι, αν ήταν να το κάνετε αντί ανάστροφη κάθετο μηδέν, 1058 00:57:13,350 --> 00:57:15,590 null, δεν μπορεί να είναι null. 1059 00:57:15,590 --> 00:57:17,680 Διότι αυτό ακριβώς μπορεί να σημαίνει κάποια τυχαία άλλα πράγματα 1060 00:57:17,680 --> 00:57:19,270 που δεν ανήκουν στο κορδόνι σας. 1061 00:57:19,270 --> 00:57:23,219 Και έτσι ο τρόπος που πάντα ξέρουν ότι μια σειρά τελειώνει είναι μια κάθετος μηδέν. 1062 00:57:23,219 --> 00:57:25,760 Και έτσι αυτό είναι πάντα το πώς μπορούμε ελέγξτε για να δείτε το τέλος μιας συμβολοσειράς. 1063 00:57:25,760 --> 00:57:30,820 >> Null, όλα αυτά μέσα είναι, αν έχετε ένα ανύπαρκτο δείκτη, πρώτα από όλα, 1064 00:57:30,820 --> 00:57:36,160 ή αν η μνήμη σου είναι τόσο μεγάλη, ώστε δεν μπορείτε να το επιστρέψει, τότε θα ήθελα να είναι μηδενική. 1065 00:57:36,160 --> 00:57:40,150 Γι 'αυτό να είστε πολύ προσεκτικοί κατά τη διαφοροποίηση η διαφορά μεταξύ null 1066 00:57:40,150 --> 00:57:42,130 και η αντίστροφη κάθετος μηδέν. 1067 00:57:42,130 --> 00:57:43,670 Ναι. 1068 00:57:43,670 --> 00:57:46,886 >> Όλοι εντάξει με αυτό; 1069 00:57:46,886 --> 00:57:48,150 ΕΝΤΆΞΕΙ. 1070 00:57:48,150 --> 00:57:50,440 >> Είχα, λοιπόν, εσείς γράφετε έξω strlen. 1071 00:57:50,440 --> 00:57:53,790 Εφικτούς θα μπορούσαμε επίσης να ζητήσετε να σας γράψω από Α έως Ι, να θυμάστε ότι "Atwoa" 1072 00:57:53,790 --> 00:57:55,400 ή ό, τι εσείς θέλετε να το ονομάσετε; 1073 00:57:55,400 --> 00:57:58,010 Που λειτουργούν σε Vigenere και Καίσαρα, ότι 1074 00:57:58,010 --> 00:58:00,900 μετατρέπει μια τιμή ASCII σε ακέραιο; 1075 00:58:00,900 --> 00:58:04,360 Αυτό, επίσης, έχει καταλήξει στο παρελθόν κουίζ των λειτουργιών που έχουμε να σας ζητηθεί να γράψετε. 1076 00:58:04,360 --> 00:58:08,280 >> Λίγο πολύ οποιαδήποτε λειτουργία ότι έχετε χρησιμοποιήσει και είναι 1077 00:58:08,280 --> 00:58:11,660 πολύ εύκολο να γράψει τον εαυτό σας, αισθητήρες αρέσει είναι χαμηλότερο, 1078 00:58:11,660 --> 00:58:14,620 είναι άνω, να μειώσει, στο ανώτερο. 1079 00:58:14,620 --> 00:58:17,964 Λειτουργίες που θα μετατρέψει ένα κορδόνι από πεζά σε κεφαλαία. 1080 00:58:17,964 --> 00:58:19,380 Όλοι γνωρίζουμε πώς να το κάνουμε αυτό, σωστά; 1081 00:58:19,380 --> 00:58:21,100 Είναι αρκετά εύκολο. 1082 00:58:21,100 --> 00:58:24,770 Απλά θέλετε να βεβαιωθείτε ότι έχετε can-- είναι η ίδια διαδικασία σκέψης. 1083 00:58:24,770 --> 00:58:26,940 Απλά διέτρεξε και θα αλλάξει τα πράγματα. 1084 00:58:26,940 --> 00:58:30,190 Μπορείτε είτε να μετρά ή όταν στρίβετε τα πράγματα διαφορετικά. 1085 00:58:30,190 --> 00:58:32,280 >> Θα ήθελα να έχω suggest-- Δεν ξέρω αν θα πάμε 1086 00:58:32,280 --> 00:58:39,080 να σας ζητήσω να απομνημονεύσετε τι κεφαλαίου Α ή κεφάλαιο Ζ, ή πεζά Α ή πεζά 1087 00:58:39,080 --> 00:58:42,640 z είναι σε ASCII, αλλά θα ήθελα να προτείνω ίσως γράφοντας ότι προβλέπεται σε περίπτωση 1088 00:58:42,640 --> 00:58:44,124 κανουμε. 1089 00:58:44,124 --> 00:58:45,540 Ακριβώς έτσι εσείς έχετε μια αναφορά. 1090 00:58:45,540 --> 00:58:47,180 Όπως κεφαλαίο Α είναι, τι, 197; 1091 00:58:47,180 --> 00:58:51,320 Και τότε είναι σαν πεζά 50 κάτι. 1092 00:58:51,320 --> 00:58:52,492 65, ναι, εκεί θα πάτε. 1093 00:58:52,492 --> 00:58:54,950 Έτσι απλά λίγο πολύ γνωρίζουμε την διαφορά μεταξύ τους είναι 32. 1094 00:58:54,950 --> 00:58:57,670 Αυτό είναι πολύ σημαντικό. 1095 00:58:57,670 --> 00:58:58,170 Ναι. 1096 00:58:58,170 --> 00:59:01,445 Είμαι καλός σε αυτό; 1097 00:59:01,445 --> 00:59:01,945 ΕΝΤΆΞΕΙ. 1098 00:59:01,945 --> 00:59:03,109 >> Κοινό: Θα μπορούσαμε θεωρητικά γράψει μερικά 1099 00:59:03,109 --> 00:59:04,410 από αυτά τα κάτω, καθώς και για little-- μας 1100 00:59:04,410 --> 00:59:07,035 >> ΚΑΘΗΓΗΤΗΣ: Μπορείτε θεωρητικά θα μπορούσε απλά να αντιγράψετε τη λειτουργία κάτω. 1101 00:59:07,035 --> 00:59:08,482 Αυτό είναι αλήθεια. 1102 00:59:08,482 --> 00:59:11,080 >> Κοινό: Δεν [δεν ακούγεται]. 1103 00:59:11,080 --> 00:59:12,720 >> ΚΑΘΗΓΗΤΗΣ: Εσείς έχετε ένα φύλλο. 1104 00:59:12,720 --> 00:59:14,194 Εσείς έχετε ένα φύλλο σημείωμα. 1105 00:59:14,194 --> 00:59:14,860 Μπορείτε να πληκτρολογήσετε. 1106 00:59:14,860 --> 00:59:15,490 Μπορείτε να το γράψετε. 1107 00:59:15,490 --> 00:59:17,031 Μπορείτε να κάνετε ό, τι θέλετε με αυτό. 1108 00:59:17,031 --> 00:59:18,530 Ναι. 1109 00:59:18,530 --> 00:59:21,406 Έτσι, θεωρητικά, εάν θέλετε να, πάει για. 1110 00:59:21,406 --> 00:59:23,338 >> Κοινό: [δεν ακούγεται] αλλά δεν το κάνουμε πραγματικότητα 1111 00:59:23,338 --> 00:59:25,994 αναγκαστικά πρέπει να θυμάστε η τιμή, μπορούμε μόνο 1112 00:59:25,994 --> 00:59:28,914 χρησιμοποιήστε το για να ανώτερη ή λειτουργία των κάτω, έτσι δεν είναι; 1113 00:59:28,914 --> 00:59:29,580 ΚΑΘΗΓΗΤΗΣ: Ναι. 1114 00:59:29,580 --> 00:59:32,740 Αλλά αν σας δώσαμε μια ερώτηση που λέει να γράψει επάνω, 1115 00:59:32,740 --> 00:59:34,350 τότε θα πρέπει να το γράψω. 1116 00:59:34,350 --> 00:59:38,150 Έτσι, εσείς μπορείτε να υποθέσετε ότι έχετε παιδιά να έχουν πρόσβαση σε όλες τις λειτουργίες, 1117 00:59:38,150 --> 00:59:41,523 αλλά αν θέλετε να χρησιμοποιήσετε για την ανώτερη ή κάτω, τι έχετε να κάνετε; 1118 00:59:41,523 --> 00:59:43,840 >> Κοινό: [δεν ακούγεται] χρησιμοποιήσετε CS50 [δεν ακούγεται] 1119 00:59:43,840 --> 00:59:44,840 >> ΚΑΘΗΓΗΤΗΣ: Είναι CS50.h; 1120 00:59:44,840 --> 00:59:47,320 1121 00:59:47,320 --> 00:59:48,310 Να είστε προσεκτικοί εκεί. 1122 00:59:48,310 --> 00:59:50,640 >> Έτσι, στο ανώτερο, να μειώσει, είναι ανώτερη, είναι χαμηλότερη, 1123 00:59:50,640 --> 00:59:52,990 λειτουργίες που περιλαμβάνουν χειρισμός συμβολοσειρών είναι 1124 00:59:52,990 --> 00:59:55,490 όλα μέσα είτε με ASCII ή μέσα στη βιβλιοθήκη μαθηματικά 1125 00:59:55,490 --> 00:59:57,350 ή εντός της βιβλιοθήκης χορδή. 1126 00:59:57,350 --> 01:00:00,290 Έτσι, αν εσείς χρησιμοποιείτε εκείνους λειτουργίες, να είναι προσεκτικοί για να θυμόμαστε 1127 01:00:00,290 --> 01:00:01,451 να περιλάβει την μπάλα. 1128 01:00:01,451 --> 01:00:03,950 Έτσι, ίσως, επίσης, κάτι που θέλετε να συμπεριλάβετε στο φύλλο σας, 1129 01:00:03,950 --> 01:00:04,892 ποια είναι η επικεφαλίδα; 1130 01:00:04,892 --> 01:00:06,600 Ποιες είναι οι βιβλιοθήκες έχετε χρησιμοποιήσει; 1131 01:00:06,600 --> 01:00:08,550 Ποιες λειτουργίες στο εσωτερικό αυτών των βιβλιοθηκών; 1132 01:00:08,550 --> 01:00:09,230 Είναι σημαντικό. 1133 01:00:09,230 --> 01:00:10,420 >> Ναι; 1134 01:00:10,420 --> 01:00:12,570 >> Κοινό: Θα μπορούσαμε απλά μπάτσος έξω και να κάνω hashtag 1135 01:00:12,570 --> 01:00:14,955 μέσω του απολύτως κάθε γράμμα έχουμε ποτέ 1136 01:00:14,955 --> 01:00:17,340 όπως φαίνεται σε όλες τις ερωτήσεις; 1137 01:00:17,340 --> 01:00:18,320 >> ΚΑΘΗΓΗΤΗΣ: Θα μπορούσε. 1138 01:00:18,320 --> 01:00:20,361 Δεν ξέρω πόσο ευτυχής θα πάμε να γίνει στο βαθμό 1139 01:00:20,361 --> 01:00:25,090 ότι κουίζ όταν κάθε κομμάτι του κώδικα είναι δύο φορές όσο χρειάζεται να είναι. 1140 01:00:25,090 --> 01:00:27,200 Δεν ξέρω, θα μπορούσαμε απογειωθεί ένα σημείο για το στυλ. 1141 01:00:27,200 --> 01:00:28,790 Αλλά θεωρητικά σας κώδικας θα ήταν σωστό. 1142 01:00:28,790 --> 01:00:30,915 Εσείς θα μπορούσε μπάτσος έξω και ακριβώς περιλαμβάνουν τα πάντα. 1143 01:00:30,915 --> 01:00:32,044 Αυτό είναι πάρα πολύ ωραία, ναι. 1144 01:00:32,044 --> 01:00:32,960 Κοινό: [δεν ακούγεται]. 1145 01:00:32,960 --> 01:00:33,270 ΚΑΘΗΓΗΤΗΣ: Ναι. 1146 01:00:33,270 --> 01:00:34,900 Θα πρότεινα να μην το κάνουμε αυτό όμως. 1147 01:00:34,900 --> 01:00:35,505 Ναι. 1148 01:00:35,505 --> 01:00:36,130 Κοινό: Cool. 1149 01:00:36,130 --> 01:00:36,620 ΚΑΘΗΓΗΤΗΣ: Καλή ερώτηση. 1150 01:00:36,620 --> 01:00:37,480 Κοινό: Έτσι, το χειρότερο σενάριο. 1151 01:00:37,480 --> 01:00:38,563 ΚΑΘΗΓΗΤΗΣ: Η χειρότερη περίπτωση. 1152 01:00:38,563 --> 01:00:40,350 Εάν ξεχάσετε εντελώς, θα μπορούσατε να το κάνετε αυτό. 1153 01:00:40,350 --> 01:00:40,850 Ναι. 1154 01:00:40,850 --> 01:00:43,870 1155 01:00:43,870 --> 01:00:45,400 >> Ναι, ο κωδικός είναι σωστό εκεί. 1156 01:00:45,400 --> 01:00:49,176 Θα χρησιμοποιηθεί αντί ν καταμέτρηση, αλλά, σας ξέρετε, ό, τι επιπλέει τη βάρκα σας. 1157 01:00:49,176 --> 01:00:51,092 Κοινό: Περιμένετε, έτσι ώστε να δεν θα πρέπει να hashtag 1158 01:00:51,092 --> 01:00:53,460 περιλαμβάνουν επειδή είμαστε ξεκινώντας από το int; 1159 01:00:53,460 --> 01:00:56,150 1160 01:00:56,150 --> 01:00:59,924 >> ΚΑΘΗΓΗΤΗΣ: Ναι, απλά υποτίθεται ότι μας ζητήθηκε να γράψω τη λειτουργία. 1161 01:00:59,924 --> 01:01:02,340 Αν ήθελε να είναι ασφαλής, μπορείτε πιθανώς θα μπορούσε να το βάλει εκεί. 1162 01:01:02,340 --> 01:01:05,650 Αλλά εγώ απλά δεν έκαναν τον κόπο, ναι. 1163 01:01:05,650 --> 01:01:09,919 >> Δεν ξέρω καν αν θα χρειάζεται καμία βιβλιοθήκη για αυτό. 1164 01:01:09,919 --> 01:01:12,710 Επειδή δεν είστε πραγματικά εκτύπωση τίποτα ή τίποτα, σωστά; 1165 01:01:12,710 --> 01:01:16,500 1166 01:01:16,500 --> 01:01:19,568 Ναι, δεν ξέρω αν θα πρέπει να έχετε μια βιβλιοθήκη. 1167 01:01:19,568 --> 01:01:22,400 >> ΕΝΤΆΞΕΙ. 1168 01:01:22,400 --> 01:01:26,020 Αυτό είναι επίσης λίγο περισσότερο μαζί οι γραμμές των πράξεων χειραγώγησης της μνήμης. 1169 01:01:26,020 --> 01:01:27,400 Αυτό το είδος είναι λίγο δύσκολο. 1170 01:01:27,400 --> 01:01:28,960 Σκεφτείτε για αυτό. 1171 01:01:28,960 --> 01:01:30,580 Έχετε μια λειτουργία που ονομάζεται func. 1172 01:01:30,580 --> 01:01:33,570 Θα μπορούσα να είχα ονομάσει όποια και αν είναι, αλλά επιλέγω να το όνομα func. 1173 01:01:33,570 --> 01:01:36,000 Το έχω πάνω από την κύρια μου. 1174 01:01:36,000 --> 01:01:39,790 Θυμηθείτε, θέλετε να έχετε μια λειτουργία μετά κύριας σας, 1175 01:01:39,790 --> 01:01:42,370 θέλετε να βεβαιωθείτε ότι έχετε περιλαμβάνουν το πρωτότυπο από την κορυφή. 1176 01:01:42,370 --> 01:01:45,750 >> Αλλά στην περίπτωση αυτή ήταν τόσο μικρή ότι ένιωσα ότι θα μπορούσα μόνο 1177 01:01:45,750 --> 01:01:47,260 συμπεριλάβετε στην κορυφή του κύριο. 1178 01:01:47,260 --> 01:01:51,170 Δεν χρειάζεται να έχετε το πρωτότυπο, επειδή έχει ήδη γράψει παραπάνω. 1179 01:01:51,170 --> 01:01:55,430 Έτσι, όλα τα κάνω στην κύρια λειτουργία μου δημιουργεί ακέραιος x ισούται με το 10. 1180 01:01:55,430 --> 01:02:00,490 Είμαι καλώντας τη λειτουργία func μου, και στη συνέχεια να εκτυπώσετε κάτι. 1181 01:02:00,490 --> 01:02:02,840 >> Και τότε αυτό είναι πράγματι τι λει κάνει. 1182 01:02:02,840 --> 01:02:04,340 Εσείς θέλετε να σκέφτονται μέσα από αυτό. 1183 01:02:04,340 --> 01:02:05,423 Επειδή είναι λίγο δύσκολο. 1184 01:02:05,423 --> 01:02:07,220 Είναι πολύ, πολύ δύσκολο, πραγματικά. 1185 01:02:07,220 --> 01:02:09,549 Σκεφτείτε μέσα από ό, τι αυτό το πρόγραμμα θα είναι αποτελεσμάτων. 1186 01:02:09,549 --> 01:02:10,840 Θα σας δώσω τα παιδιά δύο λεπτά. 1187 01:02:10,840 --> 01:03:36,660 1188 01:03:36,660 --> 01:03:37,891 >> Καλή συζητήσεις; 1189 01:03:37,891 --> 01:03:38,853 >> Κοινό: Ναι. 1190 01:03:38,853 --> 01:03:39,815 >> ΚΑΘΗΓΗΤΗΣ: Ναι. 1191 01:03:39,815 --> 01:03:42,220 Εντάξει, έτσι αυτό είναι δύσκολο για έναν λόγο. 1192 01:03:42,220 --> 01:03:44,845 Και αυτός είναι ο λόγος που ήθελα να φέρω αυτό την προσοχή όλων. 1193 01:03:44,845 --> 01:03:47,870 1194 01:03:47,870 --> 01:03:51,147 Θέλει κανείς να μου δώσει μια πρόταση, μια προσπάθεια; 1195 01:03:51,147 --> 01:03:52,230 Τι θα ήταν αυτό να εκτυπώσετε; 1196 01:03:52,230 --> 01:03:53,930 Εντελώς καλά αν κάνεις λάθος. 1197 01:03:53,930 --> 01:03:55,619 Ναι; 1198 01:03:55,619 --> 01:03:59,483 >> Κοινό: Νομίζω ότι είναι 100 και Στη συνέχεια 10 σε δύο ξεχωριστές γραμμές. 1199 01:03:59,483 --> 01:04:00,940 >> ΚΑΘΗΓΗΤΗΣ: Και ένα 10; 1200 01:04:00,940 --> 01:04:03,154 Υπάρχει κάποιος που έχει οποιεσδήποτε άλλες εικασίες; 1201 01:04:03,154 --> 01:04:04,150 Ναι; 1202 01:04:04,150 --> 01:04:09,040 >> Κοινό: Ίσως επειδή μόλις 10 func δεν επιστρέφει τίποτα; 1203 01:04:09,040 --> 01:04:11,610 >> ΚΑΘΗΓΗΤΗΣ: Εντάξει, έτσι ώστε να το νούμερο ένα εικασία 1204 01:04:11,610 --> 01:04:14,990 είναι ότι ο αριθμός εικασία δύο είναι ακριβώς πρόκειται να εκτυπώσετε 10. 1205 01:04:14,990 --> 01:04:17,623 Υπάρχει κάποιος που έχει οποιεσδήποτε άλλες εικασίες; 1206 01:04:17,623 --> 01:04:19,654 ΕΝΤΆΞΕΙ. 1207 01:04:19,654 --> 01:04:21,070 Ας περπατήσει μέσα από αυτό, έτσι δεν είναι; 1208 01:04:21,070 --> 01:04:23,903 Κάθε φορά που παίρνετε ένα κομμάτι του κώδικα, Δεν ασχολούμαστε μόνο με αυτό και να είναι όπως, 1209 01:04:23,903 --> 01:04:25,060 Αχ, αυτό είναι τόσα πράγματα! 1210 01:04:25,060 --> 01:04:26,460 Είμαι τόσο συγκεχυμένη! 1211 01:04:26,460 --> 01:04:28,220 Όπως, ηρεμήστε κάτω. 1212 01:04:28,220 --> 01:04:31,602 Απλά ξέρω ότι θα μπορούσατε απλά κοιτάξετε μέσα από γραμμή κώδικα από τη γραμμή. 1213 01:04:31,602 --> 01:04:32,310 Αυτό είναι όλο αυτό είναι. 1214 01:04:32,310 --> 01:04:33,840 Είναι σαν να διαβάζει ένα βιβλίο. 1215 01:04:33,840 --> 01:04:38,000 >> Έτσι, με κάθε λειτουργία, πάντα ξεκινάμε στο κεντρικό. 1216 01:04:38,000 --> 01:04:40,860 Έτσι θα πάμε να ξεκινούν από int main άκυρη, 1217 01:04:40,860 --> 01:04:43,010 ακόμη και το πρόγραμμα του ήδη τρέχει προς τα κάτω, έτσι δεν είναι; 1218 01:04:43,010 --> 01:04:45,070 Ξεκινήστε στην κύρια άκυρη. 1219 01:04:45,070 --> 01:04:48,030 Int x ισούται με το 10. 1220 01:04:48,030 --> 01:04:50,400 >> Έτσι, Πάω να σβήσετε αυτό. 1221 01:04:50,400 --> 01:04:55,179 1222 01:04:55,179 --> 01:04:58,470 Πάω να επιστήσει την μνήμη ακριβώς έτσι παιδιά μπορεί να το είδος του να δούμε τι συμβαίνει. 1223 01:04:58,470 --> 01:05:02,190 >> Θυμηθείτε εδώ κάτω έχουμε στοίβα μας; 1224 01:05:02,190 --> 01:05:05,810 Μέχρι εδώ έχουμε μας σωρός κάπου εδώ. 1225 01:05:05,810 --> 01:05:07,470 Στοίβα μεγαλώνει, έτσι δεν είναι; 1226 01:05:07,470 --> 01:05:10,150 Και μέσα στη στοίβα, έχετε το φις λειτουργεί τόσο καλά όσο 1227 01:05:10,150 --> 01:05:12,230 όλες τις τοπικές μεταβλητές δικτύου. 1228 01:05:12,230 --> 01:05:14,310 >> Μέχρι εδώ, int x είναι ίσο με 10. 1229 01:05:14,310 --> 01:05:17,670 Εντός κύρια λειτουργία μας είμαστε δημιουργώντας μια μεταβλητή που ονομάζεται Χ. 1230 01:05:17,670 --> 01:05:20,590 Είμαστε ρύθμιση που ισούται με 10. 1231 01:05:20,590 --> 01:05:24,200 Εδώ έχετε κάποια x, και είστε ρύθμιση που ισούται με 10, δεξιά, 1232 01:05:24,200 --> 01:05:25,400 κατά κύριο. 1233 01:05:25,400 --> 01:05:27,430 Όλοι καλό; 1234 01:05:27,430 --> 01:05:28,070 >> Λειτουργία. 1235 01:05:28,070 --> 01:05:30,330 Έτσι τώρα, μέσα στους βασικούς μας λειτουργία, είμαστε καλώντας 1236 01:05:30,330 --> 01:05:31,810 η λειτουργία γράψαμε παραπάνω. 1237 01:05:31,810 --> 01:05:34,550 Έτσι είμαστε τώρα αρχίζει η δεύτερη λειτουργία. 1238 01:05:34,550 --> 01:05:40,120 Εμείς πάμε για να δημιουργήσετε ένα άλλο μεταβλητή int x ισούται με 100. 1239 01:05:40,120 --> 01:05:42,410 Τι συμβαίνει εδώ στην καπνοδόχο; 1240 01:05:42,410 --> 01:05:46,980 Τι συμβαίνει όταν καλείτε μια συνάρτηση που δημιουργεί νέες μεταβλητές; 1241 01:05:46,980 --> 01:05:50,038 Αυτό που συμβαίνει εδώ στην καπνοδόχο; 1242 01:05:50,038 --> 01:05:52,134 >> Κοινό: [δεν ακούγεται] σωρούς στην κορυφή; 1243 01:05:52,134 --> 01:05:52,800 ΚΑΘΗΓΗΤΗΣ: Ναι. 1244 01:05:52,800 --> 01:05:54,050 Γι 'αυτό στην πραγματικότητα δημιουργεί ένα αντίγραφο. 1245 01:05:54,050 --> 01:05:56,560 1246 01:05:56,560 --> 01:05:57,740 Και αυτό το είδος των πασσάλων στην κορυφή. 1247 01:05:57,740 --> 01:06:00,700 Σκεφτείτε το stack-- μια στοίβα βιβλίων, μια στοίβα από τίποτα. 1248 01:06:00,700 --> 01:06:06,520 Σωροί στην κορυφή, για πρώτη φορά στην τελευταία έξω, τελευταία in, first out. 1249 01:06:06,520 --> 01:06:08,471 >> Έτσι, πρόκειται για τη δημιουργία ενός χ εδώ. 1250 01:06:08,471 --> 01:06:12,080 1251 01:06:12,080 --> 01:06:14,450 >> Αυτό πρόκειται να έχουν Όλα τα funcs μεταβλητές. 1252 01:06:14,450 --> 01:06:14,950 Εξαιρετική. 1253 01:06:14,950 --> 01:06:20,980 Έτσι τώρα έχουμε δύο διαφορετικές χ ότι αποτελούν δύο πολύ διαφορετικά πράγματα. 1254 01:06:20,980 --> 01:06:24,470 Στη συνέχεια, θα πάμε για να εκτυπώσετε έξω από το ακέραιο του x. 1255 01:06:24,470 --> 01:06:26,430 Ας εκτυπώσετε 100, σωστά; 1256 01:06:26,430 --> 01:06:29,389 Επειδή εδώ είναι 100. 1257 01:06:29,389 --> 01:06:31,680 Έτσι, αυτό είναι το πρώτο πράγμα που ότι πρόκειται να εκτυπώσετε. 1258 01:06:31,680 --> 01:06:35,710 Δεδομένου ότι αυτή η λειτουργία επιστρέφει τίποτα, τώρα που η λειτουργία, η γραμμή στην κύρια 1259 01:06:35,710 --> 01:06:37,070 Εγινε. 1260 01:06:37,070 --> 01:06:39,160 Όλοι καλή μαζί μου μέχρι τώρα; 1261 01:06:39,160 --> 01:06:43,034 >> Έτσι είμαστε τώρα μέσα από δύο από τις τρεις γραμμές κύρια λειτουργία μας. 1262 01:06:43,034 --> 01:06:44,450 Τώρα θα πάμε στην τρίτη γραμμή. 1263 01:06:44,450 --> 01:06:46,350 Εμείς πάμε για να printf. 1264 01:06:46,350 --> 01:06:48,222 Τι είναι αυτό το x στο κύριο; 1265 01:06:48,222 --> 01:06:49,263 Τι σημαίνει αυτό αντιπροσωπεύει; 1266 01:06:49,263 --> 01:06:52,720 1267 01:06:52,720 --> 01:06:54,280 >> Ποια είναι η τιμή χ τώρα; 1268 01:06:54,280 --> 01:06:55,220 >> Κοινό: 100. 1269 01:06:55,220 --> 01:06:56,799 >> ΚΑΘΗΓΗΤΗΣ: Είναι το 100; 1270 01:06:56,799 --> 01:06:57,590 Κοινό: Ακόμα 10. 1271 01:06:57,590 --> 01:06:58,878 ΚΑΘΗΓΗΤΗΣ: Ακόμα 10. 1272 01:06:58,878 --> 01:07:00,870 Ναι. 1273 01:07:00,870 --> 01:07:06,810 Επειδή θυμηθείτε, εντός λει μας, το x ισούται με 100. 1274 01:07:06,810 --> 01:07:09,690 Αλλά αν έχουμε επιστρέψει πίσω με το κύριο έργο μας, 1275 01:07:09,690 --> 01:07:12,440 ότι μεταβλητή αποθηκεύεται σε μια διαφορετική θέση στην στοίβα μας. 1276 01:07:12,440 --> 01:07:16,250 >> Έτσι τώρα πρέπει να πάμε πίσω στο κύρια στοίβα, κεντρικό τροφοδοτικό τοπικές μεταβλητές. 1277 01:07:16,250 --> 01:07:18,460 Και εδώ το x είναι ίσο με 10. 1278 01:07:18,460 --> 01:07:20,300 Και έτσι θα πάμε για να εκτυπώσετε 10. 1279 01:07:20,300 --> 01:07:22,530 >> Έτσι, η ίδια είχε απόλυτο δίκιο. 1280 01:07:22,530 --> 01:07:25,053 Εμείς πάμε για να έχουν το εξόδου 100 και 10. 1281 01:07:25,053 --> 01:07:25,553 Ναι; 1282 01:07:25,553 --> 01:07:28,700 Κοινό: Όταν malloc, είναι η σωρό ή στοίβα που είναι [δεν ακούγεται]; 1283 01:07:28,700 --> 01:07:31,950 ΚΑΘΗΓΗΤΗΣ: Όταν malloc, παίρνετε μνήμης από το σωρό 1284 01:07:31,950 --> 01:07:32,830 και την κατανομή. 1285 01:07:32,830 --> 01:07:34,950 Έτσι ώστε να μην χρειάζεται να το χάος με οποιαδήποτε από αυτό. 1286 01:07:34,950 --> 01:07:38,100 Έτσι υποθέτω ότι το μεγαλύτερο πακέτο Εδώ είναι κάτι που ονομάζεται πεδίο. 1287 01:07:38,100 --> 01:07:39,650 >> Για όσους από εσάς ήταν σε η συνεδρίαση επανεξέτασης χθες το βράδυ, 1288 01:07:39,650 --> 01:07:41,080 μιλήσαμε για λίγο για αυτό. 1289 01:07:41,080 --> 01:07:45,380 Πεδίο εφαρμογής καθορίζει τον τρόπο και όταν υπάρχουν μεταβλητές σας. 1290 01:07:45,380 --> 01:07:48,050 Ή μέσα σε ό, τι Πλαίσια όντως υπάρχουν μεταβλητές σας. 1291 01:07:48,050 --> 01:07:51,690 >> Λίγο πολύ ο κανόνας γενικά Είναι, variables-- σας, εάν τα δημιουργήσετε 1292 01:07:51,690 --> 01:07:56,660 μέσα σγουρά braces-- υπάρχουν μόνο μέσα σε αυτά τα άγκιστρα. 1293 01:07:56,660 --> 01:08:00,312 >> Έτσι, για παράδειγμα σε συνάρτηση με μας λει, μπορείτε να δείτε αυτά τα δύο στηρίγματα. 1294 01:08:00,312 --> 01:08:02,020 Αν είστε δημιουργία τίποτα στο εσωτερικό του, 1295 01:08:02,020 --> 01:08:06,500 οι πιθανότητες είναι το μόνο που κάνουμε είναι δημιουργώντας μια στοίβα και την αποθήκευση ώστε εκεί. 1296 01:08:06,500 --> 01:08:07,430 Το ίδιο πράγμα σε κύρια. 1297 01:08:07,430 --> 01:08:09,950 Αυτό είναι ακριβώς που αποθηκεύονται στο εσωτερικό της κύριας. 1298 01:08:09,950 --> 01:08:13,560 >> Επίσης, θέλετε να είστε πολύ, πολύ προσεκτικοί εδώ. 1299 01:08:13,560 --> 01:08:18,310 Επειδή το πεδίο εφαρμογής προσφέρεται επίσης η ίδια σε διαφορετικές παραδείγματα. 1300 01:08:18,310 --> 01:08:25,950 Έτσι, για παράδειγμα, ένα για βρόχου, για int i ισούται με 0. 1301 01:08:25,950 --> 01:08:28,460 Θα είναι λιγότερο από ό, τι, δεν ξέρω, 10. 1302 01:08:28,460 --> 01:08:32,111 Ι συν συν. 1303 01:08:32,111 --> 01:08:34,560 Και έχεις κώδικα μέσα από αυτό, σωστά; 1304 01:08:34,560 --> 01:08:38,830 >> Πού αυτή η μεταβλητή, Εγώ, στην πραγματικότητα υπάρχουν μόνο; 1305 01:08:38,830 --> 01:08:40,510 Μόνο μέσα σας για το βρόχο. 1306 01:08:40,510 --> 01:08:43,640 Έτσι Σίγουρα πολλοί από εσάς έχετε παιδιά αντιμετωπίσει κατά πάσα πιθανότητα αυτό το σφάλμα όταν 1307 01:08:43,640 --> 01:08:45,930 κάνετε προγράμματα στο psets σας. 1308 01:08:45,930 --> 01:08:49,990 Πόσοι από σας έχουν προσπαθήσει να χρησιμοποιήσουν i έξω από το βρόχο for και είχε σφάλμα; 1309 01:08:49,990 --> 01:08:53,310 Όπως ένα unreferenced ακέραιοι ή κατι τετοιο? 1310 01:08:53,310 --> 01:08:56,069 >> Ο λόγος για τον οποίο συμβαίνει αυτό είναι εδώ επειδή είστε 1311 01:08:56,069 --> 01:08:59,109 δημιουργώντας κάτι που μόνο υπάρχει μέσα σας για το βρόχο. 1312 01:08:59,109 --> 01:09:01,972 Και αν προσπαθήσετε να το χρησιμοποιήσετε, εγώ δεν στην πραγματικότητα υπάρχει έξω από αυτό. 1313 01:09:01,972 --> 01:09:04,930 Έτσι, βασικά ένας υπολογιστής λέει, εγώ Δεν ξέρω τι είστε μιλάμε. 1314 01:09:04,930 --> 01:09:08,689 Το μόνο που ξέρω είναι ότι ήμουν εδώ, αλλά τώρα πια. 1315 01:09:08,689 --> 01:09:12,580 >> Έτσι, αν ήμουν στη θέση να δημιουργήσει ένα για το βρόχο μέσα, σωστά; 1316 01:09:12,580 --> 01:09:19,080 Και Πάω να δημιουργήσει ένα άλλο, όπως int j, και να το κάνουμε οτιδήποτε. 1317 01:09:19,080 --> 01:09:23,689 Και έχετε κωδικό στο εσωτερικό της ότι βρόχου, j υπάρχει μόνο εδώ. 1318 01:09:23,689 --> 01:09:26,029 Αλλά αυτό υπάρχει επίσης στο i. 1319 01:09:26,029 --> 01:09:29,310 Και έτσι υπάρχει μόνο j στο πλαίσιο αυτό για το βρόχο, 1320 01:09:29,310 --> 01:09:33,850 ενώ εγώ υπάρχει στο όλο θέμα. 1321 01:09:33,850 --> 01:09:34,500 >> Όλοι σαφής; 1322 01:09:34,500 --> 01:09:37,416 Το ίδιο πράγμα με όρους δηλώσεις εάν θέλετε να δημιουργήσετε τίποτα. 1323 01:09:37,416 --> 01:09:40,390 Το ίδιο πράγμα με θηλιές ενώ αν θέλετε να δημιουργήσετε τίποτα. 1324 01:09:40,390 --> 01:09:42,390 Αυτό είναι κάτι που πρέπει να πολύ, πολύ προσεκτικοί σχετικά. 1325 01:09:42,390 --> 01:09:45,681 Έτσι, αυτό ήταν ένα πραγματικά καλό στο πρόβλημα αίσθηση ότι απέδειξε δύο πράγματα. 1326 01:09:45,681 --> 01:09:47,160 Κατέδειξε την πρώτη, το πεδίο εφαρμογής. 1327 01:09:47,160 --> 01:09:49,550 Και αυτό αποδεικνύεται Επίσης κατανομή μνήμης. 1328 01:09:49,550 --> 01:09:54,130 Επειδή εσείς πρέπει να γνωρίζετε ότι λειτουργίες αναπτύσσονται προς τα πάνω στη στοίβα. 1329 01:09:54,130 --> 01:09:56,710 Και αυτό, όταν σας καλούν λειτουργίες, είστε δημιουργία 1330 01:09:56,710 --> 01:09:59,060 ουσιαστικά μια νέα στοίβα μνήμης. 1331 01:09:59,060 --> 01:10:02,100 Αυτό είναι πολύ διαφορετικό από το τι μνήμη σας δίκτυο είναι. 1332 01:10:02,100 --> 01:10:03,300 Ναι. 1333 01:10:03,300 --> 01:10:03,800 Μπά! 1334 01:10:03,800 --> 01:10:05,470 Όλοι ΟΚ για αυτό; 1335 01:10:05,470 --> 01:10:06,750 Αυτό ήταν συγκεχυμένες. 1336 01:10:06,750 --> 01:10:09,380 Πολύ καλή θέματα για να πάει πάνω, γιατί είστε πιθανώς 1337 01:10:09,380 --> 01:10:12,255 πρόκειται να πάρει κάποιες δύσκολες τα πράγματα όπως ότι για το κουίζ. 1338 01:10:12,255 --> 01:10:13,350 Ναι. 1339 01:10:13,350 --> 01:10:13,850 Δροσερός. 1340 01:10:13,850 --> 01:10:16,014 1341 01:10:16,014 --> 01:10:18,430 Θα βάλω να πάρετε 100 σε ένα γραμμή και στη συνέχεια 10 από την άλλη. 1342 01:10:18,430 --> 01:10:21,468 Ναι, πολύ καλά. 1343 01:10:21,468 --> 01:10:26,350 >> Εντάξει, τώρα εσείς θα πάρετε η ευκαιρία να είναι οι τεχνικοί βοηθοί. 1344 01:10:26,350 --> 01:10:30,600 Μπορείτε να πάρετε για να απαντήσει σε όλες τις όμορφες μηνύματα που έχω πάρει πολλές φορές. 1345 01:10:30,600 --> 01:10:34,290 >> Έτσι, Αγαπητοί Andi, βλέπω ότι κάτι είναι πηγαίνει στραβά με compiler μου. 1346 01:10:34,290 --> 01:10:37,910 Είμαι βέβαιος ότι ο κωδικός μου είναι σωστή, αλλά Παίρνω ένα σφάλμα κατάτμησης 1347 01:10:37,910 --> 01:10:39,074 κάθε φορά που τρέχει. 1348 01:10:39,074 --> 01:10:39,740 Τι συμβαίνει? 1349 01:10:39,740 --> 01:10:42,844 Παρακαλώ βοηθήστε, πολλή αγάπη. 1350 01:10:42,844 --> 01:10:45,740 1351 01:10:45,740 --> 01:10:49,410 >> Αν εσείς πήρε κάτι σαν ότι το πώς θα απαντούσατε; 1352 01:10:49,410 --> 01:10:51,860 Αυτά είναι πραγματικά πολύ συχνές ερωτήσεις που θα σας ζητήσουμε. 1353 01:10:51,860 --> 01:10:54,090 Είναι εάν, εμείς θα σας δώσουμε μια το σενάριο, θα μας δώσει 1354 01:10:54,090 --> 01:10:56,350 καλύτερη εικασία σας σε ό, τι συμβαίνει. 1355 01:10:56,350 --> 01:11:00,710 Όποιος έχει μια μαχαιριά στο τι συμβαίνει; 1356 01:11:00,710 --> 01:11:02,654 Ναι; 1357 01:11:02,654 --> 01:11:06,056 >> Κοινό: Ίσως αναχθούν η null, κάτι σαν τον δείκτη 1358 01:11:06,056 --> 01:11:08,924 είναι στραμμένη σε κάτι μηδενική. 1359 01:11:08,924 --> 01:11:11,590 ΚΑΘΗΓΗΤΗΣ: Ναι, αυτό θα ήταν μια παράδειγμα, όταν αυτό θα συμβεί. 1360 01:11:11,590 --> 01:11:14,467 Αλλά ποια είναι η μεγαλύτερη εικόνα του τι συμβαίνει εδώ; 1361 01:11:14,467 --> 01:11:17,050 Κοινό: είναι αυτό που προσπαθείτε να προσπελάσει μνήμη που δεν είστε 1362 01:11:17,050 --> 01:11:18,175 έπρεπε να έχουν πρόσβαση; 1363 01:11:18,175 --> 01:11:19,200 ΚΑΘΗΓΗΤΗΣ: Ακριβώς. 1364 01:11:19,200 --> 01:11:24,800 Έτσι, σκεφτείτε ένα σφάλμα SEG, μια off ορίων, περιορισμένη περιοχή στη μνήμη 1365 01:11:24,800 --> 01:11:27,780 ότι δεν θα πρέπει να είναι συγκινητικό. 1366 01:11:27,780 --> 01:11:31,670 >> Έτσι, λίγο πολύ, όταν προσπαθείτε να index-- όπως, για παράδειγμα, 1367 01:11:31,670 --> 01:11:34,110 έχετε δηλώσει μια σειρά από μηδέν έως εννέα. 1368 01:11:34,110 --> 01:11:37,360 Αλλά θα προσπαθήσουμε να αγγίξει αυτό το 10ο τιμή, δεν έχετε πρόσβαση σε αυτό. 1369 01:11:37,360 --> 01:11:38,694 Επειδή δεν έχετε δήλωσε. 1370 01:11:38,694 --> 01:11:40,943 Και έτσι ο υπολογιστής σας πρόκειται για να δούμε ότι είναι όπως, 1371 01:11:40,943 --> 01:11:43,440 Ωχ, προσπαθείτε να πάτε έξω από τα όρια ενός δείκτη. 1372 01:11:43,440 --> 01:11:45,270 Πάω να σας δώσω ένα σφάλμα κατάτμησης. 1373 01:11:45,270 --> 01:11:46,590 >> Σκεφτείτε σαν τμήμα, σωστά; 1374 01:11:46,590 --> 01:11:49,665 Ένα επιπλέον τμήμα, το σφάλμα είναι όταν προσπαθείτε να παραβιάσετε κάτι 1375 01:11:49,665 --> 01:11:50,790 και δεν πρέπει να υπάρχει. 1376 01:11:50,790 --> 01:11:53,660 Κατάτμηση σφάλμα είναι ανά πάσα στιγμή θα προσπαθήσουμε να αγγίξει τα πράγματα 1377 01:11:53,660 --> 01:11:54,970 ότι δεν θα πρέπει να είναι συγκινητικό. 1378 01:11:54,970 --> 01:11:56,815 >> Έτσι κοινά παραδείγματα είναι ένας δείκτης. 1379 01:11:56,815 --> 01:11:58,940 Φυσικά, αν προσπαθείτε να αγγίξει ότι ήταν μηδενική, 1380 01:11:58,940 --> 01:12:00,220 ότι θα ήταν επίσης λειτουργεί τόσο καλά. 1381 01:12:00,220 --> 01:12:02,300 Εάν ο δείκτης σας προσπαθεί να αγγίξτε τα πράγματα που δεν πρέπει να αγγίξει, 1382 01:12:02,300 --> 01:12:03,730 ότι θα μπορούσε επίσης να λειτουργεί τόσο καλά. 1383 01:12:03,730 --> 01:12:07,120 Οι περισσότεροι συνήθως εσείς θα δείτε αυτό σε μια σειρά. 1384 01:12:07,120 --> 01:12:07,740 Όλοι καλό; 1385 01:12:07,740 --> 01:12:10,374 >> Κοινό: Έτσι, εάν θέλετε για να αποκτήσετε πρόσβαση στο 10ο σημείο 1386 01:12:10,374 --> 01:12:12,290 και υπάρχει μόνο ένα όριο εννέα ή κάτι τέτοιο. 1387 01:12:12,290 --> 01:12:13,160 >> ΚΑΘΗΓΗΤΗΣ: Ναι, ακριβώς. 1388 01:12:13,160 --> 01:12:13,660 Λίγο πολύ. 1389 01:12:13,660 --> 01:12:15,930 1390 01:12:15,930 --> 01:12:16,430 Δροσερός. 1391 01:12:16,430 --> 01:12:19,070 1392 01:12:19,070 --> 01:12:19,920 >> Αγαπητέ Andi. 1393 01:12:19,920 --> 01:12:23,440 Έτσι έχουμε αυτά τα υπέροχα πράγματα που ονομάζεται είδη. 1394 01:12:23,440 --> 01:12:25,472 Αν Συγχώνευση sort-- όπως πριόνι στο παράδειγμα όταν 1395 01:12:25,472 --> 01:12:27,180 Ο David έκανε την όλη πράγμα class-- γιατί, 1396 01:12:27,180 --> 01:12:29,760 αν είναι τόσο πολύ πιο γρήγορα από ό, τι οποιοδήποτε από τα άλλα είδη, 1397 01:12:29,760 --> 01:12:33,310 γιατί ενοχλεί ακόμα και γνωρίζοντας οποιοδήποτε από τα άλλα είδη; 1398 01:12:33,310 --> 01:12:35,100 >> Τι είναι αυτό το θέμα πραγματικά ζητώντας σας; 1399 01:12:35,100 --> 01:12:36,659 Ποια είναι τα τρία word-- 1400 01:12:36,659 --> 01:12:37,950 Κοινό: Ποιο είναι το trade-off; 1401 01:12:37,950 --> 01:12:38,530 ΚΑΘΗΓΗΤΗΣ: Ακριβώς. 1402 01:12:38,530 --> 01:12:39,946 Γι 'αυτό το ερώτημα ζητάει. 1403 01:12:39,946 --> 01:12:43,682 Ποιο είναι το trade-off μεταξύ Συγχώνευση είδος στίχους οποιεσδήποτε άλλες; 1404 01:12:43,682 --> 01:12:45,850 >> ΚΟΙΝΟ: Παίρνει τη μνήμη, έτσι δεν είναι; 1405 01:12:45,850 --> 01:12:47,720 >> ΚΑΘΗΓΗΤΗΣ: Σας εξηγούν ότι λίγο περισσότερο; 1406 01:12:47,720 --> 01:12:49,490 Κατ 'αρχάς ας εξηγήσουμε κατάστημα Συγχώνευση. 1407 01:12:49,490 --> 01:12:50,970 Πώς ταξινόμηση με συγχώνευση λειτουργεί; 1408 01:12:50,970 --> 01:12:55,220 >> Κοινό: Έτσι λειτουργεί με διαιρώντας τα πάντα σε μισό 1409 01:12:55,220 --> 01:13:00,660 και στη συνέχεια βάζοντας μαζί και την ανακατανομή αυτό, ούτως ώστε, 1410 01:13:00,660 --> 01:13:02,862 όπως και κάθε φορά που θα συγχωνεύσει τις ομάδες. 1411 01:13:02,862 --> 01:13:03,820 ΚΑΘΗΓΗΤΗΣ: Λίγο πολύ. 1412 01:13:03,820 --> 01:13:06,861 Έτσι μπορώ να βγάλω αυτό έξω, αλλά θα πάρτε πέντε λεπτά για να το σύρει έξω. 1413 01:13:06,861 --> 01:13:10,220 Κοίτα πίσω στα διαφάνειες ενότητα όπου θα καλύπτονται ταξινόμηση με συγχώνευση. 1414 01:13:10,220 --> 01:13:10,790 Ακριβώς. 1415 01:13:10,790 --> 01:13:13,406 >> Έτσι ο τρόπος συγχώνευσης έργων είδος είναι χωρίζει τα πράγματα κατά το ήμισυ, 1416 01:13:13,406 --> 01:13:15,780 και στη συνέχεια να κοιτάζει απλά η πρώτες τιμές όλων αυτών των 1417 01:13:15,780 --> 01:13:17,000 ταξινομεί και μόνο αυτό. 1418 01:13:17,000 --> 01:13:20,364 Συνεχώς δημιουργεί νέες συστοιχίες και βάζει τα πράγματα όλο και περισσότερο στην τάξη. 1419 01:13:20,364 --> 01:13:23,030 Και έτσι ενώ αυτό είναι πραγματικά, πραγματικά γρήγορα γιατί it's-- ξέρετε, 1420 01:13:23,030 --> 01:13:25,380 μια δυαδική αναζήτηση είναι n log n. 1421 01:13:25,380 --> 01:13:27,880 Είσαι δημιουργώντας έτσι πολλά διαφορετικές σειρές που είστε 1422 01:13:27,880 --> 01:13:29,700 χρησιμοποιώντας ένα τεράστιο ποσό της μνήμης. 1423 01:13:29,700 --> 01:13:33,080 Και έτσι, ενώ είναι πιο γρήγορα, το εμπόριο off εδώ είναι ότι χρησιμοποιείτε περισσότερη μνήμη. 1424 01:13:33,080 --> 01:13:38,490 >> Και έτσι, υπαινιγμός, ταξινομεί και αναζητήσεις καλύφθηκαν πολύ περισσότερο φέτος 1425 01:13:38,490 --> 01:13:41,610 από ό, τι ήταν στην προηγούμενη χρόνια. 1426 01:13:41,610 --> 01:13:45,100 Εσείς πρέπει να δείτε ότι αντικατοπτρίζεται αναλόγως στο κουίζ. 1427 01:13:45,100 --> 01:13:49,160 Θα περάσουν σίγουρα χρόνο πηγαίνοντας πάνω από ό, τι όλα τα διαφορετικά είδη 1428 01:13:49,160 --> 01:13:52,320 είναι, πώς δυαδική αναζήτηση, πώς λειτουργεί η αναζήτηση γραμμική. 1429 01:13:52,320 --> 01:13:54,750 Πώς να ίσως ψευδοκώδικα κωδικοποιήσει τα έξω. 1430 01:13:54,750 --> 01:13:55,950 Ποιες είναι οι ώρες τρέχουν; 1431 01:13:55,950 --> 01:13:59,210 Κάτι σαν φορές το τρέξιμο είναι πολύ εύκολο να αντιγράψετε τα κάτω σε ένα φύλλο σημείωμα, 1432 01:13:59,210 --> 01:13:59,710 δικαίωμα? 1433 01:13:59,710 --> 01:14:01,420 >> Είναι πραγματικά δύσκολο όταν είσαι στη μέση η δοκιμή 1434 01:14:01,420 --> 01:14:02,390 και θα πρέπει να καταλάβω. 1435 01:14:02,390 --> 01:14:03,160 Αντιγράψτε το προς τα κάτω. 1436 01:14:03,160 --> 01:14:05,550 Σας εγγυώμαι είστε Θα πρέπει να γνωρίζετε ότι. 1437 01:14:05,550 --> 01:14:06,860 Ποιες είναι οι συμβιβασμοί; 1438 01:14:06,860 --> 01:14:10,064 Στη χειρότερη περίπτωση, καλύτερα σενάρια για όλα αυτά, είναι πολύ να γνωρίσουμε. 1439 01:14:10,064 --> 01:14:10,564 Ναι; 1440 01:14:10,564 --> 01:14:12,730 >> Κοινό: Μήπως θα πρέπει να γνωρίζουν πώς να κώδικα ταξινόμηση με συγχώνευση; 1441 01:14:12,730 --> 01:14:15,470 Όπως, χρειαζόμαστε να θυμηθείτε την αναδρομική; 1442 01:14:15,470 --> 01:14:18,950 >> ΚΑΘΗΓΗΤΗΣ: Αμφιβάλλω πολύ, απλά γιατί είναι σαν αρκετά περίπλοκη. 1443 01:14:18,950 --> 01:14:22,282 Αλλά δεν μπορεί να είναι ανέφικτη αν Σας ζητώ να χρησιμοποιήσετε ψευδοκώδικας έξω. 1444 01:14:22,282 --> 01:14:22,781 Ναι. 1445 01:14:22,781 --> 01:14:25,470 1446 01:14:25,470 --> 01:14:29,170 >> Ναι, εντάξει, ένα περισσότερο. 1447 01:14:29,170 --> 01:14:31,387 Αυτό μπορεί να καταλήξει σε Σας τελευταίο κομμάτι σε κομμάτι. 1448 01:14:31,387 --> 01:14:42,101 1449 01:14:42,101 --> 01:14:43,090 Ναι; 1450 01:14:43,090 --> 01:14:44,930 Μήπως όλοι ακούσει αυτό; 1451 01:14:44,930 --> 01:14:48,360 >> Εντάξει, οπότε λίγο πολύ πρώτα όλα, το είδος του προγράμματος 1452 01:14:48,360 --> 01:14:51,000 θα σας δίνει μια έξοδο όπως αυτό; 1453 01:14:51,000 --> 01:14:54,350 Να θυμάστε σας ζητήσαμε να μάθετε Αυτός ο νέος τύπος του εργαλείου εντοπισμού σφαλμάτων; 1454 01:14:54,350 --> 01:14:57,340 Ποιο ήταν το όνομά του; 1455 01:14:57,340 --> 01:14:59,460 Valgrind, δεξιά 1456 01:14:59,460 --> 01:15:02,600 >> Ήταν ένα πρόγραμμα, όπου μπορείτε να καλέσετε που θα μπορούσε να 1457 01:15:02,600 --> 01:15:05,940 να παρακολουθείτε όλα τη μνήμη είστε χρησιμοποιώντας στο πρόγραμμά σας και να συνέβαινε. 1458 01:15:05,940 --> 01:15:11,090 Έτσι, αν έχετε κάτι, όπως, χαθεί οριστικά, 40 bytes σε ένα μπλοκ. 1459 01:15:11,090 --> 01:15:14,870 Μάλλον δεν είστε να θυμόμαστε για να το απελευθερώσετε. 1460 01:15:14,870 --> 01:15:18,710 Διότι, αν είστε με τη χρήση bytes της μνήμης, αυτό σημαίνει ότι έχετε πρόσβαση ότι η μνήμη, 1461 01:15:18,710 --> 01:15:20,240 αλλά δεν ήταν σε θέση να ελευθερώσετε. 1462 01:15:20,240 --> 01:15:21,948 Έτσι θέλετε να κάνετε βεβαιωθείτε ότι είστε επίσης 1463 01:15:21,948 --> 01:15:31,420 χρησιμοποιώντας free-- αυτό είναι ένα function-- να ελευθερώσει όλους 1464 01:15:31,420 --> 01:15:34,930 της μνήμης ανακατανεμηθεί από malloc. 1465 01:15:34,930 --> 01:15:35,500 >> Δροσερός. 1466 01:15:35,500 --> 01:15:37,140 Έτσι αυτή τη διαφάνεια, θα έχω επάνω. 1467 01:15:37,140 --> 01:15:41,050 Είναι παντού σε πολλές , σε πολλές διαφάνειες διαλέξεων τμήματος. 1468 01:15:41,050 --> 01:15:44,254 Είστε σίγουροι ότι θέλετε να είστε σίγουροι ξέρετε ακριβώς όλα αυτά. 1469 01:15:44,254 --> 01:15:47,170 Είτε στο φύλλο σημείωσή σας ή αν έχετε θέλετε να το απομνημονεύσετε, μη διστάσετε να. 1470 01:15:47,170 --> 01:15:48,836 Αυτό είναι πραγματικά, πραγματικά, πραγματικά σημαντικό. 1471 01:15:48,836 --> 01:15:53,200 1472 01:15:53,200 --> 01:15:56,890 >> Επίσης ένα πολύ καλό ερώτηση που μπορεί να ζητήσει. 1473 01:15:56,890 --> 01:16:00,320 Γιατί είναι επιλογή ματιά σε sort-- Επιλογή sort-- όλους τους χρόνους εκτέλεσης 1474 01:16:00,320 --> 01:16:02,060 Τα n τετράγωνο. 1475 01:16:02,060 --> 01:16:06,714 Ανεξάρτητα από το πώς ο κατάλογος να έρχεται που είναι, τόσο γιατί είναι sort-- Επιλογής 1476 01:16:06,714 --> 01:16:08,630 Θα σας δώσω τα παιδιά 30 δεύτερο σκεφτείτε για αυτό. 1477 01:16:08,630 --> 01:16:10,700 Επειδή αυτό είναι το είδος της σύγχυσης. 1478 01:16:10,700 --> 01:16:12,710 Πρόκειται κάποια εννοιολογική σκέψη. 1479 01:16:12,710 --> 01:16:16,470 Γιατί οι χρόνοι εκτέλεσης είναι η ίδια σε τόσο το χειρότερο και καλύτερο σενάρια; 1480 01:16:16,470 --> 01:16:28,850 1481 01:16:28,850 --> 01:16:30,000 >> Ναι; 1482 01:16:30,000 --> 01:16:38,084 >> Κοινό: Επειδή κάθε είδος Επιλογής θέση ή χώρο σε αυτή τη μικρή συστοιχία 1483 01:16:38,084 --> 01:16:40,350 πράγμα ή οτιδήποτε άλλο. 1484 01:16:40,350 --> 01:16:44,430 Έτσι, ακόμη και στην καλύτερη των περιπτώσεων, ακόμα κι αν είναι απόλυτα ταξινομημένο, 1485 01:16:44,430 --> 01:16:47,380 θα πρέπει ακόμα να είναι όπως, εντάξει, ένα. 1486 01:16:47,380 --> 01:16:49,000 Στην πρώτη μου θέση έχω ένα. 1487 01:16:49,000 --> 01:16:50,250 Και να περάσουν από όλα αυτά. 1488 01:16:50,250 --> 01:16:51,249 Εντάξει, το ένα είναι το μικρότερο. 1489 01:16:51,249 --> 01:16:53,053 Και τότε πηγαίνει και πάλι και είναι σαν, ΟΚ, δύο 1490 01:16:53,053 --> 01:16:54,594 είναι το μικρότερο από όλα τα πράγματα. 1491 01:16:54,594 --> 01:16:56,804 Αλλά εξακολουθεί να έχει να ελέγξουμε κάθε μία. 1492 01:16:56,804 --> 01:16:57,470 ΚΑΘΗΓΗΤΗΣ: Ναι. 1493 01:16:57,470 --> 01:17:00,490 Έτσι, για παράδειγμα, ας πούμε έχουμε μια λίστα, που έχουν ήδη ταξινομηθεί, 1494 01:17:00,490 --> 01:17:03,390 μια σειρά πέντε παρα ένα. 1495 01:17:03,390 --> 01:17:07,100 Ο τρόπος επιλογής των ειδών είναι ότι περνά μέσα, ελέγχει αυτά τα δύο. 1496 01:17:07,100 --> 01:17:08,234 Κατόπιν ελέγχει αυτά τα δύο. 1497 01:17:08,234 --> 01:17:09,650 Και στη συνέχεια, ελέγχει και ελέγχει. 1498 01:17:09,650 --> 01:17:13,285 Διατηρεί τον έλεγχο όλων αυτών, ανεξάρτητα από το εάν ή όχι 1499 01:17:13,285 --> 01:17:14,160 στην πραγματικότητα είναι ταξινομημένο. 1500 01:17:14,160 --> 01:17:16,450 Επειδή αυτό είναι απλά ο τρόπος που λειτουργεί το είδος. 1501 01:17:16,450 --> 01:17:19,530 >> Και έτσι αυτή η ερώτηση είναι κάτι σαν ένα εννοιολογικό ζήτημα θα ρωτήσω. 1502 01:17:19,530 --> 01:17:21,430 Πού πρώτη, μπορείτε να γνωρίζουμε τι είδους Επιλογής 1503 01:17:21,430 --> 01:17:23,304 Είναι, ακριβώς, για να είναι σε θέση να απαντήσει στην ερώτηση. 1504 01:17:23,304 --> 01:17:26,200 Θα πρέπει να είναι σε θέση να κατανοήσουν εννοιολογικά τι συμβαίνει. 1505 01:17:26,200 --> 01:17:30,760 Και τότε μπορείτε να το εφαρμόσετε και να σκεφτεί, OK Ας φανταστούμε το χειρότερο σενάριο. 1506 01:17:30,760 --> 01:17:32,230 Είναι όλα σε φθίνουσα σειρά. 1507 01:17:32,230 --> 01:17:33,290 Πώς θα επηρεάσει αυτό είναι; 1508 01:17:33,290 --> 01:17:34,650 >> Τι και αν είναι αύξουσα σειρά; 1509 01:17:34,650 --> 01:17:35,640 Αν είναι ήδη ταξινομημένο; 1510 01:17:35,640 --> 01:17:37,240 Πώς θα ήταν αυτό να επηρεάσει τα runtimes; 1511 01:17:37,240 --> 01:17:40,270 Και τότε επιλογής του είδους, θα παρατηρήσετε ότι στην πραγματικότητα δεν έχει σημασία. 1512 01:17:40,270 --> 01:17:43,500 Επειδή έχετε τον έλεγχο σε όλη τη τιμές, ανεξάρτητα από το τι συμβαίνει. 1513 01:17:43,500 --> 01:17:45,810 >> Και έτσι καλά πράγματα να θυμόμαστε. 1514 01:17:45,810 --> 01:17:50,290 Γιατί σε κάποια είδη διαφέρουν από τους άλλους και πόσο καλύτερα και τα χειρότερα σενάρια 1515 01:17:50,290 --> 01:17:52,740 θα επηρεάσουν όλα αυτά. 1516 01:17:52,740 --> 01:17:56,700 >> Πάω να χτυπήσει πραγματικά σε είδη γιατί αυτό θα είναι στο κουίζ. 1517 01:17:56,700 --> 01:17:57,199 Ναι. 1518 01:17:57,199 --> 01:18:00,820 1519 01:18:00,820 --> 01:18:01,320 ΕΝΤΆΞΕΙ. 1520 01:18:01,320 --> 01:18:05,590 Είναι έξι λεπτά που απομένουν. 1521 01:18:05,590 --> 01:18:09,880 Μπορώ να πάρω τρία λεπτά ερωτήσεων. 1522 01:18:09,880 --> 01:18:12,290 Μπορώ επίσης να τριγυρίζουν για όπως 20 λεπτά μετά την ενότητα 1523 01:18:12,290 --> 01:18:13,850 αν θέλετε να κάνετε ερωτήσεις, καθώς και. 1524 01:18:13,850 --> 01:18:16,330 Υπάρχει κάποιος που απλά έχουν πραγματικά σύντομη ερωτήσεις ή εννοιολογικά ζητήματα 1525 01:18:16,330 --> 01:18:17,360 ότι είναι ασαφές για τώρα; 1526 01:18:17,360 --> 01:18:17,832 Ναι; 1527 01:18:17,832 --> 01:18:19,720 >> Κοινό: Μπορείτε να μας μιλήσετε λίγο bit για δυαδικούς τελεστές; 1528 01:18:19,720 --> 01:18:20,280 >> ΚΑΘΗΓΗΤΗΣ: Ναι. 1529 01:18:20,280 --> 01:18:22,446 Έτσι δυαδικούς τελεστές είναι κάτι που πιθανώς 1530 01:18:22,446 --> 01:18:24,170 ίσως απλά θέλετε να βάλετε στο φύλλο σας. 1531 01:18:24,170 --> 01:18:27,540 Έτσι quickly-- δεν θέλω για να πάει πάρα πολύ σε βάθος 1532 01:18:27,540 --> 01:18:31,164 επειδή Χάρβαρντ, στην αναθεώρησή τους συνεδρία, κάλυψε αρκετά καλά. 1533 01:18:31,164 --> 01:18:33,080 Λογικό χειριστή, υπάρχει πέντε από αυτούς, σωστά; 1534 01:18:33,080 --> 01:18:41,370 >> Υπάρχει αυτό, το οποίο είναι χ ή λειτουργίας, υπάρχει σύμβολο, το οποίο είναι το και το. 1535 01:18:41,370 --> 01:18:44,050 Pipe, η οποία είναι η ή. 1536 01:18:44,050 --> 01:18:46,790 Και τότε έχετε το δύο διαφορετικούς τύπους βάρδιες. 1537 01:18:46,790 --> 01:18:50,610 >> Αν μπορώ να σας δώσω δύο τιμές, εφόσον Σας δίνω, όπως, ένα και ένα. 1538 01:18:50,610 --> 01:18:52,390 Τι θα αξιολογήσει με; 1539 01:18:52,390 --> 01:18:55,490 Αν σας δώσω αληθινή και πραγματική, αληθινή; 1540 01:18:55,490 --> 01:18:56,930 Τι γίνεται αληθής ή ψευδής; 1541 01:18:56,930 --> 01:18:57,830 Εξακολουθεί να ισχύει, έτσι δεν είναι; 1542 01:18:57,830 --> 01:18:59,762 Επειδή υπάρχει ένα ή. 1543 01:18:59,762 --> 01:19:01,220 Θα πιο πιθανό να σας δώσει αριθμούς. 1544 01:19:01,220 --> 01:19:03,780 Έτσι θυμηθείτε, ένα ίσον αλήθεια, το μηδέν ισούται με ψευδείς. 1545 01:19:03,780 --> 01:19:07,407 Και μπορεί να σας δώσει αυτά τα πράγματα και να σας ζητήσω να μας πει τι συμβαίνει. 1546 01:19:07,407 --> 01:19:10,240 Χάρβαρντ που καλύπτει εντός του πρώτου 10 λεπτά της συνεδρίασης μελέτη τους 1547 01:19:10,240 --> 01:19:11,230 πραγματικά, πραγματικά καλά. 1548 01:19:11,230 --> 01:19:14,260 Έτσι, εσείς θέλετε να κάνετε φροντίστε να κοιτάξουμε πίσω σε αυτό. 1549 01:19:14,260 --> 01:19:16,387 >> Κοινό: Είναι pisa5 πρόκειται να είναι στο κουίζ; 1550 01:19:16,387 --> 01:19:16,970 ΚΑΘΗΓΗΤΗΣ: Όχι. 1551 01:19:16,970 --> 01:19:18,240 Μην ακόμη εξετάσουμε pisa5 τώρα. 1552 01:19:18,240 --> 01:19:18,810 Ειναι δυσκολο. 1553 01:19:18,810 --> 01:19:22,830 Απλά δεν κάνουν καν τον κόπο κοιτάζοντας pisa5. 1554 01:19:22,830 --> 01:19:25,665 >> Ωστόσο, όπως μερικές συμβουλές και προτάσεις, εγώ 1555 01:19:25,665 --> 01:19:28,320 Θα πρότεινα να ξεκινήσετε pisa5 μόλις το κουίζ έχει τελειώσει. 1556 01:19:28,320 --> 01:19:30,319 Αυτό θα είναι το πιο δύσκολο εβδομάδα, αλλά στη συνέχεια εσείς 1557 01:19:30,319 --> 01:19:34,590 θα πρέπει να πέρασε στους λόφους του τροχαίου πράσινο και τα κουτάβια, 1558 01:19:34,590 --> 01:19:36,115 και είναι μια χαρά. 1559 01:19:36,115 --> 01:19:39,810 >> Η κατηγορία αυτή γίνεται σημαντική ευκολότερη μετά την πέμπτη το chipset. 1560 01:19:39,810 --> 01:19:41,560 Ώρες εργασίας γραφείου: ΚΟΙΝΟ είναι Κυριακή και Δευτέρα; 1561 01:19:41,560 --> 01:19:44,260 ΚΑΘΗΓΗΤΗΣ: Ναι, έτσι ώρες γραφείου θα Την Κυριακή έως τη Δευτέρα για την PSET. 1562 01:19:44,260 --> 01:19:47,009 Ώρες γραφείου απόψε ουσιαστικά ακριβώς θα είναι η κριτική για το κουίζ. 1563 01:19:47,009 --> 01:19:50,350 Αν κάποιος θέλει να έρθει και να ζητήσει οι τεχνικοί βοηθοί μια ερώτηση, θα είμαστε εκεί. 1564 01:19:50,350 --> 01:19:53,220 >> Θα πάρω ίσως ένα ακόμη ερώτημα αν κάποιος έχει μια ερώτηση; 1565 01:19:53,220 --> 01:19:53,809 Ναι; 1566 01:19:53,809 --> 01:19:55,850 Κοινό: Όταν είσαι ορισμό των κόμβων, [δεν ακούγεται] 1567 01:19:55,850 --> 01:20:00,700 αν σας πω αστέρων κόμβο και στη συνέχεια την επόμενη, κάνει ο υπολογιστής αυτόματα 1568 01:20:00,700 --> 01:20:03,610 καταλάβετε ότι είστε αναφέρεται σε άλλο δείκτη; 1569 01:20:03,610 --> 01:20:04,580 >> ΚΑΘΗΓΗΤΗΣ: Όχι. 1570 01:20:04,580 --> 01:20:06,710 >> Κοινό: Θα πρέπει να επανασύνδεση αυτό [δεν ακούγεται]; 1571 01:20:06,710 --> 01:20:09,270 >> ΚΑΘΗΓΗΤΗΣ: Έτσι ουσιαστικά το struct ενός κόμβου, θυμηθείτε, 1572 01:20:09,270 --> 01:20:12,620 Είναι σαν να δημιουργήσετε τον κόμβο και τότε έχετε ένα δείκτη που ονομάζεται επόμενη. 1573 01:20:12,620 --> 01:20:14,630 Το μόνο που κάνετε είναι με η δομή εκεί. 1574 01:20:14,630 --> 01:20:16,387 Θα πρέπει να ορίσετε pointer ότι κάπου. 1575 01:20:16,387 --> 01:20:18,470 Έτσι, οι υπολογιστές δεν ξέρετε τι κάνει ακόμα. 1576 01:20:18,470 --> 01:20:20,250 Θα πρέπει να αναθέσει στην πραγματικότητα, όταν είστε δημιουργώντας συνδεδεμένη λίστα σας. 1577 01:20:20,250 --> 01:20:22,170 Και αυτό είναι που κυρίως PSET 5 θα είναι. 1578 01:20:22,170 --> 01:20:24,106 Έτσι, υπάρχουν ανησυχίες σχετικά με οποιαδήποτε από ότι αυτή τη στιγμή. 1579 01:20:24,106 --> 01:20:26,380 >> Κοινό: Γι 'αυτό δεν χρειάζεται να επικεντρώνονται υπερβολικά σε σχέση λίστα, απλά 1580 01:20:26,380 --> 01:20:27,440 η γενική αντίληψη; 1581 01:20:27,440 --> 01:20:30,980 >> ΚΑΘΗΓΗΤΗΣ: Ακριβώς λίγο πολύ στοίβες, ουρές, λίστες σύνδεσμο, δέντρα, πίνακες κατακερματισμού. 1582 01:20:30,980 --> 01:20:33,639 Απλά να είναι σε θέση να γνωρίζουν τι είναι. 1583 01:20:33,639 --> 01:20:35,680 Εμείς δεν πρόκειται να ζητήσει Θέλετε κάτι συγκεκριμένο 1584 01:20:35,680 --> 01:20:39,300 γιατί δεν έχουμε πραγματικά κάνει μια το chipset που το καλύπτει κάποια από τα οποία ακόμα. 1585 01:20:39,300 --> 01:20:45,540 >> Έτσι, τα τελευταία δύο λεπτά πριν Θα σας απελευθερώσει για να σκοτώσει αυτό το κουίζ. 1586 01:20:45,540 --> 01:20:49,370 Λίγο πολύ, όπως, σκεφτείτε για το πώς τώρα εσείς έχετε έρθει σε αυτή την κατηγορία. 1587 01:20:49,370 --> 01:20:52,820 >> Θυμάμαι όταν δύο εβδομάδες αυτής της κατηγορίας, κάποιοι από εσάς 1588 01:20:52,820 --> 01:20:55,720 να περάσουν τρεις ώρες γράφοντας νερό. 1589 01:20:55,720 --> 01:20:57,970 Πόσο καιρό θα σας πάρει παιδιά να γράψουν το νερό τώρα; 1590 01:20:57,970 --> 01:20:59,670 30 δευτερόλεπτα, ίσως; 1591 01:20:59,670 --> 01:21:01,810 Σκεφτείτε πόσο εσείς έχετε μάθει. 1592 01:21:01,810 --> 01:21:04,320 CS είναι ένα πολύ, πολύ δύσκολο θέμα. 1593 01:21:04,320 --> 01:21:06,190 Δεν υπάρχει καμία αμφιβολία γι 'αυτό. 1594 01:21:06,190 --> 01:21:09,160 Είναι δύσκολο, γι 'αυτό κανείς δεν το μελετά. 1595 01:21:09,160 --> 01:21:10,730 Είναι απλά δύσκολο. 1596 01:21:10,730 --> 01:21:11,650 Και είναι εντελώς καλά. 1597 01:21:11,650 --> 01:21:14,150 >> Και είμαι πραγματικά περήφανος που ο καθένας έχει κάνει αυτό μακριά. 1598 01:21:14,150 --> 01:21:16,380 Psets δεν είναι εύκολο. 1599 01:21:16,380 --> 01:21:17,790 Θα πάρει πολύ χρόνο. 1600 01:21:17,790 --> 01:21:22,580 Εσείς, εγώ ποτέ δεν θα σας ζητήσει να γράψετε το παιχνίδι των 15 ή Vigenere στην PSET. 1601 01:21:22,580 --> 01:21:24,160 Δεν χρειάζεται να φρικάρεις ακριβώς γι 'αυτό. 1602 01:21:24,160 --> 01:21:28,080 Το μόνο που δοκιμάζουμε εδώ είναι η αξιολόγηση εννοιολογική γνώση σας, καθώς και 1603 01:21:28,080 --> 01:21:31,524 καθώς ορισμένες από τις βασικές δεξιότητες σας κωδικοποίησης. 1604 01:21:31,524 --> 01:21:33,440 Η δοκιμή είναι σχεδιασμένη να είναι πραγματικά δύσκολο. 1605 01:21:33,440 --> 01:21:36,180 Όπως, έχει σχεδιαστεί για να μην πάρει το 100. 1606 01:21:36,180 --> 01:21:39,880 Είναι, επίσης, σχεδιαστεί για να πιθανώς δεν είναι σε θέση να τελειώσει σε 75 λεπτά. 1607 01:21:39,880 --> 01:21:41,995 Και αυτό είναι εντελώς καλά. 1608 01:21:41,995 --> 01:21:42,870 Είμαι ένας μαθητής τον εαυτό μου. 1609 01:21:42,870 --> 01:21:45,960 Ξέρω, το μισώ όταν περπατώ από ένα κουίζ είναι όπως, σκατά. 1610 01:21:45,960 --> 01:21:47,044 Αυτό ήταν πραγματικά δύσκολο. 1611 01:21:47,044 --> 01:21:49,460 Πιθανώς το τι πρόκειται να happen-- και αυτό είναι εντελώς καλά, 1612 01:21:49,460 --> 01:21:50,751 Σας λέω ρε παιδιά τώρα. 1613 01:21:50,751 --> 01:21:53,190 Τα μέσα σε αυτά τα πράγματα Δεν είναι υψηλά σε όλα. 1614 01:21:53,190 --> 01:21:55,360 >> Και για όσους από εσάς έχουν πάρει, όπως, 1615 01:21:55,360 --> 01:21:57,870 τριάρια στο πρόβλημα σύνολα σας, αυτό δεν σημαίνει ότι είστε 1616 01:21:57,870 --> 01:21:59,536 πρόκειται να πάρει ένα 60 τοις εκατό σε αυτή την κατηγορία. 1617 01:21:59,536 --> 01:22:01,440 Εάν μπορείτε να πάρετε το 60% για το κουίζ, που δεν 1618 01:22:01,440 --> 01:22:03,330 σημαίνει ότι πρόκειται να να πάρετε μια Α σε αυτή την κατηγορία. 1619 01:22:03,330 --> 01:22:05,740 Βλέπουμε, ειδικά εγώ, για Όσοι από εσάς στο τμήμα μου, 1620 01:22:05,740 --> 01:22:07,406 Βλέπω πόσο σκληρά εσείς όλοι εργάζονται. 1621 01:22:07,406 --> 01:22:09,190 Και εγώ να παρακολουθείτε αυτό. 1622 01:22:09,190 --> 01:22:11,420 >> Εσείς θα είναι μια χαρά. 1623 01:22:11,420 --> 01:22:14,580 Δεν υπάρχει καμία θεσμική μνήμη του ευτυχία στο τέλος του εξαμήνου. 1624 01:22:14,580 --> 01:22:16,840 Επειδή όλα τα παιδιά του Χάρβαρντ λέει τους φίλους τους, ω, θα είστε μια χαρά. 1625 01:22:16,840 --> 01:22:18,381 Κανείς δεν σας λέει ότι τα παιδιά εδώ. 1626 01:22:18,381 --> 01:22:20,950 Έτσι έχω να σας πω ρε παιδιά ότι εδώ. 1627 01:22:20,950 --> 01:22:22,280 >> Εσείς θα είναι μια χαρά. 1628 01:22:22,280 --> 01:22:24,080 Είμαι περήφανος για όλους σας παιδιά. 1629 01:22:24,080 --> 01:22:25,680 Η δοκιμή θα είναι δύσκολο. 1630 01:22:25,680 --> 01:22:28,140 Μελέτη για αυτό, και στη συνέχεια απλά να το πετάξετε. 1631 01:22:28,140 --> 01:22:31,280 Ετοιμαστείτε για να μάθουν νέα πράγματα. 1632 01:22:31,280 --> 01:22:33,990 Και τρώνε γλυκά. 1633 01:22:33,990 --> 01:22:35,940 Έχουμε έχουμε πολλά γλυκά. 1634 01:22:35,940 --> 01:22:37,760 >> Πάρτε τον ύπνο μιας καλής νύχτας. 1635 01:22:37,760 --> 01:22:40,420 Μην να κοιμηθώ, γιατί ότι θα ήταν πολύ άσχημα. 1636 01:22:40,420 --> 01:22:41,490 CS είναι πολύ λογική. 1637 01:22:41,490 --> 01:22:44,960 Αν δεν κοιμούνται, δεν μπορεί να λειτουργήσει, και το μυαλό σας δεν μπορεί να λειτουργήσει. 1638 01:22:44,960 --> 01:22:48,780 Και θα είμαι εδώ για τα επόμενα 20 λεπτά, αν κάποιος θέλει να κρεμάσει γύρω. 1639 01:22:48,780 --> 01:22:51,150 Τα Εσείς πρόκειται να το σκοτώσει. 1640 01:22:51,150 --> 01:22:53,000 Καλή τύχη. 1641 01:22:53,000 --> 01:22:55,663