230 likes | 371 Views
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
E N D
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 SE min < vetor[i] ENTAO inicio min vetor[i]; pos i ; // a posição que se encontra fim FIM SE FIM PARA Escreve ( ‘menor valor: ‘, min, ‘ na posicao : ‘ , pos); FIM
aux 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 !!!
aux pos Ordenar vetor ... Usando o algoritmo do caso 1, descobriu-se que o menor valor é 1 !!! E está na posição 7...
aux pos Ordenar vetor ... [7]
aux pos Ordenar vetor ... 1 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.
aux pos Ordenar vetor ... 1 1 !!!! 7 Vai ser trocado o valor que está na primeira posição para que o menor valor do vetor esteja em primeiro.
aux pos Ordenar vetor ... [pos] 1 1 7 O valor da primeira posição do vetor é atribuído para a posição 7 !!!!
aux pos Ordenar vetor ... 99 1 7 O valor da primeira posição do vetor para para a posição 7 !!!!
aux pos Ordenar vetor ... 99 1 7 Agora, o menor valor vai para o seu lugar ( a primeira posição do vetor ). Próximo passo ... Ordenar os demais ...
aux pos Ordenar vetor ... 99 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 ).
aux pos Ordenar vetor ... 99 [4] 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 ).
aux pos Ordenar vetor ... 99 [4] 3 4 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 ).
aux pos Ordenar vetor ... 99 ???? 3 4 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 ...
aux pos Ordenar vetor ... [pos] 99 3 4 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 ...
aux pos Ordenar vetor ... [pos] 99 3 4 Agora, falta apenas transferir o SEGUNDO menor valor ( em aux) para a SEGUNDA posição do vetor
aux pos Ordenar vetor ... [pos] 99 3 4 Agora, falta apenas transferir o SEGUNDO menor valor ( em aux) para a SEGUNDA posição do vetor
aux pos Ordenar vetor ... [pos] 99 3 4 Agora, falta apenas transferir o SEGUNDO menor valor ( em aux) para a SEGUNDA posição do vetor
aux pos Ordenar vetor ... 99 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...
Sugestão de exercício • Faça o procedimento para encontrar o maior elemento. • Use esse procedimento para ordenar o vetor ( encontrar o maior , trocar , colocar o maior elemento na última posição do vetor ) ... • 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 • 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ício 5. Dado o vetor • Escreva todos os elementos ímpares do vetor • Escreva todos os elementos de índice/posição ímpar
program testeVetor; real vmedia(6) integer i do i=1,6,1 vmedia(i) = i print*, i, vmedia(i) end do end Fortran • Vetores = Arrays ( conjuntos ) inicio TIPO 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 PARA FIM
program testeVetor; real vmedia Dimension vmedia(1:6); do i=1,6,1 vmedia(i) = i print*, i, vmedia(i) end do end Fortran • Dimension inicio TIPO 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 PARA FIM