UCC

* <09/05/2014>   Algoritmia y Programación (Creación de Interfaces Gráficas:)

// Este programa permite definir la configuración básica de una ventana
import java.awt.*;
import javax.swing.*;

/**
*
* @author Viejo Gus

* 10/11/2012
*/
public class InterfazVentana extends JFrame{
public InterfazVentana(){
setTitle(“PengüinSoft”);
setSize(290,300);
setResizable(false);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args){
new InterfazVentana();
}
}

—————————————-
// Creación de un botón
import java.awt.*;

public class Boton extends Frame {
Button button = new Button(“Buenos dias”);
Boton(){
super(“Mi saludo”);
add(button, BorderLayout.CENTER);
pack();
setVisible(true);

setResizable(true)
}
public static void main(String[] args){
new Boton();
}
}

_________________________________________

// Otro programa ejemplo utilizando la clase JFrame
// MenuPpal.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class MenuPpal extends JFrame{

private JLabel etiqueta1;

private JButton clientes,ventas,salir,proveedores;

public MenuPpal(){

super(“MENÚ PRINCIPAL”);

Container g= getContentPane();

g.setLayout(new BorderLayout(10,10));

Eventos cont=new Eventos();

Icon Pingui=new ImageIcon(“penguin.jpg”);
// Para descargar la imagen:   penguin.jpg

etiqueta1=new JLabel();
etiqueta1.setText(“PenguinSoft”);
etiqueta1.setIcon(Pingui);
etiqueta1.setHorizontalTextPosition(SwingConstants.CENTER);
etiqueta1.setVerticalTextPosition(SwingConstants.TOP);
g.add(etiqueta1,BorderLayout.CENTER);

clientes=new JButton(“Clientes”);
ventas=new JButton(“Ventas”);
proveedores=new JButton(“Proveedores”);
salir=new JButton(“Salir”);

clientes.addActionListener(cont);
g.add(clientes,BorderLayout.WEST);
ventas.addActionListener(cont);
g.add(ventas,BorderLayout.EAST);
proveedores.addActionListener(cont);
g.add(proveedores,BorderLayout.NORTH);
salir.addActionListener(cont);
g.add(salir,BorderLayout.SOUTH);

setSize(260,250);
setLocation(225,200);
show();
}

private class Eventos implements ActionListener{
public void actionPerformed(ActionEvent e)
{

if(e.getSource()==salir){
JOptionPane.showMessageDialog(null,”Hasta Pronto, ‘mis pupilos’!”);
System.exit(0);
}
else if(e.getSource()==clientes){
}
else if(e.getSource()==proveedores){
}
else if(e.getSource()==ventas){
}
}

}
public static void main(String args[]){

MenuPpal a=new MenuPpal();
}
}

—————————————

// Creación de Paneles:

// Ejemplo: Interfaz vehìculos

package poo_java;

import java.awt.*;
import javax.swing.*;
import javax.swing.border.TitledBorder;

class PanelVehiculo extends JPanel{
public PanelVehiculo(){
setLayout(new GridLayout(5,2));
setPreferredSize(new Dimension(0,130));
TitledBorder border = BorderFactory.createTitledBorder( “Datos del Vehiculo” );
border.setTitleColor(Color.BLUE);
setBorder(border);
}
}
class PanelDescuentos extends JPanel{
public PanelDescuentos(){
setLayout(new GridLayout(2,2));
TitledBorder border = BorderFactory.createTitledBorder( “Descuentos” );
border.setTitleColor(Color.BLUE);
setBorder(border);
}
}
class PanelResultados extends JPanel{
public PanelResultados(){
setLayout(new GridLayout(2,3));
setPreferredSize(new Dimension(0,65));
TitledBorder border = BorderFactory.createTitledBorder( “Resultados” );
border.setTitleColor(Color.BLUE);
setBorder(border);
}
}

public class InterfazPanel extends JFrame {
private PanelVehiculo panelVehiculo;
private PanelDescuentos panelDescuentos;
private PanelResultados panelResultados;
public InterfazPanel(){
setTitle(“Venta de vehiculos”);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new BorderLayout());
panelVehiculo = new PanelVehiculo();
add(panelVehiculo, BorderLayout.NORTH);
panelDescuentos = new PanelDescuentos();
add(panelDescuentos, BorderLayout.CENTER);
panelResultados = new PanelResultados();
add(panelResultados, BorderLayout.SOUTH);
setSize(290,300);
setResizable(false);
setVisible(true);
pack();
}
public static void main(String[] args){
new InterfazPanel();
}
}

_____________________

// Creación de etiquetas y campos de texto

import java.awt.*;

import javax.swing.*;
import javax.swing.border.TitledBorder;
/**
*
* @author Viejo Gus
*/
class PanelVehiculo extends JPanel{
private JTextField txtMarca;
private JTextField txtLinea;
private JTextField txtModelo;
private JTextField txtValor;
private JLabel labMarca;
private JLabel labLinea;
private JLabel labModelo;
private JLabel labValor;
public PanelVehiculo(){
setLayout(new GridLayout(5,2));
setPreferredSize(new Dimension(0,130));
TitledBorder border = BorderFactory.createTitledBorder( “Datos del Vehiculo” );
border.setTitleColor(Color.BLUE);
setBorder(border);
labMarca = new JLabel( “Marca “);
labLinea = new JLabel( “Linea “);
labModelo = new JLabel( “Modelo “);
labValor = new JLabel( “Valor “);
txtLinea = new JTextField();
txtModelo = new JTextField();
txtValor = new JTextField();
txtValor = new JTextField( “$ 0”);

txtMarca = new JTextField();
txtValor.setForeground(Color.BLUE);
txtValor.setBackground(Color.WHITE);
add( labMarca );
add( txtMarca );
add( labLinea );
add( txtLinea );
add( labModelo );
add( txtModelo );
add( labValor );
add( txtValor );
txtValor.setEditable(true);
}
}
class PanelDescuentos extends JPanel{
public PanelDescuentos(){
setLayout(new GridLayout(2,2));
TitledBorder border = BorderFactory.createTitledBorder( “Descuentos” );
border.setTitleColor(Color.BLUE);
setBorder(border);
}
}
class PanelResultados extends JPanel{
public PanelResultados(){
setLayout(new GridLayout(2,3));
setPreferredSize(new Dimension(0,65));
TitledBorder border = BorderFactory.createTitledBorder( “Resultados” );
border.setTitleColor(Color.BLUE);
setBorder(border);
}
}

public class InterfazVehiculos extends JFrame {
private PanelVehiculo panelVehiculo;
private PanelDescuentos panelDescuentos;
private PanelResultados panelResultados;
public InterfazVehiculos(){
setTitle(“PenguinCar”);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new BorderLayout());
panelVehiculo = new PanelVehiculo();
add(panelVehiculo, BorderLayout.NORTH);
panelDescuentos = new PanelDescuentos();
add(panelDescuentos, BorderLayout.CENTER);
panelResultados = new PanelResultados();
add(panelResultados, BorderLayout.SOUTH);
setSize(490,500);
setResizable(false);
setVisible(true);
pack();
}
public static void main(String[] args){
new InterfazVehiculos();
}
}
// Taller: Implementar el panel de Descuentos e insertar dos botones en el panel de Resultados

____________________________________

* <06/05/2014>  Laboratorio 7:  Algoritmia y Programación (ciclos o bucles).

 

