Translate

Mostrando entradas con la etiqueta reto. Mostrar todas las entradas
Mostrando entradas con la etiqueta reto. Mostrar todas las entradas

Introducción a NodeJS


Hola hoy he empezado a practicar programando en NodeJS, por aquí os dejo los códigos que he empleado en el ejemplo, espero que os sea útil y que aprendáis conmigo, os dejo mi código escrito por aquí:

console.log("hola mundo");
var http = require("http");
var url =require("url");
var body ="<html lang='es'><head></head><body>";
var foot="</body></html>";
http.createServer(function(request, response){
  response.writeHead(200,{"Content-Type":"text/html"});
  var path= url.parse(request.url).pathname;
  response.write(body);
  response.write("<h1>"+path+"</h1>"+ejecutar());
  dormir(5000);
  response.write("<h1>Nueva Linea</h1>");
  response.write(foot);
  response.end();
}).listen(8888);
function dormir(miliSegundos){
  var actual = new Date().getTime();
  var ahora =new Date().getTime();
  while (ahora<actual+miliSegundos){
    ahora =new Date().getTime()
  };
}
 function ejecutar(){

   return "<h1>texto funcion</h1>";
 }

Un saludo, y espero que os haya gustado, si es así, me podéis dejar en los comentarios, también si queréis que comente algún tipo de tecnología en concreto me lo podéis dejar aquí abajo.

(Arduino) Multiplos De Varios Numeros En OPEN-SMART Rich Shield



Hola en el tutorial de hoy posteo un código que he hecho con OPEN-SMART shield, si os interesa os lo podéis comprar aquí en él sumo un número de forma infinita y voy comprobando si este número es múltiplo de uno, dos, tres y cuatro, la verdad me ha quedado bastante bien el código, la verdad la placa está muy bien hecha y la verdad supera todas las expectativas.

Lo que hago en el siguiente código es hacer un módulo de diferentes números y éstos se van encendiendo en nuestra placa, la verdad es algo bastante entretenido, y si os la podéis comprar yo os lo recomiendo al cien por cien.

Materiales:

Rich Shield de OPEN SMART AliExpress.com Product - Starter kit Rich Shield with Infrared Receiver LED Buzzer Button DHT11 Light Sensor Temperature Sensor Module for Arduino UNO R3
Arduino UNO AliExpress.com Product - high quality One set UNO R3 (CH340G) MEGA328P for Arduino UNO R3 (NO USB CABLE)

Código:

Y nada hasta aquí mi post de hoy, si queréis podéis comentar, experimentar o proponer algún ejercicio, un saludo y hasta la próxima


#include <math.h>
#include <Wire.h>

#include "RichShieldLightSensor.h"
#include "RichShieldTM1637.h"
#include "RichShieldLED.h"

#define LED1 7
#define LED2 6
#define LED3 5
#define LED4 4
LED led(LED1,LED2,LED3,LED4);

#define CLK 10//CLK of the TM1637 IC connect to D10 of OPEN-SMART UNO R3
#define DIO 11//DIO of the TM1637 IC connect to D11 of OPEN-SMART UNO R3
TM1637 disp(CLK,DIO);

#define LIGHTSENSOR_PIN A2//SIG pin of Rocker Switch module connect to A0 of IO Shield, that is pin A2 of OPEN-SMART UNO R3
LightSensor lightsensor(LIGHTSENSOR_PIN);

int numero=1;
void setup() {
  Serial.begin(9600); //Set baud rate of serial port to be 9600bps, burn the program and open the serial monitor 
                     //on the upper right corner of Arduino IDE to check the sensor data.
  disp.init();//The initialization of the display
  
}
void loop() {
  
  numero=numero+1;
  if(numero%1==0){
  led.on(1);
  }
  if(numero%2==0){
  led.on(2);
  }
  if(numero%3==0){
  led.on(3);
  }
  if(numero%4==0){
  led.on(4);
  }
  
  disp.display(numero);//Illuminance
  if (numero>300){
    numero=1;
    
  }
  
  delay(1000);  
  led.off(1);
  led.off(2);
  led.off(3);
  led.off(4);
}


Links:

http://s.click.aliexpress.com/e/JK4XhdA

Montando pequeño circuito de Ali Express




Hola querido lector, hoy les dejo una soldadura que he hecho durante la tarde de un pequeño circuito electrónico, espero que os guste, a mi me entretuvo bastante hacerlo, aunque al final no me funcionara pero aprendí muchas cosas a la hora de soldar circuitos electrónicos.

Un saludo y hasta la próxima.

(Windows) Programando en LISP durante tres horas




Hola estimado lector, hace tiempo hice un vídeo, que lo dividí en 3 partes, cada una era un día diferente que lo edité, pero lo he editado para que sea una sola parte.

El software que emplee fue este:
https://sourceforge.net/projects/clisp/

La verdad es un vídeo bastante entretenido , espero que os guste y nada que vaya bien, chao.

Crear una antena Wi-Fi a lo Mr robot




Hola querido lector, hoy voy a hablar de un vídeo, que a mí parecer me ha resultado bastante entretenido, y hecho con materiales que cualquiera puede tener en casa o fácilmente disponibles.
Los materiales que hace falta son básicamente un Wi-Fi, no tiene porqué ser caro, pero os lo digo de ya que uno bueno no va a ser igual que un Wi-Fi de 10€.


Básicamente, lo que hay que hacer es agarrar el wifi, cortar el bebedor de agua(también puede ser el bote de patatas pringels) y apuntarlo a la antena parabólica, con la antena conectada a un ordenador mediante alargador USB.
Pues nada aquí está el vídeo curioso, espero que os guste y nada, hasta la próxima, chao.

Reto Poner Mayuscula Primera Vocal de Palabra de Frase





Hola  querido lector, hoy tengo un nuevo reto, esta vez no me lo he sacado de acepta el reto, ni de ninguna página similar, me gusta hacer ese tipo de retos, pero ya sabéis que muchas veces no dispongo del tiempo suficiente para hacerlos. Debo confesar que he empleado en mi código, otros códigos que se pueden ver en otros artículos de mi blog.

Pues nada, el reto consiste en darme una frase, la primera puede ser o no mayúscula y el resto debe de ser minúscula, y el programa va a encargarse de la transformación, de la primera letra de la frase en mayúscula. Me ha gustado hacer este reto, la verdad, aquí os dejo mi código.



        try {
            String palabra;
            Scanner sca = new Scanner(System.in);
            System.out.println("Di una frase:");
            palabra = sca.nextLine();
            String intermedio = "";
            String palabraFinal = "";
            Pattern patVoc = Pattern.compile("[A-Z]?[a-z ]+");// Creo el patrón
            Matcher matVoc;
            int num = 0;
            matVoc = patVoc.matcher(palabra);
            if (!matVoc.matches()) {
                throw new Exception("Debes de poner una frase válida");
            }

            for (int i = 0; i < palabra.length(); i++) {
                intermedio = palabra.charAt(i) + "";

                if (intermedio.equals(" ")) {
                    intermedio = palabra.charAt(i + 1) + "";
                    palabraFinal = palabraFinal + " " + intermedio.toUpperCase();
                    i = i + 1;
                } else {
                    if (i == 0) {
                        intermedio = intermedio.toUpperCase();
                    }
                    palabraFinal = palabraFinal + intermedio;
                }
            }
            System.out.println(palabraFinal);
        } catch (Exception ex) {
            System.out.println("Error cod. " + ex.getMessage());
        }


Bueno esto ha sido toto por el artículo de hoy, espero que os haya gustado, si os habéis entretenido podéis suscribiros a mi página de Facebook o Twitter para recibir contenido similar, sin más me despido, hasta la próxima.

Reto Traductor Idioma "A"





Hola querido lector, hoy quería hacer un reto basándome en un código, que es el mismo que hice ayer, y la verdad me ha traído recuerdos haciéndolo ya que el idioma "A", fue creado por la frikipedia, un portal dedicado a "noticias chorras", en el cual se inventaban los personajes públicos con datos falsos y haciendo sátira sobre diferentes asociaciones como la SGAE.

El idioma A consistía en convertir todos los carácteres en A, respetando los espacios y el punto final de la frase y/o párrafo, la verdad, sería interesante crear esta aplicación en swing con Java, y es posible que en un futuro lo haga, mientras tando dejo "la base" de hacerlo con una frase.

Pues aquí os dejo el código:

        String palabra;
        Scanner sca = new Scanner(System.in);
        System.out.println("Di una frase:");
        palabra = sca.nextLine();
        String intermedio = "";
        Pattern patVoc = Pattern.compile("[ ]");// Creo el patrón
        Matcher matVoc;
       
        for (int i = 0; i < palabra.length(); i++) {
            matVoc = patVoc.matcher(palabra.charAt(i) + "");//Paso la variable, en este caso correo
            if (matVoc.matches()) {
                intermedio=intermedio+" ";
            }else{
                intermedio=intermedio+"A";
            }
        }
        System.out.println(intermedio);


