Página 1 de 3
Novo desafio
Enviado: 28 Fev 2008 17:19
por Netavin
Boa tarde amigos!
Quando comecei a construir meu sistema, não imaginei que ficaria tão complexo como está hoje. Felizmente pude contar com esta comunidade que nunca deixou de prestar socorro nos momentos difíceis.
Eu sabia que um dia teria que acrescentar mais uma rotina. Mas sabendo ou imaginando que seria algo difícil para mim e, não querendo abusar na paciência dos amigos que sempre me ajudaram, fui adiando.
Porém preciso desenvolver esta rotina e não tem como adiar mais.
Vou rascunhar minhas idéias, tentar explicá-la e mais tarde "postarei" para colher umas idéias de como executá-las.
Um abraço a todos!
Netavin
Enviado: 28 Fev 2008 17:34
por Maligno
Acho sua mensagem é o primeiro
teaser do fórum.

))
Enviado: 28 Fev 2008 17:39
por Pablo César
Maligno escreveu:é o primeiro
teaser do fórum.

))
hihihi na verdade em mim não despertou nada, só curiosidade... Isso é como oferecer doce para criança e não dar... hihihi Mas tudo bem Netavin, nós iremos continuar ajudando no que for necessário. Mas primeiramente você deve fazer a sua pergunta (de preferência com exemplos).
Enviado: 28 Fev 2008 18:25
por Netavin
... primeiro é ?? Opa !!! ainda bem que ficou registrado. rs
Visualizem uma folha quadriculada contendo 12 quadrados na horizontal, que chamarei de espaços e 20 na vertical. Esta folha é o que chamamos de Romaneio. As linha são numeradas de 1,50 até 3,40 , com intervalos de 0,10 (1,50, 1,60, ... 3,40) que representam os comprimentos das peças. Os espaços serão preenchidos com a largura das peças. Referidos espaços podem vir a ser preenchidos ou não. Posso preencher 5 espaços numa linha, 7 espaços noutra linha, como posso tambem preencher todos os espaços. Pois enquanto houver peças de deteminado tamanho, vou preenchendo os espaços respectivos com a largura de cada peça. Se todos os espaços fossem preenchidos, o cálculo da equação seria simplificado.
Não havendo mais peças para determinado comprimento, necessário totalizar essa linha. Ou seja, somo todas as larguras informadas, multiplico pelo comprimento e multiplico ainda pela bitola da peça. Esta bitola já foi definida previamente no inicio do Romaneio. A fómula: Comp*somatório das larguras das peças*bitola. E assim procede com todas as linhas.
Terminado o Romaneio, resta saber seu resultado final que é a somatória das linhas.
Já tentei resolver esta questão por diversas vezes. Tentei usar For...next para preencher as colunas/espaços. Mas esta solução só seria possível se eu soubesse previamente quantos espaços eu iria preencher em determinada linha(imagino). Mas usar For ...next para 21 linhas !??
Bem, isso é o básico.
Agradecimentos antecipados.
[]´s
Netavin
:{
Enviado: 28 Fev 2008 18:31
por Pablo César
Netavin, tentou utilizar MATRIZ para saber comprimento linha e colunas ?
Enviado: 28 Fev 2008 18:42
por Maligno
Pablo César escreveu:na verdade em mim não despertou nada, só curiosidade...
A função do
teaser na propaganda é justamente despertar a curiosidade, prender a atenção.

Enviado: 28 Fev 2008 19:03
por Maligno
Curiosidade, Netavin: romaneio me faz pensar em transporte. Essa matriz de linhas e colunas é pra cálculo de cubagem?
De qualquer forma, a solução, claro, é com matriz. Inicialize uma matriz de 20x14 (duas colunas a mais para a constante do comprimento por linha e o total da linha) com os valores iniciais, libere a edição para a entrada dos valores e ao final bote numa malha pra calcular os resultados. Algo como:
Código: Selecionar todos
#define COL_COMPRIMENTO 13
#define COL_TOTAL_LINHA 14
// Inicialização, reservando duas colunas ao final
aRoman := Array(20,12+2)
nCompr := 1.4
AEval(aRoman,{|aLin|AEval(aLin,{|nCol,i|nCol := if(i==COL_COMPRIMENTO, (nCompr += 0.1),0)})})
// Entrada de dados pelo usuário
bla...bla...bla...
// Soma dos valores das larguras
AEval(aRoman,{|aLin|AEval(aLin,{|nCol|aLin[COL_TOTAL_LINHA] += nCol*aLin[COL_COMPRIMENTO]})})
// Soma total
nTotal := 0
AEval(aRoman,{|aLin|nTotal += aLin[COL_TOTAL_LINHA]})
Logicamente não testei, mas acho que é por aí. Achei melhor já incluir a constante do comprimento na matriz, pra facilitar o trabalho.
Enviado: 29 Fev 2008 09:28
por Netavin
Bom dia a todos!
Isso mesmo malígno. É para a cubagem de madeira.
Bom. Então tenho que estudar um pouco sobre matrizes. Nunca fiz esse uso delas.
Malígno, nesta rotina que vc esboçou, vc previu que posso não terminar uma linha e querer passar para outra? Tenho que ter a opção de abandonar um comprimento para começar outro, sem perder aqueles é claro.
Vou me debruçar nos livros e estudar sobre matrizes.
Porenquanto muito obrigado a todos.
Sayonara
[]´s
Netavin.
Enviado: 29 Fev 2008 09:41
por TerraSoftware
Agora eu fiquei muito curioso!!!!!
Como alguem programa em clipper e nunca vez uso de matriz
Isso é possível
Lembro-me que nas primeiras aulas que tive de clipper (a muito tempo), foi falado sobre os tipos de variáveis e as benditas matrizes estavam lá. Desde então elas fazem parte quase que diariamente de nossa rotina de programação.
Estou certo ou estou ficando louco?? ´o)
Enviado: 29 Fev 2008 10:00
por Netavin
Pois pode acreditar terra!!
Fato "venérico". Usei matrizes sim. Isso quando aprendi Basic a trocentos anos atrás.
Hoje tenho um sistema que atende meus requisitos. Mas nadinha de matrizes.
[]´s
Netavin
Enviado: 29 Fev 2008 10:12
por frazato
Fiquei curioso, onde será empregado o uso deste romaneio?
Enviado: 29 Fev 2008 10:23
por alaminojunior
É claro que com matrizes, fica uma coisa mais profissional.
Eu já trabalhei com esse negocio de romaneio, numa loja de materias de construção aqui em Ubatuba, e na época fazíamos na caneta. Faz tempo.
Acredito qe vc consiga, preenchendo primeiramente os espaços em branco, com zeros.
Por que primeiramente ?
A primeira coisa a fazer é multiplicar as larguras pela quantidade e depois pelo comprimento, e depois pela bitola, ufa !!!. O resultado disso, aí sim vc vai jogando em matrizes, ou de repente até num dbf. Faça o que for mais fácil pra vc. Faça a conta em todos os espaços, onde for zero, vai retornar zero, claro.
Depois soma tudo e já era.
Pelo menos é esse o método que usávamos.
Veja se é aplicável.
Enviado: 29 Fev 2008 10:45
por Netavin
... caro frazato.
É de uso cotidiano numa Madeireira, serraria, depósito de madeira etc...
Usa-se para calcular/cubicar a madeira.
Um clipperabraço!
Netavin
Enviado: 29 Fev 2008 11:20
por Maligno
Netavin escreveu:Malígno, nesta rotina que vc esboçou, vc previu que posso não terminar uma linha e querer passar para outra? Tenho que ter a opção de abandonar um comprimento para começar outro, sem perder aqueles é claro.
A primeira parte do meu exemplo é justamente para zerar todos os valores, a exceção das constantes dos comprimentos, que ocupam a coluna 13. A coluna é o total. Se a linha contiver zero em todas as colunas, claro, a soma no final será zero para essa linha.
Nem pense em fazer isso com variáveis comuns. Ficaria muito mais complicado. Matrizes, que nada mais são que posições de memória indexadas, tornam tudo muito mais simples, como você pôde ver no meu exemplo.
E além de matrizes, estude também blocos de códigos. São coisas diferentes, mas muito ligadas.
Enviado: 08 Mar 2008 08:21
por Netavin
Bom dia a todos!
Voltando ao assunto Array, dei uma lida num tópico que me inspirou a tentar resolver um pequeno exemplo para ir me familiarizando.
Private aMenu1
aMenu1:={"PR","AC","BA","PI","SC"}
opc:=Space(2)
@ 10,01 Say "Informe a UF: " get opc Pict "!!"
Read
For i:= 1 to len(aMenu1)
Ascan(aMenu1,opc)
Next
A intenção seria fazer uma verificação da entrada de UF´s. Não consigo sair deste ponto. Agradeceria uma ajuda.
Muito obrigado!
[]´s
Netavin