Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SI-120 Subprogramas
1. Construir una función POTEN(y, y), para calcular la potencia x y de dos números
enteros cualesquiera.
#include<iostream>
using namespace std;
int main()
{
int base, exponente;
cout<<"Ingrese la base"<<endl;
cin>>base;
cout<<"Ingrese el exponente"<<endl;
cin>>exponente;
cout<<"El resultado es: "<<potencia(base,exponente);
return 0;
}
2. Construir una función FAC(n) para calcular el factorial de un entero.
int factorial(int n)
{
if(n==0){
n=1;
}
else{
n=n*factorial(n-1);
}
return n;
}
int main()
{
int a,n;
cout<<"Ingrese un numero"<<endl;
cin>>a;
cout<<"El factorial de "<<a<<" es: "<<factorial(a);
return 0;
}
3. Construir un programa, que mediante funciones, para hallar la suma de la siguiente
serie, dados X y N enteros positivos:
x1 x2 x3 x4 xN
S= + + + +...+
1! 2! 3! 4! N!
#include <iostream>
#include <math.h>
x1 x3 x5 x7 xN
S= - + - +/- . . .
1! 3! 5! 7! N!
#include<iostream>
using namespace std;
n n!
Combi(n, r) = = ---------- donde ‘!’ es la función factorial
r r! (n-r)!
Construir un programa que utilice una función factorial llamada FAC(n), y luego
desde el programa principal la llame de la siguiente forma:
C = FAC(n) / (FAC(r) * FAC(n-r))
#include<iostream>
using namespace std;
int factorial(int n)
{
int k,f;
f=1;
for(k=1;k<=n;k++){
f=f*k;
}
return f;
}
int main()
{
int m,n,c;
cout<<"Ingrese un numero"<<endl;
cin>>m;
cout<<"Ingrese un numero para dividir como factorial"<<endl;
cin>>n;
c=factorial(m)/(factorial(n)*factorial(m-n));
cout<<"El resultado es: "<<c;
return 0;
}
6. Construir una función que lea un valor binario X y devuelva como resultado su
equivalente decimal.
#include <iostream>
using namespace std;
int op()
{
int resultado, binario, resto=0,dig[8],i;
cout<<"Introduzca un número en codigo binario"<<endl;
cin>>binario;
for (i=0; i<8; i++)
{
dig[i]=binario%10;
binario=binario/10;
}
for (i=7;i>=0;i--)
{
resultado=(resto*2)+dig[i];
resto=resultado;
}
return resto;
}
int main()
{
int r;
r=op();
cout<<"El numero en sistema decimal es "<<r<<endl;
return 0;
}
7. Construya un procedimiento que calcule los días transcurridos entre dos fechas
cualesquiera. Cada fecha está dada en día/mes/año.
#include <iostream>
using namespace std;
int fun()
{
int dia,mes,an,c,t,s=0;
cout<<"Ingrese el dia"<<endl;
cin>>dia;
cout<<"Ingrese el mes"<<endl;
cin>>mes;
cout<<"Ingrese el año"<<endl;
cin>>an;
if (mes<1 or mes>12 or dia>31 or dia<1 or an<1)
{
cout<<"Ingrese una fecha valida"<<endl;
}
else
{
c=an*365;
while (mes>=1)
{
mes=mes-1;
if (mes==1 or mes==3 or mes==5 or mes==7 or mes== 8 or mes==10 or
mes==12)
{
s=s+31;
}
else
{
if(mes==4 or mes==6 or mes==9 or mes==11)
{
s=s+30;
}
else
{
s=s+28;
}
}
t=c+s+dia;
}
}
return t;
}
int main()
{
int f1,f2;
cout<<" FECHA 1 "<<endl;
f1=fun();
cout<<" FECHA 2 "<<endl;
f2=fun();
if (f1>f2)
{
cout<<"Hay "<<f1-f2<<" dias de diferencia"<<endl;
}
else
{
cout<<"Hay "<<f2-f1<<" dias de diferencia"<<endl;
}
return 0;
}
8. Hacer un subprograma para invertir un número N. Ej. Si N=35678, se requiere en otra
variable Z=87653.
#include <iostream>
using namespace std;
return resultado;
}
int main()
{
int a,b;
cout<<"Ingrese un numero"<<endl;
cin>>a;
b=invertir(a);
cout<<"El numero invertido es "<<b<<endl;
return 0;
}
9. Hacer un subprograma para CIFRAR un digito de 4 dígitos en base 8.
#include <iostream>
#include <math.h>
using namespace std;
int octal()
{
int oct=0, res=0, a=0, b=1;
cout<<"Digite un numero decimal"<<endl;
cin>>a;
if(a<10000)
{
while (a!=0)
{
res=a%8;
a=a/8;
oct=oct+res*b;
b=b*10;
}
cout<<"El numero octal es "<<oct<<endl;
}
else
{
cout<<"Error digite un numero de 4 digitos por favor"<<endl;
}
return oct;
}
int main()
{
octal();
return 0;
}
10. Dado un número decimal en base 8, hacer un programa para descifra su equivalente en
base 10.
Dado un número decimal en base 8, hacer un programa para descifra su equivalente
en base 10.
#include <iostream>
#include <math.h>
using namespace std;
#include <iostream>
#include <math.h>
int main()
{
float x,n,i,s=0;
cout<<"Ingrese un valor para la base"<<endl;
cin>>x;
cout<<"Ingrese un valor para n"<<endl;
cin>>n;
for (i=1; i<=n; i++)
{
s=s+potencia(x,i);
}
cout<<"El resultado es "<<s<<endl;
return 0;
}
12. 7. Calcular el factorial de un número entero N. Donde se define como factorial de la
siguiente forma: FAC(N) = 1x2x3x.....xN; donde el factorial de cero es uno (FAC(0)
=1). FAC(N)=N!, se lee factorial (!) de N.
#include<iostream>
using namespace std;
int factorial(int n)
{
if(n==0){
n=1;
}
else{
n=n*factorial(n-1);
}
return n;
}
int main()
{
int a,n;
cout<<"Ingrese un numero"<<endl;
cin>>a;
cout<<"El factorial de "<<a<<" es: "<<factorial(a);
return 0;
}
13. Calcular la siguiente serie:
S= X/1! + X^2/2! + X^3/3! + ........X^n/n!
#include <iostream>
#include <math.h>