Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - angel1397

#1
Buenas amigos.... hice un codigo pero me dice que de dejo de funcionar y no encuentro el error... si me podrian ayudar por favor....#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<windows.h>
main()
{
int n,i=0,x[n],el[n],conf=0,nf,l=0,j=0,f=3;
float arre[10][7],e,sum1=0,sum2=0,sum3=0,vp,va;

printf("A:");
scanf("%f",&arre[0][0]);
printf("B:");
scanf("%f",&arre[0][1]);
printf("Tama%co de la funcion:",164);
scanf("%d",&n);


while(conf==0)//confirma los datos
{

while(n>i)//pide x y elevaciones
{
printf("X:");
scanf("%d",&x[i]);
printf("Elevado a la:");
scanf("%d",&el[i]);
i++;
}
printf("Desea agregar un numero al final de la ecuacion?\n1=si/0=no:");
scanf("%d",&conf);
if(conf==1)
{
printf("Numero final:");
scanf("%d",&nf);
}

i=0;
while(n>i)
{
printf("%dX%d ",x[i],el[i]);
i++;
}
if(conf==1)
printf("%d",nf);
i=0;
printf("\n0 para ingresar nuevamente los datos/1 para continuar:");//confirma los datos
scanf("%d",&conf);
system("cls");
}

while(conf==1)
{
arre[l][2]=(arre[l][0]+arre[l][1])/2;
printf("C:%.4f",arre[l][2]);
while(i<n)
{
sum1=pow(arre[l][0],el[i]);
sum1=sum1*x[i];
arre[l][3]=arre[l][3]+sum1;

sum2=pow(arre[l][1],el[i]);
sum2=sum2*x[i];
arre[l][4]=arre[l][4]+sum2;

sum3=pow(arre[l][2],el[i]);
sum3=sum3*x[i];
arre[l][5]=arre[l][5]+sum3;
i++;
}
arre[l][3]=arre[l][3]+nf;
arre[l][4]=arre[l][4]+nf;
arre[l][5]=arre[l][5]+nf;


i=0;


if(arre[l][3]<0 && arre[l][4]<0 || arre[l][3]>0 && arre[l][4]>0)
{
printf("Los valores ingresados no contienen una raiz");
conf=0;
}
else
{
if(arre[l][3]<0 && arre[l][5]<0 || arre[l][3]>0 && arre[l][5]>0)//si a y c son iguales
{
arre[l+1][0]=arre[l][2];
arre[l+1][1]=arre[l][1];
}
if(arre[l][4]<0 && arre[l][5]<0 || arre[l][4]>0 && arre[l][5]>0)//si a y b son iguales
{
arre[l+1][1]=arre[l][2];
arre[l+1][0]=arre[l][0];
}
}




printf("%d",l);
if(l>0)
{
vp=arre[l-1][2];
va=arre[l][2];
e=(vp-va)/va;
}
l++;
if(e==0.00001 || e==-0.00001)
conf=0;

}
getch();
}
#2
Programación C/C++ / Metodo de busqueda Hashing
5 Noviembre 2016, 23:34 PM
Buenos dias amigos, alguien me podria explicar en que consiste el metodo de busqueda hashing y si me podrian proporcional algun codigo o me digan como hacerlo por favor..... se los agradeceria muchisimo
#3
Buenos dias amigos, alguien me podria explicar en que consiste el metodo de ordenamiento RadixSort y si me podrian proporcional algun codigo o me digan como hacerlo por favor..... se los agradeceria muchisimo
#4
Es que el programa si resuelve las ecuaciones lineales, pero yo quiero que me de como resultado una matriz triangular inferior,
Ejemplo
el resultado lo da X1=23
pero yo quiero que lo de escalonado
1  4  6  | 4
0  1  5  | 6
0  0  1  | 6

asi con los 1 en diagonal
#5
Buenas Tardes, lo que pasa es que tengo este código pero lo necesito modificar para que me de como resultado una matriz triangular inferior, si alguien me podría ayudar por favor estaría muy agradecido...
#include <stdio.h>

void PideDatos(int *Dim, float Sist[][102]);
void EscribeDatos(int Dim, float Sist[][102]);

void ResuelveGauss(int Dim, float Sist[][102]);


int main(void)
{
    int C,Dimension;
    float Sistema[101][102];
    PideDatos(&Dimension,Sistema);
    printf("\n\n\nEl SISTEMA introducido es el siguiente: \n\n");
    EscribeDatos(Dimension,Sistema);
    ResuelveGauss(Dimension,Sistema);
    printf("\n\n\nLas soluciones son:\n");
    for(C=1;C<=Dimension;C++) printf("\n X%d=%f\n",C,Sistema[C][Dimension+1]);
   
    scanf("");
    return(0);
}


void PideDatos(int *Dim,float Sist[][102])
{
    int A,B;
    printf("\n\n ||RESUELVE SISTEMAS LINEALES DETERMINADOS POR GAUSS||");
    printf("\n\n\n Introduce el numero de incognitas:(menor que 100)");
    scanf("%d",&*Dim);
    printf("\n\n PASE A INTRODUCIR CADA COMPONENTE DEL SISTEMA (A|B):");
    printf("\n\n MATRIZ A:\n");
    for(A=1;A<=*Dim;A++) for(B=1;B<=*Dim;B++){
        printf("\n Termino A(%d,%d):",A,B); scanf("%f",&Sist[A][B]);}
    printf("\n\n\n VECTOR B:\n");
    for(A=1;A<=*Dim;A++){
        printf("\n Termino B(%d):",A);scanf("%f",&Sist[A][*Dim+1]);
    }}

