Questão de Programação — Linguagens de programação — FUNDATEC 2023
Programação›Linguagens de programação
Código
qq891175
Banca
FUNDATEC
Órgão
FUMSSAR - RS
Ano
2023
Nível
Médio
Cargo
Técnico de Informática
Analise a estrutura de programação abaixo, em que foi ocultado, propositalmente, o nome que identifica o tipo de estrutura. <nome> ( <parâmetros> ) <tipo_de_dado>var<variáveis locais>início<instruções>fimQue tipo de estrutura é essa que, quando executada, exige o retorno explícito de um valor?
ABiblioteca.
BFunção.
CClasse.
DProcedimento.
EInterface.
Revelar gabarito e comentário▾
GabaritoB — Função.
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”.
Funções e Procedimentos em Programação
Gabarito: letra B. A estrutura apresentada é uma função, pois possui nome, parâmetros, tipo de dado de retorno, variáveis locais e um bloco de instruções — e, quando executada, exige o retorno explícito de um valor, característica que distingue função de procedimento.
O que é uma função?
Uma função é um bloco de código reutilizável que executa uma tarefa específica e retorna um valor ao ponto onde foi chamada. Ela é declarada com um nome, pode receber parâmetros (dados de entrada) e, ao final, devolve um resultado — esse retorno é obrigatório e explícito, geralmente usando a palavra-chave return (ou retorne, em pseudocódigo).
A estrutura mostrada na questão segue exatamente esse padrão:
<nome> ( <parâmetros> ) <tipo_de_dado>
var
<variáveis locais>
início
<instruções>
fim
O <tipo_de_dado> após os parâmetros indica o tipo do valor que a função deve retornar (inteiro, real, caractere, etc.). Isso é a assinatura típica de uma função em linguagens como Pascal, Visual Basic e em pseudocódigo.
Função × Procedimento
A distinção central está no retorno de valor:
Critério
Função
Procedimento
Retorno
Obrigatório — retorna um valor
Opcional — pode não retornar nada
Uso
Em expressões e atribuições
Como comando isolado
Exemplo
resultado <- soma(2, 3)
imprimirMensagem("Olá")
Enquanto a função sempre devolve um resultado, o procedimento é um subprograma que executa ações sem necessariamente retornar um valor — ele pode apenas modificar variáveis ou exibir informações.
Exemplo prático
Em pseudocódigo, uma função que calcula o dobro de um número seria:
funcao dobro(x: inteiro): inteiro
var
resultado: inteiro
início
resultado <- x * 2
retorne resultado
fim
Já um procedimento que apenas exibe uma mensagem seria:
procedimento saudacao()
início
escreva("Olá, mundo!")
fim
Note que a função tem : inteiro (tipo de retorno) e usa retorne; o procedimento não tem tipo de retorno e não usa retorne.
A pegadinha da banca
A banca explora exatamente a confusão entre função e procedimento. O candidato que não domina a diferença pode marcar "Procedimento" (letra D), mas o procedimento não exige retorno explícito de valor — essa é a característica exclusiva da função.
NÃO CAIA NESSA!
A banca troca os conceitos de função e procedimento. Lembre-se: função retorna valor obrigatoriamente; procedimento não. Se a estrutura tem <tipo_de_dado> e exige retorno, é função.
Análise das alternativas
Subprograma
1Função
Retorno obrigatório
Usada em expressões
Tem tipo de dado
2Procedimento
Retorno opcional
Comando isolado
Sem tipo de dado
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Biblioteca é um conjunto de funções, classes ou módulos prontos para uso, não uma estrutura de programação com essa sintaxe. Não se declara uma biblioteca com nome, parâmetros e tipo de retorno.
Alternativa B — ✅ Correta ⟵ GABARITO
A estrutura apresentada é uma função: possui nome, parâmetros, tipo de dado de retorno (<tipo_de_dado>), variáveis locais e bloco de instruções. A exigência de retorno explícito de um valor é a característica que define uma função.
Alternativa C — ❌ Incorreta
Classe é um conceito da programação orientada a objetos que agrupa atributos e métodos. A sintaxe mostrada (nome, parâmetros, tipo de retorno, var, início, fim) não corresponde à declaração de uma classe.
Alternativa D — ❌ Incorreta
Procedimento é um subprograma que executa ações, mas não exige retorno explícito de valor. A presença do <tipo_de_dado> e a exigência de retorno indicam que a estrutura é uma função, não um procedimento.
Alternativa E — ❌ Incorreta
Interface é um contrato que define métodos que uma classe deve implementar, sem fornecer implementação. Não é uma estrutura executável com variáveis locais e instruções como a apresentada.
Gabarito: letra B — a estrutura é uma função, pois exige retorno explícito de valor.