estructura selectiva simple en c++

12
www.lawebdemarce.com Marcelino Torres Villanueva 1 Operadores de relación Sirven para comparar dos expresiones del mismo tipo. En c++ el resultado de una comparación es un número entero distinto de cero (verdadero) o cero (falso) > Mayor que >= Mayor o igual que < Menor que <= Menor o igual que == Igual que != Diferente que Operadores lógicos: && Operador y || Operador o ! Operador negación if... else ( Si … Entonces ) Sirve para escoger una de dos caminos en un programa de acuerdo al resultado de una expresión relacional if(expresión) instruccion1; else instruccion2; Si la expresión es verdadera se ejecuta la instruccion1, si la expresión es falsa se ejecuta la instruccion2. También se puede utilizar if(expresión) { instrucciones1; } else { instrucciones2; } Donde instrucciones1 e instrucciones2, son bloques de instrucciones. - La sentencia else es opcional if(expresión) { instrucciones; } En este caso si expresión es verdadera se ejecutan instrucciones en caso contrario el programa continúa. if anidados

Upload: marcelino-villanueva

Post on 21-Jul-2015

334 views

Category:

Technology


10 download

TRANSCRIPT

Page 1: Estructura selectiva simple en c++

www.lawebdemarce.com

Marcelino Torres Villanueva 1

Operadores de relaciónSirven para comparar dos expresiones del mismo tipo. En c++ el resultado de una comparación es unnúmero entero distinto de cero (verdadero) o cero (falso)

> Mayor que>= Mayor o igual que< Menor que<= Menor o igual que== Igual que!= Diferente que

Operadores lógicos:

&& Operador y|| Operador o! Operador negación

if... else ( Si … Entonces )Sirve para escoger una de dos caminos en un programa de acuerdo al resultado de una expresiónrelacional

if(expresión)instruccion1;

elseinstruccion2;

Si la expresión es verdadera se ejecuta la instruccion1, si la expresión es falsa se ejecuta la instruccion2.También se puede utilizar

if(expresión){

instrucciones1;}else

{instrucciones2;

}

Donde instrucciones1 e instrucciones2, son bloques de instrucciones.

- La sentencia else es opcional

if(expresión){instrucciones;

}En este caso si expresión es verdadera se ejecutan instrucciones en caso contrario el programa continúa.

if anidados

Page 2: Estructura selectiva simple en c++

www.lawebdemarce.com

Marcelino Torres Villanueva 2

Un if anidado es un if que es el objeto de otro if o else. Una sentencia else le corresponde el if máspróximo que esté en el mismo bloque.Ejemplo:

if(expresion1)if(expresion2){

Instrucciones21;}

else{Instrucciones22

}else{

Instrucciones12}

- También se puede tener if..else ifif (expression1){

Bloque1}

else if(expression2){Bloque2

}else{

bloqueElse}

En este caso si expresion1 es verdadera se ejecutara el bloque1, si es falsa se evalúa expresion2 si esverdadera se ejecuta bloque2 si es falsa se evalúa expresion3 si es verdad se ejecuta bloque3, si es falsase ejecuta bloqueElse.

If abreviado (?)

variable = (expresion) ? verdadero : falso;

Si expresión es verdadero se le asigna a variable lo que sigue a ¿ y si expresion es falsa variable toma elvalor que sigue a :

Ejercicios Resueltos1) Ingresar un número entero y reportar si es par o impar.

Page 3: Estructura selectiva simple en c++

www.lawebdemarce.com

Marcelino Torres Villanueva 3

#include<iostream>using namespace std;

int main(){

int n;cout<<"ingrese el numero:";cin>>n;if(n%2==0)

cout<<"es par"<<endl;else

cout<<"es impar"<<endl;system("pause");return 0;

}2) Programa para ingresar un número real y reporte su valor absoluto.

#include<iostream>using namespace std;int main(){

float x,va;cout<<"ingrese numero:";cin>>x;if(x>0)

va=x;else

va=-x;cout<<"el valor absoluto es:"<<va<<endl;system("pause");return 0;

}

Este ejercicio lo podemos resolver de otra manera usando el if abreviado#include<iostream>using namespace std;int main(){

