Semana 2: Funções e listas, variáveis

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

description

Apresentação da semana 2 da unidade curricular de Introdução à Programação do DCTI do ISCTE-IUL. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI, incluindo Luís Nunes e André Santos.

Transcript of Semana 2: Funções e listas, variáveis

Page 1: 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

Page 2: Semana  2: Funções e listas, variáveis

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

Page 3: Semana  2: Funções e listas, variáveis

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

Page 4: Semana  2: Funções e listas, variáveis

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.

Page 5: Semana  2: Funções e listas, variáveis

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

Page 6: Semana  2: Funções e listas, variáveis

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.

Page 7: Semana  2: Funções e listas, variáveis

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

Page 8: Semana  2: Funções e listas, variáveis

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.

Page 9: Semana  2: Funções e listas, variáveis

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.

Page 10: Semana  2: Funções e listas, variáveis

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

Page 11: Semana  2: Funções e listas, variáveis

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

Page 12: Semana  2: Funções e listas, variáveis

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

Page 13: Semana  2: Funções e listas, variáveis

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

Page 14: Semana  2: Funções e listas, variáveis

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

Page 15: Semana  2: Funções e listas, variáveis

Introdução à Programação - DCTI - ISCTE-IUL 15

Utilizações típicas de variáveis

IteraçãoContagemAcumulaçãoMemória temporáriaEtc.

2010/2011

Page 16: Semana  2: Funções e listas, variáveis

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.

Page 17: Semana  2: Funções e listas, variáveis

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.

Page 18: Semana  2: Funções e listas, variáveis

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.

Page 19: Semana  2: Funções e listas, variáveis

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.

Page 20: Semana  2: Funções e listas, variáveis

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.

Page 21: Semana  2: Funções e listas, variáveis

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

Page 22: Semana  2: Funções e listas, variáveis

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

Page 23: Semana  2: Funções e listas, variáveis

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