Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
* * Yoshizo Togue * * Exprimir instruções de programa (declarações e comandos) nos termos de uma linguagem de programação. Transcrever os pseudocódigos criados: Algoritmos Fluxogramas Chappin * * Ideal para iniciantes pois: Retorna mensagem de erro a cada falha encontrada Usuário é controlado de forma a evitar erros como sintaxe dos comandos ou não declaração de variáveis Possui conjunto básico de elementos (declaração e comandos) Todos os comandos vistos no curso e usados nesta linguagem existem em todas as linguagens conhecidas. * * Forma geral: <Tipo> <listavar> Onde <Tipo> - Tipo de informação a ser armazenada pela variável. No curso usaremos apenas os tipos CHARACTER, INTEGER, REAL e LOGICAL. Onde <listavar> - conjunto de variáveis de mesmo tipo, separados por vírgula caso haja mais de uma. Exemplos: Character estadocivil, nome*30 Se não houver especificação de tamanho, deve-se considerar a variável com tamanho 1, ou seja, como se houvesse *1 ao lado da variável estadocivil Integer idade Real media Logical chave * * Forma Geral: READ *, <listavar> Onde <listavar> - conjunto de variáveis de mesmo tipo, separados por vírgula caso haja mais de uma. Exemplos: Read *, nome Read *, nome, idade, salario Observação O asterisco (*) é usado para indicar formatação livre tanto para leitura quanto Para a escrita do conteúdo das variáveis. Veremos como formatar os dados mais à frente. * * Forma Geral: PRINT *, <listavar/Listaconst> Onde <listavar> - conjunto de variáveis de mesmo tipo, separados por vírgula. <listaconst> - conjunto de constantes, separados por vírgula. Exemplos: Print *, “Alô mundo!“ Print *, “nome: “, nome Print *, nome, idade, salario Observação O asterisco (*) é usado para indicar formatação livre tanto para leitura quanto Para a escrita do conteúdo das variáveis. Veremos como formatar os dados mais à frente. * * Em alguns programas, a quantidade de entrada de dados pode ser grande. Isto acarreta em problemas na digitação de uma grande massa de dados, principalmente se houver a necessidade de fazer vários testes com a mesma informação. Para evitar isto, podemos realizar a leitura dos mesmos em um arquivo a parte. Forma Geral: OPEN (<número>, File=“<arquivo>”) Onde <número> - Número referenciado a um determinado arquivo. <arquivo> - Nome completo do arquivo incluindo drive e diretório. Exemplo: Open(1, File=“c:/temp/arq01.txt”) Observação: O arquivo será do tipo texto e poderá ser editado pelo Bloco de Notas. * * Os dados de leitura e escrita dentro do FORTRAN podem ser maquiados para aparecerem de uma forma mais clara. Forma Geral: <rótulo> FORMAT(<lista de formatos>) Onde <rótulo> - Número referenciado no comando de leitura / escrita. <lista de formatos> - Conjunto de formatos relacionados a uma determinada leitura / escrita. Exemplo: 10 Format(a30, 2x, i1) Veja a seguir os formatos mais comuns * * Formatos mais comuns para associação a variáveis e lay-out: Inteiro: I<n>, onde n é a quantidade de dígitos do número inteiro Ex.: I1, I2, I7 Real: F<n>.<d>, onde n é a total de elementos do número, e d o total de casas decimais. Ex.: F2.0, F4.2, F7.1 Caracter: A<n>, onde n é a quantidade de caracteres do texto Ex.: A1, A7, A30 Espaço em branco: <n>X, onde n é a quantidade de espaços em branco Ex.: 1X, 2X, 5X Salto de linha: / * * Vejamos agora como utilizar o arquivo aberto e a formatação. Digamos que eu precise ler a matrícula de 10 alunos da UFF. O comando de leitura sem formatação seria: DO i=1, 10,1 READ *, mat ENDDO Agora. Como leremos os valores das matrículas em um arquivo, usando o formato de matrícula da UFF teremos a seguinte sequência de comandos que substituirão o comando escrito acima: OPEN (1, File=“c:/temp/arq.txt”) DO i=1, 10,1 READ (1, 10) mat ENDDO 10 FORMAT(I9) * * Vejamos outro exemplo desta vez lendo o nome, matricula e CR de 10 alunos e posteriormente escrevendo os valores lidos (Uso de cabeçalho): CHARACTER nome*30 INTEGER mat, i REAL n1, n2 OPEN (3, File=“c:/temp/arq.txt”) PRINT 11 DO i=1, 10,1 READ (3, 10) nome, mat, n1, n2 PRINT 20 nome, mat, n1, n2 ENDDO 11 FORMAT(13X, “NOME”, 15X, “MATRICULA”, 2X, “NOTA1”, - 2X, “NOTA2”) 10 FORMAT(A30, I9, F4.1, F4.1) 20 FORMAT(A30, 2X, I9, 2X, F4.1, 2X, F4.1) END * * Forma Geral: <variável> = <expressão> Onde <variável> - Área criada instrução de declaração para recebimento de valor. <expressão> - Fórmula desenvolvida que retorna um valor a ser atribuído. Exemplos: nome = “João da silva” a = 1 media = (nota1 + nota2) /2 nomecompleto = primeironome || “ “ || sobrenome chave = .false. chave = .true. * * Forma Geral (1 ramo): If (<condição>) Then <Sequência de comandos> Endif Onde <condição> - Expressão lógica que retorna .TRUE. Ou .FALSE.. <Sequência de comandos> - Conjunto de comandos a ser executado. Exemplo: If (nome .eq. “FIM” .or. valor .lt. 0) then print *, “ERRO” Endif * * Onde <condição> - Expressão lógica que retorna .TRUE. Ou .FALSE.. <Sequência de comandos> - Conjunto de comandos a ser executado. * * Condições de teste: .LT. (menor que) < .GT. (maior que) > .LE. (menor que ou igual a) ≤ .GE. (maior que ou igual a) ≥ .EQ. (igual a) = .NE. (não igual a, diferente) ≠ Operadores lógicos de teste: .NOT. negação .AND. “e” lógico .OR. “ou” lógico * * Forma Geral (Incondicional ): Do <var> = <valor1>, <valor2>, <valor3> <Sequência de comandos> Enddo Onde <var> - Variável de controle da repetição. A quantidade de valores assumidos pela variável é o número de vezes que a sequência de comandos é executada. <valor1> - Valor inicial assumido por <var>. <valor2> - Valor limite para execução <var>. <valor3> - incremento/decremento ao valor da variável <var>. <Sequência de comandos> - Conjunto de comandos a ser executado. * * Exemplos repetição incondicional: Do i = 1, 10, 2 Último valor válido: 9 print *, i Último valor em memória: 11 Enddo Valores assumidos: 1, 3, 5, 7, 9, 11 Do i = 5, -1, -1 Último valor válido: -1 print *, i Último valor em memória: -2 Enddo Valores assumidos: 5, 4, 3, 2, 1, 0, -1, -2 Do i = 10, 1, -1 Último valor válido: 1 print *, i Último valor em memória: 0 Enddo Valores assumidos: 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 * * Forma Geral (Condicional ): Do While (<condição>) <Sequência de comandos> Enddo Onde <var> - Variável de controle da repetição. A quantidade de valores assumidos pela variável é o número de vezes que a sequência de comandos é executada. <condição> - Expressão lógica que retorna .TRUE. Ou .FALSE.. <Sequência de comandos> - Conjunto de comandos a ser executado. * * Exemplos repetição condicional: I = 1 Valor inicial válido para entrar no loop Do while (i le. 10) Valor testado para verificar término do loop Read *, valor print *, valor i = i + 2 Valor alterado para que o condicional seja testado Enddo Read *, valor Valor inicial válido para entrar no loop Do while(valor .ne. 0) Valor testado para verificar término do loop Print *, valor Read *, valor Valor alterado para que o condicional seja testado Enddo
Compartilhar