Uploaded on

Arreglos en programación C

Arreglos en programación C

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
377
On Slideshare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
20
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Arreglos
  • 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 // FuncionesVoid 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ónInt 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]); }