ALTAVOZ 1: Vamos a hablar de agua.
En este problema, se pedirá al usuario que diga Nos cuánto tiempo en minutos la ducha era
y luego se calcula el equivalente número de botellas de agua
que su ducha utiliza.
>> ¿Cuáles son nuestras cosas por hacer para este problema?
En primer lugar, vamos a querer para pedir y luego validar
la entrada que el usuario nos da.
Una vez que nos aseguramos de que nos tiene entrada de usuario válido,
vamos a calcular el número equivalente de botellas de agua
que el usuario tuvo durante su ducha, y entonces estamos
va a decir por imprimir ese número.
>> Así que vamos a abordar nuestro primer tarea, lo que provocó y validar
la entrada del usuario.
Para ello hemos escrito una función para la que llamó
get_int situado en la Biblioteca CS50.
get_int asegura que las entradas del usuario un entero, por lo que los números positivos,
los números negativos, o Se aceptan cero.
Sin embargo, si el usuario introduce cualquier otra cosa, por lo que cualquier combinación de letras o números
o números decimales, entonces el usuario se le pedirá que vuelva a intentar
y la función no aceptará nada hasta que el usuario les da un número entero.
>> Entonces, ¿cómo usamos get_int?
Si abre su espacio de trabajo y crear un archivo llamado integer.c vamos
escriba lo siguiente.
Hashtag incluye cs50.h.
Esto es necesario porque get_int es una función de biblioteca CS50,
por lo que debemos incluir hashtag su declaración con el fin
para utilizar la función.
Y luego, en mi principal funciono solo voy
simplemente llamar a la función get_int.
>> Así que vamos a ejecutar esto y ver cómo funciona.
Ya he compilado, así que vamos a sólo seguir adelante y ejecutar este programa,
./entero.
Aquí tengo una pronta y aquí es donde la entrada I el valor.
Digamos que pongo en tan sólo algún entero, 50, los exceptúa del programa y se cierra
y eso es eso.
>> Pero digo lo funciono de nuevo y Yo de entrada algo más.
Tal vez, hola mundo.
Eso no es un número entero por lo que la programa me vuelva a intentarse.
Vamos a intentarlo de nuevo con tal vez un decimal este momento.
0,5, de nuevo, no un número entero por lo el programa no lo aceptará
y me dice que vuelva a intentar.
Así que vamos a darle otro número.
El programa acepta, se cierra y ya hemos terminado.
>> Así que ahora tenemos una función que nos permite y garantiza
que el usuario introduce una entero, pero ¿cómo podemos
de hecho un seguimiento de la número entero introducida por el usuario?
Bueno, todo lo que vamos a hacer es tienda este valor en una variable, digamos n.
Así que si me declaro un entero n, y me puse ese valor a get_int,
entonces n luego almacenar lo valorar el usuario introducido.
>> Muy bien, así que ahora nos hemos asegurado de que el usuario nos dará un número entero
y sabemos cómo hacer un seguimiento del número entero, pero recuerda,
son números enteros positivos y negativos.
Por lo que no tiene mucho sentido en el contexto de este problema
que el usuario toma una ducha de, digamos, 12 minutos negativas.
Por lo que necesitamos para asegurarse de que el usuario en realidad nos da un número entero positivo.
Ahora no tenemos sólo una función única para que,
así que vamos a tener para crear ese nosotros mismos.
>> Por lo que queremos continuamente pedir al usuario
hasta que nos den un número entero positivo.
Si estoy haciendo algo continuamente a continuación, que es similar a un bucle, una repetición.
Así que una de las construcciones que utilizamos en c para poner en práctica la repetición y bucles
es un bucle while.
Por lo que un bucle while, como se muestra aquí, se ejecutará
lo que está en el cuerpo del bucle como siempre y cuando la condición se evalúa dados
true.
Tan pronto como esa condición evalúa como false,
el programa procederá a lo viene después de que el cuerpo del bucle.
>> Así, mientras que los bucles se van a ser realmente útil en CS50.
Pero en este particular, caso, sabemos que estamos
va a pedir al usuario al menos una vez y sólo bucle si es necesario.
Así que aquí llegamos a una construcción especial y eso es
muy similar al mientras lazo llama un bucle do-while.
>> Por lo tanto un bucle do-while ejecuta la cuerpo del bucle al menos una vez
y luego se comprueba si se debe ejecutar,
a diferencia de un bucle while, que comprobará la condición
y luego ejecutar el cuerpo.
Así que en un bucle do-while lo que podríamos hacer es pedir al usuario un número entero,
a continuación, comprobar si es válido o no.
Si es válido, entonces vamos a repetir el proceso preguntando al usuario
para darnos otro entero, y luego sólo cuando ese entero es válida,
vamos a seguir lo que viene después.
>> Ahora se dará cuenta de que la declaración del número entero n
es ligeramente diferente a lo que lo hizo antes en el ejemplo anterior
y esto es porque de alcance.
Si hubiéramos declarado el entero n en el interior del cuerpo del bucle do-while,
entonces no sería capaz de acceder que el valor de n fuera de los rizada
tirantes que indica el cuerpo del bucle.
Pero nosotros queremos, de hecho, para acceder a la valor de n más adelante en nuestro programa.
>> OK, así que ahora vamos a hablar de lo que esta condición debe ser.
Queremos Nueva solicitud sólo el usuario, siempre y cuando n no es válido.
Así piensa a sí mismo lo que un inválido valor entero se vería
y luego crear un booleano expresión para expresar eso.
>> Ya casi hemos terminado con nuestra subtarea de preguntar y validar la entrada del usuario.
Así que vamos a hacer esto un poco poco más fácil de usar
y dar al usuario un poco poco más de información
de lo que les estamos solicitándole.
Así que vamos a pedir al usuario, por la especificación, con los minutos de cadena.
Así, utilizando sus estados de printf, hacer Asegúrese de que coincida exactamente esto.
>> Todo bien.
Así que ahora tenemos un usuario válido de entrada, un número entero positivo
valor por el número de minutos que pasaron en la ducha.
Entonces, ¿qué es lo próximo es calcular el número equivalente de botellas.
Lo que vamos a hacer aquí podríamos ser muy obvio para usted al principio,
y eso está bien.
Lo que queremos hacer es que quieren empezar a practicar
la idea de la detección de patrones y el desarrollo de fórmulas para el problema.
>> Así se nos dice por la especificación que en un minuto en la ducha
es equivalente a alrededor de 12 botellas de agua.
De manera que lo haría dos minutos equivalente a 24,
y cinco minutos te equivalente a 60.
Así que ahora si usted piensa usted lo tiene, entonces vamos a
ver si se puede llegar con un patrón o fórmula
para expresar si hemos decir, n minutos, ¿cuántas botellas de agua
habría que ser expresada en términos de n?
>> Una vez más, a pesar de que este podría ser simple al principio,
más adelante, cuando se llega a problemas más complicados
vamos a querer entrar en la práctica de identificar
patrones y las fórmulas en desarrollo para entender estas cosas.
>> En c se tiene acceso a operaciones aritméticas estándar,
suma resta, multiplicación y división.
Así que lo dejo a ahora a averiguar
la manera de expresar la número equivalente de botellas
que el usuario consume durante su ducha.
>> Muy bien, estamos casi hecho.
Hemos pide al usuario para su entrada, nos hemos asegurado que se trata de una entrada válida,
y luego hemos descubierto cómo para calcular el equivalente
número de botellas que se consumen.
Así que lo último que hay que hacer es la salida el número equivalente de botellas
y es de esperar alentar a conservar un poco de agua.
>> La salida será el valor ser una sentencia printf.
Si quería decir que me tener tres animales domésticos, por ejemplo,
Yo podría utilizar una instrucción printf que se ve algo como esto.
Tengo tres animales domésticos, y un nuevo línea para el formato agradable.
>> Ahora no queremos cosas simples de código duro.
Decir el número de mi mascotas cambia con el tiempo.
A continuación, voy a hacer uso de marcadores de posición en mi declaración printf.
Así que aquí mi número es un número entero.
Así que voy a hacer un marcador de posición para un entero utilizando% i.
Voy a escribir la cadena, y luego después de la cadena
Escribo una coma y luego el variable que quiero imprimir.
Así será impreso ese valor en lugar de ese marcador de posición,% i.
>> Puede utilizar marcadores de posición, como se así, para los flotadores con un% f.
Usted también puede tener múltiples marcadores de posición en una cadena.
Por ejemplo, si tengo algún número de los perros y algunos número de gatos,
Pongo dos marcadores de posición aquí y luego mis dos variables en orden respectivo.
>> Así que ahora que sabemos cómo imprimir los valores almacenados en las variables,
la última cosa que hacer es asegurarse de que nos
imprimir el valor en el formato exacto se indica en la especificación.
Con esto, hemos impulsado a la usuario y se valida su entrada.
a continuación, hemos calculado el equivalente número de botellas de agua
que consumen durante su ducha, y hemos emite ese valor para ellos.
Y así, hemos completado el agua.
>> Me llamo [? Zamila,?] y esto es CS50.