Estudo programação a pouco tempo e estou com duvida na resolução do exercício, que se segue abaixo:
Trocar os valores de um VetorA para um VetorB, e imprimir o VetorB com os valores de A e o Vector de A com os valores de B?
int n, m, aux, vectorA[5], vectorB[5];
printf("\tPROGRAMA QUE IMPRIME OS VALORES DE DOIS VECTORES TROCADOS\n\n");
for (n = 0; n < 5; n++){
printf("Digite o VectorA[%d]: ", n);
scanf("%d", &vectorA[n]);
}
printf("\n\n");
for (m = 0; m < 5; m++){
printf("Digite o VectorB[%d]: ", n);
scanf("%d", &vectorB[m]);
}
printf("\n\n");
aux = vectorA[n];
vectorA[n] = vectorB[m];
vectorB[m] = aux;
printf("\n\n");
for (n = 0; n < 5; n++){
printf("vectorA[%d]", n);
}
printf("\n\n");
for (m = 0; m < 5; m++){
printf("vectorB[%d]", m);
}
Caro Mauro, boa noite!
Você até começou bem. Criou dois vetores e solicitou/preencheu cada elemento do vetor. É importante lembrar que, para vetores, ao menos no início, “qualquer” operação que você for fazer, deverá passar por cada elemento do vetor. Veja que, por exemplo, a sua variável aux recebe o vectorA[n] onde n sairá do primeiro for com o valor 5! Teremos aí dois problemas sendo eles:
- Apenas um item do vetor estaria sendo acessado;
- O elemento do vetor, para este caso o vectorA[5], não existe.
Enfim, uma forma bem simples de resolver este problema seria declarando um vetor auxiliar vectorAux[] de para cada elemento vectorAux[i] receber os elementos vectorA[i], vectorA[i] receber os elementos de vectorB[i] e por fim, vectorB[i] receber os elementos de vectorAux[i].
Qualquer dúvida estamos aí.
1 curtida
Apensa para confirmar, o trecho de código em que, suportamente, realiza a troca é este
printf("\n\n");
aux = vectorA[n];
vectorA[n] = vectorB[m];
vectorB[m] = aux;
printf("\n\n");
Raciocina comigo: um vetor possui mais de uma posição, não é mesmo? Como você faz para percorrer um vetor e obter ou determinar o valor de cada posição existente nele?
Já pensou em criar o algoritmo disso, antes de tentar programar?
Algoritmo "semnome"
// Disciplina : [Linguagem e Lógica de Programação]
// Professor : Antonio Carlos Nicolodi
// Descrição : Aqui você descreve o que o programa faz! (função)
// Autor(a) : Nome do(a) aluno(a)
// Data atual : 10/04/2017
Var
// Seção de Declarações das variáveis
n, m, aux : inteiro
vectorA, vectorB : vetor [1..2] de inteiro
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
m <- 5
para n de 1 ate m faca
escreval("Digite o ", n, "º valor do vetor A")
leia(vectorA[n])
fimpara
escreval("")
para n de 1 ate m faca
escreval("Digite o ", n, "º valor do vetor B")
leia(vectorB[n])
fimpara
para n de 1 ate m faca
aux <- vectorA[n]
vectorA[n] <- vectorB[n]
vectorB[n] <- aux
fimpara
escreval("Apresentando vectorA")
para n de 1 ate m faca
escreval(vectorA[n])
fimpara
escreval("Apresentando vectorB")
para n de 1 ate m faca
escreval(vectorB[n])
fimpara
Fimalgoritmo
Muito obrigado pelas dicas. Graças a Deus e a prática consegui fazer e perceber como ele deve rolar. O segredo esta na lógica em que escrevemos os nossos códigos, porque o computador apenas faz o que por nos for mandado. Mais uma vez, muito obrigado!
Lembro das minhas primeiras aulas de lógica de programação/c++ (eram alternadas, numa criávemos algoritmos, na outra implementávamos os programas). O professor Paulo Cayres (excelente professor e pessoa) nos dizia:
“O computador é burro, vai fazer tudo o que você mandar.”.
1 curtida