2. Operaciones especiales
• Suma implicita de elementos del arreglo:
– Arr[i]+=5 -- significa que al elemento i se le suma
el valor de 5 y se guarda en ese elemento
– Al igual que la suma se puede realizar la división u
otra operación
• Incremento de elementos:
– ++arreglo[i] o arreglo[i]++ -- incrementa el
elemento i en 1
3. Operaciones con arreglos
• Recorrido y operaciones con elementos de
arreglos
– While (i<5) Arr[i++]+=2; – En un arreglo de 5
elementos, sumarle 2 a cada elemento
• Tamibien se puede utilizar la variante de
incremento en 1
– While (i<5) Arr[i++]++; o al revés ++Arr[i++]; Se
reducen líneas de código en forma significativa
4. Arreglos multidimensiones
• Bidimensionales o multidimensionales
– Utilización de 2 ó más índices al momento de las
declaraciones
– Utilización de 2 ó más for uno para el ciclo de
cada indice
• Operaciones tradicionales similares a los
unidimensionales
5. Arreglos multidimensionales
• La carga es similar que con las
unidimensionales
• Otra forma de carga es:
– Int arre[3][3]={{1,2,3},
{4,5,6},
{7,8,9}};
• Los elementos se referencia según su posición
de fila y columna
6. Funciones y Arreglos
• Prototipo de funciones con referencia a
arreglos unidimensionales
– Tipo1 ndefuncion (tipo2 [], tipo3 ); Tipo1 es el
tipo de retorno de funciones, tipo2 tipo de datos
del arreglo, tipo3 es el tipo de dato del tamaño del
arreglo. Estos dos datos deben ser enviados
dentro de las funciones
7. Funciones y Arreglos
• Definición de funciones con arreglos
unidimensionales
– Tipo1 ndefuncion (tipo2 nom[], tipo3 var)
• tipo1 es el tipo de retorno de funciones, tipo2 tipo de
datos del arreglo, nom es el nombre del arreglo, tipo3
es el tipo de dato de la variable var cantidad de
elementos. Estos tres datos son recibido en las
funciones.
8. Funciones y Arreglos
• Llamada de funciones con referencia a
arreglos unidimensionales
– ndefuncion (nom, var);
– Donde nom es el nombre del arreglo y var la
cantidad de elementos del arreglo.
– La facilidad de esta llamada es que sólo requiere
enviar el nombre del arreglo unidimensional.
9. Conceptualización de los Arreglos
• Todos los arreglos son declarados a nivel de
memoria, dentro del computador, por ello una
vez declarado puede ser referenciado a nivel
de memoria desde el programa y desde
cualquiera función
• Cómo sucede esto?
10. Arreglos en memoria
• Al declarar un arreglo se crea una referencia en
la memoria, al primer elemento del arreglo.
• Es por eso que basta con utilizar el nombre del
arreglo para tener acceso a todos los
elementos del mismo. Aquí el arreglo
int ARR[5];
2 5 10 9 3
0 1 2 3 4
11. La función FUN con el arreglo ARR
• Int FUN (int [], int);
• Primera Línea de la definición:
– Int FUN (int ARR[], int n)
• La llamada de FUN:
– Sale= FUN(ARR, n);
12. Funciones y Arreglos
• Prototipo de funciones con referencia a
arreglos multidimensionales
– Tipo1 ndefuncion (tipo2 [][tam], tipo3, tipo 4 );
Tipo1 es el tipo de retorno de funciones, tipo2
tipo de datos del arreglo, tipo3 es el tipo de dato
de la cantidad de filas, tipo4 es el tipo de dato de
la cantidad de columnas. Estos tres datos deben
ser enviados dentro de las funciones.
– tam debe tener un valor definido a la hora del
prototipo
13. Funciones y Arreglos
• Definición de funciones con arreglos
multidimensionales
– Tipo1 ndefuncion (tipo2 nom [][tam], tipo3 var1,
tipo 4 var2)
• tipo1 es el tipo de retorno de funciones, tipo2 tipo de
datos del arreglo, nom es el nombre del arreglo, tipo3
es la cantidad de filas identificada en la variable var1 y
la cantidad de columnas identificada en la variable
var2. Estos tres datos son recibido en las funciones.
• tam es un valor necesario y que debe ser especificado
en la función
14. Funciones y Arreglos
• Llamada de funciones con referencia a
arreglos multidimensionales
– ndefuncion (nom, var1, var2);
– Donde nom es el nombre del arreglo, var1 y var2
la cantidad de filas del arreglo y cantidad de
columnas, respectivamente.
– La facilidad de esta llamada es que sólo requiere
enviar el nombre del arreglo multidimensional y
las cantidades de filas y columnas.
15. Conceptualización de los Arreglos
• Como se dijo en la sección de los arreglos
unidimensionales, estos son declarados a
nivel de memoria, dentro del computador, por
ello una vez declarado puede ser referenciado
a nivel de memoria desde el programa y desde
cualquiera función
• Por ejemplo:
16. Arreglos en memoria
• Al declarar un arreglo se crea una referencia en
la memoria, al primer elemento del arreglo, es
decir el elemento [0][0].
• Aquí el arreglo bidimensional como por
ejemplo: int TAB[3][3]; 0 1 2
Primer
0 1 6 3
elemento es el 1
ARR[0][0] 5 0 2
2
2 5 10
17. La función FUN1 con el arreglo TAB
• Int FUN (int [][3], int, int); //prototipo
• Primera Línea de la definición:
– Int FUN (int TAB[][3], int n, int s) //n número de
filas, s número de columnas
• La llamada de FUN:
– Sale= FUN(TAB, n, s);
18. Suma y Resta de vectores
//Inicio del programa comentarios y prototipos
case 4:
{
printf(“Fin del proceso”); break;
Int A[6]={2,4,5,1,9,3}, B[6]={0,2,3,1,4,8}, i, C[6], opc=1,
default:
while(opc!=4){
Switch(Opc=menu()){ printf(“Opción inválida”);
case 1: }// fin del case
for(i=0;i<6;i++) }//fin del while
C[i]=A[i]+B[i]; }// fin del programa
break;
case 2: Int menu(){
for(i=0;i<6;i++) Int o;
C[i]=A[i]-B[i]; printf(“MENUn”); printf(“1. Suma de elementosn”);
break; printf(“2. Diferencia de Elementosn”);
case 3: printf(“3. Impresión de Elementos de los
printf(“Los elementos del Vector A: ”) vectoresn”);
for(i=0;i<6;i++) printf(“4. Salirn”);
printf( “%d|”,A[i]); printf(“Seleccione su opción ”);
printf(“Los elementos del Vector B: ”) scanf(“%d”,&o);
for(i=0;i<6;i++)
Return o;
printf( “%d|”,B[i]);
}// fin de la función de impresión de menú
printf(“Los elementos del Vector C: ”)
for(i=0;i<6;i++)
printf( “%d|”,C[i]);
break;
19. Suma y Resta de vectores
//Inicio del programa comentarios y prototipos // Funciones
Void suma(int[], int[], int[], int); Int menu(){
Void resta(int[], int[], int[], int); Int o;
Void imprime(int[], int[], int[], int); printf(“MENUn”); printf(“1. Suma de elementosn”);
printf(“2. Diferencia de Elementosn”); printf(“3. Impresión
Int menu(void); de Elementos de los vectoresn”); printf(“4. Salirn”);
Void main(void) printf(“Seleccione su opción ”); scanf(“%d”,&o);
{ return o;
Int A[6]={2,4,5,1,9,3}, B[6]={0,2,3,1,4,8}, i, C[6], }// fin de la función de impresión de menú
opc=1,n=6; Void suma(A[], int B[], int C[], int p){
while(opc!=4){ for(i=0;i<p;i++)
Switch(Opc=menu()){ C[i]=A[i]+B[i];}
case 1: suma(A, B, C, n); break; Void resta suma(A[], int B[], int C[], int p){
for(i=0;i<p;i++)
case 2: resta(A, B, C, n); break;
C[i]=A[i]-B[i];}
case 3: imprime(A, B, C, n); break;
Void imprime(A[], int B[], int C[], int p){
case 4:
printf(“Los elementos del Vector A: ”) ;
printf(“Fin del proceso”); break; for(i=0;i<p;i++)
default: printf( “%d|”,A[i]);
printf(“Opción inválida”); printf(“Los elementos del Vector B: ”)
}// fin del case for(i=0;i<p;i++)
}//fin del while printf( “%d|”,B[i]);
}// fin del programa printf(“Los elementos del Vector C: ”)
for(i=0;i<p;i++)
printf( “%d|”,C[i]); }