titulo
Programação Básica de Computadores, Eng. Civil – Profª. Débora Bossois
Vetores
* Declaração: var1()
ou var1 dimension var1()
!Em desuso...
Ex.: integer a(5) do i=1,5 a(i) = i print *,'a(',i,') = ',a(i) end do
* Inicialização: var1() //
ou
var1() data var1 //
Ex.:
real A(10,20) data A /200 * 0.0/
!Inicializa todos os elementos com zeros
data A(1) /12.5/, A(2) /-33.3/, A(3) /1.0/ integer v(5) /10,20,30,40,50/
* Índices mínimos e máximos:
var1(:)
Ex.: integer a(-3:0) /1,2,3,4/ do i=-3,0 print *,'a(',i,')=', a(i) end do
UFES – Centro Tecnológico – Departamento de Informática
Programação Básica de Computadores, Eng. Civil – Profª. Débora Bossois
Matrizes
* Declaração: var1(, ,..., )
!Máximo 7
Ex.: real A(10,20) /200 * 0.0/ integer B(2,2) data B(1,1) /12/, B(2,1) /-3/, A(2,2) /1/ integer v(2,3) /1,4,2,5,3,6/ !Atribui coluna por coluna
Ex.: program matrix integer a(-3:0,2) /1,3,5,7,2,4,6,8/ do i=-3,0 do j=1,2 print 10, a(i,j) end do print* end do
10
format(I1," ",$) end Saída:
1
3
5
7
2
4
6
8
* Acesso em memória:
- Armazena em espaços contíguos por coluna.
- Uma matriz A(10,10) ficaria:
A(1,1),A(2,1)...A(10,1), A(1,2)...A(10,2), ..., A(1,10)...A(10,10)
- Para maior eficiência, a forma de acesso deve respeitar essa ordem.
- Os laços mais internos devem corresponder à dimensão mais à esquerda.
Ex. anterior maios eficiente:
...
do j=1,2 do i=-3,0 print 10, a(i,j) end do end do
...
A desvantagem é que a ordem de impressão não é a mais intuitiva (linha/coluna).
UFES – Centro Tecnológico – Departamento de Informática
Programação Básica de Computadores, Eng. Civil – Profª. Débora Bossois
Exercícios resolvidos
1) Ler um vetor C de 10 elementos inteiros, trocar todos os valores negativos do vetor C por 0.
Escrever o vetor C modificado. program exerc1 integer C(10) print*, "Forneca