Codificar en lenguaje Java los siguientes ejercicios utilizando instrucciones repetitivas (while, do while for):

  1. Calcular e imprimir el número, su cuadrado y su cubo, correspondiente a los dígitos.

  2. La empresa “TOLModels” desea seleccionar para un evento local a un grupo de personas que cumplan los siguientes requisitos: Mujeres con edad igual o superior a 17 años e inferior a 20 años, con un peso menor a 55 kg y estatura entre 1.70 y 1.75 m.  Hombres con edad entre los 18 y 21 años y con estatura superior a 1.75 m.  a) Cuántas mujeres fueron seleccionadas,    b) Porcentaje de hombres seleccionados,    c) Estatura promedio de todos los aspirantes, y    d) Peso de la mujer más joven seleccionada.

  3. Para las elecciones presidenciales, se inscribieron cuatro candidatos (con identificadores 1,2,3,4). Escriba un programa que permita determinar e imprimir el número de votos correspondiente a cada candidato y el porcentaje que obtuvo respecto al total de los votantes. El final de datos está representado por un cero. ¿Cuál es el nuevo presidente de Colombia?

* <25/04/2014>  Taller de programación: Instrucciones selectivas o condicionales

https://www.dropbox.com/s/fm0f2009qtljxer/Aeropuerto%20Peligroso.gif

Escribir un programa orientado a objetos en el IDE Eclipse para solucionar el siguiente caso:

Laura vende pasajes aéreos en la Compañía de Turismo “LA LIBERTAD” y pierde mucho tiempo calculando el precio de los pasajes. Esto se debe a que el precio del pasaje depende de: una tarifa básica, la temporada, la aerolínea, la edad del pasajero y si este es estudiante o no. Se requiere un programa que le ayude a Laura a calcular el precio de cada pasaje de Ibagué-Cartagena, teniendo en cuenta las siguientes premisas:

  • La Compañía “ALAS” incrementa el valor de sus pasajes en un 30% en temporada alta, mientras que la Compañía “VOLAR” lo incrementa en solo 20%
  • Ambas compañías descuentan el 50% si el pasajero es menor de edad; además, la Compañía “VOLAR” tiene un recargo de $5000 para los pasajeros mayores de 60 años, para cubrir el seguro de vida.
  • Los estudiantes que viajan por “ALAS” y que no son menores de edad, tienen un descuento del 10% en temporada baja.
  • La tarifa básica Ibagué-Cartagena reglamentaria es de $500000.

* <14/04/2014> Algoritmia y Programación.

Laboratorio 6:  Con el siguiente ejercicio: implementar la clase Ohm en el paquete mundo y la clase LeydeOHM en el paquete interfaz, resolver el problema cambiando la instrucción switch/case por un condicional if-else-if  e implementar los métodos para calcular Intensidad y Resistencia. 

/** Ejemplo de condicional switch/case

* @Programa: LeydeOHM.java
*
* @author : vGus
* @version 1.00 2010/10/5
*/
import javax.swing.*;

public class Ohm{
private double i,r,v;
public void set_voltaje(){
v=Double.parseDouble(JOptionPane.showInputDialog(“Voltaje (Voltios) ?”));
}
public void set_intensidad(){
i=Double.parseDouble(JOptionPane.showInputDialog(“Intensidad (Amperios) ?”));
}
public void set_resistencia(){
r=Double.parseDouble(JOptionPane.showInputDialog(“Resistencia (Ohmios) ?”));
}
public double get_intensidad(){
return i;
}
public double get_resistencia(){
return r;
}
public double get_voltaje(){
return v;
}
public void calcularvoltaje(){
v=i*r;
}
}

public class LeydeOHM {

public static void main(String arg[]){
String opcion; char opc;
Ohm LeyO = new Ohm();
opcion=JOptionPane.showInputDialog(null,”MENU\n\n<V> oltaje\n<I> ntensidad\n<R> esistencia\n\nSu opción?”,”Formas de la ley de OHM”,JOptionPane.INFORMATION_MESSAGE);
opc = opcion.charAt(0);
switch(opc){
case ‘v’ :
case ‘V’ : LeyO.set_intensidad();
LeyO.set_resistencia();
LeyO.calcularvoltaje();
JOptionPane.showMessageDialog(null,”Voltaje = “+LeyO.get_voltaje(),”Voltios”,JOptionPane.INFORMATION_MESSAGE);
break;
case ‘i’ :
case ‘I’ : break;
case ‘r’ :
case ‘R’ : break;
default: JOptionPane.showMessageDialog(null,”ERROR… opción no es válida!!!”);
}
}
}

 

* <28/03/2014> Algoritmia y Programación.

Laboratorio 5:  Escribir un programa en Java para cada caso:

1)  En el Club “La Primavera” se ofrece la siguiente promoción durante este fin de semana: Si el valor del consumo es superior a $100000, se calcula un descuento del 10%; en caso contrario, el descuento es del 5%.  ¿Cuánto debe pagar un cliente?

2)  Un taxista trabaja en la empresa “PengüiTAXI” en la cual le asignan 3 rutas: Ruta A con un valor de $3000, Ruta B con valor $5000 y Ruta C con valor $7000.  Además, debe cobrar un recargo de $500 si está trabajando entre las 20:00 y las 05:00.  Si es festivo, hay un recargo de $100.  ¿Cuánto debe pagar un usuario que tome el servicio?

3) La cooperativa de ahorro y crédito “COOPRESTA” establece las siguientes condiciones para determinar el valor máximo a prestar por cada línea de crédito:  a) Para las líneas de crédito de Educación, Vacaciones y Calamidad doméstica se presta un máximo de 3 veces el valor del ahorro del socio.  b) Para la línea de Vehículo se presta un máximo de 5 veces el valor del ahorro del socio.  c) Para la línea de Vivienda se presta un máximo de 7 veces el valor del ahorro del socio.   Calcular el valor máximo a prestarle a un socio.

4)  El costo de las llamadas internacionales depende de la zona geográfica en la que se encuentre el país destino, y del número de minutos hablados. En la siguiente tabla se presenta el costo por minuto en cada zona, a la cual se le ha asociado un código o clave:

CLAVE ZONA PRECIO
12 América del Norte 2
14 América Central 2.2
17 América del Sur 4.6
18 Europa 3.7
22 Asia 6
25 Africa 6
27 Oceanía  6.7

a) validar que hubo llamada,   b) calcular e imprimir el costo total de una llamada.

5) En cierto país llamado “IVALANDIA” el impuesto que se debe pagar por los artículos se calcula mediante los siguientes criterios: Los primeros $100 no causan impuesto; los siguientes $100 tienen el 30% de impuesto y el resto el 40% de impuesto, pero si el costo del producto es mayor a $1000, entonces no se cobra el 40%, sino el 50%.  Determinar y visualizar en la pantalla:

a) El nombre y costo básico del artículo,

b) valor del impuesto, y

c) valor total a pagar.

 

* <27/03/2014> Algoritmia y Programación.

Laboratorio 4:  Instrucciones condicionales o selectivas.

Codificar ejemplos de los tipos de instrucciones condicionales en Java: simple (if), doble (if-else), múltiple (if-else-if…), compuesta por casos (switch-case).

/** Ejemplo de condicional doble (if-else)
* InterfazOperacion.java
*
* @author viejo Gus
* @version 1.00 2010/10/18
*/

class Operacion{
private int resp;
public void set_resp(){
resp=Integer.parseInt(JOptionPane.showInputDialog(“Cual es el resultado de (1+2*3-4) ? “));
}
public void get_resp(){

int  r=1+2*3-4;
if (this.resp == r)
JOptionPane.showMessageDialog(null,”Todo bien, todo bien!…”);
else
JOptionPane.showMessageDialog(null,”Ojo! usted tiene deudas con Pitágoras…”);
}
}
public class InterfazOperacion {

public static void main(String arg[]){
Operacion Op = new Operacion();
Op.set_resp();
Op.get_resp();
}
}

——————————————————————————————

Laboratorio 3:  Codificar en lenguaje Java los atributos (mínimo 4), los métodos de acceso set y get (asignar/dar) y un método de comportamiento para cada una de las siguientes entidades o Clases:

<Celular, Factura, Película,  Vehículo y Tablet>.

* <13/03/2014> Algoritmia y Programación.

Laboratorio 2:  codificar en lenguaje Java la solución de los siguientes casos:

1. Leer una temperatura en grados Celsius y convertirla a grados Farenheit.

2. Angie compra un artículo en ‘La Estación’. Dado el costo del artículo y la cantidad de dinero entregada, calcule e imprima el cambio que el vendedor debe entregarle a Angie.

3. Los surtidores de una estación de gasolina “Terpel” registran lo que “surten” en galones, pero el precio de la gasolina está fijado en litros. Calcular e imprimir el valor a cobrarle a un cliente. Cada galón tiene 3.785 litros. El precio del litro es $1.025

4. Según el radio de una esfera, calcular e imprimir el área y su volumen.

5. Leer una cantidad entera de segundos y determinar e imprimir su equivalente en minutos y segundos. Por ej: 90 segundos equivalen a 1 minuto y 30 segundos.

6. Escriba un programa que acepte por teclado las edades de sus tres mejores amigo(a)s y calcule la edad promedio.

7. Escriba un programa que acepte por teclado un número de cuatro dígitos en una variable simple entera, los separe y los imprima dejando tres espacios entre ellos (utilice los operadores división cociente y división módulo). Por ej. si el usuario teclea 2014, el programa debe imprimir  2   0   1   4

8. Calcular e imprimir el número de segundos que hay en un determinado número de días.

9. Don David es el dueño de una Casa de Cambio y necesita un programa que permita leer por teclado una cantidad expresada en dólares y convertir e imprimir esa cantidad en pesos colombianos.

10. En una copa de ‘Tapa Roja’ hay 8 onzas. Convertir una cantidad de onzas en copas e imprimir los dos valores.

11. Leer por teclado el nombre y las tres notas de un alumno de Algoritmia y Programación y calcular e imprimir su definitiva correspondiente al primer 50%. Los porcentajes de las notas son 15, 15 y 20, respectivamente.

12. Leer la cédula, nombre, genero, horas trabajadas y valor de la hora de un trabajador y deducir e imprimir su salario neto aplicando una bonificación del 4% y un aporte del 7% a la EPS.

13. Leer la longitud de los catetos de un triángulo rectángulo y determinar e imprimir su hipotenusa.

* <28/02/2014> Algoritmia y Programación.

Taller (pareja)

Crear una nube de conceptos acerca de las características de la Programación Orientada a Objetos. Pueden utilizar una herramienta de software libre como Tagxedo.

Al finalizar, se socializan y sustentan el diseño y las ideas presentadas por el equipo de trabajo.

Un ejemplo -> http://mvblogus.blogspot.com/2014/01/el-inicio.html

* <06/02/2014> Algoritmia y Programación.

Laboratorio 1:  Modelado de Sistemas (Notación UML )

http://www.wix.com/gmvpenguin/caso-de-uso

a) Utilizando una herramienta CASE, como ArgoUML, modelar los requerimientos funcionales para un sistema de un reloj simple, a través del diagrama de Casos de Uso y realizar su descripción textual. El sistema de reloj simple tendrá dos actores y cuatro casos de uso, y su comportamiento es el siguiente: el actor UsuarioReloj puede consultar la hora en su reloj ó ajustar la hora. El actor TecnicoRelojes puede reparar el reloj ó cambiar la pila del reloj.

b) Cada estudiante deberá identificar un sistema diferente y modelar el Diagrama de CDU, Diagrama de Clases y el Diagrama de Secuencia para ese sistema. Por ejemplo, estos serían dos diagramas para el sistema del reloj:

c) Generar el código de una clase en lenguaje Java.

* <21/02/2014> Algoritmia y Programación: taller de evaluación (1.5 hrs.)

Considere el modelado de sistemas para Cine Colombia en el Centro Comercial La Estación:

<1> Diagrama parcial de Casos De Uso
<2> Descripción textual de un CDU
<3> Diagrama de Clases
<4> Diagrama de Secuencia
<5> Generación de código en lenguaje Java.

* <05/02/2014> Algoritmia y programación.

Bienvenidos!

IDENTIFICACIÓN

ASIGNATURA: Algoritmia y Programación

CODIGO : 83440

SEMESTRE : II

HORAS SEMANA: 5  (2 teóricas, 3 laboratorio)

CREDITOS : 4

OBJETIVO GENERAL

Brindar al estudiante las herramientas básicas para que conozca y aplique el paradigma de la programación orientada a objetos; además, proporcionar conceptos de la metodología de análisis y diseño Orientado a Objetos (A/DOO).

CONTENIDO

  • Metodología de análisis orientada a objetos
    • Diagrama de Casos de uso
    • Diagrama de Clases
  • Otros modelos
    • Diagrama de secuencia
    • Modelo de dominio
  • Mecanismos de la Programación Orientada a Objetos
    • Herencia, polimorfismo y encapsulamiento
  • Salida de datos a través de cajas de dialogo (JOptionPane.showMessageDialog)
  • Datos Primitivos, asignaciones y operaciones matemáticas (JOptionPane.showInputDialog)
  • Toma de decisiones: simples, anidadas y selección múltiple.
  • Ciclos simples, anidados y combinación de ciclos.
  • Clases y subclases
    • Arreglos o vectores
    • Arreglos bidimensionales o Matrices
  • Introducción a la interfaz gráfica

BIBLIOGRAFIA

Deitel, H. (2004). Cómo programar en C/C++ y Java. México: Pearson.
Joyanes, L. (1996). Programación orientada a objetos. Madrid: McGraw-Hill.
Larman, C. (2004). UML y Patrones. Una introducción al análisis y diseño orientado a objetos y al proceso unificado. Madrid: Pearson Educación.
Villalobos, J. (2006). Fundamentos de Programación. Aprendizaje activo basado en casos. México: Pearson Educación.

 Introducción

Las tecnologías orientadas a objetos se han convertido en las últimas décadas en uno de los motores de la industria del software, y la riqueza del entorno de Programación Orientada a Objetos ha permitido mejorar no sólo la calidad de los sistemas software sino también su productividad. Por ello es importante que los estudiantes de Ingeniería de Sistemas aprendan las técnicas de análisis, de diseño y estándares del desarrollo de aplicaciones con orientación a objetos.

 “Siempre he deseado que mi computador sea tan fácil de manejar como mi teléfono. Mi deseo se ha vuelto realidad. Ya no sé cómo usar mi teléfono”.

Bjarne Stronstrup(creador del lenguaje C++)

 Descripción general del curso

La Programación Orientada a Objetos (POO) fue creada para superar los inconvenientes de la Programación Orientada a Procedimientos (POP). Emplea el enfoque de programación ascendente. Trata a los datos como un elemento crítico en el desarrollo del programa y no permite que fluyan libremente por el sistema. Une los datos con las funciones que operan sobre ellos en una estructura de datos llamada clase.

La POO se ha convertido en la actualidad en una de las palabras pegadizas de la programación. Cada día aumenta el  interés entre los ingenieros de software por usar POO. La aplicación más popular de la POO ha sido en el área del diseño de interfaces de usuario. Se han desarrollado cientos de sistemas de ventanas usando las técnicas de POO.

Es necesario comprender los conceptos fundamentales usados ampliamente en Programación Orientada a Objetos:

  • Clases
  • Objetos
  • Abstracción y encapsulación de datos
  • Herencia
  • Polimorfismo
  • Ligadura dinámica
  • Paso de mensajes

Los sistemas reales de las empresas son a menudo mucho más complejos y contienen más objetos con atributos y métodos complicados. POO es útil en estos tipos de aplicaciones ya que puede simplificar un problema complejo. Entre las áreas de aplicación de la POO se incluyen:

<> Sistemas de tiempo real

<> Simulación y modelado

<> Bases de datos orientadas a objetos

<> Hipertexto, hipermedia y expertexto

<> IA y sistemas expertos

<> Redes neuronales y programación paralela

<> Soporte de decisión y sistemas de automatización de oficinas

<> Sistemas CIM/CAM/CAD

La POO es un enfoque diferente del mundo informático, un nuevo modo de pensar y diseñar software con calidad.

*

 

* <24/08/2013> Algoritmia y Programación.

Evaluación 1:  Modelado de Sistemas con Notación UML

Por medio de ArgoUML, modelar el siguiente sistema:  se requiere una aplicación que permita manejar la información de un empleado. El empleado tiene cédula, nombre, apellido, genero o sexo, fecha de nacimiento. Además, como trabaja en una determinada compañía tiene una fecha de ingreso a la misma y un salario básico asignado.

La aplicación también debe permitir: (1) aumentar el salario del empleado y (2) realizar algunos cálculos con la información disponible: (a) edad actual, (b) antigüedad en la empresa.

a) Cada pareja deberá modelar el Diagrama de CDU

b) Realizar la descripción textual de un CDU con dos actores

c) Modelar el Diagrama de Clases con una relación de generalización

d) Modelar un Diagrama de Secuencia

e) Generar el código del diagrama correspondiente al punto c, en lenguaje Java.

 

* <07/09/2013> Algoritmia y Programación.

Laboratorio 2:  Introducción a la programación en lenguaje Java

Codificar la solución de los siguientes ejercicios:

1. El ejercicio clásico de Dennis Ritchie, mostrar en la pantalla: “Hola mundo!”.

2. Calcular el valor del IVA y el total a pagar por el cliente en la compra de x cantidad de un producto cualquiera. Determinar e imprimir también el cambio que se le debe entregar al cliente.
* <31/08/2013> Algoritmia y Programación.

Creación de Clases y Objetos en el lenguaje Java (IDE Eclipse):

* <06/02/2014> Algoritmia y Programación.

El siguiente taller (por parejas) sobre el Lenguaje de Modelado Unificado, UML deberá ser desarrollado utilizando diagramas del UML, presentar diversas perspectivas de un sistema para la empresa CINEMARK, en Ibagué. El modelo del sistema deberá describir procesos como venta de boletas, reservas,  tarjetas socio Elite, etc.  Cada grupo de trabajo investigarà sobre UML y podrá realizar el modelado a través de alguna de las siguientes herramientas CASE:  NetBeans, ArgoUML, Poseidón, Eclipse, Visual Paradigm, Power-Designer, StartUML, ó… Rational Rose.

El modelado de sistemas para CINEMARK deberá  incluir los siguientes diagramas ( marcados con * )

<*> Diagrama de Casos de Uso.
<*> Diagrama de Clases.
<> Diagrama de Estados.
<*> Diagrama de Secuencia.
<> Diagrama de Colaboración.

 

* <28/10/2013> Algoritmia y Programación (Contenedores de datos)

/**

* Ejemplo simplificado: Declaración de Contenedor de tamaño fijo (Array)
* Total de goles por equipo de fùtbol en la Liga Postobòn
* @(#) InterfazLiga.java
* vGus.   27/10/2013   10:14
*
*/

package liga;
import javax.swing.*;

//Especificación de la Clase

class Equipo{  // Esta clase debe ser creada en el paquete del mundo del problema
// Constantes
public final static int NUMEQUI = 18;  // Representa el tamaño del contenedor o casillas del arreglo

// Atributos
private int[] goles; // Declaración del arreglo

// Métodos
public Equipo(){
goles= new int[NUMEQUI]; // Método constructor
}

public void setGoles(){
int i=0; // Declaración del índice
for(i=0;i < NUMEQUI;i++){ // Instrucción repetitiva
goles[i]=Integer.parseInt(JOptionPane.showInputDialog(“Total goles del equipo “+(i+1)+”?”)); // Llenar el arreglo
}
}

public void getGoles(){
JOptionPane.showMessageDialog(null,”Listado de Goles por equipo\n”);
for(int i=0;i < NUMEQUI;i++){
JOptionPane.showMessageDialog(null,goles[i]); // Mostrar el arreglo
}
}
}

// Implementación
public class InterfazLiga {  // Esta clase debe crearse en el paquete de la interfaz

public static void main(String[] args) {
// Creación de Objetos o Instancias de las Clases
Equipo equipo = new Equipo();
equipo.setGoles();
equipo.getGoles();
JOptionPane.showMessageDialog(null,”Hasta el proximo campeonato!”);
}
}

/* Modificar el programa para mostrar el listado de goles en una sola ventana

*/

* <26/10/2013>  Evaluación individual:  Algoritmia y Programación (ciclos).

Un problema que se presenta frecuentemente en las finanzas domésticas es el determinar cuánto dinero se acumulará en una cuenta en el banco después de n años si se deposita inicialmente una cantidad conocida P, y la cuenta acumula anualmente interés a un porcentaje r (i = r/100). La cantidad futura se puede determinar mediante la conocida fórmula de interés compuesto: F = P(1 + i)^n. Escriba un programa modular utilizando sólo variables locales que llame el método para calcular y retornar el valor F. El programa debe  imprimir el interés compuesto para cada uno de los n años en los cuales el dinero se queda en depósito.

Por ej:    Capital inicial: $1000      Tasa de interés: 5%      Tiempo: 7 años

Año                              Valor futuro $
1                                      1050.00
2                                      1102.50
3                                      1157.62
4                                      1215.51
5                                      1276.28
6                                      1340.10
7                                      1407.10

Utilizar el siguiente prototipo de clase:

// Clase interés compuesto
public class InteresC {

private double capital, interesc;
private  int tiempo;

public void inicializar(double pCapital, double pInteres, int pTiempo){

}
public double valorFinal(){
return(P*pow(1 + i),N);
}
}

* <21/10/2013>  Ejercicio: Algoritmia y Programación

En el Banco “SinFondos” desean registrar las transacciones realizadas a diario. Los tipos de transacción son:  ‘C‘ si la transacción es una consignación se debe actualizar el saldo del cliente,    ‘R‘  si la transacción es un retiro se debe tener en cuenta si el saldo le alcanza a la persona; se debe dejar un saldo mínimo de $20000 en la cuenta y el valor mínimo de cada transacción es de $20000. Si el retiro es aprobado se debe actualizar el saldo. Por cada cliente se debe visualizar: Número de la cuenta y nombre del cliente, tipo, fecha y valor de transacción, y nuevo saldo.

* <05/08/2013> Algoritmia y programación (UML)

http://programacion.com/articulo/introduccion_a_uml_181

* <05/08/2013> Algoritmia y programación.

Taller 1:  Diagrama de Casos de Uso y de Clases  (UML)

http://www.wix.com/gmvpenguin/caso-de-uso

El siguiente taller (por parejas) sobre el Lenguaje de Modelado Unificado, UML deberá ser desarrollado en laboratorio el dìa 5 de agosto.  Utilizando diagramas del UML, presentar diversas perspectivas de un sistema para un gimnasio en Ibagué. Se deben modelar los requerimientos funcionales del negocio.  Cada grupo de trabajo investigarà sobre UML y podrá realizar el modelado a través de alguna de las siguientes herramientas CASE:  NetBeans, ArgoUML, Poseidón, Eclipse, Visual Paradigm, Power-Designer, StartUML, ó… Rational Rose.

