Documente Academic
Documente Profesional
Documente Cultură
PROYECTO 3 PARCIAL
GRUPO: 1MM1
08 DE ENERO DE 2016
ndice
Pg.
Introduccin..3
Objetivo............4
Justificacin del programa.....5
Funcin: La circunferencia y sus problemas..6
Funcin: La elipse y sus problemas........7
Funcin: Prueba de primalidad.8
Funcin: Clculo de mximo comn divisor y mnimo comn
mltiplo.....9
Funcin: Conjetura de Goldbach para un nmero9
Funcin: Simplificacin de fracciones...10
Funcin: Raz ensima de la unidad.10
Cdigo del programa11
Conclusin..32
Introduccin
Objetivo:
Descripcin de variables
b es la variable del men principal, a esta se le asigna un numero entero de
acuerdo a la opcin que el usuario desea elegir.
c es la variable del men interno que corresponde a definiciones de la
circunferencia, al igual que el caso anterior, el usuario decide que numero entero
del men desea ingresar de acuerdo a lo que necesita.
e es la variable del men interno que corresponde a las opciones con las cuales
podemos hallar la ecuacin de la circunferencia, su centro y su radio, el usuario
elige una de las opciones que se despliegan de acuerdo a los datos con los que
cuenta.
r representa el radio de la circunferencia.
h representa la abscisa en la coordenada de centro de la circunferencia
k representa la ordenada en la coordenada del centro de la circunferencia dada.
r2 representa el radio de la circunferencia elevado al cuadrado.
En la ecuacin usual tenemos la suma de dos binomios elevados al cuadrado.
Al elevar al cuadrado obtenemos que x2 + 2xh + h2 y y2 + 2yk + k2, as utilizamos
j=2*h
l=2*k
y s para expresar la suma de todos los cuadrado que no contuvieran incgnitas y o
x
s= k2+h2+r2
10
#include <stdio.h>
#include <math.h>
#include<conio.h>
#include<windows.h>
void prime(void);
void mdmm(void);
void circunferencia(void);
void goldbach(void);
void fraccion(void);
11
void raiz(void);
void elipse(void);
int g,b;
int main(){
int i;
system("cls");
i=7;
printf("\n\t\t\t\t ----------------------------------------------");
printf("\n\t\t\t\t*|| INSTITUTO POLITECNICO NACIONAL
||*");
printf("\n\t\t\t\t*|| ESCUELA SUPERIOR DE FISICA Y MATEMATICAS ||*");
printf("\n\t\t\t\t*|| INGENIERIA MATEMATICA - 1MM1
||*");
printf("\n\t\t\t\t*|| INTRODUCCION A LA INFORMATICA
||*");
printf("\n\t\t\t\t*|| PROYECTO PARA TERCER PARCIAL
||*");
printf("\n\t\t\t\t ----------------------------------------------");
while(--i){
Sleep(800);
if(i==1){
system("color 6");
}
if(i==2){
printf("\n\t\t\t*Ulises Aldair Moreno\n");
system("color 2");
}
if(i==3){
printf("\n\t\t\t*David Valencia Carmona\n");
system("color 3");
}
if(i==4){
printf("\n\t\t\t*Fernando Angel Garcia Mandujano\n");
system("color 4");
}
if(i==5){
printf("\n\t\t\t*Jessica Michelle Rojas Salinas\n");
system("color 5");
}
if(i==6){
12
13
break;
case 7:
raiz();
break;
default:
printf("\t\tEntrada no valida\n\n");
break;
}
system("cls");
printf("\n\n\t________________________________________________________
_____________________________________________");
printf("\n\t\t\t*Presione 1 para volver al menu inicial u otra tecla para salir del
programa: ");
scanf("%d",&g);
}while(g==1);
}
void circunferencia(){
float a, p, A, B, R, D, E, F, mtg, G, V, matriz3x4[3][4],C,C1,C2;
int b,c,d,e, r, h, k, r2, s, j, l, i, o, radio, u, w;
char x,y;
do{
system("cls");
system("color 0B");
printf("\n\t\t\t\tLa Circunferencia");
printf("\n\t__________________________________________________________
___________________");
printf("\n\n\t\tIntroduzca el numero de acuerdo a lo que desea hacer:\n\n");
printf("\t\t1.- Obtener alguna definicion referente a cincunferencia.\n");
printf("\t\t2.- Ver la forma de las ecuaciones de una cincunferencia.\n");
printf("\t\t3.- Hallar la ecuacion, centro y radio de alguna circunferencia.\n");
printf("\t\t4.- Hallar la ecuacion de la recta tangente a alguna
circunferencia.\n");
printf("\t\t5.- Hallar la longitud de alguna circunferencia.\n");
printf("\t\t6.- Salir.\n\n");
scanf("%d", &b);
if(b==1)
{
14
system("cls");
system("color 0D");
printf("\nQue definicion deseas obtener?\n\n");
printf("1.- Circunferencia\n");
printf("2.- Centro de la circunferencia\n");
printf("3.- Radio de la circunferencia\n");
printf("4.- Tangente a la circunferencia\n\n");
scanf("%d", &c);
if(c==1){
system("cls");
system("color AF");
printf("\n\tCircunferencia:\n");
printf("Conjunto de todos los puntos del plano que equidistan de un punto
fijo.\n\n");
}
if(c==2){
system("cls");
system("color 2D");
printf("\n\tCentro de la circunferencia:\n");
printf("Es el punto fijo del que equidistan todos los puntos de la
circunferencia.\n");
printf("Se expresa como C(h,k)\n \tDonde h es la abscisa y k es la
ordenada.\n\n");
}
if(c==3){
system("cls");
system("color BF");
printf("\n\tRadio de la circunferencia:\n");
printf("Distancia del centro a los puntos de la circunferencia.\nSe simboliza
por la letra r y siempre es positivo.\n\n");
}
if(c==4){
system("cls");
system("color 85");
printf("\n\tTangente a la circunferencia:\n");
printf("Es una recta que toca a la circunferencia en un solo punto.\n\n");
}
}
15
if(b==2){
system("cls");
system("color F5");
printf("\n\tEcuaciones:\n\n\n");
printf("Forma usual, ordinaria o canonica\n\n");
printf("(x-h)^2+(y-k)^2= r^2\n");
printf("Donde\tr es el radio\n");
printf(" \t(x,y) es un punto de la circunferencia\n");
printf(" \t(h,k) es el centro de la circunferencia\n\n\n\n");
printf("Ecuacion General\n\n");
printf("(x^2)+(y^2)+Dx+Ey+F=0\n\n");
}
if(b==3) {
system("cls");
system("color 09");
printf("\nSeleccione con que datos cuenta\n\n");
printf("1.- Centro y Radio\n");
printf("2.- Centro y punto de la circunferencia\n");
printf("3.- Los puntos extremos de un diametro de la circunferencia\n");
printf("4.- Tres puntos de la circunferencia\n");
scanf("%d", &e);
if(e==1){
system("cls");
printf("Introducir el valor del radio r\n");
scanf("%d", &r);
printf("Introduce las coordenadas del centro C(h,k)\n");
printf("h=");
scanf("%d", &h);
printf("k=");
scanf("%d", &k);
r2=pow(r,2);
printf("La ecuacion usual de la circunferencia es:(x-%d)^2 + (y%d)=%d\n", h,k,r2);
j=2*h;
l=2*k;
s= pow(h,2)+pow(k,2)-r2;
printf("La ecuacion general de la circunferencia es:
x^2+y^2+%dx+%dy+%d=0", j,l,s);
}
if(e==2){
16
system("cls");
printf("Introduce las coordenadas del centro C(h,k)\n");
printf("h=");
scanf("%d", &h);
printf("k=");
scanf("%d", &k);
printf("Introduce las coordenadas del punto P(x,y)\n");
printf("x=");
scanf("%d", &i);
printf("y=");
scanf("%d", &o);
radio=sqrt(pow((i-h),2)+pow((o-k),2));
printf("El radio es:%f", radio);
printf("La ecuacion usual de la circunferencia es: (x-%d)^2+(y%d)^2=%d", h,k, pow(radio,2));
j=2*h;
l=2*k;
s= pow(h,2)+pow(k,2)-r2;
printf("La ecuacion general de la circunferencia es:
x^2+y^2+%dx+%dy+%d=0", j,l,s);
}
if(e==3){
system("cls");
printf("Introduce las coordenadas del primer punto P(x,y)\n");
printf("x=");
scanf("%d", &i);
printf("y=");
scanf("%d", &o);
printf("Introduce las coordenadas del segundo punto P(x,y)\n");
printf("x=");
scanf("%d", &u);
printf("y=");
scanf("%d", &w);
r=(sqrt(pow(u-i,2)+pow(w-o,2)))/2;
printf("El radio de la circunferencia que tiene su diametro en esos
dos puntos es:%f\n",r);
h=(i+u)/2;
k=(o+w)/2;
printf("El centro de la circunferencia es:\n");
17
printf("C(%f, %f)",h,k);
printf("La ecuacion usual de la circunferencia proporcionada
es:\n");
r2=pow(r,2);
printf("(x-%f)^2+(y-%f)^2=%f",h, k,r2);
}
if(e==4) {
//tres puntos de la circunferencia
system("cls");
printf("Introduce las coordenadas del primer punto\n");
printf("x=");
scanf("%f", &matriz3x4[0][0]);
printf("y=");
scanf("%f", &matriz3x4[0][1]);
matriz3x4[0][2]=1;
matriz3x4[0][3]=pow(matriz3x4[0][0],2)+pow(matriz3x4[0][1],2);
printf("Introduce las coordenadas del segundo punto\n");
printf("x=");
scanf("%f", &matriz3x4[1][0] );
printf("y=");
scanf("%f", &matriz3x4[1][1] );
matriz3x4[1][2]=1;
matriz3x4[1][3]=pow(matriz3x4[1][0],2)+pow(matriz3x4[1][1],2);
printf("Introduce las coordenadas del tercer punto \n");
printf("x=");
scanf("%f", &matriz3x4[2][0] );
printf("y=");
scanf("%f", &matriz3x4[2][1] );
matriz3x4[2][2]=1;
matriz3x4[2][3]=pow(matriz3x4[2][0],2)+pow(matriz3x4[2][1],2);
//Resolviendo sistema con base en metodo de Gauss-Jordan
matriz3x4[0][1]=matriz3x4[0][1]/matriz3x4[0][0];
matriz3x4[0][2]=matriz3x4[0][2]/matriz3x4[0][0];
matriz3x4[0][3]=matriz3x4[0][3]/matriz3x4[0][0];
matriz3x4[0][0]=matriz3x4[0][0]/matriz3x4[0][0];// Se hace 1
//---------------------------------------------matriz3x4[1][1]=((matriz3x4[1][0])*matriz3x4[0][1])+matriz3x4[1][1];
matriz3x4[1][2]=((matriz3x4[1][0])*matriz3x4[0][2])+matriz3x4[1][2];
18
matriz3x4[1][3]=((matriz3x4[1][0])*matriz3x4[0][3])+matriz3x4[1][3];
matriz3x4[1][0]=((matriz3x4[1][0])*matriz3x4[0][0])+matriz3x4[1][0];// Se hace 0
matriz3x4[2][1]=((matriz3x4[2][0])*matriz3x4[0][1])+matriz3x4[2][1];
matriz3x4[2][2]=((matriz3x4[2][0])*matriz3x4[0][2])+matriz3x4[2][2];
matriz3x4[2][3]=((matriz3x4[2][0])*matriz3x4[0][3])+matriz3x4[2][3];
matriz3x4[2][0]=((matriz3x4[2][0])*matriz3x4[0][0])+matriz3x4[2][0];// Se hace 0
//------------------------------------------------------------------matriz3x4[1][2]=matriz3x4[1][2]/matriz3x4[1][1];
matriz3x4[1][3]=matriz3x4[1][3]/matriz3x4[1][1];
matriz3x4[1][1]=matriz3x4[1][1]/matriz3x4[1][1];// Se hace 1
//---------------------------------------------matriz3x4[0][2]=((matriz3x4[0][1])*matriz3x4[1][2])+matriz3x4[0][2];
matriz3x4[0][3]=((matriz3x4[0][1])*matriz3x4[1][3])+matriz3x4[0][3];
matriz3x4[0][1]=((matriz3x4[0][1])*matriz3x4[1][1])+matriz3x4[0][1];// Se hace 0
matriz3x4[2][2]=((matriz3x4[2][1])*matriz3x4[1][2])+matriz3x4[2][2];
matriz3x4[2][3]=((matriz3x4[2][1])*matriz3x4[1][3])+matriz3x4[2][3];
matriz3x4[2][1]=((matriz3x4[2][1])*matriz3x4[1][1])+matriz3x4[2][1];// Se hace 0
//------------------------------------------------------------------matriz3x4[2][3]=matriz3x4[2][3]/matriz3x4[2][2];//Solucion variable
z
matriz3x4[2][2]=matriz3x4[2][2]/matriz3x4[2][2];
//------------------------------------------------------------------matriz3x4[0][3]=((matriz3x4[0][2])*matriz3x4[2][3])+matriz3x4[0][3];//Solucion variable x
matriz3x4[0][2]=((matriz3x4[0][2])*matriz3x4[2][2])+matriz3x4[0][2];
matriz3x4[1][3]=((matriz3x4[1][2])*matriz3x4[2][3])+matriz3x4[1][3];//Solucion variable y
19
matriz3x4[1][2]=((matriz3x4[1][2])*matriz3x4[2][2])+matriz3x4[1][2];
//------------------------------------------------------------------D=matriz3x4[0][3];
E=matriz3x4[1][3];
F=matriz3x4[2][3];
printf("\nEl centro de la circunferencia que pasa por los 3 puntos
proporcionados es:\n");
C1=(D/2);
C2=(E/2);
printf("\tC(%f,%f)\n", C1,C2);
R=(sqrt((pow(D,2))+(pow(E,2))-(4*F)))/2;
printf("\nEl radio de la circunferencia que pasa por los 3 puntos
proporcionados es:\n");
printf("\nr=%f", R);
}
}
if(b==4){
system("cls");
system("color F3");
printf("\nIntroduce las coordenadas del punto que se conoce\n");
printf("x=");
scanf("%d", &b);
printf("y=");
scanf("%d",&c);
printf("Recordemos que la ecuacion de la circunferencia es de la
forma:\n");
printf("\tx^2 + y^2 + Dx + Ey+ F = 0 \n\n");
printf("Introduce el valor de D\n");
scanf("%f",&D);
printf("Introduce el valor de E\n");
scanf("%f",&E);
printf("Introduce el valor de F\n");
scanf("%f",&F);
A=-1*(D/2);
B=-1*(E/2);
printf("\nEl centro de la circunferencia proporcionada es:\n");
printf("\tC(%.2f,%.2f)\n\n", A, B);
R=(sqrt(pow(D,2)+pow(E,2)-(4*F)))/2;
printf("El radio de la circunferencia proporcionada es:\n");
printf("\tr=%.2f\n\n", R);
20
mtg=((b-A)/(c-B));
G=1*c;
V=1*b;
printf("La ecuacion de la recta tangente a la circunferencia proporcionada
es:\n");
printf("y-%.0f=%.2f(x-%.0f)", G, mtg, V);
}
if(b==5){
system("cls");
system("color F8");
printf("\n\nIntroduce el radio de la circunferencia\n\n");
printf("r=");
scanf("%f", &a);
p=2*3.1416*a;
printf("\n\n\nLa longitud de la circunferencia dada es: %.3f\n",p);
}
printf("\n\n\t________________________________________________________
_____________________");
printf("\n\t\t\t*Presione 1 para repetir u otra tecla para salir: ");
scanf("%d", &d);
}while(d==1);
return 0;
}
void elipse (void){
int a[5],i,j,s,h;
float b[5],d[6],e[2],f,k[3],n[6],m[10];
//SE DAN A CONOCER LAS OPCIONES DISPONIBLES PARA EL USUARIO
//PONEMOS EJEMPLIFICACIONES PARA UNA MEJOR COMPRENSION
do{
system("cls");
printf("\n\t\tLA ELIPSE");
printf("\n\t\t_________________________________________________________
___\n\n");
printf("\t\tObtener los valores de la elipse cuando se tienen las ecuaciones:\n");
printf("\n\t\t1.-De la forma:\n\t\t n1x^2 + n2y^2 + n3x + n4y + n5 = n6 \n");
printf("\t\tEjemplo:\n\t\t3x^2 + 5y^2 + -6x + 20y + 8 = 0 \n\n");
21
22
d[1]=sqrt(a[2]);
d[2]=sqrt(a[4]);
//DAMOS UNA SERIE DE CONDICIONES EN EL CODIGO YA QUE EXISTEN
DOS POSIBLES SOLUCIONES A LOS PROBLEMAS
//PERO SOLO UNA ES VALIDA
if (a[2]<a[4]){
d[3]=sqrt(pow(d[2],2)-pow(d[1],2));
}
else {
d[3]=sqrt(pow(d[1],2)-pow(d[2],2));
}
if (a[2]<a[4]){
e[1]=a[3]+d[3];
e[2]=a[3]-d[3];
23
}
else {
e[1]=a[1]+d[3];
e[2]=a[1]-d[3];
}
// SE DAN A CONOCER LAS PARTES DE LA ELIPSE CON EXPLICACIONES
printf("LOS VALORES DE LA ELIPSE SON LOS SIGUIENTES\n\n");
printf("Si el valor mas grande se encuentra debajo de x^2");
printf(" entonces es una parabola Horizontal\n De lo contrario es Vertical\n");
printf("El valor de -a- estara definido por la raiz del valor del numero mayor\n");
printf("El valor de -b- estara definido por la raiz del valor del numero menor\n");
printf("El valor de -c- se define como la raiz del valor de -a- al cuadrado menos -bal cuadrado\n ");
printf("\nTenemos que...\n");
if (a[2]<a[4]){
printf("Es una elipse vertical\n");
printf("a=%f\n",d[2]);
printf("b=%f\n",d[1]);
}
else {
printf("Es una elipse horizontal\n");
printf("a=%f\n",d[1]);
printf("b=%f\n",d[2]);
}
printf("c=%f\n",d[3]);
printf("El eje mayor esta definido como el doble del valor de a\n");
printf("El eje menor esta definido como el doble del valor de b\n");
if (a[2]<a[4]){
d[4]=2*d[2];
printf("\nEje mayor = %f \n",d[4]);
d[5]=2*d[1];
printf("Eje menor = %f \n",d[5]);
}
else {
d[4]=2*d[1];
printf("\nEje mayor = %f \n",d[4]);
24
d[5]=2*d[2];
printf("Eje menor = %f \n",d[5]);
}
d[6]=2*d[3];
printf("Asi mismo La distancia entre los focos se define por el doble de c\n");
printf("La distancia entre los focos = %f\n\n",d[6]);
printf("Los vertices se definen segun el tipo de la elipse\n");
printf("Si es horizontal se le suma y resta el valor de -a- al eje de las x\n");
printf("Si es vertical se le suma y resta el valor de -a- al eje de las
y\n");
printf("Las coordendas mencionadas se tienen al obtener el centro\n");
if (a[2]<a[4]){
k[1]=a[3]+d[2];
k[2]=a[3]-d[2];
printf("Los vertices son:\nv1 ( %d , %f)\nv2 ( %d , %f)\n\n",a[1],k[1],a[1],k[2]);
k[3]= (2*(pow(d[1],2)))/d[2];
printf("El Lado Recto = %f\n ",k[3]);
}
else {
k[1]=a[1]+d[1];
k[2]=a[1]-d[1];
printf("Los vertices son:\nv1 ( %f , %d)\nv2 ( %f , %d)\n\n",k[1],a[3],k[2],a[3]);
k[3]= (2*(pow(d[2],2)))/d[1];
printf("El lado recto es la cuerda que pasa por un foco y es perpendicular al
eje focal");
printf(">Nos puede ayudar a trazar la elipse< ");
printf("El Lado Recto = %f\n ",k[3]);
}
printf("\n\n");
printf("El centro es algo facil de localizar\n Se obtiene al extraer el numero sumado
a ");
printf("la x al cuadrado para ubicar el eje de las x, y asi mismo la coordenada de
las y se obtiene");
printf("al extraer el numero sumado a la y elevada al cuadrado (en la ecuacion)\n");
25
printf("Similar que los vertices, los focos se localizan al sumar y restar el valor de c-");
printf(" al eje de las x's o de las y's' segun sea el tipo de elipse\n");
if (a[2]<a[4]){
e[1]=a[3]+d[3];
e[2]=a[3]-d[3];
printf("Los focos son:\nf1 ( %f , %f)\nf2 ( %f , %f)\n\n",a[1],e[1],a[1],e[2]);
}
else {
e[1]=a[1]+d[3];
e[2]=a[1]-d[3];
printf("Los focos son:\nf1 ( %f , %f)\nf2 ( %f , %f)\n\n",e[1],a[3],e[2],a[3]);
}
printf("La exentricidad nos indica que tan apegada a una circunferencia esta la
elipse\n");
printf("Si el valor se acerca al 1 indica que es casi una circunferencia");
printf("La exentricidad siempre es menor que 1 y mayor que 0");
if (a[2]<a[4]){
f=d[3]/d[2];
printf("\nLa exentricidad es = %f/%f\n o %f\n",d[3],d[2],f);
}
else {
f=d[3]/d[1];
printf("La exentricidad es = %f/%f\n o %f",d[3],d[1],f);
printf("Gracias por utilizar esta herramienta de apoyo estudiantil!!! :D");
}
break;
}
default:{
printf("\n\n >>Opcion no valida<< \n\n");
break;
}
}
26
printf("\n\n\t________________________________________________________
_____________________");
printf("\n\t\t\t*Presione 1 para repetir u otra tecla para salir: ");
scanf("%d",&g);
}while(g==1);
return 0;
}
void prime(void){
int x,i,t;
do{
system("cls");
printf("\n\tPrueba la primalidad del numero natural dado, si es
compuesto\n\tmostrara sus divisores.");
printf("\n\t__________________________________________________________
__\n\n");
printf("\t\tIntroduce el numero: ");
scanf("%d",&x);
t=0;
for(i=2;i<x;i++){
if(i!=x&&x%i==0){
t=t+1;
if(t==1){
printf("\t\tNo es primo, y sus divisores son:\n\n");
}
printf("\t\t%d",i);
printf("\n");
}
}
printf("\n");
if(x!=1&&t==0){
printf("\t\tEs primo.\n\n");
}
if(x==1){
printf("\t\tEl uno, por definicin, no es primo.\n\n");
}
printf("\n\n\t________________________________________________________
_____________________");
27
r=m1%m2;
while(r!=0){
r=m1%m2;
m1=m2;
m2=r;
}
printf("\t\tEl maximo comun divisor es: %d\n",m1);
printf("\t\tEl minimo comun multiplo es: %d\n\n",(x*y)/m1);
28
printf("\n\n\t___________________________________________________
__________________________");
printf("\n\t\t\t*Presione 1 para repetir u otra tecla para salir: ");
scanf("%d",&g);
}while(g==1);
return 0;
}
void goldbach(){
do{
mod:
system("cls");
int x,y=0,j,i,a;
printf("\n\tTodo numero par mayor que 2 puede escribirse como suma de dos
numeros primos.");
printf("\n\n\t\t\t\t\t\tChristian Goldbach (1742)");
printf("\n\t__________________________________________________________
___________________");
printf("\n\n\n\t\tIntroduce un numero: ");
scanf("%d",&x);
int primos[x];
if(x<=2||x%2!=0){
printf("\n\n\n\t\t\tNumero no valido.\n\n ");
system("pause");
goto mod;
}
for (j=2;j<=x;j++){
a=0;
for(i=2;i<j;i++){
if(j%i==0)
a=1;
}
if (a==0){
y++;
primos[y]=j;
}
}
printf("\n\t\t\tLos primos hasta %d son: \n",x);
for(j=1;j<=y;j++){
29
printf("\t\t\t\t%d\n",primos[j]);
}
printf("\n");
for(j=1;j<=y;j++){
for(i=y;i>=1;i--){
if((primos[j]+primos[i])==x){
printf("\t\t\t\tUna posibilidad de suma es: %d + %d = %d,
entre %d primos.\n",primos[j],primos[i],x,y);
j=y+1;
}
}
}
printf("\n\n\t________________________________________________________
_____________________");
printf("\n\t\t\t*Presione 1 para repetir u otra tecla para salir: ");
scanf("%d",&g);
}while(g==1);
return 0;
}
void fraccion(){
int M,N,i,menor, multiplo, hay_multiplo;
do{
system("cls");
printf("\n\tSimplifica fracciones.");
printf("\n\t__________________________________________________________
___________________");
printf("\n\n\tIntroduzca el numerador: ");
scanf("%d", &M);
printf("\n\n\tIntroduzca el denominador: ");
scanf("%d", &N);
printf("\n\n\t%d/%d", M,N);
do {
if (M < N )
menor = M;
30
else
menor = N;
i=2;
hay_multiplo=0;
while (i <= menor && hay_multiplo == 0){
if (M % i == 0 && N % i == 0){
multiplo = i;
hay_multiplo = 1;
}
i++;
}
if (hay_multiplo == 1){
M=M/multiplo;
N=N/multiplo;
printf(" = %d/%d", M, N);
}
}while (hay_multiplo==1);
printf("\n\n\t________________________________________________________
_____________________");
printf("\n\t\t\t*Presione 1 para repetir u otra tecla para salir: ");
scanf("%d",&g);
}while(g==1);
return 0;
}
void raiz(){
float x;
float raiz,redondeo,y;
int aprox,M,N,i,menor, multiplo, hay_multiplo;
do{
system("cls");
printf("\n\tCalcula la raiz n-esima de un numero, representada en decimal y
racional.");
printf("\n\t__________________________________________________________
___________________");
printf("\n\n\tRadicando: ");
31
scanf("%f",&x);
printf("\n\n\tIndice raiz: ");
scanf("%f",&y);
aprox = pow(10,6);
raiz = pow(sqrt(pow(x,2)),1/y); /* La raz es exponente fraccionario */
redondeo = round(aprox*raiz);
if(x>=0)
printf("\n\n\tDecimal: %f",raiz);
else
printf("\n\n\tDecimal: %fi",raiz);
/*A partir de aqui es generar la representacion y simplificacin en forma
reacional*/
M = redondeo;
N = aprox;
if(x>=0)
printf("\n\n\tFraccion: %d/%d", M,N);
else
printf("\n\n\tFraccion: %di/%d", M,N);
do {
if (M < N )
menor = M;
else
menor = N;
i=2;
hay_multiplo=0;
while (i <= menor && hay_multiplo == 0){
if (M % i == 0 && N % i == 0){
multiplo = i;
hay_multiplo = 1;
}
i++;
}
if (hay_multiplo == 1){
M=M/multiplo;
N=N/multiplo;
if(x>=0)
printf(" = %d/%d", M, N);
else
printf(" = %di/%d", M, N);
}
32
}while (hay_multiplo==1);
printf("\n\n\t________________________________________________________
_____________________");
printf("\n\t\t\t*Presione 1 para repetir u otra tecla para salir: ");
scanf("%d",&g);
}while(g==1);
return 0;
}
33
Conclusin
34