Jump to content

# Sistema de 2 incognitas ## Recommended Posts boas pessoal,

Queria fazer um código em C,para fazer este tipo de equações com duas incognitas:

a=45+5x

a=50-4x

Como daria para fazer?

##### Share on other sites é mais fácil com papel e lápiz

 IRC : sim, é algo que ainda existe >> #p@p
##### Share on other sites Pois isso sei eu,mas preciso para um trabalho que estou a fazer.

Não podes dar umas dicas?

##### Share on other sites Para resolveres esse tipo de problemas precisas de uma biblioteca (há quem chame motor) de calculo simbólico. Isto é uma área avançada, o tipo de programação a que deves estar habituado com variáveis numéricas e fórumlas simples permite-te encontrar soluções aproximadas só.

Se o num exercício em que te pedem para resolver um sistema, a respota correcta é por exemplo x=1 e y=1/3, tu colocas x=1 e y=0.33 tens o exercício mal.

• 1
##### Share on other sites Usa matrizes para especificar o problema.

Depois, com multiplicação e inversão de matrizes, facilmente chegas ao resultado.

http://www.mathsisfun.com/algebra/systems-linear-equations-matrices.html

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

##### Share on other sites Pois por matriz é a melhor maneira de resolver o problema,mas ao pesquisar encontrei já um código que faz o que quero,mas agora preciso é de implementar,preciso saber como posso colocar o valores para calcular..

Como posso colocar os valores para o programa calcular o sistema?

Neste site mostra como o programa funciona:

http://computingforbeginners.blogspot.pt/2012/12/solving-linear-equations-using-gauss.html

A primeira parte do programa não é necessária porque eu já sei que é um sistema de equaçoes de 2 incognitas,mas eu agora não sei como vou dar os dados ao programa sem ser pelas perguntas e scanfs.

codigo:

```// Compiled with Code::Blocks 10.05 over Windows 7
#include<stdio.h>
#define MAX 10
int lcm(int x,int y);
int main()
{
int i,j,k,r,c,det=1,l,d1,d2,fl=0,count;
float a[MAX][MAX],b[MAX][MAX],p[MAX],s;
printf("\nEnter the number of unknown Variables: ");
scanf("%d",&r);
printf("\nEnter the number of Equations: ");
scanf("%d",&c);
if(r==c)
{
printf("\nEnter the Elements of the Coefficient Matrix:\n");
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
scanf("%f",&a[i][j]);
}
}
printf("\nEnter the Elements of the Product Matrix:\n");
for(i=0;i<r;i++)
{
scanf("%f",&a[i][r]);
p[i]=0.0;
}
printf("\n	 The Equations are\n");
printf("##############################\n");
for(i=0;i<r;i++)
{
for(j=0;j<=r;j++)
{
if(j<r)
{
if(a[i][j]==1)
{
printf("X%d",j+1);
}
else
{
printf("%.0fX%d",a[i][j],j+1);
}
}
if(j<r-1)
{
printf(" + ");
}
if(j==r)
{
printf(" = %.0f",a[i][j]);
}
}
printf("\n");
}
for(i=0;i<r-1;i++)
{
for(j=i+1;j<r;j++)
{
l=lcm(a[i][i],a[j][i]);
if(l!=0&&(a[i][i]!=0&&a[j][i]!=0))
{
l=(a[i][i]*a[j][i])/l;
d1=l/a[i][i];
d2=l/a[j][i];
a[j][i]=0;
for(k=i+1;k<=r;k++)
{
a[j][k]=(d2*a[j][k])-(d1*a[i][k]);
}
}
}
}
printf("\nThe Augmented Matrix after Gauss Elimination is:\n");
for(i=0;i<r;i++)
{
for(j=0;j<r+1;j++)
{
printf("%.0f\t",a[i][j]);
}
printf("\n");
}
for(i=0;i<r;i++)
{
s=0;
if(a[i][i]==0)
{
fl=1;
}
for(j=0;j<r;j++)
{
s=s+a[i][j];
}
if(s==0)
{
fl=1;
}
}
if(fl==0)
{
for(i=r-1;i>=0;i--)
{
s=a[i][r];
count=i;
for(j=r-1;j>=count;j--)
{
s=s-(a[i][j]*p[j]);
}
count--;
if(i==r-1)
{
p[i]=a[i][r]/a[i][i];
}
else
{
p[i]=s/a[i][i];
}
}
printf("\nThe Solution for the Equations\n");
printf("##############################\n");
for(j=0;j<r;j++)
{
printf("\nX%d is %f",j+1,p[j]);
}
printf("\n");
}
else
{
printf("\nThe Set of Linear Equations may have a solution!!!");
printf("\nPlease Enter the equations in a different order to verify\n\n");
}
}
else
{
printf("\nThe Program works only if number of equations and Unknown Variables are equal!!!");
if(r>c)
{
printf("\nNumber of equations are less than the unknowns, Infinite solutions or no soltion!!!\n\n");
}
else
{
printf("\nYou have more equations,Select as many as the number of Unknown Variables and try again!!!\n\n");
}
}
return 0;
}
int lcm(int x,int y)
{
int t;
while (y != 0)
{
t=y;
y=x%y;
x=t;
}
return x;
```
Edited by killzone3
Falta LP no GeSHI, remove "quote" que aparentaba ser cópia da mensagem
##### Share on other sites ... eu agora não como vou dar os dados ao programa sem ser pelas perguntas e scanfs ...

Acho que não percebi :/

Talvez consigas obter um modulo de ESP (Extra Sensorial Perception)?

Segundo creio, a melhor e mais usual maneira de dar dados a programas é através de perguntas e respostas ... mas se arranjares um módulo de ESP, por favor, publica-o!

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

##### Share on other sites eu tenho dúvidas se sabes exactamente o que o código faz.

olha que ele só calcula de as soluções de uma matriz, e para isso é necessário comvertar (a lapiz ou de cabeça) as equações para tal.

não foi isso que disseste no teu primeiro post : escrever as equações e calcular os coeficientes ...

 IRC : sim, é algo que ainda existe >> #p@p
##### Share on other sites eu tenho dúvidas se sabes exactamente o que o código faz.

olha que ele só calcula de as soluções de uma matriz, e para isso é necessário comvertar (a lapiz ou de cabeça) as equações para tal.

não foi isso que disseste no teu primeiro post : escrever as equações e calcular os coeficientes ...

Sei,no caso do primeiro post ele calcula o x e o a,eu já testei e dá o resultado correcto.

Eu agora quero dar os valores ao programa, sem ser através das perguntas que o programa faz.

##### Share on other sites Suponho que não saibas programar ... só assim a tua pergunta faz sentido 😕 ... em todo o caso

onde aparece scanf("%d",&r)

substituir por r=2

e fazer sempre esta linha de raciocínio em todos os scanfs

## Create an account or sign in to comment

You need to be a member in order to leave a comment

## Create an account

Sign up for a new account in our community. It's easy!

Register a new account

## Sign in

Already have an account? Sign in here.

Sign In Now
×

• #### Revista PROGRAMAR

• Wiki
• IRC
×
• Create New...

## Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.