Olá pessoal, estou com um problema aqui e acredito que alguém com mais experiencia conseguirá me ajudar. Estou tentando criar um DO com o BY dinâmico da forma abaixo. def var i as int. def var k as int initial 20. do i = 1 to 3000 by k: disp i.end. Porém o Progress pede que o K seja uma constante, tem alguma forma de fazer esse BY funcionar com variáveis? Estou usando a versão 10.2B. Antecipadamente agradeço a força. Abraços.
Bom dia @rafaelcorrea , tudo bom? Não encontrei a necessidade "DO com BY dinâmico", e eu só trabalho desde 1997 com progress kkk (haviam dinossauros e a internet era com modem 28800 da US Robotics) Fiz esta gambi para você testar, na prática lhe atenderia, mas... def var i as int. def var k as int initial 20. DO i = 1 to 3000: IF i MODULO k = 0 THEN DO: disp i. PAUSE. END. end. Forte abraço. Jaison Antoniazzi
Tenta assim DEFINE VARIABLE i AS INTEGER NO-UNDO. DEFINE VARIABLE k AS INTEGER INITIAL 20 NO-UNDO. REPEAT i = 1 TO 3000 BY 0: DISPLAY i. ASSIGN i = i + k. END.
Eu havia feito das duas formar sugeridas, porém notei uma diferença bem interessante em usar contadores ou o mod ao invés do by dinâmico, como se trata de simulações que preciso executar, o sistema irá passar por esse do várias vezes e está ficando lento. Vou tentar alguma outra forma, já que dessa forma pelo que já pesquisei não tem como hehe. Obrigado pela ajuda. []'s
É meio complexo para explicar, mas eu consegui fazer de outra forma, separando os blocos de repetição e utilizando temp-table, ficou muito mais rápido do que mante-los de forma encadeada. Agradeço a ajuda de vocês.