Pular para o conteúdo

Calculadora de equações de 2º grau versão 2 (com funções)

Esta é a segunda versão da calculadora que calcula expressões de segundo grau. Diferentemente da primeira, esta foi escrita com funções, e demonstra seu uso.

Lembrando que por enquanto elas não tem a capacidade de tratar erros (como inserção de caracteres especiais e letras).

Até!
Jefferson Johner GsXs
Hits: 2.032 Categoria: C/C++ Subcategoria: Introdução
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

Esta é a segunda versão da calculadora que calcula expressões de segundo grau. Diferentemente da primeira, esta foi escrita com funções, e demonstra seu uso.

Lembrando que por enquanto elas não tem a capacidade de tratar erros (como inserção de caracteres especiais e letras).

Até!
Download 00equ_seg.c Enviar nova versão

Esconder código-fonte

/* equ_seg.c_00 Programa que deve resolver equações de segundo grau 
 * Demonstra o uso de funções
 * compilar (gcc) com a opção -lm, para que o compilador reconheça as expressões
 * da biblioteca math.h
 *    */

#include <stdio.h>
#include <math.h> // biblioteca com funções matematicas, compilar o programa com a opção -lm, para que o compilador as conheça
// gcc -oequ_seg_00.c -Wall -lm (linux)


float    entra_dados_a(); //requisitará o coeficiente de "a" ao usuário
float    entra_dados_b();
float    entra_dados_c();
float    calcula_delta(float a, float b, float c); // calculará delta
int    testa_delta(float a, float b, float c);  //verificará se delta é positivo
int    calcula_raizes(float a, float b, float c, float delta); //calculará as raizes
char   deposito[50];  //variavel global para armazenamento de valores pelo fgets


int main(void) //função principal sem valor de retorno(void)
{
   float  delta;  //inicializando as variaveis
   float  a,b,c;  
   a = entra_dados_a(); //atribuindo o valor de a 
   b = entra_dados_b(); 
   c = entra_dados_c(); 
   printf("Equação de segundo grau %.fx²+%.fx+%.f",a,b,c);
   testa_delta(a,b,c);  
   delta = calcula_delta(a,b,c); //calcula e atribui o valor a delta
   if (delta>=0) //verifica se delta é maior ou igual a zero
      {     
      calcula_raizes(a,b,c,delta); //em caso positivo, calcula as raizes da equação
      }
   else 
      {
      printf ("Delta é negativo, não existem raizes reais\n");//em caso negativo, avisa o usuário que não há raizes reais
      }
   return (0);
}





float   entra_dados_a() //entrada de dados do coeficiente a
{
   float a;
   printf("Calculo para equação de segundo grau ax^2+bx+c\n");
   printf("Forneca me o primeiro numero da equação a = ");
   fgets(deposito, sizeof(deposito), stdin);
   sscanf(deposito, "%f", &a);
   return(a);
}

float    entra_dados_b()//entrada de dados do coeficiente b
{
   float b;
   printf("\nForneca me o segundo numero b = ");
   fgets(deposito, sizeof(deposito), stdin);
   sscanf(deposito, "%f", &b);
   return(b);
}

float    entra_dados_c()//entrada de dados do coeficiente c
{
   float c;
   printf("\nForneca me o terceiro numero c = ");
   fgets(deposito, sizeof(deposito), stdin);
   sscanf(deposito, "%f", &c);
   return(c);
}

   
int   testa_delta(float a,float b,float c) //verifica se delta é positivo
{
   if (calcula_delta(a,b,c) >=0)  
      return 1; // Retorna o valor 1 à função (valor que sera testado)
   else
      return 0; // Retorna o valor 0 à função (valor que sera testado)
}

float   calcula_delta(float a,float b,float c) //calcula o valor de delta
{
   return b*b-4*a*c;
}


int   calcula_raizes(float a,float b,float c, float delta) //calcula as raizes de delta
{
        printf("\nAs raizes da equacao sao:\n\t x1= %.2f \n\t x2= %.2f\n",(-b+sqrt(delta)/2*a),(-b-sqrt(delta)/2*a)); /*aplica a formula de baskara e imprime na tela as raizes da equação*/
   return(0);
}
   

Média de alunos em C

Jogo: Acerte o número (com níveis de dificuldade)

Calcula Força Centrípeta

Função simples sendo chamada dentro da main

Conversão binário - decimal

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.