Está en la página 1de 14

I NG.

F LI X HUARI 1
ESTRUCTURA SELECTIVA DE CONTROL EN C++
Las sentencias se ejecutan una tras otra, en el orden
en el que se escribieron, pero es posible escribir que
el programador indique las instrucciones que se
debe ejecutar
Para ello se utiliza las estructuras de seleccin,
donde mediante esta podemos alterar el flujo del
control secuencial.
a) Sentencia if()
Sintaxis
if (<condicion>)
sentencia1(s);
[else
sentencia2(s);]
I NG. F LI X HUARI 2
ESTRUCTURA SELECTIVA DE CONTROL EN C++
Representacin en carta N-S y diagrama de flujo.
N-S D.F.
Condicin
Verdad
Falso
Sentencia(s) Sentencia(s)
Condicin
Sentencia1
Sentencia2
Si
No
I NG. F LI X HUARI 3
ESTRUCTURA SELECTIVA DE CONTROL EN C++
Si la condicin es verdadero, se ejecuta la sentencia1(s),
en caso contrario se ejecuta la sentencia2(s), es decir la
sentencia que esta despus de la clusula else.
b) Setencia if() en Bloque
Sintaxis
if (<condicion1>)
sentencia1(s);
[else if(<condicion2>)
sentencia2(s);
else if(<condicion3>)
sentencia3(s);
.
....
else
sentencia(s);]
I NG. F LI X HUARI 4
ESTRUCTURA SELECTIVA DE CONTROL EN C++
Condicin1
V
F
S
e
n
t
e
n
c
i
a
1
(
s
)
Condicin2
Sentencia3
Sentencia2
No
Condicin2
V F
S
e
n
t
e
n
c
i
a
3
(
s
)
S
e
n
t
e
n
c
i
a
2
(
s
)
Condicin
1
Sentencia1
Si
No
Si
Representacin en carta N-S y diagrama de flujo (D.F.).
I NG. F LI X HUARI 5
ESTRUCTURA SELECTIVA DE CONTROL EN C++
Si la condicin1 es verdadero, se ejecuta la sentencia1(s), en
caso contrario prueba la condicion2, si es verdadero se procesa la
sentencia2(s), y as sucesivamente se va probando el resto de las
condiciones.
Si ninguna de las condiciones se cumple, entonces se ejecuta la
sentencia que viene despus de la clusula else.
Nota: En una instruccin if/else, while, do while, for. Si existe una
instruccin se llama sentencia simple, no es necesario delimitar
con llaves.
En cambio si existe mas de una instruccin, es sentencia
compuesta por lo tanto debe delimitarse con llaves ({ }).
I NG. F LI X HUARI 6
ESTRUCTURA SELECTIVA DE CONTROL EN C++
#include <iostream>
using namespace std;
//Programa principal
int main()
{ int a, b, resto;
cout<<"Ingrese primer numero:";cin>>a;
cout<<"Ingrese segundo numero:";cin>>b;
cout<<endl;
if(b!=0)
{ resto= a-a/b*b;
Dado 2 nmeros enteros, se pide escribir un programa que permita
verificar si es divisible el primer numero con el segundo, en cada
caso escribir un mensaje adecuado.
I NG. F LI X HUARI 7
ESTRUCTURA SELECTIVA DE CONTROL EN C++
if(resto==0)
cout<<a<<" es divisible entre "<<b<<endl;
else
cout<<a<<" no es divisible entre "<<b<<endl;
}
else
cout<<"Error..., denominador debe ser diferente de cero\n";
cout<<endl;
system("pause");
}
I NG. F LI X HUARI 8
ESTRUCTURA SELECTIVA DE CONTROL EN C++
#include <iostream>
using namespace std;
//Programa principal
int main()
{ int n,d,m;
cout<<"Ingrese primer numero:";
cin>>n;
cout<<endl;
if(n>=100 && n<1000)
{ m=n/10;
d=m-m/10*10;
cout<<"El digito central es "<<d<<endl;
}
else
cout<<"Error en ingreso de datos\n";
system("pause");
}
I NG. F LI X HUARI 9
ESTRUCTURA SELECTIVA DE CONTROL EN C++
Ejemplo
#include <iostream>
using namespace std;
// Programa de conv. de temperaturas
int main()
{ char tipo;
float temp,celsius;
cout<<"Temperatura a convertir:"; cin>>temp;
cout<<"Digite F si la temperatyura esta en grados Fahrenheit"<<endl;
cout<<"o una C si la temperatura esta en grados Celsius: "; cin>>tipo;
if(tipo=='F')
{ celsius=5.0/9*(temp-32.0);
cout<<"Equivale a "<<celsius<<" grados celsius"<<endl;
}
else
cout<<"Equivale a "<<(9.0/5*temp+32.0)<<" grados Fahrenheit"<<endl;
}
I NG. F LI X HUARI 10
ESTRUCTURA SELECTIVA DE CONTROL EN C++
Sentencia switch()
Sintaxis:
switch(<variable selector>)
{ case <constante 1>:sentencia1(s);break;
case <constante 2>:sentencia2(s);break;
case <constante 3>:sentencia3(s);break;
..
..
default:
sentencia(s);
}
I NG. F LI X HUARI 11
ESTRUCTURA SELECTIVA DE CONTROL EN C++
Esta instruccin se utiliza para seleccionar una alternativa
dentro de mltiples opciones disponibles.
El contenido de la variable selector debe ser ordinal, es decir
pueden ser datos tipo int, long int, short int, char. No esta
permitido datos tipo flotante.
La nica comparacin que se realiza en un switch es la
igualdad.
Es decir si la variable selector es exactamente igual a la
constante 1, entonces se ejecuta la sentencia1(s), luego de
encontrar la instruccin break, har que el control de programa
salga fuera del switch.
Si no cumple la condicin anterior pasara evaluar el siguiente
caso y a si sucesivamente. Si ninguno de los casos se cumplen
ejecuta la sentencias que viene despus del default.
I NG. F LI X HUARI 12
ESTRUCTURA SELECTIVA DE CONTROL EN C++
Variable
Otro
Caso
S
e
n
t
e
n
c
i
a
(
s
)
S
e
n
t
e
n
c
i
a
(
s
)
S
e
n
t
e
n
c
i
a
(
s
)
S
e
n
t
e
n
c
i
a
(
s
)
S
e
n
t
e
n
c
i
a
(
s
)
S
e
n
t
e
n
c
i
a
(
s
)
S
e
n
t
e
n
c
i
a
(
s
)
Representacin en carta N-S de la sentencia switch
S
e
n
t
e
n
c
i
a
(
s
)
S
e
n
t
e
n
c
i
a
(
s
)
I NG. F LI X HUARI 13
ESTRUCTURA SELECTIVA DE CONTROL EN C++
La instruccin break, es una instruccin de quiebre que
finaliza la ejecucin de una sentencia como switch,
while, do/while, y for.
Ejemplo.
#include <iostream>
using namespace std;
int main()
{ int op;
float n1,n2;
cout<<"Ingrese 2 numeros enteros:";
cin>>n1>>n2;
I NG. F LI X HUARI 14
ESTRUCTURA SELECTIVA DE CONTROL EN C++
cout<<"\nOPERACIONES BASICAS"<<endl;
cout<<endl<<"1. Sumar"<<endl;
cout<<"2. Multiplicar"<<endl;
cout<<"3. Dividir\n";
cout<<endl<<"Digite su opcion:";cin>>op;
switch(op)
{ case 1: cout<<"La suma de los 2 numeros es:"<<n1+n2<<endl;break;
case 2: cout<<"El producto de los 2 numeros es:"<<n1*n2<<endl;break;
case 3: if(n2!=0)
cout<<"La division de los 2 numeros es:"<<n1/n2<<endl;
else
cout<<"No es posible la division, es indeterminado"<<endl;
break;
default:
cout<<"Opcion elegida no existe\n";
}
cout<<endl;
}