Pues nada esto ha sido todo por el tutorial de hoy, espero que hayáis aprendido algo, si queréis más contenido similar puedes seguirme en Facebook y twitter, un saludo y hasta la próxima.

Reto Contar Vocales De Una Frase en Java





Hola querido lector, hoy voy a hacer un reto, que consiste en contar todas las vocales de una frase, que nosotros vamos a escribir, para ello voy a usar los patrones en Java, más abajo voy a poner la página web en "FUENTES" de donde saqué el reto, para ahorrarme el aviso por copyright :) t.

Aqui les dejo el código:

        String palabra;
        Scanner sca = new Scanner(System.in);
        System.out.println("Di una frase:");
        palabra = sca.nextLine();
        String intermedio = "";
        Pattern patVoc = Pattern.compile("[aeiou]");// Creo el patrón
        Matcher matVoc;
        int num = 0;
        for (int i = 0; i < palabra.length(); i++) {
            matVoc = patVoc.matcher(palabra.charAt(i) + "");//Paso la variable, en este caso correo
            if (matVoc.matches()) {
                num = num + 1;
            }
        }
        System.out.println(num);

Y nada esto ha sido todo por este tutorial, creedme que cuesta hacer un pequeño hueco en el día para escribir, en fin espero que hayáis aprendido algo, nos vemos, hasta la próxima!

FUENTE:

https://javaparajavatos.wordpress.com/2016/04/08/reto-de-contar-vocales/

Reto Frases Palíndromas en Java





Hola querido lector, hoy quiero hacer un reto que he visto en acepta el reto, la verdad bastante entretenido, y en el cual me he entretenido a la hora de hacerlo, la mayor parte del código está basado en otros proyectos que he trabajado aquí en mi blog, que son el de los patrones (pattern) y el de invertir una palabra.

Y es que en el mundo de la programación si puedes evitar reinventar la rueda, evítalo, muchas veces es mejor usar una librería o framework que haga lo mismo que haces tu, pero más eficiente y mucho más probado.

Debo de decir que he recibido alguna queja por copyright por parte de Facebook, con respecto a estos tutoriales, así que abajo dejo el enlace al ejercicio completo, espero que no moleste, pero es la única forma de publicar este tutorial.

En cuanto a la codificación UTF-8 he tenido problemas en cuanto a mi portátil, más abajo les dejo la opción de NetBeans que yo he usado para que funcione con ISO-8859-1 , sin más les dejo el enunciado de acepta el reto:




Por aquí dejo mi código:


        try {


            String frase = "";
            String fraseInvertida = "";
            Scanner sca = new Scanner(System.in);
            System.out.println("Pongame una frase\n");
            frase = sca.nextLine().toString();//Ponemos nuestra variable
            frase = frase.toLowerCase();
            frase = frase.replaceAll("[ ]", "");
            frase = frase.replaceAll("á", "a");
            frase = frase.replaceAll("é", "e");
            frase = frase.replaceAll("í", "i");
            frase = frase.replaceAll("ó", "o");
            frase = frase.replaceAll("ú", "u");
            frase = frase.replaceAll("à", "a");
            frase = frase.replaceAll("è", "e");
            frase = frase.replaceAll("ì", "i");
            frase = frase.replaceAll("ò", "o");
            frase = frase.replaceAll("ù", "u");

            Pattern patNac = Pattern.compile("[a-zA-Z0-9]+");// Creo el patrón
            Matcher matNac = patNac.matcher(frase);//
            if (!matNac.matches()) {
                throw new Exception("Error, debes de poner una frase válida");
            }

            int longitud = (int) frase.length() - 1;

            do {
                fraseInvertida = fraseInvertida + frase.charAt(longitud);//nos devuele el carácter en la posición
                longitud = longitud - 1;//vamos restando posiciones
            } while (longitud >= 0);

            if (frase.equals(fraseInvertida)) {
                System.out.println("SI");
            } else {
                System.out.println("NO");
            }
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }



Eso es todo, espero que hayan aprendido algo, si te gustó mi artículo puedes dejar un comentario en blogger o escribirme a mi página en Facebook llamado Tomhard Computer, muchas gracias por leerme y hasta la próxima

FUENTE:


Reto Fin de Mes en Java




Hola querido lector, otra vez estoy aquí con un nuevo reto de #aceptaelreto de aceptaelreto.com, en este caso, voy a hacer el reto de poner mi cuenta corriente y mis ingresos o pérdidas que tengo este mes, si no tengo superávit va escribir "SI", en la pantalla, y si tengo pérdidas pone "NO" en la pantalla.

Me ha parecido un reto, bastante básico, pero que se puede aprender mucho con él, he usado control de excepciones, escaner de tipo String, y he cuidado bastante los detalles así como el nombre de las diferentes variables que he usado. Aquí les dejo el enunciado:

Fin de mes


Creo que el primer paso para mejorar mi situación es hacer una estimación de lo bien o lo mal que me va a ir un mes, en función de los ingresos y los gastos previstos. Sé cuánto dinero tengo en el banco al principio, y sé cuánto va a variar. ¿Me ayudas a saber si llegaré a fin de mes con dinero en el banco?


A mí no me asusta el fin del mundo; me asusta el fin de mes, porque no siempre consigo que mis ingresos lleguen conmigo. Los gastos se acumulan, y no sé qué más hacer para estirar mi triste sueldo.



Entrada

La entrada comienza con un número que indica cuántos casos de prueba vendrán a continuación. Cada caso contiene dos números, −10.000 ≤ s,c ≤ 10.000 indicando, respectivamente, el saldo en mi cuenta bancaria el primer día del mes, y el cambio estimado (ingresos menos gastos) durante el mes.

Salida

Para cada caso de prueba, se escribirá "SI" si llego a fin de mes con saldo mayor o igual que cero, y "NO" en otro caso.

A aquí les dejo mi código:

  try {
            String str;
            String[] strArr;
            Scanner sca = new Scanner(System.in);
            float banco, cashFlow, resultado;
            System.out.println("Debes de poner una cantidad (CUENTA_BANCARIA -GASTOS/INGRESOS):");
            str = sca.nextLine();
            strArr = str.split(" ");
            if (strArr.length > 2) {
                throw new Exception("");
            }
            banco = Float.parseFloat(strArr[0]);
            cashFlow = Float.parseFloat(strArr[1]);
            resultado = banco + cashFlow;
            if (resultado >= 0) {
                System.out.println("SI");
            } else {
                System.out.println("NO");
            }
        } catch (Exception ex) {
            System.out.println("Debes de poner los datos correctos, usando para decimales punto (.)");
        }

Si queréis recibir más contenido similar, podéis suscribiros a mi página en Facebook o seguirme en twitter, esto ha sido todo muchas gracias, y hasta la próxima.

FUENTE:

https://www.aceptaelreto.com/problem/statement.php?id=313

Reto Números HyperPares en Java





Hola querido lector, hoy me propongo hacer un reto, de #aceptaelreto y de su página web, aceptaelreto.com, y es comprobar que todos los números que componen una determinada cifra, (que nosotros vamos a pedir al usuario), son pares, para ello debo de decir que el módulo o resto de esta cifra entre 2 debe ser 0, y   toda cantidad diferente no es par.

Aquí os dejo el enunciado:

Número hyperpar


Se dice que un número es hyperpar cuando todos sus dígitos son pares. ¿Sabes identificarlos?

Entrada

La entrada consta de una serie de casos de prueba. Cada uno está compuesto de una única línea con un número no negativo ni mayor que 109.
Los casos de prueba terminan con un número negativo que no habrá que procesar.

Salida

Para cada caso de prueba se escribirá, en una línea independiente, SI si el número es hyperpar y NO si no lo es.

Aquí os dejo el código:

  try {
            String str ;
            Scanner sca = new Scanner(System.in);
            System.out.println("Escríbame un número:");
            str = sca.nextLine();
            int intermedio;
            int comprobacion=Integer.parseInt(str);
            if (comprobacion <=0){
                throw new Exception("Debe ser mayor a 0");
            }
            String par = "SI";
            try {
                for (int i = 0; i < str.length(); i++) {
                    intermedio = Integer.parseInt(str.charAt(i) + "");
                    if (intermedio % 2 != 0) {
                        par = "NO";
                        throw new Exception("");//PARAMOS LA EJECUCION DEL PROGRAMA
                    }
                }
            } catch (Exception ex) {

            }
            System.out.println(par);
        } catch (Exception ex) {
            System.out.println("Debes poner un número válido");
        }

Esto ha sido todo por el tutorial, espero que hayan aprendido algo, si es así puedes suscribirte a mi página en Facebook o seguirme en twitter para recibir contenido similar, un saludo y hasta la próxima.


