Está en la página 1de 18

Carátula para entrega de prácticas

Facultad de Ingeniería Laboratorio de docencia

Laboratorios de computación
salas A y B
Profesor: M.I .Ernesto Alcántara Concepción 

Asignatura: Programación Orientada a Objetos 

Grupo: 02 

No. de Práctica(s): 3. UTILERÍAS Y CLASES DE USO 


GENERAL  

Integrante(s): De los Cobos García Carlos Alberto 


Domínguez Sanagustín Said Iván 
Rojas Hernandez Mariana Guadalupe 
Zuñiga Salgado Luis Eduardo 

No. de Equipo de cómputo empleado:  

No. de Lista o Brigada: G 

Semestre: 2021-1 

Fecha de entrega: 23 de Octubre del 2020 

Observaciones:  

CALIFICACIÓN:______
ÍNDICE

​ pág. 

Objetivo…………………………………………..…………………………………...…......(3) 

Introdución…………………………………………………………….……..……………...(3) 

Actividades…………………………………………………………………………...……...(4) 

Ejercicio 1………………………………………………………………………..…..(4) 

Ejercicio 2……………………………………………………………………...…….(5) 

Ejercicio 3………………………………………………………………………...….(6) 

Ejercicio 4…………………………………………………………………………....(8) 

Ejercicio 5…………………………………………………………………………..(10) 

Ejercicio 6…………………………………………………………………………. (13) 

Ejercicio 7…………………………………………………………………………..(15) 

Conclusion………………………………………………...…………………………..........(17) 

Referencias…………………………………………………………………..……………. (18) 

   

2
OBJETIVO.
Utilizar bibliotecas propias del lenguaje para realizar algunas tareas comunes y recurrentes. 

INTRODUCCIÓN.
Ivar  Jacobson  sostenía  que la reutilización del software es una de las mejores aproximaciones 
para  detener  la  tan  afamada  crisis  del  software,  especialmente  como  compañera  inseparable 
del  paradigma  orientado  a objetos. La reutilización es considerada como una posible solución 
para dar respuesta a un mercado que exige productos y servicios cada vez más fiables, baratos 
y entregados a tiempo. 

La  plataforma  Java  proporciona  un  conjunto  de  clases,  interfaces  y  paquetes  predefinidos 
para  facilitar  el  desarrollo  de  clases  y  aplicaciones.  Abarcan  temas  como  comunicaciones, 
web, diseño gráfico, utilidades matemáticas, contenedores genéricos y muchas más. 

Para  utilizar  algunas  de  ellas  es  necesario  importar  el  paquete  en  el  que  se  encuentran, 
indicandolo con la sentencia ​import​ seguida del nombre del paquete y de la clase a importar.  
Puede  encontrarse  información  de  todas  las  clases, junto con sus métodos, en la API de Java: 
http://java.sun.com/javase/6/docs/api/ 
Las  siglas  API  tienen  su  origen  en  ​Application  Programming  Interface  ​y  consiste  en  un 
conjunto de librerías de código Java. 

Arreglos.  
Un  arreglo  es  un  objeto en el que se puede almacenar un conjunto de datos de un mismo tipo. 
Cada  uno  de  los  elementos  del  arreglo  tiene  asignado  un  índice  numérico  según su posición, 
siendo 0 el primer índice. 

Wrapper.  
El API de Java incorpora las clases envoltorio (wrapper class), que no son más que dotar a los 
datos primitivos con un envoltorio que permite tratarlos como objetos.  

Colecciones.  
Una  colección  representa  un  grupo  de  objetos.  Estos  objetos son conocidos como elementos. 
Cuando  queremos  trabajar  con  un  conjunto  de  elementos,  necesitamos  un  almacén  donde 
poder  guardarlos.  En  Java,  se  emplea  la  interfaz  genérica  Collection  para  este  propósito. 
Gracias  a  esta  interfaz, podemos almacenar cualquier tipo de objeto y podemos usar una serie 
de  métodos  comunes,  como  pueden  ser:  añadir,  eliminar,  obtener  el  tamaño  de  la  colección. 
Partiendo  de  la  interfaz  genérica  Collection extienden otra serie de interfaces genéricas, estas 
subinterfaces aportan distintas funcionalidades sobre la interfaz anterior. 