void EscribeDatos(int Dim, float Sist[][102])
{
    int A,B;
    for(A=1;A<=Dim;A++){
        for(B=1;B<=(Dim+1);B++){
            printf("%7.2f",Sist[A][B]);
            if(B==Dim) printf("   |");}
        printf("\n");
    }}

void ResuelveGauss(int Dim, float Sist[][102])
{
    int NoCero,Col,C1,C2,A;
    float Pivote,V1;
   
    for(Col=1;Col<=Dim;Col++){
        NoCero=0;A=Col;
        while(NoCero==0){
            if(Sist[A][Col]!=0){
                NoCero=1;}
            else A++;}
        Pivote=Sist[A][Col];
        for(C1=1;C1<=(Dim+1);C1++){
            V1=Sist[A][C1];
            Sist[A][C1]=Sist[Col][C1];
            Sist[Col][C1]=V1/Pivote;}
        for(C2=Col+1;C2<=Dim;C2++){
            V1=Sist[C2][Col];
            for(C1=Col;C1<=(Dim+1);C1++){
                Sist[C2][C1]=Sist[C2][C1]-V1*Sist[Col][C1];}
    }}
   
    for(Col=Dim;Col>=1;Col--) for(C1=(Col-1);C1>=1;C1--){
        Sist[C1][Dim+1]=Sist[C1][Dim+1]-Sist[C1][Col]*Sist[Col][Dim+1];
        Sist[C1][Col]=0;
    }
}

#6
Cita de: MCKSys Argentina en 21 Agosto 2016, 17:26 PM
Lee nuevamente lo que te ha respondido ivancea96: Debes colocarle una condición al bucle para que pare:

Saludos!
Si, una disculpa, gracias ya quedó xD
#7
Cita de: ivancea96 en 21 Agosto 2016, 15:20 PM
Puedes poner un do-while que lo englobe todo. Al final, preguntas, y si la respuesta es la de seguir, que el while continúe.
eso lo intente pero entra en un ciclo infinito
#8
Hola amigos lo que pasa que quiero hacer una pregunta al final si deseo volver a hacer la ecuación o no pero no puedo si me ayudarían seria un gran favor


#include <stdio.h>
#include <stdlib.h>

main()
{

int correc=0;
float a11, a12, a13, b1, a21, a22, a23, b2, a31, a32, a33, b3, d, d2, d3, D, x, x2, x3, xx, X1, y, y2, y3, yy, X2, z, z2, z3, zz, X3;

while(correc==0)
{
printf("Metodo de Cramer con tres ecuaciones\n");
printf("\nPrimera ecuacion");
printf("\nInserta el valor de x1: ");
scanf("%f",&a11);
printf("\nInserta el valor de x2: ");
scanf("%f",&a12);
printf("\nInserta el valor de x3: ");
scanf("%f",&a13);
printf("\nInserta el b1: ");
scanf("%f",&b1);

printf("\nSegunda ecuacion");
printf("\nInserta el valor de x1: ");
scanf("%f",&a21);
printf("\nInserta el valor de x2: ");
scanf("%f",&a22);
printf("\nInserta el valor de x3: ");
scanf("%f",&a23);
printf("\nInserta el b2: ");
scanf("%f",&b2);
   
    printf("\nTercera ecuacion");
printf("\nInserta el valor de x1: ");
scanf("%f",&a31);
printf("\nInserta el valor de x2: ");
scanf("%f",&a32);
printf("\nInserta el valor de x3: ");
scanf("%f",&a33);
printf("\nInserta el b3: ");
scanf("%f",&b3);

printf("\nResultado:");
printf("\n\n%.fx1 ",a11); printf("%.fx2 ",a12); printf("%.fx3 =",a13); printf("%.f",b1);
printf("\n%.fx1 ",a21); printf("%.fx2 ",a22); printf("%.fx3 =",a23); printf("%.f",b2);
printf("\n%.fx1 ",a31); printf("%.fx2 ",a32); printf("%.fx3 =",a33); printf("%.f",b3);

printf("\n\nSi sus datos son correctos presione 1, si no presione 0 para ingresarlos nuevamente: ");
scanf("%d",&correc);
system("cls");
    }
//Resolviendo Delta
d=(a22*a33 - a23*a32)*a11;
d2=(a21*a33 - a23*a31)*-a12;
d3=(a21*a32 - a22*a31)*a13;
D=d+d2+d3;
printf("Resultado de Delta");
printf("\nD= " "%.f",D);

//Resolviendo X1
    x=(a22*a33 - a23*a32)*b1;
x2=(b2*a33 - a23*b3)*-a12;
x3=(b2*a32 - a22*b3)*a13;
xx=x+x2+x3;
X1=xx/D;
printf("\n\nResultado de X1");
printf("\nX1= " "%.f",X1);

//Resolviendo X2
    y=(b2*a33 - a23*b3)*a11;
y2=(a21*a33 - a23*a31)*-b1;
y3=(a21*b3 - b2*a31)*a13;
yy=y+y2+y3;
X2=yy/D;
printf("\n\nResultado de X2");
printf("\nX2= " "%.f",X2);

//Resolviendo X3
    z=(a22*b3 - b2*a32)*a11;
z2=(a21*b3 - b2*a31)*-a12;
z3=(a21*a32 - a22*a31)*b1;
zz=z+z2+z3;
X3=zz/D;
printf("\n\nResultado de X3");
printf("\nX3= " "%.f",X3);

return 0;
}