SlideShare uma empresa Scribd logo
1 de 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
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 Introdução à Programação - DCTI - ISCTE-IUL 2 2
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 resultado 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 3
Pseudocódigo: definição de função 	Função nome(parâmetro1, parâmetro2, …) variável1 ← 0. variável2 ← 0. 		… 		… Devolvervariável1. 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 4 Entradas 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ção variável1 ← 0. variável2 ← 1. … resultado ← nome(expressão1, expressão2, …). 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 5 Argumentos. Um argumento por cada parâmetro. Introdução à Programação
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 Introdução à Programação - DCTI - ISCTE-IUL 6 Entradas. Cálculo do mínimo.  Pode transformar-se em função. Passos: Saída. Algoritmo simplório.
Função que calcula o mdc Funçã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 7
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 Introdução à Programação - DCTI - ISCTE-IUL 8 Algoritmo de Euclides.
Função que calcula o mdc Função mdc(m, n) 	Se m= 0, fazer 		devolver n, 	senão, 		devolver mdc(n ÷ m, m). 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 9 Algoritmo de Euclides na sua forma recursiva.
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 10
Funções: vantagens 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 11 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
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: zero Exemplo 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 12 Lista lista. 8 4 2 0 1 1 0 7 0 1 2 3 4 5 6 7 lista Valores. Índices.
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 Introdução à Programação - DCTI - ISCTE-IUL 13 0 0 0 0 0 2 0 5 8 0 1 2 3 4 0 1 2 3 lista1 lista2
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 Introdução à Programação - DCTI - ISCTE-IUL 14 0 0 0 0 0 2 0 5 8 0 1 2 3 4 0 1 2 3 lista1 lista2
Utilizações típicas de variáveis Iteração Contagem Acumulação Memória temporária Etc. 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 15
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 Introdução à Programação - DCTI - ISCTE-IUL 16 Variável para iteração.
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ão ocorrências ← ocorrências + 1; i ← i + 1. 		Devolver ocorrências. 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 17 Variável para contagem.
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 Introdução à Programação - DCTI - ISCTE-IUL 18 Variável para acumulação da soma.
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ão máximo ← lista[i]; 			i ← i + 1. 		Devolver máximo. 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 19 Variável para “acumulação” do máximo.
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 Introdução à Programação - DCTI - ISCTE-IUL 20 Variável para memória temporária.
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 Introdução à Programação - DCTI - ISCTE-IUL 21 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
Sumário Funções e listas em pseudocódigo Utilizações típicas de variáveis 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 23

Mais conteúdo relacionado

Mais procurados

Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em pptAndrei Bastos
 
Lista de exercício resposta
Lista de exercício   respostaLista de exercício   resposta
Lista de exercício respostaHercules Santhus
 
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com JavaExercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com JavaLoiane Groner
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScriptBruno Catão
 
Aprendendo Kotlin na Prática
Aprendendo Kotlin na PráticaAprendendo Kotlin na Prática
Aprendendo Kotlin na PráticaFelipe Pedroso
 
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com JavaExercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com JavaLoiane Groner
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em pythonAlvaro Oliveira
 
Java: Estruturas de Repetição
Java: Estruturas de RepetiçãoJava: Estruturas de Repetição
Java: Estruturas de RepetiçãoArthur Emanuel
 
Lista de exercícios resolvidos
Lista de exercícios resolvidosLista de exercícios resolvidos
Lista de exercícios resolvidosCrishna Irion
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de ProgramaçãoAdao Chiavelli
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Gercélia Ramos
 
Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)
Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)
Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)Fabio Moura Pereira
 
Python debugging techniques
Python debugging techniquesPython debugging techniques
Python debugging techniquesTuomas Suutari
 
Lógica de Programação - Estruturas de Seleção
Lógica de Programação - Estruturas de SeleçãoLógica de Programação - Estruturas de Seleção
Lógica de Programação - Estruturas de SeleçãoJanynne Gomes
 
Python Debugging Fundamentals
Python Debugging FundamentalsPython Debugging Fundamentals
Python Debugging Fundamentalscbcunc
 

Mais procurados (20)

Python Programming Essentials - M27 - Logging module
Python Programming Essentials - M27 - Logging modulePython Programming Essentials - M27 - Logging module
Python Programming Essentials - M27 - Logging module
 
SubProgramas
SubProgramasSubProgramas
SubProgramas
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
Lista de exercício resposta
Lista de exercício   respostaLista de exercício   resposta
Lista de exercício resposta
 
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com JavaExercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Aprendendo Kotlin na Prática
Aprendendo Kotlin na PráticaAprendendo Kotlin na Prática
Aprendendo Kotlin na Prática
 
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com JavaExercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em python
 
Java: Estruturas de Repetição
Java: Estruturas de RepetiçãoJava: Estruturas de Repetição
Java: Estruturas de Repetição
 
Javascript aula 01 - visão geral
Javascript   aula 01 - visão geralJavascript   aula 01 - visão geral
Javascript aula 01 - visão geral
 
