SPEAKER 1: Parliamo di acqua.
In questo problema, chiediamo all'utente di dire noi per quanto tempo in minuti la doccia era
e poi si calcola l'equivalente numero di bottiglie di acqua
che la loro doccia utilizzato.
>> Quindi quali sono le nostre cose da fare di per questo problema?
In primo luogo, stiamo andando a voler per richiedere e quindi validare
l'ingresso che l'utente ci dà.
Una volta che ci assicuriamo che noi avere l'input dell'utente validi,
stiamo andando a calcolare il numero equivalente di bottiglie di acqua
che l'utente aveva durante loro doccia, e poi siamo
andare a dire loro da stampa di tale numero.
>> Quindi cerchiamo di placcaggio nostro primo compito, spingendo e la convalida
l'input dell'utente.
Per questo abbiamo scritto una Funzione per chiamato
get_int situato nella Biblioteca CS50.
get_int assicura che l'input dell'utente un intero, in modo da tutti i numeri positivi,
numeri negativi, o zero sono tutti accettati.
Ma se l'utente immette ogni altra cosa, in modo che qualsiasi combinazione di lettere o numeri
o numeri decimali, allora la all'utente verrà richiesto di riprovare
e la funzione non accetta nulla finché l'utente dà loro un numero intero.
>> Così come usiamo get_int?
Se si apre l'area di lavoro e creare un file denominato integer.c facciamo
digitare la seguente.
Hashtag includono cs50.h.
Questo è necessario perché get_int è una funzione di libreria CS50,
quindi dobbiamo hashtag includono la sua dichiarazione in ordine
utilizzare la funzione.
E poi nel mio principale Funzione i Sto solo andando
chiamare semplicemente la funzione get_int.
>> Così corriamo questo e vedere come funziona.
Ho già compilato, quindi cerchiamo di solo andare avanti ed eseguire questo programma,
./numero intero.
Qui ho una pronta e qui è dove ho immettere il valore.
Di 'ho messo in appena qualche intero, 50, gli stralci del programma ed esce
e questo è tutto.
>> Ma dico io eseguo di nuovo e I Ingresso qualcos'altro.
Forse, ciao mondo.
Questo non è un numero intero in modo che il programma mi chiederà di riprovare.
Proviamo di nuovo con forse un decimale questa volta.
0,5, di nuovo, non un numero intero così il programma non lo accetterà
e mi dirà per riprovare.
Quindi cerchiamo di dare un altro numero.
Il programma accetta, si chiude, e abbiamo finito.
>> Così ora abbiamo una funzione che ci permette e garantisce
che l'utente immette un intero, ma come possiamo
in realtà tenere traccia del intero immesso dall'utente?
Bene, tutto quello che faremo è negozio questo valore in una variabile, dire n.
Quindi, se io dichiaro un intero n, e ho impostato il valore di get_int,
allora n sarà quindi memorizzare qualunque cosa valorizzare l'utente immesso.
>> Va bene, così ora abbiamo garantito che l'utente ci darà un intero
e sappiamo come tenere traccia del numero intero, ma ricordate,
interi sono sia positivi che negativi.
Quindi in realtà non ha senso nel contesto di questo problema
che l'utente fa una doccia di dire negativi 12 minuti.
Quindi dobbiamo fare in modo che l'utente in realtà ci dà un numero intero positivo.
Ora non abbiamo solo un singola funzione per questo,
così stiamo andando ad avere per creare quel noi stessi.
>> Quindi vogliamo continuamente richiedere all'utente
fino a quando ci danno un numero intero positivo.
Se sto facendo qualcosa di continuamente poi che è simile a un loop, una ripetizione.
Così uno dei costrutti che usiamo in C per implementare la ripetizione e loop
è un ciclo while.
Quindi un ciclo while, come qui illustrato, verrà eseguito
ciò che è nel corpo del ciclo come fino a quando i dati condizione restituisce
true.
Non appena tale condizione FALSE, allora
il programma provvede a qualsiasi viene dopo il corpo del ciclo.
>> Così, mentre i cicli stanno per essere veramente utile in CS50.
Ma in questo particolare caso, sappiamo che siamo
andando a richiedere all'utente almeno una volta e poi solo ciclo se necessario.
Così qui veniamo a un costrutto speciale e che è
molto simile al mentre ciclo chiamato un ciclo do-while.
>> Quindi un ciclo do-while esegue il corpo del ciclo almeno una volta
e poi si controlla per vedere se deve eseguire,
al contrario di un ciclo while, che controllerà la condizione
e quindi eseguire il corpo.
Quindi, in un ciclo do-while che potremmo fare è richiedere all'utente un numero intero,
e quindi controllare se è valido o non è.
Se è valido, poi ci ripetere il processo che richiede all'utente
di darci un altro intero, e poi solo quando tale intero è valida,
continueremo a ciò che viene dopo.
>> Ora si noterà che il dichiarazione del intero n
è un po 'diverso da quello che fatto prima nell'esempio precedente
e questo perché di portata.
Se avessimo dichiarato l'intero n all'interno del corpo del ciclo do-po,
allora non saremmo in grado di accedere tale valore di n al di fuori di quelli ricci
bretelle indicando il corpo del ciclo.
Ma noi in realtà desidera accedere alla valore di n più avanti nel nostro programma.
>> OK, ora parliamo di cosa questa condizione dovrebbe essere.
Noi vogliamo solo il reprompt utente finché n è valido.
Quindi, pensare a te stesso ciò che un invalido valore intero sarebbe simile
e quindi creare un valore booleano espressione per esprimere questo.
>> Abbiamo quasi finito con la nostra attività secondaria di spingendo e validare l'input dell'utente.
Quindi cerchiamo di fare questo un po ' po 'più facile da usare
e dare all'utente un po ' po 'più di informazioni
di ciò che li stiamo spingendo per.
Quindi cerchiamo di indurre l'utente, per la spec, con i verbali di stringa.
Quindi, utilizzando le istruzioni printf, fare Assicurarsi di far corrispondere esattamente questo.
>> Tutto ok.
Così ora abbiamo un utente valido ingresso, un intero positivo
valore per quanti minuti hanno trascorso sotto la doccia.
Allora, qual è il prossimo è quello di calcolare il numero equivalente di bottiglie.
Quello che stiamo andando a fare qui potremmo essere molto evidente a voi in un primo momento,
e va bene così.
Quello che vogliamo fare è noi vogliono iniziare a praticare
l'idea di rilevare modelli e lo sviluppo di formule per il problema.
>> Così ci è stato detto per le specifiche quel minuto nella doccia
è equivalente a circa 12 bottiglie di acqua.
Allora due minuti sarebbe essere equivalente a 24,
e cinque minuti avrebbe equivalente a 60.
Così ora se si pensa ce l'hai, allora facciamo
vedere se si può trovare con un modello o formula
per esprimere se abbiamo dire, n minuti, quante bottiglie di acqua
Vorrei che essere espresso in termini di n?
>> Ancora, anche se questo potrebbe essere semplice a prima,
più tardi, quando si arriva a problemi più complessi
stiamo andando a voler entrare in la pratica di identificare
modelli e formule in via di sviluppo per capire queste cose.
>> In C si ha accesso a operazioni aritmetiche standard,
addizione, sottrazione, moltiplicazione e divisione.
Così Lascio a È ora di capire
come esprimere il numero equivalente di bottiglie
che l'utente consumato durante la loro doccia.
>> Va bene, abbiamo quasi finito.
Abbiamo spinto la utente per il loro contributo, abbiamo assicurato che si tratta di input valido,
e poi abbiamo capito come per calcolare l'equivalente
numero di bottiglie che consumavano.
Quindi l'ultima cosa da fare è quella di uscita il numero equivalente di bottiglie
e si spera di incoraggiare loro di conservare un po 'd'acqua.
>> Emissione il valore sarà essere una dichiarazione printf.
Se volevo dirvi che ho hanno tre animali, per esempio,
Potrei utilizzare un'istruzione printf che sembra qualcosa di simile.
Ho tre animali, e una nuova Linea per la formattazione bello.
>> Ora noi non vogliamo semplicemente cose codice rigido.
Pronunciare il numero della mia animali domestici cambia nel tempo.
Poi ho intenzione di fare uso di segnaposto nella mia dichiarazione printf.
Quindi, ecco il mio numero è un numero intero.
Quindi ho intenzione di fare un segnaposto per un intero utilizzando% i.
Ho intenzione di scrivere la stringa, e quindi dopo la stringa
Scrivo una virgola e quindi il variabile che voglio stampare.
Quindi tale valore verrà stampato in luogo di quella segnaposto,% i.
>> È possibile utilizzare segnaposto, come bene, per carri con% f.
Si può anche avere più segnaposto in una stringa.
Per esempio, se ho qualche numero di cani e qualche numero di gatti,
Ho messo due segnaposto qui e poi i miei due variabili nel rispettivo ordine.
>> Quindi, ora che sappiamo come stampare i valori memorizzati nelle variabili,
l'ultima cosa a fare è quello di garantire che si
stampare il valore nel formato esatto indicato nella specifica.
Con questo, abbiamo spinto la utente e convalidato il loro contributo.
Abbiamo poi calcolato l'equivalente numero di bottiglie di acqua
che consumano durante la loro doccia, e abbiamo emessi che valore per loro.
E così, abbiamo completato l'acqua.
>> Il mio nome è [? Zamila,?] e questo è CS50.