18
Arreglos (arrays) o vectores M.C. Ana Cristina Palacios García

Arreglos (arrays) o vectores€¦ · Arreglos: Características •Un arreglo es una estructura que posee un conjunto de datos del mismo tipo. •LosarreglosenJavasonobjetos

  • Upload
    others

  • View
    15

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Arreglos (arrays) o vectores€¦ · Arreglos: Características •Un arreglo es una estructura que posee un conjunto de datos del mismo tipo. •LosarreglosenJavasonobjetos

Arreglos (arrays) o vectoresM.C. Ana Cristina Palacios García

Page 2: Arreglos (arrays) o vectores€¦ · Arreglos: Características •Un arreglo es una estructura que posee un conjunto de datos del mismo tipo. •LosarreglosenJavasonobjetos

Introducción

• En cualquier lenguaje de programación, es posible construir estructuras que almacenen conjuntos de datos.• Estras estructuras pueden tener una o más dimensiones.

• Las estructuras con una dimensión se denominan arreglos y las de dos dimensiones sedenominan matrices.

• Hay casos particulares en los que se requiere el uso de más de dos dimensiones, en esoscasos, se denominan arreglos multidimensionales.

Page 3: Arreglos (arrays) o vectores€¦ · Arreglos: Características •Un arreglo es una estructura que posee un conjunto de datos del mismo tipo. •LosarreglosenJavasonobjetos

Arreglos: Características

• Un arreglo es una estructura que posee un conjunto de datos del mismo tipo. • Los arreglos en Java son objetos, y sus elementos pueden ser de tipos primitivos de datos o clases.• Características de los arreglos:

• Tienen nombre: El nombre identifica al arreglo, y a través de éste nombre, se accede al arreglo para su lecturay escritura de información. Ejemplo:

int miArreglo[];• Instancia con el operador new que permite la asignación del tamaño del arreglo. Ejemplo:

miArreglo = new int[6]; //que define un arreglo de tamaño 6 de tipo entero.• Es posible realizar los procedimientos anteriores en una sola línea. Ejemplo:

int miArreglo[] = new int[6];

Page 4: Arreglos (arrays) o vectores€¦ · Arreglos: Características •Un arreglo es una estructura que posee un conjunto de datos del mismo tipo. •LosarreglosenJavasonobjetos

Arreglos: Características

• Se accede a los elementos del arreglo a través de corchetes [ ], indicando laposición del elemento al cuál se desea acceder. La posición del elemento esdenominado el índice.• En PSeInt el índice inicia en valor 1 y el final en n, donde n es la cantidad de elementos

del arreglo.

• En Java el índice inicia con el valor 0 y el final es n-1, donde n es la cantidad deelementos del arreglo. Para n =6, el arreglo miArreglo es:

0 1 2 3 4 5

miArreglo

Page 5: Arreglos (arrays) o vectores€¦ · Arreglos: Características •Un arreglo es una estructura que posee un conjunto de datos del mismo tipo. •LosarreglosenJavasonobjetos

Arreglos: Características

• Para asignar valores a las celdas del vector, se usa el nombre del vector y elvalor del índice o la posición de la celda. Ejemplo: Queremos guardar un 10en la posición 0 del vector (usando la representación de Java de vectores).

miArreglo[0] = 10;

miArreglo[5] = 8;

10

0 1 2 3 4 5

miArreglo

10 8

0 1 2 3 4 5

miArreglo

Page 6: Arreglos (arrays) o vectores€¦ · Arreglos: Características •Un arreglo es una estructura que posee un conjunto de datos del mismo tipo. •LosarreglosenJavasonobjetos

Arreglos: Características

• Para leer el valor almacenado en alguna de las celdas del arreglo se requiere el nombre delarreglo y el valor del índice o la posición de la que se desea obtener el dato. Ejemplo: Leer elvalor que se encuentra almacenado en la posición 5 del vector miArreglo y asignarlo en lavariable entera llamada dato.

int dato = miArreglo[5];

• En caso de que no se hayan asignado valores a todas las celdas del arreglo o vector, loselementos del arreglo se inicializan al valor por defecto del tipo de dato del vector. Ver lasiguiente tabla para mejor referencia:

Page 7: Arreglos (arrays) o vectores€¦ · Arreglos: Características •Un arreglo es una estructura que posee un conjunto de datos del mismo tipo. •LosarreglosenJavasonobjetos

Arreglos: Características

Tipo de dato Ejemplo de vector inicializado con valor por defecto según el tipo de

dato

Detalle

int arreglo[] =new int int[4]; 0 0 0 0 Ceros

double arreglo[] = new int[4]; 0.0 0.0 0.0 0.0 Ceros

String arreglo[] = new String[4]; “” “” “” “” Cadena vacía (comillas)

char arreglo[] = new char[4]; ‘’ ‘’ ‘’ ‘’ Carácter nulo (comilla simple,

no ascento)

Page 8: Arreglos (arrays) o vectores€¦ · Arreglos: Características •Un arreglo es una estructura que posee un conjunto de datos del mismo tipo. •LosarreglosenJavasonobjetos

