Upload
kathie
View
43
Download
1
Embed Size (px)
DESCRIPTION
Vetores (2). Continuação. Caso 1: Qual o menor valor ?. Início TIPO vcu = vetor [1..10] de inteiros; // variável composta uniforme vcu : vetor; Inteiro: min, i, n, pos; Ler (n); PARA i DE 1 ATÉ n PASSO 1 FAÇA Ler ( vetor[i] ) ; FIM PARA Min = vetor[1]; PARA i DE 2 ATÉ n PASSO 1 FAÇA - PowerPoint PPT Presentation
Citation preview
Vetores (2)
Continuação
Caso 1: Qual o menor valor ?InícioTIPO vcu = vetor [1..10] de inteiros; //variável composta uniforme
vcu : vetor;Inteiro: min, i, n, pos;Ler (n);PARA i DE 1 ATÉ n PASSO 1 FAÇA
Ler ( vetor[i] ) ;FIM PARAMin = vetor[1];PARA i DE 2 ATÉ n PASSO 1 FAÇA SE min < vetor[i] ENTAO inicio min vetor[i];
pos i ; // a posição que se encontra
fim FIM SEFIM PARAEscreve ( ‘menor valor: ‘, min, ‘ na posicao : ‘ , pos);FIM
Ordenar vetor
Estratégia • Usar uma variável simples como “recipiente” de
troca : inteiro aux• Descobrir o menor valor do vetor e sua posição• Armazenar esse “primeiro” menor em aux• Trocar : valor do vetor[1] vai para posição do
menor• Copiar valor de Aux para vetor[1] ...• O menor valor está na posição 1 !!!
99 6 8 3 10 9 1 21 33 14aux
Ordenar vetor ... 99 6 8 3 10 9 1 21 33 14
aux pos
Usando o algoritmo do caso 1, descobriu-se que o menor valor é 1 !!! E está na posição 7...
Ordenar vetor ... 99 6 8 3 10 9 1 21 33 14
aux
pos
[7]
Ordenar vetor ... 99 6 8 3 10 9 21 33 14
aux
pos
1
7
Falta colocar o menor valor na primeira posição ( ou índice ) do vetor. Mas será trocado o valor que lá está , pois não se quer perdê-lo.
1
????
Ordenar vetor ... 99 6 8 3 10 9 21 33 14
aux
pos
1
7
Vai ser trocado o valor que está na primeira posição para que o menor valor do vetor esteja em primeiro.
1
!!!!
Ordenar vetor ... 99 6 8 3 10 9 21 33 14
aux
pos
1
7
O valor da primeira posição do vetor é atribuído para a posição 7 !!!!
1[pos]
Ordenar vetor ... 99 6 8 3 10 9 21 33 14
aux
pos
1
7
O valor da primeira posição do vetor para para a posição 7 !!!!
99
Ordenar vetor ... 1 6 8 3 10 9 21 33 14
aux
pos
1
7
Agora, o menor valor vai para o seu lugar ( a primeira posição do vetor ).
99
Próximo passo ... Ordenar os demais ...
Ordenar vetor ... 1 6 8 3 10 9 21 33 14
aux
pos
Usar o algoritmo de encontrar o menor novamente, mas ignorar a primeira posição ( já é o menor )
Agora, o menor valor vai para o seu lugar ( a primeira posição do vetor ).
99
Ordenar vetor ... 1 6 8 3 10 9 21 33 14
aux
pos
Usar o algoritmo de encontrar o menor novamente, mas ignorar a primeira posição ( já é o menor )
Agora, o menor valor vai para o seu lugar ( a primeira posição do vetor ).
99
[4]
Ordenar vetor ... 1 6 8 3 10 9 21 33 14
aux
pos
Usar o algoritmo de encontrar o menor novamente, mas ignorar a primeira posição ( já é o menor )
Agora, o menor valor vai para o seu lugar ( a primeira posição do vetor ).
99
[4]
3
4
Ordenar vetor ... 1 6 8 3 10 9 21 33 14
aux
pos
Usar o algoritmo de encontrar o menor novamente, mas ignorar a primeira posição ( já é o menor )
Agora, o SEGUNDO menor valor vai para o seu lugar ( a SEGUNDA posição do vetor ). Antes deve-se mover o conteúdo da segunda posição para ONDE pos indicar ...
99
3
4
????
Ordenar vetor ... 1 6 8 3 10 9 21 33 14
aux
pos
Usar o algoritmo de encontrar o menor novamente, mas ignorar a primeira posição ( já é o menor )
Agora, o SEGUNDO menor valor vai para o seu lugar ( a SEGUNDA posição do vetor ). Antes deve-se mover o conteúdo da segunda posição para ONDE pos indicar ...
99
3
4
[pos]
Ordenar vetor ... 1 6 8 6 10 9 21 33 14
aux
pos
Agora, falta apenas transferir o SEGUNDO menor valor ( em aux) para a SEGUNDA posição do vetor
99
3
4
[pos]
Ordenar vetor ... 1 6 8 6 10 9 21 33 14
aux
pos
Agora, falta apenas transferir o SEGUNDO menor valor ( em aux) para a SEGUNDA posição do vetor
99
3
4
[pos]
Ordenar vetor ... 1 3 8 6 10 9 21 33 14
aux
pos
Agora, falta apenas transferir o SEGUNDO menor valor ( em aux) para a SEGUNDA posição do vetor
99
3
4
[pos]
Ordenar vetor ... 1 3 8 6 10 9 21 33 14
aux
pos
Agora, repetir o processo com os demais elementos ...
E começar a partir da terceira posição, já que se ordenou o primeiro e segundo menor elemento ...
E assim sucessivamente, até o penúltimo elemento ser processado...
99
Sugestão de exercício1. Faça o procedimento para encontrar o maior elemento.2. Use esse procedimento para ordenar o vetor ( encontrar o maior ,
trocar , colocar o maior elemento na última posição do vetor ) ...3. Crie 2 vetores de mesmo tamanho e com mesmo tipo. Atribua
valores diferentes entre esses vetores. Realize com eles: • Soma • Subtração• Multiplicação• Divisão
4. Tome um dos vetores do exercício 3 e, para cada elemento, com seja K lido pelo usuário, faça
– Somar o valor k– Subtrair o valor k– Multiplicar por k– Dividir por k
Sugestão de exercício5. Dado o vetor
2 1 8 6 10 9 99 21 33 14
•Escreva todos os elementos ímpares do vetor
•Escreva todos os elementos de índice/posição ímpar
Fortran
program testeVetor;
real vmedia(6)integer i
do i=1,6,1 vmedia(i) = i print*, i, vmedia(i)end do
end
•Vetores = Arrays ( conjuntos )inicioTIPO vreal = vetor[1..6] de real;vreal : vmedia;Inteiro: i ;Para i DE 1 ATÉ 6 PASSO 1
Faça vmedia[i] i escrever( i, vmedia[i] );FIM PARAFIM
Fortran
program testeVetor;
real vmedia
Dimension vmedia(1:6);
do i=1,6,1 vmedia(i) = i print*, i, vmedia(i)end do
end
•DimensioninicioTIPO vreal = vetor[1..6] de real;vreal : vmedia;Inteiro: i ;Para i DE 1 ATÉ 6 PASSO 1
Faça vmedia[i] i escrever( i, vmedia[i] );FIM PARAFIM