JMARTEL S-06 - Selectiva Multiple-impresion

17
PROGRAMACIÓN DE INGENIERÍA S-06: Estructura Selectiva Múltiple Ing. Jorge A. Martel Torres Ingenierías

description

programacion

Transcript of JMARTEL S-06 - Selectiva Multiple-impresion

Page 1: JMARTEL S-06 - Selectiva Multiple-impresion

PROGRAMACIÓN DE INGENIERÍA

S-06: Estructura Selectiva Múltiple

Ing. Jorge A. Martel TorresIngenierías

Page 2: JMARTEL S-06 - Selectiva Multiple-impresion

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()

Page 3: JMARTEL S-06 - Selectiva Multiple-impresion

Estructuras de Programación

Page 4: JMARTEL S-06 - Selectiva Multiple-impresion

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

Page 5: JMARTEL S-06 - Selectiva Multiple-impresion

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

Page 6: JMARTEL S-06 - Selectiva Multiple-impresion

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

Page 7: JMARTEL S-06 - Selectiva Multiple-impresion

Estructuras Selectivas!!Alguien tiene que ser!!

?

VVF

??

?

a

bc

Page 8: JMARTEL S-06 - Selectiva Multiple-impresion

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”

Page 9: JMARTEL S-06 - Selectiva Multiple-impresion

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

Page 10: JMARTEL S-06 - Selectiva Multiple-impresion

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

Page 11: JMARTEL S-06 - Selectiva Multiple-impresion

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.

Page 12: JMARTEL S-06 - Selectiva Multiple-impresion

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.

Page 13: JMARTEL S-06 - Selectiva Multiple-impresion

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"

Page 14: JMARTEL S-06 - Selectiva Multiple-impresion

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

Page 15: JMARTEL S-06 - Selectiva Multiple-impresion

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.

Page 16: JMARTEL S-06 - Selectiva Multiple-impresion

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 ;

Page 17: JMARTEL S-06 - Selectiva Multiple-impresion

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

++

--