Ir para o conteúdo
JPG

Conjuntos em Pascal

Mensagens Recomendadas

JPG    0
JPG

Desenvolva uma função em Pascal que receba como entrada dois conjuntos de inteiros entre 1 e 50 e retorne uma classificação para esse par de conjuntos, considerando a semelhança entre eles.

A função deverá retornar:

1
caso os conjuntos sejam iguais,

2
caso um seja subconjunto próprio do outro e o número de elementos da diferença entre o maior e o menor conjuntos seja menor ou igual ao número de elementos do menor conjunto,

3
caso um seja subconjunto próprio do outro e o número de elementos da diferença entre o maior e o menor conjuntos seja maior do que o número de elementos do menor conjunto,

4
caso um não seja subconjunto do outro e a interseção entre eles não seja vazia, e

5
caso sejam conjuntos disjuntos.

Queria saber como faço para entrar com os números no conjunto devo criar um vetor que receba esses números?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
nunopicado    1087
nunopicado

Vai depender do teu nível de aprendizagem.

Em Pascal, há uma coisa chamada Sets (Conjuntos), que é uma das vantagens do Pascal sobre grande parte das outras linguagens que não sonham o que isso é.

Com os Sets, esse exercício faz todo o sentido, e há comandos em Pascal para manipular Sets que te resolvem essas questões.

No entanto, os Sets são algo mais avançado (não necessariamente mais difícil) e alguns professores deixam-nos lá para a frente, e muitos nem sequer os ensinam (até porque muitos nem sabem o que é).

Claro, é possível fazer uma simulação de Sets com Arrays (Vectores), mas quanto a mim, é mais trabalhoso e menos adequado.


"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

delphi10.jpgpdluao9c336.png

Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
thoga31    594
thoga31

Duas questões importantes que vão determinar a escolha entre Sets e Arrays:

1. O conjunto pode conter números repetidos, ou só conterá um "exemplar" de cada número?

Por exemplo, eu introduzo 1,3,3,4,4,6 - devo obter o conjunto [1,3,3,4,4,6] ou [1,3,4,6]?

2. Já te foram leccionado Sets? Ou seja...

type TConjunto = set of byte;
var Conj : TConjunto;
//...
Conj := [1,3,4,6];

Consoante as respostas...

2. Não dei Sets - tens de usar Arrays.

1. Sei usar Sets, mas tenho de ter todos os números, incluindo os repetidos - tens de usar Arrays.

Caso contrário, usa Sets.

Editado por thoga31

Knowledge is free!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
JPG    0
JPG

O programa deve receber como entrada uma sequencia de números do usuario, como eu receberia essa sequencia do usuario usando sets. OBS: Fui orirntado a usar sets.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
nunopicado    1087
nunopicado

Fazias uma leitura (read ou readln) para uma variavel do mesmo tipo de dados usado pelo Set, e depois acresenctavas:

Type
  SByte=Set of Byte;
var
  Conjunto:SByte;
  vLeitura:Byte;
begin
  .
  .
  .
  readln(vLeitura);
  Conjunto:=Conjunto+[vLeitura]
  .
  .
  .
end.

Editado por nunopicado

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

delphi10.jpgpdluao9c336.png

Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.