Sie sind auf Seite 1von 8

1/8

PRACTICA DIRIGIDA N 3
Al concluir esta practica habr reforzado mas su conocimiento en el empleo de las
instrucciones if(), else if(), adems conocer la instruccin switch() que nos
permite elegir una alternativa dentro de muchas. Cada uno de los problemas
resueltos debe analizar, corregir y/o agregar y mostrar los resultados.
Ejm. 22
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
float tarifa,pago,nhoras;
cout<<"Ingrese tarifa por hora o fraccin de hora:";cin>>tarifa;
cout<<"Numero Horas de estacionamiento del vehiculo ";
cin>>nhoras;
if(nhoras<=2)
pago=tarifa;
else if(nhoras<=5)
pago=tarifa+2*(nhoras-2);
else
pago=(tarifa+2*(nhoras-2))*0.90;
cout<<"Monto recaudado es:"<<pago<<endl;
}
Ejm. 23
/*La comisin sobre las ventas totales de un empleado esta dado de la
siguiente forma:
-Si las ventas son menores que $70 no se paga por comisin
-Si las ventas esta entre $70 y 500 inclusive, entonces se paga una comisin
de 5% sobre las ventas.
-Si las ventas son mayores que $500, entonces se paga 7.5% de las ventas
mas $60. Escribir un programa que lea el monto de las ventas y luego calcule
la comision a pagar */
#include<iostream>
#define BONIF 60
using namespace std;
//Programa principal
int main()
{
float vta,comis,tasa;

Fundamentos de Programacin

//BONIFICACION

Ing. Felix Huari Evangelista

2/8
cout<<"\nIngrese el Monto de la venta:";
cin>>vta;
if (vta>0)
{
if(vta<70)
tasa=0;
else if((vta>=70) && (vta<=500))
tasa=0.05;
else
tasa=0.075;
if(vta>500)
comis=vta*tasa+BONIF;
else
comis=vta*tasa;
cout<<"El monto de la comision es:"<<comis<<endl;
}
else
cout<<"El monto de venta es negativo !..."<<endl;
}
Ejm. 24
/*Escribir un programa que solicite el ingreso de 3 notas de un alumno para luego
calcular el promedio final, se sabe que para el calculo se anula la nota mas baja.
Escribir un mensaje de aprobado o desaprobado en cada caso.
El promedio se calcula la suma de sus 2 mejores notas entre 2 */
#include<iostream>
using namespace std;
//Programa principal
int main()
{
float promf,menor=1000,n1,n2,n3;
cout<<"\nIngrese las notas:";
cin>>n1>>n2>>n3;
if (n1<menor)
menor=n1;
if(n2<menor)
menor=n2;
if(n3<menor)
menor=n3;
promf=(n1+n2+n3-menor)/2;
if(promf>10.5)
cout<<"El Alumno(a) aprobo con:"<<promf<<endl;
else
cout<<"El Alumno(a) desaprobo con:"<<promf<<endl;
}

Fundamentos de Programacin

Ing. Felix Huari Evangelista

3/8

