7 dic 2010

Estructura de selección doble (if...else)

El funcionamiento de la estructura de selección doble si…sino (if…else) evalúa una condición lógica, si es verdadera ejecuta una o varias instrucciones (conjunto de instrucciones), si es falsa, ejecuta otro conjunto de instrucciones.



si ( condición )
Instrucción a
sino
Instrucción b

* Si se tiene más de una instrucción:

Si ( condición ) {
Instrucción a1
Instrucción a2
Instrucción a3
Instrucción aN
}
sino {
Instrucción b1
Instrucción b2
Instrucción b3
Instrucción bN
}

Ejemplo
Vamos a desarrollar un programa que permita ingresar un número de tres cifras positivo y nos indique si es o no un número capicúa (número que se lee igual de derecha a izquierda que de izquierda a derecha).

-> Pseudocódigo

Inicio

          //Declaración de variables
          entero num, c, d, u, reves

          //Entrada de datos
          Leer num

          //Determina si el número ingresado es positivo y de tres cifras
          si (num>=100 AND num<=999) entonces
                    //Separa los dígitos del número
                    c = num/100
                    d = (num MOD 100)/10
                    u = num MOD 10

                    //Une los dígitos separados de forma inversa
                    reves = u*100+d*10+c

                    //Determina si el número es capicúa
                    Si (num = reves) entonces
                              Visualizar El número es capicúa
                    Sino
                              Visualizar El número no es capicúa
          //Muestra mensaje de error si el número no es positivo y de tres cifras
          Sino
                    Visualizar Error: ingrese número positivo de tres cifras
Fin

-> Programación en JCreator:

Crear un nuevo proyecto (basic java applet) con el nombre "capicua".


import java.awt.event.*;
import java.awt.*;
import javax.swing.*;

public class capicua extends JApplet implements ActionListener{

          //Declaramos controles
          JLabel lblNumero;
          JTextField txtNumero;
          JButton btnProcesar,btnBorrar;
          JTextArea txtA;
          JScrollPane scpResultado;

          //Desarrollo de la interfaz gráfica de usuario GUI
          public void init(){
                    getContentPane().setLayout(null);

                    lblNumero = new JLabel("Número");
                    lblNumero.setBounds(20,20,70,23);
                    getContentPane().add(lblNumero);

                    txtNumero = new JTextField();
                    txtNumero.setBounds(90,20,100,23);
                    getContentPane().add(txtNumero);

                    btnProcesar = new JButton("Procesar");
                    btnProcesar.setBounds(210,20,100,23);
                    btnProcesar.addActionListener(this);
                    getContentPane().add(btnProcesar);

                    btnBorrar = new JButton("Borrar");
                    btnBorrar.setBounds(210,50,100,23);
                    btnBorrar.addActionListener(this);
                    getContentPane().add(btnBorrar);

                    txtA = new JTextArea();

                    scpResultado = new JScrollPane(txtA);
                    scpResultado.setBounds(20,83,290,100);
                    getContentPane().add(scpResultado);
          }

          //Eventos de tipo ActionEvent
          public void actionPerformed( ActionEvent e ){

                    //Si se hizo click en el botón procesar
                    if(e.getSource()==btnProcesar){

                              //Declaración de variables
                              int num,u,d,c,reves;

                              //Entrada de datos
                              num = Integer.parseInt(txtNumero.getText());

                              //Determina si el número ingresado es positivo y de tres cifras
                              if(num>=100&&num<=999){
                                        //Separa los dígitos del número ingresado
                                        c = num/100;
                                        d = (num%100)/10;
                                        u = num%10;

                                        //Une los dígitos de forma inversa
                                        reves = u*100+d*10+c;

                                        //Determina si el número ingresado es capicúa
                                        if(num==reves)
                                                  txtA.setText("el número "+num+" es capicúa");
                                        else
                                                  txtA.setText("el número "+num+" no es capicúa");
                              }
                              //Muestra mensaje de error si el número esta fuera de rango
                              else
                                        txtA.setText("Error: ingrese número positivo de tres cifras");
                    }
                    //Si se hizo click en el botón borrar
                    if(e.getSource()==btnBorrar){
                              txtA.setText("");
                              txtNumero.setText(""); txtNumero.requestFocus();
                    }
          }
}



Ir a estructura de selección simple.
Ir a estructura de selección multiple switch.

1 comentario: