You are on page 1of 7

Estructura de Datos IS 212

Ingeniera de Sistemas - UNSCH


LABORATORIO N1

Arreglos
Un arreglo es una secuencia de datos del mismo tipo
Los datos se llaman elementos del arreglo y se numeran 0, 1, 2, ...
Estos nmeros localizan al elemento dentro del arreglo y se denominan ndices
Los ndices del arreglo empiezan con 0 y terminan con el tamao del arreglo -1
Si el arreglo tiene n elementos, se denotan como a[0], a[1], ... a[n-1]
Declaracin de un arreglo
La sintaxis de declaracin de arreglos en Java es:
tipo [ ] identificador
tipo identificador []
Ejemplos:
char cad[ ], p;
int [] v, w;
double [] m, t[], x;
Definir arreglo con nmero de elementos
Sintaxis para definir arreglo de un nmero determinado de elementos:
tipo nombreArreglo [ ] = new tipo [numeroDeElementos]
tipo nombreArreglo [ ];
nombreArreglo = new tipo[numeroDeElementos];
Ejemplo:
float notas = new float [26];
int [ ] a;
a = new int[10]
Tamao del arreglo
Java considera cada arreglo como un objeto
El nmero de elementos de un arreglo se conoce accediendo al campo length
double [ ] v = new double [15]
System.out.print(v.length); // escribe 15
El campo length est protegido, no se puede modificar
Inicializacin de arreglos
Se deben asignar valores a los arreglos antes de utilizarlos, por defecto se
inicializan
con 0
precios[0] = 10;
precios[1] = 20;
precios[2] = 30;
int numeros[]={10, 20, 30, 40, 50, 60};
char c[]={'L','u','i','s'};
final int ENE=31, FEB=28, MAR=31,ABR=30;
int meses[]={ENE, FEB, MAR, ABR};
for(i=0; i<numeros.length; i++)
numeros[i] = -1;
Arreglos de caracteres y cadenas de texto
Una cadena de texto es un conjunto de caracteres, 'abcdefg'. Son soportadas por la
clase
String:
String cadena = 'abcdefg'
Ing. Jennifer Roco Pillaca De La Cruz
Gua de laboratorio1

Pgina 1 de 7

Estructura de Datos IS 212


