aW1wb3J0IGphdmF4LnN3aW5nLkpPcHRpb25QYW5lOwoKcHVibGljIGNsYXNzIGF0aXZpZGFkdGFibGFzb3NjYXIKewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpCiAgICB7CiAgICAgICAgU3RyaW5nIG1lbnUsIG1lbnNhamU9JnF1b3Q7JnF1b3Q7OwogICAgICAgIGludCBvcGM9MCwgZmFjdG9yaWFsLCByZXN1bHRhZG89MSwgeCwgdGFibGE7IAogICAgICAgIGludCBvcGNpb247IAogICAgICAgIGRvCiAgICAgICAgewogICAgICAgICAgICB0cnkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbWVudT0mcXVvdDtcbjEpIFRhYmxhIGRlIE11bHRpcGxpY2FyIFxuMikgRmFjdG9yaWFsIFxuMykgU2FsaXImcXVvdDs7IAogICAgICAgICAgICAgICAgb3BjPUludGVnZXIucGFyc2VJbnQoSk9wdGlvblBhbmUuc2hvd0lucHV0RGlhbG9nKCZxdW90O0VsaWdlIHVuYSBvcGNpb246JnF1b3Q7K21lbnUpKTsKCiAgICAgICAgICAgICAgICBpZiAob3BjID09IDEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgZG8gCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBtZW5zYWplPSZxdW90OyZxdW90OzsKICAgICAgICAgICAgICAgICAgICAgICAgdHJ5CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxhPUludGVnZXIucGFyc2VJbnQoSk9wdGlvblBhbmUuc2hvd0lucHV0RGlhbG9nKCZxdW90O0luZGljYSBlbCBudW1lcm8gZGUgbGEgdGFibGEgYSBtdWx0aXBsaWNhcjomcXVvdDspKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoeD0xOyB4Jmx0Oz0xMDsgeCsrKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnNhamU9bWVuc2FqZSsmcXVvdDtcbiZxdW90Oyt4KyZxdW90OyomcXVvdDsrdGFibGErJnF1b3Q7PSZxdW90OysoeCAqIHRhYmxhKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpPcHRpb25QYW5lLnNob3dNZXNzYWdlRGlhbG9nKG51bGwsICZxdW90O0xhIHRhYmxhIGVzOiZxdW90OyttZW5zYWplKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY2lvbiA9IEpPcHRpb25QYW5lLnNob3dDb25maXJtRGlhbG9nKG51bGwsJnF1b3Q7JmlxdWVzdDtRdWllcmVzIGhhY2VyIG90cmEgdGFibGE/JnF1b3Q7LCZxdW90O0NvbmZpcm1hY2kmb2FjdXRlO24mcXVvdDssIEpPcHRpb25QYW5lLllFU19OT19PUFRJT04pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBKT3B0aW9uUGFuZS5zaG93TWVzc2FnZURpYWxvZyhudWxsLCAmcXVvdDtFbCB2YWxvciBubyBlcyB1biBudW1lcm8gdmFsaWRvJnF1b3Q7KTsKICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BjaW9uID0gSk9wdGlvblBhbmUuTk9fT1BUSU9OOyAKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICB9IHdoaWxlIChvcGNpb24gPT0gSk9wdGlvblBhbmUuWUVTX09QVElPTik7IAogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChvcGMgPT0gMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBkbwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0YWRvPTE7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyeQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFjdG9yaWFsPUludGVnZXIucGFyc2VJbnQoSk9wdGlvblBhbmUuc2hvd0lucHV0RGlhbG9nKCZxdW90O0luZGljYSBlbCBudW1lcm8gcGFyYSBjYWxjdWxhciBzdSBmYWN0b3JpYWw6JnF1b3Q7KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmFjdG9yaWFsICZsdDsgMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpPcHRpb25QYW5lLnNob3dNZXNzYWdlRGlhbG9nKG51bGwsICZxdW90O2NhcmFjdGVyIG5vIHZhbGlkbyZxdW90Oyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BjaW9uID0gSk9wdGlvblBhbmUuWUVTX09QVElPTjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh4PTE7IHgmbHQ7PWZhY3RvcmlhbDsgeCsrKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdGFkbz14KnJlc3VsdGFkbzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpPcHRpb25QYW5lLnNob3dNZXNzYWdlRGlhbG9nKG51bGwsICZxdW90O0VsIGZhY3RvcmlhbCBkZSAmcXVvdDsgKyBmYWN0b3JpYWwgKyAmcXVvdDsgZXM6ICZxdW90OyArIHJlc3VsdGFkbyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY2lvbj0gSk9wdGlvblBhbmUuc2hvd0NvbmZpcm1EaWFsb2cobnVsbCwmcXVvdDsmaXF1ZXN0O0Rlc2VhcyBjYWxjdWxhciBvdHJvIGZhY3RvcmlhbD8mcXVvdDssJnF1b3Q7Q29uZmlybWFjaSZvYWN1dGU7biZxdW90OywgSk9wdGlvblBhbmUuWUVTX05PX09QVElPTik7CgogICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSk9wdGlvblBhbmUuc2hvd01lc3NhZ2VEaWFsb2cobnVsbCwgJnF1b3Q7RWwgdmFsb3Igbm8gZXMgdW4gbnVtZXJvIHZhbGlkbyZxdW90Oyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BjaW9uID0gSk9wdGlvblBhbmUuTk9fT1BUSU9OOyAKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKG9wY2lvbj09IEpPcHRpb25QYW5lLllFU19PUFRJT04pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBpZiAob3BjICZsdDsgMSkgewogICAgICAgICAgICAgICAgICAgICBKT3B0aW9uUGFuZS5zaG93TWVzc2FnZURpYWxvZyhudWxsLCAmcXVvdDtPcGNpJm9hY3V0ZTtuIGRlIG1lbiZ1YWN1dGU7IG5vIHYmYWFjdXRlO2xpZGEuIFBvciBmYXZvciwgZWxpZ2UgMSwgMiBvIDMuJnF1b3Q7KTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBKT3B0aW9uUGFuZS5zaG93TWVzc2FnZURpYWxvZyhudWxsLCAmcXVvdDtFbCB2YWxvciBpbnRyb2R1Y2lkbyBubyBlcyB1biBuJnVhY3V0ZTttZXJvIHYmYWFjdXRlO2xpZG8gcGFyYSBsYSBvcGNpJm9hY3V0ZTtuIGRlbCBtZW4mdWFjdXRlOy4mcXVvdDspOwogICAgICAgICAgICAgICAgb3BjID0gMDsgCiAgICAgICAgICAgIH0KICAgICAgICB9IHdoaWxlIChvcGMgIT0gMyk7CiAgICAgICAgCiAgICAgICAKICAgICAgICBKT3B0aW9uUGFuZS5zaG93TWVzc2FnZURpYWxvZyhudWxsLCAmcXVvdDtBRElPUyZxdW90Oyk7CiAgICB9Cn0=
import javax.swing.JOptionPane;
public class atividadtablasoscar
{
public static void main (String[] args)
{
String menu, mensaje="";
int opc=0, factorial, resultado=1, x, tabla;
int opcion;
do
{
try
{
menu="\n1) Tabla de Multiplicar \n2) Factorial \n3) Salir";
opc=Integer.parseInt(JOptionPane.showInputDialog("Elige una opcion:"+menu));
if (opc == 1)
{
do
{
mensaje="";
try
{
tabla=Integer.parseInt(JOptionPane.showInputDialog("Indica el numero de la tabla a multiplicar:"));
for (x=1; x<=10; x++)
{
mensaje=mensaje+"\n"+x+"*"+tabla+"="+(x * tabla);
}
JOptionPane.showMessageDialog(null, "La tabla es:"+mensaje);
opcion = JOptionPane.showConfirmDialog(null,"¿Quieres hacer otra tabla?","Confirmación", JOptionPane.YES_NO_OPTION);
} catch (Exception e)
{
JOptionPane.showMessageDialog(null, "El valor no es un numero valido");
opcion = JOptionPane.NO_OPTION;
}
} while (opcion == JOptionPane.YES_OPTION);
}
if (opc == 2)
{
do
{
resultado=1;
try
{
factorial=Integer.parseInt(JOptionPane.showInputDialog("Indica el numero para calcular su factorial:"));
if (factorial < 0) {
JOptionPane.showMessageDialog(null, "caracter no valido");
opcion = JOptionPane.YES_OPTION;
continue;
}
for (x=1; x<=factorial; x++)
{
resultado=x*resultado;
}
JOptionPane.showMessageDialog(null, "El factorial de " + factorial + " es: " + resultado);
opcion= JOptionPane.showConfirmDialog(null,"¿Deseas calcular otro factorial?","Confirmación", JOptionPane.YES_NO_OPTION);
} catch (Exception e)
{
JOptionPane.showMessageDialog(null, "El valor no es un numero valido");
opcion = JOptionPane.NO_OPTION;
}
} while (opcion== JOptionPane.YES_OPTION);
}
if (opc < 1) {
JOptionPane.showMessageDialog(null, "Opción de menú no válida. Por favor, elige 1, 2 o 3.");
}
} catch (Exception e)
{
JOptionPane.showMessageDialog(null, "El valor introducido no es un número válido para la opción del menú.");
opc = 0;
}
} while (opc != 3);
JOptionPane.showMessageDialog(null, "ADIOS");
}
}