lunes, 28 de mayo de 2012

Practicas 13.


Problema 1.
Programa que acepta hasta 10 números y que calcula las siguientes funciones estadísticas: media geométrica,media armónica,intervalo,desviación estándar y varianza.
Pseudo-codigo:


A[10],D[10]  real
N,i  int
print "Numero de datos: "
read N
introducedatos(A,N)
print "\nMedia geometrica = ",mediageometrica(A,N)
print "Media armonica = ",mediaArmonica(A,N)
print "Intervalo = ",intervalo(A,N)
print "\nDesviaciones estandar:\n"
desviacionEstandar(A,N,D)
for(i=0 to N-1 step i=i+1){
print "Desviacion Estandar ",(i+1)," = ",D[i] }
print "\nVarianza = ",varianza(D,N)}
Fin programa principal.




Practicas 12.


Problema 1.
Programa  para introducir  10 numeros  enteros en un areglo llamado emax y encuentre  el maximo y minimo de los valorores introducidos. 
Pseudo-codigo:
Inicio
void emax(entero num[10])entero valormaximo(entero  Num[10])entero valorminimo(entero Num[10]){entero Num[10],nemax(Num)print"El dato mayor es =  ",valormaximo(Num)print"El dato menor es =  ",valorminimo(Num)-Fin del programa void emax(entero  Num[10]){entero n;print"Introduce  10 datos " for(n=0; n<10;n=n+1){print"",(n+1),".-Dato","= "read Num[n]}}entero  valormaximo(entero  Num[10]){entero mayor=Num[1];for(entero  n=0 to  n<10 step n=n+1){if(Num[n]>mayor){mayor=Num[n]}}return mayor}entero valorminimo(entero  Num[10]){entero  menor=Num[1]for(entero  n=0 to  n<10 step n=n+1){if(Num[n]<menor){menor=Num[n]}}return menor}




Problema 2.
a) Programa  que  especifique  tres  arreglos  unidimencionales  denominados corriente , resistencia  y voltios .Cada arreglo debe de ser capaz de almacenar diez  elemento
Pseudo-codigo:
Inicio
void lecturaDatos(Real a[10]);
void calcularVoltaje(Real c[10],real  r[10],real v[10]);
void desplegarDatos(Real c[10],real  r[10],real  v[10]);
real sumaD(float a[10]);
 
real  corriente[10],resistencia[10],voltios[10];
 print"CORRIENTE ELECTRICA\n";
 lecturaDatos(corriente);
 print"RESISTENCIA ELECTRICA "
 lecturaDatos (resistencia);
 calcularVoltaje(corriente,resistencia,voltios)
 desplegarDatos(corriente,resistencia,voltios)
Fin
void lecturaDatos(real a[10])
 {
entero i=0;
print"Introduce los datos sabiendo que la corriente esta en unidad AMPERE"<<endl;
print"y la resistencia electrica en unidad OHM  \n\n" <<endl;
 
 for(i=0 to i<10 step i=i+1)
 {
print"Datos ",(i+1),"= "
read a[i];
 }}
void calcularVoltaje(float c[10],float r[10],float v[10])
 {int i=0;
 for(i=0;i<10;i=i+1)
 {
 v[i]=c[i]*r[i]
 }}
real  sumaDatos(float a[10])
 {
real  suma=0.0;
entero i=0;
 for(i=0 to i<10step i=i+1)
 {
 suma=suma+a[i]
 }
return suma
}
 void desplegarDatos(real  c[10],real t r[10],real  v[10])
 {
entero i=0;
print"Corriente Resistencia Voltaje"
 for(i=0  to i<10 step i=i+1)
 {
 print,c[i]," "<<r[i]," "<<v[i]
 }
print"total:"sumaDatos(c)" "sumaDatos(r)," "<<sumaDatos(v)
}

Problema 2.
b) Escriba un programa que almacene  10 valores  en un arreglo llamado  resistencia , El  programa  tambien debe de crear  2 arreglos llamados  corriente  y potencia , los  cuales deberan ser capaces de alamacenar 10 valores.
Pseudo-codigo:
Inicio
 void lecturaDatos(real a[10]);
 void calcularPotencia(real c[10],real  r[10],real p[10])
 void desplegarDatos(real  c[10],real  r[10],real  p[10])
 float sumaDatos(real  a[10])
 int main()
 {
real  corriente[10],resistencia[10],potencia[10];
print"CORRIENTE ELECTRICA"
 lecturaDatos(corriente)
print"RESISTENCIA ELECTRICA"
 lecturaDatos(resistencia)
 calcularPotencia(corriente,resistencia,potencia)
 desplegarDatos(corriente,resistencia,potencia)
Fin
 }
 void lecturaDatos(real  a[10])
 {
entero i=0;
print"Introduce los datos sabiendo que la corriente electrica se mide en AMPERES"
print"y la resistencia electrica se mide en OHMs"
 for(i=0 to i<10 step i=i+1)
 {
print"Datos ",(i+1),"= "
read a[i]
 }
 }
 void calcularPotencia(real  c[10],real  r[10],real p[10])
 {
entero i=0;
 for(i=0 to i<10 step i=i+1)
 {
 p[i]=c[i]*c[i]*r[i]
 }
 }
real sumaDatos(real  a[10])
 {
real  suma=0.0;
entero  i=0;
 for(i=0 to i<10 step i=i+1)
 {
 suma=suma+a[i]
 }
return suma
}
 void desplegarDatos(real c[10], real  r[10],real  p[10])
 {
entero  i=0;
print"Corriente Resistenci Potencia"
 for(i=0 to i<10 step i=i+1)
 {
 print c[i]""<<r[i]<<""p[i]
 }
print"total:",sumaDatos(c),""sumaDatos(r)""sumaDatos(p);
}

Problema 4.
Haga un programa  para converciones de  divisas  de las  siguientes  monedas , Dolar Americano , Euro, Yen Japones , Yuan Chino , Peso Mexicano .Utilice funciones.
Pseudo-codigo:
-Inicio
Real VentaDolar(float v[4], float dolares, int i)
Real CompraDolar(float c[4], float dolares, int i)
 void MenuMonedas()
 void MenuPrincipal()
 {
Entero m1,m2,c;
Entero cantidad,venta[4],compra[4]
 do
{
 MenuPrincipal()
read m1;
 switch(m1)
 {
 case 1:
 print"Venta Dolar por Euro: "
read venta[0]
 print"Venta Dolar por Yen: "
 cin>>venta[1]
 cout<<"Venta Dolar por Yuan: "
read venta[2]
 print"Venta Dolar por Pesos: "
read venta[3]
 print"Regrasar al menu(1) salir(0): "
read  c
 system ("cls")
 break
 case 2:
 print"Compras de Euro a Dolar: "
read compra[0]
 print"Compras de Yen a Dolar: "
 read compra[1]
 print"Compras de Yuan a Dolar: "
read compra[2];
 print" Compras de Pesos a Dolar: "
 read  compra[3]
 print"Regrasar al menu(1) salir(0): "
read c
 system ("cls")
 break
 case 3:
 MenuMonedas()
 print"Introducir cantidad de dolares a convertir: "
read cantidad
 print"eleccionar la divisa que desea: "
read m2
  system ("cls")
 switch(m2)
 {
 case 1:
 print"Dolar a Euro"
 VentaDolar(venta,cantidad,0)
 CompraDolar(compra,cantidad,0)
 print"La cantidad de ",cantidad," dolares:"
 print"nVenta ",VentaDolar(venta,cantidad,0)," Euros
 print"Compra ",CompraDolar(compra,cantidad,0)," Euros
 print"Regrasar al menu(1) salir(0): "
read c
  system ("cls")
 break
case 2:
  print""Dolar a Yen"
 VentaDolar(venta, cantidad,1)
 CompraDolar(compra, cantidad,1)
  print"La cantidad de ",cantidad," dolares:"
  print"Venta  ",VentaDolar(venta, cantidad,1)," Yens
 print"Compra ",CompraDolar(compra, cantidad,1)," Yens
 print"Regrasar al menu(1) salir(0): "
read c
system ("cls")
  break
 case 3:
 print"Dolar a Yuan"<<endl;
 VentaDolar(venta,cantidad,2)
 CompraDolar(compra,cantidad,2)
 print"La cantidad de ",cantidad," dolares:"
 print"venta ",VentaDolar(venta,cantidad,2)" 
 print"compra ",CompraDolar(venta,cantidad,2)," Yuans
 print"Regrasar al menu(1) salir(0): "
read c
  system ("cls")
 break
 case 4:
 print"Dolar a Pesos"
  print"La cantidad de ",cantidad," dolares:"
  print"Venta ",VentaDolar(venta,cantidad,3)," Pesos"
 print"Compra  ",CompraDolar(compra,cantidad,3)," Pesos;
 print"Regrasar al menu(1) salir(0): "
read c
 system ("cls")
 break
 }
 break
 }
 }
while(c==1)
-Fin 
 }
 void MenuPrincipal()
 {
  print"1)Inicializar compra de monedas."
  print"2)Inicializar venta de monedas."
  print"3)Convercion de monedas."
 print"4)Fin del programa "
 print
 print"Eliga la transaccion "
}
 void MenuMonedas()
 {
 print"Diferentes  divisas"
 print
 print"1) Euros"
  print"2) Yen "
 print"3) Yuan"
 print"4) Pesos Mexicanos"<<endl
print
 print"Tipo de moneda: "
 }
 float VentaDolar(float v[4], float dolares, int i)
 {return dolares*v[i]
 }
 float CompraDolar(float c[4], float dolares, int i)
 {
 return dolares*c[i]
 }

Problema 5.
a)Escriba una plantilla llamada funcion  pantalla() que despliegue el valor  de un argumento unico que se le trnsmita el llamar la  funcion
b)Escriba una plantilla de funcion llamado maximo() que encuentre el valor maximo cuando se ingtresan  3  datos 
c)Escriba una  funcion que  calcule  el cuadrado de un numero ingresado
d)Escriba una funcion llamada entero que   encuentre el numero entero al ingresar un numero decimal.
Pseudo-codigo:
-Inicio
template <class T>
void pantalla(T valor)
template <class T>
T maximo(T n1, T n2, T n3)
template <class T>
T cuadrado(T numero)
template <class T>
Entero  (T numero)
{real  valor,d1,d2,d3
print"A) "
print"Introsca un dato= "
read valor
print"Valor= "
pantalla(valor)
print"B)"
print"Introduce 3 datos= "
print"1.- "
read d1
print"2.- "
read d2
print"3.- "
read d3
print,Dato mayor= ",maximo(d1,d2,d3)
print"C)"
print"Introduce un valor= "
read valor
print"Su cuadrado es =",cuadrado(valor)
print"D)"
print"Introduce un numero con punto decimal = "
read valor
print"su entero es= ",entero(valor)
-Fin
}
 
template <class T>
void pantalla(T valor)
{
print valor
}
 
template <class T>
T maximo(T n1,T n2,T n3)
{
if (n1>n2&&n1>n3){return n1
}
else
{
if (n2>n1&&n2>n3){return n2
}
else
{
return n3
}}}
template <class T>
T cuadrado(T num)
{
return num*num
}
 
template <class T>
int entero(T num)
{
return int(num)
}






Practicas 11


Programa 1.


Programa para calcular el área de un circulo, área y perimetro de un cuadrado y un rectángulo.
El usuario elige la acción a realizar. Uso de funciones sin parametros y sin devolver ningún valor.
Pseudo-codigo:
Inicio Funcionesvoid ImprimirMenu(){
print "Opciones del menu:   "
print "1)Area de circulo"
print "2)Area y perimetro cuadrado"
print "3)Area y perimetro Rectangulo"
print "Selecciona opcion:   "}
void CalcularAreaCirculo(){
radio,area  realprint "Calculo Area de Circulo"print "Radio Circulo:   "read radioarea=3.1416*radio*radioprint "Area Circulo = ",area}
void AreaCuadrado(){
lado,área  real
print "Calculo Area Cuadrado"
print "Lado cuadrado:   "
read lado
area=lado*lado
print "Area cuadrado:   ",area}
void PerimetroCuadrado (){
lado,perímetro  real
print "Calculo Perimetro Cuadrado"
print "Lado:   "
read lado
perimetro=4*lado
print "Perimetro = ",perimetro}
void AreaRectangulo(){
base,altura,área  real
print "Calcular Area Rectangulo"print "Base:   "read baseprint "Altura:   "
read altura
area=base*altura
print "Area rectangulo = ",area}
void PerimetroRectangulo(){
base,altura,perímetro  real
print "Calcular Perimetro Rectangulo"
print "Base:   "
read baseprint "Altura:   "read alturaperimetro=2*(base+altura)
print "Perimetro Rectangulo = ",perimetro}
Inicio Programa {
Opción  int
Sigue  char
do{
ImprimirMenu()
read opcion
switch(opcion){
case 1:   CalcularAreaCirculo()
break
case 2:   AreaCuadrado()
PerimetroCuadrado()
break
case 3:   AreaRectangulo()
PerimetroRectangulo()
break
default:   print "Error en opcion"}
print "Desea hacer otro calculo (s/n)? "
read sigue}
while(sigue=='s' or sigue=='S')}
Fin.
Problema 2.
Programa para calcular el área de un circulo, área y perimetro de un cuadrado y un rectángulo.
El usuario elige la acción a realizar. Uso de funciones con parametros y sin devolver ningún valor.
Pseudo-codigo:
Inicio Funciones
void ImprimirMenu(){
print "Opciones del menu:   "
print "1)Area de circulo"
print "2)Area y perimetro cuadrado"
print "3)Area y perimetro Rectangulo"
print "Selecciona opcion:   "}
void CalcularAreaCirculo(real radio){
area  realarea=3.1416*radio*radioprint "Area Circulo = ",area}void AreaCuadrado(real lado){
area  real
area=lado*lado
print "Area cuadrado:   ",area}
void PerimetroCuadrado (real lado){
perímetro  real
perimetro=4*lado
print "Perimetro = ",perimetro}
void AreaRectangulo(real base,real altura){
area  realarea=base*alturaprint "Area rectangulo = ",area}void PerimetroRectangulo(real base,real altura){
perímetro  real
perimetro=2*(base+altura)
print "Perimetro Rectangulo = ",perimetro}
Inicio Programa {
opción  int
sigue  char
radio,lado1,lado2  real
do{
ImprimirMenu()read opcionswitch(opcion){
case 1:   print "Calculo Area de Circulo"
print "Radio Circulo:   "
read radio
CalcularAreaCirculo(radio)
break
case 2:   print "Calculo Area y Perimetro Cuadrado"
print "Lado cuadrado:   "
read lado1
AreaCuadrado(lado1)
PerimetroCuadrado(lado1)
break
case 3:   print "Calcular Area y Perimetro Rectangulo"
print "Base:   "
read lado1
print "Altura:   "
read lado2
AreaRectangulo(lado1,lado2)
PerimetroRectangulo(lado1,lado2)
break
default:   print "Error en opcion"}
print "Desea hacer otro calculo (s/n)? "
read sigue}
while(sigue=='s' or sigue=='S')}
Fin.


Problema 3.
Programa para calcular el área de un circulo, área y perimetro de un cuadrado y un rectángulo.
El usuario elige la acción a realizar. Uso de funciones con parametros y que entregan un valor.

Pseudo-codigo:
Inicio Funciones
real ImprimirMenu(){
opción int
print "Opciones del menu:  "
print "1)Area de circulo"
print "2)Area y perimetro cuadrado"
print "3)Area y perimetro Rectangulo"
print "Selecciona opcion:  " read opcion
return opcion}
real CalcularAreaCirculo(real radio){
area  realarea=3.1416*radio*radioreturn area}
real AreaCuadrado(real lado){
area  real
area=lado*lado
return area}
real PerimetroCuadrado (real lado){
perímetro  real
perimetro=4*lado
return perimetro}
real AreaRectangulo(real base,real altura){
area  realarea=base*alturareturn area}
real PerimetroRectangulo(real base,real altura){
perímetro  real
perimetro=2*(base+altura)
return perimetro}
Inicio Programa {
opción  int
sigue char
radio,lado1,lado2,area,perímetro  real
do{
opcion=ImprimirMenu()
switch(opcion){
case 1:  print "Calculo Area de Circulo"
print "Radio Circulo:  "read radioarea=CalcularAreaCirculo(radio)print "Area Circulo = ",areabreak
case 2:  print "Calculo Area y Perimetro Cuadrado"
print "Lado cuadrado:  "
read lado1
area=AreaCuadrado(lado1)
print "Area cuadrado:  ",area
perimetro=PerimetroCuadrado(lado1)
print "Perimetro = ",perimetro
break
 case 3:  print "Calcular Area y Perimetro Rectangulo"
print "Base:  "read lado1
print "Altura:  "read lado2
area=AreaRectangulo(lado1,lado2)
print "Area rectangulo = ",area
perimetro=PerimetroRectangulo(lado1,lado2)
print "Perimetro Rectangulo = ",perimetro
break
default:  print "Error en opcion"}
print "Desea hacer otro calculo (s/n)? "
read sigue}
while(sigue=='s' or sigue=='S')}
Fin.




Programa 4.
Programa que utiliza una función que tiene un argumento de tipo entero quedevuelve la letra P si el número es positivo, y N si el número es negativo.Una función lógica de 2 argumentos enteros que devuelve true si uno divide alotro y false en caso contrario. Y una función lógica vocal que determina si uncaracter es una vocal.
Pseudo-codigo:
Inicio funciones
bool digito(char dig){if(dig>='0' and dig<='9') {return true}
else {return false  }}
bool Vocal (char Ch){if(Ch=='a' or Ch=='A' or Ch=='e' or Ch=='E' or Ch=='i' or Ch=='I' or Ch=='o' or Ch=='O' or Ch=='u' or Ch==U') {return true}
else {return false}}
char NumPosNeg(int Num){if(Num>0) {return 'P'}
else {return 'N'}}
float Conver_Temp (float c){
return 1.8*c+32}
Inicio Programa {dig,Ch  charNum  intprint "Esta funcion devuelve un true si el caracter introducido es un digito",print "del 1 al 9, y un false en caso contrario",print "Caracter:    "read digprint digito(dig)print "Esta funcion devuelve P si el numero introducido es positivo"print "y un false en caso contrario"print "Numero:    "read Numprint NumPosNeg(Num)
print "Esta funcion devuelve un true si el caracter introducido es una vocal”print "y un false en caso contrario"print "Caracter:   "read Chprint Vocal(Ch)   print "Esta funcion convierte una temperatura en grados celsius a fahrenheit"print "Grados celsius: "read cprint "Grados fahrenheit: ",Conver_Temp (c)  }Fin.