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

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Arreglos

540

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
540
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
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

×