>> [Παίζει μουσική]
ALLISON BUCHHOLTZ-AU: Γεια σε όλους.
Καλώς ήρθατε στο πρώτο σας επίσημη τμήμα CS50.
Όπως μπορείτε, να δείτε αυτό είναι τμήμα CS50-όπως, ακριβώς
να σηκώσει ατζέντα μας για σήμερα.
Έτσι, ποιος είμαι, όπως είμαι βέβαιος είστε όλοι αναρωτιούνται.
Είμαι TF σας.
Δεν είμαι απλά ένας τυχαίος φοιτητής ποιος πλαστοπροσωπία TF σας.
>> Και Πάω να περάσουν από το είδος της έχουν τμήματα θα ρέει,
προσδοκίες που έχουμε, πόρους, έτσι καθεξής και ούτω καθεξής.
Εμείς πάμε να μιλήσουμε για συστοιχίες, ASCII λειτουργίες, τα επιχειρήματα της γραμμής εντολών,
και δεν είναι εδώ, αλλά Επίσης, θα πρέπει να βοηθήσει
μπορείτε είδος σκεφτείτε μέσω επόμενη το chipset σας για αυτή την εβδομάδα.
Την οποία είμαι βέβαιος ότι όλοι θα εκτιμήσουν.
>> Έτσι, πρώτα question-- ποιος είμαι εγώ, εκτός από την πληθωρική TF σας εδώ.
Είμαι Alison Buchholtz-Au.
Αυτή είναι η δεύτερη χρονιά μου TFing CS50.
Επίσης TF CS51 την άνοιξη.
Μπορείτε να δείτε και πάλι εκεί αν αποφασίσετε να το πάρετε.
Είμαι, επίσης, ένας PAF, έτσι ώστε οποιαδήποτε Freshmen-- και αν δεν είστε ένας καινούριος,
Αυτή είναι η τρίτη χρονιά μου ως συμβουλεύοντας τους συναδέλφους.
Είμαι πολύ καλά έμπειρα σε συμβουλεύοντας σας σχετικά με τη ζωή και μαθήματα
στα πλαίσια του CS και όχι στα πλαίσια του CS.
Είμαι Επιστήμης Υπολογιστών συμπυκνωτή.
Είμαι ένας ανώτερος σε Adams Σπίτι, καλύτερο σπίτι.
Και πριν από το άλλαξα σε CS μου δευτεροετών φοιτητών Άνοιξη,
Ήμουν στην πραγματικότητα ένας μηχανικός βιοϊατρικής.
Ήμουν έτοιμος να πάει στο σχολείο Med.
Ήμουν έτοιμος να γίνει χειρουργός τραύμα.
Και αυτό έχει εντελώς άλλαξε από τότε που ανέλαβα CS50.
Πήρα το μάθημα δευτεροετών φοιτητών μου Φθινόπωρο.
Ήταν η πρώτη μου επαφή με την CS ποτέ.
Ήμουν ένας από τους 78% από εσάς που είχε μηδενική εμπειρία που έρχονται σε,
και άλλαξε εντελώς τη ζωή μου.
Και τώρα δουλεύω σε Η Microsoft, και υπέροχη TF σας.
Και CS50 είναι πιθανώς ένα από τις καλύτερες εμπειρίες
ότι είχα εδώ στο Harvard-- τόσο τη λήψη της κατηγορίας
και να είναι σε θέση να βοηθήσει διδάξουν στους μαθητές σαν εσένα.
>> Έτσι είμαι πραγματικά ενθουσιασμένος ότι είστε όλοι εδώ.
Σε περίπτωση που ήρθε στην αργά, υπάρχει καραμέλα,
το οποίο θα πρέπει να αισθάνονται ελεύθερο να έρθει αρπαγή, ή να στείλετε
κάποιος άλλος να το αρπάξει για εσάς.
είναι εντάξει.
Δεν θέλω να φάω αυτό.
Το δωμάτιό μου έχει αρκετή σοκολάτα, έτσι y'all πρέπει να προσπαθήσουμε και να τελειώσει αυτό.
Ξέρω ότι υπάρχουν 100 κομμάτια, αλλά, όπως, 4:00 τη Δευτέρα,
Νομίζω ότι ο καθένας θα μπορούσε να χρησιμοποιήσει λίγη ζάχαρη.
>> Έτσι, όλοι εσείς οι οποίοι είναι επίσημα στο τμήμα μου
θα πρέπει να έχουν πάρει ένα e-mail από μένα με τον αριθμό του τηλεφώνου μου,
email address-- αισθανθείτε ελεύθερος να με προσθέσετε στην Gchat, μη διστάσετε να με προσθέσει στο Facebook,
καθώς επίσης και για τους υπόλοιπους από σας, μπορείτε να μου στείλετε email εδώ.
Υπάρχουν δύο Η του.
Ο καθένας κάνει πάντα σαν δύο L's ή δύο Γ.
Δύο H στο επώνυμο.
Διαφορετικά πρόκειται να αναπηδήσει, και Είμαι δεν πρόκειται να πάρει το email σας.
>> Έτσι, μη διστάσετε να μου στείλετε email, για να επικοινωνήσετε μαζί μου οποιαδήποτε στιγμή.
Δεν μπορώ να πάρω πίσω στο σας μέσα σε 24 λεπτά,
αλλά υπόσχομαι να πάρει πίσω για να σας εντός 24 ωρών.
Αν μου τηλεφωνήσει μισή ώρα πριν το chipset σας οφείλεται, θα είναι σαν,
Δεν έχω ιδέα τι κάνω Allison.
Βοήθησέ με.
Πάω να σας ηρεμήσει, αλλά στο τέλος της ημέρας,
εάν είστε με φωνάζει μισή ώρα πριν το chipset σας οφείλεται με τίποτα γραμμένο,
Πάω να είναι όπως, επίσης, ίσως ήρθε η ώρα να χρησιμοποιεί το εν λόγω τέλη ημέρα.
Γι 'αυτό και θα απαντήσει σε όλες σας αιτήσεις σε ένα πολύ επίκαιρο τρόπο.
Το τηλέφωνό μου είναι συνήθως που συνδέονται με τα χέρια μου.
Εγώ συνήθως ανταποκρίνεται πολύ ταχύτερη από 24 ώρες,
αλλά μπορώ μόνο εγγύηση μια απόκριση 24 ωρών.
>> Εντάξει.
Λοιπόν, γιατί βρισκόμαστε εδώ;
Επίσης, εάν έχετε ερωτήσεις οποιαδήποτε στιγμή, παρακαλώ επιτρέψτε μου να ξέρω.
Μιλάω πολύ.
Μιλάω γρήγορα, αλλά σας παρακαλώ αισθανθείτε ελεύθερος να με διακόψει.
Θα μου δίνει ένα χρονικό περιθώριο, καθώς και.
Έτσι, τα τμήματα είναι ένας χρόνος για εμάς να πραγματικά ακριβώς βουτιά
σε, να πάρει κάποια hands-on εμπειρία, να περάσουν από τα θέματα που αναφέραμε
στην τάξη ή σε υλικά μελέτη η οποία προτείνουμε σε σας παιδιά σε απευθείας σύνδεση.
Και θα είμαστε πραγματικά περνούν μερικοί από αυτούς τους πόρους σε ένα κομμάτι.
>> Έτσι κάποιες σημειώσεις σχετικά με το τμήμα υποστήριξης.
CS50-- ένα από τα πράγματα που κάνει είναι μια από τις αγαπημένες μου κατηγορίες
είναι η αίσθηση ότι δεν είστε ποτέ μόνοι.
Έχουμε ένα προσωπικό άνω των 100 οι άνθρωποι που είναι εδώ για να σας βοηθήσουμε.
Έχουμε τις ώρες γραφείου Από Δευτέρα έως Πέμπτη.
Έτσι, υπάρχουν τόσοι πολλοί άνθρωποι που αγαπούν την τάξη, όπως ακριβώς κάνω
και οι οποίοι είναι πραγματικά εδώ επειδή θέλουν να είναι εδώ.
Οι περισσότεροι από εμάς είναι φοιτητές, και αυτό είναι σαν μια πέμπτη κατηγορία επιπροσθέτως
με το υπόλοιπο των εργασιών μας.
>> Και αυτό είναι πολλή δουλειά, αλλά το κάνουμε επειδή το αγαπάμε,
και αγαπάμε πραγματικά να σας διδάξει και να βοηθήσει να μοιραστούμε τον ενθουσιασμό μας
για το θέμα αυτό και αυτή την κατηγορία.
Επομένως, σας παρακαλώ να επωφεληθούν.
Ελάτε να μας μιλήσετε.
Παίρνω μόνος όταν οι μαθητές μου Δεν μιλάμε για μένα, οπότε αν θέλετε,
έρθει να μου κάνει παρέα.
Θα είναι μεγάλη.
>> Έτσι, το τμήμα είναι προφανώς ένα από τα μεγαλύτερα πράγματα σας.
Θα περάσουν από τα πράγματα ότι έχετε μάθει σε διάλεξη,
κάνουμε κάποιες σύντομες παραδείγματα όταν έχουμε χρόνο,
και γενικά το είδος του να πάρετε μια ιδέα για τα πράγματα
θα πρέπει να σκεφτούμε περίπου για το που το πρόβλημά σας.
Shorts-- πόσοι άνθρωποι πραγματικά παρακολούθησαν το βίντεο από το μηδέν σας
σύντομη;
Όποιος αναγνωρίσει μου;
Έτσι, αυτά είναι πολύ μεγάλη.
Θα πρέπει σίγουρα να παρακολουθήσετε εκείνους.
Μια πολλή δουλειά έχει τεθεί σε αυτά.
Και είναι ακριβώς σήμαινε να είναι δάγκωμα-μεγέθους κομμάτια για να μπορείτε να απλά να παρακολουθήσετε
για τρία ή τέσσερα λεπτά και να πάρετε ένα καλύτερη κατανόηση της έννοιας.
Περπατήστε throughs-- πώς πολλοί άνθρωποι έχουν παρακολουθήσει
τα περάσματα και για τα παλιά;
Zamyla είναι καταπληκτικό, έτσι δεν είναι;
Όπως, μακάρι να ήταν Zamyla μερικές φορές.
Έτσι χρησιμοποιήσει σίγουρα τα πόδια-through σας.
Θα το σπάσει σε κομμάτια μικρά, δάγκωμα-μεγέθους.
Και όταν έχεις αυτές τις τεράστιες προδιαγραφές από το πρόβλημα σύνολα σας,
πρόκειται να είναι πραγματικά σημαντικό να είναι σε θέση να βρείτε ακριβώς κάπου
να ξεκινήσει και να λειτουργήσει αργά μέσα από αυτό.
>> Εντάξει, έχουμε επίσης Study50, η οποία είναι study50.harvard.edu, πιστεύω.
Μπορείτε απλά Google μελέτη, και αυτό θα καταλήξει.
Αυτό είναι ένα από τα καλύτερα τους πόρους που έχουμε.
Είναι Powerpoints με σημειώσεις και την πρακτική προβλήματα για σας
με λύσεις που σας μπορεί πραγματικά να περπατήσετε μέσα.
Έτσι, αν θέλετε ακόμα πιο πρακτική, περισσότερο από ό, τι κάνουμε σε τμήματα ή περισσότερα
από το πρόβλημα σύνολα σας, αυτό είναι πραγματικά ένα μέρος ήθελα να σας ενθαρρύνω να πάει.
Χτίστηκε το περασμένο καλοκαίρι από μερικά από τα πολύ καλοί φίλοι μου.
Και είναι εκπληκτικό.
Στην πραγματικότητα, πολλές από τις διαφάνειες ότι θα πρέπει να χρησιμοποιούν για το τμήμα
θα προέλθει από Study50.
>> Έτσι, ένα μεγάλο μέρος της TFs το χρησιμοποιήσετε.
Και τελικά, όπως εγώ αναφέρθηκε, ώρες γραφείου.
Αν έχετε πρόβλημα με την εργασία, είστε
έχουν πρόβλημα με ένα έννοια, έρχονται σε ώρες γραφείου.
Πηγαίνετε στις αρχές της εβδομάδας, αν μπορείτε.
Βγες έξω με το quad, γιατί αυτό είναι το είδος της στιγμής.
Κανείς δεν θέλει να περπατήσει εκεί έξω.
Αλλά αυτό είναι προς όφελός σας, γιατί τότε είστε
πρόκειται να έχουν όλα αυτά τα TFs, [Δεν ακούγεται] σας περιβάλλουν.
Και ειδικά τώρα, απλά μια συμβουλή, Πέμπτη
είναι πολύ ψύχρα τώρα στο Mather επειδή psets σας
οφείλονται στις Πέμπτες.
Και γνωρίζοντας θέλει να χρησιμοποιούν ακόμη αργά μέρες σας.
>> Έτσι, αν έχετε πρόβλημα με έννοιες,
υπάρχουν πολλά ΤΡ που είναι εκεί για να σας βοηθήσει.
Έτσι βγαίνουν σε Mather την Πέμπτη.
Αν θέλετε να με δείτε, Πάω να είναι εκεί.
Είμαι συνήθως κάνει το δικό μου σπίτι, γιατί κανείς δεν θέλει τη βοήθειά μου.
Έτσι, έρχονται να μας δουν.
>> Γνωρίστε μας στα μισά του δρόμου.
Έτσι, πόσοι άνθρωποι έχουν παρακολουθήσει διαλέξεις ή παρακολούθησαν σε απευθείας σύνδεση;
Πόσοι άνθρωποι πήγαν να Σούπερ τμήμα την περασμένη εβδομάδα;
Cool.
Αυτό είναι πραγματικά μια δίκαιη αριθμό.
Πόσοι από εσάς έχετε διαβάσει σας spec για αυτή την εβδομάδα, για το chipset σας;
Ω, είμαι περήφανος για σας παιδιά!
Περισσότερα καραμέλα για y'all.
>> Καλό, οπότε τι εννοούμε "Ανταποκρίνονται μας στα μισά του δρόμου," είναι
ότι η ενότητα είναι πραγματικά μόνο πρόκειται να είναι εξαιρετικά χρήσιμο για σας
αν έχετε έρθει σε έχοντας διαβάσει σας προδιαγραφή για το chipset σας.
Γιατί όταν πάω μέσα από μια επισκόπηση πράγματα που πρέπει να κοιτάζει έξω για,
δεν πρόκειται να κάνει ως πολύ νόημα αν
Δεν ξέρω τι που το πρόβλημά σας πρόκειται να σας ζητά να κάνετε.
>> Αν δεν έρθει στο τμήμα, προφανώς Δεν μπορώ να είμαι ότι είναι χρήσιμο σε εσάς.
Είμαι δεν πρόκειται να το πάρετε προσωπικά αν που δεν έρχονται στο τμήμα μου τώρα,
αλλά σίγουρα θα έπρεπε.
Αν δεν μπορείτε, να παρακολουθήσετε σε απευθείας σύνδεση.
Είναι εκεί για έναν λόγο.
Mine θα είναι εκεί.
Όπως μπορείτε να παρατηρήσετε, είμαστε καταγράφονται, οπότε αυτό θα είναι εκεί για σας παιδιά.
Όπως επίσης, πρόκειται να lectures-- ότι είναι προφανώς
όπου παίρνετε το ξεκινήστε από το υλικό σας εδώ.
Γι 'αυτό θα προσπαθήσω σίγουρα και σας βοηθήσουμε όσο μπορώ,
αλλά μπορώ να σας συναντήσω μόνο μέχρι τώρα.
Θα πρέπει να το είδος του γνωρίστε μας στα μισά του δρόμου εκεί.
>> Grading-- έτσι, όλοι σας ο οποίος πήρε ένα email από μένα,
είστε επίσημο τμήμα μου.
Θα ταξινόμησης psets σας.
Και θέλω απλώς να πω, ένα πράγμα που θα πρέπει να δίνουν ιδιαίτερη προσοχή στα
είναι τα σχόλια.
Τα σχόλια είναι συχνά πιο χρήσιμη από την πραγματική βαθμολογία σας δίνουμε.
Και τα σχόλια είναι στην πραγματικότητα όπου περνάω πολύ χρόνο μου
όταν είμαι ταξινόμησης.
Θα ήθελα λοιπόν να εκτιμήσουν το αν τα διαβάσετε.
Και είναι πραγματικά πώς θα πάμε για να μάθετε περισσότερα σχετικά με το σχεδιασμό και το στυλ
και τα πράγματα που είναι λίγο λιγότερο κόψιμο και ξηρό.
>> Έτσι πληρώνουν πραγματικά προσοχή σε αυτά τα σχόλια.
Εάν έχετε ερωτήσεις σχετικά με αυτούς, ή ερωτήσεις σχετικά με το αποτέλεσμά σας,
παρακαλούμε να έρθει να μου μιλήσει είτε πριν από το τμήμα,
Θα πιθανώς να κρέμεται έξω στο λόμπι, είτε εκ των υστέρων.
Αν θέλετε να προγραμματίσετε one-on-one συναντήσεις σχετικά με το πώς
μπορείτε να βελτιώσετε αργότερα πρόβλημα σύνολα, απλώς επιτρέψτε μου να ξέρω.
>> Και τότε μόνο ένα ζευγάρι από συμβουλές για σας παιδιά.
Έτσι, ένα από τα μεγαλύτερα πράγματα Τονίζω πάντα σε τμήμα μου
όταν μαθαίνετε πώς να κώδικα είναι για να γράψει τα πράγματα σε χαρτί πρώτα.
Εάν έχετε ένα σχέδιο για το παιχνίδι όπου κωδικό σας χρειάζεται για να πάει
και τι χρειάζεται για να κάνουμε και αυτό είναι κατανεμημένες
σε μικρά κομμάτια του ψευδοκώδικα κώδικα που έχετε γράψει έξω,
θα πάμε να είναι λιγότερο πιθανό να κάνουν λάθη σύνταξη
ή να δημιουργήσετε ένα αν θηλιά που δεν έχει άλλο.
Αν ξέρετε πού βρίσκεστε πρόκειται συνολικά, είστε
λιγότερο πιθανό να κάνουν αυτά τα μικροσκοπικά λάθη που θα σας πάρει μερικές φορές
ώρες για να διορθώσετε, επειδή είστε όπως, όπου είμαι εγώ που λείπει από αυτή την κατηγορία;
>> Σε αυτό το σημείωμα, παρακαλούμε χρησιμοποιήστε Style50.
Ειδικά όταν είστε Θα ώρες γραφείου,
Αν ο κωδικός σας είναι όλα μεταπηδήσει σε μία πλευρά,
είναι η πολιτική πορεία ότι μπορούμε να πούμε, να το διορθώσετε
έτσι ώστε να μοιάζει με Style50 λέει θα έπρεπε, και τότε εμείς θα σας βοηθήσουμε.
Γι 'αυτό θα κάνει τη ζωή σας πιο εύκολη.
Θα κάνουν τη ζωή μας ευκολότερη.
Όλοι είναι ευτυχισμένοι.
Ο καθένας παίρνει καλύτερους βαθμούς.
Δεν είναι ότι αυτό που όλοι θέλουμε;
>> Έτσι γράφουν πράγματα σε χαρτί πριν Έχετε ποτέ αγγίξει τον υπολογιστή σας.
Συζητήστε τα πράγματα σε ένα υψηλό επίπεδο, και βεβαιωθείτε ότι ξέρετε πού πηγαίνετε.
Και αν δεν είστε σίγουροι, καθίσει με κάποιον
και να τους καθοδηγήσει βήμα προς βήμα τι κωδικό σας πρόκειται να κάνει.
Και εννέα φορές από τα 10, θα είναι όπως, OH, ξέχασα ένα αν η κατάσταση
ή ξέχασα ένα ερωτηματικό εδώ ή Είμαι ενημέρωση αυτής της μεταβλητής λάθος.
Έτσι, αυτές είναι οι συμβουλές μου για την επιτυχία.
>> Έτσι, δεδομένου ότι περίπου το ήμισυ των κοιτάς σαν να παρακολουθήσει σούπερ τμήμα,
Είμαι ακριβώς πρόκειται να είναι πολύ εν συντομία να περάσουν από βρόχους,
που δεν ήταν στην αρχική μας ατζέντα.
Αλλά είναι πραγματικά σημαντικό.
Και έτσι Πάω στο είδος της ταχύτητας μέσω αυτών
πριν φτάσουμε σε πραγματική ενότητα μας.
Πριν το κάνω αυτό, υπάρχουν οποιαδήποτε questions-- διοικητικής μέριμνας,
Προσωπικά, δεν υπάρχει οτιδήποτε άλλο θέλετε
να ξέρετε για μένα ή για τμήμα ή τάξη σε γενικές γραμμές;
Όλα καλά;
Εντάξει, δροσερό.
Υπέροχο.
>> Έτσι loops-- εσείς πρέπει όλοι αναγνωρίζουν αυτά τα κομμάτια από το μηδέν.
Έτσι βρόχοι είναι ουσιαστικά μόνο ένας τρόπος για εμάς να κάνουμε κάτι
ορισμένες αριθμό φορών, μερικοί επαναλαμβανόμενη δράση βασίζεται σε κάποια αίρεση.
Έτσι έχουμε τρεις διαφορετικούς τύπους.
Έχουμε για βρόχο, ενώ, και να κάνουμε-λίγο.
>> Έτσι, για loops-- έχουμε μόνο ένα πολύ γενική διάταξη εδώ για ένα βρόχο.
Και αυτό είναι μεγάλο για όταν ξέρεις πώς πολλές φορές κάτι που πρέπει να εκτελέσει.
Όταν μιλάμε για το άλλους βρόχους, θα
δείτε γιατί αυτό είναι μια σημαντική διάκριση.
Αλλά για βρόχους είναι για σετ κάτι.
Ξέρετε ότι μπορείτε είτε να υπολογίζουν τον αριθμό
ή γνωρίζετε τον αριθμό των φορών που θέλετε αυτό επαναλαμβάνεται στην αρχή.
>> Έτσι, αν δείτε εδώ, εμείς έχουν μόνο ένα γενικό είδος
του σκελετού πλαισίου για ένα για το βρόχο εδώ.
Έτσι, για αρχικοποίηση, αυτό είναι όπου Οι μεταβλητές σας αρχικοποιηθεί.
Με Mario, είμαι βέβαιος ότι εσείς έκαναν κάτι σαν int i ισούται με 0.
Αυτός είναι όπου αυτό θα μπορούσε να συμβεί σε μπλε χρώμα.
Έχετε την κατάστασή σας, η οποία είναι αυτό που ελέγχεται κάθε φορά.
Αν αυτή η συνθήκη είναι αληθής, τότε το υπόλοιπο του κώδικα εκτελεί.
Στη συνέχεια, αυτό θα τρέξει again-- και να ρωτήσω.
Και τότε έχουμε την ενημερωμένη έκδοση, όπου είστε ενημέρωση μεταβλητή σας.
Έτσι, και πάλι, με το Mario, είμαι βέβαιος σας παιδιά έκαναν κάτι σαν i συν συν.
Έτσι, κάθε φορά που ο βρόχος έτρεξε, πήρα ενημερώνεται έτσι
ότι όταν ήμασταν το έλεγχο κατά κάποια κατάσταση, θα άλλαζε.
>> Διότι αν απλά έχουν μια στατική μεταβλητή,
αν εκτελεί την πρώτη φορά, είναι ακριβώς πρόκειται να εκτελέσει απείρως.
Έτσι, θα πρέπει να βεβαιωθείτε ότι έχετε ενημερώσετε μεταβλητή σας σωστά.
Και έχουμε επίσης μόνο ένα οπτική αναπαράσταση εκεί.
Όλοι καλό;
Για βρόχους.
Σε περίπτωση που έχουν δει αυτά στο το chipset σας.
Cool.
>> Έτσι, εδώ είναι μόνο ένα απλό παράδειγμα.
Εκτυπώστε Αυτό είναι CS50!
10 φορές.
Και έτσι έχουμε προετοιμασίας μας, όπως βλέπουμε εκεί, με int i
ισούται με 0, για i είναι λιγότερο από 10, και εγώ συν συν.
Και αυτό θα εκτυπώσει ότι 10 φορές.
>> Έτσι, ενώ loops-- ενώ οι βρόχοι είναι μεγάλη όταν εσείς δεν το κάνετε κατ 'ανάγκην
Πρέπει να ξέρετε πόσες φορές είναι πρόκειται να ενημερωθεί στην αρχή.
Μπορείτε απλά να έχουν κάποια κατάσταση που έχει ελεγχθεί.
Και αυτό θα μπορούσε να είναι κάτι σαν while-- Ας πάρουμε ένα παράδειγμα από το chipset σας.
Αν Mario, μπορείτε να προσπαθήσετε να είσοδος ένας αρνητικός αριθμός.
Σωστά;
Θα έπρεπε να εκ νέου προτροπής του χρήστη σας.
Έτσι, μπορείτε να πείτε, καλά, αν ο χρήστης εισάγει κάτι λιγότερο από το μηδέν, εκ νέου άμεση
τους.
Και είμαι σίγουρος ότι θα μπορούσε να έχει ήταν κάτι που μερικοί από εσάς
που χρησιμοποιούνται στον κώδικά σας.
>> Έτσι είναι ένα απλό πράγμα.
Έχετε ενώ, μερικές υπό όρους που ελέγχεται
κάθε φορά που ο κώδικας πηγαίνει να εκτελέσει.
Αν είναι αληθής, θα το τρέξει.
Διαφορετικά, δεν το κάνουμε.
Και τι είναι πραγματικά important-- κάτι
πιστεύουν ότι ο Δαβίδ μίλησε για σε lecture-- είναι τα σιδεράκια.
Όποια και αν είναι εντός των τιράντες είναι αυτό που εκτελείται.
Εάν ξεχάσετε εκείνες τιράντες, πρόκειται μόνο
να είναι απ 'ευθείας από τη γραμμή μετά από αυτό το διάστημα εκτελέστηκε.
>> Έτσι, αν έχετε τρεις πράγματα που υποτίθεται
να συμβεί, όταν αυτό συνθήκη είναι αληθής,
και δεν έχετε αυτές τις τιράντες, μόνο το πρώτο πράγμα που πρόκειται να συμβεί.
Έτσι, είναι πολύ γνώστης του όπου μπορείτε να βάλετε σιδεράκια σας.
Αν έχετε κολλήσει με Style50, Αυτό θα σας βοηθήσει σίγουρα.
Cool.
>> Έτσι, αυτό είναι μια αντίστροφη μέτρηση από το 10 στο μηδέν.
Και όπως βλέπετε εδώ, έχουμε προετοιμαστεί κάποια πάγκο έξω από αυτό.
Ένα πράγμα που είναι διαφορετικό είναι δεν είμαστε αρχικοποίηση μεταβλητών μας
στο βρόχο while μας.
Είναι αρχικοποιείται έξω από αυτό.
Είμαστε απλά απλά βάζοντας το ρυθμίζουν το γιατί ενώ μας.
Έτσι, σε αυτή την περίπτωση, ενώ μέτρηση είναι μεγαλύτερη από μηδέν.
Και εμείς εκτυπώσετε ό, τι μετράνε μας είναι, και τότε θα ελαττώσει μεταβλητή μας.
Και αυτό είναι επίσης ένα άλλο πράγμα που πρέπει να προσέξετε.
Ενημέρωση μας δεν συμβεί μέσα ότι το πρώτο μέρος του βρόχου while.
Αυτό θα συμβεί και στην πραγματικότητα μέσα τα σιδεράκια, το σώμα του κειμένου σας.
>> Έτσι do-ενώ loops-- do-while loops είναι μεγάλη για την επικύρωση του χρήστη.
Έτσι, κάποιοι από εσάς μπορεί να έχετε χρησιμοποιούνται επίσης σε αυτό το chipset σας.
Μπορείτε να πείτε, να κάνει, όπως, να ζητήσει από το χρήστη για την είσοδο.
Και στη συνέχεια, ενώ, όπως, ο εισόδου είναι μικρότερη από κάποιο αριθμό.
>> Έτσι, για μια σαφή περίπτωση με το Mario, το θα κάνει printf, εισάγετε έναν ακέραιο αριθμό,
και στη συνέχεια κάποιες ακέραιος ισούται getint.
Και τότε θα είναι πραγματικά εκτελέσει το κωδικό πρώτα.
Θα πρέπει πραγματικά κάποιο είδος ακέραιο.
Και τότε θα μπορούσαμε να πούμε, ενώ ότι ακέραιος είναι μικρότερος από μηδέν.
Έτσι τι πρόκειται να κάνουμε είναι ότι είναι πρόκειται να εκτελέσει τουλάχιστον μία φορά.
Είναι πρόκειται να ελέγξει την κατάσταση.
Εάν η κατάσταση είναι αλήθεια, αυτό θα τρέξει ξανά.
>> Έτσι do-while loops είναι μεγάλη για την επικύρωση του χρήστη,
γιατί γνωρίζετε τον κωδικό πρόκειται να εκτελέσει τουλάχιστον
μία φορά, ενώ με ενώ βρόχους, δεν είστε
εγγυάται ότι είναι πρόκειται να εκτελέσει μία φορά.
Πρόκειται να ελέγξετε την κατάσταση πρώτα και στη συνέχεια αποφασίσετε να το εκτελέσει,
ενώ ένα do-ενώ θα εκτελέσει τον κώδικα πρώτα
και, στη συνέχεια, ελέγξτε για να δείτε αν θα πρέπει να το επαναλάβω.
Μήπως αυτή τη διάκριση έχουν νόημα για όλους;
ΟΚ.
Cool.
>> Έτσι, στην περίπτωση αυτή, αυτό είναι το είδος τι μιλούσα για,
αυτό επαν-προτροπές μέχρι να μείνετε να πάρει ένα θετικό αριθμό.
Έτσι γνωρίζουμε ότι η printf "Εισάγετε ένα θετικό αριθμό"
και πραγματικά ζητώντας γι 'αυτό εισόδου θα συμβεί τουλάχιστον μία φορά.
Αν ο χρήστης είναι κακό και κρατά εισάγοντας έναν αρνητικό αριθμό, ο οποίος
ξέρει πόσες φορές θα εκτελεστεί.
Αλλά αυτός ο κώδικας είναι εγγυημένη να εκτελέσει τουλάχιστον μία φορά.
Και γι 'αυτό είναι μεγάλη για την επικύρωση των εισροών.
Και θα χρησιμοποιήσετε ότι αρκετά ένα κομμάτι.
>> Εντάξει, οποιεσδήποτε ερωτήσεις μέχρι στιγμής;
Είμαστε όλοι καλά;
Είμαι μιλάμε πάρα πολύ γρήγορα;
Είμαστε καλά;
ΟΚ.
Φοβερός
>> Έτσι θα πάμε για να πάει μπροστά και μιλάμε για συστοιχίες.
Cool.
Έτσι συστοιχίες είναι βασικά μόλις δομές δεδομένων
που μας επιτρέπουν να αποθηκεύσετε πράγματα του ίδιου τύπου.
Έτσι, αν έχετε ποτέ μια σειρά, είναι είτε απλώς πρόκειται να έχουν ints
ή είναι ακριβώς πρόκειται να έχουν πλωτήρες ή είναι ακριβώς πρόκειται να έχουν χαρακτήρες.
Δεν πρόκειται να έχουμε έναν int με μια χαρα με έναν πλωτήρα με ένα διπλό.
Ένα πράγμα.
Οι πίνακες είναι μόνο ένα μέγεθος, ή είναι απλά ένας τύπος.
>> Έτσι, εδώ έχουμε ένα πίνακα μεγέθους τρεις με τρεις ακεραίους σε αυτό.
Θα μπορούσαν να επιπλέει, αλλά είμαστε πρόκειται να πω ints που είστε.
Έτσι, ένα πράγμα που πρέπει να συνειδητοποιήσουμε είναι ότι οι συστοιχίες είναι ένα μέγεθος σετ όταν προετοιμαστεί
τους, και δεν είναι easily-- από τη στιγμή που όλα είναι λιγότερο άνετα,
θα πρέπει να σκεφτείτε ακριβώς τους ως δεν είναι σε θέση να επεκταθεί σε μέγεθος.
Ωστόσο μεγάλο βγεις στον πηγαιμό σειρά σας στην αρχή,
αυτό είναι το μέγεθος πρόκειται να μείνει, επειδή συστοιχίες
είναι συνεχείς μπλοκ της μνήμης.
Και όταν εσείς έχετε σε λίγο περισσότερα
πώς η μνήμη είναι πραγματικά που ορίζονται στο δίσκους και στο σωρό και τη στοίβα,
αυτό θα κάνει λίγο περισσότερο νόημα.
>> Αλλά θα μπορούσατε να σκεφτείτε ακριβώς σαν, είναι απλά μια σειρά από χώρους στο δίσκο σας.
Και δεν μπορεί να εγγυηθεί ότι υπάρχει πρόκειται να είναι ελεύθερο χώρο μετά από αυτό.
Θα μπορούσατε να προετοιμαστεί μια σειρά των τριών και τότε ίσως σας
προετοιμάσει μια άλλη σειρά από πέντε αργότερα, και αυτό είναι σωστό μετά από αυτό.
Έτσι, αν ήταν να πάει παρελθόν spot τρεις σε εκείνη την πρώτη σειρά,
θα πρέπει να γράφει πάνω από κάτι άλλο.
Έτσι συστοιχίες are-- για σας παιδιά, απλά σκεφτείτε τους ως ένα σταθερό μέγεθος.
>> Έτσι, δημιουργώντας μια array-- θα πάμε να χρειαστεί να το κάνετε αυτό αρκετά ένα κομμάτι.
Έτσι, με τον ίδιο τρόπο που έχουμε ένα γενική δομή για μας για βρόχους,
έχουμε ένα ωραίο γενικό δομή για την παράταξη μας.
Επειδή είναι ενός τύπου, όλα τα στοιχεία σε μια σειρά είναι ενός τύπου,
θα πρέπει να προετοιμαστεί τι τύπος είναι.
>> Έτσι, όπως μπορείτε να δείτε εδώ, έχουμε ένα ωραίο τύπο δεδομένων βραχίονα.
Έτσι, αν είμαστε δημιουργία ενός int σειρά, που θα είναι int.
Αν είμαστε δημιουργώντας μια χαρα σειρά, θα είναι ΧΑΡ.
Αν είμαστε δημιουργούμε ένα string σειρά, θα είναι εγχόρδων.
Και στη συνέχεια το όνομα του πίνακα σας, ό, τι θα θέλατε να είναι.
Έτσι, ίσως είναι τα αποτελέσματα της δοκιμής ή ίσως είναι φοιτητές ή ίσως είναι καραμέλα.
Όποια και αν αποφασίσετε να το όνομά σας συστοιχία, αυτό είναι ό, τι θα είναι.
>> Και στη συνέχεια, σε παρένθεση, θα έχουν το μέγεθος που θέλετε.
Έτσι, είμαστε αποθήκευση 10 φοιτητές ή είμαστε αποθήκευση 15 είδη καραμέλα;
Τι δεν.
Έτσι, στο παράδειγμα μας εδώ, είμαστε δημιουργώντας μια σειρά
του μεγέθους των τριών, το οποίο σας παιδιά δείτε εδώ στα δεξιά.
Και όταν συναντηθήκαμε για πρώτη προετοιμαστεί αυτό, τα πάντα είναι ρυθμισμένη στο μηδέν.
Έτσι είναι απλά σκέφτηκα σαν μια κενή πλάκα.
Έχουμε όλα αυτά τα κενά, έχουμε όλοι Αυτά τα κουτιά θα μπορούσε να βάλει τα δεδομένα μας σε,
αλλά είναι ακριβώς κενό προς το παρόν.
>> Έτσι, αν θέλουμε πραγματικά να να τους εκχωρήσετε αυτές τις αξίες,
κάνουμε έτσι όπως ακριβώς κάτω από εδώ δείχνει.
Έτσι, έχετε ό, τι το όνομα σας συστοιχία είναι και τότε τι ευρετήριο που θέλετε.
Έτσι, ο δείκτης αναφέρεται μόνο σε αυτά, όπως, ποια υποδοχή ψάχνουμε.
Και ένα σημαντικό πράγμα που πρέπει να προσέξετε είναι ότι οι συστοιχίες είναι μηδενικό δείκτη.
Έτσι, αν θέλουμε το πρώτο χώρου στη μνήμη της συστοιχίας μας, πρόκειται να είναι μηδέν.
Αν θέλουμε το δεύτερο, αυτό θα είναι ένα.
Αν θέλουμε το τρίτο, αυτό θα είναι δύο.
Ούτω καθεξής και ούτω καθεξής.
>> Ποια είναι, επίσης, λόγος για τον οποίο, συνήθως, όταν το κάνουμε για loops-- είμαι σίγουρος
εσείς ήσασταν αναρωτιούνται, γιατί να αρχίσουμε σε 0 έναντι 1;
Και αυτό γιατί όταν έχουμε μετάβαση σε χρήση συστοιχίες, αντιστοιχίζει σωστά.
Έτσι, εάν θέλετε να επαναλάβει σε μια σειρά, θα
καθιστά πολύ πιο λογικό να μπορώ να ισούται με 0, γιατί εμείς
γνωρίζουν ότι θα αντιστοιχεί στην πρώτη κηλίδα στη μνήμη.
Όλοι καλό με αυτό;
Cool.
>> Και τότε στο κάτω μέρος εδώ είναι απλά Ένας άλλος τρόπος για να προετοιμαστεί μια σειρά.
Έχετε ακόμα σας τύπο δεδομένων και το όνομα,
αλλά αντί πραγματικότητα βάζοντας ένα μέγεθος εκεί,
μπορείτε να το κάνετε απλά ένα κενό μεταξύ παρενθέσεων.
Και στη συνέχεια, με αυτά τα σγουρά τιράντες στο κάτω μέρος,
μπορείτε απλά εισάγετε τα στοιχεία που θέλετε να χωρίζονται με κόμμα.
Και αυτό θα είναι αυτόματα πω, εντάξει, βλέπω
ότι έχετε τρεις τα πράγματα σε αυτές τις τιράντες.
Έτσι ξέρω ότι πρέπει να διαθέσουν τρεις μπλοκ της μνήμης και στη συνέχεια αποθηκεύουν αυτά.
>> Έτσι, η πρώτη έκδοση που μπορείτε να χρησιμοποιήσετε αν ρωτάτε χρήστη σας στην είσοδο
τιμές έτσι ώστε να μπορείτε να επαναλάβει μέσω της συστοιχίας
και ask-- πάρετε κάποια int στην είσοδο τους.
Εάν γνωρίζετε τις τιμές των προτέρων, κάνει πολύ περισσότερο νόημα
να χρησιμοποιήσετε το δεύτερο τρόπο.
Αλλά στις περισσότερες περιπτώσεις, ίσως δεν γνωρίζετε ποιοί είναι αυτοί οι τιμές πρόκειται να είναι.
Cool.
Οποιεσδήποτε άλλες ερωτήσεις;
Εντάξει.
>> Έτσι πρόσβαση elements-- έτσι ένα από τα μεγάλα πράγματα για συστοιχίες
είναι ότι είναι τυχαία πρόσβασης, που σημαίνει ότι μπορείτε
Δεν χρειάζεται να κοιτάξουμε μέσα από κάθε μπλοκ.
Εάν γνωρίζετε ότι έχετε θέλουν ό, τι είναι στο μπλοκ δύο,
μπορείτε απλώς να πω, να μου δώσει μπλοκάρει δύο.
Και γι 'αυτά δείκτες είναι τόσο σημαντικό,
και αυτό είναι το πώς έχουμε πρόσβαση τους στην πραγματικότητα.
Έτσι, στην περίπτωση αυτή, όπως είδαμε πριν, όταν ήμασταν αναθέτοντας τις τιμές, σε μία
πριν, είχαμε το όνομα και η δείκτης θέλαμε να έχουν πρόσβαση, σωστά;
Έτσι, κατά τον ίδιο τρόπο, αυτό είναι το μόνο που κάνει για να τραβήξει πραγματικά ότι από τα δεδομένα.
Έχουμε το όνομα και εμείς έχουν το δείκτη που θέλουμε.
>> Έτσι, σε αυτή την περίπτωση, ο βρόχος for εδώ κάτω στο κάτω μέρος, ο καθένας
ξέρετε τι κάνει, τι θα εκτυπώσετε;
Mmhmm;
Ακριβώς.
Οπότε ναι, αυτό είναι απλά επανάληψη μέσα.
i είναι ίσο με zero-- μπορούμε να περπατήσουμε μέσα από τον κώδικα ακριβώς γρήγορα.
i είναι ίσο με μηδέν, Ι είναι μικρότερη από τρεις σε αυτό το σημείο, σωστά;
Έτσι που ελέγχει έξω.
Και λέμε, εντάξει, εκτύπωση στ ό, τι είναι σε θερμοκρασία θ.
i είναι μηδέν εδώ όταν για πρώτη φορά επαναλήψεις, ώστε να πάμε σε αυτό το πρώτο σημείο,
και λέμε, ΟΚ, 65 είναι η αριθμό που θέλετε να εκτυπώσετε.
Έτσι θα εκτυπώσετε 65 και στη συνέχεια να κάνουμε μια νέα γραμμή.
Θα ενημερώσω, έτσι ώστε να εκτυπώνει 87.
Θα ενημερώνει και πάλι, και αυτό θα εκτυπώσει 30.
Όλοι δροσερό;
Awesome.
>> Εντάξει.
Έτσι, εδώ είναι το είδος της ένα πράγμα που μου έλεγε πως
μπορείτε να παρακολουθείτε βαθμολογία κάποιου και γιατί
μπορείτε να χρησιμοποιήσετε την πρώτη τρόπος αρχικοποίησή
αντί αυτού δεύτερος τρόπος.
Και αυτό πηγαίνει ακριβώς μέσα.
Και παρατηρήσετε έχουμε ένα μέγεθος της τάξης των 30.
Και είμαστε αρχικοποίηση αυτό σειρά από ints που έχει μέγεθος 30.
Και τότε θα είναι επανάληψη μέσω και είμαστε
ζητώντας από το χρήστη να εισάγει βαθμολογίες για κάθε ένα από αυτά
και στη συνέχεια την απόδοση σε μια ειδική θέση στη μνήμη
κάπου στην εν λόγω συστοιχία.
Cool;
Μήπως αυτό έχει νόημα για όλους;
Mmhmm;
>> Έτσι hashtag καθορίζουν το μέγεθος της τάξης 30 είναι μια οδηγία προεπεξεργαστή,
που απλά σημαίνει ότι gets-- έχει να κάνει, όπως διαδικασίας μεταγλώττισης.
Μπορείτε να σκεφτείτε από το ως μια παγκόσμια μεταβλητή.
Ο τρόπος που το κάνουμε είναι typically-- επιτρέπει κωδικό σας
να αλλάξει πιο εύκολα.
Ας πούμε ότι το μέγεθος της τάξης μας ξαφνικά πηγαίνει από 30 σε 15,
αν δεν είχα αυτό ορίζεται με αυτόν τον τρόπο, θα ήθελα πρέπει να περάσουν από ολόκληρο το πρόγραμμα μου
και να αλλάξετε κάθε εμφάνιση του 30 σε 15.
Αλλά με αυτό, έχω να αλλάξετε ένα επιτόπου, και ό, τι άλλο αλλαγές.
>> Αν ποτέ θέλετε να κάνετε ένα hash καθορίσει σε περίπτωση
όπου είστε παρακολούθηση ορισμένων ορίσετε τον αριθμό των βαθμολογιών για μια κατηγορία
ή είστε χρησιμοποιώντας έναν αριθμό που θα χρησιμοποιηθεί, όπως,
σε όλη ένα πολύ μεγάλο πρόγραμμα, είναι καλύτερα να ορίσει ότι στην αρχή
έτσι ώστε αν ποτέ αλλάζει, μπορείτε να πάρετε να αλλάξει ένα σημείο αντί 100.
Ναι;
>> Φοιτητής: Μεταξύ κάνουμε αυτό και μόνο δηλώνοντας [δεν ακούγεται] πάνω στην κορυφή.
>> ALLISON BUCHHOLTZ-ΑΕ: αυτό λοιπόν έχει να κάνει με efficient--
αυτό είναι το είδος της εκτός του πεδίου εφαρμογής της τι μπορούμε να καλύψουμε σε αυτή την ενότητα.
Έχει να κάνει περισσότερο με την αποτελεσματικότητα και πως τα πράγματα στην πραγματικότητα
εργάζονται κατά τη διαδικασία μεταγλώττισης.
Αν θέλετε να μάθετε πραγματικά γι 'αυτό, είμαι στην ευχάριστη θέση να σας στείλουμε
Ένα μήνυμα ηλεκτρονικού ταχυδρομείου με πόρους γι 'αυτό.
Hash καθορίσει τείνει να είναι προτιμάται για τα πράγματα.
Και όπως μπορείτε να κωδικοποιήσει περισσότερα, μπορείτε είδος μάθετε τις αποχρώσεις
πότε θα πρέπει να χρησιμοποιήσετε ένα παγκόσμια έναντι του κατακερματισμού ορίζουν.
Αλλά προς το παρόν, δεν έχετε πραγματικά
να ανησυχείτε γι 'αυτό είναι ότι η σύντομη απάντηση.
Όλοι καλό με αυτό;
Και επίσης, αν θέλετε να χρησιμοποιήσετε ένα hash καθορίζουν,
Είναι πραγματικά σημαντικό να παρατηρήσετε ότι η ονομασία θα πρέπει να είναι σε όλα τα καλύμματα.
Δεν είμαστε απλώς κάνουν ΚΑΤΗΓΟΡΙΑ ΜΕΓΕΘΟΥΣ να είναι δραματικές.
Θα πρέπει πραγματικά να είναι σε όλα τα καλύμματα.
Cool.
Οτιδήποτε άλλο υπάρχει;
Είμαστε καλά;
Υπέροχο.
Καλώς ήρθατε.
>> Εντάξει, έτσι θέλω εσείς να ρίξετε μια ματιά σε αυτό και να δείτε αν μπορείτε να βρείτε το σφάλμα.
Θα σας δώσω μια υπόδειξη.
Είναι κάπου σε αυτό για βρόχου.
Mmhmm;
>> Φοιτητής: Πρέπει να είναι λιγότερο από ίσο με 2.
>> ALLISON: Έτσι θα μπορούσε να είναι μικρότερη ή ίσο με 2, ή θα μπορούσε να είναι μικρότερη από 3.
Και ποια είναι η αιτιολογία για αυτό;
>> ΜΑΘΗΤΗ: Το [δεν ακούγεται], 0, 1, 2.
>> ALLISON: Ακριβώς.
Έτσι, σε μια σειρά μεγέθους n, έχουμε έχουν μόνο οι δείκτες του Ν μείον 1.
Cool.
Και τότε μπορούμε να πάρουμε πραγματικά τρελό και να πάρει την πολυδιάστατη συστοιχίες.
Ένα από τα προβλήματα, όταν πήρα το μου απαιτείται έτους πολυδιάστατη συστοιχίες,
και νομίζω ότι ένας από αυτούς μπορεί να απαιτήσει αυτό το έτος, έτσι ώστε να είναι άνετα.
Τυλίξτε το κεφάλι σας γύρω από αυτό τώρα.
Θα επανέλθω για να στοιχειώσουν σας, αλλά σε ένα δροσερό τρόπο.
Έτσι μπορείτε πραγματικά να σκεφτείτε των πολυδιάστατων συστοιχίες
ως συστοιχίες συστοιχιών.
Έτσι, μπορείτε να σκεφτείτε το είδος αυτής της top σειρά ως το πρώτο κομμάτι της μνήμης.
Και αυτό είναι η δεύτερο κομμάτι της μνήμης,
και η τελευταία σειρά είναι η τρίτο κομμάτι της μνήμης.
Και στο πλαίσιο αυτό, υπάρχει μια σειρά.
Αλλά φυσικά, είναι πιο εύκολο να απεικονίσει σαν αυτό.
>> Έτσι θα γίνει η προετοιμασία της με τον ίδιο τρόπο.
Αυτό είναι ένας χαρακτήρας συμβούλιο των τριών από τα τρία.
Έτσι, έχετε τρεις σειρές και τρεις στήλες.
Είμαστε εκπροσωπούν αυτόν τον τρόπο.
Και θα είναι η πρόσβαση σε ίδιο τρόπο, στήλη με σειρά.
Και έτσι 1,1 όπως βλέπουμε εδώ.
Έχουμε αναθέσει ένα μηδέν, μηδέν μέχρι εκεί.
2,0 και 0,2.
Έτσι θα αποκτήσετε πρόσβαση them-- μόνο αν ο καθένας κάνει ποτέ γραμμική άλγεβρα,
με τον ίδιο τρόπο μπορείτε να αποκτήσετε πρόσβαση σε ένα στοιχείο ένα μήτρας, είναι η ίδια η ιδέα εδώ.
Έτσι, μπορείτε να ανάγονται σε μαθηματικά.
Δεν χρειάζεται να ανησυχείτε πάρα πολύ πολύ γι 'αυτό τώρα.
Είναι καλό να έχουμε την έκθεση, να ξέρετε ότι μπορείτε να το κάνετε.
Μπορείτε να δημιουργήσετε κάποια τρελό number-- μπορείτε
δημιουργούν τρελό συστοιχίες είναι όλα Πάω να πω.
[Δεν ακούγεται]
Παίρνει λίγο τρελό, αλλά είναι πραγματικά δροσερό.
Awesome.
>> Και τότε, έτσι έχουμε ένα παράδειγμα εδώ.
Υπολογίζει μήκος συμβολοσειράς.
Έτσι, πόσοι άνθρωποι γνώριζαν ότι οι χορδές που χρησιμοποιείτε
είναι ακριβώς συστοιχίες των χαρακτήρων;
Εντάξει, ναι.
Έτσι, εσείς μπορείτε να σκεφτείτε ότι δεν έχετε χρησιμοποίησαν συστοιχίες πριν, αλλά οποιαδήποτε στιγμή
μπορείτε να χρησιμοποιήσετε getstring στο CSView βιβλιοθήκη, είστε
στην πραγματικότητα απλά ζητώντας μια σειρά χαρακτήρων.
Και εμείς τη φροντίδα όλων ότι στο back-end για εσάς.
Αλλά έχετε χρησιμοποιήσει συστοιχίες από τότε που ξεκίνησε.
Μπορείτε απλά δεν το ξέρει ακόμα.
>> Και κάθε φορά που έχετε μια σειρά χαρακτήρων ή μια σειρά που είναι αποθήκευση μιας συμβολοσειράς,
το τελευταίο πράγμα που είναι πάντα ό, τι είναι ονομάζεται μηδενική τερματισμού, η οποία
Είναι αυτό το δικαίωμα εδώ.
Και αυτό είναι στο τέλος του κάθε λέξη που θέλετε να αποθηκεύσετε.
Έτσι, αν θέλουμε να καταλάβουμε το μήκος μιας συμβολοσειράς, μπορούμε να πούμε,
καλά, ξέρετε, η περιεχόμενα αυτού του μπλοκ
δεν είναι ίση με null τερματιστή μας.
Αυτό σημαίνει ότι υπάρχει κάποια χαρακτήρα εκεί που πραγματικά
νοιάζονται για αυτό είναι μέρος της λέξης.
Μπορείτε να αυξήσει το μήκος σας.
Και στη συνέχεια, όταν έχουμε πραγματικά να το τέλος της λέξης, αυτό θα τερματίσει
και θα επιστρέψει το μήκος μας για εμάς.
Mmhmm;
>> Φοιτητής: Μήπως το χώρο μετράνε ως μηδενική τερματισμού;
ALLISON: Έτσι ένας χώρος είναι δεν είναι ένα μηδενικό τερματισμού.
Έτσι, αν multiple-- έχουν χώρο είναι στην πραγματικότητα μια συγκεκριμένη τιμή ASCII.
Φοιτητής: Ποια είναι η θαυμαστικό ίση και πάλι;
ALLISON: Λοιπόν, αυτό είναι ό, τι αναφέρονται.
Αν έχετε ακούσει ποτέ μου σε ώρες γραφείου, Έχω πάντα την αποκαλούμε, όπως, κτύπημα ισούται με.
Έτσι κτύπημα δεν είναι.
Έτσι, αυτό δεν είναι ίσοι.
Έτσι, εάν προσπαθείτε να να δούμε αν κάτι είναι λάθος,
ξέρετε πάντα, ανεξάρτητα από έκρηξη η μεταβλητή είναι, και αν είναι ψευδής,
είναι αληθής και μπορεί να κάνει δροσερό πράγματα με αυτό.
Περισσότερα για αυτό αργότερα.
Cool.
Όλα καλά εκεί;
Awesome.
>> Έτσι, τώρα ήρθε η ώρα τα παιδιά σας να εργάζονται, δεδομένου ότι έχω μιλήσει.
Θέλω, λοιπόν, να δημιουργήσετε μόνο μια συστοιχία με τους ακεραίους ένα, δύο και τρία,
και στη συνέχεια να τα έχουν εκτυπωθεί.
Δεν χρειάζεται να κάνουν, όπως, κύρια, μπλα, μπλα, μπλα, οτιδήποτε.
Θέλω απλά να προετοιμαστεί η συστοιχία και στη συνέχεια να δημιουργήσετε
ένα βρόχο για να τις εκτυπώσετε out-- ή ένα βρόχο, ενώ, μέχρι σας.
>> Θα σας δώσω μόνο ένα ζευγάρι λεπτά για να εργαστούν σε αυτό.
Πάω να ξεκουραστούν φωνή μου.
Εάν έχετε οποιεσδήποτε ερωτήσεις, είμαι ευτυχισμένος να έρθουν κοντά και να σας μιλήσω παιδιά.
Μη διστάσετε να μιλήσετε με τον άλλον.
Πάρτε περισσότερες καραμέλα.
Στην πραγματικότητα, απλά θα να περπατήσετε γύρω από με την καραμέλα.
Πώς σας φαίνεται αυτό;
>> Θέλετε κάποια;
Οποιοσδήποτε άλλος σε αυτό το δωμάτιο θέλετε καραμέλα;
Μπορείτε επίσης να πάρετε περισσότερα από ένα, παιδιά.
Πάρτε μια χούφτα, αν θέλετε.
Μάιος καθώς και.
Όλοι οι υπόλοιποι καλό;
ΟΚ.
>> Επίσης, Πάω να δημιουργήσετε ανώνυμη μορφή του Google,
και εσείς μπορεί να υποβάλει μόνο ανατροφοδότηση μετά από κάθε ενότητα
αν υπάρχει κάτι που θέλετε να βελτιώνουν ή κάτι που θέλετε γίνει.
Αν είμαι λίγο πολύ ζωηρός για εσάς, μπορώ να το μετριάσει.
Θα δημιουργήσω ότι και να στείλετε ότι σε όλους σας αργότερα.
>> Εντάξει.
Ας αρχίσουμε λοιπόν μικρό.
Πώς θα μας προετοιμάσει σειρά μας;
Ποιο είναι το είδος του πίνακα μας;
Μια int, σωστά;
Εντάξει, έτσι τι θέλετε να καλέσει σειρά σας;
Int σειρά, δροσερό.
Εντάξει, έτσι έχουμε int int array ισούται με, και τι έχουμε μετά από αυτό;
Φοιτητής: [δεν ακούγεται] αγκύλες.
ALLISON: σιδεράκια.
Και στη συνέχεια, μέσα στα άγκιστρα;
Ένα κόμμα δύο κόμμα τρία.
Cool.
Έτσι, αυτό είναι εντάξει.
Έτσι τώρα έχουμε μας για βρόχο.
Έτσι, στο πρώτο μέρος μας για βρόχο, τι έχουμε;
>> Φοιτητής: i ισούται με 0;
>> ALLISON: Έτσι int i ισούται με 0, και τότε τι είναι κατάσταση μας;
Τι θ πρόκειται να είναι μικρότερη από ό, τι;
Λιγότερο από τρεις, και πώς μπορούμε εμείς να ενημερώσετε i;
i συν συν, είναι ενημέρωση από ένα.
Και μετά θα πάμε να έχουν κάποια printf του ακεραίου,
και ποια είναι η τελευταία μέρος που είναι πραγματικά
πρόκειται να πω τι θα πρέπει να εκτυπώσετε;
Θα ήταν το όνομα του συστοιχία, η οποία είναι int array, σωστά;
Και τι είναι σε παρένθεση του int array;
i.
[? Γι 'αυτό;] ονομάζεται μου παράδειγμα, αλλά εκεί θα πάτε.
Δεν είναι τόσο άσχημα.
Όλοι καλό;
Cool.
>> Έτσι τελειώσαμε με τις συστοιχίες.
Συγχαρητήρια.
Θα καταφέρει να επαναλάβει μέσω όλων the-- ναι;
>> Φοιτητής: [δεν ακούγεται]
>> ALLISON: Ναι.
>> Φοιτητής: Έχω μια ερώτηση.
Είστε υποτίθεται για να δημιουργήσετε εσοχή τα σιδεράκια;
>> ALLISON: Έτσι οι τιράντες θα πρέπει να παρατάξει με το βρόχο for, και στη συνέχεια τα πάντα
στο εσωτερικό πρέπει να είναι στοιχισμένες τα σιδεράκια.
>> Φοιτητής: Εντάξει, θα πρέπει η για βρόχο να εσοχή;
>> ALLISON: Ο βρόχος δεν πρέπει να εσοχή στο σημείο αυτό.
Αν ήταν στο κύριο, αν εμείς στην πραγματικότητα είχε μια κύρια λειτουργία εδώ,
θα πρέπει να εσοχή από την κύρια.
Αλλά στην περίπτωση αυτή, είναι μια χαρά.
Ναι, ερώτηση.
>> Φοιτητής: Μήπως θα πρέπει να έχετε οι παρενθέσεις μετά το παράδειγμα;
>> ALLISON: Ναι, αν είστε αρχικοποίησή με αυτόν τον τρόπο.
Έτσι θυμηθείτε, αυτό είναι το δεύτερο τρόπος αρχικοποίησης μία συστοιχία όπου
έχουμε τα σιδεράκια και, στη συνέχεια, την πραγματική μας δεδομένων διαχωρίζονται με κόμματα, μέσα.
>> Φοιτητής: Νόμιζα ότι ήταν εκεί παρένθεση για το εν λόγω παράδειγμα.
>> ALLISON: Όχι, είναι τιράντες.
Είναι τιράντες.
Εάν είστε το αρχικοποίηση ότι το δεύτερο τρόπο, αυτό είναι τιράντες.
Αν είχαμε να πούμε, int example-- αν θέλαμε απλώς ένα κενό πίνακα για ints,
θα ήταν int παράδειγμα βραχίονες τρεις.
Οι παρενθέσεις αντιπροσωπεύουν το μέγεθος.
Όταν έχετε τιράντες, είναι τα πραγματικά δεδομένα
βάζετε σε αυτό με αυτόν τον τρόπο.
Μπορούμε να μετακινηθείτε προς τα πίσω πολύ γρήγορα.
>> Έτσι, σε αυτό το ένα, αυτό είναι ακριβώς μας αρχική σειρά, αρχικοποίηση.
Και εδώ, είμαστε ξεχωριστά ανάθεση κηλίδες σε αυτούς,
έτσι αυτό αντιπροσωπεύει το δείκτη μας συστοιχία, η οποία είναι ο λόγος που έχουμε παρένθεση.
Αλλά εδώ, αν παρατηρήσετε, έχουμε αριστερά στηρίγματα μας χωρίς ένα μέγεθος,
και θα γίνει η προετοιμασία της με το πραγματικά δεδομένα όλα-σε-ένα με τιράντες.
Φοιτητής: Γιατί λοιπόν να μην έχουμε παρένθεση σε αυτό το παράδειγμα;
ALLISON: Έτσι, στις οποίες μέρος;
Φοιτητής: Δεν θα ήταν εμείς ας πούμε, int παράδειγμα παρένθεση
ισούται με τιράντες [δεν ακούγεται] παρένθεση για παράδειγμα.
>> ALLISON: Ω, συγγνώμη.
Έχεις δίκιο.
Έχουμε παρένθεση εκεί.
Συγγνώμη παιδιά, κακό μου.
Ναι, θα πρέπει να έχετε παρένθεση μετά από το παράδειγμα.
Έχετε απόλυτο δίκιο.
>> Φοιτητής: [δεν ακούγεται] δεν το κάνει.
>> ALLISON: Όχι, πρέπει να έχετε παρένθεση, γιατί αλλιώς είναι
δεν πρόκειται να κηρύξει μια σειρά.
Φοιτητής: [δεν ακούγεται].
Λυπάμαι γι 'αυτό.
>> ALLISON: Συγγνώμη, θα πρέπει να έχετε παρένθεση μετά από το παράδειγμα.
Typo.
Καλή αλιευμάτων, χρυσό αστέρι για σένα.
Επίσης, αν έχετε κάνει μια ερώτηση, εάν εσείς θα μου πείτε ακριβώς τα ονόματά σας,
Θα ήθελα πολύ αυτό.
Θα ήθελα πολύ να είναι σε θέση να γνωρίζουν όλα τα ονόματα σας.
Είμαι δεν πρόκειται να κρύο σας καλούν, εγώ πραγματικά
θέλουν απλά να ξέρετε τα ονόματα σας.
Επομένως, σας παρακαλώ πραγματικά να μου πείτε τα ονόματα σας.
>> Leah: Leah.
>> ALLISON: Leah.
Εντάξει, έτσι functions-- ξέρω σε συντομία μίλησαν για αυτό κατά τη διάρκεια της διάλεξης.
Έτσι, οι λειτουργίες είναι το είδος ακριβώς όπως αυτά τα μικρά πράγματα δάγκωμα-μεγέθους
όπου μπορείτε να περάσετε σε εισροές, κάτι μαγικό συμβαίνει, και μπορείτε να πάρετε εξόδους.
Cool.
Έτσι θα χρησιμοποιηθεί στην πραγματικότητα ένα πολλά από αυτά ήδη.
Πάρτε int, να πάρει εγχόρδων, εκτύπωση στ.
Αυτές είναι όλες οι λειτουργίες όπου μπορείτε απλά να τους καλέσετε,
υπάρχουν πολλά μαγικά πράγματα συμβαίνει στο παρασκήνιο
ότι δεν είναι απαραίτητο να δούμε, και μπορείτε να πάρετε ό, τι θέλετε.
Ή τουλάχιστον θα έχετε τι ελπίζετε θέλετε.
>> Και βασικά το σημείο των λειτουργιών, και ένα από τα κύρια θέματα της CS,
είναι να σπάσουν τον κωδικό σας σε διαχειρίσιμα κομμάτια.
Όταν αρχίσετε να γράφετε Αυτά είναι πραγματικά μεγάλη προγράμματα,
ή στο Scratch, όταν είχατε Αυτή η μεγάλη ιδέα για ένα παιχνίδι,
θα πρέπει να είναι σε θέση να το σπάσει κάτω, όπως, ΟΚ, πώς μπορώ να ξεκινήσω;
Ποια είναι τα μικρά κομμάτια που χρειάζομαι;
Ω, θέλω να ρωτήσω το χρήστη για κάτι.
Τώρα θα πρέπει να εκτυπώσετε κάτι.
Αχ, εγώ πρέπει να υπολογίσει την τιμή αυτή.
>> Και μαθαίνοντας πώς να χωρίσει σας κώδικα και τα μεγάλα προβλήματα που
έχουν σε αυτά τα μικρά κομμάτια και τη δημιουργία λειτουργιών
είναι στην πραγματικότητα μία από τις μεγάλες ακρογωνιαίους λίθους της CS.
Έτσι, μπορείτε να σκεφτείτε μια λειτουργία όπως ακριβώς σαν ένα μαύρο κουτί, ένα μαγικό μαύρο κουτί,
ότι θα βάλει τα πράγματα σε και μπορείτε να πάρετε κάποια έξοδο.
Και το υπόλοιπο του προγράμματος δεν χρειάζεται να γνωρίζουν κατ 'ανάγκην
τι συμβαίνει μέσα σε αυτό το μαύρο κουτί.
Το μόνο που νοιάζεται για το τι είναι πηγαίνει μέσα και τι βγαίνει.
Cool.
>> Γιατί, λοιπόν, τις λειτουργίες;
Organization-- όπως είπα, όταν είστε ασχολούνται με πολύ μεγάλες βάσεις κώδικα,
πώς να οργανώσετε τον κωδικό σας θα είναι πολύ πιο εύκολο αν χρησιμοποιείτε λειτουργίες.
Επειδή θα είστε σε θέση να είναι, όπως, εντάξει αυτό,
είναι τι κάνει αυτή η λειτουργία και εδώ είναι τι κάνει άλλο ένα.
Και μπορείτε εύκολα να δείτε πώς όλα ταιριάζουν μεταξύ τους.
Έτσι σπάσιμο σε όλα Αυτά τα διαχειρίσιμο υποτμήματα.
>> Έτσι simplification-- Είμαι βέβαιος ότι εσείς Όλοι είδαμε αυτό, όπως είπα, με το Scratch.
Έχετε αυτή τη μεγάλη ιδέα, και είστε όπως, πώς κάνει όλο αυτό το έργο;
Αλλά αν μπορείτε να την προσεγγίσουμε αποσπασματική, λέτε, εντάξει,
πώς μπορώ να κάνω ένα ξωτικό επιπλέουν σε ολόκληρη την οθόνη;
Αυτό είναι λίγο πιο εύκολη.
Έτσι, καλή χρήση της καθιστά τη λειτουργία κωδικό σας πολύ πιο εύκολο να διαβάσει.
Θα είναι πιο εύκολο για τον εντοπισμό σφαλμάτων τα οποία, όπως μπορείτε να πάρετε σε μεταγενέστερο πρόβλημα σύνολα σας,
θα πάμε σε πραγματικά θέλουν να είναι σε θέση να κάνει.
Και είναι επίσης ευκολότερη να σχεδιάσει και να εφαρμόσει.
Μπορείτε να κωδικοποιήσει έως ένα μικρό λειτουργούν σχετικά γρήγορα
και να βεβαιωθείτε ότι λειτουργεί σε σχέση με την προσπάθεια να δημιουργήσει όλο αυτό το μακρύ πρόγραμμα
και στη συνέχεια το είδος της να περάσει και δείτε τι λειτουργεί και τι δεν είναι.
>> Και τότε επαναχρησιμοποίησης.
Έτσι λειτουργίες χρειάζονται μόνο να γράφεται μία φορά,
και, στη συνέχεια, μπορείτε να τα χρησιμοποιήσετε όσες φορές όσο το δυνατόν.
Έτσι είναι, όπως, φιλικό προς το περιβάλλον κατά μία έννοια.
Αν είχατε πράγματα όπως εκτύπωσης στ, όπου μπορείτε
Έπρεπε να γράψουν τη μαγεία που πηγαίνει πίσω από την εκτύπωση στ κάθε χρόνο
θα ήθελε να εκτυπώσετε κάτι, μπορείτε θα ήταν πολύ άρρωστος και κουρασμένος από αυτό
μέχρι το τέλος.
>> Ένα από τα πράγματα που θα μάθετε σε μετέπειτα τάξεις CS,
ή ένα από τα καλύτερα κομμάτια των συμβουλών πάρω
είναι, αν είστε αντιγραφή και επικόλληση κώδικα, θα πρέπει μάλλον να είναι μια λειτουργία.
Αν έχετε ακριβώς το ίδιο γραμμές σε όλη τη διάρκεια κωδικό σας,
αν αυτά συνυπολογίζονται έξω, κωδικός σας θα μπορούσε πιθανότατα να
είναι, όπως, πέντε φορές μικρότερη και είναι πολύ πιο εύκολο να το διαβάσετε.
Και αντί να προσπαθείτε να αντιμετωπίσετε Όλα αυτά τα διαφορετικά μέρη όπου τα πράγματα
μπορεί να πάει στραβά, θα έχουν μια λειτουργία ότι θα έχετε να αντιμετωπίσετε.
Και υπόσχομαι, πολλά από αυτά μπορεί να φαίνεται το είδος της αφηρημένης τώρα,
αλλά όπως μπορείτε να πάρετε σε μεταγενέστερο και αργότερα το πρόβλημα θέτει,
αυτό θα κάνει πολύ περισσότερο νόημα και πραγματικά να οδηγείται στο σπίτι.
Υπάρχουν ερωτήσεις σχετικά με τις λειτουργίες μέχρι στιγμής;
Γιατί είμαστε η χρήση τους;
Ξέρω ότι δεν έχουμε πάρει στο κονιδιασμένος λιθίαση ακόμα.
Έτσι ορίζει ένα function-- ακριβώς όπως συστοιχίες, χρειαζόμαστε κάποιο είδος of-- αυτό
είναι ακριβώς η γενική έξοδος.
Έτσι, αυτό είναι μια λειτουργία που είναι ακριβώς πρόκειται να κύβος κάποια στοιχεία.
Και στην επόμενη σελίδα, στην πραγματικότητα, έχουμε Όλα αυτά τα τρομερά μικρά πράγματα εδώ.
Έτσι, ο καθένας μπορεί να διαβάσει ότι, από περιέργεια;
Ξέρω ότι το μωβ και το μαύρο μπορεί να είναι λίγο δύσκολο.
>> Αλλά μεγάλα πράγματα να know-- έτσι το πρώτο ένα δικαίωμα αυτό εδώ είναι το είδος της επιστροφής μας.
Έτσι, αυτό μιλάει για την έξοδο αυτής της λειτουργίας, όταν, στην περίπτωση αυτή,
βάζουμε σε κάποιο αριθμό, τι είμαστε πάρει είναι ότι ο αριθμός κύβους.
Γι 'αυτό θα πρέπει να είναι ένας int σε αυτή την περίπτωση.
Ίσως θα ήταν ένα διπλό ή κάτι άλλο αργότερα, αλλά στην περίπτωση αυτή,
είναι ένας int.
>> Με C, θα πρέπει να έχετε πάντα ένα είδος επιστροφής.
Θα είναι ένας int.
Θα είναι ένα πλωτήρα.
Θα είναι ένα διπλό.
Αλλά θα πρέπει να καθορίσετε τι Η λειτουργία αυτή δεν πρόκειται να επιστρέψει.
Διαφορετικά θα φωνάξει σε σας, και δεν θα συγκεντρώνουν.
Θα είναι λυπηρό, και θα είμαι λυπημένος.
Και δεν είναι ακριβώς καλό.
ΟΚ.
>> Και στη συνέχεια, έχουμε το όνομα της λειτουργίας μας.
Και όπως μπορείτε να δείτε εδώ, με το γ υπάρχει αυτή η πολύ συνεπής παράδειγμα.
Τι τύπο σας, ποιο είναι το όνομα, και στη συνέχεια κάποιες άλλο πράγμα στο τέλος.
Έτσι, έχουμε τον τύπο της επιστροφής μας, το όνομά μας λειτουργία, και στη συνέχεια,
έχουμε κεφαλίδα μας με λίστα παραμέτρων μας.
>> Έτσι, η λίστα παραμέτρων είναι, τι είναι Η λειτουργία αυτή πρόκειται να λάβει;
Μια λίστα παραμέτρων είναι απλά ένα συνώνυμο, ποια είναι τα δεδομένα μας;
Και με τον ίδιο τρόπο που εμείς πρέπει να ορίσετε τη λειτουργία μας
και να δώσει μια επιστροφή πληκτρολογήσετε, κάθε ένα από τα δεδομένα μας
πρέπει να έχει έναν τύπο που συνδέονται με αυτό.
Γνωρίζουμε, λοιπόν, ποια είναι η λειτουργία μας μπορεί πραγματικά να εργαστεί με.
>> Έτσι, στην περίπτωση αυτή, έχουμε κάποια στοιχεία int.
Έτσι και πάλι, αυτό θα είναι το είδος και αυτό που την αποκαλούν.
Και τότε, όπως βλέπετε Εδώ, έχουμε το σώμα μας.
Έτσι έχουμε κάποια έξοδο int, ότι είναι απλά χρόνοι εισόδου μας η ίδια
την ίδια στιγμή, που απλά κύβους.
Και τότε θα επιστρέψει αυτό το έξοδο.
>> Έτσι, όπως μπορείτε να δείτε εδώ, έχουμε μια int φορές ένας χρόνους int ένας int,
έτσι ώστε να επιστρέφει ένα int, η οποία έχει κηρυχθεί εκεί.
Έτσι, τα πάντα είναι συνεκτική.
Τα πάντα είναι χαρούμενος.
Λειτουργία σας θα τρέξει.
Και αυτό είναι μόνο η γενική πράγμα.
Έτσι έχει πάντα τον τύπο επιστροφής, όνομα, και λίστα παραμέτρων σας.
Κάθε πράγμα σε σας λίστα παραμέτρων, ή εισόδου,
πρέπει να έχει έναν τύπο που συνδέονται με αυτό.
Και τότε έχετε σας σώμα εδώ με ό, τι
θέλετε να κάνετε με τη συμβολή σας.
>> Και τότε προφανώς σας θέλουν να επιστρέψουν κάτι.
Μερικές φορές οι λειτουργίες θα επιστρέψει μόνο.
Δεν επιστρέφει πραγματικά κάτι για να το χρησιμοποιήσετε.
Αλλά θα πρέπει να επιστρέψει με κάποιο τρόπο.
Και όταν κάνεις τις δικές σας συναρτήσεις,
μπορούμε να μπει σε αυτό λίγο βαθύτερα.
Προσωπικά, αν θέλετε, υπάρχουν πολλά διαφορετικά πράγματα που μπορείτε να κάνετε εκεί.
Όλοι καλό;
Τίποτα σε αυτή τη λίστα που θέλεις να πάει πάνω, ότι δεν έχετε καταλάβει;
Όλοι είναι καλά εκεί;
Cool.
Awesome.
>> Εντάξει, έτσι είναι σαν να βάζουμε όλα αυτά μαζί τώρα.
Έτσι έχουμε κάποια στοιχεία int κύβο, έτσι Αυτό είναι ένα πλήρες πρόγραμμα εδώ.
Μέχρι τώρα, έχω το είδος της έχουν δίνοντάς σας
αποσπάσματα παιδιά που θα μπορούσαν να να πηγαίνει σε ένα πρόγραμμα.
Έχουμε μόλις κοιτάζοντας λειτουργίες.
Αλλά εδώ είναι ένα ολόκληρο πρόγραμμα.
Έτσι, πόσοι από εσάς θυμάστε το λέξη πρωτότυπο από διάλεξη;
Cool.
Έχουμε ένα.
Ποιο είναι το όνομά σου;
>> Steph: Στεφ.
>> ALLISON: Στεφ;
Εντάξει, φοβερό.
Έτσι, θυμάστε τι ένα πρωτότυπο είναι;
>> Φοιτητής: Λέτε [δεν ακούγεται] πριν να ασχοληθεί με το θέμα.
>> ALLISON: Θυμάστε γιατί;
>> Φοιτητής: Όχι.
>> ALLISON: Εντάξει.
Χρυσό αστέρι.
Οπότε ναι, ένα πρωτότυπο που έχουμε εκ των προτέρων, διότι διαφορετικά,
compiler μας θα φωνάξει σε εμάς.
Δεν πρόκειται να πω, εντάξει, τι είναι αυτή η λειτουργία κύβος;
Όπως, έχετε κυριολεκτικά μου είπε τίποτα γι 'αυτό.
Είναι όπως όταν με τα πόδια σε μια τάξη,
και κάποιος είναι σαν, Υπάρχει ένα κουίζ σήμερα.
Και είστε όπως, σας Ποτέ δεν μου είπε για αυτό.
Δεν είμαι ευχαριστημένος με εμάς.
Το πρωτότυπο είναι βασικά όπως διδακτέα ύλη σας λένε, κοιτάξτε.
Heads up.
Υπάρχει πρόκειται να είναι ένα κουίζ αυτή την ημέρα.
Μην φρικάρεις όταν φτάσετε σε αυτό.
Θα πάμε να είναι μια χαρά.
>> Έτσι, όλοι το πρωτότυπο δεν είναι να πούμε κύρια, Πάω να χρησιμοποιήσετε αυτή τη λειτουργία.
Υπόσχομαι Είμαι αυτό που καθορίζει αργότερα.
Μην φρικάρεις σε μένα.
Απλά καταρτίζουν και να κάνω ό, τι μπορώ να σας πω να.
Έτσι έχουμε το πρωτότυπο υπάρχει απλά για να κάνουν compiler μας χαρούμενους.
Και αυτό είναι βασικά μια υπόσχεση ότι έχετε ορίσει αυτή η λειτουργία αργότερα
και ότι δεν είστε απλά καλώντας Αυτή η τυχαία πράγμα που
δεν ξέρει τι είστε πρόκειται να κάνει.
>> Έτσι, σε αυτή την περίπτωση, έχουμε κύριο εδώ.
Έχουμε προετοιμάσει κάποια ακέραιος x.
Αυτό είναι δύο.
Εμείς πάμε για να εκτυπώσετε Τι είναι το Χ.
Εμείς πάμε για να κύβος x.
Όπως μπορείτε να δείτε, έχουμε μας δήλωση της συνάρτησης
εδώ κάτω ότι εμείς μίλησε για το παρελθόν.
Θα κύβος x, και στη συνέχεια, αν θέλουμε θυμηθείτε, τη λειτουργία κύβος πραγματικότητα
επιστρέφει έναν ακέραιο αριθμό σε μας, η οποία αποθηκεύεται
στο x και πάλι, έτσι ώστε να μπορούμε να εκτυπώσετε οκτώ, ή κύβος x τώρα.
Μήπως αυτό έχει νόημα για όλους;
Είμαστε καλά;
Εντάξει.
Awesome.
>> Εντάξει.
Πόσοι από εσάς παιδιά Αυτό να θυμάστε έτσι αυτό
είναι βασικά ακριβώς σας στοίβα και σωρός σας,
απλά μια απεικόνιση της πώς η μνήμη αποθηκεύονται εδώ.
Γι 'αυτό ακριβώς θέλουν να κάνουν βεβαιωθείτε ότι έχετε κατανοήσει
πώς αυτά εκπροσωπούνται στη μνήμη.
Εάν πάρετε μαθήματα όπως CS61 και τα πράγματα αργότερα,
μπορείτε να πάρετε για να μάθετε αυτό το πολύ πιο σε βάθος, και αυτό είναι πραγματικά δροσερό.
Συστήνω ανεπιφύλακτα.
Αλλά για τώρα, εγώ θα δώσει που η ευρεία επισκόπηση
έτσι ώστε να μην χρειάζεται να γνωρίζουν την κονιδιασμένος λιθίαση.
>> Έτσι, την κορυφή μόνο ένα τμήμα κειμένου το οποίο περιέχει τις πραγματικές μηδενικά και μονάδες,
το δυαδικό γι 'αυτό.
Και αυτό χρησιμοποιείται για την αποθήκευση καθολικές μεταβλητές, αν έχετε οποιαδήποτε.
Καθώς προχωράτε προς τα κάτω, εμείς έχουν, όπως βλέπετε εδώ,
προετοιμασία των δεδομένων, έχει προετοιμαστεί δεδομένων, και στη συνέχεια σωρού.
>> Γι 'αυτό και πραγματικά δεν μιλούν σχετικά με τη σωρό τώρα.
Θα φτάσουμε σε αυτό αργότερα.
Για τώρα, είμαι απλώς πρόκειται να κύμα τα χέρια μου και να είναι όπως,
δεν χρειάζεται να γνωρίζετε σχετικά με αυτό τώρα.
Αλλά θα μιλήσουμε λίγο bit για το σωρό.
Έτσι, η στοίβα είναι where-- έχουμε zoom in.
Αυτό είναι στην πραγματικότητα το πώς το πρόγραμμα εμείς απλά κοίταξε συμβαίνει στη μνήμη.
>> Έτσι, αυτό που συμβαίνει είναι, κάθε φορά καλούμε μια συνάρτηση,
έχουμε αυτό που ονομάζεται στοίβα πλαίσιο, το οποίο είναι ένα από αυτά.
Έτσι κύριες παραμέτρους του.
Έτσι, αυτά είναι τα πράγματα ότι περνάμε σε κύρια.
Έτσι, έχουν δίκιο εδώ στο κάτω μέρος, γιατί αυτό είναι το πρώτο πράγμα που λέμε.
Και τότε θα έχουμε στο κύριο του ντόπιους, και όταν λέμε ότι,
εννοούμε τις τοπικές μεταβλητές που είναι αποθηκευμένα στο κεντρικό.
Έτσι, οι ντόπιοι εδώ θα είναι, όπως, x είναι ίσο με δύο σε αυτή την περίπτωση.
Επειδή αυτό είναι εντοπισμένη στο κύριο.
Μήπως όλοι θυμούνται το πεδίο εφαρμογής, που πηγαίνει πέρα ​​από ότι σε διάλεξη;
ΟΚ.
Έτσι, μόνο οι μεταβλητές που αρχικοποιούνται μέσα σε κύρια.
Έτσι, γι 'αυτό και έχουν την κύρια [; φωνητικά. ?]
>> Και στη συνέχεια, μέσα στο κύριο, καλούμε κύβο.
Σωστά;
Έτσι παίρνουμε ένα άλλο πλαίσιο με παραμέτρους κύβου.
Έτσι, στην περίπτωση αυτή, κύβου παράμετροι είναι τώρα
το x που περάσαμε στο, τα δύο που περάσαμε στο.
Και τότε οι ντόπιοι κύβου, η οποία είναι όπου η πραγματική κύβων συμβαίνει.
Και τότε επιστρέφει.
>> Έτσι, αυτό που συμβαίνει είναι σαν κύβος κάνει πραγματικότητα αυτό που θα έπρεπε να κάνει, επιστρέφει.
Όταν επιστρέφει, αυτό το πλαίσιο αφήνει, και του επέστρεψε κάτω στο κύριο.
Και στη συνέχεια, μέσα στο κύριο, εμείς μπορεί να εκτυπώσει την πραγματικότητα.
Έτσι, όταν είστε επιστρέφουν κάτι, όταν η λειτουργία σας επιστρέφει,
είναι σαν να μετακυλίουν τις τιμές σε το πλαίσιο κάτω από αυτό και στη συνέχεια, αφήνοντας.
Και τα πράγματα πρέπει να εκτελέσει με τη σειρά.
>> Και όταν φτάσετε σε μεγαλύτερα προγράμματα, μπορούμε να κάνουμε πιο δροσερό και πιο περίπλοκο
διαγράμματα.
Αλλά για τώρα, αυτό είναι μόνο μια γενική επισκόπηση
έτσι ώστε να έχουν το είδος της μια κατανόηση του τι
συμβαίνει όταν είστε καλώντας μια συνάρτηση και πώς αυτό φαίνεται πραγματικά στη μνήμη.
Cool;
Όλοι καλό;
Awesome.
>> Έτσι, αυτό είναι ένα που είναι απλώς προσπαθεί να ανταλλάξει τα πράγματα.
Όπως βλέπουμε εδώ, έχουμε πρωτότυπο λειτουργία μας
έτσι ώστε compiler μας δεν φωνάζω σε μας.
Έχουμε κάποια κύρια, και εμείς θέλετε να αλλάξετε x και y.
Δεν έχουν κάνει αυτό το demo σε διάλεξη ακόμα, έχουν αυτοί;
Δεν έχετε;
ΟΚ.
Έτσι θα πάμε για να πάει πάνω από αυτό πολύ σύντομα.
Θα μπει σε αυτό το παράδειγμα περισσότερα στο βάθος, νομίζω, αυτή την εβδομάδα.
Και στη συνέχεια, την επόμενη εβδομάδα μπορούμε πραγματικά βουτήξει γιατί αυτό δεν λειτουργεί.
>> Έτσι έχουμε αυτό το κενό Λειτουργία Swap here--.
Έτσι, οι void απλά σημαίνει ότι τίποτα δεν επιστρέφεται.
Και έχουμε ανταλλαγής int int a και b.
Και έχουμε κάποια προσωρινή μεταβλητή που είναι ένα.
α παίρνει για το b, και στη συνέχεια, β παίρνει ανατεθεί το temp
έτσι ώστε οι α και β του οι τιμές είναι τώρα ενεργοποιημένο.
>> Αλλά, συστροφή πλοκών, αυτό δεν λειτουργεί.
Και μέρος του έχει όντως να κάνει με το γεγονός ότι ένα
και b εδώ, αυτοί που παίρνουν περάσει στο εδώ, είναι πραγματικά αντίγραφα των x και y.
Έτσι, όταν η συνάρτηση επιστρέφει στην πραγματικότητα, αλλάζει τα αντίγραφα, αλλά όχι
η πραγματική χ και γ του.
Έτσι, ένας τρόπος για να το σκεφτώ είναι that-- προσποιούνται αυτά είναι swap.
Εντάξει;
Έτσι, σε γενικές γραμμές, έχουμε x και y αρχικοποιείται.
Αλλά όταν έχουμε πραγματικά ανεβαίνουν σε αυτά τα πλαίσια με swap,
είμαστε περνώντας τις αξίες πάνω σε αυτό, και από όπου και αν προετοιμαστεί.
>> Και μόνο ποτέ να ζήσουν εδώ.
Έτσι, α και β ζουν εδώ.
Και να ανταλλαχθούν.
Αλλά όταν επιστρέψουμε, εμείς δεν κάνουμε κάνει τίποτα με a και b. α
και β άδειας με τη λειτουργία μας.
Και έτσι x και y παραμείνει το ίδιο.
Θα πάρετε περισσότερα για το πώς να διορθώσετε αυτό και πώς μπορούμε πραγματικά ασχοληθεί με αυτό αργότερα.
>> Αλλά αυτό είναι μόνο ένα πράγμα με το είδος του να κρατήσει στο μυαλό.
Χρησιμοποιήστε το για το μέλλον.
Μην ανησυχείτε αν αυτό δεν κάνει όλη η αίσθηση στον κόσμο.
Πρόκειται για αντίγραφα είναι το μεγαλύτερο πράγμα.
Εάν πρόκειται να πάρετε τίποτα μακριά από αυτό, θα περάσει σε αντίγραφα.
Έτσι, τα πρωτότυπα παραμένουν τα ίδια.
Όλοι καλό;
Cool.
>> Έτσι, τα επιχειρήματα της γραμμής εντολών.
Είμαι σίγουρος ότι στην αρχή εσείς όλα είχαν αυτές τις μεγάλες, όπως, int main κενά.
Και είστε σαν, εντάξει δροσερό.
Πραγματικά, δεν με νοιάζει.
Αυτό είναι ακριβώς ό, τι έχω να γράψω.
Αλλά σε νέα προγράμματα σας, ειδικά σε αυτό το chipset,
και γιατί είναι κιμωλία στο έδαφος εκεί;
>> Με την επόμενη το chipset σας, είστε πρόκειται να δει αυτό.
Int main, int arg γ, χορδή τόξου V, παρένθεση.
Έτσι, από ό, τι εμείς απλά μάθαμε σήμερα, τι
νομίζουμε ότι η δεύτερη παράμετρος ή ότι το δεύτερο στοιχείο είναι εδώ;
Είναι μια σειρά.
Τι είδους του πίνακα;
Πίνακα String, ναι.
Cool.
Έτσι, αυτό είναι το πώς θα πάμε να κηρύσσει αυτά τώρα.
>> Υπάρχει κάποιος που θυμάται τι σημαίνουν αυτά για;
Όχι;
Χμμ;
>> Φοιτητής: arg γ.
>> ALLISON: Έτσι arg γ διατηρεί έναν μετρητή.
Είναι ένας int.
Πρόκειται για έναν αριθμό, σωστά;
Λοιπόν, τι νομίζεις ότι ο αριθμός είναι;
Ναι.
Έτσι arg c είναι ο αριθμός των χορδών που συνθέτουν την γραμμή εντολών.
Έτσι, αν ήμασταν για να do-- πραγματικότητα, υπάρχουν παραδείγματα μετά από αυτό,
έτσι δεν θα πάρει μπροστά από τον εαυτό μου.
Είναι μια σειρά από χορδές που απλά συνθέτουν γραμμή εντολών σας.
>> Έτσι, όταν το κάνετε, όπως, dot κάθετος Mario, ότι είναι μία συμβολοσειρά που θα κάνει επάνω.
Σε αυτό το κομμάτι, θα είστε πραγματικά να σίτιση πράγματα στη γραμμή εντολών,
όπως είμαι βέβαιος ότι εσείς που έχουν διαβάσει το spec πριόνι.
Έτσι, σε αυτές τις περιπτώσεις, ίσως θα έχουν δύο ή τρία επιχειρήματα.
Είναι πρόκειται να είναι ένα χρήσιμο πράγμα που πρέπει να χρησιμοποιήσει.
>> Και τότε arg V, όπως είπαμε, είναι απλά ένα πίνακα String.
Έτσι ώστε να αποθηκεύει στην πραγματικότητα ό, τι Σας εισόδου στη γραμμή εντολών.
Έτσι έχουμε αυτά.
Έχετε κάποια κάθετος τελεία αντιγράψετε infile outfile.
Έτσι, εάν arg c είναι ο αριθμός των χορδών ότι είμαστε περνά μέσα από την εντολή
γραμμή, ποια είναι arg μας γ σε αυτή την περίπτωση;
Τρεις.
Ακριβώς.
>> Έτσι τι είναι arg κατά του μηδέν;
Έτσι, ποιο είναι το πρώτο πράγμα που έχουμε αποθηκευμένα;
Dot κάθετο αντίγραφο, ακριβώς.
Και τότε η δεύτερη θα είναι infile.
Το τρίτο θα είναι outfile.
Έτσι τι γίνεται με arg κατά τρεις;
Θα ήταν μηδενική, γιατί αυτό είναι το τέλος της σειράς μας, σωστά;
Cool.
>> Και τότε τι γίνεται με την έκτη;
Είναι το είδος της μια ερώτηση παγίδα.
Ish.
Ξέρουμε τι είναι;
Είναι απροσδιόριστη.
Δεν έχουμε ιδέα τι θα μπορούσε να είναι.
Είναι ό, τι είναι σωστό μετά τη συστοιχία στη μνήμη,
και δεν έχουμε ιδέα τι είναι αυτό.
Και αυτό είναι επικίνδυνο να αγγίξει εκείνους τα πράγματα, γιατί για όλα τα ξέρετε,
αυτό είναι ένα μέρος της μνήμης που δεν πρέπει να έχουν πρόσβαση ή μηδενική.
Και αυτό μπορεί να κάνει τρελά πράγματα.
Ονομάζεται πάνω-ευρετηρίασης δεσμεύεται για την σειρά σας.
Μην πηγαίνετε έξω από τα όρια της σας array, ή κακά πράγματα μπορούν να συμβούν.
Θα έρθει πίσω και, όπως, τους νόμους της φυσικής έχουν καταστραφεί
ή κάτι τέτοιο.
Cool.
Μήπως αυτό έχει νόημα για όλους;
Δεν είναι πάρα πολύ κακό.
>> Μέχρι τώρα, ο καθένας είναι αγαπημένο μέρος, επανεξέταση το chipset.
Τέλεια!
ΟΚ.
Έτσι, για όσους από εσάς δεν έχουν διαβάσει το spec το chipset,
κάνετε κάποια πραγματικά δροσερά πράγματα με την κρυπτογραφία.
Θα πάμε να δημιουργήσουμε ένα Καίσαρα Κρυπτογράφησης και ένα Vigenere κρυπτογράφησης.
Θα πρέπει να διαβάσετε οπωσδήποτε το spec για να δούμε πώς εκείνοι εργασία.
Και αν έχετε οποιοδήποτε πρόβλημα σχετικά με αυτό που πρέπει πραγματικά να κάνουμε,
παρακαλούμε να έρθει να μου μιλήσει, e-mail μου ή να με κείμενο.
Είμαι γύρω.
>> Έτσι, υπάρχουν τρεις κύριες πράγματα εδώ που είμαστε
θέλω να μιλήσω about-- ακριβώς το είδος της παράτασης της διάλεξης.
Πράγματα που ίσως δεν γνωρίζετε περίπου, χρήσιμες συμβουλές και εργαλεία.
Έτσι θα πάμε να κάνουμε μια γρήγορη ανασκόπηση του ASCII,
γιατί αυτό πρόκειται να είναι σούπερ σημαντικό για την κρυπτογράφηση Vigenere του.
Εμείς πάμε για τη μετατροπή της εισόδους γραμμής εντολών, η οποία
θα είναι πολύ χρήσιμη για τον Καίσαρα Cipher.
Και στη συνέχεια, modulo.
Cool.
>> Έτσι, ASCII χάρτες χαρακτήρες σε αριθμούς.
Αυτό είναι ένα μεγάλο διάγραμμα.
Θα πρέπει να έχετε αυτό σελιδοδείκτη κάπου.
Θα το ήθελα για πρώτο σας ενδιάμεση.
Είμαι αρκετά βέβαιος ότι ο καθένας έχει αυτό διάγραμμα για την ενδιάμεση φύλλο τους.
Έτσι μαθαίνουν.
Love it.
Φροντίστε να είναι βολικό.
Θα είναι χρήσιμο.
>> Και όλα είναι είναι μια κωδικοποίηση ότι οι χάρτες αλφαβητική, αριθμητική,
και άλλους χαρακτήρες οι αριθμοί για τον υπολογιστή μας.
Επειδή βέβαια, στην τέλος, ό, τι έχουμε αποθηκεύσει
πρόκειται να πάρει μετατραπεί κάτω σε μηδενικά και μονάδες,
έτσι χρειαζόμαστε κάποιο τρόπο να εκπροσωπεί το κείμενο και χαρακτήρες που είμαστε όλοι
συνηθίσει να βλέπουμε ως ένα είδος αριθμού.
>> Έτσι, όπως βλέπουμε εδώ, έχουμε κεφαλαίο Α, το οποίο είναι ακριβώς εκεί.
Είναι 65.
Και πεζά Α είναι 97.
Έτσι, μπορείτε να υπολογίσετε out-- όπως είπα και προηγουμένως,
αν είχατε σειρά από πολλαπλές χορδές, τι το καθένα από αυτά
έχουν μηδενική τερματισμού.
Θα ήταν ένα διάστημα.
Space έχει τη δική του special-- Ξεχάσω όταν είναι εδώ.
Αχ.
32 είναι ο χώρος.
Έτσι, τα πάντα χάρτες σε αυτό.
>> Έτσι έχουμε ASCII μαθηματικά.
Pro tip-- στο Vigenere του, να μπείτε στον πειρασμό
για να μετατρέψετε τους αριθμούς σας σε ακέραιους αριθμούς, αλλά στην πραγματικότητα είναι καλύτερη πρακτική
να είναι σε θέση να χρησιμοποιήσει το χαρακτήρες, όπως αυτό
όταν είστε πραγματικά να τους χειραγωγούν.
Έτσι, εάν θέλετε να χρησιμοποιήσετε αριθμούς, μπορείς.
Όμως, ένας καλύτερος τρόπος, ή με τρόπο που έχουμε την τάση να σας αρέσει ρε παιδιά να το κάνουμε,
είναι αυτός ο τρόπος, όπου είστε στην πραγματικότητα αφαιρώντας χαρακτήρες.
>> Έτσι σας θέλω παιδιά να το είδος των καταλάβω αυτά τα εμπόδια.
Γιατί δεν δοκιμάζεις κάθε άλλο;
Έτσι κάνετε το πρώτο, το τρίτο και το πέμπτο.
Επειδή θέλω να βεβαιωθείτε ότι μιλάμε σχετικά με όλα όσα χρειαζόμαστε για να μιλήσουμε για.
Είμαι ακριβώς πρόκειται να πω, ένα από τα σημαντικά πράγματα to-- Ω περιμένετε,
εσείς δεν έχετε δει αυτό το ένα.
Εντάξει, έτσι κάνουν οι τρεις πρώτοι.
Ας το κάνουμε αυτό.
Επειδή έχουμε να μιλήσουμε για modulo.
Το ξέρω.
Μαθηματικά είναι δύσκολο.
Μπορείτε να χρησιμοποιήσετε μια αριθμομηχανή.
Είναι εντάξει.
Ή να σηκώσει έναν πίνακα ASCII, επειδή πρόκειται πιθανώς να θέλετε αυτό.
>> Cool.
Γι 'αυτό και θα περπατήσει γρήγορα εσείς μέσα από αυτά.
Έτσι, οι άνθρωποι έχουν πίνακες ASCII τράβηξε επάνω;
Τι είναι η αριθμητική μας αριθμό για πεζούς Α;
Φοιτητής: Επτά.
>> ALLISON: Έτσι πεζά Α είναι 97 και κεφαλαίο Α είναι 65.
Έτσι 97 μείον 65;
>> ΚΟΙΝΟ: 32;
>> ALLISON: 62, ναι.
Έτσι, σε αυτή την περίπτωση, τι θα το τυπώσετε έξω;
Αυτή η πρώτη;
Αν έχουμε τοις εκατό δ, τι θα ήταν αυτό δείχνουν;
Φοιτητής: Ένας αριθμός.
ALLISON: Είμαστε εκτύπωση από έναν πραγματικό αριθμό.
Έτσι είμαστε στην πραγματικότητα θα να εκτυπώσετε 32 εδώ.
Και αν αυτό ήταν τοις εκατό c, 32 θα μας δώσει ένα χώρο.
Έτσι, η κατανόηση ότι χαρακτήρες μπορούν να εκτυπωθούν
τόσο ως αριθμούς και ως οι πραγματικές χαρακτήρες
είναι πραγματικά σημαντικό, και πληρώνουν προσοχή στις πραγματικές τύπους
ότι κάνουμε εδώ.
Cool.
Έτσι, για κάθε άλλο ένα από αυτά, τι θα πάμε να την εκτύπωση;
>> Φοιτητής: Ένας χαρακτήρας.
>> ALLISON: Ένας χαρακτήρας.
Cool.
Έτσι, αν εσείς θέλετε να ξέρετε, μπορεί να λειτουργήσει αυτοί έξω από τη δική σας.
Αν έχετε πρόβλημα, το ηλεκτρονικό ταχυδρομείο μου.
Αλλά το δεύτερο θα εκτυπώσετε ένα πεζό β.
Η τρίτη θα εκτυπώσετε μια κεφαλαία Β Το τέταρτο θα εκτυπώσετε
από ένα κεφαλαίο C, και η τελευταίο θα είναι ένα πεζό Α
Και η τελευταία ένα-- είμαστε στην πραγματικότητα θα να μπει σε ό, τι εκείνη την τρελλή τοις εκατό
σημάδι σημαίνει ότι ακόμα και σε ένα ζευγάρι διαφάνειες.
Έτσι, δοκιμάστε όσοι ζουν μόνοι σας.
Αν έχετε πρόβλημα, παρακαλούμε να έρθει να μου μιλήσει.
Αν είστε συνήθως σε Adams D αίθουσα, θα βρείτε πιθανώς γύρω μου.
>> Έτσι, Atoi.
Πόσοι από εσάς έχετε δει αυτό λειτουργία ή ακούσει για αυτό καθόλου;
Όποιος;
Cool.
Έτσι, ό, τι πραγματικά αντιπροσωπεύει είναι ASCII σε ακέραιο.
Έτσι τι μπορείτε να κάνετε είναι, με τον Καίσαρα, για εκείνους που διαβάζουν το spec,
θα πάμε να κάνουμε dot κάθετος Καίσαρα αφού γράψετε το πρόγραμμά σας,
και στη συνέχεια θα πάμε να είσοδος μερικά αριθμό που
θέλουν να κωδικοποιήσει μυστικό μήνυμα σας.
>> Αλλά, αν θυμηθούμε, όλοι μας Οι είσοδοι αποθηκεύονται ως συμβολοσειρές.
Σωστά;
Έχουμε μια arg κατά σειρά ότι είναι όλα συμβολοσειρά τύπου.
Έτσι, αν απλώς προσπαθήστε να τραβήξτε ότι το ένα, θα
πιστεύουν ότι ένας ή οτιδήποτε άλλο αριθμό που χρησιμοποιείται είναι στην πραγματικότητα ένας χαρακτήρας.
Έτσι θα πάμε να πάρετε κάποια τρελά αποτελέσματα.
Έτσι, εάν θέλετε πραγματικά να μετατρέψει αυτό σε έναν ακέραιο
που μπορείτε να χρησιμοποιήσετε για να χειραγωγήσουν η λέξη ή το μήνυμά σας,
θα θελήσετε να χρησιμοποιήσετε Atoi.
Atoi μετατρέπει μόνο εγχόρδων σας σε int.
>> Έτσι, αν έχουμε μια σειρά από 12, αν καλούμε Atoi στις 12, ή ό, τι αυτή η είσοδος είναι,
θα επιστρέψει στην πραγματικότητα να σας το ακέραιο.
Δεν είναι ο χαρακτήρας ή η χορδή 12.
Που, όταν ξεκινάτε να προσθέσω ότι σε αριθμούς,
θα είναι πολύ διαφορετική, επειδή το κορδόνι 12 είναι
κάποια τρελή αριθμό σε ASCII, αλλά ο ακέραιος 12
είναι στην πραγματικότητα 12, το οποίο είναι ό, τι θέλετε.
Έτσι, θέλετε να βεβαιωθείτε ότι χρησιμοποιείτε Atoi.
>> Θα πάμε να θέλουν αυτό το σε Καίσαρα, γιατί
χρειάζεται το int που παρέχεται από το χρήστη στη γραμμή εντολών.
Αλλά όταν το βάλετε στην εντολή γραμμή, αποθηκεύεται ως ένα string
για να αρχίσει με.
Μήπως αυτό έχει νόημα;
Δεν κάνουν αναγκαστικά χρειάζεται αυτό για Vigenere.
Με Vigenere, όπως είπα πριν, θα πρέπει να προσπαθήσετε και να χρησιμοποιήσετε
ASCII μαθηματικά που μοιάζει περισσότερο αυτό, όπου θα είστε πραγματικά
χρησιμοποιώντας τους χαρακτήρες που μας δίνεται για να σας.
Cool.
Όλοι καλά εκεί;
Awesome.
>> Έτσι modulo.
Έτσι, ό, τι και αν σας δίνεται αυτό το τεράστιο νούμερο για τον Καίσαρα;
Έχετε αυτή την ιδέα ότι αν είστε σε Ζ και είστε
δοθεί ένα νούμερο δύο, αυτό σημαίνει ότι θα need--
Ζ γίνεται η δεύτερη επιστολή μετά από μόνη της, σωστά;
Έτσι, θα πρέπει με κάποιο τρόπο να τυλίξει γύρω, και modulo είναι ο τρόπος για να το κάνουμε αυτό.
Έτσι, το μόνο που κάνει είναι να σας δίνει το υπόλοιπο
της διαίρεσης της πρώτο αριθμό από το δεύτερο.
Και έχουμε μερικά παραδείγματα για να κάνουν ότι λίγο πιο συγκεκριμένα.
Αλλά βασικά, μπορείτε να χρησιμοποιήσετε με μέτρο, όταν θέλουν να κάνουν κάτι περιτύλιξης.
>> Έτσι, αν θέλετε μόνο το αριθμών ένα έως οκτώ,
μπορείτε να χρησιμοποιήσετε το modulo σε οποιοδήποτε άλλο τον αριθμό, και θα είναι πάντα
επιστρέφει έναν αριθμό από το μηδέν έως οκτώ.
Έτσι, κάποια examples-- αν έχουμε 55 modulo 10,
σας δίνει μόνο το υπόλοιπο της 55 διαιρούμενο με 10, η οποία θα είναι 5.
Και στη συνέχεια, τρεις modulo πέντε, κανείς να μαντέψει τι θα ήταν;
Τρεις.
>> Έτσι, εάν έχετε ένα μικρότερο αριθμό πριν η modulo, δεν μπορεί να πάει σε ομοιόμορφα.
Είναι μηδέν.
Έτσι, επιστρέφει μόνο τον αριθμό τους.
Έτσι, οκτώ modulo οκτώ θα είναι;
>> ΜΑΘΗΤΗ: Μηδέν.
>> ALLISON: Μηδέν.
Επειδή πηγαίνει σε ομοιόμορφα.
16 modulo 15;
>> ΚΟΙΝΟ: Ένα.
>> ALLISON: Cool.
Και τότε αυτό το τελευταίο είναι απλώς να δείχνουν you-- ίσως να αναρωτιέστε, εντάξει,
ποια είναι η σειρά των πράξεων εδώ;
Να διαιρούμε πρώτα;
Μήπως modulo πρώτα;
Έτσι modulo κατέχει την ίδια προτεραιότητα όπως διαίρεση ή πολλαπλασιασμό,
και το αριστερό συνειρμική του.
Έτσι είναι με τον ίδιο τρόπο.
Θα κάνουμε πάντα παρενθέσεις, στη συνέχεια, πολλαπλασιασμός, διαίρεση,
και modulo στη σειρά από τα αριστερά προς τα δεξιά.
Έτσι τυποποιημένους κανόνες.
Απλά να το θέσω στην ίδια κατηγορία η διαίρεση και ο πολλαπλασιασμός.
>> Έτσι, σε αυτή την περίπτωση, θα έχουν 1 συν 2 μας δίνει 3.
Εμείς πολλαπλασιάστε το με 2, οπότε έχουμε 6.
Εμείς modulo ότι κατά 2, η οποία μας δίνει;
>> Φοιτητής: 0.
>> ALLISON: 0.
Και στη συνέχεια προσθέτουμε 2, έτσι ώστε να πάρετε 2 στην τελευταία αυτή περίπτωση.
Έτσι modulo-- είστε σίγουρα πρόκειται να να σκεφτόμαστε τρόπους για να ενσωματώσει
ότι όταν είστε περιτυλίγματος γύρω από το αλφάβητο.
Αν είστε στο Ζ και θα πρέπει να προχωρήσουμε διαβιβάσει τρία κενά για να φτάσετε στο C,
υπάρχει η όλη ιδέα περιτυλίγματος γύρω.
Γι 'αυτό και θα το αφήσει να εσείς να καταλάβω
πώς ακριβώς θα πάμε να το χρησιμοποιείτε.
Αλλά σίγουρα ένα χρήσιμο εργαλείο για το chipset σας αυτή την εβδομάδα.
Μου αρέσει πολύ αυτό.
Αυτό είναι ένα από τα αγαπημένα μου psets.
Στη συνέχεια, αφού το κάνετε, αν έχετε φίλους,
μπορείτε, όπως, ανακοινώνουν αμοιβαία μυστικό μηνύματα και να βεβαιωθείτε ότι λειτουργεί.
Επειδή θα το αποκρυπτογραφήσει ή οτιδήποτε άλλο.
Τα μέρη της διασκέδασης.
>> Και αυτό είναι το τέλος του τμήματος.
Τελείωσα νωρίς.
Εξακολουθώ να έχω 15 λεπτά με σας παιδιά, οπότε αν υπάρχει κάτι
ότι θα θέλατε να πάτε πάνω Επιπλέον, θα ήθελα να είναι στην ευχάριστη θέση να το κάνουμε αυτό.
Οποιεσδήποτε άλλες ερωτήσεις σχετικά με το chipset σας για όσους από εσάς
που έχουν αρχίσει ή να διαβάσετε το spec.
Οτιδήποτε έχουμε μιλήσει για την τελευταία ώρα
και 15 λεπτά που θέλετε μου αρέσει για το είδος της αναμάσημα, θα ήθελα να είναι στην ευχάριστη θέση να.
Ή μπορούμε να το ονομάσουμε κλείνει, και μπορείτε να όλοι φεύγουν και να λάβει πιο γλυκά μαζί σας
καθώς πηγαίνετε.
Αλλά αν υπάρχουν πλανάται ερωτήσεις, παρακαλώ επιτρέψτε μου να ξέρω.
Μπορείτε επίσης να έρθετε και να μου μιλήσει αργότερα.
Υπόσχομαι ότι δεν δαγκώνουν.
Οτιδήποτε άλλο;
Ο καθένας είναι καλό;
Συναίσθημα του καθενός, όπως μπορούν να χειριστούν αυτό το chipset;
Θα πάμε να είναι μια χαρά παιδιά.
Οι ώρες λειτουργίας είναι εκεί για έναν λόγο.
Cool.
Εντάξει.
>> Λοιπόν, σε αυτή την περίπτωση, ευχαριστώ όλοι τόσο πολύ που ήρθατε.
Ελπίζω να σας δω την επόμενη εβδομάδα.
Θα υπάρξουν περισσότερες καραμέλα.
Μπορεί να υπάρχουν και άλλα δροσερά πράγματα.
Και ανυπομονώ να πάρει να γνωρίζετε όλοι σας αυτό το έτος.