Ir ao conteúdo
  • Cadastre-se

Dúvida Vetor


Posts recomendados

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

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

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.

Link para o comentário
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
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

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

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
Link para o comentário
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!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...