Ir ao conteúdo

Posts recomendados

Postado
afirmativo

Boa tarde amigos do Fórum!

 

Sou novo por aqui e também na linguagem C, estou no primeiro semestre de Eng. de Software, no passado em 1996 eu fiz programação em clipper, mas nunca trabalhei na area e hj voltando a programar em C estou com um desafio e gostaria que os amigos do fórum me dessem um norte.

Quero fazer o seguinte programa:

 

Calculo de perfil para moldura

 

Entrada de dados

Largura moldura:

Comprimento moldura:

Quantidade de travas :

Tamanho do perfil a ser utilizado:

Quantidade de molduras:

 

Logo após a entrada de dados eu gostaria que o mesmo me desse o calculo de quantos perfis eu irei usar, sendo que também terá que me dar quantos ''tocos" de perfil que sobrou ou seja: Vamos dizer que " arestas a,arestas b, arestas c, arestas d" sejam os lados da moldura e "arestas reforço" sejam as travas de reforço destas molduras( que pode ser mais que 1), sendo assim não tenho como calcular a metragem linear da moldura para calcular a metragem linear de perfil ( tem que ser calculado em barras), pois não tenho como emendar perfil para fazer uma lateral de uma moldura ou seja a+b+c+d+reforço tem que ser menor ou igual a perfil ou combinação entre eles sejam menor e igual a perfil. Eu ainda teria a variável "sobra" que seria o quanto sobraria do perfil de uma possível combinação das arestas.

No clipper eu criaria um banco de dados com todas estas arestas que seria alimentado com os valores Largura moldura: Comprimento moldura: Quantidade de travas : vezes Quantidade de molduras: e depois criaria uma rotina para zerar o banco de dados sempre usando o seguinte critério aresta a+aresta b+aresta c+aresta d+aresta reforço <= perfil. Porém agora vem uma de minhas dúvidas como faço quando nem todas as arestas couberem no mesmo pefil como faço o critério de comparação para que ele faça uma combinação entre as arestas para melhor aproveitamento?

Outra dúvida que tenho é se devo criar um Vector com Struct usando aresta a, aresta b, aresta c, aresta d, aresta reforço(sendo que pode ser mais que 1).

 

Como podem ver é mais complexo que dar a média de notas ou maior ou menor idade, ele tem que comparar o tamanho das arestas e calcular o melhora aproveitamento e no final a quantidade de perfil a ser usado na moldura.

 

Alguma dicas dos amigos(as)?

 

Obrigado!!!

  • Curtir 1
  • Obrigado 1
  • Confuso 1
Postado

@Fabiano da Rosa Muller    você pode criar apenas um typedef struct com todas essas variáveis e um vetor para ele ,  e as comparações são feitas com o comando IF , você vai somando as arestas e comparando com o tamanho do perfil , até que sejam igual ou menor .  e se você já tiver feito um código sobre esse exercício , poste ele aqui para vermos como está e em que podemos ajudar  .

  • Curtir 1
Postado

@Fabiano da Rosa Muller 

1 hora atrás, Fabiano da Rosa Muller disse:

Entrada de dados

Largura moldura:

Comprimento moldura:

Quantidade de travas :

Tamanho do perfil a ser utilizado:

Quantidade de molduras:

Sem um contexto fica meio difícil entender os parâmetros de uma moldura, eu (eu) nunca mexi com isso.

 

1 hora atrás, Fabiano da Rosa Muller disse:

Vamos dizer que " arestas a,arestas b, arestas c, arestas d" sejam os lados da moldura e "arestas reforço" sejam as travas de reforço destas molduras( que pode ser mais que 1)

aresta a = aresta c e aresta b = aresta d, considerando um retângulo. Se a entrada é a largura e o comprimento da moldura, então são apenas 2 variáveis.

Como você disse, uma das entradas é a quantidade de travas, então elas têm um tamanho fixo eu imagino, você só não disse qual é.

 

1 hora atrás, Fabiano da Rosa Muller disse:

aresta a+aresta b+aresta c+aresta d+aresta reforço <= perfil

E como esse reforço é posicionado? Como é esse reforço afinal? E de que se trata esse perfil exatamente? 🤪

 

1 hora atrás, Fabiano da Rosa Muller disse:

Eu ainda teria a variável "sobra" que seria o quanto sobraria do perfil de uma possível combinação das arestas

