Sie sind auf Seite 1von 36

RECURSIVIDAD

1. SERIE DE FIBONACCI

// AUTOR: VELEZ SOSA OMAR


#include<iostream.h>
#include<conio.h>
#include<stdio.h>
int fibon(int n)
{
if(n<=1)
return n;
else
return fibon(n-1)+fibon(n-2);
}
int main()
{
int num=0;
clrscr();
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
cout<<"CALCULAR:\n";
cout<<endl;
cout<<"INTRODUCE UN NUMERO:";
cin>>num;
printf("\tEl resultado es:%i\n",fibon(num));
getch();
}
2. Determinar si el número ingresado es par o impar.
Solución: si hacemos par(2) devuelve 1 (cierto). Si hacemos impar(3)
devuelve 0 (falso).

// AUTOR: VELEZ SOSA OMAR


#include<iostream.h>
#include<conio.h>
#include<stdio.h>
int par(int n);
int impar(int n);
int par(int n);
{
if(n==0)
return 1;
else
return impar(n-1);
}
int impar(int n)
{
if(n==0)
return 0;
else return par(n-1);
}

int main()
{
int num=0;
clrscr();
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
cout<<"CALCULAR:\n";
cout<<endl;
cout<<"INTRODUCE UN NUMERO:";
cin>>num;
printf("\tEl resultado es:%i\n",par(num));
getch();
}
3. Inversión en una institución bancaria. Se ha depositado un monto m por el cual se recibe un
x% de interés anual. El problema consiste en determinar el capital que se tendrá al cabo de n
años.

C0 = 5000
C1= C0 + C0*10%
….
Cn= Cn-1 + Cn-1*10% o Cn = 1.10 * Cn-1
.
SOLUCION:

// AUTOR: VELEZ SOSA OMAR


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

int ingreso(int n, int m, float a)


{
if(n==0)
return m; //base
else
return (1+a/100)*ingreso(n-1,m,a); // forma recursiva
}
int main()
{
int num=0;
int nume=0;
int numero=0;
clrscr();
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
cout<<"CALCULAR:\n";
cout<<endl;
cout<<"ingrese el a¤o:";
cin>>num;
cout<<"ingrese el monto:";
cin>>nume;
cout<<"ingrese la tasa de interes:";
cin>>numero;
printf("\tEl resultado es:%i\n",ingreso(num,nume,numero));
getch();
}
4. Dados dos números a (número entero) y b (número natural mayor o igual que cero)
determinar a^b.

// AUTOR: VELEZ SOSA OMAR


#include<iostream.h>
#include<conio.h>
#include<stdio.h>
int potencia(int a,int b)
{
if(b==0)
return 1;
else
return a*potencia(a, b-1);
}

int main()
{
int num=0,nu;
clrscr();
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
cout<<"CALCULAR:\n";
cout<<endl;
cout<<"INTRODUCE el primer número:";
cin>>num;
cout<<"INTRODUCE el segundo número:";
cin>>nu;
printf("\tEl resultado es:%i\n",potencia(num,nu));
getch();
}
5. HALLAR EL FACTORIAL

// AUTOR: VELEZ SOSA OMAR


#include<iostream.h>
#include<conio.h>
#include<stdio.h>
int factorial(int n)
{
if(n<2)
return 1;
else
return n*factorial(n-1);
}
int main()
{
int num=0;
clrscr();
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
cout<<"CALCULAR FACTORIAL:\n";
cout<<endl;
cout<<"INTRODUCE UN NUMERO:";
cin>>num;//pedirvariablenum
printf("\tEl resultado es:%i\n",factorial(num));//llama la funcion imprime resultado
getch();
}
PROCEDIMIENTOS
1.

// AUTOR: VELEZ SOSA OMAR


#include<iostream.h>
#include<conio.h>
void suma(int valor)
{
clrscr();
int v;
v=valor;
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
cout<<"La suma de 3+2 es: "<<v;
getch();
}
void main()
{
suma(3+2);
}
2.

// AUTOR: VELEZ SOSA OMAR


#include<iostream.h>
#include<conio.h>
void cuad(int x)
{
int c;
clrscr();
c=x*x;
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
cout<<"El cuadrado de 5 es igual: "<<c;
getch();
}
void main()
{
cuad(5);
}
3.

// AUTOR: VELEZ SOSA OMAR


#include<iostream.h>
#include<conio.h>
void mi_funcion(int m)
{
int y;
clrscr();
y=2+m*3;
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
cout<<"La funcion 2+"<<m<<"*3 es igual :"<<y;
getch();
}

void main(void)
{
mi_funcion(5+2);
}
4. EL CUADRADO DE UN NUMERO

// AUTOR: VELEZ SOSA OMAR


#include<iostream.h>
#include<conio.h>
void cuadrado(int p)
{
int cuad;
cuad=p*p;
cout<<"El cuadrado del elemento ingresado es: "<<cuad<<endl;
cout<<"Siendo el elemento ingresado: "<<p;
getch();
}
void main()
{
int valor;
clrscr();
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
cout<<"Ingrese el elemento: ";
cin>>valor;
cuadrado(valor);
}
5.

// AUTOR: VELEZ SOSA OMAR


#include<iostream.h>
#include<conio.h>
void mi_funcion(int X)
{
clrscr();
int Y;
Y=X*5;
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
cout<<"la multiplicacion de "<<X<<"*5 es: "<<Y;
getch();
}

void main()
{
int P=3;
mi_funcion(P);
}
7.

// AUTOR: VELEZ SOSA OMAR


#include<iostream.h>
#include<conio.h>
void mi_funcion(int b)
{
int r;
r=b*5;
cout<<"La resultado de la multiplicancion del valor por 5 es: "<<r;
getch();
}

void main()
{
int y=3,x=4;
clrscr();
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
cout<<"cuando la variable vale: "<< x<<endl;
mi_funcion(x);
}
8.

// AUTOR: VELEZ SOSA OMAR


#include<conio.h>
#include<iostream.h>
void cuadrado(int y)
{
int cuadr;
cuadr=y*y;
cout<<"el valor ingresado elevado al cuadrado es: "<<cuadr;
getch();
}

void main(void)
{
int y=4,x;
clrscr();
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
cout<<"Introduzca un numero: ";
cin>>x;
cuadrado(x);
}
9.

// AUTOR: VELEZ SOSA OMAR


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

void Media(double x, double y){


int z,r;

z=(x+y)/2;
r=z*z;

cout<<"el promedio es :"<<z<<endl;


cout<<"el cuadrado del promedio es :"<<r;
getch();

}
void main( )
{
double x, y;
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
cout<<"ingrese dos elementos:";
cout<<endl;
cin>>x;
cin>>y;
Media(x,y);
}
10.

// AUTOR: VELEZ SOSA OMAR


#include<iostream.h>
#include<conio.h>
void mayor(int x,int y)
{
if(x>y)
{
cout<<"El numero mayor es:"<<x;
}
else
{
cout<<"El numero mayor es:"<<y;
}
getch();
}

void main()
{
int x,y;
clrscr();
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
cout<<"Ingrese un primer elemento a ejecutar:";
cin>>x;
cout<<"ingrese un segundo elemento a ejecutar: ";
cin>>y;
mayor(x,y);
}
11.

// AUTOR: VELEZ SOSA OMAR


#include<conio.h>
void Factorial(int n)
{
int i,fac;
fac=1;
for(i=2;i<=n;i++)
{
fac=fac*i;
}
cout<<"El factorial del numero ingresado es: "<<fac;
getch();
}
void main()
{
int z;
clrscr();
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
cout<<"Ingrese el elemento: ";
cin>>z;
Factorial(z);
}
13.

// AUTOR: VELEZ SOSA OMAR


#include<conio.h>
#include<iostream.h>
void piramide(int niveles)
{
int mitad = 1,ancho=1,f,i,j;
for(f=0;f<niveles;f++){
for(i=0;i<mitad;i++)
cout<<i+1;
if(ancho>1){
for(i=ancho;i>mitad;i--){
cout<<i-mitad;
}

}
ancho+=2;
mitad=ancho/2+1;
cout<<endl;
}
getch();
}
void main(){
int N;
clrscr();
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
cout<<"ingresar el numero de niveles:"<<endl;
cin>>N;

piramide(N);
}
14.

// AUTOR: VELEZ SOSA OMAR


#include<iostream.h>
#include<conio.h>
int ParImpar(int z)
{
int r;
r=z%2;
if(r==0)
{
cout<<"El numero ingresado es Par.";
}
else
{
cout<<"El numero ingresado es Impar.";
}
getch();
}
void main ()
{
int x;
clrscr();
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
cout<<"Ingresar el elemento para definir : ";
cin>>x;
ParImpar(x);
getch();
}
15.

