Difference between revisions of "F90: Gerador de lista de exercício de equação do segundo grau"

From AdonaiMedrado.Pro.Br
Jump to: navigation, search
(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