Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
1. TecNM - ITS de Guasave
Ingeniería Mecatrónica
Programación Básica
Unidad 4: Arreglos, estructuras y uniones
guasave.tecnm.mx
2. Temario de la unidad
PROGRAMACIÓN BÁSICA
Competencia de la unidad: Construye programas que utilicen arreglos
unidimensionales y multidimensionales para solucionar problemas.
3. Arreglos
• En clase ya conocimos algunos tipos básicos como por ejemplo los
tipos char, int y float. El lenguaje C++ permite, además, construir
estructuras más complejas a partir de estos tipos básicos. Una de
las construcciones que podemos definir son los arreglos.
• Definición de Arreglo: Colección ordenada de elementos de un
mismo tipo. Ordenada significa que cada elemento tiene una
ubicación determinada dentro del arreglo y debemos conocerla
para poder accederlo.
PROGRAMACIÓN BÁSICA
6. Asignación de un arreglo:
nombre_variable[índice] = valor o expresión del tipo requerido;
Ejemplos:
calificaciones[9] = (cal1 + cal2 + cal3) / 3;
calificaciones[7] = 95;
• El índice debe ser una expresión del tipo entero en el rango [0, longitud-1].
• Cabe destacar que C++ no revisa que el valor de la expresión sea menor a
longitud, simplemente asigna el valor a esa posición de memoria como si
formara parte del arreglo.
PROGRAMACIÓN BÁSICA
7. Acceso al valor contenido en un arreglo:
• nombre_variable[índice] es valor del tipo requerido que puede ser
asignado a una variable, o pasado como parámetro, imprimirlo, etc.
• Aquí también vale la aclaración de que el índice debe estar dentro
del rango de definición del arreglo, C++ no revisará que esto sea
cierto y devolverá lo contenido en la posición de memoria
correspondiente a un arreglo de mayor longitud, el dato obtenido
de esta manera es basura.
PROGRAMACIÓN BÁSICA
8. Ejercicio:
• Hacer un programa que capture la 20 números en un arreglo de
igual tamaño y determine la suma total de los mismos y su media
aritmética.
PROGRAMACIÓN BÁSICA
9. Ejercicio:
• Capturar 3 arreglos de 5 posiciones. Después multiplicar el
primero por el segundo y al resultado sumarle el tercero, guardar
el resultado final en un cuarto arreglo, el cual debe ser
desplegado en pantalla.
PROGRAMACIÓN BÁSICA
10. Ejercicio:
• Hacer un programa que capture un arreglo de 20 posiciones, una
vez lleno pedir por teclado un número y buscar si se encuentra
dentro del arreglo indicando la posición del mismo.
PROGRAMACIÓN BÁSICA
11. Ejercicio:
• Hacer un programa que capture un arreglo de 20 posiciones, y a
la vez llene un segundo arreglo con el valor en la posición
contraria, es decir, lo capturado en la posición cero se pasa a la
posición 19 del segundo arreglo, etc.
PROGRAMACIÓN BÁSICA
12. Matrices o arreglos multidimencionales
• Una matriz es una estructura de datos, o más técnicamente, un espacio de
memoria que permite almacenar una colección de elementos, todos del
mismo tipo.
• La diferencia con los arreglos está en que, en las matrices, los elementos
no están organizados linealmente sino que su organización es
bidimensional, es decir, en filas y columnas.
• Conviene imaginar una matriz como una organización de celdas de
memoria, o casillas, en cada una de las cuales se puede guardar un
elemento de la colección.
PROGRAMACIÓN BÁSICA
13. Además, es usual dibujarla como lo ilustra la figura siguiente:
• Esta figura representa un matriz de cuatro filas (numeradas verticalmente de 0 a
3) y seis columnas (numeradas horizontalmente de 0 a 5).
• En cada una de las 24 celdas o casillas se puede guardar un dato.
• La dimensión o tamaño de una matriz es el número filas por el número de
columnas. Debe ser claro entonces que la figura anterior es la gráfica de una
matriz de dimensión 4x6.
PROGRAMACIÓN BÁSICA
14. • La numeración de las filas y las columnas determina que cada una de las
casillas de una matriz tiene asociados dos números índice que la
identifican de manera única.
• A estos números se les llama índice de fila e índice de columna,
respectivamente.
• En el seudocódigo, y también en C y C++, las filas y las columnas se
numeran desde 0.
PROGRAMACIÓN BÁSICA
15. Declaración de una matriz en C++:
• La sintaxis es casi la misma excepto que hemos añadido un par de
corchetes "[ ]" más esta vez y al interior de éstos debemos poner el
número de filas y columnas máximas de la matriz, respectivamente.
Ejemplo:
int myMatriz1[10][5];
float myMatriz2[5][10];
string myMatriz3[15][15];
PROGRAMACIÓN BÁSICA
16. ¿Cómo inicializar una matriz en C++?
• En cuanto tenemos declarado una matriz, es posible asignarle valores a
cada una de sus casillas, sus valores deben coincidir con el tipo de dato que
le asignamos a dicha matriz.
Ejemplo:
int myMatriz[2][2] = {{1,2}, {3,4}};
• El valor inicial corresponde a la casilla 0,0 (fila cero, columna cero) y tiene
el valor de 1, en la fila cero columna uno tenemos el valor de 2, en la fila
uno columna cero el valor de 3 y finalmente en la fila uno columna uno el
valor de 4
PROGRAMACIÓN BÁSICA
17. Obtener el valor de una casilla específica
• Para acceder al valor de una casilla nuevamente haremos uso de los
corchetes, pero esta vez no para declarar tamaños (porque eso ya lo
hicimos) sino para indicar posiciones (fila y columna).
Ejemplo:
int myMatriz1[2][2] = {{1,2},{1,1}}; //Matriz con 4 elementos
int num = myMatriz[0][0]; // Obtiene el valor de la primer casilla
cout << num << endl; // despliega el valor obtenido (que es 1)
PROGRAMACIÓN BÁSICA
18. Recorrer una matriz en C++
• Para obtener todos los datos que se encuentran al interior de una matriz,
debemos acceder a cada posición, esto se hace fácilmente con dos ciclos
for (anidados).
• La lógica de este procedimiento es la siguiente:
El primer ciclo for comenzará desde cero e irá hasta el número de filas-
1, la variable de control que generalmente llamamos “i”;
El segundo ciclo for irá de cero al número de columnas-1 y
normalmente se usa la variable llamada “j”;
PROGRAMACIÓN BÁSICA
19. Ejercicio:
• Escribir un programa que lea una matriz de 3 filas y 3 columnas de valores
enteros. A continuación, el programa debe pedir el número de una fila. El
programa deberá devolver el valor máximo de esa fila con su ubicación (x, y).
PROGRAMACIÓN BÁSICA
20. Ejercicio:
• Escribir un programa que lea una matriz de números enteros y que
devuelva la suma de los elementos positivos de la matriz y la suma de los
elementos negativos.
PROGRAMACIÓN BÁSICA
21. Ejercicio:
• Escribir un programa que lea un matriz de enteros de 2 filas y 4 columnas y
muestre por pantalla la traspuesta a dicha matriz. Ejemplo:
PROGRAMACIÓN BÁSICA
22. Ejercicio:
• Se dice que una matriz tiene un punto de silla si alguna posición de la
matriz es el menor valor de su fila y a la vez el mayor de su columna.
Escribir un programa que tenga como entrada una matriz de números
enteros y calcule la posición de un punto de silla (si es que existe).
FUNDAMENTOS DE PROGRAMACIÓN