3
ACTIVIDADES.
❖ - Conocer las bibliotecas del lenguaje. 
❖ - Utilizar algunas clases propias de la biblioteca del lenguaje

Ejercicio 1.  Escriba  una  aplicación  que  pruebe  si  los  ejemplos  de  las  llamadas  a  los 
métodos de la clase Math que se muestran a continuación: 

Mariana  Rojas.  Se  creó  una  clase  pública  ClaseM  en  la  cual  se  le  pide  al  usuario  ingresar 
dos  valores  (X  y  Y)  los  cuales  se  usarán  para  comprobar  las  funciones  de  la  clase  Math  en 
java,  al  final  se  imprimen  los  resultados  llamando  a la Clase Math en el método que vamos a 
comprobar evaluado en X y el último en X y Y.  

import java.util.Scanner;

public class ClaseM {

public static void main (String[] args) {

Scanner entrada = new Scanner(System.in);

float x,y;

System.out.printf("Ingrese el numero 'x' a evaluar en las


funciones de la biblioteca Math.\n");
x = entrada.nextFloat();

System.out.printf("Ingrese un segundo numero 'y' que serivira


para comprobar la funcion max en la clase Math.\n");
y = entrada.nextFloat();

4
System.out.printf("El valor absoluto de x es:
%.2f\n",Math.abs(x));
System.out.printf("El numero redondeado al entero mas pequeño y
mayor x es: %.3f\n",Math.ceil(x));
System.out.printf("El coseno trigonometrico de x EN RADIANES es:
%f\n",Math.cos(x));
System.out.printf("El resultado de la funcion exponencial
elevada a x es: %f\n",Math.exp(x));
System.out.printf("El numero redondeado al entero mas grande
menor que x es: %.2f\n",Math.floor(x));
System.out.printf("El logaritmo natural de x en base e es:
%.2f\n",Math.log(x));
System.out.printf("El valor mas grande de 'x' y 'y' es:
%.4f\n",Math.max(x,y));
}
}

Ejercicio 2.  Escriba  una  aplicación  completa  en  Java  que  pida  al  usuario  el  radio  de  tipo 
double  de  una  esfera,  y  que  llame  al  método  volumenEsfera  para  calcular  y  mostrar  el 
volumen de esa esfera. Utilice la siguiente asignación para calcular el volumen: 

double volumen = ( 4.0 / 3.0 ) * Math.PI * Math.pow( radio, 3 ) 

Carlos De los Cobos.​ ​Se utilizó la sentencia “Math.PI” para calcular el volumen, en un 
método que recibe el radio como parámetro. 

import java.lang.Math;
public class Esfera{
private double radio;
public void asignarRadio(double radio){
this.radio=radio;
}
public double obtenerRadio(){
return radio;
}

5
public double volumenEsfera(double radio){
return (4.0/3.0) * Math.PI * Math.pow(radio,3);
}
}
import java.util.Scanner;
public class Ej_2{
public static void main(String[] args) {
System.out.println("\tVolumen de una esfera\n");
Scanner entrada = new Scanner(System.in);
Esfera esfera1 = new Esfera();
System.out.println("Ingrese el radio de la esfera\n");
esfera1.asignarRadio(entrada.nextDouble());
System.out.printf("Radio=%.2f
Volumen=%.4f\n",esfera1.obtenerRadio(),esfera1.volumenEsfera(esfera1.obtenerR
adio()));
System.out.println("\n\tFin de ejercicio");
}
}

Ejercicio 3.  ​Una  aplicación  del  método  Math.floor  es  redondear  un  valor  al  siguiente 
entero. La instrucción 
 
y = Math.floor( x + 0.5 ); 
 
redondea  el  número  x  al  entero  más  cercano  y asigna el resultado a y. Escriba una aplicación 
que  lea  valores  double  y  que  utilice  la  instrucción  anterior  para  redondear  cada  uno  de  los 
números  a  su  entero  más  cercano  y  conviértelo  a  un  tipo  de  dato  entero.  Para  cada  número 
procesado, muestre tanto el número original como el redondeado. 

Said  Dominguez.  ​Se  generó  una  clase  Redondear  en  donde  usamos  el metodo Math.floor( x 
+  0.5  )  para  poder  redondear  el  número  entero más cercano al número decimal ingresado. En 
la clase Redondeo se llama a un objeto para poder obtener el valor deseado. 

6
import java.util.Scanner;

public class Redondear{


public void Redondear(){

double x, y;
Scanner entrada = new Scanner(System.in);
System.out.print("\nIntroduzca un numero decimal: ");
x = entrada.nextDouble();
y = Math.floor( x + 0.5 );

System.out.printf("\nEl numero original es %.2f, el numero ", x);


System.out.printf("redondeado es %.2f", y);
}
}

public class Redondeo{


public static void main(String args[]) {
Redondear Decimal = new Redondear();
Decimal.Redondear();
}
}

Luis Zuñiga​. Para resolverlo se uso un casteo directo sobre la variable ​double y se almacenó
en una variable tipo ​int​.

import java.util.Scanner;
class Rendondear{
public static void main(String[] a) {
Scanner scan = new Scanner(System.in);
int i;
double num;
System.out.println("Ingrese un numero decimal: ");
num= scan.nextDouble();
num=Math.floor(num+0.5);
i= (int)num;
System.out.printf("\nEl numero final es: %d", i);
}
}

7
Ejercicio 4.  Escriba  un  método  llamado  minimoTres  que  devuelva  el  menor  de  tres 
números  de  punto  flotante. Use el método Math.min para implementar minimo3. Incorpore el 
método  en  una  aplicación  que  reciba  como  entrada  tres  valores  por  parte  del  usuario, 
determine el valor menor y muestre el resultado. 

Said  Dominguez​.  ​Se  generó  la  clase  Minimo  que  nos  pide  ingresar  tres  números  double, 
luego  se  definió  minimoTres  que  llama  al  método  Math.min  para  llamar  al  objeto  que  nos 
regresa el valor mínimo de los tres números ingresados   

public class MinimoTres {


public double minimoTres( double x, double y, double z ){
return Math.min( x, Math.min( y, z ) );
}
}

import java.util.Scanner;
public class Minimo{

public static void main(String args[]){

Scanner entrada = new Scanner(System.in);


double a, b, c;
MinimoTres Numero = new MinimoTres();

System.out.print("\nIntroduzca tres numeros decimales: \n");


a = entrada.nextDouble();
b = entrada.nextDouble();
c = entrada.nextDouble();

System.out.printf("\nEl numero menor es: %.2f\n",


Numero.minimoTres(a,b,c));
}
}

8
Luis  Zuñiga.  Un  pequeño  método que llame a Math.min dentro de sí mismo para realizar las 
comparaciones entre si una vez que estas hayan sido realizadas por primera vez. 
import java.util.Scanner;
class Minimo3{
public static void main(String[] ber) {
float a,b,c,d;
Scanner scan= new Scanner(System.in);
System.out.println("Indique el 1er numero: ");
a= scan.nextFloat();
System.out.println("Indique el 2do numero: ");
b= scan.nextFloat();
System.out.println("Indique el 3er numero: ");
c= scan.nextFloat();
d=Math.min(Math.min(a, b),Math.min(c, b));
System.out.printf("%f",d);
}
}
 

 
 
 
 
 

9
Ejercicio 5.  Del  ejemplo  visto  en  clase  modifícalo  para  que  pueda  recibir  los  datos  de 
temperatura como parámetros desde la línea de comando.  
 

Mariana  Rojas. ​El  código  que  modifiqué  fue  PruebaEstacion  en  el  cual  declare  el  arreglo 
temperatura2  al  cual  se  le  asignó un tamaño de 10, y por último con ayuda de un ciclo four le 
pedí al usuario que ingresará las diez temperaturas a analizar. 

public class EstacionClima{


private String nombre;
private String hubicacion;
private double[] temperatura= new double[10];
private double[] humdadRelativa= new double[10];

public double tempMax(){


double maximo = temperatura[0];
for (int i = 0; i < 10; i++){
maximo=Math.max(maximo,temperatura[i]); //utilizando el
metodos de la clase Math
}
return maximo;
}
public double tempMin(){

10
double minimo = temperatura[0];
for (int i = 0; i < 10; i++){
minimo=Math.min(minimo,temperatura[i]);
}
return minimo;
}
public void guardarTemperatura(String[] temperatura2){
for (int i = 0; i < 10; i++){
double datoNumerico1 =
Double.parseDouble(temperatura2[i]);
System.out.printf("\n%f", datoNumerico1);
this.temperatura[i]=datoNumerico1;
}
}
}

import java.util.Scanner;

public class PruebaEstacion {


public static void main(String[] args) {

Scanner entrada = new Scanner(System.in);


EstacionClima estacion= new EstacionClima();

String temperatura2[] = new String[10];

System.out.printf("Ingrese las 10 temperaturas a analizar\n");


for(int i = 0; i < 10; i++) {
System.out.printf((i+1)+". Ingrese una temperatura: \n");
temperatura2[i] = entrada.next();
} // Fin for

estacion.guardarTemperatura(temperatura2);
System.out.printf("\nLa temperatura Maxima es; %f \n",
estacion.tempMax());
System.out.printf("\nLa temperatura Minima es; %f \n",
estacion.tempMin());
}
}

11
Carlos  De  los  Cobos​.  Solamente  se  modificó  el  arreglo  de  temperaturas,  de  modo  que,  con 
ayuda  de  Scanner,  se  pudiera  introducir  cada  una  de  las  temperaturas  en  el  arreglo  y 
posteriormente utilizar el método para encontrar la temperatura máxima entre todas.

import java.util.Scanner;
public class PuebaEstacion{
public static void main(String[] agrs){
System.out.println("\tEstacion Clima\n");
Scanner entrada = new Scanner(System.in);
EstacionClima estacion= new EstacionClima();
double [] temperatura2 = new double[10];
System.out.println("Introduzca 10 temperaturas: \n");
for(short i=0;i<10;i++){
temperatura2[i] = entrada.nextFloat();
}

estacion.GuardarTemperatura(temperatura2);

12
System.out.printf("\nLa temperatura Maxima es; %.2f \n",
estacion.TempMax());

 
 

Ejercicio 6.​ ​ Realice las siguientes tareas para un arreglo llamado fracciones: 

● Declare una constante llamada TAMANIO_ARREGLO que se inicialice con 


10. 
● Declare un arreglo con TAMANIO_ARREGLO elementos de tipo double, e 
inicialice los elementos con 0.  
● Haga referencia al elemento 4 del arreglo. 
● Asigne el valor 1.667 al elemento 9 del arreglo. 
● Asigne el valor 3.333 al elemento 6 del arreglo. 
● Sume todos los elementos del arreglo, utilizando una instrucción for. Declare 
la variable entera x como variable de control para el ciclo. 

Carlos De los Cobos.​ ​Se declaró un arreglo de 10 elementos para el ejercicio, el cual se 
inicializa en 0 en cada una de sus posiciones. Posteriormente, se realizaron los movimientos 
solicitados por el ejercicio y por último, con un método para sumar los elementos, se obtiene 
el resultado mostrado. 

public class Ej_6{


public static void main(String[] args) {
final int TAMANIO_ARREGLO = 10;
double [] arr = new double[TAMANIO_ARREGLO];
double elem4 = arr[3];

13
arr[8] = 1.667;
arr[7] = 3.333;
double suma = 0;
for(int x=0;x<TAMANIO_ARREGLO;x++){
System.out.printf("Elemento %d=%.3f\n",x+1,arr[x]);
suma+=arr[x];
}
System.out.printf("La suma de los elementos del arreglo es:
%.3f",suma);
}
}

Mariana  Rojas​.  Se  hizo  una  clase  ArregloFraciones  en  la  cual  se  siguieron  los  pasos 
indicados y al final se imprimieron los elementos del arreglo y el resultado de la suma.  

public class ArregloFracciones {

public static void main (String args[]) {

double suma = 0;
final int tamanio_arreglo = 10;
double [] fracciones = new double[tamanio_arreglo];

double cuatro = fracciones[3];

fracciones[8] = 1.667;
fracciones[5] = 3.333;

for(int x = 0; x < tamanio_arreglo; x++) {


System.out.printf("El elemento %d tiene el valor de
%.4f\n",(x+1),fracciones[x]);
suma = suma + fracciones[x];
}
System.out.printf("La suma total de todos los elementos del arreglo es
= %.4f\n",suma);
}
}

14
 

Ejercicio 7.​ Se supone que el siguiente programa invierte el orden de los elementos en el 
arreglo simpsons. Compila y ejecuta, pero no funciona correctamente. 

a) ¿Qué imprime el programa? 


b) Arregle el programa escribiendo una o más líneas de código alternativo para la línea 
list = temp;. No se permite modificar ningún otro código; simplemente proporcione 
un código alternativo para esa línea. 

Said Dominguez. 

a) Al compilar y ejecutar el programa nos muestra la lista de nombres sin invertir 

15
 

b) Para  corregir  este  problema  se  uso  el  método  System.arraycopy(temp,  0,  list,  0,  3); 
Este  método  copia  n  datos del array de origen a un array de destino en la posición que 
le asignemos 

public class Reverse


{
public static void main(String[] args)
{
String[] simpsons = {"Homer", "Flanders", "Apu"};
reverse(simpsons);
System.out.println(
simpsons[0] + " " + simpsons[1] + " " + simpsons[2]);
}// end main
public static void reverse(String[] list)
{
String[] temp = new String[list.length];
for (int i=0; i<list.length; i++)
{
temp[i] = list[list.length-i-1];
}
System.arraycopy(temp, 0, list, 0, 3);
} // end reverse
} // end class Reverse

Luis Zuñiga.

a) El programa original imprime la lista original, no la lista revertida.


b) La función System.arraycopy(); recibe 5 parámetros, el arreglo de origen, la posición
de origen, el arreglo destino, la posición inicial en el destino y el número de
elementos a copiar

public class Reverse{


public static void main(String[] args) {
String[] simpsons= {"Homer","Flanders","Apu"};
reverse(simpsons);

16
System.out.println(simpsons[0]+ " "+simpsons[1]+ "
"+simpsons[2]);
}//End of main
public static void reverse(String[] list) {
String[] temp= new String[list.length];
for (int i=0; i<list.length;i++) {
temp[i] = list[list.length-i-1];
}
System.arraycopy(temp, 0, list, 0, 3);
}

CONCLUSIÓN.

Se utilizaron las bibliotecas propias del lenguaje de manera satisfactoria, la clase Math es de
gran utilidad para poder realizar las operaciones matemáticas más habituales mediante
métodos bastante simples con lo cual se puede ahorrar tiempo y reducir las líneas de código.
Mediante arreglos y manejo de cadenas también pudimos notar una gran eficiencia al
momento de programar, ya que podemos almacenar un conjunto de datos de un mismo tipo y
trabajar con ellos de una forma más cómoda. Los wrappers tienen la utilidad de permitirnos
castear un tipo de dato a otro. Se diferencian de los datos primitivos en que estos tienen
métodos incluidos que facilitan su uso y casi todos tienen algún método para devolver el dato
que contienen como otro dato primitivo; la principal ventaja es que podemos tratar estos
nuevos datos convertidos como objetos y así poder aplicar métodos de manera eficiente.

Por lo tanto, con el uso de las bibliotecas propias o clases pre-construidas podemos mejorar la
calidad de los programas, ya que han sido probadas íntegramente, depuradas y sometidas a un
proceso de recuento para asegurar su funcionamiento y eficiencia.

17
REFERENCIAS.

● https://javiergarciaescobedo.es/programacion-en-java/2-clases-y-objetos/15-clases-pre
definidas  
● http://www.lcc.uma.es/~vicente/docencia/poo/teoria/poo_4_cbasic.pdf  
● Tema 5 Reutilización: Clases predefinidas ... - UniNEAwww.uninea.com.ar › 
descargas › download_file  
● https://formatalent.com/que-son-las-apis-de-java/  
● https://www.adictosaltrabajo.com/2015/09/25/introduccion-a-colecciones-en-java/  

18

También podría gustarte