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:
#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);