Diapositivas Estructuras de Decisión

Page 1

Facultad de Ingeniería Departamento de Ciencias de la Información

Informática 1 532219


UNIDAD 1 ALGORITMOS Profesor Fabiรกn Lasso


ESTRUCTURAS CONDICIONALES Permiten la evaluación de una expresión, escrita como una condición y con base en su resultado, se ejecuta una sentencia.

•El resultado de la condición es siempre un valor verdadero o falso. •Estos resultados son siempre excluyentes Existen dos estructuras: SI SI SINO

Hay una estructura de decisión más elaborada llamada “SEGÚN CASO”, ésta se diferencia de las anteriores en que el resultado de la expresión a evaluar, puede tomar valores enteros o caracteres. Profesor Fabián Lasso


ESTRUCTURAS CONDICIONALES Concepto de Condición: es una expresión que involucra operadores relacionales y/o lógicos en su estructura. Esto significa que el resultado de su evaluación es un valor booleano (verdadero o falso) OPERADORES RELACIONALES

OPERADORES LÓGICOS

V1

V2

! V1

V1 || V2

V1 && V2

Exp1&&Exp2

V

V

F

V

V

Símbolo

Sintaxis

Nombre

Símbolo

>

a>b

Y (AND)

&&

>=

a>=b

O (OR)

||

Exp1||Exp2

F

V

V

V

F

<

a<b

NO (NOT)

!

!Exp

V

F

F

V

F

Menor o igual que

<=

a<=b

F

F

V

F

F

Igual a

==

a==b

Diferente de

!=

a!=b

Nombre

Mayor que Mayor o igual que Menor que

Sintaxis

Profesor Fabián Lasso


ESTRUCTURA SI Esta es la estructura condicional más simple. Sintaxis: SI (condición){ sentencias para valor “verdadero” de la condición; } Un valor “verdadero” arrojado como resultado de la evaluación de la condición, ejecuta las sentencias en el cuerpo de la estructura. En el caso en que no se cumpla la condición, el algoritmo ejecuta las sentencias que siguen, en su flujo, a la estructura.

Profesor Fabián Lasso


Ejemplo: Lea un número cualquiera y calcule e imprima su doble, solo si tal número es mayor que 20 Abstracción Datos

flotante num

Información

flotante num_doble

Condición

num > 20

Proceso

1. Capturar el valor del número y guardarlo en la variable num 2. Se determina si el valor es mayor que 20 3. Si esa condición es verdadera se calcula el doble del valor, se lo asigna a la variable num_doble y se lo imprime 4. En otro caso no se realizan operaciones Profesor Fabián Lasso