Arreglos: Características

• Los arreglos se pueden inicializar con valores desde que son declarados, y si se conocen losvalores, no es necesario indicar el tamaño del arreglo, ya que la definición del tamaño se obtienesegún la cantidad de valores que se indican entre llaves. Ejemplo: Declaración de un vector detipo cadena de texto o String inicializado con los valores equivalentes a los nombre de los días dela semana.

String dias[] = {“lunes”,”martes”,”miércoles”,”jueves”,”viernes”,”sabado”,”domingo”};

Automáticamente, Java detecta que el vector dias es de tamaño 7, y recerva el espacio requeridopara asignar los valores declarados en la inicialización en cada una de las celdas del vector.

“lunes” “martes” “miércoles” “jueves” “viernes” “sabado” “domingo”

0 1 2 3 4 5 6

dias

Page 9: Arreglos (arrays) o vectores€¦ · Arreglos: Características •Un arreglo es una estructura que posee un conjunto de datos del mismo tipo. •LosarreglosenJavasonobjetos

Arreglos y ciclos

• Debido a que los índices de un arreglo en Java inician en 0 y terminan hastael tamaño del arreglo menos 1 (n-1, donde n es el tamaño del arreglo), seusan ciclos para llenarlos o leerlos en orden ascendente (0,1,2,…,n-1) odescendente (n-1, n-2, …, 3,2,1,0), generando dichos valores segúncorresponda.

• Ejemplo: Para recorrer las celdas del vector dia en forma ascendente eimprimir su contenido, es posible usar uno de los siguientes códigos:

Page 10: Arreglos (arrays) o vectores€¦ · Arreglos: Características •Un arreglo es una estructura que posee un conjunto de datos del mismo tipo. •LosarreglosenJavasonobjetos

Pseudocódigo Código Java equivalente usando cilo para (for)

InicioDimension dia[7];dia[1]=“lunes”;dia[2]=“martes”;dia[3]=“miércoles”;dia[4]=“jueves”;dia[5]=“viernes”;dia[6]=“sabado”;dia[7]=“domingo”;Para i←1 Hasta 7 Con Paso 1

Escribir dia[i],”,”;Fin Para

Fin Programa

public class Programa{public static void main(String args[]){

String dia[]={“lunes”,”martes”,”miércoles”,”jueves”,”viernes”, ”sabado”,”domingo”};int i;int n=7;for(i=0; i<n; i++){

System.out.print(dia[i]+”,”);}

}}

Page 11: Arreglos (arrays) o vectores€¦ · Arreglos: Características •Un arreglo es una estructura que posee un conjunto de datos del mismo tipo. •LosarreglosenJavasonobjetos

Pseudocódigo Código Java equivalente usando cilo mientras (while)

InicioDimension dia[7];dia[1]=“lunes”;dia[2]=“martes”;dia[3]=“miércoles”;dia[4]=“jueves”;dia[5]=“viernes”;dia[6]=“sabado”;dia[7]=“domingo”;contador←1; Mientras contador<=7 Hacer

Escribir dia[contador],”,”;contador←contador+1;

Fin MientrasFin Programa

public class Programa{public static void main(String args[]){

String dia[]={“lunes”,”martes”,”miércoles”,”jueves”,”viernes”, ”sabado”,”domingo”};int contador=0;int n=7;while(contador<n){

System.out.print(dia[i]+”,”);contador++;

}}

}

Page 12: Arreglos (arrays) o vectores€¦ · Arreglos: Características •Un arreglo es una estructura que posee un conjunto de datos del mismo tipo. •LosarreglosenJavasonobjetos

Pseudocódigo Código Java equivalente usando cilo hacer-mientras (do-while)

InicioDimension dia[7];dia[1]=“lunes”;dia[2]=“martes”;dia[3]=“miércoles”;dia[4]=“jueves”;dia[5]=“viernes”;dia[6]=“sabado”;dia[7]=“domingo”;contador←1; repetir

Escribir dia[contador],”,”;contador←contador+1;

mientras contador != 8Fin Programa

public class Programa{public static void main(String args[]){

String dia[]={“lunes”,”martes”,”miércoles”,”jueves”,”viernes”, ”sabado”,”domingo”};int contador=0;int n=7;do {

System.out.print(dia[i]+”,”);contador++;

}while(contador!=7) ; }}

Page 13: Arreglos (arrays) o vectores€¦ · Arreglos: Características •Un arreglo es una estructura que posee un conjunto de datos del mismo tipo. •LosarreglosenJavasonobjetos

Ejemplo: cálculo de promedio en un arreglo

• Para calcular el promedio en un arreglo, es necesario sumar los elementos de lasceldas del arreglo y dividir el total de la suma entre la cantidad de elementos delarreglo.

• Su implementación para el siguiente arreglo es:

promedio = (9+0+7+2+10+10+5)/7=6.14, si la variable promedio se declara de tipoentero, entoces se truncará el valor a 6.

9 0 7 2 10 10 5

0 1 2 3 4 5 6x

