Professional Documents
Culture Documents
(TRIDIMENCIONAL)
Donde:
i = 1 ... n
ARREGLOS
CONCEPTOS BSICOS.
Los arreglos multidimensionales tienen ms de una dimensin. Las dimensiones
se manejan por medio de un par de corchetes, dentro de los que se escriben los
valores de cada dimensin, separados por comas.
EL ARREGLO TRIDIMENSIONAL
3 era dimensin
SEGUNDA DIMENSION
COLUMNAS
ELEMENTO 0 0 1 2 3 4
primera REGION 0
REGION 1
dimensin REGION 2
REGION 3
ELEMENTO 1
REGION 4
primera
dimensin
ELEMENTO 2
primera
dimensin
ELEMENTO 3
primera
dimensin
OPERACIONES:
Para manejar un arreglo, las operaciones a efectuarse son:
A. DECLARACIN
Donde:
Tipo indica el tipo correspondiente a los elementos del arreglo,
Ejemplos:
B. CREACIN.
Donde:
dim1, dim2, dimN son valores enteros que representan las dimensiones
del arreglo.
Ejemplos:
C. INICIALIZACIN
Un arreglo es un objeto que, cuando es creado por el compilador, se le
asignan automticamente valores iniciales predeterminados a cada uno
de sus elementos, de acuerdo a los siguientes criterios:
int [ , , ] tridim={{{12, 59, 70, 45} , {20, 16, 29, 48} , {93, 75, 43, 10}},
{{44, 72, 30, 24} , {60, 89, 39, 61} , {99, 52, 34, 47}}};
D. ACCESO
E. APLICACIONES.
char car;
car = (char)Console.Read( ) ;
enciclopedia[v,p,c] = car ;
Como ya lo hemos mencionado al definir un arreglo es necesario hacerlo como una variable
por lo cual en la parte de declaracin de variables se utiliza el siguiente formato:
En donde:
Ejemplo
Nmeros: Arreglo [4][5][5] ENTERO
Para relacionar cada elemento individual de un arreglo de tres dimensiones se usan tres
subndices; el primero indica la primera dimensin del elemento, el segundo la segunda
dimensin y el tercero la tercera dimensin, como sigue:
NomVar[primera][segunda][tercera]
En donde
NOTA los subndices pueden ser constantes, variables o expresiones de tipo entero.
Al igual que toda la variable, una de tipo arreglo tridimensional puede usarse para leer datos,
asignarle valores mediante expresiones aritmticas, imprimir su contenido etc.
EJEMPLOS
NomVar [2][3][4]= 50
EJEMPLO
ELABORAR UN ALGORITMO QUE LEA NMERO.ENTEROS DE TIPO ENTERO PARA UN ARREGLO
COMO EL ESQUEMATIZADO LNEAS ANTES, ES DECIR, UN ARREGLO DE 4X5X5 , Y LOS IMPRIMA.
Clase ArregloTresDim1
1. Mtodo principal ()
a. Declarar variables
Nmeros: Arreglo [4][5][5] :entero
Prim,segu,terc:entero
b. For prim=0;prim<=3;prim++
1. For segu=0;segu<4;segu++
a. For terc=0;terc<=4;terc++
1. Solicitar elemento prim,segu,terc
2. Leer nmeros [prim][segu][terc]
b. Endfor
2. endfor
c. Endfor
d. For prim=0;prim<=3; prim ++
1. For segu=0; segu<4; seg++
a. For terc=0; terc<=4 ; terc ++
1. Imprimir nmeros [prim][segu][terc]
b. Endfor
2. Endfor
e. Endfor
f. Fin mtodo principal
Fin
PROGRAMA EN JAVA
import java.util.Scanner;
public class ArregloTresDim1
{
public static void main(String args[])
{
// Declara // Variables
int numeros[][][] = new int[4][5][5];
int pri, seg, ter;
System.out.println("");
for(i=0;i<m;i++)
{for(j=0;j<n;j++)
{for(k=0;k<p;k++)
{System.out.print("B["+(i+1)+"]["+(j+1)+"]["+(k+1)+"]:");
B[i][j][k]=teclado.nextFloat();}}}
System.out.println("");
System.out.println("La suma de los dos arreglos es la siguiente:");
//suma
for(i=0;i<m;i++)
{for(j=0;j<n;j++)
{for(k=0;k<p;k++)
{S[i][j][k]=A[i][j][k]+B[i][j][k];
System.out.println("S["+(i+1)+"]["+(j+1)+"]["+(k+1)+"]:"+S[i][j][k]);}}}
}}
TERCER EJERCICIO
PRODUCCION DE PLANTAS
import java.util.Scanner;
public class arreglo {
public static void main(String args[])
{
// Declarar
// Variables
int prod[][][] = new int[6][4][5];
int pla, est, dia, totEst, totDia, totPlanta, totProd,
mayPla, mayProdPla, mayEst=0, mayProdEst=0;
// Leer datos
System.out.println("-------- Lectura de datos --------");
for (pla = 0; pla <= 2; pla++)
{
for (est = 0; est <= 1; est++)
{
System.out.print(" Planta " + (pla+1) + " ");
System.out.println("Estacion " + (est+1));
for (dia = 0; dia <= 2; dia++)
{
System.out.print("Produccion dia " + (dia+1) + ": ");
prod[pla][est][dia] = entrada.nextInt();
}
}
}
// Imprimir salida
System.out.println("\n REPORTE SEMANAL DE PRODUCCION");
totProd = 0;
mayProdPla = 0;
for (pla = 0; pla <= 2; pla++)
{
System.out.println("\n------------------- Planta " + (pla+1) + " ------------------");
System.out.println(" Dia 1 Dia 2 Dia 3 Dia 4 TOTAL");
System.out.println(" ----- ----- ----- ----- ----- -----");
mayProdEst = 0;
for (est = 0; est <= 1; est++)
{
System.out.print("Estacion-" + (est+1) + " ");
totEst = 0;
for (dia = 0; dia <= 2; dia++)
{
System.out.print(prod[pla][est][dia] + " ");
totEst = totEst + prod[pla][est][dia];
}
System.out.println(totEst);
if (totEst > mayProdEst)
{
mayProdEst = totEst;
mayEst = est + 1;
}
}
System.out.println(" ----- ----- ----- ----- ----- -----");
System.out.print(" Totales ");
totPlanta = 0;
for (dia = 0; dia <= 2; dia++)
{
totDia = 0;
for (est = 0; est <= 1; est++)
{
totDia = totDia + prod[pla][est][dia];
}
System.out.print(totDia + " ");
totPlanta = totPlanta + totDia;
}
System.out.println(totPlanta);
System.out.println(" Estacion mas productiva = " + mayEst);
System.out.println("Produccion de estacion mas productiva = " + mayProdEst);
if (totPlanta > mayProdPla)
{
mayProdPla = totPlanta;
mayPla = pla + 1;
}
totProd = totProd + totPlanta;
}
System.out.println(" Total general de produccion = " + totProd);
System.out.println("\n Planta mas productiva = " + mayEst);
System.out.println("Produccion de planta mas productiva = " + mayProdEst);
}
}
LENGUAJE C++
EJERCICIO
/*un programa para registrar los tiempos de los chequeos de 4 velocistas que
compiten para un cupo en la clasificacin nacional. Cada velocista corre por un
carril, y se deben realizar 3 chequeos por cada velocista. Usted debe registrar
el nombre del velocista que corre por cada canal, registrar el tiempo de cada
prueba y su tiempo promedio. */
#include <iostream>
using namespace std;
int main()
{
char competidores [4][40]; /*Matriz de nombres de competidores*/
float carreras[4][3]; /*Matriz de tiempos en cada vuelta de los
competidores*/
float prom_competidores[4]; /*promedio de los competidores*/
float acumulador=0;
cout << "Informacin del tiempo de cada competidor en el chequeo" << endl;
/*Llenando nombres de los participantes*/
for (int i=0;i<4;i++)
{
cout<<"Ingrese el nombre del competidor del carril "<<i+1<<endl;
gets(competidores [i]);
}
/*Llenando la matriz de tiempos en cada chequeo*/
for (int j=0;j<4;j++)
{
acumulador=0;
cout<<"Indique el tiempo del Competidor "<<competidores[j]<<endl;
for(int k=0;k<3;k++)
{
cout<<"En la prueba "<<k+1<<endl;
cin>>carreras[j][k];
acumulador=acumulador+carreras[j][k];
}
/*Guardando el promedio de las dos carreras en la matriz*/
prom_competidores[j]=acumulador/3;
}
/*Imprimiendo los resultados*/
for (int j=0;j<4;j++)
{
cout<<"El tiempo del Competidor "<<competidores[j];
for(int k=0;k<3;k++)
{
cout<<"\t"<<carreras[j][k];
}
cout<<"\tTiempo promedio= "<<prom_competidores[j]<<endl;
}
return 0;
}