VisuAlg Vetores

Para esta semana veremos como os vetores funcionam em VisuAlg. Para compreender os vetores em suas estruturas recomendo que observe as aulas de vetores aqui
Posteriormente, sabendo o que são, vamos a usabilidade destas estruturas no Visualg, deste modo acompanhe o enunciado do problema inédito (?!?).

1 - Criar um programa que leia um vetor de 5 elementos e apresente esses elementos em ordem crescente.

Veja o código do programa...


Observe que outro índice foi criado para acompanhar a ordenação sendo o j = i+1. Acompanhe as imagens para entender melhor...




Na imagem acima vemos que o Vetor A foi criado e contém 5 elementos (dados guardados em cada espaço do vetor) e, que o índice indica o lugar de cada elemento ( na imagem é o 1, 2, 3, 4 e 5 sobre os quadrados do vetor ). também foi criado um campo de mesmo tipo chamado TROCA para ajudar na manipulação dos dados do Vetor A. Acompanhando o programa teremos o trecho de SORT que é o "para, para se" veja;


Aqui identificamos que o "i" inicia em 1 enquanto que o "j" inicia em "i+1", isto é, o próximo item do vetor. Veja a tabela para identificar qual o valor do i e do j durante o sort.



Certo, vemos então que enquanto o i for 1 o j (preso no para) vai valer de 2 até 5. Por este mesmo motivo o i deve ir apenas até o penúltimo lugar, caso fosse o último, o j seria um valor fora do vetor. i = 5, j = 6 ( i+1 )?!?

Acompanhando o programa no trecho teremos o i como 1, na próxima linha teremos o para iniciando o j como i+1 (2), na próxima linha teremos uma decisão que observa se o elemento de a[i] é maior que o elemento de a[j]. Está sendo observado se o primeiro elemento é maior que o segundo no Vetor A!.
Caso SIM! trocamos a posição do primeiro pelo segundo utilizando o campo TROCA como apoio para não ferir a integridade dos dados veja...



Observe que, como o trecho de programa diz, o campo TROCA recebe o elemento de A[i]. Posteriormente o campo de A[i] recebe o elemento de A[j], veja abaixo...

Agora o campo de TROCA pode ser inserido em A[j]. acompanhe abaixo o processo...
Observamos que comparando os campos uma troca acontece, fazendo com que o elemento menos seja posicionado na primeira posição, onde i é igual a 1. Agora o fimse é alcançado, e posteriormente o primeiro fimpara, neste momento o programa volta para o para do J (o segundo para ) fazendo com que o j passe para o próximo passo, passando a valer 3. E a comparação agora é "se(a[i]>a]j])entao" sendo o i = 1 e o j = 3. Novamente os campos são comparados e trocados toda vez que atender a condição, fazendo o programa colocar os dados na ordem. Quando o j chegar a 5 (última posição possível) o i passa a valer 2 e todo o processo se reinicia...
Observe o resultado final abaixo no compilador.



Note que os valores entraram de uma forma aleatória e saíram ordenados de forma crescente. Para inverter a ordem para decrescente apenas mude o sinal ( operador relacional ) de maior ">" para menor "<".

Vamos ver outro exemplo...

2- Criar um programa que leia 10 elementos inteiros de um Vetor A e apresente em um Vetor B os valores de A invertidos.

Código...

No caso apenas criamos um índice para ajudar a manipular os dados de entrada de do Vetor A de forma invertida diretamente do looping de entrada dos elementos do Vetor A. Veja a saída em monitor...


é isso....
Apreenda!
Compartilhe!

Pronto! <- Pronto! *2;


Nenhum comentário: