Programa 2.5: Raizes reais de equação do 2o grau

 

#include<stdio.h>

#include<math.h>

 

void main()

 

{

        float a, b, c, delta, x, x1, x2;

 

        printf ("SOLUCAO DE EQUACAO DO 2.o GRAU");

        printf ("\n\n\tEntre com os coeficientes da equacao: ");

        scanf("%f%f%f", &a, &b, &c);

        delta = pow(b,2) - 4*a*c;

        if (delta >= 0) {

                x1 = (-b + sqrt(delta)) / (2*a);

                x2 = (-b - sqrt(delta)) / (2*a);

                printf("\n\tx1 = %f  e  x2 = %f", x1, x2);

        }

        else

                printf("\n\tnao ha raizes reais");

}

 

Mudemos o formato de impressao para “%g”

 

Vamos exibir a equação antes dos resultados:

 

 

 

 

 

 

 

 

 

Programa 2.6: Melhoramentos na saída do programa anterior

 

#include<stdio.h>

#include<math.h>

 

void main()

 

{

        float a, b, c, delta, x, x1, x2;

 

        printf ("SOLUCAO DE EQUACAO DO 2.o GRAU");

        printf ("\n\n\tEntre com os coeficientes da equacao: ");

        scanf("%f%f%f", &a, &b, &c);

        printf ("\n\tRaizes da equacao (%g)x**2+(%g)x+(%g)=0:", a, b, c);

        delta = pow(b,2) - 4*a*c;

        if (delta >= 0) {

                x1 = (-b + sqrt(delta)) / (2*a);

                x2 = (-b - sqrt(delta)) / (2*a);

                printf("\n\n\t\tx1 = %g  e  x2 = %g", x1, x2);

        }

        else

                printf("\n\n\t\tnao ha raizes reais");

}

 

Vamos calcular as raízes complexas:

 

 

 

 

 

 

 

Programa 2.7: Raizes complexas de equação do 2o grau

 

#include<stdio.h>

#include<math.h>

 

void main()

 

{

        float a, b, c, delta, x, x1, x2, real, imag;

 

        printf ("SOLUCAO DE EQUACAO DO 2.o GRAU");

        printf ("\n\n\tEntre com os coeficientes da equacao: ");

        scanf("%f%f%f", &a, &b, &c);

        printf ("\n\tRaizes da equacao (%g)x**2+(%g)x+(%g)=0:",

                a, b, c);

        delta = pow(b,2) - 4*a*c;

        if (delta >= 0) {

                x1 = (-b + sqrt(delta)) / (2*a);

                x2 = (-b - sqrt(delta)) / (2*a);

                printf("\n\n\t\tx1 = %g  e  x2 = %g", x1, x2);

        }

        else {

                real = -b / (2*a);

                imag = sqrt(-delta) / (2*a);

                printf ("\n\n\t\tx1 = (%g)+i(%g) e x2 = (%g)-i(%g)",

                        real, imag, real, imag);

        }

}

 

Agora vamos resolver várias equações:

 

 


Programa 2.8: Solução de várias equações do 2o grau

 

#include<stdio.h>

#include<math.h>

#include<conio.h>

 

void main() {

        float a, b, c, delta, x, x1, x2, real, imag;

        char resolver;

 

        printf ("SOLUCAO DE EQUACOES DO 2.o GRAU");

        printf ("\n\nDeseja resolver uma equacao? (s/n): ");

        resolver = getche ( );

        while (resolver == 's' || resolver == 'S') {

                printf ("\n\n\tEntre com os coeficientes da equacao: ");

                scanf("%f%f%f", &a, &b, &c);

                printf("\n\tRaizes da equacao (%g)x**2+ (%g)x + (%g ) = 0:", a, b, c);

                delta = pow(b,2) - 4*a*c;

                if (delta >= 0) {

                        x1 = (-b + sqrt(delta)) / (2*a);

                        x2 = (-b - sqrt(delta)) / (2*a);

                        printf("\n\n\t\tx1 = %g  e  x2 = %g", x1, x2);

                }

                else {

                        real = -b / (2*a); imag = sqrt(-delta) / (2*a);

                        printf ("\n\n\t\tx1 = (%g)+i(%g) e x2 = (%g)-i(%g)", real, imag, real, imag);

                }

                printf ("\n\nDeseja resolver uma equacao? (s/n): ");

                resolver = getche ( );

        }

 


·      Programa 2.9: programa em C para o cálculo da soma da PA

 

#include <stdio.h>

 

void main () {

        int r, n, i;

        long a1, aq, soma;

 

        printf ("Progressao aritmetica\n\n");

        printf ("   Primeiro termo: ");

        scanf ("%ld", &a1);

        printf ("   Razao: ");

        scanf ("%d", &r);

        printf ("   Numero de termos: ");

        scanf ("%d", &n);

 

        soma = 0; aq = a1; i = 1;

        while (i<=n) {

                soma = soma + aq; aq = aq + r; i = i + 1;

        }

        printf ("\nSOMA DOS TERMOS: %ld", soma);

}

 

·        Usar comando for no lugar do while

 

·        Colocar mais comandos nas inicializações e nas atualizações.


·                Programa 2.10: Cálculo do MDC de vários pares de números

 

#include <stdio.h>

#include <math.h>

#include <conio.h>

void main ( ) {

        int a, b, aux; char c;

        do {

                printf ("Calculo de MDC ? (s/n) ");

                do  c = getche ( );  while (c != 's' && c != 'n');

                if (c == 's') {

printf ("Par de numeros:");  scanf("%d%d",&a,&b);

                        a = abs(a);  b = abs(b);

                        while (b>0) {

                               aux = a;  a = b;  b = aux % b;

                         }

                        printf ("MDC: %d\n\n", a);

                }

        } while (c == 's');

}

 

·        Obs: O trecho marcado poderia ser substituído por:

 

    printf ("Par de numeros:");  scanf ("%d%d",&a,&b);

    for (a = abs(a), b = abs(b); b>0; b = aux % b) {

            aux = a; a = b;

}

ou simplesmente por:

 

for (printf ("Par de numeros:"), scanf ("%d%d",&a,&b),

       a = abs(a), b = abs(b); b>0; aux = a, a = b, b = aux % b);