Ingeniera de Sistemas - UNSCH
Los arreglos tipo char son secuencias de carcateres, con caractersticas de
arreglos de
otros tipos
String mas = programador Java;
char datos[ ] = {'D','i','r','e','c','t','o','r','i','o'};
Arreglo bidimensional
Es un arreglo de arreglos, es decir, un arreglo unidimensional donde cada elemento
es
un arreglo
Arreglo de 4 filas y 2 columnas:
int tabla[][]=new int[4][2];
Elemento Posicin relativa en memoria
Tabla[0][0] 0
Tabla[0][1] 4
Tabla[1][0] 8
Tabla[1][1] 12
Tabla[2][0] 16
Tabla[2][1] 20
Tabla[3][0] 24
Tabla[3][1] 28
Inicializacin de arreglos Multidimensionales
int tabla[ ][ ]={{51,52,53},{54,55,56}};
int tabla[ ][ ]={{51,52,53}, {54,55,56}};
double tb[ ][ ]={{1.5,-2.5},{5.0,-0.0,1.5}};
int [ ]a={1,3,5}, b={2,4,6,8,10};
int mtb[ ][ ]={a, b};
double [ ][ ]gr=new double[3][];
gr[0]=new double[3];
gr[1]=new double[6];
gr[2]=new double[5];
Ejemplos.
Crear un proyecto Arreglos.
1. Crear la clase Arreglo1 y realizar el siguiente cdigo.
public class ArregloNumeros{
public static void main(String[] args) {
int n,i;
double x [ ]= new double[50];
Scanner valor =new Scanner (System.in);
System.out.println("INGRESO DE LOS DATOS");
System.out.println("Cuantos datos va a ingresar?");
n=valor.nextInt();
for (i=0;i<=n-1;i++)
{
System.out.println("Dato ["+(i+1)+"]:");
x[i]=valor.nextDouble();
}
System.out.println("IMPRESION DE LOS DATOS");
Ing. Jennifer Roco Pillaca De La Cruz
Gua de laboratorio1

Pgina 2 de 7

Estructura de Datos IS 212


Ingeniera de Sistemas - UNSCH
for (i=0;i<=n;i++) //for (i=0;i<=x.length;i++)
System.out.println("dato [" +(i+1)+"]: "+x[i]);
}
}
2. Realizar un programa que permita ingresar datos numricos, hallar el
mayor, la suma de los datos y la suma de los nmeros pares.
package arreglos;
import java.text.DecimalFormat;
import java.util.Scanner;
public class ArregloMetodos {
public static void main(String[] args) {
int n,i;
double x []= new double[50];
double sum;
Scanner valor =new Scanner (System.in);
System.out.println("INGRESO DE LOS DATOS");
System.out.println("Cuantos datos va a ingresar?");
n=valor.nextInt();
leer (x, n);
visualizar (x, n);
sum=sumaarreglo(x, n);
System.out.println("la suma de los elementos es: "+sum);
mayor(x, n);
}
static void leer(double b[], int m){
int i,j;
double x;
DecimalFormat dosDigitos = new DecimalFormat( "0.00" );
for(i=0;i<m; i++){
x=Math.random()*100;
String y=dosDigitos.format(x);
b[i]=Double.parseDouble(y);
}
}
static void visualizar(double b[], int m){
int i,j;
System.out.println("\n\t Matriz leida ");
for(i=0; i < m; i++){
System.out.println("dato [" +(i+1)+"]: "+b[i]);
System.out.println(" ");
}
}
static double sumaarreglo (double b[], int m){
double s=0;
for(int i=0; i < m; i++){
s +=b[i];
}
return s;
Ing. Jennifer Roco Pillaca De La Cruz
Gua de laboratorio1

Pgina 3 de 7

Estructura de Datos IS 212


Ingeniera de Sistemas - UNSCH
}
static void mayor (double b[], int m){
double ma=0, pos = 0;
for(int i=0; i < m; i++){
if (i==0)
{
ma=b[i];
pos=i;
}
else
{ if (b[i]>ma)
{
ma =b[i];
pos =i;
}
}
}
System.out.println("el elemento mayor es : "+ma);
System.out.println("la posicin del elemento mayor es : "+(pos+1));
}
}
3. Realizar un programa que ingrese datos y visualice en una matriz
Bidimensional
package arreglos;
import java.util.Scanner;
public class Tabla {
public static void main(String[] arg){
Scanner Keyboard =new Scanner (System.in);
int m,n;
System.out.println("Ingrese cantidad de filas");
n=Keyboard.nextInt();
System.out.println("Ingrese cantidad de columnas");
m=Keyboard.nextInt();
int[][]a =new int[n][m];
leer(a);
visualizar(a);
}
static void leer(int b[][]){
int i,j;
Scanner Keyboard =new Scanner (System.in);
System.out.println("Ingrese datos a matriz");
for(i=0;i<b.length; i++){
System.out.println("Fila: "+(i+1));
for(j=0;j<b[i].length; j++)
Ing. Jennifer Roco Pillaca De La Cruz
Gua de laboratorio1

Pgina 4 de 7

Estructura de Datos IS 212


Ingeniera de Sistemas - UNSCH
{
System.out.println("Columna: "+(j+1));
b[i][j]=Keyboard.nextInt();
}
}
}
static void visualizar(int b[][]){
int i,j;
System.out.println("\n\t Matriz leida ");
for(i=0; i < b.length; i++){
for(j=0; j < b[i].length; j++)
System.out.print(b[i][j]+" ");
System.out.println(" ");
}
}
}
4. Realizar un programa que ingrese datos (Aleatorios)y visualice en
una matriz bidimensional
package arreglos;
import java.util.Scanner;
public class TablaMetodos {
public static void main(String[] arg){
Scanner Keyboard =new Scanner (System.in);
int m,n;
System.out.println("Ingrese cantidad de filas");
n=Keyboard.nextInt();
System.out.println("Ingrese cantidad de columnas");
m=Keyboard.nextInt();
int[][]a =new int[n][m];
leer(a);
visualizar(a);
}
static void leer(int b[][]){
int i,j;
double x;
for(i=0;i<b.length; i++){
for(j=0;j<b[i].length; j++)
{
x=Math.random()*100;
b[i][j]=(int)Math.round(x);
}
}
}
static void visualizar(int b[][]){
int i,j;
Ing. Jennifer Roco Pillaca De La Cruz
Gua de laboratorio1

Pgina 5 de 7

Estructura de Datos IS 212


Ingeniera de Sistemas - UNSCH
System.out.println("\n\t Matriz leida ");
for(i=0; i < b.length; i++){
for(j=0; j < b[i].length; j++)
System.out.print(b[i][j]+" ");
System.out.println(" ");
}
}
}
5. Realizar un programa que ingrese datos (Aleatorios) a varias
matrices y realice operaciones entre ellas.
package arreglos;
import java.util.Scanner;
public class Arreglo2Metodos {
public static void main(String[] arg){
System.out.println("TRABAJANDO CON MATRICES CUADRADAS");
Scanner Keyboard =new Scanner (System.in);
int n, dp;
System.out.println("Ingrese el tamao");
n=Keyboard.nextInt();
int[][]a =new int[n][n];
int[][]b =new int[n][n];
int[][]c =new int[n][n];
leer(a);
leer(b);
System.out.println("Los valores que tiene la matriz A son");
visualizar(a);
System.out.println("Los valores que tiene la matriz B son");
visualizar(b);
suma(a, b, c);
System.out.println("Los valores que tiene la matriz c son (Suma A +B )");
visualizar(c);
dp=diagonalPrincipal(a);
System.out.println("La suma de la diagonal principal de la matriz A es "+dp);
}
static void leer(int b[][]){
int i,j;
double x;
for(i=0;i<b.length; i++){
for(j=0;j<b[i].length; j++)
{
x=Math.random()*100;
b[i][j]=(int)Math.round(x);
}
}
}
Ing. Jennifer Roco Pillaca De La Cruz
Gua de laboratorio1

Pgina 6 de 7

Estructura de Datos IS 212


Ingeniera de Sistemas - UNSCH
static void visualizar(int b[][]){
int i,j;
System.out.println("\n\t Matriz leida ");
for(i=0; i < b.length; i++){
for(j=0; j < b[i].length; j++)
System.out.print(b[i][j]+" ");
System.out.println(" ");
}
}
static void suma(int a[][], int b[][],int c[][]){
int i,j ;
for(i=0; i < b.length; i++){
for(j=0; j < b[i].length; j++)
c[i][j]=a[i][j]+b[i][j];
}
}
static int diagonalPrincipal(int x[][]){
int i,j, s=0 ;
for(i=0; i < x.length; i++){
for(j=0; j < x[i].length; j++) {
if(i==j)
s+=x[i][j];
}
}
return s;
}
}
Ejercicios
En el ejemplo. Modificar el cdigo de tal forma que Realice el siguiente men:
a. Suma de los elementos de cada matriz.
b. Hallar la suma de la diagonal principal de cada matriz.
c. Hallar la suma de la diagonal secundaria cada matriz.
d. Hallar el menor elemento de cada matriz e imprimir su posicin
e. Hallar el mayor elemento de cada matriz e imprimir su posicin
f. Hallar e imprimir la suma de las matrices A y B.
g. Hallar e imprimir la multiplicacin de las matrices A y B.
Tarea
1. Se dispone de las notas de 20 alumnos, cada uno de ellos lleva 5 cursos
(Matemtica Bsica, Clculo I, Espaol I, Economa General, Deportes Menores),
cada curso tiene 4, 4, 3, 3, 2 crditos respectivamente. Hallar el ndice acadmico
de cada alumno. Promedio por curso. Cantidad de alumnos aprobados y
desaprobados (segn ndice acadmico). Primera y segunda nota mayor en ClculoI
e indicar a que alumnos les corresponde. Cantidad de alumnos que obtuvieron la
nota mayor en Matemtica Bsica, indicar la a que alumnos le corresponde.

Ing. Jennifer Roco Pillaca De La Cruz


Gua de laboratorio1

Pgina 7 de 7

You might also like