jueves, 23 de junio de 2016

Instalación de MathType en Windows Versión completa

En esta ocasión les traigo los paso para la instalación del editor de formulas MathType que el cual es una versión muy completa, esta herramienta que se adhiere a Word es muy funcional a la hora de la insertar de formulas ya sea para un trabajo formal o ya sea un trabajo para la escuela, pues este cuenta con muchas herramientas y expresiones matemáticas útiles que en el editor de formulas de Word no tiene, ademas de darle un toque mas profesional a los trabajos, sin mas que decir de ello los pasos para la instalación son los siguientes:

Paso 1:

Ir a la pagina oficial de Mathtype que es la siguiente    http://www.dessci.com/en/products/mathtype/
la página es como se muestra en la imagen



Paso 2:

Descargar dando click en el boton que se muestra en la imagen con el circulo rojo de arriba.


Paso 3:

Instalar MathType dando click sobre el Archivo descargado como se muestra en la siguiente imagen:



Paso 4:

Aceptar términos y condiciones y pulsamos siguiente:



Paso 5:

Una vez finalizada la instalación se debe validar con licencia a Mathtype como se muestra en la imagen de abajo:



¨Paso 6:

Damos Clock a next y luego a OK


Paso 7:

Esparamos a que  la instalación finalice y listo.


Podemos ya utilizar MathType en Word


Si no quedo muy claro de como hacer la instalación pueden checar el siguiente video donde hago la instalación paso a paso:
Video Tutorial


Bueno Muchas Gracias por Visitarme Espero que la información haya sido útil  Hasta la próxima. 



lunes, 20 de junio de 2016

Sistema de Administración de Procesos Método SJF (Shortest-Job-First) en Java

El método SJF o Trabajo mas  Corto ese tipo de administración de procesos se basa en ejecutar los procesos mas cortos sin importar cuantos llegues o cuales procesos lleguen primero, el principal objetivo es la reducción del tiempo de espera ya que al ejecutarse primero los procesos con menos pero se hará de la manera mas rápida, aunque también tiene sus contra partes ya que al ejecutarse siempre los procesos mas pequeños siempre será así eso conlleva a  que si hay un proceso tal vez mas grande pero existen demasiados procesos pequeños se atenderán esto siendo que tal vez el procesos "grande" sea mas rápido de atender ya que es solo uno. 

Un ejemplo de lo que se describe en el texto anterior:

Sean los Procesos A = 10, B = 3, C = 1, D = 12, E = 2, F = 3.

Primero Proceso en Entrar C = 1 el tiempo de espera es 0.

C = 0
Segundo Proceso es E = 2  el tiempo de espera es 1.

E = 0

Tercer Proceso es F = 3 el tiempo de espera es 3.

F = 0

Cuarto Proceso es B = 3 el tiempo de espera es 6.

B = 0

Quinto Proceso es A = 10 el tiempo de espera es 9.

A = 0

Sexto Proceso es D = 12 el  tiempo de espera es 18.

D = 12

Con ese pequeño ejemplo se muestra como funciona el este algoritmo. Pasamos a la parte del condigo en Java:





// Creación del Método
public void sjf(){
    // Se Define el número de Porcesos a ejecutar
         tamar=Integer.parseInt(nprocesos.getText());
    // Inicialización de Variables
      int p[] = new int[tamar];
        int co[] = new int[tamar];
        int es[] = new int[tamar];
        int vuelta[] = new int[tamar];
        int procesos_originales[] = new int[tamar];
    // Recibe el Tamaño de los procesos
        for (int i = 0; i < tamar; i++) {
            procesos_originales[i] = co[i] = p[i] = Integer.parseInt(JOptionPane.showInputDialog("introduza el tamanio "
                    + "del proceso [" + (i + 1) + "]"));
        }
    //  Se hace el proceso para elegir el proceso con menos peso
        for (int i = 0; i < tamar - 1; i++) {
            for (int j = i + 1; j < tamar; j++) {
                if (p[i] > p[j]) {
                    temp = p[i];
                    p[i] = p[j];
                    p[j] = temp;
                }
            }
        }
        
        for (int i = 0; i < p.length; i++) {
                       txtoriginales.append("\nP[" + (i + 1) + "] : " + p[i] + "\t");
        }

        for (int i = 0; i < tamar - 1; i++) {
            for (int j = i + 1; j < tamar; j++) {
                if (co[i] > co[j]) {
                    temp = co[i];
                    co[i] = co[j];
                    co[j] = temp;
                }
            }
        }
        vuelta[0] = 0;
    // Se calcula la espera de los Procesos
        for (int i = 1; i < tamar; i++) {
            vuelta[i] = vuelta[i - 1] + co[i - 1];
            total = total + vuelta[i];
            
        }
    // Se calculan las estadisticas de los procesos
        for (int i = 0; i < p.length; i++) {
            es[i] = vuelta[i] + co[i];
            tiempo_espera += vuelta[i];
            tiempo_ida += es[i];
            txtordenados.append("\nP[" + (i + 1) + "] : " + procesos_originales[i] + "\t");

        }
    // Se muestran los resultados
        txtesta.append("\nProceso\ttamanio\tespera\tida");
        for (int i = 0; i < p.length; i++) {
            txtesta.append("\np[" + (i + 1) + "] \t   " + co[i] + "\t   " + vuelta[i] + "\t" + es[i]);
        }
        promedioespera.setText(""+(tiempo_espera / tamar));
        promedioida.setText("" + (tiempo_ida / tamar));
     }

Espero le haya servido la Información Gracias por Visitarme les dejo el Código.

Aquí esta el Código el Un proyecto de NetBeans:


Algoritmo SJF

miércoles, 15 de junio de 2016

Sistema de Administración de Procesos FCFS (Firts-Come, First-Served) en Java

La administración de procesos mediante este método ejecuta los procesos según llegues en cola, lo que significa que el primer proceso que llegue será el primero en ser atendido y el primero en salir por eso mismo también se le conoce como el método FIFO (Firts Intput, Firts Output), loa cual significa que cada procesos tarde dependiendo del numero de procesos que se encuentran en cola, entonces tomando en principio del método se plantea el siguiente ejemplo:
Llegan tres procesos sean los cuales A = 23 , B = 12 y C = 1

Tiempo de espera de A es 0 ya que es el primero en llegar

A = 0

Tiempo de espera de B es 23  ya que espero a la ejecución del A

B = 0

Tiempo de espera de C es de 35 por la espera de  los procesos A y B

C=0

Ahora seguimos a la parte del código el cual esta realizado en el lenguaje Java.

Este es el método que hace todos los cálculos


public void fcfs(){
    //Se define el número de procesos       
    tamar=Integer.parseInt(nprocesos.getText()); 
    //Inicialización de Variables para el almacenamiento de los datos    
      int p[] = new int[tamar];
        int co[] = new int[tamar];
        int es[] = new int[tamar];
        int vuelta[] = new int[tamar];
    //Entrada de los valores de Cada procesos    
        for (int i = 0; i < tamar; i++) {
            co[i] = p[i] = Integer.parseInt(JOptionPane.showInputDialog("introduza el tamanio "
                    + "del proceso [" + (i + 1) + "]"));
        }
        //se imprime el valor de cada uno de los procesos
        for (int i = 0; i < p.length; i++) {
        
            txtoriginales.append("\nP[" + (i + 1) + "] : " + p[i] + "\t");
        
        }
        vuelta[0] = 0;
        //Se calcula el total de rondas que tadan los procesos
        for (int i = 1; i < tamar; i++) {
            vuelta[i] = vuelta[i - 1] + co[i - 1];
            total = total + vuelta[i];
        }
        //se calcula el tiempo de espera de cada una de los procesos
        for (int i = 0; i < p.length; i++) {
            es[i] = vuelta[i] + co[i];
            tiempo_espera += vuelta[i];
            tiempo_ida += es[i];

        }
        //Impresion de los datos Calculados
txtesta.append("\nProceso\ttamanio\tespera\tida" );
        for (int i = 0; i < p.length; i++) {
            txtesta.append("\np[" + (i + 1) + "] \t   " + co[i] + "\t   " + vuelta[i] + "\t" + es[i]);
        }
        //Se Calcula el promedio de las rondas y de las esperas de los procesos
        promedioespera.setText(""+ (tiempo_espera / tamar));
        promedioida.setText(""+ (tiempo_ida / tamar));
     }

Espero haya sido de ayuda.

Aquí te dejo el código:

FCFS