Está en la página 1de 18

Principios de Algoritmos

Sesión Nº 03 y 05:
Estructuras selectivas (Si y Según sea)

Mgtr. Marcelino Estrada A.
ESTRUCTURAS BASICAS DE
PROGRAMACION

Secuenciales
Selectivas
Repetitivas
Solamente con estas tres estructuras se puede hacer
un programa informático.
ESTRUCTURA SELECTIVA O CONDICIONAL

No Estudiaré y Si
terminaré
la carrera
ESTRUCTURA SELECTIVA

Este tipo de sentencias permiten variar el flujo del


programa en base a unas determinadas condiciones.
La estructura selectiva permite la realización de una
instrucción u otra según un criterio o condición, y solo
una de estas instrucciones se ejecutará.
Los controles que se manejan en esta
estructura son:

Si (condición)
Según Sea (selector)
Estructura Selectiva Si ( if )

Si (condición)
La (condición) tiene 3 partes:

Si (variable op.relacional dato) Ejem: ( edad > 16)

Si (variable op.relacional variable) Ejem: ( talla >= peso)

Puedo unir dos o más condiciones con operadores lógicos


AND, OR.
Operadores Relacionales y Condicionales

Los valores relacionales comparan dos valores y determinan la


relación entre ellos. Por ejemplo, != devuelve true si los dos
operandos son distintos.

Operador Uso Devuelve true si

> op1 > op2 op1 es mayor que op2

>= op1 >= op2 op1 es mayor o igual que op2

< op1 < op2 op1 es menor que op2

<= op1 <= op2 op1 es menor o igual que op2

== op1 == op2 op1 y op2 son iguales

!= op1 != op2 op1 y op2 son distintos

6
Operadores lógicos: AND(&&), OR(||), NOT(!)

Estas condiciones se puede encadenar con “y”, “o”, etc., que se


indican de la siguiente forma:

Operador Significado
&& Y
|| O
! No

Operador Uso Devuelve true si

and op1 and op2 op1 y op2 son verdaderos

or op1 or op2 uno de los dos es verdadero

not not op op es falso


ESTRUCTURA BASICA DE Ejemplo
ALTERNATIVA UNICA Codificado en C++:
Si (condición es Verdadera) entonces if (x>20)
Instrucciones A
{
Instrucciones A;
Fin_si }

Donde: Instrucciones A, puede ser una o varias acciones.

Nota: las llaves siempre se tiene que colocar para indicar donde inicia y donde
acaban las instrucciones para el if, solo se prescindirá de ellas cuando solo
exista una instrucción para el if.
if (edad>30)
if (edad>30) {
cont=cont+1; suma=suma+edad;
cont=cont+1;
}
De alternativa doble:

En Pseudocódigo: Codificada C++:

if (condicion == true)
Si (condicion == verdadera) entonces
{
Acciones A Instrucciones A;
}
sino
else
Acciones B {
Instrucciones B;
Fin_si }
EJEMPLOS:

Con una solo instrucción: Con mas de una instrucción:

if (edad>30) if (edad>30)
cont=cont+1; {
else suma1= suma1+edad;
suma=suma+edad; cont1=cont1+1;
}
else
{
suma2= suma2+edad;
cont2=cont2+1;
}
Si (condicion1 = verdadera) entonces
Acciones A
Sino Si (condicion2 = verdadera) entonces
En Pseudocódigo: Acciones B
Sino Si (condicion3 = verdadera) entonces
Acciones C
Sino
De
Acciones D
alternativa
múltiple:
if (condicion1= true)
Acciones A
else if (condicion2 = true)
Acciones B
Codificada C++: else if (condicion3 = true)
Acciones C
else
Acciones D
Ejemplo: el siguiente fragmento de programa, permite ejecutar instrucciones en función
a rangos de edad utiliza una estructura selectiva con el operador && (AND):

Entero e
String cat;
//Lectura de Datos de Entrada
Leer (e)
Si(e>=0 and e<=13) entonces
cat  “Niño”
Sino si (e>=14 && e<=25) entonces
cat “Joven”
Sino si (e>=26 && e<=60) entonces
cat  “Adulto”
Sino si (e>= 61) entonces
cat  “Anciano”
Sino
cat  “Incorrecto”
Ejemplo:
Crear un programa que efectúe las principales
operaciones matemáticas (+, -, *, /) e indique con
un mensaje si se ingreso una operación no valida.
EL ENUNCIADO según sea (switch)

El control según sea es más práctico, pero sólo es aplicable cuando


se conocen los posibles datos que almacena la variable a evaluar, por
ejemplo:
•Sexo
•Estado civil
•Meses del año
•Tipo de materiales, etc.
Pero cuando no se conoce exactamente los posibles datos que
almacena la variable a evaluar como:
•Edad
•Talla
•Peso
•Precios, etc.
Ya que son infinidad de posibilidades y de repente sea preciso
trabajar con rangos donde se plantee mayor (>) o menor (<), es
mejor hacer uso del control si, ya que este sí permite condicionar
instrucciones en función a los valores de la variable.
EL ENUNCIADO según sea (switch)

Pseudocódigo: Codificado en C++:

según sea (selector) hacer switch (selector)


{
caso valor1: Instrucciones 1
case valor_1: instrucción_1; break;
caso valor2: Instrucciones 2
case valor_2: instrucción_2;
. break;
.
.
.
caso valora: Instrucciones N .
case valor_n: instrucción_n; break;
En caso contrario
default: instrucción_otras;
Instrucciones X
}
fin_segun
El selector es una variable, que debe ser del tipo entero o carácter y
dependiendo de los datos que ésta variable pueda almacenar serán los
casos que se listan a continuación.
EJEMPLOS

Si el selector rubro es un Si el selector talla es un


número entero carácter

Según sea (rubro) entonces Según sea (talla) entonces

caso 0: ph  33.00 caso ‘S’: p  33.00

caso 1: ph  23.50 caso ‘M’: p  23.50

caso 2: ph  10.30 caso ‘L’: p  10.30

caso 3: ph  10.30 caso ‘X’: p  10.30

En caso contrario ph=0; En caso contrario p  5.50

fin_segun fin_segun
CODIFICADO EN C++

Si el selector rubro es un Si el selector talla es un


número entero carácter

switch (rubro) switch (talla)


{ {

case 0: ph=33.00; break; case ‘S’: p=33.00; break;

case 1: ph=23.50; break; case ‘M’: p=23.50; break;

case 2: ph=10.30; break; case ‘L’: p=10.30; break;

case 3: ph=10.30; break; case ‘X’: p=10.30; break;

default: ph=0; default: p=5.50;

} }
EJEMPLO

Se desea saber cuanto pagar por comprar una cierta


cantidad de polos de una misma talla, donde la talla
Small cuesta 30 soles, el Medium 40 soles, el Large 50
soles y el ExtraLarge cuesta 60 soles, Además sobre el
monto que salga se cobrara el IGV.

También podría gustarte