El modelado de sistemas deberá  incluir los siguientes diagramas:

<> Diagrama de Casos de Uso.
<> Diagrama de Clases.

*

* <18/05/2013>   Algoritmia y Programación (Evaluación individual)

Evelin está de compras en Mercacentro y decide llevar un control sobre lo que va comprando, para saber la cantidad de dinero que tendrá que pagar al llegar a una caja. El supermercado tiene una promoción especial del 14% de descuento sobre aquellos artículos cuya etiqueta sea de color verde: del 10% sobre los de etiqueta amarilla, y del 7% sobre los de etiqueta color vinotinto. Escriba un programa con un ciclo indeterminado que permita determinar e imprimir cuántos artículos de promoción compró y la cantidad total de dinero que Evelin deberá pagar.

___________________________________________

* <6/05/2013>  Mis estimados ‘pupilos’ de Algoritmia.

Les informo que mi salud continúa un poco ‘jorobada’, por lo cual no podré asistir a clase esta noche. Los invito a divertirse en el laboratorio con los ejercicios de Arrays, vale?   Hasta pronto!.

* <4/05/2013> Algoritmia y programación.

Estructuras contenedoras de datos: ARREGLOS

Ejercicios: Realizar las siguientes extensiones al programa TestNotas:

a) Agregar un método para calcular la nota  promedio del curso. b) Un método para determinar cuántas notas son superiores al promedio del curso.  c) Métodos para determinar la nota más alta y la más baja del curso.  d) Métodos para determinar cuántos ganaron y cuántos perdieron el curso.

package mundo;

/**
* Ejemplo simplificado: Declaración de Contenedora de tamaño fijo
* @(#)TestNotas.java
*
*/

import javax.swing.*;
//Especificación de la Clase

class Curso{
// Constantes
public final static int NUMEST = 5;

// Atributos
private double[] notas; // Declaración del arreglo

// Métodos
public Curso(){
notas= new double[NUMEST]; // Método constructor
}

public void setNotas(){
int i=0; // Declaración del índice
for(i=0;i < NUMEST;i++){ // Instrucción repetitiva
notas[i]=Double.parseDouble(JOptionPane.showInputDialog(“Nota “+(i+1)+”?”)); // Llenar el arreglo
}
}

public void getNotas(){
int i=0; String salida=”Listado de Notas\n”;
for(i=0;i < NUMEST;i++){
salida+=notas[i]+”\n”; // Mostrar el arreglo
}
JOptionPane.showMessageDialog(null,salida); // Mostrar el arreglo
}
}

// Implementación
public class TestNotas {

public static void main(String[] args) {
// Creación de Objetos o Instancias de las Clases
Curso cur = new Curso();
cur.setNotas();
cur.getNotas();
JOptionPane.showMessageDialog(null,”Hasta pronto!”);
}
}

 

* <29/04/2013Laboratorio 6:  Algoritmia y Programación (ciclos).

Codificar en lenguaje Java los siguientes ejercicios utilizando instrucciones repetitivas (for, while, y  do while), respectivamente:

  1. Calcular e imprimir los valores que toma la ecuación Y =  X² + 4X + 3 cuando X va de 1 a 10.

  2. La empresa “TOLModels” desea seleccionar para un evento local a un grupo de personas que cumplan los siguientes requisitos: Mujeres con edad igual o superior a 17 años e inferior a 20 años, con un peso menor a 55 kg y estatura entre 1.70 y 1.75 m.  Hombres con edad entre los 18 y 21 años y con estatura superior a 1.75 m.  a) Cuántas mujeres fueron seleccionadas,    b) Porcentaje de hombres seleccionados,    c) Estatura promedio de todos los aspirantes, y    d) Peso de la mujer más joven seleccionada.

  3. Para las elecciones a la Alcaldía de Chaparral, se inscribieron cuatro candidatos (con identificadores 1,2,3,4). Escriba un programa que permita determinar e imprimir el número de votos correspondiente a cada candidato y el porcentaje que obtuvo respecto al total de los votantes. El final de datos está representado por un cero. ¿Cuál es el nuevo alcalde de Chaparral?

 

* <29/04/2013>  Ejercicio: Algoritmia y Programación

En el Banco “SinFondos” desean registrar las transacciones realizadas a diario. Los tipos de transacción son:  ‘C‘ si la transacción es una consignación se debe actualizar el saldo del cliente,    ‘R‘  si la transacción es un retiro se debe tener en cuenta si el saldo le alcanza a la persona; se debe dejar un saldo mínimo de $20000 en la cuenta y el valor mínimo de cada transacción es de $20000. Si el retiro es aprobado se debe actualizar el saldo. Por cada cliente se debe visualizar: Número de la cuenta y nombre del cliente, tipo, fecha y valor de transacción, y nuevo saldo.

* <22/04/2013>  Ejercicio: Algoritmia y Programación

En el almacén “Don Pingüino” se realiza descuento en las compras en función del valor total de dichas compras. Si se paga con tarjeta de crédito, el descuento en las compras se disminuye un 5%. Calcular el impuesto del IVA e imprimir el valor a cobrar al cliente en función de las siguientes premisas: a) Valor < $40000: sin descuento, b) Valor comprendido entre $40000 y $80000: descuento del 10%, c) Valor superior a $80000: descuento del 14%.

* <22/04/2013>  Algoritmia y Programación

Analizar e implementar la siguiente instrucción condicional, correspondiente al caso de IVALANDIA (evaluación anterior). Modificar el programa para que permita el proceso con varios artículos:

if (costoArtic > 1000)
iva = 100*.30 + (costo – 200)*.50;
else
if (costoArtic > 200)
iva = 100*.30 + (costo – 200)*.40;
else
if (costoArtic > 100)
iva = (costo – 100)*.30;
else
iva = 0;

 

 

* <18/03/2013Evaluación 2:  Algoritmia y Programación (Creación de Clases y Objetos).

Escriba un programa en Java para solucionar el siguiente caso (tiempo máximo 60 minutos) :

AnclaSteven Morgan es el marinero encargado de revisar la carga que se embarca en el carguero “El Pirata de Curramba”. El carguero colombiano sólo puede transportar 10000 Kilos de carga. Juan Valdez  lleva café a Europa y en cada viaje debe indicarle a Morgan el número de cajas que desea llevar y el peso por caja (es igual para todas las cajas). El marinero, haciendo un cálculo simple, debe decir cuántas cajas se pueden embarcar en un viaje, para cargarlas en el barco sin que este se hunda. También debe informarle al señor Valdez el peso total que esta carga representa.

* <11/03/2013Laboratorio 5:  Algoritmia y Programación.
* <02/03/2013> Algoritmia y Programación.

Insertar imagen en una ventana simple de diálogo

package GmV;

import javax.swing.*;

// El programa usa la clase JOptionPane

//import java.lang.*;

/** * 11/11/2011

* @author Viejo Gus */

public class Tunombre {

public static void main(String arg []){

String nom,resp; int opc;

ImageIcon c = new ImageIcon(“Penguin.gif”);  // objeto de imagen a insertar

do{  // instrucción repetitiva (ciclo)

nom=JOptionPane.showInputDialog(“Cual es tu nombre?”);

JOptionPane.showMessageDialog( null, “Hola, “+nom+”\nBienvenido(a) al mundo              Java!!”,”Saludo”,JOptionPane.INFORMATION_MESSAGE,c);  // agregar objeto de imagen

resp=JOptionPane.showInputDialog(“Desea continuar? 1=Sí  0=No “);

opc=Integer.parseInt(resp);

}while(opc==1);

//System.exit(0); // Terminar el programa con la ventana

} // Fin del método main

}

 