FUENTE:

https://www.aceptaelreto.com/problem/statement.php?id=165&cat=36

Reto Cuadrados Perfectos en Java





Hola querido lector, hoy estoy aquí con el tema de los cuadrados perfectos, en qué consiste? Básicamente hacer un cuadrado de un número entero y que éste no tenga decimales. Uno de esos casos es por ejemplo el el número 9 que es igual a 3*3.

Aquí dejo el enunciado:

Conseguir un cuadrado perfecto


Un número es un cuadrado perfecto si su raíz cuadrada es un número exacto (sin decimales). Por ejemplo, el 4 es un cuadrado perfecto (2²), al igual que lo son el 36 (6²) y el 3.500.641 (1871²).
Todos los números que no son cuadrados perfectos pueden multiplicarse por otros para conseguir serlo. Por ejemplo, el número 8 no es un cuadrado perfecto, pero al multiplicarlo por 2 se obtiene el 16, que sí lo es.

Entrada

La entrada comienza con un número que indica cuántos casos de prueba tendrán que procesarse.
Cada caso de prueba consiste en un número mayor que 0 y menor que 231.

Salida

Para cada caso de prueba, el programa escribirá por la salida estándar, en una línea independiente, el número más pequeño que al ser multiplicado por el número del caso de prueba da como resultado un cuadrado perfecto.

Aquí dejo el código para que los estudiéis en Java:

        try {
            double numero, raiz;
            int numeroA, numeroB;
            Scanner sca = new Scanner(System.in);
            int num = sca.nextInt();
            numero = Double.parseDouble(num + "");

            String str;
            String[] arrStr;
            raiz = Math.sqrt(numero);
            str = raiz + "";
            arrStr = str.split("\\.");
            numeroA = Integer.parseInt(arrStr[0]);
            try {
                numeroB = Integer.parseInt(arrStr[1].replaceAll("0", "").substring(0, 8));
            } catch (Exception ex) {
                numeroB = 0;
            }

            if (numeroB == 0) {
                System.out.println("Cuadrado Perfecto");
            } else {
                System.out.println("Cuadrado Imperfecto");
            }
        } catch (Exception ex) {
            System.out.println("Debes de poner un número válido");
        }

Esto ha sido por el tutorial de hoy, espero que os haya gustado, que hayáis aprendido y si queréis contenido similar, podéis seguirme en mi página de Facebook o twitter.

FUENTE:

https://www.aceptaelreto.com/pub/problems/v004/14/st/statements/Spanish/index.html

Reto División Euclídea en Java



Hola querido lector, hoy he querido hacer un reto de programación de #AceptaElReto, es sobre la división euclídea, básicamente agarrar el resto y el cociente, y mostrarlo. La división euclídea es básicamente (cociente*divisor)+resto=dividendo, la verdad un reto bastante entretenido, os dejo el enunciado:


División euclídea



Cuando en la escuela nos enseñan a dividir, nos explican qué son el dividendo, el divisor, el cociente y el resto. Intuitivamente aprendemos que la división sirve para repartir un número determinado de cosas (dividendo) entre una serie de personas (divisor). El resultado de la operación nos indica a cuántas cosas tocan cada uno (cociente) y cuántas sobran (resto).
Esa es la que se llama división euclídea (o entera) de números naturales, es decir números no negativos. Enseguida aprendemos, además, que no tiene sentido repartir algo entre cero personas y por lo tanto el divisor no puede ser nulo.
Formalmente, la división euclídea entre dos números enteros a y b (siendo b un número distinto de cero) calcula un cociente q y un resto r asociados a esos a y b, que cumplen que a = b × q + r, y donde el resto r es siempre un entero no negativo, 0 ≤ r < |b|.
Aunque la definición es fácil de entender y aplicar cuando trabajamos con números positivos, hay que pensarlo con un poco más de cuidado antes de contestar cuál es el resultado de la división cuando el dividendo o el divisor son negativos.

Entrada

La entrada comienza con un número indicando la cantidad de casos de prueba que deberán procesarse. Cada caso de prueba aparece en una línea independiente y está compuesto por dos números enteros, primero el dividendo y luego el divisor. Ninguno será mayor que 10.000 en valor absoluto.

Salida

Para cada caso de prueba, el programa escribirá en una línea el cociente y el resto de la división euclídea separados por un espacio. En el caso de que el divisor sea 0 se escribirá únicamente DIV0.




