Ir ao conteúdo

Posts recomendados

Postado

Bom dia Galera,

estou tentando resolver esse exercício mais não consigo, de todo jeito que eu faço não da certo. Alguém pode me ajudar?

 

Dado dois vetores, A (5 elementos) e B (8 elementos), faça um programa que imprima todos os elementos comuns aos dois vetores.

 

Fiz mais ou menos assim.

 

var
i,k,m: inteiro
vetA: vetor[1..5] de inteiro
vetB: vetor[1..8] de inteiro
inicio
// Seção de Comandos
   para i de 1 ate 5 faca
   escreva ("Digite o", i, " número : ")
   leia (vetA)
fimpara
   para i de 1 ate 8 faca
   escreva ("Digite o", i, " número : ")
   leia (vetB)
fimpara
       para i de 1 ate 8 faca
       se (vetA = vetB) então
       K<-i
       senao
       m<-k
       fimse
       fimpara
       
       escreval (k)

 
fimalgoritmo

 

  • Curtir 1
Postado

Neste caso você precisa de dois laços de repetição, um para percorrer cada vetor. Da forma como está a busca será assim:

vetA[1] = vetB[1]

vetA[2] = vetB[2] ...

 

Mas se você quer testar todas os elementos tente comparar assim

vetA[ i ] = vetB[ j ]

 

com i percorrendo de 1 ate 5 e j percorrendo de 1 ate 8.

 

Espero ter ajudado.

  • Curtir 1
  • Membro VIP
Postado

Olá @Laize Neves,

 

Basicamente você precisa comparar cada posição do vetA com cada posição do vetB.

 

Algo do tipo:
 

para ii de 1 ate 5  //para cada posição de vetA
  para jj de 1 ate 8  //para cada posição vetB
    se (vetA[ii] = vetB[jj]) então
      
    fimse
  fimpara
fimpara

 

 

No aguardo.

  • Curtir 3
Postado

Oi @Simon Veigas, fiz desse jeito, quando faço 1,2,3,4,5 da certo mais se uso outros números não. não sei se é na hora de mostrar eu só coloquei o J, Ficou desse jeito:

 

var
i,j: inteiro
vetA: vetor[1..5] de inteiro
vetB: vetor[1..8] de inteiro
inicio
// Seção de Comandos
   para i de 1 ate 5 faca
   escreva ("Digite o", i, " número : ")
   leia (vetA)
fimpara
   para j de 1 ate 8 faca
   escreva ("Digite o", j, " número : ")
   leia (vetB[j])
fimpara
       para i de 1 ate 5 faca
       para j de 1 ate 8 faca
       se (vetA = vetB[j]) então
            escreval (j)
       
       fimse
       fimpara
       fimpara
       
fimalgoritmo

 

O que está de errado?

 

 

 

  • Curtir 1
  • Membro VIP
Postado

Olá @Laize Neves,

 

Você precisa escrever o "elemento comum", não a posição do elemento.

ou

escreval (vetA[ii])

ou

escreval (vetA[jj])



Sugiro dar mais atenção a identação... no meu padrão ficaria assim:

 

var
  ii,jj: inteiro
  vetA : vetor[1..5] de inteiro
  vetB : vetor[1..8] de inteiro
inicio
// Seção de Comandos
para ii de 1 ate 5 faca
  escreva ("Digite o ",ii," número : ")
  leia (vetA[ii])
fimpara
para jj de 1 ate 8 faca
  escreva ("Digite o ",jj, " número : ")
  leia (vetB[jj])
fimpara
para ii de 1 ate 5 faca
  para jj de 1 ate 8 faca
    se (vetA[ii] = vetB[jj]) então
      escreval (vetA[ii])
    fimse
  fimpara
fimpara

É necessário deixar visualmente claro que determinadas instruções estão dentro de outras...

Obs.: "ii" e "jj", pois o i entre colchetes está sendo interpretado como itálico.

No aguardo.

  • Curtir 1
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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!