Ciao e Benvenuto. In questa dimostrazione, voglio fornire una soluzione per
la nostra ultima sfida. Quindi voglio fornire
una soluzione al nostro programma c che richiede alcuni
minuti e lo converte in ciò che quella rappresentazione è in giorni
e quanti anni è.
Programma non necessariamente pratico,
ma dimostrerà alcuni concetti chiave
che voi ragazzi potete apprendere principalmente utilizzando operatori
aritmetici, ottenendo input dalla tastiera.
E anche tu devi usare l'operatore di cast per questo che potrei non
aver menzionato nella sfida, ma spero che voi
ragazzi l'abbiate capito perché quando lo fate - non è necessario usare
l'operatore di cast non dovreste aver bisogno
All'inizio pensavo che una soluzione richiedesse un operatore modulo. Ma se fai un modulo,
penso che ci vogliono solo 2
int.
Quindi, comunque, iniziamo. Avviamo blocchi freddi e creiamo
un progetto, esaminiamo le cose di base in cui siamo abbastanza bravi a questo punto.
Quindi non entrerò nei dettagli, puoi solo guardare.
Ma creerò un nuovo progetto e sarà un progetto per console e
sarà sicuramente ce quello che chiamerò questo
è ancora una volta che vuoi sempre ottenere buoni nomi significativi.
Dirò conversione in minuti.
Quindi è come un'app di conversione di minuti.
E ora modifico solo il nostro main. c file.
Quindi sbarazziamoci di questo. E manterremo le dichiarazioni di inclusione.
E come sempre, vorrai aggiungere commenti, assicurati di aggiungere i commenti,
solo perché non lo faccio non significa che non dovresti farlo.
È una pratica standard. È solo per motivi di efficienza e tempo, lo tralascio.
Quello che mi piace fare all'inizio
del programma è cancellare le mie variabili che devo usare e quindi inizializzarle.
Quindi iniziamo in questo modo. Creerò una variabile intera per i
minuti che l'utente inserirà. E chiamerò solo i minuti inseriti. Lo inizializzerò a 0.
Creerò un doppio per anni. Questo in realtà potrebbe essere
anche lungo a seconda di quanti calcoli vuoi fare perché potresti effettivamente entrare in
un numero di virgola decimale piuttosto grande.
Così tanto tempo potrebbe anche essere un'opzione migliore. Ma per ora
userò un double, inizializza quello 0. 0 e giorni pari a
quello 0. 0.
E ora voglio ricevere input dall'utente.
Per ricevere input dall'utente, la prima cosa da fare è dire all'utente di inserire l'input.
Quindi mostrerò un output che dice di
inserire il numero di minuti.
E metterà i due punti lì e uno spazio e lo
terminerà con un punto e virgola.
Il prossimo è che riceverò effettivamente l'input.
Qui è dove probabilmente diresti di ottenere input dall'utente come commento.
Come otteniamo input dall'utente? Usiamo la funzione scanf.
Quindi ricordatelo di qualche tempo fa, dite solo scanf, simile a printf.
E il primo parametro dell'argomento è il
tipo di dati che vuoi leggere per convertire.
Ricorda, tutto viene letto come stringa o testo.
Quindi devi convertirlo nel modo in cui lo memorizzerai.
Quindi lo metti tra virgolette proprio come printf. Si utilizza un identificatore di formato.
Qui. Dirò solo che voglio memorizzarlo come decimale.
Quindi dirò d un numero intero, non
un numero intero decimale, mi dispiace.
E poi l'argomento successivo è quale variabile la memorizzerai.
In ho intenzione di memorizzarlo nei minuti inseriti.
Ora ricorda che scan f e io
in realtà ho solo scan lì, scanf per ogni
singolo tipo di dati tranne una stringa, devi
fornire la e commerciale. Il suboperatore indirizzo.
Quindi dobbiamo fornirlo. Stiamo leggendo un numero quindi dobbiamo fare la e commerciale.
Ricordalo dalla lezione. Quindi voglio aggiungerlo con un punto e virgola.
E a questo punto, dovresti probabilmente provare.
Assicurati di poter ricevere input dall'utente. E probabilmente hai solo un printf per visualizzare ciò che hai inserito.
Ma poiché so che questo è corretto, vado avanti.
Avrò bisogno di fare un calcolo sulla riga 15.
Principalmente, voglio memorizzare i minuti negli anni.
Quindi quello che farò è creare un'altra variabile di cui
mi sono dimenticato che memorizzerà i minuti nell'anno.
Perché questo renderà le cose più facili. Quindi qui sto solo per dire minuti e anno.
Noterai che la convenzione che sto usando qui per denominare le variabili è camelCase.
È dove hai il minuscolo per il primo
reparto e poi ogni parola dopo di che metti in maiuscolo il primo carattere.
Non l'ho spiegato prima, quindi ho pensato di menzionarlo.
Quindi il primo calcolo voglio impostare i miei minuti e l'anno
perché è così
che calcolerò i miei anni. Quindi i minuti e gli anni in realtà saranno uguali
a - e mi piace usare le parentesi solo per organizzare, quindi è tutto chiaro. Lo rende più leggibile.
Sarà 60, perché 60 è il
numero di minuti in un'ora. E lo moltiplicherò per il numero di ore in un giorno che è 24.
Lo moltiplicherò per il numero di giorni in un
anno, che è 365.
E quindi questo calcolo mi darà quanti minuti ci sono in un solo anno.
E ora posso usarlo per calcolare i miei anni.
Quindi qui nella riga successiva, posso dire anni uguali, quindi qui stiamo usando
operatori di assegnazione, gli uguali.
E poi quello che stiamo facendo tra quelle parentesi sulla riga 16 è
che stiamo usando l'asterisco che è una moltiplicazione. Così carino.
Gli anni saranno uguali a - e ancora una volta voglio usare le parentesi.
I minuti inseriti che è stato fatto dall'utente diviso
per i minuti nell'anno.
Quindi, se hai inserito 5000 minuti e ci sono 20000 minuti in un anno,
5000 diviso 20000 ti darà quanti anni ci sono
che sarebbero 0 punti qualcosa.
Per calcolare
i giorni, qui dirò
solo i minuti inseriti diviso
per 60 e 60. 0 perché
c'è quello che c'è da
60 minuti in un'ora.
E poi una volta che ho le ore, posso dividerle per il numero di
giorni che è 24. 0.
E avrei potuto metterlo in un altro calcolo se avessi voluto.
Ma ancora una volta, voglio assicurarmi che lo facciamo nell'ordine corretto.
Quindi prima divido i minuti di invio diviso per 60.
Non devi preoccuparti di questo in realtà
perché qui stiamo facendo la divisione, quindi l'associatività sarà da sinistra a destra
e in realtà non avrei bisogno di queste parentesi. Ma mi piace sempre aggiungere parentesi perché rende le cose più leggibili.
Quindi aggiungiamo l'ultimo.
È un po 'ridondante. Non ne ho nemmeno bisogno qui. Quindi lasciamolo
fuori, solo i primi. E questo dovrebbe mostrare i nostri giorni.
Ora che ho eseguito i miei calcoli e ho utilizzato alcuni degli operatori.
Voglio fare un printf solo per stampare i miei dati.
Qui dirò di stampare prima i minuti, la
percentuale d
minuti è approssimativamente la percentuale f anni e la percentuale f giorni.
E poi aggiungerò un avanzamento riga.
Quindi quello che sta facendo è che stiamo usando printf per visualizzare l'output delle
variabili ei simboli di percentuale ricordano i nostri specificatori di markup.
La prima cosa che voglio stampare sono i minuti, quindi devo mettere i minuti dopo la mia prima virgola quando viene inserita.
Il secondo è l'anno, quindi voglio dire anni perché è la percentuale f anni.
E il terzo è giorni qualcosa del
genere.
Ora dovrei compilare ed eseguire, e dovrebbero fare la mia conversione per me.
Quindi andiamo avanti e costruiamo. Non ho mattine, né errori.
Corriamo e non sono nemmeno sicuro di quanti minuti siano
in un anno. Quindi non sono sicuro
di come testarlo, ma mettiamo solo 5000 minuti per iniziare.
Quando eseguo il programma, mi chiede di inserire il numero di minuti, vado a mettere 5000.
E se non hai inserito un numero, potresti avere un arresto
anomalo perché lo stai convertendo in un numero nella funzione scanf.
Ho premuto Invio, questo dice che 5000 minuti sono
circa 0. 009513
anni e 3. 47222 giorni,
il che sembra avere senso perché quello che 60 minuti in
un'ora per 24, sarà all'incirca 2400 o giù di
lì per un giorno, quindi 2400
e 2400, non 60 volte. Mi dispiace
che 60 per 24 saranno circa 1200.
Quindi 1200 va in 5000 come, molte volte per ogni
giorno probabilmente circa 3. 4 lì intorno.
Quindi approssimativamente questo sembra essere corretto.
Quindi puoi eseguirlo più volte, ma inserisci alcuni numeri grandi di ciò che noterai.
Stiamo solo immagazzinando i doppi qui. Quindi se lo esegui e provi a inserire
un numero troppo grande, ad esempio 600 miliardi o qualcosa
del genere, potresti non
essere corretto, quindi potresti avere delle correzioni qui. Quindi questo ti mostra i problemi dei tipi di dati.
Quindi sto memorizzando in un int. Int è solo 8 byte. Ho inserito questo numero enorme.
Non può essere memorizzato al suo interno. Quindi quando vado a
stamparlo, sto stampando su un numero completamente diverso, 184298154.
Questo perché quello che sto inserendo è più grande di un int.
Quindi potresti prendere in considerazione se vuoi che questo programma
sia ancora più preciso e vuoi inserire numeri più grandi per cambiare alcuni tipi di
dati, cambiare gli interi in doppi o anche i doppi in lunghi.
Quindi questo significa 350 anni e 127000 giorni circa.
Quindi una bella piccola app di conversione che, ancora una volta, cerca
di fornire una certa comprensione
dei tipi di dati e degli operatori.
Potremmo avere molte app di conversione diverse. Un'altra bella app che
vorresti scrivere per fare più pratica sarebbe l'app da Fahrenheit a
Celsius.
Scrivi un'app che consenta all'utente di inserire Fahrenheit e poi convertirla in Celsius.
Voglio dire, ci sono molti, molti scenari diversi che ti vengono in mente. Ma questo ti costringerà a usare gli operatori.
E potremmo anche fare un casting
qui se lo volessimo. Se non ci è piaciuto che
i giorni fossero troppo precisi e forse vogliamo cambiare il double in un int.
E vogliamo renderlo un po 'meno preciso. Potremmo effettivamente dire cast questo
a un esso fornendo semplicemente le parentesi e
quindi facendo int.
E questo in realtà richiederebbe quel numero per giorni.
E se è 3 decimale. 549 o qualcosa del genere, lo convertirà in 3.
Forse sarebbe meglio per l'utente, dipende da te.
Ma teniamolo per ora come doppio.
Ma è così che impari. Giochi con il programma, provi scenari diversi,
provi input diversi, ti assicuri che tutto sia corretto. Grazie.