>> ΚΑΘΗΓΗΤΗΣ: Επομένως, η ατζέντα για την αυτή την εβδομάδα, δεν είναι ότι πολλά πράγματα.
Αλλά ελπίζουμε ότι πολύ, πολύ χρήσιμη και τις σχετικές για σας παιδιά αυτή την εβδομάδα.
Αλλά θα πάμε να περάσετε ίσως 15, 20 λεπτά ακριβώς μιλάμε γρήγορα
σχετικά με τον κατάλογο σύνδεσμο.
Οι λίστες Σύνδεσμος πρόκειται να καλύπτεται με κουίζ.
Έτσι, ίσως θα ήταν πολύ χρήσιμο να μάθουν κάποια πράγματα για το τι είναι.
>> Εμείς πάμε για να περάσουν το τεράστιο πλειοψηφία του τμήματος του σήμερα
που πηγαίνει πέρα ​​κουίζ μηδενικών προβλημάτων πρακτικής.
Και τότε θα σώσει ίσως 20, 30 λεπτά στο τέλος για τυχόν παρατεταμένες ερωτήσεις
ο καθένας έχει.
>> Και στη συνέχεια, η τελευταία πέντε λεπτά, Πάω
για να δώσει μια αντλία την ομιλία για το κουίζ.
Εσείς όλοι θέλουν να είναι εδώ γι 'αυτό.
Επειδή πρόκειται να είναι μια καλή στιγμή.
>> Εντάξει, έτσι κάποια υλικού στον κατάλογο σύνδεσμο.
Πως όπου και αν τυπικά είναι δομημένο Έχετε ό, τι λέγεται ένα κόμβο, έτσι δεν είναι;
Έχετε αυτά τα πράγματα που ονομάζεται κόμβους, το οποίο είναι structs.
Θα πάω για το πώς να δημιουργήσετε ένας κόμβος στο επόμενο slide.
Αλλά ουσιαστικά όλα τα συνδεδεμένα κατάλογοι είναι τα δεδομένα που
έχει αρμαθιές από κοινού με τους δείκτες.
>> Και έτσι το πλεονέκτημα που έχουμε της χρήσης ενός συνδεδεμένη λίστα πάνω,
ίσως, σαν μια συστοιχία, είναι το γεγονός ότι σε μία συστοιχία
θα πρέπει να έχετε ένα συνεχόμενο μπλοκ μνήμη όλα στο ίδιο μέρος, μία
μετά το άλλο, για να είναι σε θέση να έχουν αυτό.
Λαμβάνοντας υπόψη ότι μια συνδεδεμένη λίστα, θα μπορούσατε έχουν τυχαία μικρά κομμάτια της μνήμης
σε όλο τον υπολογιστή σας αρμαθιές από κοινού με τους δείκτες.
>> Και με αυτό τον τρόπο μπορούν να έχουν πρόσβαση σε πληροφορίες
που έρχεται ο ένας μετά τον αφετέρου, μετά την άλλη
χωρίς να χρειάζεται μόνο ένα τεράστιο κομμάτι της μνήμη του υπολογιστή σας κάπου.
Και έτσι αυτό είναι ένα από τα σημαντικότερα λόγοι για τους οποίους χρησιμοποιούμε λίστα σύνδεσμο.
>> Δεύτερον, είναι πολύ εύκολο να δυναμικά αλλάξετε το μέγεθος της λίστας σύνδεσμο επειδή σε σειρά,
όταν δηλώνουμε έναν πίνακα, Έχετε μια συγκεκριμένη τιμή που καθορίζεται.
Ας πούμε ότι ήθελα να δημιουργήσω μια συστοιχία 10 ακεραίων.
Έχω δημιουργήσει μια σειρά από 10 ακέραιοι, και αυτό είναι όλο.
Είναι 10.
Δεν ξέρω τι να κάνω μετά από αυτό.
Αν ήθελα να κάνω είναι 11, δεν μπορεί να το κάνει.
Αν θέλω να καταστήσω 9, δεν μπορούμε να το κάνουμε.
>> Λαμβάνοντας υπόψη ότι σε μια λίστα σύνδεσμο, μπορείτε να προσθέσετε και να διαγράψετε και να τοποθετήσετε όπου θέλετε.
Μπορείτε να αλλάξετε το μέγεθος δυναμικά σας δόμηση εδώ, η δομή των δεδομένων σας.
Και αυτό μας δίνει ένα πολύ περισσότερα πρόσθετη ευελιξία
ότι εμείς δεν κάνουμε συνήθως έχουν με συστοιχίες.
>> Όποιος σύγχυση σχετικά με τη βασική δομή του πώς μια λίστα συνδέσμων είναι
ή γιατί θα πρέπει να χρησιμοποιήσετε ένα πάνω από μια σειρά;
Ναι, θα πάμε πάνω στη λεπτομέρεια πώς να δημιουργήσετε ένα πραγματικά.
Αλλά αυτό είναι ακριβώς το είδος του η γενική αίσθηση τώρα.
Δροσερός.
Και έτσι συστοιχίες αρμαθιές μαζί από αυτές τις υπέροχες μικρά πράγματα
ονομάζονται κόμβοι.
Όλα ένας κόμβος είναι ένας τύπος struct.
Θυμηθείτε, ένα struct είναι αν θέλετε να δημιουργήσει ένα ορισμένο τύπο μεταβλητής
σε C που δεν έχουν ήδη Υπάρχουν, εσείς, ως προγραμματιστής,
μπορεί πραγματικά να δημιουργήσει αυτό τον εαυτό σας.
>> Και έτσι αυτό το είδος των δεδομένων δομή ονομάζεται κόμβος,
έχει πράγματι δημιουργήθηκε από εμάς, ότι δεν υπάρχουν μέσα σε C από μόνη της.
Και ο τρόπος που δημιουργήσετε ένα είναι που έχετε
η επικεφαλίδα της typedef struct, που λέει ο compiler είμαι
για να δημιουργήσετε ένα struct.
>> Εμείς πάμε για το όνομα «κόμβο».
Και μέσα θα πάμε να δηλώσετε μια μεταβλητή μέσα,
η οποία πρόκειται να αποθηκεύει μια τιμή.
Και τότε θα πρόκειται επίσης να έχουν ένα δείκτη που ονομάζεται «επόμενο»
ότι παρατηρεί στο επόμενο κόμβο στη λίστα σύνδεσμο.
Και τότε θα τελειώσουμε ότι εκτός από απλά επαναλαμβάνοντας κόμβο πάλι έτσι
ο compiler ξέρει, OK αυτό είναι το τέλος του struct μου.
>> Και έτσι με αυτό τον τρόπο, είμαστε είδος της δημιουργίας ενός χαριτωμένο μικρό σειρά
το είδος του πράγματος με ένα αξίας και με ένα δείκτη.
Και μπορείτε να τα συνδέσει όλα μαζί με τις υποδείξεις.
Έτσι ώστε να μπορούν όλοι να είναι το είδος αρμαθιές μαζί σε μια αλυσίδα.
>> Δροσερός.
Μπορείτε να ακούσετε ότι λίγο καλύτερα;
>> Κοινό: Ναι.
>> ΚΑΘΗΓΗΤΗΣ: Εντάξει.
Έτσι ο τρόπος που, όπως εσείς να δείτε, Μια τυπική λίστα συνδέσμων είναι δομημένο
είναι να έχετε ένα κεφάλι.
Έχετε την αξία κεφαλής που δεν είναι που επισήμανε από οποιοδήποτε άλλο δείκτη.
Αλλά πρόκειται να επισημάνει, ή αναφορά, ένα άλλο κόμβο.
Ο κόμβος αφού πρόκειται για αναφορά στο κόμβος μετά από αυτό, και ούτω καθεξής και ούτω καθεξής
μέχρι να χτυπήσει τελικά στο τέλος της λίστας σύνδεσμο σας.
Και απλά δεν θα έχει εκεί ένα δείκτη.
>> Και έτσι, νομίζω, όπως, σε μια αλυσίδα, ή ακόμα και Αν κάποιος από εσάς παιδιά γίνεται, δεν ξέρω,
όπως με φρούτα Loops όταν ήσουν μικρός.
Θα τους χορδή μαζί και τα φορούν γύρω από το λαιμό σας.
Σκεφτείτε ότι είναι το ίδιο ακριβώς πράγμα.
Έχετε αυτά τα μικρά πράγματα που μπορεί να συμβολοσειράς μαζί εκείνο το σημείο σε ένα
μετά από αυτό, στο ένα μετά αυτό, και ούτω καθεξής και ούτω καθεξής
μέχρι να έχετε μια αλυσίδα μιας δομής δεδομένων
που μπορείτε να χρησιμοποιήσετε όπως θέλετε.
>> Έτσι, ο τρόπος που αυτό θα θέλαμε τυπικά εισάγετε ή να διαγράψετε
κάθε κόμβο από ένα σύνδεσμο κατάλογος είναι πολύ διαφορετική
ανάλογα με το πού είναι αυτός ο κόμβος.
Έτσι, για παράδειγμα, επειδή δείκτες είναι πάντα
δείχνοντας μια συγκεκριμένη τιμή, όταν διαγράφετε ή να εισάγετε ένα κόμβο,
θέλετε να είστε σίγουροι οτι το δείκτη Όλα αυτά δείχνουν στα σωστά πράγματα.
>> Έτσι, αν θέλετε να εισάγετε δυνητικά ένας νέος κόμβος με την αξία ενός
μέσα σε ένα ταξινομημένο σύνδεσμο λίστα, όλοι γνωρίζουμε εδώ
από την εικόνα που πρόκειται να πηγαίνετε στο μεταξύ κεφαλής και δύο, σωστά;
Διότι ένα ταιριάζει ακριβώς εκεί.
Αλλά ο τρόπος με τον οποίο θα κάνουμε ότι είναι η πρώτη εύρεση τιμών του δείκτη
από το κεφάλι και την αποστολή αυτή να είναι μία.
>> Αλλά θα έρθει σε ένα πρόβλημα εδώ.
Μπορεί κανείς να δει ποιο είναι το πρόβλημα είναι αν ήμασταν στην πρώτη dereference
ο δείκτης από το κεφάλι σε ένα;
Τι πρόβλημα μπορεί να έχουμε τρέξει σε αν προσπαθήσουμε για να προσθέσετε αυτό το μπροστινό μέρος του πίνακα μας;
>> Κοινό: [δεν ακούγεται]
ΚΑΘΗΓΗΤΗΣ: Ακριβώς.
Έτσι, εδώ έχουμε ένα δείκτη που ήταν μία φορά με κατεύθυνση από το κεφάλι μέχρι τα δύο.
Αλλά αν μπορείτε να απαλλαγείτε από αυτό δείκτη, μπορείτε να το σημείο σε ένα,
τώρα έχουμε την παραμικρή ιδέα πού να πάει να βρει δύο.
Γιατί όπως είπα και πριν, έχετε ένα γιγαντιαίο κομμάτι μνήμης του υπολογιστή σας.
Όλοι αυτοί οι κόμβοι θα μπορούσαν να εναλλάσσονται τυχαία
σε οποιαδήποτε θέση στον υπολογιστή σας.
Και δεν ξέρεις πώς να πάτε για την εύρεση αυτό.
>> Και έτσι θα πρέπει να έχετε δείκτες που δείχνουν προς όλους τους κόμβους στο τέλος.
Ή αλλιώς, αν κατά λάθος dereference ένα
χωρίς την παραχώρηση μια τιμή πρώτο, είστε
ακριβώς πρόκειται να χάσουν τα πάντα στη συνέχεια.
>> Λοιπόν, τι θα πάμε να κάνουμε είναι, θα πρέπει πρώτα
θέλετε να δημιουργήσετε ένα δείκτη για ο κόμβος που θέλετε να εισαγάγετε.
Το σημείο όπου μπορείτε να θέλετε να το τοποθετήσετε σε,
και, στη συνέχεια, στη συνέχεια, θα θα μπορούσε να δείξει το κεφάλι πίσω στο ένα.
>> Μήπως αυτό έχει νόημα για όλους εδώ;
Εξαιρετική.
Σκεφτείτε το σαν απλά σαν μια αλυσίδα.
Εάν προσθέσετε μια αλυσίδα, είναι το είδος της διαισθητικής
πώς θα πάει σχετικά με την τοποθέτηση αυτό.
>> Εντάξει, έτσι ώστε να είναι στην πραγματικότητα πολύ μικρότερη από ό, τι νόμιζα ότι θα ήταν,
μια κουβεντιάζω πέντε λεπτά στους καταλόγους σύνδεσμο.
Ακριβώς έτσι εσείς έχετε το βασική ιδέα του τι είναι αυτό.
>> Εδώ έχουμε την ημερήσια διάταξη για κουίζ μηδέν.
Μην αφήστε αυτό να σας εκφοβίσει.
Ξέρω ότι είναι πολλές πληροφορίες.
Φαίνεται πολύ τρομακτικό.
Είναι επίσης πολύ, εγώ νομίζω, CSC είδος των όρων.
Τα πράγματα όπως χορδές δεκαεξαδικό, δείκτες, οι χορηγήσεις δυναμική μνήμη
είναι πολύ τρομακτικό όρους άκουσμα.
>> Αλλά θα πάμε να τα σπάσουν προς τα κάτω, κάνουμε κάποια προβλήματα πρακτικής
έτσι ώστε εσείς όλα είναι έτοιμα για αυτή τη δοκιμή.
Πόσοι από εσάς έχετε παιδιά έχει ήδη ξεκινήσει τη μελέτη;
>> Εντάξει, εσείς πιθανώς θέλετε για να ξεκινήσει να ξεκινήσετε
σχετικά ότι, επειδή το κουίζ είναι αύριο.
Ή την Πέμπτη για κάποιους από εσάς.
Ναι, έτσι θα πάμε για να πάει πάνω από ορισμένα προβλήματα πρακτικής.
Αν εσείς θέλετε να λάβει όλα από ένα φύλλο χαρτί, ένα μολύβι.
Εμείς πάμε για να περάσουν μόνο το συντριπτική πλειοψηφία του τμήματος του σήμερα
που πηγαίνει πέρα ​​από μερικά από αυτά, ώστε εσείς έχετε μια ιδέα για το τι να περιμένουμε στο κουίζ.
>> ΕΝΤΆΞΕΙ.
Ένα ζευγάρι της υλικοτεχνικής Στοιχεία καθώς και, για κανέναν
ο οποίος δεν ήταν σε αυτό το σύνδεσμο εκεί, αν πηγαίνετε να cs50.yale.edu, στο μπροστινό μέρος
Αυτή η σελίδα υπάρχει μια σύνδεση που λέει «Περί Quiz Μηδέν".
Σύνδεσμος σας μεταφέρει εκεί.
Εάν δεν το έχετε διαβάσει, παρακαλούμε να το διαβάσετε.
Επειδή σας λέει πραγματικά σημαντικό πληροφορίες σχετικά με το κουίζ.
>> Πάω να τραβήξει έξω από αυτό ότι ακριβώς επειδή, φυσικά,
αν εσείς δεν ξέρετε από πού για να πάει, θα έχουμε προβλήματα.
Και έτσι, αν η τελευταία σου άποψη με Α σε Ν, πάει στο σχολείο του νόμου αμφιθέατρο.
Και αν η τελευταία σας αρχίζει με P Ω, πηγαίνετε στο Αμφιθέατρο Davies.
Και αυτό ισχύει μόνο για άνθρωποι στο τμήμα Τετάρτη.
>> Εάν παίρνετε το κουίζ σχετικά με Πέμπτη, πηγαίνετε στο SSS 114
όπου διάλεξη σας συνήθως είναι.
Κοινό: [δεν ακούγεται]
ΚΑΘΗΓΗΤΗΣ: O έως το Ω, θα πάμε να πάει στο αμφιθέατρο Davies.
Πάω να το αλλάξουμε αυτό, σωστά;
>> Ω, ναι, μπορείτε απλά να αποτύχει αυτόματα.
>> Ω ναι, αυτό θα είναι Christa.
Ναι, κακό μου.
Ναι, O έως το Ω, θα πάμε να πάει στο Davies Auditorim.
Πάω να διορθώσετε αυτή τη φορά μπορώ να φορτώσω.
Ναι.
>> Και τότε, επίσης, κάτι σημαντικό στο μυαλό
είναι ότι την Τετάρτη, αν είστε επίσημα εγγράφονται στο τμήμα Τετάρτη,
θα πρέπει να λάβει κουίζ σας την Τετάρτη.
Και αν είστε εγγεγραμμένοι σε Πέμπτη, θα πρέπει να λαμβάνουν το κουίζ σας Πέμπτη.
Και είναι κατά τη διάρκεια της κατηγορίας.
Όταν, νομίζω ότι είναι σαν 1:00 2:15 Τετάρτη και 2:30 με 3:45
την Πέμπτη.
>> Εάν έχετε μια ασυμβίβαστη συγκρούσεις, Δικαιολογίες Dean είναι το μόνο πράγμα,
Δυστυχώς, μπορούμε να πάρουμε.
Επειδή είχαμε μια συντριπτική πλειονότητα των αιτήσεων
για να μεταβείτε από την Τετάρτη έως την Πέμπτη.
Που δεν μπορούμε να τιμήσουμε εκτός έχουμε αίτημα ενός κοσμήτορα.
>> ΕΝΤΆΞΕΙ.
Έτσι, πριν ξεκινήσετε για μια μερικά από τα προβλήματα πρακτικής,
Είμαι ακριβώς πρόκειται να πάει πέρα ​​από Χρήσιμες συμβουλές του Andy για την επιτυχία.
Εσείς, όταν μελέτη, που πραγματικά θέλουν να ασκήσουν τη σύνταξη κώδικα με το χέρι.
Την πρώτη φορά που έχω ποτέ πήρε ένα κουίζ CS, δεν είχα
γραφής πρακτική κώδικα με το χέρι πριν και ήταν εξαιρετικά
σοκαριστικό το πόσο δύσκολο ήταν.
>> Όταν εσείς δεν μπει η συνήθεια να πληκτρολογήσετε τα πάντα,
έρχεται πολύ φυσικά είναι είναι σε θέση να έχουν συμπληρώθηκε αυτόματα
παρένθεση και ερωτηματικά εκεί.
Όταν το γράψω με το χέρι, μερικές φορές είναι
πολύ, πολύ εύκολο να ξεχάσουμε ένα ερωτηματικό, ή ξεχάσετε να κλείσετε ένα βραχίονα,
ή ξεχάσετε να κλείσετε μια άνω και κάτω τελεία, ή κατι τετοιο.
>> Έτσι, όταν γράφετε κώδικα με το χέρι, Είναι μια πολύ διαφορετική αίσθηση.
Έτσι ρε παιδιά, όταν εργάζεστε μέσα από μερικά από τα προβλήματα πρακτικής,
θα ήταν καλό να ασκήσετε πραγματικά σήμερα.
Ή αύριο, υποθέτω, αν είστε παίρνοντας το κουίζ την Πέμπτη.
>> Δεύτερον, έχουμε το τελευταίο, όπως, οκτώ χρόνια την αξία της πρακτικής
κουίζ σε απευθείας σύνδεση.
Κουίζ Η φετινή θα είναι πιθανώς πολύ, πολύ παρόμοια με όλα αυτά.
Είναι όλα πολύ παρόμοια.
Μπορείτε να το είδος του να μπει η ύφος του τύπου των ερωτήσεων
αυτό που ζητάμε, το είδος του λειτουργίες που θα το γράψει σε,
κ.λπ., και τα λοιπά.
>> Πάρτε λοιπόν τα κουίζ πρακτική, ειδικά κάτω από χρονικούς περιορισμούς.
75 λεπτά για να κάνετε το κουίζ είναι δεν είναι πολύ χρονικό διάστημα.
Είναι πολύ, πολύ καιρό.
Και έτσι εσείς θέλετε πραγματικά για να βεβαιωθείτε ότι εσείς είστε
τη συνήθεια της γραφής κώδικας με το χέρι γρήγορα.
Επειδή δεν θέλετε την πρώτη ώρα για να δείτε ένα κουίζ αυτού του μήκους
να είναι σε ένα κουίζ σας.
Εσείς πραγματικά θέλετε να είστε σίγουροι να εξασκηθείτε λίγο.
>> Τέταρτον, θέλετε να επανεξετάσει το διάλεξη και το τμήμα διαφάνειες.
Δεν χρειάζεται να απομνημονεύσετε τα πράγματα.
Στην πραγματικότητα, ο καθένας έχει επιτραπεί η ένα φύλλο λευκό χαρτί σημειώσεων,
εμπρός και πίσω.
Εσείς μπορείτε να πληκτρολογήσετε ή να γράψετε.
Αν βρείτε τον εαυτό σας να χρειάζεται να απομνημονεύσουν κάτι, να το βάλετε κάτω σε αυτό το φύλλο.
>> Σας εγγυώμαι, δεν θέλετε να να κολλήσει στη μέση αυτού του κουίζ
είναι σαν, Ω ναι, ποια είναι η runtime αυτού του είδους σε σχέση με αυτό το είδος.
Ακριβώς το βάλετε κάτω και να το αντιγράψετε κατ 'ευθείαν από το φύλλο σημείωσή σας.
Στη συνέχεια, μπορείτε πραγματικά να χρησιμοποιήσετε μόνο σας εγκέφαλο να σκεφτούν τα προβλήματα
αντί να χρειάζεται να υπενθυμίσει τα γεγονότα.
Και έτσι πραγματικά να επωφεληθούν οποιωνδήποτε στοιχείων εξειδικευμένες
ότι νομίζετε ότι πρέπει να απομνημονεύσουν, γδούπο κάτω στο φύλλο ελέγχου.
>> Εντάξει, οποιεσδήποτε ερωτήσεις εφοδιαστικά σχετικά με το κουίζ
πριν αρχίσουμε κάποια προβλήματα κουίζ πρακτική;
Ναι;
>> Κοινό: Δεν είχα την ευκαιρία να εξετάσουμε το κουίζ [δεν ακούγεται]
αλλά δεν πρόκειται να είναι εφαρμογή ως επί το πλείστον,
Ή υπάρχει, επίσης, πρόκειται να είναι, όπως, ερωτήσεις γνώσεων;
>> ΚΑΘΗΓΗΤΗΣ: Είναι πολύ.
Έτσι, ο τρόπος που θα θα περιγράφεται το κουίζ
is-- έβαλα μαζί κάποια προβλήματα πρακτικής
ότι τράβηξα από όλα τα κουίζ.
Αλλά θα δείτε ότι υπάρχουν δύο κύρια τα είδη των ερωτήσεων που θα σας ζητήσουμε.
>> Το ένα είναι μια λεπτομέρεια πολύ χαμηλό επίπεδο πράγματα.
Θα σας δώσω ένα μικρό κομμάτι του κώδικα και να πω, είναι λάθος υπάρχει εδώ;
Τι θα πρέπει να εκτυπώσετε από εδώ;
Τι θα παράγει αυτός ο κώδικας, κλπ.
Έτσι λεπτομέρειες πληροφορίες πολύ χαμηλό επίπεδο.
>> Και από την άλλη πλευρά, θα έχουμε πολύ υψηλού επιπέδου ερωτήσεις που βασίζονται στη γνώση.
Μπορείτε να εξηγήσετε τι το διαφορά μεταξύ ενός δυαδική αναζήτηση
και μια γραμμική αναζήτηση είναι;
Γιατί να θέλουμε να χρησιμοποιήστε ένα πάνω στο άλλο;
Ίσως, αυτό είναι GDB;
Γιατί θέλουμε να χρησιμοποιήσουμε GDB;
Υψηλότερο επίπεδο, πιο θεμελιώδη κατανόηση ερωτήσεις.
Έτσι, θα δείτε ένα μίγμα οι δυο τους σε ένα κουίζ σας.
>> Οτιδήποτε άλλο πριν κεφάλι κατ 'ευθείαν σε αυτό;
ΕΝΤΆΞΕΙ.
Κοινό: Μία ακόμη.
ΚΑΘΗΓΗΤΗΣ: Ω, ένα περισσότερο.
Συγνώμη.
>> Κοινό: Ναι, αυτό είναι εντάξει.
Έτσι που λέτε είναι 75 λεπτά πολύ μικρή, όπως είναι απίθανο
ότι θα τελειώσουμε;
Ή, όπως, 75 λεπτά είναι ακριβώς όπως πολύ χρόνο
όπως θα πρέπει αν ήμασταν κατάλληλα προετοιμασμένοι;
ΚΑΘΗΓΗΤΗΣ: Εντάξει, έτσι η κουίζ είναι προκλητική.
Είναι σίγουρα δύσκολο.
Θα βρείτε τον εαυτό σας σε σύντομο χρονικό διάστημα.
Θα πρόκειται πιθανώς να χτυπήσει, όπως 10, 15 λεπτά για να πάει, και να είναι όπως, σκατά.
Έχω τόσα πολλά να γίνουν.
Και αυτό είναι εντελώς καλά.
Ο καθένας πρόκειται να αισθάνονται τον ίδιο τρόπο.
>> Απλά να γνωρίζει πολύ καλά πόσο χρόνο έχετε.
Και έτσι γι 'αυτό σας λέω παιδιά κάνουν τα κουίζ πρακτική.
Επειδή πραγματικά δίνει μια μεγάλη αίσθηση από ό, τι το κουίζ θα είναι παρόμοια.
Έτσι, αν βρείτε τον εαυτό σας να είναι σε θέση να ολοκληρώσει την πρακτική
κουίζ σε ένα καλό ποσό των ώρα, μπορείτε να τον εαυτό σας ρυθμό και,
τότε δεν θα έχει πρόβλημα την Τετάρτη ή την Πέμπτη.
>> Δροσερός.
Έτσι, αν ο καθένας νομίζω wants-- οι περισσότεροι άνθρωποι έχουν φύλλα χαρτιού
έξω ήδη.
Πάω να ουσιαστικά μόνο σας δώσει ερωτήσεις δείγμα,
να σας δώσει τα παιδιά, όπως, ένα λίγα λεπτά για να τους κάνουν.
Και θα πάμε πέρα ​​ως τάξη ποιες είναι οι απαντήσεις σε αυτά είναι.
>> Έτσι, αυτό είναι ένα πολύ χαρακτηριστικό προηγούμενη ερώτηση θα
Σας ερωτώ, ακριβώς τη μετατροπή αριθμοί μεταξύ διαφορετικών βάσεων.
Binary, όπως εσείς μπορείτε ανάκληση, είναι η βάση δύο.
Δεκαδικό ψηφίο είναι με βάση το 10, ή αυτό που καθώς οι άνθρωποι ερμηνεύουν συνήθως.
Δεκαεξαδικού βάση 16, που είναι το μηδέν έως εννέα καθώς Α έως F.
>> Έτσι, δεν υπάρχει τέσσερις αριθμούς είμαι ζητώντας εσείς να μετατρέψετε εδώ.
Θα δώσω θέλετε, τρεις έως τέσσερα λεπτά για να σκεφτείτε μέσω πώς
θα πάει για την επίλυση αυτή.
>> Κοινό: μας επιτρέπεται υπολογιστές;
>> ΚΑΘΗΓΗΤΗΣ: Δεν θα Πρέπει αριθμομηχανές, ναι.
Νομίζω ότι βασική Επιπλέον, νομίζω, είναι Όλα τα παιδιά σας θα σας ζητηθεί να το κάνετε.
>> Και ακριβώς γι 'αυτό το είδος έχει μια αίσθηση της, όταν ο καθένας γίνεται, κοιτάζω προς τα πάνω,
κύμα, δεν ξέρω, χαμόγελο, φαίνονται ευχαριστημένοι αν τελειώσατε.
Ναι.
Ίσως μερικά λεπτά ακόμα.
>> Εντάξει, ας το φέρει.
Είμαι σκοπίμως πρόκειται να να σας δώσει τα παιδιά λιγότερο χρόνο
ό, τι ίσως χρειαστεί να κάνει μερικά από αυτά τα προβλήματα,
απλώς και μόνο επειδή θέλω να βεβαιωθείτε ότι παίρνουμε μέσα από μια δέσμη των προβλημάτων.
Έτσι, μην ανησυχείτε αν δεν έχετε έχουν την ευκαιρία να τελειώσει.
Απόλυτα ΟΚ εφ 'όσον έχετε μια ιδέα για το πώς να πάει για αυτό.
Ας πάμε μπροστά και να κάνουμε το πρώτο.
>> Έτσι το πρώτο, δεν θέλει κανείς να μου πει σε δυαδική, τι κάνει το καθένα από αυτά τα ψηφία
αντιπροσωπεύουν την άποψη των τιμών τους;
Ναι;
>> Κοινό: Δύο έως το ισχύς μηδέν, δύο προς ένα.
ΚΑΘΗΓΗΤΗΣ: Ακριβώς.
Έτσι.
>> Δεξιά, έτσι τυπικά όταν είμαστε στη βάση 10
όλα αυτά αντιπροσωπεύουν είναι, όπως, 10 στη βάση του μηδέν, έτσι δεν είναι;
Αυτό είναι ένα μέρος για σας.
Όλα χώρα σας είναι 10 είναι 10 στη δύναμη του ενός.
Μπορείτε θέση 100 είναι 10 με τη δύναμη των δύο.
>> Ό, τι βάσης είστε σε πηγαίνει να κάνει με το ίδιο ακριβώς πράγμα,
μόνο με μια διαφορετική βάση.
Έτσι δυαδικά, όλα αυτά είναι είναι η βάση δύο.
Θα πάμε για να μετατρέψει όλα τα ψηφία σε δύο ανεξάρτητα εξουσία να
του εν λόγω ψηφίου.
Και έτσι με αυτή την έννοια, εμείς μπορεί να έχουν έναν ευκολότερο τρόπο
να είναι σε θέση να προσθέσει επάνω ή Συνοψίζοντας όλα τα νούμερα για
να μετατρέψει σε βάση 10.
>> Έτσι δεν θέλει κανείς να μου πει ποια είναι η απάντηση στο πρώτο είναι στη βάση δέκα;
>> Κοινό: Δύο, [δεν ακούγεται]
ΚΑΘΗΓΗΤΗΣ: Ναι.
Κοινό: 42.
ΚΑΘΗΓΗΤΗΣ: 42, θα πάτε εκεί.
Έτσι, ο τρόπος με τον οποίο πήρα αυτή την απάντηση ήταν από κάνει δύο το πρώτο, που είναι δύο.
Συν δύο το τρίτο, το οποίο είναι οκτώ.
Συν δύο στην πέμπτη, η οποία είναι ό, τι έχει απομείνει.
Θα τα συνοψίσω και είναι 42.
>> Υπάρχει κανείς σύγχυση σχετικά με το πώς φτάσαμε αυτό;
Έτσι βασική Επιπλέον, όπως Είπα, θα πρέπει να είναι εντάξει.
Αν όχι, καλά, μπορούμε να ασκήσουμε ότι πάρα πολύ.
Αλλά αυτό είναι εντάξει.
Δροσερός.
>> Θέλει κανείς να μου δώσει το απάντηση στο δεύτερο, καθώς;
>> 50;
Καλός.
Όποιος σύγχυση σχετικά με το πώς έχουμε ότι είτε;
Cool, θα έχω το απαντήσεις στην επόμενη διαφάνεια.
Έτσι, μην ανησυχείτε, αν Πρέπει να το αντιγράψετε τα κάτω.
>> Εντάξει, έτσι δεκαεξαδικό είναι λίγο πιο περίπλοκη.
αλλά Πάω να σας δείξω παιδιά μια συντόμευση για το πώς να το κάνουμε.
Έτσι, δεκαεξαδικό, όπως σας θυμηθείτε, όλα είναι να είναι 16.
Και επειδή εμείς οι άνθρωποι δεν κάνουν πραγματικότητα έχει 16 αριθμούς για να δηλώνετε ότι,
πάμε από το μηδέν έως εννέα, τα οποία το πρώτο μας 10 αξίες, και στη συνέχεια να κάνουμε A έως F,
τα οποία είναι τα επόμενα έξι αξίες.
>> Και έτσι ο ευκολότερος τρόπος για να πάει από οποιοδήποτε δυαδικό αριθμό σε δεκαεξαδικό
είναι να τους χωρίσω στη μέση.
Και έτσι κάθε δυαδικό αριθμό θα δώσουμε θα έχετε πιθανώς οκτώ ψηφία.
Μπορείτε να σπάσει μόνο τους επάνω στη μέση.
>> Έτσι, το πρώτο ένα-- ένα ένα, ένα ένα, ένα, ένα, ένα ένα.
Είδος το σκέφτομαι, ξέρετε, σχεδιάστε ένα κάθετο ή ένα κόμμα μεταξύ τους.
Και μπορείτε απλά να μετατρέψετε άμεσα, ανεξάρτητα από
αυτό είναι με την πρώτη δεκαεξαδικό αριθμό,
και ό, τι εδώ είναι να το δεύτερο από δεκαεξαδική μορφή.
>> Έτσι, να θυμάστε από το κοινό συμβολισμό, τι αξίες δεκαεξαδικό αρχίσει με;
>> Κοινό: Μηδέν.
>> ΚΑΘΗΓΗΤΗΣ: 0x.
Έτσι, γνωρίζουμε ότι κάθε φορά που σας ζητάμε να μετατρέψετε οποιοδήποτε αριθμό σε δεκαεξαδικό,
ή κάθε φορά που θα δείτε κάποιο αριθμός που ξεκινά με 0x,
Ξέρετε ότι είναι μια δεκαεξαδική τιμή.
>> Και μετά θα πάμε να σας ζητηθεί να καθορίσει ποια είναι αυτά τα δύο ψηφία.
Και ο τρόπος που το κάνουμε αυτό, συμπίπτοντας μέχρι ότι το ήμισυ και ότι αυτά συμφωνούν ότι το ήμισυ μέχρι.
Έτσι, σε αυτό το παράδειγμα, τι Θα το ένα, ένα, ένα, ένα είναι;
Τι αξία θα ήταν αυτό;
Αυτό ήθελα να είναι F, έτσι δεν είναι;
Αυτό θα ήταν 15.
>> Έτσι, αυτό θα ήταν ένα F., ένα, ένα, ένα εδώ είναι, επίσης,
F. Έτσι, ένα, ένα, ένα, ένα, ένα, ένα, ένα, μια σε δεκαεξαδική, όλα είναι είναι 0xFF.
Επειδή αυτό αντιπροσώπευε το ήμισυ F, η αξία των 15,
και αυτό το εξάμηνο αντιπροσωπεύουν F, η τιμή 15.
Επειδή θυμηθείτε, είμαστε αρχής γενομένης από μηδέν έως εννέα.
Ένα είναι σαν 10, Β είναι σαν 11, F είναι 15.
>> Μήπως αυτό έχει νόημα για όλους πώς πήραμε από δυαδικό σε δεκαεξαδικό;
>> Κοινό: Και έτσι, πώς φτάσαμε 15 από τη μια, ένα, ένα, ένα;
ΚΑΘΗΓΗΤΗΣ: Ναι, αυτό είναι δυαδική, σωστά;
Φανταστείτε αυτό είναι μόνο ένα δυαδικό αριθμό.
Έτσι, έχετε δύο για την μηδενικής, η οποία είναι μία.
Κοινό: Ω, εντάξει.
Έτσι, μπορείτε απλά να ανέλθει έξω.
>> ΚΑΘΗΓΗΤΗΣ: Ναι, και στη συνέχεια, απλά ότι συνολικά έξω.
Αυτό είναι όλο αυτό είναι.
>> Κοινό: OK.
>> ΚΑΘΗΓΗΤΗΣ: OK.
>> Κοινό: Έτσι μπορείτε να πάτε από δυαδικό σε δεκαδικό σε δεκαεξαδικό;
>> ΚΑΘΗΓΗΤΗΣ: Αυτή είναι η ευκολότερος τρόπος για να γίνει αυτό, ναι.
Δεν πρόκειται να δεκαδικό γιατί δεκαδικό έχει μόνο μηδέν έως εννέα.
Είμαστε ακριβώς το είδος του το διαχωρισμό αυτό σε δύο.
>> Κοινό: [δεν ακούγεται] χρήση δεκαδικών για να βρείτε
τι ταιριάζει στο δεκαεξαδικό.
ΚΑΘΗΓΗΤΗΣ: Θέλω να πω, είσαι συμπίπτοντας με τη χρήση βασικών μαθηματικών.
Κοινό: Ναι.
ΚΑΘΗΓΗΤΗΣ: Ναι, λίγο πολύ.
Είναι λίγο συγκεχυμένη.
Αλλά ακριβώς ξέρετε ότι μπορεί να διαιρέσει ανεξαρτήτως
Αυτή η τιμή είναι σε μόλις τα μισά.
Κοίτα, τι είναι αυτό σε δυαδική;
Τι αριθμός είναι αυτό;
Είναι πρόκειται να είναι κάτι από το μηδέν έως F.
>> Εδώ πρόκειται επίσης να είναι κάτι από το μηδέν έως F.
Και τότε μπορείτε να βάλετε μόνο αυτοί οι δύο εκεί.
>> Κοινό: OK.
ΚΑΘΗΓΗΤΗΣ: Ναι.
ΕΝΤΆΞΕΙ.
Έτσι, εσείς θέλετε να δοκιμάστε το επόμενο τότε;
Μηδέν, ένα, μηδέν ένα, ένα, μηδέν, ένα μηδέν.
Θα σας δώσω τύπους σαν 30 δευτερόλεπτα, Δεδομένου ότι πιθανώς δεν ξέρατε
Το τέχνασμα για το πώς να το κάνετε αυτό νωρίτερα.
>> Εντάξει, ο καθένας θέλει να πάρει αυτό έναν πυροβολισμό;
>> 0X5A.
ΚΑΘΗΓΗΤΗΣ: 0X5A.
5α.
Καλός.
Έτσι, αυτό εδώ θα be-- θέλετε να μας πείτε πώς πήρατε αυτό;
Πρώτον, πώς βρήκες το πέντε;
>> Κοινό: Επειδή το μηδέν, ένα, μηδέν, ένα είναι πέντε.
>> ΚΑΘΗΓΗΤΗΣ: Μήπως όλοι κατανοούν γιατί μηδέν, ένα, μηδέν, το ένα είναι τα πέντε;
Έχεις έναν εδώ.
Δεν έχετε τίποτα σε δύο με την πρώτη.
Σε δύο στο δεύτερο, που έχουν ένα, το οποίο είναι τέσσερις.
Έτσι, μπορείτε να προσθέσετε το τέσσερα συν το ένα, έχετε πέντε.
Όλοι καλό;
ΕΝΤΆΞΕΙ.
Και τότε τι είναι αυτό και γιατί;
Τι αριθμός δεν αντιστοιχεί σε Α;
>> Κοινό: 10.
>> ΚΑΘΗΓΗΤΗΣ: Και τι είναι αυτό στη βάση δύο;
Κοινό: [δεν ακούγεται]
ΚΑΘΗΓΗΤΗΣ: Ακριβώς.
Έτσι, αυτή η δεύτερη τιμή εδώ θα είναι 0X5A.
>> Όλοι καλό για το πώς να μετατρέψετε;
Είναι πολύ πιο απλό από ό, τι νομίζετε ότι είναι.
Θέλω μόνο να βεβαιωθείτε ξέρετε χρήσιμες συμβουλές
και κόλπα για το πώς να το κάνουμε αυτό.
>> Κοινό: Γιατί μπορείς απλά χωρίσει στη μέση σαν αυτό;
Ακριβώς όπως είναι, εντάξει, είμαι μόνο πρόκειται να νοιάζονται για αυτά τα πρώτα [δεν ακούγεται];
>> ΚΑΘΗΓΗΤΗΣ: Επειδή αυτό είναι στην πραγματικότητα η τρόπο δεκαεξαδικό αξίες εκπροσωπούνται.
0x, που σημαίνει στην πραγματικότητα τίποτε άλλο παρά να σας πω
ότι είναι ένα δεκαεξαδικό αριθμό.
Και αυτό αποτελεί πάντοτε τα πρώτα τέσσερα ψηφία.
Και αυτό αποτελεί πάντοτε τα τέσσερα τελευταία ψηφία.
Και έτσι αυτά τα δύο ψηφία μόνο αντιστοιχούν σε διαφορετικά κομμάτια.
>> Κοινό: Έτσι θα always--
>> ΚΑΘΗΓΗΤΗΣ: Είσαι πάντα πρόκειται να πάρει οκτώ bits αξία.
>> Κοινό: είναι ότι όπως ακριβώς ένα πράγμα εδώ ή ότι ένα πράγμα όλη;
ΚΑΘΗΓΗΤΗΣ: Αυτό είναι μόνο ένα πράγμα σε υπολογιστές, Ναι.
Κοινό: OK.
Φοβερός.
>> ΚΑΘΗΓΗΤΗΣ: Επίσης, οπότε σε αυτό το παράδειγμα που μετατράπηκαν από δυαδική σε δεκαδική,
και από δυαδικό σε δεκαεξαδικό.
Εσείς θέλετε να βεβαιωθείτε ότι έχετε επίσης πρακτική θα τον άλλο τρόπο γύρω.
Έτσι, αν σας έδωσα 0xff, θα μπορούσατε επιστήσω ότι στο δυαδικό, σωστά;
>> Μπορείτε να μετατρέψετε σε δυαδικό F, το οποίο είναι ένα, ένα, ένα, ένα,
F μετατρέψει σε δυαδικό, το οποίο είναι ένα, ένα, ένα, ένα.
>> Γι 'αυτό και μπορεί να σας ζητήσει να κάνετε ο άλλος τρόπος γύρω.
Έτσι δεκαδικό σε δυαδικό, ή δεκαεξαδικό σε δυαδικό.
Έτσι θέλετε να κάνετε βεβαιωθείτε ότι γνωρίζετε τους δύο τρόπους.
Θα σας ζητήσει πιθανότατα ένα συνδυασμός των δύο.
>> Ναι, έχετε μια ερώτηση;
Μπορώ να see-- είσαι καλός;
Κοινό: Ναι.
ΚΑΘΗΓΗΤΗΣ: OK.
Είμαι καλό να διαγράψετε αυτό;
Εξαιρετική.
>> Εντάξει, έτσι ώστε οι απαντήσεις είναι εδώ, αν κάποιος Είναι αξιοπερίεργο αργότερα και μπερδεύονται.
ΕΝΤΆΞΕΙ.
>> Κοινό: Έχει σημασία αν βάλουμε γράμματά μας στην πρωτεύουσα της ή πεζά;
>> ΚΑΘΗΓΗΤΗΣ: Κάνει, επειδή σε δεκαεξαδική, κατά συνθήκη,
Όλοι οι χαρακτήρες κεφαλαία.
Έτσι A έως F είναι πρόκειται να είναι κεφαλαία.
Αν βάλετε ένα πεζό ένα, δεν ξέρω εάν θα σηματοδοτήσει αναγκαστικά λάθος.
Αλλά θεωρητικά, αυτό δεν είναι τεχνικά
πώς είστε υποτίθεται για να το έχετε.
Έτσι, θα πρέπει όλα να είναι κεφαλαία.
Ναι, καλή ερώτηση.
>> ΕΝΤΆΞΕΙ.
Δεύτερο ερώτημα.
Σκεφτείτε αυτό το υπέροχο πρόγραμμα εδώ.
Θα θέσω το ερώτημα, Θα επανέλθω αυτό.
>> Έτσι, πρώτον, αυτό που είναι μέσα του προτύπου io.h ότι είναι προς το συμφέρον της πρόγραμμα;
Δεύτερον, τι κάνει άκυρη σημαίνουν στην τρίτη γραμμή;
Και τρίτον, τι επιστρέφοντας από το μηδέν κύρια, η γραμμή έξι, γενικά σημαίνει;
Αν εσείς θέλετε να γράψετε εκείνους προς τα κάτω, δεδομένου ότι πρέπει να επιστρέψετε
στη διαφάνεια ακριβώς έτσι μπορείτε να δείτε τον κωδικό.
Αυτό είναι ένα παράδειγμα του, όπως, ίσως υψηλότερο επίπεδο, όπου ερώτηση σας ζητάμε
ποια πράγματα σημαίνουν σε ένα πρόγραμμα.
>> Όλοι καλό για μένα να πάει πίσω στη διαφάνεια;
ΟΚ κομπλε.
Γι 'αυτό θα σας δώσω τα παιδιά, όπως ίσως τρεις λεπτά για να δούμε αυτό το πραγματικά γρήγορα.
>> Εντάξει, έτσι αυτό είναι σαν αρκετά εύκολο, εννοιολογικά.
Θέλει κανείς να μου πει τι είναι πρώτα μέσα από το χασίς, συμπεριλαμβανομένων
πρότυπο αρχείο της βιβλιοθήκης io.h μας;
Γιατί χρειαζόμαστε αυτή τη βιβλιοθήκη που περιλαμβάνονται σε αυτό το πρόγραμμα;
Τι κάνουμε εδώ να το χρησιμοποιήσω;
>> Ναι;
>> Κοινό: Είναι ότι όταν θα θέσει το printf;
>> ΚΑΘΗΓΗΤΗΣ: Ακριβώς.
Έτσι printf, κάθε φορά που λαμβάνει μια είσοδο από τον χρήστη
και κάτι εκτύπωσης στην οθόνη, αυτό είναι
το πρότυπο εισόδου, εξόδου βιβλιοθήκη.
Σκεφτείτε αυτό που τρόπο-- εισόδου, εξόδου.
>> Έχω μια έξοδο;
Ναι.
Έτσι ξέρω ότι είμαι πάντα θα Πρέπει η βιβλιοθήκη Τυποποίηση i.o.
>> Έτσι printf είναι η λειτουργία με την οποία θα πρέπει να έχουν πρόσβαση σε
και περιλαμβάνουν το hashtag πρότυπη βιβλιοθήκη i.o.
ΕΝΤΆΞΕΙ.
>> Δεύτερον, τι σημαίνει άκυρο;
Έχουμε το int main (void), τι κάνει άκυρη εδώ να πω εδώ στη γραμμή τρία;
Ναι, στο πίσω μέρος.
>> Κοινό: [δεν ακούγεται]
>> ΚΑΘΗΓΗΤΗΣ: Ακριβώς.
Έτσι θυμηθείτε, έχουμε μάθει ξεκινώντας με το chipset μας
ότι μπορείτε πραγματικά να να αναφερθεί η γραμμή εντολών
επιχειρήματα ότι το πρόγραμμά σας, ώστε να Η κύρια λειτουργία, παίρνει, όπως εσείς, ο χρήστης,
κάλεσε το.
Αν έχουμε κενό, αυτό σημαίνει ότι θα μπορούσε να τρέξει μόνο το πρόγραμμα απ 'ευθείας
χωρίς επιχειρήματα της γραμμής εντολών.
Όλοι σαφείς ως προς αυτό;
ΕΝΤΆΞΕΙ.
>> Και τέλος, γιατί να ασχοληθείς κάνουμε Αυτό το μηδενικό πράγμα εδώ;
Γιατί έχουμε ακόμα μια int main;
Γιατί δεν μπορούμε να έχουμε μόνο void main κενό;
Ναι;
Κοινό: Ακριβώς έτσι ώστε να μπορούμε να να είστε σίγουροι ότι το πρόγραμμα είναι
εξέρχεται επιτυχώς, όπως σε αντίθεση με αν ήταν μετρημένες.
Και θα ξέρουμε ότι αυτό είναι ένα διαφορετικό είδος σφάλματος.
>> ΚΑΘΗΓΗΤΗΣ: Ναι, ακριβώς.
Αυτό είναι μόνο ένα πολύ συμβατικό πράγμα που κάνουμε,
είναι ότι ακριβώς στο τέλος του το πρόγραμμά σας, μόνο και μόνο για να βεβαιωθείτε
ότι η κύρια λειτουργία σας λειτουργεί σωστά,
εμείς πάντα θέλουμε να κάνουμε επιστροφή μηδέν.
Ακόμα κι αν είναι απαραίτητο Δεν βλέπετε ότι το έντυπο πουθενά.
>> Γιατί, όπως προγραμματιστές, ξέρετε, αν Έχετε πολλές διαφορετικές γραμμές κώδικα
και εσείς δεν ξέρετε από πού αυτά πηγαίνουν στραβά,
και αν συμβεί ένα σφάλμα που θέλετε να βεβαιωθείτε ότι μπορείτε να πάρετε αυτό το λάθος.
Και έτσι συνήθως αν κάτι πάει λάθος θα έχουμε μια επιστροφή ενός μόνο
για να βεβαιωθείτε γνωρίζουμε ότι είναι.
Έτσι, αν δείτε μια επιστροφή μηδέν, που συνήθως
σημαίνει ότι το πρόγραμμά σας είναι εκτελέστηκε με επιτυχία.
Καλός?
Δροσερός.
>> Εντάξει, το δεύτερο πρόγραμμα εδώ.
Σκεφτείτε ότι.
Και αν εσείς βλέπετε ένα επιπλέουν, εσείς μπορεί πιθανώς
έχουν μια καλή ιδέα για το τι Είμαι έτοιμος να σας ρωτήσω.
>> Έτσι, όταν το εν λόγω πρόγραμμα εκτελεί, όπως μπορείτε να δείτε,
Δηλώνω έναν πλωτήρα Η κύρια λειτουργία μέσα μου.
Είμαι ονομάζοντάς το «απαντήσει», και είμαι ρύθμιση ότι ισούται με το ένα διαιρείται με το 10.
Είμαι εκτύπωση, σε μία δεκαδικό ψηφίο, που επιπλέουν.
Και τότε είμαι επιστρέφοντας μηδέν.
>> Έτσι, κατά την εκτέλεση του προγράμματος, Αναπολώ άπληστοι τώρα,
Αυτό το πρόγραμμα τυπώνει 0.0.
Όπως όλοι γνωρίζουμε, ελπίζουμε όλοι μας γνωρίζουν, ένας διαιρούμενο με 10 δεν είναι 0,00,
είναι 0,1.
Αλλά να εξηγήσει γιατί το πρόγραμμα αυτό νομίζει ότι 1 διαιρείται με 10 εκτυπώσεις σε 0,1 άλλες
από 0.1;
Θα σας παιδιά δίνουν ίσως σαν 30 δευτερόλεπτα για να σκεφτούμε γρήγορα ακριβώς γι 'αυτό
και θα πάω πίσω στο πρόγραμμα.
>> ΕΝΤΆΞΕΙ.
Όποιος θέλει να του δώσει έναν πυροβολισμό;
Σε τρεις προτάσεις ή λιγότερο, γιατί συνήθως είμαστε
πρόκειται να περιορίσουν όλες τις απαντήσεις με τρεις ποινές ή λιγότερο
έτσι ώστε να μην απλά αναμασούν τυχαία πράγματα επάνω κουίζ σας.
>> Ναι, πάρτε έναν πυροβολισμό.
>> Κοινό: Νομίζω λοιπόν ότι υπάρχει αυτή η πράγμα που ονομάζεται, όπως, [δεν ακούγεται]
Έτσι μπορεί να υπάρχουν, για παράδειγμα, θα μπορούσε να υπάρχει, όπως, 0,09,
ότι, όπου μπορείτε να εκτυπώσετε την πρώτη ψηφίο, θα ήταν να 0.0;
>> ΚΑΘΗΓΗΤΗΣ: Κλείσιμο, δεν είναι αρκετά.
Christabell;
>> Κοινό: Είσαι μία διαίρεση και 10, και είναι και οι δύο ακέραιοι.
Και έτσι ο τρόπος που πρόκειται για την αποθήκευση είναι ως έναν ακέραιο.
Και έτσι το πιο κοντινό ακέραιο θα είναι 0.0.
Και έτσι αυτό είναι 0,1.
ΚΑΘΗΓΗΤΗΣ: Ναι, αυτό είναι πραγματικά καλό.
Αυτή είναι η σωστή απάντηση.
Έτσι, αυτό είναι μια πολύ συγκεχυμένη ιδέα για πολλά παιδιά.
Και θέλω πραγματικά να βεβαιωθείτε ότι Αυτό ενισχύεται στο κεφάλι του καθενός.
>> Έτσι, αυτό που λέμε επιπλέει σημείο ανακρίβεια,
όπου ο λόγος για τον οποίο πολλοί των προγραμμάτων σας σε άπληστους
δεν λειτούργησε αρχικά ήταν επειδή έχετε ξεχάσει να ρίχνει μεταβλητή σας.
Έτσι, αυτό που είπε ο Christabell ήταν απόλυτα σωστή.
>> Ο πλωτήρας είναι εγγενώς ασαφής.
Επειδή σε έναν υπολογιστή, δεξιά, έχουμε ένα πεπερασμένο ποσό των bits της μνήμης
μπορούμε να χρησιμοποιήσουμε για να αντιπροσωπεύσει τους αριθμούς.
Έτσι, για παράδειγμα, αυτό το αναγνωριστικό CS50 is-- Νομίζω ότι είναι ένας υπολογιστής 64-bit.
>> Ο πλωτήρας μπορεί να εκπροσωπείται μόνο από ένα πεπερασμένο ποσό αυτών των bits.
Και έτσι 0,1 με άπειρη μηδενικά, ότι ήταν 0.1 είναι, σωστά;
Αλλά δεν μπορούμε να αποθηκεύουν στην πραγματικότητα ότι ο αριθμός στον υπολογιστή μας.
Εμείς απλά δεν έχουν αρκετή μνήμη για να το πράξουν.
>> Και έτσι η κοντινότερη προσέγγιση της τι είναι αποθηκευμένες στη μνήμη είναι πράγματι
κάτι σαν 0.000 κάτι, κάτι, κάτι, κάτι.
Η οποία, τη στιγμή που θα περικόψτε ότι, για να στρογγυλοποιεί προς τα κάτω 0,0.
>> Και έτσι αυτό το παράδειγμα είναι μόνο μία ότι καταδεικνύει πολλά θέματα
έχουμε όταν είμαστε προσπαθούμε να κάνουμε σωστά μαθηματικά
χωρίς χύτευση ως ένα διαφορετικό ακέραιος.
Έτσι ακριβώς είναι δύσπιστοι όσον αφορά αυτό συμβαίνει.
>> Στις κουίζ, αν σας δώσει μια μπλοκ του κώδικα και είναι σαν,
τι εκτυπώνει στο τέλος;
Και αν είναι κάποια τυχαία τιμή σας παιδιά πρέπει να γνωρίζουν γιατί αυτό συμβαίνει.
Ναι;
>> Κοινό: Περικόψτε είναι να απαλλαγούμε από πάντα μετά από ένα ορισμένο σημείο;
[ΜΗ ΑΚΟΥΣΤΌΣ]
ΚΑΘΗΓΗΤΗΣ: Ναι, έτσι στην πραγματικότητα Αυτό είναι ένα πολύ κακό παράδειγμα,
γιατί ό, τι στην πραγματικότητα 0.100 θα περικόψει στο 0,1.
Αλλά αν ήταν να τρέξει it-- δεν το κάνω θυμάμαι, γιατί πέρυσι
έτρεξε το σε ένα διαφορετικό πρόγραμμα.
Το έτρεξε σε κάτι που ονομάζεται το CS50 συσκευής, η οποία
είναι διαφορετικό από το αναγνωριστικό.
Αυτό ήταν ένα σύστημα 32-bit, νομίζω.
Και έτσι υπήρχαν διαφορετικούς αριθμούς.
>> Αλλά ουσιαστικά, απλά να ξέρετε ότι Η όλη ιδέα της αποκοπής
και πώς κόβει απλά πράγματα μακριά.
Και έτσι αν rounds--
>> Κοινό: Χωρίς στρογγυλοποίησης.
>> ΚΑΘΗΓΗΤΗΣ: Ακριβώς.
Ναι.
Δροσερός.
>> Γεια σου, στο πίσω μέρος.
Είμαστε ακριβώς που πηγαίνει πέρα ​​από κάποια επανεξέταση κουίζ ερωτήσεις.
>> Εντάξει.
Έτσι, θεωρούν ένα διαφορετικό πρόγραμμα εδώ.
Πάω να σας δώσω ένα παιδιά μερικά λεπτά για να διαβάσετε πάνω σε αυτό.
Αυτό είναι κάτι που ήταν για πολύ πρόσφατα ότι πιστεύω φύσηξε πολλά από εσάς
μυαλά παιδιά του.
Αλλά θα πάμε να μιλήσουμε μέσα από αυτό και πάλι μόνο
για να βεβαιωθείτε ότι έχετε καταλαβαίνω απόλυτα.
ΕΝΤΆΞΕΙ.
Όποιος χρειάζεται περισσότερο χρόνο για να διαβάσετε μέσω αυτού του κώδικα;
ΕΝΤΆΞΕΙ.
>> Γι 'αυτό μου φαίνεται ότι σε αυτό το πρόγραμμα είμαι
δημιουργώντας δύο σειρές με τη χρήση GetString.
Ένα κάλεσε s και ένα που ονομάζεται t.
Και αν είναι ίση ισούται προς την άλλη,
θα πρέπει να εκτυπώνεται "You πληκτρολογήστε το ίδιο πράγμα. "
>> Αλλά elsewise, θα εκτυπώσετε, "You δακτυλογραφημένες διαφορετικά πράγματα ", σωστά;
Φαίνεται πολύ, πολύ απλό.
Αλλά, όμως, αν πράγματι προσπαθήσω να γράψω αυτό το πρόγραμμα,
φαίνεται ότι ακόμα και όταν εισάγετε τα ίδια ακριβώς χορδές,
εξακολουθεί να εκτυπώνει, "You δακτυλογραφημένες διαφορετικά πράγματα! "
Υπάρχει κάποιος που θέλει να πάρει ένα πυροβολισμό σε αυτό το πρόγραμμα γιατί πάντα
απαντά ότι οι είσοδοι είναι διαφορετικές, ακόμη και
όταν οι ίδιοι οι λέξεις είναι το ίδιο;
>> Έτσι, αν ήμουν στη θέση να input-- David αγάπη να χρησιμοποιήσουμε ένα παράδειγμα σαν τη μαμά, έτσι δεν είναι;
Πεζά Μ-Ο-Μ για το S, T ισούται με πεζά Μ-Ο-Μ.
Αν έτρεξα αυτό μέσω ότι ο κώδικας, γιατί θα
εκτυπώσετε "έχετε πληκτρολογήσει διαφορετικά πράγματα;"
>> Υπάρχει κάποιος που χρειάζονται περισσότερο χρόνο για να σκεφτεί για αυτό;
Εντάξει, νομίζω ότι είμαστε καλά.
Ναι;
>> Κοινό: Εντάξει, γι 'αυτό είναι κάτι για το όπου είναι αποθηκευμένα στη μνήμη, έτσι δεν είναι;
>> ΚΑΘΗΓΗΤΗΣ: Ναι.
>> Κοινό: Πού είναι σαν, αν αυτό συμβολοσειράς s αποθηκεύονται σε μνήμη spot--
Είμαι εφευρίσκοντας this-- είναι μηδέν.
ΚΑΘΗΓΗΤΗΣ: Σίγουρα.
Κοινό: Και εγχόρδων t αποθηκεύεται σε σημείο μνήμης,
παρόμοια, 167, και στη συνέχεια μηδέν δεν ισούται με 167.
>> ΚΑΘΗΓΗΤΗΣ: Ακριβώς.
Εντάξει, έτσι ώστε να θυμάστε αυτό το απίστευτο αποκάλυψη που σας εξήγησα παιδιά
την περασμένη εβδομάδα, ότι χορδές δεν υπάρχουν πραγματικά;
Όταν δημιουργούμε κάτι που ονομάζεται κορδόνι είμαστε, στην πραγματικότητα,
δημιουργώντας κάτι που ονομάζεται char αστέρων.
Τα οποία όλα είναι είναι ένας δείκτης για ένα string ή σε μια σειρά από χαρακτήρες.
>> Και έτσι σε αυτό το παράδειγμα, αν μου ήταν στην είσοδο Μ-Ο-Μ ο τρόπος
ότι ο υπολογιστής μου θα είναι να αποθηκεύσετε μέσα σε ανάστροφη κάθετο μνήμη μηδέν, έτσι δεν είναι;
Αυτοί οι τέσσερις χαρακτήρες, χαρακτήρες, θα αποθηκεύονται κάπου.
>> Και στη συνέχεια αυτά τα τέσσερα χαρακτήρες, ανάστροφη κάθετο μηδέν,
αποθηκεύονται κάπου αλλού, έτσι δεν είναι;
Δεν έχω καμία ιδέα για το πού οι διευθύνσεις είναι, από όπου και αν κάπου στον υπολογιστή μου.
Αλλά δεν ξέρω ακριβώς πού βρίσκονται.
>> Όταν μπορώ να δημιουργήσω μια σειρά s, όλα αυτά είναι πραγματικά
είναι ένας δείκτης για την ξεκινήστε αυτής της σειράς.
Και όταν μπορώ να δημιουργήσω αυτήν την τιμή t, όλα αυτά είναι ένας δείκτης για εδώ.
Και έτσι όταν προσπαθείτε να εξισώσει και να ελέγξετε
για να δούμε αν s είναι ίσοι ισούται με t, ο υπολογιστής
Είναι πραγματικά μόλις είχαν επιστρέψει σε σας η διεύθυνση αυτού του m
και η διεύθυνση του εν λόγω μέτρων.
Και επειδή είναι δύο ξεχωριστά κομμάτια των δεδομένων
που είναι αποθηκευμένα σε δύο διαφορετικές διευθύνσεις στον υπολογιστή σας,
ο υπολογιστής σας δεν πρόκειται να αναγνωρίζουν τους ως το ίδιο.
Υπάρχει κάποιος που θέλει να δώσει έναν πυροβολισμό σε ό, τι
θα πρέπει να κάνουμε αν θέλουμε να διορθώσουμε αυτό και έχουμε μια σωστή λειτουργία του προγράμματος
αντί?
Σκεφτείτε ότι για ένα ζευγάρι δευτερόλεπτα.
Τι πρέπει να αλλάξουμε για να πάρετε αυτό το πρόγραμμα λειτουργίας
ο τρόπος που θέλουμε να λειτουργεί;
>> Ναι, θέλουν να πάρουν μια μαχαιριά σε αυτό;
>> Κοινό: Μπορούμε να προσπαθήσουμε να dereference το δείκτη και ελέγξτε μέσω του πίνακα;
ΚΑΘΗΓΗΤΗΣ: Αυτός είναι ένας τρόπος για να το κάνουμε.
Λοιπόν, τι είναι το όνομά σας και πάλι;
Λυπάμαι, μου θυμίζουν.
>> Zee: Zee.
ΚΑΘΗΓΗΤΗΣ: Ναι, ναι, τι Zee Προτείνεται θα λειτουργήσει απολύτως.
Δικαίωμα?
Θα μπορούσαμε dereference το δείκτη και πραγματικά να πάμε και πρόσβαση
τα φυσικά δεδομένα μέσα εδώ.
Και μπορούμε να συγκρίνουμε μόνο ολόκληρη την οθόνη.
>> Μπορούμε να πούμε, εντάξει, το δείκτη, να μου δώσει ό, τι είναι μέσα εδώ.
Θα επιστρέψει ένα m.
Και θα έλεγα, δείκτης, να μου δώσει ό, τι είναι μέσα εδώ.
Επιστροφή ένα m.
Κάνουν αυτά τα ματς;
Ναί.
Στη συνέχεια θα προχωρήσουμε.
>> Κρατάμε τον έλεγχο ολόκληρου του δύο χορδές σε όλη τη διαδρομή μέχρι το τέλος
και να δούμε εάν αυτά είναι ίσα, εάν όλες οι τιμές είναι ίσες.
Και εάν όλες οι τιμές είναι ίσες, τότε ξέρουμε ότι οι χορδές είναι αλήθεια.
Απολύτως, αυτό είναι το πώς θα το κάνουμε;
>> Υπάρχει κάποιος που σύγχυση σχετικά με όλα αυτά;
Η όλη ιδέα του πώς χορδές είναι πραγματικά ακριβώς δείκτες,
και πως δεν υπάρχουν πραγματικά;
Και γιατί έχουμε λάθη όπως τον τρόπο που το κάνουμε;
Επειδή Σας εγγυώμαι παιδιά, δείκτες και την κατανομή των χορδών και μνήμη
πρόκειται να έρθει.
>> Ναι;
>> Κοινό: [δεν ακούγεται] dereference αυτό, μπορείτε απλά βάλτε ένα αστέρι [δεν ακούγεται]
ΚΑΘΗΓΗΤΗΣ: Δεξιά.
Έτσι για να derererence ένα μέσο δείκτη να μεταβεί στη συγκεκριμένη διεύθυνση του δείκτη
και τη λήψη των δεδομένων, την τιμή εκεί.
Και ο τρόπος για να γίνει αυτό είναι αστέρι δείκτη.
Μην συγχέετε αυτό.
>> Κοινό: [δεν ακούγεται].
>> ΚΑΘΗΓΗΤΗΣ: Ναι.
Κοινό: Έτσι μπορείτε να γράψετε μόνο αν το άστρο ίση μεταξύ ίσων αστέρι t.
>> ΚΑΘΗΓΗΤΗΣ: Λοιπόν, όχι.
Κανένα.
>> Κοινό: Αυτό δεν είναι αρκετά καλό, σωστά;
>> ΚΑΘΗΓΗΤΗΣ: Δεν είναι, επειδή είστε ελέγχοντας μόνο το πρώτο γράμμα.
Θα πρόκειται πιθανώς να χρειάζονται κάποιου είδους βρόχο που
επαναλαμβάνει με κάθε χαρακτήρας και στις δύο χορδές.
Ναι.
Έτσι, αν θέλετε να ελέγξετε για να δει ακριβώς εάν έχει ξεκινήσει με το ίδιο πράγμα,
μπορείτε να κάνετε αν, αστέρι s είναι ίση με το αστέρι t.
Τότε ξέρεις ότι τουλάχιστον ξεκίνησε με τον ίδιο χαρακτήρα.
>> Ναι;
>> Κοινό: Έτσι ο τρόπος εσείς ότι θα ήταν
όπως ένα ενσωματωμένο βρόχο ή για το δείκτη;
ΚΑΘΗΓΗΤΗΣ: Ναι.
Λίγο πολύ απλά ένα για το βρόχο.
Θυμηθείτε, ο David αναφέρθηκε στην τάξη η ελεύθερη συντακτική ζάχαρη;
Και είχε αυτή την πολύ σύγχυση πράγμα αστέρι t
συν ένα, όπου θα ενταχθούν μέσω και μετακινήστε το δείκτη;
Ο ευκολότερος τρόπος για να γίνει αυτό είναι ακριβώς t από i.
>> Έτσι είναι απλά μια σειρά.
Ο τρόπος που θα έχουν για την βρόχο που έτρεξε από το μηδέν έως το i, όπου
i είναι το μήκος της string, θα μπορούσατε απλά
γράφουν ότι αντί να κάνει η ολόκληρο το δείκτη, πράγμα αναφοράς.
Έτσι, αυτά τα πράγματα είναι ακριβώς ισοδύναμο στον υπολογιστή σας.
>> Εσείς πιθανότατα δεν θα πρέπει να γνωρίζουν ότι,
αλλά είναι καλό να ακριβώς το είδος του έχουν στο πίσω μέρος το μυαλό σας.
Απλά ξέρω ότι ο υπολογιστής αναγνωρίζει διαφορετικά μπλοκ κώδικα
ως το ίδιο πράγμα.
Επειδή αυτό είναι απλά πολύ πιο χρήστη φιλική για μας να το παρουσιάσει σαν να είναι
ένας πίνακας.
Είναι απλά πιο εύκολο.
>> Κοινό: Έτσι, η χρήση strlen να αρέσει, get--
ΚΑΘΗΓΗΤΗΣ: Ναι.
Κοινό: OK.
ΚΑΘΗΓΗΤΗΣ: Θα μπορούσατε χρησιμοποιήστε strlen ή, αν
δεν έχουν strlen μπορείτε απλά να κάνετε μέχρι μέχρι να χτυπήσει ανάποδη μηδέν για τα δύο.
Είτε θα μπορούσε να λειτουργήσει.
Ναι.
Κοινό: Έτσι είναι να dereference κάθε μεμονωμένο χαρακτήρα, αν ήμασταν πραγματικά
γράφοντας τον κωδικό αυτό, θα θα μπορούσε να κάνει απλά t παρένθεση i
ήθελα με το αστέρι μπροστά του;
>> ΚΑΘΗΓΗΤΗΣ: Ναι, είναι ίση μεταξύ ίσων s βραχίονα I, και στη συνέχεια να προχωρήσουμε i
προς τα κάτω μέχρι να χτυπήσει το τέλος.
Ναι, αυτό είναι που θα κάνουμε.
Και θα έχουν πραγματικά ένα επόμενο παράδειγμα, όταν στην πραγματικότητα
γράφετε strlen έτσι εσείς θα το είδος του να πάρει για να παίξει γύρω με το λίγο.
>> Έτσι, ο καθένας είναι σαφής όσον αφορά μόνο τη μνήμη, χορδές, δείκτες, διευθύνσεις ποιότητα;
Μερικές ιδέες υψηλότερο επίπεδο που έχετε σίγουρα θα πρέπει να ξέρετε για το κουίζ
αύριο.
>> Εντάξει.
Καλός.
Ναι.
Εντάξει, έτσι ώστε ένα πράγμα που θα σας ζητήσουμε επίσης σας, όπως κάνουμε κάθε χρόνο σε ένα κουίζ, είναι,
ας υποθέσουμε ότι έχετε ξεχάσει (η οποία φαίνεται να ξεχνούν να κάνουν σε ετήσια βάση)
στην οποία δηλώνεται αρχείο κεφαλίδας strlen.
Και έτσι πρέπει να το ξαναγράψουμε τους εαυτούς μας.
>> Εδώ είναι μια λίστα των κατευθυντήριων γραμμών ότι μπορούμε να σας παρουσιάσουμε
παιδιά όπου μπορείτε να πάρετε για να υποθέσουμε ότι s η σειρά δεν θα είναι μηδενική.
Μπορείτε να υποθέσετε ότι θα ανέλθει τερματίζεται με μια ανάστροφη κάθετο μηδέν.
Έτσι, ξέρετε ότι είναι ό, τι πρόκειται να τελειώσει με.
>> Και, για παράδειγμα, ότι ο μήκος γεια θα είναι πέντε.
Έτσι, μπορείτε να υποθέσετε ότι ένα γεια θα είναι πέντε, H-E-L-L-O.
Δεν χρειάζεται να υποθέσουμε ότι το πίσω μέρος τους λογαριασμούς μηδέν για το μήκος.
>> Αυτό το τελευταίο πράγμα εδώ, δεν κάνουμε ανησυχούν για υπερχείλιση ακεραίου.
Υπάρχει κάποιος που θυμάται τι ακέραιος υπερχείλισης είναι;
>> ΚΟΙΝΟ: υπερβαίνει το μήκος του [δεν ακούγεται].
>> ΚΑΘΗΓΗΤΗΣ: Ναι, μπορείτε να εξηγήσετε λίγο, τι σημαίνει αυτό;
>> Κοινό: Έτσι, υποθέτω ότι πηγαίνει πίσω για παράδειγμα η περικοπή νωρίτερα.
Αλλά εάν έχετε μόνο τόσες πολλές αριθμούς που υπερβαίνουν τον αριθμό των bits
ότι μπορείτε να το εκχωρήσει στην πραγματικότητα ότι θα είναι ακριβώς το είδος των αποκοπεί.
ΚΑΘΗΓΗΤΗΣ: Ναι, έτσι σε ένα τυπικό υπολογιστή, πόσα bits έχουμε;
Κοινό: 32;
ΚΑΘΗΓΗΤΗΣ: Ναι, 32, δεξιά.
Και έτσι αυτό είναι, ό, τι, τέσσερις δισεκατομμύρια, δύο δισεκατομμύρια;
Τέσσερα δισεκατομμύρια, μέχρι τέσσερα δισεκατομμύρια θετικών ακεραίων, έτσι δεν είναι;
Δύο δισεκατομμύρια αρνητικά, δύο δισεκατομμύρια θετική,
εξαρτάται από το πόσο θέλετε να το κάνετε.
>> Και έτσι ουσιαστικά να μπορούμε να έχουμε αρκετά ακεραίων που μπορεί να πάει μέχρι
σε δύο έως 31 μείον 1, σωστά;
Διότι από τη στιγμή που χτύπησε δύο στην 32η, εμείς δεν κάνουμε
έχουν τόσο πολύ μνήμη του υπολογιστή μας.
>> Και έτσι, θεωρητικά, μπορώ θα μπορούσε να καταλήξει σε ένα αριθμό
ότι είναι, όπως, δύο στο 46ο.
Είναι ένα τεράστιο αριθμό-κώλο, αλλά θεωρητικά θα μπορούσατε.
Και έτσι είναι ακέραιος υπερχείλισης αν προσπαθήσετε να δημιουργήσετε έναν ακέραιο που πηγαίνει πέρα ​​από αυτό
ο υπολογιστής σας μπορεί να αποθηκεύσει.
>> Και έτσι εσείς για αυτό το παράδειγμα δεν διαθέτουν
να ανησυχείς για μας να σας δώσω μια γιγαντιαία συμβολοσειράς που είναι δύο έως και το 32ο χαρακτήρες
μακρύς.
Αυτό θα σημαίνει πραγματικά.
>> Εντάξει, έτσι είμαι απλώς πρόκειται να δώσει εσείς η βασική δομή του αυτή.
Θα πάμε να δημιουργήσουμε ένα λειτουργία που ονομάζεται int strlen όπου
Ένα πέρασμα σε ένα αστέρι char, ή κορδόνι, δείκτη προς τη σειρά που ονομάζεται s.
>> Εντάξει, ο καθένας να αντιγράψετε το κάτω.
Δροσερός.
Oops-- άλλο τρόπο.
>> Έτσι, αυτό είναι το είδος του σαν ένα δυσκολότερο κομμάτι του προβλήματος,
γι 'αυτό θα σας δώσω τα παιδιά ίσως πέντε έως έξι λεπτά έως ότου το είδος της Brainstorm
και να γράψει αυτή τη λειτουργία έξω.
>> Κοινό: Εμείς δεν για λογαριασμό [δεν ακούγεται],
δεν έχουμε να χρησιμοποιήσετε ακέραιος;
>> ΚΑΘΗΓΗΤΗΣ: Όχι, δεν το κάνετε.
Θα σας δώσω μια υπόδειξη παιδιά.
Ένας βρόχος while μπορεί να είναι πολύ χρήσιμη εδώ.
Ναι.
Εδώ είναι
καραμέλα.
Candy θα είναι επίσης διαθέσιμη για το κουίζ, νομίζω.
Έτσι, εσείς θα είναι όλα ζαχαρωμένες μέχρι αύριο.
Μπορεί I-- το πήρατε.
>> Κοινό: OK.
ΚΑΘΗΓΗΤΗΣ: Ναι.
>> Ίσως περισσότερο από 30 δευτερόλεπτα ή έτσι.
>> Εντάξει, αν είστε Δεν γίνεται, μην ανησυχείτε.
Θα προχωρήσουμε μέσα από αυτό μαζί.
ΕΝΤΆΞΕΙ.
Έτσι, Πάω να ακριβώς τη διάταξη του βασική δομή για τη λειτουργία αυτή εδώ.
Int strlen.
Κατ 'αρχάς, δεν θέλει κανείς να πει μου τι σημαίνει αυτό int;
Πρέπει να έχουμε σε αυτή τη λειτουργία.
>> Κοινό: strlen [δεν ακούγεται].
ΚΑΘΗΓΗΤΗΣ: Ακριβώς.
Έτσι, ό, τι συμβαίνει εδώ, θα πρέπει να επιστρέφουν έναν ακέραιο.
Και όπως ορίζεται στο spec, θέλουμε να return--
Πάμε για αυτό τα παιδιά, απλά συνεχίστε.
Είναι όλα καλά.
Φάτε όλα, έτσι δεν έχω να το πάρει πίσω, στην πραγματικότητα.
Η int σημαίνει απλά ότι είστε πρόκειται να επιστρέφουν έναν ακέραιο.
>> Τι είναι αυτό το αστέρι char s;
Τι σημαίνει αυτό?
>> Κοινό: Όπως, τι είναι στην είσοδο.
ΚΑΘΗΓΗΤΗΣ: Ακριβώς.
Και αυτό είναι σχεδόν το ίδιο πράγμα όπως char αστέρι;
Κοινό: String;
ΚΑΘΗΓΗΤΗΣ: Ακριβώς.
Έτσι το μόνο που κάνουμε είναι να βρει Αυτό είναι ένας δείκτης σε μια σειρά.
ΕΝΤΆΞΕΙ.
Δροσερός.
>> Επίσης, μην ξεχνάτε, αν ξεχάσουμε για να σας δώσει αυτά τα στηρίγματα,
μην ξεχάσετε να τα γράψετε μόνοι σας.
Επειδή θεωρητικά, ο κώδικάς σας είναι λανθασμένη αν ξεχάσετε να τα γράψω.
Απλά πληρώνουν πάντα προσοχή.
Όπως, τα μικρά πράγματα ότι δεν θα παρατηρήσετε
όταν είστε προγραμματισμού για το laptop σας, επειδή το laptop σας το κάνει για σας;
Μην ξεχνάτε, όταν γράφεις με το χέρι.
Ναι;
>> Κοινό: Αλλά πώς λάθος;
Όπως, παίρνουμε το όλο πρόβλημα λάθος;
>> ΚΑΘΗΓΗΤΗΣ: Όχι, όχι.
Μην ανησυχείτε.
Είναι πραγματικά θεωρητικά δυνατό για να μπορείτε να πάρετε την πλήρη σημεία σε μια ερώτηση
ακόμη και αν ο κώδικάς σας θα ξεμείνετε ποτέ στην πραγματική ζωή.
Σας προτείνω να μην δοκιμάσετε για να συμβεί αυτό.
Για παράδειγμα, όπως και αν όλα που είναι εδώ είναι σωστή,
αλλά ξεχάσετε μια άνω και κάτω τελεία ή ένα στήριγμα, κωδικός σας δεν θα λειτουργεί πραγματικά.
Αλλά μπορούμε να είμαστε ελεήμονες.
>> Ναι;
>> Κοινό: Έχετε να σχολιάσω χειρογράφου μας;
>> ΚΑΘΗΓΗΤΗΣ: Όχι, όχι, όχι ανησυχίες σχετικά με αυτό.
Δεν σχολιασμό.
Στυλ πρέπει να είναι καλό.
Όπως, δεν SMUSH όλα σε μία γραμμή.
Δεν θα είμαστε ευτυχείς μαζί σας, αν το κάνεις αυτό.
>> Υπάρχει κάποιος που θέλει να να μου δώσει την πρώτη γραμμή;
Συμβουλή, είναι πολύ εύκολο.
>> Ναι;
>> Κοινό: Int, η ισούται με μηδέν.
Μόλις συσταθεί μετρητή.
ΚΑΘΗΓΗΤΗΣ: Έτσι θέλουμε κάποια είδος του μετρητή, έτσι δεν είναι;
Είμαι ακριβώς πρόκειται να το ονομάσει "μετράνε" για λόγους αναγνωσιμότητας.
Τι θέλουμε να τίθεται ίσο προς το
>> Κοινό: Μηδέν.
ΚΑΘΗΓΗΤΗΣ: Ναι.
Άνω τελεία.
Είναι επίσης πολύ παράξενο ερωτηματικά σχέδιο.
Απλά πρακτική να το κάνουμε αυτό.
>> Έτσι θέλουμε να έχουμε πρώτα ένας μετρητής του τύπου int.
Επειδή θέλουμε να μετρήσει μέχρι το πώς πολλοί χαρακτήρες ή γράμματα
αυτής της στοιχειοσειράς, έτσι δεν είναι;
Πολύ εύκολο πρώτο βήμα.
>> Εντάξει, ίσως λίγο πιο περίπλοκη τώρα, πώς θα πάμε να το πράξουν;
Υπάρχει κάποιος που θέλει να δώσε μου τη γραμμή του κώδικα
ότι μπορεί να είναι σε θέση να βοηθήσει βρόχο μέσω ό, τι είναι αυτό;
>> Ναι, γενναία ψυχή στο πίσω μέρος;
>> Κοινό: Εντάξει, έτσι ενώ το σημείο αστερίσκους, το ναι, αστέρι του s,
δεν ισούται με μηδέν, τότε κάνουμε κάτι;
ΚΑΘΗΓΗΤΗΣ: Αυτό είναι πραγματικά, πραγματικά κοντά.
Πολύ κοντά.
Έτσι, Πάω να αντιμετωπίσει δύο πράγματα με αυτό.
Πρώτα απ 'όλα, δεν είναι ακριβώς μηδέν.
Τι είναι αυτό?
Είναι η καταληκτική null, η οποία είναι ανάστροφη κάθετο μηδέν.
Έτσι είναι διαφορετικοί σε αφορά τον τρόπο που είναι αποθηκευμένα.
Έτσι είστε πολύ κοντά.
>> Και δεύτερον, δεν θέλουμε για να μετακινήσετε το δείκτη ακριβώς.
Θέλουμε πραγματικά να πρόσβαση στις τιμές, έτσι δεν είναι;
Και έτσι πώς το κάνουμε αυτό;
Πολυ ευκολο.
Μην σκεφτείτε δείκτες, Δεν νομίζω ότι για τις αναμνήσεις.
Επιστρέψτε στην εβδομάδα δύο από αυτό το μάθημα.
>> Κοινό: [δεν ακούγεται].
ΚΑΘΗΓΗΤΗΣ: Από, θυμάσαι;
Τι είναι οι χορδές;
Πώς θα αποθηκεύονται στη μνήμη;
>> Κοινό: Είναι τέθηκαν.
>> ΚΑΘΗΓΗΤΗΣ: Εκτρέφονται.
Επομένως, πώς έχουμε πρόσβαση κάθε χαρακτήρας μέσα;
>> Κοινό: [δεν ακούγεται].
ΚΑΘΗΓΗΤΗΣ: Ακριβώς.
Έτσι while-- τι συμβαίνει εδώ μέσα;
S του -
>> Κοινό: I.
>> ΚΑΘΗΓΗΤΗΣ: Ω, δεν υπάρχει, έτσι δεν είναι;
>> Κοινό: Ω, μετράνε;
>> ΚΑΘΗΓΗΤΗΣ: Μπορούμε μόνο χρησιμοποιήσετε καταμέτρηση, δεν μπορούμε να κάνουμε;
>> Κοινό: Συγγνώμη, αυτό ονομάζεται i.
>> ΚΑΘΗΓΗΤΗΣ: Ναι, είναι όλα καλά.
Έχουμε μια μεταβλητή εδώ ότι είναι ήδη δηλωθεί ως μετρητής μας.
Έτσι, γιατί δεν μπορούμε απλά να χρησιμοποιήσετε ότι για να μετακινηθείτε μέσα από το βρόχο, ενώ;
Βγάζει νόημα αυτό?
>> Έτσι, ενώ s της count-- δεν θέλει κανείς να μου δώσει ό, τι συμβαίνει μετά από εδώ;
ΚΟΙΝΟ: δεν ίσα.
ΚΑΘΗΓΗΤΗΣ: Μήπως δεν είναι ίσες, σωστά;
Είναι η έκρηξη ισοδυναμεί, θαυμαστικό ισούται με,
ό, τι εσείς θέλετε να καλέστε δεν equal--
>> Κοινό: [δεν ακούγεται].
>> ΚΑΘΗΓΗΤΗΣ: Ναι.
Θυμηθείτε απλά εισαγωγικά είναι για ένα χαρακτήρα και, διπλά εισαγωγικά είναι για ένα string.
Να είστε προσεκτικοί κατά τη χρήση τους.
Έτσι, όταν ψάχνουμε μέσα η συστοιχία, το τελευταίο χαρακτήρα,
γνωρίζουμε ότι δεν θέλουμε να είναι ανάποδη μηδέν.
>> Έτσι, ενώ.
Δεν είμαστε στο τέλος του string.
Τι θέλουμε να κάνουμε μέσα;
>> Κοινό: Θέλουμε να προσθέσετε το μετρητή έτσι ώστε να μετρά συν συν;
ΚΑΘΗΓΗΤΗΣ: Ακριβώς.
Έτσι, εδώ θα πάμε να κάνουμε μετράνε, μετράνε συν συν.
Λείπει ακόμα μια κοινή γραμμή.
Είμαστε σχεδόν εκεί.
Τι μπορούμε να ξεχάσουμε να κάνουμε;
>> Κοινό: Επιστρέφοντας το μηδέν;
>> ΚΑΘΗΓΗΤΗΣ: Θέλετε να επιστρέψετε το μηδέν;
>> Κοινό: Όχι, επιστρέφοντας στην strlen.
Περιμένετε.
ΚΑΘΗΓΗΤΗΣ: Ποια είναι αποθηκευμένα σε;
Κοινό: Count.
Κόμης.
ΚΑΘΗΓΗΤΗΣ: Ακριβώς.
Έτσι, εδώ θα πάμε να επιστρέψει καταμέτρηση.
>> Γιατί αυτό που είμαστε κάνει εδώ ultimately--
έχουμε ένα μετρητή μεταβλητή που είναι πρόκειται να αυξήσει διαμέσου εγχόρδων μας.
Εμείς πάμε για να συνεχίσουμε, να κρατήσει πηγαίνει, και γύρω γύρω σε αυτό το βρόχο.
Και ενώ εμείς δεν είμαστε στο τέλος αυτής της κορδόνι, το οποίο είναι η μηδενική τερματιστή.
>> Και κάθε φορά που περνάμε αυτό, είμαστε προσθέτοντας πάγκο μας.
Και θα πάμε περαιτέρω μαζί σε αυτή την σειρά.
Και στο τέλος, όταν θα χτύπησε την μηδενική τερματισμού,
γνωρίζουμε, OH, μπορούμε να σπάσει, να επιστρέψει την καταμέτρηση.
Έχουμε strlen μας.
>> Μήπως ο καθένας να πάρει το πώς αυτό τέθηκε σε εφαρμογή;
Ενώ loops-- Ξέρω ότι δεν έχουμε γίνεται πάρα πολύ μαζί τους,
αλλά είναι συνήθως πολύ, πολύ χρήσιμο αν
Δεν ξέρω τι είστε διακοπή κατάσταση πρέπει αναγκαστικά να είναι.
>> Ερώτηση?
>> Κοινό: Μπορούμε να γράψετε null σχετικά με την κατάσταση, ενόσω βρίσκονταν;
>> ΚΑΘΗΓΗΤΗΣ: Ενώ;
Ναι, έτσι σε αυτό το πρόβλημα που είχατε παιδιά υποθέτουν ότι s δεν θα είναι μηδενική.
Επειδή θυμηθείτε, θεωρητικά, αν σας έδωσα
ένα δείκτη που ήταν πάρα πολύ μεγάλο της μνήμης, θα σας δώσει την μηδενική, σωστά;
Γι 'αυτό το λειτουργικό το σύστημα θα κάνει.
>> Έτσι, αν δεν είχα να σας πω να αναλάβει s θα είναι μηδενική, θα πρέπει να ελέγξετε.
Έτσι, εδώ, θα κάνατε, αν s ισούται ισούται με null, επιστρέφει ένα.
Κάτι τέτοιο.
Κοινό: [δεν ακούγεται] μηδέν.
ΚΑΘΗΓΗΤΗΣ: Εντάξει, εγώ θα πω σας γιατί δεν μπορούμε να το κάνουμε αυτό.
Επειδή θυμάμαι στη μνήμη, δεξιά, εδώ.
Θα πάμε εδώ.
>> Έχετε τεράστιων ογκόλιθων της μνήμης, όλα με πλέγματα
που αποθηκεύουν διαφορετικές τιμές, έτσι δεν είναι;
Και έτσι όλοι μια σειρά is-- για παράδειγμα, αν θέλουμε να εισάγετε ένα γεια,
θα είναι H-E-L-L-O ανάστροφη κάθετο μηδέν, έτσι δεν είναι;
Και τότε ποιος ξέρει, σαν τυχαίοι πράγματα που είναι εδώ μετά από αυτό.
>> Εμείς δεν γνωρίζουμε πραγματικά τι είναι εκεί.
Και έτσι, αν ήταν να το κάνετε αντί ανάστροφη κάθετο μηδέν,
null, δεν μπορεί να είναι null.
Διότι αυτό ακριβώς μπορεί να σημαίνει κάποια τυχαία άλλα πράγματα
που δεν ανήκουν στο κορδόνι σας.
Και έτσι ο τρόπος που πάντα ξέρουν ότι μια σειρά τελειώνει είναι μια κάθετος μηδέν.
Και έτσι αυτό είναι πάντα το πώς μπορούμε ελέγξτε για να δείτε το τέλος μιας συμβολοσειράς.
>> Null, όλα αυτά μέσα είναι, αν έχετε ένα ανύπαρκτο δείκτη, πρώτα από όλα,
ή αν η μνήμη σου είναι τόσο μεγάλη, ώστε δεν μπορείτε να το επιστρέψει, τότε θα ήθελα να είναι μηδενική.
Γι 'αυτό να είστε πολύ προσεκτικοί κατά τη διαφοροποίηση η διαφορά μεταξύ null
και η αντίστροφη κάθετος μηδέν.
Ναι.
>> Όλοι εντάξει με αυτό;
ΕΝΤΆΞΕΙ.
>> Είχα, λοιπόν, εσείς γράφετε έξω strlen.
Εφικτούς θα μπορούσαμε επίσης να ζητήσετε να σας γράψω από Α έως Ι, να θυμάστε ότι "Atwoa"
ή ό, τι εσείς θέλετε να το ονομάσετε;
Που λειτουργούν σε Vigenere και Καίσαρα, ότι
μετατρέπει μια τιμή ASCII σε ακέραιο;
Αυτό, επίσης, έχει καταλήξει στο παρελθόν κουίζ των λειτουργιών που έχουμε να σας ζητηθεί να γράψετε.
>> Λίγο πολύ οποιαδήποτε λειτουργία ότι έχετε χρησιμοποιήσει και είναι
πολύ εύκολο να γράψει τον εαυτό σας, αισθητήρες αρέσει είναι χαμηλότερο,
είναι άνω, να μειώσει, στο ανώτερο.
Λειτουργίες που θα μετατρέψει ένα κορδόνι από πεζά σε κεφαλαία.
Όλοι γνωρίζουμε πώς να το κάνουμε αυτό, σωστά;
Είναι αρκετά εύκολο.
Απλά θέλετε να βεβαιωθείτε ότι έχετε can-- είναι η ίδια διαδικασία σκέψης.
Απλά διέτρεξε και θα αλλάξει τα πράγματα.
Μπορείτε είτε να μετρά ή όταν στρίβετε τα πράγματα διαφορετικά.
>> Θα ήθελα να έχω suggest-- Δεν ξέρω αν θα πάμε
να σας ζητήσω να απομνημονεύσετε τι κεφαλαίου Α ή κεφάλαιο Ζ, ή πεζά Α ή πεζά
z είναι σε ASCII, αλλά θα ήθελα να προτείνω ίσως γράφοντας ότι προβλέπεται σε περίπτωση
κανουμε.
Ακριβώς έτσι εσείς έχετε μια αναφορά.
Όπως κεφαλαίο Α είναι, τι, 197;
Και τότε είναι σαν πεζά 50 κάτι.
65, ναι, εκεί θα πάτε.
Έτσι απλά λίγο πολύ γνωρίζουμε την διαφορά μεταξύ τους είναι 32.
Αυτό είναι πολύ σημαντικό.
Ναι.
Είμαι καλός σε αυτό;
ΕΝΤΆΞΕΙ.
>> Κοινό: Θα μπορούσαμε θεωρητικά γράψει μερικά
από αυτά τα κάτω, καθώς και για little-- μας
>> ΚΑΘΗΓΗΤΗΣ: Μπορείτε θεωρητικά θα μπορούσε απλά να αντιγράψετε τη λειτουργία κάτω.
Αυτό είναι αλήθεια.
>> Κοινό: Δεν [δεν ακούγεται].
>> ΚΑΘΗΓΗΤΗΣ: Εσείς έχετε ένα φύλλο.
Εσείς έχετε ένα φύλλο σημείωμα.
Μπορείτε να πληκτρολογήσετε.
Μπορείτε να το γράψετε.
Μπορείτε να κάνετε ό, τι θέλετε με αυτό.
Ναι.
Έτσι, θεωρητικά, εάν θέλετε να, πάει για.
>> Κοινό: [δεν ακούγεται] αλλά δεν το κάνουμε πραγματικότητα
αναγκαστικά πρέπει να θυμάστε η τιμή, μπορούμε μόνο
χρησιμοποιήστε το για να ανώτερη ή λειτουργία των κάτω, έτσι δεν είναι;
ΚΑΘΗΓΗΤΗΣ: Ναι.
Αλλά αν σας δώσαμε μια ερώτηση που λέει να γράψει επάνω,
τότε θα πρέπει να το γράψω.
Έτσι, εσείς μπορείτε να υποθέσετε ότι έχετε παιδιά να έχουν πρόσβαση σε όλες τις λειτουργίες,
αλλά αν θέλετε να χρησιμοποιήσετε για την ανώτερη ή κάτω, τι έχετε να κάνετε;
>> Κοινό: [δεν ακούγεται] χρησιμοποιήσετε CS50 [δεν ακούγεται]
>> ΚΑΘΗΓΗΤΗΣ: Είναι CS50.h;
Να είστε προσεκτικοί εκεί.
>> Έτσι, στο ανώτερο, να μειώσει, είναι ανώτερη, είναι χαμηλότερη,
λειτουργίες που περιλαμβάνουν χειρισμός συμβολοσειρών είναι
όλα μέσα είτε με ASCII ή μέσα στη βιβλιοθήκη μαθηματικά
ή εντός της βιβλιοθήκης χορδή.
Έτσι, αν εσείς χρησιμοποιείτε εκείνους λειτουργίες, να είναι προσεκτικοί για να θυμόμαστε
να περιλάβει την μπάλα.
Έτσι, ίσως, επίσης, κάτι που θέλετε να συμπεριλάβετε στο φύλλο σας,
ποια είναι η επικεφαλίδα;
Ποιες είναι οι βιβλιοθήκες έχετε χρησιμοποιήσει;
Ποιες λειτουργίες στο εσωτερικό αυτών των βιβλιοθηκών;
Είναι σημαντικό.
>> Ναι;
>> Κοινό: Θα μπορούσαμε απλά μπάτσος έξω και να κάνω hashtag
μέσω του απολύτως κάθε γράμμα έχουμε ποτέ
όπως φαίνεται σε όλες τις ερωτήσεις;
>> ΚΑΘΗΓΗΤΗΣ: Θα μπορούσε.
Δεν ξέρω πόσο ευτυχής θα πάμε να γίνει στο βαθμό
ότι κουίζ όταν κάθε κομμάτι του κώδικα είναι δύο φορές όσο χρειάζεται να είναι.
Δεν ξέρω, θα μπορούσαμε απογειωθεί ένα σημείο για το στυλ.
Αλλά θεωρητικά σας κώδικας θα ήταν σωστό.
Εσείς θα μπορούσε μπάτσος έξω και ακριβώς περιλαμβάνουν τα πάντα.
Αυτό είναι πάρα πολύ ωραία, ναι.
Κοινό: [δεν ακούγεται].
ΚΑΘΗΓΗΤΗΣ: Ναι.
Θα πρότεινα να μην το κάνουμε αυτό όμως.
Ναι.
Κοινό: Cool.
ΚΑΘΗΓΗΤΗΣ: Καλή ερώτηση.
Κοινό: Έτσι, το χειρότερο σενάριο.
ΚΑΘΗΓΗΤΗΣ: Η χειρότερη περίπτωση.
Εάν ξεχάσετε εντελώς, θα μπορούσατε να το κάνετε αυτό.
Ναι.
>> Ναι, ο κωδικός είναι σωστό εκεί.
Θα χρησιμοποιηθεί αντί ν καταμέτρηση, αλλά, σας ξέρετε, ό, τι επιπλέει τη βάρκα σας.
Κοινό: Περιμένετε, έτσι ώστε να δεν θα πρέπει να hashtag
περιλαμβάνουν επειδή είμαστε ξεκινώντας από το int;
>> ΚΑΘΗΓΗΤΗΣ: Ναι, απλά υποτίθεται ότι μας ζητήθηκε να γράψω τη λειτουργία.
Αν ήθελε να είναι ασφαλής, μπορείτε πιθανώς θα μπορούσε να το βάλει εκεί.
Αλλά εγώ απλά δεν έκαναν τον κόπο, ναι.
>> Δεν ξέρω καν αν θα χρειάζεται καμία βιβλιοθήκη για αυτό.
Επειδή δεν είστε πραγματικά εκτύπωση τίποτα ή τίποτα, σωστά;
Ναι, δεν ξέρω αν θα πρέπει να έχετε μια βιβλιοθήκη.
>> ΕΝΤΆΞΕΙ.
Αυτό είναι επίσης λίγο περισσότερο μαζί οι γραμμές των πράξεων χειραγώγησης της μνήμης.
Αυτό το είδος είναι λίγο δύσκολο.
Σκεφτείτε για αυτό.
Έχετε μια λειτουργία που ονομάζεται func.
Θα μπορούσα να είχα ονομάσει όποια και αν είναι, αλλά επιλέγω να το όνομα func.
Το έχω πάνω από την κύρια μου.
Θυμηθείτε, θέλετε να έχετε μια λειτουργία μετά κύριας σας,
θέλετε να βεβαιωθείτε ότι έχετε περιλαμβάνουν το πρωτότυπο από την κορυφή.
>> Αλλά στην περίπτωση αυτή ήταν τόσο μικρή ότι ένιωσα ότι θα μπορούσα μόνο
συμπεριλάβετε στην κορυφή του κύριο.
Δεν χρειάζεται να έχετε το πρωτότυπο, επειδή έχει ήδη γράψει παραπάνω.
Έτσι, όλα τα κάνω στην κύρια λειτουργία μου δημιουργεί ακέραιος x ισούται με το 10.
Είμαι καλώντας τη λειτουργία func μου, και στη συνέχεια να εκτυπώσετε κάτι.
>> Και τότε αυτό είναι πράγματι τι λει κάνει.
Εσείς θέλετε να σκέφτονται μέσα από αυτό.
Επειδή είναι λίγο δύσκολο.
Είναι πολύ, πολύ δύσκολο, πραγματικά.
Σκεφτείτε μέσα από ό, τι αυτό το πρόγραμμα θα είναι αποτελεσμάτων.
Θα σας δώσω τα παιδιά δύο λεπτά.
>> Καλή συζητήσεις;
>> Κοινό: Ναι.
>> ΚΑΘΗΓΗΤΗΣ: Ναι.
Εντάξει, έτσι αυτό είναι δύσκολο για έναν λόγο.
Και αυτός είναι ο λόγος που ήθελα να φέρω αυτό την προσοχή όλων.
Θέλει κανείς να μου δώσει μια πρόταση, μια προσπάθεια;
Τι θα ήταν αυτό να εκτυπώσετε;
Εντελώς καλά αν κάνεις λάθος.
Ναι;
>> Κοινό: Νομίζω ότι είναι 100 και Στη συνέχεια 10 σε δύο ξεχωριστές γραμμές.
>> ΚΑΘΗΓΗΤΗΣ: Και ένα 10;
Υπάρχει κάποιος που έχει οποιεσδήποτε άλλες εικασίες;
Ναι;
>> Κοινό: Ίσως επειδή μόλις 10 func δεν επιστρέφει τίποτα;
>> ΚΑΘΗΓΗΤΗΣ: Εντάξει, έτσι ώστε να το νούμερο ένα εικασία
είναι ότι ο αριθμός εικασία δύο είναι ακριβώς πρόκειται να εκτυπώσετε 10.
Υπάρχει κάποιος που έχει οποιεσδήποτε άλλες εικασίες;
ΕΝΤΆΞΕΙ.
Ας περπατήσει μέσα από αυτό, έτσι δεν είναι;
Κάθε φορά που παίρνετε ένα κομμάτι του κώδικα, Δεν ασχολούμαστε μόνο με αυτό και να είναι όπως,
Αχ, αυτό είναι τόσα πράγματα!
Είμαι τόσο συγκεχυμένη!
Όπως, ηρεμήστε κάτω.
Απλά ξέρω ότι θα μπορούσατε απλά κοιτάξετε μέσα από γραμμή κώδικα από τη γραμμή.
Αυτό είναι όλο αυτό είναι.
Είναι σαν να διαβάζει ένα βιβλίο.
>> Έτσι, με κάθε λειτουργία, πάντα ξεκινάμε στο κεντρικό.
Έτσι θα πάμε να ξεκινούν από int main άκυρη,
ακόμη και το πρόγραμμα του ήδη τρέχει προς τα κάτω, έτσι δεν είναι;
Ξεκινήστε στην κύρια άκυρη.
Int x ισούται με το 10.
>> Έτσι, Πάω να σβήσετε αυτό.
Πάω να επιστήσει την μνήμη ακριβώς έτσι παιδιά μπορεί να το είδος του να δούμε τι συμβαίνει.
>> Θυμηθείτε εδώ κάτω έχουμε στοίβα μας;
Μέχρι εδώ έχουμε μας σωρός κάπου εδώ.
Στοίβα μεγαλώνει, έτσι δεν είναι;
Και μέσα στη στοίβα, έχετε το φις λειτουργεί τόσο καλά όσο
όλες τις τοπικές μεταβλητές δικτύου.
>> Μέχρι εδώ, int x είναι ίσο με 10.
Εντός κύρια λειτουργία μας είμαστε δημιουργώντας μια μεταβλητή που ονομάζεται Χ.
Είμαστε ρύθμιση που ισούται με 10.
Εδώ έχετε κάποια x, και είστε ρύθμιση που ισούται με 10, δεξιά,
κατά κύριο.
Όλοι καλό;
>> Λειτουργία.
Έτσι τώρα, μέσα στους βασικούς μας λειτουργία, είμαστε καλώντας
η λειτουργία γράψαμε παραπάνω.
Έτσι είμαστε τώρα αρχίζει η δεύτερη λειτουργία.
Εμείς πάμε για να δημιουργήσετε ένα άλλο μεταβλητή int x ισούται με 100.
Τι συμβαίνει εδώ στην καπνοδόχο;
Τι συμβαίνει όταν καλείτε μια συνάρτηση που δημιουργεί νέες μεταβλητές;
Αυτό που συμβαίνει εδώ στην καπνοδόχο;
>> Κοινό: [δεν ακούγεται] σωρούς στην κορυφή;
ΚΑΘΗΓΗΤΗΣ: Ναι.
Γι 'αυτό στην πραγματικότητα δημιουργεί ένα αντίγραφο.
Και αυτό το είδος των πασσάλων στην κορυφή.
Σκεφτείτε το stack-- μια στοίβα βιβλίων, μια στοίβα από τίποτα.
Σωροί στην κορυφή, για πρώτη φορά στην τελευταία έξω, τελευταία in, first out.
>> Έτσι, πρόκειται για τη δημιουργία ενός χ εδώ.
>> Αυτό πρόκειται να έχουν Όλα τα funcs μεταβλητές.
Εξαιρετική.
Έτσι τώρα έχουμε δύο διαφορετικές χ ότι αποτελούν δύο πολύ διαφορετικά πράγματα.
Στη συνέχεια, θα πάμε για να εκτυπώσετε έξω από το ακέραιο του x.
Ας εκτυπώσετε 100, σωστά;
Επειδή εδώ είναι 100.
Έτσι, αυτό είναι το πρώτο πράγμα που ότι πρόκειται να εκτυπώσετε.
Δεδομένου ότι αυτή η λειτουργία επιστρέφει τίποτα, τώρα που η λειτουργία, η γραμμή στην κύρια
Εγινε.
Όλοι καλή μαζί μου μέχρι τώρα;
>> Έτσι είμαστε τώρα μέσα από δύο από τις τρεις γραμμές κύρια λειτουργία μας.
Τώρα θα πάμε στην τρίτη γραμμή.
Εμείς πάμε για να printf.
Τι είναι αυτό το x στο κύριο;
Τι σημαίνει αυτό αντιπροσωπεύει;
>> Ποια είναι η τιμή χ τώρα;
>> Κοινό: 100.
>> ΚΑΘΗΓΗΤΗΣ: Είναι το 100;
Κοινό: Ακόμα 10.
ΚΑΘΗΓΗΤΗΣ: Ακόμα 10.
Ναι.
Επειδή θυμηθείτε, εντός λει μας, το x ισούται με 100.
Αλλά αν έχουμε επιστρέψει πίσω με το κύριο έργο μας,
ότι μεταβλητή αποθηκεύεται σε μια διαφορετική θέση στην στοίβα μας.
>> Έτσι τώρα πρέπει να πάμε πίσω στο κύρια στοίβα, κεντρικό τροφοδοτικό τοπικές μεταβλητές.
Και εδώ το x είναι ίσο με 10.
Και έτσι θα πάμε για να εκτυπώσετε 10.
>> Έτσι, η ίδια είχε απόλυτο δίκιο.
Εμείς πάμε για να έχουν το εξόδου 100 και 10.
Ναι;
Κοινό: Όταν malloc, είναι η σωρό ή στοίβα που είναι [δεν ακούγεται];
ΚΑΘΗΓΗΤΗΣ: Όταν malloc, παίρνετε μνήμης από το σωρό
και την κατανομή.
Έτσι ώστε να μην χρειάζεται να το χάος με οποιαδήποτε από αυτό.
Έτσι υποθέτω ότι το μεγαλύτερο πακέτο Εδώ είναι κάτι που ονομάζεται πεδίο.
>> Για όσους από εσάς ήταν σε η συνεδρίαση επανεξέτασης χθες το βράδυ,
μιλήσαμε για λίγο για αυτό.
Πεδίο εφαρμογής καθορίζει τον τρόπο και όταν υπάρχουν μεταβλητές σας.
Ή μέσα σε ό, τι Πλαίσια όντως υπάρχουν μεταβλητές σας.
>> Λίγο πολύ ο κανόνας γενικά Είναι, variables-- σας, εάν τα δημιουργήσετε
μέσα σγουρά braces-- υπάρχουν μόνο μέσα σε αυτά τα άγκιστρα.
>> Έτσι, για παράδειγμα σε συνάρτηση με μας λει, μπορείτε να δείτε αυτά τα δύο στηρίγματα.
Αν είστε δημιουργία τίποτα στο εσωτερικό του,
οι πιθανότητες είναι το μόνο που κάνουμε είναι δημιουργώντας μια στοίβα και την αποθήκευση ώστε εκεί.
Το ίδιο πράγμα σε κύρια.
Αυτό είναι ακριβώς που αποθηκεύονται στο εσωτερικό της κύριας.
>> Επίσης, θέλετε να είστε πολύ, πολύ προσεκτικοί εδώ.
Επειδή το πεδίο εφαρμογής προσφέρεται επίσης η ίδια σε διαφορετικές παραδείγματα.
Έτσι, για παράδειγμα, ένα για βρόχου, για int i ισούται με 0.
Θα είναι λιγότερο από ό, τι, δεν ξέρω, 10.
Ι συν συν.
Και έχεις κώδικα μέσα από αυτό, σωστά;
>> Πού αυτή η μεταβλητή, Εγώ, στην πραγματικότητα υπάρχουν μόνο;
Μόνο μέσα σας για το βρόχο.
Έτσι Σίγουρα πολλοί από εσάς έχετε παιδιά αντιμετωπίσει κατά πάσα πιθανότητα αυτό το σφάλμα όταν
κάνετε προγράμματα στο psets σας.
Πόσοι από σας έχουν προσπαθήσει να χρησιμοποιήσουν i έξω από το βρόχο for και είχε σφάλμα;
Όπως ένα unreferenced ακέραιοι ή κατι τετοιο?
>> Ο λόγος για τον οποίο συμβαίνει αυτό είναι εδώ επειδή είστε
δημιουργώντας κάτι που μόνο υπάρχει μέσα σας για το βρόχο.
Και αν προσπαθήσετε να το χρησιμοποιήσετε, εγώ δεν στην πραγματικότητα υπάρχει έξω από αυτό.
Έτσι, βασικά ένας υπολογιστής λέει, εγώ Δεν ξέρω τι είστε μιλάμε.
Το μόνο που ξέρω είναι ότι ήμουν εδώ, αλλά τώρα πια.
>> Έτσι, αν ήμουν στη θέση να δημιουργήσει ένα για το βρόχο μέσα, σωστά;
Και Πάω να δημιουργήσει ένα άλλο, όπως int j, και να το κάνουμε οτιδήποτε.
Και έχετε κωδικό στο εσωτερικό της ότι βρόχου, j υπάρχει μόνο εδώ.
Αλλά αυτό υπάρχει επίσης στο i.
Και έτσι υπάρχει μόνο j στο πλαίσιο αυτό για το βρόχο,
ενώ εγώ υπάρχει στο όλο θέμα.
>> Όλοι σαφής;
Το ίδιο πράγμα με όρους δηλώσεις εάν θέλετε να δημιουργήσετε τίποτα.
Το ίδιο πράγμα με θηλιές ενώ αν θέλετε να δημιουργήσετε τίποτα.
Αυτό είναι κάτι που πρέπει να πολύ, πολύ προσεκτικοί σχετικά.
Έτσι, αυτό ήταν ένα πραγματικά καλό στο πρόβλημα αίσθηση ότι απέδειξε δύο πράγματα.
Κατέδειξε την πρώτη, το πεδίο εφαρμογής.
Και αυτό αποδεικνύεται Επίσης κατανομή μνήμης.
Επειδή εσείς πρέπει να γνωρίζετε ότι λειτουργίες αναπτύσσονται προς τα πάνω στη στοίβα.
Και αυτό, όταν σας καλούν λειτουργίες, είστε δημιουργία
ουσιαστικά μια νέα στοίβα μνήμης.
Αυτό είναι πολύ διαφορετικό από το τι μνήμη σας δίκτυο είναι.
Ναι.
Μπά!
Όλοι ΟΚ για αυτό;
Αυτό ήταν συγκεχυμένες.
Πολύ καλή θέματα για να πάει πάνω, γιατί είστε πιθανώς
πρόκειται να πάρει κάποιες δύσκολες τα πράγματα όπως ότι για το κουίζ.
Ναι.
Δροσερός.
Θα βάλω να πάρετε 100 σε ένα γραμμή και στη συνέχεια 10 από την άλλη.
Ναι, πολύ καλά.
>> Εντάξει, τώρα εσείς θα πάρετε η ευκαιρία να είναι οι τεχνικοί βοηθοί.
Μπορείτε να πάρετε για να απαντήσει σε όλες τις όμορφες μηνύματα που έχω πάρει πολλές φορές.
>> Έτσι, Αγαπητοί Andi, βλέπω ότι κάτι είναι πηγαίνει στραβά με compiler μου.
Είμαι βέβαιος ότι ο κωδικός μου είναι σωστή, αλλά Παίρνω ένα σφάλμα κατάτμησης
κάθε φορά που τρέχει.
Τι συμβαίνει?
Παρακαλώ βοηθήστε, πολλή αγάπη.
>> Αν εσείς πήρε κάτι σαν ότι το πώς θα απαντούσατε;
Αυτά είναι πραγματικά πολύ συχνές ερωτήσεις που θα σας ζητήσουμε.
Είναι εάν, εμείς θα σας δώσουμε μια το σενάριο, θα μας δώσει
καλύτερη εικασία σας σε ό, τι συμβαίνει.
Όποιος έχει μια μαχαιριά στο τι συμβαίνει;
Ναι;
>> Κοινό: Ίσως αναχθούν η null, κάτι σαν τον δείκτη
είναι στραμμένη σε κάτι μηδενική.
ΚΑΘΗΓΗΤΗΣ: Ναι, αυτό θα ήταν μια παράδειγμα, όταν αυτό θα συμβεί.
Αλλά ποια είναι η μεγαλύτερη εικόνα του τι συμβαίνει εδώ;
Κοινό: είναι αυτό που προσπαθείτε να προσπελάσει μνήμη που δεν είστε
έπρεπε να έχουν πρόσβαση;
ΚΑΘΗΓΗΤΗΣ: Ακριβώς.
Έτσι, σκεφτείτε ένα σφάλμα SEG, μια off ορίων, περιορισμένη περιοχή στη μνήμη
ότι δεν θα πρέπει να είναι συγκινητικό.
>> Έτσι, λίγο πολύ, όταν προσπαθείτε να index-- όπως, για παράδειγμα,
έχετε δηλώσει μια σειρά από μηδέν έως εννέα.
Αλλά θα προσπαθήσουμε να αγγίξει αυτό το 10ο τιμή, δεν έχετε πρόσβαση σε αυτό.
Επειδή δεν έχετε δήλωσε.
Και έτσι ο υπολογιστής σας πρόκειται για να δούμε ότι είναι όπως,
Ωχ, προσπαθείτε να πάτε έξω από τα όρια ενός δείκτη.
Πάω να σας δώσω ένα σφάλμα κατάτμησης.
>> Σκεφτείτε σαν τμήμα, σωστά;
Ένα επιπλέον τμήμα, το σφάλμα είναι όταν προσπαθείτε να παραβιάσετε κάτι
και δεν πρέπει να υπάρχει.
Κατάτμηση σφάλμα είναι ανά πάσα στιγμή θα προσπαθήσουμε να αγγίξει τα πράγματα
ότι δεν θα πρέπει να είναι συγκινητικό.
>> Έτσι κοινά παραδείγματα είναι ένας δείκτης.
Φυσικά, αν προσπαθείτε να αγγίξει ότι ήταν μηδενική,
ότι θα ήταν επίσης λειτουργεί τόσο καλά.
Εάν ο δείκτης σας προσπαθεί να αγγίξτε τα πράγματα που δεν πρέπει να αγγίξει,
ότι θα μπορούσε επίσης να λειτουργεί τόσο καλά.
Οι περισσότεροι συνήθως εσείς θα δείτε αυτό σε μια σειρά.
Όλοι καλό;
>> Κοινό: Έτσι, εάν θέλετε για να αποκτήσετε πρόσβαση στο 10ο σημείο
και υπάρχει μόνο ένα όριο εννέα ή κάτι τέτοιο.
>> ΚΑΘΗΓΗΤΗΣ: Ναι, ακριβώς.
Λίγο πολύ.
Δροσερός.
>> Αγαπητέ Andi.
Έτσι έχουμε αυτά τα υπέροχα πράγματα που ονομάζεται είδη.
Αν Συγχώνευση sort-- όπως πριόνι στο παράδειγμα όταν
Ο David έκανε την όλη πράγμα class-- γιατί,
αν είναι τόσο πολύ πιο γρήγορα από ό, τι οποιοδήποτε από τα άλλα είδη,
γιατί ενοχλεί ακόμα και γνωρίζοντας οποιοδήποτε από τα άλλα είδη;
>> Τι είναι αυτό το θέμα πραγματικά ζητώντας σας;
Ποια είναι τα τρία word--
Κοινό: Ποιο είναι το trade-off;
ΚΑΘΗΓΗΤΗΣ: Ακριβώς.
Γι 'αυτό το ερώτημα ζητάει.
Ποιο είναι το trade-off μεταξύ Συγχώνευση είδος στίχους οποιεσδήποτε άλλες;
>> ΚΟΙΝΟ: Παίρνει τη μνήμη, έτσι δεν είναι;
>> ΚΑΘΗΓΗΤΗΣ: Σας εξηγούν ότι λίγο περισσότερο;
Κατ 'αρχάς ας εξηγήσουμε κατάστημα Συγχώνευση.
Πώς ταξινόμηση με συγχώνευση λειτουργεί;
>> Κοινό: Έτσι λειτουργεί με διαιρώντας τα πάντα σε μισό
και στη συνέχεια βάζοντας μαζί και την ανακατανομή αυτό, ούτως ώστε,
όπως και κάθε φορά που θα συγχωνεύσει τις ομάδες.
ΚΑΘΗΓΗΤΗΣ: Λίγο πολύ.
Έτσι μπορώ να βγάλω αυτό έξω, αλλά θα πάρτε πέντε λεπτά για να το σύρει έξω.
Κοίτα πίσω στα διαφάνειες ενότητα όπου θα καλύπτονται ταξινόμηση με συγχώνευση.
Ακριβώς.
>> Έτσι ο τρόπος συγχώνευσης έργων είδος είναι χωρίζει τα πράγματα κατά το ήμισυ,
και στη συνέχεια να κοιτάζει απλά η πρώτες τιμές όλων αυτών των
ταξινομεί και μόνο αυτό.
Συνεχώς δημιουργεί νέες συστοιχίες και βάζει τα πράγματα όλο και περισσότερο στην τάξη.
Και έτσι ενώ αυτό είναι πραγματικά, πραγματικά γρήγορα γιατί it's-- ξέρετε,
μια δυαδική αναζήτηση είναι n log n.
Είσαι δημιουργώντας έτσι πολλά διαφορετικές σειρές που είστε
χρησιμοποιώντας ένα τεράστιο ποσό της μνήμης.
Και έτσι, ενώ είναι πιο γρήγορα, το εμπόριο off εδώ είναι ότι χρησιμοποιείτε περισσότερη μνήμη.
>> Και έτσι, υπαινιγμός, ταξινομεί και αναζητήσεις καλύφθηκαν πολύ περισσότερο φέτος
από ό, τι ήταν στην προηγούμενη χρόνια.
Εσείς πρέπει να δείτε ότι αντικατοπτρίζεται αναλόγως στο κουίζ.
Θα περάσουν σίγουρα χρόνο πηγαίνοντας πάνω από ό, τι όλα τα διαφορετικά είδη
είναι, πώς δυαδική αναζήτηση, πώς λειτουργεί η αναζήτηση γραμμική.
Πώς να ίσως ψευδοκώδικα κωδικοποιήσει τα έξω.
Ποιες είναι οι ώρες τρέχουν;
Κάτι σαν φορές το τρέξιμο είναι πολύ εύκολο να αντιγράψετε τα κάτω σε ένα φύλλο σημείωμα,
δικαίωμα?
>> Είναι πραγματικά δύσκολο όταν είσαι στη μέση η δοκιμή
και θα πρέπει να καταλάβω.
Αντιγράψτε το προς τα κάτω.
Σας εγγυώμαι είστε Θα πρέπει να γνωρίζετε ότι.
Ποιες είναι οι συμβιβασμοί;
Στη χειρότερη περίπτωση, καλύτερα σενάρια για όλα αυτά, είναι πολύ να γνωρίσουμε.
Ναι;
>> Κοινό: Μήπως θα πρέπει να γνωρίζουν πώς να κώδικα ταξινόμηση με συγχώνευση;
Όπως, χρειαζόμαστε να θυμηθείτε την αναδρομική;
>> ΚΑΘΗΓΗΤΗΣ: Αμφιβάλλω πολύ, απλά γιατί είναι σαν αρκετά περίπλοκη.
Αλλά δεν μπορεί να είναι ανέφικτη αν Σας ζητώ να χρησιμοποιήσετε ψευδοκώδικας έξω.
Ναι.
>> Ναι, εντάξει, ένα περισσότερο.
Αυτό μπορεί να καταλήξει σε Σας τελευταίο κομμάτι σε κομμάτι.
Ναι;
Μήπως όλοι ακούσει αυτό;
>> Εντάξει, οπότε λίγο πολύ πρώτα όλα, το είδος του προγράμματος
θα σας δίνει μια έξοδο όπως αυτό;
Να θυμάστε σας ζητήσαμε να μάθετε Αυτός ο νέος τύπος του εργαλείου εντοπισμού σφαλμάτων;
Ποιο ήταν το όνομά του;
Valgrind, δεξιά
>> Ήταν ένα πρόγραμμα, όπου μπορείτε να καλέσετε που θα μπορούσε να
να παρακολουθείτε όλα τη μνήμη είστε χρησιμοποιώντας στο πρόγραμμά σας και να συνέβαινε.
Έτσι, αν έχετε κάτι, όπως, χαθεί οριστικά, 40 bytes σε ένα μπλοκ.
Μάλλον δεν είστε να θυμόμαστε για να το απελευθερώσετε.
Διότι, αν είστε με τη χρήση bytes της μνήμης, αυτό σημαίνει ότι έχετε πρόσβαση ότι η μνήμη,
αλλά δεν ήταν σε θέση να ελευθερώσετε.
Έτσι θέλετε να κάνετε βεβαιωθείτε ότι είστε επίσης
χρησιμοποιώντας free-- αυτό είναι ένα function-- να ελευθερώσει όλους
της μνήμης ανακατανεμηθεί από malloc.
>> Δροσερός.
Έτσι αυτή τη διαφάνεια, θα έχω επάνω.
Είναι παντού σε πολλές , σε πολλές διαφάνειες διαλέξεων τμήματος.
Είστε σίγουροι ότι θέλετε να είστε σίγουροι ξέρετε ακριβώς όλα αυτά.
Είτε στο φύλλο σημείωσή σας ή αν έχετε θέλετε να το απομνημονεύσετε, μη διστάσετε να.
Αυτό είναι πραγματικά, πραγματικά, πραγματικά σημαντικό.
>> Επίσης ένα πολύ καλό ερώτηση που μπορεί να ζητήσει.
Γιατί είναι επιλογή ματιά σε sort-- Επιλογή sort-- όλους τους χρόνους εκτέλεσης
Τα n τετράγωνο.
Ανεξάρτητα από το πώς ο κατάλογος να έρχεται που είναι, τόσο γιατί είναι sort-- Επιλογής
Θα σας δώσω τα παιδιά 30 δεύτερο σκεφτείτε για αυτό.
Επειδή αυτό είναι το είδος της σύγχυσης.
Πρόκειται κάποια εννοιολογική σκέψη.
Γιατί οι χρόνοι εκτέλεσης είναι η ίδια σε τόσο το χειρότερο και καλύτερο σενάρια;
>> Ναι;
>> Κοινό: Επειδή κάθε είδος Επιλογής θέση ή χώρο σε αυτή τη μικρή συστοιχία
πράγμα ή οτιδήποτε άλλο.
Έτσι, ακόμη και στην καλύτερη των περιπτώσεων, ακόμα κι αν είναι απόλυτα ταξινομημένο,
θα πρέπει ακόμα να είναι όπως, εντάξει, ένα.
Στην πρώτη μου θέση έχω ένα.
Και να περάσουν από όλα αυτά.
Εντάξει, το ένα είναι το μικρότερο.
Και τότε πηγαίνει και πάλι και είναι σαν, ΟΚ, δύο
είναι το μικρότερο από όλα τα πράγματα.
Αλλά εξακολουθεί να έχει να ελέγξουμε κάθε μία.
ΚΑΘΗΓΗΤΗΣ: Ναι.
Έτσι, για παράδειγμα, ας πούμε έχουμε μια λίστα, που έχουν ήδη ταξινομηθεί,
μια σειρά πέντε παρα ένα.
Ο τρόπος επιλογής των ειδών είναι ότι περνά μέσα, ελέγχει αυτά τα δύο.
Κατόπιν ελέγχει αυτά τα δύο.
Και στη συνέχεια, ελέγχει και ελέγχει.
Διατηρεί τον έλεγχο όλων αυτών, ανεξάρτητα από το εάν ή όχι
στην πραγματικότητα είναι ταξινομημένο.
Επειδή αυτό είναι απλά ο τρόπος που λειτουργεί το είδος.
>> Και έτσι αυτή η ερώτηση είναι κάτι σαν ένα εννοιολογικό ζήτημα θα ρωτήσω.
Πού πρώτη, μπορείτε να γνωρίζουμε τι είδους Επιλογής
Είναι, ακριβώς, για να είναι σε θέση να απαντήσει στην ερώτηση.
Θα πρέπει να είναι σε θέση να κατανοήσουν εννοιολογικά τι συμβαίνει.
Και τότε μπορείτε να το εφαρμόσετε και να σκεφτεί, OK Ας φανταστούμε το χειρότερο σενάριο.
Είναι όλα σε φθίνουσα σειρά.
Πώς θα επηρεάσει αυτό είναι;
>> Τι και αν είναι αύξουσα σειρά;
Αν είναι ήδη ταξινομημένο;
Πώς θα ήταν αυτό να επηρεάσει τα runtimes;
Και τότε επιλογής του είδους, θα παρατηρήσετε ότι στην πραγματικότητα δεν έχει σημασία.
Επειδή έχετε τον έλεγχο σε όλη τη τιμές, ανεξάρτητα από το τι συμβαίνει.
>> Και έτσι καλά πράγματα να θυμόμαστε.
Γιατί σε κάποια είδη διαφέρουν από τους άλλους και πόσο καλύτερα και τα χειρότερα σενάρια
θα επηρεάσουν όλα αυτά.
>> Πάω να χτυπήσει πραγματικά σε είδη γιατί αυτό θα είναι στο κουίζ.
Ναι.
ΕΝΤΆΞΕΙ.
Είναι έξι λεπτά που απομένουν.
Μπορώ να πάρω τρία λεπτά ερωτήσεων.
Μπορώ επίσης να τριγυρίζουν για όπως 20 λεπτά μετά την ενότητα
αν θέλετε να κάνετε ερωτήσεις, καθώς και.
Υπάρχει κάποιος που απλά έχουν πραγματικά σύντομη ερωτήσεις ή εννοιολογικά ζητήματα
ότι είναι ασαφές για τώρα;
Ναι;
>> Κοινό: Μπορείτε να μας μιλήσετε λίγο bit για δυαδικούς τελεστές;
>> ΚΑΘΗΓΗΤΗΣ: Ναι.
Έτσι δυαδικούς τελεστές είναι κάτι που πιθανώς
ίσως απλά θέλετε να βάλετε στο φύλλο σας.
Έτσι quickly-- δεν θέλω για να πάει πάρα πολύ σε βάθος
επειδή Χάρβαρντ, στην αναθεώρησή τους συνεδρία, κάλυψε αρκετά καλά.
Λογικό χειριστή, υπάρχει πέντε από αυτούς, σωστά;
>> Υπάρχει αυτό, το οποίο είναι χ ή λειτουργίας, υπάρχει σύμβολο, το οποίο είναι το και το.
Pipe, η οποία είναι η ή.
Και τότε έχετε το δύο διαφορετικούς τύπους βάρδιες.
>> Αν μπορώ να σας δώσω δύο τιμές, εφόσον Σας δίνω, όπως, ένα και ένα.
Τι θα αξιολογήσει με;
Αν σας δώσω αληθινή και πραγματική, αληθινή;
Τι γίνεται αληθής ή ψευδής;
Εξακολουθεί να ισχύει, έτσι δεν είναι;
Επειδή υπάρχει ένα ή.
Θα πιο πιθανό να σας δώσει αριθμούς.
Έτσι θυμηθείτε, ένα ίσον αλήθεια, το μηδέν ισούται με ψευδείς.
Και μπορεί να σας δώσει αυτά τα πράγματα και να σας ζητήσω να μας πει τι συμβαίνει.
Χάρβαρντ που καλύπτει εντός του πρώτου 10 λεπτά της συνεδρίασης μελέτη τους
πραγματικά, πραγματικά καλά.
Έτσι, εσείς θέλετε να κάνετε φροντίστε να κοιτάξουμε πίσω σε αυτό.
>> Κοινό: Είναι pisa5 πρόκειται να είναι στο κουίζ;
ΚΑΘΗΓΗΤΗΣ: Όχι.
Μην ακόμη εξετάσουμε pisa5 τώρα.
Ειναι δυσκολο.
Απλά δεν κάνουν καν τον κόπο κοιτάζοντας pisa5.
>> Ωστόσο, όπως μερικές συμβουλές και προτάσεις, εγώ
Θα πρότεινα να ξεκινήσετε pisa5 μόλις το κουίζ έχει τελειώσει.
Αυτό θα είναι το πιο δύσκολο εβδομάδα, αλλά στη συνέχεια εσείς
θα πρέπει να πέρασε στους λόφους του τροχαίου πράσινο και τα κουτάβια,
και είναι μια χαρά.
>> Η κατηγορία αυτή γίνεται σημαντική ευκολότερη μετά την πέμπτη το chipset.
Ώρες εργασίας γραφείου: ΚΟΙΝΟ είναι Κυριακή και Δευτέρα;
ΚΑΘΗΓΗΤΗΣ: Ναι, έτσι ώρες γραφείου θα Την Κυριακή έως τη Δευτέρα για την PSET.
Ώρες γραφείου απόψε ουσιαστικά ακριβώς θα είναι η κριτική για το κουίζ.
Αν κάποιος θέλει να έρθει και να ζητήσει οι τεχνικοί βοηθοί μια ερώτηση, θα είμαστε εκεί.
>> Θα πάρω ίσως ένα ακόμη ερώτημα αν κάποιος έχει μια ερώτηση;
Ναι;
Κοινό: Όταν είσαι ορισμό των κόμβων, [δεν ακούγεται]
αν σας πω αστέρων κόμβο και στη συνέχεια την επόμενη, κάνει ο υπολογιστής αυτόματα
καταλάβετε ότι είστε αναφέρεται σε άλλο δείκτη;
>> ΚΑΘΗΓΗΤΗΣ: Όχι.
>> Κοινό: Θα πρέπει να επανασύνδεση αυτό [δεν ακούγεται];
>> ΚΑΘΗΓΗΤΗΣ: Έτσι ουσιαστικά το struct ενός κόμβου, θυμηθείτε,
Είναι σαν να δημιουργήσετε τον κόμβο και τότε έχετε ένα δείκτη που ονομάζεται επόμενη.
Το μόνο που κάνετε είναι με η δομή εκεί.
Θα πρέπει να ορίσετε pointer ότι κάπου.
Έτσι, οι υπολογιστές δεν ξέρετε τι κάνει ακόμα.
Θα πρέπει να αναθέσει στην πραγματικότητα, όταν είστε δημιουργώντας συνδεδεμένη λίστα σας.
Και αυτό είναι που κυρίως PSET 5 θα είναι.
Έτσι, υπάρχουν ανησυχίες σχετικά με οποιαδήποτε από ότι αυτή τη στιγμή.
>> Κοινό: Γι 'αυτό δεν χρειάζεται να επικεντρώνονται υπερβολικά σε σχέση λίστα, απλά
η γενική αντίληψη;
>> ΚΑΘΗΓΗΤΗΣ: Ακριβώς λίγο πολύ στοίβες, ουρές, λίστες σύνδεσμο, δέντρα, πίνακες κατακερματισμού.
Απλά να είναι σε θέση να γνωρίζουν τι είναι.
Εμείς δεν πρόκειται να ζητήσει Θέλετε κάτι συγκεκριμένο
γιατί δεν έχουμε πραγματικά κάνει μια το chipset που το καλύπτει κάποια από τα οποία ακόμα.
>> Έτσι, τα τελευταία δύο λεπτά πριν Θα σας απελευθερώσει για να σκοτώσει αυτό το κουίζ.
Λίγο πολύ, όπως, σκεφτείτε για το πώς τώρα εσείς έχετε έρθει σε αυτή την κατηγορία.
>> Θυμάμαι όταν δύο εβδομάδες αυτής της κατηγορίας, κάποιοι από εσάς
να περάσουν τρεις ώρες γράφοντας νερό.
Πόσο καιρό θα σας πάρει παιδιά να γράψουν το νερό τώρα;
30 δευτερόλεπτα, ίσως;
Σκεφτείτε πόσο εσείς έχετε μάθει.
CS είναι ένα πολύ, πολύ δύσκολο θέμα.
Δεν υπάρχει καμία αμφιβολία γι 'αυτό.
Είναι δύσκολο, γι 'αυτό κανείς δεν το μελετά.
Είναι απλά δύσκολο.
Και είναι εντελώς καλά.
>> Και είμαι πραγματικά περήφανος που ο καθένας έχει κάνει αυτό μακριά.
Psets δεν είναι εύκολο.
Θα πάρει πολύ χρόνο.
Εσείς, εγώ ποτέ δεν θα σας ζητήσει να γράψετε το παιχνίδι των 15 ή Vigenere στην PSET.
Δεν χρειάζεται να φρικάρεις ακριβώς γι 'αυτό.
Το μόνο που δοκιμάζουμε εδώ είναι η αξιολόγηση εννοιολογική γνώση σας, καθώς και
καθώς ορισμένες από τις βασικές δεξιότητες σας κωδικοποίησης.
Η δοκιμή είναι σχεδιασμένη να είναι πραγματικά δύσκολο.
Όπως, έχει σχεδιαστεί για να μην πάρει το 100.
Είναι, επίσης, σχεδιαστεί για να πιθανώς δεν είναι σε θέση να τελειώσει σε 75 λεπτά.
Και αυτό είναι εντελώς καλά.
Είμαι ένας μαθητής τον εαυτό μου.
Ξέρω, το μισώ όταν περπατώ από ένα κουίζ είναι όπως, σκατά.
Αυτό ήταν πραγματικά δύσκολο.
Πιθανώς το τι πρόκειται να happen-- και αυτό είναι εντελώς καλά,
Σας λέω ρε παιδιά τώρα.
Τα μέσα σε αυτά τα πράγματα Δεν είναι υψηλά σε όλα.
>> Και για όσους από εσάς έχουν πάρει, όπως,
τριάρια στο πρόβλημα σύνολα σας, αυτό δεν σημαίνει ότι είστε
πρόκειται να πάρει ένα 60 τοις εκατό σε αυτή την κατηγορία.
Εάν μπορείτε να πάρετε το 60% για το κουίζ, που δεν
σημαίνει ότι πρόκειται να να πάρετε μια Α σε αυτή την κατηγορία.
Βλέπουμε, ειδικά εγώ, για Όσοι από εσάς στο τμήμα μου,
Βλέπω πόσο σκληρά εσείς όλοι εργάζονται.
Και εγώ να παρακολουθείτε αυτό.
>> Εσείς θα είναι μια χαρά.
Δεν υπάρχει καμία θεσμική μνήμη του ευτυχία στο τέλος του εξαμήνου.
Επειδή όλα τα παιδιά του Χάρβαρντ λέει τους φίλους τους, ω, θα είστε μια χαρά.
Κανείς δεν σας λέει ότι τα παιδιά εδώ.
Έτσι έχω να σας πω ρε παιδιά ότι εδώ.
>> Εσείς θα είναι μια χαρά.
Είμαι περήφανος για όλους σας παιδιά.
Η δοκιμή θα είναι δύσκολο.
Μελέτη για αυτό, και στη συνέχεια απλά να το πετάξετε.
Ετοιμαστείτε για να μάθουν νέα πράγματα.
Και τρώνε γλυκά.
Έχουμε έχουμε πολλά γλυκά.
>> Πάρτε τον ύπνο μιας καλής νύχτας.
Μην να κοιμηθώ, γιατί ότι θα ήταν πολύ άσχημα.
CS είναι πολύ λογική.
Αν δεν κοιμούνται, δεν μπορεί να λειτουργήσει, και το μυαλό σας δεν μπορεί να λειτουργήσει.
Και θα είμαι εδώ για τα επόμενα 20 λεπτά, αν κάποιος θέλει να κρεμάσει γύρω.
Τα Εσείς πρόκειται να το σκοτώσει.
Καλή τύχη.