float x,va;cout<<"ingrese numero:";cin>>x;va= x>=0 ? x : -x;cout<<"el valor absoluto es:"<<va<<endl;system("pause");return 0;

}

3) Hacer un programa para ingresar la edad y el sexo de una persona e imprima si es hombre omujer mayor o menor de edad.

#include<iostream>

Page 4: Estructura selectiva simple en c++

www.lawebdemarce.com

Marcelino Torres Villanueva 4

using namespace std;

int main(){

char sexo;int edad;cout<<"Cuantos años tiene : ";cin>>edad;cout<<"Sexo (m/f) : ";cin>>sexo;if(edad>=18)

if (sexo=='f')cout<<"Mujer mayor de edad"<<endl;

elsecout<<"Hombre mayor de edad "<<endl;

elseif (sexo=='f')

cout<<"Mujer menor de edad"<<endl;else

cout<<"Hombre menor de edad"<<endl;system("pause");return 0;

}

4) Ingresar un número y reportar si es positivo negativo o cero.

#include<iostream>

using namespace std;

int main(){

float x;cout<<"ingrese numero:";cin>>x;if(x>0)

cout<<"es positivo"<<endl;else if(x<0)

cout<<"es negativo"<<endl;else

cout<<"es cero"<<endl;system("pause");return 0;

}5) Determinar las raíces de la ecuación de 2do grado del tipo Ax2 + Bx + C = 0. Considerar la

sgte formula:X1 = (-B - raiz(B2 - 4AC)) / 2AX2 = (-B +raiz(B2 - 4AC)) / 2A

Considere las raíces imaginarias. Se dice que las raíces son imaginarias cuando la discriminante(B2 + 4AC) es negativa. De deben ingresar los coeficientes de la ecuación cuadrática.

Page 5: Estructura selectiva simple en c++

www.lawebdemarce.com

Marcelino Torres Villanueva 5

#include<iostream>#include<math.h>

using namespace std;

int main(){

float a,b,c,d,x1,x2,real,imag;cout<<"Coeficiente a : ";cin>>a;cout<<"Coeficiente b : ";cin>>b;cout<<"Coeficiente c : ";cin>>c;if(a!=0){

d=pow(b,2)-4*a*c;if(d>=0){

x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);cout<<"x1 = "<<x1<<endl;cout<<"x2 = "<<x2<<endl;

}else{

real=-b/(2*a);imag=sqrt(-d)/(2*a);cout<<"x1 = "<<real<<" + "<<imag<<"i" <<endl;cout<<"x2 = "<<real<<" - "<<imag<<"i"<<endl;

}}else

cout<<"No se puede calcular"<<endl;system("pause");return 0;

}

6) Calcular el valor de la función de acuerdo a lo siguiente :

y = x2 + 5 Si x<=0

y = 3x - 1 Si 0 < x < 5

y = x2 – 4 x + 5 Sí x>=5

Page 6: Estructura selectiva simple en c++

www.lawebdemarce.com

Marcelino Torres Villanueva 6

Se debe ingresar el valor de x y reportar el valor de y.

#include<iostream>#include<math.h>

using namespace std;

int main(){

float x,y;cout<<"Valor de x : ";cin>>x;if(x<=0)

y=pow(x,2)+5;else if(x<5)

y=3*x-1;else

y=pow(x,2)-4*x+5;cout<<"El valor de y es : "<<y<<endl;system("pause");return 0;

}

Otra manera de hacerlo usando if abreviado:

#include<iostream>#include<math.h>

using namespace std;

int main(){

float x,y;cout<<"Valor de x : ";cin>>x;y= x<=0 ? pow(x,2)+5 : (x<5 ? y=3*x-1 : pow(x,2)-4*x+5);cout<<"El valor de y es : "<<y<<endl;system("pause");return 0;

}

7) Hacer un programa para ingresar el valor de 3 ángulos en grados sexagesimales, y reportarsi son los ángulos del triangulo, además decir si es rectángulo, obtusángulo o acutángulo.

#include<iostream.h>

using namespace std;

int main()

Page 7: Estructura selectiva simple en c++

