Semana 2: Funções e listas, variáveis
-
Upload
manuel-menezes-de-sequeira -
Category
Technology
-
view
2.257 -
download
1
Embed Size (px)
description
Transcript of Semana 2: Funções e listas, variáveis

Introdução à Programação - DCTI - ISCTE-IUL 1
Aula 2
Funções e listas em pseudocódigoUtilizações típicas de variáveis
2010/2011

Introdução à Programação - DCTI - ISCTE-IUL 2
Da aula anterior…
Programação como arte de resolver problemas
Algoritmo como sequência finita de instruções que resolvem um dado problema
Descrição de algoritmos em pseudocódigo Variáveis Instruções de selecção Iterações e ciclos Instruções de leitura/escrita
2010/2011 2

Introdução à Programação - DCTI - ISCTE-IUL 3
Função
Conjunto de instruções com entradas bem definidas e que calcula um determinado valor (a sua saída)
Definição Nome (reflecte o que a rotina calcula) Entradas (ou parâmetros) Instruções que executam o cálculo Instruções que reportam (ou devolvem) o
resultado2010/2011

Introdução à Programação - DCTI - ISCTE-IUL 4
Pseudocódigo: definição de função
Função nome(parâmetro1, parâmetro2, …)
variável1 ← 0.variável2 ← 0.……Devolver variável1.
2010/2011
Entradas ou parâmetros.
Reportar ou devolver o valor calculado.
Introdução à Programação
Variáveis locais. Acessíveis apenas dentro da função.
Corpo da
função.

Introdução à Programação - DCTI - ISCTE-IUL 5
Pseudocódigo: invocação de função
variável1 ← 0.variável2 ← 1.…resultado ← nome(expressão1,
expressão2, …).
2010/2011
Argumentos. Um argumento por cada parâmetro.
Introdução à Programação

Introdução à Programação - DCTI - ISCTE-IUL 6
Função que calcula o mdc
Função mdc(m, n)
Se m < n, então mdc ← m,senão,mdc ← n.
Enquanto m ÷ mdc ≠ 0 V n ÷ mdc ≠ 0, fazer mdc ← mdc - 1.
Devolver mdc.
2010/2011
Entradas.
Saída.
Passos:
Cálculo do mínimo. Pode transformar-se em função.
Algoritmo simplório.

Introdução à Programação - DCTI - ISCTE-IUL 7
Função que calcula o mdcFunção mínimoDe(m, n)
Se m < n, então devolver m,senão, devolver n.
Função mdc(m, n)
mdc ← mínimoDe(m, n).
Enquanto m ÷ mdc ≠ 0 V n ÷ mdc ≠ 0, fazer mdc ← mdc - 1.
Devolver mdc.2010/2011

Introdução à Programação - DCTI - ISCTE-IUL 8
Função que calcula o mdc
Função mdc(m, n)
Enquanto m ≠ 0, fazer temporária ← m,m ← n ÷ m, n ← temporária.
Devolver n.
2010/2011
Algoritmo de Euclides.

Introdução à Programação - DCTI - ISCTE-IUL 9
Função que calcula o mdc
Função mdc(m, n)
Se m = 0, fazerdevolver n,
senão,devolver mdc(n ÷ m, m).
2010/2011
Algoritmo de Euclides na sua forma recursiva.

Introdução à Programação - DCTI - ISCTE-IUL 10
Funções: boas práticas
Funções devem limitar-se a cálculo em causa
Funções não devem ter efeitos laterais
Ler do teclado e escrever no ecrã são efeitos laterais
Funções não devem ler do teclado ou escrever no ecrã!
2010/2011

Introdução à Programação - DCTI - ISCTE-IUL 11
Funções: vantagens
2010/2011
Modularização Código colocado em módulo com função bem
definida Facilita reutilização: define-se uma vez, usa-se
muitas
Encapsulamento Implementação irrelevante para quem usa a
função Reduz complexidade Favorece abstracção Aumenta clareza