Aquí esta nuestro código:

        try {
            int dividendo, divisor, resto, cociente;//cociente no puede ser cero
            Scanner sca = new Scanner(System.in);
            String str;
            String arrStr[];
            System.out.println("Escriba el dividendo y el divisor:");
            str = sca.nextLine();
            arrStr = str.split(" ");

            dividendo = Integer.parseInt(arrStr[0]);
            divisor = Integer.parseInt(arrStr[1]);
            if (dividendo == 0 || divisor == 0) {
                throw new Exception("DIV0");
            }
            cociente = dividendo / divisor;
            resto = dividendo % divisor;
            System.out.println("Cociente Resto");
            System.out.println(cociente + " " + resto);
        } catch (Exception ex) {
            if (ex.getMessage().equals("DIV0")) {
                System.out.println(ex.getMessage());
            } else {
                System.out.println("Debes poner un número entero");
            }
        }

Esto ha sido todo por este tutorial, si te ha gustado y quieres recibir contenido similar, puedes apuntarte a mi página en Facebook o seguirme en twitter, un saludo y hasta la próxima.

Calcular Área y Perímetro de Rectángulo en Java




En este tutorial muestro cómo hallar área y perímetro de un rectángulo en Java, para ello se emplea la fórmula de área que es a*b, y del perímetro que es (2*a)+(2*b), me ha parecido algo muy interesante hacerlo, y muy entretenido por aquí os lo dejo.

        try {
            Scanner sca = new Scanner(System.in);
            float a, b, perimetro, area;
            System.out.println("Programa para sacar área y perímetro de rectángulo.");
            System.out.println("Pongame el lado A:");
            a = sca.nextFloat();
            System.out.println("Pongame el lado B:");
            b = sca.nextFloat();

            perimetro = (2 * a) + (2 * b);
            area = a * b;

            System.out.println("El perímero es " + perimetro + " el área es " + area);

        } catch (Exception ex) {
            System.out.println("Debes de poner la comas con '.' y números");
        }

Esto ha sido todo, si os ha gustado este tutorial y queréis recibir contenido similar, sólo os debéis de suscribir a mi página en Facebook o mi twitter, y poco más, un saludo y nos vemos, pronto, hasta la próxima.

Reto Convertir segundos en días, horas, minutos y segundos en Java





Hola querido lector, si eres de los que me suele seguir en mis redes sociales, te habrás dado cuenta que me gusta escribir algoritmos, y resolver retos y katas en mi tiempo libre, suelo emplear Java, ya que es un lenguaje de programación multiplataforma, y que sirve para multitud de propósito. Java se basa principalmente en el paradigma de orientación a objetos, si eres principiante y no sabes por dónde empezar, sin lugar a duda, te recomiendo que vayas a mi curso de Java en Youtube.

Hoy les traigo una pequeña kata en la cual me lo he inventado yo, y consiste básicamente en una aplicación que pide un número de segundos (número entero), y el programa se va a encargar de convertirlo en días, horas, minutos y segundos.

Ha sido un programa facilito, básicamente se basa en que 24 horas son 86400 segundos, las horas son 3600 segundos, y los minutos son 60 segundos, a partir de aquí, empleando la división y resto prácticamente se puede hacer el programa



        try {
            int segundosFacilitado;
           
            int minutos;
            int segundosFinal;
            int horasFinal;
            int horas;
            int dias;
            Scanner sca = new Scanner(System.in);
            System.out.println("Dime una cantidad en segundos");
            segundosFacilitado = sca.nextInt();
            if (segundosFacilitado <= 0) {
                throw new Exception("Debes poner una cantidad válida");
            }
            dias = segundosFacilitado / 86400;
            int diasFinal = segundosFacilitado % 86400;
            horas = diasFinal / 3600;
            horasFinal = diasFinal % 3600;

            minutos = horasFinal / 60;
            segundosFinal = horasFinal % 60;
            System.out.println(" Son " + dias + " días, " + horas + " horas" + ", " + minutos + " minutos, " + segundosFinal + " segundos ");
        } catch (Exception ex) {
            System.out.println("Error a la hora de introducir el código cod:" + ex.getMessage());
        }



Bueno, espero que os haya gustado mi código, que lo estudiéis, si queréis más contenido como éste puedes seguirme en mi página en Facebook o en mi twitter, no tengo nada más que decir, hasta la próxima, chao ;)

Reto Precios Tienda Gadgets en Java





