viernes, 1 de abril de 2011

Práctica 8

Práctica 8. Problema 1.


Descripción

Escriba una función denominada revisar () que tenga 3 parámetros. El primero debe de aceptar un numero entero, el segundo un numero en punto flotante, el tercero un numero en doble precisión.
El contenido de la función solo debe mostrar los valores de los datos transferiros a la función cuando sea llamada.

Pseudocódigo

revisar(int a,float b,double c)
{
print "valor entero ", a
print "valor flotante: ", b
print "valor doble presicion: ", c
}
inicio
num1  entero
num2  real
num3  doble recision
print "dato entero: "
read num1
print"dato flotante: "
read num2
print "dato doble presicion: "
read num3
revisar(num1,num2,num3)
fin


Código en C++

#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 presicion: "<<c<<endl;
}
void main()
{
int num1;
float num2;
double num3;
cout<<"dato entero: ";
cin>>num1;
cout<<"dato flotante: ";
cin>>num2;
cout<<"dato doble presicion: ";
cin>>num3;
revisar(num1,num2,num3);
getch();
}

Corrida en C++








Práctica 8. Problema 2.


Descripción

Escriba una función denominada mult () que acepte como parámetro dos números en punto flotante, multiplique estos dos números y despliegue el resultado.

Pseudocódigo

funcion mult(float n1, float n2);
inicio
a,b  real
print "primer numero flotante: "
leer a
print"segundo numero flotante: "
leer b
mult(a,b)
fin

funcion mult(float n1,float n2)
{
float r1
r1=n1*n2;
print "la multiplicacion ",n1,"*",n2,"=",(n1*n2)
}


Código en C++

#include <iostream.h>
#include <conio.h>
void mult(float n1, float n2);
void main()
{
float a,b;
cout<<"primer numero flotante: ";
cin>>a;
cout<<"segundo numero flotante: ";
cin>>b;
mult(a,b);
getch();
}
void mult(float n1,float n2)
{
float r1;
r1=n1*n2;
cout<<"la multiplicacion "<<n1<<"*"<<n2<<"="<<(n1*n2)<<endl;
}


Corrida en C++





Práctica 8. Problema 3.

Descripción

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

Pseudocódigo
tabla ()
{
int i
print "numero  cuadrado  cubo"
for (i=1  i to 10  step i++)
{
print i,"   ",(i*i),"      ",(i*i*i)
}
}
inicio
tabla()
fin


Código en C++

#include <iostream.h>
#include <conio.h>
void tabla ()
{
int i;
cout<<"numero\tcuadrado\tcubo"<<endl;
for (i=1;i<=10;i++)
{
cout<<i<<"\t"<<(i*i)<<"\t\t"<<(i*i*i)<<endl;
}
}
void main()
{
tabla();
getch();
}

Corrida en C++








Práctica 8. Problema 4.

Descripción

Escriba una función denominada triangulorectángulo ( ), que acepte la longitud de dos lados de un triángulo rectángulo con los argumentos a, b. La función debe determinar y volver c (hipotenusa) del triángulo. (Sugerencia: utilice el teorema de Pitágoras).

c2=a2+b2


Pseudocódigo
int triangulorectangulo(int a, int b)
inicio
lado1,lado2 entero
print "lado 1 del triangulo rectangulo: "
read lado1
print "lado 2 del triangulo rectangulo: "
read lado2
print "el valor de la hipotenusa es: ",triangulorectangulo(lado1,lado2)
fin
int triangulorectangulo (int a, int b)
{
int c;
c=sqrt(pow(a,2)+pow(b,2))
return c
}

Código en C++

#include <iostream.h>
#include <conio.h>
#include <math.h>
int triangulorectangulo(int a, int b);
void main()
{
int lado1,lado2;
cout<<"lado 1 del triangulo rectangulo: ";
cin>>lado1;
cout<<"lado 2 del triangulo rectangulo: ";
cin>>lado2;
cout<<"el valor de la hipotenusa es: "<<triangulorectangulo(lado1,lado2)<<endl;
getch();
}
int triangulorectangulo (int a, int b)
{
int c;
c=sqrt(pow(a,2)+pow(b,2));
return c;
}

Corrida en C++





Práctica 8. Problema 5.


Descripción

Diseñe una función tal que dado un parámetro x regrese el siguiente valor:
Diseñe una función con dos parámetros x y n, talque regrese lo siguiente:
Haga un programa para llamar a las dos funciones.


Pseudocódigo
real funcion1 (real x)
real funcion2 (real x, real n)
unicio
x,v1,n,v2  real
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= ",v1
print "valor funcion 2= ",v2
fin
real funcion1 (real x)
{
valor  real
valor=1.0/(pow(x,5)*((exp(1.432)/x)-1))
return valor
}
real funcion2 (real x, real n)
{
valor  real
if (x>=0)
{
valor=x+pow(x,n)-pow(x,(n+2))/(n+2)
}
else
{
valor=(-pow(x,(n-1))/(n-1)+pow(x,(n+1))/(n+1))
}
return valor
}