Introdução à Programação - DCTI - ISCTE-IUL 12
Lista (ou vector)
Variável que guarda sequência de itens
Ordem dos itens relevante Identificação de valores usando
índices Índice do primeiro valor: zeroExemplo
2010/2011
Índices.
Valores.
Lista lista.
8 4 2 0 1 1 0 70 1 2 3 4 5 6 7
lista

Introdução à Programação - DCTI - ISCTE-IUL 13
Pseudocódigo: listas
lista(tamanho, valor) – Lista com tamanho itens, todos com valor valor.
lista1 ← lista(5, 0)
lista{valor1, valor2, …} – Lista com valores indicados entre chavetas
lista2 ← lista{2, 0, 5, 8}2010/2011
0 0 0 0 00 1 2 3 4
lista1
2 0 5 80 1 2 3
lista2

Introdução à Programação - DCTI - ISCTE-IUL 14
Pseudocódigo: listas
tamanhoDe(lista) – devolve tamanho de lista
lista[i] – Item de lista com índice i
Exemplos: tamanhoDe(lista1) – Devolve 5
lista2[2] – Terceiro item de lista2, com valor 5
lista2[2] ← 7 – Atribui 7 ao terceiro item de lista2
2010/2011
0 0 0 0 00 1 2 3 4
lista1
2 0 5 80 1 2 3
lista2

Introdução à Programação - DCTI - ISCTE-IUL 15
Utilizações típicas de variáveis
IteraçãoContagemAcumulaçãoMemória temporáriaEtc.
2010/2011

Introdução à Programação - DCTI - ISCTE-IUL 16
Iteração
Variável com valores sucessivos correspondentes a contagem, índices de lista, etc.
Exemplo
i ← 0.Enquanto i ≠ 10, fazer
...i ← i + 1.
2010/2011
Variável para iteração.

Introdução à Programação - DCTI - ISCTE-IUL 17
Contagem
Variável guardando valor de contagem Exemplo
Função ocorrências(lista, valor)ocorrências ← 0.i ← 0.Enquanto i ≠ tamanhoDe(lista), fazer
se lista[i] = valor, entãoocorrências ← ocorrências + 1;
i ← i + 1.
Devolver ocorrências.2010/2011
Variável para contagem.

Introdução à Programação - DCTI - ISCTE-IUL 18
Acumulação
Variável guardando acumulação de operação Exemplo
Função somaDe(lista)soma ← 0.i ← 0.Enquanto i ≠ tamanhoDe(lista), fazer
soma ← soma + lista[i];i ← i + 1.
Devolver soma.2010/2011
Variável para acumulação da soma.

Introdução à Programação - DCTI - ISCTE-IUL 19
Acumulação: caso especial Variável guardando acumulação de operação Exemplo
Função máximoDe(lista)máximo ← -∞.i ← 0.Enquanto i ≠ tamanhoDe(lista), fazer
se máximo < lista[i], entãomáximo ← lista[i];
i ← i + 1.
Devolver máximo.2010/2011
Variável para “acumulação” do máximo.

Introdução à Programação - DCTI - ISCTE-IUL 20
Memória temporária
Variável para guardar valor temporariamente Exemplo
Função mdc(m, n)Enquanto m ≠ 0, fazer
temporária ← m,m ← n ÷ m, n ← temporária.
Devolver n.2010/2011
Variável para memória temporária.

Introdução à Programação - DCTI - ISCTE-IUL 21
A reter
Pseudocódigo Funções Listas (ou vectores)
Utilizações típicas de variáveis Iteração Contagem Acumulação (casos especiais) Memória temporária
2010/2011 21

2010/2011 22
A ler...
Capítulos 1 e 2 do livro:
Y. Daniel Liang, Introduction to Java Programming, 8.ª edição, Prentice-Hall, 2010. ISBN: 978-0-13-213080-6
Introdução à Programação - DCTI - ISCTE-IUL 22

Introdução à Programação - DCTI - ISCTE-IUL 23
Sumário
Funções e listas em pseudocódigoUtilizações típicas de variáveis
2010/2011