martes, 12 de noviembre de 2013

Actividad #12

En un lenguaje de su conocimiento debe Hacer un programa para imprimir 100 veces un mensaje
1. Sin usar procedimientos
2. Usando llamadas a procedimientos
3. Incluya una funcion de tiempo que imprima el tiempo de inicio y el tiempo al final para medir el tiempo de ejecución

Codigo del programa en java:

package UnidadIII;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;

public class interfaz implements Runnable {

    public static void main(String[] args) {
        String mensaje = "";
        byte opcion = 1;

        System.out.print("Repetir mensaje 100 veces\n Escribe el mensaje que deseas imprimir: ");
        mensaje = new Scanner(System.in).next();
        System.out.print("\nDesea ejecutarlo:\n Con procedimiento Teclea 1 \n Sin procedimiento Teclea 2\n: ");
        opcion = new Scanner(System.in).nextByte();

        Proc proc=new Proc();
        new Thread(new interfaz()).start();
        new Thread(proc).start();

        if (opcion == 1) {
            new interfaz().procedimiento(mensaje, 0);
        } else if (opcion == 2) {
            for (int i = 0; i < 100; i++) {
                System.out.println(mensaje);
            }
        } else {
            System.err.println("Opcion no valida!");
        }
        System.out.println("Tiempo: " + proc.paraYDevuelve()+ " milisegundos");
    }

    public void procedimiento(String mensaje, int iteracion) {
        System.out.println(mensaje);
        if (iteracion < 100) procedimiento(mensaje, iteracion + 1);
    }

    @Override public void run() {}
}

class Proc implements Runnable {
    private boolean continua = true;
    private int contador = 0;

    public int paraYDevuelve() {
        continua = false;
        return contador;
    }

    @Override public void run() {
        do {
            try {
                Thread.sleep(1);
            } catch (InterruptedException ex) {
                Logger.getLogger(interfaz.class.getName()).log(Level.SEVERE, null, ex);
            }
            contador++;
        } while (continua);
    }
}

Con procedimiento:

Sin procedimiento:



No hay comentarios:

Publicar un comentario