Hola y bienvenido.
En esta conferencia, quiero hablar sobre el concepto de matriz.
Una matriz es un concepto que permite que almacene muchos valores diferentes
en una sola variable esencialmente.
Las matrices son comunes en la mayoría de lenguajes de programación.
Ayudan a simplificar y hacer que su programa mucho más eficiente.
Entonces vamos a hablar de crear y usar matrices en c.
Entonces una matriz.
Es muy común en un programa almacenar muchos valores de datos de un tipo específico.
En un programa deportivo, por ejemplo, es posible que desee
almacenar las puntuaciones de todos los juegos o las puntuaciones de cada jugador.
Hasta este punto, podríamos fácilmente implementar eso, pero tendríamos que escribir una variable diferente
para cada puntuación.
Así que imagina si hay un montón de juegos.
Quiero decir, en el béisbol hay 162 juegos.
Si tuviéramos que escribir un programa que era un programa
de béisbol que quería almacenar algunas estadísticas o algo así, Tendría que crear
162 variables para cada juego para llevar la puntuación.
Eso es un dolor en el trasero.
Sería muy tedioso.
y realmente es demasiado.
Así que aquí es donde array entra en juego, una
matriz resolverá este problema.
No tienes que hacerlo crear 162 variables.
Puedes crear una sola variable y acceder a él de cierta manera.
Entonces, las matrices le permiten agrupar valores juntos bajo un solo nombre.
No necesitas separarte variables para cada elemento de datos.
Así que te permitirá convertirte un programador mucho más eficiente.
Una matriz es un número fijo de datos. Los artículos son todos del mismo tipo.
Entonces, solo un problema con un array es que no puede cambiar el
tamaño de la matriz.
Una vez que crea la matriz, es siempre será de ese tamaño.
Y la otra restricción es que no puede almacenar varios
tipos de datos.
Si declara una matriz y es todavía va a almacenar números
e ints, tiene que almacenar ints.
Entonces un par de limitaciones.
¿Cómo se declara una matriz?
Recuerda que cuando declares una variable que estas haciendo?
Estas diciendo que esto La variable existe en el programa.
Y cuando estas declarando estos tipos de datos primitivos, está
asignando forma de memoria.
Cuando declaras una matriz, los elementos de datos de la matriz
se denominan elementos.
Entonces este es otro concepto cuando piensas en una matriz.
Si digo el término elemento eso significa que me refiero a
un elemento de la matriz.
Porque recuerda que una matriz es va a tener muchos, muchos valores
diferentes pero con el mismo nombre.
Y como mencionamos los elementos en la matriz tiene que ser del mismo
tipo, no se pueden mezclar y combinar tipos de datos.
No puedes tener una matriz de 5 pulgadas y 5 largos.
No existe tal cosa como un solo matriz de múltiples tipos de datos.
Declarar un uso de una matriz en un programa es similar
a una declaración de variable normal.
Todo lo que tienes que hacer es especificar el nombre y luego use corchetes.
Entonces esa es la única diferencia esta idea de
corchetes siguiendo el nombre.
Aquí hay un ejemplo de este parece una
declaración de variable normal, pero lo que ves aquí tienes estos soportes.
Eso es lo único que es no es normal, y hay un
número dentro de ellos.
El número dentro de los corchetes están especificando el tamaño.
Así que aquí solo decimos que estamos va a crear
una matriz llamada números de tipo largo que es va a contener 10 elementos.
Entonces es bastante sencillo.
Este es un número una declaración porque el punto y coma está al final,
es como una declaración de variable pero tienes esos
corchetes y un número, y este es el tamaño de la matriz o la dimensión de la matriz.
Una vez que haya declarado una matriz, estará luego querrás empezar a usarlo.
Vas a querer empezar acceder a
los datos que contiene o escribir datos en él.
Para hacer eso, tienes para comprender cómo se almacena la
matriz en la memoria y cómo se realmente se va a acceder.
Entonces, una matriz con cada uno de los elementos en la matriz, se accede a cada uno de los elementos
de datos con el mismo nombre.
Así que seguirás accediendo con el nombre de la variable.
Sin embargo, si desea un valor en ese rayo, ahora
vas a tener que usar algo llamado un índice o un subíndice, ambos términos
se usan indistintamente.
Este índice o valor de subíndice es va a ser un número y también
va a estar dentro de los corchetes para acceder a un elemento en la matriz o
directamente a ese lugar en la matriz, escriba un valor, después del nombre de la matriz.
Entonces los valores de índice son secuenciales enteros que comienzan en 0.
Entonces, cuando hablamos de una matriz y sus
elementos y hablamos de los índices en una matriz o los subíndices, todos esos subs pueden comenzar desde 0.
Esto básicamente está diciendo que sus rayos se basan en 0.
Por lo tanto, los valores de índice para los elementos en un matriz de tamaño 10 sería de 0 a 9.
0 va a representar que primer elemento de la matriz, y 9 se referirá al
último elemento en una matriz de tamaño 10.
Entonces tienes que entender esto concepto de matrices basadas en 0.
Intuitivamente, podrías pensar oh yo quiero acceder al primer
lugar en la matriz, de acuerdo, proporciono índice uno, no porque comienzan en 0.
Así que es muy, muy común intente por error acceder a una matriz y
se apague en 1 porque cree que comienzan en uno y
no comienzan en 0.
Esto se refiere a como un error de apagado por 1.
Puedes usar un entero simple para hacer referencia explícita al
elemento al que desea acceder.
Por ejemplo, si desea acceder el cuarto valor en una
matriz, diría el nombre de la matriz y luego dentro de los corchetes diría 3.
Entonces el nombre de la matriz sub-3 va para acceder al cuarto valor porque
el nombre de la matriz está basado en 0.
Así que solo tienes que proporcionar un número para el elemento
al que desea acceder.
Y de nuevo, recuerda que es base 0.
Entonces, para acceder al cuarto elemento, es 3.
Si quieres acceder al Octavo elemento, haces el índice 7.
También puede especificar un índice para un elemento de matriz mediante el uso de expresión.
Así que ahora solo tienes que usar un número.
Puedes usar una expresión en cuadrado corchetes que siguen al nombre también.
Sin embargo, la expresión tiene que resultar en un valor entero, que corresponde a uno
de los posibles valores de índice.
Entonces, si tienes una variedad de tamaños 10 y usas una
expresión, esa expresión tiene que evaluarse para ya sea 0, cualquier número del 0 al 9.
También es muy común cuando estás almacenar elementos en una matriz para usar un bucle para
acceder a ellos y vamos para dar un ejemplo de eso también.
Por ejemplo, aquí tenemos un bucle y estamos inicializando nuestra variable de control de bucle a 0 I
y estamos salir una vez que tenga menos de 10.
Y que estamos haciendo aqui es que solo estamos
mostrando los números en la matriz.
Y entonces estamos diciendo printf el número es el porcentaje d
y luego los números sub-I, I es una variable.
Puede utilizar una variable en un expresión de variable siempre que
esa variable represente un número de 0 a 9, y en este caso lo hace.
Es muy común usarlo para bucles para iterar sobre una
matriz para acceder a los elementos o escribir datos en esos elementos.
Entonces, para resumir, aquí hay un buen pequeña ilustración que encontré.
Así es como se estructura una matriz.
Si tengo una matriz llamada números, vas a
tener el nombre de la matriz seguido por paréntesis que identifican elementos individuales
en la matriz.
Entonces puedo declarar una matriz con solo especificando el tipo y el
nombre y luego especifique el tamaño entre corchetes.
Y luego cuando quiera acceder , solo uso el nombre de la matriz
seguido del valor del índice.
Y así, para una
matriz que tiene un tamaño 10, tendrá índices válidos de 0 a 9.
Entonces, ¿qué pasa si intentas acceder un elemento de la matriz
con un índice no válido, por ejemplo, intentando para acceder a una matriz de tamaño 10 usando 11 como
índice o 10 es un índice.
Vas a tener una matriz fuera de los límites de error.
Entonces, si usa una expresión o una variable o una constante para un
valor de índice que está fuera del rango de la matriz y fuera de la matriz
de rango, ¿qué significa?
Bueno, significa que es negativo número o es un número que es
mayor que el tamaño, realmente mayor que el tamaño menos uno porque hay 0 base.
Entonces, si tienes una variedad de tamaños 10, talla menos 1, si es mayor que 9, tendrás
un error de matriz fuera de los límites.
Y el problema con una matriz de límites
de error, puede hacer que su programa se bloquee, o incluso peor aún, puede
hacer que parezca que su programa funciona con normalidad, pero luego no actúa con normalidad.
Entonces no produce resultados consistentes.
A veces tendrás basura datos, datos que no significan nada
en la matriz.
Una vez más, es muy impredecible cuando tiene una matriz de errores de límites.
Y el problema es que la matriz El compilador no puede comprobar
el error fuera de límites porque el El compilador no
sabrá si estás asignando algo mayor o si está accediendo a algo
mayor que el tamaño.
Todavía se va a compilar aunque tenga esta área fuera
de los límites de error.
Esencialmente la matriz de límites error es un error de tiempo de ejecución.
No vas a descubrir esto error hasta que ejecute el programa.
Y de nuevo puede causar tu programa para ser muy impredecible.
Entonces quieres ser muy, muy consciente de cómo está accediendo a la matriz, qué valores de
índice está usando y cómo está escribiendo datos en la matriz con
el valor del índice.
Preste mucha atención a la índices de matriz y también los límites.
Si desea escribir datos en un matriz, es muy, muy simple.
Vas a hacer basicamente solo usa el index.
Entonces, un valor se puede almacenar en una matriz elemento simplemente especificando el elemento de
matriz en el lado izquierdo lado del signo igual y luego usando los
corchetes para especificar el elemento en el que desea escribir.
Entonces, en este ejemplo, tenemos un matriz denominada grados, no sabemos qué tamaño es, tiene que ser mayor
que 100 o de lo contrario tendríamos un error de matriz fuera
de los límites aquí.
Pero en este ejemplo, estamos diciendo grado sub 100 es igual a 95.
El valor 95 se almacena en el elemento número 100 de la
matriz de grados, muy simple.
Solo especifica el índice y luego cualquier valor que quieras firmar
lo haces.
También puedes usar variables para asignar valores a una matriz.
Entonces 95 podría almacenarse en una variable, al igual que asigna otras variables.
Ahora repasemos un ejemplo de uso de una matriz.
A continuación, se muestra un ejemplo del uso de un matriz que
va a sumar leer en 10 números y luego darme el promedio de esos 10 números.
Mientras los leemos en estamos vamos a calcular la suma y
luego vamos a mostrar el promedio.
Entonces, en este punto, quiero tomar este ejemplo y
quiero ponerlo en bloques de código e intentar ejecutar y mostrarle cómo funciona.
Estamos en nuestra vista normal, estamos en un proyecto simple y le mostraremos cómo funciona una
matriz en bloques de código.
Notarás que estamos en nuestra función principal.
Esta es la entrada apunte al programa.
Y en la línea 12, estamos declarando una matriz.
Vamos a declarar un matriz de tipo int de tamaño 10.
El tamaño está dentro de los corchetes, lo terminamos con un punto y coma.
Esta es una matriz que va a almacenar 10 valores.
Si no tuviéramos esta matriz
almacenado lo que tendríamos que hacer es tener que decir grados 1 int, grados 2 int, grados 3.
Ves lo problemático que es y lo tedioso que es.
Es muy lindo que podamos simplemente cree una sola variable
que almacene 10 elementos, y están agrupados.
Cuando almacena elementos en una matriz, no quiero que los valores de los datos sean
diferentes, todas las cosas diferentes.
Como en este ejemplo, estamos almacenando grados, por lo que son todos grados.
No quieres nombrar una matriz algo y luego decir que voy
a almacenar mis calificaciones, voy a almacenar mi ...
mi... mi... lo que sea, mi edad allí y cualquier cosa.
Asegúrate de almacenar el mismo tipo de datos cuando eres una matriz.
La siguiente variable en línea 13 es una variable de conteo.
Es igual a 10.
Va a ser el numero de valores que se leerán porque
estamos revisando la matriz.
La suma es larga, vamos a sumar los números a medida que revisamos los
valores y luego el promedio va ser flotante porque queremos obtener el
promedio de los números.
Lo primero que haremos en línea 17 es
que le diremos al usuario que queremos que ingrese 10 grados y luego
leeremos los valores.
Así que en la línea 20 te das cuenta de cómo estoy
sangría y estoy usando una buena nomenclatura, sangría y uso un buen bloqueo de código para bloques de sangría de código.
Aquí, en la línea 20, declaro mi variable de control de bucle.
Estoy ejecutando un compilador más antiguo, c compilador 89, por lo que no puedo declararlo
e inicializar la misma línea.
Normalmente, solo harías esto.
Pero cuando lo hago porque estoy corriendo El compilador C89 recibe un error.
Entonces declaro mi variable en línea 20, y luego uso un bucle for.
Estamos familiarizados con los bucles for de nuestras conferencias anteriores le
permite repetir código.
Aquí solo estamos diciendo que vamos a tener un bucle for controlado por contador,
vamos a empezar en 0 y vamos va a ir todo el camino hasta las 10.
Así que nos vamos a ir a través de 10 iteraciones, pero
nota que el índice es 0.
Eso es importante porque vamos a acceder a
una matriz, usando esa variable I.
Y luego te darás cuenta al final del ciclo for, modificamos
la variable de control del ciclo incrementándola.
Entonces vamos a imprimir el valor de I más 1
a medida que recorremos la matriz para mostrarte dónde estás para los números.
Así que básicamente dirá como ingrese al grado 1 grado 2 grado 3 grado 4.
Entonces te pedirá que ingrese el grado usando scanf.
Lo almacenaremos en nuestra matriz.
Notarás que cuando almacenarlo en la matriz,
es como un acceso variable normal.
Solo usa calificaciones y luego especificas el índice.
Aquí estamos usando I como nuestro índice.
Entonces eso será igual a 0 la primera iteración, 1 la segunda
iteración, 2 la tercera iteración.
Y es bueno que empecemos con 0 porque las matrices están
basadas en 0 y luego solo usamos la dirección de operador, el ampersand.
A medida que avanzamos, estamos vamos a sumar las calificaciones.
Entonces vamos a decir suma es igual a la suma más el grado sub I.
Cada grado va a básicamente calcula un total.
Y luego, una vez que salgamos del bucle después de ejecutar 10
veces, vamos a establecer nuestro promedio igual al suma dividida por el recuento y la
lanza a un flotador, estamos lanzando aquí.
Esto está cambiando el tipo de datos.
Recuerde, suma dividida por recuento, suma es largo y cuenta como un int y queremos convertirlo en
un flotador.
Y luego, al final, estamos voy a imprimir el promedio.
Así que sigamos adelante y ejecutemos esto y asegúrese de que no obtengamos errores, que tenemos 0 error
y 0 advertencias.
Así que ahora ejecutémoslo.
Y así va a hacer exactamente lo que mencioné.
Va a decir ingrese los 10 grados y luego pone un 1 en una pequeña marca allí para que
sepamos en qué número estamos.
Va a poner como 95 32 55, va a entrar y solo poner cualquier
número aquí.
No tienen sentido necesariamente está bien, y mi último número 23.
El promedio de esos 10 grados va a ser 51. 20.
Pero es muy agradable porque nosotros no es necesario crear 10 variables.
Accedemos a la matriz usando el subíndice, y podemos asignar valores a
la matriz usando el subíndice.
Esto en realidad está asignando cuando hacemos el scanf.
Estamos asignando datos a eso a ese subíndice.
Ahora si tuviéramos que cambiar esto y digamos que comenzamos en 1 y en
lugar de ir a contar qué es 10, en realidad lo igualamos.
Así que en realidad vamos no cambie eso a 1.
Digamos que vamos a empezar en 0, pero ahora vamos a
ir hasta el índice 10.
Recuerde, el índice 10 está fuera de los límites. porque el tamaño de la
matriz es 10, pero el valor del índice es 0 basado de modo que el índice máximo sea 9.
Y de nuevo, vamos a poder para compilar esto
porque los compiladores no detectan errores fuera de límites, el problema es cuando lo ejecutamos.
Ahora, cuando ejecutamos el programa, vamos a tener un gran problema si
intentamos entrar en el 11º grado.
Así que vamos a estar bien.
Cuando ingresamos 10 grados en, el problema va a suceder cuando lleguemos
a las 11.
Ahora tenemos 11 y estamos voy a intentar almacenar datos.
No pasó nada malo, pero nuestro el promedio no va a ser correcto.
Y es un comportamiento muy impredecible cuando tiene un error fuera de límites.
Entonces quieres asegurarte de que tienes el recuento de lecciones de la
vista y quieres asegurarte de que cuando accedes a la información, no sales de
los límites también.
Y estos son los conceptos básicos de la matriz, declarando
la matriz, especificando el tamaño solo el tipo de datos y luego el tamaño y los corchetes, acceder a
la matriz o almacenar datos en el matriz, asignando valores, usando
el subíndice I dentro de los índices.
E incluso podríamos imprimir el índices que utilizan subíndices también.
Las matrices van a ser utilizado bastante.
Vamos a tener muchos ejemplos con matrices porque simplifica las cosas.
Solo recuerde que las matrices son de tamaño fijo.
No puedes cambiar el tamaño de los grados.
Siempre va a ser 10 mientras ejecuta el programa.
Entonces, si asigna cualquier dato arriba eso, no se va a expandir.
Y también recuerda que las notas tienen que ser del mismo tipo de datos.
No puedo almacenar cadenas o palabras en grado, solo puedo almacenar ints.
No puedo almacenar flotadores en allí, solo almacena ints.
Gracias.