Page 14: Arreglos (arrays) o vectores€¦ · Arreglos: Características •Un arreglo es una estructura que posee un conjunto de datos del mismo tipo. •LosarreglosenJavasonobjetos

Pseudocódigo Código Java equivalente para obtener el promedio de los elementos del arreglo cuando el arreglo es inicializado desde la declaración

InicioDimension x[7];x[1]=9;x[2]=0;x[3]=7;x[4]=2;x[5]=10;x[6]=10;x[7]=5;suma←0;Para i←1 Hasta 7 Con Paso 1

suma←suma+x[i];Fin Parapromedio←suma/7;Escribir “Promedio=“,promedio;

Fin Programa

public class Programa{public static void main(String args[]){

String x[]={9,0,7,2,10,10,5};int i;int n=7;int suma=0;for(i=0; i<n; i++){

suma=suma+x[i];}int promedio=suma/7;System.out.println(”Promedio=“+promedio);

}}

Page 15: Arreglos (arrays) o vectores€¦ · Arreglos: Características •Un arreglo es una estructura que posee un conjunto de datos del mismo tipo. •LosarreglosenJavasonobjetos

Ejemplo: Llenar el arreglo con datos provenientes del teclado

Pseudocódigo Código Java equivalente para llenar un arreglo con datos proporcionados por el usuario usando ciclo para (for en decremento de 6 a 0), una vez leídos los 7 valores y almacenados en el arreglo x, el programa imprime el contenido del arreglo (usando otro ciclo para ascendentemente generando valores para i desde 0 hasta 6).

InicioDimension x[7];Para i←7 Hasta 1 Con Paso -1

Escribir “Ingrese un valor:”;Leer x[i];

Fin Para//Mandamos a imprimir el arregloPara i←0 Hasta 7 Con Paso 1

Escribir x[i],“,”;Fin Para

Fin Programa

import java.util.Scanner;public class Programa{public static void main(String args[]){

int x[]=new int[7];Scanner sc = new Scanner(System.in);for(i=6; i>=0; i--){

System.out.println(“Ingrese un valor”);x[i] = sc.nextInt( );

}//Mandamos a imprimir el arreglofor(i=0; i<7; i++){

System.out.print(x[i]+”,”);}

}}

Page 16: Arreglos (arrays) o vectores€¦ · Arreglos: Características •Un arreglo es una estructura que posee un conjunto de datos del mismo tipo. •LosarreglosenJavasonobjetos

Ejercicios para el 27 de marzo de 2020Instrucciones: Por cada ejercio obtener el pseudocódigo y el código de Java equivalente, entregaren un reporte con las características indicadas en la última diapositiva, enviarlo por correoelectrónico usando los mismos equipos de trabajo del parcial 1.

1. Declarar un arreglo de tipo entero con el nombre array e inicializarlo con los siguientes datos:5,10,15,20,25,30,35,40. Imprimir el contenido del arreglo. Resolver usando ciclos para, mientras yhacer-mientras.

2. Crear un arreglo x de 5 elementos de tipo String (cadena de texto), leer valores y asignarlos a cadacelda del arreglo. Copiar los elementos del arreglo x a un arreglo y de tamaño 5 y declarado comotipo String, pero en orden inverso. Ver ejemplo:

“uno” “dos” “tres” “gato” “perro”

0 1 2 3 4x

“perro” “gato” “tres” “dos” “uno”

0 1 2 3 4y

Page 17: Arreglos (arrays) o vectores€¦ · Arreglos: Características •Un arreglo es una estructura que posee un conjunto de datos del mismo tipo. •LosarreglosenJavasonobjetos

3. Programa que declare un arreglo de diez elementos enteros y pida númerospara rellenarlo hasta que se llene el arreglo o se introduzca un númeronegativo. Entonces se debe imprimir el arreglo (sólo los elementosintroducidos).

4. Crear un programa que pida un número al usuario un número de mes (porejemplo, el 4 que equivale al mes de abril) y diga cuántos días tiene (porejemplo, 30) y el nombre del mes. Debes usar un vector. Para simplificarlovamos a suponer que febrero tiene 28 días.

Page 18: Arreglos (arrays) o vectores€¦ · Arreglos: Características •Un arreglo es una estructura que posee un conjunto de datos del mismo tipo. •LosarreglosenJavasonobjetos

Detalles del reporte

1. Portada con nombre completo de los integrantes del equipo en órden alfabético por apellidos.2. Introducción (describen el concepto de arreglo unidimensional, índice de un arreglo, ). (1 pts)3. Solución de ejercicios: Por cada ejercicio deberán poner el enunciado del ejercicio que se va a

resolver. (2 pts por ejercicio resuelto)• Descripción de la solución. (0.5 pts)

• Incluir el pseudocódigo. (0.5 pts)

• El código de Java para las versiones de ciclos que se hayan solicitado. (0.5 pts)• Pruebas de escritorio a mano o de funcionamiento en PseInt y Java.. (0.5 pts)

4. Conclusiones. (0.5 pts)5. Referencias. (0.5 pts)