Ejm. 25
/*Escribir un programa que solicite al usuario el ingreso de dos nmeros y luego el
operador de suma, resta, multiplicacin, divisin o resto para finalmente mostrar la
operacin bsica en cada caso
*/
#include<iostream>
using namespace std;
//Programa princiapl
int main()
{
float a,b,rpta;
int flag=1;
char operador;
cout<<"\nIngrese el Operador (+,-,*,/):";
cin>>operador;
cout<<"\nIngrese dos numeros:";
cin>>a>>b;
switch (operador)
{
case '+':rpta=a+b;break;
case '-':rpta=a-b;break;
case '*':rpta=a*b;break;
case '/':rpta=a/b;break;
default:
flag=0;
}
if(flag)
cout<<"El operador escogido es <<operador<< y la respuesta es:"<<rpta<<endl;

else
cout<<"El Operador ingresado es incorrecto";
}
Ejm. 26
/* Programa que calcula el muestra del rombo, pendiente de una recta, ecuacin de la recta
y el carcter dado el codigo ASCII */
#include<iostream>
#include<math.h>
using namespace std;
//Programa princiapl
int main()
{
float x1,x2,y1,y2,lado,d,D,Arombo,m;
Fundamentos de Programacin

Ing. Felix Huari Evangelista

4/8
unsigned int op,n;
cout<<"Menu Principal\n";
cout<<"-------------\n";
cout<<"1.Area del Rombo\n";
cout<<"2.Pendiente de una recta\n";
cout<<"3.Ecuacion de la Recta\n";
cout<<"4.Muestra el Carcter dado el Ascii\n";
cout<<"5.Fin\n";
cout<<"\nDigite su opcion (1-5)=>";
cin>>op;
/* Seleccionando la opcion correcta */
switch(op)
{
case 1:cout<<"Ingrese la longitud del lado:";cin>>lado;
cout<<"Ingrese las coordenadas del primer punto opuesto:";
cin>>x1>>y1;
cout<<"Ingrese las coordenadas del segundo punto opuesto:";
cin>>x2>>y2;
// el area viene dado por: area=D*d/2
d=sqrt(pow((x2-x1),2)+pow((y2-y1),2));
D=sqrt(pow(lado,2)-pow((d/2),2));
D=2*D;
Arombo=D*d/2;
cout<<"El Area del rombo es:"<<Arombo<<endl; break;
case 2:
cout<<"Ingrese las coordenadas del primer punto:";
cin>>x1>>y1;
cout<<"Ingrese las coordenadas del segundo punto:";
cin>>x2>>y2;
m=(y2-y1)/(x2-x1);
cout<<"La pendiente de la recta que pasa por
(<<x1<<,<<y1<<) y (<<x2<<,<<y2<<) es:<<m<<endl;
break;
case 3:
cout<<"Ingrese las coordenadas del primer punto:";
cin>>x1>>y1;
cout<<"Ingrese las coordenadas del segundo punto:";
cin>>x2>>y2;
m=(y2-y1)/(x2-x1);
cout<<"La ecuacion de la recta que pasa por
(<<x1<<,<<y1<<) y (<<x2<<,<<y2<<) es Y-<<
m<<*X-<<y1+mx1<<endl;
break;
case 4:

Fundamentos de Programacin

Ing. Felix Huari Evangelista

5/8
cout<<"\nMUESTRA EL CARACTER DADO EL CODIGO ASCII\n");
cout<<"\nIngrese el codigo Ascii:";
cin>>num;
cout<<num<<" corresponde al carcter "<<char(num)<<endl;
break;
case 5:
cout<<"Fin de sesion\n";
default:
cout<<"La opcion elegida es incorrecta\n";
}
}
Ejm. 27
/* Programa que suma la dgitos de un numero de 3 cifras o muestra el numero en
letras si este es menor que 10 */
#include<iostream>
using namespace std;
//Programa princiapl
int main()
{
unsigned int num,n1=0,n2=0,numero;
cout<<"Ingrese un numero [1-1000]:");
cin>>num;
if(num>1000)
cout<<"No acepto numeros mayores que 1000..?";
else if(num<10)
{
cout<<"Ingreso el <<num<< y en letras es ";
switch(num)
{
case 1:cout<<"Uno\n";break;
case 2:cout<<"Dos\n";break;
case 3:cout<<"Tres\n";break;
case 4:cout<<"Cuatro\n";break;
case 5:cout<<"Cinco\n";break;
case 6:cout<<"Seis\n";break;
case 7:cout<<"Siete\n";break;
case 8:cout<<"Ocho\n";break;
case 9:cout<<"Nueve\n";
}
}
else
{
numero=num;
n1=num%10;
num=num/10;

Fundamentos de Programacin

Ing. Felix Huari Evangelista

6/8
n2=num%10;
num=num/10;
cout<<"El numero ingresado es <<numero
<< y la suma de sus dgitos es:"<<n1+n2+num<<endl;
}
}

Fundamentos de Programacin

Ing. Felix Huari Evangelista

7/8

