0% encontró este documento útil (0 votos)
87 vistas5 páginas

Lab 01 EDA 2020

Este documento presenta los objetivos, temas y marco teórico de un laboratorio sobre elementos de programación. Los objetivos incluyen resolver ejercicios para desarrollar habilidades de diseño de algoritmos y aplicar conceptos de programación orientada a objetos. Los temas a tratar son estructuras algorítmicas, POO y paquetes. El marco teórico explica conceptos como tipos de datos, instrucciones, clases, métodos, y paquetes. Finalmente, se describen cuatro ejercicios prácticos sobre diseño de cl
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
87 vistas5 páginas

Lab 01 EDA 2020

Este documento presenta los objetivos, temas y marco teórico de un laboratorio sobre elementos de programación. Los objetivos incluyen resolver ejercicios para desarrollar habilidades de diseño de algoritmos y aplicar conceptos de programación orientada a objetos. Los temas a tratar son estructuras algorítmicas, POO y paquetes. El marco teórico explica conceptos como tipos de datos, instrucciones, clases, métodos, y paquetes. Finalmente, se describen cuatro ejercicios prácticos sobre diseño de cl
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 5

Estructura de Datos y Algoritmos Pág.

UNIVERSIDAD NACIONAL DE SAN AGUSTÍN


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS

LABORATORIO 01:

ELEMENTOS DE PROGRAMACIÓN

OBJETIVOS

• Resolver los ejercicios propuestos, para obtener expertise en el uso de técnicas de diseño
de algoritmos.
• Repasar y aplicar las estructuras algoritmicas de programación en la solución de
problemas.
• Aplicar conceptos básicos de POO.
o Declarar e implementar clases y crear objetos.
o Tener objetos como datos miembro
o Aplicar el concepto de Encapsulamiento, Agregación/Composición
• Crear paquetes con el objeto de modularizar y reutilizar código.

II

TEMAS A TRATAR

• Estructuras algorítmicas de programación


• Fundamentos de POO
• Paquetes

III

MARCO TEÓRICO
1. Estructuras algorítmicas de programación
• Abstraer los principios fundamentales de los capitulos 1, 2 de la bibliografía, tales como
los siguientes, que le permitan resolver los ejercicios propuestos:
o Datos, tipos de datos
o Instrucciones elementales
o Instrucciones compuestas
§ Secuencias
§ Condicionales
§ Bucles

2. Fundamentos de la POO

• Definición y uso de clases.

• Métodos constructores, setter y getter.

Karim Guevara Puente de la Vega Lab. 01


Estructura de Datos y Algoritmos Pág. 2

• Métodos de clase y de instancia


Un método es una abstracción de una operación que puede hacer o realizarse con un
objeto. Una clase puede declarar cualquier número de métodos que lleven a cabo
operaciones de lo más variado con los objetos. En esta sección los métodos se clasifican en
dos grupos: los métodos de instancia y los métodos de clase.

o Métodos de instancia
Los métodos de instancia operan sobre las variables de instancia de los objetos pero
también tienen acceso a las variables de clase. La sintaxis de llamada a un método de
instancia es:

objeto.metodo(parametros);

Por ejemplo, sea la clase


public class Cuenta{
private double saldo; //Variable de instancia
. . .
public double saldo() {
return this.saldo;
}

. . .
}

Ejemplos de llamada:
Cuenta c1 = new Cuenta ();

System.out.println("Cuenta con: " + c1.saldo() + " soles");

o Métodos de clase
En principio, los métodos de clase no operan sobre las variables de instancia de los
objetos. Los métodos de clase pueden trabajar con las variables de clase pero no pueden
acceder a las variables de instancia declaradas dentro de la clase. Los métodos de clase
también pueden ser llamados precediendolos con la clase.

Clase.metodo(parametros);

La palabra static determina la declaración de un método de clase. Por defecto, si no se


