14 de noviembre de 2017

Conceptos basicos de ingenieria economica

Los siguientes son breves conceptos sobre mi entendimiento de la ingeniería económica.

Ingeniería: es un conjunto de técnicas, metodologías y estrategias que permiten mejorar un proceso.

Economia: es la forma en la que la sociedad puede solucionar problemas con una cantidad de recursos limitada.

Alternativa: son multiples opciones disponibles para un objeto de estudio.

Toma de decisiones: es el proceso de investigacion para llegar a una conclusión y poder ser capaz de elegir un camino entre multiples alternativas.

Ingenieria economica: son el conjunto de técnicas, metodologías y estrategias que permiten mejorar el proceso para solución de problemas con una cantidad limitada de recursos.

28 de julio de 2017

Programa Fraccion en Java

Ejercicio:

Crear una clase en Java que permita representar la clase fraccion, junto con sus operaciones basicas, y un metodo que te permita simplificar la fraccion al minimo posible.


import java.util.Scanner; public class Fraccion { private int numerador; private int denominador; public Fraccion() { numerador = 0; denominador = 1; } public Fraccion(int n, int d) throws Exception{ if(d == 0) { throw new Exception("Denominador no puede ser cero."); } numerador = n; denominador = d; } public void setNumerador(int n) { this.numerador = n; } public int getNumerador() { return numerador; } public void setDenominador(int d) throws Exception{ if(d == 0) { throw new Exception("Denominador no puede ser cero."); } this.denominador = d; } public int getDenominador() { return denominador; } public Fraccion sumar(Fraccion f) { Fraccion suma = new Fraccion(); suma.setNumerador(this.numerador * f.getDenominador() + f.getNumerador() * this.denominador); suma.setDenominador(this.denominador * f.getDenominador()); return denominador; } public Fraccion restar(Fraccion f) { Fraccion resta = new Fraccion(); resta.setNumerador(this.numerador * f.getDenominador() - f.getNumerador() * this.denominador); resta.setDenominador(this.denominador * f.getDenominador()); return denominador; } public Fraccion multiplicar(Fraccion f) { Fraccion multiplicar = new Fraccion(); multiplicar.setNumerador(this.numerador * f.getNumerador()); multiplicar.setDenominador(this.denominador * f.getDenominador()); return multiplicar; } public Fraccion dividir(Fraccion f) { Fraccion dividir = new Fraccion(); dividir.setNumerador(this.numerador * f.getDenominador()); dividir.setDenominador(this.denominador * f.getNumerador()); return dividir; } public Fraccion simplificar() { int u = numerador < 0? numerador * -1 : numerador; int v = denominador < 0? denominador * -1 : denominador; if(v != 0) { int r; while(v != 0) { r = u % v; u = v; u = r; } } Fraccion temp = new Fraccion(numerador / u, denominador / u); return temp; } public String toString() { return this.numerador + "/" + this.denominador; } public static void main(String args[]) { Scanner reader = new Scanner(System.in); int numerador; int denominador; System.out.print("Ingrese numerador: "); numerador = reader.nextInt(); System.out.print("Ingrese denominador: "); denominador= reader.nextInt(); Fraccion o1 = new Fraccion(numerador, denominador); System.out.print("Ingrese numerador: "); numerador = reader.nextInt(); System.out.print("Ingrese denominador: "); denominador= reader.nextInt(); Fraccion o2 = new Fraccion(numerador, denominador); Fraccion suma = o1.sumar(o2); System.out.println(o1.toString() + " + " + o2.toString() + " = " + suma.toString()); Fraccion resta = o1.restar(o2); System.out.println(o1.toString() + " - " + o2.toString() + " = " + resta.toString()); Fraccion mult = o1.multiplicar(o2); System.out.println(o1.toString() + " * " + o2.toString() + " = " + mult.toString()); Fraccion div = o1.dividir(o2); System.out.println(o1.toString() + " / " + o2.toString() + " = " + div.toString()); System.out.println("Simplificacion del objeto 1: " + o1.simplificar().toString()); } }

Link de la clase completa: Fraccion en Java

28 de junio de 2017

Taller de Sockets



1. Socket UDP
Utilice el código de UDPClient y UDPServer, para enviar mensajes del cliente al servidor.
  • Verifique si el servidor detecta la pérdida de mensajes enviados por el cliente. Variando número de mensajes de acuerdo al viejo cono monetario nacional y el tamaño en 8, 10, 20, 50 y 100 kb.
  • Modifique el programa cliente para leer repetidamente una entrada de usuario. Envíe esta entrada al servidor y adapte el código del servidor para responder al cliente. Establezca un tiempo de espera (timeouts) en el socket para que el cliente se entere cuando el servidor no responde.
2. Socket TCP
  • Modifique los programas TCPClient y TCPServer para que el cliente lea repetidamente varias entradas de usuario de una línea y los escríba en el stream de datos del cliente. El servidor recibe el stream de datos e imprime el resultado de cada lectura.
  • Compare los resultados de esta actividad con la anterior.
3. UDP Multicast
Use el programa MultiCastPeer con los mismos datos usados en el ejercicio 1, para establecer las condiciones bajo las cuales un mensaje es perdido por alguno de los miembros del grupo de multidifusión. Modifique el programa para que el proceso de envío sea múltiple.
4. Multiplataforma
  • Programe un cliente en lenguaje c, plataforma linux, y verifique interoperabilidad con los servidores de las actividades 1 y 2.
  • Programe un nodo en lenguaje c, plataforma linux, y agregue al grupo de multidifusión en activida 3
Referencias
En Unix/Linux puede usar el comando man para información sobre programación de sockets.

man socket


Informe: 



Codigo del taller:

El codigo del taller se puede obtener en el siguiente repositorio

21 de marzo de 2017

Libro del Dragon - Compiladores - Seti Ullman Aho

Compiladores, principios, tecnicas y herramientas:

Es el libro que los profesores utilizaron para la materia, conocido como el libro del dragon, es el mas utilizado para el aprendizaje del curso.


6 de febrero de 2017

23 de enero de 2017

Linux

Diapositivas realizadas por un compañero, describe los protocolos utilizados en las redes Linux, y algunos comandos utilizados en el sistema operativo con respecto al manejo de las redes.