* <25/02/2013> Algoritmia y Programación.

Laboratorio 3:  Introducción a la programación en lenguaje Java

Con base en los videotutoriales de lenguaje Java, explorar el entorno de programación de Eclipse y el compilador del lenguaje.  (http://www.gmv.enibague.com/?page_id=733)

Codificar la solución de los siguientes ejercicios:

1. El ejercicio clásico de Dennis Ritchie ->  mostrar en la pantalla el mensaje: “Hola mundo!”.

2. El algoritmo planteado en clase: leer las 4 notas de un estudiante de Algoritmia y Programación y calcular su nota definitiva correspondiente.

 

* <23/02/2013> Algoritmia y Programación.

Consulta:  tipos de clases o estereotipos en UML

.

* <18/02/2013> Algoritmia y Programación.

Taller de evaluación 1 :  Modelado de sistemas (con UML )

Modelar diversas perspectivas de un sistema para la empresa CINEMARK, en Ibagué. El modelo del sistema deberá describir procesos como venta de boletas, reservas,  tarjetas socio Elite, etc.  Representar en Visual Paradigm un Diagrama de CDU con relaciones de extend e include y un Diagrama de Clases (con Generalización).

El taller debe ser desarrollado (por parejas) y enviado antes de las 8pm a la cuenta gustavo.martinez@unibague.net

Integrar el modelado del sistema en un archivo .doc

Éxitos!

 

* <11/02/2013> Algoritmia y Programación.

Laboratorio 2:  Diagrama de Clases y CDU (Notación UML )

Con base en el modelado del sistema para un hotel, representar en Visual Paradigm un Diagrama de CDU con relaciones de extend e include y un primer Diagrama de Clases.

* <04/02/2013> Algoritmia y Programación.

Laboratorio 1:  Diagrama de Casos de Uso (Notación UML )

http://www.wix.com/gmvpenguin/caso-de-uso

El siguiente ejercicio sobre el Lenguaje de Modelado Unificado, UML, deberá ser desarrollado en laboratorio el día 4 de febrero, de 5 a 6pm.  Utilizando una herramienta CASE, como Visual Paradigm, modelar los requerimientos funcionales para un módulo del sistema de información del ‘Hotel Ambalá’, a través del diagrama de Casos de Uso y realizar su descripción textual. El diagrama tendrá mínimo dos actores y cuatro casos de uso.

 ¿Por qué debemos construir modelos? ¿por qué no construimos el sistema y ya? La respuesta es que podemos construir modelos de tal forma que resaltemos o enfaticemos ciertas características críticas de un sistema, al mismo tiempo que quitamos énfasis a otros aspectos del sistema.” (Ed Yourdon)

 

* <17/11/2012> Evaluación final – Algoritmia y Programación.

En el estadio ‘Manuel Murillo Toro‘ se tienen 5 tipos diferentes de localidades o tribunas, las cuales se identifican por una clave numérica (valor comprendido entre 1 y 5). Codifique un programa que permita:

a) Calcular e imprimir la recaudación total del estadio para un partido (ej. TOLIMA CALI ).

b) Para cada venta por localidad, mostrar la cantidad y el valor total de las boletas de esa venta. (2 puntos)

c) Imprimir los datos de la última boleta vendida (ver modelo en:  http://gmvpenguin.wix.com/miboleta)

d) Visualizar la cantidad total de boletas vendidas de cada tipo de tribuna.

 

 

* <29/10/2012> Algoritmia y Programación.

Laboratorio 6:

Explorar el siguiente enlace y:  descargar, importar al IDE (Eclipse/NetBeans), editar, compilar y ejecutar el proyecto Notas de un Curso

Estructuras contenedoras de datos -> https://dl.dropbox.com/u/90602531/Nivel_3.pdf

 

* <08/10/2012> Algoritmia y Programación.

Laboratorio 5:

1> En el siguiente ejercicio, implementar los métodos para calcular Intensidad y Resistencia. Resolver este mismo problema cambiando la instrucción switch/case por un condicional if-else-if

/** Ejemplo de condicional switch/case

* @Programa: LeydeOHM.java
*
* @author : vGus
* @version 1.00 2009/10/5
*/
import javax.swing.*;

class Ohm{
private double i,r,v;
public void set_voltaje(){
v=Double.parseDouble(JOptionPane.showInputDialog(“Voltaje (Voltios) ?”));
}
public void set_intensidad(){
i=Double.parseDouble(JOptionPane.showInputDialog(“Intensidad (Amperios) ?”));
}
public void set_resistencia(){
r=Double.parseDouble(JOptionPane.showInputDialog(“Resistencia (Ohmios) ?”));
}
public double get_intensidad(){
return i;
}
public double get_resistencia(){
return r;
}
public double get_voltaje(){
return v;
}
public void calcularvoltaje(){
v=i*r;
}
}

public class LeydeOHM {

public static void main(String arg[]){
String opcion; char opc;
Ohm LeyO = new Ohm();
opcion=JOptionPane.showInputDialog(null,”MENU\n\n<V> oltaje\n<I> ntensidad\n<R> esistencia\n\nSu opción?”,”Formas de la ley de OHM”,JOptionPane.INFORMATION_MESSAGE);
opc = opcion.charAt(0);
switch(opc){
case ‘v’ :
case ‘V’ : LeyO.set_intensidad();
LeyO.set_resistencia();
LeyO.calcularvoltaje();
JOptionPane.showMessageDialog(null,”Voltaje = “+LeyO.get_voltaje(),”Voltios”,JOptionPane.INFORMATION_MESSAGE);
break;
case ‘i’ :
case ‘I’ : break;
case ‘r’ :
case ‘R’ : break;
default: JOptionPane.showMessageDialog(null,”ERROR… opción no es válida!!!”);
}
}
}

* <24/09/2012> Algoritmia y Programación.

Evaluaciòn individual de PROGRAMACIÓN (tiempo màximo: 60 min.)

a) Especificar e implementar la clase Pelicula con los siguientes atributos: código, título, género, protagonista, país, fecha de estreno, duración en minutos y costo de producción.

b) Instanciar las clases (crear objetos) e implementar los métodos de acceso respectivos y un método de comportamiento para incrementar en un 7% el costo de producción de la película.

Éxitos!

* <24/09/2012> Algoritmia y Programación.

Laboratorio 4:

Crear la clase Factura en Java con su respectiva interfaz e implementar sus métodos de acceso y un método que permita calcular y retornar el iva del 16% sobre el valor de la factura. El programa debe mostrar en la ventana de salida:

nombre del cliente, cedula, fecha, valor de la compra, valor del impuesto IVA y valor total a pagar.

* <17/09/2012> Algoritmia y Programación.

/**

* Ejemplo simplificado: Especificación, Asociación e implementación de Clases en Java
* @(#)InterfazEmpleado.java
*
* @author vGus
* @version 1.00  2011/11/11
*/

import javax.swing.*;

// Especificación de la Clase Fecha
class Fecha{
// Atributos
private int dd,mm,aa;
// Métodos
public void setFecha(int dd,int mm,int aa){ // con parámetros y sin retorno de valor
this.dd = dd;
this.mm = mm;
this.aa = aa;
}
public int getDia(){ // Sin parámetros
return dd; // con retorno de valor
}
public int getMes(){
return mm;
}
public int getAnio(){
return aa;
}
}
//Especificación de la Clase Empleado
class Empleado{
// Atributos
private int codigo;
private String nombre;
private double salario;
private Fecha fechaIngreso;
// Métodos
public void setCodigo(int codigo){ // de acceso <entrada>
this.codigo=codigo;
}
public void setNombre(String nombre){
this.nombre=nombre;
}
public void setSalario(double salario){
this.salario=salario;
}
public int getCodigo(){ // de acceso <salida>
return codigo;
}
public String getNombre(){
return nombre;
}
public double getSalario(){
return salario;
}
public int getDiaIngres(){
return (fechaIngreso.getDia());
}
public int getMesIngres(){
return (fechaIngreso.getMes());
}
public int getAñoIngres(){
return (fechaIngreso.getAnio());
}
public double getBonif(){ // de comportamiento
return (salario+salario*7/100);
}
}