Código en C++

#include <iostream.h>
#include <conio.h>
#include <math.h>
float funcion1 (float x);
float funcion2 (float x, float n);
void main()
{
float x,v1,n,v2;
do
{
cout<<"x= ";
cin>>x;
}
while (x==0);
v1=funcion1(x);
cout<<"x= ";
cin>>x;
cout<<"n= ";
cin>>n;
v2=funcion2(x,n);
cout<<endl<<"valor funcion 1= "<<v1<<endl;
cout<<"valor funcion 2= "<<v2<<endl;
getch();
}
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)-pow(x,(n+2))/(n+2);
}
else
{
valor=(-pow(x,(n-1))/(n-1)+pow(x,(n+1))/(n+1));
}
return valor;
}


Corrida en C++







Práctica 8. Problema 6.


Descripción

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.

Pseudocódigo

funcion generarvalores(entero numeros[20]);
funcion listapares(entero numeros[20]);
funcion listaimpares(entero numeros[20]);
funcion  sumatoria(entero numeros[20]);
funcion  multiplicacion(entero numeros[20]);
inicio
valores[20]  entero
generarvalores(valores)
listapares(valores)
listaimpares(valores)
sumatoria(valores)
multiplicacion(valores)
fin
funcion  generarvalores(entero numeros[20])
{
i  entero
randomize()
for(i=0 i to 20 step i++)
{
numeros[i]=random(5)+1
}
}
funcion  listapares(entero numeros[20])
{
i  entero
print "Numeros pares: "<
for(i=0 i to 20 step i++)
{
if(numeros[i]%2==0)
{
print numeros[i]
}
}
}
funcion listaimpares(entero numeros[20])
{
i entero
print "Numeros impares: "
for(i=0 i to 20 step i++)
{
if(numeros[i]%2!=0)
{
print numeros[i]
}
}
}
funcion multiplicacion(entero numeros[20])
{
i, multiplicacion=1  entero
for(i=0 i to 20 step i++)
{
if(numeros[i]>0)
{
multiplicacion=multiplicacion*numeros[i]
}
}
print "multiplicacion: ",multiplicacion
}
void sumatoria(entero numeros[20])
{
i, suma=0  entero
for(i=0 i to 20 step i++)
{
suma=suma+numeros[i]
}
print "Suma: ",suma
}


 


Código en C++

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
void generarvalores(int numeros[20]);
void listapares(int numeros[20]);
void listaimpares(int numeros[20]);
void sumatoria(int numeros[20]);
void multiplicacion(int numeros[20]);
void main()
{
int valores[20];
generarvalores(valores);
listapares(valores);
listaimpares(valores);
sumatoria(valores);
multiplicacion(valores);
getch();
}
void generarvalores(int numeros[20])
{
int i;
randomize();
for(i=0; i<20; i++)
{
numeros[i]=random(5)+1;
}
}
void listapares(int numeros[20])
{
int i;
cout<<"Numeros pares: "<<endl;
for(i=0; i<20; i++)
{
if(numeros[i]%2==0)
{
cout<<numeros[i]<<endl;
}
}
cout<<endl;
}
void listaimpares(int numeros[20])
{
int i;
cout<<"Numeros impares: "<<endl;
for(i=0; i<20; i++)
{
if(numeros[i]%2!=0)
{
cout<<numeros[i]<<endl;
}
}
cout<<endl;
}
void multiplicacion(int numeros[20])
{
int i, multiplicacion=1;
for(i=0; i<20; i++)
{
if(numeros[i]>0)
{
multiplicacion=multiplicacion*numeros[i];
}
}
cout<<"multiplicacion: "<<multiplicacion<<endl;
}
void sumatoria(int numeros[20])
{
int i, suma=0;
for(i=0; i<20; i++)
{
suma=suma+numeros[i];
}
cout<<"Suma: "<<suma<<endl;
}

Corrida en C++









Práctica 8. Problema 8.


Descripción

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 número 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.

Pseudocódigo

funcion tiempo (int segundos, int & horas, int & min, int & seg)
{
horas=segundos/3600
min=(segundos%3600)/60
seg=(segundos%60)
}
inicio
segundos,horas,min,seg  entero
print "segundos: "
read segundos
tiempo(segundos, horas,min,seg)
print horas,":",min,":",seg
fin


Código en C++

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


Corrida en C++






Práctica 8. Problema 9.

Descripción

Escriba una  función llamada cambio () que tenga un parámetro en número entero y seis parámetros en número entero denominados cien, cincuenta, veinte, diez, cinco, uno, respectivamente. La función debe reconvertir el valor transmitido del número entero como cantidad en dólar y convertir el valor 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.
Pseudocódigo


funcion cambio(int dol, int &cien, int &cincuenta, int &veinte, int &diez, int &cinco, int &uno);
inicio
dol, cien, cincuenta, veinte, diez, cinco, uno  entero
print "Dolares: "
print dol
cambio(dol, cien, cincuenta, veinte, diez, cinco, uno)
print "cien  cincuenta  veinte  diez  cinco  uno"
print cien,"  ",cincuenta,"  ",veinte,"  ",diez,"  ",cinco,"  ",uno
fin
funcion cambio(int dol, int &cien, int &cincuenta, int &veinte, int &diez, int &cinco, int &uno)
{
cien=dol/100
cincuenta=(dol%100)/50
veinte=((dol%100)%50)/20
diez=(((dol%100)%50)%20)/10
cinco=((((dol%100)%50)%20)%10)/5
uno=(((((dol%100)%50)%20)%10)%5)
}

Código en C++

#include <iostream.h>
#include <conio.h>
#include <iostream.h>
#include <conio.h>
void cambio(int dol, int &cien, int &cincuenta, int &veinte, int &diez, int &cinco, int &uno);
void main()
{
int dol, cien, cincuenta, veinte, diez, cinco, uno;
cout<<"Dolares: ";
cin>>dol;
cambio(dol, cien, cincuenta, veinte, diez, cinco, uno);
cout<<"cien\tcincuenta\tveinte\tdiez\tcinco\tuno"<<endl;
cout<<cien<<"\t\t"<<cincuenta<<"\t"<<veinte<<"\t"<<diez<<"\t"<<cinco<<"\t"<<uno;
getch();
}
void cambio(int dol, int &cien, int &cincuenta, int &veinte, int &diez, int &cinco, int &uno)
{
cien=dol/100;
cincuenta=(dol%100)/50;
veinte=((dol%100)%50)/20;
diez=(((dol%100)%50)%20)/10;
cinco=((((dol%100)%50)%20)%10)/5;
uno=(((((dol%100)%50)%20)%10)%5);
getch();
}


Corrida en C++








Práctica 8. Problema 10.

Descripción

El volumen (v) y la superficie (s) de un cilindro están dadas por la formulas:

v=pi*r^2*l


s=2*pi*r*l
Dónde:
r=radio del cilindro.
l=es la longitud del cilindro.
Utilizando estas fórmulas escriba una función denominada cilindro () que acepte el radio (r) y el largo (l) de un cilindro y que devuelva el volumen y la superficie.


Pseudocódigo

real funcion cilindro(float r, float l, float& v, float& s)
inicio
r, l, v, s  real
print "Radio del cilindro: "
read r
print "Longitud del cilindro: "
read l
cilindro(r, l, v, s)
print "Volumen= ",v
print "Superficie= ",s
fin
real funcion cilindro(float r, float l, float& v, float& s)
{
v=3.1416*(r*r*l)
s=2*(3.1416)*r*l
return v
}

Código en C++

#include <iostream.h>
#include <conio.h>
#include <math.h>
float cilindro(float r, float l, float& v, float& s);
void main()
{
float r, l, v, s;
cout<<"Radio del cilindro: ";
cin>>r;
cout<<"Longitud del cilindro: ";
cin>>l;
cilindro(r, l, v, s);
cout<<"Volumen= "<<v<<endl;
cout<<"Superficie= "<<s<<endl;
getch();
}
float cilindro(float r, float l, float& v, float& s)
{
v=3.1416*(r*r*l);
s=2*(3.1416)*r*l;
return v;
}


Corrida en C++




Práctica 8. Problema 11.

Descripción

Escriba una función que calcule el radio (r) y el área (a) de un circulo cuando la circunferencia (c) es conocida. Las formulas relevantes son:
Pruebe la función utilizando un programa que tenga una función especifica de control.


Pseudocódigo

funcion circulo(float c,float &r,float &a)
{
r=c/(3.1416*2)
a=(3.1416)*(pow(r,2))
}
inicio
c,r,a  real
print "Circunferencia: "
read c
circulo(c,r,a);
print "Radio: ",r
print "Area: ",a
fin


Código en C++

#include <iostream.h>
#include <conio.h>
#include <math.h>
void circulo(float c,float &r,float &a)
{
r=c/(3.1416*2);
a=(3.1416)*(pow(r,2));
}
void main()
{
float c,r,a;
cout<<"Circunferencia: ";
cin>>c;
circulo(c,r,a);
cout<<endl<<"Radio: "<<r<<endl;
cout<<"Area: "<<a<<endl;
getch();
}


Corrida en C++






Práctica 8. Problema 12.


Descripción

