BIENVENIDOS AL MUNDO DE LOS ALGORITMOS

Guía para empezar a dominar los algoritmos, codificados en algunos de los lenguajes de programación conocidos. EJERCICIOS RESUELTOS Y PROPUESTOS, con el mejor CONTENIDO para tu aprendizaje... !!!

BIENVENIDOS AL MUNDO DE LOS ALGORITMOS

Guía para empezar a dominar los algoritmos, codificados en algunos de los lenguajes de programación conocidos. EJERCICIOS RESUELTOS Y PROPUESTOS, con el mejor CONTENIDO para tu aprendizaje... !!!

BIENVENIDOS AL MUNDO DE LOS ALGORITMOS

Guía para empezar a dominar los algoritmos, codificados en algunos de los lenguajes de programación conocidos. EJERCICIOS RESUELTOS Y PROPUESTOS, con el mejor CONTENIDO para tu aprendizaje... !!!

BIENVENIDOS AL MUNDO DE LOS ALGORITMOS

Guía para empezar a dominar los algoritmos, codificados en algunos de los lenguajes de programación conocidos. EJERCICIOS RESUELTOS Y PROPUESTOS, con el mejor CONTENIDO para tu aprendizaje... !!!

miércoles, 10 de enero de 2018

FUNCIONES PERSONALIZADAS EN JAVA


A continuación te mostramos funciones de mucha utilidad, para el desarrollo de nuestras aplicaciones en java.

EJERCICIOS RESUELTOS

1. Redondear números decimales.
SOLUCIÓN:
import java.math.BigDecimal;
import java.math.RoundingMode;

public class RedondearDecimales { 
    public static void main(String[] args) {

        double resultado;
        double numero=25.26501;
        int numeroDecimales=4;     
        double parteEntera;
        resultado = numero;
     
        //EJEMPLO 01: Usando funciones matemáticas en Java
        parteEntera = Math.floor(resultado);
        resultado = (resultado - parteEntera) * Math.pow(10, numeroDecimales);
        resultado = Math.round(resultado);
        resultado = (resultado / Math.pow(10, numeroDecimales)) + parteEntera;     
        System.out.println("Resultado: "+resultado);
     
        //EJEMPLO 02
        BigDecimal redondeado = new BigDecimal(numero).setScale(numeroDecimales, RoundingMode.HALF_EVEN);
        System.out.println("Resultado: "+redondeado);
     
    } 
}


2. Reemplazar cadenas de texto, usando funciones de java.
SOLUCIÓN:

public class ReemplazoTextos {
 
    public static void main(String[] args) {

        String cadena="Funciones de Textos";     
        System.out.println(cadena.replaceAll("Funciones", "Func."));   

    } 
}

viernes, 22 de noviembre de 2013

MANEJO DE MÉTODOS EN JAVA

El uso de métodos en java, nos permite organizar nuestro código, agilizando su funcionamiento y mantenimiento.

1. Construir una aplicación en el que el usuario proporcione una cantidad entera y la aplicación indique através de un mensaje la cantidad si es positiva o negativa, par o impar: o en su defecto si es neutra. 

import java.util.Scanner;
public class EVALUARNUMERO {
    public static void main(String[] args) {   
   
        Scanner teclado=new Scanner(System.in);
        int numero;
        EVALUARNUMERO N=new EVALUARNUMERO();

        System.out.println("Ingrese el numero: ");
        numero=teclado.nextInt();
       
        System.out.println("\nEL NUMERO INGRESADO ES: ");

        N.NumeroImpar(numero);
        N.NumeroNegativo(numero);
        N.NumeroNeutro(numero);
        N.NumeroPar(numero);
        N.NumeroPositivo(numero);
    }
   
    public void NumeroPar(int numero){
        if(numero%2==0){
            System.out.println("Numero Par");
        }
    }
    public void NumeroImpar(int numero){
        if(numero%2!=0){
            System.out.println("Numero Impar");
        }
    }
    public void NumeroNegativo(int numero){
        if(numero<0){
            System.out.println("Numero Negativo");
        }
    }
    public void NumeroPositivo(int numero){
        if(numero>0){
            System.out.println("Numero Positivo");
        }
    }
    public void NumeroNeutro(int numero){
        if(numero==0){
            System.out.println("Numero Neutro");
        }
    }

}

