martes, 16 de octubre de 2012

Practica 7

Problema 1

Diseñe un programa que lea por teclado el nombrea de un trabajador, categoria y sueldo, calcule el aumento correspondiente teniendo en cuenta la siguiente tabla.
categoria   aumento:
1   8%, 2   7%, 3   8%, 4   5%, 5   5%.
Despliegue el nombre del trabajador, el sueldo actual y el sueldo aumentado. Utilice un ciclo de repeticion para desplegar el total de la nomina con sueldo actual y total de la nomina con sueldo aumentado.
Pseudocodigo:
1-Inicio
continuar,nombre[20] char
categoria int
sueldo,sueldoa,nomina_sa,nomina_saum real
do
{
print "nombre empleado: "
read nombre;
print "sueldo actual: "
read sueldo
 do
 {
 print "categoria: "
 read categoria
  switch(categoria)
  {
  case 1:
  case 3:sueldoa=sueldo*1.08
  break
  case 2:sueldoa=sueldo*1.07
  break
  case 4:
  case 5:sueldoa=sueldo*1.05
  break
  default:
   {
   print "error en categoria"
   categoria=0
   }
  }
 }
 while(categoria==0)
 nomina_sa=nomina_sa+sueldo
 nomina_saum=nomina_saum+sueldoa
 print "nombre empleado: ",nombre
 print "sueldo actual: ",sueldo
 print "sueldo aumentado: ",sueldoa
 print "desea continuar (s,n): "
 read continuar
}
while(continuar=='s' or continuar=='S')
fin

 Codigo C++



 Problema 2

El costo de las llamadas telefonicas internacionales depende d la zona geografica en la que se encuentra el pais destino y del numero de minutos hablados. En la siguiente tabla se presenta el costo del minuto por zona. A cada zona se le ha asociado una clave:

Clave    Zona                             Precio
15         America del  norte           3.5

17         America central               4.25

18         America del sur               4.50

20         Europa                           5.50

21         Asia                               6.30

25         Africa                             7.25

29         Oseania                         5.75  
Pseudocodigo
  
Inicio
continuar = 's' Caracter
while(continuar = = 's' OR continuar = = 'S')
{
zona = 0 Entero
minutos = 0.0, costo = 0.0 Real
do
{
Print "**************************************"
Print , "Introduzca los minutos transcurridos: "
Read minutos
Print "Introduzca la zona: "
Read zona
switch(zona)
{
case 15: costo = minutos * 3.5
break
case 17: costo = minutos * 4.25
break
case 18: costo = minutos * 4.50
break
case 20: costo = minutos * 5.50
break
case 21: costo = minutos * 6.30
break
case 25: costo = minutos * 7.25
break
case 29: costo = minutos * 5.75
break
default: zona = 0
Print "#VALOR NO RECONOCIDO#"
Print
Print
}
if(zona NOT 0)
{
Print , "El costo por llamada es ", costo
}
}
while(zona = = 0)
Print , "Desea repetir el programa: s/n "
Read continuar
}
Fin

Codigo C++




 Problema 3

 Calcule la siguiente seriae para N valores

1/2 + 2/2^2 + 3/2^3 + 4/2^4 + ...n/2^n.

Pseudocodigo

Inicio
continuar = 's' Caracter
n Entero
while(continuar = = 'S' OR continuar = = 's')
{
float suma1 = 0.0, cont = 1.0
Print "N valores? "
Read n
do
{
Print cont, "/", "2^", cont
if(cont NOT n)
{
Print " + "
}
if(cont = = n)
{
Print " = "
}
suma1 = suma1 + (cont/pow(2.0,cont))
cont = cont + 1
}
while(cont <= n)
Print suma1
Print , "Desea repetir el programa?: s/n "
Read continuar
}
Fin


Codigo C++



 Problema 4


Una serie aritmetica se define por

a + (a+d) + (a+2d) + (a+3d) + ... (a+(n-1)d)

donde a es el primer termino, d es la diferencia conum y n es el numero de terminos que se van a sumar. Usando esta informacion , escriba un programa que use un ciclo while para desplegar cada termino y para determinar la suma de una serie geometrica  si se tiene a=1, d=5, n=20. Asegurese que su programa despliegue el valor que ha calculado.


Pseudocodigo

