martes, 6 de junio de 2017

PROGRAMA DO WHILE,FOR,SWITCH,IF ELSE

import java.io.*;
import java.awt.Component;
import javax.swing.JDialog;
import javax.swing.JOptionPane;

public class maquinaTuring {
public static int direccion(int dir)
{
    int seleccion=-1;
    boolean errorAsignacion = true;
    while (errorAsignacion == true )
    {
    seleccion = JOptionPane.showOptionDialog(
        null,
        "Selecciona la opcion para el movimiento "+dir,
        "Selector de opciones" ,
        JOptionPane.YES_NO_CANCEL_OPTION,
        JOptionPane.QUESTION_MESSAGE,
        null,    // null para icono por defecto.
        new Object[] { "Avanzar", "Retroseder"},   // null para YES, NO y CANCEL
        "opcion 1");

        if (seleccion != -1)
        {
            errorAsignacion = false;
        }
        else
        {
           errorAsignacion = true;
        }
    }
        return seleccion;
}
    public static void main (String [] args) throws IOException
    {
        boolean error = true;
        //Llenado de la cintilla.
        int cuantos=0;
        String cadenaCintilla="";
        while (error == true)
        {
            cuantos=Integer.parseInt(JOptionPane.showInputDialog("Cuantos números deseas que tenga la cintilla?"));
            cadenaCintilla = JOptionPane.showInputDialog("Dame los datos de la cintilla?");
//          System.out.println(cuantos + "    " + cadenaCintilla.length());
            if (cuantos == cadenaCintilla.length())
                error = false;
            else
            {
                error = true;
                JOptionPane.showMessageDialog(null, "No colocó los datos correctos", "Datos Incorrectos", JOptionPane.ERROR_MESSAGE);
            }
        }
        int[] cinta = new int[cuantos];
        int[] resultado = new int[cuantos];
        for (int i=0; i<cuantos; i++)
        {
            cinta[i] = Integer.parseInt(cadenaCintilla.substring(i,i+1));
        }
        int tipomov0 = -1;
        tipomov0 = JOptionPane.showOptionDialog(null, "Selecciona la opcion para el movimiento ","Selector de opciones" ,JOptionPane.YES_NO_CANCEL_OPTION,
        JOptionPane.QUESTION_MESSAGE,null,    // null para icono por defecto.
        new Object[] { "Avanza y modifica", "Modifica y avanza"},   // null para YES, NO y CANCEL
        "opcion 1");
       
        // movimiento 0
        int movimiento0 = direccion(0);
        System.out.println(movimiento0);
        // salto que tendrá 0
        int salto0=Integer.parseInt(JOptionPane.showInputDialog("Cuantos saltos desea que de la posición 0?"));
        // valor que pondra cuando aparezca }0
        int poner0 = Integer.parseInt(JOptionPane.showInputDialog("Que valor quieres poner cuando sea 0?"));
        // movimiento 1
        int tipomov1 = -1;
        tipomov1 = JOptionPane.showOptionDialog(null, "Selecciona la opcion para el movimiento ","Selector de opciones" ,JOptionPane.YES_NO_CANCEL_OPTION,
        JOptionPane.QUESTION_MESSAGE,null,    // null para icono por defecto.
        new Object[] { "Avanza y modifica", "Modifica y avanza"},   // null para YES, NO y CANCEL
        "opcion 1");
        int movimiento1 = direccion(1);
        // salto que tendrá 1
        int salto1=Integer.parseInt(JOptionPane.showInputDialog("Cuántos saltos desea que de la posicón 1?"));
        // valor que pondra cuando salga 1
        int poner1 = Integer.parseInt(JOptionPane.showInputDialog("Que valor quieres poner cuando sea 1?"));
       
       
        System.out.println("Valores de la cintilla");
        for (int i=0; i<cuantos; i++)
        {
            System.out.print(cinta[i] + " ");
        }
        String mensajeMov0="";
        String mensajeMov1="";
        System.out.println("\n");
        System.out.println("   " + " movimiento" + "  " + "salto" + "   " + "colocar");
        if (movimiento0==0)
            mensajeMov0="DER";
        else
            mensajeMov0="IZQ";
       
        if (movimiento1==0)
            mensajeMov1="DER";
        else
            mensajeMov1="IZQ";
           
        System.out.print("0    " + mensajeMov0 + "         " + salto0 + "        " + poner0 + "\n");
        System.out.print("1    " + mensajeMov1 + "         " + salto1 + "        " + poner1 + "\n");
       
        int indice = 0;
//        System.out.println(cinta.length);
        while (indice < cinta.length && indice >= 0)
        {
            for (int i=0; i<cinta.length; i++)
            {
                System.out.print(cinta[i] + "   ");
            }
            switch (cinta[indice])
            {
                case 0:
                {
                    if (tipomov0 == 0) {
                        if (movimiento0 == 0 )
                            indice = indice + salto0;
                        else
                            indice = indice - salto0;
                           
                    if (indice >=0 && indice < cinta.length)
                        cinta[indice]=poner0;
                    }
                   
                        else {
                    cinta[indice]=poner0;
                    if (movimiento0 == 0)
                        indice = indice + salto0;
                    else
                        indice = indice - salto0;
                    }
                break;
                }
                case 1:
                {
                    if (tipomov1 == 0 )
                    {
                        if (movimiento1 == 0)
                            indice = indice + salto1;
                        else
                            indice = indice - salto1;
                       
                        if (indice >= 0 && indice < cinta.length  )
                            cinta[indice]=poner1;
                    }
                    else
                    {
                    cinta[indice]=poner1;
                    if (movimiento1 == 0)
                        indice = indice + salto1;
                    else
                        indice = indice - salto1;
                    }
                   
                break;
                }
            }
        }
        if (indice < 0 )
//            System.out.println("El programa fue ABORTADO");
            JOptionPane.showMessageDialog(null, "El programa no término porque fue ABORTADO", "Programa ABORTADO", JOptionPane.ERROR_MESSAGE);
        else
        {
//        System.out.println("Resultados Nuevos");
        JOptionPane.showMessageDialog(null, "El programa ha FINALIZADO", "Nuevos Resultados", JOptionPane.PLAIN_MESSAGE);
        String res = "";
        for (int i=0; i<cuantos; i++)
        {
            System.out.print( cinta[i] + "  ");
           // System.out.print(cinta[i] + " ");
        }
     //   JOptionPane.showMessageDialog(null, res, "Nuevos Resultados", JOptionPane.PLAIN_MESSAGE);
    }
    }

1 comentario: