Construcao de Algoritmos - Aula 12
-
Upload
facema-faculdade-de-ciencias-e-tecnologia-do-maranhao -
Category
Education
-
view
41 -
download
5
Transcript of Construcao de Algoritmos - Aula 12
![Page 1: Construcao de Algoritmos - Aula 12](https://reader036.fdocumentos.tips/reader036/viewer/2022062821/58a53c621a28ab4f088b492f/html5/thumbnails/1.jpg)
Disciplina: Constr. de Algoritmos e Prog. de SistemasProfessor: Jeovane Reges
Caxias – MA2016
ACULDADE DE CIÊNCIAS E TECNOLOGIA DO MARANHÃO
![Page 2: Construcao de Algoritmos - Aula 12](https://reader036.fdocumentos.tips/reader036/viewer/2022062821/58a53c621a28ab4f088b492f/html5/thumbnails/2.jpg)
2
Link Drive
bit.ly/ads-algoritmos
![Page 3: Construcao de Algoritmos - Aula 12](https://reader036.fdocumentos.tips/reader036/viewer/2022062821/58a53c621a28ab4f088b492f/html5/thumbnails/3.jpg)
3
Algoritmos
![Page 4: Construcao de Algoritmos - Aula 12](https://reader036.fdocumentos.tips/reader036/viewer/2022062821/58a53c621a28ab4f088b492f/html5/thumbnails/4.jpg)
4
Procedimentos ou Funções
![Page 5: Construcao de Algoritmos - Aula 12](https://reader036.fdocumentos.tips/reader036/viewer/2022062821/58a53c621a28ab4f088b492f/html5/thumbnails/5.jpg)
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?
![Page 6: Construcao de Algoritmos - Aula 12](https://reader036.fdocumentos.tips/reader036/viewer/2022062821/58a53c621a28ab4f088b492f/html5/thumbnails/6.jpg)
6
Fazer tantas alterações é inviável. Seria mais fácil se
fizéssemos uma ÚNICA alteração.
![Page 7: Construcao de Algoritmos - Aula 12](https://reader036.fdocumentos.tips/reader036/viewer/2022062821/58a53c621a28ab4f088b492f/html5/thumbnails/7.jpg)
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.
![Page 8: Construcao de Algoritmos - Aula 12](https://reader036.fdocumentos.tips/reader036/viewer/2022062821/58a53c621a28ab4f088b492f/html5/thumbnails/8.jpg)
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.
![Page 9: Construcao de Algoritmos - Aula 12](https://reader036.fdocumentos.tips/reader036/viewer/2022062821/58a53c621a28ab4f088b492f/html5/thumbnails/9.jpg)
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.
![Page 10: Construcao de Algoritmos - Aula 12](https://reader036.fdocumentos.tips/reader036/viewer/2022062821/58a53c621a28ab4f088b492f/html5/thumbnails/10.jpg)
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
![Page 11: Construcao de Algoritmos - Aula 12](https://reader036.fdocumentos.tips/reader036/viewer/2022062821/58a53c621a28ab4f088b492f/html5/thumbnails/11.jpg)
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
![Page 12: Construcao de Algoritmos - Aula 12](https://reader036.fdocumentos.tips/reader036/viewer/2022062821/58a53c621a28ab4f088b492f/html5/thumbnails/12.jpg)
12
Faça um procedimento que receba um valor como parâmetro e escreva o dobro desse valor.
Problema I
![Page 13: Construcao de Algoritmos - Aula 12](https://reader036.fdocumentos.tips/reader036/viewer/2022062821/58a53c621a28ab4f088b492f/html5/thumbnails/13.jpg)
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..
.
![Page 14: Construcao de Algoritmos - Aula 12](https://reader036.fdocumentos.tips/reader036/viewer/2022062821/58a53c621a28ab4f088b492f/html5/thumbnails/14.jpg)
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
![Page 15: Construcao de Algoritmos - Aula 12](https://reader036.fdocumentos.tips/reader036/viewer/2022062821/58a53c621a28ab4f088b492f/html5/thumbnails/15.jpg)
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.
..
![Page 16: Construcao de Algoritmos - Aula 12](https://reader036.fdocumentos.tips/reader036/viewer/2022062821/58a53c621a28ab4f088b492f/html5/thumbnails/16.jpg)
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.
![Page 17: Construcao de Algoritmos - Aula 12](https://reader036.fdocumentos.tips/reader036/viewer/2022062821/58a53c621a28ab4f088b492f/html5/thumbnails/17.jpg)
17
Funções
![Page 18: Construcao de Algoritmos - Aula 12](https://reader036.fdocumentos.tips/reader036/viewer/2022062821/58a53c621a28ab4f088b492f/html5/thumbnails/18.jpg)
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
![Page 19: Construcao de Algoritmos - Aula 12](https://reader036.fdocumentos.tips/reader036/viewer/2022062821/58a53c621a28ab4f088b492f/html5/thumbnails/19.jpg)
19
Problema ICrie uma função que receba dois valores por parâmetro e retorne a
soma desses valores.
Problema III
![Page 20: Construcao de Algoritmos - Aula 12](https://reader036.fdocumentos.tips/reader036/viewer/2022062821/58a53c621a28ab4f088b492f/html5/thumbnails/20.jpg)
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
...
![Page 21: Construcao de Algoritmos - Aula 12](https://reader036.fdocumentos.tips/reader036/viewer/2022062821/58a53c621a28ab4f088b492f/html5/thumbnails/21.jpg)
21
Problema IVFaça uma função chamada maior que receba dois números (inteiros)
por parâmetros e retorne o maior deles.
![Page 22: Construcao de Algoritmos - Aula 12](https://reader036.fdocumentos.tips/reader036/viewer/2022062821/58a53c621a28ab4f088b492f/html5/thumbnails/22.jpg)
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
...
![Page 23: Construcao de Algoritmos - Aula 12](https://reader036.fdocumentos.tips/reader036/viewer/2022062821/58a53c621a28ab4f088b492f/html5/thumbnails/23.jpg)
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.
![Page 24: Construcao de Algoritmos - Aula 12](https://reader036.fdocumentos.tips/reader036/viewer/2022062821/58a53c621a28ab4f088b492f/html5/thumbnails/24.jpg)
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
![Page 25: Construcao de Algoritmos - Aula 12](https://reader036.fdocumentos.tips/reader036/viewer/2022062821/58a53c621a28ab4f088b492f/html5/thumbnails/25.jpg)
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.
![Page 26: Construcao de Algoritmos - Aula 12](https://reader036.fdocumentos.tips/reader036/viewer/2022062821/58a53c621a28ab4f088b492f/html5/thumbnails/26.jpg)
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.