lunes, 11 de noviembre de 2013

CONSIDERACIONES EN JAVA



Algunas de las consideraciones a tener en cuenta para la codificación de algoritmos en JAVA, son las siguientes:

PROYECTO: Es aquella secuencia en la construcción de un programa en Java, la cual agrupa y estructura de manera ordenada el desarrollo de los diferentes programas.

PAQUETE: Es un contenedor de clases que permite agrupar las distintas partes de un programa cuya funcionalidad tienen elementos comunes.

OPERADORES DE CONVERSIÓN:

+ : suma                               - : Resta                                                            * : Multiplicación                    
/ : División                           % : Modulo o residuo de una división            ^ :  Potencia  


OPERADORES DE COMPARACIÓN:

== : Igual                               != : Diferente                                           < : Menor                    
> :  Mayor                             <=: Menor o igual que                           >= : Mayor o igual que


OPERADORES LÓGICOS:

&& : Y                                   || : ó                                                


DELIMITADORES

( )  PARÉNTESIS, sirve para delimitar expresiones del control de flujo y conversiones de tipo de dato.

{ }  LLAVES, sirve para la inicialización de un bloque de código, de clases, métodos y ámbitos locales.

[ ]  CORCHETES, me sirve para la declaración de arreglos y matrices.

 COMA, es un identificador consecutivo en una declaración de variables.

 PUNTO Y COMA, indica la finalización de una línea de código o sentencia.

PUNTO, Es el separador del nombre de paquete, subpaquetes y clases, también es separador de variables y métodos.

    



MÉTODOS DE LA CLASE MATH EN JAVA



ATRIBUTOS DE CLASE


DESCRIPCIÓN

USO


abs
Retorna el valor absoluto de un numero que puede ser de tipo: float, doublé, int, long.

int x =-5;
System.out.println(Math.abs(x));


PI
Almacena el valor de PI=3,14…….
double pi=Math.PI;
System.out.println(pi);


ceil
Retorna un valor double con el valor más corto no menor que el parámetro.

double x=9.2,result;
result=Math.ceil(x);


floor
Retorna un valor double con el valor más grande. El parámetro debe ser de tipo double.
double n= 2.75,result;
result=Math.floor(n);






pow
Retorna un valor double con la potencia de un numero (dado como primer parámetro) elevado a otro número (dado como segundo parámetro) los dos parámetros deben ser  de tipo doublé.


double a= 2, b= 4, result ;
result=Math.pow(a, b);


random
Retorna un valor double con numero generado aleatoriamente ( al azar) 0-1.0

double num;
num=Math.random();


round
Retorna un valor double o float, redondeado. El parámetro puede ser un valor float o doublé.

double x=27.10,result;
result=Math.round(x);


max
Retorna el valor del número mayor de dos números dados como variables
double x=10, y=15, mayor;
mayor=Math.max(x, y);




sin
Retorna un valor double con el seno de un ángulo expresado en radianes. El ángulo expresado en radianes debe ser un valor double enviado al método como parámetro.

double angulo=37*Math.PI/180;
double result = 0;
angulo=Math.sin(angulo);


sqrt
Retorna el valor  double por la raíz cuadrada del valor dado. el parámetro debe ser un valor de tipo double.


double x=16, result;
result=Math.sqrt(x);



todegrees
Retorna un valor double. Permite convertir un ángulo expresado en radianes en un ángulo expresado en sexagesimales



toradians
Retorna un valor double y permite convertir un ángulo expresado en sexagesimal en un ángulo expresado en radianes





MÉTODOS DE LA CLASE STRING



ATRIBUTOS DE CLASE

DESCRIPCIÓN

