You are on page 1of 5

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA

CURSO: MB545

SEMANA02 ESTRUCTURAS DE CONTROL CONDICIONALES/SELECTIVAS if, if else, if else if, switch


En general, cada vez que aparezca de ahora en adelante la palabra accin podr significar dos cosas: o es una instruccin terminada en un punto y coma es un conjunto de instrucciones agrupadas por llaves. CONDICIONAL SIMPLE: if Cuando se desea evaluar una comparacin y hacer alguna accin slo cuando la comparacin sea verdad. Ejemplo if (comparacion) if ( x > 0) accin; imprimir positivo Si usted coloca punto y coma (;) despus del parntesis, no habr error de sintaxis pero el efecto ser que el if se anula. Como que no existiera. Para hacer la comparacin debe utilizar los operadores relacionales que devuelven un valor lgico true si la comparacin fue verdad y false en caso contrario. Expresin de Resultado del Descripcin Smbolo ejemplo ejemplo Igualdad == 2 == 2 true Desigualdad != 2 != 2 false Menor que < 2<2 false Mayor que > 3>2 true Menor o igual que <= 2 <= 2 true Mayor o igual que >= 1 >= 2 false En realidad, es todo un reto hacer correctamente la comparacin. Para ello debe ser capaz de expresar en una comparacin, el condicional natural que encontrara en los enunciados de los problemas. Por ejemplo, hagamos la comparacin adecuada para los siguientes condicionales naturales: 1) El numero es negativo: if( numero < 0) 2) El numero es par y positivo: if( numero % 2 == 0 && numero > 0) 3) La nota esta entre 0 y 20 inclusive: if(nota>=0 && nota <=20) 4) La nota no esta entre 0 y20 inclusive: if( !(nota>=0 && nota<=20) ) 5) Del lanzamiento de tres dados, por lo menos uno fue 6: if(dado1==6 || dado2==6 || dado3==6)

CONDICIONAL DOBLE: if - else Cuando se desea evaluar una comparacin y hacer alguna accin tanto cuando la comparacin sea verdad como cuando la comparacin sea falsa. Ejemplo if (comparacion) accin de verdad; else accin de falsedad; if (nota>=13) imprimir aprobado else imprimir desaprobado

CONDICIONAL EN CADENA: if - else - if Cuando se desea evaluar consecutivamente varias operaciones, las cuales son excluyentes y generalmente se trata de valores continuos Ejemplo Elaborado por Ing. Julio Vsquez Paragulla

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA


CURSO: MB545

SEMANA02 ESTRUCTURAS DE CONTROL CONDICIONALES/SELECTIVAS if, if else, if else if, switch


if (comparacion1) accin de verdad1; else if (comparacion2) accin de verdad2; else if (comparacion3) accin de verdad3; else accin de falsedad; if ( x < 0 ) imprimir negativo else if ( x ==0 ) imprimir cero else imprimir positivo

CONDICION COMPUESTA: En cualquier tipo de condicional, la condicin puede ser simple o compuesta. Se dice que una condicin es simple cuando tiene una sola comparacin (no utiliza operadores lgicos). En cambio, se dice que una condicin es compuesta cuando tiene ms de una comparacin, para lo cual utilizan necesariamente operadores lgicos negacin, Y, O. Ejemplo: if (comparacion1 && comparacion2 || comparacion3) accin de verdad; Los operadores lgicos que permiten evaluar expresiones lgicas compuestas son los siguientes: Descripcin Negacin Y lgico O lgico Smbolo ! && || Expresin de ejemplo !(2 == 2) (2 == 2) && (2 >= 0) (2 == 2) || (2 != 2) Resultado del ejemplo false true true

Ejemplo: if ( x>=0 && x <=5) Imprimir rango de 0 a 5 inclusive Se recomienda usar el operador && para expresar un rango continuo de lo contrario debe utilizar el operador || Ejemplo: if (x < 0 || x > 20) Imprimir fuera del rango 0 a 20

