! (1) Este programa cria um arquivo contendo uma relação de alunos com suas notas e médias !----------------------------------------------------------------------------------- PROGRAM ARQUIVO_DE_ALUNOS IMPLICIT NONE INTEGER :: MATRIC CHARACTER (LEN = 20) :: NOME REAL :: NOTA1, NOTA2, NOTA3, MEDIA OPEN (10, FILE='ALUNOS.DAT') WRITE (*, *) "INFORME O NOME, MATRICULA E TRES NOTAS DOS ALUNOS. TERMINE COM UM ALUNO DE NOME FIM" READ(*, *)NOME DO WHILE (NOME .NE. "FIM") READ (*, *) MATRIC, NOTA1, NOTA2, NOTA3 WRITE(10, 1) MATRIC, NOME, NOTA1, NOTA2, NOTA3, (NOTA1+NOTA2+NOTA3)/3 1 FORMAT(I8, A20, 4F4.1) WRITE (*,*) "PROXIMO:" READ(*, *)NOME END DO WRITE (10, 1) 0, NOME, 0., 0., 0., 0. ENDFILE 10 STOP END PROGRAM ARQUIVO_DE_ALUNOS ****************************************************************************** ! (2) Este programa lê o arquivo ALUNOS.DAT contendo alunos e notas ! e imprime esta relação !-------------------------------------------------------------------------- PROGRAM ARQUIVO_DE_ALUNOS IMPLICIT NONE INTEGER :: MATRIC CHARACTER (LEN = 20) :: NOME REAL :: NOTA1, NOTA2, NOTA3, MEDIA OPEN (10, FILE='ALUNOS.DAT') ! LEITURA DO ARQUIVO GERADO READ (10, 1) MATRIC, NOME, NOTA1, NOTA2, NOTA3, MEDIA 1 FORMAT(I8, A20, 4F4.1) DO WHILE (NOME .NE. "FIM") WRITE(*, 2) MATRIC, " ", NOME, NOTA1, NOTA2, NOTA3, MEDIA 2 FORMAT(I8, A1, A20, 4F5.1) READ (10, 1) MATRIC, NOME, NOTA1, NOTA2, NOTA3, MEDIA END DO ENDFILE 10 STOP END PROGRAM ARQUIVO_DE_ALUNOS ************************************************************************** ! (3) Variante do programa anterior com cabecalho e alinhamento das saídas !-------------------------------------------------------------------------- PROGRAM ARQUIVO_DE_ALUNOS IMPLICIT NONE INTEGER :: MATRIC, TURMA CHARACTER (LEN = 30) :: NOME CHARACTER *6 PERIODO REAL :: NOTA1, NOTA2, NOTA3, MEDIA !GERAÇAO DO ARQUIVO DE ALUNOS COM AS NOTAS OPEN (10, FILE='ALUNOS.DAT') ! LEITURA DO ARQUIVO GERADO READ (10, 1) MATRIC, NOME, NOTA1, NOTA2, NOTA3, MEDIA 1 FORMAT(I8, A30, 4F4.1) WRITE(*,*)"INFORME O PERIDO E A TURMA" READ (*,*)PERIODO, TURMA WRITE(*,"(T2, A40, /, T2, A36)")"UNIVERSIDADE FEDERAL DE CAMPINA GRANDE", & "INTRODUCAO A CIENCIA DA COMPUTACAO" WRITE(*,*) WRITE(*,"(A15, A5, A7, I2.2)") " PERIODO",PERIODO, " TURMA ", TURMA WRITE(*, 4)" ", "MATRICULA", " ", "NOME", " ", & "NOTA 1", "NOTA 2", "NOTA 3", "MEDIA" 4 FORMAT (A3, A9, A1, A5, A26, 4A5) DO WHILE (NOME .NE. "FIM") WRITE(*, 2) " ", MATRIC, " ", NOME, NOTA1, NOTA2, NOTA3, MEDIA 2 FORMAT(A3, I8, A3, A30, 4F5.1) READ (10, 1) MATRIC, NOME, NOTA1, NOTA2, NOTA3, MEDIA END DO ENDFILE 10 STOP END PROGRAM ARQUIVO_DE_ALUNOS