www.lawebdemarce.com

Marcelino Torres Villanueva 7

{float a,b,c;cout<<"ingrese valor de tres angulos : ";cin>>a>>b>>c;if((a+b+c)==180){

cout<<"es un triangulo"<<endl;if(a==90||b==90||c==90)

cout<<"es rectangulo"<<endl;else if(a>90||b>90||c>90)

cout<<"es obtusangulo"<<endl;else

cout<<"es acutangulo"<<endl;}else

cout<<"no pertenece a un triangulo"<<endl;system("pause");return 0;

}8) Una inmobiliaria vende terrenos en diferentes zonas de la Ciudad tal como se detalla a

continuación

Zona Precio (m2)A 70B 60C 45D 30

Se pide ingresar la zona donde vive y el área del terreno y calcular el precio de Venta

#include<iostream>

using namespace std;

int main(){char zona;float area,total;cout<<"Ingrese la zona donde usted desea vivir A, B, C, D: ";cin>>zona;cout<<"Area de Terreno : ";cin>>area;

if(zona=='A' || zona=='a'){

total=area *70;cout<<"Total a pagar es : "<<total<<" soles"<<endl;

}else if(zona=='B' || zona=='b'){

total=area*95;cout<<"Total a pagar es : "<<total<<" soles"<<endl;

Page 8: Estructura selectiva simple en c++

www.lawebdemarce.com

Marcelino Torres Villanueva 8

}else if(zona=='C' || zona=='c'){

total=area*45;cout<<"Total a pagar es : "<<total<<" soles"<<endl;

}else if(zona=='D' || zona=='d'){

total=area*45;cout<<"Total a pagar es : "<<total<<" soles"<<endl;

}else

cout<<"Zona Incorrecta."<<endl;system("pause");return 0;

}9) Determinar el precio que debe pagarse por la compra de una cantidad de camisas del mismo

tipo, si el precio de las camisas talla S es de 85, de talla M es de 95, y la talla L es de 100.Se debe ingresar la cantidad de camisas a comprar y la talla

#include<iostream.h>using namespace std;

int main(){char talla;int cantidad;float total;zccout<<"Talla de las camisas S, M, L : ";cin>>talla;cout<<"cantidad de camisas a comprar : ";cin>>cantidad;if(talla=='s' || talla=='S'){

total=cantidad*85;cout<<"Total a pagar es : "<<total<<" soles"<<endl;

}else if(talla=='m' || talla=='M'){

total=cantidad*95;cout<<"Total a pagar es : "<<total<<" soles"<<endl;

}else if(talla=='l' || talla=='L'){

total=cantidad*100;cout<<"Total a pagar es : "<<total<<" soles"<<endl;

}else

cout<<"Talla ingresada es incorrecta "<<endl;system("pause");return 0;

}

Page 9: Estructura selectiva simple en c++

www.lawebdemarce.com

Marcelino Torres Villanueva 9

10) Programa para ingresar un año y reporte si es bisiesto o no. Un año es bisiesto si es múltiplode 4 pero no de 100 o es múltiplo de 400.

#include<iostream>using namespace std;int main(){

int a;cout<<"Ingrese valor del año : ";cin>>a;if(( a % 4 == 0 && a % 100 != 0) || a % 400 == 0)

cout<<"El año es bisiesto"<<endl;else

cout<<"El año no es bisiesto"<<endl;system("pause");return 0;

}11) Ingresar 3 números y calcular el mayor de ellos

#include<iostream>using namespace std;int main(){

float a,b,c,may;cout<<"Ingrese 3 numeros : ";cin>>a>>b>>c;may=a;if(b>may)

may=b;if(c>may)

may=c;cout<<"El mayor de los numeros es : "<<may<<endl;system("pause");return 0;

}

Ejercicios Propuestos

1) Escriba un programa para determinar sí un número entero A es divisible por otro B.2) Hacer un programa de tal manera que se ingrese las 2 evaluaciones de un alumno y

reporte APROBADO si el promedio es mayor o igual a 10.5 y DESAPROBADO en casocontrario.

3) Escriba un programa que ingrese un número entero y determine si es par, en caso de noserlo determine si es divisible por 3.

