Вы находитесь на странице: 1из 11

Deber # 6 Fundamentos de la programacin

Nombre:
Lenin A. Herrera M.

Fecha:
10-12-12

Paralelo:
C

Carrera:
Ing. Electrnica y telecomunicaciones.


Ej.6.3. Disear un algoritmo para calcular el mximo comn divisor de
cuatro nmeros basado en un subalgoritmo funcin mcd ( mximo
comn divisor de 2 nmeros)
a. Codificacin en C++.-
#include <iostream>

using namespace std;
int a,b,c,d;

int mcd (int a, int b, int c, int d);


int main ()
{
cout<< "Ingrese cuadro numeros para calcular el MCD"<<endl;
cin >> a;
cin >> b;
cin >> c;
cin >> d;

cout << "El maximo comun divisor es: " << mcd (a,b,c,d);


}

int mcd (int a, int b, int c, int d)
{
int y, z, p, q, r, t, x1=1, x2=1, x3=1, i=2, mcm1, mcm2, mcm3;

if (a<b)
{
y=a;
z=b;
}
else
{
y=b;
z=a;
}

do{
if (y%i==0)
{
if(z%i==0)
{
x1=x1*i;
y=y/i;
z=z/i;
i=2;
}
else i++;
}
else i++;
}
while(i<=y);

x1=x1*z*y;

mcm1 = (a*b)/x1;


if (c<d)
{
p=c;
q=d;
}
else
{
p=d;
q=c;
}

do{
if (p%i==0)
{
if(q%i==0)
{
x2=x2*i;
p=p/i;
q=q/i;
i=2;
}
else i++;
}
else i++;
}
while(i<=p);

x2=x2*q*p;

mcm2= (c*d)/x2;


if (mcm1<mcm2)
{
r=mcm1;
t=mcm2;
}
else
{
r=mcm2;
t=mcm1;
}

do{
if (r%i==0)
{
if(t%i==0)
{
x3=x3*i;
r=r/i;
t=t/i;
i=2;
}
else i++;
}
else i++;
}
while(i<=r);

x3=x3*t*r;

mcm3 = (mcm1*mcm2)/x3;

return mcm3;

}
b. Ejecucin CODE::BLOCKS







6.11. Realizar un procedimiento que obtenga la divisin entera y el
resto de la misma utilizando nicamente los operadores suma y resta.
a. Codificacin C++.
#include <iostream>

using namespace std;

int entera (int n1, int n2);
int residuo(int n1, int n2);

int n1,n2;

int main ()
{
cout << "Ingrese el dividendo" << endl;
cin >> n1;
cout << "Ingrese el divisor" << endl;
cin >> n2;

cout << "La divicion entera es : " << entera(n1, n2) << endl;
cout << "El residuo de la divicion es : " << residuo(n1, n2)<< endl;
}

int entera (int n1, int n2)
{
int r,c,x;
r=0;
c=0;
x=0;

for (int j=n2; j <=n1;)
{
j=j+n2;
c=c+1;
r=n1+n2-j;

}
return c;


}

int residuo (int n1, int n2)
{
int r,c,x;
r=0;
c=0;
x=0;

for (int j=n2; j <=n1;)
{
j=j+n2;
c=c+1;
r=n1+n2-j;

}



return r;



}
b. Ejecucin CODE::BLOCKS


Ej. Determinar el coseno de un angulo expresado en grados empleando
la serie (20 trminos)
a. Codificacin C++.
#include <iostream>
#include <cmath>
#include <matematicas.h>
using namespace std;

float cos (int ang);

int main()
{
int ang;

cout<<"Ingrese el angulo: ";
cin>>ang;

cout<<"El coseno es : "<<cos(ang);
}
float cos(int ang)
{
long double r=0;
float c;
c=(3.1416*ang)/180;
for (int i=0;i<=20;i++)
{
r = r + (potencia(-1,i)*potencia(c,2*i))/factorial(2*i);
}
return r;
}
b. Ejecucin CODE::BLOCKS.


Ej.6.7.Realizar un procedimiento que realice la conversin de
coordenadas polares (r,) a coordenadas cartecianas (x,y).
X=r.cos()
Y=r.sen()
a. Codificacin C++.

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

using namespace std;

float x (int r, int o);
float y (int r, int o);
int r,o;

int main ()
{
cout<<"Ingrese el radio"<<endl;
cin>>r;
cout<<"Ingrese el angulo teta"<<endl;
cin>>o;
//Los valores resultantes son sacados en radianes
cout<<"Lascooerdenadas cartesianas
son:"<<"x:"<<x(r,o)<<","<<"y:"<<y(r,o)<<endl;
}

float x (int r, int o)
{
return r*(cos(o));
}

float y (int r, int o)
{
return r*(sin(o));
}



b. Ejecucin CODE::BLOCKS

Ej. Minimo comn mltiplo de 2 numeros.
a. Codificacin C++.
#include <iostream>

using namespace std;
int n1, n2;

int mcm (int n1, int n2);

int main ()
{

cout << "Ingrese el primer numero" << endl;
cin >> n1;

cout << "Ingrese el segundo numero" << endl;
cin >> n2;

cout << "El minimo es: " << mcm (n1,n2);

return 0;
}

int mcm (int n1, int n2)
{
int c, d, x=1, i=2;

if (n1<n2)
{
c=n1;
d=n2;
}
else
{
c=n2;
d=n1;
}

do{
if (c%i==0)
{
if(d%i==0)
{
x=x*i;
c=c/i;
d=d/i;
i=2;
}
else i++;
}
else i++;
}
while(i<=c);

x=x*d*c;

return x;
}
b. Ejecucin CODE::BLOCKS