arreglo s

Upload: jeshualop

Post on 02-Nov-2015

4 views

Category:

Documents


0 download

DESCRIPTION

Arreglo

TRANSCRIPT

  • ArreglosComputcin

  • DefinicinUn arreglo es una coleccin de elementos del mismo tipo que se reconocen por un solo identificador.Para acceder a los elementos individuales de un arreglo se utiliza un subndice que debe ser un nmero entero.5656910-32241006212a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]Arreglo con nombre aNmero de la posicin de cada elemento

  • Ejemploint main(){ int n[ 10 ]; // n es un arreglo de 10 enteros // inicializa los elementos del arreglo n en 0 for ( int i = 0; i < 10; i++ ) //establece el elemento de la ubicacin i en 0 n[ i ] = 0; cout
  • Inicializacin de un arreglo#include using std::cout;using std::endl;#include using std::setw;int main(){//utiliza una lista de inicializacin para //inicializar el arreglo n int n[10]={32,27,64,18,95,14,90,70,60,37}; cout
  • Otra inicializacinint main(){ // la variable constante se puede utilizar para //especificar el tamao del arreglo const int tamanoArreglo = 10; int s[tamanoArreglo];//el arreglo s tiene 10 elementos for (int i=0;i
  • Suma de un arregloint main(){ const int tamanoArreglo = 10; int a[tamanoArreglo] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int total = 0; // suma el contenido del arreglo a for ( int i = 0; i < tamanoArreglo; i++ ) total += a[ i ]; cout
  • Histogramaint main(){ const int tamanoArreglo = 10; int n[tamanoArreglo] = {19,3,15,7,11,9,13,5,17,1}; cout
  • La criba de Eratstenesint main(){ int N = 10000,i,j; int primo[N]; for(i = 0; i
  • TareaHaga un programa que calcule la desviacin estandar de un arreglo de valores.

  • Paso de arreglos a funcionesPara pasar un arreglo a una funcin debemos conocer su tamao para poder saber cuantos elementos se van a procesar.Para esto declare la funcin con un parmetro extra para pasar el nmero de elementos a la funcin

  • Ejemplo#include #include

    double promedio(double a[], int tamanio){ double suma = 0; for(int i=0; i

  • Modificacin de elementos mediante funcionesEn C los arreglos siempre se pasan por referencia de tal manera que siempre es posible modificar los elementos dentro de una funcin.Ejemplo, inicia un arreglo con valores aleatorios entre 0 y 99.void inicia(double a[], int tamanio){ for(int i=0; i
  • OrdenacinLa operacin de ordenacin es de las ms comunes en computacin.#include #include

    void Burbuja(int a[],int tam){ for(int i = 0; i< tam - 1 ; i++) for(int j = i; j< tam;j++) if(a[i]>a[j]){ int temp = a[i]; a[i]=a[j]; a[j]=temp; }}int main(){ int b[20] = {1,2,3,2,4,3, 5,6,3,7,8,9, 4,5,3,5,3,4,5,6}; Burbuja(b,20); for(int i =0; i

  • Bsquedaint BusquedaLineal(int a[],int b,int tam){ for(int i = 0; i< tam; i++) if(a[i]==b) return n; return -1;}Otra operacin importante es la bsqueda de el valor de un elemento dentro de un arreglo.

  • Arreglos de dos dimensionesLos arreglos de dos dimensiones se declaran de acuerdo al esquematipo variable[renglones][columnas];Ejemploint a [5][4];a[0][0] a[0][1] a[0][2] a[0][3]a[1][0] a[1][1] a[1][2] a[1][3]a[2][0] a[2][1] a[2][2] a[2][3]a[3][0] a[3][1] a[3][2] a[3][3]a[4][0] a[4][1] a[4][2] a[4][3]

  • inicializacinint a[5][4] = {{2,3,4,2},{2,0,6,1},{3,5,5,0},{2,2,1,1},{3,2,5,6}}; 2 3 4 2 2 0 6 1 3 5 5 0 2 2 1 1 3 2 5 6

  • inicializacin (cont.)int a[5][4] = {{2,3},{1},{3,5,5,0},{2},{3}}; 2 3 0 0 1 0 0 0 3 5 5 0 2 0 0 0 3 0 0 0

  • ejemplovoid despliegaArreglo( int a[][ 3 ] ){ for ( int i = 0; i < 2; i++ ) {// for para cada fila for ( int j = 0; j < 3; j++ )//despliega los valores de columnas cout
  • Operaciones con matricesSe puede utilizar la tcnica vista anteriormente para matrices de tamao fijo.Si las matrices que se van a manipular son de 3x3 la funcin para sumar podra servoid Suma(double a[][3],double b[][3],double c[][3]){ for(int i = 0; i< 3 ; i++) for(int j = 0; j< 3 ; j++) c[i][j] = a[i][j] + b[i][j];}

  • Otras operaciones de matricesvoid Resta(double a[][3],double b[][3],double c[][3]){ for(int i = 0; i< 3 ; i++) for(int j = 0; j< 3 ; j++) c[i][j] = a[i][j] - b[i][j];}

    void Multiplica(double a[][3],double b[][3],double c[][3]){ for(int i = 0; i< 3 ; i++) for(int j = 0; j< 3 ; j++){ c[i][j] = 0; for(int k = 0; k< 3 ; k++) c[i][j] += a[i][k]*b[k][j]; }}

  • Otras operaciones de matricesvoid print(double a[][3]){ for(int i = 0; i< 3 ; i++){ for(int j = 0; j< 3 ; j++) cout
  • Tarea #10Escriba una funcin para obtener la traspuesta de una matriz de 3x3.Escriba una funcin que calcule la suma de todos los elementos de una matriz de 3x3Escriba una funcin que calcule la traza de una matriz de 3x3Calcule con esta tarea y lo anterior lo siguiente:a + b, a - b, a * b, traspuesta(a), traspuesta(b), traza(a), traza(b), sumatotal(a), sumatotal(b),

  • Matrices de cualquier tamaoEs conveniente manejar las matrices de tamao arbitrario mediante un vector de una sola dimensin.La matriz que se pasa como parmetro se pasa como un apuntador.Las funciones para manipular matrices se definen para un tamao mximo de elementos.

  • Ejemplo sumavoid sumaMat(int nrRow,int nrCol, int maxCol, float *mat1, float *mat2, float *mat3) { int i, j; for( i=0; i
  • productovoid prodMat(int nrRow,int nrCol,int maxCol,float *mat1, float *mat2, float *mat3) { int i, j, k; for( i=0; i
  • Impresinvoid printMat(int nrRow,int nrCol,int maxCol,float *mat) { int i, j; for( i=0; i
  • Ejemplo de programa principalint main(void) { int row=4, col=4; float add, maxRow; float a[MAXROW][MAXCOL] = {{1,2,3,4},{3,2,1,1},{4,3,7,6},{4,5,5,6}}; float b[MAXROW][MAXCOL] = {{4,5,7,1},{2,4,8,9},{3,3,0,0},{2,1,1,1}}; float c[MAXROW][MAXCOL]; printMat(row,col,MAXCOL,(float *) a); printMat(row,col,MAXCOL,(float *) b); sumaMat(row,col,MAXCOL,(float *) a,(float *) b,(float *) c); printMat(row,col,MAXCOL,(float *) c); getch(); return 0;}