4) Calcule el interés mensual generado por un capital. La tasa de interés mensual dependedel capital que fue depositado. Si el capital es menor de 500, la tasa de interés será del2% mensual. Si el capital es mayor o igual que 500 pero menor o igual a 1500 entonces la

Page 10: Estructura selectiva simple en c++

www.lawebdemarce.com

Marcelino Torres Villanueva 10

tasa de interés es de 4.5%. Si el capital es mayor que 1500 la tasa de interés es del9%. Se debe ingresar el capital y reportar el interés

5) Una tienda que vende pantalones al menudeo y al mayoreo tiene las siguientes tarifas, sise compran menos de 5 pantalones estos se cobran a su precio normal, en caso de que secompren 5 o más pero menos de 12 , se les descuenta el 15% en cada pantalón, si secompran mas de 12 se les descuenta 30% en cada pantalón.

Escriba un programa que pida como dato de entrada el número de pantalones que se deseancomprar y con ello imprima el total a pagar por la compra hecha.

6) Diseñe un programa que lea 3 números enteros y determine el número intermedio. Nousar operadores lógicos.

7) Escriba un programa que pida una letra minúscula, el programa deberá imprimir si laletra es una vocal (a,e,i,o,u), semivocal (y) o una consonante.

8) Escriba un programa que pida el numero de mes (del 1 al 12 ) y el año e imprima elnúmero de días que tiene el mes.

9) Un estudiante recibe una propina mensual de S/.100. A fin de mes el estudiante rinde 3exámenes (Informática, cálculo, Física). El papa ha decidido incentivarlo dándole unapropina adicional de 20 soles por cada examen aprobado. Hacer un programa quedetermine cuanto de propina recibe el estudiante después de dar los exámenes.

10) Calcule el valor de la función Fx, dada porx3 + x/2, para x < 0

Fx =4x2 – 2 , para x ≥ 0

11) Dados 3 valores enteros X, Y, Z. Elaborar un algoritmo para determinar si esos valores

son los lados de un triángulo.

X, Y, Z, son los lados de un triángulo si cumplen con las siguientes condiciones:

X>0, Y>0, Z>0, X+Y>Z, X+Z>Y, Y+Z>X

Además clasificar el triángulo por sus lados: Equilátero, Escaleno e Isósceles

12) Dada la hora en Horas, Minutos y Segundos encuentre la hora del segundo anterior, porejemplo: se ingresó H=11; M=00; S=00, el segundo anterior es H =10, M=59, S=59

13) La tribuna de un estadio esta numerada del 1 al 500 en la parte superior horizontal quecorresponde al número de asiento por columna; y del 1 al 50 en la parte izquierdavertical que corresponde al número de asiento por fila. Los boletos tienen unanumeración correlativa del 1 al 25000. Para cualquier número de boleto determinar elnúmero de fila y el número de columna que le correspondería a la ubicación de su asiento.

14) Un trabajador es contratado bajo las condiciones sgts: por las horas normales se le pagauna tarifa fija. Se consideran horas normales a todas las horas trabajadas hasta untotal de 140 al mes. Las horas adicionales a 140 se consideran como extras y una horaextra se paga el 50% más que una hora normal. Los impuestos están en función delmonto obtenido por el trabajador. Si el sueldo es menor o igual a S/. 2000 no pagaimpuestos, pero si es mayor paga el 15%. ¿Cuál es el sueldo neto del trabajador y cuál esel monto en impuestos que debe pagar?

15) Ingresar un número entero de 4 dígitos y determinar si todos los dígitos del número sonpares. Por ejemplo si el número es: 7286 no cumple la condición ya que el digito 7 esimpar, por el contrario el numero 8424 si cumple la condición pues todos los digitos sonpares.

16) Dada la ecuación de la recta ax + by = c, determinar si un punto (x, y) pertenece o no adicha recta.

Page 11: Estructura selectiva simple en c++

www.lawebdemarce.com

Marcelino Torres Villanueva 11

