Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
FACULTAD DE INGENIERÍA
Algoritmos y Estructura
de Datos II
ESTRUCTURAS SECUENCIALES –
CONDICIONAL SIMPLE Y DOBLE -
SWITCH
¿Cómo resolvemos los siguientes
Problemas?
Calcular el área de un triángulo Determinar si un número es
Conociendo la base y la altura positivo
¿Qué pasos hemos seguido para resolver los problemas
anteriores?
Logro
• Al término de la sesión,
el estudiante elabora un
solucionario de doce
problemas, sobre
estructuras
secuenciales y
selectivas, planteando
para cada uno de ellos:
1. su algoritmo
2. pseudocódigo o
diagrama de flujoo
diagrama N-S.
3. Programa c++
ESTRUCTURAS SECUENCIALES -
SELECTIVAS
Flujo de Control
Acción 1
Acción 1
Acción 2 Inicio
<Acción 1>
. <Acción 2>
Acción 2 . .
. .
.
<Acción n>
Acción n Fin
Acción n
Ejercicios (E. secuencial)
A s s a s b s c
A f (r , h) πr r 2 h 2 πr 2 s
1
a b c
2
Inicio
D. Entrada: Leer
fin
Ejercicio 1 (E. secuencial)*
• Pseudocódigo #include <iostream>
#include <cmath>
using namespace std;
D. Entrada: Leer
fin
Ejercicio 2 (E. secuencial)*
• Pseudocódigo #include <iostream>
#include <cmath>
#include <cstdlib>
• Inicio using namespace std;
• Leer (r,h)
• pi 3.14 int main(int argc, char *argv[]) {
• S pi * r * raiz(r*r+h*h) const float pi=3.14;
+ pi * r *r system("cls");
• Escribir (S) cout<<"radio: ";
int r;
cin>>r;
cout<<"altura: ";
int h;
cin>>h;
float s;
s=pi * r * pow((r*r+h*h),0.5) + pi * r *r;
cout<<"area= "<<s;
return 0;
}
2. Estructura Selectivas
Pseudocódigo
Pseudocódigo
--------------------------------
condición
V F Si <condición> entonces
<acción S1>
Si_no
Acción S1 Acción S2
<acción S2>
Fin_si
--------------------------------
Condición if <condición> then
V F . <acción S1>
else
<acción s1> <acción s2> <acción S2>
endif
Ejercicio (E. Selectiva)
b(sin(beta)*a)/sin(alfa)
c(sin(gamma)*a)/sin(alfa) Mostrar b, c
Mostrar b, c
Fin
Ejercicio 1 (E. selectiva)*
• Pseudocódigo float pi = 3.1415927;
cout<<"alfa: ";
float alf;
Inicio cin>>alf;
cout<<"beta: ";
Leer alf, bet, gam float bet;
cin>>bet;
pi 3.1415927 cout<<"gamma: ";
alfa (pi*al)/180 float gam;
cin>>gam;
beta (pi*be)/180 float alfa, gamma, beta;
alfa = (pi*alf)/180;
gamma (pi*g)/180 beta = (pi*bet)/180;
gamma = (pi*gam)/180;
s al + be + g float s;
Si (s=180) entonces s = alf+bet+gam;
cout<<s;
Leer a float a,b,c;
if(s==180) {
b (sin(beta)*a)/sin(alfa) cout<<"lado A: ";
c (sin(gamma)*a)/sin(alfa) cin>>a;
b = (sin(beta)*a)/sin(alfa);
Mostrar b, c c = (sin(gamma)*a)/sin(alfa);
cout<<"los otros lados del triangulo son: "<<b<<"
Si_no y "<<c<<endl;
}
Mostrar: los angulos deben sumar 180 else {
cout<<"los angulos deben sumar 180";
Fin_si }
Fin
D. Entrada: Leer
Cot. dólar Monto, cotdolar
monto a pagar
D. Salida:
Ejercicio 2 (E.V selectiva)
IGV
Monto>=70?
F
Subtotal
Total
Proceso: Total monto * 0.9 * cotdolar Total monto * cotdolar
si monto<70 entonces
presentar resultados y
terminar
caso contrario subtotal total / 1.19
calcular descuento
recalcular montos
presentar resultados IGV total - subtotal
Fin_si
Escribir
Total. Subtotal, IGV
fin
Leer Pseudocódigo
Monto>=70?
Inicio
V F . Leer (monto, cotdolar)
Total monto * Total monto *
Si monto >= 70 entonces
0.9 * cotdolar cotdolar total=monto *0.9*cotdolar
subtotal total / 1.19
si_no
total=monto*cotdolar
IGV total - subtotal Fin_si
subtotal total /1.19
Escribir IGV total – subtotal
Total. Subtotal, IGV escribir (total, subtotal, IGV)
Fin
¿Cómo funciona?
2. Estructura Selectivas
• 2.3 Múltiple (según_sea caso de/case)
– Evalúa una expresión que podrá tomar n valores distintos(1, 2, 3, 4, …, n)
– Según elija uno de estos valores en la condición se realizará una de las n
acciones, o lo que es igual, el flujo del algoritmo seguirá un determinado
camino entre n posibles
1
condición
2 3 n
Acción S31
Acción S32
2. Estructura Selectivas
2.3 Múltiple (según_sea caso de/case)
Condición Condición
n=1 2 3 … n otros
S1
S2
S1 S2 S3 Sn Sx S3
…
Sn Sx
2. Estructura Selectivas
2.3 Múltiple (según_sea caso de/case)
Pseudocódigo Sentencia switch (C, C++, java, C#)
-------------------------------- --------------------------------
case expresion of Switch (expresion) {
[e1]: accion S1 case valor1:
[e2]: accion S2 sentencia1;
… sentencia2;
[en]: accion S2 …
otherwise break;
accion Sx case valor2:
End_case sentencia1
------------------------------- sentencia2
case expresion of …
[e1]: accion S1 break;
[e2]: accion S2 …
… default:
[en]: accion S2 sentencia1
else sentencia2
accion Sx …
End_case }
Solución al problema
Algoritmo Pseudocódigo
• Datos de entrada
– ec: estado civil
• Datos de salida
– Mensaje (Soltero, Casado,
Viudo, Divorciado, Sin
especificar)
• Proceso
– Según sea el valor de ec (‘s’,
‘c’, ‘v’, ‘d’, otro cualquiera)
mostrar el mensaje descrito
en los datos de salida
inicio
Diagrama de Flujo
Leer (ec)
Solución al problema
¿estado civil?
s c v d otro
“sin
“soltero” “casado” “viudo” “divorciado” especificar”
fin
PREGUNTAS
Preguntas de repaso