Sub-algoritmos
Algoritmos e
Estrutura de Dados
Funções e Procedimentos
M. Sc. Luiz Alberto
[email protected]
• Em geral, um programa é executado linearmente, uma linha após a outra,
até o fim
• Entretanto, quando são utilizados sub-algoritmos, é possível a realização
de desvios na execução natural dos programas
• Assim, um programa é executado linearmente até a chamada de um subalgoritmo
• Com a chamada, o programa chamador é temporariamente suspenso e o
controle é passado para o sub-algoritmo que é executado
• Ao terminar o sub-algoritmo, o controle retorna para o programa
chamador
• Tipos de Sub-algoritmos:
– Funções (functions)
– Procedimentos (procedures)
Aula 9– Algoritmo – Funções e Procedimentos
Função
Prof. Luiz Alberto -
Forma geral de uma função
• É um subprograma iniciado pela palavra reservada função, seguida
de um identificador que fornece um nome a função, uma lista de
parâmetros, além de um tipo de dado válido para retornar o
resultado encontrado pela mesma.
• A lista de parâmetros consiste nos valores que o algoritmo
principal possui e o subprograma precisa usar para obter, ou gerar,
outro dado importante na solução almejada pelo algoritmo.
Aula 9– Algoritmo – Funções e Procedimentos
–1–
–2–
Prof. Luiz Alberto -
• Uma função possui somente dois momentos importantes no
algoritmo:
• Primeiro momento é o da declaração e especificação das
tarefas/operações (seu corpo) que a função deverá executar;
• Segundo momento é a utilização ou acionamento da função que
pode acontecer várias vezes depois da sua criação e dentro do
algoritmo no qual ela também faz parte.
Aula 9– Algoritmo – Funções e Procedimentos
–3–
Prof. Luiz Alberto -
Parâmetros da função
Parâmetros da função
• Os parâmetros de uma função são dados fundamentais que a função
deve ter acesso para alcançar seu objetivo.
• Por exemplo, se você tem uma função denominada media que
calcula a média aritmética de dois números, é essencial que essa
função "saiba" quais são os números que serão usado para o cálculo
da média, do contrário, ela não pode efetuar os cálculos.
• Pois bem, esses dois números serão disponibilizados à função por
meio de parâmetros.
Aula 9– Algoritmo – Funções e Procedimentos
–4–
Prof. Luiz Alberto -
Algoritmo Completo
Aula 9– Algoritmo – Funções e Procedimentos
–5–
Prof. Luiz Alberto -
Instrução de Retorno
algoritmo "media por aluno“
var
nota_1, nota_2, total : real
// Subprogramas
funcao media (valor_1, valor_2: real) : real
var
resultado : real
inicio
resultado <- (valor_1 + valor_2) / 2
retorne (resultado)
fimfuncao
inicio // algoritmo principal
escreva("Digite a primeira nota: ")
leia(nota_1)
escreva("Digite a segunda nota: ")
leia(nota_2)
total<-media(nota_1,nota_2)
escreva("A média das duas notas é: ",total)
fimalgoritmo
Aula 9– Algoritmo – Funções e Procedimentos
funcao media (num_1 : real; num_2 : real) : real
var
resultado : real
inicio
resultado <- (num_1 + num_2) / 2
retorne(resultado)
fimfuncao
• Um subprograma sempre retorna uma valor ao algoritmo
que o aciona, por isso ele possui um tipo de dado
declarado, retornando ao acionador um dado exatamente
deste tipo.
• A instrução retorne executa o encerramento do
subprograma, retornando imediatamente um único valor
desejado a instrução acionadora da função. Esta instrução
só pode retornar um único valor ao acionador.
–6–
Prof. Luiz Alberto -
Aula 9– Algoritmo – Funções e Procedimentos
–7–
Prof. Luiz Alberto -
Exemplo 2
Fluxograma
algoritmo "iguais_ou_diferentes“
var
num1,num2,total: inteiro
verifica:logico
funcao compara(a,b:inteiro):logico
var
resultado:logico
inicio
se a = b entao
resultado <- verdadeiro
senao
resultado <- falso
fimse
retorne(resultado)
fimfuncao
Aula 9– Algoritmo – Funções e Procedimentos
inicio
escreva("Digite o primeiro
número: ")
leia(num1)
escreva("Digite o primeiro
número: ")
leia(num2)
verifica<-compara(num1,num2)
se verifica entao
escreva("Os números são
iguais")
senao
escreva("Os números são
diferentes")
fimse
fimalgoritmo
–8–
Prof. Luiz Alberto -
Variáveis Locais e Globais
– 10 –
–9–
Prof. Luiz Alberto -
Variáveis Locais e Globais
• Uma variável é considerada global quando sua
declaração acontece no algoritmo principal,
enquanto que uma variável é considerada local
quando a sua declaração acontece em um
subprograma.
Aula 9– Algoritmo – Funções e Procedimentos
Aula 9– Algoritmo – Funções e Procedimentos
Prof. Luiz Alberto -
• Variável Global
– Declaração feita no algoritmo principal;
– Todos os subprogramas do algoritmo principal podem acessar e manipular o
valor armazenado por um componente global;
– Também chamado de componente público, pois oferece o acesso de todos os
subprogramas existentes no algoritmo principal.
• Variável Local
– Declaração feita no subprograma de um algoritmo principal;
– Somente o subprograma que declara o componente pode acessá-lo, ou os
subprogramas hierarquicamente desenvolvidos após este subprograma, tornando
este subprograma um algoritmo principal para os seus subprogramas;
– Todos os componentes criados em um subprograma são locais, sendo destruídos
quando tal subprograma é encerrado (deixam de existir na memória do
computador).
Aula 9– Algoritmo – Funções e Procedimentos
– 11 –
Prof. Luiz Alberto -
Procedimento
Procedimento
• Consiste em um subprograma iniciado pela palavra
reservada procedimento, seguida de um identificador que
lhe fornece um nome e sua lista de parâmetros.
• Nenhum procedimento possui tipo de dado de retorno,
como em uma função, pois este tipo de subprograma não
retorna nenhum valor ao seu chamador (acionador).
Aula 9– Algoritmo – Funções e Procedimentos
– 12 –
Prof. Luiz Alberto -
Procedimento - Exemplo
– 14 –
– Primeiro momento é o da declaração, onde é elaborado o cabeçalho
da função coerente com as suas necessidades e a descrição das
tarefas/operações que ele realizará quando for acionado (seu
corpo);
– Segundo momento é a utilização ou acionamento do procedimento
que pode acontecer várias vezes depois da sua criação e dentro do
algoritmo no qual ela também faz parte.
Aula 9– Algoritmo – Funções e Procedimentos
Prof. Luiz Alberto -
– 13 –
Procedimento - Exemplo
algoritmo "maiorIdade“
var
idade: inteiro
procedimento maioridade (idadeAuxiliar : inteiro)
var
inicio
se (idadeAuxiliar < 18) entao
escreva("Indivíduo menor de idade.")
senao
escreva("Indivíduo maior de idade.")
fimse
fimprocedimento
procedimento maioridade (idadeAuxiliar : inteiro)
var
// sem necessidade da criação de componentes locais
inicio
se (idadeAuxiliar < 18) entao
escreva("Indivíduo menor de idade.")
senao
escreva("Indivíduo maior de idade.")
fimse
fimprocedimento
Aula 9– Algoritmo – Funções e Procedimentos
• Um procedimento possui dois momentos no algoritmo:
Prof. Luiz Alberto -
Aula 9– Algoritmo – Funções e Procedimentos
– 15 –
inicio
// Seção de Comandos
escreva("Digite a idade do
indivíduo: ")
leia(idade)
escreval
maioridade(idade)
fimalgoritmo
Prof. Luiz Alberto -
Características Relevantes da
Programação Modular
• Reutilização de código com aproveitamento da lógica existente no
subprograma;
• Subprogramas devem ser genéricos o bastante para se adaptarem as
diversas situações, visando justamente essa reutilização;
• A passagem de parâmetros possibilita o envio de diferentes valores
para um mesmo subprograma, que realizará as operações
necessárias sobre estes dados;
Exercícios
1.
2.
3.
4.
5.
6.
Aula 9– Algoritmo – Funções e Procedimentos
– 16 –
Prof. Luiz Alberto -
Faça uma função que verifique o sinal de um número inteiro, retornando -1 se o número
for negativo, 0 se o número for nulo e 1 se o número for positivo.
Faça uma função que retorne xy , sendo dados x e y inteiro como parâmetros de entrada.
Escreva um programa que calcule a potência de um número lido.
Faça um programa que lê 3 valores e os envia para uma função que retorna por parâmetro
as raízes da formula de baskara.
Fazer uma função que receba como parâmetro um número inteiro e retorne
VERDADEIRO se ele for primo e FALSO em caso contrário. Use esta função para
imprimir todos os números primos entre 0 e 100.
Fazer um programa para calcular as áreas de um quadrado e um triângulo retângulo
usando funções. O usuário deve informar inicialmente qual área que deseja calcular:
quadrado ou triângulo retângulo.
Faça um programa que lê 2 valores e uma operação(*,/,+,-) e envia para uma função que
retorna pelo parâmetro, o resultado da operação (use escolha).
Aula 9– Algoritmo – Funções e Procedimentos
– 17 –
Prof. Luiz Alberto -
Download

Algoritmo - Professor Luiz Alberto