Difference between revisions of "F90: Gerador de lista de exercício de equação do segundo grau"
From AdonaiMedrado.Pro.Br
(→Soluções) |
(→Soluções) |
||
Line 39: | Line 39: | ||
nr = nr - 1 | nr = nr - 1 | ||
ELSE | ELSE | ||
− | x1 = (-b + delta)/(2.0 * a) | + | x1 = (-b + SQRT(delta))/(2.0 * a) |
− | x2 = (-b - delta)/(2.0 * a) | + | x2 = (-b - SQRT(delta))/(2.0 * a) |
WRITE (*,*) & | WRITE (*,*) & | ||
i+1,")", & | i+1,")", & |
Latest revision as of 17:17, 2 September 2008
Problema
Fazer um programa capaz de gerar N equações do segundo grau com suas respectivas respostas.
Soluções
PROGRAM aula1e7adv IMPLICIT NONE INTEGER :: a, b, c, n, nr, i REAL :: delta, x1, x2 INTEGER*4 :: v(3) WRITE (*,*) "Quantas equações deseja gerar?" READ (*,*) n WRITE (*,*) "Quantidade máxima de equações sem solução real?" READ (*,*) nr CALL ITIME(v) i = 0 a = RAND(v(3))*100 !Somente para iniciar seed. DO IF (i == n) EXIT DO a = RAND(0)*100 IF (a /= 0) EXIT END DO b = RAND(0)*100 c = RAND(0)*100 delta = b ** 2 - 4 * a * c IF (delta > 0 .OR. nr /= 0) THEN IF (delta < 0) THEN WRITE (*,*) & i+1,")", & a,"x² + ",b,"x + ",c," = 0", & " Não existe solução real." nr = nr - 1 ELSE x1 = (-b + SQRT(delta))/(2.0 * a) x2 = (-b - SQRT(delta))/(2.0 * a) WRITE (*,*) & i+1,")", & a,"x² + ",b,"x + ",c," = 0", & " DELTA=", delta, & " RAIZ X1=", x1, & " X2=", x2 END IF i = i + 1 END IF END DO END PROGRAM aula1e7adv