Ir ao conteúdo
  • Cadastre-se
Andre Henrique Egydio

Dúvida Vetor

Recommended Posts

Fala pessoal,

Tudo bem?

 

Eu estou estudando Análise e Desenvolvimento de Sistemas e estou com uma grande dúvida. Eu consegui entender perfeitamente o que é Vetor, mas não consigo identificar um resultado dele dentro do algoritmo, não estou conseguindo interpretar o código. Será que alguém consegue me ajudar?

 

Dado o vetor V abaixo:

 

vetor 5 1 4 2 7 8 3 6
         0 1 2 3 4 5 6 7

Qual será seu conteúdo do vetor V depois de executado o algoritmo a seguir?
 

int i, aux;for(i = 7; i >= 4; i--){            aux = v[ i ];            v[ i ] = v[ 7 - i ];            v[ 7 - i ] = aux;}

 

6, 3, 8, 7, 5, 1, 4, 2

 

6, 3, 1, 7, 2, 4, 8, 5

 

5, 1, 4, 2, 7, 8, 3, 6

 

7, 8, 3, 1, 2, 4, 6, 5

 

6, 3, 8, 7, 2, 4, 1, 5

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia.

Também estou fazendo o mesmo curso.

 

Essas devem ser as alternativas:

 

6, 3, 8, 7, 5, 1, 4, 2

 

6, 3, 1, 7, 2, 4, 8, 5

 

5, 1, 4, 2, 7, 8, 3, 6

 

7, 8, 3, 1, 2, 4, 6, 5

 

6, 3, 8, 7, 2, 4, 1, 5

 

 

Vamos ler o algoritmo:

for(i = 7; i >= 4; i--){            aux = v[ i ];            v[ i ] = v[ 7 - i ];            v[ 7 - i ] = aux;}

A primeira vez que o for passar vai valer 7. As linhas após é uma rotina de troca muito usada em programação. É bom se acostumar.

É criada uma variável pra guardar um valor de A, faz a troca de uma variável B para A e depois B recebe o Aux.

 

aux = v[ i ]; ou seja, v[7] que é 6

v[ i ] = v[ 7 - i ]; ou seja, onde estava o 6 vai entrar o v[0] que é 5. O vetor por enquanto estará assim: 5 1 4 2 7 8 3 5

v[ 7 - i ] = aux; ou seja, v[0] onde está o primeiro 5 vai receber o valor guardado na primeira linha que é 6, ficando assim: 6 1 4 2 7 8 3 5

 

Repare que você só trocou a posição do 5 e 6.

 

Agora você vai para a próxima posição do for, fazendo a mesma coisa, usando o resultado da primeira passagem: 6 1 4 2 7 8 3 5. No final achará a resposta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito bom Math! Muito obrigado pela explicação.

 

Estou com muitas dificuldades de compreender o vetor vendo em código, você sabe me dizer se existe alguma técnica para facilitar o entendimento? Como uma prova real, por exemplo?

 

Abraços e obrigado.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu uso papel e caneta.

Tem que ler linha por linha tipo um "debug" e ir anotando as alterações que o programa faz.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu uso papel e caneta.

Tem que ler linha por linha tipo um "debug" e ir anotando as alterações que o programa faz.

 

É o chamado teste de mesa. Basicamente é montar uma tabela onde as colunas são os nomes das variáveis e cada linha da tabela corresponde a uma linha da tabela, e em cada célula você coloca o estado da variável quando o programa está na linha em questão.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

É o chamado teste de mesa. Basicamente é montar uma tabela onde as colunas são os nomes das variáveis e cada linha da tabela corresponde a uma linha da tabela, e em cada célula você coloca o estado da variável quando o programa está na linha em questão.

 

Um professor meu chama de teste "chinês". É a mesma coisa rsrs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara é simples veja..

Você tem 2 vetores...

 

v1 = [5 1 4 2 7 8 3 6]

v2 = [0 1 2 3 4 5 6 7]

 

Um vetor é basicamente um retangulo com vários espaços dentro e cada espaço tem um índice, logo para o vetor v1 temos:

 

[table]

01234567

51427836

[/table]

 

A primeira linha indica a posição (indice, espaço) que o número ocupa.

No caso do numero 8, ele ocupa o espaço de índice 5. Então se você printar v1[5] vai receber o número 8 como resultado.

 

É só brincar com os índices que você vai entender a lógica. Enquanto ao for faça como disseram, utilize o teste de mesa.

Marca no papel, i vale 7.. vai seguindo o código e alterando o seu valor conforme o código faz. Faz tudo isso anotando no papel.

 

Espero ter ajudado, abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Pimptech

O segundo não é vetor. Somente uma sequência mostrando que a conta das posições inicia em 0.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×