17) Se repartirá la herencia entre los hijos de un señor como sigue: Si la cantidad de hijoses menor que 4; se repartirá exactamente entre el número de hijos; si son 4 o más hijos,la mitad le tocará al hermano mayor y el resto se dividirá entre los demás hermano.Hacer un programa para que reporte cuando le corresponde a cada hijo. Se debeingresar la herencia y el número de hijos.

18) En un triángulo se cumple lo siguiente:s>a, s>b, s>c donde s: semiperímetro a, b, c : Lados del triángulo

Hacer un programa para que se ingresen los valores de los lados del triángulo y si estos valorescumplen las condiciones calcular el área del triángulo en caso contrario reportar 'DATOSINCORRECTOS'.

AREA= Raiz_Cuadrada_de(s(s-a)(s-b)(s-c))19) En el curso de Algoritmos se rinden 4 exámenes de las cuales se elimina la menor nota.

Hacer un programa para ingresar las notas de los 4 exámenes y reportar la notaeliminada y el promedio final del alumno

20) En un estacionamiento, se cobra SI. 2.5 por hora o fracción de hora. Dado el tiempo deestacionamiento de un vehículo expresado en horas y minutos determine el importe apagar por concepto de estacionamiento.

21) Una empresa paga a sus vendedores un sueldo igual al 10% del monto total vendido másS/. 25 por cada S/.500 de venta en exceso sobre S/. 5000. Diseñe un programa quepermita calcular el sueldo de un vendedor.

22) Dado un número natural de tres cifras, diseñe un algoritmo que determine si el númeroes o no capicúa. Un número es capicúa si se lee igual de derecha a izquierda que deizquierda a derecha. Así, por ejemplo, 363 es capicúa; pero, 356 no lo es.

23) Diseñe un programa que determine le categoría de un estudiante en base a su promedioponderado de acuerdo a la siguiente tabla:

PROMEDIO CATEGORIA>=17 A>=14 pero <17 B>=12 pero <14 C< 12 D

24) Una tienda vende-tres tipos de productos cuyos códigos son 200, 300 Y 400 a losprecios unitarios dados en la siguiente tabla:

CODIGO PRECIO UNITARIO

200 20300 35400 50

Como oferta la tienda ofrece un porcentaje de descuento sobre el importe de la compra deacuerdo a la siguiente tabla:

IMPORTE DE COMPRA DESCUENTO

>= 1000 20 %>=800 pero <1000 16 %>=300 pero < 800 12 %

< 300 8 %Diseñe un algoritmo que determine el importe de la compra, el importe deldescuento y el importe a pagar por la compra de cierta cantidad de unidades de

Page 12: Estructura selectiva simple en c++

www.lawebdemarce.com

Marcelino Torres Villanueva 12

un mismo tipo de producto.25) El índice de masa corporal (IMC) permite medir el grado de sobrepeso u obesidad de

una persona. El IMC de una persona se calcula con la fórmula:IMC = peso/estatura2

Estando el peso en kilogramos y la estatura en metros. En base al valor del IMC, se obtiene elgrado de obesidad de la persona de acuerdo a la tabla adjunta.

IMC GRADO DE OBESIDAD

< 20 Delgado>=20 pero <25 Normal>=25 pero <27 Sobrepeso

>=27 Obesidad

Hacer un programa que determine el grado de obesidad de una persona conociendo su peso y suestatura.

26) Hacer un programa que permita calcular el pago total de un trabajador de acuerdo a losiguiente:

Bonificación : respecto al sueldo Descuento : respecto al sueldo + bonificaciónMasculino Femenino Masculino Femenino

Soltero 8% 10% Soltero 6% 5%Casado 10% 12% Casado 4% 3%Se debe ingresar el sueldo del trabajador , sexo y estado civil y reportar bonificación,descuento, y el pago total.

27) Hacer un programa que permita calcular el pago total de un trabajador de acuerdo a losiguiente: Se debe ingresar sueldo, categoría(A, B, C o D) y condición (estable, noestable).- La bonificación se calcula de acuerdo a lo siguiente:

Estable No EstableA 20% 17%B 18% 15%C 15% 14%D 12% 10%

- Descuento: respecto al sueldo + bonificaciónEstable: 6% No estable: 4%

Se debe reportar bonificación, descuento y pago total.