Está en la página 1de 12

Curso: Fundamentos de Algoritmos – Sesión 03

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.

Docente: Ing. Marcelino Torres Villanueva 1


Curso: Fundamentos de Algoritmos – Sesión 03

if anidados
Un if anidado es un if que es el objeto de otro if o else. Una sentencia else le corresponde el if más
próximo que esté en el mismo bloque.
Ejemplo:
if(expresion1)
if(expresion2)
{
Instrucciones21;
}
else
{
Instrucciones22
}
else
{
Instrucciones12
}

- También se puede tener if..else if


if (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 es
verdadera se ejecuta bloque2 si es falsa se evalúa expresion3 si es verdad se ejecuta bloque3, si es falsa
se 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 el
valor que sigue a :

Docente: Ing. Marcelino Torres Villanueva 2


Curso: Fundamentos de Algoritmos – Sesión 03

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

#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;
}

Docente: Ing. Marcelino Torres Villanueva 3


Curso: Fundamentos de Algoritmos – Sesión 03

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

#include<iostream>

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;
else
cout<<"Hombre mayor de edad "<<endl;
else
if (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;
}

Docente: Ing. Marcelino Torres Villanueva 4


Curso: Fundamentos de Algoritmos – Sesión 03

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)) / 2A
X2 = (-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.

#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;
}

Docente: Ing. Marcelino Torres Villanueva 5


Curso: Fundamentos de Algoritmos – Sesión 03

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

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;
}

Docente: Ing. Marcelino Torres Villanueva 6


Curso: Fundamentos de Algoritmos – Sesión 03

7) Hacer un programa para ingresar el valor de 3 ángulos en grados sexagesimales, y reportar


si 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()
{
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 70
B 60
C 45
D 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;

Docente: Ing. Marcelino Torres Villanueva 7


Curso: Fundamentos de Algoritmos – Sesión 03

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;
}
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;zc
cout<<"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')

Docente: Ing. Marcelino Torres Villanueva 8


Curso: Fundamentos de Algoritmos – Sesión 03

{
total=cantidad*100;
cout<<"Total a pagar es : "<<total<<" soles"<<endl;
}
else
cout<<"Talla ingresada es incorrecta "<<endl;
system("pause");
return 0;
}
10) Programa para ingresar un año y reporte si es bisiesto o no. Un año es bisiesto si es múltiplo
de 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;
}

Docente: Ing. Marcelino Torres Villanueva 9


Curso: Fundamentos de Algoritmos – Sesión 03

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 caso
contrario.
3) Escriba un programa que ingrese un número entero y determine si es par, en caso de no
serlo determine si es divisible por 3.
4) Calcule el interés mensual generado por un capital. La tasa de interés mensual depende
del capital que fue depositado. Si el capital es menor de 500, la tasa de interés será del
2% mensual. Si el capital es mayor o igual que 500 pero menor o igual a 1500 entonces la
tasa de interés es de 4.5%. Si el capital es mayor que 1500 la tasa de interés es del
9%. Se debe ingresar el capital y reportar el interés
5) Diseñe un programa que lea 3 números enteros y determine el número intermedio. No
usar operadores lógicos.
6) Escriba un programa que pida una letra minúscula, el programa deberá imprimir si la
letra es una vocal (a,e,i,o,u), semivocal (y) o una consonante.
7) Escriba un programa que pida el numero de mes (del 1 al 12) y el año e imprima el número
de días que tiene el mes.
8) Un estudiante recibe una propina mensual de S/.100. A fin de mes el estudiante rinde 3
exámenes (Informática, cálculo, Física). El papa ha decidido incentivarlo dándole una
propina adicional de 20 soles por cada examen aprobado. Hacer un programa que
determine cuanto de propina recibe el estudiante después de dar los exámenes.
9) Calcule el valor de la función Fx, dada por
x3 + x/2, para x < 0
Fx =
4x2 – 2 , para x ≥ 0
10) 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

11) Dada la hora en Horas, Minutos y Segundos encuentre la hora del segundo anterior, por
ejemplo: se ingresó H=11; M=00; S=00, el segundo anterior es H =10, M=59, S=59
12) La tribuna de un estadio esta numerada del 1 al 500 en la parte superior horizontal que
corresponde al número de asiento por columna; y del 1 al 50 en la parte izquierda
vertical que corresponde al número de asiento por fila. Los boletos tienen una
numeración correlativa del 1 al 25000. Para cualquier número de boleto determinar el
número de fila y el número de columna que le correspondería a la ubicación de su asiento.
13) Un trabajador es contratado bajo las condiciones sgts: por las horas normales se le paga
una tarifa fija. Se consideran horas normales a todas las horas trabajadas hasta un
total de 140 al mes. Las horas adicionales a 140 se consideran como extras y una hora
extra se paga el 50% más que una hora normal. Los impuestos están en función del
monto obtenido por el trabajador. Si el sueldo es menor o igual a S/. 2000 no paga
impuestos, pero si es mayor paga el 15%. ¿Cuál es el sueldo neto del trabajador y cuál es
el monto en impuestos que debe pagar?

Docente: Ing. Marcelino Torres Villanueva 10


Curso: Fundamentos de Algoritmos – Sesión 03

14) Ingresar un número entero de 4 dígitos y determinar si todos los dígitos del número son
pares. Por ejemplo si el número es: 7286 no cumple la condición ya que el digito 7 es
impar, por el contrario el número 8424 si cumple la condición pues todos los digitos son
pares.
15) Se repartirá la herencia entre los hijos de un señor como sigue: Si la cantidad de hijos
es 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 debe
ingresar la herencia y el número de hijos.
16) 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
valores cumplen las condiciones calcular el área del triángulo en caso contrario reportar
'DATOS INCORRECTOS'.
AREA= Raiz_Cuadrada_de(s(s-a)(s-b)(s-c))
17) 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 nota
eliminada y el promedio final del alumno
18) En un estacionamiento, se cobra SI. 2.5 por hora o fracción de hora. Dado el tiempo de
estacionamiento de un vehículo expresado en horas y minutos determine el importe a
pagar por concepto de estacionamiento.
19) Una empresa paga a sus vendedores un sueldo igual al 10% del monto total vendido más
S/. 25 por cada S/.500 de venta en exceso sobre S/. 5000. Diseñe un programa que
permita calcular el sueldo de un vendedor.
20) Dado un número natural de tres cifras, diseñe un algoritmo que determine si el número
es o no capicúa. Un número es capicúa si se lee igual de derecha a izquierda que de
izquierda a derecha. Así, por ejemplo, 363 es capicúa; pero, 356 no lo es.
21) Diseñe un programa que determine le categoría de un estudiante en base a su promedio
ponderado de acuerdo a la siguiente tabla:

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

22) 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 el grado 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 su estatura.

Docente: Ing. Marcelino Torres Villanueva 11


Curso: Fundamentos de Algoritmos – Sesión 03

23) Hacer un programa que permita calcular el pago total de un trabajador de acuerdo a lo
siguiente:
Bonificación: respecto al sueldo Descuento: respecto al sueldo + bonificación
Masculino 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.

24) Hacer un programa que permita calcular el pago total de un trabajador de acuerdo a lo
siguiente: Se debe ingresar sueldo, categoría(A, B, C o D) y condición (estable, no
estable).
- La bonificación se calcula de acuerdo a lo siguiente:
Estable No Estable
A 20% 17%
B 18% 15%
C 15% 14%
D 12% 10%

- Descuento: respecto al sueldo + bonificación


Estable: 6% No estable: 4%
Se debe reportar bonificación, descuento y pago total.

Docente: Ing. Marcelino Torres Villanueva 12

También podría gustarte