Tela da Matrix no Excel

Que tal reproduzir a tela do filme Matrix no Excel?

É necessário ativar macros. Para mudar os valores, teclar CTRL + SHIFT + A (é um atalho para rodar a macro).

É uma macro mais ou menos simples.

 – Definir a área de trabalho (60 linhas e 100 colunas)

 – Pintar o fundo de preto e a fonte do caractere de verde claro

 – Para cada coluna, escolher uma linha inicial aleatória e um tamanho aleatório do vetor

 – A partir da linha inicial ir preenchendo aleatoriamente caracteres até o tamanho máximo

 – Uma melhoria foi pintar o último caractere de branco

Para download, usar o link: https://1drv.ms/x/s!Aumr1P3FaK7joDZw0SVX0hktLsYV

Ainda não está tão legal quanto no filme, mas Neo, estou chegando lá!

Veja também:

https://ferramentasexcelvba.wordpress.com/

Caça-Palavras em Excel-VBA

Para que comprar Caça-Palavras em bancas de jornal? Crie o seu próprio passatempo personalizado com suas palavras.

Segue para download (https://1drv.ms/x/s!Aumr1P3FaK7joBK0yc8350kgX5rH) uma implementação em VBA.

Basta listar as palavras a serem escondidas e rodar, com macros ativadas.

É uma rotina relativamente simples, e um bom exercício é tentar reescrevê-la do zero.

O procedimento é:

– Ler as strings

– Para cada uma, sortear se a posição é horizontal ou vertical

– Pelo tamanho, verificar quais as posições iniciais onde a palavra “cabe”

– Sortear uma posição inicial

– Verificar se a palavra inteira coincide com outras palavras já postas e repetir até conseguir

– Preencher casas restantes com letras aleatórias

O “Modo debug” não preenche o restante com letras aleatórias, é só para conferir se a lógica funciona.

É possível adaptar para deixar mais fácil e lúdico, para crianças: mudar a fonte, aumentar tamanho das células, cores, etc…

A cada vez que rodar, um resultado diferente vai ser gerado.

No exemplo a seguir, inseri um “BLUEBERRY” a mais.

Outro exercício computacional é o inverso: a partir do caça-palavras, tentar descobrir onde está a palavra, a partir de uma lista – basta algumas varreduras com loop “for”.

Dica: Coloco no link a seguir alguns dos trabalhos mostrados nesse espaço.

https://ferramentasexcelvba.wordpress.com/

Cartão Ano Novo 2022

Abra a sua mensagem, no cartão de Ano Novo especial, em VBA (download em https://1drv.ms/x/s!Aumr1P3FaK7jn2xWRBFi7K056PNB). Rode a macro para ver.

Um Feliz Natal e um excelente 2022 para todos!

Ideias técnicas com uma pitada de filosofia

https://ideiasesquecidas.com/

Uma bobina a mais e o MP Load

Descrevendo uma situação que me deixou bastante feliz. Durante visita à unidade de Sacos, em Lages, o meu amigo Marcelo Oliveira contou que a utilização do MP-Load, descrito abaixo, possibilitou o envio de um pallet a mais no contêiner. “Não cabe”, dizia o pessoal; “Cabe, olha só o estudo”, disse o Marcelo.

O MP Load é uma ferramenta extremamente simples, feita em Excel – VBA.

Basta preencher as dimensões (Altura – Largura – Comprimento) e carga máxima do contêiner; e dimensões da bobina a ser transportada – diâmetro externo, largura e peso individual.

As unidades das dimensões estão em milímetros.

Como hipótese, as bobinas sempre vão de pé, e todas as bobinas são iguais. O limite é o volume geométrico ou o peso máximo, o mais restritivo.

Há ferramentas de formação de carga extremamente mais complexas, que conjugam bobinas de vários tipos, deitadas, de pé, etc. Porém, a situação simples de bobina única e de pé deve atender uns 90% das situações, e a beleza é ela ser puramente geométrica, simples de resolver.

O MP Load surgiu com a inspiração acima, pelo amigo Didiel Peça. A ideia era utilizar na hora de tirar pedidos dos clientes de mercado externo, de modo que o valor solicitado fechasse exatamente a carga de um contêiner.

Para o caso de Pallets, basta escolher “P” no campo. As dimensões agora são comprimento – largura – altura (pelo pallet ser retangular) e o peso por pallet.

Há também uma folga adicional de 10 mm no comprimento e na largura, por hipótese.

E que diferença faz uma bobina a mais por carregamento, ou um pallet a mais? Otimização de frete.

Uma bobina faz pouca diferença, individualmente. Mas uma bobina, multiplicada por todas as áreas que otimizam o carregamento, multiplicada por todos os dias em que o estudo é feito, faz toda a diferença.

Segue link.

https://1drv.ms/x/s!Aumr1P3FaK7jn2hfs8JKd7qiZX30

Hipóteses utilizadas:

  • As bobinas são todas idênticas (idem para pallets)
  • As bobinas sempre vão de pé
  • No caso de pallets, há uma folga considerada de 10 mm
  • O comprimento do contêiner é maior do que a largura do mesmo

Como o cálculo é realizado?

Tanto para bobinas quanto para pallets, são analisados dois padrões: retangular e zig-zag

O padrão retangular é um do lado do outro.

Para o cálculo, arrendondar para baixo as dimensões do contêiner dividido pelo diâmetro da bobina.

Já o padrão zig-zag (por falta de um nome melhor), considera um encaixe tipo laranjas empilhadas:

Sejam c e d catetos de um triângulo retângulo, com a hipotenusa sendo o diâmetro externo.

d = sqrt ( Dext^2 – c^2)

Se encontrarmos o valor de c, o valor de d estará definido pela fórmula acima.

No zig-zag, o contorno externo terá um Dext de dimensão, e as camadas internas serão X vezes a dimensão c.

O limite máximo para X é dado pela (Largura do contêiner – Dext) dividido pelo Dext, arredondando para cima.

Com isso, calculamos o número de linhas X, o c e o d, todos os parâmetros para a distribuição.

Por fim, analisamos o carregamento pelo padrão retangular x padrão zig-zag, e pegamos o que ficou melhor.

Um mundo melhor através do Analytics.

https://ideiasesquecidas.com

Veja também:

Representação visual do MDC

Qual o máximo divisor comum entre 9 e 21?

O MDC é um dos principais conceitos de Teoria dos Números, e o algoritmo de Euclides continua sendo extremamente eficiente até hoje.

Vi uma versão visual deste, e gostaria de compartilhar.

Qual o máximo divisor comum entre 9 e 21?

21 / 9 = 2 (representado pelos dois quadrados de tamanho 9) e sobra 3

9 / 3 = 3 (vide os três quadrados de tamanho 3) e sobra 0

Portanto, o MDC é 3.

A planilha em anexo plota essa visualização de MDC para dois valores quaisquer de a e b.

Exemplo. MDC(10, 2 ) = 2, o último quadrado de tamanho 2.

Outro exemplo, entre 6 e 9 (mdc = 3, o último quadrado 3×3).

Planilha para download em https://github.com/asgunzi/MDC-visual. É necessário ativar macros.

Veja também:

https://ideiasesquecidas.com/laboratorio-de-matematica/

Sudoku

O Sudoku é um puzzle em que cada quadrado menor deve ser preenchido com números de 1 a 9, sem repetição. E, cada linha e coluna do quadrado maior tem que ter números de 1 a 9, sem repetição. O desafio é encontrar os números para tal.

 

Sudoku_1

Achei o Sudoku legal para brincar algumas vezes. Mas o procedimento para encontrar a solução é repetitivo. E tudo o que é repetitivo é possível de ser automatizado. E tudo que pode ser automatizado pode virar uma rotina computacional.

Teve um dia, há muitos anos, em que fiz um resolvedor de Sudokus. Isto dá um bom exercício de VBA.

 

Sudoku_2.JPG

Basta acionar macros, preencher os campos iniciais, e clicar em “Resolver”.

https://drive.google.com/file/d/0B7qV4XXADYw2aERBRlJoNllTeWs/view?usp=sharing

Fica como presente para os leitores deste blog.

 

Arnaldo Gunzi

dez 2015