Você está na página 1de 31

Introduccin a la Programacin

Conferencia #3: Estructuras de control alternativas.

Profesor: Yaniela Fernndez Mena

Introduccin
Hasta ahora se han visto problemas cuya solucin es un algoritmo de secuencia lineal.
Recordemos el problema donde se utiliza la clase cuenta bancaria. Cmo determinar si la cuenta posee dinero suficiente para extraer? En muchos casos es necesario tomar decisiones, analizar una condicin previa, antes de dar el siguiente paso. Las estructuras alternativas tienen la solucin.

Objetivos
Identificar los operadores relacionales y lgicos en la formacin de expresiones para crear estructuras alternativas.
Diferenciar las estructuras condicionales simples, compuestas y mltiples mediante su forma de funcionamiento para dar solucin a problemas que requieran el uso de alternativas.

Sumario
1. El tipo de dato booleano. 2. Los operadores relacionales 3. los operadores lgicos. 4. Estructuras de control condicionales
a) Alternativa simple. La estructura if b) Alternativas mltiples con la estructura if/else c) Alternativas mltiples con la estructura switch

1. Conclusiones. 2. Orientacin de las horas inducidas.

Bibliografa
1. Manual de la asignatura. Captulo 4.Colectivo de autores.
2. La esencia de la Lgica de Programacin. Captulos 7. Omar Ivn Trejos.

Sumario
1. El tipo de dato booleano. 2. Los operadores relacionales 3. Los operadores lgicos. 4. Estructuras de control condicionales
a) Alternativa simple. La estructura if b) Alternativas mltiples con la estructura if/else c) Alternativas mltiples con la estructura switch

1. Conclusiones. 2. Orientacin de las horas inducidas.

El tipo de dato booleano


Tipo bool: Establece el resultado de una condicin mediante los valores true y false. Ejemplos: bool var = true; bool adulto = false; var = false;
Una condicin determinada puede ser verdadera o falsa, en dependencia de su cumplimiento. -a>b - x es par - y < 60 Este tipo de condiciones reciben el nombre de expresin booleana.

Operadores relacionales
Operador Ejemplo Significado true si: == != > < >= <= x == y Igual x != y Distinto x > y x < y
x es igual a y

false si:
x es distinto a y

x es distinto a x es igual a y y que y que y x es menor o igual que y x es mayor o igual que y x es menor que y x es mayor que y

Mayor que x es mayor Menor que x es menor


x es mayor o igual que y x es menor o igual que y

x >= y Mayor o igual que x <= y Menor o igual que

Operadores relacionales
Condicin x == y x != y x > y x < y x >= y x <= y x 8 20 9 5 5 2 y 8 20 3 2 5 1 Valor true false true false true false

Operadores relacionales
El resultado de una expresin booleana se le puede asignar a una variable del mismo tipo.

Ejemplos: bool var; int x = 30; var = (x == 15); var = (x > 10); var = (x > 10 > 5); Error sintactico

Operadores lgicos
Las expresiones booleanas pueden combinarse mediante un grupo de operadores conocidos como operadores lgicos
Operador Nombre Operacin ! NO (NOT) !A true si:
A es false Al menos A o B es true Tanto A como B son true

false si:
A es true Tanto A como B son false Al menos A o B es false

||
&&

O (OR)

A || B

Y (AND) A && B

Operadores lgicos
int a = 30, b = 45, c = 15, x = 2; var = (((c == x) || (x < b)) && (x == 2))

false

true

true
true

true

Conclusiones parciales

Qu valores puede tener el tipo de datos booleano? Que es una expresin booleana? Por que tipo de operadores est compuesta?

Sumario
1. El tipo de dato booleano. 2. Los operadores relacionales 3. Los operadores lgicos. 4. Estructuras de control condicionales
a) Alternativa simple. La estructura if b) Alternativas mltiples con la estructura if/else c) Alternativas mltiples con la estructura switch

1. Conclusiones. 2. Orientacin de las horas inducidas.

Alternativa simple. La estructura if


Sintaxis: if(<expresin booleana>) [Bloque de instrucciones] NOTA: Si el bloque de instrucciones tiene ms de una instruccin, debe ir encerrado entre llaves ( {} ).

Semntica:
Si se cumple la condicin se ejecuta el bloque de instrucciones, de lo contrario se ejecuta la instruccin que le sigue a la estructura de control.

Alternativa simple. La estructura if


