Hola bienvenido de nuevo.
En esta demostración de la conferencia Quiero dar una solución a nuestro programa
meteorológico del que hablé sobre en nuestro desafío anterior.
Así que comencemos el código Los bloques crean un proyecto.
Voy a nombrar este proyecto de clima.
Y de nuevo, solo un recordatorio de esto la
aplicación nos permitirá obtener totales anuales y mensuales promedios para las cantidades de lluvia.
Así que justo en la parte superior, quieres para proporcionar comentarios que le indiquen
cuál es el programa.
Nuevamente, este programa va a ser encontrar totales anuales, promedio anual
y promedio mensual durante varios años de datos de precipitaciones, 5 años esencialmente.
Así que en la parte superior, voy para definir un par de constantes, y no hemos
repasado la definición directiva de preprocesador en detalle todavía,
pero está familiarizado con esto, no es realmente complicado.
Así que lo voy a incluir y quiere escribir código de buena calidad.
Así que solo voy a definir uno que se llama
meses puede ser igual a 12 y una constante.
También puedes usar la constante modificador, y también voy a definir uno que
se llama años igual a 5.
Eso es lo que vamos a protagonizar.
Y lo primero que realmente queremos que hacer en nuestra función principal
es que queremos crear nuestra matriz que es una matriz bidimensional y queremos inicializar
los datos.
Entonces vamos a inicializar cantidades de lluvia,
datos de lluvia para 2010, 2011 y 2015 o algo así.
Y entonces sabemos cómo crear un matriz bidimensional, solo especificamos
el nombre del tipo de datos y
Creo que deberían ser un flotador porque los flotadores tienen puntos decimales y las cantidades de lluvia pueden ser decimales.
Así que solo diremos flotar, vamos a llamarlo lluvia
y luego vamos a especificar que quiere tener 5 filas y 12 columnas.
Entonces solo vamos a decir años que es nuestra constante y meses, y luego
lo inicializaremos.
Lo hemos declarado de ese tamaño y ahora queremos inicializarlo.
Y puede inicializarlo teniendo corchetes así y luego puede tener corchetes
interiores para cada fila.
También podríamos hacer esto array constante si
quisiéramos, pero no lo haremos.
Ahora ya hice esto datos y no
quiero escribir cuál sería.
Esto sería 10 veces 50 o 12 multiplicado por 5, serían 60 elementos.
No quiero escribir 60 elementos ahora mismo
porque tomará tiempo y solo vas a sentarse allí y quedarse dormido.
Así que voy a copiar y pegue mi inicialización
e inicialice algunos datos.
Estos son solo algunos datos ficticios; puede que no sea correcto.
Pero verás que tenemos corchetes para cada fila y así tenemos 5 filas.
Estamos separando cada fila por un coma y tenemos estas llaves
adentro para cada fila.
Y luego dentro del rizado llaves, separamos cada
valor mensual con una coma.
Entonces estamos separando filas por comas y separamos los valores dentro
de las filas por comas.
Aquí hay un montón de Cantidades anuales de lluvia.
Entonces, por ejemplo, esta primera fila representaría el año 2011 y la primera
columna sería enero.
Entonces, en enero de 2011, tenía 4. 3 pulgadas de lluvia.
Aquí abajo si tuviéramos que mirar 6. 7, esto sería para el año 2012, 13.
Para el mes de marzo tenía 6. 7 pulgadas de lluvia.
Para que pueda ver cómo esto representa años y meses de lluvia.
Ahora que hemos inicializado todos nuestros datos, en realidad podemos inicializar o
crear nuestras otras variables locales.
Así que vamos a crear un
año y un mes porque esto ayudará a mantener nuestros años rectos y nuestros meses rectos.
Así que solo digo año mes
estoy los voy a crear en la misma línea, y también voy a crear un par flota subtotal y total.
El subtotal será el total anual; total será la precipitación total para que
pueda obtener el promedio anual.
Y también averiguaremos cómo obtener promedios mensuales.
Entonces lo primero que necesito hacer es
que necesito tener un bucle for que imprima nuestro lluvia para un año en particular.
Así que primero voy a imprimir en una sola línea.
Solo voy a imprimir el año y voy a agregar una pestaña ...
agregue una pestaña para que tenga un mejor formato.
Agreguemos 2 pestañas, veremos cómo esto se ve una vez que lo muestro.
Y luego voy a poner lluvia, y voy a poner eso en pulgadas y voy a agregar un
salto de línea.
Y de nuevo, querrás probar esto para ver cómo se ve.
Y luego voy a entrar en mi ciclo.
Entonces, ¿qué quiero hacer para para calcular los subtotales de cada
año mostrarlos, quiero ir a través de todas las filas, todos los años, y luego para cada
año, quiero pasar por todos los meses porque necesito
sumar los meses.
Entonces nuestro bucle externo va a comenzar. con el primer año, que es 2011, pero
en realidad es 0 dentro del matriz porque las matrices están indexadas 0.
Y también voy a inicializar otra variable local dentro de aquí.
Recuerde, los bucles for son muy flexibles.
De hecho, puede crear otros variables en la instrucción for.
No necesitaba crear una variable que se usa fuera de la declaración
for en las líneas 19 o 20.
Así que aquí solo voy a crear una variable llamada total o inicializar
mi variable total.
Y luego voy a pasar hasta mi año es menor que mis años, lo cual es constante,
y voy a incrementar mi año variable de control de ciclo de contador.
Entonces el año y el mes son un bucle. variables de control en las líneas 19.
Y esto va a representar mi bucle exterior.
Es una matriz bidimensional, así que estoy también va a necesitar un bucle interior.
Y mi bucle interior va para pasar cada mes.
Así que aquí voy a decir mes es igual a 0, el subtotal de cada mes
también es igual a 0, inicialícelo.
Y voy a pasar hasta Terminé con todos mis meses.
Y voy a incrementar mi variable de control de bucle, y este será mi
bucle interno.
Entonces, en mi bucle interno, realmente puedo determinar los subtotales, no necesito
mostrar nada.
Así que todo lo que voy a hacer en mi
bucle interno es que voy a agregar a mi subtotal para cada año, mi subtotal es mi total anual.
Y aquí solo voy para acceder a la matriz.
Mi nombre de matriz va a ser lluvia.
Así que puedo decir lluvia sub año, por lo que esto sería todo para 2011
inicialmente porque mi exterior bucle y luego para cada mes.
Y lo estoy agregando.
Así que digo que el subtotal es igual al subtotal más lluvia más el valor de la matriz.
Entonces el bucle interno pasa por todos los meses de ese
año crean un subtotal.
Ahora quiero mostrar el subtotal fuera del bucle
porque solo quiero mostrar el subtotal 5 veces durante 5 años.
Así que aquí puedo un poco declaración de impresión que
ayuda a formatear los datos un poco y también ayuda a mostrarlo correctamente.
Ahora esta sera la año y subtotal.
Así que probablemente querremos agregar al subtotal, diría un par de pestañas, pero veremos qué parece, así
que barra t barra t.
Y luego la única otra cosa lo que queremos
hacer es sumar al total porque necesitamos tener el total de todos los años.
Así que aquí solo podemos decir total más es igual a subtotal.
Y luego notarás el subtotal en realidad, se reinicializa cada vez que accedes
al bucle interno, para que no tengamos que retrasar eso.
Y aquí solo queremos hacer seguro que la sangría es buena.
Nuevamente, observe mi sangría para cada bloque, y en realidad no necesito los corchetes en
27 y 29 ya que es una sola declaración, pero los voy
a dejar allí.
Ahora que he hecho eso después de imprimí la lluvia anual o la
lluvia para cada año, ahora puedo mostrar el promedio anual porque tengo suficientes datos, tengo
el total lluvia en cada mes de lluvia.
Así que aquí solo voy a mostrar el promedio anual que es solo
el total dividido por los años.
Así que agregue otra declaración impresa aquí.
De nuevo, otro buen lugar para probar.
Así que sigamos adelante y construyamos esto, asegúrese de que no
tengamos ningún error ya que es mucho código.
Y tenemos un año variable no declarado.
Cuando vea un error del compilador, a veces es una tergiversación de
cuál es el error real.
Entonces en este caso me dijo que tenía un error en la línea 19, pero realmente lo
que estaba causando el error era la declaración anterior que no
tenía un punto y coma final.
Ejecutemos esto y veamos si puede ver la precipitación anual, ver
cómo está formateada.
Así que aquí vamos año 2010 lluvia en pulgadas.
Probablemente agreguemos demasiadas pestañas después de que mostramos los subtotales, el promedio
anual es 39. 4.
Probablemente queramos arreglar eso simplemente deshaciéndose de una pestaña aquí.
Recuerde, puede agregar un tab en su salida usando la
secuencia de escape barra t.
Así que al menos se ve bastante bien.
Ahora tenemos que tener otro bucle que mostrará
los promedios mensuales.
Entonces, antes de mostrar el mensual promedios Quiero imprimir
todo en una sola línea.
Así que solo voy a imprimir alguna información usando printf.
Voy a imprimir mi promedios mensuales y agregue feeds de 2 líneas
para que tenga un mejor formato.
Y luego voy a imprimir mi otra información.
Solo nos vamos a separar los meses por unos pocos espacios y luego agregue una nueva
línea.
Entonces vamos a hacer lo mismo cuando pasamos por nuestro bucle for.
Ahora necesitamos otro bucle for ahora para obtener los promedios mensuales.
Así que en este bucle for, el exterior El bucle comenzará en el mes.
En lugar de pasar por cada fila, ¿qué Lo que
voy a hacer aquí es revisar cada columna porque Necesito obtener el promedio mensual.
Así que voy a empezar y estoy Pasaré
por cada columna que es enero febrero Marzo representan columnas.
Y para cada columna, voy a revisar todos
los años para esa columna y luego puedo usar el subtotal y el total de las variables de nuevo.
Así que aquí voy a decir mes es igual a 0, mes es
menor que meses y mes más más.
Y luego mi bucle interno es va a pasar por los años.
Así que aquí solo voy decir que año es igual a 0.
Y recuerda que yo tambien quiero para reinicializar mi subtotal.
Así que aquí voy a decir subtotal es igual a 0
porque quiero empezar en 0 una vez que tenga mi nuevo año, pasar por todos los años y luego
incrementar el año, la variable de control de salto.
Y aqui dentro quiero poner mi subtotal que va a ser igual a mi matriz
durante un año y meses.
Y por eso es importante entender lo que está pasando aquí es que cambiamos la forma en que estamos identidad
a través de la matriz.
Y los primeros bucles que iteramos revisando cada fila y mirando
cada columna.
En este realmente vamos a través de
cada columna y mirando esa fila específica porque estamos cálculo de promedios mensuales.
Entonces obtenemos el subtotal y luego solo quiero imprimir nuestro subtotal dividido por
años para ese mes.
Para que coincida con nuestra salida en la línea 37.
Entonces solo vamos a hacer algo como esto, y
lo haremos con 4. 1 formato, subtotal dividido por años.
Y agregamos un par de espacios para que intentan alinearlo de la mejor
manera, es posible que deseemos agregar otro espacio.
Y luego, después de que hayamos impreso todo, podemos simplemente agregar un avance de línea para
facilitar la lectura, y listo.
Y eso nos dará la promedios mensuales porque obtuvimos todos los subtotales luego lo
dividimos por años.
Ahora construyamos esto sin errores y ejecútelo.
Y ahora veremos más Salida para totales mensuales o
promedios mensuales.
Así que aquí vemos que mensualmente promedios y el formato no
se alinea muy bien.
Entonces todo depende porque de la salida del personaje.
Probablemente queramos disminuir el espacio, solo agregue un espacio allí, veamos si eso hace
un mejor trabajo.
Ahora, cuando lo ejecutamos, veamos si se ve mejor porque
quieres poder atar cada mes con el promedios, eso es un poco mejor.
Todavía nos alejamos un poco porque los meses son 3 caracteres
y los enteros son 2.
Principalmente nos jodimos entre octubre y noviembre porque solo hay
un espacio.
Ahora puedo arreglar eso simplemente yendo así.
Entonces eso debería hacer el formato todo agradable.
Pero puedes ver como estamos solo imprimir cantidades de lluvia por
años y promedios mensuales.
Espero que esto te haya familiarizado matrices bidimensionales, cómo iterar a través de
ellas, cómo asignar matrices y cómo acceder a los datos.
Gracias.