Buscar

3_Linguagem Fortran

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

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais