Documentos de Académico
Documentos de Profesional
Documentos de Cultura
22 23 25 24 26 27 26
26/03/2023 Programación I 1
Arreglos: Introducción
En el caso que se deba trabajar con un conjunto de
elementos, sería bastante desprolijo la creación de varias
variables. Para esto se utiliza la herramienta arreglos.
22 23 25 24 26 27 26
2
Arreglos: Definición
En C una variable tipo arreglo se define de la siguiente
manera:
Ejemplo:
• int legajos [10]; /* arreglo de 10 enteros */
• char alfabeto [26]; /* arreglo de 26 caracteres */
• double temperaturas [5]; /* arreglo de 5 doubles */
3
Arreglos: Inicialización
Un arreglo, igual que cualquier variable, se puede definir e
inicializar simultáneamente, colocando en una lista los valores
iniciales entre llaves «{}» separados por coma «,».
tipo nombre_arreglo [N] = { VAL1, VAL2, … ,VALN };
Ejemplo:
• int legajos [3] = {40033, 40120, 40055};
• double temp [] = {20.3, 25.2, 26.0, 24.8, 22.3};
• char msg1[] = { 'H', 'O', 'L', 'A' };
• char msg2[] = "HOLA";
Forma simplificada,
sólo sirve para strings.
4
Arreglos: Acceso
Para acceder a los elementos de un arreglo se utiliza un
índice.
En lenguaje C, el índice del primer elemento es el 0.
22 23 25 24 26 27 26
0 1 2 3 4 5 6 ¡No confundir
elemento con
índice índice!
5
Arreglos: Acceso
Ejercicio 1: Predecir cómo quedan las variables al finalizar el programa.
int main(void)
{
int arr[5];
int ind = 1;
arr[0] = 5;
arr[ind+1] = -6;
arr[4] = 7;
arr[ind++] = 1;
arr[++ind] = -3;
++arr[2];
return 0;
}
6
Arreglos: Acceso
En assembler el acceso a los elementos del arreglo se
realizaba manualmente, considerando la dirección inicial de
arreglo, el tamaño de los elementos y el elemento en
cuestión.
7
Arreglos: Precauciones
A fin de hacer un código eficiente, el lenguaje no nos protege
en ciertos casos, por lo que se debe ser precavido.
8
Arreglos: Funciones
¿Cómo podemos hacer llegar el contenido de un arreglo a una
función para que lo procese?
10
Arreglos: Funciones
El uso de dicha función sería:
#include <stdio.h>
int main(void)
¿Porqué se pasa la cantidad de elementos?
{
¿No se puede calcular dentro de la función?
int n;
double prom;
double temperaturas[]={10.5,15.3,12,16.3,20,16,17};
n = sizeof(temperaturas) / sizeof(temperaturas[0]);
prom = prom_temp(temperaturas, n);
printf("El promedio es: %f\n", prom);
return(0);
}
11
Matrices: Introducción
En varias situaciones es conveniente trabajar con matrices,
tanto bidimensionales (2D) como multidimensionales (3D,
4D, etc.).
12
Matrices: Definición
La definición de una matriz (o arreglo bidimensional) es
entonces:
Ejemplo:
• int mat [4][10]; /* matriz de enteros de
4 filas y 10 columnas */
13
Matrices: Inicialización
La inicialización se realiza de manera similar a la de un
arreglo. Si una matriz es un arreglo de arreglos, y estos
últimos se inicializan con una lista, la matriz se inicializará
¡como una lista de listas!
Ejemplo:
• int mat [2][4] = { {1, 2, 3, 4}, {11, 12, 13, 14} };
Ejemplo:
• char texto [ ][9] = { "hola", "mundo" };
15
Matrices: Acceso
Para acceder a los elementos de una matriz, basta con
pensarla como un arreglo de arreglos.
Ejemplo:
• value = mat[1][2];
• mat[0][2] = 7;
¿Qué realiza cada una de estas expresiones?
• mat[i+1][j-1]++;
Interpretación gráfica:
mat [0] mat [1][2]
mat [1]
Ejemplo:
Función que calcula la sumatoria de los elementos de una
matriz de rows filas por 10 columnas.
Su prototipo es: int sum(int matrix[][10], int row);
Se invoca: rta = sum(mat, 5);
17
Ejercicios
• Escribir una función que busque el mayor elemento del
arreglo de enteros y lo devuelva. Luego escribir un
programa que lo pruebe con distintos vectores.