Está en la página 1de 26

Arreglos

 Un computador no sirve para sacar


promedios de 3 notas.
 ¡Pero si de 10.000!
 ¿Definir 10.000 variables?
 ¿Definir funciones con 10.000 parámetros?
Arreglos

 void main()
{
int nota1, nota2, nota3,……nota10000;
}

 double promedio(int n1, int n2, …,n10000);


Arreglos

 ¿Como decirle al computador que


nota1..nota10000 son todas notas?
 ¿Cómo acceder a todas con un ciclo
for?
 Se hace necesario especificar
“grupos” de variables
 Todas del mismo tipo.
 Todas con un nombre parecido.
 Definidas con una secuencia especifica.
Arreglos

 Un arreglo es:
 Una variable que define un “grupo” de
variables.
 Define un nombre
 Define un tipo
 Define el tamaño del “grupo”.
 Lasvariables dentro del “grupo” estan
ordenadas
Arreglos
VARIABLES ARREGLO

1005AA Nota 1 1005AA Nota 1


Nota 2
Nota 3
2FFF88 Nota 10.000 .
.
.

1005AA+10000 Nota A
10.000
FF00B2 Nota 2

FF0F9D Nota 3
Arreglos

Nota 1
2
3 10.000
.
.
.

10.000
Definición de arreglos
 Un arreglo es un conjunto de elementos del mismo tipo
que poseen un nombre común concatenado a un índice.
 El índice permite acceder directamente a un elemento
particular de un arreglo
 Se definen como variables comunes y corrientes
 Pueden ser locales, globales y parámetros.
 Tienen un nombre que debe seguir la restricciones de toda
variable.
 El nombre debe ser único dentro del contexto
 Tienen un tipo específico y un tamaño determinado
 Los arreglos en lenguaje C se almacenan en celdas de
memoria contiguas.
 Pueden tener 1 o más dimensiones.
Definición de arreglos

<tipo> <nombre> [<tamaño>];

Cualquier Cualquier Corchetes Constante que


tipo válido nombre válido obligatorios especifica el
tamaño
Arreglos unidimensionales

 Definición:
 Es un arreglo de una dimensión (1 índice).
A[i]
 La forma general de declaración:
tipo nombre_variable[tamaño];
 La cantidad de memoria en bytes se puede obtener con la función:

 El 0 es el índice del primer elemento de un arreglo.

numero_bytes = sizeof(tipo)*tamaño;

1
Arreglos Unidimensionales
Para acceder a los elementos individuales de un arreglo se utiliza un subíndice
que debe ser un número entero.

int a[8]={56,56,91,0,-3224,100,62,12}
Arreglos Unidimensionales

Ejemplo 1:
Realizar un programa en el que se ingresen 10
enteros, y luego se sumen sus elementos. Mostrar el
resultado.

1
Ejemplo

#include <stdio.h>
int main(){
int x[10];
int i,suma=0;
for (i=0;i<10;i++){
printf ("Ingresar entero: ");
scanf("%d",&x[i]);
suma+=x[i];
}
printf(" El resultado de la suma es =
%d\n",suma);
return 0;
}

1
Arreglos Unidimensionales

 Ejercicios:
- Crear un programa al cual se le ingrese un conjunto de caracteres del
alfabeto, desplegar su contenido,determinar cuantos de ellos son vocals,
cuantos consonants y cuantos simbolos especiales.
- Crear un programa que calcule el promedio en un arreglo de tipo float de
tamaño 10 el usuario ingresará los datos .
- Crear un programa que calcule ley de ohm, el usuario debera ingresar los
datos de corriente y Resistencia, calcular voltaje, realice sumatoria de
voltajes obtenidos y promedio.

1
Paso de Arreglos unidimensionales
a funciones
 Forma 1: Arreglo delimitado

#include <stdio.h>
func1(int x[100]){
.........
}
Se debe especificar el tamaño
int main(){
int a[100];
del arreglo
…..
func1(a);
……... Se pasa la dirección del primer
return 0; elemento del arreglo a la función
}

1
Paso de Arreglos unidimensionales
a funciones
 Forma 2: Arreglo no delimitado

#include <stdio.h>
func1(int x[]){
……...
}
int main(){ No se especifica el tamaño del
int a[10]; arreglo
…..
func1(a);
……...
return 0;
}

1
Paso de Arreglos unidimensionales
a funciones
 Nota:
 Al llamar una función pasándole un arreglo como parámetro, como se le
entrega la dirección del primer elemento, entonces si los valores del
arreglo son modificados dentro de la función, también son modificados en
la función que llama.

1
Arreglos Bidimensionales

Definición:
 Es un arreglo de dos dimensiones (2 índices).
A[i][j]
Declaración:

tipo nombre_variable[tamaño_1][tamaño_2];

1
Arreglos Bidimensionales
• Una matriz bidimensional tiene la forma
siguiente:
a11 a12 ............ a1n
a21 a22 ............ a2n
.....................

am1 am2 ............ amn


• Para acceder al dato aij se hace de la
manera siguiente:
c=a[i][j];

1
Arreglos Bidimensional

 Definición:
 Es un arreglo con k-dimensiones, el cual está indexado por medio de k
índices.
A[m]….[n]

 Declaración:
k

tipo nombre_variable[tamaño_1]...[tamaño_k];

1
ArreglosArreglos Bidimensional
multidimensionales

A[ fila][columna]

Fila del arreglo Columna del arreglo

B[fila][columna][prof]
ArreglosArreglos Bidimensional
multidimensionales

B[0][0] B[0][1] B[0][2]

A
B

A[0] A[1] A[2]

B[2][0] B[2][1] B[2][2]


EjemploArreglos
1 Bidimensional

#include <stdio.h>
#define N 2

int main(){

int B[N][N];
int i, j;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
B[i][j]=0;
return 1;
}
EjemploArreglos
2 Bidimensional

#include <stdio.h>

#define N 5

int main(){

int maiz[N][N] ={1,2,3,4};


for(i=0;i<N;i++){
for(j=0;j<N;j++)
printf("%10d ",maiz[i][j]);
printf("\n");
}

return 1;
}
EjemploArreglos
3 Bidimensional

#include <stdio.h>

#define N 2

int main(){

int maiz[N][N];
int i, j;
int cantidad=1;
for(i=0;i<N;i++)
for(j=0;j<N;j++){
maiz[i][j]=cantidad;
cantidad*=2;
}

return 1;
}
Arreglos Bidimensionales

Ejercicios de matrices:
- Hacer un programa que muestre la diagonal principal de una matriz mxm.
- Hacer un programa que multiplique un escalar k por la matriz.
- Hacer un programa que sume dos matrices de igual dimension mxm.