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 Report

Transcript 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