Aula 5 Estruturas de Programação Estruturas Condicionais IF (expressão teste) then ou IF (expressão teste) then ELSE END IF SELECT CASE (exp_select) CASE (lista case 1) comandos ... CASE (lista.
Download ReportTranscript Aula 5 Estruturas de Programação Estruturas Condicionais IF (expressão teste) then ou IF (expressão teste) then ELSE END IF SELECT CASE (exp_select) CASE (lista case 1) comandos ... CASE (lista.
Slide 1
Aula 5
Estruturas de Programação
Estruturas Condicionais
IF (expressão teste) then
ou
IF (expressão teste) then
ELSE
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
1
Estruturas de seleção
Condição Verdadeira p/ exp_select
CASE(valor)
=valor
CASE(: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
exp_arit
<0 – desvia para o comando n1
=0 – desvia para o comando n2
>0 – desvia para o comando n3
2
EXEMPLO:
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
3
Estruturas de Repetição
F77
DO r1 v=n1,n2,n3
comandos...
r1 CONTINUE
F90
DO v=n1,n2,n3
comandos...
END DO
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
4
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
5
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.
6
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
7
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/
8
• 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
9
Slide 2
Aula 5
Estruturas de Programação
Estruturas Condicionais
IF (expressão teste) then
ou
IF (expressão teste) then
ELSE
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
1
Estruturas de seleção
Condição Verdadeira p/ exp_select
CASE(valor)
=valor
CASE(: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
exp_arit
<0 – desvia para o comando n1
=0 – desvia para o comando n2
>0 – desvia para o comando n3
2
EXEMPLO:
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
3
Estruturas de Repetição
F77
DO r1 v=n1,n2,n3
comandos...
r1 CONTINUE
F90
DO v=n1,n2,n3
comandos...
END DO
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
4
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
5
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.
6
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
7
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/
8
• 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
9
Slide 3
Aula 5
Estruturas de Programação
Estruturas Condicionais
IF (expressão teste) then
ou
IF (expressão teste) then
ELSE
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
1
Estruturas de seleção
Condição Verdadeira p/ exp_select
CASE(valor)
=valor
CASE(: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
exp_arit
<0 – desvia para o comando n1
=0 – desvia para o comando n2
>0 – desvia para o comando n3
2
EXEMPLO:
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
3
Estruturas de Repetição
F77
DO r1 v=n1,n2,n3
comandos...
r1 CONTINUE
F90
DO v=n1,n2,n3
comandos...
END DO
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
4
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
5
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.
6
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
7
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/
8
• 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
9
Slide 4
Aula 5
Estruturas de Programação
Estruturas Condicionais
IF (expressão teste) then
ou
IF (expressão teste) then
ELSE
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
1
Estruturas de seleção
Condição Verdadeira p/ exp_select
CASE(valor)
=valor
CASE(: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
exp_arit
<0 – desvia para o comando n1
=0 – desvia para o comando n2
>0 – desvia para o comando n3
2
EXEMPLO:
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
3
Estruturas de Repetição
F77
DO r1 v=n1,n2,n3
comandos...
r1 CONTINUE
F90
DO v=n1,n2,n3
comandos...
END DO
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
4
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
5
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.
6
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
7
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/
8
• 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
9
Slide 5
Aula 5
Estruturas de Programação
Estruturas Condicionais
IF (expressão teste) then
ou
IF (expressão teste) then
ELSE
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
1
Estruturas de seleção
Condição Verdadeira p/ exp_select
CASE(valor)
=valor
CASE(: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
exp_arit
<0 – desvia para o comando n1
=0 – desvia para o comando n2
>0 – desvia para o comando n3
2
EXEMPLO:
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
3
Estruturas de Repetição
F77
DO r1 v=n1,n2,n3
comandos...
r1 CONTINUE
F90
DO v=n1,n2,n3
comandos...
END DO
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
4
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
5
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.
6
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
7
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/
8
• 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
9
Slide 6
Aula 5
Estruturas de Programação
Estruturas Condicionais
IF (expressão teste) then
ou
IF (expressão teste) then
ELSE
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
1
Estruturas de seleção
Condição Verdadeira p/ exp_select
CASE(valor)
=valor
CASE(: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
exp_arit
<0 – desvia para o comando n1
=0 – desvia para o comando n2
>0 – desvia para o comando n3
2
EXEMPLO:
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
3
Estruturas de Repetição
F77
DO r1 v=n1,n2,n3
comandos...
r1 CONTINUE
F90
DO v=n1,n2,n3
comandos...
END DO
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
4
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
5
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.
6
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
7
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/
8
• 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
9
Slide 7
Aula 5
Estruturas de Programação
Estruturas Condicionais
IF (expressão teste) then
ou
IF (expressão teste) then
ELSE
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
1
Estruturas de seleção
Condição Verdadeira p/ exp_select
CASE(valor)
=valor
CASE(: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
exp_arit
<0 – desvia para o comando n1
=0 – desvia para o comando n2
>0 – desvia para o comando n3
2
EXEMPLO:
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
3
Estruturas de Repetição
F77
DO r1 v=n1,n2,n3
comandos...
r1 CONTINUE
F90
DO v=n1,n2,n3
comandos...
END DO
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
4
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
5
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.
6
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
7
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/
8
• 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
9
Slide 8
Aula 5
Estruturas de Programação
Estruturas Condicionais
IF (expressão teste) then
ou
IF (expressão teste) then
ELSE
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
1
Estruturas de seleção
Condição Verdadeira p/ exp_select
CASE(valor)
=valor
CASE(: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
exp_arit
<0 – desvia para o comando n1
=0 – desvia para o comando n2
>0 – desvia para o comando n3
2
EXEMPLO:
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
3
Estruturas de Repetição
F77
DO r1 v=n1,n2,n3
comandos...
r1 CONTINUE
F90
DO v=n1,n2,n3
comandos...
END DO
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
4
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
5
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.
6
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
7
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/
8
• 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
9
Slide 9
Aula 5
Estruturas de Programação
Estruturas Condicionais
IF (expressão teste) then
ou
IF (expressão teste) then
ELSE
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
1
Estruturas de seleção
Condição Verdadeira p/ exp_select
CASE(valor)
=valor
CASE(: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
exp_arit
<0 – desvia para o comando n1
=0 – desvia para o comando n2
>0 – desvia para o comando n3
2
EXEMPLO:
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
3
Estruturas de Repetição
F77
DO r1 v=n1,n2,n3
comandos...
r1 CONTINUE
F90
DO v=n1,n2,n3
comandos...
END DO
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
4
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
5
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.
6
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
7
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/
8
• 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
9
Aula 5
Estruturas de Programação
Estruturas Condicionais
IF (expressão teste) then
ou
IF (expressão teste) then
ELSE
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
1
Estruturas de seleção
Condição Verdadeira p/ exp_select
CASE(valor)
=valor
CASE(: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
exp_arit
<0 – desvia para o comando n1
=0 – desvia para o comando n2
>0 – desvia para o comando n3
2
EXEMPLO:
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
3
Estruturas de Repetição
F77
DO r1 v=n1,n2,n3
comandos...
r1 CONTINUE
F90
DO v=n1,n2,n3
comandos...
END DO
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
4
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
5
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.
6
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
7
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/
8
• 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
9
Slide 2
Aula 5
Estruturas de Programação
Estruturas Condicionais
IF (expressão teste) then
ou
IF (expressão teste) then
ELSE
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
1
Estruturas de seleção
Condição Verdadeira p/ exp_select
CASE(valor)
=valor
CASE(: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
exp_arit
<0 – desvia para o comando n1
=0 – desvia para o comando n2
>0 – desvia para o comando n3
2
EXEMPLO:
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
3
Estruturas de Repetição
F77
DO r1 v=n1,n2,n3
comandos...
r1 CONTINUE
F90
DO v=n1,n2,n3
comandos...
END DO
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
4
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
5
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.
6
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
7
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/
8
• 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
9
Slide 3
Aula 5
Estruturas de Programação
Estruturas Condicionais
IF (expressão teste) then
ou
IF (expressão teste) then
ELSE
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
1
Estruturas de seleção
Condição Verdadeira p/ exp_select
CASE(valor)
=valor
CASE(: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
exp_arit
<0 – desvia para o comando n1
=0 – desvia para o comando n2
>0 – desvia para o comando n3
2
EXEMPLO:
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
3
Estruturas de Repetição
F77
DO r1 v=n1,n2,n3
comandos...
r1 CONTINUE
F90
DO v=n1,n2,n3
comandos...
END DO
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
4
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
5
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.
6
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
7
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/
8
• 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
9
Slide 4
Aula 5
Estruturas de Programação
Estruturas Condicionais
IF (expressão teste) then
ou
IF (expressão teste) then
ELSE
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
1
Estruturas de seleção
Condição Verdadeira p/ exp_select
CASE(valor)
=valor
CASE(: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
exp_arit
<0 – desvia para o comando n1
=0 – desvia para o comando n2
>0 – desvia para o comando n3
2
EXEMPLO:
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
3
Estruturas de Repetição
F77
DO r1 v=n1,n2,n3
comandos...
r1 CONTINUE
F90
DO v=n1,n2,n3
comandos...
END DO
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
4
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
5
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.
6
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
7
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/
8
• 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
9
Slide 5
Aula 5
Estruturas de Programação
Estruturas Condicionais
IF (expressão teste) then
ou
IF (expressão teste) then
ELSE
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
1
Estruturas de seleção
Condição Verdadeira p/ exp_select
CASE(valor)
=valor
CASE(: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
exp_arit
<0 – desvia para o comando n1
=0 – desvia para o comando n2
>0 – desvia para o comando n3
2
EXEMPLO:
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
3
Estruturas de Repetição
F77
DO r1 v=n1,n2,n3
comandos...
r1 CONTINUE
F90
DO v=n1,n2,n3
comandos...
END DO
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
4
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
5
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.
6
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
7
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/
8
• 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
9
Slide 6
Aula 5
Estruturas de Programação
Estruturas Condicionais
IF (expressão teste) then
ou
IF (expressão teste) then
ELSE
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
1
Estruturas de seleção
Condição Verdadeira p/ exp_select
CASE(valor)
=valor
CASE(: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
exp_arit
<0 – desvia para o comando n1
=0 – desvia para o comando n2
>0 – desvia para o comando n3
2
EXEMPLO:
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
3
Estruturas de Repetição
F77
DO r1 v=n1,n2,n3
comandos...
r1 CONTINUE
F90
DO v=n1,n2,n3
comandos...
END DO
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
4
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
5
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.
6
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
7
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/
8
• 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
9
Slide 7
Aula 5
Estruturas de Programação
Estruturas Condicionais
IF (expressão teste) then
ou
IF (expressão teste) then
ELSE
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
1
Estruturas de seleção
Condição Verdadeira p/ exp_select
CASE(valor)
=valor
CASE(: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
exp_arit
<0 – desvia para o comando n1
=0 – desvia para o comando n2
>0 – desvia para o comando n3
2
EXEMPLO:
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
3
Estruturas de Repetição
F77
DO r1 v=n1,n2,n3
comandos...
r1 CONTINUE
F90
DO v=n1,n2,n3
comandos...
END DO
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
4
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
5
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.
6
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
7
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/
8
• 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
9
Slide 8
Aula 5
Estruturas de Programação
Estruturas Condicionais
IF (expressão teste) then
ou
IF (expressão teste) then
ELSE
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
1
Estruturas de seleção
Condição Verdadeira p/ exp_select
CASE(valor)
=valor
CASE(: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
exp_arit
<0 – desvia para o comando n1
=0 – desvia para o comando n2
>0 – desvia para o comando n3
2
EXEMPLO:
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
3
Estruturas de Repetição
F77
DO r1 v=n1,n2,n3
comandos...
r1 CONTINUE
F90
DO v=n1,n2,n3
comandos...
END DO
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
4
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
5
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.
6
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
7
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/
8
• 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
9
Slide 9
Aula 5
Estruturas de Programação
Estruturas Condicionais
IF (expressão teste) then
ou
IF (expressão teste) then
ELSE
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
1
Estruturas de seleção
Condição Verdadeira p/ exp_select
CASE(valor)
=valor
CASE(: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
exp_arit
<0 – desvia para o comando n1
=0 – desvia para o comando n2
>0 – desvia para o comando n3
2
EXEMPLO:
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
3
Estruturas de Repetição
F77
DO r1 v=n1,n2,n3
comandos...
r1 CONTINUE
F90
DO v=n1,n2,n3
comandos...
END DO
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
4
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
5
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.
6
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
7
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/
8
• 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
9