Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Estructura Selectiva Múltiple y Anidada.

No description
by

Lilliam Serrano

on 5 July 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Estructura Selectiva Múltiple y Anidada.

INTRODUCCIÓN
Antes de escribir un programa que dé solución a un problema, es imprescindible tener una comprensión detallada de todo el problema para resolverlo. Al escribir un programa, es esencial comprender los tipos de bloques de construcción disponibles, y emplear las técnicas comprobadas para construir programas.
Con frecuencia existen más de dos alternativas posibles (por ejemplo: en una ecuación de segundo grado el discriminante puede ser negativo, nulo o positivo). Este problema se puede resolver utilizando estructuras alternativas simples o dobles anidadas o en cascada, pero este tipo de solución añade complejidad al algoritmo y hace difícil la lectura del código fuente.
Estructura Selectiva Múltiple.

La
estructura de selección múltiple
ofrece una solución más simple y compacta. Para esta estructura se evalúa una expresión que puede tomar n valores distintos (1, 2, 3,..., n) A cada valor de la expresión corresponde una instrucción (o serie de instrucciones) diferente, lo que significa que el flujo seguirá un camino distinto entre los n posibles caminos en dependencia del valor de la expresión de control.
La representación gráfica de este tipo de estructura de selección sería:
Según_sea <expresión> hacer
caso 1: acción 1
caso 2: acción 2
caso 3: acción 3
.
.
.
caso N: acción n
si_no
acción x
fin_según


En español, el pseudocódigo que representa a la estructura de selección múltiple es:
switch (expresión) {
case valor1:
/ / Declaraciones
break; / / opcional
case valor2:
/ / Declaraciones
break; / / opcional
/ / Usted puede tener cualquier número de sentencias case.
default: / / Opcional
/ / Declaraciones que cumplirá si la variable no entra en ningún caso.
}

Estructura Selectiva Múltiple y Anidada.
Seleccionar
Entre N
Opciones

Instrucción 1
Instrucción 2
Instrucción 3
Instrucción N
CASO 1
CASO 2
CASO 3
CASO N
Como estamos hablando de estructura selectiva múltiple lo más apropiado para estos tipos de casos es: la estructura de control Switch .
Una sentencia Switch permite a una variable ser probada por una lista de condiciones. Cada condición se llama case.Veamos la sintaxis:
Las siguientes reglas se aplican a una sentencia switch :
Las variables sólo pueden ser de tipo byte, short , int, o char.
Puedes tener cualquier número de sentencias case dentro de un switch. Cada caso es seguido del valor a ser comparado.
El valor de un caso debe ser el mismo tipo de datos que la variable en el switch.
Cuando la variable del switch es igual a un caso, las instrucciones que siguen a ese caso se ejecutará hasta que se alcanza una sentencia break.
Cuando se llega a una sentencia break, el caso termina, y el flujo de control pasa a la siguiente línea después de la sentencia switch.
No todos los casos tiene que contener un break.
Una sentencia switch puede tener un caso por defecto (opcional), que debe aparecer al final del switch. El caso por defecto se puede utilizar para realizar una tarea cuando ninguno de los casos es cierto.
Por ejemplo, el pseudocódigo para un programa que escribe los nombres de los días de la semana en función de una variable (DIA) introducida por el teclado:
import javax.swing.JOptionPane;
public class DIAS {

public static void main(String []args)
{
String cadena;
int Dia;
cadena=JOptionPane.showInputDialog( "Ingresa un numero del 1 al 12");
Dia= Integer.parseInt(cadena);

switch(Dia)
{
case 1:
JOptionPane.showMessageDialog(null,"ENERO");
break;

case 2:
JOptionPane.showMessageDialog(null,"FEBRERO");
break;
case 3:
JOptionPane.showMessageDialog(null,"MARZO");
break;
case 4:
JOptionPane.showMessageDialog(null,"ABRIL");
break;
case 5:
JOptionPane.showMessageDialog(null,"MAYO");
break;
case 6:
JOptionPane.showMessageDialog(null,"JUNIO");
break;
case 7:
JOptionPane.showMessageDialog(null,"JULIO");
break;

case 8:
JOptionPane.showMessageDialog(null,"AGOSTO");
break;
case 9:
JOptionPane.showMessageDialog(null,"SEPTIEMBRE");
break;
case 10:
JOptionPane.showMessageDialog(null,"OCTUBRE");
break;
case 11:
JOptionPane.showMessageDialog(null,"NOVIEMBRE");
break;
case 12:
JOptionPane.showMessageDialog(null,"DICIEMBRE");
break;
default:
JOptionPane.showMessageDialog(null,"FUERA DE RANGO \n Ingresa un numero del 1 al 12");
}
}
}

PRIMERA PARTE DEL VIDEO

A continuación un video con un ejemplo de switch esta dividido en tres partes.
Segunda parte del video
Tercera parte del video
Estructura Selectiva Anidada
Decimos que una estructura condicional es anidada cuando por la rama del verdadero o el falso de una estructura condicional hay otra estructura condicional.
El diagrama de flujo que se presenta contiene dos estructuras condicionales. La principal se trata de una estructura condicional compuesta y la segunda es una estructura condicional simple y está contenida por la rama del falso de la primer estructura.
Es común que se presenten estructuras condicionales anidadas aún más complejas.
si condición entonces
si condición entonces
instrucción 1
instrucción 2
......
instrucción N
fin_si
si_no
si condición entonces
instrucción 1
instrucción 2
......
instrucción M
si_no
instrucción 1
instrucción 2
......
instrucción P
fin_si
fin_si

Pseudocódigo ejemplo de anidación
if (condicion)
{
if (condicion)
{
instruccion1;
instruccion2;
.
.
instruccionN;
}
}
else
{
if (condicion)
{
instruccion1;
instruccion2;
.
.
instruccionM;
}
else
{
instruccion1;
instruccion2;
.
.
instruccionP;
}
}
Ejemplo
Dado 3 variables locales definidas como int, escribe if para imprimirlos de forma ascendente. Incluso si cambiamos los valores de las 3 variables, deben de ser imprimidas en orden ascendente. Eje: int a=12, int b=34, int c=6, debe imprimir: 6 12 34.
public class Numeros {
public static void main(String args[]) {
int a = 12;
int b = 34;
int c = 6;
//A es menor
if ((a < b) && (a < c)) {
System.out.print(a + " ");
if(b < c){
System.out.print(b + " ");
System.out.print(c);
}else{
System.out.print(c+ " ");
System.out.print(b);
}
}else if((b < a) && (b < c)){
System.out.print(b + " ");
if(c<a){
System.out.print(c);
System.out.print(a);
}else{
System.out.print(a+ " ");
System.out.print(c);
}

}else if((c < a) && (c < b)){
System.out.print(c + " ");
if(b < a){
System.out.print(b);
System.out.print(" " +a);
}else{
System.out.print(a + " ");
System.out.print(b);
}
}
}
}
Primera parte
Segunda parte
A continuación unos vídeos de ejemplo de anidación.
Esto ha sido todo gracias por su atención.

Full transcript