Autor Tema: Solución de ecuaciones lineales en C++

0 Usuarios y 2 Visitantes están viendo este tema.

01 Mayo, 2011, 08:03 am
Leído 10708 veces

cayitounico

  • Aprendiz
  • Mensajes: 302
  • Karma: +0/-0
  • Sexo: Masculino
  • No soy un genio, pero estudiando !aprendo!
Estoy  haciendo el método de Gauss Jordan para resolver ecuaciones lineales del tipo \( AX=B \) en c++, pero al compilar, me dice que tengo errores en:

fila 10: fuction 'scant' should have a prototype

fila 68: do statement must have while

fila 69: compound statement missing (están de color azul)


quisiera que me ayuden a que me corri g jan (en c++)


#include<stdio.h>

#include<conio.h>

void main()

{

int n,m,i,j,k;

float a[25][26],b[25][26],apoyo;

clrscr();

printf("\n MÉTODO DE GAUSS-JORDAN");

printf("\n\n Ingrese el nº de incógnitas \n\n Nº de Ecuaciones = ");

scanf("%d",&n);
printf("\n Ingrese coeficientes\n");

/* Datos para iniciar método */

for(i=1;i<=n;i++)

{

printf("\n Fila %d \n",i);

for(j=1;j<=n+1;j++)

{

printf(" Ingese a(%d,%d) = ",i,j);

scanf("%f",&a[j]);

}

}

/* Fin Del Ciclo De Solicitud De Datos */

/* Proceso Principal */

m=n+1;

do

{

if(a[1][1]==0)

{

k=m-1;

for(i=2;i<=k;i++)

{

if(a[1]!=0)

{

for(j=1;j<=m;j++)

{

apoyo=a[j];

a[j]=a[1][j];

a[1][j]=apoyo;

}

}

}

}

else

{

for(j=2;j<=m;j++)

{

for(i=2;i<=n;i++)

{

b[i-1][j-1]=a[j]-a[1][j]*a[1]/a[1][1];

}

}

for(j=2;j<=m;j++)

{

b[n][j-1]=a[1][j]/a[1][1];

}

m=m-1;

for(j=1;j<=m;j++)

{

for(i=1;i<=n;i++)

{

a[j]=b[j];

}

}

}

}

while(m>1);

printf("\n\n SOLUCION DEL SISTEMA\n ");

for(i=1;i<=n;i++)

{

printf("\n X(%d) = %1.4f",i,a[1]);

}

printf("\n\n Fin del programa");

getch();

}

R.E.Q.A.

07 Agosto, 2011, 07:57 pm
Respuesta #1

WaRc3L

  • Nuevo Usuario
  • Mensajes: 7
  • Karma: +0/-0
  • Sexo: Masculino
Hola cayitounico,

Que compilador usas? Borland puede ser?, y sistema operativo?, a mi me dan mas errores, como:

apoyo=a[j];

Que estas intentando hacer una mala conversion, donde tendria que ser:
apoyo=a[j];

Supongo que las variables que pongo estan correctas. Pero fijate que tiene dos [], de la misma forma como tu has declarado las variables desde el principio.


pD: Puedes encerrar el codigo escribiendo "["code"]" CODIGO ["/code"], sin las comitas, de esta manera te queda "un poco" mas organizado
Código: [Seleccionar]
#include<stdio.h>

#include<conio.h>

void main()

{

int n,m,i,j,k;

float a[25][26],b[25][26],apoyo;

clrscr();

printf("\n MÉTODO DE GAUSS-JORDAN");

printf("\n\n Ingrese el nº de incógnitas \n\n Nº de Ecuaciones = ");

scanf("%d",&n);
printf("\n Ingrese coeficientes\n");

/* Datos para iniciar método */

for(i=1;i<=n;i++)

{

printf("\n Fila %d \n",i);

for(j=1;j<=n+1;j++)

{

printf(" Ingese a(%d,%d) = ",i,j);

scanf("%f",&a[j]);

}

}

/* Fin Del Ciclo De Solicitud De Datos */

/* Proceso Principal */

m=n+1;

do

{

if(a[1][1]==0)

{

k=m-1;

for(i=2;i<=k;i++)

{

if(a[1]!=0)

{

for(j=1;j<=m;j++)

{

apoyo=a[j];

a[j]=a[1][j];

a[1][j]=apoyo;

}

}

}

}

else

{

for(j=2;j<=m;j++)

{

for(i=2;i<=n;i++)

{

b[i-1][j-1]=a[j]-a[1][j]*a[1]/a[1][1];

}

}

for(j=2;j<=m;j++)

{

b[n][j-1]=a[1][j]/a[1][1];

}

m=m-1;

for(j=1;j<=m;j++)

{

for(i=1;i<=n;i++)

{

a[j]=b[j];

}

}

}

}

while(m>1);

printf("\n\n SOLUCION DEL SISTEMA\n ");

for(i=1;i<=n;i++)

{

printf("\n X(%d) = %1.4f",i,a[1]);

}

printf("\n\n Fin del programa");

getch();

}

Saludos, espero que te haya servido de ayuda

WaRc3L