Practica No. 8

Problema No. 1
Escriba una función denominada revisar( ) que tenga 3 parámetros , el primero debe aceptar números enteros, el segundo números flotantes y el 3ero de doble precisión, el contenido de la función solo, debe mostrar los valores de los datos transmitidos de la función cuando sea llamada.

Solucion

Inicio
revisar(int a,float b,double c)
print "Valor entero ", a;
print "Valor flotante ", b
print "Valor doble ", c
Fin

Inicio
int n1
float n2
double n3
print"Valor entero=?"
read n1
print "Valor flotante=?"
read n2
print "Valor doble=?"
read n3
revisar(n1,n2,n3)
Fin

Codigo de Programacion

# include <iostream.h>
# include <conio.h>
void revisar(int a, float b, double c)
{
cout<<"valor entero=?"<<a<<endl;
cout<<"valor flotante=?"<<b<<endl;
cout<<"valor doble precision=?"<<c<<endl;
}
void main()
{
int n1;
float n2;
double n3;
cout<<"dato entero=?"<<endl;
cin>> n1;
cout<<"dato flotante=?"<<endl;
cin>> n2;
cout<<"dato doble precision=?"<<endl;
cin>> n3;
revisar(n1,n2,n3);
getch();
}
Programa Ejecutado
 


Problema No. 2

Escriba una función denominada mult ( ) que acepte como parámetros 2 números en tipo float, multiplique estos dos números y despliegue el resultado.

Solucion

Inicio
mult(float n1, float n2)
float r1
r1=n1*n2
print "La multiplicaion de ",n1,"*",n2,"=",r1
Fin

Inicio
float a,b
print "1er Numero Flotante=?"
read a
print "2do Numero Flotante=?",
read b
mult(a,b)
Fin

Codigo de Programacion

# include <iostream.h>
# include <conio.h>
void mult(float n1, float n2)
{
float r1;
r1=n1*n2;
cout<<"La multiplicacion de "<<n1<<"*"<<n2<<"="<<r1;
}
void main()
{
float a,b;
cout<<"1er numero flotante=?"<<endl;
cin>> a;
cout<<"2do numero flotante=?"<<endl;
cin>> b;
mult(a,b);
getch();
}

Programa Ejecutado
 


Problema No. 3

Escriba una función que produzca una tabla de números del 1 al 10, su valor al cuadrado y al cubo, incluye funciones en el programa.

Solucion

Inicio
tabla()
int i
print "I Cuadrado Cubo"
for(i=1 to 10 step i=i+1)
{
print i, " ", (i*i), " ", (i*i*i)
}
Fin

Inicio
tabla()
Fin

Codigo de Programacion

# include <iostream.h>
# include <conio.h>
tabla()
{
int i;
cout<<" I    cuadrado     Cubo"<<endl;
for(i=1;i<=10;i++)
{
cout<<i<<"     "<<(i*i)<<"         "<<(i*i*i)<<endl;
}
}
void main()
{
tabla();
getch();
}

Programa Ejecutado




Problema No. 4

Escriba una función denominada triangulo_rectangulo ( ) que acepte la longitud de 2 lados de un triangulo rectángulo con los argumentos a y b respectivamente. La función debe terminar y devolver la hipotenusa c del triangulo (utilizar Pitágoras).

Solucion

Inicio
float triangulo_rectangulo(int a, int b)
float c
c=sqrt((a*a)+(b*b))
return c
Fin

Inicio
entero l1,l2
print "
Lado 1 del triangulo rectangulo=?"
read l1;
print "
Lado 2 del triangulo rectangulo=?"
read l2
print "La hipotenusa es ", triangulo_rectangulo(A,B)
Fin

Codigo de Programacion

# include <iostream.h>
# include <conio.h>
# include <math.h>
float triangulorectangulo(int a, int b);

void main()
{
int l1,l2;
cout<<"Lado 1 del triangulo rectangulo"<<endl;
cin>> l1;
cout<<"Lado 2 del triangulo rectangulo"<<endl;
cin>> l2;
cout<<"El valor de la hipotenusa es "<<triangulorectangulo(l1,l2)<<endl;
getch();
}
float triangulorectangulo(int a, int b)
{
float c;
c=sqrt((a*a)+(b*b));
return c;
}