charAt(int)
Devuelve el carácter que encuentre en la posición indicada por la variable entera o numero entero colocado como parámetro. Es importante mencionar que en java el primer carácter de una cadena se encuentra ubicada en la i-esima posición
Concat(string)
Este método me permite juntar 2 cadenas en una sola
Indexof(char)
Devuelve la posición de la cadena en la que aparece por primera vez el carácter colocado como parámetro. También se puede especificar un segundo parámetro a partir del cual se empieza a buscar hacia adelante
length
Devuelve la longitud de una cadena es decir el numero de caracteres que tiene la cadena

Replace (char,char)
Permite reemplazar todos los caracteres iguales al carácter colocados como primer parámetro con el carácter colocado como segundo parámetro.

Substrin(int, int)
Devuelve una sub cadena a partir de la cadena especificada empezando desde la posición indicada en el primer parámetro hasta el final o hasta una posición anterior a la indicada en el segundo parámetro o metro

toLawerCase
Convierte las letras de una cadena en letras minúsculas.

toUpperCase
Convierte las letras de una cadena a mayúsculas.

trim
Permite eliminar los espacios en blanco del inicio y del final de una cadena








































ATAJOS (TECLA TAB) - IDE Netbeans



Cuando se codifica cualquier algoritmo, es necesario que tomemos más tiempo para pensar en la lógica, que en escribir el código. Aquí la importancia de conocer algunos mecanismos o formas de ahorrarte el tiempo de digitar el código es haciendo uso algunas de las abreviaturas de las palabras, que se completaran al presionar la tecla TAB:
EJEMPLOS:


ABREVIATURA + TAB


RESULTADO
psvm
public static void main(String[] args){
}
St
String
fl
float
bo
boolean
cl
Class
br
break
dowhile
do{
}while(condicion);
eq
equals

ifelse
if (condicion){
}else {
}
fori
for (int i = 0; i < arr.length; i++) {
}
sout
System.out.println(“ ”);
st
static
re
return
pu
public





NOTA: Una vez obtenido el código, debes acomodar tus propias condiciones de acuerdo a los requerimientos de tu algoritmo.

ESTRUCTURAS SECUENCIALES EN JAVA


Las estructuras secuenciales en java, nos permite realizar algoritmos cuyas pequeñas instrucciones se llevan a cabo una tras otra en un momento determinado.

EJERCICIOS RESUELTOS EN JAVA

1. Calcular el salario que recibirá un  trabajador, si  se conoce el número de horas trabajadas y el pago que recibe por hora. Considere además que por concepto de AFP se le descuenta el 7%.

SOLUCIÓN:

import java.util.Scanner;
public class Ejercicio10 {
    public static void main(String[] args){
    Scanner teclado=new Scanner(System.in);

         double h_trabajadas,p_hora,sueldoneto,descuento,sueldobruto;

         System.out.println("Ingrese las horas trabajadas: ");
         h_trabajadas=teclado.nextDouble();
         System.out.println("Ingrese el pago por horas:");
         p_hora=teclado.nextDouble();

          sueldobruto=h_trabajadas*p_hora;
          descuento=sueldobruto*0.07;
          sueldoneto=(sueldobruto-descuento);

         System.out.println("\nEl salario total es:  s/. "+sueldoneto);
    }

}

ESTRUCTURAS CONDICIONALES EN JAVA



EJERCICIOS RESUELTOS

1.       Ingrese un número entero y encuentre el dígito mayor y el dígito menor.

SOLUCIÓN:

import java.util.Scanner;
public class MAYORMENOR {
    public static void main(String[] args) {
        Scanner b=new Scanner(System.in);

        int n, mayor=0, menor=10, digito;
        System.out.println("Ingrese el numero a evaluar: ");
        n=b.nextInt();

        while(n>0){
            digito=n%10;
            n=n/10;
            if(digito>=mayor){
                mayor=digito;
            }
            if(digito<menor){
                menor=digito;
            }
        }
        System.out.println("El digito mayor es: "+mayor);
        System.out.println("El digito menor es: "+menor);
    }
}


