VisuAlg Web

Def no Visual Cobra: rotinas e parâmetros

Reutilizar uma mensagem sem duplicar comandos em Visual Cobra. Execute o exemplo, confira o resultado e pratique os casos de limite no VisuAlg Web.

No Visual Cobra, rotinas são criadas com def. Quando não há retorno, usamos a função apenas para organizar tarefas (equivalente a procedimento).

Exemplo de códigoVisual Cobra
# Declaração sem parênteses, pois não recebe dados de fora
def linha_decorativa():
    escreva("--------------------------")

escreva("Cabeçalho do Sistema")
linha_decorativa()  # Invocando sem parênteses
escreva("Bem-vindo!")
linha_decorativa()
Exemplo de códigoVisual Cobra
# Esse recebe dados, logo, os parênteses são obrigatórios
def mostrar_erro(mensagem):
    escreva("[ERRO DO SISTEMA]:", mensagem)

mostrar_erro("A conexão com a internet caiu.")
mostrar_erro("O disco rígido está cheio.")

Reutilizar uma mensagem sem duplicar comandos

Uma rotina agrupa comandos que serão executados quando você a chamar. A definição sozinha não mostra a mensagem; a chamada é que inicia o corpo. Um parâmetro permite variar o dado recebido sem copiar a rotina inteira. Neste caso, a função apenas escreve uma saudação e não precisa devolver um resultado explícito. Evite imprimir a própria chamada esperando uma segunda mensagem: o valor de retorno implícito é nulo.

Preserve a indentação dos blocos ao modificar este exemplo em Visual Cobra.

Exemplo de códigoVisual Cobra
def saudar(nome):
    escreva("Olá,", nome)

saudar("Ana")
saudar("Bia")

Resultado esperado e testes

Execute o exemplo sem fornecer entradas. A saída deve ser:

Olá, Ana
Olá, Bia

Faça uma terceira chamada com outro nome: a definição não precisa mudar. Diferencie o parâmetro nome, usado dentro da função, dos valores Ana e Bia recebidos em chamadas distintas. Como exercício, crie uma rotina que receba uma mensagem e a mostre entre duas linhas separadoras. Confira quantas vezes a função foi chamada e quantas linhas cada chamada produz.

Depois, compare o raciocínio com a versão do mesmo assunto nas outras linguagens do menu.