// Implementación
public class InterfazEmpleado { // Inicio del programa

public static void main(String[] args) {
int dd,mm,aa,codigo;
double salario;
String nombre;
// Creación de Objetos o Instancias de las Clases
Empleado emp = new Empleado();
Fecha fechaIngreso = new Fecha();
// Entrada y conversión de datos
codigo=Integer.parseInt(JOptionPane.showInputDialog(”Codigo del empleado?”));
nombre=JOptionPane.showInputDialog(”Nombre del empleado?”);
salario=Double.parseDouble(JOptionPane.showInputDialog(”Salario?”));
dd=Integer.parseInt(JOptionPane.showInputDialog(”Fecha de ingreso a la empresa: Dia?”));
mm=Integer.parseInt(JOptionPane.showInputDialog(”Mes?”));
aa=Integer.parseInt(JOptionPane.showInputDialog(”Año”));
// Paso de mensajes
fechaIngreso.setFecha(dd,mm,aa); // Mensaje con paso de parámetros
emp.setCodigo(codigo);
emp.setNombre(nombre);
emp.setSalario(salario);
// Salida de datos
JOptionPane.showMessageDialog(null, “Codigo: “+emp.getCodigo()+”\nNombre: “+emp.getNombre()+”\nSalario: $”+emp.getSalario());
JOptionPane.showMessageDialog(null, “Fecha de ingreso a la empresa (dd/mm/aa): “+fechaIngreso.getDia()+”/”+fechaIngreso.getMes()+”/”+fechaIngreso.getAnio()+”\nNuevo salario (bonificacion 7%): $”+emp.getBonif());
}
} // Fin del programa

* <03/09/2012> Algoritmia y Programación.

* <17/04/2012> Seminario Regional III.

Pueden acceder a la formulación del proyecto de asignatura con el enlace del curso en mi rinconcito Web.

* <16/04/2012> Algoritmia y programación.

Estructura contenedora de datos: ARREGLOS

 

/**
* Ejemplo simplificado: Declaración de Contenedora de tamaño fijo
* @(#)TestNotas.java
*
*/

import javax.swing.*;
//Especificación de la Clase

class Curso{
// Constantes
public final static int NUMEST = 5;

// Atributos
private double[] notas; // Declaración del arreglo

// Métodos
public Curso(){
notas= new double[NUMEST]; // Método constructor
}

public void setNotas(){
int i=0; // Declaración del índice
for(i=0;i < NUMEST;i++){ // Instrucción repetitiva
notas[i]=Double.parseDouble(JOptionPane.showInputDialog(“Nota?”)); // Llenar el arreglo
}
}

public void getNotas(){
int i=0;
JOptionPane.showMessageDialog(null,”Listado de Notas\n”);
for(i=0;i < NUMEST;i++){
JOptionPane.showMessageDialog(null,notas[i]); // Mostrar el arreglo
}
}
}

// Implementación
public class TestNotas {

public static void main(String[] args) {
// Creación de Objetos o Instancias de las Clases
Curso cur = new Curso();
cur.setNotas();
cur.getNotas();
JOptionPane.showMessageDialog(null,”Hasta pronto!”);
}
}

* <12+1/04/2012> Seminario Regional III.

Taller de Programación: Extensiones al Proyecto Empresa de Transporte.

1. [60%] Los 4 camiones de la empresa de transporte son de las siguientes marcas: Chevrolet, Ford, Hyundai y Mercedes-Benz. Modifique el programa para manejar estas constantes. Cambie el método “metodo1() ” de la clase correspondiente para que devuelva la marca del camión con mayor consumo. En la “opción 1″ de la interfaz, incluya como mensaje de respuesta: “El camión de mayor consumo es el de marca ” <retornoMetodo>.

2. [40%] Modifique el método “metodo2()” de la clase respectiva para que retorne cuántos camiones tienen capacidad de carga inferior a 14000 Kg. Incluya como mensaje de respuesta en la “opción 2 de la interfaz”: “La empresa tiene <retornoMetodo> camiones con capacidad de carga inferior a 14000 Kg”.

* <09/04/2012> Algoritmia y Programación.

Laboratorio (17:00 a 18:30).  Desarrollar en lenguaje Java el siguiente ejercicio:

Implementar un programa con la clase Curso que permita: a) Leer la nota definitiva de los estudiantes de un curso, b) Calcular la nota promedio del curso, c) Determinar cuántos estudiantes aprobaron el curso, d) Cuántos obtuvieron nota definitiva superior o igual a 2.5 y < 3.0,  y  e) Cuántos estudiantes están por debajo del promedio del curso.

 

* <12/03/2012> Algoritmia y Programación.

Laboratorio (17:00 a 18:30).  Desarrollar en lenguaje Java el siguiente ejercicio:

Un taxista trabaja en la empresa “PengüiTAXI” en la cual le asignan 3 rutas: Ruta A con un valor de $4000, Ruta B con valor $6000 y Ruta Ccon valor $8000.  Además, debe cobrar un recargo de $500 si está trabajando entre las 20:00 y las 05:00.  Si es festivo, hay un recargo de $100.  ¿Cuánto debe pagar un usuario que tome el servicio?

* <05/03/2012> Algoritmia y Programación.

Evaluación individual:

1. Agregar la fecha de nacimiento del empleado e implementar sus métodos.

2. Implementar un método para calcular la edad actual del empleado.

* <02/03/2012> Seminario Regional III.

Buenas noches.Una competencia necesaria e importante para el ingeniero de sistemas de hoy y del mañana, es su dominio del idioma inglés. En el siguiente enlace, Usted encontrará una presentación de Ian Sommerville sobre Requirements:
http://www.unibague.edu.co/~gustavo.martinez/cursos/is/modelos.htmlPor favor, trate de no utilizar ningún traductor, bríndese la oportunidad de autoevaluar su nivel de comprensión de lectura en inglés técnico y resuelva los siguientes interrogantes:
  1. Cuál es la diferencia entre los Requerimientos del Usuario y los Requerimientos del Sistema?
  2. Mencione dos ejemplos de requerimientos: funcionales, no funcionales y requerimientos del dominio.
  3. Cómo se clasifican los Requerimientos no funcionales?
  4. a) Quiénes pueden ser los usuarios de un documento de Requerimientos. b) Defina los términos: completitud y consistencia.
  5. Otros tipos de Requerimientos son los considerados “duraderos” y “volátiles”. Descríbalos y presente ejemplos.

* <06/02/2012> Algoritmia y Programación.

* <06/02/2012 Seminario Regional III.

 

Bienvenidos a éste nuevo semestre académico. Recuerden que el buen manejo de herramientas computacionales modernas, dominio del inglés como segunda lengua y habilidades de comunicación, son competencias fundamentales para un profesional de Sistemas exitoso. Si Usted quiere ser cada vez mejor: sea competitivo. Si quiere ser exponencialmente mejor: sea cooperativo.

A continuación, les comparto algunas de las competencias profesionales para un Ingeniero de Sistemas, según ACM/IEEE:

  • Desarrollar, mantener y evaluar servicios y sistemas software que satisfagan todos los requisitos del usuario y se comporten de forma fiable y eficiente, sean asequibles de desarrollar y mantener y cumplan normativas de calidad, aplicando las teorías, principios, métodos y prácticas de la informática.
  • Valorar las necesidades del cliente y especificar los requisitos software para satisfacer esas necesidades.
  • Construir, configurar, gestionar, mantener y evaluar servicios y sistemas software grandes, complejos y/o críticos demostrando conocimiento de los riesgos potenciales.

* <12/10/2011> Algoritmia y Programación.

Actividad de aprendizaje: TALLER DE PROGRAMACIÓN

A partir del caso planteado en el siguiente enlace: http://gmvpenguin.wix.com/miboleta , modelar un sistema simple para generar la boleta de ingreso a un partido de fútbol en el estadio y visualizar los siguientes resultados

(Tribuna, fecha, hora, numero de boleta, valor, equipos…).

* <28/09/2011> Algoritmia y Programación.

* <30/09/2011> Seminario Regional III.

Evaluación práctica 1

Esta prueba es estríctamente en pareja. El uso de cualquier herramienta de comunicación (chat, correo, teléfono, etc) será considerado fraude. Debe entregar su trabajo antes de salir del laboratorio

<!–[if !supportLists]–>·<!–[endif]–>Descargue de CUPI2 el ejemplo de la Tienda (http://cupi2.uniandes.edu.co/cursos/apo1/ejercicios/n2_tienda/index.htm).

<!–[if !supportLists]–>·<!–[endif]–>Desarrolle sobre este proyecto las modificaciones que se plantean a continuación:

En la tienda se tienen a la venta los siguientes productos:

(1) Resma papel ecológico, producto de papelería, a $9.400 pesos la unidad.

(2) Kola & Pola, producto de supermercado, a $1500 pesos cada lata.

(3) Leche de soya, producto de supermercado, a $2.800 la bolsa.

(4) Dolex gripa, producto de droguería, a $4.900 la caja.

Se han vendido en la tienda 7 resmas, 25 latas de Kola & Pola, 13 bolsas de leche y 7 cajas de ‘Dolex’, y en la caja de la tienda no hay dinero.

Por último tenemos la siguiente tabla para resumir el inventario de unidades de la tienda y el tope mínimo que se debe alcanzar para poder hacer un nuevo pedido:

Producto

Cantidad en bodega

Tope mínimo

Resma pap

41

15

Kola&Pola

55

8

Leche soya

36

10

Dolex gripa

27

12+1

1.Ubique la clase InterfazTienda y su constructor. Modifique el código dentro del constructor para que la tienda comience en el estado que se define en el escenario anterior.

2.Modifique el método llamado metodo1( ) de la clase Tienda para que disminuya en 3 unidades el tope mínimo de cada producto y visualice la información actualizada.

3.Agregue a la clase Producto un atributo de tipo boolean llamado “canastaFamiliar”. En el constructor de la clase inicialícelo en false. Modifique el método calcularPrecioFinal( ) de Producto, para que, si el producto pertenece a la canasta familiar, le haga un descuento de 5% sobre el valor unitario.

4.Agregue a la clase Producto un método llamado volverDeCanastaFamilar( ) que asigna el valor true al atributo llamado “canastaFamiliar”.

5.Modifique el método llamado metodo2( ) de la clase Tienda para que convierta en productos de la canasta familiar todos aquellos productos de la tienda que sean de supermercado y que cuesten menos de $5000.

Verificar que la implementación sea correcta.

 

* <09/08/2011> Algoritmia y Programación.

Hola, jóvenes. Gracias a DIOS se desarrolló positivamente mi cirugía de columna en la Clínica Ibagué. La Vertebroplastia de dos niveles duró 2 hrs.  y las cosas salieron bien. Agradezco su apoyo y comprensión.

Mientras logro recuperarme, los invito a iniciar nuestro trabajo académico con una revisión conceptual acerca del modelado de Análisis y Diseño Orientado a Objetos con UML.  A continuación, un punto de partida: http://www.unibague.edu.co/~gustavo.martinez/cursos/poo/doo.html

* <07/09/2011> Un primer programa en Java

 

/**
* Ejemplo simplificado: Especificación e implementación de Clases en Java
* @(#)TestEmpleado.java
*
* @author vGus
* @version 1.00 2010/9/03
*/

import javax.swing.*;

// Especificación de la Clase Fecha
class Fecha{
// Atributos
private int dd,mm,aa;
// Métodos
public void setFecha(int dd,int mm,int aa){ // con parámetros y sin retorno de valor
this.dd = dd;
this.mm = mm;
this.aa = aa;
}
public int getDia(){ // Sin parámetros
return dd; // con retorno de valor
}
public int getMes(){
return mm;
}
public int getAnio(){
return aa;
}
}
//Especificación de la Clase Empleado
class Empleado{
// Atributos
private int codigo;
private String nombre;
private double salario;
private Fecha fechaIngreso;
// Métodos
public void setCodigo(int codigo){ // de acceso <entrada>
this.codigo=codigo;
}
public void setNombre(String nombre){
this.nombre=nombre;
}
public void setSalario(double salario){
this.salario=salario;
}
public int getCodigo(){ // de acceso <salida>
return codigo;
}
public String getNombre(){
return nombre;
}
public double getSalario(){
return salario;
}
public int getDiaIngres(){
return (fechaIngreso.getDia());
}
public int getMesIngres(){
return (fechaIngreso.getMes());
}
public int getAñoIngres(){
return (fechaIngreso.getAnio());
}
public double getBonif(){ // de comportamiento
return (salario+salario*7/100);
}
}

// Implementación
public class TestEmpleado { // Inicio del programa

public static void main(String[] args) {
int dd,mm,aa,codigo;
double salario;
String nombre;
// Creación de Objetos o Instancias de las Clases
Empleado emp = new Empleado();
Fecha fechaIngreso = new Fecha();
// Entrada y conversión de datos
codigo=Integer.parseInt(JOptionPane.showInputDialog(“Codigo del empleado?”));
nombre=JOptionPane.showInputDialog(“Nombre del empleado?”);
salario=Double.parseDouble(JOptionPane.showInputDialog(“Salario?”));
dd=Integer.parseInt(JOptionPane.showInputDialog(“Fecha de ingreso a la empresa: Dia?”));
mm=Integer.parseInt(JOptionPane.showInputDialog(“Mes?”));
aa=Integer.parseInt(JOptionPane.showInputDialog(“Año”));
// Paso de mensajes
fechaIngreso.setFecha(dd,mm,aa); // Mensaje con paso de parámetros
emp.setCodigo(codigo);
emp.setNombre(nombre);
emp.setSalario(salario);
// Salida de datos
JOptionPane.showMessageDialog(null, “Codigo: “+emp.getCodigo()+”\nNombre: “+emp.getNombre()+”\nSalario: $”+emp.getSalario());
JOptionPane.showMessageDialog(null, “Fecha de ingreso a la empresa (dd/mm/aa): “+fechaIngreso.getDia()+”/”+fechaIngreso.getMes()+”/”+fechaIngreso.getAnio()+”\nNuevo salario (bonificacion 7%): $”+emp.getBonif());
}
} // Fin del programa

***
* <04/09/2010>  Retroalimentación (Sistema Messenger):

Listado de Requerimientos del Cliente:
R1 – Conectarse al servidor
R2 – Agregar un amigo
R3 – Iniciar una conversación

Listado de Requerimientos del Servidor:
R1 – Recibir conexiones
R2 – Agregar un amigo
R3 – Iniciar una conversación


<!–[if !supportLineBreakNewLine]–><!–[endif]–>

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *