Estruturas de Programação
description
Transcript of Estruturas de Programação
1
Estruturas de Programação
Estruturas Condicionais
Aula 5
IF (expressão teste) then <comando>
ou
IF (expressão teste) then
<comandos>
ELSE
<comandos>
END IF
SELECT CASE (exp_select)
CASE (lista case 1)
comandos ...
CASE (lista case 2)
comandos ....
CASE DEFAULT
comandos ...
END SELECT
exp_select deve ser uma expressão ou constante INTEIRA, LÓGICA ou LITERAL (apenas uma caractere)
CASE DEFAULT - opcional
2
Estruturas de seleção Condição Verdadeira p/ exp_select
CASE(valor) =valor
CASE(:valor) <valor
CASE(valor:) >valor
CASE(valor1:valor2) valor1<=exp_select>=valor2
CASE(valor1,valor2,...,valorn) =valor1 ou valor2 ou ....valorn
IF Aritmético
IF (exp_arit)n1,n2,n3
exp_arit: expressão aritmética inteira
n1,n2,n3: números de comandos
<0 – desvia para o comando n1=0 – desvia para o comando n2>0 – desvia para o comando n3
exp_arit
3
program xif!! Mostra o uso das estruturas IF-THEN-ELSE! e SELECT CASE implicit none integer x print *,'Digite um número inteiro entre 0 e 10: ' read *,x! Verifica se o valor esta dentro do intervalo if ((x>=0.0).AND.( x<=10.0)) then print *,'O valor está dentro do intervalo' else print *,'O valor esta fora do intervalo' call exit ! Finaliza o programa end if! Seleciona o intervalo onde está o número! x deve ser uma constante INTEIRA, LOGICA ou LITERAL select case (x) case (0:3) print *,'Valor está entre 0 e 3' case (4:7) print *,'Valor entre 4 e 7' case (8:10) print *,'Valor entre 8 e 10' end select! end program xif
EXEMPLO:
4
Estruturas de Repetição
r1 – rotula um comando executável, preferencialmente CONTINUE
v – usualmente uma variável inteira; porém pode ser real ou de dupla precisão
n1 – valor inicial de v
n2 – valor fina/l de v
n3 -- incremento
F77 F90
DO r1 v=n1,n2,n3
comandos...
r1 CONTINUE
DO v=n1,n2,n3
comandos...
END DO
5
DO WHILE (F90)
DO WHILE (exp_teste)
comandos...
END DO
Executa a seqüência de comandos enquanto ex_teste for verdadeira
DO IMPLICITO
Estrutura de repetição utilizada em comando READ e WRITE
Exemplo:
READ(u,fmt)(A(I), I=1,10) ! Lê 10 valores para o vetor A(I), I=1..10
6
GO TO ou GOTO
Quando se deseja que o programa avance ou recue de forma não seqüencial.
GOTO r
r é o rótulo de uma linha.
GOTO Implicito
GOTO (r1,r2,...,rn) var
var: Variável ou expressão inteira. Indica o rótulo da linha para a qual será desviado o programa. Valor máximo igual ao número de rótulos.
7
Estruturas Avançadas
Tipos definidos pelo usuário.
TYPE nome
declarações
END TYPE nome
nome: Nome do bloco. Segue as mesmas regras que os nomes de variáveis.
declarações: Declarações de variáveis
Exemplo:TYPE ALUNO
CHARACTER NOME*20
CHARACTER MAT*10
END TYPE ALUNO
8
Comando DATA
DATA var1/valor1/,var2/valor2/,...,varn/valorn/
ou
DATA var1,var2,...,varn/valor1,valor2,...,valorn/
var1, var2,...: Podem ser escalares, vetores ou matrizes.
Exemplo:
integer X(5),A,B,C
data X/10,20,30,40,50/
data A/1/, B/3/, C/5/
9
• Escrever um programa para ordenar, em ordem crescente, o seguinte vetor
X(1:10) 10, 2, 50, 35, 44, -5, -9, 90, 33, -14, 0, 56, 7, 5, 61, 14, 18, 22, 48, 20
- Utilize a declaração DATA para iniciar os valores de X
- Escreva o vetor ordenado para um arquivo no disco