Hola queridos lectores, hoy traigo aquí un nuevo reto, pero esta vez el reto me lo he inventado yo, para que luego digan que yo no tengo ideas :). Bueno lo que ocurre realmente es que prefiero hacer retos creados por otra persona y que tal vez, su post no es tan conocido, que hacerlo yo, prácticamente de cero.

RETO

En este reto me he puesto yo, como que voy a crear un tienda de Gadgets y fundas de móviles, como es bien sabido nadie puede competir con las grandes tiendas y almacenes, por eso, lo primero que vamos a hacer es calcular el porcentaje y luego redondearlo a lo alto. Si el objeto es menor de 5€ vamos a ponerle de precios 3 veces su valor y múltiplo de 2, si es menor a 10€ un 25% más y múltiplo de 2, y si es menor a 200€ le ponemos un 20% más y multiplo de 5, y a partir de 200€ le ponemos un 10% más y múltiplo de 10.

Los múltiplos están pensados para que siempre haya efectivo en la caja.

Bueno aquí os dejo mi código, espero que os sirva :) :

        try {
            double cantidad;
            Scanner sca = new Scanner(System.in);
            String str = "";
            System.out.println("Escríbeme una cantidad");
            str = sca.nextLine();
            str = str.replace(",", ".");//Para que no haya problemas con los puntos y comas
            cantidad = Double.parseDouble(str);

            if (cantidad < 0) {
                throw new Exception("La cantidad debe ser positiva");
            }

            if (cantidad < 5) {
                cantidad = cantidad * 3;
                cantidad = Math.ceil(cantidad);
            } else if (cantidad < 10) {
                cantidad = cantidad * 1.25;
                cantidad = Math.ceil(cantidad);
                while (cantidad % 2 != 0) {
                    cantidad = cantidad + 1;

                }
            } else if (cantidad < 200) {
                cantidad = cantidad * 1.2;
                cantidad = Math.ceil(cantidad);
                while (cantidad % 5 != 0) {
                    cantidad = cantidad + 1;
                }
            } else {
                cantidad = cantidad * 1.1;
                cantidad = Math.ceil(cantidad);
                while (cantidad % 10 != 0) {
                    cantidad = cantidad + 1;
                }

            }
            System.out.println("El precio final es " + cantidad);

        } catch (Exception ex) {
            System.out.println("Debes de poner una cantidad valida Cod: " + ex.getMessage());
        }


Pues nada me despido de este tutorial, si os ha gustado, y deseáis leer más contenido así, me puedes seguir en mi página en Facebook o en mi twitter, sin más me despido, hasta la próxima.

Reto de Los Tres Últimos Dígitos en Java



Hola querido lector, hoy traigo otro reto, en este caso de la página de Nacho Cabanes, en la cual tenemos que hacer una operación y agarrar los 3 últimos números antes del decimal (.), es un ejercicio bastante entretenido aquí os dejo el enunciado:

Debes encontrar los tres últimos dígitos antes de la coma decimal para (3 + raíz(5)) elevado a n.
Por ejemplo, para n = 5, (3 + √5)5 = 3935.73982... La respuesta es 935.
Para n = 2, (3 + √5)2 = 27.4164079... La respuesta es 027.
El primer dato de entrada será la cantidad de valores que se van a analizar.
Nota: el programa no debe avisar al usuario con mensajes como "Introduzca un número". Debe leer directamente de consola en el formato que se muestra en el apartado "Entradas y salidas de ejemplo". La salida debe ser exactamente como se muestra en ese apartado. El programa debe comportarse bien con valores grandes, de al menos n=30 (sería deseable que también con valores por encima de 1.000.000).

Básicamente lo que he hecho ha sido:

1) Pedir número
2) Despegar con split, la primera cifra
3) Obtener cálculo: numero.lenght-3
4) Jugar con esta característica en 2 bucles bien diferenciados

Espero que os guste mi código, por aquí lo dejo:

try {

            double numero;
            int potencia;
            String[] numeros;
            String numeroString;
            String Intermedio = "", numeroFinal;
            int longitudString;

            Scanner sca = new Scanner(System.in);
            System.out.println("Escribeme un número");
            potencia = sca.nextInt();

            numero = (double) Math.pow((3 + Math.sqrt(5)), potencia);
            //System.out.println("" + numero);
            numeroString = numero + "";

            numeros = numeroString.split("\\.");
            String str = numeros[0];
            longitudString = numeros[0].length() - 3;

            if (longitudString > 0) {
                numeroFinal = "";
                for (int i = longitudString; i < numeros[0].length(); i++) {
                    numeroFinal = numeroFinal + numeros[0].charAt(i);
                }

            } else {
                numeroFinal = numeros[0] + "";
                do {
                    numeroFinal = "0" + numeroFinal;
                    longitudString = longitudString + 1;

                } while (longitudString < 0);
            }
            System.out.println("El numero es " + numeroFinal);
        } catch (Exception ex) {
            System.out.println("Ponga un número válido cod: " + ex.getMessage());
        }


