Upload
facema-faculdade-de-ciencias-e-tecnologia-do-maranhao
View
41
Download
5
Embed Size (px)
Citation preview
Disciplina: Constr. de Algoritmos e Prog. de SistemasProfessor: Jeovane Reges
Caxias – MA2016
ACULDADE DE CIÊNCIAS E TECNOLOGIA DO MARANHÃO
2
Link Drive
bit.ly/ads-algoritmos
3
Algoritmos
4
Procedimentos ou Funções
5
• Algoritmos• Introdução• Suponha que seja necessário utilizar a
fórmula abaixo em diversas partes de um dado programa.
• Agora, imagine que você a utilizou em 50 partes do seu código e precisa altera-la?
• COMO RESOLVERIA ESSE PROBLEMA?
6
Fazer tantas alterações é inviável. Seria mais fácil se
fizéssemos uma ÚNICA alteração.
7
• Algoritmos• Introdução• Para contornar tal problema, utilizamos as
funções ou procedimentos.
• A principal vantagem é não precisar escrever o mesmo código diversas vezes para um mesmo tipo de operação.
• Os procedimentos diferem das funções apenas por não retornarem valor nenhum.
• Ao longo da disciplina já usamos diversas funções.
8
• Algoritmos• Introdução• Parâmetros• Funções (e procedimentos) podem ou não
receber parâmetros.
• No caso da função abaixo, é necessário passar como parâmetro um valor para ser atribuído a variável x.
9
• Algoritmos• Introdução• Parâmetros• São canais por onde os dados são
transferidos pelo algoritmo chamador a um subalgoritmo.
• Parâmetros Formais: São os nomes simbólicos usados na definição
dos parâmetros de um subalgoritmo.
• Parâmetros Reais: São aqueles que substituem os parâmetros
formais quando da chamada de um subalgoritmo.
10
• Algoritmos• Introdução• Parâmetros
Exemplo:• Parâmetros Formais
• Parâmetros Reais
procedimento soma (a, b: inteiro)var soma: inteiro
inicio x ← 10 y ← 20 soma(x, y)fimalgoritmo
11
• Algoritmos• Procedimento• A sintaxe para criação de
procedimentos é:procedimento <nome do procedimento> (<parâmetros>)var <declaração das variáveis locais>inicio <bloco de instruções>fimprocedimento
12
Faça um procedimento que receba um valor como parâmetro e escreva o dobro desse valor.
Problema I
13
• Algoritmos• Procedimento
algoritmo "Problema 01"var
procedimento dobro(valor: inteiro) var total: inteiro inicio total ← valor * 2 escreval("O dobro é: ", total) fimprocedimento
inicio dobro(8)fimalgoritmoSo
luçã
o do
Pro
blem
a I..
.
14
Problema IFaça um procedimento que
receba um valor como parâmetro e escreva a tabuada de 0 a 10
desse valor.
Problema II
15
• Algoritmos• Procedimento
algoritmo "Problema 02"var numero: inteiro
procedimento tabuada(valor: inteiro) var i: inteiro inicio para i de 1 ate 10 faca escreval(valor * i) fimpara fimprocedimento
inicio escreval("Digite um valor: ") leia(numero) tabuada(numero)fimalgoritmoSo
luçã
o do
Pro
blem
a II.
..
16
• Algoritmos• Procedimento• Variáveis• A variável numero do código anterior é
uma variável cujo escopo é global.
• Uma variável pertence ao escopo global quando ela é visível em qualquer trecho do código.
• Uma variável possui o escopo local quando ela é visível apenas no trecho onde foi declarada/criada.
17
Funções
18
• Algoritmos• Funções• Introdução• As funções sempre irão retornar algum
valor.
• A sintaxe para criação de funções é:funcao <nome da funcao> (<parâmetros>): tipovar <declaração das variáveis locais>inicio <bloco de instruções> retorne <valor>fimfuncao
19
Problema ICrie uma função que receba dois valores por parâmetro e retorne a
soma desses valores.
Problema III
20
• Algoritmos• Função
algoritmo "Problema 03"var res: inteiro
funcao soma(n1, n2: inteiro) : inteiro var
inicio retorne n1 + n2 fimfuncao
inicio res ← soma(8, 7) escreval("Resultado: ", res)fimalgoritmoSo
luçã
o do
Pro
blem
a III
...
21
Problema IVFaça uma função chamada maior que receba dois números (inteiros)
por parâmetros e retorne o maior deles.
22
• Algoritmos• Função
algoritmo "Problema 04"var
funcao maior(v1, v2: inteiro) : inteiro var inicio se (v1 > v2) entao retorne v1 senao retorne v2 fimse fimfuncao
inicio escreval("Maior: ", maior(8, 7))fimalgoritmoSo
luçã
o do
Pro
blem
a IV
...
23
Problema VFaça uma função chamada compara que receba dois números por parâmetros. A
função deve retornar os seguintes resultados:→ 0, se os dois números forem iguais;
→ 1, se o primeiro número for maior que o segundo;→ -1 , se o segundo número for maior que o primeiro.
24
• Algoritmos• Função
Solu
ção
do P
robl
ema
V...
algoritmo "Problema 05"var funcao compara(v1, v2: inteiro) : inteiro var inicio se (v1 = v2) entao retorne 0 senao se (v1 > v2) entao retorne 1 senao retorne -1 fimse fimse fimfuncao
inicio escreval("Resultado: ", compara(8, 7))fimalgoritmo
25
• Algoritmos• Conclusão• Funções e procedimentos são utilizados
com muita frequência em desenvolvimento de software.
• São vários benefícios: Evita duplicação de código quando precisamos
executar a mesma operação várias vezes;
Deixa o entendimento do algoritmo mais intuitivo, pois tiramos a parte complexa do código do fluxo principal do algoritmo.
26
• Algoritmos• Conclusão• São vários benefícios:
Dividir e estruturar um algoritmo em partes logicamente coerentes.
Proporcionar ao programador a reutilização de código, através da criação de bibliotecas de funções personalizadas.
Maior legibilidade do algoritmo.
Evitar a repetição de código, substituindo códigos semelhantes por chamadas a uma única função.