Escriba una plantilla de función llamado máximo que devuelva el valor máximo de tres argumentos que se transmitan a la función cuando esta sea llamada. Suponga que los tres argumentos serán del mismo tipo.




Pseudocódigo

template <class T>
T maximo(T v1,T v2,T v3)
{
if(v1>=v2 and v1>=v3)
{
return v1
}
else
{
if(v2>=v1 and v2>=v3)
{
return v2
}
else
{
return v3
}
}
}
inicio
n1,n2,n3  entero
num1,num2,num3  real
print "Primer valor entero: "
read n1
print "Segundo valor entero: "
read n2
print "Tercer valor entero: "
read n3
print "El dato mayor es: ",maximo(n1,n2,n3)
print "Primer valor flotante: "
read num1
print "Segundo valor flotante: "
read num2
print "Tercer valor flotante: "
read num3
print "El maximo es: "maximo(num1,num2,num3)
fin

Código en C++

#include <iostream.h>
#include <conio.h>
template <class T>
T maximo(T v1,T v2,T v3)
{
if(v1>=v2&&v1>=v3)
{
return v1;
}
else
{
if(v2>=v1&&v2>=v3)
{
return v2;
}
else
{
return v3;
}
}
}
void main()
{
int n1,n2,n3;
float num1,num2,num3;
cout<<"Primer valor entero: ";
cin>>n1;
cout<<"Segundo valor entero: ";
cin>>n2;
cout<<"Tercer valor entero: ";
cin>>n3;
cout<<endl<<"El dato mayor es: "<<maximo(n1,n2,n3)<<endl;
cout<<endl<<"Primer valor flotante: ";
cin>>num1;
cout<<"Segundo valor flotante: ";
cin>>num2;
cout<<"Tercer valor flotante: ";
cin>>num3;
cout<<endl<<"El maximo es: "<<maximo(num1,num2,num3)<<endl;
getch();
}

Corrida en C++





Práctica 8. Problema 13.


Descripción

Escriba un programa que almacene diez valores a un arreglo llamado resistencia y diez valores a un arreglo llamado corriente y considerar un arreglo llamado potencia que debe ser capaz de almacenar diez números en doble precisión y diez números enteros. Haga que he el programa acepte diez 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:

Resistencia     corriente    potencia
         *                      *               *
         *                      *               *
         *                      *               *
                                     Total:    *


Pseudocódigo

template<class T>
T introresistencia(T resistencia[10])
{
i  entero
for(i=1  i to 10 step i++)
{
print "resistencia ",i,": "
read resistencia[i]
}
}
template<class T>
T introcorriente(T corriente[10])
{
i  entero
for(i=1 i to 10 step i++)
{
print "corriente ",i,": "
read corriente[i]
}
}
template<class T>
T calculopotencia(T resistencia[10],T corriente[10],T potencia[10])
{
i  entero
total  real
for(i=1 i to 10 i++)
{
potencia[i]=resistencia[i]*(pow(corriente[i],2))
total=potencia[i]+total
}
return total
}
inicio
resistencia[10],  corriente[10], potencia[10]  entero
introresistencia(resistencia)
introcorriente(corriente)
calculopotencia(resistencia,corriente,potencia)
i  entero
cout<<"Resistencia Corriente Potencia"
for(i=1 i to 10 step i++)
{
print resistencia[i],corriente[i],potencia[i]
}
print "Total: ",calculopotencia(resistencia,corriente,potencia)
fin



Código en C++

#include <iostream.h>
#include <conio.h>
#include <math.h>
template<class T>
T introresistencia(T resistencia[10])
{
int i;
for(i=1;i<=10;i++)
{
cout<<"resistencia "<<i<<": ";
cin>>resistencia[i];
}
}
template<class T>
T introcorriente(T corriente[10])
{
int i;
for(i=1;i<=10;i++)
{
cout<<"corriente "<<i<<": ";
cin>>corriente[i];
}
}
template<class T>
T calculopotencia(T resistencia[10],T corriente[10],T potencia[10])
{
int i;
float total;
for(i=1;i<=10;i++)
{
potencia[i]=resistencia[i]*(pow(corriente[i],2));
total=potencia[i]+total;
}
return total;
}

void main()
{
int resistencia[10],  corriente[10], potencia[10];
introresistencia(resistencia);
introcorriente(corriente);
calculopotencia(resistencia,corriente,potencia);
int i;
cout<<endl;
cout<<"Resistencia\tCorriente\tPotencia"<<endl;
for(i=1;i<=10;i++)
{
cout<<"\t"<<resistencia[i]<<"\t"<<corriente[i]<<"\t\t"<<potencia[i]<<endl;
}
cout<<"                   Total: "<<calculopotencia(resistencia,corriente,potencia)<<endl;
getch();
}


Corrida en C++










 























No hay comentarios:

Publicar un comentario