2.  En una tienda se ha establecido la siguiente oferta: por compras menores a 50 soles se hace un descuento de 8%, pero para compras a partir de 50 el descuento es de 10%. Se pide ingresar la cantidad y el precio del producto que se compra y determinar cuanto se descontará y cuanto se cobrará.

SOLUCIÓN:

import java.util.Scanner;
public class EJERCICIO3 {
    public static void main(String[] args) {
        Scanner consola=new Scanner(System.in);

        double cantidad, precio,pago, descuento;
        System.out.println("ingresar cantidad: ");
        cantidad=consola.nextInt();
        System.out.println("ingrese el precio: ");
        precio=consola.nextInt();

        pago=cantidad*precio;
        if(pago<50){
            descuento=pago*0.08;
            pago=pago-descuento;
            System.out.println("el descuento es: "+descuento+" , el pago a realizar es: "+pago);
        }
        else{           
             descuento=pago*0.1;
             pago=pago-descuento;
             System.out.println("el descuento es: "+descuento+" , el pago a realizar es: "+pago);
        }
    }

}

ESTRUCTURAS REPETITIVAS EN JAVA


Las estructuras repetitivas en java, son de gran utilidad cuando necesitamos ejecutar porciones de código reiteradas veces y que finaliza basados en una determinada condición. 

EJERCICIOS RESUELTOS EN JAVA

1.     Diseñe un algoritmo para un cajero automático. El cajero tiene la particularidad de dar solamente billetes de 500, 200, 100, 50, y 20. Si el usuario ingresa una cantidad menor a 1500 que desea retirar, debe arrojarle la cantidad mínima de billetes de cada tipo.
NOTA: No debe dar billetes de 10 soles, POR EJEMPLO, si se le ingresa un monto de 510, debe arrojarme:
Billetes de 200: 2
Billetes de 50: 1
Billetes de 20: 3

SOLUCIÓN:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class CAJERO2 {
    public static void main(String[] args) throws IOException{
        BufferedReader consola = new BufferedReader(new InputStreamReader(System.in));

        int monto, i, b1 = 0, b2=0, b3=0, b4=0, b5=0, b500, b200, b100, b50, b20;
        do{
        System.out.println("Ingrese un monto MENO O IGUAL a 1500: ");
        monto=Integer.parseInt(consola.readLine());
        }while((monto<=30||monto>1500)||monto%10!=0);

        while(monto>=20){
        if(monto>=500&&(monto!=510&&monto!=530)){
            if(monto>1000){
                b1+=(int)monto/500;
                monto=monto-b1*500;
            }
            else{
                if(monto%500!=30&&monto%500!=10){
                b1+=(int)monto/500;
                monto=monto-b1*500;
                }
            }
        }
         if(monto>=200&&(monto%200>=10||monto%200==0)){
             if(monto>410){
                b2+=(int)monto/200;
                monto=monto-b2*200;
            }
             else{
                if(monto%200!=30&&monto%200!=10){
                b2+=(int)monto/200;
                monto=monto-b2*200;
                }
             }
         }
         if(monto>=100&&(monto%100>=10||monto%100==0)){
             if(monto>110){
                b3++;
                monto=monto-100;
            }
             else{
                 if(monto%100!=30&&monto%100!=10){
                    b100=(int)monto/100;
                    b3=b3+b100;
                    monto=monto-b100*100;
                 }
             }
         }

         if(monto>=50&&(monto%50>=10||monto%50==0)){
             if(monto>100){
                b4++;
                monto=monto-50;
            }
             else{
                 if(monto%50!=30&&monto%50!=10){
                        b50=(int)monto/50;
                        b4=b4+b50;
                        monto=monto-b50*50;
                 }
             }
         }
         if(monto>=20){
             b20=(int)monto/20;
                        b5=b5+b20;
                        monto=monto-b20*20;
         }
        }

        if(b1>0){
            System.out.println("Billetes de 500: "+b1);
        }
        if(b2>0){
            System.out.println("Billetes de 200: "+b2);
        }
        if(b3>0){
            System.out.println("Billetes de 100: "+b3);
        }
        if(b4>0){
            System.out.println("Billetes de 50: "+b4);
        }
        if(b5>0){
            System.out.println("Billetes de 20: "+b5);
        }
    }
}