indica la palabra static, el método declarado se considera un método de instancia.

Por ejemplo:

public class Cuenta{


public static int totalCuentas=0; // Variable de clase
private double saldo;
. . .
public static void incCuentas () {
totalCuentas++;
}

. . .
}

Un ejemplo de llamada a este método sería:

Cuenta.incCuentas();

Karim Guevara Puente de la Vega Lab. 01


Estructura de Datos y Algoritmos Pág. 3

3. Paquetes
Los paquetes son el mecanismo que usa Java para facilitar la modularidad del código. Un
paquete puede contener una o más definiciones de interfaces y clases, distribuyéndose
habitualmente como un archivo. Para utilizar los elementos de un paquete es necesario
importar este en el módulo de código en curso, usando para ello la sentencia import.

Por ejemplo vamos a crear los siguientes paquetes:

IV

ACTIVIDADES - EJERCICIOS
Indicaciones para la entrega de las actividades y ejercicios
• La entrega se hará en un archivo que incluya una carpeta de nombre EjercicioNo por cada
ejercicio. En esta carpeta debe incluir los archivos .java correspondientes.

Ejercicio 1:

Escriba una clase Grafico que tenga un método dibujar que reciba como parámetro un caracter con
el cual imprima un cuadro, un óvalo, una flecha y un diamante usando ese caracter tal como se
muestra en la figura:

Ejercicio 2

Escriba una clase Numero que tenga como variable de instancia un entero valor, y los siguientes
metodos:
• Constructor: que reciba parámetros necesarios para inicializar el objeto que se esta
creando.
• Getter y Setter
• separar: este método debe separar el valor en sus dígitos individuales y debe imprimirlos
separando cada dígito de los demás por tres espacios. Por ejemplo, si el usuario escribe el
número 42339, el método debe debe imprimir:

Karim Guevara Puente de la Vega Lab. 01


Estructura de Datos y Algoritmos Pág. 4

• reemplazar: este método debe reemplazar un determinado digito del valor del objeto
Numero. Se le envia al método la posicion del digito a reemplazar y el dígito por el que
reemplzará. Si el valor del objeto no tiene la posición indicada, se debe de emitir un
mensaje de error.

Ejercicio 3:

El crecimiento explosivo de las comunicaciones de Internet y el almacenamiento de datos en


computadoras conectadas a Internet, ha incrementado de manera considerable los problemas de
privacidad. El campo de la criptografía se dedica a la codificación de datos para dificultar (y,
mediante los esquemas más avanzados, tratar de imposibilitar) su lectura a los usuarios no
autorizados.

Una compañía que desea enviar datos por Internet le ha solicitado implementar un paquete que le
permita cifrar y descifrar cierta informacion de modo que pueda transmitirla de manera segura.
Para esto tenga en cuenta que toda la información se envía como una cadena de números de
longitud multiplo de 4.

El paquete debe contener una clase Encriptar que tenga los métodos de clase siguientes:

• cifrar : recibe la cadena de números a cifrar utilizando el siguiente procedimiento para cada
grupo de 4 dígitos: reemplace cada dígito con el resultado de sumarle 7 y obtenga el
residuo después de dividir el nuevo valor entre 10. Después intercambie el primer dígito
con el tercero, y el segundo dígito con el cuarto. Concatene con el resultado del cifrado del
siguiente agrupameinto, y así sucesivamente hasta terminar con todos los agrupamientos.
Este método devuelve la cadena cifrada.
• descrifrar: este método debe recibir una cadena de números cifrada, y realizando el
proceso contrario al utilizado en el metodo cifrar, debe obtener la cadena de números
oririginal y devolverla.

Ejercicio 4:

Mientras se ejercita, puede usar un monitor de frecuencia cardiaca para ver que su corazón
permanezca dentro de un rango seguro sugerido por sus entrenadores y doctores. De acuerdo con
la Asociación American del Corazón (AHA) (https://international.heart.org), la fórmula para calcular
su frecuencia cardiaca máxima en pulsos por minuto es de 220 menos su edad en años. Su
frecuencia cardiaca esperada es un rango que está entre el 50 y el 85% de su frecuencia cardiaca
máxima. [Nota: estas fórmulas son estimaciones proporcionadas por la AHA. Las frecuencias
cardiacas máxima y esperada pueden variar de acuerdo con la salud, condición física y sexo del
individuo. Siempre debe consultar un médico o a un profesional de la salud antes de empezar o
modificar un programa de ejercicios.]

Dado el contexto anterior, se le pide que cree una clase llamada FrecuenciaCardiaca. Los atributos
de la clase deben incluir el primer nombre de la persona, su apellido y fecha de nacimiento (la cual
debe hacer referencia a un objeto de una clase Fecha que incluya atributos separados para el mes,
día y año de nacimiento). La clase FrecuenciaCardiaca debe tener un constructor que reciba todos
los datos para inicializar sus atributos. Para cada atributo debe proveer métodos getter y setter. La
clase también debe incluir un método que calcule y devuelva la edad de la persona (en años), uno
que calcule y devuelva la frecuencia cardiaca máxima de esa persona, y otro que calcule y devuelva
la frecuencia cardiaca esperada de la persona.

Ejercicio 5:

Karim Guevara Puente de la Vega Lab. 01


Estructura de Datos y Algoritmos Pág. 5

Un problema relacionado con la salud que ha estado últimamente en las noticias es la


sistematización de los registros médicos. Esta posibilidad se está tratando con mucho cuidado,
debido a las delicadas cuestiones de privacidad y seguridad, entre otras cosas. La sistematización
de los registros médicos puede facilitar a los pacientes el proceso de compartir sus perfiles e
historiales médicos con los diversos profesionales de la salud cuando requieran consultarlo. Esto
podría mejorar la calidad del servicio médico, ayudar a evitar conflictos de fármacos y
prescripciones erróneas, reducir los costos y, en emergencias, ayudar a salvar vidas.

En este contexto se le solicita que diseñe una clase inicial llamada PerfilMedico para una persona.
Los atributos de la clase deben llevar el primer nombre de la persona, su apellido, sexo, fecha de
nacimiento (representado por un objeto de una clase, como en el ejercicio anterior), altura (en
centímetros) y peso (en kilogramos). Su clase debe tener un constructor que reciba estos datos.
Para cada atributo, debe proveer los métodos setter y getter. La clase también debe tener métodos
que calculen y devuelvan la edad del usuario en años, la frecuencia cardiaca máxima y el rango de
frecuencia cardiaca esperada (vea el ejercicio anterior), además del índice de masa corporal (BMI
por sus siglas en ingles), cuyo calculo obedece a la formula siguiente:

𝑝𝑒𝑠𝑜𝐸𝑛𝐾𝑖𝑙𝑜𝑔𝑟𝑎𝑚𝑜𝑠
𝐵𝑀𝐼 =
𝑎𝑙𝑡𝑢𝑟𝑎𝐸𝑛𝑀𝑒𝑡𝑟𝑜𝑠 ∗ 𝑎𝑙𝑡𝑢𝑟𝑎𝐸𝑛𝑀𝑒𝑡𝑟𝑜𝑠

Escriba una clase Principal que a partir de su metodo main pida la información de la persona, cree
una instancia de un objeto de la clase PerfilMedico para esa persona e imprima la información de
ese objeto (debe contener el primer nombre de la persona, apellido, sexo, fecha de nacimiento,
altura y peso), y que después calcule e imprima la edad de esa persona en años, junto con el BMI,
la frecuencia cardiaca máxima y el rango de frecuencia cardiaca esperada. También debe mostrar
la tabla de valores del BMI siguiente:

Karim Guevara Puente de la Vega Lab. 01

También podría gustarte