PROBLEMAS PROPUESTOS
1. Dado 2 vrtices de un triangulo equiltero, escribir un programa que permita
calcular la coordenada del tercer vrtice.
2. Escribir un programa que permita leer 4 puntos correspondientes a un
cuadriltero para luego demostrar que forman un cuadrado en cuyo caso
indicar cuanto vale el lado y el rea correspondiente. De no ser as, emita
un mensaje de que no forman un cuadrado.
3. Escribir un programa que permite leer el lado de un rombo y las
coordenadas de los dos vrtices opuestos para luego calcular el rea del
rombo.
4. Escribir un programa que permita determinar si dos rectas son paralelas o
perpendiculares sabiendo que se ingresa como datos las coordenadas de 2
puntos por cada recta. En cada caso emitir el mensaje adecuado.
5. Se tiene 2 puntos que pertenecen a una recta y un tercer punto que no
pertenece a la recta, escribir un programa que permita hallar la distancia de
este ultimo a la recta.
6. Escribir un programa que permite determinar el ngulo que forma 2 rectas,
adems indicar si dicho ngulo es obtuso o agudo, en cada caso emitir un
mensaje adecuado. Para ello debe ingresar como datos 2 puntos por cada
recta.
7. Un distribuidor de material elctrico vende alambres en rollos de 500, 300 y
75 pies. Elabore el programa que solicite al usuario la longitud total de
alambre en pies que se requiere, y enve como resultado el nmero de
rollos de alambre de 500, 300 y 75 pies y el nmero de pies de alambre
que sobra o falta para completar un rollo. La longitud total del alambre debe
ser positivo, de no ser as, emita un mensaje y termina el programa.
8. Escribir un programa que acepte como ingreso dos fechas en formato dia,
mes y ao, en base a este determinar cual de las fecha es mas reciente.
9. Dado 4 nmeros enteros, donde los 2 primeros pares corresponden al
primer numero fraccionario y el segundo par al segundo numero. Se pide
escribir un programa que muestra los 2 nmeros y adems la suma.
Ejemplo (8/5 + 1 /6 = 53/30). Si el denominador de alguna de las fracciones
es 0, mostrar el mensaje de Error en entrada de datos.
10. Los trabajadores de la empresa Topy Top laboran 3 turnos rotativos, se
desea determinar el sueldo semanal total que percibe un trabajador, para
ello se cuenta con los siguientes datos: numero de horas trabajadas, tarifa
normal por hora trabajada (deben ser positivos) y el turno en que labora (1.
maana 7:00 am-3:00 p.m, 2. tarde 3:00 p.m. 11:00 p.m., 3. nocturno
11:00 p.m. 7.00 a.m.). A los trabajadores que laboran en los 2 ltimos
turnos tienen una tarifa especial por hora trabajada como sigue. Turno tarde
un 2.5% mas que la tarifa normal, mientras que el turno nocturno un 4.5%
mas que la tarifa normal. El trabajador que labora en el turno tarde tiene un
incentivo extra de S/.20.00, en cambio el que labora en el ultimo turno el
incentivo es de S/. 75.00. Elabore un diagrama de flujo.

Fundamentos de Programacin

Ing. Felix Huari Evangelista

8/8
11. Escribir un programa que permita el ingreso de un numero entero positivo a
lo mas de 2 dgitos, para luego escribir dicho numero en numeracin
romana.
12. Escribir un programa que permita el ingreso de un numero entero positivo
mayor que 10 y menor que 1000, para luego escribir la suma de los dgitos
que conforma dicho numero.
13. Escribir un programa que permita el ingreso del numero de mes para luego
mostrar la estacin a la que pertenece. Suponga que cada tres meses
completos hay cambio de estacin.
14. Elabore el programa para determinar el dgito mayor de un nmero entero
positivo menor o igual que 1000.
15. Escribir un programa que permita el ingreso de una fecha en el formato
dd/mm/aaaa, para luego escribir la fecha del da siguiente, por ejemplo si
fecha actual es 28/05/2001, la fecha del da siguiente es 29/05/2001. Debe
contemplar si el ao es bisiesto o no.
16. Se tiene el precio de lista y precio de venta de un determinado producto,
donde este ultimo puede ser mayor que el primero o menor. Si es mayor
quiere decir que hemos vendido por encima del precio de lista sugerido, en
cuyo caso se adicionara 1% a la tasa de comisin calculada, si es menor
quiere decir que hemos hecho el descuento. Se pide escribir un programa
que permita calcular la tasa de comisin que debe corresponder de acuerdo
a la siguiente tabla:
Dscto(%)
tasa comisin(%)
25-30
1%
20-25
2%
15-20
4.5%
10-15
6%
1-10
7.5%
0
10%

Fundamentos de Programacin

Ing. Felix Huari Evangelista

Das könnte Ihnen auch gefallen