SELECCIN MULTIPLE: switch Cuando se selecciona una opcin de entre varias. switch (variable) { case valor1: accin1; break; case valor2: accin2; break; case valor3: accin3; break; // ... default: accinx; } Compara el valor contenido en la variable con cada uno de los valores situados despus del case, ejecutando en caso de que exista coincidencia la accin correspondiente. Si no existe coincidencia, se ejecuta la accinx correspondiente al caso default. Y si no se pusiera el default, simplemente no ejecuta ninguna instruccin dentro del switch. Elaborado por Ing. Julio Vsquez Paragulla

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA


CURSO: MB545

SEMANA02 ESTRUCTURAS DE CONTROL CONDICIONALES/SELECTIVAS if, if else, if else if, switch


La orden break hace que la ejecucin salga del switch; de no ponerlo se ejecutarn todas las rdenes hacia abajo sin importar el valor de los case hasta encontrar un break o la llave de cierre del switch. PROBLEMA 1: Dado 4 notas enteras, determine el promedio sin considerar la nota menor. #include <iostream.h> #include <conio.h> void main(){ int n1, n2, n3, n4, nm; double p; cout<<Ingrese nota 1: ; cin>> n1; cout<<Ingrese nota 2: ; cin>> n2; cout<<Ingrese nota 3: ; cin>> n3; cout<<Ingrese nota 4: ; cin>> n4; nm=n1; if(n2>nm) nm =n2; if(n3> nm) nm =n3; if(n4> nm) nm =n4; p=(n1+n2+n3+n4-nm)/3.0; cout<<nota menor: <<nm<<endl; cout<<promedio: << p<<endl; } PROBLEMA 2: Encuentre la solucin a una ecuacin de primer grado: ax + b = 0 #include <iostream.h> #include <conio.h> void main(){ double a,b,x; cout<<Ingrese valor de a: ; cin>>a; cout<<ingrese valor de b: ;cin>> b; if( a == 0) cout<<no tiene solucin<<endl; else{ x = -b/a; cout<<raz x: << x<<endl; } }

PROBLEMA 3: 2 Encuentre la solucin a una ecuacin de segundo grado: ax + bx + c =0 #include <iostream.h> #include <conio.h> void main(){ double a,b,c,x1,x2,disc, e, r; int foco=0; Elaborado por Ing. Julio Vsquez Paragulla

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA


CURSO: MB545

SEMANA02 ESTRUCTURAS DE CONTROL CONDICIONALES/SELECTIVAS if, if else, if else if, switch


cout<<ingrese valor de a: ; cin>>a; cout<<ingrese valor de b: ; cin>>b; cout<<ingrese valor de c: ; cin>>c; if( a == 0) cout<< no tiene solucin<<endl; else{ disc=sqrt(b*b 4*a*c); if(disc<0){ foco=1; disc = abs(disc); } if(foco==0){ x1 = (b + disc)/(2*a); x2 = (b disc)/(2*a); cout<<raiz x1: <<x1<<endl; cout<<raiz x2: <<x2<<endl; }else{ e = b/(2*a); r = disc/(2*a); cout<< raiz x1: <<e<< +<<r<< i <<endl; cout<< raiz x2: <<e<< -<<r<< i <<endl; } } PROBLEMA 4: Una tienda de accesorios de computadoras vende DVDs de diferente marca y cada marca tiene un porcentaje de descuento como se muestra a continuacin: MARCA 3M Imation Sony TDK Princo DESCUENTO ( % ) 10 15 20 25 30

Por la compra de cierta cantidad de una marca en particular se desea saber el importe bruto, el importe del descuento y el importe que se debe pagar por dicha compra. PROBLEMA 5: Para calcular los importe de la boleta de pago de un trabajador considere los siguientes datos de entrada: nombre, sueldo bsico, estado civil (soltero, casado, viudo, divorciado, otro), nivel (obrero, empleado, ejecutivo), afiliacin de AFP (si, no). Para el clculo de las bonificaciones considere las siguientes tablas: Bonificacin por estado civil: ESTADO CIVIL Soltero Casado Viudo Divorciado Otro % APLICADO AL SUELDO BASICO 10 15 20 5 0

Elaborado por Ing. Julio Vsquez Paragulla

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA


CURSO: MB545

SEMANA02 ESTRUCTURAS DE CONTROL CONDICIONALES/SELECTIVAS if, if else, if else if, switch


Bonificacin por nivel: NIVEL Obrero Empleado Ejecutivo % APLICADO AL SUELDO BASICO 20 15 10

Para el clculo del sueldo total considere sueldo basico + bonificaciones. Para los descuentos considere la siguiente tabla: AFILIADO A UNA AFP SI No

% APLICADO AL SUELDO TOTAL 13 9

Para el clculo del sueldo neto considere sueldo total descuentos. Debe mostrar la siguiente informacin de la boleta de pago: Nombre del trabajador Sueldo bsico Estado civil y Bonificacin por estado civil Nivel y Bonificacin por nivel Sueldo total Descuento por afiliacin Sueldo neto PROBLEMA 6: Dado 5 nmeros, determine los dos nmeros de mayor valor entre ellos. PROBLEMA 7: Dado los lados de un tringulo, determine la existencia o no existencia de dicho tringulo PROBLEMA 8: Dado los ngulos de un tringulo, determine si el tringulo es acutngulo, rectngulo, obtusngulo. PROBLEMA 9: Una compaa de telfonos ha establecido sus tarifas por exceso de llamadas, de la siguiente manera: si el nmero de llamadas no pasa de 50 no se considera exceso y paga una tarifa de 0.50 por llamada; pero si el nmero de llamadas pasa de 50 hasta un lmite de 150, las llamadas en exceso a 50 tendrn una tarifa de 0.80 por llamada y si el nmero de llamadas pasa de 150 las llamadas en exceso a 150 tendrn una tarifa de 1.10 por llamada. Se desea saber el nmero total de llamadas en exceso y los importes calculados por excesos as como el importe total que deber pagar un cliente. PROBLEMA 10 Ingrese una fecha por separado el da, el mes y el ao, evaluar y luego mostrar un mensaje segn corresponda para saber si la fecha es correcta o incorrecta. Considerar la posibilidad que el ao sea bisiesto en cuyo caso el mes de febrero tendra 29 das validos. Considere que el ao es bisiesto cuando es mltiplo de 4 pero n de 100 excepto de 400.

Elaborado por Ing. Julio Vsquez Paragulla

You might also like