Programa Ejecutado



Practica No. 5

Diseñe una función tal que dado un parámetro x regrese el siguiente valor
1/(x^5*((e^1.432/x)-1)) (x debe ser distinto de 0)
Diseñe una función con dos parámetros y que regrese lo siguiente:
X + x^n/n-x^n+2 si x>=0 -x^n-1/n-1 + x^n+1/n+1 si x<0

Solucion

Inicio

Real funcion1(real x)
{
real valor
valor=(1.0/(pow(x,5)*((exp(1.432)/x)-1)))
return valor
}
Fin

Inicio
Real funcion2(real x, real n)
{
real valor
if(x>=0)
{
valor=x+pow(x,n)/n-pow(x,(n+2))/(n+2)
}
else
{
valor=(-pow(x,(n-1))/(n-1)+pow(x,(n+1))/(n+1))
}
return valor
}
Fin

Inicio
real x,n,v1,v2
do
{
print"x=?"
read x
}
while(x==0)
v1=funcion1(x)
print "x=?"
read x
print "n=?"
read n
v2=funcion2(x,n)
print "valor Funcion 1","\t",v1
print "valor funcion 2","\t",v2
Fin


Codigo de Programacion


# include <iostream.h>
# include <conio.h>
# include <math.h>

float funcion1(float x)
{
float valor;
valor=(1.0/(pow(x,5)*((exp(1.432)/x)-1)));
return valor;
}

float funcion2(float x, float n)
{
float valor;
if(x>=0)
{
valor=x+pow(x,n)/n-pow(x,(n+2))/(n+2);
}
else
{
valor=(-pow(x,(n-1))/(n-1)+pow(x,(n+1))/(n+1));
}
return valor;
}

void main()
{
float x,n,v1,v2;
do
{
cout<<"x=?"<<endl;
cin>>x;
}
while(x==0);
v1=funcion1(x);
cout<<"x=?"<<endl;
cin>>x;
cout<<"n=?"<<endl;
cin>>n;
v2=funcion2(x,n);
cout<<"valor Funcion 1"<<"\t"<<v1<<endl;
cout<<"valor funcion 2"<<"\t"<<v2<<endl;
getch();
}


Programa Ejecutado


Problema No. 6

Diseñe una función que genere 20 números aleatorios, otra función que muestre los números pares, otra para los impares, una función que despliegue la suma de los números aleatorios y otra que despliegue el producto


Solucion

Inicio
void prod(int numeros[20])
int i
double r
r=1
for(i=1 to 19 i=i+1)
{
r=numeros[i]*r
}
print "El producto es ", r
Fin

Inicio
void sumatoria(int numeros[20])
{
int i
double r
r=0
for(i=1 to 19 i=i+1)
{
r=numeros[i]+r
}
print "La sumatoria de los numeros es ", r
}
Fin

Inicio
void generarnumeros(int numeros [20])
{
int i
randomize()
for(i=0;i<20;i++)
{
numeros[i]=random(2000)+1
}
}
Fin

Inicio
void listadepares(int numeros[20])
{
int i
print "Listado de numeros pares "
for(i=0 to 19 step i=i+1)
{
if(numeros [i]%2==0)
{
print numeros[i], "\t"
}
}
print endl;
}
Fin