Lista de exercícios resolvidos
Lista de exercícios resolvidosLista de exercícios resolvidos
Lista de exercícios resolvidos
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
 
Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)
Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)
Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)
 
Python debugging techniques
Python debugging techniquesPython debugging techniques
Python debugging techniques
 
Lógica de Programação - Estruturas de Seleção
Lógica de Programação - Estruturas de SeleçãoLógica de Programação - Estruturas de Seleção
Lógica de Programação - Estruturas de Seleção
 
Python Debugging Fundamentals
Python Debugging FundamentalsPython Debugging Fundamentals
Python Debugging Fundamentals
 
Aula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e PseudocódigoAula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e Pseudocódigo
 

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

Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
Semana  1: Programação como arte de resolver problemas, algoritmos e problema...Semana  1: Programação como arte de resolver problemas, algoritmos e problema...
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...Manuel Menezes de Sequeira
 
Semana 3: Introdução à linguagem de programação Java
Semana  3: Introdução à linguagem de programação Java Semana  3: Introdução à linguagem de programação Java
Semana 3: Introdução à linguagem de programação Java Manuel Menezes de Sequeira
 
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasSemana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasManuel Menezes de Sequeira
 
Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02thomasdacosta
 
Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03thomasdacosta
 
Clp allen bralley aula 04
Clp allen bralley aula 04Clp allen bralley aula 04
Clp allen bralley aula 04MAKILL
 
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)Filipe Chagas Ferraz
 
Semana 8: Classes e instâncias, cadeias de caracteres
Semana  8: Classes e instâncias, cadeias de caracteresSemana  8: Classes e instâncias, cadeias de caracteres
Semana 8: Classes e instâncias, cadeias de caracteresManuel Menezes de Sequeira
 
Tutorial Octave Matlab
Tutorial Octave MatlabTutorial Octave Matlab
Tutorial Octave Matlabblogmaxima
 
Usando POP com Programação Funcional
Usando POP com Programação FuncionalUsando POP com Programação Funcional
Usando POP com Programação FuncionalTales Andrade
 
Aula01
Aula01Aula01
Aula01vdlos
 
MC-102 — Aula 01 Introdução à Programação de Computadores.pdf
MC-102 — Aula 01 Introdução à Programação de Computadores.pdfMC-102 — Aula 01 Introdução à Programação de Computadores.pdf
MC-102 — Aula 01 Introdução à Programação de Computadores.pdfLuanaBatista74
 
Programação Orientada por Objectos - Aula 4
Programação Orientada por Objectos - Aula 4Programação Orientada por Objectos - Aula 4
Programação Orientada por Objectos - Aula 4guestd521d1f
 
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxAula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxaronoliveira3
 

Semelhante a Semana 2: Funções e listas, variáveis (20)

Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
Semana  1: Programação como arte de resolver problemas, algoritmos e problema...Semana  1: Programação como arte de resolver problemas, algoritmos e problema...
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
 
Semana 3: Introdução à linguagem de programação Java
Semana  3: Introdução à linguagem de programação Java Semana  3: Introdução à linguagem de programação Java
Semana 3: Introdução à linguagem de programação Java
 
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasSemana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
 
Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02
 
Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03
 
Rs logix 5000
Rs logix 5000Rs logix 5000
Rs logix 5000
 
Aula04
Aula04Aula04
Aula04
 
Clp allen bralley aula 04
Clp allen bralley aula 04Clp allen bralley aula 04
Clp allen bralley aula 04
 
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)
 
Semana 8: Classes e instâncias, cadeias de caracteres
Semana  8: Classes e instâncias, cadeias de caracteresSemana  8: Classes e instâncias, cadeias de caracteres
Semana 8: Classes e instâncias, cadeias de caracteres
 
Tutorial Octave Matlab
Tutorial Octave MatlabTutorial Octave Matlab
Tutorial Octave Matlab
 
NBI.pptx
NBI.pptxNBI.pptx
NBI.pptx
 
Usando POP com Programação Funcional
Usando POP com Programação FuncionalUsando POP com Programação Funcional
Usando POP com Programação Funcional
 
Aula01
Aula01Aula01
Aula01
 
MC-102 — Aula 01 Introdução à Programação de Computadores.pdf
MC-102 — Aula 01 Introdução à Programação de Computadores.pdfMC-102 — Aula 01 Introdução à Programação de Computadores.pdf
MC-102 — Aula 01 Introdução à Programação de Computadores.pdf
 
Programação Orientada por Objectos - Aula 4
Programação Orientada por Objectos - Aula 4Programação Orientada por Objectos - Aula 4
Programação Orientada por Objectos - Aula 4
 
Programação Orientada por Objectos - Aula 4
Programação Orientada por Objectos - Aula 4Programação Orientada por Objectos - Aula 4
Programação Orientada por Objectos - Aula 4
 
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxAula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
 
Programas recursivos de dominio finito
Programas recursivos de dominio finitoProgramas recursivos de dominio finito
Programas recursivos de dominio finito
 
