1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[AJUDA] na criação de algoritmo em C

Discussão em 'Programação' iniciada por Nody, 11 de Fevereiro de 2008. (Respostas: 12; Visualizações: 1277)

  1. Nody

    Nody Power Member

    este não é mais um daqueles topic's a pedir que me deiam o código feito. :lol:

    a minha duvida baseia-se na criação de um algoritmo em C .

    o programa é o seguinte:

    tenho que fazer um sistema para a gestão de CAIXAS em que as caixas teem peso; peso máximo suportado; dimensão.

    com o uso de uma estrutura de dados de listas LIFO é-me pedido para calcular o tamanho óptimo de uma pilha, ou seja: imaginando que só tenho uma caixa na pilha preciso de calcular quantas mais caixas posso ter para completar os 6,5m.

    sabendo que o peso máximo das caixas em cima da caixa debaixo não pode ser superior ao seu peso máximo.

    tao a perceber a duvida?

    cumps
     
  2. Rui_Carlos

    Rui_Carlos 1st Folding then Sex

    Acho que o problema não está muito explícito.
     
  3. Morais

    Morais Power Member

    Um melhor uso da virgula talvez iria ajudar.

    E os ";" usam-se para efectuar quebras de linha sem desviar do assunto em questão, não como "," comuns.
     
  4. Nody

    Nody Power Member

    peço desculpa por não ter sido suficientemente explicíto na minha questão, por isso transcrevo, pedindo desculpa, o enunciado.

    Numa pilha LIFO:

    Para optimizar a arrumação de caixotes num armazém, mantendo as condições de segurança e de estabilidade das pilhas de caixotes, procura-se implementar um programa capaz de guardar a localização dos caixotes, assim como indicar se um determinado caixote pode ser arrumado e em que pilha.
    Na constituição de cada pilha existem regras que é necessário atender:
    1. • Nenhum caixote pode ficar em cima de outro que tenha uma base inferior;
    2. • O peso dos caixotes que estão por cima de um dado caixote não pode ultrapassar o valor máximo suportado por ele;
    • A altura total da pilha não pode ultrapassar a altura máxima convencionada para as pilhas (que é de 6,5m).
    a minha dúvida é em relação à quarta função do programa:

    1. Estado do armazém – nesta opção pretende-se que o programa indique quantos caixotes podem ainda ser arrumados nas duas pilhas, obedecendo sempre às regras mencionadas na [FONT=Arial,Arial]Introdução [/FONT]deste enunciado. O número indicado deve ser o óptimo, isto é, desperdiçando o menor espaço possível em relação à altura máxima das pilhas. [FONT=Arial,Arial]Note que existe a possibilidade dos caixotes a serem colocados poderem ultrapassar o peso máximo suportado pelos caixotes que estão por baixo[/FONT].
    Agora apenas para concluir e tentar perceber melhor "como o fazer" ...

    Qual a diferença de pilhas (stacks) ou listas?
    cumps
     
    Última edição: 12 de Fevereiro de 2008
  5. souto

    souto To fold or to FOLD?

    Pega num baralho de cartas. Mete-o direitinho em cima da mesa.
    Tira umas quantas cartas do topo do baralho e só do topo.
    Vê que cartas tiraste e coloca-as no topo da pilha, anotando a ordem em que o fizeste. Agora volta a tirar o mesmo número de cartas do topo. Vais reparar que a ordem se inverteu.
    Isso é uma pilha. Só podes fazer operações no topo da pilha e apresenta as propriedades que viste.

    Uma lista... Podes inserir e remover elementos em qualquer lado. Podes também ler em qualquer ponto da lista, sem ordem aparente.
     
  6. Nody

    Nody Power Member

    understood :)

    e em relação ao algoritmo?! já percebi que tenho que usar listas, porque uma das operações é retirar caixas a meio da "pilha" mas neste caso lista, e como stacks só dá para mexer na ultima...
     
  7. Warrior

    Warrior Power Member

    Parece-me um algoritmo de 0/1 multiple knapsack, ou seja, um sub-tipo específico dos problemas de knapsack, que se resolve recursivamente por brute force.
    Se pesquisares no google encontras mais informação.
     
  8. saunde

    saunde Power Member

    Basicamente um típico exercício de listas..... há muitos exemplos de funcionamento, qualquer dúvida post..
     
  9. The_True_Eue

    The_True_Eue Power Member

    Parece-me um problema de bin packing
    Pode ser resolvido com programação linear (ou seria programação dinâmica?)
     
  10. Nody

    Nody Power Member

    era possível eu meter aki 1 link para o pdf do exericio que tenho que fazer e dizer como estou a pensar estruturá-lo?!

    cumps
     
  11. Baderous

    Baderous Banido

    Problemas NP...oh noes...:'(
     
  12. saunde

    saunde Power Member

    Mete aí tudo....
     
  13. Nody

    Nody Power Member

    aqui continuo eu a braços com este programa.
    Tou com dificuldades na implementação de uma função de validação num sistema de listas que respeite as seguintes regras:

    Na constituição de cada pilha existem regras que é necessário atender:
    1. • Nenhum caixote pode ficar em cima de outro que tenha uma base inferior;
    2. • O peso dos caixotes que estão por cima de um dado caixote não pode ultrapassar o valor máximo suportado por ele;
    3. • A altura total da pilha não pode ultrapassar a altura máxima convencionada para as pilhas (que é de 6,5m)

      Eis o que eu já fiz (lol)

      int validaregras()
      {
      if(pTopo1 -> dimLado < dimen_lado)
      return 0;
      }


      any1?

      cumps
     

Partilhar esta Página