Module: (Python) Sub-rotinas: Procedimentos e Funções - 1


Problem

1/11

Sub-rotinas: Introdução

Theory Click to read/hide

Sub-rotinas

Uma sub-rotina é uma parte separada do programa que tem um nome e resolve sua própria tarefa separada. A sub-rotina está localizada no início do programa principal e pode ser iniciada (chamada) a partir do programa principal especificando o nome.

O uso de sub-rotinas permite evitar a duplicação de código, caso seja necessário escrever o mesmo código em locais diferentes do programa. 
As bibliotecas que são importadas para um programa (por exemplo, a biblioteca math math) consistem em sub-rotinas que já foram compiladas por alguém. Os programadores não precisam pensar em quais algoritmos implementam, mas simplesmente aplicá-los, pensando apenas no que exatamente estão fazendo. Esta é uma grande economia de tempo. Não há necessidade de escrever um algoritmo que já foi escrito por outra pessoa.

Cada sub-rotina deve executar apenas uma tarefa,  apenas calcule algo, ou forneça alguns dados, ou faça outra coisa. 

Existem dois tipos de sub-rotinas - procedimentos e funções.

Os subprocedimentos executam alguma ação, como exibir um resultado na tela de uma determinada forma (um exemplo simples, a instrução print() é um subprocedimento padrão que imprime dados na tela).

As sub-rotinas de função retornam um resultado (número, cadeia de caracteres, etc.) que podemos usar no programa principal.

Vamos tentar escrever um procedimento simples:
Suponha que precisamos exibir a string "Error" na tela toda vez que pode ocorrer um erro no código por falha do usuário, por exemplo, quando ele insere dados incorretos.
Isso pode ser feito escrevendo a declaração print("Erro") E agora imagine que tal linha precise ser inserida em vários lugares do programa. Claro, você pode simplesmente escrevê-lo em todos os lugares. Mas esta solução tem duas desvantagens.
1) Esta string será armazenada na memória muitas vezes.
2) Se quisermos alterar a saída em caso de erro, teremos que alterar esta linha ao longo do programa, o que é bastante inconveniente

Para tais casos, são necessários procedimentos.
Um programa com um procedimento pode se parecer com isto:
  def printError(): # descrição do procedimento print("Erro") ... printError() # inicia o procedimento para execução. # Basta especificar o nome do procedimento que queremos executar ... printError()
É preciso lembrar!
  1. O procedimento começa com a palavra def (do inglês - define - definir). Após o nome do procedimento, colchetes vazios e dois pontos são escritos . Os parâmetros podem ser especificados dentro dos colchetes (falaremos sobre isso mais tarde).
  2. Todas as instruções executadas em um procedimento são recuadas. 
  3. Para executar um procedimento, no programa principal você precisa chamá-lo pelo nome e lembre-se de colocar parênteses!
  4. Você pode chamar um procedimento em um programa quantas vezes quiser.

Problem

Escreva um procedimento que exiba a frase "Erro. Divisão por zero! Dê o nome correto ao procedimento.