Ejemplo: Lea un número cualquiera y calcule e imprima su doble, solo si tal número es mayor que 20 INICIO ALGORITMO Doble{ //Declaración de variables flotante num = 0.0; flotante num_doble = 0.0;

IMPRIMA(“Digite un número: “); LEA(num); //Utilización de la estructura de decisión simple SI (num > 20) { num_doble = num*2; IMPRIMA (“El doble de “+num+” es “+num_doble); } } FIN ALGORITMO Doble

Profesor Fabián Lasso


Ejercicios: Objetivos: •Reconocer el concepto, la estructura sintáctica y el ámbito de aplicación de la estructura de decisión SI •Aplicar la estructura de decisión SI en la solución de un problema determinado

1. Capturar un número e imprimirlo, solo si es par 2. En determinada empresa, la sección de ventas ofrece a sus vendedores una comisión del 5%, solo si la venta supera el $1´000.000

Profesor Fabián Lasso


ESTRUCTURA SI - SINO Es una estructura de decisión similar a la simple, pero con una adición a su forma funcional, que considera el evento en que el resultado de la condición evaluada sea falso. Sintaxis: SI (condición){ sentencias para valor “verdadero” de la condición; } SINO { sentencias para valor “falso” de la condición; } La condición puede evaluarse en sus dos valores booleanos (verdadero y falso) para cumplir con un conjunto de sentencias determinadas. La ejecución de los bloques de sentencias, para los posibles valores de la condición, se basa en procedimientos excluyentes. Profesor Fabián Lasso


Ejemplo: Determinar si un número entero, cualquiera, es par o impar Abstracción Datos

entero numero

Información

numero%2 Número par o impar

Condición

Proceso

numero %2 == 0

1. Capturar el valor del número y guardarlo en la variable numero 2. Se determina si el módulo entre numero y 2 es cero 3. Si esa condición es verdadera se imprime un letrero, asegurando que el numero es par 4. En otro caso se imprime un letrero asegurando que el numero es impar Profesor Fabián Lasso


Ejemplo: Determinar si un número entero, cualquiera, es par o impar INICIO ALGORITMO Par_Impar { entero numero = 0; SI (numero%2 == 0) { IMPRIMA (numero+” es un número par”); } SINO { IMPRIMA (numero+” es un número impar”); } } FIN ALGORITMO Par_Impar

Profesor Fabián Lasso


Ejercicios Objetivos: •Reconocer el concepto, la estructura sintáctica y el ámbito de aplicación de la estructura de decisión SI - SINO •Aplicar la estructura de decisión SI – SINO en la solución de un problema determinado

1. La nota final de determinada asignatura se calcula con base en el promedio de tres notas. Leer el nombre del estudiante, la asignatura y las tres notas; calcular su nota final y determinar si el estudiante perdió o ganó dicha materia. 2. Leer dos números y determinar si están en orden ascendente o descendente 3. Leer la duración, en minutos de una llamada mediante teléfono celular. Calcular e imprimir el costo de la llamada así: •200 pesos por minuto si la llamada dura cinco minutos o menos de cinco minutos. •Si la duración supera los cinco minutos de debe hacer un descuento de 50 pesos por minuto adicional a los cinco. 4. En épocas de feria, el almacén “El Baratón” establece una promoción, en sus ventas. El cliente adquiere un descuento del 40%, en el valor de la compra, cuando el número de artículos supera los 3; en otro caso se hará un descuento del 5% sobre el valor de lo comprado. Desarrolle un algoritmo que gestione una factura para tal situación. Profesor Fabián Lasso


ESTRUCTURA SI - SINO ANIDADA A esta estructura, la componen una serie de estructuras SI - SINO, considerando distintas posibilidades en la composición de sus “condiciones” Sintaxis: SI (condición1){ sentencias para valor “verdadero” de la condición1; } SINO SI (condición2){ sentencias para valor “verdadero” de la condición2; }SINO SI(condición3){ sentencias para valor “verdadero” de la condición3; }SINO SI… : SINO SI (condiciónN){ sentencias para valor “verdadero” de la condiciónN; }SINO { sentencias para valor “falso” de todas las anteriores condiciones; Profesor Fabián Lasso }


Ejemplo: Leer tres números y determinar cuál es el mayor de ellos Abstracción Datos

Información

Condición

doble num1 doble num2 doble num3

•Numero mayor •Las relaciones establecidas por los operadores relacionales y lógicos, entre las variables

num1>num2 && num1>num3 num2 >num1 && num2>num3

Proceso 1.

2.

3.

4.

Capturar el valor de los tres números en las tres variables num1, num2 y num3 Comparar el valor de num1 con num2 y num3. Si num1 tiene el mayor valor, imprimir un mensaje acerca de esta situación En caso contrario, comparar el valor de num2 con num1 y num3. Si num2 tiene el mayor valor, imprimir un mensaje diciendo esto. En caso contrario y si no se han cumplido las anteriores condiciones, es porque el valor mayor lo tiene num3 y se debe imprimir un letrero en este sentido Profesor Fabián Lasso


Ejemplo: Leer tres números y determinar cuál es el mayor de ellos INICIO ALGORITMO Mayor { //Declaración de variables doble num1=0; doble num2=0; doble num3=0; IMPRIMA (“Digite el primer número: “); LEA(num1); IMPRIMA (“Digite el segundo número: “); LEA(num2); IMPRIMA (“Digite el tercer número: “); LEA(num3);

//Utilización de la estructura de decisión SI (num1>num2 && num1>num3) { IMPRIMA(“El numero mayor es “+num1); } SINO SI(num2>num1 && num2>num3) { IMPRIMA(“El numero mayor es “+num2); } SINO { IMPRIMA(“El numero mayor es “+num3); } } FIN ALGORITMO Mayor

Profesor Fabián Lasso


Ejercicios Objetivos: •Reconocer el concepto, la estructura sintáctica y el ámbito de aplicación de la estructura de decisión •Aplicar la estructura de decisión SI – SINO anidada en la solución de un problema determinado

1.

SI – SINO anidada

El descuento en el precio de un artículo, en un almacén, depende de su costo unitario tal como lo relaciona las siguiente tabla:

Leer el nombre del artículo, su costo unitario, determinar el valor del descuento y del precio final. Imprimir una salida con la siguiente sintaxis: Artículo: [Nombre del artículo] Costo Unitario: $ [valor del costo unitario] Descuento: [porcentaje del descuento] Valor: $ [valor del descuento] Precio Final: $ [valor del precio final del artículo]

Profesor Fabián Lasso


ESTRUCTURA SEGUN CASO La estructura evalúa una expresión que pueda tomar n valores (enteros, caracteres, pero nunca reales, ni cadenas) y ejecuta una acción o grupo de acciones diferente en función del valor tomado por la expresión selectora .

SEGUN (expresión){ CASO valor_1: Sentencias_1; BREAK; CASO valor_2: Sentencias_2; BREAK; CASO valor_3: Sentencias_3; BREAK; : : CASO valor_n: Sentencias_n; BREAK; OTRO CASO: Sentencias; }

Profesor Fabián Lasso


CONSIDERACIONES: •La sentencia “BREAK” permite terminar una secuencia de sentencias •Cada sentencia “CASO” es activada de acuerdo a un único valor de la “expresión”. •La “expresión” no puede establecer rangos o condiciones •Los valores para la “expresión” que no sean considerados por los “CASO”, se gestionan en la opción “OTRO CASO” •Cuando las mismas sentencias corresponden a varios “valores” de la “expresión”, se puede hacer uso de las siguiente sintaxis: CASO valor_1: CASO valor_5: CASO valor_7: Sentencias_1_5_7; BREAK;

Profesor Fabián Lasso


Ejemplo: Lea un carácter cualquiera, determine si es una vocal, de que tipo es, o si no es una vocal. Abstracción Datos

Información

caracter letra

Los diferentes valores que puede tomar la variable letra (expresión de asignación)

Condición

letra==„a‟ letra==„e‟ letra==„i‟ letra==„o‟ letra==„u‟

Proceso

1. 2. 3. 4. 5. 6. 7. 8.

Capturar el valor del caracter Evaluar si el valor del caracter Si es una „a‟, imprimir un mensaje diciendo que es una vocal abierta Si es un „e‟, imprimir un mensaje diciendo que es una vocal semiabierta Si es una „i‟, imprimir un mensaje diciendo que es una vocal cerrada Si es una „o‟, imprimir un mensaje diciendo que es una vocal abierta Si es una „u‟, imprimir un mensaje diciendo que es una vocal cerrada Si es un carácter diferente a una vocal, imprimir un mensaje diciendo que no es un vocal

Profesor Fabián Lasso


Ejemplo: Lea un carácter cualquiera, determine si es una vocal, de que tipo es, o si no es una vocal. INICIO ALGORITMO Vocales { caracter carac_1=‟ ‟ ; IMPRIMA(“Digite un carácter alfanumérico: “); LEA(carac_1); SEGUN(carac_1){ CASO “a”: IMPRIMA (carac_1+” es una vocal abierta”); BREAK; CASO “e”: IMPRIMA (carac_1+” es una vocal semiabierta”); BREAK; CASO “i”: IMPRIMA (carac_1+” es una vocal cerrada”); BREAK; CASO “o”: IMPRIMA (carac_1+” es una vocal abierta”); BREAK; CASO “u”: IMPRIMA (carac_1+” es una vocal cerrada”); BREAK; OTRO CASO: IMPRIMA (carac_1+” no es una vocal”); } } FIN ALGORITMO Vocales Profesor Fabián Lasso


Objetivos: •Reconocer el concepto, la estructura sintáctica y el ámbito de aplicación de la estructura de decisión SEGÚN CASO •Aplicar la estructura de decisión SEGÚN CASO en la solución de un problema determinado

Ejercicios 1. Según el método meteorológico, las estaciones del año, en el hemisferio norte, corresponden a los meses según la siguiente tabla: ESTACIONES

MESES

Primavera

marzo, abril y mayo

Verano

Junio, julio y agosto

Otoño

septiembre, octubre y noviembre

Invierno

diciembre, enero y febrero

Capture el número del mes en el año y determine su nombre, a qué estación del año, según el método meteorológico y en el hemisferio norte, corresponde.

Profesor Fabián Lasso


Diseñe un algoritmo que lea dos números y realice una operación aritmética entre ellos, de acuerdo al menú de opciones siguiente: OPERACIONES 1. SUMA 2. RESTA 3. MULTIPLICACIÓN 4. DIVISIÓN La pantalla de salida debe mostrar lo siguiente: Digite el primer número: Digite el segundo número:

MENU DE OPERACIONES 1. SUMA 2. RESTA 3. MULTIPLICACIÓN 4. DIVISIÓN Digite el numero de opción de la operación a realizar: [NOMBRE DE LA OPERACIÓN] [número 1] [operador] [numero 2] = [resultado] Profesor Fabián Lasso


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.