Bueno esto ha sido todo por este tutorial, si quieres recibir contenido de este tipo, puedes seguirme en mi página de Facebook o en twitter, redes que encontrarás al lado derecho, del inicio de esta página, un saludo, chao

FUENTE:

http://www.nachocabanes.com/retos/reto.php?n=004

Reto Números de Lychrel en Java






Hola querido lector, cómo estáis? Yo la verdad estoy bastante bien, con mucha energía, y nada he estado viendo un par de retos de aceptaelreto.com, y he visto un reto, en el cual voy a aprovechar código de otro tutorial que hice "invertir palabras en Java", para ello:

Cuando se aburren, los aficionados a las matemáticas se dedican a jugar con los números. Eso les lleva, por ejemplo, a coger cualquier número, darle la vuelta y sumarlo a sí mismo, repitiendo el proceso una y otra vez hasta dar con un número capicúa. Por ejemplo, para el 91 llegamos a un capicúa en sólo dos pasos:
91 + 19 = 110
110 + 011 = 121
Algunos números se resisten a alcanzar un capicúa. El 196 es el número más pequeño para el que no se ha llegado a ninguno, por más que se ha intentado. Los matemáticos no han podido demostrar que, efectivamente, no vaya a llegarse a uno. Mientras continúan buscando una demostración, los aficionados siguen sumando y sumando con la esperanza de llegar a él. Los números con los que, se sospecha, no puede alcanzarse un capicúa se conocen como números de Lychrel. Curiosamente, algunos números capicúa parecen ser también números de Lychrel.

Entrada

La entrada comienza con un número indicando la cantidad de casos de prueba que vendrán a continuación. Cada caso de prueba estará compuesto de un número 1 ≤ n ≤ 100.000.

Salida

Para cada caso de prueba n, el programa deberá indicar el número de iteraciones que hay que dar hasta llegar a un número capicúa, seguido del número capicúa alcanzado. Si durante el proceso se llega a un número mayor que 1.000.000.000, se deberá asumir que el capicúa no es alcanzable y escribir "Lychrel?"1.




Aquí dejo los pasos para resolver este problema
1) Agarro un número
2) Lo convierto en texto
3) Le doy la vuelta
4)Lo convierto en Entero y lo comparo con el original

Aquí les dejo el código:

        int numeroFacilitado;
        int numOri;
        int numeroInvertido;
        Scanner sca = new Scanner(System.in);
        String stringFacilitado;
        String stringInvertido;
        int longitud;
        boolean repetir = true;
        boolean lychrel = true;
        int maximo = 100000;
        int contador = 0;

        try {
            System.out.println("Escríbame algún número:");
            numeroFacilitado = sca.nextInt();
            numOri = numeroFacilitado;
            stringFacilitado = numeroFacilitado + "";
            do {

                stringInvertido = "";
                stringFacilitado = numeroFacilitado + "";
                longitud = (int) stringFacilitado.length() - 1;
                do {

                    stringInvertido = stringInvertido + stringFacilitado.charAt(longitud);//nos devuele el carácter en la posición
                    longitud = longitud - 1;//vamos restando posiciones

                } while (longitud >= 0);

                numeroInvertido = Integer.parseInt(stringInvertido);

                if (numeroInvertido == numeroFacilitado) {
                    System.out.println(numOri + " " + numeroFacilitado + " en " + (contador) + " iteraciones");
                    lychrel = false;
                    repetir = false;
                }
                numeroFacilitado = numeroFacilitado + numeroInvertido;
                contador = contador + 1;
            } while (contador < maximo && repetir);
            if (lychrel == true) {
                System.out.println("Lychrel?");
            }
        } catch (Exception ex) {
            System.out.println("Debes de poner un número válido");
        }


Bueno espero que os haya gustado y entretenido, si quieres recibir más contenido similar te recomiendo que te suscribas a mi página en facebook que está al principio de esta web.

FUENTE
https://www.aceptaelreto.com/problem/statement.php?id=205

Buscar en este blog

Popular Posts

Follow by Email