Inicio
continuar = 's' Caracter
while(continuar = = 's' OR continuar = = 'S')
{
//Para calcular n terminos se le resta 1, ej. (20-1) para calcular 20 terminos.
a = 1, d = 5, n = 19, cont = 0, suma = 0 Entero
do
{
Print "(a + ", cont, "d)"
if(cont < n)
{
Print " + "
}
if(cont = = n)
{
Print " = "
}
suma = suma + (a + (cont * d))
cont = cont + 1
}
while(cont <= n)
Print suma
Print , "Desea repetir el programa?: s/n "
Read continuar
}
Fin
  
Codigo C++
 
Problema 5
Escriba un programa que calcule la suma de los 50 primeros numeros enteros.
Pseudocodigo
Inicio
continuar = 's' Caracter
while(continuar = = 's' OR continuar = = 'S')
{
suma = 0, cont = 1 Entero
do
{
Print cont
if(cont < 50)
{
Print " + "
}
if(cont = = 50)
{
Print " = "
}
suma = suma + cont
cont = cont + 1
}
while(cont <= 50)
Print suma
Print, "Desea repetir el programa?: s/n "
Read continuar
}
Fin
  

Codigo C++
 Problema 6
Supongase que en una reciente eleccion hubo tres candidatos (con identificadores 1,2,3). Usted habra de encontrar, mediante un programa el numero de votos correspondiente a cada candidato y el porcentaje que obtuvo respecto al total de los votantes. El usuario tecleara los votos de manera desorganizada, tal y como se obtuvieron  en la eleccion, el final de datos esta reprecentado por un cero. Observe, como por ejempl, la siguiente lista: 1 3 1 3 2 2 1 1 1 1 1 2 1 3 1 3 2 1 3 3 1 0.
 Pseudocodigo 

Inicio
continuar = 's' caracter
while(continuar = = 's' OR continuar = = 'S')
{
num = 1 Entero
num1 = 0.0, num2 = 0.0, num3 = 0.0 Real
Print "*******************"
do
{
Print "Introduzca voto: "
Read num
switch(num)
{
do
{
case 0:
break
case 1: num1 = num1 + 1
break
case 2: num2 = num2 +1
break
case 3: num3 = num3 + 1
break
default: Print "**Error: Candidato no reconocido**"
}
while(num NOT 0)
}
}
while(num NOT 0)
Print , "Total de votos = ", num1 + num2 + num3
Print , "Votos del candidato 1 = ", num1
Print , "Votos del candidato 2 = ", num2
Print , "Votos del candidato 3 = ", num3
Print , "Porcentaje de votos"
Print , "Porcentaje del candidato 1 = ", (num1/(num1 + num2 + num3))*100, " %"
Print , "Porcentaje del candidato 2 = ", (num2/(num1 + num2 + num3))*100, " %"
Print , "Porcentaje del candidato 3 = ", (num3/(num1 + num2 + num3))*100, " %"
Print , "Desea repetir el programa: s/n "
Read continuar
}
Fin

Codigo C++

martes, 9 de octubre de 2012

Practica 6

Problema 1