// AUTOR: VELEZ SOSA OMAR


#include<iostream.h>
#include<conio.h>
void sumacuad(int n)
{
int i,j,suma,c;
suma=0;
for(i=1;i<=n;i++)
{
j=i*i;
suma=suma+j;
}
cout<<"La suma de los cuadrados de los "<<n<<" primeros elementos es: "<<suma;
getch();
}

void main()
{
int n;
clrscr();
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
cout<<"Ingrese el total de elementos: ";
cin>>n;
sumacuad(n);
}
16.

// AUTOR: VELEZ SOSA OMAR


#include<iostream.h>
#include<conio.h>
void ordena(int v[],int a)
{
int k,t,i,j;
for(i=1;i<=a;i++)
{
cout<<"ingrese el elemento: ";
cin>>v[i];
}
for(i=1;i<=a;i++)
{
k=i;
for(j=i+1;j<=a;j++)
{
if(v[j]<v[k])
{
k=j;
}
}
t=v[i];
v[i]=v[k];
v[k]=t;
}
cout<<"Datos ordenados en forma de decreciente"<<endl;
for( i=a;i>=1;i--)
{
cout<<endl<<v[i];
}
getch();
}
void main()
{
int y[50],t;
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
cout<<"ingrese la cantidad de datos; "; cin>>t;
ordena(y,t);
}
17. FUNCION

// AUTOR: VELEZ SOSA OMAR


#include<iostream.h>
#include<conio.h>
void Leer_Vector(int v[], int n)
{ for (int i = 0;i<n;i++)
{cout<<endl<<"Ingresar elemento:";
cin>>v[i];
}
}
int contar_ceros(int v[], int n)
{ int c;
c = 0;
for (int i = 0;i<n;i++)
if (v[i]==0)
c++;
return c;
}

void main()
{
int ceros[100];
int cant,cc;
clrscr();
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
cout<<"Ingrese cantidad de elementos:";
cin>>cant;
Leer_Vector(ceros,cant);
cc = contar_ceros(ceros,cant);
cout<<endl<<"Cantidad de ceros: "<<cc;
getch();
}
FUNCIONES
1. EL CUADRADO DE 4

// AUTOR: VELEZ SOSA OMAR


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

double Cuadrado(double entrada)


{
cout<<"HALLAR EL CUADRADO";
cout<<endl;
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
return entrada*entrada;
}

main( )
{
clrscr();
double valor, resultado;
valor = 4;
resultado = Cuadrado(valor);
cout<<endl;
cout<<"El cuadrado es:"<< resultado;
cout<<endl;
getch();
}
2. EL CUADRADO DE 8

// AUTOR: VELEZ SOSA OMAR


#include<conio.h>
#include<iostream.h>
double Cuadrado(double entrada)
{
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
return entrada*entrada;
}
main( )
{
clrscr();
double valor, resultado;
resultado=Cuadrado(8);
cout<<endl;
cout<<"El cuadrado es:"<< resultado;
cout<<endl;
getch();

}
3.

// AUTOR: VELEZ SOSA OMAR


#include<conio.h>
#include<iostream.h>
int Factorial(int n)
{
int i;
int aux =1;
clrscr();
for (i=2; i<=n; i++)
aux=aux * i;
return aux;
}
main()
{
int valor, resultado;
clrscr();
resultado = Factorial(valor);
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
cout<<"ingrese el valor a ejecutar:";
cin>>valor;
cout<<"el resultado del factorial es:";
cout<<resultado;
getch();
}
4.

// AUTOR: VELEZ SOSA OMAR


#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<ctype.h>

#define Verdadero 1
#define Falso 0
#define Max 10

void OrdenarVector(int V[])


{int Inc,tmp,j;
Inc=Max/2;
do{
for(int i=Inc;i<Max;i++)
{
tmp=V[i];
j=i-Inc;
while((j>=0)&&(tmp<V[j]))
{
V[j+Inc]=V[j];
j-=Inc;
}
V[j+Inc]=tmp;
}
Inc/=2;
}while(Inc!=0);

void Generar(int V[])


{ randomize();
for(int i=0;i<Max;i++)
V[i]=random(101);
cout<<endl<<"Vector generado...";
cout<<endl<<"Presione una tecla para continuar";
OrdenarVector(V);
getch();
}

void MostrarVector(int V[], int M)


{
for(int i=0;i<M;i++)
cout<<endl<<V[i];
cout<<endl<<"Presione una tecla para continuar";
getch();
}

int Busqueda(int V[])


{int Inf,Sup,Cen,Dato;
int NoEncontrado;
cout<<endl<<"Ingrese dato a buscar: ";
cin>>Dato;
Inf=0;E
Sup=Max-1;
NoEncontrado=Verdadero;
while(Inf<=Sup && NoEncontrado==Verdadero)
{ Cen=(Inf+Sup)/2;
if(V[Cen]==Dato)
NoEncontrado=Falso;
else
if(V[Cen]<Dato)
Inf=Cen+1;
else
Sup=Cen -1;
}
if(NoEncontrado)
return -1;
else
return Cen;
}

int Repeticiones (int V[])


{ int Dato,c;
cout<<endl<<"Ingrese dato a buscar repeticiones: ";
cin>>Dato;
c=0;
for(int i=0;i<Max;i++)
if(V[i]==Dato)
c++;
return c;
}

int ParImpar(int V[],int VA[],int Caso)


{int c,i;
c=0;
switch(Caso)
{
case 1: for(i=0;i<Max;i++)
if(V[i]%2==0)
{
VA[c]=V[i];
c++;
}
break;
case 2: for(i=0;i<Max;i++)
if(V[i]%2!=0)
{
VA[c]=V[i];
c++;
}
}
return c;
}

char Menu()
{ char R;
clrscr();
cout<<endl<<" Men£ ";
cout<<endl<<"---------------------";
cout<<endl<<"[G]. Generar vector";
cout<<endl<<"[M]. Mostrar Vector";
cout<<endl<<"[B]. B£squeda";
cout<<endl<<"[R]. Repeticiones";
cout<<endl<<"[P]. Pares/Impares";
cout<<endl<<"[S]. Salir";
cout<<endl<<"Opcion: ";
do{
cin>>R;
R=toupper(R);
}while(R!='G' && R!='M' && R!='B' && R!='R' && R!='P' && R!='S');
return R;
}
int MenuParImpar()
{ char R;
clrscr();
cout<<endl<<" Men£ Par/Impar ";
cout<<endl<<"-----------------------";
cout<<endl<<"[P]. Ejecutar Pares";
cout<<endl<<"[I]. Ejecutar impares";
cout<<endl<<"[V]. Ver Vector pares";
cout<<endl<<"[W]. Ver vector impares";
cout<<endl<<"[S]. Salir";
cout<<endl<<"Opcion: ";
do{
cin>>R;
R=toupper(R);
}while(R!='P' && R!='I' && R!='V' && R!='W' && R!='S');
return R;
}
void main()
{
clrscr();
cout<<"PROGRAMA 05";
cout<<endl;
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
cout<<endl;
int V[Max],Par[Max],Impar[Max];
int NI, NP,x;
char R, R2;

do{
R=Menu();
switch(R)
{
case 'G' : Generar(V);break;
case 'M' : MostrarVector(V,Max);break;
case 'B' : x=Busqueda(V);
if(x>=0)
cout<<endl<<"Encontrado en posici¢n: "<<x;
else
cout<<"No Encontrado";
cout<<endl<<"Presione una tecla para continuar";
getch();
break;
case 'R' : x=Repeticiones(V);
cout<<endl<<"Se repite "<<x<<" veces";
cout<<endl<<"Presione una tecla para continuar";
getch();
break;
case 'P' : do{
R2=MenuParImpar();
switch(R2)
{
case 'P' : NP=ParImpar(V,Par,1);break;
case 'I' : NI=ParImpar(V,Impar,2);break;
case 'V' : MostrarVector(Par,NP);break;
case 'W' : MostrarVector(Impar,NI);break;
}
}while(R2!='S');
}

}while(R!='S');
getch();
}
5. PROMEDIO

// AUTOR: VELEZ SOSA OMAR


#include<iostream.h>
#include<conio.h>
void leer_vector(int K[], int N)
{ clrscr();
cout<<"Ingrese los elementos del vector a ejecutar"<<endl;
for(int I=0;I<N;I++){
cin>>K[I];
}
}
double suma(int K[],int N)
{
double s=0;
for(int I=0;I<N;I++)
{
s=s+K[I];
}
return s;
}
double promedio(double suma,int N)
{
double p;
p=suma/N;

return p;
}
void main()
{ clrscr();
double r,pro;
int K[100],N;
cout<<"ingrese el total de elementos del vector:";
cin>>N;
leer_vector(K,N);
cout<<endl;
r=suma(K,N);
pro=promedio(r,N);
cout<<"La Suma de los elementos introducidos es:"<<r;
cout<<endl;
cout<<"el promedio del vector es:"<<pro;
getch();
}
6. HALLAR EL MAYOR DE UNA MATRIZ 3*3

// AUTOR: VELEZ SOSA OMAR


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

int fun_matriz(int B[10][10])


{
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
cout<<"ingrese los numeros de la matriz 3*3 :";
cout<<endl;
cout<<endl;
for (int I=1;I<=3;I++)

{ for(int J=1;J<=3;J++)

{
cout<<"A["<<I<<","<<J<<"]:";
cin>>B[I][J];
}
}

int fun_mayor(int A[10][10],int ma[10])


{ int mayr,b,k,I,J;
mayr=A[1][1];
for(int I=1;I<=3;I++)
{
for(int J=1;J<=3;J++)
{
if(mayr>A[I][J])
{
}
else
{
mayr=A[I][J];
b=I;
k=J;
}

}
}
ma[I]=mayr;
cout<<endl;
cout<<"La posicion del mayor elemento es : ";
//cout<<endl;
//cout<<"["<<I<<"]:";
cout<<"["<<b<<","<<k<<"]:";
//cout<<ma[I];
cout<<endl;

return mayr;
}
void main()
{
clrscr();
int p;
int t[10][10],ma[10];
fun_matriz(t);
p=fun_mayor(t,ma);
cout<<"el mayor numero es :";
cout<<p;
getch();
}
7. METODO SHELL

// AUTOR: VELEZ SOSA OMAR


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

int fun_shell(int V[50])


{ int Inc,I,J,tmp,N;
for(I=1;I<=N;I++)
{
cout<<"v["<<I<<"]:";
cin>>V[I];
}
Inc=N/2;
do
{
for(I=1;I<=N;I++)
{
tmp=V[I];
J=I-Inc;
while(J>=0&tmp<V[J])
{
V[J+Inc]=V[J];
J=J-Inc;
}
V[J+Inc]=tmp;
}
Inc=Inc/2;
}
while(Inc!=0);
cout<<endl;
cout<<"los numeros ordenados son:";
cout<<endl;
cout<<endl;
for(I=1;I<=N;I++)
{

cout<<"dato ["<<I<<"]:"<<V[I]<<endl<<endl;
}

return 0;
}
void main()
{ clrscr();
int p;
int V[50],N;
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
cout<<"ingrese la cantidad de elementos:";
cin>>N;
p=fun_shell(V);
cout<<endl;
getch();
}
8. LA SUMA DE UNA MATRIZ

// AUTOR: VELEZ SOSA OMAR


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

int fun_matriz(int A[10][10],int p)

{
cout<<"ingrese los elementos de la matriz A:";
cout<<endl;
cout<<endl;
for(int i=1;i<=p;i++)
{
for(int j=1;j<=p;j++)
{
cout<<"A["<<i<<","<<j<<"]:";
cin>>A[i][j];
}

}
}

int fun_suma(int A[10][10],int p)

{ int i,j;
int s=0;
for( i=1;i<=p;i++)
{
for(int j=1;j<=p;j++)
{
s=s+A[i][j];
}

}
cout<<endl;
cout<<"La suma de la matris es:";
cout<<s;
cout<<endl;
return 0;
}

void main()
{
clrscr();
int p;
int t[10][10];
cout<<"AUTOR : OMAR VELEZ";
cout<<endl;
cout<<"ingrese el orden de la matriz:";
cin>>p;
fun_matriz(t,p);
p=fun_suma(t,p);
cout<<endl;
cout<<endl;
getch();
}
“UNIVERSIDAD JOSÈ CARLOS MARIATEGUI”
INGIENIERIA DE SISTEMAS E INFORMATICA

INTEGRANTES:
VELEZ SOSA, Omar Brayan
112081024P

DOCENTE:
LIC. MELINA ALFERES GARCIA

CURSO:
ESTRUCTURA DE DATOS

TEMA:
Problemas resueltos de
Recursividad, funciones y procedimiento

CICLO:
III

« MOQUEGUA - PERU »

2012

Das könnte Ihnen auch gefallen