O documento discute o uso de sub-algoritmos para dividir algoritmos complexos em partes menores. Sub-algoritmos como procedimentos e funções podem ser usados para realizar tarefas específicas e reutilizadas. Isso torna os algoritmos mais fáceis de entender, desenvolver e manter.
2. Introdução
Conforme a complexidade dos problemas, os
algoritmos tornam-se mais extensos e difíceis de
acompanhar
Solução: Dividir para conquistar
Nesses casos (e mesmo em problemas mais
simples) é importante dividirmos a tarefa de
resolução do problema em tarefas menores
chamados MÓDULOS ou SUB-ALGORITMOS
Cada parte (módulo) do algoritmo fica
responsável por uma determinada parte do
processo e o conjunto de módulos resolve o
problema principal
Prof. Mauro
Algoritmos e Ling.de Programação
Sub-algoritmos
2
3. Conceito
Sub-algoritmos, sub-rotinas, subprogramas ou módulos são blocos de
instruções que realizam tarefas específicas
Cada sub-algoritmo é um trecho do algoritmo
completo e resolve uma parte do problema
Os algoritmos podem também ser
REUTILIZADO na solução de outros problemas
Prof. Mauro
Algoritmos e Ling.de Programação
Sub-algoritmos
3
4. Funcionamento
Um algoritmo completo é dividido em:
UM Algoritmo principal
Diversos Sub-algoritmos
A execução sempre começa pelo algoritmo
principal
A execução de um subalgoritmo é solicitada
sempre que necessário, através de uma
chamada ou invocação.
Quando um subalgoritmo é chamado, a execução
do algoritmo principal é interrompida para que o
subalgoritmo seja executado. Após isso, o
algoritmo principal continua de onde parou
Prof. Mauro
Algoritmos e Ling.de Programação
Sub-algoritmos
4
5. Funcionamento (ilustração)
Algoritmo Principal
instrução 1
instrução 2
Subalgoritmo 1
instrução 3
Subalgoritmo 1
instrução 1
Subalgoritmo 2
instrução 2
Subalgoritmo 2
instrução 1
instrução 2
Prof. Mauro
A execução inicial aqui e segue a sequência das
instruções.
A execução do Algoritmo Principal é interrompida até
que o Subalgoritmo 1 seja executado, continuando em
seguida a partir da instrução 3.
Executado no momento em que é invocado pelo
Algoritmo Principal.
A execução do Subalgoritmo 1 é interrompida até que o
Subalgoritmo 2 seja executado, continuando em
seguida a partir da instrução 2.
Executado no momento em que é invocado pelo
Subalgoritmo 1.
Terminada a execução, volta para continuar o
Subalgoritmo 1. Quando terminar o Subalgoritmo 1,
volta para continuar com a execução do Algoritmo
Principal.
Algoritmos e Ling.de Programação
Sub-algoritmos
5
6. Funcionamento (ilustração)
A execução pode ser visualizada como segue:
Algoritmo Principal
instrução 1
instrução 2
Subalgoritmo 1
instrução 1
Subalgoritmo 2
instrução 1
instrução 2
instrução 2
instrução 3
Prof. Mauro
Algoritmos e Ling.de Programação
Sub-algoritmos
6
7. Variáveis Locais e Variáveis Globais
Variáveis Globais são declaradas no início do algoritmo
e pode ser usadas no algoritmo principal e por todos os
subalgoritmos.
Variáveis Locais são definidas dentro de um
subalgoritmo e só podem ser utilizadas dentro dele.
As variáveis A e B são globais
e podem ser usadas por
qualquer subalgoritmo
A, B: Real
instrução 1
instrução 2
Subalgoritmo 1
Subalgoritmo 2
X, Y: Inteiro
instrução 1
instrução 2
num: Inteiro
instrução 1
instrução 2
As variáveis X e Y só podem
ser utilizadas no subalgoritmo
1 e a variável num só pode ser
utilizada no subalgoritmo 2.
instrução 3
Prof. Mauro
Algoritmos e Ling.de Programação
Sub-algoritmos
7
8. Tipos de sub-algoritmos
Existem dois tipos de sub-algoritmos:
PROCEDIMENTOS
FUNÇÕES
Prof. Mauro
Algoritmos e Ling.de Programação
Sub-algoritmos
8
9. Procedimentos
PROCEDIMENTO é um sub-algoritmo que
não retorna valor ao algoritmo chamador
ou que retorna dois ou mais valores
A chamada de procedimentos só pode ser feita
com uma linha de comando isolada dentro do
algoritmo
Se retornar valores, o retorno é feito por meio
de parâmetros ou variáveis globais
Exemplos: solicita_valores, lista_resultados
Prof. Mauro
Algoritmos e Ling.de Programação
Sub-algoritmos
9
10. Funções
FUNÇÃO é um sub-algoritmo que calcula um
valor a partir de outros fornecidos a ela,
retornando o valor calculado
A chamada a uma função sempre ocorre dentro de
uma expressão do mesmo tipo que tem o valor
retornado por ela.
Sua chamada é feita pelo seu nome, seguido de seus
respectivos parâmetros entre parênteses.
A função é executada e, ao seu término, o trecho do
comando que a invocou é substituído pelo valor
retornado
Exemplos: primo(<número>), fatorial(<número>)
Prof. Mauro
Algoritmos e Ling.de Programação
Sub-algoritmos
10
11. Parâmetros e retorno
Os parâmetros possibilitam a comunicação entre um
subalgoritmo e o algoritmo chamador.
Corresponde aos dados que são passados ao subalgoritmo pelo
algoritmo chamador.
A passagem de dados para procedimentos e funções se dá da
mesma forma.
Retorno de Dados
No caso dos procedimentos os dados são retornados através dos
parâmetros.
No caso das funções, o retorne se dá pelo comando Retorne.
Retorne <expressão>
Ao encontrar este comando, a expressão é retornada ao chamador e
a função é terminada.
Prof. Mauro
Algoritmos e Ling.de Programação
Sub-algoritmos
11
12. Parâmetros e retorno
A passagem de parâmetros pode se dar de duas formas:
Por valor: neste caso é passada uma cópia do
conteúdo de uma variável. Essa cópia só existirá no
procedimento ou na função.
Qualquer alteração que for feita no valor, não irá alterar
o conteúdo da variável original.
Por referência: não existe cópia do conteúdo
enviado, o que ocorre é o envio do endereço de
memória onde a variável se encontra.
Neste caso, qualquer alteração no valor alterará o valor
da variável original.
Prof. Mauro
Algoritmos e Ling.de Programação
Sub-algoritmos
12
13. Declarando sub-algoritmos
O NOME dos sub-algoritmo deve seguir as
mesmas regras para definição de nomes
de variáveis
Sempre que um sub-algoritmo recebe
parâmetros, estes devem ser especificados
entre parênteses, com seus respectivos
tipos, logo após o nome do sub-algoritmo
Prof. Mauro
Algoritmos e Ling.de Programação
Sub-algoritmos
13
14. Declarando procedimentos
Para declarar um procedimento, devemos seguir o
modelo a seguir.
Algoritmo NomeAlgoritmo
Variáveis
<Aqui são declaradas as Variáveis Globais>
Início
<Aqui são colocadas as instruções do Algoritmo Principal>
Fim
Procedimento NomeProcedimento (Lista de Parâmetros)
Variáveis
<Aqui são declaradas as Variáveis do Procedimento>
Início
<Aqui são colocadas as instruções do Procedimento>
Fim
Prof. Mauro
Algoritmos e Ling.de Programação
Sub-algoritmos
14
15. Declarando funções
Para declarar uma função, devemos seguir o modelo a
seguir.
Algoritmo NomeAlgoritmo
Variáveis
<Aqui são declaradas as Variáveis Globais>
Início
<Aqui são colocadas as instruções do Algoritmo Principal>
Fim
Função NomeFunção (Lista de Parâmetros)
Variáveis
<Aqui são declaradas as Variáveis da Função>
Início
<Aqui são colocadas as instruções da Função>
Fim
Prof. Mauro
Algoritmos e Ling.de Programação
Sub-algoritmos
15
16. Exemplo
Um algoritmo, com uma função que recebe dois números inteiros
como parâmetros e retorna a soma desses números ao algoritmo
principal.
Nome da Função
Parâmetros e seus tipos
Neste caso, os parâmetros são os dois
valores que serão somados.
Função soma (x, y: Inteiro)
Variáveis
adicao: Inteiro
Início
adicao ← x + y
Retorne adicao
Fim
Uma variável local para
armazenar o valor da soma
O comando que retorna o valor
da soma para o algoritmo que
chamou a função
Prof. Mauro
Algoritmos e Ling.de Programação
Sub-algoritmos
16
17. Exemplo (algoritmo completo)
Algoritmo SomaDeDoisNumeros
Variáveis
num1, num2, s: Inteiro
Função soma (x, y: Inteiro)
Variáveis
adicao: Inteiro
Início
adicao ← x + y
Retorne adicao
Fim
Início
Escreva “Digite o Primeiro Numero”
Leia num1
Escreva “Digite o Segundo Numero”
Leia num2
s ← soma(num1, num2)
Escreva s
Fim
Prof. Mauro
Aqui se inicia o algoritmo principal,
que solicita dois números ao
usuário e, em seguida, chama a
função que realiza a soma dos
números. Guarda a soma retornada
pela função na variável s e mostra
o valor na tela.
Quando a função é chamada, a
execução do algoritmo principal
fica parada até que a função seja
finalizada e retorne o resultado.
Algoritmos e Ling.de Programação
Sub-algoritmos
17
18. Exercícios
Reescreva um dos exercícios de vetores ou
matrizes criando um procedimento para ler
os dados e outro para processar e mostrar
os resultados
Crie uma função para calcular o fatorial de
um número
Crie uma função para determinar se um
número é primo
Prof. Mauro
Algoritmos e Ling.de Programação
Sub-algoritmos
18