ΟΜΙΛΗΤΗΣ 1: Ας μιλήσουμε για το νερό.
Σε αυτό το πρόβλημα, θα ζητήσει από το χρήστη να πει μας πόσο καιρό μέσα σε λίγα λεπτά ντους τους ήταν
και στη συνέχεια τον υπολογισμό του ισοδύναμου αριθμό φιαλών νερού
αυτή που χρησιμοποιείται ντους τους.
>> Ποια είναι λοιπόν μας για να κάνουμε το για αυτό το πρόβλημα;
Κατ 'αρχάς, θα πάμε να θέλουν να παρακινήσει και στη συνέχεια να επικυρώσει
η είσοδος που ο χρήστης μας δίνει.
Μόλις έχουμε εξασφαλίσει ότι μπορούμε έχουν έγκυρη εισόδου του χρήστη,
θα πάμε για να υπολογίσει το ισοδύναμο αριθμό μπουκάλια νερό
ότι ο χρήστης είχε κατά τη διάρκεια της ντους τους, και στη συνέχεια να είμαστε
πρόκειται να τους πει από εκτύπωση τον αριθμό αυτό.
>> Ας αντιμετωπίσουμε την πρώτη μας εργασία, με αποτέλεσμα και την επικύρωση
η παρέμβαση του χρήστη.
Γι 'αυτό έχουμε γράψει ένα λειτουργία για σας που ονομάζεται
get_int βρίσκεται στο CS50 Βιβλιοθήκη.
get_int διασφαλίζει ότι οι είσοδοι του χρήστη ένας ακέραιος αριθμός, έτσι ώστε κάθε θετικοί αριθμοί,
αρνητικούς αριθμούς, ή μηδέν είναι όλες δεκτές.
Αλλά αν ο χρήστης εισάγει οτιδήποτε άλλο, έτσι ώστε οποιοσδήποτε συνδυασμός γραμμάτων ή αριθμών
ή δεκαδικούς αριθμούς, τότε η χρήστης θα σας ζητηθεί να επαναλάβετε
και η λειτουργία δεν θα δεχθεί τίποτα μέχρι ο χρήστης να τους δίνει έναν ακέραιο.
>> Επομένως, πώς θα χρησιμοποιήσετε get_int;
Αν ανοίξετε το χώρο εργασίας σας και δημιουργήσετε ένα αρχείο με το όνομα integer.c ας
πληκτρολογήστε την ακόλουθη.
Hashtag περιλαμβάνουν cs50.h.
Αυτό είναι απαραίτητο επειδή get_int είναι μια συνάρτηση βιβλιοθήκης CS50,
έτσι πρέπει να hashtag περιλαμβάνουν δήλωσή του, προκειμένου
να χρησιμοποιήσετε τη λειτουργία.
Και στη συνέχεια, στο κύριο μου λειτουργούν Είμαι ακριβώς πρόκειται
για να καλέσετε απλά το get_int λειτουργία.
>> Έτσι, ας τρέξει αυτό και να δούμε πώς λειτουργεί.
Έχω ήδη συνταχθεί, οπότε ας απλά να προχωρήσει και να τρέξει αυτό το πρόγραμμα,
./ακέραιος αριθμός.
Εδώ έχω μια άμεση και Εδώ είναι όπου εισάγετε την τιμή.
Πείτε έβαλα σε μόλις κάποιον ακέραιο, 50, οι εξαιρεί πρόγραμμα και αποχωρήσεις
και αυτό είναι αυτό.
>> Αλλά πείτε μου να τρέξει ξανά και Έχω κάτι εισόδου άλλο.
Ίσως, γεια κόσμο.
Αυτό δεν είναι ένας ακέραιος έτσι ώστε η πρόγραμμα θα μου ζητήσει να προσπαθήσετε ξανά.
Ας προσπαθήσουμε και πάλι με ίσως ένας δεκαδικός αυτή τη φορά.
0.5, και πάλι, δεν είναι ένας ακέραιος έτσι το πρόγραμμα δεν θα το δεχτούν
και αυτό θα μου πείτε να δοκιμάσετε ξανά.
Έτσι, ας δώσει έναν άλλο αριθμό.
Το πρόγραμμα δέχεται, κλείνει, και τελειώσατε.
>> Έτσι τώρα έχουμε μια λειτουργία που μας επιτρέπει και διασφαλίζει
ότι ο χρήστης εισάγει ένα ακέραιος, αλλά πώς μπορούμε να
στην πραγματικότητα να παρακολουθείτε το ακέραιος που εισάγονται από το χρήστη;
Λοιπόν, το μόνο που θα κάνουμε είναι κατάστημα αυτή η τιμή σε μια μεταβλητή, ας πούμε n.
Έτσι, αν Δηλώνω έναν ακέραιο n, και μπορώ να ορίσω την τιμή αυτή να get_int,
τότε n τότε θα αποθηκεύσει οτιδήποτε Εκτιμούμε το χρήστη εισαχθούν.
>> Εντάξει, έτσι και τώρα έχουμε εξασφαλίσει ότι ο χρήστης θα μας δώσει έναν ακέραιο
και ξέρουμε πώς να παρακολουθείτε του ακεραίου, αλλά να θυμάστε,
ακέραιοι είναι τόσο θετικές όσο και αρνητικές.
Γι 'αυτό δεν έχει νόημα στο πλαίσιο αυτού του προβλήματος
ότι ο χρήστης παίρνει ένα ντους του λένε αρνητικών 12 λεπτά.
Γι 'αυτό και πρέπει να βεβαιωθείτε ότι ο χρήστης στην πραγματικότητα μας δίνει ένα θετικό ακέραιο.
Τώρα δεν έχουμε μόνο ένα ενιαία λειτουργία για το ότι,
έτσι θα πάμε να έχουν για να δημιουργήσει αυτό τον εαυτό μας.
>> Έτσι θέλουμε να συνεχώς ζητήσει από το χρήστη
μέχρι να μας δώσει ένα θετικό ακέραιο.
Αν κάνω κάτι συνεχώς συνέχεια που είναι παρόμοια με έναν βρόχο, μια επανάληψη.
Έτσι ένα από τα κατασκευάσματα που χρησιμοποιούμε το c για να εφαρμόσουν την επανάληψη και βρόχους
είναι ένας βρόχος while.
Έτσι, ένα βρόχο while, όπως παρουσιάζεται εδώ, θα εκτελέσει
ό, τι είναι στο σώμα του βρόχου ως Όσο οι δίνεται αξιολογεί την κατάσταση
στην αληθινή.
Το συντομότερο αυτή την κατάσταση ψευδής, τότε
το πρόγραμμα θα προχωρήσει σε ό, τι έρχεται μετά από το σώμα του βρόχου.
>> Έτσι, ενώ οι βρόχοι πρόκειται να να είναι πραγματικά χρήσιμο σε CS50.
Αλλά σε αυτό το συγκεκριμένο περίπτωση, ξέρουμε ότι είμαστε
πρόκειται να ζητήσει από το χρήστη τουλάχιστον άπαξ και τότε μόνο βρόχος εάν είναι απαραίτητο.
Έτσι, εδώ ερχόμαστε σε ένα ειδική κατασκευή και αυτό είναι
πολύ παρόμοια με την ενώ βρόχος που ονομάζεται ένα do-while loop.
>> Έτσι, ένα do-while loop εκτελεί το σώμα του βρόχου τουλάχιστον μια φορά
και στη συνέχεια ελέγχει για να δει αν θα πρέπει να εκτελέσει,
σε αντίθεση με ένα βρόχο, ενώ, η οποία θα ελέγξει την κατάσταση
και στη συνέχεια να εκτελέσει το σώμα.
Έτσι, σε μια do-while loop αυτό που θα μπορούσαμε κάνετε είναι να ζητήσει από το χρήστη για ένα ακέραιο,
και στη συνέχεια, ελέγξτε αν είναι έγκυρη ή όχι.
Αν είναι άκυρη, τότε θα επαναλάβετε τη διαδικασία ζητώντας από το χρήστη
για να μας δώσει ένα άλλο ακέραιο, και στη συνέχεια, μόνο όταν η ακέραιος είναι έγκυρη,
θα συνεχίσουμε να ό, τι έρχεται μετά.
>> Τώρα θα παρατηρήσετε ότι το δήλωση του ακεραίου n
είναι ελαφρώς διαφορετικό από αυτό που έκανε πριν στο προηγούμενο παράδειγμα
και αυτό είναι λόγω του πεδίου εφαρμογής.
Αν είχαμε δηλώσει ο ακέραιος n μέσα του σώματος του do-while loop,
τότε δεν θα είμαστε σε θέση να έχουν πρόσβαση σε ότι η τιμή του n έξω από αυτά τα σγουρά
τιράντες που δείχνει το σώμα του βρόχου.
Αλλά εμείς στην πραγματικότητα θέλουν να έχουν πρόσβαση στο τιμή του n αργότερα στο πρόγραμμά μας.
>> Εντάξει, έτσι και τώρα ας μιλήσουμε για ποια πρέπει να είναι αυτή η κατάσταση.
Θέλουμε να reprompt μόνο το χρήστη όσο η είναι έγκυρη.
Έτσι σκεφτείτε για τον εαυτό σας τι μια μη έγκυρη ακέραια τιμή θα μοιάζουν
και στη συνέχεια να δημιουργήσετε ένα Boolean έκφραση για να εκφράσω αυτό.
>> Είμαστε σχεδόν τελειώσει με υποεργασίας μας την παρακίνηση και την επικύρωση εισόδου του χρήστη.
Έτσι, ας κάνουμε αυτό το λίγο λίγο πιο φιλική προς το χρήστη
και να δώσει στο χρήστη μια μικρή λίγο περισσότερες πληροφορίες
από ό, τι είμαστε αυτούς προτροπή για.
Έτσι, ας ζητήσει από το χρήστη, ανά το spec, με τα πρακτικά κορδόνι.
Έτσι, χρησιμοποιώντας printf δηλώσεις σας, κάνουν βεβαιωθείτε ότι έχετε ταιριάζει αυτό ακριβώς.
>> Εντάξει.
Έτσι τώρα έχουμε ένα έγκυρο χρήστη εισόδου, ένας θετικός ακέραιος
τιμή για πόσα λεπτά πέρασε στο ντους.
Έτσι, ποιο είναι το επόμενο είναι να υπολογίσει ο ισοδύναμος αριθμός των φιαλών.
Τι θα πάμε να κάνουμε εδώ θα μπορούσε να είναι πολύ προφανές για να έχετε σε πρώτη φάση,
και αυτό είναι εντάξει.
Αυτό που θέλουμε να κάνουμε είναι να έχουμε θέλετε να ξεκινήσετε την εξάσκηση
Η ιδέα για την ανίχνευση και μοτίβα ανάπτυξη φόρμουλες για το πρόβλημα.
>> Έτσι μας λένε ανά το spec ότι το ένα λεπτό στο ντους
είναι ισοδύναμο με περίπου 12 μπουκάλια νερό.
Έτσι, στη συνέχεια, δύο λεπτά θα είναι ισοδύναμο με 24,
και πέντε λεπτά θα να είναι ισοδύναμη με 60.
Έτσι τώρα, αν νομίζετε ότι το έχεις, τότε ας
δείτε αν μπορείτε να έρθετε με ένα μοτίβο ή του τύπου
να εκφράσουν αν έχουμε πει, n λεπτά, πόσα μπουκάλια νερό
θα ήταν αυτό να εκφραστεί με όρους του n;
>> Και πάλι, αν και αυτό θα μπορούσε να είναι απλό στην αρχή,
αργότερα, όταν φτάσουμε στο πιο περίπλοκα προβλήματα
θα πάμε να θέλουν να μπει σε η πρακτική του προσδιορισμού
πρότυπα και την ανάπτυξη τύπων να καταλάβω αυτά τα πράγματα έξω.
>> Στο γ έχετε πρόσβαση σε πρότυπο αριθμητικές πράξεις,
πρόσθεση, αφαίρεση, πολλαπλασιασμό και διαίρεση.
Γι 'αυτό και θα το αφήσει να μπορείτε τώρα να καταλάβω
πώς να εκφράσουν την αντίστοιχο αριθμό φιαλών
ότι ο χρήστης που καταναλώνεται κατά τη διάρκεια του ντους τους.
>> Εντάξει, είμαστε σχεδόν τελειώσει.
Έχουμε ζητηθεί από το χρήστη για τη συμβολή τους, έχουμε εξασφαλίσει ότι είναι έγκυρη εισόδου,
και στη συνέχεια να έχουμε βρει τον τρόπο για τον υπολογισμό του ισοδύναμου
αριθμός των φιαλών που καταναλώνονται.
Έτσι, το τελευταίο πράγμα που πρέπει να κάνετε είναι να εξόδου το ισοδύναμο αριθμό των φιαλών
και ελπίζω να ενθαρρύνουν τους για τη διατήρηση λίγο νερό.
>> Έξοδο την τιμή θα είναι μια δήλωση printf.
Αν ήθελα να σας πω ότι εγώ έχουν τρία κατοικίδια ζώα, για παράδειγμα,
Θα μπορούσε να χρησιμοποιήσει μια δήλωση printf ότι φαίνεται κάτι τέτοιο.
Έχω τρία κατοικίδια ζώα, καθώς και μια νέα γραμμή για ωραία μορφοποίηση.
>> Τώρα δεν θέλουμε να απλά πράγματα σκληρά κώδικα.
Πείτε τον αριθμό μου κατοικίδια ζώα αλλάζει την πάροδο του χρόνου.
Στη συνέχεια, Πάω να κάνουν χρήση του σύμβολα κράτησης θέσης στη δήλωση printf μου.
Έτσι, εδώ ο αριθμός μου είναι ένας ακέραιος.
Έτσι, Πάω να κάνω ένα σύμβολο κράτησης θέσης έναν ακέραιο χρησιμοποιώντας% i.
Πάω να γράψω το string, και στη συνέχεια, μετά τη χορδή
Γράφω ένα κόμμα και στη συνέχεια το μεταβλητή που θέλετε να εκτυπώσετε.
Έτσι ώστε η τιμή θα εκτυπωθεί αντί της κράτησης θέσης,% i.
>> Μπορείτε να χρησιμοποιήσετε σύμβολα κράτησης θέσης, όπως καλά, για πλωτήρες με ένα% f.
Μπορείτε επίσης να έχετε πολλαπλές σύμβολα κράτησης θέσης σε μια σειρά.
Για παράδειγμα, αν έχω κάποιο αριθμό των σκύλων και κάποιο αριθμό γάτες,
Έβαλα δύο δείκτες τοποθέτησης εδώ και, στη συνέχεια, δύο μεταβλητές μου στην αντίστοιχη σειρά.
>> Έτσι τώρα που γνωρίζουμε πώς να εκτυπώσετε οι τιμές που αποθηκεύονται στις μεταβλητές,
το τελευταίο πράγμα που πρέπει να κάνουμε είναι να διασφαλίσουμε ότι θα
εκτυπώνουμε την τιμή στην ακριβή μορφή επισημαίνονται στη συγγραφή υποχρεώσεων.
Με αυτό, έχουμε ζητηθεί η χρήστη και να επικυρωθούν εισόδου τους.
Στη συνέχεια έχουμε υπολογίζεται το ισοδύναμο αριθμό φιαλών νερού
ότι καταναλώνουν κατά τη διάρκεια του ντους τους, και έχουμε εξάγεται ότι η αξία για αυτούς.
Και έτσι, έχουμε ολοκληρώσει το νερό.
>> Το όνομά μου είναι [? Zamila,?] και αυτό είναι CS50.