[Παίζει μουσική] ΙΑΣΩΝ Hirschhorn: Εντάξει, ο καθένας. Καλώς ήλθατε στο Τμήμα. Αυτό είναι CS50, πολύ μας πρώτο σούπερ ενότητα. Όπως όλοι γνωρίζετε, την επόμενη εβδομάδα τακτική τμήματα θα αρχίσουν, αλλά αυτή την εβδομάδα είμαστε όλοι μαζί. Υπάρχει εαυτό μου. Το όνομά μου είναι Τζέισον. Είμαι καθηγητής στην Επιστήμη των Υπολογιστών. Έχουμε Andi, ο οποίος είναι ο επικεφαλής της TA CS50. Και SCAZ, καθηγητής Brian Scassellati, είναι καθηγητής στην Επιστήμη των Υπολογιστών. Είμαστε οι επικεφαλής CS50 στο Yale. Μπορείτε πάντα να στείλετε email heads@cs50.yale.edu μας. Θα είμαστε σε διαλέξεις. Θα είμαστε σε ώρες γραφείου. Αν υπάρχει ποτέ κάτι που μπορούμε κάνει για σας, ό, τι χρειάζεστε, διστάσετε να φτάσει σε εμάς. Λοιπόν, τι θα κάνουμε σήμερα; Ή πριν από τότε, τι είναι έρχεται αυτή την εβδομάδα; Έτσι, ώρες γραφείου είναι Δευτέρα, Τρίτη, Τετάρτη, και Πέμπτη, 8:00 - 11:00. Υπάρχει ένα πρόγραμμα στην ιστοσελίδα του. Τμήματα, όπως ανέφερα, αρχίζουν την επόμενη εβδομάδα. Και θα βρείτε αυτή την εβδομάδα ό, τι καιρό το τμήμα σας είναι, τι μέρα είναι, και ποιος TA σας είναι. Πρόβλημα Σετ 1 οφείλεται σε Πέμπτη και ώρα το μεσημέρι, Παρασκευή το μεσημέρι με μια πρόσφατη ημέρα. Ναι, έχετε εννέα τελευταίες μέρες. Και υπάρχουν εννέα πρόβλημα σύνολα. Και μπορεί να χρησιμοποιήσει μόνο μία αργά την ημέρα ανά σετ πρόβλημα. Ναι, στην πραγματικότητα, όλα τα προβλήματα σύνολα οφείλονται Παρασκευή το μεσημέρι. Αυτά είναι όλα. Όλα αυτά τα στοιχεία είναι στην εξεταστέα ύλη. Κάθε Παρασκευή, έχουμε γεύματα. Θα ήθελα να κάνω αυτό το μεγάλο Φυσικά αισθάνομαι λίγο μικρότερο. Έτσι, είστε ευπρόσδεκτοι να RSVP. Δωρεάν γεύμα με τους συναδέλφους συμμαθητές και το προσωπικό. cs50.yale.edu/rsvp. Όλα αυτά τα πράγματα, ότι Έχω στην οθόνη, και πολλά άλλα, μπορείτε να βρείτε cs50.yale.edu ή cs50.harvard.edu, αν πάτε στο Χάρβαρντ και βλέποντας αυτό το online. Επίσης, σε αυτές τις ιστοσελίδες, υπάρχουν είναι ένας τόνος των πόρων για σας. Κάθε διάλεξη δεν έχει μόνο το βίντεο της διάλεξης, αλλά και σημειώνει. Κάποιος θα παρακολουθήσουν το διάλεξη και να κρατάτε σημειώσεις για εσάς. Έτσι, μπορείτε να πληρώσετε μόνο προσοχή κατά τη διάρκεια διαλέξεων, ή μπορείτε να χρησιμοποιήσετε τις σημειώσεις τους / μας σημειώσεις που συμπληρώνουν τις δικές σας σημειώσεις. Υπάρχουν διαφάνειες σε απευθείας σύνδεση. Η πηγή code-- τα πάντα David πηγαίνει πάνω στη διάλεξη, ή SCAZ πηγαίνει πέρα ​​από διάλεξη, ότι πηγαίος κώδικας είναι διαθέσιμος σε απευθείας σύνδεση καθώς, όπως όπως εγώ, που αναφέρεται βίντεο. Τμήματα, επίσης, όλα θα γυριστεί. Όλες αυτές οι διαφάνειες θα είναι διαθέσιμα. Όλα του κώδικα αυτού θα είναι διαθέσιμη για εσάς. Υπάρχουν σορτς στην ιστοσελίδα όπου Μέλη του προσωπικού CS50 περάσουν πέντε έως 10 λεπτών που διέρχεται από τα θέματα για σας. Μερικοί από αυτούς που έχετε ήδη αντιμετώπισε πρόβλημα στο σετ. Οι ώρες γραφείου, όπως ανέφερα, Δευτέρες μέσω Πέμπτη 8:00 έως τις 11:00. CS50 Μελέτη είναι ένας φανταστικός πόρος. Υπάρχουν προβλήματα πρακτικής, δείγμα διαφάνειες, γνωστά σφάλματα ότι οι μαθητές αρέσει να τρέχει σε, ουσιαστικά για κάθε θέμα που θα καλύψει σε αυτό το μάθημα. Και τέλος, σε αυτήν τη διαφάνεια τουλάχιστον, Reference50 το οποίο σας δίνει πληροφορίες σε όλες τις λειτουργίες C θα μπορούσε ποτέ να ελπίζουμε ενδεχομένως να χρησιμοποιούν και πολλά, πολλά άλλα. Και πάλι, που dot dot dot στο το κάτω μέρος της οθόνης είναι να δείξει ότι υπάρχει ακόμη περισσότερους πόρους σε αυτές τις δύο ιστοσελίδες: cs50.yale.edu, cs50.harvard.edu. Λοιπόν, τι κάνουμε σήμερα; Λοιπόν, πρώτα Πάω να δώσει Αν κοιτάξει κανείς τους πόρους. Ήδη έκανε το ένα. Κοιτάξτε μας. Τώρα, θα πάμε για να πάει πέρα ​​από τύποι δεδομένων και τελεστές σε C. Στη συνέχεια, Andi θα έρθουν εδώ και να πάει πάνω από βιβλιοθήκες σε C, printf (), μια λειτουργία με την οποία είστε ήδη εξοικειωμένοι ή γρήγορα θα γίνει πολύ εξοικειωμένοι. Και επίσης θα πάει πάνω υποθετικοί και βρόχους. Και στη συνέχεια, τέλος, SCAZ θα πάει πέρα ​​από το αναγνωριστικό CS50. Αν δεν έχετε περιστέρι ήδη Πρόβλημα Σετ 1, καθώς και τον τρόπο χρήσης του τερματικό και χρήσιμες εντολές και στη συνέχεια να σας δώσω μερικά demos και πρακτική κωδικοποίηση της ταυτότητας CS50. Πριν άλμα σε αυτό περιεχόμενο σε αυτήν την πλευρά, Πιστεύει κανείς έχει οποιεσδήποτε ερωτήσεις μέχρι στιγμής; Εξαιρετική. ΕΝΤΆΞΕΙ. Την αλλαγή ταχυτήτων. [Αλλαγή ταχυτήτων] Αυτό ήταν με μετατόπιση γρανάζια σε ένα εγχειρίδιο του αυτοκινήτου. Έτσι, οι τύποι δεδομένων στη C, δεν μπορείτε να έχετε μόνο μια μεταβλητή x και πρέπει να είναι στη γραμμή 10, ένας ακέραιος αριθμός, ίσως το νούμερο 1, στη γραμμή 20, ένα δεκαδικό αριθμό 10.5, και γραμμές στη συνέχεια ένα ζευγάρι αργότερα μια σειρά, αγαπώ CS50. Στην C, οι μεταβλητές μπορεί να είναι μόνο ένα πράγμα και ένα πράγμα μόνο. Και έτσι πρέπει να τους δώσουμε τύπους. Και σε αυτό το σύστημα, εμείς έχουν μια λίστα των τύπων. Υπάρχουν χαρακτήρες, η οποία σταθεί για τους χαρακτήρες. Έτσι αυτό είναι ένα γράμμα Α, Β, Γ, Δ που μπορεί επίσης να είναι ένας χώρος, ή ότι μπορεί επίσης να είναι ένα νέο χαρακτήρα γραμμής. Υπάρχουν ακέραιοι, που είναι ακριβώς αριθμούς, ολόκληρο numbers-- ή ακέραιοι rather-- αλλά χωρίς δεκαδικά. Για δεκαδικά ψηφία, έχουμε αριθμούς κινητής υποδιαστολής. Οι αριθμοί κινητής υποδιαστολής είναι αριθμοί με δεκαδικά ψηφία. Έπειτα, υπάρχουν και επιμήκη προϊόντα, τα οποία είναι ουσιαστικά περισσότερο ακέραιοι. Θα παρατηρήσετε ότι ένα μεγάλο είναι 8 ενώ ένας int είναι 4. Θα φτάσουμε σε αυτό σε μια δεύτερη. Αυτό συμβαίνει γιατί λαχταρά να αποθηκεύσετε ακόμα περισσότερα ακέραιοι από έναν int μπορεί να αποθηκεύσει. Διπλό είναι ένα μεγάλο πλωτήρα. Και τέλος, έχουμε χορδών, η οποία είναι ένας τύπος ότι έχετε πιθανώς χρησιμοποιήσει στο παρελθόν. Εάν περιλαμβάνουν hashtag # includeCS50.h στο αρχείο προέλευσης, τότε μπορείτε να χρησιμοποιήσετε έναν τύπο συμβολοσειράς. Στην πραγματικότητα δεν είναι ενσωματωμένη στο C. Υπάρχουν ένα-δύο άλλα είδη, όπως καλά. Αλλά αυτοί είναι οι κυριότεροι από τους οποίους με το οποίο θα χρησιμοποιήσετε και συναντούν. C, όπως, πάλι ανέφερα, Κάθε αυτό variable-- μπορεί να είναι μόνο ένας τύπος και μόνο έναν τύπο. Αυτό συμβαίνει γιατί η C είναι στατικά δακτυλογραφημένη γλώσσα, σε αντίθεση με σε δυναμικά δακτυλογραφημένες γλώσσες όπου εάν δημιουργήσετε μια μεταβλητή μπορείτε να αλλάξετε ό, τι είναι αποθηκευμένο σε αυτό καθώς πηγαίνετε στο στο πρόγραμμά σας. Πάνω εδώ στο δεξί χέρι πλευρά, έχω τα διαφορετικά μεγέθη από αυτούς τους τύπους δεδομένων σε bytes. Έτσι, ένας χαρακτήρας είναι 1 byte. Αυτό είναι 8 bits. Και αυτό σημαίνει ότι επειδή 8 bits υπάρχουν οκτώ 0 και 1. Είδαμε αυτές τις επιδείξεις στο πρώτο εβδομάδα με αυτό το δυαδικό λαμπτήρες. Με 8 bits ή 1 byte, μπορούμε αντιπροσωπεύσει τους αριθμούς 0-255. Δεξιά. Εάν όλα τα 8 bits είναι 0 που είναι 0. Αν το πρώτο bit είναι 1, αυτός είναι ο αριθμός μία, και ούτω καθεξής, σε όλη τη διαδρομή μέχρι το 255. Και αυτός είναι ο λόγος για χαρακτήρων που μπορείτε να έχουν ουσιαστικά έως 255 από αυτά, αλλά αυτό είναι αρκετό για να καλύψει όλες τις οι χαρακτήρες που πρέπει να χρησιμοποιήσετε. Για ακέραιοι, μπορείτε να έχετε 0 και τότε έχετε 2 στο 32 μείον 1. Αυτά είναι πόσες επιλογές που έχετε για ακέραιοι. Για ένα μεγάλο χρονικό διάστημα, έχετε 0 2 έως το 64 μείον 1. Έτσι έχετε πολλά, πολλά, περισσότερες επιλογές για επιμήκη προϊόντα. Χορδές, αυτό είναι ένα ερωτηματικό γιατί αυτό είναι μια δραματική στιγμή για αργότερα. Ναι. Θα μπορούσα να πω σε όλους είναι στην άκρη της έδρας τους, όπως τι είναι αυτό το ερωτηματικό; Είναι μια δραματική στιγμή. Εμείς θα καλύψει τελικά το μέγεθος του χορδές και να μιλήσουμε περισσότερο για χορδές. Επειδή string είναι στην πραγματικότητα μία από τις ρόδες βάζουμε σε αυτό σε Φυσικά στην αρχή και στη συνέχεια να απογειωθεί αργότερα σχετικά, γιατί χορδές σε C είναι στην πραγματικότητα Δείκτες συστοιχίες χαρακτήρα. Αλλά και πάλι, αυτό είναι ένα δραματική στιγμή για αργότερα. Πριν προχωρήσουμε σε οποιεσδήποτε ερωτήσεις, παρατηρήσεις, τις ανησυχίες σχετικά με αυτήν τη διαφάνεια; ΕΝΤΆΞΕΙ. Θα πρέπει να είναι μια φανταστική διευκρινίζων. Επίσης, όταν είστε προγραμματισμού, θα πάμε να χρησιμοποιήσετε αυτές τις επιχειρήσεις. Πραγματικά απλά σημεία που μπορεί να κάνει απλές πράξεις, με τις οποίες είστε πιθανώς ήδη πολύ εξοικειωμένοι. Για παράδειγμα, σχετικά με το δικαίωμα πλευρά, βλέπουμε να προσθέσετε. Για να προσθέσετε, μπορείτε απλά να κάνετε ένα σημάδι Plus. Και έτσι μπορεί να έχετε δύο μεταβλητών x και y. Μπορείτε να κάνετε x + y στον κώδικά σας. Ίσως θέλετε to-- λέτε έχουν τον αριθμό 7 και 3, θέλετε να αποθηκεύσετε ότι σε μια μεταβλητή που ονομάζεται άθροισμα. Μπορείτε να κάνετε int για τον τύπο, το χώρο ποσό, το όνομα της μεταβλητής, = 7 + 3? Τι θα κατάστημα στο ποσό; Όποιος; Αν είχα στο άθροισμα = 7 + 3. Τι θα πρέπει να αποθηκεύονται σε ποσό; Μπορείτε να το φωνάξω μόνο. Κοινό: 10. ΙΑΣΩΝ Hirschhorn: 10! Αυτό είναι ακριβώς σωστό. Τι γίνεται στο άθροισμα = 7-3, Μόλις έχω χρησιμοποιήσει το εν λόγω σημείο παύλα. Τι πρόκειται να αποθηκευτεί; Κοινό: 4. ΙΑΣΩΝ Hirschhorn: 4. Το ποσό είναι κατά πάσα πιθανότητα το λάθος όνομα ότι οι μεταβλητές, αλλά 4 θα αποθηκευτεί. Για να πολλαπλασιάσει σε C, χρησιμοποιήστε το μικρό Αστέρι χαρακτήρα, δεν χρησιμοποιείτε ένα x. Για να διαιρέσετε, χρησιμοποιήστε μια Δεν Slash το σύμβολο διαίρεσης. Και για να modulo, χρησιμοποιήστε το σύμβολο τοις εκατό. Ας πούμε ότι θέλω να δω int z = 7% 3, τι θα αποθηκεύονται σε z; Έτσι, αυτό είναι κατ 'ουσίαν ρωτώντας τι modulo κάνω; Ξέρει κανείς τι κάνει modulo; Ναι. y 4. ΟΜΙΛΗΤΗΣ 1: Είναι το υπόλοιπο. ΙΑΣΩΝ Hirschhorn: Είναι η υπόλοιπο όταν χωρίζουν. Έτσι, 7 διαιρείται δια 3 είναι 2 υπόλοιπο 1. Έτσι 1 θα αποθηκεύονται. Κάνατε αφαίρεση, αλλά αυτό είναι το πώς λειτουργεί. Αυτό είναι που κάνει ο χειριστής modulo. Παίρνει μια σειρά χωρίζει από άλλο αριθμό και επιστρέφει για να σας το υπόλοιπο. Έτσι και πάλι, 7% 3 σας δίνει 1, επειδή 7 διαιρείται δια 3 είναι 2 υπόλοιπο 1, και επιστρέφει το υπόλοιπο. Τι γίνεται ας πάμε πίσω μέχρι ένα βήμα προς αυτή την σύμβολο της διαίρεσης. Αν έκανα 7 / διαιρείται με 3 κάνει δήποτε ξέρει τι θα επιστρέψει; ΟΜΙΛΗΤΗΣ 2: 2. ΙΑΣΩΝ Hirschhorn: Γιατί 2 και όχι 2.333; ΟΜΙΛΗΤΗΣ 2: Νομίζω ότι κόβει μακριά μετά από την ακέραιο αριθμό. ΙΑΣΩΝ Hirschhorn: Λοιπόν αυτό είναι ακριβώς σωστό. Στην C, αν το κάνετε διαίρεση του δύο ακέραιοι 7 διαιρείται με 3, παίρνει την απάντηση που σε αυτή την περίπτωση 2,3333 για πάντα και διαπιστώνει ότι η υποδιαστολή και τεμαχίζει τα πάντα εκτός από το δεκαδικό και σας επιστρέφει ακριβώς 2. Έτσι, αν το έκανα 8 διαιρείται δια 3. Αυτό πραγματικά, γνωρίζουμε ότι για να επιστρέψει 2.666, αλλά τεμαχίζει τα πάντα ανοικτά σε το δεκαδικό, όλα περικόπτει, και απλά επιστρέφει για να σας 2. Έτσι, 6 διαιρείται με 3, 7 διαιρείται με 3, 8 διαιρείται με 3, όλοι πρόκειται να σας επιστρέψει 2. Ξέρει κανείς, ή να έχουν μια εικασία, ως προς το πώς θα μπορούσα πραγματικά να πάρει Η πλήρης απάντηση, αν θέλω αυτή δεκαδικά; Ναι. Προχώρα. ΟΜΙΛΗΤΗΣ 3: Χρησιμοποιήστε ένα πλωτήρα; ΙΑΣΩΝ Hirschhorn: Τι εννοείς; ΟΜΙΛΗΤΗΣ 3: Επειδή είπατε ότι η float είναι για τους αριθμούς [δεν ακούγεται] ΙΑΣΩΝ Hirschhorn: Δεξιά. Έτσι, αυτό είναι ακριβώς σωστό. 7 είναι ένας ακέραιος. Αλλά αν ήθελα να τη σειρά του ότι σε έναν αριθμό κινητής υποδιαστολής, Θα πρέπει να αποθηκεύσετε ότι ως 7.0 επειδή ο υπολογιστής είναι πραγματικά stupid-- είδαμε ότι με το PB και J example-- θα κάνει μόνο ακριβώς τι να πω. Έτσι, αν γράφετε 7, το Πιστεύω ότι είναι ένας ακέραιος. Αν γράφετε 7.0, παρόλο που ξέρετε αυτά τα πράγματα είναι ισοδύναμα, ότι αντιμετωπίζει σαν ένα αριθμό κινητής υποδιαστολής. Έτσι, αν κάνατε 7,0 διαιρείται με 3, ή από 3.0 διαιρούμενο, θα πω, εντάξει, τώρα έχουμε να κάνουμε με πλωτήρες. Θα επιστρέψω για να σας 2.333333 για πάντα. Αλλά δεν είναι πραγματικά για πάντα, επειδή όπως είδαμε και στην διάλεξη, αυτοί αριθμούς κινητής υποδιαστολής Δεν είναι ακριβώς ακριβείς. Έτσι, αν θέλετε αυτό δεκαδικά, ή ένα μέρος αυτής της υποδιαστολής, τότε θα πρέπει να use-- ένας από αυτούς πρέπει να είναι ένας αριθμός κινητής υποδιαστολής και ο υπολογιστής πρέπει να καταλάβει ότι αυτό είναι ένα πλωτό σημείο βρίσκεστε που ασχολούνται με, δεν είναι ακέραιος αριθμός. Οποιεσδήποτε ερωτήσεις σχετικά με αυτό το τραπέζι για η δεξιά πλευρά, μέχρι στιγμής; Ή αριστερή πλευρά σας, σας αριστερά, το αριστερό σας χέρι. Ναι. ΟΜΙΛΗΤΗΣ 4: Δικαίωμα. Για ακριβώς όπως ένα κανονικό ακέραιοι, θα κάνατε write-- θα πρέπει να γράψετε επιπλέουν; ΙΑΣΩΝ Hirschhorn: Ναι, έτσι. Λοιπόν, εάν θέλετε να δημιουργήσετε μια μεταβλητή που είναι ένας πλωτήρας, θα πρέπει να πούμε πλωτήρα z ισούται με κάτι. ΟΜΙΛΗΤΗΣ 4: Εντάξει. ΙΑΣΩΝ Hirschhorn: Αλλά αν ήθελα να κάνει 7 διαιρείται δια 3 και να πάρει ότι δεκαδικά, Θα ήθελα να κάνω float z = 7,0 / 3,0? και ότι θα μου δώσει κινητής υποδιαστολής αριθμό. ΟΜΙΛΗΤΗΣ 4: Εντάξει. ΙΑΣΩΝ Hirschhorn: Εάν το έκανα κάτι σαν int z = 7/3 με, ότι θα μου δώσει ένα ακέραιο, γιατί όλα αυτά είναι ακέραιοι. Βγάζει νόημα αυτό? ΟΜΙΛΗΤΗΣ 4: Ναι. ΙΑΣΩΝ Hirschhorn: OK. Εξαιρετική. Οποιεσδήποτε άλλες ερωτήσεις σχετικά με αυτό το τραπέζι; Αλήθεια; Είμαι τόσο ενθουσιασμένος. ΕΝΤΆΞΕΙ. Έτσι, κάποια άλλα πράγματα που θα χρησιμοποιήσετε, πολλές φορές σε συνθήκες ή βρόχους, Αυτοί οι τύποι των operators-- Αυτοί οι τύποι των Boolean εκφράσεις. Και όπως μάθαμε, == είναι ό, τι χρησιμοποιήσετε για να ελέγξετε αν τα δύο πράγματα είναι ίσα. Έτσι, εδώ Φεύγω αν x == y, ας πάλι υποθέσουμε ότι το χ είναι 7 και το γ είναι 3. Έτσι, αν έγραψα 7 == 3, τι θα επιστρέψει ότι σε μένα; Είναι αλήθεια ή ψέμα; Κοινό: Λάθος. ΙΑΣΩΝ Hirschhorn: OK. Νιώθω σαν ο καθένας μπορεί να πάρει αυτό το ένα. Έτσι, ο καθένας, τι θα ήταν αυτό να επιστρέψει; Κοινό: Λάθος. ΙΑΣΩΝ Hirschhorn: Λάθος. Εξαιρετική. 7 δεν είναι ίσο με 3. Έτσι, 7 == 3 θα επιστρέφει false. Μπορείτε να το κάνετε δεν έχετε ένα σύμβολο ισότητας, έτσι ώστε, αν checked 7! = 3, τι θα ήταν αυτό να επιστρέψει; Κοινό: Σωστό. ΙΑΣΩΝ Hirschhorn: Σωστό. Εξαιρετική. Κάποιος ήταν πολύ εμφατική σε την πλάτη και το εκτιμώ αυτό. Στη συνέχεια, να έχεις λιγότερους από χειριστή, μικρότερο από ή ίσο με χειριστή, μεγαλύτερη από χειριστή, μεγαλύτερη από ή ίσο με χειριστή. Έτσι, μία ακόμη επιταγή λογική. Αν είχα 7 είναι μεγαλύτερο από ή ίση με 3. Τι θα επιστρέψει; Κοινό: Σωστό. ΙΑΣΩΝ Hirschhorn: Σωστό. Ναι. Ότι πίσω δωμάτιο, πίσω πλευρά από το δωμάτιο, φανταστικό. Μπορείτε να συνδυάσετε αυτά τα εκφράσεις αν σας αρέσει, καθώς, με ένα λογικό και το οποίο && Ή λογική ή τα οποία είναι || ||. Και τώρα μπορείτε να δοκιμάσετε δύο πράγματα together-- Είναι αστείο αυτό; Γιατί είναι αστείο; Έτσι αν θέλετε, μπορώ να πω είναι 7 μεγαλύτερη από 3 ΚΑΙ 2 είναι μικρότερη από 4; Λοιπόν, εάν είναι μεγαλύτερη 7 από 3, αυτό είναι αλήθεια. 2 είναι μικρότερη από 4, αυτό είναι αλήθεια. Έτσι, όλο αυτό το πράγμα θα επιστρέψει αλήθεια. Αν έχω δοκιμαστεί 7 είναι μεγαλύτερη από 3 and-- Είμαι απλά επιλέγοντας τυχαίους αριθμούς here-- 4 είναι μικρότερη από 2, καλά, αυτό είναι λάθος. Έτσι, αληθινό και το ψεύτικο κάνουν ψευδείς. Και μπορείτε να πάτε και να συνδυάσετε ως πολλές καταστάσεις μαζί, όπως θα θέλατε. Πιστεύει κανείς έχει οποιεσδήποτε ερωτήσεις, παρατηρήσεις, τις ανησυχίες μέχρι στιγμής; Και βλέπω ότι κάποιοι από εσάς λήψη φωτογραφιών του εαυτού μου στην οθόνη, το οποίο εκτιμώ. Ας ελπίσουμε ότι, δεν είναι Snapchat. Ας ελπίσουμε ότι, είναι για τις σημειώσεις σας. Αλλά όλα αυτά θα να είναι διαθέσιμο στο Διαδίκτυο. Έτσι, δεν χρειάζεται να να πάρει τις εικόνες από αυτό. Όπως ανέφερα, τα πάντα θα είναι διαθέσιμα online για εσάς. ΕΝΤΆΞΕΙ. Είμαι έτοιμος να πάρει εκτός σκηνής, το ίδιο κάνει και ο καθένας θέλω να πω τίποτα πριν συμβεί αυτό; Ερωτήσεις; [Παρεμβολή ΦΩΝΕΣ] ΙΑΣΩΝ Hirschhorn: Αχ, να σταματήσει. Εσείς είστε πάρα πολύ ωραία. ΕΝΤΆΞΕΙ. Πάω να κολλήσει έξω. Πάμε. ANDI PENG: Εμείς πάμε να κάνουμε μια δύσκολη μικρόφωνο αλλαγή τώρα. ΙΑΣΩΝ Hirschhorn: Είμαι πρόκειται να πάρει αυτό το off. ANDI PENG: εκτιμώ την υποστήριξη, παιδιά. Με ακούς? Είναι καλό; Τέλεια. Όμορφο. Επιτρέψτε μου να ενδώσετε ότι. ΕΝΤΆΞΕΙ. Έτσι, είμαι έτοιμος να κάνω σαν μια γιγαντιαία πληροφορίες σχετικά με την απόρριψη εσείς τώρα. Και μην ανησυχείτε καθόλου εάν είστε δεν ακολουθεί κάθε μικρή γραμμή για το τι Είμαι έτοιμος να σας δείξω. Όπως δήλωσε ο Jason, τα πάντα είναι εντελώς on-line. Απλά θα πάμε για να προσπαθήσουν να εισαγάγουν ο καθένας με τις έννοιες που καλύπτονται σε μερικές από αυτές τις διαφάνειες. Έτσι απλά να παρακολουθήσει μαζί. Μην ανησυχείτε αν δεν καταλαβαίνετε τα πάντα? Ωστόσο, εάν σε οποιοδήποτε σημείο νιώθετε χαμένος, να αυξήσει σας Αντίθετα, θα σταματήσει, μην ανησυχείτε. Cool. Πιστεύω λοιπόν ότι κάτι που ο Δαβίδ έχει ήδη είδους που αναφέρεται στην διάλεξη και ο Jason έχει το είδος της υπαινίχθηκε σήμερα είναι ό, τι είναι μια βιβλιοθήκη. Έτσι, στον προγραμματισμό, έχουμε αυτά τα πράγματα που ονομάζεται βιβλιοθήκες. Σε περίπτωση που, ουσιαστικά, όλα που είναι απλώς ένα σύνολο των λειτουργιών, που είναι ουσιαστικά μόνο κώδικα που είναι ήδη γραφτεί από κάποιος άλλος που μπορούμε όλοι χρησιμοποιήσει στο πλαίσιο των προγραμμάτων μας. Πώς, λοιπόν, κάνει μια κανονική βιβλιοθήκη δουλειά, έτσι δεν είναι; Μπορείτε να εισαγάγετε την πόρτα της βιβλιοθήκης. Έχετε όλα αυτά βιβλία που μπορείτε να βγάλετε και μπορείτε να αποκτήσετε πρόσβαση σε πληροφορίες μέσα σε αυτά τα βιβλία. Ίδιο πράγμα στον προγραμματισμό. Έχετε μια βιβλιοθήκη που έχει ήδη έχουν γραφτεί από άλλους ανθρώπους. Και ο τρόπος που μπορείτε, ως προγραμματιστής ή ένας φοιτητής, μπορούν να αποκτήσουν πρόσβαση στο εν λόγω βιβλιοθήκη είναι μέσω hashtag # include. Για παράδειγμα, σε C εμείς έχουν τρία C-- πιο που χρησιμοποιούνται συνήθως τρεις τυπικές C libraries-- τη βιβλιοθήκη εισόδου / εξόδου, η βιβλιοθήκη εγχόρδων, και η βιβλιοθήκη μαθηματικά. Έτσι, μέσα στις πρώτες σας ζευγάρι πρόβλημα θέτει, Αυτές θα είναι οι τρεις ότι είστε χρησιμοποιώντας κατά κύριο λόγο. Έτσι, όπως ο David ήδη εξήγησε στην ομιλία, η τυπική βιβλιοθήκη Ι / Ο, ή η πρότυπη βιβλιοθήκη εισόδου / εξόδου κάνει ακριβώς αυτό. Σας επιτρέπει, στον κώδικά σας, στην είσοδο τίποτα από το χρήστη και έξοδο που στην οθόνη, κατ 'ουσίαν, εκτύπωση στην μεγάλη οθόνη. Και έτσι κάθε φορά που χρησιμοποιείτε τις λειτουργίες, για παράδειγμα, η συνάρτηση printf (), η οποία θα πάμε για να πάει πέρα ​​από την επόμενη διαφάνεια, φροντίστε να συμπεριλάβετε το πρότυπο I / O βιβλιοθήκη ή αλλιώς δεν πρόκειται να να είναι σε θέση να χρησιμοποιήσετε τη λειτουργία printf (). Επειδή εσύ, σαν τον προγραμματιστή δεν έγραψε ποτέ πραγματικά αυτή τη λειτουργία, χρησιμοποιείτε ακριβώς κάποιος άλλου τον κώδικα στο δικό σας κώδικα. Μήπως αυτό έχει νόημα ο καθένας; Cool. Και τότε θα έχουμε ουσιαστικά πάνω η βιβλιοθήκη string.h και η math.h βιβλιοθήκη, .h σημαίνει απλά βιβλιοθήκη, άλλες βιβλιοθήκες που θα τελικά να χρησιμοποιούν μέσα στον κώδικά σας. Ωστόσο, για τους σκοπούς αυτής της βιβλιοθήκης, μπορούμε επίσης have-- αυτού class-- έχουμε επίσης αυτό που ονομάζεται η βιβλιοθήκη CS50, cs50.h, όπου, για διάβασμα σας έχουν δημιουργήσει πολλές σημαντικές και χρήσιμες λειτουργίες. Έτσι ώστε εσείς, ως προγραμματιστής μπορεί piggyback μακριά αυτό που έχουμε ήδη γράψει, έτσι ώστε Αυτή η λειτουργία είναι διαθέσιμη για εσάς για τη χρήση σας. Θα πρέπει να καλύπτει ένα ζευγάρι των οι λειτουργίες που χρησιμοποιούνται συνήθως, αλλά γνωρίζουμε ότι αυτά είναι όλα googleable σε απευθείας σύνδεση. Αισθανθείτε ελεύθερος, τραβήξτε προς τα πάνω τη βιβλιοθήκη και CS50 τότε έχετε όλες τις λειτουργίες εκεί. Ναι. ΟΜΙΛΗΤΗΣ 5: Έτσι, αν δεν ήταν χρησιμοποιώντας το λογισμικό που είναι που μας έχει γνωστοποιήσει η τάξη, κάνει ότι σημαίνει ότι θα πρέπει να κατεβάσετε και να βρει Αυτή η κεφαλίδα του αρχείου μας και πείτε ο υπολογιστής όπου είναι; ANDI PENG: Μεγάλη ερώτηση. Ακριβώς. Έτσι είναι σαν αν δεν είστε φυσική παρουσία σε μια βιβλιοθήκη, δεν υπάρχει κανένας τρόπος για να πραγματικά να πάμε και να έχουν πρόσβαση σε αυτό. Έτσι, το ίδιο πράγμα με προγραμματισμού σε C, που Πρέπει να βεβαιωθείτε ότι χρησιμοποιείτε μας συσκευή επειδή η βιβλιοθήκη είναι ήδη έχουν ενσωματωθεί σε αυτό. Και στη συνέχεια, όταν hashtag #include, η βιβλιοθήκη εκεί. Ναι. Καλή ερώτηση. Όλοι καλό; Cool. Εντάξει. Έτσι θα πάμε για να χτυπήσει, Ουσιαστικά, αυτό που είναι η πρώτη λειτουργία που Εμείς, ως προγραμματιστές είναι πρόκειται να χρησιμοποιεί στον κωδικό μας. Αυτό ονομάζεται η συνάρτηση printf (). Έτσι, printf () λειτουργία, όπως έχω ήδη πει στην τελευταία διαφάνεια, περιλαμβάνεται στο πρότυπο I / O, πρότυπο εισόδου / εξόδου, βιβλιοθήκη. Έτσι, βεβαιωθείτε ότι είστε using-- Ω, επιτρέψτε μου να αρπάξει το λέιζερ pointer-- κάθε φορά που χρησιμοποιείτε η () συνάρτηση printf, θα πρέπει να περιλαμβάνει το πρότυπο I / O βιβλιοθήκη ή άλλο, κατά τη μεταγλώττιση, θα πάμε να πάρετε ένα λάθος επειδή ο υπολογιστής θα είναι όπως, oh Δεν ξέρω πού printf () είναι, δεν μου λες πού printf () είναι. Καλά printf () περιλαμβάνεται στο Standard I / O, έτσι ώστε όταν χρησιμοποιείτε printf (), φροντίστε να έχετε ότι γραμμή παραπάνω κωδικό σας. Έτσι, για παράδειγμα, printf () εδώ είναι μια λειτουργία. Το μόνο που κάνει είναι κάτι εκτύπωση μέσα στις παρενθέσεις στον χρήστη. Θα ήθελα κάποιος να λάβει μια μαχαιριά σε ό, τι γραμμή αυτή του κώδικα δικαιώματος Εδώ πρόκειται να εκτυπώσετε; Ως εκ τούτου, η απάντηση είναι στην οθόνη. Όποιος; VERDI: Το κάτω μέρος. ANDI PENG: Verdi, γιατί δεν πας προχωρήσουμε και να πούμε ολόκληρη την δήλωση; VERDI: Γεια σας, το όνομά μου είναι Andi, και είμαι 20 ετών. ANDI PENG: Αχ, υπέροχη. Έτσι, σε αυτή τη γραμμή θα πάμε να εκτυπώσετε, Γεια σας, το όνομά μου είναι ο Andi, και είμαι 20 ετών, η οποία είναι στην πραγματικότητα μια αληθινή δήλωση. Σύνταξη. Έτσι ζευγάρι συντακτικών ζητημάτων που εσείς θέλετε να βεβαιωθείτε ότι γνωρίζετε. Αποσπάσματα. Διπλά εισαγωγικά πει ο υπολογιστή ότι τα πάντα μέσα πρόκειται να εκτυπωθεί. Τα πάντα μέσα στο δοχείο να είναι ακριβώς το πώς πληκτρολογείτε, εκτός από συνήθως στο τέλος, θα πάμε να θέλουν να συμπεριληφθούν α hash-- ω sorry-- μια παύλα n. Έτσι, μια παύλα n. Υπάρχει κάποιος που θέλει να λάβει μια εικασία σε τι κάνει στον κώδικά μας; Ναι. ΟΜΙΛΗΤΗΣ 6: το βάζει σε μια νέα γραμμή. ANDI PENG: Ακριβώς. Έτσι, όλα αυτά δεν είναι επιτρέπουν ό, τι συμβαίνει Μετά από αυτό, μετά από αυτή τη δήλωση, που θα εκτυπωθούν σε μια νέα γραμμή. Έτσι ώστε όταν γράφετε σας κώδικας δεν έχετε τυχαία πράγματα ανατρέψουν το τέλος ότι δεν θέλετε. Ώστε τα πάντα τακτοποιημένα τυπωμένο μία γραμμή και τότε θα ξεκινήσει την ακόλουθη γραμμή. Υπάρχει κάποιος που θυμάται τι ερωτηματικό κάνει όταν είμαστε κωδικοποίηση; Ναι. ΟΜΙΛΗΤΗΣ 7: Δήλωση. ANDI PENG: Συγνώμη; ΟΜΙΛΗΤΗΣ 7: Έχει τελειώσει τη δήλωση; ANDI PENG: Ναι. Έτσι σε C, ή οποιουδήποτε προγραμματισμού γλώσσα, η άνω τελεία υποδηλώνει το τέλος μιας γραμμής προγραμματισμού. Έτσι, για παράδειγμα, στα αγγλικά χρησιμοποιούμε περίοδος να πω, μα αυτό είναι το τέλος μιας πρότασης. Στον προγραμματισμό, ίδιο πράγμα, έχουμε ένα ερωτηματικό, για να δηλώσει το τέλος μιας γραμμής. Μάλιστα πολλές φορές, όταν είστε αρχίζουν να προγραμματίσετε, θα έχετε συνειδητοποιήσει ξεχάσετε να προσθέσετε ένα ερωτηματικό και στη συνέχεια προσπαθήστε να εκτελέσετε σας κώδικα και δεν λειτουργεί. Και είστε όπως, Αχ, δεν το κάνω ξέρω γιατί, θα έπρεπε να λειτουργεί. Οι πιθανότητες είναι ίσως ξεχάσει ένα ερωτηματικό ή ένα στήριγμα ή κάτι κάπου. Έτσι, αυτό είναι σημαντικό να θυμόμαστε. Cool. Εντάξει, ανάταση του χεριού, πώς πολλοί άνθρωποι εδώ έχουν ποτέ λαμβάνονται AP Επιστήμης Υπολογιστών ή προγραμματιστεί σε Java πριν, ποτέ; ΕΝΤΆΞΕΙ. Υπέροχο. Αυτό δεν θα ισχύει Στη συνέχεια, αλλά σε Java, έχουν κάτι που ονομάζεται System.out.println η οποία δεν υπάρχει στο C. Έτσι σε C, όποτε θέλετε να προσθέσετε στις μεταβλητές σε ό, τι θέλετε να εκτυπώσετε, υπάρχει μια συγκεκριμένη σύνταξη θα πάμε να χρησιμοποιήσετε. Αυτό ονομάζεται η placeholding-- ουσιαστικά προσθέτουμε σύμβολα κράτησης θέσης σε ισχύ του ακεραίου ή μεταβλητής ότι θέλουμε να εκτυπώσετε. Έτσι, όπως μπορείτε να δείτε τα παιδιά έχουμε συμπεριλάβει μια νέα κεφαλίδα βιβλιοθήκη αρχείο εδώ. Η βιβλιοθήκη CS50. Και που περιέχονται σε αυτή την βιβλιοθήκη CS50 είναι μια κοινή λειτουργία θα πρέπει να χρησιμοποιούν στην πορεία μας ονομάζεται GetInt (). Πιστεύει κανείς θέλετε να πάρετε μια μαχαιριά στο τι μπορεί ενδεχομένως να κάνει GetInt (). Κοινό: [δεν ακούγεται] ANDI PENG: Συγνώμη. Δεν θα μπορούσε να σας ακούσει. Maddie, ο καθένας. Maddie: Ω, ζητά Σας έναν ακέραιο. ANDI PENG: Ακριβώς. Έτσι, αυτή η λειτουργία, ένα άλλο λειτουργία που είναι ήδη έχουν γραφτεί από κάποιον άλλον ότι μπορούμε να καλέσουμε τώρα. Όλα είναι είναι άμεση η εσάς, τον χρήστη, στην είσοδο ό, τι θέλετε, όπως τον κωδικό βρίσκεται σε λειτουργία και αποθηκεύει whatever-- σε αυτή την περίπτωση είμαστε GetInt () - ING, έτσι αυτό σημαίνει ότι είμαστε απόκτηση έναν ακέραιο. Και θα πάμε να αποθηκεύσετε ότι σε ένα άλλο ακέραιος αριθμός ότι έχουμε μόλις έκανε ονομάζεται ηλικία. Που έχουν νόημα για όλους; Cool. Έτσι τώρα που έχετε αποθηκεύσει αυτό το ακέραιο, ότι έχουμε ζητηθεί από το χρήστη, σε αυτή τη μεταβλητή, έχουμε δημιουργήθηκε από τον τύπο int ονομάζεται ηλικία, μπορούμε να προχωρήσουμε και τον τόπο που λειτουργούν στην printf μας (). Έτσι, η σύνταξη συνήθως για printf () είναι ότι οπουδήποτε στην πραγματική φυσική σας γραμμή που θέλετε να περιληφθεί το εν λόγω ακέραιο, κάνετε αυτό το σύμβολο ακριβώς εκεί, το σύμβολο τοις εκατό, με την το είδος της μεταβλητής που θέλετε. Έτσι, στην περίπτωση αυτή η ηλικία είναι ένας ακέραιος. Έτσι θα πάμε να περιλαμβάνει % i επειδή είναι ένας ακέραιος. Και στη συνέχεια, μετά σας δήλωση, θα πάμε να κάνει κόμμα και η το όνομα της μεταβλητής. Έτσι, εδώ, θα πάμε για να εκτυπώσετε έξω, Γεια σας, το όνομά μου είναι ο Andi, και είμαι κενό ετών. Hashta-- ή, sorry--, ηλικία με ό, τι έχω εισόδου. Έτσι, αν ήμουν στην είσοδο 20 για GetInt μου () εδώ, θα εκτυπώσει το ίδιο ακριβώς πράγμα. Αλλά, αν ήθελα κάτι είσοδο αλλιώς, όπως ίσως 40 ή 45, τότε θα δείτε ότι αντικατοπτρίζονται αναλόγως στο κώδικα. Έτσι, αυτό είναι ένα παράδειγμα κάτι στο οποίο εκτυπώνει και φαίνεται να σας σαν να είναι το ίδιο πράγμα, αλλά κάτω από την κουκούλα του ο υπολογιστής υπάρχει πραγματικά πολύ διαφορετικά πράγματα που συμβαίνουν. Cool. Εντάξει. Τι κι αν θέλουμε πολλών μεταβλητών; Αρκετά εύκολο. Ίδιο πράγμα. Έχουμε επίσης μια νέα λειτουργία εδώ ονομάζεται GetString (), περιλαμβάνονται επίσης εντός της βιβλιοθήκης CS50, ότι το μόνο που κάνει είναι να ζητήσει από το χρήστη για μια σειρά, η οποία είναι απλώς ένα σύνολο χαρακτήρων, έτσι όπως μια πρόταση ή σαν ένα όνομα. Έτσι, σε αυτή την περίπτωση, θα είχαμε δύο κράτησης θέσης% s για έγχορδα και εγώ% για ακέραιο. Και θα πάμε να ακολουθήσει ότι με τις δύο μεταβλητές που θέλετε να συμπεριληφθούν, με τη σειρά ότι εμφανίζονται στην πρόταση. Έτσι, για παράδειγμα, το όνομά μου είναι κενό, θέλω εκεί ένα όνομα, έτσι Πάω να έχει το όνομα. Και στη συνέχεια, μετά, θέλω ηλικία, θέλουν να έχουν δεύτερη ηλικία. Και έτσι αν ήθελα να εισόδου, Γεια σας, Το όνομά μου Andi, και είμαι 20 ετών. Αν ήμουν εισάγονται Andi και 20, η ακριβώς το ίδιο πράγμα θα εκτυπώσει? Ωστόσο, τώρα έχουμε δύο αποθηκεύονται μεταβλητές του ονόματος, καθώς και int. Ναι. ΟΜΙΛΗΤΗΣ 8: Θα ήταν είναι σε θέση να τρέξει, αν έχετε αλλάξει το όνομα και την ηλικία στο τέλος της αυτό; ANDI PENG: Ναι. Αυτό είναι πραγματικά καλή ερώτηση. Έτσι, τα πολυλογώ, όχι. Επειδή το όνομα και τι age-- το είδος της μεταβλητής είναι το όνομα; ΟΜΙΛΗΤΗΣ 8: String. ANDI PENG: Και τι το είδος της μεταβλητής είναι η ηλικία; ΟΜΙΛΗΤΗΣ 8: Ακέραιος. ANDI PENG: Μέχρι εδώ έχουμε ένα σύμβολο κράτησης θέσης εγχόρδων και ακέραιος, σωστά; Έτσι, εάν επρόκειτο να αλλάξετε αυτές, ο υπολογιστής δεν πρόκειται να ξέρω. Είναι πρόκειται να ελέγξει για μια σειρά, και αν προσπαθήσετε να του δώσει ένα int, πρόκειται να είναι όπως περιμένετε Έχω μπερδευτεί, θα μου είπαν ότι θα πρέπει να είναι κατανέμοντας μνήμης για έναν int. Και ακριβώς εδώ, όταν αναμένει έναν ακέραιο και να σας δώσει ένα όνομα και μια σειρά αντ 'αυτού, πρόκειται επίσης να είναι πολύ συγκεχυμένη, αυτό Δεν θα τρέξει ακριβώς με τον τρόπο που το χρειάζεστε. Έτσι, εδώ, την ονοματοδοσία και τη σύνταξη είναι πολύ σημαντικό για την εκτέλεση του κώδικα. Όλοι καλό; Ναι. Maddie. Maddie: Εδώ, ξέρω ότι έχουμε εξετάσει σε παραδείγματα στην τάξη, όπου ζητούν Ποια είναι η ηλικία σας, ποιο είναι το όνομά σας. Εδώ, θα ήταν αυτό το doesn't-- εάν επρόκειτο να εκτελέσετε αυτόν τον κώδικα, δεν θα ζητήσει γι 'αυτό; Αλλά θα κάνατε μόλις δύο αριθμούς εισόδου και στη συνέχεια θα τρέξει σαν αυτό; ANDI PENG: Ναι, ακριβώς. Έτσι, αν θέλετε για να οθόνη, παρακαλώ εισάγετε την ηλικία σας, μπορείτε να προσθέσετε μόνο μια λειτουργία printf () Αυτό λέει, Παρακαλούμε εισάγετε την ηλικία σας, πάνω από αυτό. Αυτή είναι μια καλή ερώτηση. Ναι. ΟΜΙΛΗΤΗΣ 9: Έτσι, θα είναι ήδη περιλαμβάνονται στο GetInt () [δεν ακούγεται]. ANDI PENG: Όχι, στην πραγματικότητα δεν είναι. Έτσι, όλα αυτά δεν είναι μόνο ζητά μια κενή οθόνη στο χρήστη σε κάτι εισόδου. Αν θέλετε, αν θέλετε να εκτυπώσετε κάτι που λέει ο χρήστης, όπως, παρακαλώ να μου δώσετε την ηλικία σας, τότε θα θα πρέπει να printf (), ότι οι ίδιοι. Επειδή ο καθένας χρησιμοποιεί αυτό Λειτουργία για διαφορετικά πράγματα, θα μπορούσατε να βάλετε την ηλικία, θα μπορούσατε να βάλετε τη διεύθυνση, θα μπορούσε να αποθηκεύει τους αριθμούς τηλεφώνου. Και έτσι είναι πραγματικά μέχρι επιμέρους χρήσεις παιδιά σας » για ό, τι θέλετε να πείτε. Ναι. ΟΜΙΛΗΤΗΣ 10: Λοιπόν, απλά για να διευκρινιστεί, όπου κάνετε είσοδο το όνομα και την ηλικία έτσι ώστε να εμφανίζεται στη θέση του% s; ANDI PENG: Όπως στο χρήστη; ΟΜΙΛΗΤΗΣ 10: Ναι, όπως το πώς μπορώ να κάνω να it-- πού έβαλα Andi, και πού μπορώ να τοποθετήσω 20; ANDI PENG: Ναι. Έτσι, εάν επρόκειτο να στην πραγματικότητα εκτελέσετε αυτόν τον κώδικα, Δεν είμαι πραγματικά τρέχει η κώδικας, αυτό είναι ακριβώς εδώ τώρα. Εάν επρόκειτο να εκτελέσετε τον κώδικα, θα ήθελα καταρτίσει τον κώδικα, να το αρχείο, εκτέλεση του κώδικα, και στη συνέχεια θα υπάρχει μόνο σε δύο χώρους για μένα να εισάγετε. Ναι. Εσείς θα δείτε όταν παίζετε γύρω με τον κωδικό σας. Εντάξει θα πάμε για να μετακινήσετε στο επόμενο τμήμα του τι θα πρέπει να καλύπτουν σήμερα. Εμείς πάμε για να πάει πέρα ​​από αυτό υπό όρους δηλώσεις είναι. Έτσι, αν εσείς θυμάστε και ανάκλησή του από διάλεξη, υπό όρους δηλώσεις, όλα αυτά είναι είναι ένα σύνολο οδηγίες στον υπολογιστή σε το οποίο, αν μια συγκεκριμένη συνθήκη είναι αληθής, θα εκτελέσει τον κώδικα στο εσωτερικό της εν λόγω κατάστασης. Έτσι, στην ουσία Scratch-- το μεγάλο θέμα από σήμερα είναι ότι εσείς έχετε ήδη όλα δει τη λογική πίσω από όλα ότι είμαστε καλύπτουν. Και όλα αυτά που κάνουμε είναι μετάφραση κάτι ότι ήταν πολύ έξυπνο σε Ξυστό και σκληρό κωδικοποίησης που στη σύνταξη θα πρέπει να χρησιμοποιούν για την κατηγορία που είναι C. Έτσι, λογικά, όλα αυτά ήταν μπλοκ είναι εκείνο το κομμάτι του κώδικα εκεί. Ναι. ΕΝΤΆΞΕΙ. Μπορούμε επίσης να μπει σε ένα άλλο, αν ... δήλωση η οποία είναι απλώς ένα πρόσθετο στρώμα της πολυπλοκότητας της εντολής if όπου ο υπολογιστής ρίχνει μια ματιά σε αυτό και βλέπει, αν αυτή η συνθήκη είναι αληθής, κάνουμε ανεξαρτήτως του μέσα σε αυτούς τους δύο βραχίονες, else-- έτσι κάτι σαν προεπιλογή, εάν δεν πληρούν τις condition-- το κάνετε αυτό. Είναι σαν μια διακλάδωση του δρόμου. Αν βρέχει έξω, έβαλα σε ένα σακάκι βροχής, άλλο τίποτα άλλο που δεν βάζουν σε ένα σακάκι βροχής. Μήπως η λογική νόημα για όλους; Cool. Εντάξει. Έτσι, όπως ένα σκληρό παράδειγμα της αυτό που θα βλέπαμε σε C είναι αν ήθελα να δημιουργήσω ένα μεταβλητή που ονομάζεται ώρες εργασία. Και εάν οι ώρες είναι μικρότερο σπίτι από πέντε, λέω ζωή είναι ωραία. Ειναι υπεροχο. Ωστόσο, λένε Ο αγώνας είναι real-- το οποίο είναι αυτό που όλοι σε αυτή τη Δευτέρα απόγευμα μέχρι Επιστήμη Χιλ είναι πιθανώς να κάνει το σωστό now-- Κοινό: [γέλια] ANDI PENG: Θα τρόπος με τον οποίο θα, σας ευχαριστώ γι 'αυτό. Ο τρόπος με τον οποίο θα hardcode αυτό το C είναι if-- ας υποθέσουμε έχουμε ήδη μια μεταβλητή τύπου int ονομάζεται ώρες στο σπίτι εδώ. Εάν ώρες στο σπίτι είναι λιγότερο από ό, τι πέντε printf (), Η ζωή είναι ωραία. Θυμηθείτε να κρατήσει / n, διότι θέλετε μια νέα γραμμή μετά. Αλλιώς εκτύπωσης, ο αγώνας είναι πραγματικό. Μήπως όλοι καταλαβαίνουν πώς Έχω μεταπηδά από αυτό το μπλοκ σε αυτό το μπλοκ του κώδικα; Cool. Εντάξει. Έτσι, τώρα θα πάμε να ρίξουμε μια ματιά στο πολλαπλές καταστάσεις Εάν συνολικά. Ας υποθέσουμε ότι η Σκοπός αυτού του προγράμματος Ήταν έχουμε ζητήσει από το χρήστη για έναν βαθμό. Σας προτρέπουμε χρησιμοποιώντας GetInt () για ένα βαθμού, και εισάγετε μια τιμή, και θέλετε να εμφανίσετε το είδος της ποιότητας πήραν. Έτσι, αν ήμουν στη θέση να σχεδιάσει ένα πρόγραμμα, που σημαίνει κατά κανόνα σε όλα τα μάτια μας, 90 έως 100 είναι Α, 80-90 είναι ένα Β, και ούτω καθεξής και ούτω καθεξής. Τι είναι λάθος με αυτό κομμάτι του κώδικα που δεν είναι κάνει ό, τι θέλω να κάνω. Ναι. ΟΜΙΛΗΤΗΣ 11: Έχουν χαμηλότερα όρια, αλλά δεν έχουν ανώτερα όρια. ANDI PENG: Ακριβώς. Μήπως όλοι ακούσει τι είπε; Εκεί πρόκειται να είναι ανώτερο όρια, αλλά όχι χαμηλότερα όρια. Λυπούμαστε, άλλος τρόπος γύρω, κατώτατα όρια, δεν υπάρχουν ανώτατα όρια. Έτσι, θα ήθελα να ρίξτε μια μαχαιριά στο ρητό ό, τι θα εκτυπωθεί σε αυτό οθόνη εάν επρόκειτο να εκτελέσετε αυτόν τον κώδικα. ΟΜΙΛΗΤΗΣ 11: Παρουσιάστηκε σφάλμα; ANDI PENG: Παρουσιάστηκε σφάλμα; Μεγάλη εικασία, δεν είναι αρκετά δεξιά. Πιστεύει κανείς έχει άλλη μαχαιριά; Ναι, ο Ααρών. AARON: Αν βάλετε σε κάτι μεγαλύτερο από 90, θα δείξει όλες τις ποιότητες που πήρατε. Θα σας δείξω πήρε ένα Α, έχεις ένα Β, έχεις ένα Γ ANDI PENG: Ναι. Αυτό είναι ακριβώς σωστό. Έτσι, αυτό θα ήταν υπέροχο. Ωστόσο, είναι αμοιβαία αποκλειστική, νομίζω. Εάν επρόκειτο να εκτελέσετε αυτό το κομμάτι του κώδικα. Και στη συνέχεια, ας πούμε, εγώ εισάγεται το βαθμό 95. Έτσι, 95 είναι τώρα αποθηκευμένα σε η int ονομάζεται βαθμού. Και έτσι το C είναι μια γλώσσα που τρέχει μέχρι πάνω προς τα κάτω, γι 'αυτό πρόκειται να είναι πάντα τρέχουν επάνω προς τα κάτω. Γι 'αυτό πρόκειται να έρθει εδώ, αν διαβάσετε βαθμός είναι μεγαλύτερο από ή ίσο με 90, printf () έχεις ένα Α μεγάλη, έχουν 95, που είναι μεγαλύτερη από 90. Είναι πρόκειται να εκτυπώσετε, Πήρα ένα A. Πρόκειται να ρίξετε μια ματιά σε αυτό, αν πρόκειται λένε, και 95 είναι επίσης μεγαλύτερη από 80, πρόκειται να εκτυπώσετε έχεις επίσης μια GOT ένα σήμα Β θαυμαστικό, και ούτω καθεξής και ούτω καθεξής. Έτσι, όπως όλοι μπορούμε να δούμε, αυτό είναι ένα κοινό bug ότι μπορεί να συμβεί όταν είμαστε γράφοντας κώδικα για να κοιτάξει έξω για. Όποιος, οποιεσδήποτε ερωτήσεις σχετικά με γιατί αυτό συνέβαινε; Εξαιρετική. ΕΝΤΆΞΕΙ. Επομένως, πώς θα το διορθώσετε αυτό, είναι προφανώς το λογικό επόμενο ερώτημα. Λοιπόν, έχουμε αυτά τα όμορφα πράγματα που ονομάζεται if else if else εάν άλλος δηλώσεις. Έτσι μπορείτε να δείτε, αν θέλετε να αλλάξει αυτό το πρόβλημα, που ήθελε να κάνει κάθε ένα από τα όροι αλληλοαποκλείονται, θα πρέπει να προσθέσετε ένα άλλο ... if. Και αυτά του course-- σκεφτείτε τους ως σκάλες, ή όπως σκαλοπάτια για την ladder-- μπορείτε να προσθέσετε, όπως πολλοί από αυτούς, όπως σας θέλετε για όσες συνθήκες, όπως θέλετε. Έτσι, εδώ, αν εισάγονται βαθμό να είναι 95. Αν ο βαθμός είναι μεγαλύτερος από 95, printf (), πήρα ένα Α Μεγάλου. Δεν πρόκειται να δούμε ένα άλλο ... αν και πρόκειται να γνωρίζουμε, Ω, όχι, Έχω ήδη εκτελεστεί το πρώτο αλλού. Ι know-- ή η πρώτη if-- Ξέρω ότι Δεν έχω να δούμε κάποια από αυτά επειδή ένας από αυτούς έχει ήδη αληθινό. Έτσι πρόκειται να τρέχει από πάνω προς τα κάτω. Μόλις το πρώτο είναι αλήθεια, τότε πρόκειται να υπερπηδήσει όλα τα υπόλοιπα των αλλιώς ... IFS. Βγάζει νόημα αυτό? Έτσι, με αυτόν τον τρόπο έχετε διαφορετικά επίπεδα ελέγχου και μόλις ένας από αυτούς είναι ψευδής, η υπόλοιπο είναι επίσης, ότι δεν θα είναι καν ελέγξει. Cool. Εντάξει. Έτσι, αυτό είναι ένα παράδειγμα μιας διαφορετικής είδος υπό όρους δήλωση βλέπουμε όλο και λιγότερο συχνά, αλλά ότι θα τους δούμε και να τα χρησιμοποιούν. Και είναι συχνά περισσότερο αποτελεσματική για ορισμένες περιπτώσεις. Έτσι, έχουμε αυτό που ονομάζεται μια δήλωση switch. Έτσι, πριν καλύψαμε αυτό είναι ένα άλλο δήλωση, αν ένας άλλος ... δήλωση. Εδώ, έχουμε ό, τι είναι που ονομάζεται δηλώσεις διακόπτη. Έτσι, όταν χρησιμοποιούμε διακόπτη καταστάσεων είναι το κλειδί; Έτσι, σε μια δήλωση διακόπτη, μπορείτε Συνήθως, συνήθως, στην πραγματικότητα σας μπορεί μόνο ακέραιους αριθμούς εισόδου για σας μεταβλητή που έχετε τον έλεγχο. Έτσι αν θέλετε να ελέγξετε αν μια ορισμένη number-- για παράδειγμα ένα βαθμό, αν πήρα ένα 90. Θέλω να δω αν αυτό είναι ένα Α, Β, Γ ή θα μπορούσα να έχω μια υπόθεση εδώ. Ωστόσο, η υπόθεση έχει να είναι μια άλλη σταθερή. Έτσι, με αυτή την έννοια, η δήλωση switch μπορεί μόνο ελέγξτε για την ισότητα των δύο αριθμών. Δεν ελέγχει για οτιδήποτε άλλο. Έτσι, αυτό είναι κάτι που είναι πολύ είστε προσεκτικοί όταν χρησιμοποιείτε αυτό. Έτσι, εδώ, αν ήθελα να ελέγξετε για να δείτε Αν ο βαθμός μου 90 είναι ίσο με 90 ή 80 ή 70 ή 60, και στη συνέχεια να εκτυπώσετε ο αντίστοιχος βαθμός, Θα ήθελα να είναι σε θέση να γράψει ότι σε μια δήλωση switch. Γι 'αυτό πρόκειται να έρθει εδώ, έλεγχος Αυτό ακέραιος αριθμός ίσος με αυτή την σταθερή; Εάν όχι, πρόκειται να παρακάμψετε. Είναι ίσο με σταθερή δυο, και ούτω καθεξής και ούτω καθεξής, μέχρι να χτυπήσει το προεπιλεγμένο, αν κανένα από αυτά δεν είναι ίσα. Αμέσως μόλις ένας από αυτούς έχει οριστεί να είναι ίσες, πρόκειται να το κάνετε αυτό γραμμή του κώδικα και διάλειμμα. Πράγμα που σημαίνει ότι πρόκειται να χτυπήσει ότι τρέχουν, να σπάσει, και μόνο εντελώς παραλείψτε στο κάτω μέρος του κώδικα. Έτσι, με αυτή την έννοια το είδος των λειτουργιών σαν ένα άλλο, αν και αν άλλο if. Έτσι, εδώ είναι μια σκυροδέματος παράδειγμα για σας παιδιά. Ας υποθέσουμε ότι ήθελα να δημιουργήσετε μια μεταβλητή που ονομάζεται χρονιά που ιδρύθηκε. Και θέλω να ζητήσει από το χρήστη να εισάγει η χρονιά που το σχολείο τους ιδρύθηκε. Γι 'αυτό και μπορεί να δημιουργήσει μια δήλωση διακόπτη εδώ. Και ας πούμε, εγώ εισόδου 1636. Αυτός ο κωδικός εδώ θα δείτε το διακόπτη ιδρύθηκε το έτος 1636 η οποία ισούται με. Δεν πρόκειται να δούμε την περίπτωση 1636, oh εκείνα είναι ίσα, printf () Δεν θα έπρεπε να είναι στο εν λόγω σχολείο του βορρά; Επειδή θεωρούμε ότι δεν πηγαίνετε εδώ αν πάνε στο Χάρβαρντ, να σπάσει και να παραλείψετε το τέλος. Εάν επρόκειτο να εισάγετε 1701, η οποία Υποθέτω όλοι μας θα εισόδου, θα παραλείψετε αυτή την υπόθεση, έρχονται κάτω σε περίπτωση που δύο είναι 1701, και εκτύπωση Καλώς ήρθατε στο Yale! Break, προχωρήστε στο τέλος. Αλλιώς ίσως παίρνετε αυτό το μάθημα σε απευθείας σύνδεση στην οποία case-- φοβερό καλωσορίσματος να Yale-- πρόκειται να πάει στο προεπιλεγμένες ρυθμίσεις εκτύπωσης, Γεια σας στο Internet! Και να σπάσει. Ναι. ΟΜΙΛΗΤΗΣ 12: Μπορείτε να χρησιμοποιήσετε το άλλο αντί του default εκεί; ANDI PENG: Όχι, επειδή η τρόπο, ώστε όλη αυτή η λειτουργία διακόπτης είναι χτισμένο, η σύνταξη σας πρέπει να χρησιμοποιήσετε είναι η περίπτωσή περίπτωση αθέτησης. Είναι σαν το εάν άλλο αν, αυτό ένα είναι υπόθεση περίπτωση αθέτησης. Ναι. ΟΜΙΛΗΤΗΣ 13: Μπορείτε ίσως ήδη πει αυτό, αλλά μπορεί να έχετε περισσότερα από δύο περιπτώσεις; ANDI PENG: Ναι, θα μπορούσατε έχουν όσες περιπτώσεις όπως θέλετε. Σκεφτείτε το σαν αρέσει μόνο απείρως προσθέτοντας. ΟΜΙΛΗΤΗΣ 14: Εάν μεταγωγής 1701 με 1636, στην πραγματικότητα δεν κάνει δικαίωμα διαφορά; Είναι ακριβώς πρόκειται να ψάξει για αυτό. ANDI PENG: Αυτό είναι ένα πολύ καλή ερώτηση. Και θα θίξω αυτό αργότερα, αλλά μόνο Γνωρίζουμε ότι είναι ο διακόπτης δήλωση infinitely-- είναι πιο αποτελεσματική από αυτό και αν else if επειδή λειτουργεί χρησιμοποιώντας ένα διαφορετικό τύπο συνάρτησης που σας δίνει τη δυνατότητα, να 'ουσίαν, σε μόλις μεταβείτε κατευθείαν στην Αν πρέπει να βρίσκονται. Ναι. ΟΜΙΛΗΤΗΣ 14: Cool. Ευχαριστώ. ANDI PENG: Ναι ΟΜΙΛΗΤΗΣ 14: Και δεν θα μπορούσε να κάνουν υποθέσεις, όπως και μεγαλύτερη από ό, τι. ANDI PENG: Όχι. Έτσι, αυτό είναι ό, τι είναι για τον περιορισμό της δήλωση switch είναι ότι έχετε να έχουν σταθερές μόνο, μόνο ακέραιους αριθμούς. Ναι. ΕΝΤΆΞΕΙ. Έτσι, αυτό είναι κάτι που θα παιδιά θα συναντήσουν λιγότερο συχνά, αλλά θα ήθελα απλώς να φέρονται στην υπόθεση. Έχουμε εδώ ό, τι είναι ονομάζεται ένα τριαδικό φορέα. Όταν, κατ 'ουσίαν, είναι σαν απλά μια και αν η δήλωση συγκεντρώνονται σε μία γραμμή. Εδώ, θα πάω στην επόμενη γραμμή, η επόμενη σελίδα, γιατί είναι πιο εύκολο να δούμε. Έτσι έχουμε δει όλοι αυτό το δικαίωμα; Αυτό είναι αρκετά εύκολο να ακολουθήσει. Αν ήθελα να κάνω μια μεταβλητή που ονομάζεται συμβολοσειράς που ονομάζεται s, εφόσον ένας ορισμένος αριθμός Δίνω είναι μικρότερη από 100, Ι θέλετε να ορίσετε χαμηλά στο string, άλλο που θέλω να εκχωρήσετε σε υψηλά επίπεδα. Αυτό εδώ είναι που κάνει ακριβώς το ίδιο πράγμα Αυτοί οι οκτώ γραμμές κώδικα που κάνουν. Εδώ, λοιπόν, θέλετε να δημιουργήσετε μια μεταβλητή συμβολοσειράς. Και αυτή είναι η κατάσταση είμαι τον έλεγχο, εάν ένας αριθμός είναι μικρότερος από 100, τότε θα αναθέσει την αξία της χαμηλής, αλλιώς την ανάθεση της τιμής σε υψηλά επίπεδα. Αυτές οι διαφάνειες θα είναι σε απευθείας σύνδεση, μην ανησυχείτε αν εσείς δεν έχετε αυτό κάτω. Αυτό είναι μόνο ένα απλούστερο τρόπο, μια πιο αποτελεσματικός τρόπος γραφής κώδικα. ΕΝΤΆΞΕΙ. Έτσι, τώρα θα πάμε να εισάγετε ό, τι, για τους περισσότερους ανθρώπους είναι σαν μια πολύ, πολύ συγκεχυμένη πράγμα που πρέπει να σκεφτείτε για την πρώτη. Το τμήμα βρόχου. Έτσι, σήμερα, θα πάμε να μιλήσουμε περίπου τρεις τύπους των βρόχων. Εμείς πάμε για να ξεκινήσετε με ένα διάστημα βρόχου, τότε μιλάμε για ένα do while loop, και στη συνέχεια να μιλήσουμε για για βρόχους. Έτσι, κατ 'ουσίαν, για το πιο οπτική τους μαθητές εκεί έξω, έχουμε, ουσιαστικά, μια γραφική απεικόνιση του τι κάνει ένας βρόχος while. Έτσι, σε ένα προγραμματισμό, θα αρχίσουν και πληκτρολογήστε το βρόχο σε ένα ορισμένο σημείο. Μπορείτε να ελέγξετε μια κατάσταση. Και αν η συνθήκη είναι αληθής, θα εκτελέσει τον κώδικα μέσα. Και έρχεστε πίσω γύρω και να ελέγξετε. Αν είναι ακόμα αλήθεια σας κρατήσει σε λειτουργία αυτός ο κώδικας γύρω και γύρω σε ένα βρόχο. Ωστόσο, η δεύτερη ότι η κατάσταση γίνεται ψευδής, θα πάμε για να σπάσει και στο τέλος του βρόχου. Και αυτό είναι ουσιαστικά η συντακτικής που πρόκειται να χρησιμοποιήσετε. Ενώ ένα ορισμένο προϋπόθεση είναι αλήθεια να το κάνετε αυτό, αν δεν είναι αλήθεια, θα πάμε να παραλείψετε το τέλος και να προχωρήσουμε με το πρόγραμμά σας. ΕΝΤΆΞΕΙ. Υπάρχει κάποιος που έχει ένα παράδειγμα σχετικά με το τι μπορεί να συμβεί ενδεχομένως Αν προσπαθήσω να τρέξει αυτό το κομμάτι του κώδικα; Με την ευκαιρία, SAJ-- ότι είναι SCAZ, Andi, Jason-- θα υπογράφει τα email μας, Αγάπη, SAJ. Το σπίτι μας. ΕΝΤΆΞΕΙ. Όποιος έχει ένα παράδειγμα, ή έχουν μια ιδέα για το τι αυτό θα εκτυπώσετε; Το είδος της μια ερώτηση παγίδα. Έτσι, εδώ, να θυμάστε την κατάσταση είμαστε ο έλεγχος είναι αληθής, ενώ. Έτσι, ενώ αυτό είναι αλήθεια, είναι πρόκειται να εκτυπώσετε, αγαπώ SAJ! Υπάρχει κάποιο σημείο στο οποίο είχαμε εκεί αλλάξει αυτό σε τίποτα άλλο; Όχι, έτσι δεν είναι; Έτσι, εδώ, έχουμε αντιμετώπισε τι είναι πιθανώς πρόκειται να υποκλοπών πολλά προγράμματά σας, το άπειρο βρόχο. Θα διαπιστώσετε ότι αν τρέξει αυτό το κομμάτι του κώδικα, είναι ακριβώς πρόκειται να κρατήσει εκτύπωση, μου αρέσει η SAJ! Αν και εκτιμούμε την υποστήριξη, δεν θέλουμε τους υπολογιστές σας να διακοπούν εξαιτίας σας κρατήσει εκτύπωση Αγαπώ SAJ! Επομένως, σας παρακαλώ, σας παρακαλώ, αποφύγει το άπειρο βρόχο γιατί δεν πρόκειται ποτέ να αξιολογήσει τα πλαστά και αν δεν πρόκειται ποτέ να αφήσει το βρόχο. Και θα πάμε να αναρρόφηση για πάντα. Cool. ΕΝΤΆΞΕΙ. Ο δεύτερος τύπος του βρόχου θα μιλήσουμε για σήμερα είναι το do while loop, ενώ κάνει βρόχο. Και αυτό λέγεται do while loop επειδή έχετε ένα do και λίγο. Έτσι, αυτό είναι αρκετά παρόμοια με λίγο βρόχου, αλλά λίγο διαφορετικά. Εδώ, θα πάμε να κάνουμε ανεξάρτητα από το εσωτερικό του αυτό ενώ μια συγκεκριμένη συνθήκη είναι αληθής. Έτσι, αν ήμουν στη θέση Γ και τον υπολογιστή είμαι τρέχει κάτω από αυτό το κομμάτι του κώδικα, Θα ρίξουμε μια ματιά στην κορυφή. Έχω πάει σε C, λέω κάνω αυτό το πράγμα. Και τότε μπορώ να ελέγξω, ενώ αυτό Είναι αλήθεια, δεν έχω να το επαναλάβω. Αλλά ενώ αυτό είναι λάθος, τότε θα προχωρήσουμε και ποτέ δεν πάω πίσω σε αυτό το βρόχο και πάλι. Μπορεί κανείς να λάβει μια μαχαιριά σε ό, τι η διαφορά μεταξύ αυτού του βρόχου και τη μία εμείς Απλά κοίταξε ήταν πρακτικά. Ναι. ΟΜΙΛΗΤΗΣ 15: Η κατάσταση έρχεται μετά αντί πριν; ANDI PENG: Ακριβώς. Έτσι είπε η κατάσταση έρχεται μετά, όχι πριν. Τελικά, η διαφορά μεταξύ αυτού και του βρόχου while είναι ότι είστε ακριβώς πρόκειται να κάνει όποια και αν είναι μέσα σε αυτό, ανεξάρτητα από το έστω και αν η κατάστασή σας είναι αλήθεια, και στη συνέχεια ελέγξτε την κατάσταση. Έτσι, σε αυτή την περίπτωση, είστε always-- με αυτόν τον τρόπο, είστε πάντα φροντίζοντας ό, τι υπάρχει στο εσωτερικό τρέχει τουλάχιστον μία φορά πριν από τον έλεγχο για να δούμε αν θέλετε να εκτελεστεί ξανά. Και εδώ είναι ένα παράδειγμα πότε θα το χρησιμοποιήσει. Έτσι, για παράδειγμα, αν ήθελα να έχει μια μεταβλητή τύπου int ονομάζεται ηλικία, και θέλω να παρακινήσει ο χρήστης για την ηλικία τους, Πάω να κάνω printf () Ποια είναι η ηλικία σου? ηλικία = GetInt (), η οποία ωθεί το χρήστη. Και μερικοί άνθρωποι θα είναι πραγματικά ενοχλητικό. Και δεν θέλετε σφάλματα σε σας πρόγραμμα κάποιος την εισαγωγή, όπως, oh Είμαι αρνητική 4 ετών ή οτιδήποτε άλλο. Σε αυτή την περίπτωση, εφόσον το κάνουμε αυτό, αυτό αξιολογεί για να είναι αληθινό, πράγμα που σημαίνει ότι θα πάω να Πρέπει να συνεχίσουμε πίσω και να κάνει αυτό. Έτσι, αυτό πρόκειται να κρατήσει re-προτρέπει το χρήστη για να σας δώσει σαν ένα πραγματικό αριθμός ηλικία και είναι συνεχίσω να πάει πίσω και να επαναλάβουν αυτό μέχρι να σας δώσει μια πραγματική ηλικία μεγαλύτερο από ένα, ή δεν είναι μηδέν. Έτσι υπαινιγμός, υπαινιγμός. Αυτό θα είναι πολύ, πολύ χρήσιμο για ένα από τα προβλήματά σας PSET. Ναι. ΟΜΙΛΗΤΗΣ 16: Ωχ, συγγνώμη. ANDI PENG: Ναι. ΟΜΙΛΗΤΗΣ 16: Υπάρχουν, δεν να είναι μαλάκας, but-- ANDI PENG: Δεν ανησυχεί. ΟΜΙΛΗΤΗΣ 16: --are εκεί διαφορετικούς κανόνες εδώ, ή μήπως απλά ξεχάστε να θέσει την προσφορά; ANDI PENG: Oh Yeah. Συγγνώμη, αυτό είναι εντελώς κακό μου. Αυτό ήταν σίγουρα υποτίθεται ότι είναι ένα απόσπασμα. Καλή ψαριά. Αυτό δεν θα τρέξει. ΕΝΤΆΞΕΙ. Έτσι, το τελευταίο είδος βρόχου θα μιλήσουμε περίπου και, εν τέλει, το είδος της πιο πολύπλοκο είναι το βρόχο for. Μην ανησυχείτε αν δεν το κάνετε Ξέρεις τι σημαίνει αυτό. Είναι αρκετά συγχέοντας την πρώτη. Θα πάμε πάνω από ένα παράδειγμα. Το μόνο που συμβαίνει σε ένα for loop είναι ότι έχετε τρεις δηλώσεις ότι θα πάμε να συμπεριλάβετε. Έτσι, για ένα συγκεκριμένο πράγμα, είστε θα προετοιμάσει μια μεταβλητή. Θα πάμε για να προσθέσετε την προϋπόθεση να που αυτός ο βρόχος θα συνεχίσει να τρέχει. Και στη συνέχεια, στο τέλος της βρόχου, θα πάμε να το ενημερώσετε. Μπορείτε να ενημερώσετε τη μεταβλητή που θέλετε να παρακολουθείτε. Γι 'αυτό και συνήθως χρησιμοποιούν για θηλιές για όταν θα θέλετε να εκτελέσετε μια θηλιά για μια ορισμένο ποσό των φορές και γνωρίζουμε ήδη, OH θέλω αυτός ο βρόχος να εκτελέσει, όπως 10 φορές, τότε do-- θα πάω πάνω ένα παράδειγμα στην επόμενη σελίδα. Έτσι, εδώ, για παράδειγμα, στο Scratch, αν ήθελε κάτι να επαναλάβετε 10 φορές, το μόνο που είχε να πει ήταν, επαναλάβετε 10 φορές μου αρέσει SAJ! το οποίο είναι ένα πιο αποδεκτό επίδειξη στήριξης για εμάς παρά το άπειρο βρόχο. Εδώ, πώς θα μετάβαση σε C και εγγραφής ότι είναι για int-- Πάω να δημιουργήσετε ή να δηλώσετε μια μεταβλητή τύπου int ονομάζεται i. Πάω να προετοιμαστεί να 0, έτσι ώστε i = 0? και αυτό πρόκειται να είναι η κατάστασή μου. Έτσι i είναι μικρότερο από 10. Και στη συνέχεια στο end-- η τελευταία δήλωση είστε πρόκειται να έχουμε είναι η ενημέρωση των τι συμβαίνει με τη μεταβλητή i στο τέλος του σας για βρόχο. Έτσι είναι το είδος της σύγχυσης, επειδή διάφορα μέρη αυτής της γραμμής συμβαίνουν σε διαφορετικές τύποι του βρόχου. Αλλά εγώ θα πάω πάνω από ένα pseudocode παράδειγμα ότι και ίσως αυτό εξηγεί απλά λίγο καλύτερα. Έτσι, εδώ. Αυτός είναι ο βρόχος μόλις είδαμε. Ουσιαστικά σε ψευδοκώδικα, τι συμβαίνει σε αυτό το πρόγραμμα, είναι η πρώτη Είμαι δημιουργία i, είναι προετοιμασία για 0. Φεύγω για να δω αν θα είναι λιγότερο από 10, στην οποία περίπτωση η πρώτη φορά είναι επειδή 0 είναι μικρότερη από 10. Έτσι, ο βρόχος πρόκειται να τρέξει. Και τότε Πάω να εκτυπώσετε αυτή τη γραμμή. Και στη συνέχεια, στο τέλος αυτής της γραμμής, το δικαίωμα εδώ, θα πάω να κάνω αύξηση i, i ++, όλα αυτά μέσα είναι προσαυξάνοντας το κατά ένα. Γι 'αυτό τώρα είναι 1. Επειδή κάποτε ήταν 0, αν μου αυξήσετε είναι, είναι τώρα 1. Και τότε είμαι πρόκειται να πάει πίσω στην αρχή του βρόχου και μπορώ να ελέγξω την κατάσταση. Είναι η κατάσταση εξακολουθεί να ισχύει; Ναι, 1 εξακολουθεί να είναι μικρότερο από 10. Έτσι πρόκειται να εκτυπώσετε και πάλι, πάει και στη συνέχεια αυξήσετε εγώ, και να ελέγξετε η κατάσταση συνεχώς, συνεχώς, μέχρι να πάρουν τελικά στο σημείο όπου i είναι το 10. Θα πάμε για να εκτυπώσετε το 10 φορές και τότε εγώ θα ισούται με 10. Θα πάμε για να ελέγξετε την κατάσταση. Είναι μικρότερη από 10 10; Όχι, αυτό είναι λάθος. Έτσι, αυτός ο βρόχος δεν πρόκειται να τρέξει, πρόκειται να σπάσει, και θα πάμε να να συνεχίσει με τον κωδικό σας. Έτσι όπως εσείς να δείτε, αυτό είναι ένα πραγματικά καλό παράδειγμα βρόχου μπορείτε να προγραμματίσετε το ότι τρέχει για ένα καθορισμένο ποσό των φορές. Κάθε ένα σαφές; Ναι. ΟΜΙΛΗΤΗΣ 17: Τι θα λέγατε για αύξηση εκθετικά, είναι διαφορετική κωδικοποίηση; ANDI PENG: Μπορείτε can-- θα πάμε πάνω από αυτό στην επόμενη διαφάνεια. Καλή ερώτηση. Είναι anyone-- πριν προχωρήσω on-- κανείς καθόλου μπερδεμένος, διότι αυτό είναι ένα πολύ δύσκολο έννοια. Μην ανησυχείτε, αν you're-- OK. Cool. Εντάξει. Απλά μια γενική διαφάνεια. Αυτό το βρόχο while κάνει η ακριβώς το ίδιο πράγμα για το βρόχο ήταν. Είναι απλά γραμμένο με διαφορετικό τρόπο. Εσείς μπορείτε να μελετήσετε τις διαφάνειες με την ησυχία σας αργότερα. Αλλά ακριβώς ξέρουν ότι υπάρχει πολλαπλή τρόποι γραφής το ίδιο πράγμα να συμβεί με διαφορετικούς βρόχους. ΕΝΤΆΞΕΙ. Έτσι, τώρα έχουμε στο ερώτημα του τι αν έχουμε μια θηλιά μέσα από ένα βρόχο. Είμαστε μπουν στην πραγματική Inception πράγματα τύπου εδώ. Όταν θέλετε να κάνετε τα πράγματα πολλαπλές φορές μέσα σε άλλα πράγματα ότι κάνουμε τα πράγματα πολλές φορές, θέλουν ό, τι λέγεται για μια ένθετη βρόχο. Για όσους από εσάς δείτε πρώτα αυτό και μπερδεύονται πολύ, όλοι κάνουμε εδώ έχει ένα βρόχο for, όπου έχουμε μια μεταβλητή της σειράς. Αλλά μέσα από αυτό, έχουμε επίσης ένα άλλο για το βρόχο της στήλης μεταβλητή που ονομάζεται. Και εγώ προτείνω ιδιαίτερα σε όλους σας οι οποίοι βρίσκονται σε σύγχυση για να κρατήσει την πρώτη track-- σχεδιάσετε αυτό έξω, σχεδιάσετε αυτό έξω. Μην προσπαθήσετε να ακριβώς το λόγο μέσα από αυτό, να σύρει έξω. Στο κεφάλι σας, σε αυτό το κομμάτι της χαρτί, ή οτιδήποτε άλλο, σειρά εγγραφής, να παρακολουθείτε τι σειρά είναι ίση με. Γράψτε στήλη, να παρακολουθείτε από ποια στήλη είναι ίση με. Και να παρακολουθείτε ό, τι είναι εκτύπωση με κάθε επανάληψη. Κάθε επανάληψη αυτού του βρόχου, κάθε επανάληψη ενός μεγαλύτερου βρόχου, απλά συνεχίστε ακολουθώντας τη λογική. Και σας εγγυώμαι, θα αγαπήσετε αυτό που βλέπετε, γιατί είναι επίσης πολύ που ισχύουν για το πρόβλημά σας σύνολα. Cool. Εντάξει. Έτσι, το πιο σημαντικό πράγμα ότι εσείς είστε κατά πάσα πιθανότητα όλα σκεφτόμαστε αυτή τη στιγμή, Πρόβλημα Ορίστε 1s σας, οι οποίες οφείλονται Πέμπτη / Παρασκευή. Στο πρόγραμμα water.c σας, hint θα πάμε να έχουν να ζητήσει από το χρήστη για την είσοδο. Στο πλαίσιο του προγράμματος mario.c σας θα πάμε για να έχουν να χρησιμοποιήσει μια ένθετη για το βρόχο, η οποία είναι ένα για το βρόχο στο εσωτερικό ενός βρόχου for, να εκτυπώσετε ένα μπλοκ της πυραμίδας, κατ 'ουσίαν, όπως αυτό που ο Mario έχει να πηδούν μέσα. Και τότε μέσα greedy-- σας ή ίσως Κάνοντας την αλλαγή, αν κάποιος από εσάς παιδιά έχουν ακούσει ποτέ του that-- θα πάμε να πρέπει να είναι πολύ Προσέξτε τις πρώτες τιμές κινητής υποδιαστολής. Θυμηθείτε κυμαινόμενο δεκαδικά ψηφία, και ακέραιοι αριθμοί δεν είναι το ίδιο πράγμα. Παρακολουθήστε των οποίων το ένα είναι που. Και θα πάμε να χρησιμοποιήσετε υπό όρους δηλώσεις, καθώς και. Εντάξει, τελευταίο πράγμα. Έχω ένα ζευγάρι λεπτά που απομένουν. Στυλ. Έτσι, αυτό είναι κάτι που δεν στην πραγματικότητα ως αποτέλεσμα την απόδοση, ή η πραγματική λειτουργία του κωδικού σας. Ωστόσο, μας επηρεάζει ως ισοπεδωτές σας, οι αναγνώστες σας. Επηρεάζει τον εαυτό σας, αν είστε προσπαθούν να βρουν ένα πρόβλημα. Επηρεάζει την αναγνωσιμότητα του κώδικα σας. Έτσι στυλ, όπως όταν προσπαθείτε να στυλ Ένα δοκίμιο για τα αγγλικά, αν δεν είχε παραγράφους, έχετε πάντα το είδος της πλέκονται σε μία γραμμή, καθιστά πραγματικά δύσκολο για κανέναν για να διαβάσετε το δοκίμιό σας, ακόμη και αν τα σημεία σας είναι λογικά ήχο. Ίδιο πράγμα στον προγραμματισμό. Μπορείτε να έχετε φοβερά σκοτεινές κώδικα που SCAZ θα καλύψει, και μπορεί να τρέξει ακόμα και τη λειτουργία. Αλλά για μας, όπως όμορφη βοηθούς σας, ο οποίος θα να διαβάζει και την αξιολόγηση PSets σας, αυτό δεν είναι πολύ ωραίο. Επομένως, σας παρακαλώ, για το καλό από εμάς και τον εαυτό σας, όταν προσπαθείτε να διορθώσετε ένα πρόβλημα στον κώδικά σας, και προσπαθείτε να διαβάστε δικό σας κώδικα, καθιστούν Φροντίστε να ακολουθήσετε κάποιες συμβάσεις ότι θα πάμε για να πάει πάνω. Έτσι, για πρώτη φορά. Δώστε τις μεταβλητές σας σημαντικά ονόματα. Αν θέλετε να αποθηκεύσετε έναν ακέραιο κάλεσε την ηλικία, παρακαλούμε ονομάστε την ηλικία. Μην το όνομα του ύψους. Όταν προσπαθείτε να αποθηκεύσετε μια εποχή σε ύψος, θα κάνει τα πάντα πολύ συγκεχυμένη για εμάς. Δεν μας αρέσει να συγχέονται. Δεν σας αρέσει να συγχέονται. Κανείς δεν θέλει να είναι συγκεχυμένη. Αν πρόκειται να δημιουργήσετε κάτι, αναφέρουμε ότι κάτι σημαντικό. Ωστόσο, για επανάληψης, μεταβλητές χαρακτήρα είναι συνήθως μια χαρά. Και για βρόχο, αν θέλετε μόνο εγώ, και j, k, αισθανθείτε ελεύθερος να κάνει ακριβώς αυτό. Συνεπής προετοιμασίας. Λοιπόν, τι σημαίνει αυτό; Αυτό σημαίνει ότι από τεχνική άποψη, θεωρητικά, μπορείτε να ξεκινήσετε και να δημιουργήσετε πολλών μεταβλητών στην ίδια γραμμή. Έτσι, για παράδειγμα, μπορώ να δημιουργήσω ένας ακέραιος ονομάζεται scaz_age, και ακέραιος ονομάζεται andi_age = 20, και ένας ακέραιος ονομάζεται jason_age στην ίδια γραμμή. Και μπορώ επίσης να ορίσετε μόνο ένα από τους και όχι οι άλλοι για τις τιμές. Σας ζητούμε, σας παρακαλούμε να μην το κάνουμε αυτό. Επειδή εδώ έχετε δημιουργούσε τρεις μεταβλητές, αλλά μόνο μία από αυτές στην πραγματικότητα έχει μια αξία. Και τότε, όταν είμαστε προσπαθούν να διαβάσετε τον κωδικό σας, ή αν προσπαθείτε να διορθώσετε ένα πρόβλημα στον κώδικά σας, είναι πολύ συγκεχυμένη να ακολουθήσει. Έτσι απλά για αναγνωσιμότητα σας, για αναγνωσιμότητα μας, δεν το κάνουμε αυτό. Συνεπής αγκύλες. Μερικοί άνθρωποι επιθυμούν να βάλει τους άγκιστρα σε διαφορετικούς τόπους. Δεν έχει τόση σημασία. Απλά βεβαιωθείτε ότι είστε συνεπείς σε σας το δικό του κωδικό για το πού θέλετε να τα βάλουν. Συνεπής απόσταση. Αν βάλετε ένα κενό διάστημα μετά το για το βρόχο, πάντα το κάνουν αυτό. Μην απλά αρέσει το είδος του να το κάνει σε ορισμένα μέρη, μην το κάνεις σε άλλους. Απλά να είναι συνεπής. Δεύτερον, αν κάποιος θα ήθελε να λάβουν γνώση του CS50 Style Guide: και επίσημα έχουμε έναν οδηγό στυλ που Σας σύνολο αυτών των συμβάσεων λέει, συν κάποια άλλα. Είναι σε απευθείας σύνδεση. Είναι σαν cs50.net/style ή κάτι τέτοιο. Μπορείτε να το google. Η συνέπεια είναι το κλειδί. Γι 'αυτό μην ανησυχείτε τι άλλοι άνθρωποι κάνουν, απλά βεβαιωθείτε ότι είστε συνεπής στο δικό σας κώδικα. Όποιος έχει οποιαδήποτε απορία σχετικά με αυτό; Ναι. ΟΜΙΛΗΤΗΣ 18: Έτσι, το πρέπον να κάνει με την προετοιμασία είναι απλά έχουν όλα αυτά σε ένα ξεχωριστό γραμμή, είναι ότι αυτό που λέτε; ANDI PENG: Γι 'αυτό και σπάνια έχουν συμβεί αυτό. Αλλά αν ήθελε να, αν ήθελε να είναι όπως την εξοικονόμηση χώρου στον κώδικά σας, ή οτιδήποτε άλλο, μπορείτε να το κάνετε αυτό. Ζητάμε ότι απλά δεν προετοιμαστεί ένα πράγμα και όχι οι άλλοι. Έτσι, εάν θέλετε να κάνετε int scaz_age, int andi_age, int jason_age, ότι το πρόστιμο. Απλά μην προετοιμαστεί ένα και όχι οι άλλοι είναι όλα. Ερωτήσεις; Εντάξει. Πάω να περάσει από το μικρόφωνο, και ο δείκτης λέιζερ, και η σκυτάλη στο SCAZ σε αυτό το σημείο. Αυτό είναι δύσκολη. Εδώ είναι. BRIAN SCASSELLATI: Σας ευχαριστώ. Πώς το ότι για τον ήχο; Ο ήχος είναι καλό; . Εξαιρετική. ΕΝΤΆΞΕΙ. Έτσι, Γεια σε όλους. Πάω να προσπαθήσουμε και να εργαστούν με ένα πρακτικό παράδειγμα με σας. Και θα πάμε να χρησιμοποιήσετε το CS50 περιβάλλον ανάπτυξης, αυτό που ονομάζεται το ολοκληρωμένο περιβάλλον ανάπτυξης. Και έχετε δει αυτό αποδειχθεί σε διάλεξη. Και στην Πρόβλημα Σειρά 1, είστε θα έχουν την ευκαιρία να το χρησιμοποιήσει, και να παίξει γύρω με αυτό, και να συνηθίσει σε αυτό, επειδή θα πάμε να το χρησιμοποιήσετε μέσα από το υπόλοιπο του εξαμήνου. Έτσι, σε αυτό το IDE, έχετε ό, τι φαίνεται σαν ένα πολύ παραδοσιακό περιηγητή αρχείων πάνω στη μία πλευρά. Έχετε ένα τμήμα επάνω κορυφή, όπου θα πάμε να δείτε τον πηγαίο κώδικα σας, σας Cfile, ο κώδικας που γράφετε. Και κάτω κάτω, θα έχουν ένα παράθυρο τερματικού το οποίο θα χρησιμοποιείτε για να τόσο καταρτίσει το πρόγραμμά σας και να τρέξει ή να εκτελέσει το πρόγραμμά σας. ΕΝΤΆΞΕΙ. Έτσι, απλά να μας δώσει λίγη ίδρυμα, σε αυτό το παράθυρο τερματικού, θα πάμε να είναι χρησιμοποιώντας ένα σύνολο εντολών που είναι στάνταρ σε όλη εντολές οι περισσότεροι από Unix ή Linux συστήματα. Και έτσι, αν έχετε χρησιμοποιήσει ποτέ οποιαδήποτε μορφή του Unix, το Ubuntu, ή οποιαδήποτε από τις άλλες γεύσεις, αυτά πρόκειται να δούμε εξοικειωμένοι. Αν δεν έχετε, μην ανησυχείτε. Δεν υπάρχει τίποτα περίπλοκο γι 'αυτούς. Είναι απλά χρησιμοποιώντας ένα διαφορετικό σύνταξη, μια διαφορετική ονομασία σύμβαση από ό, τι έχετε δει πριν. Έτσι για να απαριθμήσω τα αρχεία μέσα σε ένα συγκεκριμένο κατάλογο, από όπου και αν πρόκειται να χρησιμοποιήσετε ένα εντολή που ονομάζεται ls, ή λίστα. Αν θέλετε να δείτε τα πάντα με όλες τις λεπτομέρειες, θα χρησιμοποιήσετε μια εντολή το επιχείρημα σύμφωνα με το ls -l. Και αυτό θα σας δείξει τα πάντα με περισσότερες λεπτομέρειες, συμπεριλαμβανομένης της τα δικαιώματα για ένα αρχείο. Για να αλλάξετε τον κατάλογο, θα χρησιμοποιήσετε την εντολή cd. Και θα είστε σε θέση να αλλάξετε τον κατάλογο τόσο για να πάει στον αρχικό σας κατάλογο. Αυτό είναι απλά cd με όλα η ίδια, με δύο cd κουκίδες θα σας επιστρέψει το ένα επίπεδο με τα προηγούμενα κατάλογο σας. Και μπορείτε επίσης CD σε υποκατάλογο πληκτρολογώντας cd και το όνομα του εν λόγω υποκατάλογο. Μπορείτε επίσης να δημιουργήσετε νέους καταλόγους. Και θα πάμε να περπατήσει μέσα από αυτό σε μόλις ένα λεπτό. Αλλά ακριβώς για να θέσει τα πάντα στην οθόνη. Έτσι ώστε να μπορείτε να τα δείτε. Θα έχετε επίσης τη δυνατότητα να χειριστείτε απευθείας τα αρχεία από τη γραμμή εντολών. Θα είστε σε θέση να τους αντιγράψετε, να μετακινήσετε τους, ή για την άρση τους, Δηλαδή, ουσιαστικά, να τα διαγράψετε. Το IDE CS50 σας δίνει την πλήρη ισχύς επιχειρήματα της γραμμής εντολών. Και αυτό σημαίνει ότι μπορείτε επίσης να κάνει πολύ επικίνδυνα πράγματα. ΕΝΤΆΞΕΙ. Για παράδειγμα, μπορείτε να αφαιρέσει, ή ότι είναι διαγραφής, ένα αρχείο χωρίς να ρωτήσει για επιβεβαίωση. Και μπορείτε να αφαιρέσετε ακόμα recursively-- ότι είναι το ταμπλό r flag-- ένα ολόκληρο υποκατάλογο και όλα τα περιεχόμενά του. ΕΝΤΆΞΕΙ. Είναι αναφέρονται στο κόκκινο επειδή πρέπει να σκέφτεσαι «Κίνδυνος» κάθε φορά μπορείτε να δείτε αυτά τα πράγματα. ΕΝΤΆΞΕΙ. Εντάξει. Τώρα επιτέλους, τα πράγματα που είναι πρόκειται να είναι πραγματικά πολύτιμο για εσάς, Δεν υπάρχουν μερικά καλά κόλπα να γνωρίζουν όσο είστε πλοήγηση μέσα από αυτό το παράθυρο τερματικού. Κατ 'αρχάς, μπορείτε να καθαρίσετε την οθόνη σε οποιαδήποτε στιγμή πληκτρολογώντας απλά σε σαφή. Και θα πάμε να δούμε Θέλω να κάνω αυτό αρκετά συχνά. Μπορείτε επίσης να εμφανίσετε μόνο το κείμενο ενός αρχείου πληκτρολογώντας περισσότερο και στη συνέχεια το όνομα του αρχείου. Στη συνέχεια, θα είστε σε θέση να γυρίσετε πίσω και εμπρός με ότι ακριβώς με το spacebar και βελάκια. Αν έχετε, όπως κάναμε σήμερα στη διάλεξη, ένα πρόγραμμα που λειτουργεί συνεχώς στο άπειρο βρόχο, μπορείτε μπορεί να σταματήσει αυτό το πρόγραμμα από την εκτέλεση πληκτρολογώντας τον έλεγχο, που κρατάτε πατημένο Control-C. Και ίσως χρειαστεί να κάνετε αυτό πολλές φορές. Ο υπολογιστής παίρνει πολύ πιο μπροστά από εσάς. Και μερικές φορές πρέπει να να δώσει μια-δυο προσπαθεί πριν από πραγματικά θα έρθει μέσα. Θα είναι επίσης σε θέση να ταξινομήσετε μέσω των εντολών που μόλις πληκτρολογήσατε χρησιμοποιώντας το πλήκτρο, βέλος, και στη συνέχεια το κάτω βέλος. Και τι είναι πιο χρήσιμο είναι, αντίθετα, να πληκτρολογήσετε μεγάλα ονόματα αρχείων, θα είστε σε θέση να το Tab για χρήση αυτόματη συμπλήρωση μερικές οδηγίες. Τώρα θα πάμε να αποδείξουν όλα αυτά μέσα σε μόλις ένα δευτερόλεπτο. Έτσι, αν δεν θυμάστε τους, μην ανησυχείτε. Αυτά είναι πράγματα που θα επιβιβάζουν και να χρησιμοποιούν όσο προχωράμε. ΕΝΤΆΞΕΙ. Έτσι, σε αντίθεση με C-- Scratch-- C είναι ένα μεταγλωττισμένο γλώσσα. Αυτό σημαίνει ότι θα πάμε να ρίξουμε μια πηγή file-- αυτό είναι το κείμενο που γράφετε, οι εντολές που γράφετε, η printf () δηλώσεις, οι βρόχοι, else-- πάντα και θα πάμε να λάβει αυτό το αρχείο και να την παραδώσουν στα ανοικτά σε ένα πρόγραμμα που ονομάζεται τον compiler. Στη συνέχεια, ο compiler θα πάρει ότι το κείμενο που έχετε γράψει και μεταφράζεται σε οι δυαδικές εντολές ότι ο υπολογιστής σας είναι στην πραγματικότητα πρόκειται χρήση. Αυτό ονομάζεται το αντικείμενο ή το εκτελέσιμο αρχείο. Αν κοιτάξετε αυτό το αρχείο, θα πάμε για να δείτε τον κώδικα που έχετε γράψει. Αν κοιτάξετε αυτό το αρχείο, θα πάμε για να δείτε μια τυχαία ακολουθία χαρακτήρων ότι κάνει απολύτως κανένα νόημα. Αυτό συμβαίνει γιατί αυτό είναι το δυαδικό. Δεν είναι γραφτό για να μπορείτε να διαβάζετε. Ωστόσο, κάθε φορά που θέλετε να κάτι τρέχει, τι πρόκειται να τρέχει αυτό το αρχείο είναι το αντικείμενο. Έτσι, όταν δουλεύουμε με αυτά αρχεία, θα γράψουμε ένα αρχείο σε C. Στη συνέχεια, θα το υπολογίσουν, χρησιμοποιώντας μια εντολή όπως κάνει και η οποία θα επικαλεστεί η κλαγγή compiler για τη γλώσσα C. Και αυτό θα παράγει ένα αντικείμενο αρχείο, όπως ένα έξω, ή στην περίπτωση αυτή, το όνομα, το αρχείο μου, που έχω βάλει μέσα. Εντάξει. Οπότε ας προσπαθήσουμε πραγματικά αυτό. Γι 'αυτό και ήρθε με ένα παράδειγμα για το τι ήθελα να προσπαθήσω. Και ένα από τα πράγματα που με συναρπάζει είναι animation. Έτσι θα πάμε να προσπαθήσουμε να κάνουμε ένα μικρό κομμάτι του animation χρησιμοποιώντας μόνο χαρακτήρες ASCII. Χαρακτήρες που μπορούμε να εκτυπώσετε εύκολα τώρα. Τόσο εδώ είναι η καλύτερη προσπάθεια μου στη δημιουργία για εσάς η εμψύχωση λαγουδάκι διατρέχει το ψηλό χορτάρι. Νατος. ΕΝΤΆΞΕΙ. Έτσι, αυτός δεν λειτουργεί ακόμη, αλλά είναι στέκεται εκεί στο ψηλό χορτάρι. Τώρα, αν ήμουν ένας εμψυχωτής, στο παλιό σχολείο έκδοση του animation, τι θα κάνουμε είναι θα παράγει μια εικόνα αυτού του λαγουδάκι στο χορτάρι. Και τότε θα παραχθεί άλλο picture-- άλλο αυτό που λέγεται ότι cell-- είχε το λαγουδάκι μόνο ελαφρώς μετακινηθεί. Και τότε ένα τρίτο που είχε την λαγουδάκι κινείται λίγο πιο πέρα. Και θα ήθελα να παράγει ένα ολόκληρο αλληλουχία αυτών των κυττάρων. Κάποιοι όπου το λαγουδάκι είναι πάνω πάνω στην αριστερή πλευρά. Και τότε κινείται αργά, ένα από ένα προς τα μέσα. Και στη συνέχεια από τη μέση πάνω προς τα δεξιά. Και αν ήμουν τότε, πραγματικά τυχερός, θα μπορούσα να το βάλει μαζί και θα μπορούσα να τους εμψυχώσει. Και υπάρχει λαγουδάκι μου διατρέχει το χόρτο. Αυτό είναι μεγάλη μου στο PowerPoint, τέχνασμα για την ημέρα. ΕΝΤΆΞΕΙ. Έτσι, αυτό είναι τόσο καλό όσο παίρνει. ΕΝΤΆΞΕΙ. Έτσι, εδώ για μια ακόμη φορά, εδώ είναι μας λαγουδάκι που διατρέχει το χόρτο. ΟΜΙΛΗΤΗΣ 19: Πάλι. BRIAN SCASSELLATI: Ένας περισσότερο χρόνο, εντάξει. Υπάρχει λαγουδάκι σας. ΕΝΤΆΞΕΙ. Έτσι, σήμερα, τι θα πάμε να κάνουμε είναι να πάμε να προσπαθήσει να αυτοματοποιήσει τη διαδικασία παραγωγής αυτών των κυττάρων. Εμείς δεν θα είναι αρκετά για να πάρει το σημείο του να είναι σε θέση να τα βάζουμε όλα μαζί. Αλλά, θα πάμε να προσπαθήσουμε για την αυτοματοποίηση της διαδικασία της παραγωγής αυτής της αλληλουχίας. Και αυτό είναι πολύ για το τι animation σήμερα είναι παρόμοια. Δηλαδή, δεν κάνετε πράγματα απαραίτητα αντλώντας τα πάντα με το χέρι. Χρησιμοποιούμε έναν υπολογιστή για την αυτοματοποίηση τμήματα της εν λόγω διαδικασίας. ΕΝΤΆΞΕΙ. Επιτρέψτε μου λοιπόν να περάσουμε τώρα να CS50 IDE μας. Και έχω δημιουργήσει για ΕΜΕΙΣ-- και αφήστε Θέλω να μεγεθύνετε εδώ λίγο bit-- έχω δημιουργήθηκε για μας μια αφετηρία. Κάθε φορά που σας ζητάμε να καθίσετε προς τα κάτω και να γράψει ένα κομμάτι του κώδικα, τι είμαστε πραγματικά σας ζητά να κάνετε Είναι ζητάμε να λύσει ένα πρόβλημα. Και ο τρόπος που θα πρέπει να σκεφτόμαστε πώς θα κάνουμε ότι είναι ξεκινώντας με κάποια απλό πλαίσιο αυτής της λύσης. Και στη συνέχεια να οικοδομήσουμε έξω από το τμήμα. Και αυτό είναι που θα πάμε να κάνουμε σήμερα. Έτσι, αντί να προσπαθούν ταυτόχρονα να γράψει όλο το τσούρμο του κώδικα που είναι πρόκειται για την παραγωγή εκείνων 10 κύτταρα animation, θα πάμε για να ξεκινήσει αντί με ένα κομμάτι που λειτουργεί. Και τότε θα χτίσουμε μια λίγο γύρω από αυτό και λίγο περισσότερο και λίγο περισσότερο. Τώρα το καλό πράγμα για επίλυση προβλημάτων με αυτόν τον τρόπο είναι ότι θα σας επιτρέψει να ξεκινήσετε πάντα με κάτι που ξέρετε λειτουργεί και να εισαγάγει ένα σταδιακή αλλαγή. Και αυτός είναι ένας πολύ καλός τρόπος για να μάθετε πώς να κώδικα, γιατί κάθε φορά που κάνετε ένα αλλαγή, θα δούμε τι επίδραση που έχει. ΕΝΤΆΞΕΙ. Έτσι, εδώ είναι το σημείο εκκίνησής μας. ΕΝΤΆΞΕΙ. Έτσι, στις αρχές του αρχείου μου, Έχω hash #included stdio.h. Αυτό είναι έτσι ώστε να μπορώ να πάρω το printf () συνάρτηση για να εργαστούν. Εγώ τότε έχω κύρια λειτουργία μου. Και αυτό φαίνεται ακόμα λίγο απόκρυφες ή σκοτεινές σε ορισμένους από εσάς. Δεν πειράζει. Το μόνο που λέει είναι ότι Η κύρια λειτουργία λαμβάνει Δεν arguments-- κενό μέσα τίποτα σε C. Και αυτό επιστροφές κατά συνθήκη ακέραιος. Κύρια πάντα επιστρέφει έναν ακέραιο, Συνήθως ένας κωδικός λέγοντας τα πράγματα πήγε καλά ή δεν πάει καλά. ΕΝΤΆΞΕΙ. Αλλά το κύριο πρέπει να έχει η αποτελούν για μας τώρα. Έχω στη συνέχεια θα τοποθετούνται σε τρεις γραμμές κώδικα. Και μαζί με κάθε γραμμή του κώδικας, έχω βάλει ένα σχόλιο. Τώρα, ένα από τα πράγματα που θα επιμείνουμε ότι το κάνετε, και είναι ένα τόσο σημαντικό η πρακτική του προγραμματισμού, είναι πάντα να σχολιάσει τον κωδικό σας. Πάντα γράψετε σε μια Αγγλικά σχόλιό κάτι ότι νομίζετε ότι η κώδικας πρόκειται να κάνει. Με αυτόν τον τρόπο, αργότερα όταν θα έρθει πίσω να αυτό, μπορείτε να το κοιτάξετε και μπορείτε να πείτε, Ω, θυμάμαι αυτό που ήμουν προσπαθούμε να κάνουμε με αυτό. Ή όταν ένας ΤΑ κάθεται μαζί σας για να προσπαθήσουμε να σας βοηθήσουμε σε ώρες γραφείου, μπορούν να εξετάσουμε αυτό το θέμα και να πάω, δείτε αυτό που προσπαθούμε να κάνουμε, αλλά αντίθετα αυτό είναι τι πραγματικά συμβαίνει. ΕΝΤΆΞΕΙ. Έτσι έχω τρία μέρη τον κωδικό μου, Πάω να πρώτα απ 'όλα εκτύπωσης από ορισμένες τελείες στην αρχή. Θα τότε εκτυπώσετε μου εξαιρετικά φανταχτερά λαγουδάκι. Και στη συνέχεια κάποιες λίγο τελείες στο τέλος. Και οι τρεις αυτές καταστάσεις θα πρέπει εκτύπωσης φαίνονται γνωστά σε σας σε αυτό το σημείο. Όλα αυτά που κάνω στο το καθένα από αυτά είναι ότι είμαι εκτύπωση μια ακολουθία χαρακτήρων. Δεν υπάρχει καμία εμπλέκονται μεταβλητές. Τα πάντα είναι ακριβώς επίπεδη. ΕΝΤΆΞΕΙ. Έτσι, αν πάω κάτω τώρα να terminal-- μου ας δούμε αν μπορώ να πάρω πίσω αυτό out-- και Πάω να πληκτρολογήσετε πάλι διαυγές. ΟΜΙΛΗΤΗΣ 20: Να χρησιμοποιούμε το διπλή πλάγια κάθετος να σχολιάσετε; BRIAN SCASSELLATI: Can χρησιμοποιήστε το double-- ναι. Υπάρχουν πολλοί τρόποι για να αφήνουν σχόλια σε C. Ένα τρόπος είναι να χρησιμοποιήσετε το διπλό κάθετο. Η άλλη είναι να χρησιμοποιήσετε μια κάθετο και ένα αστέρι και στη συνέχεια να κλείσει με ένα αστέρι και ένα κάθετο. Εντάξει. Πρώτα απ 'όλα, Πάω να ξεκινήσετε την πλοήγηση γύρω από εδώ. Έτσι, αν πάω στο σπίτι μου κατάλογο, Έχω αλλάξει καταλόγους εκεί, Πάω να κοιτάξω να δω τι είναι σε αυτόν τον κατάλογο, ls, απαριθμήσω. Πάω να δω ότι έχω πήρε δύο υποκαταλόγους. Ας κάνουμε αυτό το λίγο μεγαλύτερο εδώ, ώστε να μπορούμε να δούμε όλα. Μπορώ να δω ότι έχω πήρε δύο υποκαταλόγους. Θα αλλάξει τον κατάλογο να πάει στο χώρο εργασίας. Και Πάω μόνο να πληκτρολογούν μέρος της, και στη συνέχεια απλά πατήστε Tab. Και αυτό θα ολοκληρώσει τα υπόλοιπα για μένα. Fancy. Θα εξετάσουμε και να δούμε στο χώρο εργασίας. Και τώρα, δουλεύω σχετικά με την SuperSection ότι είμαστε η διδασκαλία αυτή τη στιγμή. Γι 'αυτό θα πάω σε αυτόν τον κατάλογο. Και, τέλος, να δούμε και να δούμε. Και έχω αυτή την bunny.c αρχείο. Εντάξει οπότε επιτρέψτε μου σαφές για μια ακόμη φορά. Και Πάω να now-- πάλι είμαι εξακολουθούν να διαμένουν σε αυτόν τον κατάλογο και μου λέει είμαι σε αυτός ο κατάλογος SuperSection. Πάω να πάει μπροστά και να λαγουδάκι κάνει το πρόγραμμά μου. Και αυτή η εντολή, να κάνει λαγουδάκι, ενώ ηχεί λίγο περίεργα, επικαλείται επίσης τον compiler κλαγγή. Και αυτό είναι που παράγεται για Θέλω μία έξοδο η οποία είναι ένα εκτελέσιμο funny-- ένα εκτελέσιμο αρχείο που ονομάζεται λαγουδάκι. ΕΝΤΆΞΕΙ. Δεν μπορώ λοιπόν, και αυτό ακούγεται ακόμα χειρότερα, εκτελούν λαγουδάκι. ΕΝΤΆΞΕΙ. Και ας δούμε τι κάνει. ΕΝΤΆΞΕΙ. Αυτό είναι ένα μικρό κομμάτι του ό, τι περίμενα. Έχω την εικόνα λαγουδάκι μου εκεί, αλλά εγώ το είδος του ήθελε όλα από μόνη της. Τι έχασα; ΟΜΙΛΗΤΗΣ 21: Slash l ή κάθετο n. BRIAN SCASSELLATI: Slash n. ΕΝΤΆΞΕΙ. Ας πάμε πίσω εδώ. Και εγώ θα βγούμε από αυτό. Και εγώ θα πάω πίσω σε αυτό. Και ας ρίξουμε μια ματιά τώρα από την κύρια λειτουργία μου εδώ. Λοιπόν, τι πρέπει να κάνω; Θέλω να ολοκληρώσω την γραμμή. Γι 'αυτό θα βάλει σε ένα σχόλιο. Θα βάλω σε μια printf (). Και τι έχω να θέσει σε? / n. ΕΝΤΆΞΕΙ. Τι πρέπει να τελειώνει με; Ερωτηματικό. Εντάξει. Τώρα, ένα από τα πραγματικά σημαντικά πράγματα είναι να βεβαιωθείτε ότι κάθε φορά που κάνετε μια αλλαγή στον κώδικά σας, ότι μπορείτε να το αποθηκεύσετε. Αν δεν έχετε αποθηκεύσει τον κωδικό σας, είστε Θα παρατηρήσετε ένα μικρό άστρο εκεί. Και αυτό σας λέει αστέρι Δεν έχετε αποθηκεύσει αυτόν τον κωδικό. Αν μπορώ να συγκεντρώνει αυτή τη στιγμή, δεν είναι πρόκειται να αντανακλούν κάποια από αυτές τις αλλαγές, επειδή ο compiler εξετάζει το αρχείο που είναι στο δίσκο, όχι το αρχείο που είναι ανοίξετε στον επεξεργαστή σας. Εντάξει. Ας το αποθηκεύσετε και στη συνέχεια θα πάμε δεξιά εδώ κάτω, έλα πίσω. Ελάτε κάτω στο τερματικό μου. Και ας ξεκαθαρίσουμε και πάλι το χώρο. Και μπορούμε να προχωρήσουμε και άλλο ένα ώρα κάνει το πρόγραμμά μας λαγουδάκι. Και να εκτελέσει το λαγουδάκι. Αυτό δεν λειτούργησε ούτε. Λάθος κάθετο. Έτσι, αν κοιτάξουμε τι έχω, έβαλα ένα / n εκεί, αλλά είχα λάθος κάθετο. Ό, τι ο υπολογιστής σας Μήπως είναι πολύ σαφής. ΕΝΤΆΞΕΙ? Ένα μικρό λάθος στίξης, και ξαφνικά δεν πάρετε αυτό που θέλετε. Εντάξει. Ας μεγεθύνετε έξω πάλι. Εμείς θα πάμε πίσω. Καλά κάνουμε αυτή την πολύ γρήγορη επισκευή. Θα θέσει το δικαίωμα στην κάθετο. Θα το σώσει. Θα μεγεθύνετε. Για κάποιο λόγο, αυτό δεν είναι να είναι ευτυχισμένος, αλλά ας πάμε μπροστά και θα πάμε πίσω στο τερματικό εδώ. Καταργήστε επάνω. Θα μεγέθυνση. Και για μια ακόμη φορά, θα κάνουμε λαγουδάκι. Και τώρα αρκετά βέβαιος, ότι λειτουργεί. Ζήτω. ΕΝΤΆΞΕΙ. Ας προσπαθήσουμε να κάνουμε αυτό λίγο πιο γενικά. Ας δούμε αν και όχι μόνο εκτύπωση ένα συγκεκριμένο πλαίσιο, Ας δούμε αν μπορούμε να κάνουμε αυτό έτσι ώστε να μπορούμε να πάρουμε όλα τα 10 αυτών των κινουμένων σχεδίων πλαισίων ότι θέλαμε να έχουμε. Έτσι και πάλι, ας ρίξουμε ένα βήμα τη φορά. Ας πρώτα να το γενικεύσουμε, δεν έτσι ώστε να κάνω όλα τα πλαίσια, αλλά έτσι κάνω κάθε μία πλαίσιο που θα μπορούσε να θέλετε. Έτσι ποια είναι η διαφορά μεταξύ των πλαισίων; Είναι το λαγουδάκι το ίδιο; Κοινό: Ναι. BRIAN SCASSELLATI: Ναι. Ποια ειναι η διαφορα? Κοινό: Θέση. BRIAN SCASSELLATI: Η θέση του, σωστά; Και πώς μπορώ να ελέγξω τη θέση του; Πόσες κουκίδες είμαι βάζοντας στην αρχή και πόσες τελείες είμαι βάζοντας στο τέλος. Είχα, λοιπόν, πέντε κατά τη αρχίζοντας πέντε στο τέλος. Ας αντικαταστήσει ότι πέντε με ένα βρόχο for. ΕΝΤΆΞΕΙ. Και Πάω να δημιουργήσετε ένα για βρόχο, τώρα που πρόκειται να πω, Πάω να εκτυπώσετε κάποιο αριθμό κουκίδων στην αρχή. Πάω να χρησιμοποιήσετε μια μεταβλητή. Ας πούμε, σχετικά με το πώς εγώ ως ο μετρητής στο βρόχο μου. Και Πάω να το δηλώσει επάνω στην κορυφή. Και τότε ο βρόχος for Πρέπει να κάνω τρία πράγματα. Το πρώτο πράγμα που πρέπει να κάνετε είναι ότι πρέπει να προετοιμαστεί i. Τι θα πρέπει να προετοιμαστεί να αρχίσει να είναι; 0. ΕΝΤΆΞΕΙ. Στη συνέχεια, πρέπει να πω, τι είναι η κατάσταση τερματισμού; Πότε θα πρέπει να σταματήσει; Λοιπόν πόσες κουκίδες κάνετε θέλετε να εκτυπώσετε σε αυτό το σημείο; Κοινό: Πέντε. BRIAN SCASSELLATI: Πέντε πάλι; Τι θα λέγατε ας κάνουμε κάτι διαφορετικά, κάναμε πέντε. Ας δείξουμε ότι είναι διαφορετικό. ΟΜΙΛΗΤΗΣ 22: Δύο. BRIAN SCASSELLATI: Δύο. ΕΝΤΆΞΕΙ. Έτσι, αν θέλω δύο τελείες, Τι πρέπει να εδώ; Κοινό: Τρία. BRIAN SCASSELLATI: Τρία. ΕΝΤΆΞΕΙ. Πόσες φορές είναι ότι Θα περάσει; Αυτό πρόκειται να περάσει τρεις φορές, 0, 1, και 2, Δεξιά; Εντάξει, ας πάμε πίσω σε δύο. Τώρα θα πάρουμε δύο τελείες. Και τι κάνουμε θέλω να κάνω κάθε φορά που πάω μέσα από το βρόχο; Τι πρέπει να αλλάξει κάθε φορά που πάω μέσα; ΟΜΙΛΗΤΗΣ 23: Προσθέστε μια τελεία. BRIAN SCASSELLATI: Πρέπει να συνεχίσω. Πάω να προσθέσετε μια τελεία. Πάω να εκτυπώσετε μια τελεία, κάθε φορά μέσω του βρόχου. Αλλά πώς είμαι παρακολούθηση του τρόπου με τον πολλές φορές έχω περάσει από το βρόχο; Είμαι χρησιμοποιώντας εγώ, ότι μεταβλητής, ότι σε αντίθεση. Έτσι, κάθε φορά μέσα, θα πάω για την αύξηση του μετρητή κατά ένα. Τώρα, αυτό είναι το ίδιο για μένα, όπως λέει i = i + 1. Δεν πειράζει. Θα μπορούσα να το κάνω that-- μου αρέσει η στενογραφία, έτσι Πάω να πω i ++. ΕΝΤΆΞΕΙ. Ας κάνουμε το ίδιο πράγμα εδώ κάτω στο κάτω μέρος. Μόνο εγώ το είδος έκανε αυτό το ένα. Πάω να σας αφήσει παιδιά κάνει αυτό το ένα τελείως. Εντάξει. Λοιπόν, τι θα έπρεπε να γράψω εδώ; Εδώ είναι μου για το βρόχο. Πάω να κάνω μια printf () και θα πάω να το κάνει έτσι ώστε να μπορώ να εκτυπώσω μόνο μία κουκκίδα σε αυτό το κάτω μέρος. Τι θα έπρεπε να γράψω μέσα σε αυτό για το βρόχο τώρα; Λοιπόν, πρώτα απ 'όλα τι μεταβλητές πρέπει να χρησιμοποιήσω; ΟΜΙΛΗΤΗΣ 24: ι. BRIAN SCASSELLATI: Θα μπορούσα να χρησιμοποιήσω ι. Μπορώ να χρησιμοποιήσω την ίδια με εκείνη; Μπορώ να χρησιμοποιήσω εγώ πάλι; Ναι. Αυτό είναι εντάξει, επειδή το Is ότι είμαι με τη χρήση μέχρι εδώ, Δεν τους χρειάζεται και πάλι όταν Κατεβαίνω σε αυτό το σημείο. Λοιπόν, τι θα πρέπει να προετοιμαστεί για να έχω; ΟΜΙΛΗΤΗΣ 25: 10. BRIAN SCASSELLATI: 0. Τι πρέπει να ελέγξω; Πόσες κουκίδες χρειάζομαι τώρα στο τέλος αν έχω δύο τελείες στην αρχή; Χρειάζομαι οκτώ στο τέλος, έτσι ώστε ό, τι πρέπει να ελέγξω, εγώ λιγότερο than-- Κοινό: Επτά, οκτώ, εννέα. BRIAN SCASSELLATI: Άκουσα επτά. Άκουσα οκτώ. Και άκουσα εννέα. ΕΝΤΆΞΕΙ. Έτσι, είμαστε όλοι στο σωστό ball-- Jason λέει 10. ΕΝΤΆΞΕΙ. Αν χρειαζόμουν δύο κουκκίδες για Η πρώτη, πόσες κάνουμε I-- και χρειάζονται οκτώ κουκκίδες για το τελευταία ένα-- έβαλα δύο από πάνω, τι θα πρέπει να τεθεί κάτω κάτω; Κοινό: Οκτώ. BRIAN SCASSELLATI: Οκτώ. Επειδή αυτό πρόκειται να μετράνε μηδέν έως επτά. Και αυτό είναι οκτώ φορές μέσα από το βρόχο. ΕΝΤΆΞΕΙ. Και τι πρέπει να κάνω στο τέλος; Κοινό: i ++. BRIAN SCASSELLATI: i ++. Εντάξει. Έτσι ώστε να ψάχνει πολύ καλά εκεί. Ας το δοκιμάσουμε και ας δούμε τι κάνει. ΕΝΤΆΞΕΙ. Έτσι θα πάμε για να το αποθηκεύσετε. Νίκαιας και αποθηκεύονται. Θα μεγεθύνετε έξω. Θα προσπαθήσουμε εδώ στο τερματικό. Θα μεγέθυνση. Ωχ. Θα, για μια ακόμη φορά, κάνει το πρόγραμμά μας λαγουδάκι. Και να προχωρήσει και να εκτελέσει λαγουδάκι. Και εκεί είναι. Έτσι υπάρχει λαγουδάκι μας. Όπου έχει δύο τελείες στην αρχή οκτώ τελείες στο τέλος. Όλοι ακόμα μαζί μου; ΕΝΤΆΞΕΙ. Γι 'αυτό και είναι χτισμένη επάνω. Χτίσαμε ένα λαγουδάκι, ένα συγκεκριμένο πλαίσιο. Τώρα είμαστε σε θέση να γενικεύσουμε ότι για την κατασκευή Επιπλέον, διαφορετικά είδη πλαισίων. Τώρα ας πάμε μπροστά, και να έχουν να δημιουργήσει όχι μόνο ένα πλαίσιο, αλλά ας παράγουν 10 πλαίσια, όπου σιγά-σιγά κάνουμε το κουνέλι να μετακινήσετε όλα ο τρόπος σε όλο το πεδίο. Εντάξει. Ας πάμε πίσω. Και θα προσπαθήσουμε τώρα. Έτσι, αυτό που μπορώ πραγματικά να αλλάξει εδώ; Τι πρέπει να αλλάξει; ΟΜΙΛΗΤΗΣ 26: Θα πρέπει πρώτα να αλλάξετε τον αριθμό των κουκκίδων μέγιστη στην αρχη. Γιατί αν κάνουμε 10 τελείες, πρόκειται να χρειαστεί έως και την κλίμακα. BRIAN SCASSELLATI: Ναι. Έτσι, τώρα έχω το είδος του καλωδιωμένη να κάνει πάντα δύο τελείες στην αρχή και πάντα κάνει οκτώ τελείες στο τέλος. Θέλω να χτίσει ένα άλλο βρόχο, έτσι δεν είναι; Επειδή δεν θέλω να δημιουργήσετε μόνο μία εικόνα λαγουδάκι, Θέλω να οικοδομήσουμε 10 λαγουδάκι εικόνες. Γι 'αυτό πρέπει να οικοδομήσουμε μια άλλη θηλιά, και όπως έχω περάσει από αυτό το βρόχο, Θέλω να αλλάξω το πόσα τελείες μπορώ να εκτυπώσω στην αρχή και πόσα σημεία μπορώ να εκτυπώσω στο τέλος, βάσει της οποίας κύκλο μέσα από τη θηλιά Ειμαι μεσα. Εντάξει. Ας πάρει ένα άλλο μετρητή. Κάποιος είπε πριν j, έτσι θα κάνουμε ένα άλλο ι. Και τώρα, θα πάμε να οικοδομήσουμε ένα άλλο για το βρόχο. Τι συμβαίνει μέσα σε αυτό το βρόχο; Αυτή η ουσία πρέπει να πάει στο εσωτερικό του βρόχου, έτσι δεν είναι; Μήπως το λαγουδάκι έχει για να πάει μέσα στο βρόχο; Χρειάζομαι ένα λαγουδάκι καθένα από αυτά τα 10 καρέ; Κοινό: Αμέ. BRIAN SCASSELLATI: Ναι. Θέλω ένα λαγουδάκι σε κάθε των 10 καρέ, έτσι δεν είναι; Τι λέτε για τις κουκίδες σε το τέλος, χρειάζομαι αυτό; ΕΝΤΆΞΕΙ. Έτσι, Πάω να εσοχή όλα αυτά. Πάω να προβάλει το σύνολο των αυτό, και θα πάω να χτυπήσει Tab. Και αυτό πρόκειται να τους ωθήσει σε όλη την λίγο, έτσι ώστε να είναι εύκολο για μένα για να δούμε τι είναι στο βρόχο. Και τότε εγώ θα το τελειώσω. Ας πουμε. ΕΝΤΆΞΕΙ? Τώρα, σε αυτό το βρόχο ότι Είμαι building-- κραυγών, κάνουν ότι έτσι μπορείτε να see-- Έχω πάγκο μου j. Θα άρχισε στο 0. Πόσες φορές δεν θέλω να περάσει μέσα από αυτό το βρόχο; Κοινό: 10 φορές. BRIAN SCASSELLATI: 10 φορές. Έτσι, ποιος είναι ο αριθμός πρέπει να βάλω εδώ; Κοινό: 9, 10. BRIAN SCASSELLATI: 9, 10, Κάποιος πρέπει να πει 11, σωστά; Ήθελα δύο τελείες πριν και να θέσει i λιγότερο από 2. Ήθελα οκτώ κουκκίδες, Έβαλα εγώ μικρότερη από 8. Τώρα θέλω να πάω μέσα από 10 φορές, έτσι έβαλα ι λιγότερο than-- Κοινό: 10. BRIAN SCASSELLATI: 10. Εκεί πάμε. Και τι μπορώ να κάνω στο τέλος να ι; ++, Θα αυξήσετε. ΕΝΤΆΞΕΙ. Τώρα, εδώ είναι το δύσκολο μέρος, ό, τι είναι πρόκειται να συμβεί τώρα αν το κάνω αυτό; Θα πάω να εκτυπώσετε 10 καρέ; ΟΜΙΛΗΤΗΣ 27: Νομίζω όλοι θα είναι το ίδιο. BRIAN SCASSELLATI: Θα όλοι είναι το ίδιο, έτσι δεν είναι; Επειδή όλα αυτά συνεχίζονται να βάλει δύο τελείες στην αρχή. Αλλά εγώ δεν τα θέλουν όλα να έχουν δύο τελείες η αρχή. Πόσες κουκίδες κάνω θέλουν από την αρχή; Κοινό: Αλλαγή. BRIAN SCASSELLATI: Ι θέλουν να αλλάξουν, έτσι δεν είναι; Έτσι, αυτό που έχω εδώ που αλλάζει κάθε φορά που ο βρόχος περνά μέσα; Κοινό: Αριθμός τελείες, j. BRIAN SCASSELLATI: ι, ο αριθμός των κουκκίδων. Έτσι μπορώ να αλλάξω αυτό να είναι ι. Την πρώτη φορά μέσω της βρόχου, τι είναι αυτό που θα είναι; Τι μπορώ να ρυθμίσω ι να σε πρώτη; Κοινό: 0. BRIAN SCASSELLATI: Πώς, λοιπόν, πολλοί φορές θα πάω να το κάνω αυτό; 0. Τη δεύτερη φορά μέσα από το βρόχο, j του πρόκειται να είναι 1 γιατί το αυξήσετε. Πόσες κουκίδες θα πάω να εκτυπώσετε; 1. Την τρίτη φορά μέσω του βρόχου, πόσα σημεία θα πάω να εκτυπώσετε; Κοινό: Τρία. BRIAN SCASSELLATI: ι θα είναι 3. Πόσες κουκίδες θα πάω να εκτυπώσετε; Ω, συγγνώμη, ι πρόκειται να είναι 2. Πόσες κουκίδες θα πάω να εκτυπώσετε; Κοινό: 2. BRIAN SCASSELLATI: 2. Εντάξει, έτσι Πάω να κρατήσει προσαύξηση ότι όσο προχωράμε. Πόσο περίπου κάτω από; Τι συμβαίνει εδώ κάτω; Δεν θέλω πάντα 8 στο τέλος πια; ΟΜΙΛΗΤΗΣ 28: 10. BRIAN SCASSELLATI: Θέλω 10 κουκκίδες; Θέλω να αλλάξουμε και εμείς. Λοιπόν, πώς μπορώ να θέλετε να αλλάξετε; Κοινό: [δεν ακούγεται]. BRIAN SCASSELLATI: Λοιπόν, αν μου έχουν πέντε κουκκίδες στην αρχή, πόσα κουκίδας μπορώ να πάρω στο τέλος; Κοινό: Πέντε. BRIAN SCASSELLATI: Αν έχω έξη κουκκίδες στην αρχή, πόσα μπορώ να πάρω στο τέλος; Κοινό: Τέσσερις. BRIAN SCASSELLATI: Αν Πήρα από επτά τελείες στην αρχή, πόσα μπορώ να πάρω στο τέλος; Κοινό: Τρία. BRIAN SCASSELLATI: Αν έχω πήρε ι κουκίδες στην αρχή, πόσα μπορώ να πάρω στο τέλος; 10-j. ΕΝΤΆΞΕΙ. Οπότε ας προσπαθήσουμε αυτό έξω. Έτσι, Πάω να αποθηκεύσετε το πρόγραμμα λαγουδάκι μας. Για άλλη μια φορά θα σμίκρυνση. Θα πάει κάτω στο τερματικό μας. Θα το καθαρίσει. Και μεγέθυνση. Θα κάνει το πρόγραμμά μας λαγουδάκι, και πάλι. Και θα το εκτελέσει. Ωχ. Περίμενε, ας σμίκρυνση. Μήπως να πάρω 10 καρέ; Λοιπόν, πόσα κουνελάκια βλέπω εκεί πάνω; 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Πήρα 10 καρέ. Είναι όλοι το ίδιο; Κοινό: Ναι. Κανένα. BRIAN SCASSELLATI: Όχι. Η πρώτη ένα, το λαγουδάκι είναι μακριά στα αριστερά. Και εδώ, το λαγουδάκι είναι πολύ σχετικά με το ΟΜΙΛΗΤΗΣ 29: Δεξιά. BRIAN SCASSELLATI: Έτσι, τι έκανε ξεχάσω να κάνω; ΟΜΙΛΗΤΗΣ 30: Ξεκινήστε μια νέα γραμμή. BRIAN SCASSELLATI: Ξέχασα για να ξεκινήσετε μια νέα γραμμή, και πάλι. Ίδιο λάθος που έκανα πριν. Εντάξει, ας πάμε το διορθώσουμε. Τώρα, έχω ακόμα τον κωδικό εκεί για να κάνει μια νέα γραμμή. Γιατί δεν λειτουργεί; ΟΜΙΛΗΤΗΣ 31: Δεν είναι μέσα στο βρόχο. BRIAN SCASSELLATI: Ω, δεν είναι μέσα στο βρόχο. Σωστά. Είναι κάθεται έξω εδώ. Και ο βρόχος for είναι το παν ότι είναι μέσα σε αυτό το κείμενο. Έτσι, Πάω να κινηθεί Αυτό εσωτερικό του για το βρόχο. Και εγώ θα Tab μπροστά του για να δείχνουν ότι είναι στο σωστό μέρος. Και τώρα, εμείς θα το αποθηκεύσετε ξανά. Θα σμίκρυνση. Θα περάσουμε στο τερματικό μας. Μεγέθυνση. Θα ξανακάνω πρόγραμμα λαγουδάκι μας. Και τώρα, τώρα έχουμε 10 καρέ μας. [Χειροκρότημα] BRIAN SCASSELLATI: OK. So. Εδώ είναι τοποθετημένος μας για βρόχους. Ήμασταν σε θέση να παράγει στην εσωτερικός βρόχος πόσα σημεία που ήθελα για την εκτύπωση στην αρχή, στο τέλος. Και ελέγχεται ο εξωτερικός βρόχος πόσα καρέ ήμουν κτίριο. Ξεκινήσαμε με ένα μικρό πυρήνα του προβλήματος, και φτιάξαμε έξω από εκείνο το σημείο. Εντάξει. Ας κάνουμε ένα ακόμη βήμα. Είστε έτοιμοι? Υπάρχει ένα πράγμα εδώ, όπου έχουμε πραγματικά είδος πήρε μεγαλύτερη πολυπλοκότητα ό, τι χρειαζόμαστε. Ας ρίξουμε μια ματιά. Έτσι, στο πρόγραμμα λαγουδάκι μας, αν σμίκρυνση εδώ, Να κάνω πραγματικότητα κάποια από τα ίδια πράγμα ξανά και ξανά. Τι μπορώ να κάνω αυτό είναι το είδος του το ίδιο πράγμα επαναλαμβάνεται δύο φορές; ΟΜΙΛΗΤΗΣ 32: Εκτυπώστε τις τελείες. BRIAN SCASSELLATI: Ναι Έχω εκτύπωση αυτών των στιγμών δύο φορές. Πραγματικά, θα έπρεπε να είχα Αυτό το σχόλιο εδώ κάτω. Μπορώ να εκτυπώσω κάποιες κουκκίδες στο αρχίζει, ακριβώς εδώ. Και τότε μπορώ να εκτυπώσω κάποιες τελείες στο τέλος. Και εγώ το είδος του ακριβώς το ίδιο πράγμα. Τι θα πάμε να ξεκινήσετε που εργάζονται για τις επόμενες εβδομάδες είναι σε θέση να λάβει τα εν λόγω τμήματα του κώδικας που χρησιμοποιούμε ξανά και ξανά, και μέσω μιας διαδικασίας κάλεσε την αφαίρεση, θα πάμε να τους τραβήξει έξω και γράψτε τους μία φορά, έτσι ώστε να μπορέσουμε στη συνέχεια επαναχρησιμοποίηση τους ξανά και ξανά. Οπότε ας προσπαθήσουμε αυτό. Έτοιμοι; Εμείς πάμε για να πάρει αυτό το μπλοκ του κώδικα. Και Πάω να το πάρετε από εκεί. Και Πάω να define-- κάτω στο κάτω μέρος, Πάω να γράψω μια νέα λειτουργία. Δεν πρόκειται να επιστρέψει τίποτα. Και Πάω να το ονομάσουμε printDots. Είναι πρόκειται να πάρει ένα επιχείρημα, ότι ένας ακέραιος λέει howManyDots θα πρέπει να εκτυπώσετε. Και τώρα, αντί της εκτύπωσης ι τελείες, εγώ θα εκτύπωση πω howManyDots θα πρέπει να εκτυπώσετε. Και υπάρχει ένα μικρό πρόβλημα εδώ. Ξέρει κανείς τι είναι; Τι πρέπει να απαριθμείται στο σημείο αυτό ότι δεν είναι καθορισμένοι; Κοινό: [δεν ακούγεται] BRIAN SCASSELLATI: Καλά πώς πολλές τελείες ορίζεται μέχρι εδώ, αλλά είμαι χρησιμοποιώντας αυτή τη μεταβλητή i. Έτσι, Πάω να πάρει αυτή τη μεταβλητή i και πάω να την ορίσουμε κάτω εδώ αντ 'αυτού. Έτσι τώρα πρόκειται να stay-- ουπς, Πήρε την caps lock για somehow-- είμαι πρόκειται να κρατώ τα κάτω εδώ. Έτσι τώρα εδώ είναι λίγο μου λειτουργία ή υπο-ρουτίνα, και λέει, πόσα σημεία θα πάω να εκτυπώσετε; Και αυτό θα περάσει μέσα από αυτό το βρόχο και εκτυπώσετε ξανά και ξανά. Τότε μπορώ να τροποποιήσει το πρόγραμμά μου εδώ. Και τι έκανε καλώ ότι η λειτουργία; printDots. Έτσι θα καλέσω printDots. Πόσες κουκίδες θέλω να εκτυπώσετε την πρώτη φορά πριν από το λαγουδάκι; Κοινό: ι. BRIAN SCASSELLATI: ι. Πόσες κουκίδες θέλω να εκτυπώσετε Στο τέλος, μετά το λαγουδάκι; 10-j. Και υπάρχει ένα πράγμα είμαι λείπει. Όπως είδατε στη διάλεξη σήμερα, θα πάμε να δηλώσει printDots ψηλά για να δώσει το πρωτότυπο. ΕΝΤΆΞΕΙ. Έτσι, αυτό που έχω κάνει είναι που έχω προσπαθήσει να απομονώνει αυτό επαναχρησιμοποιούνται μέρος του κώδικα ότι έχω κάνει ξανά και ξανά. Και έχω προσπαθήσει να το τραβήξει έξω, έτσι ώστε όλα αυτά περιέχονται σε ένα μέρος. Με αυτόν τον τρόπο, αν έχω ένα λάθος κάπου, Έχω μόνο να το φτιάξω σε ένα σημείο. Εντάξει. Ας το αποθηκεύσετε. Και ας βεβαιωθείτε ότι λειτουργεί. Ας πάμε έξω. Θα πάει και πάλι στο τερματικό μας. Θα μεγέθυνση. Θα κάνουμε αυτή την διαδικασία λαγουδάκι. Ω. Και αυτό μου έδωσε μια προειδοποίηση. Τι είναι αυτό μου λέει; Καλά σε οποιοδήποτε από αυτά φορές, θέλετε πάντα για να μετακινηθείτε προς τα επάνω με την πρώτη κιόλας error-- τώρα σε αυτό το σημείο, έχω μόνο μία. Μου λέει στο bunny.c, on line 8, 9 στήλη, υπάρχει ένα πρόβλημα. Λέει, έχετε δηλώσει αυτή μεταβλητή i και δεν έχουν χρησιμοποιηθεί. Τώρα κανονικά, αυτό είναι δεν είναι το χειρότερο σφάλμα. Αυτό είναι εύκολο να καθοριστεί. Και στην πραγματικότητα, μπορούμε να πάμε πίσω στο. Μπορούμε να πάμε πίσω στο λαγουδάκι. Και σε αυτή την περίπτωση, όλοι εμείς έχετε να κάνετε είναι να απαλλαγούμε από i, γιατί δεν χρησιμοποιείτε i κατά κύριο πια. Είμαστε απλά χρησιμοποιώντας εντός υπο-ρουτίνα μας. Ας σώσει αυτό. Εμείς θα πάμε πίσω. Και μεγέθυνση. Θα για άλλη μια φορά κάνει λαγουδάκι. Και εκεί πάλι είναι 10 καρέ μας. ΕΝΤΆΞΕΙ. Κάθε φορά που σας δίνεται α procedure-- Ναι. ΟΜΙΛΗΤΗΣ 33: Έχω a-- Έχω μπερδευτεί. Μπορείτε να πάτε πίσω στον κώδικα; BRIAN SCASSELLATI: Ναι. ΟΜΙΛΗΤΗΣ 33: Έτσι, όταν έγραψε πρωτότυπο σας, το επιχείρημα σας είχε ονομάσει ονομαζόταν howMany; Αλλά, below-- BRIAN SCASSELLATI: Ω ναι. ΟΜΙΛΗΤΗΣ 33: τα --called κάτι διαφορετικά, δεν καταλαβαίνω. BRIAN SCASSELLATI: Γιατί είναι διαφορετικά. Οπότε αυτό είναι ένα μεγάλο ερώτημα. Έτσι, το ερώτημα ήταν, μέχρι εδώ, έγραψα howMany, και κάτω από, έγραψα howManyDots. Ο λόγος είναι ότι σε πρωτότυπο σας, ότι είναι στην πραγματικότητα δεν δίνουν προσοχή με τα ονόματα που βάζετε στο. Το μόνο που νοιάζεται πραγματικά για είναι ότι είναι ένας ακέραιος. Θέλει να ξέρει τη μορφή από ό, τι βάζετε στο. Τώρα stylistically-- oops-- τι πρέπει να κάνουμε, είναι να μου αρέσει να κάνω αυτά τα ματς. ΕΝΤΆΞΕΙ. Διότι αυτό θα πρέπει να το κρατήσει πιο εύκολο για μένα να θυμηθώ. Αλλά αυτό ήταν το λάθος μου Ναι. ΟΜΙΛΗΤΗΣ 34: Και έτσι για το πρωτότυπο να εργαστούν, μόνο γράφοντας αυτή τη γραμμή, γράφοντας το πρωτότυπο, επιτρέπει τη λειτουργία αυτή που έρχεται ακριβώς από κάτω για να μεταβείτε στο τέλος και να ανακτήσετε τι σημαίνει αυτό; BRIAN SCASSELLATI: Τι σημαίνει είναι όταν ο compiler περνάει, πηγαίνει από την κορυφή του κωδικό σας προς τα κάτω. Και τι είναι αυτό το πρωτότυπο είναι, είναι βασικά μια υπόσχεση. Λέει, εκεί πρόκειται να είναι μια συνάρτηση που ορίζεται κάπου. Είναι πρόκειται να είναι ονομάζεται printDots. Και πρόκειται να λάβει ένα επιχείρημα ότι πρόκειται να είναι ένας ακέραιος και πρόκειται να επιστρέψει τίποτα, άκυρο τύπο. ΕΝΤΆΞΕΙ. Σας υπόσχομαι ότι πρόκειται να είναι ορίζεται κάπου κάτω από το δρόμο. Αλλά κάθε φορά που βλέπετε ότι, καθώς πηγαίνετε προς τα κάτω για όλη την υπόλοιπη μου Η κύρια λειτουργία, θέλω να αντιμετωπίζει αυτό ως συνάρτηση ότι χρειάζεται μία είσοδο ακέραιο. Και έτσι, όταν ο compiler κατεβαίνει μέσω αυτού, βλέπει αυτή την υπόσχεση. Και όταν κατεβαίνει, θα κρατά, συνεχίζει να πηγαίνει, διαπιστώσει την πρώτη φορά printDots αναφέρεται. Και λέει, Ω, δίνετε μένα αυτό j. ι είναι ένας ακέραιος. Καλά που μου υποσχέθηκε ότι θα είναι ένας ακέραιος και αυτό είναι σωστό. Δεν πειράζει. Και στη συνέχεια, τέλος, κάτω στο κάτω μέρος, πριν φτάσω στο τέλος της μου αρχείο, κάνω καλό στην υπόσχεσή μου και εγώ την ορίζουν. ΕΝΤΆΞΕΙ? ΟΜΙΛΗΤΗΣ 35: Λοιπόν, αυτό το saves-- πρόγραμμα θα σώσει κενά ότι θα πάει πίσω και να γεμίζει στο τέλος; BRIAN SCASSELLATI: Δεν είναι σχετικά με την κατανομή της μνήμης. Είναι πραγματικά ακριβώς για τι Τύπος Σας περιμένουμε για να δούμε. Σε περίπτωση που αυτό το πράγμα έχει ένα επιχείρημα, ή πέντε επιχειρήματα; Θα πρέπει να έχουν το ακέραιοι είναι του έχουν ανατεθεί, ή χορδές; Αυτό είναι όλο αυτό που ψάχνει να κάνουμε είναι να ελέγχει, Τα μου η χορήγηση σωστό είδος του επιχειρήματος. ΕΝΤΆΞΕΙ? Εντάξει. Επιτρέψτε μου να σας αφήσω με ένα άλλο κομμάτι για να δούμε. Τέχνη ASCII δεν είναι το μεγάλο μοντέλο των κινουμένων σχεδίων όπως είναι σήμερα. Αλλά μερικοί άνθρωποι φυσικά να πάρουμε τα πράγματα και σπρώξτε στα άκρα τους. Αυτό είναι, όπως αποδείχθηκε David σε διάλεξη, ένα κομμάτι του κώδικα ότι θα πρέπει σε καμία περίπτωση προσπαθήστε να αντιγράψουν τους εαυτούς σας. Επειδή είναι τρομερό στυλιστικά. Στην πραγματικότητα, έχει σχεδιαστεί για να είναι όσο δύσκολο όσο το δυνατόν για να διαβάσετε. ΕΝΤΆΞΕΙ. Έτσι, για να κάνουμε και πάλι, ας μεγέθυνση εδώ. Πάω να φύγω τώρα, αλλάξτε κατάλογο. Πάω να ανεβεί ένα επίπεδο, πίσω στο χώρο εργασίας μου. Τότε θα αλλάξει σε αυτό τον κατάλογο άλλο κατάλογο που έχω δημιουργήσει. Και αυτό είναι το Διεθνές Ασαφή C Προγραμματισμός Διαγωνισμός. Ασαφή μέσα τόσο σκληρά όσο το δυνατόν να καταλάβει. Επομένως, σας παρακαλώ, δεν πρέπει να φοβάται αν κοιτάξετε σε αυτό και να πάει, δεν μπορώ να διαβάσω αυτό. Αυτό είναι το σημείο αυτό. ΕΝΤΆΞΕΙ? Όμως, έχουμε αυτό θαυμάσιο πρόγραμμα που είμαι πρόκειται να δούμε από πληκτρολογώντας απλά περισσότερο. Και ας δούμε αν μπορώ να σμίκρυνση μόλις λίγο, ώστε να μπορείτε να το δείτε Και αυτό είναι το πρόγραμμα. Είναι το όνομα endo.c. Και μοιάζει αυτή κουβά με είδος των γραμμάτων F-L-U-I-D σε αυτό. Αυτό είναι στην πραγματικότητα ένα πρόγραμμα. Είναι γραμμένο στην πιο σκοτεινή τρόπο ότι οι συγγραφείς θα μπορούσαν, ενδεχομένως, γράψε το. Αλλά είναι ένα υπέροχο μικρό κομμάτι που παράγει ένα μοντέλο ρευστοδυναμικής. Και έτσι θα πάμε για να δώσει ότι το μοντέλο μία είσοδο μοιάζει με αυτό, από ένα staired σετ δοχείων με κάποιο υγρό, κάποια υγρό, στην κορυφή. Και θα έχουμε την προσομοίωση τι συμβαίνει σε αυτό. Έτσι, θα καλέσω την εν λόγω λειτουργία, ενδο. Και εγώ θα το δώσει ότι αρχείο εισόδου που είχα. Και υπάρχει επιτομή μας τέχνη ASCII. Ένα πλήρες υγρό δυναμικός προσομοιωτής τρέχει μέσα σε λίγες γραμμές κώδικα. Τώρα τι είναι πραγματικά πολύ εκπληκτικό σχετικά με αυτό το μικρό πρόγραμμα είναι ότι θέλω να το σταματήσει τώρα, έτσι Πάω να χρησιμοποιήσει ό, τι εντολή; Κοινό: Control-C. BRIAN SCASSELLATI: Control-C. ΕΝΤΆΞΕΙ. Γι 'αυτό θα χρησιμοποιήσει Control-C. C Αυτό θα το σταματήσει. Θα καθαρίσει και πάλι. Και τώρα Πάω να επικαλεστεί το πρόγραμμα, την εκτέλεση του προγράμματος, χρησιμοποιώντας το ίδιο ως είσοδο. Και θα δούμε τη δυναμική του υγρού προσομοίωση να λιώνει. ΕΝΤΆΞΕΙ. Παρακαλώ μην αφήσετε αυτό το πρόγραμμα να είναι το πράγμα που σας μπερδεύει. Είναι ακριβώς έτσι ώστε να μπορούμε να καταλήξουν σε κάτι δροσερό και ενδιαφέρουσα. ΕΝΤΆΞΕΙ. Καλή τύχη με το πρόβλημά σας σύνολα. Θα χαρούμε να απαντήσουμε ερωτήσεις μετά το μάθημα. Ευχαριστώ πολύ, παιδιά.