Post on 28-Feb-2021
Macros
Roteiro
1. Introdução2. Linhas de Comando3. Reexecução de Comandos4. Macro Global5. Macro Local6. Controle de Fluxo7. Referências
Introdução
Macros
• Servem para automatizar tarefas repetitivas ou para estender funcionalidades do Minitab√ São um conjunto de comandos armazenados em
arquivo de texto.√ Podem ser utilizadas como comandos nas janelas
Session ou Command Line Editor.
Tipos de Macros
• Exec: forma mais antiga de macros;• Macro Global: forma mais simples de
macro• Macro Local: Forma mais sofisticada de
macro
Linhas de Comando
Comandos
• Cada comando do menu possui uma linha de comando correspondente;
• Consistem de:√ Comando principal;√ Um ou mais subcomandos.
Argumentos
• Os comandos podem ser acompanhados de uma série de argumentos:√ Colunas;√ Constantes;√ Matrizes;√ Strings de texto;√ Números.
Linhas de Comando
• Podem ser:• Digitados na janela Session ou Command Line
Editor;• Copiados da pasta History para o Command
Line Editor;• Copiados e salvos em um arquivo Exec o qual
pode ser reexecutado em outras sessões ou compartilhado com outros usuários.
Prompt da Janela Session
• Para digitar os comandos na janela Sessiondeve-se habilitar o prompt:√ Torne ativa a janela Session (clique em sua guia)√ Selecione Editor > Enable Commands
Prompt
• O ponto-e-vírgula indica a inserção de subcomando.
• O ponto indica o fim de uma seqüência de comandos.
Comandos – Regras (1)
• Pode-se usar as quatros primeiras letras para abreviar um comando ou subcomando;
• Para sair de um comando multi-linha sem executá-lo, digite ABORT;
• Os nomes das variáveis devem estar entre aspas simples (ex.: ‘salario’)
• Pode-se abreviar com um traço (-) um intervalo de colunas (ou constantes ou matrizes);
Comandos – Regras (2)
• Podem-se usar os seguintes comandos para especificar intervalo de números entre 1 e 4.
√ 1:4 (1; 2; 3; 4)
√ 4:1 (4; 3; 2; 1)
√ 1:3/0,5 (1; 1,5; 2; 2,5; 3)
• Usar o símbolo & para continuar um comando até a próxima linha;
Comandos – Regras (3)
• Use o símbolo # para comentários. Ele faz com que seja ignorado o que estiver digitado no restante das linhas;
• Pode-se copiar comando (ou seqüência de comandos) executados anteriormente da janela Session ou History e colados na janela Session.
√ Para inserir uma linha utiliza CTRL + ENTER
Comandos – Sintaxe (1)
• C: coluna√ C1 até o máximo de C4000
(limitado pela memória)
• K: constante ou número armazenado√ K1 a K1000 √ Defauts: K998 = * (missing), K999 = 2.71828 (e)
e K1000 = 3.14159 (pi)
• M: matriz√ M1 a M100
Comandos – Sintaxe (2)
• Para facilitar sua manipulação, pode-se dar nomes às constantes (K) e matrizes (M).
Pasta History• Armazena as linhas correspondentes aos comandos
de Menu utilizados;• Para acessar a pasta History:
√ Selecione Window > Project Manager√ Clique na guia History.
• O Minitab não gera automaticamente novas linhas de comando quando se edita um gráfico;
• Para gerar as linhas de comando (incluindo as alterações de edição):
√ Editor > Copy Command Language:copia os comandos para a área de transferência
√ Editor > Duplicate Graph:Recria o gráfico e armazena as linhas de comando na pasta History
A densidade como escala de y foi escolhida após geração do gráfico.
Reexecução de Comandos
Reexecução de Série de Comandos
• Selecione os comandos desejados na pasta History;
• Clicar em Edit > Command Line Editor;• Repita ou altere os comandos• Clique em Submit Commands.
• Em History, selecionados os comandos, pode-se clicar com o botão direito do mouse para abrir o Command Line Editor;
Repetição com Exec
• Arquivo de texto contendo série de comandos do Minitab;
• Repete análise sem usar os comandos do menu ou digitar as linhas de comando;
• Os comandos usados com o Command LineEditor podem ser salvos como um Exec e ecutados a qualquer tempo
Exec no Menu History• Selecione Window > Project Manager• Clique na guia History;• Selecione as linhas de comando;• Clique com o botão direito e selecione: Save as• Em Save as type, selecione Exec Files (*.MTB)
Reexecução dos Comandos
• Repete a análise a qualquer momento:√ Selecione File > Other Files > Run as Exec;√ Clique em Select File√ Selecione o arquivo e clique na guia Open.
Comentários
• Pode-se executar o Exec usando-se outra planilha, desde que os nomes das colunas coincidam;
• Se desejar usar o Exec com colunas diferentes, basta editá-lo com o editor de textos (Bloco de Notas);
Macro Global
Macros Global e Local
Ambas permitem:√ Criar um programa de comandos do Minitab;√ Usar elementos de programação tais como
loops e condicionais (IF_THEN_ELSE; DO_WHILE)
√ Inclusão de subrotinas;√ Usar uma macro dentro da outra;
Tipos de Planilhas
• Planilha Global:A planilha ativa quando a macro global éexecutada (todas as colunas, constantes e matrizes);
• Planilha Local:É criada ao executar a macro e é deletada da memória do computador quando a macro éconcluída(somente a macro pode “ver” a planilha)
Macro Global – Características
• Age diretamente na planilha em uso (planilha global);
• Ao escrever a macro, deve-se saber quais colunas, constantes e matrizes serão usadas ao executar a macro;
• Não executam macros locaisAlguns comandos dos menus são macros locais
Macro Global – Uso
Usar quando:• A tarefa é simples;• É possível saber os estado da planilha;• Não necessitar de comandos que são macros
locais;
Criando uma Macro
• Use um processador de texto para escrevê-la;
• Salve-a no sub-diretório MACROS, com extensão .MAC
• Para executar a macro entre com:% nome_da_macro
• Se julgar mais conveniente, execute interativamente os comandos e copie-os da janela Session ou History
Criando uma Macro (2)
• Para mostrar uma linha em branco use o comando NOTE
• Se a extensão do arquivo não for .MAC, digite o nome e a extensão do arquivo
• Caso o arquivo tenha sido salvo em outro diretório, especifique seu caminho
(% caminho_do_arquivo\nome_da_macro)
Estrutura Macro Global
• Uma macro global segue a seguinte estrutura:
Início da macro global
GMACRO
Nome da macroTemplate
Comandos da macro
Body of the macro
Final da macro global
ENDMACRO
GMACRO e ENDMACRO
• Marcam o início e o fim de cada macro;• Não podem ser abreviados• GMACRO deve estar na 1ª. da macro e
indica que a macro é global.
Template
• É o nome da macro;
• Pode conter: letras, números ou o caractere underscore, mas deve iniciar com uma letra;
• O Minitab ignora maiúsculas/minúsculas;
• É conveniente, mas não é necessário que o nome do arquivo e do template sejam os mesmos.
Corpo da Macro
• Consiste de comandos Minitab e comandos de outras macros globais;
• A indentação durante a digitação não énecessária, mas pode facilitar sua leitura
Criando a Macro de uma Sessão (1)
• Execute os comandos desejados para sua macro;
• Selecione Window > History• Selecione e copie os comandos desejados;• Cole os comandos no Bloco de Notas;• Mude os comandos que desejar;
Criando a Macro de uma Sessão (2)
• Insira os comandos:√ GMACRO (1ª linha)√ Nome_da_macro (Template)√ ENDMACRO (última linha)
• Salve o arquivo com extensão TXT ou MAC , no subdiretório MACROS.
Exemplo – Regressão• Crie a macro abaixo:
GMACRO Marca o início da macro ANALYSE Nome da macro RANDOM 30 C2; # Cria variável Chem 1 Uniform 1 50. RANDOM 30 C3; # Cria variável Chem 2 Uniform 1 50. LET C1 = 2 + 0,5*C2 + 4*C3 NAME C1 'Yield' C2 'Chem1' & C3 'Chem2' C5 'Ln.Yield' PRINT C1 - C3 DESCRIBE C1 - C3 LET C5 = LOGE('Yield') REGRESS C5 2 C1 C2
ENDMACRO Marca o final da macro
Execução da Macro
• Para executar, digite %nome_da_macro;√ Ex. Entre %analise
• Se a extensão do arquivo não for MAC deve-se digitá-la também;
• Ao ser executada, o Minitab procura a macro primeiro no diretório atual e depois no subdiretório MACROS√ Caso a macro não esteja salva em um desses
diretório, deve-se especificar o caminho até ela.
Exemplos
ExecuçãoNome arquivoTemplate
%MYMACROMyMacro.MACMyMacro
%TESTTEST.MACAnalise
%TESTE2.TXTTESTE2.TXTAnalise2
%C:\pasta1\... \analiseAnalise.MACAnalise
Adicionando Comandos
• Os comandos de programação tornam a macro mais flexível e poderosa:√ IF, ELSEIF, ELSE e ENDIF:
executa ação apenas se condição for verdadeira√ Loop do tipo DO, ENDDO:
executa ação um número específico de vezes√ Loop do tipo WHILE, ENDWHILE:
repete bloco de comandos enquanto condição for verdadeira
Operadores Lógicos
= (ou EQ) : igual a~= (ou NE): diferente de< (ou LT) : menor que> (ou GT) : maior que<= (ou LE): menor ou igual que>= (ou GE): maior ou igual que& (ou AND): e| (ou OR) : ou~ (ou NOT): não
Estrutura Condicional
IF expressão lógicabloco de comandos Minitab ®
ELSEIF expressão lógicabloco de comandos Minitab®
ELSEbloco de comandos Minitab®
ENDIFObs.: Pode-se usar até 50 ELSEIF
Exemplo – Médias Colunas
• Crie a macro abaixo:GMACRO SMALL # # Imprime a coluna cuja media é a menor dentre as colunas C1-C3 # Avisa se houver valores de média iguais # LET K1 = MEAN(C1) LET K2 = MEAN(C2) LET K3 = MEAN(C3) IF K1 < K2 AND K1 < K3 PRINT C1 ELSEIF K2 < K1 AND K2 < K3 PRINT C2 ELSEIF K3 < K1 AND K3 < K2 PRINT C3 ELSE NOTE Há colunas com mesma média ENDIF ENDMACRO
Loop – Qte Fixa de Vezes
DO K = lista de númerosbloco de comandos Minitab®
ENDDO• Obs.:
√ O loop continua até que todos os números nalista sejam usados;
√ O loop pode ser interrompido pelos comandos: BREAK, GOTO, RETURN ou EXIT
Exemplo – Média Móvel
• Crie a macro abaixo:
GMACRO Media_Movel # # Calcula a média móvel simples dos dados em C1 # Armazena a média calculada em C2 # LET K1 = COUNT(C1) LET C2(1) = '*' LET C2(2) = '*' DO K2 = 3 : K1 LET C2(K2) = (C1(K2-1)+C1(K2)+C1(K2+1))/3 ENDDO ENDMACRO
Loop – Qte. Condicionada de Vezes
WHILE expressão lógicabloco de comandos do Minitab
ENDWHILE• Obs.:
√ Repete os comandos enquanto a expressão lógica for verdadeira
Exemplos – Raiz de Polinômio
• Crie a macro abaixo para calcular a raiz do polinômio
GMACRO Raizes # # Busca as raízes de um polinômio específico # O resultado está a no máximo 0,01 do valor exato # K90 - K93 são usados como constantes auxiliares # NAME K90 'X' K91 'Y' K92 'X_m' K93 'Y_m' LET 'X' = 0 LET 'Y' = -1 WHILE 'Y' <0 LET 'X' = 'X' + 0,01 LET 'Y' = -1 + 'X' + 'X'**3 ENDWHILE LET 'X_m' = 'X' - 0,01 LET 'Y_m' = -1 + 'X_m' + 'X_m'**3 PRINT 'X_m' 'Y_m' 'X' 'Y' ENDMACRO
013 =−+ xx
NEXT
• Transfere o controle para o início de loop DO ou WHILE;
• Para o loop DO, a variável de controle éajustada para o próximo valor na lista e o loop é executado novamente
Exemplo – Cincos
• Crie a macro abaixo:GMACRO Cincos # # Cria a coluna X e muda para 5 todos os valores que sejam >=5 # K90 e K91 são usados como constantes auxiliares # NAME C1 'X' K90 'N' K91 'I' RANDOM 30 'X'; NORMAL 4 1. LET 'N' = COUNT(C1) DO 'I' = 1 : 'N' IF C1('I') <= 5 NEXT ELSE LET C1('I') = 5 ENDIF ENDDO ENDMACRO
BREAK
• Transfere o controle para o comando imediatamente após o final de loop DO ou WHILE;
Exemplo - Nomiss• Crie a macro abaixo:
GMACRO Nomiss # # Cria a coluna X, com um dado perdido. # Procura o dado perdido e deleta todas as observações a partir dele # K90 - K92 são usados como constantes auxiliares # NAME C1 'X' RANDOM 30 'X'; NORMAL 4 1. RANDOM 1 C2; Integer 1 30. LET K92 = C2(1) LET 'X'(K92) = '*' LET K90 = COUNT('X') DO K91 = 1 : K90 IF 'X'(K91) = '*' BREAK ENDIF ENDDO DELETE K91:K90 'X' ENDMACRO
GOTO, MLABEL
GOTO númerooutros comandos do Minitab
MLABEL número• Obs.:
√ Permite desvio para qualquer linha da macro;√ Um GOTO é ligado ao MLABEL que tenha o
mesmo número;√ O número pode ser qualquer inteiro de 1 a 8
dígitos;
Exemplo – Nomiss (2)• Crie a macro abaixo:
GMACRO Nomiss_2 # # Cria a coluna X, com um dado perdido. # Procura o dado perdido e deleta todas as observações a partir dele # K90 - K92 são usados como constantes auxiliares # NAME C1 'X' RANDOM 30 'X'; NORMAL 4 1. RANDOM 1 C2; Integer 1 30. LET K92 = C2(1) LET 'X'(K92) = '*' LET K90 = COUNT('X') DO K91 = 1 : K90 IF 'X'(K91) = '*' GOTO 5 ENDIF ENDDO MLABEL 5 DELETE K91:K90 'X' ENDMACRO
Macro Local
Macro Local – Características
• Podem usar argumentos, sub-comandos e variáveis locais;
• São mais poderosas e mais flexíveis que as macros globais (também de construção mais difícil)
Início da macro localMACRO
Estrutura Macro Local
Nome da macro, subcomandos e argumentos
Template
Comandos da macroBody of the macro
Final da macro local
ENDMACRO
Declaração das variáveis
Declaration ofstatements
Exemplo – Média Aparada
MACRO Marca o início da macro
APARA X XBAR Comando p/ execução # # Considera coluna X como entrada. # Ordena apara 5% nas extremidades
MCONSTANT N T1 T2 XBAR MCOLUMN X XSORT XTRIM Declaração variáveis
# # Cálculo dos pontos de corte T1 e T2 # LET N = COUNT(X) LET T1 = ROUND(N*0,05) LET T2 = N-T1+1 # criação da coluna aparada IF T1=0
LET XTRIM=X #Não apara ELSE # caso contrário apara LET XSORT=SORT(X) COPY XSORT XTRIM; OMIT 1:T1 T2:N. ENDIF LET XBAR=MEAN(XTRIM)
Corpo da macro
ENDMACRO Marca o final da macro
Exemplo – Média Aparada
• Gere 100 números aleatórios de uma exponencial com média 1;
• Execute a macro e calcule a média aparada:√ %APARA C_nº_coluna K1
• Verifique o valor calculado:√ PRINT K1
• Compare com a média aritmética e exata
Macros Disponíveis
• Há muitas macros do Minitab disponíveis, encontradas facilmente na web;
• Um site recomendado é:√ http://www.minitabbrasil.com.br/suporte/macros
• A macro pode ser facilmente armazenada no diretório adequado:√ Salve a macro em extensão .TXT ou .MAC
Exemplo – Determinante
• Crie a matriz:
• Vá ao site indicado e faça o download da macro adequada;
• Instale no diretório adequado; • Verifique o comando para seu
funcionamento;• Calcule o determinante de M1.
−−−
−
=
12104410128848104
48416
1M
Referências
Bibliografia Recomendada
• Minitab Corp. (meio eletrônico)Macros – Versão 14 e 15.
• Soares, J. F. e Rodrigues M. D. F. (Relatório Técnico EST/UFMG) Introdução ao Software Minitab for Windows