Olá pessoal, segue um exercício sugerido pelo professor de Matemática Aplicada.
Fortran 90
Um bom programa para compilar o código é o Geany, porém você pode fazer a compilação manual no terminal, basta instalar o biblioteca gfortran e geany pelo yum. yum install gfortran
para fazer a compilação pelo terminal faça o seguinte:
1 . crie um pasta onde você armazenará os seus arquivos
2 . Com o gedit crie o seu código e salve nomedoarquivo.f90
3. Com o terminal acesse sua pastas e execute o arquivo: gfortran nomedoarquivo.f90 -o nomedoarquivo
4. Dê um ls para listar o conteudo da pasta e faça ./nomedoarquivo
Crie um programa que gere um arquivo de dados que classifique os números de 1 até 30 em par ou ımpar, isto é, que gere a saída:”1” ımpar “2” par “3” ımpar...
PROGRAM ImPar
IMPLICIT NONE
INTEGER(2) :: y, cont
cont=1
OPEN(1,FILE=’Impar.dat’,status=’unknown’)
DO WHILE (cont<=30)
y=mod(cont,2)
IF (y/=0) THEN
PRINT*, cont, 'é impar'
cont=cont+1
ELSEIF (cont<=30) THEN
PRINT*, cont, 'é par'
cont=cont+1
ENDIF
ENDDO
END PROGRAM
PROGRAM ImPar
IMPLICIT NONE
INTEGER(2) :: y, cont
cont=1
OPEN(1,FILE=’Impar.dat’,status=’unknown’)
DO WHILE (cont<=30)
y=mod(cont,2)
IF (y/=0) THEN
PRINT*, cont, 'é impar'
cont=cont+1
ELSEIF (cont<=30) THEN
PRINT*, cont, 'é par'
cont=cont+1
ENDIF
ENDDO
END PROGRAM
========================
Com tres variáveis
========================
PROGRAM ImPar
IMPLICIT NONE
INTEGER(2)::resto, x, cont
x=1
cont=1
DO WHILE (cont<=30)
resto=mod(x,2)
IF (resto/=0) THEN
PRINT*, x, 'é impar'
x=x+1
cont=cont+1
ELSEIF (cont<=30) THEN
PRINT*, x, 'é par'
x=x+1
cont=cont+1
ENDIF
ENDDO
END PROGRAM
Com tres variáveis
========================
PROGRAM ImPar
IMPLICIT NONE
INTEGER(2)::resto, x, cont
x=1
cont=1
DO WHILE (cont<=30)
resto=mod(x,2)
IF (resto/=0) THEN
PRINT*, x, 'é impar'
x=x+1
cont=cont+1
ELSEIF (cont<=30) THEN
PRINT*, x, 'é par'
x=x+1
cont=cont+1
ENDIF
ENDDO
END PROGRAM
===========
SALVANDO ARQUIVO DE TEXTO
===========
PROGRAM impar
IMPLICIT NONE
INTEGER(2) :: y, cont
cont=1
OPEN(1,FILE='impar.dat',status='unknown')
DO WHILE (cont<=30)
y=mod(cont,2)
IF (y/=0) THEN
PRINT*, cont, 'é impar'
WRITE(1,*),cont
cont=cont+1
ELSEIF (cont<=30) THEN
PRINT*, cont, 'é par'
WRITE(1,*),cont
cont=cont+1
ENDIF
ENDDO
CLOSE(1)
END PROGRAM impar
SALVANDO ARQUIVO DE TEXTO
===========
PROGRAM impar
IMPLICIT NONE
INTEGER(2) :: y, cont
cont=1
OPEN(1,FILE='impar.dat',status='unknown')
DO WHILE (cont<=30)
y=mod(cont,2)
IF (y/=0) THEN
PRINT*, cont, 'é impar'
WRITE(1,*),cont
cont=cont+1
ELSEIF (cont<=30) THEN
PRINT*, cont, 'é par'
WRITE(1,*),cont
cont=cont+1
ENDIF
ENDDO
CLOSE(1)
END PROGRAM impar