FC ConcursosFC Concursos

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” ?

  1. inicial=10 + 10 + 11 + 12 + 13 + 14 + 15
  2. inicial=10 + 11 + 12 + 13 + 14 + 15
  3. inicial=75
  4. inicial=85
  5. 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

Continue aprendendo