From c9b06be4702e07f419cef0b223519646578772ff Mon Sep 17 00:00:00 2001 From: Cristhian Ortellado Date: Sat, 10 Oct 2020 02:09:48 -0300 Subject: [PATCH] Se termino el trabajo --- BitsNumber.java | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ FactorialNumber.java | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ README.MD | 3 +++ TablaMultiplicar.java | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ projectTarea1.war | Bin 0 -> 9093 bytes 5 files changed, 216 insertions(+) create mode 100644 BitsNumber.java create mode 100644 FactorialNumber.java create mode 100644 README.MD create mode 100644 TablaMultiplicar.java create mode 100644 projectTarea1.war diff --git a/BitsNumber.java b/BitsNumber.java new file mode 100644 index 0000000..0146e9f --- /dev/null +++ b/BitsNumber.java @@ -0,0 +1,85 @@ + + +import java.io.IOException; +import java.io.PrintWriter; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * Servlet implementation class BitsNumber + */ +@WebServlet("/show-me-the-bits") +public class BitsNumber extends HttpServlet { + private static final long serialVersionUID = 1L; + + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + // TODO Auto-generated method stub + //generamos un PrintWriter para escribir en la pagina web + PrintWriter pr = new PrintWriter(resp.getOutputStream()); + //generamos una cadena que indicara el error en caso de que pase + String pgError = "

El valor de n es invalido, ingrese un numero de 0 a 65535

"; + try { + if(req.getParameter("n")!=null ) { + int n = parseDecimal(req.getParameter("n")); + //si no ocurrio ningun error entonces procedemos a realizar la conversion a bits + if(n>65535 || n<0) { + pr.write(pgError); + }else { + int [] numero = new int[16]; + + int aux=n; + for (int i = 0; n>0; i++) { + //si el resto al dividir por 2 es cero entonces cargamos + if(n%2==0) { + numero[i] = 0; + }else + numero[i]= 1; + n/=2; + } + String num=""; + for (int i = 15; i >-1; i--) { + if(i==7) + num+=" === "; + num+="|"+numero[i]; + } + //dibujamos el html + pr.write("" + + "

Los bits del numero "+aux+" son:

" + +"

"+num+"

" + +"" + + ""); + } + }else { + pr.write(pgError); + } + + } catch (Exception e) { + pr.write(pgError); + } + + pr.close(); + } + + public static int parseDecimal(String nro) throws IOException{ + //primero vemos si es un numero hexadecimal + nro = nro.toLowerCase(); + int n=0; + if(nro.length()>2 && (nro.substring(0, 2)).equals("0x") ) { + //convertimos el numero a decimal + nro = nro.substring(2); + n=Integer.parseInt(nro, 16); + }else if((nro.substring(0,1)).equals("0")) { + //es un numero en base 8 + n = Integer.parseInt(nro,8); + }else { + //esta en formato decimal + n = Integer.parseInt(nro); + } + return n; + } + +} diff --git a/FactorialNumber.java b/FactorialNumber.java new file mode 100644 index 0000000..dffd272 --- /dev/null +++ b/FactorialNumber.java @@ -0,0 +1,63 @@ + + +import java.io.IOException; +import java.io.PrintWriter; +import java.math.BigInteger; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * Servlet implementation class FactorialNumber + */ +@WebServlet("/factorial") +public class FactorialNumber extends HttpServlet { + private static final long serialVersionUID = 1L; + + + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + // TODO Auto-generated method stub + + //generamos un PrintWriter para escribir en la pagina web + PrintWriter pr = new PrintWriter(resp.getOutputStream()); + //generamos una cadena que indicara el error en caso de que pase + String pgError = "

El valor de n es invalido, ingrese un numero de 0 a 100

"; + try { + if(req.getParameter("n")!=null ) { + int n = Integer.parseInt(req.getParameter("n")); + //si no ocurrio ningun error entonces procedemos a calcular el factorial + if(n>100 || n<0) { + pr.write(pgError); + }else { + BigInteger factorial = BigInteger.valueOf(1); + if(n!=0) + { + for (int i = 2; i <= n; i++) { + BigInteger j = BigInteger.valueOf(i); + factorial=factorial.multiply(j); + } + } + + + //dibujamos el html + pr.write("" + + "

El factorial de "+n+" es:

" + +"

"+factorial+"

" + +"" + + ""); + } + }else { + pr.write(pgError); + } + + } catch (Exception e) { + pr.write(pgError); + } + + pr.close(); + } + +} diff --git a/README.MD b/README.MD new file mode 100644 index 0000000..6f659b7 --- /dev/null +++ b/README.MD @@ -0,0 +1,3 @@ +Instrucciones +Estas son las clases creadas desde eclipse +Incluye el .war que contiene el proyecto con las clases y las clases aparte \ No newline at end of file diff --git a/TablaMultiplicar.java b/TablaMultiplicar.java new file mode 100644 index 0000000..db20941 --- /dev/null +++ b/TablaMultiplicar.java @@ -0,0 +1,65 @@ + + +import java.io.IOException; +import java.io.PrintWriter; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@WebServlet("/tabla-multiplicar") +public class TablaMultiplicar extends HttpServlet { + private static final long serialVersionUID = 1L; + + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + // TODO Auto-generated method stub + //generamos un PrintWriter para escribir en la pagina web + PrintWriter pr = new PrintWriter(resp.getOutputStream()); + //generamos una cadena que indicara el error en caso de que pase + String pgError = "

No se puede generarla tabla de multiplicar. Valor del parametro n invalido

"; + try { + if(req.getParameter("n")!=null ) { + //si no ocurrio ningun error entonces procedemos a realizar las tablas + int n = Integer.parseInt(req.getParameter("n")); + if(n>100) { + pgError="Mi programa solo conoce la tabla de multiplicar hasta el número 100. El número pasado fue: "+n; + pr.write(pgError); + }else if(n<0) { + pgError = "Mi programa no sabe las tablas de multiplicar de números negativos"; + pr.write(pgError); + }else { + String[] tabla = new String[10]; + String rowTable =""; + for (int i = 0; i < tabla.length; i++) { + tabla[i]=n+"*"+(i+1)+" = "+n*(i+1); + rowTable+=""+tabla[i]+""; + } + //dibujamos la tabla de multiplicar + pr.write("" + + "

Aqui presentamos la tabla de multiplicar del numero "+n+"

" + +"" + + "" + + "" + +"" + + "" + +rowTable + +"" + + "
NRO ="+n+"
" + + "" + + ""); + } + }else { + pr.write(pgError); + } + + } catch (Exception e) { + pr.write(pgError); + } + + pr.close(); + } + + +} diff --git a/projectTarea1.war b/projectTarea1.war new file mode 100644 index 0000000..384f9a6 Binary files /dev/null and b/projectTarea1.war differ -- libgit2 0.26.0