1 00:00:00,000 --> 00:00:12,410 >> [Παίζει μουσική] 2 00:00:12,410 --> 00:00:12,830 >> DAVID MALAN: Εντάξει. 3 00:00:12,830 --> 00:00:13,370 Καλώς ήρθατε και πάλι. 4 00:00:13,370 --> 00:00:16,510 Αυτό είναι CS50, και αυτό είναι Μία εβδομάδα, συνεχίστηκε. 5 00:00:16,510 --> 00:00:20,050 Έτσι, ένας από τους λόγους που έχουμε ήδη διέρχεται γύρω από τεχνολογίες όπως 6 00:00:20,050 --> 00:00:24,120 Google Glass είναι ότι έρχονται με κάτι που είναι γνωστό ως ένα API, μια 7 00:00:24,120 --> 00:00:25,980 Application Programming Interface. 8 00:00:25,980 --> 00:00:28,830 Και τι σημαίνει αυτό είναι ότι με την δεξιά αρχεία και με τη σωστή 9 00:00:28,830 --> 00:00:32,850 τεκμηρίωση, μπορείτε να γράψω λογισμικού για ακόμη παρόμοιες συσκευές. 10 00:00:32,850 --> 00:00:36,200 >> Και έτσι αυτό που έχουμε στο μυαλό προς εξάμηνα τέλος είναι, εάν ένα έργο 11 00:00:36,200 --> 00:00:39,310 που αφορούν, για παράδειγμα, το Google Glass μπορεί να έφεση, θα δούμε τι μπορούμε να κάνουμε 12 00:00:39,310 --> 00:00:42,220 Όροι συνδέοντας σας με κάποια εφεδρική υλικού, καθώς και η 13 00:00:42,220 --> 00:00:46,500 προσβάσιμες για το κοινό API, ώστε να μπορείτε να πραγματικά να αρχίσετε τη δημιουργία λογισμικού 14 00:00:46,500 --> 00:00:48,630 που τρέχει στην ίδια Glass Google. 15 00:00:48,630 --> 00:00:51,710 >> Μια άλλη συσκευή που έχουμε παίξει με από τα τέλη που πιστεύαμε ότι θα μπορούσε να είναι 16 00:00:51,710 --> 00:00:53,910 διασκέδαση στο τέλος του εξαμήνου είναι αυτό το μικρό πράγμα εδώ. 17 00:00:53,910 --> 00:00:56,860 Λέγεται Πρόταση Leap, και τι είστε για να δούμε είναι τεχνικά ένα 18 00:00:56,860 --> 00:01:00,280 διαφήμιση για τη συσκευή, αλλά μιλάει με ό, τι αυτό το συγκεκριμένο 19 00:01:00,280 --> 00:01:01,240 συσκευή είναι ικανή. 20 00:01:01,240 --> 00:01:05,550 Και αυτό, επίσης, έρχεται με ένα API μέσω το οποίο μπορείτε να γράψετε το λογισμικό για να 21 00:01:05,550 --> 00:01:10,545 ελέγχετε τον υπολογιστή σας με τρόπο αρκετά όπως αυτό ενός λεπτού φιλμ εδώ. 22 00:01:10,545 --> 00:01:12,070 >> [PLAYBACK VIDEO] 23 00:01:12,070 --> 00:02:08,002 24 00:02:08,002 --> 00:02:08,590 >> [PLAYBACK VIDEO END] 25 00:02:08,590 --> 00:02:11,190 >> Μέχρι τώρα, η συσκευή αυτή συμβαίνει σε να εφαρμοστεί ως ένα μικρό USB 26 00:02:11,190 --> 00:02:14,290 σύνδεσης που μπορείτε να συνδέσετε σε σας υπολογιστή, αλλά δεν θα ήταν έκπληξη 27 00:02:14,290 --> 00:02:17,930 αν πριν από καιρό έχουμε αυτά τα είδη των τεχνολογιών στην επόμενη παρτίδα των PCs 28 00:02:17,930 --> 00:02:20,510 και Mac έτσι ώστε να μπορείτε, πράγματι, αλληλεπιδρούν με αυτό στο 29 00:02:20,510 --> 00:02:21,650 ένα τρόπο παρόμοιο με αυτόν. 30 00:02:21,650 --> 00:02:24,250 Στην πραγματικότητα, αυτό που νόμιζα ότι είχα κάνει, επίσης, είναι Τράβηξα μια μικρή επίδειξη 31 00:02:24,250 --> 00:02:25,860 πρόγραμμα που έρχεται με αυτό το λογισμικό. 32 00:02:25,860 --> 00:02:28,700 Έτσι, έχω βάλει το μικρό αισθητήρα μπροστά από το laptop μου. 33 00:02:28,700 --> 00:02:32,420 >> Και όπως μπορείτε να δείτε, συνειδητοποιεί ήδη ότι το χέρι μου, δεν υπάρχει 34 00:02:32,420 --> 00:02:33,400 ελέγχει. 35 00:02:33,400 --> 00:02:37,900 Και όλη αυτή η εφαρμογή δεν είναι περίφημα μικρά πράγματα όπως αυτό. 36 00:02:37,900 --> 00:02:41,080 Αλλά μπορείτε να δείτε ότι, πράγματι, Έχω πέντε δάχτυλα εκεί. 37 00:02:41,080 --> 00:02:44,270 Αν μπορούμε να πάρουμε για να κάνει όλες τις 10, μπορείτε να φανταστείτε ένα τακτοποιημένο πιάνο 38 00:02:44,270 --> 00:02:45,390 εφαρμογή ή τα παρόμοια. 39 00:02:45,390 --> 00:02:47,820 Έτσι, αν θα θέλατε να καταλήξει μετά το μάθημα σήμερα και το παιχνίδι με ότι 40 00:02:47,820 --> 00:02:49,720 Καλά, είστε ευπρόσδεκτοι να. 41 00:02:49,720 --> 00:02:52,930 Έτσι, περισσότερα για αυτό προς το τέλος του εξαμήνου. 42 00:02:52,930 --> 00:02:54,420 >> Έτσι, ένα ζευγάρι των διοικητικών ανακοινώσεις. 43 00:02:54,420 --> 00:02:58,690 Ένα, κάνει το τμήμα από αυτή την Παρασκευή το μεσημέρι στο cs60.net/section. 44 00:02:58,690 --> 00:03:01,260 Η διεύθυνση URL είναι για την πορεία της αρχική σελίδα, καθώς και. 45 00:03:01,260 --> 00:03:04,010 Εν τω μεταξύ, όμως, supersections θα κάνει το ντεμπούτο του αυτή την Κυριακή. 46 00:03:04,010 --> 00:03:07,800 Supersections είναι ένα one-time πράγμα, γιατί μας παίρνει κάποιο χρόνο για να εργαστούν 47 00:03:07,800 --> 00:03:09,470 ποιος είναι σε ποιο τμήμα και πού. 48 00:03:09,470 --> 00:03:12,280 >> Έτσι, την ερχόμενη Κυριακή, θα υπάρξει ένα τμήμα για τις λιγότερο άνετα, 49 00:03:12,280 --> 00:03:14,040 ένα τμήμα για όσους πιο άνετα. 50 00:03:14,040 --> 00:03:16,110 Και όσοι από εσάς κάπου στο μεταξύ είναι ευπρόσδεκτοι να πάει στο 51 00:03:16,110 --> 00:03:17,850 ή και τα δύο ή κανένα. 52 00:03:17,850 --> 00:03:19,150 Και οι δύο θα βιντεοσκοπηθούν. 53 00:03:19,150 --> 00:03:22,740 Θα είναι το μεγαλύτερο αμφιθέατρο από ό, τι ένα τμήμα κανονικά θα είναι μέσα 54 00:03:22,740 --> 00:03:26,110 Αλλά ο στόχος εδώ είναι να σας εξοπλίσει με κάποια άνεση με το πρόβλημα που έχει μία, 55 00:03:26,110 --> 00:03:29,910 με C, με τη συσκευή CS50, αυτή Σαββατοκύριακο, ακόμη και προτού να μάθετε σας 56 00:03:29,910 --> 00:03:31,050 επίσημη ανάθεση τμήματος. 57 00:03:31,050 --> 00:03:34,700 Έτσι, θα συναντήσετε TF σας και μικρότερα σας ομάδα sectionmates σε περίπου 58 00:03:34,700 --> 00:03:36,350 μία εβδομάδα. 59 00:03:36,350 --> 00:03:38,200 >> Ώρες γραφείου, εν τω μεταξύ, έχουν σε εξέλιξη. 60 00:03:38,200 --> 00:03:41,020 Να επωφεληθούν από αυτές απόψε ή αύριο το βράδυ, αν θα θέλατε. 61 00:03:41,020 --> 00:03:43,460 Πρόβλημα που τίθεται είναι 0 αναμένονται την Παρασκευή. 62 00:03:43,460 --> 00:03:46,680 Αυτή είναι μια ημέρα αργότερα από ό, τι η τακτικά-είχε προγραμματιστεί την Πέμπτη. 63 00:03:46,680 --> 00:03:50,410 Αλλά με το σύνολο πρόβλημα 1, θα δείτε ότι περιλαμβάνει κάποια προθέρμανση 64 00:03:50,410 --> 00:03:52,770 ασκήσεις με την οποία εσείς ο ίδιος μπορεί να επεκτείνει σας 65 00:03:52,770 --> 00:03:54,660 Πέμπτη προθεσμία για την Παρασκευή. 66 00:03:54,660 --> 00:03:58,410 Set Πρόβλημα 1, εν τω μεταξύ, θα κάνει το ντεμπούτο στην ιστοσελίδα του μαθήματος την ερχόμενη 67 00:03:58,410 --> 00:04:02,000 Παρασκευή, αν θέλετε να ξεκουραστείτε με ως το έκανα μια φορά κι έναν καιρό αργά 68 00:04:02,000 --> 00:04:04,370 Παρασκευή το βράδυ στο δωμάτιό σας. 69 00:04:04,370 --> 00:04:07,660 >> Έτσι cs50.net/appliance είναι ο τόπος όπου μπορείτε να πάρετε το CS50 συσκευή 70 00:04:07,660 --> 00:04:09,040 που άρχισαν να χρησιμοποιούν τη Δευτέρα. 71 00:04:09,040 --> 00:04:10,140 Θα το χρησιμοποιήσετε λίγο περισσότερο σήμερα. 72 00:04:10,140 --> 00:04:14,040 Αλλά να είστε σίγουροι ότι το πρόβλημα που 1 προδιαγραφές θα σας καθοδηγήσει 73 00:04:14,040 --> 00:04:16,490 ακριβώς τα βήματα που πρέπει για να πάρει ότι ιδρυθεί και να λειτουργήσει. 74 00:04:16,490 --> 00:04:22,120 Γι 'αυτό μην ανησυχείτε για να κάνει ότι πριν Pset 1 αν θέλετε μάλλον δεν. 75 00:04:22,120 --> 00:04:22,660 >> Εντάξει. 76 00:04:22,660 --> 00:04:27,180 Έτσι, εξετάσαμε τη Δευτέρα στο πηγαίο κώδικα, αλλά στο πλαίσιο ενός νέου 77 00:04:27,180 --> 00:04:30,895 γλώσσα προγραμματισμού, δηλαδή C. and C, σε αντίθεση με Scratch, δεν είναι γραφικό. 78 00:04:30,895 --> 00:04:32,270 Δεν είναι πάζλ. 79 00:04:32,270 --> 00:04:34,450 Είναι πιο English-όπως σύνταξη. 80 00:04:34,450 --> 00:04:37,140 Και υπάρχει ένα ζευγάρι των βημάτων που απαιτούνται στην πραγματικότητα γραφή και τη λειτουργία μιας 81 00:04:37,140 --> 00:04:41,650 προγράμματος σε C, γιατί εκτός από πηγή κώδικα όπως αυτό, θα πρέπει να έχετε κάτι 82 00:04:41,650 --> 00:04:42,890 ονομάζεται compiler. 83 00:04:42,890 --> 00:04:46,682 Και σε απλή γλώσσα, αυτό κάνει ένας compiler κάνει για μας; 84 00:04:46,682 --> 00:04:47,650 Ναι. 85 00:04:47,650 --> 00:04:51,040 >> ΦΟΙΤΗΤΗΣ: Μετατρέπει τον κωδικό που γράφετε σε 0s και 1s. 86 00:04:51,040 --> 00:04:51,151 >> DAVID MALAN: Good. 87 00:04:51,151 --> 00:04:53,580 Έτσι μετατρέπει τον κωδικό που γράφουμε για να 0s και 1s. 88 00:04:53,580 --> 00:04:57,730 Μετατρέπει το λεγόμενο κώδικα για Κωδικός αντικειμένου, η τελευταία εκ των οποίων φαίνεται 89 00:04:57,730 --> 00:04:59,140 λίγο κάτι σαν αυτό. 90 00:04:59,140 --> 00:05:02,860 Και είναι CPU σας, οι εγκέφαλοι στο εσωτερικό της υπολογιστή σας, ότι, λόγω των 91 00:05:02,860 --> 00:05:06,280 άνθρωποι που δημιούργησαν αυτούς τους υπολογιστές, ξέρετε τι αυτές οι αλληλουχίες 92 00:05:06,280 --> 00:05:07,460 από 0 και 1 μέση. 93 00:05:07,460 --> 00:05:08,640 >> Ίσως αυτό σημαίνει ότι η εκτύπωση. 94 00:05:08,640 --> 00:05:10,265 Ίσως αυτό σημαίνει προσθήκη. 95 00:05:10,265 --> 00:05:11,610 Ίσως αυτό σημαίνει αφαίρεση. 96 00:05:11,610 --> 00:05:13,350 Ίσως αυτό σημαίνει ότι εμφανίζει ένα γραφικό. 97 00:05:13,350 --> 00:05:16,870 Υπάρχουν προκαθορισμένα πρότυπα των bits ότι ο κόσμος έχει αποφασίσει να σημαίνει 98 00:05:16,870 --> 00:05:17,700 ορισμένα πράγματα. 99 00:05:17,700 --> 00:05:20,760 Αλλά για το μεγαλύτερο μέρος σε αυτή την πορεία, θα δουλέψουμε σε υψηλότερο επίπεδο, και 100 00:05:20,760 --> 00:05:24,180 θα πάρουμε ως δεδομένο ότι υπάρχουν τα πράγματα όπως compilers που μπορούν να 101 00:05:24,180 --> 00:05:27,670 κάνει πηγής λειτουργία μας κώδικα με τον τρόπο που σκοπεύουμε. 102 00:05:27,670 --> 00:05:31,660 >> Έτσι, το πρόγραμμα που έγραψε το πρώτο του την περασμένη εβδομάδα και στη συνέχεια άρχισε στο λιμάνι, έτσι ώστε να 103 00:05:31,660 --> 00:05:33,920 να μιλήσει, να C αυτό το παρελθόν Δευτέρα ήταν αυτό. 104 00:05:33,920 --> 00:05:35,700 Όταν η πράσινη σημαία κλικ, να πω γεια. 105 00:05:35,700 --> 00:05:37,430 Αυτό ήταν, φυσικά, γραμμένο στο Scratch. 106 00:05:37,430 --> 00:05:40,710 Και εγώ ισχυρίστηκε ότι το ισοδύναμο πρόγραμμα σε C φαινόταν λίγο 107 00:05:40,710 --> 00:05:41,520 κάτι σαν αυτό. 108 00:05:41,520 --> 00:05:45,050 >> Έτσι, αυτό που νόμιζα ότι είχαμε κάνει στην αρχή είναι, ας δώσουμε έμφαση, εκτός ό, τι φαίνεται, σε πρώτη 109 00:05:45,050 --> 00:05:48,790 ματιά, κατά γενική ομολογία, ως αρκετά απόκρυφα σύνταξη, αλλά θα αρχίσετε να παρατηρείτε 110 00:05:48,790 --> 00:05:50,160 μοτίβα αρκετά γρήγορα. 111 00:05:50,160 --> 00:05:53,770 Αυτό που, επίσης, θα κάνουμε σήμερα είναι να δώσουμε σας με ένα νοητικό μοντέλο για ορισμένες 112 00:05:53,770 --> 00:05:57,280 κανονικά, κάποια πρότυπα κατασκευάσματα στον προγραμματισμό. 113 00:05:57,280 --> 00:06:00,420 Και τότε θα πάρει πραγματικά στα χέρια μας βρώμικο με μερικά παραδείγματα, καθώς και. 114 00:06:00,420 --> 00:06:04,140 >> Έτσι, για όσους από εσάς πιο άνετα, συνειδητοποιούν ότι αυτή την εβδομάδα και στη συνέχεια το επόμενο 115 00:06:04,140 --> 00:06:05,940 εβδομάδα μπορεί κάλλιστα να είναι ένα κομμάτι της κριτικής. 116 00:06:05,940 --> 00:06:08,810 Όμως, ειδικά όταν η έκδοση χάκερ του προβλήματος σετ 1 σβήνει σχετικά με την 117 00:06:08,810 --> 00:06:12,330 Ιστοσελίδα μαθήματος την Παρασκευή, νομίζω θα διαπιστώσετε ότι ακόμα και όπως μπορείτε να συμπληρώσετε 118 00:06:12,330 --> 00:06:15,390 κάποια κενά κατά την επόμενη εβδομάδα ή δύο, θα αρχίσετε να πάρει όλο και πιο 119 00:06:15,390 --> 00:06:18,410 αμφισβητηθεί και αντιμετωπίζουν νέα και νεότερα πράγματα. 120 00:06:18,410 --> 00:06:21,310 >> Έτσι, ας δώσουμε έμφαση, αυτό το πρόγραμμα, εκτός λίγες γραμμές σε έναν χρόνο. 121 00:06:21,310 --> 00:06:24,140 Στην κορυφή, έχουμε ό, τι είναι τεχνικά ονομάζεται 122 00:06:24,140 --> 00:06:25,950 οδηγία προεπεξεργαστή. 123 00:06:25,950 --> 00:06:30,510 Αυτή είναι μόνο μια γραμμή κώδικα που λέει να περιλαμβάνει τα περιεχόμενα ενός αρχείου, 124 00:06:30,510 --> 00:06:35,080 ονομάζεται πρότυπο I / N, standard input - ή, συγγνώμη, πρότυπο I / O, πρότυπο 125 00:06:35,080 --> 00:06:38,670 εισόδου / εξόδου,. h, μέσα του προγράμματός μου. 126 00:06:38,670 --> 00:06:41,670 >> Έτσι, με άλλα λόγια, αν έγραψα αυτό Πρόγραμμα με ένα απλό επεξεργαστή κειμένου, όπως 127 00:06:41,670 --> 00:06:45,260 gedit, το απλούστερο ισοδύναμο κάτι σαν το Microsoft Word, που 128 00:06:45,260 --> 00:06:50,970 διδασκαλίας, # include stdio.h, είναι ακριβώς πρόκειται να πει ο compiler, πιάσε το 129 00:06:50,970 --> 00:06:56,080 το περιεχόμενο του εν λόγω άλλο αρχείο, stdio.h, και να τους επικολλήσετε εδώ. 130 00:06:56,080 --> 00:06:57,090 >> Τώρα, γιατί με νοιάζει; 131 00:06:57,090 --> 00:07:01,850 Τι διεκδικούμε βρίσκεται στο εσωτερικό αυτού του αρχείου stdio.h ονομάζεται, το οποίο είναι αποθηκευμένο 132 00:07:01,850 --> 00:07:05,490 κάπου στο σκληρό δίσκο μου, ή αυτό περίπτωση, κάπου στη συσκευή CS50; 133 00:07:05,490 --> 00:07:06,635 Κάποιος άλλος το έβαλε εκεί για μένα. 134 00:07:06,635 --> 00:07:09,910 Αλλά τι σημαίνει αυτό; 135 00:07:09,910 --> 00:07:13,020 >> Ναι, έτσι είναι μια δήλωση μια λειτουργία που ονομάζεται printf. 136 00:07:13,020 --> 00:07:17,400 Έτσι printf υπενθυμίζει ότι η λειτουργία εμφανίζει τις λέξεις και τους χαρακτήρες και 137 00:07:17,400 --> 00:07:20,160 αριθμών στην οθόνη προσφορά μου. 138 00:07:20,160 --> 00:07:21,220 Αλλά εγώ δεν το γράψω. 139 00:07:21,220 --> 00:07:22,230 CS50 δεν το γράψω. 140 00:07:22,230 --> 00:07:26,990 Χρόνια Κάποιος έγραψε ότι πριν, και ουσιαστικά μας έδωσε τη συνταγή για το 141 00:07:26,990 --> 00:07:29,110 σε ένα αρχείο με όνομα stdio.h. 142 00:07:29,110 --> 00:07:33,240 Έτσι, η πρώτη γραμμή δίνει μόνο εγώ πρόσβαση με τις λειτουργίες που κάποιος άλλος 143 00:07:33,240 --> 00:07:36,500 έγραψα πριν χρόνια, μεταξύ των τα οποία είναι printf. 144 00:07:36,500 --> 00:07:39,450 >> Τώρα, η επόμενη γραμμή Πάω στο κύμα μου το χέρι του, τουλάχιστον μέχρι την επόμενη εβδομάδα. 145 00:07:39,450 --> 00:07:43,620 Αλλά για τώρα, γνωρίζουμε ότι int main (void) είναι ουσιαστικά το ισοδύναμο αυτού 146 00:07:43,620 --> 00:07:46,310 κίτρινο κομμάτι του παζλ, όταν πράσινη σημαία κλικ. 147 00:07:46,310 --> 00:07:49,510 Ο κόσμος, πριν από χρόνια, αποφάσισε ότι, εάν είστε γράφει ένα πρόγραμμα στον 148 00:07:49,510 --> 00:07:53,150 γλώσσα που ονομάζεται C, μπορείτε να ξεκινήσετε το πρόγραμμά σας με μια γραμμή 149 00:07:53,150 --> 00:07:54,410 που μοιάζει πολύ με αυτό. 150 00:07:54,410 --> 00:07:57,650 Σε μόλις μία εβδομάδα, αυτό θα κάνει αίσθηση τι int είναι, ποια είναι άκυρη. 151 00:07:57,650 --> 00:08:00,840 Αλλά για τώρα, απλά σκεφτείτε το όπως αυτό το κίτρινο κομμάτι του παζλ. 152 00:08:00,840 --> 00:08:04,550 >> Τώρα το επόμενο, έχουμε ένα άγκιστρο που ακολουθείται από άλλη στενή στήριγμα σγουρά, 153 00:08:04,550 --> 00:08:05,240 να το πω έτσι. 154 00:08:05,240 --> 00:08:07,430 Και θα δούμε αυτά καθ 'όλη προγράμματα σε C, καθώς 155 00:08:07,430 --> 00:08:08,930 JavaScript και PHP. 156 00:08:08,930 --> 00:08:11,345 Και αυτά ακριβώς συνοψίζουν σχετικές γραμμές κώδικα. 157 00:08:11,345 --> 00:08:14,600 Η ανοιχτή κηδεμόνα σγουρά ουσιαστικά λέει, εδώ έρχεται ένα τμήμα κώδικα. 158 00:08:14,600 --> 00:08:17,590 Και το κλειστό στήριγμα σγουρά, η οποία είναι υπό γωνία προς την άλλη κατεύθυνση, μόλις 159 00:08:17,590 --> 00:08:19,920 μέσα, αυτό είναι όλο για ο εν λόγω κώδικας. 160 00:08:19,920 --> 00:08:22,970 >> Έτσι, η ζουμερά γραμμή σε αυτό το πρώτο προγράμματος είναι η τελευταία, printf, 161 00:08:22,970 --> 00:08:25,080 quote-unquote, hello world. 162 00:08:25,080 --> 00:08:30,670 Και κάλεσα το πράγμα μεταξύ Ποιος τελευταία φορά; 163 00:08:30,670 --> 00:08:31,285 Έτσι είναι ένα string. 164 00:08:31,285 --> 00:08:35,309 Και ένα string είναι μόνο η techie όρος για μια αλληλουχία 165 00:08:35,309 --> 00:08:37,169 χαρακτήρες, μια λέξη, μια φράση. 166 00:08:37,169 --> 00:08:39,380 Ακόμη και μια ενιαία επιστολή θα μπορούσε να είναι διπλά εισαγωγικά. 167 00:08:39,380 --> 00:08:41,840 Αλλά αυτό είναι μια ακολουθία από μηδέν ή περισσότερους χαρακτήρες. 168 00:08:41,840 --> 00:08:43,650 >> Backslash-n, όμως, φαίνεται λίγο περίεργο. 169 00:08:43,650 --> 00:08:46,290 Αλλά αυτό σήμαινε απλά κάτι απλό στον υπολογιστή. 170 00:08:46,290 --> 00:08:48,060 Τι είναι backslash-n; 171 00:08:48,060 --> 00:08:48,570 Νέα γραμμή. 172 00:08:48,570 --> 00:08:52,490 Έτσι, αυτό είναι μόνο η ειδική ακολουθία χαρακτήρες που ο κόσμος έχει αποφασίσει 173 00:08:52,490 --> 00:08:56,880 μέσα που μια αλλαγή γραμμής εκεί, επειδή ο compiler θα πάρει πραγματικά 174 00:08:56,880 --> 00:09:02,280 σύγχυση, συνήθως, αν, πολύ κατανοητό, αλλά λανθασμένα, απλά 175 00:09:02,280 --> 00:09:04,570 ξεκινήσει το χτύπημα Enter για να θέσει νέες γραμμές στον κώδικά σας. 176 00:09:04,570 --> 00:09:07,150 Θα πρέπει να είναι λίγο πιο ρητά με backslash-n. 177 00:09:07,150 --> 00:09:10,540 >> Και θα δείτε ότι υπάρχουν μερικές άλλες τέτοιες σχέδια για ειδικούς χαρακτήρες. 178 00:09:10,540 --> 00:09:14,340 Για παράδειγμα, αν θέλαμε να σας μυαλό να περιπλανηθεί σε μια υπόθεση γωνία, 179 00:09:14,340 --> 00:09:18,080 ας υποθέσουμε ότι ήθελα να εκτυπώσετε ένα διπλά εισαγωγικά στην οθόνη για 180 00:09:18,080 --> 00:09:21,840 οποιοδήποτε λόγο, που φαίνεται να είναι λίγο προβληματική, έτσι δεν είναι; 181 00:09:21,840 --> 00:09:24,990 Διότι, αν έβαλα ένα διπλό εισαγωγικό στην μέση του "Hello, World", για ο, τιδήποτε 182 00:09:24,990 --> 00:09:30,120 λόγο, γιατί φαίνεται ότι δυνητικά προβληματική; 183 00:09:30,120 --> 00:09:32,180 Σπάει το string. 184 00:09:32,180 --> 00:09:34,700 >> Ο compiler είναι απλά ένα πρόγραμμα. 185 00:09:34,700 --> 00:09:37,210 Ένα πρόγραμμα σαν compiler είναι ακριβώς πρόκειται να διαβάσει επάνω τον κωδικό σας προς τα κάτω, 186 00:09:37,210 --> 00:09:37,990 αριστερά προς τα δεξιά. 187 00:09:37,990 --> 00:09:41,850 Και αν θεωρεί ότι υπάρχουν τρεις διπλά εισαγωγικά αντί των δύο, δεν πρόκειται να γνωρίζετε 188 00:09:41,850 --> 00:09:45,210 αν εννοείτε ότι το πράγμα προς τα αριστερά θα πρέπει να είναι η χορδή, ή το πράγμα για να 189 00:09:45,210 --> 00:09:46,570 το δικαίωμα, ή το όλο θέμα. 190 00:09:46,570 --> 00:09:50,560 Είναι ασαφής, και έτσι ό, τι μια τυπική compiler θα κάνει είναι απλά φρικάρεις, 191 00:09:50,560 --> 00:09:53,710 και να σας δώσει κάποιο μήνυμα σφάλματος, και να σας κάνει να ασχοληθεί με το πρόβλημα. 192 00:09:53,710 --> 00:09:58,120 >> Έτσι, δεδομένου ότι backslash-n σημαίνει μια νέα γραμμή, τι θα ήταν το ένστικτό σας τώρα 193 00:09:58,120 --> 00:10:02,610 αρχίσει να είναι, αν ήθελε να συμπεριλάβει κάτι περίεργο σαν ένα διπλό 194 00:10:02,610 --> 00:10:06,210 παραθέσω μέσα σ 'αυτό διαφορετικά εισηγμένες στο χρηματιστήριο χορδών; 195 00:10:06,210 --> 00:10:07,640 Backslash-διπλά εισαγωγικά. 196 00:10:07,640 --> 00:10:09,630 Και έτσι θα δούμε αυτό είδους σχέδιο πάρα πολύ. 197 00:10:09,630 --> 00:10:12,490 >> Αν θέλετε να κάνετε κάτι λίγο παράξενο, θα διαπιστώσετε ότι η 198 00:10:12,490 --> 00:10:15,060 λύσεις που συχνά ακολουθούν ένα μοτίβο, και την ανάστροφη κάθετο 199 00:10:15,060 --> 00:10:17,150 υποδηλώνει μια ακολουθία διαφυγής. 200 00:10:17,150 --> 00:10:20,320 Και αυτό σημαίνει απλώς κάτι το ιδιαίτερο ότι πρέπει να αντιπροσωπεύουν σε ένα 201 00:10:20,320 --> 00:10:21,060 διαφορετικό τρόπο. 202 00:10:21,060 --> 00:10:23,830 Όσο για το πώς θα εκπροσωπεί μια ανάστροφη κάθετο, καλά, θα 203 00:10:23,830 --> 00:10:24,550 επανέλθω σε αυτό. 204 00:10:24,550 --> 00:10:26,930 Αλλά η απάντηση, πάρα πολύ, είναι στην πραγματικότητα λίγο προφανές. 205 00:10:26,930 --> 00:10:31,080 >> Οπότε ας εισαγάγει τώρα κάποια άλλα προγραμματιστικές δομές 206 00:10:31,080 --> 00:10:31,915 που είδατε στο Scratch. 207 00:10:31,915 --> 00:10:34,790 Πιθανόν να έχετε θεωρείται δεδομένη ήδη, αν έχετε ήδη βουτούσαν 208 00:10:34,790 --> 00:10:36,060 πρόβλημα που 0. 209 00:10:36,060 --> 00:10:40,950 Αλλά ας εισαγάγει τώρα το συντακτικό της C για την κατά τα άλλα αρκετά έξυπνο 210 00:10:40,950 --> 00:10:42,300 ιδέες, τουλάχιστον μερικά από αυτά. 211 00:10:42,300 --> 00:10:45,570 >> Έτσι, αυτή η έννοια μιας κατάστασης ή ένα υποκατάστημα, ενώ προηγουμένως θα 212 00:10:45,570 --> 00:10:49,330 εκπροσωπείται με κώδικα που έμοιαζε όπως αυτό στα αριστερά Scratch - 213 00:10:49,330 --> 00:10:52,200 αν το x είναι μικρότερο από το y, τότε το πω έτσι - 214 00:10:52,200 --> 00:10:56,760 αντ 'αυτού τώρα στο C - επιτρέψτε μου να ακονίσετε σε σχετικά με την απλούστερη περίπτωση - 215 00:10:56,760 --> 00:11:01,235 είμαστε απλώς πρόκειται να πω, αν, ανοίξτε παρένθεση, κάτι που είναι αλήθεια - ένα 216 00:11:01,235 --> 00:11:04,190 Boolean έκφραση πρόκειται να πάει όπου έχω την εν λόγω κατάσταση - 217 00:11:04,190 --> 00:11:08,170 στενή παρένθεση, στη συνέχεια, κάνει ό, τι είναι μέσα από τις αγκύλες. 218 00:11:08,170 --> 00:11:11,020 >> Μέχρι εδώ, επίσης, τα άγκιστρα είναι κάτι σαν το Scratch 219 00:11:11,020 --> 00:11:12,460 U-σχήματος κομμάτια του παζλ. 220 00:11:12,460 --> 00:11:14,890 Κάνε ό, τι υπάρχει μέσα σε αυτές τις αγκύλες. 221 00:11:14,890 --> 00:11:16,790 Στην περίπτωση αυτή, κάθετος κάθετος. 222 00:11:16,790 --> 00:11:19,720 Και παρατηρήσετε αυτό είναι ένα προς τα εμπρός κάθετος, δεν είναι μια ανάστροφη κάθετο. 223 00:11:19,720 --> 00:11:21,440 Κάθετο, κάθετος, για εκείνους που έχουν προγραμματιστεί 224 00:11:21,440 --> 00:11:23,370 πριν, απλά σημαίνει - 225 00:11:23,370 --> 00:11:24,190 Είναι απλά ένα σχόλιο. 226 00:11:24,190 --> 00:11:26,630 Ένα σχόλιο δεν είναι μια γραμμή του κώδικα, per se. 227 00:11:26,630 --> 00:11:30,200 Είναι μια σειρά από αγγλικά ότι εσείς, ο ανθρώπου, έχουν γράψει για τον εαυτό σας να 228 00:11:30,200 --> 00:11:33,540 ίσως να σας υπενθυμίσω να κάνουμε κάτι, να εξηγήσει στον εαυτό σας, για να εξηγήσει 229 00:11:33,540 --> 00:11:35,260 κάποιος άλλος, τι κωδικό σας κάνει. 230 00:11:35,260 --> 00:11:37,050 Είναι απλά ένα περιγραφικό σχόλιο. 231 00:11:37,050 --> 00:11:40,880 >> Τώρα, βέβαια, μπορούμε να έχουμε μια αμφίδρομη διακλάδωση του δρόμου ακριβώς με τον τρόπο αυτό, ένα 232 00:11:40,880 --> 00:11:43,930 τριγωνική διακλάδωση του δρόμου με τον τρόπο αυτό, και αν συνεχιστεί αυτό 233 00:11:43,930 --> 00:11:47,570 μοτίβο, μπορείτε να έχετε τεσσάρων κατευθύνσεων, πέντε κατευθύνσεων, έξι τρόπο πιρούνια στο δρόμο, αν 234 00:11:47,570 --> 00:11:50,150 θα πρέπει να χειριστεί, μάλιστα, ότι πολλές συνθήκες. 235 00:11:50,150 --> 00:11:52,010 Και παρατηρήσετε στη συνέχεια ο παραλληλισμός εδώ - 236 00:11:52,010 --> 00:11:55,070 if (συνθήκη), else if (συνθήκη), και το μόνο που είναι λίγο 237 00:11:55,070 --> 00:11:58,010 περίεργο είναι η τελευταία, η οποία είναι ακριβώς ότι άλλο. 238 00:11:58,010 --> 00:12:01,170 Αλλά και πάλι, αυτή είναι ταυτόσημη, εννοιολογικά, με ό, τι έχουμε κάνει 239 00:12:01,170 --> 00:12:04,690 ήδη, αν και η σύνταξη θα πάρει λίγο να συνηθίσει. 240 00:12:04,690 --> 00:12:07,730 >> Τώρα, σε αυτό το παράδειγμα, υπάρχουν κάποια άλλα παράξενα σύνταξη. 241 00:12:07,730 --> 00:12:11,220 Βλέπουμε printf και πάλι, ανοιχτή παρένθεση, και τη στενή παρένθεση. 242 00:12:11,220 --> 00:12:13,190 Και στο εσωτερικό του υπάρχει ένα string με. 243 00:12:13,190 --> 00:12:17,060 Οι παρενθέσεις, στο πλαίσιο της printf, πηγαίνετε στο αριστερό 244 00:12:17,060 --> 00:12:18,160 και το δικαίωμα αυτό; 245 00:12:18,160 --> 00:12:22,190 Τι περιγράφουν ότι αναφέρεται εγχόρδων, όπως γενικότερα; 246 00:12:22,190 --> 00:12:23,320 >> Γι 'αυτό είναι ένα επιχείρημα. 247 00:12:23,320 --> 00:12:26,620 Κάθε φορά που έχουν μια λειτουργία, όπως printf, και στη συνέχεια ένα ανοικτό και ένα παρένθ 248 00:12:26,620 --> 00:12:30,330 κοντά παρένθ και κάτι μέσα της αυτό, είτε πρόκειται για ένα string, ή 249 00:12:30,330 --> 00:12:34,420 ακέραιος, ή οτιδήποτε άλλο, το πράγμα μεταξύ οι παρενθέσεις καλείται 250 00:12:34,420 --> 00:12:35,110 ένα επιχείρημα. 251 00:12:35,110 --> 00:12:37,910 >> Και το επιχείρημα αυτό επηρεάζει μόνο η συμπεριφορά της συνάρτησης. 252 00:12:37,910 --> 00:12:39,990 Σε αυτή την περίπτωση, είναι σαφές πως αρκετά. 253 00:12:39,990 --> 00:12:44,480 x 00:12:47,720 Και printf πρόκειται να εκτυπώσετε ακριβώς αυτό. 255 00:12:47,720 --> 00:12:51,590 Γιατί σίγουρα, τα χρόνια πριν από πρόσωπο που εφαρμόστηκαν είχαν printf καμία ιδέα 256 00:12:51,590 --> 00:12:55,000 ό, τι τα ανθρώπινα διάδοχοί τους υπήρξαν πρόκειται να χρησιμοποιήσετε για την printf. 257 00:12:55,000 --> 00:12:58,610 Έτσι, γι 'αυτό και τα επιχειρήματα υπάρχουν, επηρεάζουν τη συμπεριφορά μετά από μια συνάρτησης 258 00:12:58,610 --> 00:12:59,450 έχουν γραφτεί. 259 00:12:59,450 --> 00:13:00,780 >> Τώρα, Boolean έκφραση. 260 00:13:00,780 --> 00:13:02,470 Έχουμε δει αυτά πριν από το Scratch. 261 00:13:02,470 --> 00:13:06,680 Αποδεικνύεται στην C μπορείτε επίσης να "ή" μαζί, να το πω έτσι. 262 00:13:06,680 --> 00:13:10,930 Δύο κατακόρυφες μπάρες σημαίνει ότι αυτό το μπλοκ του κώδικα, αυτό να το κάνετε αυτό, θα 263 00:13:10,930 --> 00:13:15,350 εκτελέσει, αν η πρώτη συνθήκη είναι αληθής ή η δεύτερη συνθήκη είναι αληθής. 264 00:13:15,350 --> 00:13:17,710 Και ακόμα κι αν δεν θα μπορούσε να γίνει Αυτό το Scratch, θα μπορούσε πράγματι 265 00:13:17,710 --> 00:13:20,580 να το κάνετε αυτό στο Scratch, και μπορείτε επίσης να εκφράσουν τον εαυτό σας με διαφορετικό τρόπο - 266 00:13:20,580 --> 00:13:25,300 εάν η πρώτη κατάσταση και η δεύτερη προϋπόθεση είναι αλήθεια, τότε κάνει ό, τι είναι 267 00:13:25,300 --> 00:13:27,160 μέσα από τα άγκιστρα. 268 00:13:27,160 --> 00:13:31,210 >> Και ακριβώς όπως Παρεμπιπτόντως, ο λόγος που είναι ένα διπλό ampersand και ένα διπλό 269 00:13:31,210 --> 00:13:34,610 κάθετη γραμμή, θα δούμε τελικά ότι μια ενιαία κάθετη γραμμή και 270 00:13:34,610 --> 00:13:38,710 ενιαίο εμπορικό και στην πραγματικότητα έχουν διαφορετικές δηλαδή στο C. Έτσι, για τώρα, 271 00:13:38,710 --> 00:13:41,840 η αλληλεπικάλυψη των συμβόλων είναι σκόπιμη. 272 00:13:41,840 --> 00:13:45,070 >> Έτσι, ας εισάγουν, εν συντομία, Αυτό το άλλο κομμάτι της σύνταξης. 273 00:13:45,070 --> 00:13:48,940 Αυτό δεν είναι αρκετά μεταφέρουν στο Scratch, αλλά ισχυρίζονται ότι μπορώ 274 00:13:48,940 --> 00:13:55,190 την εφαρμογή της έννοιας της if else, αν αλλιώς, αν άλλος, αν άλλος δήλωση χρησιμοποιώντας 275 00:13:55,190 --> 00:13:56,760 κάτι που ονομάζεται μια δήλωση switch. 276 00:13:56,760 --> 00:14:00,820 Και ο μόνος λόγος που αυτό υπάρχει πραγματικά είναι να σας δώσει ακριβώς, τον προγραμματιστή, ένα 277 00:14:00,820 --> 00:14:05,470 ελαφρώς διαφορετικό τρόπο για την επίλυση ορισμένων πρόβλημα, ακόμα και αν λογικά 278 00:14:05,470 --> 00:14:07,340 δεν σας δίνει κανένα νέες δυνατότητες. 279 00:14:07,340 --> 00:14:08,530 >> Με αυτό εννοώ αυτό. 280 00:14:08,530 --> 00:14:13,330 Όταν λέτε διακόπτη, και στη συνέχεια ένα κενό, και στη συνέχεια ένα ζεύγος παρενθέσεων, στο εσωτερικό 281 00:14:13,330 --> 00:14:14,570 εκ των οποίων πηγαίνει μια έκφραση - 282 00:14:14,570 --> 00:14:18,010 και αυτό θα μπορούσε να είναι λίγο μη προφανής σε πρώτη φάση, αλλά αυτό δεν αποτελεί επιχείρημα, 283 00:14:18,010 --> 00:14:20,680 τεχνικά, επειδή ο διακόπτης δεν είναι μια συνάρτηση. 284 00:14:20,680 --> 00:14:24,230 Έτσι, για τώρα, απλά να υποθέσουμε ότι είμαστε χρησιμοποιώντας παρενθέσεις σε διαφορετικούς τόπους 285 00:14:24,230 --> 00:14:25,250 για διαφορετικούς λόγους. 286 00:14:25,250 --> 00:14:29,310 >> Έτσι διακόπτη στην έκφραση σημαίνει ότι μπορώ να θέσει μια μεταβλητή μέσα από αυτά 287 00:14:29,310 --> 00:14:31,350 παρενθέσεις όπου λέει την έκφραση. 288 00:14:31,350 --> 00:14:33,090 Και στη συνέχεια, αν η μεταβλητή - 289 00:14:33,090 --> 00:14:35,400 ας υποθέσουμε ότι λέγεται x, και είναι απλά ένας ακέραιος - 290 00:14:35,400 --> 00:14:38,900 Μπορώ να απαριθμήσω στη συνέχεια σε slide μου εδώ κάτι σαν αυτό. 291 00:14:38,900 --> 00:14:41,690 Αν το x είναι μεταβλητή μου, και εγώ θέλουν να κάνουν κάτι, αν x 292 00:14:41,690 --> 00:14:43,480 ισούται με 1, μπορώ να το κάνω. 293 00:14:43,480 --> 00:14:46,660 >> Αν μου αντί να θέλουν να κάνουν κάτι αν το x είναι 2, μπορώ να το κάνω. 294 00:14:46,660 --> 00:14:50,390 Αλλιώς, αν θέλω να κάνω κάτι άλλο εξ ολοκλήρου, μπορώ να έχω μια υπόθεση προεπιλεγμένη 295 00:14:50,390 --> 00:14:52,750 περίπτωση που κάνω αυτό το άλλο πράγμα. 296 00:14:52,750 --> 00:14:58,730 Έτσι, με αυτή την έννοια, είναι ισοδύναμο με αν x ισούται ισούται με 1, αλλιώς αν άλλος, 297 00:14:58,730 --> 00:15:01,150 αλλά το αναφέρω αυτό τώρα μόνο και μόνο επειδή θα δούμε πάλι. 298 00:15:01,150 --> 00:15:03,720 Αλλά για τώρα, απλά να ξέρετε ότι υπάρχει. 299 00:15:03,720 --> 00:15:04,220 >> Εντάξει. 300 00:15:04,220 --> 00:15:07,660 Έτσι, αυτά τα τελευταία δύο είναι λίγο πιο συγκρότημα με την πρώτη ματιά, αλλά το κάνουν 301 00:15:07,660 --> 00:15:09,385 κάτι αρκετά απλή. 302 00:15:09,385 --> 00:15:14,410 Α για βρόχο C είναι ένα κομμάτι του κώδικα που απλά κάνει κάτι ξανά και 303 00:15:14,410 --> 00:15:15,330 ξανά και ξανά. 304 00:15:15,330 --> 00:15:17,590 Και το μόνο ενοχλητικό πράγμα για αυτό είναι αυτό είναι ότι είναι λίγο αινιγματικό 305 00:15:17,590 --> 00:15:21,380 για να εκφράσουν τον εαυτό σας σε αυτή την κυκλική μοτίβο, αλλά ο κόσμος τυποποιηθεί 306 00:15:21,380 --> 00:15:22,450 τον ακόλουθο τρόπο. 307 00:15:22,450 --> 00:15:25,760 >> Όταν χρησιμοποιείτε ένα for loop, έχετε ένα ζεύγος παρενθέσεων πάλι. 308 00:15:25,760 --> 00:15:27,570 Και παρατηρήσετε τα δύο ερωτηματικά εκεί. 309 00:15:27,570 --> 00:15:34,380 Τα δύο ερωτηματικά ξεχωριστά τρεις διαφορετικές εκφράσεις στο εσωτερικό της 310 00:15:34,380 --> 00:15:35,020 παρενθέσεις. 311 00:15:35,020 --> 00:15:37,170 Το ένα είναι το λεγόμενο initializations. 312 00:15:37,170 --> 00:15:38,830 Το ένα είναι η λεγόμενη κατάσταση. 313 00:15:38,830 --> 00:15:40,210 Και ένα είναι το λεγόμενο ενημερώσεις. 314 00:15:40,210 --> 00:15:43,240 >> Κοίταξε στο αφηρημένο, αυτό είναι εντελώς μη-προφανής, οπότε ας ρίξουμε μια ματιά 315 00:15:43,240 --> 00:15:44,630 σε ένα συγκεκριμένο παράδειγμα. 316 00:15:44,630 --> 00:15:46,720 Το Scratch είχαμε ένα μπλοκ επανάληψης. 317 00:15:46,720 --> 00:15:50,670 Και αυτό το μπλοκ, δήλωσε επαναλάβετε 10 φορές, ας πούμε "Hello, World". Επιτρέψτε μου να διεκδικούν 318 00:15:50,670 --> 00:15:53,810 τώρα, και θα επανέλθουμε σε αυτό, και Αυτό, επίσης, θα πάρετε περισσότερο εξοικειωμένοι με 319 00:15:53,810 --> 00:15:57,345 που πριν από καιρό, το αντίστοιχο C κώδικας θα μπορούσε να λεχθεί ότι είναι αυτό - 320 00:15:57,345 --> 00:16:02,320 ένα για τη δήλωση και ένα χώρο, ένα ζευγάρι παρενθέσεις, παρατηρήσετε τα ερωτηματικά στην 321 00:16:02,320 --> 00:16:05,730 εκεί, οι οποίες διαχωρίζουν τρεις διακριτές τα πράγματα, η προετοιμασία, οι 322 00:16:05,730 --> 00:16:07,320 κατάσταση, και η ενημέρωση. 323 00:16:07,320 --> 00:16:08,840 >> Και να μαντέψω τι το πρώτο που κάνει. 324 00:16:08,840 --> 00:16:10,690 Int i = 0. 325 00:16:10,690 --> 00:16:15,120 Όσον αφορά τραχύ άλλα λόγια, ό, τι είναι ότι κάνει για μας, ίσως; 326 00:16:15,120 --> 00:16:15,590 Έτσι, ναι. 327 00:16:15,590 --> 00:16:19,630 Είναι δηλώνοντας μια μεταβλητή που ονομάζεται i, και αυτό είναι που δίνει ό, τι τιμή; 328 00:16:19,630 --> 00:16:20,220 0. 329 00:16:20,220 --> 00:16:24,280 Γι 'αυτό είναι η δημιουργία ενός ονομάζεται μεταβλητή Ι, την αποθήκευση της τιμής μηδέν σε αυτό. 330 00:16:24,280 --> 00:16:26,420 Αυτό είναι το λεγόμενο προετοιμασίας. 331 00:16:26,420 --> 00:16:29,360 >> Εντάξει, τώρα ισχυρίστηκε ενώπιον ότι η μέση πράγμα, i 332 00:16:29,360 --> 00:16:31,760 <10, είναι η κατάσταση. 333 00:16:31,760 --> 00:16:32,730 Έτσι, αυτό που κάνει; 334 00:16:32,730 --> 00:16:36,560 Λοιπόν, τι ο βρόχος for κάνει όταν πρόγραμμα με ένα for loop εκτελείται, είναι 335 00:16:36,560 --> 00:16:41,050 κάθε φορά που ο υπολογιστής λειτουργεί μέσω Αυτός ο βρόχος, πάνω προς τα κάτω, από πάνω προς 336 00:16:41,050 --> 00:16:43,740 κάτω, ακριβώς όπως εσείς κάνατε όταν μετρώντας τον εαυτό σας και να καθίσει, 337 00:16:43,740 --> 00:16:47,090 ξανά και ξανά και ξανά, ο υπολογιστής θα 338 00:16:47,090 --> 00:16:48,560 να ελέγξει την εν λόγω προϋπόθεση. 339 00:16:48,560 --> 00:16:51,140 Και αν το i είναι μικρότερο από 10, αυτό θα το κάνω ξανά. 340 00:16:51,140 --> 00:16:53,100 Αν το Ι είναι μικρότερο από 10, αυτό θα το κάνω ξανά. 341 00:16:53,100 --> 00:16:55,030 Αν το Ι είναι μικρότερο από δέκα, αυτό θα το κάνω ξανά. 342 00:16:55,030 --> 00:16:57,330 Έτσι ώστε να φαίνεται να δείχνουν ότι ελπίζω να αλλάζει. 343 00:16:57,330 --> 00:16:59,010 Διαφορετικά, θα είχαμε ένα άπειρο βρόχο. 344 00:16:59,010 --> 00:17:02,590 Και πράγματι, i αλλάζει, επειδή η τελευταίο πράγμα μετά το ερωτηματικό υπάρχει 345 00:17:02,590 --> 00:17:05,569 είναι η κάπως αινιγματικά σύνταξη i + +. 346 00:17:05,569 --> 00:17:07,630 Αλλά όσοι από εσάς έχετε κάνει αυτό πριν, αυτό σημαίνει απλώς 347 00:17:07,630 --> 00:17:08,609 πολύ απλά τι; 348 00:17:08,609 --> 00:17:09,730 >> ΜΑΘΗΤΕΣ: [παρεμβάλλοντας ΦΩΝΕΣ]. 349 00:17:09,730 --> 00:17:10,740 >> DAVID MALAN: Προσθέστε 1 έως i. 350 00:17:10,740 --> 00:17:11,819 Προσαύξηση i. 351 00:17:11,819 --> 00:17:13,910 Έτσι, είδαμε ένα παζλ Scratch κομμάτι για το ότι, στην πραγματικότητα. 352 00:17:13,910 --> 00:17:18,230 Δεν μοιάζει με i + +, αλλά ότι ακριβώς σημαίνει, πολύ απλά, αυξήσετε το 353 00:17:18,230 --> 00:17:24,040 τιμή i κατά 1 κάθε φορά που το κάνετε αυτό. 354 00:17:24,040 --> 00:17:26,910 Έτσι, κυριολεκτικά, μπορείτε να ξεκινήσετε από αρχικοποίηση i στο 0. 355 00:17:26,910 --> 00:17:29,520 Μπορείτε στη συνέχεια ελέγξτε την κατάστασή σας. 356 00:17:29,520 --> 00:17:31,070 Είναι 0 λιγότερο από το 10; 357 00:17:31,070 --> 00:17:31,730 Ναι. 358 00:17:31,730 --> 00:17:32,910 Περνάμε μέσα από το βρόχο. 359 00:17:32,910 --> 00:17:35,150 >> Το επόμενο πράγμα που θα διεκδικήσει τον υπολογιστή πρόκειται να κάνουμε είναι ότι πρόκειται 360 00:17:35,150 --> 00:17:35,910 να θ αυξήσετε. 361 00:17:35,910 --> 00:17:37,080 Γι 'αυτό και τώρα είναι 1. 362 00:17:37,080 --> 00:17:37,940 Ελέγχει την κατάσταση. 363 00:17:37,940 --> 00:17:39,290 1 είναι μικρότερη από 10; 364 00:17:39,290 --> 00:17:39,930 Φυσικά. 365 00:17:39,930 --> 00:17:41,030 Έτσι το κάνει πάλι. 366 00:17:41,030 --> 00:17:43,580 Τότε προσαυξήσεις i + + 2. 367 00:17:43,580 --> 00:17:44,610 2 είναι λιγότερο από 10; 368 00:17:44,610 --> 00:17:45,230 Ναι. 369 00:17:45,230 --> 00:17:46,670 Και ξανά και ξανά και ξανά. 370 00:17:46,670 --> 00:17:50,070 Και τελικά, λόγω της συν-plussing, έχουμε την ευκαιρία να i ισούται με το 10. 371 00:17:50,070 --> 00:17:51,675 10 είναι λιγότερο από 10; 372 00:17:51,675 --> 00:17:52,990 Λοιπόν, προφανώς δεν είναι. 373 00:17:52,990 --> 00:17:55,320 Και αυτό είναι το σημείο στο οποίο ο βρόχος for σταματά ακριβώς. 374 00:17:55,320 --> 00:17:58,320 Και αν έχετε περισσότερο κώδικα για το οθόνη προς τα κάτω κάτω, ο υπολογιστής 375 00:17:58,320 --> 00:18:01,620 έσοδα για να τρέξει τον κώδικα αντ 'αυτού. 376 00:18:01,620 --> 00:18:05,380 >> Έτσι και πάλι, ακόμη και αν αυτό πρόκειται να φαίνονται και να αισθάνονται λίγο περίεργα 377 00:18:05,380 --> 00:18:07,830 πρώτη, σίγουρα για όσους από εσάς δεν έχουν προγραμματιστεί πριν, 378 00:18:07,830 --> 00:18:11,640 κυριολεκτικά μειώνει εννοιολογικά σε ό, τι κατά τα άλλα ένα πολύ 379 00:18:11,640 --> 00:18:14,330 απλή παζλ κομμάτι στο Scratch. 380 00:18:14,330 --> 00:18:19,130 >> Εντάξει, είχα υποσχεθεί ότι εκεί έπαιρνα είναι άλλα ανάλογα στο Scratch. 381 00:18:19,130 --> 00:18:20,060 Υπάρχει αυτό πάρα πολύ. 382 00:18:20,060 --> 00:18:21,700 Και είδαμε αυτό εν συντομία την τελευταία φορά. 383 00:18:21,700 --> 00:18:23,530 Αλλά να θυμάστε πάντα το μπλοκάρουν το μηδέν; 384 00:18:23,530 --> 00:18:25,490 Κάνει κάτι για πάντα; 385 00:18:25,490 --> 00:18:27,470 I υποστήριξε ότι θα μπορούσαν να εφαρμόσουν Αυτό με τον τρόπο αυτό. 386 00:18:27,470 --> 00:18:29,740 Και μπορείτε να εφαρμόσουν στην πράξη αυτή σε ένα σωρό διαφορετικούς τρόπους. 387 00:18:29,740 --> 00:18:34,260 >> Αλλά ο βρόχος, ενώ είναι απλά ένα διαφορετικό τρόπο με τον C να εκφράσουν τον εαυτό σας. 388 00:18:34,260 --> 00:18:37,080 Στο τέλος της ημέρας, δεν μπορείτε να κάνετε τίποτα με ένα βρόγχο while που 389 00:18:37,080 --> 00:18:38,360 δεν μπορεί με ένα for loop. 390 00:18:38,360 --> 00:18:41,430 Έτσι έχουμε φτάσει στο τέλος της ημέρα λειτουργικώς το ίδιο. 391 00:18:41,430 --> 00:18:43,840 Αλλά σας επιτρέπει να εκφραστείτε λίγο διαφορετικά σε 392 00:18:43,840 --> 00:18:44,850 τον ακόλουθο τρόπο. 393 00:18:44,850 --> 00:18:49,720 >> Με τον βρόχο while, είναι αυτό που είναι σε παρενθέσεις που είναι ελέγχονται εκ νέου και 394 00:18:49,720 --> 00:18:51,050 ξανά και ξανά. 395 00:18:51,050 --> 00:18:55,100 Και ευθύς ως η έκφραση είναι ψευδής, τότε ο βρόχος σταματά να εκτελεί, 396 00:18:55,100 --> 00:18:57,890 και ο υπολογιστής προχωρεί στην τρέχει ανεξάρτητα από άλλο κωδικό σας 397 00:18:57,890 --> 00:18:59,230 έχετε στο αρχείο σας. 398 00:18:59,230 --> 00:19:02,180 >> Αλλά αυτό που είναι ενδιαφέρον εδώ που κυριολεκτικά πληκτρολογήσει αλήθεια. 399 00:19:02,180 --> 00:19:06,680 Και αλήθεια είναι ένας τύπος Boolean τιμή, μια αληθινή ή ψεύτικη αξία. 400 00:19:06,680 --> 00:19:09,750 Έτσι, θα μπορούσε να ισχύει γίνει ποτέ false αν έχω κυριολεκτικά 401 00:19:09,750 --> 00:19:11,970 είναι σκληρό κωδικοποιούνται στο πρόγραμμα μου; 402 00:19:11,970 --> 00:19:12,470 Έτσι, δεν έχει. 403 00:19:12,470 --> 00:19:13,730 Είναι λίγο περίεργο το γεγονός ότι το έκανα αυτό. 404 00:19:13,730 --> 00:19:15,190 Αλλά αλήθεια είναι αλήθεια. 405 00:19:15,190 --> 00:19:16,320 Δεν υπάρχει συν-plussing. 406 00:19:16,320 --> 00:19:17,820 Δεν υπάρχει καμία χρήση των μεταβλητών εδώ. 407 00:19:17,820 --> 00:19:22,740 Έτσι, γιατί σκληρά κωδικοποιούνται ενώ η αλήθεια, αυτό βρόχου είναι πάντα πρόκειται να αξιολογήσει 408 00:19:22,740 --> 00:19:24,090 ξανά και ξανά και ξανά. 409 00:19:24,090 --> 00:19:27,660 >> Πώς, λοιπόν, πολλές φορές είναι hello world πρόκειται να εκτυπώσετε στην οθόνη; 410 00:19:27,660 --> 00:19:28,170 Forever. 411 00:19:28,170 --> 00:19:31,980 Μια άπειρες φορές μέχρι να μήτρες μπαταρία ή κάποια άλλη εξωτερική 412 00:19:31,980 --> 00:19:32,730 γεγονός συμβαίνει. 413 00:19:32,730 --> 00:19:35,880 Έτσι, αυτό είναι πιθανόν να μην είναι το καλύτερο πρόγραμμα να γράψω, γιατί αν ο χρήστης 414 00:19:35,880 --> 00:19:38,660 δεν μπορεί ποτέ να εγκαταλείψει το πρόγραμμά σας, είναι πιθανόν να μην είναι αυτό που προορίζεται. 415 00:19:38,660 --> 00:19:41,070 >> Αλλά μερικές φορές, τα προγράμματα θα πρέπει να έχουν έναν άπειρο βρόχο. 416 00:19:41,070 --> 00:19:44,050 Για παράδειγμα, αν ο υπολογιστής σας έχει μια ρολόι σε αυτό, σίγουρα θα ήταν 417 00:19:44,050 --> 00:19:48,130 ωραίο αν το ρολόι σας αυτό δεν κρατήσει την ενημέρωση η ίδια για πάντα, έστω και μια φορά 418 00:19:48,130 --> 00:19:50,500 δεύτερη ή μία φορά το λεπτό ή κάτι τέτοιο. 419 00:19:50,500 --> 00:19:53,690 Έτσι, ακόμα και άπειρη βρόχους έχουν τη θέση τους. 420 00:19:53,690 --> 00:19:54,360 >> Εντάξει. 421 00:19:54,360 --> 00:19:55,190 Τέλος, αυτό το ένα. 422 00:19:55,190 --> 00:19:57,770 Και αυτό είναι ένα λίγο διαφορετικό λειτουργικά, και θα επανέλθει στο 423 00:19:57,770 --> 00:19:59,460 Αυτό κατά πάσα πιθανότητα στο Pset 1. 424 00:19:59,460 --> 00:20:02,370 Αλλά υπάρχει ένα άλλο είδος βρόχου ονομάζεται κάνουμε, ενώ βρόχο. 425 00:20:02,370 --> 00:20:07,100 Και η μόνη διαφορά εδώ μεταξύ α κάνει while loop και, ας πούμε, ένα βρόχο, ενώ, 426 00:20:07,100 --> 00:20:11,120 είναι ότι η κατάσταση ελέγχεται δεν πριν να εκτελέσει τον κώδικα, αλλά μετά 427 00:20:11,120 --> 00:20:12,080 θα εκτελέσει τον κώδικα. 428 00:20:12,080 --> 00:20:15,380 Έτσι, στην κορυφή του, ενώ βρόχο, ενώ το κάνει, ενώ 429 00:20:15,380 --> 00:20:16,560 ελέγχει ότι στο κάτω μέρος. 430 00:20:16,560 --> 00:20:21,370 >> Και αυτό σημαίνει απλά ότι το βρόχο while θα εκτελέσει συνήθως περισσότερες φορές 431 00:20:21,370 --> 00:20:24,630 ή λιγότερες φορές από ό, τι ένα βρόγχο while; 432 00:20:24,630 --> 00:20:30,810 Δυνητικά περισσότερες φορές, γιατί ένα do while loop είναι σαφώς λέει να το κάνετε αυτό, 433 00:20:30,810 --> 00:20:34,600 μόνο μετά από ποιο σημείο να ελέγχετε Εάν η κατάσταση στο εσωτερικό του 434 00:20:34,600 --> 00:20:35,980 παρενθέσεις είναι αλήθεια. 435 00:20:35,980 --> 00:20:37,940 >> Έτσι, θα δούμε πάλι αυτό πιθανότατα Pset 1. 436 00:20:37,940 --> 00:20:41,150 Αν ποτέ θέλετε να κάνετε κάτι σε τουλάχιστον μία φορά και στη συνέχεια ίσως και λίγο περισσότερο 437 00:20:41,150 --> 00:20:43,350 φορές, αυτό είναι ένα καλό κατασκευή να χρησιμοποιήσετε. 438 00:20:43,350 --> 00:20:46,970 Αλλά ένα βρόχο, ενώ, αντίθετα, θα ελέγξτε την κατάσταση του πρώτου. 439 00:20:46,970 --> 00:20:50,660 Και αυτό είναι όλο για τους βρόχους σε C, δεν ενώ, παράλληλα, και για βρόχους. 440 00:20:50,660 --> 00:20:54,700 Και πάλι, θα χαρτογραφήσει πολύ ωραία πλάτη να Ξυστό, εκτός από αυτό δεν 441 00:20:54,700 --> 00:20:57,350 αρκετά έχουν την ίδια ανάλογο στο μηδέν. 442 00:20:57,350 --> 00:20:58,880 >> Λοιπόν, σχετικά με το πώς, τώρα, οι μεταβλητές; 443 00:20:58,880 --> 00:21:02,600 Έτσι, αυτό είναι το πώς θα δηλώσει μια μεταβλητή συντακτικά τις προάλλες. 444 00:21:02,600 --> 00:21:06,440 Είχα μια int, την οποία υποστήριξε είναι ένας ακέραιος. 445 00:21:06,440 --> 00:21:09,690 Είχα τότε μια μεταβλητή που ονομάζεται μετρητή, και στη συνέχεια ένα ερωτηματικό. 446 00:21:09,690 --> 00:21:11,070 Έτσι τι είναι αυτή η γραμμή κώδικα κάνει; 447 00:21:11,070 --> 00:21:14,540 Αυτό είναι, πολύ απλά, δηλώνοντας μια μεταβλητή - 448 00:21:14,540 --> 00:21:17,940 δηλαδή, ζητώντας από τον υπολογιστή σας, να μου δώσει μέρος της μνήμης, να μου δώσει κάποιες bits - σε 449 00:21:17,940 --> 00:21:19,450 την οποία μπορώ να αποθηκεύσετε ό, τι; 450 00:21:19,450 --> 00:21:20,300 Μια int. 451 00:21:20,300 --> 00:21:23,570 Και το ερωτηματικό σημαίνει απλώς τέλος της γραμμής του κώδικα. 452 00:21:23,570 --> 00:21:25,500 >> Τώρα, η δεύτερη γραμμή είναι πιθανώς αρκετά guessable. 453 00:21:25,500 --> 00:21:29,710 Τι είναι το μετρητή = 0? Κάνεις; 454 00:21:29,710 --> 00:21:31,690 Είναι ανάθεση 0 να αντιμετωπίσει. 455 00:21:31,690 --> 00:21:33,470 Και έτσι αυτό είναι το άλλο πράγμα αυτό είναι λίγο ενοχλητικό 456 00:21:33,470 --> 00:21:34,540 σε σχέση με, ας πούμε, την άλγεβρα. 457 00:21:34,540 --> 00:21:39,110 Ότι στην άλγεβρα, το σύμβολο της ισότητας μέσα ισούται, εδώ στο C, η αρχή της ίσης 458 00:21:39,110 --> 00:21:40,470 πρόσημο σημαίνει εκχώρηση. 459 00:21:40,470 --> 00:21:45,380 Έτσι, αυτό σημαίνει να θέσει ό, τι είναι σχετικά με το δικαίωμα σε ό, τι είναι στα αριστερά. 460 00:21:45,380 --> 00:21:49,030 Και θα δούμε ένα άλλο σύμβολο, ισούται ισούται, όταν θέλουμε πραγματικά να δοκιμάσουν 461 00:21:49,030 --> 00:21:50,570 για την ποιότητα, κάπως ενοχλητικά. 462 00:21:50,570 --> 00:21:52,590 >> Αλλά αυτό είναι λίγο αναποτελεσματική. 463 00:21:52,590 --> 00:21:55,090 Είναι το είδος των ενοχλητικών ότι έχω για να δηλώσει μια μεταβλητή και 464 00:21:55,090 --> 00:21:56,110 στη συνέχεια να δώσει μια τιμή. 465 00:21:56,110 --> 00:21:59,380 Έτσι C επιτρέπει στην πραγματικότητα μας απλουστευθεί αυτή και μόλις τα κάνει όλα με τη μία. 466 00:21:59,380 --> 00:22:01,330 Μπορείτε να δηλώσετε τη μεταβλητή στα αριστερά. 467 00:22:01,330 --> 00:22:04,590 Μπορείτε να κάνετε ακόμα την ανάθεση σχετικά με την ακριβώς δίπλα από τη θέση ότι ίσον 468 00:22:04,590 --> 00:22:05,030 η μέση. 469 00:22:05,030 --> 00:22:08,740 Έτσι, στο τέλος της ημέρας, τα δύο αυτά ισοδύναμο, αλλά αυτό, ειλικρινά, 470 00:22:08,740 --> 00:22:11,840 Είναι ίσως η καλύτερη συνήθεια να μπει μόνο και μόνο επειδή είναι λίγο λιγότερο 471 00:22:11,840 --> 00:22:15,040 κώδικα, είναι λίγο πιο εύκολο να διαβάσει, και σφίγγει ακριβώς επάνω 472 00:22:15,040 --> 00:22:17,470 κωδικό σας, να το πω έτσι. 473 00:22:17,470 --> 00:22:22,120 >> Οποιεσδήποτε ερωτήσεις μέχρι στιγμής στους βρόχους, για τις μεταβλητές, σχετικά με τις συνθήκες, σε 474 00:22:22,120 --> 00:22:27,001 Booleans, είτε τεχνικά ή εννοιολογικά; 475 00:22:27,001 --> 00:22:28,010 Εντάξει. 476 00:22:28,010 --> 00:22:30,690 Μέχρι τώρα αυτό το επόμενο παίρνει λίγο πιο ενδιαφέρουσα. 477 00:22:30,690 --> 00:22:34,790 Και αυτό είναι το παράδειγμα ανέχομαι τελευταία διάστημα που χαρτογραφεί μόνο ένα παράδειγμα Scratch 478 00:22:34,790 --> 00:22:35,820 πάνω στο C. 479 00:22:35,820 --> 00:22:36,580 >> Έτσι, μια λειτουργία. 480 00:22:36,580 --> 00:22:38,110 Με άλλα λόγια, τι είναι μια συνάρτηση; 481 00:22:38,110 --> 00:22:42,900 482 00:22:42,900 --> 00:22:44,350 Πήρε να είναι πιο τολμηροί με την απάντησή σας. 483 00:22:44,350 --> 00:22:45,020 Τι είναι μια συνάρτηση; 484 00:22:45,020 --> 00:22:46,320 >> ΦΟΙΤΗΤΗΣ: Μήπως κάτι. 485 00:22:46,320 --> 00:22:46,780 >> DAVID MALAN: Τι είναι αυτό; 486 00:22:46,780 --> 00:22:48,000 >> ΦΟΙΤΗΤΗΣ: Μήπως κάτι. 487 00:22:48,000 --> 00:22:48,710 >> DAVID MALAN: Μήπως κάτι. 488 00:22:48,710 --> 00:22:49,000 OK. 489 00:22:49,000 --> 00:22:49,590 Θα ξεκινήσουμε από εκεί. 490 00:22:49,590 --> 00:22:51,270 Έτσι, μια λειτουργία κάνει κάτι. 491 00:22:51,270 --> 00:22:55,160 Έτσι, αυτό είναι ένα κομμάτι του κώδικα που είναι ουσιαστικά εφαρμοστεί αλλού, που 492 00:22:55,160 --> 00:22:56,620 πράγματι κάνει κάτι. 493 00:22:56,620 --> 00:23:00,180 Τώρα, αυτό που έχει ενδιαφέρον σχετικά με μια λειτουργία είναι ότι μπορεί να πάρει εισόδου, 494 00:23:00,180 --> 00:23:02,710 και μπορεί να παράγει έξοδο. 495 00:23:02,710 --> 00:23:05,090 Και ας πραγματικότητα να λάβει μια ματιά σε αυτό. 496 00:23:05,090 --> 00:23:09,030 >> Έτσι, ο άνθρωπος πίσω από την κουρτίνα ήταν σκόπιμη μια στιγμή πριν. 497 00:23:09,030 --> 00:23:10,320 Εδώ έχουμε ένα τραπέζι. 498 00:23:10,320 --> 00:23:13,010 Αλλά ας υποθέσουμε ότι αυτό πράγματι αντιπροσωπεύει ένα μεγάλο κουτί. 499 00:23:13,010 --> 00:23:14,940 Έτσι, αυτό είναι το λεγόμενο μαύρο κουτί. 500 00:23:14,940 --> 00:23:19,800 Και σε γενικές γραμμές, στο σχεδιασμό, στον υπολογιστή επιστήμη, μαύρα κουτιά αναφερθώ μόνο σε 501 00:23:19,800 --> 00:23:22,510 κομμάτια της λειτουργικότητας ότι κάποιος έχει υλοποιηθεί, και δεν έχετε 502 00:23:22,510 --> 00:23:26,140 οπωσδήποτε να γνωρίζει ή δεν ενδιαφέρεται πώς είναι εφαρμοστεί κάτω από το καπό. 503 00:23:26,140 --> 00:23:28,960 Απλά νοιάζει ότι αυτό το μαύρο κουτί, που θα αρχίσουν τώρα να καλέσει ένα 504 00:23:28,960 --> 00:23:30,730 λειτουργία, κάνει κάτι. 505 00:23:30,730 --> 00:23:34,710 >> Έτσι, για παράδειγμα, εάν αυτό το μαύρο κουτί το στάδιο εδώ αντιπροσωπεύει printf, ένα 506 00:23:34,710 --> 00:23:38,040 λειτουργία, γνωρίζω από προηγούμενα παραδείγματα η οποία λαμβάνει printf ένα ή περισσότερα 507 00:23:38,040 --> 00:23:40,910 επιχειρήματα, και η πρώτη από αυτές επιχειρήματα θα πρέπει να είναι ένα string, όπως 508 00:23:40,910 --> 00:23:44,780 "Hello, World". Λοιπόν, αν είμαι το πρόσωπο γράφοντας το πρόγραμμα, και θέλω 509 00:23:44,780 --> 00:23:50,460 να χρησιμοποιούν printf, Εγώ, για παράδειγμα, θα μπορούσε πάρτε ένα κομμάτι λευκό χαρτί εδώ και ένα 510 00:23:50,460 --> 00:23:55,060 μαύρο μαρκαδόρο και να γράψει σε αυτό - 511 00:23:55,060 --> 00:23:56,580 I λανθασμένα "κόσμο" - 512 00:23:56,580 --> 00:23:59,560 H-E-L-L-O. 513 00:23:59,560 --> 00:24:04,220 >> Γι 'αυτό θα λάβει μαύρο μαρκαδόρο μου και θα γράφουν, όπως μεγάλα και ευανάγνωστα όπως μπορώ για 514 00:24:04,220 --> 00:24:07,260 αυτό το κομμάτι χαρτί, "Hello, World", και τώρα ισχυρίζονται ότι αυτό είναι το επιχείρημά μου. 515 00:24:07,260 --> 00:24:09,740 Αυτή είναι μια συμβολοσειρά αντιπροσωπεύεται με ένα κομμάτι λευκό χαρτί. 516 00:24:09,740 --> 00:24:13,030 Και η συμβολή μου τώρα με τη λειτουργία printf πρόκειται να είναι αυτό. 517 00:24:13,030 --> 00:24:18,250 Έτσι, ζητώ printf, περνώντας το επιχείρημα αυτό ως συμβολή σε αυτό. 518 00:24:18,250 --> 00:24:22,110 519 00:24:22,110 --> 00:24:26,740 >> Και τώρα, δεν ξέρω πώς το άτομο που έγραψε έκανε printf χρόνια πριν, αλλά 520 00:24:26,740 --> 00:24:31,110 Ξέρω από την τεκμηρίωση του ότι Σκοπός της ζωής είναι να εκτυπώσετε ό, τι 521 00:24:31,110 --> 00:24:34,410 παρέχουν σε αυτήν ως είσοδο. 522 00:24:34,410 --> 00:24:40,630 Και έτσι, ακόμα κι αν αυτή η εφαρμογή είναι εν αγνοία μου 523 00:24:40,630 --> 00:24:44,170 κάτω από το καπό, τώρα Βλέπω, OH, αυτό γίνεται. 524 00:24:44,170 --> 00:24:45,740 Έχει εκτυπωθεί κάτι στην οθόνη. 525 00:24:45,740 --> 00:24:49,070 Και τώρα τον έλεγχο του προγράμματος, αν υπάρχει ήταν περισσότερες γραμμές κώδικα, θα 526 00:24:49,070 --> 00:24:51,070 έχουν πλέον επιστρέψει σε μένα. 527 00:24:51,070 --> 00:24:52,290 Και έτσι το γεγονός ότι Colton - 528 00:24:52,290 --> 00:24:55,370 ευλογεί την καρδιά του, κρύβεται εδώ κάτω ένα τραπέζι μπροστά από όλους σας - 529 00:24:55,370 --> 00:24:59,530 είναι σκόπιμη, δεδομένου ότι δεν ξέρω και δεν με νοιάζει πόσο είναι printf 530 00:24:59,530 --> 00:25:00,100 εφαρμοστεί. 531 00:25:00,100 --> 00:25:03,390 Απλά ξέρω, πάλι, από τους τεκμηρίωσης, τι κάνει και πώς 532 00:25:03,390 --> 00:25:05,040 Είμαι υποτίθεται για να το χρησιμοποιήσετε. 533 00:25:05,040 --> 00:25:09,140 >> Τώρα, υπενθυμίζουν ότι η printf θα μπορούσε να πάρει λίγο πιο πολύπλοκα. 534 00:25:09,140 --> 00:25:12,220 Και πάλι, είμαστε απλά μιλάμε για την ισοδύναμο μπλοκ Say Scratch του. 535 00:25:12,220 --> 00:25:14,230 Αλλά το έκανα και αυτό το τελευταίο χρονικό διάστημα. 536 00:25:14,230 --> 00:25:17,270 Ήθελα να κάνω το πρόγραμμά μου γεια ένα λίγο πιο δυναμική και όχι μόνο σκληρή 537 00:25:17,270 --> 00:25:19,740 κάτι κώδικα, όπως «κόσμο», και Σίγουρα δεν είναι δύσκολο κάτι κώδικα 538 00:25:19,740 --> 00:25:22,520 αυθαίρετη, όπως D-A-V-I-D στο πρόγραμμα. 539 00:25:22,520 --> 00:25:27,510 Ήθελα να ζητήσει από το χρήστη για του ή της όνομα, και στη συνέχεια, κάντε κάτι με 540 00:25:27,510 --> 00:25:29,720 η συμβολοσειρά που παρέχουν. 541 00:25:29,720 --> 00:25:32,690 >> Έτσι, υπάρχει κάτι λίγο διαφορετικό εδώ. printf, πριν από λίγο, 542 00:25:32,690 --> 00:25:35,860 έκανε, πράγματι, να κάνουμε κάτι, αλλά δεν επιστρέφουν τίποτα για μένα. 543 00:25:35,860 --> 00:25:36,020 Σωστά; 544 00:25:36,020 --> 00:25:38,910 Colton δεν μου δώσεις τίποτα πίσω, κανένα κομμάτι χαρτί. 545 00:25:38,910 --> 00:25:40,320 Υπήρχε μόνο μια παρενέργεια. 546 00:25:40,320 --> 00:25:44,510 Παρέχοντας μου "Hello, World" ως επιχείρημα για να Colton είχε ως αποτέλεσμα την 547 00:25:44,510 --> 00:25:48,420 παρενέργεια μιας λέξης, κάποιες λέξεις, που εμφανίζονται στην οθόνη. 548 00:25:48,420 --> 00:25:51,350 >> GetString, όμως, είναι λίγο διαφορετικά. GetString είναι επίσης ένα 549 00:25:51,350 --> 00:25:54,590 λειτουργία, αλλά επιστρέφει κάποια αξία. 550 00:25:54,590 --> 00:25:56,370 Δεν έχει μόνο ένα αισθητικό παρενέργεια. 551 00:25:56,370 --> 00:26:00,230 Μου δίνει πραγματικά, το άτομο κλήση ή χρησιμοποιώντας τη λειτουργία, 552 00:26:00,230 --> 00:26:01,320 κάτι πίσω. 553 00:26:01,320 --> 00:26:05,740 Έτσι, στην περίπτωση αυτή, είναι GetString κάλεσε με GetString ανοιχτό 554 00:26:05,740 --> 00:26:07,510 paren, κοντά paren. 555 00:26:07,510 --> 00:26:11,370 Μήπως GetString, ως εκ τούτου, να οποιαδήποτε επιχειρήματα ή εισόδου; 556 00:26:11,370 --> 00:26:12,340 Όχι, δεν φαίνεται. 557 00:26:12,340 --> 00:26:14,460 Ο σκοπός του στη ζωή είναι απλά για να πάρετε μια σειρά. 558 00:26:14,460 --> 00:26:16,910 Δεν χρειάζεται καμία περισσότερες λεπτομέρειες από αυτό. 559 00:26:16,910 --> 00:26:20,430 Έτσι, επιτρέψτε μου να πάει μπροστά και να υποκρινόμαστε ότι, και πάλι, αυτό το μαύρο κουτί δεν είναι printf, 560 00:26:20,430 --> 00:26:25,160 αλλά GetString, και επιτρέψτε μου, το πρόσωπο γράφοντας αυτό το πρόγραμμα, να καλέσετε ή να χρησιμοποιήσετε 561 00:26:25,160 --> 00:26:29,720 GetString από μόνο γραπτώς G-Ε-Τ-S-Τ-Κ-Ι-Ν-Ζ, ανοικτή paren, κοντά 562 00:26:29,720 --> 00:26:32,170 paren, GetString. 563 00:26:32,170 --> 00:26:36,920 >> Τώρα, δεν έχω καμία ιδέα για το πώς η CS50 προσωπικό εφαρμοστεί GetString, αλλά ξέρω ότι 564 00:26:36,920 --> 00:26:41,240 αν περιμένω αρκετά μεγάλο χρονικό διάστημα, αυτό θα κάνει τους πράγμα κάτω από την κουκούλα, ίσως χρησιμοποιώντας 565 00:26:41,240 --> 00:26:44,940 ορισμένες μεταβλητές, χρησιμοποιώντας ίσως κάποια συνθήκες, ίσως με κάποια βρόχους, 566 00:26:44,940 --> 00:26:48,170 ίσως με κάποιες λειτουργίες, ίσως με - 567 00:26:48,170 --> 00:26:52,290 απλά προσπαθούν να καθυστερήσουν - ίσως χρησιμοποιώντας μερικά άλλα χαρακτηριστικά γνωρίσματα προγραμματισμού. 568 00:26:52,290 --> 00:26:55,350 Αλλά αν περιμένω αρκετό καιρό - στην πραγματικότητα, στον υπολογιστή, αυτό συμβαίνει 569 00:26:55,350 --> 00:26:56,270 super fast - 570 00:26:56,270 --> 00:26:59,910 αν περιμένω αρκετά μεγάλο χρονικό διάστημα, αυτή η λειτουργία GetString πρόκειται να πάρει ένα string 571 00:26:59,910 --> 00:27:04,060 από τον χρήστη, ο οποίος είναι προφανώς πληκτρολόγηση έξω στο πληκτρολόγιό τους, και 572 00:27:04,060 --> 00:27:08,090 Στη συνέχεια, όταν GetString γίνεται όλο και Αυτοί οι χαρακτήρες από το χρήστη 573 00:27:08,090 --> 00:27:14,080 και την αποθήκευση τους σε ένα string, που λειτουργία, GetString, πρόκειται να έχει 574 00:27:14,080 --> 00:27:17,990 έτοιμοι για μένα κάποια έξοδο που είμαι πρόκειται να ανακτήσει από τον τρόπο της 575 00:27:17,990 --> 00:27:19,470 φορέα ανάθεσης. 576 00:27:19,470 --> 00:27:25,390 >> Και αν πάω, πράγματι, στην έξοδο εδώ, Obosi έχει γενναιόδωρα 577 00:27:25,390 --> 00:27:29,900 συμμετείχε, χωρίς να γνωρίζει αυτό εκ των προτέρων, γράφοντας το όνομά του σε αυτό 578 00:27:29,900 --> 00:27:33,100 μεταβλητή, η οποία εκπροσωπεί ένα string. 579 00:27:33,100 --> 00:27:35,640 Τώρα, ο φορέας ανάθεσης σημαίνει, ακόμα και αν και αυτό μπορεί να αισθάνονται λίγο 580 00:27:35,640 --> 00:27:38,790 περιττή, εγώ πραγματικά να κάνουμε χρειάζονται να κάνει το δικό μου αντίτυπο του παρόντος. 581 00:27:38,790 --> 00:27:40,700 Επειδή στο αριστερό χέρι πλευρά - Ωχ! - 582 00:27:40,700 --> 00:27:45,760 παρατηρήσετε ότι έχω ουσιαστικά κορδόνι όνομα στην αριστερή πλευρά. 583 00:27:45,760 --> 00:27:48,280 Έτσι, είμαι επίσης πρόκειται να κάνει το δικό μου αντίτυπο του παρόντος. 584 00:27:48,280 --> 00:27:50,990 Και αυτό είναι ένα κομμάτι από ένα λευκό ψέμα, γιατί θα δούμε σε μια εβδομάδα ή δύο χρόνια 585 00:27:50,990 --> 00:27:54,100 φορά ότι οι χορδές δεν είναι στην πραγματικότητα αυτό που φαίνεται να είναι. 586 00:27:54,100 --> 00:27:56,700 >> Αλλά για τώρα, εδώ είναι η τιμή επιστροφής. 587 00:27:56,700 --> 00:28:00,160 Εδώ είναι το δικό μου αντίτυπο της μετά χρήση του τελεστή εκχώρησης. 588 00:28:00,160 --> 00:28:01,790 Και τώρα, τι θέλω να κάνω το επόμενο βήμα; 589 00:28:01,790 --> 00:28:04,080 Έχουμε τώρα το δεύτερο δύο γραμμές κώδικα. 590 00:28:04,080 --> 00:28:05,640 Γι 'αυτό και τώρα θέλετε να καλέσετε printf. 591 00:28:05,640 --> 00:28:08,500 Ας προσποιηθούμε τώρα που το μαύρο box είναι και πάλι για να είναι 592 00:28:08,500 --> 00:28:10,210 printf και όχι GetString. 593 00:28:10,210 --> 00:28:12,200 >> Printf αυτή τη φορά πρόκειται να να λάβει πόσα επιχειρήματα; 594 00:28:12,200 --> 00:28:14,890 595 00:28:14,890 --> 00:28:16,770 Έτσι ματιά, είναι σαν δύο. 596 00:28:16,770 --> 00:28:18,860 Υπάρχουν δύο κόμματα εκεί, αλλά ένα από αυτά τα κόμματα, είναι 597 00:28:18,860 --> 00:28:20,220 μέσα από τα εισαγωγικά. 598 00:28:20,220 --> 00:28:23,190 Έτσι, το πρώτο επιχείρημα είναι κυριολεκτικά πρόκειται να συμβεί αυτό. 599 00:28:23,190 --> 00:28:31,850 H-E-L-L-O, κόμμα, επί τοις εκατό s, backslash-n. 600 00:28:31,850 --> 00:28:36,560 Και τώρα είμαι παρέχοντας όχι ένα επιχείρημα, αλλά δύο επιχειρήματα για να printf. 601 00:28:36,560 --> 00:28:39,530 >> Και τι printf πρέπει να κάνουν με Αυτές οι δύο είσοδοι αφού τα περάσουν στο 602 00:28:39,530 --> 00:28:42,050 ως επιχειρήματα; 603 00:28:42,050 --> 00:28:45,360 Είναι υποτίθεται για να λάβει τη δεύτερη του τους, το οποίο κάλεσα το όνομα, έτσι ώστε η 604 00:28:45,360 --> 00:28:48,660 δεύτερο κομμάτι χαρτί που έγραψα out πριν από λίγο ονομάζεται όνομα. 605 00:28:48,660 --> 00:28:53,550 Είναι πρόκειται να συνδέσετε την αξία μέσα αυτής της μεταβλητής στο σύμβολο κράτησης θέσης, 606 00:28:53,550 --> 00:28:58,310 % S, έτσι ώστε, και πάλι, σε μια στιγμή που φορά, θα δούμε μια παρενέργεια της 607 00:28:58,310 --> 00:29:04,180 αφού κάλεσε printf, οπότε τώρα δείτε δεν είναι "Hello, World", αλλά "γεια σου, 608 00:29:04,180 --> 00:29:04,710 Obosi. " 609 00:29:04,710 --> 00:29:08,730 >> Έτσι, ένα μεγάλο χειροκρότημα για τους δυο οι εθελοντές μας, μόνο ένας από τους οποίους γνώριζε 610 00:29:08,730 --> 00:29:12,010 Αυτό θα μπορούσε να συμβαίνει. 611 00:29:12,010 --> 00:29:12,990 Εντάξει. 612 00:29:12,990 --> 00:29:16,480 Έτσι, ίσως, απλά είναι τα πράγματα ήταν, Σίγουρα, αν είστε ήδη εξοικειωμένοι 613 00:29:16,480 --> 00:29:20,190 με τέτοια, ελπίζουμε ότι ποτέ δεν θα ξεχνάμε ότι η συγκεκριμένη οπτική για το πώς 614 00:29:20,190 --> 00:29:21,220 λειτουργίες εργασία. 615 00:29:21,220 --> 00:29:23,000 >> Έτσι, υπάρχει κάτι περισσότερο από GetString. 616 00:29:23,000 --> 00:29:26,020 Στο εσωτερικό της βιβλιοθήκης CS50, υπάρχει μια σωρό λειτουργίες, οι οποίες 617 00:29:26,020 --> 00:29:29,510 κεφαλαιοποιούνται μόνο για να κάνουν σαφή που γράψαμε αυτές τις λειτουργίες. 618 00:29:29,510 --> 00:29:33,610 Τυπικά, σε C, σχεδόν κάθε άλλο λειτουργία που θα χρησιμοποιήσετε είναι πεζά. 619 00:29:33,610 --> 00:29:36,190 Αλλά χρησιμοποιούμε συνειδητά κεφαλαία γράμματα μόνο για να καταστεί σαφές ότι αυτές 620 00:29:36,190 --> 00:29:39,880 οι ρόδες του είδους ότι θα χρησιμοποιήσετε για μόλις λίγες εβδομάδες ότι 621 00:29:39,880 --> 00:29:42,890 απλοποιηθεί η διαδικασία του να πάρει είσοδο από το χρήστη. 622 00:29:42,890 --> 00:29:46,740 >> Η βιβλιοθήκη CS50 δεν κάνει τίποτα ότι εσείς οι ίδιοι δεν θα μπορούσε να κάνει με την 623 00:29:46,740 --> 00:29:50,230 μόνο με τη χρήση C κώδικα από ένα oldschool βιβλίο. 624 00:29:50,230 --> 00:29:53,310 Αλλά, και πάλι, μπορούμε να τους χρησιμοποιούν ως εκπαίδευση τροχούς των ειδών για μόλις δύο 625 00:29:53,310 --> 00:29:57,250 εβδομάδες, έτσι ώστε να μπορούμε να απαλλαγούμε από το πολυπλοκότητα που σύντομα θα καταλάβετε 626 00:29:57,250 --> 00:30:00,460 τον εαυτό του να κάνει κάτι, όπως σχετικά απλό όσο να πάρει 627 00:30:00,460 --> 00:30:02,080 εισόδου από ένα χρήστη. 628 00:30:02,080 --> 00:30:05,540 >> Έτσι, ξέρετε ότι θα έχετε πρόσβαση να getchar, GetDouble - 629 00:30:05,540 --> 00:30:06,050 διπλασιαστεί. 630 00:30:06,050 --> 00:30:07,050 What's - και στη συνέχεια GetFloat. 631 00:30:07,050 --> 00:30:07,600 Τι είναι ένας πλωτήρας; 632 00:30:07,600 --> 00:30:09,382 Ας ξεκινήσουμε από εκεί. 633 00:30:09,382 --> 00:30:10,600 >> ΦΟΙΤΗΤΗΣ: [δεν ακούγεται]. 634 00:30:10,600 --> 00:30:10,790 >> DAVID MALAN: Ναι. 635 00:30:10,790 --> 00:30:12,120 Είναι ένας αριθμός με υποδιαστολή. 636 00:30:12,120 --> 00:30:15,930 Έτσι, ενώ ένας int είναι ένας ακέραιος αριθμός, ο οποίος Είναι απλά ένας αριθμός με 0 έως 9, 637 00:30:15,930 --> 00:30:18,940 κάποιο αριθμό επαναλήψεων αυτών, Ο πλωτήρας είναι κάτι 638 00:30:18,940 --> 00:30:20,100 με ένα δεκαδικό ψηφίο. 639 00:30:20,100 --> 00:30:26,090 Και ένα διπλό, εν τω μεταξύ, είναι επίσης ένα αριθμό με ένα δεκαδικό σημείο, αλλά περισσότερο 640 00:30:26,090 --> 00:30:28,160 αριθμών μετά την υποδιαστολή σημείο, ενδεχομένως. 641 00:30:28,160 --> 00:30:30,040 >> Γι 'αυτό και θα πάρετε πίσω σε αυτό πριν από καιρό. 642 00:30:30,040 --> 00:30:34,560 Αλλά συνήθως, το καθένα από αυτά τα είδη δεδομένων, καθένα από αυτούς τους τύπους των μεταβλητών 643 00:30:34,560 --> 00:30:39,380 ότι μια βιβλιοθήκη όπως η δική μας μπορεί να επιστρέψει στην σας, χρησιμοποιήστε διαφορετικούς αριθμούς των bits σε 644 00:30:39,380 --> 00:30:40,290 αποθήκευση πληροφοριών. 645 00:30:40,290 --> 00:30:43,910 Τυπικά, μια χαρα, το οποίο σημαίνει απλά ένα χαρακτήρα, χρησιμοποιεί 8 bits. 646 00:30:43,910 --> 00:30:47,490 Και αυτό είναι πραγματικά συνεπής με μας byte των εθελοντών οι οποίοι την περασμένη εβδομάδα 647 00:30:47,490 --> 00:30:50,410 ήρθε και αποτέλεσε ένα Χαρακτήρα ASCII σε μια στιγμή. 648 00:30:50,410 --> 00:30:51,850 Έτσι, ένα Char είναι 8 bits. 649 00:30:51,850 --> 00:30:54,430 >> Ένας πλωτήρας συμβαίνει να είναι 32 bits, συνήθως. 650 00:30:54,430 --> 00:30:59,230 Και ένα διπλό, όπως μπορείτε να μαντέψετε, είναι στην πραγματικότητα 64 bits, το οποίο είναι απλώς περισσότερο, 651 00:30:59,230 --> 00:31:01,360 το οποίο σημαίνει ότι μπορείτε να έχετε μεγαλύτερο αριθμούς ή μεγαλύτερη ακρίβεια. 652 00:31:01,360 --> 00:31:03,000 Αλλά και πάλι, περισσότερα για αυτό μια άλλη φορά. 653 00:31:03,000 --> 00:31:06,550 GetLongLong, εν τω μεταξύ, αν και βλακωδώς το όνομα, είναι πραγματικά ακριβώς μια 654 00:31:06,550 --> 00:31:10,770 ακέραιος που είναι δύο φορές πιο μεγάλο, δύο φορές καιρό, ενδεχομένως, ως τακτικό 655 00:31:10,770 --> 00:31:12,940 ακέραιος, 64 bits αντί για 32. 656 00:31:12,940 --> 00:31:14,560 Και GetString έχουμε χρησιμοποιήσει. 657 00:31:14,560 --> 00:31:18,870 >> Αλλά αποδεικνύεται, στη βιβλιοθήκη CS50, που υλοποιείται, όπως θα δούμε, στην 658 00:31:18,870 --> 00:31:23,560 η μορφή των δύο αρχεία, ένα εκ των οποίων cs50.h ονομάζεται, έχει άλλα δύο 659 00:31:23,560 --> 00:31:24,770 τύπων δεδομένων σε αυτό. 660 00:31:24,770 --> 00:31:29,700 Booleans δεν υπάρχουν σε C. Μπορείτε να προσομοίωση τους με τη χρήση μόνο 0 και 1 661 00:31:29,700 --> 00:31:30,850 όλη προγράμματά σας. 662 00:31:30,850 --> 00:31:35,500 Αλλά εμείς στη βιβλιοθήκη CS50 έχουν δημιουργήσει τα σύμβολα "αλήθεια" και "ψευδή" 663 00:31:35,500 --> 00:31:38,580 να αντιπροσωπεύουν το 1 και το 0, ώστε να μην πρέπει να σκληρό κάτι κώδικα 664 00:31:38,580 --> 00:31:39,810 κυριολεκτικά σαν 1 και 0. 665 00:31:39,810 --> 00:31:40,980 Αλλά θα δούμε αυτά και πάλι. 666 00:31:40,980 --> 00:31:42,330 >> String, επίσης, δεν υπάρχει. 667 00:31:42,330 --> 00:31:44,520 Και γι 'αυτό ανέφερα ότι είναι ένα κομμάτι από ένα λευκό ψέμα για τώρα. 668 00:31:44,520 --> 00:31:46,660 Αλλά θα φλούδα πίσω ότι στρώμα πριν από καιρό. 669 00:31:46,660 --> 00:31:49,540 Αλλά για τώρα, ένα string είναι μια ακολουθία χαρακτήρων. 670 00:31:49,540 --> 00:31:51,790 >> Εν τω μεταξύ, στην C, που όντως έχουν διαφορετικούς τύπους δεδομένων. 671 00:31:51,790 --> 00:31:53,200 Ανακοίνωση αυτά είναι πεζά. 672 00:31:53,200 --> 00:31:56,960 Έτσι, οι λειτουργίες που είδα πριν από λίγο Οι λειτουργίες που γράφτηκε από CS50 ότι 673 00:31:56,960 --> 00:32:02,310 θα επιστρέψει σε μια τιμή που πέφτει σε μία από αυτές τις κατηγορίες. 674 00:32:02,310 --> 00:32:06,730 >> Μια εξαπατήσει φύλλα ζευγάρι μόνο για να φυτέψει ο σπόρος εδώ. printf δεν είναι μόνο 675 00:32:06,730 --> 00:32:08,600 να λάβει s% ως σύμβολα κράτησης θέσης. 676 00:32:08,600 --> 00:32:13,490 Χρειάζονται% d για δεκαδικό ακέραιοι, ή% θα ήθελα να λειτουργεί τόσο καλά. 677 00:32:13,490 --> 00:32:19,450 F% είναι τιμές κινητής υποδιαστολής. Γ% είναι μια χαρα, αν θέλετε να συνδέσετε ένα μόνο 678 00:32:19,450 --> 00:32:23,510 χαρακτήρα σε μια σειρά ήδη διαμορφωμένες όπως έχουμε ήδη κάνει, μπορείτε να χρησιμοποιήσετε το γ%. 679 00:32:23,510 --> 00:32:28,490 >> Και τότε, κάπως ενοχλητικά,% LLD είναι για μια μακρά, πολύ ακέραιο ψηφίο, 680 00:32:28,490 --> 00:32:31,050 πράγμα που σημαίνει ακριβώς, αν χρειάζεστε ένα πραγματικά μεγάλος αριθμός και χρησιμοποιείτε κάτι 681 00:32:31,050 --> 00:32:35,450 ονομάζεται πολύ καιρό, το οποίο θα έρθει πίσω στο ένα PSET, μπορείτε να χρησιμοποιήσετε το LLD% σε 682 00:32:35,450 --> 00:32:40,700 πει printf, συνδέστε ένα πραγματικά μεγάλο ακέραιος εδώ μέσω της δεύτερης ή της 683 00:32:40,700 --> 00:32:41,830 κάποιο άλλο επιχείρημα. 684 00:32:41,830 --> 00:32:45,700 >> Και τέλος, είχα υποσχεθεί ότι υπάρχει μερικές άλλες διαφυγής 685 00:32:45,700 --> 00:32:47,670 αλληλουχίες που printf υποστηρίζει. 686 00:32:47,670 --> 00:32:49,160 Έχουμε δει backslash-n. 687 00:32:49,160 --> 00:32:50,510 Backslash-r μπορείτε να δείτε. 688 00:32:50,510 --> 00:32:51,780 Είναι το είδος του ένα παλιό σχολείο-πράγμα. 689 00:32:51,780 --> 00:32:55,920 Εάν έχετε χρησιμοποιήσει ποτέ μια πραγματική χρόνια γραφομηχανή Πριν και σας τράβηξε στο στρόφαλο 690 00:32:55,920 --> 00:32:59,810 το οποίο όχι μόνο περιστρέφεται τον τροχό για να μετακινήστε το lineup, κινήθηκε και η 691 00:32:59,810 --> 00:33:03,730 όλο θέμα σε όλη τη διαδρομή πίσω πάνω το αριστερό, αλλά, backslash-r μόνο 692 00:33:03,730 --> 00:33:06,480 ουσιαστικά κινείται πίσω τον κέρσορα στην αρχή της γραμμής 693 00:33:06,480 --> 00:33:07,830 χωρίς να κινείται προς τα κάτω. 694 00:33:07,830 --> 00:33:09,780 Αλλά και πάλι, περισσότερα για αυτό, ίσως, στο μέλλον. 695 00:33:09,780 --> 00:33:13,670 >> Backslash-quote, backslash-διπλό εισαγωγικό, backslash-backslash είναι η 696 00:33:13,670 --> 00:33:16,600 λύση στο μικροσκοπικό αίνιγμα Αναφέρθηκα νωρίτερα. 697 00:33:16,600 --> 00:33:18,920 Και backslash-0 είναι στην πραγματικότητα αρκετά ενδιαφέρουσα. 698 00:33:18,920 --> 00:33:21,470 Αλλά θα επανέλθουμε ότι πριν από καιρό. 699 00:33:21,470 --> 00:33:25,640 >> Έτσι, επιτρέψτε μου να μπω σε, τώρα, το CS50 συσκευή, και ας κάνουν πραγματικά μια 700 00:33:25,640 --> 00:33:28,930 γρήγορη ζεσταθεί με ένα από τα παραδείγματα κάναμε ήδη και στη συνέχεια να προχωρήσουμε σε 701 00:33:28,930 --> 00:33:31,160 κάτι λίγο πιο περίπλοκη. 702 00:33:31,160 --> 00:33:34,980 Έτσι, αν έχω ανοίξει το πρόγραμμά μου ονομάζεται gedit - 703 00:33:34,980 --> 00:33:36,840 Αυτό είναι γραφικό επεξεργαστή μου. 704 00:33:36,840 --> 00:33:38,460 Και μπορώ να το κάνω - 705 00:33:38,460 --> 00:33:39,820 επιτρέψτε μου να κλείσει αυτό το παράθυρο εκεί - 706 00:33:39,820 --> 00:33:42,720 μέσω της αυτό το εικονίδιο εδώ κάτω, gedit, στο κάτω-αριστερά 707 00:33:42,720 --> 00:33:44,170 γωνία δίπλα στο μενού. 708 00:33:44,170 --> 00:33:48,670 >> Πάω να προχωρήσει και να προχωρήσει, και αποθηκεύσετε αυτό το παράδειγμα σε, ας πούμε, John 709 00:33:48,670 --> 00:33:49,660 Φάκελο του Χάρβαρντ. 710 00:33:49,660 --> 00:33:52,690 Φάκελο John Harvard είναι μόνο το σπίτι του κατάλογο όπου όλα τα αρχεία του ζουν 711 00:33:52,690 --> 00:33:53,340 από προεπιλογή. 712 00:33:53,340 --> 00:33:58,410 Και Πάω να το αποθηκεύσετε ως ένα αρχείο που λέγεται γεια-0.c. 713 00:33:58,410 --> 00:34:01,260 Και έχω επιλέξει αυτό το όνομα μόνο και μόνο γι 'αυτό γραμμές με το δείγμα κώδικα για την 714 00:34:01,260 --> 00:34:04,210 Ιστοσελίδα μαθήματος και η YouTube βίντεο σε απευθείας σύνδεση. 715 00:34:04,210 --> 00:34:06,320 >> Έτσι τώρα είμαι πρόκειται να αρχίσει να γράψει το πρώτο μου πρόγραμμα. 716 00:34:06,320 --> 00:34:08,469 Επιτρέψτε μου να μεγεθύνετε για την αναγνωσιμότητα. 717 00:34:08,469 --> 00:34:12,760 Και Πάω να προχωρήσει και να πω int κύριο κενό, το οποίο είναι ακριβώς έτσι 718 00:34:12,760 --> 00:34:14,900 κίτρινο κομμάτι του παζλ που ξεκινάει ένα πρόγραμμα. 719 00:34:14,900 --> 00:34:18,290 Έχω πάρει τη συνήθεια κατά τη διάρκεια των χρόνια το άνοιγμα σγουρά κηδεμόνα μου, στη συνέχεια, 720 00:34:18,290 --> 00:34:22,000 Επίσης, το κλείσιμο και στη συνέχεια πηγαίνει πίσω όπου θέλω να θέσει τον κωδικό μου, απλά 721 00:34:22,000 --> 00:34:24,630 γιατί με βοηθάει να κρατήσει τα πάντα ισορροπημένη, ιδίως όσον μου 722 00:34:24,630 --> 00:34:25,880 πρόγραμμα παίρνει καιρό. 723 00:34:25,880 --> 00:34:29,239 >> Και τώρα, εδώ, είμαι πρόκειται να πάει μπροστά και να πω, printf, παραθέτω unquote, 724 00:34:29,239 --> 00:34:34,330 hello world, backslash-n, κοντά απόσπασμα, στενή παρένθεση, τελεία. 725 00:34:34,330 --> 00:34:38,100 Έτσι είμαι επαναλαμβάνοντας ακριβώς ό, τι έχουμε ήδη λάβει ως δεδομένο μέχρι στιγμής. 726 00:34:38,100 --> 00:34:39,270 Τώρα πάω για σμίκρυνση. 727 00:34:39,270 --> 00:34:43,030 >> Και αυτό το παράθυρο τερματικού εδώ κάτω, τι Μπορώ να κάνω σε αυτό το μαύρο 728 00:34:43,030 --> 00:34:44,389 και το λευκό παράθυρο; 729 00:34:44,389 --> 00:34:46,977 Τι μπορώ να το χρησιμοποιείς; 730 00:34:46,977 --> 00:34:49,770 Έτσι αυτό είναι όπου τρέχω εντολές και όπου μπορώ να συγκεντρώνουν τα πράγματα. 731 00:34:49,770 --> 00:34:50,620 Και Πάω να κρατήσει το απλό. 732 00:34:50,620 --> 00:34:52,780 Πάω να χρησιμοποιήσετε ένα πρόγραμμα Κάντε ονομάζεται, το οποίο δεν είναι 733 00:34:52,780 --> 00:34:54,020 τεχνικά ένα compiler. 734 00:34:54,020 --> 00:34:56,360 Ονομάζεται Clang ο compiler, αλλά Θα επανέλθουμε σε αυτό σε ένα 735 00:34:56,360 --> 00:34:57,190 εβδομάδα ή δύο το χρόνο του. 736 00:34:57,190 --> 00:35:03,410 >> Προς το παρόν, είμαι απλώς πρόκειται να πληκτρολογήσετε make γεια-0, Αλλά όσοι από εσάς ήταν 737 00:35:03,410 --> 00:35:07,050 σύγκριση στο μυαλό σας αυτό που μόλις δακτυλογραφημένες σε ό, τι θα έπρεπε να είχα πληκτρολογήσει μπορεί 738 00:35:07,050 --> 00:35:10,180 γνωρίζετε ήδη ότι έκανα κάτι δεν πάει καλά εδώ. 739 00:35:10,180 --> 00:35:12,160 Τώρα, υπάρχει σαφώς κάποια λάθη. 740 00:35:12,160 --> 00:35:16,742 Πριν ακόμη και να δούμε τι είναι, κάθε σκέψεις ως προς το τι έκανα λάθος; 741 00:35:16,742 --> 00:35:18,590 >> ΜΑΘΗΤΕΣ: [παρεμβάλλοντας ΦΩΝΕΣ]. 742 00:35:18,590 --> 00:35:18,840 >> DAVID MALAN: Ναι. 743 00:35:18,840 --> 00:35:20,640 Είμαι λείπει το αρχείο header της βιβλιοθήκης. 744 00:35:20,640 --> 00:35:24,240 Οποιοδήποτε από αυτά τα αρχεία. H καλούνται header αρχεία, και συλλογικά 745 00:35:24,240 --> 00:35:25,680 ανήκουν σε πράγματα που ονομάζεται βιβλιοθήκες. 746 00:35:25,680 --> 00:35:28,030 Οι βιβλιοθήκες είναι απλά κομμάτια του κώδικα ότι οι άλλοι άνθρωποι έγραψαν. 747 00:35:28,030 --> 00:35:32,140 Έτσι, το πρότυπο [; θ?] βιβλιοθήκη είναι μια συλλογή από τα αρχεία που περιέχουν κώδικα 748 00:35:32,140 --> 00:35:33,330 ότι οι άλλοι άνθρωποι έγραψαν. 749 00:35:33,330 --> 00:35:34,820 >> Έτσι είμαι λείπει αυτό. 750 00:35:34,820 --> 00:35:36,520 Επομένως, γιατί είμαι πάρει ένα λάθος; 751 00:35:36,520 --> 00:35:40,840 Λοιπόν, επιτρέψτε μου να μετακινηθείτε προς τα πίσω μέχρι το παράθυρο του τερματικού μου εδώ. 752 00:35:40,840 --> 00:35:44,310 Και δυστυχώς, σε C, όπως σε πολλά γλώσσες προγραμματισμού, ιδίως 753 00:35:44,310 --> 00:35:47,830 αν είναι όλα τα νέα για εσάς, το σφάλμα μηνύματα είναι ακριβή, αλλά είναι επίσης 754 00:35:47,830 --> 00:35:48,620 αρκετά αινιγματικός. 755 00:35:48,620 --> 00:35:51,720 Και το σφάλμα εδώ, σε κόκκινο, είναι "Σιωπηρά δηλώνοντας λειτουργία της βιβλιοθήκης 756 00:35:51,720 --> 00:35:57,660 printf με τον τύπο, "και στη συνέχεια μετακινείται στην επόμενη γραμμή, "int const char *, 757 00:35:57,660 --> 00:36:00,220 ... "Παίρνει ακριβώς πραγματικά συντριπτική γρήγορα. 758 00:36:00,220 --> 00:36:04,420 >> Αλλά αυτό θα πρέπει να αρχίσουμε να το κάνουμε, αν, και πάλι, νέα σε όλα αυτά, είναι απλά για να 759 00:36:04,420 --> 00:36:06,010 αρχίσουν να ψάχνουν για τις λέξεις-κλειδιά. 760 00:36:06,010 --> 00:36:08,770 Σαφώς, εγώ μπορεί να μην καταλαβαίνουν το ήμισυ από τις λέξεις βλέπω ακριβώς ακόμα. 761 00:36:08,770 --> 00:36:10,140 Θα σας, ωστόσο, σε χρόνο μιας εβδομάδας. 762 00:36:10,140 --> 00:36:11,230 Αλλά βλέπω printf. 763 00:36:11,230 --> 00:36:14,310 Και αυτό θα πρέπει να αρχίσει, πριν από καιρό, για να ξυπνήσει την μνήμη σας, εντάξει, printf. 764 00:36:14,310 --> 00:36:15,210 Κάτι δεν πάει καλά με την printf. 765 00:36:15,210 --> 00:36:16,580 Μήπως μπορώ να σημάνει λάθος; 766 00:36:16,580 --> 00:36:18,130 Όχι, δεν μοιάζει - oh. 767 00:36:18,130 --> 00:36:21,350 Δεν μπορώ να το χρησιμοποιήσει αν διδάσκω ο compiler ότι υπάρχει. 768 00:36:21,350 --> 00:36:25,220 Και έτσι, και πάλι, να πάει με το ένστικτό σας, ακόμα και αν στην πραγματικότητα, δεν καταλαβαίνουν 769 00:36:25,220 --> 00:36:26,510 τα πραγματικά μηνύματα λάθους. 770 00:36:26,510 --> 00:36:30,240 >> Και πράγματι, η λύση εδώ είναι απλά να συμπεριληφθεί στην κορυφή του αρχείου 771 00:36:30,240 --> 00:36:34,340 έτσι, resaving το αρχείο μου με Control-S ή το μενού File. 772 00:36:34,340 --> 00:36:36,730 Και αν τώρα πάμε πίσω εδώ, Πάω να καταργήσετε αυτό. 773 00:36:36,730 --> 00:36:39,150 Control-L είναι απλά ένα ωραίο τρόπο για να καθαρίσετε την οθόνη. 774 00:36:39,150 --> 00:36:44,870 Και τότε Πάω να πληκτρολογήσετε "κάνει γεια 0 "Enter, και τώρα βλέπω ακόμα 775 00:36:44,870 --> 00:36:47,710 κρυφή αλληλουχία των συμβόλων, αλλά θα επανέλθω στο θέμα αυτό. 776 00:36:47,710 --> 00:36:49,230 Αυτό είναι ό, τι κάνει το κάνει για σας. 777 00:36:49,230 --> 00:36:52,590 Είναι αυτοματοποίηση της διαδικασίας λήψης μια αρκετά ενοχλητικό εντολή συμμετοχή 778 00:36:52,590 --> 00:36:54,050 Clang, η πραγματική compiler. 779 00:36:54,050 --> 00:36:57,460 Αλλά το γεγονός ότι πήρα κανένα λάθος σημαίνει ότι αυτό το πράγμα θα πρέπει να εργαστεί. 780 00:36:57,460 --> 00:37:00,630 >> Έτσι είμαι τώρα πρόκειται να κάνει - επιτρέψτε μου να μεγεθύνετε και πάλι - 781 00:37:00,630 --> 00:37:07,070 ./hello-0 Enter, και μάλιστα, βλέπω "Hello, World". Οπότε ας πάμε τώρα ενίσχυση 782 00:37:07,070 --> 00:37:12,105 Αυτό πάντα τόσο λίγο μόνο για να αναπαράγουν τα βήματα που προορίζεται. 783 00:37:12,105 --> 00:37:15,370 Πάω να μετονομάσετε αυτό με Αποθήκευση ως για να hello1.c. 784 00:37:15,370 --> 00:37:20,300 Και τώρα είμαι πρόκειται να δηλώσει μια μεταβλητή ονομάζεται το όνομα, έτσι το όνομα string, 785 00:37:20,300 --> 00:37:23,420 και είμαι πρόκειται να θέσει σε αυτό το αξία quote-unquote 786 00:37:23,420 --> 00:37:27,030 D-Α-V-I-D κλείσιμο-quote ερωτηματικό. 787 00:37:27,030 --> 00:37:31,150 Και τώρα είμαι πρόκειται να αντικαταστήσει "κόσμο" με ποιο σύμβολο κράτησης θέσης για μια σειρά; 788 00:37:31,150 --> 00:37:32,200 % S. 789 00:37:32,200 --> 00:37:35,040 >> Και τώρα, πόσα επιχειρήματα θα πρέπει να printf λάβει αυτή τη φορά; 790 00:37:35,040 --> 00:37:35,700 Έτσι δύο. 791 00:37:35,700 --> 00:37:37,090 Γι 'αυτό και πάνε έξω από τα εισαγωγικά. 792 00:37:37,090 --> 00:37:39,330 I πληκτρολογήστε "όνομα" μετά από ένα κόμμα. 793 00:37:39,330 --> 00:37:41,550 Αλλά έχω κάνει κάτι άλλο λάθος αυτή τη φορά. 794 00:37:41,550 --> 00:37:43,940 Αλλά ας υποθέσουμε ότι δεν το έκανα συνειδητοποιούν ότι ακόμα. 795 00:37:43,940 --> 00:37:44,910 Επιτρέψτε μου να ανεβαίνουν εδώ. 796 00:37:44,910 --> 00:37:48,850 >> Και ανακοίνωση, επίσης, παίρνω λίγο βαρεθεί πληκτρολογώντας "κάνει γεια 0" όλα τα 797 00:37:48,850 --> 00:37:50,180 χρόνο, "κάνει" και όλα αυτά. 798 00:37:50,180 --> 00:37:53,270 Έτσι, αποδεικνύεται, στην Linus μπορείτε να συχνά χτύπησε το βέλος επάνω σας 799 00:37:53,270 --> 00:37:56,850 πληκτρολόγιο, και μπορείτε πραγματικά να μετακινηθείτε μέσα από όλες τις εντολές που έχω 800 00:37:56,850 --> 00:37:58,830 εκτελούνται πριν από λίγο. 801 00:37:58,830 --> 00:38:02,040 Έτσι, αν το κάνω αυτό, Up, Up, υπάρχει κάνει γεια 0. 802 00:38:02,040 --> 00:38:02,610 Δεν θέλω αυτό. 803 00:38:02,610 --> 00:38:05,450 Απλά θέλω να το αλλάξουμε αυτό να γεια 1 αυτή τη φορά, Enter. 804 00:38:05,450 --> 00:38:07,620 Τελικά, που θα να σας εξοικονομήσει κάποιο χρόνο. 805 00:38:07,620 --> 00:38:08,150 >> Εντάξει. 806 00:38:08,150 --> 00:38:09,520 Δυστυχώς, δεν υπάρχει είναι ένα λάθος. 807 00:38:09,520 --> 00:38:10,980 Έτσι, επιτρέψτε μου να μετακινηθείτε προς τα επάνω. 808 00:38:10,980 --> 00:38:13,120 Αυτό μοιάζει πραγματικά σφαγιάστηκαν αυτό το πρόγραμμα. 809 00:38:13,120 --> 00:38:16,530 Θέλω να πω, Θεέ μου, είναι δύο γραμμές κώδικα, και 10 γραμμές των σφαλμάτων. 810 00:38:16,530 --> 00:38:18,800 Αλλά κοιτάξτε στην κορυφή ενός πρώτου. 811 00:38:18,800 --> 00:38:21,640 Χρήση της αδήλωτης συμβολοσειρά αναγνωριστικού. 812 00:38:21,640 --> 00:38:23,270 Μήπως εννοώ πρότυπο i ν? 813 00:38:23,270 --> 00:38:23,930 Όχι δεν το έκανα. 814 00:38:23,930 --> 00:38:24,940 Εννοούσα string. 815 00:38:24,940 --> 00:38:29,390 >> Αλλά πού είναι η μεταβλητή συμβολοσειράς Τύπος δήλωσε, dd λέμε; 816 00:38:29,390 --> 00:38:30,730 Έτσι είναι το CS50 η βιβλιοθήκη. 817 00:38:30,730 --> 00:38:33,740 Γι 'αυτό δεν αρκεί, σε αυτά τα πρώτα δυο εβδομάδες, απλά να χρησιμοποιήσετε 818 00:38:33,740 --> 00:38:34,860 τι C μας δίνει. 819 00:38:34,860 --> 00:38:38,120 Είμαι, επίσης, πρόκειται να πάει εδώ, και εγώ θα μπορούσε να θέσει πάνω ή κάτω, αλλά θα 820 00:38:38,120 --> 00:38:40,340 κρατήσει μόνο αλφαβητικά να κρατήσει τα πράγματα ομαλή. 821 00:38:40,340 --> 00:38:43,470 Πάω να περιλαμβάνουν cs50.h, το οποίο είναι προεγκατεστημένο για 822 00:38:43,470 --> 00:38:44,900 σας στη συσκευή CS50. 823 00:38:44,900 --> 00:38:47,640 Και αυτό είναι ανοιχτού κώδικα, έτσι ώστε ακόμη και οι άνθρωποι στο διαδίκτυο μπορεί να το χρησιμοποιήσει για τους 824 00:38:47,640 --> 00:38:48,450 τους υπολογιστές. 825 00:38:48,450 --> 00:38:50,700 Αλλά αυτό έρχεται με τη συσκευή CS50. 826 00:38:50,700 --> 00:38:55,320 >> Έτσι, τώρα επιτρέψτε μου να πάω πίσω και να μεταγλωττίσετε ξανά αυτό με κάνει γεια 1. 827 00:38:55,320 --> 00:38:55,710 Γαμώτο. 828 00:38:55,710 --> 00:38:57,240 Ακόμα ένα άλλο λάθος. 829 00:38:57,240 --> 00:38:59,370 Επιτρέψτε μου να μετακινηθείτε στο πρώτο, όμως. 830 00:38:59,370 --> 00:39:00,630 Αυτό και μόνο είναι λίγο περίπλοκο. 831 00:39:00,630 --> 00:39:03,830 Multi-χαρακτήρα σταθερό χαρακτήρα. 832 00:39:03,830 --> 00:39:04,890 Αυτό δεν με βοηθάει. 833 00:39:04,890 --> 00:39:08,220 Αλλά προσέξτε, Clang είναι τουλάχιστον λίγο bit αξιοπρεπή, σύμφωνα με την οποία με λίγη 834 00:39:08,220 --> 00:39:11,890 πράσινο καρέ σύμβολο, λέει εδώ είναι όπου μαντάρα. 835 00:39:11,890 --> 00:39:16,160 Γιατί είναι αυτό που δείχνει, με αυτό το μικρό πράσινο βέλος, στο ενιαίο απόσπασμα επόμενο 836 00:39:16,160 --> 00:39:18,290 για το όνομά μου; 837 00:39:18,290 --> 00:39:20,880 >> Έτσι, αυτό είναι ένα από τα πράγματα που απλά συνηθίσει, ειδικά αν έχετε 838 00:39:20,880 --> 00:39:23,980 προγραμματισμό σε Python, ή JavaScript, ή άλλες γλώσσες, όπου αυτή η λεπτομέρεια 839 00:39:23,980 --> 00:39:24,560 Δεν έχει σημασία. 840 00:39:24,560 --> 00:39:25,740 Στο C, αυτό έχει σημασία. 841 00:39:25,740 --> 00:39:29,520 Εάν με την οποία μια σειρά, η οποία είναι μια ακολουθία από μηδέν ή περισσότερους χαρακτήρες, 842 00:39:29,520 --> 00:39:32,280 που πραγματικά πρέπει να χρησιμοποιήσετε διπλά εισαγωγικά. 843 00:39:32,280 --> 00:39:36,670 Γι 'αυτό πρέπει πραγματικά να αλλάξει αυτή η επιστροφή για να ανοίξει παράθεση, κλείστε απόσπασμα, με 844 00:39:36,670 --> 00:39:37,800 διπλά εισαγωγικά. 845 00:39:37,800 --> 00:39:41,610 Απλά εισαγωγικά έχουν τη θέση τους, αλλά μόνο όταν είστε με τη χρήση ατομικών 846 00:39:41,610 --> 00:39:44,100 χαρακτήρες, αλλά περισσότερα για αυτό άλλη φορά. 847 00:39:44,100 --> 00:39:46,550 Προς το παρόν, τα διπλά εισαγωγικά είναι απαραίτητες. 848 00:39:46,550 --> 00:39:50,460 >> Έτσι τώρα, επιτρέψτε μου να πάω πίσω στο τερματικό μου παράθυρο, κάνουν γεια 1. 849 00:39:50,460 --> 00:39:51,450 Και ποιος είναι σίγουροι; 850 00:39:51,450 --> 00:39:53,800 Είναι αυτό το πρόγραμμα τώρα θα να καταρτίσει σωστά; 851 00:39:53,800 --> 00:39:58,250 852 00:39:58,250 --> 00:39:58,540 OK. 853 00:39:58,540 --> 00:39:59,780 Έτσι, τρεις από εμάς πιστεύουμε αυτό. 854 00:39:59,780 --> 00:40:00,280 Εντάξει. 855 00:40:00,280 --> 00:40:01,190 Enter. 856 00:40:01,190 --> 00:40:02,440 Και αυτό πράγματι συνέβη. 857 00:40:02,440 --> 00:40:05,130 Οπότε δεν υπάρχει λάθη αυτή τη φορά, ακόμη και αν αυτό το πρόγραμμα για να πάρει ένα κομμάτι 858 00:40:05,130 --> 00:40:05,840 πιο περίπλοκη. 859 00:40:05,840 --> 00:40:10,110 Αν κάνω τώρα dot κάθετος γεια 1, Εισαγωγή, πρόκειται να πει "γεια, David." 860 00:40:10,110 --> 00:40:11,750 >> Αλλά ας κάνουμε την τρίτη επανάληψη από αυτό, όπου το 861 00:40:11,750 --> 00:40:13,380 πρόγραμμα αυτό είναι πραγματικά δυναμική. 862 00:40:13,380 --> 00:40:16,770 Επιτρέψτε μου να πάμε μπροστά και να αλλάξετε το αρχείο το όνομα, μόνο για λόγους συνέπειας με την 863 00:40:16,770 --> 00:40:20,410 αρχεία που θα έχουν στη διάθεσή τους για να σας αργότερα σε απευθείας σύνδεση. 864 00:40:20,410 --> 00:40:21,620 Enter. 865 00:40:21,620 --> 00:40:25,510 Και τώρα είμαι πρόκειται να πάει και να μην αποθήκευση "David" σκληρό κωδικοποιούνται εδώ. 866 00:40:25,510 --> 00:40:28,826 Τι μπορώ να κάνω για πολύ απλά βελτιώσουμε αυτό το πρόγραμμα; 867 00:40:28,826 --> 00:40:30,520 >> Θα μπορούσατε να καλέσετε GetString. 868 00:40:30,520 --> 00:40:33,240 Θα μπορούσε να είναι λίγο μη προφανές τι για να συμβεί αυτό, έτσι Πάω 869 00:40:33,240 --> 00:40:38,470 για να προσθέσετε στην πραγματικότητα μια άλλη γραμμή, printf, και να πω το όνομα, του παχέος εντέρου, κοντά απόσπασμα, μόλις 870 00:40:38,470 --> 00:40:40,790 για να δώσει στον χρήστη μια προτροπή στην οθόνη. 871 00:40:40,790 --> 00:40:42,980 Και τώρα είμαι πρόκειται να πάει εδώ, και είμαι πρόκειται να χρησιμοποιήσετε συντόμευση πληκτρολογίου μου. 872 00:40:42,980 --> 00:40:47,680 Πάω να πάει επάνω, επάνω, και να αλλάξετε Γεια σας 1 έως 2 γεια, Enter. 873 00:40:47,680 --> 00:40:49,260 Και ευτυχώς, έχω κάνει πρόοδο. 874 00:40:49,260 --> 00:40:52,720 >> Και τώρα είμαι πρόκειται να ανεβούν να dot κάθετος γεια και 875 00:40:52,720 --> 00:40:54,690 αλλάξει αυτό σε 2, Enter. 876 00:40:54,690 --> 00:40:55,650 Και τώρα το πρόγραμμά μου - 877 00:40:55,650 --> 00:40:57,700 Θα μεγέθυνση - είναι να πάρει λίγο πιο όμορφη. 878 00:40:57,700 --> 00:41:02,190 Όνομα πρόκειται να είναι, ας πούμε Rob αυτή τη φορά, το Enter, γεια σου, Rob. 879 00:41:02,190 --> 00:41:03,260 Μπορούμε να το κάνουμε και πάλι. 880 00:41:03,260 --> 00:41:05,360 Όνομα, Lauren, Enter. 881 00:41:05,360 --> 00:41:07,820 Όνομα, Joseph, Enter. 882 00:41:07,820 --> 00:41:11,596 Όνομα, ας προσπαθήσουμε να δύσκολη, Enter. 883 00:41:11,596 --> 00:41:12,410 Eh. 884 00:41:12,410 --> 00:41:14,680 Δεν είναι πραγματικά ένα bug. 885 00:41:14,680 --> 00:41:16,090 Γι 'αυτό είναι λίγο άσχημο. 886 00:41:16,090 --> 00:41:18,640 Έτσι, ίσως θα μπορούσαμε να λύσουμε αυτό το στο μέλλον, όχι τώρα. 887 00:41:18,640 --> 00:41:20,840 >> Αλλά πώς θα ενστικτωδώς πάει για την αντιμετώπιση 888 00:41:20,840 --> 00:41:21,990 ότι ιδιαίτερη πρόκληση; 889 00:41:21,990 --> 00:41:23,710 Φαίνεται απλά ηλίθιος. 890 00:41:23,710 --> 00:41:27,320 Πώς μπορείτε να αποφύγετε τα πράγματα αναζητούν ηλίθιος; 891 00:41:27,320 --> 00:41:29,890 Έτσι, θα μπορούσαμε να κάνουμε, εντάξει, άκουσα ένα ζευγάρι των πραγμάτων, μια κατάσταση και μια θηλιά. 892 00:41:29,890 --> 00:41:33,340 Θα μπορούσε να χρησιμοποιήσει κανείς, μια κατάσταση, για να ελέγξετε τι είναι το μήκος του string 893 00:41:33,340 --> 00:41:34,190 ο χρήστης μας έδωσε; 894 00:41:34,190 --> 00:41:37,100 Και αν είναι 0, είναι αναφέρω μόνο unquote, χτυπούν το πλήκτρο Enter, στη συνέχεια, 895 00:41:37,100 --> 00:41:38,930 ίσως θα πρέπει να φωνάζουν σε αυτούς και να τους οδηγήσει και πάλι. 896 00:41:38,930 --> 00:41:39,970 Αλλά πώς ένας τους οδηγήσει και πάλι; 897 00:41:39,970 --> 00:41:44,230 Λοιπόν, άκουσα επίσης βρόχο, και θα μπορούσα το κάνουμε αυτό ξανά και ξανά και ξανά 898 00:41:44,230 --> 00:41:47,010 προτρέπει το χρήστη για το ίδιο πράγμα. 899 00:41:47,010 --> 00:41:48,880 >> Λοιπόν, ας κάνουμε ένα άλλο παράδειγμα χρησιμοποιώντας μια διαφορετική 900 00:41:48,880 --> 00:41:50,620 λειτουργία στη βιβλιοθήκη CS50. 901 00:41:50,620 --> 00:41:52,330 Επιτρέψτε μου να κλείσω αυτό το αρχείο. 902 00:41:52,330 --> 00:41:53,510 Επιτρέψτε μου να δημιουργήσετε ένα νέο. 903 00:41:53,510 --> 00:41:58,510 Και θα το ονομάσουμε adder.c, μόνο και μόνο επειδή είναι εύκολο να το κάνουμε απλή αριθμητική, 904 00:41:58,510 --> 00:42:00,890 ακόμη και αν αυτό θα είναι εντελώς απογοητευτικό με ό, τι θα μπορούσατε να κάνετε 905 00:42:00,890 --> 00:42:02,250 με οποιοδήποτε σύγχρονο υπολογιστή. 906 00:42:02,250 --> 00:42:03,750 >> Αλλά επιτρέψτε μου να προχωρήσει τώρα και - 907 00:42:03,750 --> 00:42:10,680 Έμαθα το μάθημά μου την τελευταία φορά - περιλαμβάνουν cs50.h, περιλαμβάνουν stdio.h, int 908 00:42:10,680 --> 00:42:14,170 κύριο κενό, το οποίο, προς το παρόν, εγώ απλώς θα αναλάβει την τυφλή πίστη, αλλά υποθέτουμε 909 00:42:14,170 --> 00:42:16,380 που θα καταλάβουν τι αυτό σημαίνει ότι πριν από καιρό. 910 00:42:16,380 --> 00:42:21,030 Και Πάω να πω κάτι όπως "δώστε μου ένα int." 911 00:42:21,030 --> 00:42:22,140 >> Και τώρα, πώς μπορώ να πάρω έναν int; 912 00:42:22,140 --> 00:42:26,820 Θέλω να δηλώσω τελικά μια μεταβλητή που ονομάζεται x του τύπου int και 913 00:42:26,820 --> 00:42:29,240 αποθηκεύουν σε αυτό ένα ακέραιο αριθμό από το χρήστη. 914 00:42:29,240 --> 00:42:29,970 Έτσι, αυτό ήταν μια μπουκιά. 915 00:42:29,970 --> 00:42:35,680 Αλλά αν κάποιος θέλει να προτείνει, πώς μπορώ να δηλώσει έναν ακέραιο που ονομάζεται x; 916 00:42:35,680 --> 00:42:36,310 Int x. 917 00:42:36,310 --> 00:42:37,430 >> Έτσι, είναι πραγματικά τόσο απλό. 918 00:42:37,430 --> 00:42:38,240 Δώσε μου ένα int. 919 00:42:38,240 --> 00:42:39,070 Καλέστε το x. 920 00:42:39,070 --> 00:42:40,580 Τώρα μπορώ να χρησιμοποιήσω το φορέα ανάθεσης. 921 00:42:40,580 --> 00:42:43,400 Και πώς μπορώ να φυλάσσεται από το άφησε μια αξία του χρήστη; 922 00:42:43,400 --> 00:42:47,310 Δεν θέλω να καλέσετε GetString, προφανώς, αλλά μάλλον getint. 923 00:42:47,310 --> 00:42:49,060 Τυχόν επιχειρήματα; 924 00:42:49,060 --> 00:42:49,350 Όχι. 925 00:42:49,350 --> 00:42:51,870 Έτσι είναι ανοικτή paren, κοντά paren αμέσως, και στη συνέχεια μια 926 00:42:51,870 --> 00:42:53,440 ερωτηματικό τελειώνει τη γραμμή. 927 00:42:53,440 --> 00:42:54,930 >> Τώρα, επιτρέψτε μου να κάνω αυτό και πάλι. 928 00:42:54,930 --> 00:42:57,070 Δώστε μου ένα άλλο int. 929 00:42:57,070 --> 00:43:01,850 Αυτή τη φορά θα κάνω int, ας αποκαλούν y, ισούται getint. 930 00:43:01,850 --> 00:43:05,060 Και τώρα επιτρέψτε μου να κάνω κάτι υπερ-απλό σαν κάποια μαθηματικά. 931 00:43:05,060 --> 00:43:14,340 Έτσι printf, το άθροισμα των% d είναι η κράτησης θέσης για έναν int. 932 00:43:14,340 --> 00:43:20,030 Και% d, περίοδο, backslash-n. 933 00:43:20,030 --> 00:43:20,360 >> Εντάξει. 934 00:43:20,360 --> 00:43:21,670 Έτσι ώστε στην πραγματικότητα δεν είναι μαθηματικά. 935 00:43:21,670 --> 00:43:25,500 Αλλά αν θέλω να πω το άθροισμα αυτό αξία πλέον η τιμή αυτή ισούται με αυτό 936 00:43:25,500 --> 00:43:29,320 άλλη τιμή, πόσα επιχειρήματα σε συνολικά πρέπει να έχω δώσει printf, 937 00:43:29,320 --> 00:43:30,520 τελικά; 938 00:43:30,520 --> 00:43:31,420 Έτσι, τέσσερις, έτσι δεν είναι; 939 00:43:31,420 --> 00:43:33,790 Αυτή η συμβολοσειρά και στη συνέχεια οι τρεις τιμές. 940 00:43:33,790 --> 00:43:37,560 Έτσι το x είναι το πρώτο που θέλω να συνδεθεί πρώτα στο δ%. 941 00:43:37,560 --> 00:43:39,270 y θα είναι η επόμενη. 942 00:43:39,270 --> 00:43:42,030 >> Και τώρα το είδος θέλω να πω z, z αλλά δεν υπάρχει. 943 00:43:42,030 --> 00:43:43,190 Αλλά αυτό δεν είναι μια μεγάλη υπόθεση. 944 00:43:43,190 --> 00:43:45,440 Διότι τι θα κάνω με τα ένστικτα, ειδικά εάν είχατε μια 945 00:43:45,440 --> 00:43:47,820 γραφικά αριθμομηχανή, τι πληκτρολογείτε; 946 00:43:47,820 --> 00:43:48,760 Τι θα λέγατε για x συν y; 947 00:43:48,760 --> 00:43:50,200 Έτσι δεν είναι μια πραγματική μεταβλητή. 948 00:43:50,200 --> 00:43:51,820 Είναι απλώς το άθροισμα των δύο άλλες μεταβλητές. 949 00:43:51,820 --> 00:43:53,170 Και αυτό είναι απολύτως θεμιτό. 950 00:43:53,170 --> 00:43:56,630 C καταλαβαίνει σίγουρα απλό αριθμητική σαν αυτό. 951 00:43:56,630 --> 00:43:58,450 >> Ερωτηματικό, αποθηκεύσετε. 952 00:43:58,450 --> 00:44:02,080 Τώρα, επιτρέψτε μου να πάω εδώ κάτω και πληκτρολογήστε make αθροιστή, Enter. 953 00:44:02,080 --> 00:44:04,100 Κανένα σφάλμα, έτσι ώστε να είναι επίσης πρόοδο. 954 00:44:04,100 --> 00:44:04,890 Πληκτρολογήστε αθροιστή. 955 00:44:04,890 --> 00:44:07,100 Και άλλη συντόμευση πληκτρολογίου, αν αρχίσετε να βαρεθείτε 956 00:44:07,100 --> 00:44:08,760 με όλες τις εντολές - 957 00:44:08,760 --> 00:44:12,650 αν αρχίσετε να πληκτρολογείτε μια εντολή, όπως dot κάθετο διαφήμισης, και εκεί είναι που σας 958 00:44:12,650 --> 00:44:16,020 πλήξη κλωτσιές, συνήθως μπορείτε να χτυπήσει Tab για να κάνετε τον υπολογιστή να τελειώσει το 959 00:44:16,020 --> 00:44:20,510 υπόλοιπο της φράσης για σας αν δεν είναι διφορούμενη τι θα πρέπει να έρθει μετά διαφήμισης. 960 00:44:20,510 --> 00:44:23,950 >> Επιτρέψτε μου λοιπόν να προχωρήσει τώρα και πατήστε Enter. 961 00:44:23,950 --> 00:44:27,490 Δώσε μου ένα int, 1, 2, και ευτυχώς, είναι 3. 962 00:44:27,490 --> 00:44:29,900 Αλλά, όπως πάντα, τον έλεγχο των προγραμμάτων δεν θα πρέπει να μειωθεί στο 963 00:44:29,900 --> 00:44:30,820 ακριβώς αυτό που προσπαθούν μία φορά. 964 00:44:30,820 --> 00:44:35,560 Επιτρέψτε μου να προσπαθήσω μια υπόθεση γωνία, όπως οι αρνητικές 1, να μου δώσει 1, και ότι ένα 965 00:44:35,560 --> 00:44:36,210 ελέγχει έξω, καθώς και. 966 00:44:36,210 --> 00:44:38,870 Και εγώ μάλλον θα θέλετε να κάνετε κάποια περισσότερα αυστηρό έλεγχο, αλλά είμαι αρκετά 967 00:44:38,870 --> 00:44:40,630 άνετα με όταν αυτό είναι σε. 968 00:44:40,630 --> 00:44:43,110 >> Λοιπόν, τώρα ας προσπαθήσουμε άλλο πρόγραμμα ότι αυτή τη φορά χρησιμοποιεί ένα 969 00:44:43,110 --> 00:44:44,620 bit των άλλων σύνταξη. 970 00:44:44,620 --> 00:44:46,100 Επιτρέψτε μου να δημιουργήσετε ένα νέο αρχείο. 971 00:44:46,100 --> 00:44:51,050 Θα πάρω αυτό το conditions0.c να παρατάξει με κάποια online δείγμα κώδικα. 972 00:44:51,050 --> 00:44:55,550 Και επιτρέψτε μου να πάει μπροστά και να κάνουμε περιλαμβάνουν cs50.h, περιλαμβάνουν 973 00:44:55,550 --> 00:45:00,320 stdio.h, στο κεντρικό κενό - 974 00:45:00,320 --> 00:45:01,030 OK. 975 00:45:01,030 --> 00:45:01,850 Εκεί πάμε. 976 00:45:01,850 --> 00:45:03,010 Έχουμε πρότυπο στερεότυπο μας. 977 00:45:03,010 --> 00:45:08,170 >> Και αυτή τη φορά θα πάω να πω printf, «Θα ήθελα ένα int, παρακαλώ," μόνο για να 978 00:45:08,170 --> 00:45:10,030 κάνει την προτροπή λίγο πιο φιλικό. 979 00:45:10,030 --> 00:45:11,620 Και τώρα θέλω να πάρετε μια int από το χρήστη. 980 00:45:11,620 --> 00:45:15,010 Πάω να το ονομάσουμε n αυτή τη φορά, μόνο γιατί n ακούγεται σαν αριθμό. 981 00:45:15,010 --> 00:45:18,140 getint, και τώρα, τι κάνουμε Θέλω να κάνω με αυτό; 982 00:45:18,140 --> 00:45:21,640 Λοιπόν, αν ο n είναι - και θα μεγέθυνση - 983 00:45:21,640 --> 00:45:25,930 εάν η είναι μεγαλύτερο από μηδέν, θέλω να κάνετε τα εξής - 984 00:45:25,930 --> 00:45:36,060 printf "Θα πάρει ένα θετικό αριθμό". Αλλιώς, Πάω να πληκτρολογήσετε printf "You 985 00:45:36,060 --> 00:45:37,870 διάλεξε ένα αρνητικό 986 00:45:37,870 --> 00:45:39,650 αριθμό. «Εντάξει. 987 00:45:39,650 --> 00:45:44,410 Έτσι, το πρόγραμμα αυτό, ακόμα κι αν το έκανα γρήγορα, φαίνεται σωστό συντακτικά. 988 00:45:44,410 --> 00:45:45,010 Επιτρέψτε μου να προσπαθήσουμε αυτό. 989 00:45:45,010 --> 00:45:46,890 Κάντε όρο 0. 990 00:45:46,890 --> 00:45:47,710 Φαίνεται να τρέξει. 991 00:45:47,710 --> 00:45:49,230 Κατάσταση 0, εισαγάγετε. 992 00:45:49,230 --> 00:45:51,910 Ας δώσει ένα int 50. 993 00:45:51,910 --> 00:45:53,160 Διάλεξα ένα θετικό αριθμό. 994 00:45:53,160 --> 00:45:54,230 Ας το δοκιμάσω ξανά. 995 00:45:54,230 --> 00:45:54,930 Κατάσταση 0. 996 00:45:54,930 --> 00:45:56,260 Αρνητική 50. 997 00:45:56,260 --> 00:45:57,290 Πήρα έναν αρνητικό αριθμό. 998 00:45:57,290 --> 00:46:00,350 >> Αλλά τώρα, επιτρέψτε μου να πάρει αυτό που θα κρατήσει καλώντας μια υπόθεση γωνία, η οποία είναι περισσότερο 999 00:46:00,350 --> 00:46:04,702 μια ενδιαφέρουσα περίπτωση που νομίζετε ότι μπορεί να σας δώσει κάποιο πρόβλημα, 0. 1000 00:46:04,702 --> 00:46:07,940 Τώρα, είμαι αρκετά σίγουρος ότι αυτό είναι ένα από τα αυτές τις περιπτώσεις γωνιά όπου το μηδέν είναι 1001 00:46:07,940 --> 00:46:12,330 ούτε θετικό ούτε αρνητικό, οπότε μου πρόγραμμα, αν και σε συντακτικά 1002 00:46:12,330 --> 00:46:15,440 σωστή - συγκεντρώνει, τρέχει - δεν είναι λογικά ορθή. 1003 00:46:15,440 --> 00:46:21,050 Έτσι ποια είναι η απλή αποτύπωση εδώ αν θέλω για την ανίχνευση, αν θέλω να χειριστεί n 1004 00:46:21,050 --> 00:46:23,840 ισούται με 0 χωριστά; 1005 00:46:23,840 --> 00:46:32,980 >> Έτσι, αν είναι ίσο με 0, τότε θέλω να πω κάτι σαν printf "Διάλεξες 0." 1006 00:46:32,980 --> 00:46:33,990 Επιτρέψτε μου να προσπαθήσω αυτό τώρα. 1007 00:46:33,990 --> 00:46:38,320 Επιτρέψτε μου να επιστρέψω εδώ, καταργήστε παράθυρό μου, και recompile. 1008 00:46:38,320 --> 00:46:38,690 Χμ. 1009 00:46:38,690 --> 00:46:39,770 Ένα σφάλμα παράγουν. 1010 00:46:39,770 --> 00:46:41,630 Αλλά εγώ θέλετε να ελέγξετε εάν το η είναι ίσο με 0. 1011 00:46:41,630 --> 00:46:44,230 1012 00:46:44,230 --> 00:46:47,720 >> Έτσι και πάλι, ένα άλλο ηλίθιο πράγμα να το συνηθίσετε, ίσον είναι 1013 00:46:47,720 --> 00:46:48,910 ο φορέας ανάθεσης. 1014 00:46:48,910 --> 00:46:52,240 Έτσι, αυτό είναι πραγματικά λάθος σε αυτό, τεχνικά, μολονότι ο μεταγλωττιστής 1015 00:46:52,240 --> 00:46:56,450 προστατεύονται μου από τον εαυτό μου, θα έπαιρνα τεχνικά είναι αντιγραφή 0 στο n, η οποία 1016 00:46:56,450 --> 00:46:57,590 δεν είναι αυτό που θέλω. 1017 00:46:57,590 --> 00:47:00,950 Θέλω να ελέγχουμε την ισότητα ισούται με ίσους. 1018 00:47:00,950 --> 00:47:03,390 Και έτσι ώστε τώρα να είναι καλύτερη λύση μου. 1019 00:47:03,390 --> 00:47:07,810 >> Επιτρέψτε μου να αποθηκεύσετε ξανά στην πραγματικότητα αυτό, όπως, ας πούμε, παθήσεων1, να είναι νέες και βελτιωμένες. 1020 00:47:07,810 --> 00:47:10,480 Έτσι τώρα, αν μεταγλωττίσετε αυτό, θα ενισχύσει τις συνθήκες - 1021 00:47:10,480 --> 00:47:16,960 κραυγών - να παθήσεων1 dot κάθετος παθήσεων1, Enter, «Θα ήθελα ένα int, 1022 00:47:16,960 --> 00:47:18,760 παρακαλώ. "Πάω να πάει μπροστά και πληκτρολογήστε 50. 1023 00:47:18,760 --> 00:47:19,660 Είναι ακόμα καλό. 1024 00:47:19,660 --> 00:47:21,200 Αρνητικό 50, εξακολουθεί να είναι καλή. 1025 00:47:21,200 --> 00:47:24,920 0, και αυτό, πράγματι, ανιχνεύεται ότι πήρα 0. 1026 00:47:24,920 --> 00:47:28,200 >> Έτσι, ό, τι περισσότερο μπορώ να κάνουμε τώρα με αυτό; 1027 00:47:28,200 --> 00:47:32,280 Λοιπόν, μπορούμε σίγουρα να κάνουμε όλο και περίπλοκα πράγματα. 1028 00:47:32,280 --> 00:47:37,240 Αλλά αυτό που θα ήθελα να προτείνω είναι ότι θα καταλήξουμε σε αυτό το σημείωμα εδώ. 1029 00:47:37,240 --> 00:47:41,680 Αν σηκώσει αυτό, θα δούμε, ίσως, ένα από τα αγαπημένα καρτούν σου 1030 00:47:41,680 --> 00:47:43,326 μέχρι σήμερα ίσως ποτέ δεν κατάλαβαν. 1031 00:47:43,326 --> 00:47:46,550 1032 00:47:46,550 --> 00:47:49,520 Και αυτό είναι για την ποιότητα του γέλιου θα πρέπει να πάρετε με το CS αστεία. 1033 00:47:49,520 --> 00:47:51,060 Έτσι, αυτό είναι για το δικαίωμα. 1034 00:47:51,060 --> 00:47:54,900 >> Αλλά πιο συναρπαστικά, σκέφτηκα να μας δώσει ένα μικρό teaser για τη Δευτέρα. 1035 00:47:54,900 --> 00:47:56,430 Έτσι, έχουμε αρχίσει να χρησιμοποιούν ακέραιοι. 1036 00:47:56,430 --> 00:47:57,510 Έχουμε αναφέρονται επιπλέει. 1037 00:47:57,510 --> 00:48:00,120 Έχουμε ακόμη και αναφέρεται δίκλινα, η οποία, και πάλι, να σας δώσω αριθμούς 1038 00:48:00,120 --> 00:48:01,390 μετά δεκαδικά ψηφία. 1039 00:48:01,390 --> 00:48:04,230 >> Αλλά αποδεικνύεται ότι τα άρματα και δίκλινα, και, πραγματικά, υπολογιστές, 1040 00:48:04,230 --> 00:48:08,470 ουσιαστικά, δεν μπορούν να εκφράσουν ορισμένες τιμές με ακρίβεια. 1041 00:48:08,470 --> 00:48:12,840 Γνωρίζουμε από τα μαθήματα μαθηματικών που μπορείτε να έχει οποιοδήποτε αριθμό των αριθμών μετά τη 1042 00:48:12,840 --> 00:48:13,510 υποδιαστολή. 1043 00:48:13,510 --> 00:48:16,460 Και μπορείτε να βάλετε ακόμα μια κάθετη γραμμή να πω αυτά συνεχιστεί για πάντα. 1044 00:48:16,460 --> 00:48:18,810 >> Δυστυχώς, δεν μπορείτε πραγματικά να κάνουμε αυτό σε έναν υπολογιστή. 1045 00:48:18,810 --> 00:48:20,400 Και έτσι να προκύψουν περιπτώσεις γωνία. 1046 00:48:20,400 --> 00:48:23,120 Για παράδειγμα, ας υποθέσουμε ότι είστε κάνει κάτι οικονομικό. 1047 00:48:23,120 --> 00:48:25,700 Κάνεις τα μαθηματικά με ποσοστά, και 1048 00:48:25,700 --> 00:48:27,030 με δολάρια και σεντς. 1049 00:48:27,030 --> 00:48:29,230 Και οι σεντ δεν απαραιτήτως line up. 1050 00:48:29,230 --> 00:48:34,120 Λοιπόν, αποδεικνύεται ότι τα κλάσματα πένες μπορεί να αρχίσει να προσθέσει επάνω όταν 1051 00:48:34,120 --> 00:48:37,250 μοντελοποιηθεί με ένα σύστημα υπολογιστή κατά τέτοιο τρόπο ώστε έξυπνο 1052 00:48:37,250 --> 00:48:39,100 οι άνθρωποι μπορούν να επωφεληθούν. 1053 00:48:39,100 --> 00:48:42,650 >> Και όσοι από εσάς που δεν έχετε δει, είχα ήθελα να σας δώσω ένα 30-δεύτερο teaser του 1054 00:48:42,650 --> 00:48:48,290 μια θαυμάσια ταινία είναι γνωστή ως χώρος γραφείου, που θα δίνουν μια εικόνα ενός 1055 00:48:48,290 --> 00:48:51,205 πρόβλημα που πρέπει να αντιμετωπίσουμε πρώτο πράγμα που τη Δευτέρα. 1056 00:48:51,205 --> 00:48:53,960 Αν θα μπορούσε να αυξήσει την ένταση του ήχου λίγο, σας δίνω 30 1057 00:48:53,960 --> 00:48:55,495 δευτερόλεπτα του χώρου γραφείων. 1058 00:48:55,495 --> 00:48:55,770 >> [PLAYBACK VIDEO] 1059 00:48:55,770 --> 00:48:59,000 >> -Θέλω να πω, εσείς, εσείς δεν έχουν δείχνοντας και μπορείτε να πάρετε για να κρατήσετε τη δουλειά σας. 1060 00:48:59,000 --> 00:49:00,620 >> -Στην πραγματικότητα, είμαι προωθείται. 1061 00:49:00,620 --> 00:49:03,240 >> -Θα μπορούσε να προγραμματίσει έναν ιό που έπαιρνα rip αυτό το μέρος μακριά μεγάλο χρονικό διάστημα. 1062 00:49:03,240 --> 00:49:04,430 >> -Λοιπόν, πώς λειτουργεί; 1063 00:49:04,430 --> 00:49:06,782 >> -Κάθε φορά που υπάρχει μια τραπεζική συναλλαγή όπου ο τόκος υπολογίζεται, και εκεί 1064 00:49:06,782 --> 00:49:10,160 είναι χιλιάδες την ημέρα, ο υπολογιστής τελειώνει με αυτά τα κλάσματα ενός σεντ. 1065 00:49:10,160 --> 00:49:12,030 >> -Είμαι, όμως, δεν πρόκειται να κάνει τίποτα παράνομο. 1066 00:49:12,030 --> 00:49:12,660 >> -Παράνομη; 1067 00:49:12,660 --> 00:49:15,075 Samir, αυτή είναι η Αμερική. 1068 00:49:15,075 --> 00:49:16,570 >> -Πρέπει να Ορκίζομαι στο Θεό. 1069 00:49:16,570 --> 00:49:19,070 >> -Αν κανείς δεν ξέρει γι 'αυτό αλλά μας, εντάξει; 1070 00:49:19,070 --> 00:49:21,920 Δεν υπάρχουν μέλη της οικογένειας, δεν φίλες, κανείς. 1071 00:49:21,920 --> 00:49:22,700 >> -Φυσικά. 1072 00:49:22,700 --> 00:49:23,320 >> -Σύμφωνοι. 1073 00:49:23,320 --> 00:49:24,280 >> -Μην ανησυχείς, φίλε. 1074 00:49:24,280 --> 00:49:25,640 Εγώ δεν θα το πω σε κανέναν, είτε. 1075 00:49:25,640 --> 00:49:26,504 >> [PLAYBACK VIDEO END] 1076 00:49:26,504 --> 00:49:30,030 >> DAVID MALAN: Έτσι, αυτό, λοιπόν, είναι CS50, αυτό ήταν το Office Space, και όλα θα 1077 00:49:30,030 --> 00:49:31,465 νόημα, τη Δευτέρα. 1078 00:49:31,465 --> 00:49:33,940 Θα σας δούμε στη συνέχεια. 1079 00:49:33,940 --> 00:49:37,880 >> Αφηγητής: Στην επόμενη CS50, Rob προσαρμόζεται για να είναι από το 1080 00:49:37,880 --> 00:49:39,130 Harvard πρόγραμμα διατροφής. 1081 00:49:39,130 --> 00:49:56,160