Vetores (2)

23
Vetores (2) Continuação

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

Transcript of Vetores (2)

Page 1: Vetores (2)

Vetores (2)

Continuação

Page 2: Vetores (2)

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

Page 3: Vetores (2)

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

Page 4: Vetores (2)

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...

Page 5: Vetores (2)

Ordenar vetor ... 99 6 8 3 10 9 1 21 33 14

aux

pos

[7]

Page 6: Vetores (2)

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

????

Page 7: Vetores (2)

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

!!!!

Page 8: Vetores (2)

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]

Page 9: Vetores (2)

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

Page 10: Vetores (2)

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 ...

Page 11: Vetores (2)

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

Page 12: Vetores (2)

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]

Page 13: Vetores (2)

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

Page 14: Vetores (2)

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

????

Page 15: Vetores (2)

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]

Page 16: Vetores (2)

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]

Page 17: Vetores (2)

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]

Page 18: Vetores (2)

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]

Page 19: Vetores (2)

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

Page 20: Vetores (2)

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

Page 21: Vetores (2)

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

Page 22: Vetores (2)

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

Page 23: Vetores (2)

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