Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ulfreitas

[Resolvido] algoritmo para mostrar intersecção

Recommended Posts

Bom dia

Montei esse algoritmo ele tem que ler dois vetores e mostrar os numeros que se repetem em A e B

 

var
a, b : vetor[1..5] de inteiro
i, j : inteiro
inicio
// Seção de Comandos 
para i de 1 ate 5 faca
    escreval("Digite um numero inteiro par o conjunto A")
    leia(a[i])
fimpara
para j de 1 ate 5 faca
    escreval("Digite um numero inteiro para o conjunto B")
    leia(b[j])
fimpara
para i de 1 ate 5 faca
    para j de 1 ate 5 faca
         se a[i] = b[j] entao
            escreval(a[i])
         fimse
    fimpara
fimpara
fimalgoritmo

 

O meu ta funcionando só q nao sei se é a maneira mais logica de resolver...

Poderia ser feito de outra forma?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A sua forma não acho que está errada não.

Só que se tiver mais de um numero igual no mesmo conjunto ele irá exibir, + como não está falando nd sobre isso ta beleza ;D

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só que se tiver mais de um numero igual no mesmo conjunto ele irá exibir, + como não está falando nd sobre isso ta beleza ;D

 

Entao eu tinha percebido isso mas o exercicio realmente nao falava nada, mas ja q você comentou fui tentar fazer

Dá uma olhada

para i de 1 ate 5 faca
    se i = 1 entao
       escreval("Digite um numero inteiro para o conjunto A")
       leia(a[i])
       senao
       se i > 1 entao
          escreval("Digite um numero inteiro para o conjunto A")
          leia(a[i])
          enquanto a[i] = a[i-1] faca
                   escreval("Voce ja digitou esse numero, digite outro")
                   leia(a[i])
         fimenquanto
       fimse
    fimse
fimpara

 

Aqui funcionou, e quanto a lógica tá certa?

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, seria legal modularizar, você já aprendeu a criar procedimentos/Funções?

tipo assim:


Função jahTem Inteiro num Retorna Inteiro
   Inteiro OK;
   .
   . //Loop para verificar se número já existe 
   .
   Função_Retorna OK
Fim_Função

OK <- 0;
Enquanto (OK=0) Faça
   Leia (num);
   Se (jahtem(num)=0) OK <-1;
Fim_Enquanto;

 

não que o seu esteja errado, apenas fica + elegante o código e + facil dar futuras manutenções..

o jeito de se criar a função é mais ou menos essa, vai depender de como é determinando do seu compilador ;D

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.