Curso Básico de R
Curso Básico de RCurso Básico de R
Curso Básico de R
 

Mais de Manuel Menezes de Sequeira

14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...Manuel Menezes de Sequeira
 
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...Manuel Menezes de Sequeira
 
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...Manuel Menezes de Sequeira
 
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...Manuel Menezes de Sequeira
 
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...Manuel Menezes de Sequeira
 
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...Manuel Menezes de Sequeira
 
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de ProgramaçãoManuel Menezes de Sequeira
 
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...Manuel Menezes de Sequeira
 
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...Manuel Menezes de Sequeira
 
4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de ProgramaçãoManuel Menezes de Sequeira
 
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...Manuel Menezes de Sequeira
 
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...Manuel Menezes de Sequeira
 
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...Manuel Menezes de Sequeira
 
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...Manuel Menezes de Sequeira
 
Semana 9: toString, classes, instâncias e objectos, Scanner
Semana  9: toString, classes, instâncias e objectos, ScannerSemana  9: toString, classes, instâncias e objectos, Scanner
Semana 9: toString, classes, instâncias e objectos, ScannerManuel Menezes de Sequeira
 
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana  6: Matrizes multidimensionais, estratégias de resolução de problemasSemana  6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemasManuel Menezes de Sequeira
 
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaSemana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaManuel Menezes de Sequeira
 
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana  4: Atribuições especiais, matrizes, ciclos, classes pacoteSemana  4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacoteManuel Menezes de Sequeira
 
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...Manuel Menezes de Sequeira
 
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)Manuel Menezes de Sequeira
 

Mais de Manuel Menezes de Sequeira (20)

14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
 
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
 
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
 
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
 
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
 
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
 
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
 
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
 
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
 
4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação
 
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
 
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
 
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
 
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
 
Semana 9: toString, classes, instâncias e objectos, Scanner
Semana  9: toString, classes, instâncias e objectos, ScannerSemana  9: toString, classes, instâncias e objectos, Scanner
Semana 9: toString, classes, instâncias e objectos, Scanner
 
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana  6: Matrizes multidimensionais, estratégias de resolução de problemasSemana  6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
 
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaSemana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
 
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana  4: Atribuições especiais, matrizes, ciclos, classes pacoteSemana  4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
 
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...
 
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
 

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

  • 1. 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
  • 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 Introdução à Programação - DCTI - ISCTE-IUL 2 2
  • 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 resultado 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 3
  • 4. Pseudocódigo: definição de função Função nome(parâmetro1, parâmetro2, …) variável1 ← 0. variável2 ← 0. … … Devolvervariável1. 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 4 Entradas 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 de função variável1 ← 0. variável2 ← 1. … resultado ← nome(expressão1, expressão2, …). 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 5 Argumentos. Um argumento por cada parâmetro. Introdução à Programação
  • 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 Introdução à Programação - DCTI - ISCTE-IUL 6 Entradas. Cálculo do mínimo. Pode transformar-se em função. Passos: Saída. Algoritmo simplório.
  • 7. Função que calcula o mdc Funçã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 7
  • 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 Introdução à Programação - DCTI - ISCTE-IUL 8 Algoritmo de Euclides.
  • 9. Função que calcula o mdc Função mdc(m, n) Se m= 0, fazer devolver n, senão, devolver mdc(n ÷ m, m). 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 9 Algoritmo de Euclides na sua forma recursiva.
  • 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 10
  • 11. Funções: vantagens 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 11 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
  • 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: zero Exemplo 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 12 Lista lista. 8 4 2 0 1 1 0 7 0 1 2 3 4 5 6 7 lista Valores. Índices.
  • 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 Introdução à Programação - DCTI - ISCTE-IUL 13 0 0 0 0 0 2 0 5 8 0 1 2 3 4 0 1 2 3 lista1 lista2
  • 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 Introdução à Programação - DCTI - ISCTE-IUL 14 0 0 0 0 0 2 0 5 8 0 1 2 3 4 0 1 2 3 lista1 lista2
  • 15. Utilizações típicas de variáveis Iteração Contagem Acumulação Memória temporária Etc. 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 15
  • 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 Introdução à Programação - DCTI - ISCTE-IUL 16 Variável para iteração.
  • 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ão ocorrências ← ocorrências + 1; i ← i + 1. Devolver ocorrências. 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 17 Variável para contagem.
  • 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 Introdução à Programação - DCTI - ISCTE-IUL 18 Variável para acumulação da soma.
  • 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ão máximo ← lista[i]; i ← i + 1. Devolver máximo. 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 19 Variável para “acumulação” do máximo.
  • 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 Introdução à Programação - DCTI - ISCTE-IUL 20 Variável para memória temporária.
  • 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 Introdução à Programação - DCTI - ISCTE-IUL 21 21
  • 22. 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
  • 23. Sumário Funções e listas em pseudocódigo Utilizações típicas de variáveis 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 23