2.       Ingrese un número BINARIO (número compuesto por ceros y unos), y muestre su equivalente. Pr ejemplo, si ingreso 101101, debe mostrarme 45 como su equivalente.

SOLUCIÓN:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class EnteroBinario {
    public static void main(String[] args) throws IOException{
        BufferedReader consola=new BufferedReader(new InputStreamReader(System.in));
        int i, j, k=0, equivalente=0, numero, b=0;
        boolean m = false;
        String N;

        do{
            System.out.println("Ingrese el numero entero binario: ");
            numero=Integer.parseInt(consola.readLine());

            N=Integer.toString(numero);
            for(i=0;i<N.length();i++){
                if(N.charAt(i)=='0'||N.charAt(i)=='1'){
                    m=true;
                    b++;
                }
            }
        }while(b<N.length());
       
        j=numero;
        while(numero>0){
            numero=(int)numero/10;
            k++;
        }
        for(i=0;i<k;i++){
             equivalente+=(j%10)*Math.pow(2,i);
             j=(int)j/10;
        }     
        System.out.println("El equivalente del numero ingresado es: "+equivalente);      
    }
}


3.     Un número se considera perfecto cuando la suma de sus divisores es igual al número, por ejemplo 28, tiene  como divisores a 1, 2, 4, 7 y 14. Luego 28 es número perfecto, pues 1+2+4+7+14=28. Hacer un algoritmo para determinar si un número ingresado por teclado es perfecto.
SOLUCIÓN:
import java.util.Scanner;
public class perfecto {

    public static void main(String[] args) {
        Scanner b=new Scanner(System.in);

        int n, suma=1,i=2;
        System.out.println("Ingrese el numero: ");
        n=b.nextInt();
        while(i<n){
            if(n%i==0){
                suma=suma+i;
            }
            i++;
        }
        if(suma==n){
            System.out.println("El numero es perfecto");
        }
        else{
            System.out.println("el numero no es perfecto");
        }
    }
}


4.     La tribuna de un estadio esta numerada del 1 al 500 en la parte superior horizontal que corresponde al número de asiento por columna; y del 1 al 50 en la parte izquierda vertical que corresponde al número de asiento por fila. Los boletos tienen una numeración correlativa del 1 al 25000. Para cualquier número de boleto determinar el número de fila y el número de columna que le correspondería a la ubicación de su asiento.
SOLUCIÓN:
import java.util.Scanner;
public class Asientoestadio {

    public static void main(String[] args) {
        Scanner teclado=new Scanner(System.in);

        int asiento, fila=0, columna=0;
        System.out.println("Ingrese el numero de asiento: ");
        asiento=teclado.nextInt();

        while(asiento>500){
            fila++;
            asiento=asiento-500;
        }
        fila++;
        columna=asiento;
        System.out.println("El asiento corresponde a la fila: "+fila+" y a la columna: "+columna);
    }
}


5.     Diseñe un algoritmo que convierte un número en base 10, a otro número en base menor que 10. El número  en base 10 y la base a la que se va a convertir se deben ingresar por teclado.
SOLUCIÓN:
import java.util.Scanner;
public class ConvierteNumeroAbaseMenora10 {
  
    public static void main(String[] args) {
        Scanner teclado=new Scanner(System.in);
        int base, numero,div=0,i=1;

        System.out.println("Ingrese el numero en base 10: ");
        numero=teclado.nextInt();
        do{
        System.out.println("Ingrese la base menor a 10 : ");
        base=teclado.nextInt();
        }while(base<=1||base>=10);

        while(numero>=base){
            div=div+(numero%base)*i;
            numero=(int)(numero/base);
            i=i*10;
        }
        div=div+(numero*i);
        System.out.println("el numero en base "+base+" es: "+div);
    }

}