martes, 30 de octubre de 2012

Practica 9

Problema 1 inciso a

Un fabricante de equipo electrico prueba cinco generadores midiendo sus voltajes de salida en tres momentos diferentes. Escriba un programa en C++ que use un ciclo anidado para introducior los resultados de prueba de cada generador y luego calcule y despliege el voltaje promedio para cada generador. Suponga los siguientes resultados de prueba de los generadores:

primer generador: 122.5, 122.7, 123.0

sefundo generador: 120.2, 127.0, 125.1

tercer generador: 121.7, 124.9, 126.0

cuarto generador: 122.9, 123.8, 126.7

quinto generador: 121.5, 124.7, 122.6


Pseudocodigo:


1-Inicio

v,vtotal=0.0,vprom real
n,x int
for(n=1 to 5 step n=n+1)
{
print "generador ",n
 for(x=1 to 3 step x=x+1)
 {
 print "voltaje",x,"= "
 read v
 vtotal=vtotal+v
 }
 vprom=vtotal/3
 print "voltaje promedio= ",vprom,"\n"
 vtotal=0.0

}

fin

Codigo C++ 



Problema 1 inciso b

Modifique el programa escrito en el ejercicio 1 inciso a para calcular y desplegar el voltaje promedio para todos los generadores.


Pseudocodigo:


1-Inicio

v,vtotal=0.0,vprom,suma_vprom=0.0,vprom_gen real
n,x int
for(n=1 to 5 step n=n+1)
{
print "generador ",n
 for(x=1to 3 step x=x+1)
 {
 print "voltaje",x,"= "
 read v
 vtotal=vtotal+v
 }
 vprom=vtotal/3
 print "voltaje promedio= ",vprom,"\n"
 suma_vprom=suma_vprom+vprom
 vtotal=0.0
}
vprom_gen=suma_vprom/5
print "\n","voltaje promedio de los generadores: ",vprom_gen

fin

Codigo C++



Problema 2
 
Vuelva  a escribir el ejercicio 1 a para eliminar el ciclo interior. Para hacer esto, tendra que introducir tres voltajes para cada generador en lugar de uno a la vez. cada voltaje debe almacenarse en su propio nombre de variable antes que se calcule el promedio.

Pseudocodigo:

1-Inicio
v1,v2,v3,vtotal,vprom real
n int
for(n=1 to 5 step n=n+1)
{
print "generador ",n
print "voltaje1= "
read v1
print "voltaje2= "
read v2
print "voltaje3= "
read v3
vtotal=v1+v2+v3
vprom=vtotal/3
print "voltaje promedio= ",vprom,"\n"
}

fin

Codigo C++



Problema 3
 
Escribir un ciclo que calcule la suma de cada tercer entero, comenzando por i=2 (es decir, calcular la suma de 2+5+8+11...) para todos los valores de i menores que 100. Escribir el ciclo de tres formas diferentes
a) utilizando while

a) utilizando while

Pseudocodigo:

1-Inicio
i=2,suma=0 int
while(i<100)
{
print i," + "
suma=suma+i
i=i+3
}
print "\n","suma= ",suma

fin

Codigo C++



b) utilizando do while

Pseudocodigo:


1-Inicio

i=2,suma=0 int
do
{
print i," + "
suma=suma+i
i=i+3
}
while(i<100)
print "\n","suma= ",suma

fin


Codigo C++



c) utilizando for

Pseudocodigo:


1-Inicio

i,suma=0 int
for(i=2 to 100 step i=i+3)
{
print i," + "
suma=suma+i
}
print "\n","suma= ",suma

fin


Codigo C++



Problema 4
 
La secuencia de Fibonacci es 0,1,1,2,3,5,8,13... donde los primeros dos terminos son 0 y 1, y cada termino a partir de entonces es la suma de los terminos precedentes: es decir Fib(n)=Fib(n-1) + Fib(n-2). Usando esta informacion, escribir un programa en C++ que calcule el enesimo numero en una secuencia de Fibonacci donde n sea introducido de manera interactiva en el programa por el usuario. Por ejemplo si n=6 el programa debera desplegar 0,1,1,2,3,5.

Pseudocodigo:

1-Inicio
n,ant=0,act=1,sig,conta int
do
{
print "numero de terminos= "
read n
 if(n==1)
 {
 print ant,","
 }
 else
 {
  if(n==2)
  {
  print ant,",",act
  }
 }
}
while(n<1)
print ant,",",act,","
for(conta=3 to n step conta=conta+1)
{
sig=ant+act
ant=act
act=sig
print act,","
}

fin
 
Codigo C++



Problema 5
Elaborar un programa que lea un valor N y el caracter y que imprima un triangulo de caracteres  como se muestra a continuacion, si el valor leido es 4 y el caracter es *.
*
**
***
****

Pseudocodigo:

1-Inicio
lineas,conta1,conta int
caracter char
print "no lineas= "
read lineas
print "caracter= "
read caracter
for(conta=1 to lineas step conta=conta+1)
{
 for(conta1=1 to conta step conta1=conta1+1)
 {
 print caracter," "
 }
print "\n"
}

fin
 
Codigo C++

 

martes, 23 de octubre de 2012

Practica 8

Problema 1

 Cierta empresa telefonica ha decidido incrementar la tarifa de la renta mensual por uso del telefono, en un 3% mensual. La terifa en abril del 2005 es de 69.00. Elaborar un programa que imprima el monto de la renta mensual en abril de 2006,2007,2008...2013.

Pseudocodigo

1-Inicio
renta=69.0,aumento real
a int
for(a=2006 to 2013 step a=a+1)
{
aumento=renta*0.03
renta=renta+aumento
print "La renta telefonica en el anio ",a," es: ",renta
}

fin

Codigo C++

 
 
Problema 2

Haga un programa para determinar e imprimir una tabla de amortizacion de un prestamo ; para ell se tienen como datos el saldo por amortizar, la tasa de intereses anual y el numero de meses que se tienen de plazo. imprimir el reporte siguiente :

Tabla de amortizacion: Saldo, interes anual, numero de meses.


mes           saldo insoluto          cuota fija          intereses          mensualidad


totales:                                       xxxxxxx            xxxxxx                xxxxxxxx


El saldo insoluto es el capital que se debe en el mes correspondiente. La cuota fija se determina dividiendo el saldo entre el numero d meses. El interes se determina mediante la aplicacion del intereses mensual sobre el saldo insoluto. La mensualidad se establece sumando la cuota fija mas el interes. Los totales son la acumulacion de la cuota fija, el interes y la mensualidad.

Pseudocodigo

 1-Inicio
saldo,intereses,meses,cuota_fija,intereses_mensual real
mensualidad,total_cuota_fija,total_intereses,total_mensualidad,intereses_mes real
mes int
print "saldo del prestamo= "
read saldo
print "intereses anual= "
read intereses
print "numero de meses= "
read meses
print "\n","mes","\t","saldo insoluto","\t","cuota fija","\t","intereses","\t","mensualidad","\n"
cuota_fija=saldo/meses
intereses_mensual=intereses/12
for(mes=1 to meses step mes=mes+1)
{
intereses_mes=saldo*intereses_mensual/100
mensualidad=cuota_fija+intereses_mes
print mes,"\t",saldo,"\t\t",cuota_fija,"\t\t",intereses_mes,"\t\t",mensualidad
saldo=saldo-cuota_fija
total_cuota_fija=total_cuota_fija+cuota_fija
total_intereses=total_intereses+intereses_mes
total_mensualidad=total_mensualidad+mensualidad
}
print "\n","totales:","\t\t",total_cuota_fija,"\t\t",total_intereses,"\t\t",total_mensualidad

fin


Codigo C++


 
Problema 3

Disene un programa para calcular y desplegar los valores de la funcion
f(x,y)=(x^2-y2)/(x^2+y^2)
para x=2,4,6,8,10   y=6,9,12,15,18,21,24

Pseudocodigo
 
Inicio
x = 0, y = 0 Entero
valor Real
for(x = 2 to 10 step x = x + 2)
{
Print , "Para valores de x = ", x
Print , "-------------------"
for(y = 6 to 24 step y = y + 3)
{
valor = (pow(x,2) - pow(y,2))/(pow(x,2) + pow(y,2))
Print , "Valor y = ", y, ". El resultado es ", valor
}
}
Fin


Codigo C++ 




 
Problema 4

El valor de e^x se puede aproximar por la suma
1+x+(x^2/2!)+(x^3/3!)+...+(x^n/n!)
Escriba un programa que tome un valor x como entrada y visualice la suma para cada uno de los valores de 1 a 15.

Pseudocodigo

Inicio
double i, j, fact, suma = 0, x
Print "Introduzca valor de X: "
Read x
for(i = 1 to 15 step i++)
{
fact = 1
for(j = 1 to i step j++)
{
fact = fact * j
}
if(i = = 1)
{
Print 1
}
Print x, "^", i, " / ", fact, "!"
suma = suma + (pow(x,i)/fact)
}
Print , "La suma total es = ", suma + 1
Fin

Codigo C++

 
Problema 5

Una serie geometrica se define por
A+Ar+Ar^2+Ar^3+.....+Ar^(n-1)
Donde A es el primer termino, r es la razon comun y n es el numero de terminos de la serie . Usado esta informacion, escriba un progrma que utilice un ciclo para desplegar cada termino y para determinar la suma de una serie geometrica. Leer por teclado el valor de A, r y n.

Pseudocodigo
 
Inicio
A, r, n Entero
Print "Introduzca la variable A: "
Read A
Print "Introduzca la variable r: "
Read r
Print "Introduzca la variable n: "
Read n
c = 0, suma = 0, i Entero
for(i = 1 to n step i++)
{
if(i = = 1)
{
Print , A,
}
else
{
Print , A, "*", "(", r, ")", "^", c, " = ", A*pow(r,c)
suma = suma + A*pow(r,c)
}
c++
}
Print , "La suma total es = ", suma + A
Fin

Codigo C++

    

Problema 6 

 Las coordenadas X y Y, como funcion del tiempo, t, de un proyectil disparado a una velocidad inicioal v en un angulo teta con respecto a la tierra estad dados por: X=v*t*coseno(angulo), Y=v*t*seno(angulo). Utilizando estas formulas, escriba un programa en c++ que despliegue una tabla de valores de X y Y para un proyectil disparado a una velocidad inicial de 500pies/seg a un angulo de 23.55 grados. La tabla debe contener valores que corresponden a un intervalo de 0 hasta 10 segundos en incrementos de 1/2 segundo.

Pseudocodigo
 
Inicio
double PI = 2*acos(0.0) Constante
t = 0, x = 0, y = 0, a = (23.55*PI)/180 Real
Print "Tiempo Resultado"
Print "======= =========",
Print " X = vtcos(a)"
for(t = 0 to 10 step t = t + 0.5)
{
x = 500.0*t*(cos(a))
Print t, "seg"
Print " X = ", x
}
Print "-----------------------"
Print " Y = vtsin(a)"
for(t = 0 t <= 10 t = t + 0.5)
{
Print fixed
y = 500.0*t*(sin(a))
Print t, "seg"
Print " Y = ", y
}
Fin

Codigo C++


 

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++