Arreglo S
Arreglo S
Arreglo S
Declaración
int a[3]; // forma una secuencia de tres elementos
Nombre del grupo
a
Nombre de los elementos
a[0] → primer elemento
a[1] → segundo elemento
a[2] → tercer elemento
ARREGLO DE 2 DIMENSIONES
Declaración
char m[2][3]; // forma una tabla de dos filas y tres columnas
// cada fila es un arreglo de una dimensión
// la declaración indica que hay dos arreglos de una dimensión
Nombre del grupo
m → indica la localización del grupo en la memoria
Nombre de las filas
m[0] → primera fila → indica la localización de la fila dentro del grupo
m[1] → segunda fila → indica la localización de la fila dentro del grupo
Nombre de los elementos
m[0][0] → primer elemento
m[0][1] → segundo elemento
m[0][2] → tercer elemento
m[1][0] → cuarto elemento
m[1][1] → quinto elemento
m[1][2] → sexto elemento
ARREGLO DE 3 DIMENSIONES
Declaración
double w[2][2][3]; // forma dos tablas de dos filas y tres columnas
// cada fila es una secuencia de tres elementos
// cada fila es un arreglo de una dimensión
// la declaración indica que hay dos arreglos de dos dimensiones
// los arreglos de dos dimensiones tienen a su vez dos arreglos de una dimensión
Nombre del grupo
w → indica la localización del grupo en la memoria
Nombre de las tablas
w[0] → primera tabla → indica la localización de la tabla dentro del grupo
w[1] → segunda tabla→ indica la localización de la tabla dentro del grupo
Nombre de las filas
w[0][0] → primera tabla, primera fila
w[0][1] → primera tabla, segunda fila
w[1][0] → segunda tabla, primera fila
w[1][1] → segunda tabla, segunda fila
ARREGLO 1
ARREGLO 2
ARREGLO 3
ARREGLO 4
ARREGLO 5
ARREGLO 6
PASO DE ARREGLOS A FUNCIONES
*Cuando un argumento (parametro) de una funcion es un arreglo, el
parametro (arreglo) se pasa por referencia.
// cuerpo de la funcion
...
}
*La forma mas usual de pasar un arreglo como parametro a una funcion
es por medio de punteros:
Solucion
pasar arreglo.c
#include<stdio.h>
#define n 10 // define n=10
/* declaracion de la funcion imprimir
de dos maneras */
void imprimir1(int x[]);
void imprimir2(int *x);
main(){
int x[n], i;
// Inicializa arreglo
for (i=0; i<n; i++)
x[i] = i;
imprimir1(x); // Imprime arreglo
// imprimir2(x);
{
// Definicion de la funcion imprimir1
Solucion
Datos de entrada:
n: tamaño del vector
x[n]: vector
Funciones:
void leer vector(double x[], int n)
void escribir vector(double x[], int n)
double promedio(double x[], int n)
#include<stdio.h>
// Declaracion de las funciones
void leer vector(double x[], int n);
void escribir vector(double x[], int n);
double promedio(double x[], int n);
main(){
int n;
printf("Ingrese numero de elementos: ");
scanf("%d", &n);
double x[n];
leer vector(x, n);
escribir vector(x, n);
printf("nnPromedio = %lf", promedio(x,n));
}
void leer vector(double x[], int n) f
int i;
for (i=0; i<n; i++) {
printf("x( %d) = ", i+1);
scanf("%lf", &x[i]);
}
}
// Definicion de las funciones
void escribir vector(double x[], int n)
{
int i;
for (i=0; i<n; i++)
printf(" %5.8lf nt", x[i]);
}
double promedio(double x[], int n) {
int i;
double suma = 0.0;
for (i=0; i<n; i++) suma += x[i];
return suma/n;
}
ORDENAMIENTO DE ARREGLOS
FILA 0
FILA1
FILA2
SUBINDICE DE COLUMNA
SUBINDICE DE FILA
NOMBRE DEL ARREGLO
* UN ARREGLO CON MULTIPLES SUBINDICES
CON EL MISMO NUMERO DE COLUMNAS
EN CADA FILA PUEDE ASIGNARSE
DINAMICAMENTE POR EJEMPLO, UN
ARREGLO DE 3 POR 3 SE ASIUN GINA DE LA
SIGUIENTE MANERA.
Int b [ ] [ ];
b = new int [3 ] [3];
ASI COMO LOS ARREGLOS DE UN SOLO
INDICE, LOS ELEMENTOS DE UN ARREGLO
CON DOS SUBINDICES SE INICIALIZAN
CUANDO NEW CREA EL OBJETO
ARREGLOS.
UN ARREGLO CON MULTIPLES SUBINDICE ES EL QUE
CADA FILA TIENE UN NUMERO DIFERENTE DE
COLUMNAS, PUEDE ASIGNARSE DINAMICAMENTE DE
LA SIGUIENTE MANERA:
Int b [ ] [ ];
b= new int [2 ] [ ]; // asigna filas
b [0 ] = new int [5]; // asigna la columnas de fila 0
0
b [1 ] = new int [3]; // asigna las columnas de fila1
EL CODIGO ANTERIOR CREA UN ARREGLO
BIDIMENSIONAL CON DOS FILAS. LA FILA 0 TIENE 5
COLUMNAS Y LA FILA 1 TIENE 3
FINAL DEL TEMA
GRACIAS