1 00:00:07,830 --> 00:00:12,200 [Powered by Google Translate] DAVID Malan: Αυτό είναι CS50, και αυτή είναι η αρχή της εβδομάδας 1. 2 00:00:12,200 --> 00:00:15,520 Αυτό που σκεφτήκαμε να κάνουμε σήμερα είναι να ρίξετε μια ματιά πίσω στο 3 00:00:15,520 --> 00:00:18,290 κάτι που πολλοί από εσάς έχουν περπατήσει κατά πάσα πιθανότητα παρελθόν για κάποια 4 00:00:18,290 --> 00:00:20,570 καιρό τώρα και μπορεί να μοιάζει λίγο εξοικειωμένοι. 5 00:00:20,570 --> 00:00:23,720 Αυτό το πράγμα εδώ, αυτό φυσικά είναι το - 6 00:00:23,720 --> 00:00:24,155 ΚΟΙΝΟ: Επιστήμη. 7 00:00:24,155 --> 00:00:26,030 DAVID Malan: Επιστήμη κέντρο. 8 00:00:26,030 --> 00:00:28,940 Έτσι, αυτό είναι πραγματικά ένα από τα πρώτα υπολογιστές 9 00:00:28,940 --> 00:00:30,220 πίσω από τη δεκαετία του 1940. 10 00:00:30,220 --> 00:00:33,790 Ήταν ένα από τα πρώτα ηλεκτρομηχανικών υπολογιστές 11 00:00:33,790 --> 00:00:35,730 που ήταν ικανή ιδιαίτερα μακρά, 12 00:00:35,730 --> 00:00:38,450 αυτοσυντηρούμενη υπολογισμούς, και ό, τι βλέπουμε στην πραγματικότητα σε 13 00:00:38,450 --> 00:00:41,580 το κέντρο της επιστήμης είναι μόνο ένα μικρό κομμάτι αυτού του πράγματος. 14 00:00:41,580 --> 00:00:44,170 Αυτό που σκεφτήκαμε να κάνουμε τότε είναι να ρίξετε μια ματιά πίσω σε ένα βίντεο 15 00:00:44,170 --> 00:00:46,670 που έγινε πριν από λίγο καιρό, η εισαγωγή 16 00:00:46,670 --> 00:00:47,520 πράγμα στο κόσμο. 17 00:00:47,520 --> 00:00:50,200 Και θα δείτε από τη μουσική και τη φωνή εκείνων που πράγματι 18 00:00:50,200 --> 00:00:52,070 ήταν πολύ ευτυχισμένη στιγμή. 19 00:00:54,885 --> 00:00:59,700 >> [ΑΝΑΠΑΡΑΓΩΓΗ ΒΙΝΤΕΟ] 20 00:00:59,700 --> 00:01:02,490 -Ένας θρίαμβος των μαθηματικών και της μηχανικής είναι η ικανότητα 21 00:01:02,490 --> 00:01:06,340 μεγάλο νέο αυτόματο κομπιουτεράκι στο Πανεπιστήμιο του Χάρβαρντ. 22 00:01:06,340 --> 00:01:08,620 Περίπλοκα προβλήματα στα μαθηματικά, βάλτε μέσα το 23 00:01:08,620 --> 00:01:12,420 μηχανή σε κωδικοποιημένη μορφή στην ταινία, με ακρίβεια επιλυθεί με ένα 24 00:01:12,420 --> 00:01:15,200 λεπτό κλάσμα του χρόνου που απαιτείται για την ανθρώπινη 25 00:01:15,200 --> 00:01:16,450 υπολογισμό. 26 00:01:27,050 --> 00:01:30,600 Σχεδιασμένο για να επιταχύνει όλες τις μορφές των μαθηματικών και επιστημονικών 27 00:01:30,600 --> 00:01:34,610 έρευνα, ο γίγαντας μηχανική του εγκεφάλου θα λειτουργήσει για το Ηνωμένο 28 00:01:34,610 --> 00:01:36,570 Πολιτείες Ναυτικού μέχρι το τέλος του πολέμου. 29 00:01:50,280 --> 00:01:52,980 >> DAVID Malan: Έτσι, αυτό που ίσως δεν γνωρίζετε είναι ότι ήταν σε 30 00:01:52,980 --> 00:01:56,310 αυτή η ίδια συσκευή που ένα όρος που όλοι θεωρούμε τώρα λίγο πολύ 31 00:01:56,310 --> 00:01:59,300 δεδομένο επινοήθηκε, ότι από ένα bug. 32 00:01:59,300 --> 00:02:01,140 Έτσι, ένας από τους μηχανικούς που εργάζονται σε αυτόν τον υπολογιστή 33 00:02:01,140 --> 00:02:05,280 κυριολεκτικά βρίσκεται ένας μικρός σκώρος στην μηχανή που προέκυψε 34 00:02:05,280 --> 00:02:07,580 σε ορισμένες λανθασμένους υπολογισμούς. 35 00:02:07,580 --> 00:02:10,410 Και καθώς η ιστορία πηγαίνει ότι σκώρος δέθηκε με ταινία σε αυτό το ημερολόγιο 36 00:02:10,410 --> 00:02:14,180 περιοδικό εδώ, πίσω από τις 9 Σεπτεμβρίου το 1940-κάτι, 37 00:02:14,180 --> 00:02:16,550 και έτσι γεννήθηκε για τον κόσμο του όρου "bug". 38 00:02:16,550 --> 00:02:19,880 Έτσι πλέον θεωρούμε σφάλματα να είναι οποιοδήποτε είδος των λαθών στην 39 00:02:19,880 --> 00:02:23,290 προγράμματα, είτε τεχνητές ή, στην περίπτωση αυτή, τα έντομα. 40 00:02:23,290 --> 00:02:25,030 >> Έτσι, μερικές ανακοινώσεις, καθώς προχωράμε. 41 00:02:25,030 --> 00:02:29,160 Έτσι CS50 έχει μια παράδοση που προσφέρουν γεύματα των ειδών για 42 00:02:29,160 --> 00:02:31,600 περισσότερες Παρασκευές κατά τη διάρκεια του εξαμήνου, όπου θα χρειαστούν 30 με 43 00:02:31,600 --> 00:02:34,650 40 μαθητές σε Fire and Ice στην πλατεία για casual 44 00:02:34,650 --> 00:02:36,390 κουβεντούλες, μιλάμε για επιστήμη των υπολογιστών, 45 00:02:36,390 --> 00:02:37,420 μιλήσουμε για το μέλλον. 46 00:02:37,420 --> 00:02:40,000 Καλούμε τους αποφοίτους και τους φίλους από τη βιομηχανία να κουβεντιάζει 47 00:02:40,000 --> 00:02:40,690 φοιτητές, καθώς και. 48 00:02:40,690 --> 00:02:44,020 Πραγματικά προς το τέλος του κάνει ό, τι είναι μια αρκετά μεγάλη κατηγορία 49 00:02:44,020 --> 00:02:46,740 όλο και πιο οικείο, τουλάχιστον μία φορά, ενώ για το 50 00:02:46,740 --> 00:02:47,710 υποσύνολα των μαθητών. 51 00:02:47,710 --> 00:02:50,940 Έτσι, αν θα θέλατε να ενωθούν μαζί μας αυτή την Παρασκευή, 1:15 μ.μ., πηγαίνετε στο 52 00:02:50,940 --> 00:02:53,340 CS50.net/lunch να RSVP. 53 00:02:53,340 --> 00:02:55,840 Και εμείς θα κάνουμε αυτό recurringly, έτσι ώστε να μην ανησυχείτε αν δεν είστε 54 00:02:55,840 --> 00:02:57,930 μεταξύ των πρώτων 30 ή έτσι αυτή την εβδομάδα. 55 00:02:57,930 --> 00:02:59,070 >> Έτσι, σημειώνει γραφέα. 56 00:02:59,070 --> 00:03:01,500 Μια λέξη σχετικά με τους πόρους που τώρα θα αρχίσουν να διατίθενται 57 00:03:01,500 --> 00:03:03,040 για τους μαθητές στην τάξη. 58 00:03:03,040 --> 00:03:05,540 Έτσι ώστε τα κεφάλια σας δεν χρειάζεται να είναι κάτω κατά τη διάρκεια διαλέξεων 59 00:03:05,540 --> 00:03:08,560 κακογραφία κάτω ό, τι λέω και ούτω καθεξής, τι κάνουμε 60 00:03:08,560 --> 00:03:10,765 αντί να παρέχει από το διδακτικό προσωπικό, ένα 61 00:03:10,765 --> 00:03:11,920 κανονική σειρά των σημειώσεων. 62 00:03:11,920 --> 00:03:14,850 Έτσι, έχουμε ένα από τα υποτρόφων διδασκαλία μας, ο Andrew Sellergren, 63 00:03:14,850 --> 00:03:17,830 που κάθεται κάθε εβδομάδα, εξετάζει τα βίντεο, και στη συνέχεια 64 00:03:17,830 --> 00:03:19,730 γράφει κάτω αυτό που νομίζουμε ότι είναι μια αρκετά 65 00:03:19,730 --> 00:03:21,840 έγκυρες σύνολο των σημειώσεων. 66 00:03:21,840 --> 00:03:24,180 Και λάτρης Ανδρέα, επίσης, τη θέση του snarky υποσημειώσεις 67 00:03:24,180 --> 00:03:24,820 ο πυθμένας. 68 00:03:24,820 --> 00:03:27,300 Έτσι θα απολαύσετε ελπίζουμε αυτά ως ένα βιβλίο αναφοράς για την 69 00:03:27,300 --> 00:03:30,230 διασκέδαση, και επίσης, έρχονται κουίζ φορά, ως μια ευκαιρία να επανεξετάσει 70 00:03:30,230 --> 00:03:31,830 τι συνέβη σε μεμονωμένες διαλέξεις. 71 00:03:31,830 --> 00:03:33,580 Έτσι, εκείνοι που συνδέονται με την σελίδα διαλέξεις. 72 00:03:33,580 --> 00:03:35,300 >> Πρόβλημα σετ 0, εν τω μεταξύ, είναι έξω. 73 00:03:35,300 --> 00:03:37,470 Και από την άποψη των πόρων που έχετε στη διάθεσή σας - 74 00:03:37,470 --> 00:03:38,020 η περιδιάβαση. 75 00:03:38,020 --> 00:03:39,730 Milo οδήγησε την πρώτη την Παρασκευή. 76 00:03:39,730 --> 00:03:41,470 Είναι γυρίστηκε, να θέσει σε απευθείας σύνδεση από το Σάββατο. 77 00:03:41,470 --> 00:03:44,030 Και έτσι συνειδητοποιήσουν, αν δεν είστε πραγματικά βέβαιοι πού να αρχίσετε, 78 00:03:44,030 --> 00:03:47,280 για το μέλλον ή p-ομάδες, να απευθύνεστε πάντοτε πρώτα το 79 00:03:47,280 --> 00:03:49,300 περιδιάβαση ή το βίντεο τους. 80 00:03:49,300 --> 00:03:52,950 Τομές είναι σε εξέλιξη? Σε cs50.net/section είναι όπου μπορείτε 81 00:03:52,950 --> 00:03:54,540 θα πρέπει να υποβάλουν τις προτιμήσεις σας, αν δεν έχετε 82 00:03:54,540 --> 00:03:55,880 ήδη, από σήμερα. 83 00:03:55,880 --> 00:03:58,140 Επειδή τα τμήματα θα ξεκινήσουν την ερχόμενη Κυριακή, Δευτέρα, 84 00:03:58,140 --> 00:03:58,760 και την Τρίτη. 85 00:03:58,760 --> 00:04:02,470 Κάνουμε τομές αυτές οι τρεις ημέρες, κάθε εβδομάδα από το 86 00:04:02,470 --> 00:04:03,870 εξάμηνο για το μεγαλύτερο μέρος. 87 00:04:03,870 --> 00:04:06,600 Και εμείς, επίσης, την εισαγωγή, και πάλι διαφορετικές πίστες. 88 00:04:06,600 --> 00:04:08,270 Έτσι, θα σας ζητηθεί για αυτό κοπής μορφή, αν 89 00:04:08,270 --> 00:04:10,350 δεν το έχουν ήδη δει, αν είστε μεταξύ εκείνων λιγότερο 90 00:04:10,350 --> 00:04:12,800 άνετο, πιο άνετα, ή κάπου στο ενδιάμεσο. 91 00:04:12,800 --> 00:04:14,960 Και αν είστε το είδος του στο φράκτη, γενικά κάπου στο 92 00:04:14,960 --> 00:04:18,160 μεταξύ είναι αυτό που οι περισσότεροι φοιτητές καταλήγουν έλεγχο. 93 00:04:18,160 --> 00:04:19,579 Ώρες γραφείου αρχίζουν απόψε. 94 00:04:19,579 --> 00:04:23,020 >> Έτσι Scratch είναι αρκετά χαμηλών τόνων, ακόμα κι αν είναι πολύ φυσικό 95 00:04:23,020 --> 00:04:25,300 να τρέξει σε διάφορα σφάλματα, ή να είναι αβέβαιοι ως προς το πώς να 96 00:04:25,300 --> 00:04:26,550 εφαρμόσουν κάτι. 97 00:04:26,550 --> 00:04:28,880 Έτσι συνειδητοποιούμε ότι θα αρχίσουμε ώρες γραφείου αυτή την εβδομάδα. 98 00:04:28,880 --> 00:04:30,500 Θα είναι στο Annenberg Δευτέρα, Τρίτη, Τετάρτη, 99 00:04:30,500 --> 00:04:34,300 Πέμπτη, 20:00 μμ - 23.00 μ.μ. κατά τη διάρκεια της διακοπής του εγκεφάλου. 100 00:04:34,300 --> 00:04:38,160 Άνω classmen μπορούν να έρθουν σε, και αν έχετε ποτέ πρόβλημα να πάρει 101 00:04:38,160 --> 00:04:40,720 στην πόρτα, γιατί θα πρέπει να το σύρσιμο, μιλάμε απλά το δρόμο σας 102 00:04:40,720 --> 00:04:42,560 και εξηγούν σε είστε με CS50. 103 00:04:42,560 --> 00:04:45,230 Συνήθως 20 - 30 από εμάς για το προσωπικό θα είναι εκεί για να βοηθήσει 104 00:04:45,230 --> 00:04:46,190 Είσαι ένας εναντίον ενός. 105 00:04:46,190 --> 00:04:48,980 >> Κατά την άφιξη, η ιδέα είναι η εξής: θα φέρετε το φορητό υπολογιστή σας, 106 00:04:48,980 --> 00:04:51,300 θα έχετε φορτιστή σας, θα έχουμε επιπλέον καλώδια τροφοδοσίας, 107 00:04:51,300 --> 00:04:53,320 ιδιαίτερα κατά μήκος του νότιου τοίχου του Annenberg όπου 108 00:04:53,320 --> 00:04:55,080 υπάρχει πολλές ηλεκτρικές πρίζες. 109 00:04:55,080 --> 00:04:59,290 Και το κύριο σημείο εισόδου για ώρες γραφείου Q & A είναι να πάει σε 110 00:04:59,290 --> 00:05:01,690 cs50.net/discuss και να δημοσιεύσετε 111 00:05:01,690 --> 00:05:02,580 ερώτησή σας εκεί. 112 00:05:02,580 --> 00:05:05,600 Και για να το επισημαίνουν με PSET 0 ή PSET 1, όποια και αν είναι η εβδομάδα 113 00:05:05,600 --> 00:05:06,810 μπορεί να συμβεί να είναι. 114 00:05:06,810 --> 00:05:09,240 Και τότε τι θα κάνουμε είναι να έχουμε έναν πίνακα των υποτρόφων διδασκαλίας 115 00:05:09,240 --> 00:05:12,040 Φυσικά και οι βοηθοί, γενικά 8 ή 10 ή έτσι μας, 116 00:05:12,040 --> 00:05:14,430 περνάει, κρατώντας ένα άγρυπνο μάτι για το διοικητικό συμβούλιο, και 117 00:05:14,430 --> 00:05:16,810 μάδημα μακριά ερωτήσεις πραγματικά όσο πιο γρήγορα μπορούμε, 118 00:05:16,810 --> 00:05:19,600 θα σας παραπέμψουμε σε σχετικές θέσεις, αν δεν έχετε βρει αυτούς 119 00:05:19,600 --> 00:05:22,220 τον εαυτό σας, σε απευθείας σύνδεση αναφορές, ανάλογα με την περίπτωση. 120 00:05:22,220 --> 00:05:24,280 Και στη συνέχεια, αν υπάρχουν προβλήματα, καθώς υπάρχουν αναπόφευκτα 121 00:05:24,280 --> 00:05:27,190 θα είναι, ή θα κάνει μόνο πιο λογικό να καθίσει ένας προς έναν, 122 00:05:27,190 --> 00:05:28,660 εργαστούν μέσω των προβλημάτων με κάποιον. 123 00:05:28,660 --> 00:05:30,810 >> Ή απλά έρχονται σε ώρες γραφείου πραγματικά 124 00:05:30,810 --> 00:05:31,640 χρειάζονται αυτή την νοοτροπία. 125 00:05:31,640 --> 00:05:33,400 Δεν θέλετε να πάτε μέσω της ηλεκτρονικής φόρμας, μπορείτε 126 00:05:33,400 --> 00:05:34,410 πραγματικά θέλουν να συναντηθούν με κάποιον. 127 00:05:34,410 --> 00:05:37,240 Επικοινωνήστε μαζί μας για ότι, και τι θα συμβεί είναι όταν σας 128 00:05:37,240 --> 00:05:40,620 ερώτηση έχει δει από ένα μέλος του προσωπικού, και 129 00:05:40,620 --> 00:05:43,660 καθορίσει, yup, αυτό θα πρέπει να αποστέλλονται σε ένα από τα 20 ή 130 00:05:43,660 --> 00:05:47,800 30 μέλη της ομάδας εδώ σε τοπικό επίπεδο, θα δείτε στο επάνω αριστερό μέρος αυτό 131 00:05:47,800 --> 00:05:51,590 Εισάγετε λίγο το κουμπί Queue αρχίζει να αναβοσβήνει για cs50.net / 132 00:05:51,590 --> 00:05:52,165 συζητήσουν. 133 00:05:52,165 --> 00:05:55,260 Και αυτό σας λέω ότι τώρα έχουν προσκληθεί, έτσι 134 00:05:55,260 --> 00:05:56,880 να μιλήσει, να εισέλθουν στην ουρά. 135 00:05:56,880 --> 00:05:59,090 Και κάνοντας κλικ σε αυτό το κουμπί, το όνομά σας θα εμφανιστεί στην 136 00:05:59,090 --> 00:06:02,660 ένα iPad ότι η greeter CS50, ένα από τα κεφάλια του μαθήματος, θα 137 00:06:02,660 --> 00:06:05,250 να κατέχει κοντά στην είσοδο του Annenberg, ο οποίος στη συνέχεια θα 138 00:06:05,250 --> 00:06:08,630 δείτε όπως απεικονίζεται εδώ, οι φοιτητές που έχουν απορίες σχετικά με 139 00:06:08,630 --> 00:06:11,630 η αριστερά, τα μέλη του προσωπικού που υπάρχουν στα δεξιά. 140 00:06:11,630 --> 00:06:14,830 Και με ένα κλικ από αριστερά και δεξιά, web browser σας θα 141 00:06:14,830 --> 00:06:18,610 αρχίσει να αναβοσβήνει το συντομότερο, για παράδειγμα, ο καθηγητής McGonnagal 142 00:06:18,610 --> 00:06:21,460 είναι έτοιμο να σας δούμε σε ένα συγκεκριμένο τραπέζι στο Annenberg. 143 00:06:21,460 --> 00:06:23,340 >> Έτσι, κάναμε μερικά από αυτό το προηγούμενο έτος. 144 00:06:23,340 --> 00:06:25,430 Έχουμε επανεκκίνηση ώρες γραφείου και 145 00:06:25,430 --> 00:06:26,980 εκ νέου εφαρμοστεί μεγάλο μέρος του λογισμικού. 146 00:06:26,980 --> 00:06:29,940 Έτσι συνειδητοποιούμε ότι αυτό θα ζεστάνει αυτή την εβδομάδα. 147 00:06:29,940 --> 00:06:32,970 Αλλά επίσης να συνειδητοποιήσουμε πολύ, τα προηγούμενα χρόνια, όπως μπορεί να έχετε ακούσει 148 00:06:32,970 --> 00:06:35,710 από τους φίλους, ώρες γραφείου είχε πράγματι 50 έως 149 00:06:35,710 --> 00:06:37,040 150 μαθητές ταυτόχρονα. 150 00:06:37,040 --> 00:06:39,300 Και είναι απλά δεν είναι δυνατό για μας να χειριστεί ότι 151 00:06:39,300 --> 00:06:42,060 αποτελεσματικά, ένα στο ένα, όλο το βράδυ. 152 00:06:42,060 --> 00:06:44,570 Και έτσι αυτό που είμαστε πραγματικά θα προσπαθήσουμε να κάνουμε φέτος είναι 153 00:06:44,570 --> 00:06:46,590 επωφεληθούμε από το γεγονός ότι πολλά ερωτήματα είναι 154 00:06:46,590 --> 00:06:49,050 συχνές και μπορεί συχνά να απαντηθεί καλύτερα 155 00:06:49,050 --> 00:06:50,030 ασύγχρονα. 156 00:06:50,030 --> 00:06:52,140 Έτσι, μπορείτε να ταξινομήσετε μέσω των σκέφτονται ανταπόκριση του προσωπικού, 157 00:06:52,140 --> 00:06:54,360 και μπορούμε να σκεφτούμε με τον κωδικό σας, χωρίς να το θερμαινόμενο 158 00:06:54,360 --> 00:06:57,050 πίεση αναγκαστικά αγωνίζονται 159 00:06:57,050 --> 00:06:58,210 μέσω αυτού πλάι-πλάι. 160 00:06:58,210 --> 00:07:00,980 Έτσι, εκτιμούμε ότι περίπου το ένα τρίτο ή το ήμισυ των ερωτήσεων 161 00:07:00,980 --> 00:07:03,500 θα πρέπει να αποστέλλονται σε πρόσωπο, και εμείς θα προσπαθήσουμε να κόβω από το 162 00:07:03,500 --> 00:07:05,530 πολλοί ως το ήμισυ ή περισσότερο ηλεκτρονικά, 163 00:07:05,530 --> 00:07:06,710 κατά τις ώρες γραφείου. 164 00:07:06,710 --> 00:07:08,070 Και θα συνεχίσει να χρησιμοποιεί Συζήτηση 165 00:07:08,070 --> 00:07:09,990 καθ 'όλη τη διάρκεια της εβδομάδας, καθώς και. 166 00:07:09,990 --> 00:07:12,680 >> Και, τέλος, να συνειδητοποιήσουν ότι η πορεία αυτή μπορεί να ληφθεί επιτυχίας / αποτυχίας. 167 00:07:12,680 --> 00:07:16,230 Έτσι, εάν είστε στο φράκτη ή απλά σκεφτείτε ότι είστε πραγματικά 168 00:07:16,230 --> 00:07:18,650 δεν είναι σίγουρος αν αυτό είναι ο κόσμος για σένα, ή αυτό είναι πραγματικά 169 00:07:18,650 --> 00:07:21,310 αρκετά ξένη προς εσάς, να συνειδητοποιήσουμε ότι αυτό είναι ένας θαυμάσιος τρόπος 170 00:07:21,310 --> 00:07:24,840 για την απόκτηση μέχρι κάποια εμπιστοσύνη με την οποία να μπει η 171 00:07:24,840 --> 00:07:26,780 τάξη, όπως έκανα με ειλικρίνεια, χρόνια πριν. 172 00:07:26,780 --> 00:07:28,630 Και στη συνέχεια, έχουν πέντε εβδομάδες για να ταξινομήσετε των καταλάβω για 173 00:07:28,630 --> 00:07:30,850 τον εαυτό σας αν θέλετε να μείνετε επιτυχίας / αποτυχίας, μεταβείτε σε μια επιστολή 174 00:07:30,850 --> 00:07:31,800 βαθμού, ή τα παρόμοια. 175 00:07:31,800 --> 00:07:34,050 Και συνήθως ό, τι επιτυχίας / αποτυχίας δεν νομίζω, για τους μαθητές είναι 176 00:07:34,050 --> 00:07:36,700 ότι, αν βάλετε στο ότι 10 ώρες, 20 ώρες, ανεξάρτητα από το 177 00:07:36,700 --> 00:07:38,830 μπορεί να είναι για κάποια προβλήματα, και είστε χτυπάς το κεφάλι σου 178 00:07:38,830 --> 00:07:39,690 έναντι του τοιχώματος, 179 00:07:39,690 --> 00:07:41,750 και μπορείτε πραγματικά απλά δεν μπορεί να κυνηγήσει κάτι κάτω, και σας 180 00:07:41,750 --> 00:07:44,230 έχουν τόσα πολλά άλλα πράγματα που πρέπει να κάνετε, ειλικρινά, αυτό που 181 00:07:44,230 --> 00:07:46,070 νομίζω επιτυχίας / αποτυχίας είναι, παίρνει την άκρη του 182 00:07:46,070 --> 00:07:47,250 καταστάσεις όπως αυτή. 183 00:07:47,250 --> 00:07:49,350 Σε περίπτωση που έχετε λάβει το πράγμα 90% του τρόπο. 184 00:07:49,350 --> 00:07:50,830 Ξέρετε, δεν είναι αρκετά τέλειος. 185 00:07:50,830 --> 00:07:52,950 Αλλά έχεις πολλά από αυτό, παρ 'όλα αυτά. 186 00:07:52,950 --> 00:07:55,440 Έτσι, θεωρούν επιτυχίας / αποτυχίας ως δίνοντάς σας ότι 187 00:07:55,440 --> 00:07:57,590 νοητικό μοντέλο, ίσως. 188 00:07:57,590 --> 00:08:00,680 >> Εντάξει, έτσι την περασμένη εβδομάδα στο Scratch περιστέρι, και εμείς 189 00:08:00,680 --> 00:08:03,610 μίλησε για τον προγραμματισμό σε ένα αρκετά υψηλό επίπεδο γραφικών. 190 00:08:03,610 --> 00:08:05,340 Και σήμερα κάνουμε τη μετάβαση σε μια γλώσσα 191 00:08:05,340 --> 00:08:08,300 που ονομάζεται C, ένα χαμηλότερο επίπεδο γλώσσας προγραμματισμού στην κορυφή του 192 00:08:08,300 --> 00:08:11,260 τα οποία πολλές σύγχρονες γλώσσες τώρα χτίστηκε, συμπεριλαμβανομένων μερικών 193 00:08:11,260 --> 00:08:13,010 από αυτά θα πρέπει να χρησιμοποιούν προς το τέλος του χρόνου. 194 00:08:13,010 --> 00:08:15,530 Και συντακτικά, τι μοιάζουν 195 00:08:15,530 --> 00:08:17,330 Είναι όλα αρκετά παρόμοια. 196 00:08:17,330 --> 00:08:19,080 Ας αρχίσουμε να κάνουν αυτή τη μετάβαση εδώ. 197 00:08:19,080 --> 00:08:21,730 Έτσι, αυτό ήταν ένα πρόγραμμα που την περασμένη εβδομάδα ήταν η απλούστερη 198 00:08:21,730 --> 00:08:22,910 Γεια σας προγράμματα παγκοσμίως. 199 00:08:22,910 --> 00:08:25,560 Είναι απλά τυπώνεται στην οθόνη γειά σου κόσμο, με ένα 200 00:08:25,560 --> 00:08:27,650 μικρό συννεφάκι που βγαίνει από την γάτα. 201 00:08:27,650 --> 00:08:30,590 Λοιπόν, αν αρχίσουμε τώρα να μεταφράσει αυτό σε ένα άλλο 202 00:08:30,590 --> 00:08:33,419 γλώσσας, να συνειδητοποιήσουν ότι οι ιδέες σήμερα και την Τετάρτη 203 00:08:33,419 --> 00:08:36,450 είναι ταυτόσημα, αλλά η σύνταξη αρχίζει να αλλάζει. 204 00:08:36,450 --> 00:08:39,370 Έτσι, ενώ την περασμένη εβδομάδα είχαμε, όταν κάνετε κλικ πράσινη σημαία, ας πούμε 205 00:08:39,370 --> 00:08:40,340 Γεια σας κόσμο. 206 00:08:40,340 --> 00:08:43,870 Σήμερα θα πάμε να έχουν int, κυρίως, κενό, printf, 207 00:08:43,870 --> 00:08:46,350 επιστροφή, με κάποια άλλη σύνταξη εκεί, καθώς και. 208 00:08:46,350 --> 00:08:49,200 Άγκιστρα, και παρενθέσεις και εισαγωγικά, και εταζέρα. 209 00:08:49,200 --> 00:08:54,520 Αλλά συνειδητοποιούν ότι ο πυρήνας της ιδέας εδώ είναι η εκτύπωση, 210 00:08:54,520 --> 00:08:58,470 και, τελικά, το γεγονός ότι η κύρια τώρα πρόκειται να είναι 211 00:08:58,470 --> 00:09:00,770 συνώνυμη με την έναρξη ενός προγράμματος. 212 00:09:00,770 --> 00:09:04,250 Κύρια πρόκειται να είναι όπου η πράσινη σημαία ξεκινά τα πράγματα μακριά. 213 00:09:04,250 --> 00:09:06,390 >> Έτσι τώρα, ας δώσουμε έμφαση, εκτός μερικά από τα δομικά στοιχεία εδώ 214 00:09:06,390 --> 00:09:08,650 πριν βουτήξει σε κάποια συγκεκριμένα παραδείγματα. 215 00:09:08,650 --> 00:09:11,620 Γι 'αυτό και ονομάζεται αυτή η δήλωση την περασμένη εβδομάδα, σύμφωνα με την οποία είναι ακριβώς 216 00:09:11,620 --> 00:09:12,470 μια εντολή. 217 00:09:12,470 --> 00:09:15,660 Κάντε το αυτό - στην περίπτωση αυτή, να πω γεια κόσμο. 218 00:09:15,660 --> 00:09:18,400 Λοιπόν σε C, αν κοιτάξουμε μόνο αυτή τη γραμμή, αυτό είναι το πώς είμαστε 219 00:09:18,400 --> 00:09:20,920 θα αρχίσει να εκφράζουν το συγκεκριμένο κομμάτι του παζλ: 220 00:09:20,920 --> 00:09:24,780 printf ("Hello World")?. 221 00:09:24,780 --> 00:09:27,330 Και τώρα εμείς θα δώσουμε έμφαση, εκτός αυτά όλο και περισσότερο την πάροδο του χρόνου, 222 00:09:27,330 --> 00:09:29,330 αλλά συνειδητοποιούν ότι υπάρχει ένα σχέδιο εδώ. 223 00:09:29,330 --> 00:09:31,870 Έτσι ένα, έχουμε αυτό το πράγμα που ονομάζεται printf, η οποία είναι 224 00:09:31,870 --> 00:09:34,310 ουσιαστικά ανάλογη με την λέξη Πείτε. 225 00:09:34,310 --> 00:09:35,800 Αυτό είναι ό, τι πρόκειται να κάνει. 226 00:09:35,800 --> 00:09:37,870 Printf, και στ εδώ σημαίνει "που έχει διαμορφωθεί". 227 00:09:37,870 --> 00:09:39,270 Έτσι, αυτό σημαίνει απλά μπορείτε να εισάγετε 228 00:09:39,270 --> 00:09:41,600 διάφορες αισθητικές λεπτομέρειες. 229 00:09:41,600 --> 00:09:43,770 Έτσι unquote απόσπασμα είναι η αρχή για το τι θα πάμε 230 00:09:43,770 --> 00:09:45,340 για να αρχίσει καλώντας μια σειρά. 231 00:09:45,340 --> 00:09:47,110 Μια λέξη, μια φράση, μια πρόταση. 232 00:09:47,110 --> 00:09:50,220 Μια συμβολοσειρά σε μια γλώσσα προγραμματισμού είναι μία ακολουθία από μηδέν 233 00:09:50,220 --> 00:09:51,330 ή περισσότερους χαρακτήρες. 234 00:09:51,330 --> 00:09:54,390 Έτσι h-l-e-l-o, κόμμα, και ούτω καθεξής είναι, 235 00:09:54,390 --> 00:09:56,290 unquote απόσπασμα, ένα string. 236 00:09:56,290 --> 00:09:58,710 Και τώρα backslash n, λίγο συντακτικά περίεργο, αλλά εμείς 237 00:09:58,710 --> 00:10:01,780 ήδη οριστεί ότι την περασμένη εβδομάδα υπό την έννοια ό, τι; 238 00:10:01,780 --> 00:10:02,630 Είναι απλά μια νέα γραμμή. 239 00:10:02,630 --> 00:10:05,000 Είναι απλά ένας τρόπος για να διαβιβάσουμε στον υπολογιστή που θέλετε η 240 00:10:05,000 --> 00:10:07,700 ισοδύναμο του να χτυπήσει το Enter εκεί, αλλά δεν το κάνετε 241 00:10:07,700 --> 00:10:10,460 θέλετε να χτυπήσει πραγματικά Εισάγετε και ως εκ τούτου να βρωμίσει επάνω όλα τα 242 00:10:10,460 --> 00:10:12,130 μορφοποίηση των πραγματικών πρόγραμμα σας. 243 00:10:12,130 --> 00:10:15,500 Τώρα οι παρενθέσεις περικλείουν αυτή τη σειρά, ανοιχτή παρένθεση και 244 00:10:15,500 --> 00:10:18,130 κοντά παρένθεση, και μέσα από αυτό είναι σειρά μας. 245 00:10:18,130 --> 00:10:22,600 Επειδή αυτό συμβαίνει επειδή σε C, και άλλα προγράμματα 246 00:10:22,600 --> 00:10:27,510 γλώσσες, πράγματα όπως να printf επιχειρήματα, ή να 247 00:10:27,510 --> 00:10:28,420 παραμέτρους. 248 00:10:28,420 --> 00:10:31,490 >> Έτσι αρχίσουμε να σκεφτόμαστε τώρα αυτό το μωβ μπλοκ Say ως 249 00:10:31,490 --> 00:10:34,890 λειτουργία, ως μέθοδος, ως διαδικασία. 250 00:10:34,890 --> 00:10:36,890 Μπορείτε να καλέσετε πραγματικά ό, τι θέλετε για τώρα, αλλά 251 00:10:36,890 --> 00:10:39,260 Είναι το είδος του μια μικρογραφία του προγράμματος που κάνει ένα μόνο 252 00:10:39,260 --> 00:10:41,480 πράγμα, σε μία μόνο γραμμή, όχι λιγότερο. 253 00:10:41,480 --> 00:10:43,620 Έτσι printf είναι επίσης τι θα πάμε για να ξεκινήσει μια κλήση 254 00:10:43,620 --> 00:10:46,680 λειτουργία, και τις λειτουργίες κάνουν κάτι - σε αυτή την περίπτωση 255 00:10:46,680 --> 00:10:49,320 εκτυπώνει μια μορφοποιημένη συμβολοσειρά στην οθόνη - 256 00:10:49,320 --> 00:10:53,220 αλλά λειτουργεί επίσης τα επιχειρήματα ή τις παραμέτρους. 257 00:10:53,220 --> 00:10:55,880 Και από τα επιχειρήματα ή τις παραμέτρους, σας ευχαριστώ, εννοούμε 258 00:10:55,880 --> 00:11:01,220 ότι η συμπεριφορά τους μπορεί να επηρεαστεί από αυτό που περνάτε στο 259 00:11:01,220 --> 00:11:03,420 εσωτερικό των παρενθέσεων. 260 00:11:03,420 --> 00:11:06,460 Έτσι, στην περίπτωση αυτή, printf ανάγκες να πει τι να εκτυπώσετε, και εμείς 261 00:11:06,460 --> 00:11:09,520 μόλις περάσει, σε διπλά εισαγωγικά, εδώ το string που 262 00:11:09,520 --> 00:11:11,270 πραγματικά θέλετε να εκτυπώσετε. 263 00:11:11,270 --> 00:11:14,060 Και το ερωτηματικό για το τέλος αυτής της γραμμής είναι μόλις ένα 264 00:11:14,060 --> 00:11:18,020 ιστορική ενόχληση οπότε στο τέλος του περισσότερες γραμμές του κώδικα, 265 00:11:18,020 --> 00:11:21,170 βάζετε ένα ερωτηματικό για να κάνει σούπερ σαφές στον υπολογιστή 266 00:11:21,170 --> 00:11:23,020 ότι αυτή η γραμμή του κώδικα τελειώνει εδώ. 267 00:11:23,020 --> 00:11:25,600 Τώρα αυτό είναι καλό, γιατί, όπως θα δούμε, όπως τα προγράμματα να πάρετε περισσότερες 268 00:11:25,600 --> 00:11:29,030 συγκρότημα, το ερωτηματικό θα κάνει σούπερ σαφές σε εμάς τους ανθρώπους, 269 00:11:29,030 --> 00:11:32,280 και επίσης ο υπολογιστής, όπου οι γραμμές της έναρξης και λήξης κώδικα. 270 00:11:32,280 --> 00:11:34,360 Συνειδητοποιήστε ότι μερικές γλώσσες δεν έχουν κάποια 271 00:11:34,360 --> 00:11:35,045 αυτών των ίδιων στοιχείων. 272 00:11:35,045 --> 00:11:37,870 Και στην πραγματικότητα, σε JavaScript, δεν χρειάζεται πάντα κάτι 273 00:11:37,870 --> 00:11:38,670 όπως το ερωτηματικό. 274 00:11:38,670 --> 00:11:40,210 Αλλά περισσότερα για αυτό να έρθει. 275 00:11:40,210 --> 00:11:41,170 >> Έτσι θηλιές. 276 00:11:41,170 --> 00:11:43,520 Είχαμε κάτι τέτοιο, πολύ διαισθητικά, προφανές, κάντε 277 00:11:43,520 --> 00:11:44,860 κάτι ξανά και ξανά και ξανά. 278 00:11:44,860 --> 00:11:47,720 Όπως βάζοντας σε κάλτσες, ή λέγοντας γεια, σε αυτή την περίπτωση. 279 00:11:47,720 --> 00:11:51,090 Λοιπόν, αρχής γενομένης από σήμερα σε C, θα μπορούσαμε να εκφράσουμε αυτό το Ξυστό 280 00:11:51,090 --> 00:11:54,970 μπλοκάρουν ενώ η (πραγματική) printf ("Hello World"). 281 00:11:54,970 --> 00:11:57,630 Έτσι παρατηρήσετε αρχίζουμε να βασιστεί στην κυριολεξία το παζλ 282 00:11:57,630 --> 00:11:58,480 κομμάτι από πριν. 283 00:11:58,480 --> 00:12:01,310 Έχουμε το ίδιο μοβ μπλοκ, αλλά είναι μέσα από αυτό 284 00:12:01,310 --> 00:12:04,880 παρενθετική πάντα μπλοκ, και ο καλύτερος τρόπος για να μεταφράσει ότι 285 00:12:04,880 --> 00:12:06,480 έως C είναι ως ακολούθως. 286 00:12:06,480 --> 00:12:08,130 Δεν υπάρχει πάντα λέξη-κλειδί. 287 00:12:08,130 --> 00:12:10,940 Δεν μπορείτε απλά να πληκτρολογήσετε f-o-r-ε-ν-ε-ρ σε C. 288 00:12:10,940 --> 00:12:13,440 Έτσι, το πιο κοντινό ανάλογο είναι λίγο. 289 00:12:13,440 --> 00:12:17,050 >> Τώρα, ενώ η (πραγματική) φαίνεται λίγο ανόητο, επειδή κάνει την τιμή 290 00:12:17,050 --> 00:12:18,700 από ποτέ αληθινή αλλαγή; 291 00:12:18,700 --> 00:12:19,810 Προφανώς όχι. 292 00:12:19,810 --> 00:12:22,770 Είναι σαν να λέμε, ενώ το ένα, ενώ σε, ενώ είναι αλήθεια. 293 00:12:22,770 --> 00:12:25,430 Είναι όλα το ίδιο πράγμα, αλήθεια είναι πάντα η περίπτωση. 294 00:12:25,430 --> 00:12:29,860 Έτσι, αυτός ο βρόχος προκαλεί πραγματικά τι είδους βρόχο; 295 00:12:29,860 --> 00:12:31,210 Ακριβώς ένα άπειρο βρόχο, δεξιά. 296 00:12:31,210 --> 00:12:32,930 Ένας βρόχος για πάντα ή όπως ζήτησε την περασμένη εβδομάδα, 297 00:12:32,930 --> 00:12:33,870 μόλις ένα άπειρο βρόχο. 298 00:12:33,870 --> 00:12:35,250 Έτσι, μερικές φορές αυτό είναι κακό. 299 00:12:35,250 --> 00:12:37,060 Μερικές φορές αυτό είναι ένα bug, μερικές φορές γι 'αυτό μπορείτε να πάρετε 300 00:12:37,060 --> 00:12:39,340 η περιστρεφόμενη μπάλα ή κλεψύδρα ή κάτι παρόμοιο. 301 00:12:39,340 --> 00:12:41,260 Αλλά σε αυτή την περίπτωση, σκόπιμα, για ο, τιδήποτε 302 00:12:41,260 --> 00:12:43,040 λόγο, ήθελε να εκτυπώσετε το ίδιο πράγμα ξανά 303 00:12:43,040 --> 00:12:43,970 και ξανά και ξανά. 304 00:12:43,970 --> 00:12:45,900 Ή στην περίπτωση του σαν ένα ρολόι, που θέλετε να κάνετε 305 00:12:45,900 --> 00:12:47,470 κάτι ξανά και ξανά και ξανά. 306 00:12:47,470 --> 00:12:49,070 Έτσι άπειρες φορές μπορεί να έχει νόημα. 307 00:12:49,070 --> 00:12:53,560 Και αυτό είναι το πώς σε C θα μπορούσαμε να μεταφράσει πάντα στον κώδικα. 308 00:12:53,560 --> 00:12:55,570 >> Έτσι, τώρα αυτό είναι λίγο πιο συγκεκριμένος. 309 00:12:55,570 --> 00:12:58,880 Είχαμε επαναλάβετε 10 φορές την ακόλουθη δήλωση. 310 00:12:58,880 --> 00:13:02,490 Έτσι, ενώ η (πραγματική) δεν εργάζονται αρκετά εκεί, γιατί είναι αλήθεια 311 00:13:02,490 --> 00:13:03,590 πάντα αλήθεια. 312 00:13:03,590 --> 00:13:07,060 Έτσι, αν θέλουμε να εξετάζουν την έκδοση C, τώρα το παίρνει σύνταξη 313 00:13:07,060 --> 00:13:08,180 λίγο πιο αινιγματικό. 314 00:13:08,180 --> 00:13:11,380 Αλλά για να είμαι ειλικρινής τη στιγμή που θα αρχίσουμε να βλέπουμε αυτό, παίρνει όλα 315 00:13:11,380 --> 00:13:12,600 αρκετά εξοικειωμένοι γρήγορα. 316 00:13:12,600 --> 00:13:14,370 Έτσι, αυτό είναι ό, τι λέγεται για το βρόχο. 317 00:13:14,370 --> 00:13:17,210 Ένας βρόχος for πρόκειται να ενημερώσει τον υπολογιστή για να κάνει κάτι 318 00:13:17,210 --> 00:13:20,710 ξανά και ξανά και ξανά για όσο χρονικό διάστημα 319 00:13:20,710 --> 00:13:21,850 αυτά τα πράγματα είναι αλήθεια. 320 00:13:21,850 --> 00:13:23,370 Τώρα τι εννοούμε με αυτό; 321 00:13:23,370 --> 00:13:25,470 Λοιπόν, υπάρχουν τρία μέρη για ένα για βρόχο, και θα πάμε να 322 00:13:25,470 --> 00:13:28,240 επανέλθουμε σ 'αυτό το πλαίσιο των πραγματικών 323 00:13:28,240 --> 00:13:29,100 παραδείγματα σε μια στιγμή. 324 00:13:29,100 --> 00:13:31,650 Γι 'αυτό μην ανησυχείτε αν δεν είναι αρκετά βυθιστεί σε όλα με τη μία. 325 00:13:31,650 --> 00:13:35,400 Αλλά int i = 0 είναι, τα πολυλογώ, λέγοντας μου δώσει μια 326 00:13:35,400 --> 00:13:38,290 μεταβλητή αυτή είναι του τύπου integer, έτσι ώστε να μου δώσει έναν αριθμό 327 00:13:38,290 --> 00:13:40,890 που ονομάζεται i, και να προετοιμάσει 0. 328 00:13:40,890 --> 00:13:43,460 Αυτό είναι σαν να μου δώσει μια αλγεβρική μεταβλητή x και 329 00:13:43,460 --> 00:13:44,580 αρχικοποίηση στο 0. 330 00:13:44,580 --> 00:13:46,250 Αλλά σε αυτή την περίπτωση ονομάζεται το i. 331 00:13:46,250 --> 00:13:49,120 Στη συνέχεια, στο μέσον, που λέει i είναι μικρότερο από 10. 332 00:13:49,120 --> 00:13:52,150 Αυτό λέει την υπολογιστή δεν τα εξής πράγματα τόσο καιρό 333 00:13:52,150 --> 00:13:53,770 όπως i είναι μικρότερο από 10. 334 00:13:53,770 --> 00:13:55,370 Και προφανώς ξεκινά λιγότερο από το 10, επειδή 335 00:13:55,370 --> 00:13:56,550 ξεκινά από το 0. 336 00:13:56,550 --> 00:13:59,150 Στη συνέχεια, τέλος, μπορείτε να μαντέψετε τι ίσως i + + μέσα. 337 00:13:59,150 --> 00:14:02,140 Είναι ένα μικρό κομμάτι της σύνταξης που απλά σημαίνει αυξήσετε i. 338 00:14:02,140 --> 00:14:05,270 Έτσι, προσθέστε 1 έως i, ξανά και ξανά και ξανά. 339 00:14:05,270 --> 00:14:09,260 >> Και έτσι όπως θα δούμε αυτό το βρόχο, αυτή η σύνταξη, μάλλον, υλοποιεί 340 00:14:09,260 --> 00:14:12,160 ακριβώς το ίδιο πράγμα που, ειλικρινά, σε Scratch ήταν ακριβώς έτσι 341 00:14:12,160 --> 00:14:13,250 πολύ πιο εύκολο να εκφράσουν. 342 00:14:13,250 --> 00:14:15,170 Επαναλάβετε 10, και είστε έτοιμοι. 343 00:14:15,170 --> 00:14:17,690 Στη C, και στις περισσότερες γλώσσες προγραμματισμού, πρέπει να είναι ένα 344 00:14:17,690 --> 00:14:20,190 λίγο πιο κατατοπιστικός για τον υπολογιστή και στην πραγματικότητα 345 00:14:20,190 --> 00:14:21,630 καθορίσετε κάτι τέτοιο. 346 00:14:21,630 --> 00:14:23,730 Αλλά θα επανέλθω σε αυτό και άλλες σύνταξη. 347 00:14:23,730 --> 00:14:24,780 >> Τι γίνεται με τις μεταβλητές; 348 00:14:24,780 --> 00:14:26,940 Το Scratch είχαμε κάτι σαν αυτά τα πορτοκαλί μπλοκ, 349 00:14:26,940 --> 00:14:28,180 όπου θα μπορούσα να δηλώσετε μια μεταβλητή. 350 00:14:28,180 --> 00:14:30,000 Ας το ονομάσουμε αυθαίρετα μετρητή. 351 00:14:30,000 --> 00:14:31,880 Ας γίνει η προετοιμασία στο 0, και στη συνέχεια 352 00:14:31,880 --> 00:14:33,240 ας κάνουμε κάτι για πάντα. 353 00:14:33,240 --> 00:14:35,760 Σε αυτή την περίπτωση το Scratch λέω από τον πάγκο, έτσι ώστε η 354 00:14:35,760 --> 00:14:38,230 γάτα πρόκειται να έχουν ένα μικρό συννεφάκι που μιλάει 355 00:14:38,230 --> 00:14:40,010 ο αριθμός που είναι σε αυτή τη μεταβλητή. 356 00:14:40,010 --> 00:14:42,460 Και τότε θα έχουμε από την αντιμετώπιση της αλλαγής 1. 357 00:14:42,460 --> 00:14:45,760 Έτσι, όλα αυτά είναι τυλιγμένο μέσα σε μια κλειδαριά πάντα. 358 00:14:45,760 --> 00:14:48,960 Γι 'αυτό και ήδη έχουν τώρα τα δομικά στοιχεία σε C με 359 00:14:48,960 --> 00:14:50,040 το οποίο να μεταφράσει αυτό. 360 00:14:50,040 --> 00:14:51,650 >> Ένας τρόπος θα μπορούσαμε να κάνουμε αυτό που είναι. 361 00:14:51,650 --> 00:14:53,890 Δώσε μου έναν ακέραιο, καλέστε το αντίθετο. 362 00:14:53,890 --> 00:14:55,190 Initialize είναι στο 0 363 00:14:55,190 --> 00:14:56,490 στην πρώτη γραμμή εκεί. 364 00:14:56,490 --> 00:14:59,390 Ενώ η (πραγματική), έτσι είμαι κλέβει την ιδέα από μια στιγμή 365 00:14:59,390 --> 00:15:01,300 πριν, να προχωρήσει και να κάνετε τα εξής. 366 00:15:01,300 --> 00:15:04,880 Εκτυπώστε το μετρητή, και στη συνέχεια να αυξήσετε την αντίθεση, 367 00:15:04,880 --> 00:15:06,930 ξανά, και ξανά, και ξανά. 368 00:15:06,930 --> 00:15:09,380 Ή πάλι, + + σημαίνει απλά προσθέστε 1 σε κάτι. 369 00:15:09,380 --> 00:15:11,030 Αλλά υπάρχει ένα νέο κομμάτι της σύνταξης εδώ. 370 00:15:11,030 --> 00:15:15,730 Τι πηδούν έξω, όπως δεν προηγούμενα παραδείγματα μεταξύ μας; 371 00:15:15,730 --> 00:15:17,190 Ναι, αυτό το δ%. 372 00:15:17,190 --> 00:15:19,810 Έτσι, μπορείτε να συμπεράνουμε ποια είναι ίσως αυτό που κάνει, ειλικρινά, με βάση 373 00:15:19,810 --> 00:15:21,410 σχετικά με το τι το μπλοκ Scratch κάνει. 374 00:15:21,410 --> 00:15:24,510 Αλλά και πάλι σε C, εμείς απλά πρέπει να είναι λίγο πιο συγκεκριμένη 375 00:15:24,510 --> 00:15:25,990 όταν πρόκειται για την εκφράζοντας τον εαυτό μας. 376 00:15:25,990 --> 00:15:30,560 >> Έτσι printf ("% d \ n"). 377 00:15:30,560 --> 00:15:32,320 Καλά οι περισσότεροι από αυτό που μπορούμε να πετάμε τόσο εξοικειωμένοι. 378 00:15:32,320 --> 00:15:34,910 Τα εισαγωγικά σημαίνει απλά ότι είναι ένα string, backslash n 379 00:15:34,910 --> 00:15:35,970 είναι απλά μια νέα γραμμή. 380 00:15:35,970 --> 00:15:38,860 Έτσι, το μόνο νέο πράγμα εδώ είναι% d. 381 00:15:38,860 --> 00:15:40,390 Και όλα αυτά είναι είναι ένα σύμβολο κράτησης θέσης. 382 00:15:40,390 --> 00:15:43,510 Δ% πρόκειται να υποδηλώσει ένα δεκαδικό αριθμό. 383 00:15:43,510 --> 00:15:47,820 Και% d υπολογιστή μέσα, βάλτε ένα δεκαδικό αριθμό εδώ. 384 00:15:47,820 --> 00:15:49,450 Λοιπόν, τι νούμερο θέλετε να βάλει εκεί; 385 00:15:49,450 --> 00:15:52,400 Λοιπόν, όπως ίσως μπορείτε να συμπεράνουμε, μετά το κόμμα λέμε 386 00:15:52,400 --> 00:15:55,480 μετρητή, που είναι το όνομα μιας μεταβλητής που δηλώνεται ή 387 00:15:55,480 --> 00:15:57,260 δημιουργήθηκε ένα ζευγάρι γραμμές νωρίτερα. 388 00:15:57,260 --> 00:16:02,420 Έτσι, αυτό είναι ακριβώς ο τρόπος Γ της συνδέοντας σε μια μεταβλητή σε ένα 389 00:16:02,420 --> 00:16:04,480 σειρά δυναμικά. 390 00:16:04,480 --> 00:16:07,350 Επειδή αντίθετα, αν είχα κάνει κάτι σαν αντί 391 00:16:07,350 --> 00:16:12,470 αυτό, printf ("μετρητή"), τι θα ήταν αυτό 392 00:16:12,470 --> 00:16:15,220 πρόγραμμα αντί κάνουμε, πιθανώς; 393 00:16:15,220 --> 00:16:17,260 Θα εκτυπώσετε κυριολεκτικά "μετρητή". 394 00:16:17,260 --> 00:16:18,750 Ποια δεν είναι το αποτέλεσμα που θέλω. 395 00:16:18,750 --> 00:16:20,920 Πρέπει να υποκαταστήσει σε κάποιο αριθμητική τιμή. 396 00:16:20,920 --> 00:16:24,340 Έτσι, θα δούμε ότι λειτουργεί τότε, όπως printf, δεν μπορεί να 397 00:16:24,340 --> 00:16:26,930 μόλις ενιαία επιχειρήματα, όπως 398 00:16:26,930 --> 00:16:28,150 "Hello world". 399 00:16:28,150 --> 00:16:32,050 Μπορούν να λάβουν απόσπασμα unquote κόμμα, και στη συνέχεια κάποιες μεταβλητές 400 00:16:32,050 --> 00:16:35,830 που θα πάρει συνδεθεί σε, όπως θα δούμε την προηγούμενη σειρά 401 00:16:35,830 --> 00:16:38,280 μέσω αυτών των συμβόλων κράτησης θέσης σημάδι%. 402 00:16:38,280 --> 00:16:39,660 >> Λοιπόν, τι γίνεται με Boolean εκφράσεις; 403 00:16:39,660 --> 00:16:42,200 Boolean εκφράσεις ήταν αυτές οι τιμές, αληθής ή ψευδής. 404 00:16:42,200 --> 00:16:42,830 Ναι ή όχι. 405 00:16:42,830 --> 00:16:44,020 1 ή 0. 406 00:16:44,020 --> 00:16:45,190 ON ή OFF. 407 00:16:45,190 --> 00:16:47,570 Έτσι, στο Ξυστό μοιάζουν με αυτό, και να παρατηρήσετε ότι η 408 00:16:47,570 --> 00:16:50,170 μπλοκ κάτω εδώ είναι στην πραγματικότητα το συνδυασμό 409 00:16:50,170 --> 00:16:51,500 δύο μικρότερων μπλοκ. 410 00:16:51,500 --> 00:16:53,610 Γι 'αυτό και το είδος του σέρνεται και το έριξε τρία κομμάτια παζλ 411 00:16:53,610 --> 00:16:56,450 μαζί για να κάνουν αυτό το μεγαλύτερο κομμάτι του παζλ εκεί έτσι ώστε να μπορώ 412 00:16:56,450 --> 00:17:00,420 θα μπορούσε να δημιουργήσει την εντύπωση ότι θέλω x να είναι μικρότερο από το y και 413 00:17:00,420 --> 00:17:02,540 y να είναι μικρότερη από το z. 414 00:17:02,540 --> 00:17:05,790 Και γι 'αυτό μπορεί να μεταφράσει αυτά τα δύο χωριστές γραμμές ως εξής. 415 00:17:05,790 --> 00:17:08,650 Η κορυφή ενός μπορεί να είναι πολύ κοινότοπα μεταφράζεται σε C, 416 00:17:08,650 --> 00:17:10,069 με μόλις x 00:17:11,990 Ίσως με κάποιες παρενθέσεις για το καλό μέτρο. 418 00:17:11,990 --> 00:17:15,520 Και τότε σε C, δεν γράφουν και να υποδηλώσει το 419 00:17:15,520 --> 00:17:16,819 συνδυασμό του κάτι. 420 00:17:16,819 --> 00:17:19,585 Μπορείτε να γράψετε αντί &&. 421 00:17:19,585 --> 00:17:22,849 Και όπως θα δούμε τελικά, ένα ενιαίο εμπορικό και συμβαίνει να 422 00:17:22,849 --> 00:17:23,880 σημαίνουν κάτι διαφορετικό. 423 00:17:23,880 --> 00:17:27,530 Έτσι && δηλώνει απλώς την ιδέα της ΚΑΙ. 424 00:17:27,530 --> 00:17:30,040 >> Έτσι, και πάλι, ακόμη και αν αυτό αρχίζει να φαίνεται μάλλον περίπλοκη, 425 00:17:30,040 --> 00:17:32,560 ένας από τους σκοπούς της καθιέρωσης Ξυστό, εκτός από 426 00:17:32,560 --> 00:17:34,810 απλά έχοντας ένα είδος διασκέδασης on-ράμπα, όπου μπορείτε να κάνετε 427 00:17:34,810 --> 00:17:36,590 κάτι που είναι πολύ γραφικό και κινούμενα σχέδια, και 428 00:17:36,590 --> 00:17:39,000 κοινόχρηστο και τα παρόμοια, είναι επίσης να μεταφέρουν την ιδέα ότι 429 00:17:39,000 --> 00:17:42,010 όλες τις ιδέες που αρχίζουν σήμερα στην κατάδυση και προς τα εμπρός 430 00:17:42,010 --> 00:17:44,300 έχουν ενσωματωθεί σε αυτό, ακόμη και απλό 431 00:17:44,300 --> 00:17:46,850 διεπαφή από την πρώτη μέρα. 432 00:17:46,850 --> 00:17:47,790 Τι γίνεται με αυτό εδώ; 433 00:17:47,790 --> 00:17:48,860 >> Έτσι συνθήκες. 434 00:17:48,860 --> 00:17:50,590 Έτσι, το μπλοκ Scratch στα αριστερά φαίνεται υπάρχει 435 00:17:50,590 --> 00:17:51,610 λίγο πιο περίπλοκη. 436 00:17:51,610 --> 00:17:52,650 Αλλά είναι μερικά μόνο σύρσιμο και 437 00:17:52,650 --> 00:17:54,140 πτώση των γνωστών κομματιών. 438 00:17:54,140 --> 00:17:56,690 Αν το x είναι μικρότερο από το y, έτσι λένε. 439 00:17:56,690 --> 00:17:59,900 Αλλιώς, αν το x είναι μεγαλύτερο από το y, έτσι λένε. 440 00:17:59,900 --> 00:18:02,460 Αλλιώς, μπορούμε να υποθέσουμε ότι λογικά είναι συναχθεί ότι 441 00:18:02,460 --> 00:18:03,580 πρέπει να είναι ίσες. 442 00:18:03,580 --> 00:18:05,220 Έτσι λένε ότι είναι ίσες. 443 00:18:05,220 --> 00:18:07,690 Τώρα στο C στα δεξιά, το ίδιο ακριβώς πράγμα. 444 00:18:07,690 --> 00:18:09,730 Και παρατηρήσετε ότι τα άγκιστρα πρόκειται να είναι ένα 445 00:18:09,730 --> 00:18:12,190 χαρακτηριστικό του C και άλλες γλώσσες που κάνουν αυτό το είδος 446 00:18:12,190 --> 00:18:13,210 της ενθυλάκωσης. 447 00:18:13,210 --> 00:18:15,470 Ακριβώς όπως το μπλοκ, αν είναι αυτό το κίτρινο πράγμα που είναι το είδος του 448 00:18:15,470 --> 00:18:17,770 αρπάζοντας το πορφυρό τετράγωνο στο εσωτερικό του. 449 00:18:17,770 --> 00:18:19,480 Ομοίως, είναι αυτά τα σιδεράκια - 450 00:18:19,480 --> 00:18:20,870 αυτά τα άγκιστρα - 451 00:18:20,870 --> 00:18:24,710 σήμαινε να πλάθω την ίδια την ιδέα της αγκαλιάζει ένα ή περισσότερα 452 00:18:24,710 --> 00:18:27,680 γραμμές κώδικα που εσοχή μέσα τους. 453 00:18:27,680 --> 00:18:31,270 Έτσι, στη δεξιά πλευρά εδώ, αν x μικρότερο από το y, printf 454 00:18:31,270 --> 00:18:32,270 ("Το χ είναι μικρότερο από το y"). 455 00:18:32,270 --> 00:18:34,980 Αλλιώς, αν το x είναι μεγαλύτερο από το y, εκτυπώστε το ίδιο. 456 00:18:34,980 --> 00:18:38,360 Αλλιώς εκτυπώσετε ότι είναι ίσες. 457 00:18:38,360 --> 00:18:41,750 >> Έτσι, με λίγα λόγια, υπάρχει μια αρκετά άμεση χαρτογράφηση ή μετάφραση 458 00:18:41,750 --> 00:18:44,720 της γλώσσας που έχουμε δει μέχρι στιγμής, καθώς και για ορισμένες 459 00:18:44,720 --> 00:18:45,940 από τα πιο εξελιγμένα χαρακτηριστικά. 460 00:18:45,940 --> 00:18:48,680 Έτσι, ίσως να μην πρέπει να χρησιμοποιούν αυτό για το έργο σας, ή μπορεί να μην 461 00:18:48,680 --> 00:18:51,150 να χρησιμοποιεί αυτό για το έργο σας αυτή την εβδομάδα. 462 00:18:51,150 --> 00:18:54,650 Αλλά έχουμε αυτά τα πράγματα που ονομάζονται συστοιχίες σε C. Σε Scratch, 463 00:18:54,650 --> 00:18:55,680 όπου και αν ονομάζεται λίστες. 464 00:18:55,680 --> 00:18:59,370 Και αυτά που είδαμε με την Fruitcraft RPG περασμένη εβδομάδα. 465 00:18:59,370 --> 00:19:01,320 Το μικρό μπλε τύπος που περπατούν γύρω, μαζεύοντας 466 00:19:01,320 --> 00:19:03,010 κεράσια και τα πορτοκάλια και τα παρόμοια. 467 00:19:03,010 --> 00:19:05,110 Λοιπόν στο Scratch, που υλοποιήθηκε με αυτό το πορτοκαλί 468 00:19:05,110 --> 00:19:09,000 μπλοκ που περιέχει τις λέξεις? σε αυτήν την περίπτωση, είμαστε κυριολεκτικά 469 00:19:09,000 --> 00:19:10,800 προσθέτοντας "πορτοκαλί" για ένα 470 00:19:10,800 --> 00:19:12,460 μεταβλητή που ονομάζεται απογραφή. 471 00:19:12,460 --> 00:19:14,910 Έτσι, σε C, αυτή η σύνταξη θα πάρει λίγο περισσότερο αινιγματικό. 472 00:19:14,910 --> 00:19:17,250 Και θα επανέλθουμε σε αυτό την επόμενη εβδομάδα και να κάνουμε περισσότερα 473 00:19:17,250 --> 00:19:21,060 ενδιαφέροντα πράγματα στον κόσμο της κρυπτογραφίας με αυτό. 474 00:19:21,060 --> 00:19:23,990 Αλλά στο κάτω εδώ, αυτές οι δύο γραμμές κατ 'ουσίαν 475 00:19:23,990 --> 00:19:27,550 μεταφραστεί σε αυτό που κάνουμε σε ένα Scratch μπλοκάρει μέχρι εκεί. 476 00:19:27,550 --> 00:19:30,120 Αλλά περισσότερα για αυτό να έρθει. 477 00:19:30,120 --> 00:19:34,120 >> Έτσι, βάζοντας μαζί, εδώ είναι ένα πρόγραμμα σε C. Έτσι, ας 478 00:19:34,120 --> 00:19:36,590 γρήγορα πειράζω πέρα ​​μερικά από τα κομμάτια της σύνταξης εδώ, αλλά 479 00:19:36,590 --> 00:19:40,300 τότε ας πραγματικά να αρχίσετε να γράφετε κάποια κώδικας, εξοικείωση 480 00:19:40,300 --> 00:19:42,440 σας με μερικά από τα εργαλεία που θα πρέπει να χρησιμοποιούν, και να δούμε αν μπορούμε 481 00:19:42,440 --> 00:19:45,400 μπορεί να αξιοποιήσει τώρα μερικά από αυτά τα βασικά δομικά στοιχεία από 482 00:19:45,400 --> 00:19:49,150 την περασμένη εβδομάδα, τώρα συντακτικά σε C. Έτσι, στην κορυφή εδώ, αυτό 483 00:19:49,150 --> 00:19:51,380 Είναι ίσως ένα από τα πιο βαρετά προγράμματα που θα μπορούσαν να 484 00:19:51,380 --> 00:19:53,130 γράφουν στις περισσότερες οποιαδήποτε γλώσσα προγραμματισμού. 485 00:19:53,130 --> 00:19:55,010 Αλλά αυτό το είδος της έχει ιδιαίτερη σημασία γιατί είναι η 486 00:19:55,010 --> 00:19:58,120 κανονικό πρόγραμμα ότι κάθε επιστήμονας υπολογιστών όταν γράφει 487 00:19:58,120 --> 00:19:59,620 διδασκαλία κάποιος μια γλώσσα προγραμματισμού - 488 00:19:59,620 --> 00:20:01,230 ένα γειά σου παγκόσμιο πρόγραμμα. 489 00:20:01,230 --> 00:20:05,120 >> Έτσι, στην κορυφή, βλέπουμε αυτή την έννοια του # include 490 00:20:05,120 --> 00:20:08,180 και στη συνέχεια, σε γωνιακές παρενθέσεις, stdio.h. 491 00:20:08,180 --> 00:20:10,580 Εμείς πάμε για να επιστρέψουμε σε αυτό, αλλά πραγματικά τι 492 00:20:10,580 --> 00:20:13,770 σημαίνει ότι υπάρχει ένα αρχείο σε αυτόν τον κόσμο που ονομάζεται πρότυπο 493 00:20:13,770 --> 00:20:17,670 I / O, stdio dot h, και ότι είναι απλά ένα αρχείο κειμένου που 494 00:20:17,670 --> 00:20:19,240 κάποιος έγραψε χρόνια πριν. 495 00:20:19,240 --> 00:20:22,550 Και μέσα από αυτό το αρχείο κειμένου είναι ένα σωρό 496 00:20:22,550 --> 00:20:25,840 λειτουργίες, ή τις μεθόδους, ή διαδικασίες, ότι κάποιος άλλος 497 00:20:25,840 --> 00:20:28,970 έγραψε ότι είμαστε οι δικαιούχοι του γιατί 498 00:20:28,970 --> 00:20:31,420 μπορούν πλέον να χρησιμοποιούν τον κωδικό του ατόμου. 499 00:20:31,420 --> 00:20:33,070 Οι λειτουργίες που αυτός ή αυτή έγραψε. 500 00:20:33,070 --> 00:20:36,320 Σε αυτή την περίπτωση, printf δεν είναι κάτι που έγραψα, είναι 501 00:20:36,320 --> 00:20:37,500 δεν είναι κάτι που CS50 έγραψε. 502 00:20:37,500 --> 00:20:40,290 Είναι κάτι που κάποιος έγραψε χρόνια πριν και να θέσει σε 503 00:20:40,290 --> 00:20:43,450 αρχείο με όνομα stdio.h και, στη συνέχεια, ως ένα μέρος, βάλτε 504 00:20:43,450 --> 00:20:45,830 ένα άλλο μέρος της λειτουργίας σε άλλο αρχείο. 505 00:20:45,830 --> 00:20:46,940 Αλλά θα φτάσουμε εκεί. 506 00:20:46,940 --> 00:20:50,070 >> Έτσι, # include είναι ακριβώς ο τρόπος μας για να πούμε, σε 507 00:20:50,070 --> 00:20:53,110 C, να μου δώσει πρόσβαση σε λειτουργίες που έγραψε κάποιος άλλος. 508 00:20:53,110 --> 00:20:55,490 Και σε αυτή την περίπτωση με νοιάζει γιατί θέλω printf. 509 00:20:55,490 --> 00:20:57,530 Τώρα έχουμε int main (void). 510 00:20:57,530 --> 00:21:00,160 Έτσι, αυτό είναι ένα από αυτά τα πράγματα, ειλικρινά, ότι κατά την ημέρα 0, 511 00:21:00,160 --> 00:21:02,400 λίγο πολύ να έχω το είδος της ζώνη εξόδου, επειδή είναι ακριβώς 512 00:21:02,400 --> 00:21:03,260 Δεν ενδιαφέρον 513 00:21:03,260 --> 00:21:04,780 διανοητικά, μερικές από τις σύνταξη. 514 00:21:04,780 --> 00:21:07,940 Αλλά για τώρα γνωρίζουμε ότι οι λειτουργίες, αλλιώς γνωστή ως 515 00:21:07,940 --> 00:21:11,660 διαδικασίες, ή μεθόδων, γενικά παράγουν κάποια αξία. 516 00:21:11,660 --> 00:21:12,520 Κάνουν κάτι. 517 00:21:12,520 --> 00:21:13,810 Έρχονται με μια απάντηση. 518 00:21:13,810 --> 00:21:15,020 Παράγουν εξόδου. 519 00:21:15,020 --> 00:21:18,780 Έτσι, int δίπλα στον κεντρικό δρόμο είναι μόλις μας στενογραφίας για να πούμε 520 00:21:18,780 --> 00:21:21,380 ότι αυτή η λειτουργία, η διαδικασία αυτή, θα είναι τελικά 521 00:21:21,380 --> 00:21:22,650 για να σας δώσει πίσω έναν αριθμό. 522 00:21:22,650 --> 00:21:24,370 Και γιατί συμβαίνει αυτό, θα επανέλθουμε. 523 00:21:24,370 --> 00:21:27,810 Κύρια είναι μόνο το παγκόσμιο πρότυπο προεπιλογή για την προεπιλογή 524 00:21:27,810 --> 00:21:30,990 λειτουργία που πρόκειται να εκτελεστεί πάρει σε ένα πρόγραμμα C, όταν 525 00:21:30,990 --> 00:21:31,860 την εκτέλεσή του. 526 00:21:31,860 --> 00:21:34,160 Κενό σημαίνει ακριβώς αυτό το πράγμα, κυρίως, δεν παίρνει 527 00:21:34,160 --> 00:21:35,270 επιχειρήματα, σε αυτή την περίπτωση. 528 00:21:35,270 --> 00:21:36,400 Έτσι είμαι σαφής είναι σούπερ. 529 00:21:36,400 --> 00:21:38,160 Δεν υπάρχει καμία σειρά εκεί, δεν υπάρχει κανένα κόμμα. 530 00:21:38,160 --> 00:21:40,690 Κενό σημαίνει ότι δεν υπάρχουν επιχειρήματα στην κύρια. 531 00:21:40,690 --> 00:21:44,350 >> Τώρα, τέλος, ευτυχώς, οι δύο τελευταίες γραμμές είναι εξοικειωμένοι. 532 00:21:44,350 --> 00:21:46,160 Μέσα στα άγκιστρα έχουμε μια printf 533 00:21:46,160 --> 00:21:47,620 και έχουμε μια επιστροφή. 534 00:21:47,620 --> 00:21:50,450 Και η επιστροφή είναι το είδος του ατυχές ότι πρέπει να 535 00:21:50,450 --> 00:21:53,510 βάζουμε εκεί, γιατί σε αυτήν την περίπτωση δεν κάνει όλα αυτά που 536 00:21:53,510 --> 00:21:54,600 πολύ ενδιαφέρον. 537 00:21:54,600 --> 00:21:58,790 Αλλά σε ένα πρόγραμμα υπολογιστή, όταν μια συνάρτηση επιστρέφει 0, 538 00:21:58,790 --> 00:22:00,610 αυτό σημαίνει ότι όλα είναι καλά. 539 00:22:00,610 --> 00:22:01,820 Τίποτα δεν πήγε στραβά. 540 00:22:01,820 --> 00:22:06,170 Αντιθέτως, αν μια λειτουργία επιστρέφει 1, 1 ή αρνητική, είτε 541 00:22:06,170 --> 00:22:11,670 1.337 αρνητική, ή κάποιοι τυχαίοι αριθμοί έτσι, ότι 542 00:22:11,670 --> 00:22:14,020 γενικά σημαίνει ότι ένα σφάλμα έχει συμβεί στην πραγματικότητα. 543 00:22:14,020 --> 00:22:16,150 Έτσι, εάν είστε στο Mac σας ή τον υπολογιστή σας, αν έχετε δει ποτέ 544 00:22:16,150 --> 00:22:18,590 κάποια ενοχλητική μήνυμα επειδή ο υπολογιστής σας έχει καταρρεύσει ή 545 00:22:18,590 --> 00:22:20,660 κατεψυγμένα, και υπάρχει ένα αινιγματικό μήνυμα σφάλματος, 546 00:22:20,660 --> 00:22:23,320 και στη συνέχεια κάποιες κώδικα, όπως το κωδικό σύστημα 547 00:22:23,320 --> 00:22:25,110 1,2,3,4, κάποιος αριθμός, 548 00:22:25,110 --> 00:22:29,270 που είναι γενικά μια περιττή λεπτομέρεια για να πω 549 00:22:29,270 --> 00:22:32,110 οι περισσότεροι από εμάς τους ανθρώπους, αλλά αυτό είναι που κάποια λειτουργία ή κάποια 550 00:22:32,110 --> 00:22:34,890 προγράμματος έχει πράγματι επέστρεψε, μια μη-μηδενική τιμή. 551 00:22:34,890 --> 00:22:38,540 Και το όφελος από αυτό είναι ότι το 0 σημαίνει ότι όλοι, καθώς, και 552 00:22:38,540 --> 00:22:40,470 τότε θα έχουν ουσιαστικά έναν άπειρο αριθμό των πραγμάτων που 553 00:22:40,470 --> 00:22:41,130 μπορεί να πάει στραβά. 554 00:22:41,130 --> 00:22:44,700 Αυτός είναι ο λόγος που επέλεξε 0 για καλή και μια μη-μηδενική τιμή για 555 00:22:44,700 --> 00:22:46,450 κακό, όπως θα δούμε σύντομα. 556 00:22:46,450 --> 00:22:47,870 >> Ας προχωρήσουμε και να γράψει αυτό. 557 00:22:47,870 --> 00:22:51,610 Έτσι, υπενθυμίζουν ότι την άλλη μέρα θα χρησιμοποιηθούν Mac μου να ανοίξει ένα 558 00:22:51,610 --> 00:22:53,970 παράθυρο του τερματικού, και στη συνέχεια άνοιξα το πρόγραμμα κειμένου, όπως 559 00:22:53,970 --> 00:22:55,900 TextEdit, και άρχισα να γράφω λίγο κώδικα. 560 00:22:55,900 --> 00:22:56,580 Λοιπόν, αυτό είναι εντάξει. 561 00:22:56,580 --> 00:22:58,636 Αλλά η εμπειρία σας θα είναι διαφορετική σε Mac, ή 562 00:22:58,636 --> 00:23:01,220 Solaris σε υπολογιστή, έναν υπολογιστή Linux, ανεξαρτήτως λειτουργικού 563 00:23:01,220 --> 00:23:02,810 σύστημα τυχαίνει να χρησιμοποιείτε. 564 00:23:02,810 --> 00:23:04,970 Και έτσι, κατά τη διάρκεια, αυτό που αντί να χρησιμοποιήσετε είναι κάτι 565 00:23:04,970 --> 00:23:07,010 ονομάζεται η συσκευή CS50. 566 00:23:07,010 --> 00:23:10,420 Έτσι, η συσκευή CS50 είναι ένα downloadable κομμάτι του λογισμικού 567 00:23:10,420 --> 00:23:13,640 που σας επιτρέπει να εκτελέσετε ένα λειτουργικό σύστημα που ονομάζεται Linux, 568 00:23:13,640 --> 00:23:16,810 Συγκεκριμένα Fedora Linux, με δική Mac ή το PC σας. 569 00:23:16,810 --> 00:23:20,810 Και μπορείτε να το κάνετε αυτό με τη λήψη κάτι που ονομάζεται hypervisor. 570 00:23:20,810 --> 00:23:23,100 Έτσι, όλα αυτά θα πρέπει να τεκμηριώνεται στο σύνολο πρόβλημα 1. 571 00:23:23,100 --> 00:23:25,240 Και θα πρέπει να κατευθύνεται προς το τι θα πρέπει να κατεβάσετε. 572 00:23:25,240 --> 00:23:27,510 Αλλά το τελικό αποτέλεσμα, αν έχετε ένα Mac ή PC, είναι να 573 00:23:27,510 --> 00:23:29,080 κατεβάσετε κάποιο ελεύθερο λογισμικό. 574 00:23:29,080 --> 00:23:32,340 Μπορείτε τότε κατεβάστε το CS50 συσκευή, και να σας πω ότι 575 00:23:32,340 --> 00:23:33,960 ελεύθερο λογισμικό - το hypervisor - 576 00:23:33,960 --> 00:23:38,080 για να τρέξει το CS50 συσκευή σε ένα παράθυρο στον υπολογιστή σας. 577 00:23:38,080 --> 00:23:39,490 Και αυτό που συμβαίνει είναι αυτό. 578 00:23:39,490 --> 00:23:43,660 >> Έχω τώρα, παρατηρούμε εδώ, αυτό που φαίνεται να είναι ένα desktop 579 00:23:43,660 --> 00:23:44,130 περιβάλλοντος. 580 00:23:44,130 --> 00:23:46,150 Και επιτρέψτε μου να συρρικνωθεί στην πραγματικότητα αυτό το μοναδικό παράθυρο. 581 00:23:46,150 --> 00:23:49,640 Έτσι, αυτό είναι τώρα το Mac μου, με ένα μικρό παράθυρο εδώ, και μέσα 582 00:23:49,640 --> 00:23:51,300 αυτού του παραθύρου συμβαίνει να είναι ένα εντελώς 583 00:23:51,300 --> 00:23:52,380 διαφορετικό λειτουργικό σύστημα. 584 00:23:52,380 --> 00:23:55,250 Πράγματι υπάρχει αυτό το μενού εκκίνησης εδώ κάτω, που θυμίζει 585 00:23:55,250 --> 00:23:57,990 Windows, που έχει ένα σωρό υπομενού, συμπεριλαμβανομένων των 586 00:23:57,990 --> 00:24:00,720 μια σύνδεση με το εγχειρίδιο CS50, Dropbox, και τα παρόμοια. 587 00:24:00,720 --> 00:24:03,480 Και τι είναι αυτό το περιβάλλον είναι τώρα ένα τυποποιημένο περιβάλλον 588 00:24:03,480 --> 00:24:06,280 ότι όλοι μας μπορούν τώρα να χρησιμοποιούν, έτσι ώστε να μην έχει σημασία τι σας 589 00:24:06,280 --> 00:24:08,960 υπολογιστή είναι, ό, τι έχετε εγκαταστήσει σε αυτό, ποια έκδοση 590 00:24:08,960 --> 00:24:11,430 του Mac OS ή Windows τρέχετε, τώρα όλοι έχουν την 591 00:24:11,430 --> 00:24:12,800 ίδιο περιβάλλον. 592 00:24:12,800 --> 00:24:15,850 Και τώρα σε αυτό το περιβάλλον μπορούμε να αρχίσετε να γράφετε κάποιο κώδικα. 593 00:24:15,850 --> 00:24:18,480 >> Έτσι, Πάω να πάει μπροστά και να ανοίξει ένα πρόγραμμα που ονομάζεται gedit. 594 00:24:18,480 --> 00:24:21,500 Αυτό είναι συγκρίσιμο με notepad.exe, ή 595 00:24:21,500 --> 00:24:22,790 TextEdit σε Mac. 596 00:24:22,790 --> 00:24:25,390 Και αυτό είναι μόνο ένα σούπερ απλό πρόγραμμα επεξεργασίας κειμένου 597 00:24:25,390 --> 00:24:27,500 που μοιάζει με αυτό με την πρώτη ματιά. 598 00:24:27,500 --> 00:24:30,640 Τώρα, στην κορυφή, έχω μια λευκή παλέτα, στο κάτω μέρος I 599 00:24:30,640 --> 00:24:33,860 έχουν αυτό το μαύρο παράθυρο που λέει jharvard @ συσκευή. 600 00:24:33,860 --> 00:24:36,440 Και αυτό γιατί το λογαριασμό χρήστη που δημιουργήθηκε προ- 601 00:24:36,440 --> 00:24:38,430 για όλους ονομάζεται John Harvard. 602 00:24:38,430 --> 00:24:41,490 Έχει ένα φάκελο όπου όλα τα αρχεία του πρόκειται να πάει, και 603 00:24:41,490 --> 00:24:43,500 εδώ είναι όπου μπορούμε να αρχίσετε να γράφετε κάποιο κώδικα. 604 00:24:43,500 --> 00:24:45,810 Επιτρέψτε μου λοιπόν να προχωρήσουμε εδώ και μεγέθυνση μόνο ένα κομμάτι, και είμαι 605 00:24:45,810 --> 00:24:51,550 πρόκειται να κάνει # include , int main (void), και 606 00:24:51,550 --> 00:24:57,470 τότε θα πάω να κάνω printf ("Hello World") 607 00:24:57,470 --> 00:24:59,490 ? Επιστρέφει 0. 608 00:24:59,490 --> 00:25:01,400 Τώρα όλα αυτά είναι αρκετά μαύρο και άσπρο. 609 00:25:01,400 --> 00:25:03,830 >> Επιτρέψτε μου να προχωρήσει και να κάνει ένα πράγμα για να διδάξει το gedit τι είμαι 610 00:25:03,830 --> 00:25:04,510 πραγματικά κάνει. 611 00:25:04,510 --> 00:25:06,140 Επιτρέψτε μου να πάω στην επιλογή Αποθήκευση ως. 612 00:25:06,140 --> 00:25:08,560 Πάω να επιλέξετε στην αριστερή πλευρά jharvard εδώ. 613 00:25:08,560 --> 00:25:11,010 Έτσι, και πάλι, ακόμη και αν δεν έχετε χρησιμοποιήσει ποτέ πριν το Linux, ειλικρινά 614 00:25:11,010 --> 00:25:13,680 αυτές τις μέρες, όλοι τους ανατίθενται σε ουσιαστικά τη 615 00:25:13,680 --> 00:25:14,590 ίδιο τύπο του interface - 616 00:25:14,590 --> 00:25:16,030 Mac OS, Windows και Linux. 617 00:25:16,030 --> 00:25:18,680 Έτσι επέλεξα το φάκελο σπίτι jharvard εδώ. 618 00:25:18,680 --> 00:25:21,120 Και Πάω να αποθηκεύσετε αυτό το αρχείο ως hello.c. 619 00:25:21,120 --> 00:25:24,260 Έτσι, στην κορυφή, θα πληκτρολογήσει hello.c? Ονομασία ενός C 620 00:25:24,260 --> 00:25:26,520 πρόγραμμα με την επέκταση. είναι γ 621 00:25:26,520 --> 00:25:27,570 τι είναι κοινή πρακτική. 622 00:25:27,570 --> 00:25:28,650 Και χτύπησα Αποθήκευση. 623 00:25:28,650 --> 00:25:32,510 Και τώρα τι είναι ωραίο είναι ότι έχω διδάξει αποτελεσματικά το gedit, 624 00:25:32,510 --> 00:25:33,690 ότι αυτό είναι ένα πρόγραμμα C. 625 00:25:33,690 --> 00:25:36,470 Παρατηρήστε ότι μαύρο και άσπρο κείμενο μου είναι τώρα χρώμα που κωδικοποιείται, ή 626 00:25:36,470 --> 00:25:39,330 τόνισε σύνταξη, η οποία εφιστά την προσοχή μου απλά για να το 627 00:25:39,330 --> 00:25:41,540 διαφορετικές σημασιολογικές μέρη του προγράμματος. 628 00:25:41,540 --> 00:25:44,260 Στο πάνω αριστερά εκεί, όπως τα προγράμματα μου να πάρει πιο σύνθετες, είμαι 629 00:25:44,260 --> 00:25:47,060 πρόκειται να έχει μια περίληψη του όλα τα πράγματα που έχω γράψει. 630 00:25:47,060 --> 00:25:48,050 Έτσι αυτό είναι αυτό εκεί πάνω. 631 00:25:48,050 --> 00:25:52,350 Επιτρέψτε μου λοιπόν τώρα σμίκρυνση και να πάει κάτω σε αυτό το παράθυρο τερματικού. 632 00:25:52,350 --> 00:25:54,570 >> Έτσι, αυτό είναι ίσως νέο για πολλούς ανθρώπους. 633 00:25:54,570 --> 00:25:57,260 Αν δεν έχετε χρησιμοποιήσει ποτέ ένα περιβάλλον γραμμής εντολών, έχετε ποτέ 634 00:25:57,260 --> 00:26:00,020 χρησιμοποιούνται DOS, ή δεν έχετε χρησιμοποιήσει ποτέ το Linux, ή δεν έχετε ανοίξει 635 00:26:00,020 --> 00:26:02,550 Mac OS σας τερματικό παράθυρο, υπάρχουν πολλά πράγματα που μπορείτε 636 00:26:02,550 --> 00:26:04,820 θα μπορούσε να κάνει με το γραφικό περιβάλλον, όπως δείχνει, και κάνοντας κλικ, και 637 00:26:04,820 --> 00:26:07,080 σύρσιμο και απόθεση, και τα παρόμοια, αλλά γενικά - 638 00:26:07,080 --> 00:26:09,360 σίγουρα στον κόσμο της επιστήμης των υπολογιστών - 639 00:26:09,360 --> 00:26:11,580 χρησιμοποιώντας μια γραμμή εντολών, όπου δεν έχετε ποντίκι σας 640 00:26:11,580 --> 00:26:14,220 γενικά, έχετε μόνο το πληκτρολόγιο σας, είναι πραγματικά μια πολύ 641 00:26:14,220 --> 00:26:17,260 πιο ισχυρή από ό, τι interface, μόλις πάρετε εγκλιματισθεί με το 642 00:26:17,260 --> 00:26:18,580 διάφορες εντολές. 643 00:26:18,580 --> 00:26:20,940 Και το είδος της δωρεάν τον εαυτό σας να χρειάζεται να επισημάνω και κάντε κλικ στο κουμπί 644 00:26:20,940 --> 00:26:21,690 σε όλα. 645 00:26:21,690 --> 00:26:23,890 Έτσι, στο gedit θα ταξινομήσετε του έχουν το καλύτερο και των δύο κόσμων. 646 00:26:23,890 --> 00:26:25,600 Μπορούμε να drag and drop κειμένου, μπορούμε να το δούμε 647 00:26:25,600 --> 00:26:26,840 ωραία και κωδικοποιούνται χρώμα. 648 00:26:26,840 --> 00:26:29,630 Αλλά όταν έρχεται η ώρα να τρέξουμε το πρόγραμμά μας, θα σας στείλουμε μερικές φορές 649 00:26:29,630 --> 00:26:31,750 απλά χρησιμοποιήστε αυτό το μικρό παράθυρο εδώ. 650 00:26:31,750 --> 00:26:33,460 >> Έτσι, Πάω να προχωρήσει και να το κάνουμε αυτό. 651 00:26:33,460 --> 00:26:36,420 Στο κάτω μέρος μαύρο και άσπρο παράθυρο, είμαι πρόκειται να πάει μπροστά 652 00:26:36,420 --> 00:26:37,890 και να γράφουν κλαγγή. 653 00:26:37,890 --> 00:26:40,130 Και κλαγγή είναι το όνομα ενός μεταγλωττιστή. 654 00:26:40,130 --> 00:26:43,310 Είναι ένα πρόγραμμα που μετατρέπει τον πηγαίο κώδικα μου 655 00:26:43,310 --> 00:26:48,770 μέσα, έτσι, κώδικα αντικειμένου. 656 00:26:48,770 --> 00:26:51,270 0s και 1s, που είδαμε για λίγο την περασμένη εβδομάδα. 657 00:26:51,270 --> 00:26:53,700 Ανάκληση από την περασμένη εβδομάδα, είχαμε υποσχεθεί ότι επρόκειτο να 658 00:26:53,700 --> 00:26:55,920 πάει από κάτι σαν αυτό - έπρεπε να είμαστε 659 00:26:55,920 --> 00:26:57,010 κάτι σαν αυτό - 660 00:26:57,010 --> 00:26:58,700 και αυτό σίγουρα δεν είναι κάτι που ένας άνθρωπος θα είναι 661 00:26:58,700 --> 00:26:59,690 να κάνει χειροκίνητα. 662 00:26:59,690 --> 00:27:01,980 Έτσι, αντί να πάμε να χρησιμοποιήσετε ένα πρόγραμμα, και ότι το πρόγραμμα 663 00:27:01,980 --> 00:27:03,430 αυτή την περίπτωση ονομάζεται Clang. 664 00:27:03,430 --> 00:27:06,020 Και το όνομα του προγράμματός μου είναι hello.c. 665 00:27:06,020 --> 00:27:09,670 Έτσι, προκειμένου να καταρτίσει hello.c από τον πηγαίο κώδικα σε 666 00:27:09,670 --> 00:27:12,930 Κωδικός αντικειμένου, ή 0s και 1s, θα πρέπει να αρκεί απλά να κάνετε 667 00:27:12,930 --> 00:27:14,820 αυτό και πατήστε Enter. 668 00:27:14,820 --> 00:27:16,850 >> Εντάξει, τίποτα δεν φαίνεται να έχει συμβεί. 669 00:27:16,850 --> 00:27:20,450 Αλλά ξέρω τώρα, ή από την περασμένη εβδομάδα, ότι το προεπιλεγμένο όνομα του 670 00:27:20,450 --> 00:27:24,920 ένα πρόγραμμα, όταν γραμμένο σε C, είναι ανόητα αποκαλείται a.out. 671 00:27:24,920 --> 00:27:26,610 Οι περισσότεροι πληκτικός όνομα που θα μπορούσε να καταλήξει σε. 672 00:27:26,610 --> 00:27:28,790 Ένα είναι το πρώτο γράμμα της αλφαβήτου, είναι από ό, τι ήταν 673 00:27:28,790 --> 00:27:29,960 εξάγεται, αλλά ας είναι. 674 00:27:29,960 --> 00:27:33,570 Αυτό είναι το πρόγραμμά μου, και τώρα dot slash, όπως θα δούμε, είναι 675 00:27:33,570 --> 00:27:36,170 στην πραγματικότητα μόνο ένα είδος χαρακτηριστικό ασφαλείας, επειδή 676 00:27:36,170 --> 00:27:38,250 a.out είναι ένα πρόγραμμα που έγραψα. 677 00:27:38,250 --> 00:27:39,650 Δεν έρχονται με τον υπολογιστή μου, είναι 678 00:27:39,650 --> 00:27:40,790 δεν Program Files. 679 00:27:40,790 --> 00:27:42,910 Δεν είναι στο φάκελο Εφαρμογές για Mac OS. 680 00:27:42,910 --> 00:27:45,740 Πρέπει να είμαι σούπερ ρητή με τον υπολογιστή, και να πω 681 00:27:45,740 --> 00:27:49,030 αυτό το πρόγραμμα, a.out, είναι στον τρέχοντα φάκελο, ο 682 00:27:49,030 --> 00:27:50,260 τρέχοντα κατάλογο. 683 00:27:50,260 --> 00:27:53,160 Και ο τρόπος που αντιπροσωπεύουν αυτό σε ένα περιβάλλον όπως αυτό 684 00:27:53,160 --> 00:27:57,070 η τελεία αντιπροσωπεύει ό, τι φάκελο που βρίσκονται μέσα 685 00:27:57,070 --> 00:27:59,420 Και έτσι. / Σημαίνει απλά τρέχει a.out 686 00:27:59,420 --> 00:28:00,530 στον τρέχοντα φάκελο. 687 00:28:00,530 --> 00:28:04,830 Και μπορώ να εκτελέσω αυτό με Enter, και ιδού, το πρώτο μου πρόγραμμα. 688 00:28:04,830 --> 00:28:05,990 >> Τώρα, επιτρέψτε μου να κάνουμε ένα βήμα πίσω. 689 00:28:05,990 --> 00:28:08,280 Αυτό το παράθυρο είναι λίγο μικρό, και να συνειδητοποιήσουμε ότι το κάτω μέρος 690 00:28:08,280 --> 00:28:10,340 αριστερά της συσκευής εδώ είναι μια άλλη εικόνα. 691 00:28:10,340 --> 00:28:12,660 Το ένα είναι το Chrome, το οποίο θα πρέπει να είναι αρκετά εξοικειωμένοι, μόλις ένα web 692 00:28:12,660 --> 00:28:14,350 περιήγησης στο εσωτερικό της συσκευής. 693 00:28:14,350 --> 00:28:16,340 Και αυτό το μαύρο και άσπρο εικόνα είναι απλά μια 694 00:28:16,340 --> 00:28:17,720 μεγαλύτερο παράθυρο τερματικού. 695 00:28:17,720 --> 00:28:19,830 Έτσι, εάν παίρνει λίγο ενοχλητικό να ταξινομήσετε του έχουν μόνο 696 00:28:19,830 --> 00:28:22,270 αυτό το μικροσκοπικό μικρό κομμάτι από ένα παράθυρο με το οποίο να αλληλεπιδράσουν 697 00:28:22,270 --> 00:28:24,370 με τα προγράμματα, μπορούμε να το κάνουμε αυτό αντ 'αυτού. 698 00:28:24,370 --> 00:28:26,640 Και τώρα επιτρέψτε μου να αρχίσετε να πληκτρολογείτε μερικά σύντομα 699 00:28:26,640 --> 00:28:27,980 να είναι εξοικειωμένοι εντολές. 700 00:28:27,980 --> 00:28:28,900 ls. 701 00:28:28,900 --> 00:28:31,410 Έτσι ls είναι η εντολή για την επιχείρηση. 702 00:28:31,410 --> 00:28:33,900 Έτσι, σε ένα Mac OS ή Windows, θα γενικά διπλό κλικ σε ένα 703 00:28:33,900 --> 00:28:36,510 φάκελο και, στη συνέχεια, ιδού, θα τα δείτε όλα από τα διάφορα αρχεία 704 00:28:36,510 --> 00:28:37,210 και φακέλους. 705 00:28:37,210 --> 00:28:39,650 Σε ένα περιβάλλον γραμμής εντολών, όπου μπορείτε να πληκτρολογήσετε μόνο 706 00:28:39,650 --> 00:28:42,390 εντολές ή κείμενο, ls είναι το ισοδύναμο. 707 00:28:42,390 --> 00:28:44,380 Έτσι μου δείξει τι σε αυτόν τον κατάλογο. 708 00:28:44,380 --> 00:28:46,540 >> Τώρα υπάρχει ένα σωρό πράγματα εδώ που είναι τόσο λίγο 709 00:28:46,540 --> 00:28:48,190 εξοικειωμένοι και λίγο εξοικειωμένοι. 710 00:28:48,190 --> 00:28:50,740 Αλλά ειδοποίηση ότι ακριβώς όπως τα Windows και Mac OS, jharvard 711 00:28:50,740 --> 00:28:52,190 έχει ένα φάκελο στην επιφάνεια εργασίας. 712 00:28:52,190 --> 00:28:54,520 Έτσι, τυχόν εικόνες που βρίσκονται στην επιφάνεια εργασίας μου συμβεί 713 00:28:54,520 --> 00:28:55,650 να είναι σε αυτόν το φάκελο. 714 00:28:55,650 --> 00:28:57,250 Υπάρχει ένα φάκελο downloads, πράγματα που 715 00:28:57,250 --> 00:28:58,890 Chrome θα μπορούσε να βάλει εκεί. 716 00:28:58,890 --> 00:28:59,250 Dropbox. 717 00:28:59,250 --> 00:29:01,820 Έτσι, η συσκευή έρχεται με ενσωματωμένη υποστήριξη για το Dropbox 718 00:29:01,820 --> 00:29:04,500 έτσι ώστε πάνω από το εξάμηνο, μπορείτε να συγχρονίσετε με το Dropbox σας 719 00:29:04,500 --> 00:29:06,420 λογαριασμό, έτσι ώστε όλα τα προγράμματα σας υποστηρίζεται. 720 00:29:06,420 --> 00:29:08,050 Είναι προσβάσιμο σε άλλο υπολογιστή σας. 721 00:29:08,050 --> 00:29:09,780 Αν κάτι πάει στραβά πάντα με τη συσκευή, μπορείτε να 722 00:29:09,780 --> 00:29:11,340 πολύ εύκολα να ανακτήσει από Dropbox. 723 00:29:11,340 --> 00:29:12,940 Έτσι, ο φάκελος δεν υπάρχει για αυτό. 724 00:29:12,940 --> 00:29:14,660 Υπάρχουν δύο αρχεία που έκανα - hello.c 725 00:29:14,660 --> 00:29:16,540 και a.out. 726 00:29:16,540 --> 00:29:18,530 Και στη συνέχεια προς τα δεξιά υπάρχει κάποια άλλους φακέλους που θα 727 00:29:18,530 --> 00:29:20,710 να πάρει προς το τέλος του εξαμήνου, με την ιστοσελίδα 728 00:29:20,710 --> 00:29:21,540 προγραμματισμού. 729 00:29:21,540 --> 00:29:26,160 Έτσι, όταν το κάνω. /, A.out, Enter, που λέει πάει 730 00:29:26,160 --> 00:29:29,460 στον κατάλογο Είμαι, στον τρέχοντα κατάλογο, και να εκτελέσετε το 731 00:29:29,460 --> 00:29:32,465 πρόγραμμα που ονομάζεται a.out εκεί. 732 00:29:32,465 --> 00:29:35,810 >> Εντάξει, έτσι ώστε να είναι ωραία και καλά, αλλά δεν είναι όλα ότι 733 00:29:35,810 --> 00:29:38,550 συναρπαστικό να γράψει ένα πρόγραμμα που ονομάζεται βοηθήσει a.out. 734 00:29:38,550 --> 00:29:40,790 Έτσι, μπορούμε πραγματικά να κάνουμε αυτό λίγο διαφορετικά. 735 00:29:40,790 --> 00:29:43,980 Έτσι, αντί να τρέχει μόλις κλαγγή, hello.c, ας προσθέσουμε 736 00:29:43,980 --> 00:29:46,850 αυτό που ονομάζεται ένα όρισμα γραμμής εντολών. 737 00:29:46,850 --> 00:29:50,730 Έτσι, ένα επιχείρημα γραμμή εντολών, ή ένα διακόπτη σε αυτή την περίπτωση, είναι απλώς 738 00:29:50,730 --> 00:29:54,930 μια άλλη λέξη ή φράση που πληκτρολογείτε σε μια γραμμή μετά 739 00:29:54,930 --> 00:29:56,290 το πρόγραμμα που θέλετε να εκτελέσετε. 740 00:29:56,290 --> 00:29:59,970 Έτσι, στην περίπτωση αυτή, είναι η κλαγγή πρόγραμμα που θέλετε να εκτελέσετε,-o 741 00:29:59,970 --> 00:30:03,480 εξόδου μέσα ένα αρχείο που δεν είναι πλέον ονομάζεται a.out. 742 00:30:03,480 --> 00:30:07,510 Έξοδος ένα αρχείο που ονομάζεται γεια, και το κάνει με την κατάρτιση του 743 00:30:07,510 --> 00:30:10,200 τελευταία λέξη στη γραμμή, hello.c. 744 00:30:10,200 --> 00:30:13,200 Έτσι, με λίγα λόγια, αυτή είναι μια πολύ μικρή βελτίωση, σύμφωνα με την οποία 745 00:30:13,200 --> 00:30:15,850 αντί να έχουν αυτό το όνομα a.out βλακωδώς αρχείο, 746 00:30:15,850 --> 00:30:21,430 Μπορώ τώρα να κάνω κλαγγή-o hello, τότε hello.c, και 747 00:30:21,430 --> 00:30:22,530 στη συνέχεια, πατήστε Enter. 748 00:30:22,530 --> 00:30:25,510 Τίποτα δεν φαίνεται να συμβαίνει, αλλά και πάλι πολύ ήθελε με 0 - όταν 749 00:30:25,510 --> 00:30:28,510 τίποτα δεν φαίνεται να συμβεί αυτό δεν σημαίνει τίποτα λάθος συνέβη - 750 00:30:28,510 --> 00:30:31,460 οπότε ας κάνουμε ls τώρα, Enter, και μάλιστα εγώ τώρα 751 00:30:31,460 --> 00:30:32,780 έχουν ένα γεια πρόγραμμα. 752 00:30:32,780 --> 00:30:38,510 Έτσι, αν πληκτρολογήσετε γεια τώρα, η εντολή δεν βρέθηκε. 753 00:30:38,510 --> 00:30:39,440 Εντάξει,. /. 754 00:30:39,440 --> 00:30:40,220 Έτσι ακριβώς δεξιά. 755 00:30:40,220 --> 00:30:43,170 Έτσι, επειδή αυτό το πρόγραμμα που έγραψα, και δεν έρχονται με 756 00:30:43,170 --> 00:30:45,810 ο υπολογιστής,. / γειά σου, Enter, σημαίνει 757 00:30:45,810 --> 00:30:47,350 Τρέχω τώρα γεια σου. 758 00:30:47,350 --> 00:30:48,440 >> Έτσι, αυτό είναι εκεί. 759 00:30:48,440 --> 00:30:51,070 Τώρα τι θα πάρει τελικά όλο και περισσότερο τη γραμμή εντολών 760 00:30:51,070 --> 00:30:54,110 επιχειρήματα που θα μας επιτρέψουν να κάνουμε περισσότερα, αλλά μόνο για εκείνες για 761 00:30:54,110 --> 00:30:57,760 τους οποίους αυτό μπορεί να είναι παλιό καπέλο, επιτρέψτε μου να πάω στην πραγματικότητα σε μια 762 00:30:57,760 --> 00:31:01,910 κατάλογο εδώ και απλά να σας δώσει ένα τρέιλερ για το πώς αλλιώς θα 763 00:31:01,910 --> 00:31:05,770 θα μπορούσε να πάει για την εφαρμογή hello world. 764 00:31:05,770 --> 00:31:10,730 Επιτρέψτε μου να πάω σε εδώ, και θα πάω να το ανοίξετε. 765 00:31:10,730 --> 00:31:13,090 Έτσι, στην πραγματικότητα, Πάω να εξηγήσω τι κάνω, έτσι 766 00:31:13,090 --> 00:31:15,610 αυτό είναι χρήσιμο. 767 00:31:15,610 --> 00:31:17,410 Επιτρέψτε μου να δημιουργήσετε αντίγραφα ασφαλείας. 768 00:31:17,410 --> 00:31:19,620 >> Έτσι έχω κάνει αυτό για μεγάλο χρονικό διάστημα. 769 00:31:19,620 --> 00:31:23,030 Έτσι παρατηρήσετε πάνω στα δεξιά υπάρχουν δύο 770 00:31:23,030 --> 00:31:26,940 καταλόγους που παραδόξως το όνομα source1m και source1w. 771 00:31:26,940 --> 00:31:28,830 Αυτό είναι απλά ανόητο σύμβαση που χρησιμοποιούμε. 772 00:31:28,830 --> 00:31:31,825 Πηγή σημαίνει μόνο πηγαίο κώδικα, 1 σημαίνει ότι αυτή είναι εβδομάδα, και 773 00:31:31,825 --> 00:31:34,000 m σημαίνει ότι είναι Δευτέρα, και w σημαίνει ότι είναι Τετάρτη. 774 00:31:34,000 --> 00:31:34,900 Έτσι, τίποτα δεν αινιγματικό εκεί. 775 00:31:34,900 --> 00:31:37,830 Είναι ακριβώς σημειογραφία στενογραφία. 776 00:31:37,830 --> 00:31:39,860 Αυτά τα πράγματα είναι μπλε φακέλους, αλλιώς γνωστή ως 777 00:31:39,860 --> 00:31:40,630 καταλόγους. 778 00:31:40,630 --> 00:31:43,870 Θέλω να πάω σε αυτόν το φάκελο τώρα, και σε ένα κανονικό υπολογιστή 779 00:31:43,870 --> 00:31:45,710 Θα μπορούσα απλά κάντε διπλό κλικ σε ένα εικονίδιο φακέλου και 780 00:31:45,710 --> 00:31:46,810 υπάρχει όλα τα αρχεία μου. 781 00:31:46,810 --> 00:31:49,270 Αλλά σε ένα περιβάλλον γραμμής εντολών, δεν μπορώ να κάνω αρκετά 782 00:31:49,270 --> 00:31:52,640 ότι, έτσι αντ 'αυτού, θα πρέπει να αλλάξετε καταλόγους με το χέρι. 783 00:31:52,640 --> 00:31:57,900 Έτσι, αν πληκτρολογήσετε cd και στη συνέχεια source1m, Enter, παρατηρούμε ότι 784 00:31:57,900 --> 00:32:01,180 προτροπή μου, το πράγμα σε λευκό στα αριστερά, απλά άλλαξε. 785 00:32:01,180 --> 00:32:03,690 Και έτσι, όταν είπε μόλις παρενθέσεις και στη συνέχεια τα 786 00:32:03,690 --> 00:32:06,450 λίγο τζίφρα, το σύμβολο περισπωμένη, που σήμαινε απλά ότι ήμουν 787 00:32:06,450 --> 00:32:08,800 στον κατάλογο home John Χάρβαρντ, του έγγραφά μου, 788 00:32:08,800 --> 00:32:10,390 προσωπικά αρχεία του. 789 00:32:10,390 --> 00:32:14,000 Αλλά τώρα σε παρένθεση λέει ~ / source1m. 790 00:32:14,000 --> 00:32:17,090 Αυτό σημαίνει απλά ότι είμαι σε ένα φάκελο που ονομάζεται source1m 791 00:32:17,090 --> 00:32:19,160 που είναι στον κατάλογο σπίτι του John Harvard. 792 00:32:19,160 --> 00:32:22,030 Έτσι, αν τώρα θέλετε να εμφανιστούν τα αρχεία σε αυτόν το φάκελο, εύκολη 793 00:32:22,030 --> 00:32:25,300 ερώτηση, εγώ απλά πληκτρολογήστε ls. 794 00:32:25,300 --> 00:32:28,860 Και τώρα βλέπω όλα τα αρχεία που προ-δημιουργήθηκε για σήμερα 795 00:32:28,860 --> 00:32:31,020 διάλεξη, όλα από τα οποία, ή το μεγαλύτερο μέρος της οποίας, να συμβεί 796 00:32:31,020 --> 00:32:32,740 να τελειώνουν σε. γ.. 797 00:32:32,740 --> 00:32:36,210 >> Επιτρέψτε μου λοιπόν να προχωρήσουμε τώρα και να εκτελέσετε το gedit από ένα πρόγραμμα που ονομάζεται 798 00:32:36,210 --> 00:32:39,140 holloway.c, το οποίο είναι γραμμένο από κάποιο τυχαίο χάκερ 799 00:32:39,140 --> 00:32:42,920 στο Διαδίκτυο, που μοιάζει λίγο σαν αυτό. 800 00:32:42,920 --> 00:32:44,880 Και δεν πρόκειται να περάσει μέσα από αυτό το ένα σε κάθε 801 00:32:44,880 --> 00:32:48,530 λεπτομέρεια, αλλά για εκείνους πιο άνετη, ειδικότερα, αν 802 00:32:48,530 --> 00:32:50,935 θέλετε να πάρετε μια εικασία για το τι κάνει αυτό το πρόγραμμα εδώ. 803 00:32:57,950 --> 00:32:59,990 Να είστε βέβαιοι, αν είστε λιγότερο ή περισσότερο άνετα, 804 00:32:59,990 --> 00:33:01,655 δεν είμαστε ακόμα φτάσει σε αυτό το είδος του πράγματος από το τέλος του 805 00:33:01,655 --> 00:33:02,160 αυτό το εξάμηνο. 806 00:33:02,160 --> 00:33:05,390 Αυτό είναι ό, τι είναι ένα παράδειγμα ενός διαγωνισμού ασαφής C, η οποία 807 00:33:05,390 --> 00:33:08,390 μέσα γράψει το πιο αινιγματικό πρόγραμμα ψάχνει μπορείτε ενδεχομένως 808 00:33:08,390 --> 00:33:10,820 μπορεί να ξεπεράσει άλλα έξυπνοι άνθρωποι, οι οποίοι είναι ομοίως 809 00:33:10,820 --> 00:33:13,010 προσπαθεί να γράψει τα πράγματα και να αναδείξουν ότι μπορεί να γράψει 810 00:33:13,010 --> 00:33:14,280 πιο αινιγματικά πράγματα από ό, τι μπορείτε. 811 00:33:14,280 --> 00:33:17,290 Έτσι, αυτό δεν είναι ένα παράδειγμα ενός καλογραμμένη πρόγραμμα από τη 812 00:33:17,290 --> 00:33:21,260 προοπτικής του στυλ, αυτό είναι ένα παράδειγμα ενός προγράμματος που 813 00:33:21,260 --> 00:33:22,860 κερδίζει ένα διαγωνισμό, για ανθρώπους που προσπαθούν να 814 00:33:22,860 --> 00:33:24,090 είναι ασαφής και αφηρημένη. 815 00:33:24,090 --> 00:33:27,670 >> Έτσι, αν τρέξουμε αυτό το πράγμα, επιτρέψτε μου να πάω σε παράθυρο τερματικού μου, 816 00:33:27,670 --> 00:33:28,110 να το πω έτσι. 817 00:33:28,110 --> 00:33:29,650 Έτσι, αυτό το μαύρο και λευκό περιβάλλον ονομάζεται 818 00:33:29,650 --> 00:33:31,160 παράθυρο τερματικού γενικά. 819 00:33:31,160 --> 00:33:32,600 Επιτρέψτε μου να προχωρήσει και να το μεταφράσει. 820 00:33:32,600 --> 00:33:34,440 Είμαι δεν πρόκειται να χρησιμοποιήσετε κλαγγή, επειδή αυτό το πρόγραμμα είναι 821 00:33:34,440 --> 00:33:36,340 περίεργη και χρειάζεται μια διαφορετική 822 00:33:36,340 --> 00:33:38,190 μεταγλωττιστή, που ονομάζεται GCC. 823 00:33:38,190 --> 00:33:39,200 Αλλά κάνει το ίδιο πράγμα. 824 00:33:39,200 --> 00:33:41,130 Παίρνει τον πηγαίο κώδικα σε αντικειμενικό κώδικα. 825 00:33:41,130 --> 00:33:43,940 Και τώρα αν τρέχω σας a.out, το εν λόγω πρόγραμμα 826 00:33:43,940 --> 00:33:46,065 μόλις είδα το κάνει αυτό. 827 00:33:49,220 --> 00:33:51,170 Έτσι, αυτό τους συναδέλφους εκείνη τη χρονιά κέρδισε το διαγωνισμό. 828 00:33:51,170 --> 00:33:54,020 Εν πάση περιπτώσει, εμείς δεν πρόκειται σε αυτή την κατεύθυνση, per se. 829 00:33:54,020 --> 00:33:57,400 >> Ας προσπαθήσουμε πραγματικά να δώσουμε έμφαση, εκτός τώρα τι μπορούμε να κάνουμε 830 00:33:57,400 --> 00:33:59,540 με αυτές τις βασικές δομικές μονάδες για να κάνουν όλο και περισσότερο 831 00:33:59,540 --> 00:34:00,590 ενδιαφέροντα προγράμματα. 832 00:34:00,590 --> 00:34:02,800 Έτσι έχουμε γράψει ένα πρόγραμμα, έχουμε τρέξει ένα πρόγραμμα. 833 00:34:02,800 --> 00:34:05,780 Τώρα μπορούμε πραγματικά να απλοποιήσει και δεν χρειάζεται πλέον να γράψουν 834 00:34:05,780 --> 00:34:07,210 η κλαγγή λέξη στη γραμμή εντολών. 835 00:34:07,210 --> 00:34:10,710 Βγάζει τα προγράμματα μας πάρει πιο αινιγματικά, μπορούμε, ή 836 00:34:10,710 --> 00:34:14,699 μάλλον πιο σύνθετη, μπορούμε και τρέχουμε την εντολή αυτή. 837 00:34:14,699 --> 00:34:17,610 Έτσι, επιτρέψτε μου να πάω πίσω στον κατάλογο το σπίτι μου, να το πω έτσι, επιτρέψτε μου να 838 00:34:17,610 --> 00:34:20,750 αφαιρέστε - rm είναι η αφαίρεση εντολή - Πάω να αφαιρέσετε 839 00:34:20,750 --> 00:34:23,060 το αρχείο με όνομα a.out και γειά σου. 840 00:34:23,060 --> 00:34:25,489 Και τώρα παρατηρήσετε σε ένα περιβάλλον γραμμής εντολών, όπως και σε 841 00:34:25,489 --> 00:34:27,800 ένα γραφικό περιβάλλον, μπορείτε να πάρετε ζητηθεί. Δεν μπορώ να πατήσω ένα κουμπί και αν? I 842 00:34:27,800 --> 00:34:31,040 πρέπει να πληκτρολογήσετε για y ναι, ναι για y. 843 00:34:31,040 --> 00:34:33,460 Και τώρα αν πληκτρολογήσετε ls, και πάλι ειδοποίηση ότι εκείνοι πράσινο 844 00:34:33,460 --> 00:34:35,469 προγράμματα - a.out και γειά σου - 845 00:34:35,469 --> 00:34:35,734 έχουν φύγει. 846 00:34:35,734 --> 00:34:37,340 Προσοχή rm. 847 00:34:37,340 --> 00:34:39,739 Μπορεί να κάνει κακά πράγματα, ακριβώς όπως μπορείτε να σύροντας 848 00:34:39,739 --> 00:34:40,810 πράγματα για τα σκουπίδια σας. 849 00:34:40,810 --> 00:34:43,989 >> Έτσι τώρα ας προχωρήσουμε - και θα μπορούσα να κάνω αυτό - κλαγγή-o 850 00:34:43,989 --> 00:34:45,139 Γεια σας, γεια - 851 00:34:45,139 --> 00:34:46,884 Είμαι ήδη βαρεθεί πληκτρολογώντας την εντολή αυτή. 852 00:34:46,884 --> 00:34:48,080 Ακόμα κι αν το γράψατε λίγο γρήγορα. 853 00:34:48,080 --> 00:34:51,870 Έτσι, μπορούμε αντί να κάνουν γεια. 854 00:34:51,870 --> 00:34:53,880 Γι 'αυτό δεν είναι ένα μεταγλωττιστή. 855 00:34:53,880 --> 00:34:57,720 Είναι απλά ένα φιλικό πρόγραμμα που έρχεται με το Linux, σε αυτό το 856 00:34:57,720 --> 00:34:59,070 περίπτωση - το λειτουργικό σύστημα - 857 00:34:59,070 --> 00:35:02,480 που αυτοματοποιεί τη διαδικασία κατάρτισης των προγραμμάτων. 858 00:35:02,480 --> 00:35:05,555 Έτσι, αντί να θυμόμαστε κλαγγή-o αρχείου και 859 00:35:05,555 --> 00:35:08,190 τότε ούτω καθ 'εξής, ειδικά όταν αυτές οι γραμμές παίρνουν πλέον και 860 00:35:08,190 --> 00:35:10,110 πλέον, μπορώ να γράψω απλά κάνουν. 861 00:35:10,110 --> 00:35:12,030 Και αυτό πρόκειται να φτύσει ένα σωρό πράγματα που 862 00:35:12,030 --> 00:35:13,940 θα δούμε τελικά αυτό το εξάμηνο. 863 00:35:13,940 --> 00:35:17,500 Αλλά τώρα αν παρατηρήσετε εγώ ls τύπου, hello είναι πίσω στον κατάλογο μου. 864 00:35:17,500 --> 00:35:19,850 Και μάλιστα μπορώ να το τρέξει με. / Γεια. 865 00:35:19,850 --> 00:35:23,330 Γι 'αυτό ακριβώς αυτοματοποιεί τη διαδικασία της λειτουργίας ό, τι ήταν, 866 00:35:23,330 --> 00:35:26,910 σε αυτή την περίπτωση, ένα πολύ περισσότερο, πιο περίπλοκη εντολή. 867 00:35:26,910 --> 00:35:29,060 Έτσι θα πάμε για να αρχίσετε να χρησιμοποιείτε μάρκα, μόνο και μόνο επειδή είναι πολύ 868 00:35:29,060 --> 00:35:30,530 πιο φιλική προς το χρήστη. 869 00:35:30,530 --> 00:35:32,770 >> Αλλά τώρα ας κάνουμε μια πιο ενδιαφέρουσα πρόγραμμα 870 00:35:32,770 --> 00:35:34,650 από ό, τι απλά να πω ένα γεια. 871 00:35:34,650 --> 00:35:38,680 Έτσι, τα προγράμματα που έχουμε γράψει μέχρι στιγμής δεν υπάρχει κύρια. 872 00:35:38,680 --> 00:35:40,890 Αυτό είναι ακριβώς το πράγμα που προεπιλεγμένη ξεκινά πάντα μακριά. 873 00:35:40,890 --> 00:35:43,340 Υπάρχουν όμως και άλλες λειτουργίες εκεί έξω, καθώς, και 874 00:35:43,340 --> 00:35:45,890 stdio.h είναι το πράγμα που είδαμε στην κορυφή της μας 875 00:35:45,890 --> 00:35:48,480 αρχείο πριν, και αυτό είναι αυτό που είναι γνωστό ως πρότυπο βιβλιοθήκης. 876 00:35:48,480 --> 00:35:51,300 Μέσα από την πρότυπη βιβλιοθήκη είναι ένα σωρό λειτουργίες 877 00:35:51,300 --> 00:35:53,850 ότι κάποιος άλλος έγραψε, και μπορούμε να αρχίσετε να χρησιμοποιείτε αυτά τα 878 00:35:53,850 --> 00:35:55,050 λειτουργίες να γράψω περισσότερα 879 00:35:55,050 --> 00:35:56,760 ενδιαφέροντα προγράμματα εαυτούς μας. 880 00:35:56,760 --> 00:35:58,370 >> Έτσι, επιτρέψτε μου να πάω πίσω στη συσκευή. 881 00:35:58,370 --> 00:35:59,820 Πάω να κλείσει αυτό το παράθυρο τερματικού. 882 00:35:59,820 --> 00:36:02,630 Πάω να κλείσει τα πράγματα γράψαμε νωρίτερα, και να φύγουμε 883 00:36:02,630 --> 00:36:07,350 σε hello.c, και να παρατηρήσετε τώρα μπορώ να κάνω το εξής. 884 00:36:07,350 --> 00:36:09,730 Γεια σας κόσμο δεν είναι και τόσο ενδιαφέρουσα? Θα ήθελα να 885 00:36:09,730 --> 00:36:11,770 προσαρμόσετε το πρόγραμμα αυτό για τον εαυτό μου. 886 00:36:11,770 --> 00:36:13,440 Έτσι, αντί να λέμε κόσμο, Πάω να 887 00:36:13,440 --> 00:36:14,830 να προχωρήσει και να πω - 888 00:36:14,830 --> 00:36:16,880 Θα μπορούσα να πληκτρολογήσετε Ντέιβιντ - αλλά αυτό είναι πραγματικά το είδος της 889 00:36:16,880 --> 00:36:18,050 βασικά το ίδιο. 890 00:36:18,050 --> 00:36:19,970 Αλλά ας προσπαθήσουμε από αυτή την ιδέα κράτησης θέσης. 891 00:36:19,970 --> 00:36:24,460 Υπενθυμίζεται ότι σε C, μάλλον σε printf, είχαμε αυτά τα 892 00:36:24,460 --> 00:36:28,110 κράτησης θέσης, και εκεί είναι κάτι περισσότερο από% d. 893 00:36:28,110 --> 00:36:31,150 Έτσι ήταν% d, γρήγορο έλεγχο λογική. 894 00:36:31,150 --> 00:36:32,310 Εντάξει, δεκαδικός αριθμός, αυτό είναι όλο. 895 00:36:32,310 --> 00:36:33,860 Δεκαδικά ψηφία, αυτό είναι όλο. 896 00:36:33,860 --> 00:36:37,755 Έτσι γ%, όπως θα συναντήσετε, θα είναι ένας χαρακτήρας. 897 00:36:37,755 --> 00:36:40,530 Βάλτε εδώ ένα χαρακτήρα, ένα γράμμα Α έως το Ζ, 898 00:36:40,530 --> 00:36:41,600 ή σύμβολο στίξης. 899 00:36:41,600 --> 00:36:45,590 Ένα ενιαίο χαρακτήρα, στ%, κανείς από άλλες γλώσσες; 900 00:36:45,590 --> 00:36:47,020 Έτσι, ένα Μιατιμήκινητήςυποδιαστολής. 901 00:36:47,020 --> 00:36:47,880 Ένας πραγματικός αριθμός. 902 00:36:47,880 --> 00:36:51,550 Έτσι, δεν είναι ένας δεκαδικός αριθμός - αυτό είναι πραγματικά ένας πραγματικός αριθμός με 903 00:36:51,550 --> 00:36:54,130 μια υποδιαστολή, και κάποια αριθμός των ψηφίων στα αριστερά 904 00:36:54,130 --> 00:36:55,520 και δεξιά του. 905 00:36:55,520 --> 00:36:58,060 % S, string. 906 00:36:58,060 --> 00:36:59,530 Εκείνο το ένα θα πάμε να δούμε αρκετά συχνά. 907 00:36:59,530 --> 00:37:02,140 Μια συμβολοσειρά, και πάλι, είναι απλώς μια λέξη, μια φράση, μια σειρά από 908 00:37:02,140 --> 00:37:03,330 μεμονωμένων χαρακτήρων. 909 00:37:03,330 --> 00:37:06,730 Και τέλος, LLD; 910 00:37:06,730 --> 00:37:08,210 Έτσι, αυτό είναι κάτι περισσότερο από μια υπόθεση γωνία. 911 00:37:08,210 --> 00:37:09,850 Μακριά, πολύ δεκαδικό. 912 00:37:09,850 --> 00:37:12,035 Έτσι, αν θέλετε όχι μόνο έναν αριθμό που είναι αυτό το μεγάλο, σας 913 00:37:12,035 --> 00:37:14,160 θέλουν ένα μεγαλύτερο αριθμό, εσείς πρόκειται να πρέπει να καθορίσετε να 914 00:37:14,160 --> 00:37:16,400 ο υπολογιστής που είναι από ένα συγκεκριμένο μέγεθος. 915 00:37:16,400 --> 00:37:17,610 >> Ας τσίμπημα αυτό το λίγο. 916 00:37:17,610 --> 00:37:20,610 Αντί απλά σκληρό κώδικα σε David, επιτρέψτε μου λίγο 917 00:37:20,610 --> 00:37:22,460 δυναμικά πούμε% s. 918 00:37:22,460 --> 00:37:25,790 Έτσι τίθεται% s εδώ, το οποίο είναι ένα σύμβολο κράτησης θέσης για μια σειρά. 919 00:37:25,790 --> 00:37:30,500 Στη συνέχεια, επιτρέψτε μου να κάνω κόμμα, και στη συνέχεια, "David" εδώ. 920 00:37:30,500 --> 00:37:32,770 Τώρα αυτό δεν είναι και τόσο πνευματικά ενδιαφέροντα, 921 00:37:32,770 --> 00:37:35,060 γιατί όλα έχω κάνει τώρα είναι να δημιουργήσετε πραγματικά περισσότερη δουλειά για 922 00:37:35,060 --> 00:37:35,790 ο υπολογιστής. 923 00:37:35,790 --> 00:37:39,660 Αντί να πείτε στον υπολογιστή το κάνετε αυτό όλα με τη μία, είμαι τώρα 924 00:37:39,660 --> 00:37:43,760 λέγοντας το κάνετε αυτό και να εισαγάγετε μια σειρά εδώ, τελικά κόμμα, 925 00:37:43,760 --> 00:37:44,950 εδώ είναι ότι η σειρά. 926 00:37:44,950 --> 00:37:47,220 Έτσι, αυτό δεν είναι μια καλύτερη βελτίωση, αλλά είναι τουλάχιστον 927 00:37:47,220 --> 00:37:49,010 ένα βήμα προς μια πιο ενδιαφέρον πρόγραμμα. 928 00:37:49,010 --> 00:37:51,240 Γιατί τώρα, επιτρέψτε μου να προχωρήσει και να κάνει αυτό το παράθυρο ένα μικρό 929 00:37:51,240 --> 00:37:56,850 μεγαλύτερο, επιτρέψτε μου να πάω μπροστά και να τρέξει να γειά σου. 930 00:37:56,850 --> 00:38:01,340 Και τώρα,. / A.out δεν λειτουργεί, γιατί; 931 00:38:03,880 --> 00:38:05,570 Εντάξει, τώρα λέγεται γεια. 932 00:38:05,570 --> 00:38:09,400 Έτσι κάνουν και πάλι, καθώς επίσης και με ένα κουδούνισμα-o, μετονομάστηκε το 933 00:38:09,400 --> 00:38:11,120 πρόγραμμα να είναι κάτι πιο ενδιαφέρον. 934 00:38:11,120 --> 00:38:13,060 Και ιδού: τώρα λέει γεια David. 935 00:38:13,060 --> 00:38:14,590 >> Εντάξει, ακόμα ένα ηλίθιο πρόγραμμα. 936 00:38:14,590 --> 00:38:18,070 Έτσι, τώρα ας επιστρέψουμε στην πραγματικότητα εδώ και εισάγουν την έννοια 937 00:38:18,070 --> 00:38:18,810 μιας μεταβλητής. 938 00:38:18,810 --> 00:38:21,600 Δεν θα ήταν ωραίο αν θα μπορούσα να δηλώσετε μια μεταβλητή 939 00:38:21,600 --> 00:38:23,150 των οποίων ο τύπος είναι string; 940 00:38:23,150 --> 00:38:26,720 Και η αξία της μεταβλητής προέρχεται πράγματι από τον χρήστη 941 00:38:26,720 --> 00:38:27,810 τον εαυτό του. 942 00:38:27,810 --> 00:38:30,240 Έτσι αυθαίρετα, Πάω να καλέσετε μεταβλητή s μου, το οποίο είναι 943 00:38:30,240 --> 00:38:32,410 απλά μια κοινή σύμβαση, όταν έχετε μια μεταβλητή που ονομάζεται 944 00:38:32,410 --> 00:38:33,250 το string. 945 00:38:33,250 --> 00:38:35,670 Πάω να κάνω σύμβολο της ισότητας, και στη συνέχεια, Πάω να καλέσετε έναν 946 00:38:35,670 --> 00:38:38,030 λειτουργία που ονομάζεται GetString. 947 00:38:38,030 --> 00:38:40,830 Έτσι GetString δεν είναι κάτι που έρχεται ενσωματωμένη C. Είναι 948 00:38:40,830 --> 00:38:43,330 μια λειτουργία που η CS50 προσωπικό έγραψε, πραγματικά μόνο για 949 00:38:43,330 --> 00:38:45,670 οι πρώτες δύο εβδομάδες, για να απλοποιηθεί η διαδικασία της 950 00:38:45,670 --> 00:38:49,450 να πάρει είσοδο του χρήστη και κερδίζει είσοδο του χρήστη σε μορφή 951 00:38:49,450 --> 00:38:51,960 των χορδών, ή αριθμούς, και τέτοια. 952 00:38:51,960 --> 00:38:55,520 Έτσι GetString είναι σαν printf, αλλά προφανώς όχι 953 00:38:55,520 --> 00:38:58,700 εκτύπωση πρόκειται να κάνει ό, τι λέει το όνομά του, να πάρει ένα string. 954 00:38:58,700 --> 00:39:00,970 Αλλά για να χρησιμοποιήσετε GetString, θα πάμε να πρέπει να κάνετε μια αλλαγή 955 00:39:00,970 --> 00:39:03,180 εδώ, πέρα ​​από αυτό. 956 00:39:03,180 --> 00:39:07,170 Έτσι, διαισθητικά, το πρόγραμμα αυτό, ελπίζουμε, είναι κατά κάποιο τρόπο 957 00:39:07,170 --> 00:39:09,700 πάρετε μια σειρά από τον χρήστη, και στη συνέχεια, τι θα μπορούσε να το κάνει 958 00:39:09,700 --> 00:39:11,460 με την εν λόγω σειρά, που ονομάζεται s; 959 00:39:15,060 --> 00:39:16,470 Είναι ακριβώς πρόκειται να το εκτυπώσετε, έτσι δεν είναι; 960 00:39:16,470 --> 00:39:18,870 Ακόμα δεν είναι μια τόνωση της πρόγραμμα, διότι το μόνο που συμβαίνει 961 00:39:18,870 --> 00:39:22,160 να κάνετε είναι να συνδέσετε σε αυτή την τιμή σε% s, όπου 962 00:39:22,160 --> 00:39:23,750 λέει ότι πρέπει να πάει. 963 00:39:23,750 --> 00:39:25,290 >> Ας τουλάχιστον το δείτε στην πράξη. 964 00:39:25,290 --> 00:39:27,040 Επιτρέψτε μου να αποθηκεύσετε και σμίκρυνση. 965 00:39:27,040 --> 00:39:30,280 Τώρα, στο παράθυρο του τερματικού μου εδώ κάτω, το μικρό κομμάτι από ένα, 966 00:39:30,280 --> 00:39:32,760 επιτρέψτε μου να κάνουν και πάλι γεια. 967 00:39:32,760 --> 00:39:35,160 Εντάξει, και αχ, γαμώτο? Πήρα ένα σωρό λάθη. 968 00:39:35,160 --> 00:39:38,020 Επιτρέψτε μου να μετακινηθείτε προς τα επάνω, και βλέπουμε το πρώτο μας - 969 00:39:38,020 --> 00:39:40,430 οπότε ας κάνουμε πραγματικότητα αυτό σε ένα ακόμη μεγαλύτερο παράθυρο, έτσι ώστε να 970 00:39:40,430 --> 00:39:42,110 μπορεί να δει πόσο άσχημα σκάτωσα - 971 00:39:42,110 --> 00:39:44,460 Γι 'αυτό γεια. 972 00:39:44,460 --> 00:39:46,540 Εντάξει, αυτό είναι μια καταστροφή, έτσι δεν είναι; 973 00:39:46,540 --> 00:39:48,740 Έχω γράψει τρεις γραμμές κώδικα, και 974 00:39:48,740 --> 00:39:50,070 αυτό μου έδωσε 12 σφάλματα. 975 00:39:50,070 --> 00:39:51,980 Γιατί, λοιπόν, είναι αυτό; 976 00:39:51,980 --> 00:39:55,720 Έτσι, ευτυχώς, πολλές φορές όταν βλέπεις πολλά, πολλά λάθη 977 00:39:55,720 --> 00:39:57,730 φτύσιμο από τη μία, είναι πραγματικά μόνο και μόνο επειδή έχετε 978 00:39:57,730 --> 00:39:59,760 σύγχυση του υπολογιστή μέχρι εδώ. 979 00:39:59,760 --> 00:40:02,330 Και εξακολουθεί να συγχέεται με το χρόνο γίνεται εδώ κάτω. 980 00:40:02,330 --> 00:40:04,400 Και έτσι ξεκινά μόλις γλιστρήσουν, και το παραπάτημα, και 981 00:40:04,400 --> 00:40:07,310 φτύσιμο πιο τρομακτικό από ό, τι στην πραγματικότητα τα πράγματα ισχύει. 982 00:40:07,310 --> 00:40:10,120 Έτσι, σε γενικές γραμμές, πάντα αρχίζουν με την κορυφή ένα. 983 00:40:10,120 --> 00:40:13,320 >> Έτσι, το πολύ πιο πάνω παράδειγμα, του κόκκινου, του 984 00:40:13,320 --> 00:40:14,740 μήνυμα λάθους είναι αυτό. 985 00:40:14,740 --> 00:40:17,750 Η χρήση της αδήλωτης συμβολοσειρά αναγνωριστικού, έκανα 986 00:40:17,750 --> 00:40:19,160 σημαίνει πρότυπο; 987 00:40:19,160 --> 00:40:19,900 Δεν το έκανα. 988 00:40:19,900 --> 00:40:24,180 Εννοούσα χορδών, αλλά αυτό οφείλεται στο ότι, επίσης, η συμβολοσειρά λέξη 989 00:40:24,180 --> 00:40:26,020 ότι κρατώ τη χρήση προφορικά στην πραγματικότητα 990 00:40:26,020 --> 00:40:27,240 δεν υπάρχει στην C είτε. 991 00:40:27,240 --> 00:40:29,470 Είναι κάτι που θα χρησιμοποιούν μόνο για την πρώτη εβδομάδα ή δύο 992 00:40:29,470 --> 00:40:34,500 εδώ, αλλά υπάρχει σε ένα αρχείο που ονομάζεται cs50.h. 993 00:40:34,500 --> 00:40:37,110 Έτσι, προς το παρόν, γνωρίζουμε ότι υπάρχει αυτή η άλλη ότι η βιβλιοθήκη 994 00:40:37,110 --> 00:40:39,330 προσωπικό έγραψε, γι 'αυτό έχει γραφτεί πιο πρόσφατα από ό, τι 995 00:40:39,330 --> 00:40:40,510 stdio.h. 996 00:40:40,510 --> 00:40:45,020 Αλλά μέσα από cs50.h είναι ένας ορισμός, συνώνυμο της 997 00:40:45,020 --> 00:40:48,310 είδη, που δημιουργεί αυτή τη συμβολοσειρά κειμένου. 998 00:40:48,310 --> 00:40:50,890 >> Έτσι, τώρα επιτρέψτε μου να πάω πίσω στο παράθυρο του τερματικού μου. 999 00:40:50,890 --> 00:40:53,200 Πάω να καθαρίσει όλο αυτό το χάος με Ctrl-L. Εμείς απλώς θα 1000 00:40:53,200 --> 00:40:55,700 σκουπίστε τα πάντα καθαρά, και είμαι πρόκειται να πάει μπροστά και να κάνουν 1001 00:40:55,700 --> 00:40:57,860 Γεια σας και πάλι, Enter. 1002 00:40:57,860 --> 00:40:59,440 Έτσι, αυτό που έχει συμβεί τώρα; 1003 00:40:59,440 --> 00:41:01,150 Τώρα όλα αυτά τα λάθη πήγε μακριά. 1004 00:41:01,150 --> 00:41:02,230 Έτσι, ό, τι έχω κάνει πραγματικά; 1005 00:41:02,230 --> 00:41:05,920 Έχω διδάξει μόνο τον υπολογιστή που υπάρχει κορδόνι, και είναι 1006 00:41:05,920 --> 00:41:07,890 σε αυτό το αρχείο ονομάζεται cs50.h. 1007 00:41:07,890 --> 00:41:10,930 Οπότε σταματήστε να παραπονιέστε, γιατί τώρα ξέρετε πού να βρείτε 1008 00:41:10,930 --> 00:41:13,220 δήλωση ότι η λειτουργία του να το πω έτσι. 1009 00:41:13,220 --> 00:41:15,200 Όταν υπάρχει στον κόσμο. 1010 00:41:15,200 --> 00:41:18,820 >> Έτσι, τώρα είμαι πρόκειται να πάει μπροστά και να τρέξει γεια. 1011 00:41:18,820 --> 00:41:22,300 I φαίνεται να έχουν έναν άπειρο βρόχο, συμβαίνει τίποτα του. 1012 00:41:25,530 --> 00:41:26,870 Γι 'αυτό χρειάζεται να πληκτρολογήσετε κάτι εδώ, δεξιά. 1013 00:41:26,870 --> 00:41:29,650 Η πρώτη γραμμή του κώδικα στο πρόγραμμά μου ήταν GetString. 1014 00:41:29,650 --> 00:41:31,750 Γι 'αυτό είναι κυριολεκτικά περιμένει να πάρει ένα string. 1015 00:41:31,750 --> 00:41:33,680 Έτσι, με αυτή την έννοια ναι, αυτό είναι ένα άπειρο βρόχο. 1016 00:41:33,680 --> 00:41:36,520 Προφανώς σε GetString είναι προεπιλεγμένη συμπεριφορά που 1017 00:41:36,520 --> 00:41:37,510 έγραψε - το προσωπικό - 1018 00:41:37,510 --> 00:41:39,550 που λέει απλά περιμένετε και περιμένετε και περιμένετε και περιμένετε και περιμένετε, 1019 00:41:39,550 --> 00:41:42,550 έως ότου ο χρήστης δίνει μια σειρά από πληκτρολογώντας κάτι μέσα 1020 00:41:42,550 --> 00:41:46,000 Επιτρέψτε μου λοιπόν να προχωρήσουμε και πληκτρολογήστε D-α-ν - i-d, Enter. 1021 00:41:46,000 --> 00:41:47,420 Και εκεί είναι, γεια David. 1022 00:41:47,420 --> 00:41:50,430 >> Τώρα αυτό δεν φαίνεται σαν να είναι απλά μια πράξη; 1023 00:41:50,430 --> 00:41:52,810 Επιτρέψτε μου να προχωρήσει και να πληκτρολογήσετε τον Tommy. 1024 00:41:52,810 --> 00:41:54,740 Εισάγετε, εντάξει, φαίνεται να λειτουργεί. 1025 00:41:54,740 --> 00:41:59,130 Έργα για τον Rob, έργα για Zamyla, εργάζεται για - εντάξει. 1026 00:41:59,130 --> 00:42:01,000 Έτσι πρόκειται να λειτουργήσει, κατά πάσα πιθανότητα. 1027 00:42:01,000 --> 00:42:05,030 Γι 'αυτό θα πρέπει να εκτυπώσετε ό, τι δίνουμε πραγματικά, 1028 00:42:05,030 --> 00:42:07,830 και μπορούμε να είμαστε λίγο δύσκολο εδώ. 1029 00:42:07,830 --> 00:42:12,130 Ας δούμε αν μπορούμε να κάνουμε κάτι σαν γεια. 1030 00:42:12,130 --> 00:42:18,000 Μπορεί να πάει πάνω από εδώ, ας δούμε, αντιγραφή, επικόλληση. 1031 00:42:18,000 --> 00:42:19,950 Είμαι δεν πρόκειται να είναι σε θέση να επικολλήσετε ότι πολλές φορές εδώ. 1032 00:42:19,950 --> 00:42:24,410 Επικόλληση, εντάξει, Shift + Ctrl + V. Λοιπόν, τι θα μπορούσε να 1033 00:42:24,410 --> 00:42:26,970 συμβεί αυτό είναι κακό εδώ; 1034 00:42:26,970 --> 00:42:27,770 >> Εντάξει, έτσι, segfaults. 1035 00:42:27,770 --> 00:42:29,710 Έτσι, κάποιοι από εσάς με την προηγούμενη υπόβαθρο θα γνωρίζουν ότι 1036 00:42:29,710 --> 00:42:32,710 γενικά, δίνοντας υπολογιστές πολλές εισόδους όταν είναι 1037 00:42:32,710 --> 00:42:36,140 κατά πάσα πιθανότητα δεν προορίζεται να λάβετε μεγάλα ονόματα όπως αυτό - κακό 1038 00:42:36,140 --> 00:42:36,740 τα πράγματα να συμβούν. 1039 00:42:36,740 --> 00:42:39,230 Πράγματι, στον κόσμο του διαδικτύου, πάρα πολύ, αυτό συμβαίνει αρκετά, 1040 00:42:39,230 --> 00:42:41,000 σύμφωνα με την οποία όταν σχεδιάζετε μια ιστοσελίδα, όταν είστε 1041 00:42:41,000 --> 00:42:43,850 Facebook σχεδιασμό, θα πρέπει να κάνει αυθαίρετες αποφάσεις μέχρι 1042 00:42:43,850 --> 00:42:45,370 μπροστά, όπως πόσο καιρό θα κάποιου 1043 00:42:45,370 --> 00:42:46,360 Facebook είναι το όνομα χρήστη; 1044 00:42:46,360 --> 00:42:48,050 Ή πόσο καιρό θα πρέπει πρώτα όνομα κάποιου είναι; 1045 00:42:48,050 --> 00:42:50,110 Πόσο καιρό θα τον αριθμό τηλεφώνου κάποιου είναι και τα παρόμοια. 1046 00:42:50,110 --> 00:42:53,580 Και αν οι προγραμματιστές κάνουν κακές υποθέσεις, να σπάσει τα προγράμματα 1047 00:42:53,580 --> 00:42:56,640 επειδή προσπαθείτε δίνοντάς τους περισσότερη παραγωγή, περισσότερα στοιχεία 1048 00:42:56,640 --> 00:42:58,330 μάλλον, από ό, τι έχουν μνήμη. 1049 00:42:58,330 --> 00:43:01,860 Ή μνήμη RAM που διατίθενται γι 'αυτό, και έτσι αν τώρα πατήστε Enter, 1050 00:43:01,860 --> 00:43:04,640 ότι το πρόγραμμα εργάστηκαν πραγματικά, επειδή ήμασταν στη βιβλιοθήκη 1051 00:43:04,640 --> 00:43:06,790 περιμέναμε και πραγματικά αυτή τη συγκεκριμένη περίπτωση. 1052 00:43:06,790 --> 00:43:10,900 Αλλά αναμφίβολα αυτό το εξάμηνο, θα γράψει τουλάχιστον ένα 1053 00:43:10,900 --> 00:43:13,280 πρόγραμμα που θα πει αυτά τα λόγια. 1054 00:43:13,280 --> 00:43:16,520 Να θυμάστε αυτά τα εβδομάδες από τώρα, ίσως δύο ημέρες από τώρα. 1055 00:43:16,520 --> 00:43:18,760 Τμηματοποίηση σφάλμα είναι ένα κακό πράγμα. 1056 00:43:18,760 --> 00:43:21,920 Θα αναφερθώ σε κάτι σας ότι ο υπολογιστής 1057 00:43:21,920 --> 00:43:23,310 Δεν πρόλαβε. 1058 00:43:23,310 --> 00:43:25,810 Και σε αυτή την περίπτωση, εσείς, ο προγραμματιστής, δεν αναμένουμε. 1059 00:43:25,810 --> 00:43:27,720 Όπως ακριβώς τι αυτό το σωρό από κάλτσες, υπήρχαν διάφορα 1060 00:43:27,720 --> 00:43:29,520 περιπτώσεις γωνία θα μπορούσαμε να έχουμε συναντήσει. 1061 00:43:29,520 --> 00:43:32,340 Ομοίως, εάν τα προγράμματα δεν προβλέπουν πόσο χρονικό διάστημα είναι 1062 00:43:32,340 --> 00:43:33,310 όνομα κάποιου πρόκειται να είναι. 1063 00:43:33,310 --> 00:43:35,890 Ή τι γίνεται αν έχω έναν κακόβουλο χρήστη, και το όνομά του είναι 1064 00:43:35,890 --> 00:43:37,230 πραγματικά πολύ μικρή, αλλά είναι ακριβώς που προσπαθεί 1065 00:43:37,230 --> 00:43:37,960 να το χάος με εμένα; 1066 00:43:37,960 --> 00:43:40,490 Τι πρόκειται να είναι η συμπεριφορά του προγράμματος μου; 1067 00:43:40,490 --> 00:43:43,930 Λοιπόν, σε αυτή την περίπτωση, κάτι που θα μπορούσε πράγματι να συντριβή. 1068 00:43:43,930 --> 00:43:44,750 >> Ας το κάνουμε αυτό. 1069 00:43:44,750 --> 00:43:46,860 Σε 90 λεπτά, αυτό είναι ένα φοβερό μεγάλο χρονικό διάστημα 1070 00:43:46,860 --> 00:43:47,780 να κάνουν επιστήμη των υπολογιστών. 1071 00:43:47,780 --> 00:43:49,550 Γιατί δεν έχουμε πάρει στη συνήθεια της λήψης πέντε λεπτά 1072 00:43:49,550 --> 00:43:51,520 σπάσει εδώ, και όταν θα έρθει πίσω, θα βουτήξει σε κάποια 1073 00:43:51,520 --> 00:43:53,430 πιο περίπλοκη και συναρπαστικό προγράμματα; 1074 00:43:53,430 --> 00:43:54,680 Πέντε λεπτά. 1075 00:43:56,910 --> 00:43:58,160 >> Εντάξει. 1076 00:44:01,138 --> 00:44:02,780 Έτσι, ένα γρήγορο σχόλιο. 1077 00:44:02,780 --> 00:44:05,590 Μου είπαν ότι αν αυτό ήταν στην οθόνη πριν, τι 1078 00:44:05,590 --> 00:44:08,880 βγήκε από το στόμα μου ήταν cs50.net/rsvp. 1079 00:44:08,880 --> 00:44:11,670 Αυτό είναι σωστό. cs50.net/lunch. 1080 00:44:11,670 --> 00:44:16,030 Έτσι τώρα μπορείτε να δοκιμάσετε RSVPing για αυτό στο / γεύμα. 1081 00:44:16,030 --> 00:44:16,980 Αλλά ας κάνουμε αυτό τώρα. 1082 00:44:16,980 --> 00:44:20,150 Έτσι, αυτό ήταν πολύ γρήγορο, σούπερ νέα για πολλούς λαούς. 1083 00:44:20,150 --> 00:44:21,560 Παλιά καπέλο για μερικούς λαούς. 1084 00:44:21,560 --> 00:44:24,930 Ας τα πίσω για μια στιγμή, και να δούμε πώς φτάσαμε να 1085 00:44:24,930 --> 00:44:29,350 γεια αυτή την παγκόσμια παραγωγή μόλις πριν από λίγο. 1086 00:44:29,350 --> 00:44:31,780 >> Έτσι το πρώτο, υπάρχει αυτή η συσκευή CS50. 1087 00:44:31,780 --> 00:44:34,270 Και πάλι, το κομμάτι του λογισμικού, πρόβλημα σετ 1 πρόκειται να πει 1088 00:44:34,270 --> 00:44:36,610 πώς να το κατεβάσετε, όπου για να το κατεβάσετε, τι να κάνετε κλικ 1089 00:44:36,610 --> 00:44:37,430 και ούτω καθεξής. 1090 00:44:37,430 --> 00:44:39,670 Και στη συνέχεια, αφού έχετε ακολουθήσει αυτές τις οδηγίες, θα είστε σε θέση 1091 00:44:39,670 --> 00:44:42,840 για να μεγιστοποιήσετε το παράθυρο σας, και το Mac ή το PC σας θα κοιτάξουμε 1092 00:44:42,840 --> 00:44:43,910 λίγο κάτι σαν αυτό. 1093 00:44:43,910 --> 00:44:47,170 Ένα μαύρο φόντο, ένα φάκελο σπίτι στην κορυφή, όπου όλα 1094 00:44:47,170 --> 00:44:49,850 τα αρχεία σας πάνε, ένα δοχείο απορριμμάτων στην κορυφή αριστερά, 1095 00:44:49,850 --> 00:44:51,130 ένα μενού στο κάτω μέρος. 1096 00:44:51,130 --> 00:44:54,010 Έτσι, και πάλι, αρκετά παρόμοια στο πνεύμα με το Mac OS ή Windows, 1097 00:44:54,010 --> 00:44:56,040 ακόμη και αν αυτό συμβαίνει να είναι το Linux. 1098 00:44:56,040 --> 00:44:58,120 Έτσι, αυτό που κάναμε επόμενη κάνουμε; 1099 00:44:58,120 --> 00:44:59,580 Λοιπόν, άρχισε να γράφει προγράμματα. 1100 00:44:59,580 --> 00:45:02,260 Και θυμάμαι από την προηγούμενη εβδομάδα ότι το μόνο που χρειάζεται για να γράψει ένα 1101 00:45:02,260 --> 00:45:04,970 πρόγραμμα είναι ένα απλό επεξεργαστή κειμένου, 1102 00:45:04,970 --> 00:45:06,550 όπως το Σημειωματάριο ή TextEdit. 1103 00:45:06,550 --> 00:45:08,360 Ειλικρινά, μπορείτε ακόμη και να χρησιμοποιήσετε το Microsoft Word. 1104 00:45:08,360 --> 00:45:11,170 Αλλά κακά πράγματα θα συμβεί τελικά, γιατί αυτό είναι ένα πολύ 1105 00:45:11,170 --> 00:45:13,930 αδέξια λύση για τη σύνταξη ενός προγράμματος, καθώς αυτό θα 1106 00:45:13,930 --> 00:45:15,400 αποθηκεύσετε σε λάθος μορφή αρχείου. 1107 00:45:15,400 --> 00:45:18,150 Αλλά αυτό είναι μόνο ένα πρόγραμμα επεξεργασίας κειμένου, ένα πρόγραμμα επεξεργασίας κειμένου, είναι το μόνο που είναι 1108 00:45:18,150 --> 00:45:19,390 που απαιτούνται για να γράψει ένα πρόγραμμα. 1109 00:45:19,390 --> 00:45:23,420 >> Έτσι, στην συσκευή CS50, μπορούμε να το κάνουμε αυτό σε ένα απλό τρόπο. 1110 00:45:23,420 --> 00:45:25,580 Μπορούμε απλά κάντε κλικ σε αυτό το εικονίδιο στο κάτω αριστερά. 1111 00:45:25,580 --> 00:45:28,790 Και πάλι, το πρόβλημα που 1 θα σας ενημερώσει για αυτό, και ιδού - 1112 00:45:28,790 --> 00:45:31,210 μπορείτε να πάρετε αυτό το μαύρο και το λευκό περιβάλλον, όπου μπορούμε να αρχίσουμε 1113 00:45:31,210 --> 00:45:32,160 γράφοντας κώδικα. 1114 00:45:32,160 --> 00:45:34,960 Ας αρχίσετε να γράφετε ένα σούπερ απλό πρόγραμμα και πάλι. 1115 00:45:34,960 --> 00:45:38,890 Πάω να ανεβεί στο Αρχείο, Αποθήκευση, και Πάω να καλέσετε 1116 00:45:38,890 --> 00:45:42,870 αυτό, ας πούμε, hello2.c. 1117 00:45:42,870 --> 00:45:45,410 Και εγώ λέω απλά κάνοντας κλικ στο jharvard, έθεσε 1118 00:45:45,410 --> 00:45:46,750 στον κατάλογο σπίτι του, δεν ενδιαφέρονται πραγματικά 1119 00:45:46,750 --> 00:45:47,980 όπου αυτό πηγαίνει. 1120 00:45:47,980 --> 00:45:49,090 Και στη συνέχεια, Αποθήκευση. 1121 00:45:49,090 --> 00:45:50,880 Και τώρα μπορώ να αρχίσετε να γράφετε το πρόγραμμά μου. 1122 00:45:50,880 --> 00:45:53,560 Και θυμάμαι από τις προηγούμενες που έχω να γράψω int 1123 00:45:53,560 --> 00:45:55,400 main (void). 1124 00:45:55,400 --> 00:45:57,000 Ζουμ στην αριστερή κορυφή. 1125 00:45:57,000 --> 00:46:02,670 Και τότε θέλω να πω printf, πάρτε δύο. 1126 00:46:02,670 --> 00:46:05,690 Και τώρα μια νέα γραμμή, κοντά απόσπασμα, κλείστε 1127 00:46:05,690 --> 00:46:07,820 παρενθέσεις, ερωτηματικό. 1128 00:46:07,820 --> 00:46:10,560 Και στη συνέχεια να πάω κάτω εδώ στο παράθυρο τερματικού μου που είναι 1129 00:46:10,560 --> 00:46:12,840 ενσωματωμένα στο gedit, μόνο για λόγους ευκολίας. 1130 00:46:12,840 --> 00:46:15,200 Και εγώ είμαι πρόκειται να πάει μπροστά και να γράψετε ένα γεια, αλλά δεν 1131 00:46:15,200 --> 00:46:17,500 γειά σου και μόνο, Hello2. 1132 00:46:17,500 --> 00:46:20,490 >> Έτσι, το αρχείο μου λέγεται hello2.c. Αρχείο μου ως εκ τούτου 1133 00:46:20,490 --> 00:46:23,510 πρέπει να καλείται Hello2, σε αυτή την περίπτωση. 1134 00:46:23,510 --> 00:46:26,490 Dammit, τι έκανα λάθος; 1135 00:46:26,490 --> 00:46:29,490 Εντάξει, γι 'αυτό παραλείπεται σαφώς μια γραμμή, αν θυμάστε τι 1136 00:46:29,490 --> 00:46:31,020 προηγούμενα προγράμματα μοιάζουν. 1137 00:46:31,020 --> 00:46:32,480 Ας δούμε όμως αν δεν μπορούμε να πειράζω αυτό πέρα. 1138 00:46:32,480 --> 00:46:35,310 Δυστυχώς, οι περισσότεροι άνθρωποι που γράφουν τα προγράμματα με τα οποία 1139 00:46:35,310 --> 00:46:38,820 γράφουμε προγράμματα δεν απλοποιήσει τα πράγματα και τόσο καλά. 1140 00:46:38,820 --> 00:46:41,520 Γι 'αυτό και πρέπει να το είδος της άπαχο πάνω από ό, τι δεν κάνει αρκετά 1141 00:46:41,520 --> 00:46:44,050 αισθανθεί εδώ και να δούμε αν μπορούμε να καταλάβουμε τι συμβαίνει. 1142 00:46:44,050 --> 00:46:46,700 Η πρώτη γραμμή λέει ότι υπάρχει σιωπηρά δηλώνοντας C 1143 00:46:46,700 --> 00:46:49,310 λειτουργία της βιβλιοθήκης printf με τον τύπο int. 1144 00:46:49,310 --> 00:46:51,210 Εντάξει, κατάλαβα ότι μέρος του. 1145 00:46:51,210 --> 00:46:54,570 Αλλά φαίνεται να υπαινίσσεται το γεγονός ότι χρησιμοποίησα printf 1146 00:46:54,570 --> 00:46:55,700 λάθος, κατά κάποιο τρόπο. 1147 00:46:55,700 --> 00:46:56,930 Και τι νόημα είναι λάθος; 1148 00:46:56,930 --> 00:46:59,970 Απλά δεν διδάσκουν ότι ο υπολογιστής είναι σε ένα αρχείο 1149 00:46:59,970 --> 00:47:01,420 που ονομάζεται stdio.h. 1150 00:47:01,420 --> 00:47:04,120 Τώρα έχω μόνο να απομνημονεύσουν απλά τώρα είναι ότι printf 1151 00:47:04,120 --> 00:47:06,540 στο stdio.h, και πράγματι θα υπάρξουν άλλα 1152 00:47:06,540 --> 00:47:08,900 λειτουργίες στο ίδιο αρχείο που θα το συνηθίσετε. 1153 00:47:08,900 --> 00:47:12,490 >> Έτσι, τώρα επιτρέψτε μου να πάμε μπροστά και να χτυπήσει Ctrl-L σε μόλις σαφές ότι 1154 00:47:12,490 --> 00:47:16,050 μακριά, να κάνει επανάληψη Hello2, και voila. 1155 00:47:16,050 --> 00:47:19,490 Και αυτή την εντολή ξανά, πιο περίπλοκη από ό, τι θα εξηγήσει για 1156 00:47:19,490 --> 00:47:20,520 σκοπούς σήμερα. 1157 00:47:20,520 --> 00:47:23,570 Αλλά δεν τρέχει κλαγγή, και κλαγγή παίρνει τον πηγαίο κώδικα και 1158 00:47:23,570 --> 00:47:24,870 φτύσει 0s και 1s. 1159 00:47:24,870 --> 00:47:28,610 Και εκείνοι 0s και 1s σε αυτή την περίπτωση καλούνται τι; 1160 00:47:28,610 --> 00:47:29,470 Εντάξει, αντικειμενικό κώδικα. 1161 00:47:29,470 --> 00:47:32,210 Και το αρχείο ότι είναι σε ονομάζεται, έτσι, 1162 00:47:32,210 --> 00:47:33,820 Hello2, σε αυτή την περίπτωση. 1163 00:47:33,820 --> 00:47:37,040 Επειδή το αρχείο κειμένου μου ήταν hello2.c, Enter. 1164 00:47:37,040 --> 00:47:39,820 Και τώρα έχω λάβει δύο θαυμαστικό, θαυμαστικό 1165 00:47:39,820 --> 00:47:41,880 σημείο, θαυμαστικό. 1166 00:47:41,880 --> 00:47:45,430 Εντάξει, έτσι έχουμε τώρα τη δυνατότητα να πάρετε χορδές, 1167 00:47:45,430 --> 00:47:46,280 προφανώς. 1168 00:47:46,280 --> 00:47:48,190 Λοιπόν, τι άλλο μπορούμε να έχουμε από τους χρήστες; 1169 00:47:48,190 --> 00:47:51,010 >> Καλά στην βιβλιοθήκη CS50, υπάρχει και άλλες λειτουργίες που 1170 00:47:51,010 --> 00:47:53,300 πρόκειται να απλοποιήσει τη ζωή μας σε αυτές τις πρώτες ημέρες. 1171 00:47:53,300 --> 00:47:56,350 Getchar, GetDouble, GetFloat, GetInt, 1172 00:47:56,350 --> 00:47:57,290 GetLongLong, GetString. 1173 00:47:57,290 --> 00:47:59,550 Λοιπόν, ας κόβω από το ευκολότερος από αυτά τα πρώτα. 1174 00:47:59,550 --> 00:48:01,430 GetString κάνει κυριολεκτικά ότι. 1175 00:48:01,430 --> 00:48:04,210 Κάθεται ακριβώς εκεί, περιμένοντας για τον χρήστη να πληκτρολογήσει κάτι, 1176 00:48:04,210 --> 00:48:07,170 και το συντομότερο τύπου Ι σε κάτι και πατήστε Enter αυτό, 1177 00:48:07,170 --> 00:48:08,860 κάνει κάτι με αυτή την τιμή. 1178 00:48:08,860 --> 00:48:11,700 Ας πάμε πίσω σε αυτό το παράδειγμα για να δείτε τι ακριβώς 1179 00:48:11,700 --> 00:48:12,950 GetString έκανε. 1180 00:48:12,950 --> 00:48:17,445 Επιτρέψτε μου να πάμε μπροστά και να ανοίξει το gedit, hello.c, και υπενθυμίζουν 1181 00:48:17,445 --> 00:48:20,590 που λίγο πριν το διάλειμμα, αυτό είναι όπου φύγαμε μακριά. 1182 00:48:20,590 --> 00:48:23,240 >> Ας δώσουμε έμφαση τώρα αυτό πέρα ​​σε ένα λίγο πιο αναλυτικά. 1183 00:48:23,240 --> 00:48:27,190 Έτσι, στη γραμμή 6, υπάρχουν δύο πράγματα που 1184 00:48:27,190 --> 00:48:28,450 συμβαίνει αυτή τη στιγμή. 1185 00:48:28,450 --> 00:48:32,630 Το σύμβολο της ισότητας χωρίζει πρώτο εξάμηνο και το δεύτερο μισό. 1186 00:48:32,630 --> 00:48:34,670 Έτσι, στην αριστερή πλευρά του συμβόλου του ίσον, είμαστε 1187 00:48:34,670 --> 00:48:35,580 λέγοντας string s. 1188 00:48:35,580 --> 00:48:37,580 Και τότε, μόνο όσον αφορά άλλα λόγια, ό, τι είναι string s 1189 00:48:37,580 --> 00:48:41,040 αυτόν τον τρόπο, δεν νομίζετε; 1190 00:48:41,040 --> 00:48:42,990 Είναι η δημιουργία μιας τι; 1191 00:48:42,990 --> 00:48:44,930 Γι 'αυτό είναι η δημιουργία μια σειρά που ονομάζεται s. 1192 00:48:44,930 --> 00:48:46,370 Τώρα τι σημαίνει αυτό πραγματικά σημαίνει; 1193 00:48:46,370 --> 00:48:51,540 Λοιπόν, αυτό είναι που επιφυλάσσει χώρο για μια σειρά που ονομάζεται s. 1194 00:48:51,540 --> 00:48:52,490 Αυτό δεν είναι αρκετά δεξιά. 1195 00:48:52,490 --> 00:48:53,120 Τι κάνει αυτό; 1196 00:48:53,120 --> 00:48:55,400 Καλά υπολογιστές, όπως γνωρίζετε, έχουν σκληρούς δίσκους? Όπου αυτό είναι 1197 00:48:55,400 --> 00:48:56,300 είναι αποθηκευμένα τα αρχεία σας. 1198 00:48:56,300 --> 00:48:59,100 Υπολογιστές έχουν μνήμη RAM, και αυτό είναι όπου τα προγράμματα φορτώνονται 1199 00:48:59,100 --> 00:49:00,240 ενώ βρίσκονται σε εξέλιξη. 1200 00:49:00,240 --> 00:49:02,470 Έτσι, όταν κάνετε διπλό κλικ σε ένα εικονίδιο και το Microsoft Word ανοίγει 1201 00:49:02,470 --> 00:49:06,380 up, το Microsoft Word βρίσκεται σε λειτουργία, να το πω έτσι, στη μνήμη RAM, η οποία είναι 1202 00:49:06,380 --> 00:49:08,160 το ηλεκτρονικό μέρος του υπολογιστή σας. 1203 00:49:08,160 --> 00:49:10,660 Δεν είναι η φυσική, η μηχανική μέρος που είναι κλώση, όπου 1204 00:49:10,660 --> 00:49:12,640 δεδομένα αποθηκεύονται γενικά μακροπρόθεσμα. 1205 00:49:12,640 --> 00:49:15,810 Έτσι string s είναι λίγο πολύ λέει ο υπολογιστής μου δώσει 1206 00:49:15,810 --> 00:49:18,150 αρκετή μνήμη RAM για να χωρέσει ένα string. 1207 00:49:18,150 --> 00:49:20,450 Τώρα αυτό είναι ένα κομμάτι από μια υπεραπλούστευση, επειδή 1208 00:49:20,450 --> 00:49:22,300 Πόσο μεγάλη είναι η σειρά πρόκειται να; 1209 00:49:22,300 --> 00:49:24,410 Λοιπόν, πραγματικά δεν ξέρω ακόμα, έτσι στις επόμενες εβδομάδες 1210 00:49:24,410 --> 00:49:27,290 πραγματικά θα τραβήξει πίσω το στρώμα που είναι συμβολοσειρά και 1211 00:49:27,290 --> 00:49:28,510 θα σας πω τι είναι πραγματικά. 1212 00:49:28,510 --> 00:49:31,050 String, προς το παρόν, είναι απλά ένα ωραίο απλοποίηση του κόσμου μας. 1213 00:49:31,050 --> 00:49:35,700 Αλλά string s δηλώνει μια σειρά που ονομάζεται s, για τώρα. 1214 00:49:35,700 --> 00:49:36,520 Δηλώνει ένα string. 1215 00:49:36,520 --> 00:49:39,310 Διατηρεί λίγο χώρο στη μνήμη RAM για τη σειρά ο χρήστης είναι 1216 00:49:39,310 --> 00:49:40,150 για να πληκτρολογήσετε. 1217 00:49:40,150 --> 00:49:41,840 >> Τώρα, ας ρίξουμε μια ματιά στην δεξιά του ίσον. 1218 00:49:41,840 --> 00:49:44,110 Γι 'αυτό λέει GetString (). 1219 00:49:44,110 --> 00:49:45,070 Και μια μικρή λογική ελέγχου. 1220 00:49:45,070 --> 00:49:47,940 Το γεγονός ότι δεν υπάρχει τίποτα στο εσωτερικό των παρενθέσεων 1221 00:49:47,940 --> 00:49:50,810 τι σημαίνει για GetString; 1222 00:49:50,810 --> 00:49:52,180 Είναι δεν παίρνει ορίσματα. 1223 00:49:52,180 --> 00:49:55,290 Δηλαδή, δεν μπορείτε να επηρεάσουν τη συμπεριφορά του με οποιοδήποτε τρόπο. 1224 00:49:55,290 --> 00:49:58,940 Κάθε φορά που το χρησιμοποιείτε, θα πάρει μια σειρά και αυτό είναι αυτό. 1225 00:49:58,940 --> 00:50:02,210 Αντίθετα, printf, ελπίζουμε ότι η συμπεριφορά του δεν 1226 00:50:02,210 --> 00:50:03,010 αλλάζουν κάθε φορά. 1227 00:50:03,010 --> 00:50:05,230 Διαφορετικά, είναι μια αρκετά άχρηστο λειτουργία εκτύπωσης, εάν 1228 00:50:05,230 --> 00:50:06,480 να κάνει το ίδιο πράγμα. 1229 00:50:06,480 --> 00:50:07,970 Αν εκτυπώνει πάντα David ή κάτι 1230 00:50:07,970 --> 00:50:09,500 αυθαίρετη όλη την ώρα. 1231 00:50:09,500 --> 00:50:11,540 Έτσι κάνει printf λογικό να έχουν ένα επιχείρημα. 1232 00:50:11,540 --> 00:50:14,240 GetString δεν χρειάζεται πραγματικά ένα επιχείρημα, γιατί ήθελα 1233 00:50:14,240 --> 00:50:16,700 για να πάρετε μια σειρά από τον χρήστη και είναι ο χρήστης που πρόκειται 1234 00:50:16,700 --> 00:50:19,580 για τον εφοδιασμό της με δυναμισμό πληκτρολόγηση σε διαφορετικές επιστολές 1235 00:50:19,580 --> 00:50:20,850 κάθε φορά στο πληκτρολόγιο. 1236 00:50:20,850 --> 00:50:23,140 >> Έτσι, ό, τι δεν μπορώ να GetString τελικά; 1237 00:50:23,140 --> 00:50:25,080 Σκεφτείτε το σαν αυτό το μικρό μαύρο κουτί. 1238 00:50:25,080 --> 00:50:29,340 Και αυτό το μαύρο κουτί δεν αναλαμβάνει καμία εισαγωγή, αλλά όταν Έκρηξη σε 1239 00:50:29,340 --> 00:50:33,240 αυτό, δείχνοντας και μια σειρά που ο χρήστης έχει πληκτρολογήσει μέσα 1240 00:50:33,240 --> 00:50:36,660 Και το γεγονός ότι υπάρχει ένα ίσον σημαίνει εκεί να 1241 00:50:36,660 --> 00:50:39,890 τι φτύσει στα δεξιά και να το αποθηκεύσετε στο εσωτερικό 1242 00:50:39,890 --> 00:50:41,390 τι είναι στα αριστερά. 1243 00:50:41,390 --> 00:50:43,470 Έτσι, ίσον εδώ, δεν σημαίνει στην πραγματικότητα δεν 1244 00:50:43,470 --> 00:50:46,490 ισότητα, αυτό μάλλον σημαίνει τεχνικά ανάθεση. 1245 00:50:46,490 --> 00:50:49,330 Πάρτε την τιμή στα δεξιά, και το βάζουμε στο 1246 00:50:49,330 --> 00:50:51,050 μεταβλητή στα αριστερά. 1247 00:50:51,050 --> 00:50:52,820 Έτσι, αυτό είναι το μόνο που συμβαίνει εκεί. 1248 00:50:52,820 --> 00:50:55,640 >> Τώρα στην γραμμή 7, είμαστε καλώντας printf. 1249 00:50:55,640 --> 00:50:58,170 Έτσι printf ελπίζουμε είναι να πάρει λίγο βαρετή μέχρι τώρα. 1250 00:50:58,170 --> 00:50:59,530 Έτσι εκτυπώσετε ένα μορφοποιημένο string. 1251 00:50:59,530 --> 00:51:00,440 Τι string; 1252 00:51:00,440 --> 00:51:05,460 Εκτύπωση, "h-ε-λ-λ-o, s% 1253 00:51:05,460 --> 00:51:07,840 ! \ N ". 1254 00:51:07,840 --> 00:51:10,470 Εντάξει, έτσι τι θέλω να plug-in για το% s; 1255 00:51:10,470 --> 00:51:12,960 Κυριολεκτικά, όποια και αν είναι αποθηκευμένα σε s. 1256 00:51:12,960 --> 00:51:15,570 Έτσι, σε αυτή την περίπτωση, λίγη λογική ελέγχου, πόσα επιχειρήματα δεν 1257 00:51:15,570 --> 00:51:16,820 printf πάρει; 1258 00:51:19,860 --> 00:51:21,110 Εντάξει, άκουσα ένα. 1259 00:51:23,840 --> 00:51:26,330 Άκουσα έναν πάλι. 1260 00:51:26,330 --> 00:51:27,730 Δύο, άκουσα δύο. 1261 00:51:27,730 --> 00:51:29,920 Και πώς περίπου τρεις; 1262 00:51:29,920 --> 00:51:30,450 Εντάξει, τρία; 1263 00:51:30,450 --> 00:51:30,930 Εξαιρετική. 1264 00:51:30,930 --> 00:51:33,170 Τρεις πιθανές απαντήσεις, μόνο μία από αυτές είναι σωστή. 1265 00:51:33,170 --> 00:51:36,390 Έτσι και πάλι επιχειρήματα επηρεάζουν τη συμπεριφορά μιας συνάρτησης. 1266 00:51:36,390 --> 00:51:39,380 Στο παρελθόν, printf έλαβε μόνο ένα επιχείρημα. 1267 00:51:39,380 --> 00:51:42,260 "Hello World" ήταν ένα μόνο επιχείρημα. 1268 00:51:42,260 --> 00:51:45,190 Ωστόσο, τώρα, αυτό που παρατηρούμε είναι κόμμα. 1269 00:51:45,190 --> 00:51:49,600 Αυτή κόμμα είναι έξω από το απόσπασμα / unquote, πράγμα που σημαίνει 1270 00:51:49,600 --> 00:51:52,170 printf hey, εδώ έρχεται ένα δεύτερο επιχείρημα. 1271 00:51:52,170 --> 00:51:54,240 >> Έτσι κόμματα στις περισσότερες γλώσσες προγραμματισμού 1272 00:51:54,240 --> 00:51:57,300 Διαχωρίστε τα πολλαπλά επιχειρήματα. 1273 00:51:57,300 --> 00:51:59,600 Έτσι, η απάντηση είναι εδώ σίγουρα δεν είναι μία, επειδή 1274 00:51:59,600 --> 00:52:00,390 υπάρχει αυτό το κόμμα. 1275 00:52:00,390 --> 00:52:03,680 Έτσι, ελάχιστα, printf παίρνει προφανώς δύο 1276 00:52:03,680 --> 00:52:04,940 επιχειρήματα αυτή τη φορά. 1277 00:52:04,940 --> 00:52:07,050 Αλλά η ευκαιρία για ένα ζήτημα τέχνασμα εδώ είναι ό, τι 1278 00:52:07,050 --> 00:52:07,990 σχετικά με αυτό το κόμμα; 1279 00:52:07,990 --> 00:52:11,260 Μήπως αυτό σημαίνει ότι δεν υπάρχει στην πραγματικότητα τρία επιχειρήματα; 1280 00:52:11,260 --> 00:52:13,820 Αυτό, αυτό, και αυτό. 1281 00:52:13,820 --> 00:52:18,820 Οπότε όχι, διότι το κόμμα αυτό είναι μέσα από τα αποσπάσματα, τα οποία 1282 00:52:18,820 --> 00:52:20,890 σημαίνει ότι είναι πραγματικά μόνο μια αισθητική της αγγλικής γλώσσας. 1283 00:52:20,890 --> 00:52:23,180 Δεν έχει τίποτα να κάνει με τον αριθμό των 1284 00:52:23,180 --> 00:52:24,890 επιχειρήματα σε αυτό το πρόγραμμα. 1285 00:52:24,890 --> 00:52:27,670 Έτσι, αυτό το κόμμα είναι έξω από τα διπλά εισαγωγικά. 1286 00:52:27,670 --> 00:52:28,850 Και στη συνέχεια, να επιστρέψετε 0. 1287 00:52:28,850 --> 00:52:30,980 Ακριβώς το είδος Προς το παρόν ας του κάνουν ένα στην πίστη για 1288 00:52:30,980 --> 00:52:34,460 σήμερα, και μόνο ξέρετε ότι όταν οι λειτουργίες γίνονται εκτέλεση 1289 00:52:34,460 --> 00:52:37,950 γραμμές κώδικα, θα πρέπει να επιστρέψουν γενικά κάποια αξία. 1290 00:52:37,950 --> 00:52:42,010 Σε αυτή την περίπτωση, μόνο και μόνο επειδή ο κύριος πρέπει να επιστρέφουν έναν int, 1291 00:52:42,010 --> 00:52:44,320 αυτός είναι ακριβώς ο τρόπος που η γλώσσα C λειτουργεί. 1292 00:52:44,320 --> 00:52:47,040 >> Έτσι, επειδή τίποτα δεν πήγε στραβά, αισθάνεται σαν αυτή του προγράμματος 1293 00:52:47,040 --> 00:52:49,960 ωραία, εγώ απλά σκληρά κωδικοποιούνται σε αντάλλαγμα 0. 1294 00:52:49,960 --> 00:52:52,980 Όμως, σε αντίθεση, και θα πάω να γράψω αυτό το ψευδο κώδικα 1295 00:52:52,980 --> 00:52:55,020 Τώρα, όπως και ο Ιωσήφ έκανε όταν κάναμε την κάλτσα 1296 00:52:55,020 --> 00:52:56,220 παράδειγμα την περασμένη εβδομάδα. 1297 00:52:56,220 --> 00:53:00,440 Αν κάτι πήγε στραβά - αυτό δεν είναι πραγματικό κώδικα - πήγε 1298 00:53:00,440 --> 00:53:06,570 λάθος, στη συνέχεια επιστρέφουν, ας πούμε, 1. 1299 00:53:06,570 --> 00:53:08,770 Αλλιώς επιστρέφει 0. 1300 00:53:08,770 --> 00:53:10,070 Έτσι, αυτό είναι όπου θα πάμε με αυτό. 1301 00:53:10,070 --> 00:53:12,090 Αυτό δεν είναι πραγματικό κώδικα C, μόνο ψευδοκώδικα. 1302 00:53:12,090 --> 00:53:14,010 Αλλά αυτό είναι το πώς μπορείτε να επιστρέψετε 1303 00:53:14,010 --> 00:53:15,580 διαφορετικές πιθανές τιμές. 1304 00:53:15,580 --> 00:53:19,520 Αλλά προς το παρόν είμαι απλώς πρόκειται να πάει μπροστά και να επιστρέψει 0. 1305 00:53:19,520 --> 00:53:24,410 Εντάξει, οποιεσδήποτε ερωτήσεις μέχρι στιγμής για τη σύνταξη, τη λειτουργικότητα, 1306 00:53:24,410 --> 00:53:25,000 ή κάτι παρόμοιο; 1307 00:53:25,000 --> 00:53:26,280 Ναι, στο πίσω μέρος. 1308 00:53:26,280 --> 00:53:27,530 >> ΚΟΙΝΟ: [δεν ακούγεται] 1309 00:53:30,510 --> 00:53:32,210 DAVID Malan: Μπορείτε να μας μιλήσετε λίγο πιο δυνατά; 1310 00:53:32,210 --> 00:53:34,325 Γιατί το έκανε αυτό 0 επιστροφής του προγράμματος, και; 1311 00:53:34,325 --> 00:53:35,575 ΚΟΙΝΟ: [δεν ακούγεται] 1312 00:53:39,910 --> 00:53:43,450 DAVID Malan: Ω, αυτό είναι επειδή πήρα τεμπέλης, συγνώμη. 1313 00:53:43,450 --> 00:53:48,290 Δεν καλή ακαδημαϊκή απάντηση, επιστρέφει 0. 1314 00:53:48,290 --> 00:53:52,690 Μπορώ να σώσει το είδος αυτό, λέγοντας τεχνικά C, αν η κύρια 1315 00:53:52,690 --> 00:53:55,900 δεν επιστρέφει μια τιμή, 0 θα πρέπει να επιστραφεί 1316 00:53:55,900 --> 00:53:57,730 αυτόματα για εσάς. 1317 00:53:57,730 --> 00:54:00,290 Ποια είναι η αλήθεια, δεν είμαι απλά συγκάλυψη. 1318 00:54:00,290 --> 00:54:03,270 Αλλά, θα έπρεπε να είχα κάνει με αυτόν τον τρόπο. 1319 00:54:03,270 --> 00:54:05,250 Δεν ενδιαφέρον πακέτο από αυτό, εκτός από το λάθος μου. 1320 00:54:05,250 --> 00:54:06,170 Ναι; 1321 00:54:06,170 --> 00:54:08,470 >> ΚΟΙΝΟ: Συνήθως, όταν πληκτρολογείτε στο κενό, αυτό θα σημαίνει 1322 00:54:08,470 --> 00:54:10,770 δεν επιστρέφουν κάτι. 1323 00:54:10,770 --> 00:54:11,420 DAVID Malan: Σωστό. 1324 00:54:11,420 --> 00:54:15,800 Αν, αντίθετα, μπορείτε να καθορίσετε πριν από το όνομα μιας συνάρτησης, για 1325 00:54:15,800 --> 00:54:18,590 παράδειγμα εδώ, κενό, τότε η συνάρτηση 1326 00:54:18,590 --> 00:54:20,480 δεν επιστρέφει τίποτα. 1327 00:54:20,480 --> 00:54:25,210 Και ως εκ τούτου θα ήθελα απλώς να πω, επιστροφή ή τίποτα δεν σε όλα, 1328 00:54:25,210 --> 00:54:26,730 και ότι θα είναι συνεπής. 1329 00:54:26,730 --> 00:54:27,750 Και θα επανέλθουμε σε αυτό. 1330 00:54:27,750 --> 00:54:31,030 Και FYI, ένα από τα αλιεύματα με μαθησιακές 1331 00:54:31,030 --> 00:54:33,450 προγραμματισμό σε έναν κόσμο που έχει εκατοντάδες βιβλία και 1332 00:54:33,450 --> 00:54:36,180 εκατοντάδες ιστοσελίδες εκεί έξω που θα είναι πάντα 1333 00:54:36,180 --> 00:54:38,220 δείτε διαφορετική σύνταξη σε διαφορετικά βιβλία 1334 00:54:38,220 --> 00:54:40,220 από διαφορετικούς ανθρώπους. 1335 00:54:40,220 --> 00:54:42,100 Συνειδητοποιήστε εμείς θα κάνουμε το καλύτερο μας σε ενότητες και διαλέξεις να είναι 1336 00:54:42,100 --> 00:54:42,960 συνεπής. 1337 00:54:42,960 --> 00:54:46,660 Αλλά μερικές φορές θα δείτε αντικρουόμενες σύνταξη. 1338 00:54:46,660 --> 00:54:48,540 Έτσι, κάθε φορά που έχετε αμφιβολίες, απλά ρωτήστε. 1339 00:54:48,540 --> 00:54:51,100 Και σε γενικές γραμμές, εμείς θα αναλάβουμε σε διαλέξεις και σε τμήματα 1340 00:54:51,100 --> 00:54:53,710 σχεδόν πάντα το παρουσιάσει με το σωστό τρόπο. 1341 00:54:53,710 --> 00:54:56,070 Και λέω σχεδόν πάντα, γιατί σε περίπτωση που το σημείο. 1342 00:54:56,070 --> 00:54:56,860 Άλλες ερωτήσεις; 1343 00:54:56,860 --> 00:55:01,590 >> ΚΟΙΝΟ: Η% s υπάρχει έξω από τη συσκευή; 1344 00:55:01,590 --> 00:55:03,710 DAVID Malan: Μήπως% s υπάρχει έξω από τη συσκευή; 1345 00:55:03,710 --> 00:55:04,180 Ναι. 1346 00:55:04,180 --> 00:55:07,760 Έτσι% s έχει να κάνει με το Γ. Το γεγονός ότι είμαστε το χρησιμοποιείτε 1347 00:55:07,760 --> 00:55:10,290 η συσκευή έχει ουσιαστικά τίποτα να κάνουν με το 1348 00:55:10,290 --> 00:55:12,080 χαρακτηριστικά της γλώσσας που χρησιμοποιούμε. 1349 00:55:12,080 --> 00:55:15,990 Μάλιστα, την περασμένη εβδομάδα, όταν χρησιμοποιείται το Mac μου, έγραψα 1350 00:55:15,990 --> 00:55:17,160 C κώδικα για Mac μου. 1351 00:55:17,160 --> 00:55:20,020 Θα μπορούσα να χρησιμοποιείται το% s στο Mac μου, και μπορείτε να το χρησιμοποιήσετε για 1352 00:55:20,020 --> 00:55:22,400 Windows στον υπολογιστή σας, εάν εγκαταστήσετε ένα μεταγλωττιστή, όπως 1353 00:55:22,400 --> 00:55:24,070 Visual Studio της Microsoft. 1354 00:55:24,070 --> 00:55:24,990 Έτσι% s. 1355 00:55:24,990 --> 00:55:27,860 Ό, τι κάνουμε μέσα από αυτό το παράθυρο σήμερα πρέπει να 1356 00:55:27,860 --> 00:55:31,140 κάνει με το Γ. Και ουσιαστικά τίποτα να κάνουν με το 1357 00:55:31,140 --> 00:55:33,450 λειτουργίας του εν λόγω συστήματος. 1358 00:55:33,450 --> 00:55:35,900 Αντίθετα, το μαύρο και άσπρο παράθυρο τερματικού - όταν 1359 00:55:35,900 --> 00:55:40,160 Γράφω πράγματα όπως ls, και rm, και cd - 1360 00:55:40,160 --> 00:55:42,020 που έχει να κάνει με το λειτουργικό σύστημα και 1361 00:55:42,020 --> 00:55:43,562 πλοήγηση γύρω. 1362 00:55:43,562 --> 00:55:44,546 Ναι. 1363 00:55:44,546 --> 00:55:46,520 ΚΟΙΝΟ: Εννοούσα τη βιβλιοθήκη, το CS50 βιβλιοθήκη. 1364 00:55:46,520 --> 00:55:49,960 DAVID Malan: Εντάξει, οπότε αν εννοείς το string λέξη-κλειδί, ότι 1365 00:55:49,960 --> 00:55:52,460 υπάρχει μόνο στη βιβλιοθήκη CS50, σωστή. 1366 00:55:52,460 --> 00:55:55,350 Αυτό δεν υπάρχει στο ίδιο το C, και μάλιστα σε ένα ζευγάρι 1367 00:55:55,350 --> 00:55:58,220 εβδομάδες θα πετάξουν το CS50 βιβλιοθήκη και να αρχίσει 1368 00:55:58,220 --> 00:56:02,290 κάνει τα πράγματα από την αρχή τον εαυτό μας, να το πω έτσι. 1369 00:56:02,290 --> 00:56:02,940 Άλλες ερωτήσεις; 1370 00:56:02,940 --> 00:56:04,577 Ναι. 1371 00:56:04,577 --> 00:56:05,827 >> ΚΟΙΝΟ: [δεν ακούγεται] 1372 00:56:09,470 --> 00:56:10,160 DAVID Malan: Καλή ερώτηση. 1373 00:56:10,160 --> 00:56:11,720 Είναι η περίπτωση εντολές ευαίσθητα; 1374 00:56:11,720 --> 00:56:13,710 Και επιτρέψτε μου να κάνω μια διάκριση εδώ. 1375 00:56:13,710 --> 00:56:15,840 Έτσι, οι εντολές είναι γενικά τα πράγματα που θα γράψει ο 1376 00:56:15,840 --> 00:56:17,940 κάτω μέρος του παραθύρου, στο παράθυρο τερματικού. 1377 00:56:17,940 --> 00:56:21,770 Οτιδήποτε μέχρι εδώ, θα είναι δηλώσεις ή C κώδικα. 1378 00:56:21,770 --> 00:56:24,490 Αλλά και στις δύο περιπτώσεις, η απάντηση είναι η ίδια, ναι. 1379 00:56:24,490 --> 00:56:27,800 Αμφότερες αυτά τα περιβάλλοντα, ο κώδικας C στην κορυφή και ο 1380 00:56:27,800 --> 00:56:29,910 λειτουργίας της γραμμής εντολών στο σύστημα της 1381 00:56:29,910 --> 00:56:31,440 κάτω, είναι ευαίσθητη υπόθεση. 1382 00:56:31,440 --> 00:56:33,830 Έτσι, θα πρέπει να επωφεληθούμε από GetString με κεφάλαιο Γ, 1383 00:56:33,830 --> 00:56:37,050 Σ. πρωτεύουσα Πρέπει να γράψετε printf σε όλα τα πεζά γράμματα. 1384 00:56:37,050 --> 00:56:39,520 Θα πρέπει να πληκτρολογήσετε ls σε όλα τα πεζά γράμματα. 1385 00:56:39,520 --> 00:56:43,260 Έτσι, σχεδόν σε κάθε περίπτωση αυτό το εξάμηνο, θα υπόθεση, σε 1386 00:56:43,260 --> 00:56:44,820 Πράγματι, το θέμα. 1387 00:56:44,820 --> 00:56:46,148 Ναι. 1388 00:56:46,148 --> 00:56:47,398 >> ΚΟΙΝΟ: [δεν ακούγεται] 1389 00:56:54,770 --> 00:56:56,480 DAVID Malan: Α, ναι εντάξει, τι θα γινόταν αν είχαμε ένα αρχείο 1390 00:56:56,480 --> 00:56:57,840 που ονομάζεται hello.d. 1391 00:56:57,840 --> 00:57:00,090 Έτσι αποδεικνύεται D είναι μια γλώσσα προγραμματισμού. 1392 00:57:00,090 --> 00:57:02,790 Και έτσι, σε ορισμένες περιπτώσεις, θα μπορούσαμε να γράψουμε στην πραγματικότητα ένα πρόγραμμα 1393 00:57:02,790 --> 00:57:06,190 αυτό το αρχείο και έχουν συνταχθεί σε εκείνη την μόδα. 1394 00:57:06,190 --> 00:57:09,090 Μπορούμε, και στην πραγματικότητα, σύντομη απάντηση είναι, δεν ξέρω. 1395 00:57:09,090 --> 00:57:10,440 Έτσι θα πάμε να το κάνουμε αυτό. 1396 00:57:10,440 --> 00:57:13,040 Επιτρέψτε μου να πάμε μπροστά και να δημιουργήσετε ένα νέο αρχείο. 1397 00:57:13,040 --> 00:57:15,580 Και το γύρισμα εδώ, ειλικρινά σε γενικές γραμμές, είναι κάθε φορά που κάποια αμφιβολία 1398 00:57:15,580 --> 00:57:18,130 αυτό το εξάμηνο, και έχετε συσκευή ή τον υπολογιστή σας 1399 00:57:18,130 --> 00:57:20,030 ανοίξετε, να προχωρήσει και να δοκιμάσετε κάτι. 1400 00:57:20,030 --> 00:57:23,740 Έτσι, Πάω να αποθηκεύσετε ένα αρχείο που ονομάζεται hello.d. 1401 00:57:23,740 --> 00:57:25,010 Αποθήκευση αυτής. 1402 00:57:25,010 --> 00:57:29,070 Και Πάω να τρέξει να γεια Enter. 1403 00:57:29,070 --> 00:57:31,660 Φάνηκε να συμπεράνουμε ότι το c ήταν πιο πιθανό 1404 00:57:31,660 --> 00:57:35,920 από ά, σε αυτή την περίπτωση. 1405 00:57:35,920 --> 00:57:38,046 Άλλες ερωτήσεις. 1406 00:57:38,046 --> 00:57:40,456 Ναι. 1407 00:57:40,456 --> 00:57:41,706 >> ΚΟΙΝΟ: [δεν ακούγεται] 1408 00:57:48,170 --> 00:57:49,837 DAVID Malan: Εντάξει, ας πούμε ότι για μια ακόμη φορά. 1409 00:57:49,837 --> 00:57:51,087 ΚΟΙΝΟ: [δεν ακούγεται] 1410 00:58:04,250 --> 00:58:05,780 DAVID Malan: Πώς θα πάει για διάγνωση ή ότι 1411 00:58:05,780 --> 00:58:06,380 αντιμετώπιση προβλημάτων που; 1412 00:58:06,380 --> 00:58:08,800 Έτσι, κατά πάσα πιθανότητα, επειδή είναι διαφορετικές γλώσσες, 1413 00:58:08,800 --> 00:58:10,280 πιθανότατα θα πάρετε μια εντελώς 1414 00:58:10,280 --> 00:58:11,580 διαφορετικό πρόγραμμα εξάγεται. 1415 00:58:11,580 --> 00:58:14,140 Θα πάρετε εντελώς διαφορετικά μηνύματα λάθους. 1416 00:58:14,140 --> 00:58:16,750 Και, επίσης, μόνο όσον αφορά το σχεδιασμό, θα είναι αναμφισβήτητα 1417 00:58:16,750 --> 00:58:19,140 κακή απόφαση σχεδιασμού που πρέπει να γράφει δύο διαφορετικές 1418 00:58:19,140 --> 00:58:21,510 γλώσσες με σχεδόν το ίδιο όνομα αρχείων, σε 1419 00:58:21,510 --> 00:58:23,000 ακριβώς το ίδιο κατάλογο, χρησιμοποιώντας ένα 1420 00:58:23,000 --> 00:58:24,550 αυτόματο εργαλείο, όπως κάνουν. 1421 00:58:24,550 --> 00:58:27,750 Γι 'αυτό και μπορεί επίσης να σπρώξετε προς τα πίσω και να πούμε σε 15 χρόνια για να γίνει αυτό, 1422 00:58:27,750 --> 00:58:29,190 Ποτέ δεν έκανε αυτό το λάθος. 1423 00:58:29,190 --> 00:58:30,030 Θα μπορούσε να συμβεί. 1424 00:58:30,030 --> 00:58:31,190 Αλλά υπάρχει μόνο διάφορα, νομίζω, 1425 00:58:31,190 --> 00:58:33,180 υλικοτεχνική άμυνες στη θέση του. 1426 00:58:33,180 --> 00:58:35,440 Πλέον τα μηνύματα λάθους που θα προκύψουν, που θα 1427 00:58:35,440 --> 00:58:37,260 τελικά αποκαλύψει ποιο είναι το θέμα. 1428 00:58:37,260 --> 00:58:39,120 Όμως, μια πιθανή περίπτωση γωνία. 1429 00:58:39,120 --> 00:58:41,730 >> Εντάξει, ας εισάγουν μόνο ένα ζευγάρι των άλλων 1430 00:58:41,730 --> 00:58:45,600 χαρακτηριστικά εδώ τώρα, έτσι ώστε να αρχίσουμε να οικοδομούμε πάνω σε πιο 1431 00:58:45,600 --> 00:58:47,140 και πιο σύνθετο πρόγραμμα. 1432 00:58:47,140 --> 00:58:49,000 Έτσι, πρώτα απ 'όλα, τα μαθηματικά. 1433 00:58:49,000 --> 00:58:51,520 Έτσι, τα μαθηματικά παραδείγματα είναι ακριβώς το είδος της εύκολης στην πρώτη εβδομάδα. 1434 00:58:51,520 --> 00:58:53,560 Αυτό δεν σημαίνει ότι όλα τα προγράμματα που είναι περίπου 1435 00:58:53,560 --> 00:58:54,390 τα μαθηματικά. 1436 00:58:54,390 --> 00:58:57,890 Βέβαια, η κατανόηση των διαφόρων χαρακτηριστικών του 1437 00:58:57,890 --> 00:58:59,610 μαθηματικά, άλγεβρα, ιδίως, είναι 1438 00:58:59,610 --> 00:59:00,330 αρκετά σχετική εδώ. 1439 00:59:00,330 --> 00:59:03,010 Στο υψηλότερο επίπεδο τάξεις CS, γραμμική άλγεβρα, 1440 00:59:03,010 --> 00:59:03,920 λογισμό, και τα παρόμοια. 1441 00:59:03,920 --> 00:59:06,500 Αλλά συνειδητοποιούν οι περισσότεροι από ό, τι θα κάνουμε αυτό το εξάμηνο δεν μειώνει 1442 00:59:06,500 --> 00:59:09,230 για τα μαθηματικά, και σίγουρα όχι σε αριθμητική, per se, αλλά πραγματικά 1443 00:59:09,230 --> 00:59:11,570 ακριβώς λογική και προσεκτική σκέψη. 1444 00:59:11,570 --> 00:59:14,310 Και έτσι αυτή η σύνδεση της επιστήμης των υπολογιστών έχει από καιρό είχε, 1445 00:59:14,310 --> 00:59:16,570 ιδιαίτερα στο υψηλό επίπεδο του σχολείου, με τα μαθηματικά, είναι μια 1446 00:59:16,570 --> 00:59:17,370 λίγο παραπλανητικό. 1447 00:59:17,370 --> 00:59:20,090 Επειδή τα περισσότερα από τα προγράμματα που θα γράψουμε, πραγματικά, είναι 1448 00:59:20,090 --> 00:59:23,290 είδος υψηλότερο επίπεδο και να επικεντρωθεί στην επίλυση των προβλημάτων που, 1449 00:59:23,290 --> 00:59:26,410 Σίγουρα, θα μπορούσε να χρησιμοποιήσει κάποια πρόσθεση, αφαίρεση, και διάφορα 1450 00:59:26,410 --> 00:59:28,650 μαθηματικούς τύπους ή τα παρόμοια, 1451 00:59:28,650 --> 00:59:30,860 αλλά στο τέλος της ημέρας, είναι για να σκεφτεί και να μην 1452 00:59:30,860 --> 00:59:33,240 ακριβώς την εφαρμογή ό, τι θα μπορούσε να γίνει σε σαν TI 1453 00:59:33,240 --> 00:59:35,050 αριθμομηχανή στο γυμνάσιο. 1454 00:59:35,050 --> 00:59:38,410 >> Έτσι, με ότι είπε, ας το κάνουμε τώρα κάτι με αυτά 1455 00:59:38,410 --> 00:59:40,980 μαθηματικούς τελεστές που υπάρχουν έτσι ώστε να μπορούμε ταξίδι 1456 00:59:40,980 --> 00:59:43,950 για κάποιες από τις βασικές πτυχές του προγραμματισμού, ή σε 1457 00:59:43,950 --> 00:59:48,930 αυτή την περίπτωση C. Έτσι, υπάρχουν, όπως η βιβλιοθήκη CS50 πρότεινε, 1458 00:59:48,930 --> 00:59:51,520 και σήμερα είμαστε χρησιμοποιώντας μόνο GetString - και σε μια στιγμή 1459 00:59:51,520 --> 00:59:52,940 ίσως μια άλλη λειτουργία - 1460 00:59:52,940 --> 00:59:55,380 αλλά υπάρχουν διαφορετικοί τύποι δεδομένων σε έναν υπολογιστή. 1461 00:59:55,380 --> 00:59:58,550 Στο τέλος της ημέρας, οι ηλεκτρονικοί υπολογιστές γνωρίζουν μόνο 0s και 1s. 1462 00:59:58,550 --> 01:00:01,880 Αλλά θυμάμαι ότι την προηγούμενη εβδομάδα μιλήσαμε για το δυαδικό σύστημα 1463 01:00:01,880 --> 01:00:05,000 στην εκπροσώπηση αριθμούς, όπως ο αριθμός 0, και 1, και 2, 1464 01:00:05,000 --> 01:00:07,480 όλο το δρόμο για μέχρι 8, όπως στο βίντεο Nate του. 1465 01:00:07,480 --> 01:00:08,840 Και τότε μπορούμε να υπολογίζουμε πολύ υψηλότερο, όπως εμείς 1466 01:00:08,840 --> 01:00:10,000 έκανε στη σκηνή εδώ. 1467 01:00:10,000 --> 01:00:15,660 Αλλά αν θέλετε να αντιπροσωπεύει όχι μόνο οι αριθμοί αλλά οι επιστολές, 1468 01:00:15,660 --> 01:00:18,240 εμείς, οι άνθρωποι, πρέπει να καταλήξει σε κάποια αυθαίρετη 1469 01:00:18,240 --> 01:00:21,180 συμβάσεων, σύμφωνα με την οποία αν στο τέλος της ημέρας όλοι τον υπολογιστή μου 1470 01:00:21,180 --> 01:00:24,260 έχει είναι η δυνατότητα να εκφράσει την 0s και 1s, και καλό θα ήταν να 1471 01:00:24,260 --> 01:00:27,990 ξεκινήσει την τυποποίηση των προτύπων 0s και 1s που αντιπροσωπεύουν 1472 01:00:27,990 --> 01:00:28,800 διαφορετικά πράγματα. 1473 01:00:28,800 --> 01:00:32,370 Ένα πρότυπο του 0s και 1s που αντιπροσωπεύει το γράμμα a. 1474 01:00:32,370 --> 01:00:34,840 Πρότυπα 0s και 1s που αντιπροσωπεύουν το γράμμα z. 1475 01:00:34,840 --> 01:00:37,600 Πρότυπα 0s και 1s που αντιπροσωπεύουν το μπλε χρώμα, ή 1476 01:00:37,600 --> 01:00:38,600 κόκκινο, ή τα παρόμοια. 1477 01:00:38,600 --> 01:00:42,360 Πρέπει να χρησιμοποιήσουμε όλα αυτά τα 0s και 1s να εκφραζόμαστε σε 1478 01:00:42,360 --> 01:00:45,140 διαφορετικά πλαίσια, με διαφορετικούς τρόπους που δεν είναι 1479 01:00:45,140 --> 01:00:46,470 κατ 'ανάγκην αριθμητική. 1480 01:00:46,470 --> 01:00:51,150 >> Έτσι, όσον αφορά την εκπροσώπηση, C έχει διαφορετικούς τύπους δεδομένων, 1481 01:00:51,150 --> 01:00:52,550 και έχουμε δει ένα από αυτά μέχρι σήμερα. 1482 01:00:52,550 --> 01:00:54,940 Είδαμε int, και ειδοποίηση τι δεν είναι στην οθόνη 1483 01:00:54,940 --> 01:00:56,140 τώρα είναι η σειρά. 1484 01:00:56,140 --> 01:00:58,550 String δεν, στην πραγματικότητα, υπάρχουν σε C. Και πάλι, αυτό είναι ένα 1485 01:00:58,550 --> 01:01:00,610 απλοποίηση είμαστε παρουσιάζοντας για πρώτη 1486 01:01:00,610 --> 01:01:01,570 δύο εβδομάδες. 1487 01:01:01,570 --> 01:01:03,770 Μια χαρα είναι ένα μεμονωμένο χαρακτήρα. 1488 01:01:03,770 --> 01:01:07,050 Ο πλωτήρας είναι ένας πραγματικός αριθμός, με ένα δεκαδικό σημείο και αριθμούς 1489 01:01:07,050 --> 01:01:09,066 η αριστερά και η δεξιά του. 1490 01:01:09,066 --> 01:01:16,040 Ένα διπλό είναι αυτό, για όσους εκ των προτέρων με την πλάτη υπόβαθρο; 1491 01:01:16,040 --> 01:01:19,720 Έτσι, ένα διπλό είναι κάτι δύο φορές. 1492 01:01:19,720 --> 01:01:21,240 Προσθέτει διπλάσια ακρίβεια. 1493 01:01:21,240 --> 01:01:22,440 Λοιπόν, τι σημαίνει αυτό; 1494 01:01:22,440 --> 01:01:26,090 Έτσι σε κάθε μια από αυτές τις περιπτώσεις, ο κόσμος έχει το είδος των τυποποιημένων 1495 01:01:26,090 --> 01:01:27,960 πόσα bits χρησιμοποιούνται για να αντιπροσωπεύουν 1496 01:01:27,960 --> 01:01:29,160 καθένα από αυτά τα πράγματα. 1497 01:01:29,160 --> 01:01:31,590 Έτσι, αν έχετε παρακολουθήσει ASCII βίντεο Nate του ήδη από την πλευρά 1498 01:01:31,590 --> 01:01:36,170 του PSET 0, ή αργότερα αυτή την εβδομάδα, θα, θα πρέπει πιθανώς γνωρίζετε 1499 01:01:36,170 --> 01:01:37,450 ότι ASCII - 1500 01:01:37,450 --> 01:01:38,610 αναπαραστάσεις χαρακτήρα - 1501 01:01:38,610 --> 01:01:40,670 χρησιμοποιήσετε πόσα bit; 1502 01:01:40,670 --> 01:01:43,410 Και ίσως ακόμη και να θυμάστε από το demo μας την περασμένη εβδομάδα για το πώς 1503 01:01:43,410 --> 01:01:45,500 πολλοί άνθρωποι ήταν στη σκηνή. 1504 01:01:45,500 --> 01:01:46,840 Έτσι 7 ή 8, τυπικά. 1505 01:01:46,840 --> 01:01:49,230 Έτσι, γενικά 8, και υπάρχει κάτι που ονομάζεται όπως παρατάθηκε 1506 01:01:49,230 --> 01:01:51,240 ASCII που χρησιμοποιεί όλα τα 8 μπιτ, αντί του 7. 1507 01:01:51,240 --> 01:01:54,710 Αλλά σε γενικές γραμμές, μιλάμε σε δυνάμεις του 2, οπότε σε αυτή την περίπτωση, 8. 1508 01:01:54,710 --> 01:01:58,900 Έτσι, ένα char σε μια γλώσσα προγραμματισμού είναι συνήθως 8 bit. 1509 01:01:58,900 --> 01:02:02,550 Έτσι, ένας int είναι γενικά 32 bit. 1510 01:02:02,550 --> 01:02:04,810 Ο πλωτήρας είναι κατά κανόνα 32 bits. 1511 01:02:04,810 --> 01:02:08,060 Ένα διπλό είναι γενικά 64 bits. 1512 01:02:08,060 --> 01:02:08,870 Και τι σημαίνει αυτό; 1513 01:02:08,870 --> 01:02:11,500 Αυτό σημαίνει ότι μπορείτε να αντιπροσωπεύουν μεγαλύτερους αριθμούς, ή σε περίπτωση 1514 01:02:11,500 --> 01:02:15,490 των πραγματικών αριθμών, μπορείτε να έχετε ένα πολύ περισσότερους αριθμούς μετά το 1515 01:02:15,490 --> 01:02:16,240 δεκαδικό ψηφίο. 1516 01:02:16,240 --> 01:02:18,980 Μια πολύ μεγαλύτερη ακρίβεια, σε αυτή την περίπτωση. 1517 01:02:18,980 --> 01:02:21,780 Τώρα μια μακρά καιρό είναι δυστυχώς το όνομα. 1518 01:02:21,780 --> 01:02:24,340 Έτσι, υπάρχει μια int που είναι 32 bits. 1519 01:02:24,340 --> 01:02:29,800 Υπάρχει ένα μήκος το οποίο είναι, nope, 32 bits. 1520 01:02:29,800 --> 01:02:32,610 Και πολύ καιρό που είναι 64 bits. 1521 01:02:32,610 --> 01:02:34,830 Ωστόσο, ορισμένες από αυτές εξαρτώνται από το περιβάλλον? Εξαρτάται 1522 01:02:34,830 --> 01:02:36,190 Τι είδους υπολογιστή έχετε. 1523 01:02:36,190 --> 01:02:40,510 Έτσι, σε γενικές γραμμές, θα καθορίσετε σε ένα σπίτι ή σε ένα κουίζ, όταν 1524 01:02:40,510 --> 01:02:41,180 αυτό που έχει σημασία στην πραγματικότητα. 1525 01:02:41,180 --> 01:02:43,080 Αλλά το θέμα είναι ότι υπάρχει όλα αυτά τα διαφορετικά 1526 01:02:43,080 --> 01:02:44,250 παραστάσεις εδώ. 1527 01:02:44,250 --> 01:02:45,950 >> Ας πραγματικά βουτήξει σε ένα πρόγραμμα. 1528 01:02:45,950 --> 01:02:48,300 Αντί να γράψω αυτό το ένα από το μηδέν, επιτρέψτε μου να προχωρήσει 1529 01:02:48,300 --> 01:02:50,940 και να ανοίξει από τον πηγαίο κώδικα του σήμερα - τα οποία είναι 1530 01:02:50,940 --> 01:02:54,980 σε απευθείας σύνδεση - αν θέλετε να κολλήσουμε γύρω σε απευθείας σύνδεση, ή για την επιστροφή 1531 01:02:54,980 --> 01:02:57,120 Τετάρτη με τη συσκευή στον υπολογιστή σας, τις οδηγίες 1532 01:02:57,120 --> 01:02:59,160 για το οποίο θα συνδέσει στην αρχική σελίδα του μαθήματος. 1533 01:02:59,160 --> 01:03:00,830 Εδώ είναι ένα σούπερ απλό πρόγραμμα. 1534 01:03:00,830 --> 01:03:02,520 Αλλά πήρε λίγο κάτι νέο στην κορυφή ότι 1535 01:03:02,520 --> 01:03:03,650 δεν είχαμε πριν. 1536 01:03:03,650 --> 01:03:05,800 Ένα σωρό μπλε γραμμές κειμένου. 1537 01:03:05,800 --> 01:03:08,410 Έτσι, αυτές οι μπλε γραμμές αντιπροσωπεύουν τα σχόλια. 1538 01:03:08,410 --> 01:03:10,620 Γι 'αυτό είναι πολύ χρήσιμο σε ένα πρόγραμμα για να είναι σε θέση να γράψουν 1539 01:03:10,620 --> 01:03:13,160 μερικά σχόλια για τον εαυτό σας, ή στους συναδέλφους, φίλους ή, ή 1540 01:03:13,160 --> 01:03:15,700 υποτρόφων διδασκαλίας, αυτό το είδος του περιγράψει τι συμβαίνει σε 1541 01:03:15,700 --> 01:03:18,500 αυτό το αρχείο, αλλά δεν έχουν καμία σχέση με τον κώδικα C ίδιο. 1542 01:03:18,500 --> 01:03:20,860 Δεν έχει τίποτα να κάνει με το πρόγραμμα λειτουργικά, είναι ακριβώς 1543 01:03:20,860 --> 01:03:21,760 αισθητική. 1544 01:03:21,760 --> 01:03:24,580 Έτσι, ο τρόπος που το κάνετε αυτό σε C είναι σε γενικές γραμμές ξεκινήσει σας 1545 01:03:24,580 --> 01:03:29,860 με τις παρατηρήσεις / *, και θα καταλήξουμε με τα σχόλιά σας 1546 01:03:29,860 --> 01:03:31,270 * /. 1547 01:03:31,270 --> 01:03:34,140 Και αν είστε πραγματικά πρωκτού και ήθελα να επιστήσω είδος των εικόνων, 1548 01:03:34,140 --> 01:03:35,870 τότε θα έβαζα ένα σωρό αστέρια, που θα κάνει μια 1549 01:03:35,870 --> 01:03:36,970 μικρό κουτί σαν αυτό. 1550 01:03:36,970 --> 01:03:37,990 Αλλά κανένα από αυτά δεν έχει σημασία. 1551 01:03:37,990 --> 01:03:40,230 Το μόνο πράγμα που έχει σημασία είναι η πρώτη 1552 01:03:40,230 --> 01:03:41,620 και η τελευταία. 1553 01:03:41,620 --> 01:03:43,820 Αυτό είναι αυτό που ονομάζεται ένα multi-line σχόλιο. 1554 01:03:43,820 --> 01:03:46,610 Και είναι ακριβώς ανθρώπινη σύμβαση να κάνει συχνά τα αστέρια και κουτί 1555 01:03:46,610 --> 01:03:48,420 πράγματα όπως αυτό, αν έχετε πολύ ελεύθερο χρόνο. 1556 01:03:48,420 --> 01:03:51,550 >> Έτσι, αφού έχετε γράψει σε κάποια σχόλια, γενικά, έρχονται 1557 01:03:51,550 --> 01:03:53,160 τα πραγματικά κότσια του προγράμματος. 1558 01:03:53,160 --> 01:03:55,630 Εδώ είναι εξοικειωμένοι μας # include . 1559 01:03:55,630 --> 01:04:00,410 Και μόνο γρήγορα, αυτό είναι απαραίτητο ή δεν είναι απαραίτητο; 1560 01:04:00,410 --> 01:04:02,860 ΚΟΙΝΟ: Απαραίτητες. 1561 01:04:02,860 --> 01:04:04,390 DAVID Malan: Έτσι δεν είναι πραγματικά απαραίτητο. 1562 01:04:04,390 --> 01:04:07,070 Γιατί, λοιπόν, όμως, είναι ότι δεν είναι απαραίτητο; 1563 01:04:07,070 --> 01:04:08,170 Έτσι, δεν υπάρχει printf. 1564 01:04:08,170 --> 01:04:08,510 Πράγματι. 1565 01:04:08,510 --> 01:04:10,470 Όλοι κάνουμε σε αυτό το πρόγραμμα είναι μαθηματικά. 1566 01:04:10,470 --> 01:04:11,640 Γι 'αυτό και πραγματικά να διαγράψετε αυτό. 1567 01:04:11,640 --> 01:04:14,330 Έτσι δεν πρέπει πάντα να περιλαμβάνουν οτιδήποτε 1568 01:04:14,330 --> 01:04:15,420 η κορυφή ενός προγράμματος. 1569 01:04:15,420 --> 01:04:17,020 >> Ας απλοποιήσει αυτή τη λίγο. 1570 01:04:17,020 --> 01:04:18,650 Και τώρα παρατηρήσετε τι κάνει αυτό το πρόγραμμα. 1571 01:04:18,650 --> 01:04:19,920 Δεν έχει πολύ ενδιαφέρον. 1572 01:04:19,920 --> 01:04:21,410 int x = 1. 1573 01:04:21,410 --> 01:04:22,550 Λοιπόν, τι είναι αυτό το κάνει; 1574 01:04:22,550 --> 01:04:25,130 Λοιπόν, νομίζω πίσω στο νοητικό μοντέλο από πριν. 1575 01:04:25,130 --> 01:04:27,500 Η αριστερή πλευρά αυτής της έκφρασης κάνει τι; 1576 01:04:31,440 --> 01:04:32,830 Δημιουργία χώρου για έναν ακέραιο. 1577 01:04:32,830 --> 01:04:33,930 Πώς, λοιπόν, πολύ χώρο; 1578 01:04:33,930 --> 01:04:36,980 Λοιπόν, τυχαίνει να γνωρίζω τώρα ότι είναι 32 bits. 1579 01:04:36,980 --> 01:04:40,070 Προηγουμένως, ήταν μια σειρά τεχνικά 32 bits, αλλά περισσότερο 1580 01:04:40,070 --> 01:04:40,950 σχετικά ότι στο μέλλον. 1581 01:04:40,950 --> 01:04:42,240 Αλλά ένας int είναι 32 bits. 1582 01:04:42,240 --> 01:04:45,590 Έτσι, αυτή την έκφραση στα αριστερά εδώ, int x ακριβώς λέει hey 1583 01:04:45,590 --> 01:04:48,490 λειτουργικού συστήματος, δώσε μου 32 bit RAM - 1584 01:04:48,490 --> 01:04:50,450 αλλιώς γνωστή ως 4 bytes της μνήμης RAM - 1585 01:04:50,450 --> 01:04:53,930 έτσι ώστε να μπορώ να βάλω έναν ακέραιο σε αυτό το χώρο. 1586 01:04:53,930 --> 01:04:55,330 Τι ακέραιο δεν θέλετε να βάλετε; 1587 01:04:55,330 --> 01:04:56,640 Λοιπόν, μόλις ο αριθμός 1. 1588 01:04:56,640 --> 01:04:59,530 int y παίρνει 2, κάνει ακριβώς το ίδιο πράγμα, ακόμη και αν η 1589 01:04:59,530 --> 01:05:02,160 αριθμός είναι μεγαλύτερο, από άποψη μεγέθους της. 1590 01:05:02,160 --> 01:05:04,790 Ο αριθμός εξακολουθεί να είναι η ίδια μόλις 32 bits. 1591 01:05:04,790 --> 01:05:06,520 Είναι ακριβώς το μοτίβο των bits να είναι διαφορετική 1592 01:05:06,520 --> 01:05:08,260 αντιπροσωπεύουν το 1 έναντι 2. 1593 01:05:08,260 --> 01:05:11,980 int z λέει τώρα να μου δώσει άλλα 32 bits, καλέστε το z, και να θέσει το 1594 01:05:11,980 --> 01:05:14,210 άθροιση 1 και 2 εκεί μέσα. 1595 01:05:14,210 --> 01:05:18,050 Έτσι τώρα ότι z αποθηκεύει πιθανώς την τιμή 3, 1596 01:05:18,050 --> 01:05:19,360 και στη συνέχεια να επιστρέψετε 0. 1597 01:05:19,360 --> 01:05:23,020 >> Τώρα αυτό το πρόγραμμα, δεν θα κάνει τίποτα ενδιαφέρον; 1598 01:05:23,020 --> 01:05:26,170 Γι 'αυτό δεν πραγματικά δεν κάνει τίποτα ενδιαφέρον, σε οποιαδήποτε 1599 01:05:26,170 --> 01:05:28,450 νόημα, επειδή ο λόγος; Είναι να κάνει κάποια μαθηματικά. 1600 01:05:28,450 --> 01:05:30,590 Αλλά δεν επιστρέφει την απάντηση, δεξιά. 1601 01:05:30,590 --> 01:05:31,790 Είναι επιστρέφει 0. 1602 01:05:31,790 --> 01:05:33,440 Δεν είναι η εκτύπωση του απάντηση. 1603 01:05:33,440 --> 01:05:35,760 Έτσι, αυτό το πρόγραμμα είναι ουσιαστικά άχρηστη, δεδομένου ότι 1604 01:05:35,760 --> 01:05:36,350 βρίσκεται τώρα. 1605 01:05:36,350 --> 01:05:37,220 Θα κάνει κάποια εργασία. 1606 01:05:37,220 --> 01:05:39,530 Είναι πρόκειται να πάρει κάποιο αριθμό δευτερολέπτων, ή μικροδευτερόλεπτα, να 1607 01:05:39,530 --> 01:05:41,510 τρέχει, αλλά δεν κάνει τίποτα στην πραγματικότητα 1608 01:05:41,510 --> 01:05:42,770 χρήσιμο για τον άνθρωπο. 1609 01:05:42,770 --> 01:05:46,810 >> Ας ανοίξει τώρα πραγματικά math2, όπου τώρα είμαι πραγματικά 1610 01:05:46,810 --> 01:05:48,250 εκτύπωση το αποτέλεσμα. 1611 01:05:48,250 --> 01:05:51,260 Έτσι κι αυτό μπορεί να συναχθεί από τα προηγούμενα παραδείγματα μας. 1612 01:05:51,260 --> 01:05:54,320 Αν θέλω να κάνω μερικά απλά μαθηματικά, int x = 1, y 1613 01:05:54,320 --> 01:05:56,820 = 2. z είναι 1 συν 2 τώρα. 1614 01:05:56,820 --> 01:05:59,240 Τι είναι αυτή η μετάβαση να εκτυπώσετε προφανώς; 1615 01:05:59,240 --> 01:06:00,120 Μόλις 3. 1616 01:06:00,120 --> 01:06:01,590 Έτσι, γρήγορη λογική ελέγχου. 1617 01:06:01,590 --> 01:06:03,830 Επιτρέψτε μου να προχωρήσουμε σε αυτόν τον κατάλογο. 1618 01:06:03,830 --> 01:06:06,480 Έτσι cd source1m. 1619 01:06:06,480 --> 01:06:09,370 Επιτρέψτε μου να προχωρήσει και να πληκτρολογήσετε math2. 1620 01:06:09,370 --> 01:06:11,510 Δεν υπάρχουν μηνύματα λάθους βγήκε, οπότε επιτρέψτε μου να τρέξει - 1621 01:06:11,510 --> 01:06:14,800 δεν a.out--επιτρέψτε μου να τρέξει math2. Enter. 1622 01:06:14,800 --> 01:06:16,750 Και πράγματι, να εκτυπωθούν 3. 1623 01:06:16,750 --> 01:06:18,460 Λοιπόν ας ρίξουμε μια ματιά σε μια παραλλαγή του τύπου αυτού. 1624 01:06:18,460 --> 01:06:23,870 Σε math3.c, έχουμε τώρα αυτό το παράδειγμα εδώ. 1625 01:06:23,870 --> 01:06:26,540 >> Έτσι, αυτού του είδους κανείς ενδιαφέροντα. 1626 01:06:26,540 --> 01:06:32,000 Έτσι, σε αυτό το σημείο εδώ, η απάντηση πρόκειται να πάρει 1 διαιρείται με 10, 1627 01:06:32,000 --> 01:06:33,910 παρατηρήσετε και έχω δηλώσει ότι ως float. 1628 01:06:33,910 --> 01:06:35,200 Γιατί θέλω να είναι float; 1629 01:06:35,200 --> 01:06:36,110 Λοιπόν, αυτό είναι ένα κλάσμα. 1630 01:06:36,110 --> 01:06:37,140 Είναι πρόκειται να είναι ένας πραγματικός αριθμός. 1631 01:06:37,140 --> 01:06:40,970 Γι 'αυτό πρόκειται να είναι 0,1, ελπίζω - 10%, σε αυτή την περίπτωση. 1632 01:06:40,970 --> 01:06:42,610 Και τι μπορώ να κάνω στη συνέχεια θέλετε να εκτυπώσετε; 1633 01:06:42,610 --> 01:06:43,440 Λοιπόν, αυτή η απάντηση. 1634 01:06:43,440 --> 01:06:44,760 Λοιπόν, ας δώσουμε έμφαση, εκτός αυτά πρώτα. 1635 01:06:44,760 --> 01:06:47,020 Έτσι, στην αριστερή πλευρά, δηλώνει μια 1636 01:06:47,020 --> 01:06:49,410 επιπλέουν, καλέστε το απαντήσω. 1637 01:06:49,410 --> 01:06:52,280 Στη δεξιά πλευρά, κάνουν 1 διαιρείται με 10 και να θέσει ότι 1638 01:06:52,280 --> 01:06:54,370 απαντήσει εντός της μεταβλητής. 1639 01:06:54,370 --> 01:06:56,410 Τώρα, αυτή η γραμμή μοιάζει λίγο πιο αινιγματικό. 1640 01:06:56,410 --> 01:06:59,440 Αλλά παρατηρήσετε κάποια γνωστά χαρακτηριστικά. % Σημαίνει εδώ έρχεται ένα 1641 01:06:59,440 --> 01:07:00,490 κράτησης θέσης. 1642 01:07:00,490 --> 01:07:03,230 στ σημαίνει εδώ είναι μια Μιατιμήκινητήςυποδιαστολής, μόλις ένα πραγματικό 1643 01:07:03,230 --> 01:07:05,490 αριθμός, κάτι με ένα δεκαδικό ψηφίο. 1644 01:07:05,490 --> 01:07:07,330 0,2 τι σημαίνει; 1645 01:07:07,330 --> 01:07:10,740 Όποιος γνωρίζει από προηγούμενη εμπειρία; 1646 01:07:10,740 --> 01:07:12,010 Δύο δεκαδικά ψηφία. 1647 01:07:12,010 --> 01:07:14,050 Έτσι, δεν έχουμε δει αυτό πριν, αλλά είναι μόνο ένας τρόπος 1648 01:07:14,050 --> 01:07:16,360 την άσκηση λίγο περισσότερο έλεγχο και printf 1649 01:07:16,360 --> 01:07:20,840 Δεν λέει να μου δώσει 30 πόντους μετά την υποδιαστολή, 1650 01:07:20,840 --> 01:07:22,490 αντί να μου δώσει μόλις 2. 1651 01:07:22,490 --> 01:07:23,960 >> Και τότε ας πάμε μπροστά και να τρέξει αυτό. 1652 01:07:23,960 --> 01:07:30,160 Έτσι κάνουν μαθηματικά 3, και τώρα επιτρέψτε μου να τρέξει μαθηματικά 3, Enter. 1653 01:07:30,160 --> 01:07:34,630 Και αυτό δεν είναι σωστό. 1654 01:07:34,630 --> 01:07:37,390 Φαίνεται να έχουμε συνάντησε για πρώτη φορά γνήσια σφάλμα μας. 1655 01:07:37,390 --> 01:07:39,400 Λοιπόν, ίσως είμαι απλώς δεν ψάχνει αρκετά κοντά. 1656 01:07:39,400 --> 01:07:41,960 Έτσι, επιτρέψτε μου να φτάσει μέχρι εδώ, και επιτρέψτε μου να επενδύσει 20 δεκαδικών 1657 01:07:41,960 --> 01:07:43,300 θέσεις σημείο εκεί. 1658 01:07:43,300 --> 01:07:47,950 Και επιτρέψτε μου να καταρτίσει αυτό, να math3, τρέχει. 1659 01:07:47,950 --> 01:07:50,960 Αρκετά βέβαιοι 1 διαιρείται με 10 δεν είναι 0. 1660 01:07:50,960 --> 01:07:54,270 Λοιπόν, τι συμβαίνει; 1661 01:07:54,270 --> 01:07:56,740 Καλά εντάξει, έτσι πραγματικά δεν έχει να κάνει με αυτό. 1662 01:07:56,740 --> 01:07:57,600 Αυτό είναι μια καλή σκέψη. 1663 01:07:57,600 --> 01:07:59,140 Αυτό είναι πραγματικά ακριβώς μια σύμπτωση 1664 01:07:59,140 --> 01:08:00,220 ότι κάνουμε αυτό. 1665 01:08:00,220 --> 01:08:02,010 Αλλά μόνο και μόνο για να αποδείξει ότι αυτό δεν είναι αυτό, εγώ θα 1666 01:08:02,010 --> 01:08:03,160 επιστρέψει κάτι τυχαίο. 1667 01:08:03,160 --> 01:08:05,160 Μην το κάνετε αυτό στο σπίτι, γιατί είναι απλά λάθος. 1668 01:08:05,160 --> 01:08:08,000 Αλλά να math3, επιτρέψτε μου να τρέξει. 1669 01:08:08,000 --> 01:08:10,690 Έτσι, δεν έχει τίποτα να κάνει με αυτό που είμαι επιστρέφουν, μόνο που έχει να κάνει 1670 01:08:10,690 --> 01:08:11,940 με ό, τι είμαι εκτύπωση. 1671 01:08:11,940 --> 01:08:14,150 Αλλά έχω ακούσει εδώ κάτω. 1672 01:08:14,150 --> 01:08:15,270 Τι; 1673 01:08:15,270 --> 01:08:17,524 ΚΟΙΝΟ: Γι 'αυτό πρέπει να γράψει τους αριθμούς σε 1674 01:08:17,524 --> 01:08:19,680 όπως η διαίρεση - 1675 01:08:19,680 --> 01:08:20,319 >> DAVID Malan: Εντάξει καλά. 1676 01:08:20,319 --> 01:08:22,810 Γι 'αυτό και πρέπει να γράψετε τους αριθμούς που συμμετέχουν στο 1677 01:08:22,810 --> 01:08:25,979 διαίρεση εδώ και κινητής υποδιαστολής τους αξίες. 1678 01:08:25,979 --> 01:08:29,359 Έτσι, το πρόβλημα εδώ είναι όπως πριν: C, όπως με πολλά 1679 01:08:29,359 --> 01:08:31,819 γλώσσες, έχει διαφορετικούς τύπους δεδομένων. 1680 01:08:31,819 --> 01:08:34,600 Και οι τύποι δεδομένων, για παράδειγμα, είναι αυτές εδώ. 1681 01:08:34,600 --> 01:08:37,430 Και οι τύποι δεδομένων σε ερώτηση εδώ, όταν πληκτρολογήστε 1 και στη συνέχεια θα 1682 01:08:37,430 --> 01:08:40,870 τύπου 10, τα δεδομένα είναι μάλλον τι είδους; 1683 01:08:40,870 --> 01:08:42,170 Γι 'αυτό είναι πιθανώς μια int, έτσι δεν είναι; 1684 01:08:42,170 --> 01:08:44,149 Είναι σίγουρα δεν είναι float, γιατί δεν υπάρχει δεκαδικό 1685 01:08:44,149 --> 01:08:45,460 σημείο ή κάτι τέτοιο. 1686 01:08:45,460 --> 01:08:48,270 Έτσι, στην πραγματικότητα, έχω ένα int διαιρείται με έναν int. 1687 01:08:48,270 --> 01:08:52,160 >> Έτσι, το ενδιαφέρον πράγμα σχετικά με τα μαθηματικά και έναν υπολογιστή είναι ότι 1688 01:08:52,160 --> 01:08:54,840 αν κάνεις διαίρεση με ακέραιους αριθμούς - 1689 01:08:54,840 --> 01:08:57,310 1 διαιρείται με 10, ναι είναι 0,1. 1690 01:08:57,310 --> 01:09:01,420 Ωστόσο, όταν μια ακέραια διαίρεση με ακέραιο αριθμό, το 1691 01:09:01,420 --> 01:09:06,859 απάντηση πρέπει να είναι επίσης ένας ακέραιος μόνο και μόνο επειδή, για τώρα. 1692 01:09:06,859 --> 01:09:08,630 Και ποια είναι η επίπτωση στη συνέχεια; 1693 01:09:08,630 --> 01:09:13,640 Λοιπόν, αν η απάντηση είναι 1 διαιρείται με το 10 ισούται με 0,1, τι 1694 01:09:13,640 --> 01:09:15,680 ο υπολογιστής πρόκειται να κάνουμε είναι να έχω καμία ιδέα για το πώς να 1695 01:09:15,680 --> 01:09:19,270 αντιπροσωπεύουν 0,1, γιατί αυτό είναι ένα Μιατιμήκινητήςυποδιαστολής όχι, ένα 1696 01:09:19,270 --> 01:09:21,910 ακέραιος? πρόκειται να κόψουν τα πάντα μετά το 1697 01:09:21,910 --> 01:09:27,470 υποδιαστολή και να σας δείξει ακριβώς το 0 στην αρχή. 1698 01:09:27,470 --> 01:09:29,540 Και το γεγονός ότι είναι εκτύπωση ως κινητής υποδιαστολής 1699 01:09:29,540 --> 01:09:31,200 αξία, είναι απλά μια αισθητική πράγμα. 1700 01:09:31,200 --> 01:09:34,279 Αυτό συμβαίνει γιατί είμαι αναγκάζοντας τον υπολογιστή για να εκτυπώσετε αυτό ως ένα 1701 01:09:34,279 --> 01:09:35,229 Μιατιμήκινητήςυποδιαστολής. 1702 01:09:35,229 --> 01:09:37,720 Και πράγματι, το έχω δηλώσει ως float, αλλά τα μαθηματικά είναι 1703 01:09:37,720 --> 01:09:39,010 συμβαίνει εδώ πέρα. 1704 01:09:39,010 --> 01:09:41,859 >> Επιτρέψτε μου λοιπόν να διορθώσετε πραγματικά αυτό σε ένα αρκετά εύκολο τρόπο. 1705 01:09:41,859 --> 01:09:45,250 Γιατί δεν μπορώ να κάνω μόλις 10,0 και 1,0, αν και 1706 01:09:45,250 --> 01:09:47,609 τεχνικά θα μπορούσα να πάρω μακριά με ακριβώς να κάνει ένα από αυτά. 1707 01:09:47,609 --> 01:09:50,630 Τώρα, επιτρέψτε μου να προχωρήσει και να κάνει math3. 1708 01:09:50,630 --> 01:09:56,350 Επιτρέψτε μου να προχωρήσει και τώρα τρέχουν math3, Enter. 1709 01:09:56,350 --> 01:09:57,500 Και τώρα, oh boy. 1710 01:09:57,500 --> 01:10:00,050 Τώρα έχουμε ένα νέο πρόβλημα συνολικά. 1711 01:10:00,050 --> 01:10:05,600 Έτσι, καλύτερα, δικαίωμα? Είμαστε πιο κοντά στο 0,1, αλλά τι είναι σαφώς 1712 01:10:05,600 --> 01:10:06,240 λάθος εδώ; 1713 01:10:06,240 --> 01:10:08,260 Αν έχουμε ήδη βρίσκεται σε σας για τα επόμενα χρόνια, έτσι δεν είναι; 1714 01:10:08,260 --> 01:10:13,660 1 διαιρείται με 10 είναι στην πραγματικότητα δεν είναι αρκετά 0,1, έτσι ώστε ό, τι είναι 1715 01:10:13,660 --> 01:10:14,700 πραγματικά συμβαίνει εδώ; 1716 01:10:14,700 --> 01:10:16,420 Λοιπόν, μπορείτε να το είδος της λογικής μέσα από αυτό λογικά. 1717 01:10:16,420 --> 01:10:19,200 Εάν ένας υπολογιστής έχει μόνο μια πεπερασμένη ποσότητα της μνήμης RAM για να ξεκινήσετε 1718 01:10:19,200 --> 01:10:23,530 με, και πράγματι ένας υπολογιστής χρησιμοποιώντας μόνο 32 bits για μια 1719 01:10:23,530 --> 01:10:26,200 Μιατιμήκινητήςυποδιαστολής, στέκεται στο λόγο ότι με ένα 1720 01:10:26,200 --> 01:10:29,870 πεπερασμένο αριθμό bits, 32 σε αυτήν την περίπτωση, ναι, μπορείτε να 1721 01:10:29,870 --> 01:10:31,050 αντιπροσωπεύουν πολλά πράγματα. 1722 01:10:31,050 --> 01:10:33,220 Είναι πραγματικά τέσσερα δισεκατομμύρια διαφορετικές τιμές μπορεί να είναι 1723 01:10:33,220 --> 01:10:38,040 εκπροσωπείται με 32 bits, 2 στο 32, αλλά είναι ακόμα περιορισμένη. 1724 01:10:38,040 --> 01:10:40,730 Έτσι, το πρόβλημα είναι ότι υπάρχει ένας άπειρος αριθμός των πραγματικών 1725 01:10:40,730 --> 01:10:41,370 αριθμών, δεξιά. 1726 01:10:41,370 --> 01:10:43,560 Αν μου δώσεις ένα πραγματικό αριθμό, μπορώ πάντα να βρείτε ένα 1727 01:10:43,560 --> 01:10:46,080 ελαφρώς μεγαλύτερο, ελαφρώς λιγότερο, από μόνο μικροαλλαγές η 1728 01:10:46,080 --> 01:10:47,970 αριθμούς που είναι μετά την υποδιαστολή. 1729 01:10:47,970 --> 01:10:50,870 Έτσι, εάν δεν έχετε έναν άπειρο αριθμό των bits, που 1730 01:10:50,870 --> 01:10:52,940 δεν μπορεί να αποτελέσει, ενδεχομένως, μια άπειρη 1731 01:10:52,940 --> 01:10:54,800 αριθμό των πραγματικών αριθμών. 1732 01:10:54,800 --> 01:10:58,090 >> Έτσι υπάρχει αυτή η ασάφεια έμφυτη σε υπολογιστές, και 1733 01:10:58,090 --> 01:11:00,930 αυτό παίρνει σκόνταψε πάνω όλη την ώρα, ακόμη και στις απλούστερες 1734 01:11:00,930 --> 01:11:02,260 προγράμματα όπως αυτό. 1735 01:11:02,260 --> 01:11:05,640 Αλλά και σε ορισμένες πολύ προβλήματα του πραγματικού κόσμου, καθώς και. 1736 01:11:05,640 --> 01:11:07,790 Στην πραγματικότητα, ας ρίξουμε μια στιγμή για να πάρει μόνο μια ματιά 1737 01:11:07,790 --> 01:11:09,530 κάτι που πραγματικά συνέβη στην πραγματικότητα. 1738 01:11:09,530 --> 01:11:11,620 Θα παρακολουθήσουν μόνο το πρώτο λίγα λεπτά, και στη συνέχεια, 1739 01:11:11,620 --> 01:11:13,270 θα τοποθετήσει το σε απευθείας σύνδεση σύνδεσμο. 1740 01:11:13,270 --> 01:11:16,700 Αλλά αυτό είναι απόδειξη για το τι μπορεί να πάει στραβά, αρκετά 1741 01:11:16,700 --> 01:11:19,680 Ειλικρινά, σε ένα πολύ τραγικό τρόπο, όταν αυτά τα πράγματα δεν είναι 1742 01:11:19,680 --> 01:11:23,870 εκτιμηθεί ή απλά εμείς οι άνθρωποι κάνουν λάθη, όταν πρόκειται για 1743 01:11:23,870 --> 01:11:26,792 αυτά τα είδη των λεπτομερειών εφαρμογής των σύγχρονων υπολογιστών. 1744 01:11:26,792 --> 01:11:27,284 >> [Αναπαραγωγή βίντεο] 1745 01:11:27,284 --> 01:11:30,730 -Τώρα επιστρέφουν με καταστροφές μηχανικής για σύγχρονα θαύματα. 1746 01:11:30,730 --> 01:11:32,200 Υπολογιστές. 1747 01:11:32,200 --> 01:11:34,920 Όλοι έχουμε έρθει για να αποδεχτείτε τις συχνά απογοητευτικό προβλήματα 1748 01:11:34,920 --> 01:11:36,750 που πάνε μαζί τους. 1749 01:11:36,750 --> 01:11:40,690 Bugs, οι ιοί, λογισμικό και δυσλειτουργίες είναι μικρές τιμές 1750 01:11:40,690 --> 01:11:42,550 πληρώσει για την ευκολία. 1751 01:11:42,550 --> 01:11:45,170 Αλλά σε υψηλής τεχνολογίας και στρατιωτική ταχύτητα και το διάστημα 1752 01:11:45,170 --> 01:11:48,450 εφαρμογές του προγράμματος, το μικρότερο πρόβλημα μπορεί να είναι 1753 01:11:48,450 --> 01:11:52,220 μεγεθύνονται σε καταστροφή. 1754 01:11:52,220 --> 01:11:56,780 Στις 4 Ιουνίου του 1996, οι επιστήμονες έτοιμη να ξεκινήσει ένα μη επανδρωμένο 1755 01:11:56,780 --> 01:11:58,430 Πύραυλο Ariane 5. 1756 01:11:58,430 --> 01:12:00,750 Μετέφερε επιστημονικών δορυφόρων σχεδιαστεί για να 1757 01:12:00,750 --> 01:12:03,580 καθορίσει ακριβώς πώς το μαγνητικό πεδίο της γης 1758 01:12:03,580 --> 01:12:06,900 αλληλεπιδρά με τους ηλιακούς ανέμους. 1759 01:12:06,900 --> 01:12:10,330 Ο πύραυλος χτίστηκε για τον Ευρωπαϊκό Οργανισμό Διαστήματος και 1760 01:12:10,330 --> 01:12:13,450 ανασηκώνεται από τις εγκαταστάσεις της στην ακτή της Γαλλικής Γουιάνας. 1761 01:12:13,450 --> 01:12:16,970 >> -Σε περίπου 37 δευτερόλεπτα στην πτήση, την πρώτη τους 1762 01:12:16,970 --> 01:12:19,700 παρατήρησα κάτι δεν πήγαινε καλά, ότι τα ακροφύσια ήταν 1763 01:12:19,700 --> 01:12:21,590 περιστροφή με έναν τρόπο που πραγματικά δεν θα έπρεπε. 1764 01:12:21,590 --> 01:12:25,020 Περίπου 40 δευτερόλεπτα σε πτήση, με σαφήνεια το όχημα 1765 01:12:25,020 --> 01:12:27,340 ήταν στο πρόβλημα, και αυτό είναι όταν έλαβε την απόφαση να 1766 01:12:27,340 --> 01:12:28,136 καταστρέψει. 1767 01:12:28,136 --> 01:12:31,450 Ένας ανώτερος υπάλληλος ασφάλειας με τεράστια κότσια πατημένο το 1768 01:12:31,450 --> 01:12:34,160 κουμπί, ανατίναξαν τον πύραυλο πριν θα μπορούσε να γίνει μια 1769 01:12:34,160 --> 01:12:37,470 θέσουν σε κίνδυνο τη δημόσια ασφάλεια. 1770 01:12:37,470 --> 01:12:40,750 >> -Αυτό ήταν το παρθενικό ταξίδι του Ariane 5, και του 1771 01:12:40,750 --> 01:12:43,990 καταστροφή έλαβε χώρα εξαιτίας ενός ελαττώματος στο ενσωματωμένο 1772 01:12:43,990 --> 01:12:45,480 λογισμικό πυραύλου. 1773 01:12:45,480 --> 01:12:47,660 >> -Το πρόβλημα σχετικά με την Ariane ήταν ότι υπήρχε ένας αριθμός που 1774 01:12:47,660 --> 01:12:51,245 απαιτεί 64 bits για να εκφράσουν και να ήθελαν να το μετατρέψει 1775 01:12:51,245 --> 01:12:53,010 σε έναν αριθμό δυαδικών ψηφίων 16. 1776 01:12:53,010 --> 01:12:54,900 Υπέθεσαν ότι ο αριθμός δεν ήταν ποτέ 1777 01:12:54,900 --> 01:12:56,280 πρόκειται να είναι πολύ μεγάλη, 1778 01:12:56,280 --> 01:12:59,920 ότι τα περισσότερα από αυτά τα ψηφία του αριθμού 64 bit ήταν 0s. 1779 01:12:59,920 --> 01:13:01,860 Μπορούν ήταν λάθος. 1780 01:13:01,860 --> 01:13:04,550 >> -Η αδυναμία ενός προγράμματος λογισμικού για να δεχθεί το 1781 01:13:04,550 --> 01:13:07,730 είδος του αριθμός που παράγεται από μια άλλη ήταν στη ρίζα της 1782 01:13:07,730 --> 01:13:08,930 η αποτυχία. 1783 01:13:08,930 --> 01:13:11,490 Ανάπτυξη λογισμικού είχε γίνει ένα πολύ δαπανηρό μέρος της 1784 01:13:11,490 --> 01:13:13,280 νέα τεχνολογία. 1785 01:13:13,280 --> 01:13:16,530 Ο πύραυλος Ariane 4 είχε μεγάλη επιτυχία. 1786 01:13:16,530 --> 01:13:19,100 Τόσο μεγάλο μέρος του λογισμικού που δημιουργήθηκε γι 'αυτό χρησιμοποιήθηκε επίσης 1787 01:13:19,100 --> 01:13:21,050 στην Ariane 5. 1788 01:13:21,050 --> 01:13:25,530 >> -Το βασικό πρόβλημα ήταν ότι ο Ariane 5 ήταν ταχύτερη, 1789 01:13:25,530 --> 01:13:27,280 επιταχύνθηκε γρηγορότερα. 1790 01:13:27,280 --> 01:13:30,590 Και το λογισμικό δεν είχε αντιπροσώπευε γι 'αυτό. 1791 01:13:30,590 --> 01:13:33,060 >> -Η καταστροφή του πυραύλου ήταν μια τεράστια οικονομική 1792 01:13:33,060 --> 01:13:37,670 καταστροφή, όλα οφείλονται σε ένα λεπτό σφάλμα λογισμικού. 1793 01:13:37,670 --> 01:13:40,750 Αλλά αυτή δεν ήταν η πρώτη φορά που τα δεδομένα προβλήματα μετατροπής είχε 1794 01:13:40,750 --> 01:13:43,680 μαστίζεται σύγχρονη τεχνολογία πυραύλων. 1795 01:13:43,680 --> 01:13:44,390 >> DAVID Malan: Θα το αφήσουμε εκεί. 1796 01:13:44,390 --> 01:13:46,870 Αλλά αυτό είναι απόδειξη για το πόσο ισχύει ακόμα και μερικές από 1797 01:13:46,870 --> 01:13:48,750 αυτές οι λεπτομέρειες χαμηλότερο επίπεδο που έχουμε αρχίσει να 1798 01:13:48,750 --> 01:13:50,040 διερευνήσει σήμερα είναι. 1799 01:13:50,040 --> 01:13:52,510 Έτσι, ακόμη και όπως μπορείτε να πάρετε μια μικρή έξαλλος ίσως από κάποιες από 1800 01:13:52,510 --> 01:13:55,240 η σύνταξη και arcaneness εδώ, να συνειδητοποιήσουμε ότι πάνω από το 1801 01:13:55,240 --> 01:13:57,690 όρος θα πρέπει να επικεντρώνεται μόνο στο πώς εφαρμόζεται αυτό είναι να 1802 01:13:57,690 --> 01:13:59,530 κόσμους πέρα ​​από CS. 1803 01:13:59,530 --> 01:14:00,780 Θα σας δούμε την Τετάρτη.