>> LUCAS FREITAS: Εντάξει, υποθέτω τώρα είμαστε ζωντανά.
Καλώς ήρθατε στο CS50 Supersection.
Είμαστε λιγότερο άνετα.
Το όνομά μου είναι Lucas Freitas.
Είμαι ένας CS50 Head TFs.
Αυτή είναι η Lauren.
>> LAUREN CARVALHO: Γεια σου, είμαι Lauren.
Είμαι, επίσης, επικεφαλής TF για CS50.
>> LUCAS FREITAS: Σήμερα είμαστε ακριβώς πρόκειται για να δώσει μια γενική εικόνα του τι το μόνο που
παιδιά έχουν μάθει σε εβδομάδα, ελπίζω για να σας δώσει μια καλή παιδιά
αίσθηση για το τι πρέπει να ξέρετε για το πρόβλημα που ένα.
>> Ακριβώς ένα ζευγάρι ανακοινώσεις.
Πρώτα απ 'όλα, ώρες γραφείου.
Οι ώρες γραφείου συμβαίνει από τη Δευτέρα μέχρι την Πέμπτη διαφορετικές οικίες
Annenberg κάθε ημέρα.
Είναι μια πολύ καλή πηγή για σας παιδιά να έρθουν και να κάνουν ερωτήσεις, και
μιλήστε με TFs, ακόμη και ανταλλαγή ιδέες με άλλους μαθητές.
Έτσι να είστε βέβαιος να χρησιμοποιήσει αυτόν τον πόρο υπέρ σας.
>> Το δεύτερο πράγμα είναι η CS50 Appliance.
Για το τελευταίο [δεν ακούγεται]
εσείς δεν πρέπει πραγματικά να έχουν μια συσκευή.
Απλά έκανε τα πάντα τον προσωπικό σας υπολογιστή.
Αλλά για αυτό το πρόβλημα, έχετε πραγματικά να έχει μια εικονική μηχανή, έτσι ώστε να είναι
Φροντίστε να κατεβάσετε το CS50 Συσκευή και το έστησαν.
>> Και το τρίτο πράγμα είναι να είναι σίγουρος για ξεκινήσει το πρόβλημα που ASAP μόνο
γιατί είναι πολύ πιο εύκολο να βρείτε βοηθήσει όταν είστε στο
αρχή της εβδομάδας.
Επειδή οι άνθρωποι έχουν την τάση να περιμένουν έως ότου η το τελευταίο δευτερόλεπτο για να ξεκινήσει το σύνολο του προβλήματος,
και τότε θα πάμε σε ώρες γραφείου, και υπάρχει πολύς κόσμος.
Όπου και αν πάτε, τη Δευτέρα, θα πάμε για να δείτε ότι μπορείτε να μιλήσετε με TFs
λίγο πολύ για όλη τη νύχτα, και πρόκειται να είναι περισσότερο από ό, τι
στην ευχάριστη θέση να σας βοηθήσουμε.
>> LAUREN CARVALHO: Μπορώ απλώς να σταματήσει σας για μόνο ένα δευτερόλεπτο;
Έχει ο καθένας τη δυνατότητα να κατεβάσετε το CS50 Appliance;
Οι άνθρωποι προσπάθησαν;
>> LUCAS FREITAS: Για την λήψη, από τον τον τρόπο, μπορείτε να πάρετε τις οδηγίες στο
cs50.net/appliance.
>> LAUREN CARVALHO: Σωστά.
Και το κάνει να πάρει λίγο χρόνο για μας sys admins για να μπορείτε να πάρετε μια άδεια
κλειδί, ώστε να υπογράψει επάνω για το δωρεάν δοκιμή πρώτα.
Με αυτόν τον τρόπο θα το έχετε για 30 ημέρες, και στη συνέχεια να περιμένετε για το κλειδί άδειας
η οποία θα πρέπει να δώσει σας για ένα χρόνο.
>> LUCAS FREITAS: Πρώτα απ 'όλα, ας μιλήσουμε λίγο
για το CS50 Appliance.
Το CS50 συσκευή είναι στην πραγματικότητα ένα εικονικό μηχάνημα που πρόκειται να
τρέχει στο δικό σας υπολογιστή που είναι βασικά εκτελείται σε άλλο υπολογιστή
μέσα στο δικό σας υπολογιστή.
Ποια είναι αρκετά δροσερό.
Και πράγματι αυτό είναι που χρησιμοποιείται παντού.
Οι άνθρωποι που με τεχνολογία θα γνωρίζουν ότι αυτό χρησιμοποιείται όλη την ώρα.
σας;
Μπορεί να έχει πολλούς υπολογιστές σε μία συσκευή.
>> Ας πραγματικά να ρίξετε μια ματιά στη συσκευή.
Όταν πηγαίνετε στην συσκευή μετά εγγραφή, εσείς πρόκειται να πρέπει να
βάλετε το όνομά σας και να συνδεθείτε στο Χάρβαρντ ώστε να μπορούμε να σας πάρει όλους τους εγγεγραμμένους.
Θα πάμε να δούμε ουσιαστικά μόνο ένα ταπετσαρία, και στη συνέχεια το σπίτι και σκουπίδια,
και, στη συνέχεια, αυτά τα μικρά εικονίδια.
Αυτή τρεις εικόνες είναι στην πραγματικότητα η πιο σημαντικά πράγματα που μπορείτε να έχετε στο
συσκευή σας.
>> Το πρώτο είναι gedit, το οποίο είναι ένα κείμενο editor, όπως το Notepad ή παρόμοια
κάθε είδους επεξεργαστή κειμένου.
Είναι απλά κάτι που θα χρησιμοποιήσετε για να γράψετε κώδικα και στη συνέχεια να κάνουμε τα πράγματα με αυτό.
>> Το δεύτερο πράγμα που θα έχουμε εδώ είναι Chrome.
Έτσι, εάν θέλετε να χρησιμοποιήσετε το διαδίκτυο στη συσκευή, που είναι
τι μπορείτε να χρησιμοποιήσετε.
>> Και το τρίτο πράγμα είναι το τερματικό, το οποίο είναι πραγματικά πολύ γλυκιά.
Οι άνθρωποι συνήθως είναι το είδος της φοβάται το τερματικό γιατί είναι αυτό το πολύ
ντεμοντέ εφαρμογή στην οποία απλά πληκτρολογήστε ουσιαστικά τα πάντα με
πληκτρολόγιό σας.
Δεν υπάρχει πολλή αλληλεπίδρασης με το ποντίκι σας.
Αλλά στην πραγματικότητα το τερματικό κάνει πολύ καλά πράγματα.
>> Πρώτα απ 'όλα, ας περάσουν από ορισμένες εντολές που σας
μπορείτε να χρησιμοποιήσετε στο τερματικό.
>> LAUREN CARVALHO: Και μη διστάσετε να σταματήσει μας εάν έχετε οποιεσδήποτε ερωτήσεις.
>> LUCAS FREITAS: Ναι.
Έτσι, η πρώτη εντολή που έχουμε για το τερματικό είναι ls.
ls σημαίνει βασικά λίστα τα πάντα, όλα τα αρχεία και όλες οι διευθυντές,
ότι έχω στη θέση που είμαι σε.
Έτσι, αν κάνω ls εδώ, θα πάω να δω ότι έχω κάποιους καταλόγους.
Έχω την επιφάνεια εργασίας, τα downloads, οι κορμοί και τα vhosts.
Αυτά είναι μπλε, επειδή είναι όλοι οι κατάλογοι.
>> Στη συνέχεια, έχετε κάποια άλλα αρχεία.
Έχετε σαν γεια και hello.c, η οποία είναι απλά αρχεία, και είναι σε
διαφορετικά χρώματα.
Έτσι, αυτό είναι μια πολύ σημαντική εντολή μόνο μπορείτε να δείτε ποια είναι τα αρχεία
και τους καταλόγους που έχετε στον κατάλογο που
είστε στο στο τερματικό.
Όταν βλέπετε jharvard @ συσκευή και τότε το μικρό σύμβολο εκεί, ο
περισπωμένη, που σημαίνει απλά ότι αυτό είναι το κατάλογο που βρίσκεστε αυτή τη στιγμή.
>> LAUREN CARVALHO: Έτσι, πληκτρολογώντας ls είναι σχεδόν όπως κλικ στο φάκελο
που παρατίθεται εκεί, σ 'αυτό παραστάσεις σας όλο το περιεχόμενο που είναι
μέσα σε αυτόν το φάκελο.
>> ΚΟΙΝΟ: Είναι το κείμενο υπάρχει μετά την hello.c;
>> LAUREN CARVALHO: Αχ, δεν μπορείτε να δείτε ότι, επειδή είναι μπλε.
>> LUCAS FREITAS: Λέει κορμών και vhosts.
>> LAUREN CARVALHO: Αυτά είναι Απλά άλλους φακέλους.
Λυπάμαι, είναι πραγματικά δύσκολο να δούμε.
Ίσως αν είχαμε σβήσει τα φώτα;
Colton, θέλετε να δοκιμάσετε και να βρείτε το φως διακόπτη;
Λυπάμαι γι 'αυτό.
Εγώ δεν το σκέφτομαι.
>> LUCAS FREITAS: Αλλά είναι βασικά -
ναι, αν θα μπορούσε -
>> LAUREN CARVALHO: Zoom στην οθόνη σας.
>> LUCAS FREITAS: Εγώ δεν κάνω έχουν αυτό το χαρακτηριστικό.
>> LAUREN CARVALHO: [δεν ακούγεται].
OK.
Λοιπόν, υπάρχει μόνο ένα πολύ φυσικό φως σε αυτό το δωμάτιο, καθώς και.
>> LUCAS FREITAS: Ας υποθέσουμε ότι υπάρχουν άλλες δύο καταλόγους εκεί.
>> LAUREN CARVALHO: Απλά έχουμε μαζί μας.
Αυτό είναι το μόνο μέρος που θα να ψάχνει στο τερματικό.
>> LUCAS FREITAS: Η επόμενη εντολή είναι βασικά ίσως θέλετε να οργανώσετε
τα αρχεία σας -
Για παράδειγμα, όλα τα αρχεία σας σε ένα C κατάλογο-αλλά δεν έχετε ένα
κατάλογο μόνο για C αρχεία ακόμα.
Μπορείτε να δημιουργήσετε ουσιαστικά έναν κατάλογο μέσω του τερματικού, καθώς, το οποίο είναι
το ίδιο πράγμα με δεξί κλικ και λέγοντας Νέος φάκελος.
Η εντολή είναι να κάνει τον κατάλογο, η οποία είναι mkdir, οπότε ουσιαστικά «κάνουν» και
"Κατάλογο."
>> Και τότε μπορείτε να βάλετε το το όνομα του καταλόγου.
Ας πούμε ότι ήθελα να τον αποκαλούν, Δεν ξέρω, ας πούμε pset1 κάνει
αυτό, θα ήθελα απλώς δημιουργήσει ένα κατάλογο.
Ας βεβαιωθείτε ότι είναι εκεί.
Έτσι, αν κάνω ls, τώρα βλέπω τα αρχεία καταγραφής, και Στη συνέχεια pset1, και στη συνέχεια vhosts.
Έτσι έχω το νέο κατάλογο εκεί.
>> Και στη συνέχεια, αφού έχετε ένα νέο κατάλογο, ίσως θέλετε να πλοηγηθείτε
σε αυτό, έτσι ώστε η επόμενη εντολή αυτή cd, το οποίο απλά σημαίνει βασικά να πάει σε μια
συγκεκριμένο κατάλογο.
Έτσι, αν θέλω να πάω στο pset1, Μπορώ να κάνω μόνο cd pset1.
>> LAUREN CARVALHO: cd σημαίνει αλλαγή κατάλογο, [δεν ακούγεται] σε θέση να
να θυμάστε ότι.
>> LUCAS FREITAS: Και τώρα βλέπετε ότι και όχι μόνο έχουν jharvard
συσκευής, έχω jharvard συσκευή, και στη συνέχεια pset1, γιατί είναι που δείχνει
όπου είμαι εγώ σε αυτόν τον υπολογιστή.
>> Τώρα, αν θέλω να πάω πίσω στην κατάλογο που ήταν πριν από αυτό, εγώ
μπορεί να κάνει μια τελεία dot cd, το οποίο σημαίνει απλά πάτε στον κατάλογο που ήμουν πριν,
σαν γονιός αυτό κατάλογο, βασικά.
Και τώρα βλέπω ότι είμαι πίσω στην jharvard.
>> Το επόμενο πράγμα που μπορώ να το κάνω είναι rm, η οποία είναι να αφαιρέσετε ένα αρχείο.
Για παράδειγμα, ας κάνουμε πρώτα ls για να δούμε τι έχω εδώ.
Έχω γεια και hello.c.
Ας πούμε ότι θέλω να τα αφαιρέσετε.
Μπορώ να κάνω rm γεια.
Είναι πρόκειται να πει "αφαίρεση κανονικό αρχείο γεια; "Και λέω" ναι ". Και τώρα αν
κάνουμε ls, βλέπω ότι είναι δεν υπάρχει πια.
>> Αν προσπαθήσω να χρησιμοποιήσει rm για έναν κατάλογο, όμως, δεν πρόκειται
για να σας αφήσει να κάνετε τίποτα.
Δεν πρόκειται να πω, hey, Δεν μπορείτε να καταργήσετε έναν κατάλογο.
Έτσι έχουμε αυτό το άλλο έρχονται ονομάζεται rmdir, το οποίο ουσιαστικά σημαίνει απλά
αφαιρέστε τον κατάλογο.
Θα μπορεί, για παράδειγμα, αφαιρέστε pset1.
Και αν κάνω ls, εγώ δεν κάνω έχουν πια.
>> Οποιεσδήποτε ερωτήσεις σχετικά με αυτό;
Όχι;
Ναι;
>> ΚΟΙΝΟ: Είναι σημαντικό να αφήσετε ένα κενό διάστημα μετά - όποτε
αρχίσετε να πληκτρολογείτε κάτι;
>> LUCAS FREITAS: Ναι.
Αν ήθελα να κάνω cd και τον κατάλογο, Πρέπει να βάλω ένα χώρο.
Τι χώρο είναι αυτά που λες;
>> LAUREN CARVALHO: Το διάστημα μεταξύ cd και [δεν ακούγεται].
>> LUCAS FREITAS: Ναι, θα πρέπει να θέσει τους χώρους επειδή cd είναι η
εντολών, και στη συνέχεια το επόμενο κορδόνι που τύπος σας είναι ουσιαστικά ο κατάλογος.
Έτσι είναι σαν ένα επιχείρημα.
Ναι;
>> ΚΟΙΝΟ: Όταν λίστα, όλοι όσοι είναι διαφορετικούς καταλόγους, έτσι δεν είναι;
>> LUCAS FREITAS: Ναι, είναι στον κατάλογο.
>> ΚΟΙΝΟ: Τι είναι οι διαφορές μεταξύ τους καταλόγους;
>> LUCAS FREITAS: Είναι απλά διαφορετικούς φακέλους.
Directory είναι ένας φάκελος στον υπολογιστή σας.
>> ΚΟΙΝΟ: Ανοίξτε το φάκελο.
>> LUCAS FREITAS: Ναι, είναι μόνο ένα ανοικτό φάκελο.
>> LAUREN CARVALHO: Πάνω από εδώ, αυτοί που είναι σε μπλε είναι πραγματικά
καταλόγους που μπορείτε να πάρετε μέσα και Στη συνέχεια δείτε ένα σωρό πράγματα που είναι
στο πλαίσιο αυτό, το οποίο είναι ατυχές γιατί δεν μπορεί πραγματικά να διαβάσετε το
αυτά σε μπλε.
Και εκείνοι με λευκό είναι απλά αρχεία που βρίσκονται εντός του τρέχοντος καταλόγου.
>> LUCAS FREITAS: Έτσι καταλόγους είναι φάκελοι.
Τα υπόλοιπα είναι τα αρχεία.
>> ΚΟΙΝΟ: Ποια είναι η εντολή για να επαναφέρετε ή να καταργήσετε την επιλογή;
LUCAS FREITAS: Για να καθαρίσετε;
LAUREN CARVALHO: Για να καθαρίσετε;
LUCAS FREITAS: Νομίζω ότι είναι «σαφής». Ναι.
Έτσι απλά πληκτρολογήστε σαφές εάν οθόνη σας είναι πάρα πολύ βρώμικο.
Οποιεσδήποτε άλλες ερωτήσεις;
Και θα μάθετε ένα σωρό άλλα εντολές μόνο φυσικά κατά τη διάρκεια της
εξάμηνο επειδή είναι πολύ χρήσιμο.
>> Έτσι, τώρα ας μιλήσουμε για τη μεταγλώττιση.
Μιλήσαμε για ψευδοκώδικα και πηγαίο κώδικα και τον κώδικα αντικειμένου.
Και υπάρχει πολλή κωδικών, και ίσως εσείς είστε σύγχυση σχετικά με αυτό.
Ας μιλήσουμε λίγο για το τι συμβαίνει όταν είστε σύνταξη ενός προγράμματος,
και μπορείτε να το μεταγλωττίσετε, και να γίνεται ένα εκτελέσιμο αρχείο.
Όλα αυτά είναι λόγια ότι εσείς ίσως ακούσει και ίσως δεν είστε
πραγματικά βέβαιοι για το τι συμβαίνει.
>> Ας πούμε, για παράδειγμα, ότι θέλω να γράψετε ένα πρόγραμμα που λέει "γεια". Ο
το πρώτο πράγμα που έρχεται στο μυαλό σας είναι κατά κάποιο τρόπο προσπαθήστε να σκεφτείτε πως είστε
πρόκειται να το κάνουμε αυτό στο μυαλό σας, και είστε πιθανώς σκέψης στα αγγλικά ή
κάποια άλλη γλώσσα, όπως οι φυσικές γλώσσας, κατά πάσα πιθανότητα.
Και έπειτα σκέφτεστε, καλά, αν θέλω να, για παράδειγμα, να γράψει ένα πρόγραμμα που
λέει "γεια", θα ξεκινήσει ένα πρόγραμμα, Θα εκτυπώσετε γειά σου, και τότε θα
κλείστε το πρόγραμμα.
Αυτό είναι ψευδοκώδικα.
Αυτό είναι ακριβώς βασικά προσπαθείτε να καταλήξουμε σε μια ακολουθία γεγονότων
ότι θα πάμε να κάνουμε για να είναι σε θέση να γράψει ένα πρόγραμμα.
>> Στη συνέχεια, έχετε τον πηγαίο κώδικα, και ο πηγαίος κώδικας δεν πρέπει να
Συγκεκριμένα είναι σε C. Μιλάμε σχετικά με τον πηγαίο κώδικα σε C, διότι αυτό είναι
η γλώσσα που μαθαίνουμε, αλλά φυσικά κώδικας μπορεί να είναι λίγο πολύ οποιοδήποτε
γλώσσα προγραμματισμού που έχετε.
Αργότερα το εξάμηνο, θα πάμε να μάθουν άλλες γλώσσες.
Αυτό είναι, επίσης, τον πηγαίο κώδικα.
>> Για παράδειγμα, εδώ, αυτή είναι η πηγή μου κώδικα, και τότε είμαι συμπεριλαμβανομένου ενός
βιβλιοθήκη, και στη συνέχεια θα αρχίσει κύρια, και στη συνέχεια να εκτυπώσετε.
Και Laura πρόκειται να μιλήσω λίγο bit για όλα αυτά.
Έτσι, αυτό είναι ο πηγαίος κώδικας.
>> Και ποιο είναι το αντικειμενικό κώδικα;
Το αντικείμενο είναι ένα μάτσο μηδενικά και αυτοί, βασικά.
Αυτό που συμβαίνει είναι ότι αρχικά έχει ψευδοκώδικα, η οποία είναι στην αγγλική γλώσσα.
Και θέλω να πω, θα το καταλάβουν.
Μάλλον οι φίλοι σας να καταλάβει αυτό, και οι περισσότεροι άνθρωποι θα
κατανοήσουν την ιδέα.
Αλλά οι υπολογιστές είναι πραγματικά ηλίθιος, και δεν καταλαβαίνουν αγγλικά, έτσι ώστε να
έχουν το μεταφράσουμε σε κάτι, συνήθως μεταφράζεται σε κάποια
γλώσσα προγραμματισμού.
>> Και μπορείτε να σκεφτείτε έναν προγραμματισμό γλώσσα σαν ένα είδος γλώσσας
ότι σας πω πώς ο υπολογιστής σας να μιλούν και να καταλαβαίνουν.
Είσαι βασικά γράφοντας κάτι σε μια γλώσσα που οι δύο από σας και σας
υπολογιστή καταλαβαίνω.
Αυτός είναι ο πηγαίος κώδικας.
Έτσι, πηγαίνει μορφή ψευδοκώδικα στην πηγή κώδικα, είναι στο χέρι σας.
Είναι ουσιαστικά κάνεις το πρόγραμμά σας.
>> Αλλά το πρόβλημα είναι ότι η υπολογιστής δεν κάνει καν
κατανοήσουν τη γλώσσα προγραμματισμού.
Δεν καταλαβαίνουν πηγαίο κώδικα σε όλα.
Είναι πραγματικά καταλαβαίνει ακριβώς μηδενικά και μονάδες.
Έτσι έχουμε αυτό το πολύ μαγικό πράγμα που ονομάζεται ένα compiler, το οποίο ουσιαστικά είναι
πρόκειται να πάρει η πηγή που ονομάζεται ότι έγραψε σε μια γλώσσα την οποία τόσο εσείς
και τον υπολογιστή σας μιλήσει, και τώρα είστε πρόκειται να μετατρέψει αυτό σε
μηδενικά και μονάδες.
Έτσι, βασικά αυτό που ο compiler κάνει είναι παίρνει τον πηγαίο κώδικα, σε αυτή την περίπτωση C,
πρόκειται να το μετατρέψουν σε μηδενικά και αυτοί ότι ο υπολογιστής
κατανοεί και μπορεί να κάνει ένα εκτελέσιμο αρχείο έξω από αυτό.
>> Μήπως αυτό έχει νόημα;
Μπορείτε να σκεφτείτε μόνο του compiler, όπως κάποιου είδους μεταφραστή που είναι
βοηθώντας σας να εξηγήσει στον υπολογιστή ακριβώς τι έπρεπε να κάνει.
>> Αλλά πώς μπορώ να το υπολογίσουν.
Ας πάμε πίσω στην συσκευή, και ας πούμε ότι κάνω αυτό το πρόγραμμα.
Πρώτη Πάω να δημιουργήσετε έναν κατάλογο εδώ, και πάω να το ονομάσουμε
"Πρακτική". Τώρα είμαι πρόκειται να περιηγηθείτε στον κατάλογο, έτσι cd πρακτική.
Τώρα είμαι μέσα πρακτική.
>> Τώρα θέλω να ξεκινήσω gedit, ναι, πώς μπορώ να το κάνω αυτό;
Ι είτε να κάνετε κλικ εδώ, ή μπορώ απλά κυριολεκτικά πληκτρολογήστε "gedit", και πρόκειται
να ανοίξει για μένα.
>> Τώρα είμαι πρόκειται να πληκτρολογήσετε το πρόγραμμά μου, έτσι ακριβώς ό, τι έγραψα στο slide.
Είμαι με την οποία μια βιβλιοθήκη.
Κάνω int main, άκυρη.
Και τώρα κάνω printf, γεια σου.
Τώρα είμαι πρόκειται να αποθηκεύσετε αυτή.
Επιτρέψτε μου να το θέσω σε εφαρμογή, και Πάω να καλέσετε αυτό το hello.c.
Έτσι τώρα έχει σωθεί.
>> Αν θέλω να το υπολογίσουν, εγώ πραγματικά μπορεί να το κάνει σε δύο διαφορετικά σημεία.
Μπορώ να το κάνετε αυτό είτε σε ένα παράθυρο τερματικού, έτσι ώστε αυτό το μεγάλο, ή μπορείτε να
χρησιμοποιήσετε το gedit που πραγματικά έχει παράθυρο τερματικού εδώ.
Έτσι μπορείτε πολύ εύκολα απλά κάνουμε κωδικό σας, και στη συνέχεια, μπορείτε να πληκτρολογήσετε μόνο
ό, τι εδώ, και να προσπαθήσουμε να το υπολογίσουν.
>> Λοιπόν, πώς μπορώ να καταρτίσει κώδικα;
Ο ευκολότερος τρόπος που έχουμε είναι με τη χρήση κάνει, η οποία είναι μια λειτουργία που
είναι βασικά πρόκειται να καταρτίζουν τον κωδικό σας.
Απλά να πω ένα γεια κάνει, έτσι "Κάνει" και το όνομα του προγράμματος.
>> Ωχ.
Αυτό είναι περίεργο.
>> LAUREN CARVALHO: Μπορείτε να [δεν ακούγεται];
>> LUCAS FREITAS: Συγγνώμη.
Εγώ δεν το αποθηκεύσετε στο σωστό κατάλογο.
Ελάτε στην πράξη, και τώρα αποθηκεύσετε ως hello.c.
Λυπάμαι.
Τώρα είναι αποθηκευμένο.
>> Επιτρέψτε μου να κάνω μόνο την ls και να βεβαιωθείτε ότι είναι εδώ.
Εντάξει, τώρα είναι εδώ.
Έτσι τώρα, αν μου κάνουν ένα γεια, να φτύνει μια πολλά πράγματα, αλλά στη συνέχεια δίνει ακριβώς
με άλλη γραμμή για το τερματικό, το οποίο σημαίνει ότι ήταν επιτυχής.
Έτσι τώρα, αν κάνω ένα ls ξανά, εγώ πραγματικά δείτε αυτό το αρχείο στο πράσινο, η οποία είναι η
εκτελέσιμο αρχείο.
>> Και τότε, αν θέλω να το τρέξει, όλα αυτά Έχω να κάνω είναι dot κάθετος γεια.
Δεν πρόκειται να πω ένα γεια εδώ, έτσι είναι ακριβώς αυτό που είμαι αυτό ζητάω.
>> Υπάρχει ένας ακόμη τρόπος κατάρτισης, η οποία χρησιμοποιεί κλαγγή.
Clang είναι απλώς ένα compiler που έχουμε, και είναι λίγο πιο φλύαρη να
μεταγλώττιση του.
Αλλά λειτουργεί εξίσου καλά.
Έτσι, αν κάνω κλαγγή, και στη συνέχεια-o, και στη συνέχεια το όνομα που θέλετε να δώσετε στο
το εκτελέσιμο αρχείο, ας πούμε "Γεια". Και τότε το αρχείο που θέλω
για την κατάρτιση, hello.c.
Είναι, επίσης, πρόκειται να ολοκληρωθεί.
Και έχετε το αρχείο εδώ, και Μπορώ να το εκτελέσει εξίσου καλά.
Έτσι, και οι δύο από αυτούς εργάζονται.
>> Μήπως αυτό έχει νόημα;
Οποιεσδήποτε ερωτήσεις;
>> ΚΟΙΝΟ: Μπορείτε να κάνετε ζουμ σε λίγο;
>> LUCAS FREITAS: Συγγνώμη;
>> ΚΟΙΝΟ: Μεγέθυνση;
>> LAUREN CARVALHO: νομίζω ότι θα μπορεί απλώς την εντολή συν.
>> LUCAS FREITAS: Εντολή τι;
>> LAUREN CARVALHO: Command συν.
>> LUCAS FREITAS: Όχι.
>> LAUREN CARVALHO: Ω, αυτό δεν είναι πρόκειται να λειτουργήσει, επειδή -
είναι επειδή ρυθμίσετε την ανάλυση για αυτό το πράγμα.
>> LUCAS FREITAS: Εγώ δεν κάνω ότι μπορούμε να μεγεθύνετε μέσα
Ναι, δεν μπορούμε να μεγεθύνετε.
Έχετε άλλη ερώτηση;
Λυπάμαι.
>> ΚΟΙΝΟ: Μπορείτε να επαναλάβετε κλαγγή;
>> LUCAS FREITAS: Η κλαγγή;
Clang είναι το ίδιο πράγμα, όπως κάνουν, αλλά το διαφορά είναι ότι η πρώτη Πάω
να γράψει clang, η οποία είναι η εντολή, τότε Πάω να κάνω -0, όλοι, η οποία είναι
ακριβώς αυτό που πρόκειται να μαθαίνουν αργότερα ως σημαία.
Έτσι απλά σκεφτείτε ότι μπορείτε πάντα να πρέπει να βάλετε το-o.
>> Και στη συνέχεια, πρώτα, θα πάμε να θέσει το όνομα του εκτελέσιμου αρχείου,
βασικά το αρχείο που είστε πρόκειται να δημιουργηθεί.
Έτσι, μπορώ να πω, για παράδειγμα, Hello2 και τότε το αρχείο που θέλω να καταρτίσει,
η οποία είναι η c αρχείο..
Έτσι, αυτό είναι hello.c.
Μήπως αυτό έχει νόημα;
>> ΚΟΙΝΟ: Γεια σας, τι;
Τι είναι αυτό;
>> LUCAS FREITAS: hello.c.
Και αν μπορώ να συγκεντρώνουν, και αν Κάνω ls, έχω επίσης ένα
Hello2 ότι μόλις καταρτίζονται.
Και αν προσπαθώ να το τρέξει, πρόκειται να κάνουν ακριβώς το ίδιο πράγμα όπως γειά σου,
εκτυπώσετε μόνο ένα γεια.
>> ΚΟΙΝΟ: Πώς έρχονται για τη μάρκα μπορείτε να βάλετε hello.c μετά;
>> LUCAS FREITAS: Σε μάρκα, Δεν χρειάζεται να βάλετε το. c.
Σε κάνουν, απλά πείτε το το όνομα του προγράμματος.
Δεν χρειάζεται να πω. Αι.
Αλλά για κλαγγή, θα πρέπει να.
>> ΚΟΙΝΟ: Με κλαγγή μπορείτε επίσης να κάνετε πρέπει να προσθέσετε το [δεν ακούγεται]
>> LAUREN CARVALHO: Ναι.
Έτσι, θα πρέπει επίσης να βιβλιοθήκη.
>> LUCAS FREITAS: Ναι, αυτό είναι κάτι Θα χρησιμοποιήσουμε αργότερα.
Αυτό ονομάζεται σύνδεση, και νομίζω ότι είμαστε Θα μιλήσουμε για αυτό αργότερα.
Ένα άλλο ερώτημα;
>> ΚΟΙΝΟ: Μην βάζετε ένα κουδούνισμα dot κάθετος;
>> LUCAS FREITAS: Όχι.
Η κάθετος dot είναι μόνο για να ανοίξει το εκτελέσιμο αρχείο.
Έτσι κλαγγή, μπορείτε απλά να γράψετε "κλαγγή," και τότε η αν θέλετε να ανοίξετε το αρχείο
εκτελέσιμο αρχείο που μόλις καταρτίζονται, τότε μπορείτε να dot
κάθετο και το όνομα.
Μήπως αυτό έχει νόημα;
>> ΚΟΙΝΟ: Αν ήταν απλά αλλαγή [Δεν ακούγεται] στο hello world, κάνετε
πρέπει να το recompile;
>> LUCAS FREITAS: Ναι.
αν θέλω να πω, για παράδειγμα, "γεια εκεί, "μπορώ να το αποθηκεύσετε μόλις τώρα, και εγώ
απλά συγκεντρώνουν και πάλι.
Έτσι, επιτρέψτε μου να κάνω ένα make γεια.
Και αν το κάνω γειά σου, πρόκειται να πει "γεια εκεί». Έχει νόημα;
Οποιεσδήποτε άλλες ερωτήσεις;
>> ΚΟΙΝΟ: Μήπως θα πρέπει να περιλαμβάνουν τα Standard I / O για να συντονίσει το έργο;
>> LUCAS FREITAS: Ναι.
Το πρότυπο I / O είναι βασικά η βιβλιοθήκη που διαθέτει μια
εφαρμογή για την printf.
Έτσι, το δικαίωμα αυτό το πράγμα για το top περιλαμβάνει stdio.
Αυτό είναι συμπεριλαμβανομένης μιας βιβλιοθήκης που έχει βασικά μια δέσμη των διαφορετικών
εργαλεία που μπορείτε να χρησιμοποιήσετε.
ένα;
Από αυτούς είναι printf που είναι συνάρτηση που ουσιαστικά εκτυπώσεις
μηνύματα στην οθόνη.
>> Οποιεσδήποτε άλλες ερωτήσεις;
Όχι;
OK.
Έτσι τώρα ας μιλήσουμε για -
>> LAUREN CARVALHO: Ας πηγαίνετε στον οδηγό στυλ.
Θέλετε να το βρείτε μόνο εδώ μέσα;
>> LUCAS FREITAS: Έτσι θα πάμε να μιλήσει για το στυλ.
>> LAUREN CARVALHO: Ω, David δεν τελείωσε.
OK.
Γιατί δεν ερχόμαστε πίσω στυλ στο τέλος;
Είναι πραγματικά έχουν ενημερωθεί καθώς μιλάμε.
>> LUCAS FREITAS: Ναι.
Ας δρόμο για τον David να τελειώσει αυτό.
>> LAUREN CARVALHO: Can θα στραφούν στην πραγματικότητα;
>> Έτσι, ελπίζω ότι ο καθένας είναι ήδη απολαμβάνοντας Scratch.
Δυστυχώς, ήρθε η ώρα να ξεφύγουμε από αυτή -
δυστυχώς, ήρθε η ώρα να ξεφύγουμε από αυτά τα όμορφα μπλοκ προγραμματισμού
στους C. Αλλά ευτυχώς, όλα τα προγραμματισμός κατασκευάζει ότι έχετε
συνεργάζεται με το Scratch είναι άμεσα να μεταφραστούν σε C, και είμαστε
πρόκειται να αρχίσει να μάθετε για μερικά από αυτά τώρα.
Ας μιλήσουμε πρώτα για τις συνθήκες σε Boolean εκφράσεις.
>> Αυτό λειτουργεί με αποθεματικό ενέργεια της μπαταρίας.
>> LUCAS FREITAS: Πώς είναι ότι δεν λειτουργεί;
OK.
Μπορείτε να πάτε εκεί, είμαι πρόκειται να πάρει το -
>> LAUREN CARVALHO: Έτσι είναι οι συνθήκες σημαντικά γιατί μας επιτρέπουν να
εισαγάγει τη λογική στα προγράμματά μας.
Εδώ είναι ένα παράδειγμα μιας κατάστασης στο πλαίσιο ενός προγράμματος C.
Ας σημειωθεί ότι ο -
Έτσι, αυτό το μπλοκ κατάσταση εδώ, αυτό δήλωση printf δεν θα εκτελέσει
εκτός και αν η κατάσταση στο εσωτερικό της παρενθέσεις, η μεγαλύτερο από 0,
αληθής.
>> Τώρα, όλες τις προϋποθέσεις στο πλαίσιο f καταστάσεις είναι Boolean εκφράσεις,
πράγμα που σημαίνει ότι υπάρχει είναι μόνο δύο επιλογές.
Θα μπορούσε είτε να αξιολογήσει αληθές, ή μπορούν να αξιολογούν σε false.
Μέχρι εδώ, οπότε αυτό έχει νόημα, έτσι δεν είναι; n μεγαλύτερη από 0, σημαίνει ότι είναι μια θετική
αριθμό, πράγμα που σημαίνει ότι θα εκτυπώσει out "έχετε πάρει ένα θετικό αριθμό."
>> Υπάρχουν πολλές εκφράσεις Boolean που μπορούν να αποτελέσουν την κατάσταση με ένα
Δήλωση init.
Έχουμε το μικρότερο.
Αυτό είναι λιγότερο από ή ίσο με.
Αυτό είναι απλά ένα αστείο [δεν ακούγεται].
Αν θέλετε η printf να προκύψει, εάν είναι μεγαλύτερη ή ίση με μηδέν, τότε
θα επιλέξετε αυτό.
Έτσι, η αρχή της ίσης προσθέτει ακριβώς δεξιά μετά την μεγαλύτερη από σημάδι.
>> Ίσες ίσα, η οποία είναι διαφορετική από την μόνο ένα σύμβολο της ισότητας, της ίσης ίση
στην πραγματικότητα σημαίνει ότι όποια και αν είναι για το αριστερή πλευρά αυτό είναι το ίδιο όπως
τι είναι στη δεξιά πλευρά αυτής της όπου ένα σύμβολο ισότητας είναι αυτό;
Τι είναι απλώς ένα σύμβολο ισότητας;
Εκχώρηση.
>> LUCAS FREITAS: Ποιος το είπε αυτό;
Είναι ότι η καραμέλα;
Ω, όχι.
Λυπάμαι.
Μπορείτε να πάρετε δύο καραμέλα.
Ω, OK!
Τρεις άνθρωποι παίρνουν καραμέλα!
>> LAUREN CARVALHO: Έτσι, αυτό το δικαίωμα εδώ είναι ο φορέας Έκρηξη προηγείται
το σύμβολο της ισότητας, έτσι ώστε να είναι δεν είναι ίσο με.
Έτσι, αν αυτό ήταν μέσα την κατάσταση μου, το σώμα της κατάστασης θα
εκτελέσει μόνο εάν ανεξάρτητα σε η αριστερά δεν είναι το ίδιο όπως
τι είναι στα δεξιά.
>> Επίσης, μπορεί να έχει μόνο το θαυμαστικό.
Στην πραγματικότητα θα δούμε σε ένα χαρακτηριστικό γνώρισμα ολισθαίνουν πώς αυτό θα μπορούσε να χρησιμοποιηθεί.
>> LUCAS FREITAS: Οποιεσδήποτε ερωτήσεις;
Όχι;
>> LAUREN CARVALHO: Μπορούμε να συνδυάσουμε αυτά τα Boolean εκφράσεις για να κατασκευάσει περισσότερα
περίπλοκα υπό όρους δηλώσεις.
Μέχρι εδώ, αν ανεξαρτήτως του στο αριστερό πλευρά των διπλών ράβδων ή
ό, τι είναι στη δεξιά πλευρά της οι διπλές μπάρες είναι αληθής,
τότε θα εκτυπώσετε άκυρη.
Και στη συνέχεια, εδώ κάτω, αν ό, τι είναι στην αριστερή πλευρά δύο
συμπλεκτικά σύμβολα και ό, τι σχετικά με το δικαίωμα πλευρά των δύο συμπλεκτικά σύμβολα
είναι αληθής, τότε θα εκτυπώσετε ισχύει.
Οι διπλές ράβδοι ονομάζεται η λογική Ή χειριστή τα διπλά συμπλεκτικά σύμβολα είναι
ονομάζεται η λογική τελεστή AND.
Ναι;
>> ΚΟΙΝΟ: Είναι εκείνοι ακριβώς πεζά l's;
>> LAUREN CARVALHO: Όχι.
Είναι πραγματικά -
ξέρετε την σπασμωδική κίνηση, όπως πάνω από το πλήκτρο επιστροφής σας;
Βλέπεις αυτό;
>> LUCAS FREITAS: Είναι πραγματικά ένα μπαρ.
>> LAUREN CARVALHO: Είναι πραγματικά μόλις δύο μπαρ.
>> ΚΟΙΝΟ: Μπορείτε να χρησιμοποιήσετε το ίσα ίσα για έγχορδα;
>> LUCAS FREITAS: Όχι.
Εμείς πάμε για να μάθουν αργότερα κάτι γι 'αυτό.
>> LAUREN CARVALHO: Υπάρχει μια λειτουργία που μπορείτε να χρησιμοποιήσετε.
Αλλά δεν χρειάζεται να ανησυχούν ότι ακριβώς ακόμα.
>> Τι γίνεται αν έχω δώσει σε αυτό το πρόγραμμα τον αριθμό 5;
Τι θα εκτυπώσετε;
>> ΚΟΙΝΟ: [δεν ακούγεται]
έγκυρο.
>> LAUREN CARVALHO: Ισχύει;
Ναι.
Δεν ξέρω ποιος πήρε αυτό.
>> [Γέλια]
>> LAUREN CARVALHO: Αυτό είναι το είδος τρομακτικό [δεν ακούγεται].
>> ΚΟΙΝΟ: Έτσι, το διπλό και, ότι ακριβώς σημαίνει και;
>> LAUREN CARVALHO: Ναι.
Έτσι, αριθμός 5 είναι τόσο μεγαλύτερη από 0 και μικρότερο από 100.
>> ΚΟΙΝΟ: Γιατί να είναι ένα;
>> LAUREN CARVALHO: Ένα εμπορικό και είναι πραγματικά κάτι διαφορετικό, και είναι
ένας δυαδικός τελεστής, την οποία θα μάθετε για αργότερα.
Αλλά είναι κάτι που λειτουργεί πραγματικά με τα δυαδικά ψηφία ενός δεδομένου αριθμού.
>> LUCAS FREITAS: Αρκεί να σκεφτούμε ότι δεν κάνουν χρειάζεται να ανησυχείτε γι 'αυτό για τώρα.
>> LAUREN CARVALHO: Νομίζω ότι είναι μάλλον έρχεται την επόμενη εβδομάδα.
>> LUCAS FREITAS: Οποιεσδήποτε άλλες ερωτήσεις;
Όχι;
>> LAUREN CARVALHO: Έτσι, έχουμε δει ότι μια το μπλοκ μπορεί να σταθεί από μόνη της, αλλά μπορεί να
επίσης να συνδεθεί με και άλλο μπλοκ.
Έτσι, στην περίπτωση αυτή, εάν η είναι μεγαλύτερο από ό, τι 0, θα πάμε για να εκτυπώσετε "You
πήρε ένα θετικό αριθμό. "αλλιώς, δηλαδή εάν είναι 0 ή αν είναι λιγότερο
από 0, θα πάμε να εκτυπώσετε, "Θα πάρει έναν αρνητικό αριθμό."
>> Το ενδιαφέρον πράγμα εδώ είναι ότι αυτά είναι αποκλειστικά από το άλλο.
Δεν υπήρξε ποτέ πρόκειται να είναι μια υπόθεση στην οποία αυτό και αυτό
μπορεί και να εκτυπώσετε.
>> Είμαι βέβαιος ότι έχετε εργαστεί με το if / else box στο Scratch, έτσι αυτό θα πρέπει να είναι
αρκετά εξοικειωμένοι.
Ναι;
>> ΚΟΙΝΟ: Χρειαζόμαστε το διάστημα μεταξύ int n ισούται GetInt τότε το διάστημα στο
αν δήλωση;
Όπως χρησιμοποιούμε μια γραμμή [δεν ακούγεται]
>> LAUREN CARVALHO: Ω, ο χώρος εδώ;
>> ΚΟΙΝΟ: Όπως και αυτό, αλλά θα διπλασιαστεί το διάστημα.
Όχι, ανεβαίνουν.
Πήγαινε επάνω.
>> LUCAS FREITAS: Μόνο η γραμμή;
>> ΚΟΙΝΟ: Ναι.
>> LUCAS FREITAS: Ακριβώς η κενή γραμμή;
>> ΚΟΙΝΟ: Ναι.
>> LAUREN CARVALHO: Λευκά γραμμή;
Όχι.
Αυτό είναι απλά μια στιλιστική πράγμα.
>> LUCAS FREITAS: Είναι ακριβώς όπως μερικές φορές μπορείτε απλά να παραλείψουν κάποιες γραμμές έτσι
ότι ο κώδικας δεν μοιάζει ένα τεράστιο μπλοκ κειμένου.
>> LAUREN CARVALHO: Νομίζω ότι αυτό που συνέβη ήταν ότι είχαμε ένα σχόλιο εδώ, αλλά εγώ
πήρε έξω έτσι ώστε εσείς θα έχετε να σκεφτούμε τον κώδικα και όχι
από ό, τι διαβάσετε ακριβώς το σχόλιό μου.
Σε γενικές γραμμές, το διάστημα δεν θα είναι πραγματικά επηρεάζουν τον τρόπο που το πρόγραμμά σας τρέχει.
Είναι κάτι περισσότερο από ένα στυλιστικό πράγμα.
Και όταν έχουμε τον οδηγό ύφος ενημέρωση και είναι έτοιμα να ξεκινήσουν μέχρι το τέλος του
supersection, θα μιλήσουμε γι 'αυτό περισσότερο.
>> Υπάρχει κάτι λάθος με το πρόγραμμα αυτό, σωστά;
Επειδή 0 δεν είναι πραγματικά αρνητικός αριθμός.
Ας δούμε αν μπορούμε να το διορθώσουμε.
>> Μπορείτε να φανταστείτε πιθανώς με αυτό, λέει, σωστά;
Εάν n είναι μεγαλύτερη από 0, τυπώνουμε, "You πήρε ένα θετικό αριθμό. "Τότε αλλού
αν το n είναι μικρότερο από 0, "Εσύ διάλεξες ένα αρνητικός αριθμός. "αλλιώς" Διάλεξες
0. "
>> Τώρα το ενδιαφέρον πράγμα είναι ότι αυτό θα μπορούσε να συνεχιστεί επ 'αόριστον.
Μπορείτε να έχετε μια περίπτωση μπλοκ, ένα else if μπλοκ, άλλο else if block, αλλιώς αν,
else if, else if, else, βασικά για όσο διάστημα θέλετε.
Και όταν κατασκευάστηκε σαν αυτό, όλα αυτά είναι πρόκειται να είναι
αποκλειστικά από το άλλο.
Ναι;
>> ΚΟΙΝΟ: Οπότε γιατί να μην μπορείτε να χρησιμοποιήσετε μόνο άλλο, αν αντί για [δεν ακούγεται];
>> LAUREN CARVALHO: Σε αυτή την περίπτωση, ναι θα μπορούσε να χρησιμοποιήσει ένα άλλο, αν και θα ήταν
απολύτως πρόστιμο, διότι η όροι είναι οι ίδιοι
αποκλειστικά από το άλλο.
Αλλά αν οι συνθήκες δεν ήταν αποκλειστικό κάθε άλλο, αυτό θα
να τους αναγκάσουν να αξιολογήσει ποτέ και τα δύο, αν αυτό έχει νόημα.
>> ΚΟΙΝΟ: Σε αυτή την περίπτωση, θα μπορούσαμε φωλιά το δεύτερο, αν στην πρώτη περίπτωση;
>> LAUREN CARVALHO: Εάν - Τι εννοείς;
>> ΚΟΙΝΟ: Εάν οι δύο προϋποθέσεις δεν αλληλοαναιρούνται;
>> LAUREN CARVALHO: Εάν οι συνθήκες δεν αλληλοαναιρούνται;
Αλλά θέλετε μόνο ένα από αυτά για να τρέξει;
>> ΚΟΙΝΟ: Θέλετε απλά Αν αντί του άλλου.
>> LAUREN CARVALHO: Ναι.
Υπάρχουν πάντα θα είναι πολλά τρόποι που μπορείτε να το κάνετε αυτό.
Μπορείτε να τους σίγουρα φωλιά.
Και θα δείτε σε μια μελλοντική διαφάνεια που μπορείτε να έχετε πολλαπλές ifs, μόνο ένα
μετά το άλλο.
Αλλά αυτό είναι ένας τρόπος λογικά την οργάνωση της ροής του προγράμματός σας.
>> LUCAS FREITAS: Και υπάρχει ένα ακόμα πράγμα, είναι ότι ζητήσατε για την τοποθέτηση
αν και στη συνέχεια μια άλλη περίπτωση.
Αυτό θα μπορούσε να λειτουργήσει τέλεια, αλλά είναι κακό σχεδίαση, επειδή, βασικά, αν
ελέγξτε αν το πρώτο, και θα παρατηρήσετε ότι ο αριθμός είναι μεγαλύτερος από 0, μπορείτε
μπορεί να τελειώσει μόνο το πρόγραμμα.
Δεν χρειάζεται να ελέγξετε αν είναι λιγότερο από 0, σωστά;
>> Αλλά αν το κάνετε, αν, αν πρόκειται να ελέγξει και τα δύο, ενώ αν το κάνω, αν άλλος δεν είναι,
πρόκειται να ελέγξει αν είναι μεγαλύτερη από μηδέν.
Αν είναι, δεν πρόκειται καν να εξετάσουμε στις άλλες γραμμές του κώδικα.
Έτσι, είστε βασικά έλεγχο, όπως δύο φορές χωρίς λόγο, έτσι ώστε να είναι ο λόγος που
κάνω αν else if.
Οποιεσδήποτε άλλες ερωτήσεις;
>> ΚΟΙΝΟ: η λειτουργικότητα Έτσι, του αλλιώς αν είναι το ίδιο όπως
αν ήταν μόνο εάν;
>> LAUREN CARVALHO: Όχι.
Είστε πραγματικά πρόκειται να δούμε στην επόμενη μου σύρετε ένα παράδειγμα στο οποίο μπορεί
να είναι διαφορετική.
Στην περίπτωση αυτή, είναι σχεδόν το ίδιο.
>> Μέχρι εδώ, έχουμε ένα παράδειγμα των πολλαπλών αν δηλώσεις, και η
λειτουργικότητα δεν είναι το ίδιο σαν να είχα μόλις είπε πως αν
αλλιώς, αν άλλος, αν άλλος.
Ας σκεφτούμε τι θα εκτυπώσετε αν εισάγω τον αριθμό 95
σε αυτό το πρόγραμμα.
>> ΚΟΙΝΟ: [δεν ακούγεται]
>> LAUREN CARVALHO: Και μετά;
>> ΚΟΙΝΟ: [δεν ακούγεται]
>> LAUREN CARVALHO: Ναι.
Έτσι, σε αυτή την περίπτωση, οι όροι αυτοί δεν αλληλοαναιρούνται κάθε άλλο.
Και επειδή δεν υπάρχει τίποτε που να σταματά αυτή η κατάσταση από την αξιολόγηση, εάν αυτό
κάποιος έχει ήδη, είναι ακριβώς όλα πρόκειται να εκτυπώσετε.
Λοιπόν, πώς μπορώ να το διορθώσω αυτό;
>> ΚΟΙΝΟ: ifs άλλο;
>> LAUREN CARVALHO: Μπορείτε να χρησιμοποιήσετε ifs άλλο.
Θα μπορούσε να αλλάξει τη σειρά από αυτά, έτσι δεν είναι;
Αν το έκανα αυτό πρώτα;
Λοιπόν, στην πραγματικότητα, δεν υπάρχει.
Αυτό δεν θα μπορούσε να λειτουργήσει για 95.
>> LUCAS FREITAS: Όχι, μόνο τα ifs άλλο.
>> Ifs Ο άλλος: LAUREN CARVALHO θα έχουν σταθερό αυτό.
Μήπως αυτό ξεκαθαρίσει τη σύγχυση μεταξύ ifs και αλλιώς ifs;
>> ΚΟΙΝΟ: Απλά ήθελα να σας ρωτήσω, εάν Σας έκανε χρήση else if, θα σταματήσει;
>> LAUREN CARVALHO: Σωστά.
Έτσι, μόνο αυτό το πρώτο.
Αν μπήκα στο νούμερο 95, μόνο αυτό θα εκτυπωθεί, και ποτέ δεν
θα έχουν προχωρήσει στο άλλο.
>> LUCAS FREITAS: Ακριβώς το είδος της σκεφτούμε ως εάν αυτό συμβεί, να το κάνετε αυτό.
Το άλλο είναι, όπως και αν όχι, έλεγχος γι 'αυτό, και στη συνέχεια να το κάνουμε αυτό.
Έτσι, όπως είναι όλα αμοιβαία αποκλειστική.
Δεν μπορείτε να πάρετε σε δύο σε σχέση με αυτές.
>> ΚΟΙΝΟ: Μπορείτε να χρησιμοποιήσετε ένα λογικό ΚΑΙ για αυτή την κατάσταση;
>> LAUREN CARVALHO: Ναι.
Αυτός είναι ένας άλλος τρόπος που θα μπορούσαμε να έχουν καθοριστεί αυτό το πρόβλημα.
Είμαστε μπορούσε να οριστεί κυμαίνεται, έτσι δεν είναι;
Γι 'αυτό και θα μπορούσε να πει αν το n είναι μεγαλύτερο από 90 και μικρότερη από -
καλά, υποθέτω ότι αυτό δεν κάνει πραγματικά σημασία, αλλά εδώ θα μπορούσα να έχω πει, αν
η είναι μεγαλύτερο από 80 και μικρότερο από 90.
Μεγαλύτερη από 70, λιγότερο από 80.
Αυτό θα είχε επίσης εργαστεί.
>> [Γέλια]
>> LUCAS FREITAS: Φοβάται.
>> LAUREN CARVALHO: Μη φοβάστε.
>> LUCAS FREITAS: Δεν υπάρχει ότι θα είναι λάθος.
Είναι απλά ότι είναι αδικαιολόγητα φλύαρο.
Όπως και στην επιστήμη των υπολογιστών, θα πρέπει κανείς να να είναι όσο το δυνατόν απλούστερη για όσο διάστημα
έχετε τη λειτουργικότητα.
Θέλετε την καραμέλα;
>> ΚΟΙΝΟ: Μην το χρειάζεστε.
>> LAUREN CARVALHO: Τρομάζεις ο καθένας, Lucas.
>> LUCAS FREITAS: Συγγνώμη.
>> LAUREN CARVALHO: David αναφέρθηκε επίσης αυτά διακόπτη δήλωση στην τάξη.
Ουσιαστικά αυτό που συμβαίνει είναι ότι ο διακόπτης Δήλωση παίρνει μια μεταβλητή.
Σε αυτή την περίπτωση, παίρνουμε έναν ακέραιο.
>> Αν ο ακέραιος είναι 1, θα πάμε να εκτυπώσετε, "Εσύ διάλεξες ένα μικρό
αριθμό. "Αν ο ακέραιος είναι 1," You πήρε ένα μέσο αριθμό. "Αν η
ακέραιος είναι 3, "Εσύ διάλεξες ένα υψηλό αριθμό. «Και είχα επίσης μια περίπτωση αθέτησης
εδώ κάτω, αλλά είναι δεν δείχνει up, η οποία είναι πάρα πολύ κακό.
>> Βασικά, αυτό είναι απλώς άλλη σύνταξη.
Θα μπορούσαμε να εφαρμοστεί αυτή η ακριβής ίδιο πράγμα με το εάν και αλλιώς αν
καταστάσεων.
Αλλά όταν υπάρχουν πολλά διαφορετικά όροι και πολλά διαφορετικά
παραλλαγές σχετικά με το τι θέλετε να κάνετε για κάθε είσοδο, αυτό είναι μια επιλογή.
Έτσι είναι απλά μια καλή σύνταξη να ξέρετε.
Ναι;
>> ΚΟΙΝΟ: Γιατί δεν υπάρχει ένας κάθετος n στο πρώτο ένα;
>> LAUREN CARVALHO: Για εκεί πάνω;
Δεν υπάρχει κάθετος n εκεί επειδή η GetInt -
αν προσπαθήσετε αυτό, θα να σας δώσει αυτό το μήνυμα.
Δώσε μου έναν ακέραιο αριθμό μεταξύ 1 και 3.
Και αν έβαλα την αντίδραση n, θα ήταν πάρε με στην επόμενη γραμμή, αλλά εγώ απλά
ήθελε να πληκτρολογήσετε τον ακέραιο αμέσως μετά την άνω και κάτω τελεία.
Θα μπορούσε να βάλει την αντίδραση n.
Δεν είναι μια μεγάλη υπόθεση.
Ναι;
>> ΚΟΙΝΟ: Για αυτόν τον κώδικα, είναι αυτό μία περίπτωση, είναι ότι επειδή
Είναι η πρώτη υπόθεση;
Επειδή -
>> LAUREN CARVALHO: Όχι, όχι, όχι.
Έτσι, αυτό είναι να μου δώσει έναν ακέραιο μεταξύ 1 και 3.
Εάν n είναι 1, μπορώ να εκτυπώσω αυτό.
Αν μου είχε ζητήσει για τις επιστολές, θα μπορούσα να έχω είπε να μου δώσει ένα γράμμα μεταξύ Α
και C. Στη συνέχεια, αυτό θα συνέβαινε Α.
>> ΚΟΙΝΟ: [δεν ακούγεται].
Η υπόθεση θα ήταν απλά [δεν ακούγεται]
>> LAUREN CARVALHO: Ναι, σωστά.
Ναι;
>> ΚΟΙΝΟ: Τι γίνεται αν θέλετε να έχετε περισσότερο από μια σχεσιακή έκφρασης;
Έτσι, αντί να λέει n ισούται με 1, [δεν ακούγεται]
η είναι μεγαλύτερο από 1 στην πρώτη περίπτωση;
>> LAUREN CARVALHO: Στην πραγματικότητα, αν δεν το κάνω καθορίζουν ορισμένες από αυτές τις περιπτώσεις, αυτό θα
να μεταφέρουν προς τα κάτω.
Έτσι, στην πραγματικότητα, ίσως αυτό δεν είναι τι ζητάς.
>> LUCAS FREITAS: Νομίζω πως ρωτώντας εάν η υπόθεση ήταν η μεγαλύτερη από 0, περίπτωση
μικρότερη από 0.
>> LAUREN CARVALHO: Ίσως ο διακόπτης δήλωση δεν είναι πραγματικά ό, τι θέλετε
για χρήση σε αυτή την περίπτωση.
>> LUCAS FREITAS: Η δήλωση switch μόνο για την αξία, έτσι εσείς τον έλεγχο της
η τιμή είναι σαν αυτό ή εκείνο.
Έτσι, δεν μπορείτε πραγματικά θέσει όρους.
>> ΚΟΙΝΟ: Τι θα συμβεί αν το άτομο τύπους με [δεν ακούγεται];
>> LAUREN CARVALHO: Αυτό θα ήταν default περίπτωσή μου, η οποία δυστυχώς
δεν μπορείτε να δείτε.
>> LUCAS FREITAS: [δεν ακούγεται] να τους δει.
>> LAUREN CARVALHO: Στην πραγματικότητα, Ξέρεις τι;
Ας πάνε να σπουδάσουν 50, και θα το κάνω απλά μεγέθυνση στις διαφάνειες της μελέτης
50, γιατί αυτό είναι απλά ενοχλητικό.
Επιτρέψτε μου λοιπόν να πραγματικά να πάμε με την κατάσταση.
Αυτό είναι ακριβώς πρόκειται να πάρει λίγο χρόνο.
>> Εντάξει.
Έτσι, λυπάμαι.
Τουλάχιστον τώρα θα είμαστε σε θέση να δείτε πάντα χωρίς να κοπεί.
Εντάξει.
>> Έτσι, αν έβαζαν σε 10, θα προεπιλογή εδώ στην προεπιλεγμένη περίπτωσή μου, και εγώ
θα εκτυπώσετε μόνο άκυρη γιατί τους ζητηθεί να εισάγετε έναν ακέραιο
μεταξύ 1 και 3.
Οποιεσδήποτε άλλες ερωτήσεις;
Ναι;
>> ΚΟΙΝΟ: Ας πούμε για μία περίπτωση, την περίπτωση τρεις, ας πούμε ότι ήθελε να είναι όλα τα
ίδιο πράγμα, έτσι ώστε να διαλέξει έναν αριθμό αυτό δεν είναι ένα μέσο αριθμό.
Σε αυτή την περίπτωση, θα ήταν περιττή;
Θα αλλάξει μόνο το κείμενο και στις δύο από αυτούς, ή θα υπάρξει κάποια
απόλυσης;
Υπάρχει κάποιος τρόπος για να συνδυάσει υπάρχει [Δεν ακούγεται];
>> LAUREN CARVALHO: Υπάρχουν τρόποι για να συνδυασμός τους, αλλά πιστεύω ότι μπορείτε να
μόνο συνδυάζουν γειτονικά.
Έτσι, αν δεν είχα καθορίσει τίποτα για την περίπτωση των δύο, αυτό θα
ισχύουν και για τις δύο περιπτώσεις.
Αχ, αν δεν είχα βάλει τίποτα για την υπόθεση ένα, αυτό θα ισχύει για δύο
περίπτωση που ένα και δύο.
Αν αυτό έχει νόημα.
>> ΚΟΙΝΟ: Μπορείτε να επαναλάβετε το ένα;
>> LUCAS FREITAS: OK.
Αν το κάνατε ουσιαστικά, όπως, έχετε το ίδιο πράγμα, αλλά δεν βάζετε
τίποτα εδώ, θα ήθελα να είναι είτε περίπτωση που μια ή δύο περιπτώσεις, το κάνετε αυτό.
Σωστά;
Και το διάλειμμα αυτό σημαίνει ότι αν έχετε σε αυτή την περίπτωση, απλά αφήστε.
Έτσι, αυτό είναι ό, τι σημαίνει το φρένο.
Έτσι, αν έκανα ακριβώς αυτό, θα δούμε, είναι μία περίπτωση, και θα κάνει ακριβώς αυτό.
Αν ήταν την περίπτωση δύο, θα ήταν επίσης μόλις έρθει εδώ και να το κάνουμε αυτό.
>> ΚΟΙΝΟ: Αλλά μπορείτε να το κάνετε;
Αν υπάρχει κάτι για το περίπτωση δύο [δεν ακούγεται]
>> LAUREN CARVALHO: δεν πιστεύω μπορείτε να το κάνετε αυτό.
Δεν νομίζω ότι μπορείτε να παραλείψετε γύρω.
Μπορείς να το κάνεις αυτό, Rob;
Δε νομίζω.
>> ΚΟΙΝΟ: Έτσι μόνο ένας αριθμός μπορεί να πάει μετά από μια υπόθεση, σωστά;
Δεν μπορεί να υπάρξει μία περίπτωση, κόμμα, δύο;
>> LUCAS FREITAS: Όχι, δεν μπορείς.
Μπορείτε σίγουρα δεν μπορεί.
>> LAUREN CARVALHO: Θέλω να πω, το θέμα είναι αυτό είναι μια επιλογή, και αυτό μπορεί να μην
ταιριάζει στην περίπτωσή σας χρήση, οπότε τότε θα θα χρησιμοποιήσει το εάν οι συνθήκες.
>> ΚΟΙΝΟ: Επομένως, γιατί θα το κάνετε αυτό;
Ο διακόπτης;
>> LAUREN CARVALHO: Θα ήθελα να χρησιμοποιήσει αυτό εάν έχετε πολύ συγκεκριμένο -
στην πραγματικότητα, Lucas, είναι αν το κλείδωμα.
>> LUCAS FREITAS: Συγγνώμη.
>> LAUREN CARVALHO: Αν έχετε πολύ ορίζεται συμπεριφορές που θέλετε για
κάθε είσοδο, αυτό θα μπορούσε να είναι ένα λίγο πιο συνοπτικό από το γράψιμο από
μια εντολή if για κάθε μία.
>> ΚΟΙΝΟ: Τι σημαίνει η break σημαίνει πάλι;
>> LAUREN CARVALHO: Το διάλειμμα σημαίνει να σταματήσει.
Να θυμάστε, αν δεν είχα αυτό το διάλειμμα εδώ, θα είχαμε απλώς πέσει
στην επόμενη περίπτωση.
>> LUCAS FREITAS: Διάλειμμα σημαίνει να πάρει από την δήλωση switch.
Διότι αν είναι 1, θέλω να εκτυπώσετε αυτό και να φύγει.
Δεν θέλω να ελέγξετε οτιδήποτε άλλο.
>> ΚΟΙΝΟ: Δεν θέλετε να εκτυπώσετε οτιδήποτε άλλο.
>> LUCAS FREITAS: Ναι.
Επειδή είναι αμοιβαία αποκλειόμενες.
>> ΚΟΙΝΟ: Και το κάνει αυτό μόνο να προχωρήσει στην επόμενη περίπτωση που η πρώτη περίπτωση
Δεν είναι αλήθεια;
Ή μήπως να το δοκιμάσετε όλες τις περιπτώσεις την ίδια στιγμή;
>> LUCAS FREITAS: Όχι, έλεγχοι διαδοχικά.
Διαδοχικά, ναι.
Ένα ακόμα ερώτημα, τότε έχουμε να προχωρήσουμε έτσι ώστε να μπορεί να καλύψει τα πάντα.
Ναι;
>> ΚΟΙΝΟ: Έτσι, για την περίπτωση, θα μπορούσε να έχει κάνει κάτι εκτός από ακριβώς τη μία;
Θα μπορούσατε να δώσετε μια σειρά;
>> LUCAS FREITAS: Όχι.
>> LAUREN CARVALHO: Δεν νομίζω μπορείτε να δώσετε μια σειρά.
>> LUCAS FREITAS: Δεν μπορείς δεν μπορεί να δώσει μια σειρά.
>> ΚΟΙΝΟ: Η περίπτωση είναι [Δεν ακούγεται].
>> LUCAS FREITAS: Switch είναι το είδος των αξιών.
Μπορείτε να κάνει διαφορετικά πράγματα ανάλογα σε μια τιμή, μια συγκεκριμένη τιμή.
Δεν μπορείτε να κάνετε εύρος, δεν μπορείτε να κάνει τίποτα άλλο.
Είναι απλά ένα άλλο εργαλείο για να δούμε.
>> LAUREN CARVALHO: Οι περισσότεροι άνθρωποι δεν χρησιμοποιούν εναλλαγή καταστάσεων πάρα πολύ σε CS50,
αλλά είναι εκεί.
>> Εντάξει.
Έτσι, το επόμενο πράγμα που θα πάμε να μιλήσουμε σχετικά με το τριαδικό φορέα.
Αυτό είναι ακριβώς ένα άλλο είδος υπό όρους.
Βασικά αυτό που συμβαίνει εδώ είναι ότι είμαι ζητώντας έναν ακέραιο, και αν το n είναι
μεγαλύτερο από 100, Πάω να εκτυπώσετε "Υψηλό". Εάν δεν είναι, θα πάω να
εκτυπώσετε "χαμηλή".
>> Έτσι, αυτό που κάνει είναι η κατάσταση εδώ στις παρενθέσεις, και
να το είδος της σκεφτούμε την ερώτηση όπως ρωτάω αν
αυτό είναι αλήθεια ή όχι.
Αν είναι αλήθεια, είμαι πρόκειται να κάνει αυτό το πρώτο πράγμα, και αν δεν είναι αλήθεια, είμαι
πρόκειται να κάνει αυτό το δεύτερο πράγμα.
>> Οποιεσδήποτε ερωτήσεις σχετικά με την τριαδικό επιχειρηματία;
>> LUCAS FREITAS: Απλά θέλω να σημειώσετε από Ο David είναι ότι κάθε φορά που έχετε ένα
κατάσταση -
>> LAUREN CARVALHO: Υποθέτω Δαβίδ βλέποντας μέσω του live stream.
>> LUCAS FREITAS: Κάνει ζωής ρεύμα τώρα.
Έτσι, κάθε φορά που έχετε μια κατάσταση, είστε θα πρέπει να θέσει άγκιστρα,
ακριβώς όπως έχουμε σε ένα διακόπτη δήλωση εδώ.
Έχουμε άγκιστρα εδώ.
Για ό, τι όρους, είστε θα πρέπει να θέσει, επίσης, ότι.
>> LAUREN CARVALHO: Θα δείτε αυτό στον οδηγό στυλ.
Δεν έχουμε στην πραγματικότητα η Οδηγός στυλ τώρα.
Νομίζω ότι ο David εξακολουθούν να εργάζονται.
>> LUCAS FREITAS: Είπε ότι είναι ακριβώς λειτουργεί τώρα.
>> LAUREN CARVALHO: Ω, είναι να δουλεύει τώρα;
OK.
Έτσι, προφανώς φέτος στο στυλ οδηγός, ακόμα κι αν έχετε μόνο μία γραμμή,
έχετε να βάλει εκείνες άγκιστρα μέσα
Δεν χρειάζεται απαραιτήτως να για την λειτουργικότητα του προγράμματος.
Και ίσως θα πρέπει να λάβει μόνο ένα διάλειμμα αφού οι συνθήκες και να πάει κατ 'ευθείαν
με τον οδηγό στυλ για να καθαρίσετε κάποια από αυτά τα πράγματα;
>> LUCAS FREITAS: Ναι.
Έχετε μια ερώτηση;
>> ΚΟΙΝΟ: Όχι, εγώ θα περιμένω λίγο μέχρι του οδηγού στυλ.
>> ΚΟΙΝΟ: Μπορείς να πας πίσω στο τριαδικό φορέα;
>> LAUREN CARVALHO: Τριμερή, ναι.
>> LUCAS FREITAS: Τριαδικός χειριστής είναι βασικά μια if else δήλωση, αλλά
αντί να πρέπει να έχει τις δύο γραμμές από τον έλεγχο ενός αν και στη συνέχεια το
άλλο, έχετε μόνο μία γραμμή.
Έτσι, βασικά, αν θέλω να δώσω μια σειρά μια τιμή της υψηλής ή χαμηλής, και εγώ
θέλουν να κάνουν ένα υψηλό αν το n είναι μεγαλύτερο από ό, τι 100 ή χαμηλή και αν είναι λιγότερο, τι μπορώ να κάνω
είναι αυτό [δεν ακούγεται]
η σειρά πρόκειται να είναι, και στη συνέχεια θα να ζητήσει από το πρόγραμμα n μεγαλύτερη από 100;
>> Έτσι, γι 'αυτό έχω αυτή την έκφραση σε παρενθέσεις και κατόπιν
το ερωτηματικό.
Ρωτάω είναι μεγαλύτερη από 100;
Αν είναι, πρόκειται να είναι υψηλή.
Αν δεν είναι, πρόκειται να είναι χαμηλή.
>> Έτσι, βασικά αυτό που νομίζετε ότι σας ρωτήσω μια ερώτηση, έτσι ώστε να τεθεί σε παρένθεση
η κατάσταση.
Στη συνέχεια βάζετε το ερωτηματικό επειδή είστε το ζητά.
Και αν αυτό είναι αλήθεια, πρόκειται να είναι στην πρώτη τιμή [δεν ακούγεται] εδώ.
Εάν δεν είναι, θα πάω να θέσει το τιμή που είναι μετά το κόλον.
Έχει νόημα;
>> Είναι επίσης κάτι που είναι σαν μια εργαλείο σε C, αλλά δεν χρειάζεται να
να χρησιμοποιούν συγκεκριμένα.
Αλλά CS άνθρωποι συνήθως αρέσει ότι γιατί εξοικονομεί μόνο γραμμές.
>> LAUREN CARVALHO: Είναι πολύ κομψό.
Κάνει πολύ σε μία μόνο δήλωση.
>> ΚΟΙΝΟ: Έτσι, το σύμβολο τοις εκατό είναι ανεξαρτήτως μόνο τα αποτελέσματα
η προηγούμενη γραμμή;
>> LAUREN CARVALHO: Ω, λυπάμαι.
Αυτό το σύμβολο του ποσοστού είναι στην πραγματικότητα ένα σύμβολο κράτησης θέσης για αυτό το s.
Σε μια δήλωση printf, έχετε αυτό το χορδή εδώ, το οποίο είναι ό, τι πρόκειται να
εκτυπώσετε, αλλά δεν μπορείτε απλά να θέσει αυτό το s εκεί.
Σε αντίθετη περίπτωση θα εκτυπώσετε από τα s κυριολεκτικά.
Γιαυτό βάλαμε ένα τοις εκατό εδώ για να κρατήσει αυτή η θέση που κατέχουν για οποιονδήποτε
έρχεται μετά από το κόμμα.
>> Έτσι, για μια σειρά, έχεις εκατό s.
Για έναν ακέραιο αριθμό, το ποσοστό i.
Για μια float, ποσοστό f.
Θα δείτε αυτά που έχουμε δείτε περισσότερα παραδείγματα.
Αλλά ίσως θα πρέπει να μιλήσουμε για το Οδηγός στυλ για λίγο, τώρα
ότι είναι στο χέρι.
>> LUCAS FREITAS: Αν πάτε στο cs50.net/style, θα πάμε να δούμε
ο οδηγός στυλ.
Για το πρόβλημα σύνολα, το σκορ σου για την set πρόβλημα αποτελείται από το πεδίο εφαρμογής,
το οποίο ουσιαστικά σημαίνει ότι αν έκανε όλα τα μέρη του προβλήματος που ή αν
επιχειρήθηκε κάτι.
Το δεύτερο πράγμα είναι ορθότητας, η οποία μέσο είναι το πρόγραμμά σας να κάνει ό, τι
έπρεπε να κάνει, ή μήπως έχουν σφάλματα, ή δεν κάνει ό, τι
που θα έπρεπε να κάνει.
>> Το τρίτο πράγμα είναι η σχεδίαση, πράγμα που σημαίνει είναι αυτό που εφαρμόζετε αυτό καλά, ή
χρησιμοποιείτε περιττές δηλώσεις;
Έτσι, για παράδειγμα, αν θέλετε να επαναλάβετε ένας αριθμός 10 φορές, γράφεις ένα
για βρόχο ή είστε ακριβώς να κάνει 10 φορές η ίδια δήλωση, απλά κάνει
αντιγραφής και επικόλλησης.
Έτσι, ο σχεδιασμός είναι για αυτό.
>> Και τέλος, έχετε στυλ.
Στυλ είναι ακριβώς όπως κρίνει αν κωδικό σας φαίνεται
ευανάγνωστο και το είδος της αρκετά.
Σημαίνει απλά βασικά είναι ο κωδικός σας αναγνώσιμο;
Θα είναι κάποιος άλλος που έψαχνε κώδικα σας να είναι σε θέση να καταλάβει τι
είναι να κάνει;
Έχει τα σχόλια και τα παρόμοια;
>> Ας μιλήσουμε για το στυλ που είστε υποτίθεται για να χρησιμοποιήσετε.
Το πρώτο πράγμα είναι τα σχόλια.
Τα σχόλιά σας είναι πολύ σημαντικό για σας κώδικα, επειδή μερικές φορές κάνεις
το πρόγραμμά σας, και να ξέρετε ακριβώς τι θέλετε να το πράξουν μόλις αρχίσετε
κωδικοποίηση, απλά πληκτρολογήστε ένα μάτσο C. Αλλά αν κάποιος άλλος ψάχνει είναι ότι είστε
κώδικα, από όπου και αν δεν πρόκειται να είναι σε θέση να καταλαβαίνω ότι επειδή δεν ξέρουν
τα πράγματα που είναι στο κεφάλι σας, όπως η pesudocode, οπότε ίσως θα
έχουν έναν σκληρό χρόνο για να κατανοήσουν τι κάνει ο κώδικας.
>> Έτσι, τα σχόλια είναι πραγματικά χρήσιμο να εξηγήσει σε κάποιον που ψάχνει σε
κωδικό σας τι κάνει, και στην πραγματικότητα ακόμη και για σας,
ότι είναι πολύ χρήσιμο.
Όπως μπορείτε να πάτε στο πιο δύσκολο και σκληρό Psets, θα πάμε να δούμε ότι ο κώδικας παίρνει
πλέον, και στη συνέχεια τα σχόλια είναι πραγματικά σημαντικό ώστε να θυμάστε τι κάθε
μέρος του προγράμματός σας κάνει.
>> Για να βάλετε ένα σχόλιο, μπορείτε να κάνετε απλά μια slash slash και στη συνέχεια να γράψετε ένα σχόλιο.
Και ολόκληρη η γραμμή είναι μέρος ενός σχολίου, και ό, τι έχετε γράψει,
Δεν πρόκειται να είναι χρησιμοποιείται για τον κώδικα σας.
Είναι ουσιαστικά σαν τον compiler πρόκειται να το αγνοήσουμε.
Μήπως αυτό έχει νόημα;
>> ΚΟΙΝΟ: Τι κάνεις πάλι να γράψετε ένα σχόλιο;
>> LUCAS FREITAS: αυτό;
Η κάθετος κάθετος;
Κάθε φορά που πληκτρολογείτε slash slash, ανεξαρτήτως είναι σε αυτή τη γραμμή δεν πρόκειται
πρέπει να θεωρείται ότι είναι Ο. Ναι;
>> ΚΟΙΝΟ: Έτσι, μετά το σχόλιο, Απλά εισάγετε και να ξεκινήσει μια νέα γραμμή;
>> LUCAS FREITAS: Ναι, ακριβώς.
>> LAUREN CARVALHO: Η κάθετος κάθετος είναι για σχόλια ενιαία γραμμή.
>> LUCAS FREITAS: Για παράδειγμα, εδώ έχουμε -
επιτρέψτε μου μεγέθυνση -
Για παράδειγμα, εδώ είμαι με την οποία μια float, αλλά ίσως αν απλά βάλτε αυτό
στον κώδικά σας, όπως και εσείς δεν έχετε ιδέα τι κάνει αυτό, όπως και στην πραγματικότητα
κάποιον που ψάχνει σε αυτόν τον κωδικό πρόκειται να είναι, όπως, ποια είναι η
καλό συμβαίνει;
>> Αν βάλετε ένα σχόλιο λέγοντας "νεοφώτιστων Φαρενάιτ σε Κελσίου, καθιστά πολύ
περισσότερο νόημα.
Είσαι, σαν, εντάξει, είσαι κάνει μια μετατροπή.
Μήπως αυτό έχει νόημα;
Έτσι, είναι απλώς κάτι που βοηθά τους ανθρώπους έτοιμο τον κωδικό σας και επίσης να
είστε σε θέση να διοργανώνει κωδικό σας καλύτερα.
>> Το δεύτερο πράγμα είναι ότι μπορείτε να κάνετε Δείτε τα σχόλια πολλών γραμμών, έτσι ώστε να έχουν ένα
σχόλιο για μια δέσμη των γραμμών.
Αντί να χρειάζεται να βάλει κάθετος κάθετος, οι παρατηρήσεις πρώτη γραμμή, κάθετος κάθετος,
η δεύτερη γραμμή, και ούτω καθεξής, θα μπορούν να χρησιμοποιήσουν το αστέρι κάθετο.
Ο τρόπος που το κάνουν είναι ότι για το πρώτη γραμμή του σχολίου, είστε
πρόκειται να κάνει ένα αστέρι κάθετο αστέρι, έτσι ακριβώς όπως αυτό.
Ακριβώς όπως και εδώ έχουμε την αρχή της ένα πρόγραμμα, που συνήθως τίθεται ποιος είσαι
είναι, τι κάνει αυτό το πρόγραμμα, και τέτοια πράγματα.
Είναι κάτι σαν μια κεφαλίδα για το πρόγραμμα.
>> Και πάλι, δεν είναι κάτι που compiler πρόκειται να νοιάζονται, αλλά
Είναι σημαντικό για σας να ξέρετε τι είναι αυτό πρόγραμμα κάνει ή για άλλους ανθρώπους
για να ξέρετε τι το πρόγραμμά σας κάνει.
Έτσι, μπορείτε να μειώσει το αστέρι αστέρι, και στη συνέχεια το τελευταία γραμμή θα πάμε να κάνουμε αστέρων
slash να είναι σε θέση να κλείσει Το σχόλιό του.
Έτσι, βασικά για όλες τις άλλες γραμμές, μπορείτε απλά να γράψετε ό, τι, και αυτό
όλα θα πρέπει να αγνοηθεί.
>> Και επίσης, όπως ακριβώς το στυλ, θα δείτε ότι καθεμία από τις γραμμές έχει ένα αστέρι, και όλα
τα αστέρια ευθυγραμμίζονται.
Αυτά είναι σημαντικά πράγματα, ώστε ότι ο κώδικας σας φαίνεται αρκετά.
Ακούγεται καλό;
>> Τώρα, οι συνθήκες.
Τι έλεγε Δαβίδ ότι θα πρέπει πράγματι σε αυτές τις διαφάνειες, είναι ότι
όταν έχετε οποιοδήποτε είδος του, αν δηλώσεις ή κάθε είδους συνθήκες,
θα πρέπει να χρησιμοποιήσετε άγκιστρα για να δείξει ότι Αυτό είναι ό, τι επρόκειτο να συμβεί
όταν έχουν την πάθηση.
Τεχνικά, όταν έχετε μια κατάσταση και, στη συνέχεια, η επόμενη γραμμή είναι μόνο μία
γραμμή, δεν έχετε τεχνικά να θέσει τις αγκύλες.
>> Βασικά ο compiler θα καταλάβει έτσι κι αλλιώς ως σιωπηρή.
Αλλά για CS50, σας ζητάμε να βάλετε παιδιά τα άγκιστρα ακριβώς έτσι ώστε να σας
κώδικας είναι πιο οργανωμένη και πιο ευανάγνωστο.
Επειδή ο κώδικας αυτός παίρνει πλέον αν δεν έχουν άγκιστρα και τέτοια.
Παίρνει πολύ βρώμικο.
>> LAUREN CARVALHO: Αυτό είναι ακριβώς τι ο David μόλις επεσήμανε
σε προηγούμενες διαφάνειες μου.
Λειτουργεί σίγουρα χωρίς τα σγουρά τιράντες, αλλά και για λόγους στυλ
θα πάμε να ζητήσουμε να θα τα βάλετε μέσα
>> Και όταν αρχίσει να τρέχει style50, το οποίο είναι το είδος του ελέγχου 50 για
στυλ, θα σας υπενθυμίσω να το κάνετε αυτό.
>> LUCAS FREITAS: Και ένα άλλο πράγμα είναι θυμηθείτε να βάλετε τα άγκιστρα μαζί
σε κάθε γραμμή.
Έτσι, μπορείτε να κάνετε, για παράδειγμα, l's.
Μεταβείτε στην επόμενη γραμμή, ανοίξτε τα σγουρά τιράντες, τότε θα πάμε στην επόμενη γραμμή.
Εσοχή, η οποία είναι τέσσερις χώρους.
Στη συνέχεια, να γράψετε ό, τι, τότε μια άλλη γραμμή, και κλείστε το άγκιστρο.
Έτσι να είστε βέβαιος ότι τόσο εκείνοι σγουρά τιράντες είναι σε διαφορετικές γραμμές.
>> ΚΟΙΝΟ: Έτσι, αν ο κώδικας αυτός είχε σαν 10 ifs άλλο, αυτό θα πρέπει να
είναι 10 σύνολα παρένθεση;
>> LUCAS FREITAS: Ναι, για καθένα από αυτά.
Ναι.
Έτσι, αν, αλλιώς αν, και ούτω καθεξής.
>> ΚΟΙΝΟ: Δεν μπορείς να πατήσετε το πλήκτρο Tab για να εσοχή;
>> LUCAS FREITAS: Σου ζητάμε παιδιά να χρησιμοποιούν τέσσερις χώρους.
Μερικοί συντάκτες κειμένου μεταφράσει καρτέλα ως τέσσερις χώρους αυτόματα.
gedit δεν κάνει, έτσι πρέπει να κάνει space space space space.
Αυτό είναι επίσης κάτι που ορισμένοι προγραμματιστές κάνουν μόνο καρτέλες, κάποιες
προγραμματιστές κάνουν μόνο τέσσερις θέσεις, και μερικοί άλλοι άνθρωποι κάνουν ακόμη και
δύο ή τρία διαστήματα.
Είναι ακριβώς ότι εδώ ζητάμε εσείς να κάνετε τέσσερις χώρους.
>> ΚΟΙΝΟ: Υπάρχει σχεδόν σίγουρα Πρέπει να είναι ένας τρόπος για να gedit
αυτόματα [δεν ακούγεται].
Όπως και όχι [δεν ακούγεται] το κάνει αυτό.
>> LUCAS FREITAS: Ναι.
Νομίζω ότι μπορείτε να μεταβείτε στις Ρυθμίσεις.
>> ΚΟΙΝΟ: Κάνει ήδη όλα αυτά.
>> LUCAS FREITAS: Κάνει ήδη;
OK.
Έτσι, απλά να είστε σίγουροι ότι έχει τέσσερις χώρους.
>> ΚΟΙΝΟ: Μήπως πρέπει να θέσει τα σγουρά παρένθεση για βρόχους, καθώς;
>> LUCAS FREITAS: Ναι.
>> LAUREN CARVALHO: Όποτε σας εγκλείει ένα μπλοκ του κώδικα, μόνο
παρακαλούμε χρησιμοποιήστε τα άγκιστρα.
Και προτού να σκεφτείτε ότι είμαστε μόνο είναι sticklers γι 'αυτό για κανέναν καλό
λόγο, αν εσείς δεν πάει για να πάρει tech άσκησης σε μεγάλες εταιρείες,
θα σας δώσει έναν οδηγό στυλ, και θα σας πω αυτό είναι ό, τι σας
κώδικας πρέπει να μοιάσει.
Και ακόμα κι αν μάθει να κώδικα, όπως Αυτό, ίσως στην πρακτική σας
θα πρέπει να κάνουμε κάτι εντελώς διαφορετική.
Θα περιμένουμε να συμμορφώνονται για το στυλ τους.
>> LUCAS FREITAS: Και κάτι ακόμα είναι ότι μπορείτε να παρατηρήσετε πως έχω σαν x,
χώρο, λιγότερο χώρο, 0;
Κάθε φορά που ένα φορέα -
μπορεί να είναι σαν συν, μείον, άλλοτε λιγότερο, μεγαλύτερη, ανεξαρτήτως φορέα -
πρέπει να βάλετε ένα χώρο στα αριστερά και το δικαίωμα του φορέα.
>> LAUREN CARVALHO: Αυτά είναι που ονομάζεται δυαδική τελεστές.
Απλά βεβαιωθείτε ότι έχετε πάντα χώρο από δυαδικά τελεστές σας.
>> LUCAS FREITAS: Αυτό είναι όχι ένα δυαδικό τελεστή.
>> LAUREN CARVALHO: Αυτό είναι γιατί χρειάζονται δύο.
>> LUCAS FREITAS: Ω, ναι.
>> Εντάξει, οι διακόπτες.
Κατ 'αρχάς, θα πρέπει να δούμε ότι ακριβώς όπως σε μια περίπτωση ή αλλιώς δήλωση, έχετε
να θέσει το άγκιστρο στη δική της γραμμή και κάτω από το άγκιστρο εδώ.
Παρατηρήστε ότι υπάρχει ένας ενιαίος χώρος μετά την αλλαγή, όπως ακριβώς αν και αλλιώς
είχαμε ένα ενιαίο χώρο μεταξύ ότι και οι παρενθέσεις.
Έτσι, θα πρέπει να βάλετε αυτό.
>> Και δεν υπάρχει χώρος δεξιά μετά από κάθε από τις παρενθέσεις ή πριν από το τέλος
των παρενθέσεων.
Έτσι μπορείτε να δείτε ότι είναι όλα αυτά μαζί, και επίσης, όπως εδώ.
>> Ναι;
>> LAUREN CARVALHO: Νομίζω ότι πρέπει να προχωρήσουμε.
>> LUCAS FREITAS: Έτσι, αυτό είναι μέρος της Οδηγός στυλ που έχετε για το CS50.
Να είστε βέβαιος να πάει στο cs50.net/style και ρίξτε μια ματιά σε αυτό.
Όλα αυτά είναι πολύ σημαντικά για το σκορ στυλ σας.
>> Επιτρέψτε μου να επιστρέψω στην ανακοίνωση.
>> LAUREN CARVALHO: Θα προτιμούσα απλά χρησιμοποιήστε style50.
Είμαστε ακριβώς πρόκειται να πάει κατ 'ευθείαν στο βρόχους.
Εντάξει.
>> Οπότε ας πάμε πίσω στο περιεχόμενο, τώρα ότι έχουμε περάσει πάνω από τον οδηγό στυλ.
Loops, τους έχετε δει στο Scratch, και θα πάμε να μιλήσουμε για τους
Γ.
>> Σε ένα βρόχο for, υπάρχουν τρία τμήματα προς το
δήλωση αυτή για το βρόχο.
Έχετε προετοιμασίας σας που έχετε ορίσει τις μεταβλητές σας.
Έχετε την κατάστασή σας, τα οποία είναι έλεγχο για να δούμε αν κάτι είναι
αληθείς ή ψευδείς και αν η βρόχο θα πρέπει να συνεχιστεί.
Και έχεις την ενημέρωσή σας, η οποία είναι η ενημέρωση των μεταβλητών σας.
>> Ας ρίξουμε μια γρήγορη ματιά σε μερικά C κώδικα αυτό για βρόχο σε δράση.
Τι συμβαίνει εδώ είναι στην προετοιμασία, είμαστε i ρύθμιση στο 0.
Στην κατάσταση είμαστε έλεγχο αν το i είναι μικρότερο από 10.
Και στο επικαιροποιημένο είμαστε προσαύξηση i.
Έτσι, αυτό που θα προκύψει από αυτό για βρόχο;
>> LUCAS FREITAS: Στην πραγματικότητα, πρώτα απ 'όλα, κάνετε εσείς ξέρετε τι i + + είναι;
>> ΚΟΙΝΟ: Αυξημένη κατά 1.
>> LUCAS FREITAS: Αυξήθηκε κατά 1, ναι.
Έτσι, αυτό είναι το ίδιο πράγμα κάνει i ισούται με i συν 1.
Και να παρατηρήσετε ότι δεν έχουμε χώρο μεταξύ του Ι και του + +.
>> Έτσι κάνετε εσείς ξέρετε τι θα κάνετε;
Μπορεί κάποιος να μου πει;
Και ίσως να πάρει κάποια καραμέλα γιατί αυτό;
>> ΚΟΙΝΟ: [δεν ακούγεται]
>> LUCAS FREITAS: OK.
[Δεν ακούγεται]
δείξουμε σε όλους αργότερα [δεν ακούγεται].
Ναι, πρόκειται να δείξει "Αυτό CS50 είναι "10 φορές.
>> LAUREN CARVALHO: Υποθέτω ότι ήταν στον τίτλο του ολισθητήρα.
>> LUCAS FREITAS: Ω, ναι.
>> [Γέλια]
>> LUCAS FREITAS: Αυτό βοηθά.
>> LAUREN CARVALHO: Έτσι, εκείνοι είναι για βρόχους.
Εμείς πάμε να δούμε μερικά ακόμη παραδείγματα προς βρόχους αργότερα.
Αλλά ας πραγματικότητα να λάβει μια ματιά στο δεύτερο είδος βρόχου που θα συναντήσετε
σε C, και έχει καλέσει το βρόχο while.
>> Σε ένα βρόχο while, έχετε μόλις πήρε μια κατάσταση.
Η κατάσταση ελέγχεται η αρχίζουν, και αν η κατάσταση
αληθής, τότε ο κώδικας μέσα το σώμα του μπλοκ, ενώ
θα εκτελέσει.
Και ο κώδικας θα συνεχίσει να εκτελέσει, εφόσον η
κατάσταση εξακολουθεί να ισχύει.
>> Εδώ είναι ένα παράδειγμα ενός βρόχου, ενώ στο C. Εμείς πάμε για να ρυθμίσετε μετράνε 10 έως
αρχίσει με.
Όσο μετράνε είναι μεγαλύτερη από 0, θα πάμε για να κρατήσει την εκτύπωση αυτή
μεταβλητή εδώ.
Εμείς πάμε για να ελαττώνει καταμέτρηση και Στη συνέχεια ελέγξτε και πάλι την κατάσταση.
Εκτύπωση, μείωση, έλεγχος η κατάσταση και πάλι.
>> Εδώ έχουμε ένα παράδειγμα που αφορά στην ερώτησή σας νωρίτερα.
Είχαμε το ποσοστό s όταν ήμασταν εκτύπωση από μια σειρά, και τώρα που
είμαστε εκτυπώσεως int, έχουμε ένα τοις εκατό i ως αντικαταστάτης μας αντ 'αυτού.
Οι επιστολές θα πρέπει όλοι να είναι αρκετά διαισθητική, s εγχόρδων, i για int.
>> Έτσι, αν αυτός ο κώδικας εκτελεί, θα πρέπει να αντίστροφη μέτρηση 10-0, εκτύπωση
κάθε ακέραιο.
>> LUCAS FREITAS: Και μπορείτε να σκεφτείτε το τοις εκατό αισθάνεται σαν ένα κενό
χώρο, και στη συνέχεια βάζετε αυτό μεταβλητή εδώ σε αυτό το κενό.
Έτσι, για παράδειγμα, εδώ θα έχω μόνο ένα κενό, και στη συνέχεια βάζω το
μετράνε εκεί, η αξία της καταμέτρησης.
Μήπως αυτό έχει νόημα;
>> Θα ήθελα απλώς να κάνω σαν printf και στη συνέχεια παραθέτει, μετράνε;
Θα ήταν ότι το έργο;
>> ΚΟΙΝΟ: Όχι.
>> LUCAS FREITAS: Όχι, γιατί θα στην πραγματικότητα εκτυπώσετε τη λέξη "μετράνε"
αντί να τα εκτυπώνει την τιμή.
Αυτό είναι το πώς να κάνετε το εκτυπώσετε τις τιμές προς την μεταβλητή αντί
μόνο το όνομα της μεταβλητής.
Οποιεσδήποτε ερωτήσεις;
>> ΚΟΙΝΟ: Γιατί χρησιμοποιείτε για ως αντίθετες προς Ενώ;
>> LAUREN CARVALHO: Θα ήθελα να χρησιμοποιήσει ένα για βρόχο αν ξέρω ακριβώς πόσα
επαναλήψεις Θέλω βρόχο μου να τρέξει.
Στην περίπτωση αυτή, δεν έχει σημασία, διότι, Θέλω να πω, ήμουν απλώς προσπαθεί να
σκεφτείτε μια πραγματικά απλή παράδειγμα για αυτή τη διαφάνεια.
Αλλά ας πούμε ότι θέλετε κάτι να συνεχίσουμε, ενώ -
>> LUCAS FREITAS: Για παράδειγμα, είστε ζητώντας εισόδου μέχρι το πρόσωπο
σας δίνει το δικαίωμα εισόδου.
Έτσι, όπως, ενώ η είσοδος δεν είναι Εντάξει, συνεχίστε να ρωτάτε για αυτό.
Ή όπως όταν είστε οι γονείς δεν δίνουν χρήματα, έχετε ζητήσει.
>> [Γέλια]
>> LAUREN CARVALHO: Δεν ξέρετε πώς πολλές φορές θα πρέπει να το κάνουμε.
>> LUCAS FREITAS: Γιατί δεν το κάνετε ξέρω πόσες φορές αυτό είναι
πρόκειται να συνεχίσω.
>> LAUREN CARVALHO: Αλλά σε ένα βρόχο, θα πρέπει να γνωρίζετε πόσες φορές.
Ναι;
>> ΚΟΙΝΟ: Ακριβώς για να διευκρινίσει, το ποσοστό λέει ότι αυτό είναι κάτι για να
συμβεί αυτό, οι i για τον ακέραιο αριθμό, και το backslash n -
>> LAUREN CARVALHO: Μέσα;
Ποιος ξέρει τι σημαίνει το backslash n;
Νέα γραμμή, ναι.
Ακριβώς.
>> LUCAS FREITAS: Μπορείτε να σκεφτείτε ν ως νέα γραμμή.
>> LAUREN CARVALHO: Νίκαια.
>> ΚΟΙΝΟ: Τι είναι αυτός ο αριθμός παύλα παύλα [δεν ακούγεται];
>> LUCAS FREITAS: Count μείον μείον είναι το ίδιο πράγμα όπως συν συν, αλλά
αντί της αύξησης, είναι μειωμένες κατά 1.
>> LAUREN CARVALHO: Κάθε περισσότερο ενώ οι ερωτήσεις βρόχο;
Όχι;
Ω, θα έπρεπε να έχουν παραληφθεί αυτό.
>> Αυτό είναι ένα do while loop.
Πολύ παρόμοια με ένα βρόχο, ενώ εκτός αυτή την περίπτωση έχουμε ελέγξει την κατάσταση μετά
ο κώδικας στο σώμα της βρόχος εκτελείται μία φορά.
Γι 'αυτό να εκτελέσει τον κώδικα αφενός μεν, δεν έχει σημασία τι.
Στη συνέχεια, ελέγχουμε την κατάσταση, να εκτελέσει και πάλι, αν η συνθήκη είναι αληθής.
>> Θα βρείτε τον εαυτό σας χρησιμοποιώντας αυτό όταν ρωτάτε για την είσοδο του χρήστη.
Επειδή είστε πάντα θα πρέπει να ρωτήσω μια φορά, και στη συνέχεια, ανάλογα με το τι
η είσοδος του χρήστη είναι, ίσως χρειαστεί να reprompt και να ζητήσει ξανά και ξανά, αν
η είσοδος δεν ήταν ό, τι αναμένεται να είναι.
>> ΚΟΙΝΟ: Έτσι είναι σαν μια μορφή για τους ανθρώπους να συμπληρώσετε.
>> LAUREN CARVALHO: Ναι, ακριβώς.
Θα βρείτε, νομίζω, στην πρώτη σας Το chipset, εσείς πρόκειται να πρέπει να
χρησιμοποιήστε ένα βρόχο do και να συλλέξει είσοδο από το χρήστη.
>> ΚΟΙΝΟ: Ανάλογα με την κατάσταση, while loops σας θα τείνουν να τρέξει περισσότερο
συχνά από ό, τι while loops, όπως από ένα ή κάτι;
>> LAUREN CARVALHO: Αν είναι το ακριβές -
>> LUCAS FREITAS: Θα πρέπει πάντα να τρέξει το ακριβές ποσό των φορές ότι
θέλετε να εκτελεστεί.
Όπως χρησιμοποιούμε κάνουμε λίγο, γιατί πραγματικά ήθελε να πάρει την είσοδο τουλάχιστον μία φορά.
Σε while loops, μερικές φορές δεν θέλετε να εκτελέσει καθόλου, αν δεν είναι
η περίπτωση να εκτελέσει.
Έτσι ώστε να εξαρτάται από το σχεδιασμό.
Θέλω να πω, μπορείτε είτε να κάνετε χρήση, ενώ ή ενώ όσο κωδικό σας κάνει ότι
που θα έπρεπε να κάνει.
>> LAUREN CARVALHO: Αλλά το κάνω σκεφτείτε την απάντηση σας
ερώτημα είναι μάλλον ναι.
Ας πούμε ότι η κατάσταση ήταν ψευδής.
Σε μία περίπτωση, θα τρέξει μια φορά, και μια άλλη περίπτωση, θα τρέξει το μηδέν φορές.
Έτσι, ναι.
>> Οποιεσδήποτε άλλες ερωτήσεις;
Ναι;
>> ΚΟΙΝΟ: Μπορεί η προϋπόθεση του βρόχου είναι για βρόχο σε όρους μίας μεταβλητής άλλων
από ό, τι [δεν ακούγεται].
>> LAUREN CARVALHO: Ναι, μπορεί να είναι οτιδήποτε.
Πιθανώς για τους αρχίζουν Psets, σας Δεν θα πρέπει να αντιμετωπίσετε αυτή την περίπτωση, αλλά
σίγουρα μπορεί να είναι οτιδήποτε.
>> LUCAS FREITAS: Νομίζω ότι τελειώσαμε εδώ.
>> LAUREN CARVALHO: Είμαστε;
Όχι;
>> LUCAS FREITAS: Loops;
Ναι.
>> LAUREN CARVALHO: Δεν πρέπει να είμαστε.
Ω, είμαστε έτοιμοι να προχωρήσουμε με θηλιές.
OK.
>> Στην πραγματικότητα, επειδή έχουμε μιλήσει τόσο πολύ, ας πραγματικότητα όλα πλοήγηση
πάνω σε study.cs50.net/conditions.
Και θα πάμε να πλοηγηθείτε με widget τα προβλήματα.
Λοιπόν, στην πραγματικότητα, ενώ οι άνθρωποι παίρνουν αυτό που έχει συσταθεί, η μελέτη CS50 είναι
πρόκειται να είναι ένα εργαλείο που θα σας TFs χρησιμοποιήσουν για την προετοιμασία τμημάτων και η
εσείς μπορείτε να χρησιμοποιήσετε αν χάσετε τμήματα.
Είναι πρόκειται να περιέχει μια δέσμη των διαφανειών, μερικές συμβουλές και κόλπα για κάθε
το θέμα, καθώς και ορισμένα προβλήματα πρακτικής με τις λύσεις.
>> Γιατί δεν είναι όλοι απλά ρίξτε μια ματιά σε αυτό το πρόβλημα εδώ.
>> Λυπάμαι, εγώ έπρεπε να ωθήσει ανθρώπους να φέρουν φορητούς υπολογιστές σήμερα.
Αλλά αν δεν έχετε ένα φορητό υπολογιστή, αυτό είναι εντάξει.
Μπορείτε να σημειώνω μόνο αυτό κάτω σε ένα κομμάτι χαρτί ή να κοιτάξουν πέρα
ώμο του γείτονά σας.
>> Ας προσπαθήσουμε και να γράψετε ένα πρόγραμμα που ζητά από το χρήστη να λάβει μια εικασία, η
μέσος αριθμός παιδιών ανά οικογένεια μονάδα στις Ηνωμένες Πολιτείες.
Αυτός ο αριθμός είναι 2, από τον τρόπο, όπως σας να δείτε από αυτά τα παραδείγματα.
>> Θέλουμε να εκτυπώσετε μέσος αριθμός των παιδιών ανά οικογένεια στις ΗΠΑ, τότε θα
θέλουν να κάνουν τι;
Θέλουμε να συλλέγουν εισόδου από το χρήστη.
Και στη συνέχεια, ανάλογα με το τι του χρήστη εισόδου είναι, θα πάμε να εκτυπώσετε
είτε αυτό είναι σωστό ή αυτό είναι λάθος.
>> Και το πρώτο πράγμα που θα δείτε, αν κάνετε κλικ στο μικρό βέλος στο
το κάτω μέρος του widget προβλήματος είναι ένα επιτόπου να σημειώνω κάποια ψευδοκώδικα.
Έτσι δεν είστε προγραμματισμό ακόμα.
Μπορείτε απλά να πάρει σας ιδέες στην τάξη.
>> Υπάρχει κάποιος που θέλει να βοηθήσει Lucas καταλήξουμε με το δικαίωμα
pseudocode για αυτό το πρόβλημα;
>> LUCAS FREITAS: Ποιο είναι το πρώτο πράγμα που ότι θα πρέπει μάλλον να κάνουμε εδώ;
Τι πιστεύετε εσείς;
>> ΚΟΙΝΟ: [δεν ακούγεται]
>> LUCAS FREITAS: Ναι, εντάξει.
Έτσι, η εκτύπωση.
Απλά να πω την εκτύπωση αυτού του μέσου όρου αριθμός των ανθρώπων;
OK.
Εκτύπωση ερώτηση, ας πούμε.
Αφού εκτυπώσετε αυτό το θέμα, τι πρέπει να κάνω;
>> ΚΟΙΝΟ: Πάρτε την εισαγωγή.
>> LUCAS FREITAS: Πάρτε την εισαγωγή.
Οτιδήποτε άλλο;
>> ΚΟΙΝΟ: Κατάσταση.
>> LUCAS FREITAS: Κατάσταση.
>> LAUREN CARVALHO: Τι είναι αυτό κατάσταση θα είναι;
>> ΚΟΙΝΟ: Ο αριθμός των [δεν ακούγεται].
>> LAUREN CARVALHO: Σωστά.
>> LUCAS FREITAS: Λοιπόν, τι θα πάω για να ελέγξετε στην κατάσταση;
>> ΚΟΙΝΟ: Αν ισούται με 2.
>> LAUREN CARVALHO: Αν ισούται με 2.
Ακριβώς.
>> LUCAS FREITAS: Υπάρχει κάτι άλλο που πρέπει να κάνω;
>> ΚΟΙΝΟ: Count.
>> LUCAS FREITAS: Έτσι, αν είναι ίση με 2, ας πούμε -
επιτρέψτε μου να γράψει, αν εισόδου ισούται 2, τότε τι Πάω
να κάνετε είναι να εκτυπώσετε σωστά.
Και τότε τι άλλο, θα πάω να εκτυπώσετε λανθασμένη.
Οτιδήποτε άλλο;
Όχι;
>> LAUREN CARVALHO: Έτσι να κάνετε κλικ στο -
κάνει ο καθένας έχει αυτό κάτω;
>> LUCAS FREITAS: Έχει νόημα;
Έτσι τώρα ας προσπαθήσουμε να κωδικοποιήσει αυτό.
>> LAUREN CARVALHO: Αν κάνετε κλικ στο μικρό βέλος, αυτό σώζει πραγματικά σας
ψευδοκώδικα, το οποίο είναι πραγματικά συναρπαστικό.
Και μπορείτε να κάνετε εκείνα στα σχόλια αν θέλετε απλά να υπενθυμίσω στον εαυτό σας
τι πρέπει να κάνουμε.
>> LUCAS FREITAS: Έτσι, για παράδειγμα, το πρώτο Πάω να εκτυπώσετε το ζήτημα, έτσι
πώς θα πάω να το κάνουμε αυτό, στην πραγματικότητα;
printf.
Έτσι printf, και το ερώτημα είναι κατά μέσο όρο αριθμός των παιδιών ανά
οικογένεια στις ΗΠΑ.
>> Στη συνέχεια, Πάω να πάρετε είσοδο από το χρήστη.
Λοιπόν, πώς μπορώ να κάνω αυτό;
>> ΚΟΙΝΟ: Πάρτε Int.
>> LAUREN CARVALHO: GetInt.
>> LUCAS FREITAS: OK.
Έτσι, πρώτα δηλώνουμε, σωστά;
int, ας το ονομάσουμε n ισούται GetInt.
>> Και τώρα η κατάσταση.
Έτσι, επιτρέψτε μου να πω ότι θα πάω να εδώ απάντηση ελέγχου.
Έτσι ώστε πρώτα, αν η είσοδος, η οποία είναι Ν, ισούται - πώς θα πάω να γράψω αυτό;
>> ΚΟΙΝΟ: Ίσες ίσα.
>> LUCAS FREITAS: Perfect.
Έτσι, n.
Και παρατηρήσετε ότι κάνω ένα χώρο, ισούται, ισούται, το διάστημα, είναι αλήθεια.
Και τώρα τι πρέπει να κάνω;
Κάτι πολύ σημαντικό για το στυλ.
Οι αγκύλες.
>> Και στη συνέχεια, Πάω να εκτυπώσετε.
Πώς μπορώ να εκτυπώσω;
printf.
>> ΚΟΙΝΟ: Θα μπορούσε να κεφαλαιοποιηθεί;
>> LUCAS FREITAS: Όχι.
Είναι υποτίθεται ότι είναι όλα πεζά.
Έτσι, αυτό είναι σωστό.
>> Μήπως αυτό αρκεί για την printf δήλωση, ή είμαι λείπει κάτι;
>> ΚΟΙΝΟ: Νέα γραμμή.
>> LUCAS FREITAS: Νέα γραμμή, ναι.
Και τώρα αλλού.
>> ΚΟΙΝΟ: Υπάρχει χώρος εκεί μετά την printf, ή όχι;
>> LAUREN CARVALHO: Θα πρέπει να ελέγξτε τον οδηγό στυλ.
>> ΚΟΙΝΟ: Θα πρέπει να μην είναι.
>> LUCAS FREITAS: Δεν θα έπρεπε να είναι, εντάξει.
Έτσι αλλού, printf, "Αυτό είναι εσφαλμένη."
>> LAUREN CARVALHO: Ωχ, εισαγωγικά σας.
>> LUCAS FREITAS: OK.
Οτιδήποτε άλλο;
Δεν είναι καλή;
>> LAUREN CARVALHO: Να το δοκιμάσω;
>> LUCAS FREITAS: Ναι, ας το τρέξει.
Έτσι είναι κατάρτιση, και φαίνεται ότι λειτουργεί.
Ας δοκιμάσουμε δύο παιδιά.
Αυτό είναι σωστό.
Και τώρα ας τρέχει και πάλι, αλλά τώρα, αντί από την τοποθέτηση δύο παιδιά, ας
να πω ότι είμαι πρόκειται να θέσει σαν πέντε.
Αυτό είναι εσφαλμένο.
Έτσι, φαίνεται ότι λειτουργεί.
>> LAUREN CARVALHO: Γιατί δεν μπορείτε να τους δείξουμε τι θα συμβεί αν βάλεις κάτι
παράξενο, όπως και μερικά γράμματα.
>> LUCAS FREITAS: Ω, ναι.
Ας επίσης να ελέγξετε αυτό.
Τι θα συμβεί αν ο χρήστης προσπαθεί να το χάος με το πρόγραμμά σας, και το μόνο που
γράφουν, δεν ξέρω δύο.
Δεν πρόκειται να πω ξαναπροσπαθήσετε.
>> LAUREN CARVALHO: Έτσι GetInt τους ζητά για να ξαναπροσπαθήσετε.
Εμείς δεν πρέπει να φροντίσει από ότι οι ίδιοι.
>> LUCAS FREITAS: Ναι.
Έτσι, εκτός και αν έβαλα στην πραγματικότητα μια σειρά, είναι πρόκειται να κρατήσει ζητώντας μου να προσπαθήσετε ξανά.
>> ΚΟΙΝΟ: Πώς να το τρέξει;
>> LUCAS FREITAS: Απλά κάντε κλικ αυτό το κουμπί αστέρι.
>> LAUREN CARVALHO: Θα πρέπει να ανεβαίνουν.
Εκεί θα πάτε.
>> LUCAS FREITAS: Το αστέρι κουμπί εκεί.
Ναι;
>> ΚΟΙΝΟ: Έχει ζητήσει [δεν ακούγεται] με δεκαδικούς αριθμούς πάρα πολύ;
>> LAUREN CARVALHO: πιστεύω ότι θα γίνει.
>> LUCAS FREITAS: Αν το κάνει αυτό;
>> LAUREN CARVALHO: Αν πληκτρολογήσετε σε δεκαδικό αριθμό, νομίζω
πρόκειται να ζητήσει.
>> LUCAS FREITAS: Ας δούμε.
>> LAUREN CARVALHO: Επειδή δεν είναι ένα int.
>> LUCAS FREITAS: Ναι.
>> LAUREN CARVALHO: Γι 'αυτό δεν είναι ένα int, Πάρτε Int θα σας ζητήσει να προσπαθήσετε ξανά.
>> ΚΟΙΝΟ: Έτσι, όταν στην εν λόγω κώδικας θα είναι το δεκαδικό ψηφίο που ζητά η
χρήστη ότι πρέπει να εισάγετε ακέραιος συγκεκριμένα;
>> LAUREN CARVALHO: GetInt είναι στην πραγματικότητα κάνει αυτό για εμάς.
>> ΚΟΙΝΟ: Όχι, εννοώ αν θέλαμε να εισέλθουν [δεν ακούγεται]
>> LUCAS FREITAS: Μπορείτε να πείτε σαν μέσο αριθμό των παιδιών στις ΗΠΑ.
Δεν ξέρω.
Μπορούμε να πούμε, για παράδειγμα, "Παρακαλώ input ένας ακέραιος. "
>> LAUREN CARVALHO: Ένας ακέραιος αριθμός ίσος προς το μέσο αριθμό.
Θέλω να πω, αυτό είναι ακριβώς το πώς Σας λέξη, σωστά;
>> LUCAS FREITAS: Ναι.
Αυτό δεν αποτελεί μέρος της πράγματι κωδικοποίησης.
Είναι περισσότερο από ό, τι, όπως θα πάμε να θέλουν να
γράφουν στο πρόγραμμά σας.
>> ΚΟΙΝΟ: Πώς θα έχουμε τρέξει, αν ήταν στην πραγματικότητα στο gedit [δεν ακούγεται].
Αντί να πιέσετε το παιχνίδι;
>> LUCAS FREITAS: Εμείς θα Πρώτα το υπολογίσουν.
Μπορούμε να το κάνουμε με τον τρόπο μάρκα και το όνομα του αρχείου.
Και στη συνέχεια να το εκτελέσετε, θα κάνουμε dot κάθετος και το όνομα του προγράμματος.
>> ΚΟΙΝΟ: Υποθέτω ότι αυτό που εννοούσε ήταν αν θέλαμε το πρόγραμμα να ανταποκρίνεται στις
εσφαλμένη, μη έγκυρη καταχώρηση τους, δεν θα πρέπει να τεθεί σε -
>> LUCAS FREITAS: Εμείς δεν θα είναι σε θέση να το κάνουμε αυτό γιατί ο κώδικας αυτός λέει
επαναλάβετε προέρχεται από Get Int το οποίο είναι ένα λειτουργία που έχει ήδη υλοποιηθεί
για μας μέσω της βιβλιοθήκης CS50, και δεδομένου είναι ήδη εφαρμόζονται εκεί, εμείς
μπορεί όχι μόνο [δεν ακούγεται].
>> LAUREN CARVALHO: Εάν δεν χρησιμοποιείτε GetInt, τότε μπορείτε να το κάνετε αυτό.
>> LUCAS FREITAS: Ναι.
Αλλά αν είστε με τη χρήση GetInt, δεν μπορείς.
Οποιεσδήποτε άλλες ερωτήσεις;
>> ΚΟΙΝΟ: Θα μπορούσατε να έχετε πάει με παρόμοια GetFloat και στη συνέχεια να είναι σε θέση να βάλει
σε ένα δεκαδικό;
>> LUCAS FREITAS: Ναι.
>> ΚΟΙΝΟ: OK.
Στη συνέχεια, μπορείτε απλά θα μπορούσε εισόδου επιπλέουν ένα ίσον -
>> LAUREN CARVALHO: Ναι.
Ακριβώς το ίδιο, εκτός από ένα πλωτήρα, αντί του ενός int.
>> LUCAS FREITAS: Απλά να το θέσω εδώ και στη συνέχεια GetFloat εκεί.
>> ΚΟΙΝΟ: Όπως θα δείτε ή να έχουν δει -
>> LAUREN CARVALHO: έχουμε δεν πάρει ακόμα εκεί.
>> ΚΟΙΝΟ: - να κάνει ανισότητα πλωτήρες δεν [δεν ακούγεται]
>> ΚΟΙΝΟ: Τι σημαίνουν τα ερωτηματικά σημαίνουν;
>> LAUREN CARVALHO: Το ερωτηματικό απλά σημαίνει ότι αυτή η δήλωση είναι πλήρης,
και θα πάμε για να πάει στην επόμενη διαφάνεια.
>> ΚΟΙΝΟ: Γι 'αυτό είναι απαραίτητο κάθε φορά;
>> LAUREN CARVALHO: Ναι.
Λοιπόν, εντάξει, έτσι δεν είναι για αυτές τις συνθήκες, επειδή είναι
εγκλεισμού κάτι.
Έτσι, βασικά, αν κάτι προκαλεί μπορείτε στη συνέχεια να δημιουργήσετε ένα άγκιστρο
μπλοκ, δεν βάζουν ένα ερωτηματικό στο τέλος.
>> LUCAS FREITAS: Αλλά όλα άλλο, ναι.
Όταν τελειώσετε με μια δήλωση, θέσει το ερωτηματικό.
Και αν ξεχάσετε ερωτηματικά, η compiler πρόκειται να πάρει θυμωμένος μαζί σου,
και θα πάμε να έχουν να προσπαθήσουμε να το διορθώσουμε.
>> LAUREN CARVALHO: Αν βάλω ένα ερωτηματικό εδώ, ότι θα σταματήσει αυτό, και εγώ
ποτέ δεν θα πάρετε για να εκτελέσει ό, τι είναι στο εσωτερικό, από τον τρόπο.
Γι 'αυτό είναι ένα από αυτά τα κοινά σφάλματα.
>> ΚΟΙΝΟ: Πάντα εκτέλεσης.
>> LAUREN CARVALHO: Ναι.
Σε αυτή την περίπτωση, θα είναι πάντα εκτελέσει ό, τι είναι μέσα.
>> ΚΟΙΝΟ: Το στυλ σας [δεν ακούγεται] αποδίδουν αυτό για σας, σκέφτηκε.
>> LAUREN CARVALHO: Ω, αυτό είναι αλήθεια.
>> ΚΟΙΝΟ: [δεν ακούγεται] ενιαίας γραμμή πράγμα που [δεν ακούγεται]
>> ΚΟΙΝΟ: Ναι;
>> ΚΟΙΝΟ: Μπορείτε να έχετε πολλαπλές εισόδους σε μία γραμμή;
Έτσι, όπως μπορείτε να ζητούν από τους χρήστες να εκτυπώσετε δύο πράγματα;
>> LAUREN CARVALHO: Χωρίς τη χρήση -
>> LUCAS FREITAS: Όχι.
Ας πούμε ότι θέλω επίσης για να πάρει αυτό το ακέραιο m.
Θα πρέπει να το κάνουμε σε μια διαφορετική γραμμή.
>> ΚΟΙΝΟ: Εάν επρόκειτο να εκτελέσετε ότι, πώς [δεν ακούγεται];
Θα εκτυπώσετε την προτροπή υπάρχει [δεν ακούγεται]
και τότε θα μπει σε μια και -
>> LAUREN CARVALHO: Λοιπόν, να τρέξει.
Θέλω να πω, δεν υπάρχει τίποτα που να μας εμποδίζει απλά να τρέχει και να δει τι
θα συμβεί.
>> LUCAS FREITAS: Νομίζω ότι είναι πρόκειται να καταγγέλλει μας
γιατί δεν χρησιμοποιείτε -
>> LAUREN CARVALHO: Ωχ.
>> LUCAS FREITAS: Επέκρινε σε εμάς δεξιά τώρα γιατί δεν χρησιμοποιείτε αυτό
μεταβλητή, αλλά αν το έκανα, για παράδειγμα, η είναι ίσο με ισούται προς, και το m ισούται
ισούται με, τότε τι θα να συμβεί σε αυτή την περίπτωση;
Τι θα ήταν αυτό το πρόγραμμα;
>> ΚΟΙΝΟ: Είμαι απλώς αναρωτιέται πώς θα ήταν -
>> LAUREN CARVALHO: Θέλει απλά να ξέρετε πώς φαίνεται
όπως, νομίζω, έτσι δεν είναι;
Γι 'αυτό πήρε ένα από αυτά, και στη συνέχεια πήρε το δεύτερο.
>> Νομίζω ότι πρέπει να προχωρήσουμε, γιατί έχουμε ένα ακόμη
slide show, για να πάει πριν -
θέλεις να σηκώσει τα μαθηματικά;
>> LUCAS FREITAS: Ναι, τα μαθηματικά.
>> LAUREN CARVALHO: Δώστε με μόλις ένα δευτερόλεπτο.
>> Υπάρχουν μερικές διαφορετικές αριθμητικές μεταβλητές στα δεδομένα C. Αριθμητική σε C
μπορεί να ταξινομηθεί σε διαφορετικούς τύπους, και αυτοί είναι αυτοί που θα
δείτε τα πιο συχνά.
>> Και int είναι ένας ακέραιος αριθμός.
Μπορείτε δεν μπορεί να έχει δεκαδικά ψηφία.
Στη συσκευή, παίρνει 32 bits για την αποθήκευση ενός int.
>> Ο πλωτήρας μπορεί να έχει δεκαδικά ψηφία.
Λαμβάνει επίσης 32 bits για την αποθήκευση ένα πλωτήρα στη συσκευή.
>> Ένα διπλό είναι ένας αριθμός με ένα δεκαδικό σημείο που παίρνει 64 bits για να το αποθηκεύσετε,
πράγμα που σημαίνει ότι μπορείτε να έχετε μόνο μεγαλύτερη ακρίβεια, επειδή
μπορείτε να έχετε περισσότερα -
τι το λες;
>> LUCAS FREITAS: Ναι, αυτό είναι περισσότερο.
>> LAUREN CARVALHO: Περισσότερες θέσεις μετά την υποδιαστολή.
Και ένα μεγάλο χρονικό διάστημα είναι ένας ακέραιος αριθμός που διαρκεί 64 bits για να
πληγή είναι στην συσκευή.
>> LUCAS FREITAS: Έτσι μπορεί να είναι μεγαλύτερο από ints μπορεί να είναι.
>> LAUREN CARVALHO: Το πράγμα σχετικά με τα δεδομένα τύποι σε C είναι ότι θα σας πει τι
το είδος των δεδομένων που μπορεί να αποθηκεύσει στη μεταβλητή σας.
Θα σας πω πώς μπορείτε να χρησιμοποιήσετε αυτό το μεταβλητή στο πρόγραμμά σας.
Είναι πολύ σημαντικό να κρατήσει μόνο κομμάτι από ποιο τύπο δεδομένων που χρησιμοποιείτε, και αν
χρειάζεται να ρίχνει από ένα τύπο δεδομένων στο άλλο, βεβαιωθείτε ότι γνωρίζετε
ακριβώς τι συμβαίνει όταν η χύτευση πραγματοποιείται.
Και θα δείτε ένα παράδειγμα αργότερα στις σε αυτές τις διαφάνειες από μια
λάθος που μπορεί να συμβεί.
>> Ας ρίξουμε μια ματιά σε μερικά μαθηματικά σε C και ότι πραγματικά προσεκτικά, υποθέτω,
σχετικά με το τι συμβαίνει όταν αυτό μαθηματικά λαμβάνει χώρα.
Στην πρώτη γραμμή, τι είναι συμβαίνει όταν δηλώνω x;
>> ΚΟΙΝΟ: Είσαι επιτρέποντας x να είναι κάτι;
>> LAUREN CARVALHO: Ναι.
Λοιπόν, είμαι πραγματικά ζητώντας από το λειτουργικό Σύστημα για 32 bits μνήμης, σωστά;
Στην οποία μπορεί να αποθηκεύσει έναν int, και Πάω να καλέσετε αυτό το int x.
>> LUCAS FREITAS: Βασικά πρόκειται στη μνήμη και την εξεύρεση μια θέση που έχει 32
bits και λέει, hey, θέλω αυτό το χώρο, και πρόκειται να ονομάζεται x.
Έτσι, είστε ακριβώς λίγο πολύ εύρημα ένα κουτί στη μνήμη σας
κατάστημα τιμές για το x.
>> LAUREN CARVALHO: Και τότε θα προετοιμαστεί x, πράγμα που σημαίνει ότι αποθηκεύουν μόνο το
τιμή 2 σε αυτή τη θέση, λόγω κομμάτι της μνήμης, ότι ζητήσαμε λειτουργίας
σύστημα.
Και εδώ κάτω τι κάνουμε είναι είμαστε πραγματικά δήλωσης και
την προετοιμασία y σε μία γραμμή αντί του σε δύο γραμμές, όπως κάναμε μέχρι εδώ,
η οποία είναι επίσης μια απολύτως εντάξει, είμαστε προσθέτοντας 1 x, και είμαστε αποθήκευση ότι
τιμή στο y.
>> LUCAS FREITAS: Έτσι, βασικά ό, τι αυτό γραμμή κάνει, τώρα βρίσκει ένα κουτί για το y,
και τότε η αξία της, το πράγμα που θα πάμε να βάλει μέσα στο κουτί, είναι
πρόκειται να είναι η τιμή του x συν 1.
Γι 'αυτό έχει αυτό το κουτί για το y.
Παίρνει την τιμή του x, φαίνεται εδώ, και να δείτε ότι είναι 2.
Βάλτε το εκεί, συν 1, οπότε βάζει ένα 3 εκεί.
Μήπως αυτό έχει νόημα;
Έτσι, y θα είναι 2 σε αυτή την περίπτωση.
>> LAUREN CARVALHO: Εντάξει, δροσερό.
Είδαμε κάποια προσθήκη, οπότε ας σκεφτούμε τώρα για την διαίρεση του C. Εδώ είμαι
δήλωσης και την προετοιμασία μιας πλωτήρα που ονομάζεται απάντηση και διαιρώντας 1 από 10,
και τότε είμαι εκτύπωση της απάντηση με δύο δεκαδικά ψηφία.
Και σημειώστε εδώ, στη δήλωση printf μου, όταν θέλετε να εκτυπώσετε κάτι για δύο
δεκαδικά ψηφία,% .2 f είναι αυτό που θέλετε να χρησιμοποιήσετε.
Έτσι, το σημείο 2 είναι ακριβώς λέει Χρειάζομαι δύο θέσεις μετά την
δεκαδικό εκτυπωθεί.
>> Τώρα, τι πρόκειται να συμβεί αν εκτελέσετε αυτόν τον κώδικα;
Υπάρχει κάποιος που έχει μια ιδέα;
Τι θα τυπώσει;
>> LUCAS FREITAS: Ποιες είναι οι Περιμένουμε να πάρει.
>> LAUREN CARVALHO: Τι κάνουμε θέλουμε, πρώτα απ 'όλα;
>> LUCAS FREITAS: [δεν ακούγεται]
>> LAUREN CARVALHO: 0.1, ναι.
Αλλά τι θα εκτυπώσετε;
>> ΚΟΙΝΟ: [δεν ακούγεται]
>> LAUREN CARVALHO: Λοιπόν, όχι, πραγματικά.
Αυτό είναι ό, τι μιλούσα για το λόγο που πρέπει να κρατήσει πολύ προσεκτική παρακολούθηση της
τύπους δεδομένων σας.
Έτσι, τι είδους δεδομένα είναι αυτό;
Είναι μια int, έτσι δεν είναι;
Δεν υπάρχει δεκαδικό ψηφίο.
10 είναι επίσης ένας int.
Δεν υπάρχει δεκαδικό ψηφίο.
>> Αν χωρίσω έναν int με int, παίρνω int η οποία δεν είναι 0,1, διότι ints
δεν μπορεί να έχει δεκαδικά ψηφία, αλλά μόνο 0.
Επειδή ένας int περικόπτει μόνο από τα δεκαδικά ψηφία.
>> LUCAS FREITAS: Έτσι, κάθε φορά που κάνετε πράξεις με ints, θα πάμε να
πάρετε μια int ως απάντηση.
Έτσι, βασικά, αυτό που ο υπολογιστής κάνει, είναι χασμάτων 1 από
10, και παίρνει 0.1.
Αλλά τότε είναι σαν, περιμένετε, αυτό είναι υποτίθεται ότι είναι ένας ακέραιος αριθμός, έτσι απλά
αγνοήσει το 0,1, έτσι είναι τώρα μόλις 0.
>> LAUREN CARVALHO: Έτσι, όταν μπορώ να εκτυπώσω αυτό έξω, έχω 0.00 αντί 0.10.
>> LUCAS FREITAS: Μήπως αυτό έχει νόημα;
>> LAUREN CARVALHO: Αυτό είναι το είδος ατυχές, έτσι δεν είναι;
>> LUCAS FREITAS: Λοιπόν, πώς μπορούμε να το διορθώσω αυτό;
>> LAUREN CARVALHO: Ας να προσπαθήσουμε και να το διορθώσουμε.
Εδώ είναι ένα παράδειγμα για το πού είμαι στην πραγματικότητα χύτευση το 1
και το 10 να επιπλέει.
Έτσι τώρα, 1 δεν είναι πλέον μια int.
1 είναι ένα πλωτήρα.
Με τον τρόπο, αυτό είναι μόνο η σύνταξη για όταν θέλετε να ρίχνει από το ένα
τύπου δεδομένων σε μια άλλη.
Μπορείτε να βάλετε μόνο τον τύπο δεδομένων παρενθέσεις και έχουν ότι ακριβώς προηγούνται
η τιμή που είστε χύτευση.
>> Έτσι, εδώ, είμαι διαίρεση ενός πλωτήρα ένα πλωτήρα για να πάρετε μια απάντηση float.
Και ναι, αυτό θα το γεγονός εκτύπωση 0.10.
Μήπως αυτό έχει νόημα;
>> LUCAS FREITAS: Έτσι τύπου casting είναι απλά μετατροπή από το ένα είδος στο άλλο.
Έτσι επιπλέουν 1 είναι στην πραγματικότητα 1.000.
Δεν είναι ακριβώς αυτό, αλλά είναι κάτι με δεκαδικά ψηφία
ότι είναι στην πραγματικότητα 1.
Μήπως αυτό έχει νόημα;
Ναι;
>> ΚΟΙΝΟ: Τι θα συμβεί αν κάνατε απάντηση float ισούται με 1,0 διαιρούμενο με το 10;
>> LAUREN CARVALHO: Είσαι πραγματικά συμβαίνει για να δούμε ότι στην επόμενη διαφάνεια.
Αυτό είναι πραγματικά πολύ επόμενη διαφάνεια μας.
Αυτό είναι πραγματικά ένα καλύτερο από ό, τι τύπου χύτευσης, νομίζω.
Έτσι, αυτά τα δύο είναι πλωτήρες μόνο από φύση του γεγονότος ότι
έχουν δεκαδικά ψηφία.
Ναι;
>> ΚΟΙΝΟ: Τι θα συμβεί αν κάνατε [δεν ακούγεται]
διαιρούμενο με το 10;
>> LAUREN CARVALHO: Στην πραγματικότητα ένα πλωτήρα διαιρείται με έναν int σας δίνει πραγματικά μια
επιπλέουν, έτσι ώστε θα μπορούσε να λειτουργήσει μια χαρά.
>> Περιμένετε, κάνει ο καθένας καταλάβει αυτό;
Επειδή αυτό πρόκειται να είναι μια πραγματικά big deal στην Pset1, στην πραγματικότητα.
Ναι;
>> ΚΟΙΝΟ: Μπορείς να γρήγορα πάει πέρα ​​από το κόκκινο μέρος;
>> LAUREN CARVALHO: Το κόκκινο τμήμα, ναι.
Lucas, θέλετε να?
>> LUCAS FREITAS: OK.
Έτσι, να θυμάστε ότι το ποσοστό είναι ένα σύμβολο κράτησης θέσης.
Είναι σαν ένα κενό διάστημα.
Οπότε ας προσπαθήσουμε να κατανοήσουμε τα πάντα αυτά που συμβαίνουν εδώ.
Ποσοστό σημαίνει ότι είναι ένα σύμβολο κράτησης θέσης.
Στη συνέχεια, έχετε την f, πράγμα που σημαίνει ότι αυτό το σύμβολο κράτησης θέσης είναι ένα πλωτήρα.
Το τελευταίο πράγμα που έχουμε εδώ είναι μια .2, Που σημαίνει ότι θέλουν να έχουν δύο
δεκαδικών ψηφίων για τον πλωτήρα.
>> Αν είχα μόνο% f, που θα θέσει μια δέσμη των δεκαδικών ψηφίων.
Έτσι, μπορώ να βάλω μόνο .2 ή .1 ή .5, ή οτιδήποτε άλλο, και πρόκειται να θέσω
τον αριθμό των δεκαδικών ψηφίων.
Το μόνο πράγμα είναι ότι αν βάλετε σαν .100 Ή .1,000, στην πραγματικότητα δεν είναι
πρόκειται να θέσει όλα αυτά τα δεκαδικά ψηφία επειδή δεν έχει αρκετή μνήμη
να έχουν ότι η ακρίβεια.
>> Οποιεσδήποτε άλλες ερωτήσεις;
Ναι;
>> ΚΟΙΝΟ: Έτσι επιπλέουν επιτρέπει μόνο μπορείτε να πάτε πέρα ​​από αριθμούς;
>> LUCAS FREITAS: Ναι.
>> LAUREN CARVALHO: Λοιπόν, ένας πλωτήρας μόνο σας επιτρέπει να έχετε δεκαδικά ψηφία.
>> LUCAS FREITAS: Σημαίνει απλά ότι έχετε τώρα μπορεί να έχει δεκαδικούς αριθμούς.
>> ΚΟΙΝΟ: Γιατί θα έχουμε ποτέ χρήση ακεραίων;
>> LUCAS FREITAS: Γιατί θα χρησιμοποιείτε αριθμούς;
Ίσως αν είστε μετρώντας από 0 έως 10, που θέλετε να χρησιμοποιήσετε στην πραγματικότητα έναν ακέραιο.
Δεν χρειάζεται να χρησιμοποιήσετε ένα πλωτήρα.
Σε ορισμένες περιπτώσεις, δεν έχετε πρέπει πραγματικά να -
>> LAUREN CARVALHO: Ίσως Δεν θέλω δεκαδικά ψηφία.
>> LUCAS FREITAS: Ίσως δεν το κάνετε θέλετε να χρησιμοποιήσετε ένα πλωτήρα.
>> LAUREN CARVALHO: Το άλλο πράγμα είναι, θυμάστε, τόσο θέσει float και έναν int
λάβει 32 bits για την αποθήκευσή τους, και ίσως δεν θέλετε να χάνετε bits για την
δεκαδικά ψηφία.
>> LUCAS FREITAS: Ναι.
Έτσι, όπως, απλά σκεφτείτε αυτό.
Έχετε 32 bits για δύο μια int και float.
Για έναν int, όλα αυτά τα 32 bits πηγαίνετε στο ακέραιο μέρος.
Εάν χρησιμοποιείτε ένα πλωτήρα με 32 bit, έχουν μέρος αυτής της μνήμης που χρησιμοποιείται
για τον αριθμό, για το σύνολο του αριθμού, και το άλλο μέρος που χρησιμοποιείται για την
δεκαδικά ψηφία.
Έτσι, αυτό σημαίνει ότι δεν μπορείτε να πάρετε για να πολύ μεγάλους αριθμούς με πλωτήρες, επειδή
ο πλωτήρας είναι ήδη με πολλή μνήμη για τα δεκαδικά ψηφία.
Ναι;
>> ΚΟΙΝΟ: Η πρώτη απάντηση, τι ακριβώς είναι αυτό που κάνει;
Είναι καθορισμό της αξίας του πλωτήρα ίση σε αυτό το σύμβολο κράτησης θέσης για να μπορείτε να
Υπενθυμίζουμε ότι στην επόμενη γραμμή;
Λέει επιπλέουν απάντηση.
>> LUCAS FREITAS: Ναι.
Έτσι, η απάντηση float σημαίνει ότι είσαι τώρα λίγο κουβά στη μνήμη που
κατέχει float, και ότι πρόκειται να ονομάζεται απάντηση.
Οπότε αυτό είναι που κάνει απάντηση float.
>> Και τότε θα πω ότι μέσα από αυτό, θα πάμε να θέσει
το αποτέλεσμα αυτό.
Έτσι θα πάμε να κάνουμε 1.0 διαιρούμενο με 10,0, μπορείτε να πάρετε 0,1, και στη συνέχεια βάζετε
ότι μέσα από τους απάντηση.
>> LAUREN CARVALHO: Έτσι, σε μία γραμμή, είμαστε δήλωσης και την προετοιμασία αυτού του πλωτήρα
ονομάζεται απάντηση.
>> LUCAS FREITAS: Είναι ενδιαφέρον, αν και αυτό είναι μόνο μία γραμμή, είναι να κάνει
πολλαπλές λειτουργίες.
Είναι απλά ένας τρόπος C μίσθωση χρησιμοποιείτε λιγότερο κώδικα.
Είναι το ίδιο πράγμα με την τριμερή χειριστή, πώς μπορείτε να το κάνετε μόνο μια
[Δεν ακούγεται] σε μία γραμμή.
Είναι πραγματικά κάνει το ίδιο πράγμα, όπως κάνει απάντηση float, τελεία και,
τότε αυτό ισούται απάντηση, αλλά αντί κάνοντάς σας να κάνετε δύο γραμμές γι 'αυτό,
Είναι σαν μια συντόμευση.
Ναι;
>> ΚΟΙΝΟ: Έτσι, αν έτρεξε αυτό, θα είναι 0,10?
>> LUCAS FREITAS: Ναι.
Ναι;
>> ΚΟΙΝΟ: Έχει απαντήσει στην πραγματικότητα κώδικα, ή είναι απλά το όνομα;
>> LAUREN CARVALHO: Αυτό το είναι στην πραγματικότητα κώδικας.
Αυτό είναι ό, τι θα πάμε για να αναφέρουμε μεταβλητή μας.
>> ΚΟΙΝΟ: Έτσι είναι ακριβώς ένα όνομα [δεν ακούγεται].
>> LAUREN CARVALHO: Ναι.
Θα μπορούσα να έχω πει float x ισούται με 1,0.
>> LUCAS FREITAS: Το θέμα είναι ότι το όνομα της μεταβλητής είναι
κάτι που μπορείτε να χρησιμοποιήσετε.
Είναι σημαντικό για σας.
Για το τρέχον πρόγραμμα, το μόνο πράγμα ότι τα θέματα είναι η τιμή που
έχουν στο εσωτερικό του κάδου.
Ο λόγος για τον οποίο έχετε μεταβλητές και ονόματα των μεταβλητών είναι έτσι θα ξέρετε
τι έχουμε να κάνουμε με, όπως το είδος των δεδομένων είστε
πρόσβαση σε μια στιγμή.
Αλλά για το ίδιο το κώδικα, εάν καλέσετε να απαντήσει ή ερώτηση ή οτιδήποτε άλλο,
λίγο πολύ, δεν έχει σημασία.
Δεν πειράζει.
Εφ 'όσον είστε συνεπείς σε κάθε περιστατικό αυτό και έτσι μπορείτε να καλέσετε
κάτι άλλο.
Ναι;
>> ΚΟΙΝΟ: Μήπως οι μεταβλητές υπερβαίνουν τη λειτουργία;
Όπως και αν ήταν να δημιουργηθεί ένα στήριγμα [Δεν ακούγεται], θα μπορούσε απλά
[Δεν ακούγεται] απαντήσει και πάλι;
>> LAUREN CARVALHO: Όχι.
>> ΚΟΙΝΟ: [δεν ακούγεται]
>> LAUREN CARVALHO: Όχι.
Αυτό θα ήταν εκτός του πεδίου εφαρμογής της συγκεκριμένης μεταβλητής.
Και στην πραγματικότητα, αυτό είναι το είδος της ενδιαφέρουσα, διότι όταν έχουμε
πράγματα όπως βρόχους ή εάν αυτά συνθήκες, αν δηλώνετε μια μεταβλητή
μέσα σε ένα άλλο σύνολο από αγκύλες, υπάρχει πραγματικά μόνο
σε αυτές τις αγκύλες.
>> ΚΟΙΝΟ: Μια τελευταία σημείωση σχετικά με οι [δεν ακούγεται] επιπλέει.
Γιατί θα θελήσετε ποτέ να χρησιμοποιήσετε ints;
Αυτό είναι κάτι περισσότερο από μια πλευρά σημείωση από τίποτα, αλλά ο υπολογιστής σας είναι
σημαντικά καλύτερη στο χειρισμό ints ό, τι είναι σε πλωτήρες χειρισμού.
Είναι σαν μια σειρά μεγέθους γρηγορότερα.
Έτσι, αν εμείς απλά αντιμετωπίζονται μόνο επιπλέει, τα πράγματα θα ήταν πολύ πιο αργή.
>> LAUREN CARVALHO: Στην πραγματικότητα, φαίνεται να υπάρχει να είναι ένα πρόβλημα με πλωτήρες.
>> LUCAS FREITAS: Είδος ο λόγος για ότι, μπορείτε να σκεφτείτε, είναι το πώς σε δυαδική
μπορείτε να εκπροσωπεί ακέραιοι βάζοντας 0 και 1 του.
>> LAUREN CARVALHO: Αυτό είναι το επόμενο πράγμα.
>> LUCAS FREITAS: OK.
Awesome.
>> LAUREN CARVALHO: Ακριβώς κρατήστε αυτή τη σκέψη.
>> LUCAS FREITAS: Εντάξει, εγώ θα σου πω αργότερα.
>> LAUREN CARVALHO: Πριν φτάσουμε σε ό, τι Lucas ήταν ακριβώς λέει, ο χειριστής
προτεραιότητα.
Αυτή είναι η κοινή λογική.
Εσείς έχετε κάνει αυτό αρκεί.
Έτσι, μόνο αν κάτι είναι σε παρένθεση, αυτό θα συμβεί για πρώτη φορά.
Είναι πολλαπλασιασμό υπερισχύει πάνω Επιπλέον,
αφαίρεση, τέτοια πράγματα.
Έτσι, στην πραγματικότητα, απλά δεν θέλει κανείς να πες μου τι νούμερο ένα πραγματικά
αποτιμάται σε;
>> ΚΟΙΝΟ: 27.
>> LAUREN CARVALHO: 27;
Ναι.
>> LUCAS FREITAS: Επιτρέψτε μου να δώσω καραμέλες για τους ανθρώπους.
>> LAUREN CARVALHO: Εντάξει.
Τι γίνεται νούμερο δύο;
>> ΚΟΙΝΟ: 22.
>> LAUREN CARVALHO: 22, ναι.
Δεν ξέρω ποιος πήρε αυτό.
Νούμερο τρία;
>> ΚΟΙΝΟ: 10.
>> LAUREN CARVALHO: 10, ναι.
Cool.
Έτσι modulo.
Lucas, θέλεις να εξηγήσει modulo;
>> LUCAS FREITAS: Modulo είναι ο φορέας αυτός ότι είναι πραγματικά πολύ χρήσιμο για μια
σωρό προβλήματα.
Αν το κάνω 55 modulo 10, τι κάνει αυτό ας πούμε ότι θέλω να
χωρίζουν 55 με 10.
Τι μπορώ να πάρω;
Αισθάνεται ακριβώς όπως αν είμαι στην πραγματικότητα μόνο κάνει τη διαίρεση, ποια είναι η
πρώτη φορά που πήρα τον ακέραιο;
>> ΚΟΙΝΟ: 5.
>> LUCAS FREITAS: 5.
Και τότε το υπόλοιπο είναι 5, σωστά;
Έτσι είναι σαν 5 φορές 10 συν 5.
Βασικά, τι modulo έχει, προσπαθεί να διαιρεί τον αριθμό αυτό από αυτό, και
βλέπει ποιο είναι το υπόλοιπο του τμήματος.
>> LAUREN CARVALHO: Γι 'αυτό ακριβώς επιστρέφει το υπόλοιπο.
Έτσι, ένας αριθμός είναι τι;
5.
Το νούμερο δύο;
>> ΚΟΙΝΟ: 3.
>> LAUREN CARVALHO: 3.
Νούμερο τρία;
0.
Και τέσσερις είναι 1.
Ακριβώς.
>> LUCAS FREITAS: Απλό, έτσι δεν είναι;
>> LAUREN CARVALHO: Γιατί δεν θα παραλείψετε αυτό μόνο και μόνο επειδή δεν έχουμε πραγματικά
χρόνο, και οι άνθρωποι φαίνεται να καταλαβαίνουν.
Έτσι, εδώ είναι ό, τι ήταν Lucas ακριβώς μιλάμε.
>> LUCAS FREITAS: Ένας άλλος λόγος για τον οποίο θα χρησιμοποιήσει ints αντί των αρμάτων είναι
ότι οι πλωτήρες είναι πολύ ασαφής.
Και γιατί είναι ασαφές;
David είπε ότι για να αντιπροσωπεύουν ένα ακέραιο, για παράδειγμα, χρησιμοποιούμε 0 και
1, σωστά;
Και τότε θα κάνει βασικά η πολλαπλασιασμό, κάνει όλα αυτά
επιχειρήσεις να γνωρίζουν τι δεκαδικό αριθμό που έχετε, αντί του δυαδικού.
>> Τι θα συμβεί τώρα αν προσπαθώ να θέσει δεκαδικά ψηφία;
Στην πραγματικότητα, για παράδειγμα, αν έχω ο αριθμός, όπως 3.33333;
Αισθάνεται σαν 10 πάνω από 3.
Πώς θα πάω να αποθηκεύουν όλα τα 3 είναι ότι έχω μετά από αυτό;
Είναι πραγματικά δύσκολο, σωστά;
Δεν μπορείτε να πείτε απλά στον υπολογιστή, hey, έχω ένα 3, και
τότε θα το κάνουμε αυτό για πάντα.
Στην πραγματικότητα ο υπολογιστής δεν είναι αρκετά έξυπνος για αυτό.
>> Έτσι, ουσιαστικά όλος ο υπολογιστής σας δεν είναι ότι προσπαθεί να θέσει ως πολλά ψηφία, όπως
μπορεί μέχρι και τη μνήμη που έχετε.
Έτσι, ας πούμε ότι πρόκειται να δηλαδή 3,3333, και αυτό είναι όλο.
Έτσι δεν είναι σε θέση να εκφράσει πραγματικά ακριβώς τι είναι float.
>> LAUREN CARVALHO: Έχουμε έναν πεπερασμένο αριθμό των bits, πράγμα που σημαίνει ότι δεν
Κάθε δεκαδικός αριθμός πρόκειται να είναι μπορούν να εκπροσωπούνται με ακρίβεια.
Και έτσι σε αυτό το παράδειγμα, αν είμαστε εκτύπωση 0.1, τώρα είμαστε εκτύπωση
από 20 θέσεις.
>> LUCAS FREITAS: Ακριβώς όπως έλεγε εσείς, θα μπορούσε να θέσει οποιοδήποτε αριθμό.
Αλλά αν απλά έκανε τα δύο μέρη, θα παίρνατε 0.10, αλλά αν βάλεις 20
μέρη, πρόκειται να σας δείξω ένα μάτσο από 's, επειδή αυτό είναι ό, τι μπορείτε να βάλετε
στη μνήμη, έτσι δεν είναι;
>> Αλλά ακριβώς εδώ, μέχρι το 0, και στη συνέχεια να είναι απλά μια θέσει
δέσμη των τυχαίων αριθμών.
Αυτό είναι το είδος του, όπως μερικοί -
>> LAUREN CARVALHO: Αυτό είναι επειδή είμαστε δεν είναι σε θέση να εκπροσωπεί αυτό το δεκαδικό
ακριβώς με τον αριθμό των bits που έχουμε.
>> LUCAS FREITAS: Και τότε η υπολογιστή είναι βασικά
δίνοντάς σας έναν αριθμό σκουπίδια.
Αυτό δεν είναι στην πραγματικότητα η τιμή του αριθμού.
>> ΚΟΙΝΟ: Είναι όσο πιο κοντά μπορεί να πάρει [δεν ακούγεται]
χρησιμοποιώντας το [δεν ακούγεται].
>> LAUREN CARVALHO: Έτσι, η επίπτωση της αυτό είναι ότι ας πούμε ότι αντί να
είναι 0.100014, οτιδήποτε, ό, τι αν ήταν 0.0999 -
καλά, εντάξει.
Ας προσποιηθούμε ότι η πραγματική απάντηση σε αυτό ήταν 0,9999999.
Αυτό είναι πολύ κοντά στο 1, αλλά δεν είναι ακριβώς 1.
Είναι 0.99999.
>> Αυτό σημαίνει ότι αν πάρω ότι 0.999, και το έριξα σε int, παίρνω 0.
Δεν παίρνω 1.
>> LUCAS FREITAS: Επειδή θυμάμαι, χύτευση από float σε int, απλά
αγνοήσει όλα τα δεκαδικά ψηφία.
Μπορείτε απλά να τους αγνοήσει.
Δεν υπάρχει τέτοιο πράγμα όπως στρογγυλοποίηση ή το τρέξιμο κάτω όταν typecast.
Στην πραγματικότητα, δεν υπάρχει αυτή η λειτουργία που κάνει τη στρογγυλοποίηση, η οποία είναι πολύ
σημαντικό, αλλά απλά σκεφτείτε ότι όταν κάνετε typecasting, είναι ακριβώς
πρόκειται να διαγράψει τα πάντα.
Έτσι ακόμα κι αν έχετε 0.99999, πρόκειται για να δώσει ακριβώς 0 αν typecast
[Δεν ακούγεται] ακέραιος.
>> LAUREN CARVALHO: Έτσι ακριβώς είναι πραγματικά γνωρίζουν κινητής υποδιαστολής στην ακρίβεια,
ειδικά όταν ξεκινάτε να χρησιμοποιούν άρματα Pset1.
Αλλά η βόλτα θα πρέπει να σας προειδοποιούν ότι καθώς.
>> LUCAS FREITAS: Και στην πραγματικότητα είναι πραγματικά σκληρά, για παράδειγμα, αν το έκανα
απάντηση πλωτήρα 1 ισούται με 1.0 πάνω 10, και στη συνέχεια επιπλέουν απάντηση 2
ισούται με 10,0 κατά 100,0.
Πρόκειται για τον ίδιο αριθμό, έτσι δεν είναι;
0.1, σωστά;
1 πάνω από 10 ή 10 πάνω από 100.
Αλλά τώρα, αν προσπαθώ να δω την ισότητα, όπως και αν απάντηση 1 είναι ίσο με το απαντήσει 2,
ίσως δεν είναι πραγματικά πρόκειται να είναι το ίδιο πράγμα.
Έτσι, άρματα είναι κάτι σαν αυτό.
Είναι σαν να κάνει ισότητας.