V - Inicio

Anuncio
PROGRAMACIÓN DE INGENIERÍA
S-06: Estructura Selectiva Múltiple
Ing. Jorge A. Martel Torres
Ingenierías
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()
UNTELS
JORGE A. MARTEL TORRES
2
Estructuras de Programación
INICIO
DIAGRAMA DE FLUJO
SI SIMPLE
PROCESO
SI DOBLE
V
F
MIENTRAS
F
V
V
PROCESO
SALIDA
POR
PANTALLA
F
PROCESO
PROCESO
PROCESO
HACER MIENTRAS
FIN
SELECTOR DE CASOS
V
PROCESO
INICIO
F
INGRESO POR
EL TECLADO
1
2
3
OTRO
DESDE PARA
PROCESO
F
ACCIONES
S1
ACCIONES
S2
ACCIONES
S3
SALIDA
POR
PANTALLA
UNTELS
FIN
VI, VF, INCR
ACCIONES
OTROS
V
JORGE A. MARTEL TORRES
PROCESO
4
DIAGRAMA NASSI-SCHNEIDERMAN (D-NS)
CONDICION
Nombre del Algoritmo;
Inicio
Acción 1;
Acción 2;
Acción 1;
...
Acción n;
Fin.
MIENTRAS CONDICION
SI
Acciones que se
ejecutaran si la
CONDICION es
VERDAD
Acciones
por SI o
Verdad
CONDICION
SI
NO
Acciones
por SI o
Verdad
Acciones que se
ejecutaran mientras
QUE LACONDICION
es VERDAD
Acciones
por No o
Falsedad
MIENTRAS CONDICION
variable
1
2
3
OTRO
PARA VI, VF, INCREMENTO
ACCIONES
ACCIONES ACCIONES ACCIONES ACCIONES
S1
S2
S3
OTROS
FIN_PARA
UNTELS
JORGE A. MARTEL TORRES
5
PSEUDOCODIGO
SELECCION DOBLE
SECUENCIAL
Nombre del Algoritmo;
Inicio
Acción
Acción
Acción
...
Acción
Fin.
V
1;
2;
1;
n;
F
Si ( Condición )
Acciones Si
la condición
es verdad
Si_No
Acciones Si
la condición
es Falso
Fin_Si
MIENTRAS
V
HACER
V
SELECCION SIMPLE
SELECTOR DE MULTIPLE
Si ( Condición )
Seleccionar ( Condición )
CASO n1:
Acciones
CASO n2:
Acciones
CASO n3:
Acciones
Fin_Seleccionar
Acciones Solo Si
V
la condición
es Verdad
Fin_Si
UNTELS
JORGE A. MARTEL TORRES
Mientras ( Condición )
Acciones Solo Si
la condición es Verdad
Fin_Mientras
Hacer
Acciones Solo Si
la condición es Verdad
Mientras ( Condición )
PARA /DESDE/ HASTA
V
Para ( Vari; VIni; Vfin; Incre )
Acciones Que Solo Si
la Vari >= Vfin
Fin ( Condición )
6
?
Estructuras Selectivas
!!Alguien tiene que ser!!
?
V
?
F
a
V
b
?
c
Estructuras Selectivas de Decisión Múltiple
SELECTOR DE CASOS
?
Lunes
( variable )
1
2
3
OTRO
Martes
ACCIONES ACCIONES ACCIONES ACCIONES
I
II
III
IV
Miercoles
C=2
SELECTOR DE CASOS
SELECTOR DE CASOS
(C)
Seleccionar ( variable )
CASO cons1 :
Instrucciones I ;
cons1
cons2
cons3
CASO cons2 :
DeLoContra
Instrucciones II ;
CASO cons3 :
ACCIONES
I
ACCIONES
II
ACCIONES
III
ACCIONES
IV
Instrucciones III ;
NingunoAnterior :
Instrucciones IV ;
Fin_Seleccionar
UNTELS
JORGE A. MARTEL TORRES
romper
8
Estructuras Selectivas de Decisión Múltiple
Pseudocodigo
( variable )
con1
con2
con3
OTRO
romper
Seleccionar ( variable )
CASO cons1 :
Instrucciones I ;
CASO cons2 :
ACCIONES ACCIONES ACCIONES ACCIONES
“program”
“fisica”
“calculo”
“FACE”
Instrucciones II ;
CASO cons3 :
Instrucciones III ;
NingunoAnterior :
Instrucciones IV ;
Fin_Seleccionar
(C)
break
cons1
cons2
cons3
DeLoContra
c/ c++
switch ( variable )
{
case cons1 :
Instrucciones I ;
case cons2 :
ACCIONES
I
ACCIONES
II
ACCIONES
III
Instrucciones II ;
ACCIONES
IV
case cons3 :
Instrucciones III ;
default :
Instrucciones IV ;
UNTELS
JORGE A. MARTEL TORRES
}
9
Lunes
Representar como
Dia
Programación
Ejemplo
Letra
Numero
Imprime Curso
Lunes
´L´
1
"programacion"
Martes
´M´
2
"fisica"
Miercoles
´C´
3
"calculo"
char
dia
"feriado"
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” ;
}
otros
dia = ‘L’;
‘L’
“program”
‘M’
“fisica”
‘C’
“calculo”
DeLoContra
“face”
cout
UNTELS
“que semana”
Martes
física
Miercoles
Se ingresa un
identificador de día(letra),
mostrar que curso me toca
por dia seleccionado.
( dia )
Dia
JORGE A. MARTEL TORRES
Cálculo
dia ;
= ‘L’ ;
<< “que semana\n” ;
10
Lunes
Representar como
Dia
Letra
Numero
Imprime Curso
Lunes
´L´
1
"programacion"
Martes
´M´
2
"fisica"
Miercoles
´C´
3
"calculo"
otros
Ejemplo
int
Dn
Se ingresa un identificador
de día(numero), mostrar
que curso me toca por dia
seleccionado.
( Dn )
1
2
“program”
“fisica”
3
“calculo”
Dia
“que semana”
física
DeLoContra
“face”
Cálculo
Dn ;
= 2;
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” ;
}
cout
UNTELS
Martes
Miercoles
"feriado"
Dn = 2;
Programación
JORGE A. MARTEL TORRES
<< “que semana\n” ;
11
Estructura de un Programa en C++
• Se ingresa desde el teclado un
identificador (opcion) de
carrera para mostrar el nombre
de la carrera por la pantalla
Representar como
carrera
Letra
Numero
Imprime
administracion
´A´
1
“administracion"
ambiental
´B´
2
“ambiental"
electronica
´E´
3
“electronica"
“no hay"
otros
UNTELS
char
chrCarrera;
main() {
cout << "Ingresar un Caracter : “ ;
cin >> chrCarrera;
switch ( chrCarrera ) {
case ‘A’ :
cout << “administracion“;
break;
case ‘B’:
cout << “ambiental“;
break;
case ‘E’ :
cout << “Electronica“;
break ;
default :
cout << “No hay“ ;
}
}
JORGE A. MARTEL TORRES
12
Estructura de un Programa en C++
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“ ;
}
}
UNTELS
• Se ingresa desde el teclado un
identificador (opcion) numero
entero, mostrar el numero en letras
por la pantalla
Representar como
Numero
Letra
Numero
Imprime Curso
1
1
“uno"
2
2
“dos"
3
3
“tres"
otros
JORGE A. MARTEL TORRES
“no hay"
13
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
Para Trabajar con
rango (intervalos)
de datos.
Voltios (V)
mensaje
< 0;
1.2 ]
“apagado”
< 1.2; 2.5 ]
“amarillo”
< 2.5; 5.5 ]
“rojo”
< 5.5, 12.0 ]
“verde”
< 12 ; … >
“peligro?”
JORGE A. MARTEL TORRES
v
=
2.7 ;
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 ;
}
14
Selectiva múltiple con if - else anidados
cin >> v ;
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
Voltios (V)
mensaje
< 0;
1.2 ]
“apagado”
< 1.2; 2.5 ]
“amarillo”
< 2.5; 5.5 ]
“rojo”
< 5.5, 12.0 ]
“verde”
< 12 ; … >
“peligro?”
JORGE A. MARTEL TORRES
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 ;
}
15
Contadores
OP
+=
-=
=
*=
/=
%=
OP
++
--
UNTELS
Operación
suma más asignacion
resta más asignacion
Asignacion simple
multiplicacion más asignacion
division más asignacion
modulo más asignacion
Si
a ++;
++ b;
c --;
-- d;
Ejem plo Equivalente
c += 7; c = c + 7;
d -= 4; d = d - 4;
a = b;
e *= 5; e = e * 5
f /= 3; f = f / 3
g %= 9; g = g % 3
Operación
Utiliza el valor actual, después suma 1
suma 1, después utiliza el valor actual
Utiliza el valor actual, después quita 1
quita 1, después utiliza el valor actual
JORGE A. MARTEL TORRES
16
Descargar