Inicio
void listaimpares(int numeros[20])
{
int i
print"Listado de impares"
for(i=0 to 19 step i=i+1)
{
if(numeros[i]%2==1)
print numeros[i], "\t"
}
print endl
Fin

Inicio
int valores[20]
generarnumeros(valores)
listadepares(valores)
listaimpares(valores)
sumatoria(valores)
prod(valores)
Fin

Codigo de Programacion

#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
void prod(int numeros[20])
{
int i;
double r;
r=1;
for(i=1;i<20;i++)
{
r=numeros[i]*r;
}
cout<<"El producto es "<<r<<endl;
}
void sumatoria(int numeros[20])
{
int i;
double r;
r=0;
for(i=1;i<20;i++)
{
r=numeros[i]+r;
}
cout<<"La sumatoria de los numeros es "<<r<<endl;
}
void generarnumeros(int numeros [20])
{
int i;
randomize();
for(i=0;i<20;i++)
{
numeros[i]=random(2000)+1;
}
}
void listadepares(int numeros[20])
{
int i;
cout<<"Listado de numeros pares "<<endl;
for(i=0;i<20;i++)
{
if(numeros [i]%2==0)
{
cout<<numeros[i]<<"\t";
}
}
cout<<endl;
}
void listaimpares(int numeros[20])
{
int i;
cout<<"Listado de impares"<<endl;
for(i=0;i<20;i++)
{
if(numeros[i]%2==1)
cout<<numeros[i]<<"\t";
}
cout<<endl;
}
void main()
{
int valores[20];
generarnumeros(valores);
listadepares(valores);
listaimpares(valores);
sumatoria(valores);
prod(valores);
getch();
}

Programa Ejecutado



Problema No. 7

Formúlese un programa para obtener los siguientes valores estadísticos para un arreglo x, compuesto de n elementos
La desviación media = i/n sumatoria de |xi-x| donde x=i/n sumatoria xi
Raíz del valor c medio= raíz i/n sumatoria xi^2
Medio armónico= n/sumatoria de (i/xi)
Intervalo (r) máximo (x1, x2,……xn)- mínimo(x1, x2,……xn)
Medio geométrico (gm)=raíz n de xi, x2,….xn.



Problema No. 8

Escriba una función llamada tiempo() que tenga un parámetro en número entero denominada segundos ,y 3 de referencia en número entero denominadas, hrs, min, seg, la función ha de convertir el numero transmitido en segundos a su equivalente en horas ,minutos y segundos, utilizando las referencias la función debe alterar directamente los argumentos respectivos en una función que llama.
 

Solucion

Inicio
void tiempo(int segundos, int& horas, int& min, int& seg)
{
horas=segundos/3600
min=(segundos%3600)/60
seg=(min%60)
print horas,":",min,":",seg
}
Fin

Inicio
void main()
{
int segundos,horas,min,seg
print "inserte los segundos=?"
read segundos
tiempo(segundos,horas,min,seg);
}
Fin

Codigo de Programacion

# include <iostream.h>
# include <conio.h>
void tiempo(int segundos, int& horas, int& min, int& seg)
{
horas=segundos/3600;
min=(segundos%3600)/60;
seg=(min%60);
cout<<horas<<":"<<min<<":"<<seg<<endl;
}

void main()
{
int segundos,horas,min,seg;
cout<<"inserte los segundos=?"<<endl;
cin>>segundos;
tiempo(segundos,horas,min,seg);
getch();
}


Programa Ejecutado

 


Problema No. 9

Función llamada cambio ( ) que tenga un parámetro en número entero y 6 en entero denominados ,cien, cincuenta, veinte, diez, cinco, y uno. Respectivamente la función debe convertir el valor transmitido del numero entero como cantidad en dólar, y convertir el valor transmitido al número más pequeño de billetes equivalentes, utilizando las referencias, la función debe alterar directamente los argumentos respectivos en la función que llama.

Solucion


Inicio
void dinero(int dolares, int& cien, int& cincuenta, int& veinte, int& diez, int& cinco, int& uno)
cien=dolares/100
cincuenta=(dolares%100)/50
veinte=((dolares%100)%50)/20
diez=(((dolares%100)%50)%20)/10
cinco=((((dolares%100)%50)%20)%10)/5
uno=(((((dolares%100)%50)%20)%10)%5)/1
print "Cien     cincuenta    veinte    diez     cinco     uno"
print cien,"           ",cincuenta,"            ",veinte,"       ",diez,"     ",cinco,"     ",uno
Fin

Inicio
void main()
int dolares,cien,cincuenta,veinte,diez,cinco,uno
print "inserte los dolares"
read dolares
dinero(dolares,cien,cincuenta,veinte,diez,cinco,uno)
Fin


Codigo de Programacion

# include <iostream.h>
# include <conio.h>
void dinero(int dolares, int& cien, int& cincuenta, int& veinte, int& diez, int& cinco, int& uno)
{
cien=dolares/100;
cincuenta=(dolares%100)/50;
veinte=((dolares%100)%50)/20;
diez=(((dolares%100)%50)%20)/10;
cinco=((((dolares%100)%50)%20)%10)/5;
uno=(((((dolares%100)%50)%20)%10)%5)/1;
cout<<"Cien     cincuenta    veinte    diez     cinco     uno"<<endl;
cout<<cien<<"           "<<cincuenta<<"            "<<veinte<<"       "<<diez<<"     "<<cinco<<"     "<<uno<<endl;
}

void main()
{
int dolares,cien,cincuenta,veinte,diez,cinco,uno;
cout<<"inserte los dolares"<<endl;
cin>>dolares;
dinero(dolares,cien,cincuenta,veinte,diez,cinco,uno);
getch();
}

Programa Ejecutado


Problema No. 10

El volumen V y la superficie S de un cilindro están dados por la formula volumen=(pi)((r)^2)(l) superficie= 2(pi)(r )(l) donde r=radio del cilindro y l= su longitud utilizando estas formulas escriba una función denominada cilindro () que acepte el radio y largo de un cilindro que devuelva el volumen y la superficie.

Solucion

Inicio
void cilindro(float r, float l, float& v, float& s)
v=3.1416*r*r*l
s=2*3.1416*l
Fin

Inicio
void main()
float v,s,r,l
print "radio=? "
read r
print "longitud=? "
read l
cilindro(r,l,v,s)
print "volumen= ",v
print "superficie= ",s
Fin

Codigo de Programacion

# include <iostream.h>
# include <conio.h>
# include <math.h>

void cilindro(float r, float l, float& v, float& s)
{
v=3.1416*r*r*l;
s=2*3.1416*l;
}


void main()
{
float v,s,r,l;
cout<<"radio=? "<<endl;
cin>>r;
cout<<"longitud=? "<<endl;
cin>>l;
cilindro(r,l,v,s);
cout<<"volumen= "<<v<<endl;
cout<<"superficie= "<<s<<endl;
getch();
}


Programa Ejecutado



Problema No. 11

Escriba una función que calcule el radio, r y el área, a, de un circulo cuando la circunferencia c es conocida la formulas son r =c/2(pi) a =pi(r)^2 Pruebe la función utilizando un programa que tenga funciones especificas de control

Solucion

Inicio
void circunferencia(float c,  float& r, float& a)
r=c/(2*3.1416)
a=3.1416*r*r
Fin

Inicio
void main()
float c,r,a
print "circunferencia=? "
read c
circunferencia(c,r,a)
print "Radio= ",r
print "Area= ",a
Fin

Codigo de Programacion

# include <iostream.h>
# include <conio.h>
# include <math.h>

void circunferencia(float c,  float& r, float& a)
{
r=c/(2*3.1416);
a=3.1416*r*r;
}


void main()
{
float c,r,a;
cout<<"circunferencia=? "<<endl;
cin>>c;
circunferencia(c,r,a);
cout<<"Radio= "<<r<<endl;
cout<<"Area= "<<a<<endl;
getch();
}


Programa Ejecutado


Problema No. 12

Escriba una plantilla de función llamada máximo que devuelva el valor máximo de 3 argumentos que se transmiten a la función cuando esta es llamada. Supóngase que los 3 argumentos serán del mismo tipo.

Solucion

Inicio
template<class T>
T maximo(T v1,T v2,T v3)
if (v1>=v2 && v2>=v3)
return v1
else
{
if(v2>=v3)
return v2
else
return v3
}
Fin

Inicio

float n1,n2,n3
int a,b,c
print "Numero entero 1=?"
read a
print "Numero entero 2=?"
read b
print "Numero entero 3=?"
read c
print "El dato mayor es ", maximo(a,b,c)
print "Numero flotante 1=?"
read n1
print "Numero flotante 2=?"
read n2
print "Numero flotante 3=?"
read n3
print "El dato mayor es ", maximo(n1,n2,n3)


Codigo de Programacion

# include <iostream.h>
# include <conio.h>
# include <math.h>
template<class T>
T maximo(T v1,T v2,T v3)
{
if (v1>=v2 && v2>=v3)
return v1;
else
{
if(v2>=v3)
return v2;
else
return v3;
}
}
void main()
{
float n1,n2,n3;
int a,b,c;
cout<<"Numero entero 1=?";
cin>>a;
cout<<"Numero entero 2=?";
cin>>b;
cout<<"Numero entero 3=?";
cin>>c;
cout<<"El dato mayor es "<<maximo(a,b,c)<<endl;
cout<<"Numero flotante 1=?";
cin>>n1;
cout<<"Numero flotante 2=?";
cin>>n2;
cout<<"Numero flotante 3=?";
cin>>n3;
cout<<"El dato mayor es "<<maximo(n1,n2,n3)<<endl;
getch();
}

Programa Ejecutado



Problema No. 13

Función que almacene los valores a un arreglo resistencia y10 valores a uno llamado corriente y considerar un arreglo llamado potencia que debe ser capaz de almacenar10 números en doble precisión y 10 números enteros. Haga que el programa acepte los10 valores introducidos por el usuario en el arreglo corriente y resistencia, al ejecutar el programa debe almacenar en el arreglo potencia el producto de los valores correspondientes al cuadrado del arreglo corriente y del arreglo resistencia
Potencia [i] =resistencia[i]*pow (corriente[i],2) y desplegar la salida


Solucion


Inicio
template<class T>
T res(T resistencia[10])
{
int a
for(a=1 to10 step a=a+1)
{
print "resistencia", a, "=?"
read resistencia[a]
}
Fin
Inicio
template<class T>
T cor(T corriente[10])
{
int a
for(a=1 to10 step a=a+1)
{
print "corriente", a, "=?"
read corriente[a]
}
Fin
Inicio
template<class T>
T pot(T resistencia[10],T corriente[10],T potencia[10])
{
int a
float suma
for(a=1 to10 step a=a+1)
{
potencia[a]=resistencia[a]*(pow(corriente[a],2))
suma=potencia[a]+suma
}
return suma
Fin

Inicio

int resistencia[10]
int corriente[10]
int potencia[10]
res(resistencia)
cor(corriente)
pot(resistencia,corriente,potencia)
int a
print "Resistencia Corriente Potencia"
for(a=1;a<=10;a++)
{
print resistencia[a], " ", corriente[a], " ", potencia[a]
}
print "Suma de potencias "<<pot(resistencia,corriente,potencia)



Codigo de Programacion

# include <iostream.h>
# include <conio.h>
# include <math.h>
template<class T>
T res(T resistencia[10])
{
int a;
for(a=1;a<=10;a++)
{
cout<<"resistencia"<<a<<"=?"<<endl;
cin>>resistencia[a];
}
}
template<class T>
T cor(T corriente[10])
{
int a;
for(a=1;a<=10;a++)
{
cout<<"corriente"<<a<<"=?"<<endl;
cin>>corriente[a];
}
}
template<class T>
T pot(T resistencia[10],T corriente[10],T potencia[10])
{
int a;
float suma;
for(a=1;a<=10;a++)
{
potencia[a]=resistencia[a]*(pow(corriente[a],2));
suma=potencia[a]+suma;
}
return suma;
}

void main()
{
int resistencia[10];
int corriente[10];
int potencia[10];
res(resistencia);
cor(corriente);
pot(resistencia,corriente,potencia);
int a;
cout<<"Resistencia Corriente Potencia"<<endl;
for(a=1;a<=10;a++)
{
cout<<resistencia[a]<<"         "<<corriente[a]<<"      "<<potencia[a]<<endl;
}
cout<<"Suma de potencias "<<pot(resistencia,corriente,potencia)<<endl;
getch();
}


Programa Ejecutado