En una tienda efectuan un descuento a los clientes dependiendo del monto de la compra. El descuento se efectua con base en el siguiente criterio. Si el monto es menor que 500 no hay descuento, si el monto esta comprendido entre 500 y 1000 el descuento es 3%, si el momto esta entre 1001 y 7000 el descuento es 6%, si el monto esta comprendido entre 7001 y 15000 el descuento es 12%, si es mayor a 15000 el descuento es 20%. Construya un programa que considere 5 articulos, sus precios respectivos y la cantidad dada por teclado. Despliege los roductos, su precio, la cantidad y subtotal de cada producto comprado y calcular el subtotal y mostrar el descuento y total a pagar.
Pseudocodigo
Inicio
p1=25.5,p2=34.0,p3=49.60,p4=72.5,p5=89.2,subtotal,descuento,total   Real
c1,c2,c3,c4,c5   Int
continuar = 's'   caracter
while(continuar == 'S' OR continuar == 's')
{
Print "cantidad de lentes de sol = "
Read c1
Print "cantidad de camisetas = "
Read c2
Print "cantidad de camisas = "
Read c3
Print "cantidad de pantalones = "
Read c4
Print "cantidad de sudaderas = "
Read c5
Print "", "Producto", " ", "Precio", " ", "cantidad", " ", "Subtotal", ""
if(c1>0)
{
Print "lentes de sol", " ", p1, " ", c1, " ", (c1*p1)
}
if(c2>0)
{
Print "camiseta", " ", p2, " ", c2 , " ", (c2*p2)
}
if(c3>0)
{
Print "camisa", " ", p3, " ", c3, " ", (c3*p3)
}
if(c4>0)
{
Print "pantalon", " ", p4, " ", c4, " ", (c4*p4)
}
if(c5>0)
{
Print "sudadera", " ", p5, " ", c5, " ", (c5*p5)
}
subtotal=(c1*p1)+(c2*p2)+(c3*p3)+(c4*p4)+(c5*p5)
Print "", "Subtotal= ", subtotal
if(subtotal<500.0)
{
descuento=subtotal*0.0
}
else
{
if(500.0<=subtotal AND subtotal<=1000.0)
{
descuento=subtotal*0.03
}
else
{
if(1001.0<=subtotal AND subtotal<=7000.0)
{
descuento=subtotal*0.06
}
else
{
if(7001.0<=subtotal AND subtotal<=15000.0)
{
descuento=subtotal*0.12
}
else
{
if(15000.0<subtotal)
{
descuento=subtotal*0.20
}
}
}
}
}
Print " Descuento= ", descuento
total=subtotal-descuento
Print " Total= ", total
Print,, "Desea continuar? s/n "
Read continuar
Print
}
Fin

Codigo C++






Problema 2

En un cierto pais el impuesto que se debe pagar por articulo se calcula mediante la siguiente regla: los primeros 20 no causan impuesto, los siguientes 20 tienen el 30% de impuesto y el resto 40% de impuesto, pero si el costo del producto es mayor a 500, entonces en lugar del 40% se cobra el 50%. Disene un programa que lea el costo basico de un articulo y calcule su precio total (precio_total=precio_basico+impuesto).

Pseudocodigo 


Inicio
impuesto=0.0, articulo, PrecioTotal   Real
continuar='s'   Caracter
while(continuar == 's' OR continuar == 'S')
{
Print "Introduzca el costo basico del articulo: "
Read articulo
Print
if(articulo <= 20 AND articulo > 0)
{
impuesto=0.0
}
else
{
if(articulo > 20 AND articulo <= 40)
{
impuesto = .30
}
else
{
if(articulo > 40 AND articulo <= 500)
{
impuesto=.40
}
else
{
impuesto=.50
}
}
}
PrecioTotal = articulo*impuesto+articulo
Print "El costo total del articulo es = ", PrecioTotal
Print , "Desea continuar? s/n "
Read continuar
Print
}
Fin


Codigo C++
 

Problema 3

El numero de sonidos emitidos por un grillo en un minuto, es una funcion de la temperatura. Como resultado de esto, es posible determinar el nivel de temperatura haciendo uso de un grilo como termometro. La formula pra la funcion es t=n/4+40, t repreenta la temperatura en grados fahrenheit y n es el numero de sonidos emitidos por minuto. Si no emite sonido la temperatura es 0.

Pseudocodigo 

Inicio
n Entero
continuar = 's' Caracter
while(continuar == 'S' OR continuar == 's')
{
Print "Ingrese el numero de sonidos por minuto emitidos por el grillo: "
Read n
if(n<=0)
{
Print "la temperatura en fahrenheith es = 0"
}
else
{
Print "la temperatura en fahrenheith es = ", (n/4.0)+40
}
Print, "Desea repetir el programa? s/n "
Read continuar
Print
}
Fin

Codigo C++ 


Problema 4 

Construya un programa para introducir dos valores enteros en las variables P y Q , determine si los valores satisfacen la siguiente exprecion es P^5+Q^4-2P^2<680 en caso afirmativo imprima el valor  P,Q y de la exprecion.

Pseudocodigo 

Inicio
p,q,valor Entero
continuar = 's' Caracter
while(continuar == 'S' OR continuar == 's')
{
Print "Introduzca el valor P: "
Read p
Print "Introduzca el valor Q: "
Read q
valor=pow(p,5)+pow(q,4)-(2*pow(p,2))
if(valor < 680)
{
Print "Valor p = ", p,
Print "Valor q = ", q,
Print "Expresion = p^5+q^4-2p^2 = ", valor
}
else
{
Print "Valor mayor de 680"
}
Print , "Desea repetir el programa? s/n "
Read continuar
Print
}
Fin

