O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Algoritmos matemáticos em C (para ANDROID)

Iniciado por Shephiroth, 22/05/2013 às 16:22

Olá galerinha do mal, é o seguinte, recentemente fiquei sabendo de um aplicativo massivo, e delicioso, que é o C4Android, um programa que permite compilar e executar comandos em C, em qualquer aplicativo que rode a plataforma Android. Com isso eu elaborei alguns algoritmos que resolvem algumas equações simples, e compilei e executei tranquilamente, agora consigo resolver facilmente umas expressões matemáticas usando meu celular :P
E resolvi dispor pra galera:

O aplicativo é esse, é levíssimo, é só passar pro cartão e instalar no celular (eu usei o aplicativo Astro Gerenciador de Arquivos para instalar), depois é só brincar :P

Por hora eu só programei 3 resoluções;

um de Equação de 2º Grau :

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

int main () {
   float a,b,c,d,g,h,i;
   int e;
   e = 1;
   while (e==1){
   printf ("------------------------------------------------------------------------------");
   printf ("\nQuer sabe o resultado de uma equacao de 2 grau?\n\n");
   printf ("\nDigite o valor num%crico de X%c (o A)\n\n", 130, 253);
   scanf ("%f", &a);
   printf ("\nDigite o X (o B)\n\n");
   scanf ("%f", &b);
   printf ("\nDigite o valor numerico sem o X (o C)\n\n");
   scanf ("%f", &c);
   d = ((b * b)-(4*a*c));
   g = sqrt(d);
   h = ((-b + g)/(2*a));
   i = ((-b - g)/(2*a));
   if (d < 0){               
      printf ("\nA equacao nao possui raiz real! Pois o Delta deu %f\n", d);
   }else{
        printf ("\nA equacao %.0fX%c + %.0fX + %.0f = 0, de Delta %.2f (raiz %.2f) resulta em\n", a, 253, b, c, d, g);
       printf ("\nO x1 = %.2f, e o X2 = %.2f\n", h, i);
   }
    }
   return 0;
}
[close]


Um que resolve Sistema de 2 equações com 2 incógnitas:

Spoiler
#include<stdio.h>
#include<locale.h>

int main () {
   setlocale (LC_ALL,"portuguese");
   float x1,y1,z1,r1,x2,y2,z2,r2,x3,y3,z3,r3,r4,X,Y,Z,a;
   a = 1;
   while(a==1) {
   printf ("Digite o X1\n");
   scanf ("%f", &x1);
   printf ("Digite o Y1\n");
   scanf ("%f", &y1);
   printf ("Digite o Z1\n");
   scanf ("%f", &z1);
   printf ("Digite o Resultado 1\n");
   scanf ("%f", &r1);
   printf ("Digite o X2\n");
   scanf ("%f", &x2);
   printf ("Digite o Y2\n");
   scanf ("%f", &y2);
   printf ("Digite o Z2\n");
   scanf ("%f", &z2);
   printf ("Digite o Resultado 2\n");
   scanf ("%f", &r2);
   printf ("Digite o X3\n");
   scanf ("%f", &x3);
   printf ("Digite o Y3\n");
   scanf ("%f", &y3);
   printf ("Digite o Z3\n");
   scanf ("%f", &z3);
   printf ("Digite o Resultado3\n");
   scanf ("%f", &r3);
   printf ("\nAs equações então ficaram:\n");
   printf ("%.0fX + %.0fY + %.0fZ = %.0f\n",x1,y1,z1,r1);
   printf ("%.0fX + %.0fY + %.0fZ = %.0f\n",x2,y2,z2,r2);
   printf ("%.0fX + %.0fY + %.0fZ = %.0f\n",x3,y3,z3,r3);
   if (x1>1){
      x2 = x2/x1;
      x3 = x3/x1;
      y1 = y1/x1;
      y2 = y2/x1;
      y3 = y3/x1;
      z1 = z1/x1;
      z2 = z2/x1;
      z3 = z3/x1;
      r1 = r1/x1;
      r2 = r2/x1;
      r3 = r3/x1;
      x1 = x1/x1;
   }
   y2 = ((x2*-1)*y1)+y2;
   z2 = ((x2*-1)*z1)+z2;
   r2 = ((x2*-1)*r1)+r2;
   y3 = ((x3*-1)*y1)+y3;
   z3 = ((x3*-1)*z1)+z3;
   r3 = ((x3*-1)*r1)+r3;
   x2 = 0;
   x3 = 0;
   x2 = ((z3*-1)*y2)+(z2*y3);
   r4 = ((z3*-1)*r2)+(z2*r3);
   Y = r4 / x2;
   x3 = ((y3*-1)*z2)+(y2*z3);
   r4 = ((y3*-1)*r2)+(y2*r3);
   Z = r4 / x3;
   X = (((y1*Y)+(z1*Z))*-1)+r1;
   X = X/x1;
   printf ("\n\n------------------------------------------------------------\n");
   printf ("X = %.2f\nY = %.2f\nZ = %.2f\n",X,Y,Z);
   printf ("------------------------------------------------------------\n\n");
}
   return 0;
}
[close]


Um que resolve Sistema de 3 equações com 3 incógnitas:

Spoiler
#include<stdio.h>
#include<locale.h>

int main () {
   setlocale (LC_ALL,"portuguese");
   float x1,y1,z1,r1,x2,y2,z2,r2,x3,y3,z3,r3,r4,X,Y,Z,a;
   a = 1;
   while(a==1) {
   printf ("Digite o X1\n");
   scanf ("%f", &x1);
   printf ("Digite o Y1\n");
   scanf ("%f", &y1);
   printf ("Digite o Z1\n");
   scanf ("%f", &z1);
   printf ("Digite o Resultado 1\n");
   scanf ("%f", &r1);
   printf ("Digite o X2\n");
   scanf ("%f", &x2);
   printf ("Digite o Y2\n");
   scanf ("%f", &y2);
   printf ("Digite o Z2\n");
   scanf ("%f", &z2);
   printf ("Digite o Resultado 2\n");
   scanf ("%f", &r2);
   printf ("Digite o X3\n");
   scanf ("%f", &x3);
   printf ("Digite o Y3\n");
   scanf ("%f", &y3);
   printf ("Digite o Z3\n");
   scanf ("%f", &z3);
   printf ("Digite o Resultado3\n");
   scanf ("%f", &r3);
   printf ("\nAs equações então ficaram:\n");
   printf ("%.0fX + %.0fY + %.0fZ = %.0f\n",x1,y1,z1,r1);
   printf ("%.0fX + %.0fY + %.0fZ = %.0f\n",x2,y2,z2,r2);
   printf ("%.0fX + %.0fY + %.0fZ = %.0f\n",x3,y3,z3,r3);
   if (x1>1){
      x2 = x2/x1;
      x3 = x3/x1;
      y1 = y1/x1;
      y2 = y2/x1;
      y3 = y3/x1;
      z1 = z1/x1;
      z2 = z2/x1;
      z3 = z3/x1;
      r1 = r1/x1;
      r2 = r2/x1;
      r3 = r3/x1;
      x1 = x1/x1;
   }
   y2 = ((x2*-1)*y1)+y2;
   z2 = ((x2*-1)*z1)+z2;
   r2 = ((x2*-1)*r1)+r2;
   y3 = ((x3*-1)*y1)+y3;
   z3 = ((x3*-1)*z1)+z3;
   r3 = ((x3*-1)*r1)+r3;
   x2 = 0;
   x3 = 0;
   x2 = ((z3*-1)*y2)+(z2*y3);
   r4 = ((z3*-1)*r2)+(z2*r3);
   Y = r4 / x2;
   x3 = ((y3*-1)*z2)+(y2*z3);
   r4 = ((y3*-1)*r2)+(y2*r3);
   Z = r4 / x3;
   X = (((y1*Y)+(z1*Z))*-1)+r1;
   X = X/x1;
   printf ("\n\n------------------------------------------------------------\n");
   printf ("X = %.2f\nY = %.2f\nZ = %.2f\n",X,Y,Z);
   printf ("------------------------------------------------------------\n\n");
}
   return 0;
}
[close]


Por enquanto é só isso, mas se alguém quiser eu posso tentar programar algumas outras resoluções para outro tipo de conta :P

Para quem quiser o arquivo em .c ta ai o link de down:

Equação de 2º Grau - http://www.mediafire.com/download/x94s7cxuh6q9x5k/equacao2grau.c
Sistema 2 equações 2 incógnitas - http://www.mediafire.com/download/wpz9s2sev0u3gl4/sistema2equacoes2incognitas.c
Sistema 3 equações 3 incógnitas - http://www.mediafire.com/download/12inv4160djr3sc/sistema3equacoes3incognitas.c

Para usar as formulas no celular é só apertar em OPEN, então um menu de navegação se abrirá, e por lá você pode procurar por esses arquivos .c que estão com o link, é só selecionar e usar o Select, depois Compilar e Executar (run) e pronto :D




PS: Não liguem para a quantidade de variáveis que eu defini em cada formula, era só pra testar mesmo, e eu sempre defino por ordem alfabética, isso pode deixar algo um pouco confuso, mas não terá nenhum problema :D
.