Está en la página 1de 7

Estructura de Datos IS 212

Ingenieríía de Sistemas - UNSCH


LABORATORIO Nº1
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 números localizan al elemento dentro del arreglo y se denominan índices
● Los índices del arreglo empiezan con 0 y terminan con el tamaño del arreglo -1
● Si el arreglo tiene n elementos, se denotan como a[0], a[1], ... a[n-1]
Declaración de un arreglo
La sintaxis de declaración de arreglos en Java es:
– tipo [ ] identificador
– tipo identificador []
● Ejemplos:
● char cad[ ], p;
● int [] v, w;
● double [] m, t[], x;
Definir arreglo con número de elementos
Sintaxis para definir arreglo de un número 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]
Tamaño del arreglo
Java considera cada arreglo como un objeto
● El número 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
Inicialización 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 Rocíío Pillaca De La Cruz
Paí gina 1 de 7
Guíía de laboratorio1
Estructura de Datos IS 212
Ingenieríía de Sistemas - UNSCH
● Los arreglos tipo char son secuencias de carcateres, con características 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 Posición 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
Inicialización 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 código.

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 Rocíío Pillaca De La Cruz
Paí gina 2 de 7
Guíía de laboratorio1
Estructura de Datos IS 212
Ingenieríía 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 numéricos, hallar el


mayor, la suma de los datos y la suma de los números 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 Rocíío Pillaca De La Cruz
Paí gina 3 de 7
Guíía de laboratorio1
Estructura de Datos IS 212
Ingenieríía 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 posición 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 Rocíío Pillaca De La Cruz


Paí gina 4 de 7
Guíía de laboratorio1
Estructura de Datos IS 212
Ingenieríía 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 Rocíío Pillaca De La Cruz


Paí gina 5 de 7
Guíía de laboratorio1
Estructura de Datos IS 212
Ingenieríía 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 tamaño");
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 Rocíío Pillaca De La Cruz


Paí gina 6 de 7
Guíía de laboratorio1
Estructura de Datos IS 212
Ingenieríía 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 código 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 posición
e. Hallar el mayor elemento de cada matriz e imprimir su posición
f. Hallar e imprimir la suma de las matrices A y B.
g. Hallar e imprimir la multiplicación de las matrices A y B.
Tarea
1. Se dispone de las notas de 20 alumnos, cada uno de ellos lleva 5 cursos
(Matemática Básica, Cálculo I, Español I, Economía General, Deportes Menores),
cada curso tiene 4, 4, 3, 3, 2 créditos respectivamente. Hallar el índice académico
de cada alumno. Promedio por curso. Cantidad de alumnos aprobados y
desaprobados (según índice académico). Primera y segunda nota mayor en CálculoI
e indicar a que alumnos les corresponde. Cantidad de alumnos que obtuvieron la
nota mayor en Matemática Básica, indicar a que alumnos le corresponde.

Ing. Jennifer Rocíío Pillaca De La Cruz


Paí gina 7 de 7
Guíía de laboratorio1

También podría gustarte