26
Disciplina: Constr. de Algoritmos e Prog. de Sistemas Professor: Jeovane Reges Caxias – MA 2016 ACULDADE DE CIÊNCIAS E TECNOLOGIA DO MARANHÃO

Construcao de Algoritmos - Aula 12

Embed Size (px)

Citation preview

Page 1: Construcao de Algoritmos - Aula 12

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

2

Link Drive

bit.ly/ads-algoritmos

Page 3: Construcao de Algoritmos - Aula 12

3

Algoritmos

Page 4: Construcao de Algoritmos - Aula 12

4

Procedimentos ou Funções

Page 5: Construcao de Algoritmos - Aula 12

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

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

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

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

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

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

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

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

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

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

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

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

17

Funções

Page 18: Construcao de Algoritmos - Aula 12

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

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

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

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

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

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

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

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

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.