Equação do segundo grau
Publicado por Gabriel (última atualização em 03/05/2010)
[ Hits: 10.122 ]
Uma brincadeira que eu fiz para resolver uma equação do segundo grau utilizando comandos.
/* This program solves a quadratic equation */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> typedef struct s_cmd_line { char cmd[4]; float a; float b; float c; } t_cmd_line; t_cmd_line cmd_line; char line[100]; /* command line */ void stread () { int i = 0; fgets(line,sizeof(line),stdin); /* cmd */ for (i = 0; i < 4; ++i) { cmd_line.cmd[i] = line[i]; line[i] = ' '; /* erase the cmd */ } /* a, b, c */ sscanf(line, "%f %f %f", &cmd_line.a, &cmd_line.b, &cmd_line.c); } int main () { float a = 0, b = 0, c = 0; /* coeficients */ float delta = 0; /* discriminant */ float r1 = 0, r2 = 0; /* roots */ /* Display */ system("clear"); printf("\n==================\n"); printf("Quadratic Equation"); printf("\n==================\n\n"); printf("Welcome. Type 'help' for help.\n\n"); /* Commands */ /* - zero : clear all the variables - read %f %f %f : enter new coeficients - show : show the equation informed - root : find the roots, the parameter shows the result in fractions - exit : kill the program */ while (strcmp(cmd_line.cmd,"exit")) { printf("> "); stread(); /* read the command line */ /* zero */ if (!strcmp(cmd_line.cmd,"zero")) { a = 0; b = 0; c = 0; } /* read */ if (!strcmp(cmd_line.cmd,"read")) { a = cmd_line.a; b = cmd_line.b; c = cmd_line.c; } /* show */ if (!strcmp(cmd_line.cmd,"show")) printf("(%f) x^2 + (%f) x + (%f) = 0\n", a, b, c); /* root */ if (!strcmp(cmd_line.cmd,"root")) { if (a != 0) { /* discriminant */ delta = b * b - 4 * a * c; r1 = - b / (2*a); r2 = r1; if (delta >= 0) { /* real roots */ r1 = r1 + (sqrt(delta)/(2*a)); r2 = r2 - (sqrt(delta)/(2*a)); printf(" r1 = %f \n r2 = %f\n", r1, r2); } else { /* complex roots */ delta = - delta; printf(" r1 = %f + i %f \n r2 = %f - i %f\n", r1, (sqrt(delta)/(2*a)), r2, (sqrt(delta)/(2*a))); } } else { /* a == 0 */ printf("'a' mustn't be zero \n"); } } /* help */ if (!strcmp(cmd_line.cmd,"help")) { printf("\nCommands\n"); printf(" - zero : clear all the variables\n"); printf(" - read %%f %%f %%f : enter new coeficients \n"); printf(" - show : show the equation informed\n"); printf(" - root : find the roots\n - exit : kill the program\n\n"); } } printf("\nbye\n\n"); return 0; }
Algoritmo em C - Ordenação por Seleção
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
VMs e Interfaces de Rede desapareceram (12)
Instalação do drive do adaptador wiffi (7)