Informática
Sesión 04
Pedro Pablo Rosales López, Dr. Ing.
¿Qué observas?
Contenido 4/16
Sentencia SWITCH
Sentencia BREAK
Sentencia CONTINUE
Práctica Dirigida.
Logros de la unidad 1
Aprender a resolver problemas de programación mediante diagramas y el lenguaje de programación
C++
Informática
ESTRUCTURAS SELECTIVAS
Estructuras Selectivas
Estructura de Selección Simple
If (expresión lógica)…[else…]
Estructura de Selección Múltiple
Switch (expresión)
Estructuras de Selección Simple - If
El flujo lógico de esta estructura es de arriba hacia abajo.
La primera sentencia se ejecutará y se saldrá de la estructura if si la primera
condición es verdadera.
Si la primera condición fue falsa, y existe otra condición, se evalúa, y si la
condición es verdadera, entonces se ejecuta la sentencia asociada.
Si existen más condiciones dentro de la estructura if, se van evaluando
éstas, siempre y cuando las condiciones que le precedan sean falsas.
La sentencia que esta asociada a la palabra reservada else, se ejecuta si
todas las condiciones de la estructura if fueron falsas.
Estructura de Selección Simple - If
Las tres formas como se puede emplear la sentencia if son:
if (condición 1)
sentencia 1;
if (condición) else
if (condición) sentencia 1; if (condición 2)
sentencia ; else sentencia 2;
sentencia 2; ……
else
sentencia n;
Ejemplo de Estructura de Selección Simple - If
Int main()
{ n=1
int n, a, b, x;
a = 1;
b = 99;
cin >> n
……
if (n>0)
x = b; X = 99
else
x = a;
cout <<x;
........
}
Informática
ESTRUCTURAS DE SELECCIÓN
MÚLTIPLE
Estructura de Selección Múltiple - SWITCH
Aunque con la estructura if ... else if se pueden realizar comprobaciones
múltiples, es mejor utilizar una estructura mejor preparada.
Lenguaje C++ tiene incorporada una sentencia de bifurcación múltiple
llamada switch.
Con esta sentencia, la computadora comprueba una variable sucesivamente
frente a una lista de constantes enteras o de caracter.
Después de encontrar una coincidencia, la computadora ejecuta la sentencia
o bloque de sentencias que se asocian con la constante.
Estructuras Condicional Múltiple - SWITCH
La forma general de la sentencia switch es:
switch (variable) {
case constante1:
secuencia de sentencias;
break;
case constante2:
secuencia de sentencias;
Variable = Constante 2
break;
case constante3:
secuencia de sentencias;
break;
...
default:
secuencia de sentencias;
continue;
}
Ejemplo de Estructuras Selectiva Múltiple - SWITCH
Con switch sólo se puede comprobar
por igualdad, mientras que con if switch (letra)
puede ser con cualquier operador {
relacional. case 'a':
case 'e':
No se puede probar más de una case 'i':
constante por case.
case 'o':
case 'u':
La forma como se puede simular el
último punto, es no teniendo numvocales++;
sentencias asociados a un case, es break;
decir, teniendo una sentencia nula case ' ':
donde sólo se pone el caso, con lo que numesp++;
se permite que el flujo del programa break;
caiga al omitir las sentencias, como se
muestra a continuación: default:
numotras++;
break;
}
Estructuras secuencial y selectiva
Estructuras secuenciales Estructura selectiva simple
Estructura Selectiva Doble
Diagrama de Flujo Pseudocódigo
si <condición> entonces
acción 1
si_no
acción 2
fin_si
Diagrama N-S
14
Estructura Selectiva Múltiple
Diagrama Flujo
Pseudocódigo
según_sea <expresión> hacer
<lista 1> : acción 1
<lista 2> : acción 2
...
[si_no
acción n]
fin_según
Diagrama N-S
Estructura Anidada
Pseudocódigo
• Tanto las estructuras selectivas
si <condición1> entonces
<acciónes1>
como las repetitivas pueden ser
si_no anidadas, e introducidas unas
si <condición2> entonces en el interior de las otras.
<acciones2>
si_no
si <condición3> entonces
<acciones3>
si_no
<accionesX>
fin_si
fin_si
fin_si
Ejercicios 01
Leer tres números selectivos e imprimir el número mayor de los tres
.
Inicio
Leer num1, num2,num3 Lenguaje C++:
Si (num1>num2) and (num1 >num3) entonces
Mayor = num1
Si no
Si ((num2>num1) and (num2 >num3) entonces
Mayor = num2
Si no
Mayor = num3
Fin-si
Fin-si
Imprimir Mayor
Fin
Es una Estructura secuencial múltiple
Ejercicios 02: Selecciona una opción
Solicitar al usuario que ingrese una opción, entre 1 y 3. Si la opción
ingresada es uno, mostrar en pantalla el mensaje; “Primera opción
seleccionada”. De igual forma, con las opciones 2 y 3. Si se ingresa una
opción diferente, mostrar el mensaje; “Opción inválida”.
Inicio Lenguaje C++:
Entero opción
Mostrar “Ingrese una opción, entre 1 y 3: “
Leer opción
Según sea (opción) hacer
1: Mostrar “Primera opción seleccionada”
2: Mostrar “Segunda opción seleccionada”
3: Mostrar “Tercera opción seleccionada”
Si-no
Mostrar “Opción inválida”
Fin-segun
Fin
Ejercicio 03 : Colores de Español a Inglés
Pseudo-Lenguaje Diagrama de Flujo
Inicio
Según-sea (Color) hacer
Ingresa el Color
Rojo : “Red”
Azul : “Blue”
Verde : “Green”
Fin-según Color
Fin
“Red” “Blue” “Green”
Fin de Selección
Ejercicio 04 : ¿Qué número es?
Desarrollar un algoritmo que permita el
Ingres de un número por teclado y Pseudocódigo:
muestre en pantalla la siguiente
información, según sea, en el rango de 0 a
5:
El número es decimal.
El número es entero.
El número es cero.
Si el número ingresado es menor a cero o
mayor a cinco, mostrar el mensaje:
Error, número fuera de rango.
Si el número es entero, mostrar en
pantalla el nombre del número:
Uno
Dos
Tres
Cuatro
Cinco
Ejercicios 5 Estructuras Condicionales - SWITCH
Ejercicio 05
Diseñe una solución que permita leer un valor entero. Suponer que el número es
un día de la semana. Suponer que 0 corresponde a Domingo, 1 corresponde a
lunes y así sucesivamente.
Imprimir el nombre del día de hoy.
Muestre los resultados en forma adecuada:
Hoy es Lunes
Ejercicios 6 Estructuras Condicionales - SWITCH
Ejercicio 06
Diseñe una solución que permita leer dos valores enteros. Si el primero es menor
que el segundo, que imprima el mensaje ``Arriba''. Si el segundo es menor que el
primero, que imprima el mensaje ``Abajo''. Si los números son iguales, que imprima
el mensaje ``igual''. Si hay un error en la lectura de los datos, que imprima un
mensaje conteniendo la palabra “Error, te equivocaste'';
Muestre los resultados en forma adecuada.
Ejercicios 7 Estructuras Condicionales - SWITCH
Ejercicio 07
Diseñe una solución que permita controlar el peso de un aro en gramos.
El peso del aro debe ser de 14 gr.
Con una tolerancia de 2 gr.
El algoritmo debe mostrar, los comentarios;
“Peso Exacto”.
“Peso en Tolerancia”.
“Falto para que pase”, si el peso es menor que 12 gr.
“No pasa por poco”, si el peso es mayor a 16 gr.
En cualquier otro caso, debe mostrar el mensaje:
“Error Grave. Revisar el proceso”.
Muestre los resultados en forma adecuada.
Ejercicios 8 Estructuras Condicionales - SWITCH
Ejercicio 08
Diseñe una solución que permita leer dos caracteres, e imprima su valor cuando se
pueda interpretar como un número hexadecimal.
Aceptar letras mayúsculas y minúsculas para los valores del 10 al 15.
Muestre los resultados en forma adecuada.
Ejercicios 9 Estructuras Condicionales - SWITCH
Ejercicio 09
Diseñe una solución que permita leer 3 números enteros representando la fecha
como día, mes, año, y mostrar la fecha del día anterior.
Por ejemplo para una entrada como: 1 3 2018
La salida será: Fecha anterior a 1-3-2018 es 28-2-2018
Muestre los resultados en forma adecuada.
Ejercicio 10 : Registro de Vendedores
Una tienda emplea un cierto número de vendedores. La mayoría de estos empleados obtienen
sus ingresos de comisiones sobre los artículos que venden, pero existen algunos empleados que
obtienen su salario fijo, sin importar el tipo o cantidad de artículos que venden, más una comisión
por sobre ciertos artículos.
La tienda ofrece distintos tipos de mercancías, algunas de las cuales se clasifican como artículos
estándar por que son de uso común y no requieren de técnicas creativas de venta; además, hay
artículos que son altamente remunerados pero difíciles de vender.
Los compradores también se clasifican. Algunos se conocen como compradores regulares, pues
hacen transacciones tan a menudo que no se requiere de hacerles venta creativa. Sin embargo,
la mayoría de los clientes hacen pocas transacciones dentro de la tienda, y es probable que
entren, compren algo y no vuelvan a ser vistos.
Si un empleado vende cualquier tipo de artículo a un cliente regular, no se da comisión alguna.
Si un empleado asalariado vende un artículo extra, recibe una comisión del 10% a menos que el
artículo tenga un precio mayor de $10,000, en cuyo caso recibe una comisión del 15%.
26
Ejercicio 05 : Pseudocódigo
27
Ejercicio 05 : Diagrama de Flujo
Ejercicio 05 : Diagrama N-S
Informática
ESTRUCTURAS REPETITIVAS
Ejercicio
Calcular el promedio de un alumno que tiene 7 calificaciones en la
materia de Computación Aplicada
Inicio
Sum = 0
Leer Nom
Para i = 1 hasta 7 de 1 en 1 Hacer
Leer nota
Sum = sum + nota
Fin_para
Prom = sum/7
Imprimir prom
Fin
Esto es una Estructura Hacer - Para
Estructuras Repetitivas
Iteración
Mecanismos de C para repetir un conjunto de instrucciones hasta que se cumple cierta
condición.
El lenguaje cuenta con las siguientes 3 estructuras de repetición:
For (Var=Valor_Inicial; Valor Final; incremento)
Do ….. While (expresión Lógica)
While (expresión Lógica)
Diagramas de Flujo Repetitivos
Diagrama de Flujo
Pseudo-Lenguaje
Para <condición> hacer no
condición
acción 1
acción 2
……
sí
acción n
acción
Fin_Para
Instrucción Repetitiva “For”
Imprimir “Contador”
X=0
X = 30
X = X +1
Imprimir X
Estructuras de Repetición
for #include <iostream.h>
Repite un conjunto de sentencias un int main() {
número de veces determinado. int n;
cout << “Da el limite de la
For ( inicialización; termino; incremento ) sumatoria: “ ;
{ cin >>n ;
sentencia1; suma=0;
sentencia2; for(i=1; i<=n; i++)
... {
sentencian; suma=suma+i;
} }
cout << “ La sumatoria es : “
<< suma;
return 0;
}
Diagramas de Flujo Repetitivos
Ejercicio 1: Sumar números del 1 al 1000
Pseudo-Lenguaje
Diagrama de Flujo
Inicio
x = 0 x = 0
suma = 0 resultado = 0
Para (x=1;x<=1000;x++) Hacer
suma = suma + x
mostrar x
Fin_Hacer no
“La suma es: suma” x=<1000
Fin
sí
suma=suma+x
Pseudo-Lenguaje
Ejercicio 2: Sumar los múltiplos de del 3 menores de 1000.
Desarrollo
Inicio
x=0
resultado = 0
Para (x=1;x<=1000;x=x+3) Hacer
resultado = resultado + x
Fin_Para
“La suma es:”; resultado
Fin
Ejercicios propuestos Pseudo-Lenguaje & Diagrama de Flujo
Ejercicio 03:
Hacer un algoritmo que calcule el promedio de un grupo
de n estudiantes y lo compare con el promedio de otro
grupo de m estudiantes.
Entradas:
Número de estudiantes del primer grupo.
Notas del primer grupo.
Número de estudiantes del segundo grupo.
Notas del segundo.
Salidas:
“El Ganador es el Grupo ….
“Con una diferencia de …… puntos.
Ejercicios propuestos Pseudo-Lenguaje & Diagrama de Flujo
Ejercicio 04:
Hacer un algoritmo que calcule el promedio ponderado
de Claudia, paro los n cursos que lleva en el semestres.
Ejemplo Entrada:
Curso 1: 18 Créditos: 2
Curso 2: 16 Créditos: 2
Curso 3: 14 Créditos: 3
Curso 4: 12 Créditos: 3
Curso 5: 10 Créditos: 4
Curso 6: 08 Créditos: 4
Ejemplo Salida:
Promedio Ponderado: 12
Estado: Aprobado
Ejercicios propuestos Pseudo-Lenguaje & Diagrama de Flujo
Ejercicio 05:
Hacer un algoritmo que calcule la sumatoria, el producto
y el promedio de los múltiplos de n, menores de 15, n
es un numero ingresado por teclado, entero, mayor que
1 y menor o igual a 5.
Ejemplo Entrada:
Ingrese el valor de n: 3
Ejemplo Salida:
El acumulado es: 45
El producto es: 29160
El promedio es: 9
Ejercicios propuestos Pseudo-Lenguaje & Diagrama de Flujo
Ejercicio 06:
Hacer un algoritmo que calcule la diferencia entre el
factorial de n y el factorial de m.
n y m son números enteros, ingresado por teclado,
mayor que 1 y menor a 10.
Ejemplo Entrada:
Ingrese el valor de n: 3
Ingrese el valor de m: 4
Ejemplo Salida:
El factorial de 3 es: 6
El factorial de 4 es: 24
La diferencia es: 18
Ejercicios propuestos Pseudo-Lenguaje & Diagrama de Flujo
Ejercicio 07:
Escribir un programa que lea 5 números y encuentre el promedio, el máximo y
el mínimo de esos valores.
Ejercicios propuestos Pseudo-Lenguaje & Diagrama de Flujo
Ejercicio 08:
Leer tres valores representando lo siguiente:
El capital (número entero de pesos)
Una tasa de interes en porcentaje (flotante)
y un número de años (entero).
Calcular los valores de la suma del capital y el interes compuesto para un período dado de años. Para cada año
el interes es calculado como:
interes = capital * tasa_interes / 100;
el cual se suma al capital
capital += interes;
Imprimir los valores de moneda con una precisión de dos decimales. Imprimir los valores del interés compuesto
para cada año al final del período.
La salida puede ser como la siguiente:
Capital inicial 35000.00 con tasa del 12.50 en 10 años
Año Interes Suma
-----+-----------+---------
1 4375.00 39375.00
2 4921.88 44296.88
3 5537.11 49833.98
4 6229.25 56063.23
5 7007.90 63071.14
6 7883.89 70955.03
7 8869.38 79824.41
8 9978.05 89802.45
9 11225.31 101027.76
10 12628.47 113656.23
Para terminar
¿Qué hemos aprendido?
¿Qué sentencias de control condicional conoces?
¿Por qué es útil lo aprendido?
Resolver los ejercicios de la Hoja de Problemas….
Bibliografía
REFERENCI
AS
Deitel, P. (2003). Como Programar en C++ México: Prentice-Hall
Hispanoamericana.
Rosales, P. (2010). Informática con soporte en C++ Lima: Editorial
UNMSM.
Joyanes, L. (2003). Fundamentos de Programación España: McGrawHill.
El 99 por ciento de los fracasos son de
personas que tienen el hábito de
encontrar excusas.
George Washington