Codigo C++ 



Problema 5

Las raices reales de la exprecion ax^2+bx+c=0 se obiene atravez de la formula x=(-b+-sqrt(b^2-4ac))/2a. Hacer un programa para calcular las raices, de la ecuacion de segundo grado.

Pseudocodigo 
 
Inicio
x, a, b, c, raiz Real
continuar = 's' Caracter
Print "Formula x = (b +- sqrt(b^2-4ac))/2a"
while(continuar == 's' OR continuar == 'S')
{
Print , "Valor a: "
Read a
if(a == 0)
{
Print , "Error: Division entre cero"
}
else
{
Print , "Valor b: "
Read b
Print , "Valor c: "
Read c
raiz = (pow(b,2))+(-4*a*c)
if(raiz < 0)
{
Print , "Error: Raiz negativa"
}
else
{
x = (-b + sqrt(raiz))/(2*a)
Print , "x1 = ", x
x = (-b - sqrt(raiz))/(2*a)
Print , "x2 = ", x
}
}
Print , "Desea continuar? s/n "
Read continuar
Print
}
Fin

Codigo C++



Problema 6 

La tolerancia de componentes criticos en un sistema se determina por la aplicacion de acuerdo con la siguiente tabla.
Exploracion espacial con tolerancia menor que 0.1%, grado militar mayor que o igual 0.1% y menor que 1%, grado comercial mayor que o igual a 1% y menor que 5%, grado de juguete mayor o igual a 5%. Usando esta informacion, escriba un programa que acepte la lectura de tolerancia de un componente y determine la especificacion que deberia asignarse al componente.

Pseudocodigo
  
Inicio
Toler Real
continuar = 's' Caracter
while(continuar == 's' OR continuar == 'S')
{
Print "Introduzca la tolerancia: "
Read toler
if(toler < 0.1)
{
Print , "Especificacion = Exploracion espacial"
}
else
{
if(toler >= 0.1 AND toler < 1)
{
Print , "Especificacion = Grado militar"
}
else
{
if(toler >= 1 AND toler < 5)
{
Print , "Especificacion = Grado comercial"
}
else
{
if(toler >= 5)
{
Print , "Especificacion = Grado de juguete mayor"
}
}
}
}
Print , , "Desea repetir el programa? s/n "
Read continuar
Print
}
Fin

Codigo C++



Problema 7

El nivel de grado de los estudiantes universitarios se determina de manera tipica de acuerdo con la siguiente tabla :  Numero de ceditos  Grado 
Menor que 48 primer grado, 48 a 64 segundo grado, 65 a 110 tercer grado, mayor de 110 ultimo grado. Usando esta informacion, escriba un programa  que acepte el numero de credito que ha completado un estudiante, determine el grado del estudiante y lo despliegue. 
 

Pseudocodigo
 
Inicio
Creditos Enteros
continuar = 's' Caracter
while(continuar == 's' OR continuar == 'S')
{
Print "Creditos: "
Read creditos
if(creditos < 48)
{
Print , "Primer grado"
}
else
{
if(creditos >= 48 AND creditos <= 64)
{
Print , "Segundo grado"
}
else
{
if(creditos >=65 AND creditos <= 110)
{
Print , "Tercer grado"
}
else
{
if(creditos > 110)
{
Print , "Ultimo grado"}}}}
Print , , "Desea repetir el programa? s/n "
Read continuar}
Fin
Codigo C++



Problema 8 

Dado N numerso enteros como dato, calcule el promedio de los valores mayor 100 y los valores menor a 100.

 Pseudocodigo

Inicio
n, contador Entero
sum1, sum2, d1, d2, num Real
continuar = 's' Caracter
while(continuar == 's' OR continuar == 'S')
{
Print "*******************",
Print "Introduzca N datos: "
Read n
contador = 1
sum1 = 0, sum2 = 0, d1 = 0, d2=0
while(contador <= n)
{
Print , "Dato ", contador, ": "
Read num
if(num > 100)
{
sum1 = sum1 + num
d1++
}
else
{
if(num < 100)
{
sum2 = sum2 + num
d2++
}
}
contador++
}
if(sum1 == 0)
{
Print , "Promedio de valores mayor a 100 = 0"
}
else
{
Print , "Promedio de valores mayor a 100 = ", sum1/d1
}
if(sum2 == 0)
{
Print , "Promedio de valores menor a 100 = 0"
}
else
{
Print , "Promedio de valores menor a 100 = ", sum2/d2
}
Print , , "Desea repetir el programa: s/n "
Read continuar
}
Fin


Codigo C++




Problema 9

Un vendedor ha hecho una series de ventas y desea conocer aquellas de $250 o menos, las mayores a 250 pero inferiores a 500, y el numero de ventas de 500 o superiores a tal cantidad. Haga un programa para que le proporcione al vendedor esta informacion despues dehaber leido los datos de entrada y desplegar cual fue la mayor numero de las ventas.

Pseudocodigo 

Inicio
continuar='s'    Caracter
ventas1=0,ventas2=0,ventas3=0   Entero
cantidad,cantidad1,cantidad2,cantidad3   Real
while(continuar=='s'  OR  continuar=='S')
{
Print "", "cantidad de la venta="
Read cantidad
if(cantidad<=250)
{
ventas1=ventas1+1
cantidad1=cantidad1+cantidad
}
else
{
if(250<cantidad AND 500<cantidad)
{
ventas2=ventas2+1
cantidad2=cantidad2+cantidad
}
else
{
if(500<=cantidad)
{
ventas3=ventas3+1
cantidad3=cantidad3+cantidad
}
}
}
Print "desea continuar (s/n)="
Read continuar
}
if(ventas2<=ventas1 AND ventas3<=ventas1)
{
Print "", "El mayor numero de ventas es de 250 o menos",
Print "cantidad= ", cantidad1
}
else
{
if(ventas1<=ventas2 AND ventas3<=ventas2)
{
Print, "El mayor numero de ventas es mayor a 250 pero menor a 500",
Print "cantidad= ", cantidad2
}
else
{
Print "", "El mayor numero de ventas es de 500 o mas",
Print "cantidad= ", cantidad3
}
}
Fin

Codigo C++



Problema 10 

Comience con cualquier entero positivo. Si es par, dividalo entre 2; si es impar, multipliquelo por 3 y areguele 1. Haga un programa que le pida un entero y le de la sucesion ULAM.

 Pseudocodigo

Inicio
continuar = 's' Caracter
sucesion, num, cociente Entero
while(continuar == 's' OR continuar == 'S')
{
Print "Introduzca numero para iniciar la conjetura ULAM: "
Read num
sucesion = num
while(sucesion NOT 1)
{
cociente = sucesion%2
if(cociente == 0)
{
sucesion = sucesion/2
Print , sucesion
}
else
{
if(cociente NOT 0)
{
sucesion = (sucesion*3) + 1
Print , sucesion
}
}
}
Print , , "Desea repetir el programa: s/n "
Read continuar
Print
}
Fin

Codigo C++



Problema 11

Escriba un programa que lea un numero entero N y calcule el resultado de la siguiente serie 1 + 1/2 + 1/3 + ... 1/N.

Pseudocodigo

Inicio
contador = 1, num, suma = 0 Real
continuar = 's' Caracter
while(continuar == 's' OR continuar == 'S')
{
Print "Introduzca numero entero: "
Read num
while(contador <= num)
{
suma = suma + (1/contador)
contador++
}
Print , "La suma de la serie 1 + 1/2 + 1/3 + ... 1/N = ", suma
Print , "Desea repetir el programa: s/n "
Read continuar
Print "********************************"
}
Fin

Codigo C++



Problema 12

Haga un programa que obtenga la suma e imprima los terminos de la siguiente serie 2, 5, 7, 10, 12, 15, 17 ... ... 1800.

Pseudocodigo
 
Inicio
continuar = 's' Caracter
while(continuar == 's' OR continuar == 'S')
{
int suma = 2, sumatotal = 0
while(suma <= 1800)
{
cout, suma,
suma = suma + 3
sumatotal = sumatotal + suma
cout, suma,
suma = suma + 2
sumatotal = sumatotal + suma
}
Print "La suma total fue ", sumatotal + 2
Print "Desea repetir el programa: s/n "
Read continuar
}
Fin

Codigo C++