Sie sind auf Seite 1von 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 acción podrá significar dos cosas: o es
una instrucción terminada en un punto y coma ó es un conjunto de instrucciones agrupadas por llaves.

CONDICIONAL SIMPLE: if
Cuando se desea evaluar una comparación y hacer alguna acción sólo cuando la comparación sea verdad.
Ejemplo
if (comparacion) if ( x > 0)
acción; imprimir “positivo”

Si usted coloca punto y coma (;) después del paréntesis, no habrá error de sintaxis pero el efecto será que el if
se anula. Como que no existiera.

Para hacer la comparación debe utilizar los operadores relacionales que devuelven un valor lógico true si la
comparación fue verdad y false en caso contrario.
Expresión de Resultado del
Descripción Símbolo
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 comparación. Para ello debe ser capaz de expresar en una
comparación, el condicional natural que encontrara en los enunciados de los problemas. Por ejemplo, hagamos
la comparación 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 comparación y hacer alguna acción tanto cuando la comparación sea verdad
como cuando la comparación sea falsa.
Ejemplo
if (comparacion) if (nota>=13)
acción de verdad; imprimir “aprobado”
else else
acción de falsedad; 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 Vásquez Paragulla 1


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) if ( x < 0 )
acción de verdad1; imprimir “negativo”
else if (comparacion2) else if ( x ==0 )
acción de verdad2; imprimir “cero”
else if (comparacion3) else
acción de verdad3; imprimir “positivo”
else
acción de falsedad;

CONDICION COMPUESTA:
En cualquier tipo de condicional, la condición puede ser simple o compuesta. Se dice que una condición es
simple cuando tiene una sola comparación (no utiliza operadores lógicos). En cambio, se dice que una
condición es compuesta cuando tiene más de una comparación, para lo cual utilizan necesariamente
operadores lógicos negación, Y, O.
Ejemplo:
if (comparacion1 && comparacion2 || comparacion3)
acción de verdad;

Los operadores lógicos que permiten evaluar expresiones lógicas compuestas son los siguientes:
Expresión de Resultado del
Descripción Símbolo
ejemplo ejemplo
Negación ! !(2 == 2) false
Y lógico && (2 == 2) && (2 >= 0) true
O lógico || (2 == 2) || (2 != 2) 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”

SELECCIÓN MULTIPLE: switch


Cuando se selecciona una opción de entre varias.

switch (variable) {
case valor1:
acción1;
break;
case valor2:
acción2;
break;
case valor3:
acción3;
break;
// ...
default:
acciónx;
}

Compara el valor contenido en la variable con cada uno de los valores situados después del case, ejecutando
en caso de que exista coincidencia la acción correspondiente. Si no existe coincidencia, se ejecuta la acciónx
correspondiente al caso default. Y si no se pusiera el default, simplemente no ejecuta ninguna instrucción
dentro del switch.

Elaborado por Ing. Julio Vásquez Paragulla 2


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 ejecución salga del switch; de no ponerlo se ejecutarán 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 solución a una ecuación 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 solución”<<endl;
else{
x = -b/a;
cout<<”raíz x: “<< x<<endl;
}
}

PROBLEMA 3:
2
Encuentre la solución a una ecuación 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 Vásquez Paragulla 3


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 solución”<<endl;
else{
disc = b*b - 4*a*c;
if(disc < 0){
foco = 1; // prendido: si tiene raices imaginarias
disc = abs(disc);// valor absoluto de disc
}
if(foco==0){
x1 = (b+sqrt(disc))/(2*a);
x2 = (b-sqrt(disc))/(2*a);
cout<<"Raiz x1 = "<<x1<<endl;
cout<<"Raiz x2 = "<<x2<<endl;
}
else{
e = b/(2*a);
r = sqrt(disc)/(2*a);
cout<<"Raiz imaginaria x1 = "<<e<<" + "<<r<<" i."<<endl;
cout<<"Raiz imaginaria x2 = "<<e<<" - "<<r<<" i."<<endl;
}
}

getch();
}

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 continuación:

MARCA DESCUENTO ( % )
3M 10
Imation 15
Sony 20
TDK 25
Princo 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.

Elaborado por Ing. Julio Vásquez Paragulla 4


UNIVERSIDAD NACIONAL DE INGENIERIA
FACULTAD DE INGENIERIA MECANICA
CURSO: MB545
SEMANA02
ESTRUCTURAS DE CONTROL CONDICIONALES/SELECTIVAS
if, if else, if else if, switch

PROBLEMA 5:
Para calcular los importe de la boleta de pago de un trabajador considere los siguientes datos de entrada:
sueldo básico, estado civil (soltero, casado, viudo, divorciado, otro), nivel (obrero, empleado, ejecutivo),
afiliación de AFP (si, no). Para el cálculo de las bonificaciones considere las siguientes tablas:
Bonificación por estado civil:
ESTADO CIVIL % APLICADO AL SUELDO
BASICO
Soltero 10
Casado 15
Viudo 20
Divorciado 5
Otro 0
Bonificación por nivel:
NIVEL % APLICADO AL SUELDO
BASICO
Obrero 20
Empleado 15
Ejecutivo 10
Para el cálculo del sueldo total considere sueldo basico + bonificaciones.
Para los descuentos considere la siguiente tabla:
AFILIADO A UNA % APLICADO AL SUELDO
AFP TOTAL
SI 13
No 9

Para el cálculo del sueldo neto considere sueldo total – descuentos.

Debe mostrar la siguiente información de la boleta de pago:


Sueldo básico
Estado civil y Bonificación por estado civil
Nivel y Bonificación por nivel
Sueldo total
Descuento por afiliación
Sueldo neto

PROBLEMA 6:
Dado 5 números, determine los dos números de mayor valor entre ellos.

PROBLEMA 7:
Dado los lados de un triángulo, determine la existencia o no existencia de dicho triángulo

PROBLEMA 8:
Dado los ángulos de un triángulo, determine si el triángulo es acutángulo, rectángulo, obtusángulo.

PROBLEMA 9:
Una compañía de teléfonos ha establecido sus tarifas por exceso de llamadas, de la siguiente manera: si el
número de llamadas no pasa de 50 no se considera exceso y paga una tarifa de 0.50 por llamada; pero si el
número de llamadas pasa de 50 hasta un límite de 150, las llamadas en exceso a 50 tendrán una tarifa de 0.80
por llamada y si el número de llamadas pasa de 150 las llamadas en exceso a 150 tendrán una tarifa de 1.10
por llamada. Se desea saber el número 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 día, el mes y el año, evaluar y luego mostrar un mensaje según corresponda
para saber si la fecha es correcta o incorrecta. Considerar la posibilidad que el año sea bisiesto en cuyo caso el
mes de febrero tendría 29 días validos. Considere que el año es bisiesto cuando es múltiplo de 4 pero nó de
100 excepto de 400.

Elaborado por Ing. Julio Vásquez Paragulla 5

Das könnte Ihnen auch gefallen