jmartel s-06 - selectiva multiple-impresion
DESCRIPTION
programacionTRANSCRIPT
PROGRAMACIÓN DE INGENIERÍA
S-06: Estructura Selectiva Múltiple
Ing. Jorge A. Martel TorresIngenierías
UNTELS JORGE A. MARTEL TORRES 2
Contenido
• Estructuras de Programación
– Secuencial, Decisión, Repetitivas
– Anidaciones
• Estructura de un Programa/Algoritmo
– Entorno, Edición, grabación, otros
• Elementos y estructura de un programa en C/C++
– Tipos de datos.
– Operadores, Tipos
• Instrucciones de I/O
– Sentencias: ;, { }, //, /* */
– Sentencias cin >>, cout <<, endl
– Funciones: printf(), scanf(), clrscr(), gotoxy(), getch()
Estructuras de Programación
UNTELS JORGE A. MARTEL TORRES 4
DIAGRAMA DE FLUJO
INGRESO POR
EL TECLADO
SALIDA
POR
PANTALLA
INICIO
FIN
PROCESO
INICIO
PROCESO
SALIDA
POR
PANTALLA
FIN
PROCESO
V
F
MIENTRAS
PROCESOV
HACER MIENTRAS
F
PROCESOPROCESO
VF
SI DOBLE
PROCESO
V
SI SIMPLE
F
VI, VF, INCR
PROCESOV
DESDE PARAF
1
ACCIONES
S2
ACCIONES
S3
ACCIONES
OTROS
ACCIONES
S1
2 3 OTRO
SELECTOR DE CASOS
UNTELS JORGE A. MARTEL TORRES 5
DIAGRAMA NASSI-SCHNEIDERMAN (D-NS)
Nombre del Algoritmo;
Inicio
Acción 1;
Acción 2;
Acción 1;
...
Acción n;
Fin.
Acciones
por SI o
Verdad
SI NO
Acciones
por No o
Falsedad
CONDICION
MIENTRAS CONDICION
Acciones que se
ejecutaran si la
CONDICION es
VERDAD
MIENTRAS CONDICION
Acciones que se
ejecutaran mientras
QUE LACONDICION
es VERDAD
PARA VI, VF, INCREMENTO
FIN_PARA
ACCIONESACCIONES
S2
ACCIONES
S3
ACCIONES
OTROS
ACCIONES
S1
variable
1 2 3 OTRO
Acciones
por SI o
Verdad
SI
CONDICION
UNTELS JORGE A. MARTEL TORRES 6
PSEUDOCODIGO
MIENTRAS
Mientras ( Condición )
Acciones Solo Si
la condición es Verdad
Fin_Mientras
V
HACER
Hacer
Acciones Solo Si
la condición es Verdad
Mientras ( Condición )
V
PARA /DESDE/ HASTA
Para ( Vari; VIni; Vfin; Incre )
Acciones Que Solo Si
la Vari >= Vfin
Fin ( Condición )
V
SELECTOR DE MULTIPLE
Seleccionar ( Condición )
CASO n1:
Acciones
CASO n2:
Acciones
CASO n3:
Acciones
Fin_Seleccionar
SELECCION DOBLE
Si ( Condición )
Acciones Si
la condición
es verdad
Si_No
Acciones Si
la condición
es Falso
Fin_Si
V
F
SECUENCIALNombre del Algoritmo;Inicio
Acción 1;
Acción 2;
Acción 1;
...
Acción n;
Fin.
V
SELECCION SIMPLE
Si ( Condición )
Acciones Solo Si
la condición
es Verdad
Fin_Si
Estructuras Selectivas!!Alguien tiene que ser!!
?
VVF
??
?
a
bc
UNTELS JORGE A. MARTEL TORRES 8
Estructuras Selectivas de Decisión Múltiple
ACCIONES
II
ACCIONES
III
ACCIONES
IV
ACCIONES
I
( variable )
1 2 3 OTRO
SELECTOR DE CASOS
Seleccionar ( variable )
CASO cons1 :
Instrucciones I ;
CASO cons2 :
Instrucciones II ;
CASO cons3 :
Instrucciones III ;
NingunoAnterior :
Instrucciones IV ;
Fin_Seleccionar
SELECTOR DE CASOS
(dia)
?
romper
C = 2
cons1
(C)
ACCIONES
II
ACCIONES
III
ACCIONES
IV
ACCIONES
I
cons2 cons3 DeLoContra
SELECTOR DE CASOS
“Lina”
“Martha”
“Margarita”
“1”
“2”
“3”
UNTELS JORGE A. MARTEL TORRES 9
Estructuras Selectivas de Decisión Múltiple
Si mi día lo represento con
una letra (caracter), y, Si hoy
es el segundo día de la
semana, a que compañera le
tengo que ayudar con la
tarea?
( dia )
?
“Lina”
“Martha”
“Margarita”
“L”
“M”
“C”
“cálculo”
“programación”
“química”
Si mi día lo represento con
un numero (entero), y, Si
hoy es el tercer día de la
semana, a que curso le
tengo que ayudar con la
tarea?
( dia )
1
2
3
UNTELS JORGE A. MARTEL TORRES 10
Estructuras Selectivas de Decisión Múltiple
ACCIONES
“fisica”
ACCIONES
“calculo”
ACCIONES
“FACE”
ACCIONES
“program”
( variable )
con1 con2 con3 OTRO
Pseudocodigo
Seleccionar ( variable )
CASO cons1 :
Instrucciones I ;
CASO cons2 :
Instrucciones II ;
CASO cons3 :
Instrucciones III ;
NingunoAnterior :
Instrucciones IV ;
Fin_Seleccionar
romper
cons1
(variable)
ACCIONES
II
ACCIONES
III
ACCIONES
IV
ACCIONES
I
cons2 cons3 DeLoContra
c/ c++
switch ( variable )
{
case cons1 :
Instrucciones I ;
case cons2 :
Instrucciones II ;
case cons3 :
Instrucciones III ;
default :
Instrucciones IV ;
}
break
Ejemplo
switch ( dia )
{
case ‘L’ :
cout << “Programación\n” ;
break ;
case ‘M’ :
cout << “Física\n”;
break;
case ‘C’ :
cout << “Cálculo\n” ;
break;
default :
cout << “Face - tota\n” ;
}
UNTELS JORGE A. MARTEL TORRES 11
‘L’
( dia )
‘M’ ‘C’ DeLoContra
char dia ;
dia = ‘L’ ;
cout << “que semana\n” ;
dia = ‘M’;
Dia
Representar como
Imprime CursoLetra Numero
Lunes ´L´ 1 "programacion"
Martes ´M´ 2 "fisica"
Miercoles ´C´ 3 "calculo"
otros "feriado"
Dia
Lunes Programación
Martes física
Miercoles Cálculo
“program” “fisica” “calculo” “face”
“que semana”
Se ingresa un identificador
de día(letra), para mostrar
que curso me toca por día
seleccionado.
Ejemplo
switch ( Dn )
{
case 1 :
cout << “Programación\n” ;
break ;
case 2 :
cout << “Física\n”;
break;
case 3 :
cout << “Cálculo\n” ;
break;
default :
cout << “Face - tota\n” ;
}
UNTELS JORGE A. MARTEL TORRES 12
int Dn ;
Dn = 2;
cout << “que semana\n” ;
Dia
Representar como
Imprime CursoLetra Numero
Lunes ´L´ 1 "programacion"
Martes ´M´ 2 "fisica"
Miercoles ´C´ 3 "calculo"
otros "feriado"
Dia
Lunes Programación
Martes física
Miercoles Cálculo
1
( Dn )
2 3 DeLoContra
Dn = 2;
“program” “fisica” “calculo” “face”
“que semana”
Se ingresa un identificador
de día(numero), mostrar
que curso me toca por dia
seleccionado.
UNTELS JORGE A. MARTEL TORRES 13
Estructura de un Programa en C++char chrCarrera;
main() {
cout << "Ingresar un Caracter : “ ;
cin >> chrCarrera;
switch ( chrCarrera ) {
case ‘A’ :
cout << “administración“;
break;
case ‘B’:
cout << “ambiental“;
break;
case ‘E’ :
cout << “Electrónica“;
break ;
default :
cout << “No hay“ ;
}
}
• Se ingresa desde el teclado un
identificador (opcion) de
carrera para mostrar el nombre
de la carrera por la pantalla
carrera
Representar como
Imprime Letra Numero
administración ´A´ 100 “administración"
ambiental ´B´ 200 “ambiental"
electrónica ´E´ 300 “electrónica"
otros “no hay"
UNTELS JORGE A. MARTEL TORRES 14
using namespace std ;
int intN ;
main() {
cout << "Ingresar Número Entero: “ ;
cin >> intN;
switch ( intN )
{
case 1 :
cout << “uno“ ;
break ;
case 2 :
cout << “dos“ ;
break;
case 3 :
cout << “tres“ ;
break;
default :
cout << “no hay“ ;
}
}
Estructura de un Programa en C++
Numero
Representar como
Imprime CursoLetra Numero
1 1 “uno"
2 2 “dos"
3 3 “tres"
otros “no hay"
• Se ingresa desde el teclado un
identificador (opcion) numero
entero, mostrar el numero en letras
por la pantalla
Selectiva múltiple con if - else anidados
if ( expresionLogica1 )
{
Instruccioenes1 ;
}
else if ( expresionLogica2 )
{
Instruccioenes2 ;
}
else if ( expresionLogica3 )
{
Instruccioenes3 ;
}
else if ( expresionLogica4 )
{
Instruccioenes4 ;
}
else
{
Instruccioenes5 ;
}
UNTELS JORGE A. MARTEL TORRES 15
Voltios (V) mensaje
< 0; 1.2 ] “apagado”
< 1.2; 2.5 ] “amarillo”
< 2.5; 5.5 ] “rojo”
< 5.5, 12.0 ] “verde”
< 12 ; … > “peligro?”
if ( ( v > 0 ) && ( v <= 1.2 ) ) {
cout << “apagado” << endl;
}
else if ( ( v > 1.2 ) && ( v <= 2.5 ) ) {
cout << “amarillo” << endl ;
}
else if ( ( v > 2.5 ) && ( v <= 5.5 ) ) {
cout << “rojo” << endl ;
}
else if ( ( v > 5.5 ) && ( v <= 12 ) ) {
cout << “verde” << endl ;
}
else {
cout << “peligroso” << endl ;
}
v = 2.7 ;
Para Trabajar con
rango (intervalos)
de datos.
Selectiva múltiple con if - else anidados
Se ingresa un valor
que representa los
estados en voltios de
un semáforo. Según
el cuadro adjunto,
mostrar un mensaje
en función a los
valores ingresados a
un monitor de
estados.
UNTELS JORGE A. MARTEL TORRES 16
Voltios (V) mensaje
< 0; 1.2 ] “apagado”
< 1.2; 2.5 ] “amarillo”
< 2.5; 5.5 ] “rojo”
< 5.5, 12.0 ] “verde”
< 12 ; … > “peligro?”
if ( ( v > 0 ) && ( v <= 1.2 ) ) {
cout << “apagado” << endl;
}
else if ( ( v > 1.2 ) && ( v <= 2.5 ) ) {
cout << “amarillo” << endl ;
}
else if ( ( v > 2.5 ) && ( v <= 5.5 ) ) {
cout << “rojo” << endl ;
}
else if ( ( v > 5.5 ) && ( v <= 12 ) ) {
cout << “verde” << endl ;
}
else {
cout << “peligroso” << endl ;
}
cin >> v ;
UNTELS JORGE A. MARTEL TORRES 17
ContadoresOP Operación Ejemplo Equivalente
+= suma más asignacion c += 7; c = c + 7;
-= resta más asignacion d -= 4; d = d - 4;
= Asignacion simple a = b;
*= multiplicacion más asignacion e *= 5; e = e * 5
/= division más asignacion f /= 3; f = f / 3
%= modulo más asignacion g %= 9; g = g % 3
OP Si Operación
a ++; Utiliza el valor actual, después suma 1
++ b; suma 1, después utiliza el valor actual
c --; Utiliza el valor actual, después quita 1
-- d; quita 1, después utiliza el valor actual
++
--