[ΜΟΥΣΙΚΗ ΠΑΙΖΟΝΤΑΣ] DAVID MALAN: Εντάξει αυτό είναι CS50 και αυτό είναι το τέλος της εβδομάδας ένα. Έτσι θα ήθελα να εισαγάγει πρώην μου advisee, Andel Duff, ο οποίος όχι μόνο κάνει iPhone 5 ξεχωρίζει, καθώς αυτό αναλόγιο, κάνει επίσης τα αυτοκίνητα. ANSEL DUFF: Πώς πάει, όλοι; Θέλω μόνο να σας πω μια μικρή bit για το Formula SAE, της οποίας είμαι ο καπετάνιος. Είναι μια ομάδα του MIT. Θέλω μόνο να σας πω παιδιά λίγο γι 'αυτό και ελπίζω να δημιουργήσει κάποιο ενδιαφέρον. Έτσι, επιτρέψτε μου να τρέχει μέσα από ένα δυο πράγματα για την ομάδα μας. Έτσι, είμαστε εντελώς πορεία των φοιτητών, όπου όλοι του σχεδιασμού των μελών, προσομοίωση, δοκιμή, και τον κατασκευαστή ένα υποσύστημα του αυτοκινήτου. Έχουμε το δικό μας μηχανουργείο και γκαράζ, και N52-- ή συγγνώμη, N51-- το οποίο είναι το ίδιο κτίριο όπως το Μουσείο Επιστημών του ΜΙΤ. Και εμείς οι άνθρωποι που οδηγούν το αυτοκίνητο. Υπάρχει ένας εθνικός διαγωνισμός στην αρχή του καλοκαιριού, και, στη συνέχεια, υπάρχουν μικρότερα πέναλτι αγώνες όλο το χρόνο. Και τότε θα κάνουμε την εκπαίδευση των οδηγών ημέρες για να πάρει νέα μέλη γνωρίσουν. Ημέρες κατασκευής μας είναι σε Σάββατο από τις 11 π.μ. έως τις 20:00. Το μεσημεριανό γεύμα και το δείπνο φροντίζοντας της, από Bertucci και Beantown αντίστοιχα. Έχουμε μια εβδομαδιαία συνάντηση και σεμινάριο, το οποίο είναι για την πορεία της πιστοληπτικής ικανότητας. Ποια είναι νέο από αυτό το εξάμηνο, και θα είναι επίσης για το επόμενο εξάμηνο, έτσι ώστε να μπορούν να διασχίσουν-reg για αυτό. Και στη συνέχεια, έχουμε το σχεδιασμό, κατάστημα, και ημέρες CAD κατά τη διάρκεια της εβδομάδας, ενώ τα μέλη θα είναι ανεξάρτητα Μέρη CAD, stock προκειμένου et cetera. Έτσι, για την ηλεκτρική μηχανικής στην ομάδα έχουμε ελκτική μας, σύστημα υψηλής τάσης, που τρέχει σε ένα ονομαστικό 300 βολτ, η οποία περιλαμβάνει κινητήρες, οι ελεγκτές κινητήρα, και μπαταριών. Στη συνέχεια, έχουμε ένα χαμηλό τάση συστήματος, το οποίο τρέχει σε 12 βολτ, η οποία περιλαμβάνει ελέγχους, ΜΠΟΡΕΙ κόμβοι, τον εγκέφαλο box, και το ταμπλό. Όσον αφορά CS πηγαίνει, κάνουμε έχουν συντήρησης ιστοσελίδα ότι χρειάζεται να γίνει για εκδηλώσεις, συμμετοχή αλλαγές, νέες εικόνες και υλικό PR. Και τότε έχουμε κώδικα που ελέγχει την αυτοκινήτου για το σύστημα ελέγχου πρόσφυσης μας, έναρξη τον έλεγχο, τον έλεγχο παύλα, ροπή διανυσματοποίηση, και την αναγεννητική συστήματα πέδησης, η οποία τρέχει συνήθως σε MATLAB, Simulink, και LabView. Να σας πω λίγο για το αυτοκίνητο. Γι 'αυτό είναι περίπου 500 κιλά. Είναι κανόνες που περιορίζεται σε 85 κιλοβάτ. Διαθέτει 2 EMRAX 207 κινητήρες το πίσω, ένα για κάθε τροχό. Έχει custom-built μπαταριών από την πρισματική κύτταρα Α123 θήκη, συνολικού ύψους 300 βολτ και 5.6 κιλοβατώρες. Και αυτό είναι άμεση κίνηση με μια αναλογία 2,64 έως 1 μονάδα. Εδώ είναι μερικές εικόνες που πήρε από το σε ανταγωνισμό. Εδώ είναι ο κώνος πλάτη, τη μύτη, και εδώ είναι οι κινητήρες, εκείνα τα μεγάλα μαύρα δίσκους κάτω από το et mens manus. Εδώ είναι μια διαφάνεια που τράβηξα από καθεστώς ανταγωνισμού μας. Και αυτό είναι μόνο συγκρίνοντας το αυτοκίνητό μας σε ένα ζευγάρι των εμπορικά διαθέσιμων αυτοκινήτων, όπως η KTM XBOW, Ariel Atom, και Caterha M 7-280. Αν είστε εξοικειωμένοι με την τιμή, εξουσία τραβήξτε το βάρος, δολάρια ανά ίππο, δολάρια ανά ροπή, και το αυτοκίνητό μας όλα αυτά φυσά έξω από το νερό. Εάν έχετε οποιεσδήποτε ερωτήσεις, σημειώνω αυτή τη διεύθυνση ηλεκτρονικού ταχυδρομείου. Πυροβόλησε μας ένα email στο fsae@mit.edu. Είμαστε στην ευχάριστη θέση να μιλήσει για κάτι που θα θέλατε. Φοιτητές του Χάρβαρντ είναι το είδος της μειονότητας για την ομάδα του. Εάν έχετε οποιεσδήποτε ερωτήσεις σχετικά με ότι μπορείτε να κάνετε πυροβολούν μας ένα e-mail, στην ευχάριστη θέση να μιλήσει, και να πάω να το κεφάλι πίσω πάνω στον David. Ευχαριστώ. Το εκτιμώ, παιδιά. [Χειροκρότημα] DAVID MALAN: Ansel πέρασε το καλοκαίρι εργάζονται μαζί μας εδώ στην πανεπιστημιούπολη στο CS50 αυτό το καλοκαίρι. Και εκτός από την εργασία για τα πράγματα όπως τα δυαδικά λαμπτήρες, στην πραγματικότητα άνοιξε πραγματικά μας eyes-- και το δικό μου σε particular-- σε ό, τι πραγματικά τη διασταύρωση των όχι υλισμικού και λογισμικού μπορεί να είναι. Στην πραγματικότητα πολλά από τα πράγματα που μόλις περιόδευσαν σας μέσω είναι τελικά δημιουργήθηκε για πρώτη φορά το λογισμικό, και, στη συνέχεια, τελικά κατασκευάζονται στον πραγματικό κόσμο στο hardware. Έτσι, αν σας ενδιαφέρει εξερευνώντας αυτή τομή, ίσως αναλάβει αυτή την ομάδα. Τώρα, εν τω μεταξύ, όσοι από εσάς οι οποίοι είναι λάτρεις της τεχνολογίας, και τα προϊόντα της Apple σε Συγκεκριμένα γνωρίζουμε ότι υπάρχει ήταν ένα ζευγάρι από ανακοινώσεις χθες. Αλλά σκεφτήκαμε να δείξουμε Είσαι ένας που βγήκε λίγες ημέρες πριν ότι μπορεί να μην έχετε δει. JORGEN EGHAMMER: Ξέρετε, φορά σε λίγο κάτι που έρχεται αλλάζει τον τρόπο που ζούμε. Μια συσκευή τόσο απλή και διαισθητική χρησιμοποιώντας αισθάνεται σχεδόν οικεία. Παρουσιάζοντας 2015 Κατάλογος ΙΚΕΑ. Δεν είναι ένα ψηφιακό βιβλίο ή ένα e-book, είναι ένα βιβλίο-book. Το πρώτο πράγμα που πρέπει να σημειωθεί είναι όχι καλώδια, ούτε καν ένα καλώδιο τροφοδοσίας. Το 2015 Κατάλογος IKEA είναι πλήρως φορτισμένη, και η διάρκεια ζωής της μπαταρίας είναι αιώνια. Η διεπαφή είναι 7,5 με 8 ίντσες, αλλά μπορεί να επεκταθεί σε 15 από 8 ίντσες. Η πλοήγηση γίνεται με βάση την απτική επαφή τεχνολογία που μπορείτε πραγματικά να αισθάνονται. Το περιεχόμενο έρχεται προ-εγκατεστημένο με 328 σελίδες υψηλής ευκρίνειας από πρωτότυπες ιδέες σπίτι επίπλωση. Για να ξεκινήσετε την περιήγηση, απλώς αγγίξτε και σύρετε. Από δεξιά προς αριστερά για να προχωρήσουμε προς τα εμπρός, αριστερά προς τα δεξιά για να μετακινηθείτε προς τα πίσω. Παρατηρήστε κάτι άλλο; Αυτό είναι σωστό. Δεν lag. Κάθε πεντακάθαρα σελίδα φορτία ακαριαία, δεν έχει σημασία πόσο γρήγορα θα μετακινηθείτε. Αν θέλετε να πάρετε μια γρήγορη επισκόπηση, Απλά κρατήστε το στην παλάμη του χεριού σας, και χρησιμοποιώντας μόνο τον αντίχειρά σας, ταχύτητα περιηγηθείτε στο περιεχόμενο. Εάν βρείτε κάτι που θέλετε να αποθηκεύσετε για αργότερα, μπορείτε απλά να το σελιδοδείκτη. Και ακόμα και αν κλείσετε την εφαρμογή, μπορείτε εύκολα να βρείτε ξανά το σελιδοδείκτη. Amazing. [Γέλια] [Χειροκρότημα] Και αυτό μας φέρνει στο το τέλος της εβδομάδας ένα. Τώρα λίγες ανακοινώσεις. Έτσι τομής είναι τώρα σε εξέλιξη. Πηγαίνετε σε αυτό το URL εδώ κάποια στιγμή μεταξύ σήμερα και την Παρασκευή το μεσημέρι να καθορίσετε πραγματικά αν είστε μεταξύ εκείνων λιγότερο άνετα, πιο άνετο, ή κάπου στο ενδιάμεσο. Αυτό είναι συνήθως ένα από αυτά πράγματα που μπορείτε ακριβώς το είδος του ξέρουν. Και στην πραγματικότητα, όσοι από εσάς είναι λιγότερο άνετα ίσως γνωρίζετε τόσο πολύ, όσοι από εσάς είναι πιο άνετο γνωρίζουμε ως πολύ, και πάλι, αν δεν είστε αρκετά βέβαιοι οποία αυτών των κάδων θα πέσουμε είστε πιθανότατα κάπου στο μεταξύ. Αλλά να είστε σίγουροι μπορείτε να ανταλλάξετε μετά από μερικές εβδομάδες, αν παραστεί ανάγκη. Εν τω μεταξύ, για την ερχόμενη εβδομάδα δεν αρχίσουμε τμήματα per se, αλλά σούπερ τμήματα, τα οποία είναι ανοικτή σε όλους τους φοιτητές. Αυτή την Κυριακή στην περιοχή για να θα ανακοινωθούν στην ιστοσελίδα του μαθήματος θα έχουμε ένα για τις λιγότερο άνετα, καθώς και μία για εκείνοι πιο άνετα. Και εκείνοι κάπου ανάμεσα μπορούν να επιλέξουν ποια από αυτά τα δύο, ή και τα δύο, αν θέλετε, να καθίσετε στο. Και το επίκεντρο εκείνων θα είναι τελικά σε C, η οποία θα συνεχίσει να μας συνομιλία του σήμερα. Πρόβλημα που εν τω μεταξύ είναι 0 ελπίζουμε στα χέρια σας. Επισήμως οφείλεται αύριο, Πέμπτη το μεσημέρι. Αν δεν έχετε μετρητά σε ένα 5 τελευταίες μέρες σας, πράγμα που θα φέρει μέχρι την Παρασκευή το μεσημέρι. Πρόβλημα που 1 εν τω μεταξύ θα είναι αναρτηθεί στην ιστοσελίδα του μαθήματος. Και αυτό θα είναι το πρώτο μας επιδρομή ως τάξη σε C. Και αυτό το πρόβλημα που spec θα σας καθοδηγήσει με πολλά από τα μηχανική του τι αρχίσαμε να μιλάμε για τη Δευτέρα, και εμείς θα συνεχίσουμε να μιλάμε για το σήμερα. C, το Linux, το CS50 συσκευής, όλα αυτά θα σας περιμένουν στην προδιαγραφή. Οι ώρες λειτουργίας εν τω μεταξύ είναι σε εξέλιξη, σε προπτυχιακό τραπεζαρία. Επικεφαλής σε αυτή τη διεύθυνση URL εδώ για να δείτε το προγραμματίσει για απόψε και αύριο, αν θα θέλατε να συμμετέχετε. Ερωτήσεις Εν τω μεταξύ, έτσι ώστε να έχουν την ευκαιρία να κάνουν ερωτήσεις ασύγχρονα, 24/7, συνειδητοποιούν είστε δεν περιορίζεται σε τμήματα και γραφεία ώρες, αλλά μάλλον αυτό το εργαλείο Εδώ, CS50 Συζητήστε σε αυτό το URL θα είναι σε απευθείας σύνδεση του μαθήματος ανακοινώσεων λογισμικό του σκάφους, μέσω του οποίου μπορείτε να κάνετε ερωτήσεις των συμμαθητές και το προσωπικό. Έτσι, έχετε κατά νου ότι πόρου, καθώς και. Εν τω μεταξύ, μια παράδοση ξεκινά την ερχόμενη Παρασκευή. Όπως μπορεί να έχετε πάρει μια γεύση από βίντεο teaser της περασμένης Τετάρτης, έχουμε μια παράδοση πιο κάθε Παρασκευή κατά τη διάρκεια από τη λήψη περίπου 50 μαθητές και του προσωπικού σε ένα τοπικό εστιατόριο που ονομάζεται Fire and Ice, στην οποία είμαστε συνήθως ενώνονται με μερικούς αποφοίτους ή τους φίλους σας από τη βιομηχανία σε γενικές γραμμές φιλοδοξούν να κάνει μια μεγάλη κατηγορία αισθάνονται μικρότερη. Έτσι, αυτό είναι ένα εντελώς απλό γεύμα. Μια δέσμη από εμάς, το προσωπικό ιδιαίτερα, θα παίξει μουσικές καρέκλες και να συνομιλήσετε με τους μαθητές για 50, η ζωή έξω από το 50, ζωή στο μέλλον, το πραγματικό κόσμο, Μιλώ για ευκαιρίες απασχόλησης με φίλους στη βιομηχανία. Έτσι, αν θα θέλατε να ενωθούν μαζί μας αυτή την Παρασκευή, το κεφάλι σε αυτό το URL εδώ. Ο χώρος είναι περιορισμένος, αλλά θα το κάνουμε αυτό recurringly καθ 'όλη τη διάρκεια. Επικεφαλής εκεί να cs50.harvard.edu/rsvp. Και αν δεν έχετε σε αυτή τη φορά, για να μην ανησυχείτε. Εμείς θα το κάνουμε και πάλι σε τις επόμενες εβδομάδες, καθώς και. Έτσι, αυτή είναι η εικόνα βάψαμε την περασμένη εβδομάδα, και έχετε πιθανώς ασχολείται με την μέχρι στιγμής. Αλλά ας προσπαθήσουμε να συνδέσετε αυτό τώρα σε αυτό που πάμε να κάνουμε σήμερα και μετά. Θα μπορούσα να έχω έναν εθελοντή; Εντάξει, ή αρκετά. Πόσο περίπου εδώ για το τέλος, το μπλε πουκάμισο. Έλα πάνω, ποιο είναι το όνομά σας; ALANA: Αλάνα. DAVID MALAN: Αλάνα. Έτσι Αλάνα, μόνο για ένα moment-- nice to meet Εσύ-- πρόκειται να παίξει το ρόλο αυτής της λειτουργίας εδώ. Το πορφυρό τετράγωνο έχουμε που ονομάζεται μέχρι σήμερα λειτουργία. Λοιπόν, τι Πάω να πάει μπροστά εδώ και προσφέρουν Αλάνα είναι μια μικρή ετικέτα ονόματος, να κάνει σαφές ποιο ρόλο παίζετε. Έτσι θα πρέπει να είναι το μπλοκ ας πούμε. Αν θέλετε να πάτε μπροστά και να βάλουμε αυτό. Και θα πάμε να κρατήσει αυτό το σούπερ απλό. Αν ο στόχος είναι στο χέρι απλά τώρα να εφαρμόσει με Alana, αυτό το λεγόμενο λένε μπλοκ, εδώ είναι το πώς πρόκειται να λειτουργήσει. I have-- ας το ονομάσουμε ένα επιχείρημα ή μια παράμετρο, Είναι πραγματικά ακριβώς ένα κενό φύλλο χαρτιού. Και αυτό είναι λευκό για το είδος του να θυμίζει του λευκού πλαισίου μέσα στο οποίο θα μπορεί να γράψει τα λόγια. Εν τω μεταξύ, είμαι πρόκειται να πάει εδώ. Πάω να προχωρήσει και γράφετε H-Ε-Ε-Ε-O κόμμα κόσμο. Και τώρα, όπως λένε τον προγραμματιστή, δεν πραγματικά γνωρίζουν πώς να πω κάτι. Μπορώ να καταλήξει με τις λέξεις, αλλά εγώ δεν κάνω απαραίτητα γνωρίζουν πώς να εκφραστώ προφορικά ή στην οθόνη. Και έτσι τι Πάω να κάνετε είναι να πάρετε αυτό το κομμάτι της λειτουργικότητας, των οποίων input-- ή επιχείρημα, όπως θα την αποκαλούμε, Έχω γράψει για αυτό το κομμάτι της paper-- και πάω να το αναθέσουν σε τρίτους. Και πράγματι αυτό είναι το ρόλο που διαδραματίζουν λειτουργίες σε μια γλώσσα προγραμματισμού μπορεί να παίξει. Κάτι σαν το λόγο μπλοκ μπορεί να αναθέσει σε εξωτερικούς συνεργάτες σε κάποιον που πραγματικά ξέρει ό, τι αυτός ή αυτή είναι να μιλάμε για. Έτσι, αν θα βήμα πάνω εδώ μόνο για μια στιγμή, Πάω να περάσει αυτήν την είσοδο Αλάνα, και σας ζητάμε να πω αυτή την είσοδο. ALANA: Hello, world. DAVID MALAN: Αυτό είναι. Έτσι ώστε να υπάρχει μία λειτουργία. Τώρα μπορούμε να το πάρει λίγο περισσότερο, μπορούμε να κάνουμε ένα βήμα προς τα εμπρός εδώ. Επειδή αυτό ήταν σαφώς απογοητευτικό. Ας τώρα να μετατρέψει αυτό σε κάτι λίγο πιο πολύπλοκα. Έτσι, αυτό φυσικά είναι δική μας εκδοχή C. Έτσι τώρα, αν θέλετε να πάρετε ότι εφάπαξ, η ετικέτα ονόματος off, και ας το έχετε βάλει σε ένα νέο όνομα. Αλλά ουσιαστικά είστε παίζει τον ίδιο ρόλο, ακριβώς έτσι συμβαίνει να να ονομάζεται printf τώρα. Η ιστορία είναι, φυσικά, πρόκειται να είναι-- πιθανώς ακριβώς όπως underwhelming-- είναι πρόκειται να είναι η ακόλουθη. Είστε πλέον η printf λειτουργία. Είμαι ο καλών ή ο προγραμματιστής, ο οποίος θέλει να σταθεί στους ώμους του οι άνθρωποι στο παρελθόν, όπως και εσείς, που έχουν ήδη βρει τον τρόπο πραγματικά να γράψετε κάτι κάτω. Και έτσι αυτή τη φορά, αντί να πω ότι ας πραγματικά χρησιμοποιείτε την οθόνη μας εδώ. Έτσι, αν θέλετε να εντείνουν εδώ, θα πάω να περάσει και πάλι αυτό ως είσοδος σε φίλο printf μου. Αν θα μπορούσε να προχωρήσει και εκτύπωση που εμφανίζεται στην οθόνη, απλά σχεδιάζοντας με σας δάχτυλο στη μαύρη οθόνη. Εξαιρετική. Εντάξει, έτσι ώστε πολλά από αγωνία για πώς ότι επρόκειτο να παίξει έξω. Έτσι τώρα ας πάρουμε τα πράγματα ένα τελική εγκοπή, αν μπορούσαμε, ως εξής. Έτσι, αυτό είναι ένα πρόγραμμα C όπως είπαμε και την προηγούμενη φορά. Και αυτό κάνει ακριβώς ό, τι έκανε, εκτυπώνει στην οθόνη, γεια σου, τον κόσμο. Ακόμα κι αν υπάρχει σαφώς μια πολύ αποσπούν την προσοχή από πράγματα εκεί. Αλλά ας πάρουμε τα πράγματα επάνω μια εγκοπή και εισαγάγει αυτήν την έκδοση, που θυμίζουν Ήταν η τρίτη εκδοχή ότι καταλήξαμε με την τελευταία φορά. Και τώρα υπάρχει σαφώς δύο χρήσεις της printf. Υπάρχουν 2 κλήσεις προς Αλάνα σε αυτή την περίπτωση για την printf, αλλά υπάρχει επίσης μια κλήση σε μια άλλη λειτουργία. Τι είναι αυτή η λειτουργία σαφώς; GetString. Μπορούμε να έχουμε μια πιο εθελοντής; Εντάξει, έλα επάνω. Ποιο είναι το όνομά σου; JAVIER: Javier. DAVID MALAN: Javier, έλα επάνω. Έτσι, ο ρόλος Javier είναι σε αυτό το κομμάτι χαρτί. Ποια Πάω να καλέσετε γενικά s. Τώρα αυτό είναι μια μεταβλητή, είναι τύπου string, όπως υπονοείται από την εν λόγω δεύτερη γραμμή στη μέση εκεί. Και θα ήθελα να πάω να μου ένα string. Συγκεκριμένα το κεφάλι κάτω για να την ορχήστρα τμήμα και να μου το όνομα κάποιου, και να επανέλθει με μια μεταβλητή που περιέχει την αξία αυτή. Μπορεί να είναι κάποιος που θέλετε. Εδώ πάμε. Εντάξει, Javier είναι γράφοντας το όνομα. Εντάξει. Μπορούμε όλοι πιθανώς μαντέψει πώς αυτό πρόκειται να παίξει έξω. Είμαστε ίσως το βασανίζω το σημείο από ό, τι είναι μια λειτουργία που κάνει, αλλά παρ 'όλα αυτά σας ευχαριστώ πολύ. Έτσι Javier έχει επιστρέψει αυτή τη σειρά εδώ, η οποία, δεν μπορούν να καταλάβω, Jonathan είναι το string ότι έχουμε πάρει. Μέχρι τώρα αυτό που είμαι πραγματικά συμβαίνει να παρέχουν στην Αλάνα αν Είναι κάτι λίγο διαφορετικό. Επειδή σε αυτή την έκδοση του πρόγραμμα, πρώτα υπάρχει αναφέρετε το όνομά σας. Έτσι, το πρώτο επιχείρημα Θα πρέπει να παρέχουν Αλάνα με πρόκειται να είναι αναφέρει κυριολεκτικά το όνομά σας. Εντάξει, τόσο απλό Θα παραδώσει σε εσάς. Και όπως έχω γράψει μέχρι το επόμενο επιχείρημα, αν θέλω να πάω μπροστά και να γράψω αυτό στον πίνακα, ας πάμε μπροστά και να κάνουμε το τελευταίο παράδειγμα εδώ για να σαφές τι είναι τελικά πήρε να συμβεί. Έτσι αναφέρετε το όνομά σας, γράψετε προς την κορυφή αν δεν σας πειράζει, απλά έτσι ώστε να έχουμε περιθώρια για μία δεύτερη γραμμή. Επειδή το τελευταίο πράγμα που θα πάω να σας παρέχουν τώρα με δεν είναι μία, αλλά δύο κομμάτια του χαρτιού. Εντάξει. H-E-L-L-Ο κόμμα και στη συνέχεια μια κενή γραμμή. Έτσι, αυτό που είμαι έτοιμος να παραδώσει Αλάνα τώρα Είναι κάτι λίγο διαφορετικό. Δεν είναι μόνο ότι όλο αυτό, όπου συμπληρώστε το κενό αντιπροσωπεύει ότι percent-- ποια ήταν η κράτησης θέσης που έχουμε χρησιμοποιήσει; Ναι, έτσι τοις εκατό s. Εν τω μεταξύ, Πάω να περάσει της σε ένα δεύτερο επιχείρημα, το οποίο Είναι ακριβώς ό, τι Javier ανακτώνται από Jonathan. Έτσι, επιτρέψτε μου να σας δώσω αυτά τα δύο. Εάν θέλετε να, να προχωρήσει και εκτύπωσης που ισχύ. Τι τελικά συμβαίνει τώρα είναι, Αλάνα πάλι παίζει το ρόλο της printf. Javier έπαιζε ο ρόλος της GetString. Έτσι, ότι θα είναι σουβενίρ σας. Και τελικά τι συμβαίνει, παρά Αυτό hello-- yep προχωρήσει και κόμμα. ALANA: Μήπως λάβω αυτό ακόμα ή όχι; DAVID MALAN: Ναι, μπορείτε έλαβαν και τα δύο ταυτόχρονα. Έτσι, η ιδέα είναι ότι μπορείτε μπορούν τώρα να αναστρέψετε τη σελίδα να χειριστεί το δευτερόλεπτο αυτών των δύο εισόδων. Έτσι, αυτό είναι μόνο για να καταστήσουμε σαφές το επισημάνω ότι ενώ Αλάνα εκτελούνται αυτή η πράσινη γραμμή εδώ, και στη συνέχεια, Javier έκανε αυτό για εμάς και να επιστρέψει σε μένα κάτι θα καλέσουμε s, αλλά ήταν πραγματικά μόνο αυτό το κομμάτι χαρτί της δικής του. Και τώρα Αλάνα έχει κάνει αυτή η τρίτη γραμμή. Και παρόλο που όλα αυτά φαίνεται τόσο απίστευτα αινιγματική ίσως με την πρώτη ματιά, είναι πραγματικά Είναι τόσο απλό. Περνώντας εισόδους γύρω, να πάρει τα αποτελέσματα, είτε που φυσικά επιστραφεί κάτι, ή να δει μια παρενέργεια όπως αυτό. Κάτι οπτικά γραμμένο στην οθόνη. Ας πάμε μπροστά και να Ευχαριστώ Αλάνα και Javier, που ήταν εδώ κάτω, για ένταξή μας εδώ. [Χειροκρότημα] Έτσι, τώρα ας ρίξουμε δεδομένο πόσο απλή όλα αυτά θα μπορούσε να είναι. Και ας προχωρήσουμε στην πραγματικότητα κάνει κάτι σε πραγματικό κώδικα. Έτσι, στην οθόνη εδώ είναι ένα screenshot του λεγόμενου συσκευή CS50. Και αν έπρεπε να σε, ως 14:00, την Τετάρτη το απόγευμα, εξηγήσει σε κάποιο φίλο τι η συσκευή CS50 είναι, πώς θα το ορίσετε σε μια πρόταση; Κάθε μία φράση; Ναι; ΦΟΙΤΗΤΗΣ: Είναι σαν ένα πρόγραμμα που καθιστά τον υπολογιστή του καθενός τρέχουν με το ίδιο σύστημα. DAVID MALAN: Good! Είναι ένα πρόγραμμα που δίνει τη δυνατότητα σε όλους του υπολογιστή για να τρέξει με το ίδιο σύστημα. Είναι το είδος της δικής σας αντίγραφο του λειτουργικού σύστημα που συμβαίνει σε να ονομάζεται Ubuntu Linux. Και αυτό λειτουργεί αποτελεσματικά στο εσωτερικό της ένα παράθυρο για τη δική σας Mac ή PC, έτσι ώστε με τον τρόπο αυτό το δικαίωμα από την πύλη στην εβδομάδα 1, όλοι εδώ στην τάξη έχει πρόσβαση στα ίδια εργαλεία, η ίδια διαμόρφωση, και δεν υπάρχει συγκεκριμένη καμπύλη μάθησης σε ένα Mac ή ένα PC ειδικότερα. Τώρα έχουμε ανοίξει, μέσα από το CS50 συσκευής, τη Δευτέρα, το πρόγραμμα εδώ. Συμβαίνει να ονομάζεται gedit. Αλλά αυτό είναι πραγματικά μόνο ένα γραφικό επεξεργαστή. Είναι κάτι όπως το σημειωματάριο ή Κείμενο Επεξεργασία σε Windows ή Mac OS αντίστοιχα. Και πρότεινα ότι υπήρχαν στην πραγματικότητα τρία σημαντικά μέρη σε αυτή την οθόνη. Η επάνω πλευρά είναι όπου μπορείτε θα γράψετε τον κωδικό σας. Και αυτό είναι όπου περάσαμε πολύ από μας τρία παραδείγματα σε διάλεξη της Δευτέρας. Το κάτω μέρος που ονομάζεται αυτό, αυτό το μαύρο παράθυρο, ναι; ΦΟΙΤΗΤΗΣ: Compiler; DAVID MALAN: Compiler μας προσπελαστεί μέσω του εν λόγω παραθύρου. Αλλά γενικότερα. Ναι, αυτό ήταν απλώς ένα παράθυρο τερματικού. Αυτή είναι μια εποχή παλιά όρο ότι μόνο περιγράφει ουσιαστικά μια αναβοσβήνει προτροπή, ότι πριν από χρόνια χρησιμοποιείται για να είναι σε μία από αυτές τις μεγάλες οθόνες CRT στυλ. Αλλά στις μέρες μας είναι είδος του εικονικού σε λογισμικό. Και τα παράθυρα τερματικού ας είναι μαζί μας πληκτρολογήσετε εντολές. Είναι το είδος του απλοποιημένη έκδοση της διεπαφής χρήστη ή UI. Δεν είναι μια γραφική διεπαφή χρήστη ή GUI, είναι μια διεπαφή που βασίζεται σε κείμενο ή ένα περιβάλλον γραμμής εντολών. Και πράγματι αυτό είναι που τελικά Ήμουν σε θέση να γράψει λίγο κώδικα. Μόλις είχα γράψει κάποιο κώδικα όμως, Υπενθυμίζουμε ότι χρησιμοποίησα αυτή την εντολή. Και δεδομένου ότι το όνομα είδος του προτείνει, αυτό επιτρέπει μου να κάνω μια πρόγραμμα που ονομάζεται Hello. Αλλά τι πραγματικά κάνουν; Καλά κάνουν έπαιρνε μου εισόδου, μου τον πηγαίο κώδικα, και μετατρέποντας σε ό, τι, τελικά; Κωδικός αντικειμένου. Και αντικειμενικού κώδικα είναι μόνο ένα φανταχτερό τρόπος για να πούμε μηδενικά και μονάδες. Και στη συνέχεια μία φορά θέλησα για να εκτελέσετε αυτόν τον κώδικα αντικειμένου, μία φορά θέλησα να περάσει ως συμβολή αυτών μηδενικά και αυτοί στο χρήστη του υπολογιστή μου εγκεφάλου, η λεγόμενη CPU ή κεντρική μονάδα επεξεργασίας, Έπρεπε να τρέξει το πρόγραμμα. Αλλά δεν ήταν αρκετά απλή τη Δευτέρα όπως ακριβώς το διπλάσιο πατώντας κάποιο εικονίδιο. Τι αντίθετα δεν έχω να κάνουμε, προκειμένου να εκτελέσετε ένα πρόγραμμα; Ποια ήταν η δεύτερη εντολή; Ακούω λίγο καθέτους; Ναι, ναι; ΦΟΙΤΗΤΗΣ: Dot κάθετο και το όνομα του προγράμματος. DAVID MALAN: Ακριβώς. Dot κάθετο και το όνομα του προγράμματος. Τώρα τι αυτό σημαίνει; Λοιπόν τελεία είναι απλά μια απόκρυφη τρόπο του λέγοντας τρέχοντα κατάλογο. Όποια και αν είναι φάκελος θα είναι σε είναι αναφέρεται ως, αναπαρίσταται ως τελεία. Η κάθετος είναι ακριβώς αυτό που έχετε δει σε Mac OS και Windows για χρόνια, Είναι ένα διαχωριστικό μεταξύ ενός καταλόγου ή το φάκελο και το υπόλοιπο κάποιο όνομα. Στα Windows αυτό συμβαίνει για να πάει προς τα πίσω, στο Linux και Mac OS συμβαίνει να πάει προς τα εμπρός. Αλλά αυτό είναι ακριβώς το διαχωριστικό, έτσι ώστε να είναι απλά μια πληκτικός συντακτική λεπτομέρεια. Το ζουμερό μέρος του μαθήματος είναι το όνομα του προγράμματος, Hello. Και αυτό είναι ό, τι κάνουν δημιούργησε για εμάς. Είναι εξάγεται το αρχείο μας. Αλλά πώς φτάσαμε σε αυτό το σημείο; Ας τώρα να ζητήσει από το ερώτημα, τι ήταν στην πραγματικότητα συμβαίνει εδώ, τουλάχιστον με όσον αφορά ορισμένες από αυτή τη σύνταξη; Έτσι, σε μια φράση ή έτσι, πώς να εξηγήσουμε μακριά αυτή η πρώτη γραμμή που είναι τονίζεται στο πράσινο; Ποια ήταν η πρώτη γραμμή κάνει, σε σχέση με το πρόγραμμα μου; Ναι; ΦΟΙΤΗΤΗΣ: [δεν ακούγεται]. DAVID MALAN: Πες το ξανά; ΦΟΙΤΗΤΗΣ: Συμπεριλαμβανομένων και τη λήψη παρελθόν λειτουργίες [δεν ακούγεται]. DAVID MALAN: Καλή. Συμπεριλαμβανομένων, εγώ δεν θα πω τη λήψη, αλλά ας πούμε συμπεριλαμβανομένων και των λειτουργιών που οδηγεί τους ανθρώπους έχουν γράψει στο παρελθόν. Και αυτές οι λειτουργίες υλοποιούνται κάπου στον υπολογιστή μου. Κάποιος έγραψε ένα αρχείο χρόνια πριν, και ότι το αρχείο είναι κάπου στο εσωτερικό του CS50 συσκευής ή στο σκληρό δίσκο μου γενικότερα. Και έτσι αυτή η γραμμή ουσιαστικά λέει, πηγαίνετε να βρείτε το αρχείο, πρότυπο I / O dot h, και αντιγραφή και επικόλληση του περιεχομένου της εδώ στην κορυφή του αρχείου μου έτσι ώστε να μην χρειάζεται να το κάνουμε αυτό με το χέρι μου. Και μεταξύ των juiciest κομμάτια στο εσωτερικό της ότι το αρχείο που ισχυρίστηκε ήταν ποια λειτουργία; Ποια ήταν η λειτουργία λέμε κηρύχθηκε ή αναφέρονται σε standard I / O dot h πιο πιθανό; Printf, σωστά; Εμείς δεν γράφουν printf για Κυριακή, απλά υπήρχε. Μοιάζει πολύ με Αλάνα απλά ήρθε επάνω στη σκηνή και αυτή ακριβώς υπήρχαν και ήξερε πώς να συντάξει κάτι στην οθόνη, έτσι δεν υπάρχει printf για πολλά χρόνια. Και έτσι αυτό είναι το πώς θα έχει πρόσβαση. Τώρα, αν προχωρήσουμε εδώ, κύριος ήταν ανάλογη μας είπε στο κομμάτι του παζλ καλείται όταν πατηθεί πράσινη σημαία στον κόσμο του Scratch. Είναι ακριβώς το είδος του προεπιλεγμένο όνομα που οι άνθρωποι αποφάσισε να αντιπροσωπεύουν το προεπιλεγμένο σημείο εισόδου σε ένα πρόγραμμα. Το κομμάτι του κώδικα προγραμματισμού ότι παίρνει εκτελείται για πρώτη φορά. Εν τω μεταξύ, αυτά τα άγκιστρα είναι κάτι σαν το καμπύλο σχήμα από πολλές από αυτές τις κίτρινες μηδέν κομμάτια. Είναι το είδος των εμπεριέχουν μια ολόκληρη δέσμη των οδηγιών μαζί. Γι 'αυτό ακριβώς το είδος της συνδέει κάποια σχετική λειτουργικότητα. printf φυσικά είναι μια λειτουργία που Εκτυπώνει την οθόνη, όπως ακριβώς έκαναν. Τι γίνεται με αυτές τις παρενθέσεις; Πώς θα define-- ακόμα κι αν έχετε ποτέ προγραμματιστεί πριν, αλλά βασίζεται μόνο τώρα σε μια αύξηση ελπίζω διαίσθηση, τι οι παρενθέσεις κάνουν για μας εδώ; Ή τι είναι αυτό που περιβάλλει; Ναι; ΦΟΙΤΗΤΗΣ: Λένε ό, τι θα πάμε για να εκτυπώσετε με printf. DAVID MALAN: Ναι, λένε ό, τι θα πάμε για να εκτυπώσετε με printf. Ή γενικότερα, είναι γύρω από τις εισόδους στη λειτουργία. Έτσι, μπορείτε σχεδόν να σκεφτείτε των εν λόγω παρενθέσεις ως σαν το μέταλλο κλιπ για αυτό το πρόχειρο. Είναι αυτό που κρατάει, είναι ό, τι είναι πρόκειται να χρησιμοποιηθεί για να παρέχει επιχειρήματα σε λειτουργία, η οποία σε αυτή την περίπτωση ονομάζεται printf. Έτσι, σε γενικές γραμμές σχεδόν κάθε φορά καλούμε μια συνάρτηση, πρόκειται να δούμε ένα ζευγάρι παρενθέσεων. Ίσως κάτι σε αυτό, όπως τώρα, ίσως και τίποτα σε αυτό. Αλλά αυτό είναι όπου θα βάλετε οι είσοδοι ή των λεγόμενων επιχειρήματα σε μια λειτουργία. Εδώ είναι ένα τέτοιο επιχείρημα. Έχω τόνισε πάντα ανάμεσα στα εισαγωγικά, επειδή αποδεικνύεται σε αυτή τη γλώσσα που ονομάζεται C, όταν θέλετε να αντιπροσωπεύουν ένα string-- ότι είναι μια λέξη ή μια φράση ή ακόμα και ένα paragraph-- θα πρέπει να περιβάλλουν με διπλά εισαγωγικά. Δεν μονά εισαγωγικά, διπλά εισαγωγικά. Και αυτό είναι ακριβώς ό, τι έχω κάνει εδώ. Εν τω μεταξύ, υπάρχει μια funky σύμβολο προς το τέλος εκεί. Το backslash n. Τι μπορούμε να πούμε ότι εκπροσωπούνται; Ναι; ΦΟΙΤΗΤΗΣ: Μια νέα γραμμή. DAVID MALAN: Νέα γραμμή. Δεξιά, δεν το κάνετε γενικά πατήστε Enter όταν θέλετε το πρόγραμμα να φτύσει μια νέα γραμμή. Μάλλον θα το πω ρητά με αυτήν την ομολογουμένως απόκρυφες κομμάτι της σύνταξης, backslash n, ότι θέλετε μια νέα γραμμή για να πάει εκεί. Τέλος, η άνω τελεία. Δεν είχαμε πραγματικά να μιλήσω πάρα πολύ γι 'αυτό, και τώρα αυτό θα είναι ο όλεθρος των μερικών της ύπαρξής σας για το πρώτο πρόβλημα που, όταν μπορείτε απλά απέτυχε να συνειδητοποιήσει έχετε ξεχάσει κάτι τόσο ηλίθιο ως ένα ερωτηματικό. Και γενικά βάζοντας Θα υπάρχει διορθώσετε αυτό το πρόβλημα. Αλλά τι είναι αυτό που κάνει για μας, θα λέγατε; ΦΟΙΤΗΤΗΣ: [δεν ακούγεται]. DAVID MALAN: Συγγνώμη; ΦΟΙΤΗΤΗΣ: [δεν ακούγεται]. DAVID MALAN: Τελειώνοντας μια δήλωση. Είναι κάπως σαν την περίοδο σε το τέλος του μια αγγλική φράση, ενώ σε αυτή τη γλώσσα C που είναι τελειώνει μια δήλωση. Η διδασκαλία του προγραμματισμού κώδικα που απλά θέλετε να πείτε, Είμαι κάνει με αυτό. Τώρα παρατηρήσετε ότι είναι ο μόνος εδώ. Έτσι δεν θέλετε να έρθετε σε μια συνήθεια να θέτει ερωτηματικά μετά από κάθε κλειστή παρένθεση. Για παράδειγμα, δεν υπάρχει καμία δίπλα στο άκυρη, και θα επανέλθω στο μέλλον σε ποιο κενό μέσα. Αλλά σε αυτή την περίπτωση printf σας είναι ένα λειτουργία, ή δήλωση που χρησιμοποιείται, και έτσι θέλουμε να έχουμε ότι άκρο στο τέλος της. Και είμαι σκόπιμα να πάρει την C. Και ειλικρινά πολλές γλώσσες όπως η C, C ++, Java, JavaScript, και οποιοδήποτε αριθμό των άλλες γλώσσες έχουν πολλά από αυτά το είδος των συντακτικών λεπτομέρειες. Αυτό σίγουρα, αν είστε νέοι στην προγραμματισμός μπορεί να σας ταξίδι πραγματικά επάνω. Και εσείς θα σηματοδοτήσει μου λόγια, κάποιοι από εσάς θα έχουν αυτή την εμπειρία σε ώρες γραφείου ή αργά τη νύχτα εργάζονται για κάποιο p-set, όπου καταραμένο πρόγραμμα σας απλά δεν συγκεντρώνουν, δεν τρέχει, έχετε καμία ιδέα για το τι είναι λάθος, φαίνεται εντελώς λογικά σωστή για σας. Και αυτό συμβαίνει γιατί έχετε ξεχάσει κάτι σαν χτύπημα ένα ερωτηματικό στο τέλος κάποιας γραμμής. Αλλά αυτά είναι τα είδη των πραγμάτων είστε Θα μάθετε αμέσως να δείτε. Και πράγματι, αυτά είναι τα πράγματα ότι και TF είναι η Καλιφόρνια έχουν έχουν το είδος των εκπαιδεύονται για να δείτε πολύ πιο γρήγορα από ό, τι μπορείτε. Και αυτό είναι μόνο για να πω, όπως σας βουτιά στο πρόβλημα που ειδικά 1, μην απογοητευτείτε από αυτά τα πράγματα. Μόλις το είδος του εγκλιματιστεί στον κόσμο, σας αρχίσετε να βλέπετε τα πράγματα που μπορεί να μην δείτε την πρώτη ματιά αυτή η πρώτη εβδομάδα. Έτσι πηγαίο κώδικα είναι κάτι τέτοιο. Θέλουμε να το δώσετε σε το λεγόμενο compiler. Και ότι compiler ως είπαμε παρέχει έξοδο γνωστή ως αντικειμενικού κώδικα, η λεγόμενες μηδενικά και μονάδες. Αλλά από εκεί, τι μας δίνουν; Καλά μας δίνει αυτά τα πρότυπα. Και πάλι τον υπολογιστή σας, Intel σας μέσα, καταλαβαίνει αυτά τα πρότυπα από μηδενικά και μονάδες. Και μερικές φορές το μοτίβο αντιπροσωπεύει ένα πραγματικό δεκαδικό αριθμό όπως είδαμε την περασμένη εβδομάδα, μερικές φορές αντιπροσωπεύει ένα γράμμα όπως είδαμε την περασμένη εβδομάδα, μερικές φορές αντιπροσωπεύει μια εντολή, όπως εκτύπωση κάτι στην οθόνη. Έτσι printf για instance-- αλλά, επιτρέψτε μου προς τα πίσω. Έχουμε ήδη λάβει ως δεδομένο ότι τα μηδενικά και αυτά είναι που παράγεται από αυτό το make εντολή. Αλλά κάνουν δεν είναι ένα compiler. Κάντε δεν είναι το πράγμα στη μέση αυτό είναι που παράγουν τα μηδενικά και μονάδες. Αντί να είναι απλά μια πολύ βολική ονομάζεται το πρόγραμμα του οποίου σκοπός στη ζωή είναι ουσιαστικά να καταλάβω πώς να καταρτίσει το πρόγραμμά σας. Και εμείς να το χρησιμοποιήσετε σε αυτά πρώτες εβδομάδες, επειδή ακριβώς μας σώζει πολλά προβλήματα. Αλλά αυτό που κάνει είναι πραγματικά να κάνει κατά τη μεταγλώττιση γεια, είναι, όπως είπαμε και την προηγούμενη φορά, είναι ψάχνει στο σκληρό σας δίσκο ή στον τρέχοντα φάκελο, για αρχείο που ονομάζεται τι, προφανώς; Hello.c, σωστά; Αυτό είναι ακριβώς το είδος της σύμβασης. Είναι αυθαίρετο, αλλά αυτός είναι ο τρόπος που τα πράγματα είναι. Βεβαιωθείτε, αν απλά καθορίσετε το όνομα ενός προγράμματος που δεν υπάρχει ακόμα, πρόκειται να ψάξουν για τον πηγαίο κώδικα σε ένα αρχείο, εξ ορισμού σημαίνει hello.c. Και αν διαπιστώσει, μεγάλη. Είναι πρόκειται να μετατρέψει την πηγή κώδικα σε κώδικα αντικειμένου για εσάς. Αλλά κάθε φορά που έχω να πατήσετε το Enter μετά το τρέξιμο κάνει γεια, Θυμάστε να δει τελευταία φορά αρκετά μακρύ και αινιγματική ακολουθία από άλλα λευκά γράμματα και χαρακτήρες στην οθόνη; Λοιπόν αυτή ήταν η πραγματική εντολή, η πραγματική compiler, που έτρεχε. Έτσι, η πραγματική compiler θα χρησιμοποιήσει το μεγαλύτερο μέρος της το εξάμηνο είναι κάτι που ονομάζεται κλαγγή. Μερικοί από εσάς μπορεί να χρησιμοποιηθεί Visual Studio πριν, ή GCC, ή οποιοδήποτε αριθμό άλλων compilers. Θα χρησιμοποιήσουμε το κουδούνισμα. Και κλαγγή μας επιτρέπει πραγματικά να μετατρέψει ότι ο πηγαίος κώδικας να αντιταχθεί κώδικα. Τι σημαίνει αυτό στην πραγματικότητα σημαίνει αυτό στην πράξη; Λοιπόν επιτρέψτε μου να πάω σε ένα από τα φακέλους μου από την τελευταία φορά. Στο εσωτερικό της συσκευής CS50. Και επιτρέψτε μου να πάει μπροστά και να δημιουργήσει αυτό ίδιο αρχείο, περιλαμβάνουν πρότυπο I / O dot h. Int κύρια κενό. Και θα επανέλθουμε στο μέλλον ως σε ό, τι int μέσα και ποιες κενό μέσα. Αλλά για τώρα ας κάνουμε hello world backslash n, ακριβώς όπως κάναμε και στο διοικητικό συμβούλιο. Επιτρέψτε μου να αποθηκεύσετε αυτό το αρχείο ονομάζεται hello.c. Και τώρα, αν θέλω να συντάξει αυτό I could-- επιτρέψτε μου να zoom in-- τρέξιμο να γεια εισάγετε. Και αυτό ήταν και πάλι ότι πολύ αινιγματικό γραμμή. Αλλά τώρα τουλάχιστον μία λέξη πιθανώς πηδά έξω σε σας. Clang είναι ότι η γραμμή που είδαμε πριν. Τώρα υπάρχουν πολλά άλλα πράγματα ειλικρινά ότι θα κύμα τα χέρια μας στο σήμερα. Αλλά υπάρχουν μερικά υποσύνολα, μερικοί χαρακτήρες εδώ που παρουσιάζουν ενδιαφέρον. Αλλά Πάω να πάει μπροστά και να κάνουμε αυτό. Πάω στην πρώτη εκτέλεση Γεια σας, απλά για να αποδείξει ότι αυτό λειτουργεί όπως ήταν τη Δευτέρα. Αλλά τώρα Πάω να διαγράψετε το πρόγραμμα. Και σαν είχαμε αυτά σύντομα ονόματα για τελευταία φορά, η εντολή για την απομάκρυνση κάτι που είναι rm, αφαίρεση, εισάγετε. Θα πάμε για να πάρει κάποια αρκετά αινιγματικά ερωτήματα. Δύσκολο να πιστέψει κανείς ότι μπορείτε να κάνετε ακόμα και αυτή η ερώτηση είναι δύσκολο να καταλάβει. Αλλά αφαιρέσετε τακτική γεια αρχείο μόνο μέσα θέλετε να διαγράψετε ένα γεια. Και μπορώ να πάω μπροστά και πληκτρολογήστε y για ναι, Enter, και τώρα θα φύγει. Τι σημαίνει αυτό τώρα, αν μπορώ να σβήσω την οθόνη μου, είναι ότι αντί κάνει να hello-- σας ξέρετε τι, είμαι πάρει καλή σε αυτό. Πάω να τρέξει ο ίδιος τον compiler. Δεν χρειάζεται κάποιο πρόγραμμα για να καταλάβω τι αρχείο μου ονομάζεται. Έγραψα hello.c, I ξέρω τι λέγεται, Είμαι σαφώς σε θέση να πληκτρολογήσετε αυτό. Έτσι, Πάω να πάει μπροστά και δεν κλαγγή hello.c Enter. Φαίνεται να λειτουργεί. Και δεν υπάρχει κανένα πρόσθετο έξοδο, γιατί κλαγγή είναι ο compiler. Είναι αυτό που είναι η μετατροπή πηγαίο κώδικα σε μηδενικά και μονάδες. Έτσι, αν το κάνω τώρα dot κάθετο γεια Enter, hm. Νέο μήνυμα σφάλματος σήμερα. Έτσι bash είναι μόνο το όνομα του αναβοσβήνει εντολών που χρησιμοποιείτε. Αυτή είναι μια πρόχειρη υπεραπλούστευση, αλλά για τώρα που είναι όλα αυτά είναι, είναι η προτροπή που αναβοσβήνει. Και γι 'αυτό φωνάζει σε μας. Δεν υπάρχει τέτοιο αρχείο ή κατάλογος είναι λίγο πιο απλή. Αλλά σίγουρα έχω κάνει αυτόν τον κώδικα αντικειμένου. Αλλά η σύλληψη είναι, ότι αν πληκτρολογήσετε την εντολή για να δείτε τα περιεχόμενα αυτής της κατάλογο, η οποία είναι ό, τι; ls για τη λίστα. Υπάρχουν ένα σωρό πράγματα εδώ, μερικά από τα οποία ήρθε με τη συσκευή, όπως το φάκελο Desktop μου, Λήψεις φάκελο, φάκελο Dropbox, και όλες αυτά τα πράγματα. Αλλά αυτό που είναι ενδιαφέρον είναι hello.c, η οποία I δημιουργήθηκε πριν από ένα χρόνο με το gedit. Και ποιο είναι το πιο περίεργο αναζητούν όνομα εδώ, ίσως γιατί δεν το έκανε δείτε την τελευταία φορά σε όλα; a.out, σωστά; Έτσι, πίσω στην ημέρα, το ήταν μόλις αποφάσισε ότι, όταν θα καταρτίσει ένα πρόγραμμα για πρώτη φορά, και δεν καθορίσετε το όνομα ενός αρχείου, ας το call. Και a.out σημαίνει ακριβώς αυτό ήταν η έξοδος του μεταγλωττιστή. Έτσι, αυτό είναι ένα φρικτό όνομα για ένα πρόγραμμα. Αλλά με αυτή τη λογική, dot κάθετος για τρέχοντα κατάλογο, κάθετο a.out, θα πρέπει να σημαίνει ότι δεν υπάρχει στην πραγματικότητα μου hello world πρόγραμμα. Τώρα, μια μικρή προθέρμανση άσκηση, πάρα πολύ. Αν θέλετε να μετονομάσετε αυτό αρχείο, αποδεικνύεται ότι μετακινήσετε ένα αρχείο από ένα όνομα στο άλλο. Έτσι mv a.out, και στη συνέχεια θα μπορείτε να καλέσετε γεια Enter. Έτσι, αυτό είναι μια εντολή Linux. DOS είχε εδώ και χρόνια, Τα Windows διαθέτουν ένα παράθυρο τερματικού από κάποιο είδος που μοιάζει όπως αυτή, Linux και Mac υπολογιστές έχουν αυτή αναβοσβήνει γραμμή. Ακόμα κι αν οι περισσότεροι από εμάς ίσως σπάνια, αν όχι ποτέ, να το χρησιμοποιήσετε. Ό, τι έχω κάνει, αλλά εκτελείται μια προγράμματος, του οποίου το όνομα είναι mv, και έχω παρέχονται με δύο επιχειρήματα, να το πω έτσι. Δύο είσοδοι. a.out είναι το αρχικό όνομα. Γεια σας είναι το νέο όνομα. Έτσι, αν κάνω τώρα dot κάθετος Γεια σας, Enter, ότι υπάρχει. Και αν κάνω dot κάθετος a.out, τι περιμένεις πρέπει να δω; Bash, δεν υπάρχει τέτοιο αρχείο ή κατάλογος. Επειδή ακριβώς μετονομαστεί. Έτσι, αυτό παίρνει ένα κομμάτι της να συνηθίσει. Αλλά το πρόβλημα που 1 προδιαγραφή πραγματικά θα κρατήστε το χέρι σας μέσα μέρος αυτής της minutae. Επειδή αυτό είναι ένα πλήρες διανοητική απόσπαση της προσοχής από την πιο ενδιαφέρουσα ιδέες στο χέρι, το οποίο είναι στην πραγματικότητα η δημιουργία κάτι έξω από τον κωδικό. Αλλά ας κάνουμε μια τροποποίηση τώρα σε αυτό το πρόγραμμα. Υπενθυμίζεται ότι η τελευταία φορά που έκανα κάτι όπως αυτό, αναφέρει printf όνομά σας. Και πράγματι κάναμε ακριβώς αυτό στη μεγάλη οθόνη εκεί. Και τότε έκανα κορδόνι s παίρνει GetString ανοιχτή παρένθ, κοντά paren. Και paren μόνο στενογραφία σημειογραφία για την παρένθεση. Έτσι δεν GetString λάβει όλα τα επιχειρήματα; Δεν υπάρχουν είσοδοι όχι, αλλά χρειάζεται τις παρενθέσεις, γιατί αυτό είναι που οριοθετεί η κλήση της συνάρτησης. Έτσι, Πάω να πάει μπροστά και να προσπαθήσουμε να εκτελέστε τον compiler σε αυτό το πρόγραμμα τώρα. Κλαγγή hello.c, γιατί δεν είχε αλλάξει το όνομά της για τώρα. Και πήρα ένα σωρό λάθη. Ας σμίκρυνση εδώ. Αν μετακινηθείτε προς τα επάνω και πάλι, όπως είπα και την προηγούμενη φορά, στο πρώτο, το ίδιο σφάλμα ότι πήρα την τελευταία φορά. On line 6 του hello.c είχα μια αδήλωτης κορδόνι αναγνωριστικό, δεν εννοώ πρότυπο; Δεν το έκανα. Διότι ποιο το λάθος έχω κάνει σε αυτό το πρόγραμμα, αν θυμηθούμε από την τελευταία φορά; Ναι, χρειαζόμαστε το λεγόμενη ρόδες ότι θα χρησιμοποιήσει μόνο για λίγες εβδομάδες. Αλλά πρέπει να διευκρινιστεί ότι, επίσης, κάπου στο εσωτερικό της συσκευής, είναι ένα αρχείο που γράψαμε μόλις πριν από λίγα χρόνια. Μέσα από τις οποίες είναι συναρτήσεις όπως προφανώς GetString. Έτσι τώρα, αν πάω πίσω εδώ, μεγέθυνση, και επαναληπτικές κλαγγή hello.c. Γαμώτο, ένα άλλο λάθος. Αλλά δεν έχουμε δει αυτό πριν. Αυτό και μόνο είναι λίγο πιο απόκρυφα για να καταλάβω. Αλλά αυτό είναι σκόπιμα στην οθόνη, γιατί θέλαμε να πω αυτή την ιστορία. Κατά τη μεταγλώττιση hello.c, όπως ακριβώς η εικόνα από πριν προταθεί, είστε μόνο να μετατρέψει την πηγαίο κώδικα σε μηδενικά και μονάδες. Τώρα προσωπικό CS50 πριν από λίγα χρόνια έγραψε CS50.h, και ένα αντίστοιχο αρχείο, CS50.c. Και εμείς, πριν από μερικά χρόνια, καταρτίζονται τα αρχεία σε ένα αρχείο που συμβαίνει να ονομάζεται CS50.o. Ή μπορεί να μετονομαστεί ένας μερικά διαφορετικά πράγματα. Αλλά αυτό είναι ένας απλός τρόπος σκέψης σχετικά με αυτό. Γι 'αυτό και συγκεντρώνονται CS50 του βιβλιοθήκη σε μηδενικά και μονάδες. Αλλά πουθενά δεν έχω καθορίζεται ότι θέλω να συνδυάσουν μηδενικά μου και αυτά για hello world μου πρόγραμμα με τα μηδενικά και μονάδες ότι το προσωπικό CS50 δημιουργήθηκε λίγα χρόνια πριν σε ένα πλήρες πρόγραμμα. Το μόνο που έχετε καθορίσει με γραπτή κλαγγή hello.c είναι καταρτίζουν hello.c. Δεν έχω πει κλαγγή να σύνδεσμο στα μηδενικά και μονάδες ότι το προσωπικό CS50 δημιουργήθηκε για σας πριν από λίγο καιρό. Έτσι είναι μια εύκολη αποτύπωση, παύλα l για σύνδεση, CS50. Και θα δούμε και πάλι αυτό πριν από καιρό ξανά και ξανά. Να σημειωθεί όμως τώρα δεν υπήρχε κανένα παράπονο. Έτσι τώρα, αν Τρέχω dot κάθετος Γεια σας, τώρα δουλεύει. Αν και αυτό είναι λίγο παραπλανητικό δεδομένου ότι μόνο ανασυνταχθεί ποιο αρχείο; a.out. Έτσι, επιτρέψτε μου προς τα πίσω για μια στιγμή. Το πρόγραμμα που μόλις καταρτίζονται έχει τις τρεις γραμμές κώδικα. Όταν έτρεξα hello world, γειά σου μια στιγμή Πριν, δεν είδα να αναφέρει το όνομά σας. Και αυτό γιατί έτρεξα το παλιά έκδοση του προγράμματος. Αλλά αν όντως τρέχει dot κάθετος a.out Εισάγετε, αναφέρετε το όνομά σας, Rob, γεια σου, κόσμο. Χμ. Αυτό είναι το είδος της ένα bug. Μάλλον ήθελε να πει ο Rob, σωστά; Έτσι ποια είναι η λύση εδώ στον κώδικα. ΦΟΙΤΗΤΗΣ: [δεν ακούγεται]. DAVID MALAN: Ακριβώς. Γι 'αυτό ακριβώς πρέπει να κάνουμε αυτή την τελική τσίμπημα έτσι ώστε να περνάω σε ένα σύμβολο κράτησης θέσης, σαν συμπληρώστε το κενό, όπως κάναμε πριν από λίγο. Αλλά τοις εκατό s είναι τώρα ότι συμπληρώστε το κενό. Έτσι, τέλος, ας αποκαλύψει μια τελευταία λεπτομέρεια, έτσι ώστε δεν υπάρχει καμία μαγική. Πάω να πάει μπροστά και να απαλλαγούμε από hellow. Πάω να πάει μπροστά και να απαλλαγούμε από a.out. Μέχρι τώρα δεν έχω προγράμματα, μόλις μου τον πηγαίο κώδικα. Και Πάω να τρέξει ένα ελαφρώς μεγαλύτερη εντολή, κλαγγή παύλα o γεια hello.c παύλα LCS50. Τώρα αυτό έχει αρχίσει να ταξινομήσετε του πάει το ένα αυτί και από την άλλη ίσως. Αλλά μόλις πειράζω χώρια τι κάνει αυτό. Clang είναι ο compiler, παύλα LCS50 σκόπιμα στο τέλος κάνει ό, τι σε μια πρόταση; Σύνδεση με τη βιβλιοθήκη CS50. Αρπάζει τα μηδενικά και αυτά που το προσωπικό έκανε και να τους στριμώχνει στο δικό μου πρόγραμμα. Έτσι, η τελευταία ερώτηση στο χέρι είναι, τι είναι η παύλα o γεια πιθανώς κάνει, ακόμα και αν έχετε ποτέ δει αυτή τη σύνταξη πριν; Outputting ένα πρόγραμμα που είναι δεν κατονομάζονται την προεπιλεγμένη a.out. Μάλλον αυτό είναι το όνομα γεια. Μέχρι τώρα δεν υπάρχει καμία a.out. Δεν υπάρχει τέτοιο αρχείο ή κατάλογος, γιατί είπα ρητά καλέσετε αυτό το πρόγραμμα γεια, έτσι ώστε να Μπορώ τώρα να πληκτρολογήσετε ένα όνομα όπως αυτό και να συμπεριφέρονται. Τώρα ειλικρινά, αγόρι είναι ότι πληκτικός να έχουν να θυμόμαστε όλοι ότι λίγο λεπτομέρειας, σωστά; Ας πάμε μπροστά και να να απαλλαγούμε από ένα γεια και πάλι. Και ας επιστρέψουμε τώρα σε έναν κόσμο το οποίο αρκεί για να πω ένα γεια κάνει. Αλλά αυτή είναι η μαγεία που να κάνει για σας, ότι είναι η ανία, ότι το κάνει για σας. Και όπως τα προγράμματα μας και προβλήματα να πάρει πιο σύνθετες, κάνει θα είναι πραγματικά φίλος σου. Επειδή δεν είναι πολύ καιρό από τώρα θα πάμε να έχουν τα προγράμματα που είναι γραμμένα όχι με ένα αρχείο, αλλά πολλά αρχεία, και να κάνουν θα αυτοματοποιήσει τη διαδικασία της κατάρτιση όλα αυτά για εμάς μαζί. Έτσι τώρα να εκτυπώσετε. printf είναι μέσα από αυτό το αρχείο, πρότυπο I / O dot h, που έχουμε δει στο παρελθόν, αλλά υπάρχει περισσότερο για να printf από αυτό. Υπάρχει backslash n, αλλά υπάρχει επίσης ένα σωρό άλλες ακολουθίες διαφυγής. Και ακολουθία διαφυγής είναι μόνο ένα φανταχτερό τρόπο λέγοντας κάτι που ξεκινά με μια ανάστροφη κάθετο, δεν είναι μια κάθετος, μια ανάστροφη κάθετο, και κάνει κάποια ειδική πράγμα. Και εμείς δεν θα σταθώ στις περισσότερες από αυτές, αλλά γιατί είναι backslash υπάρχουν διπλά εισαγωγικά, νομίζεις; Γιατί είναι αυτό το παράξενο ακολουθία υπάρχει χαρακτήρες, backslash διπλά εισαγωγικά, γιατί θα μπορούσε να είναι χρήσιμο; ΦΟΙΤΗΤΗΣ: [δεν ακούγεται]. DAVID MALAN: Ακριβώς, σωστά; Σκεφτείτε πίσω στο hello world πρόγραμμα μας ότι έχουμε δει αρκετές φορές μέχρι τώρα, κάθε φορά που έχουμε δει ότι ο κόσμος γεια το πρόγραμμα που είχαμε διπλά εισαγωγικά μέσα των οποίων είναι γειά σου κόμμα κόσμο backslash n. Αλλά σκεφτείτε τον εαυτό σας, τι αν πραγματικά ήθελε να εκτυπώσετε ένα σημάδι εισαγωγικά; Το πρώτο ένστικτό σας μπορεί να είναι, εγώ δεν κάνω ξέρω γιατί ίσως να θέλετε να do-- εδώ, μπορούμε να είμαστε λίγο παθητικός επιθετική, γειά σου φίλος. Θα μπορούσαμε να θέλουμε να κάνουμε κάτι τέτοιο. Αλλά γιατί είναι αυτό τώρα προβληματική; Αγνοώντας τα σγουρά εισαγωγικά άκρη ότι εναρκτήρια ομιλία έκανε για μας αυτόματα. Γιατί είναι αυτό το πρόβλημα; Ακριβώς. Επειδή έχουμε σαν 4 εισαγωγικά. Λοιπόν η πρώτη ίσως πηγαίνει με το δεύτερο, και ίσως ο τέταρτος πηγαίνει με το τρίτο, ή, μπορώ να πω ότι δεν είμαι καν σίγουρος, ούτε είναι ο υπολογιστής πρόκειται να είναι. Υπολογιστές και πάλι, compilers και πάλι, είναι αρκετά χαζός. Θα κάνω μόνο ό, τι θα τους πω να κάνουν. Και αν δεν είστε σαφής ότι πρόκειται πιθανώς για να ρίξει ένα λάθος. Αν δεν είστε σαφείς ως προς το πώς να κάνει μια φυστικοβούτυρο και μαρμελάδα παράξενα πράγματα που μπορεί να φτάσει. Είναι η ίδια ιδέα. Τώρα αρκεί να πούμε ότι υπάρχει κάποιες άλλες ακολουθίες διαφυγής, αλλά θα έρθει σε εκείνους που πριν από καιρό. Πρόκειται ουσιαστικά για απόδραση ακολουθίες αντιπροσωπεύουν κάτι ότι μπορεί να μην είναι σε θέση πάρα πολύ εύκολα στο πληκτρολόγιο, χωρίς να συγχέει τον υπολογιστή. Τώρα, εν τω μεταξύ έχουμε σύμβολα κράτησης θέσης στην printf. Τοις εκατό d, η οποία μπορεί επίσης να γραφεί σε σχεδόν όλες τις περιπτώσεις, ως επί τοις εκατό Ι, είναι ένα σύμβολο κράτησης θέσης για το είδος των δεδομένων; Τι είδους σχέση; Ένας δεκαδικός αριθμός. Έτσι, στην πραγματικότητα θα αρχίσει χρησιμοποιώντας τοις εκατό i επειδή είναι λίγο πιο απλό, όπως ένα ακέραιο. Ποσοστό i. Ένας ακέραιος που συμβαίνει να είναι δεκαδικό. Ποσοστό s είπαμε ήταν ένα σύμβολο κράτησης θέσης για μια σειρά. Ποια είναι απλώς μια λέξη, μια φράση, μια παράγραφο, ένα δοκίμιο, οτιδήποτε. Είναι μια σειρά από χαρακτήρες από κάποιο μήκος. Και θα δούμε πριν από καιρό ορισμένες από αυτές τις άλλες. Αλλά τοις εκατό c είναι για ένα μόνο χαρακτήρα. Ποσοστό f είναι για ένα αριθμός κινητής υποδιαστολής, σαν ένα πραγματικό αριθμό που έχει ένα δεκαδικό σημείο σε αυτό, το οποίο Φυσικά, δεν είναι ένας ακέραιος. Και υπάρχει μια ολόκληρη δέσμη των άλλων, καθώς και. Εν τω μεταξύ σε C, και σε πολλές γλώσσες, έχουμε διαφορετικούς τύπους δεδομένων. Διαφορετικοί τύποι γυαλί κύπελλα αν θέλετε. Το κύπελλο που χρησιμοποίησα τελευταία φορά ήταν για μπαλάκια του πινγκ πονγκ, αλλά μπορούμε επίσης να αποθηκεύσετε διαφορετικά αξίες, όπως χαρακτήρες και έγχορδα και ακέραιοι σε ένα δοχείο, σαν μία μεταβλητή, και C έχει αυτά. Char είναι το είδος των δεδομένων, ο τύπος της μεταβλητής, στην οποία μπορείτε να αποθηκεύσετε ένα χαρακτήρα. Float είναι ένας τύπος της μεταβλητής σε το οποίο μπορείτε να αποθηκεύσετε έναν πραγματικό αριθμό. Int είναι βέβαια για έναν int. Και μάλλον γελοία ονομάζεται μια μακρά μακρά είναι όπου μπορείτε να αποθηκεύσετε ουσιαστικά ένα πραγματικά μεγάλο αριθμό, με ακόμη περισσότερα ψηφία τότε ένα τυπικό int κατάστημα δύναμη. Αλλά θα επανέλθω στο θέμα αυτό πριν από καιρό. Σε CS50 dot h εν τω μεταξύ το άλλο αρχείο κεφαλίδας ότι έχουμε δει ένα ζευγάρι φορές σε χρήση, υπάρχει δύο άλλους τύπους δεδομένων, ότι Δεν υπάρχουν στην C συνήθως. Ένα είναι εγχόρδων, και θα δούμε σε λίγες εβδομάδες ποιες χορδές πραγματικά είναι κάτω από την κουκούλα. Και ένα είναι bool. Και μια bool είναι μια μεταβλητή που μπορεί να πάρει μόνο σε ορισμένες αξίες. Και μόνο με βάση την προηγούμενη εβδομάδα εξήγηση του Scratch, και πιο πρόσφατα, C, τι θα μαντέψει είναι οι δύο πιθανές τιμές για κάποια δοχείο που είναι του τύπου bool; Ναι και όχι. Ένα και μηδέν. Σωστό ή λάθος. Και πράγματι αυτό είναι το τελευταίο που τείνει να είναι συμβατική σε έναν προγραμματισμό γλώσσα, λέγοντας κάτι όπως αληθείς ή ψευδείς. Εν τω μεταξύ, η βιβλιοθήκη CS50 έρχεται με μια δέσμη των λειτουργιών ότι το προσωπικό που έγραψε για σας, εκτός από απλά να πάρει ένα string. Γράψαμε σε λειτουργίες των προτέρων ότι μπορεί να πάρει έναν ακέραιο από το χρήστη, πάρετε ένα ενιαίο χαρακτήρα, πάρετε μια float, ότι Είναι απλά ένας αριθμός με το δεκαδικό σημείο. Πάρτε μια πολύ καιρό, μια πραγματικά μεγάλη αξία από το χρήστη. Έτσι, έχουμε δει μόνο αυτό το δράση με τη μορφή του GetString. Αλλά με αυτές τις λειτουργίες σύντομα θα είναι σε θέση να γράψει προγράμματα που παίρνουν είσοδο από το χρήστη. Εν τω μεταξύ, σκεφτείτε το πρόγραμμα, και να εξετάσει πώς θα μπορούσαμε τώρα να αρχίσουμε να προσθέσετε σε αυτό με νέα δομήματα. Μια γρήγορη ανεμοστρόβιλος περιοδεία και στη συνέχεια θα εξετάσουμε σε μερικά γράφοντας κάποια προγράμματα με το χέρι μας. Εφεξής, αν θέλουμε να εφαρμόσουν μια κατάσταση, δεν πρόκειται να μοιάζει με ένα ωραίο μικρό όμορφο κομμάτι του παζλ. Είναι πρόκειται να δούμε λίγο πιο απόκρυφες. Αλλά αυτή είναι η κανονική δομή μιας κατάστασης στο C. Η λέξη εάν, δύο παρενθέσεις, εντός του οποίου πρόκειται να είναι κάποιο είδος της Boolean έκφραση. Τώρα το κάθετο κάθετο στη μέση, αυτό είναι αυτή τη στιγμή το είδος της, όπως pseudocode κωδικό κράτησης θέσης. Αλλά πιο σωστά, κάθε γραμμή κώδικα σε C που ξεκινάει με κάθετο κάθετο είναι ένα σχόλιο. Είναι σαν μια κολλώδη σημείωση που μπορεί να βάλει σε ένα δοκίμιο, τυπωμένο σε χαρτί. Είναι μια σημείωση για τον εαυτό σας. Δεν έχει καμία λειτουργική αντίκτυπο στο πρόγραμμα. Είναι το είδος της μια υπενθύμιση, είναι δική σας τεκμηρίωση για το τι συμβαίνει. Έτσι το κάνετε αυτό αυτή τη στιγμή είναι ένα είδος σύμβολο κράτησης θέσης για ό, τι είναι μέσα αυτών άγκιστρα τελικά πρόκειται να κάνει κάτι. Εν τω μεταξύ, έχετε δύο πιρούνια στο δρόμο, αν ένας άλλος κατασκευάσει σαν αυτό. Μπορείτε αν, elseif, αλλιώς. Τώρα αξίζει να σημειωθεί, ιδιαίτερα αν έχετε Googling γύρω σε απευθείας σύνδεση για τους πόρους από περιέργεια, ή αν έχετε πάρει ένα από τα φυσικά του συνιστώμενα βιβλία για C, θα δείτε ότι οι άνθρωποι έχουν πολλά από διαφορετικές προτιμήσεις για το πώς να εκφραστούν σε κώδικα. Μερικοί άνθρωποι επιθυμούν να θέσουν το αγκύλες, όπως έχω κάνει εδώ. Μερικοί άνθρωποι επιθυμούν να βάλει το σγουρά τιράντες, για παράδειγμα, μέχρι εδώ. Μερικοί άνθρωποι επιθυμούν να βάλει το elses μέχρι εδώ και, στη συνέχεια, αυτό εδώ. Υπάρχουν πολλοί τρόποι για να κωδικό εγγραφής, και κανένας από αυτούς είναι σωστό per se. Παρά το γεγονός ότι υπάρχει μια μερικά που είναι πολύ λάθος. Αλλά υπάρχουν no-- εάν αυτό είναι τελικά μια πολύ θρησκευτική συζήτηση. Στην πραγματικότητα, ένα από τα πιο ενοχλητικά πράγματα για την επιστήμη των υπολογιστών είναι πώς δογματικός επιστήμονες της πληροφορικής μπορεί να είναι. Και θα βρείτε την πάροδο του χρόνου ότι ακόμη και να αναπτύξουν τις προσωπικές τους προτιμήσεις ως προς τον τρόπο κωδικός σας θα πρέπει να εξετάσουμε. Όχι μόνο συμπεριφέρονται, όχι μόνο τη δημιουργία εξόδου, αλλά το πώς θα πρέπει να κοιτάξουμε αισθητικά. Έτσι, αυτό που θα κάνουμε είναι να σας καθοδηγήσει κατά μήκος το δρόμο προς, προς το παρόν τουλάχιστον, ένα πρότυπο στυλ CS50 ότι τουλάχιστον κρατά τα πράγματα ομοιόμορφη και εύκολο να το διαβάσετε. Αλλά περισσότερο για εκείνους διακρίσεις πριν από καιρό. Μια Boolean έκφραση σε C, εάν ήθελε να πει αν αυτή η συνθήκη είναι αληθής και αυτή η άλλη κατάσταση είναι αλήθεια, δεν γράψετε τη λέξη και, όπως θα κάνατε και στα αγγλικά. Μπορείτε να χρησιμοποιήσετε συμπλεκτικό σύμβολο, για λόγους που εμείς θα επανέλθουμε. Αν θέλετε να πείτε ή να χρησιμοποιήσετε δύο κάθετες μπάρες, η οποία σε ένα πληκτρολόγιο ΗΠΑ είναι γενικά πάνω από το Enter κουμπί δίπλα στην ανάστροφη κάθετο. Και αυτό σημαίνει ότι μόνο εάν αυτή κατάσταση ή αυτή η άλλη προϋπόθεση είναι αλήθεια το κάνουμε αυτό. Εν τω μεταξύ, υπάρχει αυτή η τρελό πράγμα, το οποίο θα έχετε την ευκαιρία να χρησιμοποιήσει μια φορά σε λίγο. Αλλά είναι απλά μια εναλλακτική λύση τρόπος για να εκφραστείτε. Αυτό, για τώρα, ας ορίζουν, είναι ακριβώς άλλο funky τρόπος για να εκφράσουν αν, elseif, elseif, elseif, elseif. Είναι μόλις διαμορφωθεί σε όρους των περιπτώσεων, όπου μπορείτε κυριολεκτικά απαριθμήσει τις αξίες που ίσως να θέλετε να ελέγξετε για. Εν τω μεταξύ βρόχους. Είδαμε μια σύγκριση των Ξύστε με μια θηλιά. Και Πάω να κύμα το χέρι μου στο τι σημαίνει το καθένα από αυτά τα πράγματα. Αλλά παρατηρήσετε ότι ένας βρόχος θα είναι πολύ συχνά ξεκινούν με τη λέξη-κλειδί για το. Ή θα ξεκινήσει με τη λέξη-κλειδί, ενώ. Ή θα ξεκινήσει με τη λέξη-κλειδί κάνει, και τέλος με τη λέξη-κλειδί, ενώ. Αλλά αυτό που είμαστε για να δούμε είναι τα πράγματα περισσότερο σαν αυτό. Εδώ είναι, σε γενικές γραμμές σε C, πώς θα μπορούσε δηλώσετε μια μεταβλητή και να του δώσετε μια τιμή. Στην C δεν αρκεί, όπως στο Ξυστό, απλά πει να μου δώσει μια μεταβλητή που ονομάζεται κάτι. Θα πρέπει να πείτε C, και πείτε compiler σας, πιο συγκεκριμένα, τι είδος της αξίας που κάνετε θέλετε να βάλετε στο γυάλινο μπολ. Είναι ένας ακέραιος; Αν ναι, θα πρέπει να κυριολεκτικά λένε int και, στη συνέχεια, το όνομα της μεταβλητής, τότε ένα ερωτηματικό. Αν αντί ήθελε εγχόρδων και κάλεσε είναι s, όπως έκανα τον κωδικό μου εδώ σήμερα, θα σας πω ερωτηματικό συμβολοσειράς s. Όταν θέλετε να δώσετε μια τιμή τότε μπορείτε να χρησιμοποιήσετε το σύμβολο ίσον, αλλιώς γνωστή ως ο τελεστή ανάθεσης. Και παρατηρήστε πώς το καθένα από αυτές τις γραμμές του κώδικα έχει το ερωτηματικό στο τέλος της. Αλλά ειλικρινά αυτό ακριβώς φαίνεται λίγο άσχημο. Γιατί δεν μπορώ να πω στον υπολογιστή, δίνουν με μια μεταβλητή και να προετοιμάσει το μηδέν. Δηλαδή, να μου δώσει ένα άδειο γυάλινο μπολ. Ενώ μπορείτε. Και έτσι ένα της αποφάσεως σας καλεί θα έχουν να κάνουν στυλιστικά την πάροδο του χρόνου είναι, μπορείτε να γράψετε τον κωδικό σας αρέσει αυτό, ή Δεν είστε το είδος του να το καθαρίσει και να εντυπωσιάσετε οι άνθρωποι γράφοντας δύο γραμμές, όπως ακριβώς ένα. Και αυτό θα μπορούσε να θεωρηθεί γενικά ένα πιο κομψό τρόπο της γραφής κωδικό σας στυλιστικά. Λειτουργίες είμαστε φυσικά δει. Θα πάμε για να πάρει αυτή τη μορφή. Το όνομα της συνάρτησης, μερικοί παρενθέσεις, και τότε ίσως κάποιοι πράγματα μέσα. Ή μπορείτε να δείτε χρήσεις πολλαπλές λειτουργίες πλευρά από την πλευρά της, σαν κάτι σαν αυτό. Τώρα, ως εφαπτόμενη, κάνει αυτό το αστείο κάνει τώρα νόημα; [Γέλια] Αυτό δεν σημαίνει ότι είναι αστείο, αλλά ίσως κάνει λίγο περισσότερο νόημα. Έτσι, τώρα ας πάμε σε η Συσκευή CS50 για μια στιγμή. Και επιτρέψτε μου να ανοίξει ένα teaser εδώ. Και μάλιστα ένας από τους λόγους για την εισαγωγή κατάλογος ΙΚΕΑ και αναβοσβήνει την εικόνα του iPhone πριν από λίγο ήταν να συνδέσει πραγματικά σε από κοινού το το γεγονός ότι μόλις πριν από λίγα χρόνια, το 2007, αυτό το κομμάτι του κώδικα ήταν απελευθερώνεται, το οποίο μία από την πρώτη κιόλας εφαρμογή από ένα κομμάτι του λογισμικού ότι κάνει ό, τι λέγεται jailbreaking. Για όσους δεν είναι εξοικειωμένοι, jailbreaking κάτι σαν ένα τηλέφωνο ή ένα iPhone σημαίνει ουσιαστικά υπολογίζοντας πώς να κάνει τα πράγματα με το ότι η εταιρεία ο οποίος έκανε ότι δεν είχε την πρόθεση. Όπως θέλετε να εγκαταστήσετε ορισμένες λογισμικό που δεν είναι στο App Store, jailbreaking τηλέφωνό σας που κάνετε τα πράγματα όπως αυτό και περισσότερα. Αλλά τι ήταν διασκεδαστικό σε 2007-- και έχει υπάρξει δεκάδες διαφορετικές εκδόσεις από αυτά τα πράγματα από τότε, σε όλα τα είδη των languages-- είναι ότι αυτό το πρόγραμμα εδώ, ονομάζεται iUnlock, ήταν στην πραγματικότητα γραμμένο σε C. Και γι 'αυτό τράβηξε μέχρι τον πηγαίο κώδικα για αυτό, ακριβώς για να δείξει το είδος σας μερικές από τις οι ομοιότητες με τα κατασκευάσματα έχουμε συζητήσει μέχρι στιγμής. Τώρα υπάρχει τρόπος για μεγαλύτερη πολυπλοκότητα εδώ από ό, τι έχουμε δει ήδη στην τάξη. Επιτρέψτε μου να μετακινηθείτε προς τα επάνω ακριβώς λίγο εδώ. Αλλά παρατηρήσετε these-- καλά θα παρατηρήσετε μερικά things-- αλλά παρατηρήσετε αυτές τις γραμμές εδώ, συμπεριλαμβανομένων των standard I / O dot h. Και all-- γραμμή 24, σε παρακαλώ παρατηρήσετε πρότυπο I / O dot h και ένα σωρό άλλα Τα αρχεία που προφανώς άλλους ανθρώπους έχουν γράψει. Και αν μετακινηθείτε προς τα κάτω μέσω Αυτό, λίγο αυθαίρετα, προκήρυξη δεν ξέρω πώς να γράψω όλα αυτά ο ίδιος αναγκαστικά ακόμα, αλλά δεν υπάρχει περίπτωση. Έτσι, προφανώς, αυτό έχει ένα υποκατάστημα. Και αν μετακινηθείτε προς τα κάτω λίγο επιπλέον υπάρχει μια άλλη περίπτωση. Αν μετακινηθείτε προς τα επάνω, νομίζω γύρω από τη γραμμή 100 είδα. Γι 'αυτό και δεν είμαι σίγουρος πώς αυτό λειτουργεί ακόμα, αλλά αυτό είναι ένα βρόχο που πρόκειται να επιτρέψτε μου να επαναλάβει κάποια αριθμός των φορές. Και αν μετακινηθείτε όλα ο τρόπος με τον πυθμένα Βλέπω ότι υπάρχει μια λειτουργούν εδώ κάτω που ονομάζεται κύριες, καθώς και ορισμένες πρόσθετες πιστώσεις για την ευχαρίστηση σας ανάγνωση. Έτσι, αυτό είναι μόνο για να say-- και θα θέσει αυτή η σύνδεση μεταξύ πηγής του μαθήματος Κωδικός today-- ότι ακόμη και ορισμένοι από αυτούς συσκευές που παίρνουμε για δεδομένος, στο τέλος της ημέρας είστε ακόμα χρησιμοποιώντας αυτές τις βασικές δομές που έχουμε έχουν εισάγει ήδη μέχρι σήμερα. Αυτό είναι αρκετό από εκείνο το ένα. Εντάξει, τώρα ας οικοδομήσουμε πραγματικά κάτι. Ας πάμε πέρα ​​από κάτι σαν hello.c, και να ανοίξει αυτό, ας γράψω αυτό το πρόγραμμα εδώ. Πάω να προχωρήσει και γράψετε ένα πρόγραμμα που ονομάζεται adder.c, σκοπός της οποίας στη ζωή πρόκειται να είναι όπως η πρώτη μου σούπερ απλή αριθμομηχανή ότι προσθέτει μόνο ένα ζευγάρι των αριθμών. Όχι γιατί αυτό είναι ένα δύσκολο πρόβλημα, αλλά επειδή μου επιτρέπει να δέσει τώρα μαζί μερικά πράγματα. Έτσι, Πάω να πάει μπροστά και να περιλαμβάνουν πρότυπο I / O dot h και CS50 dot h. Πάω να πω int main κενό. Και πάλι στο μέλλον Θα επανέλθουμε σε αυτό μέσα σε αυτό το πλαίσιο και το κενό μέσα. Και τώρα θα πάω να πω κάτι όπως η printf, να μου δώσει έναν ακέραιο. Και τώρα στη δεύτερη γραμμή μου, πώς μπορώ να εκφραστώ όπως ότι θέλω να δηλώσει μια μεταβλητή ότι πρόκειται να αποθηκεύσετε ένα int; Κυριολεκτικά, τι μπορώ να πληκτρολογείτε αν θέλω να δημιουργήσετε μια μεταβλητή που αποθηκεύει μια int θα λέγατε; int a ισούται getint. Σίγουρα, έτσι που να λειτουργεί. Και μόνο για λόγους συνέπειας με τον κώδικα που θα δείτε σε απευθείας σύνδεση, επιτρέψτε μου αλλαγή αυτό με x, μόνο και μόνο επειδή x είναι ένα κοινό όνομα μεταβλητής να χρησιμοποιήσει, τουλάχιστον σε άλγεβρα. Τώρα, επιτρέψτε μου να πάει μπροστά και να κάνουμε τις printf και πάλι. Δώστε μου ένα άλλο ακέραιο. Και τώρα θα πάω με το είδος από μάθουν από αυτό το μοτίβο, Πάω να πω int y παίρνει να GetInt. Και εμείς δεν έχουμε χρησιμοποιήσει GetInt πριν, αλλά μόλις όπως GetString πηγαίνει και παίρνει ένα string, όπως Javier έκανε από το κοινό, ομοίως κάνει GetInt αρχίσει να αναβοσβήνει η γραμμή. Και αποτελεσματικά αναμονή για τον χρήστη για να δώσει έναν ακέραιο, πληκτρολογώντας τον στο και πατώντας Enter. Τώρα, τέλος, Πάω να κάνω αυτό, printf το άθροισμα of-- και επιτρέψτε μου να πάρει φανταχτερά now-- τοις εκατό τοις εκατό Ι και Ι είναι παρούσα i επιφώνημα σημείο backslash n. Και τι νομίζετε ότι θα πάω να θέσει τώρα ως πρόσθετες είσοδοι με τις printf; Δεν θέλω να πω κυριολεκτικά παραθέτω σε εισαγωγικά x. Θέλω να τάξη στο x και Στη συνέχεια, και τώρα ας πάρει φανταχτερά και ας υποθέσουμε μπορούμε να κάνουμε ό, τι θέλουμε. Τι θέλετε να πείτε; x συν y. Και πράγματι, αυτό θα λειτουργήσει. Είναι ελάχιστα γλώσσες προγραμματισμού καταλαβαίνω βασική αριθμητική, και έτσι αυτό θα πρέπει στην πραγματικότητα το έργο. Έτσι, επιτρέψτε μου να πάει μπροστά και να κάνουν αθροιστή σε μαύρο και άσπρο παράθυρο μου εδώ κάτω, Enter. Αινιγματικές γραμμή, αλλά δεν υπάρχει σφάλμα μήνυμα, έτσι ώστε να είναι καλό. Dot κάθετο αθροιστή, να μου δώσει έναν ακέραιο, 1. Δώστε μου ένα άλλο ακέραιο, 2. Το ποσό των 1 και 2 είναι 3. Εντάξει, έτσι, ένα πολύ ασήμαντο πρόγραμμα, αλλά τι είναι αυτό που κάνει; Αυτό μου επέτρεψε να χρησιμοποιήσετε μια λειτουργία καλέστε εδώ, καλέστε μια άλλη λειτουργία εδώ, δύο κλήσεις προς GetInt, ένα τρίτη πρόσκληση υποβολής προτάσεων για την printf, και στη συνέχεια, χρησιμοποιώντας αυτά τα σύμβολα κράτησης θέσης. Γι 'αυτό είναι λίγο πιο εξελιγμένα από την τελευταία φορά. Αλλά τι γίνεται αν θέλω να να πάρει λίγο πιό φανταχτερό; Επιτρέψτε μου να προχωρήσει και τώρα το κάνετε αυτό. Επιτρέψτε μου να προχωρήσει και να δημιουργήσει ένα νέο αρχείο που ονομάζεται συνθήκες μηδέν. Και Πάω να αποθηκεύσετε κάποια στιγμή για τις κατηγορίες χάρη και απλά επικόλληση σε ότι κώδικας ως σημείο εκκίνησης. Και τώρα είμαι απλώς πρόκειται να θέσει κάτι νέο εδώ στη μέση. Έτσι printf θα ήθελα έναν ακέραιο παρακαλώ. Και όλα αυτά κώδικας είναι διαθέσιμος στην ιστοσελίδα του μαθήματος, δεν χρειάζεται να είναι όλα πληκτρολογήσετε στην τάξη, αν δεν έπαιρνα μάλλον. int, και τώρα είμαι πρόκειται να χρήση, αντί των χ και γ, Πάω να χρησιμοποιήσει n, η οποία είναι ίσως η πιο κοινή ονομασία για έναν ακέραιο αριθμό σε ένα πρόγραμμα υπολογιστή. Και τώρα θέλω να κάνω ένα μικρή κρίση εδώ. Πάω να δω αν n είναι μεγαλύτερη από μηδέν, τότε Πάω να πω printf-- κραυγών, printf-- έχετε πάρει ένα θετικό αριθμό, θαυμαστικό backslash n. Κλείστε αυτό. Αλλιώς Πάω να εκτυπώσετε printf έχετε πάρει έναν αρνητικό αριθμό. Τώρα, πριν να μου φωνάζεις, ας τρέξει αυτό το πρόγραμμα. Επιτρέψτε μου να πάω εδώ κάτω. Και πώς μπορώ να καταρτίσει ένα πρόγραμμα ονομάζονται συνθήκες παύλα 0; Κάντε συνθήκες παύλα 0. Είδος ένα ηλίθιο όνομα, αλλά-- διάολε. Εντάξει, καλή διδασκαλία στιγμή. Γιατί να σπάσει; Τι έκανα λάθος καλέσετε αυτό το αρχείο; Μπορείτε είδους μπορούμε να συμπεράνουμε από την καρτέλα μέχρι εδώ. Έτσι, δεν είναι κακό που το έκανε αυτό, γιατί αυτό θα συμβεί ίσως κάποιοι από εσάς. Γι 'αυτό και κατά λάθος το όνομά μου κατάσταση πηγαίο κώδικα 0. Αλλά μου τον πηγαίο κώδικα από την σύμβαση θα πρέπει να να είναι σε ένα αρχείο που ονομάζεται όρο 0 παύλα c, ή ό, τι dot c. Έτσι, επιτρέψτε μου να το διορθώσω αυτό. Ακριβώς όπως το Microsoft Word μπορώ να ανεβεί για να σώσει Όπως και να το κάνουμε όρο 0 dot c. Τώρα, ακριβώς για να είναι τακτοποιημένο είμαι πρόκειται να προχωρήσει και να αφαιρέσετε κατάσταση 0, η οποία ήταν παλιά η δική μου εκδοχή. Και τώρα ας κάνουν κατάσταση 0, Enter. Εντάξει, φαίνεται καλό. Κατάσταση 0, Enter. Θα ήθελα έναν ακέραιο παρακαλούμε, 50, έχετε πάρει ένα θετικό αριθμό. Τώρα σχετικά με το πώς αρνητική 50; Μπορείτε διάλεξε έναν αρνητικό αριθμό. Πόσο περίπου τώρα, 0. Αρκετά σίγουρος 0 δεν είναι αρνητική. Έτσι, αυτό είναι το είδος της ένα λογικό σφάλμα. Πώς μπορώ να το διορθώσω αυτό; Αλλιώς, αν n είναι μικρότερο από 0, το κάνετε αυτό, αλλιώς μπορούμε να έχουμε ένα υποκατάστημα τρεις τρόπο εδώ, printf που διάλεξε 0. Έτσι τώρα, αν μου επανάληψη αυτή πρόγραμμα, μετά την μεταγλώττιση πάλι με τη μάρκα, και τώρα επανάληψη κατάσταση 0, αυτό που θα δείτε εδώ 0 μου δίνει αυτή την έξοδο. Έτσι, όταν θα πάμε με αυτό; Καλά είναι πολύ εύκολο να χάσουμε από τα μάτια από το δάσος για τα δέντρα. Και έτσι μας επιτρέπει να συμπεράνουμε με αυτό το 2 και 1/2 λεπτό βίντεο ότι, τελικά, είναι ένα κομμάτι μιας διαφήμισης από την Google, αλλά αυτό είναι πραγματικά απόδειξη για ό, τι ακόμη και με αυτά τα βασικά δομικά μπλοκ μπορούμε τελικά να κάνουμε μία φορά έχουμε ένα κομμάτι του προγραμματισμού Μπήκες κάτω από τις ζώνες μας. [ΜΟΥΣΙΚΗ ΠΑΙΖΟΝΤΑΣ] SAROO Brierley (αφήγηση): Ήταν πριν από 26 χρόνια, και ήμουν έτοιμος να γυρίσει 5. Πήραμε στο σιδηροδρομικό σταθμό και επιβιβαστήκαμε τρένο μας μαζί. Ο αδελφός μου μόλις είπε εγώ θα μείνετε εδώ, και εγώ θα επανέλθω. Και εγώ σκέφτηκα, καλά γνωρίζετε, Θα μπορούσε κάλλιστα να πάει για ύπνο και αυτός θα ξυπνήσει μόλις μου επάνω. Και όταν ξύπνησα το επόμενο ημέρα, η όλη μεταφορά ήταν άδειο για ένα τραίνο δραπέτη, ένα φάντασμα τρένο μου λαμβάνοντας εγώ δεν ξέρω πού. I εγκρίθηκε από την Αυστραλία, σε μια αυστραλιανή οικογένεια. Και η μαμά είχε διακοσμηθεί μου δωμάτιο με το χάρτη της Ινδίας, η οποία έβαλε δίπλα στο κομοδίνο μου. Ξύπνησα κάθε πρωί βλέποντας ότι χάρτη, και ως εκ τούτου, το είδος του κράτησε τις μνήμες ζωντανές. Οι άνθρωποι θα λένε, είσαι προσπαθεί να βρει μια βελόνα στα άχυρα, Saroo ποτέ δεν θα το βρείτε. Θα έχουν έλαμψε από τα μέρη που έχω χρησιμοποιείται για να πάει, οι λάμψεις της οικογένειάς μου αντιμετωπίζει. Υπήρχε η εικόνα της μητέρας μου, κάθεται με τα πόδια σταυρωμένα, Απλά βλέποντας την κραυγή της. Η ζωή είναι τόσο δύσκολο. Αυτός ήταν ο θησαυρός μου. Και έψαχνα στο Google Map και συνειδητοποίησε ότι υπάρχει το Google Earth, καθώς και. Σε έναν κόσμο όπου μπορείτε να κάνετε ζουμ σε, Άρχισα να έχω όλες αυτές τις σκέψεις και τι δυνατότητες ότι αυτό θα μπορούσε να κάνει για μένα. Είπα στον εαυτό μου, ξέρετε, έχετε πήρε όλες αυτές τις φωτογραφικές αναμνήσεις και ορόσημα από πού είσαι, και Ξέρετε ποια είναι η πόλη μοιάζει. Αυτό θα μπορούσε να είναι μια εφαρμογή που που μπορείτε να χρησιμοποιήσετε για να βρείτε το δρόμο σας πίσω. Σκέφτηκα, καλά θα βάλω ένα κουκκίδα στο σιδηροδρομικό σταθμό της Καλκούτας, και μια γραμμή ακτίνα, ξέρετε, ότι θα Θα πρέπει να ψάχνουν γύρω από αυτόν τον τομέα. I είδος του ήρθε σε ολόκληρη αυτές οι γραμμές του τρένου. Και άρχισα μετά από αυτήν, και Ήρθα σε ένα σιδηροδρομικό σταθμό που αντανακλούσε την ίδια εικόνα ότι ήταν σε αναμνήσεις μου. Τα πάντα ταιριάζουν. Απλά σκέφτηκα yep, I ξέρετε πού θα πάω. Είμαι ακριβώς πρόκειται να αφήσει το χάρτη που έχω στο κεφάλι μου οδηγήσει μου και να μου πίσω στην πατρίδα μου. Ήρθα στο κατώφλι της το σπίτι που γεννήθηκα. Και περπάτησε γύρω από περίπου 15 μέτρα γύρω από τη γωνία, Ήταν εκεί τρεις κυρίες στέκεται έξω, δίπλα στην άλλη. Και η μέση ένα βήμα προς τα εμπρός, και Απλώς σκέφτηκα, αυτή είναι η μητέρα σου. Ήρθε προς τα εμπρός, που με αγκάλιασε, και ήμασταν εκεί για περίπου πέντε λεπτά. Άρπαξε το χέρι μου και με πήρε στο σπίτι και πήρε στο τηλέφωνο, όπου χτύπησε την αδελφή μου και τον αδελφό μου να πούμε ότι, ξέρετε, Ο αδελφός σας έχει μόνο όλα ξαφνική εμφανίστηκε σαν φάντασμα. Και τότε η οικογένεια επανασυνδέθηκε και πάλι. Τα πάντα είναι όλα καλά, Βοήθησα τη μητέρα μου έξω, ότι δεν πρέπει να μοχθούν. Μπορεί να ζήσει το υπόλοιπο από τη ζωή της στην ειρήνη. Ήταν μια βελόνα στα άχυρα, αλλά η βελόνα ήταν εκεί. Τα πάντα είναι εκεί. Ό, τι έχουμε στον κόσμο είναι το πάτημα ενός κουμπιού. Αλλά έχετε να έχουν τη θέληση και η αποφασιστικότητα να το θέλουν. [ΜΟΥΣΙΚΗ ΠΑΙΖΟΝΤΑΣ] DAVID MALAN: Υπέροχα γλυκό μαρτυρία ακριβώς ό, τι μπορείτε τώρα κάνει με την τεχνολογία. Θα σας δούμε την επόμενη εβδομάδα.