View
110
Download
6
Category
Preview:
Citation preview
Algoritmos eAlgoritmos e
Estruturas de Dados Estruturas de Dados
Algoritmos Estruturados
Prof. José Patrocínio da Silvapatroc@ufersa.edu.br
Universidade Federal Semi-ÁridoDepartamento de Engenharia Ambiental
Programação Aplicada a Engenharia
Programação Aplicada a Engenharia
ALGORITMOS
– São formas de resolução de um problema, através da especificação passo-a-passo de como resolvê-lo.
A noção de algoritmo é básica em Computação.
Algoritmos
CONCEITOS BÁSICOSCONCEITOS BÁSICOS
Programação Aplicada a Engenharia
Dar uma solução para um problema computacional significa elaborar um ALGORITMO em PSEUDO-
CÓDIGO (linguagem intermediária entre a linguagem natural e a linguagem de programação) e
implementá-lo numa linguagem de programação, gerando um PROGRAMA.
CONCEITOS BÁSICOSCONCEITOS BÁSICOS
Resolução de Problemas por ComputadorResolução de Problemas por Computador
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
Segundo Knuth, um algoritmo é uma seqüência de passos bem definida que resolve determinado problema, através da transformação de dados iniciais na resposta desejada, tendo cinco importantes características:
Deve ser finito (finitness); Os passos devem ser bem definidos, sem
ambiguidades (definiteness); Deve ser eficaz (effectiveness); Deve possuir uma entrada (input); Deve produzir uma saída ou resultado (output).
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
Resumindo, um algoritmo A resolve um problema P se, ao receber qualquer instância I de P, sempre produzir uma solução S para I.
– A – algoritmo.
– I – entrada (instância).
– S – saída (resultado).
II SSPara qualquer entrada I, o algoritmo deve ser executável em tempo finito e, além disso, gerar uma solução correta de P.
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
ESTRUTURA GERAL DE UM ALGORITMO
» Algoritmo (Nome-do-Algoritmo);
» Declaração de constantes, tipos e variáveis;
» Início
– Seqüências de Comandos;
» Fim.
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
ESTRUTURA GERAL DE UM ALGORITMO
» Algoritmo (Nome-do-Algoritmo);
» Declaração de constantes, tipos e variáveis;
» Início– Atribuições– Comandos de E/S– Estruturas de controle– Seleção– Repetição
» Fim.
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
ConstantesInformação que não sofre variação no decorrer do tempo.
Ex: 5, “Não Fume”, 2548, -0,62, “R$10,00”, Falso.
VariáveisInformação que tem a possibilidade de ser alterada em algum instante no decorrer do tempo.
Ex: Cotação do dólar, peso de uma pessoa, salário.
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
Declaração de Variáveis e Constantes
– Alocar espaço de memória do tamanho do tipo-de-dado e dar um nome a este espaço;
– Ao longo do programa, usa-se o nome dado ao invés do valor.
CONST n=50;
VAR a, b, c, soma : TIPO;
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
Declaração de Variáveis e Constantes
– Quando definir variáveis ?
» Quando um elemento da lógica para a resolução do problema sofrer alterações de valor ao longo desta resolução.
– Quando definir constantes ?
» Quando uma valor fixo for utilizado várias vezes na lógica para a resolução do problema.
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
Tipos de Dados
PrimitivosINTEIRO
REALLÓGICOCARACTERESTRING
Definidos pelo programadorDISCIPLINA
FILAPILHA
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
Expressões Aritméticas
– Aquelas cujos operadores são aritméticos e cujos operandos são constantes e/ou variáveis do tipo numérico (inteiro e/ou real).
Operadores Aritméticos
– + Adição * Multiplicação / Divisão
– - Subtração ** Potenciação // Radiciação
– mod ou % resto da divisão.
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
Funções Matemáticas
– sen (x) - seno de x
– cos(x) - cosseno de x
– tg(x) - tangente de x
– abs (x) - valor absoluto (módulo) de x
– int (x) - parte inteira de um número real
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
Prioridades
parênteses mais internos
funções matemáticas
** //
* /+ -
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
Expressões Relacionais
– Comparação entre dois valores de um mesmo tipo primitivo. Estes valores podem ser constantes, variáveis ou expressões aritméticas.
– O resultado obtido de uma relação é sempre um valor lógico.
Operadores Relacionais
= igual a <> diferente de
> maior que >= maior igual a
< menor que <= menor igual a
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
Expressões Lógicas
– Aquelas cujos operadores são lógicos e/ou relacionais e cujos operandos são relações e/ou variáveis e/ou constantes do tipo lógico.
Operadores Lógicos
e - Conjunção
ou - Disjunção (não-exclusiva)
xou - Disjunção (exclusiva)
não - negação
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
Prioridades entre todos os Operadores
parênteses mais internos
funções aritméticas
operadores aritméticos
operadores relacionais
operadores lógicos
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
ESTRUTURA GERAL DE UM ALGORITMO
» Algoritmo (Nome-do-Algoritmo);
» Declaração de constantes, tipos e variáveis;
» Início– Atribuições– Comandos de E/S– Estruturas de controle– Seleção– Repetição
» Fim.
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
Atribuição
Fornece um valor a uma variável.
Ex: a 1;
sexo “FEMININO”;
salário 128,00;
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
ESTRUTURA GERAL DE UM ALGORITMO
» Algoritmo (Nome-do-Algoritmo);
» Declaração de constantes, tipos e variáveis;
» Início– Atribuições– Comandos de E/S– Estruturas de controle– Seleção– Repetição
» Fim.
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
Comandos de Entrada e Saída
Exemplos do comando de entrada leia:
leia (x);
leia (a, nota, faltas);
Exemplos do comando de saída escreva:
escreva (x);
escreva (a, nota, faltas);
escreva (‘Bom Dia ‘, nome);
escreva (‘Você pesa ‘, x * 2, ‘quilos.’);
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
ESTRUTURA GERAL DE UM ALGORITMO
» Algoritmo (Nome-do-Algoritmo);
» Declaração de constantes, tipos e variáveis;
» Início– Atribuições– Comandos de E/S– Estruturas de controle– Seleção– Repetição
» Fim.
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
Estruturas de Controle de Fluxo
– Seqüência
– Seleção» simples
» composta
» encadeada
» múltipla escolha
– Repetição» Teste condicional no início
• Número de repetições conhecido
• Número de repetições desconhecido
» Teste condicional no fim
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
Estruturas de Controle de Fluxo
– Seqüência
» início
» <comando 1>;
» <comando 2>;
» » <comando N>;
» fim
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
Estruturas de Controle de Fluxo
– Seleção simplesinício
se <condição 1> então
<comando 1>;<comando 2>;<comando N>;
fim se
fim
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
Estruturas de Controle de Fluxo
– Seleção compostainício
se <condição 1> então<comando 1>;
<comando 2>;<comando N>;
senão<comando 1>;
<comando 2>;<comando N>;
fim sefim
Algoritmos
BLOCO VERDADE
BLOCO FALSO
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
– Seleção compostainício
se <condição 1> entãose <condição 2> então
<comando 1>;<comando N>;
fim sesenão
se <condição 3> então<comando 1>;
<comando N>;
senãose <condição 4> então
<comando 1>;<comando N>;
senão
<comando 1>;fim se<comando 1>;
fim sefim se
fim
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
– Seleção de múltipla escolha
inícioescolha (x)caso VALOR1 : <comando 1>;caso VALOR2 : <comando 2>;caso VALOR3 : <comando N>;fim escolha
fim
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
– Seleção de múltipla escolha
iníciose <x = VALOR1> então
<comando 1>;senão
se <x = VALOR2> então<comando 2>;
senãose <x = VALOR3> então
<comando 3>;fim se
fim sefim se
fim
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
– Repetição
Usada em trechos do algoritmo em que há a necessidade de se realizar um bloco de comando
um número determinado de vezes.
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
Repetição com teste no início (ENQUANTO-FAÇA)
Permite executar diversas vezes um trecho do algoritmo, porém, sempre verificando antes de cada execução se é “permitido” executar algum trecho.
enquanto (<condição1>) faça<comando1>;<comando2>;<comandoN>;
fim enquanto
– Quando o resultado da <condição1> for falso, o comando é abandonado.– Se já da primeira vez o resultado for falso, os comandos não são executados nem
uma vez.
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
Repetição com teste no FINAL (REPITA-ATÉ)
repita<comando1>;<comando2>;<comandoN>;
até (<condição1>)
– O bloco de comandos é executado pelo menos uma vez, independente da validade da <condição1>. Isto ocorre porque a inspeção da <condição1> é feita após a execução do bloco.
Algoritmos
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
Repetição com variável de controle (PARA)
– para (V = vi; V <= vf; passo p) faça
– <comando1>;
– <comando2>;
– – <comandoN>;
– fim para
Algoritmos
onde:• V é a variável de controle;• vi é o valor inicial de V;• vf é o valor final de V, ou seja, o
valor até o qual ela pode chegar e; • p é o valor do incremento dado a V.
Programação Aplicada a Engenharia
Resolução de Problemas por ComputadorResolução de Problemas por Computador
Comparação entre as estruturas de Repetição
Toda estrutura ENQUANTO pode ser convertida para REPITA e vice-e-versa;
Toda estrutura PARA pode ser convertida em ENQUANTO, mas nem toda estrutura ENQUANTO pode ser convertida em PARA.
Estrutura Condição Qtde de execuções Cond. de existência
Enquanto início ? condição verdadeira
Repita fim mínimo 1 condição falsa
Para implícita início (vf - vi) div p vi vf
Algoritmos
Programação Aplicada a Engenharia
ALGUNS PROBLEMAS
Programação Aplicada a Engenharia
PROBLEMA DE ACHAR O MENOR
Encontrar o menor dentre um conjunto de números.
Programação Aplicada a Engenharia
PROBLEMA DE ACHAR O MENOR
ALGORITMO EncontraMenor;
VAR n, qtde-num, num, menor: INTEIRO;
INICIOLER (n);
LER (num);
menor num;
qtde-num 1;
ENQUANTO (qtde-num < n)
LER (num);
SE num < menor
menor num;
FIM-SE;
qtde-num qtde-num +1;
FIM-ENQUANTO;
ESCREVER (menor);FIM.
Programação Aplicada a Engenharia
PROBLEMA DE ACHAR O MENOR E O MAIOR
Encontrar o menor e o maior dentre um conjunto de
números.
Programação Aplicada a Engenharia
ALGORITMO EncontraMenorMaior;
VAR n, qtde-num, num, menor, maior: INTEIRO;
INICIOLER (n);LER (num);menor num;maior num;qtde-num 1;ENQUANTO (qtde-num < n)
LER (num);SE num < menor
menor num;SENAO SE num > maior
maior num;FIM-SE;qtde-num qtde-num +1;
FIM-ENQUANTO;ESCREVER (menor, maior);
FIM.
PROBLEMA DE ACHAR O MENOR E O MAIOR
Programação Aplicada a Engenharia
A descrição de um algoritmo de forma clara e fácil de ser seguida ajuda no seu desenvolvimento, depuração (correção de erros) e a subsequente transformação do mesmo num programa.
1- Descrição Narrativa: Especificação verbal dos passos em linguagem natural.
Desvantagens: a linguagem natural é imprecisa e freqüentemente pouco confiável como um veículo de transferir informação. Sua utilização pode ser adotada, entretanto, para a apresentação de comentários sobre o algoritmo (ou parte dele), esclarecendo ou realçando pontos específicos.
Descrição de Algoritmos
Programação Aplicada a Engenharia
2 - Fluxograma Uso de ilustrações gráficas para transmitir informações (Ex. Gerais: mapas, diagramas explicativo para montagem de aparelhos, etc.).
Um fluxograma mostra, de forma gráfica, a lógica de um
algoritmo, enfatizando passos individuais e o fluxo de execução.
Desvantagens: utilização questionável de fluxogramas detalhados, pois obscurecem a estrutura do programa.
Descrição de Algoritmos
Programação Aplicada a Engenharia
Simbologia utilizada em fluxogramas
Programação Aplicada a Engenharia
Exemplo
Programação Aplicada a Engenharia
PROBLEMA DO AZARÃO
Fazer um programa que escreva os 100 primeiros
múltiplos de 13.
Programação Aplicada a Engenharia
ALGORITMO Azarao;
CONST n = 100;
VAR num, cont: INTEIRO;
INICIOnum 13;
cont 1;
ENQUANTO cont < 100
ESCREVA (num);
num num +13;
cont cont +1;
FIM-ENQUANTO;FIM.
PROBLEMA DO AZARÃO
Programação Aplicada a Engenharia
ALGORITMO Azarao;
CONST n = 100;
VAR num, cont: INTEIRO;
INICIOnum 13;
cont 1;
REPITA
ESCREVA (num);
num num +13;
cont cont +1;
ATE cont > 100;FIM.
PROBLEMA DO AZARÃO
Programação Aplicada a Engenharia
PROBLEMA DO VÍCIO
Calcule e mostre a despesa diária, semanal e mensal de uma pessoa com cigarros,
dados o número de cigarros que ela fuma por dia e o preço do maço de cigarros que ela
fuma.
Programação Aplicada a Engenharia
ALGORITMO Vicio;
VAR num-c-dia : INTEIRO;
preco-m, preco-c,
despesa-d, despesa-s, despesa-m: REAL;
INICIOESCREVA (‘Quantos cigarros vc fuma por dia?’);LER (num-c-dia);ESCREVA (‘Quanto custa o maco de cigarros que vc fuma?’);LER (preco-m);
preco-c preco-m/20;
despesa-d preco-c * num-c-dia;
despesa-s despesa-d * 7;
despesa-m despesa-d * 30;
ESCREVA (‘Sua despesa com cigarros diária, semanal e mensal eh: ‘ despesa-d, despesa-s, despesa-m);
FIM.
PROBLEMA DO VÍCIO
Programação Aplicada a Engenharia
PROBLEMA DA CORRIDA DE AUTOMÓVEL
Em uma corrida de automóveis com n voltas, foram anotados os tempos, em ordem, de um
piloto em cada volta. Fazer um programa que dê o melhor e o
pior tempo e em que volta aconteceram.
Programação Aplicada a Engenharia
ALGORITMO CorridaAutomovel;
VAR num-voltas, cont-voltas, melhor-volta, pior-volta : INTEIRO;
tempo-volta, melhor-tempo, pior-tempo: REAL;
INICIOESCREVA (‘Entre com o numero total de voltas da corrida:’);LER (num-voltas);ESCREVA (‘Entre com o valor do primeiro tempo anotado:’);LER (tempo-volta);
melhor-tempo tempo-volta; pior-tempo tempo-volta;
melhor-volta pior-volta 1;
PARA cont-volta 2 a n
ESCREVA (‘Entre com o valor do tempo da próxima volta:’); LER (tempo-volta); SE tempo-volta > pior-tempo
pior-tempo tempo-volta; pior-volta cont-volta; SENAO SE tempo-volta < melhor-tempo
melhor-tempo tempo-volta; melhor-volta cont-volta;
FIM-SE;
FIM-PARA;
PROBLEMA DA CORRIDA DE AUTOMÓVEL
Programação Aplicada a Engenharia
ALGORITMO CorridaAutomovel;
VAR num-voltas, cont-voltas, melhor-volta, pior-volta : INTEIRO;
tempo-volta, melhor-tempo, pior-tempo: REAL;
INICIO...
ESCREVA (‘Melhor volta = ‘, melhor-volta, ‘ com tempo = ‘,melhor-tempo);
ESCREVA (‘Pior volta = ‘, pior-volta, ‘ com tempo = ‘,pior-tempo);
FIM.
PROBLEMA DA CORRIDA DE AUTOMÓVEL
Programação Aplicada a Engenharia
PROBLEMA DO FATORIAL DE UM NÚMERO
Calcule o fatorial de 5.
E para um n qualquer ?
Programação Aplicada a Engenharia
ENUNCIADO DO PROBLEMA: Calcular o fatorial de 5.
PARÂMETROS: n
RESTRIÇÕES: n Z+
SOLUÇÃO: result = n.(n-1).(n-2). ... .2.1
INSTÂNCIA: n=5
SOLUÇÃO_DA_INSTÂNCIA: result=5.4.3.2.1=120
PROBLEMA DO FATORIAL DE UM NÚMERO
Programação Aplicada a Engenharia
ALGORITMO Fatorial;
VAR fat, i : INTEIROS;INICIO
fat = 1;
PARA i := 2 a n FAÇA
fat := fat * i;
END;
MOSTRE fat;FIM.
PROBLEMA DO FATORIAL DE UM NÚMERO
Programação Aplicada a Engenharia
PROBLEMA SOBRE A SÉRIE DE FIBONACCI
Calcule o n-ésimo termos da série de Fibonacci.
Programação Aplicada a Engenharia
ENUNCIADO DO PROBLEMA: Mostrar o n-ésimo termo da Série de Fibonacci.
PARÂMETROS: n
RESTRIÇÕES: n Z+
SOLUÇÃO: result = n-ésimo termo
INSTÂNCIA: n=5
SOLUÇÃO_DA_INSTÂNCIA: result=3
PROBLEMA SOBRE A SÉRIE DE FIBONACCI
Programação Aplicada a Engenharia
ALGORITMO Fibonacci;
VAR i, fib,fib1,fib2,n : INTEIRO;INICIO
SE n = 1 RETURN 0; SENAO SE n = 2 RETURN 1;
fib1 := 1; fib2 := 0; PARA i := 3 a N FAÇA fib := fib1 + fib2; fib2 := fib1; fib1 := fib; FIM-PARA; MOSTRE fib; FIM.
PROBLEMA SOBRE A SÉRIE DE FIBONACCI
Programação Aplicada a Engenharia
ALGORITMO Fibonacci-v2;
VAR i, fib,fib1,fib2,n : INTEIRO;INICIO
SE n <= 2 RETURN n; fib1 := 1; fib2 := 0; PARA i := 3 a N FAÇA fib := fib1 + fib2; fib2 := fib1; fib1 := fib; FIM-PARA; MOSTRE fib; FIM.
PROBLEMA SOBRE A SÉRIE DE FIBONACCI
Programação Aplicada a Engenharia
PROBLEMA DOS APROVADOS
Dado um conjunto de n notas de alunos, contar o número de alunos que foram aprovados.
Considera-se aprovado o aluno que obteve nota igual ou maior
que 5.0.
Programação Aplicada a Engenharia
Solução
Programação Aplicada a Engenharia
PROBLEMA DA AVALIAÇÃO
Fornecer a média aritmética simples das n notas de um
aluno, indicando também sua situação final (média>=9
excelente, média>=7 bom, média>=5 regular, média<5
insuficiente).
Programação Aplicada a Engenharia
PROBLEMA IV
Como medir exatamente 2 litros utilizando apenas
mangueira, um balde de 4 litros e outro de 3 litros?
Programação Aplicada a Engenharia
PROBLEMA IV
ENUNCIADO DO PROBLEMA: Como medir exatamente 2 litros utilizando apenas mangueira, um balde de 4 litros e outro de 3 litros.
PARÂMETROS: vasilhames A e B.
RESTRIÇÕES: capacidades máximas A=4l, B=3l:
0A 4 e 0 B 3
SOLUÇÃO: (A=2) ou (B=2)
INSTÂNCIA: A=0 e B=0
SOLUÇÃO_DA_INSTÂNCIA: (A=2) ou (B=2)
Programação Aplicada a Engenharia
PROBLEMA IV
ALGORITMO Medir2Litros;
CONST LimA=4;
LimB=3;
VAR A, B : INTEIROS;INICIO
LIMPAR A e B;
ENCHER B;
DESPEJAR_B_EM_A;
ENCHER B;
DESPEJAR_B_EM_A;
MOSTRAR B;FIM.
Programação Aplicada a Engenharia
PROBLEMA IV
ENCHER B
ENQUANTO (NÃO_CHEIO(B)) FAÇA
B = B+1;
FIM-ENQUANTO;
DESPEJAR_B_EM_A
ENQUANTO (NÃO_CHEIO(A)) OU (NÃO_VAZIO(B)) FAÇA
B = B - 1;
A = A + 1;
FIM-ENQUANTO;
Programação Aplicada a Engenharia
PROBLEMA IV
ENCHER B
ENQUANTO (B < LimB) FAÇA
B = B+1;
FIM-ENQUANTO;
DESPEJAR_B_EM_A
ENQUANTO (A < LimA) E (B > 0) FAÇA
B = B - 1;
A = A + 1;
FIM-ENQUANTO;
Programação Aplicada a Engenharia
PROBLEMA IV
LIMPAR A e B
A = 0;
B = 0;
MOSTRAR B
ESCREVER (B);
Programação Aplicada a Engenharia
PROBLEMA IV
ALGORITMO Medir2Litros;
CONST LimA=4;
LimB=3;
VAR A, B : INTEIROS;INICIO
LIMPAR A e B;
ENCHER B (B);
DESPEJAR_B_EM_A (B,A);
ENCHER_B(B);
DESPEJAR_B_EM_A (B,A);
MOSTRAR B;FIM.
Programação Aplicada a Engenharia
HistóricoHistóricoHistóricoHistórico
– Linguagem de programação estruturada
– 1º linguagem de programação de alto nível e foi proposta em 1956
– Surgiu visando a resolução de problemas da área científica, com o uso de computadores
– O nome é a composição de: FORmula TRANslation
– Sua versão mais recente é o FORTRAN 90.
Programação Aplicada a Engenharia
Conceitos da LinguagemConceitos da Linguagem Conceitos da LinguagemConceitos da Linguagem
Basicamente há duas formas de se escrever um programa em FORTRAN:
– com formulário fixo (‘fixed form’) ou
– com formulário livre (‘free form’). O segundo (free form) disponível apenas para a
programação em FORTRAN 90. Novos compiladores aceitam os formatos e os
comando anteriores.
Programação Aplicada a Engenharia
Conceitos da LinguagemConceitos da LinguagemFormataçãoFormatação
Conceitos da LinguagemConceitos da LinguagemFormataçãoFormatação
Formatação no Formulário Fixo
1.1. Coluna 1, C ou * indicam Coluna 1, C ou * indicam comentário – comentários são comentário – comentários são ignorados pelo compiladorignorados pelo compilador
2.2. Os números dos comandos Os números dos comandos podem ser quaisquer(int >= 0) podem ser quaisquer(int >= 0) constituindo em 1 a 5 dígitos, constituindo em 1 a 5 dígitos, colocados no campo das colocados no campo das colunas 1 a 5.colunas 1 a 5.
3.3. Para indicar continuação de um Para indicar continuação de um comando utiliza-se um caracter comando utiliza-se um caracter qquer diferente de espaço ( b) e qquer diferente de espaço ( b) e zeros na coluna 6; podendo haver zeros na coluna 6; podendo haver no MAX. 19 linhas de contunuação.no MAX. 19 linhas de contunuação.
4.4. As colunas 73 a 80 são utilizadas As colunas 73 a 80 são utilizadas pelo compilador, portanto não se pelo compilador, portanto não se deve escrever nestas colunas.deve escrever nestas colunas.
Programação Aplicada a Engenharia
Conceitos da LinguagemConceitos da Linguagem Formatação Formatação
Conceitos da LinguagemConceitos da Linguagem Formatação Formatação
FORTRAN 90 – Formato Livre– O programa pode ser escrito em qualquer posição – as linhas de continuação são indicadas pelo símbolo ‘&’
no fim da sentença– e a próxima linha abaixo que não seja um comentário será
tomada como continuação – Deixe sempre um espaço entre os comandos e o símbolo
de continuação – É permitida a inserção de comentários após o ‘& – Os rótulos devem ser os primeiros caracteres da linha, e
podem estar em qualquer coluna.
Programação Aplicada a Engenharia
Conceitos Básicos Conceitos Básicos ComentáriosComentários
Conceitos Básicos Conceitos Básicos ComentáriosComentários
Não são interpretados pelo compilador Um bom programa tem muitos comentários O comando ‘! ’ indica que o que vem após ele é
comentário, ele pode vir em qualquer posição, inclusive após os comandos.
Alguns compiladores aceitam qualquer caractere diferente de números para iniciar a linha de comentário
Programação Aplicada a Engenharia
Conceitos BásicosConceitos BásicosConstantesConstantes
Conceitos BásicosConceitos BásicosConstantesConstantes
Constante é uma quantidade fixa, invariável; um valor que não muda no decorrer dos cálculos relativos ao programa.
Classes:
– Numéricas – tratam números
– Lógicas – tratam valores lógicos (verdadeiro x falso)
– Cadeia de Caracteres – tratam seq. de caracteres
Programação Aplicada a Engenharia
Conceitos BásicosConceitos BásicosVariáveis e Nomes de BlocosVariáveis e Nomes de Blocos
Conceitos BásicosConceitos BásicosVariáveis e Nomes de BlocosVariáveis e Nomes de Blocos
Variável é uma entidade que armazena constantes e é conhecida no programa por um nome.
É um nome representando uma área de memória, que pode conter de 1 a 6 caracteres alfanuméricos, começando necessariamente por uma letra.
Caracteres adicionais são permitidos, mas ignorados. Recomendações para nomes de variáveis!
Programação Aplicada a Engenharia
Conceitos BásicosConceitos BásicosTipos de VariáveisTipos de VariáveisConceitos BásicosConceitos BásicosTipos de VariáveisTipos de Variáveis
Inteiras (INTEGER)
– Podem assumir os seguintes valores:
INTEGER*4 pode ser representado somente por: INTEGER
INTEGER*1 –128 a 127
INTEGER*2 –32,768 a 32,767
INTEGER*4 –2,147,483,648 a 2,147,483,647
Programação Aplicada a Engenharia
Conceitos BásicosConceitos BásicosTipos de VariáveisTipos de VariáveisConceitos BásicosConceitos BásicosTipos de VariáveisTipos de Variáveis
Reais (REAL)
– Precisão simples, 6 casas decimais (padrão):
– REAL*4 ou REAL `3.402823E+38REAL*4 ou REAL `3.402823E+38
– Precisão dupla, 15 casas decimais (padrão): REAL*8 ou DOBLE REAL*8 ou DOBLE
PRECISION`1.797693134862316D+308PRECISION`1.797693134862316D+308
A parte exponencial deve ser separada por um ‘d’ ou ’D’ no lugar do ‘e’ ou ‘E’ para real do tipo *8.
Programação Aplicada a Engenharia
Conceitos BásicosConceitos BásicosTipos de VariáveisTipos de VariáveisConceitos BásicosConceitos BásicosTipos de VariáveisTipos de Variáveis
Complexas (COMPLEX)
– Precisão simples, 6 casas decimais:
» COMPLEX*8 ou COMPLEXCOMPLEX*8 ou COMPLEX
– Precisão dupla, 15 casas decimais:
» COMPLEX*16COMPLEX*16
Os valores que um complexo pode assumir são os mesmos que os reais.
Programação Aplicada a Engenharia
Conceitos BásicosConceitos BásicosTipos de VariáveisTipos de VariáveisConceitos BásicosConceitos BásicosTipos de VariáveisTipos de Variáveis
Alfanuméricas (CHARACTER)
– CHARACTER NOME*CHARACTER NOME*ww
Onde w representa o número máximo de caracteres que a variável pode conter dentro do programa.
Programação Aplicada a Engenharia
Conceitos BásicosConceitos BásicosTipos de VariáveisTipos de VariáveisConceitos BásicosConceitos BásicosTipos de VariáveisTipos de Variáveis
Lógicas (LOGICAL) LOGICAL NOMELOGICAL NOME
Podem assumir os valores
– .TRUE. (VERDADEIRO) ou
– .FALSE. (FALSO) Ou somente T e F ou ainda 1 e 0 ou diferente de zero e 0.
Programação Aplicada a Engenharia
OperadoresOperadoresAtribuiçãoAtribuiçãoOperadoresOperadoresAtribuiçãoAtribuição
– Identificador = ExpressãoIdentificador = Expressão
Exemplos:
– ano = 1999
– nome = ‘Joao’
– Temp = 25.4 Em Fortran 90, pode ser utilizado ;
– ano = 1999; nome = ‘Joao’;Temp = 25.4
Programação Aplicada a Engenharia
OperadoresOperadoresLiteraisLiterais
OperadoresOperadoresLiteraisLiterais
Uma função útil para variáveis literais é a concatenação (junção de palavras)
Exemplo:
– A = ‘tele’
– B = ‘visao’
– C = A//B
Programação Aplicada a Engenharia
OperadoresOperadoresAritméticosAritméticosOperadoresOperadoresAritméticosAritméticos
Executam operações aritméticas comuns
FORTRAN Matemática Tradicional Significado
+ + soma
- - Subtração
* Multiplicação
/ Divisão
** ap Potenciação
Programação Aplicada a Engenharia
OperadoresOperadoresRelacionaisRelacionaisOperadoresOperadoresRelacionaisRelacionais
Comparam variáveis, constantes ou expressões e retornam
– ‘.TRUE..TRUE.’, ‘TT’ ou ‘1’1’ se a comparação for verdadeira,
– ‘‘.FALSE..FALSE.’, ‘FF’ ou ‘00’ se a comparação for falsa.
FORTRAN F90 Matemática Tradicional Significado
.LT. < < MENOR QUE
.LE. <= <
MENOR OU IGUAL QUE
.EQ. == = IGUAL A
.NE. /==
DIFERENTE DE
.GT. > > MAIOR QUE
.GE. >= MAIOR OU IGUAL QUE
Programação Aplicada a Engenharia
OperadoresOperadoresLógicosLógicos
OperadoresOperadoresLógicosLógicos
São usados quando são necessárias mais de uma condição relacional ou quando é preciso inverter seu resultado.
FORTRAN Significado
.AND. Junção – verdadeiro se os dois operadores forem verdadeiros
.OR. Disjunção – verdadeiro se um dos dois operadores forem verdadeiro
.NOT. Negação – verdadeiro se o operador for falso
.NEQV. ou .XOR. Desigualdade Lógica – verdadeiro se somente um dos operadores for verdadeiro
.EQV. Igualdade Lógica – verdadeiro se os dois operadores forem falsos ou verdadeiros
Programação Aplicada a Engenharia
Prioridades em FORTRANPrioridades em FORTRAN
Operador Prioridade
** 1ª
* 2ª
/ 2ª
+ 3ª
- 3ª
.EQ. 4ª
.NE. 4ª
.GT. 4ª
.GE. 4ª
.LT. 4ª
.LE. 4ª
.NOT. 5ª
.AND. 6ª
.OR. 7ª
O uso de parênteses O uso de parênteses pode ser feito para trocar pode ser feito para trocar a ordem de prioridade.a ordem de prioridade.
Recommended