Está en la página 1de 7

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

Smbolo

Negacin
Y lgico
O lgico

!
&&
||

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 "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;

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;
_getch();
}
PROBLEMA 2:
Encuentre la solucin a una ecuacin de primer grado: ax + b = 0
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;

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;
}
_getch();
}

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

PROBLEMA 3:
2
Encuentre la solucin a una ecuacin de segundo grado: ax + bx + c =0
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;

void main(){
double a,b,c,x1,x2,disc, e, r;
int foco=0;
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=b*b 4*a*c;
if(disc<0){
foco=1;
disc = abs(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 x1: <<e<< +<<r<< i <<endl;
cout<< raiz x2: <<e<< -<<r<< i <<endl;
}
}
_getch();
}
PROBLEMA 4:
Una tienda de accesorios de computadoras vende USBs de diferente marca y cada marca tiene un porcentaje
de descuento como se muestra a continuacin:
MARCA
% DESCUENTO
3M
10 %
IMATION
15 %
LG
20 %
SAMSUNG
25 %
OTRO
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 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
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:
ESTADO CIVIL
Soltero
Casado
Viudo
Divorciado
Otro
NIVEL
Obrero
Empleado
Ejecutivo

% APLICADO AL SUELDO
BASICO
10 %
15 %
20 %
5%
0
% 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
% APLICADO AL SUELDO
AFP
TOTAL
SI
13 %
No
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
5

UNIVERSIDAD NACIONAL DE INGENIERIA


FACULTAD DE INGENIERIA MECANICA
CURSO: MB545

SEMANA02
ESTRUCTURAS DE CONTROL CONDICIONALES/SELECTIVAS
if, if else, if else if, switch
PROBLEMA 11:
Una hotel ha clasificado a sus habitaciones en 3 categoras: A, B, C, con los siguientes precios diarios: S/50,
S/40 y S/30 respectivamente. Tambin se ha establecido los siguientes porcentajes de descuento: para las
categoras A y B, 6% y para la categora C, 10%. Estos porcentajes se aplican al monto total de alojamiento.
Para cierta cantidad de das de alojamiento de un cliente, determine el monto total, el monto del descuento y el
monto a pagar.
Asuma que los datos ingresados son correctos.
PROBLEMA 12:
Una empresa de transporte acutico ha establecido precios segmentados segn las millas marinas recorridas,
de la siguiente manera: hasta 100 millas, el precio por milla es de us$1 por pasajero, las siguientes 200millas,
el precio por milla es de us$1.50 por pasajero y por las siguientes millas, el precio por milla es de us$1.80 por
pasajero. Para un viaje de cierta cantidad de millas y de cierta cantidad de personas determine el monto que se
debe cobrar.
PROBLEMA 13:
Dado un nmero entero positivo cuya cantidad de cifras este en el rango de 2 a 4 inclusive, identifique la cifra
mayor, la cifra menor y la suma de ellas. Verifique que el nmero cumpla con la condicin dada.
PROBLEMA 14:
Dado un nmero entero positivo de 4 o de 6 cifras y forme el mayor nmero posible con las cifras centrales que
contenga. Verifique que el nmero sea positivo y sea de 4 o de 6 cifras solamente.
PROBLEMA 15:
Una tienda vende extractores a precios dados en la siguiente tabla:
Tipo de extractor

Precio Unitario us$

Centrfugo

100

Neumtico

60

De techo

45

Axial

25

Como oferta la tienda ofrece descuentos sobre el importe de la compra en base a la cantidad de extractores
adquiridos de acuerdo a la siguiente tabla:
Cantidad de extractores
% Descuentos
1a5

5.0%

6 a 10

7.5%

11 a 15

10.0%

Ms de 15

12.5%

Escriba un programa que determine el importe bruto (importe sin descuento), el importe del descuento, el
importe a pagar ( importe bruto menos importe del descuento) por la compra de cierta cantidad de extractores
de un mismo tipo.
PROBLEMA 16
Una persona registra la temperatura mnima y mxima alcanzada los das lunes, mircoles y viernes de
una semana. Determine la temperatura promedio de cada da e identifique el(los) da(s) en que se
alcanz la temperatura promedio ms baja.
PROBLEMA 17
Una tienda vende celulares a precios dados en la siguiente tabla:
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
Marca
Samsung
LG
HTC

Precio unitario us$


100
160
145

Como oferta la tienda ofrece descuentos sobre el importe de la compra en base al plan adquirido de acuerdo a
la siguiente tabla:
Plan adquirido
% descuento
Prepago
5.0%
Postpago 60
7.5%
Postpago 90
10.0%
Escriba un programa que determine el importe de la compra ( precio x cantidad), el importe del descuento, el
importe a pagar ( importe bruto menos importe del descuento) por la compra de cierta cantidad de celulares de
una sola marca y de un mismo plan adquirido.
PROBLEMA 18
Determine el grado de eficiencia de un operario en una fbrica productora de tornillos de acuerdo al cumplimien
to de las siguientes condiciones:
a) Ms de 10000 tornillos no defectuosos producidos en el mes
b) Menos de 200 tornillos defectuosos producidos en el mes
c) Menos de 1.5 horas de ausencia al trabajo
Los grados de eficiencia se determinan de la siguiente manera:
Si cumple las tres condiciones, grado 20
Si cumple dos condiciones, grado 15
Si cumple slo una condicin, grado 5
Si no cumple ninguna condicin, grado 0
Asuma que los datos ingresados son correctos.
PROBLEMA 19
Dado el puntaje de 3 dados, determine la clasificacin segn lo siguiente:
Si hubieron 3 seis, clasificacin Excelente
Si hubieron 2 seis, clasificacin Buena
Si hubo 1 seis, clasificacin Regular
Si no hubo seis, clasificacin Mala
Verifique que los puntajes de los dados sean correctos, caso contrario dar un mensaje de error.
PROBLEMA 20
En la pgina web www.hostviable.com han puesto a la venta planes de hosting indicados en la siguiente tabla:
Plan de hosting
1GB
5GB
10GB

Tecnologa PHP
50.00
100.00
180.00

Precio unitario us$


Tecnologa JAVA
75.00
125.00
205.00

% descuento
7%
12%
15%

Escriba un programa que identifique el plan de hosting adquirido, el tipo de tecnologa, el precio unitario y el %
de descuento correspondiente al plan de hosting adquirido. Adems determine el importe del descuento y el
importe a pagar en dlares y en soles al tipo de cambio vigente.

Elaborado por Ing. Julio Vsquez Paragulla

También podría gustarte