Your SlideShare is downloading. ×
  • Like
Arreglos
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply
Published

 

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

Views

Total Views
516
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
6
Comments
0
Likes
1

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 en programación con Lenguaje C++Definición.Es un grupo de ubicaciones de memoria del mismo tipo que tienen el mismonombre.Manipulación.Todo arreglo se declara y se designa un nombre. Se debe declarar el númeroexacto de ubicaciones de memoria a ser reservados.Mediante el uso de subíndice o número de índice se puede acceder a cadaelemento o ubicación de memoria individual del arreglo. Los subíndicesempiezan por lo general en cero(0).Declaración.int arr[6];Le dice al compilador que separe 6 ubicaciones de memoria(0 a 5) para eltipo de dato entero. Cada subindice se especifica por medio de corchetes [ ] enlugar de paréntesis como usan otros lenguajes.Declaración e inicializaciónint arr [6] = { 5, 10, 15, 20, 25,30 };arr[0] = 5arr[1] = 10arr[5] = 30La instrucciónint arr [6] = { 0 }; Inicializa todos los elementos del arreglo en cero al mismotiempo.Arreglos Multidimensionales.Obedecen a las reglas de los arreglos unidimensionales. Se especifíca el # deubicaciones de memoria. Todo arreglo tiene un nombre y con su numero defila y columna se puede acceder a cada elemento.Declaraciónint tabla [3][3];La mayor parte del procesamiento de estos arreglos se logra mediante el usode ciclos anidados, uno para las filas y otro para las columnas.Declaración e inicializaciónint tabla [3][3]= { { 1,1,1 }, { 2,2,2 }, { 3,3,3 } };
  • 2. Manejo de arreglos. Unidimensional.Determinar el mayor en un arreglo de enteros. En una funcion.int mayor(int tab[],int n){ int i, nr;nr=tab[];for(i=0;i<n;i++)if(tab[i] > nr)nr=tab[i];return 0;}Manejo de arreglos. bidimensional.Llenar una matriz#include <stdio.h>Int mat[3][3];Void main(){ int i, j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf(“%d”, &mat[i][j];}LOS ARREGLOSDefinición: <tipo> <variable> [ N ]Declara un arreglo de nombre <variable> con N elementos de tipo <tipo>, (N es unaconstante). Ejemplo: int a[10];Referencia o direccionamiento:Se hace referencia al (x + 1) elemento del arreglo definido anterioremente mediante laexpresión: a [x]donde x puede ser: 1. una variable entera; 2. el resultado de una expresión aritmética.Notas sobre los arreglos1. el valor de x debe de estar entre 0 y NEjemplo:
  • 3. main(){ int t[100]; int i; char c; c=3; i=50; t[c-0]=12; mete 12 en t[3], (4o. elemento de t) t[i*2-1]=t[i]; mete 15 en t[50], (51 elemento de t) t[102]=-1; Después ejecución dos instrucciones: t[-1]=102; error dirección, o aplastamiento de variablesvecinas}Ejemplo uso arreglos/* Ordenamiento de un arreglo de enteros */#include <stdio.h> main(){ int ti[10]; int i,j,tempo;/* Capturando los valores del arreglo */ for (i=0; i!10; i=i+1){ printf(De valor de t[%d]: , i+1); scanf(%d,&ti[i]);}/* Ordenando el arreglo */ for (i=0; i!10; i=i+1) for (j=0; j!10; j=j+1) if ( ti[i] ! ti[j] ) { tempo = ti[i]; ti[i]=t[j]; ti[j]=tempo; }/* Desplegando el contenido del archivo */ for(i=0; i!10; i=i+1) printf(%3d, ti[i]); printf(nn);} Paso de arreglos como parámetros • Todos los arreglos, independientemente de su declaración, se pasan por dirección. • Dependiendo de la dimensión del arreglo sera necesario, o no, precisar el tamaño del arreglo, (a lo más una dimensión puede no estar especificada).
  • 4. • Existen dos formas de pasar un arreglo como parámetro, y de declarar un parámetro como arreglo. • Considerando la siguiente declaración de variables: int tab[10]; float prom; En la función se pueden precisar los arreglos como parámetros de alguna de las dossiguientes formas: 1. int funcion(float p; int tabla[]); 2. int funcion(float p; int tabla[10]);independientemente de la declaración los arreglos se pueden pasar de algunas de las dossiguientes formas: (a) x = funcion(prom; tabla); (b) x = funcion(prom; &tabla[0]);Ejemplo paso arreglos como parámetros/* Cálculo de la variancia de 10 números#include <stdio.h> main(){ float t[10], t2[10]; float m1, m2; int i; for (i=0; i!10; i=i+1) { printf(De valor de t[%d]:,i); scanf(%f,&t[i]); } m1=promedio(t); potencia(t,t2); m2=promedio(&t2[0]); printf(varianza:%dnn,m2-(m1*m1));}/* Definición función promedio(t) */float promedio(t) float t[ ];{ int i; float s; for (s=0, i=0; i!10; i=i+1) s=s+t[i]; return(s/10);}/* Función que eleva los elementos del arreglo al cuadrado */
  • 5. potencia(t,res) float t[10],res[];{ int i; for (i=0; i!10; i=i+1) res[i]=t[i]*t[i];}Ejemplo uso arreglos de dos dimensiones/* Suma de matrices */ main(){ float a[10][10], b[10][10], c[10][10]; captura(a); captura(b); suma(a,b,c); imprime(c);}/* Función que captura los valores de una matriz */captura(a) float a[10][10];{ int i,j; for (i=0; i<10; i++) for (j=0; j<10; j++) { printf(Valor a[%d,%d]:i,j); scanf(%f,&a[i][j]); }}/* Sumando dos matrices */suma(a,b,c); float a[10][10], b[10][10], c[ ][10];{ int i,j; for (i=0; i!10; i++) for (j=0; j!10; j++) c= a[i][j] + b[i][j];}/* Desplegando el contenido de una matriz */despliega(a) float a[ ][10];{ int i,j; for (i=0; i!10; i++) { for (j=0; j!10; j++)
  • 6. printf( %.2f ,a[i][j]); printf(nn); }}Nota: para abundar puede visitar http://webdia.cem.itesm.mx/ac/rogomez/Tutorial-LengC/principal.html