COLUMNA 1: Imos falar sobre a auga.
Neste problema, pedimos ao usuario informar -Nos canto tempo en minutos o ducha era
e entón nós o cálculo do equivalente número de botellas de auga
que o seu ducha usado.
>> Entón, cales son os nosos quefaceres a este problema?
En primeiro lugar, imos querer para solicitar e logo, validar
a entrada ao usuario dános.
Unha vez que temos o coidado de ter a entrada de usuario válido,
imos calcular o número equivalente de botellas de auga
que o usuario tivo durante seu ducha, e entón nós estamos
vai dicir a eles por imprimindo a ese número.
>> Entón, imos afrontar o noso primeiro tarefa, o que levou e validando
a entrada do usuario.
Para iso, ten escribiu un función para ti chamado
get_int situado na Biblioteca CS50.
get_int asegura que as entradas de usuarios un enteiro, entón todos os números positivos,
números negativos, ou cero son todos aceptados.
Pero se o usuario inserir calquera outra cousa, polo tanto, calquera combinación de letras ou números
ou números decimais, a continuación, o usuario será solicitada para repetir
ea función non aceptar calquera cousa ata que o usuario dálles un número enteiro.
>> Entón, como imos usar get_int?
Se abre o seu espazo de traballo e crear un arquivo chamado integer.c imos
escriba o seguinte.
Hashtag inclúen cs50.h.
Isto é preciso porque get_int é unha función de biblioteca CS50,
por iso debemos hashtag inclúen súa declaración, a fin
usar a función.
E entón, na miña principal funcionar Eu só vou
simplemente chamar a función get_int.
>> Entón, imos rodar e ver como funciona.
Eu xa compilado-lo, entón imos dalle realizar este programa,
./integer.
Aquí eu teño un prompt e aquí é onde eu introducir o valor.
Digamos que eu coloque en só un enteiro, 50, a excepts programa e sae
e que é iso.
>> Pero digamos que eu executa-lo novo e I entrada de outra cousa.
Quizais, Ola mundo.
Isto non é un número enteiro de xeito que o programa pode pedir-me para tentar de novo.
Imos tentar de novo con quizais un decimal este tempo.
0,5, de novo, un número enteiro non tan o programa non pode acepta-la
e que vai dicir-me para tentar de novo.
Entón, imos darlle outro número.
O programa acepta, sae, e estamos a facer.
>> Polo tanto, agora temos unha función que nos permite e garante
que o usuario introduce un enteiro, pero como podemos
realmente manter o control do integer introducidos polo usuario?
Ben, todos nós imos facer é tenda este valor nunha variable, digamos, n.
Entón, se eu declarar un enteiro n, e eu definir ese valor para get_int,
entón n, entón, almacenar calquera valor que o usuario inserido.
>> Todo ben, entón agora temos asegurado que o usuario vai dar un enteiro
e sabemos como manter o control do enteiro, pero lembre,
enteiros son tanto positivas como negativas.
Polo tanto, non ten moito sentido no contexto deste problema
que o usuario toma un baño de dicir negativo de 12 minutos.
Por iso, cómpre asegurarse de que o usuario realmente nos dá un enteiro positivo.
Agora non temos só un función única para iso,
polo que teremos para crear ese nós mesmos.
>> Por iso, queremos continuamente solicitar ao usuario
ata que nos dan un enteiro positivo.
Se eu estou facendo algo de forma continua, logo que é semellante a un loop, unha repetición.
Polo tanto, unha das construcións que usan no c para aplicar repetición e voltas
é un loop while.
Así, un loop while, como mostra aquí, executará
o que está no corpo do lazo como sempre que os datos avalía a condición
para true.
Así que esta condición avalía a falsa, entón
o programa continuar o que quere que vén despois do corpo do ciclo.
>> Así, mentres lazos van ser realmente útil en CS50.
Pero, neste particular, caso, sabemos que estamos
indo para solicitar ao usuario, polo menos, xa e só entón circuíto, se é necesario.
Entón, aquí chegamos a un construción especial e iso é
moi semellante ao mentres circuíto chamado bucle do-while.
>> Entón bucle do-while executa o corpo do lazo, polo menos, unha vez
e, a continuación, el verifica a ver se debe realizar,
en oposición a unha ansa de tempo, que pode comprobar a condición
e, a continuación, realizar o corpo.
Así, nun bucle do-while que poderiamos facer é pedir ao usuario a un número enteiro,
e despois comprobar que é válido ou non.
De ser válido, entón nós imos Repita o proceso pedindo ao usuario
para dar outro enteiro, e logo só cando este completo é válido,
seguiremos o que vén despois.
>> Agora notará que a declaración do enteiro n
é lixeiramente diferente do que fixo antes no exemplo anterior
e iso é debido ao alcance.
Se tivésemos declarado o enteiro n dentro do corpo do lazo do-tempo,
non sería capaz de acceder que o valor de n do lado de fóra dos rizado
cintas que indica o corpo do lazo.
Pero de feito quere acceder ao valor de n, máis tarde, o noso programa.
>> OK, entón agora imos falar sobre o que esta condición debe ser.
Queremos Reprompt só o usuario, sempre que n é válido.
Entón, pensar a si mesmo que un inválido valor enteiro sería semellante
e despois crear un booleano expresión para expresalo.
>> Estamos case a acabar coa nosa subtask de solicitar e validar a entrada do usuario.
Entón, imos facelo un pouco pouco máis agradable
e dar ao usuario un pouco pouco máis de información
do que estamos levando-os para.
Polo tanto, imos pedir ao usuario, polo spec, cos minutos de cordas.
Entón, usando as súas declaracións printf, facer Asegúrese de que combinar iso exactamente.
>> Todo ben.
Polo tanto, agora temos un usuario válido de entrada, un número enteiro positivo
valor para cantos minutos pasaron na ducha.
Entón, o que vén a continuación é calcular o número equivalente de botellas.
O que imos facer aquí pode ser moi evidente para ti en primeiro lugar,
e iso é OK.
O que queremos facer é que Quere comezar a practicar
a idea de detección de patróns e desenvolvemento de fórmulas para o problema.
>> Entón, nós estamos dixo por especificación que un minuto no baño
equivale a uns 12 botellas de auga.
Entón, a continuación, dous minutos faría ser equivalente a 24,
e cinco minutos sería ser equivalente a 60.
Polo tanto, agora se pensa ten iso, entón imos
vexa se pode vir cara arriba con un nivel ou fórmula
para expresar se temos que dicir, n minutos, cantas botellas de auga
tería que ser expresada en termos de n?
>> Unha vez máis, aínda que esta Pode ser simple na primeira,
máis tarde, cando comezamos a problemas máis complicados
imos querer entrar a práctica de identificar
patróns e fórmulas desenvolvemento para descubrir iso.
>> En c ten acceso a operacións aritméticas estándar,
suma, resta, multiplicación e división.
Entón eu vou deixar agora descubrir
como expresar o número equivalente de botellas
que o usuario consumiu durante o seu ducha.
>> Todo ben, estamos case rematando.
Temos solicitado ao usuario para a súa entrada, temos asegurado que é unha entrada válida,
e, despois, descubrín como para calcular o equivalente
número de botellas que consumidos.
Así, a última cousa que facer é para a saída o número equivalente de botellas
e esperamos fomentar Los para conservar un pouco de auga.
>> Producir o valor será ser unha instrución printf.
Se eu quería che dicir que eu ter tres animais, por exemplo,
Eu podería usar unha instrución printf que é algo así.
Teño tres animais, e unha nova liña para formatar agradable.
>> Agora nós non queremos simplemente cousas de código ríxido.
Din que o número do meu animais cambia co tempo.
Entón eu vou facer uso espazos reservados na miña declaración printf.
Entón aquí o meu número é un enteiro.
Entón, eu vou facer un espazo reservado para un enteiro usando% i.
Eu estou indo a escribir a secuencia, e logo, tras a cadea
Eu escriba unha coma e, a continuación, o variable que desexa imprimir.
Así que o valor será impreso en vez dese espazo reservado,% i.
>> Podes usar espazos reservados, como Ben, para flotadores cun% f.
Tamén pode ter múltiples espazos reservados nunha cadea.
Por exemplo, se eu tivera algún número de cans e un certo número de gatos,
Coloque dous espazos reservados aquí e, a continuación, miñas dúas variables na respectiva orde.
>> Polo tanto, agora que sabemos como imprimir os valores almacenados variables,
o último a facer é garantir que
imprimir o valor en formato exacto indicado na especificación.
Con iso, temos levou o usuario e validada a súa entrada.
Temos entón calcular o equivalente número de botellas de auga
que consomen durante o seu ducha, e temos emitido ese valor para eles.
E así, nós completados auga.
>> O meu nome é [? Zamila ,?] e este é o CS50.