Servicio Nacional de Aprendizaje - SENA
Servicio Nacional de Aprendizaje - SENA
Análisis y De
Análisis y De
sarrollo de S
sarrollo de S
istema de In
istema de In
formación
formación
– –ADSI
ADSI
AP7-AA7
AP7-AA7.1-Ev1-E
.1-Ev1-Ejercicios de Pr
jercicios de Programació
ogramación con Estru
n con Estructuras de Da
cturas de Datos
tos
en Java
en Java
Presentado por:
Presentado por:
Leonardo Moreno Vargas
Leonardo Moreno Vargas
Málaga, Santander
Málaga, Santander
2018
2018
Ejercicios de Programación con Estructuras de Datos en Java
Ejercicios de Programación con Estructuras de Datos en Java
1
1.. En una competencia participan N atletas de los cuales es importante conocer suEn una competencia participan N atletas de los cuales es importante conocer su nombre, nacionalidad y su tiempo. Desarrolle una aplicación que presente el
nombre, nacionalidad y su tiempo. Desarrolle una aplicación que presente el siguiente menú:
siguiente menú:
Registrar Atleta: Debe solicitar el nombre, la nacionalidad y el tiempo delRegistrar Atleta: Debe solicitar el nombre, la nacionalidad y el tiempo del atleta
atleta
Datos Campeón: Muestra el nombre, la nacionalidad y el tiempo del atletaDatos Campeón: Muestra el nombre, la nacionalidad y el tiempo del atleta cuyo tiempo es el menor de todos.
cuyo tiempo es el menor de todos.
Atletas por país: Solicita el nombre del país y muestra los nombres deAtletas por país: Solicita el nombre del país y muestra los nombres de todos los atletas de ese país.
todos los atletas de ese país.
Tiempo promedio de todos los atletas:Tiempo promedio de todos los atletas: Muestra el tiempo promedio de Muestra el tiempo promedio de los atletas registrados.
los atletas registrados.
Características de la aplicación:Características de la aplicación: La aplicación debe desarrollarse de La aplicación debe desarrollarse de manera orientada a objetos, incluyendo las clases Atleta, Competencia y manera orientada a objetos, incluyendo las clases Atleta, Competencia y Principal.
Principal.
Debe Debe emplear emplear arreglos arreglos para para su su solución.solución.
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
public class EjercicioUno { public class EjercicioUno {
public static void main(String[] args) { public static void main(String[] args) { //Declaración de variables //Declaración de variables String nombre[]; String nombre[]; String nacionalidad[]; String nacionalidad[]; double tiempo[]; double tiempo[]; int totalAtletas; int totalAtletas; double may=0; double may=0; String nombremin=null; String nombremin=null;
String nacionalidadmin = null; String nacionalidadmin = null;
String nacionalidadpais; String nacionalidadpais; String nombreatletapais; String nombreatletapais; double sumTiempo=0; double sumTiempo=0; double tiempoPromedio; double tiempoPromedio; //Menu //Menu
JOptionPane.showMessageDialog(null, "competencia\n"+"1. registrar Atleta\n"+"2. JOptionPane.showMessageDialog(null, "competencia\n"+"1. registrar Atleta\n"+"2. Datos del campeon\n"+"3. Atletas por pais\n"
Datos del campeon\n"+"3. Atletas por pais\n"
+"4. Tiempo pormedio de todos los atletas\n"+"5. Salir"); +"4. Tiempo pormedio de todos los atletas\n"+"5. Salir");
totalAtletas = Integer.parseInt(JOptionPane.showInputDialog(null,"Ingrese la totalAtletas = Integer.parseInt(JOptionPane.showInputDialog(null,"Ingrese la cantidad de atletas")); cantidad de atletas")); nombre=new String[totalAtletas]; nombre=new String[totalAtletas]; nacionalidad=new String[totalAtletas]; nacionalidad=new String[totalAtletas]; tiempo=new double[totalAtletas]; tiempo=new double[totalAtletas]; //Registrar Atletas //Registrar Atletas
JOptionPane.showMessageDialog(null,"1. Registrar Atleta"); JOptionPane.showMessageDialog(null,"1. Registrar Atleta"); for(int i=0; i<totalAtletas; i++){
for(int i=0; i<totalAtletas; i++){
nombre[1]=JOptionPane.showInputDialog(null,"ingrese el nombre del atleta:"); nombre[1]=JOptionPane.showInputDialog(null,"ingrese el nombre del atleta:"); nacionalidad[i]=JOptionPane.showInputDialog(null, "ingrese la nacionalidad del nacionalidad[i]=JOptionPane.showInputDialog(null, "ingrese la nacionalidad del atleta:");
atleta:");
tiempo[i]=Double.parseDouble(JOptionPane.showInputDialog(null, "Ingrese el tiempo[i]=Double.parseDouble(JOptionPane.showInputDialog(null, "Ingrese el tiempo en minutos del atleta:"));
tiempo en minutos del atleta:"));
sumTiempo=sumTiempo+tiempo[i]; sumTiempo=sumTiempo+tiempo[i]; }}
//Datos Campeon //Datos Campeon
JOptionPane.showMessageDialog(null, "2. Datos del campeon"); JOptionPane.showMessageDialog(null, "2. Datos del campeon"); for (int i=0; i<totalAtletas; i++){
for (int i=0; i<totalAtletas; i++){ if
if (tiempo[i]>(tiempo[i]>may){may){ may=tiempo[i]; may=tiempo[i]; nombremin=nombre[i]; nombremin=nombre[i]; nacionalidadmin=nacionalidad[i]; nacionalidadmin=nacionalidad[i]; }}
}}
JOptionPane.showMessageDialog(null,"El nombre del atleta campeon JOptionPane.showMessageDialog(null,"El nombre del atleta campeon es"+nombremin + "de nacionalidad"+nacionalidadmin+"cuyo timepo fue"+may); es"+nombremin + "de nacionalidad"+nacionalidadmin+"cuyo timepo fue"+may); //Atletas por pais
//Atletas por pais
JOptionPane.showMessageDialog(null, "3. Atletas por pais"); JOptionPane.showMessageDialog(null, "3. Atletas por pais");
nacionalidadpais=JOptionPane.showInputDialog(null,"ingrese la nacionalidad para nacionalidadpais=JOptionPane.showInputDialog(null,"ingrese la nacionalidad para mostrar los atletas de ese pais:");
mostrar los atletas de ese pais:"); for (int i=0; i<totalAtletas; i++){ for (int i=0; i<totalAtletas; i++){
if(nacionalidadpais==null ? nacionalidad[i]==null: if(nacionalidadpais==null ? nacionalidad[i]==null: nacionalidadpais.equals(nacionalidad[i])){ nacionalidadpais.equals(nacionalidad[i])){ nombreatletapais=nombre[i]; nombreatletapais=nombre[i];
JOptionPane.showMessageDialog(null, "El nombre de un atleta de JOptionPane.showMessageDialog(null, "El nombre de un atleta de nacionalidad"+nacionalidadpais+"es"+nombreatletapais);
nacionalidad"+nacionalidadpais+"es"+nombreatletapais); }}
}}
//Promedio del tiempo de los atletas //Promedio del tiempo de los atletas
JOptionPane.showMessageDialog(null,"4. Tiempo promedio de todos los atletas"); JOptionPane.showMessageDialog(null,"4. Tiempo promedio de todos los atletas"); tiempoPromedio=sumTiempo/totalAtletas;
tiempoPromedio=sumTiempo/totalAtletas;
JOptionPane.showMessageDialog(null,"El timepo promedio de los atletas JOptionPane.showMessageDialog(null,"El timepo promedio de los atletas fue"+tiempoPromedio); fue"+tiempoPromedio); JOptionPane.showMessageDialog(null,"5. Salir"); JOptionPane.showMessageDialog(null,"5. Salir"); }} }} 2.
2. Desarrolle una aplicación utilizando colecciones, la cual permita tener lasDesarrolle una aplicación utilizando colecciones, la cual permita tener las siguientes funcionalidades:
siguientes funcionalidades:
•
• Insertar Insertar elementos elementos (al (al inicio, inicio, al al final).final).
•
•
• Obtener Obtener el el valor valor de de una una posición posición determinada.determinada.
•
• Asignar Asignar valor valor a a una una posición posición determinada.determinada.
•
• Calcular Calcular la la sumatoria sumatoria de de los los valores valores de de todos todos los los elementos.elementos.
•
• Calcular Calcular el el promedio promedio de de los los valores valores de de todos todos los los elementos.elementos.
•
• Obtener Obtener el el número número de de elementos.elementos.
Contar Contar el el número número de de valores valores igual igual a a cero cero (0).(0).
•
• Calcular Calcular la la suma suma de de los los pares.pares.
•
• Contar Contar el el número número de de repeticiones repeticiones dado dado un un número.número.
•
• Modificar Modificar el el valor valor de de una una posición posición por por otro otro valor valor suministrado.suministrado.
•
• Cambiar Cambiar todo todo el el contenido.contenido.
•
• Invertir Invertir el el arreglo.arreglo.
•
• Obtener Obtener el el mayor mayor valor.valor.
•
• Obtener Obtener el el menor menor valor.valor.
•
• Obtener Obtener los los primeros primeros n n elementos elementos del del arreglo.arreglo.
•
• Obtener Obtener los los últimos últimos n n elementos elementos del del arreglo.arreglo.
•
• Indicar Indicar si si es es palíndromo.palíndromo.
•
• Indicar Indicar si si un un número número se se encuentra encuentra dentro dentro del del arreglo.arreglo.
•
• Mostrar Mostrar el el contenido contenido del del arreglo.arreglo.
package ejerciciodos; package ejerciciodos;
import java.util.*; import java.util.*;
public class EjercicioDos { public class EjercicioDos {
ArrayL
ArrayList numeros ist numeros = new Ar= new ArrayList(rayList(););
public void insertarAlFinal(int valor) { public void insertarAlFinal(int valor) {
numeros.add(valor); numeros.add(valor); }}
public void insertarAlPrincipio(int valor){ public void insertarAlPrincipio(int valor){
numeros.add
numeros.add(0, (0, valor);valor); }}
public void mostrarContenido(){ public void mostrarContenido(){
System.out.println(numeros); System.out.println(numeros); }}
public void agregarAlFinal(Object valor){ public void agregarAlFinal(Object valor){
numeros.add(valor); numeros.add(valor); }}
public void eliminar(int valor){ public void eliminar(int valor){
numeros.remove(valor); numeros.remove(valor); }}
public void setValor(int posicion, int valor){ public void setValor(int posicion, int valor){
numeros.add(posicion, valor); numeros.add(posicion, valor); }}
int getValor(int valor){ int getValor(int valor){
return (int)(numeros.get(valor)); return (int)(numeros.get(valor)); }} int cuentaElementos(){ int cuentaElementos(){ int valor=numeros.size(); int valor=numeros.size(); return valor; return valor; }} int getSumatoria(){ int getSumatoria(){ int suma=0; int suma=0;
for(Object numero : numeros){ for(Object numero : numeros){ suma = suma + (int) numero; suma = suma + (int) numero;
}} return suma; return suma; }} double getPromedio(){ double getPromedio(){
int
int suma=0;suma=0;
double promedio=0; double promedio=0;
for(Object numero : numeros){ for(Object numero : numeros){ suma = suma+(int) numero; suma = suma+(int) numero;
promedio=suma/numeros.size(); promedio=suma/numeros.size(); }} return promedio; return promedio; }} int cuentaCeros(){ int cuentaCeros(){ int cantidad=0; int cantidad=0; for(Object numero:numeros){ for(Object numero:numeros){ if((int)numero==0){ if((int)numero==0){ cantidad=cantidad+1; cantidad=cantidad+1; }} }} return cantidad; return cantidad; }} int sumaPares(){ int sumaPares(){ int par=0; int par=0;
for (Object numero:numeros){ for (Object numero:numeros){
if(((int)numero%2)==0){ if(((int)numero%2)==0){ par=par+(int)numero; par=par+(int)numero; }} }} return par; return par; }}
int cuentaRepeticiones(int num){ int cuentaRepeticiones(int num){ int cuenta=0;
int cuenta=0;
for(Object numero:numeros){ for(Object numero:numeros){
if((int)numero==2){ if((int)numero==2){ cuenta=cuenta+1; cuenta=cuenta+1; }} }} return cuenta; return cuenta; }}
public void reemplazarValor(int antiguoValor, int nuevoValor){ public void reemplazarValor(int antiguoValor, int nuevoValor){ numeros.set(antiguoValor, nuevoValor);
numeros.set(antiguoValor, nuevoValor); }}
public void reemplazarTodo(){ public void reemplazarTodo(){ numeros.clear(); numeros.clear(); numeros.add(9); numeros.add(9); numeros.add(10); numeros.add(10); numeros.add(11); numeros.add(11); }} int getMayor(){ int getMayor(){ int mayor=0; int mayor=0; for(Object numero:numeros){ for(Object numero:numeros){ if((int)numero>=mayor){ if((int)numero>=mayor){ mayor=(int)numero; mayor=(int)numero; }} }} return mayor; return mayor; }} int getMenor(){ int getMenor(){ int m
int menor=11enor=11;;
for(Object numero:numeros){ for(Object numero:numeros){ if((int)numero<=menor){ if((int)numero<=menor){ menor=(int)numero; menor=(int)numero; }}
}}
return menor; return menor; }}
boolean buscar(int numero){ boolean buscar(int numero){
return numeros.contains(numero); return numeros.contains(numero); }}
}}
public class TestMiColeccion{ public class TestMiColeccion{
public static void main(String[]args){ public static void main(String[]args){
System.out.println("Mi Coleccion 1"); System.out.println("Mi Coleccion 1"); MiColeccion mc1=new MiColeccion(); MiColeccion mc1=new MiColeccion(); mc1.insertarAlFinal(1); mc1.insertarAlFinal(1); mc1.insertarAlFinal(2); mc1.insertarAlFinal(2); mc1.insertatAlFinal(3); mc1.insertatAlFinal(3); mc1.insertatAlPrincipio(4); mc1.insertatAlPrincipio(4); mc1.mostrarContenido(); mc1.mostrarContenido(); mc1.agregarAlFinal(9); mc1.agregarAlFinal(9); mc1.agregarAlFinal(10); mc1.agregarAlFinal(10); mc1.agregarAlFinal(11); mc1.agregarAlFinal(11); mc1.mostrarContenido(); mc1.mostrarContenido(); mc1.eliminar(0); mc1.eliminar(0); mc1.eliminar(5); mc1.eliminar(5); mc1.mostrarContenido(); mc1.mostrarContenido(); mc1.setValor(0,0); mc1.setValor(0,0); mc1.setValor(6,0); mc1.setValor(6,0); mc1.mostrarContenido(); mc1.mostrarContenido();
System.out.println("En la posicion 4 ests el"+mc1.getValor(4)); System.out.println("En la posicion 4 ests el"+mc1.getValor(4));
System.out.println("La sumatoria de sus elementos es:"+mc1.getSumatoria()); System.out.println("La sumatoria de sus elementos es:"+mc1.getSumatoria());
System.out
System.out.println("E.println("El promedil promedio de o de sus elesus elementos esmentos es:"+mc1.getP:"+mc1.getPromedio());romedio()); System.out.println("En la Coleccion hay"+mc1.cuentaElementos()+"elementos"); System.out.println("En la Coleccion hay"+mc1.cuentaElementos()+"elementos"); System.out.println("y hay"+mc.cuentaCeros()+"ceros");
System.out.println("y hay"+mc.cuentaCeros()+"ceros");
System.out.println("la sumatoria de los pares es"+mc1.sumaPares()); System.out.println("la sumatoria de los pares es"+mc1.sumaPares());
System.out.println("El numero 2 esta"+mc1.cuentaRepeticiones(2)+"veces"); System.out.println("El numero 2 esta"+mc1.cuentaRepeticiones(2)+"veces"); mc1.reemplazarValor(0,9); mc1.reemplazarValor(0,9); mc1.mostrarContenido(); mc1.mostrarContenido(); mc1.reemplazarTodo(); mc1.reemplazarTodo(); mc1.mostrarContenido(); mc1.mostrarContenido();
System.out.println("El mayor elemento es:"+mc1.getMayor()); System.out.println("El mayor elemento es:"+mc1.getMayor()); System.out.println("El mayor elemento es:"+mc1.getMenor()); System.out.println("El mayor elemento es:"+mc1.getMenor()); mc1.insertarAlFinal(1); mc1.insertarAlFinal(1); mc1.insertarAlFinal(2); mc1.insertarAlFinal(2); mc1.insertarAlFinal(3); mc1.insertarAlFinal(3); mc1.mostrarContenido(); mc1.mostrarContenido(); System.out.println("Esta el 3 en la lista?"+mc1.buscar(3)); System.out.println("Esta el 3 en la lista?"+mc1.buscar(3)); }} }}