Free Web Site - Free Web Space and Site Hosting - Web Hosting - Internet Store and Ecommerce Solution Provider - High Speed Internet
Search the Web

Sentencias de selección

Simple

Una sentencia de selección simple , es parte de un algoritmo que permite decidir bajo una cierta condición si una instrucción o sentencia se va a ejecutar.

En general, se escribe : 
SI (condición) ENTONCES sentencia(s) FIN SI
JAVA : Sentencia if 

    if (condición)
    {
        sentencia(s)
    }
Ejemplos

1)  

SI  (ingreso bruto familiar <   120.000) ENTONCES
   El estado lo considera pobre
FIN SI

if (ing_bruto <  120.000)
{
    System.out.println("El estado lo considera pobre");
}
2) SI (edad > 17) ENTONCES Puede solicitar licencia de conducir Puede inscribirse en los registros electorales FIN SI
if (edad >  17)
{
    System.out.println("Puede solicitar licencia de conducir");
    System.out.println("Puede inscribirse en los registros..");
}
Compuesta

Además de ejecutar las sentencias en el caso que se cumpla la condición, podemos explicitar las instrucciones en el caso que no se cumpla dicha condición.

En general, se escribe

SI (condición) ENTONCES
    sentencia(s)
SINO
    sentencia(s)
FIN SI
JAVA : Sentencia if - else 

    if (condición)
    {
        sentencia(s)
    }
    else
    {
        sentencia(s)
    }
Ejemplos

1)  

    SI (nota  >   3.4 ) ENTONCES
         Se tiene derecho a examen
    SINO
         No se tiene derecho a examen
         Obligación de hacer el curso de nuevo.
    FIN SI

if (nota  > 3.4)
{
    System.out.println("Se tiene derecho a examen");
}
else
{
    System.out.println("No se tiene derecho a examen");
    System.out.println("Obligación de hacer el curso de nuevo");
}
2) SI (saldo cuenta < 500.000) ENTONCES Inicio de trámite para préstamo SI (está en DICOM) ENTONCES Fin del trámite Préstamo Rechazado SINO Trámite aprobado FIN SI SINO Muy poco saldo para iniciar trámite FIN SI
if (saldo_cuenta <   500.000)
{
    System.out.println("Inicio de tramite para prestamo");
    if (esta_dicom)
    {
        System.out.println("Fin del tramite");
        System.out.println("Prestamo Rechazado");
    }
    else
    {
        System.out.println("Tramite aprobado");
    }
}
else
{
    System.out.println("Muy poco saldo para iniciar tramite");
}

Una aplicación sencilla de esta estructura, se aplica para determinar si un número es par o impar.
Se sabe que un número par se puede reconocer si , el resto de la división de dicho número por dos es igual a cero. Por lo tanto, el algoritmo sería de la siguiente manera :


Leer num
SI (RESTO(num/2) = 0) ENTONCES
    num es par
SINO
    num es impar
FIN SI

La sentencia : leer num , nos dice que se está esperando que por algún medio (teclado, archivo,..) se le de valor a la variable num. Después de asignado el valor, se evalúa la condición y se espera la respuesta o salida del algoritmo.

if (num % 2 == 0)
{
    System.out.println(num + " es par");
}
else
{
    System.out.println(num + " es impar");
}

Fórmula para calcular el resto 

resto = num - división_entera * divisor

Ej :  13 : 2 = 6  --> 6 : división_entera

resto = 13 - 6*2  = 13 - 12 = 1



Ejemplo
Crear un programa que calcule la nota de presentacion a examen y la nota minima que se necesita para obtener nota final cuatro.
La notas se calculan según lo siguiente :

Controles : c1,c2,c3
Solemnes : s1,s2
promedio controles = (c1 + c2 + c3) / 3
nota presentación = (s1 + s2 + promedio controles) / 3
nota final = 0.3 * examen + 0.7 * nota presentación

Salida del programa :

Codigo fuente

import java.io.*;
class notas 
{
    public static void main(String Arg[ ]) throws IOException
    {
        BufferedReader in = new BufferedReader(new 
            InputStreamReader(System.in));

        double c1,c2,c3;
        double s1,s2;
        double nota_present;
        double prom_controles;

        System.out.print("\n\tIngrese nota control 1 : ");
        c1 = Double.parseDouble(in.readLine( ));

        System.out.print("\n\tIngrese nota control 2 : ");
        c2 = Double.parseDouble(in.readLine( ));
        
        System.out.print("\n\tIngrese nota control 3 : ");
        c3 = Double.parseDouble(in.readLine( ));

        prom_controles = (c1 + c2 + c3) / 3;

        /* Redondeo a un decimal */

        prom_controles = Math.round(prom_controles * 10) / 10.0;
        
        System.out.println("\n\tPromedio controles : " + prom_controles);

        System.out.print("\n\tIngrese nota solemne 1 : ");
        s1 = Double.parseDouble(in.readLine());
        
        System.out.print("\n\tIngrese nota solemne 2 : ");
        s2 = Double.parseDouble(in.readLine());

        nota_present = (s1 + s2 + prom_controles) / 3;
        
        nota_present = Math.round(nota_present * 10) / 10.0;
        
        System.out.println("\n\tNota de presentacion : " + nota_present);
        
        if(nota_present >= 3.5)
        {
            double nota_examen;
            
            nota_examen = (3.95 - 0.70 * nota_present) / 0.30;    
            
            nota_examen = Math.round(nota_examen * 10) / 10.0;
            
            System.out.println("\n\tNota minima de examen para aprobar el ramo : " 
            + nota_examen);
        }
        else
            System.out.println("\n\tNo tiene derecho a dar examen");

        System.out.println( );
    }
}
 
Bajar archivo


Ejemplo

Crear un programa que discrimina por condición de edad y estatura para ingresar a un sistema x. Se necesita mostrar mensajes a pantalla, en función de parámetros ingresados por teclado.


El algoritmo básico especifica lo siguiente :

Si la edad ingresada es mayor o igual a 18 , se pregunta por la estatura, sino, se muestra el mensaje : "Ud. es menor de edad -- ACCESO DENEGADO".


Ahora, si la estatura es menor que 1.85 mts, se muestra el mensaje : "Esta dentro de la estatura permitida", sino, se muestra el mensaje : "Es demasiado alto para el sistema".


Codigo fuente

import java.io.*;
class sesion 
{
    public static void main(String Arg[ ]) throws IOException
    {
         
        BufferedReader in = new BufferedReader(new 
            InputStreamReader(System.in));

        int edad;
        double estatura;

        System.out.print("\n\tIngrese su edad : ");
        edad = Integer.parseInt(in.readLine( ));

        if( edad >= 18 )
        {
            System.out.println("\n\t-- Ud. es mayor de edad -- ACCESO PERMITIDO.");
             System.out.print("\n\tIngrese su estatura (ej : 1.74 ): ");
            
            /* para leer una variable de tipo double */

            estatura = Double.parseDouble(in.readLine( ));
            
            if( estatura < 1.85)
                System.out.println("\n\tEsta dentro de la estatura permitida");
            else
                System.out.println("\n\tEs demasiado alto para el sistema");
        }
        else
            System.out.println("\n\t-- Ud. es menor de edad -- ACCESO DENEGADO.");

        System.out.println("\n\t-- FIN DE SESION --\n");
    }
} 
Bajar archivo