Ejemplo if((a <= b)&&(a <= c)) IO.println("a es menor"); if((b <= a)&&(b <= c)) IO.println("b es menor"); if((c <= a)&&(c <= b)) IO.println("c es menor");

OJO: Es sugerente respetar los mrgenes.

Alternativa doble. La estructura if/else


Sintaxis: if(<expresin booleana>) [Bloque 1 de instrucciones] else [Bloque 2 de instrucciones] Semntica:

Si se cumple la condicin se ejecuta el conjunto 1 de instrucciones, de lo contrario se ejecuta el conjunto 2.

Alternativa doble. La estructura if/else


Ejemplo int a, b, c; // if((a+b > c)&&(a+c > b)&&(b+c > a)) IO.println(S forman un tringulo"); else IO.println(S forman un tringulo");

Alternativa mltiple con if/else


if(<expresin booleana>) [Bloque 1 de instrucciones] else { if(<expresin booleana>) [Bloque 2 de instrucciones] else [Bloque 3 de instrucciones] }

Alternativa mltiple con if/else


Es preferible: if(<expresin booleana>) [Bloque 1 de instrucciones] else if(<expresin booleana>) [Bloque 2 de instrucciones] else [Bloque 3 de instrucciones]

Alternativa mltiple con if/else


Ejemplo if((a <= b)&&(a <= c)) IO.println("a es menor"); else if((b <= a)&&(b <= c)) IO.println("b es menor"); else IO.println("c es menor");

Alternativa mltiple con if/else


Reto: Leer un entero y si es igual a cualquier dgito comprendido entre 1 y 5 escribir su nombre. Debatir la solucin con los estudiantes. Preguntar si existe otra variante de solucin e introducir la estructura switch.

Sumario
1. El tipo de dato booleano. 2. Los operadores relacionales 3. Los operadores lgicos. 4. Estructuras de control condicionales
a) Alternativa simple. La estructura if b) Alternativas mltiples con la estructura if/else c) Alternativas mltiples con la estructura switch

1. Conclusiones. 2. Orientacin de las horas inducidas.

Estructura de control switch


Sintaxis:
switch(<expresin>) { case <constante 1> : [Bloque 1 de instrucciones] case <constante 2> : [Bloque 2 de instrucciones] . . . case <constante N> : [Bloque N de instrucciones] [default : [Bloque N+1 de instrucciones]] }

Estructura de control switch


Semntica: 1.Se evala la expresin. 2.Se busca qu etiqueta case tiene una constante con valor igual al valor de la expresin. 3.Si existe la etiqueta case, se ejecutan los bloques de instrucciones que aparecen a partir de dicha etiqueta. 4.Si no existe la etiqueta, se ejecuta el bloque de instrucciones asociado al caso default (en caso que ste haya sido planteado)

Estructura de control switch


Solucin del reto:
switch(num) { case 5 : IO.println (Cinco"); break; case 4 : IO.println(Cuatro"); break; case 3 : IO.println(Tres"); break; case 2 : IO.println(Dos"); break; default : IO.println(fuera de rango"); } break: evita que los cases se ejecuten uno a continuacin de otro

Sumario
1. El tipo de dato booleano. 2. Los operadores relacionales 3. Los operadores lgicos. 4. Estructuras de control condicionales
a) Alternativa simple. La estructura if b) Alternativas mltiples con la estructura if/else c) Alternativas mltiples con la estructura switch

1. Conclusiones. 2. Orientacin de las horas inducidas.

Conclusiones
Las estructuras alternativas son necesarias cuando en algn punto del algoritmo es necesario tomar decisiones. Se ha visto el tipo de datos booleano y los operadores relacionales y lgicos. Se vio cmo formular alternativas simples y mltiples mediante la estructura if/else Se vio cmo formular alternativas mltiples mediante la estructura switch

Sumario
1. El tipo de dato booleano. 2. Los operadores relacionales 3. Los operadores lgicos. 4. Estructuras de control condicionales
a) Alternativa simple. La estructura if b) Alternativas mltiples con la estructura if/else c) Alternativas mltiples con la estructura switch

1. Conclusiones. 2. Orientacin de las horas inducidas.

Orientacin de las Horas Inducidas


HI 4.1
Realizar tres de los 7 ejercicios que aparecen en la Gua del Estudiante.

Tiempo estimado: 4 horas Forma de entrega: Subir el proyecto compactado en un archivo a travs de la Tarea Horas Inducidas 4.1 que est en el EVA.

Realizar PNI sobre la conferencia

03/10/11

Você também pode gostar