E como vai ser definida essa sobra? Uma das entradas é o tamanho do perfil a ser utilizado, então eu imagino que esse tal perfil seja uma peça retilínea ou algo assim.

 

1 hora atrás, Fabiano da Rosa Muller disse:

como faço quando nem todas as arestas couberem no mesmo pefil

Isto é, se o perímetro > perfil? Se for um programa interativo, informe o usuário e peça os dados novamente. Mostre os cálculos para que ele veja onde errou.

Ou então use outro perfil para um eventual restante, não sei exatamente como você quer que funcione.

 

1 hora atrás, Fabiano da Rosa Muller disse:

como faço o critério de comparação para que ele faça uma combinação entre as arestas para melhor aproveitamento?

Qual o critério que determina o melhor aproveitamento? O que se deseja obter?

 

1 hora atrás, Fabiano da Rosa Muller disse:

Outra dúvida que tenho é se devo criar um Vector com Struct usando aresta a, aresta b, aresta c, aresta d, aresta reforço(sendo que pode ser mais que 1)

Você pode criar. Poderia ser algo assim:

typedef struct
{
    double larg;   // Largura moldura
    double comp;   // Comprimento moldura
    int trava;     // Quantidade de travas
    double perfil; // Tamanho do perfil
    int mold;      // Quantidade de molduras
}   MOLDURA;

Defina o tamanho para a trava. Você criaria um vetor dessa estrutura caso tivesse mais de um conjunto de parâmetros.

 

1 hora atrás, Fabiano da Rosa Muller disse:

Como podem ver é mais complexo que dar a média de notas ou maior ou menor idade

C não é só isso 🤪

  • Obrigado 1
Postado

Olá!

 

Entendi haver um tamanho de perfil [por exemplo: uma ripa de madeira de 100 cm] e um "pedido", sendo QTD de "ripas" para o trabalho de N. molduras e o que sobra de perfil depois do trabalho. Certo?

 

2 horas atrás, Fabiano da Rosa Muller disse:

Largura moldura:

Comprimento moldura:

Quantidade de travas :

Tamanho do perfil a ser utilizado:

Quantidade de molduras:

 

  • Curtir 2
Postado

Talvez possa definir melhor o que são arestas de reforço e travas.

 

Escreva em torno dos dados. 

 

Hoje em dia os computadores são tão rápidos nisso que pode testar todas as combinações possíveis. É bem simples.

 

Outra opção é usar combinatória e testar permutações aleatórias por um certo tempo, tipo 1 minuto ou uma hora e ver o que conseguiu de melhor.

2 horas atrás, Lucca Rodrigues disse:

E como vai ser definida essa sobra? Uma das entradas é o tamanho do perfil a ser utilizado, então eu imagino que esse tal perfil seja uma peça retilínea ou algo assim

 

Os perfis tem tamanho fixo, como 2000mm ou 3000mm, no popular dois ou 3 metros. Como vão ser cortados em diversos tamanhos é um problema clássico de análise combinatória. Quase certamente vão sobrar partes de vários dos perfis. Nem sempre o cliente aparece com uma moldura de 500x500mmm :)

 

  • Curtir 2
Postado
Em 03/01/2022 às 12:39, Fabiano da Rosa Muller disse:

Como podem ver é mais complexo que dar a média de notas ou maior ou menor idade, ele tem que comparar o tamanho das arestas e calcular o melhora aproveitamento e no final a quantidade de perfil a ser usado na moldura.

 

Alguma dicas dos amigos(as)?

 

Devo não ter entendido completamente porque quando considero a entrada o programa provavelmente seria menos complexo, próximo duma expressão numérica.

 

Em 03/01/2022 às 12:39, Fabiano da Rosa Muller disse:

Entrada de dados

Largura moldura:

Comprimento moldura:

Quantidade de travas :

Tamanho do perfil a ser utilizado:

Quantidade de molduras:

Forneça essas informações e determine quantos perfis [n. de perfil] será necessário e sobras. Sem pensar muito: O maior lado [aresta] é necessariamente menor que o perfil.

 

Em 03/01/2022 às 12:39, Fabiano da Rosa Muller disse:

pois não tenho como emendar perfil para fazer uma lateral de uma moldura ou seja a+b+c+d+reforço tem que ser menor ou igual a perfil ou combinação entre eles sejam menor e igual a perfil.

Pensei o mesmo, deu entender que uma moldura muito maior que  perfil parece impossível.

[:)

 

  • Curtir 2

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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!