killzone3 Posted May 1, 2013 at 11:26 PM Report #505541 Posted May 1, 2013 at 11:26 PM 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?
HappyHippyHippo Posted May 1, 2013 at 11:37 PM Report #505542 Posted May 1, 2013 at 11:37 PM é mais fácil com papel e lápiz IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
killzone3 Posted May 2, 2013 at 12:34 AM Author Report #505550 Posted May 2, 2013 at 12:34 AM Pois isso sei eu,mas preciso para um trabalho que estou a fazer. Não podes dar umas dicas?
pedrotuga Posted May 2, 2013 at 02:32 AM Report #505551 Posted May 2, 2013 at 02:32 AM 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 Report
pmg Posted May 2, 2013 at 09:51 AM Report #505570 Posted May 2, 2013 at 09:51 AM 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!
killzone3 Posted May 2, 2013 at 10:38 AM Author Report #505573 Posted May 2, 2013 at 10:38 AM (edited) 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 May 2, 2013 at 06:37 PM by killzone3 Falta LP no GeSHI, remove "quote" que aparentaba ser cópia da mensagem
pmg Posted May 2, 2013 at 02:58 PM Report #505596 Posted May 2, 2013 at 02:58 PM ... 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!
HappyHippyHippo Posted May 2, 2013 at 03:19 PM Report #505601 Posted May 2, 2013 at 03:19 PM 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 Portugol Plus
killzone3 Posted May 2, 2013 at 06:40 PM Author Report #505635 Posted May 2, 2013 at 06:40 PM 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.
ruirodrigues1971 Posted May 7, 2013 at 12:31 AM Report #505999 Posted May 7, 2013 at 12:31 AM 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
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now