Semana 02

7
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA CURSO: MB545 SEMANA02 ESTRUCTURAS DE CONTROL CONDICIONALES/SELECTIVAS if, if else, if else if, switch Elaborado por Ing. Julio Vásquez Paragulla 1 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. Descripción Símbolo Expresión de ejemplo Resultado del 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

description

GG

Transcript of Semana 02

Page 1: Semana 02

UNIVERSIDAD NACIONAL DE INGENIERIA

FACULTAD DE INGENIERIA MECANICA CURSO: MB545

SEMANA02

ESTRUCTURAS DE CONTROL CONDICIONALES/SELECTIVAS

if, if else, if else if, switch

Elaborado por Ing. Julio Vásquez Paragulla 1

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.

Descripción Símbolo Expresión de

ejemplo Resultado del

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

Page 2: Semana 02

UNIVERSIDAD NACIONAL DE INGENIERIA

FACULTAD DE INGENIERIA MECANICA CURSO: MB545

SEMANA02

ESTRUCTURAS DE CONTROL CONDICIONALES/SELECTIVAS

if, if else, if else if, switch

Elaborado por Ing. Julio Vásquez Paragulla 2

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:

Descripción Símbolo Expresión de

ejemplo Resultado del

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.

Page 3: Semana 02

UNIVERSIDAD NACIONAL DE INGENIERIA

FACULTAD DE INGENIERIA MECANICA CURSO: MB545

SEMANA02

ESTRUCTURAS DE CONTROL CONDICIONALES/SELECTIVAS

if, if else, if else if, switch

Elaborado por Ing. Julio Vásquez Paragulla 3

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 "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 solución a una ecuación 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 solución”<<endl; else{ x = -b/a; cout<<”raíz x: “<< x<<endl; } _getch(); }

Page 4: Semana 02

UNIVERSIDAD NACIONAL DE INGENIERIA

FACULTAD DE INGENIERIA MECANICA CURSO: MB545

SEMANA02

ESTRUCTURAS DE CONTROL CONDICIONALES/SELECTIVAS

if, if else, if else if, switch

Elaborado por Ing. Julio Vásquez Paragulla 4

PROBLEMA 3: Encuentre la solución a una ecuación de segundo grado: ax

2 + 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 solución”<<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 continuación:

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.

Page 5: Semana 02

UNIVERSIDAD NACIONAL DE INGENIERIA

FACULTAD DE INGENIERIA MECANICA CURSO: MB545

SEMANA02

ESTRUCTURAS DE CONTROL CONDICIONALES/SELECTIVAS

if, if else, if else if, switch

Elaborado por Ing. Julio Vásquez Paragulla 5

PROBLEMA 5: Para calcular los importe de la boleta de pago de un trabajador considere los siguientes datos de entrada: nombre, 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:

ESTADO CIVIL % APLICADO AL SUELDO BASICO

Soltero 10 %

Casado 15 %

Viudo 20 %

Divorciado 5 %

Otro 0

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 AFP

% APLICADO AL SUELDO 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:

Nombre del trabajador 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.

Page 6: Semana 02

UNIVERSIDAD NACIONAL DE INGENIERIA

FACULTAD DE INGENIERIA MECANICA CURSO: MB545

SEMANA02

ESTRUCTURAS DE CONTROL CONDICIONALES/SELECTIVAS

if, if else, if else if, switch

Elaborado por Ing. Julio Vásquez Paragulla 6

PROBLEMA 11: Una hotel ha clasificado a sus habitaciones en 3 categorías: A, B, C, con los siguientes precios diarios: S/50, S/40 y S/30 respectivamente. También se ha establecido los siguientes porcentajes de descuento: para las categorías A y B, 6% y para la categoría C, 10%. Estos porcentajes se aplican al monto total de alojamiento. Para cierta cantidad de días 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 acuático ha establecido precios segmentados según 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 número 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 número cumpla con la condición dada.

PROBLEMA 14: Dado un número entero positivo de 4 o de 6 cifras y forme el mayor número posible con las cifras centrales que contenga. Verifique que el número 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$

Centrífugo 100

Neumático 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

1 a 5 5.0%

6 a 10 7.5%

11 a 15 10.0%

Más 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 mínima y máxima alcanzada los días lunes, miércoles y viernes de una semana. Determine la temperatura promedio de cada día e identifique el(los) día(s) en que se alcanzó la temperatura promedio más baja. PROBLEMA 17 Una tienda vende celulares a precios dados en la siguiente tabla:

Page 7: Semana 02

UNIVERSIDAD NACIONAL DE INGENIERIA

FACULTAD DE INGENIERIA MECANICA CURSO: MB545

SEMANA02

ESTRUCTURAS DE CONTROL CONDICIONALES/SELECTIVAS

if, if else, if else if, switch

Elaborado por Ing. Julio Vásquez Paragulla 7

Marca Precio unitario us$

Samsung 100

LG 160

HTC 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 fábrica productora de tornillos de acuerdo al cumplimiento de las siguientes condiciones:

a) Más 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 sólo una condición, grado 5 Si no cumple ninguna condición, grado 0

Asuma que los datos ingresados son correctos. PROBLEMA 19 Dado el puntaje de 3 dados, determine la clasificación según lo siguiente: Si hubieron 3 seis, clasificación “Excelente” Si hubieron 2 seis, clasificación “Buena” Si hubo 1 seis, clasificación “Regular” Si no hubo seis, clasificación “Mala” Verifique que los puntajes de los dados sean correctos, caso contrario dar un mensaje de error. PROBLEMA 20 En la página web www.hostviable.com han puesto a la venta planes de hosting indicados en la siguiente tabla:

Plan de hosting Precio unitario us$ % descuento

Tecnología PHP Tecnología JAVA

1GB 50.00 75.00 7%

5GB 100.00 125.00 12%

10GB 180.00 205.00 15%

Escriba un programa que identifique el plan de hosting adquirido, el tipo de tecnología, el precio unitario y el % de descuento correspondiente al plan de hosting adquirido. Además determine el importe del descuento y el importe a pagar en dólares y en soles al tipo de cambio vigente.