Aula 2Funções e listas em pseudocódigoUtilizações típicas de variáveis2010/2011Introdução à Programação - DCTI - ISCTE-IUL1
Da aula anterior…Programação como arte de resolver problemasAlgoritmo como sequência finita de instruções que resolvem um dado problemaDescrição de algoritmos em pseudocódigo VariáveisInstruções de selecçãoIterações e ciclosInstruções de leitura/escrita2010/2011Introdução à Programação - DCTI - ISCTE-IUL22
FunçãoConjunto de instruções com entradas bem definidas e que calcula um determinado valor (a sua saída)DefiniçãoNome (reflecte o que a rotina calcula)Entradas (ou parâmetros)Instruções que executam o cálculoInstruções que reportam (ou devolvem) o resultado2010/2011Introdução à Programação - DCTI - ISCTE-IUL3
Pseudocódigo: definição de função	Função nome(parâmetro1, parâmetro2, …)variável1 ← 0.variável2 ← 0.		…		…Devolvervariável1.2010/2011Introdução à Programação - DCTI - ISCTE-IUL4Entradas ou parâmetros.Corpo da função.Variáveis locais. Acessíveis apenas dentro da função.Reportar ou devolver o valor calculado.Introdução à Programação
Pseudocódigo: invocação de funçãovariável1 ← 0.variável2 ← 1.…resultado ← nome(expressão1, expressão2, …).2010/2011Introdução à Programação - DCTI - ISCTE-IUL5Argumentos. Um argumento por cada parâmetro.Introdução à Programação
Função que calcula o mdcFunção mdc(m, n)	Se m < n, então mdc← m,	senão,mdc← n.	Enquanto m ÷ mdc≠ 0 V n ÷ mdc ≠ 0, fazermdc← mdc - 1.	Devolver mdc.2010/2011Introdução à Programação - DCTI - ISCTE-IUL6Entradas.Cálculo do mínimo.  Pode transformar-se em função.Passos:Saída.Algoritmo simplório.
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, fazermdc← mdc - 1.	Devolver mdc.2010/2011Introdução à Programação - DCTI - ISCTE-IUL7
Função que calcula o mdcFunção mdc(m, n)	Enquanto m≠ 0, fazertemporária← m,m← n ÷ m, n← temporária.	Devolver n.2010/2011Introdução à Programação - DCTI - ISCTE-IUL8Algoritmo de Euclides.
Função que calcula o mdcFunção mdc(m, n)	Se m= 0, fazer		devolver n,	senão,		devolver mdc(n ÷ m, m).2010/2011Introdução à Programação - DCTI - ISCTE-IUL9Algoritmo de Euclides na sua forma recursiva.
Funções: boas práticasFunções devem limitar-se a cálculo em causaFunções não devem ter efeitos lateraisLer do teclado e escrever no ecrã são efeitos lateraisFunções não devem ler do teclado ou escrever no ecrã!2010/2011Introdução à Programação - DCTI - ISCTE-IUL10
Funções: vantagens2010/2011Introdução à Programação - DCTI - ISCTE-IUL11ModularizaçãoCódigo colocado em módulo com função bem definidaFacilita reutilização: define-se uma vez, usa-se muitasEncapsulamentoImplementação irrelevante para quem usa a funçãoReduz complexidadeFavorece abstracçãoAumenta clareza
Lista (ou vector)Variável que guarda sequência de itensOrdem dos itens relevanteIdentificação de valores usando índicesÍndice do primeiro valor: zeroExemplo2010/2011Introdução à Programação - DCTI - ISCTE-IUL12Lista lista.8420110701234567listaValores.Índices.
Pseudocódigo: listaslista(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/2011Introdução à Programação - DCTI - ISCTE-IUL13000002058012340123lista1lista2
Pseudocódigo: listastamanhoDe(lista)– devolve tamanho de listalista[i] – Item de lista com índice iExemplos:tamanhoDe(lista1) – Devolve 5lista2[2] – Terceiro item de lista2, com valor 5lista2[2] ← 7 – Atribui 7 ao terceiro item de lista22010/2011Introdução à Programação - DCTI - ISCTE-IUL14000002058012340123lista1lista2
Utilizações típicas de variáveisIteraçãoContagemAcumulaçãoMemória temporáriaEtc.2010/2011Introdução à Programação - DCTI - ISCTE-IUL15
IteraçãoVariável com valores sucessivos correspondentes a contagem, índices de lista, etc.Exemploi ← 0.	Enquanto i ≠ 10, fazer		...i ← i + 1.2010/2011Introdução à Programação - DCTI - ISCTE-IUL16Variável para iteração.
ContagemVariável guardando valor de contagemExemplo	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/2011Introdução à Programação - DCTI - ISCTE-IUL17Variável para contagem.
AcumulaçãoVariável guardando acumulação de operaçãoExemplo	Função somaDe(lista)soma ← 0.i ← 0.		Enquanto i ≠ tamanhoDe(lista), fazersoma ← soma + lista[i];			i ← i + 1.		Devolver soma.2010/2011Introdução à Programação - DCTI - ISCTE-IUL18Variável para acumulação da soma.
Acumulação: caso especialVariável guardando acumulação de operaçãoExemplo	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/2011Introdução à Programação - DCTI - ISCTE-IUL19Variável para “acumulação” do máximo.
Memória temporáriaVariável para guardar valor temporariamenteExemplo	Função mdc(m, n)		Enquanto m≠ 0, fazertemporária← m,m← n ÷ m, n← temporária.		Devolver n.2010/2011Introdução à Programação - DCTI - ISCTE-IUL20Variável para memória temporária.
A reterPseudocódigoFunçõesListas (ou vectores)Utilizações típicas de variáveisIteraçãoContagemAcumulação (casos especiais)Memória temporária2010/2011Introdução à Programação - DCTI - ISCTE-IUL2121
2010/201122A 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-6Introdução à Programação - DCTI - ISCTE-IUL22
SumárioFunções e listas em pseudocódigoUtilizações típicas de variáveis2010/2011Introdução à Programação - DCTI - ISCTE-IUL23

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

  • 1.
    Aula 2Funções elistas em pseudocódigoUtilizações típicas de variáveis2010/2011Introdução à Programação - DCTI - ISCTE-IUL1
  • 2.
    Da aula anterior…Programaçãocomo arte de resolver problemasAlgoritmo como sequência finita de instruções que resolvem um dado problemaDescrição de algoritmos em pseudocódigo VariáveisInstruções de selecçãoIterações e ciclosInstruções de leitura/escrita2010/2011Introdução à Programação - DCTI - ISCTE-IUL22
  • 3.
    FunçãoConjunto de instruçõescom entradas bem definidas e que calcula um determinado valor (a sua saída)DefiniçãoNome (reflecte o que a rotina calcula)Entradas (ou parâmetros)Instruções que executam o cálculoInstruções que reportam (ou devolvem) o resultado2010/2011Introdução à Programação - DCTI - ISCTE-IUL3
  • 4.
    Pseudocódigo: definição defunção Função nome(parâmetro1, parâmetro2, …)variável1 ← 0.variável2 ← 0. … …Devolvervariável1.2010/2011Introdução à Programação - DCTI - ISCTE-IUL4Entradas ou parâmetros.Corpo da função.Variáveis locais. Acessíveis apenas dentro da função.Reportar ou devolver o valor calculado.Introdução à Programação
  • 5.
    Pseudocódigo: invocação defunçãovariável1 ← 0.variável2 ← 1.…resultado ← nome(expressão1, expressão2, …).2010/2011Introdução à Programação - DCTI - ISCTE-IUL5Argumentos. Um argumento por cada parâmetro.Introdução à Programação
  • 6.
    Função que calculao mdcFunção mdc(m, n) Se m < n, então mdc← m, senão,mdc← n. Enquanto m ÷ mdc≠ 0 V n ÷ mdc ≠ 0, fazermdc← mdc - 1. Devolver mdc.2010/2011Introdução à Programação - DCTI - ISCTE-IUL6Entradas.Cálculo do mínimo. Pode transformar-se em função.Passos:Saída.Algoritmo simplório.
  • 7.
    Função que calculao 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, fazermdc← mdc - 1. Devolver mdc.2010/2011Introdução à Programação - DCTI - ISCTE-IUL7
  • 8.
    Função que calculao mdcFunção mdc(m, n) Enquanto m≠ 0, fazertemporária← m,m← n ÷ m, n← temporária. Devolver n.2010/2011Introdução à Programação - DCTI - ISCTE-IUL8Algoritmo de Euclides.
  • 9.
    Função que calculao mdcFunção mdc(m, n) Se m= 0, fazer devolver n, senão, devolver mdc(n ÷ m, m).2010/2011Introdução à Programação - DCTI - ISCTE-IUL9Algoritmo de Euclides na sua forma recursiva.
  • 10.
    Funções: boas práticasFunçõesdevem limitar-se a cálculo em causaFunções não devem ter efeitos lateraisLer do teclado e escrever no ecrã são efeitos lateraisFunções não devem ler do teclado ou escrever no ecrã!2010/2011Introdução à Programação - DCTI - ISCTE-IUL10
  • 11.
    Funções: vantagens2010/2011Introdução àProgramação - DCTI - ISCTE-IUL11ModularizaçãoCódigo colocado em módulo com função bem definidaFacilita reutilização: define-se uma vez, usa-se muitasEncapsulamentoImplementação irrelevante para quem usa a funçãoReduz complexidadeFavorece abstracçãoAumenta clareza
  • 12.
    Lista (ou vector)Variávelque guarda sequência de itensOrdem dos itens relevanteIdentificação de valores usando índicesÍndice do primeiro valor: zeroExemplo2010/2011Introdução à Programação - DCTI - ISCTE-IUL12Lista lista.8420110701234567listaValores.Índices.
  • 13.
    Pseudocódigo: listaslista(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/2011Introdução à Programação - DCTI - ISCTE-IUL13000002058012340123lista1lista2
  • 14.
    Pseudocódigo: listastamanhoDe(lista)– devolvetamanho de listalista[i] – Item de lista com índice iExemplos:tamanhoDe(lista1) – Devolve 5lista2[2] – Terceiro item de lista2, com valor 5lista2[2] ← 7 – Atribui 7 ao terceiro item de lista22010/2011Introdução à Programação - DCTI - ISCTE-IUL14000002058012340123lista1lista2
  • 15.
    Utilizações típicas devariáveisIteraçãoContagemAcumulaçãoMemória temporáriaEtc.2010/2011Introdução à Programação - DCTI - ISCTE-IUL15
  • 16.
    IteraçãoVariável com valoressucessivos correspondentes a contagem, índices de lista, etc.Exemploi ← 0. Enquanto i ≠ 10, fazer ...i ← i + 1.2010/2011Introdução à Programação - DCTI - ISCTE-IUL16Variável para iteração.
  • 17.
    ContagemVariável guardando valorde contagemExemplo 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/2011Introdução à Programação - DCTI - ISCTE-IUL17Variável para contagem.
  • 18.
    AcumulaçãoVariável guardando acumulaçãode operaçãoExemplo Função somaDe(lista)soma ← 0.i ← 0. Enquanto i ≠ tamanhoDe(lista), fazersoma ← soma + lista[i]; i ← i + 1. Devolver soma.2010/2011Introdução à Programação - DCTI - ISCTE-IUL18Variável para acumulação da soma.
  • 19.
    Acumulação: caso especialVariávelguardando acumulação de operaçãoExemplo 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/2011Introdução à Programação - DCTI - ISCTE-IUL19Variável para “acumulação” do máximo.
  • 20.
    Memória temporáriaVariável paraguardar valor temporariamenteExemplo Função mdc(m, n) Enquanto m≠ 0, fazertemporária← m,m← n ÷ m, n← temporária. Devolver n.2010/2011Introdução à Programação - DCTI - ISCTE-IUL20Variável para memória temporária.
  • 21.
    A reterPseudocódigoFunçõesListas (ouvectores)Utilizações típicas de variáveisIteraçãoContagemAcumulação (casos especiais)Memória temporária2010/2011Introdução à Programação - DCTI - ISCTE-IUL2121
  • 22.
    2010/201122A ler...Capítulos 1e 2 do livro:Y. Daniel Liang, Introduction to Java Programming, 8.ª edição, Prentice-Hall, 2010. ISBN: 978-0-13-213080-6Introdução à Programação - DCTI - ISCTE-IUL22
  • 23.
    SumárioFunções e listasem pseudocódigoUtilizações típicas de variáveis2010/2011Introdução à Programação - DCTI - ISCTE-IUL23