Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2025

ProgramaçãoLinguagens de programação
Código
ce198762
Banca
CESPE / CEBRASPE
Órgão
EMBRAPA
Ano
2025
Nível
Superior
Cargo
Analista - Área: Métodos Quantitativos Avançados - Subárea: Métodos Quantitativos
Julgue o próximo item, a respeito de uso de softwares avançados em estatística.No código a seguir, a substituição de [1] por MAKE show_result(make_, type_); e de [2] por END; define uma macro de nome show_result() que recebe os parâmetros make_ e type_ para exibir as vendas de carros por marca e tipo.Imagem associada para resolução da questão
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Macros em SAS: sintaxe %MACRO e %MEND

Gabarito: letra E (ERRADO). A substituição proposta está incorreta porque, na linguagem SAS, a definição de uma macro é delimitada por %MACRO nome(parâmetros); e %MEND nome; — e não por MAKE ... END;. A sintaxe MAKE show_result(make_, type_); e END; não pertence à linguagem SAS, o que torna a afirmação do enunciado falsa.

O SAS (Statistical Analysis System) é um software amplamente utilizado em estatística e análise de dados, e uma de suas funcionalidades mais poderosas é o macro facility (facilidade de macros). Uma macro no SAS é um bloco de código que pode ser reutilizado, permitindo gerar código SAS dinamicamente e reduzir a repetição. A definição de uma macro segue uma sintaxe rígida e específica, que é diferente daquela apresentada no enunciado.

A estrutura correta para definir uma macro no SAS é:

%MACRO nome_da_macro(parâmetro1, parâmetro2);
    /* corpo da macro */
%MEND nome_da_macro;

O comando %MACRO inicia a definição, e o comando %MEND a encerra. Os parâmetros são opcionais e, quando presentes, são listados entre parênteses após o nome da macro. Dentro do corpo da macro, os parâmetros são referenciados com o prefixo & (por exemplo, &make_ e &type_).

A questão apresenta a substituição de [1] por MAKE show_result(make_, type_); e de [2] por END;. Essa sintaxe não é válida no SAS. O comando MAKE não existe na linguagem SAS para definir macros, e END; é usado para encerrar blocos DO ou PROC, não para finalizar uma definição de macro. Portanto, a afirmação de que essa substituição define uma macro de nome show_result() está incorreta.

A pegadinha aqui é que o candidato pode se confundir com a sintaxe de outras linguagens ou com comandos de outros softwares estatísticos. Por exemplo, em algumas linguagens como MATLAB, a palavra-chave function é usada para definir funções, e em outras, como Python, usa-se def. No entanto, no SAS, a palavra-chave é %MACRO. A banca explora exatamente essa confusão, apresentando uma sintaxe genérica que não corresponde à do SAS.

Para resolver questões como esta, é fundamental conhecer a sintaxe específica da linguagem SAS, especialmente os comandos %MACRO e %MEND. Além disso, é importante lembrar que os parâmetros de uma macro SAS são referenciados com & dentro do corpo da macro, e não com os nomes simples como make_ e type_.

  1. 1%MACRO nome(parâmetros);
  2. 2Corpo da macro (&parâmetro)
  3. 3%MEND nome;
LEVEL · soulevel.com.br

Item — ❌ ERRADO

A afirmação está errada porque a sintaxe apresentada não é a correta para definir uma macro no SAS. A definição correta utiliza %MACRO e %MEND, e não MAKE e END. Além disso, os parâmetros make_ e type_ seriam referenciados como &make_ e &type_ dentro do corpo da macro, e não como make_ e type_ diretamente. Portanto, a substituição proposta não define uma macro válida.

NÃO CAIA NESSA!

A banca troca a sintaxe correta do SAS (%MACRO/%MEND) por uma sintaxe genérica (MAKE/END) que não existe na linguagem. O candidato que não conhece a sintaxe específica do SAS pode ser induzido a acreditar que a afirmação está correta, mas a palavra-chave MAKE não é usada para definir macros no SAS.

NÃO CAIA NESSA!

Para questões sobre SAS, memorize a estrutura básica de uma macro: %MACRO nome(parâmetros); ... %MEND nome;. Lembre-se de que os parâmetros são referenciados com & dentro do corpo da macro. Essa é uma das pegadinhas mais comuns em provas que cobram a linguagem SAS.

Gabarito: letra E (ERRADO).

Link permanente: /questoes/ce198762