BIENVENIDOS A ALGORÍTMICA Y PROGRAMACIÓN 1 (APO 1)
NIVEL 1
Mario José Villamizar Cano
Oficina ML-637
http://sistemas.uniandes.edu.co/~mj.villamizar24/dokuwiki/doku.php
Grupo de Tecnologías de Información y Comunicación (COMIT)
Departamento de Ingeniería de Sistemas y Computación
Universidad de los Andes, Bogotá D.C., Colombia
http://twitter.com/mariocloud
http://linkedin.com/in/mariojosevillamizarcano
REDES SOCIALES
NIVEL 1
INTRODUCCIÓN Y REGLAS DE JUEGO
Entrega del programa
Presentación del curso
Organización del curso (cronogramas)
Metodología
Reglas de juego
Medios de comunicación profesor-estudiante
Libro del curso
Monitores
Esquema de evaluación
NIVEL 1
PLAN DE TEMAS
NIVEL 1
ESQUEMA DE EVALUACIÓN
NIVEL 1
Proceso global de solución de un problema usando un programa de
computador
Analizar un problema simple que se va a resolver usando un
programa de computador
Explicar la estructura de un programa de computador
Completar una solución parcial a un problema
Utilizar un ambiente de desarrollo de programas y un espacio de
trabajo predefinido
NIVEL 1 – PROBLEMAS, SOLUCIONES Y PROGRAMAS
NIVEL 1
CASOS DE ESTUDIO
Caso de estudio 1: El Empleado
NIVEL 1
CASOS DE ESTUDIO
Caso de estudio 2: Simulador Bancario
NIVEL 1
CASOS DE ESTUDIO
Caso de estudio 3: El triángulo
NIVEL 1
HOJAS DE TRABAJO
Hoja de trabajo 1: La alcancía
NIVEL 1
HOJAS DE TRABAJO
Hoja de trabajo 2: La encuesta
NIVEL 1
PROCESO PARA SOLUCIONAR UN PROBLEMA
NIVEL 1
ETAPAS DEL PROCESO DE SOLUCIÓN A UN PROBLEMA
NIVEL 1
ANÁLISIS DEL PROBLEMA
Entender el problema del cliente y qué es lo que se quiere hacer.
La salida de esta etapa se denomina especificación del problema.
NIVEL 1
ANÁLISIS DEL PROBLEMA – REQUERIMIENTOS FUNCIONALES
Requerimiento funcional: Operación o servicio que el programa que se
va a construir debe proveer al usuario.
Elementos de un requerimiento funcional
Identificador y nombre
Resumen de la operación
Entrada
Resultados (modificación de un valor, cálculo de un valor, mezcla)
NIVEL 1
ANÁLISIS DEL PROBLEMA – EL PROBLEMA
EL EMPLEADO
NIVEL 1
ANÁLISIS DEL PROBLEMA – EL PROBLEMA
SIMULADOR BANCARIO
NIVEL 1
ANÁLISIS DEL PROBLEMA – EL PROBLEMA
EL TRIÁNGULO
NIVEL 1
ANÁLISIS DEL PROBLEMA – REQUERIMIENTOS FUNCIONALES
EJEMPLO DEL EMPLEADO
Requerimientos funcionales del ejemplo:
R1 - Ingresar la información del empleado
R2 - Actualizar el salario básico del empleado
R3 - Calcular la edad del empleado
R4 - Calcular de la antigüedad del empleado
R5 - Calcular las prestaciones de un empleado
NIVEL 1
ANÁLISIS DEL PROBLEMA – REQUERIMIENTOS FUNCIONALES
EJEMPLO 1
NIVEL 1
ANÁLISIS DEL PROBLEMA – REQUERIMIENTOS FUNCIONALES
EJEMPLO 2
NIVEL 1
ANÁLISIS DEL PROBLEMA – REQUERIMIENTOS FUNCIONALES
EJEMPLO 3
NIVEL 1
ANÁLISIS DEL PROBLEMA – MUNDO DEL PROBLEMA
Entendimiento detallado del mundo en el que ocurre el problema y
definición del Mundo del Problema. Para lograr esto se debe:
Identificar las entidades (clases)
Modelar las características (atributos, posibles valores)
Las relaciones entre las entidades
El modelo del mundo será expresado utilizando el lenguaje UML (Unified
Modeling Languaje)
NIVEL 1
ANÁLISIS DEL PROBLEMA – MUNDO DEL PROBLEMA
EJEMPLO DEL EMPLEADO
Empleado
nombre apellido sexo salario
Fecha
dia mes anio
fechaNacimiento
fechaIngreso
NIVEL 1
ANÁLISIS DEL PROBLEMA – REQUERIMIENTOS FUNCIONALES
EJEMPLO DEL TRIÁNGULO
Requerimientos funcionales del ejemplo:
R1 - Crear un nuevo triangulo
R2 - Calcular área del triangulo
R3 - Calcular perímetro del triángulo
R4 - Cambiar color relleno
R5 - Cambiar color de las líneas
NIVEL 1
ANÁLISIS DEL PROBLEMA – MUNDO DEL PROBLEMA
EJEMPLO DEL TRIÁNGULO
Triangulo Punto
x y
punto1
punto2
punto3
Color
rojo verde azul
colorLineas colorRelleno
NIVEL 1
ANÁLISIS DEL PROBLEMA – REQUERIMIENTOS FUNCIONALES
EJEMPLO DEL SIMULADOR BANCARIO
Requerimientos funcionales del ejemplo:
R1 - Consignar en la cuenta corriente
R2 - Consignar en la cuenta de ahorros
R3 - Invertir en un CDT
R4 - Calcular el saldo total de un cliente del banco
R5 - Avanzar la fecha de la simulación en un mes
R6 - Retirar de la cuenta de ahorros
R7 - Retirar de la cuenta corriente
R8 - Cerrar el CDT y pasar a la cuenta corriente
R9 - Dar el saldo de la cuenta corriente
R10 - Dar el saldo de la cuenta de ahorros
NIVEL 1
ANÁLISIS DEL PROBLEMA – MUNDO DEL PROBLEMA
EJEMPLO DEL SIMULADOR BANCARIO
NIVEL 1
CuentaBancaria
cedula nombre
CuentaCorriente
saldo corriente
Mes
mes
mesActual
mesApertura
CuentaAhorros
saldo interesMensual
CDT
valorInvertido interesMensual
ahorros
inversion
ANÁLISIS DEL PROBLEMA – REQUERIMIENTOS NO FUNCIONALES
Restricciones definidas por el cliente.
En este curso sólo se tendrán en cuenta requerimientos no funcionales
relacionados con la interacción del usuario y la visualización de la
información.
NIVEL 1
ETAPAS GENERALES DEL PROCESO DE SOLUCIÓN
A UN PROBLEMA
NIVEL 1
SOLUCIÓN A UN PROBLEMA
NIVEL 1
SOLUCIÓN A UN PROBLEMA
NIVEL 1
ETAPAS GENERALES DEL PROCESO DE SOLUCIÓN
A UN PROBLEMA
NIVEL 1
DISEÑO DE LA SOLUCIÓN
Interfaz de usuario
Arquitectura de la solución
Diseño de las clases
NIVEL 1
DISEÑO DE LA SOLUCIÓN – INTERFAZ DE USUARIO
NIVEL 1
DISEÑO DE LA SOLUCIÓN – INTERFAZ DE USUARIO (2)
NIVEL 1
DISEÑO DE LA SOLUCIÓN – ARQUITECTURA DE LA SOLUCIÓN
NIVEL 1
Todo el trabajo de los niveles 1 al 4 se
desarrolla en las clases que se encuentran
en este paquete
Para verificar que los ejercicios desde el nivel 1
hasta el 4 están bien, deben utilizar
las clases de este paquete.
NO deben modificar las clases de
este paquete durante TODO el curso.
Desde el nivel 1 hasta el nivel 4 NO deben
modificar las clases de este paquete.
ETAPAS GENERALES DEL PROCESO DE SOLUCIÓN
A UN PROBLEMA
NIVEL 1
ETAPAS GENERALES DEL PROCESO DE SOLUCIÓN
A UN PROBLEMA
NIVEL 1
CONSTRUCCIÓN DE LA SOLUCIÓN – TIPOS DE ARCHIVOS
NIVEL 1
CONSTRUCCIÓN DE LA SOLUCIÓN – ORGANIZACIÓN DE LOS
ELEMENTOS DE TRABAJO
NIVEL 1
CONSTRUCCIÓN DE LA SOLUCIÓN – ORGANIZACIÓN DE LOS
ELEMENTOS DE TRABAJO
NIVEL 1
ETAPAS GENERALES DEL PROCESO DE SOLUCIÓN
A UN PROBLEMA (4)
NIVEL 1
Laboratorio 1
N1_T1 - Uso básico de Eclipse.pdf
http://cupi2.uniandes.edu.co/sitio/imag
es/cursosCupi2/apo1/talleres/n1lab_20
061_MarcelaHernandez.pdf
NIVEL 1
PREGUNTAS
NIVEL 1
ALGORITMO E INSTRUCCIONES
Algoritmo: Conjunto ordenado de pasos o instrucciones que deben ser
realizados con el fin de solucionar un problema o requerimiento funcional.
Instrucción: Conjunto de expresiones y operadores aritméticos que hacen
parte de uno de los pasos ejecutados durante un algoritmo.
NIVEL 1
Algoritmo para ir a la universidad
• Instrucción 1: Levantarse
• Instrucción 2: Cepillarse
• Instrucción 3: Bañarse
• Instrucción 4: Vestirse
• Instrucción 5: Desayunar
• Instrucción 6: Recoger el bolso o maletín
• Instrucción 7: Despedirse de la familia
• Instrucción 8: Salir y tomar el bus, ó sacar e ir en el carro
• Instrucción 9: Llegar a la universidad
TIPOS DE DATOS
Tipos de datos: Cada atributo de una clase debe tener el tipo de dato
asociado, entre los que se encuentran los valores enteros (int), los reales
(double) y las cadenas de caracteres (String).
NIVEL 1
Estudiante
String nombre String apellido int sexo double promedio
Empleado
String nombre String apellido int sexo int salario
ANÁLISIS DEL PROBLEMA – MUNDO DEL PROBLEMA
EL EMPLEADO
Empleado
nombre apellido sexo salario
Fecha
dia mes anio
fechaNacimiento
fechaIngreso
NIVEL 1
DISEÑO DEL PROBLEMA – DIAGRAMA DE CLASES
EL EMPLEADO
Empleado
String nombre String apellido int sexo int salario
Fecha
int dia int mes int anio
fechaNacimiento
fechaIngreso
NIVEL 1
ANÁLISIS DEL PROBLEMA – MUNDO DEL PROBLEMA
EJEMPLO DEL TRIÁNGULO
Triangulo Punto
x y
punto1
punto2
punto3
Color
rojo verde azul
colorLineas colorRelleno
NIVEL 1
DISEÑO DEL PROBLEMA – DIAGRAMA DE CLASES
EL TRIÁNGULO
Triangulo Punto
double x double y
punto1
punto2
punto3
Color
int rojo int verde int azul
colorLineas colorRelleno
NIVEL 1
ANÁLISIS DEL PROBLEMA – MUNDO DEL PROBLEMA
SIMULADOR BANCARIO
CuentaBancaria
cedula nombre
CuentaCorriente
saldo corriente
Mes
mes
mesActual
mesApertura
CuentaAhorros
saldo interesMensual
CDT
valorInvertido interesMensual
ahorros
inversion
NIVEL 1
DISEÑO DEL PROBLEMA – DIAGRAMA DE CLASES
SIMULADOR BANCARIO
Cuenta Bancaria
String cedula String nombre
CuentaCorriente
int saldo corriente
Mes
int mes
mesActual
mesApertura
CuentaAhorros
int saldo double interesMensual
CDT
int valorInvertido double interesMensual
ahorros
inversion
NIVEL 1
CLASES Y OBJETOS
Clase: Identifica una entidad general dentro del modelo mundo que tiene
asociado un conjunto de atributos y métodos.
Objeto: Identifica una instancia específica de una clase que tiene valores
específicos para cada uno de los atributos de la clase.
NIVEL 1
Estudiante
String nombre String apellido int sexo double promedio
nombre = “Ricardo Jorge”
apellido = “Torres”
sexo = Masculino
promedio = 4.14
:Estudiante
nombre = “María”
apellido = “González”
sexo = Femenino
promedio = 4.82
:Estudiante
nombre = “Pepito”
apellido = “Pérez”
sexo = Masculino
promedio = 3.12
:Estudiante
1 Clase 1 o más objetos Instanciar o crear
DECLARACIÓN DE UNA CLASE
Declaración de una clase:
Cada clase de declara en un archivo .java. Ejemplo: Empleado.java
package uniandes.cupi2.empleado.mundo;
/**
* Esta clase representa un empleado
*/
public class Empleado
{
//------------------------------------------------
// Atributos
//------------------------------------------------
. . .
//------------------------------------------------
// Métodos
//------------------------------------------------
. . .
}
NIVEL 1
DECLARACIÓN DE LOS ATRIBUTOS Y COMENTARIOS
Declaración de un atributo:
Todos los atributos son privados y se definen con la forma: private TipoAtributo nombreAtributo;
public class Empleado
{
//------------------------------------------------
// Atributos
//------------------------------------------------
/**
* Nombre
*/
private String nombre;
. . .
}
NIVEL 1
EJERCICIOS EN CLASE
CASO DE ESTUDIO: EMPLEADO
NIVEL 1
EJERCICIOS EN CLASE
CASO DE ESTUDIO: EMPLEADO
Empleado
String nombre String apellido int sexo int salario
Fecha
int dia int mes int anio
fechaNacimiento
fechaIngreso
NIVEL 1
EJERCICIOS EN CLASE
CASO DE ESTUDIO: EMPLEADO
fechaNacimiento
fechaIngreso
prestaciones = (antiguedad * salario)/12
NIVEL 1
nombre = “Andres”
apellido = “Rodriguez”
sexo = Masculino
salario = 1000000
:Empleado dia = 1
mes = 1
anio = 1970
:Fecha
dia = 12
mes = 12
anio = 1999
:Fecha
MÉTODOS
Método: Especifica el comportamiento o un algoritmo que debe ser
ejecutado por los objetos de una clase. Una clase puede tener tantos métodos
como sean necesarios.
En el nivel 1 deberán completar el cuerpo de los métodos ya definidos
(métodos con TODO). No deberán crear nuevos métodos en ningún caso.
Definición de un método en la clase Empleado e instrucción de retorno
/**
* Retorna el nombre del empleado
* @return nombre
*/
public String darNombre( )
{
return nombre;
}
NIVEL 1
MÉTODOS – EL EMPLEADO
Definición de un método en la clase Empleado e instrucción de retorno
/**
* Retorna el salario del empleado
* @return salario
*/
public int darSalario( )
{
return salario;
}
/**
* Cambia el salario del empleado. <br>
* <b>post: </b> salario = pSalario.
* @param pSalario El nuevo salario del empleado.
*/
public void cambiarSalario( int pSalario )
{
salario = pSalario;
}
NIVEL 1
MÉTODOS - EL EMPLEADO
Completar los siguientes métodos
/**
* Retorna el sexo del empleado
* @return sexo
*/
public int darSexo ( )
{
____________________________
}
/**
* Duplica el salario del empleado. <br>
* <b>post: </b> salario = salario*2.
*/
public void duplicarSalario( )
{
____________________________
}
NIVEL 1
MÉTODOS - EL EMPLEADO
Completar los siguientes métodos
/**
* Cambia la fecha de ingreso del empleado. <br>
* <b>post: </b> fechaIngreso = pFechaIngreso.
* @param pFechaIngreso La nueva fecha de ingreso del empleado.
* pFechaIngreso != null.
*/
public void cambiarFechaIngreso( Fecha pFechaIngreso )
{
____________________________
}
/**
* Retorna la fecha de nacimiento del empleado
* @return fachaNacimiento
*/
public Fecha darFechaNacimiento ( )
{
____________________________
}
NIVEL 1
OPERADORES ARITMÉTICOS
+ (suma)
- (resta)
* (multiplicación)
/ (división)
( ) (paréntesis)
Nota: Es importante colocar paréntesis para evitar ambigüedad en las
expresiones.
Orden de evaluación
Primero se aplican los paréntesis.
Luego se aplican los operadores de multiplicación y división, de
izquierda a derecha.
Después se aplican los operadores de suma y resta, de izquierda a
derecha.
NIVEL 1
MÉTODOS - EL EMPLEADO
Completar los siguientes métodos
/**
* Retorna el porcentaje del salario para aportes a salud con <br>
* base en el porcentaje recibido como parámetro <br>
* @param pSalud El porcentaje de aportes a salud.
* @return valorAporteSalud
*/
public double darValorAporteSalud (int pSalud )
{
____________________________
}
/**
* Incrementa el salario del empleado en el porcentaje recibido como <br>
* parámetro. <br>
* @param pIncremento El porcentaje de incremento del salario.
* <b>post: </b> salario = salario + salario * pIncremento / 100.
*/
public void incrementarSalario(int pIncremento )
{
____________________________
}
NIVEL 1
PREGUNTAS
NIVEL 1
Laboratorio 2
N1_T2: Inicio en Java
http://cupi2.uniandes.edu.co/sitio/imag
es/cursosCupi2/apo1/talleres/n1lab_20
061_APO1-GUIA-N1-L2.doc
NIVEL 1
EJERCICIOS EN CLASE
CASO DE ESTUDIO: SIMULADOR BANCARIO
NIVEL 1
EJERCICIOS EN CLASE
CASO DE ESTUDIO: SIMULADOR BANCARIO
CuentaBancaria
String cedula String nombre
CuentaCorriente
int saldo corriente
Mes
int mes
mesActual
mesApertura
CuentaAhorros
int saldo double interesMensual
CDT
int valorInvertido double interesMensual
ahorros
inversion
NIVEL 1
EJERCICIOS EN CLASE
CASO DE ESTUDIO: SIMULADOR BANCARIO
corriente
mesActual
mesApertura
ahorros
inversion
NIVEL 1
cedula = “13456789” nombre = “Juan Pérez”
: CuentaBancaria saldo = 1000000
: CuentaCorriente
saldo = 1000000 interesMensual = 10
: CuentaAhorros
valorInvertido = 500000 interesMensual = 10
: CDT
mes = 1
: Mes
mes = 1
: Mes
MÉTODOS – SIMULADOR BANCARIO
Instrucción de llamada a un método
Llamada de métodos con parámetros
Realizar los 10 ejercicios del nivel 1
SIMULADOR BANCARIO
NIVEL 1
RECOMENDACIONES SOBRE EL EJERCICIO
Diligenciar los requerimientos funcionales.
Documentar los atributos o métodos que se requieran.
Revisar todos los TODO.
No borrar los TODO.
NIVEL 1
PREGUNTAS
NIVEL 1
Top Related