Esta es la presentación del Nivel 1 del curso "ISIS-1204 Algorítmia y Programación por Objetos 1" (APO1) de la Universidad de los Andes, Bogotá, Colombia.
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
APO1 - Presentacion nivel 1
1. NIVEL 1
BIENVENIDOS A ALGORÍTMICA Y PROGRAMACIÓN 1 (APO 1)
Mario José Villamizar Cano
mj.villamizar24@uniandes.edu.co
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
2. NIVEL 1
REDES SOCIALES
mjvc007@hotmail.com
http://twitter.com/mariocloud
http://linkedin.com/in/mariojosevillamizarcano
3. 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
6. NIVEL 1
NIVEL 1 – PROBLEMAS, SOLUCIONES Y PROGRAMAS
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
7. NIVEL 1
CASOS DE ESTUDIO
Caso de estudio 1: El Empleado
8. NIVEL 1
CASOS DE ESTUDIO
Caso de estudio 2: Simulador Bancario
9. NIVEL 1
CASOS DE ESTUDIO
Caso de estudio 3: El triángulo
10. NIVEL 1
HOJAS DE TRABAJO
Hoja de trabajo 1: La alcancía
11. NIVEL 1
HOJAS DE TRABAJO
Hoja de trabajo 2: La encuesta
14. 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.
15. 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)
19. 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
23. 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)
24. NIVEL 1
ANÁLISIS DEL PROBLEMA – MUNDO DEL PROBLEMA
EJEMPLO DEL EMPLEADO
Empleado fechaNacimiento Fecha
nombre dia
apellido fechaIngreso
mes
sexo anio
salario
25. 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
26. NIVEL 1
ANÁLISIS DEL PROBLEMA – MUNDO DEL PROBLEMA
EJEMPLO DEL TRIÁNGULO
Triangulo Punto
punto1
punto2 x
punto3 y
colorLineas colorRelleno
Color
rojo
verde
azul
27. 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
28. NIVEL 1
ANÁLISIS DEL PROBLEMA – MUNDO DEL PROBLEMA
EJEMPLO DEL SIMULADOR BANCARIO
CuentaBancaria CuentaCorriente
corriente
cedula saldo
nombre
ahorros CuentaAhorros
saldo
interesMensual
mesActual inversion
CDT
Mes
mesApertura valorInvertido
mes interesMensual
29. NIVEL 1
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.
37. NIVEL 1
DISEÑO DE LA SOLUCIÓN – ARQUITECTURA DE LA SOLUCIÓN
Desde el nivel 1 hasta el nivel 4 NO deben
modificar las clases de este paquete.
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.
44. 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
46. 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.
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
47. NIVEL 1
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).
Estudiante Empleado
String nombre String nombre
String apellido String apellido
int sexo int sexo
double promedio int salario
48. NIVEL 1
ANÁLISIS DEL PROBLEMA – MUNDO DEL PROBLEMA
EL EMPLEADO
Empleado fechaNacimiento Fecha
nombre dia
apellido fechaIngreso
mes
sexo anio
salario
49. NIVEL 1
DISEÑO DEL PROBLEMA – DIAGRAMA DE CLASES
EL EMPLEADO
Empleado fechaNacimiento Fecha
String nombre int dia
String apellido fechaIngreso
int mes
int sexo int anio
int salario
50. NIVEL 1
ANÁLISIS DEL PROBLEMA – MUNDO DEL PROBLEMA
EJEMPLO DEL TRIÁNGULO
Triangulo Punto
punto1
punto2 x
punto3 y
colorLineas colorRelleno
Color
rojo
verde
azul
51. NIVEL 1
DISEÑO DEL PROBLEMA – DIAGRAMA DE CLASES
EL TRIÁNGULO
Triangulo Punto
punto1
punto2 double x
punto3 double y
colorLineas colorRelleno
Color
int rojo
int verde
int azul
52. NIVEL 1
ANÁLISIS DEL PROBLEMA – MUNDO DEL PROBLEMA
SIMULADOR BANCARIO
CuentaBancaria CuentaCorriente
corriente
cedula saldo
nombre
ahorros CuentaAhorros
saldo
interesMensual
mesActual inversion
CDT
Mes
mesApertura valorInvertido
mes interesMensual
53. NIVEL 1
DISEÑO DEL PROBLEMA – DIAGRAMA DE CLASES
SIMULADOR BANCARIO
Cuenta Bancaria CuentaCorriente
corriente
String cedula int saldo
String nombre
ahorros CuentaAhorros
int saldo
double interesMensual
mesActual inversion
CDT
Mes
mesApertura int valorInvertido
int mes double interesMensual
54. 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.
Instanciar o crear
1 Clase 1 o más objetos
:Estudiante
nombre = “Ricardo Jorge”
Estudiante apellido = “Torres”
sexo = Masculino
String nombre promedio = 4.14 :Estudiante
String apellido nombre = “Pepito”
int sexo :Estudiante apellido = “Pérez”
sexo = Masculino
double promedio nombre = “María” promedio = 3.12
apellido = “González”
sexo = Femenino
promedio = 4.82
55. NIVEL 1
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
//------------------------------------------------
. . .
}
56. 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;
. . .
}
57. NIVEL 1
EJERCICIOS EN CLASE
CASO DE ESTUDIO: EMPLEADO
58. NIVEL 1
EJERCICIOS EN CLASE
CASO DE ESTUDIO: EMPLEADO
Empleado fechaNacimiento Fecha
String nombre int dia
String apellido fechaIngreso
int mes
int sexo int anio
int salario
59. NIVEL 1
EJERCICIOS EN CLASE
CASO DE ESTUDIO: EMPLEADO
:Empleado :Fecha
fechaNacimiento dia = 1
nombre = “Andres”
apellido = “Rodriguez” mes = 1
sexo = Masculino anio = 1970
salario = 1000000
fechaIngreso
:Fecha
dia = 12
mes = 12
anio = 1999
prestaciones = (antiguedad * salario)/12
60. NIVEL 1
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;
}
61. 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;
}
62. 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( )
{
____________________________
}
63. 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 ( )
{
____________________________
}
64. 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.
65. 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 )
{
____________________________
}
67. 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
68. NIVEL 1
EJERCICIOS EN CLASE
CASO DE ESTUDIO: SIMULADOR BANCARIO
69. NIVEL 1
EJERCICIOS EN CLASE
CASO DE ESTUDIO: SIMULADOR BANCARIO
CuentaBancaria CuentaCorriente
corriente
String cedula int saldo
String nombre
ahorros CuentaAhorros
int saldo
double interesMensual
mesActual inversion
CDT
Mes
mesApertura int valorInvertido
int mes double interesMensual
70. NIVEL 1
EJERCICIOS EN CLASE
CASO DE ESTUDIO: SIMULADOR BANCARIO
corriente : CuentaCorriente
: CuentaBancaria
saldo = 1000000
cedula = “13456789”
nombre = “Juan Pérez”
ahorros : CuentaAhorros
mesActual saldo = 1000000
interesMensual = 10
: Mes
mes = 1 inversion
: CDT
: Mes mesApertura
valorInvertido = 500000
mes = 1 interesMensual = 10
71. NIVEL 1
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
72. 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.