Questão FC624257
Que resultado aparecerá no log do SAS, após executar a Macro, devido ao “%put inicial=&inicial” ?
Estatística Computacional
CESGRANRIO · 2014
Um professor de SAS, ao dar um exemplo de Macro SAS para seus alunos, escreveu o seguinte código:
%let inicial=10;
%macro exemplo;
%do i=10 %to 15; %let inicial=&inicial + %eval(&i); %end;
%put inicial=&inicial;
%mend;
%exemplo;
Que resultado aparecerá no log do SAS, após executar a Macro, devido ao “%put inicial=&inicial” ?
- inicial=10 + 10 + 11 + 12 + 13 + 14 + 15
- inicial=10 + 11 + 12 + 13 + 14 + 15
- inicial=75
- inicial=85
- inicial=&inicial
Mostrar resposta e comentário
Gabarito
A
Comentário do professor
A macro inicia com %let inicial=10, definindo o token inicial com o texto "10".
No laço %do i=10 %to 15; a instrução %let inicial=&inicial + %eval(&i); concatena texto: &inicial expande para o conteúdo atual (texto) e %eval(&i) devolve o valor numérico de &i, mas não avalia a expressão inteira. Assim cada iteração acrescenta " + N" ao texto já existente.
Como não há avaliação aritmética do conjunto, o valor final fica como expressão textual e o %put inicial=&inicial; grava no log:
inicial=\(10 + 10 + 11 + 12 + 13 + 14 + 15\)
Conteúdo do catálogo FC Concursos · Atualizado em